diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 120000 index 0000000..e2be547 --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/node_modules/.bin/parser b/node_modules/.bin/parser new file mode 120000 index 0000000..ce7bf97 --- /dev/null +++ b/node_modules/.bin/parser @@ -0,0 +1 @@ +../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..635652f --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,383 @@ +{ + "name": "Manolia-alpha", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", + "peer": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT", + "peer": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.28.tgz", + "integrity": "sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.29.0", + "@vue/shared": "3.5.28", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.28.tgz", + "integrity": "sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-core": "3.5.28", + "@vue/shared": "3.5.28" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.28.tgz", + "integrity": "sha512-6TnKMiNkd6u6VeVDhZn/07KhEZuBSn43Wd2No5zaP5s3xm8IqFTHBj84HJah4UepSUJTro5SoqqlOY22FKY96g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.29.0", + "@vue/compiler-core": "3.5.28", + "@vue/compiler-dom": "3.5.28", + "@vue/compiler-ssr": "3.5.28", + "@vue/shared": "3.5.28", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.28.tgz", + "integrity": "sha512-JCq//9w1qmC6UGLWJX7RXzrGpKkroubey/ZFqTpvEIDJEKGgntuDMqkuWiZvzTzTA5h2qZvFBFHY7fAAa9475g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.28", + "@vue/shared": "3.5.28" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.28.tgz", + "integrity": "sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/shared": "3.5.28" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.28.tgz", + "integrity": "sha512-POVHTdbgnrBBIpnbYU4y7pOMNlPn2QVxVzkvEA2pEgvzbelQq4ZOUxbp2oiyo+BOtiYlm8Q44wShHJoBvDPAjQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.5.28", + "@vue/shared": "3.5.28" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.28.tgz", + "integrity": "sha512-4SXxSF8SXYMuhAIkT+eBRqOkWEfPu6nhccrzrkioA6l0boiq7sp18HCOov9qWJA5HML61kW8p/cB4MmBiG9dSA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.5.28", + "@vue/runtime-core": "3.5.28", + "@vue/shared": "3.5.28", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.28.tgz", + "integrity": "sha512-pf+5ECKGj8fX95bNincbzJ6yp6nyzuLDhYZCeFxUNp8EBrQpPpQaLX3nNCp49+UbgbPun3CeVE+5CXVV1Xydfg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-ssr": "3.5.28", + "@vue/shared": "3.5.28" + }, + "peerDependencies": { + "vue": "3.5.28" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.28.tgz", + "integrity": "sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==", + "license": "MIT", + "peer": true + }, + "node_modules/buetify": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/buetify/-/buetify-0.1.7.tgz", + "integrity": "sha512-Xma62kUdZgf83BnUPSMuFgO6gt1broOpGjo12lsOHFZRBgsa4Aah1IDsuMRHHjBEXzqaQn2dvggya9K0wKVv1Q==", + "license": "MIT", + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^1.2.25", + "@fortawesome/free-solid-svg-icons": "^5.11.2", + "bulma": "^0.9.0", + "fp-ts": "^2.6.5", + "fp-ts-local-storage": "^1.0.3", + "vue": "^3.0.0" + } + }, + "node_modules/bulma": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", + "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==", + "license": "MIT", + "peer": true + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT", + "peer": true + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT", + "peer": true + }, + "node_modules/fp-ts": { + "version": "2.16.11", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.11.tgz", + "integrity": "sha512-LaI+KaX2NFkfn1ZGHoKCmcfv7yrZsC3b8NtWsTVQeHkq4F27vI5igUuO53sxqDEa2gNQMHFPmpojDw/1zmUK7w==", + "license": "MIT", + "peer": true + }, + "node_modules/fp-ts-local-storage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fp-ts-local-storage/-/fp-ts-local-storage-1.0.3.tgz", + "integrity": "sha512-72nXiVVA7Fj1FS0lfGIED18/AS8gA50OjOrUCWuhNEYL9f614MkLjkQVkpnAFr0QI1H8/1CxH2tAfPs0CkncHQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "fp-ts": "^2.0.1" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC", + "peer": true + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue": { + "version": "3.5.28", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.28.tgz", + "integrity": "sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.28", + "@vue/compiler-sfc": "3.5.28", + "@vue/runtime-dom": "3.5.28", + "@vue/server-renderer": "3.5.28", + "@vue/shared": "3.5.28" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + } + } +} diff --git a/node_modules/@babel/helper-string-parser/LICENSE b/node_modules/@babel/helper-string-parser/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/helper-string-parser/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other 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. diff --git a/node_modules/@babel/helper-string-parser/README.md b/node_modules/@babel/helper-string-parser/README.md new file mode 100644 index 0000000..771b470 --- /dev/null +++ b/node_modules/@babel/helper-string-parser/README.md @@ -0,0 +1,19 @@ +# @babel/helper-string-parser + +> A utility package to parse strings + +See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-string-parser +``` + +or using yarn: + +```sh +yarn add @babel/helper-string-parser +``` diff --git a/node_modules/@babel/helper-string-parser/lib/index.js b/node_modules/@babel/helper-string-parser/lib/index.js new file mode 100644 index 0000000..2d94115 --- /dev/null +++ b/node_modules/@babel/helper-string-parser/lib/index.js @@ -0,0 +1,295 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.readCodePoint = readCodePoint; +exports.readInt = readInt; +exports.readStringContents = readStringContents; +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/helper-string-parser/lib/index.js.map b/node_modules/@babel/helper-string-parser/lib/index.js.map new file mode 100644 index 0000000..cd50797 --- /dev/null +++ b/node_modules/@babel/helper-string-parser/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isDigit","code","forbiddenNumericSeparatorSiblings","decBinOct","Set","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","type","input","pos","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","length","unterminated","slice","charCodeAt","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","String","fromCharCode","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","exec","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","i","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","has","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint"],"sources":["../src/index.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n"],"mappings":";;;;;;;;eAAA,SAASA,OAAOA,CAACC,IAAI,EAAE;EACrB,OAAOA,IAAI,MAAU,IAAIA,IAAI,MAAU;AACzC,CAAC;AAID,MAAMC,iCAAiC,GAAG;EACxCC,SAAS,EAAE,IAAIC,GAAG,CAAS,kCAS1B,CAAC;EACFC,GAAG,EAAE,IAAID,GAAG,CAAS,iBAKpB;AACH,CAAC;AAED,MAAME,gCAAgC,GAAG;EAEvCC,GAAG,EAAGC,EAAU,IAAKA,EAAE,OAAqB,IAAIA,EAAE,OAAqB;EAGvEC,GAAG,EAAGD,EAAU,IAAKA,EAAE,MAAoB,IAAIA,EAAE,MAAoB;EAGrEE,GAAG,EAAGF,EAAU,IAAKA,EAAE,MAAoB,IAAIA,EAAE,MAAoB;EAGrEH,GAAG,EAAGG,EAAU,IACbA,EAAE,MAAoB,IAAIA,EAAE,MAAoB,IAChDA,EAAE,MAAwB,IAAIA,EAAE,MAAyB,IACzDA,EAAE,MAAwB,IAAIA,EAAE;AACrC,CAAC;AAUM,SAASG,kBAAkBA,CAChCC,IAAsC,EACtCC,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfC,MAAmC,EACnC;EACA,MAAMC,UAAU,GAAGJ,GAAG;EACtB,MAAMK,gBAAgB,GAAGJ,SAAS;EAClC,MAAMK,cAAc,GAAGJ,OAAO;EAE9B,IAAIK,GAAG,GAAG,EAAE;EACZ,IAAIC,eAAe,GAAG,IAAI;EAC1B,IAAIC,UAAU,GAAGT,GAAG;EACpB,MAAM;IAAEU;EAAO,CAAC,GAAGX,KAAK;EACxB,SAAS;IACP,IAAIC,GAAG,IAAIU,MAAM,EAAE;MACjBP,MAAM,CAACQ,YAAY,CAACP,UAAU,EAAEC,gBAAgB,EAAEC,cAAc,CAAC;MACjEC,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC;MACnC;IACF;IACA,MAAMN,EAAE,GAAGK,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;IAChC,IAAIc,WAAW,CAAChB,IAAI,EAAEJ,EAAE,EAAEK,KAAK,EAAEC,GAAG,CAAC,EAAE;MACrCO,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC;MACnC;IACF;IACA,IAAIN,EAAE,OAAwB,EAAE;MAC9Ba,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC;MACnC,MAAMe,GAAG,GAAGC,eAAe,CACzBjB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACPJ,IAAI,KAAK,UAAU,EACnBK,MACF,CAAC;MACD,IAAIY,GAAG,CAACrB,EAAE,KAAK,IAAI,IAAI,CAACc,eAAe,EAAE;QACvCA,eAAe,GAAG;UAAER,GAAG;UAAEC,SAAS;UAAEC;QAAQ,CAAC;MAC/C,CAAC,MAAM;QACLK,GAAG,IAAIQ,GAAG,CAACrB,EAAE;MACf;MACA,CAAC;QAAEM,GAAG;QAAEC,SAAS;QAAEC;MAAQ,CAAC,GAAGa,GAAG;MAClCN,UAAU,GAAGT,GAAG;IAClB,CAAC,MAAM,IACLN,EAAE,SAA4B,IAC9BA,EAAE,SAAiC,EACnC;MACA,EAAEM,GAAG;MACL,EAAEE,OAAO;MACTD,SAAS,GAAGD,GAAG;IACjB,CAAC,MAAM,IAAIN,EAAE,OAAuB,IAAIA,EAAE,OAA6B,EAAE;MACvE,IAAII,IAAI,KAAK,UAAU,EAAE;QACvBS,GAAG,IAAIR,KAAK,CAACa,KAAK,CAACH,UAAU,EAAET,GAAG,CAAC,GAAG,IAAI;QAC1C,EAAEA,GAAG;QACL,IACEN,EAAE,OAA6B,IAC/BK,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC,OAAuB,EAC5C;UACA,EAAEA,GAAG;QACP;QACA,EAAEE,OAAO;QACTO,UAAU,GAAGR,SAAS,GAAGD,GAAG;MAC9B,CAAC,MAAM;QACLG,MAAM,CAACQ,YAAY,CAACP,UAAU,EAAEC,gBAAgB,EAAEC,cAAc,CAAC;MACnE;IACF,CAAC,MAAM;MACL,EAAEN,GAAG;IACP;EACF;EACA,OAEI;IACEA,GAAG;IACHiB,GAAG,EAAEV,GAAG;IACRC,eAAe;IACfP,SAAS;IACTC,OAAO;IACPgB,eAAe,EAAE,CAAC,CAACV;EACrB,CAAC;AACP;AAEA,SAASM,WAAWA,CAClBhB,IAAsC,EACtCJ,EAAU,EACVK,KAAa,EACbC,GAAW,EACX;EACA,IAAIF,IAAI,KAAK,UAAU,EAAE;IACvB,OACEJ,EAAE,OAA0B,IAC3BA,EAAE,OAAyB,IAC1BK,KAAK,CAACc,UAAU,CAACb,GAAG,GAAG,CAAC,CAAC,QAA8B;EAE7D;EACA,OACEN,EAAE,MAAMI,IAAI,KAAK,QAAQ,UAAiD,CAAC;AAE/E;AAOA,SAASkB,eAAeA,CACtBjB,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfiB,UAAmB,EACnBhB,MAAgC,EAChC;EACA,MAAMiB,cAAc,GAAG,CAACD,UAAU;EAClCnB,GAAG,EAAE;EAEL,MAAMe,GAAG,GAAIrB,EAAiB,KAAM;IAAEM,GAAG;IAAEN,EAAE;IAAEO,SAAS;IAAEC;EAAQ,CAAC,CAAC;EAEpE,MAAMR,EAAE,GAAGK,KAAK,CAACc,UAAU,CAACb,GAAG,EAAE,CAAC;EAClC,QAAQN,EAAE;IACR;MACE,OAAOqB,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,OAAOA,GAAG,CAAC,IAAI,CAAC;IAClB;MAA2B;QACzB,IAAI5B,IAAI;QACR,CAAC;UAAEA,IAAI;UAAEa;QAAI,CAAC,GAAGqB,WAAW,CAC1BtB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACP,CAAC,EACD,KAAK,EACLkB,cAAc,EACdjB,MACF,CAAC;QACD,OAAOY,GAAG,CAAC5B,IAAI,KAAK,IAAI,GAAG,IAAI,GAAGmC,MAAM,CAACC,YAAY,CAACpC,IAAI,CAAC,CAAC;MAC9D;IACA;MAA2B;QACzB,IAAIA,IAAI;QACR,CAAC;UAAEA,IAAI;UAAEa;QAAI,CAAC,GAAGwB,aAAa,CAC5BzB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACPkB,cAAc,EACdjB,MACF,CAAC;QACD,OAAOY,GAAG,CAAC5B,IAAI,KAAK,IAAI,GAAG,IAAI,GAAGmC,MAAM,CAACG,aAAa,CAACtC,IAAI,CAAC,CAAC;MAC/D;IACA;MACE,OAAO4B,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,OAAOA,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,OAAOA,GAAG,CAAC,QAAQ,CAAC;IACtB;MACE,OAAOA,GAAG,CAAC,IAAI,CAAC;IAClB;MACE,IAAIhB,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC,OAAuB,EAAE;QAChD,EAAEA,GAAG;MACP;IAEF;MACEC,SAAS,GAAGD,GAAG;MACf,EAAEE,OAAO;IAEX;IACA;MACE,OAAOa,GAAG,CAAC,EAAE,CAAC;IAChB;IACA;MACE,IAAII,UAAU,EAAE;QACd,OAAOJ,GAAG,CAAC,IAAI,CAAC;MAClB,CAAC,MAAM;QACLZ,MAAM,CAACuB,mBAAmB,CAAC1B,GAAG,GAAG,CAAC,EAAEC,SAAS,EAAEC,OAAO,CAAC;MACzD;IAEF;MACE,IAAIR,EAAE,MAAoB,IAAIA,EAAE,MAAoB,EAAE;QACpD,MAAMiC,QAAQ,GAAG3B,GAAG,GAAG,CAAC;QACxB,MAAM4B,KAAK,GAAG,SAAS,CAACC,IAAI,CAAC9B,KAAK,CAACa,KAAK,CAACe,QAAQ,EAAE3B,GAAG,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI8B,QAAQ,GAAGF,KAAK,CAAC,CAAC,CAAC;QAEvB,IAAIG,KAAK,GAAGC,QAAQ,CAACF,QAAQ,EAAE,CAAC,CAAC;QACjC,IAAIC,KAAK,GAAG,GAAG,EAAE;UACfD,QAAQ,GAAGA,QAAQ,CAAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;UAChCmB,KAAK,GAAGC,QAAQ,CAACF,QAAQ,EAAE,CAAC,CAAC;QAC/B;QACA9B,GAAG,IAAI8B,QAAQ,CAACpB,MAAM,GAAG,CAAC;QAC1B,MAAMuB,IAAI,GAAGlC,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;QAClC,IACE8B,QAAQ,KAAK,GAAG,IAChBG,IAAI,OAAqB,IACzBA,IAAI,OAAqB,EACzB;UACA,IAAId,UAAU,EAAE;YACd,OAAOJ,GAAG,CAAC,IAAI,CAAC;UAClB,CAAC,MAAM;YACLZ,MAAM,CAACuB,mBAAmB,CAACC,QAAQ,EAAE1B,SAAS,EAAEC,OAAO,CAAC;UAC1D;QACF;QAEA,OAAOa,GAAG,CAACO,MAAM,CAACC,YAAY,CAACQ,KAAK,CAAC,CAAC;MACxC;MAEA,OAAOhB,GAAG,CAACO,MAAM,CAACC,YAAY,CAAC7B,EAAE,CAAC,CAAC;EACvC;AACF;AAOA,SAAS2B,WAAWA,CAClBtB,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfgC,GAAW,EACXC,QAAiB,EACjBf,cAAuB,EACvBjB,MAA4B,EAC5B;EACA,MAAMC,UAAU,GAAGJ,GAAG;EACtB,IAAIoC,CAAC;EACL,CAAC;IAAEA,CAAC;IAAEpC;EAAI,CAAC,GAAGqC,OAAO,CACnBtC,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACP,EAAE,EACFgC,GAAG,EACHC,QAAQ,EACR,KAAK,EACLhC,MAAM,EACY,CAACiB,cACrB,CAAC;EACD,IAAIgB,CAAC,KAAK,IAAI,EAAE;IACd,IAAIhB,cAAc,EAAE;MAClBjB,MAAM,CAACmC,qBAAqB,CAAClC,UAAU,EAAEH,SAAS,EAAEC,OAAO,CAAC;IAC9D,CAAC,MAAM;MACLF,GAAG,GAAGI,UAAU,GAAG,CAAC;IACtB;EACF;EACA,OAAO;IAAEjB,IAAI,EAAEiD,CAAC;IAAEpC;EAAI,CAAC;AACzB;AAuBO,SAASqC,OAAOA,CACrBtC,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfqC,KAAa,EACbL,GAAuB,EACvBC,QAAiB,EACjBK,iBAAmC,EACnCrC,MAAwB,EACxBsC,WAAoB,EACpB;EACA,MAAMC,KAAK,GAAG1C,GAAG;EACjB,MAAM2C,iBAAiB,GACrBJ,KAAK,KAAK,EAAE,GACRnD,iCAAiC,CAACG,GAAG,GACrCH,iCAAiC,CAACC,SAAS;EACjD,MAAMuD,gBAAgB,GACpBL,KAAK,KAAK,EAAE,GACR/C,gCAAgC,CAACD,GAAG,GACpCgD,KAAK,KAAK,EAAE,GACV/C,gCAAgC,CAACI,GAAG,GACpC2C,KAAK,KAAK,CAAC,GACT/C,gCAAgC,CAACG,GAAG,GACpCH,gCAAgC,CAACC,GAAG;EAE9C,IAAIoD,OAAO,GAAG,KAAK;EACnB,IAAIC,KAAK,GAAG,CAAC;EAEb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGd,GAAG,IAAI,IAAI,GAAGe,QAAQ,GAAGf,GAAG,EAAEa,CAAC,GAAGC,CAAC,EAAE,EAAED,CAAC,EAAE;IAC5D,MAAM5D,IAAI,GAAGY,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;IAClC,IAAIkD,GAAG;IAEP,IAAI/D,IAAI,OAAyB,IAAIqD,iBAAiB,KAAK,MAAM,EAAE;MACjE,MAAMW,IAAI,GAAGpD,KAAK,CAACc,UAAU,CAACb,GAAG,GAAG,CAAC,CAAC;MACtC,MAAMiC,IAAI,GAAGlC,KAAK,CAACc,UAAU,CAACb,GAAG,GAAG,CAAC,CAAC;MAEtC,IAAI,CAACwC,iBAAiB,EAAE;QACtB,IAAIC,WAAW,EAAE,OAAO;UAAEL,CAAC,EAAE,IAAI;UAAEpC;QAAI,CAAC;QACxCG,MAAM,CAACiD,gCAAgC,CAACpD,GAAG,EAAEC,SAAS,EAAEC,OAAO,CAAC;MAClE,CAAC,MAAM,IACLmD,MAAM,CAACC,KAAK,CAACrB,IAAI,CAAC,IAClB,CAACW,gBAAgB,CAACX,IAAI,CAAC,IACvBU,iBAAiB,CAACY,GAAG,CAACJ,IAAI,CAAC,IAC3BR,iBAAiB,CAACY,GAAG,CAACtB,IAAI,CAAC,EAC3B;QACA,IAAIQ,WAAW,EAAE,OAAO;UAAEL,CAAC,EAAE,IAAI;UAAEpC;QAAI,CAAC;QACxCG,MAAM,CAACqD,0BAA0B,CAACxD,GAAG,EAAEC,SAAS,EAAEC,OAAO,CAAC;MAC5D;MAGA,EAAEF,GAAG;MACL;IACF;IAEA,IAAIb,IAAI,MAAwB,EAAE;MAChC+D,GAAG,GAAG/D,IAAI,KAAuB,KAAqB;IACxD,CAAC,MAAM,IAAIA,IAAI,MAAwB,EAAE;MACvC+D,GAAG,GAAG/D,IAAI,KAAuB,KAAqB;IACxD,CAAC,MAAM,IAAIsE,QAAA,CAAkBtE,IAAI,CAAC,EAAE;MAClC+D,GAAG,GAAG/D,IAAI,KAAmB;IAC/B,CAAC,MAAM;MACL+D,GAAG,GAAGD,QAAQ;IAChB;IACA,IAAIC,GAAG,IAAIX,KAAK,EAAE;MAGhB,IAAIW,GAAG,IAAI,CAAC,IAAIT,WAAW,EAAE;QAC3B,OAAO;UAAEL,CAAC,EAAE,IAAI;UAAEpC;QAAI,CAAC;MACzB,CAAC,MAAM,IACLkD,GAAG,IAAI,CAAC,IACR/C,MAAM,CAACuD,YAAY,CAAC1D,GAAG,EAAEC,SAAS,EAAEC,OAAO,EAAEqC,KAAK,CAAC,EACnD;QACAW,GAAG,GAAG,CAAC;MACT,CAAC,MAAM,IAAIf,QAAQ,EAAE;QACnBe,GAAG,GAAG,CAAC;QACPL,OAAO,GAAG,IAAI;MAChB,CAAC,MAAM;QACL;MACF;IACF;IACA,EAAE7C,GAAG;IACL8C,KAAK,GAAGA,KAAK,GAAGP,KAAK,GAAGW,GAAG;EAC7B;EACA,IAAIlD,GAAG,KAAK0C,KAAK,IAAKR,GAAG,IAAI,IAAI,IAAIlC,GAAG,GAAG0C,KAAK,KAAKR,GAAI,IAAIW,OAAO,EAAE;IACpE,OAAO;MAAET,CAAC,EAAE,IAAI;MAAEpC;IAAI,CAAC;EACzB;EAEA,OAAO;IAAEoC,CAAC,EAAEU,KAAK;IAAE9C;EAAI,CAAC;AAC1B;AAMO,SAASwB,aAAaA,CAC3BzB,KAAa,EACbC,GAAW,EACXC,SAAiB,EACjBC,OAAe,EACfkB,cAAuB,EACvBjB,MAA8B,EAC9B;EACA,MAAMT,EAAE,GAAGK,KAAK,CAACc,UAAU,CAACb,GAAG,CAAC;EAChC,IAAIb,IAAI;EAER,IAAIO,EAAE,QAA6B,EAAE;IACnC,EAAEM,GAAG;IACL,CAAC;MAAEb,IAAI;MAAEa;IAAI,CAAC,GAAGqB,WAAW,CAC1BtB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACPH,KAAK,CAAC4D,OAAO,CAAC,GAAG,EAAE3D,GAAG,CAAC,GAAGA,GAAG,EAC7B,IAAI,EACJoB,cAAc,EACdjB,MACF,CAAC;IACD,EAAEH,GAAG;IACL,IAAIb,IAAI,KAAK,IAAI,IAAIA,IAAI,GAAG,QAAQ,EAAE;MACpC,IAAIiC,cAAc,EAAE;QAClBjB,MAAM,CAACyD,gBAAgB,CAAC5D,GAAG,EAAEC,SAAS,EAAEC,OAAO,CAAC;MAClD,CAAC,MAAM;QACL,OAAO;UAAEf,IAAI,EAAE,IAAI;UAAEa;QAAI,CAAC;MAC5B;IACF;EACF,CAAC,MAAM;IACL,CAAC;MAAEb,IAAI;MAAEa;IAAI,CAAC,GAAGqB,WAAW,CAC1BtB,KAAK,EACLC,GAAG,EACHC,SAAS,EACTC,OAAO,EACP,CAAC,EACD,KAAK,EACLkB,cAAc,EACdjB,MACF,CAAC;EACH;EACA,OAAO;IAAEhB,IAAI;IAAEa;EAAI,CAAC;AACtB","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-string-parser/package.json b/node_modules/@babel/helper-string-parser/package.json new file mode 100644 index 0000000..c4c86e4 --- /dev/null +++ b/node_modules/@babel/helper-string-parser/package.json @@ -0,0 +1,31 @@ +{ + "name": "@babel/helper-string-parser", + "version": "7.27.1", + "description": "A utility package to parse strings", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-string-parser" + }, + "homepage": "https://babel.dev/docs/en/next/babel-helper-string-parser", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "devDependencies": { + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/LICENSE b/node_modules/@babel/helper-validator-identifier/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other 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. diff --git a/node_modules/@babel/helper-validator-identifier/README.md b/node_modules/@babel/helper-validator-identifier/README.md new file mode 100644 index 0000000..05c19e6 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/README.md @@ -0,0 +1,19 @@ +# @babel/helper-validator-identifier + +> Validate identifier/keywords name + +See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-validator-identifier +``` + +or using yarn: + +```sh +yarn add @babel/helper-validator-identifier +``` diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/node_modules/@babel/helper-validator-identifier/lib/identifier.js new file mode 100644 index 0000000..b12e6e4 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/identifier.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIdentifierChar = isIdentifierChar; +exports.isIdentifierName = isIdentifierName; +exports.isIdentifierStart = isIdentifierStart; +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +function isIdentifierName(name) { + let isFirst = true; + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + if (isFirst) { + isFirst = false; + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + return !isFirst; +} + +//# sourceMappingURL=identifier.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map b/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map new file mode 100644 index 0000000..71d32ff --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map @@ -0,0 +1 @@ +{"version":3,"names":["nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","i","length","isIdentifierStart","test","String","fromCharCode","isIdentifierChar","isIdentifierName","name","isFirst","cp","charCodeAt","trail"],"sources":["../src/identifier.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088f\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7dc\\ua7f1-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1add\\u1ae0-\\u1aeb\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n"],"mappings":";;;;;;;;AAaA,IAAIA,4BAA4B,GAAG,spIAAspI;AAEzrI,IAAIC,uBAAuB,GAAG,4lFAA4lF;AAE1nF,MAAMC,uBAAuB,GAAG,IAAIC,MAAM,CACxC,GAAG,GAAGH,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMI,kBAAkB,GAAG,IAAID,MAAM,CACnC,GAAG,GAAGH,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMI,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEjnD,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,GAAG,CAAC;AAK52B,SAASC,aAAaA,CAACC,IAAY,EAAEC,GAAsB,EAAW;EACpE,IAAIC,GAAG,GAAG,OAAO;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,MAAM,GAAGH,GAAG,CAACG,MAAM,EAAED,CAAC,GAAGC,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACvDD,GAAG,IAAID,GAAG,CAACE,CAAC,CAAC;IACb,IAAID,GAAG,GAAGF,IAAI,EAAE,OAAO,KAAK;IAE5BE,GAAG,IAAID,GAAG,CAACE,CAAC,GAAG,CAAC,CAAC;IACjB,IAAID,GAAG,IAAIF,IAAI,EAAE,OAAO,IAAI;EAC9B;EACA,OAAO,KAAK;AACd;AAIO,SAASK,iBAAiBA,CAACL,IAAY,EAAW;EACvD,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,MAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,OAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,IAAI,MAAM,EAAE;IAClB,OACEA,IAAI,IAAI,IAAI,IAAIN,uBAAuB,CAACY,IAAI,CAACC,MAAM,CAACC,YAAY,CAACR,IAAI,CAAC,CAAC;EAE3E;EACA,OAAOD,aAAa,CAACC,IAAI,EAAEH,0BAA0B,CAAC;AACxD;AAIO,SAASY,gBAAgBA,CAACT,IAAY,EAAW;EACtD,IAAIA,IAAI,KAAmB,EAAE,OAAOA,IAAI,OAAyB;EACjE,IAAIA,IAAI,KAAkB,EAAE,OAAO,IAAI;EACvC,IAAIA,IAAI,KAAuB,EAAE,OAAO,KAAK;EAC7C,IAAIA,IAAI,MAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,OAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,IAAI,MAAM,EAAE;IAClB,OAAOA,IAAI,IAAI,IAAI,IAAIJ,kBAAkB,CAACU,IAAI,CAACC,MAAM,CAACC,YAAY,CAACR,IAAI,CAAC,CAAC;EAC3E;EACA,OACED,aAAa,CAACC,IAAI,EAAEH,0BAA0B,CAAC,IAC/CE,aAAa,CAACC,IAAI,EAAEF,qBAAqB,CAAC;AAE9C;AAIO,SAASY,gBAAgBA,CAACC,IAAY,EAAW;EACtD,IAAIC,OAAO,GAAG,IAAI;EAClB,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGQ,IAAI,CAACP,MAAM,EAAED,CAAC,EAAE,EAAE;IAKpC,IAAIU,EAAE,GAAGF,IAAI,CAACG,UAAU,CAACX,CAAC,CAAC;IAC3B,IAAI,CAACU,EAAE,GAAG,MAAM,MAAM,MAAM,IAAIV,CAAC,GAAG,CAAC,GAAGQ,IAAI,CAACP,MAAM,EAAE;MACnD,MAAMW,KAAK,GAAGJ,IAAI,CAACG,UAAU,CAAC,EAAEX,CAAC,CAAC;MAClC,IAAI,CAACY,KAAK,GAAG,MAAM,MAAM,MAAM,EAAE;QAC/BF,EAAE,GAAG,OAAO,IAAI,CAACA,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,IAAIE,KAAK,GAAG,KAAK,CAAC;MACvD;IACF;IACA,IAAIH,OAAO,EAAE;MACXA,OAAO,GAAG,KAAK;MACf,IAAI,CAACP,iBAAiB,CAACQ,EAAE,CAAC,EAAE;QAC1B,OAAO,KAAK;MACd;IACF,CAAC,MAAM,IAAI,CAACJ,gBAAgB,CAACI,EAAE,CAAC,EAAE;MAChC,OAAO,KAAK;IACd;EACF;EACA,OAAO,CAACD,OAAO;AACjB","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js b/node_modules/@babel/helper-validator-identifier/lib/index.js new file mode 100644 index 0000000..76b2282 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/index.js @@ -0,0 +1,57 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isIdentifierChar", { + enumerable: true, + get: function () { + return _identifier.isIdentifierChar; + } +}); +Object.defineProperty(exports, "isIdentifierName", { + enumerable: true, + get: function () { + return _identifier.isIdentifierName; + } +}); +Object.defineProperty(exports, "isIdentifierStart", { + enumerable: true, + get: function () { + return _identifier.isIdentifierStart; + } +}); +Object.defineProperty(exports, "isKeyword", { + enumerable: true, + get: function () { + return _keyword.isKeyword; + } +}); +Object.defineProperty(exports, "isReservedWord", { + enumerable: true, + get: function () { + return _keyword.isReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindOnlyReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindReservedWord; + } +}); +Object.defineProperty(exports, "isStrictReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictReservedWord; + } +}); +var _identifier = require("./identifier.js"); +var _keyword = require("./keyword.js"); + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js.map b/node_modules/@babel/helper-validator-identifier/lib/index.js.map new file mode 100644 index 0000000..d985f3b --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/node_modules/@babel/helper-validator-identifier/lib/keyword.js new file mode 100644 index 0000000..054cf84 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/keyword.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isKeyword = isKeyword; +exports.isReservedWord = isReservedWord; +exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +exports.isStrictBindReservedWord = isStrictBindReservedWord; +exports.isStrictReservedWord = isStrictReservedWord; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} + +//# sourceMappingURL=keyword.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map b/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map new file mode 100644 index 0000000..3471f78 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map @@ -0,0 +1 @@ +{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/package.json b/node_modules/@babel/helper-validator-identifier/package.json new file mode 100644 index 0000000..1aea38d --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/package.json @@ -0,0 +1,31 @@ +{ + "name": "@babel/helper-validator-identifier", + "version": "7.28.5", + "description": "Validate identifier/keywords name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-validator-identifier" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "devDependencies": { + "@unicode/unicode-17.0.0": "^1.6.10", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)", + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@babel/parser/CHANGELOG.md b/node_modules/@babel/parser/CHANGELOG.md new file mode 100644 index 0000000..b3840ac --- /dev/null +++ b/node_modules/@babel/parser/CHANGELOG.md @@ -0,0 +1,1073 @@ +# Changelog + +> **Tags:** +> - :boom: [Breaking Change] +> - :eyeglasses: [Spec Compliance] +> - :rocket: [New Feature] +> - :bug: [Bug Fix] +> - :memo: [Documentation] +> - :house: [Internal] +> - :nail_care: [Polish] + +> Semver Policy: https://github.com/babel/babel/tree/main/packages/babel-parser#semver + +_Note: Gaps between patch versions are faulty, broken or test releases._ + +See the [Babel Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) for the pre-6.8.0 version Changelog. + +## 6.17.1 (2017-05-10) + +### :bug: Bug Fix + * Fix typo in flow spread operator error (Brian Ng) + * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko) + * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko) + * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng) + * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng) + * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng) + * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng) + +## 6.17.0 (2017-04-20) + +### :bug: Bug Fix + * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie) + * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons) + * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng) + * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons) + * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng) + * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng) + +## 7.0.0-beta.8 (2017-04-04) + +### New Feature +* Add support for flow type spread (#418) (Conrad Buck) +* Allow statics in flow interfaces (#427) (Brian Ng) + +### Bug Fix +* Fix predicate attachment to match flow parser (#428) (Brian Ng) +* Add extra.raw back to JSXText and JSXAttribute (#344) (Alex Rattray) +* Fix rest parameters with array and objects (#424) (Brian Ng) +* Fix number parser (#433) (Alex Kuzmenko) + +### Docs +* Fix CONTRIBUTING.md [skip ci] (#432) (Alex Kuzmenko) + +### Internal +* Use babel-register script when running babel smoke tests (#442) (Brian Ng) + +## 7.0.0-beta.7 (2017-03-22) + +### Spec Compliance +* Remove babylon plugin for template revision since it's stage-4 (#426) (Henry Zhu) + +### Bug Fix + +* Fix push-pop logic in flow (#405) (Daniel Tschinder) + +## 7.0.0-beta.6 (2017-03-21) + +### New Feature +* Add support for invalid escapes in tagged templates (#274) (Kevin Gibbons) + +### Polish +* Improves error message when super is called outside of constructor (#408) (Arshabh Kumar Agarwal) + +### Docs + +* [7.0] Moved value field in spec from ObjectMember to ObjectProperty as ObjectMethod's don't have it (#415) [skip ci] (James Browning) + +## 7.0.0-beta.5 (2017-03-21) + +### Bug Fix +* Throw error if new.target is used outside of a function (#402) (Brian Ng) +* Fix parsing of class properties (#351) (Kevin Gibbons) + +### Other + * Test runner: Detect extra property in 'actual' but not in 'expected'. (#407) (Andy) + * Optimize travis builds (#419) (Daniel Tschinder) + * Update codecov to 2.0 (#412) (Daniel Tschinder) + * Fix spec for ClassMethod: It doesn't have a function, it *is* a function. (#406) [skip ci] (Andy) + * Changed Non-existent RestPattern to RestElement which is what is actually parsed (#409) [skip ci] (James Browning) + * Upgrade flow to 0.41 (Daniel Tschinder) + * Fix watch command (#403) (Brian Ng) + * Update yarn lock (Daniel Tschinder) + * Fix watch command (#403) (Brian Ng) + * chore(package): update flow-bin to version 0.41.0 (#395) (greenkeeper[bot]) + * Add estree test for correct order of directives (Daniel Tschinder) + * Add DoExpression to spec (#364) (Alex Kuzmenko) + * Mention cloning of repository in CONTRIBUTING.md (#391) [skip ci] (Sumedh Nimkarde) + * Explain how to run only one test (#389) [skip ci] (Aaron Ang) + + ## 7.0.0-beta.4 (2017-03-01) + +* Don't consume async when checking for async func decl (#377) (Brian Ng) +* add `ranges` option [skip ci] (Henry Zhu) +* Don't parse class properties without initializers when classProperties is disabled and Flow is enabled (#300) (Andrew Levine) + +## 7.0.0-beta.3 (2017-02-28) + +- [7.0] Change RestProperty/SpreadProperty to RestElement/SpreadElement (#384) +- Merge changes from 6.x + +## 7.0.0-beta.2 (2017-02-20) + +- estree: correctly change literals in all cases (#368) (Daniel Tschinder) + +## 7.0.0-beta.1 (2017-02-20) + +- Fix negative number literal typeannotations (#366) (Daniel Tschinder) +- Update contributing with more test info [skip ci] (#355) (Brian Ng) + +## 7.0.0-beta.0 (2017-02-15) + +- Reintroduce Variance node (#333) (Daniel Tschinder) +- Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) (Charles Pick) +- [7.0] Remove ForAwaitStatement, add await flag to ForOfStatement (#349) (Brandon Dail) +- chore(package): update ava to version 0.18.0 (#345) (greenkeeper[bot]) +- chore(package): update babel-plugin-istanbul to version 4.0.0 (#350) (greenkeeper[bot]) +- Change location of ObjectTypeIndexer to match flow (#228) (Daniel Tschinder) +- Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) (Toru Kobayashi) +- Revert "Temporary rollback for erroring on trailing comma with spread (#154)" (#290) (Daniel Tschinder) +- Remove classConstructorCall plugin (#291) (Brian Ng) +- Update yarn.lock (Daniel Tschinder) +- Update cross-env to 3.x (Daniel Tschinder) +- [7.0] Remove node 0.10, 0.12 and 5 from Travis (#284) (Sergey Rubanov) +- Remove `String.fromCodePoint` shim (#279) (Mathias Bynens) + +## 6.16.1 (2017-02-23) + +### :bug: Regression + +- Revert "Fix export default async function to be FunctionDeclaration" ([#375](https://github.com/babel/babylon/pull/375)) + +Need to modify Babel for this AST node change, so moving to 7.0. + +- Revert "Don't parse class properties without initializers when classProperties plugin is disabled, and Flow is enabled" ([#376](https://github.com/babel/babylon/pull/376)) + +[react-native](https://github.com/facebook/react-native/issues/12542) broke with this so we reverted. + +## 6.16.0 (2017-02-23) + +### :rocket: New Feature + +***ESTree*** compatibility as plugin ([#277](https://github.com/babel/babylon/pull/277)) (Daniel Tschinder) + +We finally introduce a new compatibility layer for ESTree. To put babylon into ESTree-compatible mode the new plugin `estree` can be enabled. In this mode the parser will output an AST that is compliant to the specs of [ESTree](https://github.com/estree/estree/) + +We highly recommend everyone who uses babylon outside of babel to use this plugin. This will make it much easier for users to switch between different ESTree-compatible parsers. We so far tested several projects with different parsers and exchanged their parser to babylon and in nearly all cases it worked out of the box. Some other estree-compatible parsers include `acorn`, `esprima`, `espree`, `flow-parser`, etc. + +To enable `estree` mode simply add the plugin in the config: +```json +{ + "plugins": [ "estree" ] +} +``` + +If you want to migrate your project from non-ESTree mode to ESTree, have a look at our [Readme](https://github.com/babel/babylon/#output), where all deviations are mentioned. + +Add a parseExpression public method ([#213](https://github.com/babel/babylon/pull/213)) (jeromew) + +Babylon exports a new function to parse a single expression + +```js +import { parseExpression } from 'babylon'; + +const ast = parseExpression('x || y && z', options); +``` + +The returned AST will only consist of the expression. The options are the same as for `parse()` + +Add startLine option ([#346](https://github.com/babel/babylon/pull/346)) (Raphael Mu) + +A new option was added to babylon allowing to change the initial linenumber for the first line which is usually `1`. +Changing this for example to `100` will make line `1` of the input source to be marked as line `100`, line `2` as `101`, line `3` as `102`, ... + +Function predicate declaration ([#103](https://github.com/babel/babylon/pull/103)) (Panagiotis Vekris) + +Added support for function predicates which flow introduced in version 0.33.0 + +```js +declare function is_number(x: mixed): boolean %checks(typeof x === "number"); +``` + +Allow imports in declare module ([#315](https://github.com/babel/babylon/pull/315)) (Daniel Tschinder) + +Added support for imports within module declarations which flow introduced in version 0.37.0 + +```js +declare module "C" { + import type { DT } from "D"; + declare export type CT = { D: DT }; +} +``` + +### :eyeglasses: Spec Compliance + +Forbid semicolons after decorators in classes ([#352](https://github.com/babel/babylon/pull/352)) (Kevin Gibbons) + +This example now correctly throws an error when there is a semicolon after the decorator: + +```js +class A { +@a; +foo(){} +} +``` + +Keywords are not allowed as local specifier ([#307](https://github.com/babel/babylon/pull/307)) (Daniel Tschinder) + +Using keywords in imports is not allowed anymore: + +```js +import { default } from "foo"; +import { a as debugger } from "foo"; +``` + +Do not allow overwritting of primitive types ([#314](https://github.com/babel/babylon/pull/314)) (Daniel Tschinder) + +In flow it is now forbidden to overwrite the primitive types `"any"`, `"mixed"`, `"empty"`, `"bool"`, `"boolean"`, `"number"`, `"string"`, `"void"` and `"null"` with your own type declaration. + +Disallow import type { type a } from … ([#305](https://github.com/babel/babylon/pull/305)) (Daniel Tschinder) + +The following code now correctly throws an error + +```js +import type { type a } from "foo"; +``` + +Don't parse class properties without initializers when classProperties is disabled and Flow is enabled ([#300](https://github.com/babel/babylon/pull/300)) (Andrew Levine) + +Ensure that you enable the `classProperties` plugin in order to enable correct parsing of class properties. Prior to this version it was possible to parse them by enabling the `flow` plugin but this was not intended the behaviour. + +If you enable the flow plugin you can only define the type of the class properties, but not initialize them. + +Fix export default async function to be FunctionDeclaration ([#324](https://github.com/babel/babylon/pull/324)) (Daniel Tschinder) + +Parsing the following code now returns a `FunctionDeclaration` AST node instead of `FunctionExpression`. + +```js +export default async function bar() {}; +``` + +### :nail_care: Polish + +Improve error message on attempt to destructure named import ([#288](https://github.com/babel/babylon/pull/288)) (Brian Ng) + +### :bug: Bug Fix + +Fix negative number literal typeannotations ([#366](https://github.com/babel/babylon/pull/366)) (Daniel Tschinder) + +Ensure takeDecorators is called on exported class ([#358](https://github.com/babel/babylon/pull/358)) (Brian Ng) + +ESTree: correctly change literals in all cases ([#368](https://github.com/babel/babylon/pull/368)) (Daniel Tschinder) + +Correctly convert RestProperty to Assignable ([#339](https://github.com/babel/babylon/pull/339)) (Daniel Tschinder) + +Fix #321 by allowing question marks in type params ([#338](https://github.com/babel/babylon/pull/338)) (Daniel Tschinder) + +Fix #336 by correctly setting arrow-param ([#337](https://github.com/babel/babylon/pull/337)) (Daniel Tschinder) + +Fix parse error when destructuring `set` with default value ([#317](https://github.com/babel/babylon/pull/317)) (Brian Ng) + +Fix ObjectTypeCallProperty static ([#298](https://github.com/babel/babylon/pull/298)) (Dan Harper) + + +### :house: Internal + +Fix generator-method-with-computed-name spec ([#360](https://github.com/babel/babylon/pull/360)) (Alex Rattray) + +Fix flow type-parameter-declaration test with unintended semantic ([#361](https://github.com/babel/babylon/pull/361)) (Alex Rattray) + +Cleanup and splitup parser functions ([#295](https://github.com/babel/babylon/pull/295)) (Daniel Tschinder) + +chore(package): update flow-bin to version 0.38.0 ([#313](https://github.com/babel/babylon/pull/313)) (greenkeeper[bot]) + +Call inner function instead of 1:1 copy to plugin ([#294](https://github.com/babel/babylon/pull/294)) (Daniel Tschinder) + +Update eslint-config-babel to the latest version 🚀 ([#299](https://github.com/babel/babylon/pull/299)) (greenkeeper[bot]) + +Update eslint-config-babel to the latest version 🚀 ([#293](https://github.com/babel/babylon/pull/293)) (greenkeeper[bot]) + +devDeps: remove eslint-plugin-babel ([#292](https://github.com/babel/babylon/pull/292)) (Kai Cataldo) + +Correct indent eslint rule config ([#276](https://github.com/babel/babylon/pull/276)) (Daniel Tschinder) + +Fail tests that have expected.json and throws-option ([#285](https://github.com/babel/babylon/pull/285)) (Daniel Tschinder) + +### :memo: Documentation + +Update contributing with more test info [skip ci] ([#355](https://github.com/babel/babylon/pull/355)) (Brian Ng) + +Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Timothy Gu) + +Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro) + +AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens) + +## 6.15.0 (2017-01-10) + +### :eyeglasses: Spec Compliance + +Add support for Flow shorthand import type ([#267](https://github.com/babel/babylon/pull/267)) (Jeff Morrison) + +This change implements flows new shorthand import syntax +and where previously you had to write this code: + +```js +import {someValue} from "blah"; +import type {someType} from "blah"; +import typeof {someOtherValue} from "blah"; +``` + +you can now write it like this: + +```js +import { + someValue, + type someType, + typeof someOtherValue, +} from "blah"; +``` + +For more information look at [this](https://github.com/facebook/flow/pull/2890) pull request. + +flow: allow leading pipes in all positions ([#256](https://github.com/babel/babylon/pull/256)) (Vladimir Kurchatkin) + +This change now allows a leading pipe everywhere types can be used: +```js +var f = (x): | 1 | 2 => 1; +``` + +Throw error when exporting non-declaration ([#241](https://github.com/babel/babylon/pull/241)) (Kai Cataldo) + +Previously babylon parsed the following exports, although they are not valid: +```js +export typeof foo; +export new Foo(); +export function() {}; +export for (;;); +export while(foo); +``` + +### :bug: Bug Fix + +Don't set inType flag when parsing property names ([#266](https://github.com/babel/babylon/pull/266)) (Vladimir Kurchatkin) + +This fixes parsing of this case: + +```js +const map = { + [age <= 17] : 'Too young' +}; +``` + +Fix source location for JSXEmptyExpression nodes (fixes #248) ([#249](https://github.com/babel/babylon/pull/249)) (James Long) + +The following case produced an invalid AST +```js +
{/* foo */}
+``` + +Use fromCodePoint to convert high value unicode entities ([#243](https://github.com/babel/babylon/pull/243)) (Ryan Duffy) + +When high value unicode entities (e.g. 💩) were used in the input source code they are now correctly encoded in the resulting AST. + +Rename folder to avoid Windows-illegal characters ([#281](https://github.com/babel/babylon/pull/281)) (Ryan Plant) + +Allow this.state.clone() when parsing decorators ([#262](https://github.com/babel/babylon/pull/262)) (Alex Rattray) + +### :house: Internal + +User external-helpers ([#254](https://github.com/babel/babylon/pull/254)) (Daniel Tschinder) + +Add watch script for dev ([#234](https://github.com/babel/babylon/pull/234)) (Kai Cataldo) + +Freeze current plugins list for "*" option, and remove from README.md ([#245](https://github.com/babel/babylon/pull/245)) (Andrew Levine) + +Prepare tests for multiple fixture runners. ([#240](https://github.com/babel/babylon/pull/240)) (Daniel Tschinder) + +Add some test coverage for decorators stage-0 plugin ([#250](https://github.com/babel/babylon/pull/250)) (Andrew Levine) + +Refactor tokenizer types file ([#263](https://github.com/babel/babylon/pull/263)) (Sven SAULEAU) + +Update eslint-config-babel to the latest version 🚀 ([#273](https://github.com/babel/babylon/pull/273)) (greenkeeper[bot]) + +chore(package): update rollup to version 0.41.0 ([#272](https://github.com/babel/babylon/pull/272)) (greenkeeper[bot]) + +chore(package): update flow-bin to version 0.37.0 ([#255](https://github.com/babel/babylon/pull/255)) (greenkeeper[bot]) + +## 6.14.1 (2016-11-17) + +### :bug: Bug Fix + +Allow `"plugins": ["*"]` ([#229](https://github.com/babel/babylon/pull/229)) (Daniel Tschinder) + +```js +{ + "plugins": ["*"] +} +``` + +Will include all parser plugins instead of specifying each one individually. Useful for tools like babel-eslint, jscodeshift, and ast-explorer. + +## 6.14.0 (2016-11-16) + +### :eyeglasses: Spec Compliance + +Throw error for reserved words `enum` and `await` ([#195](https://github.com/babel/babylon/pull/195)) (Kai Cataldo) + +[11.6.2.2 Future Reserved Words](http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words) + +Babylon will throw for more reserved words such as `enum` or `await` (in strict mode). + +``` +class enum {} // throws +class await {} // throws in strict mode (module) +``` + +Optional names for function types and object type indexers ([#197](https://github.com/babel/babylon/pull/197)) (Gabe Levi) + +So where you used to have to write + +```js +type A = (x: string, y: boolean) => number; +type B = (z: string) => number; +type C = { [key: string]: number }; +``` + +you can now write (with flow 0.34.0) + +```js +type A = (string, boolean) => number; +type B = string => number; +type C = { [string]: number }; +``` + +Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner) + +Supports these form now of specifying array types: + +```js +var a: number[][][][]; +var b: string[][]; +``` + +### :bug: Bug Fix + +Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223)) (Daniel Tschinder) + +``` +declare module "foo" { declare module.exports: number } +declare module "foo" { declare module.exports: number; } // also allowed now +``` + +### :house: Internal + + * Count Babel tests towards Babylon code coverage ([#182](https://github.com/babel/babylon/pull/182)) (Moti Zilberman) + * Fix strange line endings ([#214](https://github.com/babel/babylon/pull/214)) (Thomas Grainger) + * Add node 7 (Daniel Tschinder) + * chore(package): update flow-bin to version 0.34.0 ([#204](https://github.com/babel/babylon/pull/204)) (Greenkeeper) + +## v6.13.1 (2016-10-26) + +### :nail_care: Polish + +- Use rollup for bundling to speed up startup time ([#190](https://github.com/babel/babylon/pull/190)) ([@drewml](https://github.com/DrewML)) + +```js +const babylon = require('babylon'); +const ast = babylon.parse('var foo = "lol";'); +``` + +With that test case, there was a ~95ms savings by removing the need for node to build/traverse the dependency graph. + +**Without bundling** +![image](https://cloud.githubusercontent.com/assets/5233399/19420264/3133497e-93ad-11e6-9a6a-2da59c4f5c13.png) + +**With bundling** +![image](https://cloud.githubusercontent.com/assets/5233399/19420267/388f556e-93ad-11e6-813e-7c5c396be322.png) + +- add clean command [skip ci] ([#201](https://github.com/babel/babylon/pull/201)) (Henry Zhu) +- add ForAwaitStatement (async generator already added) [skip ci] ([#196](https://github.com/babel/babylon/pull/196)) (Henry Zhu) + +## v6.13.0 (2016-10-21) + +### :eyeglasses: Spec Compliance + +Property variance type annotations for Flow plugin ([#161](https://github.com/babel/babylon/pull/161)) (Sam Goldman) + +> See https://flowtype.org/docs/variance.html for more information + +```js +type T = { +p: T }; +interface T { -p: T }; +declare class T { +[k:K]: V }; +class T { -[k:K]: V }; +class C2 { +p: T = e }; +``` + +Raise error on duplicate definition of __proto__ ([#183](https://github.com/babel/babylon/pull/183)) (Moti Zilberman) + +```js +({ __proto__: 1, __proto__: 2 }) // Throws an error now +``` + +### :bug: Bug Fix + +Flow: Allow class properties to be named `static` ([#184](https://github.com/babel/babylon/pull/184)) (Moti Zilberman) + +```js +declare class A { + static: T; +} +``` + +Allow "async" as identifier for object literal property shorthand ([#187](https://github.com/babel/babylon/pull/187)) (Andrew Levine) + +```js +var foo = { async, bar }; +``` + +### :nail_care: Polish + +Fix flowtype and add inType to state ([#189](https://github.com/babel/babylon/pull/189)) (Daniel Tschinder) + +> This improves the performance slightly (because of hidden classes) + +### :house: Internal + +Fix .gitattributes line ending setting ([#191](https://github.com/babel/babylon/pull/191)) (Moti Zilberman) + +Increase test coverage ([#175](https://github.com/babel/babylon/pull/175) (Moti Zilberman) + +Readd missin .eslinignore for IDEs (Daniel Tschinder) + +Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman) + +Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman) + +Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman) + +## v6.12.0 (2016-10-14) + +### :eyeglasses: Spec Compliance + +Implement import() syntax ([#163](https://github.com/babel/babylon/pull/163)) (Jordan Gensler) + +#### Dynamic Import + +- Proposal Repo: https://github.com/domenic/proposal-dynamic-import +- Championed by [@domenic](https://github.com/domenic) +- stage-2 +- [sept-28 tc39 notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-09/sept-28.md#113a-import) + +> This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript + +```js +import(`./section-modules/${link.dataset.entryModule}.js`) +.then(module => { + module.loadPageInto(main); +}) +``` + +Add EmptyTypeAnnotation ([#171](https://github.com/babel/babylon/pull/171)) (Sam Goldman) + +#### EmptyTypeAnnotation + +Just wasn't covered before. + +```js +type T = empty; +``` + +### :bug: Bug Fix + +Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels) + +```js +// was failing due to sparse array +export const { foo: [ ,, qux7 ] } = bar; +``` + +Allow keyword in Flow object declaration property names with type parameters ([#146](https://github.com/babel/babylon/pull/146)) (Dan Harper) + +```js +declare class X { + foobar(): void; + static foobar(): void; +} +``` + +Allow keyword in object/class property names with Flow type parameters ([#145](https://github.com/babel/babylon/pull/145)) (Dan Harper) + +```js +class Foo { + delete(item: T): T { + return item; + } +} +``` + +Allow typeAnnotations for yield expressions ([#174](https://github.com/babel/babylon/pull/174))) (Daniel Tschinder) + +```js +function *foo() { + const x = (yield 5: any); +} +``` + +### :nail_care: Polish + +Annotate more errors with expected token ([#172](https://github.com/babel/babylon/pull/172))) (Moti Zilberman) + +```js +// Unexpected token, expected ; (1:6) +{ set 1 } +``` + +### :house: Internal + +Remove kcheck ([#173](https://github.com/babel/babylon/pull/173))) (Daniel Tschinder) + +Also run flow, linting, babel tests on separate instances (add back node 0.10) + +## v6.11.6 (2016-10-12) + +### :bug: Bug Fix/Regression + +Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels) + +```js +// was failing with `Cannot read property 'type' of null` because of null identifiers +export const { foo: [ ,, qux7 ] } = bar; +``` + +## v6.11.5 (2016-10-12) + +### :eyeglasses: Spec Compliance + +Fix: Check for duplicate named exports in exported destructuring assignments ([#144](https://github.com/babel/babylon/pull/144)) (Kai Cataldo) + +```js +// `foo` has already been exported. Exported identifiers must be unique. (2:20) +export function foo() {}; +export const { a: [{foo}] } = bar; +``` + +Fix: Check for duplicate named exports in exported rest elements/properties ([#164](https://github.com/babel/babylon/pull/164)) (Kai Cataldo) + +```js +// `foo` has already been exported. Exported identifiers must be unique. (2:22) +export const foo = 1; +export const [bar, ...foo] = baz; +``` + +### :bug: Bug Fix + +Fix: Allow identifier `async` for default param in arrow expression ([#165](https://github.com/babel/babylon/pull/165)) (Kai Cataldo) + +```js +// this is ok now +const test = ({async = true}) => {}; +``` + +### :nail_care: Polish + +Babylon will now print out the token it's expecting if there's a `SyntaxError` ([#150](https://github.com/babel/babylon/pull/150)) (Daniel Tschinder) + +```bash +# So in the case of a missing ending curly (`}`) +Module build failed: SyntaxError: Unexpected token, expected } (30:0) + 28 | } + 29 | +> 30 | + | ^ +``` + +## v6.11.4 (2016-10-03) + +Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu) + +## v6.11.3 (2016-10-01) + +### :eyeglasses: Spec Compliance + +Add static errors for object rest (#149) ([@danez](https://github.com/danez)) + +> https://github.com/sebmarkbage/ecmascript-rest-spread + +Object rest copies the *rest* of properties from the right hand side `obj` starting from the left to right. + +```js +let { x, y, ...z } = { x: 1, y: 2, z: 3 }; +// x = 1 +// y = 2 +// z = { z: 3 } +``` + +#### New Syntax Errors: + +**SyntaxError**: The rest element has to be the last element when destructuring (1:10) +```bash +> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3}; + | ^ +# Previous behavior: +# x = { x: 1, y: 2, z: 3 } +# y = 2 +# z = 3 +``` + +Before, this was just a more verbose way of shallow copying `obj` since it doesn't actually do what you think. + +**SyntaxError**: Cannot have multiple rest elements when destructuring (1:13) + +```bash +> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3}; + | ^ +# Previous behavior: +# x = 1 +# y = { y: 2, z: 3 } +# z = { y: 2, z: 3 } +``` + +Before y and z would just be the same value anyway so there is no reason to need to have both. + +**SyntaxError**: A trailing comma is not permitted after the rest element (1:16) + +```js +let { x, y, ...z, } = obj; +``` + +The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense. + +--- + +get / set are valid property names in default assignment (#142) ([@jezell](https://github.com/jezell)) + +```js +// valid +function something({ set = null, get = null }) {} +``` + +## v6.11.2 (2016-09-23) + +### Bug Fix + +- [#139](https://github.com/babel/babylon/issues/139) Don't do the duplicate check if not an identifier (#140) @hzoo + +```js +// regression with duplicate export check +SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13) + 20 | + 21 | export const { rhythm } = typography; +> 22 | export const { TypographyStyle } = typography +``` + +Bail out for now, and make a change to account for destructuring in the next release. + +## 6.11.1 (2016-09-22) + +### Bug Fix +- [#137](https://github.com/babel/babylon/pull/137) - Fix a regression with duplicate exports - it was erroring on all keys in `Object.prototype`. @danez + +```javascript +export toString from './toString'; +``` + +```bash +`toString` has already been exported. Exported identifiers must be unique. (1:7) +> 1 | export toString from './toString'; + | ^ + 2 | +``` + +## 6.11.0 (2016-09-22) + +### Spec Compliance (will break CI) + +- Disallow duplicate named exports ([#107](https://github.com/babel/babylon/pull/107)) @kaicataldo + +```js +// Only one default export allowed per module. (2:9) +export default function() {}; +export { foo as default }; + +// Only one default export allowed per module. (2:0) +export default {}; +export default function() {}; + +// `Foo` has already been exported. Exported identifiers must be unique. (2:0) +export { Foo }; +export class Foo {}; +``` + +### New Feature (Syntax) + +- Add support for computed class property names ([#121](https://github.com/babel/babylon/pull/121)) @motiz88 + +```js +// AST +interface ClassProperty <: Node { + type: "ClassProperty"; + key: Identifier; + value: Expression; + computed: boolean; // added +} +``` + +```js +// with "plugins": ["classProperties"] +class Foo { + [x] + ['y'] +} + +class Bar { + [p] + [m] () {} +} + ``` + +### Bug Fix + +- Fix `static` property falling through in the declare class Flow AST ([#135](https://github.com/babel/babylon/pull/135)) @danharper + +```js +declare class X { + a: number; + static b: number; // static + c: number; // this was being marked as static in the AST as well +} +``` + +### Polish + +- Rephrase "assigning/binding to rvalue" errors to include context ([#119](https://github.com/babel/babylon/pull/119)) @motiz88 + +```js +// Used to error with: +// SyntaxError: Assigning to rvalue (1:0) + +// Now: +// Invalid left-hand side in assignment expression (1:0) +3 = 4 + +// Invalid left-hand side in for-in statement (1:5) +for (+i in {}); +``` + +### Internal + +- Fix call to `this.parseMaybeAssign` with correct arguments ([#133](https://github.com/babel/babylon/pull/133)) @danez +- Add semver note to changelog ([#131](https://github.com/babel/babylon/pull/131)) @hzoo + +## 6.10.0 (2016-09-19) + +> We plan to include some spec compliance bugs in patch versions. An example was the multiple default exports issue. + +### Spec Compliance + +* Implement ES2016 check for simple parameter list in strict mode ([#106](https://github.com/babel/babylon/pull/106)) (Timothy Gu) + +> It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors + +More Context: [tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-29.md#611-the-scope-of-use-strict-with-respect-to-destructuring-in-parameter-lists) + +For example: + +```js +// this errors because it uses destructuring and default parameters +// in a function with a "use strict" directive +function a([ option1, option2 ] = []) { + "use strict"; +} + ``` + +The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to. + +### New Feature + +* Exact object type annotations for Flow plugin ([#104](https://github.com/babel/babylon/pull/104)) (Basil Hosmer) + +Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8 + +Looks like: + +```js +var a : {| x: number, y: string |} = { x: 0, y: 'foo' }; +``` + +### Bug Fixes + +* Include `typeParameter` location in `ArrowFunctionExpression` ([#126](https://github.com/babel/babylon/pull/126)) (Daniel Tschinder) +* Error on invalid flow type annotation with default assignment ([#122](https://github.com/babel/babylon/pull/122)) (Dan Harper) +* Fix Flow return types on arrow functions ([#124](https://github.com/babel/babylon/pull/124)) (Dan Harper) + +### Misc + +* Add tests for export extensions ([#127](https://github.com/babel/babylon/pull/127)) (Daniel Tschinder) +* Fix Contributing guidelines [skip ci] (Daniel Tschinder) + +## 6.9.2 (2016-09-09) + +The only change is to remove the `babel-runtime` dependency by compiling with Babel's ES2015 loose mode. So using babylon standalone should be smaller. + +## 6.9.1 (2016-08-23) + +This release contains mainly small bugfixes but also updates babylons default mode to es2017. The features for `exponentiationOperator`, `asyncFunctions` and `trailingFunctionCommas` which previously needed to be activated via plugin are now enabled by default and the plugins are now no-ops. + +### Bug Fixes + +- Fix issues with default object params in async functions ([#96](https://github.com/babel/babylon/pull/96)) @danez +- Fix issues with flow-types and async function ([#95](https://github.com/babel/babylon/pull/95)) @danez +- Fix arrow functions with destructuring, types & default value ([#94](https://github.com/babel/babylon/pull/94)) @danharper +- Fix declare class with qualified type identifier ([#97](https://github.com/babel/babylon/pull/97)) @danez +- Remove exponentiationOperator, asyncFunctions, trailingFunctionCommas plugins and enable them by default ([#98](https://github.com/babel/babylon/pull/98)) @danez + +## 6.9.0 (2016-08-16) + +### New syntax support + +- Add JSX spread children ([#42](https://github.com/babel/babylon/pull/42)) @calebmer + +(Be aware that React is not going to support this syntax) + +```js +
+ {...todos.map(todo => )} +
+``` + +- Add support for declare module.exports ([#72](https://github.com/babel/babylon/pull/72)) @danez + +```js +declare module "foo" { + declare module.exports: {} +} +``` + +### New Features + +- If supplied, attach filename property to comment node loc. ([#80](https://github.com/babel/babylon/pull/80)) @divmain +- Add identifier name to node loc field ([#90](https://github.com/babel/babylon/pull/90)) @kittens + +### Bug Fixes + +- Fix exponential operator to behave according to spec ([#75](https://github.com/babel/babylon/pull/75)) @danez +- Fix lookahead to not add comments to arrays which are not cloned ([#76](https://github.com/babel/babylon/pull/76)) @danez +- Fix accidental fall-through in Flow type parsing. ([#82](https://github.com/babel/babylon/pull/82)) @xiemaisi +- Only allow declares inside declare module ([#73](https://github.com/babel/babylon/pull/73)) @danez +- Small fix for parsing type parameter declarations ([#83](https://github.com/babel/babylon/pull/83)) @gabelevi +- Fix arrow param locations with flow types ([#57](https://github.com/babel/babylon/pull/57)) @danez +- Fixes SyntaxError position with flow optional type ([#65](https://github.com/babel/babylon/pull/65)) @danez + +### Internal + +- Add codecoverage to tests @danez +- Fix tests to not save expected output if we expect the test to fail @danez +- Make a shallow clone of babel for testing @danez +- chore(package): update cross-env to version 2.0.0 ([#77](https://github.com/babel/babylon/pull/77)) @greenkeeperio-bot +- chore(package): update ava to version 0.16.0 ([#86](https://github.com/babel/babylon/pull/86)) @greenkeeperio-bot +- chore(package): update babel-plugin-istanbul to version 2.0.0 ([#89](https://github.com/babel/babylon/pull/89)) @greenkeeperio-bot +- chore(package): update nyc to version 8.0.0 ([#88](https://github.com/babel/babylon/pull/88)) @greenkeeperio-bot + +## 6.8.4 (2016-07-06) + +### Bug Fixes + +- Fix the location of params, when flow and default value used ([#68](https://github.com/babel/babylon/pull/68)) @danez + +## 6.8.3 (2016-07-02) + +### Bug Fixes + +- Fix performance regression introduced in 6.8.2 with conditionals ([#63](https://github.com/babel/babylon/pull/63)) @danez + +## 6.8.2 (2016-06-24) + +### Bug Fixes + +- Fix parse error with yielding jsx elements in generators `function* it() { yield ; }` ([#31](https://github.com/babel/babylon/pull/31)) @eldereal +- When cloning nodes do not clone its comments ([#24](https://github.com/babel/babylon/pull/24)) @danez +- Fix parse errors when using arrow functions with an spread element and return type `(...props): void => {}` ([#10](https://github.com/babel/babylon/pull/10)) @danez +- Fix leading comments added from previous node ([#23](https://github.com/babel/babylon/pull/23)) @danez +- Fix parse errors with flow's optional arguments `(arg?) => {}` ([#19](https://github.com/babel/babylon/pull/19)) @danez +- Support negative numeric type literals @kittens +- Remove line terminator restriction after await keyword @kittens +- Remove grouped type arrow restriction as it seems flow no longer has it @kittens +- Fix parse error with generic methods that have the name `get` or `set` `class foo { get() {} }` ([#55](https://github.com/babel/babylon/pull/55)) @vkurchatkin +- Fix parse error with arrow functions that have flow type parameter declarations `(x: T): T => x;` ([#54](https://github.com/babel/babylon/pull/54)) @gabelevi + +### Documentation + +- Document AST differences from ESTree ([#41](https://github.com/babel/babylon/pull/41)) @nene +- Move ast spec from babel/babel ([#46](https://github.com/babel/babylon/pull/46)) @hzoo + +### Internal + +- Enable skipped tests ([#16](https://github.com/babel/babylon/pull/16)) @danez +- Add script to test latest version of babylon with babel ([#21](https://github.com/babel/babylon/pull/21)) @danez +- Upgrade test runner ava @kittens +- Add missing generate-identifier-regex script @kittens +- Rename parser context types @kittens +- Add node v6 to travis testing @hzoo +- Update to Unicode v9 ([#45](https://github.com/babel/babylon/pull/45)) @mathiasbynens + +## 6.8.1 (2016-06-06) + +### New Feature + +- Parse type parameter declarations with defaults like `type Foo = T` + +### Bug Fixes +- Type parameter declarations need 1 or more type parameters. +- The existential type `*` is not a valid type parameter. +- The existential type `*` is a primary type + +### Spec Compliance +- The param list for type parameter declarations now consists of `TypeParameter` nodes +- New `TypeParameter` AST Node (replaces using the `Identifier` node before) + +``` +interface TypeParameter <: Node { + bound: TypeAnnotation; + default: TypeAnnotation; + name: string; + variance: "plus" | "minus"; +} +``` + +## 6.8.0 (2016-05-02) + +#### New Feature + +##### Parse Method Parameter Decorators ([#12](https://github.com/babel/babylon/pull/12)) + +> [Method Parameter Decorators](https://goo.gl/8MmCMG) is now a TC39 [stage 0 proposal](https://github.com/tc39/ecma262/blob/master/stage0.md). + +Examples: + +```js +class Foo { + constructor(@foo() x, @bar({ a: 123 }) @baz() y) {} +} + +export default function func(@foo() x, @bar({ a: 123 }) @baz() y) {} + +var obj = { + method(@foo() x, @bar({ a: 123 }) @baz() y) {} +}; +``` + +##### Parse for-await statements (w/ `asyncGenerators` plugin) ([#17](https://github.com/babel/babylon/pull/17)) + +There is also a new node type, `ForAwaitStatement`. + +> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals). + +Example: + +```js +async function f() { + for await (let x of y); +} +``` diff --git a/node_modules/@babel/parser/LICENSE b/node_modules/@babel/parser/LICENSE new file mode 100644 index 0000000..d4c7fc5 --- /dev/null +++ b/node_modules/@babel/parser/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2012-2014 by various contributors (see AUTHORS) + +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. diff --git a/node_modules/@babel/parser/README.md b/node_modules/@babel/parser/README.md new file mode 100644 index 0000000..a9463e8 --- /dev/null +++ b/node_modules/@babel/parser/README.md @@ -0,0 +1,19 @@ +# @babel/parser + +> A JavaScript parser + +See our website [@babel/parser](https://babeljs.io/docs/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/parser +``` + +or using yarn: + +```sh +yarn add @babel/parser --dev +``` diff --git a/node_modules/@babel/parser/bin/babel-parser.js b/node_modules/@babel/parser/bin/babel-parser.js new file mode 100755 index 0000000..4808c5e --- /dev/null +++ b/node_modules/@babel/parser/bin/babel-parser.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node +/* eslint-disable no-var, unicorn/prefer-node-protocol */ + +var parser = require(".."); +var fs = require("fs"); + +var filename = process.argv[2]; +if (!filename) { + console.error("no filename specified"); +} else { + var file = fs.readFileSync(filename, "utf8"); + var ast = parser.parse(file); + + console.log(JSON.stringify(ast, null, " ")); +} diff --git a/node_modules/@babel/parser/lib/index.js b/node_modules/@babel/parser/lib/index.js new file mode 100644 index 0000000..fa6628c --- /dev/null +++ b/node_modules/@babel/parser/lib/index.js @@ -0,0 +1,14582 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (-1 !== e.indexOf(n)) continue; + t[n] = r[n]; + } + return t; +} +class Position { + constructor(line, col, index) { + this.line = void 0; + this.column = void 0; + this.index = void 0; + this.line = line; + this.column = col; + this.index = index; + } +} +class SourceLocation { + constructor(start, end) { + this.start = void 0; + this.end = void 0; + this.filename = void 0; + this.identifierName = void 0; + this.start = start; + this.end = end; + } +} +function createPositionWithColumnOffset(position, columnOffset) { + const { + line, + column, + index + } = position; + return new Position(line, column + columnOffset, index + columnOffset); +} +const code = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"; +var ModuleErrors = { + ImportMetaOutsideModule: { + message: `import.meta may appear only with 'sourceType: "module"'`, + code + }, + ImportOutsideModule: { + message: `'import' and 'export' may appear only with 'sourceType: "module"'`, + code + } +}; +const NodeDescriptions = { + ArrayPattern: "array destructuring pattern", + AssignmentExpression: "assignment expression", + AssignmentPattern: "assignment expression", + ArrowFunctionExpression: "arrow function expression", + ConditionalExpression: "conditional expression", + CatchClause: "catch clause", + ForOfStatement: "for-of statement", + ForInStatement: "for-in statement", + ForStatement: "for-loop", + FormalParameters: "function parameter list", + Identifier: "identifier", + ImportSpecifier: "import specifier", + ImportDefaultSpecifier: "import default specifier", + ImportNamespaceSpecifier: "import namespace specifier", + ObjectPattern: "object destructuring pattern", + ParenthesizedExpression: "parenthesized expression", + RestElement: "rest element", + UpdateExpression: { + true: "prefix operation", + false: "postfix operation" + }, + VariableDeclarator: "variable declaration", + YieldExpression: "yield expression" +}; +const toNodeDescription = node => node.type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type]; +var StandardErrors = { + AccessorIsGenerator: ({ + kind + }) => `A ${kind}ter cannot be a generator.`, + ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", + AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", + AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", + AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", + AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", + AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", + BadGetterArity: "A 'get' accessor must not have any formal parameters.", + BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", + BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", + ConstructorClassField: "Classes may not have a field named 'constructor'.", + ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", + ConstructorIsAccessor: "Class constructor may not be an accessor.", + ConstructorIsAsync: "Constructor can't be an async function.", + ConstructorIsGenerator: "Constructor can't be a generator.", + DeclarationMissingInitializer: ({ + kind + }) => `Missing initializer in ${kind} declaration.`, + DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.", + DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.", + DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.", + DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", + DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.", + DecoratorSemicolon: "Decorators must not be followed by a semicolon.", + DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.', + DeletePrivateField: "Deleting a private field is not allowed.", + DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", + DuplicateConstructor: "Duplicate constructor in the same class.", + DuplicateDefaultExport: "Only one default export allowed per module.", + DuplicateExport: ({ + exportName + }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, + DuplicateProto: "Redefinition of __proto__ property.", + DuplicateRegExpFlags: "Duplicate regular expression flag.", + ElementAfterRest: "Rest element must be last element.", + EscapedCharNotAnIdentifier: "Invalid Unicode escape.", + ExportBindingIsString: ({ + localName, + exportName + }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`, + ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", + ForInOfLoopInitializer: ({ + type + }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, + ForInUsing: "For-in loop may not start with 'using' declaration.", + ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", + ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", + GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", + IllegalBreakContinue: ({ + type + }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, + IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", + IllegalReturn: "'return' outside of function.", + ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.", + ImportBindingIsString: ({ + importName + }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, + ImportCallArity: `\`import()\` requires exactly one or two arguments.`, + ImportCallNotNewExpression: "Cannot use new with import(...).", + ImportCallSpreadArgument: "`...` is not allowed in `import()`.", + ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", + ImportReflectionHasAssertion: "`import module x` cannot have assertions.", + ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.', + IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", + InvalidBigIntLiteral: "Invalid BigIntLiteral.", + InvalidCodePoint: "Code point out of bounds.", + InvalidCoverDiscardElement: "'void' must be followed by an expression when not used in a binding position.", + InvalidCoverInitializedName: "Invalid shorthand property initializer.", + InvalidDecimal: "Invalid decimal.", + InvalidDigit: ({ + radix + }) => `Expected number in radix ${radix}.`, + InvalidEscapeSequence: "Bad character escape sequence.", + InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", + InvalidEscapedReservedWord: ({ + reservedWord + }) => `Escape sequence in keyword ${reservedWord}.`, + InvalidIdentifier: ({ + identifierName + }) => `Invalid identifier ${identifierName}.`, + InvalidLhs: ({ + ancestor + }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsBinding: ({ + ancestor + }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsOptionalChaining: ({ + ancestor + }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`, + InvalidNumber: "Invalid number.", + InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", + InvalidOrUnexpectedToken: ({ + unexpected + }) => `Unexpected character '${unexpected}'.`, + InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", + InvalidPrivateFieldResolution: ({ + identifierName + }) => `Private name #${identifierName} is not defined.`, + InvalidPropertyBindingPattern: "Binding member expression.", + InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", + InvalidRestAssignmentPattern: "Invalid rest operator's argument.", + LabelRedeclaration: ({ + labelName + }) => `Label '${labelName}' is already declared.`, + LetInLexicalBinding: "'let' is disallowed as a lexically bound name.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", + MalformedRegExpFlags: "Invalid regular expression flag.", + MissingClassName: "A class name is required.", + MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", + MissingSemicolon: "Missing semicolon.", + MissingPlugin: ({ + missingPlugin + }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingOneOfPlugins: ({ + missingPlugin + }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", + MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", + ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", + ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", + ModuleAttributesWithDuplicateKeys: ({ + key + }) => `Duplicate key "${key}" is not allowed in module attributes.`, + ModuleExportNameHasLoneSurrogate: ({ + surrogateCharCode + }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`, + ModuleExportUndefined: ({ + localName + }) => `Export '${localName}' is not defined.`, + MultipleDefaultsInSwitch: "Multiple default clauses.", + NewlineAfterThrow: "Illegal newline after throw.", + NoCatchOrFinally: "Missing catch or finally clause.", + NumberIdentifier: "Identifier directly after number.", + NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", + ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", + OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", + OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", + OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", + ParamDupe: "Argument name clash.", + PatternHasAccessor: "Object pattern can't contain getter or setter.", + PatternHasMethod: "Object pattern can't contain methods.", + PrivateInExpectedIn: ({ + identifierName + }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`, + PrivateNameRedeclaration: ({ + identifierName + }) => `Duplicate private name #${identifierName}.`, + RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + RecordNoProto: "'__proto__' is not allowed in Record expressions.", + RestTrailingComma: "Unexpected trailing comma after rest element.", + SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.", + SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.', + StaticPrototype: "Classes may not have static property named prototype.", + SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", + SuperPrivateField: "Private fields can't be accessed on super.", + TrailingDecorator: "Decorators must be attached to a class element.", + TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", + UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', + UnexpectedDigitAfterHash: "Unexpected digit after hash token.", + UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", + UnexpectedKeyword: ({ + keyword + }) => `Unexpected keyword '${keyword}'.`, + UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", + UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", + UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", + UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", + UnexpectedPrivateField: "Unexpected private name.", + UnexpectedReservedWord: ({ + reservedWord + }) => `Unexpected reserved word '${reservedWord}'.`, + UnexpectedSuper: "'super' is only allowed in object methods and classes.", + UnexpectedToken: ({ + expected, + unexpected + }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, + UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.", + UnexpectedVoidPattern: "Unexpected void binding.", + UnsupportedBind: "Binding should be performed on object property.", + UnsupportedDecoratorExport: "A decorated export must export a class declaration.", + UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", + UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", + UnsupportedMetaProperty: ({ + target, + onlyValidPropertyName + }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`, + UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", + UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", + UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", + UnterminatedComment: "Unterminated comment.", + UnterminatedRegExp: "Unterminated regular expression.", + UnterminatedString: "Unterminated string constant.", + UnterminatedTemplate: "Unterminated template.", + UsingDeclarationExport: "Using declaration cannot be exported.", + UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", + VarRedeclaration: ({ + identifierName + }) => `Identifier '${identifierName}' has already been declared.`, + VoidPatternCatchClauseParam: "A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.", + VoidPatternInitializer: "A void binding may not have an initializer.", + YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", + YieldInParameter: "Yield expression is not allowed in formal parameters.", + YieldNotInGeneratorFunction: "'yield' is only allowed within generator functions.", + ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." +}; +var StrictModeErrors = { + StrictDelete: "Deleting local variable in strict mode.", + StrictEvalArguments: ({ + referenceName + }) => `Assigning to '${referenceName}' in strict mode.`, + StrictEvalArgumentsBinding: ({ + bindingName + }) => `Binding '${bindingName}' in strict mode.`, + StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", + StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", + StrictWith: "'with' in strict mode." +}; +var ParseExpressionErrors = { + ParseExpressionEmptyInput: "Unexpected parseExpression() input: The input is empty or contains only comments.", + ParseExpressionExpectsEOF: ({ + unexpected + }) => `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \`${String.fromCodePoint(unexpected)}\`.` +}; +const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); +var PipelineOperatorErrors = Object.assign({ + PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: ({ + token + }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`, + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", + PipeUnparenthesizedBody: ({ + type + }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ + type + })}; please wrap it in parentheses.` +}, { + PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', + PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", + PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", + PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", + PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' +}); +const _excluded = ["message"]; +function defineHidden(obj, key, value) { + Object.defineProperty(obj, key, { + enumerable: false, + configurable: true, + value + }); +} +function toParseErrorConstructor({ + toMessage, + code, + reasonCode, + syntaxPlugin +}) { + const hasMissingPlugin = reasonCode === "MissingPlugin" || reasonCode === "MissingOneOfPlugins"; + const oldReasonCodes = { + AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter", + AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference", + SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter", + SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter", + SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType" + }; + if (oldReasonCodes[reasonCode]) { + reasonCode = oldReasonCodes[reasonCode]; + } + return function constructor(loc, details) { + const error = new SyntaxError(); + error.code = code; + error.reasonCode = reasonCode; + error.loc = loc; + error.pos = loc.index; + error.syntaxPlugin = syntaxPlugin; + if (hasMissingPlugin) { + error.missingPlugin = details.missingPlugin; + } + defineHidden(error, "clone", function clone(overrides = {}) { + var _overrides$loc; + const { + line, + column, + index + } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc; + return constructor(new Position(line, column, index), Object.assign({}, details, overrides.details)); + }); + defineHidden(error, "details", details); + Object.defineProperty(error, "message", { + configurable: true, + get() { + const message = `${toMessage(details)} (${loc.line}:${loc.column})`; + this.message = message; + return message; + }, + set(value) { + Object.defineProperty(this, "message", { + value, + writable: true + }); + } + }); + return error; + }; +} +function ParseErrorEnum(argument, syntaxPlugin) { + if (Array.isArray(argument)) { + return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]); + } + const ParseErrorConstructors = {}; + for (const reasonCode of Object.keys(argument)) { + const template = argument[reasonCode]; + const _ref = typeof template === "string" ? { + message: () => template + } : typeof template === "function" ? { + message: template + } : template, + { + message + } = _ref, + rest = _objectWithoutPropertiesLoose(_ref, _excluded); + const toMessage = typeof message === "string" ? () => message : message; + ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ + code: "BABEL_PARSER_SYNTAX_ERROR", + reasonCode, + toMessage + }, syntaxPlugin ? { + syntaxPlugin + } : {}, rest)); + } + return ParseErrorConstructors; +} +const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum(ParseExpressionErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); +function createDefaultOptions() { + return { + sourceType: "script", + sourceFilename: undefined, + startIndex: 0, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowNewTargetOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + allowYieldOutsideFunction: false, + plugins: [], + strictMode: undefined, + ranges: false, + tokens: false, + createImportExpressions: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true, + annexB: true + }; +} +function getOptions(opts) { + const options = createDefaultOptions(); + if (opts == null) { + return options; + } + if (opts.annexB != null && opts.annexB !== false) { + throw new Error("The `annexB` option can only be set to `false`."); + } + for (const key of Object.keys(options)) { + if (opts[key] != null) options[key] = opts[key]; + } + if (options.startLine === 1) { + if (opts.startIndex == null && options.startColumn > 0) { + options.startIndex = options.startColumn; + } else if (opts.startColumn == null && options.startIndex > 0) { + options.startColumn = options.startIndex; + } + } else if (opts.startColumn == null || opts.startIndex == null) { + if (opts.startIndex != null) { + throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`."); + } + } + if (options.sourceType === "commonjs") { + if (opts.allowAwaitOutsideFunction != null) { + throw new Error("The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`."); + } + if (opts.allowReturnOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`."); + } + if (opts.allowNewTargetOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`."); + } + } + return options; +} +const { + defineProperty +} = Object; +const toUnenumerable = (object, key) => { + if (object) { + defineProperty(object, key, { + enumerable: false, + value: object[key] + }); + } +}; +function toESTreeLocation(node) { + toUnenumerable(node.loc.start, "index"); + toUnenumerable(node.loc.end, "index"); + return node; +} +var estree = superClass => class ESTreeParserMixin extends superClass { + parse() { + const file = toESTreeLocation(super.parse()); + if (this.optionFlags & 256) { + file.tokens = file.tokens.map(toESTreeLocation); + } + return file; + } + parseRegExpLiteral({ + pattern, + flags + }) { + let regex = null; + try { + regex = new RegExp(pattern, flags); + } catch (_) {} + const node = this.estreeParseLiteral(regex); + node.regex = { + pattern, + flags + }; + return node; + } + parseBigIntLiteral(value) { + let bigInt; + try { + bigInt = BigInt(value); + } catch (_unused) { + bigInt = null; + } + const node = this.estreeParseLiteral(bigInt); + node.bigint = String(node.value || value); + return node; + } + parseDecimalLiteral(value) { + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + return node; + } + estreeParseLiteral(value) { + return this.parseLiteral(value, "Literal"); + } + parseStringLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNumericLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNullLiteral() { + return this.estreeParseLiteral(null); + } + parseBooleanLiteral(value) { + return this.estreeParseLiteral(value); + } + estreeParseChainExpression(node, endLoc) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNodeAt(chain, "ChainExpression", endLoc); + } + directiveToStmt(directive) { + const expression = directive.value; + delete directive.value; + this.castNodeTo(expression, "Literal"); + expression.raw = expression.extra.raw; + expression.value = expression.extra.expressionValue; + const stmt = this.castNodeTo(directive, "ExpressionStatement"); + stmt.expression = expression; + stmt.directive = expression.extra.rawValue; + delete expression.extra; + return stmt; + } + fillOptionalPropertiesForTSESLint(node) {} + cloneEstreeStringLiteral(node) { + const { + start, + end, + loc, + range, + raw, + value + } = node; + const cloned = Object.create(node.constructor.prototype); + cloned.type = "Literal"; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.raw = raw; + cloned.value = value; + return cloned; + } + initFunction(node, isAsync) { + super.initFunction(node, isAsync); + node.expression = false; + } + checkDeclaration(node) { + if (node != null && this.isObjectProperty(node)) { + this.checkDeclaration(node.value); + } else { + super.checkDeclaration(node); + } + } + getObjectOrClassMethodParams(method) { + return method.value.params; + } + isValidDirective(stmt) { + var _stmt$expression$extr; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse); + const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); + node.body = directiveStatements.concat(node.body); + delete node.directives; + } + parsePrivateName() { + const node = super.parsePrivateName(); + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } + return this.convertPrivateNameToPrivateIdentifier(node); + } + convertPrivateNameToPrivateIdentifier(node) { + const name = super.getPrivateNameSV(node); + delete node.id; + node.name = name; + return this.castNodeTo(node, "PrivateIdentifier"); + } + isPrivateName(node) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } + return node.type === "PrivateIdentifier"; + } + getPrivateNameSV(node) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } + return node.name; + } + parseLiteral(value, type) { + const node = super.parseLiteral(value, type); + node.raw = node.extra.raw; + delete node.extra; + return node; + } + parseFunctionBody(node, allowExpression, isMethod = false) { + super.parseFunctionBody(node, allowExpression, isMethod); + node.expression = node.body.type !== "BlockStatement"; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + let funcNode = this.startNode(); + funcNode.kind = node.kind; + funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + delete funcNode.kind; + const { + typeParameters + } = node; + if (typeParameters) { + delete node.typeParameters; + funcNode.typeParameters = typeParameters; + this.resetStartLocationFromNode(funcNode, typeParameters); + } + const valueNode = this.castNodeTo(funcNode, "FunctionExpression"); + node.value = valueNode; + if (type === "ClassPrivateMethod") { + node.computed = false; + } + if (type === "ObjectMethod") { + if (node.kind === "method") { + node.kind = "init"; + } + node.shorthand = false; + return this.finishNode(node, "Property"); + } else { + return this.finishNode(node, "MethodDefinition"); + } + } + nameIsConstructor(key) { + if (key.type === "Literal") return key.value === "constructor"; + return super.nameIsConstructor(key); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + propertyNode.computed = false; + return propertyNode; + } + parseClassAccessorProperty(node) { + const accessorPropertyNode = super.parseClassAccessorProperty(node); + if (!this.getPluginOption("estree", "classFeatures")) { + return accessorPropertyNode; + } + if (accessorPropertyNode.abstract && this.hasPlugin("typescript")) { + delete accessorPropertyNode.abstract; + this.castNodeTo(accessorPropertyNode, "TSAbstractAccessorProperty"); + } else { + this.castNodeTo(accessorPropertyNode, "AccessorProperty"); + } + return accessorPropertyNode; + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (node) { + node.kind = "init"; + this.castNodeTo(node, "Property"); + } + return node; + } + finishObjectProperty(node) { + node.kind = "init"; + return this.finishNode(node, "Property"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { + if (node != null && this.isObjectProperty(node)) { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + } else { + super.toAssignable(node, isLHS); + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "Property" && (prop.kind === "get" || prop.kind === "set")) { + this.raise(Errors.PatternHasAccessor, prop.key); + } else if (prop.type === "Property" && prop.method) { + this.raise(Errors.PatternHasMethod, prop.key); + } else { + super.toAssignableObjectExpressionProp(prop, isLast, isLHS); + } + } + finishCallExpression(unfinished, optional) { + const node = super.finishCallExpression(unfinished, optional); + if (node.callee.type === "Import") { + var _ref, _ref2; + this.castNodeTo(node, "ImportExpression"); + node.source = node.arguments[0]; + node.options = (_ref = node.arguments[1]) != null ? _ref : null; + node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null; + delete node.arguments; + delete node.callee; + } else if (node.type === "OptionalCallExpression") { + this.castNodeTo(node, "CallExpression"); + } else { + node.optional = false; + } + return node; + } + toReferencedArguments(node) { + if (node.type === "ImportExpression") { + return; + } + super.toReferencedArguments(node); + } + parseExport(unfinished, decorators) { + const exportStartLoc = this.state.lastTokStartLoc; + const node = super.parseExport(unfinished, decorators); + switch (node.type) { + case "ExportAllDeclaration": + node.exported = null; + break; + case "ExportNamedDeclaration": + if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { + this.castNodeTo(node, "ExportAllDeclaration"); + node.exported = node.specifiers[0].exported; + delete node.specifiers; + } + case "ExportDefaultDeclaration": + { + var _declaration$decorato; + const { + declaration + } = node; + if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) { + this.resetStartLocation(node, exportStartLoc); + } + } + break; + } + return node; + } + stopParseSubscript(base, state) { + const node = super.stopParseSubscript(base, state); + if (state.optionalChainMember) { + return this.estreeParseChainExpression(node, base.loc.end); + } + return node; + } + parseMember(base, startLoc, state, computed, optional) { + const node = super.parseMember(base, startLoc, state, computed, optional); + if (node.type === "OptionalMemberExpression") { + this.castNodeTo(node, "MemberExpression"); + } else { + node.optional = false; + } + return node; + } + isOptionalMemberExpression(node) { + if (node.type === "ChainExpression") { + return node.expression.type === "MemberExpression"; + } + return super.isOptionalMemberExpression(node); + } + hasPropertyAsPrivateName(node) { + if (node.type === "ChainExpression") { + node = node.expression; + } + return super.hasPropertyAsPrivateName(node); + } + isObjectProperty(node) { + return node.type === "Property" && node.kind === "init" && !node.method; + } + isObjectMethod(node) { + return node.type === "Property" && (node.method || node.kind === "get" || node.kind === "set"); + } + castNodeTo(node, type) { + const result = super.castNodeTo(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + this.fillOptionalPropertiesForTSESLint(cloned); + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Literal") { + return this.cloneEstreeStringLiteral(node); + } + return super.cloneStringLiteral(node); + } + finishNodeAt(node, type, endLoc) { + return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); + } + finishNode(node, type) { + const result = super.finishNode(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + resetStartLocation(node, startLoc) { + super.resetStartLocation(node, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + super.resetEndLocation(node, endLoc); + toESTreeLocation(node); + } +}; +class TokContext { + constructor(token, preserveSpace) { + this.token = void 0; + this.preserveSpace = void 0; + this.token = token; + this.preserveSpace = !!preserveSpace; + } +} +const types = { + brace: new TokContext("{"), + j_oTag: new TokContext("...", true) +}; +types.template = new TokContext("`", true); +const beforeExpr = true; +const startsExpr = true; +const isLoop = true; +const isAssign = true; +const prefix = true; +const postfix = true; +class ExportedTokenType { + constructor(label, conf = {}) { + this.label = void 0; + this.keyword = void 0; + this.beforeExpr = void 0; + this.startsExpr = void 0; + this.rightAssociative = void 0; + this.isLoop = void 0; + this.isAssign = void 0; + this.prefix = void 0; + this.postfix = void 0; + this.binop = void 0; + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.rightAssociative = !!conf.rightAssociative; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop != null ? conf.binop : null; + this.updateContext = null; + } +} +const keywords$1 = new Map(); +function createKeyword(name, options = {}) { + options.keyword = name; + const token = createToken(name, options); + keywords$1.set(name, token); + return token; +} +function createBinop(name, binop) { + return createToken(name, { + beforeExpr, + binop + }); +} +let tokenTypeCounter = -1; +const tokenTypes = []; +const tokenLabels = []; +const tokenBinops = []; +const tokenBeforeExprs = []; +const tokenStartsExprs = []; +const tokenPrefixes = []; +function createToken(name, options = {}) { + var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; + ++tokenTypeCounter; + tokenLabels.push(name); + tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); + tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); + tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); + tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); + tokenTypes.push(new ExportedTokenType(name, options)); + return tokenTypeCounter; +} +function createKeywordLike(name, options = {}) { + var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; + ++tokenTypeCounter; + keywords$1.set(name, tokenTypeCounter); + tokenLabels.push(name); + tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); + tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); + tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); + tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); + tokenTypes.push(new ExportedTokenType("name", options)); + return tokenTypeCounter; +} +const tt = { + bracketL: createToken("[", { + beforeExpr, + startsExpr + }), + bracketHashL: createToken("#[", { + beforeExpr, + startsExpr + }), + bracketBarL: createToken("[|", { + beforeExpr, + startsExpr + }), + bracketR: createToken("]"), + bracketBarR: createToken("|]"), + braceL: createToken("{", { + beforeExpr, + startsExpr + }), + braceBarL: createToken("{|", { + beforeExpr, + startsExpr + }), + braceHashL: createToken("#{", { + beforeExpr, + startsExpr + }), + braceR: createToken("}"), + braceBarR: createToken("|}"), + parenL: createToken("(", { + beforeExpr, + startsExpr + }), + parenR: createToken(")"), + comma: createToken(",", { + beforeExpr + }), + semi: createToken(";", { + beforeExpr + }), + colon: createToken(":", { + beforeExpr + }), + doubleColon: createToken("::", { + beforeExpr + }), + dot: createToken("."), + question: createToken("?", { + beforeExpr + }), + questionDot: createToken("?."), + arrow: createToken("=>", { + beforeExpr + }), + template: createToken("template"), + ellipsis: createToken("...", { + beforeExpr + }), + backQuote: createToken("`", { + startsExpr + }), + dollarBraceL: createToken("${", { + beforeExpr, + startsExpr + }), + templateTail: createToken("...`", { + startsExpr + }), + templateNonTail: createToken("...${", { + beforeExpr, + startsExpr + }), + at: createToken("@"), + hash: createToken("#", { + startsExpr + }), + interpreterDirective: createToken("#!..."), + eq: createToken("=", { + beforeExpr, + isAssign + }), + assign: createToken("_=", { + beforeExpr, + isAssign + }), + slashAssign: createToken("_=", { + beforeExpr, + isAssign + }), + xorAssign: createToken("_=", { + beforeExpr, + isAssign + }), + moduloAssign: createToken("_=", { + beforeExpr, + isAssign + }), + incDec: createToken("++/--", { + prefix, + postfix, + startsExpr + }), + bang: createToken("!", { + beforeExpr, + prefix, + startsExpr + }), + tilde: createToken("~", { + beforeExpr, + prefix, + startsExpr + }), + doubleCaret: createToken("^^", { + startsExpr + }), + doubleAt: createToken("@@", { + startsExpr + }), + pipeline: createBinop("|>", 0), + nullishCoalescing: createBinop("??", 1), + logicalOR: createBinop("||", 1), + logicalAND: createBinop("&&", 2), + bitwiseOR: createBinop("|", 3), + bitwiseXOR: createBinop("^", 4), + bitwiseAND: createBinop("&", 5), + equality: createBinop("==/!=/===/!==", 6), + lt: createBinop("/<=/>=", 7), + gt: createBinop("/<=/>=", 7), + relational: createBinop("/<=/>=", 7), + bitShift: createBinop("<>/>>>", 8), + bitShiftL: createBinop("<>/>>>", 8), + bitShiftR: createBinop("<>/>>>", 8), + plusMin: createToken("+/-", { + beforeExpr, + binop: 9, + prefix, + startsExpr + }), + modulo: createToken("%", { + binop: 10, + startsExpr + }), + star: createToken("*", { + binop: 10 + }), + slash: createBinop("/", 10), + exponent: createToken("**", { + beforeExpr, + binop: 11, + rightAssociative: true + }), + _in: createKeyword("in", { + beforeExpr, + binop: 7 + }), + _instanceof: createKeyword("instanceof", { + beforeExpr, + binop: 7 + }), + _break: createKeyword("break"), + _case: createKeyword("case", { + beforeExpr + }), + _catch: createKeyword("catch"), + _continue: createKeyword("continue"), + _debugger: createKeyword("debugger"), + _default: createKeyword("default", { + beforeExpr + }), + _else: createKeyword("else", { + beforeExpr + }), + _finally: createKeyword("finally"), + _function: createKeyword("function", { + startsExpr + }), + _if: createKeyword("if"), + _return: createKeyword("return", { + beforeExpr + }), + _switch: createKeyword("switch"), + _throw: createKeyword("throw", { + beforeExpr, + prefix, + startsExpr + }), + _try: createKeyword("try"), + _var: createKeyword("var"), + _const: createKeyword("const"), + _with: createKeyword("with"), + _new: createKeyword("new", { + beforeExpr, + startsExpr + }), + _this: createKeyword("this", { + startsExpr + }), + _super: createKeyword("super", { + startsExpr + }), + _class: createKeyword("class", { + startsExpr + }), + _extends: createKeyword("extends", { + beforeExpr + }), + _export: createKeyword("export"), + _import: createKeyword("import", { + startsExpr + }), + _null: createKeyword("null", { + startsExpr + }), + _true: createKeyword("true", { + startsExpr + }), + _false: createKeyword("false", { + startsExpr + }), + _typeof: createKeyword("typeof", { + beforeExpr, + prefix, + startsExpr + }), + _void: createKeyword("void", { + beforeExpr, + prefix, + startsExpr + }), + _delete: createKeyword("delete", { + beforeExpr, + prefix, + startsExpr + }), + _do: createKeyword("do", { + isLoop, + beforeExpr + }), + _for: createKeyword("for", { + isLoop + }), + _while: createKeyword("while", { + isLoop + }), + _as: createKeywordLike("as", { + startsExpr + }), + _assert: createKeywordLike("assert", { + startsExpr + }), + _async: createKeywordLike("async", { + startsExpr + }), + _await: createKeywordLike("await", { + startsExpr + }), + _defer: createKeywordLike("defer", { + startsExpr + }), + _from: createKeywordLike("from", { + startsExpr + }), + _get: createKeywordLike("get", { + startsExpr + }), + _let: createKeywordLike("let", { + startsExpr + }), + _meta: createKeywordLike("meta", { + startsExpr + }), + _of: createKeywordLike("of", { + startsExpr + }), + _sent: createKeywordLike("sent", { + startsExpr + }), + _set: createKeywordLike("set", { + startsExpr + }), + _source: createKeywordLike("source", { + startsExpr + }), + _static: createKeywordLike("static", { + startsExpr + }), + _using: createKeywordLike("using", { + startsExpr + }), + _yield: createKeywordLike("yield", { + startsExpr + }), + _asserts: createKeywordLike("asserts", { + startsExpr + }), + _checks: createKeywordLike("checks", { + startsExpr + }), + _exports: createKeywordLike("exports", { + startsExpr + }), + _global: createKeywordLike("global", { + startsExpr + }), + _implements: createKeywordLike("implements", { + startsExpr + }), + _intrinsic: createKeywordLike("intrinsic", { + startsExpr + }), + _infer: createKeywordLike("infer", { + startsExpr + }), + _is: createKeywordLike("is", { + startsExpr + }), + _mixins: createKeywordLike("mixins", { + startsExpr + }), + _proto: createKeywordLike("proto", { + startsExpr + }), + _require: createKeywordLike("require", { + startsExpr + }), + _satisfies: createKeywordLike("satisfies", { + startsExpr + }), + _keyof: createKeywordLike("keyof", { + startsExpr + }), + _readonly: createKeywordLike("readonly", { + startsExpr + }), + _unique: createKeywordLike("unique", { + startsExpr + }), + _abstract: createKeywordLike("abstract", { + startsExpr + }), + _declare: createKeywordLike("declare", { + startsExpr + }), + _enum: createKeywordLike("enum", { + startsExpr + }), + _module: createKeywordLike("module", { + startsExpr + }), + _namespace: createKeywordLike("namespace", { + startsExpr + }), + _interface: createKeywordLike("interface", { + startsExpr + }), + _type: createKeywordLike("type", { + startsExpr + }), + _opaque: createKeywordLike("opaque", { + startsExpr + }), + name: createToken("name", { + startsExpr + }), + placeholder: createToken("%%", { + startsExpr + }), + string: createToken("string", { + startsExpr + }), + num: createToken("num", { + startsExpr + }), + bigint: createToken("bigint", { + startsExpr + }), + decimal: createToken("decimal", { + startsExpr + }), + regexp: createToken("regexp", { + startsExpr + }), + privateName: createToken("#name", { + startsExpr + }), + eof: createToken("eof"), + jsxName: createToken("jsxName"), + jsxText: createToken("jsxText", { + beforeExpr + }), + jsxTagStart: createToken("jsxTagStart", { + startsExpr + }), + jsxTagEnd: createToken("jsxTagEnd") +}; +function tokenIsIdentifier(token) { + return token >= 93 && token <= 133; +} +function tokenKeywordOrIdentifierIsKeyword(token) { + return token <= 92; +} +function tokenIsKeywordOrIdentifier(token) { + return token >= 58 && token <= 133; +} +function tokenIsLiteralPropertyName(token) { + return token >= 58 && token <= 137; +} +function tokenComesBeforeExpression(token) { + return tokenBeforeExprs[token]; +} +function tokenCanStartExpression(token) { + return tokenStartsExprs[token]; +} +function tokenIsAssignment(token) { + return token >= 29 && token <= 33; +} +function tokenIsFlowInterfaceOrTypeOrOpaque(token) { + return token >= 129 && token <= 131; +} +function tokenIsLoop(token) { + return token >= 90 && token <= 92; +} +function tokenIsKeyword(token) { + return token >= 58 && token <= 92; +} +function tokenIsOperator(token) { + return token >= 39 && token <= 59; +} +function tokenIsPostfix(token) { + return token === 34; +} +function tokenIsPrefix(token) { + return tokenPrefixes[token]; +} +function tokenIsTSTypeOperator(token) { + return token >= 121 && token <= 123; +} +function tokenIsTSDeclarationStart(token) { + return token >= 124 && token <= 130; +} +function tokenLabelName(token) { + return tokenLabels[token]; +} +function tokenOperatorPrecedence(token) { + return tokenBinops[token]; +} +function tokenIsRightAssociative(token) { + return token === 57; +} +function tokenIsTemplate(token) { + return token >= 24 && token <= 25; +} +function getExportedToken(token) { + return tokenTypes[token]; +} +tokenTypes[8].updateContext = context => { + context.pop(); +}; +tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { + context.push(types.brace); +}; +tokenTypes[22].updateContext = context => { + if (context[context.length - 1] === types.template) { + context.pop(); + } else { + context.push(types.template); + } +}; +tokenTypes[143].updateContext = context => { + context.push(types.j_expr, types.j_oTag); +}; +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} +function isIteratorStart(current, next, next2) { + return current === 64 && next === 64 && isIdentifierStart(next2); +} +const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]); +function canBeReservedWord(word) { + return reservedWordLikeSet.has(word); +} +class Scope { + constructor(flags) { + this.flags = 0; + this.names = new Map(); + this.firstLexicalName = ""; + this.flags = flags; + } +} +class ScopeHandler { + constructor(parser, inModule) { + this.parser = void 0; + this.scopeStack = []; + this.inModule = void 0; + this.undefinedExports = new Map(); + this.parser = parser; + this.inModule = inModule; + } + get inTopLevel() { + return (this.currentScope().flags & 1) > 0; + } + get inFunction() { + return (this.currentVarScopeFlags() & 2) > 0; + } + get allowSuper() { + return (this.currentThisScopeFlags() & 16) > 0; + } + get allowDirectSuper() { + return (this.currentThisScopeFlags() & 32) > 0; + } + get allowNewTarget() { + return (this.currentThisScopeFlags() & 512) > 0; + } + get inClass() { + return (this.currentThisScopeFlags() & 64) > 0; + } + get inClassAndNotInNonArrowFunction() { + const flags = this.currentThisScopeFlags(); + return (flags & 64) > 0 && (flags & 2) === 0; + } + get inStaticBlock() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 128) { + return true; + } + if (flags & (1667 | 64)) { + return false; + } + } + } + get inNonArrowFunction() { + return (this.currentThisScopeFlags() & 2) > 0; + } + get inBareCaseStatement() { + return (this.currentScope().flags & 256) > 0; + } + get treatFunctionsAsVar() { + return this.treatFunctionsAsVarInScope(this.currentScope()); + } + createScope(flags) { + return new Scope(flags); + } + enter(flags) { + this.scopeStack.push(this.createScope(flags)); + } + exit() { + const scope = this.scopeStack.pop(); + return scope.flags; + } + treatFunctionsAsVarInScope(scope) { + return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1); + } + declareName(name, bindingType, loc) { + let scope = this.currentScope(); + if (bindingType & 8 || bindingType & 16) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + let type = scope.names.get(name) || 0; + if (bindingType & 16) { + type = type | 4; + } else { + if (!scope.firstLexicalName) { + scope.firstLexicalName = name; + } + type = type | 2; + } + scope.names.set(name, type); + if (bindingType & 8) { + this.maybeExportDefined(scope, name); + } + } else if (bindingType & 4) { + for (let i = this.scopeStack.length - 1; i >= 0; --i) { + scope = this.scopeStack[i]; + this.checkRedeclarationInScope(scope, name, bindingType, loc); + scope.names.set(name, (scope.names.get(name) || 0) | 1); + this.maybeExportDefined(scope, name); + if (scope.flags & 1667) break; + } + } + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + maybeExportDefined(scope, name) { + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + checkRedeclarationInScope(scope, name, bindingType, loc) { + if (this.isRedeclaredInScope(scope, name, bindingType)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + } + isRedeclaredInScope(scope, name, bindingType) { + if (!(bindingType & 1)) return false; + if (bindingType & 8) { + return scope.names.has(name); + } + const type = scope.names.get(name) || 0; + if (bindingType & 16) { + return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0; + } + return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0; + } + checkLocalExport(id) { + const { + name + } = id; + const topLevelScope = this.scopeStack[0]; + if (!topLevelScope.names.has(name)) { + this.undefinedExports.set(name, id.loc.start); + } + } + currentScope() { + return this.scopeStack[this.scopeStack.length - 1]; + } + currentVarScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 1667) { + return flags; + } + } + } + currentThisScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & (1667 | 64) && !(flags & 4)) { + return flags; + } + } + } +} +class FlowScope extends Scope { + constructor(...args) { + super(...args); + this.declareFunctions = new Set(); + } +} +class FlowScopeHandler extends ScopeHandler { + createScope(flags) { + return new FlowScope(flags); + } + declareName(name, bindingType, loc) { + const scope = this.currentScope(); + if (bindingType & 2048) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + scope.declareFunctions.add(name); + return; + } + super.declareName(name, bindingType, loc); + } + isRedeclaredInScope(scope, name, bindingType) { + if (super.isRedeclaredInScope(scope, name, bindingType)) return true; + if (bindingType & 2048 && !scope.declareFunctions.has(name)) { + const type = scope.names.get(name); + return (type & 4) > 0 || (type & 2) > 0; + } + return false; + } + checkLocalExport(id) { + if (!this.scopeStack[0].declareFunctions.has(id.name)) { + super.checkLocalExport(id); + } + } +} +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); +const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitialized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}); +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; +function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; +} +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; +var flow = superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + finishToken(type, val) { + if (type !== 134 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ;else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(110); + if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, 2048, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(127)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(130)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(131)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } + throw this.unexpected(); + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, 5, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(0); + if (this.match(134)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + const bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(130) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); + } + body.push(super.parseImport(bodyNode)); + } else { + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); + body.push(this.flowParseDeclare(bodyNode, true)); + } + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.default = false; + delete node.exportKind; + return this.castNodeTo(node, "DeclareExportDeclaration"); + } else { + return this.castNodeTo(node, "DeclareExportAllDeclaration"); + } + } + } + throw this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(111); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + this.castNodeTo(finished, "DeclareTypeAlias"); + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + this.castNodeTo(finished, "DeclareOpaqueType"); + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "DeclareInterface"); + } + flowParseInterfaceish(node, isClass) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (isClass) { + node.implements = []; + node.mixins = []; + if (this.eatContextual(117)) { + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.eatContextual(113)) { + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { + reservedType: word + }); + } + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifier(liberal); + } + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(130); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + flowParseTypeParameterInstantiationInExpression() { + if (this.reScan_lt() !== 47) return; + return this.flowParseTypeParameterInstantiation(); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + this.state.inType = true; + node.params = []; + this.flowInTopLevelContext(() => { + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + }); + this.state.inType = oldInType; + if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + if (this.reScan_lt() !== 47) return null; + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(129); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(118)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(106)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(99) || this.isContextual(104)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); + } + } + this.expect(endDelim); + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, variance); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, variance); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, property); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, node); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, node); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + { + const node = this.startNode(); + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 10: + { + const node = this.startNode(); + this.next(); + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 134: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(135)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(136)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); + } + throw this.unexpected(); + case 135: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 136: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(129)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + throw this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 132 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + if (this.match(14)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); + } + return ident; + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + return; + } + super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(129)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(514 | 4); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = newNode; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return newNode; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExportDeclaration(node) { + if (this.isContextual(130)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(131)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.isContextual(126)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(130) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(125)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, startLoc); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { + identifierName: fullWord + }); + } + this.finishToken(132, fullWord); + } + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + this.finishOp(18, 2); + } else { + this.finishOp(17, 1); + } + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + this.readIterator(); + } else { + super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); + } + } + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (refExpressionErrors != null && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression(); + } + if (this.isContextual(113)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, param); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, param); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseFunctionParamType(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, param); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, param); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, param); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, param); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); + } + return node; + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + if (!isExport) return true; + const ch = this.lookaheadCharCode(); + return ch === 123 || ch === 42; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + if (!phase && this.match(65)) { + return; + } + node.exportKind = phase === "type" ? phase : "value"; + } else { + if (phase === "type" && this.match(55)) this.unexpected(); + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = this.cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = this.cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseFunctionParams(node, isConstructor) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); + } + return arrow.node; + } + arrowExpression = arrow.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + return; + } + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); + } + } + super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start))); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.includes(startLoc.index)) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node, false); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + } + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); + } + flowEnumErrorNumberMemberNotInitialized(loc, details) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); + } + flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 135: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 134: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, id, { + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, id, { + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(102)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + jsxParseOpeningElementAfterName(node) { + if (this.shouldParseTypes()) { + if (this.match(47) || this.match(51)) { + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + } + } + return super.jsxParseOpeningElementAfterName(node); + } + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } +}; +const entities = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; +const lineBreak = /\r\n|[\r\n\u2028\u2029]/; +const lineBreakG = new RegExp(lineBreak.source, "g"); +function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } +} +function hasNewLine(input, start, end) { + for (let i = start; i < end; i++) { + if (isNewLine(input.charCodeAt(i))) { + return true; + } + } + return false; +} +const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; +function isWhitespace(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } +} +const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" +}); +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + throw new Error("Node had unexpected type: " + object.type); +} +var jsx = superClass => class JSXParserMixin extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + this.finishToken(143); + } else { + super.getTokenFromCode(ch); + } + return; + } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(142, out); + return; + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(134, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + this.state.pos = startPos; + return "&"; + } + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + this.finishToken(141, this.input.slice(start, this.state.pos)); + } + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(141)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, node); + } + return node; + case 143: + case 134: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); + } + } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(144)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(144); + return this.finishNode(node, "JSXOpeningElement"); + } + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(144); + return this.finishNode(node, "JSXClosingElement"); + } + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 143: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 142: + children.push(this.parseLiteral(this.state.value, "JSXText")); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types.j_expr)); + } + break; + } + default: + this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, closingElement); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + parseExprAtom(refExpressionErrors) { + if (this.match(143)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(143); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types.j_expr) { + this.jsxReadToken(); + return; + } + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + this.jsxReadWord(); + return; + } + if (code === 62) { + ++this.state.pos; + this.finishToken(144); + return; + } + if ((code === 34 || code === 39) && context === types.j_oTag) { + this.jsxReadString(code); + return; + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + this.finishToken(143); + return; + } + super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 143) { + context.splice(-2, 2, types.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 143) { + context.push(types.j_oTag); + } else if (type === 144) { + const out = context[context.length - 1]; + if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; + } else { + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } +}; +class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.tsNames = new Map(); + } +} +class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags === 1024) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags === 1024) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & 4096) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + let type = scope.tsNames.get(name) || 0; + if (bindingType & 1024) { + this.maybeExportDefined(scope, name); + scope.tsNames.set(name, type | 16); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & 2) { + if (!(bindingType & 1)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + type = type | 1; + } + if (bindingType & 256) { + type = type | 2; + } + if (bindingType & 512) { + type = type | 4; + } + if (bindingType & 128) { + type = type | 8; + } + if (type) scope.tsNames.set(name, type); + } + isRedeclaredInScope(scope, name, bindingType) { + const type = scope.tsNames.get(name); + if ((type & 2) > 0) { + if (bindingType & 256) { + const isConst = !!(bindingType & 512); + const wasConst = (type & 4) > 0; + return isConst !== wasConst; + } + return true; + } + if (bindingType & 128 && (type & 8) > 0) { + if (scope.names.get(name) & 2) { + return !!(bindingType & 1); + } else { + return false; + } + } + if (bindingType & 2 && (type & 1) > 0) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + const type = scope.tsNames.get(name); + if ((type & 1) > 0 || (type & 16) > 0) { + return; + } + } + super.checkLocalExport(id); + } +} +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & 2) > 0; + } + get hasYield() { + return (this.currentFlags() & 1) > 0; + } + get hasReturn() { + return (this.currentFlags() & 4) > 0; + } + get hasIn() { + return (this.currentFlags() & 8) > 0; + } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); +} +class BaseParser { + constructor() { + this.sawUnambiguousESM = false; + this.ambiguousScriptDifferentAst = false; + } + sourceToOffsetPos(sourcePos) { + return sourcePos + this.startIndex; + } + offsetToSourcePos(offsetPos) { + return offsetPos - this.startIndex; + } + hasPlugin(pluginConfig) { + if (typeof pluginConfig === "string") { + return this.plugins.has(pluginConfig); + } else { + const [pluginName, pluginOptions] = pluginConfig; + if (!this.hasPlugin(pluginName)) { + return false; + } + const actualOptions = this.plugins.get(pluginName); + for (const key of Object.keys(pluginOptions)) { + if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) { + return false; + } + } + return true; + } + } + getPluginOption(plugin, name) { + var _this$plugins$get; + return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name]; + } +} +function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } +} +function setLeadingComments(node, comments) { + if (node.leadingComments === undefined) { + node.leadingComments = comments; + } else { + node.leadingComments.unshift(...comments); + } +} +function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else { + node.innerComments.unshift(...comments); + } +} +function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } +} +class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + const { + commentsLen + } = this.state; + if (this.comments.length !== commentsLen) { + this.comments.length = commentsLen; + } + this.comments.push(comment); + this.state.commentsLen++; + } + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } + const { + start: nodeStart + } = node; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); + } else { + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; + } + break; + } + } + } + finalizeComment(commentWS) { + var _node$options; + const { + comments + } = commentWS; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); + } + if (commentWS.trailingNode !== null) { + setLeadingComments(commentWS.trailingNode, comments); + } + } else { + const node = commentWS.containingNode; + const commentStart = commentWS.start; + if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + adjustInnerComments(node, node.properties, commentWS); + break; + case "CallExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; + case "ImportExpression": + adjustInnerComments(node, [node.source, (_node$options = node.options) != null ? _node$options : null], commentWS); + break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + adjustInnerComments(node, node.params, commentWS); + break; + case "ArrayExpression": + case "ArrayPattern": + adjustInnerComments(node, node.elements, commentWS); + break; + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; + case "TSEnumDeclaration": + adjustInnerComments(node, node.members, commentWS); + break; + case "TSEnumBody": + adjustInnerComments(node, node.members, commentWS); + break; + default: + { + if (node.type === "RecordExpression") { + adjustInnerComments(node, node.properties, commentWS); + break; + } + if (node.type === "TupleExpression") { + adjustInnerComments(node, node.elements, commentWS); + break; + } + setInnerComments(node, comments); + } + } + } else { + setInnerComments(node, comments); + } + } + } + finalizeRemainingComments() { + const { + commentStack + } = this.state; + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); + } + this.state.commentStack = []; + } + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; + } + } + takeSurroundingComments(node, start, end) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + const commentStart = commentWS.start; + if (commentStart === end) { + commentWS.leadingNode = node; + } else if (commentEnd === start) { + commentWS.trailingNode = node; + } else if (commentEnd < start) { + break; + } + } + } +} +class State { + constructor() { + this.flags = 1024; + this.startIndex = void 0; + this.curLine = void 0; + this.lineStart = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.labels = []; + this.commentsLen = 0; + this.commentStack = []; + this.pos = 0; + this.type = 140; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.context = [types.brace]; + this.firstInvalidTemplateEscapePos = null; + this.strictErrors = new Map(); + this.tokensLength = 0; + } + get strict() { + return (this.flags & 1) > 0; + } + set strict(v) { + if (v) this.flags |= 1;else this.flags &= -2; + } + init({ + strictMode, + sourceType, + startIndex, + startLine, + startColumn + }) { + this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.startIndex = startIndex; + this.curLine = startLine; + this.lineStart = -startColumn; + this.startLoc = this.endLoc = new Position(startLine, startColumn, startIndex); + } + get maybeInArrowParameters() { + return (this.flags & 2) > 0; + } + set maybeInArrowParameters(v) { + if (v) this.flags |= 2;else this.flags &= -3; + } + get inType() { + return (this.flags & 4) > 0; + } + set inType(v) { + if (v) this.flags |= 4;else this.flags &= -5; + } + get noAnonFunctionType() { + return (this.flags & 8) > 0; + } + set noAnonFunctionType(v) { + if (v) this.flags |= 8;else this.flags &= -9; + } + get hasFlowComment() { + return (this.flags & 16) > 0; + } + set hasFlowComment(v) { + if (v) this.flags |= 16;else this.flags &= -17; + } + get isAmbientContext() { + return (this.flags & 32) > 0; + } + set isAmbientContext(v) { + if (v) this.flags |= 32;else this.flags &= -33; + } + get inAbstractClass() { + return (this.flags & 64) > 0; + } + set inAbstractClass(v) { + if (v) this.flags |= 64;else this.flags &= -65; + } + get inDisallowConditionalTypesContext() { + return (this.flags & 128) > 0; + } + set inDisallowConditionalTypesContext(v) { + if (v) this.flags |= 128;else this.flags &= -129; + } + get soloAwait() { + return (this.flags & 256) > 0; + } + set soloAwait(v) { + if (v) this.flags |= 256;else this.flags &= -257; + } + get inFSharpPipelineDirectBody() { + return (this.flags & 512) > 0; + } + set inFSharpPipelineDirectBody(v) { + if (v) this.flags |= 512;else this.flags &= -513; + } + get canStartJSXElement() { + return (this.flags & 1024) > 0; + } + set canStartJSXElement(v) { + if (v) this.flags |= 1024;else this.flags &= -1025; + } + get containsEsc() { + return (this.flags & 2048) > 0; + } + set containsEsc(v) { + if (v) this.flags |= 2048;else this.flags &= -2049; + } + get hasTopLevelAwait() { + return (this.flags & 4096) > 0; + } + set hasTopLevelAwait(v) { + if (v) this.flags |= 4096;else this.flags &= -4097; + } + curPosition() { + return new Position(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex); + } + clone() { + const state = new State(); + state.flags = this.flags; + state.startIndex = this.startIndex; + state.curLine = this.curLine; + state.lineStart = this.lineStart; + state.startLoc = this.startLoc; + state.endLoc = this.endLoc; + state.errors = this.errors.slice(); + state.potentialArrowAt = this.potentialArrowAt; + state.noArrowAt = this.noArrowAt.slice(); + state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(); + state.topicContext = this.topicContext; + state.labels = this.labels.slice(); + state.commentsLen = this.commentsLen; + state.commentStack = this.commentStack.slice(); + state.pos = this.pos; + state.type = this.type; + state.value = this.value; + state.start = this.start; + state.end = this.end; + state.lastTokEndLoc = this.lastTokEndLoc; + state.lastTokStartLoc = this.lastTokStartLoc; + state.context = this.context.slice(); + state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos; + state.strictErrors = this.strictErrors; + state.tokensLength = this.tokensLength; + return state; + } +} +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} +function buildPosition(pos, lineStart, curLine) { + return new Position(curLine, pos - lineStart, pos); +} +const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); +class Token { + constructor(state) { + const startIndex = state.startIndex || 0; + this.type = state.type; + this.value = state.value; + this.start = startIndex + state.start; + this.end = startIndex + state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); + } +} +class Tokenizer extends CommentsParser { + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.errorHandlers_readInt = { + invalidDigit: (pos, lineStart, curLine, radix) => { + if (!(this.optionFlags & 2048)) return false; + this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), { + radix + }); + return true; + }, + numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence), + unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator) + }; + this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, { + invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence), + invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint) + }); + this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: (pos, lineStart, curLine) => { + this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine)); + }, + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine)); + } + }); + this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape), + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine)); + } + }); + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.comments = []; + this.isLookahead = false; + } + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; + } + next() { + this.checkKeywordEscapes(); + if (this.optionFlags & 256) { + this.pushToken(new Token(this.state)); + } + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); + } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; + } + } + match(type) { + return this.state.type === type; + } + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + context: [this.curContext()], + inType: state.inType, + startLoc: state.startLoc, + lastTokEndLoc: state.lastTokEndLoc, + curLine: state.curLine, + lineStart: state.lineStart, + curPosition: state.curPosition + }; + } + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; + } + lookaheadCharCode() { + return this.lookaheadCharCodeSince(this.state.pos); + } + lookaheadCharCodeSince(pos) { + return this.input.charCodeAt(this.nextTokenStartSince(pos)); + } + nextTokenInLineStart() { + return this.nextTokenInLineStartSince(this.state.pos); + } + nextTokenInLineStartSince(pos) { + skipWhiteSpaceInLine.lastIndex = pos; + return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos; + } + lookaheadInLineCharCode() { + return this.input.charCodeAt(this.nextTokenInLineStart()); + } + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + return cp; + } + setStrict(strict) { + this.state.strict = strict; + if (strict) { + this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at)); + this.state.strictErrors.clear(); + } + } + curContext() { + return this.state.context[this.state.context.length - 1]; + } + nextToken() { + this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); + if (this.state.pos >= this.length) { + this.finishToken(140); + return; + } + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + } + skipBlockComment(commentEnd) { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf(commentEnd, start + 2); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + this.state.pos = end + commentEnd.length; + lineBreakG.lastIndex = start + 2; + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } + if (this.isLookahead) return; + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end + commentEnd.length), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 256) this.pushToken(comment); + return comment; + } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + } + if (this.isLookahead) return; + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 256) this.pushToken(comment); + return comment; + } + skipSpace() { + const spaceStart = this.state.pos; + const comments = this.optionFlags & 4096 ? [] : null; + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; + } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment("*/"); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + case 47: + { + const comment = this.skipLineComment(2); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + default: + break loop; + } + break; + default: + if (isWhitespace(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule && this.optionFlags & 8192) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule && this.optionFlags & 8192) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + } + } + if ((comments == null ? void 0 : comments.length) > 0) { + const end = this.state.pos; + const commentWhitespace = { + start: this.sourceToOffsetPos(spaceStart), + end: this.sourceToOffsetPos(end), + comments: comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(commentWhitespace); + } + } + finishToken(type, val) { + this.state.end = this.state.pos; + this.state.endLoc = this.state.curPosition(); + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; + if (!this.isLookahead) { + this.updateContext(prevType); + } + } + replaceToken(type) { + this.state.type = type; + this.updateContext(); + } + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + if (next >= 48 && next <= 57) { + throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition()); + } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); + if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") { + throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + if (next === 123) { + this.finishToken(7); + } else { + this.finishToken(1); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(139, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(139, this.readWord1()); + } else { + this.finishOp(27, 1); + } + } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(21); + } else { + ++this.state.pos; + this.finishToken(16); + } + } + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(31, 2); + } else { + this.finishOp(56, 1); + } + } + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(28, value); + return true; + } + readToken_mult_modulo(code) { + let type = code === 42 ? 55 : 54; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = 57; + } + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? 33 : 30; + } + this.finishOp(type, width); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(code === 124 ? 41 : 42, 2); + } + return; + } + if (code === 124) { + if (next === 62) { + this.finishOp(39, 2); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(9); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(4); + return; + } + } + if (next === 61) { + this.finishOp(30, 2); + return; + } + this.finishOp(code === 124 ? 43 : 45, 1); + } + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61 && !this.state.inType) { + this.finishOp(32, 2); + } else if (next === 94 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "^^" + }])) { + this.finishOp(37, 2); + const lookaheadCh = this.input.codePointAt(this.state.pos); + if (lookaheadCh === 94) { + this.unexpected(); + } + } else { + this.finishOp(44, 1); + } + } + readToken_atSign() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 64 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "@@" + }])) { + this.finishOp(38, 2); + } else { + this.finishOp(26, 1); + } + } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + this.finishOp(34, 2); + return; + } + if (next === 61) { + this.finishOp(30, 2); + } else { + this.finishOp(53, 1); + } + } + readToken_lt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 60) { + if (this.input.charCodeAt(pos + 2) === 61) { + this.finishOp(30, 3); + return; + } + this.finishOp(51, 2); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(47, 1); + } + readToken_gt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 62) { + const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(pos + size) === 61) { + this.finishOp(30, size + 1); + return; + } + this.finishOp(52, size); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(48, 1); + } + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; + } + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(19); + return; + } + this.finishOp(code === 61 ? 29 : 35, 1); + } + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); + if (next === 63) { + if (next2 === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(40, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(18); + } else { + ++this.state.pos; + this.finishToken(17); + } + } + getTokenFromCode(code) { + switch (code) { + case 46: + this.readToken_dot(); + return; + case 40: + ++this.state.pos; + this.finishToken(10); + return; + case 41: + ++this.state.pos; + this.finishToken(11); + return; + case 59: + ++this.state.pos; + this.finishToken(13); + return; + case 44: + ++this.state.pos; + this.finishToken(12); + return; + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(2); + } else { + ++this.state.pos; + this.finishToken(0); + } + return; + case 93: + ++this.state.pos; + this.finishToken(3); + return; + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(6); + } else { + ++this.state.pos; + this.finishToken(5); + } + return; + case 125: + ++this.state.pos; + this.finishToken(8); + return; + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(15, 2); + } else { + ++this.state.pos; + this.finishToken(14); + } + return; + case 63: + this.readToken_question(); + return; + case 96: + this.readTemplateToken(); + return; + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; + case 34: + case 39: + this.readString(code); + return; + case 47: + this.readToken_slash(); + return; + case 37: + case 42: + this.readToken_mult_modulo(code); + return; + case 124: + case 38: + this.readToken_pipe_amp(code); + return; + case 94: + this.readToken_caret(); + return; + case 43: + case 45: + this.readToken_plus_min(code); + return; + case 60: + this.readToken_lt(); + return; + case 62: + this.readToken_gt(); + return; + case 61: + case 33: + this.readToken_eq_excl(code); + return; + case 126: + this.finishOp(36, 1); + return; + case 64: + this.readToken_atSign(); + return; + case 35: + this.readToken_numberSign(); + return; + case 92: + this.readWord(); + return; + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } + } + throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), { + unexpected: String.fromCodePoint(code) + }); + } + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } + readRegexp() { + const startLoc = this.state.startLoc; + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + const ch = this.input.charCodeAt(pos); + if (isNewLine(ch)) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } + escaped = ch === 92; + } + } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; + const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); + if (VALID_REGEX_FLAGS.has(cp)) { + if (cp === 118) { + if (mods.includes("u")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } else if (cp === 117) { + if (mods.includes("v")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } + if (mods.includes(char)) { + this.raise(Errors.DuplicateRegExpFlags, nextPos()); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(Errors.MalformedRegExpFlags, nextPos()); + } else { + break; + } + ++pos; + mods += char; + } + this.state.pos = pos; + this.finishToken(138, { + pattern: content, + flags: mods + }); + } + readInt(radix, len, forceLen = false, allowNumSeparator = true) { + const { + n, + pos + } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false); + this.state.pos = pos; + return n; + } + readRadixNumber(radix) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); + if (val == null) { + this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), { + radix + }); + } + const next = this.input.charCodeAt(this.state.pos); + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(Errors.InvalidDecimal, startLoc); + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + if (isBigInt) { + const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(136, str); + return; + } + this.finishToken(135, val); + } + readNumber(startsWithDot) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isFloat = false; + let isBigInt = false; + let hasExponent = false; + let isOctal = false; + if (!startsWithDot && this.readInt(10) === null) { + this.raise(Errors.InvalidNumber, this.state.curPosition()); + } + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos)); + } + } + isOctal = hasLeadingZero && !/[89]/.test(integer); + } + let next = this.input.charCodeAt(this.state.pos); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); + if (next === 43 || next === 45) { + ++this.state.pos; + } + if (this.readInt(10) === null) { + this.raise(Errors.InvalidOrMissingExponent, startLoc); + } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(Errors.InvalidBigIntLiteral, startLoc); + } + ++this.state.pos; + isBigInt = true; + } + if (next === 109) { + this.expectPlugin("decimal", this.state.curPosition()); + if (hasExponent || hasLeadingZero) { + this.raise(Errors.InvalidDecimal, startLoc); + } + ++this.state.pos; + var isDecimal = true; + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (isBigInt) { + this.finishToken(136, str); + return; + } + if (isDecimal) { + this.finishToken(137, str); + return; + } + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(135, val); + } + readCodePoint(throwOnInvalid) { + const { + code, + pos + } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint); + this.state.pos = pos; + return code; + } + readString(quote) { + const { + str, + pos, + curLine, + lineStart + } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + this.finishToken(134, str); + } + readTemplateContinuation() { + if (!this.match(8)) { + this.unexpected(null, 8); + } + this.state.pos--; + this.readTemplateToken(); + } + readTemplateToken() { + const opening = this.input[this.state.pos]; + const { + str, + firstInvalidLoc, + pos, + curLine, + lineStart + } = readStringContents("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + if (firstInvalidLoc) { + this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, this.sourceToOffsetPos(firstInvalidLoc.pos)); + } + if (this.input.codePointAt(pos) === 96) { + this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); + } else { + this.state.pos++; + this.finishToken(25, firstInvalidLoc ? null : opening + str + "${"); + } + } + recordStrictModeErrors(toParseError, at) { + const index = at.index; + if (this.state.strict && !this.state.strictErrors.has(index)) { + this.raise(toParseError, at); + } else { + this.state.strictErrors.set(index, [toParseError, at]); + } + } + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; + } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.curPosition(); + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(Errors.MissingUnicodeEscape, this.state.curPosition()); + chunkStart = this.state.pos - 1; + continue; + } + ++this.state.pos; + const esc = this.readCodePoint(true); + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(Errors.EscapedCharNotAnIdentifier, escStart); + } + word += String.fromCodePoint(esc); + } + chunkStart = this.state.pos; + } else { + break; + } + } + return word + this.input.slice(chunkStart, this.state.pos); + } + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word); + if (type !== undefined) { + this.finishToken(type, tokenLabelName(type)); + } else { + this.finishToken(132, word); + } + } + checkKeywordEscapes() { + const { + type + } = this.state; + if (tokenIsKeyword(type) && this.state.containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, { + reservedWord: tokenLabelName(type) + }); + } + } + raise(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const error = toParseError(loc, details); + if (!(this.optionFlags & 2048)) throw error; + if (!this.isLookahead) this.state.errors.push(error); + return error; + } + raiseOverwrite(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const pos = loc.index; + const errors = this.state.errors; + for (let i = errors.length - 1; i >= 0; i--) { + const error = errors[i]; + if (error.loc.index === pos) { + return errors[i] = toParseError(loc, details); + } + if (error.loc.index < pos) break; + } + return this.raise(toParseError, at, details); + } + updateContext(prevType) {} + unexpected(loc, type) { + throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, { + expected: type ? tokenLabelName(type) : null + }); + } + expectPlugin(pluginName, loc) { + if (this.hasPlugin(pluginName)) { + return true; + } + throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, { + missingPlugin: [pluginName] + }); + } + expectOnePlugin(pluginNames) { + if (!pluginNames.some(name => this.hasPlugin(name))) { + throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, { + missingPlugin: pluginNames + }); + } + } + errorBuilder(error) { + return (pos, lineStart, curLine) => { + this.raise(error, buildPosition(pos, lineStart, curLine)); + }; + } +} +class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } +} +class ClassScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.parser = parser; + } + current() { + return this.stack[this.stack.length - 1]; + } + enter() { + this.stack.push(new ClassScope()); + } + exit() { + const oldClassScope = this.stack.pop(); + const current = this.current(); + for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, loc); + } + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } + } + declarePrivateName(name, elementType, loc) { + const { + privateNames, + loneAccessors, + undefinedPrivateNames + } = this.current(); + let redefined = privateNames.has(name); + if (elementType & 3) { + const accessor = redefined && loneAccessors.get(name); + if (accessor) { + const oldStatic = accessor & 4; + const newStatic = elementType & 4; + const oldKind = accessor & 3; + const newKind = elementType & 3; + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) loneAccessors.delete(name); + } else if (!redefined) { + loneAccessors.set(name, elementType); + } + } + if (redefined) { + this.parser.raise(Errors.PrivateNameRedeclaration, loc, { + identifierName: name + }); + } + privateNames.add(name); + undefinedPrivateNames.delete(name); + } + usePrivateName(name, loc) { + let classScope; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } + if (classScope) { + classScope.undefinedPrivateNames.set(name, loc); + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } +} +class ExpressionScope { + constructor(type = 0) { + this.type = type; + } + canBeArrowParameterDeclaration() { + return this.type === 2 || this.type === 1; + } + isCertainlyParameterDeclaration() { + return this.type === 3; + } +} +class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.declarationErrors = new Map(); + } + recordDeclarationError(ParsingErrorClass, at) { + const index = at.index; + this.declarationErrors.set(index, [ParsingErrorClass, at]); + } + clearDeclarationError(index) { + this.declarationErrors.delete(index); + } + iterateErrors(iterator) { + this.declarationErrors.forEach(iterator); + } +} +class ExpressionScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = [new ExpressionScope()]; + this.parser = parser; + } + enter(scope) { + this.stack.push(scope); + } + exit() { + this.stack.pop(); + } + recordParameterInitializerError(toParseError, node) { + const origin = node.loc.start; + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(toParseError, origin); + } else { + return; + } + scope = stack[--i]; + } + this.parser.raise(toParseError, origin); + } + recordArrowParameterBindingError(error, node) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + const origin = node.loc.start; + if (scope.isCertainlyParameterDeclaration()) { + this.parser.raise(error, origin); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(error, origin); + } else { + return; + } + } + recordAsyncArrowParametersError(at) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === 2) { + scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at); + } + scope = stack[--i]; + } + } + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors(([toParseError, loc]) => { + this.parser.raise(toParseError, loc); + let i = stack.length - 2; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(loc.index); + scope = stack[--i]; + } + }); + } +} +function newParameterDeclarationScope() { + return new ExpressionScope(3); +} +function newArrowHeadScope() { + return new ArrowHeadParsingScope(1); +} +function newAsyncArrowScope() { + return new ArrowHeadParsingScope(2); +} +function newExpressionScope() { + return new ExpressionScope(); +} +class UtilParser extends Tokenizer { + addExtra(node, key, value, enumerable = true) { + if (!node) return; + let { + extra + } = node; + if (extra == null) { + extra = {}; + node.extra = extra; + } + if (enumerable) { + extra[key] = value; + } else { + Object.defineProperty(extra, key, { + enumerable, + value + }); + } + } + isContextual(token) { + return this.state.type === token && !this.state.containsEsc; + } + isUnparsedContextual(nameStart, name) { + if (this.input.startsWith(name, nameStart)) { + const nextCh = this.input.charCodeAt(nameStart + name.length); + return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); + } + return false; + } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); + } + eatContextual(token) { + if (this.isContextual(token)) { + this.next(); + return true; + } + return false; + } + expectContextual(token, toParseError) { + if (!this.eatContextual(token)) { + if (toParseError != null) { + throw this.raise(toParseError, this.state.startLoc); + } + this.unexpected(null, token); + } + } + canInsertSemicolon() { + return this.match(140) || this.match(8) || this.hasPrecedingLineBreak(); + } + hasPrecedingLineBreak() { + return hasNewLine(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start); + } + hasFollowingLineBreak() { + return hasNewLine(this.input, this.state.end, this.nextTokenStart()); + } + isLineTerminator() { + return this.eat(13) || this.canInsertSemicolon(); + } + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; + this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc); + } + expect(type, loc) { + if (!this.eat(type)) { + this.unexpected(loc, type); + } + } + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } + return { + node: node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; + } + throw error; + } + } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssignLoc, + doubleProtoLoc, + privateKeyLoc, + optionalParametersLoc, + voidPatternLoc + } = refExpressionErrors; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc || !!voidPatternLoc; + if (!andThrow) { + return hasErrors; + } + if (shorthandAssignLoc != null) { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + if (doubleProtoLoc != null) { + this.raise(Errors.DuplicateProto, doubleProtoLoc); + } + if (privateKeyLoc != null) { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + if (optionalParametersLoc != null) { + this.unexpected(optionalParametersLoc); + } + if (voidPatternLoc != null) { + this.raise(Errors.InvalidCoverDiscardElement, voidPatternLoc); + } + } + isLiteralPropertyName() { + return tokenIsLiteralPropertyName(this.state.type); + } + isPrivateName(node) { + return node.type === "PrivateName"; + } + getPrivateNameSV(node) { + return node.id.name; + } + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this, inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; + } + enterInitialScopes() { + let paramFlags = 0; + if (this.inModule || this.optionFlags & 1) { + paramFlags |= 2; + } + if (this.optionFlags & 32) { + paramFlags |= 1; + } + const isCommonJS = !this.inModule && this.options.sourceType === "commonjs"; + if (isCommonJS || this.optionFlags & 2) { + paramFlags |= 4; + } + this.prodParam.enter(paramFlags); + let scopeFlags = isCommonJS ? 514 : 1; + if (this.optionFlags & 4) { + scopeFlags |= 512; + } + this.scope.enter(scopeFlags); + } + checkDestructuringPrivate(refExpressionErrors) { + const { + privateKeyLoc + } = refExpressionErrors; + if (privateKeyLoc !== null) { + this.expectPlugin("destructuringPrivate", privateKeyLoc); + } + } +} +class ExpressionErrors { + constructor() { + this.shorthandAssignLoc = null; + this.doubleProtoLoc = null; + this.privateKeyLoc = null; + this.optionalParametersLoc = null; + this.voidPatternLoc = null; + } +} +class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if ((parser == null ? void 0 : parser.optionFlags) & 128) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } +} +const NodePrototype = Node.prototype; +NodePrototype.__clone = function () { + const newNode = new Node(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; + } + } + return newNode; +}; +class NodeUtils extends UtilParser { + startNode() { + const loc = this.state.startLoc; + return new Node(this, loc.index, loc); + } + startNodeAt(loc) { + return new Node(this, loc.index, loc); + } + startNodeAtNode(type) { + return this.startNodeAt(type.loc.start); + } + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEndLoc); + } + finishNodeAt(node, type, endLoc) { + node.type = type; + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 128) node.range[1] = endLoc.index; + if (this.optionFlags & 4096) { + this.processComment(node); + } + return node; + } + resetStartLocation(node, startLoc) { + node.start = startLoc.index; + node.loc.start = startLoc; + if (this.optionFlags & 128) node.range[0] = startLoc.index; + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 128) node.range[1] = endLoc.index; + } + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.loc.start); + } + castNodeTo(node, type) { + node.type = type; + return node; + } + cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.name = name; + if (node.extra) cloned.extra = node.extra; + return cloned; + } + cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.value = node.value; + return cloned; + } +} +const unwrapParenthesizedExpression = node => { + return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; +}; +class LValParser extends NodeUtils { + toAssignable(node, isLHS = false) { + var _node$extra, _node$extra3; + let parenthesized = undefined; + if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { + parenthesized = unwrapParenthesizedExpression(node); + if (isLHS) { + if (parenthesized.type === "Identifier") { + this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node); + } else if (parenthesized.type !== "CallExpression" && parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } else { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + case "VoidPattern": + break; + case "ObjectExpression": + this.castNodeTo(node, "ObjectPattern"); + for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { + var _node$extra2; + const prop = node.properties[i]; + const isLast = i === last; + this.toAssignableObjectExpressionProp(prop, isLast, isLHS); + if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc); + } + } + break; + case "ObjectProperty": + { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + break; + } + case "SpreadElement": + { + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); + } + case "ArrayExpression": + this.castNodeTo(node, "ArrayPattern"); + this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); + break; + case "AssignmentExpression": + if (node.operator !== "=") { + this.raise(Errors.MissingEqInAssignment, node.left.loc.end); + } + this.castNodeTo(node, "AssignmentPattern"); + delete node.operator; + if (node.left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, node.left); + } + this.toAssignable(node.left, isLHS); + break; + case "ParenthesizedExpression": + this.toAssignable(parenthesized, isLHS); + break; + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "ObjectMethod") { + this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key); + } else if (prop.type === "SpreadElement") { + this.castNodeTo(prop, "RestElement"); + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + if (!isLast) { + this.raise(Errors.RestTrailingComma, prop); + } + } else { + this.toAssignable(prop, isLHS); + } + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + const end = exprList.length - 1; + for (let i = 0; i <= end; i++) { + const elt = exprList[i]; + if (!elt) continue; + this.toAssignableListItem(exprList, i, isLHS); + if (elt.type === "RestElement") { + if (i < end) { + this.raise(Errors.RestTrailingComma, elt); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, trailingCommaLoc); + } + } + } + } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "SpreadElement") { + this.castNodeTo(node, "RestElement"); + const arg = node.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(node, isLHS); + } + } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + case "VoidPattern": + return true; + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + case "ObjectProperty": + return this.isAssignable(node.value); + case "SpreadElement": + return this.isAssignable(node.argument); + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + case "AssignmentExpression": + return node.operator === "="; + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + default: + return false; + } + } + toReferencedList(exprList, isParenthesizedExpr) { + return exprList; + } + toReferencedListDeep(exprList, isParenthesizedExpr) { + this.toReferencedList(exprList, isParenthesizedExpr); + for (const expr of exprList) { + if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { + this.toReferencedListDeep(expr.elements); + } + } + } + parseSpread(refExpressionErrors) { + const node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined); + return this.finishNode(node, "SpreadElement"); + } + parseRestBinding() { + const node = this.startNode(); + this.next(); + const argument = this.parseBindingAtom(); + if (argument.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, argument); + } + node.argument = argument; + return this.finishNode(node, "RestElement"); + } + parseBindingAtom() { + switch (this.state.type) { + case 0: + { + const node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(3, 93, 1); + return this.finishNode(node, "ArrayPattern"); + } + case 5: + return this.parseObjectLike(8, true); + case 88: + return this.parseVoidPattern(null); + } + return this.parseIdentifier(); + } + parseBindingList(close, closeCharCode, flags) { + const allowEmpty = flags & 1; + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + } + if (allowEmpty && this.match(12)) { + elts.push(null); + } else if (this.eat(close)) { + break; + } else if (this.match(21)) { + let rest = this.parseRestBinding(); + if (this.hasPlugin("flow") || flags & 2) { + rest = this.parseFunctionParamType(rest); + } + elts.push(rest); + if (!this.checkCommaAfterRest(closeCharCode)) { + this.expect(close); + break; + } + } else { + const decorators = []; + if (flags & 2) { + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + elts.push(this.parseBindingElement(flags, decorators)); + } + } + return elts; + } + parseBindingRestProperty(prop) { + this.next(); + if (this.hasPlugin("discardBinding") && this.match(88)) { + prop.argument = this.parseVoidPattern(null); + this.raise(Errors.UnexpectedVoidPattern, prop.argument); + } else { + prop.argument = this.parseIdentifier(); + } + this.checkCommaAfterRest(125); + return this.finishNode(prop, "RestElement"); + } + parseBindingProperty() { + const { + type, + startLoc + } = this.state; + if (type === 21) { + return this.parseBindingRestProperty(this.startNode()); + } + const prop = this.startNode(); + if (type === 139) { + this.expectPlugin("destructuringPrivate", startLoc); + this.classScope.usePrivateName(this.state.value, startLoc); + prop.key = this.parsePrivateName(); + } else { + this.parsePropertyName(prop); + } + prop.method = false; + return this.parseObjPropValue(prop, startLoc, false, false, true, false); + } + parseBindingElement(flags, decorators) { + const left = this.parseMaybeDefault(); + if (this.hasPlugin("flow") || flags & 2) { + this.parseFunctionParamType(left); + } + if (decorators.length) { + left.decorators = decorators; + this.resetStartLocationFromNode(left, decorators[0]); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + return elt; + } + parseFunctionParamType(param) { + return param; + } + parseMaybeDefault(startLoc, left) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + left = left != null ? left : this.parseBindingAtom(); + if (!this.eat(29)) return left; + const node = this.startNodeAt(startLoc); + if (left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, left); + } + node.left = left; + node.right = this.parseMaybeAssignAllowIn(); + return this.finishNode(node, "AssignmentPattern"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "AssignmentPattern": + return "left"; + case "RestElement": + return "argument"; + case "ObjectProperty": + return "value"; + case "ParenthesizedExpression": + return "expression"; + case "ArrayPattern": + return "elements"; + case "ObjectPattern": + return "properties"; + case "VoidPattern": + return true; + case "CallExpression": + if (!disallowCallExpression && !this.state.strict && this.optionFlags & 8192) { + return true; + } + } + return false; + } + isOptionalMemberExpression(expression) { + return expression.type === "OptionalMemberExpression"; + } + checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false, disallowCallExpression = false) { + var _expression$extra; + const type = expression.type; + if (this.isObjectMethod(expression)) return; + const isOptionalMemberExpression = this.isOptionalMemberExpression(expression); + if (isOptionalMemberExpression || type === "MemberExpression") { + if (isOptionalMemberExpression) { + this.expectPlugin("optionalChainingAssign", expression.loc.start); + if (ancestor.type !== "AssignmentExpression") { + this.raise(Errors.InvalidLhsOptionalChaining, expression, { + ancestor + }); + } + } + if (binding !== 64) { + this.raise(Errors.InvalidPropertyBindingPattern, expression); + } + return; + } + if (type === "Identifier") { + this.checkIdentifier(expression, binding, strictModeChanged); + const { + name + } = expression; + if (checkClashes) { + if (checkClashes.has(name)) { + this.raise(Errors.ParamDupe, expression); + } else { + checkClashes.add(name); + } + } + return; + } else if (type === "VoidPattern" && ancestor.type === "CatchClause") { + this.raise(Errors.VoidPatternCatchClauseParam, expression); + } + const unwrappedExpression = unwrapParenthesizedExpression(expression); + disallowCallExpression || (disallowCallExpression = unwrappedExpression.type === "CallExpression" && (unwrappedExpression.callee.type === "Import" || unwrappedExpression.callee.type === "Super")); + const validity = this.isValidLVal(type, disallowCallExpression, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + if (validity === true) return; + if (validity === false) { + const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding; + this.raise(ParseErrorClass, expression, { + ancestor + }); + return; + } + let key, isParenthesizedExpression; + if (typeof validity === "string") { + key = validity; + isParenthesizedExpression = type === "ParenthesizedExpression"; + } else { + [key, isParenthesizedExpression] = validity; + } + const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { + type + } : ancestor; + const val = expression[key]; + if (Array.isArray(val)) { + for (const child of val) { + if (child) { + this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, true); + } + } + } else if (val) { + this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, disallowCallExpression); + } + } + checkIdentifier(at, bindingType, strictModeChanged = false) { + if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) { + if (bindingType === 64) { + this.raise(Errors.StrictEvalArguments, at, { + referenceName: at.name + }); + } else { + this.raise(Errors.StrictEvalArgumentsBinding, at, { + bindingName: at.name + }); + } + } + if (bindingType & 8192 && at.name === "let") { + this.raise(Errors.LetInLexicalBinding, at); + } + if (!(bindingType & 64)) { + this.declareNameFromIdentifier(at, bindingType); + } + } + declareNameFromIdentifier(identifier, binding) { + this.scope.declareName(identifier.name, binding, identifier.loc.start); + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + case "Identifier": + case "MemberExpression": + break; + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + default: + this.raise(Errors.InvalidRestAssignmentPattern, node); + } + } + checkCommaAfterRest(close) { + if (!this.match(12)) { + return false; + } + this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc); + return true; + } +} +const keywordAndTSRelationalOperator = /in(?:stanceof)?|as|satisfies/y; +function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } + return x; +} +function assert(x) { + if (!x) { + throw new Error("Assert fail"); + } +} +const TSErrors = ParseErrorEnum`typescript`({ + AbstractMethodHasImplementation: ({ + methodName + }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`, + AbstractPropertyHasInitializer: ({ + propertyName + }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, + AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: ({ + kind + }) => `'declare' is not allowed in ${kind}ters.`, + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: ({ + modifier + }) => `Accessibility modifier already seen: '${modifier}'.`, + DuplicateModifier: ({ + modifier + }) => `Duplicate modifier: '${modifier}'.`, + EmptyHeritageClauseType: ({ + token + }) => `'${token}' list cannot be empty.`, + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier", + IncompatibleModifiers: ({ + modifiers + }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`, + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: ({ + modifier + }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`, + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidHeritageClauseType: ({ + token + }) => `'${token}' list can only include identifiers or qualified-names with optional type arguments.`, + InvalidModifierOnAwaitUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on an await using declaration.`, + InvalidModifierOnTypeMember: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type member.`, + InvalidModifierOnTypeParameter: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`, + InvalidModifierOnTypeParameterPositions: ({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifierOnUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on a using declaration.`, + InvalidModifiersOrder: ({ + orderedModifiers + }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, + InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifier: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: ({ + modifier + }) => `Private elements cannot have an accessibility modifier ('${modifier}').`, + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.", + ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SingleTypeParameterWithoutTrailingComma: ({ + typeParameterName + }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: ({ + type + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`, + UsingDeclarationInAmbientContext: kind => `'${kind}' declarations are not allowed in ambient contexts.` +}); +function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; + case "boolean": + return "TSBooleanKeyword"; + case "bigint": + return "TSBigIntKeyword"; + case "never": + return "TSNeverKeyword"; + case "number": + return "TSNumberKeyword"; + case "object": + return "TSObjectKeyword"; + case "string": + return "TSStringKeyword"; + case "symbol": + return "TSSymbolKeyword"; + case "undefined": + return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; + default: + return undefined; + } +} +function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; +} +function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; +} +var typescript = superClass => class TypeScriptParserMixin extends superClass { + constructor(...args) { + super(...args); + this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out"], + disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + this.tsParseConstModifier = this.tsParseModifiers.bind(this, { + allowedModifiers: ["const"], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out", "const"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + getScopeHandler() { + return TypeScriptScopeHandler; + } + tsIsIdentifier() { + return tokenIsIdentifier(this.state.type); + } + tsTokenCanFollowModifier() { + return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || this.isLiteralPropertyName(); + } + tsNextTokenOnSameLineAndCanFollowModifier() { + this.next(); + if (this.hasPrecedingLineBreak()) { + return false; + } + return this.tsTokenCanFollowModifier(); + } + tsNextTokenCanFollowModifier() { + if (this.match(106)) { + this.next(); + return this.tsTokenCanFollowModifier(); + } + return this.tsNextTokenOnSameLineAndCanFollowModifier(); + } + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock, hasSeenStaticModifier) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) { + return undefined; + } + const modifier = this.state.value; + if (allowedModifiers.includes(modifier)) { + if (hasSeenStaticModifier && this.match(106)) { + return undefined; + } + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } + } + return undefined; + } + tsParseModifiers({ + allowedModifiers, + disallowedModifiers, + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember + }, modified) { + const enforceOrder = (loc, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(TSErrors.InvalidModifiersOrder, loc, { + orderedModifiers: [before, after] + }); + } + }; + const incompatible = (loc, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(TSErrors.IncompatibleModifiers, loc, { + modifiers: [mod1, mod2] + }); + } + }; + for (;;) { + const { + startLoc + } = this.state; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock, modified.static); + if (!modifier) break; + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, modifier, "override"); + enforceOrder(startLoc, modifier, modifier, "static"); + enforceOrder(startLoc, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); + } else { + if (hasOwnProperty.call(modified, modifier)) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, "static", "readonly"); + enforceOrder(startLoc, modifier, "static", "override"); + enforceOrder(startLoc, modifier, "override", "readonly"); + enforceOrder(startLoc, modifier, "abstract", "override"); + incompatible(startLoc, modifier, "declare", "override"); + incompatible(startLoc, modifier, "static", "abstract"); + } + modified[modifier] = true; + } + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(errorTemplate, startLoc, { + modifier + }); + } + } + } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(8); + case "HeritageClauseElement": + return this.match(5); + case "TupleElementTypes": + return this.match(3); + case "TypeParametersOrArguments": + return this.match(48); + } + } + tsParseList(kind, parseElement) { + const result = []; + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); + } + return result; + } + tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos)); + } + tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) { + const result = []; + let trailingCommaPos = -1; + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; + } + trailingCommaPos = -1; + const element = parseElement(); + if (element == null) { + return undefined; + } + result.push(element); + if (this.eat(12)) { + trailingCommaPos = this.state.lastTokStartLoc.index; + continue; + } + if (this.tsIsListTerminator(kind)) { + break; + } + if (expectSuccess) { + this.expect(12); + } + return undefined; + } + if (refTrailingCommaPos) { + refTrailingCommaPos.value = trailingCommaPos; + } + return result; + } + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) { + if (!skipFirstToken) { + if (bracket) { + this.expect(0); + } else { + this.expect(47); + } + } + const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos); + if (bracket) { + this.expect(3); + } else { + this.expect(48); + } + return result; + } + tsParseImportType() { + const node = this.startNode(); + this.expect(83); + this.expect(10); + if (!this.match(134)) { + this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc); + node.argument = super.parseExprAtom(); + } else { + node.argument = this.parseStringLiteral(this.state.value); + } + if (this.eat(12)) { + node.options = this.tsParseImportTypeOptions(); + } else { + node.options = null; + } + this.expect(11); + if (this.eat(16)) { + node.qualifier = this.tsParseEntityName(1 | 2); + } + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSImportType"); + } + tsParseImportTypeOptions() { + const node = this.startNode(); + this.expect(5); + const withProperty = this.startNode(); + if (this.isContextual(76)) { + withProperty.method = false; + withProperty.key = this.parseIdentifier(true); + withProperty.computed = false; + withProperty.shorthand = false; + } else { + this.unexpected(null, 76); + } + this.expect(14); + withProperty.value = this.tsParseImportTypeWithPropertyValue(); + node.properties = [this.finishObjectProperty(withProperty)]; + this.eat(12); + this.expect(8); + return this.finishNode(node, "ObjectExpression"); + } + tsParseImportTypeWithPropertyValue() { + const node = this.startNode(); + const properties = []; + this.expect(5); + while (!this.match(8)) { + const type = this.state.type; + if (tokenIsIdentifier(type) || type === 134) { + properties.push(super.parsePropertyDefinition(null)); + } else { + this.unexpected(); + } + this.eat(12); + } + node.properties = properties; + this.next(); + return this.finishNode(node, "ObjectExpression"); + } + tsParseEntityName(flags) { + let entity; + if (flags & 1 && this.match(78)) { + if (flags & 2) { + entity = this.parseIdentifier(true); + } else { + const node = this.startNode(); + this.next(); + entity = this.finishNode(node, "ThisExpression"); + } + } else { + entity = this.parseIdentifier(!!(flags & 1)); + } + while (this.eat(16)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(!!(flags & 1)); + entity = this.finishNode(node, "TSQualifiedName"); + } + return entity; + } + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(1); + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeReference"); + } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(87); + if (this.match(83)) { + node.exprName = this.tsParseImportType(); + } else { + node.exprName = this.tsParseEntityName(1 | 2); + } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeQuery"); + } + tsParseTypeParameter(parseModifiers) { + const node = this.startNode(); + parseModifiers(node); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(81); + node.default = this.tsEatThenParseType(29); + return this.finishNode(node, "TSTypeParameter"); + } + tsTryParseTypeParameters(parseModifiers) { + if (this.match(47)) { + return this.tsParseTypeParameters(parseModifiers); + } + } + tsParseTypeParameters(parseModifiers) { + const node = this.startNode(); + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + const refTrailingCommaPos = { + value: -1 + }; + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeParameters, node); + } + if (refTrailingCommaPos.value !== -1) { + this.addExtra(node, "trailingComma", refTrailingCommaPos.value); + } + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === 19; + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + this.expect(10); + signature[paramsKey] = this.tsParseBindingListForSignature(); + if (returnTokenRequired) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } + } + tsParseBindingListForSignature() { + const list = super.parseBindingList(11, 41, 2); + for (const pattern of list) { + const { + type + } = pattern; + if (type === "AssignmentPattern" || type === "TSParameterProperty") { + this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, { + type + }); + } + } + return list; + } + tsParseTypeMemberSemicolon() { + if (!this.eat(12) && !this.isLineTerminator()) { + this.expect(13); + } + } + tsParseSignatureMember(kind, node) { + this.tsFillSignature(14, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } + tsIsUnambiguouslyIndexSignature() { + this.next(); + if (tokenIsIdentifier(this.state.type)) { + this.next(); + return this.match(14); + } + return false; + } + tsTryParseIndexSignature(node) { + if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return; + } + this.expect(0); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + this.expect(3); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); + } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(17)) node.optional = true; + if (this.match(10) || this.match(47)) { + if (readonly) { + this.raise(TSErrors.ReadonlyForMethodSignature, node); + } + const method = node; + if (method.kind && this.match(47)) { + this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition()); + } + this.tsFillSignature(14, method); + this.tsParseTypeMemberSemicolon(); + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + if (method.kind === "get") { + if (method[paramsKey].length > 0) { + this.raise(Errors.BadGetterArity, this.state.curPosition()); + if (this.isThisParam(method[paramsKey][0])) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + } + } else if (method.kind === "set") { + if (method[paramsKey].length !== 1) { + this.raise(Errors.BadSetterArity, this.state.curPosition()); + } else { + const firstParameter = method[paramsKey][0]; + if (this.isThisParam(firstParameter)) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()); + } + if (firstParameter.type === "RestElement") { + this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition()); + } + } + if (method[returnTypeKey]) { + this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]); + } + } else { + method.kind = "method"; + } + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = node; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); + } + } + tsParseTypeMember() { + const node = this.startNode(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } + if (this.match(77)) { + const id = this.startNode(); + this.next(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); + } + } + this.tsParseModifiers({ + allowedModifiers: ["readonly"], + disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"] + }, node); + const idx = this.tsTryParseIndexSignature(node); + if (idx) { + return idx; + } + super.parsePropertyName(node); + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + super.parsePropertyName(node); + if (!this.match(10) && !this.match(47)) { + this.unexpected(null, 10); + } + } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); + } + tsParseObjectTypeMembers() { + this.expect(5); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(8); + return members; + } + tsIsStartOfMappedType() { + this.next(); + if (this.eat(53)) { + return this.isContextual(122); + } + if (this.isContextual(122)) { + this.next(); + } + if (!this.match(0)) { + return false; + } + this.next(); + if (!this.tsIsIdentifier()) { + return false; + } + this.next(); + return this.match(58); + } + tsParseMappedType() { + const node = this.startNode(); + this.expect(5); + if (this.match(53)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual(122); + } else if (this.eatContextual(122)) { + node.readonly = true; + } + this.expect(0); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsExpectThenParseType(58); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + node.nameType = this.eatContextual(93) ? this.tsParseType() : null; + this.expect(3); + if (this.match(53)) { + node.optional = this.state.value; + this.next(); + this.expect(17); + } else if (this.eat(17)) { + node.optional = true; + } + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(8); + return this.finishNode(node, "TSMappedType"); + } + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + let seenOptionalElement = false; + node.elementTypes.forEach(elementNode => { + const { + type + } = elementNode; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode); + } + seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); + }); + return this.finishNode(node, "TSTupleType"); + } + tsParseTupleElementType() { + const restStartLoc = this.state.startLoc; + const rest = this.eat(21); + const { + startLoc + } = this.state; + let labeled; + let label; + let optional; + let type; + const isWord = tokenIsKeywordOrIdentifier(this.state.type); + const chAfterWord = isWord ? this.lookaheadCharCode() : null; + if (chAfterWord === 58) { + labeled = true; + optional = false; + label = this.parseIdentifier(true); + this.expect(14); + type = this.tsParseType(); + } else if (chAfterWord === 63) { + optional = true; + const wordName = this.state.value; + const typeOrLabel = this.tsParseNonArrayType(); + if (this.lookaheadCharCode() === 58) { + labeled = true; + label = this.createIdentifier(this.startNodeAt(startLoc), wordName); + this.expect(17); + this.expect(14); + type = this.tsParseType(); + } else { + labeled = false; + type = typeOrLabel; + this.expect(17); + } + } else { + type = this.tsParseType(); + optional = this.eat(17); + labeled = this.eat(14); + } + if (labeled) { + let labeledNode; + if (label) { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + labeledNode.label = label; + labeledNode.elementType = type; + if (this.eat(17)) { + labeledNode.optional = true; + this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc); + } + } else { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + this.raise(TSErrors.InvalidTupleMemberLabel, type); + labeledNode.label = type; + labeledNode.elementType = this.tsParseType(); + } + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAt(startLoc); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + if (rest) { + const restNode = this.startNodeAt(restStartLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + return type; + } + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(10); + node.typeAnnotation = this.tsParseType(); + this.expect(11); + return this.finishNode(node, "TSParenthesizedType"); + } + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); + this.next(); + } + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); + return this.finishNode(node, type); + } + tsParseLiteralTypeNode() { + const node = this.startNode(); + switch (this.state.type) { + case 135: + case 136: + case 134: + case 85: + case 86: + node.literal = super.parseExprAtom(); + break; + default: + this.unexpected(); + } + return this.finishNode(node, "TSLiteralType"); + } + tsParseTemplateLiteralType() { + const node = this.startNode(); + node.literal = super.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); + } + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; + } + } + tsParseNonArrayType() { + switch (this.state.type) { + case 134: + case 135: + case 136: + case 85: + case 86: + return this.tsParseLiteralTypeNode(); + case 53: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + if (nextToken.type !== 135 && nextToken.type !== 136) { + this.unexpected(); + } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } + break; + case 78: + return this.tsParseThisTypeOrThisTypePredicate(); + case 87: + return this.tsParseTypeQuery(); + case 83: + return this.tsParseImportType(); + case 5: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + case 0: + return this.tsParseTupleType(); + case 10: + return this.tsParseParenthesizedType(); + case 25: + case 24: + return this.tsParseTemplateLiteralType(); + default: + { + const { + type + } = this.state; + if (tokenIsIdentifier(type) || type === 88 || type === 84) { + const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); + if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, nodeType); + } + return this.tsParseTypeReference(); + } + } + } + throw this.unexpected(); + } + tsParseArrayTypeOrHigher() { + const { + startLoc + } = this.state; + let type = this.tsParseNonArrayType(); + while (!this.hasPrecedingLineBreak() && this.eat(0)) { + if (this.match(3)) { + const node = this.startNodeAt(startLoc); + node.elementType = type; + this.expect(3); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAt(startLoc); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(3); + type = this.finishNode(node, "TSIndexedAccessType"); + } + } + return type; + } + tsParseTypeOperator() { + const node = this.startNode(); + const operator = this.state.value; + this.next(); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly(node); + } + return this.finishNode(node, "TSTypeOperator"); + } + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; + default: + this.raise(TSErrors.UnexpectedReadonly, node); + } + } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual(115); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); + } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { + const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + } + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; + } + node.types = types; + return this.finishNode(node, kind); + } + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45); + } + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43); + } + tsIsStartOfFunctionType() { + if (this.match(47)) { + return true; + } + return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); + } + tsSkipParameterStart() { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + this.next(); + return true; + } + if (this.match(5)) { + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + this.parseObjectLike(8, true); + return errors.length === previousErrorCount; + } catch (_unused) { + return false; + } + } + if (this.match(0)) { + this.next(); + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + super.parseBindingList(3, 93, 1); + return errors.length === previousErrorCount; + } catch (_unused2) { + return false; + } + } + return false; + } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); + if (this.match(11) || this.match(21)) { + return true; + } + if (this.tsSkipParameterStart()) { + if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) { + return true; + } + if (this.match(11)) { + this.next(); + if (this.match(19)) { + return true; + } + } + } + return false; + } + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + if (asserts && this.match(78)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); + } + tsTryParseTypeOrTypePredicateAnnotation() { + if (this.match(14)) { + return this.tsParseTypeOrTypePredicateAnnotation(14); + } + } + tsTryParseTypeAnnotation() { + if (this.match(14)) { + return this.tsParseTypeAnnotation(); + } + } + tsTryParseType() { + return this.tsEatThenParseType(14); + } + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + this.next(); + return id; + } + } + tsParseTypePredicateAsserts() { + if (this.state.type !== 109) { + return false; + } + const containsEsc = this.state.containsEsc; + this.next(); + if (!tokenIsIdentifier(this.state.type) && !this.match(78)) { + return false; + } + if (containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, { + reservedWord: "asserts" + }); + } + return true; + } + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(14); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); + } + tsParseType() { + assert(this.state.inType); + const type = this.tsParseNonConditionalType(); + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { + return type; + } + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); + this.expect(17); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + this.expect(14); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + return this.finishNode(node, "TSConditionalType"); + } + isAbstractConstructorSignature() { + return this.isContextual(124) && this.isLookaheadContextual("new"); + } + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); + } + if (this.match(77)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); + } + return this.tsParseUnionTypeOrHigher(); + } + tsParseTypeAssertion() { + if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc); + } + const node = this.startNode(); + node.typeAnnotation = this.tsInType(() => { + this.next(); + return this.match(75) ? this.tsParseTypeReference() : this.tsParseType(); + }); + this.expect(48); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } + tsParseHeritageClause(token) { + const originalStartLoc = this.state.startLoc; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + node.expression = this.tsParseEntityName(1 | 2); + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSExpressionWithTypeArguments"); + }); + if (!delimitedList.length) { + this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, { + token + }); + } + return delimitedList; + } + tsParseInterfaceDeclaration(node, properties = {}) { + if (this.hasFollowingLineBreak()) return null; + this.expectContextual(129); + if (properties.declare) node.declare = true; + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 130); + } else { + node.id = null; + this.raise(TSErrors.MissingInterfaceName, this.state.startLoc); + } + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (this.eat(81)) { + node.extends = this.tsParseHeritageClause("extends"); + } + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); + } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 2); + node.typeAnnotation = this.tsInType(() => { + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); + this.expect(29); + if (this.isContextual(114) && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); + } + tsInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + try { + return cb(); + } finally { + this.state.inType = oldInType; + } + } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { + if (this.match(token)) { + return this.tsNextThenParseType(); + } + } + tsExpectThenParseType(token) { + return this.tsInType(() => { + this.expect(token); + return this.tsParseType(); + }); + } + tsNextThenParseType() { + return this.tsInType(() => { + this.next(); + return this.tsParseType(); + }); + } + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + if (this.eat(29)) { + node.initializer = super.parseMaybeAssignAllowIn(); + } + return this.finishNode(node, "TSEnumMember"); + } + tsParseEnumDeclaration(node, properties = {}) { + if (properties.const) node.const = true; + if (properties.declare) node.declare = true; + this.expectContextual(126); + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, node.const ? 8971 : 8459); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumDeclaration"); + } + tsParseEnumBody() { + const node = this.startNode(); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumBody"); + } + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(0); + this.expect(5); + super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); + } + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); + if (!nested) { + this.checkIdentifier(node.id, 1024); + } + if (this.eat(16)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(1024); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual(112)) { + node.kind = "global"; + node.global = true; + node.id = this.parseIdentifier(); + } else if (this.match(134)) { + node.kind = "module"; + node.id = super.parseStringLiteral(this.state.value); + } else { + this.unexpected(); + } + if (this.match(5)) { + this.scope.enter(1024); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) { + node.isExport = isExport || false; + node.id = maybeDefaultIdentifier || this.parseIdentifier(); + this.checkIdentifier(node.id, 4096); + this.expect(29); + const moduleReference = this.tsParseModuleReference(); + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(TSErrors.ImportAliasHasImportType, moduleReference); + } + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); + } + tsIsExternalModuleReference() { + return this.isContextual(119) && this.lookaheadCharCode() === 40; + } + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0); + } + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual(119); + this.expect(10); + if (!this.match(134)) { + this.unexpected(); + } + node.expression = super.parseExprAtom(); + this.expect(11); + this.sawUnambiguousESM = true; + return this.finishNode(node, "TSExternalModuleReference"); + } + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; + } + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => f() || abort()); + if (result.aborted || !result.node) return; + if (result.error) this.state = result.failState; + return result.node; + } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); + if (result !== undefined && result !== false) { + return result; + } + this.state = state; + } + tsTryParseDeclare(node) { + if (this.isLineTerminator()) { + return; + } + const startType = this.state.type; + return this.tsInAmbientContext(() => { + switch (startType) { + case 68: + node.declare = true; + return super.parseFunctionStatement(node, false, false); + case 80: + node.declare = true; + return this.parseClass(node, true, false); + case 126: + return this.tsParseEnumDeclaration(node, { + declare: true + }); + case 112: + return this.tsParseAmbientExternalModuleDeclaration(node); + case 100: + if (this.state.containsEsc) { + return; + } + case 75: + case 74: + if (!this.match(75) || !this.isLookaheadContextual("enum")) { + node.declare = true; + return this.parseVarStatement(node, this.state.value, true); + } + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true, + declare: true + }); + case 107: + if (this.isUsing()) { + this.raise(TSErrors.InvalidModifierOnUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + return this.parseVarStatement(node, "using", true); + } + break; + case 96: + if (this.isAwaitUsing()) { + this.raise(TSErrors.InvalidModifierOnAwaitUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + this.next(); + return this.parseVarStatement(node, "await using", true); + } + break; + case 129: + { + const result = this.tsParseInterfaceDeclaration(node, { + declare: true + }); + if (result) return result; + } + default: + if (tokenIsIdentifier(startType)) { + return this.tsParseDeclaration(node, this.state.type, true, null); + } + } + }); + } + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.type, true, null); + } + tsParseDeclaration(node, type, next, decorators) { + switch (type) { + case 124: + if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { + return this.tsParseAbstractDeclaration(node, decorators); + } + break; + case 127: + if (this.tsCheckLineTerminator(next)) { + if (this.match(134)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (tokenIsIdentifier(this.state.type)) { + node.kind = "module"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + break; + case 128: + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + node.kind = "namespace"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + break; + case 130: + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; + } + return !this.isLineTerminator(); + } + tsTryParseGenericAsyncArrowFunction(startLoc) { + if (!this.match(47)) return; + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startLoc); + node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(19); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!res) return; + return super.parseArrowExpression(res, null, true); + } + tsParseTypeArgumentsInExpression() { + if (this.reScan_lt() !== 47) return; + return this.tsParseTypeArguments(); + } + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => this.tsInTopLevelContext(() => { + this.expect(47); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeArguments, node); + } else if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + tsIsDeclarationStart() { + return tokenIsTSDeclarationStart(this.state.type); + } + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } + parseBindingElement(flags, decorators) { + const startLoc = decorators.length ? decorators[0].loc.start : this.state.startLoc; + const modified = {}; + this.tsParseModifiers({ + allowedModifiers: ["public", "private", "protected", "override", "readonly"] + }, modified); + const accessibility = modified.accessibility; + const override = modified.override; + const readonly = modified.readonly; + if (!(flags & 4) && (accessibility || readonly || override)) { + this.raise(TSErrors.UnexpectedParameterModifier, startLoc); + } + const left = this.parseMaybeDefault(); + if (flags & 2) { + this.parseFunctionParamType(left); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startLoc); + if (decorators.length) { + pp.decorators = decorators; + } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(TSErrors.UnsupportedParameterPropertyKind, pp); + } + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); + } + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + isSimpleParameter(node) { + return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node); + } + tsDisallowOptionalPattern(node) { + for (const param of node.params) { + if (param.type !== "Identifier" && param.optional && !this.state.isAmbientContext) { + this.raise(TSErrors.PatternIsOptional, param); + } + } + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + super.setArrowFunctionParameters(node, params, trailingCommaLoc); + this.tsDisallowOptionalPattern(node); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + } + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined; + if (bodilessType && !this.match(5) && this.isLineTerminator()) { + return this.finishNode(node, bodilessType); + } + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(TSErrors.DeclareFunctionHasImplementation, node); + if (node.declare) { + return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); + } + } + this.tsDisallowOptionalPattern(node); + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkIdentifier(node.id, 1024); + } else { + super.registerFunctionStatementId(node); + } + } + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation); + } + }); + } + toReferencedList(exprList, isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(35)) { + this.state.canStartJSXElement = false; + this.next(); + const nonNullExpression = this.startNodeAt(startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + let isOptionalCall = false; + if (this.match(18) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; + } + state.optionalChainMember = isOptionalCall = true; + this.next(); + } + if (this.match(47) || this.match(51)) { + let missingParenErrorLoc; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); + if (asyncArrowFn) { + state.stop = true; + return asyncArrowFn; + } + } + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) return; + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + return; + } + if (tokenIsTemplate(this.state.type)) { + const result = super.parseTaggedTemplateExpression(base, startLoc, state); + result.typeParameters = typeArguments; + return result; + } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(); + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } + return this.finishCallExpression(node, state.optionalChainMember); + } + const tokenType = this.state.type; + if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenType !== 93 && tokenType !== 120 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + return; + } + const node = this.startNodeAt(startLoc); + node.expression = base; + node.typeParameters = typeArguments; + return this.finishNode(node, "TSInstantiationExpression"); + }); + if (missingParenErrorLoc) { + this.unexpected(missingParenErrorLoc, 10); + } + if (result) { + if (result.type === "TSInstantiationExpression") { + if (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + } + if (!this.match(16) && !this.match(18)) { + result.expression = super.stopParseSubscript(base, state); + } + } + return result; + } + } + return super.parseSubscript(base, startLoc, noCalls, state); + } + parseNewCallee(node) { + var _callee$extra; + super.parseNewCallee(node); + const { + callee + } = node; + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + node.typeParameters = callee.typeParameters; + node.callee = callee.expression; + } + } + parseExprOp(left, leftStartLoc, minPrec) { + let isSatisfies; + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) { + const node = this.startNodeAt(leftStartLoc); + node.expression = left; + node.typeAnnotation = this.tsInType(() => { + this.next(); + if (this.match(75)) { + if (isSatisfies) { + this.raise(Errors.UnexpectedKeyword, this.state.startLoc, { + keyword: "const" + }); + } + return this.tsParseTypeReference(); + } + return this.tsParseType(); + }); + this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartLoc, minPrec); + } + return super.parseExprOp(left, leftStartLoc, minPrec); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (!this.state.isAmbientContext) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + checkDuplicateExports() {} + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + const ch = this.lookaheadCharCode(); + return isExport ? ch === 123 || ch === 42 : ch !== 61; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + node.exportKind = phase === "type" ? "type" : "value"; + } else { + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImport(node) { + if (this.match(134)) { + node.importKind = "value"; + return super.parseImport(node); + } + let importNode; + if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) { + node.importKind = "value"; + return this.tsParseImportEqualsDeclaration(node); + } else if (this.isContextual(130)) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); + if (this.lookaheadCharCode() === 61) { + return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier); + } else { + importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier); + } + } else { + importNode = super.parseImport(node); + } + if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode); + } + return importNode; + } + parseExport(node, decorators) { + if (this.match(83)) { + const nodeImportEquals = node; + this.next(); + let maybeDefaultIdentifier = null; + if (this.isContextual(130) && this.isPotentialImportPhase(false)) { + maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false); + } else { + nodeImportEquals.importKind = "value"; + } + const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true); + return declaration; + } else if (this.eat(29)) { + const assign = node; + assign.expression = super.parseExpression(); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual(93)) { + const decl = node; + this.expectContextual(128); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + return super.parseExport(node, decorators); + } + } + isAbstractClass() { + return this.isContextual(124) && this.isLookaheadContextual("class"); + } + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + return this.parseClass(cls, true, true); + } + if (this.match(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseExportDefaultExpression(); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + const { + isAmbientContext + } = this.state; + const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); + if (!isAmbientContext) return declaration; + if (!node.declare && (kind === "using" || kind === "await using")) { + this.raiseOverwrite(TSErrors.UsingDeclarationInAmbientContext, node, kind); + return declaration; + } + for (const { + id, + init + } of declaration.declarations) { + if (!init) continue; + if (kind === "var" || kind === "let" || !!id.typeAnnotation) { + this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init); + } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) { + this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); + } + } + return declaration; + } + parseStatementContent(flags, decorators) { + if (!this.state.containsEsc) { + switch (this.state.type) { + case 75: + { + if (this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + break; + } + case 124: + case 125: + { + if (this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()) { + const token = this.state.type; + const node = this.startNode(); + this.next(); + const declaration = token === 125 ? this.tsTryParseDeclare(node) : this.tsParseAbstractDeclaration(node, decorators); + if (declaration) { + if (token === 125) { + declaration.declare = true; + } + return declaration; + } else { + node.expression = this.createIdentifier(this.startNodeAt(node.loc.start), token === 125 ? "declare" : "abstract"); + this.semicolon(false); + return this.finishNode(node, "ExpressionStatement"); + } + } + break; + } + case 126: + return this.tsParseEnumDeclaration(this.startNode()); + case 112: + { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 123) { + const node = this.startNode(); + return this.tsParseAmbientExternalModuleDeclaration(node); + } + break; + } + case 129: + { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + break; + } + case 127: + { + if (this.nextTokenIsIdentifierOrStringLiteralOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 127, false, decorators); + } + break; + } + case 128: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 128, false, decorators); + } + break; + } + case 130: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + } + return super.parseStatementContent(flags, decorators); + } + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } + return !!member[modifier]; + }); + } + tsIsStartOfStaticBlocks() { + return this.isContextual(106) && this.lookaheadCharCode() === 123; + } + parseClassMember(classBody, member, state) { + const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; + this.tsParseModifiers({ + allowedModifiers: modifiers, + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }, member); + const callParseClassMemberWithIsStatic = () => { + if (this.tsIsStartOfStaticBlocks()) { + this.next(); + this.next(); + if (this.tsHasSomeModifiers(member, modifiers)) { + this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition()); + } + super.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); + } + }; + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); + if (idx) { + classBody.body.push(idx); + if (member.abstract) { + this.raise(TSErrors.IndexSignatureHasAbstract, member); + } + if (member.accessibility) { + this.raise(TSErrors.IndexSignatureHasAccessibility, member, { + modifier: member.accessibility + }); + } + if (member.declare) { + this.raise(TSErrors.IndexSignatureHasDeclare, member); + } + if (member.override) { + this.raise(TSErrors.IndexSignatureHasOverride, member); + } + return; + } + if (!this.state.inAbstractClass && member.abstract) { + this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member); + } + if (member.override) { + if (!state.hadSuperClass) { + this.raise(TSErrors.OverrideNotInSubClass, member); + } + } + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(17); + if (optional) methodOrProp.optional = true; + if (methodOrProp.readonly && this.match(10)) { + this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp); + } + if (methodOrProp.declare && this.match(10)) { + this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp); + } + } + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + return super.parseConditional(expr, startLoc, refExpressionErrors); + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); + } + return node; + } + parseExportDeclaration(node) { + if (!this.state.isAmbientContext && this.isContextual(125)) { + return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); + } + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual(125); + if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) { + throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc); + } + const isIdentifier = tokenIsIdentifier(this.state.type); + const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node); + if (!declaration) return null; + if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { + node.exportKind = "type"; + } + if (isDeclare && declaration.type !== "TSImportEqualsDeclaration") { + this.resetStartLocation(declaration, startLoc); + declaration.declare = true; + } + return declaration; + } + parseClassId(node, isStatement, optionalId, bindingType) { + if ((!isStatement || optionalId) && this.isContextual(113)) { + return; + } + super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (typeParameters) node.typeParameters = typeParameters; + } + parseClassPropertyAnnotation(node) { + if (!node.optional) { + if (this.eat(35)) { + node.definite = true; + } else if (this.eat(17)) { + node.optional = true; + } + } + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); + if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) { + this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc); + } + if (node.abstract && this.match(29)) { + const { + key + } = node; + this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, { + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(TSErrors.PrivateElementHasAbstract, node); + } + if (node.accessibility) { + this.raise(TSErrors.PrivateElementHasAccessibility, node, { + modifier: node.accessibility + }); + } + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } + parseClassAccessorProperty(node) { + this.parseClassPropertyAnnotation(node); + if (node.optional) { + this.raise(TSErrors.AccessorCannotBeOptional, node); + } + return super.parseClassAccessorProperty(node); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters && isConstructor) { + this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters); + } + const { + declare = false, + kind + } = method; + if (declare && (kind === "get" || kind === "set")) { + this.raise(TSErrors.DeclareAccessor, method, { + kind + }); + } + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + declareClassPrivateMethodInScope(node, kind) { + if (node.type === "TSDeclareMethod") return; + if (node.type === "MethodDefinition" && node.value.body == null) { + return; + } + super.declareClassPrivateMethodInScope(node, kind); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass) { + if (node.superClass.type === "TSInstantiationExpression") { + const tsInstantiationExpression = node.superClass; + const superClass = tsInstantiationExpression.expression; + this.takeSurroundingComments(superClass, superClass.start, superClass.end); + const superTypeArguments = tsInstantiationExpression.typeParameters; + this.takeSurroundingComments(superTypeArguments, superTypeArguments.start, superTypeArguments.end); + node.superClass = superClass; + node.superTypeParameters = superTypeArguments; + } else if (this.match(47) || this.match(51)) { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } + } + if (this.eatContextual(113)) { + node.implements = this.tsParseHeritageClause("implements"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) prop.typeParameters = typeParameters; + return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + } + parseFunctionParams(node, isConstructor) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) { + decl.definite = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + node.returnType = this.tsParseTypeAnnotation(); + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2; + let state; + let jsx; + let typeCast; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) { + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + if (!state || state === this.state) state = this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; + typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } + expr.typeParameters = typeParameters; + return expr; + }, state); + if (!arrow.error && !arrow.aborted) { + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if (!jsx) { + assert(!this.hasPlugin("jsx")); + typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!typeCast.error) return typeCast.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrow.node) { + this.state = arrow.failState; + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; + } + throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error); + } + reportReservedArrowTypeParam(node) { + var _node$extra2; + if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra2 = node.extra) != null && _node$extra2.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedArrowTypeParam, node); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + if (!this.hasPlugin("jsx") && this.match(47)) { + return this.tsParseTypeAssertion(); + } + return super.parseMaybeUnary(refExpressionErrors, sawUnary); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + if (this.canInsertSemicolon() || !this.match(19)) abort(); + return returnType; + }); + if (result.aborted) return; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } + return super.parseArrow(node); + } + parseFunctionParamType(param) { + if (this.eat(17)) { + param.optional = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); + case "TSParameterProperty": + return true; + default: + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "ParenthesizedExpression": + this.toAssignableParenthesizedExpression(node, isLHS); + break; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + if (isLHS) { + this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, node); + } + this.toAssignable(node.expression, isLHS); + break; + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + default: + super.toAssignable(node, isLHS); + } + } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + this.toAssignable(node.expression, isLHS); + break; + default: + super.toAssignable(node, isLHS); + } + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + default: + super.checkToRestConversion(node, allowPattern); + } + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "TSTypeCastExpression": + return true; + case "TSParameterProperty": + return "parameter"; + case "TSNonNullExpression": + return "expression"; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]; + default: + return super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } + } + parseBindingAtom() { + if (this.state.type === 78) { + return this.parseIdentifier(true); + } + return super.parseBindingAtom(); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (this.match(10)) { + const call = super.parseMaybeDecoratorArguments(expr, startLoc); + call.typeParameters = typeArguments; + return call; + } + this.unexpected(null, 10); + } + return super.parseMaybeDecoratorArguments(expr, startLoc); + } + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { + this.next(); + return false; + } + return super.checkCommaAfterRest(close); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(35) || this.match(14) || super.isClassProperty(); + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation); + } + return node; + } + getTokenFromCode(code) { + if (this.state.inType) { + if (code === 62) { + this.finishOp(48, 1); + return; + } + if (code === 60) { + this.finishOp(47, 1); + return; + } + } + super.getTokenFromCode(code); + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "TSTypeCastExpression") { + exprList[index] = this.typeCastToParameter(node); + } + super.toAssignableListItem(exprList, index, isLHS); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + shouldParseArrow(params) { + if (this.match(14)) { + return params.every(expr => this.isAssignable(expr, true)); + } + return super.shouldParseArrow(params); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } + jsxParseOpeningElementAfterName(node) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression()); + if (typeArguments) { + node.typeParameters = typeArguments; + } + } + return super.jsxParseOpeningElementAfterName(node); + } + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; + } + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + return param; + } + tsInAmbientContext(cb) { + const { + isAmbientContext: oldIsAmbientContext, + strict: oldStrict + } = this.state; + this.state.isAmbientContext = true; + this.state.strict = false; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + this.state.strict = oldStrict; + } + } + parseClass(node, isStatement, optionalId) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + try { + return super.parseClass(node, isStatement, optionalId); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } + } + tsParseAbstractDeclaration(node, decorators) { + if (this.match(80)) { + node.abstract = true; + return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); + } else if (this.isContextual(129)) { + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifier, node); + return this.tsParseInterfaceDeclaration(node); + } else { + return null; + } + } + throw this.unexpected(null, 80); + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { + const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + if (method.abstract || method.type === "TSAbstractMethodDefinition") { + const hasEstreePlugin = this.hasPlugin("estree"); + const methodFn = hasEstreePlugin ? method.value : method; + if (methodFn.body) { + const { + key + } = method; + this.raise(TSErrors.AbstractMethodHasImplementation, method, { + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + } + return method; + } + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; + } + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); + } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.parse(); + } + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.getExpression(); + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (!isString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport); + return this.finishNode(node, "ExportSpecifier"); + } + node.exportKind = "value"; + return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly); + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (!importedIsString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport); + return this.finishNode(specifier, "ImportSpecifier"); + } + specifier.importKind = "value"; + return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096); + } + parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) { + const leftOfAsKey = isImport ? "imported" : "local"; + const rightOfAsKey = isImport ? "local" : "exported"; + let leftOfAs = node[leftOfAsKey]; + let rightOfAs; + let hasTypeSpecifier = false; + let canParseAsKeyword = true; + const loc = leftOfAs.loc.start; + if (this.isContextual(93)) { + const firstAs = this.parseIdentifier(); + if (this.isContextual(93)) { + const secondAs = this.parseIdentifier(); + if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + leftOfAs = firstAs; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + canParseAsKeyword = false; + } else { + rightOfAs = secondAs; + canParseAsKeyword = false; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + canParseAsKeyword = false; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } else { + hasTypeSpecifier = true; + leftOfAs = firstAs; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + if (isImport) { + leftOfAs = this.parseIdentifier(true); + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } + } + if (hasTypeSpecifier && isInTypeOnlyImportExport) { + this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc); + } + node[leftOfAsKey] = leftOfAs; + node[rightOfAsKey] = rightOfAs; + const kindKey = isImport ? "importKind" : "exportKind"; + node[kindKey] = hasTypeSpecifier ? "type" : "value"; + if (canParseAsKeyword && this.eatContextual(93)) { + node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } + if (!node[rightOfAsKey]) { + node[rightOfAsKey] = this.cloneIdentifier(node[leftOfAsKey]); + } + if (isImport) { + this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096); + } + } + fillOptionalPropertiesForTSESLint(node) { + var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$declare2, _node$definite, _node$readonly3, _node$typeAnnotation2, _node$accessibility3, _node$decorators3, _node$override2, _node$optional4, _node$id, _node$abstract, _node$declare3, _node$decorators4, _node$implements, _node$superTypeArgume, _node$typeParameters2, _node$declare4, _node$definite2, _node$const, _node$declare5, _node$computed, _node$qualifier, _node$options, _node$declare6, _node$extends, _node$optional5, _node$readonly4, _node$declare7, _node$global, _node$const2, _node$in, _node$out; + switch (node.type) { + case "ExpressionStatement": + (_node$directive = node.directive) != null ? _node$directive : node.directive = undefined; + return; + case "RestElement": + node.value = undefined; + case "Identifier": + case "ArrayPattern": + case "AssignmentPattern": + case "ObjectPattern": + (_node$decorators = node.decorators) != null ? _node$decorators : node.decorators = []; + (_node$optional = node.optional) != null ? _node$optional : node.optional = false; + (_node$typeAnnotation = node.typeAnnotation) != null ? _node$typeAnnotation : node.typeAnnotation = undefined; + return; + case "TSParameterProperty": + (_node$accessibility = node.accessibility) != null ? _node$accessibility : node.accessibility = undefined; + (_node$decorators2 = node.decorators) != null ? _node$decorators2 : node.decorators = []; + (_node$override = node.override) != null ? _node$override : node.override = false; + (_node$readonly = node.readonly) != null ? _node$readonly : node.readonly = false; + (_node$static = node.static) != null ? _node$static : node.static = false; + return; + case "TSEmptyBodyFunctionExpression": + node.body = null; + case "TSDeclareFunction": + case "FunctionDeclaration": + case "FunctionExpression": + case "ClassMethod": + case "ClassPrivateMethod": + (_node$declare = node.declare) != null ? _node$declare : node.declare = false; + (_node$returnType = node.returnType) != null ? _node$returnType : node.returnType = undefined; + (_node$typeParameters = node.typeParameters) != null ? _node$typeParameters : node.typeParameters = undefined; + return; + case "Property": + (_node$optional2 = node.optional) != null ? _node$optional2 : node.optional = false; + return; + case "TSMethodSignature": + case "TSPropertySignature": + (_node$optional3 = node.optional) != null ? _node$optional3 : node.optional = false; + case "TSIndexSignature": + (_node$accessibility2 = node.accessibility) != null ? _node$accessibility2 : node.accessibility = undefined; + (_node$readonly2 = node.readonly) != null ? _node$readonly2 : node.readonly = false; + (_node$static2 = node.static) != null ? _node$static2 : node.static = false; + return; + case "TSAbstractPropertyDefinition": + case "PropertyDefinition": + case "TSAbstractAccessorProperty": + case "AccessorProperty": + (_node$declare2 = node.declare) != null ? _node$declare2 : node.declare = false; + (_node$definite = node.definite) != null ? _node$definite : node.definite = false; + (_node$readonly3 = node.readonly) != null ? _node$readonly3 : node.readonly = false; + (_node$typeAnnotation2 = node.typeAnnotation) != null ? _node$typeAnnotation2 : node.typeAnnotation = undefined; + case "TSAbstractMethodDefinition": + case "MethodDefinition": + (_node$accessibility3 = node.accessibility) != null ? _node$accessibility3 : node.accessibility = undefined; + (_node$decorators3 = node.decorators) != null ? _node$decorators3 : node.decorators = []; + (_node$override2 = node.override) != null ? _node$override2 : node.override = false; + (_node$optional4 = node.optional) != null ? _node$optional4 : node.optional = false; + return; + case "ClassExpression": + (_node$id = node.id) != null ? _node$id : node.id = null; + case "ClassDeclaration": + (_node$abstract = node.abstract) != null ? _node$abstract : node.abstract = false; + (_node$declare3 = node.declare) != null ? _node$declare3 : node.declare = false; + (_node$decorators4 = node.decorators) != null ? _node$decorators4 : node.decorators = []; + (_node$implements = node.implements) != null ? _node$implements : node.implements = []; + (_node$superTypeArgume = node.superTypeArguments) != null ? _node$superTypeArgume : node.superTypeArguments = undefined; + (_node$typeParameters2 = node.typeParameters) != null ? _node$typeParameters2 : node.typeParameters = undefined; + return; + case "TSTypeAliasDeclaration": + case "VariableDeclaration": + (_node$declare4 = node.declare) != null ? _node$declare4 : node.declare = false; + return; + case "VariableDeclarator": + (_node$definite2 = node.definite) != null ? _node$definite2 : node.definite = false; + return; + case "TSEnumDeclaration": + (_node$const = node.const) != null ? _node$const : node.const = false; + (_node$declare5 = node.declare) != null ? _node$declare5 : node.declare = false; + return; + case "TSEnumMember": + (_node$computed = node.computed) != null ? _node$computed : node.computed = false; + return; + case "TSImportType": + (_node$qualifier = node.qualifier) != null ? _node$qualifier : node.qualifier = null; + (_node$options = node.options) != null ? _node$options : node.options = null; + return; + case "TSInterfaceDeclaration": + (_node$declare6 = node.declare) != null ? _node$declare6 : node.declare = false; + (_node$extends = node.extends) != null ? _node$extends : node.extends = []; + return; + case "TSMappedType": + (_node$optional5 = node.optional) != null ? _node$optional5 : node.optional = false; + (_node$readonly4 = node.readonly) != null ? _node$readonly4 : node.readonly = undefined; + return; + case "TSModuleDeclaration": + (_node$declare7 = node.declare) != null ? _node$declare7 : node.declare = false; + (_node$global = node.global) != null ? _node$global : node.global = node.kind === "global"; + return; + case "TSTypeParameter": + (_node$const2 = node.const) != null ? _node$const2 : node.const = false; + (_node$in = node.in) != null ? _node$in : node.in = false; + (_node$out = node.out) != null ? _node$out : node.out = false; + return; + } + } + chStartsBindingIdentifierAndNotRelationalOperator(ch, pos) { + if (isIdentifierStart(ch)) { + keywordAndTSRelationalOperator.lastIndex = pos; + if (keywordAndTSRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordAndTSRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifierAndNotRelationalOperator(nextCh, next); + } + nextTokenIsIdentifierOrStringLiteralOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next) || nextCh === 34 || nextCh === 39; + } +}; +function isPossiblyLiteralEnum(expression) { + if (expression.type !== "MemberExpression") return false; + const { + computed, + property + } = expression; + if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +function isValidAmbientConstInitializer(expression, estree) { + var _expression$extra; + const { + type + } = expression; + if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) { + return false; + } + if (estree) { + if (type === "Literal") { + const { + value + } = expression; + if (typeof value === "string" || typeof value === "boolean") { + return true; + } + } + } else { + if (type === "StringLiteral" || type === "BooleanLiteral") { + return true; + } + } + if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) { + return true; + } + if (type === "TemplateLiteral" && expression.expressions.length === 0) { + return true; + } + if (isPossiblyLiteralEnum(expression)) { + return true; + } + return false; +} +function isNumber(expression, estree) { + if (estree) { + return expression.type === "Literal" && (typeof expression.value === "number" || "bigint" in expression); + } + return expression.type === "NumericLiteral" || expression.type === "BigIntLiteral"; +} +function isNegativeNumber(expression, estree) { + if (expression.type === "UnaryExpression") { + const { + operator, + argument + } = expression; + if (operator === "-" && isNumber(argument, estree)) { + return true; + } + } + return false; +} +function isUncomputedMemberExpressionChain(expression) { + if (expression.type === "Identifier") return true; + if (expression.type !== "MemberExpression" || expression.computed) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +const PlaceholderErrors = ParseErrorEnum`placeholders`({ + ClassNameIsRequired: "A class name is required.", + UnexpectedSpace: "Unexpected space in placeholder." +}); +var placeholders = superClass => class PlaceholdersParserMixin extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(133)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace(); + node.name = super.parseIdentifier(true); + this.assertNoSpace(); + this.expect(133); + return this.finishPlaceholder(node, expectedNode); + } + } + finishPlaceholder(node, expectedNode) { + let placeholder = node; + if (!placeholder.expectedNode || !placeholder.type) { + placeholder = this.finishNode(placeholder, "Placeholder"); + } + placeholder.expectedNode = expectedNode; + return placeholder; + } + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + this.finishOp(133, 2); + } else { + super.getTokenFromCode(code); + } + } + parseExprAtom(refExpressionErrors) { + return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors); + } + parseIdentifier(liberal) { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word !== undefined) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + if (cloned.type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Placeholder") { + return this.cloneIdentifier(node); + } + return super.cloneStringLiteral(node); + } + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + toAssignable(node, isLHS) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + } else { + super.toAssignable(node, isLHS); + } + } + chStartsBindingIdentifier(ch, pos) { + if (super.chStartsBindingIdentifier(ch, pos)) { + return true; + } + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 37 && this.input.charCodeAt(next + 1) === 37) { + return true; + } + return false; + } + verifyBreakContinue(node, isBreak) { + var _node$label; + if (((_node$label = node.label) == null ? void 0 : _node$label.type) === "Placeholder") return; + super.verifyBreakContinue(node, isBreak); + } + parseExpressionStatement(node, expr) { + var _expr$extra; + if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + return super.parseExpressionStatement(node, expr); + } + if (this.match(14)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(); + return this.finishNode(stmt, "LabeledStatement"); + } + this.semicolon(); + const stmtPlaceholder = node; + stmtPlaceholder.name = expr.name; + return this.finishPlaceholder(stmtPlaceholder, "Statement"); + } + parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); + } + parseFunctionId(requireId) { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId); + } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); + if (placeholder) { + if (this.match(81) || this.match(133) || this.match(5)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc); + } + } else { + this.parseClassId(node, isStatement, optionalId); + } + super.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); + } + parseExport(node, decorators) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(node, decorators); + const node2 = node; + if (!this.isContextual(98) && !this.match(12)) { + node2.specifiers = []; + node2.source = null; + node2.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node2, "ExportNamedDeclaration"); + } + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node2, decorators); + } + isExportDefaultSpecifier() { + if (this.match(65)) { + const next = this.nextTokenStart(); + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(tokenLabelName(133), this.nextTokenStartSince(next + 4))) { + return true; + } + } + } + return super.isExportDefaultSpecifier(); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + var _specifiers; + if ((_specifiers = node.specifiers) != null && _specifiers.length) { + return true; + } + return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + } + checkExport(node) { + const { + specifiers + } = node; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + } + super.checkExport(node); + node.specifiers = specifiers; + } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(node); + node.specifiers = []; + if (!this.isContextual(98) && !this.match(12)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier")); + if (this.eat(12)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + if (!hasStarImport) this.parseNamedImportSpecifiers(node); + } + this.expectContextual(98); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); + } + assertNoSpace() { + if (this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index)) { + this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc); + } + } +}; +var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { + parseV8Intrinsic() { + if (this.match(54)) { + const v8IntrinsicStartLoc = this.state.startLoc; + const node = this.startNode(); + this.next(); + if (tokenIsIdentifier(this.state.type)) { + const name = this.parseIdentifierName(); + const identifier = this.createIdentifier(node, name); + this.castNodeTo(identifier, "V8IntrinsicIdentifier"); + if (this.match(10)) { + return identifier; + } + } + this.unexpected(v8IntrinsicStartLoc); + } + } + parseExprAtom(refExpressionErrors) { + return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); + } +}; +const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; +const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; +function validatePlugins(pluginsMap) { + if (pluginsMap.has("decorators")) { + if (pluginsMap.has("decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } + const decoratorsBeforeExport = pluginsMap.get("decorators").decoratorsBeforeExport; + if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean, if specified."); + } + const allowCallParenthesized = pluginsMap.get("decorators").allowCallParenthesized; + if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { + throw new Error("'allowCallParenthesized' must be a boolean."); + } + } + if (pluginsMap.has("flow") && pluginsMap.has("typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); + } + if (pluginsMap.has("placeholders") && pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); + } + if (pluginsMap.has("pipelineOperator")) { + var _pluginsMap$get2; + const proposal = pluginsMap.get("pipelineOperator").proposal; + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } + if (proposal === "hack") { + var _pluginsMap$get; + if (pluginsMap.has("placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } + if (pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); + } + const topicToken = pluginsMap.get("pipelineOperator").topicToken; + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } + if (topicToken === "#" && ((_pluginsMap$get = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } else if (proposal === "smart" && ((_pluginsMap$get2 = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get2.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } + if (pluginsMap.has("moduleAttributes")) { + if (pluginsMap.has("deprecatedImportAssert") || pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = pluginsMap.get("moduleAttributes").version; + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + if (pluginsMap.has("importAssertions")) { + if (pluginsMap.has("deprecatedImportAssert")) { + throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins."); + } + } + if (pluginsMap.has("deprecatedImportAssert")) ;else if (pluginsMap.has("importAttributes") && pluginsMap.get("importAttributes").deprecatedAssertSyntax) { + pluginsMap.set("deprecatedImportAssert", {}); + } + if (pluginsMap.has("recordAndTuple")) { + const syntaxType = pluginsMap.get("recordAndTuple").syntaxType; + if (syntaxType != null) { + const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; + if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + } + } + } + if (pluginsMap.has("asyncDoExpressions") && !pluginsMap.has("doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; + } + if (pluginsMap.has("optionalChainingAssign") && pluginsMap.get("optionalChainingAssign").version !== "2023-07") { + throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); + } + if (pluginsMap.has("discardBinding") && pluginsMap.get("discardBinding").syntaxType !== "void") { + throw new Error("The 'discardBinding' plugin requires a 'syntaxType' option. Currently the only supported value is 'void'."); + } +} +const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders +}; +const mixinPluginNames = Object.keys(mixinPlugins); +class ExpressionParser extends LValParser { + checkProto(prop, isRecord, sawProto, refExpressionErrors) { + if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { + return sawProto; + } + const key = prop.key; + const name = key.type === "Identifier" ? key.name : key.value; + if (name === "__proto__") { + if (isRecord) { + this.raise(Errors.RecordNoProto, key); + return true; + } + if (sawProto) { + if (refExpressionErrors) { + if (refExpressionErrors.doubleProtoLoc === null) { + refExpressionErrors.doubleProtoLoc = key.loc.start; + } + } else { + this.raise(Errors.DuplicateProto, key); + } + } + return true; + } + return sawProto; + } + shouldExitDescending(expr, potentialArrowAt) { + return expr.type === "ArrowFunctionExpression" && this.offsetToSourcePos(expr.start) === potentialArrowAt; + } + getExpression() { + this.enterInitialScopes(); + this.nextToken(); + if (this.match(140)) { + throw this.raise(Errors.ParseExpressionEmptyInput, this.state.startLoc); + } + const expr = this.parseExpression(); + if (!this.match(140)) { + throw this.raise(Errors.ParseExpressionExpectsEOF, this.state.startLoc, { + unexpected: this.input.codePointAt(this.state.start) + }); + } + this.finalizeRemainingComments(); + expr.comments = this.comments; + expr.errors = this.state.errors; + if (this.optionFlags & 256) { + expr.tokens = this.tokens; + } + return expr; + } + parseExpression(disallowIn, refExpressionErrors) { + if (disallowIn) { + return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + parseExpressionBase(refExpressionErrors) { + const startLoc = this.state.startLoc; + const expr = this.parseMaybeAssign(refExpressionErrors); + if (this.match(12)) { + const node = this.startNodeAt(startLoc); + node.expressions = [expr]; + while (this.eat(12)) { + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); + } + this.toReferencedList(node.expressions); + return this.finishNode(node, "SequenceExpression"); + } + return expr; + } + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + setOptionalParametersError(refExpressionErrors) { + refExpressionErrors.optionalParametersLoc = this.state.startLoc; + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + const startLoc = this.state.startLoc; + const isYield = this.isContextual(108); + if (isYield) { + if (this.prodParam.hasYield) { + this.next(); + let left = this.parseYield(startLoc); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + return left; + } + } + let ownExpressionErrors; + if (refExpressionErrors) { + ownExpressionErrors = false; + } else { + refExpressionErrors = new ExpressionErrors(); + ownExpressionErrors = true; + } + const { + type + } = this.state; + if (type === 10 || tokenIsIdentifier(type)) { + this.state.potentialArrowAt = this.state.start; + } + let left = this.parseMaybeConditional(refExpressionErrors); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + if (tokenIsAssignment(this.state.type)) { + const node = this.startNodeAt(startLoc); + const operator = this.state.value; + node.operator = operator; + if (this.match(29)) { + this.toAssignable(left, true); + node.left = left; + const startIndex = startLoc.index; + if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) { + refExpressionErrors.doubleProtoLoc = null; + } + if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) { + refExpressionErrors.shorthandAssignLoc = null; + } + if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) { + this.checkDestructuringPrivate(refExpressionErrors); + refExpressionErrors.privateKeyLoc = null; + } + if (refExpressionErrors.voidPatternLoc != null && refExpressionErrors.voidPatternLoc.index >= startIndex) { + refExpressionErrors.voidPatternLoc = null; + } + } else { + node.left = left; + } + this.next(); + node.right = this.parseMaybeAssign(); + this.checkLVal(left, this.finishNode(node, "AssignmentExpression"), undefined, undefined, undefined, undefined, operator === "||=" || operator === "&&=" || operator === "??="); + return node; + } else if (ownExpressionErrors) { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (isYield) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.YieldNotInGeneratorFunction, startLoc); + return this.parseYield(startLoc); + } + } + return left; + } + parseMaybeConditional(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprOps(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseConditional(expr, startLoc, refExpressionErrors); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (this.eat(17)) { + const node = this.startNodeAt(startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssignAllowIn(); + this.expect(14); + node.alternate = this.parseMaybeAssign(); + return this.finishNode(node, "ConditionalExpression"); + } + return expr; + } + parseMaybeUnaryOrPrivate(refExpressionErrors) { + return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + } + parseExprOps(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseExprOp(expr, startLoc, -1); + } + parseExprOp(left, leftStartLoc, minPrec) { + if (this.isPrivateName(left)) { + const value = this.getPrivateNameSV(left); + if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) { + this.raise(Errors.PrivateInExpectedIn, left, { + identifierName: value + }); + } + this.classScope.usePrivateName(value, left.loc.start); + } + const op = this.state.type; + if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) { + let prec = tokenOperatorPrecedence(op); + if (prec > minPrec) { + if (op === 39) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.checkPipelineAtInfixOperator(left, leftStartLoc); + } + const node = this.startNodeAt(leftStartLoc); + node.left = left; + node.operator = this.state.value; + const logical = op === 41 || op === 42; + const coalesce = op === 40; + if (coalesce) { + prec = tokenOperatorPrecedence(42); + } + this.next(); + if (op === 39 && this.hasPlugin(["pipelineOperator", { + proposal: "minimal" + }])) { + if (this.state.type === 96 && this.prodParam.hasAwait) { + throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc); + } + } + node.right = this.parseExprOpRightExpr(op, prec); + const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); + const nextOp = this.state.type; + if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) { + throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc); + } + return this.parseExprOp(finishedNode, leftStartLoc, minPrec); + } + } + return left; + } + parseExprOpRightExpr(op, prec) { + const startLoc = this.state.startLoc; + switch (op) { + case 39: + switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + return this.parseHackPipeBody(); + }); + case "fsharp": + return this.withSoloAwaitPermittingContext(() => { + return this.parseFSharpPipelineBody(prec); + }); + } + if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(108)) { + throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + } + default: + return this.parseExprOpBaseRightExpr(op, prec); + } + } + parseExprOpBaseRightExpr(op, prec) { + const startLoc = this.state.startLoc; + return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); + } + parseHackPipeBody() { + var _body$extra; + const { + startLoc + } = this.state; + const body = this.parseMaybeAssign(); + const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type); + if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { + this.raise(Errors.PipeUnparenthesizedBody, startLoc, { + type: body.type + }); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipeTopicUnused, startLoc); + } + return body; + } + checkExponentialAfterUnary(node) { + if (this.match(57)) { + this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + const startLoc = this.state.startLoc; + const isAwait = this.isContextual(96); + if (isAwait && this.recordAwaitIfAllowed()) { + this.next(); + const expr = this.parseAwait(startLoc); + if (!sawUnary) this.checkExponentialAfterUnary(expr); + return expr; + } + const update = this.match(34); + const node = this.startNode(); + if (tokenIsPrefix(this.state.type)) { + node.operator = this.state.value; + node.prefix = true; + if (this.match(72)) { + this.expectPlugin("throwExpressions"); + } + const isDelete = this.match(89); + this.next(); + node.argument = this.parseMaybeUnary(null, true); + this.checkExpressionErrors(refExpressionErrors, true); + if (this.state.strict && isDelete) { + const arg = node.argument; + if (arg.type === "Identifier") { + this.raise(Errors.StrictDelete, node); + } else if (this.hasPropertyAsPrivateName(arg)) { + this.raise(Errors.DeletePrivateField, node); + } + } + if (!update) { + if (!sawUnary) { + this.checkExponentialAfterUnary(node); + } + return this.finishNode(node, "UnaryExpression"); + } + } + const expr = this.parseUpdate(node, update, refExpressionErrors); + if (isAwait) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc); + return this.parseAwait(startLoc); + } + } + return expr; + } + parseUpdate(node, update, refExpressionErrors) { + if (update) { + const updateExpressionNode = node; + this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, "UpdateExpression")); + return node; + } + const startLoc = this.state.startLoc; + let expr = this.parseExprSubscripts(refExpressionErrors); + if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; + while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + node.operator = this.state.value; + node.prefix = false; + node.argument = expr; + this.next(); + this.checkLVal(expr, expr = this.finishNode(node, "UpdateExpression")); + } + return expr; + } + parseExprSubscripts(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprAtom(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseSubscripts(expr, startLoc); + } + parseSubscripts(base, startLoc, noCalls) { + const state = { + optionalChainMember: false, + maybeAsyncArrow: this.atPossibleAsyncArrow(base), + stop: false + }; + do { + base = this.parseSubscript(base, startLoc, noCalls, state); + state.maybeAsyncArrow = false; + } while (!state.stop); + return base; + } + parseSubscript(base, startLoc, noCalls, state) { + const { + type + } = this.state; + if (!noCalls && type === 15) { + return this.parseBind(base, startLoc, noCalls, state); + } else if (tokenIsTemplate(type)) { + return this.parseTaggedTemplateExpression(base, startLoc, state); + } + let optional = false; + if (type === 18) { + if (noCalls) { + this.raise(Errors.OptionalChainingNoNew, this.state.startLoc); + if (this.lookaheadCharCode() === 40) { + return this.stopParseSubscript(base, state); + } + } + state.optionalChainMember = optional = true; + this.next(); + } + if (!noCalls && this.match(10)) { + return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional); + } else { + const computed = this.eat(0); + if (computed || optional || this.eat(16)) { + return this.parseMember(base, startLoc, state, computed, optional); + } else { + return this.stopParseSubscript(base, state); + } + } + } + stopParseSubscript(base, state) { + state.stop = true; + return base; + } + parseMember(base, startLoc, state, computed, optional) { + const node = this.startNodeAt(startLoc); + node.object = base; + node.computed = computed; + if (computed) { + node.property = this.parseExpression(); + this.expect(3); + } else if (this.match(139)) { + if (base.type === "Super") { + this.raise(Errors.SuperPrivateField, startLoc); + } + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } + parseBind(base, startLoc, noCalls, state) { + const node = this.startNodeAt(startLoc); + node.object = base; + this.next(); + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls); + } + parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + let refExpressionErrors = null; + this.state.maybeInArrowParameters = true; + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + const { + maybeAsyncArrow, + optionalChainMember + } = state; + if (maybeAsyncArrow) { + this.expressionScope.enter(newAsyncArrowScope()); + refExpressionErrors = new ExpressionErrors(); + } + if (optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(); + } else { + node.arguments = this.parseCallExpressionArguments(base.type !== "Super", node, refExpressionErrors); + } + let finishedNode = this.finishCallExpression(node, optionalChainMember); + if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode); + } else { + if (maybeAsyncArrow) { + this.checkExpressionErrors(refExpressionErrors, true); + this.expressionScope.exit(); + } + this.toReferencedArguments(finishedNode); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return finishedNode; + } + toReferencedArguments(node, isParenthesizedExpr) { + this.toReferencedListDeep(node.arguments, isParenthesizedExpr); + } + parseTaggedTemplateExpression(base, startLoc, state) { + const node = this.startNodeAt(startLoc); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (state.optionalChainMember) { + this.raise(Errors.OptionalChainingNoTemplate, startLoc); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsyncArrow(base) { + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.offsetToSourcePos(base.start) === this.state.potentialArrowAt; + } + finishCallExpression(node, optional) { + if (node.callee.type === "Import") { + if (node.arguments.length === 0 || node.arguments.length > 2) { + this.raise(Errors.ImportCallArity, node); + } else { + for (const arg of node.arguments) { + if (arg.type === "SpreadElement") { + this.raise(Errors.ImportCallSpreadArgument, arg); + } + } + } + } + return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); + } + parseCallExpressionArguments(allowPlaceholder, nodeForExtra, refExpressionErrors) { + const elts = []; + let first = true; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + while (!this.eat(11)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(11)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(11, false, refExpressionErrors, allowPlaceholder)); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return elts; + } + shouldParseAsyncArrow() { + return this.match(19) && !this.canInsertSemicolon(); + } + parseAsyncArrowFromCallExpression(node, call) { + var _call$extra; + this.resetPreviousNodeTrailingComments(call); + this.expect(19); + this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc); + if (call.innerComments) { + setInnerComments(node, call.innerComments); + } + if (call.callee.trailingComments) { + setInnerComments(node, call.callee.trailingComments); + } + return node; + } + parseNoCallExpr() { + const startLoc = this.state.startLoc; + return this.parseSubscripts(this.parseExprAtom(), startLoc, true); + } + parseExprAtom(refExpressionErrors) { + let node; + let decorators = null; + const { + type + } = this.state; + switch (type) { + case 79: + return this.parseSuper(); + case 83: + node = this.startNode(); + this.next(); + if (this.match(16)) { + return this.parseImportMetaPropertyOrPhaseCall(node); + } + if (this.match(10)) { + if (this.optionFlags & 512) { + return this.parseImportCall(node); + } else { + return this.finishNode(node, "Import"); + } + } else { + this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc); + return this.finishNode(node, "Import"); + } + case 78: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); + case 90: + { + return this.parseDo(this.startNode(), false); + } + case 56: + case 31: + { + this.readRegexp(); + return this.parseRegExpLiteral(this.state.value); + } + case 135: + return this.parseNumericLiteral(this.state.value); + case 136: + return this.parseBigIntLiteral(this.state.value); + case 134: + return this.parseStringLiteral(this.state.value); + case 84: + return this.parseNullLiteral(); + case 85: + return this.parseBooleanLiteral(true); + case 86: + return this.parseBooleanLiteral(false); + case 10: + { + const canBeArrow = this.state.potentialArrowAt === this.state.start; + return this.parseParenAndDistinguishExpression(canBeArrow); + } + case 0: + { + return this.parseArrayLike(3, false, refExpressionErrors); + } + case 5: + { + return this.parseObjectLike(8, false, false, refExpressionErrors); + } + case 68: + return this.parseFunctionOrFunctionSent(); + case 26: + decorators = this.parseDecorators(); + case 80: + return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false); + case 77: + return this.parseNewOrNewTarget(); + case 25: + case 24: + return this.parseTemplate(false); + case 15: + { + node = this.startNode(); + this.next(); + node.object = null; + const callee = node.callee = this.parseNoCallExpr(); + if (callee.type === "MemberExpression") { + return this.finishNode(node, "BindExpression"); + } else { + throw this.raise(Errors.UnsupportedBind, callee); + } + } + case 139: + { + this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, { + identifierName: this.state.value + }); + return this.parsePrivateName(); + } + case 33: + { + return this.parseTopicReferenceThenEqualsSign(54, "%"); + } + case 32: + { + return this.parseTopicReferenceThenEqualsSign(44, "^"); + } + case 37: + case 38: + { + return this.parseTopicReference("hack"); + } + case 44: + case 54: + case 27: + { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + return this.parseTopicReference(pipeProposal); + } + throw this.unexpected(); + } + case 47: + { + const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); + if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { + throw this.expectOnePlugin(["jsx", "flow", "typescript"]); + } + throw this.unexpected(); + } + default: + if (type === 137) { + return this.parseDecimalLiteral(this.state.value); + } else if (type === 2 || type === 1) { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, true); + } else if (type === 6 || type === 7) { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } + if (tokenIsIdentifier(type)) { + if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; + const containsEsc = this.state.containsEsc; + const id = this.parseIdentifier(); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + const { + type + } = this.state; + if (type === 68) { + this.resetPreviousNodeTrailingComments(id); + this.next(); + return this.parseAsyncFunctionExpression(this.startNodeAtNode(id)); + } else if (tokenIsIdentifier(type)) { + if (this.lookaheadCharCode() === 61) { + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); + } else { + return id; + } + } else if (type === 90) { + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); + } + } + if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { + this.next(); + return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); + } + return id; + } else { + throw this.unexpected(); + } + } + } + parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + this.state.type = topicTokenType; + this.state.value = topicTokenValue; + this.state.pos--; + this.state.end--; + this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); + return this.parseTopicReference(pipeProposal); + } + throw this.unexpected(); + } + parseTopicReference(pipeProposal) { + const node = this.startNode(); + const startLoc = this.state.startLoc; + const tokenType = this.state.type; + this.next(); + return this.finishTopicReference(node, startLoc, pipeProposal, tokenType); + } + finishTopicReference(node, startLoc, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { + if (pipeProposal === "hack") { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PipeTopicUnbound, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "TopicReference"); + } else { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PrimaryTopicNotAllowed, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "PipelinePrimaryTopicReference"); + } + } else { + throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, { + token: tokenLabelName(tokenType) + }); + } + } + testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) { + switch (pipeProposal) { + case "hack": + { + return this.hasPlugin(["pipelineOperator", { + topicToken: tokenLabelName(tokenType) + }]); + } + case "smart": + return tokenType === 27; + default: + throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc); + } + } + parseAsyncArrowUnaryFunction(node) { + this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); + const params = [this.parseIdentifier()]; + this.prodParam.exit(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition()); + } + this.expect(19); + return this.parseArrowExpression(node, params, true); + } + parseDo(node, isAsync) { + this.expectPlugin("doExpressions"); + if (isAsync) { + this.expectPlugin("asyncDoExpressions"); + } + node.async = isAsync; + this.next(); + const oldLabels = this.state.labels; + this.state.labels = []; + if (isAsync) { + this.prodParam.enter(2); + node.body = this.parseBlock(); + this.prodParam.exit(); + } else { + node.body = this.parseBlock(); + } + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + parseSuper() { + const node = this.startNode(); + this.next(); + if (this.match(10) && !this.scope.allowDirectSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.SuperNotAllowed, node); + } + } else if (!this.scope.allowSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.UnexpectedSuper, node); + } + } + if (!this.match(10) && !this.match(0) && !this.match(16)) { + this.raise(Errors.UnsupportedSuper, node); + } + return this.finishNode(node, "Super"); + } + parsePrivateName() { + const node = this.startNode(); + const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1)); + const name = this.state.value; + this.next(); + node.id = this.createIdentifier(id, name); + return this.finishNode(node, "PrivateName"); + } + parseFunctionOrFunctionSent() { + const node = this.startNode(); + this.next(); + if (this.prodParam.hasYield && this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); + this.next(); + if (this.match(103)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + this.unexpected(); + } + return this.parseMetaProperty(node, meta, "sent"); + } + return this.parseFunction(node); + } + parseMetaProperty(node, meta, propertyName) { + node.meta = meta; + const containsEsc = this.state.containsEsc; + node.property = this.parseIdentifier(true); + if (node.property.name !== propertyName || containsEsc) { + this.raise(Errors.UnsupportedMetaProperty, node.property, { + target: meta.name, + onlyValidPropertyName: propertyName + }); + } + return this.finishNode(node, "MetaProperty"); + } + parseImportMetaPropertyOrPhaseCall(node) { + this.next(); + if (this.isContextual(105) || this.isContextual(97)) { + const isSource = this.isContextual(105); + this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); + this.next(); + node.phase = isSource ? "source" : "defer"; + return this.parseImportCall(node); + } else { + const id = this.createIdentifierAt(this.startNodeAtNode(node), "import", this.state.lastTokStartLoc); + if (this.isContextual(101)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, id); + } + this.sawUnambiguousESM = true; + } + return this.parseMetaProperty(node, id, "meta"); + } + } + parseLiteralAtNode(value, type, node) { + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.value = value; + this.next(); + return this.finishNode(node, type); + } + parseLiteral(value, type) { + const node = this.startNode(); + return this.parseLiteralAtNode(value, type, node); + } + parseStringLiteral(value) { + return this.parseLiteral(value, "StringLiteral"); + } + parseNumericLiteral(value) { + return this.parseLiteral(value, "NumericLiteral"); + } + parseBigIntLiteral(value) { + return this.parseLiteral(value, "BigIntLiteral"); + } + parseDecimalLiteral(value) { + return this.parseLiteral(value, "DecimalLiteral"); + } + parseRegExpLiteral(value) { + const node = this.startNode(); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.pattern = value.pattern; + node.flags = value.flags; + this.next(); + return this.finishNode(node, "RegExpLiteral"); + } + parseBooleanLiteral(value) { + const node = this.startNode(); + node.value = value; + this.next(); + return this.finishNode(node, "BooleanLiteral"); + } + parseNullLiteral() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "NullLiteral"); + } + parseParenAndDistinguishExpression(canBeArrow) { + const startLoc = this.state.startLoc; + let val; + this.next(); + this.expressionScope.enter(newArrowHeadScope()); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.maybeInArrowParameters = true; + this.state.inFSharpPipelineDirectBody = false; + const innerStartLoc = this.state.startLoc; + const exprList = []; + const refExpressionErrors = new ExpressionErrors(); + let first = true; + let spreadStartLoc; + let optionalCommaStartLoc; + while (!this.match(11)) { + if (first) { + first = false; + } else { + this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc); + if (this.match(11)) { + optionalCommaStartLoc = this.state.startLoc; + break; + } + } + if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + spreadStartLoc = this.state.startLoc; + exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc)); + if (!this.checkCommaAfterRest(41)) { + break; + } + } else { + exprList.push(this.parseMaybeAssignAllowInOrVoidPattern(11, refExpressionErrors, this.parseParenItem)); + } + } + const innerEndLoc = this.state.lastTokEndLoc; + this.expect(11); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let arrowNode = this.startNodeAt(startLoc); + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + this.parseArrowExpression(arrowNode, exprList, false); + return arrowNode; + } + this.expressionScope.exit(); + if (!exprList.length) { + this.unexpected(this.state.lastTokStartLoc); + } + if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc); + if (spreadStartLoc) this.unexpected(spreadStartLoc); + this.checkExpressionErrors(refExpressionErrors, true); + this.toReferencedListDeep(exprList, true); + if (exprList.length > 1) { + val = this.startNodeAt(innerStartLoc); + val.expressions = exprList; + this.finishNode(val, "SequenceExpression"); + this.resetEndLocation(val, innerEndLoc); + } else { + val = exprList[0]; + } + return this.wrapParenthesis(startLoc, val); + } + wrapParenthesis(startLoc, expression) { + if (!(this.optionFlags & 1024)) { + this.addExtra(expression, "parenthesized", true); + this.addExtra(expression, "parenStart", startLoc.index); + this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); + return expression; + } + const parenExpression = this.startNodeAt(startLoc); + parenExpression.expression = expression; + return this.finishNode(parenExpression, "ParenthesizedExpression"); + } + shouldParseArrow(params) { + return !this.canInsertSemicolon(); + } + parseArrow(node) { + if (this.eat(19)) { + return node; + } + } + parseParenItem(node, startLoc) { + return node; + } + parseNewOrNewTarget() { + const node = this.startNode(); + this.next(); + if (this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); + const metaProp = this.parseMetaProperty(node, meta, "target"); + if (!this.scope.allowNewTarget) { + this.raise(Errors.UnexpectedNewTarget, metaProp); + } + return metaProp; + } + return this.parseNew(node); + } + parseNew(node) { + this.parseNewCallee(node); + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + return this.finishNode(node, "NewExpression"); + } + parseNewCallee(node) { + const isImport = this.match(83); + const callee = this.parseNoCallExpr(); + node.callee = callee; + if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) { + this.raise(Errors.ImportCallNotNewExpression, callee); + } + } + parseTemplateElement(isTagged) { + const { + start, + startLoc, + end, + value + } = this.state; + const elemStart = start + 1; + const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1)); + if (value === null) { + if (!isTagged) { + this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1)); + } + } + const isTail = this.match(24); + const endOffset = isTail ? -1 : -2; + const elemEnd = end + endOffset; + elem.value = { + raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"), + cooked: value === null ? null : value.slice(1, endOffset) + }; + elem.tail = isTail; + this.next(); + const finishedNode = this.finishNode(elem, "TemplateElement"); + this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset)); + return finishedNode; + } + parseTemplate(isTagged) { + const node = this.startNode(); + let curElt = this.parseTemplateElement(isTagged); + const quasis = [curElt]; + const substitutions = []; + while (!curElt.tail) { + substitutions.push(this.parseTemplateSubstitution()); + this.readTemplateContinuation(); + quasis.push(curElt = this.parseTemplateElement(isTagged)); + } + node.expressions = substitutions; + node.quasis = quasis; + return this.finishNode(node, "TemplateLiteral"); + } + parseTemplateSubstitution() { + return this.parseExpression(); + } + parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + let sawProto = false; + let first = true; + const node = this.startNode(); + node.properties = []; + this.next(); + while (!this.match(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + this.addTrailingCommaExtraToNode(node); + break; + } + } + let prop; + if (isPattern) { + prop = this.parseBindingProperty(); + } else { + prop = this.parsePropertyDefinition(refExpressionErrors); + sawProto = this.checkProto(prop, isRecord, sawProto, refExpressionErrors); + } + if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { + this.raise(Errors.InvalidRecordProperty, prop); + } + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + node.properties.push(prop); + } + this.next(); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let type = "ObjectExpression"; + if (isPattern) { + type = "ObjectPattern"; + } else if (isRecord) { + type = "RecordExpression"; + } + return this.finishNode(node, type); + } + addTrailingCommaExtraToNode(node) { + this.addExtra(node, "trailingComma", this.state.lastTokStartLoc.index); + this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false); + } + maybeAsyncOrAccessorProp(prop) { + return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55)); + } + parsePropertyDefinition(refExpressionErrors) { + let decorators = []; + if (this.match(26)) { + if (this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + const prop = this.startNode(); + let isAsync = false; + let isAccessor = false; + let startLoc; + if (this.match(21)) { + if (decorators.length) this.unexpected(); + return this.parseSpread(); + } + if (decorators.length) { + prop.decorators = decorators; + decorators = []; + } + prop.method = false; + if (refExpressionErrors) { + startLoc = this.state.startLoc; + } + let isGenerator = this.eat(55); + this.parsePropertyNamePrefixOperator(prop); + const containsEsc = this.state.containsEsc; + this.parsePropertyName(prop, refExpressionErrors); + if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const { + key + } = prop; + const keyName = key.name; + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + this.resetPreviousNodeTrailingComments(key); + isGenerator = this.eat(55); + this.parsePropertyName(prop); + } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + this.resetPreviousNodeTrailingComments(key); + prop.kind = keyName; + if (this.match(55)) { + isGenerator = true; + this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), { + kind: keyName + }); + this.next(); + } + this.parsePropertyName(prop); + } + } + return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors); + } + getGetterSetterExpectedParamCount(method) { + return method.kind === "get" ? 0 : 1; + } + getObjectOrClassMethodParams(method) { + return method.params; + } + checkGetterSetterParams(method) { + var _params; + const paramCount = this.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length !== paramCount) { + this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, method); + } + if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { + this.raise(Errors.BadSetterRestParameter, method); + } + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + if (isAccessor) { + const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); + this.checkGetterSetterParams(finishedProp); + return finishedProp; + } + if (isAsync || isGenerator || this.match(10)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); + } + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + prop.shorthand = false; + if (this.eat(14)) { + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowInOrVoidPattern(8, refExpressionErrors); + return this.finishObjectProperty(prop); + } + if (!prop.computed && prop.key.type === "Identifier") { + this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); + if (isPattern) { + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); + } else if (this.match(29)) { + const shorthandAssignLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.shorthandAssignLoc === null) { + refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc; + } + } else { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); + } else { + prop.value = this.cloneIdentifier(prop.key); + } + prop.shorthand = true; + return this.finishObjectProperty(prop); + } + } + finishObjectProperty(node) { + return this.finishNode(node, "ObjectProperty"); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (!node) this.unexpected(); + return node; + } + parsePropertyName(prop, refExpressionErrors) { + if (this.eat(0)) { + prop.computed = true; + prop.key = this.parseMaybeAssignAllowIn(); + this.expect(3); + } else { + const { + type, + value + } = this.state; + let key; + if (tokenIsKeywordOrIdentifier(type)) { + key = this.parseIdentifier(true); + } else { + switch (type) { + case 135: + key = this.parseNumericLiteral(value); + break; + case 134: + key = this.parseStringLiteral(value); + break; + case 136: + key = this.parseBigIntLiteral(value); + break; + case 139: + { + const privateKeyLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.privateKeyLoc === null) { + refExpressionErrors.privateKeyLoc = privateKeyLoc; + } + } else { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + key = this.parsePrivateName(); + break; + } + default: + if (type === 137) { + key = this.parseDecimalLiteral(value); + break; + } + this.unexpected(); + } + } + prop.key = key; + if (type !== 139) { + prop.computed = false; + } + } + } + initFunction(node, isAsync) { + node.id = null; + node.generator = false; + node.async = isAsync; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + this.initFunction(node, isAsync); + node.generator = isGenerator; + this.scope.enter(514 | 16 | (inClassScope ? 576 : 0) | (allowDirectSuper ? 32 : 0)); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + this.parseFunctionParams(node, isConstructor); + const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); + this.prodParam.exit(); + this.scope.exit(); + return finishedNode; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); + } + parseArrowExpression(node, params, isAsync, trailingCommaLoc) { + this.scope.enter(514 | 4); + let flags = functionFlags(isAsync, false); + if (!this.match(5) && this.prodParam.hasIn) { + flags |= 8; + } + this.prodParam.enter(flags); + this.initFunction(node, isAsync); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + if (params) { + this.state.maybeInArrowParameters = true; + this.setArrowFunctionParameters(node, params, trailingCommaLoc); + } + this.state.maybeInArrowParameters = false; + this.parseFunctionBody(node, true); + this.prodParam.exit(); + this.scope.exit(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return this.finishNode(node, "ArrowFunctionExpression"); + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + this.parseFunctionBody(node, false, isMethod); + return this.finishNode(node, type); + } + parseFunctionBody(node, allowExpression, isMethod = false) { + const isExpression = allowExpression && !this.match(5); + this.expressionScope.enter(newExpressionScope()); + if (isExpression) { + node.body = this.parseMaybeAssign(); + this.checkParams(node, false, allowExpression, false); + } else { + const oldStrict = this.state.strict; + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(this.prodParam.currentFlags() | 4); + node.body = this.parseBlock(true, false, hasStrictModeDirective => { + const nonSimple = !this.isSimpleParamList(node.params); + if (hasStrictModeDirective && nonSimple) { + this.raise(Errors.IllegalLanguageModeDirective, (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.loc.end : node); + } + const strictModeChanged = !oldStrict && this.state.strict; + this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); + if (this.state.strict && node.id) { + this.checkIdentifier(node.id, 65, strictModeChanged); + } + }); + this.prodParam.exit(); + this.state.labels = oldLabels; + } + this.expressionScope.exit(); + } + isSimpleParameter(node) { + return node.type === "Identifier"; + } + isSimpleParamList(params) { + for (let i = 0, len = params.length; i < len; i++) { + if (!this.isSimpleParameter(params[i])) return false; + } + return true; + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + const checkClashes = !allowDuplicates && new Set(); + const formalParameters = { + type: "FormalParameters" + }; + for (const param of node.params) { + this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged); + } + } + parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(close, allowEmpty, refExpressionErrors)); + } + return elts; + } + parseExprListItem(close, allowEmpty, refExpressionErrors, allowPlaceholder) { + let elt; + if (this.match(12)) { + if (!allowEmpty) { + this.raise(Errors.UnexpectedToken, this.state.curPosition(), { + unexpected: "," + }); + } + elt = null; + } else if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc); + } else if (this.match(17)) { + this.expectPlugin("partialApplication"); + if (!allowPlaceholder) { + this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc); + } + const node = this.startNode(); + this.next(); + elt = this.finishNode(node, "ArgumentPlaceholder"); + } else { + elt = this.parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, this.parseParenItem); + } + return elt; + } + parseIdentifier(liberal) { + const node = this.startNode(); + const name = this.parseIdentifierName(liberal); + return this.createIdentifier(node, name); + } + createIdentifier(node, name) { + node.name = name; + node.loc.identifierName = name; + return this.finishNode(node, "Identifier"); + } + createIdentifierAt(node, name, endLoc) { + node.name = name; + node.loc.identifierName = name; + return this.finishNodeAt(node, "Identifier", endLoc); + } + parseIdentifierName(liberal) { + let name; + const { + startLoc, + type + } = this.state; + if (tokenIsKeywordOrIdentifier(type)) { + name = this.state.value; + } else { + this.unexpected(); + } + const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); + if (liberal) { + if (tokenIsKeyword) { + this.replaceToken(132); + } + } else { + this.checkReservedWord(name, startLoc, tokenIsKeyword, false); + } + this.next(); + return name; + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word.length > 10) { + return; + } + if (!canBeReservedWord(word)) { + return; + } + if (checkKeywords && isKeyword(word)) { + this.raise(Errors.UnexpectedKeyword, startLoc, { + keyword: word + }); + return; + } + const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; + if (reservedTest(word, this.inModule)) { + this.raise(Errors.UnexpectedReservedWord, startLoc, { + reservedWord: word + }); + return; + } else if (word === "yield") { + if (this.prodParam.hasYield) { + this.raise(Errors.YieldBindingIdentifier, startLoc); + return; + } + } else if (word === "await") { + if (this.prodParam.hasAwait) { + this.raise(Errors.AwaitBindingIdentifier, startLoc); + return; + } + if (this.scope.inStaticBlock) { + this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc); + return; + } + this.expressionScope.recordAsyncArrowParametersError(startLoc); + } else if (word === "arguments") { + if (this.scope.inClassAndNotInNonArrowFunction) { + this.raise(Errors.ArgumentsInClass, startLoc); + return; + } + } + } + recordAwaitIfAllowed() { + const isAwaitAllowed = this.prodParam.hasAwait; + if (isAwaitAllowed && !this.scope.inFunction) { + this.state.hasTopLevelAwait = true; + } + return isAwaitAllowed; + } + parseAwait(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node); + if (this.eat(55)) { + this.raise(Errors.ObsoleteAwaitStar, node); + } + if (!this.scope.inFunction && !(this.optionFlags & 1)) { + if (this.isAmbiguousPrefixOrIdentifier()) { + this.ambiguousScriptDifferentAst = true; + } else { + this.sawUnambiguousESM = true; + } + } + if (!this.state.soloAwait) { + node.argument = this.parseMaybeUnary(null, true); + } + return this.finishNode(node, "AwaitExpression"); + } + isAmbiguousPrefixOrIdentifier() { + if (this.hasPrecedingLineBreak()) return true; + const { + type + } = this.state; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 138 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + } + parseYield(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node); + let delegating = false; + let argument = null; + if (!this.hasPrecedingLineBreak()) { + delegating = this.eat(55); + switch (this.state.type) { + case 13: + case 140: + case 8: + case 11: + case 3: + case 9: + case 14: + case 12: + if (!delegating) break; + default: + argument = this.parseMaybeAssign(); + } + } + node.delegate = delegating; + node.argument = argument; + return this.finishNode(node, "YieldExpression"); + } + parseImportCall(node) { + this.next(); + node.source = this.parseMaybeAssignAllowIn(); + node.options = null; + if (this.eat(12)) { + if (!this.match(11)) { + node.options = this.parseMaybeAssignAllowIn(); + if (this.eat(12)) { + this.addTrailingCommaExtraToNode(node.options); + if (!this.match(11)) { + do { + this.parseMaybeAssignAllowIn(); + } while (this.eat(12) && !this.match(11)); + this.raise(Errors.ImportCallArity, node); + } + } + } else { + this.addTrailingCommaExtraToNode(node.source); + } + } + this.expect(11); + return this.finishNode(node, "ImportExpression"); + } + checkPipelineAtInfixOperator(left, leftStartLoc) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + if (left.type === "SequenceExpression") { + this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc); + } + } + } + parseSmartPipelineBodyInStyle(childExpr, startLoc) { + if (this.isSimpleReference(childExpr)) { + const bodyNode = this.startNodeAt(startLoc); + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); + } else { + const bodyNode = this.startNodeAt(startLoc); + this.checkSmartPipeTopicBodyEarlyErrors(startLoc); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); + } + } + isSimpleReference(expression) { + switch (expression.type) { + case "MemberExpression": + return !expression.computed && this.isSimpleReference(expression.object); + case "Identifier": + return true; + default: + return false; + } + } + checkSmartPipeTopicBodyEarlyErrors(startLoc) { + if (this.match(19)) { + throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipelineTopicUnused, startLoc); + } + } + withTopicBindingContext(callback) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 1, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } + withSmartMixTopicForbiddingContext(callback) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { + return callback(); + } + } + withSoloAwaitPermittingContext(callback) { + const outerContextSoloAwaitState = this.state.soloAwait; + this.state.soloAwait = true; + try { + return callback(); + } finally { + this.state.soloAwait = outerContextSoloAwaitState; + } + } + allowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = 8 & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | 8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + disallowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = 8 & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & ~8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + registerTopicReference() { + this.state.topicContext.maxTopicIndex = 0; + } + topicReferenceIsAllowedInCurrentContext() { + return this.state.topicContext.maxNumOfResolvableTopics >= 1; + } + topicReferenceWasUsedInCurrentContext() { + return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; + } + parseFSharpPipelineBody(prec) { + const startLoc = this.state.startLoc; + this.state.potentialArrowAt = this.state.start; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = true; + const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return ret; + } + parseModuleExpression() { + this.expectPlugin("moduleBlocks"); + const node = this.startNode(); + this.next(); + if (!this.match(5)) { + this.unexpected(null, 5); + } + const program = this.startNodeAt(this.state.endLoc); + this.next(); + const revertScopes = this.initializeScopes(true); + this.enterInitialScopes(); + try { + node.body = this.parseProgram(program, 8, "module"); + } finally { + revertScopes(); + } + return this.finishNode(node, "ModuleExpression"); + } + parseVoidPattern(refExpressionErrors) { + this.expectPlugin("discardBinding"); + const node = this.startNode(); + if (refExpressionErrors != null) { + refExpressionErrors.voidPatternLoc = this.state.startLoc; + } + this.next(); + return this.finishNode(node, "VoidPattern"); + } + parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, afterLeftParse) { + if (refExpressionErrors != null && this.match(88)) { + const nextCode = this.lookaheadCharCode(); + if (nextCode === 44 || nextCode === (close === 3 ? 93 : close === 8 ? 125 : 41) || nextCode === 61) { + return this.parseMaybeDefault(this.state.startLoc, this.parseVoidPattern(refExpressionErrors)); + } + } + return this.parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse); + } + parsePropertyNamePrefixOperator(prop) {} +} +const loopLabel = { + kind: 1 + }, + switchLabel = { + kind: 2 + }; +const loneSurrogate = /[\uD800-\uDFFF]/u; +const keywordRelationalOperator = /in(?:stanceof)?/y; +function babel7CompatTokens(tokens, input, startIndex) { + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i]; + const { + type + } = token; + if (typeof type === "number") { + if (type === 139) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(132), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start - startIndex) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; + } + token.type = getExportedToken(type); + } + } + return tokens; +} +class StatementParser extends ExpressionParser { + parseTopLevel(file, program) { + file.program = this.parseProgram(program, 140, this.options.sourceType === "module" ? "module" : "script"); + file.comments = this.comments; + if (this.optionFlags & 256) { + file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex); + } + return this.finishNode(file, "File"); + } + parseProgram(program, end, sourceType) { + program.sourceType = sourceType; + program.interpreter = this.parseInterpreterDirective(); + this.parseBlockBody(program, true, true, end); + if (this.inModule) { + if (!(this.optionFlags & 64) && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, at, { + localName + }); + } + } + this.addExtra(program, "topLevelAwait", this.state.hasTopLevelAwait); + } + let finishedProgram; + if (end === 140) { + finishedProgram = this.finishNode(program, "Program"); + } else { + finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); + } + return finishedProgram; + } + stmtToDirective(stmt) { + const directive = this.castNodeTo(stmt, "Directive"); + const directiveLiteral = this.castNodeTo(stmt.expression, "DirectiveLiteral"); + const expressionValue = directiveLiteral.value; + const raw = this.input.slice(this.offsetToSourcePos(directiveLiteral.start), this.offsetToSourcePos(directiveLiteral.end)); + const val = directiveLiteral.value = raw.slice(1, -1); + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.addExtra(directiveLiteral, "expressionValue", expressionValue); + directive.value = directiveLiteral; + delete stmt.expression; + return directive; + } + parseInterpreterDirective() { + if (!this.match(28)) { + return null; + } + const node = this.startNode(); + node.value = this.state.value; + this.next(); + return this.finishNode(node, "InterpreterDirective"); + } + isLet() { + if (!this.isContextual(100)) { + return false; + } + return this.hasFollowingBindingAtom(); + } + isUsing() { + if (!this.isContextual(107)) { + return false; + } + return this.nextTokenIsIdentifierOnSameLine(); + } + isForUsing() { + if (!this.isContextual(107)) { + return false; + } + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + if (this.isUnparsedContextual(next, "of")) { + const nextCharAfterOf = this.lookaheadCharCodeSince(next + 2); + if (nextCharAfterOf !== 61 && nextCharAfterOf !== 58 && nextCharAfterOf !== 59) { + return false; + } + } + if (this.chStartsBindingIdentifier(nextCh, next) || this.isUnparsedContextual(next, "void")) { + return true; + } + return false; + } + nextTokenIsIdentifierOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next); + } + isAwaitUsing() { + if (!this.isContextual(96)) { + return false; + } + let next = this.nextTokenInLineStart(); + if (this.isUnparsedContextual(next, "using")) { + next = this.nextTokenInLineStartSince(next + 5); + const nextCh = this.codePointAtPos(next); + if (this.chStartsBindingIdentifier(nextCh, next)) { + return true; + } + } + return false; + } + chStartsBindingIdentifier(ch, pos) { + if (isIdentifierStart(ch)) { + keywordRelationalOperator.lastIndex = pos; + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + chStartsBindingPattern(ch) { + return ch === 91 || ch === 123; + } + hasFollowingBindingAtom() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); + } + hasInLineFollowingBindingIdentifierOrBrace() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next); + } + allowsUsing() { + return (this.scope.inModule || !this.scope.inTopLevel) && !this.scope.inBareCaseStatement; + } + parseModuleItem() { + return this.parseStatementLike(1 | 2 | 4 | 8); + } + parseStatementListItem() { + return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8)); + } + parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) { + let flags = 0; + if (this.options.annexB && !this.state.strict) { + flags |= 4; + if (allowLabeledFunction) { + flags |= 8; + } + } + return this.parseStatementLike(flags); + } + parseStatement() { + return this.parseStatementLike(0); + } + parseStatementLike(flags) { + let decorators = null; + if (this.match(26)) { + decorators = this.parseDecorators(true); + } + return this.parseStatementContent(flags, decorators); + } + parseStatementContent(flags, decorators) { + const startType = this.state.type; + const node = this.startNode(); + const allowDeclaration = !!(flags & 2); + const allowFunctionDeclaration = !!(flags & 4); + const topLevel = flags & 1; + switch (startType) { + case 60: + return this.parseBreakContinueStatement(node, true); + case 63: + return this.parseBreakContinueStatement(node, false); + case 64: + return this.parseDebuggerStatement(node); + case 90: + return this.parseDoWhileStatement(node); + case 91: + return this.parseForStatement(node); + case 68: + if (this.lookaheadCharCode() === 46) break; + if (!allowFunctionDeclaration) { + this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc); + } + return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration); + case 80: + if (!allowDeclaration) this.unexpected(); + return this.parseClass(this.maybeTakeDecorators(decorators, node), true); + case 69: + return this.parseIfStatement(node); + case 70: + return this.parseReturnStatement(node); + case 71: + return this.parseSwitchStatement(node); + case 72: + return this.parseThrowStatement(node); + case 73: + return this.parseTryStatement(node); + case 96: + if (this.isAwaitUsing()) { + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, node); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, node); + } else if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, node); + } + this.next(); + return this.parseVarStatement(node, "await using"); + } + break; + case 107: + if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) { + break; + } + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + return this.parseVarStatement(node, "using"); + case 100: + { + if (this.state.containsEsc) { + break; + } + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + if (nextCh !== 91) { + if (!allowDeclaration && this.hasFollowingLineBreak()) break; + if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) { + break; + } + } + } + case 75: + { + if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + } + case 74: + { + const kind = this.state.value; + return this.parseVarStatement(node, kind); + } + case 92: + return this.parseWhileStatement(node); + case 76: + return this.parseWithStatement(node); + case 5: + return this.parseBlock(); + case 13: + return this.parseEmptyStatement(node); + case 83: + { + const nextTokenCharCode = this.lookaheadCharCode(); + if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { + break; + } + } + case 82: + { + if (!(this.optionFlags & 8) && !topLevel) { + this.raise(Errors.UnexpectedImportExport, this.state.startLoc); + } + this.next(); + let result; + if (startType === 83) { + result = this.parseImport(node); + } else { + result = this.parseExport(node, decorators); + } + this.assertModuleNodeAllowed(result); + return result; + } + default: + { + if (this.isAsyncFunction()) { + if (!allowDeclaration) { + this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc); + } + this.next(); + return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration); + } + } + } + const maybeName = this.state.value; + const expr = this.parseExpression(); + if (tokenIsIdentifier(startType) && expr.type === "Identifier" && this.eat(14)) { + return this.parseLabeledStatement(node, maybeName, expr, flags); + } else { + return this.parseExpressionStatement(node, expr, decorators); + } + } + assertModuleNodeAllowed(node) { + if (!(this.optionFlags & 8) && !this.inModule) { + this.raise(Errors.ImportOutsideModule, node); + } + } + decoratorsEnabledBeforeExport() { + if (this.hasPlugin("decorators-legacy")) return true; + return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== false; + } + maybeTakeDecorators(maybeDecorators, classNode, exportNode) { + if (maybeDecorators) { + var _classNode$decorators; + if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) { + if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") { + this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]); + } + classNode.decorators.unshift(...maybeDecorators); + } else { + classNode.decorators = maybeDecorators; + } + this.resetStartLocationFromNode(classNode, maybeDecorators[0]); + if (exportNode) this.resetStartLocationFromNode(exportNode, classNode); + } + return classNode; + } + canHaveLeadingDecorator() { + return this.match(80); + } + parseDecorators(allowExport) { + const decorators = []; + do { + decorators.push(this.parseDecorator()); + } while (this.match(26)); + if (this.match(82)) { + if (!allowExport) { + this.unexpected(); + } + if (!this.decoratorsEnabledBeforeExport()) { + this.raise(Errors.DecoratorExportClass, this.state.startLoc); + } + } else if (!this.canHaveLeadingDecorator()) { + throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc); + } + return decorators; + } + parseDecorator() { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + const node = this.startNode(); + this.next(); + if (this.hasPlugin("decorators")) { + const startLoc = this.state.startLoc; + let expr; + if (this.match(10)) { + const startLoc = this.state.startLoc; + this.next(); + expr = this.parseExpression(); + this.expect(11); + expr = this.wrapParenthesis(startLoc, expr); + const paramsStartLoc = this.state.startLoc; + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { + this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc); + } + } else { + expr = this.parseIdentifier(false); + while (this.eat(16)) { + const node = this.startNodeAt(startLoc); + node.object = expr; + if (this.match(139)) { + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + node.computed = false; + expr = this.finishNode(node, "MemberExpression"); + } + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + } + } else { + node.expression = this.parseExprSubscripts(); + } + return this.finishNode(node, "Decorator"); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + return expr; + } + parseBreakContinueStatement(node, isBreak) { + this.next(); + if (this.isLineTerminator()) { + node.label = null; + } else { + node.label = this.parseIdentifier(); + this.semicolon(); + } + this.verifyBreakContinue(node, isBreak); + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); + } + verifyBreakContinue(node, isBreak) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { + const lab = this.state.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === 1)) { + break; + } + if (node.label && isBreak) break; + } + } + if (i === this.state.labels.length) { + const type = isBreak ? "BreakStatement" : "ContinueStatement"; + this.raise(Errors.IllegalBreakContinue, node, { + type + }); + } + } + parseDebuggerStatement(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement"); + } + parseHeaderExpression() { + this.expect(10); + const val = this.parseExpression(); + this.expect(11); + return val; + } + parseDoWhileStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + this.expect(92); + node.test = this.parseHeaderExpression(); + this.eat(13); + return this.finishNode(node, "DoWhileStatement"); + } + parseForStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + let awaitAt = null; + if (this.isContextual(96) && this.recordAwaitIfAllowed()) { + awaitAt = this.state.startLoc; + this.next(); + } + this.scope.enter(0); + this.expect(10); + if (this.match(13)) { + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, null); + } + const startsWithLet = this.isContextual(100); + { + const startsWithAwaitUsing = this.isAwaitUsing(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isForUsing(); + const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; + if (this.match(74) || this.match(75) || isLetOrUsing) { + const initNode = this.startNode(); + let kind; + if (startsWithAwaitUsing) { + kind = "await using"; + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc); + } + this.next(); + } else { + kind = this.state.value; + } + this.next(); + this.parseVar(initNode, true, kind); + const init = this.finishNode(initNode, "VariableDeclaration"); + const isForIn = this.match(58); + if (isForIn && starsWithUsingDeclaration) { + this.raise(Errors.ForInUsing, init); + } + if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) { + return this.parseForIn(node, init, awaitAt); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + } + const startsWithAsync = this.isContextual(95); + const refExpressionErrors = new ExpressionErrors(); + const init = this.parseExpression(true, refExpressionErrors); + const isForOf = this.isContextual(102); + if (isForOf) { + if (startsWithLet) { + this.raise(Errors.ForOfLet, init); + } + if (awaitAt === null && startsWithAsync && init.type === "Identifier") { + this.raise(Errors.ForOfAsync, init); + } + } + if (isForOf || this.match(58)) { + this.checkDestructuringPrivate(refExpressionErrors); + this.toAssignable(init, true); + const type = isForOf ? "ForOfStatement" : "ForInStatement"; + this.checkLVal(init, { + type + }); + return this.parseForIn(node, init, awaitAt); + } else { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + parseFunctionStatement(node, isAsync, isHangingDeclaration) { + this.next(); + return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0)); + } + parseIfStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(); + node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null; + return this.finishNode(node, "IfStatement"); + } + parseReturnStatement(node) { + if (!this.prodParam.hasReturn) { + this.raise(Errors.IllegalReturn, this.state.startLoc); + } + this.next(); + if (this.isLineTerminator()) { + node.argument = null; + } else { + node.argument = this.parseExpression(); + this.semicolon(); + } + return this.finishNode(node, "ReturnStatement"); + } + parseSwitchStatement(node) { + this.next(); + node.discriminant = this.parseHeaderExpression(); + const cases = node.cases = []; + this.expect(5); + this.state.labels.push(switchLabel); + this.scope.enter(256); + let cur; + for (let sawDefault; !this.match(8);) { + if (this.match(61) || this.match(65)) { + const isCase = this.match(61); + if (cur) this.finishNode(cur, "SwitchCase"); + cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { + this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc); + } + sawDefault = true; + cur.test = null; + } + this.expect(14); + } else { + if (cur) { + cur.consequent.push(this.parseStatementListItem()); + } else { + this.unexpected(); + } + } + } + this.scope.exit(); + if (cur) this.finishNode(cur, "SwitchCase"); + this.next(); + this.state.labels.pop(); + return this.finishNode(node, "SwitchStatement"); + } + parseThrowStatement(node) { + this.next(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc); + } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement"); + } + parseCatchClauseParam() { + const param = this.parseBindingAtom(); + this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0); + this.checkLVal(param, { + type: "CatchClause" + }, 9); + return param; + } + parseTryStatement(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.match(62)) { + const clause = this.startNode(); + this.next(); + if (this.match(10)) { + this.expect(10); + clause.param = this.parseCatchClauseParam(); + this.expect(11); + } else { + clause.param = null; + this.scope.enter(0); + } + clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); + this.scope.exit(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(67) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) { + this.raise(Errors.NoCatchOrFinally, node); + } + return this.finishNode(node, "TryStatement"); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + this.next(); + this.parseVar(node, false, kind, allowMissingInitializer); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration"); + } + parseWhileStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + return this.finishNode(node, "WhileStatement"); + } + parseWithStatement(node) { + if (this.state.strict) { + this.raise(Errors.StrictWith, this.state.startLoc); + } + this.next(); + node.object = this.parseHeaderExpression(); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + return this.finishNode(node, "WithStatement"); + } + parseEmptyStatement(node) { + this.next(); + return this.finishNode(node, "EmptyStatement"); + } + parseLabeledStatement(node, maybeName, expr, flags) { + for (const label of this.state.labels) { + if (label.name === maybeName) { + this.raise(Errors.LabelRedeclaration, expr, { + labelName: maybeName + }); + } + } + const kind = tokenIsLoop(this.state.type) ? 1 : this.match(71) ? 2 : null; + for (let i = this.state.labels.length - 1; i >= 0; i--) { + const label = this.state.labels[i]; + if (label.statementStart === node.start) { + label.statementStart = this.sourceToOffsetPos(this.state.start); + label.kind = kind; + } else { + break; + } + } + this.state.labels.push({ + name: maybeName, + kind: kind, + statementStart: this.sourceToOffsetPos(this.state.start) + }); + node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement(); + this.state.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement"); + } + parseExpressionStatement(node, expr, decorators) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement"); + } + parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { + const node = this.startNode(); + if (allowDirectives) { + this.state.strictErrors.clear(); + } + this.expect(5); + if (createNewLexicalScope) { + this.scope.enter(0); + } + this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); + if (createNewLexicalScope) { + this.scope.exit(); + } + return this.finishNode(node, "BlockStatement"); + } + isValidDirective(stmt) { + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + const body = node.body = []; + const directives = node.directives = []; + this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); + } + parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { + const oldStrict = this.state.strict; + let hasStrictModeDirective = false; + let parsedNonDirective = false; + while (!this.match(end)) { + const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem(); + if (directives && !parsedNonDirective) { + if (this.isValidDirective(stmt)) { + const directive = this.stmtToDirective(stmt); + directives.push(directive); + if (!hasStrictModeDirective && directive.value.value === "use strict") { + hasStrictModeDirective = true; + this.setStrict(true); + } + continue; + } + parsedNonDirective = true; + this.state.strictErrors.clear(); + } + body.push(stmt); + } + afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective); + if (!oldStrict) { + this.setStrict(false); + } + this.next(); + } + parseFor(node, init) { + node.init = init; + this.semicolon(false); + node.test = this.match(13) ? null : this.parseExpression(); + this.semicolon(false); + node.update = this.match(11) ? null : this.parseExpression(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, "ForStatement"); + } + parseForIn(node, init, awaitAt) { + const isForIn = this.match(58); + this.next(); + if (isForIn) { + if (awaitAt !== null) this.unexpected(awaitAt); + } else { + node.await = awaitAt !== null; + } + if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { + this.raise(Errors.ForInOfLoopInitializer, init, { + type: isForIn ? "ForInStatement" : "ForOfStatement" + }); + } + if (init.type === "AssignmentPattern") { + this.raise(Errors.InvalidLhs, init, { + ancestor: { + type: "ForStatement" + } + }); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); + } + parseVar(node, isFor, kind, allowMissingInitializer = false) { + const declarations = node.declarations = []; + node.kind = kind; + for (;;) { + const decl = this.startNode(); + this.parseVarId(decl, kind); + decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); + if (decl.init === null && !allowMissingInitializer) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind: "destructuring" + }); + } else if ((kind === "const" || kind === "using" || kind === "await using") && !(this.match(58) || this.isContextual(102))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind + }); + } + } + declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(12)) break; + } + return node; + } + parseVarId(decl, kind) { + const id = this.parseBindingAtom(); + if (kind === "using" || kind === "await using") { + if (id.type === "ArrayPattern" || id.type === "ObjectPattern") { + this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start); + } + } else { + if (id.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, id.loc.start); + } + } + this.checkLVal(id, { + type: "VariableDeclarator" + }, kind === "var" ? 5 : 8201); + decl.id = id; + } + parseAsyncFunctionExpression(node) { + return this.parseFunction(node, 8); + } + parseFunction(node, flags = 0) { + const hangingDeclaration = flags & 2; + const isDeclaration = !!(flags & 1); + const requireId = isDeclaration && !(flags & 4); + const isAsync = !!(flags & 8); + this.initFunction(node, isAsync); + if (this.match(55)) { + if (hangingDeclaration) { + this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc); + } + this.next(); + node.generator = true; + } + if (isDeclaration) { + node.id = this.parseFunctionId(requireId); + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = false; + this.scope.enter(514); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + if (!isDeclaration) { + node.id = this.parseFunctionId(); + } + this.parseFunctionParams(node, false); + this.withSmartMixTopicForbiddingContext(() => { + this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression"); + }); + this.prodParam.exit(); + this.scope.exit(); + if (isDeclaration && !hangingDeclaration) { + this.registerFunctionStatementId(node); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return node; + } + parseFunctionId(requireId) { + return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; + } + parseFunctionParams(node, isConstructor) { + this.expect(10); + this.expressionScope.enter(newParameterDeclarationScope()); + node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0)); + this.expressionScope.exit(); + } + registerFunctionStatementId(node) { + if (!node.id) return; + this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start); + } + parseClass(node, isStatement, optionalId) { + this.next(); + const oldStrict = this.state.strict; + this.state.strict = true; + this.parseClassId(node, isStatement, optionalId); + this.parseClassSuper(node); + node.body = this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); + } + isClassProperty() { + return this.match(29) || this.match(13) || this.match(8); + } + isClassMethod() { + return this.match(10); + } + nameIsConstructor(key) { + return key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"; + } + isNonstaticConstructor(method) { + return !method.computed && !method.static && this.nameIsConstructor(method.key); + } + parseClassBody(hadSuperClass, oldStrict) { + this.classScope.enter(); + const state = { + hadConstructor: false, + hadSuperClass + }; + let decorators = []; + const classBody = this.startNode(); + classBody.body = []; + this.expect(5); + this.withSmartMixTopicForbiddingContext(() => { + while (!this.match(8)) { + if (this.eat(13)) { + if (decorators.length > 0) { + throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc); + } + continue; + } + if (this.match(26)) { + decorators.push(this.parseDecorator()); + continue; + } + const member = this.startNode(); + if (decorators.length) { + member.decorators = decorators; + this.resetStartLocationFromNode(member, decorators[0]); + decorators = []; + } + this.parseClassMember(classBody, member, state); + if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { + this.raise(Errors.DecoratorConstructor, member); + } + } + }); + this.state.strict = oldStrict; + this.next(); + if (decorators.length) { + throw this.raise(Errors.TrailingDecorator, this.state.startLoc); + } + this.classScope.exit(); + return this.finishNode(classBody, "ClassBody"); + } + parseClassMemberFromModifier(classBody, member) { + const key = this.parseIdentifier(true); + if (this.isClassMethod()) { + const method = member; + method.kind = "method"; + method.computed = false; + method.key = key; + method.static = false; + this.pushClassMethod(classBody, method, false, false, false, false); + return true; + } else if (this.isClassProperty()) { + const prop = member; + prop.computed = false; + prop.key = key; + prop.static = false; + classBody.body.push(this.parseClassProperty(prop)); + return true; + } + this.resetPreviousNodeTrailingComments(key); + return false; + } + parseClassMember(classBody, member, state) { + const isStatic = this.isContextual(106); + if (isStatic) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } + if (this.eat(5)) { + this.parseClassStaticBlock(classBody, member); + return; + } + } + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const publicMethod = member; + const privateMethod = member; + const publicProp = member; + const privateProp = member; + const accessorProp = member; + const method = publicMethod; + const publicMember = publicMethod; + member.static = isStatic; + this.parsePropertyNamePrefixOperator(member); + if (this.eat(55)) { + method.kind = "method"; + const isPrivateName = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(method); + if (isPrivateName) { + this.pushClassPrivateMethod(classBody, privateMethod, true, false); + return; + } + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsGenerator, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, true, false, false, false); + return; + } + const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type); + const key = this.parseClassElementName(member); + const maybeContextualKw = isContextual ? key.name : null; + const isPrivate = this.isPrivateName(key); + const maybeQuestionTokenStartLoc = this.state.startLoc; + this.parsePostMemberNameModifiers(publicMember); + if (this.isClassMethod()) { + method.kind = "method"; + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + return; + } + const isConstructor = this.isNonstaticConstructor(publicMethod); + let allowsDirectSuper = false; + if (isConstructor) { + publicMethod.kind = "constructor"; + if (state.hadConstructor && !this.hasPlugin("typescript")) { + this.raise(Errors.DuplicateConstructor, key); + } + if (isConstructor && this.hasPlugin("typescript") && member.override) { + this.raise(Errors.OverrideOnConstructor, key); + } + state.hadConstructor = true; + allowsDirectSuper = state.hadSuperClass; + } + this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); + } else if (this.isClassProperty()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else if (maybeContextualKw === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); + const isGenerator = this.eat(55); + if (publicMember.optional) { + this.unexpected(maybeQuestionTokenStartLoc); + } + method.kind = "method"; + const isPrivate = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(publicMember); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAsync, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); + } + } else if ((maybeContextualKw === "get" || maybeContextualKw === "set") && !(this.match(55) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); + method.kind = maybeContextualKw; + const isPrivate = this.match(139); + this.parseClassElementName(publicMethod); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAccessor, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, false, false, false, false); + } + this.checkGetterSetterParams(publicMethod); + } else if (maybeContextualKw === "accessor" && !this.isLineTerminator()) { + this.expectPlugin("decoratorAutoAccessors"); + this.resetPreviousNodeTrailingComments(key); + const isPrivate = this.match(139); + this.parseClassElementName(publicProp); + this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); + } else if (this.isLineTerminator()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else { + this.unexpected(); + } + } + parseClassElementName(member) { + const { + type, + value + } = this.state; + if ((type === 132 || type === 134) && member.static && value === "prototype") { + this.raise(Errors.StaticPrototype, this.state.startLoc); + } + if (type === 139) { + if (value === "constructor") { + this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc); + } + const key = this.parsePrivateName(); + member.key = key; + return key; + } + this.parsePropertyName(member); + return member.key; + } + parseClassStaticBlock(classBody, member) { + var _member$decorators; + this.scope.enter(576 | 128 | 16); + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(0); + const body = member.body = []; + this.parseBlockOrModuleBlockBody(body, undefined, false, 8); + this.prodParam.exit(); + this.scope.exit(); + this.state.labels = oldLabels; + classBody.body.push(this.finishNode(member, "StaticBlock")); + if ((_member$decorators = member.decorators) != null && _member$decorators.length) { + this.raise(Errors.DecoratorStaticBlock, member); + } + } + pushClassProperty(classBody, prop) { + if (!prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + classBody.body.push(this.parseClassProperty(prop)); + } + pushClassPrivateProperty(classBody, prop) { + const node = this.parseClassPrivateProperty(prop); + classBody.body.push(node); + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + pushClassAccessorProperty(classBody, prop, isPrivate) { + if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + const node = this.parseClassAccessorProperty(prop); + classBody.body.push(node); + if (isPrivate) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); + classBody.body.push(node); + const kind = node.kind === "get" ? node.static ? 6 : 2 : node.kind === "set" ? node.static ? 5 : 1 : 0; + this.declareClassPrivateMethodInScope(node, kind); + } + declareClassPrivateMethodInScope(node, kind) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start); + } + parsePostMemberNameModifiers(methodOrProp) {} + parseClassPrivateProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassPrivateProperty"); + } + parseClassProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassProperty"); + } + parseClassAccessorProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassAccessorProperty"); + } + parseInitializer(node) { + this.scope.enter(576 | 16); + this.expressionScope.enter(newExpressionScope()); + this.prodParam.enter(0); + node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; + this.expressionScope.exit(); + this.prodParam.exit(); + this.scope.exit(); + } + parseClassId(node, isStatement, optionalId, bindingType = 8331) { + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + if (isStatement) { + this.declareNameFromIdentifier(node.id, bindingType); + } + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + throw this.raise(Errors.MissingClassName, this.state.startLoc); + } + } + } + parseClassSuper(node) { + node.superClass = this.eat(81) ? this.parseExprSubscripts() : null; + } + parseExport(node, decorators) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true); + const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + const parseAfterDefault = !hasDefault || this.eat(12); + const hasStar = parseAfterDefault && this.eatExportStar(node); + const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); + const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); + const isFromRequired = hasDefault || hasStar; + if (hasStar && !hasNamespace) { + if (hasDefault) this.unexpected(); + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, true); + this.sawUnambiguousESM = true; + return this.finishNode(node, "ExportAllDeclaration"); + } + const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); + if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) { + this.unexpected(null, 5); + } + if (hasNamespace && parseAfterNamespace) { + this.unexpected(null, 98); + } + let hasDeclaration; + if (isFromRequired || hasSpecifiers) { + hasDeclaration = false; + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, isFromRequired); + } else { + hasDeclaration = this.maybeParseExportDeclaration(node); + } + if (isFromRequired || hasSpecifiers || hasDeclaration) { + var _node2$declaration; + const node2 = node; + this.checkExport(node2, true, false, !!node2.source); + if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, node2.declaration, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.sawUnambiguousESM = true; + return this.finishNode(node2, "ExportNamedDeclaration"); + } + if (this.eat(65)) { + const node2 = node; + const decl = this.parseExportDefaultExpression(); + node2.declaration = decl; + if (decl.type === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, decl, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.checkExport(node2, true, true); + this.sawUnambiguousESM = true; + return this.finishNode(node2, "ExportDefaultDeclaration"); + } + throw this.unexpected(null, 5); + } + eatExportStar(node) { + return this.eat(55); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) { + this.expectPlugin("exportDefaultFrom", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start); + const id = maybeDefaultIdentifier || this.parseIdentifier(true); + const specifier = this.startNodeAtNode(id); + specifier.exported = id; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + if (this.isContextual(93)) { + var _ref, _ref$specifiers; + (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = []; + const specifier = this.startNodeAt(this.state.lastTokStartLoc); + this.next(); + specifier.exported = this.parseModuleExportName(); + node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); + return true; + } + return false; + } + maybeParseExportNamedSpecifiers(node) { + if (this.match(5)) { + const node2 = node; + if (!node2.specifiers) node2.specifiers = []; + const isTypeExport = node2.exportKind === "type"; + node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node2.source = null; + if (this.hasPlugin("importAssertions")) { + node2.assertions = []; + } else { + node2.attributes = []; + } + node2.declaration = null; + return true; + } + return false; + } + maybeParseExportDeclaration(node) { + if (this.shouldParseExportDeclaration()) { + node.specifiers = []; + node.source = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } else { + node.attributes = []; + } + node.declaration = this.parseExportDeclaration(node); + return true; + } + return false; + } + isAsyncFunction() { + if (!this.isContextual(95)) return false; + const next = this.nextTokenInLineStart(); + return this.isUnparsedContextual(next, "function"); + } + parseExportDefaultExpression() { + const expr = this.startNode(); + if (this.match(68)) { + this.next(); + return this.parseFunction(expr, 1 | 4); + } else if (this.isAsyncFunction()) { + this.next(); + this.next(); + return this.parseFunction(expr, 1 | 4 | 8); + } + if (this.match(80)) { + return this.parseClass(expr, true, true); + } + if (this.match(26)) { + if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); + } + if (this.match(75) || this.match(74) || this.isLet() || this.isUsing() || this.isAwaitUsing()) { + throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc); + } + const res = this.parseMaybeAssignAllowIn(); + this.semicolon(); + return res; + } + parseExportDeclaration(node) { + if (this.match(80)) { + const node = this.parseClass(this.startNode(), true, false); + return node; + } + return this.parseStatementListItem(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsIdentifier(type)) { + if (type === 95 && !this.state.containsEsc || type === 100) { + return false; + } + if ((type === 130 || type === 129) && !this.state.containsEsc) { + const next = this.nextTokenStart(); + const nextChar = this.input.charCodeAt(next); + if (nextChar === 123 || this.chStartsBindingIdentifier(nextChar, next) && !this.input.startsWith("from", next)) { + this.expectOnePlugin(["flow", "typescript"]); + return false; + } + } + } else if (!this.match(65)) { + return false; + } + const next = this.nextTokenStart(); + const hasFrom = this.isUnparsedContextual(next, "from"); + if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { + return true; + } + if (this.match(65) && hasFrom) { + const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); + return nextAfterFrom === 34 || nextAfterFrom === 39; + } + return false; + } + parseExportFrom(node, expect) { + if (this.eatContextual(98)) { + node.source = this.parseImportSource(); + this.checkExport(node); + this.maybeParseImportAttributes(node); + this.checkJSONModuleImport(node); + } else if (expect) { + this.unexpected(); + } + this.semicolon(); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 26) { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + if (this.hasPlugin("decorators")) { + if (this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return true; + } + } + if (this.isUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + if (this.isAwaitUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); + } + checkExport(node, checkNames, isDefault, isFrom) { + if (checkNames) { + var _node$specifiers; + if (isDefault) { + this.checkDuplicateExports(node, "default"); + if (this.hasPlugin("exportDefaultFrom")) { + var _declaration$extra; + const declaration = node.declaration; + if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { + this.raise(Errors.ExportDefaultFromAsIdentifier, declaration); + } + } + } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) { + for (const specifier of node.specifiers) { + const { + exported + } = specifier; + const exportName = exported.type === "Identifier" ? exported.name : exported.value; + this.checkDuplicateExports(specifier, exportName); + if (!isFrom && specifier.local) { + const { + local + } = specifier; + if (local.type !== "Identifier") { + this.raise(Errors.ExportBindingIsString, specifier, { + localName: local.value, + exportName + }); + } else { + this.checkReservedWord(local.name, local.loc.start, true, false); + this.scope.checkLocalExport(local); + } + } + } + } else if (node.declaration) { + const decl = node.declaration; + if (decl.type === "FunctionDeclaration" || decl.type === "ClassDeclaration") { + const { + id + } = decl; + if (!id) throw new Error("Assertion failure"); + this.checkDuplicateExports(node, id.name); + } else if (decl.type === "VariableDeclaration") { + for (const declaration of decl.declarations) { + this.checkDeclaration(declaration.id); + } + } + } + } + } + checkDeclaration(node) { + if (node.type === "Identifier") { + this.checkDuplicateExports(node, node.name); + } else if (node.type === "ObjectPattern") { + for (const prop of node.properties) { + this.checkDeclaration(prop); + } + } else if (node.type === "ArrayPattern") { + for (const elem of node.elements) { + if (elem) { + this.checkDeclaration(elem); + } + } + } else if (node.type === "ObjectProperty") { + this.checkDeclaration(node.value); + } else if (node.type === "RestElement") { + this.checkDeclaration(node.argument); + } else if (node.type === "AssignmentPattern") { + this.checkDeclaration(node.left); + } + } + checkDuplicateExports(node, exportName) { + if (this.exportedIdentifiers.has(exportName)) { + if (exportName === "default") { + this.raise(Errors.DuplicateDefaultExport, node); + } else { + this.raise(Errors.DuplicateExport, node, { + exportName + }); + } + } + this.exportedIdentifiers.add(exportName); + } + parseExportSpecifiers(isInTypeExport) { + const nodes = []; + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.eat(8)) break; + } + const isMaybeTypeOnly = this.isContextual(130); + const isString = this.match(134); + const node = this.startNode(); + node.local = this.parseModuleExportName(); + nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); + } + return nodes; + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (this.eatContextual(93)) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = this.cloneStringLiteral(node.local); + } else if (!node.exported) { + node.exported = this.cloneIdentifier(node.local); + } + return this.finishNode(node, "ExportSpecifier"); + } + parseModuleExportName() { + if (this.match(134)) { + const result = this.parseStringLiteral(this.state.value); + const surrogate = loneSurrogate.exec(result.value); + if (surrogate) { + this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, { + surrogateCharCode: surrogate[0].charCodeAt(0) + }); + } + return result; + } + return this.parseIdentifier(true); + } + isJSONModuleImport(node) { + if (node.assertions != null) { + return node.assertions.some(({ + key, + value + }) => { + return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type"); + }); + } + return false; + } + checkImportReflection(node) { + const { + specifiers + } = node; + const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null; + if (node.phase === "source") { + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0].loc.start); + } + } else if (node.phase === "defer") { + if (singleBindingType !== "ImportNamespaceSpecifier") { + this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start); + } + } else if (node.module) { + var _node$assertions; + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start); + } + if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { + this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start); + } + } + } + checkJSONModuleImport(node) { + if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") { + const { + specifiers + } = node; + if (specifiers != null) { + const nonDefaultNamedSpecifier = specifiers.find(specifier => { + let imported; + if (specifier.type === "ExportSpecifier") { + imported = specifier.local; + } else if (specifier.type === "ImportSpecifier") { + imported = specifier.imported; + } + if (imported !== undefined) { + return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default"; + } + }); + if (nonDefaultNamedSpecifier !== undefined) { + this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start); + } + } + } + } + isPotentialImportPhase(isExport) { + if (isExport) return false; + return this.isContextual(105) || this.isContextual(97) || this.isContextual(127); + } + applyImportPhase(node, isExport, phase, loc) { + if (isExport) { + return; + } + if (phase === "module") { + this.expectPlugin("importReflection", loc); + node.module = true; + } else if (this.hasPlugin("importReflection")) { + node.module = false; + } + if (phase === "source") { + this.expectPlugin("sourcePhaseImports", loc); + node.phase = "source"; + } else if (phase === "defer") { + this.expectPlugin("deferredImportEvaluation", loc); + node.phase = "defer"; + } else if (this.hasPlugin("sourcePhaseImports")) { + node.phase = null; + } + } + parseMaybeImportPhase(node, isExport) { + if (!this.isPotentialImportPhase(isExport)) { + this.applyImportPhase(node, isExport, null); + return null; + } + const phaseIdentifier = this.startNode(); + const phaseIdentifierName = this.parseIdentifierName(true); + const { + type + } = this.state; + const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + if (isImportPhase) { + this.applyImportPhase(node, isExport, phaseIdentifierName, phaseIdentifier.loc.start); + return null; + } else { + this.applyImportPhase(node, isExport, null); + return this.createIdentifier(phaseIdentifier, phaseIdentifierName); + } + } + isPrecedingIdImportPhase(phase) { + const { + type + } = this.state; + return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + } + parseImport(node) { + if (this.match(134)) { + return this.parseImportSourceAndAttributes(node); + } + return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); + } + parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) { + node.specifiers = []; + const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier); + const parseNext = !hasDefault || this.eat(12); + const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); + if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); + this.expectContextual(98); + return this.parseImportSourceAndAttributes(node); + } + parseImportSourceAndAttributes(node) { + var _node$specifiers2; + (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = []; + node.source = this.parseImportSource(); + this.maybeParseImportAttributes(node); + this.checkImportReflection(node); + this.checkJSONModuleImport(node); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + if (!this.match(134)) this.unexpected(); + return this.parseExprAtom(); + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + finishImportSpecifier(specifier, type, bindingType = 8201) { + this.checkLVal(specifier.local, { + type + }, bindingType); + return this.finishNode(specifier, type); + } + parseImportAttributes() { + this.expect(5); + const attrs = []; + const attrNames = new Set(); + do { + if (this.match(8)) { + break; + } + const node = this.startNode(); + const keyName = this.state.value; + if (attrNames.has(keyName)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, { + key: keyName + }); + } + attrNames.add(keyName); + if (this.match(134)) { + node.key = this.parseStringLiteral(keyName); + } else { + node.key = this.parseIdentifier(true); + } + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + this.expect(8); + return attrs; + } + parseModuleAttributes() { + const attrs = []; + const attributes = new Set(); + do { + const node = this.startNode(); + node.key = this.parseIdentifier(true); + if (node.key.name !== "type") { + this.raise(Errors.ModuleAttributeDifferentFromType, node.key); + } + if (attributes.has(node.key.name)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, { + key: node.key.name + }); + } + attributes.add(node.key.name); + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + return attrs; + } + maybeParseImportAttributes(node) { + let attributes; + var useWith = false; + if (this.match(76)) { + if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) { + return; + } + this.next(); + if (this.hasPlugin("moduleAttributes")) { + attributes = this.parseModuleAttributes(); + this.addExtra(node, "deprecatedWithLegacySyntax", true); + } else { + attributes = this.parseImportAttributes(); + } + useWith = true; + } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { + if (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importAssertions")) { + this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); + } + if (!this.hasPlugin("importAssertions")) { + this.addExtra(node, "deprecatedAssertSyntax", true); + } + this.next(); + attributes = this.parseImportAttributes(); + } else { + attributes = []; + } + if (!useWith && this.hasPlugin("importAssertions")) { + node.assertions = attributes; + } else { + node.attributes = attributes; + } + } + maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier) { + const specifier = this.startNodeAtNode(maybeDefaultIdentifier); + specifier.local = maybeDefaultIdentifier; + node.specifiers.push(this.finishImportSpecifier(specifier, "ImportDefaultSpecifier")); + return true; + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier"); + return true; + } + return false; + } + maybeParseStarImportSpecifier(node) { + if (this.match(55)) { + const specifier = this.startNode(); + this.next(); + this.expectContextual(93); + this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier"); + return true; + } + return false; + } + parseNamedImportSpecifiers(node) { + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + if (this.eat(14)) { + throw this.raise(Errors.DestructureNamedImport, this.state.startLoc); + } + this.expect(12); + if (this.eat(8)) break; + } + const specifier = this.startNode(); + const importedIsString = this.match(134); + const isMaybeTypeOnly = this.isContextual(130); + specifier.imported = this.parseModuleExportName(); + const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); + node.specifiers.push(importSpecifier); + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + const { + imported + } = specifier; + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: imported.value + }); + } + this.checkReservedWord(imported.name, specifier.loc.start, true, true); + if (!specifier.local) { + specifier.local = this.cloneIdentifier(imported); + } + } + return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); + } + isThisParam(param) { + return param.type === "Identifier" && param.name === "this"; + } +} +class Parser extends StatementParser { + constructor(options, input, pluginsMap) { + const normalizedOptions = getOptions(options); + super(normalizedOptions, input); + this.options = normalizedOptions; + this.initializeScopes(); + this.plugins = pluginsMap; + this.filename = normalizedOptions.sourceFilename; + this.startIndex = normalizedOptions.startIndex; + let optionFlags = 0; + if (normalizedOptions.allowAwaitOutsideFunction) { + optionFlags |= 1; + } + if (normalizedOptions.allowReturnOutsideFunction) { + optionFlags |= 2; + } + if (normalizedOptions.allowImportExportEverywhere) { + optionFlags |= 8; + } + if (normalizedOptions.allowSuperOutsideMethod) { + optionFlags |= 16; + } + if (normalizedOptions.allowUndeclaredExports) { + optionFlags |= 64; + } + if (normalizedOptions.allowNewTargetOutsideFunction) { + optionFlags |= 4; + } + if (normalizedOptions.allowYieldOutsideFunction) { + optionFlags |= 32; + } + if (normalizedOptions.ranges) { + optionFlags |= 128; + } + if (normalizedOptions.tokens) { + optionFlags |= 256; + } + if (normalizedOptions.createImportExpressions) { + optionFlags |= 512; + } + if (normalizedOptions.createParenthesizedExpressions) { + optionFlags |= 1024; + } + if (normalizedOptions.errorRecovery) { + optionFlags |= 2048; + } + if (normalizedOptions.attachComment) { + optionFlags |= 4096; + } + if (normalizedOptions.annexB) { + optionFlags |= 8192; + } + this.optionFlags = optionFlags; + } + getScopeHandler() { + return ScopeHandler; + } + parse() { + this.enterInitialScopes(); + const file = this.startNode(); + const program = this.startNode(); + this.nextToken(); + file.errors = null; + const result = this.parseTopLevel(file, program); + result.errors = this.state.errors; + result.comments.length = this.state.commentsLen; + return result; + } +} +function parse(input, options) { + var _options; + if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { + options = Object.assign({}, options); + try { + options.sourceType = "module"; + const parser = getParser(options, input); + const ast = parser.parse(); + if (parser.sawUnambiguousESM) { + return ast; + } + if (parser.ambiguousScriptDifferentAst) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused) {} + } else { + ast.program.sourceType = "script"; + } + return ast; + } catch (moduleError) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused2) {} + throw moduleError; + } + } else { + return getParser(options, input).parse(); + } +} +function parseExpression(input, options) { + const parser = getParser(options, input); + if (parser.options.strictMode) { + parser.state.strict = true; + } + return parser.getExpression(); +} +function generateExportedTokenTypes(internalTokenTypes) { + const tokenTypes = {}; + for (const typeName of Object.keys(internalTokenTypes)) { + tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); + } + return tokenTypes; +} +const tokTypes = generateExportedTokenTypes(tt); +function getParser(options, input) { + let cls = Parser; + const pluginsMap = new Map(); + if (options != null && options.plugins) { + for (const plugin of options.plugins) { + let name, opts; + if (typeof plugin === "string") { + name = plugin; + } else { + [name, opts] = plugin; + } + if (!pluginsMap.has(name)) { + pluginsMap.set(name, opts || {}); + } + } + validatePlugins(pluginsMap); + cls = getParserClass(pluginsMap); + } + return new cls(options, input, pluginsMap); +} +const parserClassCache = new Map(); +function getParserClass(pluginsMap) { + const pluginList = []; + for (const name of mixinPluginNames) { + if (pluginsMap.has(name)) { + pluginList.push(name); + } + } + const key = pluginList.join("|"); + let cls = parserClassCache.get(key); + if (!cls) { + cls = Parser; + for (const plugin of pluginList) { + cls = mixinPlugins[plugin](cls); + } + parserClassCache.set(key, cls); + } + return cls; +} +exports.parse = parse; +exports.parseExpression = parseExpression; +exports.tokTypes = tokTypes; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/parser/lib/index.js.map b/node_modules/@babel/parser/lib/index.js.map new file mode 100644 index 0000000..0f73da4 --- /dev/null +++ b/node_modules/@babel/parser/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/util/location.ts","../src/parse-error/module-errors.ts","../src/parse-error/to-node-description.ts","../src/parse-error/standard-errors.ts","../src/parse-error/strict-mode-errors.ts","../src/parse-error/parse-expression-errors.ts","../src/parse-error/pipeline-operator-errors.ts","../src/parse-error.ts","../src/options.ts","../src/plugins/estree.ts","../src/tokenizer/context.ts","../src/tokenizer/types.ts","../../babel-helper-validator-identifier/src/identifier.ts","../../babel-helper-validator-identifier/src/keyword.ts","../src/util/identifier.ts","../src/util/scope.ts","../src/plugins/flow/scope.ts","../src/plugins/flow/index.ts","../src/plugins/jsx/xhtml.ts","../src/util/whitespace.ts","../src/plugins/jsx/index.ts","../src/plugins/typescript/scope.ts","../src/util/production-parameter.ts","../src/parser/base.ts","../src/parser/comments.ts","../src/tokenizer/state.ts","../../babel-helper-string-parser/src/index.ts","../src/tokenizer/index.ts","../src/util/class-scope.ts","../src/util/expression-scope.ts","../src/parser/util.ts","../src/parser/node.ts","../src/parser/lval.ts","../src/plugins/typescript/index.ts","../src/plugins/placeholders.ts","../src/plugins/v8intrinsic.ts","../src/plugin-utils.ts","../src/parser/expression.ts","../src/parser/statement.ts","../src/parser/index.ts","../src/index.ts"],"sourcesContent":["export type Pos = {\n start: number;\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n line: number;\n column: number;\n index: number;\n\n constructor(line: number, col: number, index: number) {\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\n\nexport class SourceLocation {\n start: Position;\n end: Position;\n filename: string | undefined;\n identifierName: string | undefined | null;\n\n constructor(start: Position, end?: Position) {\n this.start = start;\n // (may start as null, but initialized later)\n this.end = end!;\n }\n}\n\n/**\n * creates a new position with a non-zero column offset from the given position.\n * This function should be only be used when we create AST node out of the token\n * boundaries, such as TemplateElement ends before tt.templateNonTail. This\n * function does not skip whitespaces.\n */\nexport function createPositionWithColumnOffset(\n position: Position,\n columnOffset: number,\n) {\n const { line, column, index } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\nexport default {\n ImportMetaOutsideModule: {\n message: `import.meta may appear only with 'sourceType: \"module\"'`,\n code,\n },\n ImportOutsideModule: {\n message: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n code,\n },\n} satisfies ParseErrorTemplates;\n","const NodeDescriptions = {\n ArrayPattern: \"array destructuring pattern\",\n AssignmentExpression: \"assignment expression\",\n AssignmentPattern: \"assignment expression\",\n ArrowFunctionExpression: \"arrow function expression\",\n ConditionalExpression: \"conditional expression\",\n CatchClause: \"catch clause\",\n ForOfStatement: \"for-of statement\",\n ForInStatement: \"for-in statement\",\n ForStatement: \"for-loop\",\n FormalParameters: \"function parameter list\",\n Identifier: \"identifier\",\n ImportSpecifier: \"import specifier\",\n ImportDefaultSpecifier: \"import default specifier\",\n ImportNamespaceSpecifier: \"import namespace specifier\",\n ObjectPattern: \"object destructuring pattern\",\n ParenthesizedExpression: \"parenthesized expression\",\n RestElement: \"rest element\",\n UpdateExpression: {\n true: \"prefix operation\",\n false: \"postfix operation\",\n },\n VariableDeclarator: \"variable declaration\",\n YieldExpression: \"yield expression\",\n};\n\ntype NodeTypesWithDescriptions = keyof Omit<\n typeof NodeDescriptions,\n \"UpdateExpression\"\n>;\n\ntype NodeWithDescription =\n | {\n type: \"UpdateExpression\";\n prefix: boolean;\n }\n | {\n type: NodeTypesWithDescriptions;\n };\n\nconst toNodeDescription = (node: NodeWithDescription) =>\n node.type === \"UpdateExpression\"\n ? NodeDescriptions.UpdateExpression[`${node.prefix}`]\n : NodeDescriptions[node.type];\n\nexport default toNodeDescription;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport type LValAncestor =\n | { type: \"UpdateExpression\"; prefix: boolean }\n | {\n type:\n | \"ArrayPattern\"\n | \"AssignmentExpression\"\n | \"CatchClause\"\n | \"ForOfStatement\"\n | \"FormalParameters\"\n | \"ForInStatement\"\n | \"ForStatement\"\n | \"ImportSpecifier\"\n | \"ImportNamespaceSpecifier\"\n | \"ImportDefaultSpecifier\"\n | \"ParenthesizedExpression\"\n | \"ObjectPattern\"\n | \"RestElement\"\n | \"VariableDeclarator\";\n };\n\nexport default {\n AccessorIsGenerator: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass:\n \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext:\n \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier:\n \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock:\n \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter:\n \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext:\n \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext:\n \"'await' is only allowed within async functions and at the top levels of modules.\",\n BadGetterArity: \"A 'get' accessor must not have any formal parameters.\",\n BadSetterArity: \"A 'set' accessor must have exactly one formal parameter.\",\n BadSetterRestParameter:\n \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField:\n \"Classes may not have a private field named '#constructor'.\",\n ConstructorIsAccessor: \"Class constructor may not be an accessor.\",\n ConstructorIsAsync: \"Constructor can't be an async function.\",\n ConstructorIsGenerator: \"Constructor can't be a generator.\",\n DeclarationMissingInitializer: ({\n kind,\n }: {\n kind: \"await using\" | \"const\" | \"destructuring\" | \"using\";\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses:\n \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorBeforeExport:\n \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\n DecoratorsBeforeAfterExport:\n \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor:\n \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass:\n \"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.\",\n DecoratorSemicolon: \"Decorators must not be followed by a semicolon.\",\n DecoratorStaticBlock: \"Decorators can't be used with a static block.\",\n DeferImportRequiresNamespace:\n 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport:\n \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n DuplicateConstructor: \"Duplicate constructor in the same class.\",\n DuplicateDefaultExport: \"Only one default export allowed per module.\",\n DuplicateExport: ({ exportName }: { exportName: string }) =>\n `\\`${exportName}\\` has already been exported. Exported identifiers must be unique.`,\n DuplicateProto: \"Redefinition of __proto__ property.\",\n DuplicateRegExpFlags: \"Duplicate regular expression flag.\",\n ElementAfterRest: \"Rest element must be last element.\",\n EscapedCharNotAnIdentifier: \"Invalid Unicode escape.\",\n ExportBindingIsString: ({\n localName,\n exportName,\n }: {\n localName: string;\n exportName: string;\n }) =>\n `A string literal cannot be used as an exported binding without \\`from\\`.\\n- Did you mean \\`export { '${localName}' as '${exportName}' } from 'some-module'\\`?`,\n ExportDefaultFromAsIdentifier:\n \"'from' is not allowed as an identifier after 'export default'.\",\n\n ForInOfLoopInitializer: ({\n type,\n }: {\n type: \"ForInStatement\" | \"ForOfStatement\";\n }) =>\n `'${\n type === \"ForInStatement\" ? \"for-in\" : \"for-of\"\n }' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n\n ForOfAsync: \"The left-hand side of a for-of loop may not be 'async'.\",\n ForOfLet: \"The left-hand side of a for-of loop may not start with 'let'.\",\n GeneratorInSingleStatementContext:\n \"Generators can only be declared at the top level or inside a block.\",\n\n IllegalBreakContinue: ({\n type,\n }: {\n type: \"BreakStatement\" | \"ContinueStatement\";\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n\n IllegalLanguageModeDirective:\n \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportAttributesUseAssert:\n \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.\",\n ImportBindingIsString: ({ importName }: { importName: string }) =>\n `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArity: `\\`import()\\` requires exactly one or two arguments.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault:\n \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding:\n 'Only `import module x from \"./module\"` is valid.',\n IncompatibleRegExpUVFlags:\n \"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\",\n InvalidBigIntLiteral: \"Invalid BigIntLiteral.\",\n InvalidCodePoint: \"Code point out of bounds.\",\n InvalidCoverDiscardElement:\n \"'void' must be followed by an expression when not used in a binding position.\",\n InvalidCoverInitializedName: \"Invalid shorthand property initializer.\",\n InvalidDecimal: \"Invalid decimal.\",\n InvalidDigit: ({ radix }: { radix: number }) =>\n `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({ identifierName }: { identifierName: string }) =>\n `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid optional chaining in the left-hand side of ${toNodeDescription(\n ancestor,\n )}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent:\n \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({ unexpected }: { unexpected: string }) =>\n `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName,\n }: {\n identifierName: string;\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRecordProperty:\n \"Only properties and spread elements are allowed in record definitions.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({ labelName }: { labelName: string }) =>\n `Label '${labelName}' is already declared.`,\n LetInLexicalBinding: \"'let' is disallowed as a lexically bound name.\",\n LineTerminatorBeforeArrow: \"No line break is allowed before '=>'.\",\n MalformedRegExpFlags: \"Invalid regular expression flag.\",\n MissingClassName: \"A class name is required.\",\n MissingEqInAssignment:\n \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({ missingPlugin }: { missingPlugin: [string] }) =>\n `This experimental syntax requires enabling the parser plugin: ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n // FIXME: Would be nice to make this \"missingPlugins\" instead.\n // Also, seems like we can drop the \"(s)\" from the message and just make it \"s\".\n MissingOneOfPlugins: ({ missingPlugin }: { missingPlugin: string[] }) =>\n `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical:\n \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeDifferentFromType:\n \"The only accepted module attribute is `type`.\",\n ModuleAttributeInvalidValue:\n \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({ key }: { key: string }) =>\n `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode,\n }: {\n surrogateCharCode: number;\n }) =>\n `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(\n 16,\n )}'.`,\n ModuleExportUndefined: ({ localName }: { localName: string }) =>\n `Export '${localName}' is not defined.`,\n MultipleDefaultsInSwitch: \"Multiple default clauses.\",\n NewlineAfterThrow: \"Illegal newline after throw.\",\n NoCatchOrFinally: \"Missing catch or finally clause.\",\n NumberIdentifier: \"Identifier directly after number.\",\n NumericSeparatorInEscapeSequence:\n \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar:\n \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew:\n \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate:\n \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor:\n \"'override' modifier cannot appear on a constructor declaration.\",\n ParamDupe: \"Argument name clash.\",\n PatternHasAccessor: \"Object pattern can't contain getter or setter.\",\n PatternHasMethod: \"Object pattern can't contain methods.\",\n PrivateInExpectedIn: ({ identifierName }: { identifierName: string }) =>\n `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Duplicate private name #${identifierName}.`,\n RecordExpressionBarIncorrectEndSyntaxType:\n \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType:\n \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType:\n \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n RecordNoProto: \"'__proto__' is not allowed in Record expressions.\",\n RestTrailingComma: \"Unexpected trailing comma after rest element.\",\n SloppyFunction:\n \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB:\n \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\",\n SourcePhaseImportRequiresDefault:\n 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperNotAllowed:\n \"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n SuperPrivateField: \"Private fields can't be accessed on super.\",\n TrailingDecorator: \"Decorators must be attached to a class element.\",\n TupleExpressionBarIncorrectEndSyntaxType:\n \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType:\n \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType:\n \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder.\",\n UnexpectedAwaitAfterPipelineBody:\n 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport:\n \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({ keyword }: { keyword: string }) =>\n `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator:\n \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration:\n \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget:\n \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator:\n \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected,\n }: {\n expected?: string | null;\n unexpected?: string | null;\n }) =>\n `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${\n expected ? `, expected \"${expected}\"` : \"\"\n }`,\n UnexpectedTokenUnaryExponentiation:\n \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration:\n \"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.\",\n UnexpectedVoidPattern: \"Unexpected void binding.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport:\n \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport:\n \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport:\n \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName,\n }: {\n target: string;\n onlyValidPropertyName: string;\n }) =>\n `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator:\n \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator:\n \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper:\n \"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\",\n UnterminatedComment: \"Unterminated comment.\",\n UnterminatedRegExp: \"Unterminated regular expression.\",\n UnterminatedString: \"Unterminated string constant.\",\n UnterminatedTemplate: \"Unterminated template.\",\n UsingDeclarationExport: \"Using declaration cannot be exported.\",\n UsingDeclarationHasBindingPattern:\n \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Identifier '${identifierName}' has already been declared.`,\n VoidPatternCatchClauseParam:\n \"A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.\",\n VoidPatternInitializer: \"A void binding may not have an initializer.\",\n YieldBindingIdentifier:\n \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n YieldNotInGeneratorFunction:\n \"'yield' is only allowed within generator functions.\",\n ZeroDigitNumericSeparator:\n \"Numeric separator can not be used after leading 0.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error\";\n\nexport default {\n StrictDelete: \"Deleting local variable in strict mode.\",\n\n // `referenceName` is the StringValue[1] of an IdentifierReference[2], which\n // is represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-IdentifierReference\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArguments: ({ referenceName }: { referenceName: string }) =>\n `Assigning to '${referenceName}' in strict mode.`,\n\n // `bindingName` is the StringValue[1] of a BindingIdentifier[2], which is\n // represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-BindingIdentifier\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArgumentsBinding: ({ bindingName }: { bindingName: string }) =>\n `Binding '${bindingName}' in strict mode.`,\n\n StrictFunction:\n \"In strict mode code, functions can only be declared at top level or inside a block.\",\n\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n\n StrictWith: \"'with' in strict mode.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nexport default {\n ParseExpressionEmptyInput:\n \"Unexpected parseExpression() input: The input is empty or contains only comments.\",\n ParseExpressionExpectsEOF: ({ unexpected }: { unexpected: number }) =>\n `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \\`${String.fromCodePoint(unexpected)}\\`.`,\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport const UnparenthesizedPipeBodyDescriptions = new Set([\n \"ArrowFunctionExpression\",\n \"AssignmentExpression\",\n \"ConditionalExpression\",\n \"YieldExpression\",\n] as const);\n\ntype GetSetMemberType> =\n T extends Set ? M : unknown;\n\nexport type UnparenthesizedPipeBodyTypes = GetSetMemberType<\n typeof UnparenthesizedPipeBodyDescriptions\n>;\n\nexport default {\n // This error is only used by the smart-mix proposal\n PipeBodyIsTighter:\n \"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\",\n PipeTopicRequiresHackPipes: process.env.BABEL_8_BREAKING\n ? 'Topic references are only supported when using the `\"proposal\": \"hack\"` version of the pipeline proposal.'\n : 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n PipeTopicUnbound:\n \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({ token }: { token: string }) =>\n `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"${token}\" }.`,\n PipeTopicUnused:\n \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({ type }: { type: UnparenthesizedPipeBodyTypes }) =>\n `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type,\n })}; please wrap it in parentheses.`,\n\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n // Messages whose codes start with “Pipeline” or “PrimaryTopic”\n // are retained for backwards compatibility\n // with the deprecated smart-mix pipe operator proposal plugin.\n // They are subject to removal in a future major version.\n PipelineBodyNoArrow:\n 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression:\n \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression:\n \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused:\n \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed:\n \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n }),\n} satisfies ParseErrorTemplates;\n","import { Position } from \"./util/location.ts\";\n\ntype SyntaxPlugin =\n | \"flow\"\n | \"typescript\"\n | \"jsx\"\n | \"pipelineOperator\"\n | \"placeholders\";\n\ntype ParseErrorCode =\n | \"BABEL_PARSER_SYNTAX_ERROR\"\n | \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\n// Babel uses \"normal\" SyntaxErrors for it's errors, but adds some extra\n// functionality. This functionality is defined in the\n// `ParseErrorSpecification` interface below. We may choose to change to someday\n// give our errors their own full-blown class, but until then this allow us to\n// keep all the desirable properties of SyntaxErrors (like their name in stack\n// traces, etc.), and also allows us to punt on any publicly facing\n// class-hierarchy decisions until Babel 8.\ninterface ParseErrorSpecification {\n // Look, these *could* be readonly, but then Flow complains when we initially\n // set them. We could do a whole dance and make a special interface that's not\n // readonly for when we create the error, then cast it to the readonly\n // interface for public use, but the previous implementation didn't have them\n // as readonly, so let's just not worry about it for now.\n code: ParseErrorCode;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n missingPlugin?: string | string[];\n loc: Position;\n details: ErrorDetails;\n\n // We should consider removing this as it now just contains the same\n // information as `loc.index`.\n pos: number;\n}\n\nexport type ParseError = SyntaxError &\n ParseErrorSpecification;\n\n// By `ParseErrorConstructor`, we mean something like the new-less style\n// `ErrorConstructor`[1], since `ParseError`'s are not themselves actually\n// separate classes from `SyntaxError`'s.\n//\n// 1. https://github.com/microsoft/TypeScript/blob/v4.5.5/lib/lib.es5.d.ts#L1027\nexport type ParseErrorConstructor = (\n loc: Position,\n details: ErrorDetails,\n) => ParseError;\n\ntype ToMessage = (self: ErrorDetails) => string;\n\ntype ParseErrorCredentials = {\n code: string;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n toMessage: ToMessage;\n};\n\nfunction defineHidden(obj: object, key: string, value: unknown) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value,\n });\n}\n\nfunction toParseErrorConstructor({\n toMessage,\n code,\n reasonCode,\n syntaxPlugin,\n}: ParseErrorCredentials): ParseErrorConstructor {\n const hasMissingPlugin =\n reasonCode === \"MissingPlugin\" || reasonCode === \"MissingOneOfPlugins\";\n\n if (!process.env.BABEL_8_BREAKING) {\n const oldReasonCodes: Record = {\n AccessorCannotDeclareThisParameter: \"AccesorCannotDeclareThisParameter\",\n AccessorCannotHaveTypeParameters: \"AccesorCannotHaveTypeParameters\",\n ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:\n \"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference\",\n SetAccessorCannotHaveOptionalParameter:\n \"SetAccesorCannotHaveOptionalParameter\",\n SetAccessorCannotHaveRestParameter: \"SetAccesorCannotHaveRestParameter\",\n SetAccessorCannotHaveReturnType: \"SetAccesorCannotHaveReturnType\",\n };\n if (oldReasonCodes[reasonCode]) {\n reasonCode = oldReasonCodes[reasonCode];\n }\n }\n\n return function constructor(loc: Position, details: ErrorDetails) {\n const error: ParseError = new SyntaxError() as any;\n\n error.code = code as ParseErrorCode;\n error.reasonCode = reasonCode;\n error.loc = loc;\n error.pos = loc.index;\n\n error.syntaxPlugin = syntaxPlugin;\n if (hasMissingPlugin) {\n error.missingPlugin = (details as any).missingPlugin;\n }\n\n type Overrides = {\n loc?: Position;\n details?: ErrorDetails;\n };\n defineHidden(error, \"clone\", function clone(overrides: Overrides = {}) {\n const { line, column, index } = overrides.loc ?? loc;\n return constructor(new Position(line, column, index), {\n ...details,\n ...overrides.details,\n });\n });\n\n defineHidden(error, \"details\", details);\n\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get(this: ParseError): string {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value: string) {\n Object.defineProperty(this, \"message\", { value, writable: true });\n },\n });\n\n return error;\n };\n}\n\ntype ParseErrorTemplate =\n | string\n | ToMessage\n | { message: string | ToMessage; code?: ParseErrorCode };\n\nexport type ParseErrorTemplates = Record;\n\n// This is the templated form of `ParseErrorEnum`.\n//\n// Note: We could factor out the return type calculation into something like\n// `ParseErrorConstructor`, and then we could\n// reuse it in the non-templated form of `ParseErrorEnum`, but TypeScript\n// doesn't seem to drill down that far when showing you the computed type of\n// an object in an editor, so we'll leave it inlined for now.\nexport function ParseErrorEnum(a: TemplateStringsArray): <\n T extends ParseErrorTemplates,\n>(\n parseErrorTemplates: T,\n) => {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage }\n ? T[K][\"message\"] extends ToMessage\n ? Parameters[0]\n : object\n : T[K] extends ToMessage\n ? Parameters[0]\n : object\n >;\n};\n\nexport function ParseErrorEnum(\n parseErrorTemplates: T,\n syntaxPlugin?: SyntaxPlugin,\n): {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage }\n ? T[K][\"message\"] extends ToMessage\n ? Parameters[0]\n : object\n : T[K] extends ToMessage\n ? Parameters[0]\n : object\n >;\n};\n\n// You call `ParseErrorEnum` with a mapping from `ReasonCode`'s to either:\n//\n// 1. a static error message,\n// 2. `toMessage` functions that define additional necessary `details` needed by\n// the `ParseError`, or\n// 3. Objects that contain a `message` of one of the above and overridden `code`\n// and/or `reasonCode`:\n//\n// ParseErrorEnum `optionalSyntaxPlugin` ({\n// ErrorWithStaticMessage: \"message\",\n// ErrorWithDynamicMessage: ({ type } : { type: string }) => `${type}`),\n// ErrorWithOverriddenCodeAndOrReasonCode: {\n// message: ({ type }: { type: string }) => `${type}`),\n// code: \"AN_ERROR_CODE\",\n// ...(BABEL_8_BREAKING ? { } : { reasonCode: \"CustomErrorReasonCode\" })\n// }\n// });\n//\nexport function ParseErrorEnum(\n argument: TemplateStringsArray | ParseErrorTemplates,\n syntaxPlugin?: SyntaxPlugin,\n) {\n // If the first parameter is an array, that means we were called with a tagged\n // template literal. Extract the syntaxPlugin from this, and call again in\n // the \"normalized\" form.\n if (Array.isArray(argument)) {\n return (parseErrorTemplates: ParseErrorTemplates) =>\n ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n\n const ParseErrorConstructors = {} as Record<\n string,\n ParseErrorConstructor\n >;\n\n for (const reasonCode of Object.keys(argument)) {\n const template = (argument as ParseErrorTemplates)[reasonCode];\n const { message, ...rest } =\n typeof template === \"string\"\n ? { message: () => template }\n : typeof template === \"function\"\n ? { message: template }\n : template;\n const toMessage = typeof message === \"string\" ? () => message : message;\n\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage,\n ...(syntaxPlugin ? { syntaxPlugin } : {}),\n ...rest,\n });\n }\n\n return ParseErrorConstructors;\n}\n\nimport ModuleErrors from \"./parse-error/module-errors.ts\";\nimport StandardErrors from \"./parse-error/standard-errors.ts\";\nimport StrictModeErrors from \"./parse-error/strict-mode-errors.ts\";\nimport ParseExpressionErrors from \"./parse-error/parse-expression-errors.ts\";\nimport PipelineOperatorErrors from \"./parse-error/pipeline-operator-errors.ts\";\n\nexport const Errors = {\n ...ParseErrorEnum(ModuleErrors),\n ...ParseErrorEnum(StandardErrors),\n ...ParseErrorEnum(StrictModeErrors),\n ...ParseErrorEnum(ParseExpressionErrors),\n ...ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors),\n};\n\nexport type { LValAncestor } from \"./parse-error/standard-errors.ts\";\n","import type { Plugin } from \"./plugin-utils.ts\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"commonjs\" | \"module\" | \"unambiguous\";\n\nexport interface Options {\n /**\n * By default, import and export declarations can only appear at a program's top level.\n * Setting this option to true allows them anywhere where a statement is allowed.\n */\n allowImportExportEverywhere?: boolean;\n\n /**\n * By default, await use is not allowed outside of an async function.\n * Set this to true to accept such code.\n */\n allowAwaitOutsideFunction?: boolean;\n\n /**\n * By default, a return statement at the top level raises an error.\n * Set this to true to accept such code.\n */\n allowReturnOutsideFunction?: boolean;\n\n /**\n * By default, new.target use is not allowed outside of a function or class.\n * Set this to true to accept such code.\n */\n allowNewTargetOutsideFunction?: boolean;\n\n /**\n * By default, super calls are not allowed outside of a method.\n * Set this to true to accept such code.\n */\n allowSuperOutsideMethod?: boolean;\n\n /**\n * By default, exported identifiers must refer to a declared variable.\n * Set this to true to allow export statements to reference undeclared variables.\n */\n allowUndeclaredExports?: boolean;\n\n /**\n * By default, yield use is not allowed outside of a generator function.\n * Set this to true to accept such code.\n */\n\n allowYieldOutsideFunction?: boolean;\n\n /**\n * By default, Babel parser JavaScript code according to Annex B syntax.\n * Set this to `false` to disable such behavior.\n */\n annexB?: boolean;\n\n /**\n * By default, Babel attaches comments to adjacent AST nodes.\n * When this option is set to false, comments are not attached.\n * It can provide up to 30% performance improvement when the input code has many comments.\n * @babel/eslint-parser will set it for you.\n * It is not recommended to use attachComment: false with Babel transform,\n * as doing so removes all the comments in output code, and renders annotations such as\n * /* istanbul ignore next *\\/ nonfunctional.\n */\n attachComment?: boolean;\n\n /**\n * By default, Babel always throws an error when it finds some invalid code.\n * When this option is set to true, it will store the parsing error and\n * try to continue parsing the invalid input file.\n */\n errorRecovery?: boolean;\n\n /**\n * Indicate the mode the code should be parsed in.\n * Can be one of \"script\", \"commonjs\", \"module\", or \"unambiguous\". Defaults to \"script\".\n * \"unambiguous\" will make @babel/parser attempt to guess, based on the presence\n * of ES6 import or export statements.\n * Files with ES6 imports and exports are considered \"module\" and are otherwise \"script\".\n *\n * Use \"commonjs\" to parse code that is intended to be run in a CommonJS environment such as Node.js.\n */\n sourceType?: SourceType;\n\n /**\n * Correlate output AST nodes with their source filename.\n * Useful when generating code and source maps from the ASTs of multiple input files.\n */\n sourceFilename?: string;\n\n /**\n * By default, all source indexes start from 0.\n * You can provide a start index to alternatively start with.\n * Useful for integration with other source tools.\n */\n startIndex?: number;\n\n /**\n * By default, the first line of code parsed is treated as line 1.\n * You can provide a line number to alternatively start with.\n * Useful for integration with other source tools.\n */\n startLine?: number;\n\n /**\n * By default, the parsed code is treated as if it starts from line 1, column 0.\n * You can provide a column number to alternatively start with.\n * Useful for integration with other source tools.\n */\n startColumn?: number;\n\n /**\n * Array containing the plugins that you want to enable.\n */\n plugins?: Plugin[];\n\n /**\n * Should the parser work in strict mode.\n * Defaults to true if sourceType === 'module'. Otherwise, false.\n */\n strictMode?: boolean;\n\n /**\n * Adds a ranges property to each node: [node.start, node.end]\n */\n ranges?: boolean;\n\n /**\n * Adds all parsed tokens to a tokens property on the File node.\n */\n tokens?: boolean;\n\n /**\n * By default, the parser adds information about parentheses by setting\n * `extra.parenthesized` to `true` as needed.\n * When this option is `true` the parser creates `ParenthesizedExpression`\n * AST nodes instead of using the `extra` property.\n */\n createParenthesizedExpressions?: boolean;\n\n /**\n * The default is false in Babel 7 and true in Babel 8\n * Set this to true to parse it as an `ImportExpression` node.\n * Otherwise `import(foo)` is parsed as `CallExpression(Import, [Identifier(foo)])`.\n */\n createImportExpressions?: boolean;\n}\n\nexport const enum OptionFlags {\n AllowAwaitOutsideFunction = 1 << 0,\n AllowReturnOutsideFunction = 1 << 1,\n AllowNewTargetOutsideFunction = 1 << 2,\n AllowImportExportEverywhere = 1 << 3,\n AllowSuperOutsideMethod = 1 << 4,\n AllowYieldOutsideFunction = 1 << 5,\n AllowUndeclaredExports = 1 << 6,\n Ranges = 1 << 7,\n Tokens = 1 << 8,\n CreateImportExpressions = 1 << 9,\n CreateParenthesizedExpressions = 1 << 10,\n ErrorRecovery = 1 << 11,\n AttachComment = 1 << 12,\n AnnexB = 1 << 13,\n}\n\ntype KeepOptionalKeys = \"sourceFilename\" | \"strictMode\";\nexport type OptionsWithDefaults = Omit, KeepOptionalKeys> &\n Pick;\n\nfunction createDefaultOptions(): OptionsWithDefaults {\n return {\n // Source type (\"script\" or \"module\") for different semantics\n sourceType: \"script\",\n // Source filename.\n sourceFilename: undefined,\n // Index (0-based) from which to start counting source. Useful for\n // integration with other tools.\n startIndex: 0,\n // Column (0-based) from which to start counting source. Useful for\n // integration with other tools.\n startColumn: 0,\n // Line (1-based) from which to start counting source. Useful for\n // integration with other tools.\n startLine: 1,\n // When enabled, await at the top level is not considered an\n // error.\n allowAwaitOutsideFunction: false,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, new.target outside a function or class is not\n // considered an error.\n allowNewTargetOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // When enabled, super outside a method is not considered an error.\n allowSuperOutsideMethod: false,\n // When enabled, export statements can reference undeclared variables.\n allowUndeclaredExports: false,\n allowYieldOutsideFunction: false,\n // An array of plugins to enable\n plugins: [],\n // TODO\n strictMode: undefined,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // Adds all parsed tokens to a `tokens` property on the `File` node\n tokens: false,\n // Whether to create ImportExpression AST nodes (if false\n // `import(foo)` will be parsed as CallExpression(Import, [Identifier(foo)])\n createImportExpressions: process.env.BABEL_8_BREAKING ? true : false,\n // Whether to create ParenthesizedExpression AST nodes (if false\n // the parser sets extra.parenthesized on the expression nodes instead).\n createParenthesizedExpressions: false,\n // When enabled, errors are attached to the AST instead of being directly thrown.\n // Some errors will still throw, because @babel/parser can't always recover.\n errorRecovery: false,\n // When enabled, comments will be attached to adjacent AST nodes as one of\n // `leadingComments`, `trailingComments` and `innerComments`. The comment attachment\n // is vital to preserve comments after transform. If you don't print AST back,\n // consider set this option to `false` for performance\n attachComment: true,\n // When enabled, the parser will support Annex B syntax.\n // https://tc39.es/ecma262/#sec-additional-ecmascript-features-for-web-browsers\n annexB: true,\n };\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts?: Options | null): OptionsWithDefaults {\n // https://github.com/babel/babel/pull/16918\n // `options` is accessed frequently, please make sure it is a fast object.\n // `%ToFastProperties` can make it a fast object, but the performance is the same as the slow object.\n const options: any = createDefaultOptions();\n\n if (opts == null) {\n return options;\n }\n if (opts.annexB != null && opts.annexB !== false) {\n throw new Error(\"The `annexB` option can only be set to `false`.\");\n }\n\n for (const key of Object.keys(options) as (keyof Options)[]) {\n if (opts[key] != null) options[key] = opts[key];\n }\n\n if (options.startLine === 1) {\n if (opts.startIndex == null && options.startColumn > 0) {\n options.startIndex = options.startColumn;\n } else if (opts.startColumn == null && options.startIndex > 0) {\n options.startColumn = options.startIndex;\n }\n } else if (opts.startColumn == null || opts.startIndex == null) {\n if (opts.startIndex != null || process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"With a `startLine > 1` you must also specify `startIndex` and `startColumn`.\",\n );\n }\n }\n\n if (options.sourceType === \"commonjs\") {\n if (opts.allowAwaitOutsideFunction != null) {\n throw new Error(\n \"The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`.\",\n );\n }\n if (opts.allowReturnOutsideFunction != null) {\n throw new Error(\n \"`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`.\",\n );\n }\n if (opts.allowNewTargetOutsideFunction != null) {\n throw new Error(\n \"`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`.\",\n );\n }\n }\n\n return options;\n}\n","import type { TokenType } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type * as N from \"../types.ts\";\nimport type { Node as NodeType, NodeBase } from \"../types.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { BindingFlag } from \"../util/scopeflags.ts\";\nimport { OptionFlags } from \"../options.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type { ParseResult, File } from \"../index.ts\";\n\nconst { defineProperty } = Object;\nconst toUnenumerable = (object: any, key: string) => {\n if (object) {\n defineProperty(object, key, { enumerable: false, value: object[key] });\n }\n};\n\nfunction toESTreeLocation(node: any) {\n toUnenumerable(node.loc.start, \"index\");\n toUnenumerable(node.loc.end, \"index\");\n\n return node;\n}\n\nexport default (superClass: typeof Parser) =>\n class ESTreeParserMixin extends superClass implements Parser {\n parse(): ParseResult {\n const file = toESTreeLocation(super.parse());\n\n if (this.optionFlags & OptionFlags.Tokens) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n\n return file;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseRegExpLiteral({ pattern, flags }): N.EstreeRegExpLiteral {\n let regex: RegExp | null = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (_) {\n // In environments that don't support these flags value will\n // be null as the regex can't be represented natively.\n }\n const node = this.estreeParseLiteral(regex);\n node.regex = { pattern, flags };\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseBigIntLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n let bigInt: bigint | null;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseDecimalLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/experimental/decimal.md\n // todo: use BigDecimal when node supports it.\n const decimal: null = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n\n return node;\n }\n\n estreeParseLiteral(value: any) {\n // @ts-expect-error ESTree plugin changes node types\n return this.parseLiteral(value, \"Literal\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseStringLiteral(value: any): N.Node {\n return this.estreeParseLiteral(value);\n }\n\n parseNumericLiteral(value: any): any {\n return this.estreeParseLiteral(value);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseNullLiteral(): N.Node {\n return this.estreeParseLiteral(null);\n }\n\n parseBooleanLiteral(value: boolean): N.BooleanLiteral {\n // @ts-expect-error ESTree plugin changes node types\n return this.estreeParseLiteral(value);\n }\n\n // https://github.com/estree/estree/blob/master/es2020.md#chainexpression\n estreeParseChainExpression(\n node: N.Expression,\n endLoc: Position,\n ): N.EstreeChainExpression {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNodeAt(chain, \"ChainExpression\", endLoc);\n }\n\n // Cast a Directive to an ExpressionStatement. Mutates the input Directive.\n directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n const expression = directive.value as any as N.EstreeLiteral;\n // @ts-expect-error delete non-optional properties\n delete directive.value;\n\n this.castNodeTo(expression, \"Literal\");\n expression.raw = expression.extra!.raw;\n expression.value = expression.extra!.expressionValue;\n\n const stmt = this.castNodeTo(directive, \"ExpressionStatement\");\n stmt.expression = expression;\n stmt.directive = expression.extra!.rawValue;\n\n delete expression.extra;\n\n return stmt;\n }\n\n /**\n * The TS-ESLint always define optional AST properties, here we provide the\n * default value for such properties immediately after `finishNode` was invoked.\n * This hook will be implemented by the typescript plugin.\n *\n * Note: This hook should be manually invoked when we change the `type` of a given AST\n * node, to ensure that the optional properties are correctly filled.\n * @param node The AST node finished by finishNode\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fillOptionalPropertiesForTSESLint(node: NodeType) {}\n\n cloneEstreeStringLiteral(node: N.EstreeLiteral): N.EstreeLiteral {\n const { start, end, loc, range, raw, value } = node;\n const cloned = Object.create(node.constructor.prototype);\n cloned.type = \"Literal\";\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n cloned.raw = raw;\n cloned.value = value;\n return cloned;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n if (node != null && this.isObjectProperty(node)) {\n // @ts-expect-error plugin typings\n this.checkDeclaration((node as unknown as N.EstreeProperty).value);\n } else {\n super.checkDeclaration(node);\n }\n }\n\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return (method as unknown as N.EstreeMethodDefinition).value.params;\n }\n\n isValidDirective(stmt: N.Statement): stmt is N.ExpressionStatement {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n typeof stmt.expression.value === \"string\" &&\n !stmt.expression.extra?.parenthesized\n );\n }\n\n parseBlockBody(\n node: N.BlockStatementLike,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n super.parseBlockBody(\n node,\n allowDirectives,\n topLevel,\n end,\n afterBlockParse,\n );\n\n const directiveStatements = node.directives.map(d =>\n this.directiveToStmt(d),\n );\n // @ts-expect-error estree plugin typings\n node.body = directiveStatements.concat(node.body);\n // @ts-expect-error delete non-optional properties\n delete node.directives;\n }\n\n parsePrivateName(): any {\n const node = super.parsePrivateName();\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n\n convertPrivateNameToPrivateIdentifier(\n node: N.PrivateName,\n ): N.EstreePrivateIdentifier {\n const name = super.getPrivateNameSV(node);\n // @ts-expect-error delete non-optional properties\n delete node.id;\n // @ts-expect-error mutate AST types\n node.name = name;\n return this.castNodeTo(node, \"PrivateIdentifier\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n isPrivateName(node: N.Node): node is N.EstreePrivateIdentifier {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n\n // @ts-expect-error ESTree plugin changes node types\n getPrivateNameSV(node: N.EstreePrivateIdentifier): string {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node as unknown as N.PrivateName);\n }\n }\n return node.name;\n }\n\n // @ts-expect-error plugin may override interfaces\n parseLiteral(value: any, type: T[\"type\"]): T {\n const node = super.parseLiteral(value, type);\n // @ts-expect-error mutating AST types\n node.raw = node.extra.raw;\n delete node.extra;\n\n return node;\n }\n\n parseFunctionBody(\n node: N.Function,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n\n // @ts-expect-error plugin may override interfaces\n parseMethod<\n T extends N.ClassPrivateMethod | N.ObjectMethod | N.ClassMethod,\n >(\n node: Undone,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ):\n | N.EstreeProperty\n | N.EstreeMethodDefinition\n | N.EstreeTSAbstractMethodDefinition {\n let funcNode = this.startNode();\n funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n funcNode = super.parseMethod(\n funcNode,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error delete non-optional properties\n delete funcNode.kind;\n const { typeParameters } = node;\n if (typeParameters) {\n delete node.typeParameters;\n funcNode.typeParameters = typeParameters;\n this.resetStartLocationFromNode(funcNode, typeParameters);\n }\n const valueNode = this.castNodeTo(\n funcNode as N.MethodLike,\n process.env.BABEL_8_BREAKING &&\n this.hasPlugin(\"typescript\") &&\n !funcNode.body\n ? \"TSEmptyBodyFunctionExpression\"\n : \"FunctionExpression\",\n );\n (\n node as unknown as Undone<\n | N.EstreeProperty\n | N.EstreeMethodDefinition\n | N.EstreeTSAbstractMethodDefinition\n >\n ).value = valueNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n if (process.env.BABEL_8_BREAKING && this.hasPlugin(\"typescript\")) {\n // @ts-expect-error todo(flow->ts) property not defined for all types in union\n if (node.abstract) {\n // @ts-expect-error remove abstract from TSAbstractMethodDefinition\n delete node.abstract;\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"TSAbstractMethodDefinition\",\n );\n }\n }\n if (type === \"ObjectMethod\") {\n if ((node as any as N.ObjectMethod).kind === \"method\") {\n (node as any as N.EstreeProperty).kind = \"init\";\n }\n (node as any as N.EstreeProperty).shorthand = false;\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"Property\",\n );\n } else {\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"MethodDefinition\",\n );\n }\n }\n\n nameIsConstructor(key: N.Expression | N.PrivateName): boolean {\n if (key.type === \"Literal\") return key.value === \"constructor\";\n return super.nameIsConstructor(key);\n }\n\n parseClassProperty(...args: [N.ClassProperty]): any {\n const propertyNode = super.parseClassProperty(...args);\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as unknown as N.EstreePropertyDefinition;\n }\n }\n if (\n process.env.BABEL_8_BREAKING &&\n propertyNode.abstract &&\n this.hasPlugin(\"typescript\")\n ) {\n delete propertyNode.abstract;\n this.castNodeTo(propertyNode, \"TSAbstractPropertyDefinition\");\n } else {\n this.castNodeTo(propertyNode, \"PropertyDefinition\");\n }\n return propertyNode;\n }\n\n parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {\n const propertyNode = super.parseClassPrivateProperty(...args);\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as unknown as N.EstreePropertyDefinition;\n }\n }\n if (\n process.env.BABEL_8_BREAKING &&\n propertyNode.abstract &&\n this.hasPlugin(\"typescript\")\n ) {\n this.castNodeTo(propertyNode, \"TSAbstractPropertyDefinition\");\n } else {\n this.castNodeTo(propertyNode, \"PropertyDefinition\");\n }\n propertyNode.computed = false;\n return propertyNode;\n }\n\n parseClassAccessorProperty(\n this: Parser,\n node: N.ClassAccessorProperty,\n ): any {\n const accessorPropertyNode = super.parseClassAccessorProperty(node);\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return accessorPropertyNode;\n }\n }\n if (accessorPropertyNode.abstract && this.hasPlugin(\"typescript\")) {\n delete accessorPropertyNode.abstract;\n this.castNodeTo(accessorPropertyNode, \"TSAbstractAccessorProperty\");\n } else {\n this.castNodeTo(accessorPropertyNode, \"AccessorProperty\");\n }\n return accessorPropertyNode;\n }\n\n parseObjectProperty(\n prop: N.ObjectProperty,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n const node: N.EstreeProperty = super.parseObjectProperty(\n prop,\n startLoc,\n isPattern,\n refExpressionErrors,\n ) as any;\n\n if (node) {\n node.kind = \"init\";\n this.castNodeTo(node, \"Property\");\n }\n\n return node as any;\n }\n\n finishObjectProperty(node: Undone): N.ObjectProperty {\n (node as unknown as Undone).kind = \"init\";\n return this.finishNode(\n node as unknown as Undone,\n \"Property\",\n ) as any;\n }\n\n isValidLVal(\n type: string,\n disallowCallExpression: boolean,\n isUnparenthesizedInAssign: boolean,\n binding: BindingFlag,\n ) {\n return type === \"Property\"\n ? \"value\"\n : super.isValidLVal(\n type,\n disallowCallExpression,\n isUnparenthesizedInAssign,\n binding,\n );\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (node != null && this.isObjectProperty(node)) {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: N.Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (\n prop.type === \"Property\" &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n this.raise(Errors.PatternHasAccessor, prop.key);\n } else if (prop.type === \"Property\" && prop.method) {\n this.raise(Errors.PatternHasMethod, prop.key);\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n\n finishCallExpression(\n unfinished: Undone,\n optional: boolean,\n ): T {\n const node = super.finishCallExpression(unfinished, optional);\n\n if (node.callee.type === \"Import\") {\n this.castNodeTo(node, \"ImportExpression\");\n (node as N.Node as N.EstreeImportExpression).source = node\n .arguments[0] as N.Expression;\n (node as N.Node as N.EstreeImportExpression).options =\n (node.arguments[1] as N.Expression) ?? null;\n if (!process.env.BABEL_8_BREAKING) {\n // compatibility with previous ESTree AST\n (node as N.Node as N.EstreeImportExpression).attributes =\n (node.arguments[1] as N.Expression) ?? null;\n }\n // arguments isn't optional in the type definition\n // @ts-expect-error delete non-optional properties\n delete node.arguments;\n // callee isn't optional in the type definition\n // @ts-expect-error delete non-optional properties\n delete node.callee;\n } else if (node.type === \"OptionalCallExpression\") {\n this.castNodeTo(node, \"CallExpression\");\n } else {\n node.optional = false;\n }\n\n return node;\n }\n\n toReferencedArguments(\n node:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.EstreeImportExpression,\n /* isParenthesizedExpr?: boolean, */\n ) {\n // ImportExpressions do not have an arguments array.\n if (node.type === \"ImportExpression\") {\n return;\n }\n\n super.toReferencedArguments(node);\n }\n\n parseExport(\n unfinished: Undone,\n decorators: N.Decorator[] | null,\n ) {\n const exportStartLoc = this.state.lastTokStartLoc!;\n const node = super.parseExport(unfinished, decorators);\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n // @ts-expect-error mutating AST types\n node.exported = null;\n break;\n\n case \"ExportNamedDeclaration\":\n if (\n node.specifiers.length === 1 &&\n node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n ) {\n this.castNodeTo(node, \"ExportAllDeclaration\");\n // @ts-expect-error mutating AST types\n node.exported = node.specifiers[0].exported;\n // @ts-expect-error The ESTree AST shape differs from the Babel AST\n delete node.specifiers;\n }\n\n // fallthrough\n case \"ExportDefaultDeclaration\":\n {\n const { declaration } = node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n // @ts-expect-error comparing undefined and number\n declaration.decorators?.length > 0 &&\n // decorator comes before export\n declaration.start === node.start\n ) {\n this.resetStartLocation(\n node,\n // For compatibility with ESLint's keyword-spacing rule, which assumes that an\n // export declaration must start with export.\n // https://github.com/babel/babel/issues/15085\n // Here we reset export declaration's start to be the start of the export token\n exportStartLoc,\n );\n }\n }\n\n break;\n }\n\n return node;\n }\n\n stopParseSubscript(base: N.Expression, state: N.ParseSubscriptState) {\n const node = super.stopParseSubscript(base, state);\n if (state.optionalChainMember) {\n return this.estreeParseChainExpression(node, base.loc.end);\n }\n return node;\n }\n\n parseMember(\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n computed: boolean,\n optional: boolean,\n ) {\n const node = super.parseMember(base, startLoc, state, computed, optional);\n if (node.type === \"OptionalMemberExpression\") {\n this.castNodeTo(node, \"MemberExpression\");\n } else {\n node.optional = false;\n }\n return node;\n }\n\n isOptionalMemberExpression(node: N.Node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n\n hasPropertyAsPrivateName(node: N.Node): boolean {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n isObjectProperty(node: N.Node): node is N.EstreeProperty {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n isObjectMethod(node: N.Node): node is N.EstreeProperty {\n return (\n node.type === \"Property\" &&\n (node.method || node.kind === \"get\" || node.kind === \"set\")\n );\n }\n\n /* ============================================================ *\n * parser/node.ts *\n * ============================================================ */\n\n castNodeTo(\n node: N.Node,\n type: T,\n ): Extract {\n const result = super.castNodeTo(node, type);\n this.fillOptionalPropertiesForTSESLint(result);\n return result;\n }\n\n cloneIdentifier(node: T): T {\n const cloned = super.cloneIdentifier(node);\n this.fillOptionalPropertiesForTSESLint(cloned);\n return cloned;\n }\n\n cloneStringLiteral<\n T extends N.EstreeLiteral | N.StringLiteral | N.Placeholder,\n >(node: T): T {\n if (node.type === \"Literal\") {\n return this.cloneEstreeStringLiteral(node) as T;\n }\n return super.cloneStringLiteral(node);\n }\n\n finishNodeAt(\n node: Undone,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n\n // Override for TS-ESLint that does not allow optional AST properties\n finishNode(node: Undone, type: T[\"type\"]): T {\n const result = super.finishNode(node, type);\n this.fillOptionalPropertiesForTSESLint(result);\n return result;\n }\n\n resetStartLocation(node: N.Node, startLoc: Position) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc!,\n ): void {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n };\n","// The token context is used in JSX plugin to track\n// jsx tag / jsx text / normal JavaScript expression\n\nexport class TokContext {\n constructor(token: string, preserveSpace?: boolean) {\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n\n token: string;\n preserveSpace: boolean;\n}\n\nconst types: Record = {\n brace: new TokContext(\"{\"), // normal JavaScript expression\n j_oTag: new TokContext(\"...\", true), // JSX expressions\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n types.template = new TokContext(\"`\", true);\n}\n\nexport { types };\n","import { types as tc, type TokContext } from \"./context.ts\";\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between 1) binary\n// expression (<) and JSX Tag start (); 2) object literal and JSX\n// texts. It is set on the `updateContext` function in the JSX plugin.\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n keyword?: string;\n beforeExpr?: boolean;\n startsExpr?: boolean;\n rightAssociative?: boolean;\n isLoop?: boolean;\n isAssign?: boolean;\n prefix?: boolean;\n postfix?: boolean;\n binop?: number | null;\n};\n\n// Internally the tokenizer stores token as a number\nexport type TokenType = number;\n\n// The `ExportedTokenType` is exported via `tokTypes` and accessible\n// when `tokens: true` is enabled. Unlike internal token type, it provides\n// metadata of the tokens.\nexport class ExportedTokenType {\n label: string;\n keyword: string | undefined | null;\n beforeExpr: boolean;\n startsExpr: boolean;\n rightAssociative: boolean;\n isLoop: boolean;\n isAssign: boolean;\n prefix: boolean;\n postfix: boolean;\n binop: number | undefined | null;\n // todo(Babel 8): remove updateContext from exposed token layout\n declare updateContext: ((context: TokContext[]) => void) | undefined | null;\n\n constructor(label: string, conf: TokenOptions = {}) {\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.rightAssociative = !!conf.rightAssociative;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop != null ? conf.binop : null;\n if (!process.env.BABEL_8_BREAKING) {\n this.updateContext = null;\n }\n }\n}\n\n// A map from keyword/keyword-like string value to the token type\nexport const keywords = new Map();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n options.keyword = name;\n const token = createToken(name, options);\n keywords.set(name, token);\n return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n return createToken(name, { beforeExpr, binop });\n}\n\nlet tokenTypeCounter = -1;\nexport const tokenTypes: ExportedTokenType[] = [];\nconst tokenLabels: string[] = [];\nconst tokenBinops: number[] = [];\nconst tokenBeforeExprs: boolean[] = [];\nconst tokenStartsExprs: boolean[] = [];\nconst tokenPrefixes: boolean[] = [];\n\nfunction createToken(name: string, options: TokenOptions = {}): TokenType {\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(name, options));\n\n return tokenTypeCounter;\n}\n\nfunction createKeywordLike(\n name: string,\n options: TokenOptions = {},\n): TokenType {\n ++tokenTypeCounter;\n keywords.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n // In the exported token type, we set the label as \"name\" for backward compatibility with Babel 7\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n\n return tokenTypeCounter;\n}\n\n// For performance the token type helpers depend on the following declarations order.\n// When adding new token types, please also check if the token helpers need update.\n\nexport type InternalTokenTypes = typeof tt;\n\nexport const tt = {\n // Punctuation token types.\n bracketL: createToken(\"[\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n bracketHashL: createToken(\"#[\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n bracketBarL: createToken(\"[|\", { beforeExpr, startsExpr }),\n bracketR: createToken(\"]\"),\n // TODO: Remove this in Babel 8\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n braceBarL: createToken(\"{|\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n braceHashL: createToken(\"#{\", { beforeExpr, startsExpr }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", { beforeExpr, startsExpr }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", { beforeExpr }),\n semi: createToken(\";\", { beforeExpr }),\n colon: createToken(\":\", { beforeExpr }),\n doubleColon: createToken(\"::\", { beforeExpr }),\n dot: createToken(\".\"),\n question: createToken(\"?\", { beforeExpr }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", { beforeExpr }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", { beforeExpr }),\n backQuote: createToken(\"`\", { startsExpr }),\n dollarBraceL: createToken(\"${\", { beforeExpr, startsExpr }),\n // start: isTemplate\n templateTail: createToken(\"...`\", { startsExpr }),\n templateNonTail: createToken(\"...${\", { beforeExpr, startsExpr }),\n // end: isTemplate\n at: createToken(\"@\"),\n hash: createToken(\"#\", { startsExpr }),\n\n // Special hashbang token.\n interpreterDirective: createToken(\"#!...\"),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n // start: isAssign\n eq: createToken(\"=\", { beforeExpr, isAssign }),\n assign: createToken(\"_=\", { beforeExpr, isAssign }),\n slashAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // These are only needed to support % and ^ as a Hack-pipe topic token.\n // When the proposal settles on a token, the others can be merged with\n // tt.assign.\n xorAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n moduloAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // end: isAssign\n\n incDec: createToken(\"++/--\", { prefix, postfix, startsExpr }),\n bang: createToken(\"!\", { beforeExpr, prefix, startsExpr }),\n tilde: createToken(\"~\", { beforeExpr, prefix, startsExpr }),\n\n // More possible topic tokens.\n // When the proposal settles on a token, at least one of these may be removed.\n doubleCaret: createToken(\"^^\", { startsExpr }),\n doubleAt: createToken(\"@@\", { startsExpr }),\n\n // start: isBinop\n pipeline: createBinop(\"|>\", 0),\n nullishCoalescing: createBinop(\"??\", 1),\n logicalOR: createBinop(\"||\", 1),\n logicalAND: createBinop(\"&&\", 2),\n bitwiseOR: createBinop(\"|\", 3),\n bitwiseXOR: createBinop(\"^\", 4),\n bitwiseAND: createBinop(\"&\", 5),\n equality: createBinop(\"==/!=/===/!==\", 6),\n lt: createBinop(\"/<=/>=\", 7),\n gt: createBinop(\"/<=/>=\", 7),\n relational: createBinop(\"/<=/>=\", 7),\n bitShift: createBinop(\"<>/>>>\", 8),\n bitShiftL: createBinop(\"<>/>>>\", 8),\n bitShiftR: createBinop(\"<>/>>>\", 8),\n plusMin: createToken(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n // startsExpr: required by v8intrinsic plugin\n modulo: createToken(\"%\", { binop: 10, startsExpr }),\n // unset `beforeExpr` as it can be `function *`\n star: createToken(\"*\", { binop: 10 }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true,\n }),\n\n // Keywords\n // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n // when new keywords are added\n // start: isLiteralPropertyName\n // start: isKeyword\n _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n // end: isBinop\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", { beforeExpr }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", { beforeExpr }),\n _else: createKeyword(\"else\", { beforeExpr }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", { startsExpr }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", { beforeExpr }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n _this: createKeyword(\"this\", { startsExpr }),\n _super: createKeyword(\"super\", { startsExpr }),\n _class: createKeyword(\"class\", { startsExpr }),\n _extends: createKeyword(\"extends\", { beforeExpr }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", { startsExpr }),\n _null: createKeyword(\"null\", { startsExpr }),\n _true: createKeyword(\"true\", { startsExpr }),\n _false: createKeyword(\"false\", { startsExpr }),\n _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n // start: isLoop\n _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n _for: createKeyword(\"for\", { isLoop }),\n _while: createKeyword(\"while\", { isLoop }),\n // end: isLoop\n // end: isKeyword\n\n // Primary literals\n // start: isIdentifier\n _as: createKeywordLike(\"as\", { startsExpr }),\n _assert: createKeywordLike(\"assert\", { startsExpr }),\n _async: createKeywordLike(\"async\", { startsExpr }),\n _await: createKeywordLike(\"await\", { startsExpr }),\n _defer: createKeywordLike(\"defer\", { startsExpr }),\n _from: createKeywordLike(\"from\", { startsExpr }),\n _get: createKeywordLike(\"get\", { startsExpr }),\n _let: createKeywordLike(\"let\", { startsExpr }),\n _meta: createKeywordLike(\"meta\", { startsExpr }),\n _of: createKeywordLike(\"of\", { startsExpr }),\n _sent: createKeywordLike(\"sent\", { startsExpr }),\n _set: createKeywordLike(\"set\", { startsExpr }),\n _source: createKeywordLike(\"source\", { startsExpr }),\n _static: createKeywordLike(\"static\", { startsExpr }),\n _using: createKeywordLike(\"using\", { startsExpr }),\n _yield: createKeywordLike(\"yield\", { startsExpr }),\n\n // Flow and TypeScript Keywordlike\n _asserts: createKeywordLike(\"asserts\", { startsExpr }),\n _checks: createKeywordLike(\"checks\", { startsExpr }),\n _exports: createKeywordLike(\"exports\", { startsExpr }),\n _global: createKeywordLike(\"global\", { startsExpr }),\n _implements: createKeywordLike(\"implements\", { startsExpr }),\n _intrinsic: createKeywordLike(\"intrinsic\", { startsExpr }),\n _infer: createKeywordLike(\"infer\", { startsExpr }),\n _is: createKeywordLike(\"is\", { startsExpr }),\n _mixins: createKeywordLike(\"mixins\", { startsExpr }),\n _proto: createKeywordLike(\"proto\", { startsExpr }),\n _require: createKeywordLike(\"require\", { startsExpr }),\n _satisfies: createKeywordLike(\"satisfies\", { startsExpr }),\n // start: isTSTypeOperator\n _keyof: createKeywordLike(\"keyof\", { startsExpr }),\n _readonly: createKeywordLike(\"readonly\", { startsExpr }),\n _unique: createKeywordLike(\"unique\", { startsExpr }),\n // end: isTSTypeOperator\n // start: isTSDeclarationStart\n _abstract: createKeywordLike(\"abstract\", { startsExpr }),\n _declare: createKeywordLike(\"declare\", { startsExpr }),\n _enum: createKeywordLike(\"enum\", { startsExpr }),\n _module: createKeywordLike(\"module\", { startsExpr }),\n _namespace: createKeywordLike(\"namespace\", { startsExpr }),\n // start: isFlowInterfaceOrTypeOrOpaque\n _interface: createKeywordLike(\"interface\", { startsExpr }),\n _type: createKeywordLike(\"type\", { startsExpr }),\n // end: isTSDeclarationStart\n _opaque: createKeywordLike(\"opaque\", { startsExpr }),\n // end: isFlowInterfaceOrTypeOrOpaque\n name: createToken(\"name\", { startsExpr }),\n\n // placeholder plugin\n placeholder: createToken(\"%%\", { startsExpr }),\n // end: isIdentifier\n\n string: createToken(\"string\", { startsExpr }),\n num: createToken(\"num\", { startsExpr }),\n bigint: createToken(\"bigint\", { startsExpr }),\n // TODO: Remove this in Babel 8\n decimal: createToken(\"decimal\", { startsExpr }),\n // end: isLiteralPropertyName\n regexp: createToken(\"regexp\", { startsExpr }),\n privateName: createToken(\"#name\", { startsExpr }),\n eof: createToken(\"eof\"),\n\n // jsx plugin\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", { beforeExpr }),\n jsxTagStart: createToken(\"jsxTagStart\", { startsExpr }),\n jsxTagEnd: createToken(\"jsxTagEnd\"),\n} as const;\n\nexport function tokenIsIdentifier(token: TokenType): boolean {\n return token >= tt._as && token <= tt.placeholder;\n}\n\nexport function tokenKeywordOrIdentifierIsKeyword(token: TokenType): boolean {\n // we can remove the token >= tt._in check when we\n // know a token is either keyword or identifier\n return token <= tt._while;\n}\n\nexport function tokenIsKeywordOrIdentifier(token: TokenType): boolean {\n return token >= tt._in && token <= tt.placeholder;\n}\n\nexport function tokenIsLiteralPropertyName(token: TokenType): boolean {\n return token >= tt._in && token <= tt.decimal;\n}\n\nexport function tokenComesBeforeExpression(token: TokenType): boolean {\n return tokenBeforeExprs[token];\n}\n\nexport function tokenCanStartExpression(token: TokenType): boolean {\n return tokenStartsExprs[token];\n}\n\nexport function tokenIsAssignment(token: TokenType): boolean {\n return token >= tt.eq && token <= tt.moduloAssign;\n}\n\nexport function tokenIsFlowInterfaceOrTypeOrOpaque(token: TokenType): boolean {\n return token >= tt._interface && token <= tt._opaque;\n}\n\nexport function tokenIsLoop(token: TokenType): boolean {\n return token >= tt._do && token <= tt._while;\n}\n\nexport function tokenIsKeyword(token: TokenType): boolean {\n return token >= tt._in && token <= tt._while;\n}\n\nexport function tokenIsOperator(token: TokenType): boolean {\n return token >= tt.pipeline && token <= tt._instanceof;\n}\n\nexport function tokenIsPostfix(token: TokenType): boolean {\n return token === tt.incDec;\n}\n\nexport function tokenIsPrefix(token: TokenType): boolean {\n return tokenPrefixes[token];\n}\n\nexport function tokenIsTSTypeOperator(token: TokenType): boolean {\n return token >= tt._keyof && token <= tt._unique;\n}\n\nexport function tokenIsTSDeclarationStart(token: TokenType): boolean {\n return token >= tt._abstract && token <= tt._type;\n}\n\nexport function tokenLabelName(token: TokenType): string {\n return tokenLabels[token];\n}\n\nexport function tokenOperatorPrecedence(token: TokenType): number {\n return tokenBinops[token];\n}\n\nexport function tokenIsBinaryOperator(token: TokenType): boolean {\n return tokenBinops[token] !== -1;\n}\n\nexport function tokenIsRightAssociative(token: TokenType): boolean {\n return token === tt.exponent;\n}\n\nexport function tokenIsTemplate(token: TokenType): boolean {\n return token >= tt.templateTail && token <= tt.templateNonTail;\n}\n\nexport function getExportedToken(token: TokenType): ExportedTokenType {\n return tokenTypes[token];\n}\n\nexport function isTokenType(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n tokenTypes[tt.braceR].updateContext = context => {\n context.pop();\n };\n\n tokenTypes[tt.braceL].updateContext =\n tokenTypes[tt.braceHashL].updateContext =\n tokenTypes[tt.dollarBraceL].updateContext =\n context => {\n context.push(tc.brace);\n };\n\n tokenTypes[tt.backQuote].updateContext = context => {\n if (context[context.length - 1] === tc.template) {\n context.pop();\n } else {\n context.push(tc.template);\n }\n };\n\n tokenTypes[tt.jsxTagStart].updateContext = context => {\n context.push(tc.j_expr, tc.j_oTag);\n };\n}\n","// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088f\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7dc\\ua7f1-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1add\\u1ae0-\\u1aeb\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","import * as charCodes from \"charcodes\";\nimport { isIdentifierStart } from \"@babel/helper-validator-identifier\";\n\nexport {\n isIdentifierStart,\n isIdentifierChar,\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(\n current: number,\n next: number,\n next2: number,\n): boolean {\n return (\n current === charCodes.atSign &&\n next === charCodes.atSign &&\n isIdentifierStart(next2)\n );\n}\n\n// This is the comprehensive set of JavaScript reserved words\n// If a word is in this set, it could be a reserved word,\n// depending on sourceType/strictMode/binding info. In other words\n// if a word is not in this set, it is not a reserved word under\n// any circumstance.\nconst reservedWordLikeSet = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n // strict\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n // strictBind\n \"eval\",\n \"arguments\",\n // reservedWorkLike\n \"enum\",\n \"await\",\n]);\n\nexport function canBeReservedWord(word: string): boolean {\n return reservedWordLikeSet.has(word);\n}\n","import { ScopeFlag, BindingFlag } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport type * as N from \"../types.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\nexport const enum NameType {\n // var-declared names in the current lexical scope\n Var = 1 << 0,\n // lexically-declared names in the current lexical scope\n Lexical = 1 << 1,\n // lexically-declared FunctionDeclaration names in the current lexical scope\n Function = 1 << 2,\n}\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n flags: ScopeFlag = 0;\n names = new Map();\n firstLexicalName = \"\";\n\n constructor(flags: ScopeFlag) {\n this.flags = flags;\n }\n}\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler {\n parser: Tokenizer;\n scopeStack: IScope[] = [];\n inModule: boolean;\n undefinedExports = new Map();\n\n constructor(parser: Tokenizer, inModule: boolean) {\n this.parser = parser;\n this.inModule = inModule;\n }\n\n get inTopLevel() {\n return (this.currentScope().flags & ScopeFlag.PROGRAM) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & ScopeFlag.FUNCTION_BASE) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.SUPER) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.DIRECT_SUPER) > 0;\n }\n get allowNewTarget() {\n return (this.currentThisScopeFlags() & ScopeFlag.NEW_TARGET) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & ScopeFlag.CLASS_BASE) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (\n (flags & ScopeFlag.CLASS_BASE) > 0 &&\n (flags & ScopeFlag.FUNCTION_BASE) === 0\n );\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.STATIC_BLOCK) {\n return true;\n }\n if (flags & (ScopeFlag.VAR | ScopeFlag.CLASS_BASE)) {\n // function body, module body, class property initializers\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & ScopeFlag.FUNCTION_BASE) > 0;\n }\n get inBareCaseStatement() {\n return (this.currentScope().flags & ScopeFlag.SWITCH) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n\n createScope(flags: ScopeFlag): Scope {\n return new Scope(flags);\n }\n\n enter(flags: ScopeFlag) {\n /*:: +createScope: (flags:ScopeFlag) => IScope; */\n // @ts-expect-error This method will be overwritten by subclasses\n this.scopeStack.push(this.createScope(flags));\n }\n\n exit(): ScopeFlag {\n const scope = this.scopeStack.pop()!;\n return scope.flags;\n }\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n treatFunctionsAsVarInScope(scope: IScope): boolean {\n return !!(\n scope.flags & (ScopeFlag.FUNCTION_BASE | ScopeFlag.STATIC_BLOCK) ||\n (!this.parser.inModule && scope.flags & ScopeFlag.PROGRAM)\n );\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n let scope = this.currentScope();\n if (\n bindingType & BindingFlag.SCOPE_LEXICAL ||\n bindingType & BindingFlag.SCOPE_FUNCTION\n ) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n\n let type = scope.names.get(name) || 0;\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n type = type | NameType.Function;\n } else {\n if (!scope.firstLexicalName) {\n scope.firstLexicalName = name;\n }\n type = type | NameType.Lexical;\n }\n\n scope.names.set(name, type);\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & BindingFlag.SCOPE_VAR) {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n scope = this.scopeStack[i];\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n scope.names.set(name, (scope.names.get(name) || 0) | NameType.Var);\n this.maybeExportDefined(scope, name);\n\n if (scope.flags & ScopeFlag.VAR) break;\n }\n }\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n maybeExportDefined(scope: IScope, name: string) {\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n checkRedeclarationInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n loc: Position,\n ) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name,\n });\n }\n }\n\n isRedeclaredInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (!(bindingType & BindingFlag.KIND_VALUE)) return false;\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n return scope.names.has(name);\n }\n\n const type = scope.names.get(name) || 0;\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n return (\n (type & NameType.Lexical) > 0 ||\n (!this.treatFunctionsAsVarInScope(scope) && (type & NameType.Var) > 0)\n );\n }\n\n return (\n ((type & NameType.Lexical) > 0 &&\n // Annex B.3.4\n // https://tc39.es/ecma262/#sec-variablestatements-in-catch-blocks\n !(\n scope.flags & ScopeFlag.SIMPLE_CATCH &&\n scope.firstLexicalName === name\n )) ||\n (!this.treatFunctionsAsVarInScope(scope) &&\n (type & NameType.Function) > 0)\n );\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n const topLevelScope = this.scopeStack[0];\n if (!topLevelScope.names.has(name)) {\n this.undefinedExports.set(name, id.loc.start);\n }\n }\n\n currentScope(): IScope {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n\n currentVarScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.VAR) {\n return flags;\n }\n }\n }\n\n // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n currentThisScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (\n flags & (ScopeFlag.VAR | ScopeFlag.CLASS_BASE) &&\n !(flags & ScopeFlag.ARROW)\n ) {\n return flags;\n }\n }\n }\n}\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { NameType, Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, type ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler {\n createScope(flags: ScopeFlag): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (\n bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN &&\n !scope.declareFunctions.has(name)\n ) {\n const type = scope.names.get(name)!;\n return (type & NameType.Function) > 0 || (type & NameType.Lexical) > 0;\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n","/*:: declare var invariant; */\n\nimport type Parser from \"../../parser/index.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsKeyword,\n tokenIsKeywordOrIdentifier,\n tokenIsLiteralPropertyName,\n tokenLabelName,\n tt,\n type TokenType,\n tokenIsFlowInterfaceOrTypeOrOpaque,\n} from \"../../tokenizer/types.ts\";\nimport type * as N from \"../../types.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../../util/identifier.ts\";\nimport FlowScopeHandler from \"./scope.ts\";\nimport { BindingFlag, ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport type { ParseStatementFlag } from \"../../parser/statement.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport type { Undone } from \"../../parser/node.ts\";\nimport type { ClassWithMixin, IJSXParserMixin } from \"../jsx/index.ts\";\n\nconst reservedTypes = new Set([\n \"_\",\n \"any\",\n \"bool\",\n \"boolean\",\n \"empty\",\n \"extends\",\n \"false\",\n \"interface\",\n \"mixed\",\n \"null\",\n \"number\",\n \"static\",\n \"string\",\n \"true\",\n \"typeof\",\n \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = ParseErrorEnum`flow`({\n AmbiguousConditionalArrow:\n \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind:\n \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.\",\n // TODO: When we get proper string enums in typescript make this ReservedType.\n // Not really worth it to do the whole $Values dance with reservedTypes set.\n AssignReservedType: ({ reservedType }: { reservedType: string }) =>\n `Cannot overwrite reserved type ${reservedType}.`,\n DeclareClassElement:\n \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer:\n \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports:\n \"Duplicate `declare module.exports` statement.\",\n EnumBooleanMemberNotInitialized: ({\n memberName,\n enumName,\n }: {\n memberName: string;\n enumName: string;\n }) =>\n `Boolean enum members need to be initialized. Use either \\`${memberName} = true,\\` or \\`${memberName} = false,\\` in enum \\`${enumName}\\`.`,\n EnumDuplicateMemberName: ({\n memberName,\n enumName,\n }: {\n memberName: string;\n enumName: string;\n }) =>\n `Enum member names need to be unique, but the name \\`${memberName}\\` has already been used before in enum \\`${enumName}\\`.`,\n EnumInconsistentMemberValues: ({ enumName }: { enumName: string }) =>\n `Enum \\`${enumName}\\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,\n EnumInvalidExplicitType: ({\n invalidEnumType,\n enumName,\n }: {\n invalidEnumType: string;\n enumName: string;\n }) =>\n `Enum type \\`${invalidEnumType}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidExplicitTypeUnknownSupplied: ({\n enumName,\n }: {\n enumName: string;\n }) =>\n `Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n\n // TODO: When moving to typescript, we should either have each of the\n // following errors only accept the specific strings they want:\n //\n // ...PrimaryType: explicitType: \"string\" | \"number\" | \"boolean\"\n // ...SymbolType: explicitType: \"symbol\"\n // ...UnknownType: explicitType: null\n //\n // Or, alternatively, merge these three errors together into one\n // `EnumInvalidMemberInitializer` error that can accept `EnumExplicitType`\n // without alteration, and then just have its message change based on the\n // explicitType.\n EnumInvalidMemberInitializerPrimaryType: ({\n enumName,\n memberName,\n explicitType,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Enum \\`${enumName}\\` has type \\`${explicitType}\\`, so the initializer of \\`${memberName}\\` needs to be a ${explicitType} literal.`,\n EnumInvalidMemberInitializerSymbolType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Symbol enum members cannot be initialized. Use \\`${memberName},\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerUnknownType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `The enum member initializer for \\`${memberName}\\` needs to be a literal (either a boolean, number, or string) in enum \\`${enumName}\\`.`,\n EnumInvalidMemberName: ({\n enumName,\n memberName,\n suggestion,\n }: {\n enumName: string;\n memberName: string;\n suggestion: string;\n }) =>\n `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \\`${memberName}\\`, consider using \\`${suggestion}\\`, in enum \\`${enumName}\\`.`,\n EnumNumberMemberNotInitialized: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n }) =>\n `Number enum members need to be initialized, e.g. \\`${memberName} = 1\\` in enum \\`${enumName}\\`.`,\n EnumStringMemberInconsistentlyInitialized: ({\n enumName,\n }: {\n enumName: string;\n }) =>\n `String enum members need to consistently either all use initializers, or use no initializers, in enum \\`${enumName}\\`.`,\n GetterMayNotHaveThisParam: \"A getter cannot have a `this` parameter.\",\n ImportReflectionHasImportType:\n \"An `import module` declaration can not use `type` or `typeof` keyword.\",\n ImportTypeShorthandOnlyInPureImport:\n \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\",\n InexactInsideExact:\n \"Explicit inexact syntax cannot appear inside an explicit exact object type.\",\n InexactInsideNonObject:\n \"Explicit inexact syntax cannot appear in class or interface definitions.\",\n InexactVariance: \"Explicit inexact syntax cannot have variance.\",\n InvalidNonTypeImportInDeclareModule:\n \"Imports within a `declare module` body must always be `import type` or `import typeof`.\",\n MissingTypeParamDefault:\n \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule:\n \"`declare module` cannot be used inside another `declare module`.\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment.\",\n PatternIsOptional: {\n message:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n // For consistency in TypeScript and Flow error codes\n ...(!process.env.BABEL_8_BREAKING\n ? { reasonCode: \"OptionalBindingPattern\" }\n : {}),\n },\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance.\",\n ThisParamAnnotationRequired:\n \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor:\n \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst:\n \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeCastInPattern:\n \"The type cast expression is expected to be wrapped with parenthesis.\",\n UnexpectedExplicitInexactInObject:\n \"Explicit inexact syntax must appear at the end of an inexact object.\",\n UnexpectedReservedType: ({ reservedType }: { reservedType: string }) =>\n `Unexpected reserved type ${reservedType}.`,\n UnexpectedReservedUnderscore:\n \"`_` is only allowed as a type argument to call or new.\",\n UnexpectedSpaceBetweenModuloChecks:\n \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType:\n \"Spread operator cannot appear in class or interface definitions.\",\n UnexpectedSubtractionOperand:\n 'Unexpected token, expected \"number\" or \"bigint\".',\n UnexpectedTokenAfterTypeParameter:\n \"Expected an arrow function after this type parameter declaration.\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction:\n \"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.\",\n UnsupportedDeclareExportKind: ({\n unsupportedExportKind,\n suggestion,\n }: {\n unsupportedExportKind: string;\n suggestion: string;\n }) =>\n `\\`declare export ${unsupportedExportKind}\\` is not supported. Use \\`${suggestion}\\` instead.`,\n UnsupportedStatementInDeclareModule:\n \"Only declares and type imports are allowed inside declare module.\",\n UnterminatedFlowComment: \"Unterminated flow-comment.\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n return (\n bodyElement.type === \"DeclareExportAllDeclaration\" ||\n (bodyElement.type === \"DeclareExportDeclaration\" &&\n (!bodyElement.declaration ||\n (bodyElement.declaration.type !== \"TypeAlias\" &&\n bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n );\n}\n\nfunction hasTypeImportKind(\n node: Undone,\n): boolean {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition(\n list: T[],\n test: (c: T, b: number, a: T[]) => boolean | undefined | null,\n): [T[], T[]] {\n const list1: T[] = [];\n const list2: T[] = [];\n for (let i = 0; i < list.length; i++) {\n (test(list[i], i, list) ? list1 : list2).push(list[i]);\n }\n return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\n\ntype EnumContext = {\n enumName: string;\n explicitType: EnumExplicitType;\n memberName: string;\n};\n\ntype EnumMemberInit =\n | {\n type: \"number\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"string\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"boolean\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"invalid\";\n loc: Position;\n }\n | {\n type: \"none\";\n loc: Position;\n };\n\nexport default (superClass: ClassWithMixin) =>\n class FlowParserMixin extends superClass implements Parser {\n // The value of the @flow/@noflow pragma. Initially undefined, transitions\n // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n // past the initial comment.\n flowPragma: void | null | \"flow\" | \"noflow\" = undefined;\n\n getScopeHandler(): new (...args: any) => FlowScopeHandler {\n return FlowScopeHandler;\n }\n\n shouldParseTypes(): boolean {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n\n finishToken(type: TokenType, val: any): void {\n if (\n type !== tt.string &&\n type !== tt.semi &&\n type !== tt.interpreterDirective\n ) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n super.finishToken(type, val);\n }\n\n addComment(comment: N.Comment): void {\n if (this.flowPragma === undefined) {\n // Try to parse a flow pragma.\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) {\n // do nothing\n } else if (matches[1] === \"flow\") {\n this.flowPragma = \"flow\";\n } else if (matches[1] === \"noflow\") {\n this.flowPragma = \"noflow\";\n } else {\n throw new Error(\"Unexpected flow pragma\");\n }\n }\n super.addComment(comment);\n }\n\n flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || tt.colon);\n\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParsePredicate(): N.FlowPredicate {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n this.next(); // eat `%`\n this.expectContextual(tt._checks);\n // Force '%' and 'checks' to be adjacent\n if (this.state.lastTokStartLoc!.index > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc);\n }\n if (this.eat(tt.parenL)) {\n node.value = super.parseExpression();\n this.expect(tt.parenR);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n\n flowParseTypeAndPredicateInitialiser(): [\n N.FlowType | null,\n N.FlowPredicate | null,\n ] {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tt.colon);\n let type = null;\n let predicate = null;\n if (this.match(tt.modulo)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(tt.modulo)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n\n flowParseDeclareClass(\n node: Undone,\n ): N.FlowDeclareClass {\n this.next();\n this.flowParseInterfaceish(node, /*isClass*/ true);\n return this.finishNode(node, \"DeclareClass\");\n }\n\n flowParseDeclareFunction(\n node: Undone,\n ): N.FlowDeclareFunction {\n this.next();\n\n const id = (node.id = this.parseIdentifier());\n\n const typeNode = this.startNode();\n const typeContainer = this.startNode();\n\n if (this.match(tt.lt)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n\n this.expect(tt.parenL);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(tt.parenR);\n\n [typeNode.returnType, node.predicate] =\n this.flowParseTypeAndPredicateInitialiser();\n\n typeContainer.typeAnnotation = this.finishNode(\n typeNode,\n \"FunctionTypeAnnotation\",\n );\n\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n this.resetEndLocation(id);\n this.semicolon();\n\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_FLOW_DECLARE_FN,\n node.id.loc.start,\n );\n\n return this.finishNode(node, \"DeclareFunction\");\n }\n\n flowParseDeclare(\n node: Undone,\n insideModule?: boolean,\n ): N.FlowDeclare {\n if (this.match(tt._class)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(tt._function)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(tt._var)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(tt._module)) {\n if (this.match(tt.dot)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(\n FlowErrors.NestedDeclareModule,\n this.state.lastTokStartLoc!,\n );\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(tt._type)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(tt._opaque)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(tt._interface)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(tt._export)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n }\n throw this.unexpected();\n }\n\n flowParseDeclareVariable(\n node: Undone,\n ): N.FlowDeclareVariable {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier(\n /*allowPrimitiveOverride*/ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_VAR,\n node.id.loc.start,\n );\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n\n flowParseDeclareModule(\n node: Undone,\n ): N.FlowDeclareModule {\n this.scope.enter(ScopeFlag.OTHER);\n\n if (this.match(tt.string)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n\n const bodyNode = (node.body = this.startNode());\n const body: N.Statement[] = (bodyNode.body = []);\n this.expect(tt.braceL);\n while (!this.match(tt.braceR)) {\n const bodyNode = this.startNode();\n\n if (this.match(tt._import)) {\n this.next();\n if (!this.isContextual(tt._type) && !this.match(tt._typeof)) {\n this.raise(\n FlowErrors.InvalidNonTypeImportInDeclareModule,\n this.state.lastTokStartLoc!,\n );\n }\n body.push(super.parseImport(bodyNode));\n } else {\n this.expectContextual(\n tt._declare,\n FlowErrors.UnsupportedStatementInDeclareModule,\n );\n body.push(this.flowParseDeclare(bodyNode, true));\n }\n }\n\n this.scope.exit();\n\n this.expect(tt.braceR);\n\n this.finishNode(bodyNode, \"BlockStatement\");\n\n let kind: \"CommonJS\" | \"ES\" | null = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement);\n }\n if (kind === \"ES\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n\n flowParseDeclareExportDeclaration(\n node: Undone,\n insideModule?: boolean | null,\n ): N.FlowDeclareExportDeclaration {\n this.expect(tt._export);\n\n if (this.eat(tt._default)) {\n if (this.match(tt._function) || this.match(tt._class)) {\n // declare export default class ...\n // declare export default function ...\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n // declare export default [type];\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (\n this.match(tt._const) ||\n this.isLet() ||\n ((this.isContextual(tt._type) || this.isContextual(tt._interface)) &&\n !insideModule)\n ) {\n const label = this.state.value as\n | \"const\"\n | \"let\"\n | \"type\"\n | \"interface\";\n throw this.raise(\n FlowErrors.UnsupportedDeclareExportKind,\n this.state.startLoc,\n {\n unsupportedExportKind: label,\n suggestion: exportSuggestions[label],\n },\n );\n }\n\n if (\n this.match(tt._var) || // declare export var ...\n this.match(tt._function) || // declare export function ...\n this.match(tt._class) || // declare export class ...\n this.isContextual(tt._opaque) // declare export opaque ..\n ) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (\n this.match(tt.star) || // declare export * from ''\n this.match(tt.braceL) || // declare export {} ...\n this.isContextual(tt._interface) || // declare export interface ...\n this.isContextual(tt._type) || // declare export type ...\n this.isContextual(tt._opaque) // declare export opaque type ...\n ) {\n node = this.parseExport(\n node as Undone,\n /* decorators */ null,\n );\n if (node.type === \"ExportNamedDeclaration\") {\n node.default = false;\n delete node.exportKind;\n return this.castNodeTo(\n node as N.ExportNamedDeclaration,\n \"DeclareExportDeclaration\",\n );\n } else {\n return this.castNodeTo(\n node as N.ExportAllDeclaration,\n \"DeclareExportAllDeclaration\",\n );\n }\n }\n }\n\n throw this.unexpected();\n }\n\n flowParseDeclareModuleExports(\n node: Undone,\n ): N.FlowDeclareModuleExports {\n this.next();\n this.expectContextual(tt._exports);\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n\n flowParseDeclareTypeAlias(\n node: Undone,\n ): N.FlowDeclareTypeAlias {\n this.next();\n const finished = this.flowParseTypeAlias(\n node,\n ) as unknown as N.FlowDeclareTypeAlias;\n // Don't do finishNode as we don't want to process comments twice\n this.castNodeTo(finished, \"DeclareTypeAlias\");\n return finished;\n }\n\n flowParseDeclareOpaqueType(\n node: Undone,\n ): N.FlowDeclareOpaqueType {\n this.next();\n const finished = this.flowParseOpaqueType(\n node,\n true,\n ) as unknown as N.FlowDeclareOpaqueType;\n // Don't do finishNode as we don't want to process comments twice\n this.castNodeTo(finished, \"DeclareOpaqueType\");\n return finished;\n }\n\n flowParseDeclareInterface(\n node: Undone,\n ): N.FlowDeclareInterface {\n this.next();\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"DeclareInterface\");\n }\n\n // Interfaces\n\n flowParseInterfaceish(node: Undone, isClass: boolean): void {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ !isClass,\n /* declaration */ true,\n );\n\n this.scope.declareName(\n node.id.name,\n isClass ? BindingFlag.TYPE_FUNCTION : BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.extends = [];\n\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(tt.comma));\n }\n\n if (isClass) {\n node.implements = [];\n node.mixins = [];\n\n if (this.eatContextual(tt._mixins)) {\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n if (this.eatContextual(tt._implements)) {\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: isClass,\n allowExact: false,\n allowSpread: false,\n allowProto: isClass,\n allowInexact: false,\n });\n }\n\n flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n const node = this.startNode();\n\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n\n return this.finishNode(node, \"InterfaceExtends\");\n }\n\n flowParseInterface(node: Undone): N.FlowInterface {\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n\n checkNotUnderscore(word: string) {\n if (word === \"_\") {\n this.raise(\n FlowErrors.UnexpectedReservedUnderscore,\n this.state.startLoc,\n );\n }\n }\n\n checkReservedType(word: string, startLoc: Position, declaration?: boolean) {\n if (!reservedTypes.has(word)) return;\n\n this.raise(\n declaration\n ? FlowErrors.AssignReservedType\n : FlowErrors.UnexpectedReservedType,\n startLoc,\n {\n reservedType: word,\n },\n );\n }\n\n flowParseRestrictedIdentifier(\n liberal?: boolean,\n declaration?: boolean,\n ): N.Identifier {\n this.checkReservedType(\n this.state.value,\n this.state.startLoc,\n declaration,\n );\n return this.parseIdentifier(liberal);\n }\n\n // Type aliases\n\n flowParseTypeAlias(node: Undone): N.FlowTypeAlias {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ false,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.right = this.flowParseTypeInitialiser(tt.eq);\n this.semicolon();\n\n return this.finishNode(node, \"TypeAlias\");\n }\n\n flowParseOpaqueType(\n node: Undone,\n declare: boolean,\n ): N.FlowOpaqueType {\n this.expectContextual(tt._type);\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n // Parse the supertype\n node.supertype = null;\n if (this.match(tt.colon)) {\n node.supertype = this.flowParseTypeInitialiser(tt.colon);\n }\n\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(tt.eq);\n }\n this.semicolon();\n\n return this.finishNode(node, \"OpaqueType\");\n }\n\n // Type annotations\n\n flowParseTypeParameter(requireDefault: boolean = false): N.TypeParameter {\n const nodeStartLoc = this.state.startLoc;\n\n const node = this.startNode();\n\n const variance = this.flowParseVariance();\n\n const ident = this.flowParseTypeAnnotatableIdentifier();\n node.name = ident.name;\n // @ts-expect-error migrate to Babel types\n node.variance = variance;\n // @ts-expect-error migrate to Babel types\n node.bound = ident.typeAnnotation;\n\n if (this.match(tt.eq)) {\n this.eat(tt.eq);\n // @ts-expect-error migrate to Babel types\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc);\n }\n }\n\n return this.finishNode(node, \"TypeParameter\");\n }\n\n flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n const oldInType = this.state.inType;\n const node = this.startNode();\n node.params = [];\n\n this.state.inType = true;\n\n // istanbul ignore else: this condition is already checked at all call sites\n if (this.match(tt.lt) || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n let defaultRequired = false;\n\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n node.params.push(typeParameter);\n\n if (typeParameter.default) {\n defaultRequired = true;\n }\n\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n } while (!this.match(tt.gt));\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n\n // Parse in top level normal context if we are in a JSX context\n flowInTopLevelContext(cb: () => T): T {\n if (this.curContext() !== tc.brace) {\n const oldContext = this.state.context;\n this.state.context = [oldContext[0]];\n try {\n return cb();\n } finally {\n this.state.context = oldContext;\n }\n } else {\n return cb();\n }\n }\n\n // Used when parsing type arguments from ES or JSX productions, where the first token\n // has been created without state.inType. Thus we need to re-scan the lt token.\n flowParseTypeParameterInstantiationInExpression():\n | N.TypeParameterInstantiation\n | undefined {\n if (this.reScan_lt() !== tt.lt) return;\n return this.flowParseTypeParameterInstantiation();\n }\n\n flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n const node = this.startNode();\n const oldInType = this.state.inType;\n\n this.state.inType = true;\n node.params = [];\n this.flowInTopLevelContext(() => {\n this.expect(tt.lt);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseType());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n });\n\n this.state.inType = oldInType;\n if (!this.state.inType && this.curContext() === tc.brace) {\n // rescan `>` when we are no longer in type context and JSX parsing context\n // since it was tokenized when `inType` is `true`.\n this.reScan_lt_gt();\n }\n this.expect(tt.gt);\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation | null {\n if (this.reScan_lt() !== tt.lt) return null;\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expect(tt.lt);\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseInterfaceType(): N.FlowInterfaceType {\n const node = this.startNode();\n this.expectContextual(tt._interface);\n\n node.extends = [];\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false,\n });\n\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n\n flowParseObjectPropertyKey(): N.Expression {\n return this.match(tt.num) || this.match(tt.string)\n ? super.parseExprAtom()\n : this.parseIdentifier(true);\n }\n\n flowParseObjectTypeIndexer(\n node: Undone,\n isStatic: boolean,\n variance?: N.FlowVariance | null,\n ): N.FlowObjectTypeIndexer {\n node.static = isStatic;\n\n // Note: bracketL has already been consumed\n if (this.lookahead().type === tt.colon) {\n node.id = this.flowParseObjectPropertyKey();\n node.key = this.flowParseTypeInitialiser();\n } else {\n node.id = null;\n node.key = this.flowParseType();\n }\n this.expect(tt.bracketR);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n\n flowParseObjectTypeInternalSlot(\n node: Undone,\n isStatic: boolean,\n ): N.FlowObjectTypeInternalSlot {\n node.static = isStatic;\n // Note: both bracketL have already been consumed\n node.id = this.flowParseObjectPropertyKey();\n this.expect(tt.bracketR);\n this.expect(tt.bracketR);\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n } else {\n node.method = false;\n if (this.eat(tt.question)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n\n flowParseObjectTypeMethodish(\n node: Undone,\n ): N.FlowFunctionTypeAnnotation {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n this.expect(tt.parenL);\n if (this.match(tt._this)) {\n node.this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n node.this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n\n if (this.eat(tt.ellipsis)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(tt.parenR);\n node.returnType = this.flowParseTypeInitialiser();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n flowParseObjectTypeCallProperty(\n node: Undone,\n isStatic: boolean,\n ): N.FlowObjectTypeCallProperty {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact,\n }: {\n allowStatic: boolean;\n allowExact: boolean;\n allowSpread: boolean;\n allowProto: boolean;\n allowInexact: boolean;\n }): N.FlowObjectTypeAnnotation {\n const oldInType = this.state.inType;\n this.state.inType = true;\n\n const nodeStart = this.startNode();\n\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(tt.braceBarL)) {\n this.expect(tt.braceBarL);\n endDelim = tt.braceBarR;\n exact = true;\n } else {\n this.expect(tt.braceL);\n endDelim = tt.braceR;\n exact = false;\n }\n\n nodeStart.exact = exact;\n\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStartLoc: Position | undefined | null = null;\n let inexactStartLoc: Position | undefined | null = null;\n const node = this.startNode();\n\n if (allowProto && this.isContextual(tt._proto)) {\n const lookahead = this.lookahead();\n\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n\n if (allowStatic && this.isContextual(tt._static)) {\n const lookahead = this.lookahead();\n\n // static is a valid identifier name\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n isStatic = true;\n }\n }\n\n const variance = this.flowParseVariance();\n\n if (this.eat(tt.bracketL)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (this.eat(tt.bracketL)) {\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.internalSlots.push(\n this.flowParseObjectTypeInternalSlot(node, isStatic),\n );\n } else {\n nodeStart.indexers.push(\n this.flowParseObjectTypeIndexer(node, isStatic, variance),\n );\n }\n } else if (this.match(tt.parenL) || this.match(tt.lt)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.callProperties.push(\n this.flowParseObjectTypeCallProperty(node, isStatic),\n );\n } else {\n let kind = \"init\";\n\n if (this.isContextual(tt._get) || this.isContextual(tt._set)) {\n const lookahead = this.lookahead();\n if (tokenIsLiteralPropertyName(lookahead.type)) {\n kind = this.state.value;\n this.next();\n }\n }\n\n const propOrInexact = this.flowParseObjectTypeProperty(\n node,\n isStatic,\n protoStartLoc,\n variance,\n kind,\n allowSpread,\n allowInexact ?? !exact,\n );\n\n if (propOrInexact === null) {\n inexact = true;\n inexactStartLoc = this.state.lastTokStartLoc;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n\n this.flowObjectTypeSemicolon();\n\n if (\n inexactStartLoc &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.raise(\n FlowErrors.UnexpectedExplicitInexactInObject,\n inexactStartLoc,\n );\n }\n }\n\n this.expect(endDelim);\n\n /* The inexact flag should only be added on ObjectTypeAnnotations that\n * are not the body of an interface, declare interface, or declare class.\n * Since spreads are only allowed in object types, checking that is\n * sufficient here.\n */\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n this.state.inType = oldInType;\n\n return out;\n }\n\n flowParseObjectTypeProperty(\n node: Undone,\n isStatic: boolean,\n protoStartLoc: Position | undefined | null,\n variance: N.FlowVariance | undefined | null,\n kind: string,\n allowSpread: boolean,\n allowInexact: boolean,\n ): N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty | null {\n if (this.eat(tt.ellipsis)) {\n const isInexactToken =\n this.match(tt.comma) ||\n this.match(tt.semi) ||\n this.match(tt.braceR) ||\n this.match(tt.braceBarR);\n\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(\n FlowErrors.InexactInsideNonObject,\n this.state.lastTokStartLoc!,\n );\n } else if (!allowInexact) {\n this.raise(\n FlowErrors.InexactInsideExact,\n this.state.lastTokStartLoc!,\n );\n }\n if (variance) {\n this.raise(FlowErrors.InexactVariance, variance);\n }\n\n return null;\n }\n\n if (!allowSpread) {\n this.raise(\n FlowErrors.UnexpectedSpreadType,\n this.state.lastTokStartLoc!,\n );\n }\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.SpreadVariance, variance);\n }\n\n node.argument = this.flowParseType();\n return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n } else {\n node.key = this.flowParseObjectPropertyKey();\n node.static = isStatic;\n node.proto = protoStartLoc != null;\n node.kind = kind;\n\n let optional = false;\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n // This is a method property\n node.method = true;\n\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n /** Declared classes/interfaces do not allow spread */\n if (\n !allowSpread &&\n node.key.name === \"constructor\" &&\n node.value.this\n ) {\n this.raise(\n FlowErrors.ThisParamBannedInConstructor,\n node.value.this,\n );\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n\n node.method = false;\n\n if (this.eat(tt.question)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n\n node.optional = optional;\n\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n\n // This is similar to checkGetterSetterParams, but as\n // @babel/parser uses non estree properties we cannot reuse it here\n flowCheckGetterSetterParams(\n property: Undone<\n N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty\n >,\n ): void {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const length =\n property.value.params.length + (property.value.rest ? 1 : 0);\n\n if (property.value.this) {\n this.raise(\n property.kind === \"get\"\n ? FlowErrors.GetterMayNotHaveThisParam\n : FlowErrors.SetterMayNotHaveThisParam,\n property.value.this,\n );\n }\n\n if (length !== paramCount) {\n this.raise(\n property.kind === \"get\"\n ? Errors.BadGetterArity\n : Errors.BadSetterArity,\n property,\n );\n }\n\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(Errors.BadSetterRestParameter, property);\n }\n }\n\n flowObjectTypeSemicolon(): void {\n if (\n !this.eat(tt.semi) &&\n !this.eat(tt.comma) &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.unexpected();\n }\n }\n\n flowParseQualifiedTypeIdentifier(\n startLoc?: Position,\n id?: N.Identifier,\n ): N.FlowQualifiedTypeIdentifier | N.Identifier {\n startLoc ??= this.state.startLoc;\n let node: N.Identifier | N.FlowQualifiedTypeIdentifier =\n id || this.flowParseRestrictedIdentifier(true);\n\n while (this.eat(tt.dot)) {\n const node2 = this.startNodeAt(startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n\n return node;\n }\n\n flowParseGenericType(\n startLoc: Position,\n id: N.Identifier,\n ): N.FlowGenericTypeAnnotation {\n const node = this.startNodeAt(startLoc);\n\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n\n flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n const node = this.startNode();\n this.expect(tt._typeof);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n\n flowParseTupleType(): N.FlowTupleTypeAnnotation {\n const node = this.startNode();\n node.types = [];\n this.expect(tt.bracketL);\n // We allow trailing commas\n while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n node.types.push(this.flowParseType());\n if (this.match(tt.bracketR)) break;\n this.expect(tt.comma);\n }\n this.expect(tt.bracketR);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n\n flowParseFunctionTypeParam(first: boolean): N.FlowFunctionTypeParam {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode();\n const lh = this.lookahead();\n const isThis = this.state.type === tt._this;\n\n if (lh.type === tt.colon || lh.type === tt.question) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node);\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(tt.question)) {\n optional = true;\n if (isThis) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, node);\n }\n }\n typeAnnotation = this.flowParseTypeInitialiser();\n } else {\n typeAnnotation = this.flowParseType();\n }\n node.name = name;\n node.optional = optional;\n node.typeAnnotation = typeAnnotation;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n\n reinterpretTypeAsFunctionTypeParam(\n type: N.FlowType,\n ): N.FlowFunctionTypeParam {\n const node = this.startNodeAt(type.loc.start);\n node.name = null;\n node.optional = false;\n node.typeAnnotation = type;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n\n flowParseFunctionTypeParams(params: N.FlowFunctionTypeParam[] = []): {\n params: N.FlowFunctionTypeParam[];\n rest: N.FlowFunctionTypeParam | undefined | null;\n _this: N.FlowFunctionTypeParam | undefined | null;\n } {\n let rest: N.FlowFunctionTypeParam | undefined | null = null;\n let _this: N.FlowFunctionTypeParam | undefined | null = null;\n if (this.match(tt._this)) {\n _this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n _this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n if (this.eat(tt.ellipsis)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return { params, rest, _this };\n }\n\n flowIdentToTypeAnnotation(\n startLoc: Position,\n node: Undone,\n id: N.Identifier,\n ): N.FlowType {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startLoc, id);\n }\n }\n\n // The parsing of types roughly parallels the parsing of expressions, and\n // primary types are kind of like primary expressions...they're the\n // primitives with which other types are constructed.\n flowParsePrimaryType(): N.FlowType {\n const startLoc = this.state.startLoc;\n const node = this.startNode();\n let tmp;\n let type;\n let isGroupedType = false;\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n switch (this.state.type) {\n case tt.braceL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true,\n });\n\n case tt.braceBarL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false,\n });\n\n case tt.bracketL:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n\n case tt.lt: {\n const node = this.startNode();\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(tt.parenL);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n case tt.parenL: {\n const node = this.startNode();\n this.next();\n\n // Check to see if this is actually a grouped type\n if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n if (tokenIsIdentifier(this.state.type) || this.match(tt._this)) {\n const token = this.lookahead().type;\n isGroupedType = token !== tt.question && token !== tt.colon;\n } else {\n isGroupedType = true;\n }\n }\n\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n // A `,` or a `) =>` means this is an anonymous function type\n if (\n this.state.noAnonFunctionType ||\n !(\n this.match(tt.comma) ||\n (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n )\n ) {\n this.expect(tt.parenR);\n return type;\n } else {\n // Eat a comma if there is one\n this.eat(tt.comma);\n }\n }\n\n if (type) {\n tmp = this.flowParseFunctionTypeParams([\n this.reinterpretTypeAsFunctionTypeParam(type),\n ]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n node.typeParameters = null;\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n case tt.string:\n return this.parseLiteral(\n this.state.value,\n \"StringLiteralTypeAnnotation\",\n );\n\n case tt._true:\n case tt._false:\n node.value = this.match(tt._true);\n this.next();\n return this.finishNode(\n node as Undone,\n \"BooleanLiteralTypeAnnotation\",\n );\n\n case tt.plusMin:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(tt.num)) {\n return this.parseLiteralAtNode(\n -this.state.value,\n \"NumberLiteralTypeAnnotation\",\n node,\n );\n }\n\n if (this.match(tt.bigint)) {\n return this.parseLiteralAtNode(\n -this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n node,\n );\n }\n\n throw this.raise(\n FlowErrors.UnexpectedSubtractionOperand,\n this.state.startLoc,\n );\n }\n throw this.unexpected();\n case tt.num:\n return this.parseLiteral(\n this.state.value,\n \"NumberLiteralTypeAnnotation\",\n );\n\n case tt.bigint:\n return this.parseLiteral(\n this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n );\n\n case tt._void:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n\n case tt._null:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n case tt._this:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n\n case tt.star:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n case tt._typeof:\n return this.flowParseTypeofType();\n\n default:\n if (tokenIsKeyword(this.state.type)) {\n const label = tokenLabelName(this.state.type);\n this.next();\n return super.createIdentifier(node as Undone, label);\n } else if (tokenIsIdentifier(this.state.type)) {\n if (this.isContextual(tt._interface)) {\n return this.flowParseInterfaceType();\n }\n\n return this.flowIdentToTypeAnnotation(\n startLoc,\n node,\n this.parseIdentifier(),\n );\n }\n }\n\n throw this.unexpected();\n }\n\n flowParsePostfixType(): N.FlowType {\n const startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n let seenOptionalIndexedAccess = false;\n while (\n (this.match(tt.bracketL) || this.match(tt.questionDot)) &&\n !this.canInsertSemicolon()\n ) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(tt.questionDot);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(tt.bracketL);\n if (!optional && this.match(tt.bracketR)) {\n node.elementType = type;\n this.next(); // eat `]`\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n } else {\n node.objectType = type;\n node.indexType = this.flowParseType();\n this.expect(tt.bracketR);\n if (seenOptionalIndexedAccess) {\n node.optional = optional;\n type = this.finishNode(\n // @ts-expect-error todo(flow->ts)\n node,\n \"OptionalIndexedAccessType\",\n );\n } else {\n type = this.finishNode(\n // @ts-expect-error todo(flow->ts)\n node,\n \"IndexedAccessType\",\n );\n }\n }\n }\n return type;\n }\n\n flowParsePrefixType(): N.FlowType {\n const node = this.startNode();\n if (this.eat(tt.question)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n\n flowParseAnonFunctionWithoutParens(): N.FlowType {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n const node = this.startNodeAt(\n param.loc.start,\n );\n node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n node.rest = null;\n node.this = null;\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n return param;\n }\n\n flowParseIntersectionType(): N.FlowType {\n const node = this.startNode();\n this.eat(tt.bitwiseAND);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(tt.bitwiseAND)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n\n flowParseUnionType(): N.FlowType {\n const node = this.startNode();\n this.eat(tt.bitwiseOR);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(tt.bitwiseOR)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n\n flowParseType(): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const type = this.flowParseUnionType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParseTypeOrImplicitInstantiation(): N.FlowType {\n if (this.state.type === tt.name && this.state.value === \"_\") {\n const startLoc = this.state.startLoc;\n const node = this.parseIdentifier();\n return this.flowParseGenericType(startLoc, node);\n } else {\n return this.flowParseType();\n }\n }\n\n flowParseTypeAnnotation(): N.TypeAnnotation {\n const node = this.startNode();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n\n flowParseTypeAnnotatableIdentifier(\n allowPrimitiveOverride?: boolean,\n ): N.Identifier {\n const ident = allowPrimitiveOverride\n ? this.parseIdentifier()\n : this.flowParseRestrictedIdentifier();\n if (this.match(tt.colon)) {\n ident.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(ident);\n }\n return ident;\n }\n\n typeCastToParameter(node: N.TypeCastExpression): N.Expression {\n (node.expression as N.Identifier).typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n\n return node.expression;\n }\n\n flowParseVariance(): N.FlowVariance | undefined | null {\n let variance = null;\n if (this.match(tt.plusMin)) {\n variance = this.startNode();\n if (this.state.value === \"+\") {\n variance.kind = \"plus\";\n } else {\n variance.kind = \"minus\";\n }\n this.next();\n return this.finishNode(variance, \"Variance\");\n }\n return variance;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseFunctionBody(\n node: N.Function,\n allowExpressionBody?: boolean | null,\n isMethod: boolean = false,\n ): void {\n if (allowExpressionBody) {\n this.forwardNoArrowParamsConversionAt(node, () =>\n super.parseFunctionBody(node, true, isMethod),\n );\n return;\n }\n\n super.parseFunctionBody(node, false, isMethod);\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone, type: T[\"type\"], isMethod: boolean = false): T {\n if (this.match(tt.colon)) {\n const typeNode = this.startNode();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error predicate may not exist\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser() as [\n N.FlowType,\n N.FlowPredicate,\n ];\n\n node.returnType = typeNode.typeAnnotation\n ? this.finishNode(typeNode, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n // interfaces and enums\n parseStatementLike(flags: ParseStatementFlag): N.Statement {\n // strict mode handling of `interface` since it's a reserved word\n if (this.state.strict && this.isContextual(tt._interface)) {\n const lookahead = this.lookahead();\n if (tokenIsKeywordOrIdentifier(lookahead.type)) {\n const node = this.startNode();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatementLike(flags);\n // We will parse a flow pragma in any comment before the first statement.\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n\n // declares, interfaces and type aliases\n parseExpressionStatement(\n node: N.ExpressionStatement,\n expr: N.Expression,\n decorators: N.Decorator[] | null,\n ): N.ExpressionStatement {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (\n this.match(tt._class) ||\n tokenIsIdentifier(this.state.type) ||\n this.match(tt._function) ||\n this.match(tt._var) ||\n this.match(tt._export)\n ) {\n // @ts-expect-error: refine typings\n return this.flowParseDeclare(node);\n }\n } else if (tokenIsIdentifier(this.state.type)) {\n if (expr.name === \"interface\") {\n // @ts-expect-error: refine typings\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n\n return super.parseExpressionStatement(node, expr, decorators);\n }\n\n // export type\n shouldParseExportDeclaration(): boolean {\n const { type } = this.state;\n if (type === tt._enum || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return !this.state.containsEsc;\n }\n return super.shouldParseExportDeclaration();\n }\n\n isExportDefaultSpecifier(): boolean {\n const { type } = this.state;\n if (type === tt._enum || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return this.state.containsEsc;\n }\n\n return super.isExportDefaultSpecifier();\n }\n\n parseExportDefaultExpression() {\n if (this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n\n parseConditional(\n expr: N.Expression,\n\n startLoc: Position,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (!this.match(tt.question)) return expr;\n\n if (this.state.maybeInArrowParameters) {\n const nextCh = this.lookaheadCharCode();\n // These tokens cannot start an expression, so if one of them follows\n // ? then we are probably in an arrow function parameters list and we\n // don't parse the conditional expression.\n if (\n nextCh === charCodes.comma || // (a?, b) => c\n nextCh === charCodes.equalsTo || // (a? = b) => c\n nextCh === charCodes.colon || // (a?: b) => c\n nextCh === charCodes.rightParenthesis // (a?) => c\n ) {\n /*:: invariant(refExpressionErrors != null) */\n this.setOptionalParametersError(refExpressionErrors!);\n return expr;\n }\n }\n\n this.expect(tt.question);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startLoc);\n let { consequent, failed } = this.tryParseConditionalConsequent();\n let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n [valid, invalid] = this.getArrowLikeExpressions(consequent);\n }\n\n if (failed && valid.length > 1) {\n // if there are two or more possible correct ways of parsing, throw an\n // error.\n // e.g. Source: a ? (b): c => (d): e => f\n // Result 1: a ? b : (c => ((d): e => f))\n // Result 2: a ? ((b): c => d) : (e => f)\n this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc);\n }\n\n if (failed && valid.length === 1) {\n this.state = state;\n noArrowAt.push(valid[0].start);\n this.state.noArrowAt = noArrowAt;\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n }\n }\n\n this.getArrowLikeExpressions(consequent, true);\n\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(tt.colon);\n\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n this.parseMaybeAssign(undefined, undefined),\n );\n\n return this.finishNode(node, \"ConditionalExpression\");\n }\n\n tryParseConditionalConsequent(): {\n consequent: N.Expression;\n failed: boolean;\n } {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(tt.colon);\n\n this.state.noArrowParamsConversionAt.pop();\n\n return { consequent, failed };\n }\n\n // Given an expression, walks through out its arrow functions whose body is\n // an expression and through out conditional expressions. It returns every\n // function which has been parsed with a return type but could have been\n // parenthesized expressions.\n // These functions are separated into two arrays: one containing the ones\n // whose parameters can be converted to assignable lists, one containing the\n // others.\n getArrowLikeExpressions(\n node: N.Expression,\n disallowInvalid?: boolean,\n ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n const stack = [node];\n const arrows: N.ArrowFunctionExpression[] = [];\n\n while (stack.length !== 0) {\n const node = stack.pop()!;\n if (\n node.type === \"ArrowFunctionExpression\" &&\n node.body.type !== \"BlockStatement\"\n ) {\n if (node.typeParameters || !node.returnType) {\n // This is an arrow expression without ambiguity, so check its parameters\n this.finishArrowValidation(node);\n } else {\n arrows.push(node);\n }\n stack.push(node.body);\n } else if (node.type === \"ConditionalExpression\") {\n stack.push(node.consequent);\n stack.push(node.alternate);\n }\n }\n\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n\n return partition(arrows, node =>\n node.params.every(param => this.isAssignable(param, true)),\n );\n }\n\n finishArrowValidation(node: N.ArrowFunctionExpression) {\n this.toAssignableList(\n // node.params is Expression[] instead of $ReadOnlyArray because it\n // has not been converted yet.\n node.params as any as N.Expression[],\n node.extra?.trailingCommaLoc,\n /* isLHS */ false,\n );\n // Enter scope, as checkParams defines bindings\n this.scope.enter(ScopeFlag.FUNCTION | ScopeFlag.ARROW);\n // Use super's method to force the parameters to be checked\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n\n forwardNoArrowParamsConversionAt(\n node: Undone,\n parse: () => T,\n ): T {\n let result: T;\n if (\n this.state.noArrowParamsConversionAt.includes(\n this.offsetToSourcePos(node.start),\n )\n ) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n\n return result;\n }\n\n parseParenItem(\n node: T,\n startLoc: Position,\n ): T | N.TypeCastExpression | N.TsTypeCastExpression {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(tt.question)) {\n (newNode as N.Identifier).optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = newNode as N.Expression;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n\n return newNode;\n }\n\n assertModuleNodeAllowed(node: N.Node) {\n if (\n (node.type === \"ImportDeclaration\" &&\n (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n (node.type === \"ExportNamedDeclaration\" &&\n node.exportKind === \"type\") ||\n (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n ) {\n // Allow Flowtype imports and exports in all conditions because\n // Flow itself does not care about 'sourceType'.\n return;\n }\n\n super.assertModuleNodeAllowed(node);\n }\n\n parseExportDeclaration(\n node: N.ExportNamedDeclaration,\n ): N.Declaration | undefined | null {\n if (this.isContextual(tt._type)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n\n if (this.match(tt.braceL)) {\n // export type { foo, bar };\n node.specifiers = this.parseExportSpecifiers(\n /* isInTypeExport */ true,\n );\n super.parseExportFrom(node);\n return null;\n } else {\n // export type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(tt._opaque)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n // export opaque type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(tt._interface)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseInterface(declarationNode);\n } else if (this.isContextual(tt._enum)) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n\n eatExportStar(\n node: Undone,\n ): node is Undone {\n if (super.eatExportStar(node)) return true;\n\n if (this.isContextual(tt._type) && this.lookahead().type === tt.star) {\n (\n node as Undone\n ).exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(\n node: Undone,\n ): node is Undone {\n const { startLoc } = this.state;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(startLoc);\n }\n return hasNamespace;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean | null,\n ) {\n super.parseClassId(node, isStatement, optionalId);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const { startLoc } = this.state;\n if (this.isContextual(tt._declare)) {\n if (super.parseClassMemberFromModifier(classBody, member)) {\n // 'declare' is a class element name\n return;\n }\n\n member.declare = true;\n }\n\n super.parseClassMember(classBody, member, state);\n\n if (member.declare) {\n if (\n member.type !== \"ClassProperty\" &&\n member.type !== \"ClassPrivateProperty\" &&\n member.type !== \"PropertyDefinition\" // Used by estree plugin\n ) {\n this.raise(FlowErrors.DeclareClassElement, startLoc);\n } else if (member.value) {\n this.raise(FlowErrors.DeclareClassFieldInitializer, member.value);\n }\n }\n }\n\n isIterator(word: string): boolean {\n return word === \"iterator\" || word === \"asyncIterator\";\n }\n\n readIterator(): void {\n const word = super.readWord1();\n const fullWord = \"@@\" + word;\n\n // Allow @@iterator and @@asyncIterator as a identifier only inside type\n if (!this.isIterator(word) || !this.state.inType) {\n this.raise(Errors.InvalidIdentifier, this.state.curPosition(), {\n identifierName: fullWord,\n });\n }\n\n this.finishToken(tt.name, fullWord);\n }\n\n // ensure that inside flow types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n this.finishOp(tt.braceBarL, 2);\n } else if (\n this.state.inType &&\n (code === charCodes.greaterThan || code === charCodes.lessThan)\n ) {\n this.finishOp(code === charCodes.greaterThan ? tt.gt : tt.lt, 1);\n } else if (this.state.inType && code === charCodes.questionMark) {\n if (next === charCodes.dot) {\n this.finishOp(tt.questionDot, 2);\n } else {\n // allow double nullable types in Flow: ??string\n this.finishOp(tt.question, 1);\n }\n } else if (\n isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))\n ) {\n this.state.pos += 2; // eat \"@@\"\n this.readIterator();\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node.type === \"TypeCastExpression\") {\n return this.isAssignable(node.expression, isBinding);\n } else {\n return super.isAssignable(node, isBinding);\n }\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (\n !isLHS &&\n node.type === \"AssignmentExpression\" &&\n node.left.type === \"TypeCastExpression\"\n ) {\n node.left = this.typeCastToParameter(node.left) as N.Assignable;\n }\n super.toAssignable(node, isLHS);\n }\n\n // turn type casts that we found in function parameter head into type annotated params\n toAssignableList(\n exprList: N.Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n\n // this is a list of nodes, from something like a call expression, we need to filter the\n // type casts that we've found that are illegal in this context\n toReferencedList(\n exprList:\n | readonly (N.Expression | N.SpreadElement | null)[]\n | readonly (N.Expression | N.RestElement)[],\n isParenthesizedExpr?: boolean,\n ):\n | readonly (N.Expression | N.SpreadElement | null)[]\n | readonly (N.Expression | N.RestElement)[] {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (\n expr &&\n expr.type === \"TypeCastExpression\" &&\n !expr.extra?.parenthesized &&\n (exprList.length > 1 || !isParenthesizedExpr)\n ) {\n this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation);\n }\n }\n\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(close, isTuple, refExpressionErrors);\n\n // This could be an array pattern:\n // ([a: string, b: string]) => {}\n // In this case, we don't have to call toReferencedList. We will\n // call it, if needed, when we are sure that it is a parenthesized\n // expression by calling toReferencedListDeep.\n if (refExpressionErrors != null && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n\n return node;\n }\n\n isValidLVal(\n type: string,\n disallowCallExpression: boolean,\n isParenthesized: boolean,\n binding: BindingFlag,\n ) {\n return (\n type === \"TypeCastExpression\" ||\n super.isValidLVal(\n type,\n disallowCallExpression,\n isParenthesized,\n binding,\n )\n );\n }\n\n // parse class property type annotations\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n\n // determine whether or not we're currently in the position where a class method would appear\n isClassMethod(): boolean {\n return this.match(tt.lt) || super.isClassMethod();\n }\n\n // determine whether or not we're currently in the position where a class property would appear\n isClassProperty(): boolean {\n return this.match(tt.colon) || super.isClassProperty();\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n }\n\n // parse type parameters for class methods\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n // estree support\n } else if (\n // @ts-expect-error TS does not know about the fact that estree can replace ClassMethod with MethodDefinition\n method.type === \"MethodDefinition\" &&\n isConstructor &&\n // @ts-expect-error estree\n method.value.params\n ) {\n // @ts-expect-error estree\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n }\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n // parse a the super class type parameters and implements\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n if (\n node.superClass &&\n (this.match(tt.lt) ||\n // handles `class extends C<`\n this.match(tt.bitShiftL))\n ) {\n if (process.env.BABEL_8_BREAKING) {\n node.superTypeArguments =\n this.flowParseTypeParameterInstantiationInExpression();\n } else {\n node.superTypeParameters =\n this.flowParseTypeParameterInstantiationInExpression();\n }\n }\n if (this.isContextual(tt._implements)) {\n this.next();\n const implemented: N.FlowClassImplements[] = (node.implements = []);\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(tt.comma));\n }\n }\n\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n super.checkGetterSetterParams(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length > 0) {\n const param = params[0];\n if (this.isThisParam(param) && method.kind === \"get\") {\n this.raise(FlowErrors.GetterMayNotHaveThisParam, param);\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.SetterMayNotHaveThisParam, param);\n }\n }\n }\n\n parsePropertyNamePrefixOperator(\n node: N.ObjectOrClassMember | N.ClassMember,\n ): void {\n node.variance = this.flowParseVariance();\n }\n\n // parse type parameters for object method shorthand\n parseObjPropValue(\n prop: Undone,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): T {\n if ((prop as any).variance) {\n this.unexpected((prop as any).variance.loc.start);\n }\n delete (prop as any).variance;\n\n let typeParameters;\n\n // method shorthand\n if (this.match(tt.lt) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(tt.parenL)) this.unexpected();\n }\n\n const result = super.parseObjPropValue(\n prop,\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n\n // add typeParameters if we found them\n if (typeParameters) {\n // @ts-expect-error: refine typings\n (result.value || result).typeParameters = typeParameters;\n }\n return result;\n }\n\n parseFunctionParamType(param: N.Pattern): N.Pattern {\n if (this.eat(tt.question)) {\n if (param.type !== \"Identifier\") {\n this.raise(FlowErrors.PatternIsOptional, param);\n }\n if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, param);\n }\n\n (param as any as N.Identifier).optional = true;\n }\n if (this.match(tt.colon)) {\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, param);\n }\n\n if (this.match(tt.eq) && this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamNoDefault, param);\n }\n\n this.resetEndLocation(param);\n return param;\n }\n\n parseMaybeDefault

(\n startLoc?: Position | null,\n left?: P | null,\n ): P | N.AssignmentPattern {\n const node = super.parseMaybeDefault(startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation);\n }\n\n return node;\n }\n\n checkImportReflection(node: Undone) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(\n FlowErrors.ImportReflectionHasImportType,\n node.specifiers[0].loc.start,\n );\n }\n }\n\n parseImportSpecifierLocal<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(node: N.ImportDeclaration, specifier: Undone, type: T[\"type\"]): void {\n specifier.local = hasTypeImportKind(node)\n ? this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n )\n : this.parseIdentifier();\n\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(tt._type)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === charCodes.leftCurlyBrace || ch === charCodes.asterisk;\n }\n return !isExport && this.isContextual(tt._typeof);\n }\n\n applyImportPhase(\n node: Undone,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(tt._default)) {\n // TODO: Align with our TS AST and always add .exportKind\n return;\n }\n (node as N.ExportNamedDeclaration).exportKind =\n phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(tt.star)) this.unexpected();\n (node as N.ImportDeclaration).importKind =\n phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n\n // parse import-type/typeof shorthand\n parseImportSpecifier(\n specifier: any,\n importedIsString: boolean,\n isInTypeOnlyImport: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isMaybeTypeOnly: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType: BindingFlag | undefined,\n ): N.ImportSpecifier {\n const firstIdent = specifier.imported;\n\n let specifierTypeKind = null;\n if (firstIdent.type === \"Identifier\") {\n if (firstIdent.name === \"type\") {\n specifierTypeKind = \"type\";\n } else if (firstIdent.name === \"typeof\") {\n specifierTypeKind = \"typeof\";\n }\n }\n\n let isBinding = false;\n if (this.isContextual(tt._as) && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (\n specifierTypeKind !== null &&\n !tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type as ,` or `import {type as }`\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = this.cloneIdentifier(as_ident);\n } else {\n // `import {type as foo`\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else {\n if (\n specifierTypeKind !== null &&\n tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type foo`\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n } else {\n if (importedIsString) {\n /*:: invariant(firstIdent instanceof N.StringLiteral) */\n throw this.raise(Errors.ImportBindingIsString, specifier, {\n importName: firstIdent.value,\n });\n }\n /*:: invariant(firstIdent instanceof N.Node) */\n specifier.imported = firstIdent;\n specifier.importKind = null;\n }\n\n if (this.eatContextual(tt._as)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = this.cloneIdentifier(specifier.imported);\n }\n }\n\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n if (isInTypeOnlyImport && specifierIsTypeImport) {\n this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier);\n }\n\n if (isInTypeOnlyImport || specifierIsTypeImport) {\n this.checkReservedType(\n specifier.local.name,\n specifier.local.loc.start,\n /* declaration */ true,\n );\n }\n\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(\n specifier.local.name,\n specifier.loc.start,\n true,\n true,\n );\n }\n\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n\n parseBindingAtom(): N.Pattern {\n switch (this.state.type) {\n case tt._this:\n // \"this\" may be the name of a parameter, so allow it.\n return this.parseIdentifier(/* liberal */ true);\n default:\n return super.parseBindingAtom();\n }\n }\n\n // parse function type parameters - function foo() {}\n parseFunctionParams(\n node: Undone,\n isConstructor: boolean,\n ): void {\n // @ts-expect-error kind may not index node\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, isConstructor);\n }\n\n // parse flow type annotations on variable declarator heads - let foo: string = bar\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n ): void {\n super.parseVarId(decl, kind);\n if (this.match(tt.colon)) {\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n // todo description\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n // We need to support type parameter declarations for arrow functions. This\n // is tricky. There are three situations we need to handle\n //\n // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n // fails, we'll try an arrow function. If that fails, we'll throw the JSX\n // error.\n // 2. This is an arrow function. We'll parse the type parameter declaration,\n // parse the rest, make sure the rest is an arrow function, and go from\n // there\n // 3. This is neither. Just call the super method\n parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n let state = null;\n\n let jsx;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.match(tt.lt))\n ) {\n state = this.state.clone();\n\n jsx = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n\n /*:: invariant(!jsx.aborted) */\n /*:: invariant(jsx.node != null) */\n if (!jsx.error) return jsx.node!;\n\n // Remove `tc.j_expr` and `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === tc.j_oTag || currentContext === tc.j_expr) {\n context.pop();\n }\n }\n\n if (jsx?.error || this.match(tt.lt)) {\n state = state || this.state.clone();\n\n let typeParameters: N.TypeParameterDeclaration;\n\n const arrow = this.tryParse((abort: () => never) => {\n typeParameters = this.flowParseTypeParameterDeclaration();\n\n const arrowExpression = this.forwardNoArrowParamsConversionAt(\n typeParameters,\n () => {\n const result = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n );\n\n this.resetStartLocationFromNode(result, typeParameters);\n\n return result;\n },\n );\n\n // (() => {});\n // (() => {}: any);\n if (arrowExpression.extra?.parenthesized) abort();\n\n // The above can return a TypeCastExpression when the arrow\n // expression is not wrapped in parens. See also `this.parseParenItem`.\n // (() => {}: any);\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n\n if (expr.type !== \"ArrowFunctionExpression\") abort();\n\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n\n return arrowExpression;\n }, state);\n\n let arrowExpression:\n | N.ArrowFunctionExpression\n | N.TypeCastExpression\n | undefined\n | null = null;\n\n if (\n arrow.node &&\n this.maybeUnwrapTypeCastExpression(arrow.node).type ===\n \"ArrowFunctionExpression\"\n ) {\n if (!arrow.error && !arrow.aborted) {\n // async () => {}\n // @ts-expect-error: refine tryParse typings\n if (arrow.node.async) {\n /*:: invariant(typeParameters) */\n this.raise(\n FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction,\n typeParameters!,\n );\n }\n return arrow.node;\n }\n\n // @ts-expect-error: refine typings\n arrowExpression = arrow.node;\n }\n\n // If we are here, both JSX and Flow parsing attempts failed.\n // Give the precedence to the JSX error, except if JSX had an\n // unrecoverable error while Flow didn't.\n // If the error is recoverable, we can only re-report it if there is\n // a node we can return.\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrowExpression) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState!;\n return arrowExpression;\n }\n\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n\n /*:: invariant(typeParameters) */\n throw this.raise(\n FlowErrors.UnexpectedTokenAfterTypeParameter,\n typeParameters!,\n );\n }\n\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n\n // handle return types for arrow functions\n parseArrow(\n node: Undone,\n ): Undone | undefined | null {\n if (this.match(tt.colon)) {\n // @ts-expect-error todo(flow->ts)\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n\n const typeNode = this.startNode();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser() as [\n N.FlowType,\n N.FlowPredicate,\n ];\n\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(tt.arrow)) this.unexpected();\n\n return typeNode;\n });\n\n if (result.thrown) return null;\n /*:: invariant(result.node) */\n\n if (result.error) this.state = result.failState;\n\n // assign after it is clear it is an arrow\n // @ts-expect-error todo(flow->ts)\n node.returnType = result.node.typeAnnotation\n ? this.finishNode(result.node!, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseArrow(node);\n }\n\n shouldParseArrow(params: N.Node[]): boolean {\n return this.match(tt.colon) || super.shouldParseArrow(params);\n }\n\n setArrowFunctionParameters(\n node: Undone,\n params:\n | (N.Expression | N.SpreadElement)[]\n | (N.Expression | N.RestElement)[],\n ): void {\n if (\n this.state.noArrowParamsConversionAt.includes(\n this.offsetToSourcePos(node.start),\n )\n ) {\n node.params = params as N.ArrowFunctionExpression[\"params\"];\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n\n checkParams(\n node: N.Function,\n allowDuplicates: boolean,\n isArrowFunction?: boolean | null,\n strictModeChanged: boolean = true,\n ): void {\n if (\n isArrowFunction &&\n this.state.noArrowParamsConversionAt.includes(\n this.offsetToSourcePos(node.start),\n )\n ) {\n return;\n }\n\n // ensure the `this` param is first, if it exists\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]);\n }\n }\n\n super.checkParams(\n node,\n allowDuplicates,\n isArrowFunction,\n strictModeChanged,\n );\n }\n\n parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n return super.parseParenAndDistinguishExpression(\n canBeArrow &&\n !this.state.noArrowAt.includes(\n this.sourceToOffsetPos(this.state.start),\n ),\n );\n }\n\n parseSubscripts(\n base: N.Expression,\n startLoc: Position,\n noCalls?: boolean | null,\n ): N.Expression {\n if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.noArrowAt.includes(startLoc.index)\n ) {\n this.next();\n\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = super.parseCallExpressionArguments();\n base = this.finishNode(node, \"CallExpression\");\n } else if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.match(tt.lt)\n ) {\n const state = this.state.clone();\n const arrow = this.tryParse(\n abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(),\n state,\n );\n\n /*:: invariant(arrow.node != null) */\n // @ts-expect-error: refine tryParse typings\n if (!arrow.error && !arrow.aborted) return arrow.node;\n\n const result = this.tryParse(\n () => super.parseSubscripts(base, startLoc, noCalls),\n state,\n );\n\n if (result.node && !result.error) return result.node;\n\n if (arrow.node) {\n this.state = arrow.failState;\n // @ts-expect-error: refine tryParse typings\n return arrow.node;\n }\n\n if (result.node) {\n this.state = result.failState!;\n return result.node;\n }\n\n throw arrow.error || result.error!;\n }\n\n return super.parseSubscripts(base, startLoc, noCalls);\n }\n\n parseSubscript(\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n subscriptState: N.ParseSubscriptState,\n ): N.Expression {\n if (this.match(tt.questionDot) && this.isLookaheadToken_lt()) {\n subscriptState.optionalChainMember = true;\n if (noCalls) {\n subscriptState.stop = true;\n return base;\n }\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.typeArguments =\n this.flowParseTypeParameterInstantiationInExpression();\n this.expect(tt.parenL);\n node.arguments = this.parseCallExpressionArguments();\n node.optional = true;\n return this.finishCallExpression(node, /* optional */ true);\n } else if (\n !noCalls &&\n this.shouldParseTypes() &&\n (this.match(tt.lt) ||\n // also handles `new C<`\n this.match(tt.bitShiftL))\n ) {\n const node = this.startNodeAt<\n N.OptionalCallExpression | N.CallExpression\n >(startLoc);\n node.callee = base;\n\n const result = this.tryParse(() => {\n node.typeArguments =\n this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(tt.parenL);\n node.arguments = super.parseCallExpressionArguments();\n if (subscriptState.optionalChainMember) {\n (node as Undone).optional = false;\n }\n return this.finishCallExpression(\n node,\n subscriptState.optionalChainMember,\n );\n });\n\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n\n return super.parseSubscript(base, startLoc, noCalls, subscriptState);\n }\n\n parseNewCallee(node: N.NewExpression): void {\n super.parseNewCallee(node);\n\n let targs = null;\n if (this.shouldParseTypes() && this.match(tt.lt)) {\n targs = this.tryParse(() =>\n this.flowParseTypeParameterInstantiationCallOrNew(),\n ).node;\n }\n node.typeArguments = targs;\n }\n\n parseAsyncArrowWithTypeParameters(\n startLoc: Position,\n ): N.ArrowFunctionExpression | undefined | null {\n const node = this.startNodeAt(startLoc);\n this.parseFunctionParams(node, false);\n if (!this.parseArrow(node)) return;\n return super.parseArrowExpression(\n node,\n /* params */ undefined,\n /* isAsync */ true,\n );\n }\n\n readToken_mult_modulo(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.asterisk &&\n next === charCodes.slash &&\n this.state.hasFlowComment\n ) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n\n super.readToken_mult_modulo(code);\n }\n\n readToken_pipe_amp(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.verticalBar &&\n next === charCodes.rightCurlyBrace\n ) {\n // '|}'\n this.finishOp(tt.braceBarR, 2);\n return;\n }\n\n super.readToken_pipe_amp(code);\n }\n\n parseTopLevel(file: N.File, program: N.Program): N.File {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(\n FlowErrors.UnterminatedFlowComment,\n this.state.curPosition(),\n );\n }\n return fileNode;\n }\n\n skipBlockComment(): N.CommentBlock | undefined {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc);\n }\n this.hasFlowCommentCompletion();\n const commentSkip = this.skipFlowComment();\n if (commentSkip) {\n this.state.pos += commentSkip;\n this.state.hasFlowComment = true;\n }\n return;\n }\n\n return super.skipBlockComment(this.state.hasFlowComment ? \"*-/\" : \"*/\");\n }\n\n skipFlowComment(): number | false {\n const { pos } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while (\n [charCodes.space, charCodes.tab].includes(\n // @ts-expect-error testing whether a number is included\n this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n )\n ) {\n shiftToFirstNonWhiteSpace++;\n }\n\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n return shiftToFirstNonWhiteSpace + 2; // check for /*::\n }\n if (\n this.input.slice(\n shiftToFirstNonWhiteSpace + pos,\n shiftToFirstNonWhiteSpace + pos + 12,\n ) === \"flow-include\"\n ) {\n return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n }\n if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n }\n return false;\n }\n\n hasFlowCommentCompletion(): void {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n }\n\n // Flow enum parsing\n\n flowEnumErrorBooleanMemberNotInitialized(\n loc: Position,\n {\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, {\n memberName,\n enumName,\n });\n }\n\n flowEnumErrorInvalidMemberInitializer(\n loc: Position,\n enumContext: EnumContext,\n ) {\n return this.raise(\n !enumContext.explicitType\n ? FlowErrors.EnumInvalidMemberInitializerUnknownType\n : enumContext.explicitType === \"symbol\"\n ? FlowErrors.EnumInvalidMemberInitializerSymbolType\n : FlowErrors.EnumInvalidMemberInitializerPrimaryType,\n loc,\n enumContext,\n );\n }\n\n flowEnumErrorNumberMemberNotInitialized(\n loc: Position,\n details: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details);\n }\n\n flowEnumErrorStringMemberInconsistentlyInitialized(\n node: N.Node,\n details: {\n enumName: string;\n },\n ): void {\n this.raise(\n FlowErrors.EnumStringMemberInconsistentlyInitialized,\n node,\n details,\n );\n }\n\n flowEnumMemberInit(): EnumMemberInit {\n const startLoc = this.state.startLoc;\n const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n switch (this.state.type) {\n case tt.num: {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"number\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt.string: {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"string\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt._true:\n case tt._false: {\n const literal = this.parseBooleanLiteral(this.match(tt._true));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.loc.start,\n value: literal,\n };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n default:\n return { type: \"invalid\", loc: startLoc };\n }\n }\n\n flowEnumMemberRaw(): {\n id: N.Identifier;\n init: EnumMemberInit;\n } {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(tt.eq)\n ? this.flowEnumMemberInit()\n : { type: \"none\" as const, loc };\n return { id, init };\n }\n\n flowEnumCheckExplicitTypeMismatch(\n loc: Position,\n context: EnumContext,\n expectedType: EnumExplicitType,\n ): void {\n const { explicitType } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(loc, context);\n }\n }\n\n flowEnumMembers({\n enumName,\n explicitType,\n }: {\n enumName: string;\n explicitType: EnumExplicitType;\n }): {\n members: {\n booleanMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumBooleanMember\" }\n >[];\n numberMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumNumberMember\" }\n >[];\n stringMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumStringMember\" }\n >[];\n defaultedMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumDefaultedMember\" }\n >[];\n };\n hasUnknownMembers: boolean;\n } {\n const seenNames = new Set();\n const members = {\n booleanMembers: [],\n numberMembers: [],\n stringMembers: [],\n defaultedMembers: [],\n };\n let hasUnknownMembers = false;\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.ellipsis)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const { id, init } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.raise(FlowErrors.EnumInvalidMemberName, id, {\n memberName,\n suggestion: memberName[0].toUpperCase() + memberName.slice(1),\n enumName,\n });\n }\n if (seenNames.has(memberName)) {\n this.raise(FlowErrors.EnumDuplicateMemberName, id, {\n memberName,\n enumName,\n });\n }\n seenNames.add(memberName);\n const context = { enumName, explicitType, memberName };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\": {\n this.flowEnumCheckExplicitTypeMismatch(\n init.loc,\n context,\n \"boolean\",\n );\n memberNode.init = init.value;\n members.booleanMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumBooleanMember\"),\n );\n break;\n }\n case \"number\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumNumberMember\"),\n );\n break;\n }\n case \"string\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumStringMember\"),\n );\n break;\n }\n case \"invalid\": {\n throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);\n }\n case \"none\": {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(\n init.loc,\n context,\n );\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);\n break;\n default:\n members.defaultedMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumDefaultedMember\"),\n );\n }\n }\n }\n\n if (!this.match(tt.braceR)) {\n this.expect(tt.comma);\n }\n }\n return { members, hasUnknownMembers };\n }\n\n flowEnumStringMembers(\n initializedMembers: N.Node[],\n defaultedMembers: N.Node[],\n {\n enumName,\n }: {\n enumName: string;\n },\n ): N.Node[] {\n if (initializedMembers.length === 0) {\n return defaultedMembers;\n } else if (defaultedMembers.length === 0) {\n return initializedMembers;\n } else if (defaultedMembers.length > initializedMembers.length) {\n for (const member of initializedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName,\n });\n }\n return defaultedMembers;\n } else {\n for (const member of defaultedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName,\n });\n }\n return initializedMembers;\n }\n }\n\n flowEnumParseExplicitType({\n enumName,\n }: {\n enumName: string;\n }): EnumExplicitType {\n if (!this.eatContextual(tt._of)) return null;\n\n if (!tokenIsIdentifier(this.state.type)) {\n throw this.raise(\n FlowErrors.EnumInvalidExplicitTypeUnknownSupplied,\n this.state.startLoc,\n {\n enumName,\n },\n );\n }\n\n const { value } = this.state;\n this.next();\n\n if (\n value !== \"boolean\" &&\n value !== \"number\" &&\n value !== \"string\" &&\n value !== \"symbol\"\n ) {\n this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, {\n enumName,\n invalidEnumType: value,\n });\n }\n\n return value;\n }\n\n flowEnumBody(node: Undone, id: N.Identifier): N.Node {\n const enumName = id.name;\n const nameLoc = id.loc.start;\n const explicitType = this.flowEnumParseExplicitType({ enumName });\n this.expect(tt.braceL);\n const { members, hasUnknownMembers } = this.flowEnumMembers({\n enumName,\n explicitType,\n });\n node.hasUnknownMembers = hasUnknownMembers;\n\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumSymbolBody\");\n default: {\n // `explicitType` is `null`\n const empty = () => {\n node.members = [];\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n\n const boolsLen = members.booleanMembers.length;\n const numsLen = members.numberMembers.length;\n const strsLen = members.stringMembers.length;\n const defaultedLen = members.defaultedMembers.length;\n\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name,\n });\n }\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name,\n });\n }\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, {\n enumName,\n });\n return empty();\n }\n }\n }\n }\n\n flowParseEnumDeclaration(\n node: Undone,\n ): N.FlowEnumDeclaration {\n const id = this.parseIdentifier();\n node.id = id;\n node.body = this.flowEnumBody(this.startNode(), id);\n return this.finishNode(node, \"EnumDeclaration\");\n }\n\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement {\n if (this.shouldParseTypes()) {\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n node.typeArguments =\n this.flowParseTypeParameterInstantiationInExpression();\n }\n }\n\n return super.jsxParseOpeningElementAfterName(node);\n }\n\n // check if the next token is a tt.lt\n isLookaheadToken_lt(): boolean {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === charCodes.lessThan) {\n const afterNext = this.input.charCodeAt(next + 1);\n return (\n afterNext !== charCodes.lessThan && afterNext !== charCodes.equalsTo\n );\n }\n return false;\n }\n\n // used after we have finished parsing types\n reScan_lt_gt() {\n const { type } = this.state;\n if (type === tt.lt) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === tt.gt) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n\n reScan_lt() {\n const { type } = this.state;\n if (type === tt.bitShiftL) {\n this.state.pos -= 2;\n this.finishOp(tt.lt, 1);\n return tt.lt;\n }\n return type;\n }\n\n maybeUnwrapTypeCastExpression(node: N.Node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n };\n","const entities: Record = {\n // @ts-expect-error __proto__ is not an actual property: https://github.com/microsoft/TypeScript/issues/38385\n __proto__: null,\n quot: \"\\u0022\",\n amp: \"&\",\n apos: \"\\u0027\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\u00A0\",\n iexcl: \"\\u00A1\",\n cent: \"\\u00A2\",\n pound: \"\\u00A3\",\n curren: \"\\u00A4\",\n yen: \"\\u00A5\",\n brvbar: \"\\u00A6\",\n sect: \"\\u00A7\",\n uml: \"\\u00A8\",\n copy: \"\\u00A9\",\n ordf: \"\\u00AA\",\n laquo: \"\\u00AB\",\n not: \"\\u00AC\",\n shy: \"\\u00AD\",\n reg: \"\\u00AE\",\n macr: \"\\u00AF\",\n deg: \"\\u00B0\",\n plusmn: \"\\u00B1\",\n sup2: \"\\u00B2\",\n sup3: \"\\u00B3\",\n acute: \"\\u00B4\",\n micro: \"\\u00B5\",\n para: \"\\u00B6\",\n middot: \"\\u00B7\",\n cedil: \"\\u00B8\",\n sup1: \"\\u00B9\",\n ordm: \"\\u00BA\",\n raquo: \"\\u00BB\",\n frac14: \"\\u00BC\",\n frac12: \"\\u00BD\",\n frac34: \"\\u00BE\",\n iquest: \"\\u00BF\",\n Agrave: \"\\u00C0\",\n Aacute: \"\\u00C1\",\n Acirc: \"\\u00C2\",\n Atilde: \"\\u00C3\",\n Auml: \"\\u00C4\",\n Aring: \"\\u00C5\",\n AElig: \"\\u00C6\",\n Ccedil: \"\\u00C7\",\n Egrave: \"\\u00C8\",\n Eacute: \"\\u00C9\",\n Ecirc: \"\\u00CA\",\n Euml: \"\\u00CB\",\n Igrave: \"\\u00CC\",\n Iacute: \"\\u00CD\",\n Icirc: \"\\u00CE\",\n Iuml: \"\\u00CF\",\n ETH: \"\\u00D0\",\n Ntilde: \"\\u00D1\",\n Ograve: \"\\u00D2\",\n Oacute: \"\\u00D3\",\n Ocirc: \"\\u00D4\",\n Otilde: \"\\u00D5\",\n Ouml: \"\\u00D6\",\n times: \"\\u00D7\",\n Oslash: \"\\u00D8\",\n Ugrave: \"\\u00D9\",\n Uacute: \"\\u00DA\",\n Ucirc: \"\\u00DB\",\n Uuml: \"\\u00DC\",\n Yacute: \"\\u00DD\",\n THORN: \"\\u00DE\",\n szlig: \"\\u00DF\",\n agrave: \"\\u00E0\",\n aacute: \"\\u00E1\",\n acirc: \"\\u00E2\",\n atilde: \"\\u00E3\",\n auml: \"\\u00E4\",\n aring: \"\\u00E5\",\n aelig: \"\\u00E6\",\n ccedil: \"\\u00E7\",\n egrave: \"\\u00E8\",\n eacute: \"\\u00E9\",\n ecirc: \"\\u00EA\",\n euml: \"\\u00EB\",\n igrave: \"\\u00EC\",\n iacute: \"\\u00ED\",\n icirc: \"\\u00EE\",\n iuml: \"\\u00EF\",\n eth: \"\\u00F0\",\n ntilde: \"\\u00F1\",\n ograve: \"\\u00F2\",\n oacute: \"\\u00F3\",\n ocirc: \"\\u00F4\",\n otilde: \"\\u00F5\",\n ouml: \"\\u00F6\",\n divide: \"\\u00F7\",\n oslash: \"\\u00F8\",\n ugrave: \"\\u00F9\",\n uacute: \"\\u00FA\",\n ucirc: \"\\u00FB\",\n uuml: \"\\u00FC\",\n yacute: \"\\u00FD\",\n thorn: \"\\u00FE\",\n yuml: \"\\u00FF\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n Yuml: \"\\u0178\",\n fnof: \"\\u0192\",\n circ: \"\\u02C6\",\n tilde: \"\\u02DC\",\n Alpha: \"\\u0391\",\n Beta: \"\\u0392\",\n Gamma: \"\\u0393\",\n Delta: \"\\u0394\",\n Epsilon: \"\\u0395\",\n Zeta: \"\\u0396\",\n Eta: \"\\u0397\",\n Theta: \"\\u0398\",\n Iota: \"\\u0399\",\n Kappa: \"\\u039A\",\n Lambda: \"\\u039B\",\n Mu: \"\\u039C\",\n Nu: \"\\u039D\",\n Xi: \"\\u039E\",\n Omicron: \"\\u039F\",\n Pi: \"\\u03A0\",\n Rho: \"\\u03A1\",\n Sigma: \"\\u03A3\",\n Tau: \"\\u03A4\",\n Upsilon: \"\\u03A5\",\n Phi: \"\\u03A6\",\n Chi: \"\\u03A7\",\n Psi: \"\\u03A8\",\n Omega: \"\\u03A9\",\n alpha: \"\\u03B1\",\n beta: \"\\u03B2\",\n gamma: \"\\u03B3\",\n delta: \"\\u03B4\",\n epsilon: \"\\u03B5\",\n zeta: \"\\u03B6\",\n eta: \"\\u03B7\",\n theta: \"\\u03B8\",\n iota: \"\\u03B9\",\n kappa: \"\\u03BA\",\n lambda: \"\\u03BB\",\n mu: \"\\u03BC\",\n nu: \"\\u03BD\",\n xi: \"\\u03BE\",\n omicron: \"\\u03BF\",\n pi: \"\\u03C0\",\n rho: \"\\u03C1\",\n sigmaf: \"\\u03C2\",\n sigma: \"\\u03C3\",\n tau: \"\\u03C4\",\n upsilon: \"\\u03C5\",\n phi: \"\\u03C6\",\n chi: \"\\u03C7\",\n psi: \"\\u03C8\",\n omega: \"\\u03C9\",\n thetasym: \"\\u03D1\",\n upsih: \"\\u03D2\",\n piv: \"\\u03D6\",\n ensp: \"\\u2002\",\n emsp: \"\\u2003\",\n thinsp: \"\\u2009\",\n zwnj: \"\\u200C\",\n zwj: \"\\u200D\",\n lrm: \"\\u200E\",\n rlm: \"\\u200F\",\n ndash: \"\\u2013\",\n mdash: \"\\u2014\",\n lsquo: \"\\u2018\",\n rsquo: \"\\u2019\",\n sbquo: \"\\u201A\",\n ldquo: \"\\u201C\",\n rdquo: \"\\u201D\",\n bdquo: \"\\u201E\",\n dagger: \"\\u2020\",\n Dagger: \"\\u2021\",\n bull: \"\\u2022\",\n hellip: \"\\u2026\",\n permil: \"\\u2030\",\n prime: \"\\u2032\",\n Prime: \"\\u2033\",\n lsaquo: \"\\u2039\",\n rsaquo: \"\\u203A\",\n oline: \"\\u203E\",\n frasl: \"\\u2044\",\n euro: \"\\u20AC\",\n image: \"\\u2111\",\n weierp: \"\\u2118\",\n real: \"\\u211C\",\n trade: \"\\u2122\",\n alefsym: \"\\u2135\",\n larr: \"\\u2190\",\n uarr: \"\\u2191\",\n rarr: \"\\u2192\",\n darr: \"\\u2193\",\n harr: \"\\u2194\",\n crarr: \"\\u21B5\",\n lArr: \"\\u21D0\",\n uArr: \"\\u21D1\",\n rArr: \"\\u21D2\",\n dArr: \"\\u21D3\",\n hArr: \"\\u21D4\",\n forall: \"\\u2200\",\n part: \"\\u2202\",\n exist: \"\\u2203\",\n empty: \"\\u2205\",\n nabla: \"\\u2207\",\n isin: \"\\u2208\",\n notin: \"\\u2209\",\n ni: \"\\u220B\",\n prod: \"\\u220F\",\n sum: \"\\u2211\",\n minus: \"\\u2212\",\n lowast: \"\\u2217\",\n radic: \"\\u221A\",\n prop: \"\\u221D\",\n infin: \"\\u221E\",\n ang: \"\\u2220\",\n and: \"\\u2227\",\n or: \"\\u2228\",\n cap: \"\\u2229\",\n cup: \"\\u222A\",\n int: \"\\u222B\",\n there4: \"\\u2234\",\n sim: \"\\u223C\",\n cong: \"\\u2245\",\n asymp: \"\\u2248\",\n ne: \"\\u2260\",\n equiv: \"\\u2261\",\n le: \"\\u2264\",\n ge: \"\\u2265\",\n sub: \"\\u2282\",\n sup: \"\\u2283\",\n nsub: \"\\u2284\",\n sube: \"\\u2286\",\n supe: \"\\u2287\",\n oplus: \"\\u2295\",\n otimes: \"\\u2297\",\n perp: \"\\u22A5\",\n sdot: \"\\u22C5\",\n lceil: \"\\u2308\",\n rceil: \"\\u2309\",\n lfloor: \"\\u230A\",\n rfloor: \"\\u230B\",\n lang: \"\\u2329\",\n rang: \"\\u232A\",\n loz: \"\\u25CA\",\n spades: \"\\u2660\",\n clubs: \"\\u2663\",\n hearts: \"\\u2665\",\n diams: \"\\u2666\",\n} as const;\nexport default entities;\n","import * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n|[\\r\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n switch (code) {\n case charCodes.lineFeed:\n case charCodes.carriageReturn:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return true;\n\n default:\n return false;\n }\n}\n\nexport function hasNewLine(input: string, start: number, end: number): boolean {\n for (let i = start; i < end; i++) {\n if (isNewLine(input.charCodeAt(i))) {\n return true;\n }\n }\n return false;\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nexport const skipWhiteSpaceInLine =\n /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n switch (code) {\n case 0x0009: // CHARACTER TABULATION\n case 0x000b: // LINE TABULATION\n case 0x000c: // FORM FEED\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.oghamSpaceMark:\n case 0x2000: // EN QUAD\n case 0x2001: // EM QUAD\n case 0x2002: // EN SPACE\n case 0x2003: // EM SPACE\n case 0x2004: // THREE-PER-EM SPACE\n case 0x2005: // FOUR-PER-EM SPACE\n case 0x2006: // SIX-PER-EM SPACE\n case 0x2007: // FIGURE SPACE\n case 0x2008: // PUNCTUATION SPACE\n case 0x2009: // THIN SPACE\n case 0x200a: // HAIR SPACE\n case 0x202f: // NARROW NO-BREAK SPACE\n case 0x205f: // MEDIUM MATHEMATICAL SPACE\n case 0x3000: // IDEOGRAPHIC SPACE\n case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n return true;\n\n default:\n return false;\n }\n}\n","import * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml.ts\";\nimport type Parser from \"../../parser/index.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport {\n tokenComesBeforeExpression,\n tokenIsKeyword,\n tokenLabelName,\n type TokenType,\n tt,\n} from \"../../tokenizer/types.ts\";\nimport type { TokContext } from \"../../tokenizer/context.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport type * as N from \"../../types.ts\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { isNewLine } from \"../../util/whitespace.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport type { Undone } from \"../../parser/node.ts\";\n\n/* eslint sort-keys: \"error\" */\nconst JsxErrors = ParseErrorEnum`jsx`({\n AttributeIsEmpty:\n \"JSX attributes must only be assigned a non-empty expression.\",\n MissingClosingTagElement: ({ openingTagName }: { openingTagName: string }) =>\n `Expected corresponding JSX closing tag for <${openingTagName}>.`,\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>.\",\n UnexpectedSequenceExpression:\n \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n // FIXME: Unify with Errors.UnexpectedToken\n UnexpectedToken: ({\n unexpected,\n HTMLEntity,\n }: {\n unexpected: string;\n HTMLEntity: string;\n }) =>\n `Unexpected token \\`${unexpected}\\`. Did you mean \\`${HTMLEntity}\\` or \\`{'${unexpected}'}\\`?`,\n UnsupportedJsxValue:\n \"JSX value should be either an expression or a quoted JSX text.\",\n UnterminatedJsxContent: \"Unterminated JSX contents.\",\n UnwrappedAdjacentJSXElements:\n \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?\",\n});\n\n/* eslint-disable sort-keys */\n\nfunction isFragment(object?: N.JSXTag | null): object is N.JSXFragmentTag {\n return object\n ? object.type === \"JSXOpeningFragment\" ||\n object.type === \"JSXClosingFragment\"\n : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n\n if (object.type === \"JSXMemberExpression\") {\n return (\n getQualifiedJSXName(object.object) +\n \".\" +\n getQualifiedJSXName(object.property)\n );\n }\n\n // istanbul ignore next\n // @ts-expect-error - object is 'never'\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport interface IJSXParserMixin {\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement;\n}\n\nexport type ClassWithMixin<\n T extends new (...args: any) => any,\n M extends object,\n> = T extends new (...args: infer P) => infer I\n ? new (...args: P) => I & M\n : never;\n\nexport default (superClass: typeof Parser) =>\n class JSXParserMixin extends superClass implements Parser, IJSXParserMixin {\n // Reads inline JSX contents token.\n\n jsxReadToken(): void {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(\n JsxErrors.UnterminatedJsxContent,\n this.state.startLoc,\n );\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n\n switch (ch) {\n case charCodes.lessThan:\n case charCodes.leftCurlyBrace:\n if (this.state.pos === this.state.start) {\n if (ch === charCodes.lessThan && this.state.canStartJSXElement) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(tt.jsxText, out);\n return;\n\n case charCodes.ampersand:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n\n case charCodes.greaterThan:\n case charCodes.rightCurlyBrace:\n if (process.env.BABEL_8_BREAKING) {\n this.raise(JsxErrors.UnexpectedToken, this.state.curPosition(), {\n unexpected: this.input[this.state.pos],\n HTMLEntity:\n ch === charCodes.rightCurlyBrace ? \"}\" : \">\",\n });\n }\n /* falls through */\n\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n\n jsxReadNewLine(normalizeCRLF: boolean): string {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (\n ch === charCodes.carriageReturn &&\n this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n } else {\n out = String.fromCharCode(ch);\n }\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n\n return out;\n }\n\n jsxReadString(quote: number): void {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(Errors.UnterminatedString, this.state.startLoc);\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === charCodes.ampersand) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(false);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n out += this.input.slice(chunkStart, this.state.pos++);\n this.finishToken(tt.string, out);\n }\n\n jsxReadEntity(): string {\n const startPos = ++this.state.pos;\n if (this.codePointAtPos(this.state.pos) === charCodes.numberSign) {\n ++this.state.pos;\n\n let radix = 10;\n if (this.codePointAtPos(this.state.pos) === charCodes.lowercaseX) {\n radix = 16;\n ++this.state.pos;\n }\n\n const codePoint = this.readInt(\n radix,\n /* len */ undefined,\n /* forceLen */ false,\n /* allowNumSeparator */ \"bail\",\n );\n if (\n codePoint !== null &&\n this.codePointAtPos(this.state.pos) === charCodes.semicolon\n ) {\n ++this.state.pos;\n return String.fromCodePoint(codePoint);\n }\n } else {\n let count = 0;\n let semi = false;\n while (\n count++ < 10 &&\n this.state.pos < this.length &&\n !(semi = this.codePointAtPos(this.state.pos) === charCodes.semicolon)\n ) {\n ++this.state.pos;\n }\n\n if (semi) {\n const desc = this.input.slice(startPos, this.state.pos);\n const entity = XHTMLEntities[desc];\n ++this.state.pos;\n\n if (entity) {\n return entity;\n }\n }\n }\n\n // Not a valid entity\n this.state.pos = startPos;\n return \"&\";\n }\n\n // Read a JSX identifier (valid tag or attribute name).\n //\n // Optimized version since JSX identifiers can\"t contain\n // escape characters and so can be read as single slice.\n // Also assumes that first character was already checked\n // by isIdentifierStart in readToken.\n\n jsxReadWord(): void {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === charCodes.dash);\n this.finishToken(tt.jsxName, this.input.slice(start, this.state.pos));\n }\n\n // Parse next token as JSX identifier\n\n jsxParseIdentifier(): N.JSXIdentifier {\n const node = this.startNode();\n if (this.match(tt.jsxName)) {\n node.name = this.state.value;\n } else if (tokenIsKeyword(this.state.type)) {\n node.name = tokenLabelName(this.state.type);\n } else {\n this.unexpected();\n }\n this.next();\n return this.finishNode(node, \"JSXIdentifier\");\n }\n\n // Parse namespaced identifier.\n\n jsxParseNamespacedName(): N.JSXNamespacedName | N.JSXIdentifier {\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(tt.colon)) return name;\n\n const node = this.startNodeAt(startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n\n // Parses element name in any form - namespaced, member\n // or single identifier.\n\n jsxParseElementName():\n | N.JSXIdentifier\n | N.JSXNamespacedName\n | N.JSXMemberExpression {\n const startLoc = this.state.startLoc;\n let node: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression =\n this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(tt.dot)) {\n const newNode = this.startNodeAt(startLoc);\n newNode.object = node;\n newNode.property = this.jsxParseIdentifier();\n node = this.finishNode(newNode, \"JSXMemberExpression\");\n }\n return node;\n }\n\n // Parses any type of JSX attribute value.\n\n jsxParseAttributeValue():\n | N.JSXExpressionContainer\n | N.JSXElement\n | N.StringLiteral {\n let node;\n switch (this.state.type) {\n case tt.braceL:\n node = this.startNode();\n this.setContext(tc.brace);\n this.next();\n node = this.jsxParseExpressionContainer(node, tc.j_oTag);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(JsxErrors.AttributeIsEmpty, node);\n }\n return node;\n\n case tt.jsxTagStart:\n case tt.string:\n return this.parseExprAtom() as N.JSXElement | N.StringLiteral;\n\n default:\n throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc);\n }\n }\n\n // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n // and so it should start at the end of last read token (left brace) and finish\n // at the beginning of the next one (right brace).\n\n jsxParseEmptyExpression(): N.JSXEmptyExpression {\n const node = this.startNodeAt(this.state.lastTokEndLoc!);\n return this.finishNodeAt(node, \"JSXEmptyExpression\", this.state.startLoc);\n }\n\n // Parse JSX spread child\n\n jsxParseSpreadChild(node: Undone): N.JSXSpreadChild {\n this.next(); // ellipsis\n node.expression = this.parseExpression();\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n\n // Parses JSX expression enclosed into curly brackets.\n\n jsxParseExpressionContainer(\n node: Undone,\n previousContext: TokContext,\n ): N.JSXExpressionContainer {\n if (this.match(tt.braceR)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n expression.type === \"SequenceExpression\" &&\n !expression.extra?.parenthesized\n ) {\n this.raise(\n JsxErrors.UnexpectedSequenceExpression,\n expression.expressions[1],\n );\n }\n }\n\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n\n // Parses following JSX attribute name-value pair.\n\n jsxParseAttribute(): N.JSXAttribute | N.JSXSpreadAttribute {\n const node = this.startNode();\n if (this.match(tt.braceL)) {\n this.setContext(tc.brace);\n this.next();\n this.expect(tt.ellipsis);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(tc.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n\n // Parses JSX opening tag starting after \"<\".\n\n jsxParseOpeningElementAt(\n startLoc: Position,\n ): N.JSXOpeningElement | N.JSXOpeningFragment {\n const node = this.startNodeAt(\n startLoc,\n );\n if (this.eat(tt.jsxTagEnd)) {\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(\n node as Undone,\n );\n }\n\n jsxParseOpeningElementAfterName(\n node: Undone,\n ): N.JSXOpeningElement {\n const attributes: (N.JSXAttribute | N.JSXSpreadAttribute)[] = [];\n while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(tt.slash);\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n\n // Parses JSX closing tag starting after \"(\n startLoc,\n );\n if (this.eat(tt.jsxTagEnd)) {\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n node.name = this.jsxParseElementName();\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXClosingElement\");\n }\n\n // Parses entire JSX element, including it\"s opening tag\n // (starting after \"<\"), attributes, contents and closing tag.\n\n jsxParseElementAt(startLoc: Position): N.JSXElement | N.JSXFragment {\n const node = this.startNodeAt(startLoc);\n const children = [];\n const openingElement = this.jsxParseOpeningElementAt(startLoc);\n let closingElement = null;\n\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.state.type) {\n case tt.jsxTagStart:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(tt.slash)) {\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n\n case tt.jsxText:\n children.push(this.parseLiteral(this.state.value, \"JSXText\"));\n break;\n\n case tt.braceL: {\n const node = this.startNode<\n N.JSXSpreadChild | N.JSXExpressionContainer\n >();\n this.setContext(tc.brace);\n this.next();\n if (this.match(tt.ellipsis)) {\n children.push(this.jsxParseSpreadChild(node));\n } else {\n children.push(\n this.jsxParseExpressionContainer(node, tc.j_expr),\n );\n }\n\n break;\n }\n // istanbul ignore next - should never happen\n default:\n this.unexpected();\n }\n }\n\n if (\n isFragment(openingElement) &&\n !isFragment(closingElement) &&\n closingElement !== null\n ) {\n this.raise(JsxErrors.MissingClosingTagFragment, closingElement);\n } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\n } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n if (\n getQualifiedJSXName(closingElement.name) !==\n getQualifiedJSXName(openingElement.name)\n ) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\n }\n }\n }\n\n if (isFragment(openingElement)) {\n node.openingFragment = openingElement;\n node.closingFragment = closingElement;\n } else {\n node.openingElement = openingElement;\n node.closingElement = closingElement;\n }\n node.children = children;\n if (this.match(tt.lt)) {\n throw this.raise(\n JsxErrors.UnwrappedAdjacentJSXElements,\n this.state.startLoc,\n );\n }\n\n return isFragment(openingElement)\n ? this.finishNode(node, \"JSXFragment\")\n : this.finishNode(node, \"JSXElement\");\n }\n\n // Parses entire JSX element from current position.\n\n jsxParseElement(): N.JSXElement | N.JSXFragment {\n const startLoc = this.state.startLoc;\n this.next();\n return this.jsxParseElementAt(startLoc);\n }\n\n setContext(newContext: TokContext) {\n const { context } = this.state;\n context[context.length - 1] = newContext;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseExprAtom(refExpressionErrors?: ExpressionErrors | null): N.Expression {\n if (this.match(tt.jsxTagStart)) {\n return this.jsxParseElement();\n } else if (\n this.match(tt.lt) &&\n this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n ) {\n // In case we encounter an lt token here it will always be the start of\n // jsx as the lt sign is not allowed in places that expect an expression\n this.replaceToken(tt.jsxTagStart);\n return this.jsxParseElement();\n } else {\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n\n skipSpace() {\n const curContext = this.curContext();\n if (!curContext.preserveSpace) super.skipSpace();\n }\n\n getTokenFromCode(code: number): void {\n const context = this.curContext();\n\n if (context === tc.j_expr) {\n this.jsxReadToken();\n return;\n }\n\n if (context === tc.j_oTag || context === tc.j_cTag) {\n if (isIdentifierStart(code)) {\n this.jsxReadWord();\n return;\n }\n\n if (code === charCodes.greaterThan) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagEnd);\n return;\n }\n\n if (\n (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n context === tc.j_oTag\n ) {\n this.jsxReadString(code);\n return;\n }\n }\n\n if (\n code === charCodes.lessThan &&\n this.state.canStartJSXElement &&\n this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n ) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n return;\n }\n\n super.getTokenFromCode(code);\n }\n\n updateContext(prevType: TokenType): void {\n const { context, type } = this.state;\n if (type === tt.slash && prevType === tt.jsxTagStart) {\n // do not consider JSX expr -> JSX open tag -> ... anymore\n // reconsider as closing tag context\n context.splice(-2, 2, tc.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === tt.jsxTagStart) {\n // start opening tag context\n context.push(tc.j_oTag);\n } else if (type === tt.jsxTagEnd) {\n const out = context[context.length - 1];\n if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n context.pop();\n this.state.canStartJSXElement =\n context[context.length - 1] === tc.j_expr;\n } else {\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n }\n } else {\n this.state.canStartJSXElement = tokenComesBeforeExpression(type);\n }\n }\n };\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { NameType, Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\nimport { Errors } from \"../../parse-error.ts\";\n\nconst enum TsNameType {\n Types = 1 << 0,\n // enums (which are also in .types)\n Enums = 1 << 1,\n // const enums (which are also in .enums and .types)\n ConstEnums = 1 << 2,\n // classes (which are also in .lexical) and interface (which are also in .types)\n Classes = 1 << 3,\n // namespaces and ambient functions (or classes) are too difficult to track,\n // especially without type analysis.\n // We need to track them anyway, to avoid \"X is not defined\" errors\n // when exporting them.\n ExportOnlyBindings = 1 << 4,\n}\n\nclass TypeScriptScope extends Scope {\n tsNames = new Map();\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler {\n importsStack: Set[] = [];\n\n createScope(flags: ScopeFlag): TypeScriptScope {\n this.importsStack.push(new Set()); // Always keep the top-level scope for export checks.\n\n return new TypeScriptScope(flags);\n }\n\n enter(flags: ScopeFlag): void {\n if (flags === ScopeFlag.TS_MODULE) {\n this.importsStack.push(new Set());\n }\n\n super.enter(flags);\n }\n\n exit() {\n const flags = super.exit();\n\n if (flags === ScopeFlag.TS_MODULE) {\n this.importsStack.pop();\n }\n\n return flags;\n }\n\n hasImport(name: string, allowShadow?: boolean) {\n const len = this.importsStack.length;\n if (this.importsStack[len - 1].has(name)) {\n return true;\n }\n if (!allowShadow && len > 1) {\n for (let i = 0; i < len - 1; i++) {\n if (this.importsStack[i].has(name)) return true;\n }\n }\n return false;\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n if (bindingType & BindingFlag.FLAG_TS_IMPORT) {\n if (this.hasImport(name, true)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name,\n });\n }\n this.importsStack[this.importsStack.length - 1].add(name);\n return;\n }\n\n const scope = this.currentScope();\n let type = scope.tsNames.get(name) || 0;\n\n if (bindingType & BindingFlag.FLAG_TS_EXPORT_ONLY) {\n this.maybeExportDefined(scope, name);\n scope.tsNames.set(name, type | TsNameType.ExportOnlyBindings);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n\n if (bindingType & BindingFlag.KIND_TYPE) {\n if (!(bindingType & BindingFlag.KIND_VALUE)) {\n // \"Value\" bindings have already been registered by the superclass.\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n }\n type = type | TsNameType.Types;\n }\n if (bindingType & BindingFlag.FLAG_TS_ENUM) {\n type = type | TsNameType.Enums;\n }\n if (bindingType & BindingFlag.FLAG_TS_CONST_ENUM) {\n type = type | TsNameType.ConstEnums;\n }\n if (bindingType & BindingFlag.FLAG_CLASS) {\n type = type | TsNameType.Classes;\n }\n if (type) scope.tsNames.set(name, type);\n }\n\n isRedeclaredInScope(\n scope: TypeScriptScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n const type = scope.tsNames.get(name)!;\n if ((type & TsNameType.Enums) > 0) {\n if (bindingType & BindingFlag.FLAG_TS_ENUM) {\n // Enums can be merged with other enums if they are both\n // const or both non-const.\n const isConst = !!(bindingType & BindingFlag.FLAG_TS_CONST_ENUM);\n const wasConst = (type & TsNameType.ConstEnums) > 0;\n return isConst !== wasConst;\n }\n return true;\n }\n if (\n bindingType & BindingFlag.FLAG_CLASS &&\n (type & TsNameType.Classes) > 0\n ) {\n if (scope.names.get(name)! & NameType.Lexical) {\n // Classes can be merged with interfaces\n return !!(bindingType & BindingFlag.KIND_VALUE);\n } else {\n // Interface can be merged with other classes or interfaces\n return false;\n }\n }\n if (bindingType & BindingFlag.KIND_TYPE && (type & TsNameType.Types) > 0) {\n return true;\n }\n\n return super.isRedeclaredInScope(scope, name, bindingType);\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n\n if (this.hasImport(name)) return;\n\n const len = this.scopeStack.length;\n for (let i = len - 1; i >= 0; i--) {\n const scope = this.scopeStack[i];\n const type = scope.tsNames.get(name)!;\n if (\n (type & TsNameType.Types) > 0 ||\n (type & TsNameType.ExportOnlyBindings) > 0\n ) {\n return;\n }\n }\n\n super.checkLocalExport(id);\n }\n}\n","// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n// async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n// ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport const enum ParamKind {\n // Initial Parameter flags\n PARAM = 0b0000,\n // track [Yield] production parameter\n PARAM_YIELD = 0b0001,\n // track [Await] production parameter\n PARAM_AWAIT = 0b0010,\n // track [Return] production parameter\n PARAM_RETURN = 0b0100,\n // track [In] production parameter\n PARAM_IN = 0b1000,\n}\n\n// todo(flow->ts) - check if more granular type can be used,\n// type below is not good because things like PARAM_AWAIT|PARAM_YIELD are not included\n// export type ParamKind =\n// | typeof PARAM\n// | typeof PARAM_AWAIT\n// | typeof PARAM_IN\n// | typeof PARAM_RETURN\n// | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n stacks: ParamKind[] = [];\n enter(flags: ParamKind) {\n this.stacks.push(flags);\n }\n\n exit() {\n this.stacks.pop();\n }\n\n currentFlags(): ParamKind {\n return this.stacks[this.stacks.length - 1];\n }\n\n get hasAwait(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_AWAIT) > 0;\n }\n\n get hasYield(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_YIELD) > 0;\n }\n\n get hasReturn(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_RETURN) > 0;\n }\n\n get hasIn(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_IN) > 0;\n }\n}\n\nexport function functionFlags(\n isAsync: boolean,\n isGenerator: boolean,\n): ParamKind {\n return (\n (isAsync ? ParamKind.PARAM_AWAIT : 0) |\n (isGenerator ? ParamKind.PARAM_YIELD : 0)\n );\n}\n","import type { OptionFlags, Options } from \"../options.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type { PluginsMap } from \"./index.ts\";\nimport type ScopeHandler from \"../util/scope.ts\";\nimport type ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport type ClassScopeHandler from \"../util/class-scope.ts\";\nimport type ProductionParameterHandler from \"../util/production-parameter.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"../typings.ts\";\nimport type * as N from \"../types.ts\";\n\nexport default class BaseParser {\n // Properties set by constructor in index.js\n declare options: Options;\n declare optionFlags: OptionFlags;\n declare inModule: boolean;\n declare scope: ScopeHandler;\n declare classScope: ClassScopeHandler;\n declare prodParam: ProductionParameterHandler;\n declare expressionScope: ExpressionScopeHandler;\n declare plugins: PluginsMap;\n declare filename: string | undefined | null;\n declare startIndex: number;\n // Names of exports store. `default` is stored as a name for both\n // `export default foo;` and `export { foo as default };`.\n declare exportedIdentifiers: Set;\n sawUnambiguousESM: boolean = false;\n ambiguousScriptDifferentAst: boolean = false;\n\n // Initialized by Tokenizer\n declare state: State;\n // input and length are not in state as they are constant and we do\n // not want to ever copy them, which happens if state gets cloned\n declare input: string;\n declare length: number;\n // Comment store for Program.comments\n declare comments: N.Comment[];\n\n sourceToOffsetPos(sourcePos: number) {\n return sourcePos + this.startIndex;\n }\n\n offsetToSourcePos(offsetPos: number) {\n return offsetPos - this.startIndex;\n }\n\n // This method accepts either a string (plugin name) or an array pair\n // (plugin name and options object). If an options object is given,\n // then each value is non-recursively checked for identity with that\n // plugin’s actual option value.\n hasPlugin(pluginConfig: PluginConfig): boolean {\n if (typeof pluginConfig === \"string\") {\n return this.plugins.has(pluginConfig);\n } else {\n const [pluginName, pluginOptions] = pluginConfig;\n if (!this.hasPlugin(pluginName)) {\n return false;\n }\n const actualOptions = this.plugins.get(pluginName);\n for (const key of Object.keys(\n pluginOptions,\n ) as (keyof typeof pluginOptions)[]) {\n if (actualOptions?.[key] !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n\n getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions,\n >(plugin: PluginName, name: OptionName) {\n return (this.plugins.get(plugin) as null | PluginOptions)?.[\n name\n ];\n }\n}\n","/*:: declare var invariant; */\n\nimport BaseParser from \"./base.ts\";\nimport type { Comment, Node } from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { Undone } from \"./node.ts\";\n\n/**\n * A whitespace token containing comments\n */\nexport type CommentWhitespace = {\n /**\n * the start of the whitespace token.\n */\n start: number;\n /**\n * the end of the whitespace token.\n */\n end: number;\n /**\n * the containing comments\n */\n comments: Comment[];\n /**\n * the immediately preceding AST node of the whitespace token\n */\n leadingNode: Node | null;\n /**\n * the immediately following AST node of the whitespace token\n */\n trailingNode: Node | null;\n /**\n * the innermost AST node containing the whitespace with minimal size (|end - start|)\n */\n containingNode: Node | null;\n};\n\n/**\n * Merge comments with node's trailingComments or assign comments to be\n * trailingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setTrailingComments(node: Undone, comments: Comment[]) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's leadingComments or assign comments to be\n * leadingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setLeadingComments(node: Undone, comments: Comment[]) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's innerComments or assign comments to be\n * innerComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nexport function setInnerComments(node: Undone, comments: Comment[]) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\n\n/**\n * Given node and elements array, if elements has non-null element,\n * merge comments to its trailingComments, otherwise merge comments\n * to node's innerComments\n */\nfunction adjustInnerComments(\n node: Undone,\n elements: (Node | null)[],\n commentWS: CommentWhitespace,\n) {\n let lastElement = null;\n let i = elements.length;\n while (lastElement === null && i > 0) {\n lastElement = elements[--i];\n }\n if (lastElement === null || lastElement.start > commentWS.start) {\n setInnerComments(node, commentWS.comments);\n } else {\n setTrailingComments(lastElement, commentWS.comments);\n }\n}\n\nexport default class CommentsParser extends BaseParser {\n addComment(comment: Comment): void {\n if (this.filename) comment.loc.filename = this.filename;\n const { commentsLen } = this.state;\n if (this.comments.length !== commentsLen) {\n this.comments.length = commentsLen;\n }\n this.comments.push(comment);\n this.state.commentsLen++;\n }\n\n /**\n * Given a newly created AST node _n_, attach _n_ to a comment whitespace _w_ if applicable\n * {@see {@link CommentWhitespace}}\n */\n processComment(node: Node): void {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n\n const { start: nodeStart } = node;\n // invariant: for all 0 <= j <= i, let c = commentStack[j], c must satisfy c.end < node.end\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n // by definition of commentWhiteSpace, this implies commentWS.start > nodeStart\n // so node can be a containingNode candidate. At this time we can finalize the comment\n // whitespace, because\n // 1) its leadingNode or trailingNode, if exists, will not change\n // 2) its containingNode have been assigned and will not change because it is the\n // innermost minimal-sized AST node\n commentWS.containingNode = node;\n this.finalizeComment(commentWS);\n commentStack.splice(i, 1);\n } else {\n if (commentEnd === nodeStart) {\n commentWS.trailingNode = node;\n }\n // stop the loop when commentEnd <= nodeStart\n break;\n }\n }\n }\n\n /**\n * Assign the comments of comment whitespaces to related AST nodes.\n * Also adjust innerComments following trailing comma.\n */\n finalizeComment(commentWS: CommentWhitespace) {\n const { comments } = commentWS;\n if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) {\n if (commentWS.leadingNode !== null) {\n setTrailingComments(commentWS.leadingNode, comments);\n }\n if (commentWS.trailingNode !== null) {\n setLeadingComments(commentWS.trailingNode, comments);\n }\n } else {\n /*:: invariant(commentWS.containingNode !== null) */\n const node = commentWS.containingNode!;\n const commentStart = commentWS.start;\n if (\n this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) ===\n charCodes.comma\n ) {\n // If a commentWhitespace follows a comma and the containingNode allows\n // list structures with trailing comma, merge it to the trailingComment\n // of the last non-null list element\n switch (node.type) {\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n adjustInnerComments(node, node.properties, commentWS);\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n adjustInnerComments(node, node.arguments, commentWS);\n break;\n case \"ImportExpression\":\n adjustInnerComments(\n node,\n [node.source, node.options ?? null],\n commentWS,\n );\n break;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ArrowFunctionExpression\":\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n adjustInnerComments(node, node.params, commentWS);\n break;\n case \"ArrayExpression\":\n case \"ArrayPattern\":\n adjustInnerComments(node, node.elements, commentWS);\n break;\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n adjustInnerComments(node, node.specifiers, commentWS);\n break;\n case \"TSEnumDeclaration\":\n if (!process.env.BABEL_8_BREAKING) {\n adjustInnerComments(node, node.members!, commentWS);\n } else {\n setInnerComments(node, comments);\n }\n break;\n case \"TSEnumBody\":\n adjustInnerComments(node, node.members, commentWS);\n break;\n default: {\n if (!process.env.BABEL_8_BREAKING) {\n if (node.type === \"RecordExpression\") {\n adjustInnerComments(node, node.properties, commentWS);\n break;\n }\n if (node.type === \"TupleExpression\") {\n adjustInnerComments(node, node.elements, commentWS);\n break;\n }\n }\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n\n /**\n * Drains remaining commentStack and applies finalizeComment\n * to each comment whitespace. Used only in parseExpression\n * where the top level AST node is _not_ Program\n * {@see {@link CommentsParser#finalizeComment}}\n */\n finalizeRemainingComments() {\n const { commentStack } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node trailing comments. Used in object / class\n * property parsing. We parse `async`, `static`, `set` and `get`\n * as an identifier but may reinterpret it into an async/static/accessor\n * method later. In this case the identifier is not part of the AST and we\n * should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * async /* 1 *​/ function f() {}\n * ```\n * the comment whitespace `/* 1 *​/` has leading node Identifier(async). When\n * we see the function token, we create a Function node and mark `/* 1 *​/` as\n * inner comments. So `/* 1 *​/` should be detached from the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousNodeTrailingComments(node: Node) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n\n /**\n * Attach a node to the comment whitespaces right before/after\n * the given range.\n *\n * This is used to properly attach comments around parenthesized\n * expressions as leading/trailing comments of the inner expression.\n */\n takeSurroundingComments(node: Node, start: number, end: number) {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n\n if (commentStart === end) {\n commentWS.leadingNode = node;\n } else if (commentEnd === start) {\n commentWS.trailingNode = node;\n } else if (commentEnd < start) {\n break;\n }\n }\n }\n}\n","import type { OptionsWithDefaults } from \"../options.ts\";\nimport type { CommentWhitespace } from \"../parser/comments\";\nimport { Position } from \"../util/location.ts\";\n\nimport { types as ct, type TokContext } from \"./context.ts\";\nimport { tt, type TokenType } from \"./types.ts\";\nimport type { Errors } from \"../parse-error.ts\";\nimport type { ParseError } from \"../parse-error.ts\";\n\nexport type DeferredStrictError =\n | typeof Errors.StrictNumericEscape\n | typeof Errors.StrictOctalLiteral;\n\ntype TopicContextState = {\n // When a topic binding has been currently established,\n // then this is 1. Otherwise, it is 0. This is forwards compatible\n // with a future plugin for multiple lexical topics.\n maxNumOfResolvableTopics: number;\n // When a topic binding has been currently established, and if that binding\n // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n // `null`. This is forwards compatible with a future plugin for multiple\n // lexical topics.\n maxTopicIndex: null | 0;\n};\n\nexport const enum LoopLabelKind {\n Loop = 1,\n Switch = 2,\n}\n\ndeclare const bit: import(\"../../../../scripts/babel-plugin-bit-decorator/types.d.ts\").BitDecorator;\n\nexport default class State {\n @bit.storage flags: number = 0;\n\n @bit accessor strict = false;\n\n startIndex!: number;\n curLine!: number;\n lineStart!: number;\n\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n startLoc!: Position;\n endLoc!: Position;\n\n init({\n strictMode,\n sourceType,\n startIndex,\n startLine,\n startColumn,\n }: OptionsWithDefaults): void {\n this.strict =\n strictMode === false\n ? false\n : strictMode === true\n ? true\n : sourceType === \"module\";\n\n this.startIndex = startIndex;\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(\n startLine,\n startColumn,\n startIndex,\n );\n }\n\n errors: ParseError[] = [];\n\n // Used to signify the start of a potential arrow function\n potentialArrowAt: number = -1;\n\n // Used to signify the start of an expression which looks like a\n // typed arrow function, but it isn't\n // e.g. a ? (b) : c => d\n // ^\n noArrowAt: number[] = [];\n\n // Used to signify the start of an expression whose params, if it looks like\n // an arrow function, shouldn't be converted to assignable nodes.\n // This is used to defer the validation of typed arrow functions inside\n // conditional expressions.\n // e.g. a ? (b) : c => d\n // ^\n noArrowParamsConversionAt: number[] = [];\n\n // Flags to track\n @bit accessor maybeInArrowParameters = false;\n @bit accessor inType = false;\n @bit accessor noAnonFunctionType = false;\n @bit accessor hasFlowComment = false;\n @bit accessor isAmbientContext = false;\n @bit accessor inAbstractClass = false;\n @bit accessor inDisallowConditionalTypesContext = false;\n\n // For the Hack-style pipelines plugin\n topicContext: TopicContextState = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null,\n };\n\n // For the F#-style pipelines plugin\n @bit accessor soloAwait = false;\n @bit accessor inFSharpPipelineDirectBody = false;\n\n // Labels in scope.\n labels: {\n kind: LoopLabelKind | null;\n name?: string | null;\n statementStart?: number;\n }[] = [];\n\n commentsLen = 0;\n // Comment attachment store\n commentStack: CommentWhitespace[] = [];\n\n // The current position of the tokenizer in the input.\n pos: number = 0;\n\n // Properties of the current token:\n // Its type\n type: TokenType = tt.eof;\n\n // For tokens that include more information than their type, the value\n value: any = null;\n\n // Its start and end offset\n start: number = 0;\n end: number = 0;\n\n // Position information for the previous token\n // this is initialized when generating the second token.\n lastTokEndLoc: Position | null = null;\n // this is initialized when generating the second token.\n lastTokStartLoc: Position | null = null;\n\n // The context stack is used to track whether the apostrophe \"`\" starts\n // or ends a string template\n context: TokContext[] = [ct.brace];\n\n // Used to track whether a JSX element is allowed to form\n @bit accessor canStartJSXElement = true;\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n @bit accessor containsEsc = false;\n\n // Used to track invalid escape sequences in template literals,\n // that must be reported if the template is not tagged.\n firstInvalidTemplateEscapePos: null | Position = null;\n\n @bit accessor hasTopLevelAwait = false;\n\n // This property is used to track the following errors\n // - StrictNumericEscape\n // - StrictOctalLiteral\n //\n // in a literal that occurs prior to/immediately after a \"use strict\" directive.\n\n // todo(JLHwung): set strictErrors to null and avoid recording string errors\n // after a non-directive is parsed\n strictErrors = new Map();\n\n // Tokens length in token store\n tokensLength: number = 0;\n\n /**\n * When we add a new property, we must manually update the `clone` method\n * @see State#clone\n */\n\n curPosition(): Position {\n return new Position(\n this.curLine,\n this.pos - this.lineStart,\n this.pos + this.startIndex,\n );\n }\n\n clone(): State {\n const state = new State();\n state.flags = this.flags;\n state.startIndex = this.startIndex;\n state.curLine = this.curLine;\n state.lineStart = this.lineStart;\n state.startLoc = this.startLoc;\n state.endLoc = this.endLoc;\n state.errors = this.errors.slice();\n state.potentialArrowAt = this.potentialArrowAt;\n state.noArrowAt = this.noArrowAt.slice();\n state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice();\n state.topicContext = this.topicContext;\n state.labels = this.labels.slice();\n state.commentsLen = this.commentsLen;\n state.commentStack = this.commentStack.slice();\n state.pos = this.pos;\n state.type = this.type;\n state.value = this.value;\n state.start = this.start;\n state.end = this.end;\n state.lastTokEndLoc = this.lastTokEndLoc;\n state.lastTokStartLoc = this.lastTokStartLoc;\n state.context = this.context.slice();\n state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos;\n state.strictErrors = this.strictErrors;\n state.tokensLength = this.tokensLength;\n\n return state;\n }\n}\n\nexport type LookaheadState = {\n pos: number;\n value: any;\n type: TokenType;\n start: number;\n end: number;\n context: TokContext[];\n startLoc: Position;\n lastTokEndLoc: Position | null;\n curLine: number;\n lineStart: number;\n curPosition: State[\"curPosition\"];\n /* Used only in readToken_mult_modulo */\n inType: boolean;\n // These boolean properties are not initialized in createLookaheadState()\n // instead they will only be set by the tokenizer\n containsEsc?: boolean;\n};\n","// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","/*:: declare var invariant; */\n\nimport type { OptionsWithDefaults } from \"../options.ts\";\nimport { OptionFlags } from \"../options.ts\";\nimport {\n Position,\n SourceLocation,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport CommentsParser, { type CommentWhitespace } from \"../parser/comments.ts\";\nimport type * as N from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier.ts\";\nimport {\n tokenIsKeyword,\n tokenLabelName,\n tt,\n keywords as keywordTypes,\n type TokenType,\n} from \"./types.ts\";\nimport type { TokContext } from \"./context.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n} from \"../parse-error.ts\";\nimport {\n lineBreakG,\n isNewLine,\n isWhitespace,\n skipWhiteSpace,\n skipWhiteSpaceInLine,\n} from \"../util/whitespace.ts\";\nimport State from \"./state.ts\";\nimport type { LookaheadState, DeferredStrictError } from \"./state.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { Node } from \"../types.ts\";\n\nimport {\n readInt,\n readCodePoint,\n readStringContents,\n type IntErrorHandlers,\n type CodePointErrorHandlers,\n type StringContentsErrorHandlers,\n} from \"@babel/helper-string-parser\";\n\nimport type { Plugin } from \"../typings.ts\";\n\nfunction buildPosition(pos: number, lineStart: number, curLine: number) {\n return new Position(curLine, pos - lineStart, pos);\n}\n\nconst VALID_REGEX_FLAGS = new Set([\n charCodes.lowercaseG,\n charCodes.lowercaseM,\n charCodes.lowercaseS,\n charCodes.lowercaseI,\n charCodes.lowercaseY,\n charCodes.lowercaseU,\n charCodes.lowercaseD,\n charCodes.lowercaseV,\n]);\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(state: State) {\n const startIndex = state.startIndex || 0;\n this.type = state.type;\n this.value = state.value;\n this.start = startIndex + state.start;\n this.end = startIndex + state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n\n declare type: TokenType;\n declare value: any;\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default abstract class Tokenizer extends CommentsParser {\n isLookahead: boolean;\n\n // Token store.\n tokens: (Token | N.Comment)[] = [];\n\n constructor(options: OptionsWithDefaults, input: string) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.comments = [];\n this.isLookahead = false;\n }\n\n pushToken(token: Token | N.Comment) {\n // Pop out invalid tokens trapped by try-catch parsing.\n // Those parsing branches are mainly created by typescript and flow plugins.\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n\n // Move to the next token\n\n next(): void {\n this.checkKeywordEscapes();\n if (this.optionFlags & OptionFlags.Tokens) {\n this.pushToken(new Token(this.state));\n }\n\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n\n eat(type: TokenType): boolean {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Whether current token matches given type\n */\n match(type: TokenType): boolean {\n return this.state.type === type;\n }\n\n /**\n * Create a LookaheadState from current parser state\n */\n createLookaheadState(state: State): LookaheadState {\n return {\n pos: state.pos,\n value: null,\n type: state.type,\n start: state.start,\n end: state.end,\n context: [this.curContext()],\n inType: state.inType,\n startLoc: state.startLoc,\n lastTokEndLoc: state.lastTokEndLoc,\n curLine: state.curLine,\n lineStart: state.lineStart,\n curPosition: state.curPosition,\n };\n }\n\n /**\n * lookahead peeks the next token, skipping changes to token context and\n * comment stack. For performance it returns a limited LookaheadState\n * instead of full parser state.\n *\n * The { column, line } Loc info is not included in lookahead since such usage\n * is rare. Although it may return other location properties e.g. `curLine` and\n * `lineStart`, these properties are not listed in the LookaheadState interface\n * and thus the returned value is _NOT_ reliable.\n *\n * The tokenizer should make best efforts to avoid using any parser state\n * other than those defined in LookaheadState\n */\n lookahead(): LookaheadState {\n const old = this.state;\n // @ts-expect-error For performance we use a simplified tokenizer state structure\n this.state = this.createLookaheadState(old);\n\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n\n const curr = this.state;\n this.state = old;\n return curr;\n }\n\n nextTokenStart(): number {\n return this.nextTokenStartSince(this.state.pos);\n }\n\n nextTokenStartSince(pos: number): number {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n\n lookaheadCharCode(): number {\n return this.lookaheadCharCodeSince(this.state.pos);\n }\n\n lookaheadCharCodeSince(pos: number): number {\n return this.input.charCodeAt(this.nextTokenStartSince(pos));\n }\n\n /**\n * Similar to nextToken, but it will stop at line break when it is seen before the next token\n *\n * @returns {number} position of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n nextTokenInLineStart(): number {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n\n nextTokenInLineStartSince(pos: number): number {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input)\n ? skipWhiteSpaceInLine.lastIndex\n : pos;\n }\n\n /**\n * Similar to lookaheadCharCode, but it will return the char code of line break if it is\n * seen before the next token\n *\n * @returns {number} char code of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n lookaheadInLineCharCode(): number {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n\n codePointAtPos(pos: number): number {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `input` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = this.input.charCodeAt(pos);\n if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) {\n const trail = this.input.charCodeAt(pos);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n return cp;\n }\n\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n setStrict(strict: boolean): void {\n this.state.strict = strict;\n if (strict) {\n // Throw an error for any string decimal escape found before/immediately\n // after a \"use strict\" directive. Strict mode will be set at parse\n // time for any literals that occur after the next node of the strict\n // directive.\n this.state.strictErrors.forEach(([toParseError, at]) =>\n this.raise(toParseError, at),\n );\n this.state.strictErrors.clear();\n }\n }\n\n curContext(): TokContext {\n return this.state.context[this.state.context.length - 1];\n }\n\n // Read a single token, updating the parser object's token-related properties.\n nextToken(): void {\n this.skipSpace();\n this.state.start = this.state.pos;\n if (!this.isLookahead) this.state.startLoc = this.state.curPosition();\n if (this.state.pos >= this.length) {\n this.finishToken(tt.eof);\n return;\n }\n\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n\n // Skips a block comment, whose end is marked by commentEnd.\n // *-/ is used by the Flow plugin, when parsing block comments nested\n // inside Flow comments.\n skipBlockComment(commentEnd: \"*/\" | \"*-/\"): N.CommentBlock | undefined {\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n const start = this.state.pos;\n const end = this.input.indexOf(commentEnd, start + 2);\n if (end === -1) {\n // We have to call this again here because startLoc may not be set...\n // This seems to be for performance reasons:\n // https://github.com/babel/babel/commit/acf2a10899f696a8aaf34df78bf9725b5ea7f2da\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n\n this.state.pos = end + commentEnd.length;\n lineBreakG.lastIndex = start + 2;\n while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) {\n ++this.state.curLine;\n this.state.lineStart = lineBreakG.lastIndex;\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const comment: N.CommentBlock = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start: this.sourceToOffsetPos(start),\n end: this.sourceToOffsetPos(end + commentEnd.length),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n loc: new SourceLocation(startLoc!, this.state.curPosition()),\n };\n if (this.optionFlags & OptionFlags.Tokens) this.pushToken(comment);\n return comment;\n }\n\n skipLineComment(startSkip: number): N.CommentLine | undefined {\n const start = this.state.pos;\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n let ch = this.input.charCodeAt((this.state.pos += startSkip));\n if (this.state.pos < this.length) {\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n\n const comment: N.CommentLine = {\n type: \"CommentLine\",\n value,\n start: this.sourceToOffsetPos(start),\n end: this.sourceToOffsetPos(end),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n loc: new SourceLocation(startLoc!, this.state.curPosition()),\n };\n if (this.optionFlags & OptionFlags.Tokens) this.pushToken(comment);\n return comment;\n }\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n skipSpace(): void {\n const spaceStart = this.state.pos;\n const comments: N.Comment[] | null =\n this.optionFlags & OptionFlags.AttachComment ? [] : null;\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.tab:\n ++this.state.pos;\n break;\n case charCodes.carriageReturn:\n if (\n this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n }\n // fall through\n case charCodes.lineFeed:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n\n case charCodes.slash:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case charCodes.asterisk: {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n break;\n }\n\n case charCodes.slash: {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n break;\n }\n\n default:\n break loop;\n }\n break;\n\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (\n ch === charCodes.dash &&\n !this.inModule &&\n this.optionFlags & OptionFlags.AnnexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.dash &&\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan &&\n (spaceStart === 0 || this.state.lineStart > spaceStart)\n ) {\n // A `-->` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.optionFlags & OptionFlags.AnnexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // `") : ''); + } else if (node.parentNode) { + var newNode = document.createElement('span'); + node.parentNode.replaceChild(newNode, node); + newNode.outerHTML = newOuterHTML; + } + }, + nest: function nest(mutation) { + var node = mutation[0]; + var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it. + // Short-circuit to the standard replacement + + if (~classArray(node).indexOf(config.replacementClass)) { + return mutators.replace(mutation); + } + + var forSvg = new RegExp("".concat(config.familyPrefix, "-.*")); + delete abstract[0].attributes.style; + delete abstract[0].attributes.id; + var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) { + if (cls === config.replacementClass || cls.match(forSvg)) { + acc.toSvg.push(cls); + } else { + acc.toNode.push(cls); + } + + return acc; + }, { + toNode: [], + toSvg: [] + }); + abstract[0].attributes.class = splitClasses.toSvg.join(' '); + var newInnerHTML = abstract.map(function (a) { + return toHtml(a); + }).join('\n'); + node.setAttribute('class', splitClasses.toNode.join(' ')); + node.setAttribute(DATA_FA_I2SVG, ''); + node.innerHTML = newInnerHTML; + } +}; + +function performOperationSync(op) { + op(); +} + +function perform(mutations, callback) { + var callbackFunction = typeof callback === 'function' ? callback : noop$2; + + if (mutations.length === 0) { + callbackFunction(); + } else { + var frame = performOperationSync; + + if (config.mutateApproach === MUTATION_APPROACH_ASYNC) { + frame = WINDOW.requestAnimationFrame || performOperationSync; + } + + frame(function () { + var mutator = getMutator(); + var mark = perf.begin('mutate'); + mutations.map(mutator); + mark(); + callbackFunction(); + }); + } +} +var disabled = false; +function disableObservation() { + disabled = true; +} +function enableObservation() { + disabled = false; +} +var mo = null; +function observe(options) { + if (!MUTATION_OBSERVER) { + return; + } + + if (!config.observeMutations) { + return; + } + + var treeCallback = options.treeCallback, + nodeCallback = options.nodeCallback, + pseudoElementsCallback = options.pseudoElementsCallback, + _options$observeMutat = options.observeMutationsRoot, + observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat; + mo = new MUTATION_OBSERVER(function (objects) { + if (disabled) return; + toArray(objects).forEach(function (mutationRecord) { + if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { + if (config.searchPseudoElements) { + pseudoElementsCallback(mutationRecord.target); + } + + treeCallback(mutationRecord.target); + } + + if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) { + pseudoElementsCallback(mutationRecord.target.parentNode); + } + + if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { + if (mutationRecord.attributeName === 'class') { + var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)), + prefix = _getCanonicalIcon.prefix, + iconName = _getCanonicalIcon.iconName; + + if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix); + if (iconName) mutationRecord.target.setAttribute('data-icon', iconName); + } else { + nodeCallback(mutationRecord.target); + } + } + }); + }); + if (!IS_DOM) return; + mo.observe(observeMutationsRoot, { + childList: true, + attributes: true, + characterData: true, + subtree: true + }); +} +function disconnect() { + if (!mo) return; + mo.disconnect(); +} + +function styleParser (node) { + var style = node.getAttribute('style'); + var val = []; + + if (style) { + val = style.split(';').reduce(function (acc, style) { + var styles = style.split(':'); + var prop = styles[0]; + var value = styles.slice(1); + + if (prop && value.length > 0) { + acc[prop] = value.join(':').trim(); + } + + return acc; + }, {}); + } + + return val; +} + +function classParser (node) { + var existingPrefix = node.getAttribute('data-prefix'); + var existingIconName = node.getAttribute('data-icon'); + var innerText = node.innerText !== undefined ? node.innerText.trim() : ''; + var val = getCanonicalIcon(classArray(node)); + + if (existingPrefix && existingIconName) { + val.prefix = existingPrefix; + val.iconName = existingIconName; + } + + if (val.prefix && innerText.length > 1) { + val.iconName = byLigature(val.prefix, node.innerText); + } else if (val.prefix && innerText.length === 1) { + val.iconName = byUnicode(val.prefix, toHex(node.innerText)); + } + + return val; +} + +var parseTransformString = function parseTransformString(transformString) { + var transform = { + size: 16, + x: 0, + y: 0, + flipX: false, + flipY: false, + rotate: 0 + }; + + if (!transformString) { + return transform; + } else { + return transformString.toLowerCase().split(' ').reduce(function (acc, n) { + var parts = n.toLowerCase().split('-'); + var first = parts[0]; + var rest = parts.slice(1).join('-'); + + if (first && rest === 'h') { + acc.flipX = true; + return acc; + } + + if (first && rest === 'v') { + acc.flipY = true; + return acc; + } + + rest = parseFloat(rest); + + if (isNaN(rest)) { + return acc; + } + + switch (first) { + case 'grow': + acc.size = acc.size + rest; + break; + + case 'shrink': + acc.size = acc.size - rest; + break; + + case 'left': + acc.x = acc.x - rest; + break; + + case 'right': + acc.x = acc.x + rest; + break; + + case 'up': + acc.y = acc.y - rest; + break; + + case 'down': + acc.y = acc.y + rest; + break; + + case 'rotate': + acc.rotate = acc.rotate + rest; + break; + } + + return acc; + }, transform); + } +}; +function transformParser (node) { + return parseTransformString(node.getAttribute('data-fa-transform')); +} + +function symbolParser (node) { + var symbol = node.getAttribute('data-fa-symbol'); + return symbol === null ? false : symbol === '' ? true : symbol; +} + +function attributesParser (node) { + var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) { + if (acc.name !== 'class' && acc.name !== 'style') { + acc[attr.name] = attr.value; + } + + return acc; + }, {}); + var title = node.getAttribute('title'); + var titleId = node.getAttribute('data-fa-title-id'); + + if (config.autoA11y) { + if (title) { + extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); + } else { + extraAttributes['aria-hidden'] = 'true'; + extraAttributes['focusable'] = 'false'; + } + } + + return extraAttributes; +} + +function maskParser (node) { + var mask = node.getAttribute('data-fa-mask'); + + if (!mask) { + return emptyCanonicalIcon(); + } else { + return getCanonicalIcon(mask.split(' ').map(function (i) { + return i.trim(); + })); + } +} + +function blankMeta() { + return { + iconName: null, + title: null, + titleId: null, + prefix: null, + transform: meaninglessTransform, + symbol: false, + mask: null, + maskId: null, + extra: { + classes: [], + styles: {}, + attributes: {} + } + }; +} +function parseMeta(node) { + var _classParser = classParser(node), + iconName = _classParser.iconName, + prefix = _classParser.prefix, + extraClasses = _classParser.rest; + + var extraStyles = styleParser(node); + var transform = transformParser(node); + var symbol = symbolParser(node); + var extraAttributes = attributesParser(node); + var mask = maskParser(node); + return { + iconName: iconName, + title: node.getAttribute('title'), + titleId: node.getAttribute('data-fa-title-id'), + prefix: prefix, + transform: transform, + symbol: symbol, + mask: mask, + maskId: node.getAttribute('data-fa-mask-id'), + extra: { + classes: extraClasses, + styles: extraStyles, + attributes: extraAttributes + } + }; +} + +function MissingIcon(error) { + this.name = 'MissingIcon'; + this.message = error || 'Icon unavailable'; + this.stack = new Error().stack; +} +MissingIcon.prototype = Object.create(Error.prototype); +MissingIcon.prototype.constructor = MissingIcon; + +var FILL = { + fill: 'currentColor' +}; +var ANIMATION_BASE = { + attributeType: 'XML', + repeatCount: 'indefinite', + dur: '2s' +}; +var RING = { + tag: 'path', + attributes: _objectSpread({}, FILL, { + d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z' + }) +}; + +var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, { + attributeName: 'opacity' +}); + +var DOT = { + tag: 'circle', + attributes: _objectSpread({}, FILL, { + cx: '256', + cy: '364', + r: '28' + }), + children: [{ + tag: 'animate', + attributes: _objectSpread({}, ANIMATION_BASE, { + attributeName: 'r', + values: '28;14;28;28;14;28;' + }) + }, { + tag: 'animate', + attributes: _objectSpread({}, OPACITY_ANIMATE, { + values: '1;0;1;1;0;1;' + }) + }] +}; +var QUESTION = { + tag: 'path', + attributes: _objectSpread({}, FILL, { + opacity: '1', + d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z' + }), + children: [{ + tag: 'animate', + attributes: _objectSpread({}, OPACITY_ANIMATE, { + values: '1;0;0;0;0;1;' + }) + }] +}; +var EXCLAMATION = { + tag: 'path', + attributes: _objectSpread({}, FILL, { + opacity: '0', + d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z' + }), + children: [{ + tag: 'animate', + attributes: _objectSpread({}, OPACITY_ANIMATE, { + values: '0;0;1;1;0;0;' + }) + }] +}; +var missing = { + tag: 'g', + children: [RING, DOT, QUESTION, EXCLAMATION] +}; + +var styles$2 = namespace.styles; +function asFoundIcon(icon) { + var width = icon[0]; + var height = icon[1]; + + var _icon$slice = icon.slice(4), + _icon$slice2 = _slicedToArray(_icon$slice, 1), + vectorData = _icon$slice2[0]; + + var element = null; + + if (Array.isArray(vectorData)) { + element = { + tag: 'g', + attributes: { + class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.GROUP) + }, + children: [{ + tag: 'path', + attributes: { + class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY), + fill: 'currentColor', + d: vectorData[0] + } + }, { + tag: 'path', + attributes: { + class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY), + fill: 'currentColor', + d: vectorData[1] + } + }] + }; + } else { + element = { + tag: 'path', + attributes: { + fill: 'currentColor', + d: vectorData + } + }; + } + + return { + found: true, + width: width, + height: height, + icon: element + }; +} +function findIcon(iconName, prefix) { + return new picked(function (resolve, reject) { + var val = { + found: false, + width: 512, + height: 512, + icon: missing + }; + + if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) { + var icon = styles$2[prefix][iconName]; + return resolve(asFoundIcon(icon)); + } + + if (iconName && prefix && !config.showMissingIcons) { + reject(new MissingIcon("Icon is missing for prefix ".concat(prefix, " with icon name ").concat(iconName))); + } else { + resolve(val); + } + }); +} + +var styles$3 = namespace.styles; + +function generateSvgReplacementMutation(node, nodeMeta) { + var iconName = nodeMeta.iconName, + title = nodeMeta.title, + titleId = nodeMeta.titleId, + prefix = nodeMeta.prefix, + transform = nodeMeta.transform, + symbol = nodeMeta.symbol, + mask = nodeMeta.mask, + maskId = nodeMeta.maskId, + extra = nodeMeta.extra; + return new picked(function (resolve, reject) { + picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + main = _ref2[0], + mask = _ref2[1]; + + resolve([node, makeInlineSvgAbstract({ + icons: { + main: main, + mask: mask + }, + prefix: prefix, + iconName: iconName, + transform: transform, + symbol: symbol, + mask: mask, + maskId: maskId, + title: title, + titleId: titleId, + extra: extra, + watchable: true + })]); + }); + }); +} + +function generateLayersText(node, nodeMeta) { + var title = nodeMeta.title, + transform = nodeMeta.transform, + extra = nodeMeta.extra; + var width = null; + var height = null; + + if (IS_IE) { + var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10); + var boundingClientRect = node.getBoundingClientRect(); + width = boundingClientRect.width / computedFontSize; + height = boundingClientRect.height / computedFontSize; + } + + if (config.autoA11y && !title) { + extra.attributes['aria-hidden'] = 'true'; + } + + return picked.resolve([node, makeLayersTextAbstract({ + content: node.innerHTML, + width: width, + height: height, + transform: transform, + title: title, + extra: extra, + watchable: true + })]); +} + +function generateMutation(node) { + var nodeMeta = parseMeta(node); + + if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { + return generateLayersText(node, nodeMeta); + } else { + return generateSvgReplacementMutation(node, nodeMeta); + } +} + +function onTree(root) { + var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (!IS_DOM) return; + var htmlClassList = DOCUMENT.documentElement.classList; + + var hclAdd = function hclAdd(suffix) { + return htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); + }; + + var hclRemove = function hclRemove(suffix) { + return htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); + }; + + var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3); + var prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(function (p) { + return ".".concat(p, ":not([").concat(DATA_FA_I2SVG, "])"); + })).join(', '); + + if (prefixesDomQuery.length === 0) { + return; + } + + var candidates = []; + + try { + candidates = toArray(root.querySelectorAll(prefixesDomQuery)); + } catch (e) {// noop + } + + if (candidates.length > 0) { + hclAdd('pending'); + hclRemove('complete'); + } else { + return; + } + + var mark = perf.begin('onTree'); + var mutations = candidates.reduce(function (acc, node) { + try { + var mutation = generateMutation(node); + + if (mutation) { + acc.push(mutation); + } + } catch (e) { + if (!PRODUCTION) { + if (e instanceof MissingIcon) { + console.error(e); + } + } + } + + return acc; + }, []); + return new picked(function (resolve, reject) { + picked.all(mutations).then(function (resolvedMutations) { + perform(resolvedMutations, function () { + hclAdd('active'); + hclAdd('complete'); + hclRemove('pending'); + if (typeof callback === 'function') callback(); + mark(); + resolve(); + }); + }).catch(function () { + mark(); + reject(); + }); + }); +} +function onNode(node) { + var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + generateMutation(node).then(function (mutation) { + if (mutation) { + perform([mutation], callback); + } + }); +} + +function replaceForPosition(node, position) { + var pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-')); + return new picked(function (resolve, reject) { + if (node.getAttribute(pendingAttribute) !== null) { + // This node is already being processed + return resolve(); + } + + var children = toArray(node.children); + var alreadyProcessedPseudoElement = children.filter(function (c) { + return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position; + })[0]; + var styles = WINDOW.getComputedStyle(node, position); + var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN); + var fontWeight = styles.getPropertyValue('font-weight'); + var content = styles.getPropertyValue('content'); + + if (alreadyProcessedPseudoElement && !fontFamily) { + // If we've already processed it but the current computed style does not result in a font-family, + // that probably means that a class name that was previously present to make the icon has been + // removed. So we now should delete the icon. + node.removeChild(alreadyProcessedPseudoElement); + return resolve(); + } else if (fontFamily && content !== 'none' && content !== '') { + var _content = styles.getPropertyValue('content'); + + var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight]; + var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content); + var iconName = byUnicode(prefix, hexValue); + var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't + // already done so with the same prefix and iconName + + if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) { + node.setAttribute(pendingAttribute, iconIdentifier); + + if (alreadyProcessedPseudoElement) { + // Delete the old one, since we're replacing it with a new one + node.removeChild(alreadyProcessedPseudoElement); + } + + var meta = blankMeta(); + var extra = meta.extra; + extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position; + findIcon(iconName, prefix).then(function (main) { + var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, { + icons: { + main: main, + mask: emptyCanonicalIcon() + }, + prefix: prefix, + iconName: iconIdentifier, + extra: extra, + watchable: true + })); + var element = DOCUMENT.createElement('svg'); + + if (position === ':before') { + node.insertBefore(element, node.firstChild); + } else { + node.appendChild(element); + } + + element.outerHTML = abstract.map(function (a) { + return toHtml(a); + }).join('\n'); + node.removeAttribute(pendingAttribute); + resolve(); + }).catch(reject); + } else { + resolve(); + } + } else { + resolve(); + } + }); +} + +function replace(node) { + return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]); +} + +function processable(node) { + return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg'); +} + +function searchPseudoElements (root) { + if (!IS_DOM) return; + return new picked(function (resolve, reject) { + var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace); + var end = perf.begin('searchPseudoElements'); + disableObservation(); + picked.all(operations).then(function () { + end(); + enableObservation(); + resolve(); + }).catch(function () { + end(); + enableObservation(); + reject(); + }); + }); +} + +var baseStyles = "svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}"; + +function css () { + var dfp = DEFAULT_FAMILY_PREFIX; + var drc = DEFAULT_REPLACEMENT_CLASS; + var fp = config.familyPrefix; + var rc = config.replacementClass; + var s = baseStyles; + + if (fp !== dfp || rc !== drc) { + var dPatt = new RegExp("\\.".concat(dfp, "\\-"), 'g'); + var customPropPatt = new RegExp("\\--".concat(dfp, "\\-"), 'g'); + var rPatt = new RegExp("\\.".concat(drc), 'g'); + s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc)); + } + + return s; +} + +var Library = +/*#__PURE__*/ +function () { + function Library() { + _classCallCheck(this, Library); + + this.definitions = {}; + } + + _createClass(Library, [{ + key: "add", + value: function add() { + var _this = this; + + for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) { + definitions[_key] = arguments[_key]; + } + + var additions = definitions.reduce(this._pullDefinitions, {}); + Object.keys(additions).forEach(function (key) { + _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]); + defineIcons(key, additions[key]); + build(); + }); + } + }, { + key: "reset", + value: function reset() { + this.definitions = {}; + } + }, { + key: "_pullDefinitions", + value: function _pullDefinitions(additions, definition) { + var normalized = definition.prefix && definition.iconName && definition.icon ? { + 0: definition + } : definition; + Object.keys(normalized).map(function (key) { + var _normalized$key = normalized[key], + prefix = _normalized$key.prefix, + iconName = _normalized$key.iconName, + icon = _normalized$key.icon; + if (!additions[prefix]) additions[prefix] = {}; + additions[prefix][iconName] = icon; + }); + return additions; + } + }]); + + return Library; +}(); + +function ensureCss() { + if (config.autoAddCss && !_cssInserted) { + insertCss(css()); + + _cssInserted = true; + } +} + +function apiObject(val, abstractCreator) { + Object.defineProperty(val, 'abstract', { + get: abstractCreator + }); + Object.defineProperty(val, 'html', { + get: function get() { + return val.abstract.map(function (a) { + return toHtml(a); + }); + } + }); + Object.defineProperty(val, 'node', { + get: function get() { + if (!IS_DOM) return; + var container = DOCUMENT.createElement('div'); + container.innerHTML = val.html; + return container.children; + } + }); + return val; +} + +function findIconDefinition(iconLookup) { + var _iconLookup$prefix = iconLookup.prefix, + prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix, + iconName = iconLookup.iconName; + if (!iconName) return; + return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName); +} + +function resolveIcons(next) { + return function (maybeIconDefinition) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); + var mask = params.mask; + + if (mask) { + mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); + } + + return next(iconDefinition, _objectSpread({}, params, { + mask: mask + })); + }; +} + +var library = new Library(); +var noAuto = function noAuto() { + config.autoReplaceSvg = false; + config.observeMutations = false; + disconnect(); +}; +var _cssInserted = false; +var dom = { + i2svg: function i2svg() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + if (IS_DOM) { + ensureCss(); + var _params$node = params.node, + node = _params$node === void 0 ? DOCUMENT : _params$node, + _params$callback = params.callback, + callback = _params$callback === void 0 ? function () {} : _params$callback; + + if (config.searchPseudoElements) { + searchPseudoElements(node); + } + + return onTree(node, callback); + } else { + return picked.reject('Operation requires a DOM of some kind.'); + } + }, + css: css, + insertCss: function insertCss$$1() { + if (!_cssInserted) { + insertCss(css()); + + _cssInserted = true; + } + }, + watch: function watch() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var autoReplaceSvgRoot = params.autoReplaceSvgRoot, + observeMutationsRoot = params.observeMutationsRoot; + + if (config.autoReplaceSvg === false) { + config.autoReplaceSvg = true; + } + + config.observeMutations = true; + domready(function () { + autoReplace({ + autoReplaceSvgRoot: autoReplaceSvgRoot + }); + observe({ + treeCallback: onTree, + nodeCallback: onNode, + pseudoElementsCallback: searchPseudoElements, + observeMutationsRoot: observeMutationsRoot + }); + }); + } +}; +var parse = { + transform: function transform(transformString) { + return parseTransformString(transformString); + } +}; +var icon = resolveIcons(function (iconDefinition) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$transform = params.transform, + transform = _params$transform === void 0 ? meaninglessTransform : _params$transform, + _params$symbol = params.symbol, + symbol = _params$symbol === void 0 ? false : _params$symbol, + _params$mask = params.mask, + mask = _params$mask === void 0 ? null : _params$mask, + _params$maskId = params.maskId, + maskId = _params$maskId === void 0 ? null : _params$maskId, + _params$title = params.title, + title = _params$title === void 0 ? null : _params$title, + _params$titleId = params.titleId, + titleId = _params$titleId === void 0 ? null : _params$titleId, + _params$classes = params.classes, + classes = _params$classes === void 0 ? [] : _params$classes, + _params$attributes = params.attributes, + attributes = _params$attributes === void 0 ? {} : _params$attributes, + _params$styles = params.styles, + styles = _params$styles === void 0 ? {} : _params$styles; + if (!iconDefinition) return; + var prefix = iconDefinition.prefix, + iconName = iconDefinition.iconName, + icon = iconDefinition.icon; + return apiObject(_objectSpread({ + type: 'icon' + }, iconDefinition), function () { + ensureCss(); + + if (config.autoA11y) { + if (title) { + attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); + } else { + attributes['aria-hidden'] = 'true'; + attributes['focusable'] = 'false'; + } + } + + return makeInlineSvgAbstract({ + icons: { + main: asFoundIcon(icon), + mask: mask ? asFoundIcon(mask.icon) : { + found: false, + width: null, + height: null, + icon: {} + } + }, + prefix: prefix, + iconName: iconName, + transform: _objectSpread({}, meaninglessTransform, transform), + symbol: symbol, + title: title, + maskId: maskId, + titleId: titleId, + extra: { + attributes: attributes, + styles: styles, + classes: classes + } + }); + }); +}); +var text = function text(content) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$transform2 = params.transform, + transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2, + _params$title2 = params.title, + title = _params$title2 === void 0 ? null : _params$title2, + _params$classes2 = params.classes, + classes = _params$classes2 === void 0 ? [] : _params$classes2, + _params$attributes2 = params.attributes, + attributes = _params$attributes2 === void 0 ? {} : _params$attributes2, + _params$styles2 = params.styles, + styles = _params$styles2 === void 0 ? {} : _params$styles2; + return apiObject({ + type: 'text', + content: content + }, function () { + ensureCss(); + return makeLayersTextAbstract({ + content: content, + transform: _objectSpread({}, meaninglessTransform, transform), + title: title, + extra: { + attributes: attributes, + styles: styles, + classes: ["".concat(config.familyPrefix, "-layers-text")].concat(_toConsumableArray(classes)) + } + }); + }); +}; +var counter = function counter(content) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$title3 = params.title, + title = _params$title3 === void 0 ? null : _params$title3, + _params$classes3 = params.classes, + classes = _params$classes3 === void 0 ? [] : _params$classes3, + _params$attributes3 = params.attributes, + attributes = _params$attributes3 === void 0 ? {} : _params$attributes3, + _params$styles3 = params.styles, + styles = _params$styles3 === void 0 ? {} : _params$styles3; + return apiObject({ + type: 'counter', + content: content + }, function () { + ensureCss(); + return makeLayersCounterAbstract({ + content: content.toString(), + title: title, + extra: { + attributes: attributes, + styles: styles, + classes: ["".concat(config.familyPrefix, "-layers-counter")].concat(_toConsumableArray(classes)) + } + }); + }); +}; +var layer = function layer(assembler) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$classes4 = params.classes, + classes = _params$classes4 === void 0 ? [] : _params$classes4; + return apiObject({ + type: 'layer' + }, function () { + ensureCss(); + var children = []; + assembler(function (args) { + Array.isArray(args) ? args.map(function (a) { + children = children.concat(a.abstract); + }) : children = children.concat(args.abstract); + }); + return [{ + tag: 'span', + attributes: { + class: ["".concat(config.familyPrefix, "-layers")].concat(_toConsumableArray(classes)).join(' ') + }, + children: children + }]; + }); +}; +var api = { + noAuto: noAuto, + config: config, + dom: dom, + library: library, + parse: parse, + findIconDefinition: findIconDefinition, + icon: icon, + text: text, + counter: counter, + layer: layer, + toHtml: toHtml +}; + +var autoReplace = function autoReplace() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _params$autoReplaceSv = params.autoReplaceSvgRoot, + autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv; + if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ + node: autoReplaceSvgRoot + }); +}; + +export { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition }; diff --git a/node_modules/@fortawesome/fontawesome-svg-core/index.js b/node_modules/@fortawesome/fontawesome-svg-core/index.js new file mode 100644 index 0000000..a98013a --- /dev/null +++ b/node_modules/@fortawesome/fontawesome-svg-core/index.js @@ -0,0 +1,2455 @@ +/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global['fontawesome-svg-core'] = {}))); +}(this, (function (exports) { 'use strict'; + + function _typeof(obj) { + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } + + return target; + } + + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + } + + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + } + + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } + } + + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + + function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + } + + function _iterableToArrayLimit(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + + var noop = function noop() {}; + + var _WINDOW = {}; + var _DOCUMENT = {}; + var _MUTATION_OBSERVER = null; + var _PERFORMANCE = { + mark: noop, + measure: noop + }; + + try { + if (typeof window !== 'undefined') _WINDOW = window; + if (typeof document !== 'undefined') _DOCUMENT = document; + if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver; + if (typeof performance !== 'undefined') _PERFORMANCE = performance; + } catch (e) {} + + var _ref = _WINDOW.navigator || {}, + _ref$userAgent = _ref.userAgent, + userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent; + + var WINDOW = _WINDOW; + var DOCUMENT = _DOCUMENT; + var MUTATION_OBSERVER = _MUTATION_OBSERVER; + var PERFORMANCE = _PERFORMANCE; + var IS_BROWSER = !!WINDOW.document; + var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; + var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); + + var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; + var UNITS_IN_GRID = 16; + var DEFAULT_FAMILY_PREFIX = 'fa'; + var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa'; + var DATA_FA_I2SVG = 'data-fa-i2svg'; + var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element'; + var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending'; + var DATA_PREFIX = 'data-prefix'; + var DATA_ICON = 'data-icon'; + var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg'; + var MUTATION_APPROACH_ASYNC = 'async'; + var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT']; + var PRODUCTION = function () { + try { + return process.env.NODE_ENV === 'production'; + } catch (e) { + return false; + } + }(); + var PREFIX_TO_STYLE = { + 'fas': 'solid', + 'far': 'regular', + 'fal': 'light', + 'fad': 'duotone', + 'fab': 'brands', + 'fak': 'kit', + 'fa': 'solid' + }; + var STYLE_TO_PREFIX = { + 'solid': 'fas', + 'regular': 'far', + 'light': 'fal', + 'duotone': 'fad', + 'brands': 'fab', + 'kit': 'fak' + }; + var LAYERS_TEXT_CLASSNAME = 'fa-layers-text'; + var FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements? + + var FONT_WEIGHT_TO_PREFIX = { + '900': 'fas', + '400': 'far', + 'normal': 'far', + '300': 'fal' + }; + var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]); + var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask']; + var DUOTONE_CLASSES = { + GROUP: 'group', + SWAP_OPACITY: 'swap-opacity', + PRIMARY: 'primary', + SECONDARY: 'secondary' + }; + var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) { + return "".concat(n, "x"); + })).concat(oneToTwenty.map(function (n) { + return "w-".concat(n); + })); + + var initial = WINDOW.FontAwesomeConfig || {}; + + function getAttrConfig(attr) { + var element = DOCUMENT.querySelector('script[' + attr + ']'); + + if (element) { + return element.getAttribute(attr); + } + } + + function coerce(val) { + // Getting an empty string will occur if the attribute is set on the HTML tag but without a value + // We'll assume that this is an indication that it should be toggled to true + // For example + if (val === '') return true; + if (val === 'false') return false; + if (val === 'true') return true; + return val; + } + + if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') { + var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']]; + attrs.forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + attr = _ref2[0], + key = _ref2[1]; + + var val = coerce(getAttrConfig(attr)); + + if (val !== undefined && val !== null) { + initial[key] = val; + } + }); + } + + var _default = { + familyPrefix: DEFAULT_FAMILY_PREFIX, + replacementClass: DEFAULT_REPLACEMENT_CLASS, + autoReplaceSvg: true, + autoAddCss: true, + autoA11y: true, + searchPseudoElements: false, + observeMutations: true, + mutateApproach: 'async', + keepOriginalSource: true, + measurePerformance: false, + showMissingIcons: true + }; + + var _config = _objectSpread({}, _default, initial); + + if (!_config.autoReplaceSvg) _config.observeMutations = false; + + var config = _objectSpread({}, _config); + + WINDOW.FontAwesomeConfig = config; + + var w = WINDOW || {}; + if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; + if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; + if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; + if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; + var namespace = w[NAMESPACE_IDENTIFIER]; + + var functions = []; + + var listener = function listener() { + DOCUMENT.removeEventListener('DOMContentLoaded', listener); + loaded = 1; + functions.map(function (fn) { + return fn(); + }); + }; + + var loaded = false; + + if (IS_DOM) { + loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); + if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener); + } + + function domready (fn) { + if (!IS_DOM) return; + loaded ? setTimeout(fn, 0) : functions.push(fn); + } + + var PENDING = 'pending'; + var SETTLED = 'settled'; + var FULFILLED = 'fulfilled'; + var REJECTED = 'rejected'; + + var NOOP = function NOOP() {}; + + var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function'; + var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate; + var asyncQueue = []; + var asyncTimer; + + function asyncFlush() { + // run promise callbacks + for (var i = 0; i < asyncQueue.length; i++) { + asyncQueue[i][0](asyncQueue[i][1]); + } // reset async asyncQueue + + + asyncQueue = []; + asyncTimer = false; + } + + function asyncCall(callback, arg) { + asyncQueue.push([callback, arg]); + + if (!asyncTimer) { + asyncTimer = true; + asyncSetTimer(asyncFlush, 0); + } + } + + function invokeResolver(resolver, promise) { + function resolvePromise(value) { + resolve(promise, value); + } + + function rejectPromise(reason) { + reject(promise, reason); + } + + try { + resolver(resolvePromise, rejectPromise); + } catch (e) { + rejectPromise(e); + } + } + + function invokeCallback(subscriber) { + var owner = subscriber.owner; + var settled = owner._state; + var value = owner._data; + var callback = subscriber[settled]; + var promise = subscriber.then; + + if (typeof callback === 'function') { + settled = FULFILLED; + + try { + value = callback(value); + } catch (e) { + reject(promise, e); + } + } + + if (!handleThenable(promise, value)) { + if (settled === FULFILLED) { + resolve(promise, value); + } + + if (settled === REJECTED) { + reject(promise, value); + } + } + } + + function handleThenable(promise, value) { + var resolved; + + try { + if (promise === value) { + throw new TypeError('A promises callback cannot return that same promise.'); + } + + if (value && (typeof value === 'function' || _typeof(value) === 'object')) { + // then should be retrieved only once + var then = value.then; + + if (typeof then === 'function') { + then.call(value, function (val) { + if (!resolved) { + resolved = true; + + if (value === val) { + fulfill(promise, val); + } else { + resolve(promise, val); + } + } + }, function (reason) { + if (!resolved) { + resolved = true; + reject(promise, reason); + } + }); + return true; + } + } + } catch (e) { + if (!resolved) { + reject(promise, e); + } + + return true; + } + + return false; + } + + function resolve(promise, value) { + if (promise === value || !handleThenable(promise, value)) { + fulfill(promise, value); + } + } + + function fulfill(promise, value) { + if (promise._state === PENDING) { + promise._state = SETTLED; + promise._data = value; + asyncCall(publishFulfillment, promise); + } + } + + function reject(promise, reason) { + if (promise._state === PENDING) { + promise._state = SETTLED; + promise._data = reason; + asyncCall(publishRejection, promise); + } + } + + function publish(promise) { + promise._then = promise._then.forEach(invokeCallback); + } + + function publishFulfillment(promise) { + promise._state = FULFILLED; + publish(promise); + } + + function publishRejection(promise) { + promise._state = REJECTED; + publish(promise); + + if (!promise._handled && isNode) { + global.process.emit('unhandledRejection', promise._data, promise); + } + } + + function notifyRejectionHandled(promise) { + global.process.emit('rejectionHandled', promise); + } + /** + * @class + */ + + + function P(resolver) { + if (typeof resolver !== 'function') { + throw new TypeError('Promise resolver ' + resolver + ' is not a function'); + } + + if (this instanceof P === false) { + throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.'); + } + + this._then = []; + invokeResolver(resolver, this); + } + + P.prototype = { + constructor: P, + _state: PENDING, + _then: null, + _data: undefined, + _handled: false, + then: function then(onFulfillment, onRejection) { + var subscriber = { + owner: this, + then: new this.constructor(NOOP), + fulfilled: onFulfillment, + rejected: onRejection + }; + + if ((onRejection || onFulfillment) && !this._handled) { + this._handled = true; + + if (this._state === REJECTED && isNode) { + asyncCall(notifyRejectionHandled, this); + } + } + + if (this._state === FULFILLED || this._state === REJECTED) { + // already resolved, call callback async + asyncCall(invokeCallback, subscriber); + } else { + // subscribe + this._then.push(subscriber); + } + + return subscriber.then; + }, + catch: function _catch(onRejection) { + return this.then(null, onRejection); + } + }; + + P.all = function (promises) { + if (!Array.isArray(promises)) { + throw new TypeError('You must pass an array to Promise.all().'); + } + + return new P(function (resolve, reject) { + var results = []; + var remaining = 0; + + function resolver(index) { + remaining++; + return function (value) { + results[index] = value; + + if (! --remaining) { + resolve(results); + } + }; + } + + for (var i = 0, promise; i < promises.length; i++) { + promise = promises[i]; + + if (promise && typeof promise.then === 'function') { + promise.then(resolver(i), reject); + } else { + results[i] = promise; + } + } + + if (!remaining) { + resolve(results); + } + }); + }; + + P.race = function (promises) { + if (!Array.isArray(promises)) { + throw new TypeError('You must pass an array to Promise.race().'); + } + + return new P(function (resolve, reject) { + for (var i = 0, promise; i < promises.length; i++) { + promise = promises[i]; + + if (promise && typeof promise.then === 'function') { + promise.then(resolve, reject); + } else { + resolve(promise); + } + } + }); + }; + + P.resolve = function (value) { + if (value && _typeof(value) === 'object' && value.constructor === P) { + return value; + } + + return new P(function (resolve) { + resolve(value); + }); + }; + + P.reject = function (reason) { + return new P(function (resolve, reject) { + reject(reason); + }); + }; + + var picked = typeof Promise === 'function' ? Promise : P; + + var d = UNITS_IN_GRID; + var meaninglessTransform = { + size: 16, + x: 0, + y: 0, + rotate: 0, + flipX: false, + flipY: false + }; + + function isReserved(name) { + return ~RESERVED_CLASSES.indexOf(name); + } + function insertCss(css) { + if (!css || !IS_DOM) { + return; + } + + var style = DOCUMENT.createElement('style'); + style.setAttribute('type', 'text/css'); + style.innerHTML = css; + var headChildren = DOCUMENT.head.childNodes; + var beforeChild = null; + + for (var i = headChildren.length - 1; i > -1; i--) { + var child = headChildren[i]; + var tagName = (child.tagName || '').toUpperCase(); + + if (['STYLE', 'LINK'].indexOf(tagName) > -1) { + beforeChild = child; + } + } + + DOCUMENT.head.insertBefore(style, beforeChild); + return css; + } + var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + function nextUniqueId() { + var size = 12; + var id = ''; + + while (size-- > 0) { + id += idPool[Math.random() * 62 | 0]; + } + + return id; + } + function toArray(obj) { + var array = []; + + for (var i = (obj || []).length >>> 0; i--;) { + array[i] = obj[i]; + } + + return array; + } + function classArray(node) { + if (node.classList) { + return toArray(node.classList); + } else { + return (node.getAttribute('class') || '').split(' ').filter(function (i) { + return i; + }); + } + } + function getIconName(familyPrefix, cls) { + var parts = cls.split('-'); + var prefix = parts[0]; + var iconName = parts.slice(1).join('-'); + + if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) { + return iconName; + } else { + return null; + } + } + function htmlEscape(str) { + return "".concat(str).replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(//g, '>'); + } + function joinAttributes(attributes) { + return Object.keys(attributes || {}).reduce(function (acc, attributeName) { + return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" "); + }, '').trim(); + } + function joinStyles(styles) { + return Object.keys(styles || {}).reduce(function (acc, styleName) { + return acc + "".concat(styleName, ": ").concat(styles[styleName], ";"); + }, ''); + } + function transformIsMeaningful(transform) { + return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY; + } + function transformForSvg(_ref) { + var transform = _ref.transform, + containerWidth = _ref.containerWidth, + iconWidth = _ref.iconWidth; + var outer = { + transform: "translate(".concat(containerWidth / 2, " 256)") + }; + var innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") "); + var innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") "); + var innerRotate = "rotate(".concat(transform.rotate, " 0 0)"); + var inner = { + transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) + }; + var path = { + transform: "translate(".concat(iconWidth / 2 * -1, " -256)") + }; + return { + outer: outer, + inner: inner, + path: path + }; + } + function transformForCss(_ref2) { + var transform = _ref2.transform, + _ref2$width = _ref2.width, + width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width, + _ref2$height = _ref2.height, + height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height, + _ref2$startCentered = _ref2.startCentered, + startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered; + var val = ''; + + if (startCentered && IS_IE) { + val += "translate(".concat(transform.x / d - width / 2, "em, ").concat(transform.y / d - height / 2, "em) "); + } else if (startCentered) { + val += "translate(calc(-50% + ".concat(transform.x / d, "em), calc(-50% + ").concat(transform.y / d, "em)) "); + } else { + val += "translate(".concat(transform.x / d, "em, ").concat(transform.y / d, "em) "); + } + + val += "scale(".concat(transform.size / d * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d * (transform.flipY ? -1 : 1), ") "); + val += "rotate(".concat(transform.rotate, "deg) "); + return val; + } + + var ALL_SPACE = { + x: 0, + y: 0, + width: '100%', + height: '100%' + }; + + function fillBlack(abstract) { + var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + if (abstract.attributes && (abstract.attributes.fill || force)) { + abstract.attributes.fill = 'black'; + } + + return abstract; + } + + function deGroup(abstract) { + if (abstract.tag === 'g') { + return abstract.children; + } else { + return [abstract]; + } + } + + function makeIconMasking (_ref) { + var children = _ref.children, + attributes = _ref.attributes, + main = _ref.main, + mask = _ref.mask, + explicitMaskId = _ref.maskId, + transform = _ref.transform; + var mainWidth = main.width, + mainPath = main.icon; + var maskWidth = mask.width, + maskPath = mask.icon; + var trans = transformForSvg({ + transform: transform, + containerWidth: maskWidth, + iconWidth: mainWidth + }); + var maskRect = { + tag: 'rect', + attributes: _objectSpread({}, ALL_SPACE, { + fill: 'white' + }) + }; + var maskInnerGroupChildrenMixin = mainPath.children ? { + children: mainPath.children.map(fillBlack) + } : {}; + var maskInnerGroup = { + tag: 'g', + attributes: _objectSpread({}, trans.inner), + children: [fillBlack(_objectSpread({ + tag: mainPath.tag, + attributes: _objectSpread({}, mainPath.attributes, trans.path) + }, maskInnerGroupChildrenMixin))] + }; + var maskOuterGroup = { + tag: 'g', + attributes: _objectSpread({}, trans.outer), + children: [maskInnerGroup] + }; + var maskId = "mask-".concat(explicitMaskId || nextUniqueId()); + var clipId = "clip-".concat(explicitMaskId || nextUniqueId()); + var maskTag = { + tag: 'mask', + attributes: _objectSpread({}, ALL_SPACE, { + id: maskId, + maskUnits: 'userSpaceOnUse', + maskContentUnits: 'userSpaceOnUse' + }), + children: [maskRect, maskOuterGroup] + }; + var defs = { + tag: 'defs', + children: [{ + tag: 'clipPath', + attributes: { + id: clipId + }, + children: deGroup(maskPath) + }, maskTag] + }; + children.push(defs, { + tag: 'rect', + attributes: _objectSpread({ + fill: 'currentColor', + 'clip-path': "url(#".concat(clipId, ")"), + mask: "url(#".concat(maskId, ")") + }, ALL_SPACE) + }); + return { + children: children, + attributes: attributes + }; + } + + function makeIconStandard (_ref) { + var children = _ref.children, + attributes = _ref.attributes, + main = _ref.main, + transform = _ref.transform, + styles = _ref.styles; + var styleString = joinStyles(styles); + + if (styleString.length > 0) { + attributes['style'] = styleString; + } + + if (transformIsMeaningful(transform)) { + var trans = transformForSvg({ + transform: transform, + containerWidth: main.width, + iconWidth: main.width + }); + children.push({ + tag: 'g', + attributes: _objectSpread({}, trans.outer), + children: [{ + tag: 'g', + attributes: _objectSpread({}, trans.inner), + children: [{ + tag: main.icon.tag, + children: main.icon.children, + attributes: _objectSpread({}, main.icon.attributes, trans.path) + }] + }] + }); + } else { + children.push(main.icon); + } + + return { + children: children, + attributes: attributes + }; + } + + function asIcon (_ref) { + var children = _ref.children, + main = _ref.main, + mask = _ref.mask, + attributes = _ref.attributes, + styles = _ref.styles, + transform = _ref.transform; + + if (transformIsMeaningful(transform) && main.found && !mask.found) { + var width = main.width, + height = main.height; + var offset = { + x: width / height / 2, + y: 0.5 + }; + attributes['style'] = joinStyles(_objectSpread({}, styles, { + 'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em") + })); + } + + return [{ + tag: 'svg', + attributes: attributes, + children: children + }]; + } + + function asSymbol (_ref) { + var prefix = _ref.prefix, + iconName = _ref.iconName, + children = _ref.children, + attributes = _ref.attributes, + symbol = _ref.symbol; + var id = symbol === true ? "".concat(prefix, "-").concat(config.familyPrefix, "-").concat(iconName) : symbol; + return [{ + tag: 'svg', + attributes: { + style: 'display: none;' + }, + children: [{ + tag: 'symbol', + attributes: _objectSpread({}, attributes, { + id: id + }), + children: children + }] + }]; + } + + function makeInlineSvgAbstract(params) { + var _params$icons = params.icons, + main = _params$icons.main, + mask = _params$icons.mask, + prefix = params.prefix, + iconName = params.iconName, + transform = params.transform, + symbol = params.symbol, + title = params.title, + maskId = params.maskId, + titleId = params.titleId, + extra = params.extra, + _params$watchable = params.watchable, + watchable = _params$watchable === void 0 ? false : _params$watchable; + + var _ref = mask.found ? mask : main, + width = _ref.width, + height = _ref.height; + + var isUploadedIcon = prefix === 'fak'; + var widthClass = isUploadedIcon ? '' : "fa-w-".concat(Math.ceil(width / height * 16)); + var attrClass = [config.replacementClass, iconName ? "".concat(config.familyPrefix, "-").concat(iconName) : '', widthClass].filter(function (c) { + return extra.classes.indexOf(c) === -1; + }).filter(function (c) { + return c !== '' || !!c; + }).concat(extra.classes).join(' '); + var content = { + children: [], + attributes: _objectSpread({}, extra.attributes, { + 'data-prefix': prefix, + 'data-icon': iconName, + 'class': attrClass, + 'role': extra.attributes.role || 'img', + 'xmlns': 'http://www.w3.org/2000/svg', + 'viewBox': "0 0 ".concat(width, " ").concat(height) + }) + }; + var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? { + width: "".concat(width / height * 16 * 0.0625, "em") + } : {}; + + if (watchable) { + content.attributes[DATA_FA_I2SVG] = ''; + } + + if (title) content.children.push({ + tag: 'title', + attributes: { + id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId()) + }, + children: [title] + }); + + var args = _objectSpread({}, content, { + prefix: prefix, + iconName: iconName, + main: main, + mask: mask, + maskId: maskId, + transform: transform, + symbol: symbol, + styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles) + }); + + var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args), + children = _ref2.children, + attributes = _ref2.attributes; + + args.children = children; + args.attributes = attributes; + + if (symbol) { + return asSymbol(args); + } else { + return asIcon(args); + } + } + function makeLayersTextAbstract(params) { + var content = params.content, + width = params.width, + height = params.height, + transform = params.transform, + title = params.title, + extra = params.extra, + _params$watchable2 = params.watchable, + watchable = _params$watchable2 === void 0 ? false : _params$watchable2; + + var attributes = _objectSpread({}, extra.attributes, title ? { + 'title': title + } : {}, { + 'class': extra.classes.join(' ') + }); + + if (watchable) { + attributes[DATA_FA_I2SVG] = ''; + } + + var styles = _objectSpread({}, extra.styles); + + if (transformIsMeaningful(transform)) { + styles['transform'] = transformForCss({ + transform: transform, + startCentered: true, + width: width, + height: height + }); + styles['-webkit-transform'] = styles['transform']; + } + + var styleString = joinStyles(styles); + + if (styleString.length > 0) { + attributes['style'] = styleString; + } + + var val = []; + val.push({ + tag: 'span', + attributes: attributes, + children: [content] + }); + + if (title) { + val.push({ + tag: 'span', + attributes: { + class: 'sr-only' + }, + children: [title] + }); + } + + return val; + } + function makeLayersCounterAbstract(params) { + var content = params.content, + title = params.title, + extra = params.extra; + + var attributes = _objectSpread({}, extra.attributes, title ? { + 'title': title + } : {}, { + 'class': extra.classes.join(' ') + }); + + var styleString = joinStyles(extra.styles); + + if (styleString.length > 0) { + attributes['style'] = styleString; + } + + var val = []; + val.push({ + tag: 'span', + attributes: attributes, + children: [content] + }); + + if (title) { + val.push({ + tag: 'span', + attributes: { + class: 'sr-only' + }, + children: [title] + }); + } + + return val; + } + + var noop$1 = function noop() {}; + + var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { + mark: noop$1, + measure: noop$1 + }; + var preamble = "FA \"5.15.4\""; + + var begin = function begin(name) { + p.mark("".concat(preamble, " ").concat(name, " begins")); + return function () { + return end(name); + }; + }; + + var end = function end(name) { + p.mark("".concat(preamble, " ").concat(name, " ends")); + p.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends")); + }; + + var perf = { + begin: begin, + end: end + }; + + /** + * Internal helper to bind a function known to have 4 arguments + * to a given context. + */ + + var bindInternal4 = function bindInternal4(func, thisContext) { + return function (a, b, c, d) { + return func.call(thisContext, a, b, c, d); + }; + }; + + /** + * # Reduce + * + * A fast object `.reduce()` implementation. + * + * @param {Object} subject The object to reduce over. + * @param {Function} fn The reducer function. + * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0]. + * @param {Object} thisContext The context for the reducer. + * @return {mixed} The final result. + */ + + + var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) { + var keys = Object.keys(subject), + length = keys.length, + iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn, + i, + key, + result; + + if (initialValue === undefined) { + i = 1; + result = subject[keys[0]]; + } else { + i = 0; + result = initialValue; + } + + for (; i < length; i++) { + key = keys[i]; + result = iterator(result, subject[key], key, subject); + } + + return result; + }; + + function toHex(unicode) { + var result = ''; + + for (var i = 0; i < unicode.length; i++) { + var hex = unicode.charCodeAt(i).toString(16); + result += ('000' + hex).slice(-4); + } + + return result; + } + + function defineIcons(prefix, icons) { + var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var _params$skipHooks = params.skipHooks, + skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks; + var normalized = Object.keys(icons).reduce(function (acc, iconName) { + var icon = icons[iconName]; + var expanded = !!icon.icon; + + if (expanded) { + acc[icon.iconName] = icon.icon; + } else { + acc[iconName] = icon; + } + + return acc; + }, {}); + + if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { + namespace.hooks.addPack(prefix, normalized); + } else { + namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized); + } + /** + * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction + * of new styles we needed to differentiate between them. Prefix `fa` is now an alias + * for `fas` so we'll easy the upgrade process for our users by automatically defining + * this as well. + */ + + + if (prefix === 'fas') { + defineIcons('fa', icons); + } + } + + var styles = namespace.styles, + shims = namespace.shims; + var _byUnicode = {}; + var _byLigature = {}; + var _byOldName = {}; + var build = function build() { + var lookup = function lookup(reducer) { + return reduce(styles, function (o, style, prefix) { + o[prefix] = reduce(style, reducer, {}); + return o; + }, {}); + }; + + _byUnicode = lookup(function (acc, icon, iconName) { + if (icon[3]) { + acc[icon[3]] = iconName; + } + + return acc; + }); + _byLigature = lookup(function (acc, icon, iconName) { + var ligatures = icon[2]; + acc[iconName] = iconName; + ligatures.forEach(function (ligature) { + acc[ligature] = iconName; + }); + return acc; + }); + var hasRegular = 'far' in styles; + _byOldName = reduce(shims, function (acc, shim) { + var oldName = shim[0]; + var prefix = shim[1]; + var iconName = shim[2]; + + if (prefix === 'far' && !hasRegular) { + prefix = 'fas'; + } + + acc[oldName] = { + prefix: prefix, + iconName: iconName + }; + return acc; + }, {}); + }; + build(); + function byUnicode(prefix, unicode) { + return (_byUnicode[prefix] || {})[unicode]; + } + function byLigature(prefix, ligature) { + return (_byLigature[prefix] || {})[ligature]; + } + function byOldName(name) { + return _byOldName[name] || { + prefix: null, + iconName: null + }; + } + + var styles$1 = namespace.styles; + var emptyCanonicalIcon = function emptyCanonicalIcon() { + return { + prefix: null, + iconName: null, + rest: [] + }; + }; + function getCanonicalIcon(values) { + return values.reduce(function (acc, cls) { + var iconName = getIconName(config.familyPrefix, cls); + + if (styles$1[cls]) { + acc.prefix = cls; + } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) { + acc.prefix = cls; + } else if (iconName) { + var shim = acc.prefix === 'fa' ? byOldName(iconName) : {}; + acc.iconName = shim.iconName || iconName; + acc.prefix = shim.prefix || acc.prefix; + } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) { + acc.rest.push(cls); + } + + return acc; + }, emptyCanonicalIcon()); + } + function iconFromMapping(mapping, prefix, iconName) { + if (mapping && mapping[prefix] && mapping[prefix][iconName]) { + return { + prefix: prefix, + iconName: iconName, + icon: mapping[prefix][iconName] + }; + } + } + + function toHtml(abstractNodes) { + var tag = abstractNodes.tag, + _abstractNodes$attrib = abstractNodes.attributes, + attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib, + _abstractNodes$childr = abstractNodes.children, + children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr; + + if (typeof abstractNodes === 'string') { + return htmlEscape(abstractNodes); + } else { + return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), ""); + } + } + + var noop$2 = function noop() {}; + + function isWatched(node) { + var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null; + return typeof i2svg === 'string'; + } + + function getMutator() { + if (config.autoReplaceSvg === true) { + return mutators.replace; + } + + var mutator = mutators[config.autoReplaceSvg]; + return mutator || mutators.replace; + } + + var mutators = { + replace: function replace(mutation) { + var node = mutation[0]; + var abstract = mutation[1]; + var newOuterHTML = abstract.map(function (a) { + return toHtml(a); + }).join('\n'); + + if (node.parentNode && node.outerHTML) { + node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? "") : ''); + } else if (node.parentNode) { + var newNode = document.createElement('span'); + node.parentNode.replaceChild(newNode, node); + newNode.outerHTML = newOuterHTML; + } + }, + nest: function nest(mutation) { + var node = mutation[0]; + var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it. + // Short-circuit to the standard replacement + + if (~classArray(node).indexOf(config.replacementClass)) { + return mutators.replace(mutation); + } + + var forSvg = new RegExp("".concat(config.familyPrefix, "-.*")); + delete abstract[0].attributes.style; + delete abstract[0].attributes.id; + var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) { + if (cls === config.replacementClass || cls.match(forSvg)) { + acc.toSvg.push(cls); + } else { + acc.toNode.push(cls); + } + + return acc; + }, { + toNode: [], + toSvg: [] + }); + abstract[0].attributes.class = splitClasses.toSvg.join(' '); + var newInnerHTML = abstract.map(function (a) { + return toHtml(a); + }).join('\n'); + node.setAttribute('class', splitClasses.toNode.join(' ')); + node.setAttribute(DATA_FA_I2SVG, ''); + node.innerHTML = newInnerHTML; + } + }; + + function performOperationSync(op) { + op(); + } + + function perform(mutations, callback) { + var callbackFunction = typeof callback === 'function' ? callback : noop$2; + + if (mutations.length === 0) { + callbackFunction(); + } else { + var frame = performOperationSync; + + if (config.mutateApproach === MUTATION_APPROACH_ASYNC) { + frame = WINDOW.requestAnimationFrame || performOperationSync; + } + + frame(function () { + var mutator = getMutator(); + var mark = perf.begin('mutate'); + mutations.map(mutator); + mark(); + callbackFunction(); + }); + } + } + var disabled = false; + function disableObservation() { + disabled = true; + } + function enableObservation() { + disabled = false; + } + var mo = null; + function observe(options) { + if (!MUTATION_OBSERVER) { + return; + } + + if (!config.observeMutations) { + return; + } + + var treeCallback = options.treeCallback, + nodeCallback = options.nodeCallback, + pseudoElementsCallback = options.pseudoElementsCallback, + _options$observeMutat = options.observeMutationsRoot, + observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat; + mo = new MUTATION_OBSERVER(function (objects) { + if (disabled) return; + toArray(objects).forEach(function (mutationRecord) { + if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { + if (config.searchPseudoElements) { + pseudoElementsCallback(mutationRecord.target); + } + + treeCallback(mutationRecord.target); + } + + if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) { + pseudoElementsCallback(mutationRecord.target.parentNode); + } + + if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { + if (mutationRecord.attributeName === 'class') { + var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)), + prefix = _getCanonicalIcon.prefix, + iconName = _getCanonicalIcon.iconName; + + if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix); + if (iconName) mutationRecord.target.setAttribute('data-icon', iconName); + } else { + nodeCallback(mutationRecord.target); + } + } + }); + }); + if (!IS_DOM) return; + mo.observe(observeMutationsRoot, { + childList: true, + attributes: true, + characterData: true, + subtree: true + }); + } + function disconnect() { + if (!mo) return; + mo.disconnect(); + } + + function styleParser (node) { + var style = node.getAttribute('style'); + var val = []; + + if (style) { + val = style.split(';').reduce(function (acc, style) { + var styles = style.split(':'); + var prop = styles[0]; + var value = styles.slice(1); + + if (prop && value.length > 0) { + acc[prop] = value.join(':').trim(); + } + + return acc; + }, {}); + } + + return val; + } + + function classParser (node) { + var existingPrefix = node.getAttribute('data-prefix'); + var existingIconName = node.getAttribute('data-icon'); + var innerText = node.innerText !== undefined ? node.innerText.trim() : ''; + var val = getCanonicalIcon(classArray(node)); + + if (existingPrefix && existingIconName) { + val.prefix = existingPrefix; + val.iconName = existingIconName; + } + + if (val.prefix && innerText.length > 1) { + val.iconName = byLigature(val.prefix, node.innerText); + } else if (val.prefix && innerText.length === 1) { + val.iconName = byUnicode(val.prefix, toHex(node.innerText)); + } + + return val; + } + + var parseTransformString = function parseTransformString(transformString) { + var transform = { + size: 16, + x: 0, + y: 0, + flipX: false, + flipY: false, + rotate: 0 + }; + + if (!transformString) { + return transform; + } else { + return transformString.toLowerCase().split(' ').reduce(function (acc, n) { + var parts = n.toLowerCase().split('-'); + var first = parts[0]; + var rest = parts.slice(1).join('-'); + + if (first && rest === 'h') { + acc.flipX = true; + return acc; + } + + if (first && rest === 'v') { + acc.flipY = true; + return acc; + } + + rest = parseFloat(rest); + + if (isNaN(rest)) { + return acc; + } + + switch (first) { + case 'grow': + acc.size = acc.size + rest; + break; + + case 'shrink': + acc.size = acc.size - rest; + break; + + case 'left': + acc.x = acc.x - rest; + break; + + case 'right': + acc.x = acc.x + rest; + break; + + case 'up': + acc.y = acc.y - rest; + break; + + case 'down': + acc.y = acc.y + rest; + break; + + case 'rotate': + acc.rotate = acc.rotate + rest; + break; + } + + return acc; + }, transform); + } + }; + function transformParser (node) { + return parseTransformString(node.getAttribute('data-fa-transform')); + } + + function symbolParser (node) { + var symbol = node.getAttribute('data-fa-symbol'); + return symbol === null ? false : symbol === '' ? true : symbol; + } + + function attributesParser (node) { + var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) { + if (acc.name !== 'class' && acc.name !== 'style') { + acc[attr.name] = attr.value; + } + + return acc; + }, {}); + var title = node.getAttribute('title'); + var titleId = node.getAttribute('data-fa-title-id'); + + if (config.autoA11y) { + if (title) { + extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); + } else { + extraAttributes['aria-hidden'] = 'true'; + extraAttributes['focusable'] = 'false'; + } + } + + return extraAttributes; + } + + function maskParser (node) { + var mask = node.getAttribute('data-fa-mask'); + + if (!mask) { + return emptyCanonicalIcon(); + } else { + return getCanonicalIcon(mask.split(' ').map(function (i) { + return i.trim(); + })); + } + } + + function blankMeta() { + return { + iconName: null, + title: null, + titleId: null, + prefix: null, + transform: meaninglessTransform, + symbol: false, + mask: null, + maskId: null, + extra: { + classes: [], + styles: {}, + attributes: {} + } + }; + } + function parseMeta(node) { + var _classParser = classParser(node), + iconName = _classParser.iconName, + prefix = _classParser.prefix, + extraClasses = _classParser.rest; + + var extraStyles = styleParser(node); + var transform = transformParser(node); + var symbol = symbolParser(node); + var extraAttributes = attributesParser(node); + var mask = maskParser(node); + return { + iconName: iconName, + title: node.getAttribute('title'), + titleId: node.getAttribute('data-fa-title-id'), + prefix: prefix, + transform: transform, + symbol: symbol, + mask: mask, + maskId: node.getAttribute('data-fa-mask-id'), + extra: { + classes: extraClasses, + styles: extraStyles, + attributes: extraAttributes + } + }; + } + + function MissingIcon(error) { + this.name = 'MissingIcon'; + this.message = error || 'Icon unavailable'; + this.stack = new Error().stack; + } + MissingIcon.prototype = Object.create(Error.prototype); + MissingIcon.prototype.constructor = MissingIcon; + + var FILL = { + fill: 'currentColor' + }; + var ANIMATION_BASE = { + attributeType: 'XML', + repeatCount: 'indefinite', + dur: '2s' + }; + var RING = { + tag: 'path', + attributes: _objectSpread({}, FILL, { + d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z' + }) + }; + + var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, { + attributeName: 'opacity' + }); + + var DOT = { + tag: 'circle', + attributes: _objectSpread({}, FILL, { + cx: '256', + cy: '364', + r: '28' + }), + children: [{ + tag: 'animate', + attributes: _objectSpread({}, ANIMATION_BASE, { + attributeName: 'r', + values: '28;14;28;28;14;28;' + }) + }, { + tag: 'animate', + attributes: _objectSpread({}, OPACITY_ANIMATE, { + values: '1;0;1;1;0;1;' + }) + }] + }; + var QUESTION = { + tag: 'path', + attributes: _objectSpread({}, FILL, { + opacity: '1', + d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z' + }), + children: [{ + tag: 'animate', + attributes: _objectSpread({}, OPACITY_ANIMATE, { + values: '1;0;0;0;0;1;' + }) + }] + }; + var EXCLAMATION = { + tag: 'path', + attributes: _objectSpread({}, FILL, { + opacity: '0', + d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z' + }), + children: [{ + tag: 'animate', + attributes: _objectSpread({}, OPACITY_ANIMATE, { + values: '0;0;1;1;0;0;' + }) + }] + }; + var missing = { + tag: 'g', + children: [RING, DOT, QUESTION, EXCLAMATION] + }; + + var styles$2 = namespace.styles; + function asFoundIcon(icon) { + var width = icon[0]; + var height = icon[1]; + + var _icon$slice = icon.slice(4), + _icon$slice2 = _slicedToArray(_icon$slice, 1), + vectorData = _icon$slice2[0]; + + var element = null; + + if (Array.isArray(vectorData)) { + element = { + tag: 'g', + attributes: { + class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.GROUP) + }, + children: [{ + tag: 'path', + attributes: { + class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY), + fill: 'currentColor', + d: vectorData[0] + } + }, { + tag: 'path', + attributes: { + class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY), + fill: 'currentColor', + d: vectorData[1] + } + }] + }; + } else { + element = { + tag: 'path', + attributes: { + fill: 'currentColor', + d: vectorData + } + }; + } + + return { + found: true, + width: width, + height: height, + icon: element + }; + } + function findIcon(iconName, prefix) { + return new picked(function (resolve, reject) { + var val = { + found: false, + width: 512, + height: 512, + icon: missing + }; + + if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) { + var icon = styles$2[prefix][iconName]; + return resolve(asFoundIcon(icon)); + } + + if (iconName && prefix && !config.showMissingIcons) { + reject(new MissingIcon("Icon is missing for prefix ".concat(prefix, " with icon name ").concat(iconName))); + } else { + resolve(val); + } + }); + } + + var styles$3 = namespace.styles; + + function generateSvgReplacementMutation(node, nodeMeta) { + var iconName = nodeMeta.iconName, + title = nodeMeta.title, + titleId = nodeMeta.titleId, + prefix = nodeMeta.prefix, + transform = nodeMeta.transform, + symbol = nodeMeta.symbol, + mask = nodeMeta.mask, + maskId = nodeMeta.maskId, + extra = nodeMeta.extra; + return new picked(function (resolve, reject) { + picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + main = _ref2[0], + mask = _ref2[1]; + + resolve([node, makeInlineSvgAbstract({ + icons: { + main: main, + mask: mask + }, + prefix: prefix, + iconName: iconName, + transform: transform, + symbol: symbol, + mask: mask, + maskId: maskId, + title: title, + titleId: titleId, + extra: extra, + watchable: true + })]); + }); + }); + } + + function generateLayersText(node, nodeMeta) { + var title = nodeMeta.title, + transform = nodeMeta.transform, + extra = nodeMeta.extra; + var width = null; + var height = null; + + if (IS_IE) { + var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10); + var boundingClientRect = node.getBoundingClientRect(); + width = boundingClientRect.width / computedFontSize; + height = boundingClientRect.height / computedFontSize; + } + + if (config.autoA11y && !title) { + extra.attributes['aria-hidden'] = 'true'; + } + + return picked.resolve([node, makeLayersTextAbstract({ + content: node.innerHTML, + width: width, + height: height, + transform: transform, + title: title, + extra: extra, + watchable: true + })]); + } + + function generateMutation(node) { + var nodeMeta = parseMeta(node); + + if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { + return generateLayersText(node, nodeMeta); + } else { + return generateSvgReplacementMutation(node, nodeMeta); + } + } + + function onTree(root) { + var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (!IS_DOM) return; + var htmlClassList = DOCUMENT.documentElement.classList; + + var hclAdd = function hclAdd(suffix) { + return htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); + }; + + var hclRemove = function hclRemove(suffix) { + return htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); + }; + + var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3); + var prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(function (p) { + return ".".concat(p, ":not([").concat(DATA_FA_I2SVG, "])"); + })).join(', '); + + if (prefixesDomQuery.length === 0) { + return; + } + + var candidates = []; + + try { + candidates = toArray(root.querySelectorAll(prefixesDomQuery)); + } catch (e) {// noop + } + + if (candidates.length > 0) { + hclAdd('pending'); + hclRemove('complete'); + } else { + return; + } + + var mark = perf.begin('onTree'); + var mutations = candidates.reduce(function (acc, node) { + try { + var mutation = generateMutation(node); + + if (mutation) { + acc.push(mutation); + } + } catch (e) { + if (!PRODUCTION) { + if (e instanceof MissingIcon) { + console.error(e); + } + } + } + + return acc; + }, []); + return new picked(function (resolve, reject) { + picked.all(mutations).then(function (resolvedMutations) { + perform(resolvedMutations, function () { + hclAdd('active'); + hclAdd('complete'); + hclRemove('pending'); + if (typeof callback === 'function') callback(); + mark(); + resolve(); + }); + }).catch(function () { + mark(); + reject(); + }); + }); + } + function onNode(node) { + var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + generateMutation(node).then(function (mutation) { + if (mutation) { + perform([mutation], callback); + } + }); + } + + function replaceForPosition(node, position) { + var pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-')); + return new picked(function (resolve, reject) { + if (node.getAttribute(pendingAttribute) !== null) { + // This node is already being processed + return resolve(); + } + + var children = toArray(node.children); + var alreadyProcessedPseudoElement = children.filter(function (c) { + return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position; + })[0]; + var styles = WINDOW.getComputedStyle(node, position); + var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN); + var fontWeight = styles.getPropertyValue('font-weight'); + var content = styles.getPropertyValue('content'); + + if (alreadyProcessedPseudoElement && !fontFamily) { + // If we've already processed it but the current computed style does not result in a font-family, + // that probably means that a class name that was previously present to make the icon has been + // removed. So we now should delete the icon. + node.removeChild(alreadyProcessedPseudoElement); + return resolve(); + } else if (fontFamily && content !== 'none' && content !== '') { + var _content = styles.getPropertyValue('content'); + + var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight]; + var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content); + var iconName = byUnicode(prefix, hexValue); + var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't + // already done so with the same prefix and iconName + + if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) { + node.setAttribute(pendingAttribute, iconIdentifier); + + if (alreadyProcessedPseudoElement) { + // Delete the old one, since we're replacing it with a new one + node.removeChild(alreadyProcessedPseudoElement); + } + + var meta = blankMeta(); + var extra = meta.extra; + extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position; + findIcon(iconName, prefix).then(function (main) { + var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, { + icons: { + main: main, + mask: emptyCanonicalIcon() + }, + prefix: prefix, + iconName: iconIdentifier, + extra: extra, + watchable: true + })); + var element = DOCUMENT.createElement('svg'); + + if (position === ':before') { + node.insertBefore(element, node.firstChild); + } else { + node.appendChild(element); + } + + element.outerHTML = abstract.map(function (a) { + return toHtml(a); + }).join('\n'); + node.removeAttribute(pendingAttribute); + resolve(); + }).catch(reject); + } else { + resolve(); + } + } else { + resolve(); + } + }); + } + + function replace(node) { + return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]); + } + + function processable(node) { + return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg'); + } + + function searchPseudoElements (root) { + if (!IS_DOM) return; + return new picked(function (resolve, reject) { + var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace); + var end = perf.begin('searchPseudoElements'); + disableObservation(); + picked.all(operations).then(function () { + end(); + enableObservation(); + resolve(); + }).catch(function () { + end(); + enableObservation(); + reject(); + }); + }); + } + + var baseStyles = "svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}"; + + function css () { + var dfp = DEFAULT_FAMILY_PREFIX; + var drc = DEFAULT_REPLACEMENT_CLASS; + var fp = config.familyPrefix; + var rc = config.replacementClass; + var s = baseStyles; + + if (fp !== dfp || rc !== drc) { + var dPatt = new RegExp("\\.".concat(dfp, "\\-"), 'g'); + var customPropPatt = new RegExp("\\--".concat(dfp, "\\-"), 'g'); + var rPatt = new RegExp("\\.".concat(drc), 'g'); + s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc)); + } + + return s; + } + + var Library = + /*#__PURE__*/ + function () { + function Library() { + _classCallCheck(this, Library); + + this.definitions = {}; + } + + _createClass(Library, [{ + key: "add", + value: function add() { + var _this = this; + + for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) { + definitions[_key] = arguments[_key]; + } + + var additions = definitions.reduce(this._pullDefinitions, {}); + Object.keys(additions).forEach(function (key) { + _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]); + defineIcons(key, additions[key]); + build(); + }); + } + }, { + key: "reset", + value: function reset() { + this.definitions = {}; + } + }, { + key: "_pullDefinitions", + value: function _pullDefinitions(additions, definition) { + var normalized = definition.prefix && definition.iconName && definition.icon ? { + 0: definition + } : definition; + Object.keys(normalized).map(function (key) { + var _normalized$key = normalized[key], + prefix = _normalized$key.prefix, + iconName = _normalized$key.iconName, + icon = _normalized$key.icon; + if (!additions[prefix]) additions[prefix] = {}; + additions[prefix][iconName] = icon; + }); + return additions; + } + }]); + + return Library; + }(); + + function ensureCss() { + if (config.autoAddCss && !_cssInserted) { + insertCss(css()); + + _cssInserted = true; + } + } + + function apiObject(val, abstractCreator) { + Object.defineProperty(val, 'abstract', { + get: abstractCreator + }); + Object.defineProperty(val, 'html', { + get: function get() { + return val.abstract.map(function (a) { + return toHtml(a); + }); + } + }); + Object.defineProperty(val, 'node', { + get: function get() { + if (!IS_DOM) return; + var container = DOCUMENT.createElement('div'); + container.innerHTML = val.html; + return container.children; + } + }); + return val; + } + + function findIconDefinition(iconLookup) { + var _iconLookup$prefix = iconLookup.prefix, + prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix, + iconName = iconLookup.iconName; + if (!iconName) return; + return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName); + } + + function resolveIcons(next) { + return function (maybeIconDefinition) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); + var mask = params.mask; + + if (mask) { + mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); + } + + return next(iconDefinition, _objectSpread({}, params, { + mask: mask + })); + }; + } + + var library = new Library(); + var noAuto = function noAuto() { + config.autoReplaceSvg = false; + config.observeMutations = false; + disconnect(); + }; + var _cssInserted = false; + var dom = { + i2svg: function i2svg() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + if (IS_DOM) { + ensureCss(); + var _params$node = params.node, + node = _params$node === void 0 ? DOCUMENT : _params$node, + _params$callback = params.callback, + callback = _params$callback === void 0 ? function () {} : _params$callback; + + if (config.searchPseudoElements) { + searchPseudoElements(node); + } + + return onTree(node, callback); + } else { + return picked.reject('Operation requires a DOM of some kind.'); + } + }, + css: css, + insertCss: function insertCss$$1() { + if (!_cssInserted) { + insertCss(css()); + + _cssInserted = true; + } + }, + watch: function watch() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var autoReplaceSvgRoot = params.autoReplaceSvgRoot, + observeMutationsRoot = params.observeMutationsRoot; + + if (config.autoReplaceSvg === false) { + config.autoReplaceSvg = true; + } + + config.observeMutations = true; + domready(function () { + autoReplace({ + autoReplaceSvgRoot: autoReplaceSvgRoot + }); + observe({ + treeCallback: onTree, + nodeCallback: onNode, + pseudoElementsCallback: searchPseudoElements, + observeMutationsRoot: observeMutationsRoot + }); + }); + } + }; + var parse = { + transform: function transform(transformString) { + return parseTransformString(transformString); + } + }; + var icon = resolveIcons(function (iconDefinition) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$transform = params.transform, + transform = _params$transform === void 0 ? meaninglessTransform : _params$transform, + _params$symbol = params.symbol, + symbol = _params$symbol === void 0 ? false : _params$symbol, + _params$mask = params.mask, + mask = _params$mask === void 0 ? null : _params$mask, + _params$maskId = params.maskId, + maskId = _params$maskId === void 0 ? null : _params$maskId, + _params$title = params.title, + title = _params$title === void 0 ? null : _params$title, + _params$titleId = params.titleId, + titleId = _params$titleId === void 0 ? null : _params$titleId, + _params$classes = params.classes, + classes = _params$classes === void 0 ? [] : _params$classes, + _params$attributes = params.attributes, + attributes = _params$attributes === void 0 ? {} : _params$attributes, + _params$styles = params.styles, + styles = _params$styles === void 0 ? {} : _params$styles; + if (!iconDefinition) return; + var prefix = iconDefinition.prefix, + iconName = iconDefinition.iconName, + icon = iconDefinition.icon; + return apiObject(_objectSpread({ + type: 'icon' + }, iconDefinition), function () { + ensureCss(); + + if (config.autoA11y) { + if (title) { + attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); + } else { + attributes['aria-hidden'] = 'true'; + attributes['focusable'] = 'false'; + } + } + + return makeInlineSvgAbstract({ + icons: { + main: asFoundIcon(icon), + mask: mask ? asFoundIcon(mask.icon) : { + found: false, + width: null, + height: null, + icon: {} + } + }, + prefix: prefix, + iconName: iconName, + transform: _objectSpread({}, meaninglessTransform, transform), + symbol: symbol, + title: title, + maskId: maskId, + titleId: titleId, + extra: { + attributes: attributes, + styles: styles, + classes: classes + } + }); + }); + }); + var text = function text(content) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$transform2 = params.transform, + transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2, + _params$title2 = params.title, + title = _params$title2 === void 0 ? null : _params$title2, + _params$classes2 = params.classes, + classes = _params$classes2 === void 0 ? [] : _params$classes2, + _params$attributes2 = params.attributes, + attributes = _params$attributes2 === void 0 ? {} : _params$attributes2, + _params$styles2 = params.styles, + styles = _params$styles2 === void 0 ? {} : _params$styles2; + return apiObject({ + type: 'text', + content: content + }, function () { + ensureCss(); + return makeLayersTextAbstract({ + content: content, + transform: _objectSpread({}, meaninglessTransform, transform), + title: title, + extra: { + attributes: attributes, + styles: styles, + classes: ["".concat(config.familyPrefix, "-layers-text")].concat(_toConsumableArray(classes)) + } + }); + }); + }; + var counter = function counter(content) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$title3 = params.title, + title = _params$title3 === void 0 ? null : _params$title3, + _params$classes3 = params.classes, + classes = _params$classes3 === void 0 ? [] : _params$classes3, + _params$attributes3 = params.attributes, + attributes = _params$attributes3 === void 0 ? {} : _params$attributes3, + _params$styles3 = params.styles, + styles = _params$styles3 === void 0 ? {} : _params$styles3; + return apiObject({ + type: 'counter', + content: content + }, function () { + ensureCss(); + return makeLayersCounterAbstract({ + content: content.toString(), + title: title, + extra: { + attributes: attributes, + styles: styles, + classes: ["".concat(config.familyPrefix, "-layers-counter")].concat(_toConsumableArray(classes)) + } + }); + }); + }; + var layer = function layer(assembler) { + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var _params$classes4 = params.classes, + classes = _params$classes4 === void 0 ? [] : _params$classes4; + return apiObject({ + type: 'layer' + }, function () { + ensureCss(); + var children = []; + assembler(function (args) { + Array.isArray(args) ? args.map(function (a) { + children = children.concat(a.abstract); + }) : children = children.concat(args.abstract); + }); + return [{ + tag: 'span', + attributes: { + class: ["".concat(config.familyPrefix, "-layers")].concat(_toConsumableArray(classes)).join(' ') + }, + children: children + }]; + }); + }; + var api = { + noAuto: noAuto, + config: config, + dom: dom, + library: library, + parse: parse, + findIconDefinition: findIconDefinition, + icon: icon, + text: text, + counter: counter, + layer: layer, + toHtml: toHtml + }; + + var autoReplace = function autoReplace() { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _params$autoReplaceSv = params.autoReplaceSvgRoot, + autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv; + if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ + node: autoReplaceSvgRoot + }); + }; + + exports.icon = icon; + exports.noAuto = noAuto; + exports.config = config; + exports.toHtml = toHtml; + exports.layer = layer; + exports.text = text; + exports.counter = counter; + exports.library = library; + exports.dom = dom; + exports.parse = parse; + exports.findIconDefinition = findIconDefinition; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/@fortawesome/fontawesome-svg-core/package.json b/node_modules/@fortawesome/fontawesome-svg-core/package.json new file mode 100644 index 0000000..1ada7b8 --- /dev/null +++ b/node_modules/@fortawesome/fontawesome-svg-core/package.json @@ -0,0 +1,63 @@ +{ + "description": "The iconic font, CSS, and SVG framework", + "keywords": [ + "font", + "awesome", + "fontawesome", + "icon", + "svg", + "bootstrap" + ], + "homepage": "https://fontawesome.com", + "bugs": { + "url": "http://github.com/FortAwesome/Font-Awesome/issues" + }, + "author": { + "name": "Dave Gandy", + "email": "dave@fontawesome.com", + "web": "http://twitter.com/davegandy" + }, + "contributors": [ + { + "name": "Brian Talbot", + "web": "http://twitter.com/talbs" + }, + { + "name": "Travis Chase", + "web": "http://twitter.com/supercodepoet" + }, + { + "name": "Rob Madole", + "web": "http://twitter.com/robmadole" + }, + { + "name": "Geremia Taglialatela", + "web": "http://twitter.com/gtagliala" + }, + { + "name": "Mike Wilkerson", + "web": "http://twitter.com/mw77" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/FortAwesome/Font-Awesome" + }, + "engines": { + "node": ">=6" + }, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "version": "1.2.36", + "name": "@fortawesome/fontawesome-svg-core", + "main": "index.js", + "module": "index.es.js", + "jsnext:main": "index.es.js", + "style": "styles.css", + "license": "MIT", + "types": "./index.d.ts", + "scripts": { + "postinstall": "node attribution.js" + } +} \ No newline at end of file diff --git a/node_modules/@fortawesome/fontawesome-svg-core/styles.css b/node_modules/@fortawesome/fontawesome-svg-core/styles.css new file mode 100644 index 0000000..b991207 --- /dev/null +++ b/node_modules/@fortawesome/fontawesome-svg-core/styles.css @@ -0,0 +1,367 @@ +svg:not(:root).svg-inline--fa { + overflow: visible; } + +.svg-inline--fa { + display: inline-block; + font-size: inherit; + height: 1em; + overflow: visible; + vertical-align: -.125em; } + .svg-inline--fa.fa-lg { + vertical-align: -.225em; } + .svg-inline--fa.fa-w-1 { + width: 0.0625em; } + .svg-inline--fa.fa-w-2 { + width: 0.125em; } + .svg-inline--fa.fa-w-3 { + width: 0.1875em; } + .svg-inline--fa.fa-w-4 { + width: 0.25em; } + .svg-inline--fa.fa-w-5 { + width: 0.3125em; } + .svg-inline--fa.fa-w-6 { + width: 0.375em; } + .svg-inline--fa.fa-w-7 { + width: 0.4375em; } + .svg-inline--fa.fa-w-8 { + width: 0.5em; } + .svg-inline--fa.fa-w-9 { + width: 0.5625em; } + .svg-inline--fa.fa-w-10 { + width: 0.625em; } + .svg-inline--fa.fa-w-11 { + width: 0.6875em; } + .svg-inline--fa.fa-w-12 { + width: 0.75em; } + .svg-inline--fa.fa-w-13 { + width: 0.8125em; } + .svg-inline--fa.fa-w-14 { + width: 0.875em; } + .svg-inline--fa.fa-w-15 { + width: 0.9375em; } + .svg-inline--fa.fa-w-16 { + width: 1em; } + .svg-inline--fa.fa-w-17 { + width: 1.0625em; } + .svg-inline--fa.fa-w-18 { + width: 1.125em; } + .svg-inline--fa.fa-w-19 { + width: 1.1875em; } + .svg-inline--fa.fa-w-20 { + width: 1.25em; } + .svg-inline--fa.fa-pull-left { + margin-right: .3em; + width: auto; } + .svg-inline--fa.fa-pull-right { + margin-left: .3em; + width: auto; } + .svg-inline--fa.fa-border { + height: 1.5em; } + .svg-inline--fa.fa-li { + width: 2em; } + .svg-inline--fa.fa-fw { + width: 1.25em; } + +.fa-layers svg.svg-inline--fa { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; } + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -.125em; + width: 1em; } + .fa-layers svg.svg-inline--fa { + -webkit-transform-origin: center center; + transform-origin: center center; } + +.fa-layers-text, .fa-layers-counter { + display: inline-block; + position: absolute; + text-align: center; } + +.fa-layers-text { + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -webkit-transform-origin: center center; + transform-origin: center center; } + +.fa-layers-counter { + background-color: #ff253a; + border-radius: 1em; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #fff; + height: 1.5em; + line-height: 1; + max-width: 5em; + min-width: 1.5em; + overflow: hidden; + padding: .25em; + right: 0; + text-overflow: ellipsis; + top: 0; + -webkit-transform: scale(0.25); + transform: scale(0.25); + -webkit-transform-origin: top right; + transform-origin: top right; } + +.fa-layers-bottom-right { + bottom: 0; + right: 0; + top: auto; + -webkit-transform: scale(0.25); + transform: scale(0.25); + -webkit-transform-origin: bottom right; + transform-origin: bottom right; } + +.fa-layers-bottom-left { + bottom: 0; + left: 0; + right: auto; + top: auto; + -webkit-transform: scale(0.25); + transform: scale(0.25); + -webkit-transform-origin: bottom left; + transform-origin: bottom left; } + +.fa-layers-top-right { + right: 0; + top: 0; + -webkit-transform: scale(0.25); + transform: scale(0.25); + -webkit-transform-origin: top right; + transform-origin: top right; } + +.fa-layers-top-left { + left: 0; + right: auto; + top: 0; + -webkit-transform: scale(0.25); + transform: scale(0.25); + -webkit-transform-origin: top left; + transform-origin: top left; } + +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -.0667em; } + +.fa-xs { + font-size: .75em; } + +.fa-sm { + font-size: .875em; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; } + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; } + +.fa-pull-left { + float: left; } + +.fa-pull-right { + float: right; } + +.fa.fa-pull-left, +.fas.fa-pull-left, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; } + +.fa.fa-pull-right, +.fas.fa-pull-right, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; } + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical, +:root .fa-flip-both { + -webkit-filter: none; + filter: none; } + +.fa-stack { + display: inline-block; + height: 2em; + position: relative; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; } + +.svg-inline--fa.fa-stack-1x { + height: 1em; + width: 1.25em; } + +.svg-inline--fa.fa-stack-2x { + height: 2em; + width: 2.5em; } + +.fa-inverse { + color: #fff; } + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: 1; + opacity: var(--fa-primary-opacity, 1); } + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: 0.4; + opacity: var(--fa-secondary-opacity, 0.4); } + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: 0.4; + opacity: var(--fa-secondary-opacity, 0.4); } + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: 1; + opacity: var(--fa-primary-opacity, 1); } + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; } + +.fad.fa-inverse { + color: #fff; } diff --git a/node_modules/@fortawesome/free-solid-svg-icons/LICENSE.txt b/node_modules/@fortawesome/free-solid-svg-icons/LICENSE.txt new file mode 100644 index 0000000..f31bef9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/LICENSE.txt @@ -0,0 +1,34 @@ +Font Awesome Free License +------------------------- + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) +In the Font Awesome Free download, the CC BY 4.0 license applies to all icons +packaged as SVG and JS file types. + +# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL) +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +# Code: MIT License (https://opensource.org/licenses/MIT) +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +# Attribution +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +# Brand Icons +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** diff --git a/node_modules/@fortawesome/free-solid-svg-icons/README.md b/node_modules/@fortawesome/free-solid-svg-icons/README.md new file mode 100644 index 0000000..af56a2d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/README.md @@ -0,0 +1,27 @@ +# @fortawesome/free-solid-svg-icons - SVG with JavaScript version + +> "I came here to chew bubblegum and install Font Awesome 5 - and I'm all out of bubblegum" + +[![npm](https://img.shields.io/npm/v/@fortawesome/free-solid-svg-icons.svg?style=flat-square)](https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons) + +## Installation + +``` +$ npm i --save @fortawesome/free-solid-svg-icons +``` + +Or + +``` +$ yarn add @fortawesome/free-solid-svg-icons +``` + +## Documentation + +Get started [here](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started). Continue your journey [here](https://fontawesome.com/how-to-use/on-the-web/advanced). + +Or go straight to the [API documentation](https://fontawesome.com/how-to-use/with-the-api). + +## Issues and support + +Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to. diff --git a/node_modules/@fortawesome/free-solid-svg-icons/attribution.js b/node_modules/@fortawesome/free-solid-svg-icons/attribution.js new file mode 100644 index 0000000..741c81f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/attribution.js @@ -0,0 +1,3 @@ +console.log(`Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) +`) \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAd.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAd.d.ts new file mode 100644 index 0000000..d2c12d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAd.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAd: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAd.js b/node_modules/@fortawesome/free-solid-svg-icons/faAd.js new file mode 100644 index 0000000..abdd9fb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAd.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ad'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f641'; +var svgPathData = 'M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAd = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAddressBook.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAddressBook.d.ts new file mode 100644 index 0000000..8120fc3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAddressBook.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAddressBook: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAddressBook.js b/node_modules/@fortawesome/free-solid-svg-icons/faAddressBook.js new file mode 100644 index 0000000..a3c0720 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAddressBook.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'address-book'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f2b9'; +var svgPathData = 'M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAddressBook = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAddressCard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAddressCard.d.ts new file mode 100644 index 0000000..59cfe9f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAddressCard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAddressCard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAddressCard.js b/node_modules/@fortawesome/free-solid-svg-icons/faAddressCard.js new file mode 100644 index 0000000..4ecdc03 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAddressCard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'address-card'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f2bb'; +var svgPathData = 'M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAddressCard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAdjust.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAdjust.d.ts new file mode 100644 index 0000000..aa4c9b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAdjust.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAdjust: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAdjust.js b/node_modules/@fortawesome/free-solid-svg-icons/faAdjust.js new file mode 100644 index 0000000..d525e5d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAdjust.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'adjust'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f042'; +var svgPathData = 'M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAdjust = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAirFreshener.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAirFreshener.d.ts new file mode 100644 index 0000000..df74660 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAirFreshener.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAirFreshener: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAirFreshener.js b/node_modules/@fortawesome/free-solid-svg-icons/faAirFreshener.js new file mode 100644 index 0000000..51b8103 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAirFreshener.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'air-freshener'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5d0'; +var svgPathData = 'M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAirFreshener = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignCenter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAlignCenter.d.ts new file mode 100644 index 0000000..c36af4c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignCenter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAlignCenter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignCenter.js b/node_modules/@fortawesome/free-solid-svg-icons/faAlignCenter.js new file mode 100644 index 0000000..9144301 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignCenter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'align-center'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f037'; +var svgPathData = 'M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAlignCenter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignJustify.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAlignJustify.d.ts new file mode 100644 index 0000000..062dfb0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignJustify.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAlignJustify: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignJustify.js b/node_modules/@fortawesome/free-solid-svg-icons/faAlignJustify.js new file mode 100644 index 0000000..6456827 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignJustify.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'align-justify'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f039'; +var svgPathData = 'M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAlignJustify = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAlignLeft.d.ts new file mode 100644 index 0000000..6b69478 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAlignLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faAlignLeft.js new file mode 100644 index 0000000..d8f4fdb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'align-left'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f036'; +var svgPathData = 'M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAlignLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAlignRight.d.ts new file mode 100644 index 0000000..47420f0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAlignRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAlignRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faAlignRight.js new file mode 100644 index 0000000..5b31657 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAlignRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'align-right'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f038'; +var svgPathData = 'M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAlignRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAllergies.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAllergies.d.ts new file mode 100644 index 0000000..55b55bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAllergies.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAllergies: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAllergies.js b/node_modules/@fortawesome/free-solid-svg-icons/faAllergies.js new file mode 100644 index 0000000..140434e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAllergies.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'allergies'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f461'; +var svgPathData = 'M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAllergies = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAmbulance.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAmbulance.d.ts new file mode 100644 index 0000000..5c3d97c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAmbulance.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAmbulance: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAmbulance.js b/node_modules/@fortawesome/free-solid-svg-icons/faAmbulance.js new file mode 100644 index 0000000..c59224c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAmbulance.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ambulance'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0f9'; +var svgPathData = 'M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAmbulance = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAmericanSignLanguageInterpreting.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAmericanSignLanguageInterpreting.d.ts new file mode 100644 index 0000000..8b20d09 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAmericanSignLanguageInterpreting.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAmericanSignLanguageInterpreting: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAmericanSignLanguageInterpreting.js b/node_modules/@fortawesome/free-solid-svg-icons/faAmericanSignLanguageInterpreting.js new file mode 100644 index 0000000..7150fa7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAmericanSignLanguageInterpreting.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'american-sign-language-interpreting'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f2a3'; +var svgPathData = 'M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAmericanSignLanguageInterpreting = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAnchor.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAnchor.d.ts new file mode 100644 index 0000000..f7c805b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAnchor.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAnchor: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAnchor.js b/node_modules/@fortawesome/free-solid-svg-icons/faAnchor.js new file mode 100644 index 0000000..f2ce876 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAnchor.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'anchor'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f13d'; +var svgPathData = 'M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAnchor = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleDown.d.ts new file mode 100644 index 0000000..12cd21d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleDoubleDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleDown.js new file mode 100644 index 0000000..8862773 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-double-down'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f103'; +var svgPathData = 'M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleDoubleDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleLeft.d.ts new file mode 100644 index 0000000..c480be2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleDoubleLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleLeft.js new file mode 100644 index 0000000..cfb55a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-double-left'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f100'; +var svgPathData = 'M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleDoubleLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleRight.d.ts new file mode 100644 index 0000000..dc6f266 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleDoubleRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleRight.js new file mode 100644 index 0000000..484fbc4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-double-right'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f101'; +var svgPathData = 'M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleDoubleRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleUp.d.ts new file mode 100644 index 0000000..eeae701 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleDoubleUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleUp.js new file mode 100644 index 0000000..ea71dbb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDoubleUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-double-up'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f102'; +var svgPathData = 'M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleDoubleUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDown.d.ts new file mode 100644 index 0000000..f45ac4f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDown.js new file mode 100644 index 0000000..93d9a9e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-down'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f107'; +var svgPathData = 'M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleLeft.d.ts new file mode 100644 index 0000000..515f26a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleLeft.js new file mode 100644 index 0000000..e1b0e9e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-left'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f104'; +var svgPathData = 'M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.d.ts new file mode 100644 index 0000000..60e09a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.js new file mode 100644 index 0000000..e0320c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-right'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f105'; +var svgPathData = 'M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngleUp.d.ts new file mode 100644 index 0000000..6f9af0a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngleUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngleUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngleUp.js new file mode 100644 index 0000000..e29b790 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngleUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angle-up'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f106'; +var svgPathData = 'M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngleUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngry.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAngry.d.ts new file mode 100644 index 0000000..b65041c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngry.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAngry: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAngry.js b/node_modules/@fortawesome/free-solid-svg-icons/faAngry.js new file mode 100644 index 0000000..6485524 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAngry.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'angry'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f556'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAngry = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAnkh.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAnkh.d.ts new file mode 100644 index 0000000..5861cdf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAnkh.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAnkh: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAnkh.js b/node_modules/@fortawesome/free-solid-svg-icons/faAnkh.js new file mode 100644 index 0000000..63cacc6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAnkh.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ankh'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f644'; +var svgPathData = 'M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAnkh = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAppleAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAppleAlt.d.ts new file mode 100644 index 0000000..265c447 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAppleAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAppleAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAppleAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faAppleAlt.js new file mode 100644 index 0000000..5e38165 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAppleAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'apple-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f5d1'; +var svgPathData = 'M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAppleAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArchive.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArchive.d.ts new file mode 100644 index 0000000..d72a7a8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArchive.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArchive: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArchive.js b/node_modules/@fortawesome/free-solid-svg-icons/faArchive.js new file mode 100644 index 0000000..dbb8931 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArchive.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'archive'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f187'; +var svgPathData = 'M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArchive = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArchway.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArchway.d.ts new file mode 100644 index 0000000..71e7000 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArchway.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArchway: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArchway.js b/node_modules/@fortawesome/free-solid-svg-icons/faArchway.js new file mode 100644 index 0000000..2ace256 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArchway.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'archway'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f557'; +var svgPathData = 'M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArchway = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleDown.d.ts new file mode 100644 index 0000000..241e144 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowAltCircleDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleDown.js new file mode 100644 index 0000000..50f632f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-alt-circle-down'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f358'; +var svgPathData = 'M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowAltCircleDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleLeft.d.ts new file mode 100644 index 0000000..2df7d46 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowAltCircleLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleLeft.js new file mode 100644 index 0000000..08645be --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-alt-circle-left'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f359'; +var svgPathData = 'M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowAltCircleLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleRight.d.ts new file mode 100644 index 0000000..540e32d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowAltCircleRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleRight.js new file mode 100644 index 0000000..7ba2e0a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-alt-circle-right'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f35a'; +var svgPathData = 'M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowAltCircleRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleUp.d.ts new file mode 100644 index 0000000..c4e25a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowAltCircleUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleUp.js new file mode 100644 index 0000000..cf5c386 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowAltCircleUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-alt-circle-up'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f35b'; +var svgPathData = 'M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowAltCircleUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleDown.d.ts new file mode 100644 index 0000000..753091e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowCircleDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleDown.js new file mode 100644 index 0000000..012df57 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-circle-down'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0ab'; +var svgPathData = 'M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowCircleDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleLeft.d.ts new file mode 100644 index 0000000..e243f2f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowCircleLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleLeft.js new file mode 100644 index 0000000..e020e7c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-circle-left'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0a8'; +var svgPathData = 'M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowCircleLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleRight.d.ts new file mode 100644 index 0000000..41d3570 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowCircleRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleRight.js new file mode 100644 index 0000000..683aca2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-circle-right'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0a9'; +var svgPathData = 'M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowCircleRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleUp.d.ts new file mode 100644 index 0000000..0a59bf1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowCircleUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleUp.js new file mode 100644 index 0000000..abea938 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowCircleUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-circle-up'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0aa'; +var svgPathData = 'M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowCircleUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.d.ts new file mode 100644 index 0000000..4bd1ca0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.js new file mode 100644 index 0000000..3e7fb5b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-down'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f063'; +var svgPathData = 'M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowLeft.d.ts new file mode 100644 index 0000000..e55fecb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowLeft.js new file mode 100644 index 0000000..fff7e1d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-left'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f060'; +var svgPathData = 'M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowRight.d.ts new file mode 100644 index 0000000..a0535c1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowRight.js new file mode 100644 index 0000000..b1c8854 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-right'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f061'; +var svgPathData = 'M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.d.ts new file mode 100644 index 0000000..f8d86ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.js new file mode 100644 index 0000000..b6dd882 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrow-up'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f062'; +var svgPathData = 'M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAlt.d.ts new file mode 100644 index 0000000..46735d6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowsAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAlt.js new file mode 100644 index 0000000..c658b1b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrows-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0b2'; +var svgPathData = 'M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowsAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltH.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltH.d.ts new file mode 100644 index 0000000..e425f59 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltH.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowsAltH: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltH.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltH.js new file mode 100644 index 0000000..f1d14fb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltH.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrows-alt-h'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f337'; +var svgPathData = 'M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowsAltH = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltV.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltV.d.ts new file mode 100644 index 0000000..2da2dfb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltV.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faArrowsAltV: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltV.js b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltV.js new file mode 100644 index 0000000..3610de3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faArrowsAltV.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'arrows-alt-v'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f338'; +var svgPathData = 'M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faArrowsAltV = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAssistiveListeningSystems.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAssistiveListeningSystems.d.ts new file mode 100644 index 0000000..c027dc0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAssistiveListeningSystems.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAssistiveListeningSystems: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAssistiveListeningSystems.js b/node_modules/@fortawesome/free-solid-svg-icons/faAssistiveListeningSystems.js new file mode 100644 index 0000000..2235724 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAssistiveListeningSystems.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'assistive-listening-systems'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2a2'; +var svgPathData = 'M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAssistiveListeningSystems = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAsterisk.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAsterisk.d.ts new file mode 100644 index 0000000..c8f23c1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAsterisk.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAsterisk: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAsterisk.js b/node_modules/@fortawesome/free-solid-svg-icons/faAsterisk.js new file mode 100644 index 0000000..17f724d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAsterisk.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'asterisk'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f069'; +var svgPathData = 'M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAsterisk = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAt.d.ts new file mode 100644 index 0000000..faae1ef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAt.js b/node_modules/@fortawesome/free-solid-svg-icons/faAt.js new file mode 100644 index 0000000..3580ec4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'at'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1fa'; +var svgPathData = 'M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAtlas.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAtlas.d.ts new file mode 100644 index 0000000..01d725b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAtlas.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAtlas: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAtlas.js b/node_modules/@fortawesome/free-solid-svg-icons/faAtlas.js new file mode 100644 index 0000000..0a80dce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAtlas.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'atlas'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f558'; +var svgPathData = 'M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAtlas = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAtom.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAtom.d.ts new file mode 100644 index 0000000..5bdef7d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAtom.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAtom: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAtom.js b/node_modules/@fortawesome/free-solid-svg-icons/faAtom.js new file mode 100644 index 0000000..aec4fae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAtom.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'atom'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f5d2'; +var svgPathData = 'M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAtom = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAudioDescription.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAudioDescription.d.ts new file mode 100644 index 0000000..462e6a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAudioDescription.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAudioDescription: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAudioDescription.js b/node_modules/@fortawesome/free-solid-svg-icons/faAudioDescription.js new file mode 100644 index 0000000..c9940dd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAudioDescription.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'audio-description'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f29e'; +var svgPathData = 'M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAudioDescription = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faAward.d.ts new file mode 100644 index 0000000..adddb55 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faAward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faAward.js b/node_modules/@fortawesome/free-solid-svg-icons/faAward.js new file mode 100644 index 0000000..b7a9229 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faAward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'award'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f559'; +var svgPathData = 'M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faAward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBaby.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBaby.d.ts new file mode 100644 index 0000000..ad9ab66 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBaby.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBaby: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBaby.js b/node_modules/@fortawesome/free-solid-svg-icons/faBaby.js new file mode 100644 index 0000000..c96ea41 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBaby.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'baby'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f77c'; +var svgPathData = 'M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBaby = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBabyCarriage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBabyCarriage.d.ts new file mode 100644 index 0000000..5553c08 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBabyCarriage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBabyCarriage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBabyCarriage.js b/node_modules/@fortawesome/free-solid-svg-icons/faBabyCarriage.js new file mode 100644 index 0000000..36ecdfd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBabyCarriage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'baby-carriage'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f77d'; +var svgPathData = 'M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBabyCarriage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBackspace.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBackspace.d.ts new file mode 100644 index 0000000..7692408 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBackspace.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBackspace: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBackspace.js b/node_modules/@fortawesome/free-solid-svg-icons/faBackspace.js new file mode 100644 index 0000000..91425cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBackspace.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'backspace'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f55a'; +var svgPathData = 'M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBackspace = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBackward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBackward.d.ts new file mode 100644 index 0000000..ca15ff4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBackward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBackward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBackward.js b/node_modules/@fortawesome/free-solid-svg-icons/faBackward.js new file mode 100644 index 0000000..0711c7e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBackward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'backward'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f04a'; +var svgPathData = 'M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBackward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBacon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBacon.d.ts new file mode 100644 index 0000000..0f45bcd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBacon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBacon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBacon.js b/node_modules/@fortawesome/free-solid-svg-icons/faBacon.js new file mode 100644 index 0000000..0837bff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBacon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bacon'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f7e5'; +var svgPathData = 'M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBacon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBacteria.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBacteria.d.ts new file mode 100644 index 0000000..44fcf4d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBacteria.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBacteria: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBacteria.js b/node_modules/@fortawesome/free-solid-svg-icons/faBacteria.js new file mode 100644 index 0000000..77e115b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBacteria.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bacteria'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e059'; +var svgPathData = 'M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBacteria = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBacterium.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBacterium.d.ts new file mode 100644 index 0000000..d6106f0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBacterium.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBacterium: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBacterium.js b/node_modules/@fortawesome/free-solid-svg-icons/faBacterium.js new file mode 100644 index 0000000..b64f0a3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBacterium.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bacterium'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e05a'; +var svgPathData = 'M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBacterium = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBahai.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBahai.d.ts new file mode 100644 index 0000000..6779af1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBahai.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBahai: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBahai.js b/node_modules/@fortawesome/free-solid-svg-icons/faBahai.js new file mode 100644 index 0000000..95d4c52 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBahai.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bahai'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f666'; +var svgPathData = 'M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBahai = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScale.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScale.d.ts new file mode 100644 index 0000000..887d0b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScale.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBalanceScale: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScale.js b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScale.js new file mode 100644 index 0000000..983d21c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScale.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'balance-scale'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f24e'; +var svgPathData = 'M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBalanceScale = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleLeft.d.ts new file mode 100644 index 0000000..3de2e5a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBalanceScaleLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleLeft.js new file mode 100644 index 0000000..88d4772 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'balance-scale-left'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f515'; +var svgPathData = 'M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBalanceScaleLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleRight.d.ts new file mode 100644 index 0000000..5ab098d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBalanceScaleRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleRight.js new file mode 100644 index 0000000..52aa1ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBalanceScaleRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'balance-scale-right'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f516'; +var svgPathData = 'M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBalanceScaleRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBan.d.ts new file mode 100644 index 0000000..075cab5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBan.js b/node_modules/@fortawesome/free-solid-svg-icons/faBan.js new file mode 100644 index 0000000..3d672d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ban'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f05e'; +var svgPathData = 'M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBandAid.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBandAid.d.ts new file mode 100644 index 0000000..326bfa2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBandAid.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBandAid: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBandAid.js b/node_modules/@fortawesome/free-solid-svg-icons/faBandAid.js new file mode 100644 index 0000000..4c006b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBandAid.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'band-aid'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f462'; +var svgPathData = 'M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBandAid = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBarcode.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBarcode.d.ts new file mode 100644 index 0000000..904480b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBarcode.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBarcode: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBarcode.js b/node_modules/@fortawesome/free-solid-svg-icons/faBarcode.js new file mode 100644 index 0000000..ec51c16 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBarcode.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'barcode'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f02a'; +var svgPathData = 'M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBarcode = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBars.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBars.d.ts new file mode 100644 index 0000000..2c12d5a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBars.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBars: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBars.js b/node_modules/@fortawesome/free-solid-svg-icons/faBars.js new file mode 100644 index 0000000..337b423 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBars.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bars'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c9'; +var svgPathData = 'M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBars = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBaseballBall.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBaseballBall.d.ts new file mode 100644 index 0000000..4b9842d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBaseballBall.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBaseballBall: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBaseballBall.js b/node_modules/@fortawesome/free-solid-svg-icons/faBaseballBall.js new file mode 100644 index 0000000..696cb7d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBaseballBall.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'baseball-ball'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f433'; +var svgPathData = 'M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBaseballBall = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBasketballBall.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBasketballBall.d.ts new file mode 100644 index 0000000..5193ba2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBasketballBall.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBasketballBall: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBasketballBall.js b/node_modules/@fortawesome/free-solid-svg-icons/faBasketballBall.js new file mode 100644 index 0000000..f2ab429 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBasketballBall.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'basketball-ball'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f434'; +var svgPathData = 'M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBasketballBall = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBath.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBath.d.ts new file mode 100644 index 0000000..a613812 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBath.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBath: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBath.js b/node_modules/@fortawesome/free-solid-svg-icons/faBath.js new file mode 100644 index 0000000..04285c9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBath.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bath'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2cd'; +var svgPathData = 'M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBath = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.d.ts new file mode 100644 index 0000000..5559881 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBatteryEmpty: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.js b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.js new file mode 100644 index 0000000..92071e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'battery-empty'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f244'; +var svgPathData = 'M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBatteryEmpty = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.d.ts new file mode 100644 index 0000000..b8e2c5e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBatteryFull: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.js b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.js new file mode 100644 index 0000000..358e718 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'battery-full'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f240'; +var svgPathData = 'M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBatteryFull = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.d.ts new file mode 100644 index 0000000..f1e3d47 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBatteryHalf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.js b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.js new file mode 100644 index 0000000..9c49ad0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'battery-half'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f242'; +var svgPathData = 'M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBatteryHalf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.d.ts new file mode 100644 index 0000000..6baa135 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBatteryQuarter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.js b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.js new file mode 100644 index 0000000..9abf785 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'battery-quarter'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f243'; +var svgPathData = 'M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBatteryQuarter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.d.ts new file mode 100644 index 0000000..077da68 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBatteryThreeQuarters: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.js b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.js new file mode 100644 index 0000000..de3bba7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'battery-three-quarters'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f241'; +var svgPathData = 'M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBatteryThreeQuarters = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBed.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBed.d.ts new file mode 100644 index 0000000..8e858ba --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBed.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBed: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBed.js b/node_modules/@fortawesome/free-solid-svg-icons/faBed.js new file mode 100644 index 0000000..d9e7827 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBed.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bed'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f236'; +var svgPathData = 'M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBed = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBeer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBeer.d.ts new file mode 100644 index 0000000..e06dafb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBeer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBeer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBeer.js b/node_modules/@fortawesome/free-solid-svg-icons/faBeer.js new file mode 100644 index 0000000..eab8889 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBeer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'beer'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0fc'; +var svgPathData = 'M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBeer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBell.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBell.d.ts new file mode 100644 index 0000000..dc4ecc1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBell.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBell: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBell.js b/node_modules/@fortawesome/free-solid-svg-icons/faBell.js new file mode 100644 index 0000000..d0ce968 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBell.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bell'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0f3'; +var svgPathData = 'M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBell = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBellSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBellSlash.d.ts new file mode 100644 index 0000000..b90379c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBellSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBellSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBellSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faBellSlash.js new file mode 100644 index 0000000..5da77fc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBellSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bell-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f1f6'; +var svgPathData = 'M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBellSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBezierCurve.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBezierCurve.d.ts new file mode 100644 index 0000000..c104b96 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBezierCurve.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBezierCurve: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBezierCurve.js b/node_modules/@fortawesome/free-solid-svg-icons/faBezierCurve.js new file mode 100644 index 0000000..d7ad152 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBezierCurve.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bezier-curve'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f55b'; +var svgPathData = 'M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBezierCurve = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBible.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBible.d.ts new file mode 100644 index 0000000..e25a505 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBible.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBible: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBible.js b/node_modules/@fortawesome/free-solid-svg-icons/faBible.js new file mode 100644 index 0000000..9dc289c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBible.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bible'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f647'; +var svgPathData = 'M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBible = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBicycle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBicycle.d.ts new file mode 100644 index 0000000..c00962d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBicycle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBicycle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBicycle.js b/node_modules/@fortawesome/free-solid-svg-icons/faBicycle.js new file mode 100644 index 0000000..7fbecec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBicycle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bicycle'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f206'; +var svgPathData = 'M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBicycle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBiking.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBiking.d.ts new file mode 100644 index 0000000..8d963c2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBiking.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBiking: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBiking.js b/node_modules/@fortawesome/free-solid-svg-icons/faBiking.js new file mode 100644 index 0000000..8d43f6d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBiking.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'biking'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f84a'; +var svgPathData = 'M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBiking = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBinoculars.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBinoculars.d.ts new file mode 100644 index 0000000..b7da4c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBinoculars.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBinoculars: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBinoculars.js b/node_modules/@fortawesome/free-solid-svg-icons/faBinoculars.js new file mode 100644 index 0000000..25329db --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBinoculars.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'binoculars'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1e5'; +var svgPathData = 'M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBinoculars = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBiohazard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBiohazard.d.ts new file mode 100644 index 0000000..a3c29eb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBiohazard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBiohazard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBiohazard.js b/node_modules/@fortawesome/free-solid-svg-icons/faBiohazard.js new file mode 100644 index 0000000..8ef72bd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBiohazard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'biohazard'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f780'; +var svgPathData = 'M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBiohazard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBirthdayCake.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBirthdayCake.d.ts new file mode 100644 index 0000000..bdfdb30 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBirthdayCake.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBirthdayCake: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBirthdayCake.js b/node_modules/@fortawesome/free-solid-svg-icons/faBirthdayCake.js new file mode 100644 index 0000000..f2a19d2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBirthdayCake.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'birthday-cake'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1fd'; +var svgPathData = 'M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBirthdayCake = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlender.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBlender.d.ts new file mode 100644 index 0000000..020e4f7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlender.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBlender: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlender.js b/node_modules/@fortawesome/free-solid-svg-icons/faBlender.js new file mode 100644 index 0000000..a625bbf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlender.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'blender'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f517'; +var svgPathData = 'M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBlender = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlenderPhone.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBlenderPhone.d.ts new file mode 100644 index 0000000..da75db0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlenderPhone.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBlenderPhone: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlenderPhone.js b/node_modules/@fortawesome/free-solid-svg-icons/faBlenderPhone.js new file mode 100644 index 0000000..2653364 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlenderPhone.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'blender-phone'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f6b6'; +var svgPathData = 'M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBlenderPhone = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlind.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBlind.d.ts new file mode 100644 index 0000000..f7cc094 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlind.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBlind: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlind.js b/node_modules/@fortawesome/free-solid-svg-icons/faBlind.js new file mode 100644 index 0000000..0877df5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlind.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'blind'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f29d'; +var svgPathData = 'M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBlind = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBlog.d.ts new file mode 100644 index 0000000..dede421 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBlog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBlog.js b/node_modules/@fortawesome/free-solid-svg-icons/faBlog.js new file mode 100644 index 0000000..b67756a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBlog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'blog'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f781'; +var svgPathData = 'M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBlog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBold.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBold.d.ts new file mode 100644 index 0000000..8325a4a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBold.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBold: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBold.js b/node_modules/@fortawesome/free-solid-svg-icons/faBold.js new file mode 100644 index 0000000..fa33a04 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBold.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bold'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f032'; +var svgPathData = 'M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBold = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBolt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBolt.d.ts new file mode 100644 index 0000000..a6e03fc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBolt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBolt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBolt.js b/node_modules/@fortawesome/free-solid-svg-icons/faBolt.js new file mode 100644 index 0000000..e9fbabf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBolt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bolt'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f0e7'; +var svgPathData = 'M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBolt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBomb.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBomb.d.ts new file mode 100644 index 0000000..9760c68 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBomb.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBomb: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBomb.js b/node_modules/@fortawesome/free-solid-svg-icons/faBomb.js new file mode 100644 index 0000000..056e8ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBomb.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bomb'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1e2'; +var svgPathData = 'M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBomb = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBone.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBone.d.ts new file mode 100644 index 0000000..97a469f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBone.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBone: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBone.js b/node_modules/@fortawesome/free-solid-svg-icons/faBone.js new file mode 100644 index 0000000..0e93776 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBone.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bone'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5d7'; +var svgPathData = 'M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBone = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBong.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBong.d.ts new file mode 100644 index 0000000..8aa55c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBong.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBong: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBong.js b/node_modules/@fortawesome/free-solid-svg-icons/faBong.js new file mode 100644 index 0000000..c2b85b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBong.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bong'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f55c'; +var svgPathData = 'M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBong = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBook.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBook.d.ts new file mode 100644 index 0000000..fba56a7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBook.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBook: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBook.js b/node_modules/@fortawesome/free-solid-svg-icons/faBook.js new file mode 100644 index 0000000..41d684a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBook.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'book'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f02d'; +var svgPathData = 'M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBook = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookDead.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBookDead.d.ts new file mode 100644 index 0000000..3535931 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookDead.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBookDead: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookDead.js b/node_modules/@fortawesome/free-solid-svg-icons/faBookDead.js new file mode 100644 index 0000000..0ae5702 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookDead.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'book-dead'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f6b7'; +var svgPathData = 'M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBookDead = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBookMedical.d.ts new file mode 100644 index 0000000..83b742b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBookMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faBookMedical.js new file mode 100644 index 0000000..3f480cd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'book-medical'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f7e6'; +var svgPathData = 'M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBookMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBookOpen.d.ts new file mode 100644 index 0000000..38adade --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBookOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faBookOpen.js new file mode 100644 index 0000000..eea98ae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'book-open'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f518'; +var svgPathData = 'M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBookOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookReader.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBookReader.d.ts new file mode 100644 index 0000000..63f22ad --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookReader.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBookReader: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookReader.js b/node_modules/@fortawesome/free-solid-svg-icons/faBookReader.js new file mode 100644 index 0000000..3af2962 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookReader.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'book-reader'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5da'; +var svgPathData = 'M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBookReader = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookmark.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBookmark.d.ts new file mode 100644 index 0000000..511bcb9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookmark.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBookmark: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBookmark.js b/node_modules/@fortawesome/free-solid-svg-icons/faBookmark.js new file mode 100644 index 0000000..c14933e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBookmark.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bookmark'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f02e'; +var svgPathData = 'M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBookmark = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBorderAll.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBorderAll.d.ts new file mode 100644 index 0000000..97ebbe0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBorderAll.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBorderAll: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBorderAll.js b/node_modules/@fortawesome/free-solid-svg-icons/faBorderAll.js new file mode 100644 index 0000000..a7b9c2c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBorderAll.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'border-all'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f84c'; +var svgPathData = 'M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBorderAll = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBorderNone.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBorderNone.d.ts new file mode 100644 index 0000000..2fdba77 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBorderNone.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBorderNone: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBorderNone.js b/node_modules/@fortawesome/free-solid-svg-icons/faBorderNone.js new file mode 100644 index 0000000..f62018e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBorderNone.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'border-none'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f850'; +var svgPathData = 'M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBorderNone = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBorderStyle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBorderStyle.d.ts new file mode 100644 index 0000000..0ed1e8e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBorderStyle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBorderStyle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBorderStyle.js b/node_modules/@fortawesome/free-solid-svg-icons/faBorderStyle.js new file mode 100644 index 0000000..2e98583 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBorderStyle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'border-style'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f853'; +var svgPathData = 'M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBorderStyle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBowlingBall.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBowlingBall.d.ts new file mode 100644 index 0000000..b29aef7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBowlingBall.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBowlingBall: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBowlingBall.js b/node_modules/@fortawesome/free-solid-svg-icons/faBowlingBall.js new file mode 100644 index 0000000..f1f1faf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBowlingBall.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bowling-ball'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f436'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBowlingBall = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBox.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBox.d.ts new file mode 100644 index 0000000..ede42e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBox.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBox: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBox.js b/node_modules/@fortawesome/free-solid-svg-icons/faBox.js new file mode 100644 index 0000000..2e8c8c9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBox.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'box'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f466'; +var svgPathData = 'M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBox = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBoxOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBoxOpen.d.ts new file mode 100644 index 0000000..bf18ba4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBoxOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBoxOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBoxOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faBoxOpen.js new file mode 100644 index 0000000..bf3ff1d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBoxOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'box-open'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f49e'; +var svgPathData = 'M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBoxOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBoxTissue.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBoxTissue.d.ts new file mode 100644 index 0000000..a8f0eb0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBoxTissue.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBoxTissue: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBoxTissue.js b/node_modules/@fortawesome/free-solid-svg-icons/faBoxTissue.js new file mode 100644 index 0000000..bfff576 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBoxTissue.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'box-tissue'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e05b'; +var svgPathData = 'M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBoxTissue = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBoxes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBoxes.d.ts new file mode 100644 index 0000000..8eef786 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBoxes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBoxes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBoxes.js b/node_modules/@fortawesome/free-solid-svg-icons/faBoxes.js new file mode 100644 index 0000000..20b3ba4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBoxes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'boxes'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f468'; +var svgPathData = 'M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBoxes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBraille.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBraille.d.ts new file mode 100644 index 0000000..6ad3e3f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBraille.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBraille: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBraille.js b/node_modules/@fortawesome/free-solid-svg-icons/faBraille.js new file mode 100644 index 0000000..67a0d49 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBraille.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'braille'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f2a1'; +var svgPathData = 'M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBraille = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBrain.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBrain.d.ts new file mode 100644 index 0000000..9445d61 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBrain.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBrain: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBrain.js b/node_modules/@fortawesome/free-solid-svg-icons/faBrain.js new file mode 100644 index 0000000..dfa3ef3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBrain.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'brain'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f5dc'; +var svgPathData = 'M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBrain = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBreadSlice.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBreadSlice.d.ts new file mode 100644 index 0000000..a7b2ef3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBreadSlice.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBreadSlice: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBreadSlice.js b/node_modules/@fortawesome/free-solid-svg-icons/faBreadSlice.js new file mode 100644 index 0000000..c40fb07 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBreadSlice.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bread-slice'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f7ec'; +var svgPathData = 'M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBreadSlice = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBriefcase.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcase.d.ts new file mode 100644 index 0000000..38fcf7c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcase.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBriefcase: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBriefcase.js b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcase.js new file mode 100644 index 0000000..96a66d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcase.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'briefcase'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0b1'; +var svgPathData = 'M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBriefcase = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBriefcaseMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcaseMedical.d.ts new file mode 100644 index 0000000..4badb77 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcaseMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBriefcaseMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBriefcaseMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcaseMedical.js new file mode 100644 index 0000000..09a3293 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBriefcaseMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'briefcase-medical'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f469'; +var svgPathData = 'M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBriefcaseMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBroadcastTower.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBroadcastTower.d.ts new file mode 100644 index 0000000..60800a0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBroadcastTower.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBroadcastTower: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBroadcastTower.js b/node_modules/@fortawesome/free-solid-svg-icons/faBroadcastTower.js new file mode 100644 index 0000000..f9bf511 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBroadcastTower.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'broadcast-tower'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f519'; +var svgPathData = 'M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBroadcastTower = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBroom.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBroom.d.ts new file mode 100644 index 0000000..5a92cde --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBroom.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBroom: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBroom.js b/node_modules/@fortawesome/free-solid-svg-icons/faBroom.js new file mode 100644 index 0000000..f7f9a10 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBroom.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'broom'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f51a'; +var svgPathData = 'M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBroom = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBrush.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBrush.d.ts new file mode 100644 index 0000000..0addbe2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBrush.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBrush: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBrush.js b/node_modules/@fortawesome/free-solid-svg-icons/faBrush.js new file mode 100644 index 0000000..89621b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBrush.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'brush'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f55d'; +var svgPathData = 'M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBrush = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBug.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBug.d.ts new file mode 100644 index 0000000..536ce49 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBug.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBug: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBug.js b/node_modules/@fortawesome/free-solid-svg-icons/faBug.js new file mode 100644 index 0000000..dc6e477 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBug.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bug'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f188'; +var svgPathData = 'M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBug = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBuilding.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBuilding.d.ts new file mode 100644 index 0000000..993ad3e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBuilding.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBuilding: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBuilding.js b/node_modules/@fortawesome/free-solid-svg-icons/faBuilding.js new file mode 100644 index 0000000..3c1a54c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBuilding.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'building'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1ad'; +var svgPathData = 'M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBuilding = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBullhorn.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBullhorn.d.ts new file mode 100644 index 0000000..8b51fed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBullhorn.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBullhorn: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBullhorn.js b/node_modules/@fortawesome/free-solid-svg-icons/faBullhorn.js new file mode 100644 index 0000000..9492ef6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBullhorn.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bullhorn'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f0a1'; +var svgPathData = 'M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBullhorn = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBullseye.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBullseye.d.ts new file mode 100644 index 0000000..55136b0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBullseye.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBullseye: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBullseye.js b/node_modules/@fortawesome/free-solid-svg-icons/faBullseye.js new file mode 100644 index 0000000..10b3db7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBullseye.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bullseye'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f140'; +var svgPathData = 'M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBullseye = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBurn.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBurn.d.ts new file mode 100644 index 0000000..874a43c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBurn.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBurn: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBurn.js b/node_modules/@fortawesome/free-solid-svg-icons/faBurn.js new file mode 100644 index 0000000..6076bf4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBurn.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'burn'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f46a'; +var svgPathData = 'M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBurn = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBus.d.ts new file mode 100644 index 0000000..3923705 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBus.js b/node_modules/@fortawesome/free-solid-svg-icons/faBus.js new file mode 100644 index 0000000..609e150 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f207'; +var svgPathData = 'M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBusAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBusAlt.d.ts new file mode 100644 index 0000000..971bdb4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBusAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBusAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBusAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faBusAlt.js new file mode 100644 index 0000000..0209170 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBusAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'bus-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f55e'; +var svgPathData = 'M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBusAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBusinessTime.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faBusinessTime.d.ts new file mode 100644 index 0000000..43bd750 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBusinessTime.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faBusinessTime: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faBusinessTime.js b/node_modules/@fortawesome/free-solid-svg-icons/faBusinessTime.js new file mode 100644 index 0000000..ba04b82 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faBusinessTime.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'business-time'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f64a'; +var svgPathData = 'M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faBusinessTime = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalculator.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalculator.d.ts new file mode 100644 index 0000000..6b7954f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalculator.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalculator: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalculator.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalculator.js new file mode 100644 index 0000000..36f0b1f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalculator.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calculator'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1ec'; +var svgPathData = 'M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalculator = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendar.d.ts new file mode 100644 index 0000000..13bc62d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendar.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendar.js new file mode 100644 index 0000000..935a71f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f133'; +var svgPathData = 'M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarAlt.d.ts new file mode 100644 index 0000000..54f8efa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarAlt.js new file mode 100644 index 0000000..cf71f69 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f073'; +var svgPathData = 'M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarCheck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarCheck.d.ts new file mode 100644 index 0000000..65ff0d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarCheck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarCheck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarCheck.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarCheck.js new file mode 100644 index 0000000..9e8cdbd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarCheck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-check'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f274'; +var svgPathData = 'M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarCheck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarDay.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarDay.d.ts new file mode 100644 index 0000000..33b1111 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarDay.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarDay: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarDay.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarDay.js new file mode 100644 index 0000000..529f2a3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarDay.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-day'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f783'; +var svgPathData = 'M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarDay = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarMinus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarMinus.d.ts new file mode 100644 index 0000000..2794e06 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarMinus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarMinus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarMinus.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarMinus.js new file mode 100644 index 0000000..1b092d6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarMinus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-minus'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f272'; +var svgPathData = 'M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarMinus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarPlus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarPlus.d.ts new file mode 100644 index 0000000..0afa476 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarPlus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarPlus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarPlus.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarPlus.js new file mode 100644 index 0000000..5281ca5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarPlus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-plus'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f271'; +var svgPathData = 'M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarPlus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarTimes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarTimes.d.ts new file mode 100644 index 0000000..1c8cadd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarTimes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarTimes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarTimes.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarTimes.js new file mode 100644 index 0000000..6b6c1e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarTimes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-times'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f273'; +var svgPathData = 'M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarTimes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarWeek.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarWeek.d.ts new file mode 100644 index 0000000..5dd4839 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarWeek.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCalendarWeek: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCalendarWeek.js b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarWeek.js new file mode 100644 index 0000000..676ad98 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCalendarWeek.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'calendar-week'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f784'; +var svgPathData = 'M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCalendarWeek = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCamera.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCamera.d.ts new file mode 100644 index 0000000..9eaf5fb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCamera.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCamera: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCamera.js b/node_modules/@fortawesome/free-solid-svg-icons/faCamera.js new file mode 100644 index 0000000..67ec5f0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCamera.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'camera'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f030'; +var svgPathData = 'M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCamera = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCameraRetro.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCameraRetro.d.ts new file mode 100644 index 0000000..7c56fe2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCameraRetro.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCameraRetro: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCameraRetro.js b/node_modules/@fortawesome/free-solid-svg-icons/faCameraRetro.js new file mode 100644 index 0000000..3f3a874 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCameraRetro.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'camera-retro'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f083'; +var svgPathData = 'M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCameraRetro = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCampground.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCampground.d.ts new file mode 100644 index 0000000..f8bb739 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCampground.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCampground: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCampground.js b/node_modules/@fortawesome/free-solid-svg-icons/faCampground.js new file mode 100644 index 0000000..dd88d18 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCampground.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'campground'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6bb'; +var svgPathData = 'M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCampground = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCandyCane.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCandyCane.d.ts new file mode 100644 index 0000000..26ec05d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCandyCane.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCandyCane: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCandyCane.js b/node_modules/@fortawesome/free-solid-svg-icons/faCandyCane.js new file mode 100644 index 0000000..9a76294 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCandyCane.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'candy-cane'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f786'; +var svgPathData = 'M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCandyCane = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCannabis.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCannabis.d.ts new file mode 100644 index 0000000..0fc2b58 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCannabis.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCannabis: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCannabis.js b/node_modules/@fortawesome/free-solid-svg-icons/faCannabis.js new file mode 100644 index 0000000..9f5287f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCannabis.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cannabis'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f55f'; +var svgPathData = 'M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCannabis = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCapsules.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCapsules.d.ts new file mode 100644 index 0000000..8f99425 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCapsules.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCapsules: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCapsules.js b/node_modules/@fortawesome/free-solid-svg-icons/faCapsules.js new file mode 100644 index 0000000..08649f4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCapsules.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'capsules'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f46b'; +var svgPathData = 'M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCapsules = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCar.d.ts new file mode 100644 index 0000000..9bc8a1f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCar.js b/node_modules/@fortawesome/free-solid-svg-icons/faCar.js new file mode 100644 index 0000000..257bac8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'car'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1b9'; +var svgPathData = 'M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCarAlt.d.ts new file mode 100644 index 0000000..b79cb6c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCarAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCarAlt.js new file mode 100644 index 0000000..9e202e7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'car-alt'; +var width = 480; +var height = 512; +var ligatures = []; +var unicode = 'f5de'; +var svgPathData = 'M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCarAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarBattery.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCarBattery.d.ts new file mode 100644 index 0000000..5103e9a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarBattery.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCarBattery: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarBattery.js b/node_modules/@fortawesome/free-solid-svg-icons/faCarBattery.js new file mode 100644 index 0000000..7df43b7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarBattery.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'car-battery'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5df'; +var svgPathData = 'M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCarBattery = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarCrash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCarCrash.d.ts new file mode 100644 index 0000000..4dab58a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarCrash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCarCrash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarCrash.js b/node_modules/@fortawesome/free-solid-svg-icons/faCarCrash.js new file mode 100644 index 0000000..1af9a9c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarCrash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'car-crash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5e1'; +var svgPathData = 'M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCarCrash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarSide.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCarSide.d.ts new file mode 100644 index 0000000..8692433 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarSide.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCarSide: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarSide.js b/node_modules/@fortawesome/free-solid-svg-icons/faCarSide.js new file mode 100644 index 0000000..0c3cfe6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarSide.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'car-side'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5e4'; +var svgPathData = 'M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCarSide = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaravan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaravan.d.ts new file mode 100644 index 0000000..6f45e2e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaravan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaravan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaravan.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaravan.js new file mode 100644 index 0000000..33109bf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaravan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caravan'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f8ff'; +var svgPathData = 'M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaravan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretDown.d.ts new file mode 100644 index 0000000..4ff96ff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretDown.js new file mode 100644 index 0000000..f46860c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-down'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f0d7'; +var svgPathData = 'M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretLeft.d.ts new file mode 100644 index 0000000..9f83617 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretLeft.js new file mode 100644 index 0000000..06eba04 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-left'; +var width = 192; +var height = 512; +var ligatures = []; +var unicode = 'f0d9'; +var svgPathData = 'M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretRight.d.ts new file mode 100644 index 0000000..8826ecc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretRight.js new file mode 100644 index 0000000..567a787 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-right'; +var width = 192; +var height = 512; +var ligatures = []; +var unicode = 'f0da'; +var svgPathData = 'M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareDown.d.ts new file mode 100644 index 0000000..ccae43f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretSquareDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareDown.js new file mode 100644 index 0000000..0317ded --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-square-down'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f150'; +var svgPathData = 'M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretSquareDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareLeft.d.ts new file mode 100644 index 0000000..00c3e7c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretSquareLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareLeft.js new file mode 100644 index 0000000..a500de6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-square-left'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f191'; +var svgPathData = 'M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretSquareLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareRight.d.ts new file mode 100644 index 0000000..3c072c7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretSquareRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareRight.js new file mode 100644 index 0000000..07c061f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-square-right'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f152'; +var svgPathData = 'M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretSquareRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareUp.d.ts new file mode 100644 index 0000000..4f065db --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretSquareUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareUp.js new file mode 100644 index 0000000..0bad996 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretSquareUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-square-up'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f151'; +var svgPathData = 'M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretSquareUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCaretUp.d.ts new file mode 100644 index 0000000..b4bcf33 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCaretUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCaretUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faCaretUp.js new file mode 100644 index 0000000..1943167 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCaretUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'caret-up'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f0d8'; +var svgPathData = 'M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCaretUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarrot.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCarrot.d.ts new file mode 100644 index 0000000..dfea73c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarrot.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCarrot: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCarrot.js b/node_modules/@fortawesome/free-solid-svg-icons/faCarrot.js new file mode 100644 index 0000000..395bc81 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCarrot.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'carrot'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f787'; +var svgPathData = 'M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCarrot = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCartArrowDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCartArrowDown.d.ts new file mode 100644 index 0000000..c7f328b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCartArrowDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCartArrowDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCartArrowDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faCartArrowDown.js new file mode 100644 index 0000000..1e8d417 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCartArrowDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cart-arrow-down'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f218'; +var svgPathData = 'M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCartArrowDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCartPlus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCartPlus.d.ts new file mode 100644 index 0000000..8c2d11b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCartPlus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCartPlus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCartPlus.js b/node_modules/@fortawesome/free-solid-svg-icons/faCartPlus.js new file mode 100644 index 0000000..e6f71be --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCartPlus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cart-plus'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f217'; +var svgPathData = 'M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCartPlus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCashRegister.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCashRegister.d.ts new file mode 100644 index 0000000..9cf2367 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCashRegister.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCashRegister: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCashRegister.js b/node_modules/@fortawesome/free-solid-svg-icons/faCashRegister.js new file mode 100644 index 0000000..2db71bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCashRegister.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cash-register'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f788'; +var svgPathData = 'M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCashRegister = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCat.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCat.d.ts new file mode 100644 index 0000000..ed943ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCat.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCat: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCat.js b/node_modules/@fortawesome/free-solid-svg-icons/faCat.js new file mode 100644 index 0000000..ebe29ca --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCat.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cat'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f6be'; +var svgPathData = 'M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCat = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCertificate.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCertificate.d.ts new file mode 100644 index 0000000..43863ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCertificate.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCertificate: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCertificate.js b/node_modules/@fortawesome/free-solid-svg-icons/faCertificate.js new file mode 100644 index 0000000..072dee5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCertificate.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'certificate'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0a3'; +var svgPathData = 'M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCertificate = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChair.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChair.d.ts new file mode 100644 index 0000000..c9084e7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChair.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChair: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChair.js b/node_modules/@fortawesome/free-solid-svg-icons/faChair.js new file mode 100644 index 0000000..ff98f83 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChair.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chair'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f6c0'; +var svgPathData = 'M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChair = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChalkboard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboard.d.ts new file mode 100644 index 0000000..c4f5277 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChalkboard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChalkboard.js b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboard.js new file mode 100644 index 0000000..8de4c69 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chalkboard'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f51b'; +var svgPathData = 'M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChalkboard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChalkboardTeacher.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboardTeacher.d.ts new file mode 100644 index 0000000..cc0a831 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboardTeacher.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChalkboardTeacher: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChalkboardTeacher.js b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboardTeacher.js new file mode 100644 index 0000000..b2c39d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChalkboardTeacher.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chalkboard-teacher'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f51c'; +var svgPathData = 'M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChalkboardTeacher = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChargingStation.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChargingStation.d.ts new file mode 100644 index 0000000..1b3481b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChargingStation.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChargingStation: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChargingStation.js b/node_modules/@fortawesome/free-solid-svg-icons/faChargingStation.js new file mode 100644 index 0000000..1e949ca --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChargingStation.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'charging-station'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f5e7'; +var svgPathData = 'M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChargingStation = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartArea.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChartArea.d.ts new file mode 100644 index 0000000..39c9065 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartArea.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChartArea: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartArea.js b/node_modules/@fortawesome/free-solid-svg-icons/faChartArea.js new file mode 100644 index 0000000..77923b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartArea.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chart-area'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1fe'; +var svgPathData = 'M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChartArea = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartBar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChartBar.d.ts new file mode 100644 index 0000000..a7dd341 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartBar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChartBar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartBar.js b/node_modules/@fortawesome/free-solid-svg-icons/faChartBar.js new file mode 100644 index 0000000..46343c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartBar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chart-bar'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f080'; +var svgPathData = 'M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChartBar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartLine.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChartLine.d.ts new file mode 100644 index 0000000..01e9d3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartLine.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChartLine: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartLine.js b/node_modules/@fortawesome/free-solid-svg-icons/faChartLine.js new file mode 100644 index 0000000..752e026 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartLine.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chart-line'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f201'; +var svgPathData = 'M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChartLine = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartPie.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChartPie.d.ts new file mode 100644 index 0000000..4f91f05 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartPie.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChartPie: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChartPie.js b/node_modules/@fortawesome/free-solid-svg-icons/faChartPie.js new file mode 100644 index 0000000..2a0c0b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChartPie.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chart-pie'; +var width = 544; +var height = 512; +var ligatures = []; +var unicode = 'f200'; +var svgPathData = 'M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChartPie = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCheck.d.ts new file mode 100644 index 0000000..0856497 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCheck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheck.js b/node_modules/@fortawesome/free-solid-svg-icons/faCheck.js new file mode 100644 index 0000000..f4e541b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'check'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f00c'; +var svgPathData = 'M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCheck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.d.ts new file mode 100644 index 0000000..281ab22 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCheckCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.js new file mode 100644 index 0000000..054b4cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'check-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f058'; +var svgPathData = 'M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCheckCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheckDouble.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCheckDouble.d.ts new file mode 100644 index 0000000..d75cfa8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheckDouble.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCheckDouble: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheckDouble.js b/node_modules/@fortawesome/free-solid-svg-icons/faCheckDouble.js new file mode 100644 index 0000000..c33e34f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheckDouble.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'check-double'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f560'; +var svgPathData = 'M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCheckDouble = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheckSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCheckSquare.d.ts new file mode 100644 index 0000000..60acd02 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheckSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCheckSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheckSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faCheckSquare.js new file mode 100644 index 0000000..0913c0b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheckSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'check-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f14a'; +var svgPathData = 'M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCheckSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheese.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCheese.d.ts new file mode 100644 index 0000000..c47c2d8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheese.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCheese: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCheese.js b/node_modules/@fortawesome/free-solid-svg-icons/faCheese.js new file mode 100644 index 0000000..2335405 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCheese.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cheese'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7ef'; +var svgPathData = 'M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCheese = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChess.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChess.d.ts new file mode 100644 index 0000000..690956e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChess.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChess: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChess.js b/node_modules/@fortawesome/free-solid-svg-icons/faChess.js new file mode 100644 index 0000000..9b7fd93 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChess.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f439'; +var svgPathData = 'M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChess = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessBishop.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessBishop.d.ts new file mode 100644 index 0000000..053170d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessBishop.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessBishop: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessBishop.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessBishop.js new file mode 100644 index 0000000..d6a413a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessBishop.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-bishop'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f43a'; +var svgPathData = 'M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessBishop = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessBoard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessBoard.d.ts new file mode 100644 index 0000000..34d8346 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessBoard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessBoard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessBoard.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessBoard.js new file mode 100644 index 0000000..3f07c25 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessBoard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-board'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f43c'; +var svgPathData = 'M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessBoard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessKing.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessKing.d.ts new file mode 100644 index 0000000..77a0b80 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessKing.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessKing: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessKing.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessKing.js new file mode 100644 index 0000000..d8cc9c2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessKing.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-king'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f43f'; +var svgPathData = 'M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessKing = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessKnight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessKnight.d.ts new file mode 100644 index 0000000..9d925a0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessKnight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessKnight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessKnight.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessKnight.js new file mode 100644 index 0000000..d72fdc1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessKnight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-knight'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f441'; +var svgPathData = 'M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessKnight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessPawn.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessPawn.d.ts new file mode 100644 index 0000000..9a4a2fd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessPawn.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessPawn: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessPawn.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessPawn.js new file mode 100644 index 0000000..e151ccd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessPawn.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-pawn'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f443'; +var svgPathData = 'M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessPawn = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessQueen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessQueen.d.ts new file mode 100644 index 0000000..19d38cc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessQueen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessQueen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessQueen.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessQueen.js new file mode 100644 index 0000000..f3d8d85 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessQueen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-queen'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f445'; +var svgPathData = 'M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessQueen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessRook.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChessRook.d.ts new file mode 100644 index 0000000..0de82b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessRook.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChessRook: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChessRook.js b/node_modules/@fortawesome/free-solid-svg-icons/faChessRook.js new file mode 100644 index 0000000..41ad186 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChessRook.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chess-rook'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f447'; +var svgPathData = 'M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChessRook = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleDown.d.ts new file mode 100644 index 0000000..ed05e28 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronCircleDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleDown.js new file mode 100644 index 0000000..030543b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-circle-down'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f13a'; +var svgPathData = 'M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronCircleDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleLeft.d.ts new file mode 100644 index 0000000..fb58172 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronCircleLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleLeft.js new file mode 100644 index 0000000..39427b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-circle-left'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f137'; +var svgPathData = 'M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronCircleLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleRight.d.ts new file mode 100644 index 0000000..b36fba3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronCircleRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleRight.js new file mode 100644 index 0000000..42047d5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-circle-right'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f138'; +var svgPathData = 'M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronCircleRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleUp.d.ts new file mode 100644 index 0000000..ca00b7f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronCircleUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleUp.js new file mode 100644 index 0000000..bffd7df --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronCircleUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-circle-up'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f139'; +var svgPathData = 'M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronCircleUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.d.ts new file mode 100644 index 0000000..5e06170 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.js new file mode 100644 index 0000000..8eccc7c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-down'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f078'; +var svgPathData = 'M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronLeft.d.ts new file mode 100644 index 0000000..f4299af --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronLeft.js new file mode 100644 index 0000000..082df4a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-left'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f053'; +var svgPathData = 'M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronRight.d.ts new file mode 100644 index 0000000..afda985 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronRight.js new file mode 100644 index 0000000..acc1b84 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-right'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f054'; +var svgPathData = 'M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.d.ts new file mode 100644 index 0000000..29e7271 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChevronUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.js new file mode 100644 index 0000000..1ad4ff7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'chevron-up'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f077'; +var svgPathData = 'M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChevronUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChild.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChild.d.ts new file mode 100644 index 0000000..a73065e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChild.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChild: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChild.js b/node_modules/@fortawesome/free-solid-svg-icons/faChild.js new file mode 100644 index 0000000..1e2bb15 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChild.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'child'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1ae'; +var svgPathData = 'M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChild = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChurch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faChurch.d.ts new file mode 100644 index 0000000..ba9017b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChurch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faChurch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faChurch.js b/node_modules/@fortawesome/free-solid-svg-icons/faChurch.js new file mode 100644 index 0000000..9bd5dd8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faChurch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'church'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f51d'; +var svgPathData = 'M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faChurch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCircle.d.ts new file mode 100644 index 0000000..d93f3e6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faCircle.js new file mode 100644 index 0000000..40c3b9f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f111'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCircleNotch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCircleNotch.d.ts new file mode 100644 index 0000000..225a411 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCircleNotch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCircleNotch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCircleNotch.js b/node_modules/@fortawesome/free-solid-svg-icons/faCircleNotch.js new file mode 100644 index 0000000..3958ee5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCircleNotch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'circle-notch'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1ce'; +var svgPathData = 'M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCircleNotch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCity.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCity.d.ts new file mode 100644 index 0000000..5489fd7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCity.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCity: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCity.js b/node_modules/@fortawesome/free-solid-svg-icons/faCity.js new file mode 100644 index 0000000..a369617 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCity.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'city'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f64f'; +var svgPathData = 'M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCity = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClinicMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClinicMedical.d.ts new file mode 100644 index 0000000..6c8adab --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClinicMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClinicMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClinicMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faClinicMedical.js new file mode 100644 index 0000000..6b544f6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClinicMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'clinic-medical'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f7f2'; +var svgPathData = 'M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClinicMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClipboard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClipboard.d.ts new file mode 100644 index 0000000..8b3c413 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClipboard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClipboard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClipboard.js b/node_modules/@fortawesome/free-solid-svg-icons/faClipboard.js new file mode 100644 index 0000000..cae3a55 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClipboard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'clipboard'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f328'; +var svgPathData = 'M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClipboard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClipboardCheck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardCheck.d.ts new file mode 100644 index 0000000..6f8b3ae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardCheck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClipboardCheck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClipboardCheck.js b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardCheck.js new file mode 100644 index 0000000..d8ce81e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardCheck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'clipboard-check'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f46c'; +var svgPathData = 'M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClipboardCheck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClipboardList.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardList.d.ts new file mode 100644 index 0000000..4745d96 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardList.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClipboardList: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClipboardList.js b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardList.js new file mode 100644 index 0000000..00288ef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClipboardList.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'clipboard-list'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f46d'; +var svgPathData = 'M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClipboardList = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClock.d.ts new file mode 100644 index 0000000..9ee4727 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClock.js b/node_modules/@fortawesome/free-solid-svg-icons/faClock.js new file mode 100644 index 0000000..799ab70 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'clock'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f017'; +var svgPathData = 'M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClone.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClone.d.ts new file mode 100644 index 0000000..3fb6402 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClone.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClone: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClone.js b/node_modules/@fortawesome/free-solid-svg-icons/faClone.js new file mode 100644 index 0000000..052382d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClone.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'clone'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f24d'; +var svgPathData = 'M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClone = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClosedCaptioning.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faClosedCaptioning.d.ts new file mode 100644 index 0000000..5e84446 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClosedCaptioning.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faClosedCaptioning: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faClosedCaptioning.js b/node_modules/@fortawesome/free-solid-svg-icons/faClosedCaptioning.js new file mode 100644 index 0000000..d8f6a56 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faClosedCaptioning.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'closed-captioning'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f20a'; +var svgPathData = 'M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faClosedCaptioning = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloud.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloud.d.ts new file mode 100644 index 0000000..d05282e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloud.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloud: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloud.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloud.js new file mode 100644 index 0000000..65ac31e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloud.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0c2'; +var svgPathData = 'M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloud = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudDownloadAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudDownloadAlt.d.ts new file mode 100644 index 0000000..96e27bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudDownloadAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudDownloadAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudDownloadAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudDownloadAlt.js new file mode 100644 index 0000000..32cda04 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudDownloadAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-download-alt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f381'; +var svgPathData = 'M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudDownloadAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudMeatball.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMeatball.d.ts new file mode 100644 index 0000000..a862b8e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMeatball.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudMeatball: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudMeatball.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMeatball.js new file mode 100644 index 0000000..e67fae3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMeatball.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-meatball'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f73b'; +var svgPathData = 'M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudMeatball = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoon.d.ts new file mode 100644 index 0000000..ad8ea38 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudMoon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoon.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoon.js new file mode 100644 index 0000000..84c9cef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-moon'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f6c3'; +var svgPathData = 'M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudMoon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoonRain.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoonRain.d.ts new file mode 100644 index 0000000..a049b91 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoonRain.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudMoonRain: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoonRain.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoonRain.js new file mode 100644 index 0000000..9b5e23c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudMoonRain.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-moon-rain'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f73c'; +var svgPathData = 'M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudMoonRain = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudRain.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudRain.d.ts new file mode 100644 index 0000000..8e41813 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudRain.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudRain: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudRain.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudRain.js new file mode 100644 index 0000000..06133d5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudRain.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-rain'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f73d'; +var svgPathData = 'M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudRain = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudShowersHeavy.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudShowersHeavy.d.ts new file mode 100644 index 0000000..cde5746 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudShowersHeavy.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudShowersHeavy: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudShowersHeavy.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudShowersHeavy.js new file mode 100644 index 0000000..31f8c4c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudShowersHeavy.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-showers-heavy'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f740'; +var svgPathData = 'M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudShowersHeavy = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudSun.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSun.d.ts new file mode 100644 index 0000000..6d8ad8a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSun.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudSun: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudSun.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSun.js new file mode 100644 index 0000000..eb69fbf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSun.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-sun'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6c4'; +var svgPathData = 'M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudSun = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudSunRain.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSunRain.d.ts new file mode 100644 index 0000000..305451f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSunRain.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudSunRain: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudSunRain.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSunRain.js new file mode 100644 index 0000000..5b2afae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudSunRain.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-sun-rain'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f743'; +var svgPathData = 'M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudSunRain = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudUploadAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCloudUploadAlt.d.ts new file mode 100644 index 0000000..48b6738 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudUploadAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCloudUploadAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCloudUploadAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCloudUploadAlt.js new file mode 100644 index 0000000..b4d0ba4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCloudUploadAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cloud-upload-alt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f382'; +var svgPathData = 'M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCloudUploadAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCocktail.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCocktail.d.ts new file mode 100644 index 0000000..64d6019 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCocktail.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCocktail: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCocktail.js b/node_modules/@fortawesome/free-solid-svg-icons/faCocktail.js new file mode 100644 index 0000000..cd11ca9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCocktail.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cocktail'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f561'; +var svgPathData = 'M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCocktail = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCode.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCode.d.ts new file mode 100644 index 0000000..ff69556 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCode.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCode: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCode.js b/node_modules/@fortawesome/free-solid-svg-icons/faCode.js new file mode 100644 index 0000000..2ed311a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCode.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'code'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f121'; +var svgPathData = 'M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCode = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.d.ts new file mode 100644 index 0000000..0b6764a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCodeBranch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.js b/node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.js new file mode 100644 index 0000000..93af39a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCodeBranch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'code-branch'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f126'; +var svgPathData = 'M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCodeBranch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCoffee.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCoffee.d.ts new file mode 100644 index 0000000..ff0787b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCoffee.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCoffee: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCoffee.js b/node_modules/@fortawesome/free-solid-svg-icons/faCoffee.js new file mode 100644 index 0000000..872df86 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCoffee.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'coffee'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0f4'; +var svgPathData = 'M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCoffee = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCog.d.ts new file mode 100644 index 0000000..546ca28 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCog.js b/node_modules/@fortawesome/free-solid-svg-icons/faCog.js new file mode 100644 index 0000000..9472f1e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cog'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f013'; +var svgPathData = 'M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCogs.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCogs.d.ts new file mode 100644 index 0000000..cab43c9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCogs.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCogs: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCogs.js b/node_modules/@fortawesome/free-solid-svg-icons/faCogs.js new file mode 100644 index 0000000..c2dba15 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCogs.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cogs'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f085'; +var svgPathData = 'M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCogs = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCoins.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCoins.d.ts new file mode 100644 index 0000000..76f81d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCoins.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCoins: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCoins.js b/node_modules/@fortawesome/free-solid-svg-icons/faCoins.js new file mode 100644 index 0000000..909b003 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCoins.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'coins'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f51e'; +var svgPathData = 'M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCoins = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faColumns.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faColumns.d.ts new file mode 100644 index 0000000..180b164 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faColumns.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faColumns: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faColumns.js b/node_modules/@fortawesome/free-solid-svg-icons/faColumns.js new file mode 100644 index 0000000..d9ebe5b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faColumns.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'columns'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0db'; +var svgPathData = 'M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faColumns = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faComment.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faComment.d.ts new file mode 100644 index 0000000..ecde118 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faComment.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faComment: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faComment.js b/node_modules/@fortawesome/free-solid-svg-icons/faComment.js new file mode 100644 index 0000000..0a8c1bd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faComment.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comment'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f075'; +var svgPathData = 'M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faComment = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCommentAlt.d.ts new file mode 100644 index 0000000..ba67290 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCommentAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCommentAlt.js new file mode 100644 index 0000000..d4b40c7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comment-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f27a'; +var svgPathData = 'M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCommentAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentDollar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDollar.d.ts new file mode 100644 index 0000000..248c00c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDollar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCommentDollar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentDollar.js b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDollar.js new file mode 100644 index 0000000..6a7fcb5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDollar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comment-dollar'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f651'; +var svgPathData = 'M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCommentDollar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentDots.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDots.d.ts new file mode 100644 index 0000000..4902c62 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDots.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCommentDots: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentDots.js b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDots.js new file mode 100644 index 0000000..b4acaf3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentDots.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comment-dots'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4ad'; +var svgPathData = 'M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCommentDots = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCommentMedical.d.ts new file mode 100644 index 0000000..178c964 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCommentMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faCommentMedical.js new file mode 100644 index 0000000..ea17495 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comment-medical'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7f5'; +var svgPathData = 'M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCommentMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCommentSlash.d.ts new file mode 100644 index 0000000..93dd8c9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCommentSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faCommentSlash.js new file mode 100644 index 0000000..a5907fd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comment-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4b3'; +var svgPathData = 'M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCommentSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faComments.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faComments.d.ts new file mode 100644 index 0000000..b988090 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faComments.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faComments: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faComments.js b/node_modules/@fortawesome/free-solid-svg-icons/faComments.js new file mode 100644 index 0000000..9c3478f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faComments.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comments'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f086'; +var svgPathData = 'M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faComments = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentsDollar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCommentsDollar.d.ts new file mode 100644 index 0000000..51cea3f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentsDollar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCommentsDollar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCommentsDollar.js b/node_modules/@fortawesome/free-solid-svg-icons/faCommentsDollar.js new file mode 100644 index 0000000..036cdd3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCommentsDollar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'comments-dollar'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f653'; +var svgPathData = 'M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCommentsDollar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompactDisc.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCompactDisc.d.ts new file mode 100644 index 0000000..8042054 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompactDisc.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCompactDisc: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompactDisc.js b/node_modules/@fortawesome/free-solid-svg-icons/faCompactDisc.js new file mode 100644 index 0000000..0f7415d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompactDisc.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'compact-disc'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f51f'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCompactDisc = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompass.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCompass.d.ts new file mode 100644 index 0000000..0918f07 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompass.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCompass: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompass.js b/node_modules/@fortawesome/free-solid-svg-icons/faCompass.js new file mode 100644 index 0000000..fc91ec8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompass.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'compass'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f14e'; +var svgPathData = 'M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCompass = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompress.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCompress.d.ts new file mode 100644 index 0000000..c0ae50f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompress.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCompress: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompress.js b/node_modules/@fortawesome/free-solid-svg-icons/faCompress.js new file mode 100644 index 0000000..b353b51 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompress.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'compress'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f066'; +var svgPathData = 'M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCompress = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompressAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCompressAlt.d.ts new file mode 100644 index 0000000..3912ec2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompressAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCompressAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompressAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCompressAlt.js new file mode 100644 index 0000000..468f46c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompressAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'compress-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f422'; +var svgPathData = 'M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCompressAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompressArrowsAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCompressArrowsAlt.d.ts new file mode 100644 index 0000000..67b9755 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompressArrowsAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCompressArrowsAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCompressArrowsAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCompressArrowsAlt.js new file mode 100644 index 0000000..79825ce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCompressArrowsAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'compress-arrows-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f78c'; +var svgPathData = 'M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCompressArrowsAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faConciergeBell.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faConciergeBell.d.ts new file mode 100644 index 0000000..1354986 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faConciergeBell.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faConciergeBell: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faConciergeBell.js b/node_modules/@fortawesome/free-solid-svg-icons/faConciergeBell.js new file mode 100644 index 0000000..3a238c5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faConciergeBell.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'concierge-bell'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f562'; +var svgPathData = 'M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faConciergeBell = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCookie.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCookie.d.ts new file mode 100644 index 0000000..a64ba04 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCookie.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCookie: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCookie.js b/node_modules/@fortawesome/free-solid-svg-icons/faCookie.js new file mode 100644 index 0000000..a86b73b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCookie.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cookie'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f563'; +var svgPathData = 'M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCookie = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCookieBite.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCookieBite.d.ts new file mode 100644 index 0000000..ee7b97a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCookieBite.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCookieBite: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCookieBite.js b/node_modules/@fortawesome/free-solid-svg-icons/faCookieBite.js new file mode 100644 index 0000000..b9945a9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCookieBite.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cookie-bite'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f564'; +var svgPathData = 'M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCookieBite = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCopy.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCopy.d.ts new file mode 100644 index 0000000..93254eb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCopy.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCopy: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCopy.js b/node_modules/@fortawesome/free-solid-svg-icons/faCopy.js new file mode 100644 index 0000000..cf50114 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCopy.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'copy'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c5'; +var svgPathData = 'M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCopy = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCopyright.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCopyright.d.ts new file mode 100644 index 0000000..f393964 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCopyright.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCopyright: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCopyright.js b/node_modules/@fortawesome/free-solid-svg-icons/faCopyright.js new file mode 100644 index 0000000..f056083 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCopyright.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'copyright'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1f9'; +var svgPathData = 'M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCopyright = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCouch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCouch.d.ts new file mode 100644 index 0000000..ee3e6b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCouch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCouch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCouch.js b/node_modules/@fortawesome/free-solid-svg-icons/faCouch.js new file mode 100644 index 0000000..cee30e3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCouch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'couch'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4b8'; +var svgPathData = 'M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCouch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCreditCard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCreditCard.d.ts new file mode 100644 index 0000000..19d1f93 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCreditCard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCreditCard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCreditCard.js b/node_modules/@fortawesome/free-solid-svg-icons/faCreditCard.js new file mode 100644 index 0000000..ba8f4c2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCreditCard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'credit-card'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f09d'; +var svgPathData = 'M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCreditCard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrop.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCrop.d.ts new file mode 100644 index 0000000..41e5d27 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrop.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCrop: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrop.js b/node_modules/@fortawesome/free-solid-svg-icons/faCrop.js new file mode 100644 index 0000000..7bd5d2e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrop.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'crop'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f125'; +var svgPathData = 'M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCrop = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCropAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCropAlt.d.ts new file mode 100644 index 0000000..b0d6bb1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCropAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCropAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCropAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faCropAlt.js new file mode 100644 index 0000000..b9d74ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCropAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'crop-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f565'; +var svgPathData = 'M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCropAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCross.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCross.d.ts new file mode 100644 index 0000000..afa6870 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCross.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCross: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCross.js b/node_modules/@fortawesome/free-solid-svg-icons/faCross.js new file mode 100644 index 0000000..4a76712 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCross.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cross'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f654'; +var svgPathData = 'M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCross = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrosshairs.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCrosshairs.d.ts new file mode 100644 index 0000000..2174a17 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrosshairs.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCrosshairs: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrosshairs.js b/node_modules/@fortawesome/free-solid-svg-icons/faCrosshairs.js new file mode 100644 index 0000000..5c6fbcc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrosshairs.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'crosshairs'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f05b'; +var svgPathData = 'M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCrosshairs = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrow.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCrow.d.ts new file mode 100644 index 0000000..b774610 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrow.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCrow: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrow.js b/node_modules/@fortawesome/free-solid-svg-icons/faCrow.js new file mode 100644 index 0000000..e3cba46 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrow.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'crow'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f520'; +var svgPathData = 'M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCrow = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCrown.d.ts new file mode 100644 index 0000000..e0d779f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCrown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrown.js b/node_modules/@fortawesome/free-solid-svg-icons/faCrown.js new file mode 100644 index 0000000..1e6fa1f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'crown'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f521'; +var svgPathData = 'M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCrown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrutch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCrutch.d.ts new file mode 100644 index 0000000..852614f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrutch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCrutch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCrutch.js b/node_modules/@fortawesome/free-solid-svg-icons/faCrutch.js new file mode 100644 index 0000000..8a3a12d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCrutch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'crutch'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7f7'; +var svgPathData = 'M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCrutch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCube.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCube.d.ts new file mode 100644 index 0000000..9c54bb6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCube.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCube: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCube.js b/node_modules/@fortawesome/free-solid-svg-icons/faCube.js new file mode 100644 index 0000000..b84c0b9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCube.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cube'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1b2'; +var svgPathData = 'M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCube = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCubes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCubes.d.ts new file mode 100644 index 0000000..549d1a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCubes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCubes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCubes.js b/node_modules/@fortawesome/free-solid-svg-icons/faCubes.js new file mode 100644 index 0000000..ac46563 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCubes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cubes'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1b3'; +var svgPathData = 'M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCubes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCut.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faCut.d.ts new file mode 100644 index 0000000..57612d6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCut.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faCut: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faCut.js b/node_modules/@fortawesome/free-solid-svg-icons/faCut.js new file mode 100644 index 0000000..2d90f02 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faCut.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'cut'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c4'; +var svgPathData = 'M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faCut = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDatabase.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDatabase.d.ts new file mode 100644 index 0000000..c667931 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDatabase.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDatabase: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDatabase.js b/node_modules/@fortawesome/free-solid-svg-icons/faDatabase.js new file mode 100644 index 0000000..e86aa39 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDatabase.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'database'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1c0'; +var svgPathData = 'M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDatabase = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDeaf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDeaf.d.ts new file mode 100644 index 0000000..d5f0aff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDeaf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDeaf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDeaf.js b/node_modules/@fortawesome/free-solid-svg-icons/faDeaf.js new file mode 100644 index 0000000..002a27b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDeaf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'deaf'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2a4'; +var svgPathData = 'M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDeaf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDemocrat.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDemocrat.d.ts new file mode 100644 index 0000000..fb54478 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDemocrat.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDemocrat: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDemocrat.js b/node_modules/@fortawesome/free-solid-svg-icons/faDemocrat.js new file mode 100644 index 0000000..90d7991 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDemocrat.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'democrat'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f747'; +var svgPathData = 'M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDemocrat = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDesktop.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDesktop.d.ts new file mode 100644 index 0000000..894435a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDesktop.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDesktop: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDesktop.js b/node_modules/@fortawesome/free-solid-svg-icons/faDesktop.js new file mode 100644 index 0000000..5478700 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDesktop.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'desktop'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f108'; +var svgPathData = 'M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDesktop = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDharmachakra.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDharmachakra.d.ts new file mode 100644 index 0000000..a70326d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDharmachakra.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDharmachakra: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDharmachakra.js b/node_modules/@fortawesome/free-solid-svg-icons/faDharmachakra.js new file mode 100644 index 0000000..8240799 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDharmachakra.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dharmachakra'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f655'; +var svgPathData = 'M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDharmachakra = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiagnoses.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiagnoses.d.ts new file mode 100644 index 0000000..f88cea9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiagnoses.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiagnoses: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiagnoses.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiagnoses.js new file mode 100644 index 0000000..b231651 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiagnoses.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'diagnoses'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f470'; +var svgPathData = 'M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiagnoses = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDice.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDice.d.ts new file mode 100644 index 0000000..d2f5927 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDice.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDice: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDice.js b/node_modules/@fortawesome/free-solid-svg-icons/faDice.js new file mode 100644 index 0000000..c2a47ff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDice.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f522'; +var svgPathData = 'M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDice = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceD20.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD20.d.ts new file mode 100644 index 0000000..fc34008 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD20.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceD20: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceD20.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD20.js new file mode 100644 index 0000000..be84d81 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD20.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-d20'; +var width = 480; +var height = 512; +var ligatures = []; +var unicode = 'f6cf'; +var svgPathData = 'M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceD20 = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceD6.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD6.d.ts new file mode 100644 index 0000000..f15e518 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD6.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceD6: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceD6.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD6.js new file mode 100644 index 0000000..4db09ff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceD6.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-d6'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f6d1'; +var svgPathData = 'M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceD6 = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceFive.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFive.d.ts new file mode 100644 index 0000000..39f8b1a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFive.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceFive: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceFive.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFive.js new file mode 100644 index 0000000..33402ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFive.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-five'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f523'; +var svgPathData = 'M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceFive = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceFour.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFour.d.ts new file mode 100644 index 0000000..f5b430a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFour.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceFour: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceFour.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFour.js new file mode 100644 index 0000000..d24d071 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceFour.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-four'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f524'; +var svgPathData = 'M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceFour = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceOne.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceOne.d.ts new file mode 100644 index 0000000..5f58b3b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceOne.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceOne: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceOne.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceOne.js new file mode 100644 index 0000000..0d0f6b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceOne.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-one'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f525'; +var svgPathData = 'M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceOne = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceSix.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceSix.d.ts new file mode 100644 index 0000000..09136f4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceSix.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceSix: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceSix.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceSix.js new file mode 100644 index 0000000..0c7ddd5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceSix.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-six'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f526'; +var svgPathData = 'M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceSix = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceThree.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceThree.d.ts new file mode 100644 index 0000000..cd2c86c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceThree.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceThree: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceThree.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceThree.js new file mode 100644 index 0000000..b5dc99c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceThree.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-three'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f527'; +var svgPathData = 'M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceThree = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceTwo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDiceTwo.d.ts new file mode 100644 index 0000000..180c749 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceTwo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDiceTwo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDiceTwo.js b/node_modules/@fortawesome/free-solid-svg-icons/faDiceTwo.js new file mode 100644 index 0000000..ce2d70b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDiceTwo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dice-two'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f528'; +var svgPathData = 'M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDiceTwo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDigitalTachograph.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDigitalTachograph.d.ts new file mode 100644 index 0000000..a80f224 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDigitalTachograph.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDigitalTachograph: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDigitalTachograph.js b/node_modules/@fortawesome/free-solid-svg-icons/faDigitalTachograph.js new file mode 100644 index 0000000..6820a30 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDigitalTachograph.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'digital-tachograph'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f566'; +var svgPathData = 'M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDigitalTachograph = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDirections.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDirections.d.ts new file mode 100644 index 0000000..a6a4fbc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDirections.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDirections: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDirections.js b/node_modules/@fortawesome/free-solid-svg-icons/faDirections.js new file mode 100644 index 0000000..47a397d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDirections.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'directions'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5eb'; +var svgPathData = 'M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDirections = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDisease.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDisease.d.ts new file mode 100644 index 0000000..c9eb881 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDisease.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDisease: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDisease.js b/node_modules/@fortawesome/free-solid-svg-icons/faDisease.js new file mode 100644 index 0000000..5487609 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDisease.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'disease'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7fa'; +var svgPathData = 'M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDisease = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDivide.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDivide.d.ts new file mode 100644 index 0000000..6cab0ff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDivide.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDivide: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDivide.js b/node_modules/@fortawesome/free-solid-svg-icons/faDivide.js new file mode 100644 index 0000000..3854a3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDivide.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'divide'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f529'; +var svgPathData = 'M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDivide = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDizzy.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDizzy.d.ts new file mode 100644 index 0000000..c78b0d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDizzy.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDizzy: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDizzy.js b/node_modules/@fortawesome/free-solid-svg-icons/faDizzy.js new file mode 100644 index 0000000..ed7e825 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDizzy.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dizzy'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f567'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDizzy = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDna.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDna.d.ts new file mode 100644 index 0000000..73d080e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDna.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDna: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDna.js b/node_modules/@fortawesome/free-solid-svg-icons/faDna.js new file mode 100644 index 0000000..b804bc0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDna.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dna'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f471'; +var svgPathData = 'M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDna = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDog.d.ts new file mode 100644 index 0000000..c3a2e68 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDog.js b/node_modules/@fortawesome/free-solid-svg-icons/faDog.js new file mode 100644 index 0000000..99d14a8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dog'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f6d3'; +var svgPathData = 'M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDollarSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDollarSign.d.ts new file mode 100644 index 0000000..43db21b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDollarSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDollarSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDollarSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faDollarSign.js new file mode 100644 index 0000000..d653850 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDollarSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dollar-sign'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f155'; +var svgPathData = 'M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDollarSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDolly.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDolly.d.ts new file mode 100644 index 0000000..14f71dc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDolly.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDolly: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDolly.js b/node_modules/@fortawesome/free-solid-svg-icons/faDolly.js new file mode 100644 index 0000000..a9835a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDolly.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dolly'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f472'; +var svgPathData = 'M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDolly = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDollyFlatbed.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDollyFlatbed.d.ts new file mode 100644 index 0000000..c3c1ba0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDollyFlatbed.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDollyFlatbed: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDollyFlatbed.js b/node_modules/@fortawesome/free-solid-svg-icons/faDollyFlatbed.js new file mode 100644 index 0000000..a8c4df2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDollyFlatbed.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dolly-flatbed'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f474'; +var svgPathData = 'M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDollyFlatbed = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDonate.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDonate.d.ts new file mode 100644 index 0000000..759bf0d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDonate.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDonate: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDonate.js b/node_modules/@fortawesome/free-solid-svg-icons/faDonate.js new file mode 100644 index 0000000..49cf3a4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDonate.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'donate'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4b9'; +var svgPathData = 'M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDonate = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDoorClosed.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDoorClosed.d.ts new file mode 100644 index 0000000..48377f6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDoorClosed.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDoorClosed: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDoorClosed.js b/node_modules/@fortawesome/free-solid-svg-icons/faDoorClosed.js new file mode 100644 index 0000000..6a14f78 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDoorClosed.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'door-closed'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f52a'; +var svgPathData = 'M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDoorClosed = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDoorOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDoorOpen.d.ts new file mode 100644 index 0000000..2b8a600 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDoorOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDoorOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDoorOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faDoorOpen.js new file mode 100644 index 0000000..77f2bf8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDoorOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'door-open'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f52b'; +var svgPathData = 'M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDoorOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDotCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDotCircle.d.ts new file mode 100644 index 0000000..f4d84dd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDotCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDotCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDotCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faDotCircle.js new file mode 100644 index 0000000..0766631 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDotCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dot-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f192'; +var svgPathData = 'M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDotCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDove.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDove.d.ts new file mode 100644 index 0000000..d7e62b1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDove.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDove: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDove.js b/node_modules/@fortawesome/free-solid-svg-icons/faDove.js new file mode 100644 index 0000000..019d3fa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDove.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dove'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4ba'; +var svgPathData = 'M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDove = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDownload.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDownload.d.ts new file mode 100644 index 0000000..643371b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDownload.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDownload: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDownload.js b/node_modules/@fortawesome/free-solid-svg-icons/faDownload.js new file mode 100644 index 0000000..4660803 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDownload.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'download'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f019'; +var svgPathData = 'M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDownload = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDraftingCompass.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDraftingCompass.d.ts new file mode 100644 index 0000000..6c91e9a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDraftingCompass.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDraftingCompass: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDraftingCompass.js b/node_modules/@fortawesome/free-solid-svg-icons/faDraftingCompass.js new file mode 100644 index 0000000..adddb7a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDraftingCompass.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'drafting-compass'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f568'; +var svgPathData = 'M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDraftingCompass = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDragon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDragon.d.ts new file mode 100644 index 0000000..003ddf5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDragon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDragon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDragon.js b/node_modules/@fortawesome/free-solid-svg-icons/faDragon.js new file mode 100644 index 0000000..e1e1ba5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDragon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dragon'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6d5'; +var svgPathData = 'M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDragon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrawPolygon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDrawPolygon.d.ts new file mode 100644 index 0000000..bb40f28 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrawPolygon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDrawPolygon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrawPolygon.js b/node_modules/@fortawesome/free-solid-svg-icons/faDrawPolygon.js new file mode 100644 index 0000000..2f93642 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrawPolygon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'draw-polygon'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f5ee'; +var svgPathData = 'M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDrawPolygon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrum.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDrum.d.ts new file mode 100644 index 0000000..78a0a24 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrum.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDrum: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrum.js b/node_modules/@fortawesome/free-solid-svg-icons/faDrum.js new file mode 100644 index 0000000..4aee71b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrum.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'drum'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f569'; +var svgPathData = 'M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDrum = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrumSteelpan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDrumSteelpan.d.ts new file mode 100644 index 0000000..a04864b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrumSteelpan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDrumSteelpan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrumSteelpan.js b/node_modules/@fortawesome/free-solid-svg-icons/faDrumSteelpan.js new file mode 100644 index 0000000..2a19bb1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrumSteelpan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'drum-steelpan'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f56a'; +var svgPathData = 'M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDrumSteelpan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrumstickBite.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDrumstickBite.d.ts new file mode 100644 index 0000000..2b9e9a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrumstickBite.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDrumstickBite: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDrumstickBite.js b/node_modules/@fortawesome/free-solid-svg-icons/faDrumstickBite.js new file mode 100644 index 0000000..c28423e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDrumstickBite.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'drumstick-bite'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f6d7'; +var svgPathData = 'M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDrumstickBite = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDumbbell.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDumbbell.d.ts new file mode 100644 index 0000000..ad70197 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDumbbell.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDumbbell: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDumbbell.js b/node_modules/@fortawesome/free-solid-svg-icons/faDumbbell.js new file mode 100644 index 0000000..af6e63b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDumbbell.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dumbbell'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f44b'; +var svgPathData = 'M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDumbbell = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDumpster.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDumpster.d.ts new file mode 100644 index 0000000..d200199 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDumpster.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDumpster: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDumpster.js b/node_modules/@fortawesome/free-solid-svg-icons/faDumpster.js new file mode 100644 index 0000000..3364f7b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDumpster.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dumpster'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f793'; +var svgPathData = 'M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDumpster = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDumpsterFire.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDumpsterFire.d.ts new file mode 100644 index 0000000..b298962 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDumpsterFire.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDumpsterFire: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDumpsterFire.js b/node_modules/@fortawesome/free-solid-svg-icons/faDumpsterFire.js new file mode 100644 index 0000000..26b5a08 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDumpsterFire.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dumpster-fire'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f794'; +var svgPathData = 'M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDumpsterFire = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDungeon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faDungeon.d.ts new file mode 100644 index 0000000..a96e157 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDungeon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faDungeon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faDungeon.js b/node_modules/@fortawesome/free-solid-svg-icons/faDungeon.js new file mode 100644 index 0000000..9fa8c25 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faDungeon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'dungeon'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f6d9'; +var svgPathData = 'M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faDungeon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEdit.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEdit.d.ts new file mode 100644 index 0000000..86716af --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEdit.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEdit: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEdit.js b/node_modules/@fortawesome/free-solid-svg-icons/faEdit.js new file mode 100644 index 0000000..67c8512 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEdit.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'edit'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f044'; +var svgPathData = 'M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEdit = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEgg.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEgg.d.ts new file mode 100644 index 0000000..9c5d266 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEgg.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEgg: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEgg.js b/node_modules/@fortawesome/free-solid-svg-icons/faEgg.js new file mode 100644 index 0000000..654a50b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEgg.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'egg'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f7fb'; +var svgPathData = 'M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEgg = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEject.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEject.d.ts new file mode 100644 index 0000000..de43bec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEject.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEject: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEject.js b/node_modules/@fortawesome/free-solid-svg-icons/faEject.js new file mode 100644 index 0000000..6e0d46e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEject.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'eject'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f052'; +var svgPathData = 'M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEject = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisH.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisH.d.ts new file mode 100644 index 0000000..b182cf8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisH.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEllipsisH: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisH.js b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisH.js new file mode 100644 index 0000000..15f5e7e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisH.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ellipsis-h'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f141'; +var svgPathData = 'M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEllipsisH = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisV.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisV.d.ts new file mode 100644 index 0000000..c0db3c4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisV.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEllipsisV: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisV.js b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisV.js new file mode 100644 index 0000000..0412085 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEllipsisV.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ellipsis-v'; +var width = 192; +var height = 512; +var ligatures = []; +var unicode = 'f142'; +var svgPathData = 'M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEllipsisV = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelope.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelope.d.ts new file mode 100644 index 0000000..77b3053 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelope.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEnvelope: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelope.js b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelope.js new file mode 100644 index 0000000..6537843 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelope.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'envelope'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0e0'; +var svgPathData = 'M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEnvelope = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpen.d.ts new file mode 100644 index 0000000..cde3384 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEnvelopeOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpen.js new file mode 100644 index 0000000..f6dd1a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'envelope-open'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2b6'; +var svgPathData = 'M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEnvelopeOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpenText.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpenText.d.ts new file mode 100644 index 0000000..80aa1de --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpenText.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEnvelopeOpenText: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpenText.js b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpenText.js new file mode 100644 index 0000000..8116b07 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeOpenText.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'envelope-open-text'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f658'; +var svgPathData = 'M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEnvelopeOpenText = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeSquare.d.ts new file mode 100644 index 0000000..7cff696 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEnvelopeSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeSquare.js new file mode 100644 index 0000000..c1dd872 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEnvelopeSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'envelope-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f199'; +var svgPathData = 'M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEnvelopeSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEquals.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEquals.d.ts new file mode 100644 index 0000000..3ab0740 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEquals.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEquals: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEquals.js b/node_modules/@fortawesome/free-solid-svg-icons/faEquals.js new file mode 100644 index 0000000..29d484c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEquals.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'equals'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f52c'; +var svgPathData = 'M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEquals = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEraser.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEraser.d.ts new file mode 100644 index 0000000..cf4f51d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEraser.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEraser: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEraser.js b/node_modules/@fortawesome/free-solid-svg-icons/faEraser.js new file mode 100644 index 0000000..cdfe527 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEraser.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'eraser'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f12d'; +var svgPathData = 'M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEraser = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEthernet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEthernet.d.ts new file mode 100644 index 0000000..eace146 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEthernet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEthernet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEthernet.js b/node_modules/@fortawesome/free-solid-svg-icons/faEthernet.js new file mode 100644 index 0000000..1ac3502 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEthernet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ethernet'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f796'; +var svgPathData = 'M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEthernet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEuroSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEuroSign.d.ts new file mode 100644 index 0000000..90a6799 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEuroSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEuroSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEuroSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faEuroSign.js new file mode 100644 index 0000000..6538431 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEuroSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'euro-sign'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f153'; +var svgPathData = 'M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEuroSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExchangeAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExchangeAlt.d.ts new file mode 100644 index 0000000..e6e986a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExchangeAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExchangeAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExchangeAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faExchangeAlt.js new file mode 100644 index 0000000..b1c1117 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExchangeAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'exchange-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f362'; +var svgPathData = 'M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExchangeAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExclamation.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExclamation.d.ts new file mode 100644 index 0000000..cd9a0d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExclamation.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExclamation: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExclamation.js b/node_modules/@fortawesome/free-solid-svg-icons/faExclamation.js new file mode 100644 index 0000000..4a136d2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExclamation.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'exclamation'; +var width = 192; +var height = 512; +var ligatures = []; +var unicode = 'f12a'; +var svgPathData = 'M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExclamation = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.d.ts new file mode 100644 index 0000000..ec4215c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExclamationCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.js new file mode 100644 index 0000000..313a1a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'exclamation-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f06a'; +var svgPathData = 'M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExclamationCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.d.ts new file mode 100644 index 0000000..206f864 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExclamationTriangle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.js b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.js new file mode 100644 index 0000000..d6aed08 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'exclamation-triangle'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f071'; +var svgPathData = 'M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExclamationTriangle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExpand.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExpand.d.ts new file mode 100644 index 0000000..4cc1734 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExpand.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExpand: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExpand.js b/node_modules/@fortawesome/free-solid-svg-icons/faExpand.js new file mode 100644 index 0000000..79754ab --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExpand.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'expand'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f065'; +var svgPathData = 'M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExpand = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExpandAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExpandAlt.d.ts new file mode 100644 index 0000000..422b7b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExpandAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExpandAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExpandAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faExpandAlt.js new file mode 100644 index 0000000..7d74fce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExpandAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'expand-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f424'; +var svgPathData = 'M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExpandAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExpandArrowsAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExpandArrowsAlt.d.ts new file mode 100644 index 0000000..8c7e7c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExpandArrowsAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExpandArrowsAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExpandArrowsAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faExpandArrowsAlt.js new file mode 100644 index 0000000..9d9822e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExpandArrowsAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'expand-arrows-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f31e'; +var svgPathData = 'M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExpandArrowsAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkAlt.d.ts new file mode 100644 index 0000000..7a6a413 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExternalLinkAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkAlt.js new file mode 100644 index 0000000..993c670 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'external-link-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f35d'; +var svgPathData = 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExternalLinkAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkSquareAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkSquareAlt.d.ts new file mode 100644 index 0000000..a2f1b39 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkSquareAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faExternalLinkSquareAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkSquareAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkSquareAlt.js new file mode 100644 index 0000000..19a3189 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faExternalLinkSquareAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'external-link-square-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f360'; +var svgPathData = 'M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faExternalLinkSquareAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEye.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEye.d.ts new file mode 100644 index 0000000..cae629c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEye.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEye: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEye.js b/node_modules/@fortawesome/free-solid-svg-icons/faEye.js new file mode 100644 index 0000000..b93b57d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEye.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'eye'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f06e'; +var svgPathData = 'M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEye = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEyeDropper.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEyeDropper.d.ts new file mode 100644 index 0000000..24dcb1f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEyeDropper.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEyeDropper: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEyeDropper.js b/node_modules/@fortawesome/free-solid-svg-icons/faEyeDropper.js new file mode 100644 index 0000000..2733c0c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEyeDropper.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'eye-dropper'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1fb'; +var svgPathData = 'M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEyeDropper = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEyeSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faEyeSlash.d.ts new file mode 100644 index 0000000..15f9571 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEyeSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faEyeSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faEyeSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faEyeSlash.js new file mode 100644 index 0000000..d90b67f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faEyeSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'eye-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f070'; +var svgPathData = 'M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faEyeSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFan.d.ts new file mode 100644 index 0000000..b090a16 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFan.js b/node_modules/@fortawesome/free-solid-svg-icons/faFan.js new file mode 100644 index 0000000..7f5a497 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fan'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f863'; +var svgPathData = 'M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFastBackward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFastBackward.d.ts new file mode 100644 index 0000000..3a61fe6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFastBackward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFastBackward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFastBackward.js b/node_modules/@fortawesome/free-solid-svg-icons/faFastBackward.js new file mode 100644 index 0000000..ca10ef2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFastBackward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fast-backward'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f049'; +var svgPathData = 'M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFastBackward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFastForward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFastForward.d.ts new file mode 100644 index 0000000..c93436c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFastForward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFastForward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFastForward.js b/node_modules/@fortawesome/free-solid-svg-icons/faFastForward.js new file mode 100644 index 0000000..c108525 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFastForward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fast-forward'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f050'; +var svgPathData = 'M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFastForward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFaucet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFaucet.d.ts new file mode 100644 index 0000000..eb2de80 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFaucet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFaucet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFaucet.js b/node_modules/@fortawesome/free-solid-svg-icons/faFaucet.js new file mode 100644 index 0000000..bbf1efd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFaucet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'faucet'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e005'; +var svgPathData = 'M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFaucet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFax.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFax.d.ts new file mode 100644 index 0000000..c0f9add --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFax.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFax: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFax.js b/node_modules/@fortawesome/free-solid-svg-icons/faFax.js new file mode 100644 index 0000000..b9eb40d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFax.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fax'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1ac'; +var svgPathData = 'M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFax = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFeather.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFeather.d.ts new file mode 100644 index 0000000..b4e6551 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFeather.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFeather: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFeather.js b/node_modules/@fortawesome/free-solid-svg-icons/faFeather.js new file mode 100644 index 0000000..333a67a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFeather.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'feather'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f52d'; +var svgPathData = 'M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFeather = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFeatherAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFeatherAlt.d.ts new file mode 100644 index 0000000..a01808b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFeatherAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFeatherAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFeatherAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faFeatherAlt.js new file mode 100644 index 0000000..05fb206 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFeatherAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'feather-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f56b'; +var svgPathData = 'M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFeatherAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFemale.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFemale.d.ts new file mode 100644 index 0000000..de1f49e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFemale.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFemale: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFemale.js b/node_modules/@fortawesome/free-solid-svg-icons/faFemale.js new file mode 100644 index 0000000..d1f1626 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFemale.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'female'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f182'; +var svgPathData = 'M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFemale = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFighterJet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFighterJet.d.ts new file mode 100644 index 0000000..2a17ee4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFighterJet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFighterJet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFighterJet.js b/node_modules/@fortawesome/free-solid-svg-icons/faFighterJet.js new file mode 100644 index 0000000..f4cc202 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFighterJet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fighter-jet'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0fb'; +var svgPathData = 'M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFighterJet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFile.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFile.d.ts new file mode 100644 index 0000000..ca6e8eb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFile.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFile: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFile.js b/node_modules/@fortawesome/free-solid-svg-icons/faFile.js new file mode 100644 index 0000000..b72c513 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFile.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f15b'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFile = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileAlt.d.ts new file mode 100644 index 0000000..ea29818 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileAlt.js new file mode 100644 index 0000000..01a2614 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-alt'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f15c'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileArchive.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileArchive.d.ts new file mode 100644 index 0000000..9041b09 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileArchive.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileArchive: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileArchive.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileArchive.js new file mode 100644 index 0000000..05a4111 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileArchive.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-archive'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c6'; +var svgPathData = 'M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileArchive = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileAudio.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileAudio.d.ts new file mode 100644 index 0000000..266c82b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileAudio.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileAudio: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileAudio.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileAudio.js new file mode 100644 index 0000000..f140ee6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileAudio.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-audio'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c7'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileAudio = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileCode.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileCode.d.ts new file mode 100644 index 0000000..c618e5c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileCode.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileCode: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileCode.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileCode.js new file mode 100644 index 0000000..53747c3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileCode.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-code'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c9'; +var svgPathData = 'M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileCode = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileContract.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileContract.d.ts new file mode 100644 index 0000000..a276a22 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileContract.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileContract: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileContract.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileContract.js new file mode 100644 index 0000000..1d59296 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileContract.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-contract'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f56c'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileContract = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileCsv.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileCsv.d.ts new file mode 100644 index 0000000..3424af4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileCsv.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileCsv: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileCsv.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileCsv.js new file mode 100644 index 0000000..55dedbb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileCsv.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-csv'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f6dd'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileCsv = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileDownload.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileDownload.d.ts new file mode 100644 index 0000000..0037d4a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileDownload.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileDownload: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileDownload.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileDownload.js new file mode 100644 index 0000000..3e5f00a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileDownload.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-download'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f56d'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileDownload = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileExcel.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileExcel.d.ts new file mode 100644 index 0000000..14fc529 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileExcel.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileExcel: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileExcel.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileExcel.js new file mode 100644 index 0000000..94a38c5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileExcel.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-excel'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c3'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileExcel = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileExport.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileExport.d.ts new file mode 100644 index 0000000..b607c06 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileExport.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileExport: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileExport.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileExport.js new file mode 100644 index 0000000..c36bc73 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileExport.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-export'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f56e'; +var svgPathData = 'M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileExport = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileImage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileImage.d.ts new file mode 100644 index 0000000..c298749 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileImage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileImage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileImage.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileImage.js new file mode 100644 index 0000000..9e0f737 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileImage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-image'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c5'; +var svgPathData = 'M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileImage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileImport.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileImport.d.ts new file mode 100644 index 0000000..1bf48b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileImport.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileImport: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileImport.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileImport.js new file mode 100644 index 0000000..2ac75f4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileImport.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-import'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f56f'; +var svgPathData = 'M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileImport = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoice.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoice.d.ts new file mode 100644 index 0000000..b5642b1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoice.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileInvoice: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoice.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoice.js new file mode 100644 index 0000000..33606ad --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoice.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-invoice'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f570'; +var svgPathData = 'M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileInvoice = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoiceDollar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoiceDollar.d.ts new file mode 100644 index 0000000..8505487 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoiceDollar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileInvoiceDollar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoiceDollar.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoiceDollar.js new file mode 100644 index 0000000..47c2747 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileInvoiceDollar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-invoice-dollar'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f571'; +var svgPathData = 'M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileInvoiceDollar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedical.d.ts new file mode 100644 index 0000000..ece43a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedical.js new file mode 100644 index 0000000..56ccc53 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-medical'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f477'; +var svgPathData = 'M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileMedicalAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedicalAlt.d.ts new file mode 100644 index 0000000..abaa017 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedicalAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileMedicalAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileMedicalAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedicalAlt.js new file mode 100644 index 0000000..d2699a9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileMedicalAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-medical-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f478'; +var svgPathData = 'M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileMedicalAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilePdf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFilePdf.d.ts new file mode 100644 index 0000000..90f8088 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilePdf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFilePdf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilePdf.js b/node_modules/@fortawesome/free-solid-svg-icons/faFilePdf.js new file mode 100644 index 0000000..f183764 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilePdf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-pdf'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c1'; +var svgPathData = 'M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFilePdf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilePowerpoint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFilePowerpoint.d.ts new file mode 100644 index 0000000..fbeed93 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilePowerpoint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFilePowerpoint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilePowerpoint.js b/node_modules/@fortawesome/free-solid-svg-icons/faFilePowerpoint.js new file mode 100644 index 0000000..93508e2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilePowerpoint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-powerpoint'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c4'; +var svgPathData = 'M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFilePowerpoint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilePrescription.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFilePrescription.d.ts new file mode 100644 index 0000000..2793293 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilePrescription.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFilePrescription: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilePrescription.js b/node_modules/@fortawesome/free-solid-svg-icons/faFilePrescription.js new file mode 100644 index 0000000..3b367b1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilePrescription.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-prescription'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f572'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFilePrescription = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileSignature.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileSignature.d.ts new file mode 100644 index 0000000..041d458 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileSignature.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileSignature: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileSignature.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileSignature.js new file mode 100644 index 0000000..2c158c5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileSignature.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-signature'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f573'; +var svgPathData = 'M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileSignature = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileUpload.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileUpload.d.ts new file mode 100644 index 0000000..8948da9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileUpload.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileUpload: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileUpload.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileUpload.js new file mode 100644 index 0000000..6d77f6d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileUpload.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-upload'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f574'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileUpload = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileVideo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileVideo.d.ts new file mode 100644 index 0000000..d11e672 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileVideo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileVideo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileVideo.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileVideo.js new file mode 100644 index 0000000..2150f19 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileVideo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-video'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c8'; +var svgPathData = 'M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileVideo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileWord.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFileWord.d.ts new file mode 100644 index 0000000..826a48d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileWord.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFileWord: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFileWord.js b/node_modules/@fortawesome/free-solid-svg-icons/faFileWord.js new file mode 100644 index 0000000..f6006b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFileWord.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'file-word'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1c2'; +var svgPathData = 'M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFileWord = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFill.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFill.d.ts new file mode 100644 index 0000000..e8bf404 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFill.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFill: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFill.js b/node_modules/@fortawesome/free-solid-svg-icons/faFill.js new file mode 100644 index 0000000..41677d1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFill.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fill'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f575'; +var svgPathData = 'M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFill = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFillDrip.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFillDrip.d.ts new file mode 100644 index 0000000..fd2e7e2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFillDrip.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFillDrip: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFillDrip.js b/node_modules/@fortawesome/free-solid-svg-icons/faFillDrip.js new file mode 100644 index 0000000..498163c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFillDrip.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fill-drip'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f576'; +var svgPathData = 'M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFillDrip = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilm.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFilm.d.ts new file mode 100644 index 0000000..3e91801 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilm.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFilm: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilm.js b/node_modules/@fortawesome/free-solid-svg-icons/faFilm.js new file mode 100644 index 0000000..3d4cc95 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilm.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'film'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f008'; +var svgPathData = 'M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFilm = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFilter.d.ts new file mode 100644 index 0000000..94c0895 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFilter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFilter.js b/node_modules/@fortawesome/free-solid-svg-icons/faFilter.js new file mode 100644 index 0000000..21a3355 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFilter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'filter'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0b0'; +var svgPathData = 'M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFilter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFingerprint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFingerprint.d.ts new file mode 100644 index 0000000..b483490 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFingerprint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFingerprint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFingerprint.js b/node_modules/@fortawesome/free-solid-svg-icons/faFingerprint.js new file mode 100644 index 0000000..1706ff4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFingerprint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fingerprint'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f577'; +var svgPathData = 'M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFingerprint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFire.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFire.d.ts new file mode 100644 index 0000000..b2f3716 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFire.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFire: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFire.js b/node_modules/@fortawesome/free-solid-svg-icons/faFire.js new file mode 100644 index 0000000..51e2bf4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFire.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fire'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f06d'; +var svgPathData = 'M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFire = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFireAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFireAlt.d.ts new file mode 100644 index 0000000..61da861 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFireAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFireAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFireAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faFireAlt.js new file mode 100644 index 0000000..ec44fc1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFireAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fire-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f7e4'; +var svgPathData = 'M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFireAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFireExtinguisher.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFireExtinguisher.d.ts new file mode 100644 index 0000000..8bba526 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFireExtinguisher.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFireExtinguisher: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFireExtinguisher.js b/node_modules/@fortawesome/free-solid-svg-icons/faFireExtinguisher.js new file mode 100644 index 0000000..56f4dcd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFireExtinguisher.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fire-extinguisher'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f134'; +var svgPathData = 'M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFireExtinguisher = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFirstAid.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFirstAid.d.ts new file mode 100644 index 0000000..a0c3b65 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFirstAid.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFirstAid: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFirstAid.js b/node_modules/@fortawesome/free-solid-svg-icons/faFirstAid.js new file mode 100644 index 0000000..a758ae8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFirstAid.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'first-aid'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f479'; +var svgPathData = 'M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFirstAid = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFish.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFish.d.ts new file mode 100644 index 0000000..2fb85ef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFish.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFish: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFish.js b/node_modules/@fortawesome/free-solid-svg-icons/faFish.js new file mode 100644 index 0000000..3972962 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFish.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fish'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f578'; +var svgPathData = 'M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFish = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFistRaised.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFistRaised.d.ts new file mode 100644 index 0000000..84df2b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFistRaised.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFistRaised: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFistRaised.js b/node_modules/@fortawesome/free-solid-svg-icons/faFistRaised.js new file mode 100644 index 0000000..0e6ec86 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFistRaised.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'fist-raised'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f6de'; +var svgPathData = 'M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFistRaised = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlag.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFlag.d.ts new file mode 100644 index 0000000..96a6bbe --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlag.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFlag: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlag.js b/node_modules/@fortawesome/free-solid-svg-icons/faFlag.js new file mode 100644 index 0000000..364ce70 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlag.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'flag'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f024'; +var svgPathData = 'M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFlag = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlagCheckered.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFlagCheckered.d.ts new file mode 100644 index 0000000..90b90a1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlagCheckered.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFlagCheckered: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlagCheckered.js b/node_modules/@fortawesome/free-solid-svg-icons/faFlagCheckered.js new file mode 100644 index 0000000..e5cb401 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlagCheckered.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'flag-checkered'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f11e'; +var svgPathData = 'M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFlagCheckered = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlagUsa.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFlagUsa.d.ts new file mode 100644 index 0000000..3e331f1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlagUsa.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFlagUsa: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlagUsa.js b/node_modules/@fortawesome/free-solid-svg-icons/faFlagUsa.js new file mode 100644 index 0000000..ed9eba7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlagUsa.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'flag-usa'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f74d'; +var svgPathData = 'M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFlagUsa = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlask.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFlask.d.ts new file mode 100644 index 0000000..f8affff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlask.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFlask: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlask.js b/node_modules/@fortawesome/free-solid-svg-icons/faFlask.js new file mode 100644 index 0000000..2631271 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlask.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'flask'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c3'; +var svgPathData = 'M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFlask = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlushed.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFlushed.d.ts new file mode 100644 index 0000000..3394430 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlushed.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFlushed: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFlushed.js b/node_modules/@fortawesome/free-solid-svg-icons/faFlushed.js new file mode 100644 index 0000000..b216c2a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFlushed.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'flushed'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f579'; +var svgPathData = 'M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFlushed = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolder.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFolder.d.ts new file mode 100644 index 0000000..dbd5a42 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolder.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFolder: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolder.js b/node_modules/@fortawesome/free-solid-svg-icons/faFolder.js new file mode 100644 index 0000000..10384e2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolder.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'folder'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f07b'; +var svgPathData = 'M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFolder = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolderMinus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFolderMinus.d.ts new file mode 100644 index 0000000..61f832f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolderMinus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFolderMinus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolderMinus.js b/node_modules/@fortawesome/free-solid-svg-icons/faFolderMinus.js new file mode 100644 index 0000000..501ff6b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolderMinus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'folder-minus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f65d'; +var svgPathData = 'M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFolderMinus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.d.ts new file mode 100644 index 0000000..7a6f02b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFolderOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.js new file mode 100644 index 0000000..d7bb913 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolderOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'folder-open'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f07c'; +var svgPathData = 'M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFolderOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolderPlus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFolderPlus.d.ts new file mode 100644 index 0000000..3cff357 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolderPlus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFolderPlus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFolderPlus.js b/node_modules/@fortawesome/free-solid-svg-icons/faFolderPlus.js new file mode 100644 index 0000000..04ab4d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFolderPlus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'folder-plus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f65e'; +var svgPathData = 'M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFolderPlus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFont.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFont.d.ts new file mode 100644 index 0000000..bc05d60 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFont.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFont: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFont.js b/node_modules/@fortawesome/free-solid-svg-icons/faFont.js new file mode 100644 index 0000000..0622c2e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFont.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'font'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f031'; +var svgPathData = 'M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFont = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFontAwesomeLogoFull.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFontAwesomeLogoFull.d.ts new file mode 100644 index 0000000..fd1e83f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFontAwesomeLogoFull.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFontAwesomeLogoFull: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFontAwesomeLogoFull.js b/node_modules/@fortawesome/free-solid-svg-icons/faFontAwesomeLogoFull.js new file mode 100644 index 0000000..f92df75 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFontAwesomeLogoFull.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'font-awesome-logo-full'; +var width = 3992; +var height = 512; +var ligatures = ['Font Awesome']; +var unicode = 'f4e6'; +var svgPathData = 'M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFontAwesomeLogoFull = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFootballBall.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFootballBall.d.ts new file mode 100644 index 0000000..95a3b25 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFootballBall.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFootballBall: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFootballBall.js b/node_modules/@fortawesome/free-solid-svg-icons/faFootballBall.js new file mode 100644 index 0000000..af4e079 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFootballBall.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'football-ball'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f44e'; +var svgPathData = 'M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFootballBall = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faForward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faForward.d.ts new file mode 100644 index 0000000..a3922a8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faForward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faForward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faForward.js b/node_modules/@fortawesome/free-solid-svg-icons/faForward.js new file mode 100644 index 0000000..10fa969 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faForward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'forward'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f04e'; +var svgPathData = 'M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faForward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFrog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFrog.d.ts new file mode 100644 index 0000000..1b649b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFrog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFrog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFrog.js b/node_modules/@fortawesome/free-solid-svg-icons/faFrog.js new file mode 100644 index 0000000..15744a9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFrog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'frog'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f52e'; +var svgPathData = 'M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFrog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFrown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFrown.d.ts new file mode 100644 index 0000000..2c64be0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFrown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFrown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFrown.js b/node_modules/@fortawesome/free-solid-svg-icons/faFrown.js new file mode 100644 index 0000000..e53b63f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFrown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'frown'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f119'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFrown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFrownOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFrownOpen.d.ts new file mode 100644 index 0000000..e2fea38 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFrownOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFrownOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFrownOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faFrownOpen.js new file mode 100644 index 0000000..01f07f9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFrownOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'frown-open'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f57a'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFrownOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFunnelDollar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFunnelDollar.d.ts new file mode 100644 index 0000000..c0942e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFunnelDollar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFunnelDollar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFunnelDollar.js b/node_modules/@fortawesome/free-solid-svg-icons/faFunnelDollar.js new file mode 100644 index 0000000..41c1de2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFunnelDollar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'funnel-dollar'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f662'; +var svgPathData = 'M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFunnelDollar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFutbol.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faFutbol.d.ts new file mode 100644 index 0000000..116d931 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFutbol.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faFutbol: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faFutbol.js b/node_modules/@fortawesome/free-solid-svg-icons/faFutbol.js new file mode 100644 index 0000000..eb4764e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faFutbol.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'futbol'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1e3'; +var svgPathData = 'M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faFutbol = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGamepad.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGamepad.d.ts new file mode 100644 index 0000000..c72b8ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGamepad.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGamepad: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGamepad.js b/node_modules/@fortawesome/free-solid-svg-icons/faGamepad.js new file mode 100644 index 0000000..6a32147 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGamepad.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gamepad'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f11b'; +var svgPathData = 'M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGamepad = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGasPump.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGasPump.d.ts new file mode 100644 index 0000000..35def4d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGasPump.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGasPump: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGasPump.js b/node_modules/@fortawesome/free-solid-svg-icons/faGasPump.js new file mode 100644 index 0000000..4d2ffd9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGasPump.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gas-pump'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f52f'; +var svgPathData = 'M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGasPump = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGavel.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGavel.d.ts new file mode 100644 index 0000000..aff613b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGavel.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGavel: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGavel.js b/node_modules/@fortawesome/free-solid-svg-icons/faGavel.js new file mode 100644 index 0000000..809af60 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGavel.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gavel'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0e3'; +var svgPathData = 'M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGavel = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGem.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGem.d.ts new file mode 100644 index 0000000..a138c0a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGem.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGem: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGem.js b/node_modules/@fortawesome/free-solid-svg-icons/faGem.js new file mode 100644 index 0000000..a800bfe --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGem.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gem'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f3a5'; +var svgPathData = 'M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGem = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGenderless.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGenderless.d.ts new file mode 100644 index 0000000..b412541 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGenderless.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGenderless: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGenderless.js b/node_modules/@fortawesome/free-solid-svg-icons/faGenderless.js new file mode 100644 index 0000000..d341225 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGenderless.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'genderless'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f22d'; +var svgPathData = 'M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGenderless = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGhost.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGhost.d.ts new file mode 100644 index 0000000..b3ee9b0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGhost.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGhost: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGhost.js b/node_modules/@fortawesome/free-solid-svg-icons/faGhost.js new file mode 100644 index 0000000..7aa3141 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGhost.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ghost'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f6e2'; +var svgPathData = 'M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGhost = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGift.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGift.d.ts new file mode 100644 index 0000000..a0b98b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGift.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGift: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGift.js b/node_modules/@fortawesome/free-solid-svg-icons/faGift.js new file mode 100644 index 0000000..924e20a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGift.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gift'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f06b'; +var svgPathData = 'M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGift = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGifts.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGifts.d.ts new file mode 100644 index 0000000..a4b8bda --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGifts.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGifts: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGifts.js b/node_modules/@fortawesome/free-solid-svg-icons/faGifts.js new file mode 100644 index 0000000..5fa19dc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGifts.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gifts'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f79c'; +var svgPathData = 'M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGifts = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassCheers.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlassCheers.d.ts new file mode 100644 index 0000000..f199217 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassCheers.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlassCheers: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassCheers.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlassCheers.js new file mode 100644 index 0000000..55bb241 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassCheers.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'glass-cheers'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f79f'; +var svgPathData = 'M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlassCheers = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartini.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartini.d.ts new file mode 100644 index 0000000..8f6eeba --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartini.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlassMartini: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartini.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartini.js new file mode 100644 index 0000000..8d4c5c5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartini.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'glass-martini'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f000'; +var svgPathData = 'M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlassMartini = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartiniAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartiniAlt.d.ts new file mode 100644 index 0000000..794c2e0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartiniAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlassMartiniAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartiniAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartiniAlt.js new file mode 100644 index 0000000..8d7682a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassMartiniAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'glass-martini-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f57b'; +var svgPathData = 'M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlassMartiniAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassWhiskey.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlassWhiskey.d.ts new file mode 100644 index 0000000..733b819 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassWhiskey.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlassWhiskey: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlassWhiskey.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlassWhiskey.js new file mode 100644 index 0000000..e3acd0b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlassWhiskey.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'glass-whiskey'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7a0'; +var svgPathData = 'M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlassWhiskey = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlasses.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlasses.d.ts new file mode 100644 index 0000000..7e2c857 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlasses.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlasses: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlasses.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlasses.js new file mode 100644 index 0000000..5d9dff9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlasses.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'glasses'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f530'; +var svgPathData = 'M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlasses = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobe.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlobe.d.ts new file mode 100644 index 0000000..e78c2c3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobe.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlobe: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobe.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlobe.js new file mode 100644 index 0000000..8bac37e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobe.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'globe'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f0ac'; +var svgPathData = 'M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlobe = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAfrica.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAfrica.d.ts new file mode 100644 index 0000000..6617dd9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAfrica.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlobeAfrica: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAfrica.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAfrica.js new file mode 100644 index 0000000..58ae6dd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAfrica.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'globe-africa'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f57c'; +var svgPathData = 'M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlobeAfrica = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAmericas.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAmericas.d.ts new file mode 100644 index 0000000..679a4e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAmericas.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlobeAmericas: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAmericas.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAmericas.js new file mode 100644 index 0000000..8568c46 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAmericas.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'globe-americas'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f57d'; +var svgPathData = 'M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlobeAmericas = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAsia.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAsia.d.ts new file mode 100644 index 0000000..c9da69e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAsia.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlobeAsia: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAsia.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAsia.js new file mode 100644 index 0000000..fd069b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeAsia.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'globe-asia'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f57e'; +var svgPathData = 'M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlobeAsia = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeEurope.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeEurope.d.ts new file mode 100644 index 0000000..ee443f4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeEurope.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGlobeEurope: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGlobeEurope.js b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeEurope.js new file mode 100644 index 0000000..3d134d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGlobeEurope.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'globe-europe'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f7a2'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGlobeEurope = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGolfBall.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGolfBall.d.ts new file mode 100644 index 0000000..945c745 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGolfBall.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGolfBall: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGolfBall.js b/node_modules/@fortawesome/free-solid-svg-icons/faGolfBall.js new file mode 100644 index 0000000..f783dc2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGolfBall.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'golf-ball'; +var width = 416; +var height = 512; +var ligatures = []; +var unicode = 'f450'; +var svgPathData = 'M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGolfBall = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGopuram.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGopuram.d.ts new file mode 100644 index 0000000..82de64e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGopuram.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGopuram: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGopuram.js b/node_modules/@fortawesome/free-solid-svg-icons/faGopuram.js new file mode 100644 index 0000000..266181b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGopuram.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'gopuram'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f664'; +var svgPathData = 'M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGopuram = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGraduationCap.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGraduationCap.d.ts new file mode 100644 index 0000000..a94c615 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGraduationCap.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGraduationCap: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGraduationCap.js b/node_modules/@fortawesome/free-solid-svg-icons/faGraduationCap.js new file mode 100644 index 0000000..60078ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGraduationCap.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'graduation-cap'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f19d'; +var svgPathData = 'M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGraduationCap = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThan.d.ts new file mode 100644 index 0000000..eb09187 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGreaterThan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThan.js b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThan.js new file mode 100644 index 0000000..8e16e54 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'greater-than'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f531'; +var svgPathData = 'M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGreaterThan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThanEqual.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThanEqual.d.ts new file mode 100644 index 0000000..5bc0c3d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThanEqual.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGreaterThanEqual: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThanEqual.js b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThanEqual.js new file mode 100644 index 0000000..319287e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGreaterThanEqual.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'greater-than-equal'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f532'; +var svgPathData = 'M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGreaterThanEqual = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrimace.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrimace.d.ts new file mode 100644 index 0000000..d1b1e12 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrimace.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrimace: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrimace.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrimace.js new file mode 100644 index 0000000..fc31036 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrimace.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grimace'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f57f'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrimace = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrin.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrin.d.ts new file mode 100644 index 0000000..2db97f2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrin.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrin: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrin.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrin.js new file mode 100644 index 0000000..f36e8a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrin.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f580'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrin = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinAlt.d.ts new file mode 100644 index 0000000..96aa883 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinAlt.js new file mode 100644 index 0000000..0e95cd5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-alt'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f581'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeam.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeam.d.ts new file mode 100644 index 0000000..aa16a68 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeam.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinBeam: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeam.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeam.js new file mode 100644 index 0000000..9bc5a0a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeam.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-beam'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f582'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinBeam = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeamSweat.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeamSweat.d.ts new file mode 100644 index 0000000..dd871d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeamSweat.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinBeamSweat: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeamSweat.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeamSweat.js new file mode 100644 index 0000000..018d6d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinBeamSweat.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-beam-sweat'; +var width = 504; +var height = 512; +var ligatures = []; +var unicode = 'f583'; +var svgPathData = 'M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinBeamSweat = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinHearts.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinHearts.d.ts new file mode 100644 index 0000000..e8079ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinHearts.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinHearts: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinHearts.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinHearts.js new file mode 100644 index 0000000..89e5f52 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinHearts.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-hearts'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f584'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinHearts = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquint.d.ts new file mode 100644 index 0000000..be74193 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinSquint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquint.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquint.js new file mode 100644 index 0000000..673f76a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-squint'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f585'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinSquint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquintTears.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquintTears.d.ts new file mode 100644 index 0000000..7ab9e2e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquintTears.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinSquintTears: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquintTears.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquintTears.js new file mode 100644 index 0000000..a25b4ae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinSquintTears.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-squint-tears'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f586'; +var svgPathData = 'M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinSquintTears = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinStars.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinStars.d.ts new file mode 100644 index 0000000..d3fb069 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinStars.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinStars: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinStars.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinStars.js new file mode 100644 index 0000000..91124cf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinStars.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-stars'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f587'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinStars = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTears.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTears.d.ts new file mode 100644 index 0000000..1b28443 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTears.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinTears: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTears.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTears.js new file mode 100644 index 0000000..3208c7f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTears.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-tears'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f588'; +var svgPathData = 'M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinTears = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongue.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongue.d.ts new file mode 100644 index 0000000..db34931 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongue.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinTongue: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongue.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongue.js new file mode 100644 index 0000000..4274227 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongue.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-tongue'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f589'; +var svgPathData = 'M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinTongue = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueSquint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueSquint.d.ts new file mode 100644 index 0000000..63d2e6c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueSquint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinTongueSquint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueSquint.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueSquint.js new file mode 100644 index 0000000..c28e183 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueSquint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-tongue-squint'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f58a'; +var svgPathData = 'M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinTongueSquint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueWink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueWink.d.ts new file mode 100644 index 0000000..e9d3ced --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueWink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinTongueWink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueWink.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueWink.js new file mode 100644 index 0000000..0615504 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinTongueWink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-tongue-wink'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f58b'; +var svgPathData = 'M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinTongueWink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinWink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGrinWink.d.ts new file mode 100644 index 0000000..be6abb7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinWink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGrinWink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGrinWink.js b/node_modules/@fortawesome/free-solid-svg-icons/faGrinWink.js new file mode 100644 index 0000000..a619bdb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGrinWink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grin-wink'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f58c'; +var svgPathData = 'M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGrinWink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripHorizontal.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGripHorizontal.d.ts new file mode 100644 index 0000000..3e29218 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripHorizontal.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGripHorizontal: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripHorizontal.js b/node_modules/@fortawesome/free-solid-svg-icons/faGripHorizontal.js new file mode 100644 index 0000000..e2964fb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripHorizontal.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grip-horizontal'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f58d'; +var svgPathData = 'M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGripHorizontal = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripLines.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGripLines.d.ts new file mode 100644 index 0000000..1f61bd6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripLines.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGripLines: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripLines.js b/node_modules/@fortawesome/free-solid-svg-icons/faGripLines.js new file mode 100644 index 0000000..c5d717f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripLines.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grip-lines'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7a4'; +var svgPathData = 'M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGripLines = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.d.ts new file mode 100644 index 0000000..b7f9055 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGripLinesVertical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.js b/node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.js new file mode 100644 index 0000000..2aa55c3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripLinesVertical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grip-lines-vertical'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f7a5'; +var svgPathData = 'M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGripLinesVertical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripVertical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGripVertical.d.ts new file mode 100644 index 0000000..e12ec66 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripVertical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGripVertical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGripVertical.js b/node_modules/@fortawesome/free-solid-svg-icons/faGripVertical.js new file mode 100644 index 0000000..056be02 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGripVertical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'grip-vertical'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f58e'; +var svgPathData = 'M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGripVertical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGuitar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faGuitar.d.ts new file mode 100644 index 0000000..6703d0c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGuitar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faGuitar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faGuitar.js b/node_modules/@fortawesome/free-solid-svg-icons/faGuitar.js new file mode 100644 index 0000000..d4ecd2f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faGuitar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'guitar'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7a6'; +var svgPathData = 'M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faGuitar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHSquare.d.ts new file mode 100644 index 0000000..38aad94 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faHSquare.js new file mode 100644 index 0000000..f64c190 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'h-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0fd'; +var svgPathData = 'M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHamburger.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHamburger.d.ts new file mode 100644 index 0000000..110b2ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHamburger.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHamburger: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHamburger.js b/node_modules/@fortawesome/free-solid-svg-icons/faHamburger.js new file mode 100644 index 0000000..1ce0f75 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHamburger.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hamburger'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f805'; +var svgPathData = 'M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHamburger = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHammer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHammer.d.ts new file mode 100644 index 0000000..85b24e4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHammer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHammer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHammer.js b/node_modules/@fortawesome/free-solid-svg-icons/faHammer.js new file mode 100644 index 0000000..47fbfa3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHammer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hammer'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f6e3'; +var svgPathData = 'M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHammer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHamsa.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHamsa.d.ts new file mode 100644 index 0000000..1bddb1c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHamsa.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHamsa: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHamsa.js b/node_modules/@fortawesome/free-solid-svg-icons/faHamsa.js new file mode 100644 index 0000000..d4f3247 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHamsa.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hamsa'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f665'; +var svgPathData = 'M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHamsa = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHolding.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandHolding.d.ts new file mode 100644 index 0000000..55c9f9c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHolding.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandHolding: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHolding.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandHolding.js new file mode 100644 index 0000000..ed02e70 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHolding.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-holding'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f4bd'; +var svgPathData = 'M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandHolding = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingHeart.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingHeart.d.ts new file mode 100644 index 0000000..58e1db6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingHeart.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandHoldingHeart: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingHeart.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingHeart.js new file mode 100644 index 0000000..2443f65 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingHeart.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-holding-heart'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f4be'; +var svgPathData = 'M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandHoldingHeart = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingMedical.d.ts new file mode 100644 index 0000000..fa652a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandHoldingMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingMedical.js new file mode 100644 index 0000000..75aacb0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-holding-medical'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'e05c'; +var svgPathData = 'M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandHoldingMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingUsd.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingUsd.d.ts new file mode 100644 index 0000000..5d53845 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingUsd.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandHoldingUsd: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingUsd.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingUsd.js new file mode 100644 index 0000000..ce7f895 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingUsd.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-holding-usd'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f4c0'; +var svgPathData = 'M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandHoldingUsd = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingWater.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingWater.d.ts new file mode 100644 index 0000000..854778f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingWater.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandHoldingWater: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingWater.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingWater.js new file mode 100644 index 0000000..9f11443 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandHoldingWater.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-holding-water'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f4c1'; +var svgPathData = 'M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandHoldingWater = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandLizard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandLizard.d.ts new file mode 100644 index 0000000..a1509b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandLizard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandLizard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandLizard.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandLizard.js new file mode 100644 index 0000000..901f5e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandLizard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-lizard'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f258'; +var svgPathData = 'M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandLizard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandMiddleFinger.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandMiddleFinger.d.ts new file mode 100644 index 0000000..c6304d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandMiddleFinger.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandMiddleFinger: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandMiddleFinger.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandMiddleFinger.js new file mode 100644 index 0000000..77c99ce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandMiddleFinger.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-middle-finger'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f806'; +var svgPathData = 'M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandMiddleFinger = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPaper.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPaper.d.ts new file mode 100644 index 0000000..b6b4de0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPaper.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPaper: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPaper.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPaper.js new file mode 100644 index 0000000..6799e1a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPaper.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-paper'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f256'; +var svgPathData = 'M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPaper = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPeace.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPeace.d.ts new file mode 100644 index 0000000..19191e2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPeace.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPeace: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPeace.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPeace.js new file mode 100644 index 0000000..30c0d42 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPeace.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-peace'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f25b'; +var svgPathData = 'M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPeace = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointDown.d.ts new file mode 100644 index 0000000..418c728 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPointDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointDown.js new file mode 100644 index 0000000..341e4c5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-point-down'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f0a7'; +var svgPathData = 'M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPointDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointLeft.d.ts new file mode 100644 index 0000000..8608bc5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPointLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointLeft.js new file mode 100644 index 0000000..edb6bc7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-point-left'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0a5'; +var svgPathData = 'M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPointLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointRight.d.ts new file mode 100644 index 0000000..f2f9478 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPointRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointRight.js new file mode 100644 index 0000000..34b2c25 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-point-right'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0a4'; +var svgPathData = 'M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPointRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointUp.d.ts new file mode 100644 index 0000000..b854cb8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPointUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointUp.js new file mode 100644 index 0000000..34bc135 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-point-up'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f0a6'; +var svgPathData = 'M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPointUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointer.d.ts new file mode 100644 index 0000000..1328b3d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandPointer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandPointer.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointer.js new file mode 100644 index 0000000..bfab24d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandPointer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-pointer'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f25a'; +var svgPathData = 'M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandPointer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandRock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandRock.d.ts new file mode 100644 index 0000000..0791b11 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandRock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandRock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandRock.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandRock.js new file mode 100644 index 0000000..249304c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandRock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-rock'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f255'; +var svgPathData = 'M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandRock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandScissors.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandScissors.d.ts new file mode 100644 index 0000000..381e75b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandScissors.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandScissors: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandScissors.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandScissors.js new file mode 100644 index 0000000..d7cee0b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandScissors.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-scissors'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f257'; +var svgPathData = 'M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandScissors = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandSparkles.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandSparkles.d.ts new file mode 100644 index 0000000..d4f08d2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandSparkles.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandSparkles: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandSparkles.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandSparkles.js new file mode 100644 index 0000000..f66c999 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandSparkles.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-sparkles'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e05d'; +var svgPathData = 'M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandSparkles = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandSpock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandSpock.d.ts new file mode 100644 index 0000000..01ca8d0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandSpock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandSpock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandSpock.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandSpock.js new file mode 100644 index 0000000..0f572b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandSpock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hand-spock'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f259'; +var svgPathData = 'M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandSpock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHands.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHands.d.ts new file mode 100644 index 0000000..eb064b9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHands.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHands: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHands.js b/node_modules/@fortawesome/free-solid-svg-icons/faHands.js new file mode 100644 index 0000000..20a9672 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHands.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hands'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4c2'; +var svgPathData = 'M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHands = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandsHelping.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandsHelping.d.ts new file mode 100644 index 0000000..3587cd4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandsHelping.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandsHelping: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandsHelping.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandsHelping.js new file mode 100644 index 0000000..4ffae07 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandsHelping.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hands-helping'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4c4'; +var svgPathData = 'M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandsHelping = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandsWash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandsWash.d.ts new file mode 100644 index 0000000..d720a3b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandsWash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandsWash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandsWash.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandsWash.js new file mode 100644 index 0000000..d37ab46 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandsWash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hands-wash'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'e05e'; +var svgPathData = 'M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandsWash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandshake.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandshake.d.ts new file mode 100644 index 0000000..fc43463 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandshake.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandshake: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandshake.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandshake.js new file mode 100644 index 0000000..51b7d7e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandshake.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'handshake'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f2b5'; +var svgPathData = 'M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandshake = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeAltSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeAltSlash.d.ts new file mode 100644 index 0000000..5a2c057 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeAltSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandshakeAltSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeAltSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeAltSlash.js new file mode 100644 index 0000000..d1b32ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeAltSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'handshake-alt-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e05f'; +var svgPathData = 'M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandshakeAltSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeSlash.d.ts new file mode 100644 index 0000000..686881a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHandshakeSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeSlash.js new file mode 100644 index 0000000..bf6d0ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHandshakeSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'handshake-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e060'; +var svgPathData = 'M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHandshakeSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHanukiah.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHanukiah.d.ts new file mode 100644 index 0000000..25948a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHanukiah.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHanukiah: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHanukiah.js b/node_modules/@fortawesome/free-solid-svg-icons/faHanukiah.js new file mode 100644 index 0000000..81df887 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHanukiah.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hanukiah'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6e6'; +var svgPathData = 'M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHanukiah = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHardHat.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHardHat.d.ts new file mode 100644 index 0000000..597dd39 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHardHat.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHardHat: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHardHat.js b/node_modules/@fortawesome/free-solid-svg-icons/faHardHat.js new file mode 100644 index 0000000..bd8701d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHardHat.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hard-hat'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f807'; +var svgPathData = 'M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHardHat = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHashtag.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHashtag.d.ts new file mode 100644 index 0000000..91554f1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHashtag.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHashtag: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHashtag.js b/node_modules/@fortawesome/free-solid-svg-icons/faHashtag.js new file mode 100644 index 0000000..f81b5d2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHashtag.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hashtag'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f292'; +var svgPathData = 'M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHashtag = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboy.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboy.d.ts new file mode 100644 index 0000000..8241749 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboy.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHatCowboy: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboy.js b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboy.js new file mode 100644 index 0000000..24b971d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboy.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hat-cowboy'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f8c0'; +var svgPathData = 'M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHatCowboy = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboySide.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboySide.d.ts new file mode 100644 index 0000000..257585d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboySide.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHatCowboySide: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboySide.js b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboySide.js new file mode 100644 index 0000000..0fcd85d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHatCowboySide.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hat-cowboy-side'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f8c1'; +var svgPathData = 'M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHatCowboySide = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHatWizard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHatWizard.d.ts new file mode 100644 index 0000000..0372fbb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHatWizard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHatWizard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHatWizard.js b/node_modules/@fortawesome/free-solid-svg-icons/faHatWizard.js new file mode 100644 index 0000000..4a25371 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHatWizard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hat-wizard'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f6e8'; +var svgPathData = 'M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHatWizard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHdd.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHdd.d.ts new file mode 100644 index 0000000..922fac4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHdd.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHdd: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHdd.js b/node_modules/@fortawesome/free-solid-svg-icons/faHdd.js new file mode 100644 index 0000000..5b9f573 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHdd.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hdd'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f0a0'; +var svgPathData = 'M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHdd = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCough.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCough.d.ts new file mode 100644 index 0000000..12c62ce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCough.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadSideCough: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCough.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCough.js new file mode 100644 index 0000000..b28df32 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCough.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'head-side-cough'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e061'; +var svgPathData = 'M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadSideCough = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCoughSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCoughSlash.d.ts new file mode 100644 index 0000000..5fa3353 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCoughSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadSideCoughSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCoughSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCoughSlash.js new file mode 100644 index 0000000..8aa5956 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideCoughSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'head-side-cough-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e062'; +var svgPathData = 'M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadSideCoughSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideMask.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideMask.d.ts new file mode 100644 index 0000000..95376cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideMask.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadSideMask: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideMask.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideMask.js new file mode 100644 index 0000000..3e800a9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideMask.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'head-side-mask'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e063'; +var svgPathData = 'M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadSideMask = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideVirus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideVirus.d.ts new file mode 100644 index 0000000..3fa9ea7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideVirus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadSideVirus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideVirus.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideVirus.js new file mode 100644 index 0000000..3a6f30b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadSideVirus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'head-side-virus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e064'; +var svgPathData = 'M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadSideVirus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeading.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeading.d.ts new file mode 100644 index 0000000..478ef16 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeading.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeading: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeading.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeading.js new file mode 100644 index 0000000..a4228af --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeading.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'heading'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1dc'; +var svgPathData = 'M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeading = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadphones.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphones.d.ts new file mode 100644 index 0000000..e8fd36c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphones.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadphones: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadphones.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphones.js new file mode 100644 index 0000000..1f92e17 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphones.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'headphones'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f025'; +var svgPathData = 'M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadphones = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadphonesAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphonesAlt.d.ts new file mode 100644 index 0000000..c4fabe6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphonesAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadphonesAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadphonesAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphonesAlt.js new file mode 100644 index 0000000..05fe7e0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadphonesAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'headphones-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f58f'; +var svgPathData = 'M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadphonesAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadset.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeadset.d.ts new file mode 100644 index 0000000..0630644 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadset.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeadset: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeadset.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeadset.js new file mode 100644 index 0000000..1d15858 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeadset.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'headset'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f590'; +var svgPathData = 'M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeadset = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeart.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeart.d.ts new file mode 100644 index 0000000..c109fc3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeart.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeart: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeart.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeart.js new file mode 100644 index 0000000..c230a6b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeart.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'heart'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f004'; +var svgPathData = 'M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeart = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeartBroken.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeartBroken.d.ts new file mode 100644 index 0000000..6fb80fa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeartBroken.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeartBroken: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeartBroken.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeartBroken.js new file mode 100644 index 0000000..56f4d88 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeartBroken.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'heart-broken'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7a9'; +var svgPathData = 'M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeartBroken = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeartbeat.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHeartbeat.d.ts new file mode 100644 index 0000000..e698799 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeartbeat.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHeartbeat: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHeartbeat.js b/node_modules/@fortawesome/free-solid-svg-icons/faHeartbeat.js new file mode 100644 index 0000000..294d3b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHeartbeat.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'heartbeat'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f21e'; +var svgPathData = 'M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHeartbeat = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHelicopter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHelicopter.d.ts new file mode 100644 index 0000000..17020d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHelicopter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHelicopter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHelicopter.js b/node_modules/@fortawesome/free-solid-svg-icons/faHelicopter.js new file mode 100644 index 0000000..defa741 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHelicopter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'helicopter'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f533'; +var svgPathData = 'M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHelicopter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHighlighter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHighlighter.d.ts new file mode 100644 index 0000000..5e9a5b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHighlighter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHighlighter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHighlighter.js b/node_modules/@fortawesome/free-solid-svg-icons/faHighlighter.js new file mode 100644 index 0000000..30ab952 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHighlighter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'highlighter'; +var width = 544; +var height = 512; +var ligatures = []; +var unicode = 'f591'; +var svgPathData = 'M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHighlighter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHiking.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHiking.d.ts new file mode 100644 index 0000000..02c2304 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHiking.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHiking: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHiking.js b/node_modules/@fortawesome/free-solid-svg-icons/faHiking.js new file mode 100644 index 0000000..d5183ad --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHiking.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hiking'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f6ec'; +var svgPathData = 'M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHiking = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHippo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHippo.d.ts new file mode 100644 index 0000000..a25eb53 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHippo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHippo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHippo.js b/node_modules/@fortawesome/free-solid-svg-icons/faHippo.js new file mode 100644 index 0000000..9905c18 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHippo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hippo'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6ed'; +var svgPathData = 'M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHippo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHistory.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHistory.d.ts new file mode 100644 index 0000000..3f95215 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHistory.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHistory: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHistory.js b/node_modules/@fortawesome/free-solid-svg-icons/faHistory.js new file mode 100644 index 0000000..793402c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHistory.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'history'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1da'; +var svgPathData = 'M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHistory = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHockeyPuck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHockeyPuck.d.ts new file mode 100644 index 0000000..9760d7a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHockeyPuck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHockeyPuck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHockeyPuck.js b/node_modules/@fortawesome/free-solid-svg-icons/faHockeyPuck.js new file mode 100644 index 0000000..adcabde --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHockeyPuck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hockey-puck'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f453'; +var svgPathData = 'M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHockeyPuck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHollyBerry.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHollyBerry.d.ts new file mode 100644 index 0000000..c02babf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHollyBerry.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHollyBerry: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHollyBerry.js b/node_modules/@fortawesome/free-solid-svg-icons/faHollyBerry.js new file mode 100644 index 0000000..baa063f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHollyBerry.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'holly-berry'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f7aa'; +var svgPathData = 'M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHollyBerry = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHome.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHome.d.ts new file mode 100644 index 0000000..7106505 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHome.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHome: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHome.js b/node_modules/@fortawesome/free-solid-svg-icons/faHome.js new file mode 100644 index 0000000..22715a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHome.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'home'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f015'; +var svgPathData = 'M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHome = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHorse.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHorse.d.ts new file mode 100644 index 0000000..8e02931 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHorse.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHorse: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHorse.js b/node_modules/@fortawesome/free-solid-svg-icons/faHorse.js new file mode 100644 index 0000000..070cd62 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHorse.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'horse'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f6f0'; +var svgPathData = 'M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHorse = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHorseHead.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHorseHead.d.ts new file mode 100644 index 0000000..d1390b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHorseHead.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHorseHead: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHorseHead.js b/node_modules/@fortawesome/free-solid-svg-icons/faHorseHead.js new file mode 100644 index 0000000..82c05b7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHorseHead.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'horse-head'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7ab'; +var svgPathData = 'M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHorseHead = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospital.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHospital.d.ts new file mode 100644 index 0000000..95cf60a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospital.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHospital: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospital.js b/node_modules/@fortawesome/free-solid-svg-icons/faHospital.js new file mode 100644 index 0000000..b768989 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospital.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hospital'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0f8'; +var svgPathData = 'M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHospital = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospitalAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalAlt.d.ts new file mode 100644 index 0000000..38b8f08 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHospitalAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospitalAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalAlt.js new file mode 100644 index 0000000..90622d8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hospital-alt'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f47d'; +var svgPathData = 'M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHospitalAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospitalSymbol.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalSymbol.d.ts new file mode 100644 index 0000000..c09fcd3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalSymbol.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHospitalSymbol: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospitalSymbol.js b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalSymbol.js new file mode 100644 index 0000000..9e19f97 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalSymbol.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hospital-symbol'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f47e'; +var svgPathData = 'M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHospitalSymbol = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospitalUser.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalUser.d.ts new file mode 100644 index 0000000..b288f08 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalUser.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHospitalUser: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHospitalUser.js b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalUser.js new file mode 100644 index 0000000..68d8c16 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHospitalUser.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hospital-user'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f80d'; +var svgPathData = 'M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHospitalUser = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHotTub.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHotTub.d.ts new file mode 100644 index 0000000..546fcea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHotTub.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHotTub: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHotTub.js b/node_modules/@fortawesome/free-solid-svg-icons/faHotTub.js new file mode 100644 index 0000000..9133792 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHotTub.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hot-tub'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f593'; +var svgPathData = 'M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHotTub = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHotdog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHotdog.d.ts new file mode 100644 index 0000000..dc86115 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHotdog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHotdog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHotdog.js b/node_modules/@fortawesome/free-solid-svg-icons/faHotdog.js new file mode 100644 index 0000000..bbdd23b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHotdog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hotdog'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f80f'; +var svgPathData = 'M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHotdog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHotel.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHotel.d.ts new file mode 100644 index 0000000..8fbad0c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHotel.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHotel: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHotel.js b/node_modules/@fortawesome/free-solid-svg-icons/faHotel.js new file mode 100644 index 0000000..6ea9f47 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHotel.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hotel'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f594'; +var svgPathData = 'M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHotel = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglass.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHourglass.d.ts new file mode 100644 index 0000000..71d0090 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglass.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHourglass: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglass.js b/node_modules/@fortawesome/free-solid-svg-icons/faHourglass.js new file mode 100644 index 0000000..5d37f4e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglass.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hourglass'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f254'; +var svgPathData = 'M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHourglass = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglassEnd.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassEnd.d.ts new file mode 100644 index 0000000..de6b431 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassEnd.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHourglassEnd: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglassEnd.js b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassEnd.js new file mode 100644 index 0000000..0b70682 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassEnd.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hourglass-end'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f253'; +var svgPathData = 'M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHourglassEnd = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglassHalf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassHalf.d.ts new file mode 100644 index 0000000..7fca241 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassHalf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHourglassHalf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglassHalf.js b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassHalf.js new file mode 100644 index 0000000..ad1d8ac --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassHalf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hourglass-half'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f252'; +var svgPathData = 'M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHourglassHalf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglassStart.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassStart.d.ts new file mode 100644 index 0000000..24d1b00 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassStart.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHourglassStart: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHourglassStart.js b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassStart.js new file mode 100644 index 0000000..b98ef52 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHourglassStart.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hourglass-start'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f251'; +var svgPathData = 'M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHourglassStart = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHouseDamage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHouseDamage.d.ts new file mode 100644 index 0000000..61ff897 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHouseDamage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHouseDamage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHouseDamage.js b/node_modules/@fortawesome/free-solid-svg-icons/faHouseDamage.js new file mode 100644 index 0000000..cb1365a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHouseDamage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'house-damage'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f6f1'; +var svgPathData = 'M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHouseDamage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHouseUser.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHouseUser.d.ts new file mode 100644 index 0000000..6f409fe --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHouseUser.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHouseUser: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHouseUser.js b/node_modules/@fortawesome/free-solid-svg-icons/faHouseUser.js new file mode 100644 index 0000000..ee72393 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHouseUser.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'house-user'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'e065'; +var svgPathData = 'M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHouseUser = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHryvnia.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faHryvnia.d.ts new file mode 100644 index 0000000..fbb1780 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHryvnia.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faHryvnia: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faHryvnia.js b/node_modules/@fortawesome/free-solid-svg-icons/faHryvnia.js new file mode 100644 index 0000000..49a6bcf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faHryvnia.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'hryvnia'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f6f2'; +var svgPathData = 'M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faHryvnia = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faICursor.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faICursor.d.ts new file mode 100644 index 0000000..d568467 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faICursor.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faICursor: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faICursor.js b/node_modules/@fortawesome/free-solid-svg-icons/faICursor.js new file mode 100644 index 0000000..d8cada2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faICursor.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'i-cursor'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f246'; +var svgPathData = 'M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faICursor = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIceCream.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIceCream.d.ts new file mode 100644 index 0000000..cdeb9f3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIceCream.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIceCream: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIceCream.js b/node_modules/@fortawesome/free-solid-svg-icons/faIceCream.js new file mode 100644 index 0000000..0c8cd99 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIceCream.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ice-cream'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f810'; +var svgPathData = 'M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIceCream = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIcicles.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIcicles.d.ts new file mode 100644 index 0000000..a743982 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIcicles.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIcicles: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIcicles.js b/node_modules/@fortawesome/free-solid-svg-icons/faIcicles.js new file mode 100644 index 0000000..000c44f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIcicles.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'icicles'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7ad'; +var svgPathData = 'M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIcicles = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIcons.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIcons.d.ts new file mode 100644 index 0000000..44608b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIcons.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIcons: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIcons.js b/node_modules/@fortawesome/free-solid-svg-icons/faIcons.js new file mode 100644 index 0000000..cd522bd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIcons.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'icons'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f86d'; +var svgPathData = 'M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIcons = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIdBadge.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIdBadge.d.ts new file mode 100644 index 0000000..3f91d32 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIdBadge.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIdBadge: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIdBadge.js b/node_modules/@fortawesome/free-solid-svg-icons/faIdBadge.js new file mode 100644 index 0000000..3482677 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIdBadge.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'id-badge'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f2c1'; +var svgPathData = 'M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIdBadge = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIdCard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIdCard.d.ts new file mode 100644 index 0000000..21863b0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIdCard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIdCard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIdCard.js b/node_modules/@fortawesome/free-solid-svg-icons/faIdCard.js new file mode 100644 index 0000000..a057d81 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIdCard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'id-card'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f2c2'; +var svgPathData = 'M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIdCard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIdCardAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIdCardAlt.d.ts new file mode 100644 index 0000000..74b1b56 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIdCardAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIdCardAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIdCardAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faIdCardAlt.js new file mode 100644 index 0000000..4ad5516 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIdCardAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'id-card-alt'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f47f'; +var svgPathData = 'M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIdCardAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIgloo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIgloo.d.ts new file mode 100644 index 0000000..074869b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIgloo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIgloo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIgloo.js b/node_modules/@fortawesome/free-solid-svg-icons/faIgloo.js new file mode 100644 index 0000000..91393bd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIgloo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'igloo'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f7ae'; +var svgPathData = 'M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIgloo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faImage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faImage.d.ts new file mode 100644 index 0000000..3a16318 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faImage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faImage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faImage.js b/node_modules/@fortawesome/free-solid-svg-icons/faImage.js new file mode 100644 index 0000000..28d5378 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faImage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'image'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f03e'; +var svgPathData = 'M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faImage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faImages.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faImages.d.ts new file mode 100644 index 0000000..c03f525 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faImages.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faImages: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faImages.js b/node_modules/@fortawesome/free-solid-svg-icons/faImages.js new file mode 100644 index 0000000..91d24e0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faImages.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'images'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f302'; +var svgPathData = 'M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faImages = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInbox.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faInbox.d.ts new file mode 100644 index 0000000..9760916 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInbox.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faInbox: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInbox.js b/node_modules/@fortawesome/free-solid-svg-icons/faInbox.js new file mode 100644 index 0000000..b85d867 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInbox.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'inbox'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f01c'; +var svgPathData = 'M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faInbox = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIndent.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIndent.d.ts new file mode 100644 index 0000000..61eed61 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIndent.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIndent: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIndent.js b/node_modules/@fortawesome/free-solid-svg-icons/faIndent.js new file mode 100644 index 0000000..817695d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIndent.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'indent'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f03c'; +var svgPathData = 'M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIndent = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIndustry.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faIndustry.d.ts new file mode 100644 index 0000000..7789284 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIndustry.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faIndustry: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faIndustry.js b/node_modules/@fortawesome/free-solid-svg-icons/faIndustry.js new file mode 100644 index 0000000..6e91074 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faIndustry.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'industry'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f275'; +var svgPathData = 'M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faIndustry = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInfinity.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faInfinity.d.ts new file mode 100644 index 0000000..224fc36 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInfinity.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faInfinity: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInfinity.js b/node_modules/@fortawesome/free-solid-svg-icons/faInfinity.js new file mode 100644 index 0000000..7e76aaa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInfinity.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'infinity'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f534'; +var svgPathData = 'M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faInfinity = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInfo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faInfo.d.ts new file mode 100644 index 0000000..09a3e26 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInfo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faInfo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInfo.js b/node_modules/@fortawesome/free-solid-svg-icons/faInfo.js new file mode 100644 index 0000000..5ff6bf5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInfo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'info'; +var width = 192; +var height = 512; +var ligatures = []; +var unicode = 'f129'; +var svgPathData = 'M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faInfo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.d.ts new file mode 100644 index 0000000..5a801bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faInfoCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.js new file mode 100644 index 0000000..c24c841 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faInfoCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'info-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f05a'; +var svgPathData = 'M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faInfoCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faItalic.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faItalic.d.ts new file mode 100644 index 0000000..a966a7a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faItalic.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faItalic: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faItalic.js b/node_modules/@fortawesome/free-solid-svg-icons/faItalic.js new file mode 100644 index 0000000..224b209 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faItalic.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'italic'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f033'; +var svgPathData = 'M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faItalic = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faJedi.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faJedi.d.ts new file mode 100644 index 0000000..e542637 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faJedi.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faJedi: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faJedi.js b/node_modules/@fortawesome/free-solid-svg-icons/faJedi.js new file mode 100644 index 0000000..f0b996f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faJedi.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'jedi'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f669'; +var svgPathData = 'M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faJedi = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faJoint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faJoint.d.ts new file mode 100644 index 0000000..5aa2c14 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faJoint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faJoint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faJoint.js b/node_modules/@fortawesome/free-solid-svg-icons/faJoint.js new file mode 100644 index 0000000..f75b178 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faJoint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'joint'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f595'; +var svgPathData = 'M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faJoint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faJournalWhills.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faJournalWhills.d.ts new file mode 100644 index 0000000..a477423 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faJournalWhills.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faJournalWhills: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faJournalWhills.js b/node_modules/@fortawesome/free-solid-svg-icons/faJournalWhills.js new file mode 100644 index 0000000..1f62796 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faJournalWhills.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'journal-whills'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f66a'; +var svgPathData = 'M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faJournalWhills = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKaaba.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKaaba.d.ts new file mode 100644 index 0000000..a3e2322 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKaaba.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKaaba: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKaaba.js b/node_modules/@fortawesome/free-solid-svg-icons/faKaaba.js new file mode 100644 index 0000000..ddcbfa2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKaaba.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'kaaba'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f66b'; +var svgPathData = 'M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKaaba = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKey.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKey.d.ts new file mode 100644 index 0000000..0d18473 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKey.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKey: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKey.js b/node_modules/@fortawesome/free-solid-svg-icons/faKey.js new file mode 100644 index 0000000..f8d394a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKey.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'key'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f084'; +var svgPathData = 'M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKey = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKeyboard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKeyboard.d.ts new file mode 100644 index 0000000..22daac5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKeyboard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKeyboard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKeyboard.js b/node_modules/@fortawesome/free-solid-svg-icons/faKeyboard.js new file mode 100644 index 0000000..bf074ce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKeyboard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'keyboard'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f11c'; +var svgPathData = 'M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKeyboard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKhanda.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKhanda.d.ts new file mode 100644 index 0000000..81ef874 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKhanda.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKhanda: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKhanda.js b/node_modules/@fortawesome/free-solid-svg-icons/faKhanda.js new file mode 100644 index 0000000..e1d1ecc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKhanda.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'khanda'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f66d'; +var svgPathData = 'M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKhanda = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKiss.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKiss.d.ts new file mode 100644 index 0000000..3ffba5c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKiss.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKiss: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKiss.js b/node_modules/@fortawesome/free-solid-svg-icons/faKiss.js new file mode 100644 index 0000000..9ff4ce3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKiss.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'kiss'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f596'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKiss = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKissBeam.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKissBeam.d.ts new file mode 100644 index 0000000..5e6ef58 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKissBeam.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKissBeam: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKissBeam.js b/node_modules/@fortawesome/free-solid-svg-icons/faKissBeam.js new file mode 100644 index 0000000..7aee904 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKissBeam.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'kiss-beam'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f597'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKissBeam = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKissWinkHeart.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKissWinkHeart.d.ts new file mode 100644 index 0000000..7410477 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKissWinkHeart.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKissWinkHeart: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKissWinkHeart.js b/node_modules/@fortawesome/free-solid-svg-icons/faKissWinkHeart.js new file mode 100644 index 0000000..a5a1ced --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKissWinkHeart.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'kiss-wink-heart'; +var width = 504; +var height = 512; +var ligatures = []; +var unicode = 'f598'; +var svgPathData = 'M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKissWinkHeart = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKiwiBird.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faKiwiBird.d.ts new file mode 100644 index 0000000..fc9c15a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKiwiBird.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faKiwiBird: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faKiwiBird.js b/node_modules/@fortawesome/free-solid-svg-icons/faKiwiBird.js new file mode 100644 index 0000000..ae71d69 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faKiwiBird.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'kiwi-bird'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f535'; +var svgPathData = 'M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faKiwiBird = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLandmark.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLandmark.d.ts new file mode 100644 index 0000000..fa03eff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLandmark.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLandmark: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLandmark.js b/node_modules/@fortawesome/free-solid-svg-icons/faLandmark.js new file mode 100644 index 0000000..e6ee2d6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLandmark.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'landmark'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f66f'; +var svgPathData = 'M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLandmark = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLanguage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLanguage.d.ts new file mode 100644 index 0000000..33256a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLanguage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLanguage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLanguage.js b/node_modules/@fortawesome/free-solid-svg-icons/faLanguage.js new file mode 100644 index 0000000..7c72e61 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLanguage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'language'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f1ab'; +var svgPathData = 'M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLanguage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptop.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaptop.d.ts new file mode 100644 index 0000000..fb8c3b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptop.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaptop: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptop.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaptop.js new file mode 100644 index 0000000..de7a4b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptop.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laptop'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f109'; +var svgPathData = 'M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaptop = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptopCode.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopCode.d.ts new file mode 100644 index 0000000..6ec9bdf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopCode.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaptopCode: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptopCode.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopCode.js new file mode 100644 index 0000000..165cca9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopCode.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laptop-code'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5fc'; +var svgPathData = 'M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaptopCode = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptopHouse.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopHouse.d.ts new file mode 100644 index 0000000..c052db4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopHouse.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaptopHouse: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptopHouse.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopHouse.js new file mode 100644 index 0000000..491a9c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopHouse.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laptop-house'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e066'; +var svgPathData = 'M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaptopHouse = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptopMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopMedical.d.ts new file mode 100644 index 0000000..7d2b4ba --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaptopMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaptopMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopMedical.js new file mode 100644 index 0000000..b8f1f5b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaptopMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laptop-medical'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f812'; +var svgPathData = 'M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaptopMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaugh.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaugh.d.ts new file mode 100644 index 0000000..ad3bf47 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaugh.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaugh: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaugh.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaugh.js new file mode 100644 index 0000000..d06585b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaugh.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laugh'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f599'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaugh = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaughBeam.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaughBeam.d.ts new file mode 100644 index 0000000..1e4d35d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaughBeam.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaughBeam: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaughBeam.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaughBeam.js new file mode 100644 index 0000000..5db983d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaughBeam.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laugh-beam'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f59a'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaughBeam = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaughSquint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaughSquint.d.ts new file mode 100644 index 0000000..39f55cc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaughSquint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaughSquint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaughSquint.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaughSquint.js new file mode 100644 index 0000000..cf0bab0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaughSquint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laugh-squint'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f59b'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaughSquint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaughWink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLaughWink.d.ts new file mode 100644 index 0000000..7376c93 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaughWink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLaughWink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLaughWink.js b/node_modules/@fortawesome/free-solid-svg-icons/faLaughWink.js new file mode 100644 index 0000000..03d57dd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLaughWink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'laugh-wink'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f59c'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLaughWink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLayerGroup.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLayerGroup.d.ts new file mode 100644 index 0000000..f47af63 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLayerGroup.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLayerGroup: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLayerGroup.js b/node_modules/@fortawesome/free-solid-svg-icons/faLayerGroup.js new file mode 100644 index 0000000..8ad78b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLayerGroup.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'layer-group'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5fd'; +var svgPathData = 'M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLayerGroup = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLeaf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLeaf.d.ts new file mode 100644 index 0000000..8fbcb63 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLeaf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLeaf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLeaf.js b/node_modules/@fortawesome/free-solid-svg-icons/faLeaf.js new file mode 100644 index 0000000..fec489b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLeaf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'leaf'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f06c'; +var svgPathData = 'M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLeaf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLemon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLemon.d.ts new file mode 100644 index 0000000..8d9ec0e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLemon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLemon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLemon.js b/node_modules/@fortawesome/free-solid-svg-icons/faLemon.js new file mode 100644 index 0000000..9b1a5a0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLemon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lemon'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f094'; +var svgPathData = 'M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLemon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLessThan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLessThan.d.ts new file mode 100644 index 0000000..61c21ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLessThan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLessThan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLessThan.js b/node_modules/@fortawesome/free-solid-svg-icons/faLessThan.js new file mode 100644 index 0000000..a2f5d8a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLessThan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'less-than'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f536'; +var svgPathData = 'M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLessThan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLessThanEqual.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLessThanEqual.d.ts new file mode 100644 index 0000000..b5484b7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLessThanEqual.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLessThanEqual: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLessThanEqual.js b/node_modules/@fortawesome/free-solid-svg-icons/faLessThanEqual.js new file mode 100644 index 0000000..9dec045 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLessThanEqual.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'less-than-equal'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f537'; +var svgPathData = 'M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLessThanEqual = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLevelDownAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLevelDownAlt.d.ts new file mode 100644 index 0000000..3496f8f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLevelDownAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLevelDownAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLevelDownAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faLevelDownAlt.js new file mode 100644 index 0000000..f1c575d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLevelDownAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'level-down-alt'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f3be'; +var svgPathData = 'M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLevelDownAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLevelUpAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLevelUpAlt.d.ts new file mode 100644 index 0000000..7d92613 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLevelUpAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLevelUpAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLevelUpAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faLevelUpAlt.js new file mode 100644 index 0000000..0927f4f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLevelUpAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'level-up-alt'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f3bf'; +var svgPathData = 'M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLevelUpAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLifeRing.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLifeRing.d.ts new file mode 100644 index 0000000..b3af42c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLifeRing.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLifeRing: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLifeRing.js b/node_modules/@fortawesome/free-solid-svg-icons/faLifeRing.js new file mode 100644 index 0000000..bfe9dad --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLifeRing.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'life-ring'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1cd'; +var svgPathData = 'M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLifeRing = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLightbulb.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLightbulb.d.ts new file mode 100644 index 0000000..33eed29 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLightbulb.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLightbulb: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLightbulb.js b/node_modules/@fortawesome/free-solid-svg-icons/faLightbulb.js new file mode 100644 index 0000000..c49205f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLightbulb.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lightbulb'; +var width = 352; +var height = 512; +var ligatures = []; +var unicode = 'f0eb'; +var svgPathData = 'M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLightbulb = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLink.d.ts new file mode 100644 index 0000000..3b219cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLink.js b/node_modules/@fortawesome/free-solid-svg-icons/faLink.js new file mode 100644 index 0000000..75f0144 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'link'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0c1'; +var svgPathData = 'M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLiraSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLiraSign.d.ts new file mode 100644 index 0000000..4675f71 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLiraSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLiraSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLiraSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faLiraSign.js new file mode 100644 index 0000000..81b9d24 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLiraSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lira-sign'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f195'; +var svgPathData = 'M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLiraSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faList.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faList.d.ts new file mode 100644 index 0000000..fb4e36b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faList.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faList: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faList.js b/node_modules/@fortawesome/free-solid-svg-icons/faList.js new file mode 100644 index 0000000..6f02538 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faList.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'list'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f03a'; +var svgPathData = 'M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faList = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faListAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faListAlt.d.ts new file mode 100644 index 0000000..7df3e0a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faListAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faListAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faListAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faListAlt.js new file mode 100644 index 0000000..d87a9bb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faListAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'list-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f022'; +var svgPathData = 'M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faListAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faListOl.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faListOl.d.ts new file mode 100644 index 0000000..69c58b5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faListOl.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faListOl: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faListOl.js b/node_modules/@fortawesome/free-solid-svg-icons/faListOl.js new file mode 100644 index 0000000..660bb7a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faListOl.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'list-ol'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0cb'; +var svgPathData = 'M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faListOl = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faListUl.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faListUl.d.ts new file mode 100644 index 0000000..7a3fbce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faListUl.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faListUl: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faListUl.js b/node_modules/@fortawesome/free-solid-svg-icons/faListUl.js new file mode 100644 index 0000000..7179c9e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faListUl.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'list-ul'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0ca'; +var svgPathData = 'M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faListUl = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLocationArrow.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLocationArrow.d.ts new file mode 100644 index 0000000..936d505 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLocationArrow.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLocationArrow: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLocationArrow.js b/node_modules/@fortawesome/free-solid-svg-icons/faLocationArrow.js new file mode 100644 index 0000000..1f11351 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLocationArrow.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'location-arrow'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f124'; +var svgPathData = 'M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLocationArrow = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLock.d.ts new file mode 100644 index 0000000..157db77 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLock.js b/node_modules/@fortawesome/free-solid-svg-icons/faLock.js new file mode 100644 index 0000000..1716890 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lock'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f023'; +var svgPathData = 'M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLockOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLockOpen.d.ts new file mode 100644 index 0000000..731a69d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLockOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLockOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLockOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faLockOpen.js new file mode 100644 index 0000000..3308ef3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLockOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lock-open'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f3c1'; +var svgPathData = 'M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLockOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltDown.d.ts new file mode 100644 index 0000000..7f9e372 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLongArrowAltDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltDown.js new file mode 100644 index 0000000..d5a8aa2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'long-arrow-alt-down'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f309'; +var svgPathData = 'M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLongArrowAltDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltLeft.d.ts new file mode 100644 index 0000000..2ac6860 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLongArrowAltLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltLeft.js new file mode 100644 index 0000000..5b1585c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'long-arrow-alt-left'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f30a'; +var svgPathData = 'M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLongArrowAltLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltRight.d.ts new file mode 100644 index 0000000..f24c166 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLongArrowAltRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltRight.js new file mode 100644 index 0000000..2a3e42e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'long-arrow-alt-right'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f30b'; +var svgPathData = 'M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLongArrowAltRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltUp.d.ts new file mode 100644 index 0000000..8ccc4f3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLongArrowAltUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltUp.js new file mode 100644 index 0000000..35bd899 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLongArrowAltUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'long-arrow-alt-up'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f30c'; +var svgPathData = 'M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLongArrowAltUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLowVision.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLowVision.d.ts new file mode 100644 index 0000000..5a83e39 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLowVision.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLowVision: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLowVision.js b/node_modules/@fortawesome/free-solid-svg-icons/faLowVision.js new file mode 100644 index 0000000..27964df --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLowVision.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'low-vision'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f2a8'; +var svgPathData = 'M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLowVision = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLuggageCart.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLuggageCart.d.ts new file mode 100644 index 0000000..ab05e89 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLuggageCart.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLuggageCart: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLuggageCart.js b/node_modules/@fortawesome/free-solid-svg-icons/faLuggageCart.js new file mode 100644 index 0000000..5760932 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLuggageCart.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'luggage-cart'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f59d'; +var svgPathData = 'M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLuggageCart = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLungs.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLungs.d.ts new file mode 100644 index 0000000..1cb72a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLungs.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLungs: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLungs.js b/node_modules/@fortawesome/free-solid-svg-icons/faLungs.js new file mode 100644 index 0000000..c20a088 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLungs.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lungs'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f604'; +var svgPathData = 'M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLungs = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLungsVirus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faLungsVirus.d.ts new file mode 100644 index 0000000..57b4526 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLungsVirus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faLungsVirus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faLungsVirus.js b/node_modules/@fortawesome/free-solid-svg-icons/faLungsVirus.js new file mode 100644 index 0000000..fa08028 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faLungsVirus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'lungs-virus'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e067'; +var svgPathData = 'M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faLungsVirus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMagic.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMagic.d.ts new file mode 100644 index 0000000..7d23b32 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMagic.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMagic: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMagic.js b/node_modules/@fortawesome/free-solid-svg-icons/faMagic.js new file mode 100644 index 0000000..a31db88 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMagic.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'magic'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0d0'; +var svgPathData = 'M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMagic = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMagnet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMagnet.d.ts new file mode 100644 index 0000000..f8b3a05 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMagnet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMagnet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMagnet.js b/node_modules/@fortawesome/free-solid-svg-icons/faMagnet.js new file mode 100644 index 0000000..9e369ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMagnet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'magnet'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f076'; +var svgPathData = 'M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMagnet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMailBulk.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMailBulk.d.ts new file mode 100644 index 0000000..a0fcafa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMailBulk.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMailBulk: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMailBulk.js b/node_modules/@fortawesome/free-solid-svg-icons/faMailBulk.js new file mode 100644 index 0000000..d402c62 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMailBulk.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mail-bulk'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f674'; +var svgPathData = 'M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMailBulk = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMale.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMale.d.ts new file mode 100644 index 0000000..acee128 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMale.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMale: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMale.js b/node_modules/@fortawesome/free-solid-svg-icons/faMale.js new file mode 100644 index 0000000..e4640ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMale.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'male'; +var width = 192; +var height = 512; +var ligatures = []; +var unicode = 'f183'; +var svgPathData = 'M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMale = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMap.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMap.d.ts new file mode 100644 index 0000000..a6d5352 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMap.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMap: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMap.js b/node_modules/@fortawesome/free-solid-svg-icons/faMap.js new file mode 100644 index 0000000..d10677a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMap.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f279'; +var svgPathData = 'M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMap = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarked.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarked.d.ts new file mode 100644 index 0000000..6c4db3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarked.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMapMarked: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarked.js b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarked.js new file mode 100644 index 0000000..8647064 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarked.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map-marked'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f59f'; +var svgPathData = 'M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMapMarked = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkedAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkedAlt.d.ts new file mode 100644 index 0000000..34ffa71 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkedAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMapMarkedAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkedAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkedAlt.js new file mode 100644 index 0000000..b2cc5b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkedAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map-marked-alt'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f5a0'; +var svgPathData = 'M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMapMarkedAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarker.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarker.d.ts new file mode 100644 index 0000000..3b3b0a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarker.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMapMarker: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarker.js b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarker.js new file mode 100644 index 0000000..c9cef67 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarker.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map-marker'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f041'; +var svgPathData = 'M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMapMarker = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkerAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkerAlt.d.ts new file mode 100644 index 0000000..f9d0aef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkerAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMapMarkerAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkerAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkerAlt.js new file mode 100644 index 0000000..45b4ca3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapMarkerAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map-marker-alt'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f3c5'; +var svgPathData = 'M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMapMarkerAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapPin.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMapPin.d.ts new file mode 100644 index 0000000..052bc9d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapPin.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMapPin: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapPin.js b/node_modules/@fortawesome/free-solid-svg-icons/faMapPin.js new file mode 100644 index 0000000..fe3b887 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapPin.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map-pin'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f276'; +var svgPathData = 'M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMapPin = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapSigns.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMapSigns.d.ts new file mode 100644 index 0000000..67a5db3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapSigns.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMapSigns: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMapSigns.js b/node_modules/@fortawesome/free-solid-svg-icons/faMapSigns.js new file mode 100644 index 0000000..c51af6c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMapSigns.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'map-signs'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f277'; +var svgPathData = 'M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMapSigns = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarker.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMarker.d.ts new file mode 100644 index 0000000..5a28464 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarker.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMarker: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarker.js b/node_modules/@fortawesome/free-solid-svg-icons/faMarker.js new file mode 100644 index 0000000..6191c7f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarker.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'marker'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5a1'; +var svgPathData = 'M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMarker = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMars.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMars.d.ts new file mode 100644 index 0000000..30b8dc9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMars.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMars: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMars.js b/node_modules/@fortawesome/free-solid-svg-icons/faMars.js new file mode 100644 index 0000000..66a6e06 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMars.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mars'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f222'; +var svgPathData = 'M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMars = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsDouble.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMarsDouble.d.ts new file mode 100644 index 0000000..3afc30b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsDouble.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMarsDouble: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsDouble.js b/node_modules/@fortawesome/free-solid-svg-icons/faMarsDouble.js new file mode 100644 index 0000000..097db9b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsDouble.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mars-double'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f227'; +var svgPathData = 'M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMarsDouble = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsStroke.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStroke.d.ts new file mode 100644 index 0000000..4e58b9c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStroke.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMarsStroke: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsStroke.js b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStroke.js new file mode 100644 index 0000000..0d36db7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStroke.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mars-stroke'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f229'; +var svgPathData = 'M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMarsStroke = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeH.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeH.d.ts new file mode 100644 index 0000000..fcc2c41 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeH.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMarsStrokeH: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeH.js b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeH.js new file mode 100644 index 0000000..2e49c60 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeH.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mars-stroke-h'; +var width = 480; +var height = 512; +var ligatures = []; +var unicode = 'f22b'; +var svgPathData = 'M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMarsStrokeH = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeV.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeV.d.ts new file mode 100644 index 0000000..4026963 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeV.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMarsStrokeV: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeV.js b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeV.js new file mode 100644 index 0000000..848b1b9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMarsStrokeV.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mars-stroke-v'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f22a'; +var svgPathData = 'M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMarsStrokeV = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMask.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMask.d.ts new file mode 100644 index 0000000..eb60f7c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMask.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMask: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMask.js b/node_modules/@fortawesome/free-solid-svg-icons/faMask.js new file mode 100644 index 0000000..d70f936 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMask.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mask'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6fa'; +var svgPathData = 'M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMask = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMedal.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMedal.d.ts new file mode 100644 index 0000000..013471a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMedal.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMedal: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMedal.js b/node_modules/@fortawesome/free-solid-svg-icons/faMedal.js new file mode 100644 index 0000000..c0866e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMedal.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'medal'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5a2'; +var svgPathData = 'M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMedal = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMedkit.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMedkit.d.ts new file mode 100644 index 0000000..47f09f1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMedkit.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMedkit: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMedkit.js b/node_modules/@fortawesome/free-solid-svg-icons/faMedkit.js new file mode 100644 index 0000000..a86f44c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMedkit.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'medkit'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0fa'; +var svgPathData = 'M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMedkit = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMeh.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMeh.d.ts new file mode 100644 index 0000000..1ecbda3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMeh.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMeh: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMeh.js b/node_modules/@fortawesome/free-solid-svg-icons/faMeh.js new file mode 100644 index 0000000..704c23c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMeh.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'meh'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f11a'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMeh = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMehBlank.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMehBlank.d.ts new file mode 100644 index 0000000..d186d80 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMehBlank.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMehBlank: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMehBlank.js b/node_modules/@fortawesome/free-solid-svg-icons/faMehBlank.js new file mode 100644 index 0000000..efda3c7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMehBlank.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'meh-blank'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5a4'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMehBlank = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMehRollingEyes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMehRollingEyes.d.ts new file mode 100644 index 0000000..77a2685 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMehRollingEyes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMehRollingEyes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMehRollingEyes.js b/node_modules/@fortawesome/free-solid-svg-icons/faMehRollingEyes.js new file mode 100644 index 0000000..e2eb202 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMehRollingEyes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'meh-rolling-eyes'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5a5'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMehRollingEyes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMemory.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMemory.d.ts new file mode 100644 index 0000000..2ae0e3f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMemory.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMemory: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMemory.js b/node_modules/@fortawesome/free-solid-svg-icons/faMemory.js new file mode 100644 index 0000000..7dda56b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMemory.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'memory'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f538'; +var svgPathData = 'M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMemory = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMenorah.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMenorah.d.ts new file mode 100644 index 0000000..68691cc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMenorah.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMenorah: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMenorah.js b/node_modules/@fortawesome/free-solid-svg-icons/faMenorah.js new file mode 100644 index 0000000..d5f7819 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMenorah.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'menorah'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f676'; +var svgPathData = 'M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMenorah = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMercury.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMercury.d.ts new file mode 100644 index 0000000..39a84e6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMercury.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMercury: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMercury.js b/node_modules/@fortawesome/free-solid-svg-icons/faMercury.js new file mode 100644 index 0000000..c33a94d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMercury.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mercury'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f223'; +var svgPathData = 'M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMercury = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMeteor.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMeteor.d.ts new file mode 100644 index 0000000..4b75093 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMeteor.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMeteor: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMeteor.js b/node_modules/@fortawesome/free-solid-svg-icons/faMeteor.js new file mode 100644 index 0000000..a70a792 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMeteor.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'meteor'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f753'; +var svgPathData = 'M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMeteor = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrochip.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMicrochip.d.ts new file mode 100644 index 0000000..2b0d26e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrochip.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMicrochip: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrochip.js b/node_modules/@fortawesome/free-solid-svg-icons/faMicrochip.js new file mode 100644 index 0000000..46a3a74 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrochip.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'microchip'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2db'; +var svgPathData = 'M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMicrochip = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophone.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophone.d.ts new file mode 100644 index 0000000..7079314 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophone.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMicrophone: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophone.js b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophone.js new file mode 100644 index 0000000..9a31921 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophone.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'microphone'; +var width = 352; +var height = 512; +var ligatures = []; +var unicode = 'f130'; +var svgPathData = 'M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMicrophone = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAlt.d.ts new file mode 100644 index 0000000..11d690a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMicrophoneAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAlt.js new file mode 100644 index 0000000..5e6908e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'microphone-alt'; +var width = 352; +var height = 512; +var ligatures = []; +var unicode = 'f3c9'; +var svgPathData = 'M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMicrophoneAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAltSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAltSlash.d.ts new file mode 100644 index 0000000..4634c6b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAltSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMicrophoneAltSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAltSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAltSlash.js new file mode 100644 index 0000000..0658cf4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneAltSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'microphone-alt-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f539'; +var svgPathData = 'M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMicrophoneAltSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneSlash.d.ts new file mode 100644 index 0000000..371e66b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMicrophoneSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneSlash.js new file mode 100644 index 0000000..528c760 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicrophoneSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'microphone-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f131'; +var svgPathData = 'M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMicrophoneSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicroscope.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMicroscope.d.ts new file mode 100644 index 0000000..44943d5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicroscope.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMicroscope: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMicroscope.js b/node_modules/@fortawesome/free-solid-svg-icons/faMicroscope.js new file mode 100644 index 0000000..521bd33 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMicroscope.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'microscope'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f610'; +var svgPathData = 'M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMicroscope = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMinus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMinus.d.ts new file mode 100644 index 0000000..d6a48a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMinus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMinus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMinus.js b/node_modules/@fortawesome/free-solid-svg-icons/faMinus.js new file mode 100644 index 0000000..7229fea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMinus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'minus'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f068'; +var svgPathData = 'M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMinus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMinusCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMinusCircle.d.ts new file mode 100644 index 0000000..c26bd76 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMinusCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMinusCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMinusCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faMinusCircle.js new file mode 100644 index 0000000..ae9efe1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMinusCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'minus-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f056'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMinusCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMinusSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMinusSquare.d.ts new file mode 100644 index 0000000..9f82102 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMinusSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMinusSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMinusSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faMinusSquare.js new file mode 100644 index 0000000..787812e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMinusSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'minus-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f146'; +var svgPathData = 'M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMinusSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMitten.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMitten.d.ts new file mode 100644 index 0000000..77589fc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMitten.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMitten: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMitten.js b/node_modules/@fortawesome/free-solid-svg-icons/faMitten.js new file mode 100644 index 0000000..eb3e664 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMitten.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mitten'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f7b5'; +var svgPathData = 'M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMitten = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMobile.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMobile.d.ts new file mode 100644 index 0000000..c8323d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMobile.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMobile: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMobile.js b/node_modules/@fortawesome/free-solid-svg-icons/faMobile.js new file mode 100644 index 0000000..29c5e23 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMobile.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mobile'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f10b'; +var svgPathData = 'M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMobile = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMobileAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMobileAlt.d.ts new file mode 100644 index 0000000..f8da055 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMobileAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMobileAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMobileAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMobileAlt.js new file mode 100644 index 0000000..f0220d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMobileAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mobile-alt'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f3cd'; +var svgPathData = 'M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMobileAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBill.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBill.d.ts new file mode 100644 index 0000000..f53008f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBill.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoneyBill: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBill.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBill.js new file mode 100644 index 0000000..7c798e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBill.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'money-bill'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0d6'; +var svgPathData = 'M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoneyBill = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillAlt.d.ts new file mode 100644 index 0000000..cb7db17 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoneyBillAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillAlt.js new file mode 100644 index 0000000..b58a7cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'money-bill-alt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f3d1'; +var svgPathData = 'M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoneyBillAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWave.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWave.d.ts new file mode 100644 index 0000000..c528218 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWave.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoneyBillWave: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWave.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWave.js new file mode 100644 index 0000000..f9b624a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWave.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'money-bill-wave'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f53a'; +var svgPathData = 'M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoneyBillWave = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWaveAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWaveAlt.d.ts new file mode 100644 index 0000000..8a3d375 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWaveAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoneyBillWaveAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWaveAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWaveAlt.js new file mode 100644 index 0000000..d21be5a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyBillWaveAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'money-bill-wave-alt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f53b'; +var svgPathData = 'M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoneyBillWaveAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheck.d.ts new file mode 100644 index 0000000..a8d4a62 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoneyCheck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheck.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheck.js new file mode 100644 index 0000000..02bc512 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'money-check'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f53c'; +var svgPathData = 'M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoneyCheck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheckAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheckAlt.d.ts new file mode 100644 index 0000000..ecb933c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheckAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoneyCheckAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheckAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheckAlt.js new file mode 100644 index 0000000..fdacc5e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoneyCheckAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'money-check-alt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f53d'; +var svgPathData = 'M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoneyCheckAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMonument.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMonument.d.ts new file mode 100644 index 0000000..dc76024 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMonument.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMonument: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMonument.js b/node_modules/@fortawesome/free-solid-svg-icons/faMonument.js new file mode 100644 index 0000000..be89633 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMonument.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'monument'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f5a6'; +var svgPathData = 'M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMonument = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMoon.d.ts new file mode 100644 index 0000000..fe983f6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMoon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMoon.js b/node_modules/@fortawesome/free-solid-svg-icons/faMoon.js new file mode 100644 index 0000000..1f044e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMoon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'moon'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f186'; +var svgPathData = 'M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMoon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMortarPestle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMortarPestle.d.ts new file mode 100644 index 0000000..f85694b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMortarPestle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMortarPestle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMortarPestle.js b/node_modules/@fortawesome/free-solid-svg-icons/faMortarPestle.js new file mode 100644 index 0000000..881a5ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMortarPestle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mortar-pestle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5a7'; +var svgPathData = 'M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMortarPestle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMosque.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMosque.d.ts new file mode 100644 index 0000000..c713d33 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMosque.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMosque: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMosque.js b/node_modules/@fortawesome/free-solid-svg-icons/faMosque.js new file mode 100644 index 0000000..756a7a7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMosque.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mosque'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f678'; +var svgPathData = 'M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMosque = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMotorcycle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMotorcycle.d.ts new file mode 100644 index 0000000..7d38b33 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMotorcycle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMotorcycle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMotorcycle.js b/node_modules/@fortawesome/free-solid-svg-icons/faMotorcycle.js new file mode 100644 index 0000000..a2cb2f6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMotorcycle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'motorcycle'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f21c'; +var svgPathData = 'M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMotorcycle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMountain.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMountain.d.ts new file mode 100644 index 0000000..8557b9d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMountain.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMountain: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMountain.js b/node_modules/@fortawesome/free-solid-svg-icons/faMountain.js new file mode 100644 index 0000000..c6803d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMountain.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mountain'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6fc'; +var svgPathData = 'M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMountain = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMouse.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMouse.d.ts new file mode 100644 index 0000000..044dde6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMouse.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMouse: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMouse.js b/node_modules/@fortawesome/free-solid-svg-icons/faMouse.js new file mode 100644 index 0000000..68bad3c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMouse.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mouse'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f8cc'; +var svgPathData = 'M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMouse = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMousePointer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMousePointer.d.ts new file mode 100644 index 0000000..84d9006 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMousePointer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMousePointer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMousePointer.js b/node_modules/@fortawesome/free-solid-svg-icons/faMousePointer.js new file mode 100644 index 0000000..c142f9b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMousePointer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mouse-pointer'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f245'; +var svgPathData = 'M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMousePointer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMugHot.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMugHot.d.ts new file mode 100644 index 0000000..e5bddcb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMugHot.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMugHot: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMugHot.js b/node_modules/@fortawesome/free-solid-svg-icons/faMugHot.js new file mode 100644 index 0000000..d1749c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMugHot.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'mug-hot'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7b6'; +var svgPathData = 'M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMugHot = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMusic.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faMusic.d.ts new file mode 100644 index 0000000..749b4b7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMusic.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faMusic: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faMusic.js b/node_modules/@fortawesome/free-solid-svg-icons/faMusic.js new file mode 100644 index 0000000..339588d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faMusic.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'music'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f001'; +var svgPathData = 'M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faMusic = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNetworkWired.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faNetworkWired.d.ts new file mode 100644 index 0000000..8d35f8e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNetworkWired.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faNetworkWired: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNetworkWired.js b/node_modules/@fortawesome/free-solid-svg-icons/faNetworkWired.js new file mode 100644 index 0000000..811a2b9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNetworkWired.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'network-wired'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6ff'; +var svgPathData = 'M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faNetworkWired = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNeuter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faNeuter.d.ts new file mode 100644 index 0000000..a255e7f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNeuter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faNeuter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNeuter.js b/node_modules/@fortawesome/free-solid-svg-icons/faNeuter.js new file mode 100644 index 0000000..c0a51b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNeuter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'neuter'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f22c'; +var svgPathData = 'M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faNeuter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNewspaper.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faNewspaper.d.ts new file mode 100644 index 0000000..2e3a28b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNewspaper.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faNewspaper: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNewspaper.js b/node_modules/@fortawesome/free-solid-svg-icons/faNewspaper.js new file mode 100644 index 0000000..cbdef53 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNewspaper.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'newspaper'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f1ea'; +var svgPathData = 'M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faNewspaper = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNotEqual.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faNotEqual.d.ts new file mode 100644 index 0000000..65f60d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNotEqual.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faNotEqual: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNotEqual.js b/node_modules/@fortawesome/free-solid-svg-icons/faNotEqual.js new file mode 100644 index 0000000..e0ea16f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNotEqual.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'not-equal'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f53e'; +var svgPathData = 'M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faNotEqual = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNotesMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faNotesMedical.d.ts new file mode 100644 index 0000000..f0dc610 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNotesMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faNotesMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faNotesMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faNotesMedical.js new file mode 100644 index 0000000..1945616 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faNotesMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'notes-medical'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f481'; +var svgPathData = 'M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faNotesMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faObjectGroup.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faObjectGroup.d.ts new file mode 100644 index 0000000..90fa55f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faObjectGroup.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faObjectGroup: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faObjectGroup.js b/node_modules/@fortawesome/free-solid-svg-icons/faObjectGroup.js new file mode 100644 index 0000000..ccb5ba9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faObjectGroup.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'object-group'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f247'; +var svgPathData = 'M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faObjectGroup = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faObjectUngroup.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faObjectUngroup.d.ts new file mode 100644 index 0000000..63a1a0c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faObjectUngroup.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faObjectUngroup: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faObjectUngroup.js b/node_modules/@fortawesome/free-solid-svg-icons/faObjectUngroup.js new file mode 100644 index 0000000..cd0d36a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faObjectUngroup.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'object-ungroup'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f248'; +var svgPathData = 'M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faObjectUngroup = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOilCan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faOilCan.d.ts new file mode 100644 index 0000000..159850e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOilCan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faOilCan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOilCan.js b/node_modules/@fortawesome/free-solid-svg-icons/faOilCan.js new file mode 100644 index 0000000..5292e28 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOilCan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'oil-can'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f613'; +var svgPathData = 'M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faOilCan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOm.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faOm.d.ts new file mode 100644 index 0000000..3e3eaa7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOm.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faOm: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOm.js b/node_modules/@fortawesome/free-solid-svg-icons/faOm.js new file mode 100644 index 0000000..b1d5dda --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOm.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'om'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f679'; +var svgPathData = 'M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faOm = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOtter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faOtter.d.ts new file mode 100644 index 0000000..822d8a4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOtter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faOtter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOtter.js b/node_modules/@fortawesome/free-solid-svg-icons/faOtter.js new file mode 100644 index 0000000..e4cf7f1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOtter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'otter'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f700'; +var svgPathData = 'M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faOtter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOutdent.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faOutdent.d.ts new file mode 100644 index 0000000..9448249 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOutdent.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faOutdent: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faOutdent.js b/node_modules/@fortawesome/free-solid-svg-icons/faOutdent.js new file mode 100644 index 0000000..16f7dbb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faOutdent.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'outdent'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f03b'; +var svgPathData = 'M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faOutdent = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPager.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPager.d.ts new file mode 100644 index 0000000..8dd32ae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPager.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPager: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPager.js b/node_modules/@fortawesome/free-solid-svg-icons/faPager.js new file mode 100644 index 0000000..8bc506f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPager.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pager'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f815'; +var svgPathData = 'M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPager = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaintBrush.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPaintBrush.d.ts new file mode 100644 index 0000000..0cf72b5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaintBrush.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPaintBrush: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaintBrush.js b/node_modules/@fortawesome/free-solid-svg-icons/faPaintBrush.js new file mode 100644 index 0000000..abbd972 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaintBrush.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paint-brush'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1fc'; +var svgPathData = 'M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPaintBrush = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaintRoller.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPaintRoller.d.ts new file mode 100644 index 0000000..5915141 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaintRoller.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPaintRoller: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaintRoller.js b/node_modules/@fortawesome/free-solid-svg-icons/faPaintRoller.js new file mode 100644 index 0000000..a115a6e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaintRoller.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paint-roller'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5aa'; +var svgPathData = 'M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPaintRoller = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPalette.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPalette.d.ts new file mode 100644 index 0000000..4ef781a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPalette.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPalette: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPalette.js b/node_modules/@fortawesome/free-solid-svg-icons/faPalette.js new file mode 100644 index 0000000..cd21a7d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPalette.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'palette'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f53f'; +var svgPathData = 'M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPalette = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPallet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPallet.d.ts new file mode 100644 index 0000000..807d092 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPallet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPallet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPallet.js b/node_modules/@fortawesome/free-solid-svg-icons/faPallet.js new file mode 100644 index 0000000..de96140 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPallet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pallet'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f482'; +var svgPathData = 'M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPallet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaperPlane.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPaperPlane.d.ts new file mode 100644 index 0000000..8bedea6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaperPlane.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPaperPlane: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaperPlane.js b/node_modules/@fortawesome/free-solid-svg-icons/faPaperPlane.js new file mode 100644 index 0000000..b9f68ba --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaperPlane.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paper-plane'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1d8'; +var svgPathData = 'M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPaperPlane = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaperclip.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPaperclip.d.ts new file mode 100644 index 0000000..11aceb0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaperclip.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPaperclip: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaperclip.js b/node_modules/@fortawesome/free-solid-svg-icons/faPaperclip.js new file mode 100644 index 0000000..26cf677 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaperclip.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paperclip'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c6'; +var svgPathData = 'M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPaperclip = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faParachuteBox.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faParachuteBox.d.ts new file mode 100644 index 0000000..f6669b4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faParachuteBox.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faParachuteBox: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faParachuteBox.js b/node_modules/@fortawesome/free-solid-svg-icons/faParachuteBox.js new file mode 100644 index 0000000..6b03568 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faParachuteBox.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'parachute-box'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4cd'; +var svgPathData = 'M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faParachuteBox = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faParagraph.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faParagraph.d.ts new file mode 100644 index 0000000..04fc530 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faParagraph.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faParagraph: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faParagraph.js b/node_modules/@fortawesome/free-solid-svg-icons/faParagraph.js new file mode 100644 index 0000000..48d9fb5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faParagraph.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paragraph'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1dd'; +var svgPathData = 'M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faParagraph = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faParking.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faParking.d.ts new file mode 100644 index 0000000..63b5c6a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faParking.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faParking: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faParking.js b/node_modules/@fortawesome/free-solid-svg-icons/faParking.js new file mode 100644 index 0000000..a3700e5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faParking.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'parking'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f540'; +var svgPathData = 'M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faParking = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPassport.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPassport.d.ts new file mode 100644 index 0000000..bd13c13 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPassport.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPassport: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPassport.js b/node_modules/@fortawesome/free-solid-svg-icons/faPassport.js new file mode 100644 index 0000000..c0da783 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPassport.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'passport'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f5ab'; +var svgPathData = 'M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPassport = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPastafarianism.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPastafarianism.d.ts new file mode 100644 index 0000000..43e2386 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPastafarianism.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPastafarianism: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPastafarianism.js b/node_modules/@fortawesome/free-solid-svg-icons/faPastafarianism.js new file mode 100644 index 0000000..f060a94 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPastafarianism.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pastafarianism'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f67b'; +var svgPathData = 'M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPastafarianism = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaste.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPaste.d.ts new file mode 100644 index 0000000..fc29b76 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaste.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPaste: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaste.js b/node_modules/@fortawesome/free-solid-svg-icons/faPaste.js new file mode 100644 index 0000000..c63bb10 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaste.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paste'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0ea'; +var svgPathData = 'M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPaste = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPause.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPause.d.ts new file mode 100644 index 0000000..b43a848 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPause.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPause: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPause.js b/node_modules/@fortawesome/free-solid-svg-icons/faPause.js new file mode 100644 index 0000000..895b4aa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPause.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pause'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f04c'; +var svgPathData = 'M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPause = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPauseCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPauseCircle.d.ts new file mode 100644 index 0000000..cd55dcd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPauseCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPauseCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPauseCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faPauseCircle.js new file mode 100644 index 0000000..2b06986 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPauseCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pause-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f28b'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPauseCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaw.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPaw.d.ts new file mode 100644 index 0000000..08c28d2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaw.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPaw: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPaw.js b/node_modules/@fortawesome/free-solid-svg-icons/faPaw.js new file mode 100644 index 0000000..53be78a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPaw.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'paw'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1b0'; +var svgPathData = 'M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPaw = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPeace.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPeace.d.ts new file mode 100644 index 0000000..2522182 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPeace.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPeace: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPeace.js b/node_modules/@fortawesome/free-solid-svg-icons/faPeace.js new file mode 100644 index 0000000..6e7c0b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPeace.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'peace'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f67c'; +var svgPathData = 'M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPeace = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPen.d.ts new file mode 100644 index 0000000..504f136 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPen.js b/node_modules/@fortawesome/free-solid-svg-icons/faPen.js new file mode 100644 index 0000000..2d7e27b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pen'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f304'; +var svgPathData = 'M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPenAlt.d.ts new file mode 100644 index 0000000..8a90024 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPenAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faPenAlt.js new file mode 100644 index 0000000..8f24c86 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pen-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f305'; +var svgPathData = 'M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPenAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenFancy.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPenFancy.d.ts new file mode 100644 index 0000000..7d94819 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenFancy.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPenFancy: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenFancy.js b/node_modules/@fortawesome/free-solid-svg-icons/faPenFancy.js new file mode 100644 index 0000000..c4b5936 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenFancy.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pen-fancy'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5ac'; +var svgPathData = 'M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPenFancy = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenNib.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPenNib.d.ts new file mode 100644 index 0000000..f91c0fd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenNib.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPenNib: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenNib.js b/node_modules/@fortawesome/free-solid-svg-icons/faPenNib.js new file mode 100644 index 0000000..64475b1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenNib.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pen-nib'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5ad'; +var svgPathData = 'M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPenNib = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPenSquare.d.ts new file mode 100644 index 0000000..0417203 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPenSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPenSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faPenSquare.js new file mode 100644 index 0000000..35fee59 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPenSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pen-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f14b'; +var svgPathData = 'M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPenSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPencilAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPencilAlt.d.ts new file mode 100644 index 0000000..f1b1c4f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPencilAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPencilAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPencilAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faPencilAlt.js new file mode 100644 index 0000000..496d685 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPencilAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pencil-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f303'; +var svgPathData = 'M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPencilAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPencilRuler.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPencilRuler.d.ts new file mode 100644 index 0000000..89c9375 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPencilRuler.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPencilRuler: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPencilRuler.js b/node_modules/@fortawesome/free-solid-svg-icons/faPencilRuler.js new file mode 100644 index 0000000..3b25c62 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPencilRuler.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pencil-ruler'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5ae'; +var svgPathData = 'M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPencilRuler = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPeopleArrows.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleArrows.d.ts new file mode 100644 index 0000000..03c0b0e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleArrows.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPeopleArrows: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPeopleArrows.js b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleArrows.js new file mode 100644 index 0000000..bd62738 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleArrows.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'people-arrows'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'e068'; +var svgPathData = 'M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPeopleArrows = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPeopleCarry.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleCarry.d.ts new file mode 100644 index 0000000..7caebe9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleCarry.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPeopleCarry: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPeopleCarry.js b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleCarry.js new file mode 100644 index 0000000..6aa24ff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPeopleCarry.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'people-carry'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4ce'; +var svgPathData = 'M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPeopleCarry = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPepperHot.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPepperHot.d.ts new file mode 100644 index 0000000..1a1857e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPepperHot.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPepperHot: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPepperHot.js b/node_modules/@fortawesome/free-solid-svg-icons/faPepperHot.js new file mode 100644 index 0000000..fbda234 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPepperHot.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pepper-hot'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f816'; +var svgPathData = 'M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPepperHot = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPercent.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPercent.d.ts new file mode 100644 index 0000000..04c45eb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPercent.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPercent: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPercent.js b/node_modules/@fortawesome/free-solid-svg-icons/faPercent.js new file mode 100644 index 0000000..ad5ba8f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPercent.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'percent'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f295'; +var svgPathData = 'M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPercent = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPercentage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPercentage.d.ts new file mode 100644 index 0000000..18c8671 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPercentage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPercentage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPercentage.js b/node_modules/@fortawesome/free-solid-svg-icons/faPercentage.js new file mode 100644 index 0000000..6bf13f0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPercentage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'percentage'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f541'; +var svgPathData = 'M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPercentage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPersonBooth.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPersonBooth.d.ts new file mode 100644 index 0000000..81abeff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPersonBooth.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPersonBooth: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPersonBooth.js b/node_modules/@fortawesome/free-solid-svg-icons/faPersonBooth.js new file mode 100644 index 0000000..fc99abd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPersonBooth.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'person-booth'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f756'; +var svgPathData = 'M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPersonBooth = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhone.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhone.d.ts new file mode 100644 index 0000000..ad81cb0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhone.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhone: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhone.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhone.js new file mode 100644 index 0000000..e4d5248 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhone.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'phone'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f095'; +var svgPathData = 'M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhone = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneAlt.d.ts new file mode 100644 index 0000000..181c0c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhoneAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneAlt.js new file mode 100644 index 0000000..50a1579 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'phone-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f879'; +var svgPathData = 'M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhoneAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSlash.d.ts new file mode 100644 index 0000000..ca14c68 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhoneSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSlash.js new file mode 100644 index 0000000..5d3788b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'phone-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f3dd'; +var svgPathData = 'M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhoneSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquare.d.ts new file mode 100644 index 0000000..a2d3410 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhoneSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquare.js new file mode 100644 index 0000000..80b2936 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'phone-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f098'; +var svgPathData = 'M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhoneSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquareAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquareAlt.d.ts new file mode 100644 index 0000000..0f67020 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquareAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhoneSquareAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquareAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquareAlt.js new file mode 100644 index 0000000..a8785a1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneSquareAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'phone-square-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f87b'; +var svgPathData = 'M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhoneSquareAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneVolume.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneVolume.d.ts new file mode 100644 index 0000000..5a49028 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneVolume.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhoneVolume: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhoneVolume.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneVolume.js new file mode 100644 index 0000000..944aeb5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhoneVolume.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'phone-volume'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f2a0'; +var svgPathData = 'M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhoneVolume = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhotoVideo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPhotoVideo.d.ts new file mode 100644 index 0000000..e2ad079 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhotoVideo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPhotoVideo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPhotoVideo.js b/node_modules/@fortawesome/free-solid-svg-icons/faPhotoVideo.js new file mode 100644 index 0000000..69c0499 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPhotoVideo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'photo-video'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f87c'; +var svgPathData = 'M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPhotoVideo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPiggyBank.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPiggyBank.d.ts new file mode 100644 index 0000000..839cd98 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPiggyBank.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPiggyBank: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPiggyBank.js b/node_modules/@fortawesome/free-solid-svg-icons/faPiggyBank.js new file mode 100644 index 0000000..dc1e8c1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPiggyBank.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'piggy-bank'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f4d3'; +var svgPathData = 'M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPiggyBank = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPills.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPills.d.ts new file mode 100644 index 0000000..9c69316 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPills.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPills: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPills.js b/node_modules/@fortawesome/free-solid-svg-icons/faPills.js new file mode 100644 index 0000000..23acbb7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPills.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pills'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f484'; +var svgPathData = 'M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPills = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPizzaSlice.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPizzaSlice.d.ts new file mode 100644 index 0000000..6356445 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPizzaSlice.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPizzaSlice: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPizzaSlice.js b/node_modules/@fortawesome/free-solid-svg-icons/faPizzaSlice.js new file mode 100644 index 0000000..faae34e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPizzaSlice.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pizza-slice'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f818'; +var svgPathData = 'M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPizzaSlice = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaceOfWorship.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlaceOfWorship.d.ts new file mode 100644 index 0000000..aa1d893 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaceOfWorship.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlaceOfWorship: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaceOfWorship.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlaceOfWorship.js new file mode 100644 index 0000000..efe9678 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaceOfWorship.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'place-of-worship'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f67f'; +var svgPathData = 'M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlaceOfWorship = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlane.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlane.d.ts new file mode 100644 index 0000000..cfd104a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlane.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlane: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlane.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlane.js new file mode 100644 index 0000000..0826c34 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlane.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plane'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f072'; +var svgPathData = 'M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlane = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaneArrival.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneArrival.d.ts new file mode 100644 index 0000000..bdd9022 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneArrival.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlaneArrival: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaneArrival.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneArrival.js new file mode 100644 index 0000000..c89d883 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneArrival.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plane-arrival'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5af'; +var svgPathData = 'M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlaneArrival = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaneDeparture.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneDeparture.d.ts new file mode 100644 index 0000000..93a61b1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneDeparture.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlaneDeparture: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaneDeparture.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneDeparture.js new file mode 100644 index 0000000..b34186d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneDeparture.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plane-departure'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5b0'; +var svgPathData = 'M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlaneDeparture = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaneSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneSlash.d.ts new file mode 100644 index 0000000..d0f87af --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlaneSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlaneSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneSlash.js new file mode 100644 index 0000000..7709674 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlaneSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plane-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e069'; +var svgPathData = 'M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlaneSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlay.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlay.d.ts new file mode 100644 index 0000000..d3509d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlay.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlay: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlay.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlay.js new file mode 100644 index 0000000..7dd8d75 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlay.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'play'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f04b'; +var svgPathData = 'M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlay = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlayCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlayCircle.d.ts new file mode 100644 index 0000000..335f435 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlayCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlayCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlayCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlayCircle.js new file mode 100644 index 0000000..f36e76b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlayCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'play-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f144'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlayCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlug.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlug.d.ts new file mode 100644 index 0000000..832a9b8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlug.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlug: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlug.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlug.js new file mode 100644 index 0000000..70d370a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlug.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plug'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1e6'; +var svgPathData = 'M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlug = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlus.d.ts new file mode 100644 index 0000000..199bfc4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlus.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlus.js new file mode 100644 index 0000000..23ca486 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plus'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f067'; +var svgPathData = 'M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlusCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlusCircle.d.ts new file mode 100644 index 0000000..749e66a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlusCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlusCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlusCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlusCircle.js new file mode 100644 index 0000000..6f3172a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlusCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plus-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f055'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlusCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlusSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPlusSquare.d.ts new file mode 100644 index 0000000..75d6ce3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlusSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPlusSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPlusSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faPlusSquare.js new file mode 100644 index 0000000..4df2255 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPlusSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'plus-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0fe'; +var svgPathData = 'M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPlusSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPodcast.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPodcast.d.ts new file mode 100644 index 0000000..5be9861 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPodcast.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPodcast: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPodcast.js b/node_modules/@fortawesome/free-solid-svg-icons/faPodcast.js new file mode 100644 index 0000000..efe98d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPodcast.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'podcast'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f2ce'; +var svgPathData = 'M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPodcast = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoll.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPoll.d.ts new file mode 100644 index 0000000..0294ef5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoll.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPoll: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoll.js b/node_modules/@fortawesome/free-solid-svg-icons/faPoll.js new file mode 100644 index 0000000..1eec70f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoll.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'poll'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f681'; +var svgPathData = 'M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPoll = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPollH.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPollH.d.ts new file mode 100644 index 0000000..69cdd59 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPollH.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPollH: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPollH.js b/node_modules/@fortawesome/free-solid-svg-icons/faPollH.js new file mode 100644 index 0000000..f18828a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPollH.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'poll-h'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f682'; +var svgPathData = 'M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPollH = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPoo.d.ts new file mode 100644 index 0000000..a3b89a5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPoo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoo.js b/node_modules/@fortawesome/free-solid-svg-icons/faPoo.js new file mode 100644 index 0000000..53c0ec9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'poo'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2fe'; +var svgPathData = 'M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPoo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPooStorm.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPooStorm.d.ts new file mode 100644 index 0000000..5c45dae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPooStorm.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPooStorm: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPooStorm.js b/node_modules/@fortawesome/free-solid-svg-icons/faPooStorm.js new file mode 100644 index 0000000..59db275 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPooStorm.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'poo-storm'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f75a'; +var svgPathData = 'M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPooStorm = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoop.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPoop.d.ts new file mode 100644 index 0000000..8354d8d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoop.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPoop: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoop.js b/node_modules/@fortawesome/free-solid-svg-icons/faPoop.js new file mode 100644 index 0000000..6fc402c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoop.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'poop'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f619'; +var svgPathData = 'M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPoop = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPortrait.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPortrait.d.ts new file mode 100644 index 0000000..2ce351a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPortrait.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPortrait: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPortrait.js b/node_modules/@fortawesome/free-solid-svg-icons/faPortrait.js new file mode 100644 index 0000000..aeb74bd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPortrait.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'portrait'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f3e0'; +var svgPathData = 'M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPortrait = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoundSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPoundSign.d.ts new file mode 100644 index 0000000..2493f19 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoundSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPoundSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPoundSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faPoundSign.js new file mode 100644 index 0000000..ea56559 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPoundSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pound-sign'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f154'; +var svgPathData = 'M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPoundSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPowerOff.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPowerOff.d.ts new file mode 100644 index 0000000..2039c15 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPowerOff.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPowerOff: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPowerOff.js b/node_modules/@fortawesome/free-solid-svg-icons/faPowerOff.js new file mode 100644 index 0000000..4442807 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPowerOff.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'power-off'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f011'; +var svgPathData = 'M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPowerOff = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPray.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPray.d.ts new file mode 100644 index 0000000..3c18146 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPray.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPray: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPray.js b/node_modules/@fortawesome/free-solid-svg-icons/faPray.js new file mode 100644 index 0000000..e67aacb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPray.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pray'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f683'; +var svgPathData = 'M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPray = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrayingHands.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPrayingHands.d.ts new file mode 100644 index 0000000..599d6bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrayingHands.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPrayingHands: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrayingHands.js b/node_modules/@fortawesome/free-solid-svg-icons/faPrayingHands.js new file mode 100644 index 0000000..013bcee --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrayingHands.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'praying-hands'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f684'; +var svgPathData = 'M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPrayingHands = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrescription.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPrescription.d.ts new file mode 100644 index 0000000..11d9673 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrescription.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPrescription: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrescription.js b/node_modules/@fortawesome/free-solid-svg-icons/faPrescription.js new file mode 100644 index 0000000..25c00eb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrescription.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'prescription'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f5b1'; +var svgPathData = 'M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPrescription = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottle.d.ts new file mode 100644 index 0000000..a3b6aa5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPrescriptionBottle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottle.js b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottle.js new file mode 100644 index 0000000..cff3b59 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'prescription-bottle'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f485'; +var svgPathData = 'M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPrescriptionBottle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottleAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottleAlt.d.ts new file mode 100644 index 0000000..01983b0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottleAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPrescriptionBottleAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottleAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottleAlt.js new file mode 100644 index 0000000..329b558 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrescriptionBottleAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'prescription-bottle-alt'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f486'; +var svgPathData = 'M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPrescriptionBottleAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPrint.d.ts new file mode 100644 index 0000000..c9e28a3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPrint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPrint.js b/node_modules/@fortawesome/free-solid-svg-icons/faPrint.js new file mode 100644 index 0000000..a11d50c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPrint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'print'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f02f'; +var svgPathData = 'M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPrint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faProcedures.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faProcedures.d.ts new file mode 100644 index 0000000..1a216c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faProcedures.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faProcedures: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faProcedures.js b/node_modules/@fortawesome/free-solid-svg-icons/faProcedures.js new file mode 100644 index 0000000..97e1dc7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faProcedures.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'procedures'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f487'; +var svgPathData = 'M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faProcedures = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faProjectDiagram.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faProjectDiagram.d.ts new file mode 100644 index 0000000..99a6c32 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faProjectDiagram.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faProjectDiagram: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faProjectDiagram.js b/node_modules/@fortawesome/free-solid-svg-icons/faProjectDiagram.js new file mode 100644 index 0000000..2c1c308 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faProjectDiagram.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'project-diagram'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f542'; +var svgPathData = 'M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faProjectDiagram = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPumpMedical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPumpMedical.d.ts new file mode 100644 index 0000000..84967d6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPumpMedical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPumpMedical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPumpMedical.js b/node_modules/@fortawesome/free-solid-svg-icons/faPumpMedical.js new file mode 100644 index 0000000..cde76e2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPumpMedical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pump-medical'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'e06a'; +var svgPathData = 'M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPumpMedical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPumpSoap.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPumpSoap.d.ts new file mode 100644 index 0000000..ff24f8f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPumpSoap.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPumpSoap: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPumpSoap.js b/node_modules/@fortawesome/free-solid-svg-icons/faPumpSoap.js new file mode 100644 index 0000000..5fc8988 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPumpSoap.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'pump-soap'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'e06b'; +var svgPathData = 'M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPumpSoap = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPuzzlePiece.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faPuzzlePiece.d.ts new file mode 100644 index 0000000..803220d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPuzzlePiece.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faPuzzlePiece: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faPuzzlePiece.js b/node_modules/@fortawesome/free-solid-svg-icons/faPuzzlePiece.js new file mode 100644 index 0000000..d0c59b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faPuzzlePiece.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'puzzle-piece'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f12e'; +var svgPathData = 'M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faPuzzlePiece = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQrcode.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQrcode.d.ts new file mode 100644 index 0000000..94655a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQrcode.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQrcode: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQrcode.js b/node_modules/@fortawesome/free-solid-svg-icons/faQrcode.js new file mode 100644 index 0000000..f72ba1b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQrcode.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'qrcode'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f029'; +var svgPathData = 'M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQrcode = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuestion.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQuestion.d.ts new file mode 100644 index 0000000..db2d5e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuestion.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQuestion: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuestion.js b/node_modules/@fortawesome/free-solid-svg-icons/faQuestion.js new file mode 100644 index 0000000..14f23c1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuestion.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'question'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f128'; +var svgPathData = 'M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQuestion = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuestionCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQuestionCircle.d.ts new file mode 100644 index 0000000..daa1155 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuestionCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQuestionCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuestionCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faQuestionCircle.js new file mode 100644 index 0000000..5518e82 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuestionCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'question-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f059'; +var svgPathData = 'M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQuestionCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuidditch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQuidditch.d.ts new file mode 100644 index 0000000..d8832cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuidditch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQuidditch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuidditch.js b/node_modules/@fortawesome/free-solid-svg-icons/faQuidditch.js new file mode 100644 index 0000000..2b05c11 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuidditch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'quidditch'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f458'; +var svgPathData = 'M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQuidditch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuoteLeft.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteLeft.d.ts new file mode 100644 index 0000000..7f95068 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteLeft.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQuoteLeft: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuoteLeft.js b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteLeft.js new file mode 100644 index 0000000..6935769 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteLeft.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'quote-left'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f10d'; +var svgPathData = 'M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQuoteLeft = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuoteRight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteRight.d.ts new file mode 100644 index 0000000..6c90531 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteRight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQuoteRight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuoteRight.js b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteRight.js new file mode 100644 index 0000000..60b1ed2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuoteRight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'quote-right'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f10e'; +var svgPathData = 'M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQuoteRight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuran.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faQuran.d.ts new file mode 100644 index 0000000..bd8b1b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuran.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faQuran: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faQuran.js b/node_modules/@fortawesome/free-solid-svg-icons/faQuran.js new file mode 100644 index 0000000..92cba73 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faQuran.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'quran'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f687'; +var svgPathData = 'M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faQuran = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRadiation.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRadiation.d.ts new file mode 100644 index 0000000..7e73e48 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRadiation.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRadiation: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRadiation.js b/node_modules/@fortawesome/free-solid-svg-icons/faRadiation.js new file mode 100644 index 0000000..4088e60 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRadiation.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'radiation'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f7b9'; +var svgPathData = 'M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRadiation = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRadiationAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRadiationAlt.d.ts new file mode 100644 index 0000000..9b84484 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRadiationAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRadiationAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRadiationAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faRadiationAlt.js new file mode 100644 index 0000000..ca83c52 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRadiationAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'radiation-alt'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f7ba'; +var svgPathData = 'M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRadiationAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRainbow.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRainbow.d.ts new file mode 100644 index 0000000..b4d8cc6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRainbow.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRainbow: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRainbow.js b/node_modules/@fortawesome/free-solid-svg-icons/faRainbow.js new file mode 100644 index 0000000..7cbf506 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRainbow.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'rainbow'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f75b'; +var svgPathData = 'M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRainbow = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRandom.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRandom.d.ts new file mode 100644 index 0000000..cb4a58b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRandom.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRandom: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRandom.js b/node_modules/@fortawesome/free-solid-svg-icons/faRandom.js new file mode 100644 index 0000000..e56b9cd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRandom.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'random'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f074'; +var svgPathData = 'M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRandom = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faReceipt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faReceipt.d.ts new file mode 100644 index 0000000..152b2ff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faReceipt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faReceipt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faReceipt.js b/node_modules/@fortawesome/free-solid-svg-icons/faReceipt.js new file mode 100644 index 0000000..d68625b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faReceipt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'receipt'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f543'; +var svgPathData = 'M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faReceipt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRecordVinyl.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRecordVinyl.d.ts new file mode 100644 index 0000000..5fc5cd6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRecordVinyl.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRecordVinyl: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRecordVinyl.js b/node_modules/@fortawesome/free-solid-svg-icons/faRecordVinyl.js new file mode 100644 index 0000000..0517338 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRecordVinyl.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'record-vinyl'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f8d9'; +var svgPathData = 'M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRecordVinyl = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRecycle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRecycle.d.ts new file mode 100644 index 0000000..c429981 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRecycle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRecycle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRecycle.js b/node_modules/@fortawesome/free-solid-svg-icons/faRecycle.js new file mode 100644 index 0000000..2eff715 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRecycle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'recycle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1b8'; +var svgPathData = 'M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRecycle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRedo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRedo.d.ts new file mode 100644 index 0000000..3eb0c3c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRedo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRedo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRedo.js b/node_modules/@fortawesome/free-solid-svg-icons/faRedo.js new file mode 100644 index 0000000..7a6d92f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRedo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'redo'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f01e'; +var svgPathData = 'M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRedo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRedoAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRedoAlt.d.ts new file mode 100644 index 0000000..58f1c39 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRedoAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRedoAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRedoAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faRedoAlt.js new file mode 100644 index 0000000..62df98e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRedoAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'redo-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2f9'; +var svgPathData = 'M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRedoAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRegistered.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRegistered.d.ts new file mode 100644 index 0000000..d68b255 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRegistered.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRegistered: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRegistered.js b/node_modules/@fortawesome/free-solid-svg-icons/faRegistered.js new file mode 100644 index 0000000..aae262f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRegistered.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'registered'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f25d'; +var svgPathData = 'M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRegistered = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRemoveFormat.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRemoveFormat.d.ts new file mode 100644 index 0000000..5ee291c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRemoveFormat.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRemoveFormat: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRemoveFormat.js b/node_modules/@fortawesome/free-solid-svg-icons/faRemoveFormat.js new file mode 100644 index 0000000..1453c89 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRemoveFormat.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'remove-format'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f87d'; +var svgPathData = 'M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRemoveFormat = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faReply.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faReply.d.ts new file mode 100644 index 0000000..a699790 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faReply.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faReply: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faReply.js b/node_modules/@fortawesome/free-solid-svg-icons/faReply.js new file mode 100644 index 0000000..35105d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faReply.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'reply'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f3e5'; +var svgPathData = 'M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faReply = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faReplyAll.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faReplyAll.d.ts new file mode 100644 index 0000000..b29a505 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faReplyAll.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faReplyAll: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faReplyAll.js b/node_modules/@fortawesome/free-solid-svg-icons/faReplyAll.js new file mode 100644 index 0000000..06d96cf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faReplyAll.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'reply-all'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f122'; +var svgPathData = 'M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faReplyAll = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRepublican.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRepublican.d.ts new file mode 100644 index 0000000..0f6674f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRepublican.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRepublican: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRepublican.js b/node_modules/@fortawesome/free-solid-svg-icons/faRepublican.js new file mode 100644 index 0000000..0ac6019 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRepublican.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'republican'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f75e'; +var svgPathData = 'M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRepublican = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRestroom.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRestroom.d.ts new file mode 100644 index 0000000..1fb5066 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRestroom.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRestroom: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRestroom.js b/node_modules/@fortawesome/free-solid-svg-icons/faRestroom.js new file mode 100644 index 0000000..b5e78fa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRestroom.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'restroom'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f7bd'; +var svgPathData = 'M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRestroom = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRetweet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRetweet.d.ts new file mode 100644 index 0000000..9e55e73 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRetweet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRetweet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRetweet.js b/node_modules/@fortawesome/free-solid-svg-icons/faRetweet.js new file mode 100644 index 0000000..51849e5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRetweet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'retweet'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f079'; +var svgPathData = 'M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRetweet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRibbon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRibbon.d.ts new file mode 100644 index 0000000..1272292 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRibbon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRibbon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRibbon.js b/node_modules/@fortawesome/free-solid-svg-icons/faRibbon.js new file mode 100644 index 0000000..eb3778d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRibbon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ribbon'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f4d6'; +var svgPathData = 'M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRibbon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRing.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRing.d.ts new file mode 100644 index 0000000..9039fbf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRing.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRing: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRing.js b/node_modules/@fortawesome/free-solid-svg-icons/faRing.js new file mode 100644 index 0000000..f98697b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRing.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ring'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f70b'; +var svgPathData = 'M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRing = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRoad.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRoad.d.ts new file mode 100644 index 0000000..9c27bdf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRoad.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRoad: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRoad.js b/node_modules/@fortawesome/free-solid-svg-icons/faRoad.js new file mode 100644 index 0000000..bb5f4cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRoad.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'road'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f018'; +var svgPathData = 'M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRoad = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRobot.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRobot.d.ts new file mode 100644 index 0000000..edab4e3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRobot.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRobot: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRobot.js b/node_modules/@fortawesome/free-solid-svg-icons/faRobot.js new file mode 100644 index 0000000..9fcb78a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRobot.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'robot'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f544'; +var svgPathData = 'M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRobot = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRocket.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRocket.d.ts new file mode 100644 index 0000000..0fd19f8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRocket.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRocket: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRocket.js b/node_modules/@fortawesome/free-solid-svg-icons/faRocket.js new file mode 100644 index 0000000..3080bbd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRocket.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'rocket'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f135'; +var svgPathData = 'M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRocket = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRoute.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRoute.d.ts new file mode 100644 index 0000000..069532c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRoute.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRoute: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRoute.js b/node_modules/@fortawesome/free-solid-svg-icons/faRoute.js new file mode 100644 index 0000000..d26d349 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRoute.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'route'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4d7'; +var svgPathData = 'M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRoute = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRss.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRss.d.ts new file mode 100644 index 0000000..aa9a7a8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRss.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRss: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRss.js b/node_modules/@fortawesome/free-solid-svg-icons/faRss.js new file mode 100644 index 0000000..7281263 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRss.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'rss'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f09e'; +var svgPathData = 'M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRss = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRssSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRssSquare.d.ts new file mode 100644 index 0000000..5e47d84 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRssSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRssSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRssSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faRssSquare.js new file mode 100644 index 0000000..88fc3ae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRssSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'rss-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f143'; +var svgPathData = 'M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRssSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRubleSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRubleSign.d.ts new file mode 100644 index 0000000..e640896 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRubleSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRubleSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRubleSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faRubleSign.js new file mode 100644 index 0000000..043ddeb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRubleSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ruble-sign'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f158'; +var svgPathData = 'M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRubleSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRuler.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRuler.d.ts new file mode 100644 index 0000000..5942462 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRuler.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRuler: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRuler.js b/node_modules/@fortawesome/free-solid-svg-icons/faRuler.js new file mode 100644 index 0000000..7833a79 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRuler.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ruler'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f545'; +var svgPathData = 'M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRuler = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRulerCombined.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRulerCombined.d.ts new file mode 100644 index 0000000..3a956b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRulerCombined.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRulerCombined: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRulerCombined.js b/node_modules/@fortawesome/free-solid-svg-icons/faRulerCombined.js new file mode 100644 index 0000000..e18a1e2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRulerCombined.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ruler-combined'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f546'; +var svgPathData = 'M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRulerCombined = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRulerHorizontal.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRulerHorizontal.d.ts new file mode 100644 index 0000000..8f0328e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRulerHorizontal.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRulerHorizontal: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRulerHorizontal.js b/node_modules/@fortawesome/free-solid-svg-icons/faRulerHorizontal.js new file mode 100644 index 0000000..93b9821 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRulerHorizontal.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ruler-horizontal'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f547'; +var svgPathData = 'M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRulerHorizontal = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRulerVertical.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRulerVertical.d.ts new file mode 100644 index 0000000..3a5b473 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRulerVertical.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRulerVertical: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRulerVertical.js b/node_modules/@fortawesome/free-solid-svg-icons/faRulerVertical.js new file mode 100644 index 0000000..a437d06 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRulerVertical.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ruler-vertical'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f548'; +var svgPathData = 'M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRulerVertical = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRunning.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRunning.d.ts new file mode 100644 index 0000000..276ea49 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRunning.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRunning: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRunning.js b/node_modules/@fortawesome/free-solid-svg-icons/faRunning.js new file mode 100644 index 0000000..066ac03 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRunning.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'running'; +var width = 416; +var height = 512; +var ligatures = []; +var unicode = 'f70c'; +var svgPathData = 'M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRunning = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRupeeSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faRupeeSign.d.ts new file mode 100644 index 0000000..d6b7454 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRupeeSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faRupeeSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faRupeeSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faRupeeSign.js new file mode 100644 index 0000000..cfd3d67 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faRupeeSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'rupee-sign'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f156'; +var svgPathData = 'M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faRupeeSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSadCry.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSadCry.d.ts new file mode 100644 index 0000000..50a4a6e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSadCry.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSadCry: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSadCry.js b/node_modules/@fortawesome/free-solid-svg-icons/faSadCry.js new file mode 100644 index 0000000..e67413a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSadCry.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sad-cry'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5b3'; +var svgPathData = 'M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSadCry = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSadTear.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSadTear.d.ts new file mode 100644 index 0000000..4baefdb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSadTear.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSadTear: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSadTear.js b/node_modules/@fortawesome/free-solid-svg-icons/faSadTear.js new file mode 100644 index 0000000..b32c722 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSadTear.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sad-tear'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5b4'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSadTear = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSatellite.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSatellite.d.ts new file mode 100644 index 0000000..23603d1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSatellite.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSatellite: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSatellite.js b/node_modules/@fortawesome/free-solid-svg-icons/faSatellite.js new file mode 100644 index 0000000..486ae3b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSatellite.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'satellite'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7bf'; +var svgPathData = 'M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSatellite = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSatelliteDish.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSatelliteDish.d.ts new file mode 100644 index 0000000..78cf78d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSatelliteDish.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSatelliteDish: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSatelliteDish.js b/node_modules/@fortawesome/free-solid-svg-icons/faSatelliteDish.js new file mode 100644 index 0000000..5439057 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSatelliteDish.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'satellite-dish'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7c0'; +var svgPathData = 'M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSatelliteDish = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSave.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSave.d.ts new file mode 100644 index 0000000..d727116 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSave.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSave: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSave.js b/node_modules/@fortawesome/free-solid-svg-icons/faSave.js new file mode 100644 index 0000000..ebf9469 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSave.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'save'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c7'; +var svgPathData = 'M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSave = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSchool.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSchool.d.ts new file mode 100644 index 0000000..176a3e0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSchool.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSchool: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSchool.js b/node_modules/@fortawesome/free-solid-svg-icons/faSchool.js new file mode 100644 index 0000000..716fed6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSchool.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'school'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f549'; +var svgPathData = 'M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSchool = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faScrewdriver.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faScrewdriver.d.ts new file mode 100644 index 0000000..4e23efb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faScrewdriver.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faScrewdriver: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faScrewdriver.js b/node_modules/@fortawesome/free-solid-svg-icons/faScrewdriver.js new file mode 100644 index 0000000..ec33578 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faScrewdriver.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'screwdriver'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f54a'; +var svgPathData = 'M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faScrewdriver = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faScroll.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faScroll.d.ts new file mode 100644 index 0000000..5e13cf1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faScroll.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faScroll: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faScroll.js b/node_modules/@fortawesome/free-solid-svg-icons/faScroll.js new file mode 100644 index 0000000..2e66b20 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faScroll.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'scroll'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f70e'; +var svgPathData = 'M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faScroll = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSdCard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSdCard.d.ts new file mode 100644 index 0000000..8736572 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSdCard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSdCard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSdCard.js b/node_modules/@fortawesome/free-solid-svg-icons/faSdCard.js new file mode 100644 index 0000000..24d36a3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSdCard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sd-card'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f7c2'; +var svgPathData = 'M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSdCard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSearch.d.ts new file mode 100644 index 0000000..c9a94d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSearch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearch.js b/node_modules/@fortawesome/free-solid-svg-icons/faSearch.js new file mode 100644 index 0000000..6976257 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'search'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f002'; +var svgPathData = 'M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSearch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchDollar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSearchDollar.d.ts new file mode 100644 index 0000000..2b15c28 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchDollar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSearchDollar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchDollar.js b/node_modules/@fortawesome/free-solid-svg-icons/faSearchDollar.js new file mode 100644 index 0000000..c605b2f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchDollar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'search-dollar'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f688'; +var svgPathData = 'M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSearchDollar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchLocation.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSearchLocation.d.ts new file mode 100644 index 0000000..59b1dbb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchLocation.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSearchLocation: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchLocation.js b/node_modules/@fortawesome/free-solid-svg-icons/faSearchLocation.js new file mode 100644 index 0000000..e07beaf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchLocation.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'search-location'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f689'; +var svgPathData = 'M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSearchLocation = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchMinus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSearchMinus.d.ts new file mode 100644 index 0000000..cb86386 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchMinus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSearchMinus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchMinus.js b/node_modules/@fortawesome/free-solid-svg-icons/faSearchMinus.js new file mode 100644 index 0000000..f929ed6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchMinus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'search-minus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f010'; +var svgPathData = 'M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSearchMinus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchPlus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSearchPlus.d.ts new file mode 100644 index 0000000..8ec8f62 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchPlus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSearchPlus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSearchPlus.js b/node_modules/@fortawesome/free-solid-svg-icons/faSearchPlus.js new file mode 100644 index 0000000..d5258a9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSearchPlus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'search-plus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f00e'; +var svgPathData = 'M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSearchPlus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSeedling.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSeedling.d.ts new file mode 100644 index 0000000..3bae39e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSeedling.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSeedling: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSeedling.js b/node_modules/@fortawesome/free-solid-svg-icons/faSeedling.js new file mode 100644 index 0000000..f86c81e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSeedling.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'seedling'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4d8'; +var svgPathData = 'M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSeedling = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faServer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faServer.d.ts new file mode 100644 index 0000000..b84a897 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faServer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faServer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faServer.js b/node_modules/@fortawesome/free-solid-svg-icons/faServer.js new file mode 100644 index 0000000..fa11843 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faServer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'server'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f233'; +var svgPathData = 'M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faServer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShapes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShapes.d.ts new file mode 100644 index 0000000..a21be33 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShapes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShapes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShapes.js b/node_modules/@fortawesome/free-solid-svg-icons/faShapes.js new file mode 100644 index 0000000..46a606a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShapes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shapes'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f61f'; +var svgPathData = 'M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShapes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShare.d.ts new file mode 100644 index 0000000..01b0e44 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShare.js b/node_modules/@fortawesome/free-solid-svg-icons/faShare.js new file mode 100644 index 0000000..b3b2989 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'share'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f064'; +var svgPathData = 'M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShareAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShareAlt.d.ts new file mode 100644 index 0000000..61cd2cc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShareAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShareAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShareAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faShareAlt.js new file mode 100644 index 0000000..71e2f24 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShareAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'share-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1e0'; +var svgPathData = 'M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShareAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShareAltSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShareAltSquare.d.ts new file mode 100644 index 0000000..691675f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShareAltSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShareAltSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShareAltSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faShareAltSquare.js new file mode 100644 index 0000000..d7e355c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShareAltSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'share-alt-square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1e1'; +var svgPathData = 'M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShareAltSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShareSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShareSquare.d.ts new file mode 100644 index 0000000..f228e93 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShareSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShareSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShareSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faShareSquare.js new file mode 100644 index 0000000..6c651db --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShareSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'share-square'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f14d'; +var svgPathData = 'M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShareSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShekelSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShekelSign.d.ts new file mode 100644 index 0000000..be44791 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShekelSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShekelSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShekelSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faShekelSign.js new file mode 100644 index 0000000..9e7464e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShekelSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shekel-sign'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f20b'; +var svgPathData = 'M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShekelSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShieldAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShieldAlt.d.ts new file mode 100644 index 0000000..992ff5f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShieldAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShieldAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShieldAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faShieldAlt.js new file mode 100644 index 0000000..4ea8689 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShieldAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shield-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f3ed'; +var svgPathData = 'M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShieldAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShieldVirus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShieldVirus.d.ts new file mode 100644 index 0000000..4c85790 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShieldVirus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShieldVirus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShieldVirus.js b/node_modules/@fortawesome/free-solid-svg-icons/faShieldVirus.js new file mode 100644 index 0000000..3c85c56 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShieldVirus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shield-virus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e06c'; +var svgPathData = 'M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShieldVirus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShip.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShip.d.ts new file mode 100644 index 0000000..96302e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShip.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShip: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShip.js b/node_modules/@fortawesome/free-solid-svg-icons/faShip.js new file mode 100644 index 0000000..c62c6d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShip.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ship'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f21a'; +var svgPathData = 'M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShip = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShippingFast.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShippingFast.d.ts new file mode 100644 index 0000000..b438367 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShippingFast.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShippingFast: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShippingFast.js b/node_modules/@fortawesome/free-solid-svg-icons/faShippingFast.js new file mode 100644 index 0000000..d57abb1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShippingFast.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shipping-fast'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f48b'; +var svgPathData = 'M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShippingFast = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoePrints.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShoePrints.d.ts new file mode 100644 index 0000000..88cbc13 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoePrints.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShoePrints: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoePrints.js b/node_modules/@fortawesome/free-solid-svg-icons/faShoePrints.js new file mode 100644 index 0000000..33810da --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoePrints.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shoe-prints'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f54b'; +var svgPathData = 'M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShoePrints = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBag.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBag.d.ts new file mode 100644 index 0000000..6fbd500 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBag.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShoppingBag: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBag.js b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBag.js new file mode 100644 index 0000000..7334e0d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBag.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shopping-bag'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f290'; +var svgPathData = 'M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShoppingBag = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBasket.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBasket.d.ts new file mode 100644 index 0000000..5eff9a0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBasket.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShoppingBasket: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBasket.js b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBasket.js new file mode 100644 index 0000000..280a654 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingBasket.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shopping-basket'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f291'; +var svgPathData = 'M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShoppingBasket = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoppingCart.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingCart.d.ts new file mode 100644 index 0000000..fbd3e18 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingCart.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShoppingCart: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShoppingCart.js b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingCart.js new file mode 100644 index 0000000..56456ab --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShoppingCart.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shopping-cart'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f07a'; +var svgPathData = 'M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShoppingCart = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShower.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShower.d.ts new file mode 100644 index 0000000..c815759 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShower.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShower: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShower.js b/node_modules/@fortawesome/free-solid-svg-icons/faShower.js new file mode 100644 index 0000000..3bbdf04 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShower.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shower'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2cc'; +var svgPathData = 'M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShower = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShuttleVan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faShuttleVan.d.ts new file mode 100644 index 0000000..99fc0cf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShuttleVan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faShuttleVan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faShuttleVan.js b/node_modules/@fortawesome/free-solid-svg-icons/faShuttleVan.js new file mode 100644 index 0000000..33244ac --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faShuttleVan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'shuttle-van'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5b6'; +var svgPathData = 'M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faShuttleVan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSign.d.ts new file mode 100644 index 0000000..b22444f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faSign.js new file mode 100644 index 0000000..94e9c57 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sign'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f4d9'; +var svgPathData = 'M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignInAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSignInAlt.d.ts new file mode 100644 index 0000000..da6938d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignInAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSignInAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignInAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSignInAlt.js new file mode 100644 index 0000000..1d805ca --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignInAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sign-in-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2f6'; +var svgPathData = 'M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSignInAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignLanguage.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSignLanguage.d.ts new file mode 100644 index 0000000..fa57a34 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignLanguage.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSignLanguage: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignLanguage.js b/node_modules/@fortawesome/free-solid-svg-icons/faSignLanguage.js new file mode 100644 index 0000000..ea75da4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignLanguage.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sign-language'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f2a7'; +var svgPathData = 'M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSignLanguage = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignOutAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSignOutAlt.d.ts new file mode 100644 index 0000000..6aa6f15 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignOutAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSignOutAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignOutAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSignOutAlt.js new file mode 100644 index 0000000..8c07186 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignOutAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sign-out-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2f5'; +var svgPathData = 'M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSignOutAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignal.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSignal.d.ts new file mode 100644 index 0000000..f38b7ec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignal.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSignal: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignal.js b/node_modules/@fortawesome/free-solid-svg-icons/faSignal.js new file mode 100644 index 0000000..d6f707a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignal.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'signal'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f012'; +var svgPathData = 'M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSignal = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignature.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSignature.d.ts new file mode 100644 index 0000000..6fb41f5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignature.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSignature: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSignature.js b/node_modules/@fortawesome/free-solid-svg-icons/faSignature.js new file mode 100644 index 0000000..452ccb8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSignature.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'signature'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5b7'; +var svgPathData = 'M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSignature = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSimCard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSimCard.d.ts new file mode 100644 index 0000000..b0fb4a8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSimCard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSimCard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSimCard.js b/node_modules/@fortawesome/free-solid-svg-icons/faSimCard.js new file mode 100644 index 0000000..97135c7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSimCard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sim-card'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f7c4'; +var svgPathData = 'M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSimCard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSink.d.ts new file mode 100644 index 0000000..1ac7f38 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSink.js b/node_modules/@fortawesome/free-solid-svg-icons/faSink.js new file mode 100644 index 0000000..c1946c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sink'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e06d'; +var svgPathData = 'M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSitemap.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSitemap.d.ts new file mode 100644 index 0000000..4c2efb5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSitemap.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSitemap: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSitemap.js b/node_modules/@fortawesome/free-solid-svg-icons/faSitemap.js new file mode 100644 index 0000000..138f29a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSitemap.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sitemap'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0e8'; +var svgPathData = 'M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSitemap = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkating.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSkating.d.ts new file mode 100644 index 0000000..34abcc7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkating.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSkating: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkating.js b/node_modules/@fortawesome/free-solid-svg-icons/faSkating.js new file mode 100644 index 0000000..ec85478 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkating.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'skating'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f7c5'; +var svgPathData = 'M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSkating = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkiing.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSkiing.d.ts new file mode 100644 index 0000000..90f3249 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkiing.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSkiing: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkiing.js b/node_modules/@fortawesome/free-solid-svg-icons/faSkiing.js new file mode 100644 index 0000000..04c35e4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkiing.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'skiing'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7c9'; +var svgPathData = 'M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSkiing = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkiingNordic.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSkiingNordic.d.ts new file mode 100644 index 0000000..1f455ad --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkiingNordic.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSkiingNordic: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkiingNordic.js b/node_modules/@fortawesome/free-solid-svg-icons/faSkiingNordic.js new file mode 100644 index 0000000..4e9ce70 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkiingNordic.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'skiing-nordic'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f7ca'; +var svgPathData = 'M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSkiingNordic = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkull.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSkull.d.ts new file mode 100644 index 0000000..76745f8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkull.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSkull: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkull.js b/node_modules/@fortawesome/free-solid-svg-icons/faSkull.js new file mode 100644 index 0000000..01ace0f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkull.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'skull'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f54c'; +var svgPathData = 'M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSkull = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkullCrossbones.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSkullCrossbones.d.ts new file mode 100644 index 0000000..0107b42 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkullCrossbones.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSkullCrossbones: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSkullCrossbones.js b/node_modules/@fortawesome/free-solid-svg-icons/faSkullCrossbones.js new file mode 100644 index 0000000..8acdfd1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSkullCrossbones.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'skull-crossbones'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f714'; +var svgPathData = 'M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSkullCrossbones = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSlash.d.ts new file mode 100644 index 0000000..524af47 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faSlash.js new file mode 100644 index 0000000..45e8433 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f715'; +var svgPathData = 'M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSleigh.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSleigh.d.ts new file mode 100644 index 0000000..d59dfe1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSleigh.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSleigh: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSleigh.js b/node_modules/@fortawesome/free-solid-svg-icons/faSleigh.js new file mode 100644 index 0000000..963a875 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSleigh.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sleigh'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f7cc'; +var svgPathData = 'M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSleigh = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSlidersH.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSlidersH.d.ts new file mode 100644 index 0000000..8299212 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSlidersH.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSlidersH: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSlidersH.js b/node_modules/@fortawesome/free-solid-svg-icons/faSlidersH.js new file mode 100644 index 0000000..f2d860d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSlidersH.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sliders-h'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1de'; +var svgPathData = 'M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSlidersH = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmile.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSmile.d.ts new file mode 100644 index 0000000..5113c06 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmile.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSmile: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmile.js b/node_modules/@fortawesome/free-solid-svg-icons/faSmile.js new file mode 100644 index 0000000..a5064fc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmile.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'smile'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f118'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSmile = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmileBeam.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSmileBeam.d.ts new file mode 100644 index 0000000..0d82776 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmileBeam.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSmileBeam: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmileBeam.js b/node_modules/@fortawesome/free-solid-svg-icons/faSmileBeam.js new file mode 100644 index 0000000..0a14263 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmileBeam.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'smile-beam'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5b8'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSmileBeam = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmileWink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSmileWink.d.ts new file mode 100644 index 0000000..bf4e857 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmileWink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSmileWink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmileWink.js b/node_modules/@fortawesome/free-solid-svg-icons/faSmileWink.js new file mode 100644 index 0000000..b27ed11 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmileWink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'smile-wink'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f4da'; +var svgPathData = 'M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSmileWink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSmog.d.ts new file mode 100644 index 0000000..2e548e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSmog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmog.js b/node_modules/@fortawesome/free-solid-svg-icons/faSmog.js new file mode 100644 index 0000000..d8a59c6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'smog'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f75f'; +var svgPathData = 'M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSmog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmoking.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSmoking.d.ts new file mode 100644 index 0000000..5fba208 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmoking.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSmoking: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmoking.js b/node_modules/@fortawesome/free-solid-svg-icons/faSmoking.js new file mode 100644 index 0000000..81b7c0c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmoking.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'smoking'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f48d'; +var svgPathData = 'M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSmoking = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmokingBan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSmokingBan.d.ts new file mode 100644 index 0000000..3f7ccab --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmokingBan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSmokingBan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSmokingBan.js b/node_modules/@fortawesome/free-solid-svg-icons/faSmokingBan.js new file mode 100644 index 0000000..9ffd625 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSmokingBan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'smoking-ban'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f54d'; +var svgPathData = 'M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSmokingBan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSms.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSms.d.ts new file mode 100644 index 0000000..5d07b00 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSms.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSms: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSms.js b/node_modules/@fortawesome/free-solid-svg-icons/faSms.js new file mode 100644 index 0000000..d9a02a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSms.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sms'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7cd'; +var svgPathData = 'M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSms = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowboarding.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSnowboarding.d.ts new file mode 100644 index 0000000..800f1f4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowboarding.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSnowboarding: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowboarding.js b/node_modules/@fortawesome/free-solid-svg-icons/faSnowboarding.js new file mode 100644 index 0000000..91ef07e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowboarding.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'snowboarding'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7ce'; +var svgPathData = 'M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSnowboarding = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowflake.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSnowflake.d.ts new file mode 100644 index 0000000..c6ed505 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowflake.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSnowflake: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowflake.js b/node_modules/@fortawesome/free-solid-svg-icons/faSnowflake.js new file mode 100644 index 0000000..461d589 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowflake.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'snowflake'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f2dc'; +var svgPathData = 'M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSnowflake = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowman.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSnowman.d.ts new file mode 100644 index 0000000..a636c80 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowman.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSnowman: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowman.js b/node_modules/@fortawesome/free-solid-svg-icons/faSnowman.js new file mode 100644 index 0000000..7770a90 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowman.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'snowman'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7d0'; +var svgPathData = 'M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSnowman = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowplow.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSnowplow.d.ts new file mode 100644 index 0000000..003bae2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowplow.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSnowplow: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSnowplow.js b/node_modules/@fortawesome/free-solid-svg-icons/faSnowplow.js new file mode 100644 index 0000000..2aadefd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSnowplow.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'snowplow'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f7d2'; +var svgPathData = 'M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSnowplow = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSoap.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSoap.d.ts new file mode 100644 index 0000000..ded8a44 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSoap.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSoap: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSoap.js b/node_modules/@fortawesome/free-solid-svg-icons/faSoap.js new file mode 100644 index 0000000..38880a4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSoap.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'soap'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e06e'; +var svgPathData = 'M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSoap = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSocks.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSocks.d.ts new file mode 100644 index 0000000..62fffdd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSocks.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSocks: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSocks.js b/node_modules/@fortawesome/free-solid-svg-icons/faSocks.js new file mode 100644 index 0000000..278cd6d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSocks.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'socks'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f696'; +var svgPathData = 'M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSocks = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSolarPanel.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSolarPanel.d.ts new file mode 100644 index 0000000..0970337 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSolarPanel.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSolarPanel: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSolarPanel.js b/node_modules/@fortawesome/free-solid-svg-icons/faSolarPanel.js new file mode 100644 index 0000000..38f1255 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSolarPanel.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'solar-panel'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5ba'; +var svgPathData = 'M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSolarPanel = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSort.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSort.d.ts new file mode 100644 index 0000000..0c5c905 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSort.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSort: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSort.js b/node_modules/@fortawesome/free-solid-svg-icons/faSort.js new file mode 100644 index 0000000..f29b13e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSort.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f0dc'; +var svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSort = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDown.d.ts new file mode 100644 index 0000000..bdab4fa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAlphaDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDown.js new file mode 100644 index 0000000..83140f8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-alpha-down'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f15d'; +var svgPathData = 'M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAlphaDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDownAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDownAlt.d.ts new file mode 100644 index 0000000..56fc750 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDownAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAlphaDownAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDownAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDownAlt.js new file mode 100644 index 0000000..a3e1a3c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaDownAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-alpha-down-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f881'; +var svgPathData = 'M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAlphaDownAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUp.d.ts new file mode 100644 index 0000000..a94eea8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAlphaUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUp.js new file mode 100644 index 0000000..89e1964 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-alpha-up'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f15e'; +var svgPathData = 'M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAlphaUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUpAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUpAlt.d.ts new file mode 100644 index 0000000..23d402a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUpAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAlphaUpAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUpAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUpAlt.js new file mode 100644 index 0000000..9764af4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAlphaUpAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-alpha-up-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f882'; +var svgPathData = 'M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAlphaUpAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDown.d.ts new file mode 100644 index 0000000..9be8dff --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAmountDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDown.js new file mode 100644 index 0000000..0244a65 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-amount-down'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f160'; +var svgPathData = 'M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAmountDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDownAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDownAlt.d.ts new file mode 100644 index 0000000..18f03fe --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDownAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAmountDownAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDownAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDownAlt.js new file mode 100644 index 0000000..6d0394c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountDownAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-amount-down-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f884'; +var svgPathData = 'M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAmountDownAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUp.d.ts new file mode 100644 index 0000000..2c64810 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAmountUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUp.js new file mode 100644 index 0000000..bea588c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-amount-up'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f161'; +var svgPathData = 'M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAmountUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUpAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUpAlt.d.ts new file mode 100644 index 0000000..9460938 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUpAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortAmountUpAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUpAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUpAlt.js new file mode 100644 index 0000000..5040fc5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortAmountUpAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-amount-up-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f885'; +var svgPathData = 'M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortAmountUpAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortDown.d.ts new file mode 100644 index 0000000..cbcf05f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortDown.js new file mode 100644 index 0000000..aa89b72 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-down'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f0dd'; +var svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDown.d.ts new file mode 100644 index 0000000..16b9fb9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortNumericDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDown.js new file mode 100644 index 0000000..8c63b66 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-numeric-down'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f162'; +var svgPathData = 'M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortNumericDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDownAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDownAlt.d.ts new file mode 100644 index 0000000..1126250 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDownAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortNumericDownAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDownAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDownAlt.js new file mode 100644 index 0000000..de1e97a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericDownAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-numeric-down-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f886'; +var svgPathData = 'M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortNumericDownAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUp.d.ts new file mode 100644 index 0000000..364e173 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortNumericUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUp.js new file mode 100644 index 0000000..e17247d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-numeric-up'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f163'; +var svgPathData = 'M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortNumericUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUpAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUpAlt.d.ts new file mode 100644 index 0000000..2eb6cf7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUpAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortNumericUpAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUpAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUpAlt.js new file mode 100644 index 0000000..f0a91e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortNumericUpAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-numeric-up-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f887'; +var svgPathData = 'M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortNumericUpAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSortUp.d.ts new file mode 100644 index 0000000..cfd2a41 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSortUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSortUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faSortUp.js new file mode 100644 index 0000000..a1854cd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSortUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sort-up'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f0de'; +var svgPathData = 'M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSortUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpa.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSpa.d.ts new file mode 100644 index 0000000..efb3ad3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpa.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSpa: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpa.js b/node_modules/@fortawesome/free-solid-svg-icons/faSpa.js new file mode 100644 index 0000000..44fbef7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpa.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'spa'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f5bb'; +var svgPathData = 'M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSpa = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpaceShuttle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSpaceShuttle.d.ts new file mode 100644 index 0000000..a5df59c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpaceShuttle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSpaceShuttle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpaceShuttle.js b/node_modules/@fortawesome/free-solid-svg-icons/faSpaceShuttle.js new file mode 100644 index 0000000..da8811a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpaceShuttle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'space-shuttle'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f197'; +var svgPathData = 'M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSpaceShuttle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpellCheck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSpellCheck.d.ts new file mode 100644 index 0000000..014619a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpellCheck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSpellCheck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpellCheck.js b/node_modules/@fortawesome/free-solid-svg-icons/faSpellCheck.js new file mode 100644 index 0000000..7905f88 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpellCheck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'spell-check'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f891'; +var svgPathData = 'M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSpellCheck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpider.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSpider.d.ts new file mode 100644 index 0000000..26719b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpider.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSpider: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpider.js b/node_modules/@fortawesome/free-solid-svg-icons/faSpider.js new file mode 100644 index 0000000..fc83d21 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpider.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'spider'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f717'; +var svgPathData = 'M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSpider = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpinner.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSpinner.d.ts new file mode 100644 index 0000000..918b05e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpinner.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSpinner: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSpinner.js b/node_modules/@fortawesome/free-solid-svg-icons/faSpinner.js new file mode 100644 index 0000000..82fa2d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSpinner.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'spinner'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f110'; +var svgPathData = 'M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSpinner = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSplotch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSplotch.d.ts new file mode 100644 index 0000000..b2ff83d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSplotch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSplotch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSplotch.js b/node_modules/@fortawesome/free-solid-svg-icons/faSplotch.js new file mode 100644 index 0000000..10031f3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSplotch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'splotch'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5bc'; +var svgPathData = 'M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSplotch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSprayCan.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSprayCan.d.ts new file mode 100644 index 0000000..6dc577e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSprayCan.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSprayCan: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSprayCan.js b/node_modules/@fortawesome/free-solid-svg-icons/faSprayCan.js new file mode 100644 index 0000000..0c09c8d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSprayCan.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'spray-can'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5bd'; +var svgPathData = 'M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSprayCan = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSquare.d.ts new file mode 100644 index 0000000..f1b263b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faSquare.js new file mode 100644 index 0000000..db57226 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'square'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0c8'; +var svgPathData = 'M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSquareFull.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSquareFull.d.ts new file mode 100644 index 0000000..c50759b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSquareFull.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSquareFull: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSquareFull.js b/node_modules/@fortawesome/free-solid-svg-icons/faSquareFull.js new file mode 100644 index 0000000..dcfb482 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSquareFull.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'square-full'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f45c'; +var svgPathData = 'M512 512H0V0h512v512z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSquareFull = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSquareRootAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSquareRootAlt.d.ts new file mode 100644 index 0000000..118b778 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSquareRootAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSquareRootAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSquareRootAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSquareRootAlt.js new file mode 100644 index 0000000..c7bb1d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSquareRootAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'square-root-alt'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f698'; +var svgPathData = 'M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSquareRootAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStamp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStamp.d.ts new file mode 100644 index 0000000..9450e69 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStamp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStamp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStamp.js b/node_modules/@fortawesome/free-solid-svg-icons/faStamp.js new file mode 100644 index 0000000..5c64535 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStamp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stamp'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5bf'; +var svgPathData = 'M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStamp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStar.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStar.d.ts new file mode 100644 index 0000000..5da5377 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStar.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStar: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStar.js b/node_modules/@fortawesome/free-solid-svg-icons/faStar.js new file mode 100644 index 0000000..2862abe --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStar.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'star'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f005'; +var svgPathData = 'M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStar = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarAndCrescent.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStarAndCrescent.d.ts new file mode 100644 index 0000000..05e2424 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarAndCrescent.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStarAndCrescent: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarAndCrescent.js b/node_modules/@fortawesome/free-solid-svg-icons/faStarAndCrescent.js new file mode 100644 index 0000000..5c3b196 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarAndCrescent.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'star-and-crescent'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f699'; +var svgPathData = 'M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStarAndCrescent = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarHalf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalf.d.ts new file mode 100644 index 0000000..3e5c47e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStarHalf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarHalf.js b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalf.js new file mode 100644 index 0000000..87de0b2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'star-half'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f089'; +var svgPathData = 'M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStarHalf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarHalfAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalfAlt.d.ts new file mode 100644 index 0000000..a22aa46 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalfAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStarHalfAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarHalfAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalfAlt.js new file mode 100644 index 0000000..cb0e51d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarHalfAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'star-half-alt'; +var width = 536; +var height = 512; +var ligatures = []; +var unicode = 'f5c0'; +var svgPathData = 'M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStarHalfAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarOfDavid.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfDavid.d.ts new file mode 100644 index 0000000..299a27b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfDavid.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStarOfDavid: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarOfDavid.js b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfDavid.js new file mode 100644 index 0000000..08d7902 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfDavid.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'star-of-david'; +var width = 464; +var height = 512; +var ligatures = []; +var unicode = 'f69a'; +var svgPathData = 'M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStarOfDavid = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarOfLife.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfLife.d.ts new file mode 100644 index 0000000..7715124 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfLife.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStarOfLife: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStarOfLife.js b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfLife.js new file mode 100644 index 0000000..be6ebf6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStarOfLife.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'star-of-life'; +var width = 480; +var height = 512; +var ligatures = []; +var unicode = 'f621'; +var svgPathData = 'M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStarOfLife = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStepBackward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStepBackward.d.ts new file mode 100644 index 0000000..a7f2e0f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStepBackward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStepBackward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStepBackward.js b/node_modules/@fortawesome/free-solid-svg-icons/faStepBackward.js new file mode 100644 index 0000000..80f9335 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStepBackward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'step-backward'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f048'; +var svgPathData = 'M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStepBackward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStepForward.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStepForward.d.ts new file mode 100644 index 0000000..cc2081e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStepForward.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStepForward: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStepForward.js b/node_modules/@fortawesome/free-solid-svg-icons/faStepForward.js new file mode 100644 index 0000000..2773664 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStepForward.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'step-forward'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f051'; +var svgPathData = 'M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStepForward = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStethoscope.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStethoscope.d.ts new file mode 100644 index 0000000..41388f7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStethoscope.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStethoscope: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStethoscope.js b/node_modules/@fortawesome/free-solid-svg-icons/faStethoscope.js new file mode 100644 index 0000000..f127c67 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStethoscope.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stethoscope'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0f1'; +var svgPathData = 'M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStethoscope = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStickyNote.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStickyNote.d.ts new file mode 100644 index 0000000..ccbaeea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStickyNote.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStickyNote: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStickyNote.js b/node_modules/@fortawesome/free-solid-svg-icons/faStickyNote.js new file mode 100644 index 0000000..3478024 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStickyNote.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sticky-note'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f249'; +var svgPathData = 'M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStickyNote = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStop.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStop.d.ts new file mode 100644 index 0000000..e05ec14 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStop.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStop: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStop.js b/node_modules/@fortawesome/free-solid-svg-icons/faStop.js new file mode 100644 index 0000000..295cd53 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStop.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stop'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f04d'; +var svgPathData = 'M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStop = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStopCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStopCircle.d.ts new file mode 100644 index 0000000..0e0be3e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStopCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStopCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStopCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faStopCircle.js new file mode 100644 index 0000000..a3e0a53 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStopCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stop-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f28d'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStopCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch.d.ts new file mode 100644 index 0000000..422e998 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStopwatch: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch.js b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch.js new file mode 100644 index 0000000..985ef4b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stopwatch'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f2f2'; +var svgPathData = 'M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStopwatch = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch20.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch20.d.ts new file mode 100644 index 0000000..a074dce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch20.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStopwatch20: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch20.js b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch20.js new file mode 100644 index 0000000..dac5bc4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStopwatch20.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stopwatch-20'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'e06f'; +var svgPathData = 'M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStopwatch20 = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStore.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStore.d.ts new file mode 100644 index 0000000..2f245d1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStore.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStore: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStore.js b/node_modules/@fortawesome/free-solid-svg-icons/faStore.js new file mode 100644 index 0000000..d5e0b3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStore.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'store'; +var width = 616; +var height = 512; +var ligatures = []; +var unicode = 'f54e'; +var svgPathData = 'M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStore = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStoreAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAlt.d.ts new file mode 100644 index 0000000..d6d5c57 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStoreAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStoreAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAlt.js new file mode 100644 index 0000000..583dab4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'store-alt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f54f'; +var svgPathData = 'M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStoreAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStoreAltSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAltSlash.d.ts new file mode 100644 index 0000000..cb37699 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAltSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStoreAltSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStoreAltSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAltSlash.js new file mode 100644 index 0000000..9feb5ca --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStoreAltSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'store-alt-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e070'; +var svgPathData = 'M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStoreAltSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStoreSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStoreSlash.d.ts new file mode 100644 index 0000000..6c69aa0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStoreSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStoreSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStoreSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faStoreSlash.js new file mode 100644 index 0000000..ade5c91 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStoreSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'store-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e071'; +var svgPathData = 'M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStoreSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStream.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStream.d.ts new file mode 100644 index 0000000..f815225 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStream.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStream: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStream.js b/node_modules/@fortawesome/free-solid-svg-icons/faStream.js new file mode 100644 index 0000000..225f342 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStream.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stream'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f550'; +var svgPathData = 'M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStream = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStreetView.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStreetView.d.ts new file mode 100644 index 0000000..e812402 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStreetView.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStreetView: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStreetView.js b/node_modules/@fortawesome/free-solid-svg-icons/faStreetView.js new file mode 100644 index 0000000..0339b3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStreetView.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'street-view'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f21d'; +var svgPathData = 'M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStreetView = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStrikethrough.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStrikethrough.d.ts new file mode 100644 index 0000000..fe9d691 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStrikethrough.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStrikethrough: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStrikethrough.js b/node_modules/@fortawesome/free-solid-svg-icons/faStrikethrough.js new file mode 100644 index 0000000..687b231 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStrikethrough.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'strikethrough'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0cc'; +var svgPathData = 'M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStrikethrough = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStroopwafel.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faStroopwafel.d.ts new file mode 100644 index 0000000..f0b5d6f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStroopwafel.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faStroopwafel: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faStroopwafel.js b/node_modules/@fortawesome/free-solid-svg-icons/faStroopwafel.js new file mode 100644 index 0000000..8947a1a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faStroopwafel.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'stroopwafel'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f551'; +var svgPathData = 'M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faStroopwafel = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSubscript.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSubscript.d.ts new file mode 100644 index 0000000..ad7198d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSubscript.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSubscript: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSubscript.js b/node_modules/@fortawesome/free-solid-svg-icons/faSubscript.js new file mode 100644 index 0000000..c59aa09 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSubscript.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'subscript'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f12c'; +var svgPathData = 'M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSubscript = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSubway.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSubway.d.ts new file mode 100644 index 0000000..86acdeb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSubway.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSubway: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSubway.js b/node_modules/@fortawesome/free-solid-svg-icons/faSubway.js new file mode 100644 index 0000000..8260faf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSubway.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'subway'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f239'; +var svgPathData = 'M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSubway = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSuitcase.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcase.d.ts new file mode 100644 index 0000000..9f273b0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcase.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSuitcase: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSuitcase.js b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcase.js new file mode 100644 index 0000000..38fdaa8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcase.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'suitcase'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0f2'; +var svgPathData = 'M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSuitcase = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSuitcaseRolling.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcaseRolling.d.ts new file mode 100644 index 0000000..b9b2cee --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcaseRolling.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSuitcaseRolling: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSuitcaseRolling.js b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcaseRolling.js new file mode 100644 index 0000000..b5d9519 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSuitcaseRolling.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'suitcase-rolling'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f5c1'; +var svgPathData = 'M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSuitcaseRolling = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSun.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSun.d.ts new file mode 100644 index 0000000..585b6fb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSun.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSun: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSun.js b/node_modules/@fortawesome/free-solid-svg-icons/faSun.js new file mode 100644 index 0000000..d717684 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSun.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sun'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f185'; +var svgPathData = 'M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSun = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSuperscript.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSuperscript.d.ts new file mode 100644 index 0000000..ca32ac6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSuperscript.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSuperscript: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSuperscript.js b/node_modules/@fortawesome/free-solid-svg-icons/faSuperscript.js new file mode 100644 index 0000000..1404a2d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSuperscript.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'superscript'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f12b'; +var svgPathData = 'M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSuperscript = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSurprise.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSurprise.d.ts new file mode 100644 index 0000000..56c5d7a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSurprise.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSurprise: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSurprise.js b/node_modules/@fortawesome/free-solid-svg-icons/faSurprise.js new file mode 100644 index 0000000..7aaf0e6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSurprise.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'surprise'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5c2'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSurprise = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSwatchbook.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSwatchbook.d.ts new file mode 100644 index 0000000..3300643 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSwatchbook.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSwatchbook: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSwatchbook.js b/node_modules/@fortawesome/free-solid-svg-icons/faSwatchbook.js new file mode 100644 index 0000000..244b85b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSwatchbook.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'swatchbook'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5c3'; +var svgPathData = 'M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSwatchbook = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSwimmer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmer.d.ts new file mode 100644 index 0000000..aafdf21 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSwimmer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSwimmer.js b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmer.js new file mode 100644 index 0000000..0456346 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'swimmer'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5c4'; +var svgPathData = 'M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSwimmer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSwimmingPool.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmingPool.d.ts new file mode 100644 index 0000000..3b6f4ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmingPool.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSwimmingPool: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSwimmingPool.js b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmingPool.js new file mode 100644 index 0000000..deb3988 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSwimmingPool.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'swimming-pool'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5c5'; +var svgPathData = 'M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSwimmingPool = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSynagogue.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSynagogue.d.ts new file mode 100644 index 0000000..a5e4655 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSynagogue.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSynagogue: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSynagogue.js b/node_modules/@fortawesome/free-solid-svg-icons/faSynagogue.js new file mode 100644 index 0000000..8e9994d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSynagogue.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'synagogue'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f69b'; +var svgPathData = 'M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSynagogue = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSync.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSync.d.ts new file mode 100644 index 0000000..4e3a497 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSync.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSync: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSync.js b/node_modules/@fortawesome/free-solid-svg-icons/faSync.js new file mode 100644 index 0000000..01689db --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSync.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sync'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f021'; +var svgPathData = 'M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSync = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSyncAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSyncAlt.d.ts new file mode 100644 index 0000000..fc69155 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSyncAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSyncAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSyncAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faSyncAlt.js new file mode 100644 index 0000000..48a4b51 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSyncAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'sync-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2f1'; +var svgPathData = 'M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSyncAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSyringe.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faSyringe.d.ts new file mode 100644 index 0000000..6030536 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSyringe.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faSyringe: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faSyringe.js b/node_modules/@fortawesome/free-solid-svg-icons/faSyringe.js new file mode 100644 index 0000000..46ea9c7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faSyringe.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'syringe'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f48e'; +var svgPathData = 'M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faSyringe = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTable.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTable.d.ts new file mode 100644 index 0000000..ca0c56e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTable.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTable: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTable.js b/node_modules/@fortawesome/free-solid-svg-icons/faTable.js new file mode 100644 index 0000000..4953da0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTable.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'table'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0ce'; +var svgPathData = 'M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTable = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTableTennis.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTableTennis.d.ts new file mode 100644 index 0000000..8c7d28d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTableTennis.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTableTennis: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTableTennis.js b/node_modules/@fortawesome/free-solid-svg-icons/faTableTennis.js new file mode 100644 index 0000000..f6849e8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTableTennis.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'table-tennis'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f45d'; +var svgPathData = 'M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTableTennis = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTablet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTablet.d.ts new file mode 100644 index 0000000..c5a57d5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTablet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTablet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTablet.js b/node_modules/@fortawesome/free-solid-svg-icons/faTablet.js new file mode 100644 index 0000000..6aa2609 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTablet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tablet'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f10a'; +var svgPathData = 'M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTablet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTabletAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTabletAlt.d.ts new file mode 100644 index 0000000..ecbd194 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTabletAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTabletAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTabletAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTabletAlt.js new file mode 100644 index 0000000..851a615 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTabletAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tablet-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f3fa'; +var svgPathData = 'M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTabletAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTablets.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTablets.d.ts new file mode 100644 index 0000000..e657892 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTablets.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTablets: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTablets.js b/node_modules/@fortawesome/free-solid-svg-icons/faTablets.js new file mode 100644 index 0000000..b683f8f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTablets.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tablets'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f490'; +var svgPathData = 'M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTablets = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTachometerAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTachometerAlt.d.ts new file mode 100644 index 0000000..0341ae9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTachometerAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTachometerAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTachometerAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTachometerAlt.js new file mode 100644 index 0000000..036bda5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTachometerAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tachometer-alt'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f3fd'; +var svgPathData = 'M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTachometerAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTag.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTag.d.ts new file mode 100644 index 0000000..7999f05 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTag.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTag: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTag.js b/node_modules/@fortawesome/free-solid-svg-icons/faTag.js new file mode 100644 index 0000000..21fe147 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTag.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tag'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f02b'; +var svgPathData = 'M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTag = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTags.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTags.d.ts new file mode 100644 index 0000000..5d8a334 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTags.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTags: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTags.js b/node_modules/@fortawesome/free-solid-svg-icons/faTags.js new file mode 100644 index 0000000..76a9120 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTags.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tags'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f02c'; +var svgPathData = 'M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTags = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTape.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTape.d.ts new file mode 100644 index 0000000..4d81d7a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTape.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTape: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTape.js b/node_modules/@fortawesome/free-solid-svg-icons/faTape.js new file mode 100644 index 0000000..7bb117d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTape.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tape'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4db'; +var svgPathData = 'M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTape = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTasks.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTasks.d.ts new file mode 100644 index 0000000..771746f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTasks.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTasks: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTasks.js b/node_modules/@fortawesome/free-solid-svg-icons/faTasks.js new file mode 100644 index 0000000..cd520d4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTasks.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tasks'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0ae'; +var svgPathData = 'M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTasks = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTaxi.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTaxi.d.ts new file mode 100644 index 0000000..47809ea --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTaxi.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTaxi: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTaxi.js b/node_modules/@fortawesome/free-solid-svg-icons/faTaxi.js new file mode 100644 index 0000000..a252727 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTaxi.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'taxi'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1ba'; +var svgPathData = 'M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTaxi = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTeeth.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTeeth.d.ts new file mode 100644 index 0000000..e92e600 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTeeth.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTeeth: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTeeth.js b/node_modules/@fortawesome/free-solid-svg-icons/faTeeth.js new file mode 100644 index 0000000..3ac3a78 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTeeth.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'teeth'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f62e'; +var svgPathData = 'M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTeeth = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTeethOpen.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTeethOpen.d.ts new file mode 100644 index 0000000..d60ead9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTeethOpen.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTeethOpen: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTeethOpen.js b/node_modules/@fortawesome/free-solid-svg-icons/faTeethOpen.js new file mode 100644 index 0000000..3e72b14 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTeethOpen.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'teeth-open'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f62f'; +var svgPathData = 'M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTeethOpen = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.d.ts new file mode 100644 index 0000000..6cf57bb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTemperatureHigh: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.js b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.js new file mode 100644 index 0000000..1a098da --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'temperature-high'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f769'; +var svgPathData = 'M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTemperatureHigh = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.d.ts new file mode 100644 index 0000000..6e81db8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTemperatureLow: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.js b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.js new file mode 100644 index 0000000..7cf0761 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'temperature-low'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f76b'; +var svgPathData = 'M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTemperatureLow = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTenge.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTenge.d.ts new file mode 100644 index 0000000..45144d2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTenge.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTenge: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTenge.js b/node_modules/@fortawesome/free-solid-svg-icons/faTenge.js new file mode 100644 index 0000000..fccf719 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTenge.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tenge'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f7d7'; +var svgPathData = 'M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTenge = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTerminal.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTerminal.d.ts new file mode 100644 index 0000000..86b1ad3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTerminal.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTerminal: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTerminal.js b/node_modules/@fortawesome/free-solid-svg-icons/faTerminal.js new file mode 100644 index 0000000..cb4eb72 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTerminal.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'terminal'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f120'; +var svgPathData = 'M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTerminal = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTextHeight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTextHeight.d.ts new file mode 100644 index 0000000..8b420b3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTextHeight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTextHeight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTextHeight.js b/node_modules/@fortawesome/free-solid-svg-icons/faTextHeight.js new file mode 100644 index 0000000..598c32b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTextHeight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'text-height'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f034'; +var svgPathData = 'M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTextHeight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTextWidth.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTextWidth.d.ts new file mode 100644 index 0000000..95960d0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTextWidth.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTextWidth: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTextWidth.js b/node_modules/@fortawesome/free-solid-svg-icons/faTextWidth.js new file mode 100644 index 0000000..233ff0a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTextWidth.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'text-width'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f035'; +var svgPathData = 'M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTextWidth = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTh.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTh.d.ts new file mode 100644 index 0000000..bc0a7a2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTh.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTh: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTh.js b/node_modules/@fortawesome/free-solid-svg-icons/faTh.js new file mode 100644 index 0000000..fc7c9f7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTh.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'th'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f00a'; +var svgPathData = 'M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTh = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThLarge.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThLarge.d.ts new file mode 100644 index 0000000..a1bfb66 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThLarge.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThLarge: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThLarge.js b/node_modules/@fortawesome/free-solid-svg-icons/faThLarge.js new file mode 100644 index 0000000..c9119f0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThLarge.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'th-large'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f009'; +var svgPathData = 'M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThLarge = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThList.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThList.d.ts new file mode 100644 index 0000000..d188e48 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThList.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThList: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThList.js b/node_modules/@fortawesome/free-solid-svg-icons/faThList.js new file mode 100644 index 0000000..8b9e180 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThList.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'th-list'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f00b'; +var svgPathData = 'M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThList = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTheaterMasks.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTheaterMasks.d.ts new file mode 100644 index 0000000..b093a54 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTheaterMasks.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTheaterMasks: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTheaterMasks.js b/node_modules/@fortawesome/free-solid-svg-icons/faTheaterMasks.js new file mode 100644 index 0000000..0b96f12 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTheaterMasks.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'theater-masks'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f630'; +var svgPathData = 'M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTheaterMasks = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThermometer.d.ts new file mode 100644 index 0000000..de0b72b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThermometer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometer.js b/node_modules/@fortawesome/free-solid-svg-icons/faThermometer.js new file mode 100644 index 0000000..f00245c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thermometer'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f491'; +var svgPathData = 'M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThermometer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerEmpty.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerEmpty.d.ts new file mode 100644 index 0000000..61ceda9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerEmpty.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThermometerEmpty: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerEmpty.js b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerEmpty.js new file mode 100644 index 0000000..4df266a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerEmpty.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thermometer-empty'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f2cb'; +var svgPathData = 'M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThermometerEmpty = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerFull.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerFull.d.ts new file mode 100644 index 0000000..f1d6e61 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerFull.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThermometerFull: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerFull.js b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerFull.js new file mode 100644 index 0000000..93954f8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerFull.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thermometer-full'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f2c7'; +var svgPathData = 'M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThermometerFull = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.d.ts new file mode 100644 index 0000000..30ee7a3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThermometerHalf: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.js b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.js new file mode 100644 index 0000000..b9dac2d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thermometer-half'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f2c9'; +var svgPathData = 'M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThermometerHalf = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerQuarter.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerQuarter.d.ts new file mode 100644 index 0000000..21b607f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerQuarter.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThermometerQuarter: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerQuarter.js b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerQuarter.js new file mode 100644 index 0000000..74c4882 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerQuarter.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thermometer-quarter'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f2ca'; +var svgPathData = 'M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThermometerQuarter = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerThreeQuarters.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerThreeQuarters.d.ts new file mode 100644 index 0000000..aa8a525 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerThreeQuarters.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThermometerThreeQuarters: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThermometerThreeQuarters.js b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerThreeQuarters.js new file mode 100644 index 0000000..68e75de --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThermometerThreeQuarters.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thermometer-three-quarters'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f2c8'; +var svgPathData = 'M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThermometerThreeQuarters = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThumbsDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsDown.d.ts new file mode 100644 index 0000000..c285ede --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThumbsDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThumbsDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsDown.js new file mode 100644 index 0000000..af8b836 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thumbs-down'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f165'; +var svgPathData = 'M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThumbsDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThumbsUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsUp.d.ts new file mode 100644 index 0000000..4d77850 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThumbsUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThumbsUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsUp.js new file mode 100644 index 0000000..9036da1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThumbsUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thumbs-up'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f164'; +var svgPathData = 'M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThumbsUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThumbtack.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faThumbtack.d.ts new file mode 100644 index 0000000..ec57e98 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThumbtack.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faThumbtack: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faThumbtack.js b/node_modules/@fortawesome/free-solid-svg-icons/faThumbtack.js new file mode 100644 index 0000000..98b9afc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faThumbtack.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'thumbtack'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f08d'; +var svgPathData = 'M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faThumbtack = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTicketAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTicketAlt.d.ts new file mode 100644 index 0000000..9aa7e3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTicketAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTicketAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTicketAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTicketAlt.js new file mode 100644 index 0000000..b3c5cbf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTicketAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'ticket-alt'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f3ff'; +var svgPathData = 'M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTicketAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTimes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTimes.d.ts new file mode 100644 index 0000000..2f0c5c4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTimes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTimes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTimes.js b/node_modules/@fortawesome/free-solid-svg-icons/faTimes.js new file mode 100644 index 0000000..05cada5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTimes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'times'; +var width = 352; +var height = 512; +var ligatures = []; +var unicode = 'f00d'; +var svgPathData = 'M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTimes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTimesCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTimesCircle.d.ts new file mode 100644 index 0000000..9f12a6e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTimesCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTimesCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTimesCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faTimesCircle.js new file mode 100644 index 0000000..bb8dea1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTimesCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'times-circle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f057'; +var svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTimesCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTint.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTint.d.ts new file mode 100644 index 0000000..9491cef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTint.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTint: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTint.js b/node_modules/@fortawesome/free-solid-svg-icons/faTint.js new file mode 100644 index 0000000..c549e6c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTint.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tint'; +var width = 352; +var height = 512; +var ligatures = []; +var unicode = 'f043'; +var svgPathData = 'M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTint = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTintSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTintSlash.d.ts new file mode 100644 index 0000000..380a76b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTintSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTintSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTintSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faTintSlash.js new file mode 100644 index 0000000..9b93f00 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTintSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tint-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5c7'; +var svgPathData = 'M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTintSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTired.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTired.d.ts new file mode 100644 index 0000000..020f6bf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTired.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTired: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTired.js b/node_modules/@fortawesome/free-solid-svg-icons/faTired.js new file mode 100644 index 0000000..6580b4f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTired.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tired'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f5c8'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTired = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToggleOff.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOff.d.ts new file mode 100644 index 0000000..031a85c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOff.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToggleOff: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToggleOff.js b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOff.js new file mode 100644 index 0000000..307e0c9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOff.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'toggle-off'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f204'; +var svgPathData = 'M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToggleOff = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToggleOn.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOn.d.ts new file mode 100644 index 0000000..3bd3045 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOn.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToggleOn: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToggleOn.js b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOn.js new file mode 100644 index 0000000..db572cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToggleOn.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'toggle-on'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f205'; +var svgPathData = 'M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToggleOn = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToilet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToilet.d.ts new file mode 100644 index 0000000..05cd106 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToilet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToilet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToilet.js b/node_modules/@fortawesome/free-solid-svg-icons/faToilet.js new file mode 100644 index 0000000..989afc1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToilet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'toilet'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f7d8'; +var svgPathData = 'M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToilet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaper.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaper.d.ts new file mode 100644 index 0000000..6ca3f5e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaper.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToiletPaper: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaper.js b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaper.js new file mode 100644 index 0000000..d6c8cf1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaper.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'toilet-paper'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f71e'; +var svgPathData = 'M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToiletPaper = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaperSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaperSlash.d.ts new file mode 100644 index 0000000..dccfa8d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaperSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToiletPaperSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaperSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaperSlash.js new file mode 100644 index 0000000..8f875d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToiletPaperSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'toilet-paper-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e072'; +var svgPathData = 'M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToiletPaperSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToolbox.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToolbox.d.ts new file mode 100644 index 0000000..e834b99 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToolbox.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToolbox: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToolbox.js b/node_modules/@fortawesome/free-solid-svg-icons/faToolbox.js new file mode 100644 index 0000000..3e79300 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToolbox.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'toolbox'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f552'; +var svgPathData = 'M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToolbox = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTools.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTools.d.ts new file mode 100644 index 0000000..0a58a0d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTools.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTools: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTools.js b/node_modules/@fortawesome/free-solid-svg-icons/faTools.js new file mode 100644 index 0000000..73786a8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTools.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tools'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7d9'; +var svgPathData = 'M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTools = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTooth.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTooth.d.ts new file mode 100644 index 0000000..0c6b83f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTooth.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTooth: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTooth.js b/node_modules/@fortawesome/free-solid-svg-icons/faTooth.js new file mode 100644 index 0000000..ca700e5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTooth.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tooth'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f5c9'; +var svgPathData = 'M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTooth = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTorah.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTorah.d.ts new file mode 100644 index 0000000..1bf2d45 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTorah.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTorah: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTorah.js b/node_modules/@fortawesome/free-solid-svg-icons/faTorah.js new file mode 100644 index 0000000..9dfc8bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTorah.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'torah'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6a0'; +var svgPathData = 'M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTorah = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToriiGate.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faToriiGate.d.ts new file mode 100644 index 0000000..029303e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToriiGate.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faToriiGate: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faToriiGate.js b/node_modules/@fortawesome/free-solid-svg-icons/faToriiGate.js new file mode 100644 index 0000000..24b48f9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faToriiGate.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'torii-gate'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f6a1'; +var svgPathData = 'M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faToriiGate = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTractor.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTractor.d.ts new file mode 100644 index 0000000..c5cf4d3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTractor.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTractor: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTractor.js b/node_modules/@fortawesome/free-solid-svg-icons/faTractor.js new file mode 100644 index 0000000..23b844f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTractor.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tractor'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f722'; +var svgPathData = 'M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTractor = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrademark.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrademark.d.ts new file mode 100644 index 0000000..3827cf6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrademark.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrademark: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrademark.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrademark.js new file mode 100644 index 0000000..19fd752 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrademark.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trademark'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f25c'; +var svgPathData = 'M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrademark = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrafficLight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrafficLight.d.ts new file mode 100644 index 0000000..996b5e4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrafficLight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrafficLight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrafficLight.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrafficLight.js new file mode 100644 index 0000000..e32c8d6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrafficLight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'traffic-light'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f637'; +var svgPathData = 'M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrafficLight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrailer.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrailer.d.ts new file mode 100644 index 0000000..7e180c3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrailer.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrailer: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrailer.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrailer.js new file mode 100644 index 0000000..07afb1f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrailer.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trailer'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e041'; +var svgPathData = 'M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrailer = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrain.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrain.d.ts new file mode 100644 index 0000000..fbc49cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrain.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrain: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrain.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrain.js new file mode 100644 index 0000000..dc192ed --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrain.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'train'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f238'; +var svgPathData = 'M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrain = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTram.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTram.d.ts new file mode 100644 index 0000000..2506527 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTram.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTram: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTram.js b/node_modules/@fortawesome/free-solid-svg-icons/faTram.js new file mode 100644 index 0000000..424d6be --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTram.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tram'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f7da'; +var svgPathData = 'M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTram = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTransgender.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTransgender.d.ts new file mode 100644 index 0000000..01d711e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTransgender.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTransgender: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTransgender.js b/node_modules/@fortawesome/free-solid-svg-icons/faTransgender.js new file mode 100644 index 0000000..2678541 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTransgender.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'transgender'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f224'; +var svgPathData = 'M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTransgender = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTransgenderAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTransgenderAlt.d.ts new file mode 100644 index 0000000..3abc9c5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTransgenderAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTransgenderAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTransgenderAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTransgenderAlt.js new file mode 100644 index 0000000..a9df965 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTransgenderAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'transgender-alt'; +var width = 480; +var height = 512; +var ligatures = []; +var unicode = 'f225'; +var svgPathData = 'M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTransgenderAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrash.d.ts new file mode 100644 index 0000000..a127957 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrash.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrash.js new file mode 100644 index 0000000..307bd97 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trash'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f1f8'; +var svgPathData = 'M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrashAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrashAlt.d.ts new file mode 100644 index 0000000..8fbdcb2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrashAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrashAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrashAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrashAlt.js new file mode 100644 index 0000000..b40200c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrashAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trash-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f2ed'; +var svgPathData = 'M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrashAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestore.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestore.d.ts new file mode 100644 index 0000000..8af0292 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestore.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrashRestore: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestore.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestore.js new file mode 100644 index 0000000..f964f97 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestore.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trash-restore'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f829'; +var svgPathData = 'M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrashRestore = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestoreAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestoreAlt.d.ts new file mode 100644 index 0000000..956d329 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestoreAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrashRestoreAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestoreAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestoreAlt.js new file mode 100644 index 0000000..3d853be --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrashRestoreAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trash-restore-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f82a'; +var svgPathData = 'M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrashRestoreAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTree.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTree.d.ts new file mode 100644 index 0000000..7693620 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTree.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTree: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTree.js b/node_modules/@fortawesome/free-solid-svg-icons/faTree.js new file mode 100644 index 0000000..4a0f8f4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTree.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tree'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f1bb'; +var svgPathData = 'M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTree = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrophy.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTrophy.d.ts new file mode 100644 index 0000000..c3f7abd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrophy.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTrophy: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTrophy.js b/node_modules/@fortawesome/free-solid-svg-icons/faTrophy.js new file mode 100644 index 0000000..64ccb18 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTrophy.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'trophy'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f091'; +var svgPathData = 'M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTrophy = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTruck.d.ts new file mode 100644 index 0000000..08c31bc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTruck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruck.js b/node_modules/@fortawesome/free-solid-svg-icons/faTruck.js new file mode 100644 index 0000000..5c2a326 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'truck'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0d1'; +var svgPathData = 'M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTruck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckLoading.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTruckLoading.d.ts new file mode 100644 index 0000000..c07de8e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckLoading.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTruckLoading: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckLoading.js b/node_modules/@fortawesome/free-solid-svg-icons/faTruckLoading.js new file mode 100644 index 0000000..8a3faf8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckLoading.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'truck-loading'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4de'; +var svgPathData = 'M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTruckLoading = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckMonster.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMonster.d.ts new file mode 100644 index 0000000..008f02e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMonster.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTruckMonster: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckMonster.js b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMonster.js new file mode 100644 index 0000000..2863a03 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMonster.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'truck-monster'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f63b'; +var svgPathData = 'M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTruckMonster = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckMoving.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMoving.d.ts new file mode 100644 index 0000000..3b70ab4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMoving.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTruckMoving: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckMoving.js b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMoving.js new file mode 100644 index 0000000..3aeab5f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckMoving.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'truck-moving'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4df'; +var svgPathData = 'M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTruckMoving = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckPickup.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTruckPickup.d.ts new file mode 100644 index 0000000..ec9889f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckPickup.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTruckPickup: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTruckPickup.js b/node_modules/@fortawesome/free-solid-svg-icons/faTruckPickup.js new file mode 100644 index 0000000..cfe0e5c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTruckPickup.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'truck-pickup'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f63c'; +var svgPathData = 'M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTruckPickup = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTshirt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTshirt.d.ts new file mode 100644 index 0000000..156ae8d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTshirt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTshirt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTshirt.js b/node_modules/@fortawesome/free-solid-svg-icons/faTshirt.js new file mode 100644 index 0000000..5e861b6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTshirt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tshirt'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f553'; +var svgPathData = 'M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTshirt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTty.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTty.d.ts new file mode 100644 index 0000000..be741aa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTty.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTty: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTty.js b/node_modules/@fortawesome/free-solid-svg-icons/faTty.js new file mode 100644 index 0000000..ef72299 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTty.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tty'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f1e4'; +var svgPathData = 'M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTty = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTv.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faTv.d.ts new file mode 100644 index 0000000..e178504 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTv.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faTv: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faTv.js b/node_modules/@fortawesome/free-solid-svg-icons/faTv.js new file mode 100644 index 0000000..cd59f28 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faTv.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'tv'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f26c'; +var svgPathData = 'M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faTv = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUmbrella.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrella.d.ts new file mode 100644 index 0000000..8a8cb9d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrella.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUmbrella: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUmbrella.js b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrella.js new file mode 100644 index 0000000..f18ec64 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrella.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'umbrella'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f0e9'; +var svgPathData = 'M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUmbrella = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUmbrellaBeach.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrellaBeach.d.ts new file mode 100644 index 0000000..d07138a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrellaBeach.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUmbrellaBeach: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUmbrellaBeach.js b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrellaBeach.js new file mode 100644 index 0000000..93d584c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUmbrellaBeach.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'umbrella-beach'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f5ca'; +var svgPathData = 'M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUmbrellaBeach = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnderline.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUnderline.d.ts new file mode 100644 index 0000000..6749e90 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnderline.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUnderline: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnderline.js b/node_modules/@fortawesome/free-solid-svg-icons/faUnderline.js new file mode 100644 index 0000000..1c638b7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnderline.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'underline'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0cd'; +var svgPathData = 'M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUnderline = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUndo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUndo.d.ts new file mode 100644 index 0000000..395cde9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUndo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUndo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUndo.js b/node_modules/@fortawesome/free-solid-svg-icons/faUndo.js new file mode 100644 index 0000000..f0f90e5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUndo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'undo'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0e2'; +var svgPathData = 'M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUndo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUndoAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUndoAlt.d.ts new file mode 100644 index 0000000..3a786fb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUndoAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUndoAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUndoAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faUndoAlt.js new file mode 100644 index 0000000..80ae6da --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUndoAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'undo-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2ea'; +var svgPathData = 'M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUndoAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUniversalAccess.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUniversalAccess.d.ts new file mode 100644 index 0000000..9112670 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUniversalAccess.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUniversalAccess: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUniversalAccess.js b/node_modules/@fortawesome/free-solid-svg-icons/faUniversalAccess.js new file mode 100644 index 0000000..ed9cc34 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUniversalAccess.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'universal-access'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f29a'; +var svgPathData = 'M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUniversalAccess = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUniversity.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUniversity.d.ts new file mode 100644 index 0000000..a725c58 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUniversity.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUniversity: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUniversity.js b/node_modules/@fortawesome/free-solid-svg-icons/faUniversity.js new file mode 100644 index 0000000..acfc297 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUniversity.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'university'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f19c'; +var svgPathData = 'M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUniversity = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnlink.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUnlink.d.ts new file mode 100644 index 0000000..c3717f5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnlink.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUnlink: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnlink.js b/node_modules/@fortawesome/free-solid-svg-icons/faUnlink.js new file mode 100644 index 0000000..52a8059 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnlink.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'unlink'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f127'; +var svgPathData = 'M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUnlink = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnlock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUnlock.d.ts new file mode 100644 index 0000000..ebda131 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnlock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUnlock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnlock.js b/node_modules/@fortawesome/free-solid-svg-icons/faUnlock.js new file mode 100644 index 0000000..e2deba7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnlock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'unlock'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f09c'; +var svgPathData = 'M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUnlock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnlockAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUnlockAlt.d.ts new file mode 100644 index 0000000..a4d040e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnlockAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUnlockAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUnlockAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faUnlockAlt.js new file mode 100644 index 0000000..6b3d41f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUnlockAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'unlock-alt'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f13e'; +var svgPathData = 'M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUnlockAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUpload.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUpload.d.ts new file mode 100644 index 0000000..fd2821d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUpload.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUpload: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUpload.js b/node_modules/@fortawesome/free-solid-svg-icons/faUpload.js new file mode 100644 index 0000000..7ab2643 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUpload.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'upload'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f093'; +var svgPathData = 'M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUpload = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUser.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUser.d.ts new file mode 100644 index 0000000..7d5312b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUser.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUser: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUser.js b/node_modules/@fortawesome/free-solid-svg-icons/faUser.js new file mode 100644 index 0000000..fb473af --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUser.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f007'; +var svgPathData = 'M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUser = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserAlt.d.ts new file mode 100644 index 0000000..d6c5180 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserAlt.js new file mode 100644 index 0000000..6a03dc8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-alt'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f406'; +var svgPathData = 'M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserAltSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserAltSlash.d.ts new file mode 100644 index 0000000..297c89f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserAltSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserAltSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserAltSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserAltSlash.js new file mode 100644 index 0000000..8cbbe4f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserAltSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-alt-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4fa'; +var svgPathData = 'M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserAltSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserAstronaut.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserAstronaut.d.ts new file mode 100644 index 0000000..42ac56a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserAstronaut.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserAstronaut: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserAstronaut.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserAstronaut.js new file mode 100644 index 0000000..d2c28fd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserAstronaut.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-astronaut'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f4fb'; +var svgPathData = 'M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserAstronaut = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserCheck.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserCheck.d.ts new file mode 100644 index 0000000..1ae17db --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserCheck.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserCheck: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserCheck.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserCheck.js new file mode 100644 index 0000000..16a48a4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserCheck.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-check'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4fc'; +var svgPathData = 'M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserCheck = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserCircle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserCircle.d.ts new file mode 100644 index 0000000..4079ffc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserCircle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserCircle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserCircle.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserCircle.js new file mode 100644 index 0000000..fa5cdb3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserCircle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-circle'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f2bd'; +var svgPathData = 'M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserCircle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserClock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserClock.d.ts new file mode 100644 index 0000000..7b9ae3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserClock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserClock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserClock.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserClock.js new file mode 100644 index 0000000..3b15b44 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserClock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-clock'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4fd'; +var svgPathData = 'M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserClock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserCog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserCog.d.ts new file mode 100644 index 0000000..7ceb8fa --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserCog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserCog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserCog.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserCog.js new file mode 100644 index 0000000..6161c4b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserCog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-cog'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4fe'; +var svgPathData = 'M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserCog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserEdit.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserEdit.d.ts new file mode 100644 index 0000000..f902187 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserEdit.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserEdit: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserEdit.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserEdit.js new file mode 100644 index 0000000..10e6227 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserEdit.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-edit'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4ff'; +var svgPathData = 'M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserEdit = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserFriends.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserFriends.d.ts new file mode 100644 index 0000000..edca198 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserFriends.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserFriends: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserFriends.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserFriends.js new file mode 100644 index 0000000..8bc329b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserFriends.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-friends'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f500'; +var svgPathData = 'M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserFriends = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserGraduate.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserGraduate.d.ts new file mode 100644 index 0000000..1fa1760 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserGraduate.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserGraduate: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserGraduate.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserGraduate.js new file mode 100644 index 0000000..50c8d65 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserGraduate.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-graduate'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f501'; +var svgPathData = 'M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserGraduate = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserInjured.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserInjured.d.ts new file mode 100644 index 0000000..a0a4b53 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserInjured.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserInjured: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserInjured.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserInjured.js new file mode 100644 index 0000000..654c9d8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserInjured.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-injured'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f728'; +var svgPathData = 'M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserInjured = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserLock.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserLock.d.ts new file mode 100644 index 0000000..d937018 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserLock.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserLock: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserLock.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserLock.js new file mode 100644 index 0000000..16b7c2d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserLock.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-lock'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f502'; +var svgPathData = 'M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserLock = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserMd.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserMd.d.ts new file mode 100644 index 0000000..ff2adce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserMd.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserMd: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserMd.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserMd.js new file mode 100644 index 0000000..93ae98d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserMd.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-md'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f0f0'; +var svgPathData = 'M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserMd = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserMinus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserMinus.d.ts new file mode 100644 index 0000000..8cbdbcb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserMinus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserMinus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserMinus.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserMinus.js new file mode 100644 index 0000000..f078dec --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserMinus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-minus'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f503'; +var svgPathData = 'M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserMinus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserNinja.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserNinja.d.ts new file mode 100644 index 0000000..9db0995 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserNinja.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserNinja: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserNinja.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserNinja.js new file mode 100644 index 0000000..28ebf3d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserNinja.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-ninja'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f504'; +var svgPathData = 'M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserNinja = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserNurse.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserNurse.d.ts new file mode 100644 index 0000000..83578ba --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserNurse.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserNurse: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserNurse.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserNurse.js new file mode 100644 index 0000000..751f6f0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserNurse.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-nurse'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f82f'; +var svgPathData = 'M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserNurse = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserPlus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserPlus.d.ts new file mode 100644 index 0000000..42bda95 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserPlus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserPlus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserPlus.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserPlus.js new file mode 100644 index 0000000..b929bd6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserPlus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-plus'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f234'; +var svgPathData = 'M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserPlus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserSecret.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserSecret.d.ts new file mode 100644 index 0000000..97b14cb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserSecret.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserSecret: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserSecret.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserSecret.js new file mode 100644 index 0000000..2e181ae --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserSecret.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-secret'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f21b'; +var svgPathData = 'M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserSecret = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserShield.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserShield.d.ts new file mode 100644 index 0000000..c30bd60 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserShield.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserShield: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserShield.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserShield.js new file mode 100644 index 0000000..08a7d1f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserShield.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-shield'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f505'; +var svgPathData = 'M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserShield = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.d.ts new file mode 100644 index 0000000..0209aeb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.js new file mode 100644 index 0000000..6b5106a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f506'; +var svgPathData = 'M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserTag.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserTag.d.ts new file mode 100644 index 0000000..83cb112 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserTag.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserTag: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserTag.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserTag.js new file mode 100644 index 0000000..8c4adcb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserTag.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-tag'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f507'; +var svgPathData = 'M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserTag = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserTie.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserTie.d.ts new file mode 100644 index 0000000..e78bf90 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserTie.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserTie: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserTie.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserTie.js new file mode 100644 index 0000000..1e93cf3 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserTie.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-tie'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'f508'; +var svgPathData = 'M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserTie = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserTimes.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUserTimes.d.ts new file mode 100644 index 0000000..9f94175 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserTimes.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUserTimes: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUserTimes.js b/node_modules/@fortawesome/free-solid-svg-icons/faUserTimes.js new file mode 100644 index 0000000..eb1b528 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUserTimes.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'user-times'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f235'; +var svgPathData = 'M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUserTimes = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUsers.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUsers.d.ts new file mode 100644 index 0000000..8e5c5f2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUsers.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUsers: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUsers.js b/node_modules/@fortawesome/free-solid-svg-icons/faUsers.js new file mode 100644 index 0000000..cc94de8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUsers.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'users'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f0c0'; +var svgPathData = 'M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUsers = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUsersCog.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUsersCog.d.ts new file mode 100644 index 0000000..41a5423 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUsersCog.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUsersCog: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUsersCog.js b/node_modules/@fortawesome/free-solid-svg-icons/faUsersCog.js new file mode 100644 index 0000000..9564c34 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUsersCog.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'users-cog'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f509'; +var svgPathData = 'M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUsersCog = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUsersSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUsersSlash.d.ts new file mode 100644 index 0000000..7129170 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUsersSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUsersSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUsersSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faUsersSlash.js new file mode 100644 index 0000000..5d77884 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUsersSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'users-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e073'; +var svgPathData = 'M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUsersSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUtensilSpoon.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUtensilSpoon.d.ts new file mode 100644 index 0000000..c4a8ab8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUtensilSpoon.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUtensilSpoon: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUtensilSpoon.js b/node_modules/@fortawesome/free-solid-svg-icons/faUtensilSpoon.js new file mode 100644 index 0000000..72558f9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUtensilSpoon.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'utensil-spoon'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2e5'; +var svgPathData = 'M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUtensilSpoon = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUtensils.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faUtensils.d.ts new file mode 100644 index 0000000..3d591d0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUtensils.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faUtensils: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faUtensils.js b/node_modules/@fortawesome/free-solid-svg-icons/faUtensils.js new file mode 100644 index 0000000..0326a20 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faUtensils.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'utensils'; +var width = 416; +var height = 512; +var ligatures = []; +var unicode = 'f2e7'; +var svgPathData = 'M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faUtensils = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVectorSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVectorSquare.d.ts new file mode 100644 index 0000000..ffe2693 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVectorSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVectorSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVectorSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faVectorSquare.js new file mode 100644 index 0000000..adaa0a6 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVectorSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vector-square'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5cb'; +var svgPathData = 'M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVectorSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVenus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVenus.d.ts new file mode 100644 index 0000000..df71457 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVenus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVenus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVenus.js b/node_modules/@fortawesome/free-solid-svg-icons/faVenus.js new file mode 100644 index 0000000..533196b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVenus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'venus'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f221'; +var svgPathData = 'M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVenus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVenusDouble.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVenusDouble.d.ts new file mode 100644 index 0000000..c726cc2 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVenusDouble.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVenusDouble: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVenusDouble.js b/node_modules/@fortawesome/free-solid-svg-icons/faVenusDouble.js new file mode 100644 index 0000000..215b6a1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVenusDouble.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'venus-double'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f226'; +var svgPathData = 'M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVenusDouble = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVenusMars.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVenusMars.d.ts new file mode 100644 index 0000000..d7a9fdb --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVenusMars.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVenusMars: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVenusMars.js b/node_modules/@fortawesome/free-solid-svg-icons/faVenusMars.js new file mode 100644 index 0000000..0d2e18d --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVenusMars.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'venus-mars'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f228'; +var svgPathData = 'M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVenusMars = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVest.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVest.d.ts new file mode 100644 index 0000000..144294c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVest.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVest: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVest.js b/node_modules/@fortawesome/free-solid-svg-icons/faVest.js new file mode 100644 index 0000000..f3c0042 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVest.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vest'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'e085'; +var svgPathData = 'M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVest = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVestPatches.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVestPatches.d.ts new file mode 100644 index 0000000..e0e5487 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVestPatches.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVestPatches: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVestPatches.js b/node_modules/@fortawesome/free-solid-svg-icons/faVestPatches.js new file mode 100644 index 0000000..8d89ad9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVestPatches.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vest-patches'; +var width = 448; +var height = 512; +var ligatures = []; +var unicode = 'e086'; +var svgPathData = 'M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVestPatches = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVial.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVial.d.ts new file mode 100644 index 0000000..e5d6ede --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVial.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVial: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVial.js b/node_modules/@fortawesome/free-solid-svg-icons/faVial.js new file mode 100644 index 0000000..9a44613 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVial.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vial'; +var width = 480; +var height = 512; +var ligatures = []; +var unicode = 'f492'; +var svgPathData = 'M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVial = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVials.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVials.d.ts new file mode 100644 index 0000000..1a2b139 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVials.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVials: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVials.js b/node_modules/@fortawesome/free-solid-svg-icons/faVials.js new file mode 100644 index 0000000..961e584 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVials.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vials'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f493'; +var svgPathData = 'M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVials = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVideo.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVideo.d.ts new file mode 100644 index 0000000..590a4ce --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVideo.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVideo: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVideo.js b/node_modules/@fortawesome/free-solid-svg-icons/faVideo.js new file mode 100644 index 0000000..7bdfd43 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVideo.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'video'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f03d'; +var svgPathData = 'M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVideo = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVideoSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVideoSlash.d.ts new file mode 100644 index 0000000..a1320d9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVideoSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVideoSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVideoSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faVideoSlash.js new file mode 100644 index 0000000..23b7eb9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVideoSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'video-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f4e2'; +var svgPathData = 'M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVideoSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVihara.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVihara.d.ts new file mode 100644 index 0000000..5e83974 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVihara.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVihara: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVihara.js b/node_modules/@fortawesome/free-solid-svg-icons/faVihara.js new file mode 100644 index 0000000..e4f9077 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVihara.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vihara'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f6a7'; +var svgPathData = 'M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVihara = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVirus.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVirus.d.ts new file mode 100644 index 0000000..87936df --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVirus.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVirus: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVirus.js b/node_modules/@fortawesome/free-solid-svg-icons/faVirus.js new file mode 100644 index 0000000..238ae9c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVirus.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'virus'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'e074'; +var svgPathData = 'M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVirus = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVirusSlash.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVirusSlash.d.ts new file mode 100644 index 0000000..d4299d7 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVirusSlash.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVirusSlash: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVirusSlash.js b/node_modules/@fortawesome/free-solid-svg-icons/faVirusSlash.js new file mode 100644 index 0000000..c7194e1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVirusSlash.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'virus-slash'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e075'; +var svgPathData = 'M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVirusSlash = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faViruses.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faViruses.d.ts new file mode 100644 index 0000000..96b5ec0 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faViruses.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faViruses: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faViruses.js b/node_modules/@fortawesome/free-solid-svg-icons/faViruses.js new file mode 100644 index 0000000..cd9970c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faViruses.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'viruses'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'e076'; +var svgPathData = 'M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faViruses = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVoicemail.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVoicemail.d.ts new file mode 100644 index 0000000..f835abf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVoicemail.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVoicemail: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVoicemail.js b/node_modules/@fortawesome/free-solid-svg-icons/faVoicemail.js new file mode 100644 index 0000000..feeaf86 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVoicemail.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'voicemail'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f897'; +var svgPathData = 'M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVoicemail = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolleyballBall.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVolleyballBall.d.ts new file mode 100644 index 0000000..a512670 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolleyballBall.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVolleyballBall: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolleyballBall.js b/node_modules/@fortawesome/free-solid-svg-icons/faVolleyballBall.js new file mode 100644 index 0000000..174b7fd --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolleyballBall.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'volleyball-ball'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f45f'; +var svgPathData = 'M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVolleyballBall = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeDown.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeDown.d.ts new file mode 100644 index 0000000..514b09b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeDown.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVolumeDown: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeDown.js b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeDown.js new file mode 100644 index 0000000..ad8088c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeDown.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'volume-down'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f027'; +var svgPathData = 'M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVolumeDown = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeMute.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeMute.d.ts new file mode 100644 index 0000000..91d664b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeMute.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVolumeMute: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeMute.js b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeMute.js new file mode 100644 index 0000000..4bc6634 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeMute.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'volume-mute'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f6a9'; +var svgPathData = 'M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVolumeMute = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeOff.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeOff.d.ts new file mode 100644 index 0000000..e58a65f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeOff.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVolumeOff: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeOff.js b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeOff.js new file mode 100644 index 0000000..3939134 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeOff.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'volume-off'; +var width = 256; +var height = 512; +var ligatures = []; +var unicode = 'f026'; +var svgPathData = 'M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVolumeOff = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeUp.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeUp.d.ts new file mode 100644 index 0000000..974dd74 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeUp.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVolumeUp: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVolumeUp.js b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeUp.js new file mode 100644 index 0000000..1661763 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVolumeUp.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'volume-up'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f028'; +var svgPathData = 'M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVolumeUp = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVoteYea.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVoteYea.d.ts new file mode 100644 index 0000000..0cfe0d5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVoteYea.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVoteYea: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVoteYea.js b/node_modules/@fortawesome/free-solid-svg-icons/faVoteYea.js new file mode 100644 index 0000000..3b4444c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVoteYea.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vote-yea'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f772'; +var svgPathData = 'M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVoteYea = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVrCardboard.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faVrCardboard.d.ts new file mode 100644 index 0000000..03b3ddf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVrCardboard.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faVrCardboard: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faVrCardboard.js b/node_modules/@fortawesome/free-solid-svg-icons/faVrCardboard.js new file mode 100644 index 0000000..42baf4b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faVrCardboard.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'vr-cardboard'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f729'; +var svgPathData = 'M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faVrCardboard = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWalking.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWalking.d.ts new file mode 100644 index 0000000..3fb2947 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWalking.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWalking: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWalking.js b/node_modules/@fortawesome/free-solid-svg-icons/faWalking.js new file mode 100644 index 0000000..30aef9b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWalking.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'walking'; +var width = 320; +var height = 512; +var ligatures = []; +var unicode = 'f554'; +var svgPathData = 'M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWalking = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWallet.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWallet.d.ts new file mode 100644 index 0000000..94a8d88 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWallet.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWallet: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWallet.js b/node_modules/@fortawesome/free-solid-svg-icons/faWallet.js new file mode 100644 index 0000000..93c5761 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWallet.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wallet'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f555'; +var svgPathData = 'M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWallet = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWarehouse.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWarehouse.d.ts new file mode 100644 index 0000000..2cb1508 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWarehouse.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWarehouse: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWarehouse.js b/node_modules/@fortawesome/free-solid-svg-icons/faWarehouse.js new file mode 100644 index 0000000..385ee19 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWarehouse.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'warehouse'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f494'; +var svgPathData = 'M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWarehouse = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWater.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWater.d.ts new file mode 100644 index 0000000..1a5c8f8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWater.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWater: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWater.js b/node_modules/@fortawesome/free-solid-svg-icons/faWater.js new file mode 100644 index 0000000..6f2eab9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWater.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'water'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f773'; +var svgPathData = 'M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWater = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWaveSquare.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWaveSquare.d.ts new file mode 100644 index 0000000..c75bea8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWaveSquare.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWaveSquare: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWaveSquare.js b/node_modules/@fortawesome/free-solid-svg-icons/faWaveSquare.js new file mode 100644 index 0000000..05bd277 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWaveSquare.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wave-square'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f83e'; +var svgPathData = 'M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWaveSquare = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWeight.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWeight.d.ts new file mode 100644 index 0000000..51d71ee --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWeight.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWeight: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWeight.js b/node_modules/@fortawesome/free-solid-svg-icons/faWeight.js new file mode 100644 index 0000000..0019fad --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWeight.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'weight'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f496'; +var svgPathData = 'M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWeight = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWeightHanging.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWeightHanging.d.ts new file mode 100644 index 0000000..d4930d5 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWeightHanging.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWeightHanging: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWeightHanging.js b/node_modules/@fortawesome/free-solid-svg-icons/faWeightHanging.js new file mode 100644 index 0000000..aaf02c9 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWeightHanging.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'weight-hanging'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f5cd'; +var svgPathData = 'M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWeightHanging = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWheelchair.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWheelchair.d.ts new file mode 100644 index 0000000..8f9887e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWheelchair.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWheelchair: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWheelchair.js b/node_modules/@fortawesome/free-solid-svg-icons/faWheelchair.js new file mode 100644 index 0000000..8c2f10a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWheelchair.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wheelchair'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f193'; +var svgPathData = 'M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWheelchair = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWifi.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWifi.d.ts new file mode 100644 index 0000000..bb846c8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWifi.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWifi: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWifi.js b/node_modules/@fortawesome/free-solid-svg-icons/faWifi.js new file mode 100644 index 0000000..032c5ab --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWifi.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wifi'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f1eb'; +var svgPathData = 'M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWifi = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWind.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWind.d.ts new file mode 100644 index 0000000..6bb03f1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWind.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWind: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWind.js b/node_modules/@fortawesome/free-solid-svg-icons/faWind.js new file mode 100644 index 0000000..e59eace --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWind.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wind'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f72e'; +var svgPathData = 'M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWind = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowClose.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWindowClose.d.ts new file mode 100644 index 0000000..77f1814 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowClose.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWindowClose: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowClose.js b/node_modules/@fortawesome/free-solid-svg-icons/faWindowClose.js new file mode 100644 index 0000000..4441bb1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowClose.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'window-close'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f410'; +var svgPathData = 'M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWindowClose = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowMaximize.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMaximize.d.ts new file mode 100644 index 0000000..19be5cc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMaximize.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWindowMaximize: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowMaximize.js b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMaximize.js new file mode 100644 index 0000000..71fb78b --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMaximize.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'window-maximize'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2d0'; +var svgPathData = 'M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWindowMaximize = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowMinimize.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMinimize.d.ts new file mode 100644 index 0000000..af46bbc --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMinimize.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWindowMinimize: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowMinimize.js b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMinimize.js new file mode 100644 index 0000000..b864c85 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowMinimize.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'window-minimize'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2d1'; +var svgPathData = 'M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWindowMinimize = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowRestore.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWindowRestore.d.ts new file mode 100644 index 0000000..c79b53c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowRestore.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWindowRestore: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWindowRestore.js b/node_modules/@fortawesome/free-solid-svg-icons/faWindowRestore.js new file mode 100644 index 0000000..4630955 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWindowRestore.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'window-restore'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f2d2'; +var svgPathData = 'M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWindowRestore = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWineBottle.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWineBottle.d.ts new file mode 100644 index 0000000..74a44f8 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWineBottle.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWineBottle: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWineBottle.js b/node_modules/@fortawesome/free-solid-svg-icons/faWineBottle.js new file mode 100644 index 0000000..790f413 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWineBottle.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wine-bottle'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f72f'; +var svgPathData = 'M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWineBottle = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWineGlass.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlass.d.ts new file mode 100644 index 0000000..25bce56 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlass.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWineGlass: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWineGlass.js b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlass.js new file mode 100644 index 0000000..e46e0ef --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlass.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wine-glass'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f4e3'; +var svgPathData = 'M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWineGlass = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWineGlassAlt.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlassAlt.d.ts new file mode 100644 index 0000000..3a037e4 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlassAlt.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWineGlassAlt: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWineGlassAlt.js b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlassAlt.js new file mode 100644 index 0000000..ce254bf --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWineGlassAlt.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wine-glass-alt'; +var width = 288; +var height = 512; +var ligatures = []; +var unicode = 'f5ce'; +var svgPathData = 'M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWineGlassAlt = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWonSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWonSign.d.ts new file mode 100644 index 0000000..e5be94c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWonSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWonSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWonSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faWonSign.js new file mode 100644 index 0000000..66a8ee1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWonSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'won-sign'; +var width = 576; +var height = 512; +var ligatures = []; +var unicode = 'f159'; +var svgPathData = 'M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWonSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWrench.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faWrench.d.ts new file mode 100644 index 0000000..3388774 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWrench.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faWrench: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faWrench.js b/node_modules/@fortawesome/free-solid-svg-icons/faWrench.js new file mode 100644 index 0000000..027687e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faWrench.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'wrench'; +var width = 512; +var height = 512; +var ligatures = []; +var unicode = 'f0ad'; +var svgPathData = 'M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faWrench = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faXRay.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faXRay.d.ts new file mode 100644 index 0000000..47a514e --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faXRay.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faXRay: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faXRay.js b/node_modules/@fortawesome/free-solid-svg-icons/faXRay.js new file mode 100644 index 0000000..7047d94 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faXRay.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'x-ray'; +var width = 640; +var height = 512; +var ligatures = []; +var unicode = 'f497'; +var svgPathData = 'M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faXRay = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faYenSign.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faYenSign.d.ts new file mode 100644 index 0000000..e6097ac --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faYenSign.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faYenSign: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faYenSign.js b/node_modules/@fortawesome/free-solid-svg-icons/faYenSign.js new file mode 100644 index 0000000..eadc027 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faYenSign.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'yen-sign'; +var width = 384; +var height = 512; +var ligatures = []; +var unicode = 'f157'; +var svgPathData = 'M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faYenSign = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faYinYang.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/faYinYang.d.ts new file mode 100644 index 0000000..47eeea1 --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faYinYang.d.ts @@ -0,0 +1,10 @@ +import { IconDefinition, IconPrefix, IconName } from "@fortawesome/fontawesome-common-types"; +export const definition: IconDefinition; +export const faYinYang: IconDefinition; +export const prefix: IconPrefix; +export const iconName: IconName; +export const width: number; +export const height: number; +export const ligatures: string[]; +export const unicode: string; +export const svgPathData: string; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/faYinYang.js b/node_modules/@fortawesome/free-solid-svg-icons/faYinYang.js new file mode 100644 index 0000000..5d24d3c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/faYinYang.js @@ -0,0 +1,29 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +var prefix = 'fas'; +var iconName = 'yin-yang'; +var width = 496; +var height = 512; +var ligatures = []; +var unicode = 'f6ad'; +var svgPathData = 'M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z'; + +exports.definition = { + prefix: prefix, + iconName: iconName, + icon: [ + width, + height, + ligatures, + unicode, + svgPathData + ]}; + +exports.faYinYang = exports.definition; +exports.prefix = prefix; +exports.iconName = iconName; +exports.width = width; +exports.height = height; +exports.ligatures = ligatures; +exports.unicode = unicode; +exports.svgPathData = svgPathData; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/index.d.ts b/node_modules/@fortawesome/free-solid-svg-icons/index.d.ts new file mode 100644 index 0000000..e56371f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/index.d.ts @@ -0,0 +1,1006 @@ +export const faAd: IconDefinition; +export const faAddressBook: IconDefinition; +export const faAddressCard: IconDefinition; +export const faAdjust: IconDefinition; +export const faAirFreshener: IconDefinition; +export const faAlignCenter: IconDefinition; +export const faAlignJustify: IconDefinition; +export const faAlignLeft: IconDefinition; +export const faAlignRight: IconDefinition; +export const faAllergies: IconDefinition; +export const faAmbulance: IconDefinition; +export const faAmericanSignLanguageInterpreting: IconDefinition; +export const faAnchor: IconDefinition; +export const faAngleDoubleDown: IconDefinition; +export const faAngleDoubleLeft: IconDefinition; +export const faAngleDoubleRight: IconDefinition; +export const faAngleDoubleUp: IconDefinition; +export const faAngleDown: IconDefinition; +export const faAngleLeft: IconDefinition; +export const faAngleRight: IconDefinition; +export const faAngleUp: IconDefinition; +export const faAngry: IconDefinition; +export const faAnkh: IconDefinition; +export const faAppleAlt: IconDefinition; +export const faArchive: IconDefinition; +export const faArchway: IconDefinition; +export const faArrowAltCircleDown: IconDefinition; +export const faArrowAltCircleLeft: IconDefinition; +export const faArrowAltCircleRight: IconDefinition; +export const faArrowAltCircleUp: IconDefinition; +export const faArrowCircleDown: IconDefinition; +export const faArrowCircleLeft: IconDefinition; +export const faArrowCircleRight: IconDefinition; +export const faArrowCircleUp: IconDefinition; +export const faArrowDown: IconDefinition; +export const faArrowLeft: IconDefinition; +export const faArrowRight: IconDefinition; +export const faArrowUp: IconDefinition; +export const faArrowsAlt: IconDefinition; +export const faArrowsAltH: IconDefinition; +export const faArrowsAltV: IconDefinition; +export const faAssistiveListeningSystems: IconDefinition; +export const faAsterisk: IconDefinition; +export const faAt: IconDefinition; +export const faAtlas: IconDefinition; +export const faAtom: IconDefinition; +export const faAudioDescription: IconDefinition; +export const faAward: IconDefinition; +export const faBaby: IconDefinition; +export const faBabyCarriage: IconDefinition; +export const faBackspace: IconDefinition; +export const faBackward: IconDefinition; +export const faBacon: IconDefinition; +export const faBacteria: IconDefinition; +export const faBacterium: IconDefinition; +export const faBahai: IconDefinition; +export const faBalanceScale: IconDefinition; +export const faBalanceScaleLeft: IconDefinition; +export const faBalanceScaleRight: IconDefinition; +export const faBan: IconDefinition; +export const faBandAid: IconDefinition; +export const faBarcode: IconDefinition; +export const faBars: IconDefinition; +export const faBaseballBall: IconDefinition; +export const faBasketballBall: IconDefinition; +export const faBath: IconDefinition; +export const faBatteryEmpty: IconDefinition; +export const faBatteryFull: IconDefinition; +export const faBatteryHalf: IconDefinition; +export const faBatteryQuarter: IconDefinition; +export const faBatteryThreeQuarters: IconDefinition; +export const faBed: IconDefinition; +export const faBeer: IconDefinition; +export const faBell: IconDefinition; +export const faBellSlash: IconDefinition; +export const faBezierCurve: IconDefinition; +export const faBible: IconDefinition; +export const faBicycle: IconDefinition; +export const faBiking: IconDefinition; +export const faBinoculars: IconDefinition; +export const faBiohazard: IconDefinition; +export const faBirthdayCake: IconDefinition; +export const faBlender: IconDefinition; +export const faBlenderPhone: IconDefinition; +export const faBlind: IconDefinition; +export const faBlog: IconDefinition; +export const faBold: IconDefinition; +export const faBolt: IconDefinition; +export const faBomb: IconDefinition; +export const faBone: IconDefinition; +export const faBong: IconDefinition; +export const faBook: IconDefinition; +export const faBookDead: IconDefinition; +export const faBookMedical: IconDefinition; +export const faBookOpen: IconDefinition; +export const faBookReader: IconDefinition; +export const faBookmark: IconDefinition; +export const faBorderAll: IconDefinition; +export const faBorderNone: IconDefinition; +export const faBorderStyle: IconDefinition; +export const faBowlingBall: IconDefinition; +export const faBox: IconDefinition; +export const faBoxOpen: IconDefinition; +export const faBoxTissue: IconDefinition; +export const faBoxes: IconDefinition; +export const faBraille: IconDefinition; +export const faBrain: IconDefinition; +export const faBreadSlice: IconDefinition; +export const faBriefcase: IconDefinition; +export const faBriefcaseMedical: IconDefinition; +export const faBroadcastTower: IconDefinition; +export const faBroom: IconDefinition; +export const faBrush: IconDefinition; +export const faBug: IconDefinition; +export const faBuilding: IconDefinition; +export const faBullhorn: IconDefinition; +export const faBullseye: IconDefinition; +export const faBurn: IconDefinition; +export const faBus: IconDefinition; +export const faBusAlt: IconDefinition; +export const faBusinessTime: IconDefinition; +export const faCalculator: IconDefinition; +export const faCalendar: IconDefinition; +export const faCalendarAlt: IconDefinition; +export const faCalendarCheck: IconDefinition; +export const faCalendarDay: IconDefinition; +export const faCalendarMinus: IconDefinition; +export const faCalendarPlus: IconDefinition; +export const faCalendarTimes: IconDefinition; +export const faCalendarWeek: IconDefinition; +export const faCamera: IconDefinition; +export const faCameraRetro: IconDefinition; +export const faCampground: IconDefinition; +export const faCandyCane: IconDefinition; +export const faCannabis: IconDefinition; +export const faCapsules: IconDefinition; +export const faCar: IconDefinition; +export const faCarAlt: IconDefinition; +export const faCarBattery: IconDefinition; +export const faCarCrash: IconDefinition; +export const faCarSide: IconDefinition; +export const faCaravan: IconDefinition; +export const faCaretDown: IconDefinition; +export const faCaretLeft: IconDefinition; +export const faCaretRight: IconDefinition; +export const faCaretSquareDown: IconDefinition; +export const faCaretSquareLeft: IconDefinition; +export const faCaretSquareRight: IconDefinition; +export const faCaretSquareUp: IconDefinition; +export const faCaretUp: IconDefinition; +export const faCarrot: IconDefinition; +export const faCartArrowDown: IconDefinition; +export const faCartPlus: IconDefinition; +export const faCashRegister: IconDefinition; +export const faCat: IconDefinition; +export const faCertificate: IconDefinition; +export const faChair: IconDefinition; +export const faChalkboard: IconDefinition; +export const faChalkboardTeacher: IconDefinition; +export const faChargingStation: IconDefinition; +export const faChartArea: IconDefinition; +export const faChartBar: IconDefinition; +export const faChartLine: IconDefinition; +export const faChartPie: IconDefinition; +export const faCheck: IconDefinition; +export const faCheckCircle: IconDefinition; +export const faCheckDouble: IconDefinition; +export const faCheckSquare: IconDefinition; +export const faCheese: IconDefinition; +export const faChess: IconDefinition; +export const faChessBishop: IconDefinition; +export const faChessBoard: IconDefinition; +export const faChessKing: IconDefinition; +export const faChessKnight: IconDefinition; +export const faChessPawn: IconDefinition; +export const faChessQueen: IconDefinition; +export const faChessRook: IconDefinition; +export const faChevronCircleDown: IconDefinition; +export const faChevronCircleLeft: IconDefinition; +export const faChevronCircleRight: IconDefinition; +export const faChevronCircleUp: IconDefinition; +export const faChevronDown: IconDefinition; +export const faChevronLeft: IconDefinition; +export const faChevronRight: IconDefinition; +export const faChevronUp: IconDefinition; +export const faChild: IconDefinition; +export const faChurch: IconDefinition; +export const faCircle: IconDefinition; +export const faCircleNotch: IconDefinition; +export const faCity: IconDefinition; +export const faClinicMedical: IconDefinition; +export const faClipboard: IconDefinition; +export const faClipboardCheck: IconDefinition; +export const faClipboardList: IconDefinition; +export const faClock: IconDefinition; +export const faClone: IconDefinition; +export const faClosedCaptioning: IconDefinition; +export const faCloud: IconDefinition; +export const faCloudDownloadAlt: IconDefinition; +export const faCloudMeatball: IconDefinition; +export const faCloudMoon: IconDefinition; +export const faCloudMoonRain: IconDefinition; +export const faCloudRain: IconDefinition; +export const faCloudShowersHeavy: IconDefinition; +export const faCloudSun: IconDefinition; +export const faCloudSunRain: IconDefinition; +export const faCloudUploadAlt: IconDefinition; +export const faCocktail: IconDefinition; +export const faCode: IconDefinition; +export const faCodeBranch: IconDefinition; +export const faCoffee: IconDefinition; +export const faCog: IconDefinition; +export const faCogs: IconDefinition; +export const faCoins: IconDefinition; +export const faColumns: IconDefinition; +export const faComment: IconDefinition; +export const faCommentAlt: IconDefinition; +export const faCommentDollar: IconDefinition; +export const faCommentDots: IconDefinition; +export const faCommentMedical: IconDefinition; +export const faCommentSlash: IconDefinition; +export const faComments: IconDefinition; +export const faCommentsDollar: IconDefinition; +export const faCompactDisc: IconDefinition; +export const faCompass: IconDefinition; +export const faCompress: IconDefinition; +export const faCompressAlt: IconDefinition; +export const faCompressArrowsAlt: IconDefinition; +export const faConciergeBell: IconDefinition; +export const faCookie: IconDefinition; +export const faCookieBite: IconDefinition; +export const faCopy: IconDefinition; +export const faCopyright: IconDefinition; +export const faCouch: IconDefinition; +export const faCreditCard: IconDefinition; +export const faCrop: IconDefinition; +export const faCropAlt: IconDefinition; +export const faCross: IconDefinition; +export const faCrosshairs: IconDefinition; +export const faCrow: IconDefinition; +export const faCrown: IconDefinition; +export const faCrutch: IconDefinition; +export const faCube: IconDefinition; +export const faCubes: IconDefinition; +export const faCut: IconDefinition; +export const faDatabase: IconDefinition; +export const faDeaf: IconDefinition; +export const faDemocrat: IconDefinition; +export const faDesktop: IconDefinition; +export const faDharmachakra: IconDefinition; +export const faDiagnoses: IconDefinition; +export const faDice: IconDefinition; +export const faDiceD20: IconDefinition; +export const faDiceD6: IconDefinition; +export const faDiceFive: IconDefinition; +export const faDiceFour: IconDefinition; +export const faDiceOne: IconDefinition; +export const faDiceSix: IconDefinition; +export const faDiceThree: IconDefinition; +export const faDiceTwo: IconDefinition; +export const faDigitalTachograph: IconDefinition; +export const faDirections: IconDefinition; +export const faDisease: IconDefinition; +export const faDivide: IconDefinition; +export const faDizzy: IconDefinition; +export const faDna: IconDefinition; +export const faDog: IconDefinition; +export const faDollarSign: IconDefinition; +export const faDolly: IconDefinition; +export const faDollyFlatbed: IconDefinition; +export const faDonate: IconDefinition; +export const faDoorClosed: IconDefinition; +export const faDoorOpen: IconDefinition; +export const faDotCircle: IconDefinition; +export const faDove: IconDefinition; +export const faDownload: IconDefinition; +export const faDraftingCompass: IconDefinition; +export const faDragon: IconDefinition; +export const faDrawPolygon: IconDefinition; +export const faDrum: IconDefinition; +export const faDrumSteelpan: IconDefinition; +export const faDrumstickBite: IconDefinition; +export const faDumbbell: IconDefinition; +export const faDumpster: IconDefinition; +export const faDumpsterFire: IconDefinition; +export const faDungeon: IconDefinition; +export const faEdit: IconDefinition; +export const faEgg: IconDefinition; +export const faEject: IconDefinition; +export const faEllipsisH: IconDefinition; +export const faEllipsisV: IconDefinition; +export const faEnvelope: IconDefinition; +export const faEnvelopeOpen: IconDefinition; +export const faEnvelopeOpenText: IconDefinition; +export const faEnvelopeSquare: IconDefinition; +export const faEquals: IconDefinition; +export const faEraser: IconDefinition; +export const faEthernet: IconDefinition; +export const faEuroSign: IconDefinition; +export const faExchangeAlt: IconDefinition; +export const faExclamation: IconDefinition; +export const faExclamationCircle: IconDefinition; +export const faExclamationTriangle: IconDefinition; +export const faExpand: IconDefinition; +export const faExpandAlt: IconDefinition; +export const faExpandArrowsAlt: IconDefinition; +export const faExternalLinkAlt: IconDefinition; +export const faExternalLinkSquareAlt: IconDefinition; +export const faEye: IconDefinition; +export const faEyeDropper: IconDefinition; +export const faEyeSlash: IconDefinition; +export const faFan: IconDefinition; +export const faFastBackward: IconDefinition; +export const faFastForward: IconDefinition; +export const faFaucet: IconDefinition; +export const faFax: IconDefinition; +export const faFeather: IconDefinition; +export const faFeatherAlt: IconDefinition; +export const faFemale: IconDefinition; +export const faFighterJet: IconDefinition; +export const faFile: IconDefinition; +export const faFileAlt: IconDefinition; +export const faFileArchive: IconDefinition; +export const faFileAudio: IconDefinition; +export const faFileCode: IconDefinition; +export const faFileContract: IconDefinition; +export const faFileCsv: IconDefinition; +export const faFileDownload: IconDefinition; +export const faFileExcel: IconDefinition; +export const faFileExport: IconDefinition; +export const faFileImage: IconDefinition; +export const faFileImport: IconDefinition; +export const faFileInvoice: IconDefinition; +export const faFileInvoiceDollar: IconDefinition; +export const faFileMedical: IconDefinition; +export const faFileMedicalAlt: IconDefinition; +export const faFilePdf: IconDefinition; +export const faFilePowerpoint: IconDefinition; +export const faFilePrescription: IconDefinition; +export const faFileSignature: IconDefinition; +export const faFileUpload: IconDefinition; +export const faFileVideo: IconDefinition; +export const faFileWord: IconDefinition; +export const faFill: IconDefinition; +export const faFillDrip: IconDefinition; +export const faFilm: IconDefinition; +export const faFilter: IconDefinition; +export const faFingerprint: IconDefinition; +export const faFire: IconDefinition; +export const faFireAlt: IconDefinition; +export const faFireExtinguisher: IconDefinition; +export const faFirstAid: IconDefinition; +export const faFish: IconDefinition; +export const faFistRaised: IconDefinition; +export const faFlag: IconDefinition; +export const faFlagCheckered: IconDefinition; +export const faFlagUsa: IconDefinition; +export const faFlask: IconDefinition; +export const faFlushed: IconDefinition; +export const faFolder: IconDefinition; +export const faFolderMinus: IconDefinition; +export const faFolderOpen: IconDefinition; +export const faFolderPlus: IconDefinition; +export const faFont: IconDefinition; +export const faFontAwesomeLogoFull: IconDefinition; +export const faFootballBall: IconDefinition; +export const faForward: IconDefinition; +export const faFrog: IconDefinition; +export const faFrown: IconDefinition; +export const faFrownOpen: IconDefinition; +export const faFunnelDollar: IconDefinition; +export const faFutbol: IconDefinition; +export const faGamepad: IconDefinition; +export const faGasPump: IconDefinition; +export const faGavel: IconDefinition; +export const faGem: IconDefinition; +export const faGenderless: IconDefinition; +export const faGhost: IconDefinition; +export const faGift: IconDefinition; +export const faGifts: IconDefinition; +export const faGlassCheers: IconDefinition; +export const faGlassMartini: IconDefinition; +export const faGlassMartiniAlt: IconDefinition; +export const faGlassWhiskey: IconDefinition; +export const faGlasses: IconDefinition; +export const faGlobe: IconDefinition; +export const faGlobeAfrica: IconDefinition; +export const faGlobeAmericas: IconDefinition; +export const faGlobeAsia: IconDefinition; +export const faGlobeEurope: IconDefinition; +export const faGolfBall: IconDefinition; +export const faGopuram: IconDefinition; +export const faGraduationCap: IconDefinition; +export const faGreaterThan: IconDefinition; +export const faGreaterThanEqual: IconDefinition; +export const faGrimace: IconDefinition; +export const faGrin: IconDefinition; +export const faGrinAlt: IconDefinition; +export const faGrinBeam: IconDefinition; +export const faGrinBeamSweat: IconDefinition; +export const faGrinHearts: IconDefinition; +export const faGrinSquint: IconDefinition; +export const faGrinSquintTears: IconDefinition; +export const faGrinStars: IconDefinition; +export const faGrinTears: IconDefinition; +export const faGrinTongue: IconDefinition; +export const faGrinTongueSquint: IconDefinition; +export const faGrinTongueWink: IconDefinition; +export const faGrinWink: IconDefinition; +export const faGripHorizontal: IconDefinition; +export const faGripLines: IconDefinition; +export const faGripLinesVertical: IconDefinition; +export const faGripVertical: IconDefinition; +export const faGuitar: IconDefinition; +export const faHSquare: IconDefinition; +export const faHamburger: IconDefinition; +export const faHammer: IconDefinition; +export const faHamsa: IconDefinition; +export const faHandHolding: IconDefinition; +export const faHandHoldingHeart: IconDefinition; +export const faHandHoldingMedical: IconDefinition; +export const faHandHoldingUsd: IconDefinition; +export const faHandHoldingWater: IconDefinition; +export const faHandLizard: IconDefinition; +export const faHandMiddleFinger: IconDefinition; +export const faHandPaper: IconDefinition; +export const faHandPeace: IconDefinition; +export const faHandPointDown: IconDefinition; +export const faHandPointLeft: IconDefinition; +export const faHandPointRight: IconDefinition; +export const faHandPointUp: IconDefinition; +export const faHandPointer: IconDefinition; +export const faHandRock: IconDefinition; +export const faHandScissors: IconDefinition; +export const faHandSparkles: IconDefinition; +export const faHandSpock: IconDefinition; +export const faHands: IconDefinition; +export const faHandsHelping: IconDefinition; +export const faHandsWash: IconDefinition; +export const faHandshake: IconDefinition; +export const faHandshakeAltSlash: IconDefinition; +export const faHandshakeSlash: IconDefinition; +export const faHanukiah: IconDefinition; +export const faHardHat: IconDefinition; +export const faHashtag: IconDefinition; +export const faHatCowboy: IconDefinition; +export const faHatCowboySide: IconDefinition; +export const faHatWizard: IconDefinition; +export const faHdd: IconDefinition; +export const faHeadSideCough: IconDefinition; +export const faHeadSideCoughSlash: IconDefinition; +export const faHeadSideMask: IconDefinition; +export const faHeadSideVirus: IconDefinition; +export const faHeading: IconDefinition; +export const faHeadphones: IconDefinition; +export const faHeadphonesAlt: IconDefinition; +export const faHeadset: IconDefinition; +export const faHeart: IconDefinition; +export const faHeartBroken: IconDefinition; +export const faHeartbeat: IconDefinition; +export const faHelicopter: IconDefinition; +export const faHighlighter: IconDefinition; +export const faHiking: IconDefinition; +export const faHippo: IconDefinition; +export const faHistory: IconDefinition; +export const faHockeyPuck: IconDefinition; +export const faHollyBerry: IconDefinition; +export const faHome: IconDefinition; +export const faHorse: IconDefinition; +export const faHorseHead: IconDefinition; +export const faHospital: IconDefinition; +export const faHospitalAlt: IconDefinition; +export const faHospitalSymbol: IconDefinition; +export const faHospitalUser: IconDefinition; +export const faHotTub: IconDefinition; +export const faHotdog: IconDefinition; +export const faHotel: IconDefinition; +export const faHourglass: IconDefinition; +export const faHourglassEnd: IconDefinition; +export const faHourglassHalf: IconDefinition; +export const faHourglassStart: IconDefinition; +export const faHouseDamage: IconDefinition; +export const faHouseUser: IconDefinition; +export const faHryvnia: IconDefinition; +export const faICursor: IconDefinition; +export const faIceCream: IconDefinition; +export const faIcicles: IconDefinition; +export const faIcons: IconDefinition; +export const faIdBadge: IconDefinition; +export const faIdCard: IconDefinition; +export const faIdCardAlt: IconDefinition; +export const faIgloo: IconDefinition; +export const faImage: IconDefinition; +export const faImages: IconDefinition; +export const faInbox: IconDefinition; +export const faIndent: IconDefinition; +export const faIndustry: IconDefinition; +export const faInfinity: IconDefinition; +export const faInfo: IconDefinition; +export const faInfoCircle: IconDefinition; +export const faItalic: IconDefinition; +export const faJedi: IconDefinition; +export const faJoint: IconDefinition; +export const faJournalWhills: IconDefinition; +export const faKaaba: IconDefinition; +export const faKey: IconDefinition; +export const faKeyboard: IconDefinition; +export const faKhanda: IconDefinition; +export const faKiss: IconDefinition; +export const faKissBeam: IconDefinition; +export const faKissWinkHeart: IconDefinition; +export const faKiwiBird: IconDefinition; +export const faLandmark: IconDefinition; +export const faLanguage: IconDefinition; +export const faLaptop: IconDefinition; +export const faLaptopCode: IconDefinition; +export const faLaptopHouse: IconDefinition; +export const faLaptopMedical: IconDefinition; +export const faLaugh: IconDefinition; +export const faLaughBeam: IconDefinition; +export const faLaughSquint: IconDefinition; +export const faLaughWink: IconDefinition; +export const faLayerGroup: IconDefinition; +export const faLeaf: IconDefinition; +export const faLemon: IconDefinition; +export const faLessThan: IconDefinition; +export const faLessThanEqual: IconDefinition; +export const faLevelDownAlt: IconDefinition; +export const faLevelUpAlt: IconDefinition; +export const faLifeRing: IconDefinition; +export const faLightbulb: IconDefinition; +export const faLink: IconDefinition; +export const faLiraSign: IconDefinition; +export const faList: IconDefinition; +export const faListAlt: IconDefinition; +export const faListOl: IconDefinition; +export const faListUl: IconDefinition; +export const faLocationArrow: IconDefinition; +export const faLock: IconDefinition; +export const faLockOpen: IconDefinition; +export const faLongArrowAltDown: IconDefinition; +export const faLongArrowAltLeft: IconDefinition; +export const faLongArrowAltRight: IconDefinition; +export const faLongArrowAltUp: IconDefinition; +export const faLowVision: IconDefinition; +export const faLuggageCart: IconDefinition; +export const faLungs: IconDefinition; +export const faLungsVirus: IconDefinition; +export const faMagic: IconDefinition; +export const faMagnet: IconDefinition; +export const faMailBulk: IconDefinition; +export const faMale: IconDefinition; +export const faMap: IconDefinition; +export const faMapMarked: IconDefinition; +export const faMapMarkedAlt: IconDefinition; +export const faMapMarker: IconDefinition; +export const faMapMarkerAlt: IconDefinition; +export const faMapPin: IconDefinition; +export const faMapSigns: IconDefinition; +export const faMarker: IconDefinition; +export const faMars: IconDefinition; +export const faMarsDouble: IconDefinition; +export const faMarsStroke: IconDefinition; +export const faMarsStrokeH: IconDefinition; +export const faMarsStrokeV: IconDefinition; +export const faMask: IconDefinition; +export const faMedal: IconDefinition; +export const faMedkit: IconDefinition; +export const faMeh: IconDefinition; +export const faMehBlank: IconDefinition; +export const faMehRollingEyes: IconDefinition; +export const faMemory: IconDefinition; +export const faMenorah: IconDefinition; +export const faMercury: IconDefinition; +export const faMeteor: IconDefinition; +export const faMicrochip: IconDefinition; +export const faMicrophone: IconDefinition; +export const faMicrophoneAlt: IconDefinition; +export const faMicrophoneAltSlash: IconDefinition; +export const faMicrophoneSlash: IconDefinition; +export const faMicroscope: IconDefinition; +export const faMinus: IconDefinition; +export const faMinusCircle: IconDefinition; +export const faMinusSquare: IconDefinition; +export const faMitten: IconDefinition; +export const faMobile: IconDefinition; +export const faMobileAlt: IconDefinition; +export const faMoneyBill: IconDefinition; +export const faMoneyBillAlt: IconDefinition; +export const faMoneyBillWave: IconDefinition; +export const faMoneyBillWaveAlt: IconDefinition; +export const faMoneyCheck: IconDefinition; +export const faMoneyCheckAlt: IconDefinition; +export const faMonument: IconDefinition; +export const faMoon: IconDefinition; +export const faMortarPestle: IconDefinition; +export const faMosque: IconDefinition; +export const faMotorcycle: IconDefinition; +export const faMountain: IconDefinition; +export const faMouse: IconDefinition; +export const faMousePointer: IconDefinition; +export const faMugHot: IconDefinition; +export const faMusic: IconDefinition; +export const faNetworkWired: IconDefinition; +export const faNeuter: IconDefinition; +export const faNewspaper: IconDefinition; +export const faNotEqual: IconDefinition; +export const faNotesMedical: IconDefinition; +export const faObjectGroup: IconDefinition; +export const faObjectUngroup: IconDefinition; +export const faOilCan: IconDefinition; +export const faOm: IconDefinition; +export const faOtter: IconDefinition; +export const faOutdent: IconDefinition; +export const faPager: IconDefinition; +export const faPaintBrush: IconDefinition; +export const faPaintRoller: IconDefinition; +export const faPalette: IconDefinition; +export const faPallet: IconDefinition; +export const faPaperPlane: IconDefinition; +export const faPaperclip: IconDefinition; +export const faParachuteBox: IconDefinition; +export const faParagraph: IconDefinition; +export const faParking: IconDefinition; +export const faPassport: IconDefinition; +export const faPastafarianism: IconDefinition; +export const faPaste: IconDefinition; +export const faPause: IconDefinition; +export const faPauseCircle: IconDefinition; +export const faPaw: IconDefinition; +export const faPeace: IconDefinition; +export const faPen: IconDefinition; +export const faPenAlt: IconDefinition; +export const faPenFancy: IconDefinition; +export const faPenNib: IconDefinition; +export const faPenSquare: IconDefinition; +export const faPencilAlt: IconDefinition; +export const faPencilRuler: IconDefinition; +export const faPeopleArrows: IconDefinition; +export const faPeopleCarry: IconDefinition; +export const faPepperHot: IconDefinition; +export const faPercent: IconDefinition; +export const faPercentage: IconDefinition; +export const faPersonBooth: IconDefinition; +export const faPhone: IconDefinition; +export const faPhoneAlt: IconDefinition; +export const faPhoneSlash: IconDefinition; +export const faPhoneSquare: IconDefinition; +export const faPhoneSquareAlt: IconDefinition; +export const faPhoneVolume: IconDefinition; +export const faPhotoVideo: IconDefinition; +export const faPiggyBank: IconDefinition; +export const faPills: IconDefinition; +export const faPizzaSlice: IconDefinition; +export const faPlaceOfWorship: IconDefinition; +export const faPlane: IconDefinition; +export const faPlaneArrival: IconDefinition; +export const faPlaneDeparture: IconDefinition; +export const faPlaneSlash: IconDefinition; +export const faPlay: IconDefinition; +export const faPlayCircle: IconDefinition; +export const faPlug: IconDefinition; +export const faPlus: IconDefinition; +export const faPlusCircle: IconDefinition; +export const faPlusSquare: IconDefinition; +export const faPodcast: IconDefinition; +export const faPoll: IconDefinition; +export const faPollH: IconDefinition; +export const faPoo: IconDefinition; +export const faPooStorm: IconDefinition; +export const faPoop: IconDefinition; +export const faPortrait: IconDefinition; +export const faPoundSign: IconDefinition; +export const faPowerOff: IconDefinition; +export const faPray: IconDefinition; +export const faPrayingHands: IconDefinition; +export const faPrescription: IconDefinition; +export const faPrescriptionBottle: IconDefinition; +export const faPrescriptionBottleAlt: IconDefinition; +export const faPrint: IconDefinition; +export const faProcedures: IconDefinition; +export const faProjectDiagram: IconDefinition; +export const faPumpMedical: IconDefinition; +export const faPumpSoap: IconDefinition; +export const faPuzzlePiece: IconDefinition; +export const faQrcode: IconDefinition; +export const faQuestion: IconDefinition; +export const faQuestionCircle: IconDefinition; +export const faQuidditch: IconDefinition; +export const faQuoteLeft: IconDefinition; +export const faQuoteRight: IconDefinition; +export const faQuran: IconDefinition; +export const faRadiation: IconDefinition; +export const faRadiationAlt: IconDefinition; +export const faRainbow: IconDefinition; +export const faRandom: IconDefinition; +export const faReceipt: IconDefinition; +export const faRecordVinyl: IconDefinition; +export const faRecycle: IconDefinition; +export const faRedo: IconDefinition; +export const faRedoAlt: IconDefinition; +export const faRegistered: IconDefinition; +export const faRemoveFormat: IconDefinition; +export const faReply: IconDefinition; +export const faReplyAll: IconDefinition; +export const faRepublican: IconDefinition; +export const faRestroom: IconDefinition; +export const faRetweet: IconDefinition; +export const faRibbon: IconDefinition; +export const faRing: IconDefinition; +export const faRoad: IconDefinition; +export const faRobot: IconDefinition; +export const faRocket: IconDefinition; +export const faRoute: IconDefinition; +export const faRss: IconDefinition; +export const faRssSquare: IconDefinition; +export const faRubleSign: IconDefinition; +export const faRuler: IconDefinition; +export const faRulerCombined: IconDefinition; +export const faRulerHorizontal: IconDefinition; +export const faRulerVertical: IconDefinition; +export const faRunning: IconDefinition; +export const faRupeeSign: IconDefinition; +export const faSadCry: IconDefinition; +export const faSadTear: IconDefinition; +export const faSatellite: IconDefinition; +export const faSatelliteDish: IconDefinition; +export const faSave: IconDefinition; +export const faSchool: IconDefinition; +export const faScrewdriver: IconDefinition; +export const faScroll: IconDefinition; +export const faSdCard: IconDefinition; +export const faSearch: IconDefinition; +export const faSearchDollar: IconDefinition; +export const faSearchLocation: IconDefinition; +export const faSearchMinus: IconDefinition; +export const faSearchPlus: IconDefinition; +export const faSeedling: IconDefinition; +export const faServer: IconDefinition; +export const faShapes: IconDefinition; +export const faShare: IconDefinition; +export const faShareAlt: IconDefinition; +export const faShareAltSquare: IconDefinition; +export const faShareSquare: IconDefinition; +export const faShekelSign: IconDefinition; +export const faShieldAlt: IconDefinition; +export const faShieldVirus: IconDefinition; +export const faShip: IconDefinition; +export const faShippingFast: IconDefinition; +export const faShoePrints: IconDefinition; +export const faShoppingBag: IconDefinition; +export const faShoppingBasket: IconDefinition; +export const faShoppingCart: IconDefinition; +export const faShower: IconDefinition; +export const faShuttleVan: IconDefinition; +export const faSign: IconDefinition; +export const faSignInAlt: IconDefinition; +export const faSignLanguage: IconDefinition; +export const faSignOutAlt: IconDefinition; +export const faSignal: IconDefinition; +export const faSignature: IconDefinition; +export const faSimCard: IconDefinition; +export const faSink: IconDefinition; +export const faSitemap: IconDefinition; +export const faSkating: IconDefinition; +export const faSkiing: IconDefinition; +export const faSkiingNordic: IconDefinition; +export const faSkull: IconDefinition; +export const faSkullCrossbones: IconDefinition; +export const faSlash: IconDefinition; +export const faSleigh: IconDefinition; +export const faSlidersH: IconDefinition; +export const faSmile: IconDefinition; +export const faSmileBeam: IconDefinition; +export const faSmileWink: IconDefinition; +export const faSmog: IconDefinition; +export const faSmoking: IconDefinition; +export const faSmokingBan: IconDefinition; +export const faSms: IconDefinition; +export const faSnowboarding: IconDefinition; +export const faSnowflake: IconDefinition; +export const faSnowman: IconDefinition; +export const faSnowplow: IconDefinition; +export const faSoap: IconDefinition; +export const faSocks: IconDefinition; +export const faSolarPanel: IconDefinition; +export const faSort: IconDefinition; +export const faSortAlphaDown: IconDefinition; +export const faSortAlphaDownAlt: IconDefinition; +export const faSortAlphaUp: IconDefinition; +export const faSortAlphaUpAlt: IconDefinition; +export const faSortAmountDown: IconDefinition; +export const faSortAmountDownAlt: IconDefinition; +export const faSortAmountUp: IconDefinition; +export const faSortAmountUpAlt: IconDefinition; +export const faSortDown: IconDefinition; +export const faSortNumericDown: IconDefinition; +export const faSortNumericDownAlt: IconDefinition; +export const faSortNumericUp: IconDefinition; +export const faSortNumericUpAlt: IconDefinition; +export const faSortUp: IconDefinition; +export const faSpa: IconDefinition; +export const faSpaceShuttle: IconDefinition; +export const faSpellCheck: IconDefinition; +export const faSpider: IconDefinition; +export const faSpinner: IconDefinition; +export const faSplotch: IconDefinition; +export const faSprayCan: IconDefinition; +export const faSquare: IconDefinition; +export const faSquareFull: IconDefinition; +export const faSquareRootAlt: IconDefinition; +export const faStamp: IconDefinition; +export const faStar: IconDefinition; +export const faStarAndCrescent: IconDefinition; +export const faStarHalf: IconDefinition; +export const faStarHalfAlt: IconDefinition; +export const faStarOfDavid: IconDefinition; +export const faStarOfLife: IconDefinition; +export const faStepBackward: IconDefinition; +export const faStepForward: IconDefinition; +export const faStethoscope: IconDefinition; +export const faStickyNote: IconDefinition; +export const faStop: IconDefinition; +export const faStopCircle: IconDefinition; +export const faStopwatch: IconDefinition; +export const faStopwatch20: IconDefinition; +export const faStore: IconDefinition; +export const faStoreAlt: IconDefinition; +export const faStoreAltSlash: IconDefinition; +export const faStoreSlash: IconDefinition; +export const faStream: IconDefinition; +export const faStreetView: IconDefinition; +export const faStrikethrough: IconDefinition; +export const faStroopwafel: IconDefinition; +export const faSubscript: IconDefinition; +export const faSubway: IconDefinition; +export const faSuitcase: IconDefinition; +export const faSuitcaseRolling: IconDefinition; +export const faSun: IconDefinition; +export const faSuperscript: IconDefinition; +export const faSurprise: IconDefinition; +export const faSwatchbook: IconDefinition; +export const faSwimmer: IconDefinition; +export const faSwimmingPool: IconDefinition; +export const faSynagogue: IconDefinition; +export const faSync: IconDefinition; +export const faSyncAlt: IconDefinition; +export const faSyringe: IconDefinition; +export const faTable: IconDefinition; +export const faTableTennis: IconDefinition; +export const faTablet: IconDefinition; +export const faTabletAlt: IconDefinition; +export const faTablets: IconDefinition; +export const faTachometerAlt: IconDefinition; +export const faTag: IconDefinition; +export const faTags: IconDefinition; +export const faTape: IconDefinition; +export const faTasks: IconDefinition; +export const faTaxi: IconDefinition; +export const faTeeth: IconDefinition; +export const faTeethOpen: IconDefinition; +export const faTemperatureHigh: IconDefinition; +export const faTemperatureLow: IconDefinition; +export const faTenge: IconDefinition; +export const faTerminal: IconDefinition; +export const faTextHeight: IconDefinition; +export const faTextWidth: IconDefinition; +export const faTh: IconDefinition; +export const faThLarge: IconDefinition; +export const faThList: IconDefinition; +export const faTheaterMasks: IconDefinition; +export const faThermometer: IconDefinition; +export const faThermometerEmpty: IconDefinition; +export const faThermometerFull: IconDefinition; +export const faThermometerHalf: IconDefinition; +export const faThermometerQuarter: IconDefinition; +export const faThermometerThreeQuarters: IconDefinition; +export const faThumbsDown: IconDefinition; +export const faThumbsUp: IconDefinition; +export const faThumbtack: IconDefinition; +export const faTicketAlt: IconDefinition; +export const faTimes: IconDefinition; +export const faTimesCircle: IconDefinition; +export const faTint: IconDefinition; +export const faTintSlash: IconDefinition; +export const faTired: IconDefinition; +export const faToggleOff: IconDefinition; +export const faToggleOn: IconDefinition; +export const faToilet: IconDefinition; +export const faToiletPaper: IconDefinition; +export const faToiletPaperSlash: IconDefinition; +export const faToolbox: IconDefinition; +export const faTools: IconDefinition; +export const faTooth: IconDefinition; +export const faTorah: IconDefinition; +export const faToriiGate: IconDefinition; +export const faTractor: IconDefinition; +export const faTrademark: IconDefinition; +export const faTrafficLight: IconDefinition; +export const faTrailer: IconDefinition; +export const faTrain: IconDefinition; +export const faTram: IconDefinition; +export const faTransgender: IconDefinition; +export const faTransgenderAlt: IconDefinition; +export const faTrash: IconDefinition; +export const faTrashAlt: IconDefinition; +export const faTrashRestore: IconDefinition; +export const faTrashRestoreAlt: IconDefinition; +export const faTree: IconDefinition; +export const faTrophy: IconDefinition; +export const faTruck: IconDefinition; +export const faTruckLoading: IconDefinition; +export const faTruckMonster: IconDefinition; +export const faTruckMoving: IconDefinition; +export const faTruckPickup: IconDefinition; +export const faTshirt: IconDefinition; +export const faTty: IconDefinition; +export const faTv: IconDefinition; +export const faUmbrella: IconDefinition; +export const faUmbrellaBeach: IconDefinition; +export const faUnderline: IconDefinition; +export const faUndo: IconDefinition; +export const faUndoAlt: IconDefinition; +export const faUniversalAccess: IconDefinition; +export const faUniversity: IconDefinition; +export const faUnlink: IconDefinition; +export const faUnlock: IconDefinition; +export const faUnlockAlt: IconDefinition; +export const faUpload: IconDefinition; +export const faUser: IconDefinition; +export const faUserAlt: IconDefinition; +export const faUserAltSlash: IconDefinition; +export const faUserAstronaut: IconDefinition; +export const faUserCheck: IconDefinition; +export const faUserCircle: IconDefinition; +export const faUserClock: IconDefinition; +export const faUserCog: IconDefinition; +export const faUserEdit: IconDefinition; +export const faUserFriends: IconDefinition; +export const faUserGraduate: IconDefinition; +export const faUserInjured: IconDefinition; +export const faUserLock: IconDefinition; +export const faUserMd: IconDefinition; +export const faUserMinus: IconDefinition; +export const faUserNinja: IconDefinition; +export const faUserNurse: IconDefinition; +export const faUserPlus: IconDefinition; +export const faUserSecret: IconDefinition; +export const faUserShield: IconDefinition; +export const faUserSlash: IconDefinition; +export const faUserTag: IconDefinition; +export const faUserTie: IconDefinition; +export const faUserTimes: IconDefinition; +export const faUsers: IconDefinition; +export const faUsersCog: IconDefinition; +export const faUsersSlash: IconDefinition; +export const faUtensilSpoon: IconDefinition; +export const faUtensils: IconDefinition; +export const faVectorSquare: IconDefinition; +export const faVenus: IconDefinition; +export const faVenusDouble: IconDefinition; +export const faVenusMars: IconDefinition; +export const faVest: IconDefinition; +export const faVestPatches: IconDefinition; +export const faVial: IconDefinition; +export const faVials: IconDefinition; +export const faVideo: IconDefinition; +export const faVideoSlash: IconDefinition; +export const faVihara: IconDefinition; +export const faVirus: IconDefinition; +export const faVirusSlash: IconDefinition; +export const faViruses: IconDefinition; +export const faVoicemail: IconDefinition; +export const faVolleyballBall: IconDefinition; +export const faVolumeDown: IconDefinition; +export const faVolumeMute: IconDefinition; +export const faVolumeOff: IconDefinition; +export const faVolumeUp: IconDefinition; +export const faVoteYea: IconDefinition; +export const faVrCardboard: IconDefinition; +export const faWalking: IconDefinition; +export const faWallet: IconDefinition; +export const faWarehouse: IconDefinition; +export const faWater: IconDefinition; +export const faWaveSquare: IconDefinition; +export const faWeight: IconDefinition; +export const faWeightHanging: IconDefinition; +export const faWheelchair: IconDefinition; +export const faWifi: IconDefinition; +export const faWind: IconDefinition; +export const faWindowClose: IconDefinition; +export const faWindowMaximize: IconDefinition; +export const faWindowMinimize: IconDefinition; +export const faWindowRestore: IconDefinition; +export const faWineBottle: IconDefinition; +export const faWineGlass: IconDefinition; +export const faWineGlassAlt: IconDefinition; +export const faWonSign: IconDefinition; +export const faWrench: IconDefinition; +export const faXRay: IconDefinition; +export const faYenSign: IconDefinition; +export const faYinYang: IconDefinition; +import { IconDefinition, IconLookup, IconName, IconPrefix, IconPack } from '@fortawesome/fontawesome-common-types'; +export { IconDefinition, IconLookup, IconName, IconPrefix, IconPack } from '@fortawesome/fontawesome-common-types'; +export const prefix: IconPrefix; +export const fas: IconPack; \ No newline at end of file diff --git a/node_modules/@fortawesome/free-solid-svg-icons/index.es.js b/node_modules/@fortawesome/free-solid-svg-icons/index.es.js new file mode 100644 index 0000000..a18586c --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/index.es.js @@ -0,0 +1,6021 @@ +/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +var prefix = "fas"; +var faAd = { + prefix: 'fas', + iconName: 'ad', + icon: [512, 512, [], "f641", "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"] +}; +var faAddressBook = { + prefix: 'fas', + iconName: 'address-book', + icon: [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"] +}; +var faAddressCard = { + prefix: 'fas', + iconName: 'address-card', + icon: [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"] +}; +var faAdjust = { + prefix: 'fas', + iconName: 'adjust', + icon: [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"] +}; +var faAirFreshener = { + prefix: 'fas', + iconName: 'air-freshener', + icon: [512, 512, [], "f5d0", "M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z"] +}; +var faAlignCenter = { + prefix: 'fas', + iconName: 'align-center', + icon: [448, 512, [], "f037", "M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z"] +}; +var faAlignJustify = { + prefix: 'fas', + iconName: 'align-justify', + icon: [448, 512, [], "f039", "M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faAlignLeft = { + prefix: 'fas', + iconName: 'align-left', + icon: [448, 512, [], "f036", "M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faAlignRight = { + prefix: 'fas', + iconName: 'align-right', + icon: [448, 512, [], "f038", "M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z"] +}; +var faAllergies = { + prefix: 'fas', + iconName: 'allergies', + icon: [448, 512, [], "f461", "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] +}; +var faAmbulance = { + prefix: 'fas', + iconName: 'ambulance', + icon: [640, 512, [], "f0f9", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"] +}; +var faAmericanSignLanguageInterpreting = { + prefix: 'fas', + iconName: 'american-sign-language-interpreting', + icon: [640, 512, [], "f2a3", "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"] +}; +var faAnchor = { + prefix: 'fas', + iconName: 'anchor', + icon: [576, 512, [], "f13d", "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"] +}; +var faAngleDoubleDown = { + prefix: 'fas', + iconName: 'angle-double-down', + icon: [320, 512, [], "f103", "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"] +}; +var faAngleDoubleLeft = { + prefix: 'fas', + iconName: 'angle-double-left', + icon: [448, 512, [], "f100", "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"] +}; +var faAngleDoubleRight = { + prefix: 'fas', + iconName: 'angle-double-right', + icon: [448, 512, [], "f101", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"] +}; +var faAngleDoubleUp = { + prefix: 'fas', + iconName: 'angle-double-up', + icon: [320, 512, [], "f102", "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"] +}; +var faAngleDown = { + prefix: 'fas', + iconName: 'angle-down', + icon: [320, 512, [], "f107", "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"] +}; +var faAngleLeft = { + prefix: 'fas', + iconName: 'angle-left', + icon: [256, 512, [], "f104", "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"] +}; +var faAngleRight = { + prefix: 'fas', + iconName: 'angle-right', + icon: [256, 512, [], "f105", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"] +}; +var faAngleUp = { + prefix: 'fas', + iconName: 'angle-up', + icon: [320, 512, [], "f106", "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"] +}; +var faAngry = { + prefix: 'fas', + iconName: 'angry', + icon: [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"] +}; +var faAnkh = { + prefix: 'fas', + iconName: 'ankh', + icon: [320, 512, [], "f644", "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"] +}; +var faAppleAlt = { + prefix: 'fas', + iconName: 'apple-alt', + icon: [448, 512, [], "f5d1", "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"] +}; +var faArchive = { + prefix: 'fas', + iconName: 'archive', + icon: [512, 512, [], "f187", "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"] +}; +var faArchway = { + prefix: 'fas', + iconName: 'archway', + icon: [576, 512, [], "f557", "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"] +}; +var faArrowAltCircleDown = { + prefix: 'fas', + iconName: 'arrow-alt-circle-down', + icon: [512, 512, [], "f358", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"] +}; +var faArrowAltCircleLeft = { + prefix: 'fas', + iconName: 'arrow-alt-circle-left', + icon: [512, 512, [], "f359", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"] +}; +var faArrowAltCircleRight = { + prefix: 'fas', + iconName: 'arrow-alt-circle-right', + icon: [512, 512, [], "f35a", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"] +}; +var faArrowAltCircleUp = { + prefix: 'fas', + iconName: 'arrow-alt-circle-up', + icon: [512, 512, [], "f35b", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"] +}; +var faArrowCircleDown = { + prefix: 'fas', + iconName: 'arrow-circle-down', + icon: [512, 512, [], "f0ab", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"] +}; +var faArrowCircleLeft = { + prefix: 'fas', + iconName: 'arrow-circle-left', + icon: [512, 512, [], "f0a8", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"] +}; +var faArrowCircleRight = { + prefix: 'fas', + iconName: 'arrow-circle-right', + icon: [512, 512, [], "f0a9", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"] +}; +var faArrowCircleUp = { + prefix: 'fas', + iconName: 'arrow-circle-up', + icon: [512, 512, [], "f0aa", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"] +}; +var faArrowDown = { + prefix: 'fas', + iconName: 'arrow-down', + icon: [448, 512, [], "f063", "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"] +}; +var faArrowLeft = { + prefix: 'fas', + iconName: 'arrow-left', + icon: [448, 512, [], "f060", "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"] +}; +var faArrowRight = { + prefix: 'fas', + iconName: 'arrow-right', + icon: [448, 512, [], "f061", "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"] +}; +var faArrowUp = { + prefix: 'fas', + iconName: 'arrow-up', + icon: [448, 512, [], "f062", "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"] +}; +var faArrowsAlt = { + prefix: 'fas', + iconName: 'arrows-alt', + icon: [512, 512, [], "f0b2", "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"] +}; +var faArrowsAltH = { + prefix: 'fas', + iconName: 'arrows-alt-h', + icon: [512, 512, [], "f337", "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"] +}; +var faArrowsAltV = { + prefix: 'fas', + iconName: 'arrows-alt-v', + icon: [256, 512, [], "f338", "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"] +}; +var faAssistiveListeningSystems = { + prefix: 'fas', + iconName: 'assistive-listening-systems', + icon: [512, 512, [], "f2a2", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"] +}; +var faAsterisk = { + prefix: 'fas', + iconName: 'asterisk', + icon: [512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"] +}; +var faAt = { + prefix: 'fas', + iconName: 'at', + icon: [512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"] +}; +var faAtlas = { + prefix: 'fas', + iconName: 'atlas', + icon: [448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"] +}; +var faAtom = { + prefix: 'fas', + iconName: 'atom', + icon: [448, 512, [], "f5d2", "M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z"] +}; +var faAudioDescription = { + prefix: 'fas', + iconName: 'audio-description', + icon: [512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"] +}; +var faAward = { + prefix: 'fas', + iconName: 'award', + icon: [384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"] +}; +var faBaby = { + prefix: 'fas', + iconName: 'baby', + icon: [384, 512, [], "f77c", "M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"] +}; +var faBabyCarriage = { + prefix: 'fas', + iconName: 'baby-carriage', + icon: [512, 512, [], "f77d", "M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z"] +}; +var faBackspace = { + prefix: 'fas', + iconName: 'backspace', + icon: [640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"] +}; +var faBackward = { + prefix: 'fas', + iconName: 'backward', + icon: [512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"] +}; +var faBacon = { + prefix: 'fas', + iconName: 'bacon', + icon: [576, 512, [], "f7e5", "M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"] +}; +var faBacteria = { + prefix: 'fas', + iconName: 'bacteria', + icon: [640, 512, [], "e059", "M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z"] +}; +var faBacterium = { + prefix: 'fas', + iconName: 'bacterium', + icon: [512, 512, [], "e05a", "M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z"] +}; +var faBahai = { + prefix: 'fas', + iconName: 'bahai', + icon: [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"] +}; +var faBalanceScale = { + prefix: 'fas', + iconName: 'balance-scale', + icon: [640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] +}; +var faBalanceScaleLeft = { + prefix: 'fas', + iconName: 'balance-scale-left', + icon: [640, 512, [], "f515", "M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"] +}; +var faBalanceScaleRight = { + prefix: 'fas', + iconName: 'balance-scale-right', + icon: [640, 512, [], "f516", "M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"] +}; +var faBan = { + prefix: 'fas', + iconName: 'ban', + icon: [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"] +}; +var faBandAid = { + prefix: 'fas', + iconName: 'band-aid', + icon: [640, 512, [], "f462", "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"] +}; +var faBarcode = { + prefix: 'fas', + iconName: 'barcode', + icon: [512, 512, [], "f02a", "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"] +}; +var faBars = { + prefix: 'fas', + iconName: 'bars', + icon: [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"] +}; +var faBaseballBall = { + prefix: 'fas', + iconName: 'baseball-ball', + icon: [496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"] +}; +var faBasketballBall = { + prefix: 'fas', + iconName: 'basketball-ball', + icon: [496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"] +}; +var faBath = { + prefix: 'fas', + iconName: 'bath', + icon: [512, 512, [], "f2cd", "M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z"] +}; +var faBatteryEmpty = { + prefix: 'fas', + iconName: 'battery-empty', + icon: [640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"] +}; +var faBatteryFull = { + prefix: 'fas', + iconName: 'battery-full', + icon: [640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"] +}; +var faBatteryHalf = { + prefix: 'fas', + iconName: 'battery-half', + icon: [640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"] +}; +var faBatteryQuarter = { + prefix: 'fas', + iconName: 'battery-quarter', + icon: [640, 512, [], "f243", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"] +}; +var faBatteryThreeQuarters = { + prefix: 'fas', + iconName: 'battery-three-quarters', + icon: [640, 512, [], "f241", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"] +}; +var faBed = { + prefix: 'fas', + iconName: 'bed', + icon: [640, 512, [], "f236", "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"] +}; +var faBeer = { + prefix: 'fas', + iconName: 'beer', + icon: [448, 512, [], "f0fc", "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"] +}; +var faBell = { + prefix: 'fas', + iconName: 'bell', + icon: [448, 512, [], "f0f3", "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"] +}; +var faBellSlash = { + prefix: 'fas', + iconName: 'bell-slash', + icon: [640, 512, [], "f1f6", "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"] +}; +var faBezierCurve = { + prefix: 'fas', + iconName: 'bezier-curve', + icon: [640, 512, [], "f55b", "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"] +}; +var faBible = { + prefix: 'fas', + iconName: 'bible', + icon: [448, 512, [], "f647", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"] +}; +var faBicycle = { + prefix: 'fas', + iconName: 'bicycle', + icon: [640, 512, [], "f206", "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"] +}; +var faBiking = { + prefix: 'fas', + iconName: 'biking', + icon: [640, 512, [], "f84a", "M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z"] +}; +var faBinoculars = { + prefix: 'fas', + iconName: 'binoculars', + icon: [512, 512, [], "f1e5", "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"] +}; +var faBiohazard = { + prefix: 'fas', + iconName: 'biohazard', + icon: [576, 512, [], "f780", "M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"] +}; +var faBirthdayCake = { + prefix: 'fas', + iconName: 'birthday-cake', + icon: [448, 512, [], "f1fd", "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"] +}; +var faBlender = { + prefix: 'fas', + iconName: 'blender', + icon: [512, 512, [], "f517", "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"] +}; +var faBlenderPhone = { + prefix: 'fas', + iconName: 'blender-phone', + icon: [576, 512, [], "f6b6", "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faBlind = { + prefix: 'fas', + iconName: 'blind', + icon: [384, 512, [], "f29d", "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"] +}; +var faBlog = { + prefix: 'fas', + iconName: 'blog', + icon: [512, 512, [], "f781", "M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"] +}; +var faBold = { + prefix: 'fas', + iconName: 'bold', + icon: [384, 512, [], "f032", "M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"] +}; +var faBolt = { + prefix: 'fas', + iconName: 'bolt', + icon: [320, 512, [], "f0e7", "M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"] +}; +var faBomb = { + prefix: 'fas', + iconName: 'bomb', + icon: [512, 512, [], "f1e2", "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"] +}; +var faBone = { + prefix: 'fas', + iconName: 'bone', + icon: [640, 512, [], "f5d7", "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"] +}; +var faBong = { + prefix: 'fas', + iconName: 'bong', + icon: [448, 512, [], "f55c", "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"] +}; +var faBook = { + prefix: 'fas', + iconName: 'book', + icon: [448, 512, [], "f02d", "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"] +}; +var faBookDead = { + prefix: 'fas', + iconName: 'book-dead', + icon: [448, 512, [], "f6b7", "M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"] +}; +var faBookMedical = { + prefix: 'fas', + iconName: 'book-medical', + icon: [448, 512, [], "f7e6", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z"] +}; +var faBookOpen = { + prefix: 'fas', + iconName: 'book-open', + icon: [576, 512, [], "f518", "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"] +}; +var faBookReader = { + prefix: 'fas', + iconName: 'book-reader', + icon: [512, 512, [], "f5da", "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"] +}; +var faBookmark = { + prefix: 'fas', + iconName: 'bookmark', + icon: [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"] +}; +var faBorderAll = { + prefix: 'fas', + iconName: 'border-all', + icon: [448, 512, [], "f84c", "M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z"] +}; +var faBorderNone = { + prefix: 'fas', + iconName: 'border-none', + icon: [448, 512, [], "f850", "M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faBorderStyle = { + prefix: 'fas', + iconName: 'border-style', + icon: [448, 512, [], "f853", "M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faBowlingBall = { + prefix: 'fas', + iconName: 'bowling-ball', + icon: [496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faBox = { + prefix: 'fas', + iconName: 'box', + icon: [512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"] +}; +var faBoxOpen = { + prefix: 'fas', + iconName: 'box-open', + icon: [640, 512, [], "f49e", "M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"] +}; +var faBoxTissue = { + prefix: 'fas', + iconName: 'box-tissue', + icon: [512, 512, [], "e05b", "M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z"] +}; +var faBoxes = { + prefix: 'fas', + iconName: 'boxes', + icon: [576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"] +}; +var faBraille = { + prefix: 'fas', + iconName: 'braille', + icon: [640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"] +}; +var faBrain = { + prefix: 'fas', + iconName: 'brain', + icon: [576, 512, [], "f5dc", "M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"] +}; +var faBreadSlice = { + prefix: 'fas', + iconName: 'bread-slice', + icon: [576, 512, [], "f7ec", "M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z"] +}; +var faBriefcase = { + prefix: 'fas', + iconName: 'briefcase', + icon: [512, 512, [], "f0b1", "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"] +}; +var faBriefcaseMedical = { + prefix: 'fas', + iconName: 'briefcase-medical', + icon: [512, 512, [], "f469", "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"] +}; +var faBroadcastTower = { + prefix: 'fas', + iconName: 'broadcast-tower', + icon: [640, 512, [], "f519", "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"] +}; +var faBroom = { + prefix: 'fas', + iconName: 'broom', + icon: [640, 512, [], "f51a", "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"] +}; +var faBrush = { + prefix: 'fas', + iconName: 'brush', + icon: [384, 512, [], "f55d", "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"] +}; +var faBug = { + prefix: 'fas', + iconName: 'bug', + icon: [512, 512, [], "f188", "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"] +}; +var faBuilding = { + prefix: 'fas', + iconName: 'building', + icon: [448, 512, [], "f1ad", "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"] +}; +var faBullhorn = { + prefix: 'fas', + iconName: 'bullhorn', + icon: [576, 512, [], "f0a1", "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"] +}; +var faBullseye = { + prefix: 'fas', + iconName: 'bullseye', + icon: [496, 512, [], "f140", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"] +}; +var faBurn = { + prefix: 'fas', + iconName: 'burn', + icon: [384, 512, [], "f46a", "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"] +}; +var faBus = { + prefix: 'fas', + iconName: 'bus', + icon: [512, 512, [], "f207", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faBusAlt = { + prefix: 'fas', + iconName: 'bus-alt', + icon: [512, 512, [], "f55e", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faBusinessTime = { + prefix: 'fas', + iconName: 'business-time', + icon: [640, 512, [], "f64a", "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"] +}; +var faCalculator = { + prefix: 'fas', + iconName: 'calculator', + icon: [448, 512, [], "f1ec", "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"] +}; +var faCalendar = { + prefix: 'fas', + iconName: 'calendar', + icon: [448, 512, [], "f133", "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"] +}; +var faCalendarAlt = { + prefix: 'fas', + iconName: 'calendar-alt', + icon: [448, 512, [], "f073", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"] +}; +var faCalendarCheck = { + prefix: 'fas', + iconName: 'calendar-check', + icon: [448, 512, [], "f274", "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"] +}; +var faCalendarDay = { + prefix: 'fas', + iconName: 'calendar-day', + icon: [448, 512, [], "f783", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"] +}; +var faCalendarMinus = { + prefix: 'fas', + iconName: 'calendar-minus', + icon: [448, 512, [], "f272", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"] +}; +var faCalendarPlus = { + prefix: 'fas', + iconName: 'calendar-plus', + icon: [448, 512, [], "f271", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"] +}; +var faCalendarTimes = { + prefix: 'fas', + iconName: 'calendar-times', + icon: [448, 512, [], "f273", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"] +}; +var faCalendarWeek = { + prefix: 'fas', + iconName: 'calendar-week', + icon: [448, 512, [], "f784", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"] +}; +var faCamera = { + prefix: 'fas', + iconName: 'camera', + icon: [512, 512, [], "f030", "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"] +}; +var faCameraRetro = { + prefix: 'fas', + iconName: 'camera-retro', + icon: [512, 512, [], "f083", "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"] +}; +var faCampground = { + prefix: 'fas', + iconName: 'campground', + icon: [640, 512, [], "f6bb", "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"] +}; +var faCandyCane = { + prefix: 'fas', + iconName: 'candy-cane', + icon: [512, 512, [], "f786", "M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z"] +}; +var faCannabis = { + prefix: 'fas', + iconName: 'cannabis', + icon: [512, 512, [], "f55f", "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"] +}; +var faCapsules = { + prefix: 'fas', + iconName: 'capsules', + icon: [576, 512, [], "f46b", "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"] +}; +var faCar = { + prefix: 'fas', + iconName: 'car', + icon: [512, 512, [], "f1b9", "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"] +}; +var faCarAlt = { + prefix: 'fas', + iconName: 'car-alt', + icon: [480, 512, [], "f5de", "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"] +}; +var faCarBattery = { + prefix: 'fas', + iconName: 'car-battery', + icon: [512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"] +}; +var faCarCrash = { + prefix: 'fas', + iconName: 'car-crash', + icon: [640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"] +}; +var faCarSide = { + prefix: 'fas', + iconName: 'car-side', + icon: [640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"] +}; +var faCaravan = { + prefix: 'fas', + iconName: 'caravan', + icon: [640, 512, [], "f8ff", "M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z"] +}; +var faCaretDown = { + prefix: 'fas', + iconName: 'caret-down', + icon: [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"] +}; +var faCaretLeft = { + prefix: 'fas', + iconName: 'caret-left', + icon: [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"] +}; +var faCaretRight = { + prefix: 'fas', + iconName: 'caret-right', + icon: [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"] +}; +var faCaretSquareDown = { + prefix: 'fas', + iconName: 'caret-square-down', + icon: [448, 512, [], "f150", "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"] +}; +var faCaretSquareLeft = { + prefix: 'fas', + iconName: 'caret-square-left', + icon: [448, 512, [], "f191", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"] +}; +var faCaretSquareRight = { + prefix: 'fas', + iconName: 'caret-square-right', + icon: [448, 512, [], "f152", "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"] +}; +var faCaretSquareUp = { + prefix: 'fas', + iconName: 'caret-square-up', + icon: [448, 512, [], "f151", "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"] +}; +var faCaretUp = { + prefix: 'fas', + iconName: 'caret-up', + icon: [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"] +}; +var faCarrot = { + prefix: 'fas', + iconName: 'carrot', + icon: [512, 512, [], "f787", "M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z"] +}; +var faCartArrowDown = { + prefix: 'fas', + iconName: 'cart-arrow-down', + icon: [576, 512, [], "f218", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"] +}; +var faCartPlus = { + prefix: 'fas', + iconName: 'cart-plus', + icon: [576, 512, [], "f217", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"] +}; +var faCashRegister = { + prefix: 'fas', + iconName: 'cash-register', + icon: [512, 512, [], "f788", "M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z"] +}; +var faCat = { + prefix: 'fas', + iconName: 'cat', + icon: [512, 512, [], "f6be", "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"] +}; +var faCertificate = { + prefix: 'fas', + iconName: 'certificate', + icon: [512, 512, [], "f0a3", "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"] +}; +var faChair = { + prefix: 'fas', + iconName: 'chair', + icon: [448, 512, [], "f6c0", "M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z"] +}; +var faChalkboard = { + prefix: 'fas', + iconName: 'chalkboard', + icon: [640, 512, [], "f51b", "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] +}; +var faChalkboardTeacher = { + prefix: 'fas', + iconName: 'chalkboard-teacher', + icon: [640, 512, [], "f51c", "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"] +}; +var faChargingStation = { + prefix: 'fas', + iconName: 'charging-station', + icon: [576, 512, [], "f5e7", "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"] +}; +var faChartArea = { + prefix: 'fas', + iconName: 'chart-area', + icon: [512, 512, [], "f1fe", "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"] +}; +var faChartBar = { + prefix: 'fas', + iconName: 'chart-bar', + icon: [512, 512, [], "f080", "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] +}; +var faChartLine = { + prefix: 'fas', + iconName: 'chart-line', + icon: [512, 512, [], "f201", "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"] +}; +var faChartPie = { + prefix: 'fas', + iconName: 'chart-pie', + icon: [544, 512, [], "f200", "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"] +}; +var faCheck = { + prefix: 'fas', + iconName: 'check', + icon: [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"] +}; +var faCheckCircle = { + prefix: 'fas', + iconName: 'check-circle', + icon: [512, 512, [], "f058", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"] +}; +var faCheckDouble = { + prefix: 'fas', + iconName: 'check-double', + icon: [512, 512, [], "f560", "M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z"] +}; +var faCheckSquare = { + prefix: 'fas', + iconName: 'check-square', + icon: [448, 512, [], "f14a", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"] +}; +var faCheese = { + prefix: 'fas', + iconName: 'cheese', + icon: [512, 512, [], "f7ef", "M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z"] +}; +var faChess = { + prefix: 'fas', + iconName: 'chess', + icon: [512, 512, [], "f439", "M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z"] +}; +var faChessBishop = { + prefix: 'fas', + iconName: 'chess-bishop', + icon: [320, 512, [], "f43a", "M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faChessBoard = { + prefix: 'fas', + iconName: 'chess-board', + icon: [512, 512, [], "f43c", "M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z"] +}; +var faChessKing = { + prefix: 'fas', + iconName: 'chess-king', + icon: [448, 512, [], "f43f", "M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z"] +}; +var faChessKnight = { + prefix: 'fas', + iconName: 'chess-knight', + icon: [384, 512, [], "f441", "M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faChessPawn = { + prefix: 'fas', + iconName: 'chess-pawn', + icon: [320, 512, [], "f443", "M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faChessQueen = { + prefix: 'fas', + iconName: 'chess-queen', + icon: [512, 512, [], "f445", "M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z"] +}; +var faChessRook = { + prefix: 'fas', + iconName: 'chess-rook', + icon: [384, 512, [], "f447", "M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faChevronCircleDown = { + prefix: 'fas', + iconName: 'chevron-circle-down', + icon: [512, 512, [], "f13a", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"] +}; +var faChevronCircleLeft = { + prefix: 'fas', + iconName: 'chevron-circle-left', + icon: [512, 512, [], "f137", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"] +}; +var faChevronCircleRight = { + prefix: 'fas', + iconName: 'chevron-circle-right', + icon: [512, 512, [], "f138", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"] +}; +var faChevronCircleUp = { + prefix: 'fas', + iconName: 'chevron-circle-up', + icon: [512, 512, [], "f139", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"] +}; +var faChevronDown = { + prefix: 'fas', + iconName: 'chevron-down', + icon: [448, 512, [], "f078", "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"] +}; +var faChevronLeft = { + prefix: 'fas', + iconName: 'chevron-left', + icon: [320, 512, [], "f053", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"] +}; +var faChevronRight = { + prefix: 'fas', + iconName: 'chevron-right', + icon: [320, 512, [], "f054", "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"] +}; +var faChevronUp = { + prefix: 'fas', + iconName: 'chevron-up', + icon: [448, 512, [], "f077", "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"] +}; +var faChild = { + prefix: 'fas', + iconName: 'child', + icon: [384, 512, [], "f1ae", "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"] +}; +var faChurch = { + prefix: 'fas', + iconName: 'church', + icon: [640, 512, [], "f51d", "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"] +}; +var faCircle = { + prefix: 'fas', + iconName: 'circle', + icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"] +}; +var faCircleNotch = { + prefix: 'fas', + iconName: 'circle-notch', + icon: [512, 512, [], "f1ce", "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"] +}; +var faCity = { + prefix: 'fas', + iconName: 'city', + icon: [640, 512, [], "f64f", "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"] +}; +var faClinicMedical = { + prefix: 'fas', + iconName: 'clinic-medical', + icon: [576, 512, [], "f7f2", "M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z"] +}; +var faClipboard = { + prefix: 'fas', + iconName: 'clipboard', + icon: [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"] +}; +var faClipboardCheck = { + prefix: 'fas', + iconName: 'clipboard-check', + icon: [384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"] +}; +var faClipboardList = { + prefix: 'fas', + iconName: 'clipboard-list', + icon: [384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"] +}; +var faClock = { + prefix: 'fas', + iconName: 'clock', + icon: [512, 512, [], "f017", "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"] +}; +var faClone = { + prefix: 'fas', + iconName: 'clone', + icon: [512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"] +}; +var faClosedCaptioning = { + prefix: 'fas', + iconName: 'closed-captioning', + icon: [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"] +}; +var faCloud = { + prefix: 'fas', + iconName: 'cloud', + icon: [640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"] +}; +var faCloudDownloadAlt = { + prefix: 'fas', + iconName: 'cloud-download-alt', + icon: [640, 512, [], "f381", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"] +}; +var faCloudMeatball = { + prefix: 'fas', + iconName: 'cloud-meatball', + icon: [512, 512, [], "f73b", "M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z"] +}; +var faCloudMoon = { + prefix: 'fas', + iconName: 'cloud-moon', + icon: [576, 512, [], "f6c3", "M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z"] +}; +var faCloudMoonRain = { + prefix: 'fas', + iconName: 'cloud-moon-rain', + icon: [576, 512, [], "f73c", "M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"] +}; +var faCloudRain = { + prefix: 'fas', + iconName: 'cloud-rain', + icon: [512, 512, [], "f73d", "M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z"] +}; +var faCloudShowersHeavy = { + prefix: 'fas', + iconName: 'cloud-showers-heavy', + icon: [512, 512, [], "f740", "M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z"] +}; +var faCloudSun = { + prefix: 'fas', + iconName: 'cloud-sun', + icon: [640, 512, [], "f6c4", "M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z"] +}; +var faCloudSunRain = { + prefix: 'fas', + iconName: 'cloud-sun-rain', + icon: [576, 512, [], "f743", "M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"] +}; +var faCloudUploadAlt = { + prefix: 'fas', + iconName: 'cloud-upload-alt', + icon: [640, 512, [], "f382", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"] +}; +var faCocktail = { + prefix: 'fas', + iconName: 'cocktail', + icon: [576, 512, [], "f561", "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"] +}; +var faCode = { + prefix: 'fas', + iconName: 'code', + icon: [640, 512, [], "f121", "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"] +}; +var faCodeBranch = { + prefix: 'fas', + iconName: 'code-branch', + icon: [384, 512, [], "f126", "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"] +}; +var faCoffee = { + prefix: 'fas', + iconName: 'coffee', + icon: [640, 512, [], "f0f4", "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"] +}; +var faCog = { + prefix: 'fas', + iconName: 'cog', + icon: [512, 512, [], "f013", "M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faCogs = { + prefix: 'fas', + iconName: 'cogs', + icon: [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"] +}; +var faCoins = { + prefix: 'fas', + iconName: 'coins', + icon: [512, 512, [], "f51e", "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"] +}; +var faColumns = { + prefix: 'fas', + iconName: 'columns', + icon: [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"] +}; +var faComment = { + prefix: 'fas', + iconName: 'comment', + icon: [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"] +}; +var faCommentAlt = { + prefix: 'fas', + iconName: 'comment-alt', + icon: [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"] +}; +var faCommentDollar = { + prefix: 'fas', + iconName: 'comment-dollar', + icon: [512, 512, [], "f651", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"] +}; +var faCommentDots = { + prefix: 'fas', + iconName: 'comment-dots', + icon: [512, 512, [], "f4ad", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faCommentMedical = { + prefix: 'fas', + iconName: 'comment-medical', + icon: [512, 512, [], "f7f5", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z"] +}; +var faCommentSlash = { + prefix: 'fas', + iconName: 'comment-slash', + icon: [640, 512, [], "f4b3", "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"] +}; +var faComments = { + prefix: 'fas', + iconName: 'comments', + icon: [576, 512, [], "f086", "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"] +}; +var faCommentsDollar = { + prefix: 'fas', + iconName: 'comments-dollar', + icon: [576, 512, [], "f653", "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"] +}; +var faCompactDisc = { + prefix: 'fas', + iconName: 'compact-disc', + icon: [496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"] +}; +var faCompass = { + prefix: 'fas', + iconName: 'compass', + icon: [496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"] +}; +var faCompress = { + prefix: 'fas', + iconName: 'compress', + icon: [448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"] +}; +var faCompressAlt = { + prefix: 'fas', + iconName: 'compress-alt', + icon: [448, 512, [], "f422", "M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z"] +}; +var faCompressArrowsAlt = { + prefix: 'fas', + iconName: 'compress-arrows-alt', + icon: [512, 512, [], "f78c", "M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"] +}; +var faConciergeBell = { + prefix: 'fas', + iconName: 'concierge-bell', + icon: [512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] +}; +var faCookie = { + prefix: 'fas', + iconName: 'cookie', + icon: [512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faCookieBite = { + prefix: 'fas', + iconName: 'cookie-bite', + icon: [512, 512, [], "f564", "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faCopy = { + prefix: 'fas', + iconName: 'copy', + icon: [448, 512, [], "f0c5", "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"] +}; +var faCopyright = { + prefix: 'fas', + iconName: 'copyright', + icon: [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"] +}; +var faCouch = { + prefix: 'fas', + iconName: 'couch', + icon: [640, 512, [], "f4b8", "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"] +}; +var faCreditCard = { + prefix: 'fas', + iconName: 'credit-card', + icon: [576, 512, [], "f09d", "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"] +}; +var faCrop = { + prefix: 'fas', + iconName: 'crop', + icon: [512, 512, [], "f125", "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"] +}; +var faCropAlt = { + prefix: 'fas', + iconName: 'crop-alt', + icon: [512, 512, [], "f565", "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"] +}; +var faCross = { + prefix: 'fas', + iconName: 'cross', + icon: [384, 512, [], "f654", "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"] +}; +var faCrosshairs = { + prefix: 'fas', + iconName: 'crosshairs', + icon: [512, 512, [], "f05b", "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"] +}; +var faCrow = { + prefix: 'fas', + iconName: 'crow', + icon: [640, 512, [], "f520", "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] +}; +var faCrown = { + prefix: 'fas', + iconName: 'crown', + icon: [640, 512, [], "f521", "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"] +}; +var faCrutch = { + prefix: 'fas', + iconName: 'crutch', + icon: [512, 512, [], "f7f7", "M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z"] +}; +var faCube = { + prefix: 'fas', + iconName: 'cube', + icon: [512, 512, [], "f1b2", "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"] +}; +var faCubes = { + prefix: 'fas', + iconName: 'cubes', + icon: [512, 512, [], "f1b3", "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"] +}; +var faCut = { + prefix: 'fas', + iconName: 'cut', + icon: [448, 512, [], "f0c4", "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"] +}; +var faDatabase = { + prefix: 'fas', + iconName: 'database', + icon: [448, 512, [], "f1c0", "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"] +}; +var faDeaf = { + prefix: 'fas', + iconName: 'deaf', + icon: [512, 512, [], "f2a4", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"] +}; +var faDemocrat = { + prefix: 'fas', + iconName: 'democrat', + icon: [640, 512, [], "f747", "M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z"] +}; +var faDesktop = { + prefix: 'fas', + iconName: 'desktop', + icon: [576, 512, [], "f108", "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"] +}; +var faDharmachakra = { + prefix: 'fas', + iconName: 'dharmachakra', + icon: [512, 512, [], "f655", "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"] +}; +var faDiagnoses = { + prefix: 'fas', + iconName: 'diagnoses', + icon: [640, 512, [], "f470", "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] +}; +var faDice = { + prefix: 'fas', + iconName: 'dice', + icon: [640, 512, [], "f522", "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] +}; +var faDiceD20 = { + prefix: 'fas', + iconName: 'dice-d20', + icon: [480, 512, [], "f6cf", "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"] +}; +var faDiceD6 = { + prefix: 'fas', + iconName: 'dice-d6', + icon: [448, 512, [], "f6d1", "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"] +}; +var faDiceFive = { + prefix: 'fas', + iconName: 'dice-five', + icon: [448, 512, [], "f523", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faDiceFour = { + prefix: 'fas', + iconName: 'dice-four', + icon: [448, 512, [], "f524", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faDiceOne = { + prefix: 'fas', + iconName: 'dice-one', + icon: [448, 512, [], "f525", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faDiceSix = { + prefix: 'fas', + iconName: 'dice-six', + icon: [448, 512, [], "f526", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faDiceThree = { + prefix: 'fas', + iconName: 'dice-three', + icon: [448, 512, [], "f527", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faDiceTwo = { + prefix: 'fas', + iconName: 'dice-two', + icon: [448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faDigitalTachograph = { + prefix: 'fas', + iconName: 'digital-tachograph', + icon: [640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"] +}; +var faDirections = { + prefix: 'fas', + iconName: 'directions', + icon: [512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"] +}; +var faDisease = { + prefix: 'fas', + iconName: 'disease', + icon: [512, 512, [], "f7fa", "M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"] +}; +var faDivide = { + prefix: 'fas', + iconName: 'divide', + icon: [448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] +}; +var faDizzy = { + prefix: 'fas', + iconName: 'dizzy', + icon: [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"] +}; +var faDna = { + prefix: 'fas', + iconName: 'dna', + icon: [448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"] +}; +var faDog = { + prefix: 'fas', + iconName: 'dog', + icon: [576, 512, [], "f6d3", "M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z"] +}; +var faDollarSign = { + prefix: 'fas', + iconName: 'dollar-sign', + icon: [288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"] +}; +var faDolly = { + prefix: 'fas', + iconName: 'dolly', + icon: [576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"] +}; +var faDollyFlatbed = { + prefix: 'fas', + iconName: 'dolly-flatbed', + icon: [640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] +}; +var faDonate = { + prefix: 'fas', + iconName: 'donate', + icon: [512, 512, [], "f4b9", "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"] +}; +var faDoorClosed = { + prefix: 'fas', + iconName: 'door-closed', + icon: [640, 512, [], "f52a", "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"] +}; +var faDoorOpen = { + prefix: 'fas', + iconName: 'door-open', + icon: [640, 512, [], "f52b", "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"] +}; +var faDotCircle = { + prefix: 'fas', + iconName: 'dot-circle', + icon: [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"] +}; +var faDove = { + prefix: 'fas', + iconName: 'dove', + icon: [512, 512, [], "f4ba", "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] +}; +var faDownload = { + prefix: 'fas', + iconName: 'download', + icon: [512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"] +}; +var faDraftingCompass = { + prefix: 'fas', + iconName: 'drafting-compass', + icon: [512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"] +}; +var faDragon = { + prefix: 'fas', + iconName: 'dragon', + icon: [640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"] +}; +var faDrawPolygon = { + prefix: 'fas', + iconName: 'draw-polygon', + icon: [448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"] +}; +var faDrum = { + prefix: 'fas', + iconName: 'drum', + icon: [512, 512, [], "f569", "M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"] +}; +var faDrumSteelpan = { + prefix: 'fas', + iconName: 'drum-steelpan', + icon: [576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"] +}; +var faDrumstickBite = { + prefix: 'fas', + iconName: 'drumstick-bite', + icon: [512, 512, [], "f6d7", "M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"] +}; +var faDumbbell = { + prefix: 'fas', + iconName: 'dumbbell', + icon: [640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"] +}; +var faDumpster = { + prefix: 'fas', + iconName: 'dumpster', + icon: [576, 512, [], "f793", "M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] +}; +var faDumpsterFire = { + prefix: 'fas', + iconName: 'dumpster-fire', + icon: [640, 512, [], "f794", "M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z"] +}; +var faDungeon = { + prefix: 'fas', + iconName: 'dungeon', + icon: [512, 512, [], "f6d9", "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"] +}; +var faEdit = { + prefix: 'fas', + iconName: 'edit', + icon: [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"] +}; +var faEgg = { + prefix: 'fas', + iconName: 'egg', + icon: [384, 512, [], "f7fb", "M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z"] +}; +var faEject = { + prefix: 'fas', + iconName: 'eject', + icon: [448, 512, [], "f052", "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"] +}; +var faEllipsisH = { + prefix: 'fas', + iconName: 'ellipsis-h', + icon: [512, 512, [], "f141", "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"] +}; +var faEllipsisV = { + prefix: 'fas', + iconName: 'ellipsis-v', + icon: [192, 512, [], "f142", "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"] +}; +var faEnvelope = { + prefix: 'fas', + iconName: 'envelope', + icon: [512, 512, [], "f0e0", "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"] +}; +var faEnvelopeOpen = { + prefix: 'fas', + iconName: 'envelope-open', + icon: [512, 512, [], "f2b6", "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"] +}; +var faEnvelopeOpenText = { + prefix: 'fas', + iconName: 'envelope-open-text', + icon: [512, 512, [], "f658", "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"] +}; +var faEnvelopeSquare = { + prefix: 'fas', + iconName: 'envelope-square', + icon: [448, 512, [], "f199", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"] +}; +var faEquals = { + prefix: 'fas', + iconName: 'equals', + icon: [448, 512, [], "f52c", "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] +}; +var faEraser = { + prefix: 'fas', + iconName: 'eraser', + icon: [512, 512, [], "f12d", "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"] +}; +var faEthernet = { + prefix: 'fas', + iconName: 'ethernet', + icon: [512, 512, [], "f796", "M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z"] +}; +var faEuroSign = { + prefix: 'fas', + iconName: 'euro-sign', + icon: [320, 512, [], "f153", "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"] +}; +var faExchangeAlt = { + prefix: 'fas', + iconName: 'exchange-alt', + icon: [512, 512, [], "f362", "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"] +}; +var faExclamation = { + prefix: 'fas', + iconName: 'exclamation', + icon: [192, 512, [], "f12a", "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"] +}; +var faExclamationCircle = { + prefix: 'fas', + iconName: 'exclamation-circle', + icon: [512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"] +}; +var faExclamationTriangle = { + prefix: 'fas', + iconName: 'exclamation-triangle', + icon: [576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"] +}; +var faExpand = { + prefix: 'fas', + iconName: 'expand', + icon: [448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"] +}; +var faExpandAlt = { + prefix: 'fas', + iconName: 'expand-alt', + icon: [448, 512, [], "f424", "M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z"] +}; +var faExpandArrowsAlt = { + prefix: 'fas', + iconName: 'expand-arrows-alt', + icon: [448, 512, [], "f31e", "M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"] +}; +var faExternalLinkAlt = { + prefix: 'fas', + iconName: 'external-link-alt', + icon: [512, 512, [], "f35d", "M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"] +}; +var faExternalLinkSquareAlt = { + prefix: 'fas', + iconName: 'external-link-square-alt', + icon: [448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"] +}; +var faEye = { + prefix: 'fas', + iconName: 'eye', + icon: [576, 512, [], "f06e", "M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"] +}; +var faEyeDropper = { + prefix: 'fas', + iconName: 'eye-dropper', + icon: [512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"] +}; +var faEyeSlash = { + prefix: 'fas', + iconName: 'eye-slash', + icon: [640, 512, [], "f070", "M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"] +}; +var faFan = { + prefix: 'fas', + iconName: 'fan', + icon: [512, 512, [], "f863", "M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"] +}; +var faFastBackward = { + prefix: 'fas', + iconName: 'fast-backward', + icon: [512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"] +}; +var faFastForward = { + prefix: 'fas', + iconName: 'fast-forward', + icon: [512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"] +}; +var faFaucet = { + prefix: 'fas', + iconName: 'faucet', + icon: [512, 512, [], "e005", "M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z"] +}; +var faFax = { + prefix: 'fas', + iconName: 'fax', + icon: [512, 512, [], "f1ac", "M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"] +}; +var faFeather = { + prefix: 'fas', + iconName: 'feather', + icon: [512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"] +}; +var faFeatherAlt = { + prefix: 'fas', + iconName: 'feather-alt', + icon: [512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"] +}; +var faFemale = { + prefix: 'fas', + iconName: 'female', + icon: [256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"] +}; +var faFighterJet = { + prefix: 'fas', + iconName: 'fighter-jet', + icon: [640, 512, [], "f0fb", "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"] +}; +var faFile = { + prefix: 'fas', + iconName: 'file', + icon: [384, 512, [], "f15b", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] +}; +var faFileAlt = { + prefix: 'fas', + iconName: 'file-alt', + icon: [384, 512, [], "f15c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] +}; +var faFileArchive = { + prefix: 'fas', + iconName: 'file-archive', + icon: [384, 512, [], "f1c6", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"] +}; +var faFileAudio = { + prefix: 'fas', + iconName: 'file-audio', + icon: [384, 512, [], "f1c7", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] +}; +var faFileCode = { + prefix: 'fas', + iconName: 'file-code', + icon: [384, 512, [], "f1c9", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"] +}; +var faFileContract = { + prefix: 'fas', + iconName: 'file-contract', + icon: [384, 512, [], "f56c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] +}; +var faFileCsv = { + prefix: 'fas', + iconName: 'file-csv', + icon: [384, 512, [], "f6dd", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] +}; +var faFileDownload = { + prefix: 'fas', + iconName: 'file-download', + icon: [384, 512, [], "f56d", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] +}; +var faFileExcel = { + prefix: 'fas', + iconName: 'file-excel', + icon: [384, 512, [], "f1c3", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] +}; +var faFileExport = { + prefix: 'fas', + iconName: 'file-export', + icon: [576, 512, [], "f56e", "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"] +}; +var faFileImage = { + prefix: 'fas', + iconName: 'file-image', + icon: [384, 512, [], "f1c5", "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"] +}; +var faFileImport = { + prefix: 'fas', + iconName: 'file-import', + icon: [512, 512, [], "f56f", "M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"] +}; +var faFileInvoice = { + prefix: 'fas', + iconName: 'file-invoice', + icon: [384, 512, [], "f570", "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"] +}; +var faFileInvoiceDollar = { + prefix: 'fas', + iconName: 'file-invoice-dollar', + icon: [384, 512, [], "f571", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"] +}; +var faFileMedical = { + prefix: 'fas', + iconName: 'file-medical', + icon: [384, 512, [], "f477", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"] +}; +var faFileMedicalAlt = { + prefix: 'fas', + iconName: 'file-medical-alt', + icon: [448, 512, [], "f478", "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] +}; +var faFilePdf = { + prefix: 'fas', + iconName: 'file-pdf', + icon: [384, 512, [], "f1c1", "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"] +}; +var faFilePowerpoint = { + prefix: 'fas', + iconName: 'file-powerpoint', + icon: [384, 512, [], "f1c4", "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"] +}; +var faFilePrescription = { + prefix: 'fas', + iconName: 'file-prescription', + icon: [384, 512, [], "f572", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] +}; +var faFileSignature = { + prefix: 'fas', + iconName: 'file-signature', + icon: [576, 512, [], "f573", "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"] +}; +var faFileUpload = { + prefix: 'fas', + iconName: 'file-upload', + icon: [384, 512, [], "f574", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] +}; +var faFileVideo = { + prefix: 'fas', + iconName: 'file-video', + icon: [384, 512, [], "f1c8", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"] +}; +var faFileWord = { + prefix: 'fas', + iconName: 'file-word', + icon: [384, 512, [], "f1c2", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] +}; +var faFill = { + prefix: 'fas', + iconName: 'fill', + icon: [512, 512, [], "f575", "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"] +}; +var faFillDrip = { + prefix: 'fas', + iconName: 'fill-drip', + icon: [576, 512, [], "f576", "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"] +}; +var faFilm = { + prefix: 'fas', + iconName: 'film', + icon: [512, 512, [], "f008", "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"] +}; +var faFilter = { + prefix: 'fas', + iconName: 'filter', + icon: [512, 512, [], "f0b0", "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"] +}; +var faFingerprint = { + prefix: 'fas', + iconName: 'fingerprint', + icon: [512, 512, [], "f577", "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"] +}; +var faFire = { + prefix: 'fas', + iconName: 'fire', + icon: [384, 512, [], "f06d", "M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z"] +}; +var faFireAlt = { + prefix: 'fas', + iconName: 'fire-alt', + icon: [448, 512, [], "f7e4", "M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"] +}; +var faFireExtinguisher = { + prefix: 'fas', + iconName: 'fire-extinguisher', + icon: [448, 512, [], "f134", "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"] +}; +var faFirstAid = { + prefix: 'fas', + iconName: 'first-aid', + icon: [576, 512, [], "f479", "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] +}; +var faFish = { + prefix: 'fas', + iconName: 'fish', + icon: [576, 512, [], "f578", "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"] +}; +var faFistRaised = { + prefix: 'fas', + iconName: 'fist-raised', + icon: [384, 512, [], "f6de", "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"] +}; +var faFlag = { + prefix: 'fas', + iconName: 'flag', + icon: [512, 512, [], "f024", "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"] +}; +var faFlagCheckered = { + prefix: 'fas', + iconName: 'flag-checkered', + icon: [512, 512, [], "f11e", "M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"] +}; +var faFlagUsa = { + prefix: 'fas', + iconName: 'flag-usa', + icon: [512, 512, [], "f74d", "M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z"] +}; +var faFlask = { + prefix: 'fas', + iconName: 'flask', + icon: [448, 512, [], "f0c3", "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"] +}; +var faFlushed = { + prefix: 'fas', + iconName: 'flushed', + icon: [496, 512, [], "f579", "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"] +}; +var faFolder = { + prefix: 'fas', + iconName: 'folder', + icon: [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"] +}; +var faFolderMinus = { + prefix: 'fas', + iconName: 'folder-minus', + icon: [512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"] +}; +var faFolderOpen = { + prefix: 'fas', + iconName: 'folder-open', + icon: [576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"] +}; +var faFolderPlus = { + prefix: 'fas', + iconName: 'folder-plus', + icon: [512, 512, [], "f65e", "M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z"] +}; +var faFont = { + prefix: 'fas', + iconName: 'font', + icon: [448, 512, [], "f031", "M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"] +}; +var faFontAwesomeLogoFull = { + prefix: 'fas', + iconName: 'font-awesome-logo-full', + icon: [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"] +}; +var faFootballBall = { + prefix: 'fas', + iconName: 'football-ball', + icon: [496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"] +}; +var faForward = { + prefix: 'fas', + iconName: 'forward', + icon: [512, 512, [], "f04e", "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"] +}; +var faFrog = { + prefix: 'fas', + iconName: 'frog', + icon: [576, 512, [], "f52e", "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"] +}; +var faFrown = { + prefix: 'fas', + iconName: 'frown', + icon: [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"] +}; +var faFrownOpen = { + prefix: 'fas', + iconName: 'frown-open', + icon: [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faFunnelDollar = { + prefix: 'fas', + iconName: 'funnel-dollar', + icon: [640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"] +}; +var faFutbol = { + prefix: 'fas', + iconName: 'futbol', + icon: [512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"] +}; +var faGamepad = { + prefix: 'fas', + iconName: 'gamepad', + icon: [640, 512, [], "f11b", "M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"] +}; +var faGasPump = { + prefix: 'fas', + iconName: 'gas-pump', + icon: [512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"] +}; +var faGavel = { + prefix: 'fas', + iconName: 'gavel', + icon: [512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"] +}; +var faGem = { + prefix: 'fas', + iconName: 'gem', + icon: [576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"] +}; +var faGenderless = { + prefix: 'fas', + iconName: 'genderless', + icon: [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"] +}; +var faGhost = { + prefix: 'fas', + iconName: 'ghost', + icon: [384, 512, [], "f6e2", "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faGift = { + prefix: 'fas', + iconName: 'gift', + icon: [512, 512, [], "f06b", "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z"] +}; +var faGifts = { + prefix: 'fas', + iconName: 'gifts', + icon: [640, 512, [], "f79c", "M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z"] +}; +var faGlassCheers = { + prefix: 'fas', + iconName: 'glass-cheers', + icon: [640, 512, [], "f79f", "M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z"] +}; +var faGlassMartini = { + prefix: 'fas', + iconName: 'glass-martini', + icon: [512, 512, [], "f000", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"] +}; +var faGlassMartiniAlt = { + prefix: 'fas', + iconName: 'glass-martini-alt', + icon: [512, 512, [], "f57b", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"] +}; +var faGlassWhiskey = { + prefix: 'fas', + iconName: 'glass-whiskey', + icon: [512, 512, [], "f7a0", "M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z"] +}; +var faGlasses = { + prefix: 'fas', + iconName: 'glasses', + icon: [576, 512, [], "f530", "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"] +}; +var faGlobe = { + prefix: 'fas', + iconName: 'globe', + icon: [496, 512, [], "f0ac", "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"] +}; +var faGlobeAfrica = { + prefix: 'fas', + iconName: 'globe-africa', + icon: [496, 512, [], "f57c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"] +}; +var faGlobeAmericas = { + prefix: 'fas', + iconName: 'globe-americas', + icon: [496, 512, [], "f57d", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"] +}; +var faGlobeAsia = { + prefix: 'fas', + iconName: 'globe-asia', + icon: [496, 512, [], "f57e", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"] +}; +var faGlobeEurope = { + prefix: 'fas', + iconName: 'globe-europe', + icon: [496, 512, [], "f7a2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z"] +}; +var faGolfBall = { + prefix: 'fas', + iconName: 'golf-ball', + icon: [416, 512, [], "f450", "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"] +}; +var faGopuram = { + prefix: 'fas', + iconName: 'gopuram', + icon: [512, 512, [], "f664", "M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"] +}; +var faGraduationCap = { + prefix: 'fas', + iconName: 'graduation-cap', + icon: [640, 512, [], "f19d", "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"] +}; +var faGreaterThan = { + prefix: 'fas', + iconName: 'greater-than', + icon: [384, 512, [], "f531", "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"] +}; +var faGreaterThanEqual = { + prefix: 'fas', + iconName: 'greater-than-equal', + icon: [448, 512, [], "f532", "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"] +}; +var faGrimace = { + prefix: 'fas', + iconName: 'grimace', + icon: [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"] +}; +var faGrin = { + prefix: 'fas', + iconName: 'grin', + icon: [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] +}; +var faGrinAlt = { + prefix: 'fas', + iconName: 'grin-alt', + icon: [496, 512, [], "f581", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] +}; +var faGrinBeam = { + prefix: 'fas', + iconName: 'grin-beam', + icon: [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] +}; +var faGrinBeamSweat = { + prefix: 'fas', + iconName: 'grin-beam-sweat', + icon: [504, 512, [], "f583", "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] +}; +var faGrinHearts = { + prefix: 'fas', + iconName: 'grin-hearts', + icon: [496, 512, [], "f584", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"] +}; +var faGrinSquint = { + prefix: 'fas', + iconName: 'grin-squint', + icon: [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] +}; +var faGrinSquintTears = { + prefix: 'fas', + iconName: 'grin-squint-tears', + icon: [512, 512, [], "f586", "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"] +}; +var faGrinStars = { + prefix: 'fas', + iconName: 'grin-stars', + icon: [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"] +}; +var faGrinTears = { + prefix: 'fas', + iconName: 'grin-tears', + icon: [640, 512, [], "f588", "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] +}; +var faGrinTongue = { + prefix: 'fas', + iconName: 'grin-tongue', + icon: [496, 512, [], "f589", "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"] +}; +var faGrinTongueSquint = { + prefix: 'fas', + iconName: 'grin-tongue-squint', + icon: [496, 512, [], "f58a", "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"] +}; +var faGrinTongueWink = { + prefix: 'fas', + iconName: 'grin-tongue-wink', + icon: [496, 512, [], "f58b", "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"] +}; +var faGrinWink = { + prefix: 'fas', + iconName: 'grin-wink', + icon: [496, 512, [], "f58c", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"] +}; +var faGripHorizontal = { + prefix: 'fas', + iconName: 'grip-horizontal', + icon: [448, 512, [], "f58d", "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"] +}; +var faGripLines = { + prefix: 'fas', + iconName: 'grip-lines', + icon: [512, 512, [], "f7a4", "M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] +}; +var faGripLinesVertical = { + prefix: 'fas', + iconName: 'grip-lines-vertical', + icon: [256, 512, [], "f7a5", "M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"] +}; +var faGripVertical = { + prefix: 'fas', + iconName: 'grip-vertical', + icon: [320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"] +}; +var faGuitar = { + prefix: 'fas', + iconName: 'guitar', + icon: [512, 512, [], "f7a6", "M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"] +}; +var faHSquare = { + prefix: 'fas', + iconName: 'h-square', + icon: [448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"] +}; +var faHamburger = { + prefix: 'fas', + iconName: 'hamburger', + icon: [512, 512, [], "f805", "M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"] +}; +var faHammer = { + prefix: 'fas', + iconName: 'hammer', + icon: [576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"] +}; +var faHamsa = { + prefix: 'fas', + iconName: 'hamsa', + icon: [512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"] +}; +var faHandHolding = { + prefix: 'fas', + iconName: 'hand-holding', + icon: [576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"] +}; +var faHandHoldingHeart = { + prefix: 'fas', + iconName: 'hand-holding-heart', + icon: [576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"] +}; +var faHandHoldingMedical = { + prefix: 'fas', + iconName: 'hand-holding-medical', + icon: [576, 512, [], "e05c", "M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z"] +}; +var faHandHoldingUsd = { + prefix: 'fas', + iconName: 'hand-holding-usd', + icon: [576, 512, [], "f4c0", "M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"] +}; +var faHandHoldingWater = { + prefix: 'fas', + iconName: 'hand-holding-water', + icon: [576, 512, [], "f4c1", "M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"] +}; +var faHandLizard = { + prefix: 'fas', + iconName: 'hand-lizard', + icon: [576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"] +}; +var faHandMiddleFinger = { + prefix: 'fas', + iconName: 'hand-middle-finger', + icon: [512, 512, [], "f806", "M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"] +}; +var faHandPaper = { + prefix: 'fas', + iconName: 'hand-paper', + icon: [448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"] +}; +var faHandPeace = { + prefix: 'fas', + iconName: 'hand-peace', + icon: [448, 512, [], "f25b", "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"] +}; +var faHandPointDown = { + prefix: 'fas', + iconName: 'hand-point-down', + icon: [384, 512, [], "f0a7", "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"] +}; +var faHandPointLeft = { + prefix: 'fas', + iconName: 'hand-point-left', + icon: [512, 512, [], "f0a5", "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"] +}; +var faHandPointRight = { + prefix: 'fas', + iconName: 'hand-point-right', + icon: [512, 512, [], "f0a4", "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"] +}; +var faHandPointUp = { + prefix: 'fas', + iconName: 'hand-point-up', + icon: [384, 512, [], "f0a6", "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"] +}; +var faHandPointer = { + prefix: 'fas', + iconName: 'hand-pointer', + icon: [448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"] +}; +var faHandRock = { + prefix: 'fas', + iconName: 'hand-rock', + icon: [512, 512, [], "f255", "M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"] +}; +var faHandScissors = { + prefix: 'fas', + iconName: 'hand-scissors', + icon: [512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"] +}; +var faHandSparkles = { + prefix: 'fas', + iconName: 'hand-sparkles', + icon: [640, 512, [], "e05d", "M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z"] +}; +var faHandSpock = { + prefix: 'fas', + iconName: 'hand-spock', + icon: [512, 512, [], "f259", "M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z"] +}; +var faHands = { + prefix: 'fas', + iconName: 'hands', + icon: [640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"] +}; +var faHandsHelping = { + prefix: 'fas', + iconName: 'hands-helping', + icon: [640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"] +}; +var faHandsWash = { + prefix: 'fas', + iconName: 'hands-wash', + icon: [576, 512, [], "e05e", "M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z"] +}; +var faHandshake = { + prefix: 'fas', + iconName: 'handshake', + icon: [640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"] +}; +var faHandshakeAltSlash = { + prefix: 'fas', + iconName: 'handshake-alt-slash', + icon: [640, 512, [], "e05f", "M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z"] +}; +var faHandshakeSlash = { + prefix: 'fas', + iconName: 'handshake-slash', + icon: [640, 512, [], "e060", "M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z"] +}; +var faHanukiah = { + prefix: 'fas', + iconName: 'hanukiah', + icon: [640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"] +}; +var faHardHat = { + prefix: 'fas', + iconName: 'hard-hat', + icon: [512, 512, [], "f807", "M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faHashtag = { + prefix: 'fas', + iconName: 'hashtag', + icon: [448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"] +}; +var faHatCowboy = { + prefix: 'fas', + iconName: 'hat-cowboy', + icon: [640, 512, [], "f8c0", "M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"] +}; +var faHatCowboySide = { + prefix: 'fas', + iconName: 'hat-cowboy-side', + icon: [640, 512, [], "f8c1", "M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"] +}; +var faHatWizard = { + prefix: 'fas', + iconName: 'hat-wizard', + icon: [512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"] +}; +var faHdd = { + prefix: 'fas', + iconName: 'hdd', + icon: [576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"] +}; +var faHeadSideCough = { + prefix: 'fas', + iconName: 'head-side-cough', + icon: [640, 512, [], "e061", "M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z"] +}; +var faHeadSideCoughSlash = { + prefix: 'fas', + iconName: 'head-side-cough-slash', + icon: [640, 512, [], "e062", "M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z"] +}; +var faHeadSideMask = { + prefix: 'fas', + iconName: 'head-side-mask', + icon: [512, 512, [], "e063", "M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z"] +}; +var faHeadSideVirus = { + prefix: 'fas', + iconName: 'head-side-virus', + icon: [512, 512, [], "e064", "M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z"] +}; +var faHeading = { + prefix: 'fas', + iconName: 'heading', + icon: [512, 512, [], "f1dc", "M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"] +}; +var faHeadphones = { + prefix: 'fas', + iconName: 'headphones', + icon: [512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"] +}; +var faHeadphonesAlt = { + prefix: 'fas', + iconName: 'headphones-alt', + icon: [512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"] +}; +var faHeadset = { + prefix: 'fas', + iconName: 'headset', + icon: [512, 512, [], "f590", "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"] +}; +var faHeart = { + prefix: 'fas', + iconName: 'heart', + icon: [512, 512, [], "f004", "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"] +}; +var faHeartBroken = { + prefix: 'fas', + iconName: 'heart-broken', + icon: [512, 512, [], "f7a9", "M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z"] +}; +var faHeartbeat = { + prefix: 'fas', + iconName: 'heartbeat', + icon: [512, 512, [], "f21e", "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"] +}; +var faHelicopter = { + prefix: 'fas', + iconName: 'helicopter', + icon: [640, 512, [], "f533", "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"] +}; +var faHighlighter = { + prefix: 'fas', + iconName: 'highlighter', + icon: [544, 512, [], "f591", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"] +}; +var faHiking = { + prefix: 'fas', + iconName: 'hiking', + icon: [384, 512, [], "f6ec", "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"] +}; +var faHippo = { + prefix: 'fas', + iconName: 'hippo', + icon: [640, 512, [], "f6ed", "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"] +}; +var faHistory = { + prefix: 'fas', + iconName: 'history', + icon: [512, 512, [], "f1da", "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"] +}; +var faHockeyPuck = { + prefix: 'fas', + iconName: 'hockey-puck', + icon: [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"] +}; +var faHollyBerry = { + prefix: 'fas', + iconName: 'holly-berry', + icon: [448, 512, [], "f7aa", "M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z"] +}; +var faHome = { + prefix: 'fas', + iconName: 'home', + icon: [576, 512, [], "f015", "M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"] +}; +var faHorse = { + prefix: 'fas', + iconName: 'horse', + icon: [576, 512, [], "f6f0", "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"] +}; +var faHorseHead = { + prefix: 'fas', + iconName: 'horse-head', + icon: [512, 512, [], "f7ab", "M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"] +}; +var faHospital = { + prefix: 'fas', + iconName: 'hospital', + icon: [448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"] +}; +var faHospitalAlt = { + prefix: 'fas', + iconName: 'hospital-alt', + icon: [576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"] +}; +var faHospitalSymbol = { + prefix: 'fas', + iconName: 'hospital-symbol', + icon: [512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"] +}; +var faHospitalUser = { + prefix: 'fas', + iconName: 'hospital-user', + icon: [640, 512, [], "f80d", "M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z"] +}; +var faHotTub = { + prefix: 'fas', + iconName: 'hot-tub', + icon: [512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"] +}; +var faHotdog = { + prefix: 'fas', + iconName: 'hotdog', + icon: [512, 512, [], "f80f", "M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"] +}; +var faHotel = { + prefix: 'fas', + iconName: 'hotel', + icon: [576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"] +}; +var faHourglass = { + prefix: 'fas', + iconName: 'hourglass', + icon: [384, 512, [], "f254", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"] +}; +var faHourglassEnd = { + prefix: 'fas', + iconName: 'hourglass-end', + icon: [384, 512, [], "f253", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"] +}; +var faHourglassHalf = { + prefix: 'fas', + iconName: 'hourglass-half', + icon: [384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"] +}; +var faHourglassStart = { + prefix: 'fas', + iconName: 'hourglass-start', + icon: [384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"] +}; +var faHouseDamage = { + prefix: 'fas', + iconName: 'house-damage', + icon: [576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"] +}; +var faHouseUser = { + prefix: 'fas', + iconName: 'house-user', + icon: [576, 512, [], "e065", "M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z"] +}; +var faHryvnia = { + prefix: 'fas', + iconName: 'hryvnia', + icon: [384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"] +}; +var faICursor = { + prefix: 'fas', + iconName: 'i-cursor', + icon: [256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"] +}; +var faIceCream = { + prefix: 'fas', + iconName: 'ice-cream', + icon: [448, 512, [], "f810", "M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"] +}; +var faIcicles = { + prefix: 'fas', + iconName: 'icicles', + icon: [512, 512, [], "f7ad", "M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z"] +}; +var faIcons = { + prefix: 'fas', + iconName: 'icons', + icon: [512, 512, [], "f86d", "M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z"] +}; +var faIdBadge = { + prefix: 'fas', + iconName: 'id-badge', + icon: [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"] +}; +var faIdCard = { + prefix: 'fas', + iconName: 'id-card', + icon: [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"] +}; +var faIdCardAlt = { + prefix: 'fas', + iconName: 'id-card-alt', + icon: [576, 512, [], "f47f", "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"] +}; +var faIgloo = { + prefix: 'fas', + iconName: 'igloo', + icon: [576, 512, [], "f7ae", "M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z"] +}; +var faImage = { + prefix: 'fas', + iconName: 'image', + icon: [512, 512, [], "f03e", "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"] +}; +var faImages = { + prefix: 'fas', + iconName: 'images', + icon: [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"] +}; +var faInbox = { + prefix: 'fas', + iconName: 'inbox', + icon: [576, 512, [], "f01c", "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"] +}; +var faIndent = { + prefix: 'fas', + iconName: 'indent', + icon: [448, 512, [], "f03c", "M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faIndustry = { + prefix: 'fas', + iconName: 'industry', + icon: [512, 512, [], "f275", "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"] +}; +var faInfinity = { + prefix: 'fas', + iconName: 'infinity', + icon: [640, 512, [], "f534", "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"] +}; +var faInfo = { + prefix: 'fas', + iconName: 'info', + icon: [192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"] +}; +var faInfoCircle = { + prefix: 'fas', + iconName: 'info-circle', + icon: [512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"] +}; +var faItalic = { + prefix: 'fas', + iconName: 'italic', + icon: [320, 512, [], "f033", "M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"] +}; +var faJedi = { + prefix: 'fas', + iconName: 'jedi', + icon: [576, 512, [], "f669", "M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z"] +}; +var faJoint = { + prefix: 'fas', + iconName: 'joint', + icon: [640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"] +}; +var faJournalWhills = { + prefix: 'fas', + iconName: 'journal-whills', + icon: [448, 512, [], "f66a", "M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z"] +}; +var faKaaba = { + prefix: 'fas', + iconName: 'kaaba', + icon: [576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"] +}; +var faKey = { + prefix: 'fas', + iconName: 'key', + icon: [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"] +}; +var faKeyboard = { + prefix: 'fas', + iconName: 'keyboard', + icon: [576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"] +}; +var faKhanda = { + prefix: 'fas', + iconName: 'khanda', + icon: [512, 512, [], "f66d", "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"] +}; +var faKiss = { + prefix: 'fas', + iconName: 'kiss', + icon: [496, 512, [], "f596", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faKissBeam = { + prefix: 'fas', + iconName: 'kiss-beam', + icon: [496, 512, [], "f597", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"] +}; +var faKissWinkHeart = { + prefix: 'fas', + iconName: 'kiss-wink-heart', + icon: [504, 512, [], "f598", "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"] +}; +var faKiwiBird = { + prefix: 'fas', + iconName: 'kiwi-bird', + icon: [576, 512, [], "f535", "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"] +}; +var faLandmark = { + prefix: 'fas', + iconName: 'landmark', + icon: [512, 512, [], "f66f", "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] +}; +var faLanguage = { + prefix: 'fas', + iconName: 'language', + icon: [640, 512, [], "f1ab", "M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"] +}; +var faLaptop = { + prefix: 'fas', + iconName: 'laptop', + icon: [640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"] +}; +var faLaptopCode = { + prefix: 'fas', + iconName: 'laptop-code', + icon: [640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"] +}; +var faLaptopHouse = { + prefix: 'fas', + iconName: 'laptop-house', + icon: [640, 512, [], "e066", "M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z"] +}; +var faLaptopMedical = { + prefix: 'fas', + iconName: 'laptop-medical', + icon: [640, 512, [], "f812", "M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"] +}; +var faLaugh = { + prefix: 'fas', + iconName: 'laugh', + icon: [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"] +}; +var faLaughBeam = { + prefix: 'fas', + iconName: 'laugh-beam', + icon: [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"] +}; +var faLaughSquint = { + prefix: 'fas', + iconName: 'laugh-squint', + icon: [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"] +}; +var faLaughWink = { + prefix: 'fas', + iconName: 'laugh-wink', + icon: [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"] +}; +var faLayerGroup = { + prefix: 'fas', + iconName: 'layer-group', + icon: [512, 512, [], "f5fd", "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"] +}; +var faLeaf = { + prefix: 'fas', + iconName: 'leaf', + icon: [576, 512, [], "f06c", "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"] +}; +var faLemon = { + prefix: 'fas', + iconName: 'lemon', + icon: [512, 512, [], "f094", "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"] +}; +var faLessThan = { + prefix: 'fas', + iconName: 'less-than', + icon: [384, 512, [], "f536", "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"] +}; +var faLessThanEqual = { + prefix: 'fas', + iconName: 'less-than-equal', + icon: [448, 512, [], "f537", "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"] +}; +var faLevelDownAlt = { + prefix: 'fas', + iconName: 'level-down-alt', + icon: [320, 512, [], "f3be", "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"] +}; +var faLevelUpAlt = { + prefix: 'fas', + iconName: 'level-up-alt', + icon: [320, 512, [], "f3bf", "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"] +}; +var faLifeRing = { + prefix: 'fas', + iconName: 'life-ring', + icon: [512, 512, [], "f1cd", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"] +}; +var faLightbulb = { + prefix: 'fas', + iconName: 'lightbulb', + icon: [352, 512, [], "f0eb", "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"] +}; +var faLink = { + prefix: 'fas', + iconName: 'link', + icon: [512, 512, [], "f0c1", "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"] +}; +var faLiraSign = { + prefix: 'fas', + iconName: 'lira-sign', + icon: [384, 512, [], "f195", "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"] +}; +var faList = { + prefix: 'fas', + iconName: 'list', + icon: [512, 512, [], "f03a", "M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faListAlt = { + prefix: 'fas', + iconName: 'list-alt', + icon: [512, 512, [], "f022", "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"] +}; +var faListOl = { + prefix: 'fas', + iconName: 'list-ol', + icon: [512, 512, [], "f0cb", "M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"] +}; +var faListUl = { + prefix: 'fas', + iconName: 'list-ul', + icon: [512, 512, [], "f0ca", "M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faLocationArrow = { + prefix: 'fas', + iconName: 'location-arrow', + icon: [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"] +}; +var faLock = { + prefix: 'fas', + iconName: 'lock', + icon: [448, 512, [], "f023", "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"] +}; +var faLockOpen = { + prefix: 'fas', + iconName: 'lock-open', + icon: [576, 512, [], "f3c1", "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"] +}; +var faLongArrowAltDown = { + prefix: 'fas', + iconName: 'long-arrow-alt-down', + icon: [256, 512, [], "f309", "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"] +}; +var faLongArrowAltLeft = { + prefix: 'fas', + iconName: 'long-arrow-alt-left', + icon: [448, 512, [], "f30a", "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"] +}; +var faLongArrowAltRight = { + prefix: 'fas', + iconName: 'long-arrow-alt-right', + icon: [448, 512, [], "f30b", "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"] +}; +var faLongArrowAltUp = { + prefix: 'fas', + iconName: 'long-arrow-alt-up', + icon: [256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"] +}; +var faLowVision = { + prefix: 'fas', + iconName: 'low-vision', + icon: [576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"] +}; +var faLuggageCart = { + prefix: 'fas', + iconName: 'luggage-cart', + icon: [640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"] +}; +var faLungs = { + prefix: 'fas', + iconName: 'lungs', + icon: [640, 512, [], "f604", "M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z"] +}; +var faLungsVirus = { + prefix: 'fas', + iconName: 'lungs-virus', + icon: [640, 512, [], "e067", "M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z"] +}; +var faMagic = { + prefix: 'fas', + iconName: 'magic', + icon: [512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"] +}; +var faMagnet = { + prefix: 'fas', + iconName: 'magnet', + icon: [512, 512, [], "f076", "M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"] +}; +var faMailBulk = { + prefix: 'fas', + iconName: 'mail-bulk', + icon: [576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"] +}; +var faMale = { + prefix: 'fas', + iconName: 'male', + icon: [192, 512, [], "f183", "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"] +}; +var faMap = { + prefix: 'fas', + iconName: 'map', + icon: [576, 512, [], "f279", "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"] +}; +var faMapMarked = { + prefix: 'fas', + iconName: 'map-marked', + icon: [576, 512, [], "f59f", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"] +}; +var faMapMarkedAlt = { + prefix: 'fas', + iconName: 'map-marked-alt', + icon: [576, 512, [], "f5a0", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"] +}; +var faMapMarker = { + prefix: 'fas', + iconName: 'map-marker', + icon: [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"] +}; +var faMapMarkerAlt = { + prefix: 'fas', + iconName: 'map-marker-alt', + icon: [384, 512, [], "f3c5", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"] +}; +var faMapPin = { + prefix: 'fas', + iconName: 'map-pin', + icon: [288, 512, [], "f276", "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"] +}; +var faMapSigns = { + prefix: 'fas', + iconName: 'map-signs', + icon: [512, 512, [], "f277", "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"] +}; +var faMarker = { + prefix: 'fas', + iconName: 'marker', + icon: [512, 512, [], "f5a1", "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"] +}; +var faMars = { + prefix: 'fas', + iconName: 'mars', + icon: [384, 512, [], "f222", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faMarsDouble = { + prefix: 'fas', + iconName: 'mars-double', + icon: [512, 512, [], "f227", "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"] +}; +var faMarsStroke = { + prefix: 'fas', + iconName: 'mars-stroke', + icon: [384, 512, [], "f229", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faMarsStrokeH = { + prefix: 'fas', + iconName: 'mars-stroke-h', + icon: [480, 512, [], "f22b", "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"] +}; +var faMarsStrokeV = { + prefix: 'fas', + iconName: 'mars-stroke-v', + icon: [288, 512, [], "f22a", "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"] +}; +var faMask = { + prefix: 'fas', + iconName: 'mask', + icon: [640, 512, [], "f6fa", "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"] +}; +var faMedal = { + prefix: 'fas', + iconName: 'medal', + icon: [512, 512, [], "f5a2", "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"] +}; +var faMedkit = { + prefix: 'fas', + iconName: 'medkit', + icon: [512, 512, [], "f0fa", "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"] +}; +var faMeh = { + prefix: 'fas', + iconName: 'meh', + icon: [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faMehBlank = { + prefix: 'fas', + iconName: 'meh-blank', + icon: [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faMehRollingEyes = { + prefix: 'fas', + iconName: 'meh-rolling-eyes', + icon: [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"] +}; +var faMemory = { + prefix: 'fas', + iconName: 'memory', + icon: [640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"] +}; +var faMenorah = { + prefix: 'fas', + iconName: 'menorah', + icon: [640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"] +}; +var faMercury = { + prefix: 'fas', + iconName: 'mercury', + icon: [288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"] +}; +var faMeteor = { + prefix: 'fas', + iconName: 'meteor', + icon: [512, 512, [], "f753", "M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z"] +}; +var faMicrochip = { + prefix: 'fas', + iconName: 'microchip', + icon: [512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"] +}; +var faMicrophone = { + prefix: 'fas', + iconName: 'microphone', + icon: [352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"] +}; +var faMicrophoneAlt = { + prefix: 'fas', + iconName: 'microphone-alt', + icon: [352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"] +}; +var faMicrophoneAltSlash = { + prefix: 'fas', + iconName: 'microphone-alt-slash', + icon: [640, 512, [], "f539", "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"] +}; +var faMicrophoneSlash = { + prefix: 'fas', + iconName: 'microphone-slash', + icon: [640, 512, [], "f131", "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"] +}; +var faMicroscope = { + prefix: 'fas', + iconName: 'microscope', + icon: [512, 512, [], "f610", "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"] +}; +var faMinus = { + prefix: 'fas', + iconName: 'minus', + icon: [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] +}; +var faMinusCircle = { + prefix: 'fas', + iconName: 'minus-circle', + icon: [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"] +}; +var faMinusSquare = { + prefix: 'fas', + iconName: 'minus-square', + icon: [448, 512, [], "f146", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"] +}; +var faMitten = { + prefix: 'fas', + iconName: 'mitten', + icon: [448, 512, [], "f7b5", "M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z"] +}; +var faMobile = { + prefix: 'fas', + iconName: 'mobile', + icon: [320, 512, [], "f10b", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faMobileAlt = { + prefix: 'fas', + iconName: 'mobile-alt', + icon: [320, 512, [], "f3cd", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"] +}; +var faMoneyBill = { + prefix: 'fas', + iconName: 'money-bill', + icon: [640, 512, [], "f0d6", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"] +}; +var faMoneyBillAlt = { + prefix: 'fas', + iconName: 'money-bill-alt', + icon: [640, 512, [], "f3d1", "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"] +}; +var faMoneyBillWave = { + prefix: 'fas', + iconName: 'money-bill-wave', + icon: [640, 512, [], "f53a", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"] +}; +var faMoneyBillWaveAlt = { + prefix: 'fas', + iconName: 'money-bill-wave-alt', + icon: [640, 512, [], "f53b", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"] +}; +var faMoneyCheck = { + prefix: 'fas', + iconName: 'money-check', + icon: [640, 512, [], "f53c", "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"] +}; +var faMoneyCheckAlt = { + prefix: 'fas', + iconName: 'money-check-alt', + icon: [640, 512, [], "f53d", "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"] +}; +var faMonument = { + prefix: 'fas', + iconName: 'monument', + icon: [384, 512, [], "f5a6", "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"] +}; +var faMoon = { + prefix: 'fas', + iconName: 'moon', + icon: [512, 512, [], "f186", "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"] +}; +var faMortarPestle = { + prefix: 'fas', + iconName: 'mortar-pestle', + icon: [512, 512, [], "f5a7", "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] +}; +var faMosque = { + prefix: 'fas', + iconName: 'mosque', + icon: [640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"] +}; +var faMotorcycle = { + prefix: 'fas', + iconName: 'motorcycle', + icon: [640, 512, [], "f21c", "M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"] +}; +var faMountain = { + prefix: 'fas', + iconName: 'mountain', + icon: [640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"] +}; +var faMouse = { + prefix: 'fas', + iconName: 'mouse', + icon: [384, 512, [], "f8cc", "M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"] +}; +var faMousePointer = { + prefix: 'fas', + iconName: 'mouse-pointer', + icon: [320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"] +}; +var faMugHot = { + prefix: 'fas', + iconName: 'mug-hot', + icon: [512, 512, [], "f7b6", "M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"] +}; +var faMusic = { + prefix: 'fas', + iconName: 'music', + icon: [512, 512, [], "f001", "M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"] +}; +var faNetworkWired = { + prefix: 'fas', + iconName: 'network-wired', + icon: [640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"] +}; +var faNeuter = { + prefix: 'fas', + iconName: 'neuter', + icon: [288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faNewspaper = { + prefix: 'fas', + iconName: 'newspaper', + icon: [576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"] +}; +var faNotEqual = { + prefix: 'fas', + iconName: 'not-equal', + icon: [448, 512, [], "f53e", "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"] +}; +var faNotesMedical = { + prefix: 'fas', + iconName: 'notes-medical', + icon: [384, 512, [], "f481", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"] +}; +var faObjectGroup = { + prefix: 'fas', + iconName: 'object-group', + icon: [512, 512, [], "f247", "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"] +}; +var faObjectUngroup = { + prefix: 'fas', + iconName: 'object-ungroup', + icon: [576, 512, [], "f248", "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"] +}; +var faOilCan = { + prefix: 'fas', + iconName: 'oil-can', + icon: [640, 512, [], "f613", "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"] +}; +var faOm = { + prefix: 'fas', + iconName: 'om', + icon: [512, 512, [], "f679", "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"] +}; +var faOtter = { + prefix: 'fas', + iconName: 'otter', + icon: [640, 512, [], "f700", "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"] +}; +var faOutdent = { + prefix: 'fas', + iconName: 'outdent', + icon: [448, 512, [], "f03b", "M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faPager = { + prefix: 'fas', + iconName: 'pager', + icon: [512, 512, [], "f815", "M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z"] +}; +var faPaintBrush = { + prefix: 'fas', + iconName: 'paint-brush', + icon: [512, 512, [], "f1fc", "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"] +}; +var faPaintRoller = { + prefix: 'fas', + iconName: 'paint-roller', + icon: [512, 512, [], "f5aa", "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"] +}; +var faPalette = { + prefix: 'fas', + iconName: 'palette', + icon: [512, 512, [], "f53f", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faPallet = { + prefix: 'fas', + iconName: 'pallet', + icon: [640, 512, [], "f482", "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"] +}; +var faPaperPlane = { + prefix: 'fas', + iconName: 'paper-plane', + icon: [512, 512, [], "f1d8", "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"] +}; +var faPaperclip = { + prefix: 'fas', + iconName: 'paperclip', + icon: [448, 512, [], "f0c6", "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"] +}; +var faParachuteBox = { + prefix: 'fas', + iconName: 'parachute-box', + icon: [512, 512, [], "f4cd", "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"] +}; +var faParagraph = { + prefix: 'fas', + iconName: 'paragraph', + icon: [448, 512, [], "f1dd", "M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"] +}; +var faParking = { + prefix: 'fas', + iconName: 'parking', + icon: [448, 512, [], "f540", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"] +}; +var faPassport = { + prefix: 'fas', + iconName: 'passport', + icon: [448, 512, [], "f5ab", "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"] +}; +var faPastafarianism = { + prefix: 'fas', + iconName: 'pastafarianism', + icon: [640, 512, [], "f67b", "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"] +}; +var faPaste = { + prefix: 'fas', + iconName: 'paste', + icon: [448, 512, [], "f0ea", "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"] +}; +var faPause = { + prefix: 'fas', + iconName: 'pause', + icon: [448, 512, [], "f04c", "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"] +}; +var faPauseCircle = { + prefix: 'fas', + iconName: 'pause-circle', + icon: [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"] +}; +var faPaw = { + prefix: 'fas', + iconName: 'paw', + icon: [512, 512, [], "f1b0", "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"] +}; +var faPeace = { + prefix: 'fas', + iconName: 'peace', + icon: [496, 512, [], "f67c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"] +}; +var faPen = { + prefix: 'fas', + iconName: 'pen', + icon: [512, 512, [], "f304", "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"] +}; +var faPenAlt = { + prefix: 'fas', + iconName: 'pen-alt', + icon: [512, 512, [], "f305", "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"] +}; +var faPenFancy = { + prefix: 'fas', + iconName: 'pen-fancy', + icon: [512, 512, [], "f5ac", "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"] +}; +var faPenNib = { + prefix: 'fas', + iconName: 'pen-nib', + icon: [512, 512, [], "f5ad", "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"] +}; +var faPenSquare = { + prefix: 'fas', + iconName: 'pen-square', + icon: [448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"] +}; +var faPencilAlt = { + prefix: 'fas', + iconName: 'pencil-alt', + icon: [512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"] +}; +var faPencilRuler = { + prefix: 'fas', + iconName: 'pencil-ruler', + icon: [512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"] +}; +var faPeopleArrows = { + prefix: 'fas', + iconName: 'people-arrows', + icon: [576, 512, [], "e068", "M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z"] +}; +var faPeopleCarry = { + prefix: 'fas', + iconName: 'people-carry', + icon: [640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"] +}; +var faPepperHot = { + prefix: 'fas', + iconName: 'pepper-hot', + icon: [512, 512, [], "f816", "M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"] +}; +var faPercent = { + prefix: 'fas', + iconName: 'percent', + icon: [448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"] +}; +var faPercentage = { + prefix: 'fas', + iconName: 'percentage', + icon: [384, 512, [], "f541", "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"] +}; +var faPersonBooth = { + prefix: 'fas', + iconName: 'person-booth', + icon: [576, 512, [], "f756", "M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z"] +}; +var faPhone = { + prefix: 'fas', + iconName: 'phone', + icon: [512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"] +}; +var faPhoneAlt = { + prefix: 'fas', + iconName: 'phone-alt', + icon: [512, 512, [], "f879", "M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"] +}; +var faPhoneSlash = { + prefix: 'fas', + iconName: 'phone-slash', + icon: [640, 512, [], "f3dd", "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"] +}; +var faPhoneSquare = { + prefix: 'fas', + iconName: 'phone-square', + icon: [448, 512, [], "f098", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"] +}; +var faPhoneSquareAlt = { + prefix: 'fas', + iconName: 'phone-square-alt', + icon: [448, 512, [], "f87b", "M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z"] +}; +var faPhoneVolume = { + prefix: 'fas', + iconName: 'phone-volume', + icon: [384, 512, [], "f2a0", "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"] +}; +var faPhotoVideo = { + prefix: 'fas', + iconName: 'photo-video', + icon: [640, 512, [], "f87c", "M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z"] +}; +var faPiggyBank = { + prefix: 'fas', + iconName: 'piggy-bank', + icon: [576, 512, [], "f4d3", "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"] +}; +var faPills = { + prefix: 'fas', + iconName: 'pills', + icon: [576, 512, [], "f484", "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"] +}; +var faPizzaSlice = { + prefix: 'fas', + iconName: 'pizza-slice', + icon: [512, 512, [], "f818", "M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"] +}; +var faPlaceOfWorship = { + prefix: 'fas', + iconName: 'place-of-worship', + icon: [640, 512, [], "f67f", "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"] +}; +var faPlane = { + prefix: 'fas', + iconName: 'plane', + icon: [576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"] +}; +var faPlaneArrival = { + prefix: 'fas', + iconName: 'plane-arrival', + icon: [640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"] +}; +var faPlaneDeparture = { + prefix: 'fas', + iconName: 'plane-departure', + icon: [640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"] +}; +var faPlaneSlash = { + prefix: 'fas', + iconName: 'plane-slash', + icon: [640, 512, [], "e069", "M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z"] +}; +var faPlay = { + prefix: 'fas', + iconName: 'play', + icon: [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"] +}; +var faPlayCircle = { + prefix: 'fas', + iconName: 'play-circle', + icon: [512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"] +}; +var faPlug = { + prefix: 'fas', + iconName: 'plug', + icon: [384, 512, [], "f1e6", "M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z"] +}; +var faPlus = { + prefix: 'fas', + iconName: 'plus', + icon: [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] +}; +var faPlusCircle = { + prefix: 'fas', + iconName: 'plus-circle', + icon: [512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"] +}; +var faPlusSquare = { + prefix: 'fas', + iconName: 'plus-square', + icon: [448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"] +}; +var faPodcast = { + prefix: 'fas', + iconName: 'podcast', + icon: [448, 512, [], "f2ce", "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"] +}; +var faPoll = { + prefix: 'fas', + iconName: 'poll', + icon: [448, 512, [], "f681", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"] +}; +var faPollH = { + prefix: 'fas', + iconName: 'poll-h', + icon: [448, 512, [], "f682", "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"] +}; +var faPoo = { + prefix: 'fas', + iconName: 'poo', + icon: [512, 512, [], "f2fe", "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faPooStorm = { + prefix: 'fas', + iconName: 'poo-storm', + icon: [448, 512, [], "f75a", "M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z"] +}; +var faPoop = { + prefix: 'fas', + iconName: 'poop', + icon: [512, 512, [], "f619", "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"] +}; +var faPortrait = { + prefix: 'fas', + iconName: 'portrait', + icon: [384, 512, [], "f3e0", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"] +}; +var faPoundSign = { + prefix: 'fas', + iconName: 'pound-sign', + icon: [320, 512, [], "f154", "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"] +}; +var faPowerOff = { + prefix: 'fas', + iconName: 'power-off', + icon: [512, 512, [], "f011", "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"] +}; +var faPray = { + prefix: 'fas', + iconName: 'pray', + icon: [384, 512, [], "f683", "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"] +}; +var faPrayingHands = { + prefix: 'fas', + iconName: 'praying-hands', + icon: [640, 512, [], "f684", "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"] +}; +var faPrescription = { + prefix: 'fas', + iconName: 'prescription', + icon: [384, 512, [], "f5b1", "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"] +}; +var faPrescriptionBottle = { + prefix: 'fas', + iconName: 'prescription-bottle', + icon: [384, 512, [], "f485", "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"] +}; +var faPrescriptionBottleAlt = { + prefix: 'fas', + iconName: 'prescription-bottle-alt', + icon: [384, 512, [], "f486", "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"] +}; +var faPrint = { + prefix: 'fas', + iconName: 'print', + icon: [512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] +}; +var faProcedures = { + prefix: 'fas', + iconName: 'procedures', + icon: [640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"] +}; +var faProjectDiagram = { + prefix: 'fas', + iconName: 'project-diagram', + icon: [640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"] +}; +var faPumpMedical = { + prefix: 'fas', + iconName: 'pump-medical', + icon: [384, 512, [], "e06a", "M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z"] +}; +var faPumpSoap = { + prefix: 'fas', + iconName: 'pump-soap', + icon: [384, 512, [], "e06b", "M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z"] +}; +var faPuzzlePiece = { + prefix: 'fas', + iconName: 'puzzle-piece', + icon: [576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"] +}; +var faQrcode = { + prefix: 'fas', + iconName: 'qrcode', + icon: [448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"] +}; +var faQuestion = { + prefix: 'fas', + iconName: 'question', + icon: [384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"] +}; +var faQuestionCircle = { + prefix: 'fas', + iconName: 'question-circle', + icon: [512, 512, [], "f059", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"] +}; +var faQuidditch = { + prefix: 'fas', + iconName: 'quidditch', + icon: [640, 512, [], "f458", "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"] +}; +var faQuoteLeft = { + prefix: 'fas', + iconName: 'quote-left', + icon: [512, 512, [], "f10d", "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"] +}; +var faQuoteRight = { + prefix: 'fas', + iconName: 'quote-right', + icon: [512, 512, [], "f10e", "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"] +}; +var faQuran = { + prefix: 'fas', + iconName: 'quran', + icon: [448, 512, [], "f687", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"] +}; +var faRadiation = { + prefix: 'fas', + iconName: 'radiation', + icon: [496, 512, [], "f7b9", "M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z"] +}; +var faRadiationAlt = { + prefix: 'fas', + iconName: 'radiation-alt', + icon: [496, 512, [], "f7ba", "M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"] +}; +var faRainbow = { + prefix: 'fas', + iconName: 'rainbow', + icon: [576, 512, [], "f75b", "M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"] +}; +var faRandom = { + prefix: 'fas', + iconName: 'random', + icon: [512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"] +}; +var faReceipt = { + prefix: 'fas', + iconName: 'receipt', + icon: [384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"] +}; +var faRecordVinyl = { + prefix: 'fas', + iconName: 'record-vinyl', + icon: [512, 512, [], "f8d9", "M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"] +}; +var faRecycle = { + prefix: 'fas', + iconName: 'recycle', + icon: [512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"] +}; +var faRedo = { + prefix: 'fas', + iconName: 'redo', + icon: [512, 512, [], "f01e", "M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"] +}; +var faRedoAlt = { + prefix: 'fas', + iconName: 'redo-alt', + icon: [512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"] +}; +var faRegistered = { + prefix: 'fas', + iconName: 'registered', + icon: [512, 512, [], "f25d", "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"] +}; +var faRemoveFormat = { + prefix: 'fas', + iconName: 'remove-format', + icon: [640, 512, [], "f87d", "M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z"] +}; +var faReply = { + prefix: 'fas', + iconName: 'reply', + icon: [512, 512, [], "f3e5", "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"] +}; +var faReplyAll = { + prefix: 'fas', + iconName: 'reply-all', + icon: [576, 512, [], "f122", "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"] +}; +var faRepublican = { + prefix: 'fas', + iconName: 'republican', + icon: [640, 512, [], "f75e", "M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z"] +}; +var faRestroom = { + prefix: 'fas', + iconName: 'restroom', + icon: [640, 512, [], "f7bd", "M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z"] +}; +var faRetweet = { + prefix: 'fas', + iconName: 'retweet', + icon: [640, 512, [], "f079", "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"] +}; +var faRibbon = { + prefix: 'fas', + iconName: 'ribbon', + icon: [448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"] +}; +var faRing = { + prefix: 'fas', + iconName: 'ring', + icon: [512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"] +}; +var faRoad = { + prefix: 'fas', + iconName: 'road', + icon: [576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"] +}; +var faRobot = { + prefix: 'fas', + iconName: 'robot', + icon: [640, 512, [], "f544", "M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"] +}; +var faRocket = { + prefix: 'fas', + iconName: 'rocket', + icon: [512, 512, [], "f135", "M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"] +}; +var faRoute = { + prefix: 'fas', + iconName: 'route', + icon: [512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faRss = { + prefix: 'fas', + iconName: 'rss', + icon: [448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"] +}; +var faRssSquare = { + prefix: 'fas', + iconName: 'rss-square', + icon: [448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"] +}; +var faRubleSign = { + prefix: 'fas', + iconName: 'ruble-sign', + icon: [384, 512, [], "f158", "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"] +}; +var faRuler = { + prefix: 'fas', + iconName: 'ruler', + icon: [640, 512, [], "f545", "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"] +}; +var faRulerCombined = { + prefix: 'fas', + iconName: 'ruler-combined', + icon: [512, 512, [], "f546", "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"] +}; +var faRulerHorizontal = { + prefix: 'fas', + iconName: 'ruler-horizontal', + icon: [576, 512, [], "f547", "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"] +}; +var faRulerVertical = { + prefix: 'fas', + iconName: 'ruler-vertical', + icon: [256, 512, [], "f548", "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"] +}; +var faRunning = { + prefix: 'fas', + iconName: 'running', + icon: [416, 512, [], "f70c", "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"] +}; +var faRupeeSign = { + prefix: 'fas', + iconName: 'rupee-sign', + icon: [320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"] +}; +var faSadCry = { + prefix: 'fas', + iconName: 'sad-cry', + icon: [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"] +}; +var faSadTear = { + prefix: 'fas', + iconName: 'sad-tear', + icon: [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"] +}; +var faSatellite = { + prefix: 'fas', + iconName: 'satellite', + icon: [512, 512, [], "f7bf", "M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z"] +}; +var faSatelliteDish = { + prefix: 'fas', + iconName: 'satellite-dish', + icon: [512, 512, [], "f7c0", "M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z"] +}; +var faSave = { + prefix: 'fas', + iconName: 'save', + icon: [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"] +}; +var faSchool = { + prefix: 'fas', + iconName: 'school', + icon: [640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"] +}; +var faScrewdriver = { + prefix: 'fas', + iconName: 'screwdriver', + icon: [512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"] +}; +var faScroll = { + prefix: 'fas', + iconName: 'scroll', + icon: [640, 512, [], "f70e", "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"] +}; +var faSdCard = { + prefix: 'fas', + iconName: 'sd-card', + icon: [384, 512, [], "f7c2", "M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"] +}; +var faSearch = { + prefix: 'fas', + iconName: 'search', + icon: [512, 512, [], "f002", "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"] +}; +var faSearchDollar = { + prefix: 'fas', + iconName: 'search-dollar', + icon: [512, 512, [], "f688", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"] +}; +var faSearchLocation = { + prefix: 'fas', + iconName: 'search-location', + icon: [512, 512, [], "f689", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] +}; +var faSearchMinus = { + prefix: 'fas', + iconName: 'search-minus', + icon: [512, 512, [], "f010", "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"] +}; +var faSearchPlus = { + prefix: 'fas', + iconName: 'search-plus', + icon: [512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"] +}; +var faSeedling = { + prefix: 'fas', + iconName: 'seedling', + icon: [512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"] +}; +var faServer = { + prefix: 'fas', + iconName: 'server', + icon: [512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"] +}; +var faShapes = { + prefix: 'fas', + iconName: 'shapes', + icon: [512, 512, [], "f61f", "M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z"] +}; +var faShare = { + prefix: 'fas', + iconName: 'share', + icon: [512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"] +}; +var faShareAlt = { + prefix: 'fas', + iconName: 'share-alt', + icon: [448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"] +}; +var faShareAltSquare = { + prefix: 'fas', + iconName: 'share-alt-square', + icon: [448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"] +}; +var faShareSquare = { + prefix: 'fas', + iconName: 'share-square', + icon: [576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"] +}; +var faShekelSign = { + prefix: 'fas', + iconName: 'shekel-sign', + icon: [448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"] +}; +var faShieldAlt = { + prefix: 'fas', + iconName: 'shield-alt', + icon: [512, 512, [], "f3ed", "M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"] +}; +var faShieldVirus = { + prefix: 'fas', + iconName: 'shield-virus', + icon: [512, 512, [], "e06c", "M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"] +}; +var faShip = { + prefix: 'fas', + iconName: 'ship', + icon: [640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"] +}; +var faShippingFast = { + prefix: 'fas', + iconName: 'shipping-fast', + icon: [640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"] +}; +var faShoePrints = { + prefix: 'fas', + iconName: 'shoe-prints', + icon: [640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"] +}; +var faShoppingBag = { + prefix: 'fas', + iconName: 'shopping-bag', + icon: [448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"] +}; +var faShoppingBasket = { + prefix: 'fas', + iconName: 'shopping-basket', + icon: [576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"] +}; +var faShoppingCart = { + prefix: 'fas', + iconName: 'shopping-cart', + icon: [576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"] +}; +var faShower = { + prefix: 'fas', + iconName: 'shower', + icon: [512, 512, [], "f2cc", "M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z"] +}; +var faShuttleVan = { + prefix: 'fas', + iconName: 'shuttle-van', + icon: [640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"] +}; +var faSign = { + prefix: 'fas', + iconName: 'sign', + icon: [512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"] +}; +var faSignInAlt = { + prefix: 'fas', + iconName: 'sign-in-alt', + icon: [512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"] +}; +var faSignLanguage = { + prefix: 'fas', + iconName: 'sign-language', + icon: [448, 512, [], "f2a7", "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"] +}; +var faSignOutAlt = { + prefix: 'fas', + iconName: 'sign-out-alt', + icon: [512, 512, [], "f2f5", "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"] +}; +var faSignal = { + prefix: 'fas', + iconName: 'signal', + icon: [640, 512, [], "f012", "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"] +}; +var faSignature = { + prefix: 'fas', + iconName: 'signature', + icon: [640, 512, [], "f5b7", "M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z"] +}; +var faSimCard = { + prefix: 'fas', + iconName: 'sim-card', + icon: [384, 512, [], "f7c4", "M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z"] +}; +var faSink = { + prefix: 'fas', + iconName: 'sink', + icon: [512, 512, [], "e06d", "M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z"] +}; +var faSitemap = { + prefix: 'fas', + iconName: 'sitemap', + icon: [640, 512, [], "f0e8", "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"] +}; +var faSkating = { + prefix: 'fas', + iconName: 'skating', + icon: [448, 512, [], "f7c5", "M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"] +}; +var faSkiing = { + prefix: 'fas', + iconName: 'skiing', + icon: [512, 512, [], "f7c9", "M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z"] +}; +var faSkiingNordic = { + prefix: 'fas', + iconName: 'skiing-nordic', + icon: [576, 512, [], "f7ca", "M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z"] +}; +var faSkull = { + prefix: 'fas', + iconName: 'skull', + icon: [512, 512, [], "f54c", "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"] +}; +var faSkullCrossbones = { + prefix: 'fas', + iconName: 'skull-crossbones', + icon: [448, 512, [], "f714", "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"] +}; +var faSlash = { + prefix: 'fas', + iconName: 'slash', + icon: [640, 512, [], "f715", "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"] +}; +var faSleigh = { + prefix: 'fas', + iconName: 'sleigh', + icon: [640, 512, [], "f7cc", "M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z"] +}; +var faSlidersH = { + prefix: 'fas', + iconName: 'sliders-h', + icon: [512, 512, [], "f1de", "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"] +}; +var faSmile = { + prefix: 'fas', + iconName: 'smile', + icon: [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"] +}; +var faSmileBeam = { + prefix: 'fas', + iconName: 'smile-beam', + icon: [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"] +}; +var faSmileWink = { + prefix: 'fas', + iconName: 'smile-wink', + icon: [496, 512, [], "f4da", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"] +}; +var faSmog = { + prefix: 'fas', + iconName: 'smog', + icon: [640, 512, [], "f75f", "M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z"] +}; +var faSmoking = { + prefix: 'fas', + iconName: 'smoking', + icon: [640, 512, [], "f48d", "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"] +}; +var faSmokingBan = { + prefix: 'fas', + iconName: 'smoking-ban', + icon: [512, 512, [], "f54d", "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"] +}; +var faSms = { + prefix: 'fas', + iconName: 'sms', + icon: [512, 512, [], "f7cd", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"] +}; +var faSnowboarding = { + prefix: 'fas', + iconName: 'snowboarding', + icon: [512, 512, [], "f7ce", "M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z"] +}; +var faSnowflake = { + prefix: 'fas', + iconName: 'snowflake', + icon: [448, 512, [], "f2dc", "M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"] +}; +var faSnowman = { + prefix: 'fas', + iconName: 'snowman', + icon: [512, 512, [], "f7d0", "M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] +}; +var faSnowplow = { + prefix: 'fas', + iconName: 'snowplow', + icon: [640, 512, [], "f7d2", "M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"] +}; +var faSoap = { + prefix: 'fas', + iconName: 'soap', + icon: [512, 512, [], "e06e", "M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z"] +}; +var faSocks = { + prefix: 'fas', + iconName: 'socks', + icon: [512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"] +}; +var faSolarPanel = { + prefix: 'fas', + iconName: 'solar-panel', + icon: [640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"] +}; +var faSort = { + prefix: 'fas', + iconName: 'sort', + icon: [320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"] +}; +var faSortAlphaDown = { + prefix: 'fas', + iconName: 'sort-alpha-down', + icon: [448, 512, [], "f15d", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"] +}; +var faSortAlphaDownAlt = { + prefix: 'fas', + iconName: 'sort-alpha-down-alt', + icon: [448, 512, [], "f881", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"] +}; +var faSortAlphaUp = { + prefix: 'fas', + iconName: 'sort-alpha-up', + icon: [448, 512, [], "f15e", "M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"] +}; +var faSortAlphaUpAlt = { + prefix: 'fas', + iconName: 'sort-alpha-up-alt', + icon: [448, 512, [], "f882", "M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"] +}; +var faSortAmountDown = { + prefix: 'fas', + iconName: 'sort-amount-down', + icon: [512, 512, [], "f160", "M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faSortAmountDownAlt = { + prefix: 'fas', + iconName: 'sort-amount-down-alt', + icon: [512, 512, [], "f884", "M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"] +}; +var faSortAmountUp = { + prefix: 'fas', + iconName: 'sort-amount-up', + icon: [512, 512, [], "f161", "M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faSortAmountUpAlt = { + prefix: 'fas', + iconName: 'sort-amount-up-alt', + icon: [512, 512, [], "f885", "M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"] +}; +var faSortDown = { + prefix: 'fas', + iconName: 'sort-down', + icon: [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"] +}; +var faSortNumericDown = { + prefix: 'fas', + iconName: 'sort-numeric-down', + icon: [448, 512, [], "f162", "M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"] +}; +var faSortNumericDownAlt = { + prefix: 'fas', + iconName: 'sort-numeric-down-alt', + icon: [448, 512, [], "f886", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"] +}; +var faSortNumericUp = { + prefix: 'fas', + iconName: 'sort-numeric-up', + icon: [448, 512, [], "f163", "M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z"] +}; +var faSortNumericUpAlt = { + prefix: 'fas', + iconName: 'sort-numeric-up-alt', + icon: [448, 512, [], "f887", "M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"] +}; +var faSortUp = { + prefix: 'fas', + iconName: 'sort-up', + icon: [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"] +}; +var faSpa = { + prefix: 'fas', + iconName: 'spa', + icon: [576, 512, [], "f5bb", "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"] +}; +var faSpaceShuttle = { + prefix: 'fas', + iconName: 'space-shuttle', + icon: [640, 512, [], "f197", "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"] +}; +var faSpellCheck = { + prefix: 'fas', + iconName: 'spell-check', + icon: [576, 512, [], "f891", "M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z"] +}; +var faSpider = { + prefix: 'fas', + iconName: 'spider', + icon: [576, 512, [], "f717", "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"] +}; +var faSpinner = { + prefix: 'fas', + iconName: 'spinner', + icon: [512, 512, [], "f110", "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"] +}; +var faSplotch = { + prefix: 'fas', + iconName: 'splotch', + icon: [512, 512, [], "f5bc", "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"] +}; +var faSprayCan = { + prefix: 'fas', + iconName: 'spray-can', + icon: [512, 512, [], "f5bd", "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"] +}; +var faSquare = { + prefix: 'fas', + iconName: 'square', + icon: [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] +}; +var faSquareFull = { + prefix: 'fas', + iconName: 'square-full', + icon: [512, 512, [], "f45c", "M512 512H0V0h512v512z"] +}; +var faSquareRootAlt = { + prefix: 'fas', + iconName: 'square-root-alt', + icon: [576, 512, [], "f698", "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"] +}; +var faStamp = { + prefix: 'fas', + iconName: 'stamp', + icon: [512, 512, [], "f5bf", "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"] +}; +var faStar = { + prefix: 'fas', + iconName: 'star', + icon: [576, 512, [], "f005", "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"] +}; +var faStarAndCrescent = { + prefix: 'fas', + iconName: 'star-and-crescent', + icon: [512, 512, [], "f699", "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"] +}; +var faStarHalf = { + prefix: 'fas', + iconName: 'star-half', + icon: [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"] +}; +var faStarHalfAlt = { + prefix: 'fas', + iconName: 'star-half-alt', + icon: [536, 512, [], "f5c0", "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"] +}; +var faStarOfDavid = { + prefix: 'fas', + iconName: 'star-of-david', + icon: [464, 512, [], "f69a", "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"] +}; +var faStarOfLife = { + prefix: 'fas', + iconName: 'star-of-life', + icon: [480, 512, [], "f621", "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"] +}; +var faStepBackward = { + prefix: 'fas', + iconName: 'step-backward', + icon: [448, 512, [], "f048", "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"] +}; +var faStepForward = { + prefix: 'fas', + iconName: 'step-forward', + icon: [448, 512, [], "f051", "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"] +}; +var faStethoscope = { + prefix: 'fas', + iconName: 'stethoscope', + icon: [512, 512, [], "f0f1", "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] +}; +var faStickyNote = { + prefix: 'fas', + iconName: 'sticky-note', + icon: [448, 512, [], "f249", "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"] +}; +var faStop = { + prefix: 'fas', + iconName: 'stop', + icon: [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] +}; +var faStopCircle = { + prefix: 'fas', + iconName: 'stop-circle', + icon: [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"] +}; +var faStopwatch = { + prefix: 'fas', + iconName: 'stopwatch', + icon: [448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"] +}; +var faStopwatch20 = { + prefix: 'fas', + iconName: 'stopwatch-20', + icon: [448, 512, [], "e06f", "M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z"] +}; +var faStore = { + prefix: 'fas', + iconName: 'store', + icon: [616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"] +}; +var faStoreAlt = { + prefix: 'fas', + iconName: 'store-alt', + icon: [640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"] +}; +var faStoreAltSlash = { + prefix: 'fas', + iconName: 'store-alt-slash', + icon: [640, 512, [], "e070", "M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z"] +}; +var faStoreSlash = { + prefix: 'fas', + iconName: 'store-slash', + icon: [640, 512, [], "e071", "M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z"] +}; +var faStream = { + prefix: 'fas', + iconName: 'stream', + icon: [512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"] +}; +var faStreetView = { + prefix: 'fas', + iconName: 'street-view', + icon: [512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"] +}; +var faStrikethrough = { + prefix: 'fas', + iconName: 'strikethrough', + icon: [512, 512, [], "f0cc", "M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"] +}; +var faStroopwafel = { + prefix: 'fas', + iconName: 'stroopwafel', + icon: [512, 512, [], "f551", "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"] +}; +var faSubscript = { + prefix: 'fas', + iconName: 'subscript', + icon: [512, 512, [], "f12c", "M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"] +}; +var faSubway = { + prefix: 'fas', + iconName: 'subway', + icon: [448, 512, [], "f239", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"] +}; +var faSuitcase = { + prefix: 'fas', + iconName: 'suitcase', + icon: [512, 512, [], "f0f2", "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"] +}; +var faSuitcaseRolling = { + prefix: 'fas', + iconName: 'suitcase-rolling', + icon: [384, 512, [], "f5c1", "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"] +}; +var faSun = { + prefix: 'fas', + iconName: 'sun', + icon: [512, 512, [], "f185", "M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"] +}; +var faSuperscript = { + prefix: 'fas', + iconName: 'superscript', + icon: [512, 512, [], "f12b", "M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"] +}; +var faSurprise = { + prefix: 'fas', + iconName: 'surprise', + icon: [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faSwatchbook = { + prefix: 'fas', + iconName: 'swatchbook', + icon: [512, 512, [], "f5c3", "M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"] +}; +var faSwimmer = { + prefix: 'fas', + iconName: 'swimmer', + icon: [640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"] +}; +var faSwimmingPool = { + prefix: 'fas', + iconName: 'swimming-pool', + icon: [640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"] +}; +var faSynagogue = { + prefix: 'fas', + iconName: 'synagogue', + icon: [640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"] +}; +var faSync = { + prefix: 'fas', + iconName: 'sync', + icon: [512, 512, [], "f021", "M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"] +}; +var faSyncAlt = { + prefix: 'fas', + iconName: 'sync-alt', + icon: [512, 512, [], "f2f1", "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"] +}; +var faSyringe = { + prefix: 'fas', + iconName: 'syringe', + icon: [512, 512, [], "f48e", "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"] +}; +var faTable = { + prefix: 'fas', + iconName: 'table', + icon: [512, 512, [], "f0ce", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"] +}; +var faTableTennis = { + prefix: 'fas', + iconName: 'table-tennis', + icon: [512, 512, [], "f45d", "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"] +}; +var faTablet = { + prefix: 'fas', + iconName: 'tablet', + icon: [448, 512, [], "f10a", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] +}; +var faTabletAlt = { + prefix: 'fas', + iconName: 'tablet-alt', + icon: [448, 512, [], "f3fa", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"] +}; +var faTablets = { + prefix: 'fas', + iconName: 'tablets', + icon: [640, 512, [], "f490", "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"] +}; +var faTachometerAlt = { + prefix: 'fas', + iconName: 'tachometer-alt', + icon: [576, 512, [], "f3fd", "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faTag = { + prefix: 'fas', + iconName: 'tag', + icon: [512, 512, [], "f02b", "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"] +}; +var faTags = { + prefix: 'fas', + iconName: 'tags', + icon: [640, 512, [], "f02c", "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"] +}; +var faTape = { + prefix: 'fas', + iconName: 'tape', + icon: [640, 512, [], "f4db", "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"] +}; +var faTasks = { + prefix: 'fas', + iconName: 'tasks', + icon: [512, 512, [], "f0ae", "M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faTaxi = { + prefix: 'fas', + iconName: 'taxi', + icon: [512, 512, [], "f1ba", "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faTeeth = { + prefix: 'fas', + iconName: 'teeth', + icon: [640, 512, [], "f62e", "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"] +}; +var faTeethOpen = { + prefix: 'fas', + iconName: 'teeth-open', + icon: [640, 512, [], "f62f", "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"] +}; +var faTemperatureHigh = { + prefix: 'fas', + iconName: 'temperature-high', + icon: [512, 512, [], "f769", "M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"] +}; +var faTemperatureLow = { + prefix: 'fas', + iconName: 'temperature-low', + icon: [512, 512, [], "f76b", "M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"] +}; +var faTenge = { + prefix: 'fas', + iconName: 'tenge', + icon: [384, 512, [], "f7d7", "M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z"] +}; +var faTerminal = { + prefix: 'fas', + iconName: 'terminal', + icon: [640, 512, [], "f120", "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"] +}; +var faTextHeight = { + prefix: 'fas', + iconName: 'text-height', + icon: [576, 512, [], "f034", "M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"] +}; +var faTextWidth = { + prefix: 'fas', + iconName: 'text-width', + icon: [448, 512, [], "f035", "M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z"] +}; +var faTh = { + prefix: 'fas', + iconName: 'th', + icon: [512, 512, [], "f00a", "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"] +}; +var faThLarge = { + prefix: 'fas', + iconName: 'th-large', + icon: [512, 512, [], "f009", "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"] +}; +var faThList = { + prefix: 'fas', + iconName: 'th-list', + icon: [512, 512, [], "f00b", "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"] +}; +var faTheaterMasks = { + prefix: 'fas', + iconName: 'theater-masks', + icon: [640, 512, [], "f630", "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"] +}; +var faThermometer = { + prefix: 'fas', + iconName: 'thermometer', + icon: [512, 512, [], "f491", "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"] +}; +var faThermometerEmpty = { + prefix: 'fas', + iconName: 'thermometer-empty', + icon: [256, 512, [], "f2cb", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] +}; +var faThermometerFull = { + prefix: 'fas', + iconName: 'thermometer-full', + icon: [256, 512, [], "f2c7", "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"] +}; +var faThermometerHalf = { + prefix: 'fas', + iconName: 'thermometer-half', + icon: [256, 512, [], "f2c9", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] +}; +var faThermometerQuarter = { + prefix: 'fas', + iconName: 'thermometer-quarter', + icon: [256, 512, [], "f2ca", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] +}; +var faThermometerThreeQuarters = { + prefix: 'fas', + iconName: 'thermometer-three-quarters', + icon: [256, 512, [], "f2c8", "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] +}; +var faThumbsDown = { + prefix: 'fas', + iconName: 'thumbs-down', + icon: [512, 512, [], "f165", "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"] +}; +var faThumbsUp = { + prefix: 'fas', + iconName: 'thumbs-up', + icon: [512, 512, [], "f164", "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"] +}; +var faThumbtack = { + prefix: 'fas', + iconName: 'thumbtack', + icon: [384, 512, [], "f08d", "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"] +}; +var faTicketAlt = { + prefix: 'fas', + iconName: 'ticket-alt', + icon: [576, 512, [], "f3ff", "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"] +}; +var faTimes = { + prefix: 'fas', + iconName: 'times', + icon: [352, 512, [], "f00d", "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"] +}; +var faTimesCircle = { + prefix: 'fas', + iconName: 'times-circle', + icon: [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"] +}; +var faTint = { + prefix: 'fas', + iconName: 'tint', + icon: [352, 512, [], "f043", "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"] +}; +var faTintSlash = { + prefix: 'fas', + iconName: 'tint-slash', + icon: [640, 512, [], "f5c7", "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"] +}; +var faTired = { + prefix: 'fas', + iconName: 'tired', + icon: [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"] +}; +var faToggleOff = { + prefix: 'fas', + iconName: 'toggle-off', + icon: [576, 512, [], "f204", "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"] +}; +var faToggleOn = { + prefix: 'fas', + iconName: 'toggle-on', + icon: [576, 512, [], "f205", "M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"] +}; +var faToilet = { + prefix: 'fas', + iconName: 'toilet', + icon: [384, 512, [], "f7d8", "M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"] +}; +var faToiletPaper = { + prefix: 'fas', + iconName: 'toilet-paper', + icon: [576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"] +}; +var faToiletPaperSlash = { + prefix: 'fas', + iconName: 'toilet-paper-slash', + icon: [640, 512, [], "e072", "M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z"] +}; +var faToolbox = { + prefix: 'fas', + iconName: 'toolbox', + icon: [512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"] +}; +var faTools = { + prefix: 'fas', + iconName: 'tools', + icon: [512, 512, [], "f7d9", "M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"] +}; +var faTooth = { + prefix: 'fas', + iconName: 'tooth', + icon: [448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"] +}; +var faTorah = { + prefix: 'fas', + iconName: 'torah', + icon: [640, 512, [], "f6a0", "M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z"] +}; +var faToriiGate = { + prefix: 'fas', + iconName: 'torii-gate', + icon: [512, 512, [], "f6a1", "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"] +}; +var faTractor = { + prefix: 'fas', + iconName: 'tractor', + icon: [640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"] +}; +var faTrademark = { + prefix: 'fas', + iconName: 'trademark', + icon: [640, 512, [], "f25c", "M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"] +}; +var faTrafficLight = { + prefix: 'fas', + iconName: 'traffic-light', + icon: [384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"] +}; +var faTrailer = { + prefix: 'fas', + iconName: 'trailer', + icon: [640, 512, [], "e041", "M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z"] +}; +var faTrain = { + prefix: 'fas', + iconName: 'train', + icon: [448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"] +}; +var faTram = { + prefix: 'fas', + iconName: 'tram', + icon: [512, 512, [], "f7da", "M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"] +}; +var faTransgender = { + prefix: 'fas', + iconName: 'transgender', + icon: [384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faTransgenderAlt = { + prefix: 'fas', + iconName: 'transgender-alt', + icon: [480, 512, [], "f225", "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faTrash = { + prefix: 'fas', + iconName: 'trash', + icon: [448, 512, [], "f1f8", "M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"] +}; +var faTrashAlt = { + prefix: 'fas', + iconName: 'trash-alt', + icon: [448, 512, [], "f2ed", "M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faTrashRestore = { + prefix: 'fas', + iconName: 'trash-restore', + icon: [448, 512, [], "f829", "M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faTrashRestoreAlt = { + prefix: 'fas', + iconName: 'trash-restore-alt', + icon: [448, 512, [], "f82a", "M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] +}; +var faTree = { + prefix: 'fas', + iconName: 'tree', + icon: [384, 512, [], "f1bb", "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"] +}; +var faTrophy = { + prefix: 'fas', + iconName: 'trophy', + icon: [576, 512, [], "f091", "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"] +}; +var faTruck = { + prefix: 'fas', + iconName: 'truck', + icon: [640, 512, [], "f0d1", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"] +}; +var faTruckLoading = { + prefix: 'fas', + iconName: 'truck-loading', + icon: [640, 512, [], "f4de", "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"] +}; +var faTruckMonster = { + prefix: 'fas', + iconName: 'truck-monster', + icon: [640, 512, [], "f63b", "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"] +}; +var faTruckMoving = { + prefix: 'fas', + iconName: 'truck-moving', + icon: [640, 512, [], "f4df", "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"] +}; +var faTruckPickup = { + prefix: 'fas', + iconName: 'truck-pickup', + icon: [640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"] +}; +var faTshirt = { + prefix: 'fas', + iconName: 'tshirt', + icon: [640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"] +}; +var faTty = { + prefix: 'fas', + iconName: 'tty', + icon: [512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"] +}; +var faTv = { + prefix: 'fas', + iconName: 'tv', + icon: [640, 512, [], "f26c", "M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"] +}; +var faUmbrella = { + prefix: 'fas', + iconName: 'umbrella', + icon: [576, 512, [], "f0e9", "M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"] +}; +var faUmbrellaBeach = { + prefix: 'fas', + iconName: 'umbrella-beach', + icon: [640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"] +}; +var faUnderline = { + prefix: 'fas', + iconName: 'underline', + icon: [448, 512, [], "f0cd", "M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] +}; +var faUndo = { + prefix: 'fas', + iconName: 'undo', + icon: [512, 512, [], "f0e2", "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"] +}; +var faUndoAlt = { + prefix: 'fas', + iconName: 'undo-alt', + icon: [512, 512, [], "f2ea", "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"] +}; +var faUniversalAccess = { + prefix: 'fas', + iconName: 'universal-access', + icon: [512, 512, [], "f29a", "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"] +}; +var faUniversity = { + prefix: 'fas', + iconName: 'university', + icon: [512, 512, [], "f19c", "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"] +}; +var faUnlink = { + prefix: 'fas', + iconName: 'unlink', + icon: [512, 512, [], "f127", "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"] +}; +var faUnlock = { + prefix: 'fas', + iconName: 'unlock', + icon: [448, 512, [], "f09c", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"] +}; +var faUnlockAlt = { + prefix: 'fas', + iconName: 'unlock-alt', + icon: [448, 512, [], "f13e", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"] +}; +var faUpload = { + prefix: 'fas', + iconName: 'upload', + icon: [512, 512, [], "f093", "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"] +}; +var faUser = { + prefix: 'fas', + iconName: 'user', + icon: [448, 512, [], "f007", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] +}; +var faUserAlt = { + prefix: 'fas', + iconName: 'user-alt', + icon: [512, 512, [], "f406", "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"] +}; +var faUserAltSlash = { + prefix: 'fas', + iconName: 'user-alt-slash', + icon: [640, 512, [], "f4fa", "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"] +}; +var faUserAstronaut = { + prefix: 'fas', + iconName: 'user-astronaut', + icon: [448, 512, [], "f4fb", "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"] +}; +var faUserCheck = { + prefix: 'fas', + iconName: 'user-check', + icon: [640, 512, [], "f4fc", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"] +}; +var faUserCircle = { + prefix: 'fas', + iconName: 'user-circle', + icon: [496, 512, [], "f2bd", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"] +}; +var faUserClock = { + prefix: 'fas', + iconName: 'user-clock', + icon: [640, 512, [], "f4fd", "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"] +}; +var faUserCog = { + prefix: 'fas', + iconName: 'user-cog', + icon: [640, 512, [], "f4fe", "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"] +}; +var faUserEdit = { + prefix: 'fas', + iconName: 'user-edit', + icon: [640, 512, [], "f4ff", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"] +}; +var faUserFriends = { + prefix: 'fas', + iconName: 'user-friends', + icon: [640, 512, [], "f500", "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"] +}; +var faUserGraduate = { + prefix: 'fas', + iconName: 'user-graduate', + icon: [448, 512, [], "f501", "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"] +}; +var faUserInjured = { + prefix: 'fas', + iconName: 'user-injured', + icon: [448, 512, [], "f728", "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"] +}; +var faUserLock = { + prefix: 'fas', + iconName: 'user-lock', + icon: [640, 512, [], "f502", "M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"] +}; +var faUserMd = { + prefix: 'fas', + iconName: 'user-md', + icon: [448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"] +}; +var faUserMinus = { + prefix: 'fas', + iconName: 'user-minus', + icon: [640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] +}; +var faUserNinja = { + prefix: 'fas', + iconName: 'user-ninja', + icon: [448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"] +}; +var faUserNurse = { + prefix: 'fas', + iconName: 'user-nurse', + icon: [448, 512, [], "f82f", "M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z"] +}; +var faUserPlus = { + prefix: 'fas', + iconName: 'user-plus', + icon: [640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] +}; +var faUserSecret = { + prefix: 'fas', + iconName: 'user-secret', + icon: [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"] +}; +var faUserShield = { + prefix: 'fas', + iconName: 'user-shield', + icon: [640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"] +}; +var faUserSlash = { + prefix: 'fas', + iconName: 'user-slash', + icon: [640, 512, [], "f506", "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"] +}; +var faUserTag = { + prefix: 'fas', + iconName: 'user-tag', + icon: [640, 512, [], "f507", "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"] +}; +var faUserTie = { + prefix: 'fas', + iconName: 'user-tie', + icon: [448, 512, [], "f508", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"] +}; +var faUserTimes = { + prefix: 'fas', + iconName: 'user-times', + icon: [640, 512, [], "f235", "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] +}; +var faUsers = { + prefix: 'fas', + iconName: 'users', + icon: [640, 512, [], "f0c0", "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"] +}; +var faUsersCog = { + prefix: 'fas', + iconName: 'users-cog', + icon: [640, 512, [], "f509", "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"] +}; +var faUsersSlash = { + prefix: 'fas', + iconName: 'users-slash', + icon: [640, 512, [], "e073", "M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z"] +}; +var faUtensilSpoon = { + prefix: 'fas', + iconName: 'utensil-spoon', + icon: [512, 512, [], "f2e5", "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"] +}; +var faUtensils = { + prefix: 'fas', + iconName: 'utensils', + icon: [416, 512, [], "f2e7", "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"] +}; +var faVectorSquare = { + prefix: 'fas', + iconName: 'vector-square', + icon: [512, 512, [], "f5cb", "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"] +}; +var faVenus = { + prefix: 'fas', + iconName: 'venus', + icon: [288, 512, [], "f221", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"] +}; +var faVenusDouble = { + prefix: 'fas', + iconName: 'venus-double', + icon: [512, 512, [], "f226", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"] +}; +var faVenusMars = { + prefix: 'fas', + iconName: 'venus-mars', + icon: [576, 512, [], "f228", "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] +}; +var faVest = { + prefix: 'fas', + iconName: 'vest', + icon: [448, 512, [], "e085", "M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z"] +}; +var faVestPatches = { + prefix: 'fas', + iconName: 'vest-patches', + icon: [448, 512, [], "e086", "M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z"] +}; +var faVial = { + prefix: 'fas', + iconName: 'vial', + icon: [480, 512, [], "f492", "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"] +}; +var faVials = { + prefix: 'fas', + iconName: 'vials', + icon: [640, 512, [], "f493", "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"] +}; +var faVideo = { + prefix: 'fas', + iconName: 'video', + icon: [576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"] +}; +var faVideoSlash = { + prefix: 'fas', + iconName: 'video-slash', + icon: [640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"] +}; +var faVihara = { + prefix: 'fas', + iconName: 'vihara', + icon: [640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"] +}; +var faVirus = { + prefix: 'fas', + iconName: 'virus', + icon: [512, 512, [], "e074", "M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z"] +}; +var faVirusSlash = { + prefix: 'fas', + iconName: 'virus-slash', + icon: [640, 512, [], "e075", "M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z"] +}; +var faViruses = { + prefix: 'fas', + iconName: 'viruses', + icon: [640, 512, [], "e076", "M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z"] +}; +var faVoicemail = { + prefix: 'fas', + iconName: 'voicemail', + icon: [640, 512, [], "f897", "M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"] +}; +var faVolleyballBall = { + prefix: 'fas', + iconName: 'volleyball-ball', + icon: [512, 512, [], "f45f", "M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"] +}; +var faVolumeDown = { + prefix: 'fas', + iconName: 'volume-down', + icon: [384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"] +}; +var faVolumeMute = { + prefix: 'fas', + iconName: 'volume-mute', + icon: [512, 512, [], "f6a9", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"] +}; +var faVolumeOff = { + prefix: 'fas', + iconName: 'volume-off', + icon: [256, 512, [], "f026", "M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z"] +}; +var faVolumeUp = { + prefix: 'fas', + iconName: 'volume-up', + icon: [576, 512, [], "f028", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"] +}; +var faVoteYea = { + prefix: 'fas', + iconName: 'vote-yea', + icon: [640, 512, [], "f772", "M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"] +}; +var faVrCardboard = { + prefix: 'fas', + iconName: 'vr-cardboard', + icon: [640, 512, [], "f729", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"] +}; +var faWalking = { + prefix: 'fas', + iconName: 'walking', + icon: [320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"] +}; +var faWallet = { + prefix: 'fas', + iconName: 'wallet', + icon: [512, 512, [], "f555", "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] +}; +var faWarehouse = { + prefix: 'fas', + iconName: 'warehouse', + icon: [640, 512, [], "f494", "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"] +}; +var faWater = { + prefix: 'fas', + iconName: 'water', + icon: [576, 512, [], "f773", "M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"] +}; +var faWaveSquare = { + prefix: 'fas', + iconName: 'wave-square', + icon: [640, 512, [], "f83e", "M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z"] +}; +var faWeight = { + prefix: 'fas', + iconName: 'weight', + icon: [512, 512, [], "f496", "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"] +}; +var faWeightHanging = { + prefix: 'fas', + iconName: 'weight-hanging', + icon: [512, 512, [], "f5cd", "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"] +}; +var faWheelchair = { + prefix: 'fas', + iconName: 'wheelchair', + icon: [512, 512, [], "f193", "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"] +}; +var faWifi = { + prefix: 'fas', + iconName: 'wifi', + icon: [640, 512, [], "f1eb", "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"] +}; +var faWind = { + prefix: 'fas', + iconName: 'wind', + icon: [512, 512, [], "f72e", "M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z"] +}; +var faWindowClose = { + prefix: 'fas', + iconName: 'window-close', + icon: [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"] +}; +var faWindowMaximize = { + prefix: 'fas', + iconName: 'window-maximize', + icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"] +}; +var faWindowMinimize = { + prefix: 'fas', + iconName: 'window-minimize', + icon: [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"] +}; +var faWindowRestore = { + prefix: 'fas', + iconName: 'window-restore', + icon: [512, 512, [], "f2d2", "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"] +}; +var faWineBottle = { + prefix: 'fas', + iconName: 'wine-bottle', + icon: [512, 512, [], "f72f", "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"] +}; +var faWineGlass = { + prefix: 'fas', + iconName: 'wine-glass', + icon: [288, 512, [], "f4e3", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"] +}; +var faWineGlassAlt = { + prefix: 'fas', + iconName: 'wine-glass-alt', + icon: [288, 512, [], "f5ce", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"] +}; +var faWonSign = { + prefix: 'fas', + iconName: 'won-sign', + icon: [576, 512, [], "f159", "M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z"] +}; +var faWrench = { + prefix: 'fas', + iconName: 'wrench', + icon: [512, 512, [], "f0ad", "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] +}; +var faXRay = { + prefix: 'fas', + iconName: 'x-ray', + icon: [640, 512, [], "f497", "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"] +}; +var faYenSign = { + prefix: 'fas', + iconName: 'yen-sign', + icon: [384, 512, [], "f157", "M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z"] +}; +var faYinYang = { + prefix: 'fas', + iconName: 'yin-yang', + icon: [496, 512, [], "f6ad", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"] +}; +var _iconsCache = { + faAd: faAd, + faAddressBook: faAddressBook, + faAddressCard: faAddressCard, + faAdjust: faAdjust, + faAirFreshener: faAirFreshener, + faAlignCenter: faAlignCenter, + faAlignJustify: faAlignJustify, + faAlignLeft: faAlignLeft, + faAlignRight: faAlignRight, + faAllergies: faAllergies, + faAmbulance: faAmbulance, + faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting, + faAnchor: faAnchor, + faAngleDoubleDown: faAngleDoubleDown, + faAngleDoubleLeft: faAngleDoubleLeft, + faAngleDoubleRight: faAngleDoubleRight, + faAngleDoubleUp: faAngleDoubleUp, + faAngleDown: faAngleDown, + faAngleLeft: faAngleLeft, + faAngleRight: faAngleRight, + faAngleUp: faAngleUp, + faAngry: faAngry, + faAnkh: faAnkh, + faAppleAlt: faAppleAlt, + faArchive: faArchive, + faArchway: faArchway, + faArrowAltCircleDown: faArrowAltCircleDown, + faArrowAltCircleLeft: faArrowAltCircleLeft, + faArrowAltCircleRight: faArrowAltCircleRight, + faArrowAltCircleUp: faArrowAltCircleUp, + faArrowCircleDown: faArrowCircleDown, + faArrowCircleLeft: faArrowCircleLeft, + faArrowCircleRight: faArrowCircleRight, + faArrowCircleUp: faArrowCircleUp, + faArrowDown: faArrowDown, + faArrowLeft: faArrowLeft, + faArrowRight: faArrowRight, + faArrowUp: faArrowUp, + faArrowsAlt: faArrowsAlt, + faArrowsAltH: faArrowsAltH, + faArrowsAltV: faArrowsAltV, + faAssistiveListeningSystems: faAssistiveListeningSystems, + faAsterisk: faAsterisk, + faAt: faAt, + faAtlas: faAtlas, + faAtom: faAtom, + faAudioDescription: faAudioDescription, + faAward: faAward, + faBaby: faBaby, + faBabyCarriage: faBabyCarriage, + faBackspace: faBackspace, + faBackward: faBackward, + faBacon: faBacon, + faBacteria: faBacteria, + faBacterium: faBacterium, + faBahai: faBahai, + faBalanceScale: faBalanceScale, + faBalanceScaleLeft: faBalanceScaleLeft, + faBalanceScaleRight: faBalanceScaleRight, + faBan: faBan, + faBandAid: faBandAid, + faBarcode: faBarcode, + faBars: faBars, + faBaseballBall: faBaseballBall, + faBasketballBall: faBasketballBall, + faBath: faBath, + faBatteryEmpty: faBatteryEmpty, + faBatteryFull: faBatteryFull, + faBatteryHalf: faBatteryHalf, + faBatteryQuarter: faBatteryQuarter, + faBatteryThreeQuarters: faBatteryThreeQuarters, + faBed: faBed, + faBeer: faBeer, + faBell: faBell, + faBellSlash: faBellSlash, + faBezierCurve: faBezierCurve, + faBible: faBible, + faBicycle: faBicycle, + faBiking: faBiking, + faBinoculars: faBinoculars, + faBiohazard: faBiohazard, + faBirthdayCake: faBirthdayCake, + faBlender: faBlender, + faBlenderPhone: faBlenderPhone, + faBlind: faBlind, + faBlog: faBlog, + faBold: faBold, + faBolt: faBolt, + faBomb: faBomb, + faBone: faBone, + faBong: faBong, + faBook: faBook, + faBookDead: faBookDead, + faBookMedical: faBookMedical, + faBookOpen: faBookOpen, + faBookReader: faBookReader, + faBookmark: faBookmark, + faBorderAll: faBorderAll, + faBorderNone: faBorderNone, + faBorderStyle: faBorderStyle, + faBowlingBall: faBowlingBall, + faBox: faBox, + faBoxOpen: faBoxOpen, + faBoxTissue: faBoxTissue, + faBoxes: faBoxes, + faBraille: faBraille, + faBrain: faBrain, + faBreadSlice: faBreadSlice, + faBriefcase: faBriefcase, + faBriefcaseMedical: faBriefcaseMedical, + faBroadcastTower: faBroadcastTower, + faBroom: faBroom, + faBrush: faBrush, + faBug: faBug, + faBuilding: faBuilding, + faBullhorn: faBullhorn, + faBullseye: faBullseye, + faBurn: faBurn, + faBus: faBus, + faBusAlt: faBusAlt, + faBusinessTime: faBusinessTime, + faCalculator: faCalculator, + faCalendar: faCalendar, + faCalendarAlt: faCalendarAlt, + faCalendarCheck: faCalendarCheck, + faCalendarDay: faCalendarDay, + faCalendarMinus: faCalendarMinus, + faCalendarPlus: faCalendarPlus, + faCalendarTimes: faCalendarTimes, + faCalendarWeek: faCalendarWeek, + faCamera: faCamera, + faCameraRetro: faCameraRetro, + faCampground: faCampground, + faCandyCane: faCandyCane, + faCannabis: faCannabis, + faCapsules: faCapsules, + faCar: faCar, + faCarAlt: faCarAlt, + faCarBattery: faCarBattery, + faCarCrash: faCarCrash, + faCarSide: faCarSide, + faCaravan: faCaravan, + faCaretDown: faCaretDown, + faCaretLeft: faCaretLeft, + faCaretRight: faCaretRight, + faCaretSquareDown: faCaretSquareDown, + faCaretSquareLeft: faCaretSquareLeft, + faCaretSquareRight: faCaretSquareRight, + faCaretSquareUp: faCaretSquareUp, + faCaretUp: faCaretUp, + faCarrot: faCarrot, + faCartArrowDown: faCartArrowDown, + faCartPlus: faCartPlus, + faCashRegister: faCashRegister, + faCat: faCat, + faCertificate: faCertificate, + faChair: faChair, + faChalkboard: faChalkboard, + faChalkboardTeacher: faChalkboardTeacher, + faChargingStation: faChargingStation, + faChartArea: faChartArea, + faChartBar: faChartBar, + faChartLine: faChartLine, + faChartPie: faChartPie, + faCheck: faCheck, + faCheckCircle: faCheckCircle, + faCheckDouble: faCheckDouble, + faCheckSquare: faCheckSquare, + faCheese: faCheese, + faChess: faChess, + faChessBishop: faChessBishop, + faChessBoard: faChessBoard, + faChessKing: faChessKing, + faChessKnight: faChessKnight, + faChessPawn: faChessPawn, + faChessQueen: faChessQueen, + faChessRook: faChessRook, + faChevronCircleDown: faChevronCircleDown, + faChevronCircleLeft: faChevronCircleLeft, + faChevronCircleRight: faChevronCircleRight, + faChevronCircleUp: faChevronCircleUp, + faChevronDown: faChevronDown, + faChevronLeft: faChevronLeft, + faChevronRight: faChevronRight, + faChevronUp: faChevronUp, + faChild: faChild, + faChurch: faChurch, + faCircle: faCircle, + faCircleNotch: faCircleNotch, + faCity: faCity, + faClinicMedical: faClinicMedical, + faClipboard: faClipboard, + faClipboardCheck: faClipboardCheck, + faClipboardList: faClipboardList, + faClock: faClock, + faClone: faClone, + faClosedCaptioning: faClosedCaptioning, + faCloud: faCloud, + faCloudDownloadAlt: faCloudDownloadAlt, + faCloudMeatball: faCloudMeatball, + faCloudMoon: faCloudMoon, + faCloudMoonRain: faCloudMoonRain, + faCloudRain: faCloudRain, + faCloudShowersHeavy: faCloudShowersHeavy, + faCloudSun: faCloudSun, + faCloudSunRain: faCloudSunRain, + faCloudUploadAlt: faCloudUploadAlt, + faCocktail: faCocktail, + faCode: faCode, + faCodeBranch: faCodeBranch, + faCoffee: faCoffee, + faCog: faCog, + faCogs: faCogs, + faCoins: faCoins, + faColumns: faColumns, + faComment: faComment, + faCommentAlt: faCommentAlt, + faCommentDollar: faCommentDollar, + faCommentDots: faCommentDots, + faCommentMedical: faCommentMedical, + faCommentSlash: faCommentSlash, + faComments: faComments, + faCommentsDollar: faCommentsDollar, + faCompactDisc: faCompactDisc, + faCompass: faCompass, + faCompress: faCompress, + faCompressAlt: faCompressAlt, + faCompressArrowsAlt: faCompressArrowsAlt, + faConciergeBell: faConciergeBell, + faCookie: faCookie, + faCookieBite: faCookieBite, + faCopy: faCopy, + faCopyright: faCopyright, + faCouch: faCouch, + faCreditCard: faCreditCard, + faCrop: faCrop, + faCropAlt: faCropAlt, + faCross: faCross, + faCrosshairs: faCrosshairs, + faCrow: faCrow, + faCrown: faCrown, + faCrutch: faCrutch, + faCube: faCube, + faCubes: faCubes, + faCut: faCut, + faDatabase: faDatabase, + faDeaf: faDeaf, + faDemocrat: faDemocrat, + faDesktop: faDesktop, + faDharmachakra: faDharmachakra, + faDiagnoses: faDiagnoses, + faDice: faDice, + faDiceD20: faDiceD20, + faDiceD6: faDiceD6, + faDiceFive: faDiceFive, + faDiceFour: faDiceFour, + faDiceOne: faDiceOne, + faDiceSix: faDiceSix, + faDiceThree: faDiceThree, + faDiceTwo: faDiceTwo, + faDigitalTachograph: faDigitalTachograph, + faDirections: faDirections, + faDisease: faDisease, + faDivide: faDivide, + faDizzy: faDizzy, + faDna: faDna, + faDog: faDog, + faDollarSign: faDollarSign, + faDolly: faDolly, + faDollyFlatbed: faDollyFlatbed, + faDonate: faDonate, + faDoorClosed: faDoorClosed, + faDoorOpen: faDoorOpen, + faDotCircle: faDotCircle, + faDove: faDove, + faDownload: faDownload, + faDraftingCompass: faDraftingCompass, + faDragon: faDragon, + faDrawPolygon: faDrawPolygon, + faDrum: faDrum, + faDrumSteelpan: faDrumSteelpan, + faDrumstickBite: faDrumstickBite, + faDumbbell: faDumbbell, + faDumpster: faDumpster, + faDumpsterFire: faDumpsterFire, + faDungeon: faDungeon, + faEdit: faEdit, + faEgg: faEgg, + faEject: faEject, + faEllipsisH: faEllipsisH, + faEllipsisV: faEllipsisV, + faEnvelope: faEnvelope, + faEnvelopeOpen: faEnvelopeOpen, + faEnvelopeOpenText: faEnvelopeOpenText, + faEnvelopeSquare: faEnvelopeSquare, + faEquals: faEquals, + faEraser: faEraser, + faEthernet: faEthernet, + faEuroSign: faEuroSign, + faExchangeAlt: faExchangeAlt, + faExclamation: faExclamation, + faExclamationCircle: faExclamationCircle, + faExclamationTriangle: faExclamationTriangle, + faExpand: faExpand, + faExpandAlt: faExpandAlt, + faExpandArrowsAlt: faExpandArrowsAlt, + faExternalLinkAlt: faExternalLinkAlt, + faExternalLinkSquareAlt: faExternalLinkSquareAlt, + faEye: faEye, + faEyeDropper: faEyeDropper, + faEyeSlash: faEyeSlash, + faFan: faFan, + faFastBackward: faFastBackward, + faFastForward: faFastForward, + faFaucet: faFaucet, + faFax: faFax, + faFeather: faFeather, + faFeatherAlt: faFeatherAlt, + faFemale: faFemale, + faFighterJet: faFighterJet, + faFile: faFile, + faFileAlt: faFileAlt, + faFileArchive: faFileArchive, + faFileAudio: faFileAudio, + faFileCode: faFileCode, + faFileContract: faFileContract, + faFileCsv: faFileCsv, + faFileDownload: faFileDownload, + faFileExcel: faFileExcel, + faFileExport: faFileExport, + faFileImage: faFileImage, + faFileImport: faFileImport, + faFileInvoice: faFileInvoice, + faFileInvoiceDollar: faFileInvoiceDollar, + faFileMedical: faFileMedical, + faFileMedicalAlt: faFileMedicalAlt, + faFilePdf: faFilePdf, + faFilePowerpoint: faFilePowerpoint, + faFilePrescription: faFilePrescription, + faFileSignature: faFileSignature, + faFileUpload: faFileUpload, + faFileVideo: faFileVideo, + faFileWord: faFileWord, + faFill: faFill, + faFillDrip: faFillDrip, + faFilm: faFilm, + faFilter: faFilter, + faFingerprint: faFingerprint, + faFire: faFire, + faFireAlt: faFireAlt, + faFireExtinguisher: faFireExtinguisher, + faFirstAid: faFirstAid, + faFish: faFish, + faFistRaised: faFistRaised, + faFlag: faFlag, + faFlagCheckered: faFlagCheckered, + faFlagUsa: faFlagUsa, + faFlask: faFlask, + faFlushed: faFlushed, + faFolder: faFolder, + faFolderMinus: faFolderMinus, + faFolderOpen: faFolderOpen, + faFolderPlus: faFolderPlus, + faFont: faFont, + faFontAwesomeLogoFull: faFontAwesomeLogoFull, + faFootballBall: faFootballBall, + faForward: faForward, + faFrog: faFrog, + faFrown: faFrown, + faFrownOpen: faFrownOpen, + faFunnelDollar: faFunnelDollar, + faFutbol: faFutbol, + faGamepad: faGamepad, + faGasPump: faGasPump, + faGavel: faGavel, + faGem: faGem, + faGenderless: faGenderless, + faGhost: faGhost, + faGift: faGift, + faGifts: faGifts, + faGlassCheers: faGlassCheers, + faGlassMartini: faGlassMartini, + faGlassMartiniAlt: faGlassMartiniAlt, + faGlassWhiskey: faGlassWhiskey, + faGlasses: faGlasses, + faGlobe: faGlobe, + faGlobeAfrica: faGlobeAfrica, + faGlobeAmericas: faGlobeAmericas, + faGlobeAsia: faGlobeAsia, + faGlobeEurope: faGlobeEurope, + faGolfBall: faGolfBall, + faGopuram: faGopuram, + faGraduationCap: faGraduationCap, + faGreaterThan: faGreaterThan, + faGreaterThanEqual: faGreaterThanEqual, + faGrimace: faGrimace, + faGrin: faGrin, + faGrinAlt: faGrinAlt, + faGrinBeam: faGrinBeam, + faGrinBeamSweat: faGrinBeamSweat, + faGrinHearts: faGrinHearts, + faGrinSquint: faGrinSquint, + faGrinSquintTears: faGrinSquintTears, + faGrinStars: faGrinStars, + faGrinTears: faGrinTears, + faGrinTongue: faGrinTongue, + faGrinTongueSquint: faGrinTongueSquint, + faGrinTongueWink: faGrinTongueWink, + faGrinWink: faGrinWink, + faGripHorizontal: faGripHorizontal, + faGripLines: faGripLines, + faGripLinesVertical: faGripLinesVertical, + faGripVertical: faGripVertical, + faGuitar: faGuitar, + faHSquare: faHSquare, + faHamburger: faHamburger, + faHammer: faHammer, + faHamsa: faHamsa, + faHandHolding: faHandHolding, + faHandHoldingHeart: faHandHoldingHeart, + faHandHoldingMedical: faHandHoldingMedical, + faHandHoldingUsd: faHandHoldingUsd, + faHandHoldingWater: faHandHoldingWater, + faHandLizard: faHandLizard, + faHandMiddleFinger: faHandMiddleFinger, + faHandPaper: faHandPaper, + faHandPeace: faHandPeace, + faHandPointDown: faHandPointDown, + faHandPointLeft: faHandPointLeft, + faHandPointRight: faHandPointRight, + faHandPointUp: faHandPointUp, + faHandPointer: faHandPointer, + faHandRock: faHandRock, + faHandScissors: faHandScissors, + faHandSparkles: faHandSparkles, + faHandSpock: faHandSpock, + faHands: faHands, + faHandsHelping: faHandsHelping, + faHandsWash: faHandsWash, + faHandshake: faHandshake, + faHandshakeAltSlash: faHandshakeAltSlash, + faHandshakeSlash: faHandshakeSlash, + faHanukiah: faHanukiah, + faHardHat: faHardHat, + faHashtag: faHashtag, + faHatCowboy: faHatCowboy, + faHatCowboySide: faHatCowboySide, + faHatWizard: faHatWizard, + faHdd: faHdd, + faHeadSideCough: faHeadSideCough, + faHeadSideCoughSlash: faHeadSideCoughSlash, + faHeadSideMask: faHeadSideMask, + faHeadSideVirus: faHeadSideVirus, + faHeading: faHeading, + faHeadphones: faHeadphones, + faHeadphonesAlt: faHeadphonesAlt, + faHeadset: faHeadset, + faHeart: faHeart, + faHeartBroken: faHeartBroken, + faHeartbeat: faHeartbeat, + faHelicopter: faHelicopter, + faHighlighter: faHighlighter, + faHiking: faHiking, + faHippo: faHippo, + faHistory: faHistory, + faHockeyPuck: faHockeyPuck, + faHollyBerry: faHollyBerry, + faHome: faHome, + faHorse: faHorse, + faHorseHead: faHorseHead, + faHospital: faHospital, + faHospitalAlt: faHospitalAlt, + faHospitalSymbol: faHospitalSymbol, + faHospitalUser: faHospitalUser, + faHotTub: faHotTub, + faHotdog: faHotdog, + faHotel: faHotel, + faHourglass: faHourglass, + faHourglassEnd: faHourglassEnd, + faHourglassHalf: faHourglassHalf, + faHourglassStart: faHourglassStart, + faHouseDamage: faHouseDamage, + faHouseUser: faHouseUser, + faHryvnia: faHryvnia, + faICursor: faICursor, + faIceCream: faIceCream, + faIcicles: faIcicles, + faIcons: faIcons, + faIdBadge: faIdBadge, + faIdCard: faIdCard, + faIdCardAlt: faIdCardAlt, + faIgloo: faIgloo, + faImage: faImage, + faImages: faImages, + faInbox: faInbox, + faIndent: faIndent, + faIndustry: faIndustry, + faInfinity: faInfinity, + faInfo: faInfo, + faInfoCircle: faInfoCircle, + faItalic: faItalic, + faJedi: faJedi, + faJoint: faJoint, + faJournalWhills: faJournalWhills, + faKaaba: faKaaba, + faKey: faKey, + faKeyboard: faKeyboard, + faKhanda: faKhanda, + faKiss: faKiss, + faKissBeam: faKissBeam, + faKissWinkHeart: faKissWinkHeart, + faKiwiBird: faKiwiBird, + faLandmark: faLandmark, + faLanguage: faLanguage, + faLaptop: faLaptop, + faLaptopCode: faLaptopCode, + faLaptopHouse: faLaptopHouse, + faLaptopMedical: faLaptopMedical, + faLaugh: faLaugh, + faLaughBeam: faLaughBeam, + faLaughSquint: faLaughSquint, + faLaughWink: faLaughWink, + faLayerGroup: faLayerGroup, + faLeaf: faLeaf, + faLemon: faLemon, + faLessThan: faLessThan, + faLessThanEqual: faLessThanEqual, + faLevelDownAlt: faLevelDownAlt, + faLevelUpAlt: faLevelUpAlt, + faLifeRing: faLifeRing, + faLightbulb: faLightbulb, + faLink: faLink, + faLiraSign: faLiraSign, + faList: faList, + faListAlt: faListAlt, + faListOl: faListOl, + faListUl: faListUl, + faLocationArrow: faLocationArrow, + faLock: faLock, + faLockOpen: faLockOpen, + faLongArrowAltDown: faLongArrowAltDown, + faLongArrowAltLeft: faLongArrowAltLeft, + faLongArrowAltRight: faLongArrowAltRight, + faLongArrowAltUp: faLongArrowAltUp, + faLowVision: faLowVision, + faLuggageCart: faLuggageCart, + faLungs: faLungs, + faLungsVirus: faLungsVirus, + faMagic: faMagic, + faMagnet: faMagnet, + faMailBulk: faMailBulk, + faMale: faMale, + faMap: faMap, + faMapMarked: faMapMarked, + faMapMarkedAlt: faMapMarkedAlt, + faMapMarker: faMapMarker, + faMapMarkerAlt: faMapMarkerAlt, + faMapPin: faMapPin, + faMapSigns: faMapSigns, + faMarker: faMarker, + faMars: faMars, + faMarsDouble: faMarsDouble, + faMarsStroke: faMarsStroke, + faMarsStrokeH: faMarsStrokeH, + faMarsStrokeV: faMarsStrokeV, + faMask: faMask, + faMedal: faMedal, + faMedkit: faMedkit, + faMeh: faMeh, + faMehBlank: faMehBlank, + faMehRollingEyes: faMehRollingEyes, + faMemory: faMemory, + faMenorah: faMenorah, + faMercury: faMercury, + faMeteor: faMeteor, + faMicrochip: faMicrochip, + faMicrophone: faMicrophone, + faMicrophoneAlt: faMicrophoneAlt, + faMicrophoneAltSlash: faMicrophoneAltSlash, + faMicrophoneSlash: faMicrophoneSlash, + faMicroscope: faMicroscope, + faMinus: faMinus, + faMinusCircle: faMinusCircle, + faMinusSquare: faMinusSquare, + faMitten: faMitten, + faMobile: faMobile, + faMobileAlt: faMobileAlt, + faMoneyBill: faMoneyBill, + faMoneyBillAlt: faMoneyBillAlt, + faMoneyBillWave: faMoneyBillWave, + faMoneyBillWaveAlt: faMoneyBillWaveAlt, + faMoneyCheck: faMoneyCheck, + faMoneyCheckAlt: faMoneyCheckAlt, + faMonument: faMonument, + faMoon: faMoon, + faMortarPestle: faMortarPestle, + faMosque: faMosque, + faMotorcycle: faMotorcycle, + faMountain: faMountain, + faMouse: faMouse, + faMousePointer: faMousePointer, + faMugHot: faMugHot, + faMusic: faMusic, + faNetworkWired: faNetworkWired, + faNeuter: faNeuter, + faNewspaper: faNewspaper, + faNotEqual: faNotEqual, + faNotesMedical: faNotesMedical, + faObjectGroup: faObjectGroup, + faObjectUngroup: faObjectUngroup, + faOilCan: faOilCan, + faOm: faOm, + faOtter: faOtter, + faOutdent: faOutdent, + faPager: faPager, + faPaintBrush: faPaintBrush, + faPaintRoller: faPaintRoller, + faPalette: faPalette, + faPallet: faPallet, + faPaperPlane: faPaperPlane, + faPaperclip: faPaperclip, + faParachuteBox: faParachuteBox, + faParagraph: faParagraph, + faParking: faParking, + faPassport: faPassport, + faPastafarianism: faPastafarianism, + faPaste: faPaste, + faPause: faPause, + faPauseCircle: faPauseCircle, + faPaw: faPaw, + faPeace: faPeace, + faPen: faPen, + faPenAlt: faPenAlt, + faPenFancy: faPenFancy, + faPenNib: faPenNib, + faPenSquare: faPenSquare, + faPencilAlt: faPencilAlt, + faPencilRuler: faPencilRuler, + faPeopleArrows: faPeopleArrows, + faPeopleCarry: faPeopleCarry, + faPepperHot: faPepperHot, + faPercent: faPercent, + faPercentage: faPercentage, + faPersonBooth: faPersonBooth, + faPhone: faPhone, + faPhoneAlt: faPhoneAlt, + faPhoneSlash: faPhoneSlash, + faPhoneSquare: faPhoneSquare, + faPhoneSquareAlt: faPhoneSquareAlt, + faPhoneVolume: faPhoneVolume, + faPhotoVideo: faPhotoVideo, + faPiggyBank: faPiggyBank, + faPills: faPills, + faPizzaSlice: faPizzaSlice, + faPlaceOfWorship: faPlaceOfWorship, + faPlane: faPlane, + faPlaneArrival: faPlaneArrival, + faPlaneDeparture: faPlaneDeparture, + faPlaneSlash: faPlaneSlash, + faPlay: faPlay, + faPlayCircle: faPlayCircle, + faPlug: faPlug, + faPlus: faPlus, + faPlusCircle: faPlusCircle, + faPlusSquare: faPlusSquare, + faPodcast: faPodcast, + faPoll: faPoll, + faPollH: faPollH, + faPoo: faPoo, + faPooStorm: faPooStorm, + faPoop: faPoop, + faPortrait: faPortrait, + faPoundSign: faPoundSign, + faPowerOff: faPowerOff, + faPray: faPray, + faPrayingHands: faPrayingHands, + faPrescription: faPrescription, + faPrescriptionBottle: faPrescriptionBottle, + faPrescriptionBottleAlt: faPrescriptionBottleAlt, + faPrint: faPrint, + faProcedures: faProcedures, + faProjectDiagram: faProjectDiagram, + faPumpMedical: faPumpMedical, + faPumpSoap: faPumpSoap, + faPuzzlePiece: faPuzzlePiece, + faQrcode: faQrcode, + faQuestion: faQuestion, + faQuestionCircle: faQuestionCircle, + faQuidditch: faQuidditch, + faQuoteLeft: faQuoteLeft, + faQuoteRight: faQuoteRight, + faQuran: faQuran, + faRadiation: faRadiation, + faRadiationAlt: faRadiationAlt, + faRainbow: faRainbow, + faRandom: faRandom, + faReceipt: faReceipt, + faRecordVinyl: faRecordVinyl, + faRecycle: faRecycle, + faRedo: faRedo, + faRedoAlt: faRedoAlt, + faRegistered: faRegistered, + faRemoveFormat: faRemoveFormat, + faReply: faReply, + faReplyAll: faReplyAll, + faRepublican: faRepublican, + faRestroom: faRestroom, + faRetweet: faRetweet, + faRibbon: faRibbon, + faRing: faRing, + faRoad: faRoad, + faRobot: faRobot, + faRocket: faRocket, + faRoute: faRoute, + faRss: faRss, + faRssSquare: faRssSquare, + faRubleSign: faRubleSign, + faRuler: faRuler, + faRulerCombined: faRulerCombined, + faRulerHorizontal: faRulerHorizontal, + faRulerVertical: faRulerVertical, + faRunning: faRunning, + faRupeeSign: faRupeeSign, + faSadCry: faSadCry, + faSadTear: faSadTear, + faSatellite: faSatellite, + faSatelliteDish: faSatelliteDish, + faSave: faSave, + faSchool: faSchool, + faScrewdriver: faScrewdriver, + faScroll: faScroll, + faSdCard: faSdCard, + faSearch: faSearch, + faSearchDollar: faSearchDollar, + faSearchLocation: faSearchLocation, + faSearchMinus: faSearchMinus, + faSearchPlus: faSearchPlus, + faSeedling: faSeedling, + faServer: faServer, + faShapes: faShapes, + faShare: faShare, + faShareAlt: faShareAlt, + faShareAltSquare: faShareAltSquare, + faShareSquare: faShareSquare, + faShekelSign: faShekelSign, + faShieldAlt: faShieldAlt, + faShieldVirus: faShieldVirus, + faShip: faShip, + faShippingFast: faShippingFast, + faShoePrints: faShoePrints, + faShoppingBag: faShoppingBag, + faShoppingBasket: faShoppingBasket, + faShoppingCart: faShoppingCart, + faShower: faShower, + faShuttleVan: faShuttleVan, + faSign: faSign, + faSignInAlt: faSignInAlt, + faSignLanguage: faSignLanguage, + faSignOutAlt: faSignOutAlt, + faSignal: faSignal, + faSignature: faSignature, + faSimCard: faSimCard, + faSink: faSink, + faSitemap: faSitemap, + faSkating: faSkating, + faSkiing: faSkiing, + faSkiingNordic: faSkiingNordic, + faSkull: faSkull, + faSkullCrossbones: faSkullCrossbones, + faSlash: faSlash, + faSleigh: faSleigh, + faSlidersH: faSlidersH, + faSmile: faSmile, + faSmileBeam: faSmileBeam, + faSmileWink: faSmileWink, + faSmog: faSmog, + faSmoking: faSmoking, + faSmokingBan: faSmokingBan, + faSms: faSms, + faSnowboarding: faSnowboarding, + faSnowflake: faSnowflake, + faSnowman: faSnowman, + faSnowplow: faSnowplow, + faSoap: faSoap, + faSocks: faSocks, + faSolarPanel: faSolarPanel, + faSort: faSort, + faSortAlphaDown: faSortAlphaDown, + faSortAlphaDownAlt: faSortAlphaDownAlt, + faSortAlphaUp: faSortAlphaUp, + faSortAlphaUpAlt: faSortAlphaUpAlt, + faSortAmountDown: faSortAmountDown, + faSortAmountDownAlt: faSortAmountDownAlt, + faSortAmountUp: faSortAmountUp, + faSortAmountUpAlt: faSortAmountUpAlt, + faSortDown: faSortDown, + faSortNumericDown: faSortNumericDown, + faSortNumericDownAlt: faSortNumericDownAlt, + faSortNumericUp: faSortNumericUp, + faSortNumericUpAlt: faSortNumericUpAlt, + faSortUp: faSortUp, + faSpa: faSpa, + faSpaceShuttle: faSpaceShuttle, + faSpellCheck: faSpellCheck, + faSpider: faSpider, + faSpinner: faSpinner, + faSplotch: faSplotch, + faSprayCan: faSprayCan, + faSquare: faSquare, + faSquareFull: faSquareFull, + faSquareRootAlt: faSquareRootAlt, + faStamp: faStamp, + faStar: faStar, + faStarAndCrescent: faStarAndCrescent, + faStarHalf: faStarHalf, + faStarHalfAlt: faStarHalfAlt, + faStarOfDavid: faStarOfDavid, + faStarOfLife: faStarOfLife, + faStepBackward: faStepBackward, + faStepForward: faStepForward, + faStethoscope: faStethoscope, + faStickyNote: faStickyNote, + faStop: faStop, + faStopCircle: faStopCircle, + faStopwatch: faStopwatch, + faStopwatch20: faStopwatch20, + faStore: faStore, + faStoreAlt: faStoreAlt, + faStoreAltSlash: faStoreAltSlash, + faStoreSlash: faStoreSlash, + faStream: faStream, + faStreetView: faStreetView, + faStrikethrough: faStrikethrough, + faStroopwafel: faStroopwafel, + faSubscript: faSubscript, + faSubway: faSubway, + faSuitcase: faSuitcase, + faSuitcaseRolling: faSuitcaseRolling, + faSun: faSun, + faSuperscript: faSuperscript, + faSurprise: faSurprise, + faSwatchbook: faSwatchbook, + faSwimmer: faSwimmer, + faSwimmingPool: faSwimmingPool, + faSynagogue: faSynagogue, + faSync: faSync, + faSyncAlt: faSyncAlt, + faSyringe: faSyringe, + faTable: faTable, + faTableTennis: faTableTennis, + faTablet: faTablet, + faTabletAlt: faTabletAlt, + faTablets: faTablets, + faTachometerAlt: faTachometerAlt, + faTag: faTag, + faTags: faTags, + faTape: faTape, + faTasks: faTasks, + faTaxi: faTaxi, + faTeeth: faTeeth, + faTeethOpen: faTeethOpen, + faTemperatureHigh: faTemperatureHigh, + faTemperatureLow: faTemperatureLow, + faTenge: faTenge, + faTerminal: faTerminal, + faTextHeight: faTextHeight, + faTextWidth: faTextWidth, + faTh: faTh, + faThLarge: faThLarge, + faThList: faThList, + faTheaterMasks: faTheaterMasks, + faThermometer: faThermometer, + faThermometerEmpty: faThermometerEmpty, + faThermometerFull: faThermometerFull, + faThermometerHalf: faThermometerHalf, + faThermometerQuarter: faThermometerQuarter, + faThermometerThreeQuarters: faThermometerThreeQuarters, + faThumbsDown: faThumbsDown, + faThumbsUp: faThumbsUp, + faThumbtack: faThumbtack, + faTicketAlt: faTicketAlt, + faTimes: faTimes, + faTimesCircle: faTimesCircle, + faTint: faTint, + faTintSlash: faTintSlash, + faTired: faTired, + faToggleOff: faToggleOff, + faToggleOn: faToggleOn, + faToilet: faToilet, + faToiletPaper: faToiletPaper, + faToiletPaperSlash: faToiletPaperSlash, + faToolbox: faToolbox, + faTools: faTools, + faTooth: faTooth, + faTorah: faTorah, + faToriiGate: faToriiGate, + faTractor: faTractor, + faTrademark: faTrademark, + faTrafficLight: faTrafficLight, + faTrailer: faTrailer, + faTrain: faTrain, + faTram: faTram, + faTransgender: faTransgender, + faTransgenderAlt: faTransgenderAlt, + faTrash: faTrash, + faTrashAlt: faTrashAlt, + faTrashRestore: faTrashRestore, + faTrashRestoreAlt: faTrashRestoreAlt, + faTree: faTree, + faTrophy: faTrophy, + faTruck: faTruck, + faTruckLoading: faTruckLoading, + faTruckMonster: faTruckMonster, + faTruckMoving: faTruckMoving, + faTruckPickup: faTruckPickup, + faTshirt: faTshirt, + faTty: faTty, + faTv: faTv, + faUmbrella: faUmbrella, + faUmbrellaBeach: faUmbrellaBeach, + faUnderline: faUnderline, + faUndo: faUndo, + faUndoAlt: faUndoAlt, + faUniversalAccess: faUniversalAccess, + faUniversity: faUniversity, + faUnlink: faUnlink, + faUnlock: faUnlock, + faUnlockAlt: faUnlockAlt, + faUpload: faUpload, + faUser: faUser, + faUserAlt: faUserAlt, + faUserAltSlash: faUserAltSlash, + faUserAstronaut: faUserAstronaut, + faUserCheck: faUserCheck, + faUserCircle: faUserCircle, + faUserClock: faUserClock, + faUserCog: faUserCog, + faUserEdit: faUserEdit, + faUserFriends: faUserFriends, + faUserGraduate: faUserGraduate, + faUserInjured: faUserInjured, + faUserLock: faUserLock, + faUserMd: faUserMd, + faUserMinus: faUserMinus, + faUserNinja: faUserNinja, + faUserNurse: faUserNurse, + faUserPlus: faUserPlus, + faUserSecret: faUserSecret, + faUserShield: faUserShield, + faUserSlash: faUserSlash, + faUserTag: faUserTag, + faUserTie: faUserTie, + faUserTimes: faUserTimes, + faUsers: faUsers, + faUsersCog: faUsersCog, + faUsersSlash: faUsersSlash, + faUtensilSpoon: faUtensilSpoon, + faUtensils: faUtensils, + faVectorSquare: faVectorSquare, + faVenus: faVenus, + faVenusDouble: faVenusDouble, + faVenusMars: faVenusMars, + faVest: faVest, + faVestPatches: faVestPatches, + faVial: faVial, + faVials: faVials, + faVideo: faVideo, + faVideoSlash: faVideoSlash, + faVihara: faVihara, + faVirus: faVirus, + faVirusSlash: faVirusSlash, + faViruses: faViruses, + faVoicemail: faVoicemail, + faVolleyballBall: faVolleyballBall, + faVolumeDown: faVolumeDown, + faVolumeMute: faVolumeMute, + faVolumeOff: faVolumeOff, + faVolumeUp: faVolumeUp, + faVoteYea: faVoteYea, + faVrCardboard: faVrCardboard, + faWalking: faWalking, + faWallet: faWallet, + faWarehouse: faWarehouse, + faWater: faWater, + faWaveSquare: faWaveSquare, + faWeight: faWeight, + faWeightHanging: faWeightHanging, + faWheelchair: faWheelchair, + faWifi: faWifi, + faWind: faWind, + faWindowClose: faWindowClose, + faWindowMaximize: faWindowMaximize, + faWindowMinimize: faWindowMinimize, + faWindowRestore: faWindowRestore, + faWineBottle: faWineBottle, + faWineGlass: faWineGlass, + faWineGlassAlt: faWineGlassAlt, + faWonSign: faWonSign, + faWrench: faWrench, + faXRay: faXRay, + faYenSign: faYenSign, + faYinYang: faYinYang +}; + +export { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang }; diff --git a/node_modules/@fortawesome/free-solid-svg-icons/index.js b/node_modules/@fortawesome/free-solid-svg-icons/index.js new file mode 100644 index 0000000..d3d5e3a --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/index.js @@ -0,0 +1,7034 @@ +/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global['free-solid-svg-icons'] = {}))); +}(this, (function (exports) { 'use strict'; + + var prefix = "fas"; + var faAd = { + prefix: 'fas', + iconName: 'ad', + icon: [512, 512, [], "f641", "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"] + }; + var faAddressBook = { + prefix: 'fas', + iconName: 'address-book', + icon: [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"] + }; + var faAddressCard = { + prefix: 'fas', + iconName: 'address-card', + icon: [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"] + }; + var faAdjust = { + prefix: 'fas', + iconName: 'adjust', + icon: [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"] + }; + var faAirFreshener = { + prefix: 'fas', + iconName: 'air-freshener', + icon: [512, 512, [], "f5d0", "M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z"] + }; + var faAlignCenter = { + prefix: 'fas', + iconName: 'align-center', + icon: [448, 512, [], "f037", "M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z"] + }; + var faAlignJustify = { + prefix: 'fas', + iconName: 'align-justify', + icon: [448, 512, [], "f039", "M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faAlignLeft = { + prefix: 'fas', + iconName: 'align-left', + icon: [448, 512, [], "f036", "M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faAlignRight = { + prefix: 'fas', + iconName: 'align-right', + icon: [448, 512, [], "f038", "M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z"] + }; + var faAllergies = { + prefix: 'fas', + iconName: 'allergies', + icon: [448, 512, [], "f461", "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] + }; + var faAmbulance = { + prefix: 'fas', + iconName: 'ambulance', + icon: [640, 512, [], "f0f9", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"] + }; + var faAmericanSignLanguageInterpreting = { + prefix: 'fas', + iconName: 'american-sign-language-interpreting', + icon: [640, 512, [], "f2a3", "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"] + }; + var faAnchor = { + prefix: 'fas', + iconName: 'anchor', + icon: [576, 512, [], "f13d", "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"] + }; + var faAngleDoubleDown = { + prefix: 'fas', + iconName: 'angle-double-down', + icon: [320, 512, [], "f103", "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"] + }; + var faAngleDoubleLeft = { + prefix: 'fas', + iconName: 'angle-double-left', + icon: [448, 512, [], "f100", "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"] + }; + var faAngleDoubleRight = { + prefix: 'fas', + iconName: 'angle-double-right', + icon: [448, 512, [], "f101", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"] + }; + var faAngleDoubleUp = { + prefix: 'fas', + iconName: 'angle-double-up', + icon: [320, 512, [], "f102", "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"] + }; + var faAngleDown = { + prefix: 'fas', + iconName: 'angle-down', + icon: [320, 512, [], "f107", "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"] + }; + var faAngleLeft = { + prefix: 'fas', + iconName: 'angle-left', + icon: [256, 512, [], "f104", "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"] + }; + var faAngleRight = { + prefix: 'fas', + iconName: 'angle-right', + icon: [256, 512, [], "f105", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"] + }; + var faAngleUp = { + prefix: 'fas', + iconName: 'angle-up', + icon: [320, 512, [], "f106", "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"] + }; + var faAngry = { + prefix: 'fas', + iconName: 'angry', + icon: [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"] + }; + var faAnkh = { + prefix: 'fas', + iconName: 'ankh', + icon: [320, 512, [], "f644", "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"] + }; + var faAppleAlt = { + prefix: 'fas', + iconName: 'apple-alt', + icon: [448, 512, [], "f5d1", "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"] + }; + var faArchive = { + prefix: 'fas', + iconName: 'archive', + icon: [512, 512, [], "f187", "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"] + }; + var faArchway = { + prefix: 'fas', + iconName: 'archway', + icon: [576, 512, [], "f557", "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"] + }; + var faArrowAltCircleDown = { + prefix: 'fas', + iconName: 'arrow-alt-circle-down', + icon: [512, 512, [], "f358", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"] + }; + var faArrowAltCircleLeft = { + prefix: 'fas', + iconName: 'arrow-alt-circle-left', + icon: [512, 512, [], "f359", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"] + }; + var faArrowAltCircleRight = { + prefix: 'fas', + iconName: 'arrow-alt-circle-right', + icon: [512, 512, [], "f35a", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"] + }; + var faArrowAltCircleUp = { + prefix: 'fas', + iconName: 'arrow-alt-circle-up', + icon: [512, 512, [], "f35b", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"] + }; + var faArrowCircleDown = { + prefix: 'fas', + iconName: 'arrow-circle-down', + icon: [512, 512, [], "f0ab", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"] + }; + var faArrowCircleLeft = { + prefix: 'fas', + iconName: 'arrow-circle-left', + icon: [512, 512, [], "f0a8", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"] + }; + var faArrowCircleRight = { + prefix: 'fas', + iconName: 'arrow-circle-right', + icon: [512, 512, [], "f0a9", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"] + }; + var faArrowCircleUp = { + prefix: 'fas', + iconName: 'arrow-circle-up', + icon: [512, 512, [], "f0aa", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"] + }; + var faArrowDown = { + prefix: 'fas', + iconName: 'arrow-down', + icon: [448, 512, [], "f063", "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"] + }; + var faArrowLeft = { + prefix: 'fas', + iconName: 'arrow-left', + icon: [448, 512, [], "f060", "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"] + }; + var faArrowRight = { + prefix: 'fas', + iconName: 'arrow-right', + icon: [448, 512, [], "f061", "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"] + }; + var faArrowUp = { + prefix: 'fas', + iconName: 'arrow-up', + icon: [448, 512, [], "f062", "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"] + }; + var faArrowsAlt = { + prefix: 'fas', + iconName: 'arrows-alt', + icon: [512, 512, [], "f0b2", "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"] + }; + var faArrowsAltH = { + prefix: 'fas', + iconName: 'arrows-alt-h', + icon: [512, 512, [], "f337", "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"] + }; + var faArrowsAltV = { + prefix: 'fas', + iconName: 'arrows-alt-v', + icon: [256, 512, [], "f338", "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"] + }; + var faAssistiveListeningSystems = { + prefix: 'fas', + iconName: 'assistive-listening-systems', + icon: [512, 512, [], "f2a2", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"] + }; + var faAsterisk = { + prefix: 'fas', + iconName: 'asterisk', + icon: [512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"] + }; + var faAt = { + prefix: 'fas', + iconName: 'at', + icon: [512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"] + }; + var faAtlas = { + prefix: 'fas', + iconName: 'atlas', + icon: [448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"] + }; + var faAtom = { + prefix: 'fas', + iconName: 'atom', + icon: [448, 512, [], "f5d2", "M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z"] + }; + var faAudioDescription = { + prefix: 'fas', + iconName: 'audio-description', + icon: [512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"] + }; + var faAward = { + prefix: 'fas', + iconName: 'award', + icon: [384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"] + }; + var faBaby = { + prefix: 'fas', + iconName: 'baby', + icon: [384, 512, [], "f77c", "M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"] + }; + var faBabyCarriage = { + prefix: 'fas', + iconName: 'baby-carriage', + icon: [512, 512, [], "f77d", "M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z"] + }; + var faBackspace = { + prefix: 'fas', + iconName: 'backspace', + icon: [640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"] + }; + var faBackward = { + prefix: 'fas', + iconName: 'backward', + icon: [512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"] + }; + var faBacon = { + prefix: 'fas', + iconName: 'bacon', + icon: [576, 512, [], "f7e5", "M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"] + }; + var faBacteria = { + prefix: 'fas', + iconName: 'bacteria', + icon: [640, 512, [], "e059", "M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z"] + }; + var faBacterium = { + prefix: 'fas', + iconName: 'bacterium', + icon: [512, 512, [], "e05a", "M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z"] + }; + var faBahai = { + prefix: 'fas', + iconName: 'bahai', + icon: [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"] + }; + var faBalanceScale = { + prefix: 'fas', + iconName: 'balance-scale', + icon: [640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] + }; + var faBalanceScaleLeft = { + prefix: 'fas', + iconName: 'balance-scale-left', + icon: [640, 512, [], "f515", "M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"] + }; + var faBalanceScaleRight = { + prefix: 'fas', + iconName: 'balance-scale-right', + icon: [640, 512, [], "f516", "M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"] + }; + var faBan = { + prefix: 'fas', + iconName: 'ban', + icon: [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"] + }; + var faBandAid = { + prefix: 'fas', + iconName: 'band-aid', + icon: [640, 512, [], "f462", "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"] + }; + var faBarcode = { + prefix: 'fas', + iconName: 'barcode', + icon: [512, 512, [], "f02a", "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"] + }; + var faBars = { + prefix: 'fas', + iconName: 'bars', + icon: [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"] + }; + var faBaseballBall = { + prefix: 'fas', + iconName: 'baseball-ball', + icon: [496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"] + }; + var faBasketballBall = { + prefix: 'fas', + iconName: 'basketball-ball', + icon: [496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"] + }; + var faBath = { + prefix: 'fas', + iconName: 'bath', + icon: [512, 512, [], "f2cd", "M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z"] + }; + var faBatteryEmpty = { + prefix: 'fas', + iconName: 'battery-empty', + icon: [640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"] + }; + var faBatteryFull = { + prefix: 'fas', + iconName: 'battery-full', + icon: [640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"] + }; + var faBatteryHalf = { + prefix: 'fas', + iconName: 'battery-half', + icon: [640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"] + }; + var faBatteryQuarter = { + prefix: 'fas', + iconName: 'battery-quarter', + icon: [640, 512, [], "f243", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"] + }; + var faBatteryThreeQuarters = { + prefix: 'fas', + iconName: 'battery-three-quarters', + icon: [640, 512, [], "f241", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"] + }; + var faBed = { + prefix: 'fas', + iconName: 'bed', + icon: [640, 512, [], "f236", "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"] + }; + var faBeer = { + prefix: 'fas', + iconName: 'beer', + icon: [448, 512, [], "f0fc", "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"] + }; + var faBell = { + prefix: 'fas', + iconName: 'bell', + icon: [448, 512, [], "f0f3", "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"] + }; + var faBellSlash = { + prefix: 'fas', + iconName: 'bell-slash', + icon: [640, 512, [], "f1f6", "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"] + }; + var faBezierCurve = { + prefix: 'fas', + iconName: 'bezier-curve', + icon: [640, 512, [], "f55b", "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"] + }; + var faBible = { + prefix: 'fas', + iconName: 'bible', + icon: [448, 512, [], "f647", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"] + }; + var faBicycle = { + prefix: 'fas', + iconName: 'bicycle', + icon: [640, 512, [], "f206", "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"] + }; + var faBiking = { + prefix: 'fas', + iconName: 'biking', + icon: [640, 512, [], "f84a", "M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z"] + }; + var faBinoculars = { + prefix: 'fas', + iconName: 'binoculars', + icon: [512, 512, [], "f1e5", "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"] + }; + var faBiohazard = { + prefix: 'fas', + iconName: 'biohazard', + icon: [576, 512, [], "f780", "M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"] + }; + var faBirthdayCake = { + prefix: 'fas', + iconName: 'birthday-cake', + icon: [448, 512, [], "f1fd", "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"] + }; + var faBlender = { + prefix: 'fas', + iconName: 'blender', + icon: [512, 512, [], "f517", "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"] + }; + var faBlenderPhone = { + prefix: 'fas', + iconName: 'blender-phone', + icon: [576, 512, [], "f6b6", "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faBlind = { + prefix: 'fas', + iconName: 'blind', + icon: [384, 512, [], "f29d", "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"] + }; + var faBlog = { + prefix: 'fas', + iconName: 'blog', + icon: [512, 512, [], "f781", "M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"] + }; + var faBold = { + prefix: 'fas', + iconName: 'bold', + icon: [384, 512, [], "f032", "M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"] + }; + var faBolt = { + prefix: 'fas', + iconName: 'bolt', + icon: [320, 512, [], "f0e7", "M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"] + }; + var faBomb = { + prefix: 'fas', + iconName: 'bomb', + icon: [512, 512, [], "f1e2", "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"] + }; + var faBone = { + prefix: 'fas', + iconName: 'bone', + icon: [640, 512, [], "f5d7", "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"] + }; + var faBong = { + prefix: 'fas', + iconName: 'bong', + icon: [448, 512, [], "f55c", "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"] + }; + var faBook = { + prefix: 'fas', + iconName: 'book', + icon: [448, 512, [], "f02d", "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"] + }; + var faBookDead = { + prefix: 'fas', + iconName: 'book-dead', + icon: [448, 512, [], "f6b7", "M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"] + }; + var faBookMedical = { + prefix: 'fas', + iconName: 'book-medical', + icon: [448, 512, [], "f7e6", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z"] + }; + var faBookOpen = { + prefix: 'fas', + iconName: 'book-open', + icon: [576, 512, [], "f518", "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"] + }; + var faBookReader = { + prefix: 'fas', + iconName: 'book-reader', + icon: [512, 512, [], "f5da", "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"] + }; + var faBookmark = { + prefix: 'fas', + iconName: 'bookmark', + icon: [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"] + }; + var faBorderAll = { + prefix: 'fas', + iconName: 'border-all', + icon: [448, 512, [], "f84c", "M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z"] + }; + var faBorderNone = { + prefix: 'fas', + iconName: 'border-none', + icon: [448, 512, [], "f850", "M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faBorderStyle = { + prefix: 'fas', + iconName: 'border-style', + icon: [448, 512, [], "f853", "M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faBowlingBall = { + prefix: 'fas', + iconName: 'bowling-ball', + icon: [496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faBox = { + prefix: 'fas', + iconName: 'box', + icon: [512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"] + }; + var faBoxOpen = { + prefix: 'fas', + iconName: 'box-open', + icon: [640, 512, [], "f49e", "M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"] + }; + var faBoxTissue = { + prefix: 'fas', + iconName: 'box-tissue', + icon: [512, 512, [], "e05b", "M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z"] + }; + var faBoxes = { + prefix: 'fas', + iconName: 'boxes', + icon: [576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"] + }; + var faBraille = { + prefix: 'fas', + iconName: 'braille', + icon: [640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"] + }; + var faBrain = { + prefix: 'fas', + iconName: 'brain', + icon: [576, 512, [], "f5dc", "M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"] + }; + var faBreadSlice = { + prefix: 'fas', + iconName: 'bread-slice', + icon: [576, 512, [], "f7ec", "M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z"] + }; + var faBriefcase = { + prefix: 'fas', + iconName: 'briefcase', + icon: [512, 512, [], "f0b1", "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"] + }; + var faBriefcaseMedical = { + prefix: 'fas', + iconName: 'briefcase-medical', + icon: [512, 512, [], "f469", "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"] + }; + var faBroadcastTower = { + prefix: 'fas', + iconName: 'broadcast-tower', + icon: [640, 512, [], "f519", "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"] + }; + var faBroom = { + prefix: 'fas', + iconName: 'broom', + icon: [640, 512, [], "f51a", "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"] + }; + var faBrush = { + prefix: 'fas', + iconName: 'brush', + icon: [384, 512, [], "f55d", "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"] + }; + var faBug = { + prefix: 'fas', + iconName: 'bug', + icon: [512, 512, [], "f188", "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"] + }; + var faBuilding = { + prefix: 'fas', + iconName: 'building', + icon: [448, 512, [], "f1ad", "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"] + }; + var faBullhorn = { + prefix: 'fas', + iconName: 'bullhorn', + icon: [576, 512, [], "f0a1", "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"] + }; + var faBullseye = { + prefix: 'fas', + iconName: 'bullseye', + icon: [496, 512, [], "f140", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"] + }; + var faBurn = { + prefix: 'fas', + iconName: 'burn', + icon: [384, 512, [], "f46a", "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"] + }; + var faBus = { + prefix: 'fas', + iconName: 'bus', + icon: [512, 512, [], "f207", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faBusAlt = { + prefix: 'fas', + iconName: 'bus-alt', + icon: [512, 512, [], "f55e", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faBusinessTime = { + prefix: 'fas', + iconName: 'business-time', + icon: [640, 512, [], "f64a", "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"] + }; + var faCalculator = { + prefix: 'fas', + iconName: 'calculator', + icon: [448, 512, [], "f1ec", "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"] + }; + var faCalendar = { + prefix: 'fas', + iconName: 'calendar', + icon: [448, 512, [], "f133", "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"] + }; + var faCalendarAlt = { + prefix: 'fas', + iconName: 'calendar-alt', + icon: [448, 512, [], "f073", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"] + }; + var faCalendarCheck = { + prefix: 'fas', + iconName: 'calendar-check', + icon: [448, 512, [], "f274", "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"] + }; + var faCalendarDay = { + prefix: 'fas', + iconName: 'calendar-day', + icon: [448, 512, [], "f783", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"] + }; + var faCalendarMinus = { + prefix: 'fas', + iconName: 'calendar-minus', + icon: [448, 512, [], "f272", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"] + }; + var faCalendarPlus = { + prefix: 'fas', + iconName: 'calendar-plus', + icon: [448, 512, [], "f271", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"] + }; + var faCalendarTimes = { + prefix: 'fas', + iconName: 'calendar-times', + icon: [448, 512, [], "f273", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"] + }; + var faCalendarWeek = { + prefix: 'fas', + iconName: 'calendar-week', + icon: [448, 512, [], "f784", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"] + }; + var faCamera = { + prefix: 'fas', + iconName: 'camera', + icon: [512, 512, [], "f030", "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"] + }; + var faCameraRetro = { + prefix: 'fas', + iconName: 'camera-retro', + icon: [512, 512, [], "f083", "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"] + }; + var faCampground = { + prefix: 'fas', + iconName: 'campground', + icon: [640, 512, [], "f6bb", "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"] + }; + var faCandyCane = { + prefix: 'fas', + iconName: 'candy-cane', + icon: [512, 512, [], "f786", "M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z"] + }; + var faCannabis = { + prefix: 'fas', + iconName: 'cannabis', + icon: [512, 512, [], "f55f", "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"] + }; + var faCapsules = { + prefix: 'fas', + iconName: 'capsules', + icon: [576, 512, [], "f46b", "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"] + }; + var faCar = { + prefix: 'fas', + iconName: 'car', + icon: [512, 512, [], "f1b9", "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"] + }; + var faCarAlt = { + prefix: 'fas', + iconName: 'car-alt', + icon: [480, 512, [], "f5de", "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"] + }; + var faCarBattery = { + prefix: 'fas', + iconName: 'car-battery', + icon: [512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"] + }; + var faCarCrash = { + prefix: 'fas', + iconName: 'car-crash', + icon: [640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"] + }; + var faCarSide = { + prefix: 'fas', + iconName: 'car-side', + icon: [640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"] + }; + var faCaravan = { + prefix: 'fas', + iconName: 'caravan', + icon: [640, 512, [], "f8ff", "M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z"] + }; + var faCaretDown = { + prefix: 'fas', + iconName: 'caret-down', + icon: [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"] + }; + var faCaretLeft = { + prefix: 'fas', + iconName: 'caret-left', + icon: [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"] + }; + var faCaretRight = { + prefix: 'fas', + iconName: 'caret-right', + icon: [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"] + }; + var faCaretSquareDown = { + prefix: 'fas', + iconName: 'caret-square-down', + icon: [448, 512, [], "f150", "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"] + }; + var faCaretSquareLeft = { + prefix: 'fas', + iconName: 'caret-square-left', + icon: [448, 512, [], "f191", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"] + }; + var faCaretSquareRight = { + prefix: 'fas', + iconName: 'caret-square-right', + icon: [448, 512, [], "f152", "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"] + }; + var faCaretSquareUp = { + prefix: 'fas', + iconName: 'caret-square-up', + icon: [448, 512, [], "f151", "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"] + }; + var faCaretUp = { + prefix: 'fas', + iconName: 'caret-up', + icon: [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"] + }; + var faCarrot = { + prefix: 'fas', + iconName: 'carrot', + icon: [512, 512, [], "f787", "M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z"] + }; + var faCartArrowDown = { + prefix: 'fas', + iconName: 'cart-arrow-down', + icon: [576, 512, [], "f218", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"] + }; + var faCartPlus = { + prefix: 'fas', + iconName: 'cart-plus', + icon: [576, 512, [], "f217", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"] + }; + var faCashRegister = { + prefix: 'fas', + iconName: 'cash-register', + icon: [512, 512, [], "f788", "M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z"] + }; + var faCat = { + prefix: 'fas', + iconName: 'cat', + icon: [512, 512, [], "f6be", "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"] + }; + var faCertificate = { + prefix: 'fas', + iconName: 'certificate', + icon: [512, 512, [], "f0a3", "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"] + }; + var faChair = { + prefix: 'fas', + iconName: 'chair', + icon: [448, 512, [], "f6c0", "M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z"] + }; + var faChalkboard = { + prefix: 'fas', + iconName: 'chalkboard', + icon: [640, 512, [], "f51b", "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] + }; + var faChalkboardTeacher = { + prefix: 'fas', + iconName: 'chalkboard-teacher', + icon: [640, 512, [], "f51c", "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"] + }; + var faChargingStation = { + prefix: 'fas', + iconName: 'charging-station', + icon: [576, 512, [], "f5e7", "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"] + }; + var faChartArea = { + prefix: 'fas', + iconName: 'chart-area', + icon: [512, 512, [], "f1fe", "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"] + }; + var faChartBar = { + prefix: 'fas', + iconName: 'chart-bar', + icon: [512, 512, [], "f080", "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] + }; + var faChartLine = { + prefix: 'fas', + iconName: 'chart-line', + icon: [512, 512, [], "f201", "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"] + }; + var faChartPie = { + prefix: 'fas', + iconName: 'chart-pie', + icon: [544, 512, [], "f200", "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"] + }; + var faCheck = { + prefix: 'fas', + iconName: 'check', + icon: [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"] + }; + var faCheckCircle = { + prefix: 'fas', + iconName: 'check-circle', + icon: [512, 512, [], "f058", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"] + }; + var faCheckDouble = { + prefix: 'fas', + iconName: 'check-double', + icon: [512, 512, [], "f560", "M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z"] + }; + var faCheckSquare = { + prefix: 'fas', + iconName: 'check-square', + icon: [448, 512, [], "f14a", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"] + }; + var faCheese = { + prefix: 'fas', + iconName: 'cheese', + icon: [512, 512, [], "f7ef", "M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z"] + }; + var faChess = { + prefix: 'fas', + iconName: 'chess', + icon: [512, 512, [], "f439", "M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z"] + }; + var faChessBishop = { + prefix: 'fas', + iconName: 'chess-bishop', + icon: [320, 512, [], "f43a", "M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faChessBoard = { + prefix: 'fas', + iconName: 'chess-board', + icon: [512, 512, [], "f43c", "M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z"] + }; + var faChessKing = { + prefix: 'fas', + iconName: 'chess-king', + icon: [448, 512, [], "f43f", "M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z"] + }; + var faChessKnight = { + prefix: 'fas', + iconName: 'chess-knight', + icon: [384, 512, [], "f441", "M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faChessPawn = { + prefix: 'fas', + iconName: 'chess-pawn', + icon: [320, 512, [], "f443", "M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faChessQueen = { + prefix: 'fas', + iconName: 'chess-queen', + icon: [512, 512, [], "f445", "M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z"] + }; + var faChessRook = { + prefix: 'fas', + iconName: 'chess-rook', + icon: [384, 512, [], "f447", "M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faChevronCircleDown = { + prefix: 'fas', + iconName: 'chevron-circle-down', + icon: [512, 512, [], "f13a", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"] + }; + var faChevronCircleLeft = { + prefix: 'fas', + iconName: 'chevron-circle-left', + icon: [512, 512, [], "f137", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"] + }; + var faChevronCircleRight = { + prefix: 'fas', + iconName: 'chevron-circle-right', + icon: [512, 512, [], "f138", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"] + }; + var faChevronCircleUp = { + prefix: 'fas', + iconName: 'chevron-circle-up', + icon: [512, 512, [], "f139", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"] + }; + var faChevronDown = { + prefix: 'fas', + iconName: 'chevron-down', + icon: [448, 512, [], "f078", "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"] + }; + var faChevronLeft = { + prefix: 'fas', + iconName: 'chevron-left', + icon: [320, 512, [], "f053", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"] + }; + var faChevronRight = { + prefix: 'fas', + iconName: 'chevron-right', + icon: [320, 512, [], "f054", "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"] + }; + var faChevronUp = { + prefix: 'fas', + iconName: 'chevron-up', + icon: [448, 512, [], "f077", "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"] + }; + var faChild = { + prefix: 'fas', + iconName: 'child', + icon: [384, 512, [], "f1ae", "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"] + }; + var faChurch = { + prefix: 'fas', + iconName: 'church', + icon: [640, 512, [], "f51d", "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"] + }; + var faCircle = { + prefix: 'fas', + iconName: 'circle', + icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"] + }; + var faCircleNotch = { + prefix: 'fas', + iconName: 'circle-notch', + icon: [512, 512, [], "f1ce", "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"] + }; + var faCity = { + prefix: 'fas', + iconName: 'city', + icon: [640, 512, [], "f64f", "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"] + }; + var faClinicMedical = { + prefix: 'fas', + iconName: 'clinic-medical', + icon: [576, 512, [], "f7f2", "M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z"] + }; + var faClipboard = { + prefix: 'fas', + iconName: 'clipboard', + icon: [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"] + }; + var faClipboardCheck = { + prefix: 'fas', + iconName: 'clipboard-check', + icon: [384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"] + }; + var faClipboardList = { + prefix: 'fas', + iconName: 'clipboard-list', + icon: [384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"] + }; + var faClock = { + prefix: 'fas', + iconName: 'clock', + icon: [512, 512, [], "f017", "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"] + }; + var faClone = { + prefix: 'fas', + iconName: 'clone', + icon: [512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"] + }; + var faClosedCaptioning = { + prefix: 'fas', + iconName: 'closed-captioning', + icon: [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"] + }; + var faCloud = { + prefix: 'fas', + iconName: 'cloud', + icon: [640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"] + }; + var faCloudDownloadAlt = { + prefix: 'fas', + iconName: 'cloud-download-alt', + icon: [640, 512, [], "f381", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"] + }; + var faCloudMeatball = { + prefix: 'fas', + iconName: 'cloud-meatball', + icon: [512, 512, [], "f73b", "M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z"] + }; + var faCloudMoon = { + prefix: 'fas', + iconName: 'cloud-moon', + icon: [576, 512, [], "f6c3", "M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z"] + }; + var faCloudMoonRain = { + prefix: 'fas', + iconName: 'cloud-moon-rain', + icon: [576, 512, [], "f73c", "M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"] + }; + var faCloudRain = { + prefix: 'fas', + iconName: 'cloud-rain', + icon: [512, 512, [], "f73d", "M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z"] + }; + var faCloudShowersHeavy = { + prefix: 'fas', + iconName: 'cloud-showers-heavy', + icon: [512, 512, [], "f740", "M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z"] + }; + var faCloudSun = { + prefix: 'fas', + iconName: 'cloud-sun', + icon: [640, 512, [], "f6c4", "M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z"] + }; + var faCloudSunRain = { + prefix: 'fas', + iconName: 'cloud-sun-rain', + icon: [576, 512, [], "f743", "M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"] + }; + var faCloudUploadAlt = { + prefix: 'fas', + iconName: 'cloud-upload-alt', + icon: [640, 512, [], "f382", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"] + }; + var faCocktail = { + prefix: 'fas', + iconName: 'cocktail', + icon: [576, 512, [], "f561", "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"] + }; + var faCode = { + prefix: 'fas', + iconName: 'code', + icon: [640, 512, [], "f121", "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"] + }; + var faCodeBranch = { + prefix: 'fas', + iconName: 'code-branch', + icon: [384, 512, [], "f126", "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"] + }; + var faCoffee = { + prefix: 'fas', + iconName: 'coffee', + icon: [640, 512, [], "f0f4", "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"] + }; + var faCog = { + prefix: 'fas', + iconName: 'cog', + icon: [512, 512, [], "f013", "M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faCogs = { + prefix: 'fas', + iconName: 'cogs', + icon: [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"] + }; + var faCoins = { + prefix: 'fas', + iconName: 'coins', + icon: [512, 512, [], "f51e", "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"] + }; + var faColumns = { + prefix: 'fas', + iconName: 'columns', + icon: [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"] + }; + var faComment = { + prefix: 'fas', + iconName: 'comment', + icon: [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"] + }; + var faCommentAlt = { + prefix: 'fas', + iconName: 'comment-alt', + icon: [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"] + }; + var faCommentDollar = { + prefix: 'fas', + iconName: 'comment-dollar', + icon: [512, 512, [], "f651", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"] + }; + var faCommentDots = { + prefix: 'fas', + iconName: 'comment-dots', + icon: [512, 512, [], "f4ad", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faCommentMedical = { + prefix: 'fas', + iconName: 'comment-medical', + icon: [512, 512, [], "f7f5", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z"] + }; + var faCommentSlash = { + prefix: 'fas', + iconName: 'comment-slash', + icon: [640, 512, [], "f4b3", "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"] + }; + var faComments = { + prefix: 'fas', + iconName: 'comments', + icon: [576, 512, [], "f086", "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"] + }; + var faCommentsDollar = { + prefix: 'fas', + iconName: 'comments-dollar', + icon: [576, 512, [], "f653", "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"] + }; + var faCompactDisc = { + prefix: 'fas', + iconName: 'compact-disc', + icon: [496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"] + }; + var faCompass = { + prefix: 'fas', + iconName: 'compass', + icon: [496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"] + }; + var faCompress = { + prefix: 'fas', + iconName: 'compress', + icon: [448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"] + }; + var faCompressAlt = { + prefix: 'fas', + iconName: 'compress-alt', + icon: [448, 512, [], "f422", "M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z"] + }; + var faCompressArrowsAlt = { + prefix: 'fas', + iconName: 'compress-arrows-alt', + icon: [512, 512, [], "f78c", "M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"] + }; + var faConciergeBell = { + prefix: 'fas', + iconName: 'concierge-bell', + icon: [512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] + }; + var faCookie = { + prefix: 'fas', + iconName: 'cookie', + icon: [512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faCookieBite = { + prefix: 'fas', + iconName: 'cookie-bite', + icon: [512, 512, [], "f564", "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faCopy = { + prefix: 'fas', + iconName: 'copy', + icon: [448, 512, [], "f0c5", "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"] + }; + var faCopyright = { + prefix: 'fas', + iconName: 'copyright', + icon: [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"] + }; + var faCouch = { + prefix: 'fas', + iconName: 'couch', + icon: [640, 512, [], "f4b8", "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"] + }; + var faCreditCard = { + prefix: 'fas', + iconName: 'credit-card', + icon: [576, 512, [], "f09d", "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"] + }; + var faCrop = { + prefix: 'fas', + iconName: 'crop', + icon: [512, 512, [], "f125", "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"] + }; + var faCropAlt = { + prefix: 'fas', + iconName: 'crop-alt', + icon: [512, 512, [], "f565", "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"] + }; + var faCross = { + prefix: 'fas', + iconName: 'cross', + icon: [384, 512, [], "f654", "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"] + }; + var faCrosshairs = { + prefix: 'fas', + iconName: 'crosshairs', + icon: [512, 512, [], "f05b", "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"] + }; + var faCrow = { + prefix: 'fas', + iconName: 'crow', + icon: [640, 512, [], "f520", "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] + }; + var faCrown = { + prefix: 'fas', + iconName: 'crown', + icon: [640, 512, [], "f521", "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"] + }; + var faCrutch = { + prefix: 'fas', + iconName: 'crutch', + icon: [512, 512, [], "f7f7", "M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z"] + }; + var faCube = { + prefix: 'fas', + iconName: 'cube', + icon: [512, 512, [], "f1b2", "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"] + }; + var faCubes = { + prefix: 'fas', + iconName: 'cubes', + icon: [512, 512, [], "f1b3", "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"] + }; + var faCut = { + prefix: 'fas', + iconName: 'cut', + icon: [448, 512, [], "f0c4", "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"] + }; + var faDatabase = { + prefix: 'fas', + iconName: 'database', + icon: [448, 512, [], "f1c0", "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"] + }; + var faDeaf = { + prefix: 'fas', + iconName: 'deaf', + icon: [512, 512, [], "f2a4", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"] + }; + var faDemocrat = { + prefix: 'fas', + iconName: 'democrat', + icon: [640, 512, [], "f747", "M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z"] + }; + var faDesktop = { + prefix: 'fas', + iconName: 'desktop', + icon: [576, 512, [], "f108", "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"] + }; + var faDharmachakra = { + prefix: 'fas', + iconName: 'dharmachakra', + icon: [512, 512, [], "f655", "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"] + }; + var faDiagnoses = { + prefix: 'fas', + iconName: 'diagnoses', + icon: [640, 512, [], "f470", "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] + }; + var faDice = { + prefix: 'fas', + iconName: 'dice', + icon: [640, 512, [], "f522", "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] + }; + var faDiceD20 = { + prefix: 'fas', + iconName: 'dice-d20', + icon: [480, 512, [], "f6cf", "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"] + }; + var faDiceD6 = { + prefix: 'fas', + iconName: 'dice-d6', + icon: [448, 512, [], "f6d1", "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"] + }; + var faDiceFive = { + prefix: 'fas', + iconName: 'dice-five', + icon: [448, 512, [], "f523", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faDiceFour = { + prefix: 'fas', + iconName: 'dice-four', + icon: [448, 512, [], "f524", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faDiceOne = { + prefix: 'fas', + iconName: 'dice-one', + icon: [448, 512, [], "f525", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faDiceSix = { + prefix: 'fas', + iconName: 'dice-six', + icon: [448, 512, [], "f526", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faDiceThree = { + prefix: 'fas', + iconName: 'dice-three', + icon: [448, 512, [], "f527", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faDiceTwo = { + prefix: 'fas', + iconName: 'dice-two', + icon: [448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faDigitalTachograph = { + prefix: 'fas', + iconName: 'digital-tachograph', + icon: [640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"] + }; + var faDirections = { + prefix: 'fas', + iconName: 'directions', + icon: [512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"] + }; + var faDisease = { + prefix: 'fas', + iconName: 'disease', + icon: [512, 512, [], "f7fa", "M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"] + }; + var faDivide = { + prefix: 'fas', + iconName: 'divide', + icon: [448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] + }; + var faDizzy = { + prefix: 'fas', + iconName: 'dizzy', + icon: [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"] + }; + var faDna = { + prefix: 'fas', + iconName: 'dna', + icon: [448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"] + }; + var faDog = { + prefix: 'fas', + iconName: 'dog', + icon: [576, 512, [], "f6d3", "M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z"] + }; + var faDollarSign = { + prefix: 'fas', + iconName: 'dollar-sign', + icon: [288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"] + }; + var faDolly = { + prefix: 'fas', + iconName: 'dolly', + icon: [576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"] + }; + var faDollyFlatbed = { + prefix: 'fas', + iconName: 'dolly-flatbed', + icon: [640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] + }; + var faDonate = { + prefix: 'fas', + iconName: 'donate', + icon: [512, 512, [], "f4b9", "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"] + }; + var faDoorClosed = { + prefix: 'fas', + iconName: 'door-closed', + icon: [640, 512, [], "f52a", "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"] + }; + var faDoorOpen = { + prefix: 'fas', + iconName: 'door-open', + icon: [640, 512, [], "f52b", "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"] + }; + var faDotCircle = { + prefix: 'fas', + iconName: 'dot-circle', + icon: [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"] + }; + var faDove = { + prefix: 'fas', + iconName: 'dove', + icon: [512, 512, [], "f4ba", "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] + }; + var faDownload = { + prefix: 'fas', + iconName: 'download', + icon: [512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"] + }; + var faDraftingCompass = { + prefix: 'fas', + iconName: 'drafting-compass', + icon: [512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"] + }; + var faDragon = { + prefix: 'fas', + iconName: 'dragon', + icon: [640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"] + }; + var faDrawPolygon = { + prefix: 'fas', + iconName: 'draw-polygon', + icon: [448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"] + }; + var faDrum = { + prefix: 'fas', + iconName: 'drum', + icon: [512, 512, [], "f569", "M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"] + }; + var faDrumSteelpan = { + prefix: 'fas', + iconName: 'drum-steelpan', + icon: [576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"] + }; + var faDrumstickBite = { + prefix: 'fas', + iconName: 'drumstick-bite', + icon: [512, 512, [], "f6d7", "M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"] + }; + var faDumbbell = { + prefix: 'fas', + iconName: 'dumbbell', + icon: [640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"] + }; + var faDumpster = { + prefix: 'fas', + iconName: 'dumpster', + icon: [576, 512, [], "f793", "M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] + }; + var faDumpsterFire = { + prefix: 'fas', + iconName: 'dumpster-fire', + icon: [640, 512, [], "f794", "M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z"] + }; + var faDungeon = { + prefix: 'fas', + iconName: 'dungeon', + icon: [512, 512, [], "f6d9", "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"] + }; + var faEdit = { + prefix: 'fas', + iconName: 'edit', + icon: [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"] + }; + var faEgg = { + prefix: 'fas', + iconName: 'egg', + icon: [384, 512, [], "f7fb", "M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z"] + }; + var faEject = { + prefix: 'fas', + iconName: 'eject', + icon: [448, 512, [], "f052", "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"] + }; + var faEllipsisH = { + prefix: 'fas', + iconName: 'ellipsis-h', + icon: [512, 512, [], "f141", "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"] + }; + var faEllipsisV = { + prefix: 'fas', + iconName: 'ellipsis-v', + icon: [192, 512, [], "f142", "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"] + }; + var faEnvelope = { + prefix: 'fas', + iconName: 'envelope', + icon: [512, 512, [], "f0e0", "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"] + }; + var faEnvelopeOpen = { + prefix: 'fas', + iconName: 'envelope-open', + icon: [512, 512, [], "f2b6", "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"] + }; + var faEnvelopeOpenText = { + prefix: 'fas', + iconName: 'envelope-open-text', + icon: [512, 512, [], "f658", "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"] + }; + var faEnvelopeSquare = { + prefix: 'fas', + iconName: 'envelope-square', + icon: [448, 512, [], "f199", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"] + }; + var faEquals = { + prefix: 'fas', + iconName: 'equals', + icon: [448, 512, [], "f52c", "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] + }; + var faEraser = { + prefix: 'fas', + iconName: 'eraser', + icon: [512, 512, [], "f12d", "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"] + }; + var faEthernet = { + prefix: 'fas', + iconName: 'ethernet', + icon: [512, 512, [], "f796", "M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z"] + }; + var faEuroSign = { + prefix: 'fas', + iconName: 'euro-sign', + icon: [320, 512, [], "f153", "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"] + }; + var faExchangeAlt = { + prefix: 'fas', + iconName: 'exchange-alt', + icon: [512, 512, [], "f362", "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"] + }; + var faExclamation = { + prefix: 'fas', + iconName: 'exclamation', + icon: [192, 512, [], "f12a", "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"] + }; + var faExclamationCircle = { + prefix: 'fas', + iconName: 'exclamation-circle', + icon: [512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"] + }; + var faExclamationTriangle = { + prefix: 'fas', + iconName: 'exclamation-triangle', + icon: [576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"] + }; + var faExpand = { + prefix: 'fas', + iconName: 'expand', + icon: [448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"] + }; + var faExpandAlt = { + prefix: 'fas', + iconName: 'expand-alt', + icon: [448, 512, [], "f424", "M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z"] + }; + var faExpandArrowsAlt = { + prefix: 'fas', + iconName: 'expand-arrows-alt', + icon: [448, 512, [], "f31e", "M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"] + }; + var faExternalLinkAlt = { + prefix: 'fas', + iconName: 'external-link-alt', + icon: [512, 512, [], "f35d", "M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"] + }; + var faExternalLinkSquareAlt = { + prefix: 'fas', + iconName: 'external-link-square-alt', + icon: [448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"] + }; + var faEye = { + prefix: 'fas', + iconName: 'eye', + icon: [576, 512, [], "f06e", "M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"] + }; + var faEyeDropper = { + prefix: 'fas', + iconName: 'eye-dropper', + icon: [512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"] + }; + var faEyeSlash = { + prefix: 'fas', + iconName: 'eye-slash', + icon: [640, 512, [], "f070", "M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"] + }; + var faFan = { + prefix: 'fas', + iconName: 'fan', + icon: [512, 512, [], "f863", "M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"] + }; + var faFastBackward = { + prefix: 'fas', + iconName: 'fast-backward', + icon: [512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"] + }; + var faFastForward = { + prefix: 'fas', + iconName: 'fast-forward', + icon: [512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"] + }; + var faFaucet = { + prefix: 'fas', + iconName: 'faucet', + icon: [512, 512, [], "e005", "M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z"] + }; + var faFax = { + prefix: 'fas', + iconName: 'fax', + icon: [512, 512, [], "f1ac", "M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"] + }; + var faFeather = { + prefix: 'fas', + iconName: 'feather', + icon: [512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"] + }; + var faFeatherAlt = { + prefix: 'fas', + iconName: 'feather-alt', + icon: [512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"] + }; + var faFemale = { + prefix: 'fas', + iconName: 'female', + icon: [256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"] + }; + var faFighterJet = { + prefix: 'fas', + iconName: 'fighter-jet', + icon: [640, 512, [], "f0fb", "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"] + }; + var faFile = { + prefix: 'fas', + iconName: 'file', + icon: [384, 512, [], "f15b", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] + }; + var faFileAlt = { + prefix: 'fas', + iconName: 'file-alt', + icon: [384, 512, [], "f15c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] + }; + var faFileArchive = { + prefix: 'fas', + iconName: 'file-archive', + icon: [384, 512, [], "f1c6", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"] + }; + var faFileAudio = { + prefix: 'fas', + iconName: 'file-audio', + icon: [384, 512, [], "f1c7", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] + }; + var faFileCode = { + prefix: 'fas', + iconName: 'file-code', + icon: [384, 512, [], "f1c9", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"] + }; + var faFileContract = { + prefix: 'fas', + iconName: 'file-contract', + icon: [384, 512, [], "f56c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] + }; + var faFileCsv = { + prefix: 'fas', + iconName: 'file-csv', + icon: [384, 512, [], "f6dd", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] + }; + var faFileDownload = { + prefix: 'fas', + iconName: 'file-download', + icon: [384, 512, [], "f56d", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] + }; + var faFileExcel = { + prefix: 'fas', + iconName: 'file-excel', + icon: [384, 512, [], "f1c3", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] + }; + var faFileExport = { + prefix: 'fas', + iconName: 'file-export', + icon: [576, 512, [], "f56e", "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"] + }; + var faFileImage = { + prefix: 'fas', + iconName: 'file-image', + icon: [384, 512, [], "f1c5", "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"] + }; + var faFileImport = { + prefix: 'fas', + iconName: 'file-import', + icon: [512, 512, [], "f56f", "M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"] + }; + var faFileInvoice = { + prefix: 'fas', + iconName: 'file-invoice', + icon: [384, 512, [], "f570", "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"] + }; + var faFileInvoiceDollar = { + prefix: 'fas', + iconName: 'file-invoice-dollar', + icon: [384, 512, [], "f571", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"] + }; + var faFileMedical = { + prefix: 'fas', + iconName: 'file-medical', + icon: [384, 512, [], "f477", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"] + }; + var faFileMedicalAlt = { + prefix: 'fas', + iconName: 'file-medical-alt', + icon: [448, 512, [], "f478", "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] + }; + var faFilePdf = { + prefix: 'fas', + iconName: 'file-pdf', + icon: [384, 512, [], "f1c1", "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"] + }; + var faFilePowerpoint = { + prefix: 'fas', + iconName: 'file-powerpoint', + icon: [384, 512, [], "f1c4", "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"] + }; + var faFilePrescription = { + prefix: 'fas', + iconName: 'file-prescription', + icon: [384, 512, [], "f572", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] + }; + var faFileSignature = { + prefix: 'fas', + iconName: 'file-signature', + icon: [576, 512, [], "f573", "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"] + }; + var faFileUpload = { + prefix: 'fas', + iconName: 'file-upload', + icon: [384, 512, [], "f574", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"] + }; + var faFileVideo = { + prefix: 'fas', + iconName: 'file-video', + icon: [384, 512, [], "f1c8", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"] + }; + var faFileWord = { + prefix: 'fas', + iconName: 'file-word', + icon: [384, 512, [], "f1c2", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"] + }; + var faFill = { + prefix: 'fas', + iconName: 'fill', + icon: [512, 512, [], "f575", "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"] + }; + var faFillDrip = { + prefix: 'fas', + iconName: 'fill-drip', + icon: [576, 512, [], "f576", "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"] + }; + var faFilm = { + prefix: 'fas', + iconName: 'film', + icon: [512, 512, [], "f008", "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"] + }; + var faFilter = { + prefix: 'fas', + iconName: 'filter', + icon: [512, 512, [], "f0b0", "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"] + }; + var faFingerprint = { + prefix: 'fas', + iconName: 'fingerprint', + icon: [512, 512, [], "f577", "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"] + }; + var faFire = { + prefix: 'fas', + iconName: 'fire', + icon: [384, 512, [], "f06d", "M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z"] + }; + var faFireAlt = { + prefix: 'fas', + iconName: 'fire-alt', + icon: [448, 512, [], "f7e4", "M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"] + }; + var faFireExtinguisher = { + prefix: 'fas', + iconName: 'fire-extinguisher', + icon: [448, 512, [], "f134", "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"] + }; + var faFirstAid = { + prefix: 'fas', + iconName: 'first-aid', + icon: [576, 512, [], "f479", "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] + }; + var faFish = { + prefix: 'fas', + iconName: 'fish', + icon: [576, 512, [], "f578", "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"] + }; + var faFistRaised = { + prefix: 'fas', + iconName: 'fist-raised', + icon: [384, 512, [], "f6de", "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"] + }; + var faFlag = { + prefix: 'fas', + iconName: 'flag', + icon: [512, 512, [], "f024", "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"] + }; + var faFlagCheckered = { + prefix: 'fas', + iconName: 'flag-checkered', + icon: [512, 512, [], "f11e", "M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"] + }; + var faFlagUsa = { + prefix: 'fas', + iconName: 'flag-usa', + icon: [512, 512, [], "f74d", "M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z"] + }; + var faFlask = { + prefix: 'fas', + iconName: 'flask', + icon: [448, 512, [], "f0c3", "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"] + }; + var faFlushed = { + prefix: 'fas', + iconName: 'flushed', + icon: [496, 512, [], "f579", "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"] + }; + var faFolder = { + prefix: 'fas', + iconName: 'folder', + icon: [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"] + }; + var faFolderMinus = { + prefix: 'fas', + iconName: 'folder-minus', + icon: [512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"] + }; + var faFolderOpen = { + prefix: 'fas', + iconName: 'folder-open', + icon: [576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"] + }; + var faFolderPlus = { + prefix: 'fas', + iconName: 'folder-plus', + icon: [512, 512, [], "f65e", "M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z"] + }; + var faFont = { + prefix: 'fas', + iconName: 'font', + icon: [448, 512, [], "f031", "M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"] + }; + var faFontAwesomeLogoFull = { + prefix: 'fas', + iconName: 'font-awesome-logo-full', + icon: [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"] + }; + var faFootballBall = { + prefix: 'fas', + iconName: 'football-ball', + icon: [496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"] + }; + var faForward = { + prefix: 'fas', + iconName: 'forward', + icon: [512, 512, [], "f04e", "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"] + }; + var faFrog = { + prefix: 'fas', + iconName: 'frog', + icon: [576, 512, [], "f52e", "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"] + }; + var faFrown = { + prefix: 'fas', + iconName: 'frown', + icon: [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"] + }; + var faFrownOpen = { + prefix: 'fas', + iconName: 'frown-open', + icon: [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faFunnelDollar = { + prefix: 'fas', + iconName: 'funnel-dollar', + icon: [640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"] + }; + var faFutbol = { + prefix: 'fas', + iconName: 'futbol', + icon: [512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"] + }; + var faGamepad = { + prefix: 'fas', + iconName: 'gamepad', + icon: [640, 512, [], "f11b", "M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"] + }; + var faGasPump = { + prefix: 'fas', + iconName: 'gas-pump', + icon: [512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"] + }; + var faGavel = { + prefix: 'fas', + iconName: 'gavel', + icon: [512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"] + }; + var faGem = { + prefix: 'fas', + iconName: 'gem', + icon: [576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"] + }; + var faGenderless = { + prefix: 'fas', + iconName: 'genderless', + icon: [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"] + }; + var faGhost = { + prefix: 'fas', + iconName: 'ghost', + icon: [384, 512, [], "f6e2", "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faGift = { + prefix: 'fas', + iconName: 'gift', + icon: [512, 512, [], "f06b", "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z"] + }; + var faGifts = { + prefix: 'fas', + iconName: 'gifts', + icon: [640, 512, [], "f79c", "M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z"] + }; + var faGlassCheers = { + prefix: 'fas', + iconName: 'glass-cheers', + icon: [640, 512, [], "f79f", "M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z"] + }; + var faGlassMartini = { + prefix: 'fas', + iconName: 'glass-martini', + icon: [512, 512, [], "f000", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"] + }; + var faGlassMartiniAlt = { + prefix: 'fas', + iconName: 'glass-martini-alt', + icon: [512, 512, [], "f57b", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"] + }; + var faGlassWhiskey = { + prefix: 'fas', + iconName: 'glass-whiskey', + icon: [512, 512, [], "f7a0", "M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z"] + }; + var faGlasses = { + prefix: 'fas', + iconName: 'glasses', + icon: [576, 512, [], "f530", "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"] + }; + var faGlobe = { + prefix: 'fas', + iconName: 'globe', + icon: [496, 512, [], "f0ac", "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"] + }; + var faGlobeAfrica = { + prefix: 'fas', + iconName: 'globe-africa', + icon: [496, 512, [], "f57c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"] + }; + var faGlobeAmericas = { + prefix: 'fas', + iconName: 'globe-americas', + icon: [496, 512, [], "f57d", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"] + }; + var faGlobeAsia = { + prefix: 'fas', + iconName: 'globe-asia', + icon: [496, 512, [], "f57e", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"] + }; + var faGlobeEurope = { + prefix: 'fas', + iconName: 'globe-europe', + icon: [496, 512, [], "f7a2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z"] + }; + var faGolfBall = { + prefix: 'fas', + iconName: 'golf-ball', + icon: [416, 512, [], "f450", "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"] + }; + var faGopuram = { + prefix: 'fas', + iconName: 'gopuram', + icon: [512, 512, [], "f664", "M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"] + }; + var faGraduationCap = { + prefix: 'fas', + iconName: 'graduation-cap', + icon: [640, 512, [], "f19d", "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"] + }; + var faGreaterThan = { + prefix: 'fas', + iconName: 'greater-than', + icon: [384, 512, [], "f531", "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"] + }; + var faGreaterThanEqual = { + prefix: 'fas', + iconName: 'greater-than-equal', + icon: [448, 512, [], "f532", "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"] + }; + var faGrimace = { + prefix: 'fas', + iconName: 'grimace', + icon: [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"] + }; + var faGrin = { + prefix: 'fas', + iconName: 'grin', + icon: [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] + }; + var faGrinAlt = { + prefix: 'fas', + iconName: 'grin-alt', + icon: [496, 512, [], "f581", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] + }; + var faGrinBeam = { + prefix: 'fas', + iconName: 'grin-beam', + icon: [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] + }; + var faGrinBeamSweat = { + prefix: 'fas', + iconName: 'grin-beam-sweat', + icon: [504, 512, [], "f583", "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] + }; + var faGrinHearts = { + prefix: 'fas', + iconName: 'grin-hearts', + icon: [496, 512, [], "f584", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"] + }; + var faGrinSquint = { + prefix: 'fas', + iconName: 'grin-squint', + icon: [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] + }; + var faGrinSquintTears = { + prefix: 'fas', + iconName: 'grin-squint-tears', + icon: [512, 512, [], "f586", "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"] + }; + var faGrinStars = { + prefix: 'fas', + iconName: 'grin-stars', + icon: [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"] + }; + var faGrinTears = { + prefix: 'fas', + iconName: 'grin-tears', + icon: [640, 512, [], "f588", "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"] + }; + var faGrinTongue = { + prefix: 'fas', + iconName: 'grin-tongue', + icon: [496, 512, [], "f589", "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"] + }; + var faGrinTongueSquint = { + prefix: 'fas', + iconName: 'grin-tongue-squint', + icon: [496, 512, [], "f58a", "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"] + }; + var faGrinTongueWink = { + prefix: 'fas', + iconName: 'grin-tongue-wink', + icon: [496, 512, [], "f58b", "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"] + }; + var faGrinWink = { + prefix: 'fas', + iconName: 'grin-wink', + icon: [496, 512, [], "f58c", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"] + }; + var faGripHorizontal = { + prefix: 'fas', + iconName: 'grip-horizontal', + icon: [448, 512, [], "f58d", "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"] + }; + var faGripLines = { + prefix: 'fas', + iconName: 'grip-lines', + icon: [512, 512, [], "f7a4", "M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"] + }; + var faGripLinesVertical = { + prefix: 'fas', + iconName: 'grip-lines-vertical', + icon: [256, 512, [], "f7a5", "M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"] + }; + var faGripVertical = { + prefix: 'fas', + iconName: 'grip-vertical', + icon: [320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"] + }; + var faGuitar = { + prefix: 'fas', + iconName: 'guitar', + icon: [512, 512, [], "f7a6", "M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"] + }; + var faHSquare = { + prefix: 'fas', + iconName: 'h-square', + icon: [448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"] + }; + var faHamburger = { + prefix: 'fas', + iconName: 'hamburger', + icon: [512, 512, [], "f805", "M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"] + }; + var faHammer = { + prefix: 'fas', + iconName: 'hammer', + icon: [576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"] + }; + var faHamsa = { + prefix: 'fas', + iconName: 'hamsa', + icon: [512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"] + }; + var faHandHolding = { + prefix: 'fas', + iconName: 'hand-holding', + icon: [576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"] + }; + var faHandHoldingHeart = { + prefix: 'fas', + iconName: 'hand-holding-heart', + icon: [576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"] + }; + var faHandHoldingMedical = { + prefix: 'fas', + iconName: 'hand-holding-medical', + icon: [576, 512, [], "e05c", "M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z"] + }; + var faHandHoldingUsd = { + prefix: 'fas', + iconName: 'hand-holding-usd', + icon: [576, 512, [], "f4c0", "M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"] + }; + var faHandHoldingWater = { + prefix: 'fas', + iconName: 'hand-holding-water', + icon: [576, 512, [], "f4c1", "M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"] + }; + var faHandLizard = { + prefix: 'fas', + iconName: 'hand-lizard', + icon: [576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"] + }; + var faHandMiddleFinger = { + prefix: 'fas', + iconName: 'hand-middle-finger', + icon: [512, 512, [], "f806", "M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"] + }; + var faHandPaper = { + prefix: 'fas', + iconName: 'hand-paper', + icon: [448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"] + }; + var faHandPeace = { + prefix: 'fas', + iconName: 'hand-peace', + icon: [448, 512, [], "f25b", "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"] + }; + var faHandPointDown = { + prefix: 'fas', + iconName: 'hand-point-down', + icon: [384, 512, [], "f0a7", "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"] + }; + var faHandPointLeft = { + prefix: 'fas', + iconName: 'hand-point-left', + icon: [512, 512, [], "f0a5", "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"] + }; + var faHandPointRight = { + prefix: 'fas', + iconName: 'hand-point-right', + icon: [512, 512, [], "f0a4", "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"] + }; + var faHandPointUp = { + prefix: 'fas', + iconName: 'hand-point-up', + icon: [384, 512, [], "f0a6", "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"] + }; + var faHandPointer = { + prefix: 'fas', + iconName: 'hand-pointer', + icon: [448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"] + }; + var faHandRock = { + prefix: 'fas', + iconName: 'hand-rock', + icon: [512, 512, [], "f255", "M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"] + }; + var faHandScissors = { + prefix: 'fas', + iconName: 'hand-scissors', + icon: [512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"] + }; + var faHandSparkles = { + prefix: 'fas', + iconName: 'hand-sparkles', + icon: [640, 512, [], "e05d", "M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z"] + }; + var faHandSpock = { + prefix: 'fas', + iconName: 'hand-spock', + icon: [512, 512, [], "f259", "M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z"] + }; + var faHands = { + prefix: 'fas', + iconName: 'hands', + icon: [640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"] + }; + var faHandsHelping = { + prefix: 'fas', + iconName: 'hands-helping', + icon: [640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"] + }; + var faHandsWash = { + prefix: 'fas', + iconName: 'hands-wash', + icon: [576, 512, [], "e05e", "M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z"] + }; + var faHandshake = { + prefix: 'fas', + iconName: 'handshake', + icon: [640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"] + }; + var faHandshakeAltSlash = { + prefix: 'fas', + iconName: 'handshake-alt-slash', + icon: [640, 512, [], "e05f", "M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z"] + }; + var faHandshakeSlash = { + prefix: 'fas', + iconName: 'handshake-slash', + icon: [640, 512, [], "e060", "M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z"] + }; + var faHanukiah = { + prefix: 'fas', + iconName: 'hanukiah', + icon: [640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"] + }; + var faHardHat = { + prefix: 'fas', + iconName: 'hard-hat', + icon: [512, 512, [], "f807", "M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faHashtag = { + prefix: 'fas', + iconName: 'hashtag', + icon: [448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"] + }; + var faHatCowboy = { + prefix: 'fas', + iconName: 'hat-cowboy', + icon: [640, 512, [], "f8c0", "M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"] + }; + var faHatCowboySide = { + prefix: 'fas', + iconName: 'hat-cowboy-side', + icon: [640, 512, [], "f8c1", "M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"] + }; + var faHatWizard = { + prefix: 'fas', + iconName: 'hat-wizard', + icon: [512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"] + }; + var faHdd = { + prefix: 'fas', + iconName: 'hdd', + icon: [576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"] + }; + var faHeadSideCough = { + prefix: 'fas', + iconName: 'head-side-cough', + icon: [640, 512, [], "e061", "M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z"] + }; + var faHeadSideCoughSlash = { + prefix: 'fas', + iconName: 'head-side-cough-slash', + icon: [640, 512, [], "e062", "M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z"] + }; + var faHeadSideMask = { + prefix: 'fas', + iconName: 'head-side-mask', + icon: [512, 512, [], "e063", "M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z"] + }; + var faHeadSideVirus = { + prefix: 'fas', + iconName: 'head-side-virus', + icon: [512, 512, [], "e064", "M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z"] + }; + var faHeading = { + prefix: 'fas', + iconName: 'heading', + icon: [512, 512, [], "f1dc", "M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"] + }; + var faHeadphones = { + prefix: 'fas', + iconName: 'headphones', + icon: [512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"] + }; + var faHeadphonesAlt = { + prefix: 'fas', + iconName: 'headphones-alt', + icon: [512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"] + }; + var faHeadset = { + prefix: 'fas', + iconName: 'headset', + icon: [512, 512, [], "f590", "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"] + }; + var faHeart = { + prefix: 'fas', + iconName: 'heart', + icon: [512, 512, [], "f004", "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"] + }; + var faHeartBroken = { + prefix: 'fas', + iconName: 'heart-broken', + icon: [512, 512, [], "f7a9", "M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z"] + }; + var faHeartbeat = { + prefix: 'fas', + iconName: 'heartbeat', + icon: [512, 512, [], "f21e", "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"] + }; + var faHelicopter = { + prefix: 'fas', + iconName: 'helicopter', + icon: [640, 512, [], "f533", "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"] + }; + var faHighlighter = { + prefix: 'fas', + iconName: 'highlighter', + icon: [544, 512, [], "f591", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"] + }; + var faHiking = { + prefix: 'fas', + iconName: 'hiking', + icon: [384, 512, [], "f6ec", "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"] + }; + var faHippo = { + prefix: 'fas', + iconName: 'hippo', + icon: [640, 512, [], "f6ed", "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"] + }; + var faHistory = { + prefix: 'fas', + iconName: 'history', + icon: [512, 512, [], "f1da", "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"] + }; + var faHockeyPuck = { + prefix: 'fas', + iconName: 'hockey-puck', + icon: [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"] + }; + var faHollyBerry = { + prefix: 'fas', + iconName: 'holly-berry', + icon: [448, 512, [], "f7aa", "M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z"] + }; + var faHome = { + prefix: 'fas', + iconName: 'home', + icon: [576, 512, [], "f015", "M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"] + }; + var faHorse = { + prefix: 'fas', + iconName: 'horse', + icon: [576, 512, [], "f6f0", "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"] + }; + var faHorseHead = { + prefix: 'fas', + iconName: 'horse-head', + icon: [512, 512, [], "f7ab", "M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"] + }; + var faHospital = { + prefix: 'fas', + iconName: 'hospital', + icon: [448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"] + }; + var faHospitalAlt = { + prefix: 'fas', + iconName: 'hospital-alt', + icon: [576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"] + }; + var faHospitalSymbol = { + prefix: 'fas', + iconName: 'hospital-symbol', + icon: [512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"] + }; + var faHospitalUser = { + prefix: 'fas', + iconName: 'hospital-user', + icon: [640, 512, [], "f80d", "M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z"] + }; + var faHotTub = { + prefix: 'fas', + iconName: 'hot-tub', + icon: [512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"] + }; + var faHotdog = { + prefix: 'fas', + iconName: 'hotdog', + icon: [512, 512, [], "f80f", "M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"] + }; + var faHotel = { + prefix: 'fas', + iconName: 'hotel', + icon: [576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"] + }; + var faHourglass = { + prefix: 'fas', + iconName: 'hourglass', + icon: [384, 512, [], "f254", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"] + }; + var faHourglassEnd = { + prefix: 'fas', + iconName: 'hourglass-end', + icon: [384, 512, [], "f253", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"] + }; + var faHourglassHalf = { + prefix: 'fas', + iconName: 'hourglass-half', + icon: [384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"] + }; + var faHourglassStart = { + prefix: 'fas', + iconName: 'hourglass-start', + icon: [384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"] + }; + var faHouseDamage = { + prefix: 'fas', + iconName: 'house-damage', + icon: [576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"] + }; + var faHouseUser = { + prefix: 'fas', + iconName: 'house-user', + icon: [576, 512, [], "e065", "M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z"] + }; + var faHryvnia = { + prefix: 'fas', + iconName: 'hryvnia', + icon: [384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"] + }; + var faICursor = { + prefix: 'fas', + iconName: 'i-cursor', + icon: [256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"] + }; + var faIceCream = { + prefix: 'fas', + iconName: 'ice-cream', + icon: [448, 512, [], "f810", "M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"] + }; + var faIcicles = { + prefix: 'fas', + iconName: 'icicles', + icon: [512, 512, [], "f7ad", "M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z"] + }; + var faIcons = { + prefix: 'fas', + iconName: 'icons', + icon: [512, 512, [], "f86d", "M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z"] + }; + var faIdBadge = { + prefix: 'fas', + iconName: 'id-badge', + icon: [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"] + }; + var faIdCard = { + prefix: 'fas', + iconName: 'id-card', + icon: [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"] + }; + var faIdCardAlt = { + prefix: 'fas', + iconName: 'id-card-alt', + icon: [576, 512, [], "f47f", "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"] + }; + var faIgloo = { + prefix: 'fas', + iconName: 'igloo', + icon: [576, 512, [], "f7ae", "M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z"] + }; + var faImage = { + prefix: 'fas', + iconName: 'image', + icon: [512, 512, [], "f03e", "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"] + }; + var faImages = { + prefix: 'fas', + iconName: 'images', + icon: [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"] + }; + var faInbox = { + prefix: 'fas', + iconName: 'inbox', + icon: [576, 512, [], "f01c", "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"] + }; + var faIndent = { + prefix: 'fas', + iconName: 'indent', + icon: [448, 512, [], "f03c", "M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faIndustry = { + prefix: 'fas', + iconName: 'industry', + icon: [512, 512, [], "f275", "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"] + }; + var faInfinity = { + prefix: 'fas', + iconName: 'infinity', + icon: [640, 512, [], "f534", "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"] + }; + var faInfo = { + prefix: 'fas', + iconName: 'info', + icon: [192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"] + }; + var faInfoCircle = { + prefix: 'fas', + iconName: 'info-circle', + icon: [512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"] + }; + var faItalic = { + prefix: 'fas', + iconName: 'italic', + icon: [320, 512, [], "f033", "M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"] + }; + var faJedi = { + prefix: 'fas', + iconName: 'jedi', + icon: [576, 512, [], "f669", "M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z"] + }; + var faJoint = { + prefix: 'fas', + iconName: 'joint', + icon: [640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"] + }; + var faJournalWhills = { + prefix: 'fas', + iconName: 'journal-whills', + icon: [448, 512, [], "f66a", "M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z"] + }; + var faKaaba = { + prefix: 'fas', + iconName: 'kaaba', + icon: [576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"] + }; + var faKey = { + prefix: 'fas', + iconName: 'key', + icon: [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"] + }; + var faKeyboard = { + prefix: 'fas', + iconName: 'keyboard', + icon: [576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"] + }; + var faKhanda = { + prefix: 'fas', + iconName: 'khanda', + icon: [512, 512, [], "f66d", "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"] + }; + var faKiss = { + prefix: 'fas', + iconName: 'kiss', + icon: [496, 512, [], "f596", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faKissBeam = { + prefix: 'fas', + iconName: 'kiss-beam', + icon: [496, 512, [], "f597", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"] + }; + var faKissWinkHeart = { + prefix: 'fas', + iconName: 'kiss-wink-heart', + icon: [504, 512, [], "f598", "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"] + }; + var faKiwiBird = { + prefix: 'fas', + iconName: 'kiwi-bird', + icon: [576, 512, [], "f535", "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"] + }; + var faLandmark = { + prefix: 'fas', + iconName: 'landmark', + icon: [512, 512, [], "f66f", "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] + }; + var faLanguage = { + prefix: 'fas', + iconName: 'language', + icon: [640, 512, [], "f1ab", "M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"] + }; + var faLaptop = { + prefix: 'fas', + iconName: 'laptop', + icon: [640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"] + }; + var faLaptopCode = { + prefix: 'fas', + iconName: 'laptop-code', + icon: [640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"] + }; + var faLaptopHouse = { + prefix: 'fas', + iconName: 'laptop-house', + icon: [640, 512, [], "e066", "M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z"] + }; + var faLaptopMedical = { + prefix: 'fas', + iconName: 'laptop-medical', + icon: [640, 512, [], "f812", "M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"] + }; + var faLaugh = { + prefix: 'fas', + iconName: 'laugh', + icon: [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"] + }; + var faLaughBeam = { + prefix: 'fas', + iconName: 'laugh-beam', + icon: [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"] + }; + var faLaughSquint = { + prefix: 'fas', + iconName: 'laugh-squint', + icon: [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"] + }; + var faLaughWink = { + prefix: 'fas', + iconName: 'laugh-wink', + icon: [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"] + }; + var faLayerGroup = { + prefix: 'fas', + iconName: 'layer-group', + icon: [512, 512, [], "f5fd", "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"] + }; + var faLeaf = { + prefix: 'fas', + iconName: 'leaf', + icon: [576, 512, [], "f06c", "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"] + }; + var faLemon = { + prefix: 'fas', + iconName: 'lemon', + icon: [512, 512, [], "f094", "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"] + }; + var faLessThan = { + prefix: 'fas', + iconName: 'less-than', + icon: [384, 512, [], "f536", "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"] + }; + var faLessThanEqual = { + prefix: 'fas', + iconName: 'less-than-equal', + icon: [448, 512, [], "f537", "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"] + }; + var faLevelDownAlt = { + prefix: 'fas', + iconName: 'level-down-alt', + icon: [320, 512, [], "f3be", "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"] + }; + var faLevelUpAlt = { + prefix: 'fas', + iconName: 'level-up-alt', + icon: [320, 512, [], "f3bf", "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"] + }; + var faLifeRing = { + prefix: 'fas', + iconName: 'life-ring', + icon: [512, 512, [], "f1cd", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"] + }; + var faLightbulb = { + prefix: 'fas', + iconName: 'lightbulb', + icon: [352, 512, [], "f0eb", "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"] + }; + var faLink = { + prefix: 'fas', + iconName: 'link', + icon: [512, 512, [], "f0c1", "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"] + }; + var faLiraSign = { + prefix: 'fas', + iconName: 'lira-sign', + icon: [384, 512, [], "f195", "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"] + }; + var faList = { + prefix: 'fas', + iconName: 'list', + icon: [512, 512, [], "f03a", "M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faListAlt = { + prefix: 'fas', + iconName: 'list-alt', + icon: [512, 512, [], "f022", "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"] + }; + var faListOl = { + prefix: 'fas', + iconName: 'list-ol', + icon: [512, 512, [], "f0cb", "M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"] + }; + var faListUl = { + prefix: 'fas', + iconName: 'list-ul', + icon: [512, 512, [], "f0ca", "M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faLocationArrow = { + prefix: 'fas', + iconName: 'location-arrow', + icon: [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"] + }; + var faLock = { + prefix: 'fas', + iconName: 'lock', + icon: [448, 512, [], "f023", "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"] + }; + var faLockOpen = { + prefix: 'fas', + iconName: 'lock-open', + icon: [576, 512, [], "f3c1", "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"] + }; + var faLongArrowAltDown = { + prefix: 'fas', + iconName: 'long-arrow-alt-down', + icon: [256, 512, [], "f309", "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"] + }; + var faLongArrowAltLeft = { + prefix: 'fas', + iconName: 'long-arrow-alt-left', + icon: [448, 512, [], "f30a", "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"] + }; + var faLongArrowAltRight = { + prefix: 'fas', + iconName: 'long-arrow-alt-right', + icon: [448, 512, [], "f30b", "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"] + }; + var faLongArrowAltUp = { + prefix: 'fas', + iconName: 'long-arrow-alt-up', + icon: [256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"] + }; + var faLowVision = { + prefix: 'fas', + iconName: 'low-vision', + icon: [576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"] + }; + var faLuggageCart = { + prefix: 'fas', + iconName: 'luggage-cart', + icon: [640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"] + }; + var faLungs = { + prefix: 'fas', + iconName: 'lungs', + icon: [640, 512, [], "f604", "M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z"] + }; + var faLungsVirus = { + prefix: 'fas', + iconName: 'lungs-virus', + icon: [640, 512, [], "e067", "M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z"] + }; + var faMagic = { + prefix: 'fas', + iconName: 'magic', + icon: [512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"] + }; + var faMagnet = { + prefix: 'fas', + iconName: 'magnet', + icon: [512, 512, [], "f076", "M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"] + }; + var faMailBulk = { + prefix: 'fas', + iconName: 'mail-bulk', + icon: [576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"] + }; + var faMale = { + prefix: 'fas', + iconName: 'male', + icon: [192, 512, [], "f183", "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"] + }; + var faMap = { + prefix: 'fas', + iconName: 'map', + icon: [576, 512, [], "f279", "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"] + }; + var faMapMarked = { + prefix: 'fas', + iconName: 'map-marked', + icon: [576, 512, [], "f59f", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"] + }; + var faMapMarkedAlt = { + prefix: 'fas', + iconName: 'map-marked-alt', + icon: [576, 512, [], "f5a0", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"] + }; + var faMapMarker = { + prefix: 'fas', + iconName: 'map-marker', + icon: [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"] + }; + var faMapMarkerAlt = { + prefix: 'fas', + iconName: 'map-marker-alt', + icon: [384, 512, [], "f3c5", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"] + }; + var faMapPin = { + prefix: 'fas', + iconName: 'map-pin', + icon: [288, 512, [], "f276", "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"] + }; + var faMapSigns = { + prefix: 'fas', + iconName: 'map-signs', + icon: [512, 512, [], "f277", "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"] + }; + var faMarker = { + prefix: 'fas', + iconName: 'marker', + icon: [512, 512, [], "f5a1", "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"] + }; + var faMars = { + prefix: 'fas', + iconName: 'mars', + icon: [384, 512, [], "f222", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faMarsDouble = { + prefix: 'fas', + iconName: 'mars-double', + icon: [512, 512, [], "f227", "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"] + }; + var faMarsStroke = { + prefix: 'fas', + iconName: 'mars-stroke', + icon: [384, 512, [], "f229", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faMarsStrokeH = { + prefix: 'fas', + iconName: 'mars-stroke-h', + icon: [480, 512, [], "f22b", "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"] + }; + var faMarsStrokeV = { + prefix: 'fas', + iconName: 'mars-stroke-v', + icon: [288, 512, [], "f22a", "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"] + }; + var faMask = { + prefix: 'fas', + iconName: 'mask', + icon: [640, 512, [], "f6fa", "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"] + }; + var faMedal = { + prefix: 'fas', + iconName: 'medal', + icon: [512, 512, [], "f5a2", "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"] + }; + var faMedkit = { + prefix: 'fas', + iconName: 'medkit', + icon: [512, 512, [], "f0fa", "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"] + }; + var faMeh = { + prefix: 'fas', + iconName: 'meh', + icon: [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faMehBlank = { + prefix: 'fas', + iconName: 'meh-blank', + icon: [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faMehRollingEyes = { + prefix: 'fas', + iconName: 'meh-rolling-eyes', + icon: [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"] + }; + var faMemory = { + prefix: 'fas', + iconName: 'memory', + icon: [640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"] + }; + var faMenorah = { + prefix: 'fas', + iconName: 'menorah', + icon: [640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"] + }; + var faMercury = { + prefix: 'fas', + iconName: 'mercury', + icon: [288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"] + }; + var faMeteor = { + prefix: 'fas', + iconName: 'meteor', + icon: [512, 512, [], "f753", "M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z"] + }; + var faMicrochip = { + prefix: 'fas', + iconName: 'microchip', + icon: [512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"] + }; + var faMicrophone = { + prefix: 'fas', + iconName: 'microphone', + icon: [352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"] + }; + var faMicrophoneAlt = { + prefix: 'fas', + iconName: 'microphone-alt', + icon: [352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"] + }; + var faMicrophoneAltSlash = { + prefix: 'fas', + iconName: 'microphone-alt-slash', + icon: [640, 512, [], "f539", "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"] + }; + var faMicrophoneSlash = { + prefix: 'fas', + iconName: 'microphone-slash', + icon: [640, 512, [], "f131", "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"] + }; + var faMicroscope = { + prefix: 'fas', + iconName: 'microscope', + icon: [512, 512, [], "f610", "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"] + }; + var faMinus = { + prefix: 'fas', + iconName: 'minus', + icon: [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] + }; + var faMinusCircle = { + prefix: 'fas', + iconName: 'minus-circle', + icon: [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"] + }; + var faMinusSquare = { + prefix: 'fas', + iconName: 'minus-square', + icon: [448, 512, [], "f146", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"] + }; + var faMitten = { + prefix: 'fas', + iconName: 'mitten', + icon: [448, 512, [], "f7b5", "M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z"] + }; + var faMobile = { + prefix: 'fas', + iconName: 'mobile', + icon: [320, 512, [], "f10b", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faMobileAlt = { + prefix: 'fas', + iconName: 'mobile-alt', + icon: [320, 512, [], "f3cd", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"] + }; + var faMoneyBill = { + prefix: 'fas', + iconName: 'money-bill', + icon: [640, 512, [], "f0d6", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"] + }; + var faMoneyBillAlt = { + prefix: 'fas', + iconName: 'money-bill-alt', + icon: [640, 512, [], "f3d1", "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"] + }; + var faMoneyBillWave = { + prefix: 'fas', + iconName: 'money-bill-wave', + icon: [640, 512, [], "f53a", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"] + }; + var faMoneyBillWaveAlt = { + prefix: 'fas', + iconName: 'money-bill-wave-alt', + icon: [640, 512, [], "f53b", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"] + }; + var faMoneyCheck = { + prefix: 'fas', + iconName: 'money-check', + icon: [640, 512, [], "f53c", "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"] + }; + var faMoneyCheckAlt = { + prefix: 'fas', + iconName: 'money-check-alt', + icon: [640, 512, [], "f53d", "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"] + }; + var faMonument = { + prefix: 'fas', + iconName: 'monument', + icon: [384, 512, [], "f5a6", "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"] + }; + var faMoon = { + prefix: 'fas', + iconName: 'moon', + icon: [512, 512, [], "f186", "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"] + }; + var faMortarPestle = { + prefix: 'fas', + iconName: 'mortar-pestle', + icon: [512, 512, [], "f5a7", "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"] + }; + var faMosque = { + prefix: 'fas', + iconName: 'mosque', + icon: [640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"] + }; + var faMotorcycle = { + prefix: 'fas', + iconName: 'motorcycle', + icon: [640, 512, [], "f21c", "M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"] + }; + var faMountain = { + prefix: 'fas', + iconName: 'mountain', + icon: [640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"] + }; + var faMouse = { + prefix: 'fas', + iconName: 'mouse', + icon: [384, 512, [], "f8cc", "M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"] + }; + var faMousePointer = { + prefix: 'fas', + iconName: 'mouse-pointer', + icon: [320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"] + }; + var faMugHot = { + prefix: 'fas', + iconName: 'mug-hot', + icon: [512, 512, [], "f7b6", "M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"] + }; + var faMusic = { + prefix: 'fas', + iconName: 'music', + icon: [512, 512, [], "f001", "M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"] + }; + var faNetworkWired = { + prefix: 'fas', + iconName: 'network-wired', + icon: [640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"] + }; + var faNeuter = { + prefix: 'fas', + iconName: 'neuter', + icon: [288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faNewspaper = { + prefix: 'fas', + iconName: 'newspaper', + icon: [576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"] + }; + var faNotEqual = { + prefix: 'fas', + iconName: 'not-equal', + icon: [448, 512, [], "f53e", "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"] + }; + var faNotesMedical = { + prefix: 'fas', + iconName: 'notes-medical', + icon: [384, 512, [], "f481", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"] + }; + var faObjectGroup = { + prefix: 'fas', + iconName: 'object-group', + icon: [512, 512, [], "f247", "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"] + }; + var faObjectUngroup = { + prefix: 'fas', + iconName: 'object-ungroup', + icon: [576, 512, [], "f248", "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"] + }; + var faOilCan = { + prefix: 'fas', + iconName: 'oil-can', + icon: [640, 512, [], "f613", "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"] + }; + var faOm = { + prefix: 'fas', + iconName: 'om', + icon: [512, 512, [], "f679", "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"] + }; + var faOtter = { + prefix: 'fas', + iconName: 'otter', + icon: [640, 512, [], "f700", "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"] + }; + var faOutdent = { + prefix: 'fas', + iconName: 'outdent', + icon: [448, 512, [], "f03b", "M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faPager = { + prefix: 'fas', + iconName: 'pager', + icon: [512, 512, [], "f815", "M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z"] + }; + var faPaintBrush = { + prefix: 'fas', + iconName: 'paint-brush', + icon: [512, 512, [], "f1fc", "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"] + }; + var faPaintRoller = { + prefix: 'fas', + iconName: 'paint-roller', + icon: [512, 512, [], "f5aa", "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"] + }; + var faPalette = { + prefix: 'fas', + iconName: 'palette', + icon: [512, 512, [], "f53f", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faPallet = { + prefix: 'fas', + iconName: 'pallet', + icon: [640, 512, [], "f482", "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"] + }; + var faPaperPlane = { + prefix: 'fas', + iconName: 'paper-plane', + icon: [512, 512, [], "f1d8", "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"] + }; + var faPaperclip = { + prefix: 'fas', + iconName: 'paperclip', + icon: [448, 512, [], "f0c6", "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"] + }; + var faParachuteBox = { + prefix: 'fas', + iconName: 'parachute-box', + icon: [512, 512, [], "f4cd", "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"] + }; + var faParagraph = { + prefix: 'fas', + iconName: 'paragraph', + icon: [448, 512, [], "f1dd", "M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"] + }; + var faParking = { + prefix: 'fas', + iconName: 'parking', + icon: [448, 512, [], "f540", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"] + }; + var faPassport = { + prefix: 'fas', + iconName: 'passport', + icon: [448, 512, [], "f5ab", "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"] + }; + var faPastafarianism = { + prefix: 'fas', + iconName: 'pastafarianism', + icon: [640, 512, [], "f67b", "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"] + }; + var faPaste = { + prefix: 'fas', + iconName: 'paste', + icon: [448, 512, [], "f0ea", "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"] + }; + var faPause = { + prefix: 'fas', + iconName: 'pause', + icon: [448, 512, [], "f04c", "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"] + }; + var faPauseCircle = { + prefix: 'fas', + iconName: 'pause-circle', + icon: [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"] + }; + var faPaw = { + prefix: 'fas', + iconName: 'paw', + icon: [512, 512, [], "f1b0", "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"] + }; + var faPeace = { + prefix: 'fas', + iconName: 'peace', + icon: [496, 512, [], "f67c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"] + }; + var faPen = { + prefix: 'fas', + iconName: 'pen', + icon: [512, 512, [], "f304", "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"] + }; + var faPenAlt = { + prefix: 'fas', + iconName: 'pen-alt', + icon: [512, 512, [], "f305", "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"] + }; + var faPenFancy = { + prefix: 'fas', + iconName: 'pen-fancy', + icon: [512, 512, [], "f5ac", "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"] + }; + var faPenNib = { + prefix: 'fas', + iconName: 'pen-nib', + icon: [512, 512, [], "f5ad", "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"] + }; + var faPenSquare = { + prefix: 'fas', + iconName: 'pen-square', + icon: [448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"] + }; + var faPencilAlt = { + prefix: 'fas', + iconName: 'pencil-alt', + icon: [512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"] + }; + var faPencilRuler = { + prefix: 'fas', + iconName: 'pencil-ruler', + icon: [512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"] + }; + var faPeopleArrows = { + prefix: 'fas', + iconName: 'people-arrows', + icon: [576, 512, [], "e068", "M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z"] + }; + var faPeopleCarry = { + prefix: 'fas', + iconName: 'people-carry', + icon: [640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"] + }; + var faPepperHot = { + prefix: 'fas', + iconName: 'pepper-hot', + icon: [512, 512, [], "f816", "M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"] + }; + var faPercent = { + prefix: 'fas', + iconName: 'percent', + icon: [448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"] + }; + var faPercentage = { + prefix: 'fas', + iconName: 'percentage', + icon: [384, 512, [], "f541", "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"] + }; + var faPersonBooth = { + prefix: 'fas', + iconName: 'person-booth', + icon: [576, 512, [], "f756", "M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z"] + }; + var faPhone = { + prefix: 'fas', + iconName: 'phone', + icon: [512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"] + }; + var faPhoneAlt = { + prefix: 'fas', + iconName: 'phone-alt', + icon: [512, 512, [], "f879", "M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"] + }; + var faPhoneSlash = { + prefix: 'fas', + iconName: 'phone-slash', + icon: [640, 512, [], "f3dd", "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"] + }; + var faPhoneSquare = { + prefix: 'fas', + iconName: 'phone-square', + icon: [448, 512, [], "f098", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"] + }; + var faPhoneSquareAlt = { + prefix: 'fas', + iconName: 'phone-square-alt', + icon: [448, 512, [], "f87b", "M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z"] + }; + var faPhoneVolume = { + prefix: 'fas', + iconName: 'phone-volume', + icon: [384, 512, [], "f2a0", "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"] + }; + var faPhotoVideo = { + prefix: 'fas', + iconName: 'photo-video', + icon: [640, 512, [], "f87c", "M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z"] + }; + var faPiggyBank = { + prefix: 'fas', + iconName: 'piggy-bank', + icon: [576, 512, [], "f4d3", "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"] + }; + var faPills = { + prefix: 'fas', + iconName: 'pills', + icon: [576, 512, [], "f484", "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"] + }; + var faPizzaSlice = { + prefix: 'fas', + iconName: 'pizza-slice', + icon: [512, 512, [], "f818", "M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"] + }; + var faPlaceOfWorship = { + prefix: 'fas', + iconName: 'place-of-worship', + icon: [640, 512, [], "f67f", "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"] + }; + var faPlane = { + prefix: 'fas', + iconName: 'plane', + icon: [576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"] + }; + var faPlaneArrival = { + prefix: 'fas', + iconName: 'plane-arrival', + icon: [640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"] + }; + var faPlaneDeparture = { + prefix: 'fas', + iconName: 'plane-departure', + icon: [640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"] + }; + var faPlaneSlash = { + prefix: 'fas', + iconName: 'plane-slash', + icon: [640, 512, [], "e069", "M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z"] + }; + var faPlay = { + prefix: 'fas', + iconName: 'play', + icon: [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"] + }; + var faPlayCircle = { + prefix: 'fas', + iconName: 'play-circle', + icon: [512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"] + }; + var faPlug = { + prefix: 'fas', + iconName: 'plug', + icon: [384, 512, [], "f1e6", "M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z"] + }; + var faPlus = { + prefix: 'fas', + iconName: 'plus', + icon: [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] + }; + var faPlusCircle = { + prefix: 'fas', + iconName: 'plus-circle', + icon: [512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"] + }; + var faPlusSquare = { + prefix: 'fas', + iconName: 'plus-square', + icon: [448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"] + }; + var faPodcast = { + prefix: 'fas', + iconName: 'podcast', + icon: [448, 512, [], "f2ce", "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"] + }; + var faPoll = { + prefix: 'fas', + iconName: 'poll', + icon: [448, 512, [], "f681", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"] + }; + var faPollH = { + prefix: 'fas', + iconName: 'poll-h', + icon: [448, 512, [], "f682", "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"] + }; + var faPoo = { + prefix: 'fas', + iconName: 'poo', + icon: [512, 512, [], "f2fe", "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faPooStorm = { + prefix: 'fas', + iconName: 'poo-storm', + icon: [448, 512, [], "f75a", "M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z"] + }; + var faPoop = { + prefix: 'fas', + iconName: 'poop', + icon: [512, 512, [], "f619", "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"] + }; + var faPortrait = { + prefix: 'fas', + iconName: 'portrait', + icon: [384, 512, [], "f3e0", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"] + }; + var faPoundSign = { + prefix: 'fas', + iconName: 'pound-sign', + icon: [320, 512, [], "f154", "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"] + }; + var faPowerOff = { + prefix: 'fas', + iconName: 'power-off', + icon: [512, 512, [], "f011", "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"] + }; + var faPray = { + prefix: 'fas', + iconName: 'pray', + icon: [384, 512, [], "f683", "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"] + }; + var faPrayingHands = { + prefix: 'fas', + iconName: 'praying-hands', + icon: [640, 512, [], "f684", "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"] + }; + var faPrescription = { + prefix: 'fas', + iconName: 'prescription', + icon: [384, 512, [], "f5b1", "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"] + }; + var faPrescriptionBottle = { + prefix: 'fas', + iconName: 'prescription-bottle', + icon: [384, 512, [], "f485", "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"] + }; + var faPrescriptionBottleAlt = { + prefix: 'fas', + iconName: 'prescription-bottle-alt', + icon: [384, 512, [], "f486", "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"] + }; + var faPrint = { + prefix: 'fas', + iconName: 'print', + icon: [512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] + }; + var faProcedures = { + prefix: 'fas', + iconName: 'procedures', + icon: [640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"] + }; + var faProjectDiagram = { + prefix: 'fas', + iconName: 'project-diagram', + icon: [640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"] + }; + var faPumpMedical = { + prefix: 'fas', + iconName: 'pump-medical', + icon: [384, 512, [], "e06a", "M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z"] + }; + var faPumpSoap = { + prefix: 'fas', + iconName: 'pump-soap', + icon: [384, 512, [], "e06b", "M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z"] + }; + var faPuzzlePiece = { + prefix: 'fas', + iconName: 'puzzle-piece', + icon: [576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"] + }; + var faQrcode = { + prefix: 'fas', + iconName: 'qrcode', + icon: [448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"] + }; + var faQuestion = { + prefix: 'fas', + iconName: 'question', + icon: [384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"] + }; + var faQuestionCircle = { + prefix: 'fas', + iconName: 'question-circle', + icon: [512, 512, [], "f059", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"] + }; + var faQuidditch = { + prefix: 'fas', + iconName: 'quidditch', + icon: [640, 512, [], "f458", "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"] + }; + var faQuoteLeft = { + prefix: 'fas', + iconName: 'quote-left', + icon: [512, 512, [], "f10d", "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"] + }; + var faQuoteRight = { + prefix: 'fas', + iconName: 'quote-right', + icon: [512, 512, [], "f10e", "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"] + }; + var faQuran = { + prefix: 'fas', + iconName: 'quran', + icon: [448, 512, [], "f687", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"] + }; + var faRadiation = { + prefix: 'fas', + iconName: 'radiation', + icon: [496, 512, [], "f7b9", "M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z"] + }; + var faRadiationAlt = { + prefix: 'fas', + iconName: 'radiation-alt', + icon: [496, 512, [], "f7ba", "M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"] + }; + var faRainbow = { + prefix: 'fas', + iconName: 'rainbow', + icon: [576, 512, [], "f75b", "M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"] + }; + var faRandom = { + prefix: 'fas', + iconName: 'random', + icon: [512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"] + }; + var faReceipt = { + prefix: 'fas', + iconName: 'receipt', + icon: [384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"] + }; + var faRecordVinyl = { + prefix: 'fas', + iconName: 'record-vinyl', + icon: [512, 512, [], "f8d9", "M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"] + }; + var faRecycle = { + prefix: 'fas', + iconName: 'recycle', + icon: [512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"] + }; + var faRedo = { + prefix: 'fas', + iconName: 'redo', + icon: [512, 512, [], "f01e", "M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"] + }; + var faRedoAlt = { + prefix: 'fas', + iconName: 'redo-alt', + icon: [512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"] + }; + var faRegistered = { + prefix: 'fas', + iconName: 'registered', + icon: [512, 512, [], "f25d", "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"] + }; + var faRemoveFormat = { + prefix: 'fas', + iconName: 'remove-format', + icon: [640, 512, [], "f87d", "M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z"] + }; + var faReply = { + prefix: 'fas', + iconName: 'reply', + icon: [512, 512, [], "f3e5", "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"] + }; + var faReplyAll = { + prefix: 'fas', + iconName: 'reply-all', + icon: [576, 512, [], "f122", "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"] + }; + var faRepublican = { + prefix: 'fas', + iconName: 'republican', + icon: [640, 512, [], "f75e", "M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z"] + }; + var faRestroom = { + prefix: 'fas', + iconName: 'restroom', + icon: [640, 512, [], "f7bd", "M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z"] + }; + var faRetweet = { + prefix: 'fas', + iconName: 'retweet', + icon: [640, 512, [], "f079", "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"] + }; + var faRibbon = { + prefix: 'fas', + iconName: 'ribbon', + icon: [448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"] + }; + var faRing = { + prefix: 'fas', + iconName: 'ring', + icon: [512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"] + }; + var faRoad = { + prefix: 'fas', + iconName: 'road', + icon: [576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"] + }; + var faRobot = { + prefix: 'fas', + iconName: 'robot', + icon: [640, 512, [], "f544", "M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"] + }; + var faRocket = { + prefix: 'fas', + iconName: 'rocket', + icon: [512, 512, [], "f135", "M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"] + }; + var faRoute = { + prefix: 'fas', + iconName: 'route', + icon: [512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faRss = { + prefix: 'fas', + iconName: 'rss', + icon: [448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"] + }; + var faRssSquare = { + prefix: 'fas', + iconName: 'rss-square', + icon: [448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"] + }; + var faRubleSign = { + prefix: 'fas', + iconName: 'ruble-sign', + icon: [384, 512, [], "f158", "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"] + }; + var faRuler = { + prefix: 'fas', + iconName: 'ruler', + icon: [640, 512, [], "f545", "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"] + }; + var faRulerCombined = { + prefix: 'fas', + iconName: 'ruler-combined', + icon: [512, 512, [], "f546", "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"] + }; + var faRulerHorizontal = { + prefix: 'fas', + iconName: 'ruler-horizontal', + icon: [576, 512, [], "f547", "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"] + }; + var faRulerVertical = { + prefix: 'fas', + iconName: 'ruler-vertical', + icon: [256, 512, [], "f548", "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"] + }; + var faRunning = { + prefix: 'fas', + iconName: 'running', + icon: [416, 512, [], "f70c", "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"] + }; + var faRupeeSign = { + prefix: 'fas', + iconName: 'rupee-sign', + icon: [320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"] + }; + var faSadCry = { + prefix: 'fas', + iconName: 'sad-cry', + icon: [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"] + }; + var faSadTear = { + prefix: 'fas', + iconName: 'sad-tear', + icon: [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"] + }; + var faSatellite = { + prefix: 'fas', + iconName: 'satellite', + icon: [512, 512, [], "f7bf", "M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z"] + }; + var faSatelliteDish = { + prefix: 'fas', + iconName: 'satellite-dish', + icon: [512, 512, [], "f7c0", "M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z"] + }; + var faSave = { + prefix: 'fas', + iconName: 'save', + icon: [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"] + }; + var faSchool = { + prefix: 'fas', + iconName: 'school', + icon: [640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"] + }; + var faScrewdriver = { + prefix: 'fas', + iconName: 'screwdriver', + icon: [512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"] + }; + var faScroll = { + prefix: 'fas', + iconName: 'scroll', + icon: [640, 512, [], "f70e", "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"] + }; + var faSdCard = { + prefix: 'fas', + iconName: 'sd-card', + icon: [384, 512, [], "f7c2", "M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"] + }; + var faSearch = { + prefix: 'fas', + iconName: 'search', + icon: [512, 512, [], "f002", "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"] + }; + var faSearchDollar = { + prefix: 'fas', + iconName: 'search-dollar', + icon: [512, 512, [], "f688", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"] + }; + var faSearchLocation = { + prefix: 'fas', + iconName: 'search-location', + icon: [512, 512, [], "f689", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] + }; + var faSearchMinus = { + prefix: 'fas', + iconName: 'search-minus', + icon: [512, 512, [], "f010", "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"] + }; + var faSearchPlus = { + prefix: 'fas', + iconName: 'search-plus', + icon: [512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"] + }; + var faSeedling = { + prefix: 'fas', + iconName: 'seedling', + icon: [512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"] + }; + var faServer = { + prefix: 'fas', + iconName: 'server', + icon: [512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"] + }; + var faShapes = { + prefix: 'fas', + iconName: 'shapes', + icon: [512, 512, [], "f61f", "M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z"] + }; + var faShare = { + prefix: 'fas', + iconName: 'share', + icon: [512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"] + }; + var faShareAlt = { + prefix: 'fas', + iconName: 'share-alt', + icon: [448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"] + }; + var faShareAltSquare = { + prefix: 'fas', + iconName: 'share-alt-square', + icon: [448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"] + }; + var faShareSquare = { + prefix: 'fas', + iconName: 'share-square', + icon: [576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"] + }; + var faShekelSign = { + prefix: 'fas', + iconName: 'shekel-sign', + icon: [448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"] + }; + var faShieldAlt = { + prefix: 'fas', + iconName: 'shield-alt', + icon: [512, 512, [], "f3ed", "M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"] + }; + var faShieldVirus = { + prefix: 'fas', + iconName: 'shield-virus', + icon: [512, 512, [], "e06c", "M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"] + }; + var faShip = { + prefix: 'fas', + iconName: 'ship', + icon: [640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"] + }; + var faShippingFast = { + prefix: 'fas', + iconName: 'shipping-fast', + icon: [640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"] + }; + var faShoePrints = { + prefix: 'fas', + iconName: 'shoe-prints', + icon: [640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"] + }; + var faShoppingBag = { + prefix: 'fas', + iconName: 'shopping-bag', + icon: [448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"] + }; + var faShoppingBasket = { + prefix: 'fas', + iconName: 'shopping-basket', + icon: [576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"] + }; + var faShoppingCart = { + prefix: 'fas', + iconName: 'shopping-cart', + icon: [576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"] + }; + var faShower = { + prefix: 'fas', + iconName: 'shower', + icon: [512, 512, [], "f2cc", "M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z"] + }; + var faShuttleVan = { + prefix: 'fas', + iconName: 'shuttle-van', + icon: [640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"] + }; + var faSign = { + prefix: 'fas', + iconName: 'sign', + icon: [512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"] + }; + var faSignInAlt = { + prefix: 'fas', + iconName: 'sign-in-alt', + icon: [512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"] + }; + var faSignLanguage = { + prefix: 'fas', + iconName: 'sign-language', + icon: [448, 512, [], "f2a7", "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"] + }; + var faSignOutAlt = { + prefix: 'fas', + iconName: 'sign-out-alt', + icon: [512, 512, [], "f2f5", "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"] + }; + var faSignal = { + prefix: 'fas', + iconName: 'signal', + icon: [640, 512, [], "f012", "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"] + }; + var faSignature = { + prefix: 'fas', + iconName: 'signature', + icon: [640, 512, [], "f5b7", "M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z"] + }; + var faSimCard = { + prefix: 'fas', + iconName: 'sim-card', + icon: [384, 512, [], "f7c4", "M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z"] + }; + var faSink = { + prefix: 'fas', + iconName: 'sink', + icon: [512, 512, [], "e06d", "M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z"] + }; + var faSitemap = { + prefix: 'fas', + iconName: 'sitemap', + icon: [640, 512, [], "f0e8", "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"] + }; + var faSkating = { + prefix: 'fas', + iconName: 'skating', + icon: [448, 512, [], "f7c5", "M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"] + }; + var faSkiing = { + prefix: 'fas', + iconName: 'skiing', + icon: [512, 512, [], "f7c9", "M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z"] + }; + var faSkiingNordic = { + prefix: 'fas', + iconName: 'skiing-nordic', + icon: [576, 512, [], "f7ca", "M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z"] + }; + var faSkull = { + prefix: 'fas', + iconName: 'skull', + icon: [512, 512, [], "f54c", "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"] + }; + var faSkullCrossbones = { + prefix: 'fas', + iconName: 'skull-crossbones', + icon: [448, 512, [], "f714", "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"] + }; + var faSlash = { + prefix: 'fas', + iconName: 'slash', + icon: [640, 512, [], "f715", "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"] + }; + var faSleigh = { + prefix: 'fas', + iconName: 'sleigh', + icon: [640, 512, [], "f7cc", "M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z"] + }; + var faSlidersH = { + prefix: 'fas', + iconName: 'sliders-h', + icon: [512, 512, [], "f1de", "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"] + }; + var faSmile = { + prefix: 'fas', + iconName: 'smile', + icon: [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"] + }; + var faSmileBeam = { + prefix: 'fas', + iconName: 'smile-beam', + icon: [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"] + }; + var faSmileWink = { + prefix: 'fas', + iconName: 'smile-wink', + icon: [496, 512, [], "f4da", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"] + }; + var faSmog = { + prefix: 'fas', + iconName: 'smog', + icon: [640, 512, [], "f75f", "M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z"] + }; + var faSmoking = { + prefix: 'fas', + iconName: 'smoking', + icon: [640, 512, [], "f48d", "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"] + }; + var faSmokingBan = { + prefix: 'fas', + iconName: 'smoking-ban', + icon: [512, 512, [], "f54d", "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"] + }; + var faSms = { + prefix: 'fas', + iconName: 'sms', + icon: [512, 512, [], "f7cd", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"] + }; + var faSnowboarding = { + prefix: 'fas', + iconName: 'snowboarding', + icon: [512, 512, [], "f7ce", "M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z"] + }; + var faSnowflake = { + prefix: 'fas', + iconName: 'snowflake', + icon: [448, 512, [], "f2dc", "M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"] + }; + var faSnowman = { + prefix: 'fas', + iconName: 'snowman', + icon: [512, 512, [], "f7d0", "M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] + }; + var faSnowplow = { + prefix: 'fas', + iconName: 'snowplow', + icon: [640, 512, [], "f7d2", "M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"] + }; + var faSoap = { + prefix: 'fas', + iconName: 'soap', + icon: [512, 512, [], "e06e", "M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z"] + }; + var faSocks = { + prefix: 'fas', + iconName: 'socks', + icon: [512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"] + }; + var faSolarPanel = { + prefix: 'fas', + iconName: 'solar-panel', + icon: [640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"] + }; + var faSort = { + prefix: 'fas', + iconName: 'sort', + icon: [320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"] + }; + var faSortAlphaDown = { + prefix: 'fas', + iconName: 'sort-alpha-down', + icon: [448, 512, [], "f15d", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"] + }; + var faSortAlphaDownAlt = { + prefix: 'fas', + iconName: 'sort-alpha-down-alt', + icon: [448, 512, [], "f881", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"] + }; + var faSortAlphaUp = { + prefix: 'fas', + iconName: 'sort-alpha-up', + icon: [448, 512, [], "f15e", "M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"] + }; + var faSortAlphaUpAlt = { + prefix: 'fas', + iconName: 'sort-alpha-up-alt', + icon: [448, 512, [], "f882", "M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"] + }; + var faSortAmountDown = { + prefix: 'fas', + iconName: 'sort-amount-down', + icon: [512, 512, [], "f160", "M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faSortAmountDownAlt = { + prefix: 'fas', + iconName: 'sort-amount-down-alt', + icon: [512, 512, [], "f884", "M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"] + }; + var faSortAmountUp = { + prefix: 'fas', + iconName: 'sort-amount-up', + icon: [512, 512, [], "f161", "M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faSortAmountUpAlt = { + prefix: 'fas', + iconName: 'sort-amount-up-alt', + icon: [512, 512, [], "f885", "M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"] + }; + var faSortDown = { + prefix: 'fas', + iconName: 'sort-down', + icon: [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"] + }; + var faSortNumericDown = { + prefix: 'fas', + iconName: 'sort-numeric-down', + icon: [448, 512, [], "f162", "M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"] + }; + var faSortNumericDownAlt = { + prefix: 'fas', + iconName: 'sort-numeric-down-alt', + icon: [448, 512, [], "f886", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"] + }; + var faSortNumericUp = { + prefix: 'fas', + iconName: 'sort-numeric-up', + icon: [448, 512, [], "f163", "M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z"] + }; + var faSortNumericUpAlt = { + prefix: 'fas', + iconName: 'sort-numeric-up-alt', + icon: [448, 512, [], "f887", "M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"] + }; + var faSortUp = { + prefix: 'fas', + iconName: 'sort-up', + icon: [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"] + }; + var faSpa = { + prefix: 'fas', + iconName: 'spa', + icon: [576, 512, [], "f5bb", "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"] + }; + var faSpaceShuttle = { + prefix: 'fas', + iconName: 'space-shuttle', + icon: [640, 512, [], "f197", "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"] + }; + var faSpellCheck = { + prefix: 'fas', + iconName: 'spell-check', + icon: [576, 512, [], "f891", "M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z"] + }; + var faSpider = { + prefix: 'fas', + iconName: 'spider', + icon: [576, 512, [], "f717", "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"] + }; + var faSpinner = { + prefix: 'fas', + iconName: 'spinner', + icon: [512, 512, [], "f110", "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"] + }; + var faSplotch = { + prefix: 'fas', + iconName: 'splotch', + icon: [512, 512, [], "f5bc", "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"] + }; + var faSprayCan = { + prefix: 'fas', + iconName: 'spray-can', + icon: [512, 512, [], "f5bd", "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"] + }; + var faSquare = { + prefix: 'fas', + iconName: 'square', + icon: [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] + }; + var faSquareFull = { + prefix: 'fas', + iconName: 'square-full', + icon: [512, 512, [], "f45c", "M512 512H0V0h512v512z"] + }; + var faSquareRootAlt = { + prefix: 'fas', + iconName: 'square-root-alt', + icon: [576, 512, [], "f698", "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"] + }; + var faStamp = { + prefix: 'fas', + iconName: 'stamp', + icon: [512, 512, [], "f5bf", "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"] + }; + var faStar = { + prefix: 'fas', + iconName: 'star', + icon: [576, 512, [], "f005", "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"] + }; + var faStarAndCrescent = { + prefix: 'fas', + iconName: 'star-and-crescent', + icon: [512, 512, [], "f699", "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"] + }; + var faStarHalf = { + prefix: 'fas', + iconName: 'star-half', + icon: [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"] + }; + var faStarHalfAlt = { + prefix: 'fas', + iconName: 'star-half-alt', + icon: [536, 512, [], "f5c0", "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"] + }; + var faStarOfDavid = { + prefix: 'fas', + iconName: 'star-of-david', + icon: [464, 512, [], "f69a", "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"] + }; + var faStarOfLife = { + prefix: 'fas', + iconName: 'star-of-life', + icon: [480, 512, [], "f621", "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"] + }; + var faStepBackward = { + prefix: 'fas', + iconName: 'step-backward', + icon: [448, 512, [], "f048", "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"] + }; + var faStepForward = { + prefix: 'fas', + iconName: 'step-forward', + icon: [448, 512, [], "f051", "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"] + }; + var faStethoscope = { + prefix: 'fas', + iconName: 'stethoscope', + icon: [512, 512, [], "f0f1", "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"] + }; + var faStickyNote = { + prefix: 'fas', + iconName: 'sticky-note', + icon: [448, 512, [], "f249", "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"] + }; + var faStop = { + prefix: 'fas', + iconName: 'stop', + icon: [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] + }; + var faStopCircle = { + prefix: 'fas', + iconName: 'stop-circle', + icon: [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"] + }; + var faStopwatch = { + prefix: 'fas', + iconName: 'stopwatch', + icon: [448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"] + }; + var faStopwatch20 = { + prefix: 'fas', + iconName: 'stopwatch-20', + icon: [448, 512, [], "e06f", "M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z"] + }; + var faStore = { + prefix: 'fas', + iconName: 'store', + icon: [616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"] + }; + var faStoreAlt = { + prefix: 'fas', + iconName: 'store-alt', + icon: [640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"] + }; + var faStoreAltSlash = { + prefix: 'fas', + iconName: 'store-alt-slash', + icon: [640, 512, [], "e070", "M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z"] + }; + var faStoreSlash = { + prefix: 'fas', + iconName: 'store-slash', + icon: [640, 512, [], "e071", "M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z"] + }; + var faStream = { + prefix: 'fas', + iconName: 'stream', + icon: [512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"] + }; + var faStreetView = { + prefix: 'fas', + iconName: 'street-view', + icon: [512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"] + }; + var faStrikethrough = { + prefix: 'fas', + iconName: 'strikethrough', + icon: [512, 512, [], "f0cc", "M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"] + }; + var faStroopwafel = { + prefix: 'fas', + iconName: 'stroopwafel', + icon: [512, 512, [], "f551", "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"] + }; + var faSubscript = { + prefix: 'fas', + iconName: 'subscript', + icon: [512, 512, [], "f12c", "M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"] + }; + var faSubway = { + prefix: 'fas', + iconName: 'subway', + icon: [448, 512, [], "f239", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"] + }; + var faSuitcase = { + prefix: 'fas', + iconName: 'suitcase', + icon: [512, 512, [], "f0f2", "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"] + }; + var faSuitcaseRolling = { + prefix: 'fas', + iconName: 'suitcase-rolling', + icon: [384, 512, [], "f5c1", "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"] + }; + var faSun = { + prefix: 'fas', + iconName: 'sun', + icon: [512, 512, [], "f185", "M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"] + }; + var faSuperscript = { + prefix: 'fas', + iconName: 'superscript', + icon: [512, 512, [], "f12b", "M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"] + }; + var faSurprise = { + prefix: 'fas', + iconName: 'surprise', + icon: [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faSwatchbook = { + prefix: 'fas', + iconName: 'swatchbook', + icon: [512, 512, [], "f5c3", "M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"] + }; + var faSwimmer = { + prefix: 'fas', + iconName: 'swimmer', + icon: [640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"] + }; + var faSwimmingPool = { + prefix: 'fas', + iconName: 'swimming-pool', + icon: [640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"] + }; + var faSynagogue = { + prefix: 'fas', + iconName: 'synagogue', + icon: [640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"] + }; + var faSync = { + prefix: 'fas', + iconName: 'sync', + icon: [512, 512, [], "f021", "M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"] + }; + var faSyncAlt = { + prefix: 'fas', + iconName: 'sync-alt', + icon: [512, 512, [], "f2f1", "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"] + }; + var faSyringe = { + prefix: 'fas', + iconName: 'syringe', + icon: [512, 512, [], "f48e", "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"] + }; + var faTable = { + prefix: 'fas', + iconName: 'table', + icon: [512, 512, [], "f0ce", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"] + }; + var faTableTennis = { + prefix: 'fas', + iconName: 'table-tennis', + icon: [512, 512, [], "f45d", "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"] + }; + var faTablet = { + prefix: 'fas', + iconName: 'tablet', + icon: [448, 512, [], "f10a", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"] + }; + var faTabletAlt = { + prefix: 'fas', + iconName: 'tablet-alt', + icon: [448, 512, [], "f3fa", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"] + }; + var faTablets = { + prefix: 'fas', + iconName: 'tablets', + icon: [640, 512, [], "f490", "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"] + }; + var faTachometerAlt = { + prefix: 'fas', + iconName: 'tachometer-alt', + icon: [576, 512, [], "f3fd", "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faTag = { + prefix: 'fas', + iconName: 'tag', + icon: [512, 512, [], "f02b", "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"] + }; + var faTags = { + prefix: 'fas', + iconName: 'tags', + icon: [640, 512, [], "f02c", "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"] + }; + var faTape = { + prefix: 'fas', + iconName: 'tape', + icon: [640, 512, [], "f4db", "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"] + }; + var faTasks = { + prefix: 'fas', + iconName: 'tasks', + icon: [512, 512, [], "f0ae", "M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faTaxi = { + prefix: 'fas', + iconName: 'taxi', + icon: [512, 512, [], "f1ba", "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faTeeth = { + prefix: 'fas', + iconName: 'teeth', + icon: [640, 512, [], "f62e", "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"] + }; + var faTeethOpen = { + prefix: 'fas', + iconName: 'teeth-open', + icon: [640, 512, [], "f62f", "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"] + }; + var faTemperatureHigh = { + prefix: 'fas', + iconName: 'temperature-high', + icon: [512, 512, [], "f769", "M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"] + }; + var faTemperatureLow = { + prefix: 'fas', + iconName: 'temperature-low', + icon: [512, 512, [], "f76b", "M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"] + }; + var faTenge = { + prefix: 'fas', + iconName: 'tenge', + icon: [384, 512, [], "f7d7", "M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z"] + }; + var faTerminal = { + prefix: 'fas', + iconName: 'terminal', + icon: [640, 512, [], "f120", "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"] + }; + var faTextHeight = { + prefix: 'fas', + iconName: 'text-height', + icon: [576, 512, [], "f034", "M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"] + }; + var faTextWidth = { + prefix: 'fas', + iconName: 'text-width', + icon: [448, 512, [], "f035", "M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z"] + }; + var faTh = { + prefix: 'fas', + iconName: 'th', + icon: [512, 512, [], "f00a", "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"] + }; + var faThLarge = { + prefix: 'fas', + iconName: 'th-large', + icon: [512, 512, [], "f009", "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"] + }; + var faThList = { + prefix: 'fas', + iconName: 'th-list', + icon: [512, 512, [], "f00b", "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"] + }; + var faTheaterMasks = { + prefix: 'fas', + iconName: 'theater-masks', + icon: [640, 512, [], "f630", "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"] + }; + var faThermometer = { + prefix: 'fas', + iconName: 'thermometer', + icon: [512, 512, [], "f491", "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"] + }; + var faThermometerEmpty = { + prefix: 'fas', + iconName: 'thermometer-empty', + icon: [256, 512, [], "f2cb", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] + }; + var faThermometerFull = { + prefix: 'fas', + iconName: 'thermometer-full', + icon: [256, 512, [], "f2c7", "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"] + }; + var faThermometerHalf = { + prefix: 'fas', + iconName: 'thermometer-half', + icon: [256, 512, [], "f2c9", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] + }; + var faThermometerQuarter = { + prefix: 'fas', + iconName: 'thermometer-quarter', + icon: [256, 512, [], "f2ca", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] + }; + var faThermometerThreeQuarters = { + prefix: 'fas', + iconName: 'thermometer-three-quarters', + icon: [256, 512, [], "f2c8", "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"] + }; + var faThumbsDown = { + prefix: 'fas', + iconName: 'thumbs-down', + icon: [512, 512, [], "f165", "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"] + }; + var faThumbsUp = { + prefix: 'fas', + iconName: 'thumbs-up', + icon: [512, 512, [], "f164", "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"] + }; + var faThumbtack = { + prefix: 'fas', + iconName: 'thumbtack', + icon: [384, 512, [], "f08d", "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"] + }; + var faTicketAlt = { + prefix: 'fas', + iconName: 'ticket-alt', + icon: [576, 512, [], "f3ff", "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"] + }; + var faTimes = { + prefix: 'fas', + iconName: 'times', + icon: [352, 512, [], "f00d", "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"] + }; + var faTimesCircle = { + prefix: 'fas', + iconName: 'times-circle', + icon: [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"] + }; + var faTint = { + prefix: 'fas', + iconName: 'tint', + icon: [352, 512, [], "f043", "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"] + }; + var faTintSlash = { + prefix: 'fas', + iconName: 'tint-slash', + icon: [640, 512, [], "f5c7", "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"] + }; + var faTired = { + prefix: 'fas', + iconName: 'tired', + icon: [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"] + }; + var faToggleOff = { + prefix: 'fas', + iconName: 'toggle-off', + icon: [576, 512, [], "f204", "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"] + }; + var faToggleOn = { + prefix: 'fas', + iconName: 'toggle-on', + icon: [576, 512, [], "f205", "M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"] + }; + var faToilet = { + prefix: 'fas', + iconName: 'toilet', + icon: [384, 512, [], "f7d8", "M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"] + }; + var faToiletPaper = { + prefix: 'fas', + iconName: 'toilet-paper', + icon: [576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"] + }; + var faToiletPaperSlash = { + prefix: 'fas', + iconName: 'toilet-paper-slash', + icon: [640, 512, [], "e072", "M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z"] + }; + var faToolbox = { + prefix: 'fas', + iconName: 'toolbox', + icon: [512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"] + }; + var faTools = { + prefix: 'fas', + iconName: 'tools', + icon: [512, 512, [], "f7d9", "M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"] + }; + var faTooth = { + prefix: 'fas', + iconName: 'tooth', + icon: [448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"] + }; + var faTorah = { + prefix: 'fas', + iconName: 'torah', + icon: [640, 512, [], "f6a0", "M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z"] + }; + var faToriiGate = { + prefix: 'fas', + iconName: 'torii-gate', + icon: [512, 512, [], "f6a1", "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"] + }; + var faTractor = { + prefix: 'fas', + iconName: 'tractor', + icon: [640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"] + }; + var faTrademark = { + prefix: 'fas', + iconName: 'trademark', + icon: [640, 512, [], "f25c", "M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"] + }; + var faTrafficLight = { + prefix: 'fas', + iconName: 'traffic-light', + icon: [384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"] + }; + var faTrailer = { + prefix: 'fas', + iconName: 'trailer', + icon: [640, 512, [], "e041", "M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z"] + }; + var faTrain = { + prefix: 'fas', + iconName: 'train', + icon: [448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"] + }; + var faTram = { + prefix: 'fas', + iconName: 'tram', + icon: [512, 512, [], "f7da", "M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"] + }; + var faTransgender = { + prefix: 'fas', + iconName: 'transgender', + icon: [384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faTransgenderAlt = { + prefix: 'fas', + iconName: 'transgender-alt', + icon: [480, 512, [], "f225", "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faTrash = { + prefix: 'fas', + iconName: 'trash', + icon: [448, 512, [], "f1f8", "M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"] + }; + var faTrashAlt = { + prefix: 'fas', + iconName: 'trash-alt', + icon: [448, 512, [], "f2ed", "M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faTrashRestore = { + prefix: 'fas', + iconName: 'trash-restore', + icon: [448, 512, [], "f829", "M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faTrashRestoreAlt = { + prefix: 'fas', + iconName: 'trash-restore-alt', + icon: [448, 512, [], "f82a", "M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"] + }; + var faTree = { + prefix: 'fas', + iconName: 'tree', + icon: [384, 512, [], "f1bb", "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"] + }; + var faTrophy = { + prefix: 'fas', + iconName: 'trophy', + icon: [576, 512, [], "f091", "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"] + }; + var faTruck = { + prefix: 'fas', + iconName: 'truck', + icon: [640, 512, [], "f0d1", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"] + }; + var faTruckLoading = { + prefix: 'fas', + iconName: 'truck-loading', + icon: [640, 512, [], "f4de", "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"] + }; + var faTruckMonster = { + prefix: 'fas', + iconName: 'truck-monster', + icon: [640, 512, [], "f63b", "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"] + }; + var faTruckMoving = { + prefix: 'fas', + iconName: 'truck-moving', + icon: [640, 512, [], "f4df", "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"] + }; + var faTruckPickup = { + prefix: 'fas', + iconName: 'truck-pickup', + icon: [640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"] + }; + var faTshirt = { + prefix: 'fas', + iconName: 'tshirt', + icon: [640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"] + }; + var faTty = { + prefix: 'fas', + iconName: 'tty', + icon: [512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"] + }; + var faTv = { + prefix: 'fas', + iconName: 'tv', + icon: [640, 512, [], "f26c", "M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"] + }; + var faUmbrella = { + prefix: 'fas', + iconName: 'umbrella', + icon: [576, 512, [], "f0e9", "M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"] + }; + var faUmbrellaBeach = { + prefix: 'fas', + iconName: 'umbrella-beach', + icon: [640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"] + }; + var faUnderline = { + prefix: 'fas', + iconName: 'underline', + icon: [448, 512, [], "f0cd", "M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"] + }; + var faUndo = { + prefix: 'fas', + iconName: 'undo', + icon: [512, 512, [], "f0e2", "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"] + }; + var faUndoAlt = { + prefix: 'fas', + iconName: 'undo-alt', + icon: [512, 512, [], "f2ea", "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"] + }; + var faUniversalAccess = { + prefix: 'fas', + iconName: 'universal-access', + icon: [512, 512, [], "f29a", "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"] + }; + var faUniversity = { + prefix: 'fas', + iconName: 'university', + icon: [512, 512, [], "f19c", "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"] + }; + var faUnlink = { + prefix: 'fas', + iconName: 'unlink', + icon: [512, 512, [], "f127", "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"] + }; + var faUnlock = { + prefix: 'fas', + iconName: 'unlock', + icon: [448, 512, [], "f09c", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"] + }; + var faUnlockAlt = { + prefix: 'fas', + iconName: 'unlock-alt', + icon: [448, 512, [], "f13e", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"] + }; + var faUpload = { + prefix: 'fas', + iconName: 'upload', + icon: [512, 512, [], "f093", "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"] + }; + var faUser = { + prefix: 'fas', + iconName: 'user', + icon: [448, 512, [], "f007", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] + }; + var faUserAlt = { + prefix: 'fas', + iconName: 'user-alt', + icon: [512, 512, [], "f406", "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"] + }; + var faUserAltSlash = { + prefix: 'fas', + iconName: 'user-alt-slash', + icon: [640, 512, [], "f4fa", "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"] + }; + var faUserAstronaut = { + prefix: 'fas', + iconName: 'user-astronaut', + icon: [448, 512, [], "f4fb", "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"] + }; + var faUserCheck = { + prefix: 'fas', + iconName: 'user-check', + icon: [640, 512, [], "f4fc", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"] + }; + var faUserCircle = { + prefix: 'fas', + iconName: 'user-circle', + icon: [496, 512, [], "f2bd", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"] + }; + var faUserClock = { + prefix: 'fas', + iconName: 'user-clock', + icon: [640, 512, [], "f4fd", "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"] + }; + var faUserCog = { + prefix: 'fas', + iconName: 'user-cog', + icon: [640, 512, [], "f4fe", "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"] + }; + var faUserEdit = { + prefix: 'fas', + iconName: 'user-edit', + icon: [640, 512, [], "f4ff", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"] + }; + var faUserFriends = { + prefix: 'fas', + iconName: 'user-friends', + icon: [640, 512, [], "f500", "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"] + }; + var faUserGraduate = { + prefix: 'fas', + iconName: 'user-graduate', + icon: [448, 512, [], "f501", "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"] + }; + var faUserInjured = { + prefix: 'fas', + iconName: 'user-injured', + icon: [448, 512, [], "f728", "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"] + }; + var faUserLock = { + prefix: 'fas', + iconName: 'user-lock', + icon: [640, 512, [], "f502", "M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"] + }; + var faUserMd = { + prefix: 'fas', + iconName: 'user-md', + icon: [448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"] + }; + var faUserMinus = { + prefix: 'fas', + iconName: 'user-minus', + icon: [640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] + }; + var faUserNinja = { + prefix: 'fas', + iconName: 'user-ninja', + icon: [448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"] + }; + var faUserNurse = { + prefix: 'fas', + iconName: 'user-nurse', + icon: [448, 512, [], "f82f", "M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z"] + }; + var faUserPlus = { + prefix: 'fas', + iconName: 'user-plus', + icon: [640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] + }; + var faUserSecret = { + prefix: 'fas', + iconName: 'user-secret', + icon: [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"] + }; + var faUserShield = { + prefix: 'fas', + iconName: 'user-shield', + icon: [640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"] + }; + var faUserSlash = { + prefix: 'fas', + iconName: 'user-slash', + icon: [640, 512, [], "f506", "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"] + }; + var faUserTag = { + prefix: 'fas', + iconName: 'user-tag', + icon: [640, 512, [], "f507", "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"] + }; + var faUserTie = { + prefix: 'fas', + iconName: 'user-tie', + icon: [448, 512, [], "f508", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"] + }; + var faUserTimes = { + prefix: 'fas', + iconName: 'user-times', + icon: [640, 512, [], "f235", "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"] + }; + var faUsers = { + prefix: 'fas', + iconName: 'users', + icon: [640, 512, [], "f0c0", "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"] + }; + var faUsersCog = { + prefix: 'fas', + iconName: 'users-cog', + icon: [640, 512, [], "f509", "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"] + }; + var faUsersSlash = { + prefix: 'fas', + iconName: 'users-slash', + icon: [640, 512, [], "e073", "M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z"] + }; + var faUtensilSpoon = { + prefix: 'fas', + iconName: 'utensil-spoon', + icon: [512, 512, [], "f2e5", "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"] + }; + var faUtensils = { + prefix: 'fas', + iconName: 'utensils', + icon: [416, 512, [], "f2e7", "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"] + }; + var faVectorSquare = { + prefix: 'fas', + iconName: 'vector-square', + icon: [512, 512, [], "f5cb", "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"] + }; + var faVenus = { + prefix: 'fas', + iconName: 'venus', + icon: [288, 512, [], "f221", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"] + }; + var faVenusDouble = { + prefix: 'fas', + iconName: 'venus-double', + icon: [512, 512, [], "f226", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"] + }; + var faVenusMars = { + prefix: 'fas', + iconName: 'venus-mars', + icon: [576, 512, [], "f228", "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"] + }; + var faVest = { + prefix: 'fas', + iconName: 'vest', + icon: [448, 512, [], "e085", "M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z"] + }; + var faVestPatches = { + prefix: 'fas', + iconName: 'vest-patches', + icon: [448, 512, [], "e086", "M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z"] + }; + var faVial = { + prefix: 'fas', + iconName: 'vial', + icon: [480, 512, [], "f492", "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"] + }; + var faVials = { + prefix: 'fas', + iconName: 'vials', + icon: [640, 512, [], "f493", "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"] + }; + var faVideo = { + prefix: 'fas', + iconName: 'video', + icon: [576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"] + }; + var faVideoSlash = { + prefix: 'fas', + iconName: 'video-slash', + icon: [640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"] + }; + var faVihara = { + prefix: 'fas', + iconName: 'vihara', + icon: [640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"] + }; + var faVirus = { + prefix: 'fas', + iconName: 'virus', + icon: [512, 512, [], "e074", "M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z"] + }; + var faVirusSlash = { + prefix: 'fas', + iconName: 'virus-slash', + icon: [640, 512, [], "e075", "M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z"] + }; + var faViruses = { + prefix: 'fas', + iconName: 'viruses', + icon: [640, 512, [], "e076", "M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z"] + }; + var faVoicemail = { + prefix: 'fas', + iconName: 'voicemail', + icon: [640, 512, [], "f897", "M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"] + }; + var faVolleyballBall = { + prefix: 'fas', + iconName: 'volleyball-ball', + icon: [512, 512, [], "f45f", "M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"] + }; + var faVolumeDown = { + prefix: 'fas', + iconName: 'volume-down', + icon: [384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"] + }; + var faVolumeMute = { + prefix: 'fas', + iconName: 'volume-mute', + icon: [512, 512, [], "f6a9", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"] + }; + var faVolumeOff = { + prefix: 'fas', + iconName: 'volume-off', + icon: [256, 512, [], "f026", "M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z"] + }; + var faVolumeUp = { + prefix: 'fas', + iconName: 'volume-up', + icon: [576, 512, [], "f028", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"] + }; + var faVoteYea = { + prefix: 'fas', + iconName: 'vote-yea', + icon: [640, 512, [], "f772", "M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"] + }; + var faVrCardboard = { + prefix: 'fas', + iconName: 'vr-cardboard', + icon: [640, 512, [], "f729", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"] + }; + var faWalking = { + prefix: 'fas', + iconName: 'walking', + icon: [320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"] + }; + var faWallet = { + prefix: 'fas', + iconName: 'wallet', + icon: [512, 512, [], "f555", "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"] + }; + var faWarehouse = { + prefix: 'fas', + iconName: 'warehouse', + icon: [640, 512, [], "f494", "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"] + }; + var faWater = { + prefix: 'fas', + iconName: 'water', + icon: [576, 512, [], "f773", "M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"] + }; + var faWaveSquare = { + prefix: 'fas', + iconName: 'wave-square', + icon: [640, 512, [], "f83e", "M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z"] + }; + var faWeight = { + prefix: 'fas', + iconName: 'weight', + icon: [512, 512, [], "f496", "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"] + }; + var faWeightHanging = { + prefix: 'fas', + iconName: 'weight-hanging', + icon: [512, 512, [], "f5cd", "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"] + }; + var faWheelchair = { + prefix: 'fas', + iconName: 'wheelchair', + icon: [512, 512, [], "f193", "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"] + }; + var faWifi = { + prefix: 'fas', + iconName: 'wifi', + icon: [640, 512, [], "f1eb", "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"] + }; + var faWind = { + prefix: 'fas', + iconName: 'wind', + icon: [512, 512, [], "f72e", "M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z"] + }; + var faWindowClose = { + prefix: 'fas', + iconName: 'window-close', + icon: [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"] + }; + var faWindowMaximize = { + prefix: 'fas', + iconName: 'window-maximize', + icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"] + }; + var faWindowMinimize = { + prefix: 'fas', + iconName: 'window-minimize', + icon: [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"] + }; + var faWindowRestore = { + prefix: 'fas', + iconName: 'window-restore', + icon: [512, 512, [], "f2d2", "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"] + }; + var faWineBottle = { + prefix: 'fas', + iconName: 'wine-bottle', + icon: [512, 512, [], "f72f", "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"] + }; + var faWineGlass = { + prefix: 'fas', + iconName: 'wine-glass', + icon: [288, 512, [], "f4e3", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"] + }; + var faWineGlassAlt = { + prefix: 'fas', + iconName: 'wine-glass-alt', + icon: [288, 512, [], "f5ce", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"] + }; + var faWonSign = { + prefix: 'fas', + iconName: 'won-sign', + icon: [576, 512, [], "f159", "M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z"] + }; + var faWrench = { + prefix: 'fas', + iconName: 'wrench', + icon: [512, 512, [], "f0ad", "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"] + }; + var faXRay = { + prefix: 'fas', + iconName: 'x-ray', + icon: [640, 512, [], "f497", "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"] + }; + var faYenSign = { + prefix: 'fas', + iconName: 'yen-sign', + icon: [384, 512, [], "f157", "M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z"] + }; + var faYinYang = { + prefix: 'fas', + iconName: 'yin-yang', + icon: [496, 512, [], "f6ad", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"] + }; + var _iconsCache = { + faAd: faAd, + faAddressBook: faAddressBook, + faAddressCard: faAddressCard, + faAdjust: faAdjust, + faAirFreshener: faAirFreshener, + faAlignCenter: faAlignCenter, + faAlignJustify: faAlignJustify, + faAlignLeft: faAlignLeft, + faAlignRight: faAlignRight, + faAllergies: faAllergies, + faAmbulance: faAmbulance, + faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting, + faAnchor: faAnchor, + faAngleDoubleDown: faAngleDoubleDown, + faAngleDoubleLeft: faAngleDoubleLeft, + faAngleDoubleRight: faAngleDoubleRight, + faAngleDoubleUp: faAngleDoubleUp, + faAngleDown: faAngleDown, + faAngleLeft: faAngleLeft, + faAngleRight: faAngleRight, + faAngleUp: faAngleUp, + faAngry: faAngry, + faAnkh: faAnkh, + faAppleAlt: faAppleAlt, + faArchive: faArchive, + faArchway: faArchway, + faArrowAltCircleDown: faArrowAltCircleDown, + faArrowAltCircleLeft: faArrowAltCircleLeft, + faArrowAltCircleRight: faArrowAltCircleRight, + faArrowAltCircleUp: faArrowAltCircleUp, + faArrowCircleDown: faArrowCircleDown, + faArrowCircleLeft: faArrowCircleLeft, + faArrowCircleRight: faArrowCircleRight, + faArrowCircleUp: faArrowCircleUp, + faArrowDown: faArrowDown, + faArrowLeft: faArrowLeft, + faArrowRight: faArrowRight, + faArrowUp: faArrowUp, + faArrowsAlt: faArrowsAlt, + faArrowsAltH: faArrowsAltH, + faArrowsAltV: faArrowsAltV, + faAssistiveListeningSystems: faAssistiveListeningSystems, + faAsterisk: faAsterisk, + faAt: faAt, + faAtlas: faAtlas, + faAtom: faAtom, + faAudioDescription: faAudioDescription, + faAward: faAward, + faBaby: faBaby, + faBabyCarriage: faBabyCarriage, + faBackspace: faBackspace, + faBackward: faBackward, + faBacon: faBacon, + faBacteria: faBacteria, + faBacterium: faBacterium, + faBahai: faBahai, + faBalanceScale: faBalanceScale, + faBalanceScaleLeft: faBalanceScaleLeft, + faBalanceScaleRight: faBalanceScaleRight, + faBan: faBan, + faBandAid: faBandAid, + faBarcode: faBarcode, + faBars: faBars, + faBaseballBall: faBaseballBall, + faBasketballBall: faBasketballBall, + faBath: faBath, + faBatteryEmpty: faBatteryEmpty, + faBatteryFull: faBatteryFull, + faBatteryHalf: faBatteryHalf, + faBatteryQuarter: faBatteryQuarter, + faBatteryThreeQuarters: faBatteryThreeQuarters, + faBed: faBed, + faBeer: faBeer, + faBell: faBell, + faBellSlash: faBellSlash, + faBezierCurve: faBezierCurve, + faBible: faBible, + faBicycle: faBicycle, + faBiking: faBiking, + faBinoculars: faBinoculars, + faBiohazard: faBiohazard, + faBirthdayCake: faBirthdayCake, + faBlender: faBlender, + faBlenderPhone: faBlenderPhone, + faBlind: faBlind, + faBlog: faBlog, + faBold: faBold, + faBolt: faBolt, + faBomb: faBomb, + faBone: faBone, + faBong: faBong, + faBook: faBook, + faBookDead: faBookDead, + faBookMedical: faBookMedical, + faBookOpen: faBookOpen, + faBookReader: faBookReader, + faBookmark: faBookmark, + faBorderAll: faBorderAll, + faBorderNone: faBorderNone, + faBorderStyle: faBorderStyle, + faBowlingBall: faBowlingBall, + faBox: faBox, + faBoxOpen: faBoxOpen, + faBoxTissue: faBoxTissue, + faBoxes: faBoxes, + faBraille: faBraille, + faBrain: faBrain, + faBreadSlice: faBreadSlice, + faBriefcase: faBriefcase, + faBriefcaseMedical: faBriefcaseMedical, + faBroadcastTower: faBroadcastTower, + faBroom: faBroom, + faBrush: faBrush, + faBug: faBug, + faBuilding: faBuilding, + faBullhorn: faBullhorn, + faBullseye: faBullseye, + faBurn: faBurn, + faBus: faBus, + faBusAlt: faBusAlt, + faBusinessTime: faBusinessTime, + faCalculator: faCalculator, + faCalendar: faCalendar, + faCalendarAlt: faCalendarAlt, + faCalendarCheck: faCalendarCheck, + faCalendarDay: faCalendarDay, + faCalendarMinus: faCalendarMinus, + faCalendarPlus: faCalendarPlus, + faCalendarTimes: faCalendarTimes, + faCalendarWeek: faCalendarWeek, + faCamera: faCamera, + faCameraRetro: faCameraRetro, + faCampground: faCampground, + faCandyCane: faCandyCane, + faCannabis: faCannabis, + faCapsules: faCapsules, + faCar: faCar, + faCarAlt: faCarAlt, + faCarBattery: faCarBattery, + faCarCrash: faCarCrash, + faCarSide: faCarSide, + faCaravan: faCaravan, + faCaretDown: faCaretDown, + faCaretLeft: faCaretLeft, + faCaretRight: faCaretRight, + faCaretSquareDown: faCaretSquareDown, + faCaretSquareLeft: faCaretSquareLeft, + faCaretSquareRight: faCaretSquareRight, + faCaretSquareUp: faCaretSquareUp, + faCaretUp: faCaretUp, + faCarrot: faCarrot, + faCartArrowDown: faCartArrowDown, + faCartPlus: faCartPlus, + faCashRegister: faCashRegister, + faCat: faCat, + faCertificate: faCertificate, + faChair: faChair, + faChalkboard: faChalkboard, + faChalkboardTeacher: faChalkboardTeacher, + faChargingStation: faChargingStation, + faChartArea: faChartArea, + faChartBar: faChartBar, + faChartLine: faChartLine, + faChartPie: faChartPie, + faCheck: faCheck, + faCheckCircle: faCheckCircle, + faCheckDouble: faCheckDouble, + faCheckSquare: faCheckSquare, + faCheese: faCheese, + faChess: faChess, + faChessBishop: faChessBishop, + faChessBoard: faChessBoard, + faChessKing: faChessKing, + faChessKnight: faChessKnight, + faChessPawn: faChessPawn, + faChessQueen: faChessQueen, + faChessRook: faChessRook, + faChevronCircleDown: faChevronCircleDown, + faChevronCircleLeft: faChevronCircleLeft, + faChevronCircleRight: faChevronCircleRight, + faChevronCircleUp: faChevronCircleUp, + faChevronDown: faChevronDown, + faChevronLeft: faChevronLeft, + faChevronRight: faChevronRight, + faChevronUp: faChevronUp, + faChild: faChild, + faChurch: faChurch, + faCircle: faCircle, + faCircleNotch: faCircleNotch, + faCity: faCity, + faClinicMedical: faClinicMedical, + faClipboard: faClipboard, + faClipboardCheck: faClipboardCheck, + faClipboardList: faClipboardList, + faClock: faClock, + faClone: faClone, + faClosedCaptioning: faClosedCaptioning, + faCloud: faCloud, + faCloudDownloadAlt: faCloudDownloadAlt, + faCloudMeatball: faCloudMeatball, + faCloudMoon: faCloudMoon, + faCloudMoonRain: faCloudMoonRain, + faCloudRain: faCloudRain, + faCloudShowersHeavy: faCloudShowersHeavy, + faCloudSun: faCloudSun, + faCloudSunRain: faCloudSunRain, + faCloudUploadAlt: faCloudUploadAlt, + faCocktail: faCocktail, + faCode: faCode, + faCodeBranch: faCodeBranch, + faCoffee: faCoffee, + faCog: faCog, + faCogs: faCogs, + faCoins: faCoins, + faColumns: faColumns, + faComment: faComment, + faCommentAlt: faCommentAlt, + faCommentDollar: faCommentDollar, + faCommentDots: faCommentDots, + faCommentMedical: faCommentMedical, + faCommentSlash: faCommentSlash, + faComments: faComments, + faCommentsDollar: faCommentsDollar, + faCompactDisc: faCompactDisc, + faCompass: faCompass, + faCompress: faCompress, + faCompressAlt: faCompressAlt, + faCompressArrowsAlt: faCompressArrowsAlt, + faConciergeBell: faConciergeBell, + faCookie: faCookie, + faCookieBite: faCookieBite, + faCopy: faCopy, + faCopyright: faCopyright, + faCouch: faCouch, + faCreditCard: faCreditCard, + faCrop: faCrop, + faCropAlt: faCropAlt, + faCross: faCross, + faCrosshairs: faCrosshairs, + faCrow: faCrow, + faCrown: faCrown, + faCrutch: faCrutch, + faCube: faCube, + faCubes: faCubes, + faCut: faCut, + faDatabase: faDatabase, + faDeaf: faDeaf, + faDemocrat: faDemocrat, + faDesktop: faDesktop, + faDharmachakra: faDharmachakra, + faDiagnoses: faDiagnoses, + faDice: faDice, + faDiceD20: faDiceD20, + faDiceD6: faDiceD6, + faDiceFive: faDiceFive, + faDiceFour: faDiceFour, + faDiceOne: faDiceOne, + faDiceSix: faDiceSix, + faDiceThree: faDiceThree, + faDiceTwo: faDiceTwo, + faDigitalTachograph: faDigitalTachograph, + faDirections: faDirections, + faDisease: faDisease, + faDivide: faDivide, + faDizzy: faDizzy, + faDna: faDna, + faDog: faDog, + faDollarSign: faDollarSign, + faDolly: faDolly, + faDollyFlatbed: faDollyFlatbed, + faDonate: faDonate, + faDoorClosed: faDoorClosed, + faDoorOpen: faDoorOpen, + faDotCircle: faDotCircle, + faDove: faDove, + faDownload: faDownload, + faDraftingCompass: faDraftingCompass, + faDragon: faDragon, + faDrawPolygon: faDrawPolygon, + faDrum: faDrum, + faDrumSteelpan: faDrumSteelpan, + faDrumstickBite: faDrumstickBite, + faDumbbell: faDumbbell, + faDumpster: faDumpster, + faDumpsterFire: faDumpsterFire, + faDungeon: faDungeon, + faEdit: faEdit, + faEgg: faEgg, + faEject: faEject, + faEllipsisH: faEllipsisH, + faEllipsisV: faEllipsisV, + faEnvelope: faEnvelope, + faEnvelopeOpen: faEnvelopeOpen, + faEnvelopeOpenText: faEnvelopeOpenText, + faEnvelopeSquare: faEnvelopeSquare, + faEquals: faEquals, + faEraser: faEraser, + faEthernet: faEthernet, + faEuroSign: faEuroSign, + faExchangeAlt: faExchangeAlt, + faExclamation: faExclamation, + faExclamationCircle: faExclamationCircle, + faExclamationTriangle: faExclamationTriangle, + faExpand: faExpand, + faExpandAlt: faExpandAlt, + faExpandArrowsAlt: faExpandArrowsAlt, + faExternalLinkAlt: faExternalLinkAlt, + faExternalLinkSquareAlt: faExternalLinkSquareAlt, + faEye: faEye, + faEyeDropper: faEyeDropper, + faEyeSlash: faEyeSlash, + faFan: faFan, + faFastBackward: faFastBackward, + faFastForward: faFastForward, + faFaucet: faFaucet, + faFax: faFax, + faFeather: faFeather, + faFeatherAlt: faFeatherAlt, + faFemale: faFemale, + faFighterJet: faFighterJet, + faFile: faFile, + faFileAlt: faFileAlt, + faFileArchive: faFileArchive, + faFileAudio: faFileAudio, + faFileCode: faFileCode, + faFileContract: faFileContract, + faFileCsv: faFileCsv, + faFileDownload: faFileDownload, + faFileExcel: faFileExcel, + faFileExport: faFileExport, + faFileImage: faFileImage, + faFileImport: faFileImport, + faFileInvoice: faFileInvoice, + faFileInvoiceDollar: faFileInvoiceDollar, + faFileMedical: faFileMedical, + faFileMedicalAlt: faFileMedicalAlt, + faFilePdf: faFilePdf, + faFilePowerpoint: faFilePowerpoint, + faFilePrescription: faFilePrescription, + faFileSignature: faFileSignature, + faFileUpload: faFileUpload, + faFileVideo: faFileVideo, + faFileWord: faFileWord, + faFill: faFill, + faFillDrip: faFillDrip, + faFilm: faFilm, + faFilter: faFilter, + faFingerprint: faFingerprint, + faFire: faFire, + faFireAlt: faFireAlt, + faFireExtinguisher: faFireExtinguisher, + faFirstAid: faFirstAid, + faFish: faFish, + faFistRaised: faFistRaised, + faFlag: faFlag, + faFlagCheckered: faFlagCheckered, + faFlagUsa: faFlagUsa, + faFlask: faFlask, + faFlushed: faFlushed, + faFolder: faFolder, + faFolderMinus: faFolderMinus, + faFolderOpen: faFolderOpen, + faFolderPlus: faFolderPlus, + faFont: faFont, + faFontAwesomeLogoFull: faFontAwesomeLogoFull, + faFootballBall: faFootballBall, + faForward: faForward, + faFrog: faFrog, + faFrown: faFrown, + faFrownOpen: faFrownOpen, + faFunnelDollar: faFunnelDollar, + faFutbol: faFutbol, + faGamepad: faGamepad, + faGasPump: faGasPump, + faGavel: faGavel, + faGem: faGem, + faGenderless: faGenderless, + faGhost: faGhost, + faGift: faGift, + faGifts: faGifts, + faGlassCheers: faGlassCheers, + faGlassMartini: faGlassMartini, + faGlassMartiniAlt: faGlassMartiniAlt, + faGlassWhiskey: faGlassWhiskey, + faGlasses: faGlasses, + faGlobe: faGlobe, + faGlobeAfrica: faGlobeAfrica, + faGlobeAmericas: faGlobeAmericas, + faGlobeAsia: faGlobeAsia, + faGlobeEurope: faGlobeEurope, + faGolfBall: faGolfBall, + faGopuram: faGopuram, + faGraduationCap: faGraduationCap, + faGreaterThan: faGreaterThan, + faGreaterThanEqual: faGreaterThanEqual, + faGrimace: faGrimace, + faGrin: faGrin, + faGrinAlt: faGrinAlt, + faGrinBeam: faGrinBeam, + faGrinBeamSweat: faGrinBeamSweat, + faGrinHearts: faGrinHearts, + faGrinSquint: faGrinSquint, + faGrinSquintTears: faGrinSquintTears, + faGrinStars: faGrinStars, + faGrinTears: faGrinTears, + faGrinTongue: faGrinTongue, + faGrinTongueSquint: faGrinTongueSquint, + faGrinTongueWink: faGrinTongueWink, + faGrinWink: faGrinWink, + faGripHorizontal: faGripHorizontal, + faGripLines: faGripLines, + faGripLinesVertical: faGripLinesVertical, + faGripVertical: faGripVertical, + faGuitar: faGuitar, + faHSquare: faHSquare, + faHamburger: faHamburger, + faHammer: faHammer, + faHamsa: faHamsa, + faHandHolding: faHandHolding, + faHandHoldingHeart: faHandHoldingHeart, + faHandHoldingMedical: faHandHoldingMedical, + faHandHoldingUsd: faHandHoldingUsd, + faHandHoldingWater: faHandHoldingWater, + faHandLizard: faHandLizard, + faHandMiddleFinger: faHandMiddleFinger, + faHandPaper: faHandPaper, + faHandPeace: faHandPeace, + faHandPointDown: faHandPointDown, + faHandPointLeft: faHandPointLeft, + faHandPointRight: faHandPointRight, + faHandPointUp: faHandPointUp, + faHandPointer: faHandPointer, + faHandRock: faHandRock, + faHandScissors: faHandScissors, + faHandSparkles: faHandSparkles, + faHandSpock: faHandSpock, + faHands: faHands, + faHandsHelping: faHandsHelping, + faHandsWash: faHandsWash, + faHandshake: faHandshake, + faHandshakeAltSlash: faHandshakeAltSlash, + faHandshakeSlash: faHandshakeSlash, + faHanukiah: faHanukiah, + faHardHat: faHardHat, + faHashtag: faHashtag, + faHatCowboy: faHatCowboy, + faHatCowboySide: faHatCowboySide, + faHatWizard: faHatWizard, + faHdd: faHdd, + faHeadSideCough: faHeadSideCough, + faHeadSideCoughSlash: faHeadSideCoughSlash, + faHeadSideMask: faHeadSideMask, + faHeadSideVirus: faHeadSideVirus, + faHeading: faHeading, + faHeadphones: faHeadphones, + faHeadphonesAlt: faHeadphonesAlt, + faHeadset: faHeadset, + faHeart: faHeart, + faHeartBroken: faHeartBroken, + faHeartbeat: faHeartbeat, + faHelicopter: faHelicopter, + faHighlighter: faHighlighter, + faHiking: faHiking, + faHippo: faHippo, + faHistory: faHistory, + faHockeyPuck: faHockeyPuck, + faHollyBerry: faHollyBerry, + faHome: faHome, + faHorse: faHorse, + faHorseHead: faHorseHead, + faHospital: faHospital, + faHospitalAlt: faHospitalAlt, + faHospitalSymbol: faHospitalSymbol, + faHospitalUser: faHospitalUser, + faHotTub: faHotTub, + faHotdog: faHotdog, + faHotel: faHotel, + faHourglass: faHourglass, + faHourglassEnd: faHourglassEnd, + faHourglassHalf: faHourglassHalf, + faHourglassStart: faHourglassStart, + faHouseDamage: faHouseDamage, + faHouseUser: faHouseUser, + faHryvnia: faHryvnia, + faICursor: faICursor, + faIceCream: faIceCream, + faIcicles: faIcicles, + faIcons: faIcons, + faIdBadge: faIdBadge, + faIdCard: faIdCard, + faIdCardAlt: faIdCardAlt, + faIgloo: faIgloo, + faImage: faImage, + faImages: faImages, + faInbox: faInbox, + faIndent: faIndent, + faIndustry: faIndustry, + faInfinity: faInfinity, + faInfo: faInfo, + faInfoCircle: faInfoCircle, + faItalic: faItalic, + faJedi: faJedi, + faJoint: faJoint, + faJournalWhills: faJournalWhills, + faKaaba: faKaaba, + faKey: faKey, + faKeyboard: faKeyboard, + faKhanda: faKhanda, + faKiss: faKiss, + faKissBeam: faKissBeam, + faKissWinkHeart: faKissWinkHeart, + faKiwiBird: faKiwiBird, + faLandmark: faLandmark, + faLanguage: faLanguage, + faLaptop: faLaptop, + faLaptopCode: faLaptopCode, + faLaptopHouse: faLaptopHouse, + faLaptopMedical: faLaptopMedical, + faLaugh: faLaugh, + faLaughBeam: faLaughBeam, + faLaughSquint: faLaughSquint, + faLaughWink: faLaughWink, + faLayerGroup: faLayerGroup, + faLeaf: faLeaf, + faLemon: faLemon, + faLessThan: faLessThan, + faLessThanEqual: faLessThanEqual, + faLevelDownAlt: faLevelDownAlt, + faLevelUpAlt: faLevelUpAlt, + faLifeRing: faLifeRing, + faLightbulb: faLightbulb, + faLink: faLink, + faLiraSign: faLiraSign, + faList: faList, + faListAlt: faListAlt, + faListOl: faListOl, + faListUl: faListUl, + faLocationArrow: faLocationArrow, + faLock: faLock, + faLockOpen: faLockOpen, + faLongArrowAltDown: faLongArrowAltDown, + faLongArrowAltLeft: faLongArrowAltLeft, + faLongArrowAltRight: faLongArrowAltRight, + faLongArrowAltUp: faLongArrowAltUp, + faLowVision: faLowVision, + faLuggageCart: faLuggageCart, + faLungs: faLungs, + faLungsVirus: faLungsVirus, + faMagic: faMagic, + faMagnet: faMagnet, + faMailBulk: faMailBulk, + faMale: faMale, + faMap: faMap, + faMapMarked: faMapMarked, + faMapMarkedAlt: faMapMarkedAlt, + faMapMarker: faMapMarker, + faMapMarkerAlt: faMapMarkerAlt, + faMapPin: faMapPin, + faMapSigns: faMapSigns, + faMarker: faMarker, + faMars: faMars, + faMarsDouble: faMarsDouble, + faMarsStroke: faMarsStroke, + faMarsStrokeH: faMarsStrokeH, + faMarsStrokeV: faMarsStrokeV, + faMask: faMask, + faMedal: faMedal, + faMedkit: faMedkit, + faMeh: faMeh, + faMehBlank: faMehBlank, + faMehRollingEyes: faMehRollingEyes, + faMemory: faMemory, + faMenorah: faMenorah, + faMercury: faMercury, + faMeteor: faMeteor, + faMicrochip: faMicrochip, + faMicrophone: faMicrophone, + faMicrophoneAlt: faMicrophoneAlt, + faMicrophoneAltSlash: faMicrophoneAltSlash, + faMicrophoneSlash: faMicrophoneSlash, + faMicroscope: faMicroscope, + faMinus: faMinus, + faMinusCircle: faMinusCircle, + faMinusSquare: faMinusSquare, + faMitten: faMitten, + faMobile: faMobile, + faMobileAlt: faMobileAlt, + faMoneyBill: faMoneyBill, + faMoneyBillAlt: faMoneyBillAlt, + faMoneyBillWave: faMoneyBillWave, + faMoneyBillWaveAlt: faMoneyBillWaveAlt, + faMoneyCheck: faMoneyCheck, + faMoneyCheckAlt: faMoneyCheckAlt, + faMonument: faMonument, + faMoon: faMoon, + faMortarPestle: faMortarPestle, + faMosque: faMosque, + faMotorcycle: faMotorcycle, + faMountain: faMountain, + faMouse: faMouse, + faMousePointer: faMousePointer, + faMugHot: faMugHot, + faMusic: faMusic, + faNetworkWired: faNetworkWired, + faNeuter: faNeuter, + faNewspaper: faNewspaper, + faNotEqual: faNotEqual, + faNotesMedical: faNotesMedical, + faObjectGroup: faObjectGroup, + faObjectUngroup: faObjectUngroup, + faOilCan: faOilCan, + faOm: faOm, + faOtter: faOtter, + faOutdent: faOutdent, + faPager: faPager, + faPaintBrush: faPaintBrush, + faPaintRoller: faPaintRoller, + faPalette: faPalette, + faPallet: faPallet, + faPaperPlane: faPaperPlane, + faPaperclip: faPaperclip, + faParachuteBox: faParachuteBox, + faParagraph: faParagraph, + faParking: faParking, + faPassport: faPassport, + faPastafarianism: faPastafarianism, + faPaste: faPaste, + faPause: faPause, + faPauseCircle: faPauseCircle, + faPaw: faPaw, + faPeace: faPeace, + faPen: faPen, + faPenAlt: faPenAlt, + faPenFancy: faPenFancy, + faPenNib: faPenNib, + faPenSquare: faPenSquare, + faPencilAlt: faPencilAlt, + faPencilRuler: faPencilRuler, + faPeopleArrows: faPeopleArrows, + faPeopleCarry: faPeopleCarry, + faPepperHot: faPepperHot, + faPercent: faPercent, + faPercentage: faPercentage, + faPersonBooth: faPersonBooth, + faPhone: faPhone, + faPhoneAlt: faPhoneAlt, + faPhoneSlash: faPhoneSlash, + faPhoneSquare: faPhoneSquare, + faPhoneSquareAlt: faPhoneSquareAlt, + faPhoneVolume: faPhoneVolume, + faPhotoVideo: faPhotoVideo, + faPiggyBank: faPiggyBank, + faPills: faPills, + faPizzaSlice: faPizzaSlice, + faPlaceOfWorship: faPlaceOfWorship, + faPlane: faPlane, + faPlaneArrival: faPlaneArrival, + faPlaneDeparture: faPlaneDeparture, + faPlaneSlash: faPlaneSlash, + faPlay: faPlay, + faPlayCircle: faPlayCircle, + faPlug: faPlug, + faPlus: faPlus, + faPlusCircle: faPlusCircle, + faPlusSquare: faPlusSquare, + faPodcast: faPodcast, + faPoll: faPoll, + faPollH: faPollH, + faPoo: faPoo, + faPooStorm: faPooStorm, + faPoop: faPoop, + faPortrait: faPortrait, + faPoundSign: faPoundSign, + faPowerOff: faPowerOff, + faPray: faPray, + faPrayingHands: faPrayingHands, + faPrescription: faPrescription, + faPrescriptionBottle: faPrescriptionBottle, + faPrescriptionBottleAlt: faPrescriptionBottleAlt, + faPrint: faPrint, + faProcedures: faProcedures, + faProjectDiagram: faProjectDiagram, + faPumpMedical: faPumpMedical, + faPumpSoap: faPumpSoap, + faPuzzlePiece: faPuzzlePiece, + faQrcode: faQrcode, + faQuestion: faQuestion, + faQuestionCircle: faQuestionCircle, + faQuidditch: faQuidditch, + faQuoteLeft: faQuoteLeft, + faQuoteRight: faQuoteRight, + faQuran: faQuran, + faRadiation: faRadiation, + faRadiationAlt: faRadiationAlt, + faRainbow: faRainbow, + faRandom: faRandom, + faReceipt: faReceipt, + faRecordVinyl: faRecordVinyl, + faRecycle: faRecycle, + faRedo: faRedo, + faRedoAlt: faRedoAlt, + faRegistered: faRegistered, + faRemoveFormat: faRemoveFormat, + faReply: faReply, + faReplyAll: faReplyAll, + faRepublican: faRepublican, + faRestroom: faRestroom, + faRetweet: faRetweet, + faRibbon: faRibbon, + faRing: faRing, + faRoad: faRoad, + faRobot: faRobot, + faRocket: faRocket, + faRoute: faRoute, + faRss: faRss, + faRssSquare: faRssSquare, + faRubleSign: faRubleSign, + faRuler: faRuler, + faRulerCombined: faRulerCombined, + faRulerHorizontal: faRulerHorizontal, + faRulerVertical: faRulerVertical, + faRunning: faRunning, + faRupeeSign: faRupeeSign, + faSadCry: faSadCry, + faSadTear: faSadTear, + faSatellite: faSatellite, + faSatelliteDish: faSatelliteDish, + faSave: faSave, + faSchool: faSchool, + faScrewdriver: faScrewdriver, + faScroll: faScroll, + faSdCard: faSdCard, + faSearch: faSearch, + faSearchDollar: faSearchDollar, + faSearchLocation: faSearchLocation, + faSearchMinus: faSearchMinus, + faSearchPlus: faSearchPlus, + faSeedling: faSeedling, + faServer: faServer, + faShapes: faShapes, + faShare: faShare, + faShareAlt: faShareAlt, + faShareAltSquare: faShareAltSquare, + faShareSquare: faShareSquare, + faShekelSign: faShekelSign, + faShieldAlt: faShieldAlt, + faShieldVirus: faShieldVirus, + faShip: faShip, + faShippingFast: faShippingFast, + faShoePrints: faShoePrints, + faShoppingBag: faShoppingBag, + faShoppingBasket: faShoppingBasket, + faShoppingCart: faShoppingCart, + faShower: faShower, + faShuttleVan: faShuttleVan, + faSign: faSign, + faSignInAlt: faSignInAlt, + faSignLanguage: faSignLanguage, + faSignOutAlt: faSignOutAlt, + faSignal: faSignal, + faSignature: faSignature, + faSimCard: faSimCard, + faSink: faSink, + faSitemap: faSitemap, + faSkating: faSkating, + faSkiing: faSkiing, + faSkiingNordic: faSkiingNordic, + faSkull: faSkull, + faSkullCrossbones: faSkullCrossbones, + faSlash: faSlash, + faSleigh: faSleigh, + faSlidersH: faSlidersH, + faSmile: faSmile, + faSmileBeam: faSmileBeam, + faSmileWink: faSmileWink, + faSmog: faSmog, + faSmoking: faSmoking, + faSmokingBan: faSmokingBan, + faSms: faSms, + faSnowboarding: faSnowboarding, + faSnowflake: faSnowflake, + faSnowman: faSnowman, + faSnowplow: faSnowplow, + faSoap: faSoap, + faSocks: faSocks, + faSolarPanel: faSolarPanel, + faSort: faSort, + faSortAlphaDown: faSortAlphaDown, + faSortAlphaDownAlt: faSortAlphaDownAlt, + faSortAlphaUp: faSortAlphaUp, + faSortAlphaUpAlt: faSortAlphaUpAlt, + faSortAmountDown: faSortAmountDown, + faSortAmountDownAlt: faSortAmountDownAlt, + faSortAmountUp: faSortAmountUp, + faSortAmountUpAlt: faSortAmountUpAlt, + faSortDown: faSortDown, + faSortNumericDown: faSortNumericDown, + faSortNumericDownAlt: faSortNumericDownAlt, + faSortNumericUp: faSortNumericUp, + faSortNumericUpAlt: faSortNumericUpAlt, + faSortUp: faSortUp, + faSpa: faSpa, + faSpaceShuttle: faSpaceShuttle, + faSpellCheck: faSpellCheck, + faSpider: faSpider, + faSpinner: faSpinner, + faSplotch: faSplotch, + faSprayCan: faSprayCan, + faSquare: faSquare, + faSquareFull: faSquareFull, + faSquareRootAlt: faSquareRootAlt, + faStamp: faStamp, + faStar: faStar, + faStarAndCrescent: faStarAndCrescent, + faStarHalf: faStarHalf, + faStarHalfAlt: faStarHalfAlt, + faStarOfDavid: faStarOfDavid, + faStarOfLife: faStarOfLife, + faStepBackward: faStepBackward, + faStepForward: faStepForward, + faStethoscope: faStethoscope, + faStickyNote: faStickyNote, + faStop: faStop, + faStopCircle: faStopCircle, + faStopwatch: faStopwatch, + faStopwatch20: faStopwatch20, + faStore: faStore, + faStoreAlt: faStoreAlt, + faStoreAltSlash: faStoreAltSlash, + faStoreSlash: faStoreSlash, + faStream: faStream, + faStreetView: faStreetView, + faStrikethrough: faStrikethrough, + faStroopwafel: faStroopwafel, + faSubscript: faSubscript, + faSubway: faSubway, + faSuitcase: faSuitcase, + faSuitcaseRolling: faSuitcaseRolling, + faSun: faSun, + faSuperscript: faSuperscript, + faSurprise: faSurprise, + faSwatchbook: faSwatchbook, + faSwimmer: faSwimmer, + faSwimmingPool: faSwimmingPool, + faSynagogue: faSynagogue, + faSync: faSync, + faSyncAlt: faSyncAlt, + faSyringe: faSyringe, + faTable: faTable, + faTableTennis: faTableTennis, + faTablet: faTablet, + faTabletAlt: faTabletAlt, + faTablets: faTablets, + faTachometerAlt: faTachometerAlt, + faTag: faTag, + faTags: faTags, + faTape: faTape, + faTasks: faTasks, + faTaxi: faTaxi, + faTeeth: faTeeth, + faTeethOpen: faTeethOpen, + faTemperatureHigh: faTemperatureHigh, + faTemperatureLow: faTemperatureLow, + faTenge: faTenge, + faTerminal: faTerminal, + faTextHeight: faTextHeight, + faTextWidth: faTextWidth, + faTh: faTh, + faThLarge: faThLarge, + faThList: faThList, + faTheaterMasks: faTheaterMasks, + faThermometer: faThermometer, + faThermometerEmpty: faThermometerEmpty, + faThermometerFull: faThermometerFull, + faThermometerHalf: faThermometerHalf, + faThermometerQuarter: faThermometerQuarter, + faThermometerThreeQuarters: faThermometerThreeQuarters, + faThumbsDown: faThumbsDown, + faThumbsUp: faThumbsUp, + faThumbtack: faThumbtack, + faTicketAlt: faTicketAlt, + faTimes: faTimes, + faTimesCircle: faTimesCircle, + faTint: faTint, + faTintSlash: faTintSlash, + faTired: faTired, + faToggleOff: faToggleOff, + faToggleOn: faToggleOn, + faToilet: faToilet, + faToiletPaper: faToiletPaper, + faToiletPaperSlash: faToiletPaperSlash, + faToolbox: faToolbox, + faTools: faTools, + faTooth: faTooth, + faTorah: faTorah, + faToriiGate: faToriiGate, + faTractor: faTractor, + faTrademark: faTrademark, + faTrafficLight: faTrafficLight, + faTrailer: faTrailer, + faTrain: faTrain, + faTram: faTram, + faTransgender: faTransgender, + faTransgenderAlt: faTransgenderAlt, + faTrash: faTrash, + faTrashAlt: faTrashAlt, + faTrashRestore: faTrashRestore, + faTrashRestoreAlt: faTrashRestoreAlt, + faTree: faTree, + faTrophy: faTrophy, + faTruck: faTruck, + faTruckLoading: faTruckLoading, + faTruckMonster: faTruckMonster, + faTruckMoving: faTruckMoving, + faTruckPickup: faTruckPickup, + faTshirt: faTshirt, + faTty: faTty, + faTv: faTv, + faUmbrella: faUmbrella, + faUmbrellaBeach: faUmbrellaBeach, + faUnderline: faUnderline, + faUndo: faUndo, + faUndoAlt: faUndoAlt, + faUniversalAccess: faUniversalAccess, + faUniversity: faUniversity, + faUnlink: faUnlink, + faUnlock: faUnlock, + faUnlockAlt: faUnlockAlt, + faUpload: faUpload, + faUser: faUser, + faUserAlt: faUserAlt, + faUserAltSlash: faUserAltSlash, + faUserAstronaut: faUserAstronaut, + faUserCheck: faUserCheck, + faUserCircle: faUserCircle, + faUserClock: faUserClock, + faUserCog: faUserCog, + faUserEdit: faUserEdit, + faUserFriends: faUserFriends, + faUserGraduate: faUserGraduate, + faUserInjured: faUserInjured, + faUserLock: faUserLock, + faUserMd: faUserMd, + faUserMinus: faUserMinus, + faUserNinja: faUserNinja, + faUserNurse: faUserNurse, + faUserPlus: faUserPlus, + faUserSecret: faUserSecret, + faUserShield: faUserShield, + faUserSlash: faUserSlash, + faUserTag: faUserTag, + faUserTie: faUserTie, + faUserTimes: faUserTimes, + faUsers: faUsers, + faUsersCog: faUsersCog, + faUsersSlash: faUsersSlash, + faUtensilSpoon: faUtensilSpoon, + faUtensils: faUtensils, + faVectorSquare: faVectorSquare, + faVenus: faVenus, + faVenusDouble: faVenusDouble, + faVenusMars: faVenusMars, + faVest: faVest, + faVestPatches: faVestPatches, + faVial: faVial, + faVials: faVials, + faVideo: faVideo, + faVideoSlash: faVideoSlash, + faVihara: faVihara, + faVirus: faVirus, + faVirusSlash: faVirusSlash, + faViruses: faViruses, + faVoicemail: faVoicemail, + faVolleyballBall: faVolleyballBall, + faVolumeDown: faVolumeDown, + faVolumeMute: faVolumeMute, + faVolumeOff: faVolumeOff, + faVolumeUp: faVolumeUp, + faVoteYea: faVoteYea, + faVrCardboard: faVrCardboard, + faWalking: faWalking, + faWallet: faWallet, + faWarehouse: faWarehouse, + faWater: faWater, + faWaveSquare: faWaveSquare, + faWeight: faWeight, + faWeightHanging: faWeightHanging, + faWheelchair: faWheelchair, + faWifi: faWifi, + faWind: faWind, + faWindowClose: faWindowClose, + faWindowMaximize: faWindowMaximize, + faWindowMinimize: faWindowMinimize, + faWindowRestore: faWindowRestore, + faWineBottle: faWineBottle, + faWineGlass: faWineGlass, + faWineGlassAlt: faWineGlassAlt, + faWonSign: faWonSign, + faWrench: faWrench, + faXRay: faXRay, + faYenSign: faYenSign, + faYinYang: faYinYang + }; + + exports.fas = _iconsCache; + exports.prefix = prefix; + exports.faAd = faAd; + exports.faAddressBook = faAddressBook; + exports.faAddressCard = faAddressCard; + exports.faAdjust = faAdjust; + exports.faAirFreshener = faAirFreshener; + exports.faAlignCenter = faAlignCenter; + exports.faAlignJustify = faAlignJustify; + exports.faAlignLeft = faAlignLeft; + exports.faAlignRight = faAlignRight; + exports.faAllergies = faAllergies; + exports.faAmbulance = faAmbulance; + exports.faAmericanSignLanguageInterpreting = faAmericanSignLanguageInterpreting; + exports.faAnchor = faAnchor; + exports.faAngleDoubleDown = faAngleDoubleDown; + exports.faAngleDoubleLeft = faAngleDoubleLeft; + exports.faAngleDoubleRight = faAngleDoubleRight; + exports.faAngleDoubleUp = faAngleDoubleUp; + exports.faAngleDown = faAngleDown; + exports.faAngleLeft = faAngleLeft; + exports.faAngleRight = faAngleRight; + exports.faAngleUp = faAngleUp; + exports.faAngry = faAngry; + exports.faAnkh = faAnkh; + exports.faAppleAlt = faAppleAlt; + exports.faArchive = faArchive; + exports.faArchway = faArchway; + exports.faArrowAltCircleDown = faArrowAltCircleDown; + exports.faArrowAltCircleLeft = faArrowAltCircleLeft; + exports.faArrowAltCircleRight = faArrowAltCircleRight; + exports.faArrowAltCircleUp = faArrowAltCircleUp; + exports.faArrowCircleDown = faArrowCircleDown; + exports.faArrowCircleLeft = faArrowCircleLeft; + exports.faArrowCircleRight = faArrowCircleRight; + exports.faArrowCircleUp = faArrowCircleUp; + exports.faArrowDown = faArrowDown; + exports.faArrowLeft = faArrowLeft; + exports.faArrowRight = faArrowRight; + exports.faArrowUp = faArrowUp; + exports.faArrowsAlt = faArrowsAlt; + exports.faArrowsAltH = faArrowsAltH; + exports.faArrowsAltV = faArrowsAltV; + exports.faAssistiveListeningSystems = faAssistiveListeningSystems; + exports.faAsterisk = faAsterisk; + exports.faAt = faAt; + exports.faAtlas = faAtlas; + exports.faAtom = faAtom; + exports.faAudioDescription = faAudioDescription; + exports.faAward = faAward; + exports.faBaby = faBaby; + exports.faBabyCarriage = faBabyCarriage; + exports.faBackspace = faBackspace; + exports.faBackward = faBackward; + exports.faBacon = faBacon; + exports.faBacteria = faBacteria; + exports.faBacterium = faBacterium; + exports.faBahai = faBahai; + exports.faBalanceScale = faBalanceScale; + exports.faBalanceScaleLeft = faBalanceScaleLeft; + exports.faBalanceScaleRight = faBalanceScaleRight; + exports.faBan = faBan; + exports.faBandAid = faBandAid; + exports.faBarcode = faBarcode; + exports.faBars = faBars; + exports.faBaseballBall = faBaseballBall; + exports.faBasketballBall = faBasketballBall; + exports.faBath = faBath; + exports.faBatteryEmpty = faBatteryEmpty; + exports.faBatteryFull = faBatteryFull; + exports.faBatteryHalf = faBatteryHalf; + exports.faBatteryQuarter = faBatteryQuarter; + exports.faBatteryThreeQuarters = faBatteryThreeQuarters; + exports.faBed = faBed; + exports.faBeer = faBeer; + exports.faBell = faBell; + exports.faBellSlash = faBellSlash; + exports.faBezierCurve = faBezierCurve; + exports.faBible = faBible; + exports.faBicycle = faBicycle; + exports.faBiking = faBiking; + exports.faBinoculars = faBinoculars; + exports.faBiohazard = faBiohazard; + exports.faBirthdayCake = faBirthdayCake; + exports.faBlender = faBlender; + exports.faBlenderPhone = faBlenderPhone; + exports.faBlind = faBlind; + exports.faBlog = faBlog; + exports.faBold = faBold; + exports.faBolt = faBolt; + exports.faBomb = faBomb; + exports.faBone = faBone; + exports.faBong = faBong; + exports.faBook = faBook; + exports.faBookDead = faBookDead; + exports.faBookMedical = faBookMedical; + exports.faBookOpen = faBookOpen; + exports.faBookReader = faBookReader; + exports.faBookmark = faBookmark; + exports.faBorderAll = faBorderAll; + exports.faBorderNone = faBorderNone; + exports.faBorderStyle = faBorderStyle; + exports.faBowlingBall = faBowlingBall; + exports.faBox = faBox; + exports.faBoxOpen = faBoxOpen; + exports.faBoxTissue = faBoxTissue; + exports.faBoxes = faBoxes; + exports.faBraille = faBraille; + exports.faBrain = faBrain; + exports.faBreadSlice = faBreadSlice; + exports.faBriefcase = faBriefcase; + exports.faBriefcaseMedical = faBriefcaseMedical; + exports.faBroadcastTower = faBroadcastTower; + exports.faBroom = faBroom; + exports.faBrush = faBrush; + exports.faBug = faBug; + exports.faBuilding = faBuilding; + exports.faBullhorn = faBullhorn; + exports.faBullseye = faBullseye; + exports.faBurn = faBurn; + exports.faBus = faBus; + exports.faBusAlt = faBusAlt; + exports.faBusinessTime = faBusinessTime; + exports.faCalculator = faCalculator; + exports.faCalendar = faCalendar; + exports.faCalendarAlt = faCalendarAlt; + exports.faCalendarCheck = faCalendarCheck; + exports.faCalendarDay = faCalendarDay; + exports.faCalendarMinus = faCalendarMinus; + exports.faCalendarPlus = faCalendarPlus; + exports.faCalendarTimes = faCalendarTimes; + exports.faCalendarWeek = faCalendarWeek; + exports.faCamera = faCamera; + exports.faCameraRetro = faCameraRetro; + exports.faCampground = faCampground; + exports.faCandyCane = faCandyCane; + exports.faCannabis = faCannabis; + exports.faCapsules = faCapsules; + exports.faCar = faCar; + exports.faCarAlt = faCarAlt; + exports.faCarBattery = faCarBattery; + exports.faCarCrash = faCarCrash; + exports.faCarSide = faCarSide; + exports.faCaravan = faCaravan; + exports.faCaretDown = faCaretDown; + exports.faCaretLeft = faCaretLeft; + exports.faCaretRight = faCaretRight; + exports.faCaretSquareDown = faCaretSquareDown; + exports.faCaretSquareLeft = faCaretSquareLeft; + exports.faCaretSquareRight = faCaretSquareRight; + exports.faCaretSquareUp = faCaretSquareUp; + exports.faCaretUp = faCaretUp; + exports.faCarrot = faCarrot; + exports.faCartArrowDown = faCartArrowDown; + exports.faCartPlus = faCartPlus; + exports.faCashRegister = faCashRegister; + exports.faCat = faCat; + exports.faCertificate = faCertificate; + exports.faChair = faChair; + exports.faChalkboard = faChalkboard; + exports.faChalkboardTeacher = faChalkboardTeacher; + exports.faChargingStation = faChargingStation; + exports.faChartArea = faChartArea; + exports.faChartBar = faChartBar; + exports.faChartLine = faChartLine; + exports.faChartPie = faChartPie; + exports.faCheck = faCheck; + exports.faCheckCircle = faCheckCircle; + exports.faCheckDouble = faCheckDouble; + exports.faCheckSquare = faCheckSquare; + exports.faCheese = faCheese; + exports.faChess = faChess; + exports.faChessBishop = faChessBishop; + exports.faChessBoard = faChessBoard; + exports.faChessKing = faChessKing; + exports.faChessKnight = faChessKnight; + exports.faChessPawn = faChessPawn; + exports.faChessQueen = faChessQueen; + exports.faChessRook = faChessRook; + exports.faChevronCircleDown = faChevronCircleDown; + exports.faChevronCircleLeft = faChevronCircleLeft; + exports.faChevronCircleRight = faChevronCircleRight; + exports.faChevronCircleUp = faChevronCircleUp; + exports.faChevronDown = faChevronDown; + exports.faChevronLeft = faChevronLeft; + exports.faChevronRight = faChevronRight; + exports.faChevronUp = faChevronUp; + exports.faChild = faChild; + exports.faChurch = faChurch; + exports.faCircle = faCircle; + exports.faCircleNotch = faCircleNotch; + exports.faCity = faCity; + exports.faClinicMedical = faClinicMedical; + exports.faClipboard = faClipboard; + exports.faClipboardCheck = faClipboardCheck; + exports.faClipboardList = faClipboardList; + exports.faClock = faClock; + exports.faClone = faClone; + exports.faClosedCaptioning = faClosedCaptioning; + exports.faCloud = faCloud; + exports.faCloudDownloadAlt = faCloudDownloadAlt; + exports.faCloudMeatball = faCloudMeatball; + exports.faCloudMoon = faCloudMoon; + exports.faCloudMoonRain = faCloudMoonRain; + exports.faCloudRain = faCloudRain; + exports.faCloudShowersHeavy = faCloudShowersHeavy; + exports.faCloudSun = faCloudSun; + exports.faCloudSunRain = faCloudSunRain; + exports.faCloudUploadAlt = faCloudUploadAlt; + exports.faCocktail = faCocktail; + exports.faCode = faCode; + exports.faCodeBranch = faCodeBranch; + exports.faCoffee = faCoffee; + exports.faCog = faCog; + exports.faCogs = faCogs; + exports.faCoins = faCoins; + exports.faColumns = faColumns; + exports.faComment = faComment; + exports.faCommentAlt = faCommentAlt; + exports.faCommentDollar = faCommentDollar; + exports.faCommentDots = faCommentDots; + exports.faCommentMedical = faCommentMedical; + exports.faCommentSlash = faCommentSlash; + exports.faComments = faComments; + exports.faCommentsDollar = faCommentsDollar; + exports.faCompactDisc = faCompactDisc; + exports.faCompass = faCompass; + exports.faCompress = faCompress; + exports.faCompressAlt = faCompressAlt; + exports.faCompressArrowsAlt = faCompressArrowsAlt; + exports.faConciergeBell = faConciergeBell; + exports.faCookie = faCookie; + exports.faCookieBite = faCookieBite; + exports.faCopy = faCopy; + exports.faCopyright = faCopyright; + exports.faCouch = faCouch; + exports.faCreditCard = faCreditCard; + exports.faCrop = faCrop; + exports.faCropAlt = faCropAlt; + exports.faCross = faCross; + exports.faCrosshairs = faCrosshairs; + exports.faCrow = faCrow; + exports.faCrown = faCrown; + exports.faCrutch = faCrutch; + exports.faCube = faCube; + exports.faCubes = faCubes; + exports.faCut = faCut; + exports.faDatabase = faDatabase; + exports.faDeaf = faDeaf; + exports.faDemocrat = faDemocrat; + exports.faDesktop = faDesktop; + exports.faDharmachakra = faDharmachakra; + exports.faDiagnoses = faDiagnoses; + exports.faDice = faDice; + exports.faDiceD20 = faDiceD20; + exports.faDiceD6 = faDiceD6; + exports.faDiceFive = faDiceFive; + exports.faDiceFour = faDiceFour; + exports.faDiceOne = faDiceOne; + exports.faDiceSix = faDiceSix; + exports.faDiceThree = faDiceThree; + exports.faDiceTwo = faDiceTwo; + exports.faDigitalTachograph = faDigitalTachograph; + exports.faDirections = faDirections; + exports.faDisease = faDisease; + exports.faDivide = faDivide; + exports.faDizzy = faDizzy; + exports.faDna = faDna; + exports.faDog = faDog; + exports.faDollarSign = faDollarSign; + exports.faDolly = faDolly; + exports.faDollyFlatbed = faDollyFlatbed; + exports.faDonate = faDonate; + exports.faDoorClosed = faDoorClosed; + exports.faDoorOpen = faDoorOpen; + exports.faDotCircle = faDotCircle; + exports.faDove = faDove; + exports.faDownload = faDownload; + exports.faDraftingCompass = faDraftingCompass; + exports.faDragon = faDragon; + exports.faDrawPolygon = faDrawPolygon; + exports.faDrum = faDrum; + exports.faDrumSteelpan = faDrumSteelpan; + exports.faDrumstickBite = faDrumstickBite; + exports.faDumbbell = faDumbbell; + exports.faDumpster = faDumpster; + exports.faDumpsterFire = faDumpsterFire; + exports.faDungeon = faDungeon; + exports.faEdit = faEdit; + exports.faEgg = faEgg; + exports.faEject = faEject; + exports.faEllipsisH = faEllipsisH; + exports.faEllipsisV = faEllipsisV; + exports.faEnvelope = faEnvelope; + exports.faEnvelopeOpen = faEnvelopeOpen; + exports.faEnvelopeOpenText = faEnvelopeOpenText; + exports.faEnvelopeSquare = faEnvelopeSquare; + exports.faEquals = faEquals; + exports.faEraser = faEraser; + exports.faEthernet = faEthernet; + exports.faEuroSign = faEuroSign; + exports.faExchangeAlt = faExchangeAlt; + exports.faExclamation = faExclamation; + exports.faExclamationCircle = faExclamationCircle; + exports.faExclamationTriangle = faExclamationTriangle; + exports.faExpand = faExpand; + exports.faExpandAlt = faExpandAlt; + exports.faExpandArrowsAlt = faExpandArrowsAlt; + exports.faExternalLinkAlt = faExternalLinkAlt; + exports.faExternalLinkSquareAlt = faExternalLinkSquareAlt; + exports.faEye = faEye; + exports.faEyeDropper = faEyeDropper; + exports.faEyeSlash = faEyeSlash; + exports.faFan = faFan; + exports.faFastBackward = faFastBackward; + exports.faFastForward = faFastForward; + exports.faFaucet = faFaucet; + exports.faFax = faFax; + exports.faFeather = faFeather; + exports.faFeatherAlt = faFeatherAlt; + exports.faFemale = faFemale; + exports.faFighterJet = faFighterJet; + exports.faFile = faFile; + exports.faFileAlt = faFileAlt; + exports.faFileArchive = faFileArchive; + exports.faFileAudio = faFileAudio; + exports.faFileCode = faFileCode; + exports.faFileContract = faFileContract; + exports.faFileCsv = faFileCsv; + exports.faFileDownload = faFileDownload; + exports.faFileExcel = faFileExcel; + exports.faFileExport = faFileExport; + exports.faFileImage = faFileImage; + exports.faFileImport = faFileImport; + exports.faFileInvoice = faFileInvoice; + exports.faFileInvoiceDollar = faFileInvoiceDollar; + exports.faFileMedical = faFileMedical; + exports.faFileMedicalAlt = faFileMedicalAlt; + exports.faFilePdf = faFilePdf; + exports.faFilePowerpoint = faFilePowerpoint; + exports.faFilePrescription = faFilePrescription; + exports.faFileSignature = faFileSignature; + exports.faFileUpload = faFileUpload; + exports.faFileVideo = faFileVideo; + exports.faFileWord = faFileWord; + exports.faFill = faFill; + exports.faFillDrip = faFillDrip; + exports.faFilm = faFilm; + exports.faFilter = faFilter; + exports.faFingerprint = faFingerprint; + exports.faFire = faFire; + exports.faFireAlt = faFireAlt; + exports.faFireExtinguisher = faFireExtinguisher; + exports.faFirstAid = faFirstAid; + exports.faFish = faFish; + exports.faFistRaised = faFistRaised; + exports.faFlag = faFlag; + exports.faFlagCheckered = faFlagCheckered; + exports.faFlagUsa = faFlagUsa; + exports.faFlask = faFlask; + exports.faFlushed = faFlushed; + exports.faFolder = faFolder; + exports.faFolderMinus = faFolderMinus; + exports.faFolderOpen = faFolderOpen; + exports.faFolderPlus = faFolderPlus; + exports.faFont = faFont; + exports.faFontAwesomeLogoFull = faFontAwesomeLogoFull; + exports.faFootballBall = faFootballBall; + exports.faForward = faForward; + exports.faFrog = faFrog; + exports.faFrown = faFrown; + exports.faFrownOpen = faFrownOpen; + exports.faFunnelDollar = faFunnelDollar; + exports.faFutbol = faFutbol; + exports.faGamepad = faGamepad; + exports.faGasPump = faGasPump; + exports.faGavel = faGavel; + exports.faGem = faGem; + exports.faGenderless = faGenderless; + exports.faGhost = faGhost; + exports.faGift = faGift; + exports.faGifts = faGifts; + exports.faGlassCheers = faGlassCheers; + exports.faGlassMartini = faGlassMartini; + exports.faGlassMartiniAlt = faGlassMartiniAlt; + exports.faGlassWhiskey = faGlassWhiskey; + exports.faGlasses = faGlasses; + exports.faGlobe = faGlobe; + exports.faGlobeAfrica = faGlobeAfrica; + exports.faGlobeAmericas = faGlobeAmericas; + exports.faGlobeAsia = faGlobeAsia; + exports.faGlobeEurope = faGlobeEurope; + exports.faGolfBall = faGolfBall; + exports.faGopuram = faGopuram; + exports.faGraduationCap = faGraduationCap; + exports.faGreaterThan = faGreaterThan; + exports.faGreaterThanEqual = faGreaterThanEqual; + exports.faGrimace = faGrimace; + exports.faGrin = faGrin; + exports.faGrinAlt = faGrinAlt; + exports.faGrinBeam = faGrinBeam; + exports.faGrinBeamSweat = faGrinBeamSweat; + exports.faGrinHearts = faGrinHearts; + exports.faGrinSquint = faGrinSquint; + exports.faGrinSquintTears = faGrinSquintTears; + exports.faGrinStars = faGrinStars; + exports.faGrinTears = faGrinTears; + exports.faGrinTongue = faGrinTongue; + exports.faGrinTongueSquint = faGrinTongueSquint; + exports.faGrinTongueWink = faGrinTongueWink; + exports.faGrinWink = faGrinWink; + exports.faGripHorizontal = faGripHorizontal; + exports.faGripLines = faGripLines; + exports.faGripLinesVertical = faGripLinesVertical; + exports.faGripVertical = faGripVertical; + exports.faGuitar = faGuitar; + exports.faHSquare = faHSquare; + exports.faHamburger = faHamburger; + exports.faHammer = faHammer; + exports.faHamsa = faHamsa; + exports.faHandHolding = faHandHolding; + exports.faHandHoldingHeart = faHandHoldingHeart; + exports.faHandHoldingMedical = faHandHoldingMedical; + exports.faHandHoldingUsd = faHandHoldingUsd; + exports.faHandHoldingWater = faHandHoldingWater; + exports.faHandLizard = faHandLizard; + exports.faHandMiddleFinger = faHandMiddleFinger; + exports.faHandPaper = faHandPaper; + exports.faHandPeace = faHandPeace; + exports.faHandPointDown = faHandPointDown; + exports.faHandPointLeft = faHandPointLeft; + exports.faHandPointRight = faHandPointRight; + exports.faHandPointUp = faHandPointUp; + exports.faHandPointer = faHandPointer; + exports.faHandRock = faHandRock; + exports.faHandScissors = faHandScissors; + exports.faHandSparkles = faHandSparkles; + exports.faHandSpock = faHandSpock; + exports.faHands = faHands; + exports.faHandsHelping = faHandsHelping; + exports.faHandsWash = faHandsWash; + exports.faHandshake = faHandshake; + exports.faHandshakeAltSlash = faHandshakeAltSlash; + exports.faHandshakeSlash = faHandshakeSlash; + exports.faHanukiah = faHanukiah; + exports.faHardHat = faHardHat; + exports.faHashtag = faHashtag; + exports.faHatCowboy = faHatCowboy; + exports.faHatCowboySide = faHatCowboySide; + exports.faHatWizard = faHatWizard; + exports.faHdd = faHdd; + exports.faHeadSideCough = faHeadSideCough; + exports.faHeadSideCoughSlash = faHeadSideCoughSlash; + exports.faHeadSideMask = faHeadSideMask; + exports.faHeadSideVirus = faHeadSideVirus; + exports.faHeading = faHeading; + exports.faHeadphones = faHeadphones; + exports.faHeadphonesAlt = faHeadphonesAlt; + exports.faHeadset = faHeadset; + exports.faHeart = faHeart; + exports.faHeartBroken = faHeartBroken; + exports.faHeartbeat = faHeartbeat; + exports.faHelicopter = faHelicopter; + exports.faHighlighter = faHighlighter; + exports.faHiking = faHiking; + exports.faHippo = faHippo; + exports.faHistory = faHistory; + exports.faHockeyPuck = faHockeyPuck; + exports.faHollyBerry = faHollyBerry; + exports.faHome = faHome; + exports.faHorse = faHorse; + exports.faHorseHead = faHorseHead; + exports.faHospital = faHospital; + exports.faHospitalAlt = faHospitalAlt; + exports.faHospitalSymbol = faHospitalSymbol; + exports.faHospitalUser = faHospitalUser; + exports.faHotTub = faHotTub; + exports.faHotdog = faHotdog; + exports.faHotel = faHotel; + exports.faHourglass = faHourglass; + exports.faHourglassEnd = faHourglassEnd; + exports.faHourglassHalf = faHourglassHalf; + exports.faHourglassStart = faHourglassStart; + exports.faHouseDamage = faHouseDamage; + exports.faHouseUser = faHouseUser; + exports.faHryvnia = faHryvnia; + exports.faICursor = faICursor; + exports.faIceCream = faIceCream; + exports.faIcicles = faIcicles; + exports.faIcons = faIcons; + exports.faIdBadge = faIdBadge; + exports.faIdCard = faIdCard; + exports.faIdCardAlt = faIdCardAlt; + exports.faIgloo = faIgloo; + exports.faImage = faImage; + exports.faImages = faImages; + exports.faInbox = faInbox; + exports.faIndent = faIndent; + exports.faIndustry = faIndustry; + exports.faInfinity = faInfinity; + exports.faInfo = faInfo; + exports.faInfoCircle = faInfoCircle; + exports.faItalic = faItalic; + exports.faJedi = faJedi; + exports.faJoint = faJoint; + exports.faJournalWhills = faJournalWhills; + exports.faKaaba = faKaaba; + exports.faKey = faKey; + exports.faKeyboard = faKeyboard; + exports.faKhanda = faKhanda; + exports.faKiss = faKiss; + exports.faKissBeam = faKissBeam; + exports.faKissWinkHeart = faKissWinkHeart; + exports.faKiwiBird = faKiwiBird; + exports.faLandmark = faLandmark; + exports.faLanguage = faLanguage; + exports.faLaptop = faLaptop; + exports.faLaptopCode = faLaptopCode; + exports.faLaptopHouse = faLaptopHouse; + exports.faLaptopMedical = faLaptopMedical; + exports.faLaugh = faLaugh; + exports.faLaughBeam = faLaughBeam; + exports.faLaughSquint = faLaughSquint; + exports.faLaughWink = faLaughWink; + exports.faLayerGroup = faLayerGroup; + exports.faLeaf = faLeaf; + exports.faLemon = faLemon; + exports.faLessThan = faLessThan; + exports.faLessThanEqual = faLessThanEqual; + exports.faLevelDownAlt = faLevelDownAlt; + exports.faLevelUpAlt = faLevelUpAlt; + exports.faLifeRing = faLifeRing; + exports.faLightbulb = faLightbulb; + exports.faLink = faLink; + exports.faLiraSign = faLiraSign; + exports.faList = faList; + exports.faListAlt = faListAlt; + exports.faListOl = faListOl; + exports.faListUl = faListUl; + exports.faLocationArrow = faLocationArrow; + exports.faLock = faLock; + exports.faLockOpen = faLockOpen; + exports.faLongArrowAltDown = faLongArrowAltDown; + exports.faLongArrowAltLeft = faLongArrowAltLeft; + exports.faLongArrowAltRight = faLongArrowAltRight; + exports.faLongArrowAltUp = faLongArrowAltUp; + exports.faLowVision = faLowVision; + exports.faLuggageCart = faLuggageCart; + exports.faLungs = faLungs; + exports.faLungsVirus = faLungsVirus; + exports.faMagic = faMagic; + exports.faMagnet = faMagnet; + exports.faMailBulk = faMailBulk; + exports.faMale = faMale; + exports.faMap = faMap; + exports.faMapMarked = faMapMarked; + exports.faMapMarkedAlt = faMapMarkedAlt; + exports.faMapMarker = faMapMarker; + exports.faMapMarkerAlt = faMapMarkerAlt; + exports.faMapPin = faMapPin; + exports.faMapSigns = faMapSigns; + exports.faMarker = faMarker; + exports.faMars = faMars; + exports.faMarsDouble = faMarsDouble; + exports.faMarsStroke = faMarsStroke; + exports.faMarsStrokeH = faMarsStrokeH; + exports.faMarsStrokeV = faMarsStrokeV; + exports.faMask = faMask; + exports.faMedal = faMedal; + exports.faMedkit = faMedkit; + exports.faMeh = faMeh; + exports.faMehBlank = faMehBlank; + exports.faMehRollingEyes = faMehRollingEyes; + exports.faMemory = faMemory; + exports.faMenorah = faMenorah; + exports.faMercury = faMercury; + exports.faMeteor = faMeteor; + exports.faMicrochip = faMicrochip; + exports.faMicrophone = faMicrophone; + exports.faMicrophoneAlt = faMicrophoneAlt; + exports.faMicrophoneAltSlash = faMicrophoneAltSlash; + exports.faMicrophoneSlash = faMicrophoneSlash; + exports.faMicroscope = faMicroscope; + exports.faMinus = faMinus; + exports.faMinusCircle = faMinusCircle; + exports.faMinusSquare = faMinusSquare; + exports.faMitten = faMitten; + exports.faMobile = faMobile; + exports.faMobileAlt = faMobileAlt; + exports.faMoneyBill = faMoneyBill; + exports.faMoneyBillAlt = faMoneyBillAlt; + exports.faMoneyBillWave = faMoneyBillWave; + exports.faMoneyBillWaveAlt = faMoneyBillWaveAlt; + exports.faMoneyCheck = faMoneyCheck; + exports.faMoneyCheckAlt = faMoneyCheckAlt; + exports.faMonument = faMonument; + exports.faMoon = faMoon; + exports.faMortarPestle = faMortarPestle; + exports.faMosque = faMosque; + exports.faMotorcycle = faMotorcycle; + exports.faMountain = faMountain; + exports.faMouse = faMouse; + exports.faMousePointer = faMousePointer; + exports.faMugHot = faMugHot; + exports.faMusic = faMusic; + exports.faNetworkWired = faNetworkWired; + exports.faNeuter = faNeuter; + exports.faNewspaper = faNewspaper; + exports.faNotEqual = faNotEqual; + exports.faNotesMedical = faNotesMedical; + exports.faObjectGroup = faObjectGroup; + exports.faObjectUngroup = faObjectUngroup; + exports.faOilCan = faOilCan; + exports.faOm = faOm; + exports.faOtter = faOtter; + exports.faOutdent = faOutdent; + exports.faPager = faPager; + exports.faPaintBrush = faPaintBrush; + exports.faPaintRoller = faPaintRoller; + exports.faPalette = faPalette; + exports.faPallet = faPallet; + exports.faPaperPlane = faPaperPlane; + exports.faPaperclip = faPaperclip; + exports.faParachuteBox = faParachuteBox; + exports.faParagraph = faParagraph; + exports.faParking = faParking; + exports.faPassport = faPassport; + exports.faPastafarianism = faPastafarianism; + exports.faPaste = faPaste; + exports.faPause = faPause; + exports.faPauseCircle = faPauseCircle; + exports.faPaw = faPaw; + exports.faPeace = faPeace; + exports.faPen = faPen; + exports.faPenAlt = faPenAlt; + exports.faPenFancy = faPenFancy; + exports.faPenNib = faPenNib; + exports.faPenSquare = faPenSquare; + exports.faPencilAlt = faPencilAlt; + exports.faPencilRuler = faPencilRuler; + exports.faPeopleArrows = faPeopleArrows; + exports.faPeopleCarry = faPeopleCarry; + exports.faPepperHot = faPepperHot; + exports.faPercent = faPercent; + exports.faPercentage = faPercentage; + exports.faPersonBooth = faPersonBooth; + exports.faPhone = faPhone; + exports.faPhoneAlt = faPhoneAlt; + exports.faPhoneSlash = faPhoneSlash; + exports.faPhoneSquare = faPhoneSquare; + exports.faPhoneSquareAlt = faPhoneSquareAlt; + exports.faPhoneVolume = faPhoneVolume; + exports.faPhotoVideo = faPhotoVideo; + exports.faPiggyBank = faPiggyBank; + exports.faPills = faPills; + exports.faPizzaSlice = faPizzaSlice; + exports.faPlaceOfWorship = faPlaceOfWorship; + exports.faPlane = faPlane; + exports.faPlaneArrival = faPlaneArrival; + exports.faPlaneDeparture = faPlaneDeparture; + exports.faPlaneSlash = faPlaneSlash; + exports.faPlay = faPlay; + exports.faPlayCircle = faPlayCircle; + exports.faPlug = faPlug; + exports.faPlus = faPlus; + exports.faPlusCircle = faPlusCircle; + exports.faPlusSquare = faPlusSquare; + exports.faPodcast = faPodcast; + exports.faPoll = faPoll; + exports.faPollH = faPollH; + exports.faPoo = faPoo; + exports.faPooStorm = faPooStorm; + exports.faPoop = faPoop; + exports.faPortrait = faPortrait; + exports.faPoundSign = faPoundSign; + exports.faPowerOff = faPowerOff; + exports.faPray = faPray; + exports.faPrayingHands = faPrayingHands; + exports.faPrescription = faPrescription; + exports.faPrescriptionBottle = faPrescriptionBottle; + exports.faPrescriptionBottleAlt = faPrescriptionBottleAlt; + exports.faPrint = faPrint; + exports.faProcedures = faProcedures; + exports.faProjectDiagram = faProjectDiagram; + exports.faPumpMedical = faPumpMedical; + exports.faPumpSoap = faPumpSoap; + exports.faPuzzlePiece = faPuzzlePiece; + exports.faQrcode = faQrcode; + exports.faQuestion = faQuestion; + exports.faQuestionCircle = faQuestionCircle; + exports.faQuidditch = faQuidditch; + exports.faQuoteLeft = faQuoteLeft; + exports.faQuoteRight = faQuoteRight; + exports.faQuran = faQuran; + exports.faRadiation = faRadiation; + exports.faRadiationAlt = faRadiationAlt; + exports.faRainbow = faRainbow; + exports.faRandom = faRandom; + exports.faReceipt = faReceipt; + exports.faRecordVinyl = faRecordVinyl; + exports.faRecycle = faRecycle; + exports.faRedo = faRedo; + exports.faRedoAlt = faRedoAlt; + exports.faRegistered = faRegistered; + exports.faRemoveFormat = faRemoveFormat; + exports.faReply = faReply; + exports.faReplyAll = faReplyAll; + exports.faRepublican = faRepublican; + exports.faRestroom = faRestroom; + exports.faRetweet = faRetweet; + exports.faRibbon = faRibbon; + exports.faRing = faRing; + exports.faRoad = faRoad; + exports.faRobot = faRobot; + exports.faRocket = faRocket; + exports.faRoute = faRoute; + exports.faRss = faRss; + exports.faRssSquare = faRssSquare; + exports.faRubleSign = faRubleSign; + exports.faRuler = faRuler; + exports.faRulerCombined = faRulerCombined; + exports.faRulerHorizontal = faRulerHorizontal; + exports.faRulerVertical = faRulerVertical; + exports.faRunning = faRunning; + exports.faRupeeSign = faRupeeSign; + exports.faSadCry = faSadCry; + exports.faSadTear = faSadTear; + exports.faSatellite = faSatellite; + exports.faSatelliteDish = faSatelliteDish; + exports.faSave = faSave; + exports.faSchool = faSchool; + exports.faScrewdriver = faScrewdriver; + exports.faScroll = faScroll; + exports.faSdCard = faSdCard; + exports.faSearch = faSearch; + exports.faSearchDollar = faSearchDollar; + exports.faSearchLocation = faSearchLocation; + exports.faSearchMinus = faSearchMinus; + exports.faSearchPlus = faSearchPlus; + exports.faSeedling = faSeedling; + exports.faServer = faServer; + exports.faShapes = faShapes; + exports.faShare = faShare; + exports.faShareAlt = faShareAlt; + exports.faShareAltSquare = faShareAltSquare; + exports.faShareSquare = faShareSquare; + exports.faShekelSign = faShekelSign; + exports.faShieldAlt = faShieldAlt; + exports.faShieldVirus = faShieldVirus; + exports.faShip = faShip; + exports.faShippingFast = faShippingFast; + exports.faShoePrints = faShoePrints; + exports.faShoppingBag = faShoppingBag; + exports.faShoppingBasket = faShoppingBasket; + exports.faShoppingCart = faShoppingCart; + exports.faShower = faShower; + exports.faShuttleVan = faShuttleVan; + exports.faSign = faSign; + exports.faSignInAlt = faSignInAlt; + exports.faSignLanguage = faSignLanguage; + exports.faSignOutAlt = faSignOutAlt; + exports.faSignal = faSignal; + exports.faSignature = faSignature; + exports.faSimCard = faSimCard; + exports.faSink = faSink; + exports.faSitemap = faSitemap; + exports.faSkating = faSkating; + exports.faSkiing = faSkiing; + exports.faSkiingNordic = faSkiingNordic; + exports.faSkull = faSkull; + exports.faSkullCrossbones = faSkullCrossbones; + exports.faSlash = faSlash; + exports.faSleigh = faSleigh; + exports.faSlidersH = faSlidersH; + exports.faSmile = faSmile; + exports.faSmileBeam = faSmileBeam; + exports.faSmileWink = faSmileWink; + exports.faSmog = faSmog; + exports.faSmoking = faSmoking; + exports.faSmokingBan = faSmokingBan; + exports.faSms = faSms; + exports.faSnowboarding = faSnowboarding; + exports.faSnowflake = faSnowflake; + exports.faSnowman = faSnowman; + exports.faSnowplow = faSnowplow; + exports.faSoap = faSoap; + exports.faSocks = faSocks; + exports.faSolarPanel = faSolarPanel; + exports.faSort = faSort; + exports.faSortAlphaDown = faSortAlphaDown; + exports.faSortAlphaDownAlt = faSortAlphaDownAlt; + exports.faSortAlphaUp = faSortAlphaUp; + exports.faSortAlphaUpAlt = faSortAlphaUpAlt; + exports.faSortAmountDown = faSortAmountDown; + exports.faSortAmountDownAlt = faSortAmountDownAlt; + exports.faSortAmountUp = faSortAmountUp; + exports.faSortAmountUpAlt = faSortAmountUpAlt; + exports.faSortDown = faSortDown; + exports.faSortNumericDown = faSortNumericDown; + exports.faSortNumericDownAlt = faSortNumericDownAlt; + exports.faSortNumericUp = faSortNumericUp; + exports.faSortNumericUpAlt = faSortNumericUpAlt; + exports.faSortUp = faSortUp; + exports.faSpa = faSpa; + exports.faSpaceShuttle = faSpaceShuttle; + exports.faSpellCheck = faSpellCheck; + exports.faSpider = faSpider; + exports.faSpinner = faSpinner; + exports.faSplotch = faSplotch; + exports.faSprayCan = faSprayCan; + exports.faSquare = faSquare; + exports.faSquareFull = faSquareFull; + exports.faSquareRootAlt = faSquareRootAlt; + exports.faStamp = faStamp; + exports.faStar = faStar; + exports.faStarAndCrescent = faStarAndCrescent; + exports.faStarHalf = faStarHalf; + exports.faStarHalfAlt = faStarHalfAlt; + exports.faStarOfDavid = faStarOfDavid; + exports.faStarOfLife = faStarOfLife; + exports.faStepBackward = faStepBackward; + exports.faStepForward = faStepForward; + exports.faStethoscope = faStethoscope; + exports.faStickyNote = faStickyNote; + exports.faStop = faStop; + exports.faStopCircle = faStopCircle; + exports.faStopwatch = faStopwatch; + exports.faStopwatch20 = faStopwatch20; + exports.faStore = faStore; + exports.faStoreAlt = faStoreAlt; + exports.faStoreAltSlash = faStoreAltSlash; + exports.faStoreSlash = faStoreSlash; + exports.faStream = faStream; + exports.faStreetView = faStreetView; + exports.faStrikethrough = faStrikethrough; + exports.faStroopwafel = faStroopwafel; + exports.faSubscript = faSubscript; + exports.faSubway = faSubway; + exports.faSuitcase = faSuitcase; + exports.faSuitcaseRolling = faSuitcaseRolling; + exports.faSun = faSun; + exports.faSuperscript = faSuperscript; + exports.faSurprise = faSurprise; + exports.faSwatchbook = faSwatchbook; + exports.faSwimmer = faSwimmer; + exports.faSwimmingPool = faSwimmingPool; + exports.faSynagogue = faSynagogue; + exports.faSync = faSync; + exports.faSyncAlt = faSyncAlt; + exports.faSyringe = faSyringe; + exports.faTable = faTable; + exports.faTableTennis = faTableTennis; + exports.faTablet = faTablet; + exports.faTabletAlt = faTabletAlt; + exports.faTablets = faTablets; + exports.faTachometerAlt = faTachometerAlt; + exports.faTag = faTag; + exports.faTags = faTags; + exports.faTape = faTape; + exports.faTasks = faTasks; + exports.faTaxi = faTaxi; + exports.faTeeth = faTeeth; + exports.faTeethOpen = faTeethOpen; + exports.faTemperatureHigh = faTemperatureHigh; + exports.faTemperatureLow = faTemperatureLow; + exports.faTenge = faTenge; + exports.faTerminal = faTerminal; + exports.faTextHeight = faTextHeight; + exports.faTextWidth = faTextWidth; + exports.faTh = faTh; + exports.faThLarge = faThLarge; + exports.faThList = faThList; + exports.faTheaterMasks = faTheaterMasks; + exports.faThermometer = faThermometer; + exports.faThermometerEmpty = faThermometerEmpty; + exports.faThermometerFull = faThermometerFull; + exports.faThermometerHalf = faThermometerHalf; + exports.faThermometerQuarter = faThermometerQuarter; + exports.faThermometerThreeQuarters = faThermometerThreeQuarters; + exports.faThumbsDown = faThumbsDown; + exports.faThumbsUp = faThumbsUp; + exports.faThumbtack = faThumbtack; + exports.faTicketAlt = faTicketAlt; + exports.faTimes = faTimes; + exports.faTimesCircle = faTimesCircle; + exports.faTint = faTint; + exports.faTintSlash = faTintSlash; + exports.faTired = faTired; + exports.faToggleOff = faToggleOff; + exports.faToggleOn = faToggleOn; + exports.faToilet = faToilet; + exports.faToiletPaper = faToiletPaper; + exports.faToiletPaperSlash = faToiletPaperSlash; + exports.faToolbox = faToolbox; + exports.faTools = faTools; + exports.faTooth = faTooth; + exports.faTorah = faTorah; + exports.faToriiGate = faToriiGate; + exports.faTractor = faTractor; + exports.faTrademark = faTrademark; + exports.faTrafficLight = faTrafficLight; + exports.faTrailer = faTrailer; + exports.faTrain = faTrain; + exports.faTram = faTram; + exports.faTransgender = faTransgender; + exports.faTransgenderAlt = faTransgenderAlt; + exports.faTrash = faTrash; + exports.faTrashAlt = faTrashAlt; + exports.faTrashRestore = faTrashRestore; + exports.faTrashRestoreAlt = faTrashRestoreAlt; + exports.faTree = faTree; + exports.faTrophy = faTrophy; + exports.faTruck = faTruck; + exports.faTruckLoading = faTruckLoading; + exports.faTruckMonster = faTruckMonster; + exports.faTruckMoving = faTruckMoving; + exports.faTruckPickup = faTruckPickup; + exports.faTshirt = faTshirt; + exports.faTty = faTty; + exports.faTv = faTv; + exports.faUmbrella = faUmbrella; + exports.faUmbrellaBeach = faUmbrellaBeach; + exports.faUnderline = faUnderline; + exports.faUndo = faUndo; + exports.faUndoAlt = faUndoAlt; + exports.faUniversalAccess = faUniversalAccess; + exports.faUniversity = faUniversity; + exports.faUnlink = faUnlink; + exports.faUnlock = faUnlock; + exports.faUnlockAlt = faUnlockAlt; + exports.faUpload = faUpload; + exports.faUser = faUser; + exports.faUserAlt = faUserAlt; + exports.faUserAltSlash = faUserAltSlash; + exports.faUserAstronaut = faUserAstronaut; + exports.faUserCheck = faUserCheck; + exports.faUserCircle = faUserCircle; + exports.faUserClock = faUserClock; + exports.faUserCog = faUserCog; + exports.faUserEdit = faUserEdit; + exports.faUserFriends = faUserFriends; + exports.faUserGraduate = faUserGraduate; + exports.faUserInjured = faUserInjured; + exports.faUserLock = faUserLock; + exports.faUserMd = faUserMd; + exports.faUserMinus = faUserMinus; + exports.faUserNinja = faUserNinja; + exports.faUserNurse = faUserNurse; + exports.faUserPlus = faUserPlus; + exports.faUserSecret = faUserSecret; + exports.faUserShield = faUserShield; + exports.faUserSlash = faUserSlash; + exports.faUserTag = faUserTag; + exports.faUserTie = faUserTie; + exports.faUserTimes = faUserTimes; + exports.faUsers = faUsers; + exports.faUsersCog = faUsersCog; + exports.faUsersSlash = faUsersSlash; + exports.faUtensilSpoon = faUtensilSpoon; + exports.faUtensils = faUtensils; + exports.faVectorSquare = faVectorSquare; + exports.faVenus = faVenus; + exports.faVenusDouble = faVenusDouble; + exports.faVenusMars = faVenusMars; + exports.faVest = faVest; + exports.faVestPatches = faVestPatches; + exports.faVial = faVial; + exports.faVials = faVials; + exports.faVideo = faVideo; + exports.faVideoSlash = faVideoSlash; + exports.faVihara = faVihara; + exports.faVirus = faVirus; + exports.faVirusSlash = faVirusSlash; + exports.faViruses = faViruses; + exports.faVoicemail = faVoicemail; + exports.faVolleyballBall = faVolleyballBall; + exports.faVolumeDown = faVolumeDown; + exports.faVolumeMute = faVolumeMute; + exports.faVolumeOff = faVolumeOff; + exports.faVolumeUp = faVolumeUp; + exports.faVoteYea = faVoteYea; + exports.faVrCardboard = faVrCardboard; + exports.faWalking = faWalking; + exports.faWallet = faWallet; + exports.faWarehouse = faWarehouse; + exports.faWater = faWater; + exports.faWaveSquare = faWaveSquare; + exports.faWeight = faWeight; + exports.faWeightHanging = faWeightHanging; + exports.faWheelchair = faWheelchair; + exports.faWifi = faWifi; + exports.faWind = faWind; + exports.faWindowClose = faWindowClose; + exports.faWindowMaximize = faWindowMaximize; + exports.faWindowMinimize = faWindowMinimize; + exports.faWindowRestore = faWindowRestore; + exports.faWineBottle = faWineBottle; + exports.faWineGlass = faWineGlass; + exports.faWineGlassAlt = faWineGlassAlt; + exports.faWonSign = faWonSign; + exports.faWrench = faWrench; + exports.faXRay = faXRay; + exports.faYenSign = faYenSign; + exports.faYinYang = faYinYang; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/@fortawesome/free-solid-svg-icons/package.json b/node_modules/@fortawesome/free-solid-svg-icons/package.json new file mode 100644 index 0000000..5b73d3f --- /dev/null +++ b/node_modules/@fortawesome/free-solid-svg-icons/package.json @@ -0,0 +1,63 @@ +{ + "description": "The iconic font, CSS, and SVG framework", + "keywords": [ + "font", + "awesome", + "fontawesome", + "icon", + "svg", + "bootstrap" + ], + "homepage": "https://fontawesome.com", + "bugs": { + "url": "http://github.com/FortAwesome/Font-Awesome/issues" + }, + "author": { + "name": "Dave Gandy", + "email": "dave@fontawesome.com", + "web": "http://twitter.com/davegandy" + }, + "contributors": [ + { + "name": "Brian Talbot", + "web": "http://twitter.com/talbs" + }, + { + "name": "Travis Chase", + "web": "http://twitter.com/supercodepoet" + }, + { + "name": "Rob Madole", + "web": "http://twitter.com/robmadole" + }, + { + "name": "Geremia Taglialatela", + "web": "http://twitter.com/gtagliala" + }, + { + "name": "Mike Wilkerson", + "web": "http://twitter.com/mw77" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/FortAwesome/Font-Awesome" + }, + "engines": { + "node": ">=6" + }, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "version": "5.15.4", + "name": "@fortawesome/free-solid-svg-icons", + "main": "index.js", + "module": "index.es.js", + "jsnext:main": "index.es.js", + "license": "(CC-BY-4.0 AND MIT)", + "types": "./index.d.ts", + "sideEffects": false, + "scripts": { + "postinstall": "node attribution.js" + } +} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/LICENSE b/node_modules/@jridgewell/sourcemap-codec/LICENSE new file mode 100644 index 0000000..1f6ce94 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/LICENSE @@ -0,0 +1,19 @@ +Copyright 2024 Justin Ridgewell + +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. diff --git a/node_modules/@jridgewell/sourcemap-codec/README.md b/node_modules/@jridgewell/sourcemap-codec/README.md new file mode 100644 index 0000000..b3e0708 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/README.md @@ -0,0 +1,264 @@ +# @jridgewell/sourcemap-codec + +Encode/decode the `mappings` property of a [sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit). + + +## Why? + +Sourcemaps are difficult to generate and manipulate, because the `mappings` property – the part that actually links the generated code back to the original source – is encoded using an obscure method called [Variable-length quantity](https://en.wikipedia.org/wiki/Variable-length_quantity). On top of that, each segment in the mapping contains offsets rather than absolute indices, which means that you can't look at a segment in isolation – you have to understand the whole sourcemap. + +This package makes the process slightly easier. + + +## Installation + +```bash +npm install @jridgewell/sourcemap-codec +``` + + +## Usage + +```js +import { encode, decode } from '@jridgewell/sourcemap-codec'; + +var decoded = decode( ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' ); + +assert.deepEqual( decoded, [ + // the first line (of the generated code) has no mappings, + // as shown by the starting semi-colon (which separates lines) + [], + + // the second line contains four (comma-separated) segments + [ + // segments are encoded as you'd expect: + // [ generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex ] + + // i.e. the first segment begins at column 2, and maps back to the second column + // of the second line (both zero-based) of the 0th source, and uses the 0th + // name in the `map.names` array + [ 2, 0, 2, 2, 0 ], + + // the remaining segments are 4-length rather than 5-length, + // because they don't map a name + [ 4, 0, 2, 4 ], + [ 6, 0, 2, 5 ], + [ 7, 0, 2, 7 ] + ], + + // the final line contains two segments + [ + [ 2, 1, 10, 19 ], + [ 12, 1, 11, 20 ] + ] +]); + +var encoded = encode( decoded ); +assert.equal( encoded, ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' ); +``` + +## Benchmarks + +``` +node v20.10.0 + +amp.js.map - 45120 segments + +Decode Memory Usage: +local code 5815135 bytes +@jridgewell/sourcemap-codec 1.4.15 5868160 bytes +sourcemap-codec 5492584 bytes +source-map-0.6.1 13569984 bytes +source-map-0.8.0 6390584 bytes +chrome dev tools 8011136 bytes +Smallest memory usage is sourcemap-codec + +Decode speed: +decode: local code x 492 ops/sec ±1.22% (90 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 499 ops/sec ±1.16% (89 runs sampled) +decode: sourcemap-codec x 376 ops/sec ±1.66% (89 runs sampled) +decode: source-map-0.6.1 x 34.99 ops/sec ±0.94% (48 runs sampled) +decode: source-map-0.8.0 x 351 ops/sec ±0.07% (95 runs sampled) +chrome dev tools x 165 ops/sec ±0.91% (86 runs sampled) +Fastest is decode: @jridgewell/sourcemap-codec 1.4.15 + +Encode Memory Usage: +local code 444248 bytes +@jridgewell/sourcemap-codec 1.4.15 623024 bytes +sourcemap-codec 8696280 bytes +source-map-0.6.1 8745176 bytes +source-map-0.8.0 8736624 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 796 ops/sec ±0.11% (97 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 795 ops/sec ±0.25% (98 runs sampled) +encode: sourcemap-codec x 231 ops/sec ±0.83% (86 runs sampled) +encode: source-map-0.6.1 x 166 ops/sec ±0.57% (86 runs sampled) +encode: source-map-0.8.0 x 203 ops/sec ±0.45% (88 runs sampled) +Fastest is encode: local code,encode: @jridgewell/sourcemap-codec 1.4.15 + + +*** + + +babel.min.js.map - 347793 segments + +Decode Memory Usage: +local code 35424960 bytes +@jridgewell/sourcemap-codec 1.4.15 35424696 bytes +sourcemap-codec 36033464 bytes +source-map-0.6.1 62253704 bytes +source-map-0.8.0 43843920 bytes +chrome dev tools 45111400 bytes +Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15 + +Decode speed: +decode: local code x 38.18 ops/sec ±5.44% (52 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 38.36 ops/sec ±5.02% (52 runs sampled) +decode: sourcemap-codec x 34.05 ops/sec ±4.45% (47 runs sampled) +decode: source-map-0.6.1 x 4.31 ops/sec ±2.76% (15 runs sampled) +decode: source-map-0.8.0 x 55.60 ops/sec ±0.13% (73 runs sampled) +chrome dev tools x 16.94 ops/sec ±3.78% (46 runs sampled) +Fastest is decode: source-map-0.8.0 + +Encode Memory Usage: +local code 2606016 bytes +@jridgewell/sourcemap-codec 1.4.15 2626440 bytes +sourcemap-codec 21152576 bytes +source-map-0.6.1 25023928 bytes +source-map-0.8.0 25256448 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 127 ops/sec ±0.18% (83 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 128 ops/sec ±0.26% (83 runs sampled) +encode: sourcemap-codec x 29.31 ops/sec ±2.55% (53 runs sampled) +encode: source-map-0.6.1 x 18.85 ops/sec ±3.19% (36 runs sampled) +encode: source-map-0.8.0 x 19.34 ops/sec ±1.97% (36 runs sampled) +Fastest is encode: @jridgewell/sourcemap-codec 1.4.15 + + +*** + + +preact.js.map - 1992 segments + +Decode Memory Usage: +local code 261696 bytes +@jridgewell/sourcemap-codec 1.4.15 244296 bytes +sourcemap-codec 302816 bytes +source-map-0.6.1 939176 bytes +source-map-0.8.0 336 bytes +chrome dev tools 587368 bytes +Smallest memory usage is source-map-0.8.0 + +Decode speed: +decode: local code x 17,782 ops/sec ±0.32% (97 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 17,863 ops/sec ±0.40% (100 runs sampled) +decode: sourcemap-codec x 12,453 ops/sec ±0.27% (101 runs sampled) +decode: source-map-0.6.1 x 1,288 ops/sec ±1.05% (96 runs sampled) +decode: source-map-0.8.0 x 9,289 ops/sec ±0.27% (101 runs sampled) +chrome dev tools x 4,769 ops/sec ±0.18% (100 runs sampled) +Fastest is decode: @jridgewell/sourcemap-codec 1.4.15 + +Encode Memory Usage: +local code 262944 bytes +@jridgewell/sourcemap-codec 1.4.15 25544 bytes +sourcemap-codec 323048 bytes +source-map-0.6.1 507808 bytes +source-map-0.8.0 507480 bytes +Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15 + +Encode speed: +encode: local code x 24,207 ops/sec ±0.79% (95 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 24,288 ops/sec ±0.48% (96 runs sampled) +encode: sourcemap-codec x 6,761 ops/sec ±0.21% (100 runs sampled) +encode: source-map-0.6.1 x 5,374 ops/sec ±0.17% (99 runs sampled) +encode: source-map-0.8.0 x 5,633 ops/sec ±0.32% (99 runs sampled) +Fastest is encode: @jridgewell/sourcemap-codec 1.4.15,encode: local code + + +*** + + +react.js.map - 5726 segments + +Decode Memory Usage: +local code 678816 bytes +@jridgewell/sourcemap-codec 1.4.15 678816 bytes +sourcemap-codec 816400 bytes +source-map-0.6.1 2288864 bytes +source-map-0.8.0 721360 bytes +chrome dev tools 1012512 bytes +Smallest memory usage is local code + +Decode speed: +decode: local code x 6,178 ops/sec ±0.19% (98 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 6,261 ops/sec ±0.22% (100 runs sampled) +decode: sourcemap-codec x 4,472 ops/sec ±0.90% (99 runs sampled) +decode: source-map-0.6.1 x 449 ops/sec ±0.31% (95 runs sampled) +decode: source-map-0.8.0 x 3,219 ops/sec ±0.13% (100 runs sampled) +chrome dev tools x 1,743 ops/sec ±0.20% (99 runs sampled) +Fastest is decode: @jridgewell/sourcemap-codec 1.4.15 + +Encode Memory Usage: +local code 140960 bytes +@jridgewell/sourcemap-codec 1.4.15 159808 bytes +sourcemap-codec 969304 bytes +source-map-0.6.1 930520 bytes +source-map-0.8.0 930248 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 8,013 ops/sec ±0.19% (100 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 7,989 ops/sec ±0.20% (101 runs sampled) +encode: sourcemap-codec x 2,472 ops/sec ±0.21% (99 runs sampled) +encode: source-map-0.6.1 x 2,200 ops/sec ±0.17% (99 runs sampled) +encode: source-map-0.8.0 x 2,220 ops/sec ±0.37% (99 runs sampled) +Fastest is encode: local code + + +*** + + +vscode.map - 2141001 segments + +Decode Memory Usage: +local code 198955264 bytes +@jridgewell/sourcemap-codec 1.4.15 199175352 bytes +sourcemap-codec 199102688 bytes +source-map-0.6.1 386323432 bytes +source-map-0.8.0 244116432 bytes +chrome dev tools 293734280 bytes +Smallest memory usage is local code + +Decode speed: +decode: local code x 3.90 ops/sec ±22.21% (15 runs sampled) +decode: @jridgewell/sourcemap-codec 1.4.15 x 3.95 ops/sec ±23.53% (15 runs sampled) +decode: sourcemap-codec x 3.82 ops/sec ±17.94% (14 runs sampled) +decode: source-map-0.6.1 x 0.61 ops/sec ±7.81% (6 runs sampled) +decode: source-map-0.8.0 x 9.54 ops/sec ±0.28% (28 runs sampled) +chrome dev tools x 2.18 ops/sec ±10.58% (10 runs sampled) +Fastest is decode: source-map-0.8.0 + +Encode Memory Usage: +local code 13509880 bytes +@jridgewell/sourcemap-codec 1.4.15 13537648 bytes +sourcemap-codec 32540104 bytes +source-map-0.6.1 127531040 bytes +source-map-0.8.0 127535312 bytes +Smallest memory usage is local code + +Encode speed: +encode: local code x 20.10 ops/sec ±0.19% (38 runs sampled) +encode: @jridgewell/sourcemap-codec 1.4.15 x 20.26 ops/sec ±0.32% (38 runs sampled) +encode: sourcemap-codec x 5.44 ops/sec ±1.64% (18 runs sampled) +encode: source-map-0.6.1 x 2.30 ops/sec ±4.79% (10 runs sampled) +encode: source-map-0.8.0 x 2.46 ops/sec ±6.53% (10 runs sampled) +Fastest is encode: @jridgewell/sourcemap-codec 1.4.15 +``` + +# License + +MIT diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs new file mode 100644 index 0000000..532bab3 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs @@ -0,0 +1,423 @@ +// src/vlq.ts +var comma = ",".charCodeAt(0); +var semicolon = ";".charCodeAt(0); +var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var intToChar = new Uint8Array(64); +var charToInt = new Uint8Array(128); +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} +function decodeInteger(reader, relative) { + let value = 0; + let shift = 0; + let integer = 0; + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + const shouldNegate = value & 1; + value >>>= 1; + if (shouldNegate) { + value = -2147483648 | -value; + } + return relative + value; +} +function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; +} +function hasMoreVlq(reader, max) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} + +// src/strings.ts +var bufLength = 1024 * 16; +var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } +} : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + } +}; +var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +}; +var StringReader = class { + constructor(buffer) { + this.pos = 0; + this.buffer = buffer; + } + next() { + return this.buffer.charCodeAt(this.pos++); + } + peek() { + return this.buffer.charCodeAt(this.pos); + } + indexOf(char) { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +}; + +// src/scopes.ts +var EMPTY = []; +function decodeOriginalScopes(input) { + const { length } = input; + const reader = new StringReader(input); + const scopes = []; + const stack = []; + let line = 0; + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + if (!hasMoreVlq(reader, length)) { + const last = stack.pop(); + last[2] = line; + last[3] = column; + continue; + } + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 1; + const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]; + let vars = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + scopes.push(scope); + stack.push(scope); + } + return scopes; +} +function encodeOriginalScopes(scopes) { + const writer = new StringWriter(); + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + return writer.flush(); +} +function _encodeOriginalScopes(scopes, index, writer, state) { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + if (index > 0) writer.write(comma); + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + const fields = scope.length === 6 ? 1 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + for (const v of vars) { + encodeInteger(writer, v, 0); + } + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeOriginalScopes(scopes, index, writer, state); + } + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + return index; +} +function decodeGeneratedRanges(input) { + const { length } = input; + const reader = new StringReader(input); + const ranges = []; + const stack = []; + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + do { + const semi = reader.indexOf(";"); + let genColumn = 0; + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop(); + last[2] = genLine; + last[3] = genColumn; + continue; + } + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 1; + const hasCallsite = fields & 2; + const hasScope = fields & 4; + let callsite = null; + let bindings = EMPTY; + let range; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0 + ); + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex]; + } else { + range = [genLine, genColumn, 0, 0]; + } + range.isScope = !!hasScope; + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0 + ); + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + if (hasMoreVlq(reader, semi)) { + bindings = []; + do { + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); + } + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + ranges.push(range); + stack.push(range); + } + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + return ranges; +} +function encodeGeneratedRanges(ranges) { + if (ranges.length === 0) return ""; + const writer = new StringWriter(); + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + return writer.flush(); +} +function _encodeGeneratedRanges(ranges, index, writer, state) { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings + } = range; + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + state[1] = encodeInteger(writer, range[1], state[1]); + const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0); + encodeInteger(writer, fields, 0); + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn); + encodeInteger(writer, expRange[0], 0); + } + } + } + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + return index; +} +function catchupLine(writer, lastLine, line) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} + +// src/sourcemap-codec.ts +function decode(mappings) { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + do { + const semi = reader.indexOf(";"); + const line = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + while (reader.pos < semi) { + let seg; + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + line.push(seg); + reader.pos++; + } + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + return decoded; +} +function sort(line) { + line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[0] - b[0]; +} +function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); +} +export { + decode, + decodeGeneratedRanges, + decodeOriginalScopes, + encode, + encodeGeneratedRanges, + encodeOriginalScopes +}; +//# sourceMappingURL=sourcemap-codec.mjs.map diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map new file mode 100644 index 0000000..c276844 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/vlq.ts", "../src/strings.ts", "../src/scopes.ts", "../src/sourcemap-codec.ts"], + "mappings": ";AAEO,IAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,IAAM,YAAY,IAAI,WAAW,CAAC;AAEzC,IAAM,QAAQ;AACd,IAAM,YAAY,IAAI,WAAW,EAAE;AACnC,IAAM,YAAY,IAAI,WAAW,GAAG;AAEpC,SAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,QAAM,IAAI,MAAM,WAAW,CAAC;AAC5B,YAAU,CAAC,IAAI;AACf,YAAU,CAAC,IAAI;AACjB;AAEO,SAAS,cAAc,QAAsB,UAA0B;AAC5E,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,UAAU;AAEd,KAAG;AACD,UAAM,IAAI,OAAO,KAAK;AACtB,cAAU,UAAU,CAAC;AACrB,cAAU,UAAU,OAAO;AAC3B,aAAS;AAAA,EACX,SAAS,UAAU;AAEnB,QAAM,eAAe,QAAQ;AAC7B,aAAW;AAEX,MAAI,cAAc;AAChB,YAAQ,cAAc,CAAC;AAAA,EACzB;AAEA,SAAO,WAAW;AACpB;AAEO,SAAS,cAAc,SAAuB,KAAa,UAA0B;AAC1F,MAAI,QAAQ,MAAM;AAElB,UAAQ,QAAQ,IAAK,CAAC,SAAS,IAAK,IAAI,SAAS;AACjD,KAAG;AACD,QAAI,UAAU,QAAQ;AACtB,eAAW;AACX,QAAI,QAAQ,EAAG,YAAW;AAC1B,YAAQ,MAAM,UAAU,OAAO,CAAC;AAAA,EAClC,SAAS,QAAQ;AAEjB,SAAO;AACT;AAEO,SAAS,WAAW,QAAsB,KAAa;AAC5D,MAAI,OAAO,OAAO,IAAK,QAAO;AAC9B,SAAO,OAAO,KAAK,MAAM;AAC3B;;;ACtDA,IAAM,YAAY,OAAO;AAGzB,IAAM,KACJ,OAAO,gBAAgB,cACH,oBAAI,YAAY,IAChC,OAAO,WAAW,cAChB;AAAA,EACE,OAAO,KAAyB;AAC9B,UAAM,MAAM,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;AAClE,WAAO,IAAI,SAAS;AAAA,EACtB;AACF,IACA;AAAA,EACE,OAAO,KAAyB;AAC9B,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,aAAO,OAAO,aAAa,IAAI,CAAC,CAAC;AAAA,IACnC;AACA,WAAO;AAAA,EACT;AACF;AAED,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACL,eAAM;AACN,SAAQ,MAAM;AACd,SAAQ,SAAS,IAAI,WAAW,SAAS;AAAA;AAAA,EAEzC,MAAM,GAAiB;AACrB,UAAM,EAAE,OAAO,IAAI;AACnB,WAAO,KAAK,KAAK,IAAI;AACrB,QAAI,KAAK,QAAQ,WAAW;AAC1B,WAAK,OAAO,GAAG,OAAO,MAAM;AAC5B,WAAK,MAAM;AAAA,IACb;AAAA,EACF;AAAA,EAEA,QAAgB;AACd,UAAM,EAAE,QAAQ,KAAK,IAAI,IAAI;AAC7B,WAAO,MAAM,IAAI,MAAM,GAAG,OAAO,OAAO,SAAS,GAAG,GAAG,CAAC,IAAI;AAAA,EAC9D;AACF;AAEO,IAAM,eAAN,MAAmB;AAAA,EAIxB,YAAY,QAAgB;AAH5B,eAAM;AAIJ,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,OAAO,WAAW,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,OAAO,WAAW,KAAK,GAAG;AAAA,EACxC;AAAA,EAEA,QAAQ,MAAsB;AAC5B,UAAM,EAAE,QAAQ,IAAI,IAAI;AACxB,UAAM,MAAM,OAAO,QAAQ,MAAM,GAAG;AACpC,WAAO,QAAQ,KAAK,OAAO,SAAS;AAAA,EACtC;AACF;;;AC7DA,IAAM,QAAe,CAAC;AA+Bf,SAAS,qBAAqB,OAAgC;AACnE,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,SAAS,IAAI,aAAa,KAAK;AACrC,QAAM,SAA0B,CAAC;AACjC,QAAM,QAAyB,CAAC;AAChC,MAAI,OAAO;AAEX,SAAO,OAAO,MAAM,QAAQ,OAAO,OAAO;AACxC,WAAO,cAAc,QAAQ,IAAI;AACjC,UAAM,SAAS,cAAc,QAAQ,CAAC;AAEtC,QAAI,CAAC,WAAW,QAAQ,MAAM,GAAG;AAC/B,YAAM,OAAO,MAAM,IAAI;AACvB,WAAK,CAAC,IAAI;AACV,WAAK,CAAC,IAAI;AACV;AAAA,IACF;AAEA,UAAM,OAAO,cAAc,QAAQ,CAAC;AACpC,UAAM,SAAS,cAAc,QAAQ,CAAC;AACtC,UAAM,UAAU,SAAS;AAEzB,UAAM,QACJ,UAAU,CAAC,MAAM,QAAQ,GAAG,GAAG,MAAM,cAAc,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,GAAG,GAAG,IAAI;AAG5F,QAAI,OAAc;AAClB,QAAI,WAAW,QAAQ,MAAM,GAAG;AAC9B,aAAO,CAAC;AACR,SAAG;AACD,cAAM,YAAY,cAAc,QAAQ,CAAC;AACzC,aAAK,KAAK,SAAS;AAAA,MACrB,SAAS,WAAW,QAAQ,MAAM;AAAA,IACpC;AACA,UAAM,OAAO;AAEb,WAAO,KAAK,KAAK;AACjB,UAAM,KAAK,KAAK;AAAA,EAClB;AAEA,SAAO;AACT;AAEO,SAAS,qBAAqB,QAAiC;AACpE,QAAM,SAAS,IAAI,aAAa;AAEhC,WAAS,IAAI,GAAG,IAAI,OAAO,UAAU;AACnC,QAAI,sBAAsB,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AAAA,EAClD;AAEA,SAAO,OAAO,MAAM;AACtB;AAEA,SAAS,sBACP,QACA,OACA,QACA,OAGQ;AACR,QAAM,QAAQ,OAAO,KAAK;AAC1B,QAAM,EAAE,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,KAAK,IAAI;AAElF,MAAI,QAAQ,EAAG,QAAO,MAAM,KAAK;AAEjC,QAAM,CAAC,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AACpD,gBAAc,QAAQ,aAAa,CAAC;AACpC,gBAAc,QAAQ,MAAM,CAAC;AAE7B,QAAM,SAAS,MAAM,WAAW,IAAI,IAAS;AAC7C,gBAAc,QAAQ,QAAQ,CAAC;AAC/B,MAAI,MAAM,WAAW,EAAG,eAAc,QAAQ,MAAM,CAAC,GAAG,CAAC;AAEzD,aAAW,KAAK,MAAM;AACpB,kBAAc,QAAQ,GAAG,CAAC;AAAA,EAC5B;AAEA,OAAK,SAAS,QAAQ,OAAO,UAAU;AACrC,UAAM,OAAO,OAAO,KAAK;AACzB,UAAM,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI;AACvB,QAAI,IAAI,WAAY,MAAM,WAAW,KAAK,WAAY;AACpD;AAAA,IACF;AACA,YAAQ,sBAAsB,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAC5D;AAEA,SAAO,MAAM,KAAK;AAClB,QAAM,CAAC,IAAI,cAAc,QAAQ,SAAS,MAAM,CAAC,CAAC;AAClD,gBAAc,QAAQ,WAAW,CAAC;AAElC,SAAO;AACT;AAEO,SAAS,sBAAsB,OAAiC;AACrE,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,SAAS,IAAI,aAAa,KAAK;AACrC,QAAM,SAA2B,CAAC;AAClC,QAAM,QAA0B,CAAC;AAEjC,MAAI,UAAU;AACd,MAAI,yBAAyB;AAC7B,MAAI,uBAAuB;AAC3B,MAAI,uBAAuB;AAC3B,MAAI,eAAe;AACnB,MAAI,iBAAiB;AACrB,MAAI,cAAc;AAClB,MAAI,gBAAgB;AAEpB,KAAG;AACD,UAAM,OAAO,OAAO,QAAQ,GAAG;AAC/B,QAAI,YAAY;AAEhB,WAAO,OAAO,MAAM,MAAM,OAAO,OAAO;AACtC,kBAAY,cAAc,QAAQ,SAAS;AAE3C,UAAI,CAAC,WAAW,QAAQ,IAAI,GAAG;AAC7B,cAAM,OAAO,MAAM,IAAI;AACvB,aAAK,CAAC,IAAI;AACV,aAAK,CAAC,IAAI;AACV;AAAA,MACF;AAEA,YAAM,SAAS,cAAc,QAAQ,CAAC;AACtC,YAAM,gBAAgB,SAAS;AAC/B,YAAM,cAAc,SAAS;AAC7B,YAAM,WAAW,SAAS;AAE1B,UAAI,WAA4B;AAChC,UAAI,WAAsB;AAC1B,UAAI;AACJ,UAAI,eAAe;AACjB,cAAM,kBAAkB,cAAc,QAAQ,sBAAsB;AACpE,+BAAuB;AAAA,UACrB;AAAA,UACA,2BAA2B,kBAAkB,uBAAuB;AAAA,QACtE;AAEA,iCAAyB;AACzB,gBAAQ,CAAC,SAAS,WAAW,GAAG,GAAG,iBAAiB,oBAAoB;AAAA,MAC1E,OAAO;AACL,gBAAQ,CAAC,SAAS,WAAW,GAAG,CAAC;AAAA,MACnC;AAEA,YAAM,UAAU,CAAC,CAAC;AAElB,UAAI,aAAa;AACf,cAAM,UAAU;AAChB,cAAM,WAAW;AACjB,+BAAuB,cAAc,QAAQ,oBAAoB;AACjE,cAAM,aAAa,YAAY;AAC/B,uBAAe,cAAc,QAAQ,aAAa,eAAe,CAAC;AAClE,yBAAiB;AAAA,UACf;AAAA,UACA,cAAc,aAAa,eAAe,iBAAiB;AAAA,QAC7D;AAEA,mBAAW,CAAC,sBAAsB,cAAc,cAAc;AAAA,MAChE;AACA,YAAM,WAAW;AAEjB,UAAI,WAAW,QAAQ,IAAI,GAAG;AAC5B,mBAAW,CAAC;AACZ,WAAG;AACD,wBAAc;AACd,0BAAgB;AAChB,gBAAM,mBAAmB,cAAc,QAAQ,CAAC;AAChD,cAAI;AACJ,cAAI,mBAAmB,IAAI;AACzB,+BAAmB,CAAC,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC;AAC9C,qBAAS,IAAI,IAAI,IAAI,kBAAkB,KAAK;AAC1C,oBAAM,SAAS;AACf,4BAAc,cAAc,QAAQ,WAAW;AAC/C,8BAAgB,cAAc,QAAQ,gBAAgB,SAAS,gBAAgB,CAAC;AAChF,oBAAM,aAAa,cAAc,QAAQ,CAAC;AAC1C,+BAAiB,KAAK,CAAC,YAAY,aAAa,aAAa,CAAC;AAAA,YAChE;AAAA,UACF,OAAO;AACL,+BAAmB,CAAC,CAAC,gBAAgB,CAAC;AAAA,UACxC;AACA,mBAAS,KAAK,gBAAgB;AAAA,QAChC,SAAS,WAAW,QAAQ,IAAI;AAAA,MAClC;AACA,YAAM,WAAW;AAEjB,aAAO,KAAK,KAAK;AACjB,YAAM,KAAK,KAAK;AAAA,IAClB;AAEA;AACA,WAAO,MAAM,OAAO;AAAA,EACtB,SAAS,OAAO,MAAM;AAEtB,SAAO;AACT;AAEO,SAAS,sBAAsB,QAAkC;AACtE,MAAI,OAAO,WAAW,EAAG,QAAO;AAEhC,QAAM,SAAS,IAAI,aAAa;AAEhC,WAAS,IAAI,GAAG,IAAI,OAAO,UAAU;AACnC,QAAI,uBAAuB,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAAA,EACrE;AAEA,SAAO,OAAO,MAAM;AACtB;AAEA,SAAS,uBACP,QACA,OACA,QACA,OASQ;AACR,QAAM,QAAQ,OAAO,KAAK;AAC1B,QAAM;AAAA,IACJ,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,MAAM,CAAC,IAAI,WAAW;AACxB,gBAAY,QAAQ,MAAM,CAAC,GAAG,SAAS;AACvC,UAAM,CAAC,IAAI;AACX,UAAM,CAAC,IAAI;AAAA,EACb,WAAW,QAAQ,GAAG;AACpB,WAAO,MAAM,KAAK;AAAA,EACpB;AAEA,QAAM,CAAC,IAAI,cAAc,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAEnD,QAAM,UACH,MAAM,WAAW,IAAI,IAAS,MAAM,WAAW,IAAS,MAAM,UAAU,IAAS;AACpF,gBAAc,QAAQ,QAAQ,CAAC;AAE/B,MAAI,MAAM,WAAW,GAAG;AACtB,UAAM,EAAE,GAAG,cAAc,GAAG,YAAY,IAAI;AAC5C,QAAI,iBAAiB,MAAM,CAAC,GAAG;AAC7B,YAAM,CAAC,IAAI;AAAA,IACb;AACA,UAAM,CAAC,IAAI,cAAc,QAAQ,cAAc,MAAM,CAAC,CAAC;AACvD,UAAM,CAAC,IAAI,cAAc,QAAQ,aAAa,MAAM,CAAC,CAAC;AAAA,EACxD;AAEA,MAAI,UAAU;AACZ,UAAM,EAAE,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,IAAI,MAAM;AAC9D,QAAI,iBAAiB,MAAM,CAAC,GAAG;AAC7B,YAAM,CAAC,IAAI;AACX,YAAM,CAAC,IAAI;AAAA,IACb,WAAW,aAAa,MAAM,CAAC,GAAG;AAChC,YAAM,CAAC,IAAI;AAAA,IACb;AACA,UAAM,CAAC,IAAI,cAAc,QAAQ,cAAc,MAAM,CAAC,CAAC;AACvD,UAAM,CAAC,IAAI,cAAc,QAAQ,UAAU,MAAM,CAAC,CAAC;AACnD,UAAM,CAAC,IAAI,cAAc,QAAQ,YAAY,MAAM,CAAC,CAAC;AAAA,EACvD;AAEA,MAAI,UAAU;AACZ,eAAW,WAAW,UAAU;AAC9B,UAAI,QAAQ,SAAS,EAAG,eAAc,QAAQ,CAAC,QAAQ,QAAQ,CAAC;AAChE,YAAM,aAAa,QAAQ,CAAC,EAAE,CAAC;AAC/B,oBAAc,QAAQ,YAAY,CAAC;AACnC,UAAI,mBAAmB;AACvB,UAAI,qBAAqB;AACzB,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,cAAM,WAAW,QAAQ,CAAC;AAC1B,2BAAmB,cAAc,QAAQ,SAAS,CAAC,GAAI,gBAAgB;AACvE,6BAAqB,cAAc,QAAQ,SAAS,CAAC,GAAI,kBAAkB;AAC3E,sBAAc,QAAQ,SAAS,CAAC,GAAI,CAAC;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAEA,OAAK,SAAS,QAAQ,OAAO,UAAU;AACrC,UAAM,OAAO,OAAO,KAAK;AACzB,UAAM,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI;AACvB,QAAI,IAAI,WAAY,MAAM,WAAW,KAAK,WAAY;AACpD;AAAA,IACF;AACA,YAAQ,uBAAuB,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAC7D;AAEA,MAAI,MAAM,CAAC,IAAI,SAAS;AACtB,gBAAY,QAAQ,MAAM,CAAC,GAAG,OAAO;AACrC,UAAM,CAAC,IAAI;AACX,UAAM,CAAC,IAAI;AAAA,EACb,OAAO;AACL,WAAO,MAAM,KAAK;AAAA,EACpB;AACA,QAAM,CAAC,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AAEpD,SAAO;AACT;AAEA,SAAS,YAAY,QAAsB,UAAkB,MAAc;AACzE,KAAG;AACD,WAAO,MAAM,SAAS;AAAA,EACxB,SAAS,EAAE,WAAW;AACxB;;;ACtUO,SAAS,OAAO,UAAqC;AAC1D,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,SAAS,IAAI,aAAa,QAAQ;AACxC,QAAM,UAA6B,CAAC;AACpC,MAAI,YAAY;AAChB,MAAI,eAAe;AACnB,MAAI,aAAa;AACjB,MAAI,eAAe;AACnB,MAAI,aAAa;AAEjB,KAAG;AACD,UAAM,OAAO,OAAO,QAAQ,GAAG;AAC/B,UAAM,OAAsB,CAAC;AAC7B,QAAI,SAAS;AACb,QAAI,UAAU;AACd,gBAAY;AAEZ,WAAO,OAAO,MAAM,MAAM;AACxB,UAAI;AAEJ,kBAAY,cAAc,QAAQ,SAAS;AAC3C,UAAI,YAAY,QAAS,UAAS;AAClC,gBAAU;AAEV,UAAI,WAAW,QAAQ,IAAI,GAAG;AAC5B,uBAAe,cAAc,QAAQ,YAAY;AACjD,qBAAa,cAAc,QAAQ,UAAU;AAC7C,uBAAe,cAAc,QAAQ,YAAY;AAEjD,YAAI,WAAW,QAAQ,IAAI,GAAG;AAC5B,uBAAa,cAAc,QAAQ,UAAU;AAC7C,gBAAM,CAAC,WAAW,cAAc,YAAY,cAAc,UAAU;AAAA,QACtE,OAAO;AACL,gBAAM,CAAC,WAAW,cAAc,YAAY,YAAY;AAAA,QAC1D;AAAA,MACF,OAAO;AACL,cAAM,CAAC,SAAS;AAAA,MAClB;AAEA,WAAK,KAAK,GAAG;AACb,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,OAAQ,MAAK,IAAI;AACtB,YAAQ,KAAK,IAAI;AACjB,WAAO,MAAM,OAAO;AAAA,EACtB,SAAS,OAAO,OAAO;AAEvB,SAAO;AACT;AAEA,SAAS,KAAK,MAA0B;AACtC,OAAK,KAAK,cAAc;AAC1B;AAEA,SAAS,eAAe,GAAqB,GAA6B;AACxE,SAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACnB;AAIO,SAAS,OAAO,SAA8C;AACnE,QAAM,SAAS,IAAI,aAAa;AAChC,MAAI,eAAe;AACnB,MAAI,aAAa;AACjB,MAAI,eAAe;AACnB,MAAI,aAAa;AAEjB,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,UAAM,OAAO,QAAQ,CAAC;AACtB,QAAI,IAAI,EAAG,QAAO,MAAM,SAAS;AACjC,QAAI,KAAK,WAAW,EAAG;AAEvB,QAAI,YAAY;AAEhB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,UAAU,KAAK,CAAC;AACtB,UAAI,IAAI,EAAG,QAAO,MAAM,KAAK;AAE7B,kBAAY,cAAc,QAAQ,QAAQ,CAAC,GAAG,SAAS;AAEvD,UAAI,QAAQ,WAAW,EAAG;AAC1B,qBAAe,cAAc,QAAQ,QAAQ,CAAC,GAAG,YAAY;AAC7D,mBAAa,cAAc,QAAQ,QAAQ,CAAC,GAAG,UAAU;AACzD,qBAAe,cAAc,QAAQ,QAAQ,CAAC,GAAG,YAAY;AAE7D,UAAI,QAAQ,WAAW,EAAG;AAC1B,mBAAa,cAAc,QAAQ,QAAQ,CAAC,GAAG,UAAU;AAAA,IAC3D;AAAA,EACF;AAEA,SAAO,OAAO,MAAM;AACtB;", + "names": [] +} diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js new file mode 100644 index 0000000..2d8e459 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js @@ -0,0 +1,464 @@ +(function (global, factory) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + factory(module); + module.exports = def(module); + } else if (typeof define === 'function' && define.amd) { + define(['module'], function(mod) { + factory.apply(this, arguments); + mod.exports = def(mod); + }); + } else { + const mod = { exports: {} }; + factory(mod); + global = typeof globalThis !== 'undefined' ? globalThis : global || self; + global.sourcemapCodec = def(mod); + } + function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; } +})(this, (function (module) { +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/sourcemap-codec.ts +var sourcemap_codec_exports = {}; +__export(sourcemap_codec_exports, { + decode: () => decode, + decodeGeneratedRanges: () => decodeGeneratedRanges, + decodeOriginalScopes: () => decodeOriginalScopes, + encode: () => encode, + encodeGeneratedRanges: () => encodeGeneratedRanges, + encodeOriginalScopes: () => encodeOriginalScopes +}); +module.exports = __toCommonJS(sourcemap_codec_exports); + +// src/vlq.ts +var comma = ",".charCodeAt(0); +var semicolon = ";".charCodeAt(0); +var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var intToChar = new Uint8Array(64); +var charToInt = new Uint8Array(128); +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} +function decodeInteger(reader, relative) { + let value = 0; + let shift = 0; + let integer = 0; + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + const shouldNegate = value & 1; + value >>>= 1; + if (shouldNegate) { + value = -2147483648 | -value; + } + return relative + value; +} +function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; +} +function hasMoreVlq(reader, max) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} + +// src/strings.ts +var bufLength = 1024 * 16; +var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } +} : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + } +}; +var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +}; +var StringReader = class { + constructor(buffer) { + this.pos = 0; + this.buffer = buffer; + } + next() { + return this.buffer.charCodeAt(this.pos++); + } + peek() { + return this.buffer.charCodeAt(this.pos); + } + indexOf(char) { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +}; + +// src/scopes.ts +var EMPTY = []; +function decodeOriginalScopes(input) { + const { length } = input; + const reader = new StringReader(input); + const scopes = []; + const stack = []; + let line = 0; + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + if (!hasMoreVlq(reader, length)) { + const last = stack.pop(); + last[2] = line; + last[3] = column; + continue; + } + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 1; + const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]; + let vars = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + scopes.push(scope); + stack.push(scope); + } + return scopes; +} +function encodeOriginalScopes(scopes) { + const writer = new StringWriter(); + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + return writer.flush(); +} +function _encodeOriginalScopes(scopes, index, writer, state) { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + if (index > 0) writer.write(comma); + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + const fields = scope.length === 6 ? 1 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + for (const v of vars) { + encodeInteger(writer, v, 0); + } + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeOriginalScopes(scopes, index, writer, state); + } + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + return index; +} +function decodeGeneratedRanges(input) { + const { length } = input; + const reader = new StringReader(input); + const ranges = []; + const stack = []; + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + do { + const semi = reader.indexOf(";"); + let genColumn = 0; + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop(); + last[2] = genLine; + last[3] = genColumn; + continue; + } + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 1; + const hasCallsite = fields & 2; + const hasScope = fields & 4; + let callsite = null; + let bindings = EMPTY; + let range; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0 + ); + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex]; + } else { + range = [genLine, genColumn, 0, 0]; + } + range.isScope = !!hasScope; + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0 + ); + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + if (hasMoreVlq(reader, semi)) { + bindings = []; + do { + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); + } + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + ranges.push(range); + stack.push(range); + } + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + return ranges; +} +function encodeGeneratedRanges(ranges) { + if (ranges.length === 0) return ""; + const writer = new StringWriter(); + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + return writer.flush(); +} +function _encodeGeneratedRanges(ranges, index, writer, state) { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings + } = range; + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + state[1] = encodeInteger(writer, range[1], state[1]); + const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0); + encodeInteger(writer, fields, 0); + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn); + encodeInteger(writer, expRange[0], 0); + } + } + } + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + return index; +} +function catchupLine(writer, lastLine, line) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} + +// src/sourcemap-codec.ts +function decode(mappings) { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + do { + const semi = reader.indexOf(";"); + const line = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + while (reader.pos < semi) { + let seg; + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + line.push(seg); + reader.pos++; + } + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + return decoded; +} +function sort(line) { + line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[0] - b[0]; +} +function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); +} +})); +//# sourceMappingURL=sourcemap-codec.umd.js.map diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map new file mode 100644 index 0000000..abc18d2 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../src/sourcemap-codec.ts", "../src/vlq.ts", "../src/strings.ts", "../src/scopes.ts"], + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,IAAM,YAAY,IAAI,WAAW,CAAC;AAEzC,IAAM,QAAQ;AACd,IAAM,YAAY,IAAI,WAAW,EAAE;AACnC,IAAM,YAAY,IAAI,WAAW,GAAG;AAEpC,SAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,QAAM,IAAI,MAAM,WAAW,CAAC;AAC5B,YAAU,CAAC,IAAI;AACf,YAAU,CAAC,IAAI;AACjB;AAEO,SAAS,cAAc,QAAsB,UAA0B;AAC5E,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,UAAU;AAEd,KAAG;AACD,UAAM,IAAI,OAAO,KAAK;AACtB,cAAU,UAAU,CAAC;AACrB,cAAU,UAAU,OAAO;AAC3B,aAAS;AAAA,EACX,SAAS,UAAU;AAEnB,QAAM,eAAe,QAAQ;AAC7B,aAAW;AAEX,MAAI,cAAc;AAChB,YAAQ,cAAc,CAAC;AAAA,EACzB;AAEA,SAAO,WAAW;AACpB;AAEO,SAAS,cAAc,SAAuB,KAAa,UAA0B;AAC1F,MAAI,QAAQ,MAAM;AAElB,UAAQ,QAAQ,IAAK,CAAC,SAAS,IAAK,IAAI,SAAS;AACjD,KAAG;AACD,QAAI,UAAU,QAAQ;AACtB,eAAW;AACX,QAAI,QAAQ,EAAG,YAAW;AAC1B,YAAQ,MAAM,UAAU,OAAO,CAAC;AAAA,EAClC,SAAS,QAAQ;AAEjB,SAAO;AACT;AAEO,SAAS,WAAW,QAAsB,KAAa;AAC5D,MAAI,OAAO,OAAO,IAAK,QAAO;AAC9B,SAAO,OAAO,KAAK,MAAM;AAC3B;;;ACtDA,IAAM,YAAY,OAAO;AAGzB,IAAM,KACJ,OAAO,gBAAgB,cACH,oBAAI,YAAY,IAChC,OAAO,WAAW,cAChB;AAAA,EACE,OAAO,KAAyB;AAC9B,UAAM,MAAM,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;AAClE,WAAO,IAAI,SAAS;AAAA,EACtB;AACF,IACA;AAAA,EACE,OAAO,KAAyB;AAC9B,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,aAAO,OAAO,aAAa,IAAI,CAAC,CAAC;AAAA,IACnC;AACA,WAAO;AAAA,EACT;AACF;AAED,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACL,eAAM;AACN,SAAQ,MAAM;AACd,SAAQ,SAAS,IAAI,WAAW,SAAS;AAAA;AAAA,EAEzC,MAAM,GAAiB;AACrB,UAAM,EAAE,OAAO,IAAI;AACnB,WAAO,KAAK,KAAK,IAAI;AACrB,QAAI,KAAK,QAAQ,WAAW;AAC1B,WAAK,OAAO,GAAG,OAAO,MAAM;AAC5B,WAAK,MAAM;AAAA,IACb;AAAA,EACF;AAAA,EAEA,QAAgB;AACd,UAAM,EAAE,QAAQ,KAAK,IAAI,IAAI;AAC7B,WAAO,MAAM,IAAI,MAAM,GAAG,OAAO,OAAO,SAAS,GAAG,GAAG,CAAC,IAAI;AAAA,EAC9D;AACF;AAEO,IAAM,eAAN,MAAmB;AAAA,EAIxB,YAAY,QAAgB;AAH5B,eAAM;AAIJ,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,OAAO,WAAW,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,OAAO,WAAW,KAAK,GAAG;AAAA,EACxC;AAAA,EAEA,QAAQ,MAAsB;AAC5B,UAAM,EAAE,QAAQ,IAAI,IAAI;AACxB,UAAM,MAAM,OAAO,QAAQ,MAAM,GAAG;AACpC,WAAO,QAAQ,KAAK,OAAO,SAAS;AAAA,EACtC;AACF;;;AC7DA,IAAM,QAAe,CAAC;AA+Bf,SAAS,qBAAqB,OAAgC;AACnE,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,SAAS,IAAI,aAAa,KAAK;AACrC,QAAM,SAA0B,CAAC;AACjC,QAAM,QAAyB,CAAC;AAChC,MAAI,OAAO;AAEX,SAAO,OAAO,MAAM,QAAQ,OAAO,OAAO;AACxC,WAAO,cAAc,QAAQ,IAAI;AACjC,UAAM,SAAS,cAAc,QAAQ,CAAC;AAEtC,QAAI,CAAC,WAAW,QAAQ,MAAM,GAAG;AAC/B,YAAM,OAAO,MAAM,IAAI;AACvB,WAAK,CAAC,IAAI;AACV,WAAK,CAAC,IAAI;AACV;AAAA,IACF;AAEA,UAAM,OAAO,cAAc,QAAQ,CAAC;AACpC,UAAM,SAAS,cAAc,QAAQ,CAAC;AACtC,UAAM,UAAU,SAAS;AAEzB,UAAM,QACJ,UAAU,CAAC,MAAM,QAAQ,GAAG,GAAG,MAAM,cAAc,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,GAAG,GAAG,IAAI;AAG5F,QAAI,OAAc;AAClB,QAAI,WAAW,QAAQ,MAAM,GAAG;AAC9B,aAAO,CAAC;AACR,SAAG;AACD,cAAM,YAAY,cAAc,QAAQ,CAAC;AACzC,aAAK,KAAK,SAAS;AAAA,MACrB,SAAS,WAAW,QAAQ,MAAM;AAAA,IACpC;AACA,UAAM,OAAO;AAEb,WAAO,KAAK,KAAK;AACjB,UAAM,KAAK,KAAK;AAAA,EAClB;AAEA,SAAO;AACT;AAEO,SAAS,qBAAqB,QAAiC;AACpE,QAAM,SAAS,IAAI,aAAa;AAEhC,WAAS,IAAI,GAAG,IAAI,OAAO,UAAU;AACnC,QAAI,sBAAsB,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AAAA,EAClD;AAEA,SAAO,OAAO,MAAM;AACtB;AAEA,SAAS,sBACP,QACA,OACA,QACA,OAGQ;AACR,QAAM,QAAQ,OAAO,KAAK;AAC1B,QAAM,EAAE,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,KAAK,IAAI;AAElF,MAAI,QAAQ,EAAG,QAAO,MAAM,KAAK;AAEjC,QAAM,CAAC,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AACpD,gBAAc,QAAQ,aAAa,CAAC;AACpC,gBAAc,QAAQ,MAAM,CAAC;AAE7B,QAAM,SAAS,MAAM,WAAW,IAAI,IAAS;AAC7C,gBAAc,QAAQ,QAAQ,CAAC;AAC/B,MAAI,MAAM,WAAW,EAAG,eAAc,QAAQ,MAAM,CAAC,GAAG,CAAC;AAEzD,aAAW,KAAK,MAAM;AACpB,kBAAc,QAAQ,GAAG,CAAC;AAAA,EAC5B;AAEA,OAAK,SAAS,QAAQ,OAAO,UAAU;AACrC,UAAM,OAAO,OAAO,KAAK;AACzB,UAAM,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI;AACvB,QAAI,IAAI,WAAY,MAAM,WAAW,KAAK,WAAY;AACpD;AAAA,IACF;AACA,YAAQ,sBAAsB,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAC5D;AAEA,SAAO,MAAM,KAAK;AAClB,QAAM,CAAC,IAAI,cAAc,QAAQ,SAAS,MAAM,CAAC,CAAC;AAClD,gBAAc,QAAQ,WAAW,CAAC;AAElC,SAAO;AACT;AAEO,SAAS,sBAAsB,OAAiC;AACrE,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,SAAS,IAAI,aAAa,KAAK;AACrC,QAAM,SAA2B,CAAC;AAClC,QAAM,QAA0B,CAAC;AAEjC,MAAI,UAAU;AACd,MAAI,yBAAyB;AAC7B,MAAI,uBAAuB;AAC3B,MAAI,uBAAuB;AAC3B,MAAI,eAAe;AACnB,MAAI,iBAAiB;AACrB,MAAI,cAAc;AAClB,MAAI,gBAAgB;AAEpB,KAAG;AACD,UAAM,OAAO,OAAO,QAAQ,GAAG;AAC/B,QAAI,YAAY;AAEhB,WAAO,OAAO,MAAM,MAAM,OAAO,OAAO;AACtC,kBAAY,cAAc,QAAQ,SAAS;AAE3C,UAAI,CAAC,WAAW,QAAQ,IAAI,GAAG;AAC7B,cAAM,OAAO,MAAM,IAAI;AACvB,aAAK,CAAC,IAAI;AACV,aAAK,CAAC,IAAI;AACV;AAAA,MACF;AAEA,YAAM,SAAS,cAAc,QAAQ,CAAC;AACtC,YAAM,gBAAgB,SAAS;AAC/B,YAAM,cAAc,SAAS;AAC7B,YAAM,WAAW,SAAS;AAE1B,UAAI,WAA4B;AAChC,UAAI,WAAsB;AAC1B,UAAI;AACJ,UAAI,eAAe;AACjB,cAAM,kBAAkB,cAAc,QAAQ,sBAAsB;AACpE,+BAAuB;AAAA,UACrB;AAAA,UACA,2BAA2B,kBAAkB,uBAAuB;AAAA,QACtE;AAEA,iCAAyB;AACzB,gBAAQ,CAAC,SAAS,WAAW,GAAG,GAAG,iBAAiB,oBAAoB;AAAA,MAC1E,OAAO;AACL,gBAAQ,CAAC,SAAS,WAAW,GAAG,CAAC;AAAA,MACnC;AAEA,YAAM,UAAU,CAAC,CAAC;AAElB,UAAI,aAAa;AACf,cAAM,UAAU;AAChB,cAAM,WAAW;AACjB,+BAAuB,cAAc,QAAQ,oBAAoB;AACjE,cAAM,aAAa,YAAY;AAC/B,uBAAe,cAAc,QAAQ,aAAa,eAAe,CAAC;AAClE,yBAAiB;AAAA,UACf;AAAA,UACA,cAAc,aAAa,eAAe,iBAAiB;AAAA,QAC7D;AAEA,mBAAW,CAAC,sBAAsB,cAAc,cAAc;AAAA,MAChE;AACA,YAAM,WAAW;AAEjB,UAAI,WAAW,QAAQ,IAAI,GAAG;AAC5B,mBAAW,CAAC;AACZ,WAAG;AACD,wBAAc;AACd,0BAAgB;AAChB,gBAAM,mBAAmB,cAAc,QAAQ,CAAC;AAChD,cAAI;AACJ,cAAI,mBAAmB,IAAI;AACzB,+BAAmB,CAAC,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC;AAC9C,qBAAS,IAAI,IAAI,IAAI,kBAAkB,KAAK;AAC1C,oBAAM,SAAS;AACf,4BAAc,cAAc,QAAQ,WAAW;AAC/C,8BAAgB,cAAc,QAAQ,gBAAgB,SAAS,gBAAgB,CAAC;AAChF,oBAAM,aAAa,cAAc,QAAQ,CAAC;AAC1C,+BAAiB,KAAK,CAAC,YAAY,aAAa,aAAa,CAAC;AAAA,YAChE;AAAA,UACF,OAAO;AACL,+BAAmB,CAAC,CAAC,gBAAgB,CAAC;AAAA,UACxC;AACA,mBAAS,KAAK,gBAAgB;AAAA,QAChC,SAAS,WAAW,QAAQ,IAAI;AAAA,MAClC;AACA,YAAM,WAAW;AAEjB,aAAO,KAAK,KAAK;AACjB,YAAM,KAAK,KAAK;AAAA,IAClB;AAEA;AACA,WAAO,MAAM,OAAO;AAAA,EACtB,SAAS,OAAO,MAAM;AAEtB,SAAO;AACT;AAEO,SAAS,sBAAsB,QAAkC;AACtE,MAAI,OAAO,WAAW,EAAG,QAAO;AAEhC,QAAM,SAAS,IAAI,aAAa;AAEhC,WAAS,IAAI,GAAG,IAAI,OAAO,UAAU;AACnC,QAAI,uBAAuB,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAAA,EACrE;AAEA,SAAO,OAAO,MAAM;AACtB;AAEA,SAAS,uBACP,QACA,OACA,QACA,OASQ;AACR,QAAM,QAAQ,OAAO,KAAK;AAC1B,QAAM;AAAA,IACJ,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,MAAM,CAAC,IAAI,WAAW;AACxB,gBAAY,QAAQ,MAAM,CAAC,GAAG,SAAS;AACvC,UAAM,CAAC,IAAI;AACX,UAAM,CAAC,IAAI;AAAA,EACb,WAAW,QAAQ,GAAG;AACpB,WAAO,MAAM,KAAK;AAAA,EACpB;AAEA,QAAM,CAAC,IAAI,cAAc,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAEnD,QAAM,UACH,MAAM,WAAW,IAAI,IAAS,MAAM,WAAW,IAAS,MAAM,UAAU,IAAS;AACpF,gBAAc,QAAQ,QAAQ,CAAC;AAE/B,MAAI,MAAM,WAAW,GAAG;AACtB,UAAM,EAAE,GAAG,cAAc,GAAG,YAAY,IAAI;AAC5C,QAAI,iBAAiB,MAAM,CAAC,GAAG;AAC7B,YAAM,CAAC,IAAI;AAAA,IACb;AACA,UAAM,CAAC,IAAI,cAAc,QAAQ,cAAc,MAAM,CAAC,CAAC;AACvD,UAAM,CAAC,IAAI,cAAc,QAAQ,aAAa,MAAM,CAAC,CAAC;AAAA,EACxD;AAEA,MAAI,UAAU;AACZ,UAAM,EAAE,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,IAAI,MAAM;AAC9D,QAAI,iBAAiB,MAAM,CAAC,GAAG;AAC7B,YAAM,CAAC,IAAI;AACX,YAAM,CAAC,IAAI;AAAA,IACb,WAAW,aAAa,MAAM,CAAC,GAAG;AAChC,YAAM,CAAC,IAAI;AAAA,IACb;AACA,UAAM,CAAC,IAAI,cAAc,QAAQ,cAAc,MAAM,CAAC,CAAC;AACvD,UAAM,CAAC,IAAI,cAAc,QAAQ,UAAU,MAAM,CAAC,CAAC;AACnD,UAAM,CAAC,IAAI,cAAc,QAAQ,YAAY,MAAM,CAAC,CAAC;AAAA,EACvD;AAEA,MAAI,UAAU;AACZ,eAAW,WAAW,UAAU;AAC9B,UAAI,QAAQ,SAAS,EAAG,eAAc,QAAQ,CAAC,QAAQ,QAAQ,CAAC;AAChE,YAAM,aAAa,QAAQ,CAAC,EAAE,CAAC;AAC/B,oBAAc,QAAQ,YAAY,CAAC;AACnC,UAAI,mBAAmB;AACvB,UAAI,qBAAqB;AACzB,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,cAAM,WAAW,QAAQ,CAAC;AAC1B,2BAAmB,cAAc,QAAQ,SAAS,CAAC,GAAI,gBAAgB;AACvE,6BAAqB,cAAc,QAAQ,SAAS,CAAC,GAAI,kBAAkB;AAC3E,sBAAc,QAAQ,SAAS,CAAC,GAAI,CAAC;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAEA,OAAK,SAAS,QAAQ,OAAO,UAAU;AACrC,UAAM,OAAO,OAAO,KAAK;AACzB,UAAM,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI;AACvB,QAAI,IAAI,WAAY,MAAM,WAAW,KAAK,WAAY;AACpD;AAAA,IACF;AACA,YAAQ,uBAAuB,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAC7D;AAEA,MAAI,MAAM,CAAC,IAAI,SAAS;AACtB,gBAAY,QAAQ,MAAM,CAAC,GAAG,OAAO;AACrC,UAAM,CAAC,IAAI;AACX,UAAM,CAAC,IAAI;AAAA,EACb,OAAO;AACL,WAAO,MAAM,KAAK;AAAA,EACpB;AACA,QAAM,CAAC,IAAI,cAAc,QAAQ,WAAW,MAAM,CAAC,CAAC;AAEpD,SAAO;AACT;AAEA,SAAS,YAAY,QAAsB,UAAkB,MAAc;AACzE,KAAG;AACD,WAAO,MAAM,SAAS;AAAA,EACxB,SAAS,EAAE,WAAW;AACxB;;;AHtUO,SAAS,OAAO,UAAqC;AAC1D,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,SAAS,IAAI,aAAa,QAAQ;AACxC,QAAM,UAA6B,CAAC;AACpC,MAAI,YAAY;AAChB,MAAI,eAAe;AACnB,MAAI,aAAa;AACjB,MAAI,eAAe;AACnB,MAAI,aAAa;AAEjB,KAAG;AACD,UAAM,OAAO,OAAO,QAAQ,GAAG;AAC/B,UAAM,OAAsB,CAAC;AAC7B,QAAI,SAAS;AACb,QAAI,UAAU;AACd,gBAAY;AAEZ,WAAO,OAAO,MAAM,MAAM;AACxB,UAAI;AAEJ,kBAAY,cAAc,QAAQ,SAAS;AAC3C,UAAI,YAAY,QAAS,UAAS;AAClC,gBAAU;AAEV,UAAI,WAAW,QAAQ,IAAI,GAAG;AAC5B,uBAAe,cAAc,QAAQ,YAAY;AACjD,qBAAa,cAAc,QAAQ,UAAU;AAC7C,uBAAe,cAAc,QAAQ,YAAY;AAEjD,YAAI,WAAW,QAAQ,IAAI,GAAG;AAC5B,uBAAa,cAAc,QAAQ,UAAU;AAC7C,gBAAM,CAAC,WAAW,cAAc,YAAY,cAAc,UAAU;AAAA,QACtE,OAAO;AACL,gBAAM,CAAC,WAAW,cAAc,YAAY,YAAY;AAAA,QAC1D;AAAA,MACF,OAAO;AACL,cAAM,CAAC,SAAS;AAAA,MAClB;AAEA,WAAK,KAAK,GAAG;AACb,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,OAAQ,MAAK,IAAI;AACtB,YAAQ,KAAK,IAAI;AACjB,WAAO,MAAM,OAAO;AAAA,EACtB,SAAS,OAAO,OAAO;AAEvB,SAAO;AACT;AAEA,SAAS,KAAK,MAA0B;AACtC,OAAK,KAAK,cAAc;AAC1B;AAEA,SAAS,eAAe,GAAqB,GAA6B;AACxE,SAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACnB;AAIO,SAAS,OAAO,SAA8C;AACnE,QAAM,SAAS,IAAI,aAAa;AAChC,MAAI,eAAe;AACnB,MAAI,aAAa;AACjB,MAAI,eAAe;AACnB,MAAI,aAAa;AAEjB,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,UAAM,OAAO,QAAQ,CAAC;AACtB,QAAI,IAAI,EAAG,QAAO,MAAM,SAAS;AACjC,QAAI,KAAK,WAAW,EAAG;AAEvB,QAAI,YAAY;AAEhB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,UAAU,KAAK,CAAC;AACtB,UAAI,IAAI,EAAG,QAAO,MAAM,KAAK;AAE7B,kBAAY,cAAc,QAAQ,QAAQ,CAAC,GAAG,SAAS;AAEvD,UAAI,QAAQ,WAAW,EAAG;AAC1B,qBAAe,cAAc,QAAQ,QAAQ,CAAC,GAAG,YAAY;AAC7D,mBAAa,cAAc,QAAQ,QAAQ,CAAC,GAAG,UAAU;AACzD,qBAAe,cAAc,QAAQ,QAAQ,CAAC,GAAG,YAAY;AAE7D,UAAI,QAAQ,WAAW,EAAG;AAC1B,mBAAa,cAAc,QAAQ,QAAQ,CAAC,GAAG,UAAU;AAAA,IAC3D;AAAA,EACF;AAEA,SAAO,OAAO,MAAM;AACtB;", + "names": [] +} diff --git a/node_modules/@jridgewell/sourcemap-codec/package.json b/node_modules/@jridgewell/sourcemap-codec/package.json new file mode 100644 index 0000000..da55137 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/package.json @@ -0,0 +1,63 @@ +{ + "name": "@jridgewell/sourcemap-codec", + "version": "1.5.5", + "description": "Encode/decode sourcemap mappings", + "keywords": [ + "sourcemap", + "vlq" + ], + "main": "dist/sourcemap-codec.umd.js", + "module": "dist/sourcemap-codec.mjs", + "types": "types/sourcemap-codec.d.cts", + "files": [ + "dist", + "src", + "types" + ], + "exports": { + ".": [ + { + "import": { + "types": "./types/sourcemap-codec.d.mts", + "default": "./dist/sourcemap-codec.mjs" + }, + "default": { + "types": "./types/sourcemap-codec.d.cts", + "default": "./dist/sourcemap-codec.umd.js" + } + }, + "./dist/sourcemap-codec.umd.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "benchmark": "run-s build:code benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.js", + "build": "run-s -n build:code build:types", + "build:code": "node ../../esbuild.mjs sourcemap-codec.ts", + "build:types": "run-s build:types:force build:types:emit build:types:mts", + "build:types:force": "rimraf tsconfig.build.tsbuildinfo", + "build:types:emit": "tsc --project tsconfig.build.json", + "build:types:mts": "node ../../mts-types.mjs", + "clean": "run-s -n clean:code clean:types", + "clean:code": "tsc --build --clean tsconfig.build.json", + "clean:types": "rimraf dist types", + "test": "run-s -n test:types test:only test:format", + "test:format": "prettier --check '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:types": "eslint '{src,test}/**/*.ts'", + "lint": "run-s -n lint:types lint:format", + "lint:format": "npm run test:format -- --write", + "lint:types": "npm run test:types -- --fix", + "prepublishOnly": "npm run-s -n build test" + }, + "homepage": "https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec", + "repository": { + "type": "git", + "url": "git+https://github.com/jridgewell/sourcemaps.git", + "directory": "packages/sourcemap-codec" + }, + "author": "Justin Ridgewell ", + "license": "MIT" +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts b/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts new file mode 100644 index 0000000..d194c2f --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts @@ -0,0 +1,345 @@ +import { StringReader, StringWriter } from './strings'; +import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq'; + +const EMPTY: any[] = []; + +type Line = number; +type Column = number; +type Kind = number; +type Name = number; +type Var = number; +type SourcesIndex = number; +type ScopesIndex = number; + +type Mix = (A & O) | (B & O); + +export type OriginalScope = Mix< + [Line, Column, Line, Column, Kind], + [Line, Column, Line, Column, Kind, Name], + { vars: Var[] } +>; + +export type GeneratedRange = Mix< + [Line, Column, Line, Column], + [Line, Column, Line, Column, SourcesIndex, ScopesIndex], + { + callsite: CallSite | null; + bindings: Binding[]; + isScope: boolean; + } +>; +export type CallSite = [SourcesIndex, Line, Column]; +type Binding = BindingExpressionRange[]; +export type BindingExpressionRange = [Name] | [Name, Line, Column]; + +export function decodeOriginalScopes(input: string): OriginalScope[] { + const { length } = input; + const reader = new StringReader(input); + const scopes: OriginalScope[] = []; + const stack: OriginalScope[] = []; + let line = 0; + + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + + if (!hasMoreVlq(reader, length)) { + const last = stack.pop()!; + last[2] = line; + last[3] = column; + continue; + } + + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 0b0001; + + const scope: OriginalScope = ( + hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind] + ) as OriginalScope; + + let vars: Var[] = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + + scopes.push(scope); + stack.push(scope); + } + + return scopes; +} + +export function encodeOriginalScopes(scopes: OriginalScope[]): string { + const writer = new StringWriter(); + + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + + return writer.flush(); +} + +function _encodeOriginalScopes( + scopes: OriginalScope[], + index: number, + writer: StringWriter, + state: [ + number, // GenColumn + ], +): number { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + + if (index > 0) writer.write(comma); + + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + + const fields = scope.length === 6 ? 0b0001 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + + for (const v of vars) { + encodeInteger(writer, v, 0); + } + + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || (l === endLine && c >= endColumn)) { + break; + } + index = _encodeOriginalScopes(scopes, index, writer, state); + } + + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + + return index; +} + +export function decodeGeneratedRanges(input: string): GeneratedRange[] { + const { length } = input; + const reader = new StringReader(input); + const ranges: GeneratedRange[] = []; + const stack: GeneratedRange[] = []; + + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + + do { + const semi = reader.indexOf(';'); + let genColumn = 0; + + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop()!; + last[2] = genLine; + last[3] = genColumn; + continue; + } + + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 0b0001; + const hasCallsite = fields & 0b0010; + const hasScope = fields & 0b0100; + + let callsite: CallSite | null = null; + let bindings: Binding[] = EMPTY; + let range: GeneratedRange; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0, + ); + + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex] as GeneratedRange; + } else { + range = [genLine, genColumn, 0, 0] as GeneratedRange; + } + + range.isScope = !!hasScope; + + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0, + ); + + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + + if (hasMoreVlq(reader, semi)) { + bindings = []; + do { + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges: BindingExpressionRange[]; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); + } + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + + ranges.push(range); + stack.push(range); + } + + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + + return ranges; +} + +export function encodeGeneratedRanges(ranges: GeneratedRange[]): string { + if (ranges.length === 0) return ''; + + const writer = new StringWriter(); + + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + + return writer.flush(); +} + +function _encodeGeneratedRanges( + ranges: GeneratedRange[], + index: number, + writer: StringWriter, + state: [ + number, // GenLine + number, // GenColumn + number, // DefSourcesIndex + number, // DefScopesIndex + number, // CallSourcesIndex + number, // CallLine + number, // CallColumn + ], +): number { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings, + } = range; + + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + + state[1] = encodeInteger(writer, range[1], state[1]); + + const fields = + (range.length === 6 ? 0b0001 : 0) | (callsite ? 0b0010 : 0) | (isScope ? 0b0100 : 0); + encodeInteger(writer, fields, 0); + + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite!; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1]!, bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2]!, bindingStartColumn); + encodeInteger(writer, expRange[0]!, 0); + } + } + } + + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || (l === endLine && c >= endColumn)) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + + return index; +} + +function catchupLine(writer: StringWriter, lastLine: number, line: number) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts b/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts new file mode 100644 index 0000000..a81f894 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts @@ -0,0 +1,111 @@ +import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq'; +import { StringWriter, StringReader } from './strings'; + +export { + decodeOriginalScopes, + encodeOriginalScopes, + decodeGeneratedRanges, + encodeGeneratedRanges, +} from './scopes'; +export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes'; + +export type SourceMapSegment = + | [number] + | [number, number, number, number] + | [number, number, number, number, number]; +export type SourceMapLine = SourceMapSegment[]; +export type SourceMapMappings = SourceMapLine[]; + +export function decode(mappings: string): SourceMapMappings { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded: SourceMapMappings = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + + do { + const semi = reader.indexOf(';'); + const line: SourceMapLine = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + + while (reader.pos < semi) { + let seg: SourceMapSegment; + + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + + line.push(seg); + reader.pos++; + } + + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + + return decoded; +} + +function sort(line: SourceMapSegment[]) { + line.sort(sortComparator); +} + +function sortComparator(a: SourceMapSegment, b: SourceMapSegment): number { + return a[0] - b[0]; +} + +export function encode(decoded: SourceMapMappings): string; +export function encode(decoded: Readonly): string; +export function encode(decoded: Readonly): string { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + + let genColumn = 0; + + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + + genColumn = encodeInteger(writer, segment[0], genColumn); + + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + + return writer.flush(); +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/strings.ts b/node_modules/@jridgewell/sourcemap-codec/src/strings.ts new file mode 100644 index 0000000..d161965 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/strings.ts @@ -0,0 +1,65 @@ +const bufLength = 1024 * 16; + +// Provide a fallback for older environments. +const td = + typeof TextDecoder !== 'undefined' + ? /* #__PURE__ */ new TextDecoder() + : typeof Buffer !== 'undefined' + ? { + decode(buf: Uint8Array): string { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + }, + } + : { + decode(buf: Uint8Array): string { + let out = ''; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + }, + }; + +export class StringWriter { + pos = 0; + private out = ''; + private buffer = new Uint8Array(bufLength); + + write(v: number): void { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + + flush(): string { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +} + +export class StringReader { + pos = 0; + declare private buffer: string; + + constructor(buffer: string) { + this.buffer = buffer; + } + + next(): number { + return this.buffer.charCodeAt(this.pos++); + } + + peek(): number { + return this.buffer.charCodeAt(this.pos); + } + + indexOf(char: string): number { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +} diff --git a/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts b/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts new file mode 100644 index 0000000..a42c681 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts @@ -0,0 +1,55 @@ +import type { StringReader, StringWriter } from './strings'; + +export const comma = ','.charCodeAt(0); +export const semicolon = ';'.charCodeAt(0); + +const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +const intToChar = new Uint8Array(64); // 64 possible chars. +const charToInt = new Uint8Array(128); // z is 122 in ASCII + +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} + +export function decodeInteger(reader: StringReader, relative: number): number { + let value = 0; + let shift = 0; + let integer = 0; + + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + + const shouldNegate = value & 1; + value >>>= 1; + + if (shouldNegate) { + value = -0x80000000 | -value; + } + + return relative + value; +} + +export function encodeInteger(builder: StringWriter, num: number, relative: number): number { + let delta = num - relative; + + delta = delta < 0 ? (-delta << 1) | 1 : delta << 1; + do { + let clamped = delta & 0b011111; + delta >>>= 5; + if (delta > 0) clamped |= 0b100000; + builder.write(intToChar[clamped]); + } while (delta > 0); + + return num; +} + +export function hasMoreVlq(reader: StringReader, max: number) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts new file mode 100644 index 0000000..c583c75 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts @@ -0,0 +1,50 @@ +type Line = number; +type Column = number; +type Kind = number; +type Name = number; +type Var = number; +type SourcesIndex = number; +type ScopesIndex = number; +type Mix = (A & O) | (B & O); +export type OriginalScope = Mix<[ + Line, + Column, + Line, + Column, + Kind +], [ + Line, + Column, + Line, + Column, + Kind, + Name +], { + vars: Var[]; +}>; +export type GeneratedRange = Mix<[ + Line, + Column, + Line, + Column +], [ + Line, + Column, + Line, + Column, + SourcesIndex, + ScopesIndex +], { + callsite: CallSite | null; + bindings: Binding[]; + isScope: boolean; +}>; +export type CallSite = [SourcesIndex, Line, Column]; +type Binding = BindingExpressionRange[]; +export type BindingExpressionRange = [Name] | [Name, Line, Column]; +export declare function decodeOriginalScopes(input: string): OriginalScope[]; +export declare function encodeOriginalScopes(scopes: OriginalScope[]): string; +export declare function decodeGeneratedRanges(input: string): GeneratedRange[]; +export declare function encodeGeneratedRanges(ranges: GeneratedRange[]): string; +export {}; +//# sourceMappingURL=scopes.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map new file mode 100644 index 0000000..630e647 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAKA,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;CAAC,EAClC;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,IAAI;CAAC,EACxC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;CAAC,EAC5B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,YAAY;IAAE,WAAW;CAAC,EACvD;IACE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK,OAAO,GAAG,sBAAsB,EAAE,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAyCnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAQpE;AA2CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAoGrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAUtE"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts new file mode 100644 index 0000000..c583c75 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts @@ -0,0 +1,50 @@ +type Line = number; +type Column = number; +type Kind = number; +type Name = number; +type Var = number; +type SourcesIndex = number; +type ScopesIndex = number; +type Mix = (A & O) | (B & O); +export type OriginalScope = Mix<[ + Line, + Column, + Line, + Column, + Kind +], [ + Line, + Column, + Line, + Column, + Kind, + Name +], { + vars: Var[]; +}>; +export type GeneratedRange = Mix<[ + Line, + Column, + Line, + Column +], [ + Line, + Column, + Line, + Column, + SourcesIndex, + ScopesIndex +], { + callsite: CallSite | null; + bindings: Binding[]; + isScope: boolean; +}>; +export type CallSite = [SourcesIndex, Line, Column]; +type Binding = BindingExpressionRange[]; +export type BindingExpressionRange = [Name] | [Name, Line, Column]; +export declare function decodeOriginalScopes(input: string): OriginalScope[]; +export declare function encodeOriginalScopes(scopes: OriginalScope[]): string; +export declare function decodeGeneratedRanges(input: string): GeneratedRange[]; +export declare function encodeGeneratedRanges(ranges: GeneratedRange[]): string; +export {}; +//# sourceMappingURL=scopes.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map new file mode 100644 index 0000000..630e647 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAKA,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;CAAC,EAClC;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,IAAI;CAAC,EACxC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;CAAC,EAC5B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,YAAY;IAAE,WAAW;CAAC,EACvD;IACE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK,OAAO,GAAG,sBAAsB,EAAE,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAyCnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAQpE;AA2CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAoGrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAUtE"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts new file mode 100644 index 0000000..5f35e22 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts @@ -0,0 +1,9 @@ +export { decodeOriginalScopes, encodeOriginalScopes, decodeGeneratedRanges, encodeGeneratedRanges, } from './scopes.cts'; +export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes.cts'; +export type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number]; +export type SourceMapLine = SourceMapSegment[]; +export type SourceMapMappings = SourceMapLine[]; +export declare function decode(mappings: string): SourceMapMappings; +export declare function encode(decoded: SourceMapMappings): string; +export declare function encode(decoded: Readonly): string; +//# sourceMappingURL=sourcemap-codec.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map new file mode 100644 index 0000000..7123d52 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-codec.d.ts","sourceRoot":"","sources":["../src/sourcemap-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiD1D;AAUD,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC;AAC3D,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts new file mode 100644 index 0000000..199fb9f --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts @@ -0,0 +1,9 @@ +export { decodeOriginalScopes, encodeOriginalScopes, decodeGeneratedRanges, encodeGeneratedRanges, } from './scopes.mts'; +export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes.mts'; +export type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number]; +export type SourceMapLine = SourceMapSegment[]; +export type SourceMapMappings = SourceMapLine[]; +export declare function decode(mappings: string): SourceMapMappings; +export declare function encode(decoded: SourceMapMappings): string; +export declare function encode(decoded: Readonly): string; +//# sourceMappingURL=sourcemap-codec.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map new file mode 100644 index 0000000..7123d52 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"sourcemap-codec.d.ts","sourceRoot":"","sources":["../src/sourcemap-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiD1D;AAUD,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC;AAC3D,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts new file mode 100644 index 0000000..62faceb --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts @@ -0,0 +1,16 @@ +export declare class StringWriter { + pos: number; + private out; + private buffer; + write(v: number): void; + flush(): string; +} +export declare class StringReader { + pos: number; + private buffer; + constructor(buffer: string); + next(): number; + peek(): number; + indexOf(char: string): number; +} +//# sourceMappingURL=strings.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map new file mode 100644 index 0000000..d3602da --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAuBA,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAE3C,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAStB,KAAK,IAAI,MAAM;CAIhB;AAED,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,QAAgB,MAAM,CAAS;gBAEnB,MAAM,EAAE,MAAM;IAI1B,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK9B"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts new file mode 100644 index 0000000..62faceb --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts @@ -0,0 +1,16 @@ +export declare class StringWriter { + pos: number; + private out; + private buffer; + write(v: number): void; + flush(): string; +} +export declare class StringReader { + pos: number; + private buffer; + constructor(buffer: string); + next(): number; + peek(): number; + indexOf(char: string): number; +} +//# sourceMappingURL=strings.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map new file mode 100644 index 0000000..d3602da --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAuBA,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAE3C,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAStB,KAAK,IAAI,MAAM;CAIhB;AAED,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,QAAgB,MAAM,CAAS;gBAEnB,MAAM,EAAE,MAAM;IAI1B,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK9B"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts new file mode 100644 index 0000000..dbd6602 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts @@ -0,0 +1,7 @@ +import type { StringReader, StringWriter } from './strings.cts'; +export declare const comma: number; +export declare const semicolon: number; +export declare function decodeInteger(reader: StringReader, relative: number): number; +export declare function encodeInteger(builder: StringWriter, num: number, relative: number): number; +export declare function hasMoreVlq(reader: StringReader, max: number): boolean; +//# sourceMappingURL=vlq.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map new file mode 100644 index 0000000..6fdc356 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map @@ -0,0 +1 @@ +{"version":3,"file":"vlq.d.ts","sourceRoot":"","sources":["../src/vlq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,KAAK,QAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,QAAoB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,WAG3D"} \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts new file mode 100644 index 0000000..2c739bc --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts @@ -0,0 +1,7 @@ +import type { StringReader, StringWriter } from './strings.mts'; +export declare const comma: number; +export declare const semicolon: number; +export declare function decodeInteger(reader: StringReader, relative: number): number; +export declare function encodeInteger(builder: StringWriter, num: number, relative: number): number; +export declare function hasMoreVlq(reader: StringReader, max: number): boolean; +//# sourceMappingURL=vlq.d.ts.map \ No newline at end of file diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map new file mode 100644 index 0000000..6fdc356 --- /dev/null +++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"vlq.d.ts","sourceRoot":"","sources":["../src/vlq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,KAAK,QAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,QAAoB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,WAG3D"} \ No newline at end of file diff --git a/node_modules/@vue/compiler-core/LICENSE b/node_modules/@vue/compiler-core/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/compiler-core/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/compiler-core/README.md b/node_modules/@vue/compiler-core/README.md new file mode 100644 index 0000000..b43fc55 --- /dev/null +++ b/node_modules/@vue/compiler-core/README.md @@ -0,0 +1 @@ +# @vue/compiler-core diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js new file mode 100644 index 0000000..01f77d0 --- /dev/null +++ b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js @@ -0,0 +1,6888 @@ +/** +* @vue/compiler-core v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var shared = require('@vue/shared'); +var decode = require('entities/decode'); +var parser = require('@babel/parser'); +var estreeWalker = require('estree-walker'); +var sourceMapJs = require('source-map-js'); + +const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` ); +const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` ); +const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` ); +const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` ); +const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `BaseTransition` +); +const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` ); +const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` ); +const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `createElementBlock` +); +const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` ); +const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `createElementVNode` +); +const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `createCommentVNode` +); +const CREATE_TEXT = /* @__PURE__ */ Symbol( + `createTextVNode` +); +const CREATE_STATIC = /* @__PURE__ */ Symbol( + `createStaticVNode` +); +const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `resolveComponent` +); +const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `resolveDynamicComponent` +); +const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `resolveDirective` +); +const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `resolveFilter` +); +const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `withDirectives` +); +const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` ); +const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` ); +const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` ); +const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `toDisplayString` +); +const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` ); +const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `normalizeClass` +); +const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `normalizeStyle` +); +const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `normalizeProps` +); +const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `guardReactiveProps` +); +const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` ); +const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` ); +const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` ); +const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `toHandlerKey` +); +const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `setBlockTracking` +); +const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` ); +const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` ); +const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` ); +const UNREF = /* @__PURE__ */ Symbol(`unref` ); +const IS_REF = /* @__PURE__ */ Symbol(`isRef` ); +const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` ); +const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` ); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: shared.isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: shared.isString(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // ` this.emitCodePoint(cp, consumed) + ); + } + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || false) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } else if (c === 38) { + this.startEntity(); + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else if (c === 38) { + this.startEntity(); + } + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + { + this.baseState = this.state; + this.state = 33; + this.entityStart = this.index; + this.entityDecoder.startEntity( + this.baseState === 1 || this.baseState === 32 ? decode.DecodingMode.Legacy : decode.DecodingMode.Attribute + ); + } + } + stateInEntity() { + { + const length = this.entityDecoder.write(this.buffer, this.index); + if (length >= 0) { + this.state = this.baseState; + if (length === 0) { + this.index = this.entityStart; + } + } else { + this.index = this.buffer.length - 1; + } + } + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + if (this.state === 33) { + this.entityDecoder.end(); + this.state = this.baseState; + } + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + { + if (this.baseState !== 1 && this.baseState !== 32) { + if (this.sectionStart < this.entityStart) { + this.cbs.onattribdata(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.onattribentity( + decode.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } else { + if (this.sectionStart < this.entityStart) { + this.cbs.ontext(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.ontextentity( + decode.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } + } + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + if (enabled) { + warnDeprecation(key, context, loc, ...args); + } + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_V_MODEL_ON_CONST": 45, + "45": "X_V_MODEL_ON_CONST", + "X_INVALID_EXPRESSION": 46, + "46": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 47, + "47": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 48, + "48": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 49, + "49": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 50, + "50": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 51, + "51": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 52, + "52": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53, + "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 54, + "54": "__EXTEND_POINT__" +}; +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` +}; + +function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + const rootExp = root.type === "Program" ? root.body[0].type === "ExpressionStatement" && root.body[0].expression : root; + estreeWalker.walk(root, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + if (node.type === "Identifier") { + const isLocal = !!knownIds[node.name]; + const isRefed = isReferencedIdentifier(node, parent, parentStack); + if (includeAll || isRefed && !isLocal) { + onIdentifier(node, parent, parentStack, isRefed, isLocal); + } + } else if (node.type === "ObjectProperty" && // eslint-disable-next-line no-restricted-syntax + (parent == null ? void 0 : parent.type) === "ObjectPattern") { + node.inPattern = true; + } else if (isFunctionType(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkFunctionParams( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "BlockStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkBlockDeclarations( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "SwitchStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkSwitchStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "CatchClause" && node.param) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + for (const id of extractIdentifiers(node.param)) { + markScopeIdentifier(node, id, knownIds); + } + } + } else if (isForStatement(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkForStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node !== rootExp && node.scopeIds) { + for (const id of node.scopeIds) { + knownIds[id]--; + if (knownIds[id] === 0) { + delete knownIds[id]; + } + } + } + } + }); +} +function isReferencedIdentifier(id, parent, parentStack) { + if (!parent) { + return true; + } + if (id.name === "arguments") { + return false; + } + if (isReferenced(id, parent, parentStack[parentStack.length - 2])) { + return true; + } + switch (parent.type) { + case "AssignmentExpression": + case "AssignmentPattern": + return true; + case "ObjectProperty": + return parent.key !== id && isInDestructureAssignment(parent, parentStack); + case "ArrayPattern": + return isInDestructureAssignment(parent, parentStack); + } + return false; +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + const body = block.type === "SwitchCase" ? block.consequent : block.body; + for (const stmt of body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } else if (stmt.type === "SwitchStatement") { + walkSwitchStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } +} +function walkSwitchStatement(stmt, isVar, onIdent) { + for (const cs of stmt.cases) { + for (const stmt2 of cs.consequent) { + if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) { + for (const decl of stmt2.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } + } + walkBlockDeclarations(cs, onIdent); + } +} +function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; +} +function markKnownIds(name, knownIds) { + if (name in knownIds) { + knownIds[name]++; + } else { + knownIds[name] = 1; + } +} +function markScopeIdentifier(node, child, knownIds) { + const { name } = child; + if (node.scopeIds && node.scopeIds.has(name)) { + return; + } + markKnownIds(name, knownIds); + (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name); +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +function isReferenced(node, parent, grandparent) { + switch (parent.type) { + // yes: PARENT[NODE] + // yes: NODE.child + // no: parent.NODE + case "MemberExpression": + case "OptionalMemberExpression": + if (parent.property === node) { + return !!parent.computed; + } + return parent.object === node; + case "JSXMemberExpression": + return parent.object === node; + // no: let NODE = init; + // yes: let id = NODE; + case "VariableDeclarator": + return parent.init === node; + // yes: () => NODE + // no: (NODE) => {} + case "ArrowFunctionExpression": + return parent.body === node; + // no: class { #NODE; } + // no: class { get #NODE() {} } + // no: class { #NODE() {} } + // no: class { fn() { return this.#NODE; } } + case "PrivateName": + return false; + // no: class { NODE() {} } + // yes: class { [NODE]() {} } + // no: class { foo(NODE) {} } + case "ClassMethod": + case "ClassPrivateMethod": + case "ObjectMethod": + if (parent.key === node) { + return !!parent.computed; + } + return false; + // yes: { [NODE]: "" } + // no: { NODE: "" } + // depends: { NODE } + // depends: { key: NODE } + case "ObjectProperty": + if (parent.key === node) { + return !!parent.computed; + } + return !grandparent || grandparent.type !== "ObjectPattern"; + // no: class { NODE = value; } + // yes: class { [NODE] = value; } + // yes: class { key = NODE; } + case "ClassProperty": + if (parent.key === node) { + return !!parent.computed; + } + return true; + case "ClassPrivateProperty": + return parent.key !== node; + // no: class NODE {} + // yes: class Foo extends NODE {} + case "ClassDeclaration": + case "ClassExpression": + return parent.superClass === node; + // yes: left = NODE; + // no: NODE = right; + case "AssignmentExpression": + return parent.right === node; + // no: [NODE = foo] = []; + // yes: [foo = NODE] = []; + case "AssignmentPattern": + return parent.right === node; + // no: NODE: for (;;) {} + case "LabeledStatement": + return false; + // no: try {} catch (NODE) {} + case "CatchClause": + return false; + // no: function foo(...NODE) {} + case "RestElement": + return false; + case "BreakStatement": + case "ContinueStatement": + return false; + // no: function NODE() {} + // no: function foo(NODE) {} + case "FunctionDeclaration": + case "FunctionExpression": + return false; + // no: export NODE from "foo"; + // no: export * as NODE from "foo"; + case "ExportNamespaceSpecifier": + case "ExportDefaultSpecifier": + return false; + // no: export { foo as NODE }; + // yes: export { NODE as foo }; + // no: export { NODE as foo } from "foo"; + case "ExportSpecifier": + if (grandparent == null ? void 0 : grandparent.source) { + return false; + } + return parent.local === node; + // no: import NODE from "foo"; + // no: import * as NODE from "foo"; + // no: import { NODE as foo } from "foo"; + // no: import { foo as NODE } from "foo"; + // no: import NODE from "bar"; + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "ImportSpecifier": + return false; + // no: import "foo" assert { NODE: "json" } + case "ImportAttribute": + return false; + // no: <div NODE="foo" /> + case "JSXAttribute": + return false; + // no: [NODE] = []; + // no: ({ NODE }) = []; + case "ObjectPattern": + case "ArrayPattern": + return false; + // no: new.NODE + // no: NODE.target + case "MetaProperty": + return false; + // yes: type X = { someProperty: NODE } + // no: type X = { NODE: OtherType } + case "ObjectTypeProperty": + return parent.key !== node; + // yes: enum X { Foo = NODE } + // no: enum X { NODE } + case "TSEnumMember": + return parent.id !== node; + // yes: { [NODE]: value } + // no: { NODE: value } + case "TSPropertySignature": + if (parent.key === node) { + return !!parent.computed; + } + return true; + } + return true; +} +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + ret = unwrapTSNode(ret); + return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier" && ret.name !== "undefined"; + } catch (e) { + return false; + } +}; +const isMemberExpression = isMemberExpressionNode; +const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + if (ret.type === "Program") { + ret = ret.body[0]; + if (ret.type === "ExpressionStatement") { + ret = ret.expression; + } + } + ret = unwrapTSNode(ret); + return ret.type === "FunctionExpression" || ret.type === "ArrowFunctionExpression"; + } catch (e) { + return false; + } +}; +const isFnExpression = isFnExpressionNode; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (shared.isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVPre(p) { + return p.type === 7 && p.name === "pre"; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !shared.isString(props) && props.type === 14) { + const callee = props.callee; + if (!shared.isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !shared.isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || shared.isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!shared.isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => shared.isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); +} +function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); +} + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: shared.NO, + isPreTag: shared.NO, + isIgnoreNewlineTag: shared.NO, + isCustomElement: shared.NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = decode.decodeHTML(exp); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + { + if (currentProp.name === "for") { + expParseMode = 3 /* Skip */; + } else if (currentProp.name === "slot") { + expParseMode = 1 /* Params */; + } else if (currentProp.name === "on" && currentAttrValue.includes(";")) { + expParseMode = 2 /* Statements */; + } + } + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.arg.loc.source + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = shared.extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = shared.extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (isCompatEnabled( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions + )) { + let hasIf = false; + let hasFor = false; + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 7) { + if (p.name === "if") { + hasIf = true; + } else if (p.name === "for") { + hasFor = true; + } + } + if (hasIf && hasFor) { + warnDeprecation( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions, + el.loc + ); + break; + } + } + } + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + warnDeprecation( + "COMPILER_NATIVE_TEMPLATE", + currentOptions, + el.loc + ); + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) { + if (isSimpleIdentifier(content)) { + exp.ast = null; + return exp; + } + try { + const plugins = currentOptions.expressionPlugins; + const options = { + plugins: plugins ? [...plugins, "typescript"] : ["typescript"] + }; + if (parseMode === 2 /* Statements */) { + exp.ast = parser.parse(` ${content} `, options).program; + } else if (parseMode === 1 /* Params */) { + exp.ast = parser.parseExpression(`(${content})=>{}`, options); + } else { + exp.ast = parser.parseExpression(`(${content})`, options); + } + } catch (e) { + exp.ast = false; + emitError(46, loc.start.offset, e.message); + } + } + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = shared.extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (currentOptions.decodeEntities) { + console.warn( + `[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); +} +function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; +} +function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (` /* ${shared.PatchFlagNames[-1]} */` ) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !shared.isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared.isString(child) || shared.isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !shared.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = shared.NOOP, + isCustomElement = shared.NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = shared.EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && shared.capitalize(shared.camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: shared.NOOP, + addIdentifiers(exp) { + { + if (shared.isString(exp)) { + addId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(addId); + } else if (exp.type === 4) { + addId(exp.content); + } + } + }, + removeIdentifiers(exp) { + { + if (shared.isString(exp)) { + removeId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(removeId); + } else if (exp.type === 4) { + removeId(exp.content); + } + } + }, + hoist(exp) { + if (shared.isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + function addId(id) { + const { identifiers } = context; + if (identifiers[id] === void 0) { + identifiers[id] = 0; + } + identifiers[id]++; + } + function removeId(id) { + context.identifiers[id]--; + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (shared.isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (shared.isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = shared.isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + if (context.map) { + if (node) { + let name; + if (node.type === 4 && !node.isStatic) { + const content = node.content.replace(/^_ctx\./, ""); + if (content !== node.content && isSimpleIdentifier(content)) { + name = content; + } + } + if (node.loc.source) { + addMapping(node.loc.start, name); + } + } + if (newlineIndex === -3 /* Unknown */) { + advancePositionWithMutation(context, code); + } else { + context.offset += code.length; + if (newlineIndex === -2 /* None */) { + context.column += code.length; + } else { + if (newlineIndex === -1 /* End */) { + newlineIndex = code.length - 1; + } + context.line++; + context.column = code.length - newlineIndex; + } + } + if (node && node.loc !== locStub && node.loc.source) { + addMapping(node.loc.end); + } + } + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + function addMapping(loc, name = null) { + const { _names, _mappings } = context.map; + if (name !== null && !_names.has(name)) _names.add(name); + _mappings.add({ + originalLine: loc.line, + originalColumn: loc.column - 1, + // source-map column is 0 based + generatedLine: context.line, + generatedColumn: context.column - 1, + source: filename, + name + }); + } + if (sourceMap) { + context.map = new sourceMapJs.SourceMapGenerator(); + context.map.setSourceContent(filename, context.source); + context.map._sources.add(filename); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const genScopeId = scopeId != null && mode === "module"; + const isSetupInlined = !!options.inline; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + if (mode === "module") { + genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined); + } else { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + if (options.bindingMetadata && !options.inline) { + args.push("$props", "$setup", "$data", "$options"); + } + const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(",") : args.join(", "); + if (isSetupInlined) { + push(`(${signature}) => {`); + } else { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + if (prefixIdentifiers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding} +`, + -1 /* End */ + ); + } else { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}") +`, + -1 /* End */ + ); + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genModulePreamble(ast, context, genScopeId, inline) { + const { + push, + newline, + optimizeImports, + runtimeModuleName, + ssrRuntimeModuleName + } = context; + if (ast.helpers.size) { + const helpers = Array.from(ast.helpers); + if (optimizeImports) { + push( + `import { ${helpers.map((s) => helperNameMap[s]).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + push( + ` +// Binding optimization for webpack code-split +const ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(", ")} +`, + -1 /* End */ + ); + } else { + push( + `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from "${ssrRuntimeModuleName}" +`, + -1 /* End */ + ); + } + if (ast.imports.length) { + genImports(ast.imports, context); + newline(); + } + genHoists(ast.hoists, context); + newline(); + if (!inline) { + push(`export `); + } +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function genImports(importsOptions, context) { + if (!importsOptions.length) { + return; + } + importsOptions.forEach((imports) => { + context.push(`import `); + genNode(imports.exp, context); + context.push(` from '${imports.path}'`); + context.newline(); + }); +} +function isText(n) { + return shared.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => shared.isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (shared.isString(node)) { + push(node, -3 /* Unknown */); + } else if (shared.isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (shared.isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (shared.isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + genTemplateLiteral(node, context); + break; + case 23: + genIfStatement(node, context); + break; + case 24: + genAssignmentExpression(node, context); + break; + case 25: + genSequenceExpression(node, context); + break; + case 26: + genReturnStatement(node, context); + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared.isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${shared.PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(shared.PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => shared.PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = shared.isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (shared.isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (shared.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} +function genTemplateLiteral(node, context) { + const { push, indent, deindent } = context; + push("`"); + const l = node.elements.length; + const multilines = l > 3; + for (let i = 0; i < l; i++) { + const e = node.elements[i]; + if (shared.isString(e)) { + push(e.replace(/(`|\$|\\)/g, "\\$1"), -3 /* Unknown */); + } else { + push("${"); + if (multilines) indent(); + genNode(e, context); + if (multilines) deindent(); + push("}"); + } + } + push("`"); +} +function genIfStatement(node, context) { + const { push, indent, deindent } = context; + const { test, consequent, alternate } = node; + push(`if (`); + genNode(test, context); + push(`) {`); + indent(); + genNode(consequent, context); + deindent(); + push(`}`); + if (alternate) { + push(` else `); + if (alternate.type === 23) { + genIfStatement(alternate, context); + } else { + push(`{`); + indent(); + genNode(alternate, context); + deindent(); + push(`}`); + } + } +} +function genAssignmentExpression(node, context) { + genNode(node.left, context); + context.push(` = `); + genNode(node.right, context); +} +function genSequenceExpression(node, context) { + context.push(`(`); + genNodeList(node.expressions, context); + context.push(`)`); +} +function genReturnStatement({ returns }, context) { + context.push(`return `); + if (shared.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } +} + +const isLiteralWhitelisted = /* @__PURE__ */ shared.makeMap("true,false,null,this"); +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + if (!context.prefixIdentifiers || !node.content.trim()) { + return node; + } + const { inline, bindingMetadata } = context; + const rewriteIdentifier = (raw, parent, id) => { + const type = shared.hasOwn(bindingMetadata, raw) && bindingMetadata[raw]; + if (inline) { + const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id; + const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id; + const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack); + const isNewExpression = parent && isInNewExpression(parentStack); + const wrapWithUnref = (raw2) => { + const wrapped = `${context.helperString(UNREF)}(${raw2})`; + return isNewExpression ? `(${wrapped})` : wrapped; + }; + if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) { + return raw; + } else if (type === "setup-ref") { + return `${raw}.value`; + } else if (type === "setup-maybe-ref") { + return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw); + } else if (type === "setup-let") { + if (isAssignmentLVal) { + const { right: rVal, operator } = parent; + const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1); + const rExpString = stringifyExpression( + processExpression( + createSimpleExpression(rExp, false), + context, + false, + false, + knownIds + ) + ); + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`; + } else if (isUpdateArg) { + id.start = parent.start; + id.end = parent.end; + const { prefix: isPrefix, operator } = parent; + const prefix = isPrefix ? operator : ``; + const postfix = isPrefix ? `` : operator; + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`; + } else if (isDestructureAssignment) { + return raw; + } else { + return wrapWithUnref(raw); + } + } else if (type === "props") { + return shared.genPropsAccessExp(raw); + } else if (type === "props-aliased") { + return shared.genPropsAccessExp(bindingMetadata.__propsAliases[raw]); + } + } else { + if (type && type.startsWith("setup") || type === "literal-const") { + return `$setup.${raw}`; + } else if (type === "props-aliased") { + return `$props['${bindingMetadata.__propsAliases[raw]}']`; + } else if (type) { + return `$${type}.${raw}`; + } + } + return `_ctx.${raw}`; + }; + const rawExp = node.content; + let ast = node.ast; + if (ast === false) { + return node; + } + if (ast === null || !ast && isSimpleIdentifier(rawExp)) { + const isScopeVarReference = context.identifiers[rawExp]; + const isAllowedGlobal = shared.isGloballyAllowed(rawExp); + const isLiteral = isLiteralWhitelisted(rawExp); + if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) { + if (isConst(bindingMetadata[rawExp])) { + node.constType = 1; + } + node.content = rewriteIdentifier(rawExp); + } else if (!isScopeVarReference) { + if (isLiteral) { + node.constType = 3; + } else { + node.constType = 2; + } + } + return node; + } + if (!ast) { + const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`; + try { + ast = parser.parseExpression(source, { + sourceType: "module", + plugins: context.expressionPlugins + }); + } catch (e) { + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + e.message + ) + ); + return node; + } + } + const ids = []; + const parentStack = []; + const knownIds = Object.create(context.identifiers); + walkIdentifiers( + ast, + (node2, parent, _, isReferenced, isLocal) => { + if (isStaticPropertyKey(node2, parent)) { + return; + } + if (node2.name.startsWith("_filter_")) { + return; + } + const needPrefix = isReferenced && canPrefix(node2); + if (needPrefix && !isLocal) { + if (isStaticProperty(parent) && parent.shorthand) { + node2.prefix = `${node2.name}: `; + } + node2.name = rewriteIdentifier(node2.name, parent, node2); + ids.push(node2); + } else { + if (!(needPrefix && isLocal) && (!parent || parent.type !== "CallExpression" && parent.type !== "NewExpression" && parent.type !== "MemberExpression")) { + node2.isConstant = true; + } + ids.push(node2); + } + }, + true, + // invoke on ALL identifiers + parentStack, + knownIds + ); + const children = []; + ids.sort((a, b) => a.start - b.start); + ids.forEach((id, i) => { + const start = id.start - 1; + const end = id.end - 1; + const last = ids[i - 1]; + const leadingText = rawExp.slice(last ? last.end - 1 : 0, start); + if (leadingText.length || id.prefix) { + children.push(leadingText + (id.prefix || ``)); + } + const source = rawExp.slice(start, end); + children.push( + createSimpleExpression( + id.name, + false, + { + start: advancePositionWithClone(node.loc.start, source, start), + end: advancePositionWithClone(node.loc.start, source, end), + source + }, + id.isConstant ? 3 : 0 + ) + ); + if (i === ids.length - 1 && end < rawExp.length) { + children.push(rawExp.slice(end)); + } + }); + let ret; + if (children.length) { + ret = createCompoundExpression(children, node.loc); + ret.ast = ast; + } else { + ret = node; + ret.constType = 3; + } + ret.identifiers = Object.keys(knownIds); + return ret; +} +function canPrefix(id) { + if (shared.isGloballyAllowed(id.name)) { + return false; + } + if (id.name === "require") { + return false; + } + return true; +} +function stringifyExpression(exp) { + if (shared.isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} +function isConst(type) { + return type === "setup-const" || type === "literal-const"; +} + +const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (context.prefixIdentifiers && dir.exp) { + dir.exp = processExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + const isDirKey = keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + if (memo && keyExp && isDirKey) { + { + keyProp.exp = keyExp = processExpression( + keyExp, + context + ); + } + } + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + if (isTemplate) { + if (memo) { + memo.exp = processExpression( + memo.exp, + context + ); + } + if (keyProperty && keyProp.type !== 6) { + keyProperty.value = processExpression( + keyProperty.value, + context + ); + } + } + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + if (context.prefixIdentifiers) { + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + } + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (context.prefixIdentifiers) { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + } + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + if (context.prefixIdentifiers) { + result.source = processExpression( + result.source, + context + ); + if (result.key) { + result.key = processExpression( + result.key, + context, + true + ); + } + if (result.index) { + result.index = processExpression( + result.index, + context, + true + ); + } + if (result.value) { + result.value = processExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + const slotProps = vSlot.exp; + if (context.prefixIdentifiers) { + slotProps && context.addIdentifiers(slotProps); + } + context.scopes.vSlot++; + return () => { + if (context.prefixIdentifiers) { + slotProps && context.removeIdentifiers(slotProps); + } + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + if (!context.ssr && context.prefixIdentifiers) { + hasDynamicSlots = node.props.some( + (prop) => isVSlot(prop) && (hasScopeRef(prop.arg, context.identifiers) || hasScopeRef(prop.exp, context.identifiers)) + ) || children.some((child) => hasScopeRef(child, context.identifiers)); + } + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${shared.slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = shared.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + { + exp = isProp.exp = processExpression(exp, context); + } + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + { + const fromSetup = resolveSetupReference(tag, context); + if (fromSetup) { + return fromSetup; + } + const dotIndex = tag.indexOf("."); + if (dotIndex > 0) { + const ns = resolveSetupReference(tag.slice(0, dotIndex), context); + if (ns) { + return ns + tag.slice(dotIndex); + } + } + } + if (context.selfName && shared.capitalize(shared.camelize(tag)) === context.selfName) { + context.helper(RESOLVE_COMPONENT); + context.components.add(tag + `__self`); + return toValidAssetId(tag, `component`); + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function resolveSetupReference(name, context) { + const bindings = context.bindingMetadata; + if (!bindings || bindings.__isScriptSetup === false) { + return; + } + const camelName = shared.camelize(name); + const PascalName = shared.capitalize(camelName); + const checkType = (type) => { + if (bindings[name] === type) { + return name; + } + if (bindings[camelName] === type) { + return camelName; + } + if (bindings[PascalName] === type) { + return PascalName; + } + }; + const fromConst = checkType("setup-const") || checkType("setup-reactive-const") || checkType("literal-const"); + if (fromConst) { + return context.inline ? ( + // in inline mode, const setup bindings (e.g. imports) can be used as-is + fromConst + ) : `$setup[${JSON.stringify(fromConst)}]`; + } + const fromMaybeRef = checkType("setup-let") || checkType("setup-ref") || checkType("setup-maybe-ref"); + if (fromMaybeRef) { + return context.inline ? ( + // setup scope bindings that may be refs need to be unrefed + `${context.helperString(UNREF)}(${fromMaybeRef})` + ) : `$setup[${JSON.stringify(fromMaybeRef)}]`; + } + const fromProps = checkType("props"); + if (fromProps) { + return `${context.helperString(UNREF)}(${context.inline ? "__props" : "$props"}[${JSON.stringify(fromProps)}])`; + } +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = shared.isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !shared.isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && shared.isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + if (value && context.inline) { + const binding = context.bindingMetadata[value.content]; + if (binding === "setup-let" || binding === "setup-ref" || binding === "setup-maybe-ref") { + isStatic = false; + properties.push( + createObjectProperty( + createSimpleExpression("ref_key", true), + createSimpleExpression(value.content, true, value.loc) + ) + ); + } + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + { + pushMergeArg(); + { + const hasOverridableKeys = mergeArgs.some((arg2) => { + if (arg2.type === 15) { + return arg2.properties.some(({ key }) => { + if (key.type !== 4 || !key.isStatic) { + return true; + } + return key.content !== "class" && key.content !== "style" && !shared.isOn(key.content); + }); + } else { + return true; + } + }); + if (hasOverridableKeys) { + checkCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context, + loc + ); + } + } + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (shared.isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!shared.isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || shared.isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + const fromSetup = resolveSetupReference("v-" + dir.name, context); + if (fromSetup) { + dirArgs.push(fromSetup); + } else { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = shared.camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = shared.camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + { + slotName = p.exp = processExpression(p.exp, context); + } + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = shared.camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + shared.toHandlerKey(shared.camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp, context); + const isInlineStatement = !(isMemberExp || isFnExpression(exp, context)); + const hasMultipleStatements = exp.content.includes(`;`); + if (context.prefixIdentifiers) { + isInlineStatement && context.addIdentifiers(`$event`); + exp = dir.exp = processExpression( + exp, + context, + false, + hasMultipleStatements + ); + isInlineStatement && context.removeIdentifiers(`$event`); + shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once + !context.inVOnce && // runtime constants don't need to be cached + // (this is analyzed by compileScript in SFC <script setup>) + !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component - + // we need to use the original function to preserve arity, + // e.g. <transition> relies on checking cb.length to determine + // transition end handling. Inline function is ok since its arity + // is preserved even when cached. + !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot) + // it must be passed fresh to avoid stale values. + !hasScopeRef(exp, context.identifiers); + if (shouldCache && isMemberExp) { + if (exp.type === 4) { + exp.content = `${exp.content} && ${exp.content}(...args)`; + } else { + exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`]; + } + } + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? ` +//@ts-ignore +` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + context.onError( + createCompilerError(34, loc) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = shared.camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${shared.PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + const maybeRef = context.inline && (bindingType === "setup-let" || bindingType === "setup-ref" || bindingType === "setup-maybe-ref"); + if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) { + context.onError( + createCompilerError(43, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared.camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + if (maybeRef) { + if (bindingType === "setup-ref") { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event)` + ]); + } else { + const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`; + assignmentExp = createCompoundExpression([ + `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event : ${altAssignment})` + ]); + } + } else { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) { + props[1].value = context.cache(props[1].value); + } + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const validDivisionCharRE = /[\w).+\-_$\]]/; +const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } +}; +function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } +} +function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + warnDeprecation( + "COMPILER_FILTERS", + context, + node.loc + ); + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } +} +function wrapFilter(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + false) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = shared.camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...prefixIdentifiers ? [ + // order is important + trackVForSlotScopes, + transformExpression + ] : [], + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn, + bind: transformBind, + model: transformModel + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; + if (!prefixIdentifiers && options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = shared.extend({}, options, { + prefixIdentifiers + }); + const ast = shared.isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers); + if (options.isTS) { + const { expressionPlugins } = options; + if (!expressionPlugins || !expressionPlugins.includes("typescript")) { + options.expressionPlugins = [...expressionPlugins || [], "typescript"]; + } + } + transform( + ast, + shared.extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: shared.extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +exports.generateCodeFrame = shared.generateCodeFrame; +exports.BASE_TRANSITION = BASE_TRANSITION; +exports.BindingTypes = BindingTypes; +exports.CAMELIZE = CAMELIZE; +exports.CAPITALIZE = CAPITALIZE; +exports.CREATE_BLOCK = CREATE_BLOCK; +exports.CREATE_COMMENT = CREATE_COMMENT; +exports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK; +exports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE; +exports.CREATE_SLOTS = CREATE_SLOTS; +exports.CREATE_STATIC = CREATE_STATIC; +exports.CREATE_TEXT = CREATE_TEXT; +exports.CREATE_VNODE = CREATE_VNODE; +exports.CompilerDeprecationTypes = CompilerDeprecationTypes; +exports.ConstantTypes = ConstantTypes; +exports.ElementTypes = ElementTypes; +exports.ErrorCodes = ErrorCodes; +exports.FRAGMENT = FRAGMENT; +exports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS; +exports.IS_MEMO_SAME = IS_MEMO_SAME; +exports.IS_REF = IS_REF; +exports.KEEP_ALIVE = KEEP_ALIVE; +exports.MERGE_PROPS = MERGE_PROPS; +exports.NORMALIZE_CLASS = NORMALIZE_CLASS; +exports.NORMALIZE_PROPS = NORMALIZE_PROPS; +exports.NORMALIZE_STYLE = NORMALIZE_STYLE; +exports.Namespaces = Namespaces; +exports.NodeTypes = NodeTypes; +exports.OPEN_BLOCK = OPEN_BLOCK; +exports.POP_SCOPE_ID = POP_SCOPE_ID; +exports.PUSH_SCOPE_ID = PUSH_SCOPE_ID; +exports.RENDER_LIST = RENDER_LIST; +exports.RENDER_SLOT = RENDER_SLOT; +exports.RESOLVE_COMPONENT = RESOLVE_COMPONENT; +exports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE; +exports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT; +exports.RESOLVE_FILTER = RESOLVE_FILTER; +exports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING; +exports.SUSPENSE = SUSPENSE; +exports.TELEPORT = TELEPORT; +exports.TO_DISPLAY_STRING = TO_DISPLAY_STRING; +exports.TO_HANDLERS = TO_HANDLERS; +exports.TO_HANDLER_KEY = TO_HANDLER_KEY; +exports.TS_NODE_TYPES = TS_NODE_TYPES; +exports.UNREF = UNREF; +exports.WITH_CTX = WITH_CTX; +exports.WITH_DIRECTIVES = WITH_DIRECTIVES; +exports.WITH_MEMO = WITH_MEMO; +exports.advancePositionWithClone = advancePositionWithClone; +exports.advancePositionWithMutation = advancePositionWithMutation; +exports.assert = assert; +exports.baseCompile = baseCompile; +exports.baseParse = baseParse; +exports.buildDirectiveArgs = buildDirectiveArgs; +exports.buildProps = buildProps; +exports.buildSlots = buildSlots; +exports.checkCompatEnabled = checkCompatEnabled; +exports.convertToBlock = convertToBlock; +exports.createArrayExpression = createArrayExpression; +exports.createAssignmentExpression = createAssignmentExpression; +exports.createBlockStatement = createBlockStatement; +exports.createCacheExpression = createCacheExpression; +exports.createCallExpression = createCallExpression; +exports.createCompilerError = createCompilerError; +exports.createCompoundExpression = createCompoundExpression; +exports.createConditionalExpression = createConditionalExpression; +exports.createForLoopParams = createForLoopParams; +exports.createFunctionExpression = createFunctionExpression; +exports.createIfStatement = createIfStatement; +exports.createInterpolation = createInterpolation; +exports.createObjectExpression = createObjectExpression; +exports.createObjectProperty = createObjectProperty; +exports.createReturnStatement = createReturnStatement; +exports.createRoot = createRoot; +exports.createSequenceExpression = createSequenceExpression; +exports.createSimpleExpression = createSimpleExpression; +exports.createStructuralDirectiveTransform = createStructuralDirectiveTransform; +exports.createTemplateLiteral = createTemplateLiteral; +exports.createTransformContext = createTransformContext; +exports.createVNodeCall = createVNodeCall; +exports.errorMessages = errorMessages; +exports.extractIdentifiers = extractIdentifiers; +exports.findDir = findDir; +exports.findProp = findProp; +exports.forAliasRE = forAliasRE; +exports.generate = generate; +exports.getBaseTransformPreset = getBaseTransformPreset; +exports.getConstantType = getConstantType; +exports.getMemoedVNodeCall = getMemoedVNodeCall; +exports.getVNodeBlockHelper = getVNodeBlockHelper; +exports.getVNodeHelper = getVNodeHelper; +exports.hasDynamicKeyVBind = hasDynamicKeyVBind; +exports.hasScopeRef = hasScopeRef; +exports.helperNameMap = helperNameMap; +exports.injectProp = injectProp; +exports.isAllWhitespace = isAllWhitespace; +exports.isCommentOrWhitespace = isCommentOrWhitespace; +exports.isCoreComponent = isCoreComponent; +exports.isFnExpression = isFnExpression; +exports.isFnExpressionBrowser = isFnExpressionBrowser; +exports.isFnExpressionNode = isFnExpressionNode; +exports.isFunctionType = isFunctionType; +exports.isInDestructureAssignment = isInDestructureAssignment; +exports.isInNewExpression = isInNewExpression; +exports.isMemberExpression = isMemberExpression; +exports.isMemberExpressionBrowser = isMemberExpressionBrowser; +exports.isMemberExpressionNode = isMemberExpressionNode; +exports.isReferencedIdentifier = isReferencedIdentifier; +exports.isSimpleIdentifier = isSimpleIdentifier; +exports.isSlotOutlet = isSlotOutlet; +exports.isStaticArgOf = isStaticArgOf; +exports.isStaticExp = isStaticExp; +exports.isStaticProperty = isStaticProperty; +exports.isStaticPropertyKey = isStaticPropertyKey; +exports.isTemplateNode = isTemplateNode; +exports.isText = isText$1; +exports.isVPre = isVPre; +exports.isVSlot = isVSlot; +exports.isWhitespaceText = isWhitespaceText; +exports.locStub = locStub; +exports.noopDirectiveTransform = noopDirectiveTransform; +exports.processExpression = processExpression; +exports.processFor = processFor; +exports.processIf = processIf; +exports.processSlotOutlet = processSlotOutlet; +exports.registerRuntimeHelpers = registerRuntimeHelpers; +exports.resolveComponentType = resolveComponentType; +exports.stringifyExpression = stringifyExpression; +exports.toValidAssetId = toValidAssetId; +exports.trackSlotScopes = trackSlotScopes; +exports.trackVForSlotScopes = trackVForSlotScopes; +exports.transform = transform; +exports.transformBind = transformBind; +exports.transformElement = transformElement; +exports.transformExpression = transformExpression; +exports.transformModel = transformModel; +exports.transformOn = transformOn; +exports.transformVBindShorthand = transformVBindShorthand; +exports.traverseNode = traverseNode; +exports.unwrapTSNode = unwrapTSNode; +exports.validFirstIdentCharRE = validFirstIdentCharRE; +exports.walkBlockDeclarations = walkBlockDeclarations; +exports.walkFunctionParams = walkFunctionParams; +exports.walkIdentifiers = walkIdentifiers; +exports.warnDeprecation = warnDeprecation; diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js new file mode 100644 index 0000000..eae43d0 --- /dev/null +++ b/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js @@ -0,0 +1,6763 @@ +/** +* @vue/compiler-core v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var shared = require('@vue/shared'); +var decode = require('entities/decode'); +var parser = require('@babel/parser'); +var estreeWalker = require('estree-walker'); +var sourceMapJs = require('source-map-js'); + +const FRAGMENT = /* @__PURE__ */ Symbol(``); +const TELEPORT = /* @__PURE__ */ Symbol(``); +const SUSPENSE = /* @__PURE__ */ Symbol(``); +const KEEP_ALIVE = /* @__PURE__ */ Symbol(``); +const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `` +); +const OPEN_BLOCK = /* @__PURE__ */ Symbol(``); +const CREATE_BLOCK = /* @__PURE__ */ Symbol(``); +const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `` +); +const CREATE_VNODE = /* @__PURE__ */ Symbol(``); +const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `` +); +const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `` +); +const CREATE_TEXT = /* @__PURE__ */ Symbol( + `` +); +const CREATE_STATIC = /* @__PURE__ */ Symbol( + `` +); +const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `` +); +const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `` +); +const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `` +); +const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `` +); +const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `` +); +const RENDER_LIST = /* @__PURE__ */ Symbol(``); +const RENDER_SLOT = /* @__PURE__ */ Symbol(``); +const CREATE_SLOTS = /* @__PURE__ */ Symbol(``); +const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `` +); +const MERGE_PROPS = /* @__PURE__ */ Symbol(``); +const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `` +); +const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `` +); +const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `` +); +const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `` +); +const TO_HANDLERS = /* @__PURE__ */ Symbol(``); +const CAMELIZE = /* @__PURE__ */ Symbol(``); +const CAPITALIZE = /* @__PURE__ */ Symbol(``); +const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `` +); +const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `` +); +const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(``); +const POP_SCOPE_ID = /* @__PURE__ */ Symbol(``); +const WITH_CTX = /* @__PURE__ */ Symbol(``); +const UNREF = /* @__PURE__ */ Symbol(``); +const IS_REF = /* @__PURE__ */ Symbol(``); +const WITH_MEMO = /* @__PURE__ */ Symbol(``); +const IS_MEMO_SAME = /* @__PURE__ */ Symbol(``); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: shared.isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: shared.isString(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + { + this.entityDecoder = new decode.EntityDecoder( + decode.htmlDecodeTree, + (cp, consumed) => this.emitCodePoint(cp, consumed) + ); + } + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || false) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } else if (c === 38) { + this.startEntity(); + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else if (c === 38) { + this.startEntity(); + } + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + { + this.baseState = this.state; + this.state = 33; + this.entityStart = this.index; + this.entityDecoder.startEntity( + this.baseState === 1 || this.baseState === 32 ? decode.DecodingMode.Legacy : decode.DecodingMode.Attribute + ); + } + } + stateInEntity() { + { + const length = this.entityDecoder.write(this.buffer, this.index); + if (length >= 0) { + this.state = this.baseState; + if (length === 0) { + this.index = this.entityStart; + } + } else { + this.index = this.buffer.length - 1; + } + } + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + if (this.state === 33) { + this.entityDecoder.end(); + this.state = this.baseState; + } + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + { + if (this.baseState !== 1 && this.baseState !== 32) { + if (this.sectionStart < this.entityStart) { + this.cbs.onattribdata(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.onattribentity( + decode.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } else { + if (this.sectionStart < this.entityStart) { + this.cbs.ontext(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.ontextentity( + decode.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } + } + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_V_MODEL_ON_CONST": 45, + "45": "X_V_MODEL_ON_CONST", + "X_INVALID_EXPRESSION": 46, + "46": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 47, + "47": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 48, + "48": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 49, + "49": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 50, + "50": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 51, + "51": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 52, + "52": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53, + "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 54, + "54": "__EXTEND_POINT__" +}; +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` +}; + +function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + const rootExp = root.type === "Program" ? root.body[0].type === "ExpressionStatement" && root.body[0].expression : root; + estreeWalker.walk(root, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + if (node.type === "Identifier") { + const isLocal = !!knownIds[node.name]; + const isRefed = isReferencedIdentifier(node, parent, parentStack); + if (includeAll || isRefed && !isLocal) { + onIdentifier(node, parent, parentStack, isRefed, isLocal); + } + } else if (node.type === "ObjectProperty" && // eslint-disable-next-line no-restricted-syntax + (parent == null ? void 0 : parent.type) === "ObjectPattern") { + node.inPattern = true; + } else if (isFunctionType(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkFunctionParams( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "BlockStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkBlockDeclarations( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "SwitchStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkSwitchStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "CatchClause" && node.param) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + for (const id of extractIdentifiers(node.param)) { + markScopeIdentifier(node, id, knownIds); + } + } + } else if (isForStatement(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkForStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node !== rootExp && node.scopeIds) { + for (const id of node.scopeIds) { + knownIds[id]--; + if (knownIds[id] === 0) { + delete knownIds[id]; + } + } + } + } + }); +} +function isReferencedIdentifier(id, parent, parentStack) { + if (!parent) { + return true; + } + if (id.name === "arguments") { + return false; + } + if (isReferenced(id, parent, parentStack[parentStack.length - 2])) { + return true; + } + switch (parent.type) { + case "AssignmentExpression": + case "AssignmentPattern": + return true; + case "ObjectProperty": + return parent.key !== id && isInDestructureAssignment(parent, parentStack); + case "ArrayPattern": + return isInDestructureAssignment(parent, parentStack); + } + return false; +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + const body = block.type === "SwitchCase" ? block.consequent : block.body; + for (const stmt of body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } else if (stmt.type === "SwitchStatement") { + walkSwitchStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } +} +function walkSwitchStatement(stmt, isVar, onIdent) { + for (const cs of stmt.cases) { + for (const stmt2 of cs.consequent) { + if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) { + for (const decl of stmt2.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } + } + walkBlockDeclarations(cs, onIdent); + } +} +function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; +} +function markKnownIds(name, knownIds) { + if (name in knownIds) { + knownIds[name]++; + } else { + knownIds[name] = 1; + } +} +function markScopeIdentifier(node, child, knownIds) { + const { name } = child; + if (node.scopeIds && node.scopeIds.has(name)) { + return; + } + markKnownIds(name, knownIds); + (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name); +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +function isReferenced(node, parent, grandparent) { + switch (parent.type) { + // yes: PARENT[NODE] + // yes: NODE.child + // no: parent.NODE + case "MemberExpression": + case "OptionalMemberExpression": + if (parent.property === node) { + return !!parent.computed; + } + return parent.object === node; + case "JSXMemberExpression": + return parent.object === node; + // no: let NODE = init; + // yes: let id = NODE; + case "VariableDeclarator": + return parent.init === node; + // yes: () => NODE + // no: (NODE) => {} + case "ArrowFunctionExpression": + return parent.body === node; + // no: class { #NODE; } + // no: class { get #NODE() {} } + // no: class { #NODE() {} } + // no: class { fn() { return this.#NODE; } } + case "PrivateName": + return false; + // no: class { NODE() {} } + // yes: class { [NODE]() {} } + // no: class { foo(NODE) {} } + case "ClassMethod": + case "ClassPrivateMethod": + case "ObjectMethod": + if (parent.key === node) { + return !!parent.computed; + } + return false; + // yes: { [NODE]: "" } + // no: { NODE: "" } + // depends: { NODE } + // depends: { key: NODE } + case "ObjectProperty": + if (parent.key === node) { + return !!parent.computed; + } + return !grandparent || grandparent.type !== "ObjectPattern"; + // no: class { NODE = value; } + // yes: class { [NODE] = value; } + // yes: class { key = NODE; } + case "ClassProperty": + if (parent.key === node) { + return !!parent.computed; + } + return true; + case "ClassPrivateProperty": + return parent.key !== node; + // no: class NODE {} + // yes: class Foo extends NODE {} + case "ClassDeclaration": + case "ClassExpression": + return parent.superClass === node; + // yes: left = NODE; + // no: NODE = right; + case "AssignmentExpression": + return parent.right === node; + // no: [NODE = foo] = []; + // yes: [foo = NODE] = []; + case "AssignmentPattern": + return parent.right === node; + // no: NODE: for (;;) {} + case "LabeledStatement": + return false; + // no: try {} catch (NODE) {} + case "CatchClause": + return false; + // no: function foo(...NODE) {} + case "RestElement": + return false; + case "BreakStatement": + case "ContinueStatement": + return false; + // no: function NODE() {} + // no: function foo(NODE) {} + case "FunctionDeclaration": + case "FunctionExpression": + return false; + // no: export NODE from "foo"; + // no: export * as NODE from "foo"; + case "ExportNamespaceSpecifier": + case "ExportDefaultSpecifier": + return false; + // no: export { foo as NODE }; + // yes: export { NODE as foo }; + // no: export { NODE as foo } from "foo"; + case "ExportSpecifier": + if (grandparent == null ? void 0 : grandparent.source) { + return false; + } + return parent.local === node; + // no: import NODE from "foo"; + // no: import * as NODE from "foo"; + // no: import { NODE as foo } from "foo"; + // no: import { foo as NODE } from "foo"; + // no: import NODE from "bar"; + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "ImportSpecifier": + return false; + // no: import "foo" assert { NODE: "json" } + case "ImportAttribute": + return false; + // no: <div NODE="foo" /> + case "JSXAttribute": + return false; + // no: [NODE] = []; + // no: ({ NODE }) = []; + case "ObjectPattern": + case "ArrayPattern": + return false; + // no: new.NODE + // no: NODE.target + case "MetaProperty": + return false; + // yes: type X = { someProperty: NODE } + // no: type X = { NODE: OtherType } + case "ObjectTypeProperty": + return parent.key !== node; + // yes: enum X { Foo = NODE } + // no: enum X { NODE } + case "TSEnumMember": + return parent.id !== node; + // yes: { [NODE]: value } + // no: { NODE: value } + case "TSPropertySignature": + if (parent.key === node) { + return !!parent.computed; + } + return true; + } + return true; +} +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + ret = unwrapTSNode(ret); + return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier" && ret.name !== "undefined"; + } catch (e) { + return false; + } +}; +const isMemberExpression = isMemberExpressionNode; +const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + if (ret.type === "Program") { + ret = ret.body[0]; + if (ret.type === "ExpressionStatement") { + ret = ret.expression; + } + } + ret = unwrapTSNode(ret); + return ret.type === "FunctionExpression" || ret.type === "ArrowFunctionExpression"; + } catch (e) { + return false; + } +}; +const isFnExpression = isFnExpressionNode; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (shared.isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVPre(p) { + return p.type === 7 && p.name === "pre"; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !shared.isString(props) && props.type === 14) { + const callee = props.callee; + if (!shared.isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !shared.isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || shared.isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!shared.isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => shared.isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); +} +function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); +} + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: shared.NO, + isPreTag: shared.NO, + isIgnoreNewlineTag: shared.NO, + isCustomElement: shared.NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: false, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = decode.decodeHTML(exp); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + { + if (currentProp.name === "for") { + expParseMode = 3 /* Skip */; + } else if (currentProp.name === "slot") { + expParseMode = 1 /* Params */; + } else if (currentProp.name === "on" && currentAttrValue.includes(";")) { + expParseMode = 2 /* Statements */; + } + } + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.arg.loc.source + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = shared.extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = shared.extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) { + if (isSimpleIdentifier(content)) { + exp.ast = null; + return exp; + } + try { + const plugins = currentOptions.expressionPlugins; + const options = { + plugins: plugins ? [...plugins, "typescript"] : ["typescript"] + }; + if (parseMode === 2 /* Statements */) { + exp.ast = parser.parse(` ${content} `, options).program; + } else if (parseMode === 1 /* Params */) { + exp.ast = parser.parseExpression(`(${content})=>{}`, options); + } else { + exp.ast = parser.parseExpression(`(${content})`, options); + } + } catch (e) { + exp.ast = false; + emitError(46, loc.start.offset, e.message); + } + } + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = shared.extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); +} +function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; +} +function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (``) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !shared.isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared.isString(child) || shared.isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !shared.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = shared.NOOP, + isCustomElement = shared.NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = shared.EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && shared.capitalize(shared.camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: shared.NOOP, + addIdentifiers(exp) { + { + if (shared.isString(exp)) { + addId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(addId); + } else if (exp.type === 4) { + addId(exp.content); + } + } + }, + removeIdentifiers(exp) { + { + if (shared.isString(exp)) { + removeId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(removeId); + } else if (exp.type === 4) { + removeId(exp.content); + } + } + }, + hoist(exp) { + if (shared.isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + function addId(id) { + const { identifiers } = context; + if (identifiers[id] === void 0) { + identifiers[id] = 0; + } + identifiers[id]++; + } + function removeId(id) { + context.identifiers[id]--; + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (shared.isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (shared.isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = shared.isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + if (context.map) { + if (node) { + let name; + if (node.type === 4 && !node.isStatic) { + const content = node.content.replace(/^_ctx\./, ""); + if (content !== node.content && isSimpleIdentifier(content)) { + name = content; + } + } + if (node.loc.source) { + addMapping(node.loc.start, name); + } + } + if (newlineIndex === -3 /* Unknown */) { + advancePositionWithMutation(context, code); + } else { + context.offset += code.length; + if (newlineIndex === -2 /* None */) { + context.column += code.length; + } else { + if (newlineIndex === -1 /* End */) { + newlineIndex = code.length - 1; + } + context.line++; + context.column = code.length - newlineIndex; + } + } + if (node && node.loc !== locStub && node.loc.source) { + addMapping(node.loc.end); + } + } + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + function addMapping(loc, name = null) { + const { _names, _mappings } = context.map; + if (name !== null && !_names.has(name)) _names.add(name); + _mappings.add({ + originalLine: loc.line, + originalColumn: loc.column - 1, + // source-map column is 0 based + generatedLine: context.line, + generatedColumn: context.column - 1, + source: filename, + name + }); + } + if (sourceMap) { + context.map = new sourceMapJs.SourceMapGenerator(); + context.map.setSourceContent(filename, context.source); + context.map._sources.add(filename); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const genScopeId = scopeId != null && mode === "module"; + const isSetupInlined = !!options.inline; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + if (mode === "module") { + genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined); + } else { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + if (options.bindingMetadata && !options.inline) { + args.push("$props", "$setup", "$data", "$options"); + } + const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(",") : args.join(", "); + if (isSetupInlined) { + push(`(${signature}) => {`); + } else { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + if (prefixIdentifiers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding} +`, + -1 /* End */ + ); + } else { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}") +`, + -1 /* End */ + ); + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genModulePreamble(ast, context, genScopeId, inline) { + const { + push, + newline, + optimizeImports, + runtimeModuleName, + ssrRuntimeModuleName + } = context; + if (ast.helpers.size) { + const helpers = Array.from(ast.helpers); + if (optimizeImports) { + push( + `import { ${helpers.map((s) => helperNameMap[s]).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + push( + ` +// Binding optimization for webpack code-split +const ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(", ")} +`, + -1 /* End */ + ); + } else { + push( + `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from "${ssrRuntimeModuleName}" +`, + -1 /* End */ + ); + } + if (ast.imports.length) { + genImports(ast.imports, context); + newline(); + } + genHoists(ast.hoists, context); + newline(); + if (!inline) { + push(`export `); + } +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function genImports(importsOptions, context) { + if (!importsOptions.length) { + return; + } + importsOptions.forEach((imports) => { + context.push(`import `); + genNode(imports.exp, context); + context.push(` from '${imports.path}'`); + context.newline(); + }); +} +function isText(n) { + return shared.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => shared.isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (shared.isString(node)) { + push(node, -3 /* Unknown */); + } else if (shared.isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (shared.isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (shared.isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + genTemplateLiteral(node, context); + break; + case 23: + genIfStatement(node, context); + break; + case 24: + genAssignmentExpression(node, context); + break; + case 25: + genSequenceExpression(node, context); + break; + case 26: + genReturnStatement(node, context); + break; + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared.isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + patchFlagString = String(patchFlag); + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = shared.isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (shared.isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (shared.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} +function genTemplateLiteral(node, context) { + const { push, indent, deindent } = context; + push("`"); + const l = node.elements.length; + const multilines = l > 3; + for (let i = 0; i < l; i++) { + const e = node.elements[i]; + if (shared.isString(e)) { + push(e.replace(/(`|\$|\\)/g, "\\$1"), -3 /* Unknown */); + } else { + push("${"); + if (multilines) indent(); + genNode(e, context); + if (multilines) deindent(); + push("}"); + } + } + push("`"); +} +function genIfStatement(node, context) { + const { push, indent, deindent } = context; + const { test, consequent, alternate } = node; + push(`if (`); + genNode(test, context); + push(`) {`); + indent(); + genNode(consequent, context); + deindent(); + push(`}`); + if (alternate) { + push(` else `); + if (alternate.type === 23) { + genIfStatement(alternate, context); + } else { + push(`{`); + indent(); + genNode(alternate, context); + deindent(); + push(`}`); + } + } +} +function genAssignmentExpression(node, context) { + genNode(node.left, context); + context.push(` = `); + genNode(node.right, context); +} +function genSequenceExpression(node, context) { + context.push(`(`); + genNodeList(node.expressions, context); + context.push(`)`); +} +function genReturnStatement({ returns }, context) { + context.push(`return `); + if (shared.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } +} + +const isLiteralWhitelisted = /* @__PURE__ */ shared.makeMap("true,false,null,this"); +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + if (!context.prefixIdentifiers || !node.content.trim()) { + return node; + } + const { inline, bindingMetadata } = context; + const rewriteIdentifier = (raw, parent, id) => { + const type = shared.hasOwn(bindingMetadata, raw) && bindingMetadata[raw]; + if (inline) { + const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id; + const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id; + const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack); + const isNewExpression = parent && isInNewExpression(parentStack); + const wrapWithUnref = (raw2) => { + const wrapped = `${context.helperString(UNREF)}(${raw2})`; + return isNewExpression ? `(${wrapped})` : wrapped; + }; + if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) { + return raw; + } else if (type === "setup-ref") { + return `${raw}.value`; + } else if (type === "setup-maybe-ref") { + return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw); + } else if (type === "setup-let") { + if (isAssignmentLVal) { + const { right: rVal, operator } = parent; + const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1); + const rExpString = stringifyExpression( + processExpression( + createSimpleExpression(rExp, false), + context, + false, + false, + knownIds + ) + ); + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`; + } else if (isUpdateArg) { + id.start = parent.start; + id.end = parent.end; + const { prefix: isPrefix, operator } = parent; + const prefix = isPrefix ? operator : ``; + const postfix = isPrefix ? `` : operator; + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`; + } else if (isDestructureAssignment) { + return raw; + } else { + return wrapWithUnref(raw); + } + } else if (type === "props") { + return shared.genPropsAccessExp(raw); + } else if (type === "props-aliased") { + return shared.genPropsAccessExp(bindingMetadata.__propsAliases[raw]); + } + } else { + if (type && type.startsWith("setup") || type === "literal-const") { + return `$setup.${raw}`; + } else if (type === "props-aliased") { + return `$props['${bindingMetadata.__propsAliases[raw]}']`; + } else if (type) { + return `$${type}.${raw}`; + } + } + return `_ctx.${raw}`; + }; + const rawExp = node.content; + let ast = node.ast; + if (ast === false) { + return node; + } + if (ast === null || !ast && isSimpleIdentifier(rawExp)) { + const isScopeVarReference = context.identifiers[rawExp]; + const isAllowedGlobal = shared.isGloballyAllowed(rawExp); + const isLiteral = isLiteralWhitelisted(rawExp); + if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) { + if (isConst(bindingMetadata[rawExp])) { + node.constType = 1; + } + node.content = rewriteIdentifier(rawExp); + } else if (!isScopeVarReference) { + if (isLiteral) { + node.constType = 3; + } else { + node.constType = 2; + } + } + return node; + } + if (!ast) { + const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`; + try { + ast = parser.parseExpression(source, { + sourceType: "module", + plugins: context.expressionPlugins + }); + } catch (e) { + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + e.message + ) + ); + return node; + } + } + const ids = []; + const parentStack = []; + const knownIds = Object.create(context.identifiers); + walkIdentifiers( + ast, + (node2, parent, _, isReferenced, isLocal) => { + if (isStaticPropertyKey(node2, parent)) { + return; + } + if (node2.name.startsWith("_filter_")) { + return; + } + const needPrefix = isReferenced && canPrefix(node2); + if (needPrefix && !isLocal) { + if (isStaticProperty(parent) && parent.shorthand) { + node2.prefix = `${node2.name}: `; + } + node2.name = rewriteIdentifier(node2.name, parent, node2); + ids.push(node2); + } else { + if (!(needPrefix && isLocal) && (!parent || parent.type !== "CallExpression" && parent.type !== "NewExpression" && parent.type !== "MemberExpression")) { + node2.isConstant = true; + } + ids.push(node2); + } + }, + true, + // invoke on ALL identifiers + parentStack, + knownIds + ); + const children = []; + ids.sort((a, b) => a.start - b.start); + ids.forEach((id, i) => { + const start = id.start - 1; + const end = id.end - 1; + const last = ids[i - 1]; + const leadingText = rawExp.slice(last ? last.end - 1 : 0, start); + if (leadingText.length || id.prefix) { + children.push(leadingText + (id.prefix || ``)); + } + const source = rawExp.slice(start, end); + children.push( + createSimpleExpression( + id.name, + false, + { + start: advancePositionWithClone(node.loc.start, source, start), + end: advancePositionWithClone(node.loc.start, source, end), + source + }, + id.isConstant ? 3 : 0 + ) + ); + if (i === ids.length - 1 && end < rawExp.length) { + children.push(rawExp.slice(end)); + } + }); + let ret; + if (children.length) { + ret = createCompoundExpression(children, node.loc); + ret.ast = ast; + } else { + ret = node; + ret.constType = 3; + } + ret.identifiers = Object.keys(knownIds); + return ret; +} +function canPrefix(id) { + if (shared.isGloballyAllowed(id.name)) { + return false; + } + if (id.name === "require") { + return false; + } + return true; +} +function stringifyExpression(exp) { + if (shared.isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} +function isConst(type) { + return type === "setup-const" || type === "literal-const"; +} + +const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (context.prefixIdentifiers && dir.exp) { + dir.exp = processExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '""', + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + const isDirKey = keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + if (memo && keyExp && isDirKey) { + { + keyProp.exp = keyExp = processExpression( + keyExp, + context + ); + } + } + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + if (isTemplate) { + if (memo) { + memo.exp = processExpression( + memo.exp, + context + ); + } + if (keyProperty && keyProp.type !== 6) { + keyProperty.value = processExpression( + keyProperty.value, + context + ); + } + } + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + if (context.prefixIdentifiers) { + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + } + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (context.prefixIdentifiers) { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + } + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + if (context.prefixIdentifiers) { + result.source = processExpression( + result.source, + context + ); + if (result.key) { + result.key = processExpression( + result.key, + context, + true + ); + } + if (result.index) { + result.index = processExpression( + result.index, + context, + true + ); + } + if (result.value) { + result.value = processExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + const slotProps = vSlot.exp; + if (context.prefixIdentifiers) { + slotProps && context.addIdentifiers(slotProps); + } + context.scopes.vSlot++; + return () => { + if (context.prefixIdentifiers) { + slotProps && context.removeIdentifiers(slotProps); + } + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + if (!context.ssr && context.prefixIdentifiers) { + hasDynamicSlots = node.props.some( + (prop) => isVSlot(prop) && (hasScopeRef(prop.arg, context.identifiers) || hasScopeRef(prop.exp, context.identifiers)) + ) || children.some((child) => hasScopeRef(child, context.identifiers)); + } + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (``), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = shared.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + { + exp = isProp.exp = processExpression(exp, context); + } + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + { + const fromSetup = resolveSetupReference(tag, context); + if (fromSetup) { + return fromSetup; + } + const dotIndex = tag.indexOf("."); + if (dotIndex > 0) { + const ns = resolveSetupReference(tag.slice(0, dotIndex), context); + if (ns) { + return ns + tag.slice(dotIndex); + } + } + } + if (context.selfName && shared.capitalize(shared.camelize(tag)) === context.selfName) { + context.helper(RESOLVE_COMPONENT); + context.components.add(tag + `__self`); + return toValidAssetId(tag, `component`); + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function resolveSetupReference(name, context) { + const bindings = context.bindingMetadata; + if (!bindings || bindings.__isScriptSetup === false) { + return; + } + const camelName = shared.camelize(name); + const PascalName = shared.capitalize(camelName); + const checkType = (type) => { + if (bindings[name] === type) { + return name; + } + if (bindings[camelName] === type) { + return camelName; + } + if (bindings[PascalName] === type) { + return PascalName; + } + }; + const fromConst = checkType("setup-const") || checkType("setup-reactive-const") || checkType("literal-const"); + if (fromConst) { + return context.inline ? ( + // in inline mode, const setup bindings (e.g. imports) can be used as-is + fromConst + ) : `$setup[${JSON.stringify(fromConst)}]`; + } + const fromMaybeRef = checkType("setup-let") || checkType("setup-ref") || checkType("setup-maybe-ref"); + if (fromMaybeRef) { + return context.inline ? ( + // setup scope bindings that may be refs need to be unrefed + `${context.helperString(UNREF)}(${fromMaybeRef})` + ) : `$setup[${JSON.stringify(fromMaybeRef)}]`; + } + const fromProps = checkType("props"); + if (fromProps) { + return `${context.helperString(UNREF)}(${context.inline ? "__props" : "$props"}[${JSON.stringify(fromProps)}])`; + } +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = shared.isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !shared.isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && shared.isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + if (value && context.inline) { + const binding = context.bindingMetadata[value.content]; + if (binding === "setup-let" || binding === "setup-ref" || binding === "setup-maybe-ref") { + isStatic = false; + properties.push( + createObjectProperty( + createSimpleExpression("ref_key", true), + createSimpleExpression(value.content, true, value.loc) + ) + ); + } + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + { + pushMergeArg(); + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (shared.isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!shared.isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || shared.isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + const fromSetup = resolveSetupReference("v-" + dir.name, context); + if (fromSetup) { + dirArgs.push(fromSetup); + } else { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = shared.camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = shared.camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + { + slotName = p.exp = processExpression(p.exp, context); + } + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = shared.camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + shared.toHandlerKey(shared.camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp, context); + const isInlineStatement = !(isMemberExp || isFnExpression(exp, context)); + const hasMultipleStatements = exp.content.includes(`;`); + if (context.prefixIdentifiers) { + isInlineStatement && context.addIdentifiers(`$event`); + exp = dir.exp = processExpression( + exp, + context, + false, + hasMultipleStatements + ); + isInlineStatement && context.removeIdentifiers(`$event`); + shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once + !context.inVOnce && // runtime constants don't need to be cached + // (this is analyzed by compileScript in SFC <script setup>) + !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component - + // we need to use the original function to preserve arity, + // e.g. <transition> relies on checking cb.length to determine + // transition end handling. Inline function is ok since its arity + // is preserved even when cached. + !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot) + // it must be passed fresh to avoid stale values. + !hasScopeRef(exp, context.identifiers); + if (shouldCache && isMemberExp) { + if (exp.type === 4) { + exp.content = `${exp.content} && ${exp.content}(...args)`; + } else { + exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`]; + } + } + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? ` +//@ts-ignore +` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + context.onError( + createCompilerError(34, loc) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = shared.camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (``) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + const maybeRef = context.inline && (bindingType === "setup-let" || bindingType === "setup-ref" || bindingType === "setup-maybe-ref"); + if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) { + context.onError( + createCompilerError(43, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared.camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + if (maybeRef) { + if (bindingType === "setup-ref") { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event)` + ]); + } else { + const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`; + assignmentExp = createCompoundExpression([ + `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event : ${altAssignment})` + ]); + } + } else { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) { + props[1].value = context.cache(props[1].value); + } + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const validDivisionCharRE = /[\w).+\-_$\]]/; +const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } +}; +function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } +} +function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } +} +function wrapFilter(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + false) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = shared.camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...prefixIdentifiers ? [ + // order is important + trackVForSlotScopes, + transformExpression + ] : [], + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn, + bind: transformBind, + model: transformModel + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; + if (!prefixIdentifiers && options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = shared.extend({}, options, { + prefixIdentifiers + }); + const ast = shared.isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers); + if (options.isTS) { + const { expressionPlugins } = options; + if (!expressionPlugins || !expressionPlugins.includes("typescript")) { + options.expressionPlugins = [...expressionPlugins || [], "typescript"]; + } + } + transform( + ast, + shared.extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: shared.extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +exports.generateCodeFrame = shared.generateCodeFrame; +exports.BASE_TRANSITION = BASE_TRANSITION; +exports.BindingTypes = BindingTypes; +exports.CAMELIZE = CAMELIZE; +exports.CAPITALIZE = CAPITALIZE; +exports.CREATE_BLOCK = CREATE_BLOCK; +exports.CREATE_COMMENT = CREATE_COMMENT; +exports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK; +exports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE; +exports.CREATE_SLOTS = CREATE_SLOTS; +exports.CREATE_STATIC = CREATE_STATIC; +exports.CREATE_TEXT = CREATE_TEXT; +exports.CREATE_VNODE = CREATE_VNODE; +exports.CompilerDeprecationTypes = CompilerDeprecationTypes; +exports.ConstantTypes = ConstantTypes; +exports.ElementTypes = ElementTypes; +exports.ErrorCodes = ErrorCodes; +exports.FRAGMENT = FRAGMENT; +exports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS; +exports.IS_MEMO_SAME = IS_MEMO_SAME; +exports.IS_REF = IS_REF; +exports.KEEP_ALIVE = KEEP_ALIVE; +exports.MERGE_PROPS = MERGE_PROPS; +exports.NORMALIZE_CLASS = NORMALIZE_CLASS; +exports.NORMALIZE_PROPS = NORMALIZE_PROPS; +exports.NORMALIZE_STYLE = NORMALIZE_STYLE; +exports.Namespaces = Namespaces; +exports.NodeTypes = NodeTypes; +exports.OPEN_BLOCK = OPEN_BLOCK; +exports.POP_SCOPE_ID = POP_SCOPE_ID; +exports.PUSH_SCOPE_ID = PUSH_SCOPE_ID; +exports.RENDER_LIST = RENDER_LIST; +exports.RENDER_SLOT = RENDER_SLOT; +exports.RESOLVE_COMPONENT = RESOLVE_COMPONENT; +exports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE; +exports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT; +exports.RESOLVE_FILTER = RESOLVE_FILTER; +exports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING; +exports.SUSPENSE = SUSPENSE; +exports.TELEPORT = TELEPORT; +exports.TO_DISPLAY_STRING = TO_DISPLAY_STRING; +exports.TO_HANDLERS = TO_HANDLERS; +exports.TO_HANDLER_KEY = TO_HANDLER_KEY; +exports.TS_NODE_TYPES = TS_NODE_TYPES; +exports.UNREF = UNREF; +exports.WITH_CTX = WITH_CTX; +exports.WITH_DIRECTIVES = WITH_DIRECTIVES; +exports.WITH_MEMO = WITH_MEMO; +exports.advancePositionWithClone = advancePositionWithClone; +exports.advancePositionWithMutation = advancePositionWithMutation; +exports.assert = assert; +exports.baseCompile = baseCompile; +exports.baseParse = baseParse; +exports.buildDirectiveArgs = buildDirectiveArgs; +exports.buildProps = buildProps; +exports.buildSlots = buildSlots; +exports.checkCompatEnabled = checkCompatEnabled; +exports.convertToBlock = convertToBlock; +exports.createArrayExpression = createArrayExpression; +exports.createAssignmentExpression = createAssignmentExpression; +exports.createBlockStatement = createBlockStatement; +exports.createCacheExpression = createCacheExpression; +exports.createCallExpression = createCallExpression; +exports.createCompilerError = createCompilerError; +exports.createCompoundExpression = createCompoundExpression; +exports.createConditionalExpression = createConditionalExpression; +exports.createForLoopParams = createForLoopParams; +exports.createFunctionExpression = createFunctionExpression; +exports.createIfStatement = createIfStatement; +exports.createInterpolation = createInterpolation; +exports.createObjectExpression = createObjectExpression; +exports.createObjectProperty = createObjectProperty; +exports.createReturnStatement = createReturnStatement; +exports.createRoot = createRoot; +exports.createSequenceExpression = createSequenceExpression; +exports.createSimpleExpression = createSimpleExpression; +exports.createStructuralDirectiveTransform = createStructuralDirectiveTransform; +exports.createTemplateLiteral = createTemplateLiteral; +exports.createTransformContext = createTransformContext; +exports.createVNodeCall = createVNodeCall; +exports.errorMessages = errorMessages; +exports.extractIdentifiers = extractIdentifiers; +exports.findDir = findDir; +exports.findProp = findProp; +exports.forAliasRE = forAliasRE; +exports.generate = generate; +exports.getBaseTransformPreset = getBaseTransformPreset; +exports.getConstantType = getConstantType; +exports.getMemoedVNodeCall = getMemoedVNodeCall; +exports.getVNodeBlockHelper = getVNodeBlockHelper; +exports.getVNodeHelper = getVNodeHelper; +exports.hasDynamicKeyVBind = hasDynamicKeyVBind; +exports.hasScopeRef = hasScopeRef; +exports.helperNameMap = helperNameMap; +exports.injectProp = injectProp; +exports.isAllWhitespace = isAllWhitespace; +exports.isCommentOrWhitespace = isCommentOrWhitespace; +exports.isCoreComponent = isCoreComponent; +exports.isFnExpression = isFnExpression; +exports.isFnExpressionBrowser = isFnExpressionBrowser; +exports.isFnExpressionNode = isFnExpressionNode; +exports.isFunctionType = isFunctionType; +exports.isInDestructureAssignment = isInDestructureAssignment; +exports.isInNewExpression = isInNewExpression; +exports.isMemberExpression = isMemberExpression; +exports.isMemberExpressionBrowser = isMemberExpressionBrowser; +exports.isMemberExpressionNode = isMemberExpressionNode; +exports.isReferencedIdentifier = isReferencedIdentifier; +exports.isSimpleIdentifier = isSimpleIdentifier; +exports.isSlotOutlet = isSlotOutlet; +exports.isStaticArgOf = isStaticArgOf; +exports.isStaticExp = isStaticExp; +exports.isStaticProperty = isStaticProperty; +exports.isStaticPropertyKey = isStaticPropertyKey; +exports.isTemplateNode = isTemplateNode; +exports.isText = isText$1; +exports.isVPre = isVPre; +exports.isVSlot = isVSlot; +exports.isWhitespaceText = isWhitespaceText; +exports.locStub = locStub; +exports.noopDirectiveTransform = noopDirectiveTransform; +exports.processExpression = processExpression; +exports.processFor = processFor; +exports.processIf = processIf; +exports.processSlotOutlet = processSlotOutlet; +exports.registerRuntimeHelpers = registerRuntimeHelpers; +exports.resolveComponentType = resolveComponentType; +exports.stringifyExpression = stringifyExpression; +exports.toValidAssetId = toValidAssetId; +exports.trackSlotScopes = trackSlotScopes; +exports.trackVForSlotScopes = trackVForSlotScopes; +exports.transform = transform; +exports.transformBind = transformBind; +exports.transformElement = transformElement; +exports.transformExpression = transformExpression; +exports.transformModel = transformModel; +exports.transformOn = transformOn; +exports.transformVBindShorthand = transformVBindShorthand; +exports.traverseNode = traverseNode; +exports.unwrapTSNode = unwrapTSNode; +exports.validFirstIdentCharRE = validFirstIdentCharRE; +exports.walkBlockDeclarations = walkBlockDeclarations; +exports.walkFunctionParams = walkFunctionParams; +exports.walkIdentifiers = walkIdentifiers; +exports.warnDeprecation = warnDeprecation; diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.d.ts b/node_modules/@vue/compiler-core/dist/compiler-core.d.ts new file mode 100644 index 0000000..b13ed96 --- /dev/null +++ b/node_modules/@vue/compiler-core/dist/compiler-core.d.ts @@ -0,0 +1,1100 @@ +import { PatchFlags } from '@vue/shared'; +export { generateCodeFrame } from '@vue/shared'; +import { Node as Node$1, Identifier, Function, ObjectProperty, BlockStatement as BlockStatement$1, SwitchCase, Program } from '@babel/types'; +import { ParserPlugin } from '@babel/parser'; + +export declare const FRAGMENT: unique symbol; +export declare const TELEPORT: unique symbol; +export declare const SUSPENSE: unique symbol; +export declare const KEEP_ALIVE: unique symbol; +export declare const BASE_TRANSITION: unique symbol; +export declare const OPEN_BLOCK: unique symbol; +export declare const CREATE_BLOCK: unique symbol; +export declare const CREATE_ELEMENT_BLOCK: unique symbol; +export declare const CREATE_VNODE: unique symbol; +export declare const CREATE_ELEMENT_VNODE: unique symbol; +export declare const CREATE_COMMENT: unique symbol; +export declare const CREATE_TEXT: unique symbol; +export declare const CREATE_STATIC: unique symbol; +export declare const RESOLVE_COMPONENT: unique symbol; +export declare const RESOLVE_DYNAMIC_COMPONENT: unique symbol; +export declare const RESOLVE_DIRECTIVE: unique symbol; +export declare const RESOLVE_FILTER: unique symbol; +export declare const WITH_DIRECTIVES: unique symbol; +export declare const RENDER_LIST: unique symbol; +export declare const RENDER_SLOT: unique symbol; +export declare const CREATE_SLOTS: unique symbol; +export declare const TO_DISPLAY_STRING: unique symbol; +export declare const MERGE_PROPS: unique symbol; +export declare const NORMALIZE_CLASS: unique symbol; +export declare const NORMALIZE_STYLE: unique symbol; +export declare const NORMALIZE_PROPS: unique symbol; +export declare const GUARD_REACTIVE_PROPS: unique symbol; +export declare const TO_HANDLERS: unique symbol; +export declare const CAMELIZE: unique symbol; +export declare const CAPITALIZE: unique symbol; +export declare const TO_HANDLER_KEY: unique symbol; +export declare const SET_BLOCK_TRACKING: unique symbol; +/** + * @deprecated no longer needed in 3.5+ because we no longer hoist element nodes + * but kept for backwards compat + */ +export declare const PUSH_SCOPE_ID: unique symbol; +/** + * @deprecated kept for backwards compat + */ +export declare const POP_SCOPE_ID: unique symbol; +export declare const WITH_CTX: unique symbol; +export declare const UNREF: unique symbol; +export declare const IS_REF: unique symbol; +export declare const WITH_MEMO: unique symbol; +export declare const IS_MEMO_SAME: unique symbol; +export declare const helperNameMap: Record<symbol, string>; +export declare function registerRuntimeHelpers(helpers: Record<symbol, string>): void; + +type OptionalOptions = 'decodeEntities' | 'whitespace' | 'isNativeTag' | 'isBuiltInComponent' | 'expressionPlugins' | keyof CompilerCompatOptions; +type MergedParserOptions = Omit<Required<ParserOptions>, OptionalOptions> & Pick<ParserOptions, OptionalOptions>; +export declare function baseParse(input: string, options?: ParserOptions): RootNode; + +type CompilerCompatConfig = Partial<Record<CompilerDeprecationTypes, boolean | 'suppress-warning'>> & { + MODE?: 2 | 3; +}; +interface CompilerCompatOptions { + compatConfig?: CompilerCompatConfig; +} +export declare enum CompilerDeprecationTypes { + COMPILER_IS_ON_ELEMENT = "COMPILER_IS_ON_ELEMENT", + COMPILER_V_BIND_SYNC = "COMPILER_V_BIND_SYNC", + COMPILER_V_BIND_OBJECT_ORDER = "COMPILER_V_BIND_OBJECT_ORDER", + COMPILER_V_ON_NATIVE = "COMPILER_V_ON_NATIVE", + COMPILER_V_IF_V_FOR_PRECEDENCE = "COMPILER_V_IF_V_FOR_PRECEDENCE", + COMPILER_NATIVE_TEMPLATE = "COMPILER_NATIVE_TEMPLATE", + COMPILER_INLINE_TEMPLATE = "COMPILER_INLINE_TEMPLATE", + COMPILER_FILTERS = "COMPILER_FILTERS" +} +export declare function checkCompatEnabled(key: CompilerDeprecationTypes, context: MergedParserOptions | TransformContext, loc: SourceLocation | null, ...args: any[]): boolean; +export declare function warnDeprecation(key: CompilerDeprecationTypes, context: MergedParserOptions | TransformContext, loc: SourceLocation | null, ...args: any[]): void; + +export type NodeTransform = (node: RootNode | TemplateChildNode, context: TransformContext) => void | (() => void) | (() => void)[]; +export type DirectiveTransform = (dir: DirectiveNode, node: ElementNode, context: TransformContext, augmentor?: (ret: DirectiveTransformResult) => DirectiveTransformResult) => DirectiveTransformResult; +interface DirectiveTransformResult { + props: Property[]; + needRuntime?: boolean | symbol; + ssrTagParts?: TemplateLiteral['elements']; +} +export type StructuralDirectiveTransform = (node: ElementNode, dir: DirectiveNode, context: TransformContext) => void | (() => void); +interface ImportItem { + exp: string | ExpressionNode; + path: string; +} +export interface TransformContext extends Required<Omit<TransformOptions, keyof CompilerCompatOptions>>, CompilerCompatOptions { + selfName: string | null; + root: RootNode; + helpers: Map<symbol, number>; + components: Set<string>; + directives: Set<string>; + hoists: (JSChildNode | null)[]; + imports: ImportItem[]; + temps: number; + cached: (CacheExpression | null)[]; + identifiers: { + [name: string]: number | undefined; + }; + scopes: { + vFor: number; + vSlot: number; + vPre: number; + vOnce: number; + }; + parent: ParentNode | null; + grandParent: ParentNode | null; + childIndex: number; + currentNode: RootNode | TemplateChildNode | null; + inVOnce: boolean; + helper<T extends symbol>(name: T): T; + removeHelper<T extends symbol>(name: T): void; + helperString(name: symbol): string; + replaceNode(node: TemplateChildNode): void; + removeNode(node?: TemplateChildNode): void; + onNodeRemoved(): void; + addIdentifiers(exp: ExpressionNode | string): void; + removeIdentifiers(exp: ExpressionNode | string): void; + hoist(exp: string | JSChildNode | ArrayExpression): SimpleExpressionNode; + cache(exp: JSChildNode, isVNode?: boolean, inVOnce?: boolean): CacheExpression; + constantCache: WeakMap<TemplateChildNode, ConstantTypes>; + filters?: Set<string>; +} +export declare function createTransformContext(root: RootNode, { filename, prefixIdentifiers, hoistStatic, hmr, cacheHandlers, nodeTransforms, directiveTransforms, transformHoist, isBuiltInComponent, isCustomElement, expressionPlugins, scopeId, slotted, ssr, inSSR, ssrCssVars, bindingMetadata, inline, isTS, onError, onWarn, compatConfig, }: TransformOptions): TransformContext; +export declare function transform(root: RootNode, options: TransformOptions): void; +export declare function traverseNode(node: RootNode | TemplateChildNode, context: TransformContext): void; +export declare function createStructuralDirectiveTransform(name: string | RegExp, fn: StructuralDirectiveTransform): NodeTransform; + +export declare const transformElement: NodeTransform; +export declare function resolveComponentType(node: ComponentNode, context: TransformContext, ssr?: boolean): string | symbol | CallExpression; +export type PropsExpression = ObjectExpression | CallExpression | ExpressionNode; +export declare function buildProps(node: ElementNode, context: TransformContext, props: ElementNode['props'] | undefined, isComponent: boolean, isDynamicComponent: boolean, ssr?: boolean): { + props: PropsExpression | undefined; + directives: DirectiveNode[]; + patchFlag: number; + dynamicPropNames: string[]; + shouldUseBlock: boolean; +}; +export declare function buildDirectiveArgs(dir: DirectiveNode, context: TransformContext): ArrayExpression; + +export type Namespace = number; +export declare enum Namespaces { + HTML = 0, + SVG = 1, + MATH_ML = 2 +} +export declare enum NodeTypes { + ROOT = 0, + ELEMENT = 1, + TEXT = 2, + COMMENT = 3, + SIMPLE_EXPRESSION = 4, + INTERPOLATION = 5, + ATTRIBUTE = 6, + DIRECTIVE = 7, + COMPOUND_EXPRESSION = 8, + IF = 9, + IF_BRANCH = 10, + FOR = 11, + TEXT_CALL = 12, + VNODE_CALL = 13, + JS_CALL_EXPRESSION = 14, + JS_OBJECT_EXPRESSION = 15, + JS_PROPERTY = 16, + JS_ARRAY_EXPRESSION = 17, + JS_FUNCTION_EXPRESSION = 18, + JS_CONDITIONAL_EXPRESSION = 19, + JS_CACHE_EXPRESSION = 20, + JS_BLOCK_STATEMENT = 21, + JS_TEMPLATE_LITERAL = 22, + JS_IF_STATEMENT = 23, + JS_ASSIGNMENT_EXPRESSION = 24, + JS_SEQUENCE_EXPRESSION = 25, + JS_RETURN_STATEMENT = 26 +} +export declare enum ElementTypes { + ELEMENT = 0, + COMPONENT = 1, + SLOT = 2, + TEMPLATE = 3 +} +export interface Node { + type: NodeTypes; + loc: SourceLocation; +} +export interface SourceLocation { + start: Position; + end: Position; + source: string; +} +export interface Position { + offset: number; + line: number; + column: number; +} +export type ParentNode = RootNode | ElementNode | IfBranchNode | ForNode; +export type ExpressionNode = SimpleExpressionNode | CompoundExpressionNode; +export type TemplateChildNode = ElementNode | InterpolationNode | CompoundExpressionNode | TextNode | CommentNode | IfNode | IfBranchNode | ForNode | TextCallNode; +export interface RootNode extends Node { + type: NodeTypes.ROOT; + source: string; + children: TemplateChildNode[]; + helpers: Set<symbol>; + components: string[]; + directives: string[]; + hoists: (JSChildNode | null)[]; + imports: ImportItem[]; + cached: (CacheExpression | null)[]; + temps: number; + ssrHelpers?: symbol[]; + codegenNode?: TemplateChildNode | JSChildNode | BlockStatement; + transformed?: boolean; + filters?: string[]; +} +export type ElementNode = PlainElementNode | ComponentNode | SlotOutletNode | TemplateNode; +export interface BaseElementNode extends Node { + type: NodeTypes.ELEMENT; + ns: Namespace; + tag: string; + tagType: ElementTypes; + props: Array<AttributeNode | DirectiveNode>; + children: TemplateChildNode[]; + isSelfClosing?: boolean; + innerLoc?: SourceLocation; +} +export interface PlainElementNode extends BaseElementNode { + tagType: ElementTypes.ELEMENT; + codegenNode: VNodeCall | SimpleExpressionNode | CacheExpression | MemoExpression | undefined; + ssrCodegenNode?: TemplateLiteral; +} +export interface ComponentNode extends BaseElementNode { + tagType: ElementTypes.COMPONENT; + codegenNode: VNodeCall | CacheExpression | MemoExpression | undefined; + ssrCodegenNode?: CallExpression; +} +export interface SlotOutletNode extends BaseElementNode { + tagType: ElementTypes.SLOT; + codegenNode: RenderSlotCall | CacheExpression | undefined; + ssrCodegenNode?: CallExpression; +} +export interface TemplateNode extends BaseElementNode { + tagType: ElementTypes.TEMPLATE; + codegenNode: undefined; +} +export interface TextNode extends Node { + type: NodeTypes.TEXT; + content: string; +} +export interface CommentNode extends Node { + type: NodeTypes.COMMENT; + content: string; +} +export interface AttributeNode extends Node { + type: NodeTypes.ATTRIBUTE; + name: string; + nameLoc: SourceLocation; + value: TextNode | undefined; +} +export interface DirectiveNode extends Node { + type: NodeTypes.DIRECTIVE; + /** + * the normalized name without prefix or shorthands, e.g. "bind", "on" + */ + name: string; + /** + * the raw attribute name, preserving shorthand, and including arg & modifiers + * this is only used during parse. + */ + rawName?: string; + exp: ExpressionNode | undefined; + arg: ExpressionNode | undefined; + modifiers: SimpleExpressionNode[]; + /** + * optional property to cache the expression parse result for v-for + */ + forParseResult?: ForParseResult; +} +/** + * Static types have several levels. + * Higher levels implies lower levels. e.g. a node that can be stringified + * can always be hoisted and skipped for patch. + */ +export declare enum ConstantTypes { + NOT_CONSTANT = 0, + CAN_SKIP_PATCH = 1, + CAN_CACHE = 2, + CAN_STRINGIFY = 3 +} +export interface SimpleExpressionNode extends Node { + type: NodeTypes.SIMPLE_EXPRESSION; + content: string; + isStatic: boolean; + constType: ConstantTypes; + /** + * - `null` means the expression is a simple identifier that doesn't need + * parsing + * - `false` means there was a parsing error + */ + ast?: Node$1 | null | false; + /** + * Indicates this is an identifier for a hoist vnode call and points to the + * hoisted node. + */ + hoisted?: JSChildNode; + /** + * an expression parsed as the params of a function will track + * the identifiers declared inside the function body. + */ + identifiers?: string[]; + isHandlerKey?: boolean; +} +export interface InterpolationNode extends Node { + type: NodeTypes.INTERPOLATION; + content: ExpressionNode; +} +export interface CompoundExpressionNode extends Node { + type: NodeTypes.COMPOUND_EXPRESSION; + /** + * - `null` means the expression is a simple identifier that doesn't need + * parsing + * - `false` means there was a parsing error + */ + ast?: Node$1 | null | false; + children: (SimpleExpressionNode | CompoundExpressionNode | InterpolationNode | TextNode | string | symbol)[]; + /** + * an expression parsed as the params of a function will track + * the identifiers declared inside the function body. + */ + identifiers?: string[]; + isHandlerKey?: boolean; +} +export interface IfNode extends Node { + type: NodeTypes.IF; + branches: IfBranchNode[]; + codegenNode?: IfConditionalExpression | CacheExpression; +} +export interface IfBranchNode extends Node { + type: NodeTypes.IF_BRANCH; + condition: ExpressionNode | undefined; + children: TemplateChildNode[]; + userKey?: AttributeNode | DirectiveNode; + isTemplateIf?: boolean; +} +export interface ForNode extends Node { + type: NodeTypes.FOR; + source: ExpressionNode; + valueAlias: ExpressionNode | undefined; + keyAlias: ExpressionNode | undefined; + objectIndexAlias: ExpressionNode | undefined; + parseResult: ForParseResult; + children: TemplateChildNode[]; + codegenNode?: ForCodegenNode; +} +export interface ForParseResult { + source: ExpressionNode; + value: ExpressionNode | undefined; + key: ExpressionNode | undefined; + index: ExpressionNode | undefined; + finalized: boolean; +} +export interface TextCallNode extends Node { + type: NodeTypes.TEXT_CALL; + content: TextNode | InterpolationNode | CompoundExpressionNode; + codegenNode: CallExpression | SimpleExpressionNode; +} +export type TemplateTextChildNode = TextNode | InterpolationNode | CompoundExpressionNode; +export interface VNodeCall extends Node { + type: NodeTypes.VNODE_CALL; + tag: string | symbol | CallExpression; + props: PropsExpression | undefined; + children: TemplateChildNode[] | TemplateTextChildNode | SlotsExpression | ForRenderListExpression | SimpleExpressionNode | CacheExpression | undefined; + patchFlag: PatchFlags | undefined; + dynamicProps: string | SimpleExpressionNode | undefined; + directives: DirectiveArguments | undefined; + isBlock: boolean; + disableTracking: boolean; + isComponent: boolean; +} +export type JSChildNode = VNodeCall | CallExpression | ObjectExpression | ArrayExpression | ExpressionNode | FunctionExpression | ConditionalExpression | CacheExpression | AssignmentExpression | SequenceExpression; +export interface CallExpression extends Node { + type: NodeTypes.JS_CALL_EXPRESSION; + callee: string | symbol; + arguments: (string | symbol | JSChildNode | SSRCodegenNode | TemplateChildNode | TemplateChildNode[])[]; +} +export interface ObjectExpression extends Node { + type: NodeTypes.JS_OBJECT_EXPRESSION; + properties: Array<Property>; +} +export interface Property extends Node { + type: NodeTypes.JS_PROPERTY; + key: ExpressionNode; + value: JSChildNode; +} +export interface ArrayExpression extends Node { + type: NodeTypes.JS_ARRAY_EXPRESSION; + elements: Array<string | Node>; +} +export interface FunctionExpression extends Node { + type: NodeTypes.JS_FUNCTION_EXPRESSION; + params: ExpressionNode | string | (ExpressionNode | string)[] | undefined; + returns?: TemplateChildNode | TemplateChildNode[] | JSChildNode; + body?: BlockStatement | IfStatement; + newline: boolean; + /** + * This flag is for codegen to determine whether it needs to generate the + * withScopeId() wrapper + */ + isSlot: boolean; + /** + * __COMPAT__ only, indicates a slot function that should be excluded from + * the legacy $scopedSlots instance property. + */ + isNonScopedSlot?: boolean; +} +export interface ConditionalExpression extends Node { + type: NodeTypes.JS_CONDITIONAL_EXPRESSION; + test: JSChildNode; + consequent: JSChildNode; + alternate: JSChildNode; + newline: boolean; +} +export interface CacheExpression extends Node { + type: NodeTypes.JS_CACHE_EXPRESSION; + index: number; + value: JSChildNode; + needPauseTracking: boolean; + inVOnce: boolean; + needArraySpread: boolean; +} +export interface MemoExpression extends CallExpression { + callee: typeof WITH_MEMO; + arguments: [ExpressionNode, MemoFactory, string, string]; +} +interface MemoFactory extends FunctionExpression { + returns: BlockCodegenNode; +} +export type SSRCodegenNode = BlockStatement | TemplateLiteral | IfStatement | AssignmentExpression | ReturnStatement | SequenceExpression; +export interface BlockStatement extends Node { + type: NodeTypes.JS_BLOCK_STATEMENT; + body: (JSChildNode | IfStatement)[]; +} +export interface TemplateLiteral extends Node { + type: NodeTypes.JS_TEMPLATE_LITERAL; + elements: (string | JSChildNode)[]; +} +export interface IfStatement extends Node { + type: NodeTypes.JS_IF_STATEMENT; + test: ExpressionNode; + consequent: BlockStatement; + alternate: IfStatement | BlockStatement | ReturnStatement | undefined; +} +export interface AssignmentExpression extends Node { + type: NodeTypes.JS_ASSIGNMENT_EXPRESSION; + left: SimpleExpressionNode; + right: JSChildNode; +} +export interface SequenceExpression extends Node { + type: NodeTypes.JS_SEQUENCE_EXPRESSION; + expressions: JSChildNode[]; +} +export interface ReturnStatement extends Node { + type: NodeTypes.JS_RETURN_STATEMENT; + returns: TemplateChildNode | TemplateChildNode[] | JSChildNode; +} +export interface DirectiveArguments extends ArrayExpression { + elements: DirectiveArgumentNode[]; +} +export interface DirectiveArgumentNode extends ArrayExpression { + elements: [string] | [string, ExpressionNode] | [string, ExpressionNode, ExpressionNode] | [string, ExpressionNode, ExpressionNode, ObjectExpression]; +} +export interface RenderSlotCall extends CallExpression { + callee: typeof RENDER_SLOT; + arguments: [string, string | ExpressionNode] | [string, string | ExpressionNode, PropsExpression] | [ + string, + string | ExpressionNode, + PropsExpression | '{}', + TemplateChildNode[] + ]; +} +export type SlotsExpression = SlotsObjectExpression | DynamicSlotsExpression; +export interface SlotsObjectExpression extends ObjectExpression { + properties: SlotsObjectProperty[]; +} +export interface SlotsObjectProperty extends Property { + value: SlotFunctionExpression; +} +export interface SlotFunctionExpression extends FunctionExpression { + returns: TemplateChildNode[] | CacheExpression; +} +export interface DynamicSlotsExpression extends CallExpression { + callee: typeof CREATE_SLOTS; + arguments: [SlotsObjectExpression, DynamicSlotEntries]; +} +export interface DynamicSlotEntries extends ArrayExpression { + elements: (ConditionalDynamicSlotNode | ListDynamicSlotNode)[]; +} +export interface ConditionalDynamicSlotNode extends ConditionalExpression { + consequent: DynamicSlotNode; + alternate: DynamicSlotNode | SimpleExpressionNode; +} +export interface ListDynamicSlotNode extends CallExpression { + callee: typeof RENDER_LIST; + arguments: [ExpressionNode, ListDynamicSlotIterator]; +} +export interface ListDynamicSlotIterator extends FunctionExpression { + returns: DynamicSlotNode; +} +export interface DynamicSlotNode extends ObjectExpression { + properties: [Property, DynamicSlotFnProperty]; +} +export interface DynamicSlotFnProperty extends Property { + value: SlotFunctionExpression; +} +export type BlockCodegenNode = VNodeCall | RenderSlotCall; +export interface IfConditionalExpression extends ConditionalExpression { + consequent: BlockCodegenNode | MemoExpression; + alternate: BlockCodegenNode | IfConditionalExpression | MemoExpression; +} +export interface ForCodegenNode extends VNodeCall { + isBlock: true; + tag: typeof FRAGMENT; + props: undefined; + children: ForRenderListExpression; + patchFlag: PatchFlags; + disableTracking: boolean; +} +export interface ForRenderListExpression extends CallExpression { + callee: typeof RENDER_LIST; + arguments: [ExpressionNode, ForIteratorExpression]; +} +export interface ForIteratorExpression extends FunctionExpression { + returns?: BlockCodegenNode; +} +export declare const locStub: SourceLocation; +export declare function createRoot(children: TemplateChildNode[], source?: string): RootNode; +export declare function createVNodeCall(context: TransformContext | null, tag: VNodeCall['tag'], props?: VNodeCall['props'], children?: VNodeCall['children'], patchFlag?: VNodeCall['patchFlag'], dynamicProps?: VNodeCall['dynamicProps'], directives?: VNodeCall['directives'], isBlock?: VNodeCall['isBlock'], disableTracking?: VNodeCall['disableTracking'], isComponent?: VNodeCall['isComponent'], loc?: SourceLocation): VNodeCall; +export declare function createArrayExpression(elements: ArrayExpression['elements'], loc?: SourceLocation): ArrayExpression; +export declare function createObjectExpression(properties: ObjectExpression['properties'], loc?: SourceLocation): ObjectExpression; +export declare function createObjectProperty(key: Property['key'] | string, value: Property['value']): Property; +export declare function createSimpleExpression(content: SimpleExpressionNode['content'], isStatic?: SimpleExpressionNode['isStatic'], loc?: SourceLocation, constType?: ConstantTypes): SimpleExpressionNode; +export declare function createInterpolation(content: InterpolationNode['content'] | string, loc: SourceLocation): InterpolationNode; +export declare function createCompoundExpression(children: CompoundExpressionNode['children'], loc?: SourceLocation): CompoundExpressionNode; +type InferCodegenNodeType<T> = T extends typeof RENDER_SLOT ? RenderSlotCall : CallExpression; +export declare function createCallExpression<T extends CallExpression['callee']>(callee: T, args?: CallExpression['arguments'], loc?: SourceLocation): InferCodegenNodeType<T>; +export declare function createFunctionExpression(params: FunctionExpression['params'], returns?: FunctionExpression['returns'], newline?: boolean, isSlot?: boolean, loc?: SourceLocation): FunctionExpression; +export declare function createConditionalExpression(test: ConditionalExpression['test'], consequent: ConditionalExpression['consequent'], alternate: ConditionalExpression['alternate'], newline?: boolean): ConditionalExpression; +export declare function createCacheExpression(index: number, value: JSChildNode, needPauseTracking?: boolean, inVOnce?: boolean): CacheExpression; +export declare function createBlockStatement(body: BlockStatement['body']): BlockStatement; +export declare function createTemplateLiteral(elements: TemplateLiteral['elements']): TemplateLiteral; +export declare function createIfStatement(test: IfStatement['test'], consequent: IfStatement['consequent'], alternate?: IfStatement['alternate']): IfStatement; +export declare function createAssignmentExpression(left: AssignmentExpression['left'], right: AssignmentExpression['right']): AssignmentExpression; +export declare function createSequenceExpression(expressions: SequenceExpression['expressions']): SequenceExpression; +export declare function createReturnStatement(returns: ReturnStatement['returns']): ReturnStatement; +export declare function getVNodeHelper(ssr: boolean, isComponent: boolean): typeof CREATE_VNODE | typeof CREATE_ELEMENT_VNODE; +export declare function getVNodeBlockHelper(ssr: boolean, isComponent: boolean): typeof CREATE_BLOCK | typeof CREATE_ELEMENT_BLOCK; +export declare function convertToBlock(node: VNodeCall, { helper, removeHelper, inSSR }: TransformContext): void; + +export interface CompilerError extends SyntaxError { + code: number | string; + loc?: SourceLocation; +} +export interface CoreCompilerError extends CompilerError { + code: ErrorCodes; +} +type InferCompilerError<T> = T extends ErrorCodes ? CoreCompilerError : CompilerError; +export declare function createCompilerError<T extends number>(code: T, loc?: SourceLocation, messages?: { + [code: number]: string; +}, additionalMessage?: string): InferCompilerError<T>; +export declare enum ErrorCodes { + ABRUPT_CLOSING_OF_EMPTY_COMMENT = 0, + CDATA_IN_HTML_CONTENT = 1, + DUPLICATE_ATTRIBUTE = 2, + END_TAG_WITH_ATTRIBUTES = 3, + END_TAG_WITH_TRAILING_SOLIDUS = 4, + EOF_BEFORE_TAG_NAME = 5, + EOF_IN_CDATA = 6, + EOF_IN_COMMENT = 7, + EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT = 8, + EOF_IN_TAG = 9, + INCORRECTLY_CLOSED_COMMENT = 10, + INCORRECTLY_OPENED_COMMENT = 11, + INVALID_FIRST_CHARACTER_OF_TAG_NAME = 12, + MISSING_ATTRIBUTE_VALUE = 13, + MISSING_END_TAG_NAME = 14, + MISSING_WHITESPACE_BETWEEN_ATTRIBUTES = 15, + NESTED_COMMENT = 16, + UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME = 17, + UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE = 18, + UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME = 19, + UNEXPECTED_NULL_CHARACTER = 20, + UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME = 21, + UNEXPECTED_SOLIDUS_IN_TAG = 22, + X_INVALID_END_TAG = 23, + X_MISSING_END_TAG = 24, + X_MISSING_INTERPOLATION_END = 25, + X_MISSING_DIRECTIVE_NAME = 26, + X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END = 27, + X_V_IF_NO_EXPRESSION = 28, + X_V_IF_SAME_KEY = 29, + X_V_ELSE_NO_ADJACENT_IF = 30, + X_V_FOR_NO_EXPRESSION = 31, + X_V_FOR_MALFORMED_EXPRESSION = 32, + X_V_FOR_TEMPLATE_KEY_PLACEMENT = 33, + X_V_BIND_NO_EXPRESSION = 34, + X_V_ON_NO_EXPRESSION = 35, + X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET = 36, + X_V_SLOT_MIXED_SLOT_USAGE = 37, + X_V_SLOT_DUPLICATE_SLOT_NAMES = 38, + X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN = 39, + X_V_SLOT_MISPLACED = 40, + X_V_MODEL_NO_EXPRESSION = 41, + X_V_MODEL_MALFORMED_EXPRESSION = 42, + X_V_MODEL_ON_SCOPE_VARIABLE = 43, + X_V_MODEL_ON_PROPS = 44, + X_V_MODEL_ON_CONST = 45, + X_INVALID_EXPRESSION = 46, + X_KEEP_ALIVE_INVALID_CHILDREN = 47, + X_PREFIX_ID_NOT_SUPPORTED = 48, + X_MODULE_MODE_NOT_SUPPORTED = 49, + X_CACHE_HANDLER_NOT_SUPPORTED = 50, + X_SCOPE_ID_NOT_SUPPORTED = 51, + X_VNODE_HOOKS = 52, + X_V_BIND_INVALID_SAME_NAME_ARGUMENT = 53, + __EXTEND_POINT__ = 54 +} +export declare const errorMessages: Record<ErrorCodes, string>; + +interface ErrorHandlingOptions { + onWarn?: (warning: CompilerError) => void; + onError?: (error: CompilerError) => void; +} +export interface ParserOptions extends ErrorHandlingOptions, CompilerCompatOptions { + /** + * Base mode is platform agnostic and only parses HTML-like template syntax, + * treating all tags the same way. Specific tag parsing behavior can be + * configured by higher-level compilers. + * + * HTML mode adds additional logic for handling special parsing behavior in + * `<script>`, `<style>`,`<title>` and `<textarea>`. + * The logic is handled inside compiler-core for efficiency. + * + * SFC mode treats content of all root-level tags except `<template>` as plain + * text. + */ + parseMode?: 'base' | 'html' | 'sfc'; + /** + * Specify the root namespace to use when parsing a template. + * Defaults to `Namespaces.HTML` (0). + */ + ns?: Namespaces; + /** + * e.g. platform native elements, e.g. `<div>` for browsers + */ + isNativeTag?: (tag: string) => boolean; + /** + * e.g. native elements that can self-close, e.g. `<img>`, `<br>`, `<hr>` + */ + isVoidTag?: (tag: string) => boolean; + /** + * e.g. elements that should preserve whitespace inside, e.g. `<pre>` + */ + isPreTag?: (tag: string) => boolean; + /** + * Elements that should ignore the first newline token per parinsg spec + * e.g. `<textarea>` and `<pre>` + */ + isIgnoreNewlineTag?: (tag: string) => boolean; + /** + * Platform-specific built-in components e.g. `<Transition>` + */ + isBuiltInComponent?: (tag: string) => symbol | void; + /** + * Separate option for end users to extend the native elements list + */ + isCustomElement?: (tag: string) => boolean | void; + /** + * Get tag namespace + */ + getNamespace?: (tag: string, parent: ElementNode | undefined, rootNamespace: Namespace) => Namespace; + /** + * @default ['{{', '}}'] + */ + delimiters?: [string, string]; + /** + * Whitespace handling strategy + * @default 'condense' + */ + whitespace?: 'preserve' | 'condense'; + /** + * Only used for DOM compilers that runs in the browser. + * In non-browser builds, this option is ignored. + */ + decodeEntities?: (rawText: string, asAttr: boolean) => string; + /** + * Whether to keep comments in the templates AST. + * This defaults to `true` in development and `false` in production builds. + */ + comments?: boolean; + /** + * Parse JavaScript expressions with Babel. + * @default false + */ + prefixIdentifiers?: boolean; + /** + * A list of parser plugins to enable for `@babel/parser`, which is used to + * parse expressions in bindings and interpolations. + * https://babeljs.io/docs/en/next/babel-parser#plugins + */ + expressionPlugins?: ParserPlugin[]; +} +export type HoistTransform = (children: TemplateChildNode[], context: TransformContext, parent: ParentNode) => void; +export declare enum BindingTypes { + /** + * returned from data() + */ + DATA = "data", + /** + * declared as a prop + */ + PROPS = "props", + /** + * a local alias of a `<script setup>` destructured prop. + * the original is stored in __propsAliases of the bindingMetadata object. + */ + PROPS_ALIASED = "props-aliased", + /** + * a let binding (may or may not be a ref) + */ + SETUP_LET = "setup-let", + /** + * a const binding that can never be a ref. + * these bindings don't need `unref()` calls when processed in inlined + * template expressions. + */ + SETUP_CONST = "setup-const", + /** + * a const binding that does not need `unref()`, but may be mutated. + */ + SETUP_REACTIVE_CONST = "setup-reactive-const", + /** + * a const binding that may be a ref. + */ + SETUP_MAYBE_REF = "setup-maybe-ref", + /** + * bindings that are guaranteed to be refs + */ + SETUP_REF = "setup-ref", + /** + * declared by other options, e.g. computed, inject + */ + OPTIONS = "options", + /** + * a literal constant, e.g. 'foo', 1, true + */ + LITERAL_CONST = "literal-const" +} +export type BindingMetadata = { + [key: string]: BindingTypes | undefined; +} & { + __isScriptSetup?: boolean; + __propsAliases?: Record<string, string>; +}; +interface SharedTransformCodegenOptions { + /** + * Transform expressions like {{ foo }} to `_ctx.foo`. + * If this option is false, the generated code will be wrapped in a + * `with (this) { ... }` block. + * - This is force-enabled in module mode, since modules are by default strict + * and cannot use `with` + * @default mode === 'module' + */ + prefixIdentifiers?: boolean; + /** + * Control whether generate SSR-optimized render functions instead. + * The resulting function must be attached to the component via the + * `ssrRender` option instead of `render`. + * + * When compiler generates code for SSR's fallback branch, we need to set it to false: + * - context.ssr = false + * + * see `subTransform` in `ssrTransformComponent.ts` + */ + ssr?: boolean; + /** + * Indicates whether the compiler generates code for SSR, + * it is always true when generating code for SSR, + * regardless of whether we are generating code for SSR's fallback branch, + * this means that when the compiler generates code for SSR's fallback branch: + * - context.ssr = false + * - context.inSSR = true + */ + inSSR?: boolean; + /** + * Optional binding metadata analyzed from script - used to optimize + * binding access when `prefixIdentifiers` is enabled. + */ + bindingMetadata?: BindingMetadata; + /** + * Compile the function for inlining inside setup(). + * This allows the function to directly access setup() local bindings. + */ + inline?: boolean; + /** + * Indicates that transforms and codegen should try to output valid TS code + */ + isTS?: boolean; + /** + * Filename for source map generation. + * Also used for self-recursive reference in templates + * @default 'template.vue.html' + */ + filename?: string; +} +export interface TransformOptions extends SharedTransformCodegenOptions, ErrorHandlingOptions, CompilerCompatOptions { + /** + * An array of node transforms to be applied to every AST node. + */ + nodeTransforms?: NodeTransform[]; + /** + * An object of { name: transform } to be applied to every directive attribute + * node found on element nodes. + */ + directiveTransforms?: Record<string, DirectiveTransform | undefined>; + /** + * An optional hook to transform a node being hoisted. + * used by compiler-dom to turn hoisted nodes into stringified HTML vnodes. + * @default null + */ + transformHoist?: HoistTransform | null; + /** + * If the pairing runtime provides additional built-in elements, use this to + * mark them as built-in so the compiler will generate component vnodes + * for them. + */ + isBuiltInComponent?: (tag: string) => symbol | void; + /** + * Used by some transforms that expects only native elements + */ + isCustomElement?: (tag: string) => boolean | void; + /** + * Transform expressions like {{ foo }} to `_ctx.foo`. + * If this option is false, the generated code will be wrapped in a + * `with (this) { ... }` block. + * - This is force-enabled in module mode, since modules are by default strict + * and cannot use `with` + * @default mode === 'module' + */ + prefixIdentifiers?: boolean; + /** + * Cache static VNodes and props objects to `_hoisted_x` constants + * @default false + */ + hoistStatic?: boolean; + /** + * Cache v-on handlers to avoid creating new inline functions on each render, + * also avoids the need for dynamically patching the handlers by wrapping it. + * e.g `@click="foo"` by default is compiled to `{ onClick: foo }`. With this + * option it's compiled to: + * ```js + * { onClick: _cache[0] || (_cache[0] = e => _ctx.foo(e)) } + * ``` + * - Requires "prefixIdentifiers" to be enabled because it relies on scope + * analysis to determine if a handler is safe to cache. + * @default false + */ + cacheHandlers?: boolean; + /** + * A list of parser plugins to enable for `@babel/parser`, which is used to + * parse expressions in bindings and interpolations. + * https://babeljs.io/docs/en/next/babel-parser#plugins + */ + expressionPlugins?: ParserPlugin[]; + /** + * SFC scoped styles ID + */ + scopeId?: string | null; + /** + * Indicates this SFC template has used :slotted in its styles + * Defaults to `true` for backwards compatibility - SFC tooling should set it + * to `false` if no `:slotted` usage is detected in `<style>` + */ + slotted?: boolean; + /** + * SFC `<style vars>` injection string + * Should already be an object expression, e.g. `{ 'xxxx-color': color }` + * needed to render inline CSS variables on component root + */ + ssrCssVars?: string; + /** + * Whether to compile the template assuming it needs to handle HMR. + * Some edge cases may need to generate different code for HMR to work + * correctly, e.g. #6938, #7138 + */ + hmr?: boolean; +} +export interface CodegenOptions extends SharedTransformCodegenOptions { + /** + * - `module` mode will generate ES module import statements for helpers + * and export the render function as the default export. + * - `function` mode will generate a single `const { helpers... } = Vue` + * statement and return the render function. It expects `Vue` to be globally + * available (or passed by wrapping the code with an IIFE). It is meant to be + * used with `new Function(code)()` to generate a render function at runtime. + * @default 'function' + */ + mode?: 'module' | 'function'; + /** + * Generate source map? + * @default false + */ + sourceMap?: boolean; + /** + * SFC scoped styles ID + */ + scopeId?: string | null; + /** + * Option to optimize helper import bindings via variable assignment + * (only used for webpack code-split) + * @default false + */ + optimizeImports?: boolean; + /** + * Customize where to import runtime helpers from. + * @default 'vue' + */ + runtimeModuleName?: string; + /** + * Customize where to import ssr runtime helpers from/** + * @default 'vue/server-renderer' + */ + ssrRuntimeModuleName?: string; + /** + * Customize the global variable name of `Vue` to get helpers from + * in function mode + * @default 'Vue' + */ + runtimeGlobalName?: string; +} +export type CompilerOptions = ParserOptions & TransformOptions & CodegenOptions; + +/** + * The `SourceMapGenerator` type from `source-map-js` is a bit incomplete as it + * misses `toJSON()`. We also need to add types for internal properties which we + * need to access for better performance. + * + * Since TS 5.3, dts generation starts to strangely include broken triple slash + * references for source-map-js, so we are inlining all source map related types + * here to to workaround that. + */ +export interface CodegenSourceMapGenerator { + setSourceContent(sourceFile: string, sourceContent: string): void; + toJSON(): RawSourceMap; + _sources: Set<string>; + _names: Set<string>; + _mappings: { + add(mapping: MappingItem): void; + }; +} +export interface RawSourceMap { + file?: string; + sourceRoot?: string; + version: string; + sources: string[]; + names: string[]; + sourcesContent?: string[]; + mappings: string; +} +interface MappingItem { + source: string; + generatedLine: number; + generatedColumn: number; + originalLine: number; + originalColumn: number; + name: string | null; +} +type CodegenNode = TemplateChildNode | JSChildNode | SSRCodegenNode; +export interface CodegenResult { + code: string; + preamble: string; + ast: RootNode; + map?: RawSourceMap; +} +export interface CodegenContext extends Omit<Required<CodegenOptions>, 'bindingMetadata' | 'inline'> { + source: string; + code: string; + line: number; + column: number; + offset: number; + indentLevel: number; + pure: boolean; + map?: CodegenSourceMapGenerator; + helper(key: symbol): string; + push(code: string, newlineIndex?: number, node?: CodegenNode): void; + indent(): void; + deindent(withoutNewLine?: boolean): void; + newline(): void; +} +export declare function generate(ast: RootNode, options?: CodegenOptions & { + onContextCreated?: (context: CodegenContext) => void; +}): CodegenResult; + +export type TransformPreset = [ + NodeTransform[], + Record<string, DirectiveTransform> +]; +export declare function getBaseTransformPreset(prefixIdentifiers?: boolean): TransformPreset; +export declare function baseCompile(source: string | RootNode, options?: CompilerOptions): CodegenResult; + +export declare const isStaticExp: (p: JSChildNode) => p is SimpleExpressionNode; +export declare function isCoreComponent(tag: string): symbol | void; +export declare const isSimpleIdentifier: (name: string) => boolean; +export declare const validFirstIdentCharRE: RegExp; +/** + * Simple lexer to check if an expression is a member expression. This is + * lax and only checks validity at the root level (i.e. does not validate exps + * inside square brackets), but it's ok since these are only used on template + * expressions and false positives are invalid expressions in the first place. + */ +export declare const isMemberExpressionBrowser: (exp: ExpressionNode) => boolean; +export declare const isMemberExpressionNode: (exp: ExpressionNode, context: TransformContext) => boolean; +export declare const isMemberExpression: (exp: ExpressionNode, context: TransformContext) => boolean; +export declare const isFnExpressionBrowser: (exp: ExpressionNode) => boolean; +export declare const isFnExpressionNode: (exp: ExpressionNode, context: TransformContext) => boolean; +export declare const isFnExpression: (exp: ExpressionNode, context: TransformContext) => boolean; +export declare function advancePositionWithClone(pos: Position, source: string, numberOfCharacters?: number): Position; +export declare function advancePositionWithMutation(pos: Position, source: string, numberOfCharacters?: number): Position; +export declare function assert(condition: boolean, msg?: string): void; +export declare function findDir(node: ElementNode, name: string | RegExp, allowEmpty?: boolean): DirectiveNode | undefined; +export declare function findProp(node: ElementNode, name: string, dynamicOnly?: boolean, allowEmpty?: boolean): ElementNode['props'][0] | undefined; +export declare function isStaticArgOf(arg: DirectiveNode['arg'], name: string): boolean; +export declare function hasDynamicKeyVBind(node: ElementNode): boolean; +export declare function isText(node: TemplateChildNode): node is TextNode | InterpolationNode; +export declare function isVPre(p: ElementNode['props'][0]): p is DirectiveNode; +export declare function isVSlot(p: ElementNode['props'][0]): p is DirectiveNode; +export declare function isTemplateNode(node: RootNode | TemplateChildNode): node is TemplateNode; +export declare function isSlotOutlet(node: RootNode | TemplateChildNode): node is SlotOutletNode; +export declare function injectProp(node: VNodeCall | RenderSlotCall, prop: Property, context: TransformContext): void; +export declare function toValidAssetId(name: string, type: 'component' | 'directive' | 'filter'): string; +export declare function hasScopeRef(node: TemplateChildNode | IfBranchNode | ExpressionNode | CacheExpression | undefined, ids: TransformContext['identifiers']): boolean; +export declare function getMemoedVNodeCall(node: BlockCodegenNode | MemoExpression): VNodeCall | RenderSlotCall; +export declare const forAliasRE: RegExp; +export declare function isAllWhitespace(str: string): boolean; +export declare function isWhitespaceText(node: TemplateChildNode): boolean; +export declare function isCommentOrWhitespace(node: TemplateChildNode): boolean; + +/** + * Return value indicates whether the AST walked can be a constant + */ +export declare function walkIdentifiers(root: Node$1, onIdentifier: (node: Identifier, parent: Node$1 | null, parentStack: Node$1[], isReference: boolean, isLocal: boolean) => void, includeAll?: boolean, parentStack?: Node$1[], knownIds?: Record<string, number>): void; +export declare function isReferencedIdentifier(id: Identifier, parent: Node$1 | null, parentStack: Node$1[]): boolean; +export declare function isInDestructureAssignment(parent: Node$1, parentStack: Node$1[]): boolean; +export declare function isInNewExpression(parentStack: Node$1[]): boolean; +export declare function walkFunctionParams(node: Function, onIdent: (id: Identifier) => void): void; +export declare function walkBlockDeclarations(block: BlockStatement$1 | SwitchCase | Program, onIdent: (node: Identifier) => void): void; +export declare function extractIdentifiers(param: Node$1, nodes?: Identifier[]): Identifier[]; +export declare const isFunctionType: (node: Node$1) => node is Function; +export declare const isStaticProperty: (node: Node$1) => node is ObjectProperty; +export declare const isStaticPropertyKey: (node: Node$1, parent: Node$1) => boolean; +export declare const TS_NODE_TYPES: string[]; +export declare function unwrapTSNode(node: Node$1): Node$1; + +export declare const transformModel: DirectiveTransform; + +export declare const transformOn: DirectiveTransform; + +export declare const transformBind: DirectiveTransform; + +export declare const noopDirectiveTransform: DirectiveTransform; + +export declare function processIf(node: ElementNode, dir: DirectiveNode, context: TransformContext, processCodegen?: (node: IfNode, branch: IfBranchNode, isRoot: boolean) => (() => void) | undefined): (() => void) | undefined; + +export declare function processFor(node: ElementNode, dir: DirectiveNode, context: TransformContext, processCodegen?: (forNode: ForNode) => (() => void) | undefined): (() => void) | undefined; +export declare function createForLoopParams({ value, key, index }: ForParseResult, memoArgs?: ExpressionNode[]): ExpressionNode[]; + +export declare const transformExpression: NodeTransform; +export declare function processExpression(node: SimpleExpressionNode, context: TransformContext, asParams?: boolean, asRawStatements?: boolean, localVars?: Record<string, number>): ExpressionNode; +export declare function stringifyExpression(exp: ExpressionNode | string): string; + +export declare const trackSlotScopes: NodeTransform; +export declare const trackVForSlotScopes: NodeTransform; +export type SlotFnBuilder = (slotProps: ExpressionNode | undefined, vFor: DirectiveNode | undefined, slotChildren: TemplateChildNode[], loc: SourceLocation) => FunctionExpression; +export declare function buildSlots(node: ElementNode, context: TransformContext, buildSlotFn?: SlotFnBuilder): { + slots: SlotsExpression; + hasDynamicSlots: boolean; +}; + +export declare const transformVBindShorthand: NodeTransform; + +interface SlotOutletProcessResult { + slotName: string | ExpressionNode; + slotProps: PropsExpression | undefined; +} +export declare function processSlotOutlet(node: SlotOutletNode, context: TransformContext): SlotOutletProcessResult; + +export declare function getConstantType(node: TemplateChildNode | SimpleExpressionNode | CacheExpression, context: TransformContext): ConstantTypes; + + diff --git a/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js b/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js new file mode 100644 index 0000000..c6fa78a --- /dev/null +++ b/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js @@ -0,0 +1,5835 @@ +/** +* @vue/compiler-core v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { isString, NOOP, isObject, extend, NO, isSymbol, PatchFlagNames, isArray, capitalize, camelize, EMPTY_OBJ, slotFlagsText, isOn, isBuiltInDirective, isReservedProp, toHandlerKey } from '@vue/shared'; +export { generateCodeFrame } from '@vue/shared'; + +const FRAGMENT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `Fragment` : ``); +const TELEPORT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `Teleport` : ``); +const SUSPENSE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `Suspense` : ``); +const KEEP_ALIVE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `KeepAlive` : ``); +const BASE_TRANSITION = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `BaseTransition` : `` +); +const OPEN_BLOCK = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `openBlock` : ``); +const CREATE_BLOCK = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `createBlock` : ``); +const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `createElementBlock` : `` +); +const CREATE_VNODE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `createVNode` : ``); +const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `createElementVNode` : `` +); +const CREATE_COMMENT = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `createCommentVNode` : `` +); +const CREATE_TEXT = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `createTextVNode` : `` +); +const CREATE_STATIC = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `createStaticVNode` : `` +); +const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `resolveComponent` : `` +); +const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `resolveDynamicComponent` : `` +); +const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `resolveDirective` : `` +); +const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `resolveFilter` : `` +); +const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `withDirectives` : `` +); +const RENDER_LIST = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `renderList` : ``); +const RENDER_SLOT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `renderSlot` : ``); +const CREATE_SLOTS = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `createSlots` : ``); +const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `toDisplayString` : `` +); +const MERGE_PROPS = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `mergeProps` : ``); +const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `normalizeClass` : `` +); +const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `normalizeStyle` : `` +); +const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `normalizeProps` : `` +); +const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `guardReactiveProps` : `` +); +const TO_HANDLERS = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `toHandlers` : ``); +const CAMELIZE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `camelize` : ``); +const CAPITALIZE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `capitalize` : ``); +const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `toHandlerKey` : `` +); +const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `setBlockTracking` : `` +); +const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `pushScopeId` : ``); +const POP_SCOPE_ID = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `popScopeId` : ``); +const WITH_CTX = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `withCtx` : ``); +const UNREF = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `unref` : ``); +const IS_REF = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `isRef` : ``); +const WITH_MEMO = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `withMemo` : ``); +const IS_MEMO_SAME = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `isMemoSame` : ``); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: isString(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + if (!!(process.env.NODE_ENV !== "production") || false) { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if ((!!(process.env.NODE_ENV !== "production") || false) && this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if ((!!(process.env.NODE_ENV !== "production") || false) && c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if ((!!(process.env.NODE_ENV !== "production") || false) && (c === 34 || c === 39 || c === 60)) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + if (!!(process.env.NODE_ENV !== "production") || false) { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if ((!!(process.env.NODE_ENV !== "production") || false) && c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else ; + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + } + stateInEntity() { + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + if (!!(process.env.NODE_ENV !== "production") && enabled) { + warnDeprecation(key, context, loc, ...args); + } + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { + !!(process.env.NODE_ENV !== "production") && console.warn(`[Vue warn] ${msg.message}`); +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = !!(process.env.NODE_ENV !== "production") || false ? (messages || errorMessages)[code] + (additionalMessage || ``) : `https://vuejs.org/error-reference/#compiler-${code}`; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_V_MODEL_ON_CONST": 45, + "45": "X_V_MODEL_ON_CONST", + "X_INVALID_EXPRESSION": 46, + "46": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 47, + "47": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 48, + "48": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 49, + "49": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 50, + "50": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 51, + "51": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 52, + "52": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53, + "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 54, + "54": "__EXTEND_POINT__" +}; +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` +}; + +function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + { + return; + } +} +function isReferencedIdentifier(id, parent, parentStack) { + { + return false; + } +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + const body = block.type === "SwitchCase" ? block.consequent : block.body; + for (const stmt of body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } else if (stmt.type === "SwitchStatement") { + walkSwitchStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } +} +function walkSwitchStatement(stmt, isVar, onIdent) { + for (const cs of stmt.cases) { + for (const stmt2 of cs.consequent) { + if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) { + for (const decl of stmt2.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } + } + walkBlockDeclarations(cs, onIdent); + } +} +function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = NOOP ; +const isMemberExpression = isMemberExpressionBrowser ; +const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpressionNode = NOOP ; +const isFnExpression = isFnExpressionBrowser ; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVPre(p) { + return p.type === 7 && p.name === "pre"; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + if (!!(process.env.NODE_ENV !== "production")) ; + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); +} +function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); +} + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: NO, + isPreTag: NO, + isIgnoreNewlineTag: NO, + isCustomElement: NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: !!(process.env.NODE_ENV !== "production"), + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = currentOptions.decodeEntities(exp, false); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentAttrValue.includes("&")) { + currentAttrValue = currentOptions.decodeEntities( + currentAttrValue, + true + ); + } + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.arg.loc.source + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if ((!!(process.env.NODE_ENV !== "production") || false) && tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + { + const tag = stack[0] && stack[0].tag; + if (tag !== "script" && tag !== "style" && content.includes("&")) { + content = currentOptions.decodeEntities(content, false); + } + } + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (!!(process.env.NODE_ENV !== "production") && isCompatEnabled( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions + )) { + let hasIf = false; + let hasFor = false; + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 7) { + if (p.name === "if") { + hasIf = true; + } else if (p.name === "for") { + hasFor = true; + } + } + if (hasIf && hasFor) { + warnDeprecation( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions, + el.loc + ); + break; + } + } + } + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + !!(process.env.NODE_ENV !== "production") && warnDeprecation( + "COMPILER_NATIVE_TEMPLATE", + currentOptions, + el.loc + ); + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + if (!!(process.env.NODE_ENV !== "production")) { + if (!currentOptions.decodeEntities) { + throw new Error( + `[@vue/compiler-core] decodeEntities option is required in browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); +} +function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; +} +function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (!!(process.env.NODE_ENV !== "production") ? ` /* ${PatchFlagNames[-1]} */` : ``) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + if (!!(process.env.NODE_ENV !== "production")) ; + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + if (!!(process.env.NODE_ENV !== "production")) { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!!(process.env.NODE_ENV !== "production") && !context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (!!(process.env.NODE_ENV !== "production") && removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: NOOP, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (!!(process.env.NODE_ENV !== "production") && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const preambleContext = context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || !!(process.env.NODE_ENV !== "production") && nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node, -3 /* Unknown */); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + !!(process.env.NODE_ENV !== "production") && assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + /* v8 ignore start */ + case 10: + break; + default: + if (!!(process.env.NODE_ENV !== "production")) { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + if (!!(process.env.NODE_ENV !== "production")) { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } else { + patchFlagString = String(patchFlag); + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || !!(process.env.NODE_ENV !== "production") && properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} + +const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" +); +const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; +function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + message + ) + ); + } +} + +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + if (!!(process.env.NODE_ENV !== "production")) { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } +} +function stringifyExpression(exp) { + if (isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} + +const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (!!(process.env.NODE_ENV !== "production") && true && dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (!!(process.env.NODE_ENV !== "production") && sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (!!(process.env.NODE_ENV !== "production") && comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + if (!!(process.env.NODE_ENV !== "production") || false) { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + !!(process.env.NODE_ENV !== "production") ? '"v-if"' : '""', + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!!(process.env.NODE_ENV !== "production") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if ((!!(process.env.NODE_ENV !== "production") || false) && isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + if (!!(process.env.NODE_ENV !== "production") && true) { + validateBrowserExpression(result.source, context); + if (result.key) { + validateBrowserExpression( + result.key, + context, + true + ); + } + if (result.index) { + validateBrowserExpression( + result.index, + context, + true + ); + } + if (result.value) { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (!!(process.env.NODE_ENV !== "production") ? ` /* ${slotFlagsText[slotFlag]} */` : ``), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (!!(process.env.NODE_ENV !== "production") && node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + { + pushMergeArg(); + if (!!(process.env.NODE_ENV !== "production")) { + const hasOverridableKeys = mergeArgs.some((arg2) => { + if (arg2.type === 15) { + return arg2.properties.some(({ key }) => { + if (key.type !== 4 || !key.isStatic) { + return true; + } + return key.content !== "class" && key.content !== "style" && !isOn(key.content); + }); + } else { + return true; + } + }); + if (hasOverridableKeys) { + checkCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context, + loc + ); + } + } + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (!!(process.env.NODE_ENV !== "production") && rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp); + const isInlineStatement = !(isMemberExp || isFnExpression(exp)); + const hasMultipleStatements = exp.content.includes(`;`); + if (!!(process.env.NODE_ENV !== "production") && true) { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + exp = void 0; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (!!(process.env.NODE_ENV !== "production") ? ` /* ${PatchFlagNames[1]} */` : ``) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + if (!expString.trim() || !isMemberExpression(exp) && true) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const validDivisionCharRE = /[\w).+\-_$\]]/; +const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } +}; +function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } +} +function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + !!(process.env.NODE_ENV !== "production") && warnDeprecation( + "COMPILER_FILTERS", + context, + node.loc + ); + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } +} +function wrapFilter(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...!!(process.env.NODE_ENV !== "production") ? [transformExpression] : [], + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn, + bind: transformBind, + model: transformModel + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(48)); + } else if (isModuleMode) { + onError(createCompilerError(49)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }); + const ast = isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +export { BASE_TRANSITION, BindingTypes, CAMELIZE, CAPITALIZE, CREATE_BLOCK, CREATE_COMMENT, CREATE_ELEMENT_BLOCK, CREATE_ELEMENT_VNODE, CREATE_SLOTS, CREATE_STATIC, CREATE_TEXT, CREATE_VNODE, CompilerDeprecationTypes, ConstantTypes, ElementTypes, ErrorCodes, FRAGMENT, GUARD_REACTIVE_PROPS, IS_MEMO_SAME, IS_REF, KEEP_ALIVE, MERGE_PROPS, NORMALIZE_CLASS, NORMALIZE_PROPS, NORMALIZE_STYLE, Namespaces, NodeTypes, OPEN_BLOCK, POP_SCOPE_ID, PUSH_SCOPE_ID, RENDER_LIST, RENDER_SLOT, RESOLVE_COMPONENT, RESOLVE_DIRECTIVE, RESOLVE_DYNAMIC_COMPONENT, RESOLVE_FILTER, SET_BLOCK_TRACKING, SUSPENSE, TELEPORT, TO_DISPLAY_STRING, TO_HANDLERS, TO_HANDLER_KEY, TS_NODE_TYPES, UNREF, WITH_CTX, WITH_DIRECTIVES, WITH_MEMO, advancePositionWithClone, advancePositionWithMutation, assert, baseCompile, baseParse, buildDirectiveArgs, buildProps, buildSlots, checkCompatEnabled, convertToBlock, createArrayExpression, createAssignmentExpression, createBlockStatement, createCacheExpression, createCallExpression, createCompilerError, createCompoundExpression, createConditionalExpression, createForLoopParams, createFunctionExpression, createIfStatement, createInterpolation, createObjectExpression, createObjectProperty, createReturnStatement, createRoot, createSequenceExpression, createSimpleExpression, createStructuralDirectiveTransform, createTemplateLiteral, createTransformContext, createVNodeCall, errorMessages, extractIdentifiers, findDir, findProp, forAliasRE, generate, getBaseTransformPreset, getConstantType, getMemoedVNodeCall, getVNodeBlockHelper, getVNodeHelper, hasDynamicKeyVBind, hasScopeRef, helperNameMap, injectProp, isAllWhitespace, isCommentOrWhitespace, isCoreComponent, isFnExpression, isFnExpressionBrowser, isFnExpressionNode, isFunctionType, isInDestructureAssignment, isInNewExpression, isMemberExpression, isMemberExpressionBrowser, isMemberExpressionNode, isReferencedIdentifier, isSimpleIdentifier, isSlotOutlet, isStaticArgOf, isStaticExp, isStaticProperty, isStaticPropertyKey, isTemplateNode, isText$1 as isText, isVPre, isVSlot, isWhitespaceText, locStub, noopDirectiveTransform, processExpression, processFor, processIf, processSlotOutlet, registerRuntimeHelpers, resolveComponentType, stringifyExpression, toValidAssetId, trackSlotScopes, trackVForSlotScopes, transform, transformBind, transformElement, transformExpression, transformModel, transformOn, transformVBindShorthand, traverseNode, unwrapTSNode, validFirstIdentCharRE, walkBlockDeclarations, walkFunctionParams, walkIdentifiers, warnDeprecation }; diff --git a/node_modules/@vue/compiler-core/index.js b/node_modules/@vue/compiler-core/index.js new file mode 100644 index 0000000..d3fc54f --- /dev/null +++ b/node_modules/@vue/compiler-core/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/compiler-core.cjs.prod.js') +} else { + module.exports = require('./dist/compiler-core.cjs.js') +} diff --git a/node_modules/@vue/compiler-core/package.json b/node_modules/@vue/compiler-core/package.json new file mode 100644 index 0000000..a3a5da3 --- /dev/null +++ b/node_modules/@vue/compiler-core/package.json @@ -0,0 +1,58 @@ +{ + "name": "@vue/compiler-core", + "version": "3.5.28", + "description": "@vue/compiler-core", + "main": "index.js", + "module": "dist/compiler-core.esm-bundler.js", + "types": "dist/compiler-core.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/compiler-core.d.ts", + "node": { + "production": "./dist/compiler-core.cjs.prod.js", + "development": "./dist/compiler-core.cjs.js", + "default": "./index.js" + }, + "module": "./dist/compiler-core.esm-bundler.js", + "import": "./dist/compiler-core.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueCompilerCore", + "compat": true, + "formats": [ + "esm-bundler", + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-core" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", + "dependencies": { + "@babel/parser": "^7.29.0", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1", + "@vue/shared": "3.5.28" + }, + "devDependencies": { + "@babel/types": "^7.29.0" + } +} \ No newline at end of file diff --git a/node_modules/@vue/compiler-dom/LICENSE b/node_modules/@vue/compiler-dom/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/compiler-dom/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/compiler-dom/README.md b/node_modules/@vue/compiler-dom/README.md new file mode 100644 index 0000000..57748e6 --- /dev/null +++ b/node_modules/@vue/compiler-dom/README.md @@ -0,0 +1 @@ +# @vue/compiler-dom diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js new file mode 100644 index 0000000..24a3f84 --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js @@ -0,0 +1,934 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerCore = require('@vue/compiler-core'); +var shared = require('@vue/shared'); + +const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` ); +const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `vModelCheckbox` +); +const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` ); +const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `vModelSelect` +); +const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `vModelDynamic` +); +const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `vOnModifiersGuard` +); +const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `vOnKeysGuard` +); +const V_SHOW = /* @__PURE__ */ Symbol(`vShow` ); +const TRANSITION = /* @__PURE__ */ Symbol(`Transition` ); +const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `TransitionGroup` +); +compilerCore.registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +const parserOptions = { + parseMode: "html", + isVoidTag: shared.isVoidTag, + isNativeTag: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: void 0, + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: compilerCore.createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = shared.parseStringStyle(cssText); + return compilerCore.createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return compilerCore.createCompilerError( + code, + loc, + DOMErrorMessages + ); +} +const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 54, + "54": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 55, + "55": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 56, + "56": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 57, + "57": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 58, + "58": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 59, + "59": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60, + "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 61, + "61": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 62, + "62": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 63, + "63": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 64, + "64": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 65, + "65": "__EXTEND_POINT__" +}; +const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`innerHTML`, true, loc), + exp || compilerCore.createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`textContent`, true), + exp ? compilerCore.getConstantType(exp, context) > 0 ? exp : compilerCore.createCallExpression( + context.helperString(compilerCore.TO_DISPLAY_STRING), + [exp], + loc + ) : compilerCore.createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = compilerCore.transformModel(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = compilerCore.findDir(node, "bind"); + if (value && compilerCore.isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = compilerCore.findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (compilerCore.hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ shared.makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ shared.makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ shared.makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ shared.makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && compilerCore.checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (compilerCore.isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? compilerCore.createSimpleExpression(event, true) : key.type !== 4 ? compilerCore.createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return compilerCore.transformOn(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join(""); + key = compilerCore.isStaticExp(key) ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true) : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [compilerCore.createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } +}; +function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !compilerCore.isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); +} + +const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g; +const stringifyStatic = (children, context, parent) => { + if (context.scopes.vSlot > 0) { + return; + } + const isParentCached = parent.type === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 20; + let nc = 0; + let ec = 0; + const currentChunk = []; + const stringifyCurrentChunk = (currentIndex) => { + if (nc >= 20 || ec >= 5) { + const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [ + JSON.stringify( + currentChunk.map((node) => stringifyNode(node, context)).join("") + ).replace(expReplaceRE, `" + $1 + "`), + // the 2nd argument indicates the number of DOM nodes this static vnode + // will insert / hydrate + String(currentChunk.length) + ]); + const deleteCount = currentChunk.length - 1; + if (isParentCached) { + children.splice( + currentIndex - currentChunk.length, + currentChunk.length, + // @ts-expect-error + staticCall + ); + } else { + currentChunk[0].codegenNode.value = staticCall; + if (currentChunk.length > 1) { + children.splice(currentIndex - currentChunk.length + 1, deleteCount); + const cacheIndex = context.cached.indexOf( + currentChunk[currentChunk.length - 1].codegenNode + ); + if (cacheIndex > -1) { + for (let i2 = cacheIndex; i2 < context.cached.length; i2++) { + const c = context.cached[i2]; + if (c) c.index -= deleteCount; + } + context.cached.splice(cacheIndex - deleteCount + 1, deleteCount); + } + } + } + return deleteCount; + } + return 0; + }; + let i = 0; + for (; i < children.length; i++) { + const child = children[i]; + const isCached = isParentCached || getCachedNode(child); + if (isCached) { + const result = analyzeNode(child); + if (result) { + nc += result[0]; + ec += result[1]; + currentChunk.push(child); + continue; + } + } + i -= stringifyCurrentChunk(i); + nc = 0; + ec = 0; + currentChunk.length = 0; + } + stringifyCurrentChunk(i); +}; +const getCachedNode = (node) => { + if ((node.type === 1 && node.tagType === 0 || node.type === 12) && node.codegenNode && node.codegenNode.type === 20) { + return node.codegenNode; + } +}; +const dataAriaRE = /^(?:data|aria)-/; +const isStringifiableAttr = (name, ns) => { + return (ns === 0 ? shared.isKnownHtmlAttr(name) : ns === 1 ? shared.isKnownSvgAttr(name) : ns === 2 ? shared.isKnownMathMLAttr(name) : false) || dataAriaRE.test(name); +}; +const isNonStringifiable = /* @__PURE__ */ shared.makeMap( + `caption,thead,tr,th,tbody,td,tfoot,colgroup,col` +); +function analyzeNode(node) { + if (node.type === 1 && isNonStringifiable(node.tag)) { + return false; + } + if (node.type === 1 && compilerCore.findDir(node, "once", true)) { + return false; + } + if (node.type === 12) { + return [1, 0]; + } + let nc = 1; + let ec = node.props.length > 0 ? 1 : 0; + let bailed = false; + const bail = () => { + bailed = true; + return false; + }; + function walk(node2) { + const isOptionTag = node2.tag === "option" && node2.ns === 0; + for (let i = 0; i < node2.props.length; i++) { + const p = node2.props[i]; + if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) { + return bail(); + } + if (p.type === 7 && p.name === "bind") { + if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) { + return bail(); + } + if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) { + return bail(); + } + if (isOptionTag && compilerCore.isStaticArgOf(p.arg, "value") && p.exp && !p.exp.isStatic) { + return bail(); + } + } + } + for (let i = 0; i < node2.children.length; i++) { + nc++; + const child = node2.children[i]; + if (child.type === 1) { + if (child.props.length > 0) { + ec++; + } + walk(child); + if (bailed) { + return false; + } + } + } + return true; + } + return walk(node) ? [nc, ec] : false; +} +function stringifyNode(node, context) { + if (shared.isString(node)) { + return node; + } + if (shared.isSymbol(node)) { + return ``; + } + switch (node.type) { + case 1: + return stringifyElement(node, context); + case 2: + return shared.escapeHtml(node.content); + case 3: + return `<!--${shared.escapeHtml(node.content)}-->`; + case 5: + return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content))); + case 8: + return shared.escapeHtml(evaluateConstant(node)); + case 12: + return stringifyNode(node.content, context); + default: + return ""; + } +} +function stringifyElement(node, context) { + let res = `<${node.tag}`; + let innerHTML = ""; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + res += ` ${p.name}`; + if (p.value) { + res += `="${shared.escapeHtml(p.value.content)}"`; + } + } else if (p.type === 7) { + if (p.name === "bind") { + const exp = p.exp; + if (exp.content[0] === "_") { + res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`; + continue; + } + if (shared.isBooleanAttr(p.arg.content) && exp.content === "false") { + continue; + } + let evaluated = evaluateConstant(exp); + if (evaluated != null) { + const arg = p.arg && p.arg.content; + if (arg === "class") { + evaluated = shared.normalizeClass(evaluated); + } else if (arg === "style") { + evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated)); + } + res += ` ${p.arg.content}="${shared.escapeHtml( + evaluated + )}"`; + } + } else if (p.name === "html") { + innerHTML = evaluateConstant(p.exp); + } else if (p.name === "text") { + innerHTML = shared.escapeHtml( + shared.toDisplayString(evaluateConstant(p.exp)) + ); + } + } + } + if (context.scopeId) { + res += ` ${context.scopeId}`; + } + res += `>`; + if (innerHTML) { + res += innerHTML; + } else { + for (let i = 0; i < node.children.length; i++) { + res += stringifyNode(node.children[i], context); + } + } + if (!shared.isVoidTag(node.tag)) { + res += `</${node.tag}>`; + } + return res; +} +function evaluateConstant(exp) { + if (exp.type === 4) { + return new Function(`return (${exp.content})`)(); + } else { + let res = ``; + exp.children.forEach((c) => { + if (shared.isString(c) || shared.isSymbol(c)) { + return; + } + if (c.type === 2) { + res += c.content; + } else if (c.type === 5) { + res += shared.toDisplayString(evaluateConstant(c.content)); + } else { + res += evaluateConstant(c); + } + }); + return res; + } +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } +}; + +function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; +} +const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); +const emptySet = /* @__PURE__ */ new Set([]); +const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet +}; +const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) +}; +const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) +}; +const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings +}; + +const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] +]; +const DOMDirectiveTransforms = { + cloak: compilerCore.noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile(src, options = {}) { + return compilerCore.baseCompile( + src, + shared.extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: shared.extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: stringifyStatic + }) + ); +} +function parse(template, options = {}) { + return compilerCore.baseParse(template, shared.extend({}, parserOptions, options)); +} + +exports.DOMDirectiveTransforms = DOMDirectiveTransforms; +exports.DOMErrorCodes = DOMErrorCodes; +exports.DOMErrorMessages = DOMErrorMessages; +exports.DOMNodeTransforms = DOMNodeTransforms; +exports.TRANSITION = TRANSITION; +exports.TRANSITION_GROUP = TRANSITION_GROUP; +exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX; +exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC; +exports.V_MODEL_RADIO = V_MODEL_RADIO; +exports.V_MODEL_SELECT = V_MODEL_SELECT; +exports.V_MODEL_TEXT = V_MODEL_TEXT; +exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS; +exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS; +exports.V_SHOW = V_SHOW; +exports.compile = compile; +exports.createDOMCompilerError = createDOMCompilerError; +exports.parse = parse; +exports.parserOptions = parserOptions; +exports.transformStyle = transformStyle; +Object.keys(compilerCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = compilerCore[k]; +}); diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js new file mode 100644 index 0000000..3e9d85b --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js @@ -0,0 +1,689 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerCore = require('@vue/compiler-core'); +var shared = require('@vue/shared'); + +const V_MODEL_RADIO = /* @__PURE__ */ Symbol(``); +const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `` +); +const V_MODEL_TEXT = /* @__PURE__ */ Symbol(``); +const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `` +); +const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `` +); +const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `` +); +const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `` +); +const V_SHOW = /* @__PURE__ */ Symbol(``); +const TRANSITION = /* @__PURE__ */ Symbol(``); +const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `` +); +compilerCore.registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +const parserOptions = { + parseMode: "html", + isVoidTag: shared.isVoidTag, + isNativeTag: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: void 0, + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: compilerCore.createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = shared.parseStringStyle(cssText); + return compilerCore.createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return compilerCore.createCompilerError( + code, + loc, + DOMErrorMessages + ); +} +const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 54, + "54": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 55, + "55": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 56, + "56": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 57, + "57": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 58, + "58": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 59, + "59": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60, + "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 61, + "61": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 62, + "62": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 63, + "63": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 64, + "64": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 65, + "65": "__EXTEND_POINT__" +}; +const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`innerHTML`, true, loc), + exp || compilerCore.createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`textContent`, true), + exp ? compilerCore.getConstantType(exp, context) > 0 ? exp : compilerCore.createCallExpression( + context.helperString(compilerCore.TO_DISPLAY_STRING), + [exp], + loc + ) : compilerCore.createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = compilerCore.transformModel(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = compilerCore.findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + } + } + } else if (compilerCore.hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else ; + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else ; + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ shared.makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ shared.makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ shared.makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ shared.makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && compilerCore.checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (compilerCore.isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? compilerCore.createSimpleExpression(event, true) : key.type !== 4 ? compilerCore.createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return compilerCore.transformOn(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join(""); + key = compilerCore.isStaticExp(key) ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true) : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [compilerCore.createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g; +const stringifyStatic = (children, context, parent) => { + if (context.scopes.vSlot > 0) { + return; + } + const isParentCached = parent.type === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 20; + let nc = 0; + let ec = 0; + const currentChunk = []; + const stringifyCurrentChunk = (currentIndex) => { + if (nc >= 20 || ec >= 5) { + const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [ + JSON.stringify( + currentChunk.map((node) => stringifyNode(node, context)).join("") + ).replace(expReplaceRE, `" + $1 + "`), + // the 2nd argument indicates the number of DOM nodes this static vnode + // will insert / hydrate + String(currentChunk.length) + ]); + const deleteCount = currentChunk.length - 1; + if (isParentCached) { + children.splice( + currentIndex - currentChunk.length, + currentChunk.length, + // @ts-expect-error + staticCall + ); + } else { + currentChunk[0].codegenNode.value = staticCall; + if (currentChunk.length > 1) { + children.splice(currentIndex - currentChunk.length + 1, deleteCount); + const cacheIndex = context.cached.indexOf( + currentChunk[currentChunk.length - 1].codegenNode + ); + if (cacheIndex > -1) { + for (let i2 = cacheIndex; i2 < context.cached.length; i2++) { + const c = context.cached[i2]; + if (c) c.index -= deleteCount; + } + context.cached.splice(cacheIndex - deleteCount + 1, deleteCount); + } + } + } + return deleteCount; + } + return 0; + }; + let i = 0; + for (; i < children.length; i++) { + const child = children[i]; + const isCached = isParentCached || getCachedNode(child); + if (isCached) { + const result = analyzeNode(child); + if (result) { + nc += result[0]; + ec += result[1]; + currentChunk.push(child); + continue; + } + } + i -= stringifyCurrentChunk(i); + nc = 0; + ec = 0; + currentChunk.length = 0; + } + stringifyCurrentChunk(i); +}; +const getCachedNode = (node) => { + if ((node.type === 1 && node.tagType === 0 || node.type === 12) && node.codegenNode && node.codegenNode.type === 20) { + return node.codegenNode; + } +}; +const dataAriaRE = /^(?:data|aria)-/; +const isStringifiableAttr = (name, ns) => { + return (ns === 0 ? shared.isKnownHtmlAttr(name) : ns === 1 ? shared.isKnownSvgAttr(name) : ns === 2 ? shared.isKnownMathMLAttr(name) : false) || dataAriaRE.test(name); +}; +const isNonStringifiable = /* @__PURE__ */ shared.makeMap( + `caption,thead,tr,th,tbody,td,tfoot,colgroup,col` +); +function analyzeNode(node) { + if (node.type === 1 && isNonStringifiable(node.tag)) { + return false; + } + if (node.type === 1 && compilerCore.findDir(node, "once", true)) { + return false; + } + if (node.type === 12) { + return [1, 0]; + } + let nc = 1; + let ec = node.props.length > 0 ? 1 : 0; + let bailed = false; + const bail = () => { + bailed = true; + return false; + }; + function walk(node2) { + const isOptionTag = node2.tag === "option" && node2.ns === 0; + for (let i = 0; i < node2.props.length; i++) { + const p = node2.props[i]; + if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) { + return bail(); + } + if (p.type === 7 && p.name === "bind") { + if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) { + return bail(); + } + if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) { + return bail(); + } + if (isOptionTag && compilerCore.isStaticArgOf(p.arg, "value") && p.exp && !p.exp.isStatic) { + return bail(); + } + } + } + for (let i = 0; i < node2.children.length; i++) { + nc++; + const child = node2.children[i]; + if (child.type === 1) { + if (child.props.length > 0) { + ec++; + } + walk(child); + if (bailed) { + return false; + } + } + } + return true; + } + return walk(node) ? [nc, ec] : false; +} +function stringifyNode(node, context) { + if (shared.isString(node)) { + return node; + } + if (shared.isSymbol(node)) { + return ``; + } + switch (node.type) { + case 1: + return stringifyElement(node, context); + case 2: + return shared.escapeHtml(node.content); + case 3: + return `<!--${shared.escapeHtml(node.content)}-->`; + case 5: + return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content))); + case 8: + return shared.escapeHtml(evaluateConstant(node)); + case 12: + return stringifyNode(node.content, context); + default: + return ""; + } +} +function stringifyElement(node, context) { + let res = `<${node.tag}`; + let innerHTML = ""; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + res += ` ${p.name}`; + if (p.value) { + res += `="${shared.escapeHtml(p.value.content)}"`; + } + } else if (p.type === 7) { + if (p.name === "bind") { + const exp = p.exp; + if (exp.content[0] === "_") { + res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`; + continue; + } + if (shared.isBooleanAttr(p.arg.content) && exp.content === "false") { + continue; + } + let evaluated = evaluateConstant(exp); + if (evaluated != null) { + const arg = p.arg && p.arg.content; + if (arg === "class") { + evaluated = shared.normalizeClass(evaluated); + } else if (arg === "style") { + evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated)); + } + res += ` ${p.arg.content}="${shared.escapeHtml( + evaluated + )}"`; + } + } else if (p.name === "html") { + innerHTML = evaluateConstant(p.exp); + } else if (p.name === "text") { + innerHTML = shared.escapeHtml( + shared.toDisplayString(evaluateConstant(p.exp)) + ); + } + } + } + if (context.scopeId) { + res += ` ${context.scopeId}`; + } + res += `>`; + if (innerHTML) { + res += innerHTML; + } else { + for (let i = 0; i < node.children.length; i++) { + res += stringifyNode(node.children[i], context); + } + } + if (!shared.isVoidTag(node.tag)) { + res += `</${node.tag}>`; + } + return res; +} +function evaluateConstant(exp) { + if (exp.type === 4) { + return new Function(`return (${exp.content})`)(); + } else { + let res = ``; + exp.children.forEach((c) => { + if (shared.isString(c) || shared.isSymbol(c)) { + return; + } + if (c.type === 2) { + res += c.content; + } else if (c.type === 5) { + res += shared.toDisplayString(evaluateConstant(c.content)); + } else { + res += evaluateConstant(c); + } + }); + return res; + } +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.removeNode(); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...[] +]; +const DOMDirectiveTransforms = { + cloak: compilerCore.noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile(src, options = {}) { + return compilerCore.baseCompile( + src, + shared.extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: shared.extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: stringifyStatic + }) + ); +} +function parse(template, options = {}) { + return compilerCore.baseParse(template, shared.extend({}, parserOptions, options)); +} + +exports.DOMDirectiveTransforms = DOMDirectiveTransforms; +exports.DOMErrorCodes = DOMErrorCodes; +exports.DOMErrorMessages = DOMErrorMessages; +exports.DOMNodeTransforms = DOMNodeTransforms; +exports.TRANSITION = TRANSITION; +exports.TRANSITION_GROUP = TRANSITION_GROUP; +exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX; +exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC; +exports.V_MODEL_RADIO = V_MODEL_RADIO; +exports.V_MODEL_SELECT = V_MODEL_SELECT; +exports.V_MODEL_TEXT = V_MODEL_TEXT; +exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS; +exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS; +exports.V_SHOW = V_SHOW; +exports.compile = compile; +exports.createDOMCompilerError = createDOMCompilerError; +exports.parse = parse; +exports.parserOptions = parserOptions; +exports.transformStyle = transformStyle; +Object.keys(compilerCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = compilerCore[k]; +}); diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts b/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts new file mode 100644 index 0000000..1721305 --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts @@ -0,0 +1,45 @@ +import { ParserOptions, NodeTransform, SourceLocation, CompilerError, DirectiveTransform, RootNode, CompilerOptions, CodegenResult } from '@vue/compiler-core'; +export * from '@vue/compiler-core'; + +export declare const parserOptions: ParserOptions; + +export declare const V_MODEL_RADIO: unique symbol; +export declare const V_MODEL_CHECKBOX: unique symbol; +export declare const V_MODEL_TEXT: unique symbol; +export declare const V_MODEL_SELECT: unique symbol; +export declare const V_MODEL_DYNAMIC: unique symbol; +export declare const V_ON_WITH_MODIFIERS: unique symbol; +export declare const V_ON_WITH_KEYS: unique symbol; +export declare const V_SHOW: unique symbol; +export declare const TRANSITION: unique symbol; +export declare const TRANSITION_GROUP: unique symbol; + +export declare const transformStyle: NodeTransform; + +interface DOMCompilerError extends CompilerError { + code: DOMErrorCodes; +} +export declare function createDOMCompilerError(code: DOMErrorCodes, loc?: SourceLocation): DOMCompilerError; +export declare enum DOMErrorCodes { + X_V_HTML_NO_EXPRESSION = 54, + X_V_HTML_WITH_CHILDREN = 55, + X_V_TEXT_NO_EXPRESSION = 56, + X_V_TEXT_WITH_CHILDREN = 57, + X_V_MODEL_ON_INVALID_ELEMENT = 58, + X_V_MODEL_ARG_ON_ELEMENT = 59, + X_V_MODEL_ON_FILE_INPUT_ELEMENT = 60, + X_V_MODEL_UNNECESSARY_VALUE = 61, + X_V_SHOW_NO_EXPRESSION = 62, + X_TRANSITION_INVALID_CHILDREN = 63, + X_IGNORED_SIDE_EFFECT_TAG = 64, + __EXTEND_POINT__ = 65 +} +export declare const DOMErrorMessages: { + [code: number]: string; +}; + +export declare const DOMNodeTransforms: NodeTransform[]; +export declare const DOMDirectiveTransforms: Record<string, DirectiveTransform>; +export declare function compile(src: string | RootNode, options?: CompilerOptions): CodegenResult; +export declare function parse(template: string, options?: ParserOptions): RootNode; + diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js new file mode 100644 index 0000000..808eed3 --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js @@ -0,0 +1,6644 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const extend = Object.assign; +const isArray = Array.isArray; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); + +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` +}; + +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` ); +const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` ); +const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` ); +const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` ); +const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `BaseTransition` +); +const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` ); +const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` ); +const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `createElementBlock` +); +const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` ); +const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `createElementVNode` +); +const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `createCommentVNode` +); +const CREATE_TEXT = /* @__PURE__ */ Symbol( + `createTextVNode` +); +const CREATE_STATIC = /* @__PURE__ */ Symbol( + `createStaticVNode` +); +const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `resolveComponent` +); +const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `resolveDynamicComponent` +); +const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `resolveDirective` +); +const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `resolveFilter` +); +const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `withDirectives` +); +const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` ); +const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` ); +const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` ); +const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `toDisplayString` +); +const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` ); +const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `normalizeClass` +); +const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `normalizeStyle` +); +const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `normalizeProps` +); +const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `guardReactiveProps` +); +const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` ); +const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` ); +const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` ); +const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `toHandlerKey` +); +const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `setBlockTracking` +); +const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` ); +const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` ); +const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` ); +const UNREF = /* @__PURE__ */ Symbol(`unref` ); +const IS_REF = /* @__PURE__ */ Symbol(`isRef` ); +const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` ); +const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` ); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: isString(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else ; + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + } + stateInEntity() { + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + if (enabled) { + warnDeprecation(key, context, loc, ...args); + } + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_V_MODEL_ON_CONST": 45, + "45": "X_V_MODEL_ON_CONST", + "X_INVALID_EXPRESSION": 46, + "46": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 47, + "47": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 48, + "48": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 49, + "49": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 50, + "50": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 51, + "51": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 52, + "52": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53, + "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 54, + "54": "__EXTEND_POINT__" +}; +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` +}; + +function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + { + return; + } +} +function isReferencedIdentifier(id, parent, parentStack) { + { + return false; + } +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + const body = block.type === "SwitchCase" ? block.consequent : block.body; + for (const stmt of body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } else if (stmt.type === "SwitchStatement") { + walkSwitchStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } +} +function walkSwitchStatement(stmt, isVar, onIdent) { + for (const cs of stmt.cases) { + for (const stmt2 of cs.consequent) { + if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) { + for (const decl of stmt2.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } + } + walkBlockDeclarations(cs, onIdent); + } +} +function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = NOOP ; +const isMemberExpression = isMemberExpressionBrowser ; +const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpressionNode = NOOP ; +const isFnExpression = isFnExpressionBrowser ; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVPre(p) { + return p.type === 7 && p.name === "pre"; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); +} +function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); +} + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: NO, + isPreTag: NO, + isIgnoreNewlineTag: NO, + isCustomElement: NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = currentOptions.decodeEntities(exp, false); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentAttrValue.includes("&")) { + currentAttrValue = currentOptions.decodeEntities( + currentAttrValue, + true + ); + } + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.arg.loc.source + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + { + const tag = stack[0] && stack[0].tag; + if (tag !== "script" && tag !== "style" && content.includes("&")) { + content = currentOptions.decodeEntities(content, false); + } + } + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (isCompatEnabled( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions + )) { + let hasIf = false; + let hasFor = false; + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 7) { + if (p.name === "if") { + hasIf = true; + } else if (p.name === "for") { + hasFor = true; + } + } + if (hasIf && hasFor) { + warnDeprecation( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions, + el.loc + ); + break; + } + } + } + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + warnDeprecation( + "COMPILER_NATIVE_TEMPLATE", + currentOptions, + el.loc + ); + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (!currentOptions.decodeEntities) { + throw new Error( + `[@vue/compiler-core] decodeEntities option is required in browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); +} +function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; +} +function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (` /* ${PatchFlagNames[-1]} */` ) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: NOOP, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const preambleContext = context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node, -3 /* Unknown */); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} + +const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" +); +const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; +function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + message + ) + ); + } +} + +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } +} +function stringifyExpression(exp) { + if (isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} + +const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + { + validateBrowserExpression(result.source, context); + if (result.key) { + validateBrowserExpression( + result.key, + context, + true + ); + } + if (result.index) { + validateBrowserExpression( + result.index, + context, + true + ); + } + if (result.value) { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + { + pushMergeArg(); + { + const hasOverridableKeys = mergeArgs.some((arg2) => { + if (arg2.type === 15) { + return arg2.properties.some(({ key }) => { + if (key.type !== 4 || !key.isStatic) { + return true; + } + return key.content !== "class" && key.content !== "style" && !isOn(key.content); + }); + } else { + return true; + } + }); + if (hasOverridableKeys) { + checkCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context, + loc + ); + } + } + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp); + const isInlineStatement = !(isMemberExp || isFnExpression(exp)); + const hasMultipleStatements = exp.content.includes(`;`); + { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + exp = void 0; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + if (!expString.trim() || !isMemberExpression(exp) && true) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const validDivisionCharRE = /[\w).+\-_$\]]/; +const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } +}; +function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } +} +function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + warnDeprecation( + "COMPILER_FILTERS", + context, + node.loc + ); + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } +} +function wrapFilter(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...[transformExpression] , + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(48)); + } else if (isModuleMode) { + onError(createCompilerError(49)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }); + const ast = isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` ); +const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `vModelCheckbox` +); +const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` ); +const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `vModelSelect` +); +const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `vModelDynamic` +); +const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `vOnModifiersGuard` +); +const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `vOnKeysGuard` +); +const V_SHOW = /* @__PURE__ */ Symbol(`vShow` ); +const TRANSITION = /* @__PURE__ */ Symbol(`Transition` ); +const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `TransitionGroup` +); +registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +let decoder; +function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } +} + +const parserOptions = { + parseMode: "html", + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); +} +const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 54, + "54": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 55, + "55": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 56, + "56": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 57, + "57": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 58, + "58": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 59, + "59": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60, + "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 61, + "61": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 62, + "62": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 63, + "63": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 64, + "64": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 65, + "65": "__EXTEND_POINT__" +}; +const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findDir(node, "bind"); + if (value && isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } +}; +function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } +}; + +function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; +} +const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); +const emptySet = /* @__PURE__ */ new Set([]); +const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet +}; +const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) +}; +const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) +}; +const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings +}; + +const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] +]; +const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile(src, options = {}) { + return baseCompile( + src, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); +} +function parse(template, options = {}) { + return baseParse(template, extend({}, parserOptions, options)); +} + +export { BASE_TRANSITION, BindingTypes, CAMELIZE, CAPITALIZE, CREATE_BLOCK, CREATE_COMMENT, CREATE_ELEMENT_BLOCK, CREATE_ELEMENT_VNODE, CREATE_SLOTS, CREATE_STATIC, CREATE_TEXT, CREATE_VNODE, CompilerDeprecationTypes, ConstantTypes, DOMDirectiveTransforms, DOMErrorCodes, DOMErrorMessages, DOMNodeTransforms, ElementTypes, ErrorCodes, FRAGMENT, GUARD_REACTIVE_PROPS, IS_MEMO_SAME, IS_REF, KEEP_ALIVE, MERGE_PROPS, NORMALIZE_CLASS, NORMALIZE_PROPS, NORMALIZE_STYLE, Namespaces, NodeTypes, OPEN_BLOCK, POP_SCOPE_ID, PUSH_SCOPE_ID, RENDER_LIST, RENDER_SLOT, RESOLVE_COMPONENT, RESOLVE_DIRECTIVE, RESOLVE_DYNAMIC_COMPONENT, RESOLVE_FILTER, SET_BLOCK_TRACKING, SUSPENSE, TELEPORT, TO_DISPLAY_STRING, TO_HANDLERS, TO_HANDLER_KEY, TRANSITION, TRANSITION_GROUP, TS_NODE_TYPES, UNREF, V_MODEL_CHECKBOX, V_MODEL_DYNAMIC, V_MODEL_RADIO, V_MODEL_SELECT, V_MODEL_TEXT, V_ON_WITH_KEYS, V_ON_WITH_MODIFIERS, V_SHOW, WITH_CTX, WITH_DIRECTIVES, WITH_MEMO, advancePositionWithClone, advancePositionWithMutation, assert, baseCompile, baseParse, buildDirectiveArgs, buildProps, buildSlots, checkCompatEnabled, compile, convertToBlock, createArrayExpression, createAssignmentExpression, createBlockStatement, createCacheExpression, createCallExpression, createCompilerError, createCompoundExpression, createConditionalExpression, createDOMCompilerError, createForLoopParams, createFunctionExpression, createIfStatement, createInterpolation, createObjectExpression, createObjectProperty, createReturnStatement, createRoot, createSequenceExpression, createSimpleExpression, createStructuralDirectiveTransform, createTemplateLiteral, createTransformContext, createVNodeCall, errorMessages, extractIdentifiers, findDir, findProp, forAliasRE, generate, generateCodeFrame, getBaseTransformPreset, getConstantType, getMemoedVNodeCall, getVNodeBlockHelper, getVNodeHelper, hasDynamicKeyVBind, hasScopeRef, helperNameMap, injectProp, isAllWhitespace, isCommentOrWhitespace, isCoreComponent, isFnExpression, isFnExpressionBrowser, isFnExpressionNode, isFunctionType, isInDestructureAssignment, isInNewExpression, isMemberExpression, isMemberExpressionBrowser, isMemberExpressionNode, isReferencedIdentifier, isSimpleIdentifier, isSlotOutlet, isStaticArgOf, isStaticExp, isStaticProperty, isStaticPropertyKey, isTemplateNode, isText$1 as isText, isVPre, isVSlot, isWhitespaceText, locStub, noopDirectiveTransform, parse, parserOptions, processExpression, processFor, processIf, processSlotOutlet, registerRuntimeHelpers, resolveComponentType, stringifyExpression, toValidAssetId, trackSlotScopes, trackVForSlotScopes, transform, transformBind, transformElement, transformExpression, transformModel$1 as transformModel, transformOn$1 as transformOn, transformStyle, transformVBindShorthand, traverseNode, unwrapTSNode, validFirstIdentCharRE, walkBlockDeclarations, walkFunctionParams, walkIdentifiers, warnDeprecation }; diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js new file mode 100644 index 0000000..de1bb76 --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js @@ -0,0 +1,14 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let e;function t(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let n={},i=()=>{},s=()=>!1,r=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),o=Object.assign,a=Array.isArray,l=e=>"string"==typeof e,c=e=>"symbol"==typeof e,h=e=>null!==e&&"object"==typeof e,d=t(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),p=t("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),u=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},f=/-\w/g,E=u(e=>e.replace(f,e=>e.slice(1).toUpperCase())),_=u(e=>e.charAt(0).toUpperCase()+e.slice(1)),m=u(e=>e?`on${_(e)}`:"");function S(e,t=0,n=e.length){if((t=Math.max(0,Math.min(t,e.length)))>(n=Math.max(0,Math.min(n,e.length))))return"";let i=e.split(/(\r?\n)/),s=i.filter((e,t)=>t%2==1);i=i.filter((e,t)=>t%2==0);let r=0,o=[];for(let e=0;e<i.length;e++)if((r+=i[e].length+(s[e]&&s[e].length||0))>=t){for(let a=e-2;a<=e+2||n>r;a++){if(a<0||a>=i.length)continue;let l=a+1;o.push(`${l}${" ".repeat(Math.max(3-String(l).length,0))}| ${i[a]}`);let c=i[a].length,h=s[a]&&s[a].length||0;if(a===e){let e=t-(r-(c+h)),i=Math.max(1,n>r?c-e:n-t);o.push(" | "+" ".repeat(e)+"^".repeat(i))}else if(a>e){if(n>r){let e=Math.max(Math.min(n-r,c),1);o.push(" | "+"^".repeat(e))}r+=c+h}}break}return o.join(` +`)}let g=/;(?![^(]*\))/g,T=/:([^]+)/,N=/\/\*[^]*?\*\//g,I=t("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),y=t("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),O=t("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),A=t("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),C=Symbol(""),b=Symbol(""),v=Symbol(""),R=Symbol(""),x=Symbol(""),L=Symbol(""),M=Symbol(""),D=Symbol(""),P=Symbol(""),V=Symbol(""),k=Symbol(""),X=Symbol(""),w=Symbol(""),U=Symbol(""),F=Symbol(""),B=Symbol(""),$=Symbol(""),H=Symbol(""),G=Symbol(""),q=Symbol(""),J=Symbol(""),j=Symbol(""),W=Symbol(""),K=Symbol(""),Y=Symbol(""),Q=Symbol(""),z=Symbol(""),Z=Symbol(""),ee=Symbol(""),et=Symbol(""),en=Symbol(""),ei=Symbol(""),es=Symbol(""),er=Symbol(""),eo=Symbol(""),ea=Symbol(""),el=Symbol(""),ec=Symbol(""),eh=Symbol(""),ed={[C]:"Fragment",[b]:"Teleport",[v]:"Suspense",[R]:"KeepAlive",[x]:"BaseTransition",[L]:"openBlock",[M]:"createBlock",[D]:"createElementBlock",[P]:"createVNode",[V]:"createElementVNode",[k]:"createCommentVNode",[X]:"createTextVNode",[w]:"createStaticVNode",[U]:"resolveComponent",[F]:"resolveDynamicComponent",[B]:"resolveDirective",[$]:"resolveFilter",[H]:"withDirectives",[G]:"renderList",[q]:"renderSlot",[J]:"createSlots",[j]:"toDisplayString",[W]:"mergeProps",[K]:"normalizeClass",[Y]:"normalizeStyle",[Q]:"normalizeProps",[z]:"guardReactiveProps",[Z]:"toHandlers",[ee]:"camelize",[et]:"capitalize",[en]:"toHandlerKey",[ei]:"setBlockTracking",[es]:"pushScopeId",[er]:"popScopeId",[eo]:"withCtx",[ea]:"unref",[el]:"isRef",[ec]:"withMemo",[eh]:"isMemoSame"};function ep(e){Object.getOwnPropertySymbols(e).forEach(t=>{ed[t]=e[t]})}let eu={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},ef={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},eE={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},e_={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},em={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function eS(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:em}}function eg(e,t,n,i,s,r,o,a=!1,l=!1,c=!1,h=em){return e&&(a?(e.helper(L),e.helper(eX(e.inSSR,c))):e.helper(ek(e.inSSR,c)),o&&e.helper(H)),{type:13,tag:t,props:n,children:i,patchFlag:s,dynamicProps:r,directives:o,isBlock:a,disableTracking:l,isComponent:c,loc:h}}function eT(e,t=em){return{type:17,loc:t,elements:e}}function eN(e,t=em){return{type:15,loc:t,properties:e}}function eI(e,t){return{type:16,loc:em,key:l(e)?ey(e,!0):e,value:t}}function ey(e,t=!1,n=em,i=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:i}}function eO(e,t){return{type:5,loc:t,content:l(e)?ey(e,!1,t):e}}function eA(e,t=em){return{type:8,loc:t,children:e}}function eC(e,t=[],n=em){return{type:14,loc:n,callee:e,arguments:t}}function eb(e,t,n=!1,i=!1,s=em){return{type:18,params:e,returns:t,newline:n,isSlot:i,loc:s}}function ev(e,t,n,i=!0){return{type:19,test:e,consequent:t,alternate:n,newline:i,loc:em}}function eR(e,t,n=!1,i=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:i,needArraySpread:!1,loc:em}}function ex(e){return{type:21,body:e,loc:em}}function eL(e){return{type:22,elements:e,loc:em}}function eM(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:em}}function eD(e,t){return{type:24,left:e,right:t,loc:em}}function eP(e){return{type:25,expressions:e,loc:em}}function eV(e){return{type:26,returns:e,loc:em}}function ek(e,t){return e||t?P:V}function eX(e,t){return e||t?M:D}function ew(e,{helper:t,removeHelper:n,inSSR:i}){e.isBlock||(e.isBlock=!0,n(ek(i,e.isComponent)),t(L),t(eX(i,e.isComponent)))}let eU=new Uint8Array([123,123]),eF=new Uint8Array([125,125]);function eB(e){return e>=97&&e<=122||e>=65&&e<=90}function e$(e){return 32===e||10===e||9===e||12===e||13===e}function eH(e){return 47===e||62===e||e$(e)}function eG(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}let eq={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])},eJ={COMPILER_IS_ON_ELEMENT:"COMPILER_IS_ON_ELEMENT",COMPILER_V_BIND_SYNC:"COMPILER_V_BIND_SYNC",COMPILER_V_BIND_OBJECT_ORDER:"COMPILER_V_BIND_OBJECT_ORDER",COMPILER_V_ON_NATIVE:"COMPILER_V_ON_NATIVE",COMPILER_V_IF_V_FOR_PRECEDENCE:"COMPILER_V_IF_V_FOR_PRECEDENCE",COMPILER_NATIVE_TEMPLATE:"COMPILER_NATIVE_TEMPLATE",COMPILER_INLINE_TEMPLATE:"COMPILER_INLINE_TEMPLATE",COMPILER_FILTERS:"COMPILER_FILTERS"},ej={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:e=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${e}.sync\` should be changed to \`v-model:${e}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.",link:"https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html"},COMPILER_NATIVE_TEMPLATE:{message:"<template> with no special directives will render as a native template element instead of its inner content in Vue 3."},COMPILER_INLINE_TEMPLATE:{message:'"inline-template" has been removed in Vue 3.',link:"https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html"},COMPILER_FILTERS:{message:'filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.',link:"https://v3-migration.vuejs.org/breaking-changes/filters.html"}};function eW(e,{compatConfig:t}){let n=t&&t[e];return"MODE"===e?n||3:n}function eK(e,t){let n=eW("MODE",t),i=eW(e,t);return 3===n?!0===i:!1!==i}function eY(e,t,n){return eK(e,t)}function eQ(e,t,n,...i){if("suppress-warning"===eW(e,t))return;let{message:s,link:r}=ej[e],o=SyntaxError(`(deprecation ${e}) ${"function"==typeof s?s(...i):s}${r?` + Details: ${r}`:""}`);o.code=e,n&&(o.loc=n),t.onWarn(o)}function ez(e){throw e}function eZ(e){}function e1(e,t,n,i){let s=SyntaxError(String(`https://vuejs.org/error-reference/#compiler-${e}`));return s.code=e,s.loc=t,s}let e0={ABRUPT_CLOSING_OF_EMPTY_COMMENT:0,0:"ABRUPT_CLOSING_OF_EMPTY_COMMENT",CDATA_IN_HTML_CONTENT:1,1:"CDATA_IN_HTML_CONTENT",DUPLICATE_ATTRIBUTE:2,2:"DUPLICATE_ATTRIBUTE",END_TAG_WITH_ATTRIBUTES:3,3:"END_TAG_WITH_ATTRIBUTES",END_TAG_WITH_TRAILING_SOLIDUS:4,4:"END_TAG_WITH_TRAILING_SOLIDUS",EOF_BEFORE_TAG_NAME:5,5:"EOF_BEFORE_TAG_NAME",EOF_IN_CDATA:6,6:"EOF_IN_CDATA",EOF_IN_COMMENT:7,7:"EOF_IN_COMMENT",EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT:8,8:"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT",EOF_IN_TAG:9,9:"EOF_IN_TAG",INCORRECTLY_CLOSED_COMMENT:10,10:"INCORRECTLY_CLOSED_COMMENT",INCORRECTLY_OPENED_COMMENT:11,11:"INCORRECTLY_OPENED_COMMENT",INVALID_FIRST_CHARACTER_OF_TAG_NAME:12,12:"INVALID_FIRST_CHARACTER_OF_TAG_NAME",MISSING_ATTRIBUTE_VALUE:13,13:"MISSING_ATTRIBUTE_VALUE",MISSING_END_TAG_NAME:14,14:"MISSING_END_TAG_NAME",MISSING_WHITESPACE_BETWEEN_ATTRIBUTES:15,15:"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES",NESTED_COMMENT:16,16:"NESTED_COMMENT",UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME:17,17:"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME",UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE:18,18:"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE",UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME:19,19:"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME",UNEXPECTED_NULL_CHARACTER:20,20:"UNEXPECTED_NULL_CHARACTER",UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME:21,21:"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME",UNEXPECTED_SOLIDUS_IN_TAG:22,22:"UNEXPECTED_SOLIDUS_IN_TAG",X_INVALID_END_TAG:23,23:"X_INVALID_END_TAG",X_MISSING_END_TAG:24,24:"X_MISSING_END_TAG",X_MISSING_INTERPOLATION_END:25,25:"X_MISSING_INTERPOLATION_END",X_MISSING_DIRECTIVE_NAME:26,26:"X_MISSING_DIRECTIVE_NAME",X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END:27,27:"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END",X_V_IF_NO_EXPRESSION:28,28:"X_V_IF_NO_EXPRESSION",X_V_IF_SAME_KEY:29,29:"X_V_IF_SAME_KEY",X_V_ELSE_NO_ADJACENT_IF:30,30:"X_V_ELSE_NO_ADJACENT_IF",X_V_FOR_NO_EXPRESSION:31,31:"X_V_FOR_NO_EXPRESSION",X_V_FOR_MALFORMED_EXPRESSION:32,32:"X_V_FOR_MALFORMED_EXPRESSION",X_V_FOR_TEMPLATE_KEY_PLACEMENT:33,33:"X_V_FOR_TEMPLATE_KEY_PLACEMENT",X_V_BIND_NO_EXPRESSION:34,34:"X_V_BIND_NO_EXPRESSION",X_V_ON_NO_EXPRESSION:35,35:"X_V_ON_NO_EXPRESSION",X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET:36,36:"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET",X_V_SLOT_MIXED_SLOT_USAGE:37,37:"X_V_SLOT_MIXED_SLOT_USAGE",X_V_SLOT_DUPLICATE_SLOT_NAMES:38,38:"X_V_SLOT_DUPLICATE_SLOT_NAMES",X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN:39,39:"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN",X_V_SLOT_MISPLACED:40,40:"X_V_SLOT_MISPLACED",X_V_MODEL_NO_EXPRESSION:41,41:"X_V_MODEL_NO_EXPRESSION",X_V_MODEL_MALFORMED_EXPRESSION:42,42:"X_V_MODEL_MALFORMED_EXPRESSION",X_V_MODEL_ON_SCOPE_VARIABLE:43,43:"X_V_MODEL_ON_SCOPE_VARIABLE",X_V_MODEL_ON_PROPS:44,44:"X_V_MODEL_ON_PROPS",X_V_MODEL_ON_CONST:45,45:"X_V_MODEL_ON_CONST",X_INVALID_EXPRESSION:46,46:"X_INVALID_EXPRESSION",X_KEEP_ALIVE_INVALID_CHILDREN:47,47:"X_KEEP_ALIVE_INVALID_CHILDREN",X_PREFIX_ID_NOT_SUPPORTED:48,48:"X_PREFIX_ID_NOT_SUPPORTED",X_MODULE_MODE_NOT_SUPPORTED:49,49:"X_MODULE_MODE_NOT_SUPPORTED",X_CACHE_HANDLER_NOT_SUPPORTED:50,50:"X_CACHE_HANDLER_NOT_SUPPORTED",X_SCOPE_ID_NOT_SUPPORTED:51,51:"X_SCOPE_ID_NOT_SUPPORTED",X_VNODE_HOOKS:52,52:"X_VNODE_HOOKS",X_V_BIND_INVALID_SAME_NAME_ARGUMENT:53,53:"X_V_BIND_INVALID_SAME_NAME_ARGUMENT",__EXTEND_POINT__:54,54:"__EXTEND_POINT__"},e2={0:"Illegal comment.",1:"CDATA section is allowed only in XML context.",2:"Duplicate attribute.",3:"End tag cannot have attributes.",4:"Illegal '/' in tags.",5:"Unexpected EOF in tag.",6:"Unexpected EOF in CDATA section.",7:"Unexpected EOF in comment.",8:"Unexpected EOF in script.",9:"Unexpected EOF in tag.",10:"Incorrectly closed comment.",11:"Incorrectly opened comment.",12:"Illegal tag name. Use '<' to print '<'.",13:"Attribute value was expected.",14:"End tag name was expected.",15:"Whitespace was expected.",16:"Unexpected '\x3c!--' in comment.",17:"Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).",18:"Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",19:"Attribute name cannot start with '='.",21:"'<?' is allowed only in XML context.",20:"Unexpected null character.",22:"Illegal '/' in tags.",23:"Invalid end tag.",24:"Element is missing end tag.",25:"Interpolation end sign was not found.",27:"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",26:"Legal directive name was expected.",28:"v-if/v-else-if is missing expression.",29:"v-if/else branches must use unique keys.",30:"v-else/v-else-if has no adjacent v-if or v-else-if.",31:"v-for is missing expression.",32:"v-for has invalid expression.",33:"<template v-for> key should be placed on the <template> tag.",34:"v-bind is missing expression.",53:"v-bind with same-name shorthand only allows static argument.",35:"v-on is missing expression.",36:"Unexpected custom directive on <slot> outlet.",37:"Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",38:"Duplicate slot names found. ",39:"Extraneous children found when component already has explicitly named default slot. These children will be ignored.",40:"v-slot can only be used on components or <template> tags.",41:"v-model is missing expression.",42:"v-model value must be a valid JavaScript member expression.",43:"v-model cannot be used on v-for or v-slot scope variables because they are not writable.",44:`v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,45:"v-model cannot be used on a const binding because it is not writable.",46:"Error parsing JavaScript expression: ",47:"<KeepAlive> expects exactly one child component.",52:"@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.",48:'"prefixIdentifiers" option is not supported in this build of compiler.',49:"ES module mode is not supported in this build of compiler.",50:'"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',51:'"scopeId" option is only supported in module mode.',54:""};function e3(e,t,n=!1,i=[],s=Object.create(null)){}function e4(e,t,n){return!1}function e6(e,t){if(e&&("ObjectProperty"===e.type||"ArrayPattern"===e.type)){let e=t.length;for(;e--;){let n=t[e];if("AssignmentExpression"===n.type)return!0;if("ObjectProperty"!==n.type&&!n.type.endsWith("Pattern"))break}}return!1}function e5(e){let t=e.length;for(;t--;){let n=e[t];if("NewExpression"===n.type)return!0;if("MemberExpression"!==n.type)break}return!1}function e9(e,t){for(let n of e.params)for(let e of e8(n))t(e)}function e7(e,t){for(let i of"SwitchCase"===e.type?e.consequent:e.body)if("VariableDeclaration"===i.type){if(i.declare)continue;for(let e of i.declarations)for(let n of e8(e.id))t(n)}else if("FunctionDeclaration"===i.type||"ClassDeclaration"===i.type){if(i.declare||!i.id)continue;t(i.id)}else{var n;"ForOfStatement"===(n=i).type||"ForInStatement"===n.type||"ForStatement"===n.type?function(e,t,n){let i="ForStatement"===e.type?e.init:e.left;if(i&&"VariableDeclaration"===i.type&&("var"===i.kind?t:!t))for(let e of i.declarations)for(let t of e8(e.id))n(t)}(i,!0,t):"SwitchStatement"===i.type&&function(e,t,n){for(let i of e.cases){for(let e of i.consequent)if("VariableDeclaration"===e.type&&("var"===e.kind?t:!t))for(let t of e.declarations)for(let e of e8(t.id))n(e);e7(i,n)}}(i,!0,t)}}function e8(e,t=[]){switch(e.type){case"Identifier":t.push(e);break;case"MemberExpression":let n=e;for(;"MemberExpression"===n.type;)n=n.object;t.push(n);break;case"ObjectPattern":for(let n of e.properties)"RestElement"===n.type?e8(n.argument,t):e8(n.value,t);break;case"ArrayPattern":e.elements.forEach(e=>{e&&e8(e,t)});break;case"RestElement":e8(e.argument,t);break;case"AssignmentPattern":e8(e.left,t)}return t}let te=e=>/Function(?:Expression|Declaration)$|Method$/.test(e.type),tt=e=>e&&("ObjectProperty"===e.type||"ObjectMethod"===e.type)&&!e.computed,tn=(e,t)=>tt(t)&&t.key===e,ti=["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"];function ts(e){return ti.includes(e.type)?ts(e.expression):e}let tr=e=>4===e.type&&e.isStatic;function to(e){switch(e){case"Teleport":case"teleport":return b;case"Suspense":case"suspense":return v;case"KeepAlive":case"keep-alive":return R;case"BaseTransition":case"base-transition":return x}}let ta=/^$|^\d|[^\$\w\xA0-\uFFFF]/,tl=e=>!ta.test(e),tc=/[A-Za-z_$\xA0-\uFFFF]/,th=/[\.\?\w$\xA0-\uFFFF]/,td=/\s+[.[]\s*|\s*[.[]\s+/g,tp=e=>4===e.type?e.content:e.loc.source,tu=e=>{let t=tp(e).trim().replace(td,e=>e.trim()),n=0,i=[],s=0,r=0,o=null;for(let e=0;e<t.length;e++){let a=t.charAt(e);switch(n){case 0:if("["===a)i.push(n),n=1,s++;else if("("===a)i.push(n),n=2,r++;else if(!(0===e?tc:th).test(a))return!1;break;case 1:"'"===a||'"'===a||"`"===a?(i.push(n),n=3,o=a):"["===a?s++:"]"!==a||--s||(n=i.pop());break;case 2:if("'"===a||'"'===a||"`"===a)i.push(n),n=3,o=a;else if("("===a)r++;else if(")"===a){if(e===t.length-1)return!1;--r||(n=i.pop())}break;case 3:a===o&&(n=i.pop(),o=null)}}return!s&&!r},tf=i,tE=tu,t_=/^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/,tm=e=>t_.test(tp(e)),tS=i,tg=tm;function tT(e,t,n=t.length){return tN({offset:e.offset,line:e.line,column:e.column},t,n)}function tN(e,t,n=t.length){let i=0,s=-1;for(let e=0;e<n;e++)10===t.charCodeAt(e)&&(i++,s=e);return e.offset+=n,e.line+=i,e.column=-1===s?e.column+n:n-s,e}function tI(e,t){if(!e)throw Error(t||"unexpected compiler condition")}function ty(e,t,n=!1){for(let i=0;i<e.props.length;i++){let s=e.props[i];if(7===s.type&&(n||s.exp)&&(l(t)?s.name===t:t.test(s.name)))return s}}function tO(e,t,n=!1,i=!1){for(let s=0;s<e.props.length;s++){let r=e.props[s];if(6===r.type){if(n)continue;if(r.name===t&&(r.value||i))return r}else if("bind"===r.name&&(r.exp||i)&&tA(r.arg,t))return r}}function tA(e,t){return!!(e&&tr(e)&&e.content===t)}function tC(e){return e.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))}function tb(e){return 5===e.type||2===e.type}function tv(e){return 7===e.type&&"pre"===e.name}function tR(e){return 7===e.type&&"slot"===e.name}function tx(e){return 1===e.type&&3===e.tagType}function tL(e){return 1===e.type&&2===e.tagType}let tM=new Set([Q,z]);function tD(e,t,n){let i,s,r=13===e.type?e.props:e.arguments[2],o=[];if(r&&!l(r)&&14===r.type){let e=function e(t,n=[]){if(t&&!l(t)&&14===t.type){let i=t.callee;if(!l(i)&&tM.has(i))return e(t.arguments[0],n.concat(t))}return[t,n]}(r);r=e[0],s=(o=e[1])[o.length-1]}if(null==r||l(r))i=eN([t]);else if(14===r.type){let e=r.arguments[0];l(e)||15!==e.type?r.callee===Z?i=eC(n.helper(W),[eN([t]),r]):r.arguments.unshift(eN([t])):tP(t,e)||e.properties.unshift(t),i||(i=r)}else 15===r.type?(tP(t,r)||r.properties.unshift(t),i=r):(i=eC(n.helper(W),[eN([t]),r]),s&&s.callee===z&&(s=o[o.length-2]));13===e.type?s?s.arguments[0]=i:e.props=i:s?s.arguments[0]=i:e.arguments[2]=i}function tP(e,t){let n=!1;if(4===e.key.type){let i=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===i)}return n}function tV(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}function tk(e,t){if(!e||0===Object.keys(t).length)return!1;switch(e.type){case 1:for(let n=0;n<e.props.length;n++){let i=e.props[n];if(7===i.type&&(tk(i.arg,t)||tk(i.exp,t)))return!0}return e.children.some(e=>tk(e,t));case 11:if(tk(e.source,t))return!0;return e.children.some(e=>tk(e,t));case 9:return e.branches.some(e=>tk(e,t));case 10:if(tk(e.condition,t))return!0;return e.children.some(e=>tk(e,t));case 4:return!e.isStatic&&tl(e.content)&&!!t[e.content];case 8:return e.children.some(e=>h(e)&&tk(e,t));case 5:case 12:return tk(e.content,t);default:return!1}}function tX(e){return 14===e.type&&e.callee===ec?e.arguments[1].returns:e}let tw=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function tU(e){for(let t=0;t<e.length;t++)if(!e$(e.charCodeAt(t)))return!1;return!0}function tF(e){return 2===e.type&&tU(e.content)||12===e.type&&tF(e.content)}function tB(e){return 3===e.type||tF(e)}let t$={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:s,isPreTag:s,isIgnoreNewlineTag:s,isCustomElement:s,onError:ez,onWarn:eZ,comments:!1,prefixIdentifiers:!1},tH=t$,tG=null,tq="",tJ=null,tj=null,tW="",tK=-1,tY=-1,tQ=0,tz=!1,tZ=null,t1=[],t0=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=eU,this.delimiterClose=eF,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=eU,this.delimiterClose=eF}getPos(e){let t=1,n=e+1,i=this.newlines.length,s=-1;if(i>100){let t=-1,n=i;for(;t+1<n;){let i=t+n>>>1;this.newlines[i]<e?t=i:n=i}s=t}else for(let t=i-1;t>=0;t--)if(e>this.newlines[t]){s=t;break}return s>=0&&(t=s+2,n=e-this.newlines[s]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?eH(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||e$(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.sectionStart=t+2,this.stateInClosingTagName(e),this.inRCDATA=!1;return}this.sequenceIndex=0}(32|e)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:0===this.sequenceIndex?this.currentSequence!==eq.TitleEnd&&(this.currentSequence!==eq.TextareaEnd||this.inSFCRoot)?this.fastForwardTo(60)&&(this.sequenceIndex=1):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.sequenceIndex=Number(60===e)}stateCDATASequence(e){e===eq.Cdata[this.sequenceIndex]?++this.sequenceIndex===eq.Cdata.length&&(this.state=28,this.currentSequence=eq.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){let t=this.buffer.charCodeAt(this.index);if(10===t&&this.newlines.push(this.index),t===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===eq.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):0===this.sequenceIndex?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,t){this.enterRCDATA(e,t),this.state=31}enterRCDATA(e,t){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=t}stateBeforeTagName(e){33===e?(this.state=22,this.sectionStart=this.index+1):63===e?(this.state=24,this.sectionStart=this.index+1):eB(e)?(this.sectionStart=this.index,0===this.mode?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:116===e?this.state=30:this.state=115===e?29:6):47===e?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){eH(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(eH(e)){let t=this.buffer.slice(this.sectionStart,this.index);"template"!==t&&this.enterRCDATA(eG("</"+t),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){e$(e)||(62===e?(this.state=1,this.sectionStart=this.index+1):(this.state=eB(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(62===e||e$(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){62===e&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){62===e?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):47===e?this.state=7:60===e&&47===this.peek()?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):e$(e)||this.handleAttrStart(e)}handleAttrStart(e){118===e&&45===this.peek()?(this.state=13,this.sectionStart=this.index):46===e||58===e||64===e||35===e?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){62===e?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):e$(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){(61===e||eH(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e))}stateInDirName(e){61===e||eH(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):58===e?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):46===e&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){61===e||eH(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):91===e?this.state=15:46===e&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){93===e?this.state=14:(61===e||eH(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e))}stateInDirModifier(e){61===e||eH(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):46===e&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){61===e?this.state=18:47===e||62===e?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):e$(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){34===e?(this.state=19,this.sectionStart=this.index+1):39===e?(this.state=20,this.sectionStart=this.index+1):e$(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,t){(e===t||this.fastForwardTo(t))&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(34===t?3:2,this.index+1),this.state=11)}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){e$(e)||62===e?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):(39===e||60===e||61===e||96===e)&&this.cbs.onerr(18,this.index)}stateBeforeDeclaration(e){91===e?(this.state=26,this.sequenceIndex=0):this.state=45===e?25:23}stateInDeclaration(e){(62===e||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(62===e||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){45===e?(this.state=28,this.currentSequence=eq.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(62===e||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===eq.ScriptEnd[3]?this.startSpecial(eq.ScriptEnd,4):e===eq.StyleEnd[3]?this.startSpecial(eq.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===eq.TitleEnd[3]?this.startSpecial(eq.TitleEnd,4):e===eq.TextareaEnd[3]?this.startSpecial(eq.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){}stateInEntity(){}parse(e){for(this.buffer=e;this.index<this.buffer.length;){let e=this.buffer.charCodeAt(this.index);switch(10===e&&33!==this.state&&this.newlines.push(this.index),this.state){case 1:this.stateText(e);break;case 2:this.stateInterpolationOpen(e);break;case 3:this.stateInterpolation(e);break;case 4:this.stateInterpolationClose(e);break;case 31:this.stateSpecialStartSequence(e);break;case 32:this.stateInRCDATA(e);break;case 26:this.stateCDATASequence(e);break;case 19:this.stateInAttrValueDoubleQuotes(e);break;case 12:this.stateInAttrName(e);break;case 13:this.stateInDirName(e);break;case 14:this.stateInDirArg(e);break;case 15:this.stateInDynamicDirArg(e);break;case 16:this.stateInDirModifier(e);break;case 28:this.stateInCommentLike(e);break;case 27:this.stateInSpecialComment(e);break;case 11:this.stateBeforeAttrName(e);break;case 6:this.stateInTagName(e);break;case 34:this.stateInSFCRootTagName(e);break;case 9:this.stateInClosingTagName(e);break;case 5:this.stateBeforeTagName(e);break;case 17:this.stateAfterAttrName(e);break;case 20:this.stateInAttrValueSingleQuotes(e);break;case 18:this.stateBeforeAttrValue(e);break;case 8:this.stateBeforeClosingTagName(e);break;case 10:this.stateAfterClosingTagName(e);break;case 29:this.stateBeforeSpecialS(e);break;case 30:this.stateBeforeSpecialT(e);break;case 21:this.stateInAttrValueNoQuotes(e);break;case 7:this.stateInSelfClosingTag(e);break;case 23:this.stateInDeclaration(e);break;case 22:this.stateBeforeDeclaration(e);break;case 25:this.stateBeforeComment(e);break;case 24:this.stateInProcessingInstruction(e);break;case 33:this.stateInEntity()}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(1===this.state||32===this.state&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(19===this.state||20===this.state||21===this.state)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length;this.sectionStart>=e||(28===this.state?this.currentSequence===eq.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(t1,{onerr:nl,ontext(e,t){t5(t4(e,t),e,t)},ontextentity(e,t,n){t5(e,t,n)},oninterpolation(e,t){if(tz)return t5(t4(e,t),e,t);let n=e+t0.delimiterOpen.length,i=t-t0.delimiterClose.length;for(;e$(tq.charCodeAt(n));)n++;for(;e$(tq.charCodeAt(i-1));)i--;let s=t4(n,i);s.includes("&")&&(s=tH.decodeEntities(s,!1)),ns({type:5,content:na(s,!1,nr(n,i)),loc:nr(e,t)})},onopentagname(e,t){let n=t4(e,t);tJ={type:1,tag:n,ns:tH.getNamespace(n,t1[0],tH.ns),tagType:0,props:[],children:[],loc:nr(e-1,t),codegenNode:void 0}},onopentagend(e){t6(e)},onclosetag(e,t){let n=t4(e,t);if(!tH.isVoidTag(n)){let i=!1;for(let e=0;e<t1.length;e++)if(t1[e].tag.toLowerCase()===n.toLowerCase()){i=!0,e>0&&t1[0].loc.start.offset;for(let n=0;n<=e;n++)t9(t1.shift(),t,n<e);break}i||t7(e,60)}},onselfclosingtag(e){let t=tJ.tag;tJ.isSelfClosing=!0,t6(e),t1[0]&&t1[0].tag===t&&t9(t1.shift(),e)},onattribname(e,t){tj={type:6,name:t4(e,t),nameLoc:nr(e,t),value:void 0,loc:nr(e)}},ondirname(e,t){let n=t4(e,t),i="."===n||":"===n?"bind":"@"===n?"on":"#"===n?"slot":n.slice(2);if(tz||""===i)tj={type:6,name:n,nameLoc:nr(e,t),value:void 0,loc:nr(e)};else if(tj={type:7,name:i,rawName:n,exp:void 0,arg:void 0,modifiers:"."===n?[ey("prop")]:[],loc:nr(e)},"pre"===i){tz=t0.inVPre=!0,tZ=tJ;let e=tJ.props;for(let t=0;t<e.length;t++)7===e[t].type&&(e[t]=function(e){let t={type:6,name:e.rawName,nameLoc:nr(e.loc.start.offset,e.loc.start.offset+e.rawName.length),value:void 0,loc:e.loc};if(e.exp){let n=e.exp.loc;n.end.offset<e.loc.end.offset&&(n.start.offset--,n.start.column--,n.end.offset++,n.end.column++),t.value={type:2,content:e.exp.content,loc:n}}return t}(e[t]))}},ondirarg(e,t){if(e===t)return;let n=t4(e,t);if(tz&&!tv(tj))tj.name+=n,no(tj.nameLoc,t);else{let i="["!==n[0];tj.arg=na(i?n:n.slice(1,-1),i,nr(e,t),3*!!i)}},ondirmodifier(e,t){let n=t4(e,t);if(tz&&!tv(tj))tj.name+="."+n,no(tj.nameLoc,t);else if("slot"===tj.name){let e=tj.arg;e&&(e.content+="."+n,no(e.loc,t))}else{let i=ey(n,!0,nr(e,t));tj.modifiers.push(i)}},onattribdata(e,t){tW+=t4(e,t),tK<0&&(tK=e),tY=t},onattribentity(e,t,n){tW+=e,tK<0&&(tK=t),tY=n},onattribnameend(e){let t=t4(tj.loc.start.offset,e);7===tj.type&&(tj.rawName=t),tJ.props.some(e=>(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){if(tJ&&tj){if(no(tj.loc,t),0!==e)if(tW.includes("&")&&(tW=tH.decodeEntities(tW,!0)),6===tj.type)"class"===tj.name&&(tW=ni(tW).trim()),tj.value={type:2,content:tW,loc:1===e?nr(tK,tY):nr(tK-1,tY+1)},t0.inSFCRoot&&"template"===tJ.tag&&"lang"===tj.name&&tW&&"html"!==tW&&t0.enterRCDATA(eG("</template"),0);else{tj.exp=na(tW,!1,nr(tK,tY),0,0),"for"===tj.name&&(tj.forParseResult=function(e){let t=e.loc,n=e.content,i=n.match(tw);if(!i)return;let[,s,r]=i,o=(e,n,i=!1)=>{let s=t.start.offset+n,r=s+e.length;return na(e,!1,nr(s,r),0,+!!i)},a={source:o(r.trim(),n.indexOf(r,s.length)),value:void 0,key:void 0,index:void 0,finalized:!1},l=s.trim().replace(t3,"").trim(),c=s.indexOf(l),h=l.match(t2);if(h){let e;l=l.replace(t2,"").trim();let t=h[1].trim();if(t&&(e=n.indexOf(t,c+l.length),a.key=o(t,e,!0)),h[2]){let i=h[2].trim();i&&(a.index=o(i,n.indexOf(i,a.key?e+t.length:c+l.length),!0))}}return l&&(a.value=o(l,c,!0)),a}(tj.exp));let e=-1;"bind"===tj.name&&(e=tj.modifiers.findIndex(e=>"sync"===e.content))>-1&&eY("COMPILER_V_BIND_SYNC",tH,tj.loc,tj.arg.loc.source)&&(tj.name="model",tj.modifiers.splice(e,1))}(7!==tj.type||"pre"!==tj.name)&&tJ.props.push(tj)}tW="",tK=tY=-1},oncomment(e,t){tH.comments&&ns({type:3,content:t4(e,t),loc:nr(e-4,t+3)})},onend(){let e=tq.length;for(let t=0;t<t1.length;t++)t9(t1[t],e-1),t1[t].loc.start.offset},oncdata(e,t){0!==t1[0].ns&&t5(t4(e,t),e,t)},onprocessinginstruction(e){(t1[0]?t1[0].ns:tH.ns)===0&&nl(21,e-1)}}),t2=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,t3=/^\(|\)$/g;function t4(e,t){return tq.slice(e,t)}function t6(e){t0.inSFCRoot&&(tJ.innerLoc=nr(e+1,e+1)),ns(tJ);let{tag:t,ns:n}=tJ;0===n&&tH.isPreTag(t)&&tQ++,tH.isVoidTag(t)?t9(tJ,e):(t1.unshift(tJ),(1===n||2===n)&&(t0.inXML=!0)),tJ=null}function t5(e,t,n){{let t=t1[0]&&t1[0].tag;"script"!==t&&"style"!==t&&e.includes("&")&&(e=tH.decodeEntities(e,!1))}let i=t1[0]||tG,s=i.children[i.children.length-1];s&&2===s.type?(s.content+=e,no(s.loc,n)):i.children.push({type:2,content:e,loc:nr(t,n)})}function t9(e,t,n=!1){n?no(e.loc,t7(t,60)):no(e.loc,function(e){let t=e;for(;62!==tq.charCodeAt(t)&&t<tq.length-1;)t++;return t}(t)+1),t0.inSFCRoot&&(e.children.length?e.innerLoc.end=o({},e.children[e.children.length-1].loc.end):e.innerLoc.end=o({},e.innerLoc.start),e.innerLoc.source=t4(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:i,ns:s,children:r}=e;if(!tz&&("slot"===i?e.tagType=2:ne(e)?e.tagType=3:function({tag:e,props:t}){var n;if(tH.isCustomElement(e))return!1;if("component"===e||(n=e.charCodeAt(0))>64&&n<91||to(e)||tH.isBuiltInComponent&&tH.isBuiltInComponent(e)||tH.isNativeTag&&!tH.isNativeTag(e))return!0;for(let e=0;e<t.length;e++){let n=t[e];if(6===n.type){if("is"===n.name&&n.value){if(n.value.content.startsWith("vue:"))return!0;else if(eY("COMPILER_IS_ON_ELEMENT",tH,n.loc))return!0}}else if("bind"===n.name&&tA(n.arg,"is")&&eY("COMPILER_IS_ON_ELEMENT",tH,n.loc))return!0}return!1}(e)&&(e.tagType=1)),t0.inRCDATA||(e.children=nn(r)),0===s&&tH.isIgnoreNewlineTag(i)){let e=r[0];e&&2===e.type&&(e.content=e.content.replace(/^\r?\n/,""))}0===s&&tH.isPreTag(i)&&tQ--,tZ===e&&(tz=t0.inVPre=!1,tZ=null),t0.inXML&&(t1[0]?t1[0].ns:tH.ns)===0&&(t0.inXML=!1);{let t=e.props;if(!t0.inSFCRoot&&eK("COMPILER_NATIVE_TEMPLATE",tH)&&"template"===e.tag&&!ne(e)){let t=t1[0]||tG,n=t.children.indexOf(e);t.children.splice(n,1,...e.children)}let n=t.find(e=>6===e.type&&"inline-template"===e.name);n&&eY("COMPILER_INLINE_TEMPLATE",tH,n.loc)&&e.children.length&&(n.value={type:2,content:t4(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function t7(e,t){let n=e;for(;tq.charCodeAt(n)!==t&&n>=0;)n--;return n}let t8=new Set(["if","else","else-if","for","slot"]);function ne({tag:e,props:t}){if("template"===e){for(let e=0;e<t.length;e++)if(7===t[e].type&&t8.has(t[e].name))return!0}return!1}let nt=/\r\n/g;function nn(e){let t="preserve"!==tH.whitespace,n=!1;for(let i=0;i<e.length;i++){let s=e[i];if(2===s.type)if(tQ)s.content=s.content.replace(nt,` +`);else if(tU(s.content)){let r=e[i-1]&&e[i-1].type,o=e[i+1]&&e[i+1].type;!r||!o||t&&(3===r&&(3===o||1===o)||1===r&&(3===o||1===o&&function(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(10===n||13===n)return!0}return!1}(s.content)))?(n=!0,e[i]=null):s.content=" "}else t&&(s.content=ni(s.content))}return n?e.filter(Boolean):e}function ni(e){let t="",n=!1;for(let i=0;i<e.length;i++)e$(e.charCodeAt(i))?n||(t+=" ",n=!0):(t+=e[i],n=!1);return t}function ns(e){(t1[0]||tG).children.push(e)}function nr(e,t){return{start:t0.getPos(e),end:null==t?t:t0.getPos(t),source:null==t?t:t4(e,t)}}function no(e,t){e.end=t0.getPos(t),e.source=t4(e.start.offset,t)}function na(e,t=!1,n,i=0,s=0){return ey(e,t,n,i)}function nl(e,t,n){tH.onError(e1(e,nr(t,t)))}function nc(e,t){if(t0.reset(),tJ=null,tj=null,tW="",tK=-1,tY=-1,t1.length=0,tq=e,tH=o({},t$),t){let e;for(e in t)null!=t[e]&&(tH[e]=t[e])}t0.mode="html"===tH.parseMode?1:2*("sfc"===tH.parseMode),t0.inXML=1===tH.ns||2===tH.ns;let n=t&&t.delimiters;n&&(t0.delimiterOpen=eG(n[0]),t0.delimiterClose=eG(n[1]));let i=tG=eS([],e);return t0.parse(tq),i.loc=nr(0,e.length),i.children=nn(i.children),tG=null,i}function nh(e){let t=e.children.filter(e=>3!==e.type);return 1!==t.length||1!==t[0].type||tL(t[0])?null:t[0]}function nd(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let i=n.get(e);if(void 0!==i)return i;let s=e.codegenNode;if(13!==s.type||s.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==s.patchFlag)return n.set(e,0),0;{let i=3,r=nu(e,t);if(0===r)return n.set(e,0),0;r<i&&(i=r);for(let s=0;s<e.children.length;s++){let r=nd(e.children[s],t);if(0===r)return n.set(e,0),0;r<i&&(i=r)}if(i>1)for(let s=0;s<e.props.length;s++){let r=e.props[s];if(7===r.type&&"bind"===r.name&&r.exp){let s=nd(r.exp,t);if(0===s)return n.set(e,0),0;s<i&&(i=s)}}if(s.isBlock){for(let t=0;t<e.props.length;t++)if(7===e.props[t].type)return n.set(e,0),0;t.removeHelper(L),t.removeHelper(eX(t.inSSR,s.isComponent)),s.isBlock=!1,t.helper(ek(t.inSSR,s.isComponent))}return n.set(e,i),i}case 2:case 3:return 3;case 9:case 11:case 10:default:return 0;case 5:case 12:return nd(e.content,t);case 4:return e.constType;case 8:let r=3;for(let n=0;n<e.children.length;n++){let i=e.children[n];if(l(i)||c(i))continue;let s=nd(i,t);if(0===s)return 0;s<r&&(r=s)}return r;case 20:return 2}}let np=new Set([K,Y,Q,z]);function nu(e,t){let n=3,i=nf(e);if(i&&15===i.type){let{properties:e}=i;for(let i=0;i<e.length;i++){let s,{key:r,value:o}=e[i],a=nd(r,t);if(0===a)return a;if(a<n&&(n=a),0===(s=4===o.type?nd(o,t):14===o.type?function e(t,n){if(14===t.type&&!l(t.callee)&&np.has(t.callee)){let i=t.arguments[0];if(4===i.type)return nd(i,n);if(14===i.type)return e(i,n)}return 0}(o,t):0))return s;s<n&&(n=s)}}return n}function nf(e){let t=e.codegenNode;if(13===t.type)return t.props}function nE(e,{filename:t="",prefixIdentifiers:s=!1,hoistStatic:r=!1,hmr:o=!1,cacheHandlers:a=!1,nodeTransforms:c=[],directiveTransforms:h={},transformHoist:d=null,isBuiltInComponent:p=i,isCustomElement:u=i,expressionPlugins:f=[],scopeId:m=null,slotted:S=!0,ssr:g=!1,inSSR:T=!1,ssrCssVars:N="",bindingMetadata:I=n,inline:y=!1,isTS:O=!1,onError:A=ez,onWarn:C=eZ,compatConfig:b}){let v=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),R={filename:t,selfName:v&&_(E(v[1])),prefixIdentifiers:s,hoistStatic:r,hmr:o,cacheHandlers:a,nodeTransforms:c,directiveTransforms:h,transformHoist:d,isBuiltInComponent:p,isCustomElement:u,expressionPlugins:f,scopeId:m,slotted:S,ssr:g,inSSR:T,ssrCssVars:N,bindingMetadata:I,inline:y,isTS:O,onError:A,onWarn:C,compatConfig:b,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=R.helpers.get(e)||0;return R.helpers.set(e,t+1),e},removeHelper(e){let t=R.helpers.get(e);if(t){let n=t-1;n?R.helpers.set(e,n):R.helpers.delete(e)}},helperString:e=>`_${ed[R.helper(e)]}`,replaceNode(e){R.parent.children[R.childIndex]=R.currentNode=e},removeNode(e){let t=R.parent.children,n=e?t.indexOf(e):R.currentNode?R.childIndex:-1;e&&e!==R.currentNode?R.childIndex>n&&(R.childIndex--,R.onNodeRemoved()):(R.currentNode=null,R.onNodeRemoved()),R.parent.children.splice(n,1)},onNodeRemoved:i,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){l(e)&&(e=ey(e)),R.hoists.push(e);let t=ey(`_hoisted_${R.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let i=eR(R.cached.length,e,t,n);return R.cached.push(i),i}};return R.filters=new Set,R}function n_(e,t){let n=nE(e,t);nm(e,n),t.hoistStatic&&function e(t,n,i,s=!1,r=!1){let{children:o}=t,l=[];for(let n=0;n<o.length;n++){let a=o[n];if(1===a.type&&0===a.tagType){let e=s?0:nd(a,i);if(e>0){if(e>=2){a.codegenNode.patchFlag=-1,l.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&nu(a,i)>=2){let t=nf(a);t&&(e.props=i.hoist(t))}e.dynamicProps&&(e.dynamicProps=i.hoist(e.dynamicProps))}}}else if(12===a.type&&(s?0:nd(a,i))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),l.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&i.scopes.vSlot++,e(a,t,i,!1,r),n&&i.scopes.vSlot--}else if(11===a.type)e(a,t,i,1===a.children.length,!0);else if(9===a.type)for(let n=0;n<a.branches.length;n++)e(a.branches[n],t,i,1===a.branches[n].children.length,r)}let c=!1;if(l.length===o.length&&1===t.type){if(0===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&a(t.codegenNode.children))t.codegenNode.children=h(eT(t.codegenNode.children)),c=!0;else if(1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!a(t.codegenNode.children)&&15===t.codegenNode.children.type){let e=d(t.codegenNode,"default");e&&(e.returns=h(eT(e.returns)),c=!0)}else if(3===t.tagType&&n&&1===n.type&&1===n.tagType&&n.codegenNode&&13===n.codegenNode.type&&n.codegenNode.children&&!a(n.codegenNode.children)&&15===n.codegenNode.children.type){let e=ty(t,"slot",!0),i=e&&e.arg&&d(n.codegenNode,e.arg);i&&(i.returns=h(eT(i.returns)),c=!0)}}if(!c)for(let e of l)e.codegenNode=i.cache(e.codegenNode);function h(e){let t=i.cache(e);return t.needArraySpread=!0,t}function d(e,t){if(e.children&&!a(e.children)&&15===e.children.type){let n=e.children.properties.find(e=>e.key===t||e.key.content===t);return n&&n.value}}l.length&&i.transformHoist&&i.transformHoist(o,i,t)}(e,void 0,n,!!nh(e)),t.ssr||function(e,t){let{helper:n}=t,{children:i}=e;if(1===i.length){let n=nh(e);if(n&&n.codegenNode){let i=n.codegenNode;13===i.type&&ew(i,t),e.codegenNode=i}else e.codegenNode=i[0]}else i.length>1&&(e.codegenNode=eg(t,n(C),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0,e.filters=[...n.filters]}function nm(e,t){t.currentNode=e;let{nodeTransforms:n}=t,i=[];for(let s=0;s<n.length;s++){let r=n[s](e,t);if(r&&(a(r)?i.push(...r):i.push(r)),!t.currentNode)return;e=t.currentNode}switch(e.type){case 3:t.ssr||t.helper(k);break;case 5:t.ssr||t.helper(j);break;case 9:for(let n=0;n<e.branches.length;n++)nm(e.branches[n],t);break;case 10:case 11:case 1:case 0:var s=e;let r=0,o=()=>{r--};for(;r<s.children.length;r++){let e=s.children[r];l(e)||(t.grandParent=t.parent,t.parent=s,t.childIndex=r,t.onNodeRemoved=o,nm(e,t))}}t.currentNode=e;let c=i.length;for(;c--;)i[c]()}function nS(e,t){let n=l(e)?t=>t===e:t=>e.test(t);return(e,i)=>{if(1===e.type){let{props:s}=e;if(3===e.tagType&&s.some(tR))return;let r=[];for(let o=0;o<s.length;o++){let a=s[o];if(7===a.type&&n(a.name)){s.splice(o,1),o--;let n=t(e,a,i);n&&r.push(n)}}return r}}}let ng="/*@__PURE__*/",nT=e=>`${ed[e]}: _${ed[e]}`;function nN(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:i=!1,filename:s="template.vue.html",scopeId:r=null,optimizeImports:o=!1,runtimeGlobalName:a="Vue",runtimeModuleName:l="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:h=!1,isTS:d=!1,inSSR:p=!1}){let u={mode:t,prefixIdentifiers:n,sourceMap:i,filename:s,scopeId:r,optimizeImports:o,runtimeGlobalName:a,runtimeModuleName:l,ssrRuntimeModuleName:c,ssr:h,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${ed[e]}`,push(e,t=-2,n){u.code+=e},indent(){f(++u.indentLevel)},deindent(e=!1){e?--u.indentLevel:f(--u.indentLevel)},newline(){f(u.indentLevel)}};function f(e){u.push(` +`+" ".repeat(e),0)}return u}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:i,push:s,prefixIdentifiers:r,indent:o,deindent:a,newline:l,ssr:c}=n,h=Array.from(e.helpers),d=h.length>0,p=!r&&"module"!==i;!function(e,t){let{push:n,newline:i,runtimeGlobalName:s}=t,r=Array.from(e.helpers);if(r.length>0&&(n(`const _Vue = ${s} +`,-1),e.hoists.length)){let e=[P,V,k,X,w].filter(e=>r.includes(e)).map(nT).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:i}=t;i();for(let s=0;s<e.length;s++){let r=e[s];r&&(n(`const _hoisted_${s+1} = `),nA(r,t),i())}t.pure=!1})(e.hoists,t),i(),n("return ")}(e,n);let u=(c?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ");if(s(`function ${c?"ssrRender":"render"}(${u}) {`),o(),p&&(s("with (_ctx) {"),o(),d&&(s(`const { ${h.map(nT).join(", ")} } = _Vue +`,-1),l())),e.components.length&&(nI(e.components,"component",n),(e.directives.length||e.temps>0)&&l()),e.directives.length&&(nI(e.directives,"directive",n),e.temps>0&&l()),e.filters&&e.filters.length&&(l(),nI(e.filters,"filter",n),l()),e.temps>0){s("let ");for(let t=0;t<e.temps;t++)s(`${t>0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(s(` +`,0),l()),c||s("return "),e.codegenNode?nA(e.codegenNode,n):s("null"),p&&(a(),s("}")),a(),s("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function nI(e,t,{helper:n,push:i,newline:s,isTS:r}){let o=n("filter"===t?$:"component"===t?U:B);for(let n=0;n<e.length;n++){let a=e[n],l=a.endsWith("__self");l&&(a=a.slice(0,-6)),i(`const ${tV(a,t)} = ${o}(${JSON.stringify(a)}${l?", true":""})${r?"!":""}`),n<e.length-1&&s()}}function ny(e,t){let n=e.length>3;t.push("["),n&&t.indent(),nO(e,t,n),n&&t.deindent(),t.push("]")}function nO(e,t,n=!1,i=!0){let{push:s,newline:r}=t;for(let o=0;o<e.length;o++){let c=e[o];l(c)?s(c,-3):a(c)?ny(c,t):nA(c,t),o<e.length-1&&(n?(i&&s(","),r()):i&&s(", "))}}function nA(e,t){var n,i,s;if(l(e))return void t.push(e,-3);if(c(e))return void t.push(t.helper(e));switch(e.type){case 1:case 9:case 11:case 12:nA(e.codegenNode,t);break;case 2:n=e,t.push(JSON.stringify(n.content),-3,n);break;case 4:nC(e,t);break;case 5:!function(e,t){let{push:n,helper:i,pure:s}=t;s&&n(ng),n(`${i(j)}(`),nA(e.content,t),n(")")}(e,t);break;case 8:nb(e,t);break;case 3:!function(e,t){let{push:n,helper:i,pure:s}=t;s&&n(ng),n(`${i(k)}(${JSON.stringify(e.content)})`,-3,e)}(e,t);break;case 13:!function(e,t){let n,{push:i,helper:s,pure:r}=t,{tag:o,props:a,children:l,patchFlag:c,dynamicProps:h,directives:d,isBlock:p,disableTracking:u,isComponent:f}=e;c&&(n=String(c)),d&&i(s(H)+"("),p&&i(`(${s(L)}(${u?"true":""}), `),r&&i(ng),i(s(p?eX(t.inSSR,f):ek(t.inSSR,f))+"(",-2,e),nO(function(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map(e=>e||"null")}([o,a,l,n,h]),t),i(")"),p&&i(")"),d&&(i(", "),nA(d,t),i(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:i,pure:s}=t,r=l(e.callee)?e.callee:i(e.callee);s&&n(ng),n(r+"(",-2,e),nO(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:i,deindent:s,newline:r}=t,{properties:o}=e;if(!o.length)return n("{}",-2,e);let a=o.length>1;n(a?"{":"{ "),a&&i();for(let e=0;e<o.length;e++){let{key:i,value:s}=o[e];!function(e,t){let{push:n}=t;8===e.type?(n("["),nb(e,t),n("]")):e.isStatic?n(tl(e.content)?e.content:JSON.stringify(e.content),-2,e):n(`[${e.content}]`,-3,e)}(i,t),n(": "),nA(s,t),e<o.length-1&&(n(","),r())}a&&s(),n(a?"}":" }")}(e,t);break;case 17:i=e,s=t,ny(i.elements,s);break;case 18:!function(e,t){let{push:n,indent:i,deindent:s}=t,{params:r,returns:o,body:l,newline:c,isSlot:h}=e;h&&n(`_${ed[eo]}(`),n("(",-2,e),a(r)?nO(r,t):r&&nA(r,t),n(") => "),(c||l)&&(n("{"),i()),o?(c&&n("return "),a(o)?ny(o,t):nA(o,t)):l&&nA(l,t),(c||l)&&(s(),n("}")),h&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}(e,t);break;case 19:!function(e,t){let{test:n,consequent:i,alternate:s,newline:r}=e,{push:o,indent:a,deindent:l,newline:c}=t;if(4===n.type){let e=!tl(n.content);e&&o("("),nC(n,t),e&&o(")")}else o("("),nA(n,t),o(")");r&&a(),t.indentLevel++,r||o(" "),o("? "),nA(i,t),t.indentLevel--,r&&c(),r||o(" "),o(": ");let h=19===s.type;!h&&t.indentLevel++,nA(s,t),!h&&t.indentLevel--,r&&l(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:i,indent:s,deindent:r,newline:o}=t,{needPauseTracking:a,needArraySpread:l}=e;l&&n("[...("),n(`_cache[${e.index}] || (`),a&&(s(),n(`${i(ei)}(-1`),e.inVOnce&&n(", true"),n("),"),o(),n("(")),n(`_cache[${e.index}] = `),nA(e.value,t),a&&(n(`).cacheIndex = ${e.index},`),o(),n(`${i(ei)}(1),`),o(),n(`_cache[${e.index}]`),r()),n(")"),l&&n(")]")}(e,t);break;case 21:nO(e.body,t,!0,!1)}}function nC(e,t){let{content:n,isStatic:i}=e;t.push(i?JSON.stringify(n):n,-3,e)}function nb(e,t){for(let n=0;n<e.children.length;n++){let i=e.children[n];l(i)?t.push(i,-3):nA(i,t)}}let nv=(e,t)=>{if(5===e.type)e.content=nR(e.content,t);else if(1===e.type){let n=ty(e,"memo");for(let i=0;i<e.props.length;i++){let s=e.props[i];if(7===s.type&&"for"!==s.name){let e=s.exp,i=s.arg;!e||4!==e.type||"on"===s.name&&i||n&&i&&4===i.type&&"key"===i.content||(s.exp=nR(e,t,"slot"===s.name)),i&&4===i.type&&!i.isStatic&&(s.arg=nR(i,t))}}}};function nR(e,t,n=!1,i=!1,s=Object.create(t.identifiers)){return e}function nx(e){return l(e)?e:4===e.type?e.content:e.children.map(nx).join("")}let nL=nS(/^(?:if|else|else-if)$/,(e,t,n)=>nM(e,t,n,(e,t,i)=>{let s=n.parent.children,r=s.indexOf(e),o=0;for(;r-- >=0;){let e=s[r];e&&9===e.type&&(o+=e.branches.length)}return()=>{i?e.codegenNode=nP(t,o,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=nP(t,o+e.branches.length-1,n)}}));function nM(e,t,n,i){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let i=t.exp?t.exp.loc:e.loc;n.onError(e1(28,t.loc)),t.exp=ey("true",!1,i)}if("if"===t.name){var s;let r=nD(e,t),o={type:9,loc:nr((s=e.loc).start.offset,s.end.offset),branches:[r]};if(n.replaceNode(o),i)return i(o,r,!0)}else{let s=n.parent.children,r=s.indexOf(e);for(;r-- >=-1;){let o=s[r];if(o&&tB(o)){n.removeNode(o);continue}if(o&&9===o.type){("else-if"===t.name||"else"===t.name)&&void 0===o.branches[o.branches.length-1].condition&&n.onError(e1(30,e.loc)),n.removeNode();let s=nD(e,t);o.branches.push(s);let r=i&&i(o,s,!1);nm(s,n),r&&r(),n.currentNode=null}else n.onError(e1(30,e.loc));break}}}function nD(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!ty(e,"for")?e.children:[e],userKey:tO(e,"key"),isTemplateIf:n}}function nP(e,t,n){return e.condition?ev(e.condition,nV(e,t,n),eC(n.helper(k),['""',"true"])):nV(e,t,n)}function nV(e,t,n){let{helper:i}=n,s=eI("key",ey(`${t}`,!1,em,2)),{children:r}=e,o=r[0];if(1!==r.length||1!==o.type)if(1!==r.length||11!==o.type)return eg(n,i(C),eN([s]),r,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=o.codegenNode;return tD(e,s,n),e}{let e=o.codegenNode,t=tX(e);return 13===t.type&&ew(t,n),tD(t,s,n),e}}let nk=nS("for",(e,t,n)=>{let{helper:i,removeHelper:s}=n;return nX(e,t,n,t=>{let r=eC(i(G),[t.source]),o=tx(e),a=ty(e,"memo"),l=tO(e,"key",!1,!0);l&&l.type;let c=l&&(6===l.type?l.value?ey(l.value.content,!0):void 0:l.exp),h=l&&c?eI("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:l?128:256;return t.codegenNode=eg(n,i(C),void 0,r,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let l,{children:p}=t,u=1!==p.length||1!==p[0].type,f=tL(e)?e:o&&1===e.children.length&&tL(e.children[0])?e.children[0]:null;if(f?(l=f.codegenNode,o&&h&&tD(l,h,n)):u?l=eg(n,i(C),h?eN([h]):void 0,e.children,64,void 0,void 0,!0,void 0,!1):(l=p[0].codegenNode,o&&h&&tD(l,h,n),!d!==l.isBlock&&(l.isBlock?(s(L),s(eX(n.inSSR,l.isComponent))):s(ek(n.inSSR,l.isComponent))),l.isBlock=!d,l.isBlock?(i(L),i(eX(n.inSSR,l.isComponent))):i(ek(n.inSSR,l.isComponent))),a){let e=eb(nU(t.parseResult,[ey("_cached")]));e.body=ex([eA(["const _memo = (",a.exp,")"]),eA(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(eh)}(_cached, _memo)) return _cached`]),eA(["const _item = ",l]),ey("_item.memo = _memo"),ey("return _item")]),r.arguments.push(e,ey("_cache"),ey(String(n.cached.length))),n.cached.push(null)}else r.arguments.push(eb(nU(t.parseResult),l,!0))}})});function nX(e,t,n,i){if(!t.exp)return void n.onError(e1(31,t.loc));let s=t.forParseResult;if(!s)return void n.onError(e1(32,t.loc));nw(s);let{scopes:r}=n,{source:o,value:a,key:l,index:c}=s,h={type:11,loc:t.loc,source:o,valueAlias:a,keyAlias:l,objectIndexAlias:c,parseResult:s,children:tx(e)?e.children:[e]};n.replaceNode(h),r.vFor++;let d=i&&i(h);return()=>{r.vFor--,d&&d()}}function nw(e,t){e.finalized||(e.finalized=!0)}function nU({value:e,key:t,index:n},i=[]){var s=[e,t,n,...i];let r=s.length;for(;r--&&!s[r];);return s.slice(0,r+1).map((e,t)=>e||ey("_".repeat(t+1),!1))}let nF=ey("undefined",!1),nB=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=ty(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},n$=(e,t)=>{let n;if(tx(e)&&e.props.some(tR)&&(n=ty(e,"for"))){let e=n.forParseResult;if(e){nw(e);let{value:n,key:i,index:s}=e,{addIdentifiers:r,removeIdentifiers:o}=t;return n&&r(n),i&&r(i),s&&r(s),()=>{n&&o(n),i&&o(i),s&&o(s)}}}},nH=(e,t,n,i)=>eb(e,n,!1,!0,n.length?n[0].loc:i);function nG(e,t,n=nH){t.helper(eo);let{children:i,loc:s}=e,r=[],o=[],a=t.scopes.vSlot>0||t.scopes.vFor>0,l=ty(e,"slot",!0);if(l){let{arg:e,exp:t}=l;e&&!tr(e)&&(a=!0),r.push(eI(e||ey("default",!0),n(t,void 0,i,s)))}let c=!1,h=!1,d=[],p=new Set,u=0;for(let e=0;e<i.length;e++){let s,f,E,_,m=i[e];if(!tx(m)||!(s=ty(m,"slot",!0))){3!==m.type&&d.push(m);continue}if(l){t.onError(e1(37,s.loc));break}c=!0;let{children:S,loc:g}=m,{arg:T=ey("default",!0),exp:N,loc:I}=s;tr(T)?f=T?T.content:"default":a=!0;let y=ty(m,"for"),O=n(N,y,S,g);if(E=ty(m,"if"))a=!0,o.push(ev(E.exp,nq(T,O,u++),nF));else if(_=ty(m,/^else(?:-if)?$/,!0)){let n,s=e;for(;s--&&tB(n=i[s]););if(n&&tx(n)&&ty(n,/^(?:else-)?if$/)){let e=o[o.length-1];for(;19===e.alternate.type;)e=e.alternate;e.alternate=_.exp?ev(_.exp,nq(T,O,u++),nF):nq(T,O,u++)}else t.onError(e1(30,_.loc))}else if(y){a=!0;let e=y.forParseResult;e?(nw(e),o.push(eC(t.helper(G),[e.source,eb(nU(e),nq(T,O),!0)]))):t.onError(e1(32,y.loc))}else{if(f){if(p.has(f)){t.onError(e1(38,I));continue}p.add(f),"default"===f&&(h=!0)}r.push(eI(T,O))}}if(!l){let e=(e,i)=>{let r=n(e,void 0,i,s);return t.compatConfig&&(r.isNonScopedSlot=!0),eI("default",r)};c?d.length&&!d.every(tF)&&(h?t.onError(e1(39,d[0].loc)):r.push(e(void 0,d))):r.push(e(void 0,i))}let f=a?2:!function e(t){for(let n=0;n<t.length;n++){let i=t[n];switch(i.type){case 1:if(2===i.tagType||e(i.children))return!0;break;case 9:if(e(i.branches))return!0;break;case 10:case 11:if(e(i.children))return!0}}return!1}(e.children)?1:3,E=eN(r.concat(eI("_",ey(f+"",!1))),s);return o.length&&(E=eC(t.helper(J),[E,eT(o)])),{slots:E,hasDynamicSlots:a}}function nq(e,t,n){let i=[eI("name",e),eI("fn",t)];return null!=n&&i.push(eI("key",ey(String(n),!0))),eN(i)}let nJ=new WeakMap,nj=(e,t)=>function(){let n,i,s,r,o;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:a,props:l}=e,c=1===e.tagType,d=c?nW(e,t):`"${a}"`,p=h(d)&&d.callee===F,u=0,f=p||d===b||d===v||!c&&("svg"===a||"foreignObject"===a||"math"===a);if(l.length>0){let i=nK(e,t,void 0,c,p);n=i.props,u=i.patchFlag,r=i.dynamicPropNames;let s=i.directives;o=s&&s.length?eT(s.map(e=>nQ(e,t))):void 0,i.shouldUseBlock&&(f=!0)}if(e.children.length>0)if(d===R&&(f=!0,u|=1024),c&&d!==b&&d!==R){let{slots:n,hasDynamicSlots:s}=nG(e,t);i=n,s&&(u|=1024)}else if(1===e.children.length&&d!==b){let n=e.children[0],s=n.type,r=5===s||8===s;r&&0===nd(n,t)&&(u|=1),i=r||2===s?n:e.children}else i=e.children;r&&r.length&&(s=function(e){let t="[";for(let n=0,i=e.length;n<i;n++)t+=JSON.stringify(e[n]),n<i-1&&(t+=", ");return t+"]"}(r)),e.codegenNode=eg(t,d,n,i,0===u?void 0:u,s,o,!!f,!1,c,e.loc)};function nW(e,t,n=!1){let{tag:i}=e,s=nz(i),r=tO(e,"is",!1,!0);if(r)if(s||eK("COMPILER_IS_ON_ELEMENT",t)){let e;if(6===r.type?e=r.value&&ey(r.value.content,!0):(e=r.exp)||(e=ey("is",!1,r.arg.loc)),e)return eC(t.helper(F),[e])}else 6===r.type&&r.value.content.startsWith("vue:")&&(i=r.value.content.slice(4));let o=to(i)||t.isBuiltInComponent(i);return o?(n||t.helper(o),o):(t.helper(U),t.components.add(i),tV(i,"component"))}function nK(e,t,n=e.props,i,s,o=!1){let a,{tag:l,loc:h,children:u}=e,f=[],E=[],_=[],m=u.length>0,S=!1,g=0,T=!1,N=!1,I=!1,y=!1,O=!1,A=!1,C=[],b=e=>{f.length&&(E.push(eN(nY(f),h)),f=[]),e&&E.push(e)},v=()=>{t.scopes.vFor>0&&f.push(eI(ey("ref_for",!0),ey("true")))},R=({key:e,value:n})=>{if(tr(e)){let o=e.content,a=r(o);a&&(!i||s)&&"onclick"!==o.toLowerCase()&&"onUpdate:modelValue"!==o&&!d(o)&&(y=!0),a&&d(o)&&(A=!0),a&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&nd(n,t)>0||("ref"===o?T=!0:"class"===o?N=!0:"style"===o?I=!0:"key"===o||C.includes(o)||C.push(o),i&&("class"===o||"style"===o)&&!C.includes(o)&&C.push(o))}else O=!0};for(let s=0;s<n.length;s++){let r=n[s];if(6===r.type){let{loc:e,name:n,nameLoc:i,value:s}=r;if("ref"===n&&(T=!0,v()),"is"===n&&(nz(l)||s&&s.content.startsWith("vue:")||eK("COMPILER_IS_ON_ELEMENT",t)))continue;f.push(eI(ey(n,!0,i),ey(s?s.content:"",!0,s?s.loc:e)))}else{let{name:n,arg:s,exp:a,loc:d,modifiers:u}=r,T="bind"===n,N="on"===n;if("slot"===n){i||t.onError(e1(40,d));continue}if("once"===n||"memo"===n||"is"===n||T&&tA(s,"is")&&(nz(l)||eK("COMPILER_IS_ON_ELEMENT",t))||N&&o)continue;if((T&&tA(s,"key")||N&&m&&tA(s,"vue:before-update"))&&(S=!0),T&&tA(s,"ref")&&v(),!s&&(T||N)){if(O=!0,a)if(T){if(b(),eK("COMPILER_V_BIND_OBJECT_ORDER",t)){E.unshift(a);continue}v(),b(),E.push(a)}else b({type:14,loc:d,callee:t.helper(Z),arguments:i?[a]:[a,"true"]});else t.onError(e1(T?34:35,d));continue}T&&u.some(e=>"prop"===e.content)&&(g|=32);let I=t.directiveTransforms[n];if(I){let{props:n,needRuntime:i}=I(r,e,t);o||n.forEach(R),N&&s&&!tr(s)?b(eN(n,h)):f.push(...n),i&&(_.push(r),c(i)&&nJ.set(r,i))}else!p(n)&&(_.push(r),m&&(S=!0))}}if(E.length?(b(),a=E.length>1?eC(t.helper(W),E,h):E[0]):f.length&&(a=eN(nY(f),h)),O?g|=16:(N&&!i&&(g|=2),I&&!i&&(g|=4),C.length&&(g|=8),y&&(g|=32)),!S&&(0===g||32===g)&&(T||A||_.length>0)&&(g|=512),!t.inSSR&&a)switch(a.type){case 15:let x=-1,L=-1,M=!1;for(let e=0;e<a.properties.length;e++){let t=a.properties[e].key;tr(t)?"class"===t.content?x=e:"style"===t.content&&(L=e):t.isHandlerKey||(M=!0)}let D=a.properties[x],P=a.properties[L];M?a=eC(t.helper(Q),[a]):(D&&!tr(D.value)&&(D.value=eC(t.helper(K),[D.value])),P&&(I||4===P.value.type&&"["===P.value.content.trim()[0]||17===P.value.type)&&(P.value=eC(t.helper(Y),[P.value])));break;case 14:break;default:a=eC(t.helper(Q),[eC(t.helper(z),[a])])}return{props:a,directives:_,patchFlag:g,dynamicPropNames:C,shouldUseBlock:S}}function nY(e){let t=new Map,n=[];for(let o=0;o<e.length;o++){var i,s;let a=e[o];if(8===a.key.type||!a.key.isStatic){n.push(a);continue}let l=a.key.content,c=t.get(l);c?("style"===l||"class"===l||r(l))&&(i=c,s=a,17===i.value.type?i.value.elements.push(s.value):i.value=eT([i.value,s.value],i.loc)):(t.set(l,a),n.push(a))}return n}function nQ(e,t){let n=[],i=nJ.get(e);i?n.push(t.helperString(i)):(t.helper(B),t.directives.add(e.name),n.push(tV(e.name,"directive")));let{loc:s}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=ey("true",!1,s);n.push(eN(e.modifiers.map(e=>eI(e,t)),s))}return eT(n,e.loc)}function nz(e){return"component"===e||"Component"===e}let nZ=(e,t)=>{if(tL(e)){let{children:n,loc:i}=e,{slotName:s,slotProps:r}=n1(e,t),o=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"],a=2;r&&(o[2]=r,a=3),n.length&&(o[3]=eb([],n,!1,!1,i),a=4),t.scopeId&&!t.slotted&&(a=5),o.splice(a),e.codegenNode=eC(t.helper(q),o,i)}};function n1(e,t){let n,i='"default"',s=[];for(let t=0;t<e.props.length;t++){let n=e.props[t];if(6===n.type)n.value&&("name"===n.name?i=JSON.stringify(n.value.content):(n.name=E(n.name),s.push(n)));else if("bind"===n.name&&tA(n.arg,"name")){if(n.exp)i=n.exp;else if(n.arg&&4===n.arg.type){let e=E(n.arg.content);i=n.exp=ey(e,!1,n.arg.loc)}}else"bind"===n.name&&n.arg&&tr(n.arg)&&(n.arg.content=E(n.arg.content)),s.push(n)}if(s.length>0){let{props:i,directives:r}=nK(e,t,s,!1,!1);n=i,r.length&&t.onError(e1(36,r[0].loc))}return{slotName:i,slotProps:n}}let n0=(e,t,n,i)=>{let s,{loc:r,modifiers:o,arg:a}=e;if(!e.exp&&!o.length,4===a.type)if(a.isStatic){let e=a.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),s=ey(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?m(E(e)):`on:${e}`,!0,a.loc)}else s=eA([`${n.helperString(en)}(`,a,")"]);else(s=a).children.unshift(`${n.helperString(en)}(`),s.children.push(")");let l=e.exp;l&&!l.content.trim()&&(l=void 0);let c=n.cacheHandlers&&!l&&!n.inVOnce;if(l){let e=tE(l),t=!(e||tg(l)),n=l.content.includes(";");(t||c&&e)&&(l=eA([`${t?"$event":"(...args)"} => ${n?"{":"("}`,l,n?"}":")"]))}let h={props:[eI(s,l||ey("() => {}",!1,r))]};return i&&(h=i(h)),c&&(h.props[0].value=n.cache(h.props[0].value)),h.props.forEach(e=>e.key.isHandlerKey=!0),h},n2=(e,t,n)=>{let{modifiers:i}=e,s=e.arg,{exp:r}=e;return r&&4===r.type&&!r.content.trim()&&(r=void 0),4!==s.type?(s.children.unshift("("),s.children.push(') || ""')):s.isStatic||(s.content=s.content?`${s.content} || ""`:'""'),i.some(e=>"camel"===e.content)&&(4===s.type?s.isStatic?s.content=E(s.content):s.content=`${n.helperString(ee)}(${s.content})`:(s.children.unshift(`${n.helperString(ee)}(`),s.children.push(")"))),!n.inSSR&&(i.some(e=>"prop"===e.content)&&n3(s,"."),i.some(e=>"attr"===e.content)&&n3(s,"^")),{props:[eI(s,r)]}},n3=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},n4=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,i=e.children,s=!1;for(let e=0;e<i.length;e++){let t=i[e];if(tb(t)){s=!0;for(let s=e+1;s<i.length;s++){let r=i[s];if(tb(r))n||(n=i[e]=eA([t],t.loc)),n.children.push(" + ",r),i.splice(s,1),s--;else{n=void 0;break}}}}if(s&&(1!==i.length||0!==e.type&&(1!==e.type||0!==e.tagType||e.props.find(e=>7===e.type&&!t.directiveTransforms[e.name])||"template"===e.tag)))for(let e=0;e<i.length;e++){let n=i[e];if(tb(n)||8===n.type){let s=[];(2!==n.type||" "!==n.content)&&s.push(n),t.ssr||0!==nd(n,t)||s.push("1"),i[e]={type:12,content:n,loc:n.loc,codegenNode:eC(t.helper(X),s)}}}}},n6=new WeakSet,n5=(e,t)=>{if(1===e.type&&ty(e,"once",!0)&&!n6.has(e)&&!t.inVOnce&&!t.inSSR)return n6.add(e),t.inVOnce=!0,t.helper(ei),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},n9=(e,t,n)=>{let i,{exp:s,arg:r}=e;if(!s)return n.onError(e1(41,e.loc)),n7();let o=s.loc.source.trim(),a=4===s.type?s.content:o,l=n.bindingMetadata[o];if("props"===l||"props-aliased"===l||"literal-const"===l||"setup-const"===l)return s.loc,n7();if(!a.trim()||!tE(s))return n.onError(e1(42,s.loc)),n7();let c=r||ey("modelValue",!0),h=r?tr(r)?`onUpdate:${E(r.content)}`:eA(['"onUpdate:" + ',r]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";i=eA([`${d} => ((`,s,") = $event)"]);let p=[eI(c,e.exp),eI(h,i)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(tl(e)?e:JSON.stringify(e))+": true").join(", "),n=r?tr(r)?`${r.content}Modifiers`:eA([r,' + "Modifiers"']):"modelModifiers";p.push(eI(n,ey(`{ ${t} }`,!1,e.loc,2)))}return n7(p)};function n7(e=[]){return{props:e}}let n8=/[\w).+\-_$\]]/,ie=(e,t)=>{eK("COMPILER_FILTERS",t)&&(5===e.type?it(e.content,t):1===e.type&&e.props.forEach(e=>{7===e.type&&"for"!==e.name&&e.exp&&it(e.exp,t)}))};function it(e,t){if(4===e.type)ii(e,t);else for(let n=0;n<e.children.length;n++){let i=e.children[n];"object"==typeof i&&(4===i.type?ii(i,t):8===i.type?it(e,t):5===i.type&&it(i.content,t))}}function ii(e,t){let n=e.content,i=!1,s=!1,r=!1,o=!1,a=0,l=0,c=0,h=0,d,p,u,f,E=[];for(u=0;u<n.length;u++)if(p=d,d=n.charCodeAt(u),i)39===d&&92!==p&&(i=!1);else if(s)34===d&&92!==p&&(s=!1);else if(r)96===d&&92!==p&&(r=!1);else if(o)47===d&&92!==p&&(o=!1);else if(124!==d||124===n.charCodeAt(u+1)||124===n.charCodeAt(u-1)||a||l||c){switch(d){case 34:s=!0;break;case 39:i=!0;break;case 96:r=!0;break;case 40:c++;break;case 41:c--;break;case 91:l++;break;case 93:l--;break;case 123:a++;break;case 125:a--}if(47===d){let e,t=u-1;for(;t>=0&&" "===(e=n.charAt(t));t--);e&&n8.test(e)||(o=!0)}}else void 0===f?(h=u+1,f=n.slice(0,u).trim()):_();function _(){E.push(n.slice(h,u).trim()),h=u+1}if(void 0===f?f=n.slice(0,u).trim():0!==h&&_(),E.length){for(u=0;u<E.length;u++)f=function(e,t,n){n.helper($);let i=t.indexOf("(");if(i<0)return n.filters.add(t),`${tV(t,"filter")}(${e})`;{let s=t.slice(0,i),r=t.slice(i+1);return n.filters.add(s),`${tV(s,"filter")}(${e}${")"!==r?","+r:r}`}}(f,E[u],t);e.content=f,e.ast=void 0}}let is=new WeakSet,ir=(e,t)=>{if(1===e.type){let n=ty(e,"memo");if(!(!n||is.has(e))&&!t.inSSR)return is.add(e),()=>{let i=e.codegenNode||t.currentNode.codegenNode;i&&13===i.type&&(1!==e.tagType&&ew(i,t),e.codegenNode=eC(t.helper(ec),[n.exp,eb(void 0,i),"_cache",String(t.cached.length)]),t.cached.push(null))}}},io=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=E(e.content);(tc.test(t[0])||"-"===t[0])&&(n.exp=ey(t,!1,e.loc))}else t.onError(e1(53,e.loc)),n.exp=ey("",!0,e.loc)}}};function ia(e){return[[io,n5,nL,ir,nk,ie,nZ,nj,nB,n4],{on:n0,bind:n2,model:n9}]}function il(e,t={}){let n=t.onError||ez,i="module"===t.mode;!0===t.prefixIdentifiers?n(e1(48)):i&&n(e1(49)),t.cacheHandlers&&n(e1(50)),t.scopeId&&!i&&n(e1(51));let s=o({},t,{prefixIdentifiers:!1}),r=l(e)?nc(e,s):e,[a,c]=ia();return n_(r,o({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:o({},c,t.directiveTransforms||{})})),nN(r,s)}let ic={DATA:"data",PROPS:"props",PROPS_ALIASED:"props-aliased",SETUP_LET:"setup-let",SETUP_CONST:"setup-const",SETUP_REACTIVE_CONST:"setup-reactive-const",SETUP_MAYBE_REF:"setup-maybe-ref",SETUP_REF:"setup-ref",OPTIONS:"options",LITERAL_CONST:"literal-const"},ih=()=>({props:[]}),id=Symbol(""),ip=Symbol(""),iu=Symbol(""),iE=Symbol(""),i_=Symbol(""),im=Symbol(""),iS=Symbol(""),ig=Symbol(""),iT=Symbol(""),iN=Symbol("");ep({[id]:"vModelRadio",[ip]:"vModelCheckbox",[iu]:"vModelText",[iE]:"vModelSelect",[i_]:"vModelDynamic",[im]:"withModifiers",[iS]:"withKeys",[ig]:"vShow",[iT]:"Transition",[iN]:"TransitionGroup"});let iI={parseMode:"html",isVoidTag:A,isNativeTag:e=>I(e)||y(e)||O(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(t,n=!1){return(e||(e=document.createElement("div")),n)?(e.innerHTML=`<div foo="${t.replace(/"/g,""")}">`,e.children[0].getAttribute("foo")):(e.innerHTML=t,e.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?iT:"TransitionGroup"===e||"transition-group"===e?iN:void 0,getNamespace(e,t,n){let i=t?t.ns:n;if(t&&2===i)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(i=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(i=0);else t&&1===i&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(i=0);if(0===i){if("svg"===e)return 1;if("math"===e)return 2}return i}},iy=e=>{1===e.type&&e.props.forEach((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:ey("style",!0,t.loc),exp:iO(t.value.content,t.loc),modifiers:[],loc:t.loc})})},iO=(e,t)=>{let n;return ey(JSON.stringify((n={},e.replace(N,"").split(g).forEach(e=>{if(e){let t=e.split(T);t.length>1&&(n[t[0].trim()]=t[1].trim())}}),n)),!1,t,3)};function iA(e,t){return e1(e,t)}let iC={X_V_HTML_NO_EXPRESSION:54,54:"X_V_HTML_NO_EXPRESSION",X_V_HTML_WITH_CHILDREN:55,55:"X_V_HTML_WITH_CHILDREN",X_V_TEXT_NO_EXPRESSION:56,56:"X_V_TEXT_NO_EXPRESSION",X_V_TEXT_WITH_CHILDREN:57,57:"X_V_TEXT_WITH_CHILDREN",X_V_MODEL_ON_INVALID_ELEMENT:58,58:"X_V_MODEL_ON_INVALID_ELEMENT",X_V_MODEL_ARG_ON_ELEMENT:59,59:"X_V_MODEL_ARG_ON_ELEMENT",X_V_MODEL_ON_FILE_INPUT_ELEMENT:60,60:"X_V_MODEL_ON_FILE_INPUT_ELEMENT",X_V_MODEL_UNNECESSARY_VALUE:61,61:"X_V_MODEL_UNNECESSARY_VALUE",X_V_SHOW_NO_EXPRESSION:62,62:"X_V_SHOW_NO_EXPRESSION",X_TRANSITION_INVALID_CHILDREN:63,63:"X_TRANSITION_INVALID_CHILDREN",X_IGNORED_SIDE_EFFECT_TAG:64,64:"X_IGNORED_SIDE_EFFECT_TAG",__EXTEND_POINT__:65,65:"__EXTEND_POINT__"},ib={54:"v-html is missing expression.",55:"v-html will override element children.",56:"v-text is missing expression.",57:"v-text will override element children.",58:"v-model can only be used on <input>, <textarea> and <select> elements.",59:"v-model argument is not supported on plain elements.",60:"v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",61:"Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",62:"v-show is missing expression.",63:"<Transition> expects exactly one child element or component.",64:"Tags with side effect (<script> and <style>) are ignored in client component templates."},iv=t("passive,once,capture"),iR=t("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),ix=t("left,right"),iL=t("onkeyup,onkeydown,onkeypress"),iM=(e,t)=>tr(e)&&"onclick"===e.content.toLowerCase()?ey(t,!0):4!==e.type?eA(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,iD=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},iP=[iy],iV={cloak:ih,html:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(iA(54,s)),t.children.length&&(n.onError(iA(55,s)),t.children.length=0),{props:[eI(ey("innerHTML",!0,s),i||ey("",!0))]}},text:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(iA(56,s)),t.children.length&&(n.onError(iA(57,s)),t.children.length=0),{props:[eI(ey("textContent",!0),i?nd(i,n)>0?i:eC(n.helperString(j),[i],s):ey("",!0))]}},model:(e,t,n)=>{let i=n9(e,t,n);if(!i.props.length||1===t.tagType)return i;e.arg&&n.onError(iA(59,e.arg.loc));let{tag:s}=t,r=n.isCustomElement(s);if("input"===s||"textarea"===s||"select"===s||r){let o=iu,a=!1;if("input"===s||r){let i=tO(t,"type");if(i){if(7===i.type)o=i_;else if(i.value)switch(i.value.content){case"radio":o=id;break;case"checkbox":o=ip;break;case"file":a=!0,n.onError(iA(60,e.loc))}}else tC(t)&&(o=i_)}else"select"===s&&(o=iE);a||(i.needRuntime=n.helper(o))}else n.onError(iA(58,e.loc));return i.props=i.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),i},on:(e,t,n)=>n0(e,t,n,t=>{let{modifiers:i}=e;if(!i.length)return t;let{key:s,value:r}=t.props[0],{keyModifiers:o,nonKeyModifiers:a,eventOptionModifiers:l}=((e,t,n,i)=>{let s=[],r=[],o=[];for(let i=0;i<t.length;i++){let a=t[i].content;"native"===a&&eY("COMPILER_V_ON_NATIVE",n)||iv(a)?o.push(a):ix(a)?tr(e)?iL(e.content.toLowerCase())?s.push(a):r.push(a):(s.push(a),r.push(a)):iR(a)?r.push(a):s.push(a)}return{keyModifiers:s,nonKeyModifiers:r,eventOptionModifiers:o}})(s,i,n,e.loc);if(a.includes("right")&&(s=iM(s,"onContextmenu")),a.includes("middle")&&(s=iM(s,"onMouseup")),a.length&&(r=eC(n.helper(im),[r,JSON.stringify(a)])),o.length&&(!tr(s)||iL(s.content.toLowerCase()))&&(r=eC(n.helper(iS),[r,JSON.stringify(o)])),l.length){let e=l.map(_).join("");s=tr(s)?ey(`${s.content}${e}`,!0):eA(["(",s,`) + "${e}"`])}return{props:[eI(s,r)]}}),show:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(iA(62,s)),{props:[],needRuntime:n.helper(ig)}}};function ik(e,t={}){return il(e,o({},iI,t,{nodeTransforms:[iD,...iP,...t.nodeTransforms||[]],directiveTransforms:o({},iV,t.directiveTransforms||{}),transformHoist:null}))}function iX(e,t={}){return nc(e,o({},iI,t))}export{x as BASE_TRANSITION,ic as BindingTypes,ee as CAMELIZE,et as CAPITALIZE,M as CREATE_BLOCK,k as CREATE_COMMENT,D as CREATE_ELEMENT_BLOCK,V as CREATE_ELEMENT_VNODE,J as CREATE_SLOTS,w as CREATE_STATIC,X as CREATE_TEXT,P as CREATE_VNODE,eJ as CompilerDeprecationTypes,e_ as ConstantTypes,iV as DOMDirectiveTransforms,iC as DOMErrorCodes,ib as DOMErrorMessages,iP as DOMNodeTransforms,eE as ElementTypes,e0 as ErrorCodes,C as FRAGMENT,z as GUARD_REACTIVE_PROPS,eh as IS_MEMO_SAME,el as IS_REF,R as KEEP_ALIVE,W as MERGE_PROPS,K as NORMALIZE_CLASS,Q as NORMALIZE_PROPS,Y as NORMALIZE_STYLE,eu as Namespaces,ef as NodeTypes,L as OPEN_BLOCK,er as POP_SCOPE_ID,es as PUSH_SCOPE_ID,G as RENDER_LIST,q as RENDER_SLOT,U as RESOLVE_COMPONENT,B as RESOLVE_DIRECTIVE,F as RESOLVE_DYNAMIC_COMPONENT,$ as RESOLVE_FILTER,ei as SET_BLOCK_TRACKING,v as SUSPENSE,b as TELEPORT,j as TO_DISPLAY_STRING,Z as TO_HANDLERS,en as TO_HANDLER_KEY,iT as TRANSITION,iN as TRANSITION_GROUP,ti as TS_NODE_TYPES,ea as UNREF,ip as V_MODEL_CHECKBOX,i_ as V_MODEL_DYNAMIC,id as V_MODEL_RADIO,iE as V_MODEL_SELECT,iu as V_MODEL_TEXT,iS as V_ON_WITH_KEYS,im as V_ON_WITH_MODIFIERS,ig as V_SHOW,eo as WITH_CTX,H as WITH_DIRECTIVES,ec as WITH_MEMO,tT as advancePositionWithClone,tN as advancePositionWithMutation,tI as assert,il as baseCompile,nc as baseParse,nQ as buildDirectiveArgs,nK as buildProps,nG as buildSlots,eY as checkCompatEnabled,ik as compile,ew as convertToBlock,eT as createArrayExpression,eD as createAssignmentExpression,ex as createBlockStatement,eR as createCacheExpression,eC as createCallExpression,e1 as createCompilerError,eA as createCompoundExpression,ev as createConditionalExpression,iA as createDOMCompilerError,nU as createForLoopParams,eb as createFunctionExpression,eM as createIfStatement,eO as createInterpolation,eN as createObjectExpression,eI as createObjectProperty,eV as createReturnStatement,eS as createRoot,eP as createSequenceExpression,ey as createSimpleExpression,nS as createStructuralDirectiveTransform,eL as createTemplateLiteral,nE as createTransformContext,eg as createVNodeCall,e2 as errorMessages,e8 as extractIdentifiers,ty as findDir,tO as findProp,tw as forAliasRE,nN as generate,S as generateCodeFrame,ia as getBaseTransformPreset,nd as getConstantType,tX as getMemoedVNodeCall,eX as getVNodeBlockHelper,ek as getVNodeHelper,tC as hasDynamicKeyVBind,tk as hasScopeRef,ed as helperNameMap,tD as injectProp,tU as isAllWhitespace,tB as isCommentOrWhitespace,to as isCoreComponent,tg as isFnExpression,tm as isFnExpressionBrowser,tS as isFnExpressionNode,te as isFunctionType,e6 as isInDestructureAssignment,e5 as isInNewExpression,tE as isMemberExpression,tu as isMemberExpressionBrowser,tf as isMemberExpressionNode,e4 as isReferencedIdentifier,tl as isSimpleIdentifier,tL as isSlotOutlet,tA as isStaticArgOf,tr as isStaticExp,tt as isStaticProperty,tn as isStaticPropertyKey,tx as isTemplateNode,tb as isText,tv as isVPre,tR as isVSlot,tF as isWhitespaceText,em as locStub,ih as noopDirectiveTransform,iX as parse,iI as parserOptions,nR as processExpression,nX as processFor,nM as processIf,n1 as processSlotOutlet,ep as registerRuntimeHelpers,nW as resolveComponentType,nx as stringifyExpression,tV as toValidAssetId,nB as trackSlotScopes,n$ as trackVForSlotScopes,n_ as transform,n2 as transformBind,nj as transformElement,nv as transformExpression,n9 as transformModel,n0 as transformOn,iy as transformStyle,io as transformVBindShorthand,nm as traverseNode,ts as unwrapTSNode,tc as validFirstIdentCharRE,e7 as walkBlockDeclarations,e9 as walkFunctionParams,e3 as walkIdentifiers,eQ as warnDeprecation}; diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js new file mode 100644 index 0000000..d362060 --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js @@ -0,0 +1,690 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { registerRuntimeHelpers, createSimpleExpression, createCompilerError, createObjectProperty, getConstantType, createCallExpression, TO_DISPLAY_STRING, transformModel as transformModel$1, findProp, hasDynamicKeyVBind, findDir, isStaticArgOf, transformOn as transformOn$1, isStaticExp, createCompoundExpression, checkCompatEnabled, isCommentOrWhitespace, noopDirectiveTransform, baseCompile, baseParse } from '@vue/compiler-core'; +export * from '@vue/compiler-core'; +import { isVoidTag, isHTMLTag, isSVGTag, isMathMLTag, parseStringStyle, capitalize, makeMap, extend } from '@vue/shared'; + +const V_MODEL_RADIO = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelRadio` : ``); +const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `vModelCheckbox` : `` +); +const V_MODEL_TEXT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelText` : ``); +const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `vModelSelect` : `` +); +const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `vModelDynamic` : `` +); +const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `vOnModifiersGuard` : `` +); +const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `vOnKeysGuard` : `` +); +const V_SHOW = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `vShow` : ``); +const TRANSITION = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? `Transition` : ``); +const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? `TransitionGroup` : `` +); +registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +let decoder; +function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } +} + +const parserOptions = { + parseMode: "html", + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + !!(process.env.NODE_ENV !== "production") || false ? DOMErrorMessages : void 0 + ); +} +const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 54, + "54": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 55, + "55": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 56, + "56": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 57, + "57": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 58, + "58": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 59, + "59": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60, + "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 61, + "61": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 62, + "62": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 63, + "63": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 64, + "64": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 65, + "65": "__EXTEND_POINT__" +}; +const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findDir(node, "bind"); + if (value && isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + !!(process.env.NODE_ENV !== "production") && checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + !!(process.env.NODE_ENV !== "production") && checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + !!(process.env.NODE_ENV !== "production") && checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } +}; +function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + !!(process.env.NODE_ENV !== "production") && context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } +}; + +function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; +} +const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); +const emptySet = /* @__PURE__ */ new Set([]); +const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet +}; +const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) +}; +const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) +}; +const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings +}; + +const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...!!(process.env.NODE_ENV !== "production") ? [transformTransition, validateHtmlNesting] : [] +]; +const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile(src, options = {}) { + return baseCompile( + src, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); +} +function parse(template, options = {}) { + return baseParse(template, extend({}, parserOptions, options)); +} + +export { DOMDirectiveTransforms, DOMErrorCodes, DOMErrorMessages, DOMNodeTransforms, TRANSITION, TRANSITION_GROUP, V_MODEL_CHECKBOX, V_MODEL_DYNAMIC, V_MODEL_RADIO, V_MODEL_SELECT, V_MODEL_TEXT, V_ON_WITH_KEYS, V_ON_WITH_MODIFIERS, V_SHOW, compile, createDOMCompilerError, parse, parserOptions, transformStyle }; diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.global.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.global.js new file mode 100644 index 0000000..c2fbceb --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.global.js @@ -0,0 +1,6814 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var VueCompilerDOM = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const NOOP = () => { + }; + const NO = () => false; + const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter + (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); + const extend = Object.assign; + const isArray = Array.isArray; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } + ); + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` ); + const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` ); + const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` ); + const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` ); + const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `BaseTransition` + ); + const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` ); + const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` ); + const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `createElementBlock` + ); + const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` ); + const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `createElementVNode` + ); + const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `createCommentVNode` + ); + const CREATE_TEXT = /* @__PURE__ */ Symbol( + `createTextVNode` + ); + const CREATE_STATIC = /* @__PURE__ */ Symbol( + `createStaticVNode` + ); + const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `resolveComponent` + ); + const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `resolveDynamicComponent` + ); + const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `resolveDirective` + ); + const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `resolveFilter` + ); + const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `withDirectives` + ); + const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` ); + const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` ); + const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` ); + const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `toDisplayString` + ); + const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` ); + const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `normalizeClass` + ); + const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `normalizeStyle` + ); + const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `normalizeProps` + ); + const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `guardReactiveProps` + ); + const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` ); + const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` ); + const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` ); + const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `toHandlerKey` + ); + const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `setBlockTracking` + ); + const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` ); + const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` ); + const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` ); + const UNREF = /* @__PURE__ */ Symbol(`unref` ); + const IS_REF = /* @__PURE__ */ Symbol(`isRef` ); + const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` ); + const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` ); + const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` + }; + function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); + } + + const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" + }; + const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" + }; + const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" + }; + const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" + }; + const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" + }; + function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; + } + function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; + } + function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; + } + function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; + } + function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; + } + function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; + } + function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: isString(content) ? createSimpleExpression(content, false, loc) : content + }; + } + function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; + } + function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; + } + function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; + } + function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; + } + function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; + } + function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; + } + function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; + } + function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; + } + function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; + } + function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; + } + function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; + } + function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; + } + function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; + } + function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } + } + + const defaultDelimitersOpen = new Uint8Array([123, 123]); + const defaultDelimitersClose = new Uint8Array([125, 125]); + function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; + } + function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; + } + function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); + } + function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; + } + const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea + }; + class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else ; + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + } + stateInEntity() { + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + } + } + + const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" + }; + const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } + }; + function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } + } + function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; + } + function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + if (enabled) { + warnDeprecation(key, context, loc, ...args); + } + return enabled; + } + function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); + } + + function defaultOnError(error) { + throw error; + } + function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); + } + function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; + } + const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_V_MODEL_ON_CONST": 45, + "45": "X_V_MODEL_ON_CONST", + "X_INVALID_EXPRESSION": 46, + "46": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 47, + "47": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 48, + "48": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 49, + "49": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 50, + "50": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 51, + "51": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 52, + "52": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53, + "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 54, + "54": "__EXTEND_POINT__" + }; + const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` + }; + + function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + { + return; + } + } + function isReferencedIdentifier(id, parent, parentStack) { + { + return false; + } + } + function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; + } + function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; + } + function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } + } + function walkBlockDeclarations(block, onIdent) { + const body = block.type === "SwitchCase" ? block.consequent : block.body; + for (const stmt of body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } else if (stmt.type === "SwitchStatement") { + walkSwitchStatement(stmt, true, onIdent); + } + } + } + function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; + } + function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } + } + function walkSwitchStatement(stmt, isVar, onIdent) { + for (const cs of stmt.cases) { + for (const stmt2 of cs.consequent) { + if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) { + for (const decl of stmt2.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } + } + walkBlockDeclarations(cs, onIdent); + } + } + function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; + } + const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); + }; + const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; + const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; + const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T + ]; + function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } + } + + const isStaticExp = (p) => p.type === 4 && p.isStatic; + function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } + } + const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; + const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); + const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; + const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; + const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; + const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; + const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; + }; + const isMemberExpressionNode = NOOP ; + const isMemberExpression = isMemberExpressionBrowser ; + const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; + const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); + const isFnExpressionNode = NOOP ; + const isFnExpression = isFnExpressionBrowser ; + function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); + } + function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; + } + function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } + } + function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } + } + function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } + } + function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); + } + function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); + } + function isText$1(node) { + return node.type === 5 || node.type === 2; + } + function isVPre(p) { + return p.type === 7 && p.name === "pre"; + } + function isVSlot(p) { + return p.type === 7 && p.name === "slot"; + } + function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; + } + function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; + } + const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); + function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; + } + function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } + } + function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; + } + function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; + } + function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } + } + function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } + } + const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; + function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; + } + function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); + } + function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); + } + + const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: NO, + isPreTag: NO, + isIgnoreNewlineTag: NO, + isCustomElement: NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false + }; + let currentOptions = defaultParserOptions; + let currentRoot = null; + let currentInput = ""; + let currentOpenTag = null; + let currentProp = null; + let currentAttrValue = ""; + let currentAttrStartIndex = -1; + let currentAttrEndIndex = -1; + let inPre = 0; + let inVPre = false; + let currentVPreBoundary = null; + const stack = []; + const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = currentOptions.decodeEntities(exp, false); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentAttrValue.includes("&")) { + currentAttrValue = currentOptions.decodeEntities( + currentAttrValue, + true + ); + } + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.arg.loc.source + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } + }); + const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + const stripParensRE = /^\(|\)$/g; + function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; + } + function getSlice(start, end) { + return currentInput.slice(start, end); + } + function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; + } + function onText(content, start, end) { + { + const tag = stack[0] && stack[0].tag; + if (tag !== "script" && tag !== "style" && content.includes("&")) { + content = currentOptions.decodeEntities(content, false); + } + } + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } + } + function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (isCompatEnabled( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions + )) { + let hasIf = false; + let hasFor = false; + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 7) { + if (p.name === "if") { + hasIf = true; + } else if (p.name === "for") { + hasFor = true; + } + } + if (hasIf && hasFor) { + warnDeprecation( + "COMPILER_V_IF_V_FOR_PRECEDENCE", + currentOptions, + el.loc + ); + break; + } + } + } + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + warnDeprecation( + "COMPILER_NATIVE_TEMPLATE", + currentOptions, + el.loc + ); + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } + } + function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; + } + function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; + } + const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); + function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; + } + function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; + } + function isUpperCase(c) { + return c > 64 && c < 91; + } + const windowsNewlineRE = /\r\n/g; + function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; + } + function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; + } + function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; + } + function addNode(node) { + (stack[0] || currentRoot).children.push(node); + } + function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; + } + function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); + } + function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); + } + function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; + } + function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + return exp; + } + function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); + } + function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; + } + function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (!currentOptions.decodeEntities) { + throw new Error( + `[@vue/compiler-core] decodeEntities option is required in browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; + } + + function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); + } + function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; + } + function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (` /* ${PatchFlagNames[-1]} */` ) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } + } + function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } + } + const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS + ]); + function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; + } + function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; + } + function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } + } + + function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig + }) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: NOOP, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + return context; + } + function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } + } + function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; + } + function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } + } + function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } + } + function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; + } + + const PURE_ANNOTATION = `/*@__PURE__*/`; + const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; + function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false + }) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + return context; + } + function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const preambleContext = context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: ``, + map: context.map ? context.map.toJSON() : void 0 + }; + } + function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); + } + function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } + } + function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; + } + function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; + } + function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); + } + function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node, -3 /* Unknown */); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } + } + function genNode(node, context) { + if (isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } + } + function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); + } + function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); + } + function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); + } + function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } + } + function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } + } + function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); + } + function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } + } + function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); + } + function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); + } + function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); + } + function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); + } + function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } + } + function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); + } + function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } + } + + const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" + ); + const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; + function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + message + ) + ); + } + } + + const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } + }; + function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } + } + function stringifyExpression(exp) { + if (isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } + } + + const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } + ); + function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } + } + function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; + } + function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } + } + function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } + } + function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; + } + function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } + } + + const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } + ); + function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) onExit(); + }; + } + function finalizeForParseResult(result, context) { + if (result.finalized) return; + { + validateBrowserExpression(result.source, context); + if (result.key) { + validateBrowserExpression( + result.key, + context, + true + ); + } + if (result.index) { + validateBrowserExpression( + result.index, + context, + true + ); + } + if (result.value) { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; + } + function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); + } + function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); + } + + const defaultFallback = createSimpleExpression(`undefined`, false); + const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } + }; + const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } + }; + const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc + ); + function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; + } + function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); + } + function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; + } + + const directiveImportMap = /* @__PURE__ */ new WeakMap(); + const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; + }; + function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); + } + function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + { + pushMergeArg(); + { + const hasOverridableKeys = mergeArgs.some((arg2) => { + if (arg2.type === 15) { + return arg2.properties.some(({ key }) => { + if (key.type !== 4 || !key.isStatic) { + return true; + } + return key.content !== "class" && key.content !== "style" && !isOn(key.content); + }); + } else { + return true; + } + }); + if (hasOverridableKeys) { + checkCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context, + loc + ); + } + } + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; + } + function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; + } + function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } + } + function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); + } + function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; + } + function isComponentTag(tag) { + return tag === "component" || tag === "Component"; + } + + const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } + }; + function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; + } + + const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp); + const isInlineStatement = !(isMemberExp || isFnExpression(exp)); + const hasMultipleStatements = exp.content.includes(`;`); + { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; + }; + + const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + exp = void 0; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; + }; + const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } + }; + + const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } + }; + + const seen$1 = /* @__PURE__ */ new WeakSet(); + const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } + }; + + const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + if (!expString.trim() || !isMemberExpression(exp) && true) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); + }; + function createTransformProps(props = []) { + return { props }; + } + + const validDivisionCharRE = /[\w).+\-_$\]]/; + const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } + }; + function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } + } + function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + warnDeprecation( + "COMPILER_FILTERS", + context, + node.loc + ); + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } + } + function wrapFilter(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } + } + + const seen = /* @__PURE__ */ new WeakSet(); + const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } + }; + + const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } + }; + + function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...[transformExpression] , + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; + } + function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(48)); + } else if (isModuleMode) { + onError(createCompilerError(49)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }); + const ast = isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); + } + + const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" + }; + + const noopDirectiveTransform = () => ({ props: [] }); + + const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` ); + const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `vModelCheckbox` + ); + const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` ); + const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `vModelSelect` + ); + const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `vModelDynamic` + ); + const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `vOnModifiersGuard` + ); + const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `vOnKeysGuard` + ); + const V_SHOW = /* @__PURE__ */ Symbol(`vShow` ); + const TRANSITION = /* @__PURE__ */ Symbol(`Transition` ); + const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `TransitionGroup` + ); + registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` + }); + + let decoder; + function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } + } + + const parserOptions = { + parseMode: "html", + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } + }; + + const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } + }; + const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); + }; + + function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); + } + const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 54, + "54": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 55, + "55": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 56, + "56": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 57, + "57": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 58, + "58": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 59, + "59": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60, + "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 61, + "61": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 62, + "62": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 63, + "63": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 64, + "64": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 65, + "65": "__EXTEND_POINT__" + }; + const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` + }; + + const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; + }; + + const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; + }; + + const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findDir(node, "bind"); + if (value && isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; + }; + + const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); + const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` + ); + const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); + const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`); + const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; + }; + const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; + }; + const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); + }; + + const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; + }; + + const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } + }; + function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); + } + + const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } + }; + + function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; + } + const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); + const emptySet = /* @__PURE__ */ new Set([]); + const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet + }; + const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) + }; + const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) + }; + const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings + }; + + const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } + }; + + const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] + ]; + const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow + }; + function compile(src, options = {}) { + return baseCompile( + src, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); + } + function parse(template, options = {}) { + return baseParse(template, extend({}, parserOptions, options)); + } + + exports.BASE_TRANSITION = BASE_TRANSITION; + exports.BindingTypes = BindingTypes; + exports.CAMELIZE = CAMELIZE; + exports.CAPITALIZE = CAPITALIZE; + exports.CREATE_BLOCK = CREATE_BLOCK; + exports.CREATE_COMMENT = CREATE_COMMENT; + exports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK; + exports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE; + exports.CREATE_SLOTS = CREATE_SLOTS; + exports.CREATE_STATIC = CREATE_STATIC; + exports.CREATE_TEXT = CREATE_TEXT; + exports.CREATE_VNODE = CREATE_VNODE; + exports.CompilerDeprecationTypes = CompilerDeprecationTypes; + exports.ConstantTypes = ConstantTypes; + exports.DOMDirectiveTransforms = DOMDirectiveTransforms; + exports.DOMErrorCodes = DOMErrorCodes; + exports.DOMErrorMessages = DOMErrorMessages; + exports.DOMNodeTransforms = DOMNodeTransforms; + exports.ElementTypes = ElementTypes; + exports.ErrorCodes = ErrorCodes; + exports.FRAGMENT = FRAGMENT; + exports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS; + exports.IS_MEMO_SAME = IS_MEMO_SAME; + exports.IS_REF = IS_REF; + exports.KEEP_ALIVE = KEEP_ALIVE; + exports.MERGE_PROPS = MERGE_PROPS; + exports.NORMALIZE_CLASS = NORMALIZE_CLASS; + exports.NORMALIZE_PROPS = NORMALIZE_PROPS; + exports.NORMALIZE_STYLE = NORMALIZE_STYLE; + exports.Namespaces = Namespaces; + exports.NodeTypes = NodeTypes; + exports.OPEN_BLOCK = OPEN_BLOCK; + exports.POP_SCOPE_ID = POP_SCOPE_ID; + exports.PUSH_SCOPE_ID = PUSH_SCOPE_ID; + exports.RENDER_LIST = RENDER_LIST; + exports.RENDER_SLOT = RENDER_SLOT; + exports.RESOLVE_COMPONENT = RESOLVE_COMPONENT; + exports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE; + exports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT; + exports.RESOLVE_FILTER = RESOLVE_FILTER; + exports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING; + exports.SUSPENSE = SUSPENSE; + exports.TELEPORT = TELEPORT; + exports.TO_DISPLAY_STRING = TO_DISPLAY_STRING; + exports.TO_HANDLERS = TO_HANDLERS; + exports.TO_HANDLER_KEY = TO_HANDLER_KEY; + exports.TRANSITION = TRANSITION; + exports.TRANSITION_GROUP = TRANSITION_GROUP; + exports.TS_NODE_TYPES = TS_NODE_TYPES; + exports.UNREF = UNREF; + exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX; + exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC; + exports.V_MODEL_RADIO = V_MODEL_RADIO; + exports.V_MODEL_SELECT = V_MODEL_SELECT; + exports.V_MODEL_TEXT = V_MODEL_TEXT; + exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS; + exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS; + exports.V_SHOW = V_SHOW; + exports.WITH_CTX = WITH_CTX; + exports.WITH_DIRECTIVES = WITH_DIRECTIVES; + exports.WITH_MEMO = WITH_MEMO; + exports.advancePositionWithClone = advancePositionWithClone; + exports.advancePositionWithMutation = advancePositionWithMutation; + exports.assert = assert; + exports.baseCompile = baseCompile; + exports.baseParse = baseParse; + exports.buildDirectiveArgs = buildDirectiveArgs; + exports.buildProps = buildProps; + exports.buildSlots = buildSlots; + exports.checkCompatEnabled = checkCompatEnabled; + exports.compile = compile; + exports.convertToBlock = convertToBlock; + exports.createArrayExpression = createArrayExpression; + exports.createAssignmentExpression = createAssignmentExpression; + exports.createBlockStatement = createBlockStatement; + exports.createCacheExpression = createCacheExpression; + exports.createCallExpression = createCallExpression; + exports.createCompilerError = createCompilerError; + exports.createCompoundExpression = createCompoundExpression; + exports.createConditionalExpression = createConditionalExpression; + exports.createDOMCompilerError = createDOMCompilerError; + exports.createForLoopParams = createForLoopParams; + exports.createFunctionExpression = createFunctionExpression; + exports.createIfStatement = createIfStatement; + exports.createInterpolation = createInterpolation; + exports.createObjectExpression = createObjectExpression; + exports.createObjectProperty = createObjectProperty; + exports.createReturnStatement = createReturnStatement; + exports.createRoot = createRoot; + exports.createSequenceExpression = createSequenceExpression; + exports.createSimpleExpression = createSimpleExpression; + exports.createStructuralDirectiveTransform = createStructuralDirectiveTransform; + exports.createTemplateLiteral = createTemplateLiteral; + exports.createTransformContext = createTransformContext; + exports.createVNodeCall = createVNodeCall; + exports.errorMessages = errorMessages; + exports.extractIdentifiers = extractIdentifiers; + exports.findDir = findDir; + exports.findProp = findProp; + exports.forAliasRE = forAliasRE; + exports.generate = generate; + exports.generateCodeFrame = generateCodeFrame; + exports.getBaseTransformPreset = getBaseTransformPreset; + exports.getConstantType = getConstantType; + exports.getMemoedVNodeCall = getMemoedVNodeCall; + exports.getVNodeBlockHelper = getVNodeBlockHelper; + exports.getVNodeHelper = getVNodeHelper; + exports.hasDynamicKeyVBind = hasDynamicKeyVBind; + exports.hasScopeRef = hasScopeRef; + exports.helperNameMap = helperNameMap; + exports.injectProp = injectProp; + exports.isAllWhitespace = isAllWhitespace; + exports.isCommentOrWhitespace = isCommentOrWhitespace; + exports.isCoreComponent = isCoreComponent; + exports.isFnExpression = isFnExpression; + exports.isFnExpressionBrowser = isFnExpressionBrowser; + exports.isFnExpressionNode = isFnExpressionNode; + exports.isFunctionType = isFunctionType; + exports.isInDestructureAssignment = isInDestructureAssignment; + exports.isInNewExpression = isInNewExpression; + exports.isMemberExpression = isMemberExpression; + exports.isMemberExpressionBrowser = isMemberExpressionBrowser; + exports.isMemberExpressionNode = isMemberExpressionNode; + exports.isReferencedIdentifier = isReferencedIdentifier; + exports.isSimpleIdentifier = isSimpleIdentifier; + exports.isSlotOutlet = isSlotOutlet; + exports.isStaticArgOf = isStaticArgOf; + exports.isStaticExp = isStaticExp; + exports.isStaticProperty = isStaticProperty; + exports.isStaticPropertyKey = isStaticPropertyKey; + exports.isTemplateNode = isTemplateNode; + exports.isText = isText$1; + exports.isVPre = isVPre; + exports.isVSlot = isVSlot; + exports.isWhitespaceText = isWhitespaceText; + exports.locStub = locStub; + exports.noopDirectiveTransform = noopDirectiveTransform; + exports.parse = parse; + exports.parserOptions = parserOptions; + exports.processExpression = processExpression; + exports.processFor = processFor; + exports.processIf = processIf; + exports.processSlotOutlet = processSlotOutlet; + exports.registerRuntimeHelpers = registerRuntimeHelpers; + exports.resolveComponentType = resolveComponentType; + exports.stringifyExpression = stringifyExpression; + exports.toValidAssetId = toValidAssetId; + exports.trackSlotScopes = trackSlotScopes; + exports.trackVForSlotScopes = trackVForSlotScopes; + exports.transform = transform; + exports.transformBind = transformBind; + exports.transformElement = transformElement; + exports.transformExpression = transformExpression; + exports.transformModel = transformModel$1; + exports.transformOn = transformOn$1; + exports.transformStyle = transformStyle; + exports.transformVBindShorthand = transformVBindShorthand; + exports.traverseNode = traverseNode; + exports.unwrapTSNode = unwrapTSNode; + exports.validFirstIdentCharRE = validFirstIdentCharRE; + exports.walkBlockDeclarations = walkBlockDeclarations; + exports.walkFunctionParams = walkFunctionParams; + exports.walkIdentifiers = walkIdentifiers; + exports.warnDeprecation = warnDeprecation; + + return exports; + +})({}); diff --git a/node_modules/@vue/compiler-dom/dist/compiler-dom.global.prod.js b/node_modules/@vue/compiler-dom/dist/compiler-dom.global.prod.js new file mode 100644 index 0000000..fe78905 --- /dev/null +++ b/node_modules/@vue/compiler-dom/dist/compiler-dom.global.prod.js @@ -0,0 +1,14 @@ +/** +* @vue/compiler-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var VueCompilerDOM=function(e){"use strict";let t;function n(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let i={},s=()=>{},r=()=>!1,o=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),a=Object.assign,l=Array.isArray,c=e=>"string"==typeof e,h=e=>"symbol"==typeof e,d=e=>null!==e&&"object"==typeof e,p=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),u=n("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),f=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},E=/-\w/g,_=f(e=>e.replace(E,e=>e.slice(1).toUpperCase())),m=f(e=>e.charAt(0).toUpperCase()+e.slice(1)),S=f(e=>e?`on${m(e)}`:""),g=/;(?![^(]*\))/g,T=/:([^]+)/,N=/\/\*[^]*?\*\//g,I=n("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),y=n("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),O=n("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),A=n("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),C=Symbol(""),b=Symbol(""),v=Symbol(""),R=Symbol(""),x=Symbol(""),L=Symbol(""),M=Symbol(""),D=Symbol(""),P=Symbol(""),V=Symbol(""),k=Symbol(""),X=Symbol(""),w=Symbol(""),U=Symbol(""),F=Symbol(""),B=Symbol(""),$=Symbol(""),H=Symbol(""),G=Symbol(""),q=Symbol(""),J=Symbol(""),j=Symbol(""),W=Symbol(""),K=Symbol(""),Y=Symbol(""),Q=Symbol(""),z=Symbol(""),Z=Symbol(""),ee=Symbol(""),et=Symbol(""),en=Symbol(""),ei=Symbol(""),es=Symbol(""),er=Symbol(""),eo=Symbol(""),ea=Symbol(""),el=Symbol(""),ec=Symbol(""),eh=Symbol(""),ed={[C]:"Fragment",[b]:"Teleport",[v]:"Suspense",[R]:"KeepAlive",[x]:"BaseTransition",[L]:"openBlock",[M]:"createBlock",[D]:"createElementBlock",[P]:"createVNode",[V]:"createElementVNode",[k]:"createCommentVNode",[X]:"createTextVNode",[w]:"createStaticVNode",[U]:"resolveComponent",[F]:"resolveDynamicComponent",[B]:"resolveDirective",[$]:"resolveFilter",[H]:"withDirectives",[G]:"renderList",[q]:"renderSlot",[J]:"createSlots",[j]:"toDisplayString",[W]:"mergeProps",[K]:"normalizeClass",[Y]:"normalizeStyle",[Q]:"normalizeProps",[z]:"guardReactiveProps",[Z]:"toHandlers",[ee]:"camelize",[et]:"capitalize",[en]:"toHandlerKey",[ei]:"setBlockTracking",[es]:"pushScopeId",[er]:"popScopeId",[eo]:"withCtx",[ea]:"unref",[el]:"isRef",[ec]:"withMemo",[eh]:"isMemoSame"};function ep(e){Object.getOwnPropertySymbols(e).forEach(t=>{ed[t]=e[t]})}let eu={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function ef(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:eu}}function eE(e,t,n,i,s,r,o,a=!1,l=!1,c=!1,h=eu){return e&&(a?(e.helper(L),e.helper(eb(e.inSSR,c))):e.helper(eC(e.inSSR,c)),o&&e.helper(H)),{type:13,tag:t,props:n,children:i,patchFlag:s,dynamicProps:r,directives:o,isBlock:a,disableTracking:l,isComponent:c,loc:h}}function e_(e,t=eu){return{type:17,loc:t,elements:e}}function em(e,t=eu){return{type:15,loc:t,properties:e}}function eS(e,t){return{type:16,loc:eu,key:c(e)?eg(e,!0):e,value:t}}function eg(e,t=!1,n=eu,i=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:i}}function eT(e,t=eu){return{type:8,loc:t,children:e}}function eN(e,t=[],n=eu){return{type:14,loc:n,callee:e,arguments:t}}function eI(e,t,n=!1,i=!1,s=eu){return{type:18,params:e,returns:t,newline:n,isSlot:i,loc:s}}function ey(e,t,n,i=!0){return{type:19,test:e,consequent:t,alternate:n,newline:i,loc:eu}}function eO(e,t,n=!1,i=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:i,needArraySpread:!1,loc:eu}}function eA(e){return{type:21,body:e,loc:eu}}function eC(e,t){return e||t?P:V}function eb(e,t){return e||t?M:D}function ev(e,{helper:t,removeHelper:n,inSSR:i}){e.isBlock||(e.isBlock=!0,n(eC(i,e.isComponent)),t(L),t(eb(i,e.isComponent)))}let eR=new Uint8Array([123,123]),ex=new Uint8Array([125,125]);function eL(e){return e>=97&&e<=122||e>=65&&e<=90}function eM(e){return 32===e||10===e||9===e||12===e||13===e}function eD(e){return 47===e||62===e||eM(e)}function eP(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}let eV={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])},ek={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:e=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${e}.sync\` should be changed to \`v-model:${e}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.",link:"https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html"},COMPILER_NATIVE_TEMPLATE:{message:"<template> with no special directives will render as a native template element instead of its inner content in Vue 3."},COMPILER_INLINE_TEMPLATE:{message:'"inline-template" has been removed in Vue 3.',link:"https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html"},COMPILER_FILTERS:{message:'filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.',link:"https://v3-migration.vuejs.org/breaking-changes/filters.html"}};function eX(e,{compatConfig:t}){let n=t&&t[e];return"MODE"===e?n||3:n}function ew(e,t){let n=eX("MODE",t),i=eX(e,t);return 3===n?!0===i:!1!==i}function eU(e){throw e}function eF(e){}function eB(e,t,n,i){let s=SyntaxError(String(`https://vuejs.org/error-reference/#compiler-${e}`));return s.code=e,s.loc=t,s}let e$={0:"Illegal comment.",1:"CDATA section is allowed only in XML context.",2:"Duplicate attribute.",3:"End tag cannot have attributes.",4:"Illegal '/' in tags.",5:"Unexpected EOF in tag.",6:"Unexpected EOF in CDATA section.",7:"Unexpected EOF in comment.",8:"Unexpected EOF in script.",9:"Unexpected EOF in tag.",10:"Incorrectly closed comment.",11:"Incorrectly opened comment.",12:"Illegal tag name. Use '<' to print '<'.",13:"Attribute value was expected.",14:"End tag name was expected.",15:"Whitespace was expected.",16:"Unexpected '\x3c!--' in comment.",17:"Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).",18:"Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",19:"Attribute name cannot start with '='.",21:"'<?' is allowed only in XML context.",20:"Unexpected null character.",22:"Illegal '/' in tags.",23:"Invalid end tag.",24:"Element is missing end tag.",25:"Interpolation end sign was not found.",27:"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",26:"Legal directive name was expected.",28:"v-if/v-else-if is missing expression.",29:"v-if/else branches must use unique keys.",30:"v-else/v-else-if has no adjacent v-if or v-else-if.",31:"v-for is missing expression.",32:"v-for has invalid expression.",33:"<template v-for> key should be placed on the <template> tag.",34:"v-bind is missing expression.",53:"v-bind with same-name shorthand only allows static argument.",35:"v-on is missing expression.",36:"Unexpected custom directive on <slot> outlet.",37:"Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",38:"Duplicate slot names found. ",39:"Extraneous children found when component already has explicitly named default slot. These children will be ignored.",40:"v-slot can only be used on components or <template> tags.",41:"v-model is missing expression.",42:"v-model value must be a valid JavaScript member expression.",43:"v-model cannot be used on v-for or v-slot scope variables because they are not writable.",44:`v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,45:"v-model cannot be used on a const binding because it is not writable.",46:"Error parsing JavaScript expression: ",47:"<KeepAlive> expects exactly one child component.",52:"@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.",48:'"prefixIdentifiers" option is not supported in this build of compiler.',49:"ES module mode is not supported in this build of compiler.",50:'"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',51:'"scopeId" option is only supported in module mode.',54:""};function eH(e,t=[]){switch(e.type){case"Identifier":t.push(e);break;case"MemberExpression":let n=e;for(;"MemberExpression"===n.type;)n=n.object;t.push(n);break;case"ObjectPattern":for(let n of e.properties)"RestElement"===n.type?eH(n.argument,t):eH(n.value,t);break;case"ArrayPattern":e.elements.forEach(e=>{e&&eH(e,t)});break;case"RestElement":eH(e.argument,t);break;case"AssignmentPattern":eH(e.left,t)}return t}let eG=e=>e&&("ObjectProperty"===e.type||"ObjectMethod"===e.type)&&!e.computed,eq=["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"],eJ=e=>4===e.type&&e.isStatic;function ej(e){switch(e){case"Teleport":case"teleport":return b;case"Suspense":case"suspense":return v;case"KeepAlive":case"keep-alive":return R;case"BaseTransition":case"base-transition":return x}}let eW=/^$|^\d|[^\$\w\xA0-\uFFFF]/,eK=e=>!eW.test(e),eY=/[A-Za-z_$\xA0-\uFFFF]/,eQ=/[\.\?\w$\xA0-\uFFFF]/,ez=/\s+[.[]\s*|\s*[.[]\s+/g,eZ=e=>4===e.type?e.content:e.loc.source,e1=e=>{let t=eZ(e).trim().replace(ez,e=>e.trim()),n=0,i=[],s=0,r=0,o=null;for(let e=0;e<t.length;e++){let a=t.charAt(e);switch(n){case 0:if("["===a)i.push(n),n=1,s++;else if("("===a)i.push(n),n=2,r++;else if(!(0===e?eY:eQ).test(a))return!1;break;case 1:"'"===a||'"'===a||"`"===a?(i.push(n),n=3,o=a):"["===a?s++:"]"!==a||--s||(n=i.pop());break;case 2:if("'"===a||'"'===a||"`"===a)i.push(n),n=3,o=a;else if("("===a)r++;else if(")"===a){if(e===t.length-1)return!1;--r||(n=i.pop())}break;case 3:a===o&&(n=i.pop(),o=null)}}return!s&&!r},e0=/^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/,e2=e=>e0.test(eZ(e));function e3(e,t,n=t.length){let i=0,s=-1;for(let e=0;e<n;e++)10===t.charCodeAt(e)&&(i++,s=e);return e.offset+=n,e.line+=i,e.column=-1===s?e.column+n:n-s,e}function e4(e,t,n=!1){for(let i=0;i<e.props.length;i++){let s=e.props[i];if(7===s.type&&(n||s.exp)&&(c(t)?s.name===t:t.test(s.name)))return s}}function e6(e,t,n=!1,i=!1){for(let s=0;s<e.props.length;s++){let r=e.props[s];if(6===r.type){if(n)continue;if(r.name===t&&(r.value||i))return r}else if("bind"===r.name&&(r.exp||i)&&e5(r.arg,t))return r}}function e5(e,t){return!!(e&&eJ(e)&&e.content===t)}function e9(e){return e.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))}function e7(e){return 5===e.type||2===e.type}function e8(e){return 7===e.type&&"pre"===e.name}function te(e){return 7===e.type&&"slot"===e.name}function tt(e){return 1===e.type&&3===e.tagType}function tn(e){return 1===e.type&&2===e.tagType}let ti=new Set([Q,z]);function ts(e,t,n){let i,s,r=13===e.type?e.props:e.arguments[2],o=[];if(r&&!c(r)&&14===r.type){let e=function e(t,n=[]){if(t&&!c(t)&&14===t.type){let i=t.callee;if(!c(i)&&ti.has(i))return e(t.arguments[0],n.concat(t))}return[t,n]}(r);r=e[0],s=(o=e[1])[o.length-1]}if(null==r||c(r))i=em([t]);else if(14===r.type){let e=r.arguments[0];c(e)||15!==e.type?r.callee===Z?i=eN(n.helper(W),[em([t]),r]):r.arguments.unshift(em([t])):tr(t,e)||e.properties.unshift(t),i||(i=r)}else 15===r.type?(tr(t,r)||r.properties.unshift(t),i=r):(i=eN(n.helper(W),[em([t]),r]),s&&s.callee===z&&(s=o[o.length-2]));13===e.type?s?s.arguments[0]=i:e.props=i:s?s.arguments[0]=i:e.arguments[2]=i}function tr(e,t){let n=!1;if(4===e.key.type){let i=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===i)}return n}function to(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}function ta(e){return 14===e.type&&e.callee===ec?e.arguments[1].returns:e}let tl=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function tc(e){for(let t=0;t<e.length;t++)if(!eM(e.charCodeAt(t)))return!1;return!0}function th(e){return 2===e.type&&tc(e.content)||12===e.type&&th(e.content)}function td(e){return 3===e.type||th(e)}let tp={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:r,isPreTag:r,isIgnoreNewlineTag:r,isCustomElement:r,onError:eU,onWarn:eF,comments:!1,prefixIdentifiers:!1},tu=tp,tf=null,tE="",t_=null,tm=null,tS="",tg=-1,tT=-1,tN=0,tI=!1,ty=null,tO=[],tA=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=eR,this.delimiterClose=ex,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=eR,this.delimiterClose=ex}getPos(e){let t=1,n=e+1,i=this.newlines.length,s=-1;if(i>100){let t=-1,n=i;for(;t+1<n;){let i=t+n>>>1;this.newlines[i]<e?t=i:n=i}s=t}else for(let t=i-1;t>=0;t--)if(e>this.newlines[t]){s=t;break}return s>=0&&(t=s+2,n=e-this.newlines[s]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?eD(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||eM(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.sectionStart=t+2,this.stateInClosingTagName(e),this.inRCDATA=!1;return}this.sequenceIndex=0}(32|e)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:0===this.sequenceIndex?this.currentSequence!==eV.TitleEnd&&(this.currentSequence!==eV.TextareaEnd||this.inSFCRoot)?this.fastForwardTo(60)&&(this.sequenceIndex=1):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.sequenceIndex=Number(60===e)}stateCDATASequence(e){e===eV.Cdata[this.sequenceIndex]?++this.sequenceIndex===eV.Cdata.length&&(this.state=28,this.currentSequence=eV.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){let t=this.buffer.charCodeAt(this.index);if(10===t&&this.newlines.push(this.index),t===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===eV.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):0===this.sequenceIndex?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,t){this.enterRCDATA(e,t),this.state=31}enterRCDATA(e,t){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=t}stateBeforeTagName(e){33===e?(this.state=22,this.sectionStart=this.index+1):63===e?(this.state=24,this.sectionStart=this.index+1):eL(e)?(this.sectionStart=this.index,0===this.mode?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:116===e?this.state=30:this.state=115===e?29:6):47===e?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){eD(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(eD(e)){let t=this.buffer.slice(this.sectionStart,this.index);"template"!==t&&this.enterRCDATA(eP("</"+t),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){eM(e)||(62===e?(this.state=1,this.sectionStart=this.index+1):(this.state=eL(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(62===e||eM(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){62===e&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){62===e?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):47===e?this.state=7:60===e&&47===this.peek()?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):eM(e)||this.handleAttrStart(e)}handleAttrStart(e){118===e&&45===this.peek()?(this.state=13,this.sectionStart=this.index):46===e||58===e||64===e||35===e?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){62===e?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):eM(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){(61===e||eD(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e))}stateInDirName(e){61===e||eD(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):58===e?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):46===e&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){61===e||eD(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):91===e?this.state=15:46===e&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){93===e?this.state=14:(61===e||eD(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e))}stateInDirModifier(e){61===e||eD(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):46===e&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){61===e?this.state=18:47===e||62===e?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):eM(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){34===e?(this.state=19,this.sectionStart=this.index+1):39===e?(this.state=20,this.sectionStart=this.index+1):eM(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,t){(e===t||this.fastForwardTo(t))&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(34===t?3:2,this.index+1),this.state=11)}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){eM(e)||62===e?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):(39===e||60===e||61===e||96===e)&&this.cbs.onerr(18,this.index)}stateBeforeDeclaration(e){91===e?(this.state=26,this.sequenceIndex=0):this.state=45===e?25:23}stateInDeclaration(e){(62===e||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(62===e||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){45===e?(this.state=28,this.currentSequence=eV.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(62===e||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===eV.ScriptEnd[3]?this.startSpecial(eV.ScriptEnd,4):e===eV.StyleEnd[3]?this.startSpecial(eV.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===eV.TitleEnd[3]?this.startSpecial(eV.TitleEnd,4):e===eV.TextareaEnd[3]?this.startSpecial(eV.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){}stateInEntity(){}parse(e){for(this.buffer=e;this.index<this.buffer.length;){let e=this.buffer.charCodeAt(this.index);switch(10===e&&33!==this.state&&this.newlines.push(this.index),this.state){case 1:this.stateText(e);break;case 2:this.stateInterpolationOpen(e);break;case 3:this.stateInterpolation(e);break;case 4:this.stateInterpolationClose(e);break;case 31:this.stateSpecialStartSequence(e);break;case 32:this.stateInRCDATA(e);break;case 26:this.stateCDATASequence(e);break;case 19:this.stateInAttrValueDoubleQuotes(e);break;case 12:this.stateInAttrName(e);break;case 13:this.stateInDirName(e);break;case 14:this.stateInDirArg(e);break;case 15:this.stateInDynamicDirArg(e);break;case 16:this.stateInDirModifier(e);break;case 28:this.stateInCommentLike(e);break;case 27:this.stateInSpecialComment(e);break;case 11:this.stateBeforeAttrName(e);break;case 6:this.stateInTagName(e);break;case 34:this.stateInSFCRootTagName(e);break;case 9:this.stateInClosingTagName(e);break;case 5:this.stateBeforeTagName(e);break;case 17:this.stateAfterAttrName(e);break;case 20:this.stateInAttrValueSingleQuotes(e);break;case 18:this.stateBeforeAttrValue(e);break;case 8:this.stateBeforeClosingTagName(e);break;case 10:this.stateAfterClosingTagName(e);break;case 29:this.stateBeforeSpecialS(e);break;case 30:this.stateBeforeSpecialT(e);break;case 21:this.stateInAttrValueNoQuotes(e);break;case 7:this.stateInSelfClosingTag(e);break;case 23:this.stateInDeclaration(e);break;case 22:this.stateBeforeDeclaration(e);break;case 25:this.stateBeforeComment(e);break;case 24:this.stateInProcessingInstruction(e);break;case 33:this.stateInEntity()}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(1===this.state||32===this.state&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(19===this.state||20===this.state||21===this.state)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length;this.sectionStart>=e||(28===this.state?this.currentSequence===eV.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(tO,{onerr:t$,ontext(e,t){tx(tv(e,t),e,t)},ontextentity(e,t,n){tx(e,t,n)},oninterpolation(e,t){if(tI)return tx(tv(e,t),e,t);let n=e+tA.delimiterOpen.length,i=t-tA.delimiterClose.length;for(;eM(tE.charCodeAt(n));)n++;for(;eM(tE.charCodeAt(i-1));)i--;let s=tv(n,i);s.includes("&")&&(s=tu.decodeEntities(s,!1)),tw({type:5,content:tB(s,!1,tU(n,i)),loc:tU(e,t)})},onopentagname(e,t){let n=tv(e,t);t_={type:1,tag:n,ns:tu.getNamespace(n,tO[0],tu.ns),tagType:0,props:[],children:[],loc:tU(e-1,t),codegenNode:void 0}},onopentagend(e){tR(e)},onclosetag(e,t){let n=tv(e,t);if(!tu.isVoidTag(n)){let i=!1;for(let e=0;e<tO.length;e++)if(tO[e].tag.toLowerCase()===n.toLowerCase()){i=!0,e>0&&tO[0].loc.start.offset;for(let n=0;n<=e;n++)tL(tO.shift(),t,n<e);break}i||tM(e,60)}},onselfclosingtag(e){let t=t_.tag;t_.isSelfClosing=!0,tR(e),tO[0]&&tO[0].tag===t&&tL(tO.shift(),e)},onattribname(e,t){tm={type:6,name:tv(e,t),nameLoc:tU(e,t),value:void 0,loc:tU(e)}},ondirname(e,t){let n=tv(e,t),i="."===n||":"===n?"bind":"@"===n?"on":"#"===n?"slot":n.slice(2);if(tI||""===i)tm={type:6,name:n,nameLoc:tU(e,t),value:void 0,loc:tU(e)};else if(tm={type:7,name:i,rawName:n,exp:void 0,arg:void 0,modifiers:"."===n?[eg("prop")]:[],loc:tU(e)},"pre"===i){tI=tA.inVPre=!0,ty=t_;let e=t_.props;for(let t=0;t<e.length;t++)7===e[t].type&&(e[t]=function(e){let t={type:6,name:e.rawName,nameLoc:tU(e.loc.start.offset,e.loc.start.offset+e.rawName.length),value:void 0,loc:e.loc};if(e.exp){let n=e.exp.loc;n.end.offset<e.loc.end.offset&&(n.start.offset--,n.start.column--,n.end.offset++,n.end.column++),t.value={type:2,content:e.exp.content,loc:n}}return t}(e[t]))}},ondirarg(e,t){if(e===t)return;let n=tv(e,t);if(tI&&!e8(tm))tm.name+=n,tF(tm.nameLoc,t);else{let i="["!==n[0];tm.arg=tB(i?n:n.slice(1,-1),i,tU(e,t),3*!!i)}},ondirmodifier(e,t){let n=tv(e,t);if(tI&&!e8(tm))tm.name+="."+n,tF(tm.nameLoc,t);else if("slot"===tm.name){let e=tm.arg;e&&(e.content+="."+n,tF(e.loc,t))}else{let i=eg(n,!0,tU(e,t));tm.modifiers.push(i)}},onattribdata(e,t){tS+=tv(e,t),tg<0&&(tg=e),tT=t},onattribentity(e,t,n){tS+=e,tg<0&&(tg=t),tT=n},onattribnameend(e){let t=tv(tm.loc.start.offset,e);7===tm.type&&(tm.rawName=t),t_.props.some(e=>(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){if(t_&&tm){if(tF(tm.loc,t),0!==e)if(tS.includes("&")&&(tS=tu.decodeEntities(tS,!0)),6===tm.type)"class"===tm.name&&(tS=tX(tS).trim()),tm.value={type:2,content:tS,loc:1===e?tU(tg,tT):tU(tg-1,tT+1)},tA.inSFCRoot&&"template"===t_.tag&&"lang"===tm.name&&tS&&"html"!==tS&&tA.enterRCDATA(eP("</template"),0);else{var n;tm.exp=tB(tS,!1,tU(tg,tT),0,0),"for"===tm.name&&(tm.forParseResult=function(e){let t=e.loc,n=e.content,i=n.match(tl);if(!i)return;let[,s,r]=i,o=(e,n,i=!1)=>{let s=t.start.offset+n,r=s+e.length;return tB(e,!1,tU(s,r),0,+!!i)},a={source:o(r.trim(),n.indexOf(r,s.length)),value:void 0,key:void 0,index:void 0,finalized:!1},l=s.trim().replace(tb,"").trim(),c=s.indexOf(l),h=l.match(tC);if(h){let e;l=l.replace(tC,"").trim();let t=h[1].trim();if(t&&(e=n.indexOf(t,c+l.length),a.key=o(t,e,!0)),h[2]){let i=h[2].trim();i&&(a.index=o(i,n.indexOf(i,a.key?e+t.length:c+l.length),!0))}}return l&&(a.value=o(l,c,!0)),a}(tm.exp));let e=-1;"bind"===tm.name&&(e=tm.modifiers.findIndex(e=>"sync"===e.content))>-1&&(n=tu,tm.loc,tm.arg.loc.source,ew("COMPILER_V_BIND_SYNC",n))&&(tm.name="model",tm.modifiers.splice(e,1))}(7!==tm.type||"pre"!==tm.name)&&t_.props.push(tm)}tS="",tg=tT=-1},oncomment(e,t){tu.comments&&tw({type:3,content:tv(e,t),loc:tU(e-4,t+3)})},onend(){let e=tE.length;for(let t=0;t<tO.length;t++)tL(tO[t],e-1),tO[t].loc.start.offset},oncdata(e,t){0!==tO[0].ns&&tx(tv(e,t),e,t)},onprocessinginstruction(e){(tO[0]?tO[0].ns:tu.ns)===0&&t$(21,e-1)}}),tC=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,tb=/^\(|\)$/g;function tv(e,t){return tE.slice(e,t)}function tR(e){tA.inSFCRoot&&(t_.innerLoc=tU(e+1,e+1)),tw(t_);let{tag:t,ns:n}=t_;0===n&&tu.isPreTag(t)&&tN++,tu.isVoidTag(t)?tL(t_,e):(tO.unshift(t_),(1===n||2===n)&&(tA.inXML=!0)),t_=null}function tx(e,t,n){{let t=tO[0]&&tO[0].tag;"script"!==t&&"style"!==t&&e.includes("&")&&(e=tu.decodeEntities(e,!1))}let i=tO[0]||tf,s=i.children[i.children.length-1];s&&2===s.type?(s.content+=e,tF(s.loc,n)):i.children.push({type:2,content:e,loc:tU(t,n)})}function tL(e,t,n=!1){n?tF(e.loc,tM(t,60)):tF(e.loc,function(e){let t=e;for(;62!==tE.charCodeAt(t)&&t<tE.length-1;)t++;return t}(t)+1),tA.inSFCRoot&&(e.children.length?e.innerLoc.end=a({},e.children[e.children.length-1].loc.end):e.innerLoc.end=a({},e.innerLoc.start),e.innerLoc.source=tv(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:i,ns:s,children:r}=e;if(!tI&&("slot"===i?e.tagType=2:tP(e)?e.tagType=3:function({tag:e,props:t}){var n,i,s;if(tu.isCustomElement(e))return!1;if("component"===e||(n=e.charCodeAt(0))>64&&n<91||ej(e)||tu.isBuiltInComponent&&tu.isBuiltInComponent(e)||tu.isNativeTag&&!tu.isNativeTag(e))return!0;for(let e=0;e<t.length;e++){let n=t[e];if(6===n.type){if("is"===n.name&&n.value){if(n.value.content.startsWith("vue:"))return!0;else if(i=tu,n.loc,ew("COMPILER_IS_ON_ELEMENT",i))return!0}}else if("bind"===n.name&&e5(n.arg,"is")&&(s=tu,n.loc,ew("COMPILER_IS_ON_ELEMENT",s)))return!0}return!1}(e)&&(e.tagType=1)),tA.inRCDATA||(e.children=tk(r)),0===s&&tu.isIgnoreNewlineTag(i)){let e=r[0];e&&2===e.type&&(e.content=e.content.replace(/^\r?\n/,""))}0===s&&tu.isPreTag(i)&&tN--,ty===e&&(tI=tA.inVPre=!1,ty=null),tA.inXML&&(tO[0]?tO[0].ns:tu.ns)===0&&(tA.inXML=!1);{var o;let t=e.props;if(!tA.inSFCRoot&&ew("COMPILER_NATIVE_TEMPLATE",tu)&&"template"===e.tag&&!tP(e)){let t=tO[0]||tf,n=t.children.indexOf(e);t.children.splice(n,1,...e.children)}let n=t.find(e=>6===e.type&&"inline-template"===e.name);n&&(o=tu,n.loc,ew("COMPILER_INLINE_TEMPLATE",o))&&e.children.length&&(n.value={type:2,content:tv(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function tM(e,t){let n=e;for(;tE.charCodeAt(n)!==t&&n>=0;)n--;return n}let tD=new Set(["if","else","else-if","for","slot"]);function tP({tag:e,props:t}){if("template"===e){for(let e=0;e<t.length;e++)if(7===t[e].type&&tD.has(t[e].name))return!0}return!1}let tV=/\r\n/g;function tk(e){let t="preserve"!==tu.whitespace,n=!1;for(let i=0;i<e.length;i++){let s=e[i];if(2===s.type)if(tN)s.content=s.content.replace(tV,` +`);else if(tc(s.content)){let r=e[i-1]&&e[i-1].type,o=e[i+1]&&e[i+1].type;!r||!o||t&&(3===r&&(3===o||1===o)||1===r&&(3===o||1===o&&function(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(10===n||13===n)return!0}return!1}(s.content)))?(n=!0,e[i]=null):s.content=" "}else t&&(s.content=tX(s.content))}return n?e.filter(Boolean):e}function tX(e){let t="",n=!1;for(let i=0;i<e.length;i++)eM(e.charCodeAt(i))?n||(t+=" ",n=!0):(t+=e[i],n=!1);return t}function tw(e){(tO[0]||tf).children.push(e)}function tU(e,t){return{start:tA.getPos(e),end:null==t?t:tA.getPos(t),source:null==t?t:tv(e,t)}}function tF(e,t){e.end=tA.getPos(t),e.source=tv(e.start.offset,t)}function tB(e,t=!1,n,i=0,s=0){return eg(e,t,n,i)}function t$(e,t,n){tu.onError(eB(e,tU(t,t)))}function tH(e,t){if(tA.reset(),t_=null,tm=null,tS="",tg=-1,tT=-1,tO.length=0,tE=e,tu=a({},tp),t){let e;for(e in t)null!=t[e]&&(tu[e]=t[e])}tA.mode="html"===tu.parseMode?1:2*("sfc"===tu.parseMode),tA.inXML=1===tu.ns||2===tu.ns;let n=t&&t.delimiters;n&&(tA.delimiterOpen=eP(n[0]),tA.delimiterClose=eP(n[1]));let i=tf=ef([],e);return tA.parse(tE),i.loc=tU(0,e.length),i.children=tk(i.children),tf=null,i}function tG(e){let t=e.children.filter(e=>3!==e.type);return 1!==t.length||1!==t[0].type||tn(t[0])?null:t[0]}function tq(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let i=n.get(e);if(void 0!==i)return i;let s=e.codegenNode;if(13!==s.type||s.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==s.patchFlag)return n.set(e,0),0;{let i=3,r=tj(e,t);if(0===r)return n.set(e,0),0;r<i&&(i=r);for(let s=0;s<e.children.length;s++){let r=tq(e.children[s],t);if(0===r)return n.set(e,0),0;r<i&&(i=r)}if(i>1)for(let s=0;s<e.props.length;s++){let r=e.props[s];if(7===r.type&&"bind"===r.name&&r.exp){let s=tq(r.exp,t);if(0===s)return n.set(e,0),0;s<i&&(i=s)}}if(s.isBlock){for(let t=0;t<e.props.length;t++)if(7===e.props[t].type)return n.set(e,0),0;t.removeHelper(L),t.removeHelper(eb(t.inSSR,s.isComponent)),s.isBlock=!1,t.helper(eC(t.inSSR,s.isComponent))}return n.set(e,i),i}case 2:case 3:return 3;case 9:case 11:case 10:default:return 0;case 5:case 12:return tq(e.content,t);case 4:return e.constType;case 8:let r=3;for(let n=0;n<e.children.length;n++){let i=e.children[n];if(c(i)||h(i))continue;let s=tq(i,t);if(0===s)return 0;s<r&&(r=s)}return r;case 20:return 2}}let tJ=new Set([K,Y,Q,z]);function tj(e,t){let n=3,i=tW(e);if(i&&15===i.type){let{properties:e}=i;for(let i=0;i<e.length;i++){let s,{key:r,value:o}=e[i],a=tq(r,t);if(0===a)return a;if(a<n&&(n=a),0===(s=4===o.type?tq(o,t):14===o.type?function e(t,n){if(14===t.type&&!c(t.callee)&&tJ.has(t.callee)){let i=t.arguments[0];if(4===i.type)return tq(i,n);if(14===i.type)return e(i,n)}return 0}(o,t):0))return s;s<n&&(n=s)}}return n}function tW(e){let t=e.codegenNode;if(13===t.type)return t.props}function tK(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:o=!1,cacheHandlers:a=!1,nodeTransforms:l=[],directiveTransforms:h={},transformHoist:d=null,isBuiltInComponent:p=s,isCustomElement:u=s,expressionPlugins:f=[],scopeId:E=null,slotted:S=!0,ssr:g=!1,inSSR:T=!1,ssrCssVars:N="",bindingMetadata:I=i,inline:y=!1,isTS:O=!1,onError:A=eU,onWarn:C=eF,compatConfig:b}){let v=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),R={filename:t,selfName:v&&m(_(v[1])),prefixIdentifiers:n,hoistStatic:r,hmr:o,cacheHandlers:a,nodeTransforms:l,directiveTransforms:h,transformHoist:d,isBuiltInComponent:p,isCustomElement:u,expressionPlugins:f,scopeId:E,slotted:S,ssr:g,inSSR:T,ssrCssVars:N,bindingMetadata:I,inline:y,isTS:O,onError:A,onWarn:C,compatConfig:b,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=R.helpers.get(e)||0;return R.helpers.set(e,t+1),e},removeHelper(e){let t=R.helpers.get(e);if(t){let n=t-1;n?R.helpers.set(e,n):R.helpers.delete(e)}},helperString:e=>`_${ed[R.helper(e)]}`,replaceNode(e){R.parent.children[R.childIndex]=R.currentNode=e},removeNode(e){let t=R.parent.children,n=e?t.indexOf(e):R.currentNode?R.childIndex:-1;e&&e!==R.currentNode?R.childIndex>n&&(R.childIndex--,R.onNodeRemoved()):(R.currentNode=null,R.onNodeRemoved()),R.parent.children.splice(n,1)},onNodeRemoved:s,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){c(e)&&(e=eg(e)),R.hoists.push(e);let t=eg(`_hoisted_${R.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let i=eO(R.cached.length,e,t,n);return R.cached.push(i),i}};return R.filters=new Set,R}function tY(e,t){let n=tK(e,t);tQ(e,n),t.hoistStatic&&function e(t,n,i,s=!1,r=!1){let{children:o}=t,a=[];for(let n=0;n<o.length;n++){let l=o[n];if(1===l.type&&0===l.tagType){let e=s?0:tq(l,i);if(e>0){if(e>=2){l.codegenNode.patchFlag=-1,a.push(l);continue}}else{let e=l.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&tj(l,i)>=2){let t=tW(l);t&&(e.props=i.hoist(t))}e.dynamicProps&&(e.dynamicProps=i.hoist(e.dynamicProps))}}}else if(12===l.type&&(s?0:tq(l,i))>=2){14===l.codegenNode.type&&l.codegenNode.arguments.length>0&&l.codegenNode.arguments.push("-1"),a.push(l);continue}if(1===l.type){let n=1===l.tagType;n&&i.scopes.vSlot++,e(l,t,i,!1,r),n&&i.scopes.vSlot--}else if(11===l.type)e(l,t,i,1===l.children.length,!0);else if(9===l.type)for(let n=0;n<l.branches.length;n++)e(l.branches[n],t,i,1===l.branches[n].children.length,r)}let c=!1;if(a.length===o.length&&1===t.type){if(0===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&l(t.codegenNode.children))t.codegenNode.children=h(e_(t.codegenNode.children)),c=!0;else if(1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!l(t.codegenNode.children)&&15===t.codegenNode.children.type){let e=d(t.codegenNode,"default");e&&(e.returns=h(e_(e.returns)),c=!0)}else if(3===t.tagType&&n&&1===n.type&&1===n.tagType&&n.codegenNode&&13===n.codegenNode.type&&n.codegenNode.children&&!l(n.codegenNode.children)&&15===n.codegenNode.children.type){let e=e4(t,"slot",!0),i=e&&e.arg&&d(n.codegenNode,e.arg);i&&(i.returns=h(e_(i.returns)),c=!0)}}if(!c)for(let e of a)e.codegenNode=i.cache(e.codegenNode);function h(e){let t=i.cache(e);return t.needArraySpread=!0,t}function d(e,t){if(e.children&&!l(e.children)&&15===e.children.type){let n=e.children.properties.find(e=>e.key===t||e.key.content===t);return n&&n.value}}a.length&&i.transformHoist&&i.transformHoist(o,i,t)}(e,void 0,n,!!tG(e)),t.ssr||function(e,t){let{helper:n}=t,{children:i}=e;if(1===i.length){let n=tG(e);if(n&&n.codegenNode){let i=n.codegenNode;13===i.type&&ev(i,t),e.codegenNode=i}else e.codegenNode=i[0]}else i.length>1&&(e.codegenNode=eE(t,n(C),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0,e.filters=[...n.filters]}function tQ(e,t){t.currentNode=e;let{nodeTransforms:n}=t,i=[];for(let s=0;s<n.length;s++){let r=n[s](e,t);if(r&&(l(r)?i.push(...r):i.push(r)),!t.currentNode)return;e=t.currentNode}switch(e.type){case 3:t.ssr||t.helper(k);break;case 5:t.ssr||t.helper(j);break;case 9:for(let n=0;n<e.branches.length;n++)tQ(e.branches[n],t);break;case 10:case 11:case 1:case 0:var s=e;let r=0,o=()=>{r--};for(;r<s.children.length;r++){let e=s.children[r];c(e)||(t.grandParent=t.parent,t.parent=s,t.childIndex=r,t.onNodeRemoved=o,tQ(e,t))}}t.currentNode=e;let a=i.length;for(;a--;)i[a]()}function tz(e,t){let n=c(e)?t=>t===e:t=>e.test(t);return(e,i)=>{if(1===e.type){let{props:s}=e;if(3===e.tagType&&s.some(te))return;let r=[];for(let o=0;o<s.length;o++){let a=s[o];if(7===a.type&&n(a.name)){s.splice(o,1),o--;let n=t(e,a,i);n&&r.push(n)}}return r}}}let tZ="/*@__PURE__*/",t1=e=>`${ed[e]}: _${ed[e]}`;function t0(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:i=!1,filename:s="template.vue.html",scopeId:r=null,optimizeImports:o=!1,runtimeGlobalName:a="Vue",runtimeModuleName:l="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:h=!1,isTS:d=!1,inSSR:p=!1}){let u={mode:t,prefixIdentifiers:n,sourceMap:i,filename:s,scopeId:r,optimizeImports:o,runtimeGlobalName:a,runtimeModuleName:l,ssrRuntimeModuleName:c,ssr:h,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${ed[e]}`,push(e,t=-2,n){u.code+=e},indent(){f(++u.indentLevel)},deindent(e=!1){e?--u.indentLevel:f(--u.indentLevel)},newline(){f(u.indentLevel)}};function f(e){u.push(` +`+" ".repeat(e),0)}return u}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:i,push:s,prefixIdentifiers:r,indent:o,deindent:a,newline:l,ssr:c}=n,h=Array.from(e.helpers),d=h.length>0,p=!r&&"module"!==i;!function(e,t){let{push:n,newline:i,runtimeGlobalName:s}=t,r=Array.from(e.helpers);if(r.length>0&&(n(`const _Vue = ${s} +`,-1),e.hoists.length)){let e=[P,V,k,X,w].filter(e=>r.includes(e)).map(t1).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:i}=t;i();for(let s=0;s<e.length;s++){let r=e[s];r&&(n(`const _hoisted_${s+1} = `),t6(r,t),i())}t.pure=!1})(e.hoists,t),i(),n("return ")}(e,n);let u=(c?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ");if(s(`function ${c?"ssrRender":"render"}(${u}) {`),o(),p&&(s("with (_ctx) {"),o(),d&&(s(`const { ${h.map(t1).join(", ")} } = _Vue +`,-1),l())),e.components.length&&(t2(e.components,"component",n),(e.directives.length||e.temps>0)&&l()),e.directives.length&&(t2(e.directives,"directive",n),e.temps>0&&l()),e.filters&&e.filters.length&&(l(),t2(e.filters,"filter",n),l()),e.temps>0){s("let ");for(let t=0;t<e.temps;t++)s(`${t>0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(s(` +`,0),l()),c||s("return "),e.codegenNode?t6(e.codegenNode,n):s("null"),p&&(a(),s("}")),a(),s("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function t2(e,t,{helper:n,push:i,newline:s,isTS:r}){let o=n("filter"===t?$:"component"===t?U:B);for(let n=0;n<e.length;n++){let a=e[n],l=a.endsWith("__self");l&&(a=a.slice(0,-6)),i(`const ${to(a,t)} = ${o}(${JSON.stringify(a)}${l?", true":""})${r?"!":""}`),n<e.length-1&&s()}}function t3(e,t){let n=e.length>3;t.push("["),n&&t.indent(),t4(e,t,n),n&&t.deindent(),t.push("]")}function t4(e,t,n=!1,i=!0){let{push:s,newline:r}=t;for(let o=0;o<e.length;o++){let a=e[o];c(a)?s(a,-3):l(a)?t3(a,t):t6(a,t),o<e.length-1&&(n?(i&&s(","),r()):i&&s(", "))}}function t6(e,t){var n,i,s;if(c(e))return void t.push(e,-3);if(h(e))return void t.push(t.helper(e));switch(e.type){case 1:case 9:case 11:case 12:t6(e.codegenNode,t);break;case 2:n=e,t.push(JSON.stringify(n.content),-3,n);break;case 4:t5(e,t);break;case 5:!function(e,t){let{push:n,helper:i,pure:s}=t;s&&n(tZ),n(`${i(j)}(`),t6(e.content,t),n(")")}(e,t);break;case 8:t9(e,t);break;case 3:!function(e,t){let{push:n,helper:i,pure:s}=t;s&&n(tZ),n(`${i(k)}(${JSON.stringify(e.content)})`,-3,e)}(e,t);break;case 13:!function(e,t){let n,{push:i,helper:s,pure:r}=t,{tag:o,props:a,children:l,patchFlag:c,dynamicProps:h,directives:d,isBlock:p,disableTracking:u,isComponent:f}=e;c&&(n=String(c)),d&&i(s(H)+"("),p&&i(`(${s(L)}(${u?"true":""}), `),r&&i(tZ),i(s(p?eb(t.inSSR,f):eC(t.inSSR,f))+"(",-2,e),t4(function(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map(e=>e||"null")}([o,a,l,n,h]),t),i(")"),p&&i(")"),d&&(i(", "),t6(d,t),i(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:i,pure:s}=t,r=c(e.callee)?e.callee:i(e.callee);s&&n(tZ),n(r+"(",-2,e),t4(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:i,deindent:s,newline:r}=t,{properties:o}=e;if(!o.length)return n("{}",-2,e);let a=o.length>1;n(a?"{":"{ "),a&&i();for(let e=0;e<o.length;e++){let{key:i,value:s}=o[e];!function(e,t){let{push:n}=t;8===e.type?(n("["),t9(e,t),n("]")):e.isStatic?n(eK(e.content)?e.content:JSON.stringify(e.content),-2,e):n(`[${e.content}]`,-3,e)}(i,t),n(": "),t6(s,t),e<o.length-1&&(n(","),r())}a&&s(),n(a?"}":" }")}(e,t);break;case 17:i=e,s=t,t3(i.elements,s);break;case 18:!function(e,t){let{push:n,indent:i,deindent:s}=t,{params:r,returns:o,body:a,newline:c,isSlot:h}=e;h&&n(`_${ed[eo]}(`),n("(",-2,e),l(r)?t4(r,t):r&&t6(r,t),n(") => "),(c||a)&&(n("{"),i()),o?(c&&n("return "),l(o)?t3(o,t):t6(o,t)):a&&t6(a,t),(c||a)&&(s(),n("}")),h&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}(e,t);break;case 19:!function(e,t){let{test:n,consequent:i,alternate:s,newline:r}=e,{push:o,indent:a,deindent:l,newline:c}=t;if(4===n.type){let e=!eK(n.content);e&&o("("),t5(n,t),e&&o(")")}else o("("),t6(n,t),o(")");r&&a(),t.indentLevel++,r||o(" "),o("? "),t6(i,t),t.indentLevel--,r&&c(),r||o(" "),o(": ");let h=19===s.type;!h&&t.indentLevel++,t6(s,t),!h&&t.indentLevel--,r&&l(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:i,indent:s,deindent:r,newline:o}=t,{needPauseTracking:a,needArraySpread:l}=e;l&&n("[...("),n(`_cache[${e.index}] || (`),a&&(s(),n(`${i(ei)}(-1`),e.inVOnce&&n(", true"),n("),"),o(),n("(")),n(`_cache[${e.index}] = `),t6(e.value,t),a&&(n(`).cacheIndex = ${e.index},`),o(),n(`${i(ei)}(1),`),o(),n(`_cache[${e.index}]`),r()),n(")"),l&&n(")]")}(e,t);break;case 21:t4(e.body,t,!0,!1)}}function t5(e,t){let{content:n,isStatic:i}=e;t.push(i?JSON.stringify(n):n,-3,e)}function t9(e,t){for(let n=0;n<e.children.length;n++){let i=e.children[n];c(i)?t.push(i,-3):t6(i,t)}}function t7(e,t,n=!1,i=!1,s=Object.create(t.identifiers)){return e}let t8=tz(/^(?:if|else|else-if)$/,(e,t,n)=>ne(e,t,n,(e,t,i)=>{let s=n.parent.children,r=s.indexOf(e),o=0;for(;r-- >=0;){let e=s[r];e&&9===e.type&&(o+=e.branches.length)}return()=>{i?e.codegenNode=nn(t,o,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=nn(t,o+e.branches.length-1,n)}}));function ne(e,t,n,i){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let i=t.exp?t.exp.loc:e.loc;n.onError(eB(28,t.loc)),t.exp=eg("true",!1,i)}if("if"===t.name){var s;let r=nt(e,t),o={type:9,loc:tU((s=e.loc).start.offset,s.end.offset),branches:[r]};if(n.replaceNode(o),i)return i(o,r,!0)}else{let s=n.parent.children,r=s.indexOf(e);for(;r-- >=-1;){let o=s[r];if(o&&td(o)){n.removeNode(o);continue}if(o&&9===o.type){("else-if"===t.name||"else"===t.name)&&void 0===o.branches[o.branches.length-1].condition&&n.onError(eB(30,e.loc)),n.removeNode();let s=nt(e,t);o.branches.push(s);let r=i&&i(o,s,!1);tQ(s,n),r&&r(),n.currentNode=null}else n.onError(eB(30,e.loc));break}}}function nt(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!e4(e,"for")?e.children:[e],userKey:e6(e,"key"),isTemplateIf:n}}function nn(e,t,n){return e.condition?ey(e.condition,ni(e,t,n),eN(n.helper(k),['""',"true"])):ni(e,t,n)}function ni(e,t,n){let{helper:i}=n,s=eS("key",eg(`${t}`,!1,eu,2)),{children:r}=e,o=r[0];if(1!==r.length||1!==o.type)if(1!==r.length||11!==o.type)return eE(n,i(C),em([s]),r,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=o.codegenNode;return ts(e,s,n),e}{let e=o.codegenNode,t=ta(e);return 13===t.type&&ev(t,n),ts(t,s,n),e}}let ns=tz("for",(e,t,n)=>{let{helper:i,removeHelper:s}=n;return nr(e,t,n,t=>{let r=eN(i(G),[t.source]),o=tt(e),a=e4(e,"memo"),l=e6(e,"key",!1,!0);l&&l.type;let c=l&&(6===l.type?l.value?eg(l.value.content,!0):void 0:l.exp),h=l&&c?eS("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:l?128:256;return t.codegenNode=eE(n,i(C),void 0,r,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let l,{children:p}=t,u=1!==p.length||1!==p[0].type,f=tn(e)?e:o&&1===e.children.length&&tn(e.children[0])?e.children[0]:null;if(f?(l=f.codegenNode,o&&h&&ts(l,h,n)):u?l=eE(n,i(C),h?em([h]):void 0,e.children,64,void 0,void 0,!0,void 0,!1):(l=p[0].codegenNode,o&&h&&ts(l,h,n),!d!==l.isBlock&&(l.isBlock?(s(L),s(eb(n.inSSR,l.isComponent))):s(eC(n.inSSR,l.isComponent))),l.isBlock=!d,l.isBlock?(i(L),i(eb(n.inSSR,l.isComponent))):i(eC(n.inSSR,l.isComponent))),a){let e=eI(na(t.parseResult,[eg("_cached")]));e.body=eA([eT(["const _memo = (",a.exp,")"]),eT(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(eh)}(_cached, _memo)) return _cached`]),eT(["const _item = ",l]),eg("_item.memo = _memo"),eg("return _item")]),r.arguments.push(e,eg("_cache"),eg(String(n.cached.length))),n.cached.push(null)}else r.arguments.push(eI(na(t.parseResult),l,!0))}})});function nr(e,t,n,i){if(!t.exp)return void n.onError(eB(31,t.loc));let s=t.forParseResult;if(!s)return void n.onError(eB(32,t.loc));no(s);let{scopes:r}=n,{source:o,value:a,key:l,index:c}=s,h={type:11,loc:t.loc,source:o,valueAlias:a,keyAlias:l,objectIndexAlias:c,parseResult:s,children:tt(e)?e.children:[e]};n.replaceNode(h),r.vFor++;let d=i&&i(h);return()=>{r.vFor--,d&&d()}}function no(e,t){e.finalized||(e.finalized=!0)}function na({value:e,key:t,index:n},i=[]){var s=[e,t,n,...i];let r=s.length;for(;r--&&!s[r];);return s.slice(0,r+1).map((e,t)=>e||eg("_".repeat(t+1),!1))}let nl=eg("undefined",!1),nc=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=e4(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},nh=(e,t,n,i)=>eI(e,n,!1,!0,n.length?n[0].loc:i);function nd(e,t,n=nh){t.helper(eo);let{children:i,loc:s}=e,r=[],o=[],a=t.scopes.vSlot>0||t.scopes.vFor>0,l=e4(e,"slot",!0);if(l){let{arg:e,exp:t}=l;e&&!eJ(e)&&(a=!0),r.push(eS(e||eg("default",!0),n(t,void 0,i,s)))}let c=!1,h=!1,d=[],p=new Set,u=0;for(let e=0;e<i.length;e++){let s,f,E,_,m=i[e];if(!tt(m)||!(s=e4(m,"slot",!0))){3!==m.type&&d.push(m);continue}if(l){t.onError(eB(37,s.loc));break}c=!0;let{children:S,loc:g}=m,{arg:T=eg("default",!0),exp:N,loc:I}=s;eJ(T)?f=T?T.content:"default":a=!0;let y=e4(m,"for"),O=n(N,y,S,g);if(E=e4(m,"if"))a=!0,o.push(ey(E.exp,np(T,O,u++),nl));else if(_=e4(m,/^else(?:-if)?$/,!0)){let n,s=e;for(;s--&&td(n=i[s]););if(n&&tt(n)&&e4(n,/^(?:else-)?if$/)){let e=o[o.length-1];for(;19===e.alternate.type;)e=e.alternate;e.alternate=_.exp?ey(_.exp,np(T,O,u++),nl):np(T,O,u++)}else t.onError(eB(30,_.loc))}else if(y){a=!0;let e=y.forParseResult;e?(no(e),o.push(eN(t.helper(G),[e.source,eI(na(e),np(T,O),!0)]))):t.onError(eB(32,y.loc))}else{if(f){if(p.has(f)){t.onError(eB(38,I));continue}p.add(f),"default"===f&&(h=!0)}r.push(eS(T,O))}}if(!l){let e=(e,i)=>{let r=n(e,void 0,i,s);return t.compatConfig&&(r.isNonScopedSlot=!0),eS("default",r)};c?d.length&&!d.every(th)&&(h?t.onError(eB(39,d[0].loc)):r.push(e(void 0,d))):r.push(e(void 0,i))}let f=a?2:!function e(t){for(let n=0;n<t.length;n++){let i=t[n];switch(i.type){case 1:if(2===i.tagType||e(i.children))return!0;break;case 9:if(e(i.branches))return!0;break;case 10:case 11:if(e(i.children))return!0}}return!1}(e.children)?1:3,E=em(r.concat(eS("_",eg(f+"",!1))),s);return o.length&&(E=eN(t.helper(J),[E,e_(o)])),{slots:E,hasDynamicSlots:a}}function np(e,t,n){let i=[eS("name",e),eS("fn",t)];return null!=n&&i.push(eS("key",eg(String(n),!0))),em(i)}let nu=new WeakMap,nf=(e,t)=>function(){let n,i,s,r,o;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:a,props:l}=e,c=1===e.tagType,h=c?nE(e,t):`"${a}"`,p=d(h)&&h.callee===F,u=0,f=p||h===b||h===v||!c&&("svg"===a||"foreignObject"===a||"math"===a);if(l.length>0){let i=n_(e,t,void 0,c,p);n=i.props,u=i.patchFlag,r=i.dynamicPropNames;let s=i.directives;o=s&&s.length?e_(s.map(e=>nS(e,t))):void 0,i.shouldUseBlock&&(f=!0)}if(e.children.length>0)if(h===R&&(f=!0,u|=1024),c&&h!==b&&h!==R){let{slots:n,hasDynamicSlots:s}=nd(e,t);i=n,s&&(u|=1024)}else if(1===e.children.length&&h!==b){let n=e.children[0],s=n.type,r=5===s||8===s;r&&0===tq(n,t)&&(u|=1),i=r||2===s?n:e.children}else i=e.children;r&&r.length&&(s=function(e){let t="[";for(let n=0,i=e.length;n<i;n++)t+=JSON.stringify(e[n]),n<i-1&&(t+=", ");return t+"]"}(r)),e.codegenNode=eE(t,h,n,i,0===u?void 0:u,s,o,!!f,!1,c,e.loc)};function nE(e,t,n=!1){let{tag:i}=e,s=ng(i),r=e6(e,"is",!1,!0);if(r)if(s||ew("COMPILER_IS_ON_ELEMENT",t)){let e;if(6===r.type?e=r.value&&eg(r.value.content,!0):(e=r.exp)||(e=eg("is",!1,r.arg.loc)),e)return eN(t.helper(F),[e])}else 6===r.type&&r.value.content.startsWith("vue:")&&(i=r.value.content.slice(4));let o=ej(i)||t.isBuiltInComponent(i);return o?(n||t.helper(o),o):(t.helper(U),t.components.add(i),to(i,"component"))}function n_(e,t,n=e.props,i,s,r=!1){let a,{tag:l,loc:c,children:d}=e,f=[],E=[],_=[],m=d.length>0,S=!1,g=0,T=!1,N=!1,I=!1,y=!1,O=!1,A=!1,C=[],b=e=>{f.length&&(E.push(em(nm(f),c)),f=[]),e&&E.push(e)},v=()=>{t.scopes.vFor>0&&f.push(eS(eg("ref_for",!0),eg("true")))},R=({key:e,value:n})=>{if(eJ(e)){let r=e.content,a=o(r);a&&(!i||s)&&"onclick"!==r.toLowerCase()&&"onUpdate:modelValue"!==r&&!p(r)&&(y=!0),a&&p(r)&&(A=!0),a&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&tq(n,t)>0||("ref"===r?T=!0:"class"===r?N=!0:"style"===r?I=!0:"key"===r||C.includes(r)||C.push(r),i&&("class"===r||"style"===r)&&!C.includes(r)&&C.push(r))}else O=!0};for(let s=0;s<n.length;s++){let o=n[s];if(6===o.type){let{loc:e,name:n,nameLoc:i,value:s}=o;if("ref"===n&&(T=!0,v()),"is"===n&&(ng(l)||s&&s.content.startsWith("vue:")||ew("COMPILER_IS_ON_ELEMENT",t)))continue;f.push(eS(eg(n,!0,i),eg(s?s.content:"",!0,s?s.loc:e)))}else{let{name:n,arg:s,exp:a,loc:d,modifiers:p}=o,T="bind"===n,N="on"===n;if("slot"===n){i||t.onError(eB(40,d));continue}if("once"===n||"memo"===n||"is"===n||T&&e5(s,"is")&&(ng(l)||ew("COMPILER_IS_ON_ELEMENT",t))||N&&r)continue;if((T&&e5(s,"key")||N&&m&&e5(s,"vue:before-update"))&&(S=!0),T&&e5(s,"ref")&&v(),!s&&(T||N)){if(O=!0,a)if(T){if(b(),ew("COMPILER_V_BIND_OBJECT_ORDER",t)){E.unshift(a);continue}v(),b(),E.push(a)}else b({type:14,loc:d,callee:t.helper(Z),arguments:i?[a]:[a,"true"]});else t.onError(eB(T?34:35,d));continue}T&&p.some(e=>"prop"===e.content)&&(g|=32);let I=t.directiveTransforms[n];if(I){let{props:n,needRuntime:i}=I(o,e,t);r||n.forEach(R),N&&s&&!eJ(s)?b(em(n,c)):f.push(...n),i&&(_.push(o),h(i)&&nu.set(o,i))}else!u(n)&&(_.push(o),m&&(S=!0))}}if(E.length?(b(),a=E.length>1?eN(t.helper(W),E,c):E[0]):f.length&&(a=em(nm(f),c)),O?g|=16:(N&&!i&&(g|=2),I&&!i&&(g|=4),C.length&&(g|=8),y&&(g|=32)),!S&&(0===g||32===g)&&(T||A||_.length>0)&&(g|=512),!t.inSSR&&a)switch(a.type){case 15:let x=-1,L=-1,M=!1;for(let e=0;e<a.properties.length;e++){let t=a.properties[e].key;eJ(t)?"class"===t.content?x=e:"style"===t.content&&(L=e):t.isHandlerKey||(M=!0)}let D=a.properties[x],P=a.properties[L];M?a=eN(t.helper(Q),[a]):(D&&!eJ(D.value)&&(D.value=eN(t.helper(K),[D.value])),P&&(I||4===P.value.type&&"["===P.value.content.trim()[0]||17===P.value.type)&&(P.value=eN(t.helper(Y),[P.value])));break;case 14:break;default:a=eN(t.helper(Q),[eN(t.helper(z),[a])])}return{props:a,directives:_,patchFlag:g,dynamicPropNames:C,shouldUseBlock:S}}function nm(e){let t=new Map,n=[];for(let r=0;r<e.length;r++){var i,s;let a=e[r];if(8===a.key.type||!a.key.isStatic){n.push(a);continue}let l=a.key.content,c=t.get(l);c?("style"===l||"class"===l||o(l))&&(i=c,s=a,17===i.value.type?i.value.elements.push(s.value):i.value=e_([i.value,s.value],i.loc)):(t.set(l,a),n.push(a))}return n}function nS(e,t){let n=[],i=nu.get(e);i?n.push(t.helperString(i)):(t.helper(B),t.directives.add(e.name),n.push(to(e.name,"directive")));let{loc:s}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=eg("true",!1,s);n.push(em(e.modifiers.map(e=>eS(e,t)),s))}return e_(n,e.loc)}function ng(e){return"component"===e||"Component"===e}let nT=(e,t)=>{if(tn(e)){let{children:n,loc:i}=e,{slotName:s,slotProps:r}=nN(e,t),o=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"],a=2;r&&(o[2]=r,a=3),n.length&&(o[3]=eI([],n,!1,!1,i),a=4),t.scopeId&&!t.slotted&&(a=5),o.splice(a),e.codegenNode=eN(t.helper(q),o,i)}};function nN(e,t){let n,i='"default"',s=[];for(let t=0;t<e.props.length;t++){let n=e.props[t];if(6===n.type)n.value&&("name"===n.name?i=JSON.stringify(n.value.content):(n.name=_(n.name),s.push(n)));else if("bind"===n.name&&e5(n.arg,"name")){if(n.exp)i=n.exp;else if(n.arg&&4===n.arg.type){let e=_(n.arg.content);i=n.exp=eg(e,!1,n.arg.loc)}}else"bind"===n.name&&n.arg&&eJ(n.arg)&&(n.arg.content=_(n.arg.content)),s.push(n)}if(s.length>0){let{props:i,directives:r}=n_(e,t,s,!1,!1);n=i,r.length&&t.onError(eB(36,r[0].loc))}return{slotName:i,slotProps:n}}let nI=(e,t,n,i)=>{let s,{loc:r,modifiers:o,arg:a}=e;if(!e.exp&&!o.length,4===a.type)if(a.isStatic){let e=a.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),s=eg(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?S(_(e)):`on:${e}`,!0,a.loc)}else s=eT([`${n.helperString(en)}(`,a,")"]);else(s=a).children.unshift(`${n.helperString(en)}(`),s.children.push(")");let l=e.exp;l&&!l.content.trim()&&(l=void 0);let c=n.cacheHandlers&&!l&&!n.inVOnce;if(l){let e=e1(l),t=!(e||e2(l)),n=l.content.includes(";");(t||c&&e)&&(l=eT([`${t?"$event":"(...args)"} => ${n?"{":"("}`,l,n?"}":")"]))}let h={props:[eS(s,l||eg("() => {}",!1,r))]};return i&&(h=i(h)),c&&(h.props[0].value=n.cache(h.props[0].value)),h.props.forEach(e=>e.key.isHandlerKey=!0),h},ny=(e,t,n)=>{let{modifiers:i}=e,s=e.arg,{exp:r}=e;return r&&4===r.type&&!r.content.trim()&&(r=void 0),4!==s.type?(s.children.unshift("("),s.children.push(') || ""')):s.isStatic||(s.content=s.content?`${s.content} || ""`:'""'),i.some(e=>"camel"===e.content)&&(4===s.type?s.isStatic?s.content=_(s.content):s.content=`${n.helperString(ee)}(${s.content})`:(s.children.unshift(`${n.helperString(ee)}(`),s.children.push(")"))),!n.inSSR&&(i.some(e=>"prop"===e.content)&&nO(s,"."),i.some(e=>"attr"===e.content)&&nO(s,"^")),{props:[eS(s,r)]}},nO=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},nA=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,i=e.children,s=!1;for(let e=0;e<i.length;e++){let t=i[e];if(e7(t)){s=!0;for(let s=e+1;s<i.length;s++){let r=i[s];if(e7(r))n||(n=i[e]=eT([t],t.loc)),n.children.push(" + ",r),i.splice(s,1),s--;else{n=void 0;break}}}}if(s&&(1!==i.length||0!==e.type&&(1!==e.type||0!==e.tagType||e.props.find(e=>7===e.type&&!t.directiveTransforms[e.name])||"template"===e.tag)))for(let e=0;e<i.length;e++){let n=i[e];if(e7(n)||8===n.type){let s=[];(2!==n.type||" "!==n.content)&&s.push(n),t.ssr||0!==tq(n,t)||s.push("1"),i[e]={type:12,content:n,loc:n.loc,codegenNode:eN(t.helper(X),s)}}}}},nC=new WeakSet,nb=(e,t)=>{if(1===e.type&&e4(e,"once",!0)&&!nC.has(e)&&!t.inVOnce&&!t.inSSR)return nC.add(e),t.inVOnce=!0,t.helper(ei),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},nv=(e,t,n)=>{let i,{exp:s,arg:r}=e;if(!s)return n.onError(eB(41,e.loc)),nR();let o=s.loc.source.trim(),a=4===s.type?s.content:o,l=n.bindingMetadata[o];if("props"===l||"props-aliased"===l||"literal-const"===l||"setup-const"===l)return s.loc,nR();if(!a.trim()||!e1(s))return n.onError(eB(42,s.loc)),nR();let c=r||eg("modelValue",!0),h=r?eJ(r)?`onUpdate:${_(r.content)}`:eT(['"onUpdate:" + ',r]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";i=eT([`${d} => ((`,s,") = $event)"]);let p=[eS(c,e.exp),eS(h,i)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(eK(e)?e:JSON.stringify(e))+": true").join(", "),n=r?eJ(r)?`${r.content}Modifiers`:eT([r,' + "Modifiers"']):"modelModifiers";p.push(eS(n,eg(`{ ${t} }`,!1,e.loc,2)))}return nR(p)};function nR(e=[]){return{props:e}}let nx=/[\w).+\-_$\]]/,nL=(e,t)=>{ew("COMPILER_FILTERS",t)&&(5===e.type?nM(e.content,t):1===e.type&&e.props.forEach(e=>{7===e.type&&"for"!==e.name&&e.exp&&nM(e.exp,t)}))};function nM(e,t){if(4===e.type)nD(e,t);else for(let n=0;n<e.children.length;n++){let i=e.children[n];"object"==typeof i&&(4===i.type?nD(i,t):8===i.type?nM(e,t):5===i.type&&nM(i.content,t))}}function nD(e,t){let n=e.content,i=!1,s=!1,r=!1,o=!1,a=0,l=0,c=0,h=0,d,p,u,f,E=[];for(u=0;u<n.length;u++)if(p=d,d=n.charCodeAt(u),i)39===d&&92!==p&&(i=!1);else if(s)34===d&&92!==p&&(s=!1);else if(r)96===d&&92!==p&&(r=!1);else if(o)47===d&&92!==p&&(o=!1);else if(124!==d||124===n.charCodeAt(u+1)||124===n.charCodeAt(u-1)||a||l||c){switch(d){case 34:s=!0;break;case 39:i=!0;break;case 96:r=!0;break;case 40:c++;break;case 41:c--;break;case 91:l++;break;case 93:l--;break;case 123:a++;break;case 125:a--}if(47===d){let e,t=u-1;for(;t>=0&&" "===(e=n.charAt(t));t--);e&&nx.test(e)||(o=!0)}}else void 0===f?(h=u+1,f=n.slice(0,u).trim()):_();function _(){E.push(n.slice(h,u).trim()),h=u+1}if(void 0===f?f=n.slice(0,u).trim():0!==h&&_(),E.length){for(u=0;u<E.length;u++)f=function(e,t,n){n.helper($);let i=t.indexOf("(");if(i<0)return n.filters.add(t),`${to(t,"filter")}(${e})`;{let s=t.slice(0,i),r=t.slice(i+1);return n.filters.add(s),`${to(s,"filter")}(${e}${")"!==r?","+r:r}`}}(f,E[u],t);e.content=f,e.ast=void 0}}let nP=new WeakSet,nV=(e,t)=>{if(1===e.type){let n=e4(e,"memo");if(!(!n||nP.has(e))&&!t.inSSR)return nP.add(e),()=>{let i=e.codegenNode||t.currentNode.codegenNode;i&&13===i.type&&(1!==e.tagType&&ev(i,t),e.codegenNode=eN(t.helper(ec),[n.exp,eI(void 0,i),"_cache",String(t.cached.length)]),t.cached.push(null))}}},nk=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=_(e.content);(eY.test(t[0])||"-"===t[0])&&(n.exp=eg(t,!1,e.loc))}else t.onError(eB(53,e.loc)),n.exp=eg("",!0,e.loc)}}};function nX(e){return[[nk,nb,t8,nV,ns,nL,nT,nf,nc,nA],{on:nI,bind:ny,model:nv}]}function nw(e,t={}){let n=t.onError||eU,i="module"===t.mode;!0===t.prefixIdentifiers?n(eB(48)):i&&n(eB(49)),t.cacheHandlers&&n(eB(50)),t.scopeId&&!i&&n(eB(51));let s=a({},t,{prefixIdentifiers:!1}),r=c(e)?tH(e,s):e,[o,l]=nX();return tY(r,a({},s,{nodeTransforms:[...o,...t.nodeTransforms||[]],directiveTransforms:a({},l,t.directiveTransforms||{})})),t0(r,s)}let nU=()=>({props:[]}),nF=Symbol(""),nB=Symbol(""),n$=Symbol(""),nH=Symbol(""),nG=Symbol(""),nq=Symbol(""),nJ=Symbol(""),nj=Symbol(""),nW=Symbol(""),nK=Symbol("");ep({[nF]:"vModelRadio",[nB]:"vModelCheckbox",[n$]:"vModelText",[nH]:"vModelSelect",[nG]:"vModelDynamic",[nq]:"withModifiers",[nJ]:"withKeys",[nj]:"vShow",[nW]:"Transition",[nK]:"TransitionGroup"});let nY={parseMode:"html",isVoidTag:A,isNativeTag:e=>I(e)||y(e)||O(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,n=!1){return(t||(t=document.createElement("div")),n)?(t.innerHTML=`<div foo="${e.replace(/"/g,""")}">`,t.children[0].getAttribute("foo")):(t.innerHTML=e,t.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?nW:"TransitionGroup"===e||"transition-group"===e?nK:void 0,getNamespace(e,t,n){let i=t?t.ns:n;if(t&&2===i)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(i=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(i=0);else t&&1===i&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(i=0);if(0===i){if("svg"===e)return 1;if("math"===e)return 2}return i}},nQ=e=>{1===e.type&&e.props.forEach((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:eg("style",!0,t.loc),exp:nz(t.value.content,t.loc),modifiers:[],loc:t.loc})})},nz=(e,t)=>{let n;return eg(JSON.stringify((n={},e.replace(N,"").split(g).forEach(e=>{if(e){let t=e.split(T);t.length>1&&(n[t[0].trim()]=t[1].trim())}}),n)),!1,t,3)},nZ=n("passive,once,capture"),n1=n("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),n0=n("left,right"),n2=n("onkeyup,onkeydown,onkeypress"),n3=(e,t)=>eJ(e)&&"onclick"===e.content.toLowerCase()?eg(t,!0):4!==e.type?eT(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,n4=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},n6=[nQ],n5={cloak:nU,html:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(eB(54,s)),t.children.length&&(n.onError(eB(55,s)),t.children.length=0),{props:[eS(eg("innerHTML",!0,s),i||eg("",!0))]}},text:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(eB(56,s)),t.children.length&&(n.onError(eB(57,s)),t.children.length=0),{props:[eS(eg("textContent",!0),i?tq(i,n)>0?i:eN(n.helperString(j),[i],s):eg("",!0))]}},model:(e,t,n)=>{let i=nv(e,t,n);if(!i.props.length||1===t.tagType)return i;e.arg&&n.onError(eB(59,e.arg.loc));let{tag:s}=t,r=n.isCustomElement(s);if("input"===s||"textarea"===s||"select"===s||r){let o=n$,a=!1;if("input"===s||r){let i=e6(t,"type");if(i){if(7===i.type)o=nG;else if(i.value)switch(i.value.content){case"radio":o=nF;break;case"checkbox":o=nB;break;case"file":a=!0,n.onError(eB(60,e.loc))}}else e9(t)&&(o=nG)}else"select"===s&&(o=nH);a||(i.needRuntime=n.helper(o))}else n.onError(eB(58,e.loc));return i.props=i.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),i},on:(e,t,n)=>nI(e,t,n,t=>{let{modifiers:i}=e;if(!i.length)return t;let{key:s,value:r}=t.props[0],{keyModifiers:o,nonKeyModifiers:a,eventOptionModifiers:l}=((e,t,n,i)=>{let s=[],r=[],o=[];for(let i=0;i<t.length;i++){let a=t[i].content;"native"===a&&ew("COMPILER_V_ON_NATIVE",n)||nZ(a)?o.push(a):n0(a)?eJ(e)?n2(e.content.toLowerCase())?s.push(a):r.push(a):(s.push(a),r.push(a)):n1(a)?r.push(a):s.push(a)}return{keyModifiers:s,nonKeyModifiers:r,eventOptionModifiers:o}})(s,i,n,e.loc);if(a.includes("right")&&(s=n3(s,"onContextmenu")),a.includes("middle")&&(s=n3(s,"onMouseup")),a.length&&(r=eN(n.helper(nq),[r,JSON.stringify(a)])),o.length&&(!eJ(s)||n2(s.content.toLowerCase()))&&(r=eN(n.helper(nJ),[r,JSON.stringify(o)])),l.length){let e=l.map(m).join("");s=eJ(s)?eg(`${s.content}${e}`,!0):eT(["(",s,`) + "${e}"`])}return{props:[eS(s,r)]}}),show:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(eB(62,s)),{props:[],needRuntime:n.helper(nj)}}};return e.BASE_TRANSITION=x,e.BindingTypes={DATA:"data",PROPS:"props",PROPS_ALIASED:"props-aliased",SETUP_LET:"setup-let",SETUP_CONST:"setup-const",SETUP_REACTIVE_CONST:"setup-reactive-const",SETUP_MAYBE_REF:"setup-maybe-ref",SETUP_REF:"setup-ref",OPTIONS:"options",LITERAL_CONST:"literal-const"},e.CAMELIZE=ee,e.CAPITALIZE=et,e.CREATE_BLOCK=M,e.CREATE_COMMENT=k,e.CREATE_ELEMENT_BLOCK=D,e.CREATE_ELEMENT_VNODE=V,e.CREATE_SLOTS=J,e.CREATE_STATIC=w,e.CREATE_TEXT=X,e.CREATE_VNODE=P,e.CompilerDeprecationTypes={COMPILER_IS_ON_ELEMENT:"COMPILER_IS_ON_ELEMENT",COMPILER_V_BIND_SYNC:"COMPILER_V_BIND_SYNC",COMPILER_V_BIND_OBJECT_ORDER:"COMPILER_V_BIND_OBJECT_ORDER",COMPILER_V_ON_NATIVE:"COMPILER_V_ON_NATIVE",COMPILER_V_IF_V_FOR_PRECEDENCE:"COMPILER_V_IF_V_FOR_PRECEDENCE",COMPILER_NATIVE_TEMPLATE:"COMPILER_NATIVE_TEMPLATE",COMPILER_INLINE_TEMPLATE:"COMPILER_INLINE_TEMPLATE",COMPILER_FILTERS:"COMPILER_FILTERS"},e.ConstantTypes={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},e.DOMDirectiveTransforms=n5,e.DOMErrorCodes={X_V_HTML_NO_EXPRESSION:54,54:"X_V_HTML_NO_EXPRESSION",X_V_HTML_WITH_CHILDREN:55,55:"X_V_HTML_WITH_CHILDREN",X_V_TEXT_NO_EXPRESSION:56,56:"X_V_TEXT_NO_EXPRESSION",X_V_TEXT_WITH_CHILDREN:57,57:"X_V_TEXT_WITH_CHILDREN",X_V_MODEL_ON_INVALID_ELEMENT:58,58:"X_V_MODEL_ON_INVALID_ELEMENT",X_V_MODEL_ARG_ON_ELEMENT:59,59:"X_V_MODEL_ARG_ON_ELEMENT",X_V_MODEL_ON_FILE_INPUT_ELEMENT:60,60:"X_V_MODEL_ON_FILE_INPUT_ELEMENT",X_V_MODEL_UNNECESSARY_VALUE:61,61:"X_V_MODEL_UNNECESSARY_VALUE",X_V_SHOW_NO_EXPRESSION:62,62:"X_V_SHOW_NO_EXPRESSION",X_TRANSITION_INVALID_CHILDREN:63,63:"X_TRANSITION_INVALID_CHILDREN",X_IGNORED_SIDE_EFFECT_TAG:64,64:"X_IGNORED_SIDE_EFFECT_TAG",__EXTEND_POINT__:65,65:"__EXTEND_POINT__"},e.DOMErrorMessages={54:"v-html is missing expression.",55:"v-html will override element children.",56:"v-text is missing expression.",57:"v-text will override element children.",58:"v-model can only be used on <input>, <textarea> and <select> elements.",59:"v-model argument is not supported on plain elements.",60:"v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",61:"Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",62:"v-show is missing expression.",63:"<Transition> expects exactly one child element or component.",64:"Tags with side effect (<script> and <style>) are ignored in client component templates."},e.DOMNodeTransforms=n6,e.ElementTypes={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},e.ErrorCodes={ABRUPT_CLOSING_OF_EMPTY_COMMENT:0,0:"ABRUPT_CLOSING_OF_EMPTY_COMMENT",CDATA_IN_HTML_CONTENT:1,1:"CDATA_IN_HTML_CONTENT",DUPLICATE_ATTRIBUTE:2,2:"DUPLICATE_ATTRIBUTE",END_TAG_WITH_ATTRIBUTES:3,3:"END_TAG_WITH_ATTRIBUTES",END_TAG_WITH_TRAILING_SOLIDUS:4,4:"END_TAG_WITH_TRAILING_SOLIDUS",EOF_BEFORE_TAG_NAME:5,5:"EOF_BEFORE_TAG_NAME",EOF_IN_CDATA:6,6:"EOF_IN_CDATA",EOF_IN_COMMENT:7,7:"EOF_IN_COMMENT",EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT:8,8:"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT",EOF_IN_TAG:9,9:"EOF_IN_TAG",INCORRECTLY_CLOSED_COMMENT:10,10:"INCORRECTLY_CLOSED_COMMENT",INCORRECTLY_OPENED_COMMENT:11,11:"INCORRECTLY_OPENED_COMMENT",INVALID_FIRST_CHARACTER_OF_TAG_NAME:12,12:"INVALID_FIRST_CHARACTER_OF_TAG_NAME",MISSING_ATTRIBUTE_VALUE:13,13:"MISSING_ATTRIBUTE_VALUE",MISSING_END_TAG_NAME:14,14:"MISSING_END_TAG_NAME",MISSING_WHITESPACE_BETWEEN_ATTRIBUTES:15,15:"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES",NESTED_COMMENT:16,16:"NESTED_COMMENT",UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME:17,17:"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME",UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE:18,18:"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE",UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME:19,19:"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME",UNEXPECTED_NULL_CHARACTER:20,20:"UNEXPECTED_NULL_CHARACTER",UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME:21,21:"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME",UNEXPECTED_SOLIDUS_IN_TAG:22,22:"UNEXPECTED_SOLIDUS_IN_TAG",X_INVALID_END_TAG:23,23:"X_INVALID_END_TAG",X_MISSING_END_TAG:24,24:"X_MISSING_END_TAG",X_MISSING_INTERPOLATION_END:25,25:"X_MISSING_INTERPOLATION_END",X_MISSING_DIRECTIVE_NAME:26,26:"X_MISSING_DIRECTIVE_NAME",X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END:27,27:"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END",X_V_IF_NO_EXPRESSION:28,28:"X_V_IF_NO_EXPRESSION",X_V_IF_SAME_KEY:29,29:"X_V_IF_SAME_KEY",X_V_ELSE_NO_ADJACENT_IF:30,30:"X_V_ELSE_NO_ADJACENT_IF",X_V_FOR_NO_EXPRESSION:31,31:"X_V_FOR_NO_EXPRESSION",X_V_FOR_MALFORMED_EXPRESSION:32,32:"X_V_FOR_MALFORMED_EXPRESSION",X_V_FOR_TEMPLATE_KEY_PLACEMENT:33,33:"X_V_FOR_TEMPLATE_KEY_PLACEMENT",X_V_BIND_NO_EXPRESSION:34,34:"X_V_BIND_NO_EXPRESSION",X_V_ON_NO_EXPRESSION:35,35:"X_V_ON_NO_EXPRESSION",X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET:36,36:"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET",X_V_SLOT_MIXED_SLOT_USAGE:37,37:"X_V_SLOT_MIXED_SLOT_USAGE",X_V_SLOT_DUPLICATE_SLOT_NAMES:38,38:"X_V_SLOT_DUPLICATE_SLOT_NAMES",X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN:39,39:"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN",X_V_SLOT_MISPLACED:40,40:"X_V_SLOT_MISPLACED",X_V_MODEL_NO_EXPRESSION:41,41:"X_V_MODEL_NO_EXPRESSION",X_V_MODEL_MALFORMED_EXPRESSION:42,42:"X_V_MODEL_MALFORMED_EXPRESSION",X_V_MODEL_ON_SCOPE_VARIABLE:43,43:"X_V_MODEL_ON_SCOPE_VARIABLE",X_V_MODEL_ON_PROPS:44,44:"X_V_MODEL_ON_PROPS",X_V_MODEL_ON_CONST:45,45:"X_V_MODEL_ON_CONST",X_INVALID_EXPRESSION:46,46:"X_INVALID_EXPRESSION",X_KEEP_ALIVE_INVALID_CHILDREN:47,47:"X_KEEP_ALIVE_INVALID_CHILDREN",X_PREFIX_ID_NOT_SUPPORTED:48,48:"X_PREFIX_ID_NOT_SUPPORTED",X_MODULE_MODE_NOT_SUPPORTED:49,49:"X_MODULE_MODE_NOT_SUPPORTED",X_CACHE_HANDLER_NOT_SUPPORTED:50,50:"X_CACHE_HANDLER_NOT_SUPPORTED",X_SCOPE_ID_NOT_SUPPORTED:51,51:"X_SCOPE_ID_NOT_SUPPORTED",X_VNODE_HOOKS:52,52:"X_VNODE_HOOKS",X_V_BIND_INVALID_SAME_NAME_ARGUMENT:53,53:"X_V_BIND_INVALID_SAME_NAME_ARGUMENT",__EXTEND_POINT__:54,54:"__EXTEND_POINT__"},e.FRAGMENT=C,e.GUARD_REACTIVE_PROPS=z,e.IS_MEMO_SAME=eh,e.IS_REF=el,e.KEEP_ALIVE=R,e.MERGE_PROPS=W,e.NORMALIZE_CLASS=K,e.NORMALIZE_PROPS=Q,e.NORMALIZE_STYLE=Y,e.Namespaces={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},e.NodeTypes={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},e.OPEN_BLOCK=L,e.POP_SCOPE_ID=er,e.PUSH_SCOPE_ID=es,e.RENDER_LIST=G,e.RENDER_SLOT=q,e.RESOLVE_COMPONENT=U,e.RESOLVE_DIRECTIVE=B,e.RESOLVE_DYNAMIC_COMPONENT=F,e.RESOLVE_FILTER=$,e.SET_BLOCK_TRACKING=ei,e.SUSPENSE=v,e.TELEPORT=b,e.TO_DISPLAY_STRING=j,e.TO_HANDLERS=Z,e.TO_HANDLER_KEY=en,e.TRANSITION=nW,e.TRANSITION_GROUP=nK,e.TS_NODE_TYPES=eq,e.UNREF=ea,e.V_MODEL_CHECKBOX=nB,e.V_MODEL_DYNAMIC=nG,e.V_MODEL_RADIO=nF,e.V_MODEL_SELECT=nH,e.V_MODEL_TEXT=n$,e.V_ON_WITH_KEYS=nJ,e.V_ON_WITH_MODIFIERS=nq,e.V_SHOW=nj,e.WITH_CTX=eo,e.WITH_DIRECTIVES=H,e.WITH_MEMO=ec,e.advancePositionWithClone=function(e,t,n=t.length){return e3({offset:e.offset,line:e.line,column:e.column},t,n)},e.advancePositionWithMutation=e3,e.assert=function(e,t){if(!e)throw Error(t||"unexpected compiler condition")},e.baseCompile=nw,e.baseParse=tH,e.buildDirectiveArgs=nS,e.buildProps=n_,e.buildSlots=nd,e.checkCompatEnabled=function(e,t,n){return ew(e,t)},e.compile=function(e,t={}){return nw(e,a({},nY,t,{nodeTransforms:[n4,...n6,...t.nodeTransforms||[]],directiveTransforms:a({},n5,t.directiveTransforms||{}),transformHoist:null}))},e.convertToBlock=ev,e.createArrayExpression=e_,e.createAssignmentExpression=function(e,t){return{type:24,left:e,right:t,loc:eu}},e.createBlockStatement=eA,e.createCacheExpression=eO,e.createCallExpression=eN,e.createCompilerError=eB,e.createCompoundExpression=eT,e.createConditionalExpression=ey,e.createDOMCompilerError=function(e,t){return eB(e,t)},e.createForLoopParams=na,e.createFunctionExpression=eI,e.createIfStatement=function(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:eu}},e.createInterpolation=function(e,t){return{type:5,loc:t,content:c(e)?eg(e,!1,t):e}},e.createObjectExpression=em,e.createObjectProperty=eS,e.createReturnStatement=function(e){return{type:26,returns:e,loc:eu}},e.createRoot=ef,e.createSequenceExpression=function(e){return{type:25,expressions:e,loc:eu}},e.createSimpleExpression=eg,e.createStructuralDirectiveTransform=tz,e.createTemplateLiteral=function(e){return{type:22,elements:e,loc:eu}},e.createTransformContext=tK,e.createVNodeCall=eE,e.errorMessages=e$,e.extractIdentifiers=eH,e.findDir=e4,e.findProp=e6,e.forAliasRE=tl,e.generate=t0,e.generateCodeFrame=function(e,t=0,n=e.length){if((t=Math.max(0,Math.min(t,e.length)))>(n=Math.max(0,Math.min(n,e.length))))return"";let i=e.split(/(\r?\n)/),s=i.filter((e,t)=>t%2==1);i=i.filter((e,t)=>t%2==0);let r=0,o=[];for(let e=0;e<i.length;e++)if((r+=i[e].length+(s[e]&&s[e].length||0))>=t){for(let a=e-2;a<=e+2||n>r;a++){if(a<0||a>=i.length)continue;let l=a+1;o.push(`${l}${" ".repeat(Math.max(3-String(l).length,0))}| ${i[a]}`);let c=i[a].length,h=s[a]&&s[a].length||0;if(a===e){let e=t-(r-(c+h)),i=Math.max(1,n>r?c-e:n-t);o.push(" | "+" ".repeat(e)+"^".repeat(i))}else if(a>e){if(n>r){let e=Math.max(Math.min(n-r,c),1);o.push(" | "+"^".repeat(e))}r+=c+h}}break}return o.join(` +`)},e.getBaseTransformPreset=nX,e.getConstantType=tq,e.getMemoedVNodeCall=ta,e.getVNodeBlockHelper=eb,e.getVNodeHelper=eC,e.hasDynamicKeyVBind=e9,e.hasScopeRef=function e(t,n){if(!t||0===Object.keys(n).length)return!1;switch(t.type){case 1:for(let i=0;i<t.props.length;i++){let s=t.props[i];if(7===s.type&&(e(s.arg,n)||e(s.exp,n)))return!0}return t.children.some(t=>e(t,n));case 11:if(e(t.source,n))return!0;return t.children.some(t=>e(t,n));case 9:return t.branches.some(t=>e(t,n));case 10:if(e(t.condition,n))return!0;return t.children.some(t=>e(t,n));case 4:return!t.isStatic&&eK(t.content)&&!!n[t.content];case 8:return t.children.some(t=>d(t)&&e(t,n));case 5:case 12:return e(t.content,n);default:return!1}},e.helperNameMap=ed,e.injectProp=ts,e.isAllWhitespace=tc,e.isCommentOrWhitespace=td,e.isCoreComponent=ej,e.isFnExpression=e2,e.isFnExpressionBrowser=e2,e.isFnExpressionNode=s,e.isFunctionType=e=>/Function(?:Expression|Declaration)$|Method$/.test(e.type),e.isInDestructureAssignment=function(e,t){if(e&&("ObjectProperty"===e.type||"ArrayPattern"===e.type)){let e=t.length;for(;e--;){let n=t[e];if("AssignmentExpression"===n.type)return!0;if("ObjectProperty"!==n.type&&!n.type.endsWith("Pattern"))break}}return!1},e.isInNewExpression=function(e){let t=e.length;for(;t--;){let n=e[t];if("NewExpression"===n.type)return!0;if("MemberExpression"!==n.type)break}return!1},e.isMemberExpression=e1,e.isMemberExpressionBrowser=e1,e.isMemberExpressionNode=s,e.isReferencedIdentifier=function(e,t,n){return!1},e.isSimpleIdentifier=eK,e.isSlotOutlet=tn,e.isStaticArgOf=e5,e.isStaticExp=eJ,e.isStaticProperty=eG,e.isStaticPropertyKey=(e,t)=>eG(t)&&t.key===e,e.isTemplateNode=tt,e.isText=e7,e.isVPre=e8,e.isVSlot=te,e.isWhitespaceText=th,e.locStub=eu,e.noopDirectiveTransform=nU,e.parse=function(e,t={}){return tH(e,a({},nY,t))},e.parserOptions=nY,e.processExpression=t7,e.processFor=nr,e.processIf=ne,e.processSlotOutlet=nN,e.registerRuntimeHelpers=ep,e.resolveComponentType=nE,e.stringifyExpression=function e(t){return c(t)?t:4===t.type?t.content:t.children.map(e).join("")},e.toValidAssetId=to,e.trackSlotScopes=nc,e.trackVForSlotScopes=(e,t)=>{let n;if(tt(e)&&e.props.some(te)&&(n=e4(e,"for"))){let e=n.forParseResult;if(e){no(e);let{value:n,key:i,index:s}=e,{addIdentifiers:r,removeIdentifiers:o}=t;return n&&r(n),i&&r(i),s&&r(s),()=>{n&&o(n),i&&o(i),s&&o(s)}}}},e.transform=tY,e.transformBind=ny,e.transformElement=nf,e.transformExpression=(e,t)=>{if(5===e.type)e.content=t7(e.content,t);else if(1===e.type){let n=e4(e,"memo");for(let i=0;i<e.props.length;i++){let s=e.props[i];if(7===s.type&&"for"!==s.name){let e=s.exp,i=s.arg;!e||4!==e.type||"on"===s.name&&i||n&&i&&4===i.type&&"key"===i.content||(s.exp=t7(e,t,"slot"===s.name)),i&&4===i.type&&!i.isStatic&&(s.arg=t7(i,t))}}}},e.transformModel=nv,e.transformOn=nI,e.transformStyle=nQ,e.transformVBindShorthand=nk,e.traverseNode=tQ,e.unwrapTSNode=function e(t){return eq.includes(t.type)?e(t.expression):t},e.validFirstIdentCharRE=eY,e.walkBlockDeclarations=function e(t,n){for(let s of"SwitchCase"===t.type?t.consequent:t.body)if("VariableDeclaration"===s.type){if(s.declare)continue;for(let e of s.declarations)for(let t of eH(e.id))n(t)}else if("FunctionDeclaration"===s.type||"ClassDeclaration"===s.type){if(s.declare||!s.id)continue;n(s.id)}else{var i;"ForOfStatement"===(i=s).type||"ForInStatement"===i.type||"ForStatement"===i.type?function(e,t,n){let i="ForStatement"===e.type?e.init:e.left;if(i&&"VariableDeclaration"===i.type&&("var"===i.kind?t:!t))for(let e of i.declarations)for(let t of eH(e.id))n(t)}(s,!0,n):"SwitchStatement"===s.type&&function(t,n,i){for(let s of t.cases){for(let e of s.consequent)if("VariableDeclaration"===e.type&&("var"===e.kind?n:!n))for(let t of e.declarations)for(let e of eH(t.id))i(e);e(s,i)}}(s,!0,n)}},e.walkFunctionParams=function(e,t){for(let n of e.params)for(let e of eH(n))t(e)},e.walkIdentifiers=function(e,t,n=!1,i=[],s=Object.create(null)){},e.warnDeprecation=function(e,t,n,...i){if("suppress-warning"===eX(e,t))return;let{message:s,link:r}=ek[e],o=SyntaxError(`(deprecation ${e}) ${"function"==typeof s?s(...i):s}${r?` + Details: ${r}`:""}`);o.code=e,n&&(o.loc=n),t.onWarn(o)},e}({}); diff --git a/node_modules/@vue/compiler-dom/index.js b/node_modules/@vue/compiler-dom/index.js new file mode 100644 index 0000000..b5f7a05 --- /dev/null +++ b/node_modules/@vue/compiler-dom/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/compiler-dom.cjs.prod.js') +} else { + module.exports = require('./dist/compiler-dom.cjs.js') +} diff --git a/node_modules/@vue/compiler-dom/package.json b/node_modules/@vue/compiler-dom/package.json new file mode 100644 index 0000000..d13af68 --- /dev/null +++ b/node_modules/@vue/compiler-dom/package.json @@ -0,0 +1,57 @@ +{ + "name": "@vue/compiler-dom", + "version": "3.5.28", + "description": "@vue/compiler-dom", + "main": "index.js", + "module": "dist/compiler-dom.esm-bundler.js", + "types": "dist/compiler-dom.d.ts", + "unpkg": "dist/compiler-dom.global.js", + "jsdelivr": "dist/compiler-dom.global.js", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/compiler-dom.d.ts", + "node": { + "production": "./dist/compiler-dom.cjs.prod.js", + "development": "./dist/compiler-dom.cjs.js", + "default": "./index.js" + }, + "module": "./dist/compiler-dom.esm-bundler.js", + "import": "./dist/compiler-dom.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "buildOptions": { + "name": "VueCompilerDOM", + "compat": true, + "formats": [ + "esm-bundler", + "esm-browser", + "cjs", + "global" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-dom" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", + "dependencies": { + "@vue/compiler-core": "3.5.28", + "@vue/shared": "3.5.28" + } +} \ No newline at end of file diff --git a/node_modules/@vue/compiler-sfc/LICENSE b/node_modules/@vue/compiler-sfc/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/compiler-sfc/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/compiler-sfc/README.md b/node_modules/@vue/compiler-sfc/README.md new file mode 100644 index 0000000..4d2ae6e --- /dev/null +++ b/node_modules/@vue/compiler-sfc/README.md @@ -0,0 +1,79 @@ +# @vue/compiler-sfc + +> Lower level utilities for compiling Vue Single File Components + +**Note: as of 3.2.13+, this package is included as a dependency of the main `vue` package and can be accessed as `vue/compiler-sfc`. This means you no longer need to explicitly install this package and ensure its version match that of `vue`'s. Just use the main `vue/compiler-sfc` deep import instead.** + +This package contains lower level utilities that you can use if you are writing a plugin / transform for a bundler or module system that compiles Vue Single File Components (SFCs) into JavaScript. It is used in [vue-loader](https://github.com/vuejs/vue-loader) and [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue). + +## API + +The API is intentionally low-level due to the various considerations when integrating Vue SFCs in a build system: + +- Separate hot-module replacement (HMR) for script, template and styles + - template updates should not reset component state + - style updates should be performed without component re-render + +- Leveraging the tool's plugin system for pre-processor handling. e.g. `<style lang="scss">` should be processed by the corresponding webpack loader. + +- In some cases, transformers of each block in an SFC do not share the same execution context. For example, when used with `thread-loader` or other parallelized configurations, the template sub-loader in `vue-loader` may not have access to the full SFC and its descriptor. + +The general idea is to generate a facade module that imports the individual blocks of the component. The trick is the module imports itself with different query strings so that the build system can handle each request as "virtual" modules: + +``` + +--------------------+ + | | + | script transform | + +----->+ | + | +--------------------+ + | ++--------------------+ | +--------------------+ +| | | | | +| facade transform +----------->+ template transform | +| | | | | ++--------------------+ | +--------------------+ + | + | +--------------------+ + +----->+ | + | style transform | + | | + +--------------------+ +``` + +Where the facade module looks like this: + +```js +// main script +import script from '/project/foo.vue?vue&type=script' +// template compiled to render function +import { render } from '/project/foo.vue?vue&type=template&id=xxxxxx' +// css +import '/project/foo.vue?vue&type=style&index=0&id=xxxxxx' + +// attach render function to script +script.render = render + +// attach additional metadata +// some of these should be dev only +script.__file = 'example.vue' +script.__scopeId = 'xxxxxx' + +// additional tooling-specific HMR handling code +// using __VUE_HMR_API__ global + +export default script +``` + +### High Level Workflow + +1. In facade transform, parse the source into descriptor with the `parse` API and generate the above facade module code based on the descriptor; + +2. In script transform, use `compileScript` to process the script. This handles features like `<script setup>` and CSS variable injection. Alternatively, this can be done directly in the facade module (with the code inlined instead of imported), but it will require rewriting `export default` to a temp variable (a `rewriteDefault` convenience API is provided for this purpose) so additional options can be attached to the exported object. + +3. In template transform, use `compileTemplate` to compile the raw template into render function code. + +4. In style transform, use `compileStyle` to compile raw CSS to handle `<style scoped>`, `<style module>` and CSS variable injection. + +Options needed for these APIs can be passed via the query string. + +For detailed API references and options, check out the source type definitions. For actual usage of these APIs, check out [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue) or [vue-loader](https://github.com/vuejs/vue-loader/tree/next). diff --git a/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js new file mode 100644 index 0000000..2ba0fbe --- /dev/null +++ b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js @@ -0,0 +1,25235 @@ +/** +* @vue/compiler-sfc v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerCore = require('@vue/compiler-core'); +var CompilerDOM = require('@vue/compiler-dom'); +var sourceMapJs = require('source-map-js'); +var shared = require('@vue/shared'); +var path$1 = require('path'); +var url = require('url'); +var CompilerSSR = require('@vue/compiler-ssr'); +var require$$2 = require('util'); +var require$$0 = require('fs'); +var require$$0$1 = require('postcss'); +var estreeWalker = require('estree-walker'); +var MagicString = require('magic-string'); +var parser$2 = require('@babel/parser'); +var process$1 = require('process'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var CompilerDOM__namespace = /*#__PURE__*/_interopNamespaceDefault(CompilerDOM); +var CompilerSSR__namespace = /*#__PURE__*/_interopNamespaceDefault(CompilerSSR); +var process__namespace = /*#__PURE__*/_interopNamespaceDefault(process$1); + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +var hashSum; +var hasRequiredHashSum; + +function requireHashSum () { + if (hasRequiredHashSum) return hashSum; + hasRequiredHashSum = 1; + + function pad (hash, len) { + while (hash.length < len) { + hash = '0' + hash; + } + return hash; + } + + function fold (hash, text) { + var i; + var chr; + var len; + if (text.length === 0) { + return hash; + } + for (i = 0, len = text.length; i < len; i++) { + chr = text.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; + } + return hash < 0 ? hash * -2 : hash; + } + + function foldObject (hash, o, seen) { + return Object.keys(o).sort().reduce(foldKey, hash); + function foldKey (hash, key) { + return foldValue(hash, o[key], key, seen); + } + } + + function foldValue (input, value, key, seen) { + var hash = fold(fold(fold(input, key), toString(value)), typeof value); + if (value === null) { + return fold(hash, 'null'); + } + if (value === undefined) { + return fold(hash, 'undefined'); + } + if (typeof value === 'object' || typeof value === 'function') { + if (seen.indexOf(value) !== -1) { + return fold(hash, '[Circular]' + key); + } + seen.push(value); + + var objHash = foldObject(hash, value, seen); + + if (!('valueOf' in value) || typeof value.valueOf !== 'function') { + return objHash; + } + + try { + return fold(objHash, String(value.valueOf())) + } catch (err) { + return fold(objHash, '[valueOf exception]' + (err.stack || err.message)) + } + } + return fold(hash, value.toString()); + } + + function toString (o) { + return Object.prototype.toString.call(o); + } + + function sum (o) { + return pad(foldValue(0, o, '', []).toString(16), 8); + } + + hashSum = sum; + return hashSum; +} + +var hashSumExports = /*@__PURE__*/ requireHashSum(); +var hash = /*@__PURE__*/getDefaultExportFromCjs(hashSumExports); + +const CSS_VARS_HELPER = `useCssVars`; +function genCssVarsFromList(vars, id, isProd, isSSR = false) { + return `{ + ${vars.map( + (key) => ( + // The `:` prefix here is used in `ssrRenderStyle` to distinguish whether + // a custom property comes from `ssrCssVars`. If it does, we need to reset + // its value to `initial` on the component instance to avoid unintentionally + // inheriting the same property value from a different instance of the same + // component in the outer scope. + `"${isSSR ? `:--` : ``}${genVarName(id, key, isProd, isSSR)}": (${key})` + ) + ).join(",\n ")} +}`; +} +function genVarName(id, raw, isProd, isSSR = false) { + if (isProd) { + return hash(id + raw).replace(/^\d/, (r) => `v${r}`); + } else { + return `${id}-${shared.getEscapedCssVarName(raw, isSSR)}`; + } +} +function normalizeExpression(exp) { + exp = exp.trim(); + if (exp[0] === `'` && exp[exp.length - 1] === `'` || exp[0] === `"` && exp[exp.length - 1] === `"`) { + return exp.slice(1, -1); + } + return exp; +} +const vBindRE = /v-bind\s*\(/g; +function parseCssVars(sfc) { + const vars = []; + sfc.styles.forEach((style) => { + let match; + const content = style.content.replace(/\/\*([\s\S]*?)\*\/|\/\/.*/g, ""); + while (match = vBindRE.exec(content)) { + const start = match.index + match[0].length; + const end = lexBinding(content, start); + if (end !== null) { + const variable = normalizeExpression(content.slice(start, end)); + if (!vars.includes(variable)) { + vars.push(variable); + } + } + } + }); + return vars; +} +function lexBinding(content, start) { + let state = 0 /* inParens */; + let parenDepth = 0; + for (let i = start; i < content.length; i++) { + const char = content.charAt(i); + switch (state) { + case 0 /* inParens */: + if (char === `'`) { + state = 1 /* inSingleQuoteString */; + } else if (char === `"`) { + state = 2 /* inDoubleQuoteString */; + } else if (char === `(`) { + parenDepth++; + } else if (char === `)`) { + if (parenDepth > 0) { + parenDepth--; + } else { + return i; + } + } + break; + case 1 /* inSingleQuoteString */: + if (char === `'`) { + state = 0 /* inParens */; + } + break; + case 2 /* inDoubleQuoteString */: + if (char === `"`) { + state = 0 /* inParens */; + } + break; + } + } + return null; +} +const cssVarsPlugin = (opts) => { + const { id, isProd } = opts; + return { + postcssPlugin: "vue-sfc-vars", + Declaration(decl) { + const value = decl.value; + if (vBindRE.test(value)) { + vBindRE.lastIndex = 0; + let transformed = ""; + let lastIndex = 0; + let match; + while (match = vBindRE.exec(value)) { + const start = match.index + match[0].length; + const end = lexBinding(value, start); + if (end !== null) { + const variable = normalizeExpression(value.slice(start, end)); + transformed += value.slice(lastIndex, match.index) + `var(--${genVarName(id, variable, isProd)})`; + lastIndex = end + 1; + } + } + decl.value = transformed + value.slice(lastIndex); + } + } + }; +}; +cssVarsPlugin.postcss = true; +function genCssVarsCode(vars, bindings, id, isProd) { + const varsExp = genCssVarsFromList(vars, id, isProd); + const exp = CompilerDOM.createSimpleExpression(varsExp, false); + const context = CompilerDOM.createTransformContext(CompilerDOM.createRoot([]), { + prefixIdentifiers: true, + inline: true, + bindingMetadata: bindings.__isScriptSetup === false ? void 0 : bindings + }); + const transformed = CompilerDOM.processExpression(exp, context); + const transformedString = transformed.type === 4 ? transformed.content : transformed.children.map((c) => { + return typeof c === "string" ? c : c.content; + }).join(""); + return `_${CSS_VARS_HELPER}(_ctx => (${transformedString}))`; +} +function genNormalScriptCssVarsCode(cssVars, bindings, id, isProd, defaultVar) { + return ` +import { ${CSS_VARS_HELPER} as _${CSS_VARS_HELPER} } from 'vue' +const __injectCSSVars__ = () => { +${genCssVarsCode( + cssVars, + bindings, + id, + isProd + )}} +const __setup__ = ${defaultVar}.setup +${defaultVar}.setup = __setup__ + ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) } + : __injectCSSVars__ +`; +} + +/** + * @module LRUCache + */ +const perf = typeof performance === 'object' && + performance && + typeof performance.now === 'function' + ? performance + : Date; +const warned = new Set(); +/* c8 ignore start */ +const PROCESS = (typeof process === 'object' && !!process ? process : {}); +/* c8 ignore start */ +const emitWarning = (msg, type, code, fn) => { + typeof PROCESS.emitWarning === 'function' + ? PROCESS.emitWarning(msg, type, code, fn) + : console.error(`[${code}] ${type}: ${msg}`); +}; +let AC = globalThis.AbortController; +let AS = globalThis.AbortSignal; +/* c8 ignore start */ +if (typeof AC === 'undefined') { + //@ts-ignore + AS = class AbortSignal { + onabort; + _onabort = []; + reason; + aborted = false; + addEventListener(_, fn) { + this._onabort.push(fn); + } + }; + //@ts-ignore + AC = class AbortController { + constructor() { + warnACPolyfill(); + } + signal = new AS(); + abort(reason) { + if (this.signal.aborted) + return; + //@ts-ignore + this.signal.reason = reason; + //@ts-ignore + this.signal.aborted = true; + //@ts-ignore + for (const fn of this.signal._onabort) { + fn(reason); + } + this.signal.onabort?.(reason); + } + }; + let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1'; + const warnACPolyfill = () => { + if (!printACPolyfillWarning) + return; + printACPolyfillWarning = false; + emitWarning('AbortController is not defined. If using lru-cache in ' + + 'node 14, load an AbortController polyfill from the ' + + '`node-abort-controller` package. A minimal polyfill is ' + + 'provided for use by LRUCache.fetch(), but it should not be ' + + 'relied upon in other contexts (eg, passing it to other APIs that ' + + 'use AbortController/AbortSignal might have undesirable effects). ' + + 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill); + }; +} +/* c8 ignore stop */ +const shouldWarn = (code) => !warned.has(code); +const isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n); +/* c8 ignore start */ +// This is a little bit ridiculous, tbh. +// The maximum array length is 2^32-1 or thereabouts on most JS impls. +// And well before that point, you're caching the entire world, I mean, +// that's ~32GB of just integers for the next/prev links, plus whatever +// else to hold that many keys and values. Just filling the memory with +// zeroes at init time is brutal when you get that big. +// But why not be complete? +// Maybe in the future, these limits will have expanded. +const getUintArray = (max) => !isPosInt(max) + ? null + : max <= Math.pow(2, 8) + ? Uint8Array + : max <= Math.pow(2, 16) + ? Uint16Array + : max <= Math.pow(2, 32) + ? Uint32Array + : max <= Number.MAX_SAFE_INTEGER + ? ZeroArray + : null; +/* c8 ignore stop */ +class ZeroArray extends Array { + constructor(size) { + super(size); + this.fill(0); + } +} +class Stack { + heap; + length; + // private constructor + static #constructing = false; + static create(max) { + const HeapCls = getUintArray(max); + if (!HeapCls) + return []; + Stack.#constructing = true; + const s = new Stack(max, HeapCls); + Stack.#constructing = false; + return s; + } + constructor(max, HeapCls) { + /* c8 ignore start */ + if (!Stack.#constructing) { + throw new TypeError('instantiate Stack using Stack.create(n)'); + } + /* c8 ignore stop */ + this.heap = new HeapCls(max); + this.length = 0; + } + push(n) { + this.heap[this.length++] = n; + } + pop() { + return this.heap[--this.length]; + } +} +/** + * Default export, the thing you're using this module to get. + * + * All properties from the options object (with the exception of + * {@link OptionsBase.max} and {@link OptionsBase.maxSize}) are added as + * normal public members. (`max` and `maxBase` are read-only getters.) + * Changing any of these will alter the defaults for subsequent method calls, + * but is otherwise safe. + */ +class LRUCache { + // properties coming in from the options of these, only max and maxSize + // really *need* to be protected. The rest can be modified, as they just + // set defaults for various methods. + #max; + #maxSize; + #dispose; + #disposeAfter; + #fetchMethod; + /** + * {@link LRUCache.OptionsBase.ttl} + */ + ttl; + /** + * {@link LRUCache.OptionsBase.ttlResolution} + */ + ttlResolution; + /** + * {@link LRUCache.OptionsBase.ttlAutopurge} + */ + ttlAutopurge; + /** + * {@link LRUCache.OptionsBase.updateAgeOnGet} + */ + updateAgeOnGet; + /** + * {@link LRUCache.OptionsBase.updateAgeOnHas} + */ + updateAgeOnHas; + /** + * {@link LRUCache.OptionsBase.allowStale} + */ + allowStale; + /** + * {@link LRUCache.OptionsBase.noDisposeOnSet} + */ + noDisposeOnSet; + /** + * {@link LRUCache.OptionsBase.noUpdateTTL} + */ + noUpdateTTL; + /** + * {@link LRUCache.OptionsBase.maxEntrySize} + */ + maxEntrySize; + /** + * {@link LRUCache.OptionsBase.sizeCalculation} + */ + sizeCalculation; + /** + * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection} + */ + noDeleteOnFetchRejection; + /** + * {@link LRUCache.OptionsBase.noDeleteOnStaleGet} + */ + noDeleteOnStaleGet; + /** + * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort} + */ + allowStaleOnFetchAbort; + /** + * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} + */ + allowStaleOnFetchRejection; + /** + * {@link LRUCache.OptionsBase.ignoreFetchAbort} + */ + ignoreFetchAbort; + // computed properties + #size; + #calculatedSize; + #keyMap; + #keyList; + #valList; + #next; + #prev; + #head; + #tail; + #free; + #disposed; + #sizes; + #starts; + #ttls; + #hasDispose; + #hasFetchMethod; + #hasDisposeAfter; + /** + * Do not call this method unless you need to inspect the + * inner workings of the cache. If anything returned by this + * object is modified in any way, strange breakage may occur. + * + * These fields are private for a reason! + * + * @internal + */ + static unsafeExposeInternals(c) { + return { + // properties + starts: c.#starts, + ttls: c.#ttls, + sizes: c.#sizes, + keyMap: c.#keyMap, + keyList: c.#keyList, + valList: c.#valList, + next: c.#next, + prev: c.#prev, + get head() { + return c.#head; + }, + get tail() { + return c.#tail; + }, + free: c.#free, + // methods + isBackgroundFetch: (p) => c.#isBackgroundFetch(p), + backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context), + moveToTail: (index) => c.#moveToTail(index), + indexes: (options) => c.#indexes(options), + rindexes: (options) => c.#rindexes(options), + isStale: (index) => c.#isStale(index), + }; + } + // Protected read-only members + /** + * {@link LRUCache.OptionsBase.max} (read-only) + */ + get max() { + return this.#max; + } + /** + * {@link LRUCache.OptionsBase.maxSize} (read-only) + */ + get maxSize() { + return this.#maxSize; + } + /** + * The total computed size of items in the cache (read-only) + */ + get calculatedSize() { + return this.#calculatedSize; + } + /** + * The number of items stored in the cache (read-only) + */ + get size() { + return this.#size; + } + /** + * {@link LRUCache.OptionsBase.fetchMethod} (read-only) + */ + get fetchMethod() { + return this.#fetchMethod; + } + /** + * {@link LRUCache.OptionsBase.dispose} (read-only) + */ + get dispose() { + return this.#dispose; + } + /** + * {@link LRUCache.OptionsBase.disposeAfter} (read-only) + */ + get disposeAfter() { + return this.#disposeAfter; + } + constructor(options) { + const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options; + if (max !== 0 && !isPosInt(max)) { + throw new TypeError('max option must be a nonnegative integer'); + } + const UintArray = max ? getUintArray(max) : Array; + if (!UintArray) { + throw new Error('invalid max value: ' + max); + } + this.#max = max; + this.#maxSize = maxSize; + this.maxEntrySize = maxEntrySize || this.#maxSize; + this.sizeCalculation = sizeCalculation; + if (this.sizeCalculation) { + if (!this.#maxSize && !this.maxEntrySize) { + throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize'); + } + if (typeof this.sizeCalculation !== 'function') { + throw new TypeError('sizeCalculation set to non-function'); + } + } + if (fetchMethod !== undefined && + typeof fetchMethod !== 'function') { + throw new TypeError('fetchMethod must be a function if specified'); + } + this.#fetchMethod = fetchMethod; + this.#hasFetchMethod = !!fetchMethod; + this.#keyMap = new Map(); + this.#keyList = new Array(max).fill(undefined); + this.#valList = new Array(max).fill(undefined); + this.#next = new UintArray(max); + this.#prev = new UintArray(max); + this.#head = 0; + this.#tail = 0; + this.#free = Stack.create(max); + this.#size = 0; + this.#calculatedSize = 0; + if (typeof dispose === 'function') { + this.#dispose = dispose; + } + if (typeof disposeAfter === 'function') { + this.#disposeAfter = disposeAfter; + this.#disposed = []; + } + else { + this.#disposeAfter = undefined; + this.#disposed = undefined; + } + this.#hasDispose = !!this.#dispose; + this.#hasDisposeAfter = !!this.#disposeAfter; + this.noDisposeOnSet = !!noDisposeOnSet; + this.noUpdateTTL = !!noUpdateTTL; + this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection; + this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection; + this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort; + this.ignoreFetchAbort = !!ignoreFetchAbort; + // NB: maxEntrySize is set to maxSize if it's set + if (this.maxEntrySize !== 0) { + if (this.#maxSize !== 0) { + if (!isPosInt(this.#maxSize)) { + throw new TypeError('maxSize must be a positive integer if specified'); + } + } + if (!isPosInt(this.maxEntrySize)) { + throw new TypeError('maxEntrySize must be a positive integer if specified'); + } + this.#initializeSizeTracking(); + } + this.allowStale = !!allowStale; + this.noDeleteOnStaleGet = !!noDeleteOnStaleGet; + this.updateAgeOnGet = !!updateAgeOnGet; + this.updateAgeOnHas = !!updateAgeOnHas; + this.ttlResolution = + isPosInt(ttlResolution) || ttlResolution === 0 + ? ttlResolution + : 1; + this.ttlAutopurge = !!ttlAutopurge; + this.ttl = ttl || 0; + if (this.ttl) { + if (!isPosInt(this.ttl)) { + throw new TypeError('ttl must be a positive integer if specified'); + } + this.#initializeTTLTracking(); + } + // do not allow completely unbounded caches + if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) { + throw new TypeError('At least one of max, maxSize, or ttl is required'); + } + if (!this.ttlAutopurge && !this.#max && !this.#maxSize) { + const code = 'LRU_CACHE_UNBOUNDED'; + if (shouldWarn(code)) { + warned.add(code); + const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' + + 'result in unbounded memory consumption.'; + emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache); + } + } + } + /** + * Return the remaining TTL time for a given entry key + */ + getRemainingTTL(key) { + return this.#keyMap.has(key) ? Infinity : 0; + } + #initializeTTLTracking() { + const ttls = new ZeroArray(this.#max); + const starts = new ZeroArray(this.#max); + this.#ttls = ttls; + this.#starts = starts; + this.#setItemTTL = (index, ttl, start = perf.now()) => { + starts[index] = ttl !== 0 ? start : 0; + ttls[index] = ttl; + if (ttl !== 0 && this.ttlAutopurge) { + const t = setTimeout(() => { + if (this.#isStale(index)) { + this.delete(this.#keyList[index]); + } + }, ttl + 1); + // unref() not supported on all platforms + /* c8 ignore start */ + if (t.unref) { + t.unref(); + } + /* c8 ignore stop */ + } + }; + this.#updateItemAge = index => { + starts[index] = ttls[index] !== 0 ? perf.now() : 0; + }; + this.#statusTTL = (status, index) => { + if (ttls[index]) { + const ttl = ttls[index]; + const start = starts[index]; + /* c8 ignore next */ + if (!ttl || !start) + return; + status.ttl = ttl; + status.start = start; + status.now = cachedNow || getNow(); + const age = status.now - start; + status.remainingTTL = ttl - age; + } + }; + // debounce calls to perf.now() to 1s so we're not hitting + // that costly call repeatedly. + let cachedNow = 0; + const getNow = () => { + const n = perf.now(); + if (this.ttlResolution > 0) { + cachedNow = n; + const t = setTimeout(() => (cachedNow = 0), this.ttlResolution); + // not available on all platforms + /* c8 ignore start */ + if (t.unref) { + t.unref(); + } + /* c8 ignore stop */ + } + return n; + }; + this.getRemainingTTL = key => { + const index = this.#keyMap.get(key); + if (index === undefined) { + return 0; + } + const ttl = ttls[index]; + const start = starts[index]; + if (!ttl || !start) { + return Infinity; + } + const age = (cachedNow || getNow()) - start; + return ttl - age; + }; + this.#isStale = index => { + const s = starts[index]; + const t = ttls[index]; + return !!t && !!s && (cachedNow || getNow()) - s > t; + }; + } + // conditionally set private methods related to TTL + #updateItemAge = () => { }; + #statusTTL = () => { }; + #setItemTTL = () => { }; + /* c8 ignore stop */ + #isStale = () => false; + #initializeSizeTracking() { + const sizes = new ZeroArray(this.#max); + this.#calculatedSize = 0; + this.#sizes = sizes; + this.#removeItemSize = index => { + this.#calculatedSize -= sizes[index]; + sizes[index] = 0; + }; + this.#requireSize = (k, v, size, sizeCalculation) => { + // provisionally accept background fetches. + // actual value size will be checked when they return. + if (this.#isBackgroundFetch(v)) { + return 0; + } + if (!isPosInt(size)) { + if (sizeCalculation) { + if (typeof sizeCalculation !== 'function') { + throw new TypeError('sizeCalculation must be a function'); + } + size = sizeCalculation(v, k); + if (!isPosInt(size)) { + throw new TypeError('sizeCalculation return invalid (expect positive integer)'); + } + } + else { + throw new TypeError('invalid size value (must be positive integer). ' + + 'When maxSize or maxEntrySize is used, sizeCalculation ' + + 'or size must be set.'); + } + } + return size; + }; + this.#addItemSize = (index, size, status) => { + sizes[index] = size; + if (this.#maxSize) { + const maxSize = this.#maxSize - sizes[index]; + while (this.#calculatedSize > maxSize) { + this.#evict(true); + } + } + this.#calculatedSize += sizes[index]; + if (status) { + status.entrySize = size; + status.totalCalculatedSize = this.#calculatedSize; + } + }; + } + #removeItemSize = _i => { }; + #addItemSize = (_i, _s, _st) => { }; + #requireSize = (_k, _v, size, sizeCalculation) => { + if (size || sizeCalculation) { + throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache'); + } + return 0; + }; + *#indexes({ allowStale = this.allowStale } = {}) { + if (this.#size) { + for (let i = this.#tail; true;) { + if (!this.#isValidIndex(i)) { + break; + } + if (allowStale || !this.#isStale(i)) { + yield i; + } + if (i === this.#head) { + break; + } + else { + i = this.#prev[i]; + } + } + } + } + *#rindexes({ allowStale = this.allowStale } = {}) { + if (this.#size) { + for (let i = this.#head; true;) { + if (!this.#isValidIndex(i)) { + break; + } + if (allowStale || !this.#isStale(i)) { + yield i; + } + if (i === this.#tail) { + break; + } + else { + i = this.#next[i]; + } + } + } + } + #isValidIndex(index) { + return (index !== undefined && + this.#keyMap.get(this.#keyList[index]) === index); + } + /** + * Return a generator yielding `[key, value]` pairs, + * in order from most recently used to least recently used. + */ + *entries() { + for (const i of this.#indexes()) { + if (this.#valList[i] !== undefined && + this.#keyList[i] !== undefined && + !this.#isBackgroundFetch(this.#valList[i])) { + yield [this.#keyList[i], this.#valList[i]]; + } + } + } + /** + * Inverse order version of {@link LRUCache.entries} + * + * Return a generator yielding `[key, value]` pairs, + * in order from least recently used to most recently used. + */ + *rentries() { + for (const i of this.#rindexes()) { + if (this.#valList[i] !== undefined && + this.#keyList[i] !== undefined && + !this.#isBackgroundFetch(this.#valList[i])) { + yield [this.#keyList[i], this.#valList[i]]; + } + } + } + /** + * Return a generator yielding the keys in the cache, + * in order from most recently used to least recently used. + */ + *keys() { + for (const i of this.#indexes()) { + const k = this.#keyList[i]; + if (k !== undefined && + !this.#isBackgroundFetch(this.#valList[i])) { + yield k; + } + } + } + /** + * Inverse order version of {@link LRUCache.keys} + * + * Return a generator yielding the keys in the cache, + * in order from least recently used to most recently used. + */ + *rkeys() { + for (const i of this.#rindexes()) { + const k = this.#keyList[i]; + if (k !== undefined && + !this.#isBackgroundFetch(this.#valList[i])) { + yield k; + } + } + } + /** + * Return a generator yielding the values in the cache, + * in order from most recently used to least recently used. + */ + *values() { + for (const i of this.#indexes()) { + const v = this.#valList[i]; + if (v !== undefined && + !this.#isBackgroundFetch(this.#valList[i])) { + yield this.#valList[i]; + } + } + } + /** + * Inverse order version of {@link LRUCache.values} + * + * Return a generator yielding the values in the cache, + * in order from least recently used to most recently used. + */ + *rvalues() { + for (const i of this.#rindexes()) { + const v = this.#valList[i]; + if (v !== undefined && + !this.#isBackgroundFetch(this.#valList[i])) { + yield this.#valList[i]; + } + } + } + /** + * Iterating over the cache itself yields the same results as + * {@link LRUCache.entries} + */ + [Symbol.iterator]() { + return this.entries(); + } + /** + * Find a value for which the supplied fn method returns a truthy value, + * similar to Array.find(). fn is called as fn(value, key, cache). + */ + find(fn, getOptions = {}) { + for (const i of this.#indexes()) { + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) + ? v.__staleWhileFetching + : v; + if (value === undefined) + continue; + if (fn(value, this.#keyList[i], this)) { + return this.get(this.#keyList[i], getOptions); + } + } + } + /** + * Call the supplied function on each item in the cache, in order from + * most recently used to least recently used. fn is called as + * fn(value, key, cache). Does not update age or recenty of use. + * Does not iterate over stale values. + */ + forEach(fn, thisp = this) { + for (const i of this.#indexes()) { + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) + ? v.__staleWhileFetching + : v; + if (value === undefined) + continue; + fn.call(thisp, value, this.#keyList[i], this); + } + } + /** + * The same as {@link LRUCache.forEach} but items are iterated over in + * reverse order. (ie, less recently used items are iterated over first.) + */ + rforEach(fn, thisp = this) { + for (const i of this.#rindexes()) { + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) + ? v.__staleWhileFetching + : v; + if (value === undefined) + continue; + fn.call(thisp, value, this.#keyList[i], this); + } + } + /** + * Delete any stale entries. Returns true if anything was removed, + * false otherwise. + */ + purgeStale() { + let deleted = false; + for (const i of this.#rindexes({ allowStale: true })) { + if (this.#isStale(i)) { + this.delete(this.#keyList[i]); + deleted = true; + } + } + return deleted; + } + /** + * Get the extended info about a given entry, to get its value, size, and + * TTL info simultaneously. Like {@link LRUCache#dump}, but just for a + * single key. Always returns stale values, if their info is found in the + * cache, so be sure to check for expired TTLs if relevant. + */ + info(key) { + const i = this.#keyMap.get(key); + if (i === undefined) + return undefined; + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) + ? v.__staleWhileFetching + : v; + if (value === undefined) + return undefined; + const entry = { value }; + if (this.#ttls && this.#starts) { + const ttl = this.#ttls[i]; + const start = this.#starts[i]; + if (ttl && start) { + const remain = ttl - (perf.now() - start); + entry.ttl = remain; + entry.start = Date.now(); + } + } + if (this.#sizes) { + entry.size = this.#sizes[i]; + } + return entry; + } + /** + * Return an array of [key, {@link LRUCache.Entry}] tuples which can be + * passed to cache.load() + */ + dump() { + const arr = []; + for (const i of this.#indexes({ allowStale: true })) { + const key = this.#keyList[i]; + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) + ? v.__staleWhileFetching + : v; + if (value === undefined || key === undefined) + continue; + const entry = { value }; + if (this.#ttls && this.#starts) { + entry.ttl = this.#ttls[i]; + // always dump the start relative to a portable timestamp + // it's ok for this to be a bit slow, it's a rare operation. + const age = perf.now() - this.#starts[i]; + entry.start = Math.floor(Date.now() - age); + } + if (this.#sizes) { + entry.size = this.#sizes[i]; + } + arr.unshift([key, entry]); + } + return arr; + } + /** + * Reset the cache and load in the items in entries in the order listed. + * Note that the shape of the resulting cache may be different if the + * same options are not used in both caches. + */ + load(arr) { + this.clear(); + for (const [key, entry] of arr) { + if (entry.start) { + // entry.start is a portable timestamp, but we may be using + // node's performance.now(), so calculate the offset, so that + // we get the intended remaining TTL, no matter how long it's + // been on ice. + // + // it's ok for this to be a bit slow, it's a rare operation. + const age = Date.now() - entry.start; + entry.start = perf.now() - age; + } + this.set(key, entry.value, entry); + } + } + /** + * Add a value to the cache. + * + * Note: if `undefined` is specified as a value, this is an alias for + * {@link LRUCache#delete} + */ + set(k, v, setOptions = {}) { + if (v === undefined) { + this.delete(k); + return this; + } + const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions; + let { noUpdateTTL = this.noUpdateTTL } = setOptions; + const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation); + // if the item doesn't fit, don't do anything + // NB: maxEntrySize set to maxSize by default + if (this.maxEntrySize && size > this.maxEntrySize) { + if (status) { + status.set = 'miss'; + status.maxEntrySizeExceeded = true; + } + // have to delete, in case something is there already. + this.delete(k); + return this; + } + let index = this.#size === 0 ? undefined : this.#keyMap.get(k); + if (index === undefined) { + // addition + index = (this.#size === 0 + ? this.#tail + : this.#free.length !== 0 + ? this.#free.pop() + : this.#size === this.#max + ? this.#evict(false) + : this.#size); + this.#keyList[index] = k; + this.#valList[index] = v; + this.#keyMap.set(k, index); + this.#next[this.#tail] = index; + this.#prev[index] = this.#tail; + this.#tail = index; + this.#size++; + this.#addItemSize(index, size, status); + if (status) + status.set = 'add'; + noUpdateTTL = false; + } + else { + // update + this.#moveToTail(index); + const oldVal = this.#valList[index]; + if (v !== oldVal) { + if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) { + oldVal.__abortController.abort(new Error('replaced')); + const { __staleWhileFetching: s } = oldVal; + if (s !== undefined && !noDisposeOnSet) { + if (this.#hasDispose) { + this.#dispose?.(s, k, 'set'); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([s, k, 'set']); + } + } + } + else if (!noDisposeOnSet) { + if (this.#hasDispose) { + this.#dispose?.(oldVal, k, 'set'); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([oldVal, k, 'set']); + } + } + this.#removeItemSize(index); + this.#addItemSize(index, size, status); + this.#valList[index] = v; + if (status) { + status.set = 'replace'; + const oldValue = oldVal && this.#isBackgroundFetch(oldVal) + ? oldVal.__staleWhileFetching + : oldVal; + if (oldValue !== undefined) + status.oldValue = oldValue; + } + } + else if (status) { + status.set = 'update'; + } + } + if (ttl !== 0 && !this.#ttls) { + this.#initializeTTLTracking(); + } + if (this.#ttls) { + if (!noUpdateTTL) { + this.#setItemTTL(index, ttl, start); + } + if (status) + this.#statusTTL(status, index); + } + if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) { + const dt = this.#disposed; + let task; + while ((task = dt?.shift())) { + this.#disposeAfter?.(...task); + } + } + return this; + } + /** + * Evict the least recently used item, returning its value or + * `undefined` if cache is empty. + */ + pop() { + try { + while (this.#size) { + const val = this.#valList[this.#head]; + this.#evict(true); + if (this.#isBackgroundFetch(val)) { + if (val.__staleWhileFetching) { + return val.__staleWhileFetching; + } + } + else if (val !== undefined) { + return val; + } + } + } + finally { + if (this.#hasDisposeAfter && this.#disposed) { + const dt = this.#disposed; + let task; + while ((task = dt?.shift())) { + this.#disposeAfter?.(...task); + } + } + } + } + #evict(free) { + const head = this.#head; + const k = this.#keyList[head]; + const v = this.#valList[head]; + if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) { + v.__abortController.abort(new Error('evicted')); + } + else if (this.#hasDispose || this.#hasDisposeAfter) { + if (this.#hasDispose) { + this.#dispose?.(v, k, 'evict'); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([v, k, 'evict']); + } + } + this.#removeItemSize(head); + // if we aren't about to use the index, then null these out + if (free) { + this.#keyList[head] = undefined; + this.#valList[head] = undefined; + this.#free.push(head); + } + if (this.#size === 1) { + this.#head = this.#tail = 0; + this.#free.length = 0; + } + else { + this.#head = this.#next[head]; + } + this.#keyMap.delete(k); + this.#size--; + return head; + } + /** + * Check if a key is in the cache, without updating the recency of use. + * Will return false if the item is stale, even though it is technically + * in the cache. + * + * Will not update item age unless + * {@link LRUCache.OptionsBase.updateAgeOnHas} is set. + */ + has(k, hasOptions = {}) { + const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions; + const index = this.#keyMap.get(k); + if (index !== undefined) { + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v) && + v.__staleWhileFetching === undefined) { + return false; + } + if (!this.#isStale(index)) { + if (updateAgeOnHas) { + this.#updateItemAge(index); + } + if (status) { + status.has = 'hit'; + this.#statusTTL(status, index); + } + return true; + } + else if (status) { + status.has = 'stale'; + this.#statusTTL(status, index); + } + } + else if (status) { + status.has = 'miss'; + } + return false; + } + /** + * Like {@link LRUCache#get} but doesn't update recency or delete stale + * items. + * + * Returns `undefined` if the item is stale, unless + * {@link LRUCache.OptionsBase.allowStale} is set. + */ + peek(k, peekOptions = {}) { + const { allowStale = this.allowStale } = peekOptions; + const index = this.#keyMap.get(k); + if (index === undefined || + (!allowStale && this.#isStale(index))) { + return; + } + const v = this.#valList[index]; + // either stale and allowed, or forcing a refresh of non-stale value + return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + } + #backgroundFetch(k, index, options, context) { + const v = index === undefined ? undefined : this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + return v; + } + const ac = new AC(); + const { signal } = options; + // when/if our AC signals, then stop listening to theirs. + signal?.addEventListener('abort', () => ac.abort(signal.reason), { + signal: ac.signal, + }); + const fetchOpts = { + signal: ac.signal, + options, + context, + }; + const cb = (v, updateCache = false) => { + const { aborted } = ac.signal; + const ignoreAbort = options.ignoreFetchAbort && v !== undefined; + if (options.status) { + if (aborted && !updateCache) { + options.status.fetchAborted = true; + options.status.fetchError = ac.signal.reason; + if (ignoreAbort) + options.status.fetchAbortIgnored = true; + } + else { + options.status.fetchResolved = true; + } + } + if (aborted && !ignoreAbort && !updateCache) { + return fetchFail(ac.signal.reason); + } + // either we didn't abort, and are still here, or we did, and ignored + const bf = p; + if (this.#valList[index] === p) { + if (v === undefined) { + if (bf.__staleWhileFetching) { + this.#valList[index] = bf.__staleWhileFetching; + } + else { + this.delete(k); + } + } + else { + if (options.status) + options.status.fetchUpdated = true; + this.set(k, v, fetchOpts.options); + } + } + return v; + }; + const eb = (er) => { + if (options.status) { + options.status.fetchRejected = true; + options.status.fetchError = er; + } + return fetchFail(er); + }; + const fetchFail = (er) => { + const { aborted } = ac.signal; + const allowStaleAborted = aborted && options.allowStaleOnFetchAbort; + const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection; + const noDelete = allowStale || options.noDeleteOnFetchRejection; + const bf = p; + if (this.#valList[index] === p) { + // if we allow stale on fetch rejections, then we need to ensure that + // the stale value is not removed from the cache when the fetch fails. + const del = !noDelete || bf.__staleWhileFetching === undefined; + if (del) { + this.delete(k); + } + else if (!allowStaleAborted) { + // still replace the *promise* with the stale value, + // since we are done with the promise at this point. + // leave it untouched if we're still waiting for an + // aborted background fetch that hasn't yet returned. + this.#valList[index] = bf.__staleWhileFetching; + } + } + if (allowStale) { + if (options.status && bf.__staleWhileFetching !== undefined) { + options.status.returnedStale = true; + } + return bf.__staleWhileFetching; + } + else if (bf.__returned === bf) { + throw er; + } + }; + const pcall = (res, rej) => { + const fmp = this.#fetchMethod?.(k, v, fetchOpts); + if (fmp && fmp instanceof Promise) { + fmp.then(v => res(v === undefined ? undefined : v), rej); + } + // ignored, we go until we finish, regardless. + // defer check until we are actually aborting, + // so fetchMethod can override. + ac.signal.addEventListener('abort', () => { + if (!options.ignoreFetchAbort || + options.allowStaleOnFetchAbort) { + res(undefined); + // when it eventually resolves, update the cache. + if (options.allowStaleOnFetchAbort) { + res = v => cb(v, true); + } + } + }); + }; + if (options.status) + options.status.fetchDispatched = true; + const p = new Promise(pcall).then(cb, eb); + const bf = Object.assign(p, { + __abortController: ac, + __staleWhileFetching: v, + __returned: undefined, + }); + if (index === undefined) { + // internal, don't expose status. + this.set(k, bf, { ...fetchOpts.options, status: undefined }); + index = this.#keyMap.get(k); + } + else { + this.#valList[index] = bf; + } + return bf; + } + #isBackgroundFetch(p) { + if (!this.#hasFetchMethod) + return false; + const b = p; + return (!!b && + b instanceof Promise && + b.hasOwnProperty('__staleWhileFetching') && + b.__abortController instanceof AC); + } + async fetch(k, fetchOptions = {}) { + const { + // get options + allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, + // set options + ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, + // fetch exclusive options + noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions; + if (!this.#hasFetchMethod) { + if (status) + status.fetch = 'get'; + return this.get(k, { + allowStale, + updateAgeOnGet, + noDeleteOnStaleGet, + status, + }); + } + const options = { + allowStale, + updateAgeOnGet, + noDeleteOnStaleGet, + ttl, + noDisposeOnSet, + size, + sizeCalculation, + noUpdateTTL, + noDeleteOnFetchRejection, + allowStaleOnFetchRejection, + allowStaleOnFetchAbort, + ignoreFetchAbort, + status, + signal, + }; + let index = this.#keyMap.get(k); + if (index === undefined) { + if (status) + status.fetch = 'miss'; + const p = this.#backgroundFetch(k, index, options, context); + return (p.__returned = p); + } + else { + // in cache, maybe already fetching + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + const stale = allowStale && v.__staleWhileFetching !== undefined; + if (status) { + status.fetch = 'inflight'; + if (stale) + status.returnedStale = true; + } + return stale ? v.__staleWhileFetching : (v.__returned = v); + } + // if we force a refresh, that means do NOT serve the cached value, + // unless we are already in the process of refreshing the cache. + const isStale = this.#isStale(index); + if (!forceRefresh && !isStale) { + if (status) + status.fetch = 'hit'; + this.#moveToTail(index); + if (updateAgeOnGet) { + this.#updateItemAge(index); + } + if (status) + this.#statusTTL(status, index); + return v; + } + // ok, it is stale or a forced refresh, and not already fetching. + // refresh the cache. + const p = this.#backgroundFetch(k, index, options, context); + const hasStale = p.__staleWhileFetching !== undefined; + const staleVal = hasStale && allowStale; + if (status) { + status.fetch = isStale ? 'stale' : 'refresh'; + if (staleVal && isStale) + status.returnedStale = true; + } + return staleVal ? p.__staleWhileFetching : (p.__returned = p); + } + } + /** + * Return a value from the cache. Will update the recency of the cache + * entry found. + * + * If the key is not found, get() will return `undefined`. + */ + get(k, getOptions = {}) { + const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions; + const index = this.#keyMap.get(k); + if (index !== undefined) { + const value = this.#valList[index]; + const fetching = this.#isBackgroundFetch(value); + if (status) + this.#statusTTL(status, index); + if (this.#isStale(index)) { + if (status) + status.get = 'stale'; + // delete only if not an in-flight background fetch + if (!fetching) { + if (!noDeleteOnStaleGet) { + this.delete(k); + } + if (status && allowStale) + status.returnedStale = true; + return allowStale ? value : undefined; + } + else { + if (status && + allowStale && + value.__staleWhileFetching !== undefined) { + status.returnedStale = true; + } + return allowStale ? value.__staleWhileFetching : undefined; + } + } + else { + if (status) + status.get = 'hit'; + // if we're currently fetching it, we don't actually have it yet + // it's not stale, which means this isn't a staleWhileRefetching. + // If it's not stale, and fetching, AND has a __staleWhileFetching + // value, then that means the user fetched with {forceRefresh:true}, + // so it's safe to return that value. + if (fetching) { + return value.__staleWhileFetching; + } + this.#moveToTail(index); + if (updateAgeOnGet) { + this.#updateItemAge(index); + } + return value; + } + } + else if (status) { + status.get = 'miss'; + } + } + #connect(p, n) { + this.#prev[n] = p; + this.#next[p] = n; + } + #moveToTail(index) { + // if tail already, nothing to do + // if head, move head to next[index] + // else + // move next[prev[index]] to next[index] (head has no prev) + // move prev[next[index]] to prev[index] + // prev[index] = tail + // next[tail] = index + // tail = index + if (index !== this.#tail) { + if (index === this.#head) { + this.#head = this.#next[index]; + } + else { + this.#connect(this.#prev[index], this.#next[index]); + } + this.#connect(this.#tail, index); + this.#tail = index; + } + } + /** + * Deletes a key out of the cache. + * Returns true if the key was deleted, false otherwise. + */ + delete(k) { + let deleted = false; + if (this.#size !== 0) { + const index = this.#keyMap.get(k); + if (index !== undefined) { + deleted = true; + if (this.#size === 1) { + this.clear(); + } + else { + this.#removeItemSize(index); + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + v.__abortController.abort(new Error('deleted')); + } + else if (this.#hasDispose || this.#hasDisposeAfter) { + if (this.#hasDispose) { + this.#dispose?.(v, k, 'delete'); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([v, k, 'delete']); + } + } + this.#keyMap.delete(k); + this.#keyList[index] = undefined; + this.#valList[index] = undefined; + if (index === this.#tail) { + this.#tail = this.#prev[index]; + } + else if (index === this.#head) { + this.#head = this.#next[index]; + } + else { + const pi = this.#prev[index]; + this.#next[pi] = this.#next[index]; + const ni = this.#next[index]; + this.#prev[ni] = this.#prev[index]; + } + this.#size--; + this.#free.push(index); + } + } + } + if (this.#hasDisposeAfter && this.#disposed?.length) { + const dt = this.#disposed; + let task; + while ((task = dt?.shift())) { + this.#disposeAfter?.(...task); + } + } + return deleted; + } + /** + * Clear the cache entirely, throwing away all values. + */ + clear() { + for (const index of this.#rindexes({ allowStale: true })) { + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + v.__abortController.abort(new Error('deleted')); + } + else { + const k = this.#keyList[index]; + if (this.#hasDispose) { + this.#dispose?.(v, k, 'delete'); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([v, k, 'delete']); + } + } + } + this.#keyMap.clear(); + this.#valList.fill(undefined); + this.#keyList.fill(undefined); + if (this.#ttls && this.#starts) { + this.#ttls.fill(0); + this.#starts.fill(0); + } + if (this.#sizes) { + this.#sizes.fill(0); + } + this.#head = 0; + this.#tail = 0; + this.#free.length = 0; + this.#calculatedSize = 0; + this.#size = 0; + if (this.#hasDisposeAfter && this.#disposed) { + const dt = this.#disposed; + let task; + while ((task = dt?.shift())) { + this.#disposeAfter?.(...task); + } + } + } +} + +function createCache(max = 500) { + return new LRUCache({ max }); +} + +function isImportUsed(local, sfc) { + return resolveTemplateUsedIdentifiers(sfc).has(local); +} +const templateAnalysisCache = createCache(); +function resolveTemplateVModelIdentifiers(sfc) { + return resolveTemplateAnalysisResult(sfc, false).vModelIds; +} +function resolveTemplateUsedIdentifiers(sfc) { + return resolveTemplateAnalysisResult(sfc).usedIds; +} +function resolveTemplateAnalysisResult(sfc, collectUsedIds = true) { + const { content, ast } = sfc.template; + const cached = templateAnalysisCache.get(content); + if (cached && (!collectUsedIds || cached.usedIds)) { + return cached; + } + const ids = collectUsedIds ? /* @__PURE__ */ new Set() : void 0; + const vModelIds = /* @__PURE__ */ new Set(); + ast.children.forEach(walk); + function walk(node) { + var _a; + switch (node.type) { + case 1: + let tag = node.tag; + if (tag.includes(".")) tag = tag.split(".")[0].trim(); + if (!CompilerDOM.parserOptions.isNativeTag(tag) && !CompilerDOM.parserOptions.isBuiltInComponent(tag)) { + if (ids) { + ids.add(shared.camelize(tag)); + ids.add(shared.capitalize(shared.camelize(tag))); + } + } + for (let i = 0; i < node.props.length; i++) { + const prop = node.props[i]; + if (prop.type === 7) { + if (ids) { + if (!shared.isBuiltInDirective(prop.name)) { + ids.add(`v${shared.capitalize(shared.camelize(prop.name))}`); + } + } + if (prop.name === "model") { + const exp = prop.exp; + if (exp && exp.type === 4) { + const expString = exp.content.trim(); + if (CompilerDOM.isSimpleIdentifier(expString) && expString !== "undefined") { + vModelIds.add(expString); + } + } + } + if (ids && prop.arg && !prop.arg.isStatic) { + extractIdentifiers(ids, prop.arg); + } + if (ids) { + if (prop.name === "for") { + extractIdentifiers(ids, prop.forParseResult.source); + } else if (prop.exp) { + extractIdentifiers(ids, prop.exp); + } else if (prop.name === "bind" && !prop.exp) { + ids.add(shared.camelize(prop.arg.content)); + } + } + } + if (ids && prop.type === 6 && prop.name === "ref" && ((_a = prop.value) == null ? void 0 : _a.content)) { + ids.add(prop.value.content); + } + } + node.children.forEach(walk); + break; + case 5: + if (ids) extractIdentifiers(ids, node.content); + break; + } + } + const result = { usedIds: ids, vModelIds }; + templateAnalysisCache.set(content, result); + return result; +} +function extractIdentifiers(ids, node) { + if (node.ast) { + CompilerDOM.walkIdentifiers(node.ast, (n) => ids.add(n.name)); + } else if (node.ast === null) { + ids.add(node.content); + } +} + +const DEFAULT_FILENAME = "anonymous.vue"; +const parseCache$1 = createCache(); +function parse$1(source, options = {}) { + var _a; + const sourceKey = shared.genCacheKey(source, { + ...options, + compiler: { parse: (_a = options.compiler) == null ? void 0 : _a.parse } + }); + const cache = parseCache$1.get(sourceKey); + if (cache) { + return cache; + } + const { + sourceMap = true, + filename = DEFAULT_FILENAME, + sourceRoot = "", + pad = false, + ignoreEmpty = true, + compiler = CompilerDOM__namespace, + templateParseOptions = {} + } = options; + const descriptor = { + filename, + source, + template: null, + script: null, + scriptSetup: null, + styles: [], + customBlocks: [], + cssVars: [], + slotted: false, + shouldForceReload: (prevImports) => hmrShouldReload(prevImports, descriptor) + }; + const errors = []; + const ast = compiler.parse(source, { + parseMode: "sfc", + prefixIdentifiers: true, + ...templateParseOptions, + onError: (e) => { + errors.push(e); + } + }); + ast.children.forEach((node) => { + if (node.type !== 1) { + return; + } + if (ignoreEmpty && node.tag !== "template" && isEmpty(node) && !hasSrc(node)) { + return; + } + switch (node.tag) { + case "template": + if (!descriptor.template) { + const templateBlock = descriptor.template = createBlock( + node, + source, + false + ); + if (!templateBlock.attrs.src) { + templateBlock.ast = compilerCore.createRoot(node.children, source); + } + if (templateBlock.attrs.functional) { + const err = new SyntaxError( + `<template functional> is no longer supported in Vue 3, since functional components no longer have significant performance difference from stateful ones. Just use a normal <template> instead.` + ); + err.loc = node.props.find( + (p) => p.type === 6 && p.name === "functional" + ).loc; + errors.push(err); + } + } else { + errors.push(createDuplicateBlockError(node)); + } + break; + case "script": + const scriptBlock = createBlock(node, source, pad); + const isSetup = !!scriptBlock.attrs.setup; + if (isSetup && !descriptor.scriptSetup) { + descriptor.scriptSetup = scriptBlock; + break; + } + if (!isSetup && !descriptor.script) { + descriptor.script = scriptBlock; + break; + } + errors.push(createDuplicateBlockError(node, isSetup)); + break; + case "style": + const styleBlock = createBlock(node, source, pad); + if (styleBlock.attrs.vars) { + errors.push( + new SyntaxError( + `<style vars> has been replaced by a new proposal: https://github.com/vuejs/rfcs/pull/231` + ) + ); + } + descriptor.styles.push(styleBlock); + break; + default: + descriptor.customBlocks.push(createBlock(node, source, pad)); + break; + } + }); + if (!descriptor.template && !descriptor.script && !descriptor.scriptSetup) { + errors.push( + new SyntaxError( + `At least one <template> or <script> is required in a single file component. ${descriptor.filename}` + ) + ); + } + if (descriptor.scriptSetup) { + if (descriptor.scriptSetup.src) { + errors.push( + new SyntaxError( + `<script setup> cannot use the "src" attribute because its syntax will be ambiguous outside of the component.` + ) + ); + descriptor.scriptSetup = null; + } + if (descriptor.script && descriptor.script.src) { + errors.push( + new SyntaxError( + `<script> cannot use the "src" attribute when <script setup> is also present because they must be processed together.` + ) + ); + descriptor.script = null; + } + } + let templateColumnOffset = 0; + if (descriptor.template && (descriptor.template.lang === "pug" || descriptor.template.lang === "jade")) { + [descriptor.template.content, templateColumnOffset] = dedent( + descriptor.template.content + ); + } + if (sourceMap) { + const genMap = (block, columnOffset = 0) => { + if (block && !block.src) { + block.map = generateSourceMap( + filename, + source, + block.content, + sourceRoot, + !pad || block.type === "template" ? block.loc.start.line - 1 : 0, + columnOffset + ); + } + }; + genMap(descriptor.template, templateColumnOffset); + genMap(descriptor.script); + descriptor.styles.forEach((s) => genMap(s)); + descriptor.customBlocks.forEach((s) => genMap(s)); + } + descriptor.cssVars = parseCssVars(descriptor); + const slottedRE = /(?:::v-|:)slotted\(/; + descriptor.slotted = descriptor.styles.some( + (s) => s.scoped && slottedRE.test(s.content) + ); + const result = { + descriptor, + errors + }; + parseCache$1.set(sourceKey, result); + return result; +} +function createDuplicateBlockError(node, isScriptSetup = false) { + const err = new SyntaxError( + `Single file component can contain only one <${node.tag}${isScriptSetup ? ` setup` : ``}> element` + ); + err.loc = node.loc; + return err; +} +function createBlock(node, source, pad) { + const type = node.tag; + const loc = node.innerLoc; + const attrs = {}; + const block = { + type, + content: source.slice(loc.start.offset, loc.end.offset), + loc, + attrs + }; + if (pad) { + block.content = padContent(source, block, pad) + block.content; + } + node.props.forEach((p) => { + if (p.type === 6) { + const name = p.name; + attrs[name] = p.value ? p.value.content || true : true; + if (name === "lang") { + block.lang = p.value && p.value.content; + } else if (name === "src") { + block.src = p.value && p.value.content; + } else if (type === "style") { + if (name === "scoped") { + block.scoped = true; + } else if (name === "module") { + block.module = attrs[name]; + } + } else if (type === "script" && name === "setup") { + block.setup = attrs.setup; + } + } + }); + return block; +} +const splitRE = /\r?\n/g; +const emptyRE = /^(?:\/\/)?\s*$/; +const replaceRE = /./g; +function generateSourceMap(filename, source, generated, sourceRoot, lineOffset, columnOffset) { + const map = new sourceMapJs.SourceMapGenerator({ + file: filename.replace(/\\/g, "/"), + sourceRoot: sourceRoot.replace(/\\/g, "/") + }); + map.setSourceContent(filename, source); + map._sources.add(filename); + generated.split(splitRE).forEach((line, index) => { + if (!emptyRE.test(line)) { + const originalLine = index + 1 + lineOffset; + const generatedLine = index + 1; + for (let i = 0; i < line.length; i++) { + if (!/\s/.test(line[i])) { + map._mappings.add({ + originalLine, + originalColumn: i + columnOffset, + generatedLine, + generatedColumn: i, + source: filename, + name: null + }); + } + } + } + }); + return map.toJSON(); +} +function padContent(content, block, pad) { + content = content.slice(0, block.loc.start.offset); + if (pad === "space") { + return content.replace(replaceRE, " "); + } else { + const offset = content.split(splitRE).length; + const padChar = block.type === "script" && !block.lang ? "//\n" : "\n"; + return Array(offset).join(padChar); + } +} +function hasSrc(node) { + return node.props.some((p) => { + if (p.type !== 6) { + return false; + } + return p.name === "src"; + }); +} +function isEmpty(node) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (child.type !== 2 || child.content.trim() !== "") { + return false; + } + } + return true; +} +function hmrShouldReload(prevImports, next) { + if (!next.scriptSetup || next.scriptSetup.lang !== "ts" && next.scriptSetup.lang !== "tsx") { + return false; + } + for (const key in prevImports) { + if (!prevImports[key].isUsedInTemplate && isImportUsed(key, next)) { + return true; + } + } + return false; +} +function dedent(s) { + const lines = s.split("\n"); + const minIndent = lines.reduce(function(minIndent2, line) { + var _a, _b; + if (line.trim() === "") { + return minIndent2; + } + const indent = ((_b = (_a = line.match(/^\s*/)) == null ? void 0 : _a[0]) == null ? void 0 : _b.length) || 0; + return Math.min(indent, minIndent2); + }, Infinity); + if (minIndent === 0) { + return [s, minIndent]; + } + return [ + lines.map(function(line) { + return line.slice(minIndent); + }).join("\n"), + minIndent + ]; +} + +function isRelativeUrl(url) { + const firstChar = url.charAt(0); + return firstChar === "." || firstChar === "~" || firstChar === "@"; +} +const externalRE = /^(?:https?:)?\/\//; +function isExternalUrl(url) { + return externalRE.test(url); +} +const dataUrlRE = /^\s*data:/i; +function isDataUrl(url) { + return dataUrlRE.test(url); +} +function parseUrl(url) { + const firstChar = url.charAt(0); + if (firstChar === "~") { + const secondChar = url.charAt(1); + url = url.slice(secondChar === "/" ? 2 : 1); + } + return parseUriParts(url); +} +function parseUriParts(urlString) { + return url.parse(shared.isString(urlString) ? urlString : "", false, true); +} + +const defaultAssetUrlOptions = { + base: null, + includeAbsolute: false, + tags: { + video: ["src", "poster"], + source: ["src"], + img: ["src"], + image: ["xlink:href", "href"], + use: ["xlink:href", "href"] + } +}; +const normalizeOptions = (options) => { + if (Object.keys(options).some((key) => shared.isArray(options[key]))) { + return { + ...defaultAssetUrlOptions, + tags: options + }; + } + return { + ...defaultAssetUrlOptions, + ...options + }; +}; +const createAssetUrlTransformWithOptions = (options) => { + return (node, context) => transformAssetUrl(node, context, options); +}; +const transformAssetUrl = (node, context, options = defaultAssetUrlOptions) => { + if (node.type === 1) { + if (!node.props.length) { + return; + } + const tags = options.tags || defaultAssetUrlOptions.tags; + const attrs = tags[node.tag]; + const wildCardAttrs = tags["*"]; + if (!attrs && !wildCardAttrs) { + return; + } + const assetAttrs = (attrs || []).concat(wildCardAttrs || []); + node.props.forEach((attr, index) => { + if (attr.type !== 6 || !assetAttrs.includes(attr.name) || !attr.value || isExternalUrl(attr.value.content) || isDataUrl(attr.value.content) || attr.value.content[0] === "#" || !options.includeAbsolute && !isRelativeUrl(attr.value.content)) { + return; + } + const url = parseUrl(attr.value.content); + if (options.base && attr.value.content[0] === ".") { + const base = parseUrl(options.base); + const protocol = base.protocol || ""; + const host = base.host ? protocol + "//" + base.host : ""; + const basePath = base.path || "/"; + attr.value.content = host + (path$1.posix || path$1).join(basePath, url.path + (url.hash || "")); + return; + } + const exp = getImportsExpressionExp(url.path, url.hash, attr.loc, context); + node.props[index] = { + type: 7, + name: "bind", + arg: compilerCore.createSimpleExpression(attr.name, true, attr.loc), + exp, + modifiers: [], + loc: attr.loc + }; + }); + } +}; +function getImportsExpressionExp(path2, hash, loc, context) { + if (path2) { + let name; + let exp; + const existingIndex = context.imports.findIndex((i) => i.path === path2); + if (existingIndex > -1) { + name = `_imports_${existingIndex}`; + exp = context.imports[existingIndex].exp; + } else { + name = `_imports_${context.imports.length}`; + exp = compilerCore.createSimpleExpression( + name, + false, + loc, + 3 + ); + context.imports.push({ + exp, + path: decodeURIComponent(path2) + }); + } + if (!hash) { + return exp; + } + const hashExp = `${name} + '${hash}'`; + const finalExp = compilerCore.createSimpleExpression( + hashExp, + false, + loc, + 3 + ); + if (!context.hoistStatic) { + return finalExp; + } + const existingHoistIndex = context.hoists.findIndex((h) => { + return h && h.type === 4 && !h.isStatic && h.content === hashExp; + }); + if (existingHoistIndex > -1) { + return compilerCore.createSimpleExpression( + `_hoisted_${existingHoistIndex + 1}`, + false, + loc, + 3 + ); + } + return context.hoist(finalExp); + } else { + return compilerCore.createSimpleExpression(`''`, false, loc, 3); + } +} + +const srcsetTags = ["img", "source"]; +const escapedSpaceCharacters = /( |\\t|\\n|\\f|\\r)+/g; +const createSrcsetTransformWithOptions = (options) => { + return (node, context) => transformSrcset(node, context, options); +}; +const transformSrcset = (node, context, options = defaultAssetUrlOptions) => { + if (node.type === 1) { + if (srcsetTags.includes(node.tag) && node.props.length) { + node.props.forEach((attr, index) => { + if (attr.name === "srcset" && attr.type === 6) { + if (!attr.value) return; + const value = attr.value.content; + if (!value) return; + const imageCandidates = value.split(",").map((s) => { + const [url, descriptor] = s.replace(escapedSpaceCharacters, " ").trim().split(" ", 2); + return { url, descriptor }; + }); + for (let i = 0; i < imageCandidates.length; i++) { + const { url } = imageCandidates[i]; + if (isDataUrl(url)) { + imageCandidates[i + 1].url = url + "," + imageCandidates[i + 1].url; + imageCandidates.splice(i, 1); + } + } + const shouldProcessUrl = (url) => { + return url && !isExternalUrl(url) && !isDataUrl(url) && (options.includeAbsolute || isRelativeUrl(url)); + }; + if (!imageCandidates.some(({ url }) => shouldProcessUrl(url))) { + return; + } + if (options.base) { + const base = options.base; + const set = []; + let needImportTransform = false; + imageCandidates.forEach((candidate) => { + let { url, descriptor } = candidate; + descriptor = descriptor ? ` ${descriptor}` : ``; + if (url[0] === ".") { + candidate.url = (path$1.posix || path$1).join(base, url); + set.push(candidate.url + descriptor); + } else if (shouldProcessUrl(url)) { + needImportTransform = true; + } else { + set.push(url + descriptor); + } + }); + if (!needImportTransform) { + attr.value.content = set.join(", "); + return; + } + } + const compoundExpression = compilerCore.createCompoundExpression([], attr.loc); + imageCandidates.forEach(({ url, descriptor }, index2) => { + if (shouldProcessUrl(url)) { + const { path: path2 } = parseUrl(url); + let exp2; + if (path2) { + const existingImportsIndex = context.imports.findIndex( + (i) => i.path === path2 + ); + if (existingImportsIndex > -1) { + exp2 = compilerCore.createSimpleExpression( + `_imports_${existingImportsIndex}`, + false, + attr.loc, + 3 + ); + } else { + exp2 = compilerCore.createSimpleExpression( + `_imports_${context.imports.length}`, + false, + attr.loc, + 3 + ); + context.imports.push({ exp: exp2, path: path2 }); + } + compoundExpression.children.push(exp2); + } + } else { + const exp2 = compilerCore.createSimpleExpression( + `"${url}"`, + false, + attr.loc, + 3 + ); + compoundExpression.children.push(exp2); + } + const isNotLast = imageCandidates.length - 1 > index2; + if (descriptor && isNotLast) { + compoundExpression.children.push(` + ' ${descriptor}, ' + `); + } else if (descriptor) { + compoundExpression.children.push(` + ' ${descriptor}'`); + } else if (isNotLast) { + compoundExpression.children.push(` + ', ' + `); + } + }); + let exp = compoundExpression; + if (context.hoistStatic) { + exp = context.hoist(compoundExpression); + exp.constType = 3; + } + node.props[index] = { + type: 7, + name: "bind", + arg: compilerCore.createSimpleExpression("srcset", true, attr.loc), + exp, + modifiers: [], + loc: attr.loc + }; + } + }); + } + } +}; + +function commonjsRequire(path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} + +var consolidate$2 = {exports: {}}; + +var hasRequiredConsolidate$1; + +function requireConsolidate$1 () { + if (hasRequiredConsolidate$1) return consolidate$2.exports; + hasRequiredConsolidate$1 = 1; + (function (module, exports$1) { + /* + * Engines which do not support caching of their file contents + * should use the `read()` function defined in consolidate.js + * On top of this, when an engine compiles to a `Function`, + * these functions should either be cached within consolidate.js + * or the engine itself via `options.cache`. This will allow + * users and frameworks to pass `options.cache = true` for + * `NODE_ENV=production`, however edit the file(s) without + * re-loading the application in development. + */ + + /** + * Module dependencies. + */ + + var fs = require$$0; + var path = path$1; + var util = require$$2; + + var join = path.join; + var resolve = path.resolve; + var extname = path.extname; + var dirname = path.dirname; + var isAbsolute = path.isAbsolute; + + var readCache = {}; + + /** + * Require cache. + */ + + var cacheStore = {}; + + /** + * Require cache. + */ + + var requires = {}; + + /** + * Clear the cache. + * + * @api public + */ + + exports$1.clearCache = function() { + readCache = {}; + cacheStore = {}; + }; + + /** + * Conditionally cache `compiled` template based + * on the `options` filename and `.cache` boolean. + * + * @param {Object} options + * @param {Function} compiled + * @return {Function} + * @api private + */ + + function cache(options, compiled) { + // cachable + if (compiled && options.filename && options.cache) { + delete readCache[options.filename]; + cacheStore[options.filename] = compiled; + return compiled; + } + + // check cache + if (options.filename && options.cache) { + return cacheStore[options.filename]; + } + + return compiled; + } + + /** + * Read `path` with `options` with + * callback `(err, str)`. When `options.cache` + * is true the template string will be cached. + * + * @param {String} options + * @param {Function} cb + * @api private + */ + + function read(path, options, cb) { + var str = readCache[path]; + var cached = options.cache && str && typeof str === 'string'; + + // cached (only if cached is a string and not a compiled template function) + if (cached) return cb(null, str); + + // read + fs.readFile(path, 'utf8', function(err, str) { + if (err) return cb(err); + // remove extraneous utf8 BOM marker + str = str.replace(/^\uFEFF/, ''); + if (options.cache) readCache[path] = str; + cb(null, str); + }); + } + + /** + * Read `path` with `options` with + * callback `(err, str)`. When `options.cache` + * is true the partial string will be cached. + * + * @param {String} options + * @param {Function} fn + * @api private + */ + + function readPartials(path, options, cb) { + if (!options.partials) return cb(); + var keys = Object.keys(options.partials); + var partials = {}; + + function next(index) { + if (index === keys.length) return cb(null, partials); + var key = keys[index]; + var partialPath = options.partials[key]; + + if (partialPath === undefined || partialPath === null || partialPath === false) { + return next(++index); + } + + var file; + if (isAbsolute(partialPath)) { + if (extname(partialPath) !== '') { + file = partialPath; + } else { + file = join(partialPath + extname(path)); + } + } else { + file = join(dirname(path), partialPath + extname(path)); + } + + read(file, options, function(err, str) { + if (err) return cb(err); + partials[key] = str; + next(++index); + }); + } + + next(0); + } + + /** + * promisify + */ + function promisify(cb, fn) { + return new Promise(function(resolve, reject) { + cb = cb || function(err, html) { + if (err) { + return reject(err); + } + resolve(html); + }; + fn(cb); + }); + } + + /** + * fromStringRenderer + */ + + function fromStringRenderer(name) { + return function(path, options, cb) { + options.filename = path; + + return promisify(cb, function(cb) { + readPartials(path, options, function(err, partials) { + var extend = (requires.extend || (requires.extend = require$$2._extend)); + var opts = extend({}, options); + opts.partials = partials; + if (err) return cb(err); + if (cache(opts)) { + exports$1[name].render('', opts, cb); + } else { + read(path, opts, function(err, str) { + if (err) return cb(err); + exports$1[name].render(str, opts, cb); + }); + } + }); + }); + }; + } + + /** + * velocity support. + */ + + exports$1.velocityjs = fromStringRenderer('velocityjs'); + + /** + * velocity string support. + */ + + exports$1.velocityjs.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.velocityjs || (requires.velocityjs = require('velocityjs')); + try { + options.locals = options; + cb(null, engine.render(str, options).trimLeft()); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Liquid support. + */ + + exports$1.liquid = fromStringRenderer('liquid'); + + /** + * Liquid string support. + */ + + /** + * Note that in order to get filters and custom tags we've had to push + * all user-defined locals down into @locals. However, just to make things + * backwards-compatible, any property of `options` that is left after + * processing and removing `locals`, `meta`, `filters`, `customTags` and + * `includeDir` will also become a local. + */ + + function _renderTinyliquid(engine, str, options, cb) { + var context = engine.newContext(); + var k; + + /** + * Note that there's a bug in the library that doesn't allow us to pass + * the locals to newContext(), hence looping through the keys: + */ + + if (options.locals) { + for (k in options.locals) { + context.setLocals(k, options.locals[k]); + } + delete options.locals; + } + + if (options.meta) { + context.setLocals('page', options.meta); + delete options.meta; + } + + /** + * Add any defined filters: + */ + + if (options.filters) { + for (k in options.filters) { + context.setFilter(k, options.filters[k]); + } + delete options.filters; + } + + /** + * Set up a callback for the include directory: + */ + + var includeDir = options.includeDir || process.cwd(); + + context.onInclude(function(name, callback) { + var extname = path.extname(name) ? '' : '.liquid'; + var filename = path.resolve(includeDir, name + extname); + + fs.readFile(filename, {encoding: 'utf8'}, function(err, data) { + if (err) return callback(err); + callback(null, engine.parse(data)); + }); + }); + delete options.includeDir; + + /** + * The custom tag functions need to have their results pushed back + * through the parser, so set up a shim before calling the provided + * callback: + */ + + var compileOptions = { + customTags: {} + }; + + if (options.customTags) { + var tagFunctions = options.customTags; + + for (k in options.customTags) { + /*Tell jshint there's no problem with having this function in the loop */ + /*jshint -W083 */ + compileOptions.customTags[k] = function(context, name, body) { + var tpl = tagFunctions[name](body.trim()); + context.astStack.push(engine.parse(tpl)); + }; + /*jshint +W083 */ + } + delete options.customTags; + } + + /** + * Now anything left in `options` becomes a local: + */ + + for (k in options) { + context.setLocals(k, options[k]); + } + + /** + * Finally, execute the template: + */ + + var tmpl = cache(context) || cache(context, engine.compile(str, compileOptions)); + tmpl(context, cb); + } + + exports$1.liquid.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.liquid; + var Liquid; + + try { + // set up tinyliquid engine + engine = requires.liquid = require('tinyliquid'); + + // use tinyliquid engine + _renderTinyliquid(engine, str, options, cb); + + return; + + } catch (err) { + + // set up liquid-node engine + try { + Liquid = requires.liquid = require('liquid-node'); + engine = new Liquid.Engine(); + } catch (err) { + throw err; + } + + } + + // use liquid-node engine + try { + var locals = options.locals || {}; + + if (options.meta) { + locals.pages = options.meta; + delete options.meta; + } + + /** + * Add any defined filters: + */ + + if (options.filters) { + engine.registerFilters(options.filters); + delete options.filters; + } + + /** + * Set up a callback for the include directory: + */ + + var includeDir = options.includeDir || process.cwd(); + engine.fileSystem = new Liquid.LocalFileSystem(includeDir, 'liquid'); + delete options.includeDir; + + /** + * The custom tag functions need to have their results pushed back + * through the parser, so set up a shim before calling the provided + * callback: + */ + + if (options.customTags) { + var tagFunctions = options.customTags; + + for (k in options.customTags) { + engine.registerTag(k, tagFunctions[k]); + } + delete options.customTags; + } + + /** + * Now anything left in `options` becomes a local: + */ + + for (var k in options) { + locals[k] = options[k]; + } + + /** + * Finally, execute the template: + */ + + return engine + .parseAndRender(str, locals) + .nodeify(function(err, result) { + if (err) { + throw new Error(err); + } else { + return cb(null, result); + } + }); + + } catch (err) { + cb(err); + } + }); + }; + + /** + * Jade support. + */ + + exports$1.jade = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.jade; + if (!engine) { + try { + engine = requires.jade = require('jade'); + } catch (err) { + try { + engine = requires.jade = require('then-jade'); + } catch (otherError) { + throw err; + } + } + } + + try { + var tmpl = cache(options) || cache(options, engine.compileFile(path, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Jade string support. + */ + + exports$1.jade.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.jade; + if (!engine) { + try { + engine = requires.jade = require('jade'); + } catch (err) { + try { + engine = requires.jade = require('then-jade'); + } catch (otherError) { + throw err; + } + } + } + + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Dust support. + */ + + exports$1.dust = fromStringRenderer('dust'); + + /** + * Dust string support. + */ + + exports$1.dust.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.dust; + if (!engine) { + try { + engine = requires.dust = require('dust'); + } catch (err) { + try { + engine = requires.dust = require('dustjs-helpers'); + } catch (err) { + engine = requires.dust = require('dustjs-linkedin'); + } + } + } + + var ext = 'dust'; + var views = '.'; + + if (options) { + if (options.ext) ext = options.ext; + if (options.views) views = options.views; + if (options.settings && options.settings.views) views = options.settings.views; + } + if (!options || (options && !options.cache)) engine.cache = {}; + + engine.onLoad = function(path, callback) { + if (extname(path) === '') path += '.' + ext; + if (path[0] !== '/') path = views + '/' + path; + read(path, options, callback); + }; + + try { + var templateName; + if (options.filename) { + templateName = options.filename.replace(new RegExp('^' + views + '/'), '').replace(new RegExp('\\.' + ext), ''); + } + + var tmpl = cache(options) || cache(options, engine.compileFn(str, templateName)); + tmpl(options, cb); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Swig support. + */ + + exports$1.swig = fromStringRenderer('swig'); + + /** + * Swig string support. + */ + + exports$1.swig.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.swig; + if (!engine) { + try { + engine = requires.swig = require('swig'); + } catch (err) { + try { + engine = requires.swig = require('swig-templates'); + } catch (otherError) { + throw err; + } + } + } + + try { + if (options.cache === true) options.cache = 'memory'; + engine.setDefaults({ cache: options.cache }); + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Razor support. + */ + + exports$1.razor = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.razor; + if (!engine) { + try { + engine = requires.razor = require('razor-tmpl'); + + } catch (err) { + + throw err; + + } + } + try { + + var tmpl = cache(options) || cache(options, (locals) => { + console.log('Rendering razor file', path); + return engine.renderFileSync(path, locals); + }); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * razor string support. + */ + + exports$1.razor.render = function(str, options, cb) { + return promisify(cb, function(cb) { + + try { + var engine = requires.razor = require('razor-tmpl'); + } catch (err) { + throw err; + } + + try { + var tf = engine.compile(str); + var tmpl = cache(options) || cache(options, tf); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Atpl support. + */ + + exports$1.atpl = fromStringRenderer('atpl'); + + /** + * Atpl string support. + */ + + exports$1.atpl.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.atpl || (requires.atpl = require('atpl')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Liquor support, + */ + + exports$1.liquor = fromStringRenderer('liquor'); + + /** + * Liquor string support. + */ + + exports$1.liquor.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.liquor || (requires.liquor = require('liquor')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Twig support. + */ + + exports$1.twig = fromStringRenderer('twig'); + + /** + * Twig string support. + */ + + exports$1.twig.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.twig || (requires.twig = require('twig').twig); + var templateData = { + data: str, + allowInlineIncludes: options.allowInlineIncludes, + namespaces: options.namespaces, + path: options.path + }; + try { + var tmpl = cache(templateData) || cache(templateData, engine(templateData)); + cb(null, tmpl.render(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * EJS support. + */ + + exports$1.ejs = fromStringRenderer('ejs'); + + /** + * EJS string support. + */ + + exports$1.ejs.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.ejs || (requires.ejs = require('ejs')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Eco support. + */ + + exports$1.eco = fromStringRenderer('eco'); + + /** + * Eco string support. + */ + + exports$1.eco.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.eco || (requires.eco = require('eco')); + try { + cb(null, engine.render(str, options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Jazz support. + */ + + exports$1.jazz = fromStringRenderer('jazz'); + + /** + * Jazz string support. + */ + + exports$1.jazz.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.jazz || (requires.jazz = require('jazz')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + tmpl.eval(options, function(str) { + cb(null, str); + }); + } catch (err) { + cb(err); + } + }); + }; + + /** + * JQTPL support. + */ + + exports$1.jqtpl = fromStringRenderer('jqtpl'); + + /** + * JQTPL string support. + */ + + exports$1.jqtpl.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.jqtpl || (requires.jqtpl = require('jqtpl')); + try { + engine.template(str, str); + cb(null, engine.tmpl(str, options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Haml support. + */ + + exports$1.haml = fromStringRenderer('haml'); + + /** + * Haml string support. + */ + + exports$1.haml.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.haml || (requires.haml = require('hamljs')); + try { + options.locals = options; + cb(null, engine.render(str, options).trimLeft()); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Hamlet support. + */ + + exports$1.hamlet = fromStringRenderer('hamlet'); + + /** + * Hamlet string support. + */ + + exports$1.hamlet.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.hamlet || (requires.hamlet = require('hamlet')); + try { + options.locals = options; + cb(null, engine.render(str, options).trimLeft()); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Whiskers support. + */ + + exports$1.whiskers = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.whiskers || (requires.whiskers = require('whiskers')); + engine.__express(path, options, cb); + }); + }; + + /** + * Whiskers string support. + */ + + exports$1.whiskers.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.whiskers || (requires.whiskers = require('whiskers')); + try { + cb(null, engine.render(str, options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Coffee-HAML support. + */ + + exports$1['haml-coffee'] = fromStringRenderer('haml-coffee'); + + /** + * Coffee-HAML string support. + */ + + exports$1['haml-coffee'].render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires['haml-coffee'] || (requires['haml-coffee'] = require('haml-coffee')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Hogan support. + */ + + exports$1.hogan = fromStringRenderer('hogan'); + + /** + * Hogan string support. + */ + + exports$1.hogan.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.hogan || (requires.hogan = require('hogan.js')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl.render(options, options.partials)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * templayed.js support. + */ + + exports$1.templayed = fromStringRenderer('templayed'); + + /** + * templayed.js string support. + */ + + exports$1.templayed.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.templayed || (requires.templayed = require('templayed')); + try { + var tmpl = cache(options) || cache(options, engine(str)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Handlebars support. + */ + + exports$1.handlebars = fromStringRenderer('handlebars'); + + /** + * Handlebars string support. + */ + + exports$1.handlebars.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.handlebars || (requires.handlebars = require('handlebars')); + try { + for (var partial in options.partials) { + engine.registerPartial(partial, options.partials[partial]); + } + for (var helper in options.helpers) { + engine.registerHelper(helper, options.helpers[helper]); + } + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Underscore support. + */ + + exports$1.underscore = fromStringRenderer('underscore'); + + /** + * Underscore string support. + */ + + exports$1.underscore.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.underscore || (requires.underscore = require('underscore')); + try { + const partials = {}; + for (var partial in options.partials) { + partials[partial] = engine.template(options.partials[partial]); + } + options.partials = partials; + var tmpl = cache(options) || cache(options, engine.template(str, null, options)); + cb(null, tmpl(options).replace(/\n$/, '')); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Lodash support. + */ + + exports$1.lodash = fromStringRenderer('lodash'); + + /** + * Lodash string support. + */ + + exports$1.lodash.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.lodash || (requires.lodash = require('lodash')); + try { + var tmpl = cache(options) || cache(options, engine.template(str, options)); + cb(null, tmpl(options).replace(/\n$/, '')); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Pug support. (formerly Jade) + */ + + exports$1.pug = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.pug; + if (!engine) { + try { + engine = requires.pug = require('pug'); + } catch (err) { + try { + engine = requires.pug = require('then-pug'); + } catch (otherError) { + throw err; + } + } + } + + try { + var tmpl = cache(options) || cache(options, engine.compileFile(path, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Pug string support. + */ + + exports$1.pug.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.pug; + if (!engine) { + try { + engine = requires.pug = require('pug'); + } catch (err) { + try { + engine = requires.pug = require('then-pug'); + } catch (otherError) { + throw err; + } + } + } + + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * QEJS support. + */ + + exports$1.qejs = fromStringRenderer('qejs'); + + /** + * QEJS string support. + */ + + exports$1.qejs.render = function(str, options, cb) { + return promisify(cb, function(cb) { + try { + var engine = requires.qejs || (requires.qejs = require('qejs')); + engine.render(str, options).then(function(result) { + cb(null, result); + }, function(err) { + cb(err); + }).done(); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Walrus support. + */ + + exports$1.walrus = fromStringRenderer('walrus'); + + /** + * Walrus string support. + */ + + exports$1.walrus.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.walrus || (requires.walrus = require('walrus')); + try { + var tmpl = cache(options) || cache(options, engine.parse(str)); + cb(null, tmpl.compile(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Mustache support. + */ + + exports$1.mustache = fromStringRenderer('mustache'); + + /** + * Mustache string support. + */ + + exports$1.mustache.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.mustache || (requires.mustache = require('mustache')); + try { + cb(null, engine.render(str, options, options.partials)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Just support. + */ + + exports$1.just = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.just; + if (!engine) { + var JUST = require('just'); + engine = requires.just = new JUST(); + } + engine.configure({ useCache: options.cache }); + engine.render(path, options, cb); + }); + }; + + /** + * Just string support. + */ + + exports$1.just.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var JUST = require('just'); + var engine = new JUST({ root: { page: str }}); + engine.render('page', options, cb); + }); + }; + + /** + * ECT support. + */ + + exports$1.ect = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.ect; + if (!engine) { + var ECT = require('ect'); + engine = requires.ect = new ECT(options); + } + engine.configure({ cache: options.cache }); + engine.render(path, options, cb); + }); + }; + + /** + * ECT string support. + */ + + exports$1.ect.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var ECT = require('ect'); + var engine = new ECT({ root: { page: str }}); + engine.render('page', options, cb); + }); + }; + + /** + * mote support. + */ + + exports$1.mote = fromStringRenderer('mote'); + + /** + * mote string support. + */ + + exports$1.mote.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.mote || (requires.mote = require('mote')); + try { + var tmpl = cache(options) || cache(options, engine.compile(str)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Toffee support. + */ + + exports$1.toffee = function(path, options, cb) { + return promisify(cb, function(cb) { + var toffee = requires.toffee || (requires.toffee = require('toffee')); + toffee.__consolidate_engine_render(path, options, cb); + }); + }; + + /** + * Toffee string support. + */ + + exports$1.toffee.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.toffee || (requires.toffee = require('toffee')); + try { + engine.str_render(str, options, cb); + } catch (err) { + cb(err); + } + }); + }; + + /** + * doT support. + */ + + exports$1.dot = fromStringRenderer('dot'); + + /** + * doT string support. + */ + + exports$1.dot.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.dot || (requires.dot = require('dot')); + var extend = (requires.extend || (requires.extend = require$$2._extend)); + try { + var settings = {}; + settings = extend(settings, engine.templateSettings); + settings = extend(settings, options ? options.dot : {}); + var tmpl = cache(options) || cache(options, engine.template(str, settings, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * bracket support. + */ + + exports$1.bracket = fromStringRenderer('bracket'); + + /** + * bracket string support. + */ + + exports$1.bracket.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.bracket || (requires.bracket = require('bracket-template')); + try { + var tmpl = cache(options) || cache(options, engine.default.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Ractive support. + */ + + exports$1.ractive = fromStringRenderer('ractive'); + + /** + * Ractive string support. + */ + + exports$1.ractive.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var Engine = requires.ractive || (requires.ractive = require('ractive')); + + var template = cache(options) || cache(options, Engine.parse(str)); + options.template = template; + + if (options.data === null || options.data === undefined) { + var extend = (requires.extend || (requires.extend = require$$2._extend)); + + // Shallow clone the options object + options.data = extend({}, options); + + // Remove consolidate-specific properties from the clone + var i; + var length; + var properties = ['template', 'filename', 'cache', 'partials']; + for (i = 0, length = properties.length; i < length; i++) { + var property = properties[i]; + delete options.data[property]; + } + } + + try { + cb(null, new Engine(options).toHTML()); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Nunjucks support. + */ + + exports$1.nunjucks = fromStringRenderer('nunjucks'); + + /** + * Nunjucks string support. + */ + + exports$1.nunjucks.render = function(str, options, cb) { + return promisify(cb, function(cb) { + + try { + + var engine = options.nunjucksEnv || requires.nunjucks || (requires.nunjucks = require('nunjucks')); + + var env = engine; + + // deprecated fallback support for express + // <https://github.com/tj/consolidate.js/pull/152> + // <https://github.com/tj/consolidate.js/pull/224> + if (options.settings && options.settings.views) { + env = engine.configure(options.settings.views); + } else if (options.nunjucks && options.nunjucks.configure) { + env = engine.configure.apply(engine, options.nunjucks.configure); + } + + // + // because `renderString` does not initiate loaders + // we must manually create a loader for it based off + // either `options.settings.views` or `options.nunjucks` or `options.nunjucks.root` + // + // <https://github.com/mozilla/nunjucks/issues/730> + // <https://github.com/crocodilejs/node-email-templates/issues/182> + // + + // so instead we simply check if we passed a custom loader + // otherwise we create a simple file based loader + if (options.loader) { + env = new engine.Environment(options.loader); + } else if (options.settings && options.settings.views) { + env = new engine.Environment( + new engine.FileSystemLoader(options.settings.views) + ); + } else if (options.nunjucks && options.nunjucks.loader) { + if (typeof options.nunjucks.loader === 'string') { + env = new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader)); + } else { + env = new engine.Environment( + new engine.FileSystemLoader( + options.nunjucks.loader[0], + options.nunjucks.loader[1] + ) + ); + } + } + + env.renderString(str, options, cb); + } catch (err) { + throw cb(err); + } + }); + }; + + /** + * HTMLing support. + */ + + exports$1.htmling = fromStringRenderer('htmling'); + + /** + * HTMLing string support. + */ + + exports$1.htmling.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.htmling || (requires.htmling = require('htmling')); + try { + var tmpl = cache(options) || cache(options, engine.string(str)); + cb(null, tmpl.render(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Rendering function + */ + function requireReact(module, filename) { + var babel = requires.babel || (requires.babel = require('babel-core')); + + var compiled = babel.transformFileSync(filename, { presets: [ 'react' ] }).code; + + return module._compile(compiled, filename); + } + + exports$1.requireReact = requireReact; + + /** + * Converting a string into a node module. + */ + function requireReactString(src, filename) { + var babel = requires.babel || (requires.babel = require('babel-core')); + + if (!filename) filename = ''; + var m = new module.constructor(); + filename = filename || ''; + + // Compile Using React + var compiled = babel.transform(src, { presets: [ 'react' ] }).code; + + // Compile as a module + m.paths = module.paths; + m._compile(compiled, filename); + + return m.exports; + } + + /** + * A naive helper to replace {{tags}} with options.tags content + */ + function reactBaseTmpl(data, options) { + + var exp; + var regex; + + // Iterates through the keys in file object + // and interpolate / replace {{key}} with it's value + for (var k in options) { + if (options.hasOwnProperty(k)) { + exp = '{{' + k + '}}'; + regex = new RegExp(exp, 'g'); + if (data.match(regex)) { + data = data.replace(regex, options[k]); + } + } + } + + return data; + } + + /** + * Plates Support. + */ + + exports$1.plates = fromStringRenderer('plates'); + + /** + * Plates string support. + */ + + exports$1.plates.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.plates || (requires.plates = require('plates')); + var map = options.map || undefined; + try { + var tmpl = engine.bind(str, options, map); + cb(null, tmpl); + } catch (err) { + cb(err); + } + }); + }; + + /** + * The main render parser for React bsaed templates + */ + function reactRenderer(type) { + + if (commonjsRequire.extensions) { + + // Ensure JSX is transformed on require + if (!commonjsRequire.extensions['.jsx']) { + commonjsRequire.extensions['.jsx'] = requireReact; + } + + // Supporting .react extension as well as test cases + // Using .react extension is not recommended. + if (!commonjsRequire.extensions['.react']) { + commonjsRequire.extensions['.react'] = requireReact; + } + + } + + // Return rendering fx + return function(str, options, cb) { + return promisify(cb, function(cb) { + // React Import + var ReactDOM = requires.ReactDOM || (requires.ReactDOM = require('react-dom/server')); + var react = requires.react || (requires.react = require('react')); + + // Assign HTML Base + var base = options.base; + delete options.base; + + var enableCache = options.cache; + delete options.cache; + + var isNonStatic = options.isNonStatic; + delete options.isNonStatic; + + // Start Conversion + try { + + var Code; + var Factory; + + var baseStr; + var content; + var parsed; + + if (!cache(options)) { + // Parsing + if (type === 'path') { + var path = resolve(str); + delete require.cache[path]; + Code = commonjsRequire(path); + } else { + Code = requireReactString(str); + } + Factory = cache(options, react.createFactory(Code)); + + } else { + Factory = cache(options); + } + + parsed = new Factory(options); + content = (isNonStatic) ? ReactDOM.renderToString(parsed) : ReactDOM.renderToStaticMarkup(parsed); + + if (base) { + baseStr = readCache[str] || fs.readFileSync(resolve(base), 'utf8'); + + if (enableCache) { + readCache[str] = baseStr; + } + + options.content = content; + content = reactBaseTmpl(baseStr, options); + } + + cb(null, content); + + } catch (err) { + cb(err); + } + }); + }; + } + + /** + * React JS Support + */ + exports$1.react = reactRenderer('path'); + + /** + * React JS string support. + */ + exports$1.react.render = reactRenderer('string'); + + /** + * ARC-templates support. + */ + + exports$1['arc-templates'] = fromStringRenderer('arc-templates'); + + /** + * ARC-templates string support. + */ + + exports$1['arc-templates'].render = function(str, options, cb) { + var readFileWithOptions = util.promisify(read); + var consolidateFileSystem = {}; + consolidateFileSystem.readFile = function(path) { + return readFileWithOptions(path, options); + }; + + return promisify(cb, function(cb) { + try { + var engine = requires['arc-templates']; + if (!engine) { + var Engine = require('arc-templates/dist/es5'); + engine = requires['arc-templates'] = new Engine({ filesystem: consolidateFileSystem }); + } + + var compiler = cache(options) || cache(options, engine.compileString(str, options.filename)); + compiler.then(function(func) { return func(options); }) + .then(function(result) { cb(null, result.content); }) + .catch(cb); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Vash support + */ + exports$1.vash = fromStringRenderer('vash'); + + /** + * Vash string support + */ + exports$1.vash.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.vash || (requires.vash = require('vash')); + + try { + // helper system : https://github.com/kirbysayshi/vash#helper-system + if (options.helpers) { + for (var key in options.helpers) { + if (!options.helpers.hasOwnProperty(key) || typeof options.helpers[key] !== 'function') { + continue; + } + engine.helpers[key] = options.helpers[key]; + } + } + + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + tmpl(options, function sealLayout(err, ctx) { + if (err) cb(err); + ctx.finishLayout(); + cb(null, ctx.toString().replace(/\n$/, '')); + }); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Slm support. + */ + + exports$1.slm = fromStringRenderer('slm'); + + /** + * Slm string support. + */ + + exports$1.slm.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.slm || (requires.slm = require('slm')); + + try { + var tmpl = cache(options) || cache(options, engine.compile(str, options)); + cb(null, tmpl(options)); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Marko support. + */ + + exports$1.marko = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.marko || (requires.marko = require('marko')); + options.writeToDisk = !!options.cache; + + try { + var tmpl = cache(options) || cache(options, engine.load(path, options)); + tmpl.renderToString(options, cb); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Marko string support. + */ + + exports$1.marko.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.marko || (requires.marko = require('marko')); + options.writeToDisk = !!options.cache; + options.filename = options.filename || 'string.marko'; + + try { + var tmpl = cache(options) || cache(options, engine.load(options.filename, str, options)); + tmpl.renderToString(options, cb); + } catch (err) { + cb(err); + } + }); + }; + + /** + * Teacup support. + */ + exports$1.teacup = function(path, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.teacup || (requires.teacup = require('teacup/lib/express')); + commonjsRequire.extensions['.teacup'] = commonjsRequire.extensions['.coffee']; + if (path[0] !== '/') { + path = join(process.cwd(), path); + } + if (!options.cache) { + var callback = cb; + cb = function() { + delete require.cache[path]; + callback.apply(this, arguments); + }; + } + engine.renderFile(path, options, cb); + }); + }; + + /** + * Teacup string support. + */ + exports$1.teacup.render = function(str, options, cb) { + var coffee = require('coffee-script'); + var vm = require('vm'); + var sandbox = { + module: {exports: {}}, + require: commonjsRequire + }; + return promisify(cb, function(cb) { + vm.runInNewContext(coffee.compile(str), sandbox); + var tmpl = sandbox.module.exports; + cb(null, tmpl(options)); + }); + }; + + /** + * Squirrelly support. + */ + + exports$1.squirrelly = fromStringRenderer('squirrelly'); + + /** + * Squirrelly string support. + */ + + exports$1.squirrelly.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.squirrelly || (requires.squirrelly = require('squirrelly')); + try { + for (var partial in options.partials) { + engine.definePartial(partial, options.partials[partial]); + } + for (var helper in options.helpers) { + engine.defineHelper(helper, options.helpers[helper]); + } + var tmpl = cache(options) || cache(options, engine.Compile(str, options)); + cb(null, tmpl(options, engine)); + } catch (err) { + cb(err); + } + }); + }; + /** + * Twing support. + */ + + exports$1.twing = fromStringRenderer('twing'); + + /** + * Twing string support. + */ + + exports$1.twing.render = function(str, options, cb) { + return promisify(cb, function(cb) { + var engine = requires.twing || (requires.twing = require('twing')); + try { + new engine.TwingEnvironment(new engine.TwingLoaderNull()).createTemplate(str).then((twingTemplate) => { + twingTemplate.render(options).then((rendTmpl) => { + var tmpl = cache(options) || cache(options, rendTmpl); + cb(null, tmpl); + }); + }); + } catch (err) { + cb(err); + } + }); + }; + /** + * expose the instance of the engine + */ + exports$1.requires = requires; + } (consolidate$2, consolidate$2.exports)); + return consolidate$2.exports; +} + +var consolidate$1; +var hasRequiredConsolidate; + +function requireConsolidate () { + if (hasRequiredConsolidate) return consolidate$1; + hasRequiredConsolidate = 1; + consolidate$1 = /*@__PURE__*/ requireConsolidate$1(); + return consolidate$1; +} + +var consolidateExports = /*@__PURE__*/ requireConsolidate(); +var consolidate = /*@__PURE__*/getDefaultExportFromCjs(consolidateExports); + +const hasWarned = {}; +function warnOnce(msg) { + const isNodeProd = typeof process !== "undefined" && process.env.NODE_ENV === "production"; + if (!isNodeProd && true && !hasWarned[msg]) { + hasWarned[msg] = true; + warn(msg); + } +} +function warn(msg) { + console.warn( + `\x1B[1m\x1B[33m[@vue/compiler-sfc]\x1B[0m\x1B[33m ${msg}\x1B[0m +` + ); +} + +function preprocess$1({ source, filename, preprocessOptions }, preprocessor) { + let res = ""; + let err = null; + preprocessor.render( + source, + { filename, ...preprocessOptions }, + (_err, _res) => { + if (_err) err = _err; + res = _res; + } + ); + if (err) throw err; + return res; +} +function compileTemplate(options) { + const { preprocessLang, preprocessCustomRequire } = options; + const preprocessor = preprocessLang ? preprocessCustomRequire ? preprocessCustomRequire(preprocessLang) : consolidate[preprocessLang] : false; + if (preprocessor) { + try { + return doCompileTemplate({ + ...options, + source: preprocess$1(options, preprocessor), + ast: void 0 + // invalidate AST if template goes through preprocessor + }); + } catch (e) { + return { + code: `export default function render() {}`, + source: options.source, + tips: [], + errors: [e] + }; + } + } else if (preprocessLang) { + return { + code: `export default function render() {}`, + source: options.source, + tips: [ + `Component ${options.filename} uses lang ${preprocessLang} for template. Please install the language preprocessor.` + ], + errors: [ + `Component ${options.filename} uses lang ${preprocessLang} for template, however it is not installed.` + ] + }; + } else { + return doCompileTemplate(options); + } +} +function doCompileTemplate({ + filename, + id, + scoped, + slotted, + inMap, + source, + ast: inAST, + ssr = false, + ssrCssVars, + isProd = false, + compiler, + compilerOptions = {}, + transformAssetUrls +}) { + const errors = []; + const warnings = []; + let nodeTransforms = []; + if (shared.isObject(transformAssetUrls)) { + const assetOptions = normalizeOptions(transformAssetUrls); + nodeTransforms = [ + createAssetUrlTransformWithOptions(assetOptions), + createSrcsetTransformWithOptions(assetOptions) + ]; + } else if (transformAssetUrls !== false) { + nodeTransforms = [transformAssetUrl, transformSrcset]; + } + if (ssr && !ssrCssVars) { + warnOnce( + `compileTemplate is called with \`ssr: true\` but no corresponding \`cssVars\` option.` + ); + } + if (!id) { + warnOnce(`compileTemplate now requires the \`id\` option.`); + id = ""; + } + const shortId = id.replace(/^data-v-/, ""); + const longId = `data-v-${shortId}`; + const defaultCompiler = ssr ? CompilerSSR__namespace : CompilerDOM__namespace; + compiler = compiler || defaultCompiler; + if (compiler !== defaultCompiler) { + inAST = void 0; + } + if (inAST == null ? void 0 : inAST.transformed) { + const newAST = (ssr ? CompilerDOM__namespace : compiler).parse(inAST.source, { + prefixIdentifiers: true, + ...compilerOptions, + parseMode: "sfc", + onError: (e) => errors.push(e) + }); + const template = newAST.children.find( + (node) => node.type === 1 && node.tag === "template" + ); + inAST = compilerCore.createRoot(template.children, inAST.source); + } + let { code, ast, preamble, map } = compiler.compile(inAST || source, { + mode: "module", + prefixIdentifiers: true, + hoistStatic: true, + cacheHandlers: true, + ssrCssVars: ssr && ssrCssVars && ssrCssVars.length ? genCssVarsFromList(ssrCssVars, shortId, isProd, true) : "", + scopeId: scoped ? longId : void 0, + slotted, + sourceMap: true, + ...compilerOptions, + hmr: !isProd, + nodeTransforms: nodeTransforms.concat(compilerOptions.nodeTransforms || []), + filename, + onError: (e) => errors.push(e), + onWarn: (w) => warnings.push(w) + }); + if (inMap && !inAST) { + if (map) { + map = mapLines(inMap, map); + } + if (errors.length) { + patchErrors(errors, source, inMap); + } + } + const tips = warnings.map((w) => { + let msg = w.message; + if (w.loc) { + msg += ` +${shared.generateCodeFrame( + (inAST == null ? void 0 : inAST.source) || source, + w.loc.start.offset, + w.loc.end.offset + )}`; + } + return msg; + }); + return { code, ast, preamble, source, errors, tips, map }; +} +function mapLines(oldMap, newMap) { + if (!oldMap) return newMap; + if (!newMap) return oldMap; + const oldMapConsumer = new sourceMapJs.SourceMapConsumer(oldMap); + const newMapConsumer = new sourceMapJs.SourceMapConsumer(newMap); + const mergedMapGenerator = new sourceMapJs.SourceMapGenerator(); + newMapConsumer.eachMapping((m) => { + if (m.originalLine == null) { + return; + } + const origPosInOldMap = oldMapConsumer.originalPositionFor({ + line: m.originalLine, + column: m.originalColumn + }); + if (origPosInOldMap.source == null) { + return; + } + mergedMapGenerator.addMapping({ + generated: { + line: m.generatedLine, + column: m.generatedColumn + }, + original: { + line: origPosInOldMap.line, + // map line + // use current column, since the oldMap produced by @vue/compiler-sfc + // does not + column: m.originalColumn + }, + source: origPosInOldMap.source, + name: origPosInOldMap.name + }); + }); + const generator = mergedMapGenerator; + oldMapConsumer.sources.forEach((sourceFile) => { + generator._sources.add(sourceFile); + const sourceContent = oldMapConsumer.sourceContentFor(sourceFile); + if (sourceContent != null) { + mergedMapGenerator.setSourceContent(sourceFile, sourceContent); + } + }); + generator._sourceRoot = oldMap.sourceRoot; + generator._file = oldMap.file; + return generator.toJSON(); +} +function patchErrors(errors, source, inMap) { + const originalSource = inMap.sourcesContent[0]; + const offset = originalSource.indexOf(source); + const lineOffset = originalSource.slice(0, offset).split(/\r?\n/).length - 1; + errors.forEach((err) => { + if (err.loc) { + err.loc.start.line += lineOffset; + err.loc.start.offset += offset; + if (err.loc.end !== err.loc.start) { + err.loc.end.line += lineOffset; + err.loc.end.offset += offset; + } + } + }); +} + +const trimPlugin = () => { + return { + postcssPlugin: "vue-sfc-trim", + Once(root) { + root.walk(({ type, raws }) => { + if (type === "rule" || type === "atrule") { + if (raws.before) raws.before = "\n"; + if ("after" in raws && raws.after) raws.after = "\n"; + } + }); + } + }; +}; +trimPlugin.postcss = true; + +var dist$1 = {exports: {}}; + +var processor$1 = {exports: {}}; + +var parser$1 = {exports: {}}; + +var root$1 = {exports: {}}; + +var container$1 = {exports: {}}; + +var node$2 = {exports: {}}; + +var util$2 = {}; + +var unesc$1 = {exports: {}}; + +var hasRequiredUnesc$1; + +function requireUnesc$1 () { + if (hasRequiredUnesc$1) return unesc$1.exports; + hasRequiredUnesc$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = unesc; + // Many thanks for this post which made this migration much easier. + // https://mathiasbynens.be/notes/css-escapes + + /** + * + * @param {string} str + * @returns {[string, number]|undefined} + */ + function gobbleHex(str) { + var lower = str.toLowerCase(); + var hex = ''; + var spaceTerminated = false; + for (var i = 0; i < 6 && lower[i] !== undefined; i++) { + var code = lower.charCodeAt(i); + // check to see if we are dealing with a valid hex char [a-f|0-9] + var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; + // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point + spaceTerminated = code === 32; + if (!valid) { + break; + } + hex += lower[i]; + } + if (hex.length === 0) { + return undefined; + } + var codePoint = parseInt(hex, 16); + var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; + // Add special case for + // "If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point" + // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point + if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) { + return ["\uFFFD", hex.length + (spaceTerminated ? 1 : 0)]; + } + return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)]; + } + var CONTAINS_ESCAPE = /\\/; + function unesc(str) { + var needToProcess = CONTAINS_ESCAPE.test(str); + if (!needToProcess) { + return str; + } + var ret = ""; + for (var i = 0; i < str.length; i++) { + if (str[i] === "\\") { + var gobbled = gobbleHex(str.slice(i + 1, i + 7)); + if (gobbled !== undefined) { + ret += gobbled[0]; + i += gobbled[1]; + continue; + } + + // Retain a pair of \\ if double escaped `\\\\` + // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e + if (str[i + 1] === "\\") { + ret += "\\"; + i++; + continue; + } + + // if \\ is at the end of the string retain it + // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb + if (str.length === i + 1) { + ret += str[i]; + } + continue; + } + ret += str[i]; + } + return ret; + } + module.exports = exports$1.default; + } (unesc$1, unesc$1.exports)); + return unesc$1.exports; +} + +var getProp$1 = {exports: {}}; + +var hasRequiredGetProp$1; + +function requireGetProp$1 () { + if (hasRequiredGetProp$1) return getProp$1.exports; + hasRequiredGetProp$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = getProp; + function getProp(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + return undefined; + } + obj = obj[prop]; + } + return obj; + } + module.exports = exports$1.default; + } (getProp$1, getProp$1.exports)); + return getProp$1.exports; +} + +var ensureObject$1 = {exports: {}}; + +var hasRequiredEnsureObject$1; + +function requireEnsureObject$1 () { + if (hasRequiredEnsureObject$1) return ensureObject$1.exports; + hasRequiredEnsureObject$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = ensureObject; + function ensureObject(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + obj[prop] = {}; + } + obj = obj[prop]; + } + } + module.exports = exports$1.default; + } (ensureObject$1, ensureObject$1.exports)); + return ensureObject$1.exports; +} + +var stripComments$1 = {exports: {}}; + +var hasRequiredStripComments$1; + +function requireStripComments$1 () { + if (hasRequiredStripComments$1) return stripComments$1.exports; + hasRequiredStripComments$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = stripComments; + function stripComments(str) { + var s = ""; + var commentStart = str.indexOf("/*"); + var lastEnd = 0; + while (commentStart >= 0) { + s = s + str.slice(lastEnd, commentStart); + var commentEnd = str.indexOf("*/", commentStart + 2); + if (commentEnd < 0) { + return s; + } + lastEnd = commentEnd + 2; + commentStart = str.indexOf("/*", lastEnd); + } + s = s + str.slice(lastEnd); + return s; + } + module.exports = exports$1.default; + } (stripComments$1, stripComments$1.exports)); + return stripComments$1.exports; +} + +var hasRequiredUtil$2; + +function requireUtil$2 () { + if (hasRequiredUtil$2) return util$2; + hasRequiredUtil$2 = 1; + + util$2.__esModule = true; + util$2.unesc = util$2.stripComments = util$2.getProp = util$2.ensureObject = void 0; + var _unesc = _interopRequireDefault(/*@__PURE__*/ requireUnesc$1()); + util$2.unesc = _unesc["default"]; + var _getProp = _interopRequireDefault(/*@__PURE__*/ requireGetProp$1()); + util$2.getProp = _getProp["default"]; + var _ensureObject = _interopRequireDefault(/*@__PURE__*/ requireEnsureObject$1()); + util$2.ensureObject = _ensureObject["default"]; + var _stripComments = _interopRequireDefault(/*@__PURE__*/ requireStripComments$1()); + util$2.stripComments = _stripComments["default"]; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return util$2; +} + +var hasRequiredNode$2; + +function requireNode$2 () { + if (hasRequiredNode$2) return node$2.exports; + hasRequiredNode$2 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _util = /*@__PURE__*/ requireUtil$2(); + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + var cloneNode = function cloneNode(obj, parent) { + if (typeof obj !== 'object' || obj === null) { + return obj; + } + var cloned = new obj.constructor(); + for (var i in obj) { + if (!obj.hasOwnProperty(i)) { + continue; + } + var value = obj[i]; + var type = typeof value; + if (i === 'parent' && type === 'object') { + if (parent) { + cloned[i] = parent; + } + } else if (value instanceof Array) { + cloned[i] = value.map(function (j) { + return cloneNode(j, cloned); + }); + } else { + cloned[i] = cloneNode(value, cloned); + } + } + return cloned; + }; + var Node = /*#__PURE__*/function () { + function Node(opts) { + if (opts === void 0) { + opts = {}; + } + Object.assign(this, opts); + this.spaces = this.spaces || {}; + this.spaces.before = this.spaces.before || ''; + this.spaces.after = this.spaces.after || ''; + } + var _proto = Node.prototype; + _proto.remove = function remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this; + }; + _proto.replaceWith = function replaceWith() { + if (this.parent) { + for (var index in arguments) { + this.parent.insertBefore(this, arguments[index]); + } + this.remove(); + } + return this; + }; + _proto.next = function next() { + return this.parent.at(this.parent.index(this) + 1); + }; + _proto.prev = function prev() { + return this.parent.at(this.parent.index(this) - 1); + }; + _proto.clone = function clone(overrides) { + if (overrides === void 0) { + overrides = {}; + } + var cloned = cloneNode(this); + for (var name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows non standard syntax to be appended to an existing property + * by specifying the escaped value. By specifying the escaped value, + * illegal characters are allowed to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped optional. the escaped value of the property. + */; + _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + var originalValue = this[name]; + var originalEscaped = this.raws[name]; + this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first. + if (originalEscaped || valueEscaped !== value) { + this.raws[name] = (originalEscaped || originalValue) + valueEscaped; + } else { + delete this.raws[name]; // delete any escaped value that was created by the setter. + } + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows the escaped value to be specified directly, allowing illegal + * characters to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped the escaped value of the property. + */; + _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + this.raws[name] = valueEscaped; + } + + /** + * When you want a value to passed through to CSS directly. This method + * deletes the corresponding raw value causing the stringifier to fallback + * to the unescaped value. + * @param {string} name the property to set. + * @param {any} value The value that is both escaped and unescaped. + */; + _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) { + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + if (this.raws) { + delete this.raws[name]; + } + } + + /** + * + * @param {number} line The number (starting with 1) + * @param {number} column The column number (starting with 1) + */; + _proto.isAtPosition = function isAtPosition(line, column) { + if (this.source && this.source.start && this.source.end) { + if (this.source.start.line > line) { + return false; + } + if (this.source.end.line < line) { + return false; + } + if (this.source.start.line === line && this.source.start.column > column) { + return false; + } + if (this.source.end.line === line && this.source.end.column < column) { + return false; + } + return true; + } + return undefined; + }; + _proto.stringifyProperty = function stringifyProperty(name) { + return this.raws && this.raws[name] || this[name]; + }; + _proto.valueToString = function valueToString() { + return String(this.stringifyProperty("value")); + }; + _proto.toString = function toString() { + return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(''); + }; + _createClass(Node, [{ + key: "rawSpaceBefore", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before; + if (rawSpace === undefined) { + rawSpace = this.spaces && this.spaces.before; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.before = raw; + } + }, { + key: "rawSpaceAfter", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after; + if (rawSpace === undefined) { + rawSpace = this.spaces.after; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.after = raw; + } + }]); + return Node; + }(); + exports$1["default"] = Node; + module.exports = exports$1.default; + } (node$2, node$2.exports)); + return node$2.exports; +} + +var types$2 = {}; + +var hasRequiredTypes$1; + +function requireTypes$1 () { + if (hasRequiredTypes$1) return types$2; + hasRequiredTypes$1 = 1; + + types$2.__esModule = true; + types$2.UNIVERSAL = types$2.TAG = types$2.STRING = types$2.SELECTOR = types$2.ROOT = types$2.PSEUDO = types$2.NESTING = types$2.ID = types$2.COMMENT = types$2.COMBINATOR = types$2.CLASS = types$2.ATTRIBUTE = void 0; + var TAG = 'tag'; + types$2.TAG = TAG; + var STRING = 'string'; + types$2.STRING = STRING; + var SELECTOR = 'selector'; + types$2.SELECTOR = SELECTOR; + var ROOT = 'root'; + types$2.ROOT = ROOT; + var PSEUDO = 'pseudo'; + types$2.PSEUDO = PSEUDO; + var NESTING = 'nesting'; + types$2.NESTING = NESTING; + var ID = 'id'; + types$2.ID = ID; + var COMMENT = 'comment'; + types$2.COMMENT = COMMENT; + var COMBINATOR = 'combinator'; + types$2.COMBINATOR = COMBINATOR; + var CLASS = 'class'; + types$2.CLASS = CLASS; + var ATTRIBUTE = 'attribute'; + types$2.ATTRIBUTE = ATTRIBUTE; + var UNIVERSAL = 'universal'; + types$2.UNIVERSAL = UNIVERSAL; + return types$2; +} + +var hasRequiredContainer$1; + +function requireContainer$1 () { + if (hasRequiredContainer$1) return container$1.exports; + hasRequiredContainer$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var types = _interopRequireWildcard(/*@__PURE__*/ requireTypes$1()); + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike) { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Container = /*#__PURE__*/function (_Node) { + _inheritsLoose(Container, _Node); + function Container(opts) { + var _this; + _this = _Node.call(this, opts) || this; + if (!_this.nodes) { + _this.nodes = []; + } + return _this; + } + var _proto = Container.prototype; + _proto.append = function append(selector) { + selector.parent = this; + this.nodes.push(selector); + return this; + }; + _proto.prepend = function prepend(selector) { + selector.parent = this; + this.nodes.unshift(selector); + for (var id in this.indexes) { + this.indexes[id]++; + } + return this; + }; + _proto.at = function at(index) { + return this.nodes[index]; + }; + _proto.index = function index(child) { + if (typeof child === 'number') { + return child; + } + return this.nodes.indexOf(child); + }; + _proto.removeChild = function removeChild(child) { + child = this.index(child); + this.at(child).parent = undefined; + this.nodes.splice(child, 1); + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + return this; + }; + _proto.removeAll = function removeAll() { + for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) { + var node = _step.value; + node.parent = undefined; + } + this.nodes = []; + return this; + }; + _proto.empty = function empty() { + return this.removeAll(); + }; + _proto.insertAfter = function insertAfter(oldNode, newNode) { + var _this$nodes; + newNode.parent = this; + var oldIndex = this.index(oldNode); + var resetNode = []; + for (var i = 2; i < arguments.length; i++) { + resetNode.push(arguments[i]); + } + (_this$nodes = this.nodes).splice.apply(_this$nodes, [oldIndex + 1, 0, newNode].concat(resetNode)); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (oldIndex < index) { + this.indexes[id] = index + arguments.length - 1; + } + } + return this; + }; + _proto.insertBefore = function insertBefore(oldNode, newNode) { + var _this$nodes2; + newNode.parent = this; + var oldIndex = this.index(oldNode); + var resetNode = []; + for (var i = 2; i < arguments.length; i++) { + resetNode.push(arguments[i]); + } + (_this$nodes2 = this.nodes).splice.apply(_this$nodes2, [oldIndex, 0, newNode].concat(resetNode)); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= oldIndex) { + this.indexes[id] = index + arguments.length - 1; + } + } + return this; + }; + _proto._findChildAtPosition = function _findChildAtPosition(line, col) { + var found = undefined; + this.each(function (node) { + if (node.atPosition) { + var foundChild = node.atPosition(line, col); + if (foundChild) { + found = foundChild; + return false; + } + } else if (node.isAtPosition(line, col)) { + found = node; + return false; + } + }); + return found; + } + + /** + * Return the most specific node at the line and column number given. + * The source location is based on the original parsed location, locations aren't + * updated as selector nodes are mutated. + * + * Note that this location is relative to the location of the first character + * of the selector, and not the location of the selector in the overall document + * when used in conjunction with postcss. + * + * If not found, returns undefined. + * @param {number} line The line number of the node to find. (1-based index) + * @param {number} col The column number of the node to find. (1-based index) + */; + _proto.atPosition = function atPosition(line, col) { + if (this.isAtPosition(line, col)) { + return this._findChildAtPosition(line, col) || this; + } else { + return undefined; + } + }; + _proto._inferEndPosition = function _inferEndPosition() { + if (this.last && this.last.source && this.last.source.end) { + this.source = this.source || {}; + this.source.end = this.source.end || {}; + Object.assign(this.source.end, this.last.source.end); + } + }; + _proto.each = function each(callback) { + if (!this.lastEach) { + this.lastEach = 0; + } + if (!this.indexes) { + this.indexes = {}; + } + this.lastEach++; + var id = this.lastEach; + this.indexes[id] = 0; + if (!this.length) { + return undefined; + } + var index, result; + while (this.indexes[id] < this.length) { + index = this.indexes[id]; + result = callback(this.at(index), index); + if (result === false) { + break; + } + this.indexes[id] += 1; + } + delete this.indexes[id]; + if (result === false) { + return false; + } + }; + _proto.walk = function walk(callback) { + return this.each(function (node, i) { + var result = callback(node, i); + if (result !== false && node.length) { + result = node.walk(callback); + } + if (result === false) { + return false; + } + }); + }; + _proto.walkAttributes = function walkAttributes(callback) { + var _this2 = this; + return this.walk(function (selector) { + if (selector.type === types.ATTRIBUTE) { + return callback.call(_this2, selector); + } + }); + }; + _proto.walkClasses = function walkClasses(callback) { + var _this3 = this; + return this.walk(function (selector) { + if (selector.type === types.CLASS) { + return callback.call(_this3, selector); + } + }); + }; + _proto.walkCombinators = function walkCombinators(callback) { + var _this4 = this; + return this.walk(function (selector) { + if (selector.type === types.COMBINATOR) { + return callback.call(_this4, selector); + } + }); + }; + _proto.walkComments = function walkComments(callback) { + var _this5 = this; + return this.walk(function (selector) { + if (selector.type === types.COMMENT) { + return callback.call(_this5, selector); + } + }); + }; + _proto.walkIds = function walkIds(callback) { + var _this6 = this; + return this.walk(function (selector) { + if (selector.type === types.ID) { + return callback.call(_this6, selector); + } + }); + }; + _proto.walkNesting = function walkNesting(callback) { + var _this7 = this; + return this.walk(function (selector) { + if (selector.type === types.NESTING) { + return callback.call(_this7, selector); + } + }); + }; + _proto.walkPseudos = function walkPseudos(callback) { + var _this8 = this; + return this.walk(function (selector) { + if (selector.type === types.PSEUDO) { + return callback.call(_this8, selector); + } + }); + }; + _proto.walkTags = function walkTags(callback) { + var _this9 = this; + return this.walk(function (selector) { + if (selector.type === types.TAG) { + return callback.call(_this9, selector); + } + }); + }; + _proto.walkUniversals = function walkUniversals(callback) { + var _this10 = this; + return this.walk(function (selector) { + if (selector.type === types.UNIVERSAL) { + return callback.call(_this10, selector); + } + }); + }; + _proto.split = function split(callback) { + var _this11 = this; + var current = []; + return this.reduce(function (memo, node, index) { + var split = callback.call(_this11, node); + current.push(node); + if (split) { + memo.push(current); + current = []; + } else if (index === _this11.length - 1) { + memo.push(current); + } + return memo; + }, []); + }; + _proto.map = function map(callback) { + return this.nodes.map(callback); + }; + _proto.reduce = function reduce(callback, memo) { + return this.nodes.reduce(callback, memo); + }; + _proto.every = function every(callback) { + return this.nodes.every(callback); + }; + _proto.some = function some(callback) { + return this.nodes.some(callback); + }; + _proto.filter = function filter(callback) { + return this.nodes.filter(callback); + }; + _proto.sort = function sort(callback) { + return this.nodes.sort(callback); + }; + _proto.toString = function toString() { + return this.map(String).join(''); + }; + _createClass(Container, [{ + key: "first", + get: function get() { + return this.at(0); + } + }, { + key: "last", + get: function get() { + return this.at(this.length - 1); + } + }, { + key: "length", + get: function get() { + return this.nodes.length; + } + }]); + return Container; + }(_node["default"]); + exports$1["default"] = Container; + module.exports = exports$1.default; + } (container$1, container$1.exports)); + return container$1.exports; +} + +var hasRequiredRoot$1; + +function requireRoot$1 () { + if (hasRequiredRoot$1) return root$1.exports; + hasRequiredRoot$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer$1()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Root = /*#__PURE__*/function (_Container) { + _inheritsLoose(Root, _Container); + function Root(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.ROOT; + return _this; + } + var _proto = Root.prototype; + _proto.toString = function toString() { + var str = this.reduce(function (memo, selector) { + memo.push(String(selector)); + return memo; + }, []).join(','); + return this.trailingComma ? str + ',' : str; + }; + _proto.error = function error(message, options) { + if (this._error) { + return this._error(message, options); + } else { + return new Error(message); + } + }; + _createClass(Root, [{ + key: "errorGenerator", + set: function set(handler) { + this._error = handler; + } + }]); + return Root; + }(_container["default"]); + exports$1["default"] = Root; + module.exports = exports$1.default; + } (root$1, root$1.exports)); + return root$1.exports; +} + +var selector$1 = {exports: {}}; + +var hasRequiredSelector$1; + +function requireSelector$1 () { + if (hasRequiredSelector$1) return selector$1.exports; + hasRequiredSelector$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer$1()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Selector = /*#__PURE__*/function (_Container) { + _inheritsLoose(Selector, _Container); + function Selector(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.SELECTOR; + return _this; + } + return Selector; + }(_container["default"]); + exports$1["default"] = Selector; + module.exports = exports$1.default; + } (selector$1, selector$1.exports)); + return selector$1.exports; +} + +var className$1 = {exports: {}}; + +/*! https://mths.be/cssesc v3.0.0 by @mathias */ + +var cssesc_1; +var hasRequiredCssesc; + +function requireCssesc () { + if (hasRequiredCssesc) return cssesc_1; + hasRequiredCssesc = 1; + + var object = {}; + var hasOwnProperty = object.hasOwnProperty; + var merge = function merge(options, defaults) { + if (!options) { + return defaults; + } + var result = {}; + for (var key in defaults) { + // `if (defaults.hasOwnProperty(key) { … }` is not needed here, since + // only recognized option names are used. + result[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key]; + } + return result; + }; + + var regexAnySingleEscape = /[ -,\.\/:-@\[-\^`\{-~]/; + var regexSingleEscape = /[ -,\.\/:-@\[\]\^`\{-~]/; + var regexExcessiveSpaces = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g; + + // https://mathiasbynens.be/notes/css-escapes#css + var cssesc = function cssesc(string, options) { + options = merge(options, cssesc.options); + if (options.quotes != 'single' && options.quotes != 'double') { + options.quotes = 'single'; + } + var quote = options.quotes == 'double' ? '"' : '\''; + var isIdentifier = options.isIdentifier; + + var firstChar = string.charAt(0); + var output = ''; + var counter = 0; + var length = string.length; + while (counter < length) { + var character = string.charAt(counter++); + var codePoint = character.charCodeAt(); + var value = void 0; + // If it’s not a printable ASCII character… + if (codePoint < 0x20 || codePoint > 0x7E) { + if (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) { + // It’s a high surrogate, and there is a next character. + var extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { + // next character is low surrogate + codePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000; + } else { + // It’s an unmatched surrogate; only append this code unit, in case + // the next code unit is the high surrogate of a surrogate pair. + counter--; + } + } + value = '\\' + codePoint.toString(16).toUpperCase() + ' '; + } else { + if (options.escapeEverything) { + if (regexAnySingleEscape.test(character)) { + value = '\\' + character; + } else { + value = '\\' + codePoint.toString(16).toUpperCase() + ' '; + } + } else if (/[\t\n\f\r\x0B]/.test(character)) { + value = '\\' + codePoint.toString(16).toUpperCase() + ' '; + } else if (character == '\\' || !isIdentifier && (character == '"' && quote == character || character == '\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) { + value = '\\' + character; + } else { + value = character; + } + } + output += value; + } + + if (isIdentifier) { + if (/^-[-\d]/.test(output)) { + output = '\\-' + output.slice(1); + } else if (/\d/.test(firstChar)) { + output = '\\3' + firstChar + ' ' + output.slice(1); + } + } + + // Remove spaces after `\HEX` escapes that are not followed by a hex digit, + // since they’re redundant. Note that this is only possible if the escape + // sequence isn’t preceded by an odd number of backslashes. + output = output.replace(regexExcessiveSpaces, function ($0, $1, $2) { + if ($1 && $1.length % 2) { + // It’s not safe to remove the space, so don’t. + return $0; + } + // Strip the space. + return ($1 || '') + $2; + }); + + if (!isIdentifier && options.wrap) { + return quote + output + quote; + } + return output; + }; + + // Expose default options (so they can be overridden globally). + cssesc.options = { + 'escapeEverything': false, + 'isIdentifier': false, + 'quotes': 'single', + 'wrap': false + }; + + cssesc.version = '3.0.0'; + + cssesc_1 = cssesc; + return cssesc_1; +} + +var hasRequiredClassName$1; + +function requireClassName$1 () { + if (hasRequiredClassName$1) return className$1.exports; + hasRequiredClassName$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _util = /*@__PURE__*/ requireUtil$2(); + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var ClassName = /*#__PURE__*/function (_Node) { + _inheritsLoose(ClassName, _Node); + function ClassName(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.CLASS; + _this._constructed = true; + return _this; + } + var _proto = ClassName.prototype; + _proto.valueToString = function valueToString() { + return '.' + _Node.prototype.valueToString.call(this); + }; + _createClass(ClassName, [{ + key: "value", + get: function get() { + return this._value; + }, + set: function set(v) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped !== v) { + (0, _util.ensureObject)(this, "raws"); + this.raws.value = escaped; + } else if (this.raws) { + delete this.raws.value; + } + } + this._value = v; + } + }]); + return ClassName; + }(_node["default"]); + exports$1["default"] = ClassName; + module.exports = exports$1.default; + } (className$1, className$1.exports)); + return className$1.exports; +} + +var comment$1 = {exports: {}}; + +var hasRequiredComment$1; + +function requireComment$1 () { + if (hasRequiredComment$1) return comment$1.exports; + hasRequiredComment$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Comment = /*#__PURE__*/function (_Node) { + _inheritsLoose(Comment, _Node); + function Comment(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMMENT; + return _this; + } + return Comment; + }(_node["default"]); + exports$1["default"] = Comment; + module.exports = exports$1.default; + } (comment$1, comment$1.exports)); + return comment$1.exports; +} + +var id$1 = {exports: {}}; + +var hasRequiredId$1; + +function requireId$1 () { + if (hasRequiredId$1) return id$1.exports; + hasRequiredId$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var ID = /*#__PURE__*/function (_Node) { + _inheritsLoose(ID, _Node); + function ID(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.ID; + return _this; + } + var _proto = ID.prototype; + _proto.valueToString = function valueToString() { + return '#' + _Node.prototype.valueToString.call(this); + }; + return ID; + }(_node["default"]); + exports$1["default"] = ID; + module.exports = exports$1.default; + } (id$1, id$1.exports)); + return id$1.exports; +} + +var tag$1 = {exports: {}}; + +var namespace$1 = {exports: {}}; + +var hasRequiredNamespace$1; + +function requireNamespace$1 () { + if (hasRequiredNamespace$1) return namespace$1.exports; + hasRequiredNamespace$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _util = /*@__PURE__*/ requireUtil$2(); + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Namespace = /*#__PURE__*/function (_Node) { + _inheritsLoose(Namespace, _Node); + function Namespace() { + return _Node.apply(this, arguments) || this; + } + var _proto = Namespace.prototype; + _proto.qualifiedName = function qualifiedName(value) { + if (this.namespace) { + return this.namespaceString + "|" + value; + } else { + return value; + } + }; + _proto.valueToString = function valueToString() { + return this.qualifiedName(_Node.prototype.valueToString.call(this)); + }; + _createClass(Namespace, [{ + key: "namespace", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + if (namespace === true || namespace === "*" || namespace === "&") { + this._namespace = namespace; + if (this.raws) { + delete this.raws.namespace; + } + return; + } + var escaped = (0, _cssesc["default"])(namespace, { + isIdentifier: true + }); + this._namespace = namespace; + if (escaped !== namespace) { + (0, _util.ensureObject)(this, "raws"); + this.raws.namespace = escaped; + } else if (this.raws) { + delete this.raws.namespace; + } + } + }, { + key: "ns", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + this.namespace = namespace; + } + }, { + key: "namespaceString", + get: function get() { + if (this.namespace) { + var ns = this.stringifyProperty("namespace"); + if (ns === true) { + return ''; + } else { + return ns; + } + } else { + return ''; + } + } + }]); + return Namespace; + }(_node["default"]); + exports$1["default"] = Namespace; + module.exports = exports$1.default; + } (namespace$1, namespace$1.exports)); + return namespace$1.exports; +} + +var hasRequiredTag$1; + +function requireTag$1 () { + if (hasRequiredTag$1) return tag$1.exports; + hasRequiredTag$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace$1()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Tag = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Tag, _Namespace); + function Tag(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.TAG; + return _this; + } + return Tag; + }(_namespace["default"]); + exports$1["default"] = Tag; + module.exports = exports$1.default; + } (tag$1, tag$1.exports)); + return tag$1.exports; +} + +var string$1 = {exports: {}}; + +var hasRequiredString$1; + +function requireString$1 () { + if (hasRequiredString$1) return string$1.exports; + hasRequiredString$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var String = /*#__PURE__*/function (_Node) { + _inheritsLoose(String, _Node); + function String(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.STRING; + return _this; + } + return String; + }(_node["default"]); + exports$1["default"] = String; + module.exports = exports$1.default; + } (string$1, string$1.exports)); + return string$1.exports; +} + +var pseudo$1 = {exports: {}}; + +var hasRequiredPseudo$1; + +function requirePseudo$1 () { + if (hasRequiredPseudo$1) return pseudo$1.exports; + hasRequiredPseudo$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer$1()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Pseudo = /*#__PURE__*/function (_Container) { + _inheritsLoose(Pseudo, _Container); + function Pseudo(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.PSEUDO; + return _this; + } + var _proto = Pseudo.prototype; + _proto.toString = function toString() { + var params = this.length ? '(' + this.map(String).join(',') + ')' : ''; + return [this.rawSpaceBefore, this.stringifyProperty("value"), params, this.rawSpaceAfter].join(''); + }; + return Pseudo; + }(_container["default"]); + exports$1["default"] = Pseudo; + module.exports = exports$1.default; + } (pseudo$1, pseudo$1.exports)); + return pseudo$1.exports; +} + +var attribute$1 = {}; + +var node$1; +var hasRequiredNode$1; + +function requireNode$1 () { + if (hasRequiredNode$1) return node$1; + hasRequiredNode$1 = 1; + /** + * For Node.js, simply re-export the core `util.deprecate` function. + */ + + node$1 = require$$2.deprecate; + return node$1; +} + +var hasRequiredAttribute$1; + +function requireAttribute$1 () { + if (hasRequiredAttribute$1) return attribute$1; + hasRequiredAttribute$1 = 1; + (function (exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + exports$1.unescapeValue = unescapeValue; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _unesc = _interopRequireDefault(/*@__PURE__*/ requireUnesc$1()); + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace$1()); + var _types = /*@__PURE__*/ requireTypes$1(); + var _CSSESC_QUOTE_OPTIONS; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var deprecate = /*@__PURE__*/ requireNode$1(); + var WRAPPED_IN_QUOTES = /^('|")([^]*)\1$/; + var warnOfDeprecatedValueAssignment = deprecate(function () {}, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. " + "Call attribute.setValue() instead."); + var warnOfDeprecatedQuotedAssignment = deprecate(function () {}, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."); + var warnOfDeprecatedConstructor = deprecate(function () {}, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now."); + function unescapeValue(value) { + var deprecatedUsage = false; + var quoteMark = null; + var unescaped = value; + var m = unescaped.match(WRAPPED_IN_QUOTES); + if (m) { + quoteMark = m[1]; + unescaped = m[2]; + } + unescaped = (0, _unesc["default"])(unescaped); + if (unescaped !== value) { + deprecatedUsage = true; + } + return { + deprecatedUsage: deprecatedUsage, + unescaped: unescaped, + quoteMark: quoteMark + }; + } + function handleDeprecatedContructorOpts(opts) { + if (opts.quoteMark !== undefined) { + return opts; + } + if (opts.value === undefined) { + return opts; + } + warnOfDeprecatedConstructor(); + var _unescapeValue = unescapeValue(opts.value), + quoteMark = _unescapeValue.quoteMark, + unescaped = _unescapeValue.unescaped; + if (!opts.raws) { + opts.raws = {}; + } + if (opts.raws.value === undefined) { + opts.raws.value = opts.value; + } + opts.value = unescaped; + opts.quoteMark = quoteMark; + return opts; + } + var Attribute = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Attribute, _Namespace); + function Attribute(opts) { + var _this; + if (opts === void 0) { + opts = {}; + } + _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this; + _this.type = _types.ATTRIBUTE; + _this.raws = _this.raws || {}; + Object.defineProperty(_this.raws, 'unquoted', { + get: deprecate(function () { + return _this.value; + }, "attr.raws.unquoted is deprecated. Call attr.value instead."), + set: deprecate(function () { + return _this.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.") + }); + _this._constructed = true; + return _this; + } + + /** + * Returns the Attribute's value quoted such that it would be legal to use + * in the value of a css file. The original value's quotation setting + * used for stringification is left unchanged. See `setValue(value, options)` + * if you want to control the quote settings of a new value for the attribute. + * + * You can also change the quotation used for the current value by setting quoteMark. + * + * Options: + * * quoteMark {'"' | "'" | null} - Use this value to quote the value. If this + * option is not set, the original value for quoteMark will be used. If + * indeterminate, a double quote is used. The legal values are: + * * `null` - the value will be unquoted and characters will be escaped as necessary. + * * `'` - the value will be quoted with a single quote and single quotes are escaped. + * * `"` - the value will be quoted with a double quote and double quotes are escaped. + * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark + * over the quoteMark option value. + * * smart {boolean} - if true, will select a quote mark based on the value + * and the other options specified here. See the `smartQuoteMark()` + * method. + **/ + var _proto = Attribute.prototype; + _proto.getQuotedValue = function getQuotedValue(options) { + if (options === void 0) { + options = {}; + } + var quoteMark = this._determineQuoteMark(options); + var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark]; + var escaped = (0, _cssesc["default"])(this._value, cssescopts); + return escaped; + }; + _proto._determineQuoteMark = function _determineQuoteMark(options) { + return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options); + } + + /** + * Set the unescaped value with the specified quotation options. The value + * provided must not include any wrapping quote marks -- those quotes will + * be interpreted as part of the value and escaped accordingly. + */; + _proto.setValue = function setValue(value, options) { + if (options === void 0) { + options = {}; + } + this._value = value; + this._quoteMark = this._determineQuoteMark(options); + this._syncRawValue(); + } + + /** + * Intelligently select a quoteMark value based on the value's contents. If + * the value is a legal CSS ident, it will not be quoted. Otherwise a quote + * mark will be picked that minimizes the number of escapes. + * + * If there's no clear winner, the quote mark from these options is used, + * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is + * true). If the quoteMark is unspecified, a double quote is used. + * + * @param options This takes the quoteMark and preferCurrentQuoteMark options + * from the quoteValue method. + */; + _proto.smartQuoteMark = function smartQuoteMark(options) { + var v = this.value; + var numSingleQuotes = v.replace(/[^']/g, '').length; + var numDoubleQuotes = v.replace(/[^"]/g, '').length; + if (numSingleQuotes + numDoubleQuotes === 0) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped === v) { + return Attribute.NO_QUOTE; + } else { + var pref = this.preferredQuoteMark(options); + if (pref === Attribute.NO_QUOTE) { + // pick a quote mark that isn't none and see if it's smaller + var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE; + var opts = CSSESC_QUOTE_OPTIONS[quote]; + var quoteValue = (0, _cssesc["default"])(v, opts); + if (quoteValue.length < escaped.length) { + return quote; + } + } + return pref; + } + } else if (numDoubleQuotes === numSingleQuotes) { + return this.preferredQuoteMark(options); + } else if (numDoubleQuotes < numSingleQuotes) { + return Attribute.DOUBLE_QUOTE; + } else { + return Attribute.SINGLE_QUOTE; + } + } + + /** + * Selects the preferred quote mark based on the options and the current quote mark value. + * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)` + * instead. + */; + _proto.preferredQuoteMark = function preferredQuoteMark(options) { + var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark; + if (quoteMark === undefined) { + quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark; + } + if (quoteMark === undefined) { + quoteMark = Attribute.DOUBLE_QUOTE; + } + return quoteMark; + }; + _proto._syncRawValue = function _syncRawValue() { + var rawValue = (0, _cssesc["default"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]); + if (rawValue === this._value) { + if (this.raws) { + delete this.raws.value; + } + } else { + this.raws.value = rawValue; + } + }; + _proto._handleEscapes = function _handleEscapes(prop, value) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(value, { + isIdentifier: true + }); + if (escaped !== value) { + this.raws[prop] = escaped; + } else { + delete this.raws[prop]; + } + } + }; + _proto._spacesFor = function _spacesFor(name) { + var attrSpaces = { + before: '', + after: '' + }; + var spaces = this.spaces[name] || {}; + var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {}; + return Object.assign(attrSpaces, spaces, rawSpaces); + }; + _proto._stringFor = function _stringFor(name, spaceName, concat) { + if (spaceName === void 0) { + spaceName = name; + } + if (concat === void 0) { + concat = defaultAttrConcat; + } + var attrSpaces = this._spacesFor(spaceName); + return concat(this.stringifyProperty(name), attrSpaces); + } + + /** + * returns the offset of the attribute part specified relative to the + * start of the node of the output string. + * + * * "ns" - alias for "namespace" + * * "namespace" - the namespace if it exists. + * * "attribute" - the attribute name + * * "attributeNS" - the start of the attribute or its namespace + * * "operator" - the match operator of the attribute + * * "value" - The value (string or identifier) + * * "insensitive" - the case insensitivity flag; + * @param part One of the possible values inside an attribute. + * @returns -1 if the name is invalid or the value doesn't exist in this attribute. + */; + _proto.offsetOf = function offsetOf(name) { + var count = 1; + var attributeSpaces = this._spacesFor("attribute"); + count += attributeSpaces.before.length; + if (name === "namespace" || name === "ns") { + return this.namespace ? count : -1; + } + if (name === "attributeNS") { + return count; + } + count += this.namespaceString.length; + if (this.namespace) { + count += 1; + } + if (name === "attribute") { + return count; + } + count += this.stringifyProperty("attribute").length; + count += attributeSpaces.after.length; + var operatorSpaces = this._spacesFor("operator"); + count += operatorSpaces.before.length; + var operator = this.stringifyProperty("operator"); + if (name === "operator") { + return operator ? count : -1; + } + count += operator.length; + count += operatorSpaces.after.length; + var valueSpaces = this._spacesFor("value"); + count += valueSpaces.before.length; + var value = this.stringifyProperty("value"); + if (name === "value") { + return value ? count : -1; + } + count += value.length; + count += valueSpaces.after.length; + var insensitiveSpaces = this._spacesFor("insensitive"); + count += insensitiveSpaces.before.length; + if (name === "insensitive") { + return this.insensitive ? count : -1; + } + return -1; + }; + _proto.toString = function toString() { + var _this2 = this; + var selector = [this.rawSpaceBefore, '[']; + selector.push(this._stringFor('qualifiedAttribute', 'attribute')); + if (this.operator && (this.value || this.value === '')) { + selector.push(this._stringFor('operator')); + selector.push(this._stringFor('value')); + selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) { + if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) { + attrSpaces.before = " "; + } + return defaultAttrConcat(attrValue, attrSpaces); + })); + } + selector.push(']'); + selector.push(this.rawSpaceAfter); + return selector.join(''); + }; + _createClass(Attribute, [{ + key: "quoted", + get: function get() { + var qm = this.quoteMark; + return qm === "'" || qm === '"'; + }, + set: function set(value) { + warnOfDeprecatedQuotedAssignment(); + } + + /** + * returns a single (`'`) or double (`"`) quote character if the value is quoted. + * returns `null` if the value is not quoted. + * returns `undefined` if the quotation state is unknown (this can happen when + * the attribute is constructed without specifying a quote mark.) + */ + }, { + key: "quoteMark", + get: function get() { + return this._quoteMark; + } + + /** + * Set the quote mark to be used by this attribute's value. + * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute + * value is updated accordingly. + * + * @param {"'" | '"' | null} quoteMark The quote mark or `null` if the value should be unquoted. + */, + set: function set(quoteMark) { + if (!this._constructed) { + this._quoteMark = quoteMark; + return; + } + if (this._quoteMark !== quoteMark) { + this._quoteMark = quoteMark; + this._syncRawValue(); + } + } + }, { + key: "qualifiedAttribute", + get: function get() { + return this.qualifiedName(this.raws.attribute || this.attribute); + } + }, { + key: "insensitiveFlag", + get: function get() { + return this.insensitive ? 'i' : ''; + } + }, { + key: "value", + get: function get() { + return this._value; + }, + set: + /** + * Before 3.0, the value had to be set to an escaped value including any wrapped + * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value + * is unescaped during parsing and any quote marks are removed. + * + * Because the ambiguity of this semantic change, if you set `attr.value = newValue`, + * a deprecation warning is raised when the new value contains any characters that would + * require escaping (including if it contains wrapped quotes). + * + * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe + * how the new value is quoted. + */ + function set(v) { + if (this._constructed) { + var _unescapeValue2 = unescapeValue(v), + deprecatedUsage = _unescapeValue2.deprecatedUsage, + unescaped = _unescapeValue2.unescaped, + quoteMark = _unescapeValue2.quoteMark; + if (deprecatedUsage) { + warnOfDeprecatedValueAssignment(); + } + if (unescaped === this._value && quoteMark === this._quoteMark) { + return; + } + this._value = unescaped; + this._quoteMark = quoteMark; + this._syncRawValue(); + } else { + this._value = v; + } + } + }, { + key: "insensitive", + get: function get() { + return this._insensitive; + } + + /** + * Set the case insensitive flag. + * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag` + * of the attribute is updated accordingly. + * + * @param {true | false} insensitive true if the attribute should match case-insensitively. + */, + set: function set(insensitive) { + if (!insensitive) { + this._insensitive = false; + + // "i" and "I" can be used in "this.raws.insensitiveFlag" to store the original notation. + // When setting `attr.insensitive = false` both should be erased to ensure correct serialization. + if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) { + this.raws.insensitiveFlag = undefined; + } + } + this._insensitive = insensitive; + } + }, { + key: "attribute", + get: function get() { + return this._attribute; + }, + set: function set(name) { + this._handleEscapes("attribute", name); + this._attribute = name; + } + }]); + return Attribute; + }(_namespace["default"]); + exports$1["default"] = Attribute; + Attribute.NO_QUOTE = null; + Attribute.SINGLE_QUOTE = "'"; + Attribute.DOUBLE_QUOTE = '"'; + var CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = { + "'": { + quotes: 'single', + wrap: true + }, + '"': { + quotes: 'double', + wrap: true + } + }, _CSSESC_QUOTE_OPTIONS[null] = { + isIdentifier: true + }, _CSSESC_QUOTE_OPTIONS); + function defaultAttrConcat(attrValue, attrSpaces) { + return "" + attrSpaces.before + attrValue + attrSpaces.after; + } + } (attribute$1)); + return attribute$1; +} + +var universal$1 = {exports: {}}; + +var hasRequiredUniversal$1; + +function requireUniversal$1 () { + if (hasRequiredUniversal$1) return universal$1.exports; + hasRequiredUniversal$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace$1()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Universal = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Universal, _Namespace); + function Universal(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.UNIVERSAL; + _this.value = '*'; + return _this; + } + return Universal; + }(_namespace["default"]); + exports$1["default"] = Universal; + module.exports = exports$1.default; + } (universal$1, universal$1.exports)); + return universal$1.exports; +} + +var combinator$1 = {exports: {}}; + +var hasRequiredCombinator$1; + +function requireCombinator$1 () { + if (hasRequiredCombinator$1) return combinator$1.exports; + hasRequiredCombinator$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Combinator = /*#__PURE__*/function (_Node) { + _inheritsLoose(Combinator, _Node); + function Combinator(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMBINATOR; + return _this; + } + return Combinator; + }(_node["default"]); + exports$1["default"] = Combinator; + module.exports = exports$1.default; + } (combinator$1, combinator$1.exports)); + return combinator$1.exports; +} + +var nesting$1 = {exports: {}}; + +var hasRequiredNesting$1; + +function requireNesting$1 () { + if (hasRequiredNesting$1) return nesting$1.exports; + hasRequiredNesting$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$2()); + var _types = /*@__PURE__*/ requireTypes$1(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Nesting = /*#__PURE__*/function (_Node) { + _inheritsLoose(Nesting, _Node); + function Nesting(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.NESTING; + _this.value = '&'; + return _this; + } + return Nesting; + }(_node["default"]); + exports$1["default"] = Nesting; + module.exports = exports$1.default; + } (nesting$1, nesting$1.exports)); + return nesting$1.exports; +} + +var sortAscending$1 = {exports: {}}; + +var hasRequiredSortAscending$1; + +function requireSortAscending$1 () { + if (hasRequiredSortAscending$1) return sortAscending$1.exports; + hasRequiredSortAscending$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = sortAscending; + function sortAscending(list) { + return list.sort(function (a, b) { + return a - b; + }); + } + module.exports = exports$1.default; + } (sortAscending$1, sortAscending$1.exports)); + return sortAscending$1.exports; +} + +var tokenize$1 = {}; + +var tokenTypes$1 = {}; + +var hasRequiredTokenTypes$1; + +function requireTokenTypes$1 () { + if (hasRequiredTokenTypes$1) return tokenTypes$1; + hasRequiredTokenTypes$1 = 1; + + tokenTypes$1.__esModule = true; + tokenTypes$1.word = tokenTypes$1.tilde = tokenTypes$1.tab = tokenTypes$1.str = tokenTypes$1.space = tokenTypes$1.slash = tokenTypes$1.singleQuote = tokenTypes$1.semicolon = tokenTypes$1.plus = tokenTypes$1.pipe = tokenTypes$1.openSquare = tokenTypes$1.openParenthesis = tokenTypes$1.newline = tokenTypes$1.greaterThan = tokenTypes$1.feed = tokenTypes$1.equals = tokenTypes$1.doubleQuote = tokenTypes$1.dollar = tokenTypes$1.cr = tokenTypes$1.comment = tokenTypes$1.comma = tokenTypes$1.combinator = tokenTypes$1.colon = tokenTypes$1.closeSquare = tokenTypes$1.closeParenthesis = tokenTypes$1.caret = tokenTypes$1.bang = tokenTypes$1.backslash = tokenTypes$1.at = tokenTypes$1.asterisk = tokenTypes$1.ampersand = void 0; + var ampersand = 38; // `&`.charCodeAt(0); + tokenTypes$1.ampersand = ampersand; + var asterisk = 42; // `*`.charCodeAt(0); + tokenTypes$1.asterisk = asterisk; + var at = 64; // `@`.charCodeAt(0); + tokenTypes$1.at = at; + var comma = 44; // `,`.charCodeAt(0); + tokenTypes$1.comma = comma; + var colon = 58; // `:`.charCodeAt(0); + tokenTypes$1.colon = colon; + var semicolon = 59; // `;`.charCodeAt(0); + tokenTypes$1.semicolon = semicolon; + var openParenthesis = 40; // `(`.charCodeAt(0); + tokenTypes$1.openParenthesis = openParenthesis; + var closeParenthesis = 41; // `)`.charCodeAt(0); + tokenTypes$1.closeParenthesis = closeParenthesis; + var openSquare = 91; // `[`.charCodeAt(0); + tokenTypes$1.openSquare = openSquare; + var closeSquare = 93; // `]`.charCodeAt(0); + tokenTypes$1.closeSquare = closeSquare; + var dollar = 36; // `$`.charCodeAt(0); + tokenTypes$1.dollar = dollar; + var tilde = 126; // `~`.charCodeAt(0); + tokenTypes$1.tilde = tilde; + var caret = 94; // `^`.charCodeAt(0); + tokenTypes$1.caret = caret; + var plus = 43; // `+`.charCodeAt(0); + tokenTypes$1.plus = plus; + var equals = 61; // `=`.charCodeAt(0); + tokenTypes$1.equals = equals; + var pipe = 124; // `|`.charCodeAt(0); + tokenTypes$1.pipe = pipe; + var greaterThan = 62; // `>`.charCodeAt(0); + tokenTypes$1.greaterThan = greaterThan; + var space = 32; // ` `.charCodeAt(0); + tokenTypes$1.space = space; + var singleQuote = 39; // `'`.charCodeAt(0); + tokenTypes$1.singleQuote = singleQuote; + var doubleQuote = 34; // `"`.charCodeAt(0); + tokenTypes$1.doubleQuote = doubleQuote; + var slash = 47; // `/`.charCodeAt(0); + tokenTypes$1.slash = slash; + var bang = 33; // `!`.charCodeAt(0); + tokenTypes$1.bang = bang; + var backslash = 92; // '\\'.charCodeAt(0); + tokenTypes$1.backslash = backslash; + var cr = 13; // '\r'.charCodeAt(0); + tokenTypes$1.cr = cr; + var feed = 12; // '\f'.charCodeAt(0); + tokenTypes$1.feed = feed; + var newline = 10; // '\n'.charCodeAt(0); + tokenTypes$1.newline = newline; + var tab = 9; // '\t'.charCodeAt(0); + + // Expose aliases primarily for readability. + tokenTypes$1.tab = tab; + var str = singleQuote; + + // No good single character representation! + tokenTypes$1.str = str; + var comment = -1; + tokenTypes$1.comment = comment; + var word = -2; + tokenTypes$1.word = word; + var combinator = -3; + tokenTypes$1.combinator = combinator; + return tokenTypes$1; +} + +var hasRequiredTokenize$1; + +function requireTokenize$1 () { + if (hasRequiredTokenize$1) return tokenize$1; + hasRequiredTokenize$1 = 1; + (function (exports$1) { + + exports$1.__esModule = true; + exports$1.FIELDS = void 0; + exports$1["default"] = tokenize; + var t = _interopRequireWildcard(/*@__PURE__*/ requireTokenTypes$1()); + var _unescapable, _wordDelimiters; + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + var unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable); + var wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters); + var hex = {}; + var hexChars = "0123456789abcdefABCDEF"; + for (var i = 0; i < hexChars.length; i++) { + hex[hexChars.charCodeAt(i)] = true; + } + + /** + * Returns the last index of the bar css word + * @param {string} css The string in which the word begins + * @param {number} start The index into the string where word's first letter occurs + */ + function consumeWord(css, start) { + var next = start; + var code; + do { + code = css.charCodeAt(next); + if (wordDelimiters[code]) { + return next - 1; + } else if (code === t.backslash) { + next = consumeEscape(css, next) + 1; + } else { + // All other characters are part of the word + next++; + } + } while (next < css.length); + return next - 1; + } + + /** + * Returns the last index of the escape sequence + * @param {string} css The string in which the sequence begins + * @param {number} start The index into the string where escape character (`\`) occurs. + */ + function consumeEscape(css, start) { + var next = start; + var code = css.charCodeAt(next + 1); + if (unescapable[code]) ; else if (hex[code]) { + var hexDigits = 0; + // consume up to 6 hex chars + do { + next++; + hexDigits++; + code = css.charCodeAt(next + 1); + } while (hex[code] && hexDigits < 6); + // if fewer than 6 hex chars, a trailing space ends the escape + if (hexDigits < 6 && code === t.space) { + next++; + } + } else { + // the next char is part of the current word + next++; + } + return next; + } + var FIELDS = { + TYPE: 0, + START_LINE: 1, + START_COL: 2, + END_LINE: 3, + END_COL: 4, + START_POS: 5, + END_POS: 6 + }; + exports$1.FIELDS = FIELDS; + function tokenize(input) { + var tokens = []; + var css = input.css.valueOf(); + var _css = css, + length = _css.length; + var offset = -1; + var line = 1; + var start = 0; + var end = 0; + var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType; + function unclosed(what, fix) { + if (input.safe) { + // fyi: this is never set to true. + css += fix; + next = css.length - 1; + } else { + throw input.error('Unclosed ' + what, line, start - offset, start); + } + } + while (start < length) { + code = css.charCodeAt(start); + if (code === t.newline) { + offset = start; + line += 1; + } + switch (code) { + case t.space: + case t.tab: + case t.newline: + case t.cr: + case t.feed: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + if (code === t.newline) { + offset = next; + line += 1; + } + } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed); + tokenType = t.space; + endLine = line; + endColumn = next - offset - 1; + end = next; + break; + case t.plus: + case t.greaterThan: + case t.tilde: + case t.pipe: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe); + tokenType = t.combinator; + endLine = line; + endColumn = start - offset; + end = next; + break; + + // Consume these characters as single tokens. + case t.asterisk: + case t.ampersand: + case t.bang: + case t.comma: + case t.equals: + case t.dollar: + case t.caret: + case t.openSquare: + case t.closeSquare: + case t.colon: + case t.semicolon: + case t.openParenthesis: + case t.closeParenthesis: + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + case t.singleQuote: + case t.doubleQuote: + quote = code === t.singleQuote ? "'" : '"'; + next = start; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + unclosed('quote', quote); + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === t.backslash) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + tokenType = t.str; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + default: + if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) { + next = css.indexOf('*/', start + 2) + 1; + if (next === 0) { + unclosed('comment', '*/'); + } + content = css.slice(start, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + if (last > 0) { + nextLine = line + last; + nextOffset = next - lines[last].length; + } else { + nextLine = line; + nextOffset = offset; + } + tokenType = t.comment; + line = nextLine; + endLine = nextLine; + endColumn = next - nextOffset; + } else if (code === t.slash) { + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + } else { + next = consumeWord(css, start); + tokenType = t.word; + endLine = line; + endColumn = next - offset; + } + end = next + 1; + break; + } + + // Ensure that the token structure remains consistent + tokens.push([tokenType, + // [0] Token type + line, + // [1] Starting line + start - offset, + // [2] Starting column + endLine, + // [3] Ending line + endColumn, + // [4] Ending column + start, + // [5] Start position / Source index + end // [6] End position + ]); + + // Reset offset for the next token + if (nextOffset) { + offset = nextOffset; + nextOffset = null; + } + start = end; + } + return tokens; + } + } (tokenize$1)); + return tokenize$1; +} + +var hasRequiredParser$2; + +function requireParser$2 () { + if (hasRequiredParser$2) return parser$1.exports; + hasRequiredParser$2 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _root = _interopRequireDefault(/*@__PURE__*/ requireRoot$1()); + var _selector = _interopRequireDefault(/*@__PURE__*/ requireSelector$1()); + var _className = _interopRequireDefault(/*@__PURE__*/ requireClassName$1()); + var _comment = _interopRequireDefault(/*@__PURE__*/ requireComment$1()); + var _id = _interopRequireDefault(/*@__PURE__*/ requireId$1()); + var _tag = _interopRequireDefault(/*@__PURE__*/ requireTag$1()); + var _string = _interopRequireDefault(/*@__PURE__*/ requireString$1()); + var _pseudo = _interopRequireDefault(/*@__PURE__*/ requirePseudo$1()); + var _attribute = _interopRequireWildcard(/*@__PURE__*/ requireAttribute$1()); + var _universal = _interopRequireDefault(/*@__PURE__*/ requireUniversal$1()); + var _combinator = _interopRequireDefault(/*@__PURE__*/ requireCombinator$1()); + var _nesting = _interopRequireDefault(/*@__PURE__*/ requireNesting$1()); + var _sortAscending = _interopRequireDefault(/*@__PURE__*/ requireSortAscending$1()); + var _tokenize = _interopRequireWildcard(/*@__PURE__*/ requireTokenize$1()); + var tokens = _interopRequireWildcard(/*@__PURE__*/ requireTokenTypes$1()); + var types = _interopRequireWildcard(/*@__PURE__*/ requireTypes$1()); + var _util = /*@__PURE__*/ requireUtil$2(); + var _WHITESPACE_TOKENS, _Object$assign; + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + var WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS); + var WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign)); + function tokenStart(token) { + return { + line: token[_tokenize.FIELDS.START_LINE], + column: token[_tokenize.FIELDS.START_COL] + }; + } + function tokenEnd(token) { + return { + line: token[_tokenize.FIELDS.END_LINE], + column: token[_tokenize.FIELDS.END_COL] + }; + } + function getSource(startLine, startColumn, endLine, endColumn) { + return { + start: { + line: startLine, + column: startColumn + }, + end: { + line: endLine, + column: endColumn + } + }; + } + function getTokenSource(token) { + return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]); + } + function getTokenSourceSpan(startToken, endToken) { + if (!startToken) { + return undefined; + } + return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]); + } + function unescapeProp(node, prop) { + var value = node[prop]; + if (typeof value !== "string") { + return; + } + if (value.indexOf("\\") !== -1) { + (0, _util.ensureObject)(node, 'raws'); + node[prop] = (0, _util.unesc)(value); + if (node.raws[prop] === undefined) { + node.raws[prop] = value; + } + } + return node; + } + function indexesOf(array, item) { + var i = -1; + var indexes = []; + while ((i = array.indexOf(item, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; + } + function uniqs() { + var list = Array.prototype.concat.apply([], arguments); + return list.filter(function (item, i) { + return i === list.indexOf(item); + }); + } + var Parser = /*#__PURE__*/function () { + function Parser(rule, options) { + if (options === void 0) { + options = {}; + } + this.rule = rule; + this.options = Object.assign({ + lossy: false, + safe: false + }, options); + this.position = 0; + this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector; + this.tokens = (0, _tokenize["default"])({ + css: this.css, + error: this._errorGenerator(), + safe: this.options.safe + }); + var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]); + this.root = new _root["default"]({ + source: rootSource + }); + this.root.errorGenerator = this._errorGenerator(); + var selector = new _selector["default"]({ + source: { + start: { + line: 1, + column: 1 + } + }, + sourceIndex: 0 + }); + this.root.append(selector); + this.current = selector; + this.loop(); + } + var _proto = Parser.prototype; + _proto._errorGenerator = function _errorGenerator() { + var _this = this; + return function (message, errorOptions) { + if (typeof _this.rule === 'string') { + return new Error(message); + } + return _this.rule.error(message, errorOptions); + }; + }; + _proto.attribute = function attribute() { + var attr = []; + var startingToken = this.currToken; + this.position++; + while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + attr.push(this.currToken); + this.position++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + } + var len = attr.length; + var node = { + source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + }; + if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) { + return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]); + } + var pos = 0; + var spaceBefore = ''; + var commentBefore = ''; + var lastAdded = null; + var spaceAfterMeaningfulToken = false; + while (pos < len) { + var token = attr[pos]; + var content = this.content(token); + var next = attr[pos + 1]; + switch (token[_tokenize.FIELDS.TYPE]) { + case tokens.space: + // if ( + // len === 1 || + // pos === 0 && this.content(next) === '|' + // ) { + // return this.expected('attribute', token[TOKEN.START_POS], content); + // } + spaceAfterMeaningfulToken = true; + if (this.options.lossy) { + break; + } + if (lastAdded) { + (0, _util.ensureObject)(node, 'spaces', lastAdded); + var prevContent = node.spaces[lastAdded].after || ''; + node.spaces[lastAdded].after = prevContent + content; + var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null; + if (existingComment) { + node.raws.spaces[lastAdded].after = existingComment + content; + } + } else { + spaceBefore = spaceBefore + content; + commentBefore = commentBefore + content; + } + break; + case tokens.asterisk: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if ((!node.namespace || lastAdded === "namespace" && !spaceAfterMeaningfulToken) && next) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = spaceBefore; + commentBefore = ''; + } + node.namespace = (node.namespace || "") + content; + var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null; + if (rawValue) { + node.raws.namespace += content; + } + lastAdded = 'namespace'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.dollar: + if (lastAdded === "value") { + var oldRawValue = (0, _util.getProp)(node, 'raws', 'value'); + node.value += "$"; + if (oldRawValue) { + node.raws.value = oldRawValue + "$"; + } + break; + } + // Falls through + case tokens.caret: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.combinator: + if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + if (content !== '|') { + spaceAfterMeaningfulToken = false; + break; + } + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if (!node.namespace && !node.attribute) { + node.namespace = true; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.word: + if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && + // this look-ahead probably fails with comment nodes involved. + !node.operator && !node.namespace) { + node.namespace = content; + lastAdded = 'namespace'; + } else if (!node.attribute || lastAdded === "attribute" && !spaceAfterMeaningfulToken) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = commentBefore; + commentBefore = ''; + } + node.attribute = (node.attribute || "") + content; + var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null; + if (_rawValue) { + node.raws.attribute += content; + } + lastAdded = 'attribute'; + } else if (!node.value && node.value !== "" || lastAdded === "value" && !(spaceAfterMeaningfulToken || node.quoteMark)) { + var _unescaped = (0, _util.unesc)(content); + var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || ''; + var oldValue = node.value || ''; + node.value = oldValue + _unescaped; + node.quoteMark = null; + if (_unescaped !== content || _oldRawValue) { + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = (_oldRawValue || oldValue) + content; + } + lastAdded = 'value'; + } else { + var insensitive = content === 'i' || content === "I"; + if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) { + node.insensitive = insensitive; + if (!insensitive || content === "I") { + (0, _util.ensureObject)(node, 'raws'); + node.raws.insensitiveFlag = content; + } + lastAdded = 'insensitive'; + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'insensitive'); + node.spaces.insensitive.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive'); + node.raws.spaces.insensitive.before = commentBefore; + commentBefore = ''; + } + } else if (node.value || node.value === '') { + lastAdded = 'value'; + node.value += content; + if (node.raws.value) { + node.raws.value += content; + } + } + } + spaceAfterMeaningfulToken = false; + break; + case tokens.str: + if (!node.attribute || !node.operator) { + return this.error("Expected an attribute followed by an operator preceding the string.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + var _unescapeValue = (0, _attribute.unescapeValue)(content), + unescaped = _unescapeValue.unescaped, + quoteMark = _unescapeValue.quoteMark; + node.value = unescaped; + node.quoteMark = quoteMark; + lastAdded = 'value'; + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = content; + spaceAfterMeaningfulToken = false; + break; + case tokens.equals: + if (!node.attribute) { + return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content); + } + if (node.value) { + return this.error('Unexpected "=" found; an operator was already defined.', { + index: token[_tokenize.FIELDS.START_POS] + }); + } + node.operator = node.operator ? node.operator + content : content; + lastAdded = 'operator'; + spaceAfterMeaningfulToken = false; + break; + case tokens.comment: + if (lastAdded) { + if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') { + var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || ''; + var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment; + (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded); + node.raws.spaces[lastAdded].after = rawLastComment + content; + } else { + var lastValue = node[lastAdded] || ''; + var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue; + (0, _util.ensureObject)(node, 'raws'); + node.raws[lastAdded] = rawLastValue + content; + } + } else { + commentBefore = commentBefore + content; + } + break; + default: + return this.error("Unexpected \"" + content + "\" found.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + pos++; + } + unescapeProp(node, "attribute"); + unescapeProp(node, "namespace"); + this.newNode(new _attribute["default"](node)); + this.position++; + } + + /** + * return a node containing meaningless garbage up to (but not including) the specified token position. + * if the token position is negative, all remaining tokens are consumed. + * + * This returns an array containing a single string node if all whitespace, + * otherwise an array of comment nodes with space before and after. + * + * These tokens are not added to the current selector, the caller can add them or use them to amend + * a previous node's space metadata. + * + * In lossy mode, this returns only comments. + */; + _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) { + if (stopPosition < 0) { + stopPosition = this.tokens.length; + } + var startPosition = this.position; + var nodes = []; + var space = ""; + var lastComment = undefined; + do { + if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) { + if (!this.options.lossy) { + space += this.content(); + } + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) { + var spaces = {}; + if (space) { + spaces.before = space; + space = ""; + } + lastComment = new _comment["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + spaces: spaces + }); + nodes.push(lastComment); + } + } while (++this.position < stopPosition); + if (space) { + if (lastComment) { + lastComment.spaces.after = space; + } else if (!this.options.lossy) { + var firstToken = this.tokens[startPosition]; + var lastToken = this.tokens[this.position - 1]; + nodes.push(new _string["default"]({ + value: '', + source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: { + before: space, + after: '' + } + })); + } + } + return nodes; + } + + /** + * + * @param {*} nodes + */; + _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) { + var _this2 = this; + if (requiredSpace === void 0) { + requiredSpace = false; + } + var space = ""; + var rawSpace = ""; + nodes.forEach(function (n) { + var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace); + var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace); + space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0); + rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0); + }); + if (rawSpace === space) { + rawSpace = undefined; + } + var result = { + space: space, + rawSpace: rawSpace + }; + return result; + }; + _proto.isNamedCombinator = function isNamedCombinator(position) { + if (position === void 0) { + position = this.position; + } + return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash; + }; + _proto.namedCombinator = function namedCombinator() { + if (this.isNamedCombinator()) { + var nameRaw = this.content(this.tokens[this.position + 1]); + var name = (0, _util.unesc)(nameRaw).toLowerCase(); + var raws = {}; + if (name !== nameRaw) { + raws.value = "/" + nameRaw + "/"; + } + var node = new _combinator["default"]({ + value: "/" + name + "/", + source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + raws: raws + }); + this.position = this.position + 3; + return node; + } else { + this.unexpected(); + } + }; + _proto.combinator = function combinator() { + var _this3 = this; + if (this.content() === '|') { + return this.namespace(); + } + // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector. + var nextSigTokenPos = this.locateNextMeaningfulToken(this.position); + if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + if (nodes.length > 0) { + var last = this.current.last; + if (last) { + var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes), + space = _this$convertWhitespa.space, + rawSpace = _this$convertWhitespa.rawSpace; + if (rawSpace !== undefined) { + last.rawSpaceAfter += rawSpace; + } + last.spaces.after += space; + } else { + nodes.forEach(function (n) { + return _this3.newNode(n); + }); + } + } + return; + } + var firstToken = this.currToken; + var spaceOrDescendantSelectorNodes = undefined; + if (nextSigTokenPos > this.position) { + spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + } + var node; + if (this.isNamedCombinator()) { + node = this.namedCombinator(); + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) { + node = new _combinator["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS] + }); + this.position++; + } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) ; else if (!spaceOrDescendantSelectorNodes) { + this.unexpected(); + } + if (node) { + if (spaceOrDescendantSelectorNodes) { + var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes), + _space = _this$convertWhitespa2.space, + _rawSpace = _this$convertWhitespa2.rawSpace; + node.spaces.before = _space; + node.rawSpaceBefore = _rawSpace; + } + } else { + // descendant combinator + var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true), + _space2 = _this$convertWhitespa3.space, + _rawSpace2 = _this$convertWhitespa3.rawSpace; + if (!_rawSpace2) { + _rawSpace2 = _space2; + } + var spaces = {}; + var raws = { + spaces: {} + }; + if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) { + spaces.before = _space2.slice(0, _space2.length - 1); + raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1); + } else if (_space2[0] === ' ' && _rawSpace2[0] === ' ') { + spaces.after = _space2.slice(1); + raws.spaces.after = _rawSpace2.slice(1); + } else { + raws.value = _rawSpace2; + } + node = new _combinator["default"]({ + value: ' ', + source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: spaces, + raws: raws + }); + } + if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) { + node.spaces.after = this.optionalSpace(this.content()); + this.position++; + } + return this.newNode(node); + }; + _proto.comma = function comma() { + if (this.position === this.tokens.length - 1) { + this.root.trailingComma = true; + this.position++; + return; + } + this.current._inferEndPosition(); + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position + 1]) + }, + sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS] + }); + this.current.parent.append(selector); + this.current = selector; + this.position++; + }; + _proto.comment = function comment() { + var current = this.currToken; + this.newNode(new _comment["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.error = function error(message, opts) { + throw this.root.error(message, opts); + }; + _proto.missingBackslash = function missingBackslash() { + return this.error('Expected a backslash preceding the semicolon.', { + index: this.currToken[_tokenize.FIELDS.START_POS] + }); + }; + _proto.missingParenthesis = function missingParenthesis() { + return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.missingSquareBracket = function missingSquareBracket() { + return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpected = function unexpected() { + return this.error("Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpectedPipe = function unexpectedPipe() { + return this.error("Unexpected '|'.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.namespace = function namespace() { + var before = this.prevToken && this.content(this.prevToken) || true; + if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.position++; + return this.word(before); + } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) { + this.position++; + return this.universal(before); + } + this.unexpectedPipe(); + }; + _proto.nesting = function nesting() { + if (this.nextToken) { + var nextContent = this.content(this.nextToken); + if (nextContent === "|") { + this.position++; + return; + } + } + var current = this.currToken; + this.newNode(new _nesting["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.parentheses = function parentheses() { + var last = this.current.last; + var unbalanced = 1; + this.position++; + if (last && last.type === types.PSEUDO) { + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position]) + }, + sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS] + }); + var cache = this.current; + last.append(selector); + this.current = selector; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + if (unbalanced) { + this.parse(); + } else { + this.current.source.end = tokenEnd(this.currToken); + this.current.parent.source.end = tokenEnd(this.currToken); + this.position++; + } + } + this.current = cache; + } else { + // I think this case should be an error. It's used to implement a basic parse of media queries + // but I don't think it's a good idea. + var parenStart = this.currToken; + var parenValue = "("; + var parenEnd; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + parenEnd = this.currToken; + parenValue += this.parseParenthesisToken(this.currToken); + this.position++; + } + if (last) { + last.appendToPropertyAndEscape("value", parenValue, parenValue); + } else { + this.newNode(new _string["default"]({ + value: parenValue, + source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]), + sourceIndex: parenStart[_tokenize.FIELDS.START_POS] + })); + } + } + if (unbalanced) { + return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.pseudo = function pseudo() { + var _this4 = this; + var pseudoStr = ''; + var startingToken = this.currToken; + while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) { + pseudoStr += this.content(); + this.position++; + } + if (!this.currToken) { + return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1); + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.splitWord(false, function (first, length) { + pseudoStr += first; + _this4.newNode(new _pseudo["default"]({ + value: pseudoStr, + source: getTokenSourceSpan(startingToken, _this4.currToken), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + })); + if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + _this4.error('Misplaced parenthesis.', { + index: _this4.nextToken[_tokenize.FIELDS.START_POS] + }); + } + }); + } else { + return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.space = function space() { + var content = this.content(); + // Handle space before and after the selector + if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) { + return node.type === 'comment'; + })) { + this.spaces = this.optionalSpace(content); + this.position++; + } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + this.current.last.spaces.after = this.optionalSpace(content); + this.position++; + } else { + this.combinator(); + } + }; + _proto.string = function string() { + var current = this.currToken; + this.newNode(new _string["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.universal = function universal(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + var current = this.currToken; + this.newNode(new _universal["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + }), namespace); + this.position++; + }; + _proto.splitWord = function splitWord(namespace, firstCallback) { + var _this5 = this; + var nextToken = this.nextToken; + var word = this.content(); + while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) { + this.position++; + var current = this.content(); + word += current; + if (current.lastIndexOf('\\') === current.length - 1) { + var next = this.nextToken; + if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) { + word += this.requiredSpace(this.content(next)); + this.position++; + } + } + nextToken = this.nextToken; + } + var hasClass = indexesOf(word, '.').filter(function (i) { + // Allow escaped dot within class name + var escapedDot = word[i - 1] === '\\'; + // Allow decimal numbers percent in @keyframes + var isKeyframesPercent = /^\d+\.\d+%$/.test(word); + return !escapedDot && !isKeyframesPercent; + }); + var hasId = indexesOf(word, '#').filter(function (i) { + return word[i - 1] !== '\\'; + }); + // Eliminate Sass interpolations from the list of id indexes + var interpolations = indexesOf(word, '#{'); + if (interpolations.length) { + hasId = hasId.filter(function (hashIndex) { + return !~interpolations.indexOf(hashIndex); + }); + } + var indices = (0, _sortAscending["default"])(uniqs([0].concat(hasClass, hasId))); + indices.forEach(function (ind, i) { + var index = indices[i + 1] || word.length; + var value = word.slice(ind, index); + if (i === 0 && firstCallback) { + return firstCallback.call(_this5, value, indices.length); + } + var node; + var current = _this5.currToken; + var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i]; + var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1)); + if (~hasClass.indexOf(ind)) { + var classNameOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _className["default"](unescapeProp(classNameOpts, "value")); + } else if (~hasId.indexOf(ind)) { + var idOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _id["default"](unescapeProp(idOpts, "value")); + } else { + var tagOpts = { + value: value, + source: source, + sourceIndex: sourceIndex + }; + unescapeProp(tagOpts, "value"); + node = new _tag["default"](tagOpts); + } + _this5.newNode(node, namespace); + // Ensure that the namespace is used only once + namespace = null; + }); + this.position++; + }; + _proto.word = function word(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + return this.splitWord(namespace); + }; + _proto.loop = function loop() { + while (this.position < this.tokens.length) { + this.parse(true); + } + this.current._inferEndPosition(); + return this.root; + }; + _proto.parse = function parse(throwOnParenthesis) { + switch (this.currToken[_tokenize.FIELDS.TYPE]) { + case tokens.space: + this.space(); + break; + case tokens.comment: + this.comment(); + break; + case tokens.openParenthesis: + this.parentheses(); + break; + case tokens.closeParenthesis: + if (throwOnParenthesis) { + this.missingParenthesis(); + } + break; + case tokens.openSquare: + this.attribute(); + break; + case tokens.dollar: + case tokens.caret: + case tokens.equals: + case tokens.word: + this.word(); + break; + case tokens.colon: + this.pseudo(); + break; + case tokens.comma: + this.comma(); + break; + case tokens.asterisk: + this.universal(); + break; + case tokens.ampersand: + this.nesting(); + break; + case tokens.slash: + case tokens.combinator: + this.combinator(); + break; + case tokens.str: + this.string(); + break; + // These cases throw; no break needed. + case tokens.closeSquare: + this.missingSquareBracket(); + case tokens.semicolon: + this.missingBackslash(); + default: + this.unexpected(); + } + } + + /** + * Helpers + */; + _proto.expected = function expected(description, index, found) { + if (Array.isArray(description)) { + var last = description.pop(); + description = description.join(', ') + " or " + last; + } + var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a'; + if (!found) { + return this.error("Expected " + an + " " + description + ".", { + index: index + }); + } + return this.error("Expected " + an + " " + description + ", found \"" + found + "\" instead.", { + index: index + }); + }; + _proto.requiredSpace = function requiredSpace(space) { + return this.options.lossy ? ' ' : space; + }; + _proto.optionalSpace = function optionalSpace(space) { + return this.options.lossy ? '' : space; + }; + _proto.lossySpace = function lossySpace(space, required) { + if (this.options.lossy) { + return required ? ' ' : ''; + } else { + return space; + } + }; + _proto.parseParenthesisToken = function parseParenthesisToken(token) { + var content = this.content(token); + if (token[_tokenize.FIELDS.TYPE] === tokens.space) { + return this.requiredSpace(content); + } else { + return content; + } + }; + _proto.newNode = function newNode(node, namespace) { + if (namespace) { + if (/^ +$/.test(namespace)) { + if (!this.options.lossy) { + this.spaces = (this.spaces || '') + namespace; + } + namespace = true; + } + node.namespace = namespace; + unescapeProp(node, "namespace"); + } + if (this.spaces) { + node.spaces.before = this.spaces; + this.spaces = ''; + } + return this.current.append(node); + }; + _proto.content = function content(token) { + if (token === void 0) { + token = this.currToken; + } + return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]); + }; + /** + * returns the index of the next non-whitespace, non-comment token. + * returns -1 if no meaningful token is found. + */ + _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) { + if (startPosition === void 0) { + startPosition = this.position + 1; + } + var searchPosition = startPosition; + while (searchPosition < this.tokens.length) { + if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) { + searchPosition++; + continue; + } else { + return searchPosition; + } + } + return -1; + }; + _createClass(Parser, [{ + key: "currToken", + get: function get() { + return this.tokens[this.position]; + } + }, { + key: "nextToken", + get: function get() { + return this.tokens[this.position + 1]; + } + }, { + key: "prevToken", + get: function get() { + return this.tokens[this.position - 1]; + } + }]); + return Parser; + }(); + exports$1["default"] = Parser; + module.exports = exports$1.default; + } (parser$1, parser$1.exports)); + return parser$1.exports; +} + +var hasRequiredProcessor$1; + +function requireProcessor$1 () { + if (hasRequiredProcessor$1) return processor$1.exports; + hasRequiredProcessor$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _parser = _interopRequireDefault(/*@__PURE__*/ requireParser$2()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var Processor = /*#__PURE__*/function () { + function Processor(func, options) { + this.func = func || function noop() {}; + this.funcRes = null; + this.options = options; + } + var _proto = Processor.prototype; + _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.updateSelector === false) { + return false; + } else { + return typeof rule !== "string"; + } + }; + _proto._isLossy = function _isLossy(options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.lossless === false) { + return true; + } else { + return false; + } + }; + _proto._root = function _root(rule, options) { + if (options === void 0) { + options = {}; + } + var parser = new _parser["default"](rule, this._parseOptions(options)); + return parser.root; + }; + _proto._parseOptions = function _parseOptions(options) { + return { + lossy: this._isLossy(options) + }; + }; + _proto._run = function _run(rule, options) { + var _this = this; + if (options === void 0) { + options = {}; + } + return new Promise(function (resolve, reject) { + try { + var root = _this._root(rule, options); + Promise.resolve(_this.func(root)).then(function (transform) { + var string = undefined; + if (_this._shouldUpdateSelector(rule, options)) { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + }).then(resolve, reject); + } catch (e) { + reject(e); + return; + } + }); + }; + _proto._runSync = function _runSync(rule, options) { + if (options === void 0) { + options = {}; + } + var root = this._root(rule, options); + var transform = this.func(root); + if (transform && typeof transform.then === "function") { + throw new Error("Selector processor returned a promise to a synchronous call."); + } + var string = undefined; + if (options.updateSelector && typeof rule !== "string") { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + } + + /** + * Process rule into a selector AST. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise<parser.Root>} The AST of the selector after processing it. + */; + _proto.ast = function ast(rule, options) { + return this._run(rule, options).then(function (result) { + return result.root; + }); + } + + /** + * Process rule into a selector AST synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {parser.Root} The AST of the selector after processing it. + */; + _proto.astSync = function astSync(rule, options) { + return this._runSync(rule, options).root; + } + + /** + * Process a selector into a transformed value asynchronously + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise<any>} The value returned by the processor. + */; + _proto.transform = function transform(rule, options) { + return this._run(rule, options).then(function (result) { + return result.transform; + }); + } + + /** + * Process a selector into a transformed value synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {any} The value returned by the processor. + */; + _proto.transformSync = function transformSync(rule, options) { + return this._runSync(rule, options).transform; + } + + /** + * Process a selector into a new selector string asynchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.process = function process(rule, options) { + return this._run(rule, options).then(function (result) { + return result.string || result.root.toString(); + }); + } + + /** + * Process a selector into a new selector string synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.processSync = function processSync(rule, options) { + var result = this._runSync(rule, options); + return result.string || result.root.toString(); + }; + return Processor; + }(); + exports$1["default"] = Processor; + module.exports = exports$1.default; + } (processor$1, processor$1.exports)); + return processor$1.exports; +} + +var selectors$1 = {}; + +var constructors$1 = {}; + +var hasRequiredConstructors$1; + +function requireConstructors$1 () { + if (hasRequiredConstructors$1) return constructors$1; + hasRequiredConstructors$1 = 1; + + constructors$1.__esModule = true; + constructors$1.universal = constructors$1.tag = constructors$1.string = constructors$1.selector = constructors$1.root = constructors$1.pseudo = constructors$1.nesting = constructors$1.id = constructors$1.comment = constructors$1.combinator = constructors$1.className = constructors$1.attribute = void 0; + var _attribute = _interopRequireDefault(/*@__PURE__*/ requireAttribute$1()); + var _className = _interopRequireDefault(/*@__PURE__*/ requireClassName$1()); + var _combinator = _interopRequireDefault(/*@__PURE__*/ requireCombinator$1()); + var _comment = _interopRequireDefault(/*@__PURE__*/ requireComment$1()); + var _id = _interopRequireDefault(/*@__PURE__*/ requireId$1()); + var _nesting = _interopRequireDefault(/*@__PURE__*/ requireNesting$1()); + var _pseudo = _interopRequireDefault(/*@__PURE__*/ requirePseudo$1()); + var _root = _interopRequireDefault(/*@__PURE__*/ requireRoot$1()); + var _selector = _interopRequireDefault(/*@__PURE__*/ requireSelector$1()); + var _string = _interopRequireDefault(/*@__PURE__*/ requireString$1()); + var _tag = _interopRequireDefault(/*@__PURE__*/ requireTag$1()); + var _universal = _interopRequireDefault(/*@__PURE__*/ requireUniversal$1()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var attribute = function attribute(opts) { + return new _attribute["default"](opts); + }; + constructors$1.attribute = attribute; + var className = function className(opts) { + return new _className["default"](opts); + }; + constructors$1.className = className; + var combinator = function combinator(opts) { + return new _combinator["default"](opts); + }; + constructors$1.combinator = combinator; + var comment = function comment(opts) { + return new _comment["default"](opts); + }; + constructors$1.comment = comment; + var id = function id(opts) { + return new _id["default"](opts); + }; + constructors$1.id = id; + var nesting = function nesting(opts) { + return new _nesting["default"](opts); + }; + constructors$1.nesting = nesting; + var pseudo = function pseudo(opts) { + return new _pseudo["default"](opts); + }; + constructors$1.pseudo = pseudo; + var root = function root(opts) { + return new _root["default"](opts); + }; + constructors$1.root = root; + var selector = function selector(opts) { + return new _selector["default"](opts); + }; + constructors$1.selector = selector; + var string = function string(opts) { + return new _string["default"](opts); + }; + constructors$1.string = string; + var tag = function tag(opts) { + return new _tag["default"](opts); + }; + constructors$1.tag = tag; + var universal = function universal(opts) { + return new _universal["default"](opts); + }; + constructors$1.universal = universal; + return constructors$1; +} + +var guards$1 = {}; + +var hasRequiredGuards$1; + +function requireGuards$1 () { + if (hasRequiredGuards$1) return guards$1; + hasRequiredGuards$1 = 1; + + guards$1.__esModule = true; + guards$1.isComment = guards$1.isCombinator = guards$1.isClassName = guards$1.isAttribute = void 0; + guards$1.isContainer = isContainer; + guards$1.isIdentifier = void 0; + guards$1.isNamespace = isNamespace; + guards$1.isNesting = void 0; + guards$1.isNode = isNode; + guards$1.isPseudo = void 0; + guards$1.isPseudoClass = isPseudoClass; + guards$1.isPseudoElement = isPseudoElement; + guards$1.isUniversal = guards$1.isTag = guards$1.isString = guards$1.isSelector = guards$1.isRoot = void 0; + var _types = /*@__PURE__*/ requireTypes$1(); + var _IS_TYPE; + var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE); + function isNode(node) { + return typeof node === "object" && IS_TYPE[node.type]; + } + function isNodeType(type, node) { + return isNode(node) && node.type === type; + } + var isAttribute = isNodeType.bind(null, _types.ATTRIBUTE); + guards$1.isAttribute = isAttribute; + var isClassName = isNodeType.bind(null, _types.CLASS); + guards$1.isClassName = isClassName; + var isCombinator = isNodeType.bind(null, _types.COMBINATOR); + guards$1.isCombinator = isCombinator; + var isComment = isNodeType.bind(null, _types.COMMENT); + guards$1.isComment = isComment; + var isIdentifier = isNodeType.bind(null, _types.ID); + guards$1.isIdentifier = isIdentifier; + var isNesting = isNodeType.bind(null, _types.NESTING); + guards$1.isNesting = isNesting; + var isPseudo = isNodeType.bind(null, _types.PSEUDO); + guards$1.isPseudo = isPseudo; + var isRoot = isNodeType.bind(null, _types.ROOT); + guards$1.isRoot = isRoot; + var isSelector = isNodeType.bind(null, _types.SELECTOR); + guards$1.isSelector = isSelector; + var isString = isNodeType.bind(null, _types.STRING); + guards$1.isString = isString; + var isTag = isNodeType.bind(null, _types.TAG); + guards$1.isTag = isTag; + var isUniversal = isNodeType.bind(null, _types.UNIVERSAL); + guards$1.isUniversal = isUniversal; + function isPseudoElement(node) { + return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value.toLowerCase() === ":before" || node.value.toLowerCase() === ":after" || node.value.toLowerCase() === ":first-letter" || node.value.toLowerCase() === ":first-line"); + } + function isPseudoClass(node) { + return isPseudo(node) && !isPseudoElement(node); + } + function isContainer(node) { + return !!(isNode(node) && node.walk); + } + function isNamespace(node) { + return isAttribute(node) || isTag(node); + } + return guards$1; +} + +var hasRequiredSelectors$1; + +function requireSelectors$1 () { + if (hasRequiredSelectors$1) return selectors$1; + hasRequiredSelectors$1 = 1; + (function (exports$1) { + + exports$1.__esModule = true; + var _types = /*@__PURE__*/ requireTypes$1(); + Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _types[key]) return; + exports$1[key] = _types[key]; + }); + var _constructors = /*@__PURE__*/ requireConstructors$1(); + Object.keys(_constructors).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _constructors[key]) return; + exports$1[key] = _constructors[key]; + }); + var _guards = /*@__PURE__*/ requireGuards$1(); + Object.keys(_guards).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _guards[key]) return; + exports$1[key] = _guards[key]; + }); + } (selectors$1)); + return selectors$1; +} + +var hasRequiredDist$1; + +function requireDist$1 () { + if (hasRequiredDist$1) return dist$1.exports; + hasRequiredDist$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _processor = _interopRequireDefault(/*@__PURE__*/ requireProcessor$1()); + var selectors = _interopRequireWildcard(/*@__PURE__*/ requireSelectors$1()); + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var parser = function parser(processor) { + return new _processor["default"](processor); + }; + Object.assign(parser, selectors); + delete parser.__esModule; + var _default = parser; + exports$1["default"] = _default; + module.exports = exports$1.default; + } (dist$1, dist$1.exports)); + return dist$1.exports; +} + +var distExports = /*@__PURE__*/ requireDist$1(); +var selectorParser = /*@__PURE__*/getDefaultExportFromCjs(distExports); + +const animationNameRE = /^(?:-\w+-)?animation-name$/; +const animationRE = /^(?:-\w+-)?animation$/; +const keyframesRE = /^(?:-\w+-)?keyframes$/; +const scopedPlugin = (id = "") => { + const keyframes = /* @__PURE__ */ Object.create(null); + const shortId = id.replace(/^data-v-/, ""); + return { + postcssPlugin: "vue-sfc-scoped", + Rule(rule) { + processRule(id, rule); + }, + AtRule(node) { + if (keyframesRE.test(node.name) && !node.params.endsWith(`-${shortId}`)) { + keyframes[node.params] = node.params = node.params + "-" + shortId; + } + }, + OnceExit(root) { + if (Object.keys(keyframes).length) { + root.walkDecls((decl) => { + if (animationNameRE.test(decl.prop)) { + decl.value = decl.value.split(",").map((v) => keyframes[v.trim()] || v.trim()).join(","); + } + if (animationRE.test(decl.prop)) { + decl.value = decl.value.split(",").map((v) => { + const vals = v.trim().split(/\s+/); + const i = vals.findIndex((val) => keyframes[val]); + if (i !== -1) { + vals.splice(i, 1, keyframes[vals[i]]); + return vals.join(" "); + } else { + return v; + } + }).join(","); + } + }); + } + } + }; +}; +const processedRules = /* @__PURE__ */ new WeakSet(); +function processRule(id, rule) { + if (processedRules.has(rule) || rule.parent && rule.parent.type === "atrule" && keyframesRE.test(rule.parent.name)) { + return; + } + processedRules.add(rule); + let deep = false; + let parent = rule.parent; + while (parent && parent.type !== "root") { + if (parent.__deep) { + deep = true; + break; + } + parent = parent.parent; + } + rule.selector = selectorParser((selectorRoot) => { + selectorRoot.each((selector) => { + rewriteSelector(id, rule, selector, selectorRoot, deep); + }); + }).processSync(rule.selector); +} +function rewriteSelector(id, rule, selector, selectorRoot, deep, slotted = false) { + let node = null; + let shouldInject = !deep; + selector.each((n) => { + if (n.type === "combinator" && (n.value === ">>>" || n.value === "/deep/")) { + n.value = " "; + n.spaces.before = n.spaces.after = ""; + warn( + `the >>> and /deep/ combinators have been deprecated. Use :deep() instead.` + ); + return false; + } + if (n.type === "pseudo") { + const { value } = n; + if (value === ":deep" || value === "::v-deep") { + rule.__deep = true; + if (n.nodes.length) { + let last = n; + n.nodes[0].each((ss) => { + selector.insertAfter(last, ss); + last = ss; + }); + const prev = selector.at(selector.index(n) - 1); + if (!prev || !isSpaceCombinator(prev)) { + selector.insertAfter( + n, + selectorParser.combinator({ + value: " " + }) + ); + } + selector.removeChild(n); + } else { + warn( + `${value} usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead of ${value} <inner-selector>.` + ); + const prev = selector.at(selector.index(n) - 1); + if (prev && isSpaceCombinator(prev)) { + selector.removeChild(prev); + } + selector.removeChild(n); + } + return false; + } + if (value === ":slotted" || value === "::v-slotted") { + rewriteSelector( + id, + rule, + n.nodes[0], + selectorRoot, + deep, + true + ); + let last = n; + n.nodes[0].each((ss) => { + selector.insertAfter(last, ss); + last = ss; + }); + selector.removeChild(n); + shouldInject = false; + return false; + } + if (value === ":global" || value === "::v-global") { + selector.replaceWith(n.nodes[0]); + return false; + } + } + if (n.type === "universal") { + const prev = selector.at(selector.index(n) - 1); + const next = selector.at(selector.index(n) + 1); + if (!prev) { + if (next) { + if (next.type === "combinator" && next.value === " ") { + selector.removeChild(next); + } + selector.removeChild(n); + return; + } else { + node = selectorParser.combinator({ + value: "" + }); + selector.insertBefore(n, node); + selector.removeChild(n); + return false; + } + } + if (node) return; + } + if (n.type !== "pseudo" && n.type !== "combinator" || n.type === "pseudo" && (n.value === ":is" || n.value === ":where") && !node) { + node = n; + } + }); + if (rule.nodes.some((node2) => node2.type === "rule")) { + const deep2 = rule.__deep; + if (!deep2) { + extractAndWrapNodes(rule); + const atruleNodes = rule.nodes.filter((node2) => node2.type === "atrule"); + for (const atnode of atruleNodes) { + extractAndWrapNodes(atnode); + } + } + shouldInject = deep2; + } + if (node) { + const { type, value } = node; + if (type === "pseudo" && (value === ":is" || value === ":where")) { + node.nodes.forEach( + (value2) => rewriteSelector(id, rule, value2, selectorRoot, deep, slotted) + ); + shouldInject = false; + } + } + if (node) { + node.spaces.after = ""; + } else { + selector.first.spaces.before = ""; + } + if (shouldInject) { + const idToAdd = slotted ? id + "-s" : id; + selector.insertAfter( + // If node is null it means we need to inject [id] at the start + // insertAfter can handle `null` here + node, + selectorParser.attribute({ + attribute: idToAdd, + value: idToAdd, + raws: {}, + quoteMark: `"` + }) + ); + } +} +function isSpaceCombinator(node) { + return node.type === "combinator" && /^\s+$/.test(node.value); +} +function extractAndWrapNodes(parentNode) { + if (!parentNode.nodes) return; + const nodes = parentNode.nodes.filter( + (node) => node.type === "decl" || node.type === "comment" + ); + if (nodes.length) { + for (const node of nodes) { + parentNode.removeChild(node); + } + const wrappedRule = new require$$0$1.Rule({ + nodes, + selector: "&" + }); + parentNode.prepend(wrappedRule); + } +} +scopedPlugin.postcss = true; + +var sourceMap = {}; + +var sourceMapGenerator = {}; + +var base64Vlq = {}; + +var base64 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBase64; + +function requireBase64 () { + if (hasRequiredBase64) return base64; + hasRequiredBase64 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + + /** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ + base64.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + + /** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ + base64.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; + }; + return base64; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBase64Vlq; + +function requireBase64Vlq () { + if (hasRequiredBase64Vlq) return base64Vlq; + hasRequiredBase64Vlq = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + var base64 = /*@__PURE__*/ requireBase64(); + + // A single base 64 digit can contain 6 bits of data. For the base 64 variable + // length quantities we use in the source map spec, the first bit is the sign, + // the next four bits are the actual value, and the 6th bit is the + // continuation bit. The continuation bit tells us whether there are more + // digits in this value following this digit. + // + // Continuation + // | Sign + // | | + // V V + // 101011 + + var VLQ_BASE_SHIFT = 5; + + // binary: 100000 + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + + // binary: 011111 + var VLQ_BASE_MASK = VLQ_BASE - 1; + + // binary: 100000 + var VLQ_CONTINUATION_BIT = VLQ_BASE; + + /** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ + function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; + } + + /** + * Returns the base 64 VLQ encoded value. + */ + base64Vlq.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; + }; + + /** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ + base64Vlq.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; + return base64Vlq; +} + +var util$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredUtil$1; + +function requireUtil$1 () { + if (hasRequiredUtil$1) return util$1; + hasRequiredUtil$1 = 1; + (function (exports$1) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + /** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports$1.getArg = getArg; + + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports$1.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports$1.urlGenerate = urlGenerate; + + /** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ + function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports$1.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + } + exports$1.normalize = normalize; + + /** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports$1.join = join; + + exports$1.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); + }; + + /** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports$1.relative = relative; + + var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); + }()); + + function identity (s) { + return s; + } + + /** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; + } + exports$1.toSetString = supportsNullProto ? identity : toSetString; + + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; + } + exports$1.fromSetString = supportsNullProto ? identity : fromSetString; + + function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; + } + + /** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByOriginalPositions = compareByOriginalPositions; + + /** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; + } + + /** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + + /** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); + } + exports$1.parseSourceMapInput = parseSourceMapInput; + + /** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); + } + exports$1.computeSourceURL = computeSourceURL; + } (util$1)); + return util$1; +} + +var arraySet = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredArraySet; + +function requireArraySet () { + if (hasRequiredArraySet) return arraySet; + hasRequiredArraySet = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil$1(); + var has = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + + /** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); + } + + /** + * Static method for creating ArraySet instances from an existing array. + */ + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + }; + + /** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + + /** + * Add the given string to this set. + * + * @param String aStr + */ + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + + /** + * Is the given string a member of this set? + * + * @param String aStr + */ + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } + }; + + /** + * What is the index of the given string in the array? + * + * @param String aStr + */ + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); + }; + + /** + * What is the element at the given index? + * + * @param Number aIdx + */ + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); + }; + + /** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + + arraySet.ArraySet = ArraySet; + return arraySet; +} + +var mappingList = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredMappingList; + +function requireMappingList () { + if (hasRequiredMappingList) return mappingList; + hasRequiredMappingList = 1; + /* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil$1(); + + /** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ + function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + + /** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ + function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + + mappingList.MappingList = MappingList; + return mappingList; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceMapGenerator; + +function requireSourceMapGenerator () { + if (hasRequiredSourceMapGenerator) return sourceMapGenerator; + hasRequiredSourceMapGenerator = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var base64VLQ = /*@__PURE__*/ requireBase64Vlq(); + var util = /*@__PURE__*/ requireUtil$1(); + var ArraySet = /*@__PURE__*/ requireArraySet().ArraySet; + var MappingList = /*@__PURE__*/ requireMappingList().MappingList; + + /** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + + SourceMapGenerator.prototype._version = 3; + + /** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ + SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ + SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + + /** + * Set the source content for a source file. + */ + SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + + /** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ + SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + + /** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ + SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + + /** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ + SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ''; + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + + SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + + /** + * Externalize the source map. + */ + SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + + /** + * Render the source map being generated to a string. + */ + SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + + sourceMapGenerator.SourceMapGenerator = SourceMapGenerator; + return sourceMapGenerator; +} + +var sourceMapConsumer = {}; + +var binarySearch = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBinarySearch; + +function requireBinarySearch () { + if (hasRequiredBinarySearch) return binarySearch; + hasRequiredBinarySearch = 1; + (function (exports$1) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + exports$1.GREATEST_LOWER_BOUND = 1; + exports$1.LEAST_UPPER_BOUND = 2; + + /** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports$1.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports$1.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + + /** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ + exports$1.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports$1.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; + }; + } (binarySearch)); + return binarySearch; +} + +var quickSort = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredQuickSort; + +function requireQuickSort () { + if (hasRequiredQuickSort) return quickSort; + hasRequiredQuickSort = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + // It turns out that some (most?) JavaScript engines don't self-host + // `Array.prototype.sort`. This makes sense because C++ will likely remain + // faster than JS when doing raw CPU-intensive sorting. However, when using a + // custom comparator function, calling back and forth between the VM's C++ and + // JIT'd JS is rather slow *and* loses JIT type information, resulting in + // worse generated code for the comparator function than would be optimal. In + // fact, when sorting with a comparator, these costs outweigh the benefits of + // sorting in C++. By using our own JS-implemented Quick Sort (below), we get + // a ~3500ms mean speed-up in `bench/bench.html`. + + /** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + + /** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ + function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); + } + + /** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ + function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } + } + + /** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + quickSort.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); + }; + return quickSort; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceMapConsumer; + +function requireSourceMapConsumer () { + if (hasRequiredSourceMapConsumer) return sourceMapConsumer; + hasRequiredSourceMapConsumer = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil$1(); + var binarySearch = /*@__PURE__*/ requireBinarySearch(); + var ArraySet = /*@__PURE__*/ requireArraySet().ArraySet; + var base64VLQ = /*@__PURE__*/ requireBase64Vlq(); + var quickSort = /*@__PURE__*/ requireQuickSort().quickSort; + + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + SourceMapConsumer.prototype._version = 3; + + // `__generatedMappings` and `__originalMappings` are arrays that hold the + // parsed mapping coordinates from the source map's "mappings" attribute. They + // are lazily instantiated, accessed via the `_generatedMappings` and + // `_originalMappings` getters respectively, and we only parse the mappings + // and create these arrays once queried for a source location. We jump through + // these hoops because there can be many thousands of mappings, and parsing + // them is expensive, so we only want to do it if we must. + // + // Each object in the arrays is of the form: + // + // { + // generatedLine: The line number in the generated code, + // generatedColumn: The column number in the generated code, + // source: The path to the original source file that generated this + // chunk of code, + // originalLine: The line number in the original source that + // corresponds to this chunk of generated code, + // originalColumn: The column number in the original source that + // corresponds to this chunk of generated code, + // name: The name of the original symbol which generated this chunk of + // code. + // } + // + // All properties except for `generatedLine` and `generatedColumn` can be + // `null`. + // + // `_generatedMappings` is ordered by the generated positions. + // + // `_originalMappings` is ordered by the original positions. + + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } + }); + + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } + }); + + SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + + /** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ + SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + + /** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + + sourceMapConsumer.SourceMapConsumer = SourceMapConsumer; + + /** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + + /** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; + }; + + /** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ + BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + BasicSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } + }); + + /** + * Provide the JIT with a nice shape / hidden class. + */ + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + + /** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ + BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + + sourceMapConsumer.BasicSourceMapConsumer = BasicSourceMapConsumer; + + /** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); + } + + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + + /** + * The version of the source mapping spec that we are consuming. + */ + IndexedSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + + sourceMapConsumer.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + return sourceMapConsumer; +} + +var sourceNode = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceNode; + +function requireSourceNode () { + if (hasRequiredSourceNode) return sourceNode; + hasRequiredSourceNode = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var SourceMapGenerator = /*@__PURE__*/ requireSourceMapGenerator().SourceMapGenerator; + var util = /*@__PURE__*/ requireUtil$1(); + + // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other + // operating systems these days (capturing the result). + var REGEX_NEWLINE = /(\r?\n)/; + + // Newline character code for charCodeAt() comparisons + var NEWLINE_CODE = 10; + + // Private symbol for identifying `SourceNode`s when multiple versions of + // the source-map library are loaded. This MUST NOT CHANGE across + // versions! + var isSourceNode = "$$$isSourceNode$$$"; + + /** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); + } + + /** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ + SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + + /** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } + }; + + /** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + + /** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; + }; + + /** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ + SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + + /** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + + /** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ + SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; + }; + + /** + * Returns the string representation of this source node along with a source + * map. + */ + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; + }; + + sourceNode.SourceNode = SourceNode; + return sourceNode; +} + +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var hasRequiredSourceMap; + +function requireSourceMap () { + if (hasRequiredSourceMap) return sourceMap; + hasRequiredSourceMap = 1; + sourceMap.SourceMapGenerator = /*@__PURE__*/ requireSourceMapGenerator().SourceMapGenerator; + sourceMap.SourceMapConsumer = /*@__PURE__*/ requireSourceMapConsumer().SourceMapConsumer; + sourceMap.SourceNode = /*@__PURE__*/ requireSourceNode().SourceNode; + return sourceMap; +} + +var mergeSourceMap; +var hasRequiredMergeSourceMap; + +function requireMergeSourceMap () { + if (hasRequiredMergeSourceMap) return mergeSourceMap; + hasRequiredMergeSourceMap = 1; + var sourceMap = /*@__PURE__*/ requireSourceMap(); + var SourceMapConsumer = sourceMap.SourceMapConsumer; + var SourceMapGenerator = sourceMap.SourceMapGenerator; + + mergeSourceMap = merge; + + /** + * Merge old source map and new source map and return merged. + * If old or new source map value is falsy, return another one as it is. + * + * @param {object|string} [oldMap] old source map object + * @param {object|string} [newmap] new source map object + * @return {object|undefined} merged source map object, or undefined when both old and new source map are undefined + */ + function merge(oldMap, newMap) { + if (!oldMap) return newMap + if (!newMap) return oldMap + + var oldMapConsumer = new SourceMapConsumer(oldMap); + var newMapConsumer = new SourceMapConsumer(newMap); + var mergedMapGenerator = new SourceMapGenerator(); + + // iterate on new map and overwrite original position of new map with one of old map + newMapConsumer.eachMapping(function(m) { + // pass when `originalLine` is null. + // It occurs in case that the node does not have origin in original code. + if (m.originalLine == null) return + + var origPosInOldMap = oldMapConsumer.originalPositionFor({ + line: m.originalLine, + column: m.originalColumn + }); + + if (origPosInOldMap.source == null) return + + mergedMapGenerator.addMapping({ + original: { + line: origPosInOldMap.line, + column: origPosInOldMap.column + }, + generated: { + line: m.generatedLine, + column: m.generatedColumn + }, + source: origPosInOldMap.source, + name: origPosInOldMap.name + }); + }); + + var consumers = [oldMapConsumer, newMapConsumer]; + consumers.forEach(function(consumer) { + consumer.sources.forEach(function(sourceFile) { + mergedMapGenerator._sources.add(sourceFile); + var sourceContent = consumer.sourceContentFor(sourceFile); + if (sourceContent != null) { + mergedMapGenerator.setSourceContent(sourceFile, sourceContent); + } + }); + }); + + mergedMapGenerator._sourceRoot = oldMap.sourceRoot; + mergedMapGenerator._file = oldMap.file; + + return JSON.parse(mergedMapGenerator.toString()) + } + return mergeSourceMap; +} + +var mergeSourceMapExports = /*@__PURE__*/ requireMergeSourceMap(); +var merge = /*@__PURE__*/getDefaultExportFromCjs(mergeSourceMapExports); + +const scss = (source, map, options, load = require) => { + const nodeSass = load("sass"); + const { compileString, renderSync } = nodeSass; + const data = getSource(source, options.filename, options.additionalData); + let css; + let dependencies; + let sourceMap; + try { + if (compileString) { + const { pathToFileURL, fileURLToPath } = load("url"); + const result = compileString(data, { + ...options, + url: pathToFileURL(options.filename), + sourceMap: !!map + }); + css = result.css; + dependencies = result.loadedUrls.map((url) => fileURLToPath(url)); + sourceMap = map ? result.sourceMap : void 0; + } else { + const result = renderSync({ + ...options, + data, + file: options.filename, + outFile: options.filename, + sourceMap: !!map + }); + css = result.css.toString(); + dependencies = result.stats.includedFiles; + sourceMap = map ? JSON.parse(result.map.toString()) : void 0; + } + if (map) { + return { + code: css, + errors: [], + dependencies, + map: merge(map, sourceMap) + }; + } + return { code: css, errors: [], dependencies }; + } catch (e) { + return { code: "", errors: [e], dependencies: [] }; + } +}; +const sass = (source, map, options, load) => scss( + source, + map, + { + ...options, + indentedSyntax: true + }, + load +); +const less = (source, map, options, load = require) => { + const nodeLess = load("less"); + let result; + let error = null; + nodeLess.render( + getSource(source, options.filename, options.additionalData), + { ...options, syncImport: true }, + (err, output) => { + error = err; + result = output; + } + ); + if (error) return { code: "", errors: [error], dependencies: [] }; + const dependencies = result.imports; + if (map) { + return { + code: result.css.toString(), + map: merge(map, result.map), + errors: [], + dependencies + }; + } + return { + code: result.css.toString(), + errors: [], + dependencies + }; +}; +const styl = (source, map, options, load = require) => { + const nodeStylus = load("stylus"); + try { + const ref = nodeStylus(source, options); + if (map) ref.set("sourcemap", { inline: false, comment: false }); + const result = ref.render(); + const dependencies = ref.deps(); + if (map) { + return { + code: result, + map: merge(map, ref.sourcemap), + errors: [], + dependencies + }; + } + return { code: result, errors: [], dependencies }; + } catch (e) { + return { code: "", errors: [e], dependencies: [] }; + } +}; +function getSource(source, filename, additionalData) { + if (!additionalData) return source; + if (shared.isFunction(additionalData)) { + return additionalData(source, filename); + } + return additionalData + source; +} +const processors = { + less, + sass, + scss, + styl, + stylus: styl +}; + +var build = {exports: {}}; + +var fs = {}; + +var hasRequiredFs; + +function requireFs () { + if (hasRequiredFs) return fs; + hasRequiredFs = 1; + + Object.defineProperty(fs, "__esModule", { + value: true + }); + fs.getFileSystem = getFileSystem; + fs.setFileSystem = setFileSystem; + let fileSystem = { + readFile: () => { + throw Error("readFile not implemented"); + }, + writeFile: () => { + throw Error("writeFile not implemented"); + } + }; + + function setFileSystem(fs) { + fileSystem.readFile = fs.readFile; + fileSystem.writeFile = fs.writeFile; + } + + function getFileSystem() { + return fileSystem; + } + return fs; +} + +var pluginFactory = {}; + +var unquote = {}; + +var hasRequiredUnquote; + +function requireUnquote () { + if (hasRequiredUnquote) return unquote; + hasRequiredUnquote = 1; + + Object.defineProperty(unquote, "__esModule", { + value: true + }); + unquote.default = unquote$1; + // copied from https://github.com/lakenen/node-unquote + const reg = /['"]/; + + function unquote$1(str) { + if (!str) { + return ""; + } + + if (reg.test(str.charAt(0))) { + str = str.substr(1); + } + + if (reg.test(str.charAt(str.length - 1))) { + str = str.substr(0, str.length - 1); + } + + return str; + } + return unquote; +} + +var Parser = {}; + +var replaceValueSymbols_1; +var hasRequiredReplaceValueSymbols; + +function requireReplaceValueSymbols () { + if (hasRequiredReplaceValueSymbols) return replaceValueSymbols_1; + hasRequiredReplaceValueSymbols = 1; + const matchValueName = /[$]?[\w-]+/g; + + const replaceValueSymbols = (value, replacements) => { + let matches; + + while ((matches = matchValueName.exec(value))) { + const replacement = replacements[matches[0]]; + + if (replacement) { + value = + value.slice(0, matches.index) + + replacement + + value.slice(matchValueName.lastIndex); + + matchValueName.lastIndex -= matches[0].length - replacement.length; + } + } + + return value; + }; + + replaceValueSymbols_1 = replaceValueSymbols; + return replaceValueSymbols_1; +} + +var replaceSymbols_1; +var hasRequiredReplaceSymbols; + +function requireReplaceSymbols () { + if (hasRequiredReplaceSymbols) return replaceSymbols_1; + hasRequiredReplaceSymbols = 1; + const replaceValueSymbols = /*@__PURE__*/ requireReplaceValueSymbols(); + + const replaceSymbols = (css, replacements) => { + css.walk((node) => { + if (node.type === "decl" && node.value) { + node.value = replaceValueSymbols(node.value.toString(), replacements); + } else if (node.type === "rule" && node.selector) { + node.selector = replaceValueSymbols( + node.selector.toString(), + replacements + ); + } else if (node.type === "atrule" && node.params) { + node.params = replaceValueSymbols(node.params.toString(), replacements); + } + }); + }; + + replaceSymbols_1 = replaceSymbols; + return replaceSymbols_1; +} + +var extractICSS_1; +var hasRequiredExtractICSS; + +function requireExtractICSS () { + if (hasRequiredExtractICSS) return extractICSS_1; + hasRequiredExtractICSS = 1; + const importPattern = /^:import\(("[^"]*"|'[^']*'|[^"']+)\)$/; + const balancedQuotes = /^("[^"]*"|'[^']*'|[^"']+)$/; + + const getDeclsObject = (rule) => { + const object = {}; + + rule.walkDecls((decl) => { + const before = decl.raws.before ? decl.raws.before.trim() : ""; + + object[before + decl.prop] = decl.value; + }); + + return object; + }; + /** + * + * @param {string} css + * @param {boolean} removeRules + * @param {'auto' | 'rule' | 'at-rule'} mode + */ + const extractICSS = (css, removeRules = true, mode = "auto") => { + const icssImports = {}; + const icssExports = {}; + + function addImports(node, path) { + const unquoted = path.replace(/'|"/g, ""); + icssImports[unquoted] = Object.assign( + icssImports[unquoted] || {}, + getDeclsObject(node) + ); + + if (removeRules) { + node.remove(); + } + } + + function addExports(node) { + Object.assign(icssExports, getDeclsObject(node)); + if (removeRules) { + node.remove(); + } + } + + css.each((node) => { + if (node.type === "rule" && mode !== "at-rule") { + if (node.selector.slice(0, 7) === ":import") { + const matches = importPattern.exec(node.selector); + + if (matches) { + addImports(node, matches[1]); + } + } + + if (node.selector === ":export") { + addExports(node); + } + } + + if (node.type === "atrule" && mode !== "rule") { + if (node.name === "icss-import") { + const matches = balancedQuotes.exec(node.params); + + if (matches) { + addImports(node, matches[1]); + } + } + if (node.name === "icss-export") { + addExports(node); + } + } + }); + + return { icssImports, icssExports }; + }; + + extractICSS_1 = extractICSS; + return extractICSS_1; +} + +var createICSSRules_1; +var hasRequiredCreateICSSRules; + +function requireCreateICSSRules () { + if (hasRequiredCreateICSSRules) return createICSSRules_1; + hasRequiredCreateICSSRules = 1; + const createImports = (imports, postcss, mode = "rule") => { + return Object.keys(imports).map((path) => { + const aliases = imports[path]; + const declarations = Object.keys(aliases).map((key) => + postcss.decl({ + prop: key, + value: aliases[key], + raws: { before: "\n " }, + }) + ); + + const hasDeclarations = declarations.length > 0; + + const rule = + mode === "rule" + ? postcss.rule({ + selector: `:import('${path}')`, + raws: { after: hasDeclarations ? "\n" : "" }, + }) + : postcss.atRule({ + name: "icss-import", + params: `'${path}'`, + raws: { after: hasDeclarations ? "\n" : "" }, + }); + + if (hasDeclarations) { + rule.append(declarations); + } + + return rule; + }); + }; + + const createExports = (exports$1, postcss, mode = "rule") => { + const declarations = Object.keys(exports$1).map((key) => + postcss.decl({ + prop: key, + value: exports$1[key], + raws: { before: "\n " }, + }) + ); + + if (declarations.length === 0) { + return []; + } + const rule = + mode === "rule" + ? postcss.rule({ + selector: `:export`, + raws: { after: "\n" }, + }) + : postcss.atRule({ + name: "icss-export", + raws: { after: "\n" }, + }); + + rule.append(declarations); + + return [rule]; + }; + + const createICSSRules = (imports, exports$1, postcss, mode) => [ + ...createImports(imports, postcss, mode), + ...createExports(exports$1, postcss, mode), + ]; + + createICSSRules_1 = createICSSRules; + return createICSSRules_1; +} + +var src$4; +var hasRequiredSrc$4; + +function requireSrc$4 () { + if (hasRequiredSrc$4) return src$4; + hasRequiredSrc$4 = 1; + const replaceValueSymbols = /*@__PURE__*/ requireReplaceValueSymbols(); + const replaceSymbols = /*@__PURE__*/ requireReplaceSymbols(); + const extractICSS = /*@__PURE__*/ requireExtractICSS(); + const createICSSRules = /*@__PURE__*/ requireCreateICSSRules(); + + src$4 = { + replaceValueSymbols, + replaceSymbols, + extractICSS, + createICSSRules, + }; + return src$4; +} + +var hasRequiredParser$1; + +function requireParser$1 () { + if (hasRequiredParser$1) return Parser; + hasRequiredParser$1 = 1; + + Object.defineProperty(Parser, "__esModule", { + value: true + }); + Parser.default = void 0; + + var _icssUtils = /*@__PURE__*/ requireSrc$4(); + + // Initially copied from https://github.com/css-modules/css-modules-loader-core + const importRegexp = /^:import\((.+)\)$/; + + let Parser$1 = class Parser { + constructor(pathFetcher, trace) { + this.pathFetcher = pathFetcher; + this.plugin = this.plugin.bind(this); + this.exportTokens = {}; + this.translations = {}; + this.trace = trace; + } + + plugin() { + const parser = this; + return { + postcssPlugin: "css-modules-parser", + + async OnceExit(css) { + await Promise.all(parser.fetchAllImports(css)); + parser.linkImportedSymbols(css); + return parser.extractExports(css); + } + + }; + } + + fetchAllImports(css) { + let imports = []; + css.each(node => { + if (node.type == "rule" && node.selector.match(importRegexp)) { + imports.push(this.fetchImport(node, css.source.input.from, imports.length)); + } + }); + return imports; + } + + linkImportedSymbols(css) { + (0, _icssUtils.replaceSymbols)(css, this.translations); + } + + extractExports(css) { + css.each(node => { + if (node.type == "rule" && node.selector == ":export") this.handleExport(node); + }); + } + + handleExport(exportNode) { + exportNode.each(decl => { + if (decl.type == "decl") { + Object.keys(this.translations).forEach(translation => { + decl.value = decl.value.replace(translation, this.translations[translation]); + }); + this.exportTokens[decl.prop] = decl.value; + } + }); + exportNode.remove(); + } + + async fetchImport(importNode, relativeTo, depNr) { + const file = importNode.selector.match(importRegexp)[1]; + const depTrace = this.trace + String.fromCharCode(depNr); + const exports$1 = await this.pathFetcher(file, relativeTo, depTrace); + + try { + importNode.each(decl => { + if (decl.type == "decl") { + this.translations[decl.prop] = exports$1[decl.value]; + } + }); + importNode.remove(); + } catch (err) { + console.log(err); + } + } + + }; + + Parser.default = Parser$1; + return Parser; +} + +var saveJSON = {}; + +var hasRequiredSaveJSON; + +function requireSaveJSON () { + if (hasRequiredSaveJSON) return saveJSON; + hasRequiredSaveJSON = 1; + + Object.defineProperty(saveJSON, "__esModule", { + value: true + }); + saveJSON.default = saveJSON$1; + + var _fs = /*@__PURE__*/ requireFs(); + + function saveJSON$1(cssFile, json) { + return new Promise((resolve, reject) => { + const { + writeFile + } = (0, _fs.getFileSystem)(); + writeFile(`${cssFile}.json`, JSON.stringify(json), e => e ? reject(e) : resolve(json)); + }); + } + return saveJSON; +} + +var localsConvention = {}; + +/** + * lodash (Custom Build) <https://lodash.com/> + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors <https://jquery.org/> + * Released under MIT license <https://lodash.com/license> + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +var lodash_camelcase; +var hasRequiredLodash_camelcase; + +function requireLodash_camelcase () { + if (hasRequiredLodash_camelcase) return lodash_camelcase; + hasRequiredLodash_camelcase = 1; + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** Used to match words composed of alphanumeric characters. */ + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + + /** Used to match Latin Unicode letters (excluding mathematical operators). */ + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + + /** Used to compose unicode character classes. */ + var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', + rsComboSymbolsRange = '\\u20d0-\\u20f0', + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsPunctuationRange = '\\u2000-\\u206f', + rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + + /** Used to compose unicode capture groups. */ + var rsApos = "['\u2019]", + rsAstral = '[' + rsAstralRange + ']', + rsBreak = '[' + rsBreakRange + ']', + rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', + rsDigits = '\\d+', + rsDingbat = '[' + rsDingbatRange + ']', + rsLower = '[' + rsLowerRange + ']', + rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsUpper = '[' + rsUpperRange + ']', + rsZWJ = '\\u200d'; + + /** Used to compose unicode regexes. */ + var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')', + rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + + /** Used to match apostrophes. */ + var reApos = RegExp(rsApos, 'g'); + + /** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ + var reComboMark = RegExp(rsCombo, 'g'); + + /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ + var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + + /** Used to match complex or compound words. */ + var reUnicodeWord = RegExp([ + rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')', + rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr, + rsUpper + '+' + rsOptUpperContr, + rsDigits, + rsEmoji + ].join('|'), 'g'); + + /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ + var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); + + /** Used to detect strings that need a more robust regexp to match words. */ + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + + /** Used to map Latin Unicode letters to basic Latin letters. */ + var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 'ss' + }; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array ? array.length : 0; + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + + /** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function asciiToArray(string) { + return string.split(''); + } + + /** + * Splits an ASCII `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; + } + + /** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */ + var deburrLetter = basePropertyOf(deburredLetters); + + /** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ + function hasUnicode(string) { + return reHasUnicode.test(string); + } + + /** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */ + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + + /** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); + } + + /** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + + /** + * Splits a Unicode `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** Built-in value references. */ + var Symbol = root.Symbol; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -Infinity) ? '-0' : result; + } + + /** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); + } + + /** + * Creates a function like `_.lowerFirst`. + * + * @private + * @param {string} methodName The name of the `String` case method to use. + * @returns {Function} Returns the new case function. + */ + function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + + var strSymbols = hasUnicode(string) + ? stringToArray(string) + : undefined; + + var chr = strSymbols + ? strSymbols[0] + : string.charAt(0); + + var trailing = strSymbols + ? castSlice(strSymbols, 1).join('') + : string.slice(1); + + return chr[methodName]() + trailing; + }; + } + + /** + * Creates a function like `_.camelCase`. + * + * @private + * @param {Function} callback The function to combine each word. + * @returns {Function} Returns the new compounder function. + */ + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); + }; + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); + } + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {string} Returns the string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + return value == null ? '' : baseToString(value); + } + + /** + * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the camel cased string. + * @example + * + * _.camelCase('Foo Bar'); + * // => 'fooBar' + * + * _.camelCase('--foo-bar--'); + * // => 'fooBar' + * + * _.camelCase('__FOO_BAR__'); + * // => 'fooBar' + */ + var camelCase = createCompounder(function(result, word, index) { + word = word.toLowerCase(); + return result + (index ? capitalize(word) : word); + }); + + /** + * Converts the first character of `string` to upper case and the remaining + * to lower case. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to capitalize. + * @returns {string} Returns the capitalized string. + * @example + * + * _.capitalize('FRED'); + * // => 'Fred' + */ + function capitalize(string) { + return upperFirst(toString(string).toLowerCase()); + } + + /** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */ + function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); + } + + /** + * Converts the first character of `string` to upper case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.upperFirst('fred'); + * // => 'Fred' + * + * _.upperFirst('FRED'); + * // => 'FRED' + */ + var upperFirst = createCaseFirst('toUpperCase'); + + /** + * Splits `string` into an array of its words. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {RegExp|string} [pattern] The pattern to match words. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the words of `string`. + * @example + * + * _.words('fred, barney, & pebbles'); + * // => ['fred', 'barney', 'pebbles'] + * + * _.words('fred, barney, & pebbles', /[^, ]+/g); + * // => ['fred', 'barney', '&', 'pebbles'] + */ + function words(string, pattern, guard) { + string = toString(string); + pattern = pattern; + + if (pattern === undefined) { + return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); + } + return string.match(pattern) || []; + } + + lodash_camelcase = camelCase; + return lodash_camelcase; +} + +var hasRequiredLocalsConvention; + +function requireLocalsConvention () { + if (hasRequiredLocalsConvention) return localsConvention; + hasRequiredLocalsConvention = 1; + + Object.defineProperty(localsConvention, "__esModule", { + value: true + }); + localsConvention.makeLocalsConventionReducer = makeLocalsConventionReducer; + + var _lodash = _interopRequireDefault(/*@__PURE__*/ requireLodash_camelcase()); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function dashesCamelCase(string) { + return string.replace(/-+(\w)/g, (_, firstLetter) => firstLetter.toUpperCase()); + } + + function makeLocalsConventionReducer(localsConvention, inputFile) { + const isFunc = typeof localsConvention === "function"; + return (tokens, [className, value]) => { + if (isFunc) { + const convention = localsConvention(className, value, inputFile); + tokens[convention] = value; + return tokens; + } + + switch (localsConvention) { + case "camelCase": + tokens[className] = value; + tokens[(0, _lodash.default)(className)] = value; + break; + + case "camelCaseOnly": + tokens[(0, _lodash.default)(className)] = value; + break; + + case "dashes": + tokens[className] = value; + tokens[dashesCamelCase(className)] = value; + break; + + case "dashesOnly": + tokens[dashesCamelCase(className)] = value; + break; + } + + return tokens; + }; + } + return localsConvention; +} + +var FileSystemLoader = {}; + +var hasRequiredFileSystemLoader; + +function requireFileSystemLoader () { + if (hasRequiredFileSystemLoader) return FileSystemLoader; + hasRequiredFileSystemLoader = 1; + + Object.defineProperty(FileSystemLoader, "__esModule", { + value: true + }); + FileSystemLoader.default = void 0; + + var _postcss = _interopRequireDefault(require$$0$1); + + var _path = _interopRequireDefault(path$1); + + var _Parser = _interopRequireDefault(/*@__PURE__*/ requireParser$1()); + + var _fs = /*@__PURE__*/ requireFs(); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + // Initially copied from https://github.com/css-modules/css-modules-loader-core + class Core { + constructor(plugins) { + this.plugins = plugins || Core.defaultPlugins; + } + + async load(sourceString, sourcePath, trace, pathFetcher) { + const parser = new _Parser.default(pathFetcher, trace); + const plugins = this.plugins.concat([parser.plugin()]); + const result = await (0, _postcss.default)(plugins).process(sourceString, { + from: sourcePath + }); + return { + injectableSource: result.css, + exportTokens: parser.exportTokens + }; + } + + } // Sorts dependencies in the following way: + // AAA comes before AA and A + // AB comes after AA and before A + // All Bs come after all As + // This ensures that the files are always returned in the following order: + // - In the order they were required, except + // - After all their dependencies + + + const traceKeySorter = (a, b) => { + if (a.length < b.length) { + return a < b.substring(0, a.length) ? -1 : 1; + } + + if (a.length > b.length) { + return a.substring(0, b.length) <= b ? -1 : 1; + } + + return a < b ? -1 : 1; + }; + + let FileSystemLoader$1 = class FileSystemLoader { + constructor(root, plugins, fileResolve) { + if (root === "/" && process.platform === "win32") { + const cwdDrive = process.cwd().slice(0, 3); + + if (!/^[A-Za-z]:\\$/.test(cwdDrive)) { + throw new Error(`Failed to obtain root from "${process.cwd()}".`); + } + + root = cwdDrive; + } + + this.root = root; + this.fileResolve = fileResolve; + this.sources = {}; + this.traces = {}; + this.importNr = 0; + this.core = new Core(plugins); + this.tokensByFile = {}; + this.fs = (0, _fs.getFileSystem)(); + } + + async fetch(_newPath, relativeTo, _trace) { + const newPath = _newPath.replace(/^["']|["']$/g, ""); + + const trace = _trace || String.fromCharCode(this.importNr++); + + const useFileResolve = typeof this.fileResolve === "function"; + const fileResolvedPath = useFileResolve ? await this.fileResolve(newPath, relativeTo) : await Promise.resolve(); + + if (fileResolvedPath && !_path.default.isAbsolute(fileResolvedPath)) { + throw new Error('The returned path from the "fileResolve" option must be absolute.'); + } + + const relativeDir = _path.default.dirname(relativeTo); + + const rootRelativePath = fileResolvedPath || _path.default.resolve(relativeDir, newPath); + + let fileRelativePath = fileResolvedPath || _path.default.resolve(_path.default.resolve(this.root, relativeDir), newPath); // if the path is not relative or absolute, try to resolve it in node_modules + + + if (!useFileResolve && newPath[0] !== "." && !_path.default.isAbsolute(newPath)) { + try { + fileRelativePath = require.resolve(newPath); + } catch (e) {// noop + } + } + + const tokens = this.tokensByFile[fileRelativePath]; + if (tokens) return tokens; + return new Promise((resolve, reject) => { + this.fs.readFile(fileRelativePath, "utf-8", async (err, source) => { + if (err) reject(err); + const { + injectableSource, + exportTokens + } = await this.core.load(source, rootRelativePath, trace, this.fetch.bind(this)); + this.sources[fileRelativePath] = injectableSource; + this.traces[trace] = fileRelativePath; + this.tokensByFile[fileRelativePath] = exportTokens; + resolve(exportTokens); + }); + }); + } + + get finalSource() { + const traces = this.traces; + const sources = this.sources; + let written = new Set(); + return Object.keys(traces).sort(traceKeySorter).map(key => { + const filename = traces[key]; + + if (written.has(filename)) { + return null; + } + + written.add(filename); + return sources[filename]; + }).join(""); + } + + }; + + FileSystemLoader.default = FileSystemLoader$1; + return FileSystemLoader; +} + +var scoping = {}; + +var src$3 = {exports: {}}; + +var topologicalSort_1; +var hasRequiredTopologicalSort; + +function requireTopologicalSort () { + if (hasRequiredTopologicalSort) return topologicalSort_1; + hasRequiredTopologicalSort = 1; + const PERMANENT_MARKER = 2; + const TEMPORARY_MARKER = 1; + + function createError(node, graph) { + const er = new Error("Nondeterministic import's order"); + + const related = graph[node]; + const relatedNode = related.find( + (relatedNode) => graph[relatedNode].indexOf(node) > -1 + ); + + er.nodes = [node, relatedNode]; + + return er; + } + + function walkGraph(node, graph, state, result, strict) { + if (state[node] === PERMANENT_MARKER) { + return; + } + + if (state[node] === TEMPORARY_MARKER) { + if (strict) { + return createError(node, graph); + } + + return; + } + + state[node] = TEMPORARY_MARKER; + + const children = graph[node]; + const length = children.length; + + for (let i = 0; i < length; ++i) { + const error = walkGraph(children[i], graph, state, result, strict); + + if (error instanceof Error) { + return error; + } + } + + state[node] = PERMANENT_MARKER; + + result.push(node); + } + + function topologicalSort(graph, strict) { + const result = []; + const state = {}; + + const nodes = Object.keys(graph); + const length = nodes.length; + + for (let i = 0; i < length; ++i) { + const er = walkGraph(nodes[i], graph, state, result, strict); + + if (er instanceof Error) { + return er; + } + } + + return result; + } + + topologicalSort_1 = topologicalSort; + return topologicalSort_1; +} + +var hasRequiredSrc$3; + +function requireSrc$3 () { + if (hasRequiredSrc$3) return src$3.exports; + hasRequiredSrc$3 = 1; + const topologicalSort = /*@__PURE__*/ requireTopologicalSort(); + + const matchImports = /^(.+?)\s+from\s+(?:"([^"]+)"|'([^']+)'|(global))$/; + const icssImport = /^:import\((?:"([^"]+)"|'([^']+)')\)/; + + const VISITED_MARKER = 1; + + /** + * :import('G') {} + * + * Rule + * composes: ... from 'A' + * composes: ... from 'B' + + * Rule + * composes: ... from 'A' + * composes: ... from 'A' + * composes: ... from 'C' + * + * Results in: + * + * graph: { + * G: [], + * A: [], + * B: ['A'], + * C: ['A'], + * } + */ + function addImportToGraph(importId, parentId, graph, visited) { + const siblingsId = parentId + "_" + "siblings"; + const visitedId = parentId + "_" + importId; + + if (visited[visitedId] !== VISITED_MARKER) { + if (!Array.isArray(visited[siblingsId])) { + visited[siblingsId] = []; + } + + const siblings = visited[siblingsId]; + + if (Array.isArray(graph[importId])) { + graph[importId] = graph[importId].concat(siblings); + } else { + graph[importId] = siblings.slice(); + } + + visited[visitedId] = VISITED_MARKER; + + siblings.push(importId); + } + } + + src$3.exports = (options = {}) => { + let importIndex = 0; + const createImportedName = + typeof options.createImportedName !== "function" + ? (importName /*, path*/) => + `i__imported_${importName.replace(/\W/g, "_")}_${importIndex++}` + : options.createImportedName; + const failOnWrongOrder = options.failOnWrongOrder; + + return { + postcssPlugin: "postcss-modules-extract-imports", + prepare() { + const graph = {}; + const visited = {}; + const existingImports = {}; + const importDecls = {}; + const imports = {}; + + return { + Once(root, postcss) { + // Check the existing imports order and save refs + root.walkRules((rule) => { + const matches = icssImport.exec(rule.selector); + + if (matches) { + const [, /*match*/ doubleQuotePath, singleQuotePath] = matches; + const importPath = doubleQuotePath || singleQuotePath; + + addImportToGraph(importPath, "root", graph, visited); + + existingImports[importPath] = rule; + } + }); + + root.walkDecls(/^composes$/, (declaration) => { + const multiple = declaration.value.split(","); + const values = []; + + multiple.forEach((value) => { + const matches = value.trim().match(matchImports); + + if (!matches) { + values.push(value); + + return; + } + + let tmpSymbols; + let [ + , + /*match*/ symbols, + doubleQuotePath, + singleQuotePath, + global, + ] = matches; + + if (global) { + // Composing globals simply means changing these classes to wrap them in global(name) + tmpSymbols = symbols.split(/\s+/).map((s) => `global(${s})`); + } else { + const importPath = doubleQuotePath || singleQuotePath; + + let parent = declaration.parent; + let parentIndexes = ""; + + while (parent.type !== "root") { + parentIndexes = + parent.parent.index(parent) + "_" + parentIndexes; + parent = parent.parent; + } + + const { selector } = declaration.parent; + const parentRule = `_${parentIndexes}${selector}`; + + addImportToGraph(importPath, parentRule, graph, visited); + + importDecls[importPath] = declaration; + imports[importPath] = imports[importPath] || {}; + + tmpSymbols = symbols.split(/\s+/).map((s) => { + if (!imports[importPath][s]) { + imports[importPath][s] = createImportedName(s, importPath); + } + + return imports[importPath][s]; + }); + } + + values.push(tmpSymbols.join(" ")); + }); + + declaration.value = values.join(", "); + }); + + const importsOrder = topologicalSort(graph, failOnWrongOrder); + + if (importsOrder instanceof Error) { + const importPath = importsOrder.nodes.find((importPath) => + // eslint-disable-next-line no-prototype-builtins + importDecls.hasOwnProperty(importPath) + ); + const decl = importDecls[importPath]; + + throw decl.error( + "Failed to resolve order of composed modules " + + importsOrder.nodes + .map((importPath) => "`" + importPath + "`") + .join(", ") + + ".", + { + plugin: "postcss-modules-extract-imports", + word: "composes", + } + ); + } + + let lastImportRule; + + importsOrder.forEach((path) => { + const importedSymbols = imports[path]; + let rule = existingImports[path]; + + if (!rule && importedSymbols) { + rule = postcss.rule({ + selector: `:import("${path}")`, + raws: { after: "\n" }, + }); + + if (lastImportRule) { + root.insertAfter(lastImportRule, rule); + } else { + root.prepend(rule); + } + } + + lastImportRule = rule; + + if (!importedSymbols) { + return; + } + + Object.keys(importedSymbols).forEach((importedSymbol) => { + rule.append( + postcss.decl({ + value: importedSymbol, + prop: importedSymbols[importedSymbol], + raws: { before: "\n " }, + }) + ); + }); + }); + }, + }; + }, + }; + }; + + src$3.exports.postcss = true; + return src$3.exports; +} + +var wasmHash = {exports: {}}; + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +var hasRequiredWasmHash; + +function requireWasmHash () { + if (hasRequiredWasmHash) return wasmHash.exports; + hasRequiredWasmHash = 1; + + // 65536 is the size of a wasm memory page + // 64 is the maximum chunk size for every possible wasm hash implementation + // 4 is the maximum number of bytes per char for string encoding (max is utf-8) + // ~3 makes sure that it's always a block of 4 chars, so avoid partially encoded bytes for base64 + const MAX_SHORT_STRING = Math.floor((65536 - 64) / 4) & -4; + + class WasmHash { + /** + * @param {WebAssembly.Instance} instance wasm instance + * @param {WebAssembly.Instance[]} instancesPool pool of instances + * @param {number} chunkSize size of data chunks passed to wasm + * @param {number} digestSize size of digest returned by wasm + */ + constructor(instance, instancesPool, chunkSize, digestSize) { + const exports$1 = /** @type {any} */ (instance.exports); + + exports$1.init(); + + this.exports = exports$1; + this.mem = Buffer.from(exports$1.memory.buffer, 0, 65536); + this.buffered = 0; + this.instancesPool = instancesPool; + this.chunkSize = chunkSize; + this.digestSize = digestSize; + } + + reset() { + this.buffered = 0; + this.exports.init(); + } + + /** + * @param {Buffer | string} data data + * @param {BufferEncoding=} encoding encoding + * @returns {this} itself + */ + update(data, encoding) { + if (typeof data === "string") { + while (data.length > MAX_SHORT_STRING) { + this._updateWithShortString(data.slice(0, MAX_SHORT_STRING), encoding); + data = data.slice(MAX_SHORT_STRING); + } + + this._updateWithShortString(data, encoding); + + return this; + } + + this._updateWithBuffer(data); + + return this; + } + + /** + * @param {string} data data + * @param {BufferEncoding=} encoding encoding + * @returns {void} + */ + _updateWithShortString(data, encoding) { + const { exports: exports$1, buffered, mem, chunkSize } = this; + + let endPos; + + if (data.length < 70) { + if (!encoding || encoding === "utf-8" || encoding === "utf8") { + endPos = buffered; + for (let i = 0; i < data.length; i++) { + const cc = data.charCodeAt(i); + + if (cc < 0x80) { + mem[endPos++] = cc; + } else if (cc < 0x800) { + mem[endPos] = (cc >> 6) | 0xc0; + mem[endPos + 1] = (cc & 0x3f) | 0x80; + endPos += 2; + } else { + // bail-out for weird chars + endPos += mem.write(data.slice(i), endPos, encoding); + break; + } + } + } else if (encoding === "latin1") { + endPos = buffered; + + for (let i = 0; i < data.length; i++) { + const cc = data.charCodeAt(i); + + mem[endPos++] = cc; + } + } else { + endPos = buffered + mem.write(data, buffered, encoding); + } + } else { + endPos = buffered + mem.write(data, buffered, encoding); + } + + if (endPos < chunkSize) { + this.buffered = endPos; + } else { + const l = endPos & ~(this.chunkSize - 1); + + exports$1.update(l); + + const newBuffered = endPos - l; + + this.buffered = newBuffered; + + if (newBuffered > 0) { + mem.copyWithin(0, l, endPos); + } + } + } + + /** + * @param {Buffer} data data + * @returns {void} + */ + _updateWithBuffer(data) { + const { exports: exports$1, buffered, mem } = this; + const length = data.length; + + if (buffered + length < this.chunkSize) { + data.copy(mem, buffered, 0, length); + + this.buffered += length; + } else { + const l = (buffered + length) & ~(this.chunkSize - 1); + + if (l > 65536) { + let i = 65536 - buffered; + + data.copy(mem, buffered, 0, i); + exports$1.update(65536); + + const stop = l - buffered - 65536; + + while (i < stop) { + data.copy(mem, 0, i, i + 65536); + exports$1.update(65536); + i += 65536; + } + + data.copy(mem, 0, i, l - buffered); + + exports$1.update(l - buffered - i); + } else { + data.copy(mem, buffered, 0, l - buffered); + + exports$1.update(l); + } + + const newBuffered = length + buffered - l; + + this.buffered = newBuffered; + + if (newBuffered > 0) { + data.copy(mem, 0, length - newBuffered, length); + } + } + } + + digest(type) { + const { exports: exports$1, buffered, mem, digestSize } = this; + + exports$1.final(buffered); + + this.instancesPool.push(this); + + const hex = mem.toString("latin1", 0, digestSize); + + if (type === "hex") { + return hex; + } + + if (type === "binary" || !type) { + return Buffer.from(hex, "hex"); + } + + return Buffer.from(hex, "hex").toString(type); + } + } + + const create = (wasmModule, instancesPool, chunkSize, digestSize) => { + if (instancesPool.length > 0) { + const old = instancesPool.pop(); + + old.reset(); + + return old; + } else { + return new WasmHash( + new WebAssembly.Instance(wasmModule), + instancesPool, + chunkSize, + digestSize + ); + } + }; + + wasmHash.exports = create; + wasmHash.exports.MAX_SHORT_STRING = MAX_SHORT_STRING; + return wasmHash.exports; +} + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +var xxhash64_1; +var hasRequiredXxhash64; + +function requireXxhash64 () { + if (hasRequiredXxhash64) return xxhash64_1; + hasRequiredXxhash64 = 1; + + const create = /*@__PURE__*/ requireWasmHash(); + + //#region wasm code: xxhash64 (../../../assembly/hash/xxhash64.asm.ts) --initialMemory 1 + const xxhash64 = new WebAssembly.Module( + Buffer.from( + // 1173 bytes + "AGFzbQEAAAABCAJgAX8AYAAAAwQDAQAABQMBAAEGGgV+AUIAC34BQgALfgFCAAt+AUIAC34BQgALByIEBGluaXQAAAZ1cGRhdGUAAQVmaW5hbAACBm1lbW9yeQIACrUIAzAAQtbrgu7q/Yn14AAkAELP1tO+0ser2UIkAUIAJAJC+erQ0OfJoeThACQDQgAkBAvUAQIBfwR+IABFBEAPCyMEIACtfCQEIwAhAiMBIQMjAiEEIwMhBQNAIAIgASkDAELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiECIAMgASkDCELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEDIAQgASkDEELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEEIAUgASkDGELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEFIAAgAUEgaiIBSw0ACyACJAAgAyQBIAQkAiAFJAMLqwYCAX8EfiMEQgBSBH4jACICQgGJIwEiA0IHiXwjAiIEQgyJfCMDIgVCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0gA0LP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkKdo7Xqg7GNivoAfSAEQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IAVCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0FQsXP2bLx5brqJwsjBCAArXx8IQIDQCABQQhqIABNBEAgAiABKQMAQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQhuJQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IQIgAUEIaiEBDAELCyABQQRqIABNBEACfyACIAE1AgBCh5Wvr5i23puef36FQheJQs/W077Sx6vZQn5C+fPd8Zn2masWfCECIAFBBGoLIQELA0AgACABRwRAIAIgATEAAELFz9my8eW66id+hUILiUKHla+vmLbem55/fiECIAFBAWohAQwBCwtBACACIAJCIYiFQs/W077Sx6vZQn4iAiACQh2IhUL5893xmfaZqxZ+IgIgAkIgiIUiAkIgiCIDQv//A4NCIIYgA0KAgPz/D4NCEIiEIgNC/4GAgPAfg0IQhiADQoD+g4CA4D+DQgiIhCIDQo+AvIDwgcAHg0IIhiADQvCBwIeAnoD4AINCBIiEIgNChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IANCsODAgYOGjJgwhHw3AwBBCCACQv////8PgyICQv//A4NCIIYgAkKAgPz/D4NCEIiEIgJC/4GAgPAfg0IQhiACQoD+g4CA4D+DQgiIhCICQo+AvIDwgcAHg0IIhiACQvCBwIeAnoD4AINCBIiEIgJChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IAJCsODAgYOGjJgwhHw3AwAL", + "base64" + ) + ); + //#endregion + + xxhash64_1 = create.bind(null, xxhash64, [], 32, 16); + return xxhash64_1; +} + +var BatchedHash_1; +var hasRequiredBatchedHash; + +function requireBatchedHash () { + if (hasRequiredBatchedHash) return BatchedHash_1; + hasRequiredBatchedHash = 1; + const MAX_SHORT_STRING = /*@__PURE__*/ requireWasmHash().MAX_SHORT_STRING; + + class BatchedHash { + constructor(hash) { + this.string = undefined; + this.encoding = undefined; + this.hash = hash; + } + + /** + * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding} + * @param {string|Buffer} data data + * @param {string=} inputEncoding data encoding + * @returns {this} updated hash + */ + update(data, inputEncoding) { + if (this.string !== undefined) { + if ( + typeof data === "string" && + inputEncoding === this.encoding && + this.string.length + data.length < MAX_SHORT_STRING + ) { + this.string += data; + + return this; + } + + this.hash.update(this.string, this.encoding); + this.string = undefined; + } + + if (typeof data === "string") { + if ( + data.length < MAX_SHORT_STRING && + // base64 encoding is not valid since it may contain padding chars + (!inputEncoding || !inputEncoding.startsWith("ba")) + ) { + this.string = data; + this.encoding = inputEncoding; + } else { + this.hash.update(data, inputEncoding); + } + } else { + this.hash.update(data); + } + + return this; + } + + /** + * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding} + * @param {string=} encoding encoding of the return value + * @returns {string|Buffer} digest + */ + digest(encoding) { + if (this.string !== undefined) { + this.hash.update(this.string, this.encoding); + } + + return this.hash.digest(encoding); + } + } + + BatchedHash_1 = BatchedHash; + return BatchedHash_1; +} + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +var md4_1; +var hasRequiredMd4; + +function requireMd4 () { + if (hasRequiredMd4) return md4_1; + hasRequiredMd4 = 1; + + const create = /*@__PURE__*/ requireWasmHash(); + + //#region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1 + const md4 = new WebAssembly.Module( + Buffer.from( + // 2150 bytes + "AGFzbQEAAAABCAJgAX8AYAAAAwUEAQAAAAUDAQABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwciBARpbml0AAAGdXBkYXRlAAIFZmluYWwAAwZtZW1vcnkCAAqFEAQmAEGBxpS6BiQBQYnXtv5+JAJB/rnrxXkkA0H2qMmBASQEQQAkAAvMCgEYfyMBIQojAiEGIwMhByMEIQgDQCAAIAVLBEAgBSgCCCINIAcgBiAFKAIEIgsgCCAHIAUoAgAiDCAKIAggBiAHIAhzcXNqakEDdyIDIAYgB3Nxc2pqQQd3IgEgAyAGc3FzampBC3chAiAFKAIUIg8gASACIAUoAhAiCSADIAEgBSgCDCIOIAYgAyACIAEgA3Nxc2pqQRN3IgQgASACc3FzampBA3ciAyACIARzcXNqakEHdyEBIAUoAiAiEiADIAEgBSgCHCIRIAQgAyAFKAIYIhAgAiAEIAEgAyAEc3FzampBC3ciAiABIANzcXNqakETdyIEIAEgAnNxc2pqQQN3IQMgBSgCLCIVIAQgAyAFKAIoIhQgAiAEIAUoAiQiEyABIAIgAyACIARzcXNqakEHdyIBIAMgBHNxc2pqQQt3IgIgASADc3FzampBE3chBCAPIBAgCSAVIBQgEyAFKAI4IhYgAiAEIAUoAjQiFyABIAIgBSgCMCIYIAMgASAEIAEgAnNxc2pqQQN3IgEgAiAEc3FzampBB3ciAiABIARzcXNqakELdyIDIAkgAiAMIAEgBSgCPCIJIAQgASADIAEgAnNxc2pqQRN3IgEgAiADcnEgAiADcXJqakGZ84nUBWpBA3ciAiABIANycSABIANxcmpqQZnzidQFakEFdyIEIAEgAnJxIAEgAnFyaiASakGZ84nUBWpBCXciAyAPIAQgCyACIBggASADIAIgBHJxIAIgBHFyampBmfOJ1AVqQQ13IgEgAyAEcnEgAyAEcXJqakGZ84nUBWpBA3ciAiABIANycSABIANxcmpqQZnzidQFakEFdyIEIAEgAnJxIAEgAnFyampBmfOJ1AVqQQl3IgMgECAEIAIgFyABIAMgAiAEcnEgAiAEcXJqakGZ84nUBWpBDXciASADIARycSADIARxcmogDWpBmfOJ1AVqQQN3IgIgASADcnEgASADcXJqakGZ84nUBWpBBXciBCABIAJycSABIAJxcmpqQZnzidQFakEJdyIDIBEgBCAOIAIgFiABIAMgAiAEcnEgAiAEcXJqakGZ84nUBWpBDXciASADIARycSADIARxcmpqQZnzidQFakEDdyICIAEgA3JxIAEgA3FyampBmfOJ1AVqQQV3IgQgASACcnEgASACcXJqakGZ84nUBWpBCXciAyAMIAIgAyAJIAEgAyACIARycSACIARxcmpqQZnzidQFakENdyIBcyAEc2pqQaHX5/YGakEDdyICIAQgASACcyADc2ogEmpBodfn9gZqQQl3IgRzIAFzampBodfn9gZqQQt3IgMgAiADIBggASADIARzIAJzampBodfn9gZqQQ93IgFzIARzaiANakGh1+f2BmpBA3ciAiAUIAQgASACcyADc2pqQaHX5/YGakEJdyIEcyABc2pqQaHX5/YGakELdyIDIAsgAiADIBYgASADIARzIAJzampBodfn9gZqQQ93IgFzIARzampBodfn9gZqQQN3IgIgEyAEIAEgAnMgA3NqakGh1+f2BmpBCXciBHMgAXNqakGh1+f2BmpBC3chAyAKIA4gAiADIBcgASADIARzIAJzampBodfn9gZqQQ93IgFzIARzampBodfn9gZqQQN3IgJqIQogBiAJIAEgESADIAIgFSAEIAEgAnMgA3NqakGh1+f2BmpBCXciBHMgAXNqakGh1+f2BmpBC3ciAyAEcyACc2pqQaHX5/YGakEPd2ohBiADIAdqIQcgBCAIaiEIIAVBQGshBQwBCwsgCiQBIAYkAiAHJAMgCCQECw0AIAAQASMAIABqJAAL/wQCA38BfiMAIABqrUIDhiEEIABByABqQUBxIgJBCGshAyAAIgFBAWohACABQYABOgAAA0AgACACSUEAIABBB3EbBEAgAEEAOgAAIABBAWohAAwBCwsDQCAAIAJJBEAgAEIANwMAIABBCGohAAwBCwsgAyAENwMAIAIQAUEAIwGtIgRC//8DgyAEQoCA/P8Pg0IQhoQiBEL/gYCA8B+DIARCgP6DgIDgP4NCCIaEIgRCj4C8gPCBwAeDQgiGIARC8IHAh4CegPgAg0IEiIQiBEKGjJiw4MCBgwZ8QgSIQoGChIiQoMCAAYNCJ34gBEKw4MCBg4aMmDCEfDcDAEEIIwKtIgRC//8DgyAEQoCA/P8Pg0IQhoQiBEL/gYCA8B+DIARCgP6DgIDgP4NCCIaEIgRCj4C8gPCBwAeDQgiGIARC8IHAh4CegPgAg0IEiIQiBEKGjJiw4MCBgwZ8QgSIQoGChIiQoMCAAYNCJ34gBEKw4MCBg4aMmDCEfDcDAEEQIwOtIgRC//8DgyAEQoCA/P8Pg0IQhoQiBEL/gYCA8B+DIARCgP6DgIDgP4NCCIaEIgRCj4C8gPCBwAeDQgiGIARC8IHAh4CegPgAg0IEiIQiBEKGjJiw4MCBgwZ8QgSIQoGChIiQoMCAAYNCJ34gBEKw4MCBg4aMmDCEfDcDAEEYIwStIgRC//8DgyAEQoCA/P8Pg0IQhoQiBEL/gYCA8B+DIARCgP6DgIDgP4NCCIaEIgRCj4C8gPCBwAeDQgiGIARC8IHAh4CegPgAg0IEiIQiBEKGjJiw4MCBgwZ8QgSIQoGChIiQoMCAAYNCJ34gBEKw4MCBg4aMmDCEfDcDAAs=", + "base64" + ) + ); + //#endregion + + md4_1 = create.bind(null, md4, [], 64, 32); + return md4_1; +} + +var BulkUpdateDecorator_1; +var hasRequiredBulkUpdateDecorator; + +function requireBulkUpdateDecorator () { + if (hasRequiredBulkUpdateDecorator) return BulkUpdateDecorator_1; + hasRequiredBulkUpdateDecorator = 1; + const BULK_SIZE = 2000; + + // We are using an object instead of a Map as this will stay static during the runtime + // so access to it can be optimized by v8 + const digestCaches = {}; + + class BulkUpdateDecorator { + /** + * @param {Hash | function(): Hash} hashOrFactory function to create a hash + * @param {string=} hashKey key for caching + */ + constructor(hashOrFactory, hashKey) { + this.hashKey = hashKey; + + if (typeof hashOrFactory === "function") { + this.hashFactory = hashOrFactory; + this.hash = undefined; + } else { + this.hashFactory = undefined; + this.hash = hashOrFactory; + } + + this.buffer = ""; + } + + /** + * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding} + * @param {string|Buffer} data data + * @param {string=} inputEncoding data encoding + * @returns {this} updated hash + */ + update(data, inputEncoding) { + if ( + inputEncoding !== undefined || + typeof data !== "string" || + data.length > BULK_SIZE + ) { + if (this.hash === undefined) { + this.hash = this.hashFactory(); + } + + if (this.buffer.length > 0) { + this.hash.update(this.buffer); + this.buffer = ""; + } + + this.hash.update(data, inputEncoding); + } else { + this.buffer += data; + + if (this.buffer.length > BULK_SIZE) { + if (this.hash === undefined) { + this.hash = this.hashFactory(); + } + + this.hash.update(this.buffer); + this.buffer = ""; + } + } + + return this; + } + + /** + * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding} + * @param {string=} encoding encoding of the return value + * @returns {string|Buffer} digest + */ + digest(encoding) { + let digestCache; + + const buffer = this.buffer; + + if (this.hash === undefined) { + // short data for hash, we can use caching + const cacheKey = `${this.hashKey}-${encoding}`; + + digestCache = digestCaches[cacheKey]; + + if (digestCache === undefined) { + digestCache = digestCaches[cacheKey] = new Map(); + } + + const cacheEntry = digestCache.get(buffer); + + if (cacheEntry !== undefined) { + return cacheEntry; + } + + this.hash = this.hashFactory(); + } + + if (buffer.length > 0) { + this.hash.update(buffer); + } + + const digestResult = this.hash.digest(encoding); + + if (digestCache !== undefined) { + digestCache.set(buffer, digestResult); + } + + return digestResult; + } + } + + BulkUpdateDecorator_1 = BulkUpdateDecorator; + return BulkUpdateDecorator_1; +} + +var getHashDigest_1; +var hasRequiredGetHashDigest; + +function requireGetHashDigest () { + if (hasRequiredGetHashDigest) return getHashDigest_1; + hasRequiredGetHashDigest = 1; + + const baseEncodeTables = { + 26: "abcdefghijklmnopqrstuvwxyz", + 32: "123456789abcdefghjkmnpqrstuvwxyz", // no 0lio + 36: "0123456789abcdefghijklmnopqrstuvwxyz", + 49: "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", // no lIO + 52: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + 58: "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", // no 0lIO + 62: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + 64: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_", + }; + + /** + * @param {Uint32Array} uint32Array Treated as a long base-0x100000000 number, little endian + * @param {number} divisor The divisor + * @return {number} Modulo (remainder) of the division + */ + function divmod32(uint32Array, divisor) { + let carry = 0; + for (let i = uint32Array.length - 1; i >= 0; i--) { + const value = carry * 0x100000000 + uint32Array[i]; + carry = value % divisor; + uint32Array[i] = Math.floor(value / divisor); + } + return carry; + } + + function encodeBufferToBase(buffer, base, length) { + const encodeTable = baseEncodeTables[base]; + + if (!encodeTable) { + throw new Error("Unknown encoding base" + base); + } + + // Input bits are only enough to generate this many characters + const limit = Math.ceil((buffer.length * 8) / Math.log2(base)); + length = Math.min(length, limit); + + // Most of the crypto digests (if not all) has length a multiple of 4 bytes. + // Fewer numbers in the array means faster math. + const uint32Array = new Uint32Array(Math.ceil(buffer.length / 4)); + + // Make sure the input buffer data is copied and is not mutated by reference. + // divmod32() would corrupt the BulkUpdateDecorator cache otherwise. + buffer.copy(Buffer.from(uint32Array.buffer)); + + let output = ""; + + for (let i = 0; i < length; i++) { + output = encodeTable[divmod32(uint32Array, base)] + output; + } + + return output; + } + + let crypto = undefined; + let createXXHash64 = undefined; + let createMd4 = undefined; + let BatchedHash = undefined; + let BulkUpdateDecorator = undefined; + + function getHashDigest(buffer, algorithm, digestType, maxLength) { + algorithm = algorithm || "xxhash64"; + maxLength = maxLength || 9999; + + let hash; + + if (algorithm === "xxhash64") { + if (createXXHash64 === undefined) { + createXXHash64 = /*@__PURE__*/ requireXxhash64(); + + if (BatchedHash === undefined) { + BatchedHash = /*@__PURE__*/ requireBatchedHash(); + } + } + + hash = new BatchedHash(createXXHash64()); + } else if (algorithm === "md4") { + if (createMd4 === undefined) { + createMd4 = /*@__PURE__*/ requireMd4(); + + if (BatchedHash === undefined) { + BatchedHash = /*@__PURE__*/ requireBatchedHash(); + } + } + + hash = new BatchedHash(createMd4()); + } else if (algorithm === "native-md4") { + if (typeof crypto === "undefined") { + crypto = require("crypto"); + + if (BulkUpdateDecorator === undefined) { + BulkUpdateDecorator = /*@__PURE__*/ requireBulkUpdateDecorator(); + } + } + + hash = new BulkUpdateDecorator(() => crypto.createHash("md4"), "md4"); + } else { + if (typeof crypto === "undefined") { + crypto = require("crypto"); + + if (BulkUpdateDecorator === undefined) { + BulkUpdateDecorator = /*@__PURE__*/ requireBulkUpdateDecorator(); + } + } + + hash = new BulkUpdateDecorator( + () => crypto.createHash(algorithm), + algorithm + ); + } + + hash.update(buffer); + + if ( + digestType === "base26" || + digestType === "base32" || + digestType === "base36" || + digestType === "base49" || + digestType === "base52" || + digestType === "base58" || + digestType === "base62" || + digestType === "base64safe" + ) { + return encodeBufferToBase( + hash.digest(), + digestType === "base64safe" ? 64 : digestType.substr(4), + maxLength + ); + } + + return hash.digest(digestType || "hex").substr(0, maxLength); + } + + getHashDigest_1 = getHashDigest; + return getHashDigest_1; +} + +var interpolateName_1; +var hasRequiredInterpolateName; + +function requireInterpolateName () { + if (hasRequiredInterpolateName) return interpolateName_1; + hasRequiredInterpolateName = 1; + + const path = path$1; + const getHashDigest = /*@__PURE__*/ requireGetHashDigest(); + + function interpolateName(loaderContext, name, options = {}) { + let filename; + + const hasQuery = + loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1; + + if (typeof name === "function") { + filename = name( + loaderContext.resourcePath, + hasQuery ? loaderContext.resourceQuery : undefined + ); + } else { + filename = name || "[hash].[ext]"; + } + + const context = options.context; + const content = options.content; + const regExp = options.regExp; + + let ext = "bin"; + let basename = "file"; + let directory = ""; + let folder = ""; + let query = ""; + + if (loaderContext.resourcePath) { + const parsed = path.parse(loaderContext.resourcePath); + let resourcePath = loaderContext.resourcePath; + + if (parsed.ext) { + ext = parsed.ext.substr(1); + } + + if (parsed.dir) { + basename = parsed.name; + resourcePath = parsed.dir + path.sep; + } + + if (typeof context !== "undefined") { + directory = path + .relative(context, resourcePath + "_") + .replace(/\\/g, "/") + .replace(/\.\.(\/)?/g, "_$1"); + directory = directory.substr(0, directory.length - 1); + } else { + directory = resourcePath.replace(/\\/g, "/").replace(/\.\.(\/)?/g, "_$1"); + } + + if (directory.length <= 1) { + directory = ""; + } else { + // directory.length > 1 + folder = path.basename(directory); + } + } + + if (loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1) { + query = loaderContext.resourceQuery; + + const hashIdx = query.indexOf("#"); + + if (hashIdx >= 0) { + query = query.substr(0, hashIdx); + } + } + + let url = filename; + + if (content) { + // Match hash template + url = url + // `hash` and `contenthash` are same in `loader-utils` context + // let's keep `hash` for backward compatibility + .replace( + /\[(?:([^[:\]]+):)?(?:hash|contenthash)(?::([a-z]+\d*(?:safe)?))?(?::(\d+))?\]/gi, + (all, hashType, digestType, maxLength) => + getHashDigest(content, hashType, digestType, parseInt(maxLength, 10)) + ); + } + + url = url + .replace(/\[ext\]/gi, () => ext) + .replace(/\[name\]/gi, () => basename) + .replace(/\[path\]/gi, () => directory) + .replace(/\[folder\]/gi, () => folder) + .replace(/\[query\]/gi, () => query); + + if (regExp && loaderContext.resourcePath) { + const match = loaderContext.resourcePath.match(new RegExp(regExp)); + + match && + match.forEach((matched, i) => { + url = url.replace(new RegExp("\\[" + i + "\\]", "ig"), matched); + }); + } + + if ( + typeof loaderContext.options === "object" && + typeof loaderContext.options.customInterpolateName === "function" + ) { + url = loaderContext.options.customInterpolateName.call( + loaderContext, + url, + name, + options + ); + } + + return url; + } + + interpolateName_1 = interpolateName; + return interpolateName_1; +} + +var genericNames; +var hasRequiredGenericNames; + +function requireGenericNames () { + if (hasRequiredGenericNames) return genericNames; + hasRequiredGenericNames = 1; + + var interpolateName = /*@__PURE__*/ requireInterpolateName(); + var path = path$1; + + /** + * @param {string} pattern + * @param {object} options + * @param {string} options.context + * @param {string} options.hashPrefix + * @return {function} + */ + genericNames = function createGenerator(pattern, options) { + options = options || {}; + var context = + options && typeof options.context === "string" + ? options.context + : process.cwd(); + var hashPrefix = + options && typeof options.hashPrefix === "string" ? options.hashPrefix : ""; + + /** + * @param {string} localName Usually a class name + * @param {string} filepath Absolute path + * @return {string} + */ + return function generate(localName, filepath) { + var name = pattern.replace(/\[local\]/gi, localName); + var loaderContext = { + resourcePath: filepath, + }; + + var loaderOptions = { + content: + hashPrefix + + path.relative(context, filepath).replace(/\\/g, "/") + + "\x00" + + localName, + context: context, + }; + + var genericName = interpolateName(loaderContext, name, loaderOptions); + return genericName + .replace(new RegExp("[^a-zA-Z0-9\\-_\u00A0-\uFFFF]", "g"), "-") + .replace(/^((-?[0-9])|--)/, "_$1"); + }; + }; + return genericNames; +} + +var src$2 = {exports: {}}; + +var dist = {exports: {}}; + +var processor = {exports: {}}; + +var parser = {exports: {}}; + +var root = {exports: {}}; + +var container = {exports: {}}; + +var node = {exports: {}}; + +var util = {}; + +var unesc = {exports: {}}; + +var hasRequiredUnesc; + +function requireUnesc () { + if (hasRequiredUnesc) return unesc.exports; + hasRequiredUnesc = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = unesc; + // Many thanks for this post which made this migration much easier. + // https://mathiasbynens.be/notes/css-escapes + + /** + * + * @param {string} str + * @returns {[string, number]|undefined} + */ + function gobbleHex(str) { + var lower = str.toLowerCase(); + var hex = ''; + var spaceTerminated = false; + for (var i = 0; i < 6 && lower[i] !== undefined; i++) { + var code = lower.charCodeAt(i); + // check to see if we are dealing with a valid hex char [a-f|0-9] + var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; + // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point + spaceTerminated = code === 32; + if (!valid) { + break; + } + hex += lower[i]; + } + if (hex.length === 0) { + return undefined; + } + var codePoint = parseInt(hex, 16); + var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; + // Add special case for + // "If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point" + // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point + if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) { + return ["\uFFFD", hex.length + (spaceTerminated ? 1 : 0)]; + } + return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)]; + } + var CONTAINS_ESCAPE = /\\/; + function unesc(str) { + var needToProcess = CONTAINS_ESCAPE.test(str); + if (!needToProcess) { + return str; + } + var ret = ""; + for (var i = 0; i < str.length; i++) { + if (str[i] === "\\") { + var gobbled = gobbleHex(str.slice(i + 1, i + 7)); + if (gobbled !== undefined) { + ret += gobbled[0]; + i += gobbled[1]; + continue; + } + + // Retain a pair of \\ if double escaped `\\\\` + // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e + if (str[i + 1] === "\\") { + ret += "\\"; + i++; + continue; + } + + // if \\ is at the end of the string retain it + // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb + if (str.length === i + 1) { + ret += str[i]; + } + continue; + } + ret += str[i]; + } + return ret; + } + module.exports = exports$1.default; + } (unesc, unesc.exports)); + return unesc.exports; +} + +var getProp = {exports: {}}; + +var hasRequiredGetProp; + +function requireGetProp () { + if (hasRequiredGetProp) return getProp.exports; + hasRequiredGetProp = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = getProp; + function getProp(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + return undefined; + } + obj = obj[prop]; + } + return obj; + } + module.exports = exports$1.default; + } (getProp, getProp.exports)); + return getProp.exports; +} + +var ensureObject = {exports: {}}; + +var hasRequiredEnsureObject; + +function requireEnsureObject () { + if (hasRequiredEnsureObject) return ensureObject.exports; + hasRequiredEnsureObject = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = ensureObject; + function ensureObject(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + obj[prop] = {}; + } + obj = obj[prop]; + } + } + module.exports = exports$1.default; + } (ensureObject, ensureObject.exports)); + return ensureObject.exports; +} + +var stripComments = {exports: {}}; + +var hasRequiredStripComments; + +function requireStripComments () { + if (hasRequiredStripComments) return stripComments.exports; + hasRequiredStripComments = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = stripComments; + function stripComments(str) { + var s = ""; + var commentStart = str.indexOf("/*"); + var lastEnd = 0; + while (commentStart >= 0) { + s = s + str.slice(lastEnd, commentStart); + var commentEnd = str.indexOf("*/", commentStart + 2); + if (commentEnd < 0) { + return s; + } + lastEnd = commentEnd + 2; + commentStart = str.indexOf("/*", lastEnd); + } + s = s + str.slice(lastEnd); + return s; + } + module.exports = exports$1.default; + } (stripComments, stripComments.exports)); + return stripComments.exports; +} + +var hasRequiredUtil; + +function requireUtil () { + if (hasRequiredUtil) return util; + hasRequiredUtil = 1; + + util.__esModule = true; + util.unesc = util.stripComments = util.getProp = util.ensureObject = void 0; + var _unesc = _interopRequireDefault(/*@__PURE__*/ requireUnesc()); + util.unesc = _unesc["default"]; + var _getProp = _interopRequireDefault(/*@__PURE__*/ requireGetProp()); + util.getProp = _getProp["default"]; + var _ensureObject = _interopRequireDefault(/*@__PURE__*/ requireEnsureObject()); + util.ensureObject = _ensureObject["default"]; + var _stripComments = _interopRequireDefault(/*@__PURE__*/ requireStripComments()); + util.stripComments = _stripComments["default"]; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return util; +} + +var hasRequiredNode; + +function requireNode () { + if (hasRequiredNode) return node.exports; + hasRequiredNode = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _util = /*@__PURE__*/ requireUtil(); + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + var cloneNode = function cloneNode(obj, parent) { + if (typeof obj !== 'object' || obj === null) { + return obj; + } + var cloned = new obj.constructor(); + for (var i in obj) { + if (!obj.hasOwnProperty(i)) { + continue; + } + var value = obj[i]; + var type = typeof value; + if (i === 'parent' && type === 'object') { + if (parent) { + cloned[i] = parent; + } + } else if (value instanceof Array) { + cloned[i] = value.map(function (j) { + return cloneNode(j, cloned); + }); + } else { + cloned[i] = cloneNode(value, cloned); + } + } + return cloned; + }; + var Node = /*#__PURE__*/function () { + function Node(opts) { + if (opts === void 0) { + opts = {}; + } + Object.assign(this, opts); + this.spaces = this.spaces || {}; + this.spaces.before = this.spaces.before || ''; + this.spaces.after = this.spaces.after || ''; + } + var _proto = Node.prototype; + _proto.remove = function remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this; + }; + _proto.replaceWith = function replaceWith() { + if (this.parent) { + for (var index in arguments) { + this.parent.insertBefore(this, arguments[index]); + } + this.remove(); + } + return this; + }; + _proto.next = function next() { + return this.parent.at(this.parent.index(this) + 1); + }; + _proto.prev = function prev() { + return this.parent.at(this.parent.index(this) - 1); + }; + _proto.clone = function clone(overrides) { + if (overrides === void 0) { + overrides = {}; + } + var cloned = cloneNode(this); + for (var name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows non standard syntax to be appended to an existing property + * by specifying the escaped value. By specifying the escaped value, + * illegal characters are allowed to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped optional. the escaped value of the property. + */; + _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + var originalValue = this[name]; + var originalEscaped = this.raws[name]; + this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first. + if (originalEscaped || valueEscaped !== value) { + this.raws[name] = (originalEscaped || originalValue) + valueEscaped; + } else { + delete this.raws[name]; // delete any escaped value that was created by the setter. + } + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows the escaped value to be specified directly, allowing illegal + * characters to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped the escaped value of the property. + */; + _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + this.raws[name] = valueEscaped; + } + + /** + * When you want a value to passed through to CSS directly. This method + * deletes the corresponding raw value causing the stringifier to fallback + * to the unescaped value. + * @param {string} name the property to set. + * @param {any} value The value that is both escaped and unescaped. + */; + _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) { + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + if (this.raws) { + delete this.raws[name]; + } + } + + /** + * + * @param {number} line The number (starting with 1) + * @param {number} column The column number (starting with 1) + */; + _proto.isAtPosition = function isAtPosition(line, column) { + if (this.source && this.source.start && this.source.end) { + if (this.source.start.line > line) { + return false; + } + if (this.source.end.line < line) { + return false; + } + if (this.source.start.line === line && this.source.start.column > column) { + return false; + } + if (this.source.end.line === line && this.source.end.column < column) { + return false; + } + return true; + } + return undefined; + }; + _proto.stringifyProperty = function stringifyProperty(name) { + return this.raws && this.raws[name] || this[name]; + }; + _proto.valueToString = function valueToString() { + return String(this.stringifyProperty("value")); + }; + _proto.toString = function toString() { + return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(''); + }; + _createClass(Node, [{ + key: "rawSpaceBefore", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before; + if (rawSpace === undefined) { + rawSpace = this.spaces && this.spaces.before; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.before = raw; + } + }, { + key: "rawSpaceAfter", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after; + if (rawSpace === undefined) { + rawSpace = this.spaces.after; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.after = raw; + } + }]); + return Node; + }(); + exports$1["default"] = Node; + module.exports = exports$1.default; + } (node, node.exports)); + return node.exports; +} + +var types$1 = {}; + +var hasRequiredTypes; + +function requireTypes () { + if (hasRequiredTypes) return types$1; + hasRequiredTypes = 1; + + types$1.__esModule = true; + types$1.UNIVERSAL = types$1.TAG = types$1.STRING = types$1.SELECTOR = types$1.ROOT = types$1.PSEUDO = types$1.NESTING = types$1.ID = types$1.COMMENT = types$1.COMBINATOR = types$1.CLASS = types$1.ATTRIBUTE = void 0; + var TAG = 'tag'; + types$1.TAG = TAG; + var STRING = 'string'; + types$1.STRING = STRING; + var SELECTOR = 'selector'; + types$1.SELECTOR = SELECTOR; + var ROOT = 'root'; + types$1.ROOT = ROOT; + var PSEUDO = 'pseudo'; + types$1.PSEUDO = PSEUDO; + var NESTING = 'nesting'; + types$1.NESTING = NESTING; + var ID = 'id'; + types$1.ID = ID; + var COMMENT = 'comment'; + types$1.COMMENT = COMMENT; + var COMBINATOR = 'combinator'; + types$1.COMBINATOR = COMBINATOR; + var CLASS = 'class'; + types$1.CLASS = CLASS; + var ATTRIBUTE = 'attribute'; + types$1.ATTRIBUTE = ATTRIBUTE; + var UNIVERSAL = 'universal'; + types$1.UNIVERSAL = UNIVERSAL; + return types$1; +} + +var hasRequiredContainer; + +function requireContainer () { + if (hasRequiredContainer) return container.exports; + hasRequiredContainer = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var types = _interopRequireWildcard(/*@__PURE__*/ requireTypes()); + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike) { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Container = /*#__PURE__*/function (_Node) { + _inheritsLoose(Container, _Node); + function Container(opts) { + var _this; + _this = _Node.call(this, opts) || this; + if (!_this.nodes) { + _this.nodes = []; + } + return _this; + } + var _proto = Container.prototype; + _proto.append = function append(selector) { + selector.parent = this; + this.nodes.push(selector); + return this; + }; + _proto.prepend = function prepend(selector) { + selector.parent = this; + this.nodes.unshift(selector); + return this; + }; + _proto.at = function at(index) { + return this.nodes[index]; + }; + _proto.index = function index(child) { + if (typeof child === 'number') { + return child; + } + return this.nodes.indexOf(child); + }; + _proto.removeChild = function removeChild(child) { + child = this.index(child); + this.at(child).parent = undefined; + this.nodes.splice(child, 1); + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + return this; + }; + _proto.removeAll = function removeAll() { + for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) { + var node = _step.value; + node.parent = undefined; + } + this.nodes = []; + return this; + }; + _proto.empty = function empty() { + return this.removeAll(); + }; + _proto.insertAfter = function insertAfter(oldNode, newNode) { + newNode.parent = this; + var oldIndex = this.index(oldNode); + this.nodes.splice(oldIndex + 1, 0, newNode); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (oldIndex <= index) { + this.indexes[id] = index + 1; + } + } + return this; + }; + _proto.insertBefore = function insertBefore(oldNode, newNode) { + newNode.parent = this; + var oldIndex = this.index(oldNode); + this.nodes.splice(oldIndex, 0, newNode); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index <= oldIndex) { + this.indexes[id] = index + 1; + } + } + return this; + }; + _proto._findChildAtPosition = function _findChildAtPosition(line, col) { + var found = undefined; + this.each(function (node) { + if (node.atPosition) { + var foundChild = node.atPosition(line, col); + if (foundChild) { + found = foundChild; + return false; + } + } else if (node.isAtPosition(line, col)) { + found = node; + return false; + } + }); + return found; + } + + /** + * Return the most specific node at the line and column number given. + * The source location is based on the original parsed location, locations aren't + * updated as selector nodes are mutated. + * + * Note that this location is relative to the location of the first character + * of the selector, and not the location of the selector in the overall document + * when used in conjunction with postcss. + * + * If not found, returns undefined. + * @param {number} line The line number of the node to find. (1-based index) + * @param {number} col The column number of the node to find. (1-based index) + */; + _proto.atPosition = function atPosition(line, col) { + if (this.isAtPosition(line, col)) { + return this._findChildAtPosition(line, col) || this; + } else { + return undefined; + } + }; + _proto._inferEndPosition = function _inferEndPosition() { + if (this.last && this.last.source && this.last.source.end) { + this.source = this.source || {}; + this.source.end = this.source.end || {}; + Object.assign(this.source.end, this.last.source.end); + } + }; + _proto.each = function each(callback) { + if (!this.lastEach) { + this.lastEach = 0; + } + if (!this.indexes) { + this.indexes = {}; + } + this.lastEach++; + var id = this.lastEach; + this.indexes[id] = 0; + if (!this.length) { + return undefined; + } + var index, result; + while (this.indexes[id] < this.length) { + index = this.indexes[id]; + result = callback(this.at(index), index); + if (result === false) { + break; + } + this.indexes[id] += 1; + } + delete this.indexes[id]; + if (result === false) { + return false; + } + }; + _proto.walk = function walk(callback) { + return this.each(function (node, i) { + var result = callback(node, i); + if (result !== false && node.length) { + result = node.walk(callback); + } + if (result === false) { + return false; + } + }); + }; + _proto.walkAttributes = function walkAttributes(callback) { + var _this2 = this; + return this.walk(function (selector) { + if (selector.type === types.ATTRIBUTE) { + return callback.call(_this2, selector); + } + }); + }; + _proto.walkClasses = function walkClasses(callback) { + var _this3 = this; + return this.walk(function (selector) { + if (selector.type === types.CLASS) { + return callback.call(_this3, selector); + } + }); + }; + _proto.walkCombinators = function walkCombinators(callback) { + var _this4 = this; + return this.walk(function (selector) { + if (selector.type === types.COMBINATOR) { + return callback.call(_this4, selector); + } + }); + }; + _proto.walkComments = function walkComments(callback) { + var _this5 = this; + return this.walk(function (selector) { + if (selector.type === types.COMMENT) { + return callback.call(_this5, selector); + } + }); + }; + _proto.walkIds = function walkIds(callback) { + var _this6 = this; + return this.walk(function (selector) { + if (selector.type === types.ID) { + return callback.call(_this6, selector); + } + }); + }; + _proto.walkNesting = function walkNesting(callback) { + var _this7 = this; + return this.walk(function (selector) { + if (selector.type === types.NESTING) { + return callback.call(_this7, selector); + } + }); + }; + _proto.walkPseudos = function walkPseudos(callback) { + var _this8 = this; + return this.walk(function (selector) { + if (selector.type === types.PSEUDO) { + return callback.call(_this8, selector); + } + }); + }; + _proto.walkTags = function walkTags(callback) { + var _this9 = this; + return this.walk(function (selector) { + if (selector.type === types.TAG) { + return callback.call(_this9, selector); + } + }); + }; + _proto.walkUniversals = function walkUniversals(callback) { + var _this10 = this; + return this.walk(function (selector) { + if (selector.type === types.UNIVERSAL) { + return callback.call(_this10, selector); + } + }); + }; + _proto.split = function split(callback) { + var _this11 = this; + var current = []; + return this.reduce(function (memo, node, index) { + var split = callback.call(_this11, node); + current.push(node); + if (split) { + memo.push(current); + current = []; + } else if (index === _this11.length - 1) { + memo.push(current); + } + return memo; + }, []); + }; + _proto.map = function map(callback) { + return this.nodes.map(callback); + }; + _proto.reduce = function reduce(callback, memo) { + return this.nodes.reduce(callback, memo); + }; + _proto.every = function every(callback) { + return this.nodes.every(callback); + }; + _proto.some = function some(callback) { + return this.nodes.some(callback); + }; + _proto.filter = function filter(callback) { + return this.nodes.filter(callback); + }; + _proto.sort = function sort(callback) { + return this.nodes.sort(callback); + }; + _proto.toString = function toString() { + return this.map(String).join(''); + }; + _createClass(Container, [{ + key: "first", + get: function get() { + return this.at(0); + } + }, { + key: "last", + get: function get() { + return this.at(this.length - 1); + } + }, { + key: "length", + get: function get() { + return this.nodes.length; + } + }]); + return Container; + }(_node["default"]); + exports$1["default"] = Container; + module.exports = exports$1.default; + } (container, container.exports)); + return container.exports; +} + +var hasRequiredRoot; + +function requireRoot () { + if (hasRequiredRoot) return root.exports; + hasRequiredRoot = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Root = /*#__PURE__*/function (_Container) { + _inheritsLoose(Root, _Container); + function Root(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.ROOT; + return _this; + } + var _proto = Root.prototype; + _proto.toString = function toString() { + var str = this.reduce(function (memo, selector) { + memo.push(String(selector)); + return memo; + }, []).join(','); + return this.trailingComma ? str + ',' : str; + }; + _proto.error = function error(message, options) { + if (this._error) { + return this._error(message, options); + } else { + return new Error(message); + } + }; + _createClass(Root, [{ + key: "errorGenerator", + set: function set(handler) { + this._error = handler; + } + }]); + return Root; + }(_container["default"]); + exports$1["default"] = Root; + module.exports = exports$1.default; + } (root, root.exports)); + return root.exports; +} + +var selector = {exports: {}}; + +var hasRequiredSelector; + +function requireSelector () { + if (hasRequiredSelector) return selector.exports; + hasRequiredSelector = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Selector = /*#__PURE__*/function (_Container) { + _inheritsLoose(Selector, _Container); + function Selector(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.SELECTOR; + return _this; + } + return Selector; + }(_container["default"]); + exports$1["default"] = Selector; + module.exports = exports$1.default; + } (selector, selector.exports)); + return selector.exports; +} + +var className = {exports: {}}; + +var hasRequiredClassName; + +function requireClassName () { + if (hasRequiredClassName) return className.exports; + hasRequiredClassName = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _util = /*@__PURE__*/ requireUtil(); + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var ClassName = /*#__PURE__*/function (_Node) { + _inheritsLoose(ClassName, _Node); + function ClassName(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.CLASS; + _this._constructed = true; + return _this; + } + var _proto = ClassName.prototype; + _proto.valueToString = function valueToString() { + return '.' + _Node.prototype.valueToString.call(this); + }; + _createClass(ClassName, [{ + key: "value", + get: function get() { + return this._value; + }, + set: function set(v) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped !== v) { + (0, _util.ensureObject)(this, "raws"); + this.raws.value = escaped; + } else if (this.raws) { + delete this.raws.value; + } + } + this._value = v; + } + }]); + return ClassName; + }(_node["default"]); + exports$1["default"] = ClassName; + module.exports = exports$1.default; + } (className, className.exports)); + return className.exports; +} + +var comment = {exports: {}}; + +var hasRequiredComment; + +function requireComment () { + if (hasRequiredComment) return comment.exports; + hasRequiredComment = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Comment = /*#__PURE__*/function (_Node) { + _inheritsLoose(Comment, _Node); + function Comment(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMMENT; + return _this; + } + return Comment; + }(_node["default"]); + exports$1["default"] = Comment; + module.exports = exports$1.default; + } (comment, comment.exports)); + return comment.exports; +} + +var id = {exports: {}}; + +var hasRequiredId; + +function requireId () { + if (hasRequiredId) return id.exports; + hasRequiredId = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var ID = /*#__PURE__*/function (_Node) { + _inheritsLoose(ID, _Node); + function ID(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.ID; + return _this; + } + var _proto = ID.prototype; + _proto.valueToString = function valueToString() { + return '#' + _Node.prototype.valueToString.call(this); + }; + return ID; + }(_node["default"]); + exports$1["default"] = ID; + module.exports = exports$1.default; + } (id, id.exports)); + return id.exports; +} + +var tag = {exports: {}}; + +var namespace = {exports: {}}; + +var hasRequiredNamespace; + +function requireNamespace () { + if (hasRequiredNamespace) return namespace.exports; + hasRequiredNamespace = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _util = /*@__PURE__*/ requireUtil(); + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Namespace = /*#__PURE__*/function (_Node) { + _inheritsLoose(Namespace, _Node); + function Namespace() { + return _Node.apply(this, arguments) || this; + } + var _proto = Namespace.prototype; + _proto.qualifiedName = function qualifiedName(value) { + if (this.namespace) { + return this.namespaceString + "|" + value; + } else { + return value; + } + }; + _proto.valueToString = function valueToString() { + return this.qualifiedName(_Node.prototype.valueToString.call(this)); + }; + _createClass(Namespace, [{ + key: "namespace", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + if (namespace === true || namespace === "*" || namespace === "&") { + this._namespace = namespace; + if (this.raws) { + delete this.raws.namespace; + } + return; + } + var escaped = (0, _cssesc["default"])(namespace, { + isIdentifier: true + }); + this._namespace = namespace; + if (escaped !== namespace) { + (0, _util.ensureObject)(this, "raws"); + this.raws.namespace = escaped; + } else if (this.raws) { + delete this.raws.namespace; + } + } + }, { + key: "ns", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + this.namespace = namespace; + } + }, { + key: "namespaceString", + get: function get() { + if (this.namespace) { + var ns = this.stringifyProperty("namespace"); + if (ns === true) { + return ''; + } else { + return ns; + } + } else { + return ''; + } + } + }]); + return Namespace; + }(_node["default"]); + exports$1["default"] = Namespace; + module.exports = exports$1.default; + } (namespace, namespace.exports)); + return namespace.exports; +} + +var hasRequiredTag; + +function requireTag () { + if (hasRequiredTag) return tag.exports; + hasRequiredTag = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Tag = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Tag, _Namespace); + function Tag(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.TAG; + return _this; + } + return Tag; + }(_namespace["default"]); + exports$1["default"] = Tag; + module.exports = exports$1.default; + } (tag, tag.exports)); + return tag.exports; +} + +var string = {exports: {}}; + +var hasRequiredString; + +function requireString () { + if (hasRequiredString) return string.exports; + hasRequiredString = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var String = /*#__PURE__*/function (_Node) { + _inheritsLoose(String, _Node); + function String(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.STRING; + return _this; + } + return String; + }(_node["default"]); + exports$1["default"] = String; + module.exports = exports$1.default; + } (string, string.exports)); + return string.exports; +} + +var pseudo = {exports: {}}; + +var hasRequiredPseudo; + +function requirePseudo () { + if (hasRequiredPseudo) return pseudo.exports; + hasRequiredPseudo = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Pseudo = /*#__PURE__*/function (_Container) { + _inheritsLoose(Pseudo, _Container); + function Pseudo(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.PSEUDO; + return _this; + } + var _proto = Pseudo.prototype; + _proto.toString = function toString() { + var params = this.length ? '(' + this.map(String).join(',') + ')' : ''; + return [this.rawSpaceBefore, this.stringifyProperty("value"), params, this.rawSpaceAfter].join(''); + }; + return Pseudo; + }(_container["default"]); + exports$1["default"] = Pseudo; + module.exports = exports$1.default; + } (pseudo, pseudo.exports)); + return pseudo.exports; +} + +var attribute = {}; + +var hasRequiredAttribute; + +function requireAttribute () { + if (hasRequiredAttribute) return attribute; + hasRequiredAttribute = 1; + (function (exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + exports$1.unescapeValue = unescapeValue; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _unesc = _interopRequireDefault(/*@__PURE__*/ requireUnesc()); + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace()); + var _types = /*@__PURE__*/ requireTypes(); + var _CSSESC_QUOTE_OPTIONS; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var deprecate = /*@__PURE__*/ requireNode$1(); + var WRAPPED_IN_QUOTES = /^('|")([^]*)\1$/; + var warnOfDeprecatedValueAssignment = deprecate(function () {}, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. " + "Call attribute.setValue() instead."); + var warnOfDeprecatedQuotedAssignment = deprecate(function () {}, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."); + var warnOfDeprecatedConstructor = deprecate(function () {}, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now."); + function unescapeValue(value) { + var deprecatedUsage = false; + var quoteMark = null; + var unescaped = value; + var m = unescaped.match(WRAPPED_IN_QUOTES); + if (m) { + quoteMark = m[1]; + unescaped = m[2]; + } + unescaped = (0, _unesc["default"])(unescaped); + if (unescaped !== value) { + deprecatedUsage = true; + } + return { + deprecatedUsage: deprecatedUsage, + unescaped: unescaped, + quoteMark: quoteMark + }; + } + function handleDeprecatedContructorOpts(opts) { + if (opts.quoteMark !== undefined) { + return opts; + } + if (opts.value === undefined) { + return opts; + } + warnOfDeprecatedConstructor(); + var _unescapeValue = unescapeValue(opts.value), + quoteMark = _unescapeValue.quoteMark, + unescaped = _unescapeValue.unescaped; + if (!opts.raws) { + opts.raws = {}; + } + if (opts.raws.value === undefined) { + opts.raws.value = opts.value; + } + opts.value = unescaped; + opts.quoteMark = quoteMark; + return opts; + } + var Attribute = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Attribute, _Namespace); + function Attribute(opts) { + var _this; + if (opts === void 0) { + opts = {}; + } + _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this; + _this.type = _types.ATTRIBUTE; + _this.raws = _this.raws || {}; + Object.defineProperty(_this.raws, 'unquoted', { + get: deprecate(function () { + return _this.value; + }, "attr.raws.unquoted is deprecated. Call attr.value instead."), + set: deprecate(function () { + return _this.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.") + }); + _this._constructed = true; + return _this; + } + + /** + * Returns the Attribute's value quoted such that it would be legal to use + * in the value of a css file. The original value's quotation setting + * used for stringification is left unchanged. See `setValue(value, options)` + * if you want to control the quote settings of a new value for the attribute. + * + * You can also change the quotation used for the current value by setting quoteMark. + * + * Options: + * * quoteMark {'"' | "'" | null} - Use this value to quote the value. If this + * option is not set, the original value for quoteMark will be used. If + * indeterminate, a double quote is used. The legal values are: + * * `null` - the value will be unquoted and characters will be escaped as necessary. + * * `'` - the value will be quoted with a single quote and single quotes are escaped. + * * `"` - the value will be quoted with a double quote and double quotes are escaped. + * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark + * over the quoteMark option value. + * * smart {boolean} - if true, will select a quote mark based on the value + * and the other options specified here. See the `smartQuoteMark()` + * method. + **/ + var _proto = Attribute.prototype; + _proto.getQuotedValue = function getQuotedValue(options) { + if (options === void 0) { + options = {}; + } + var quoteMark = this._determineQuoteMark(options); + var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark]; + var escaped = (0, _cssesc["default"])(this._value, cssescopts); + return escaped; + }; + _proto._determineQuoteMark = function _determineQuoteMark(options) { + return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options); + } + + /** + * Set the unescaped value with the specified quotation options. The value + * provided must not include any wrapping quote marks -- those quotes will + * be interpreted as part of the value and escaped accordingly. + */; + _proto.setValue = function setValue(value, options) { + if (options === void 0) { + options = {}; + } + this._value = value; + this._quoteMark = this._determineQuoteMark(options); + this._syncRawValue(); + } + + /** + * Intelligently select a quoteMark value based on the value's contents. If + * the value is a legal CSS ident, it will not be quoted. Otherwise a quote + * mark will be picked that minimizes the number of escapes. + * + * If there's no clear winner, the quote mark from these options is used, + * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is + * true). If the quoteMark is unspecified, a double quote is used. + * + * @param options This takes the quoteMark and preferCurrentQuoteMark options + * from the quoteValue method. + */; + _proto.smartQuoteMark = function smartQuoteMark(options) { + var v = this.value; + var numSingleQuotes = v.replace(/[^']/g, '').length; + var numDoubleQuotes = v.replace(/[^"]/g, '').length; + if (numSingleQuotes + numDoubleQuotes === 0) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped === v) { + return Attribute.NO_QUOTE; + } else { + var pref = this.preferredQuoteMark(options); + if (pref === Attribute.NO_QUOTE) { + // pick a quote mark that isn't none and see if it's smaller + var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE; + var opts = CSSESC_QUOTE_OPTIONS[quote]; + var quoteValue = (0, _cssesc["default"])(v, opts); + if (quoteValue.length < escaped.length) { + return quote; + } + } + return pref; + } + } else if (numDoubleQuotes === numSingleQuotes) { + return this.preferredQuoteMark(options); + } else if (numDoubleQuotes < numSingleQuotes) { + return Attribute.DOUBLE_QUOTE; + } else { + return Attribute.SINGLE_QUOTE; + } + } + + /** + * Selects the preferred quote mark based on the options and the current quote mark value. + * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)` + * instead. + */; + _proto.preferredQuoteMark = function preferredQuoteMark(options) { + var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark; + if (quoteMark === undefined) { + quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark; + } + if (quoteMark === undefined) { + quoteMark = Attribute.DOUBLE_QUOTE; + } + return quoteMark; + }; + _proto._syncRawValue = function _syncRawValue() { + var rawValue = (0, _cssesc["default"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]); + if (rawValue === this._value) { + if (this.raws) { + delete this.raws.value; + } + } else { + this.raws.value = rawValue; + } + }; + _proto._handleEscapes = function _handleEscapes(prop, value) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(value, { + isIdentifier: true + }); + if (escaped !== value) { + this.raws[prop] = escaped; + } else { + delete this.raws[prop]; + } + } + }; + _proto._spacesFor = function _spacesFor(name) { + var attrSpaces = { + before: '', + after: '' + }; + var spaces = this.spaces[name] || {}; + var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {}; + return Object.assign(attrSpaces, spaces, rawSpaces); + }; + _proto._stringFor = function _stringFor(name, spaceName, concat) { + if (spaceName === void 0) { + spaceName = name; + } + if (concat === void 0) { + concat = defaultAttrConcat; + } + var attrSpaces = this._spacesFor(spaceName); + return concat(this.stringifyProperty(name), attrSpaces); + } + + /** + * returns the offset of the attribute part specified relative to the + * start of the node of the output string. + * + * * "ns" - alias for "namespace" + * * "namespace" - the namespace if it exists. + * * "attribute" - the attribute name + * * "attributeNS" - the start of the attribute or its namespace + * * "operator" - the match operator of the attribute + * * "value" - The value (string or identifier) + * * "insensitive" - the case insensitivity flag; + * @param part One of the possible values inside an attribute. + * @returns -1 if the name is invalid or the value doesn't exist in this attribute. + */; + _proto.offsetOf = function offsetOf(name) { + var count = 1; + var attributeSpaces = this._spacesFor("attribute"); + count += attributeSpaces.before.length; + if (name === "namespace" || name === "ns") { + return this.namespace ? count : -1; + } + if (name === "attributeNS") { + return count; + } + count += this.namespaceString.length; + if (this.namespace) { + count += 1; + } + if (name === "attribute") { + return count; + } + count += this.stringifyProperty("attribute").length; + count += attributeSpaces.after.length; + var operatorSpaces = this._spacesFor("operator"); + count += operatorSpaces.before.length; + var operator = this.stringifyProperty("operator"); + if (name === "operator") { + return operator ? count : -1; + } + count += operator.length; + count += operatorSpaces.after.length; + var valueSpaces = this._spacesFor("value"); + count += valueSpaces.before.length; + var value = this.stringifyProperty("value"); + if (name === "value") { + return value ? count : -1; + } + count += value.length; + count += valueSpaces.after.length; + var insensitiveSpaces = this._spacesFor("insensitive"); + count += insensitiveSpaces.before.length; + if (name === "insensitive") { + return this.insensitive ? count : -1; + } + return -1; + }; + _proto.toString = function toString() { + var _this2 = this; + var selector = [this.rawSpaceBefore, '[']; + selector.push(this._stringFor('qualifiedAttribute', 'attribute')); + if (this.operator && (this.value || this.value === '')) { + selector.push(this._stringFor('operator')); + selector.push(this._stringFor('value')); + selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) { + if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) { + attrSpaces.before = " "; + } + return defaultAttrConcat(attrValue, attrSpaces); + })); + } + selector.push(']'); + selector.push(this.rawSpaceAfter); + return selector.join(''); + }; + _createClass(Attribute, [{ + key: "quoted", + get: function get() { + var qm = this.quoteMark; + return qm === "'" || qm === '"'; + }, + set: function set(value) { + warnOfDeprecatedQuotedAssignment(); + } + + /** + * returns a single (`'`) or double (`"`) quote character if the value is quoted. + * returns `null` if the value is not quoted. + * returns `undefined` if the quotation state is unknown (this can happen when + * the attribute is constructed without specifying a quote mark.) + */ + }, { + key: "quoteMark", + get: function get() { + return this._quoteMark; + } + + /** + * Set the quote mark to be used by this attribute's value. + * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute + * value is updated accordingly. + * + * @param {"'" | '"' | null} quoteMark The quote mark or `null` if the value should be unquoted. + */, + set: function set(quoteMark) { + if (!this._constructed) { + this._quoteMark = quoteMark; + return; + } + if (this._quoteMark !== quoteMark) { + this._quoteMark = quoteMark; + this._syncRawValue(); + } + } + }, { + key: "qualifiedAttribute", + get: function get() { + return this.qualifiedName(this.raws.attribute || this.attribute); + } + }, { + key: "insensitiveFlag", + get: function get() { + return this.insensitive ? 'i' : ''; + } + }, { + key: "value", + get: function get() { + return this._value; + }, + set: + /** + * Before 3.0, the value had to be set to an escaped value including any wrapped + * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value + * is unescaped during parsing and any quote marks are removed. + * + * Because the ambiguity of this semantic change, if you set `attr.value = newValue`, + * a deprecation warning is raised when the new value contains any characters that would + * require escaping (including if it contains wrapped quotes). + * + * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe + * how the new value is quoted. + */ + function set(v) { + if (this._constructed) { + var _unescapeValue2 = unescapeValue(v), + deprecatedUsage = _unescapeValue2.deprecatedUsage, + unescaped = _unescapeValue2.unescaped, + quoteMark = _unescapeValue2.quoteMark; + if (deprecatedUsage) { + warnOfDeprecatedValueAssignment(); + } + if (unescaped === this._value && quoteMark === this._quoteMark) { + return; + } + this._value = unescaped; + this._quoteMark = quoteMark; + this._syncRawValue(); + } else { + this._value = v; + } + } + }, { + key: "insensitive", + get: function get() { + return this._insensitive; + } + + /** + * Set the case insensitive flag. + * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag` + * of the attribute is updated accordingly. + * + * @param {true | false} insensitive true if the attribute should match case-insensitively. + */, + set: function set(insensitive) { + if (!insensitive) { + this._insensitive = false; + + // "i" and "I" can be used in "this.raws.insensitiveFlag" to store the original notation. + // When setting `attr.insensitive = false` both should be erased to ensure correct serialization. + if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) { + this.raws.insensitiveFlag = undefined; + } + } + this._insensitive = insensitive; + } + }, { + key: "attribute", + get: function get() { + return this._attribute; + }, + set: function set(name) { + this._handleEscapes("attribute", name); + this._attribute = name; + } + }]); + return Attribute; + }(_namespace["default"]); + exports$1["default"] = Attribute; + Attribute.NO_QUOTE = null; + Attribute.SINGLE_QUOTE = "'"; + Attribute.DOUBLE_QUOTE = '"'; + var CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = { + "'": { + quotes: 'single', + wrap: true + }, + '"': { + quotes: 'double', + wrap: true + } + }, _CSSESC_QUOTE_OPTIONS[null] = { + isIdentifier: true + }, _CSSESC_QUOTE_OPTIONS); + function defaultAttrConcat(attrValue, attrSpaces) { + return "" + attrSpaces.before + attrValue + attrSpaces.after; + } + } (attribute)); + return attribute; +} + +var universal = {exports: {}}; + +var hasRequiredUniversal; + +function requireUniversal () { + if (hasRequiredUniversal) return universal.exports; + hasRequiredUniversal = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Universal = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Universal, _Namespace); + function Universal(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.UNIVERSAL; + _this.value = '*'; + return _this; + } + return Universal; + }(_namespace["default"]); + exports$1["default"] = Universal; + module.exports = exports$1.default; + } (universal, universal.exports)); + return universal.exports; +} + +var combinator = {exports: {}}; + +var hasRequiredCombinator; + +function requireCombinator () { + if (hasRequiredCombinator) return combinator.exports; + hasRequiredCombinator = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Combinator = /*#__PURE__*/function (_Node) { + _inheritsLoose(Combinator, _Node); + function Combinator(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMBINATOR; + return _this; + } + return Combinator; + }(_node["default"]); + exports$1["default"] = Combinator; + module.exports = exports$1.default; + } (combinator, combinator.exports)); + return combinator.exports; +} + +var nesting = {exports: {}}; + +var hasRequiredNesting; + +function requireNesting () { + if (hasRequiredNesting) return nesting.exports; + hasRequiredNesting = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Nesting = /*#__PURE__*/function (_Node) { + _inheritsLoose(Nesting, _Node); + function Nesting(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.NESTING; + _this.value = '&'; + return _this; + } + return Nesting; + }(_node["default"]); + exports$1["default"] = Nesting; + module.exports = exports$1.default; + } (nesting, nesting.exports)); + return nesting.exports; +} + +var sortAscending = {exports: {}}; + +var hasRequiredSortAscending; + +function requireSortAscending () { + if (hasRequiredSortAscending) return sortAscending.exports; + hasRequiredSortAscending = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = sortAscending; + function sortAscending(list) { + return list.sort(function (a, b) { + return a - b; + }); + } + module.exports = exports$1.default; + } (sortAscending, sortAscending.exports)); + return sortAscending.exports; +} + +var tokenize = {}; + +var tokenTypes = {}; + +var hasRequiredTokenTypes; + +function requireTokenTypes () { + if (hasRequiredTokenTypes) return tokenTypes; + hasRequiredTokenTypes = 1; + + tokenTypes.__esModule = true; + tokenTypes.word = tokenTypes.tilde = tokenTypes.tab = tokenTypes.str = tokenTypes.space = tokenTypes.slash = tokenTypes.singleQuote = tokenTypes.semicolon = tokenTypes.plus = tokenTypes.pipe = tokenTypes.openSquare = tokenTypes.openParenthesis = tokenTypes.newline = tokenTypes.greaterThan = tokenTypes.feed = tokenTypes.equals = tokenTypes.doubleQuote = tokenTypes.dollar = tokenTypes.cr = tokenTypes.comment = tokenTypes.comma = tokenTypes.combinator = tokenTypes.colon = tokenTypes.closeSquare = tokenTypes.closeParenthesis = tokenTypes.caret = tokenTypes.bang = tokenTypes.backslash = tokenTypes.at = tokenTypes.asterisk = tokenTypes.ampersand = void 0; + var ampersand = 38; // `&`.charCodeAt(0); + tokenTypes.ampersand = ampersand; + var asterisk = 42; // `*`.charCodeAt(0); + tokenTypes.asterisk = asterisk; + var at = 64; // `@`.charCodeAt(0); + tokenTypes.at = at; + var comma = 44; // `,`.charCodeAt(0); + tokenTypes.comma = comma; + var colon = 58; // `:`.charCodeAt(0); + tokenTypes.colon = colon; + var semicolon = 59; // `;`.charCodeAt(0); + tokenTypes.semicolon = semicolon; + var openParenthesis = 40; // `(`.charCodeAt(0); + tokenTypes.openParenthesis = openParenthesis; + var closeParenthesis = 41; // `)`.charCodeAt(0); + tokenTypes.closeParenthesis = closeParenthesis; + var openSquare = 91; // `[`.charCodeAt(0); + tokenTypes.openSquare = openSquare; + var closeSquare = 93; // `]`.charCodeAt(0); + tokenTypes.closeSquare = closeSquare; + var dollar = 36; // `$`.charCodeAt(0); + tokenTypes.dollar = dollar; + var tilde = 126; // `~`.charCodeAt(0); + tokenTypes.tilde = tilde; + var caret = 94; // `^`.charCodeAt(0); + tokenTypes.caret = caret; + var plus = 43; // `+`.charCodeAt(0); + tokenTypes.plus = plus; + var equals = 61; // `=`.charCodeAt(0); + tokenTypes.equals = equals; + var pipe = 124; // `|`.charCodeAt(0); + tokenTypes.pipe = pipe; + var greaterThan = 62; // `>`.charCodeAt(0); + tokenTypes.greaterThan = greaterThan; + var space = 32; // ` `.charCodeAt(0); + tokenTypes.space = space; + var singleQuote = 39; // `'`.charCodeAt(0); + tokenTypes.singleQuote = singleQuote; + var doubleQuote = 34; // `"`.charCodeAt(0); + tokenTypes.doubleQuote = doubleQuote; + var slash = 47; // `/`.charCodeAt(0); + tokenTypes.slash = slash; + var bang = 33; // `!`.charCodeAt(0); + tokenTypes.bang = bang; + var backslash = 92; // '\\'.charCodeAt(0); + tokenTypes.backslash = backslash; + var cr = 13; // '\r'.charCodeAt(0); + tokenTypes.cr = cr; + var feed = 12; // '\f'.charCodeAt(0); + tokenTypes.feed = feed; + var newline = 10; // '\n'.charCodeAt(0); + tokenTypes.newline = newline; + var tab = 9; // '\t'.charCodeAt(0); + + // Expose aliases primarily for readability. + tokenTypes.tab = tab; + var str = singleQuote; + + // No good single character representation! + tokenTypes.str = str; + var comment = -1; + tokenTypes.comment = comment; + var word = -2; + tokenTypes.word = word; + var combinator = -3; + tokenTypes.combinator = combinator; + return tokenTypes; +} + +var hasRequiredTokenize; + +function requireTokenize () { + if (hasRequiredTokenize) return tokenize; + hasRequiredTokenize = 1; + (function (exports$1) { + + exports$1.__esModule = true; + exports$1.FIELDS = void 0; + exports$1["default"] = tokenize; + var t = _interopRequireWildcard(/*@__PURE__*/ requireTokenTypes()); + var _unescapable, _wordDelimiters; + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + var unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable); + var wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters); + var hex = {}; + var hexChars = "0123456789abcdefABCDEF"; + for (var i = 0; i < hexChars.length; i++) { + hex[hexChars.charCodeAt(i)] = true; + } + + /** + * Returns the last index of the bar css word + * @param {string} css The string in which the word begins + * @param {number} start The index into the string where word's first letter occurs + */ + function consumeWord(css, start) { + var next = start; + var code; + do { + code = css.charCodeAt(next); + if (wordDelimiters[code]) { + return next - 1; + } else if (code === t.backslash) { + next = consumeEscape(css, next) + 1; + } else { + // All other characters are part of the word + next++; + } + } while (next < css.length); + return next - 1; + } + + /** + * Returns the last index of the escape sequence + * @param {string} css The string in which the sequence begins + * @param {number} start The index into the string where escape character (`\`) occurs. + */ + function consumeEscape(css, start) { + var next = start; + var code = css.charCodeAt(next + 1); + if (unescapable[code]) ; else if (hex[code]) { + var hexDigits = 0; + // consume up to 6 hex chars + do { + next++; + hexDigits++; + code = css.charCodeAt(next + 1); + } while (hex[code] && hexDigits < 6); + // if fewer than 6 hex chars, a trailing space ends the escape + if (hexDigits < 6 && code === t.space) { + next++; + } + } else { + // the next char is part of the current word + next++; + } + return next; + } + var FIELDS = { + TYPE: 0, + START_LINE: 1, + START_COL: 2, + END_LINE: 3, + END_COL: 4, + START_POS: 5, + END_POS: 6 + }; + exports$1.FIELDS = FIELDS; + function tokenize(input) { + var tokens = []; + var css = input.css.valueOf(); + var _css = css, + length = _css.length; + var offset = -1; + var line = 1; + var start = 0; + var end = 0; + var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType; + function unclosed(what, fix) { + if (input.safe) { + // fyi: this is never set to true. + css += fix; + next = css.length - 1; + } else { + throw input.error('Unclosed ' + what, line, start - offset, start); + } + } + while (start < length) { + code = css.charCodeAt(start); + if (code === t.newline) { + offset = start; + line += 1; + } + switch (code) { + case t.space: + case t.tab: + case t.newline: + case t.cr: + case t.feed: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + if (code === t.newline) { + offset = next; + line += 1; + } + } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed); + tokenType = t.space; + endLine = line; + endColumn = next - offset - 1; + end = next; + break; + case t.plus: + case t.greaterThan: + case t.tilde: + case t.pipe: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe); + tokenType = t.combinator; + endLine = line; + endColumn = start - offset; + end = next; + break; + + // Consume these characters as single tokens. + case t.asterisk: + case t.ampersand: + case t.bang: + case t.comma: + case t.equals: + case t.dollar: + case t.caret: + case t.openSquare: + case t.closeSquare: + case t.colon: + case t.semicolon: + case t.openParenthesis: + case t.closeParenthesis: + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + case t.singleQuote: + case t.doubleQuote: + quote = code === t.singleQuote ? "'" : '"'; + next = start; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + unclosed('quote', quote); + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === t.backslash) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + tokenType = t.str; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + default: + if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) { + next = css.indexOf('*/', start + 2) + 1; + if (next === 0) { + unclosed('comment', '*/'); + } + content = css.slice(start, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + if (last > 0) { + nextLine = line + last; + nextOffset = next - lines[last].length; + } else { + nextLine = line; + nextOffset = offset; + } + tokenType = t.comment; + line = nextLine; + endLine = nextLine; + endColumn = next - nextOffset; + } else if (code === t.slash) { + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + } else { + next = consumeWord(css, start); + tokenType = t.word; + endLine = line; + endColumn = next - offset; + } + end = next + 1; + break; + } + + // Ensure that the token structure remains consistent + tokens.push([tokenType, + // [0] Token type + line, + // [1] Starting line + start - offset, + // [2] Starting column + endLine, + // [3] Ending line + endColumn, + // [4] Ending column + start, + // [5] Start position / Source index + end // [6] End position + ]); + + // Reset offset for the next token + if (nextOffset) { + offset = nextOffset; + nextOffset = null; + } + start = end; + } + return tokens; + } + } (tokenize)); + return tokenize; +} + +var hasRequiredParser; + +function requireParser () { + if (hasRequiredParser) return parser.exports; + hasRequiredParser = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _root = _interopRequireDefault(/*@__PURE__*/ requireRoot()); + var _selector = _interopRequireDefault(/*@__PURE__*/ requireSelector()); + var _className = _interopRequireDefault(/*@__PURE__*/ requireClassName()); + var _comment = _interopRequireDefault(/*@__PURE__*/ requireComment()); + var _id = _interopRequireDefault(/*@__PURE__*/ requireId()); + var _tag = _interopRequireDefault(/*@__PURE__*/ requireTag()); + var _string = _interopRequireDefault(/*@__PURE__*/ requireString()); + var _pseudo = _interopRequireDefault(/*@__PURE__*/ requirePseudo()); + var _attribute = _interopRequireWildcard(/*@__PURE__*/ requireAttribute()); + var _universal = _interopRequireDefault(/*@__PURE__*/ requireUniversal()); + var _combinator = _interopRequireDefault(/*@__PURE__*/ requireCombinator()); + var _nesting = _interopRequireDefault(/*@__PURE__*/ requireNesting()); + var _sortAscending = _interopRequireDefault(/*@__PURE__*/ requireSortAscending()); + var _tokenize = _interopRequireWildcard(/*@__PURE__*/ requireTokenize()); + var tokens = _interopRequireWildcard(/*@__PURE__*/ requireTokenTypes()); + var types = _interopRequireWildcard(/*@__PURE__*/ requireTypes()); + var _util = /*@__PURE__*/ requireUtil(); + var _WHITESPACE_TOKENS, _Object$assign; + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + var WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS); + var WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign)); + function tokenStart(token) { + return { + line: token[_tokenize.FIELDS.START_LINE], + column: token[_tokenize.FIELDS.START_COL] + }; + } + function tokenEnd(token) { + return { + line: token[_tokenize.FIELDS.END_LINE], + column: token[_tokenize.FIELDS.END_COL] + }; + } + function getSource(startLine, startColumn, endLine, endColumn) { + return { + start: { + line: startLine, + column: startColumn + }, + end: { + line: endLine, + column: endColumn + } + }; + } + function getTokenSource(token) { + return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]); + } + function getTokenSourceSpan(startToken, endToken) { + if (!startToken) { + return undefined; + } + return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]); + } + function unescapeProp(node, prop) { + var value = node[prop]; + if (typeof value !== "string") { + return; + } + if (value.indexOf("\\") !== -1) { + (0, _util.ensureObject)(node, 'raws'); + node[prop] = (0, _util.unesc)(value); + if (node.raws[prop] === undefined) { + node.raws[prop] = value; + } + } + return node; + } + function indexesOf(array, item) { + var i = -1; + var indexes = []; + while ((i = array.indexOf(item, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; + } + function uniqs() { + var list = Array.prototype.concat.apply([], arguments); + return list.filter(function (item, i) { + return i === list.indexOf(item); + }); + } + var Parser = /*#__PURE__*/function () { + function Parser(rule, options) { + if (options === void 0) { + options = {}; + } + this.rule = rule; + this.options = Object.assign({ + lossy: false, + safe: false + }, options); + this.position = 0; + this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector; + this.tokens = (0, _tokenize["default"])({ + css: this.css, + error: this._errorGenerator(), + safe: this.options.safe + }); + var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]); + this.root = new _root["default"]({ + source: rootSource + }); + this.root.errorGenerator = this._errorGenerator(); + var selector = new _selector["default"]({ + source: { + start: { + line: 1, + column: 1 + } + }, + sourceIndex: 0 + }); + this.root.append(selector); + this.current = selector; + this.loop(); + } + var _proto = Parser.prototype; + _proto._errorGenerator = function _errorGenerator() { + var _this = this; + return function (message, errorOptions) { + if (typeof _this.rule === 'string') { + return new Error(message); + } + return _this.rule.error(message, errorOptions); + }; + }; + _proto.attribute = function attribute() { + var attr = []; + var startingToken = this.currToken; + this.position++; + while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + attr.push(this.currToken); + this.position++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + } + var len = attr.length; + var node = { + source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + }; + if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) { + return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]); + } + var pos = 0; + var spaceBefore = ''; + var commentBefore = ''; + var lastAdded = null; + var spaceAfterMeaningfulToken = false; + while (pos < len) { + var token = attr[pos]; + var content = this.content(token); + var next = attr[pos + 1]; + switch (token[_tokenize.FIELDS.TYPE]) { + case tokens.space: + // if ( + // len === 1 || + // pos === 0 && this.content(next) === '|' + // ) { + // return this.expected('attribute', token[TOKEN.START_POS], content); + // } + spaceAfterMeaningfulToken = true; + if (this.options.lossy) { + break; + } + if (lastAdded) { + (0, _util.ensureObject)(node, 'spaces', lastAdded); + var prevContent = node.spaces[lastAdded].after || ''; + node.spaces[lastAdded].after = prevContent + content; + var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null; + if (existingComment) { + node.raws.spaces[lastAdded].after = existingComment + content; + } + } else { + spaceBefore = spaceBefore + content; + commentBefore = commentBefore + content; + } + break; + case tokens.asterisk: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if ((!node.namespace || lastAdded === "namespace" && !spaceAfterMeaningfulToken) && next) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = spaceBefore; + commentBefore = ''; + } + node.namespace = (node.namespace || "") + content; + var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null; + if (rawValue) { + node.raws.namespace += content; + } + lastAdded = 'namespace'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.dollar: + if (lastAdded === "value") { + var oldRawValue = (0, _util.getProp)(node, 'raws', 'value'); + node.value += "$"; + if (oldRawValue) { + node.raws.value = oldRawValue + "$"; + } + break; + } + // Falls through + case tokens.caret: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.combinator: + if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + if (content !== '|') { + spaceAfterMeaningfulToken = false; + break; + } + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if (!node.namespace && !node.attribute) { + node.namespace = true; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.word: + if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && + // this look-ahead probably fails with comment nodes involved. + !node.operator && !node.namespace) { + node.namespace = content; + lastAdded = 'namespace'; + } else if (!node.attribute || lastAdded === "attribute" && !spaceAfterMeaningfulToken) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = commentBefore; + commentBefore = ''; + } + node.attribute = (node.attribute || "") + content; + var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null; + if (_rawValue) { + node.raws.attribute += content; + } + lastAdded = 'attribute'; + } else if (!node.value && node.value !== "" || lastAdded === "value" && !(spaceAfterMeaningfulToken || node.quoteMark)) { + var _unescaped = (0, _util.unesc)(content); + var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || ''; + var oldValue = node.value || ''; + node.value = oldValue + _unescaped; + node.quoteMark = null; + if (_unescaped !== content || _oldRawValue) { + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = (_oldRawValue || oldValue) + content; + } + lastAdded = 'value'; + } else { + var insensitive = content === 'i' || content === "I"; + if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) { + node.insensitive = insensitive; + if (!insensitive || content === "I") { + (0, _util.ensureObject)(node, 'raws'); + node.raws.insensitiveFlag = content; + } + lastAdded = 'insensitive'; + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'insensitive'); + node.spaces.insensitive.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive'); + node.raws.spaces.insensitive.before = commentBefore; + commentBefore = ''; + } + } else if (node.value || node.value === '') { + lastAdded = 'value'; + node.value += content; + if (node.raws.value) { + node.raws.value += content; + } + } + } + spaceAfterMeaningfulToken = false; + break; + case tokens.str: + if (!node.attribute || !node.operator) { + return this.error("Expected an attribute followed by an operator preceding the string.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + var _unescapeValue = (0, _attribute.unescapeValue)(content), + unescaped = _unescapeValue.unescaped, + quoteMark = _unescapeValue.quoteMark; + node.value = unescaped; + node.quoteMark = quoteMark; + lastAdded = 'value'; + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = content; + spaceAfterMeaningfulToken = false; + break; + case tokens.equals: + if (!node.attribute) { + return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content); + } + if (node.value) { + return this.error('Unexpected "=" found; an operator was already defined.', { + index: token[_tokenize.FIELDS.START_POS] + }); + } + node.operator = node.operator ? node.operator + content : content; + lastAdded = 'operator'; + spaceAfterMeaningfulToken = false; + break; + case tokens.comment: + if (lastAdded) { + if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') { + var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || ''; + var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment; + (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded); + node.raws.spaces[lastAdded].after = rawLastComment + content; + } else { + var lastValue = node[lastAdded] || ''; + var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue; + (0, _util.ensureObject)(node, 'raws'); + node.raws[lastAdded] = rawLastValue + content; + } + } else { + commentBefore = commentBefore + content; + } + break; + default: + return this.error("Unexpected \"" + content + "\" found.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + pos++; + } + unescapeProp(node, "attribute"); + unescapeProp(node, "namespace"); + this.newNode(new _attribute["default"](node)); + this.position++; + } + + /** + * return a node containing meaningless garbage up to (but not including) the specified token position. + * if the token position is negative, all remaining tokens are consumed. + * + * This returns an array containing a single string node if all whitespace, + * otherwise an array of comment nodes with space before and after. + * + * These tokens are not added to the current selector, the caller can add them or use them to amend + * a previous node's space metadata. + * + * In lossy mode, this returns only comments. + */; + _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) { + if (stopPosition < 0) { + stopPosition = this.tokens.length; + } + var startPosition = this.position; + var nodes = []; + var space = ""; + var lastComment = undefined; + do { + if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) { + if (!this.options.lossy) { + space += this.content(); + } + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) { + var spaces = {}; + if (space) { + spaces.before = space; + space = ""; + } + lastComment = new _comment["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + spaces: spaces + }); + nodes.push(lastComment); + } + } while (++this.position < stopPosition); + if (space) { + if (lastComment) { + lastComment.spaces.after = space; + } else if (!this.options.lossy) { + var firstToken = this.tokens[startPosition]; + var lastToken = this.tokens[this.position - 1]; + nodes.push(new _string["default"]({ + value: '', + source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: { + before: space, + after: '' + } + })); + } + } + return nodes; + } + + /** + * + * @param {*} nodes + */; + _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) { + var _this2 = this; + if (requiredSpace === void 0) { + requiredSpace = false; + } + var space = ""; + var rawSpace = ""; + nodes.forEach(function (n) { + var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace); + var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace); + space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0); + rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0); + }); + if (rawSpace === space) { + rawSpace = undefined; + } + var result = { + space: space, + rawSpace: rawSpace + }; + return result; + }; + _proto.isNamedCombinator = function isNamedCombinator(position) { + if (position === void 0) { + position = this.position; + } + return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash; + }; + _proto.namedCombinator = function namedCombinator() { + if (this.isNamedCombinator()) { + var nameRaw = this.content(this.tokens[this.position + 1]); + var name = (0, _util.unesc)(nameRaw).toLowerCase(); + var raws = {}; + if (name !== nameRaw) { + raws.value = "/" + nameRaw + "/"; + } + var node = new _combinator["default"]({ + value: "/" + name + "/", + source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + raws: raws + }); + this.position = this.position + 3; + return node; + } else { + this.unexpected(); + } + }; + _proto.combinator = function combinator() { + var _this3 = this; + if (this.content() === '|') { + return this.namespace(); + } + // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector. + var nextSigTokenPos = this.locateNextMeaningfulToken(this.position); + if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + if (nodes.length > 0) { + var last = this.current.last; + if (last) { + var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes), + space = _this$convertWhitespa.space, + rawSpace = _this$convertWhitespa.rawSpace; + if (rawSpace !== undefined) { + last.rawSpaceAfter += rawSpace; + } + last.spaces.after += space; + } else { + nodes.forEach(function (n) { + return _this3.newNode(n); + }); + } + } + return; + } + var firstToken = this.currToken; + var spaceOrDescendantSelectorNodes = undefined; + if (nextSigTokenPos > this.position) { + spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + } + var node; + if (this.isNamedCombinator()) { + node = this.namedCombinator(); + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) { + node = new _combinator["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS] + }); + this.position++; + } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) ; else if (!spaceOrDescendantSelectorNodes) { + this.unexpected(); + } + if (node) { + if (spaceOrDescendantSelectorNodes) { + var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes), + _space = _this$convertWhitespa2.space, + _rawSpace = _this$convertWhitespa2.rawSpace; + node.spaces.before = _space; + node.rawSpaceBefore = _rawSpace; + } + } else { + // descendant combinator + var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true), + _space2 = _this$convertWhitespa3.space, + _rawSpace2 = _this$convertWhitespa3.rawSpace; + if (!_rawSpace2) { + _rawSpace2 = _space2; + } + var spaces = {}; + var raws = { + spaces: {} + }; + if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) { + spaces.before = _space2.slice(0, _space2.length - 1); + raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1); + } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) { + spaces.after = _space2.slice(1); + raws.spaces.after = _rawSpace2.slice(1); + } else { + raws.value = _rawSpace2; + } + node = new _combinator["default"]({ + value: ' ', + source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: spaces, + raws: raws + }); + } + if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) { + node.spaces.after = this.optionalSpace(this.content()); + this.position++; + } + return this.newNode(node); + }; + _proto.comma = function comma() { + if (this.position === this.tokens.length - 1) { + this.root.trailingComma = true; + this.position++; + return; + } + this.current._inferEndPosition(); + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position + 1]) + }, + sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS] + }); + this.current.parent.append(selector); + this.current = selector; + this.position++; + }; + _proto.comment = function comment() { + var current = this.currToken; + this.newNode(new _comment["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.error = function error(message, opts) { + throw this.root.error(message, opts); + }; + _proto.missingBackslash = function missingBackslash() { + return this.error('Expected a backslash preceding the semicolon.', { + index: this.currToken[_tokenize.FIELDS.START_POS] + }); + }; + _proto.missingParenthesis = function missingParenthesis() { + return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.missingSquareBracket = function missingSquareBracket() { + return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpected = function unexpected() { + return this.error("Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpectedPipe = function unexpectedPipe() { + return this.error("Unexpected '|'.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.namespace = function namespace() { + var before = this.prevToken && this.content(this.prevToken) || true; + if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.position++; + return this.word(before); + } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) { + this.position++; + return this.universal(before); + } + this.unexpectedPipe(); + }; + _proto.nesting = function nesting() { + if (this.nextToken) { + var nextContent = this.content(this.nextToken); + if (nextContent === "|") { + this.position++; + return; + } + } + var current = this.currToken; + this.newNode(new _nesting["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.parentheses = function parentheses() { + var last = this.current.last; + var unbalanced = 1; + this.position++; + if (last && last.type === types.PSEUDO) { + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position]) + }, + sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS] + }); + var cache = this.current; + last.append(selector); + this.current = selector; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + if (unbalanced) { + this.parse(); + } else { + this.current.source.end = tokenEnd(this.currToken); + this.current.parent.source.end = tokenEnd(this.currToken); + this.position++; + } + } + this.current = cache; + } else { + // I think this case should be an error. It's used to implement a basic parse of media queries + // but I don't think it's a good idea. + var parenStart = this.currToken; + var parenValue = "("; + var parenEnd; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + parenEnd = this.currToken; + parenValue += this.parseParenthesisToken(this.currToken); + this.position++; + } + if (last) { + last.appendToPropertyAndEscape("value", parenValue, parenValue); + } else { + this.newNode(new _string["default"]({ + value: parenValue, + source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]), + sourceIndex: parenStart[_tokenize.FIELDS.START_POS] + })); + } + } + if (unbalanced) { + return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.pseudo = function pseudo() { + var _this4 = this; + var pseudoStr = ''; + var startingToken = this.currToken; + while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) { + pseudoStr += this.content(); + this.position++; + } + if (!this.currToken) { + return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1); + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.splitWord(false, function (first, length) { + pseudoStr += first; + _this4.newNode(new _pseudo["default"]({ + value: pseudoStr, + source: getTokenSourceSpan(startingToken, _this4.currToken), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + })); + if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + _this4.error('Misplaced parenthesis.', { + index: _this4.nextToken[_tokenize.FIELDS.START_POS] + }); + } + }); + } else { + return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.space = function space() { + var content = this.content(); + // Handle space before and after the selector + if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) { + return node.type === 'comment'; + })) { + this.spaces = this.optionalSpace(content); + this.position++; + } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + this.current.last.spaces.after = this.optionalSpace(content); + this.position++; + } else { + this.combinator(); + } + }; + _proto.string = function string() { + var current = this.currToken; + this.newNode(new _string["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.universal = function universal(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + var current = this.currToken; + this.newNode(new _universal["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + }), namespace); + this.position++; + }; + _proto.splitWord = function splitWord(namespace, firstCallback) { + var _this5 = this; + var nextToken = this.nextToken; + var word = this.content(); + while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) { + this.position++; + var current = this.content(); + word += current; + if (current.lastIndexOf('\\') === current.length - 1) { + var next = this.nextToken; + if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) { + word += this.requiredSpace(this.content(next)); + this.position++; + } + } + nextToken = this.nextToken; + } + var hasClass = indexesOf(word, '.').filter(function (i) { + // Allow escaped dot within class name + var escapedDot = word[i - 1] === '\\'; + // Allow decimal numbers percent in @keyframes + var isKeyframesPercent = /^\d+\.\d+%$/.test(word); + return !escapedDot && !isKeyframesPercent; + }); + var hasId = indexesOf(word, '#').filter(function (i) { + return word[i - 1] !== '\\'; + }); + // Eliminate Sass interpolations from the list of id indexes + var interpolations = indexesOf(word, '#{'); + if (interpolations.length) { + hasId = hasId.filter(function (hashIndex) { + return !~interpolations.indexOf(hashIndex); + }); + } + var indices = (0, _sortAscending["default"])(uniqs([0].concat(hasClass, hasId))); + indices.forEach(function (ind, i) { + var index = indices[i + 1] || word.length; + var value = word.slice(ind, index); + if (i === 0 && firstCallback) { + return firstCallback.call(_this5, value, indices.length); + } + var node; + var current = _this5.currToken; + var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i]; + var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1)); + if (~hasClass.indexOf(ind)) { + var classNameOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _className["default"](unescapeProp(classNameOpts, "value")); + } else if (~hasId.indexOf(ind)) { + var idOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _id["default"](unescapeProp(idOpts, "value")); + } else { + var tagOpts = { + value: value, + source: source, + sourceIndex: sourceIndex + }; + unescapeProp(tagOpts, "value"); + node = new _tag["default"](tagOpts); + } + _this5.newNode(node, namespace); + // Ensure that the namespace is used only once + namespace = null; + }); + this.position++; + }; + _proto.word = function word(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + return this.splitWord(namespace); + }; + _proto.loop = function loop() { + while (this.position < this.tokens.length) { + this.parse(true); + } + this.current._inferEndPosition(); + return this.root; + }; + _proto.parse = function parse(throwOnParenthesis) { + switch (this.currToken[_tokenize.FIELDS.TYPE]) { + case tokens.space: + this.space(); + break; + case tokens.comment: + this.comment(); + break; + case tokens.openParenthesis: + this.parentheses(); + break; + case tokens.closeParenthesis: + if (throwOnParenthesis) { + this.missingParenthesis(); + } + break; + case tokens.openSquare: + this.attribute(); + break; + case tokens.dollar: + case tokens.caret: + case tokens.equals: + case tokens.word: + this.word(); + break; + case tokens.colon: + this.pseudo(); + break; + case tokens.comma: + this.comma(); + break; + case tokens.asterisk: + this.universal(); + break; + case tokens.ampersand: + this.nesting(); + break; + case tokens.slash: + case tokens.combinator: + this.combinator(); + break; + case tokens.str: + this.string(); + break; + // These cases throw; no break needed. + case tokens.closeSquare: + this.missingSquareBracket(); + case tokens.semicolon: + this.missingBackslash(); + default: + this.unexpected(); + } + } + + /** + * Helpers + */; + _proto.expected = function expected(description, index, found) { + if (Array.isArray(description)) { + var last = description.pop(); + description = description.join(', ') + " or " + last; + } + var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a'; + if (!found) { + return this.error("Expected " + an + " " + description + ".", { + index: index + }); + } + return this.error("Expected " + an + " " + description + ", found \"" + found + "\" instead.", { + index: index + }); + }; + _proto.requiredSpace = function requiredSpace(space) { + return this.options.lossy ? ' ' : space; + }; + _proto.optionalSpace = function optionalSpace(space) { + return this.options.lossy ? '' : space; + }; + _proto.lossySpace = function lossySpace(space, required) { + if (this.options.lossy) { + return required ? ' ' : ''; + } else { + return space; + } + }; + _proto.parseParenthesisToken = function parseParenthesisToken(token) { + var content = this.content(token); + if (token[_tokenize.FIELDS.TYPE] === tokens.space) { + return this.requiredSpace(content); + } else { + return content; + } + }; + _proto.newNode = function newNode(node, namespace) { + if (namespace) { + if (/^ +$/.test(namespace)) { + if (!this.options.lossy) { + this.spaces = (this.spaces || '') + namespace; + } + namespace = true; + } + node.namespace = namespace; + unescapeProp(node, "namespace"); + } + if (this.spaces) { + node.spaces.before = this.spaces; + this.spaces = ''; + } + return this.current.append(node); + }; + _proto.content = function content(token) { + if (token === void 0) { + token = this.currToken; + } + return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]); + }; + /** + * returns the index of the next non-whitespace, non-comment token. + * returns -1 if no meaningful token is found. + */ + _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) { + if (startPosition === void 0) { + startPosition = this.position + 1; + } + var searchPosition = startPosition; + while (searchPosition < this.tokens.length) { + if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) { + searchPosition++; + continue; + } else { + return searchPosition; + } + } + return -1; + }; + _createClass(Parser, [{ + key: "currToken", + get: function get() { + return this.tokens[this.position]; + } + }, { + key: "nextToken", + get: function get() { + return this.tokens[this.position + 1]; + } + }, { + key: "prevToken", + get: function get() { + return this.tokens[this.position - 1]; + } + }]); + return Parser; + }(); + exports$1["default"] = Parser; + module.exports = exports$1.default; + } (parser, parser.exports)); + return parser.exports; +} + +var hasRequiredProcessor; + +function requireProcessor () { + if (hasRequiredProcessor) return processor.exports; + hasRequiredProcessor = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _parser = _interopRequireDefault(/*@__PURE__*/ requireParser()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var Processor = /*#__PURE__*/function () { + function Processor(func, options) { + this.func = func || function noop() {}; + this.funcRes = null; + this.options = options; + } + var _proto = Processor.prototype; + _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.updateSelector === false) { + return false; + } else { + return typeof rule !== "string"; + } + }; + _proto._isLossy = function _isLossy(options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.lossless === false) { + return true; + } else { + return false; + } + }; + _proto._root = function _root(rule, options) { + if (options === void 0) { + options = {}; + } + var parser = new _parser["default"](rule, this._parseOptions(options)); + return parser.root; + }; + _proto._parseOptions = function _parseOptions(options) { + return { + lossy: this._isLossy(options) + }; + }; + _proto._run = function _run(rule, options) { + var _this = this; + if (options === void 0) { + options = {}; + } + return new Promise(function (resolve, reject) { + try { + var root = _this._root(rule, options); + Promise.resolve(_this.func(root)).then(function (transform) { + var string = undefined; + if (_this._shouldUpdateSelector(rule, options)) { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + }).then(resolve, reject); + } catch (e) { + reject(e); + return; + } + }); + }; + _proto._runSync = function _runSync(rule, options) { + if (options === void 0) { + options = {}; + } + var root = this._root(rule, options); + var transform = this.func(root); + if (transform && typeof transform.then === "function") { + throw new Error("Selector processor returned a promise to a synchronous call."); + } + var string = undefined; + if (options.updateSelector && typeof rule !== "string") { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + } + + /** + * Process rule into a selector AST. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise<parser.Root>} The AST of the selector after processing it. + */; + _proto.ast = function ast(rule, options) { + return this._run(rule, options).then(function (result) { + return result.root; + }); + } + + /** + * Process rule into a selector AST synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {parser.Root} The AST of the selector after processing it. + */; + _proto.astSync = function astSync(rule, options) { + return this._runSync(rule, options).root; + } + + /** + * Process a selector into a transformed value asynchronously + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise<any>} The value returned by the processor. + */; + _proto.transform = function transform(rule, options) { + return this._run(rule, options).then(function (result) { + return result.transform; + }); + } + + /** + * Process a selector into a transformed value synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {any} The value returned by the processor. + */; + _proto.transformSync = function transformSync(rule, options) { + return this._runSync(rule, options).transform; + } + + /** + * Process a selector into a new selector string asynchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.process = function process(rule, options) { + return this._run(rule, options).then(function (result) { + return result.string || result.root.toString(); + }); + } + + /** + * Process a selector into a new selector string synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.processSync = function processSync(rule, options) { + var result = this._runSync(rule, options); + return result.string || result.root.toString(); + }; + return Processor; + }(); + exports$1["default"] = Processor; + module.exports = exports$1.default; + } (processor, processor.exports)); + return processor.exports; +} + +var selectors = {}; + +var constructors = {}; + +var hasRequiredConstructors; + +function requireConstructors () { + if (hasRequiredConstructors) return constructors; + hasRequiredConstructors = 1; + + constructors.__esModule = true; + constructors.universal = constructors.tag = constructors.string = constructors.selector = constructors.root = constructors.pseudo = constructors.nesting = constructors.id = constructors.comment = constructors.combinator = constructors.className = constructors.attribute = void 0; + var _attribute = _interopRequireDefault(/*@__PURE__*/ requireAttribute()); + var _className = _interopRequireDefault(/*@__PURE__*/ requireClassName()); + var _combinator = _interopRequireDefault(/*@__PURE__*/ requireCombinator()); + var _comment = _interopRequireDefault(/*@__PURE__*/ requireComment()); + var _id = _interopRequireDefault(/*@__PURE__*/ requireId()); + var _nesting = _interopRequireDefault(/*@__PURE__*/ requireNesting()); + var _pseudo = _interopRequireDefault(/*@__PURE__*/ requirePseudo()); + var _root = _interopRequireDefault(/*@__PURE__*/ requireRoot()); + var _selector = _interopRequireDefault(/*@__PURE__*/ requireSelector()); + var _string = _interopRequireDefault(/*@__PURE__*/ requireString()); + var _tag = _interopRequireDefault(/*@__PURE__*/ requireTag()); + var _universal = _interopRequireDefault(/*@__PURE__*/ requireUniversal()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var attribute = function attribute(opts) { + return new _attribute["default"](opts); + }; + constructors.attribute = attribute; + var className = function className(opts) { + return new _className["default"](opts); + }; + constructors.className = className; + var combinator = function combinator(opts) { + return new _combinator["default"](opts); + }; + constructors.combinator = combinator; + var comment = function comment(opts) { + return new _comment["default"](opts); + }; + constructors.comment = comment; + var id = function id(opts) { + return new _id["default"](opts); + }; + constructors.id = id; + var nesting = function nesting(opts) { + return new _nesting["default"](opts); + }; + constructors.nesting = nesting; + var pseudo = function pseudo(opts) { + return new _pseudo["default"](opts); + }; + constructors.pseudo = pseudo; + var root = function root(opts) { + return new _root["default"](opts); + }; + constructors.root = root; + var selector = function selector(opts) { + return new _selector["default"](opts); + }; + constructors.selector = selector; + var string = function string(opts) { + return new _string["default"](opts); + }; + constructors.string = string; + var tag = function tag(opts) { + return new _tag["default"](opts); + }; + constructors.tag = tag; + var universal = function universal(opts) { + return new _universal["default"](opts); + }; + constructors.universal = universal; + return constructors; +} + +var guards = {}; + +var hasRequiredGuards; + +function requireGuards () { + if (hasRequiredGuards) return guards; + hasRequiredGuards = 1; + + guards.__esModule = true; + guards.isComment = guards.isCombinator = guards.isClassName = guards.isAttribute = void 0; + guards.isContainer = isContainer; + guards.isIdentifier = void 0; + guards.isNamespace = isNamespace; + guards.isNesting = void 0; + guards.isNode = isNode; + guards.isPseudo = void 0; + guards.isPseudoClass = isPseudoClass; + guards.isPseudoElement = isPseudoElement; + guards.isUniversal = guards.isTag = guards.isString = guards.isSelector = guards.isRoot = void 0; + var _types = /*@__PURE__*/ requireTypes(); + var _IS_TYPE; + var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE); + function isNode(node) { + return typeof node === "object" && IS_TYPE[node.type]; + } + function isNodeType(type, node) { + return isNode(node) && node.type === type; + } + var isAttribute = isNodeType.bind(null, _types.ATTRIBUTE); + guards.isAttribute = isAttribute; + var isClassName = isNodeType.bind(null, _types.CLASS); + guards.isClassName = isClassName; + var isCombinator = isNodeType.bind(null, _types.COMBINATOR); + guards.isCombinator = isCombinator; + var isComment = isNodeType.bind(null, _types.COMMENT); + guards.isComment = isComment; + var isIdentifier = isNodeType.bind(null, _types.ID); + guards.isIdentifier = isIdentifier; + var isNesting = isNodeType.bind(null, _types.NESTING); + guards.isNesting = isNesting; + var isPseudo = isNodeType.bind(null, _types.PSEUDO); + guards.isPseudo = isPseudo; + var isRoot = isNodeType.bind(null, _types.ROOT); + guards.isRoot = isRoot; + var isSelector = isNodeType.bind(null, _types.SELECTOR); + guards.isSelector = isSelector; + var isString = isNodeType.bind(null, _types.STRING); + guards.isString = isString; + var isTag = isNodeType.bind(null, _types.TAG); + guards.isTag = isTag; + var isUniversal = isNodeType.bind(null, _types.UNIVERSAL); + guards.isUniversal = isUniversal; + function isPseudoElement(node) { + return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value.toLowerCase() === ":before" || node.value.toLowerCase() === ":after" || node.value.toLowerCase() === ":first-letter" || node.value.toLowerCase() === ":first-line"); + } + function isPseudoClass(node) { + return isPseudo(node) && !isPseudoElement(node); + } + function isContainer(node) { + return !!(isNode(node) && node.walk); + } + function isNamespace(node) { + return isAttribute(node) || isTag(node); + } + return guards; +} + +var hasRequiredSelectors; + +function requireSelectors () { + if (hasRequiredSelectors) return selectors; + hasRequiredSelectors = 1; + (function (exports$1) { + + exports$1.__esModule = true; + var _types = /*@__PURE__*/ requireTypes(); + Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _types[key]) return; + exports$1[key] = _types[key]; + }); + var _constructors = /*@__PURE__*/ requireConstructors(); + Object.keys(_constructors).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _constructors[key]) return; + exports$1[key] = _constructors[key]; + }); + var _guards = /*@__PURE__*/ requireGuards(); + Object.keys(_guards).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _guards[key]) return; + exports$1[key] = _guards[key]; + }); + } (selectors)); + return selectors; +} + +var hasRequiredDist; + +function requireDist () { + if (hasRequiredDist) return dist.exports; + hasRequiredDist = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _processor = _interopRequireDefault(/*@__PURE__*/ requireProcessor()); + var selectors = _interopRequireWildcard(/*@__PURE__*/ requireSelectors()); + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var parser = function parser(processor) { + return new _processor["default"](processor); + }; + Object.assign(parser, selectors); + delete parser.__esModule; + var _default = parser; + exports$1["default"] = _default; + module.exports = exports$1.default; + } (dist, dist.exports)); + return dist.exports; +} + +var parse; +var hasRequiredParse; + +function requireParse () { + if (hasRequiredParse) return parse; + hasRequiredParse = 1; + var openParentheses = "(".charCodeAt(0); + var closeParentheses = ")".charCodeAt(0); + var singleQuote = "'".charCodeAt(0); + var doubleQuote = '"'.charCodeAt(0); + var backslash = "\\".charCodeAt(0); + var slash = "/".charCodeAt(0); + var comma = ",".charCodeAt(0); + var colon = ":".charCodeAt(0); + var star = "*".charCodeAt(0); + var uLower = "u".charCodeAt(0); + var uUpper = "U".charCodeAt(0); + var plus = "+".charCodeAt(0); + var isUnicodeRange = /^[a-f0-9?-]+$/i; + + parse = function(input) { + var tokens = []; + var value = input; + + var next, + quote, + prev, + token, + escape, + escapePos, + whitespacePos, + parenthesesOpenPos; + var pos = 0; + var code = value.charCodeAt(pos); + var max = value.length; + var stack = [{ nodes: tokens }]; + var balanced = 0; + var parent; + + var name = ""; + var before = ""; + var after = ""; + + while (pos < max) { + // Whitespaces + if (code <= 32) { + next = pos; + do { + next += 1; + code = value.charCodeAt(next); + } while (code <= 32); + token = value.slice(pos, next); + + prev = tokens[tokens.length - 1]; + if (code === closeParentheses && balanced) { + after = token; + } else if (prev && prev.type === "div") { + prev.after = token; + prev.sourceEndIndex += token.length; + } else if ( + code === comma || + code === colon || + (code === slash && + value.charCodeAt(next + 1) !== star && + (!parent || + (parent && parent.type === "function" && parent.value !== "calc"))) + ) { + before = token; + } else { + tokens.push({ + type: "space", + sourceIndex: pos, + sourceEndIndex: next, + value: token + }); + } + + pos = next; + + // Quotes + } else if (code === singleQuote || code === doubleQuote) { + next = pos; + quote = code === singleQuote ? "'" : '"'; + token = { + type: "string", + sourceIndex: pos, + quote: quote + }; + do { + escape = false; + next = value.indexOf(quote, next + 1); + if (~next) { + escapePos = next; + while (value.charCodeAt(escapePos - 1) === backslash) { + escapePos -= 1; + escape = !escape; + } + } else { + value += quote; + next = value.length - 1; + token.unclosed = true; + } + } while (escape); + token.value = value.slice(pos + 1, next); + token.sourceEndIndex = token.unclosed ? next : next + 1; + tokens.push(token); + pos = next + 1; + code = value.charCodeAt(pos); + + // Comments + } else if (code === slash && value.charCodeAt(pos + 1) === star) { + next = value.indexOf("*/", pos); + + token = { + type: "comment", + sourceIndex: pos, + sourceEndIndex: next + 2 + }; + + if (next === -1) { + token.unclosed = true; + next = value.length; + token.sourceEndIndex = next; + } + + token.value = value.slice(pos + 2, next); + tokens.push(token); + + pos = next + 2; + code = value.charCodeAt(pos); + + // Operation within calc + } else if ( + (code === slash || code === star) && + parent && + parent.type === "function" && + parent.value === "calc" + ) { + token = value[pos]; + tokens.push({ + type: "word", + sourceIndex: pos - before.length, + sourceEndIndex: pos + token.length, + value: token + }); + pos += 1; + code = value.charCodeAt(pos); + + // Dividers + } else if (code === slash || code === comma || code === colon) { + token = value[pos]; + + tokens.push({ + type: "div", + sourceIndex: pos - before.length, + sourceEndIndex: pos + token.length, + value: token, + before: before, + after: "" + }); + before = ""; + + pos += 1; + code = value.charCodeAt(pos); + + // Open parentheses + } else if (openParentheses === code) { + // Whitespaces after open parentheses + next = pos; + do { + next += 1; + code = value.charCodeAt(next); + } while (code <= 32); + parenthesesOpenPos = pos; + token = { + type: "function", + sourceIndex: pos - name.length, + value: name, + before: value.slice(parenthesesOpenPos + 1, next) + }; + pos = next; + + if (name === "url" && code !== singleQuote && code !== doubleQuote) { + next -= 1; + do { + escape = false; + next = value.indexOf(")", next + 1); + if (~next) { + escapePos = next; + while (value.charCodeAt(escapePos - 1) === backslash) { + escapePos -= 1; + escape = !escape; + } + } else { + value += ")"; + next = value.length - 1; + token.unclosed = true; + } + } while (escape); + // Whitespaces before closed + whitespacePos = next; + do { + whitespacePos -= 1; + code = value.charCodeAt(whitespacePos); + } while (code <= 32); + if (parenthesesOpenPos < whitespacePos) { + if (pos !== whitespacePos + 1) { + token.nodes = [ + { + type: "word", + sourceIndex: pos, + sourceEndIndex: whitespacePos + 1, + value: value.slice(pos, whitespacePos + 1) + } + ]; + } else { + token.nodes = []; + } + if (token.unclosed && whitespacePos + 1 !== next) { + token.after = ""; + token.nodes.push({ + type: "space", + sourceIndex: whitespacePos + 1, + sourceEndIndex: next, + value: value.slice(whitespacePos + 1, next) + }); + } else { + token.after = value.slice(whitespacePos + 1, next); + token.sourceEndIndex = next; + } + } else { + token.after = ""; + token.nodes = []; + } + pos = next + 1; + token.sourceEndIndex = token.unclosed ? next : pos; + code = value.charCodeAt(pos); + tokens.push(token); + } else { + balanced += 1; + token.after = ""; + token.sourceEndIndex = pos + 1; + tokens.push(token); + stack.push(token); + tokens = token.nodes = []; + parent = token; + } + name = ""; + + // Close parentheses + } else if (closeParentheses === code && balanced) { + pos += 1; + code = value.charCodeAt(pos); + + parent.after = after; + parent.sourceEndIndex += after.length; + after = ""; + balanced -= 1; + stack[stack.length - 1].sourceEndIndex = pos; + stack.pop(); + parent = stack[balanced]; + tokens = parent.nodes; + + // Words + } else { + next = pos; + do { + if (code === backslash) { + next += 1; + } + next += 1; + code = value.charCodeAt(next); + } while ( + next < max && + !( + code <= 32 || + code === singleQuote || + code === doubleQuote || + code === comma || + code === colon || + code === slash || + code === openParentheses || + (code === star && + parent && + parent.type === "function" && + parent.value === "calc") || + (code === slash && + parent.type === "function" && + parent.value === "calc") || + (code === closeParentheses && balanced) + ) + ); + token = value.slice(pos, next); + + if (openParentheses === code) { + name = token; + } else if ( + (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && + plus === token.charCodeAt(1) && + isUnicodeRange.test(token.slice(2)) + ) { + tokens.push({ + type: "unicode-range", + sourceIndex: pos, + sourceEndIndex: next, + value: token + }); + } else { + tokens.push({ + type: "word", + sourceIndex: pos, + sourceEndIndex: next, + value: token + }); + } + + pos = next; + } + } + + for (pos = stack.length - 1; pos; pos -= 1) { + stack[pos].unclosed = true; + stack[pos].sourceEndIndex = value.length; + } + + return stack[0].nodes; + }; + return parse; +} + +var walk$1; +var hasRequiredWalk; + +function requireWalk () { + if (hasRequiredWalk) return walk$1; + hasRequiredWalk = 1; + walk$1 = function walk(nodes, cb, bubble) { + var i, max, node, result; + + for (i = 0, max = nodes.length; i < max; i += 1) { + node = nodes[i]; + if (!bubble) { + result = cb(node, i, nodes); + } + + if ( + result !== false && + node.type === "function" && + Array.isArray(node.nodes) + ) { + walk(node.nodes, cb, bubble); + } + + if (bubble) { + cb(node, i, nodes); + } + } + }; + return walk$1; +} + +var stringify_1; +var hasRequiredStringify; + +function requireStringify () { + if (hasRequiredStringify) return stringify_1; + hasRequiredStringify = 1; + function stringifyNode(node, custom) { + var type = node.type; + var value = node.value; + var buf; + var customResult; + + if (custom && (customResult = custom(node)) !== undefined) { + return customResult; + } else if (type === "word" || type === "space") { + return value; + } else if (type === "string") { + buf = node.quote || ""; + return buf + value + (node.unclosed ? "" : buf); + } else if (type === "comment") { + return "/*" + value + (node.unclosed ? "" : "*/"); + } else if (type === "div") { + return (node.before || "") + value + (node.after || ""); + } else if (Array.isArray(node.nodes)) { + buf = stringify(node.nodes, custom); + if (type !== "function") { + return buf; + } + return ( + value + + "(" + + (node.before || "") + + buf + + (node.after || "") + + (node.unclosed ? "" : ")") + ); + } + return value; + } + + function stringify(nodes, custom) { + var result, i; + + if (Array.isArray(nodes)) { + result = ""; + for (i = nodes.length - 1; ~i; i -= 1) { + result = stringifyNode(nodes[i], custom) + result; + } + return result; + } + return stringifyNode(nodes, custom); + } + + stringify_1 = stringify; + return stringify_1; +} + +var unit; +var hasRequiredUnit; + +function requireUnit () { + if (hasRequiredUnit) return unit; + hasRequiredUnit = 1; + var minus = "-".charCodeAt(0); + var plus = "+".charCodeAt(0); + var dot = ".".charCodeAt(0); + var exp = "e".charCodeAt(0); + var EXP = "E".charCodeAt(0); + + // Check if three code points would start a number + // https://www.w3.org/TR/css-syntax-3/#starts-with-a-number + function likeNumber(value) { + var code = value.charCodeAt(0); + var nextCode; + + if (code === plus || code === minus) { + nextCode = value.charCodeAt(1); + + if (nextCode >= 48 && nextCode <= 57) { + return true; + } + + var nextNextCode = value.charCodeAt(2); + + if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) { + return true; + } + + return false; + } + + if (code === dot) { + nextCode = value.charCodeAt(1); + + if (nextCode >= 48 && nextCode <= 57) { + return true; + } + + return false; + } + + if (code >= 48 && code <= 57) { + return true; + } + + return false; + } + + // Consume a number + // https://www.w3.org/TR/css-syntax-3/#consume-number + unit = function(value) { + var pos = 0; + var length = value.length; + var code; + var nextCode; + var nextNextCode; + + if (length === 0 || !likeNumber(value)) { + return false; + } + + code = value.charCodeAt(pos); + + if (code === plus || code === minus) { + pos++; + } + + while (pos < length) { + code = value.charCodeAt(pos); + + if (code < 48 || code > 57) { + break; + } + + pos += 1; + } + + code = value.charCodeAt(pos); + nextCode = value.charCodeAt(pos + 1); + + if (code === dot && nextCode >= 48 && nextCode <= 57) { + pos += 2; + + while (pos < length) { + code = value.charCodeAt(pos); + + if (code < 48 || code > 57) { + break; + } + + pos += 1; + } + } + + code = value.charCodeAt(pos); + nextCode = value.charCodeAt(pos + 1); + nextNextCode = value.charCodeAt(pos + 2); + + if ( + (code === exp || code === EXP) && + ((nextCode >= 48 && nextCode <= 57) || + ((nextCode === plus || nextCode === minus) && + nextNextCode >= 48 && + nextNextCode <= 57)) + ) { + pos += nextCode === plus || nextCode === minus ? 3 : 2; + + while (pos < length) { + code = value.charCodeAt(pos); + + if (code < 48 || code > 57) { + break; + } + + pos += 1; + } + } + + return { + number: value.slice(0, pos), + unit: value.slice(pos) + }; + }; + return unit; +} + +var lib; +var hasRequiredLib; + +function requireLib () { + if (hasRequiredLib) return lib; + hasRequiredLib = 1; + var parse = /*@__PURE__*/ requireParse(); + var walk = /*@__PURE__*/ requireWalk(); + var stringify = /*@__PURE__*/ requireStringify(); + + function ValueParser(value) { + if (this instanceof ValueParser) { + this.nodes = parse(value); + return this; + } + return new ValueParser(value); + } + + ValueParser.prototype.toString = function() { + return Array.isArray(this.nodes) ? stringify(this.nodes) : ""; + }; + + ValueParser.prototype.walk = function(cb, bubble) { + walk(this.nodes, cb, bubble); + return this; + }; + + ValueParser.unit = /*@__PURE__*/ requireUnit(); + + ValueParser.walk = walk; + + ValueParser.stringify = stringify; + + lib = ValueParser; + return lib; +} + +var hasRequiredSrc$2; + +function requireSrc$2 () { + if (hasRequiredSrc$2) return src$2.exports; + hasRequiredSrc$2 = 1; + + const selectorParser = /*@__PURE__*/ requireDist(); + const valueParser = /*@__PURE__*/ requireLib(); + const { extractICSS } = /*@__PURE__*/ requireSrc$4(); + + const isSpacing = (node) => node.type === "combinator" && node.value === " "; + + function normalizeNodeArray(nodes) { + const array = []; + + nodes.forEach((x) => { + if (Array.isArray(x)) { + normalizeNodeArray(x).forEach((item) => { + array.push(item); + }); + } else if (x) { + array.push(x); + } + }); + + if (array.length > 0 && isSpacing(array[array.length - 1])) { + array.pop(); + } + return array; + } + + function localizeNode(rule, mode, localAliasMap) { + const transform = (node, context) => { + if (context.ignoreNextSpacing && !isSpacing(node)) { + throw new Error("Missing whitespace after " + context.ignoreNextSpacing); + } + + if (context.enforceNoSpacing && isSpacing(node)) { + throw new Error("Missing whitespace before " + context.enforceNoSpacing); + } + + let newNodes; + + switch (node.type) { + case "root": { + let resultingGlobal; + + context.hasPureGlobals = false; + + newNodes = node.nodes.map((n) => { + const nContext = { + global: context.global, + lastWasSpacing: true, + hasLocals: false, + explicit: false, + }; + + n = transform(n, nContext); + + if (typeof resultingGlobal === "undefined") { + resultingGlobal = nContext.global; + } else if (resultingGlobal !== nContext.global) { + throw new Error( + 'Inconsistent rule global/local result in rule "' + + node + + '" (multiple selectors must result in the same mode for the rule)' + ); + } + + if (!nContext.hasLocals) { + context.hasPureGlobals = true; + } + + return n; + }); + + context.global = resultingGlobal; + + node.nodes = normalizeNodeArray(newNodes); + break; + } + case "selector": { + newNodes = node.map((childNode) => transform(childNode, context)); + + node = node.clone(); + node.nodes = normalizeNodeArray(newNodes); + break; + } + case "combinator": { + if (isSpacing(node)) { + if (context.ignoreNextSpacing) { + context.ignoreNextSpacing = false; + context.lastWasSpacing = false; + context.enforceNoSpacing = false; + return null; + } + context.lastWasSpacing = true; + return node; + } + break; + } + case "pseudo": { + let childContext; + const isNested = !!node.length; + const isScoped = node.value === ":local" || node.value === ":global"; + const isImportExport = + node.value === ":import" || node.value === ":export"; + + if (isImportExport) { + context.hasLocals = true; + // :local(.foo) + } else if (isNested) { + if (isScoped) { + if (node.nodes.length === 0) { + throw new Error(`${node.value}() can't be empty`); + } + + if (context.inside) { + throw new Error( + `A ${node.value} is not allowed inside of a ${context.inside}(...)` + ); + } + + childContext = { + global: node.value === ":global", + inside: node.value, + hasLocals: false, + explicit: true, + }; + + newNodes = node + .map((childNode) => transform(childNode, childContext)) + .reduce((acc, next) => acc.concat(next.nodes), []); + + if (newNodes.length) { + const { before, after } = node.spaces; + + const first = newNodes[0]; + const last = newNodes[newNodes.length - 1]; + + first.spaces = { before, after: first.spaces.after }; + last.spaces = { before: last.spaces.before, after }; + } + + node = newNodes; + + break; + } else { + childContext = { + global: context.global, + inside: context.inside, + lastWasSpacing: true, + hasLocals: false, + explicit: context.explicit, + }; + newNodes = node.map((childNode) => { + const newContext = { + ...childContext, + enforceNoSpacing: false, + }; + + const result = transform(childNode, newContext); + + childContext.global = newContext.global; + childContext.hasLocals = newContext.hasLocals; + + return result; + }); + + node = node.clone(); + node.nodes = normalizeNodeArray(newNodes); + + if (childContext.hasLocals) { + context.hasLocals = true; + } + } + break; + + //:local .foo .bar + } else if (isScoped) { + if (context.inside) { + throw new Error( + `A ${node.value} is not allowed inside of a ${context.inside}(...)` + ); + } + + const addBackSpacing = !!node.spaces.before; + + context.ignoreNextSpacing = context.lastWasSpacing + ? node.value + : false; + + context.enforceNoSpacing = context.lastWasSpacing + ? false + : node.value; + + context.global = node.value === ":global"; + context.explicit = true; + + // because this node has spacing that is lost when we remove it + // we make up for it by adding an extra combinator in since adding + // spacing on the parent selector doesn't work + return addBackSpacing + ? selectorParser.combinator({ value: " " }) + : null; + } + break; + } + case "id": + case "class": { + if (!node.value) { + throw new Error("Invalid class or id selector syntax"); + } + + if (context.global) { + break; + } + + const isImportedValue = localAliasMap.has(node.value); + const isImportedWithExplicitScope = isImportedValue && context.explicit; + + if (!isImportedValue || isImportedWithExplicitScope) { + const innerNode = node.clone(); + innerNode.spaces = { before: "", after: "" }; + + node = selectorParser.pseudo({ + value: ":local", + nodes: [innerNode], + spaces: node.spaces, + }); + + context.hasLocals = true; + } + + break; + } + case "nesting": { + if (node.value === "&") { + context.hasLocals = true; + } + } + } + + context.lastWasSpacing = false; + context.ignoreNextSpacing = false; + context.enforceNoSpacing = false; + + return node; + }; + + const rootContext = { + global: mode === "global", + hasPureGlobals: false, + }; + + rootContext.selector = selectorParser((root) => { + transform(root, rootContext); + }).processSync(rule, { updateSelector: false, lossless: true }); + + return rootContext; + } + + function localizeDeclNode(node, context) { + switch (node.type) { + case "word": + if (context.localizeNextItem) { + if (!context.localAliasMap.has(node.value)) { + node.value = ":local(" + node.value + ")"; + context.localizeNextItem = false; + } + } + break; + + case "function": + if ( + context.options && + context.options.rewriteUrl && + node.value.toLowerCase() === "url" + ) { + node.nodes.map((nestedNode) => { + if (nestedNode.type !== "string" && nestedNode.type !== "word") { + return; + } + + let newUrl = context.options.rewriteUrl( + context.global, + nestedNode.value + ); + + switch (nestedNode.type) { + case "string": + if (nestedNode.quote === "'") { + newUrl = newUrl.replace(/(\\)/g, "\\$1").replace(/'/g, "\\'"); + } + + if (nestedNode.quote === '"') { + newUrl = newUrl.replace(/(\\)/g, "\\$1").replace(/"/g, '\\"'); + } + + break; + case "word": + newUrl = newUrl.replace(/("|'|\)|\\)/g, "\\$1"); + break; + } + + nestedNode.value = newUrl; + }); + } + break; + } + return node; + } + + // `none` is special value, other is global values + const specialKeywords = [ + "none", + "inherit", + "initial", + "revert", + "revert-layer", + "unset", + ]; + + function localizeDeclarationValues(localize, declaration, context) { + const valueNodes = valueParser(declaration.value); + + valueNodes.walk((node, index, nodes) => { + if ( + node.type === "function" && + (node.value.toLowerCase() === "var" || node.value.toLowerCase() === "env") + ) { + return false; + } + + if ( + node.type === "word" && + specialKeywords.includes(node.value.toLowerCase()) + ) { + return; + } + + const subContext = { + options: context.options, + global: context.global, + localizeNextItem: localize && !context.global, + localAliasMap: context.localAliasMap, + }; + nodes[index] = localizeDeclNode(node, subContext); + }); + + declaration.value = valueNodes.toString(); + } + + function localizeDeclaration(declaration, context) { + const isAnimation = /animation$/i.test(declaration.prop); + + if (isAnimation) { + // letter + // An uppercase letter or a lowercase letter. + // + // ident-start code point + // A letter, a non-ASCII code point, or U+005F LOW LINE (_). + // + // ident code point + // An ident-start code point, a digit, or U+002D HYPHEN-MINUS (-). + + // We don't validate `hex digits`, because we don't need it, it is work of linters. + const validIdent = + /^-?([a-z\u0080-\uFFFF_]|(\\[^\r\n\f])|-(?![0-9]))((\\[^\r\n\f])|[a-z\u0080-\uFFFF_0-9-])*$/i; + + /* + The spec defines some keywords that you can use to describe properties such as the timing + function. These are still valid animation names, so as long as there is a property that accepts + a keyword, it is given priority. Only when all the properties that can take a keyword are + exhausted can the animation name be set to the keyword. I.e. + + animation: infinite infinite; + + The animation will repeat an infinite number of times from the first argument, and will have an + animation name of infinite from the second. + */ + const animationKeywords = { + // animation-direction + $normal: 1, + $reverse: 1, + $alternate: 1, + "$alternate-reverse": 1, + // animation-fill-mode + $forwards: 1, + $backwards: 1, + $both: 1, + // animation-iteration-count + $infinite: 1, + // animation-play-state + $paused: 1, + $running: 1, + // animation-timing-function + $ease: 1, + "$ease-in": 1, + "$ease-out": 1, + "$ease-in-out": 1, + $linear: 1, + "$step-end": 1, + "$step-start": 1, + // Special + $none: Infinity, // No matter how many times you write none, it will never be an animation name + // Global values + $initial: Infinity, + $inherit: Infinity, + $unset: Infinity, + $revert: Infinity, + "$revert-layer": Infinity, + }; + let parsedAnimationKeywords = {}; + const valueNodes = valueParser(declaration.value).walk((node) => { + // If div-token appeared (represents as comma ','), a possibility of an animation-keywords should be reflesh. + if (node.type === "div") { + parsedAnimationKeywords = {}; + + return; + } + // Do not handle nested functions + else if (node.type === "function") { + return false; + } + // Ignore all except word + else if (node.type !== "word") { + return; + } + + const value = node.type === "word" ? node.value.toLowerCase() : null; + + let shouldParseAnimationName = false; + + if (value && validIdent.test(value)) { + if ("$" + value in animationKeywords) { + parsedAnimationKeywords["$" + value] = + "$" + value in parsedAnimationKeywords + ? parsedAnimationKeywords["$" + value] + 1 + : 0; + + shouldParseAnimationName = + parsedAnimationKeywords["$" + value] >= + animationKeywords["$" + value]; + } else { + shouldParseAnimationName = true; + } + } + + const subContext = { + options: context.options, + global: context.global, + localizeNextItem: shouldParseAnimationName && !context.global, + localAliasMap: context.localAliasMap, + }; + + return localizeDeclNode(node, subContext); + }); + + declaration.value = valueNodes.toString(); + + return; + } + + const isAnimationName = /animation(-name)?$/i.test(declaration.prop); + + if (isAnimationName) { + return localizeDeclarationValues(true, declaration, context); + } + + const hasUrl = /url\(/i.test(declaration.value); + + if (hasUrl) { + return localizeDeclarationValues(false, declaration, context); + } + } + + src$2.exports = (options = {}) => { + if ( + options && + options.mode && + options.mode !== "global" && + options.mode !== "local" && + options.mode !== "pure" + ) { + throw new Error( + 'options.mode must be either "global", "local" or "pure" (default "local")' + ); + } + + const pureMode = options && options.mode === "pure"; + const globalMode = options && options.mode === "global"; + + return { + postcssPlugin: "postcss-modules-local-by-default", + prepare() { + const localAliasMap = new Map(); + + return { + Once(root) { + const { icssImports } = extractICSS(root, false); + + Object.keys(icssImports).forEach((key) => { + Object.keys(icssImports[key]).forEach((prop) => { + localAliasMap.set(prop, icssImports[key][prop]); + }); + }); + + root.walkAtRules((atRule) => { + if (/keyframes$/i.test(atRule.name)) { + const globalMatch = /^\s*:global\s*\((.+)\)\s*$/.exec( + atRule.params + ); + const localMatch = /^\s*:local\s*\((.+)\)\s*$/.exec( + atRule.params + ); + + let globalKeyframes = globalMode; + + if (globalMatch) { + if (pureMode) { + throw atRule.error( + "@keyframes :global(...) is not allowed in pure mode" + ); + } + atRule.params = globalMatch[1]; + globalKeyframes = true; + } else if (localMatch) { + atRule.params = localMatch[0]; + globalKeyframes = false; + } else if ( + atRule.params && + !globalMode && + !localAliasMap.has(atRule.params) + ) { + atRule.params = ":local(" + atRule.params + ")"; + } + + atRule.walkDecls((declaration) => { + localizeDeclaration(declaration, { + localAliasMap, + options: options, + global: globalKeyframes, + }); + }); + } else if (/scope$/i.test(atRule.name)) { + if (atRule.params) { + atRule.params = atRule.params + .split("to") + .map((item) => { + const selector = item.trim().slice(1, -1).trim(); + const context = localizeNode( + selector, + options.mode, + localAliasMap + ); + + context.options = options; + context.localAliasMap = localAliasMap; + + if (pureMode && context.hasPureGlobals) { + throw atRule.error( + 'Selector in at-rule"' + + selector + + '" is not pure ' + + "(pure selectors must contain at least one local class or id)" + ); + } + + return `(${context.selector})`; + }) + .join(" to "); + } + + atRule.nodes.forEach((declaration) => { + if (declaration.type === "decl") { + localizeDeclaration(declaration, { + localAliasMap, + options: options, + global: globalMode, + }); + } + }); + } else if (atRule.nodes) { + atRule.nodes.forEach((declaration) => { + if (declaration.type === "decl") { + localizeDeclaration(declaration, { + localAliasMap, + options: options, + global: globalMode, + }); + } + }); + } + }); + + root.walkRules((rule) => { + if ( + rule.parent && + rule.parent.type === "atrule" && + /keyframes$/i.test(rule.parent.name) + ) { + // ignore keyframe rules + return; + } + + const context = localizeNode(rule, options.mode, localAliasMap); + + context.options = options; + context.localAliasMap = localAliasMap; + + if (pureMode && context.hasPureGlobals) { + throw rule.error( + 'Selector "' + + rule.selector + + '" is not pure ' + + "(pure selectors must contain at least one local class or id)" + ); + } + + rule.selector = context.selector; + + // Less-syntax mixins parse as rules with no nodes + if (rule.nodes) { + rule.nodes.forEach((declaration) => + localizeDeclaration(declaration, context) + ); + } + }); + }, + }; + }, + }; + }; + src$2.exports.postcss = true; + return src$2.exports; +} + +var src$1; +var hasRequiredSrc$1; + +function requireSrc$1 () { + if (hasRequiredSrc$1) return src$1; + hasRequiredSrc$1 = 1; + + const selectorParser = /*@__PURE__*/ requireDist(); + + const hasOwnProperty = Object.prototype.hasOwnProperty; + + function isNestedRule(rule) { + if (!rule.parent || rule.parent.type === "root") { + return false; + } + + if (rule.parent.type === "rule") { + return true; + } + + return isNestedRule(rule.parent); + } + + function getSingleLocalNamesForComposes(root, rule) { + if (isNestedRule(rule)) { + throw new Error(`composition is not allowed in nested rule \n\n${rule}`); + } + + return root.nodes.map((node) => { + if (node.type !== "selector" || node.nodes.length !== 1) { + throw new Error( + `composition is only allowed when selector is single :local class name not in "${root}"` + ); + } + + node = node.nodes[0]; + + if ( + node.type !== "pseudo" || + node.value !== ":local" || + node.nodes.length !== 1 + ) { + throw new Error( + 'composition is only allowed when selector is single :local class name not in "' + + root + + '", "' + + node + + '" is weird' + ); + } + + node = node.first; + + if (node.type !== "selector" || node.length !== 1) { + throw new Error( + 'composition is only allowed when selector is single :local class name not in "' + + root + + '", "' + + node + + '" is weird' + ); + } + + node = node.first; + + if (node.type !== "class") { + // 'id' is not possible, because you can't compose ids + throw new Error( + 'composition is only allowed when selector is single :local class name not in "' + + root + + '", "' + + node + + '" is weird' + ); + } + + return node.value; + }); + } + + const whitespace = "[\\x20\\t\\r\\n\\f]"; + const unescapeRegExp = new RegExp( + "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", + "ig" + ); + + function unescape(str) { + return str.replace(unescapeRegExp, (_, escaped, escapedWhitespace) => { + const high = "0x" + escaped - 0x10000; + + // NaN means non-codepoint + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace + ? escaped + : high < 0 + ? // BMP codepoint + String.fromCharCode(high + 0x10000) + : // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00); + }); + } + + const plugin = (options = {}) => { + const generateScopedName = + (options && options.generateScopedName) || plugin.generateScopedName; + const generateExportEntry = + (options && options.generateExportEntry) || plugin.generateExportEntry; + const exportGlobals = options && options.exportGlobals; + + return { + postcssPlugin: "postcss-modules-scope", + Once(root, { rule }) { + const exports$1 = Object.create(null); + + function exportScopedName(name, rawName, node) { + const scopedName = generateScopedName( + rawName ? rawName : name, + root.source.input.from, + root.source.input.css, + node + ); + const exportEntry = generateExportEntry( + rawName ? rawName : name, + scopedName, + root.source.input.from, + root.source.input.css, + node + ); + const { key, value } = exportEntry; + + exports$1[key] = exports$1[key] || []; + + if (exports$1[key].indexOf(value) < 0) { + exports$1[key].push(value); + } + + return scopedName; + } + + function localizeNode(node) { + switch (node.type) { + case "selector": + node.nodes = node.map((item) => localizeNode(item)); + return node; + case "class": + return selectorParser.className({ + value: exportScopedName( + node.value, + node.raws && node.raws.value ? node.raws.value : null, + node + ), + }); + case "id": { + return selectorParser.id({ + value: exportScopedName( + node.value, + node.raws && node.raws.value ? node.raws.value : null, + node + ), + }); + } + case "attribute": { + if (node.attribute === "class" && node.operator === "=") { + return selectorParser.attribute({ + attribute: node.attribute, + operator: node.operator, + quoteMark: "'", + value: exportScopedName(node.value, null, null), + }); + } + } + } + + throw new Error( + `${node.type} ("${node}") is not allowed in a :local block` + ); + } + + function traverseNode(node) { + switch (node.type) { + case "pseudo": + if (node.value === ":local") { + if (node.nodes.length !== 1) { + throw new Error('Unexpected comma (",") in :local block'); + } + + const selector = localizeNode(node.first); + // move the spaces that were around the pseudo selector to the first + // non-container node + selector.first.spaces = node.spaces; + + const nextNode = node.next(); + + if ( + nextNode && + nextNode.type === "combinator" && + nextNode.value === " " && + /\\[A-F0-9]{1,6}$/.test(selector.last.value) + ) { + selector.last.spaces.after = " "; + } + + node.replaceWith(selector); + + return; + } + /* falls through */ + case "root": + case "selector": { + node.each((item) => traverseNode(item)); + break; + } + case "id": + case "class": + if (exportGlobals) { + exports$1[node.value] = [node.value]; + } + break; + } + return node; + } + + // Find any :import and remember imported names + const importedNames = {}; + + root.walkRules(/^:import\(.+\)$/, (rule) => { + rule.walkDecls((decl) => { + importedNames[decl.prop] = true; + }); + }); + + // Find any :local selectors + root.walkRules((rule) => { + let parsedSelector = selectorParser().astSync(rule); + + rule.selector = traverseNode(parsedSelector.clone()).toString(); + + rule.walkDecls(/^(composes|compose-with)$/i, (decl) => { + const localNames = getSingleLocalNamesForComposes( + parsedSelector, + decl.parent + ); + const multiple = decl.value.split(","); + + multiple.forEach((value) => { + const classes = value.trim().split(/\s+/); + + classes.forEach((className) => { + const global = /^global\(([^)]+)\)$/.exec(className); + + if (global) { + localNames.forEach((exportedName) => { + exports$1[exportedName].push(global[1]); + }); + } else if (hasOwnProperty.call(importedNames, className)) { + localNames.forEach((exportedName) => { + exports$1[exportedName].push(className); + }); + } else if (hasOwnProperty.call(exports$1, className)) { + localNames.forEach((exportedName) => { + exports$1[className].forEach((item) => { + exports$1[exportedName].push(item); + }); + }); + } else { + throw decl.error( + `referenced class name "${className}" in ${decl.prop} not found` + ); + } + }); + }); + + decl.remove(); + }); + + // Find any :local values + rule.walkDecls((decl) => { + if (!/:local\s*\((.+?)\)/.test(decl.value)) { + return; + } + + let tokens = decl.value.split(/(,|'[^']*'|"[^"]*")/); + + tokens = tokens.map((token, idx) => { + if (idx === 0 || tokens[idx - 1] === ",") { + let result = token; + + const localMatch = /:local\s*\((.+?)\)/.exec(token); + + if (localMatch) { + const input = localMatch.input; + const matchPattern = localMatch[0]; + const matchVal = localMatch[1]; + const newVal = exportScopedName(matchVal); + + result = input.replace(matchPattern, newVal); + } else { + return token; + } + + return result; + } else { + return token; + } + }); + + decl.value = tokens.join(""); + }); + }); + + // Find any :local keyframes + root.walkAtRules(/keyframes$/i, (atRule) => { + const localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(atRule.params); + + if (!localMatch) { + return; + } + + atRule.params = exportScopedName(localMatch[1]); + }); + + root.walkAtRules(/scope$/i, (atRule) => { + if (atRule.params) { + atRule.params = atRule.params + .split("to") + .map((item) => { + const selector = item.trim().slice(1, -1).trim(); + + const localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(selector); + + if (!localMatch) { + return `(${selector})`; + } + + let parsedSelector = selectorParser().astSync(selector); + + return `(${traverseNode(parsedSelector).toString()})`; + }) + .join(" to "); + } + }); + + // If we found any :locals, insert an :export rule + const exportedNames = Object.keys(exports$1); + + if (exportedNames.length > 0) { + const exportRule = rule({ selector: ":export" }); + + exportedNames.forEach((exportedName) => + exportRule.append({ + prop: exportedName, + value: exports$1[exportedName].join(" "), + raws: { before: "\n " }, + }) + ); + + root.append(exportRule); + } + }, + }; + }; + + plugin.postcss = true; + + plugin.generateScopedName = function (name, path) { + const sanitisedPath = path + .replace(/\.[^./\\]+$/, "") + .replace(/[\W_]+/g, "_") + .replace(/^_|_$/g, ""); + + return `_${sanitisedPath}__${name}`.trim(); + }; + + plugin.generateExportEntry = function (name, scopedName) { + return { + key: unescape(name), + value: unescape(scopedName), + }; + }; + + src$1 = plugin; + return src$1; +} + +var stringHash; +var hasRequiredStringHash; + +function requireStringHash () { + if (hasRequiredStringHash) return stringHash; + hasRequiredStringHash = 1; + + function hash(str) { + var hash = 5381, + i = str.length; + + while(i) { + hash = (hash * 33) ^ str.charCodeAt(--i); + } + + /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed + * integers. Since we want the results to be always positive, convert the + * signed int to an unsigned by doing an unsigned bitshift. */ + return hash >>> 0; + } + + stringHash = hash; + return stringHash; +} + +var src = {exports: {}}; + +var hasRequiredSrc; + +function requireSrc () { + if (hasRequiredSrc) return src.exports; + hasRequiredSrc = 1; + + const ICSSUtils = /*@__PURE__*/ requireSrc$4(); + + const matchImports = /^(.+?|\([\s\S]+?\))\s+from\s+("[^"]*"|'[^']*'|[\w-]+)$/; + const matchValueDefinition = /(?:\s+|^)([\w-]+):?(.*?)$/; + const matchImport = /^([\w-]+)(?:\s+as\s+([\w-]+))?/; + + src.exports = (options) => { + let importIndex = 0; + const createImportedName = + (options && options.createImportedName) || + ((importName /*, path*/) => + `i__const_${importName.replace(/\W/g, "_")}_${importIndex++}`); + + return { + postcssPlugin: "postcss-modules-values", + prepare(result) { + const importAliases = []; + const definitions = {}; + + return { + Once(root, postcss) { + root.walkAtRules(/value/i, (atRule) => { + const matches = atRule.params.match(matchImports); + + if (matches) { + let [, /*match*/ aliases, path] = matches; + + // We can use constants for path names + if (definitions[path]) { + path = definitions[path]; + } + + const imports = aliases + .replace(/^\(\s*([\s\S]+)\s*\)$/, "$1") + .split(/\s*,\s*/) + .map((alias) => { + const tokens = matchImport.exec(alias); + + if (tokens) { + const [, /*match*/ theirName, myName = theirName] = tokens; + const importedName = createImportedName(myName); + definitions[myName] = importedName; + return { theirName, importedName }; + } else { + throw new Error(`@import statement "${alias}" is invalid!`); + } + }); + + importAliases.push({ path, imports }); + + atRule.remove(); + + return; + } + + if (atRule.params.indexOf("@value") !== -1) { + result.warn("Invalid value definition: " + atRule.params); + } + + let [, key, value] = `${atRule.params}${atRule.raws.between}`.match( + matchValueDefinition + ); + + const normalizedValue = value.replace(/\/\*((?!\*\/).*?)\*\//g, ""); + + if (normalizedValue.length === 0) { + result.warn("Invalid value definition: " + atRule.params); + atRule.remove(); + + return; + } + + let isOnlySpace = /^\s+$/.test(normalizedValue); + + if (!isOnlySpace) { + value = value.trim(); + } + + // Add to the definitions, knowing that values can refer to each other + definitions[key] = ICSSUtils.replaceValueSymbols( + value, + definitions + ); + + atRule.remove(); + }); + + /* If we have no definitions, don't continue */ + if (!Object.keys(definitions).length) { + return; + } + + /* Perform replacements */ + ICSSUtils.replaceSymbols(root, definitions); + + /* We want to export anything defined by now, but don't add it to the CSS yet or it well get picked up by the replacement stuff */ + const exportDeclarations = Object.keys(definitions).map((key) => + postcss.decl({ + value: definitions[key], + prop: key, + raws: { before: "\n " }, + }) + ); + + /* Add export rules if any */ + if (exportDeclarations.length > 0) { + const exportRule = postcss.rule({ + selector: ":export", + raws: { after: "\n" }, + }); + + exportRule.append(exportDeclarations); + + root.prepend(exportRule); + } + + /* Add import rules */ + importAliases.reverse().forEach(({ path, imports }) => { + const importRule = postcss.rule({ + selector: `:import(${path})`, + raws: { after: "\n" }, + }); + + imports.forEach(({ theirName, importedName }) => { + importRule.append({ + value: theirName, + prop: importedName, + raws: { before: "\n " }, + }); + }); + + root.prepend(importRule); + }); + }, + }; + }, + }; + }; + + src.exports.postcss = true; + return src.exports; +} + +var hasRequiredScoping; + +function requireScoping () { + if (hasRequiredScoping) return scoping; + hasRequiredScoping = 1; + + Object.defineProperty(scoping, "__esModule", { + value: true + }); + scoping.behaviours = void 0; + scoping.getDefaultPlugins = getDefaultPlugins; + scoping.getDefaultScopeBehaviour = getDefaultScopeBehaviour; + scoping.getScopedNameGenerator = getScopedNameGenerator; + + var _postcssModulesExtractImports = _interopRequireDefault(/*@__PURE__*/ requireSrc$3()); + + var _genericNames = _interopRequireDefault(/*@__PURE__*/ requireGenericNames()); + + var _postcssModulesLocalByDefault = _interopRequireDefault(/*@__PURE__*/ requireSrc$2()); + + var _postcssModulesScope = _interopRequireDefault(/*@__PURE__*/ requireSrc$1()); + + var _stringHash = _interopRequireDefault(/*@__PURE__*/ requireStringHash()); + + var _postcssModulesValues = _interopRequireDefault(/*@__PURE__*/ requireSrc()); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + const behaviours = { + LOCAL: "local", + GLOBAL: "global" + }; + scoping.behaviours = behaviours; + + function getDefaultPlugins({ + behaviour, + generateScopedName, + exportGlobals + }) { + const scope = (0, _postcssModulesScope.default)({ + generateScopedName, + exportGlobals + }); + const plugins = { + [behaviours.LOCAL]: [_postcssModulesValues.default, (0, _postcssModulesLocalByDefault.default)({ + mode: "local" + }), _postcssModulesExtractImports.default, scope], + [behaviours.GLOBAL]: [_postcssModulesValues.default, (0, _postcssModulesLocalByDefault.default)({ + mode: "global" + }), _postcssModulesExtractImports.default, scope] + }; + return plugins[behaviour]; + } + + function isValidBehaviour(behaviour) { + return Object.keys(behaviours).map(key => behaviours[key]).indexOf(behaviour) > -1; + } + + function getDefaultScopeBehaviour(scopeBehaviour) { + return scopeBehaviour && isValidBehaviour(scopeBehaviour) ? scopeBehaviour : behaviours.LOCAL; + } + + function generateScopedNameDefault(name, filename, css) { + const i = css.indexOf(`.${name}`); + const lineNumber = css.substr(0, i).split(/[\r\n]/).length; + const hash = (0, _stringHash.default)(css).toString(36).substr(0, 5); + return `_${name}_${hash}_${lineNumber}`; + } + + function getScopedNameGenerator(generateScopedName, hashPrefix) { + const scopedNameGenerator = generateScopedName || generateScopedNameDefault; + + if (typeof scopedNameGenerator === "function") { + return scopedNameGenerator; + } + + return (0, _genericNames.default)(scopedNameGenerator, { + context: process.cwd(), + hashPrefix: hashPrefix + }); + } + return scoping; +} + +var hasRequiredPluginFactory; + +function requirePluginFactory () { + if (hasRequiredPluginFactory) return pluginFactory; + hasRequiredPluginFactory = 1; + + Object.defineProperty(pluginFactory, "__esModule", { + value: true + }); + pluginFactory.makePlugin = makePlugin; + + var _postcss = _interopRequireDefault(require$$0$1); + + var _unquote = _interopRequireDefault(/*@__PURE__*/ requireUnquote()); + + var _Parser = _interopRequireDefault(/*@__PURE__*/ requireParser$1()); + + var _saveJSON = _interopRequireDefault(/*@__PURE__*/ requireSaveJSON()); + + var _localsConvention = /*@__PURE__*/ requireLocalsConvention(); + + var _FileSystemLoader = _interopRequireDefault(/*@__PURE__*/ requireFileSystemLoader()); + + var _scoping = /*@__PURE__*/ requireScoping(); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + const PLUGIN_NAME = "postcss-modules"; + + function isGlobalModule(globalModules, inputFile) { + return globalModules.some(regex => inputFile.match(regex)); + } + + function getDefaultPluginsList(opts, inputFile) { + const globalModulesList = opts.globalModulePaths || null; + const exportGlobals = opts.exportGlobals || false; + const defaultBehaviour = (0, _scoping.getDefaultScopeBehaviour)(opts.scopeBehaviour); + const generateScopedName = (0, _scoping.getScopedNameGenerator)(opts.generateScopedName, opts.hashPrefix); + + if (globalModulesList && isGlobalModule(globalModulesList, inputFile)) { + return (0, _scoping.getDefaultPlugins)({ + behaviour: _scoping.behaviours.GLOBAL, + generateScopedName, + exportGlobals + }); + } + + return (0, _scoping.getDefaultPlugins)({ + behaviour: defaultBehaviour, + generateScopedName, + exportGlobals + }); + } + + function getLoader(opts, plugins) { + const root = typeof opts.root === "undefined" ? "/" : opts.root; + return typeof opts.Loader === "function" ? new opts.Loader(root, plugins, opts.resolve) : new _FileSystemLoader.default(root, plugins, opts.resolve); + } + + function isOurPlugin(plugin) { + return plugin.postcssPlugin === PLUGIN_NAME; + } + + function makePlugin(opts) { + return { + postcssPlugin: PLUGIN_NAME, + + async OnceExit(css, { + result + }) { + const getJSON = opts.getJSON || _saveJSON.default; + const inputFile = css.source.input.file; + const pluginList = getDefaultPluginsList(opts, inputFile); + const resultPluginIndex = result.processor.plugins.findIndex(plugin => isOurPlugin(plugin)); + + if (resultPluginIndex === -1) { + throw new Error("Plugin missing from options."); + } + + const earlierPlugins = result.processor.plugins.slice(0, resultPluginIndex); + const loaderPlugins = [...earlierPlugins, ...pluginList]; + const loader = getLoader(opts, loaderPlugins); + + const fetcher = async (file, relativeTo, depTrace) => { + const unquoteFile = (0, _unquote.default)(file); + return loader.fetch.call(loader, unquoteFile, relativeTo, depTrace); + }; + + const parser = new _Parser.default(fetcher); + await (0, _postcss.default)([...pluginList, parser.plugin()]).process(css, { + from: inputFile + }); + const out = loader.finalSource; + if (out) css.prepend(out); + + if (opts.localsConvention) { + const reducer = (0, _localsConvention.makeLocalsConventionReducer)(opts.localsConvention, inputFile); + parser.exportTokens = Object.entries(parser.exportTokens).reduce(reducer, {}); + } + + result.messages.push({ + type: "export", + plugin: "postcss-modules", + exportTokens: parser.exportTokens + }); // getJSON may return a promise + + return getJSON(css.source.input.file, parser.exportTokens, result.opts.to); + } + + }; + } + return pluginFactory; +} + +var hasRequiredBuild; + +function requireBuild () { + if (hasRequiredBuild) return build.exports; + hasRequiredBuild = 1; + + var _fs = require$$0; + + var _fs2 = /*@__PURE__*/ requireFs(); + + var _pluginFactory = /*@__PURE__*/ requirePluginFactory(); + + (0, _fs2.setFileSystem)({ + readFile: _fs.readFile, + writeFile: _fs.writeFile + }); + + build.exports = (opts = {}) => (0, _pluginFactory.makePlugin)(opts); + + build.exports.postcss = true; + return build.exports; +} + +var buildExports = /*@__PURE__*/ requireBuild(); +var postcssModules = /*@__PURE__*/getDefaultExportFromCjs(buildExports); + +function compileStyle(options) { + return doCompileStyle({ + ...options, + isAsync: false + }); +} +function compileStyleAsync(options) { + return doCompileStyle({ + ...options, + isAsync: true + }); +} +function doCompileStyle(options) { + const { + filename, + id, + scoped = false, + trim = true, + isProd = false, + modules = false, + modulesOptions = {}, + preprocessLang, + postcssOptions, + postcssPlugins + } = options; + const preprocessor = preprocessLang && processors[preprocessLang]; + const preProcessedSource = preprocessor && preprocess(options, preprocessor); + const map = preProcessedSource ? preProcessedSource.map : options.inMap || options.map; + const source = preProcessedSource ? preProcessedSource.code : options.source; + const shortId = id.replace(/^data-v-/, ""); + const longId = `data-v-${shortId}`; + const plugins = (postcssPlugins || []).slice(); + plugins.unshift(cssVarsPlugin({ id: shortId, isProd })); + if (trim) { + plugins.push(trimPlugin()); + } + if (scoped) { + plugins.push(scopedPlugin(longId)); + } + let cssModules; + if (modules) { + if (!options.isAsync) { + throw new Error( + "[@vue/compiler-sfc] `modules` option can only be used with compileStyleAsync()." + ); + } + plugins.push( + postcssModules({ + ...modulesOptions, + getJSON: (_cssFileName, json) => { + cssModules = json; + } + }) + ); + } + const postCSSOptions = { + ...postcssOptions, + to: filename, + from: filename + }; + if (map) { + postCSSOptions.map = { + inline: false, + annotation: false, + prev: map + }; + } + let result; + let code; + let outMap; + const dependencies = new Set( + preProcessedSource ? preProcessedSource.dependencies : [] + ); + dependencies.delete(filename); + const errors = []; + if (preProcessedSource && preProcessedSource.errors.length) { + errors.push(...preProcessedSource.errors); + } + const recordPlainCssDependencies = (messages) => { + messages.forEach((msg) => { + if (msg.type === "dependency") { + dependencies.add(msg.file); + } + }); + return dependencies; + }; + try { + result = require$$0$1(plugins).process(source, postCSSOptions); + if (options.isAsync) { + return result.then((result2) => ({ + code: result2.css || "", + map: result2.map && result2.map.toJSON(), + errors, + modules: cssModules, + rawResult: result2, + dependencies: recordPlainCssDependencies(result2.messages) + })).catch((error) => ({ + code: "", + map: void 0, + errors: [...errors, error], + rawResult: void 0, + dependencies + })); + } + recordPlainCssDependencies(result.messages); + code = result.css; + outMap = result.map; + } catch (e) { + errors.push(e); + } + return { + code: code || ``, + map: outMap && outMap.toJSON(), + errors, + rawResult: result, + dependencies + }; +} +function preprocess(options, preprocessor) { + return preprocessor( + options.source, + options.inMap || options.map, + { + filename: options.filename, + ...options.preprocessOptions + }, + options.preprocessCustomRequire + ); +} + +const UNKNOWN_TYPE = "Unknown"; +function resolveObjectKey(node, computed) { + switch (node.type) { + case "StringLiteral": + case "NumericLiteral": + return String(node.value); + case "Identifier": + if (!computed) return node.name; + } + return void 0; +} +function concatStrings(strs) { + return strs.filter((s) => !!s).join(", "); +} +function isLiteralNode(node) { + return node.type.endsWith("Literal"); +} +function isCallOf(node, test) { + return !!(node && test && node.type === "CallExpression" && node.callee.type === "Identifier" && (typeof test === "string" ? node.callee.name === test : test(node.callee.name))); +} +function toRuntimeTypeString(types) { + return types.length > 1 ? `[${types.join(", ")}]` : types[0]; +} +function getImportedName(specifier) { + if (specifier.type === "ImportSpecifier") + return specifier.imported.type === "Identifier" ? specifier.imported.name : specifier.imported.value; + else if (specifier.type === "ImportNamespaceSpecifier") return "*"; + return "default"; +} +function getId(node) { + return node.type === "Identifier" ? node.name : node.type === "StringLiteral" ? node.value : null; +} +function getStringLiteralKey(node) { + return node.computed ? node.key.type === "TemplateLiteral" && !node.key.expressions.length ? node.key.quasis.map((q) => q.value.cooked).join("") : null : node.key.type === "Identifier" ? node.key.name : node.key.type === "StringLiteral" ? node.key.value : node.key.type === "NumericLiteral" ? String(node.key.value) : null; +} +const identity = (str) => str; +const fileNameLowerCaseRegExp = /[^\u0130\u0131\u00DFa-z0-9\\/:\-_\. ]+/g; +const toLowerCase = (str) => str.toLowerCase(); +function toFileNameLowerCase(x) { + return fileNameLowerCaseRegExp.test(x) ? x.replace(fileNameLowerCaseRegExp, toLowerCase) : x; +} +function createGetCanonicalFileName(useCaseSensitiveFileNames) { + return useCaseSensitiveFileNames ? identity : toFileNameLowerCase; +} +const normalize = (path$1.posix || path$1).normalize; +const windowsSlashRE = /\\/g; +function normalizePath(p) { + return normalize(p.replace(windowsSlashRE, "/")); +} +const joinPaths = (path$1.posix || path$1).join; +const propNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~\-]/; +function getEscapedPropName(key) { + return propNameEscapeSymbolsRE.test(key) ? JSON.stringify(key) : key; +} +const isJS = (...langs) => langs.some((lang) => lang === "js" || lang === "jsx"); +const isTS = (...langs) => langs.some((lang) => lang === "ts" || lang === "tsx"); + +function analyzeScriptBindings(ast) { + for (const node of ast) { + if (node.type === "ExportDefaultDeclaration" && node.declaration.type === "ObjectExpression") { + return analyzeBindingsFromOptions(node.declaration); + } + } + return {}; +} +function analyzeBindingsFromOptions(node) { + const bindings = {}; + Object.defineProperty(bindings, "__isScriptSetup", { + enumerable: false, + value: false + }); + for (const property of node.properties) { + if (property.type === "ObjectProperty" && !property.computed && property.key.type === "Identifier") { + if (property.key.name === "props") { + for (const key of getObjectOrArrayExpressionKeys(property.value)) { + bindings[key] = "props"; + } + } else if (property.key.name === "inject") { + for (const key of getObjectOrArrayExpressionKeys(property.value)) { + bindings[key] = "options"; + } + } else if (property.value.type === "ObjectExpression" && (property.key.name === "computed" || property.key.name === "methods")) { + for (const key of getObjectExpressionKeys(property.value)) { + bindings[key] = "options"; + } + } + } else if (property.type === "ObjectMethod" && property.key.type === "Identifier" && (property.key.name === "setup" || property.key.name === "data")) { + for (const bodyItem of property.body.body) { + if (bodyItem.type === "ReturnStatement" && bodyItem.argument && bodyItem.argument.type === "ObjectExpression") { + for (const key of getObjectExpressionKeys(bodyItem.argument)) { + bindings[key] = property.key.name === "setup" ? "setup-maybe-ref" : "data"; + } + } + } + } + } + return bindings; +} +function getObjectExpressionKeys(node) { + const keys = []; + for (const prop of node.properties) { + if (prop.type === "SpreadElement") continue; + const key = resolveObjectKey(prop.key, prop.computed); + if (key) keys.push(String(key)); + } + return keys; +} +function getArrayExpressionKeys(node) { + const keys = []; + for (const element of node.elements) { + if (element && element.type === "StringLiteral") { + keys.push(element.value); + } + } + return keys; +} +function getObjectOrArrayExpressionKeys(value) { + if (value.type === "ArrayExpression") { + return getArrayExpressionKeys(value); + } + if (value.type === "ObjectExpression") { + return getObjectExpressionKeys(value); + } + return []; +} + +var _a, _b; +class ScriptCompileContext { + constructor(descriptor, options) { + this.descriptor = descriptor; + this.options = options; + this.isCE = false; + this.source = this.descriptor.source; + this.filename = this.descriptor.filename; + this.s = new MagicString(this.source); + this.startOffset = (_a = this.descriptor.scriptSetup) == null ? void 0 : _a.loc.start.offset; + this.endOffset = (_b = this.descriptor.scriptSetup) == null ? void 0 : _b.loc.end.offset; + this.userImports = /* @__PURE__ */ Object.create(null); + // macros presence check + this.hasDefinePropsCall = false; + this.hasDefineEmitCall = false; + this.hasDefineExposeCall = false; + this.hasDefaultExportName = false; + this.hasDefaultExportRender = false; + this.hasDefineOptionsCall = false; + this.hasDefineSlotsCall = false; + this.hasDefineModelCall = false; + this.propsDestructuredBindings = /* @__PURE__ */ Object.create(null); + // defineModel + this.modelDecls = /* @__PURE__ */ Object.create(null); + // codegen + this.bindingMetadata = {}; + this.helperImports = /* @__PURE__ */ new Set(); + const { script, scriptSetup } = descriptor; + const scriptLang = script && script.lang; + const scriptSetupLang = scriptSetup && scriptSetup.lang; + this.isJS = isJS(scriptLang, scriptSetupLang); + this.isTS = isTS(scriptLang, scriptSetupLang); + const customElement = options.customElement; + const filename = this.descriptor.filename; + if (customElement) { + this.isCE = typeof customElement === "boolean" ? customElement : customElement(filename); + } + const plugins = resolveParserPlugins( + scriptLang || scriptSetupLang, + options.babelParserPlugins + ); + function parse(input, offset) { + try { + return parser$2.parse(input, { + plugins, + sourceType: "module" + }).program; + } catch (e) { + e.message = `[vue/compiler-sfc] ${e.message} + +${descriptor.filename} +${shared.generateCodeFrame( + descriptor.source, + e.pos + offset, + e.pos + offset + 1 + )}`; + throw e; + } + } + this.scriptAst = descriptor.script && parse(descriptor.script.content, descriptor.script.loc.start.offset); + this.scriptSetupAst = descriptor.scriptSetup && parse(descriptor.scriptSetup.content, this.startOffset); + } + helper(key) { + this.helperImports.add(key); + return `_${key}`; + } + getString(node, scriptSetup = true) { + const block = scriptSetup ? this.descriptor.scriptSetup : this.descriptor.script; + return block.content.slice(node.start, node.end); + } + warn(msg, node, scope) { + warn(generateError(msg, node, this, scope)); + } + error(msg, node, scope) { + throw new Error( + `[@vue/compiler-sfc] ${generateError(msg, node, this, scope)}` + ); + } +} +function generateError(msg, node, ctx, scope) { + const offset = scope ? scope.offset : ctx.startOffset; + return `${msg} + +${(scope || ctx.descriptor).filename} +${shared.generateCodeFrame( + (scope || ctx.descriptor).source, + node.start + offset, + node.end + offset + )}`; +} +function resolveParserPlugins(lang, userPlugins, dts = false) { + const plugins = []; + if (!userPlugins || !userPlugins.some( + (p) => p === "importAssertions" || p === "importAttributes" || shared.isArray(p) && p[0] === "importAttributes" + )) { + plugins.push("importAttributes"); + } + if (lang === "jsx" || lang === "tsx" || lang === "mtsx") { + plugins.push("jsx"); + } else if (userPlugins) { + userPlugins = userPlugins.filter((p) => p !== "jsx"); + } + if (lang === "ts" || lang === "mts" || lang === "tsx" || lang === "cts" || lang === "mtsx") { + plugins.push(["typescript", { dts }], "explicitResourceManagement"); + if (!userPlugins || !userPlugins.includes("decorators")) { + plugins.push("decorators-legacy"); + } + } + if (userPlugins) { + plugins.push(...userPlugins); + } + return plugins; +} + +function rewriteDefault(input, as, parserPlugins) { + const ast = parser$2.parse(input, { + sourceType: "module", + plugins: resolveParserPlugins("js", parserPlugins) + }).program.body; + const s = new MagicString(input); + rewriteDefaultAST(ast, s, as); + return s.toString(); +} +function rewriteDefaultAST(ast, s, as) { + if (!hasDefaultExport(ast)) { + s.append(` +const ${as} = {}`); + return; + } + ast.forEach((node) => { + if (node.type === "ExportDefaultDeclaration") { + if (node.declaration.type === "ClassDeclaration" && node.declaration.id) { + const start = node.declaration.decorators && node.declaration.decorators.length > 0 ? node.declaration.decorators[node.declaration.decorators.length - 1].end : node.start; + s.overwrite(start, node.declaration.id.start, ` class `); + s.append(` +const ${as} = ${node.declaration.id.name}`); + } else { + s.overwrite(node.start, node.declaration.start, `const ${as} = `); + } + } else if (node.type === "ExportNamedDeclaration") { + for (const specifier of node.specifiers) { + if (specifier.type === "ExportSpecifier" && specifier.exported.type === "Identifier" && specifier.exported.name === "default") { + if (node.source) { + if (specifier.local.name === "default") { + s.prepend( + `import { default as __VUE_DEFAULT__ } from '${node.source.value}' +` + ); + const end2 = specifierEnd(s, specifier.local.end, node.end); + s.remove(specifier.start, end2); + s.append(` +const ${as} = __VUE_DEFAULT__`); + continue; + } else { + s.prepend( + `import { ${s.slice( + specifier.local.start, + specifier.local.end + )} as __VUE_DEFAULT__ } from '${node.source.value}' +` + ); + const end2 = specifierEnd(s, specifier.exported.end, node.end); + s.remove(specifier.start, end2); + s.append(` +const ${as} = __VUE_DEFAULT__`); + continue; + } + } + const end = specifierEnd(s, specifier.end, node.end); + s.remove(specifier.start, end); + s.append(` +const ${as} = ${specifier.local.name}`); + } + } + } + }); +} +function hasDefaultExport(ast) { + for (const stmt of ast) { + if (stmt.type === "ExportDefaultDeclaration") { + return true; + } else if (stmt.type === "ExportNamedDeclaration" && stmt.specifiers.some( + (spec) => spec.exported.name === "default" + )) { + return true; + } + } + return false; +} +function specifierEnd(s, end, nodeEnd) { + let hasCommas = false; + let oldEnd = end; + while (end < nodeEnd) { + if (/\s/.test(s.slice(end, end + 1))) { + end++; + } else if (s.slice(end, end + 1) === ",") { + end++; + hasCommas = true; + break; + } else if (s.slice(end, end + 1) === "}") { + break; + } + } + return hasCommas ? end : oldEnd; +} + +const normalScriptDefaultVar = `__default__`; +function processNormalScript(ctx, scopeId) { + var _a; + const script = ctx.descriptor.script; + try { + let content = script.content; + let map = script.map; + const scriptAst = ctx.scriptAst; + const bindings = analyzeScriptBindings(scriptAst.body); + const { cssVars } = ctx.descriptor; + const { genDefaultAs, isProd } = ctx.options; + if (cssVars.length || genDefaultAs) { + const defaultVar = genDefaultAs || normalScriptDefaultVar; + const s = new MagicString(content); + rewriteDefaultAST(scriptAst.body, s, defaultVar); + content = s.toString(); + if (cssVars.length && !((_a = ctx.options.templateOptions) == null ? void 0 : _a.ssr)) { + content += genNormalScriptCssVarsCode( + cssVars, + bindings, + scopeId, + !!isProd, + defaultVar + ); + } + if (!genDefaultAs) { + content += ` +export default ${defaultVar}`; + } + } + return { + ...script, + content, + map, + bindings, + scriptAst: scriptAst.body + }; + } catch (e) { + return script; + } +} + +const balanced = (a, b, str) => { + const ma = a instanceof RegExp ? maybeMatch(a, str) : a; + const mb = b instanceof RegExp ? maybeMatch(b, str) : b; + const r = ma !== null && mb != null && range(ma, mb, str); + return (r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + ma.length, r[1]), + post: str.slice(r[1] + mb.length), + }); +}; +const maybeMatch = (reg, str) => { + const m = str.match(reg); + return m ? m[0] : null; +}; +const range = (a, b, str) => { + let begs, beg, left, right = undefined, result; + let ai = str.indexOf(a); + let bi = str.indexOf(b, ai + 1); + let i = ai; + if (ai >= 0 && bi > 0) { + if (a === b) { + return [ai, bi]; + } + begs = []; + left = str.length; + while (i >= 0 && !result) { + if (i === ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } + else if (begs.length === 1) { + const r = begs.pop(); + if (r !== undefined) + result = [r, bi]; + } + else { + beg = begs.pop(); + if (beg !== undefined && beg < left) { + left = beg; + right = bi; + } + bi = str.indexOf(b, i + 1); + } + i = ai < bi && ai >= 0 ? ai : bi; + } + if (begs.length && right !== undefined) { + result = [left, right]; + } + } + return result; +}; + +const escSlash = '\0SLASH' + Math.random() + '\0'; +const escOpen = '\0OPEN' + Math.random() + '\0'; +const escClose = '\0CLOSE' + Math.random() + '\0'; +const escComma = '\0COMMA' + Math.random() + '\0'; +const escPeriod = '\0PERIOD' + Math.random() + '\0'; +const escSlashPattern = new RegExp(escSlash, 'g'); +const escOpenPattern = new RegExp(escOpen, 'g'); +const escClosePattern = new RegExp(escClose, 'g'); +const escCommaPattern = new RegExp(escComma, 'g'); +const escPeriodPattern = new RegExp(escPeriod, 'g'); +const slashPattern = /\\\\/g; +const openPattern = /\\{/g; +const closePattern = /\\}/g; +const commaPattern = /\\,/g; +const periodPattern = /\\./g; +const EXPANSION_MAX = 100_000; +function numeric(str) { + return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0); +} +function escapeBraces(str) { + return str + .replace(slashPattern, escSlash) + .replace(openPattern, escOpen) + .replace(closePattern, escClose) + .replace(commaPattern, escComma) + .replace(periodPattern, escPeriod); +} +function unescapeBraces(str) { + return str + .replace(escSlashPattern, '\\') + .replace(escOpenPattern, '{') + .replace(escClosePattern, '}') + .replace(escCommaPattern, ',') + .replace(escPeriodPattern, '.'); +} +/** + * Basically just str.split(","), but handling cases + * where we have nested braced sections, which should be + * treated as individual members, like {a,{b,c},d} + */ +function parseCommaParts(str) { + if (!str) { + return ['']; + } + const parts = []; + const m = balanced('{', '}', str); + if (!m) { + return str.split(','); + } + const { pre, body, post } = m; + const p = pre.split(','); + p[p.length - 1] += '{' + body + '}'; + const postParts = parseCommaParts(post); + if (post.length) { + p[p.length - 1] += postParts.shift(); + p.push.apply(p, postParts); + } + parts.push.apply(parts, p); + return parts; +} +function expand(str, options = {}) { + if (!str) { + return []; + } + const { max = EXPANSION_MAX } = options; + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.slice(0, 2) === '{}') { + str = '\\{\\}' + str.slice(2); + } + return expand_(escapeBraces(str), max, true).map(unescapeBraces); +} +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} +function expand_(str, max, isTop) { + /** @type {string[]} */ + const expansions = []; + const m = balanced('{', '}', str); + if (!m) + return [str]; + // no need to expand pre, since it is guaranteed to be free of brace-sets + const pre = m.pre; + const post = m.post.length ? expand_(m.post, max, false) : ['']; + if (/\$$/.test(m.pre)) { + for (let k = 0; k < post.length && k < max; k++) { + const expansion = pre + '{' + m.body + '}' + post[k]; + expansions.push(expansion); + } + } + else { + const isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + const isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + const isSequence = isNumericSequence || isAlphaSequence; + const isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,(?!,).*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand_(str, max, true); + } + return [str]; + } + let n; + if (isSequence) { + n = m.body.split(/\.\./); + } + else { + n = parseCommaParts(m.body); + if (n.length === 1 && n[0] !== undefined) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand_(n[0], max, false).map(embrace); + //XXX is this necessary? Can't seem to hit it in tests. + /* c8 ignore start */ + if (n.length === 1) { + return post.map(p => m.pre + n[0] + p); + } + /* c8 ignore stop */ + } + } + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + let N; + if (isSequence && n[0] !== undefined && n[1] !== undefined) { + const x = numeric(n[0]); + const y = numeric(n[1]); + const width = Math.max(n[0].length, n[1].length); + let incr = n.length === 3 && n[2] !== undefined ? Math.abs(numeric(n[2])) : 1; + let test = lte; + const reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + const pad = n.some(isPadded); + N = []; + for (let i = x; test(i, y); i += incr) { + let c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') { + c = ''; + } + } + else { + c = String(i); + if (pad) { + const need = width - c.length; + if (need > 0) { + const z = new Array(need + 1).join('0'); + if (i < 0) { + c = '-' + z + c.slice(1); + } + else { + c = z + c; + } + } + } + } + N.push(c); + } + } + else { + N = []; + for (let j = 0; j < n.length; j++) { + N.push.apply(N, expand_(n[j], max, false)); + } + } + for (let j = 0; j < N.length; j++) { + for (let k = 0; k < post.length && expansions.length < max; k++) { + const expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) { + expansions.push(expansion); + } + } + } + } + return expansions; +} + +const MAX_PATTERN_LENGTH = 1024 * 64; +const assertValidPattern = (pattern) => { + if (typeof pattern !== 'string') { + throw new TypeError('invalid pattern'); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError('pattern is too long'); + } +}; + +// translate the various posix character classes into unicode properties +// this works across all unicode locales +// { <posix class>: [<translation>, /u flag required, negated] +const posixClasses = { + '[:alnum:]': ['\\p{L}\\p{Nl}\\p{Nd}', true], + '[:alpha:]': ['\\p{L}\\p{Nl}', true], + '[:ascii:]': ['\\x' + '00-\\x' + '7f', false], + '[:blank:]': ['\\p{Zs}\\t', true], + '[:cntrl:]': ['\\p{Cc}', true], + '[:digit:]': ['\\p{Nd}', true], + '[:graph:]': ['\\p{Z}\\p{C}', true, true], + '[:lower:]': ['\\p{Ll}', true], + '[:print:]': ['\\p{C}', true], + '[:punct:]': ['\\p{P}', true], + '[:space:]': ['\\p{Z}\\t\\r\\n\\v\\f', true], + '[:upper:]': ['\\p{Lu}', true], + '[:word:]': ['\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}', true], + '[:xdigit:]': ['A-Fa-f0-9', false], +}; +// only need to escape a few things inside of brace expressions +// escapes: [ \ ] - +const braceEscape = (s) => s.replace(/[[\]\\-]/g, '\\$&'); +// escape all regexp magic characters +const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); +// everything has already been escaped, we just have to join +const rangesToString = (ranges) => ranges.join(''); +// takes a glob string at a posix brace expression, and returns +// an equivalent regular expression source, and boolean indicating +// whether the /u flag needs to be applied, and the number of chars +// consumed to parse the character class. +// This also removes out of order ranges, and returns ($.) if the +// entire class just no good. +const parseClass = (glob, position) => { + const pos = position; + /* c8 ignore start */ + if (glob.charAt(pos) !== '[') { + throw new Error('not in a brace expression'); + } + /* c8 ignore stop */ + const ranges = []; + const negs = []; + let i = pos + 1; + let sawStart = false; + let uflag = false; + let escaping = false; + let negate = false; + let endPos = pos; + let rangeStart = ''; + WHILE: while (i < glob.length) { + const c = glob.charAt(i); + if ((c === '!' || c === '^') && i === pos + 1) { + negate = true; + i++; + continue; + } + if (c === ']' && sawStart && !escaping) { + endPos = i + 1; + break; + } + sawStart = true; + if (c === '\\') { + if (!escaping) { + escaping = true; + i++; + continue; + } + // escaped \ char, fall through and treat like normal char + } + if (c === '[' && !escaping) { + // either a posix class, a collation equivalent, or just a [ + for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { + if (glob.startsWith(cls, i)) { + // invalid, [a-[] is fine, but not [a-[:alpha]] + if (rangeStart) { + return ['$.', false, glob.length - pos, true]; + } + i += cls.length; + if (neg) + negs.push(unip); + else + ranges.push(unip); + uflag = uflag || u; + continue WHILE; + } + } + } + // now it's just a normal character, effectively + escaping = false; + if (rangeStart) { + // throw this range away if it's not valid, but others + // can still match. + if (c > rangeStart) { + ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c)); + } + else if (c === rangeStart) { + ranges.push(braceEscape(c)); + } + rangeStart = ''; + i++; + continue; + } + // now might be the start of a range. + // can be either c-d or c-] or c<more...>] or c] at this point + if (glob.startsWith('-]', i + 1)) { + ranges.push(braceEscape(c + '-')); + i += 2; + continue; + } + if (glob.startsWith('-', i + 1)) { + rangeStart = c; + i += 2; + continue; + } + // not the start of a range, just a single character + ranges.push(braceEscape(c)); + i++; + } + if (endPos < i) { + // didn't see the end of the class, not a valid class, + // but might still be valid as a literal match. + return ['', false, 0, false]; + } + // if we got no ranges and no negates, then we have a range that + // cannot possibly match anything, and that poisons the whole glob + if (!ranges.length && !negs.length) { + return ['$.', false, glob.length - pos, true]; + } + // if we got one positive range, and it's a single character, then that's + // not actually a magic pattern, it's just that one literal character. + // we should not treat that as "magic", we should just return the literal + // character. [_] is a perfectly valid way to escape glob magic chars. + if (negs.length === 0 && + ranges.length === 1 && + /^\\?.$/.test(ranges[0]) && + !negate) { + const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; + return [regexpEscape(r), false, endPos - pos, false]; + } + const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'; + const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'; + const comb = ranges.length && negs.length + ? '(' + sranges + '|' + snegs + ')' + : ranges.length + ? sranges + : snegs; + return [comb, uflag, endPos - pos, true]; +}; + +/** + * Un-escape a string that has been escaped with {@link escape}. + * + * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then + * square-bracket escapes are removed, but not backslash escapes. + * + * For example, it will turn the string `'[*]'` into `*`, but it will not + * turn `'\\*'` into `'*'`, because `\` is a path separator in + * `windowsPathsNoEscape` mode. + * + * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and + * backslash escapes are removed. + * + * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped + * or unescaped. + * + * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be + * unescaped. + */ +const unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true, } = {}) => { + if (magicalBraces) { + return windowsPathsNoEscape + ? s.replace(/\[([^\/\\])\]/g, '$1') + : s + .replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2') + .replace(/\\([^\/])/g, '$1'); + } + return windowsPathsNoEscape + ? s.replace(/\[([^\/\\{}])\]/g, '$1') + : s + .replace(/((?!\\).|^)\[([^\/\\{}])\]/g, '$1$2') + .replace(/\\([^\/{}])/g, '$1'); +}; + +// parse a single path portion +const types = new Set(['!', '?', '+', '*', '@']); +const isExtglobType = (c) => types.has(c); +// Patterns that get prepended to bind to the start of either the +// entire string, or just a single path portion, to prevent dots +// and/or traversal patterns, when needed. +// Exts don't need the ^ or / bit, because the root binds that already. +const startNoTraversal = '(?!(?:^|/)\\.\\.?(?:$|/))'; +const startNoDot = '(?!\\.)'; +// characters that indicate a start of pattern needs the "no dots" bit, +// because a dot *might* be matched. ( is not in the list, because in +// the case of a child extglob, it will handle the prevention itself. +const addPatternStart = new Set(['[', '.']); +// cases where traversal is A-OK, no dot prevention needed +const justDots = new Set(['..', '.']); +const reSpecials = new Set('().*{}+?[]^$\\!'); +const regExpEscape$1 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); +// any single thing other than / +const qmark$1 = '[^/]'; +// * => any number of characters +const star$1 = qmark$1 + '*?'; +// use + when we need to ensure that *something* matches, because the * is +// the only thing in the path portion. +const starNoEmpty = qmark$1 + '+?'; +// remove the \ chars that we added if we end up doing a nonmagic compare +// const deslash = (s: string) => s.replace(/\\(.)/g, '$1') +class AST { + type; + #root; + #hasMagic; + #uflag = false; + #parts = []; + #parent; + #parentIndex; + #negs; + #filledNegs = false; + #options; + #toString; + // set to true if it's an extglob with no children + // (which really means one child of '') + #emptyExt = false; + constructor(type, parent, options = {}) { + this.type = type; + // extglobs are inherently magical + if (type) + this.#hasMagic = true; + this.#parent = parent; + this.#root = this.#parent ? this.#parent.#root : this; + this.#options = this.#root === this ? options : this.#root.#options; + this.#negs = this.#root === this ? [] : this.#root.#negs; + if (type === '!' && !this.#root.#filledNegs) + this.#negs.push(this); + this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; + } + get hasMagic() { + /* c8 ignore start */ + if (this.#hasMagic !== undefined) + return this.#hasMagic; + /* c8 ignore stop */ + for (const p of this.#parts) { + if (typeof p === 'string') + continue; + if (p.type || p.hasMagic) + return (this.#hasMagic = true); + } + // note: will be undefined until we generate the regexp src and find out + return this.#hasMagic; + } + // reconstructs the pattern + toString() { + if (this.#toString !== undefined) + return this.#toString; + if (!this.type) { + return (this.#toString = this.#parts.map(p => String(p)).join('')); + } + else { + return (this.#toString = + this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')'); + } + } + #fillNegs() { + /* c8 ignore start */ + if (this !== this.#root) + throw new Error('should only call on root'); + if (this.#filledNegs) + return this; + /* c8 ignore stop */ + // call toString() once to fill this out + this.toString(); + this.#filledNegs = true; + let n; + while ((n = this.#negs.pop())) { + if (n.type !== '!') + continue; + // walk up the tree, appending everthing that comes AFTER parentIndex + let p = n; + let pp = p.#parent; + while (pp) { + for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { + for (const part of n.#parts) { + /* c8 ignore start */ + if (typeof part === 'string') { + throw new Error('string part in extglob AST??'); + } + /* c8 ignore stop */ + part.copyIn(pp.#parts[i]); + } + } + p = pp; + pp = p.#parent; + } + } + return this; + } + push(...parts) { + for (const p of parts) { + if (p === '') + continue; + /* c8 ignore start */ + if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) { + throw new Error('invalid part: ' + p); + } + /* c8 ignore stop */ + this.#parts.push(p); + } + } + toJSON() { + const ret = this.type === null + ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON())) + : [this.type, ...this.#parts.map(p => p.toJSON())]; + if (this.isStart() && !this.type) + ret.unshift([]); + if (this.isEnd() && + (this === this.#root || + (this.#root.#filledNegs && this.#parent?.type === '!'))) { + ret.push({}); + } + return ret; + } + isStart() { + if (this.#root === this) + return true; + // if (this.type) return !!this.#parent?.isStart() + if (!this.#parent?.isStart()) + return false; + if (this.#parentIndex === 0) + return true; + // if everything AHEAD of this is a negation, then it's still the "start" + const p = this.#parent; + for (let i = 0; i < this.#parentIndex; i++) { + const pp = p.#parts[i]; + if (!(pp instanceof AST && pp.type === '!')) { + return false; + } + } + return true; + } + isEnd() { + if (this.#root === this) + return true; + if (this.#parent?.type === '!') + return true; + if (!this.#parent?.isEnd()) + return false; + if (!this.type) + return this.#parent?.isEnd(); + // if not root, it'll always have a parent + /* c8 ignore start */ + const pl = this.#parent ? this.#parent.#parts.length : 0; + /* c8 ignore stop */ + return this.#parentIndex === pl - 1; + } + copyIn(part) { + if (typeof part === 'string') + this.push(part); + else + this.push(part.clone(this)); + } + clone(parent) { + const c = new AST(this.type, parent); + for (const p of this.#parts) { + c.copyIn(p); + } + return c; + } + static #parseAST(str, ast, pos, opt) { + let escaping = false; + let inBrace = false; + let braceStart = -1; + let braceNeg = false; + if (ast.type === null) { + // outside of a extglob, append until we find a start + let i = pos; + let acc = ''; + while (i < str.length) { + const c = str.charAt(i++); + // still accumulate escapes at this point, but we do ignore + // starts that are escaped + if (escaping || c === '\\') { + escaping = !escaping; + acc += c; + continue; + } + if (inBrace) { + if (i === braceStart + 1) { + if (c === '^' || c === '!') { + braceNeg = true; + } + } + else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc += c; + continue; + } + else if (c === '[') { + inBrace = true; + braceStart = i; + braceNeg = false; + acc += c; + continue; + } + if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') { + ast.push(acc); + acc = ''; + const ext = new AST(c, ast); + i = AST.#parseAST(str, ext, i, opt); + ast.push(ext); + continue; + } + acc += c; + } + ast.push(acc); + return i; + } + // some kind of extglob, pos is at the ( + // find the next | or ) + let i = pos + 1; + let part = new AST(null, ast); + const parts = []; + let acc = ''; + while (i < str.length) { + const c = str.charAt(i++); + // still accumulate escapes at this point, but we do ignore + // starts that are escaped + if (escaping || c === '\\') { + escaping = !escaping; + acc += c; + continue; + } + if (inBrace) { + if (i === braceStart + 1) { + if (c === '^' || c === '!') { + braceNeg = true; + } + } + else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { + inBrace = false; + } + acc += c; + continue; + } + else if (c === '[') { + inBrace = true; + braceStart = i; + braceNeg = false; + acc += c; + continue; + } + if (isExtglobType(c) && str.charAt(i) === '(') { + part.push(acc); + acc = ''; + const ext = new AST(c, part); + part.push(ext); + i = AST.#parseAST(str, ext, i, opt); + continue; + } + if (c === '|') { + part.push(acc); + acc = ''; + parts.push(part); + part = new AST(null, ast); + continue; + } + if (c === ')') { + if (acc === '' && ast.#parts.length === 0) { + ast.#emptyExt = true; + } + part.push(acc); + acc = ''; + ast.push(...parts, part); + return i; + } + acc += c; + } + // unfinished extglob + // if we got here, it was a malformed extglob! not an extglob, but + // maybe something else in there. + ast.type = null; + ast.#hasMagic = undefined; + ast.#parts = [str.substring(pos - 1)]; + return i; + } + static fromGlob(pattern, options = {}) { + const ast = new AST(null, undefined, options); + AST.#parseAST(pattern, ast, 0, options); + return ast; + } + // returns the regular expression if there's magic, or the unescaped + // string if not. + toMMPattern() { + // should only be called on root + /* c8 ignore start */ + if (this !== this.#root) + return this.#root.toMMPattern(); + /* c8 ignore stop */ + const glob = this.toString(); + const [re, body, hasMagic, uflag] = this.toRegExpSource(); + // if we're in nocase mode, and not nocaseMagicOnly, then we do + // still need a regular expression if we have to case-insensitively + // match capital/lowercase characters. + const anyMagic = hasMagic || + this.#hasMagic || + (this.#options.nocase && + !this.#options.nocaseMagicOnly && + glob.toUpperCase() !== glob.toLowerCase()); + if (!anyMagic) { + return body; + } + const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : ''); + return Object.assign(new RegExp(`^${re}$`, flags), { + _src: re, + _glob: glob, + }); + } + get options() { + return this.#options; + } + // returns the string match, the regexp source, whether there's magic + // in the regexp (so a regular expression is required) and whether or + // not the uflag is needed for the regular expression (for posix classes) + // TODO: instead of injecting the start/end at this point, just return + // the BODY of the regexp, along with the start/end portions suitable + // for binding the start/end in either a joined full-path makeRe context + // (where we bind to (^|/), or a standalone matchPart context (where + // we bind to ^, and not /). Otherwise slashes get duped! + // + // In part-matching mode, the start is: + // - if not isStart: nothing + // - if traversal possible, but not allowed: ^(?!\.\.?$) + // - if dots allowed or not possible: ^ + // - if dots possible and not allowed: ^(?!\.) + // end is: + // - if not isEnd(): nothing + // - else: $ + // + // In full-path matching mode, we put the slash at the START of the + // pattern, so start is: + // - if first pattern: same as part-matching mode + // - if not isStart(): nothing + // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) + // - if dots allowed or not possible: / + // - if dots possible and not allowed: /(?!\.) + // end is: + // - if last pattern, same as part-matching mode + // - else nothing + // + // Always put the (?:$|/) on negated tails, though, because that has to be + // there to bind the end of the negated pattern portion, and it's easier to + // just stick it in now rather than try to inject it later in the middle of + // the pattern. + // + // We can just always return the same end, and leave it up to the caller + // to know whether it's going to be used joined or in parts. + // And, if the start is adjusted slightly, can do the same there: + // - if not isStart: nothing + // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) + // - if dots allowed or not possible: (?:/|^) + // - if dots possible and not allowed: (?:/|^)(?!\.) + // + // But it's better to have a simpler binding without a conditional, for + // performance, so probably better to return both start options. + // + // Then the caller just ignores the end if it's not the first pattern, + // and the start always gets applied. + // + // But that's always going to be $ if it's the ending pattern, or nothing, + // so the caller can just attach $ at the end of the pattern when building. + // + // So the todo is: + // - better detect what kind of start is needed + // - return both flavors of starting pattern + // - attach $ at the end of the pattern when creating the actual RegExp + // + // Ah, but wait, no, that all only applies to the root when the first pattern + // is not an extglob. If the first pattern IS an extglob, then we need all + // that dot prevention biz to live in the extglob portions, because eg + // +(*|.x*) can match .xy but not .yx. + // + // So, return the two flavors if it's #root and the first child is not an + // AST, otherwise leave it to the child AST to handle it, and there, + // use the (?:^|/) style of start binding. + // + // Even simplified further: + // - Since the start for a join is eg /(?!\.) and the start for a part + // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root + // or start or whatever) and prepend ^ or / at the Regexp construction. + toRegExpSource(allowDot) { + const dot = allowDot ?? !!this.#options.dot; + if (this.#root === this) + this.#fillNegs(); + if (!this.type) { + const noEmpty = this.isStart() && + this.isEnd() && + !this.#parts.some(s => typeof s !== 'string'); + const src = this.#parts + .map(p => { + const [re, _, hasMagic, uflag] = typeof p === 'string' + ? AST.#parseGlob(p, this.#hasMagic, noEmpty) + : p.toRegExpSource(allowDot); + this.#hasMagic = this.#hasMagic || hasMagic; + this.#uflag = this.#uflag || uflag; + return re; + }) + .join(''); + let start = ''; + if (this.isStart()) { + if (typeof this.#parts[0] === 'string') { + // this is the string that will match the start of the pattern, + // so we need to protect against dots and such. + // '.' and '..' cannot match unless the pattern is that exactly, + // even if it starts with . or dot:true is set. + const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); + if (!dotTravAllowed) { + const aps = addPatternStart; + // check if we have a possibility of matching . or .., + // and prevent that. + const needNoTrav = + // dots are allowed, and the pattern starts with [ or . + (dot && aps.has(src.charAt(0))) || + // the pattern starts with \., and then [ or . + (src.startsWith('\\.') && aps.has(src.charAt(2))) || + // the pattern starts with \.\., and then [ or . + (src.startsWith('\\.\\.') && aps.has(src.charAt(4))); + // no need to prevent dots if it can't match a dot, or if a + // sub-pattern will be preventing it anyway. + const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); + start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''; + } + } + } + // append the "end of path portion" pattern to negation tails + let end = ''; + if (this.isEnd() && + this.#root.#filledNegs && + this.#parent?.type === '!') { + end = '(?:$|\\/)'; + } + const final = start + src + end; + return [ + final, + unescape(src), + (this.#hasMagic = !!this.#hasMagic), + this.#uflag, + ]; + } + // We need to calculate the body *twice* if it's a repeat pattern + // at the start, once in nodot mode, then again in dot mode, so a + // pattern like *(?) can match 'x.y' + const repeated = this.type === '*' || this.type === '+'; + // some kind of extglob + const start = this.type === '!' ? '(?:(?!(?:' : '(?:'; + let body = this.#partsToRegExp(dot); + if (this.isStart() && this.isEnd() && !body && this.type !== '!') { + // invalid extglob, has to at least be *something* present, if it's + // the entire path portion. + const s = this.toString(); + this.#parts = [s]; + this.type = null; + this.#hasMagic = undefined; + return [s, unescape(this.toString()), false, false]; + } + // XXX abstract out this map method + let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot + ? '' + : this.#partsToRegExp(true); + if (bodyDotAllowed === body) { + bodyDotAllowed = ''; + } + if (bodyDotAllowed) { + body = `(?:${body})(?:${bodyDotAllowed})*?`; + } + // an empty !() is exactly equivalent to a starNoEmpty + let final = ''; + if (this.type === '!' && this.#emptyExt) { + final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty; + } + else { + const close = this.type === '!' + ? // !() must match something,but !(x) can match '' + '))' + + (this.isStart() && !dot && !allowDot ? startNoDot : '') + + star$1 + + ')' + : this.type === '@' + ? ')' + : this.type === '?' + ? ')?' + : this.type === '+' && bodyDotAllowed + ? ')' + : this.type === '*' && bodyDotAllowed + ? `)?` + : `)${this.type}`; + final = start + body + close; + } + return [ + final, + unescape(body), + (this.#hasMagic = !!this.#hasMagic), + this.#uflag, + ]; + } + #partsToRegExp(dot) { + return this.#parts + .map(p => { + // extglob ASTs should only contain parent ASTs + /* c8 ignore start */ + if (typeof p === 'string') { + throw new Error('string type in extglob ast??'); + } + /* c8 ignore stop */ + // can ignore hasMagic, because extglobs are already always magic + const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); + this.#uflag = this.#uflag || uflag; + return re; + }) + .filter(p => !(this.isStart() && this.isEnd()) || !!p) + .join('|'); + } + static #parseGlob(glob, hasMagic, noEmpty = false) { + let escaping = false; + let re = ''; + let uflag = false; + for (let i = 0; i < glob.length; i++) { + const c = glob.charAt(i); + if (escaping) { + escaping = false; + re += (reSpecials.has(c) ? '\\' : '') + c; + continue; + } + if (c === '\\') { + if (i === glob.length - 1) { + re += '\\\\'; + } + else { + escaping = true; + } + continue; + } + if (c === '[') { + const [src, needUflag, consumed, magic] = parseClass(glob, i); + if (consumed) { + re += src; + uflag = uflag || needUflag; + i += consumed - 1; + hasMagic = hasMagic || magic; + continue; + } + } + if (c === '*') { + re += noEmpty && glob === '*' ? starNoEmpty : star$1; + hasMagic = true; + continue; + } + if (c === '?') { + re += qmark$1; + hasMagic = true; + continue; + } + re += regExpEscape$1(c); + } + return [re, unescape(glob), !!hasMagic, uflag]; + } +} + +/** + * Escape all magic characters in a glob pattern. + * + * If the {@link MinimatchOptions.windowsPathsNoEscape} + * option is used, then characters are escaped by wrapping in `[]`, because + * a magic character wrapped in a character class can only be satisfied by + * that exact character. In this mode, `\` is _not_ escaped, because it is + * not interpreted as a magic character, but instead as a path separator. + * + * If the {@link MinimatchOptions.magicalBraces} option is used, + * then braces (`{` and `}`) will be escaped. + */ +const escape = (s, { windowsPathsNoEscape = false, magicalBraces = false, } = {}) => { + // don't need to escape +@! because we escape the parens + // that make those magic, and escaping ! as [!] isn't valid, + // because [!]] is a valid glob class meaning not ']'. + if (magicalBraces) { + return windowsPathsNoEscape + ? s.replace(/[?*()[\]{}]/g, '[$&]') + : s.replace(/[?*()[\]\\{}]/g, '\\$&'); + } + return windowsPathsNoEscape + ? s.replace(/[?*()[\]]/g, '[$&]') + : s.replace(/[?*()[\]\\]/g, '\\$&'); +}; + +const minimatch = (p, pattern, options = {}) => { + assertValidPattern(pattern); + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false; + } + return new Minimatch(pattern, options).match(p); +}; +// Optimized checking for the most common glob patterns. +const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; +const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext); +const starDotExtTestDot = (ext) => (f) => f.endsWith(ext); +const starDotExtTestNocase = (ext) => { + ext = ext.toLowerCase(); + return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext); +}; +const starDotExtTestNocaseDot = (ext) => { + ext = ext.toLowerCase(); + return (f) => f.toLowerCase().endsWith(ext); +}; +const starDotStarRE = /^\*+\.\*+$/; +const starDotStarTest = (f) => !f.startsWith('.') && f.includes('.'); +const starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.'); +const dotStarRE = /^\.\*+$/; +const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.'); +const starRE = /^\*+$/; +const starTest = (f) => f.length !== 0 && !f.startsWith('.'); +const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..'; +const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; +const qmarksTestNocase = ([$0, ext = '']) => { + const noext = qmarksTestNoExt([$0]); + if (!ext) + return noext; + ext = ext.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext); +}; +const qmarksTestNocaseDot = ([$0, ext = '']) => { + const noext = qmarksTestNoExtDot([$0]); + if (!ext) + return noext; + ext = ext.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext); +}; +const qmarksTestDot = ([$0, ext = '']) => { + const noext = qmarksTestNoExtDot([$0]); + return !ext ? noext : (f) => noext(f) && f.endsWith(ext); +}; +const qmarksTest = ([$0, ext = '']) => { + const noext = qmarksTestNoExt([$0]); + return !ext ? noext : (f) => noext(f) && f.endsWith(ext); +}; +const qmarksTestNoExt = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && !f.startsWith('.'); +}; +const qmarksTestNoExtDot = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && f !== '.' && f !== '..'; +}; +/* c8 ignore start */ +const defaultPlatform = (typeof process === 'object' && process + ? (typeof process.env === 'object' && + process.env && + process.env.__MINIMATCH_TESTING_PLATFORM__) || + process.platform + : 'posix'); +const path = { + win32: { sep: '\\' }, + posix: { sep: '/' }, +}; +/* c8 ignore stop */ +const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep; +minimatch.sep = sep; +const GLOBSTAR = Symbol('globstar **'); +minimatch.GLOBSTAR = GLOBSTAR; +// any single thing other than / +// don't need to escape / when using new RegExp() +const qmark = '[^/]'; +// * => any number of characters +const star = qmark + '*?'; +// ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. +const twoStarDot = '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?'; +// not a ^ or / followed by a dot, +// followed by anything, any number of times. +const twoStarNoDot = '(?:(?!(?:\\/|^)\\.).)*?'; +const filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options); +minimatch.filter = filter; +const ext = (a, b = {}) => Object.assign({}, a, b); +const defaults = (def) => { + if (!def || typeof def !== 'object' || !Object.keys(def).length) { + return minimatch; + } + const orig = minimatch; + const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options)); + return Object.assign(m, { + Minimatch: class Minimatch extends orig.Minimatch { + constructor(pattern, options = {}) { + super(pattern, ext(def, options)); + } + static defaults(options) { + return orig.defaults(ext(def, options)).Minimatch; + } + }, + AST: class AST extends orig.AST { + /* c8 ignore start */ + constructor(type, parent, options = {}) { + super(type, parent, ext(def, options)); + } + /* c8 ignore stop */ + static fromGlob(pattern, options = {}) { + return orig.AST.fromGlob(pattern, ext(def, options)); + } + }, + unescape: (s, options = {}) => orig.unescape(s, ext(def, options)), + escape: (s, options = {}) => orig.escape(s, ext(def, options)), + filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)), + defaults: (options) => orig.defaults(ext(def, options)), + makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)), + braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)), + match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)), + sep: orig.sep, + GLOBSTAR: GLOBSTAR, + }); +}; +minimatch.defaults = defaults; +// Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c +const braceExpand = (pattern, options = {}) => { + assertValidPattern(pattern); + // Thanks to Yeting Li <https://github.com/yetingli> for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + // shortcut. no need to expand. + return [pattern]; + } + return expand(pattern); +}; +minimatch.braceExpand = braceExpand; +// parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. +const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe(); +minimatch.makeRe = makeRe; +const match = (list, pattern, options = {}) => { + const mm = new Minimatch(pattern, options); + list = list.filter(f => mm.match(f)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; +}; +minimatch.match = match; +// replace stuff like \* with * +const globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; +const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); +class Minimatch { + options; + set; + pattern; + windowsPathsNoEscape; + nonegate; + negate; + comment; + empty; + preserveMultipleSlashes; + partial; + globSet; + globParts; + nocase; + isWindows; + platform; + windowsNoMagicRoot; + regexp; + constructor(pattern, options = {}) { + assertValidPattern(pattern); + options = options || {}; + this.options = options; + this.pattern = pattern; + this.platform = options.platform || defaultPlatform; + this.isWindows = this.platform === 'win32'; + this.windowsPathsNoEscape = + !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, '/'); + } + this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; + this.regexp = null; + this.negate = false; + this.nonegate = !!options.nonegate; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.nocase = !!this.options.nocase; + this.windowsNoMagicRoot = + options.windowsNoMagicRoot !== undefined + ? options.windowsNoMagicRoot + : !!(this.isWindows && this.nocase); + this.globSet = []; + this.globParts = []; + this.set = []; + // make the set of regexps etc. + this.make(); + } + hasMagic() { + if (this.options.magicalBraces && this.set.length > 1) { + return true; + } + for (const pattern of this.set) { + for (const part of pattern) { + if (typeof part !== 'string') + return true; + } + } + return false; + } + debug(..._) { } + make() { + const pattern = this.pattern; + const options = this.options; + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + // step 1: figure out negation, etc. + this.parseNegate(); + // step 2: expand braces + this.globSet = [...new Set(this.braceExpand())]; + if (options.debug) { + this.debug = (...args) => console.error(...args); + } + this.debug(this.pattern, this.globSet); + // step 3: now we have a set, so turn each one into a series of + // path-portion matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + // + // First, we preprocess to make the glob pattern sets a bit simpler + // and deduped. There are some perf-killing patterns that can cause + // problems with a glob walk, but we can simplify them down a bit. + const rawGlobParts = this.globSet.map(s => this.slashSplit(s)); + this.globParts = this.preprocess(rawGlobParts); + this.debug(this.pattern, this.globParts); + // glob --> regexps + let set = this.globParts.map((s, _, __) => { + if (this.isWindows && this.windowsNoMagicRoot) { + // check if it's a drive or unc path. + const isUNC = s[0] === '' && + s[1] === '' && + (s[2] === '?' || !globMagic.test(s[2])) && + !globMagic.test(s[3]); + const isDrive = /^[a-z]:/i.test(s[0]); + if (isUNC) { + return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]; + } + else if (isDrive) { + return [s[0], ...s.slice(1).map(ss => this.parse(ss))]; + } + } + return s.map(ss => this.parse(ss)); + }); + this.debug(this.pattern, set); + // filter out everything that didn't compile properly. + this.set = set.filter(s => s.indexOf(false) === -1); + // do not treat the ? in UNC paths as magic + if (this.isWindows) { + for (let i = 0; i < this.set.length; i++) { + const p = this.set[i]; + if (p[0] === '' && + p[1] === '' && + this.globParts[i][2] === '?' && + typeof p[3] === 'string' && + /^[a-z]:$/i.test(p[3])) { + p[2] = '?'; + } + } + } + this.debug(this.pattern, this.set); + } + // various transforms to equivalent pattern sets that are + // faster to process in a filesystem walk. The goal is to + // eliminate what we can, and push all ** patterns as far + // to the right as possible, even if it increases the number + // of patterns that we have to process. + preprocess(globParts) { + // if we're not in globstar mode, then turn all ** into * + if (this.options.noglobstar) { + for (let i = 0; i < globParts.length; i++) { + for (let j = 0; j < globParts[i].length; j++) { + if (globParts[i][j] === '**') { + globParts[i][j] = '*'; + } + } + } + } + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + // aggressive optimization for the purpose of fs walking + globParts = this.firstPhasePreProcess(globParts); + globParts = this.secondPhasePreProcess(globParts); + } + else if (optimizationLevel >= 1) { + // just basic optimizations to remove some .. parts + globParts = this.levelOneOptimize(globParts); + } + else { + // just collapse multiple ** portions into one + globParts = this.adjascentGlobstarOptimize(globParts); + } + return globParts; + } + // just get rid of adjascent ** portions + adjascentGlobstarOptimize(globParts) { + return globParts.map(parts => { + let gs = -1; + while (-1 !== (gs = parts.indexOf('**', gs + 1))) { + let i = gs; + while (parts[i + 1] === '**') { + i++; + } + if (i !== gs) { + parts.splice(gs, i - gs); + } + } + return parts; + }); + } + // get rid of adjascent ** and resolve .. portions + levelOneOptimize(globParts) { + return globParts.map(parts => { + parts = parts.reduce((set, part) => { + const prev = set[set.length - 1]; + if (part === '**' && prev === '**') { + return set; + } + if (part === '..') { + if (prev && prev !== '..' && prev !== '.' && prev !== '**') { + set.pop(); + return set; + } + } + set.push(part); + return set; + }, []); + return parts.length === 0 ? [''] : parts; + }); + } + levelTwoFileOptimize(parts) { + if (!Array.isArray(parts)) { + parts = this.slashSplit(parts); + } + let didSomething = false; + do { + didSomething = false; + // <pre>/<e>/<rest> -> <pre>/<rest> + if (!this.preserveMultipleSlashes) { + for (let i = 1; i < parts.length - 1; i++) { + const p = parts[i]; + // don't squeeze out UNC patterns + if (i === 1 && p === '' && parts[0] === '') + continue; + if (p === '.' || p === '') { + didSomething = true; + parts.splice(i, 1); + i--; + } + } + if (parts[0] === '.' && + parts.length === 2 && + (parts[1] === '.' || parts[1] === '')) { + didSomething = true; + parts.pop(); + } + } + // <pre>/<p>/../<rest> -> <pre>/<rest> + let dd = 0; + while (-1 !== (dd = parts.indexOf('..', dd + 1))) { + const p = parts[dd - 1]; + if (p && p !== '.' && p !== '..' && p !== '**') { + didSomething = true; + parts.splice(dd - 1, 2); + dd -= 2; + } + } + } while (didSomething); + return parts.length === 0 ? [''] : parts; + } + // First phase: single-pattern processing + // <pre> is 1 or more portions + // <rest> is 1 or more portions + // <p> is any portion other than ., .., '', or ** + // <e> is . or '' + // + // **/.. is *brutal* for filesystem walking performance, because + // it effectively resets the recursive walk each time it occurs, + // and ** cannot be reduced out by a .. pattern part like a regexp + // or most strings (other than .., ., and '') can be. + // + // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>} + // <pre>/<e>/<rest> -> <pre>/<rest> + // <pre>/<p>/../<rest> -> <pre>/<rest> + // **/**/<rest> -> **/<rest> + // + // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow + // this WOULD be allowed if ** did follow symlinks, or * didn't + firstPhasePreProcess(globParts) { + let didSomething = false; + do { + didSomething = false; + // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>} + for (let parts of globParts) { + let gs = -1; + while (-1 !== (gs = parts.indexOf('**', gs + 1))) { + let gss = gs; + while (parts[gss + 1] === '**') { + // <pre>/**/**/<rest> -> <pre>/**/<rest> + gss++; + } + // eg, if gs is 2 and gss is 4, that means we have 3 ** + // parts, and can remove 2 of them. + if (gss > gs) { + parts.splice(gs + 1, gss - gs); + } + let next = parts[gs + 1]; + const p = parts[gs + 2]; + const p2 = parts[gs + 3]; + if (next !== '..') + continue; + if (!p || + p === '.' || + p === '..' || + !p2 || + p2 === '.' || + p2 === '..') { + continue; + } + didSomething = true; + // edit parts in place, and push the new one + parts.splice(gs, 1); + const other = parts.slice(0); + other[gs] = '**'; + globParts.push(other); + gs--; + } + // <pre>/<e>/<rest> -> <pre>/<rest> + if (!this.preserveMultipleSlashes) { + for (let i = 1; i < parts.length - 1; i++) { + const p = parts[i]; + // don't squeeze out UNC patterns + if (i === 1 && p === '' && parts[0] === '') + continue; + if (p === '.' || p === '') { + didSomething = true; + parts.splice(i, 1); + i--; + } + } + if (parts[0] === '.' && + parts.length === 2 && + (parts[1] === '.' || parts[1] === '')) { + didSomething = true; + parts.pop(); + } + } + // <pre>/<p>/../<rest> -> <pre>/<rest> + let dd = 0; + while (-1 !== (dd = parts.indexOf('..', dd + 1))) { + const p = parts[dd - 1]; + if (p && p !== '.' && p !== '..' && p !== '**') { + didSomething = true; + const needDot = dd === 1 && parts[dd + 1] === '**'; + const splin = needDot ? ['.'] : []; + parts.splice(dd - 1, 2, ...splin); + if (parts.length === 0) + parts.push(''); + dd -= 2; + } + } + } + } while (didSomething); + return globParts; + } + // second phase: multi-pattern dedupes + // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest> + // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest> + // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest> + // + // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest> + // ^-- not valid because ** doens't follow symlinks + secondPhasePreProcess(globParts) { + for (let i = 0; i < globParts.length - 1; i++) { + for (let j = i + 1; j < globParts.length; j++) { + const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes); + if (matched) { + globParts[i] = []; + globParts[j] = matched; + break; + } + } + } + return globParts.filter(gs => gs.length); + } + partsMatch(a, b, emptyGSMatch = false) { + let ai = 0; + let bi = 0; + let result = []; + let which = ''; + while (ai < a.length && bi < b.length) { + if (a[ai] === b[bi]) { + result.push(which === 'b' ? b[bi] : a[ai]); + ai++; + bi++; + } + else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) { + result.push(a[ai]); + ai++; + } + else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) { + result.push(b[bi]); + bi++; + } + else if (a[ai] === '*' && + b[bi] && + (this.options.dot || !b[bi].startsWith('.')) && + b[bi] !== '**') { + if (which === 'b') + return false; + which = 'a'; + result.push(a[ai]); + ai++; + bi++; + } + else if (b[bi] === '*' && + a[ai] && + (this.options.dot || !a[ai].startsWith('.')) && + a[ai] !== '**') { + if (which === 'a') + return false; + which = 'b'; + result.push(b[bi]); + ai++; + bi++; + } + else { + return false; + } + } + // if we fall out of the loop, it means they two are identical + // as long as their lengths match + return a.length === b.length && result; + } + parseNegate() { + if (this.nonegate) + return; + const pattern = this.pattern; + let negate = false; + let negateOffset = 0; + for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) { + negate = !negate; + negateOffset++; + } + if (negateOffset) + this.pattern = pattern.slice(negateOffset); + this.negate = negate; + } + // set partial to true to test if, for example, + // "/a/b" matches the start of "/*/b/*/d" + // Partial means, if you run out of file before you run + // out of pattern, then that's fine, as long as all + // the parts match. + matchOne(file, pattern, partial = false) { + const options = this.options; + // UNC paths like //?/X:/... can match X:/... and vice versa + // Drive letters in absolute drive or unc paths are always compared + // case-insensitively. + if (this.isWindows) { + const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]); + const fileUNC = !fileDrive && + file[0] === '' && + file[1] === '' && + file[2] === '?' && + /^[a-z]:$/i.test(file[3]); + const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]); + const patternUNC = !patternDrive && + pattern[0] === '' && + pattern[1] === '' && + pattern[2] === '?' && + typeof pattern[3] === 'string' && + /^[a-z]:$/i.test(pattern[3]); + const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined; + const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined; + if (typeof fdi === 'number' && typeof pdi === 'number') { + const [fd, pd] = [file[fdi], pattern[pdi]]; + if (fd.toLowerCase() === pd.toLowerCase()) { + pattern[pdi] = fd; + if (pdi > fdi) { + pattern = pattern.slice(pdi); + } + else if (fdi > pdi) { + file = file.slice(fdi); + } + } + } + } + // resolve and reduce . and .. portions in the file as well. + // don't need to do the second phase, because it's only one string[] + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + file = this.levelTwoFileOptimize(file); + } + this.debug('matchOne', this, { file, pattern }); + this.debug('matchOne', file.length, pattern.length); + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + this.debug('matchOne loop'); + var p = pattern[pi]; + var f = file[fi]; + this.debug(pattern, p, f); + // should be impossible. + // some invalid regexp stuff in the set. + /* c8 ignore start */ + if (p === false) { + return false; + } + /* c8 ignore stop */ + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]); + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi; + var pr = pi + 1; + if (pr === pl) { + this.debug('** at the end'); + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || + file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) + return false; + } + return true; + } + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr]; + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee); + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee); + // found a match. + return true; + } + else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || + swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr); + break; + } + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue'); + fr++; + } + } + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + /* c8 ignore start */ + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr); + if (fr === fl) { + return true; + } + } + /* c8 ignore stop */ + return false; + } + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + let hit; + if (typeof p === 'string') { + hit = f === p; + this.debug('string match', p, f, hit); + } + else { + hit = p.test(f); + this.debug('pattern match', p, f, hit); + } + if (!hit) + return false; + } + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true; + } + else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial; + } + else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + return fi === fl - 1 && file[fi] === ''; + /* c8 ignore start */ + } + else { + // should be unreachable. + throw new Error('wtf?'); + } + /* c8 ignore stop */ + } + braceExpand() { + return braceExpand(this.pattern, this.options); + } + parse(pattern) { + assertValidPattern(pattern); + const options = this.options; + // shortcuts + if (pattern === '**') + return GLOBSTAR; + if (pattern === '') + return ''; + // far and away, the most common glob pattern parts are + // *, *.*, and *.<ext> Add a fast check method for those. + let m; + let fastTest = null; + if ((m = pattern.match(starRE))) { + fastTest = options.dot ? starTestDot : starTest; + } + else if ((m = pattern.match(starDotExtRE))) { + fastTest = (options.nocase + ? options.dot + ? starDotExtTestNocaseDot + : starDotExtTestNocase + : options.dot + ? starDotExtTestDot + : starDotExtTest)(m[1]); + } + else if ((m = pattern.match(qmarksRE))) { + fastTest = (options.nocase + ? options.dot + ? qmarksTestNocaseDot + : qmarksTestNocase + : options.dot + ? qmarksTestDot + : qmarksTest)(m); + } + else if ((m = pattern.match(starDotStarRE))) { + fastTest = options.dot ? starDotStarTestDot : starDotStarTest; + } + else if ((m = pattern.match(dotStarRE))) { + fastTest = dotStarTest; + } + const re = AST.fromGlob(pattern, this.options).toMMPattern(); + if (fastTest && typeof re === 'object') { + // Avoids overriding in frozen environments + Reflect.defineProperty(re, 'test', { value: fastTest }); + } + return re; + } + makeRe() { + if (this.regexp || this.regexp === false) + return this.regexp; + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + const set = this.set; + if (!set.length) { + this.regexp = false; + return this.regexp; + } + const options = this.options; + const twoStar = options.noglobstar + ? star + : options.dot + ? twoStarDot + : twoStarNoDot; + const flags = new Set(options.nocase ? ['i'] : []); + // regexpify non-globstar patterns + // if ** is only item, then we just do one twoStar + // if ** is first, and there are more, prepend (\/|twoStar\/)? to next + // if ** is last, append (\/twoStar|) to previous + // if ** is in the middle, append (\/|\/twoStar\/) to previous + // then filter out GLOBSTAR symbols + let re = set + .map(pattern => { + const pp = pattern.map(p => { + if (p instanceof RegExp) { + for (const f of p.flags.split('')) + flags.add(f); + } + return typeof p === 'string' + ? regExpEscape(p) + : p === GLOBSTAR + ? GLOBSTAR + : p._src; + }); + pp.forEach((p, i) => { + const next = pp[i + 1]; + const prev = pp[i - 1]; + if (p !== GLOBSTAR || prev === GLOBSTAR) { + return; + } + if (prev === undefined) { + if (next !== undefined && next !== GLOBSTAR) { + pp[i + 1] = '(?:\\/|' + twoStar + '\\/)?' + next; + } + else { + pp[i] = twoStar; + } + } + else if (next === undefined) { + pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + ')?'; + } + else if (next !== GLOBSTAR) { + pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next; + pp[i + 1] = GLOBSTAR; + } + }); + const filtered = pp.filter(p => p !== GLOBSTAR); + // For partial matches, we need to make the pattern match + // any prefix of the full path. We do this by generating + // alternative patterns that match progressively longer prefixes. + if (this.partial && filtered.length >= 1) { + const prefixes = []; + for (let i = 1; i <= filtered.length; i++) { + prefixes.push(filtered.slice(0, i).join('/')); + } + return '(?:' + prefixes.join('|') + ')'; + } + return filtered.join('/'); + }) + .join('|'); + // need to wrap in parens if we had more than one thing with |, + // otherwise only the first will be anchored to ^ and the last to $ + const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']; + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^' + open + re + close + '$'; + // In partial mode, '/' should always match as it's a valid prefix for any pattern + if (this.partial) { + re = '^(?:\\/|' + open + re.slice(1, -1) + close + ')$'; + } + // can match anything, as long as it's not this. + if (this.negate) + re = '^(?!' + re + ').+$'; + try { + this.regexp = new RegExp(re, [...flags].join('')); + /* c8 ignore start */ + } + catch (ex) { + // should be impossible + this.regexp = false; + } + /* c8 ignore stop */ + return this.regexp; + } + slashSplit(p) { + // if p starts with // on windows, we preserve that + // so that UNC paths aren't broken. Otherwise, any number of + // / characters are coalesced into one, unless + // preserveMultipleSlashes is set to true. + if (this.preserveMultipleSlashes) { + return p.split('/'); + } + else if (this.isWindows && /^\/\/[^\/]+/.test(p)) { + // add an extra '' for the one we lose + return ['', ...p.split(/\/+/)]; + } + else { + return p.split(/\/+/); + } + } + match(f, partial = this.partial) { + this.debug('match', f, this.pattern); + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) { + return false; + } + if (this.empty) { + return f === ''; + } + if (f === '/' && partial) { + return true; + } + const options = this.options; + // windows: need to use /, not \ + if (this.isWindows) { + f = f.split('\\').join('/'); + } + // treat the test path as a set of pathparts. + const ff = this.slashSplit(f); + this.debug(this.pattern, 'split', ff); + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. + const set = this.set; + this.debug(this.pattern, 'set', set); + // Find the basename of the path by looking for the last non-empty segment + let filename = ff[ff.length - 1]; + if (!filename) { + for (let i = ff.length - 2; !filename && i >= 0; i--) { + filename = ff[i]; + } + } + for (let i = 0; i < set.length; i++) { + const pattern = set[i]; + let file = ff; + if (options.matchBase && pattern.length === 1) { + file = [filename]; + } + const hit = this.matchOne(file, pattern, partial); + if (hit) { + if (options.flipNegate) { + return true; + } + return !this.negate; + } + } + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) { + return false; + } + return this.negate; + } + static defaults(def) { + return minimatch.defaults(def).Minimatch; + } +} +/* c8 ignore stop */ +minimatch.AST = AST; +minimatch.Minimatch = Minimatch; +minimatch.escape = escape; +minimatch.unescape = unescape; + +class TypeScope { + constructor(filename, source, offset = 0, imports = /* @__PURE__ */ Object.create(null), types = /* @__PURE__ */ Object.create(null), declares = /* @__PURE__ */ Object.create(null)) { + this.filename = filename; + this.source = source; + this.offset = offset; + this.imports = imports; + this.types = types; + this.declares = declares; + this.isGenericScope = false; + this.resolvedImportSources = /* @__PURE__ */ Object.create(null); + this.exportedTypes = /* @__PURE__ */ Object.create(null); + this.exportedDeclares = /* @__PURE__ */ Object.create(null); + } +} +function resolveTypeElements(ctx, node, scope, typeParameters) { + const canCache = !typeParameters; + if (canCache && node._resolvedElements) { + return node._resolvedElements; + } + const resolved = innerResolveTypeElements( + ctx, + node, + node._ownerScope || scope || ctxToScope(ctx), + typeParameters + ); + return canCache ? node._resolvedElements = resolved : resolved; +} +function innerResolveTypeElements(ctx, node, scope, typeParameters) { + var _a, _b; + if (node.leadingComments && node.leadingComments.some((c) => c.value.includes("@vue-ignore"))) { + return { props: {} }; + } + switch (node.type) { + case "TSTypeLiteral": + return typeElementsToMap(ctx, node.members, scope, typeParameters); + case "TSInterfaceDeclaration": + return resolveInterfaceMembers(ctx, node, scope, typeParameters); + case "TSTypeAliasDeclaration": + case "TSTypeAnnotation": + case "TSParenthesizedType": + return resolveTypeElements( + ctx, + node.typeAnnotation, + scope, + typeParameters + ); + case "TSFunctionType": { + return { props: {}, calls: [node] }; + } + case "TSUnionType": + case "TSIntersectionType": + return mergeElements( + node.types.map((t) => resolveTypeElements(ctx, t, scope, typeParameters)), + node.type + ); + case "TSMappedType": + return resolveMappedType(ctx, node, scope, typeParameters); + case "TSIndexedAccessType": { + const types = resolveIndexType(ctx, node, scope); + return mergeElements( + types.map((t) => resolveTypeElements(ctx, t, t._ownerScope)), + "TSUnionType" + ); + } + case "TSExpressionWithTypeArguments": + // referenced by interface extends + case "TSTypeReference": { + const typeName = getReferenceName(node); + if ((typeName === "ExtractPropTypes" || typeName === "ExtractPublicPropTypes") && node.typeParameters && ((_a = scope.imports[typeName]) == null ? void 0 : _a.source) === "vue") { + return resolveExtractPropTypes( + resolveTypeElements( + ctx, + node.typeParameters.params[0], + scope, + typeParameters + ), + scope + ); + } + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + let typeParams; + if ((resolved.type === "TSTypeAliasDeclaration" || resolved.type === "TSInterfaceDeclaration") && resolved.typeParameters && node.typeParameters) { + typeParams = /* @__PURE__ */ Object.create(null); + resolved.typeParameters.params.forEach((p, i) => { + let param = typeParameters && typeParameters[p.name]; + if (!param) param = node.typeParameters.params[i]; + typeParams[p.name] = param; + }); + } + return resolveTypeElements( + ctx, + resolved, + resolved._ownerScope, + typeParams + ); + } else { + if (typeof typeName === "string") { + if (typeParameters && typeParameters[typeName]) { + return resolveTypeElements( + ctx, + typeParameters[typeName], + scope, + typeParameters + ); + } + if ( + // @ts-expect-error + SupportedBuiltinsSet.has(typeName) + ) { + return resolveBuiltin( + ctx, + node, + typeName, + scope, + typeParameters + ); + } else if (typeName === "ReturnType" && node.typeParameters) { + const ret = resolveReturnType( + ctx, + node.typeParameters.params[0], + scope + ); + if (ret) { + return resolveTypeElements(ctx, ret, scope); + } + } + } + return ctx.error( + `Unresolvable type reference or unsupported built-in utility type`, + node, + scope + ); + } + } + case "TSImportType": { + if (getId(node.argument) === "vue" && ((_b = node.qualifier) == null ? void 0 : _b.type) === "Identifier" && node.qualifier.name === "ExtractPropTypes" && node.typeParameters) { + return resolveExtractPropTypes( + resolveTypeElements(ctx, node.typeParameters.params[0], scope), + scope + ); + } + const sourceScope = importSourceToScope( + ctx, + node.argument, + scope, + node.argument.value + ); + const resolved = resolveTypeReference(ctx, node, sourceScope); + if (resolved) { + return resolveTypeElements(ctx, resolved, resolved._ownerScope); + } + break; + } + case "TSTypeQuery": + { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + return resolveTypeElements(ctx, resolved, resolved._ownerScope); + } + } + break; + } + return ctx.error(`Unresolvable type: ${node.type}`, node, scope); +} +function typeElementsToMap(ctx, elements, scope = ctxToScope(ctx), typeParameters) { + const res = { props: {} }; + for (const e of elements) { + if (e.type === "TSPropertySignature" || e.type === "TSMethodSignature") { + if (typeParameters) { + scope = createChildScope(scope); + scope.isGenericScope = true; + Object.assign(scope.types, typeParameters); + } + e._ownerScope = scope; + const name = getStringLiteralKey(e); + if (name !== null) { + res.props[name] = e; + } else { + ctx.error( + `Unsupported computed key in type referenced by a macro`, + e.key, + scope + ); + } + } else if (e.type === "TSCallSignatureDeclaration") { + (res.calls || (res.calls = [])).push(e); + } + } + return res; +} +function mergeElements(maps, type) { + if (maps.length === 1) return maps[0]; + const res = { props: {} }; + const { props: baseProps } = res; + for (const { props, calls } of maps) { + for (const key in props) { + if (!shared.hasOwn(baseProps, key)) { + baseProps[key] = props[key]; + } else { + baseProps[key] = createProperty( + baseProps[key].key, + { + type, + // @ts-expect-error + types: [baseProps[key], props[key]] + }, + baseProps[key]._ownerScope, + baseProps[key].optional || props[key].optional + ); + } + } + if (calls) { + (res.calls || (res.calls = [])).push(...calls); + } + } + return res; +} +function createProperty(key, typeAnnotation, scope, optional) { + return { + type: "TSPropertySignature", + key, + kind: "get", + optional, + typeAnnotation: { + type: "TSTypeAnnotation", + typeAnnotation + }, + _ownerScope: scope + }; +} +function resolveInterfaceMembers(ctx, node, scope, typeParameters) { + const base = typeElementsToMap( + ctx, + node.body.body, + node._ownerScope, + typeParameters + ); + if (node.extends) { + for (const ext of node.extends) { + try { + const { props, calls } = resolveTypeElements(ctx, ext, scope); + for (const key in props) { + if (!shared.hasOwn(base.props, key)) { + base.props[key] = props[key]; + } + } + if (calls) { + ; + (base.calls || (base.calls = [])).push(...calls); + } + } catch (e) { + if (!ctx.silentOnExtendsFailure) { + ctx.error( + `Failed to resolve extends base type. +If this previously worked in 3.2, you can instruct the compiler to ignore this extend by adding /* @vue-ignore */ before it, for example: + +interface Props extends /* @vue-ignore */ Base {} + +Note: both in 3.2 or with the ignore, the properties in the base type are treated as fallthrough attrs at runtime.`, + ext, + scope + ); + } + } + } + } + return base; +} +function resolveMappedType(ctx, node, scope, typeParameters) { + const res = { props: {} }; + let keys; + if (node.nameType) { + const { name, constraint } = node.typeParameter; + scope = createChildScope(scope); + Object.assign(scope.types, { ...typeParameters, [name]: constraint }); + keys = resolveStringType(ctx, node.nameType, scope); + } else { + keys = resolveStringType(ctx, node.typeParameter.constraint, scope); + } + for (const key of keys) { + res.props[key] = createProperty( + { + type: "Identifier", + name: key + }, + node.typeAnnotation, + scope, + !!node.optional + ); + } + return res; +} +function resolveIndexType(ctx, node, scope) { + var _a, _b; + if (node.indexType.type === "TSNumberKeyword") { + return resolveArrayElementType(ctx, node.objectType, scope); + } + const { indexType, objectType } = node; + const types = []; + let keys; + let resolved; + if (indexType.type === "TSStringKeyword") { + resolved = resolveTypeElements(ctx, objectType, scope); + keys = Object.keys(resolved.props); + } else { + keys = resolveStringType(ctx, indexType, scope); + resolved = resolveTypeElements(ctx, objectType, scope); + } + for (const key of keys) { + const targetType = (_b = (_a = resolved.props[key]) == null ? void 0 : _a.typeAnnotation) == null ? void 0 : _b.typeAnnotation; + if (targetType) { + targetType._ownerScope = resolved.props[key]._ownerScope; + types.push(targetType); + } + } + return types; +} +function resolveArrayElementType(ctx, node, scope) { + if (node.type === "TSArrayType") { + return [node.elementType]; + } + if (node.type === "TSTupleType") { + return node.elementTypes.map( + (t) => t.type === "TSNamedTupleMember" ? t.elementType : t + ); + } + if (node.type === "TSTypeReference") { + if (getReferenceName(node) === "Array" && node.typeParameters) { + return node.typeParameters.params; + } else { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + return resolveArrayElementType(ctx, resolved, scope); + } + } + } + return ctx.error( + "Failed to resolve element type from target type", + node, + scope + ); +} +function resolveStringType(ctx, node, scope, typeParameters) { + switch (node.type) { + case "StringLiteral": + return [node.value]; + case "TSLiteralType": + return resolveStringType(ctx, node.literal, scope, typeParameters); + case "TSUnionType": + return node.types.map((t) => resolveStringType(ctx, t, scope, typeParameters)).flat(); + case "TemplateLiteral": { + return resolveTemplateKeys(ctx, node, scope); + } + case "TSTypeReference": { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + return resolveStringType(ctx, resolved, scope, typeParameters); + } + if (node.typeName.type === "Identifier") { + const name = node.typeName.name; + if (typeParameters && typeParameters[name]) { + return resolveStringType( + ctx, + typeParameters[name], + scope, + typeParameters + ); + } + const getParam = (index = 0) => resolveStringType( + ctx, + node.typeParameters.params[index], + scope, + typeParameters + ); + switch (name) { + case "Extract": + return getParam(1); + case "Exclude": { + const excluded = getParam(1); + return getParam().filter((s) => !excluded.includes(s)); + } + case "Uppercase": + return getParam().map((s) => s.toUpperCase()); + case "Lowercase": + return getParam().map((s) => s.toLowerCase()); + case "Capitalize": + return getParam().map(shared.capitalize); + case "Uncapitalize": + return getParam().map((s) => s[0].toLowerCase() + s.slice(1)); + default: + ctx.error( + "Unsupported type when resolving index type", + node.typeName, + scope + ); + } + } + } + } + return ctx.error("Failed to resolve index type into finite keys", node, scope); +} +function resolveTemplateKeys(ctx, node, scope) { + if (!node.expressions.length) { + return [node.quasis[0].value.raw]; + } + const res = []; + const e = node.expressions[0]; + const q = node.quasis[0]; + const leading = q ? q.value.raw : ``; + const resolved = resolveStringType(ctx, e, scope); + const restResolved = resolveTemplateKeys( + ctx, + { + ...node, + expressions: node.expressions.slice(1), + quasis: q ? node.quasis.slice(1) : node.quasis + }, + scope + ); + for (const r of resolved) { + for (const rr of restResolved) { + res.push(leading + r + rr); + } + } + return res; +} +const SupportedBuiltinsSet = /* @__PURE__ */ new Set([ + "Partial", + "Required", + "Readonly", + "Pick", + "Omit" +]); +function resolveBuiltin(ctx, node, name, scope, typeParameters) { + const t = resolveTypeElements( + ctx, + node.typeParameters.params[0], + scope, + typeParameters + ); + switch (name) { + case "Partial": { + const res2 = { props: {}, calls: t.calls }; + Object.keys(t.props).forEach((key) => { + res2.props[key] = { ...t.props[key], optional: true }; + }); + return res2; + } + case "Required": { + const res2 = { props: {}, calls: t.calls }; + Object.keys(t.props).forEach((key) => { + res2.props[key] = { ...t.props[key], optional: false }; + }); + return res2; + } + case "Readonly": + return t; + case "Pick": { + const picked = resolveStringType( + ctx, + node.typeParameters.params[1], + scope, + typeParameters + ); + const res2 = { props: {}, calls: t.calls }; + for (const key of picked) { + res2.props[key] = t.props[key]; + } + return res2; + } + case "Omit": + const omitted = resolveStringType( + ctx, + node.typeParameters.params[1], + scope, + typeParameters + ); + const res = { props: {}, calls: t.calls }; + for (const key in t.props) { + if (!omitted.includes(key)) { + res.props[key] = t.props[key]; + } + } + return res; + } +} +function resolveTypeReference(ctx, node, scope, name, onlyExported = false) { + const canCache = !(scope == null ? void 0 : scope.isGenericScope); + if (canCache && node._resolvedReference) { + return node._resolvedReference; + } + const resolved = innerResolveTypeReference( + ctx, + scope || ctxToScope(ctx), + name || getReferenceName(node), + node, + onlyExported + ); + return canCache ? node._resolvedReference = resolved : resolved; +} +function innerResolveTypeReference(ctx, scope, name, node, onlyExported) { + if (typeof name === "string") { + if (scope.imports[name]) { + return resolveTypeFromImport(ctx, node, name, scope); + } else { + const lookupSource = node.type === "TSTypeQuery" ? onlyExported ? scope.exportedDeclares : scope.declares : onlyExported ? scope.exportedTypes : scope.types; + if (lookupSource[name]) { + return lookupSource[name]; + } else { + const globalScopes = resolveGlobalScope(ctx); + if (globalScopes) { + for (const s of globalScopes) { + const src = node.type === "TSTypeQuery" ? s.declares : s.types; + if (src[name]) { + (ctx.deps || (ctx.deps = /* @__PURE__ */ new Set())).add(s.filename); + return src[name]; + } + } + } + } + } + } else { + let ns = innerResolveTypeReference(ctx, scope, name[0], node, onlyExported); + if (ns) { + if (ns.type !== "TSModuleDeclaration") { + ns = ns._ns; + } + if (ns) { + const childScope = moduleDeclToScope(ctx, ns, ns._ownerScope || scope); + return innerResolveTypeReference( + ctx, + childScope, + name.length > 2 ? name.slice(1) : name[name.length - 1], + node, + !ns.declare + ); + } + } + } +} +function getReferenceName(node) { + const ref = node.type === "TSTypeReference" ? node.typeName : node.type === "TSExpressionWithTypeArguments" ? node.expression : node.type === "TSImportType" ? node.qualifier : node.exprName; + if ((ref == null ? void 0 : ref.type) === "Identifier") { + return ref.name; + } else if ((ref == null ? void 0 : ref.type) === "TSQualifiedName") { + return qualifiedNameToPath(ref); + } else { + return "default"; + } +} +function qualifiedNameToPath(node) { + if (node.type === "Identifier") { + return [node.name]; + } else { + return [...qualifiedNameToPath(node.left), node.right.name]; + } +} +function resolveGlobalScope(ctx) { + if (ctx.options.globalTypeFiles) { + const fs = resolveFS(ctx); + if (!fs) { + throw new Error("[vue/compiler-sfc] globalTypeFiles requires fs access."); + } + return ctx.options.globalTypeFiles.map( + (file) => fileToScope(ctx, normalizePath(file), true) + ); + } +} +let ts; +let loadTS; +function registerTS(_loadTS) { + loadTS = () => { + try { + return _loadTS(); + } catch (err) { + if (typeof err.message === "string" && err.message.includes("Cannot find module")) { + throw new Error( + 'Failed to load TypeScript, which is required for resolving imported types. Please make sure "TypeScript" is installed as a project dependency.' + ); + } else { + throw new Error( + "Failed to load TypeScript for resolving imported types." + ); + } + } + }; +} +function resolveFS(ctx) { + if (ctx.fs) { + return ctx.fs; + } + if (!ts && loadTS) { + ts = loadTS(); + } + const fs = ctx.options.fs || (ts == null ? void 0 : ts.sys); + if (!fs) { + return; + } + return ctx.fs = { + fileExists(file) { + if (file.endsWith(".vue.ts") && !file.endsWith(".d.vue.ts")) { + file = file.replace(/\.ts$/, ""); + } + return fs.fileExists(file); + }, + readFile(file) { + if (file.endsWith(".vue.ts") && !file.endsWith(".d.vue.ts")) { + file = file.replace(/\.ts$/, ""); + } + return fs.readFile(file); + }, + realpath: fs.realpath + }; +} +function resolveTypeFromImport(ctx, node, name, scope) { + const { source, imported } = scope.imports[name]; + const sourceScope = importSourceToScope(ctx, node, scope, source); + return resolveTypeReference(ctx, node, sourceScope, imported, true); +} +function importSourceToScope(ctx, node, scope, source) { + let fs; + try { + fs = resolveFS(ctx); + } catch (err) { + return ctx.error(err.message, node, scope); + } + if (!fs) { + return ctx.error( + `No fs option provided to \`compileScript\` in non-Node environment. File system access is required for resolving imported types.`, + node, + scope + ); + } + let resolved = scope.resolvedImportSources[source]; + if (!resolved) { + if (source.startsWith("..")) { + const osSpecificJoinFn = process__namespace.platform === "win32" ? path$1.join : joinPaths; + const filename = osSpecificJoinFn(path$1.dirname(scope.filename), source); + resolved = resolveExt(filename, fs); + } else if (source[0] === ".") { + const filename = joinPaths(path$1.dirname(scope.filename), source); + resolved = resolveExt(filename, fs); + } else { + if (!ts) { + if (loadTS) ts = loadTS(); + if (!ts) { + return ctx.error( + `Failed to resolve import source ${JSON.stringify(source)}. TypeScript is required as a peer dep for vue in order to support resolving types from module imports.`, + node, + scope + ); + } + } + resolved = resolveWithTS(scope.filename, source, ts, fs); + } + if (resolved) { + resolved = scope.resolvedImportSources[source] = normalizePath(resolved); + } + } + if (resolved) { + (ctx.deps || (ctx.deps = /* @__PURE__ */ new Set())).add(resolved); + return fileToScope(ctx, resolved); + } else { + return ctx.error( + `Failed to resolve import source ${JSON.stringify(source)}.`, + node, + scope + ); + } +} +function resolveExt(filename, fs) { + let moduleType = "u"; + if (filename.endsWith(".mjs")) { + moduleType = "m"; + } else if (filename.endsWith(".cjs")) { + moduleType = "c"; + } + filename = filename.replace(/\.[cm]?jsx?$/, ""); + const tryResolve = (filename2) => { + if (fs.fileExists(filename2)) return filename2; + }; + const resolveTs = () => tryResolve(filename + `.ts`) || tryResolve(filename + `.tsx`) || tryResolve(filename + `.d.ts`); + const resolveMts = () => tryResolve(filename + `.mts`) || tryResolve(filename + `.d.mts`); + const resolveCts = () => tryResolve(filename + `.cts`) || tryResolve(filename + `.d.cts`); + return tryResolve(filename) || // For explicit .mjs/.cjs imports, prefer .mts/.cts declarations first. + (moduleType === "m" ? resolveMts() || resolveTs() : moduleType === "c" ? resolveCts() || resolveTs() : resolveTs() || resolveMts() || resolveCts()) || tryResolve(joinPaths(filename, `index.ts`)) || tryResolve(joinPaths(filename, `index.tsx`)) || tryResolve(joinPaths(filename, `index.d.ts`)); +} +const tsConfigCache = createCache(); +const tsConfigRefMap = /* @__PURE__ */ new Map(); +function resolveWithTS(containingFile, source, ts2, fs) { + var _a, _b; + const configPath = ts2.findConfigFile(containingFile, fs.fileExists); + let tsCompilerOptions; + let tsResolveCache; + if (configPath) { + let configs; + const normalizedConfigPath = normalizePath(configPath); + const cached = tsConfigCache.get(normalizedConfigPath); + if (!cached) { + configs = loadTSConfig(configPath, ts2, fs).map((config) => ({ config })); + tsConfigCache.set(normalizedConfigPath, configs); + } else { + configs = cached; + } + let matchedConfig; + if (configs.length === 1) { + matchedConfig = configs[0]; + } else { + const [major, minor] = ts2.versionMajorMinor.split(".").map(Number); + const getPattern = (base, p) => { + const supportsConfigDir = major > 5 || major === 5 && minor >= 5; + return p.startsWith("${configDir}") && supportsConfigDir ? normalizePath(p.replace("${configDir}", path$1.dirname(configPath))) : joinPaths(base, p); + }; + for (const c of configs) { + const base = normalizePath( + c.config.options.pathsBasePath || path$1.dirname(c.config.options.configFilePath) + ); + const included = (_a = c.config.raw) == null ? void 0 : _a.include; + const excluded = (_b = c.config.raw) == null ? void 0 : _b.exclude; + if (!included && (!base || containingFile.startsWith(base)) || (included == null ? void 0 : included.some((p) => minimatch(containingFile, getPattern(base, p))))) { + if (excluded && excluded.some((p) => minimatch(containingFile, getPattern(base, p)))) { + continue; + } + matchedConfig = c; + break; + } + } + if (!matchedConfig) { + matchedConfig = configs[configs.length - 1]; + } + } + tsCompilerOptions = matchedConfig.config.options; + tsResolveCache = matchedConfig.cache || (matchedConfig.cache = ts2.createModuleResolutionCache( + process__namespace.cwd(), + createGetCanonicalFileName(ts2.sys.useCaseSensitiveFileNames), + tsCompilerOptions + )); + } else { + tsCompilerOptions = {}; + } + const res = ts2.resolveModuleName( + source, + containingFile, + tsCompilerOptions, + fs, + tsResolveCache + ); + if (res.resolvedModule) { + let filename = res.resolvedModule.resolvedFileName; + if (filename.endsWith(".vue.ts") && !filename.endsWith(".d.vue.ts")) { + filename = filename.replace(/\.ts$/, ""); + } + return fs.realpath ? fs.realpath(filename) : filename; + } +} +function loadTSConfig(configPath, ts2, fs, visited = /* @__PURE__ */ new Set()) { + const parseConfigHost = ts2.sys; + const config = ts2.parseJsonConfigFileContent( + ts2.readConfigFile(configPath, fs.readFile).config, + parseConfigHost, + path$1.dirname(configPath), + void 0, + configPath + ); + const res = [config]; + visited.add(configPath); + if (config.projectReferences) { + for (const ref of config.projectReferences) { + const refPath = ts2.resolveProjectReferencePath(ref); + if (visited.has(refPath) || !fs.fileExists(refPath)) { + continue; + } + tsConfigRefMap.set(refPath, configPath); + res.unshift(...loadTSConfig(refPath, ts2, fs, visited)); + } + } + return res; +} +const fileToScopeCache = createCache(); +function invalidateTypeCache(filename) { + filename = normalizePath(filename); + fileToScopeCache.delete(filename); + tsConfigCache.delete(filename); + const affectedConfig = tsConfigRefMap.get(filename); + if (affectedConfig) tsConfigCache.delete(affectedConfig); +} +function fileToScope(ctx, filename, asGlobal = false) { + const cached = fileToScopeCache.get(filename); + if (cached) { + return cached; + } + const fs = resolveFS(ctx); + const source = fs.readFile(filename) || ""; + const body = parseFile(filename, source, fs, ctx.options.babelParserPlugins); + const scope = new TypeScope(filename, source, 0, recordImports(body)); + recordTypes(ctx, body, scope, asGlobal); + fileToScopeCache.set(filename, scope); + return scope; +} +function parseFile(filename, content, fs, parserPlugins) { + const ext = path$1.extname(filename); + if (ext === ".ts" || ext === ".mts" || ext === ".tsx" || ext === ".cts" || ext === ".mtsx") { + return parser$2.parse(content, { + plugins: resolveParserPlugins( + ext.slice(1), + parserPlugins, + /\.d\.[cm]?ts$/.test(filename) + ), + sourceType: "module" + }).program.body; + } + const isUnknownTypeSource = !/\.[cm]?[tj]sx?$/.test(filename); + const arbitraryTypeSource = `${filename.slice(0, -ext.length)}.d${ext}.ts`; + const hasArbitraryTypeDeclaration = isUnknownTypeSource && fs.fileExists(arbitraryTypeSource); + if (hasArbitraryTypeDeclaration) { + return parser$2.parse(fs.readFile(arbitraryTypeSource), { + plugins: resolveParserPlugins("ts", parserPlugins, true), + sourceType: "module" + }).program.body; + } + if (ext === ".vue") { + const { + descriptor: { script, scriptSetup } + } = parse$1(content); + if (!script && !scriptSetup) { + return []; + } + const scriptOffset = script ? script.loc.start.offset : Infinity; + const scriptSetupOffset = scriptSetup ? scriptSetup.loc.start.offset : Infinity; + const firstBlock = scriptOffset < scriptSetupOffset ? script : scriptSetup; + const secondBlock = scriptOffset < scriptSetupOffset ? scriptSetup : script; + let scriptContent = " ".repeat(Math.min(scriptOffset, scriptSetupOffset)) + firstBlock.content; + if (secondBlock) { + scriptContent += " ".repeat(secondBlock.loc.start.offset - script.loc.end.offset) + secondBlock.content; + } + const lang = (script == null ? void 0 : script.lang) || (scriptSetup == null ? void 0 : scriptSetup.lang); + return parser$2.parse(scriptContent, { + plugins: resolveParserPlugins(lang, parserPlugins), + sourceType: "module" + }).program.body; + } + return []; +} +function ctxToScope(ctx) { + if (ctx.scope) { + return ctx.scope; + } + const body = "ast" in ctx ? ctx.ast : ctx.scriptAst ? [...ctx.scriptAst.body, ...ctx.scriptSetupAst.body] : ctx.scriptSetupAst.body; + const scope = new TypeScope( + ctx.filename, + ctx.source, + "startOffset" in ctx ? ctx.startOffset : 0, + "userImports" in ctx ? Object.create(ctx.userImports) : recordImports(body) + ); + recordTypes(ctx, body, scope); + return ctx.scope = scope; +} +function moduleDeclToScope(ctx, node, parentScope) { + if (node._resolvedChildScope) { + return node._resolvedChildScope; + } + const scope = createChildScope(parentScope); + if (node.body.type === "TSModuleDeclaration") { + const decl = node.body; + decl._ownerScope = scope; + const id = getId(decl.id); + scope.types[id] = scope.exportedTypes[id] = decl; + } else { + recordTypes(ctx, node.body.body, scope); + } + return node._resolvedChildScope = scope; +} +function createChildScope(parentScope) { + return new TypeScope( + parentScope.filename, + parentScope.source, + parentScope.offset, + Object.create(parentScope.imports), + Object.create(parentScope.types), + Object.create(parentScope.declares) + ); +} +const importExportRE = /^Import|^Export/; +function recordTypes(ctx, body, scope, asGlobal = false) { + const { types, declares, exportedTypes, exportedDeclares, imports } = scope; + const isAmbient = asGlobal ? !body.some((s) => importExportRE.test(s.type)) : false; + for (const stmt of body) { + if (asGlobal) { + if (isAmbient) { + if (stmt.declare) { + recordType(stmt, types, declares); + } + } else if (stmt.type === "TSModuleDeclaration" && stmt.global) { + for (const s of stmt.body.body) { + if (s.type === "ExportNamedDeclaration" && s.declaration) { + recordType(s.declaration, types, declares); + } else { + recordType(s, types, declares); + } + } + } + } else { + recordType(stmt, types, declares); + } + } + if (!asGlobal) { + for (const stmt of body) { + if (stmt.type === "ExportNamedDeclaration") { + if (stmt.declaration) { + recordType(stmt.declaration, types, declares); + recordType(stmt.declaration, exportedTypes, exportedDeclares); + } else { + for (const spec of stmt.specifiers) { + if (spec.type === "ExportSpecifier") { + const local = spec.local.name; + const exported = getId(spec.exported); + if (stmt.source) { + imports[exported] = { + source: stmt.source.value, + imported: local + }; + exportedTypes[exported] = { + type: "TSTypeReference", + typeName: { + type: "Identifier", + name: local + }, + _ownerScope: scope + }; + } else if (types[local]) { + exportedTypes[exported] = types[local]; + } + } + } + } + } else if (stmt.type === "ExportAllDeclaration") { + const sourceScope = importSourceToScope( + ctx, + stmt.source, + scope, + stmt.source.value + ); + Object.assign(scope.exportedTypes, sourceScope.exportedTypes); + } else if (stmt.type === "ExportDefaultDeclaration" && stmt.declaration) { + if (stmt.declaration.type !== "Identifier") { + recordType(stmt.declaration, types, declares, "default"); + recordType( + stmt.declaration, + exportedTypes, + exportedDeclares, + "default" + ); + } else if (types[stmt.declaration.name]) { + exportedTypes["default"] = types[stmt.declaration.name]; + } + } + } + } + for (const key of Object.keys(types)) { + const node = types[key]; + node._ownerScope = scope; + if (node._ns) node._ns._ownerScope = scope; + } + for (const key of Object.keys(declares)) { + declares[key]._ownerScope = scope; + } +} +function recordType(node, types, declares, overwriteId) { + switch (node.type) { + case "TSInterfaceDeclaration": + case "TSEnumDeclaration": + case "TSModuleDeclaration": { + if (node.type === "TSModuleDeclaration" && node.global) { + const body = node.body; + for (const s of body.body) { + if (s.type === "ExportNamedDeclaration" && s.declaration) { + recordType(s.declaration, types, declares); + } else { + recordType(s, types, declares); + } + } + break; + } + const id = overwriteId || getId(node.id); + let existing = types[id]; + if (existing) { + if (node.type === "TSModuleDeclaration") { + if (existing.type === "TSModuleDeclaration") { + mergeNamespaces(existing, node); + } else { + attachNamespace(existing, node); + } + break; + } + if (existing.type === "TSModuleDeclaration") { + types[id] = node; + attachNamespace(node, existing); + break; + } + if (existing.type !== node.type) { + break; + } + if (node.type === "TSInterfaceDeclaration") { + existing.body.body.push(...node.body.body); + } else { + existing.members.push(...node.members); + } + } else { + types[id] = node; + } + break; + } + case "ClassDeclaration": + if (overwriteId || node.id) types[overwriteId || getId(node.id)] = node; + break; + case "TSTypeAliasDeclaration": + types[node.id.name] = node.typeParameters ? node : node.typeAnnotation; + break; + case "TSDeclareFunction": + if (node.id) declares[node.id.name] = node; + break; + case "VariableDeclaration": { + if (node.declare) { + for (const decl of node.declarations) { + if (decl.id.type === "Identifier" && decl.id.typeAnnotation) { + declares[decl.id.name] = decl.id.typeAnnotation.typeAnnotation; + } + } + } + break; + } + } +} +function mergeNamespaces(to, from) { + const toBody = to.body; + const fromBody = from.body; + if (toBody.type === "TSModuleDeclaration") { + if (fromBody.type === "TSModuleDeclaration") { + mergeNamespaces(toBody, fromBody); + } else { + fromBody.body.push({ + type: "ExportNamedDeclaration", + declaration: toBody, + exportKind: "type", + specifiers: [] + }); + } + } else if (fromBody.type === "TSModuleDeclaration") { + toBody.body.push({ + type: "ExportNamedDeclaration", + declaration: fromBody, + exportKind: "type", + specifiers: [] + }); + } else { + toBody.body.push(...fromBody.body); + } +} +function attachNamespace(to, ns) { + if (!to._ns) { + to._ns = ns; + } else { + mergeNamespaces(to._ns, ns); + } +} +function recordImports(body) { + const imports = /* @__PURE__ */ Object.create(null); + for (const s of body) { + recordImport(s, imports); + } + return imports; +} +function recordImport(node, imports) { + if (node.type !== "ImportDeclaration") { + return; + } + for (const s of node.specifiers) { + imports[s.local.name] = { + imported: getImportedName(s), + source: node.source.value + }; + } +} +function inferRuntimeType(ctx, node, scope = node._ownerScope || ctxToScope(ctx), isKeyOf = false, typeParameters) { + if (node.leadingComments && node.leadingComments.some((c) => c.value.includes("@vue-ignore"))) { + return [UNKNOWN_TYPE]; + } + const prevSilent = ctx.silentOnExtendsFailure; + ctx.silentOnExtendsFailure = true; + try { + switch (node.type) { + case "TSStringKeyword": + return ["String"]; + case "TSNumberKeyword": + return ["Number"]; + case "TSBooleanKeyword": + return ["Boolean"]; + case "TSObjectKeyword": + return ["Object"]; + case "TSNullKeyword": + return ["null"]; + case "TSTypeLiteral": + case "TSInterfaceDeclaration": { + const types = /* @__PURE__ */ new Set(); + const members = node.type === "TSTypeLiteral" ? node.members : node.body.body; + for (const m of members) { + if (isKeyOf) { + if (m.type === "TSPropertySignature" && m.key.type === "NumericLiteral") { + types.add("Number"); + } else if (m.type === "TSIndexSignature") { + const annotation = m.parameters[0].typeAnnotation; + if (annotation && annotation.type !== "Noop") { + const type = inferRuntimeType( + ctx, + annotation.typeAnnotation, + scope + )[0]; + if (type === UNKNOWN_TYPE) return [UNKNOWN_TYPE]; + types.add(type); + } + } else { + types.add("String"); + } + } else if (m.type === "TSCallSignatureDeclaration" || m.type === "TSConstructSignatureDeclaration") { + types.add("Function"); + } else { + types.add("Object"); + } + } + return types.size ? Array.from(types) : [isKeyOf ? UNKNOWN_TYPE : "Object"]; + } + case "TSPropertySignature": + if (node.typeAnnotation) { + return inferRuntimeType( + ctx, + node.typeAnnotation.typeAnnotation, + scope + ); + } + break; + case "TSMethodSignature": + case "TSFunctionType": + return ["Function"]; + case "TSArrayType": + case "TSTupleType": + return ["Array"]; + case "TSLiteralType": + switch (node.literal.type) { + case "StringLiteral": + return ["String"]; + case "BooleanLiteral": + return ["Boolean"]; + case "NumericLiteral": + case "BigIntLiteral": + return ["Number"]; + default: + return [UNKNOWN_TYPE]; + } + case "TSTypeReference": { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + if (resolved.type === "TSTypeAliasDeclaration") { + if (resolved.typeAnnotation.type === "TSFunctionType") { + return ["Function"]; + } + if (node.typeParameters) { + const typeParams = /* @__PURE__ */ Object.create(null); + if (resolved.typeParameters) { + resolved.typeParameters.params.forEach((p, i) => { + typeParams[p.name] = node.typeParameters.params[i]; + }); + } + return inferRuntimeType( + ctx, + resolved.typeAnnotation, + resolved._ownerScope, + isKeyOf, + typeParams + ); + } + } + return inferRuntimeType(ctx, resolved, resolved._ownerScope, isKeyOf); + } + if (node.typeName.type === "Identifier") { + if (typeParameters && typeParameters[node.typeName.name]) { + return inferRuntimeType( + ctx, + typeParameters[node.typeName.name], + scope, + isKeyOf, + typeParameters + ); + } + if (isKeyOf) { + switch (node.typeName.name) { + case "String": + case "Array": + case "ArrayLike": + case "Parameters": + case "ConstructorParameters": + case "ReadonlyArray": + return ["String", "Number"]; + // TS built-in utility types + case "Record": + case "Partial": + case "Required": + case "Readonly": + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[0], + scope, + true + ); + } + break; + case "Pick": + case "Extract": + if (node.typeParameters && node.typeParameters.params[1]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[1], + scope + ); + } + break; + case "Function": + case "Object": + case "Set": + case "Map": + case "WeakSet": + case "WeakMap": + case "Date": + case "Promise": + case "Error": + case "Uppercase": + case "Lowercase": + case "Capitalize": + case "Uncapitalize": + case "ReadonlyMap": + case "ReadonlySet": + return ["String"]; + } + } else { + switch (node.typeName.name) { + case "Array": + case "Function": + case "Object": + case "Set": + case "Map": + case "WeakSet": + case "WeakMap": + case "Date": + case "Promise": + case "Error": + return [node.typeName.name]; + // TS built-in utility types + // https://www.typescriptlang.org/docs/handbook/utility-types.html + case "Partial": + case "Required": + case "Readonly": + case "Record": + case "Pick": + case "Omit": + case "InstanceType": + return ["Object"]; + case "Uppercase": + case "Lowercase": + case "Capitalize": + case "Uncapitalize": + return ["String"]; + case "Parameters": + case "ConstructorParameters": + case "ReadonlyArray": + return ["Array"]; + case "ReadonlyMap": + return ["Map"]; + case "ReadonlySet": + return ["Set"]; + case "NonNullable": + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[0], + scope + ).filter((t) => t !== "null"); + } + break; + case "Extract": + if (node.typeParameters && node.typeParameters.params[1]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[1], + scope + ); + } + break; + case "Exclude": + case "OmitThisParameter": + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[0], + scope + ); + } + break; + } + } + } + break; + } + case "TSParenthesizedType": + return inferRuntimeType(ctx, node.typeAnnotation, scope); + case "TSUnionType": + return flattenTypes(ctx, node.types, scope, isKeyOf, typeParameters); + case "TSIntersectionType": { + return flattenTypes( + ctx, + node.types, + scope, + isKeyOf, + typeParameters + ).filter((t) => t !== UNKNOWN_TYPE); + } + case "TSMappedType": { + const { typeAnnotation, typeParameter } = node; + if (typeAnnotation && typeAnnotation.type === "TSIndexedAccessType" && typeParameter && typeParameter.constraint && typeParameters) { + const constraint = typeParameter.constraint; + if (constraint.type === "TSTypeOperator" && constraint.operator === "keyof" && constraint.typeAnnotation && constraint.typeAnnotation.type === "TSTypeReference" && constraint.typeAnnotation.typeName.type === "Identifier") { + const typeName = constraint.typeAnnotation.typeName.name; + const index = typeAnnotation.indexType; + const obj = typeAnnotation.objectType; + if (obj && obj.type === "TSTypeReference" && obj.typeName.type === "Identifier" && obj.typeName.name === typeName && index && index.type === "TSTypeReference" && index.typeName.type === "Identifier" && index.typeName.name === typeParameter.name) { + const targetType = typeParameters[typeName]; + if (targetType) { + return inferRuntimeType(ctx, targetType, scope); + } + } + } + } + return [UNKNOWN_TYPE]; + } + case "TSEnumDeclaration": + return inferEnumType(node); + case "TSSymbolKeyword": + return ["Symbol"]; + case "TSIndexedAccessType": { + const types = resolveIndexType(ctx, node, scope); + return flattenTypes(ctx, types, scope, isKeyOf); + } + case "ClassDeclaration": + return ["Object"]; + case "TSImportType": { + const sourceScope = importSourceToScope( + ctx, + node.argument, + scope, + node.argument.value + ); + const resolved = resolveTypeReference(ctx, node, sourceScope); + if (resolved) { + return inferRuntimeType(ctx, resolved, resolved._ownerScope); + } + break; + } + case "TSTypeQuery": { + const id = node.exprName; + if (id.type === "Identifier") { + const matched = scope.declares[id.name]; + if (matched) { + return inferRuntimeType(ctx, matched, matched._ownerScope, isKeyOf); + } + } + break; + } + // e.g. readonly + case "TSTypeOperator": { + return inferRuntimeType( + ctx, + node.typeAnnotation, + scope, + node.operator === "keyof" + ); + } + case "TSAnyKeyword": { + if (isKeyOf) { + return ["String", "Number", "Symbol"]; + } + break; + } + } + } catch (e) { + } finally { + ctx.silentOnExtendsFailure = prevSilent; + } + return [UNKNOWN_TYPE]; +} +function flattenTypes(ctx, types, scope, isKeyOf = false, typeParameters = void 0) { + if (types.length === 1) { + return inferRuntimeType( + ctx, + types[0], + types[0]._ownerScope || scope, + isKeyOf, + typeParameters + ); + } + return [ + ...new Set( + [].concat( + ...types.map( + (t) => inferRuntimeType( + ctx, + t, + t._ownerScope || scope, + isKeyOf, + typeParameters + ) + ) + ) + ) + ]; +} +function inferEnumType(node) { + const types = /* @__PURE__ */ new Set(); + for (const m of node.members) { + if (m.initializer) { + switch (m.initializer.type) { + case "StringLiteral": + types.add("String"); + break; + case "NumericLiteral": + types.add("Number"); + break; + } + } + } + return types.size ? [...types] : ["Number"]; +} +function resolveExtractPropTypes({ props }, scope) { + const res = { props: {} }; + for (const key in props) { + const raw = props[key]; + res.props[key] = reverseInferType( + raw.key, + raw.typeAnnotation.typeAnnotation, + scope + ); + } + return res; +} +function reverseInferType(key, node, scope, optional = true, checkObjectSyntax = true) { + if (checkObjectSyntax && node.type === "TSTypeLiteral") { + const typeType = findStaticPropertyType(node, "type"); + if (typeType) { + const requiredType = findStaticPropertyType(node, "required"); + const optional2 = requiredType && requiredType.type === "TSLiteralType" && requiredType.literal.type === "BooleanLiteral" ? !requiredType.literal.value : true; + return reverseInferType(key, typeType, scope, optional2, false); + } + } else if (node.type === "TSTypeReference" && node.typeName.type === "Identifier") { + if (node.typeName.name.endsWith("Constructor")) { + return createProperty( + key, + ctorToType(node.typeName.name), + scope, + optional + ); + } else if (node.typeName.name === "PropType" && node.typeParameters) { + return createProperty(key, node.typeParameters.params[0], scope, optional); + } + } + if ((node.type === "TSTypeReference" || node.type === "TSImportType") && node.typeParameters) { + for (const t of node.typeParameters.params) { + const inferred = reverseInferType(key, t, scope, optional); + if (inferred) return inferred; + } + } + return createProperty(key, { type: `TSNullKeyword` }, scope, optional); +} +function ctorToType(ctorType) { + const ctor = ctorType.slice(0, -11); + switch (ctor) { + case "String": + case "Number": + case "Boolean": + return { type: `TS${ctor}Keyword` }; + case "Array": + case "Function": + case "Object": + case "Set": + case "Map": + case "WeakSet": + case "WeakMap": + case "Date": + case "Promise": + return { + type: "TSTypeReference", + typeName: { type: "Identifier", name: ctor } + }; + } + return { type: `TSNullKeyword` }; +} +function findStaticPropertyType(node, key) { + const prop = node.members.find( + (m) => m.type === "TSPropertySignature" && getStringLiteralKey(m) === key && m.typeAnnotation + ); + return prop && prop.typeAnnotation.typeAnnotation; +} +function resolveReturnType(ctx, arg, scope) { + var _a; + let resolved = arg; + if (arg.type === "TSTypeReference" || arg.type === "TSTypeQuery" || arg.type === "TSImportType") { + resolved = resolveTypeReference(ctx, arg, scope); + } + if (!resolved) return; + if (resolved.type === "TSFunctionType") { + return (_a = resolved.typeAnnotation) == null ? void 0 : _a.typeAnnotation; + } + if (resolved.type === "TSDeclareFunction") { + return resolved.returnType; + } +} +function resolveUnionType(ctx, node, scope) { + if (node.type === "TSTypeReference") { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) node = resolved; + } + let types; + if (node.type === "TSUnionType") { + types = node.types.flatMap((node2) => resolveUnionType(ctx, node2, scope)); + } else { + types = [node]; + } + return types; +} + +const DEFINE_MODEL = "defineModel"; +function processDefineModel(ctx, node, declId) { + if (!isCallOf(node, DEFINE_MODEL)) { + return false; + } + ctx.hasDefineModelCall = true; + const type = node.typeParameters && node.typeParameters.params[0] || void 0; + let modelName; + let options; + const arg0 = node.arguments[0] && CompilerDOM.unwrapTSNode(node.arguments[0]); + const hasName = arg0 && arg0.type === "StringLiteral"; + if (hasName) { + modelName = arg0.value; + options = node.arguments[1]; + } else { + modelName = "modelValue"; + options = arg0; + } + if (ctx.modelDecls[modelName]) { + ctx.error(`duplicate model name ${JSON.stringify(modelName)}`, node); + } + let optionsString = options && ctx.getString(options); + let optionsRemoved = !options; + const runtimeOptionNodes = []; + if (options && options.type === "ObjectExpression" && !options.properties.some((p) => p.type === "SpreadElement" || p.computed)) { + let removed = 0; + for (let i = options.properties.length - 1; i >= 0; i--) { + const p = options.properties[i]; + const next = options.properties[i + 1]; + const start = p.start; + const end = next ? next.start : options.end - 1; + if ((p.type === "ObjectProperty" || p.type === "ObjectMethod") && (p.key.type === "Identifier" && (p.key.name === "get" || p.key.name === "set") || p.key.type === "StringLiteral" && (p.key.value === "get" || p.key.value === "set"))) { + optionsString = optionsString.slice(0, start - options.start) + optionsString.slice(end - options.start); + } else { + removed++; + ctx.s.remove(ctx.startOffset + start, ctx.startOffset + end); + runtimeOptionNodes.push(p); + } + } + if (removed === options.properties.length) { + optionsRemoved = true; + ctx.s.remove( + ctx.startOffset + (hasName ? arg0.end : options.start), + ctx.startOffset + options.end + ); + } + } + ctx.modelDecls[modelName] = { + type, + options: optionsString, + runtimeOptionNodes, + identifier: declId && declId.type === "Identifier" ? declId.name : void 0 + }; + ctx.bindingMetadata[modelName] = "props"; + ctx.s.overwrite( + ctx.startOffset + node.callee.start, + ctx.startOffset + node.callee.end, + ctx.helper("useModel") + ); + ctx.s.appendLeft( + ctx.startOffset + (node.arguments.length ? node.arguments[0].start : node.end - 1), + `__props, ` + (hasName ? `` : `${JSON.stringify(modelName)}${optionsRemoved ? `` : `, `}`) + ); + return true; +} +function genModelProps(ctx) { + if (!ctx.hasDefineModelCall) return; + const isProd = !!ctx.options.isProd; + let modelPropsDecl = ""; + for (const [name, { type, options: runtimeOptions }] of Object.entries( + ctx.modelDecls + )) { + let skipCheck = false; + let codegenOptions = ``; + let runtimeTypes = type && inferRuntimeType(ctx, type); + if (runtimeTypes) { + const hasBoolean = runtimeTypes.includes("Boolean"); + const hasFunction = runtimeTypes.includes("Function"); + const hasUnknownType = runtimeTypes.includes(UNKNOWN_TYPE); + if (hasUnknownType) { + if (hasBoolean || hasFunction) { + runtimeTypes = runtimeTypes.filter((t) => t !== UNKNOWN_TYPE); + skipCheck = true; + } else { + runtimeTypes = ["null"]; + } + } + if (!isProd) { + codegenOptions = `type: ${toRuntimeTypeString(runtimeTypes)}` + (skipCheck ? ", skipCheck: true" : ""); + } else if (hasBoolean || runtimeOptions && hasFunction) { + codegenOptions = `type: ${toRuntimeTypeString(runtimeTypes)}`; + } else ; + } + let decl; + if (codegenOptions && runtimeOptions) { + decl = ctx.isTS ? `{ ${codegenOptions}, ...${runtimeOptions} }` : `Object.assign({ ${codegenOptions} }, ${runtimeOptions})`; + } else if (codegenOptions) { + decl = `{ ${codegenOptions} }`; + } else if (runtimeOptions) { + decl = runtimeOptions; + } else { + decl = `{}`; + } + modelPropsDecl += ` + ${JSON.stringify(name)}: ${decl},`; + const modifierPropName = JSON.stringify( + name === "modelValue" ? `modelModifiers` : `${name}Modifiers` + ); + modelPropsDecl += ` + ${modifierPropName}: {},`; + } + return `{${modelPropsDecl} + }`; +} + +const DEFINE_PROPS = "defineProps"; +const WITH_DEFAULTS = "withDefaults"; +function processDefineProps(ctx, node, declId, isWithDefaults = false) { + if (!isCallOf(node, DEFINE_PROPS)) { + return processWithDefaults(ctx, node, declId); + } + if (ctx.hasDefinePropsCall) { + ctx.error(`duplicate ${DEFINE_PROPS}() call`, node); + } + ctx.hasDefinePropsCall = true; + ctx.propsRuntimeDecl = node.arguments[0]; + if (ctx.propsRuntimeDecl) { + for (const key of getObjectOrArrayExpressionKeys(ctx.propsRuntimeDecl)) { + if (!(key in ctx.bindingMetadata)) { + ctx.bindingMetadata[key] = "props"; + } + } + } + if (node.typeParameters) { + if (ctx.propsRuntimeDecl) { + ctx.error( + `${DEFINE_PROPS}() cannot accept both type and non-type arguments at the same time. Use one or the other.`, + node + ); + } + ctx.propsTypeDecl = node.typeParameters.params[0]; + } + if (!isWithDefaults && declId && declId.type === "ObjectPattern") { + processPropsDestructure(ctx, declId); + } + ctx.propsCall = node; + ctx.propsDecl = declId; + return true; +} +function processWithDefaults(ctx, node, declId) { + if (!isCallOf(node, WITH_DEFAULTS)) { + return false; + } + if (!processDefineProps( + ctx, + node.arguments[0], + declId, + true + )) { + ctx.error( + `${WITH_DEFAULTS}' first argument must be a ${DEFINE_PROPS} call.`, + node.arguments[0] || node + ); + } + if (ctx.propsRuntimeDecl) { + ctx.error( + `${WITH_DEFAULTS} can only be used with type-based ${DEFINE_PROPS} declaration.`, + node + ); + } + if (declId && declId.type === "ObjectPattern") { + ctx.warn( + `${WITH_DEFAULTS}() is unnecessary when using destructure with ${DEFINE_PROPS}(). +Reactive destructure will be disabled when using withDefaults(). +Prefer using destructure default values, e.g. const { foo = 1 } = defineProps(...). `, + node.callee + ); + } + ctx.propsRuntimeDefaults = node.arguments[1]; + if (!ctx.propsRuntimeDefaults) { + ctx.error(`The 2nd argument of ${WITH_DEFAULTS} is required.`, node); + } + ctx.propsCall = node; + return true; +} +function genRuntimeProps(ctx) { + let propsDecls; + if (ctx.propsRuntimeDecl) { + propsDecls = ctx.getString(ctx.propsRuntimeDecl).trim(); + if (ctx.propsDestructureDecl) { + const defaults = []; + for (const key in ctx.propsDestructuredBindings) { + const d = genDestructuredDefaultValue(ctx, key); + const finalKey = getEscapedPropName(key); + if (d) + defaults.push( + `${finalKey}: ${d.valueString}${d.needSkipFactory ? `, __skip_${finalKey}: true` : ``}` + ); + } + if (defaults.length) { + propsDecls = `/*@__PURE__*/${ctx.helper( + `mergeDefaults` + )}(${propsDecls}, { + ${defaults.join(",\n ")} +})`; + } + } + } else if (ctx.propsTypeDecl) { + propsDecls = extractRuntimeProps(ctx); + } + const modelsDecls = genModelProps(ctx); + if (propsDecls && modelsDecls) { + return `/*@__PURE__*/${ctx.helper( + "mergeModels" + )}(${propsDecls}, ${modelsDecls})`; + } else { + return modelsDecls || propsDecls; + } +} +function extractRuntimeProps(ctx) { + const props = resolveRuntimePropsFromType(ctx, ctx.propsTypeDecl); + if (!props.length) { + return; + } + const propStrings = []; + const hasStaticDefaults = hasStaticWithDefaults(ctx); + for (const prop of props) { + propStrings.push(genRuntimePropFromType(ctx, prop, hasStaticDefaults)); + if ("bindingMetadata" in ctx && !(prop.key in ctx.bindingMetadata)) { + ctx.bindingMetadata[prop.key] = "props"; + } + } + let propsDecls = `{ + ${propStrings.join(",\n ")} + }`; + if (ctx.propsRuntimeDefaults && !hasStaticDefaults) { + propsDecls = `/*@__PURE__*/${ctx.helper( + "mergeDefaults" + )}(${propsDecls}, ${ctx.getString(ctx.propsRuntimeDefaults)})`; + } + return propsDecls; +} +function resolveRuntimePropsFromType(ctx, node) { + const props = []; + const elements = resolveTypeElements(ctx, node); + for (const key in elements.props) { + const e = elements.props[key]; + let type = inferRuntimeType(ctx, e); + let skipCheck = false; + if (type.includes(UNKNOWN_TYPE)) { + if (type.includes("Boolean") || type.includes("Function")) { + type = type.filter((t) => t !== UNKNOWN_TYPE); + skipCheck = true; + } else { + type = ["null"]; + } + } + props.push({ + key, + required: !e.optional, + type: type || [`null`], + skipCheck + }); + } + return props; +} +function genRuntimePropFromType(ctx, { key, required, type, skipCheck }, hasStaticDefaults) { + let defaultString; + const destructured = genDestructuredDefaultValue(ctx, key, type); + if (destructured) { + defaultString = `default: ${destructured.valueString}${destructured.needSkipFactory ? `, skipFactory: true` : ``}`; + } else if (hasStaticDefaults) { + const prop = ctx.propsRuntimeDefaults.properties.find( + (node) => { + if (node.type === "SpreadElement") return false; + return resolveObjectKey(node.key, node.computed) === key; + } + ); + if (prop) { + if (prop.type === "ObjectProperty") { + defaultString = `default: ${ctx.getString(prop.value)}`; + } else { + let paramsString = ""; + if (prop.params.length) { + const start = prop.params[0].start; + const end = prop.params[prop.params.length - 1].end; + paramsString = ctx.getString({ start, end }); + } + defaultString = `${prop.async ? "async " : ""}${prop.kind !== "method" ? `${prop.kind} ` : ""}default(${paramsString}) ${ctx.getString(prop.body)}`; + } + } + } + const finalKey = getEscapedPropName(key); + if (!ctx.options.isProd) { + return `${finalKey}: { ${concatStrings([ + `type: ${toRuntimeTypeString(type)}`, + `required: ${required}`, + skipCheck && "skipCheck: true", + defaultString + ])} }`; + } else if (type.some( + (el) => el === "Boolean" || (!hasStaticDefaults || defaultString) && el === "Function" + )) { + return `${finalKey}: { ${concatStrings([ + `type: ${toRuntimeTypeString(type)}`, + defaultString + ])} }`; + } else { + if (ctx.isCE) { + if (defaultString) { + return `${finalKey}: ${`{ ${defaultString}, type: ${toRuntimeTypeString( + type + )} }`}`; + } else { + return `${finalKey}: {type: ${toRuntimeTypeString(type)}}`; + } + } + return `${finalKey}: ${defaultString ? `{ ${defaultString} }` : `{}`}`; + } +} +function hasStaticWithDefaults(ctx) { + return !!(ctx.propsRuntimeDefaults && ctx.propsRuntimeDefaults.type === "ObjectExpression" && ctx.propsRuntimeDefaults.properties.every( + (node) => node.type !== "SpreadElement" && (!node.computed || node.key.type.endsWith("Literal")) + )); +} +function genDestructuredDefaultValue(ctx, key, inferredType) { + const destructured = ctx.propsDestructuredBindings[key]; + const defaultVal = destructured && destructured.default; + if (defaultVal) { + const value = ctx.getString(defaultVal); + const unwrapped = CompilerDOM.unwrapTSNode(defaultVal); + if (inferredType && inferredType.length && !inferredType.includes("null")) { + const valueType = inferValueType(unwrapped); + if (valueType && !inferredType.includes(valueType)) { + ctx.error( + `Default value of prop "${key}" does not match declared type.`, + unwrapped + ); + } + } + const needSkipFactory = !inferredType && (CompilerDOM.isFunctionType(unwrapped) || unwrapped.type === "Identifier"); + const needFactoryWrap = !needSkipFactory && !isLiteralNode(unwrapped) && !(inferredType == null ? void 0 : inferredType.includes("Function")); + return { + valueString: needFactoryWrap ? `() => (${value})` : value, + needSkipFactory + }; + } +} +function inferValueType(node) { + switch (node.type) { + case "StringLiteral": + return "String"; + case "NumericLiteral": + return "Number"; + case "BooleanLiteral": + return "Boolean"; + case "ObjectExpression": + return "Object"; + case "ArrayExpression": + return "Array"; + case "FunctionExpression": + case "ArrowFunctionExpression": + return "Function"; + } +} + +function processPropsDestructure(ctx, declId) { + if (ctx.options.propsDestructure === "error") { + ctx.error(`Props destructure is explicitly prohibited via config.`, declId); + } else if (ctx.options.propsDestructure === false) { + return; + } + ctx.propsDestructureDecl = declId; + const registerBinding = (key, local, defaultValue) => { + ctx.propsDestructuredBindings[key] = { local, default: defaultValue }; + if (local !== key) { + ctx.bindingMetadata[local] = "props-aliased"; + (ctx.bindingMetadata.__propsAliases || (ctx.bindingMetadata.__propsAliases = {}))[local] = key; + } + }; + for (const prop of declId.properties) { + if (prop.type === "ObjectProperty") { + const propKey = resolveObjectKey(prop.key, prop.computed); + if (!propKey) { + ctx.error( + `${DEFINE_PROPS}() destructure cannot use computed key.`, + prop.key + ); + } + if (prop.value.type === "AssignmentPattern") { + const { left, right } = prop.value; + if (left.type !== "Identifier") { + ctx.error( + `${DEFINE_PROPS}() destructure does not support nested patterns.`, + left + ); + } + registerBinding(propKey, left.name, right); + } else if (prop.value.type === "Identifier") { + registerBinding(propKey, prop.value.name); + } else { + ctx.error( + `${DEFINE_PROPS}() destructure does not support nested patterns.`, + prop.value + ); + } + } else { + ctx.propsDestructureRestId = prop.argument.name; + ctx.bindingMetadata[ctx.propsDestructureRestId] = "setup-reactive-const"; + } + } +} +function transformDestructuredProps(ctx, vueImportAliases) { + if (ctx.options.propsDestructure === false) { + return; + } + const rootScope = /* @__PURE__ */ Object.create(null); + const scopeStack = [rootScope]; + let currentScope = rootScope; + const excludedIds = /* @__PURE__ */ new WeakSet(); + const parentStack = []; + const propsLocalToPublicMap = /* @__PURE__ */ Object.create(null); + for (const key in ctx.propsDestructuredBindings) { + const { local } = ctx.propsDestructuredBindings[key]; + rootScope[local] = true; + propsLocalToPublicMap[local] = key; + } + function pushScope() { + scopeStack.push(currentScope = Object.create(currentScope)); + } + function popScope() { + scopeStack.pop(); + currentScope = scopeStack[scopeStack.length - 1] || null; + } + function registerLocalBinding(id) { + excludedIds.add(id); + if (currentScope) { + currentScope[id.name] = false; + } else { + ctx.error( + "registerBinding called without active scope, something is wrong.", + id + ); + } + } + function walkScope(node, isRoot = false) { + for (const stmt of node.body) { + if (stmt.type === "VariableDeclaration") { + walkVariableDeclaration(stmt, isRoot); + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + registerLocalBinding(stmt.id); + } else if (stmt.type === "ExportNamedDeclaration" && stmt.declaration && stmt.declaration.type === "VariableDeclaration") { + walkVariableDeclaration(stmt.declaration, isRoot); + } else if (stmt.type === "LabeledStatement" && stmt.body.type === "VariableDeclaration") { + walkVariableDeclaration(stmt.body, isRoot); + } + } + } + function walkVariableDeclaration(stmt, isRoot = false) { + if (stmt.declare) { + return; + } + for (const decl of stmt.declarations) { + const isDefineProps = isRoot && decl.init && isCallOf(CompilerDOM.unwrapTSNode(decl.init), "defineProps"); + for (const id of CompilerDOM.extractIdentifiers(decl.id)) { + if (isDefineProps) { + excludedIds.add(id); + } else { + registerLocalBinding(id); + } + } + } + } + function rewriteId(id, parent, parentStack2) { + if (parent.type === "AssignmentExpression" && id === parent.left || parent.type === "UpdateExpression") { + ctx.error(`Cannot assign to destructured props as they are readonly.`, id); + } + if (CompilerDOM.isStaticProperty(parent) && parent.shorthand) { + if (!parent.inPattern || CompilerDOM.isInDestructureAssignment(parent, parentStack2)) { + ctx.s.appendLeft( + id.end + ctx.startOffset, + `: ${shared.genPropsAccessExp(propsLocalToPublicMap[id.name])}` + ); + } + } else { + ctx.s.overwrite( + id.start + ctx.startOffset, + id.end + ctx.startOffset, + shared.genPropsAccessExp(propsLocalToPublicMap[id.name]) + ); + } + } + function checkUsage(node, method, alias = method) { + if (isCallOf(node, alias)) { + const arg = CompilerDOM.unwrapTSNode(node.arguments[0]); + if (arg.type === "Identifier" && currentScope[arg.name]) { + ctx.error( + `"${arg.name}" is a destructured prop and should not be passed directly to ${method}(). Pass a getter () => ${arg.name} instead.`, + arg + ); + } + } + } + const ast = ctx.scriptSetupAst; + walkScope(ast, true); + estreeWalker.walk(ast, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !CompilerDOM.TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + checkUsage(node, "watch", vueImportAliases.watch); + checkUsage(node, "toRef", vueImportAliases.toRef); + if (CompilerDOM.isFunctionType(node)) { + pushScope(); + CompilerDOM.walkFunctionParams(node, registerLocalBinding); + if (node.body.type === "BlockStatement") { + walkScope(node.body); + } + return; + } + if (node.type === "CatchClause") { + pushScope(); + if (node.param && node.param.type === "Identifier") { + registerLocalBinding(node.param); + } + walkScope(node.body); + return; + } + if (node.type === "ForOfStatement" || node.type === "ForInStatement" || node.type === "ForStatement") { + pushScope(); + const varDecl = node.type === "ForStatement" ? node.init : node.left; + if (varDecl && varDecl.type === "VariableDeclaration") { + walkVariableDeclaration(varDecl); + } + if (node.body.type === "BlockStatement") { + walkScope(node.body); + } + return; + } + if (node.type === "BlockStatement" && !CompilerDOM.isFunctionType(parent)) { + pushScope(); + walkScope(node); + return; + } + if (node.type === "Identifier") { + if (CompilerDOM.isReferencedIdentifier(node, parent, parentStack) && !excludedIds.has(node)) { + if (currentScope[node.name]) { + rewriteId(node, parent, parentStack); + } + } + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node.type === "BlockStatement" && !CompilerDOM.isFunctionType(parent) || CompilerDOM.isFunctionType(node) || node.type === "CatchClause" || node.type === "ForOfStatement" || node.type === "ForInStatement" || node.type === "ForStatement") { + popScope(); + } + } + }); +} + +const DEFINE_EMITS = "defineEmits"; +function processDefineEmits(ctx, node, declId) { + if (!isCallOf(node, DEFINE_EMITS)) { + return false; + } + if (ctx.hasDefineEmitCall) { + ctx.error(`duplicate ${DEFINE_EMITS}() call`, node); + } + ctx.hasDefineEmitCall = true; + ctx.emitsRuntimeDecl = node.arguments[0]; + if (node.typeParameters) { + if (ctx.emitsRuntimeDecl) { + ctx.error( + `${DEFINE_EMITS}() cannot accept both type and non-type arguments at the same time. Use one or the other.`, + node + ); + } + ctx.emitsTypeDecl = node.typeParameters.params[0]; + } + ctx.emitDecl = declId; + return true; +} +function genRuntimeEmits(ctx) { + let emitsDecl = ""; + if (ctx.emitsRuntimeDecl) { + emitsDecl = ctx.getString(ctx.emitsRuntimeDecl).trim(); + } else if (ctx.emitsTypeDecl) { + const typeDeclaredEmits = extractRuntimeEmits(ctx); + emitsDecl = typeDeclaredEmits.size ? `[${Array.from(typeDeclaredEmits).map((k) => JSON.stringify(k)).join(", ")}]` : ``; + } + if (ctx.hasDefineModelCall) { + let modelEmitsDecl = `[${Object.keys(ctx.modelDecls).map((n) => JSON.stringify(`update:${n}`)).join(", ")}]`; + emitsDecl = emitsDecl ? `/*@__PURE__*/${ctx.helper( + "mergeModels" + )}(${emitsDecl}, ${modelEmitsDecl})` : modelEmitsDecl; + } + return emitsDecl; +} +function extractRuntimeEmits(ctx) { + const emits = /* @__PURE__ */ new Set(); + const node = ctx.emitsTypeDecl; + if (node.type === "TSFunctionType") { + extractEventNames(ctx, node.parameters[0], emits); + return emits; + } + const { props, calls } = resolveTypeElements(ctx, node); + let hasProperty = false; + for (const key in props) { + emits.add(key); + hasProperty = true; + } + if (calls) { + if (hasProperty) { + ctx.error( + `defineEmits() type cannot mixed call signature and property syntax.`, + node + ); + } + for (const call of calls) { + extractEventNames(ctx, call.parameters[0], emits); + } + } + return emits; +} +function extractEventNames(ctx, eventName, emits) { + if (eventName.type === "Identifier" && eventName.typeAnnotation && eventName.typeAnnotation.type === "TSTypeAnnotation") { + const types = resolveUnionType(ctx, eventName.typeAnnotation.typeAnnotation); + for (const type of types) { + if (type.type === "TSLiteralType") { + if (type.literal.type !== "UnaryExpression" && type.literal.type !== "TemplateLiteral") { + emits.add(String(type.literal.value)); + } + } + } + } +} + +const DEFINE_EXPOSE = "defineExpose"; +function processDefineExpose(ctx, node) { + if (isCallOf(node, DEFINE_EXPOSE)) { + if (ctx.hasDefineExposeCall) { + ctx.error(`duplicate ${DEFINE_EXPOSE}() call`, node); + } + ctx.hasDefineExposeCall = true; + return true; + } + return false; +} + +const DEFINE_SLOTS = "defineSlots"; +function processDefineSlots(ctx, node, declId) { + if (!isCallOf(node, DEFINE_SLOTS)) { + return false; + } + if (ctx.hasDefineSlotsCall) { + ctx.error(`duplicate ${DEFINE_SLOTS}() call`, node); + } + ctx.hasDefineSlotsCall = true; + if (node.arguments.length > 0) { + ctx.error(`${DEFINE_SLOTS}() cannot accept arguments`, node); + } + if (declId) { + ctx.s.overwrite( + ctx.startOffset + node.start, + ctx.startOffset + node.end, + `${ctx.helper("useSlots")}()` + ); + } + return true; +} + +const DEFINE_OPTIONS = "defineOptions"; +function processDefineOptions(ctx, node) { + if (!isCallOf(node, DEFINE_OPTIONS)) { + return false; + } + if (ctx.hasDefineOptionsCall) { + ctx.error(`duplicate ${DEFINE_OPTIONS}() call`, node); + } + if (node.typeParameters) { + ctx.error(`${DEFINE_OPTIONS}() cannot accept type arguments`, node); + } + if (!node.arguments[0]) return true; + ctx.hasDefineOptionsCall = true; + ctx.optionsRuntimeDecl = CompilerDOM.unwrapTSNode(node.arguments[0]); + let propsOption = void 0; + let emitsOption = void 0; + let exposeOption = void 0; + let slotsOption = void 0; + if (ctx.optionsRuntimeDecl.type === "ObjectExpression") { + for (const prop of ctx.optionsRuntimeDecl.properties) { + if ((prop.type === "ObjectProperty" || prop.type === "ObjectMethod") && prop.key.type === "Identifier") { + switch (prop.key.name) { + case "props": + propsOption = prop; + break; + case "emits": + emitsOption = prop; + break; + case "expose": + exposeOption = prop; + break; + case "slots": + slotsOption = prop; + break; + } + } + } + } + if (propsOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare props. Use ${DEFINE_PROPS}() instead.`, + propsOption + ); + } + if (emitsOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare emits. Use ${DEFINE_EMITS}() instead.`, + emitsOption + ); + } + if (exposeOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare expose. Use ${DEFINE_EXPOSE}() instead.`, + exposeOption + ); + } + if (slotsOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare slots. Use ${DEFINE_SLOTS}() instead.`, + slotsOption + ); + } + return true; +} + +function processAwait(ctx, node, needSemi, isStatement) { + const argumentStart = node.argument.extra && node.argument.extra.parenthesized ? node.argument.extra.parenStart : node.argument.start; + const startOffset = ctx.startOffset; + const argumentStr = ctx.descriptor.source.slice( + argumentStart + startOffset, + node.argument.end + startOffset + ); + const containsNestedAwait = /\bawait\b/.test(argumentStr); + ctx.s.overwrite( + node.start + startOffset, + argumentStart + startOffset, + `${needSemi ? `;` : ``}( + ([__temp,__restore] = ${ctx.helper( + `withAsyncContext` + )}(${containsNestedAwait ? `async ` : ``}() => ` + ); + ctx.s.appendLeft( + node.end + startOffset, + `)), + ${isStatement ? `` : `__temp = `}await __temp, + __restore()${isStatement ? `` : `, + __temp`} +)` + ); +} + +const MACROS = [ + DEFINE_PROPS, + DEFINE_EMITS, + DEFINE_EXPOSE, + DEFINE_OPTIONS, + DEFINE_SLOTS, + DEFINE_MODEL, + WITH_DEFAULTS +]; +function compileScript(sfc, options) { + var _a, _b, _c; + if (!options.id) { + warnOnce( + `compileScript now requires passing the \`id\` option. +Upgrade your vite or vue-loader version for compatibility with the latest experimental proposals.` + ); + } + const { script, scriptSetup, source, filename } = sfc; + const hoistStatic = options.hoistStatic !== false && !script; + const scopeId = options.id ? options.id.replace(/^data-v-/, "") : ""; + const scriptLang = script && script.lang; + const scriptSetupLang = scriptSetup && scriptSetup.lang; + const isJSOrTS = isJS(scriptLang, scriptSetupLang) || isTS(scriptLang, scriptSetupLang); + if (script && scriptSetup && scriptLang !== scriptSetupLang) { + throw new Error( + `[@vue/compiler-sfc] <script> and <script setup> must have the same language type.` + ); + } + if (!scriptSetup) { + if (!script) { + throw new Error(`[@vue/compiler-sfc] SFC contains no <script> tags.`); + } + if (script.lang && !isJSOrTS) { + return script; + } + const ctx2 = new ScriptCompileContext(sfc, options); + return processNormalScript(ctx2, scopeId); + } + if (scriptSetupLang && !isJSOrTS) { + return scriptSetup; + } + const ctx = new ScriptCompileContext(sfc, options); + const scriptBindings = /* @__PURE__ */ Object.create(null); + const setupBindings = /* @__PURE__ */ Object.create(null); + let defaultExport; + let hasAwait = false; + let hasInlinedSsrRenderFn = false; + const startOffset = ctx.startOffset; + const endOffset = ctx.endOffset; + const scriptStartOffset = script && script.loc.start.offset; + const scriptEndOffset = script && script.loc.end.offset; + function hoistNode(node) { + const start = node.start + startOffset; + let end = node.end + startOffset; + if (node.trailingComments && node.trailingComments.length > 0) { + const lastCommentNode = node.trailingComments[node.trailingComments.length - 1]; + end = lastCommentNode.end + startOffset; + } + while (end <= source.length) { + if (!/\s/.test(source.charAt(end))) { + break; + } + end++; + } + ctx.s.move(start, end, 0); + } + function registerUserImport(source2, local, imported, isType, isFromSetup, needTemplateUsageCheck) { + let isUsedInTemplate = needTemplateUsageCheck; + if (needTemplateUsageCheck && ctx.isTS && sfc.template && !sfc.template.src && !sfc.template.lang) { + isUsedInTemplate = isImportUsed(local, sfc); + } + ctx.userImports[local] = { + isType, + imported, + local, + source: source2, + isFromSetup, + isUsedInTemplate + }; + } + function checkInvalidScopeReference(node, method) { + if (!node) return; + CompilerDOM.walkIdentifiers(node, (id) => { + const binding = setupBindings[id.name]; + if (binding && binding !== "literal-const") { + ctx.error( + `\`${method}()\` in <script setup> cannot reference locally declared variables because it will be hoisted outside of the setup() function. If your component options require initialization in the module scope, use a separate normal <script> to export the options instead.`, + id + ); + } + }); + } + const scriptAst = ctx.scriptAst; + const scriptSetupAst = ctx.scriptSetupAst; + if (scriptAst) { + for (const node of scriptAst.body) { + if (node.type === "ImportDeclaration") { + for (const specifier of node.specifiers) { + const imported = getImportedName(specifier); + registerUserImport( + node.source.value, + specifier.local.name, + imported, + node.importKind === "type" || specifier.type === "ImportSpecifier" && specifier.importKind === "type", + false, + !options.inlineTemplate + ); + } + } + } + } + for (const node of scriptSetupAst.body) { + if (node.type === "ImportDeclaration") { + hoistNode(node); + let removed = 0; + const removeSpecifier = (i) => { + const removeLeft = i > removed; + removed++; + const current = node.specifiers[i]; + const next = node.specifiers[i + 1]; + ctx.s.remove( + removeLeft ? node.specifiers[i - 1].end + startOffset : current.start + startOffset, + next && !removeLeft ? next.start + startOffset : current.end + startOffset + ); + }; + for (let i = 0; i < node.specifiers.length; i++) { + const specifier = node.specifiers[i]; + const local = specifier.local.name; + const imported = getImportedName(specifier); + const source2 = node.source.value; + const existing = ctx.userImports[local]; + if (source2 === "vue" && MACROS.includes(imported)) { + if (local === imported) { + warnOnce( + `\`${imported}\` is a compiler macro and no longer needs to be imported.` + ); + } else { + ctx.error( + `\`${imported}\` is a compiler macro and cannot be aliased to a different name.`, + specifier + ); + } + removeSpecifier(i); + } else if (existing) { + if (existing.source === source2 && existing.imported === imported) { + removeSpecifier(i); + } else { + ctx.error( + `different imports aliased to same local name.`, + specifier + ); + } + } else { + registerUserImport( + source2, + local, + imported, + node.importKind === "type" || specifier.type === "ImportSpecifier" && specifier.importKind === "type", + true, + !options.inlineTemplate + ); + } + } + if (node.specifiers.length && removed === node.specifiers.length) { + ctx.s.remove(node.start + startOffset, node.end + startOffset); + } + } + } + const vueImportAliases = {}; + for (const key in ctx.userImports) { + const { source: source2, imported, local } = ctx.userImports[key]; + if (source2 === "vue") vueImportAliases[imported] = local; + } + if (script && scriptAst) { + for (const node of scriptAst.body) { + if (node.type === "ExportDefaultDeclaration") { + defaultExport = node; + let optionProperties; + if (defaultExport.declaration.type === "ObjectExpression") { + optionProperties = defaultExport.declaration.properties; + } else if (defaultExport.declaration.type === "CallExpression" && defaultExport.declaration.arguments[0] && defaultExport.declaration.arguments[0].type === "ObjectExpression") { + optionProperties = defaultExport.declaration.arguments[0].properties; + } + if (optionProperties) { + for (const p of optionProperties) { + if (p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "name") { + ctx.hasDefaultExportName = true; + } + if ((p.type === "ObjectMethod" || p.type === "ObjectProperty") && p.key.type === "Identifier" && p.key.name === "render") { + ctx.hasDefaultExportRender = true; + } + } + } + const start = node.start + scriptStartOffset; + const end = node.declaration.start + scriptStartOffset; + ctx.s.overwrite(start, end, `const ${normalScriptDefaultVar} = `); + } else if (node.type === "ExportNamedDeclaration") { + const defaultSpecifier = node.specifiers.find( + (s) => s.exported.type === "Identifier" && s.exported.name === "default" + ); + if (defaultSpecifier) { + defaultExport = node; + if (node.specifiers.length > 1) { + ctx.s.remove( + defaultSpecifier.start + scriptStartOffset, + defaultSpecifier.end + scriptStartOffset + ); + } else { + ctx.s.remove( + node.start + scriptStartOffset, + node.end + scriptStartOffset + ); + } + if (node.source) { + ctx.s.prepend( + `import { ${defaultSpecifier.local.name} as ${normalScriptDefaultVar} } from '${node.source.value}' +` + ); + } else { + ctx.s.appendLeft( + scriptEndOffset, + ` +const ${normalScriptDefaultVar} = ${defaultSpecifier.local.name} +` + ); + } + } + if (node.declaration) { + walkDeclaration( + "script", + node.declaration, + scriptBindings, + vueImportAliases, + hoistStatic + ); + } + } else if ((node.type === "VariableDeclaration" || node.type === "FunctionDeclaration" || node.type === "ClassDeclaration" || node.type === "TSEnumDeclaration") && !node.declare) { + walkDeclaration( + "script", + node, + scriptBindings, + vueImportAliases, + hoistStatic + ); + } + } + if (scriptStartOffset > startOffset) { + if (!/\n$/.test(script.content.trim())) { + ctx.s.appendLeft(scriptEndOffset, ` +`); + } + ctx.s.move(scriptStartOffset, scriptEndOffset, 0); + } + } + for (const node of scriptSetupAst.body) { + if (node.type === "ExpressionStatement") { + const expr = CompilerDOM.unwrapTSNode(node.expression); + if (processDefineProps(ctx, expr) || processDefineEmits(ctx, expr) || processDefineOptions(ctx, expr) || processDefineSlots(ctx, expr)) { + ctx.s.remove(node.start + startOffset, node.end + startOffset); + } else if (processDefineExpose(ctx, expr)) { + const callee = expr.callee; + ctx.s.overwrite( + callee.start + startOffset, + callee.end + startOffset, + "__expose" + ); + } else { + processDefineModel(ctx, expr); + } + } + if (node.type === "VariableDeclaration" && !node.declare) { + const total = node.declarations.length; + let left = total; + let lastNonRemoved; + for (let i = 0; i < total; i++) { + const decl = node.declarations[i]; + const init = decl.init && CompilerDOM.unwrapTSNode(decl.init); + if (init) { + if (processDefineOptions(ctx, init)) { + ctx.error( + `${DEFINE_OPTIONS}() has no returning value, it cannot be assigned.`, + node + ); + } + const isDefineProps = processDefineProps(ctx, init, decl.id); + if (ctx.propsDestructureRestId) { + setupBindings[ctx.propsDestructureRestId] = "setup-reactive-const"; + } + const isDefineEmits = !isDefineProps && processDefineEmits(ctx, init, decl.id); + !isDefineEmits && (processDefineSlots(ctx, init, decl.id) || processDefineModel(ctx, init, decl.id)); + if (isDefineProps && !ctx.propsDestructureRestId && ctx.propsDestructureDecl) { + if (left === 1) { + ctx.s.remove(node.start + startOffset, node.end + startOffset); + } else { + let start = decl.start + startOffset; + let end = decl.end + startOffset; + if (i === total - 1) { + start = node.declarations[lastNonRemoved].end + startOffset; + } else { + end = node.declarations[i + 1].start + startOffset; + } + ctx.s.remove(start, end); + left--; + } + } else if (isDefineEmits) { + ctx.s.overwrite( + startOffset + init.start, + startOffset + init.end, + "__emit" + ); + } else { + lastNonRemoved = i; + } + } + } + } + let isAllLiteral = false; + if ((node.type === "VariableDeclaration" || node.type === "FunctionDeclaration" || node.type === "ClassDeclaration" || node.type === "TSEnumDeclaration") && !node.declare) { + isAllLiteral = walkDeclaration( + "scriptSetup", + node, + setupBindings, + vueImportAliases, + hoistStatic, + !!ctx.propsDestructureDecl + ); + } + if (hoistStatic && isAllLiteral) { + hoistNode(node); + } + if (node.type === "VariableDeclaration" && !node.declare || node.type.endsWith("Statement")) { + const scope = [scriptSetupAst.body]; + estreeWalker.walk(node, { + enter(child, parent) { + if (CompilerDOM.isFunctionType(child)) { + this.skip(); + } + if (child.type === "BlockStatement") { + scope.push(child.body); + } + if (child.type === "AwaitExpression") { + hasAwait = true; + const currentScope = scope[scope.length - 1]; + const needsSemi = currentScope.some((n, i) => { + return (scope.length === 1 || i > 0) && n.type === "ExpressionStatement" && n.start === child.start; + }); + processAwait( + ctx, + child, + needsSemi, + parent.type === "ExpressionStatement" + ); + } + }, + exit(node2) { + if (node2.type === "BlockStatement") scope.pop(); + } + }); + } + if (node.type === "ExportNamedDeclaration" && node.exportKind !== "type" || node.type === "ExportAllDeclaration" || node.type === "ExportDefaultDeclaration") { + ctx.error( + `<script setup> cannot contain ES module exports. If you are using a previous version of <script setup>, please consult the updated RFC at https://github.com/vuejs/rfcs/pull/227.`, + node + ); + } + if (ctx.isTS) { + if (node.type.startsWith("TS") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "VariableDeclaration" && node.declare) { + if (node.type !== "TSEnumDeclaration") { + hoistNode(node); + } + } + } + } + if (ctx.propsDestructureDecl) { + transformDestructuredProps(ctx, vueImportAliases); + } + checkInvalidScopeReference(ctx.propsRuntimeDecl, DEFINE_PROPS); + checkInvalidScopeReference(ctx.propsRuntimeDefaults, DEFINE_PROPS); + checkInvalidScopeReference(ctx.propsDestructureDecl, DEFINE_PROPS); + checkInvalidScopeReference(ctx.emitsRuntimeDecl, DEFINE_EMITS); + checkInvalidScopeReference(ctx.optionsRuntimeDecl, DEFINE_OPTIONS); + for (const { runtimeOptionNodes } of Object.values(ctx.modelDecls)) { + for (const node of runtimeOptionNodes) { + checkInvalidScopeReference(node, DEFINE_MODEL); + } + } + if (script) { + if (startOffset < scriptStartOffset) { + ctx.s.remove(0, startOffset); + ctx.s.remove(endOffset, scriptStartOffset); + ctx.s.remove(scriptEndOffset, source.length); + } else { + ctx.s.remove(0, scriptStartOffset); + ctx.s.remove(scriptEndOffset, startOffset); + ctx.s.remove(endOffset, source.length); + } + } else { + ctx.s.remove(0, startOffset); + ctx.s.remove(endOffset, source.length); + } + if (scriptAst) { + Object.assign(ctx.bindingMetadata, analyzeScriptBindings(scriptAst.body)); + } + for (const [key, { isType, imported, source: source2 }] of Object.entries( + ctx.userImports + )) { + if (isType) continue; + ctx.bindingMetadata[key] = imported === "*" || imported === "default" && source2.endsWith(".vue") || source2 === "vue" ? "setup-const" : "setup-maybe-ref"; + } + for (const key in scriptBindings) { + ctx.bindingMetadata[key] = scriptBindings[key]; + } + for (const key in setupBindings) { + ctx.bindingMetadata[key] = setupBindings[key]; + } + if (sfc.template && !sfc.template.src && sfc.template.ast) { + const vModelIds = resolveTemplateVModelIdentifiers(sfc); + if (vModelIds.size) { + const toDemote = /* @__PURE__ */ new Set(); + for (const id of vModelIds) { + if (setupBindings[id] === "setup-reactive-const") { + toDemote.add(id); + } + } + if (toDemote.size) { + for (const node of scriptSetupAst.body) { + if (node.type === "VariableDeclaration" && node.kind === "const" && !node.declare) { + const demotedInDecl = []; + for (const decl of node.declarations) { + if (decl.id.type === "Identifier" && toDemote.has(decl.id.name)) { + demotedInDecl.push(decl.id.name); + } + } + if (demotedInDecl.length) { + ctx.s.overwrite( + node.start + startOffset, + node.start + startOffset + "const".length, + "let" + ); + for (const id of demotedInDecl) { + setupBindings[id] = "setup-let"; + ctx.bindingMetadata[id] = "setup-let"; + warnOnce( + `\`v-model\` cannot update a \`const\` reactive binding \`${id}\`. The compiler has transformed it to \`let\` to make the update work.` + ); + } + } + } + } + } + } + } + if (sfc.cssVars.length && // no need to do this when targeting SSR + !((_a = options.templateOptions) == null ? void 0 : _a.ssr)) { + ctx.helperImports.add(CSS_VARS_HELPER); + ctx.helperImports.add("unref"); + ctx.s.prependLeft( + startOffset, + ` +${genCssVarsCode( + sfc.cssVars, + ctx.bindingMetadata, + scopeId, + !!options.isProd + )} +` + ); + } + let args = `__props`; + if (ctx.propsTypeDecl) { + args += `: any`; + } + if (ctx.propsDecl) { + if (ctx.propsDestructureRestId) { + ctx.s.overwrite( + startOffset + ctx.propsCall.start, + startOffset + ctx.propsCall.end, + `${ctx.helper(`createPropsRestProxy`)}(__props, ${JSON.stringify( + Object.keys(ctx.propsDestructuredBindings) + )})` + ); + ctx.s.overwrite( + startOffset + ctx.propsDestructureDecl.start, + startOffset + ctx.propsDestructureDecl.end, + ctx.propsDestructureRestId + ); + } else if (!ctx.propsDestructureDecl) { + ctx.s.overwrite( + startOffset + ctx.propsCall.start, + startOffset + ctx.propsCall.end, + "__props" + ); + } + } + if (hasAwait) { + const any = ctx.isTS ? `: any` : ``; + ctx.s.prependLeft(startOffset, ` +let __temp${any}, __restore${any} +`); + } + const destructureElements = ctx.hasDefineExposeCall || !options.inlineTemplate ? [`expose: __expose`] : []; + if (ctx.emitDecl) { + destructureElements.push(`emit: __emit`); + } + if (destructureElements.length) { + args += `, { ${destructureElements.join(", ")} }`; + } + let templateMap; + let returned; + const propsDecl = genRuntimeProps(ctx); + if (!options.inlineTemplate || !sfc.template && ctx.hasDefaultExportRender) { + const allBindings = { + ...scriptBindings, + ...setupBindings + }; + for (const key in ctx.userImports) { + if (!ctx.userImports[key].isType && ctx.userImports[key].isUsedInTemplate) { + allBindings[key] = true; + } + } + returned = `{ `; + for (const key in allBindings) { + if (allBindings[key] === true && ctx.userImports[key].source !== "vue" && !ctx.userImports[key].source.endsWith(".vue")) { + returned += `get ${key}() { return ${key} }, `; + } else if (ctx.bindingMetadata[key] === "setup-let") { + const setArg = key === "v" ? `_v` : `v`; + returned += `get ${key}() { return ${key} }, set ${key}(${setArg}) { ${key} = ${setArg} }, `; + } else { + returned += `${key}, `; + } + } + returned = returned.replace(/, $/, "") + ` }`; + } else { + if (sfc.template && !sfc.template.src) { + if (options.templateOptions && options.templateOptions.ssr) { + hasInlinedSsrRenderFn = true; + } + const { code, ast, preamble, tips, errors, map: map2 } = compileTemplate({ + filename, + ast: sfc.template.ast, + source: sfc.template.content, + inMap: sfc.template.map, + ...options.templateOptions, + id: scopeId, + scoped: sfc.styles.some((s) => s.scoped), + isProd: options.isProd, + ssrCssVars: sfc.cssVars, + compilerOptions: { + ...options.templateOptions && options.templateOptions.compilerOptions, + inline: true, + isTS: ctx.isTS, + bindingMetadata: ctx.bindingMetadata + } + }); + templateMap = map2; + if (tips.length) { + tips.forEach(warnOnce); + } + const err = errors[0]; + if (typeof err === "string") { + throw new Error(err); + } else if (err) { + if (err.loc) { + err.message += ` + +` + sfc.filename + "\n" + shared.generateCodeFrame( + source, + err.loc.start.offset, + err.loc.end.offset + ) + ` +`; + } + throw err; + } + if (preamble) { + ctx.s.prepend(preamble); + } + if (ast && ast.helpers.has(CompilerDOM.UNREF)) { + ctx.helperImports.delete("unref"); + } + returned = code; + } else { + returned = `() => {}`; + } + } + if (!options.inlineTemplate && true) { + ctx.s.appendRight( + endOffset, + ` +const __returned__ = ${returned} +Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true }) +return __returned__ +} + +` + ); + } else { + ctx.s.appendRight(endOffset, ` +return ${returned} +} + +`); + } + const genDefaultAs = options.genDefaultAs ? `const ${options.genDefaultAs} =` : `export default`; + let runtimeOptions = ``; + if (!ctx.hasDefaultExportName && filename && filename !== DEFAULT_FILENAME) { + const match = filename.match(/([^/\\]+)\.\w+$/); + if (match) { + runtimeOptions += ` + __name: '${match[1]}',`; + } + } + if (hasInlinedSsrRenderFn) { + runtimeOptions += ` + __ssrInlineRender: true,`; + } + if (propsDecl) runtimeOptions += ` + props: ${propsDecl},`; + const emitsDecl = genRuntimeEmits(ctx); + if (emitsDecl) runtimeOptions += ` + emits: ${emitsDecl},`; + let definedOptions = ""; + if (ctx.optionsRuntimeDecl) { + definedOptions = scriptSetup.content.slice(ctx.optionsRuntimeDecl.start, ctx.optionsRuntimeDecl.end).trim(); + } + const exposeCall = ctx.hasDefineExposeCall || options.inlineTemplate ? `` : ` __expose(); +`; + if (ctx.isTS) { + const def = (defaultExport ? ` + ...${normalScriptDefaultVar},` : ``) + (definedOptions ? ` + ...${definedOptions},` : ""); + ctx.s.prependLeft( + startOffset, + ` +${genDefaultAs} /*@__PURE__*/${ctx.helper( + `defineComponent` + )}({${def}${runtimeOptions} + ${hasAwait ? `async ` : ``}setup(${args}) { +${exposeCall}` + ); + ctx.s.appendRight(endOffset, `})`); + } else { + if (defaultExport || definedOptions) { + ctx.s.prependLeft( + startOffset, + ` +${genDefaultAs} /*@__PURE__*/Object.assign(${defaultExport ? `${normalScriptDefaultVar}, ` : ""}${definedOptions ? `${definedOptions}, ` : ""}{${runtimeOptions} + ${hasAwait ? `async ` : ``}setup(${args}) { +${exposeCall}` + ); + ctx.s.appendRight(endOffset, `})`); + } else { + ctx.s.prependLeft( + startOffset, + ` +${genDefaultAs} {${runtimeOptions} + ${hasAwait ? `async ` : ``}setup(${args}) { +${exposeCall}` + ); + ctx.s.appendRight(endOffset, `}`); + } + } + if (ctx.helperImports.size > 0) { + const runtimeModuleName = (_c = (_b = options.templateOptions) == null ? void 0 : _b.compilerOptions) == null ? void 0 : _c.runtimeModuleName; + const importSrc = runtimeModuleName ? JSON.stringify(runtimeModuleName) : `'vue'`; + ctx.s.prepend( + `import { ${[...ctx.helperImports].map((h) => `${h} as _${h}`).join(", ")} } from ${importSrc} +` + ); + } + const content = ctx.s.toString(); + let map = options.sourceMap !== false ? ctx.s.generateMap({ + source: filename, + hires: true, + includeContent: true + }) : void 0; + if (templateMap && map) { + const offset = content.indexOf(returned); + const templateLineOffset = content.slice(0, offset).split(/\r?\n/).length - 1; + map = mergeSourceMaps(map, templateMap, templateLineOffset); + } + return { + ...scriptSetup, + bindings: ctx.bindingMetadata, + imports: ctx.userImports, + content, + map, + scriptAst: scriptAst == null ? void 0 : scriptAst.body, + scriptSetupAst: scriptSetupAst == null ? void 0 : scriptSetupAst.body, + deps: ctx.deps ? [...ctx.deps] : void 0 + }; +} +function registerBinding(bindings, node, type) { + bindings[node.name] = type; +} +function walkDeclaration(from, node, bindings, userImportAliases, hoistStatic, isPropsDestructureEnabled = false) { + let isAllLiteral = false; + if (node.type === "VariableDeclaration") { + const isConst = node.kind === "const"; + isAllLiteral = isConst && node.declarations.every( + (decl) => decl.id.type === "Identifier" && isStaticNode(decl.init) + ); + for (const { id, init: _init } of node.declarations) { + const init = _init && CompilerDOM.unwrapTSNode(_init); + const isConstMacroCall = isConst && isCallOf( + init, + (c) => c === DEFINE_PROPS || c === DEFINE_EMITS || c === WITH_DEFAULTS || c === DEFINE_SLOTS + ); + if (id.type === "Identifier") { + let bindingType; + const userReactiveBinding = userImportAliases["reactive"]; + if ((hoistStatic || from === "script") && (isAllLiteral || isConst && isStaticNode(init))) { + bindingType = "literal-const"; + } else if (isCallOf(init, userReactiveBinding)) { + bindingType = isConst ? "setup-reactive-const" : "setup-let"; + } else if ( + // if a declaration is a const literal, we can mark it so that + // the generated render fn code doesn't need to unref() it + isConstMacroCall || isConst && canNeverBeRef(init, userReactiveBinding) + ) { + bindingType = isCallOf(init, DEFINE_PROPS) ? "setup-reactive-const" : "setup-const"; + } else if (isConst) { + if (isCallOf( + init, + (m) => m === userImportAliases["ref"] || m === userImportAliases["computed"] || m === userImportAliases["shallowRef"] || m === userImportAliases["customRef"] || m === userImportAliases["toRef"] || m === userImportAliases["useTemplateRef"] || m === DEFINE_MODEL + )) { + bindingType = "setup-ref"; + } else { + bindingType = "setup-maybe-ref"; + } + } else { + bindingType = "setup-let"; + } + registerBinding(bindings, id, bindingType); + } else { + if (isCallOf(init, DEFINE_PROPS) && isPropsDestructureEnabled) { + continue; + } + if (id.type === "ObjectPattern") { + walkObjectPattern(id, bindings, isConst, isConstMacroCall); + } else if (id.type === "ArrayPattern") { + walkArrayPattern(id, bindings, isConst, isConstMacroCall); + } + } + } + } else if (node.type === "TSEnumDeclaration") { + isAllLiteral = node.members.every( + (member) => !member.initializer || isStaticNode(member.initializer) + ); + bindings[node.id.name] = isAllLiteral ? "literal-const" : "setup-const"; + } else if (node.type === "FunctionDeclaration" || node.type === "ClassDeclaration") { + bindings[node.id.name] = "setup-const"; + } + return isAllLiteral; +} +function walkObjectPattern(node, bindings, isConst, isDefineCall = false) { + for (const p of node.properties) { + if (p.type === "ObjectProperty") { + if (p.key.type === "Identifier" && p.key === p.value) { + const type = isDefineCall ? "setup-const" : isConst ? "setup-maybe-ref" : "setup-let"; + registerBinding(bindings, p.key, type); + } else { + walkPattern(p.value, bindings, isConst, isDefineCall); + } + } else { + const type = isConst ? "setup-const" : "setup-let"; + registerBinding(bindings, p.argument, type); + } + } +} +function walkArrayPattern(node, bindings, isConst, isDefineCall = false) { + for (const e of node.elements) { + e && walkPattern(e, bindings, isConst, isDefineCall); + } +} +function walkPattern(node, bindings, isConst, isDefineCall = false) { + if (node.type === "Identifier") { + const type = isDefineCall ? "setup-const" : isConst ? "setup-maybe-ref" : "setup-let"; + registerBinding(bindings, node, type); + } else if (node.type === "RestElement") { + const type = isConst ? "setup-const" : "setup-let"; + registerBinding(bindings, node.argument, type); + } else if (node.type === "ObjectPattern") { + walkObjectPattern(node, bindings, isConst); + } else if (node.type === "ArrayPattern") { + walkArrayPattern(node, bindings, isConst); + } else if (node.type === "AssignmentPattern") { + if (node.left.type === "Identifier") { + const type = isDefineCall ? "setup-const" : isConst ? "setup-maybe-ref" : "setup-let"; + registerBinding(bindings, node.left, type); + } else { + walkPattern(node.left, bindings, isConst); + } + } +} +function canNeverBeRef(node, userReactiveImport) { + if (isCallOf(node, userReactiveImport)) { + return true; + } + switch (node.type) { + case "UnaryExpression": + case "BinaryExpression": + case "ArrayExpression": + case "ObjectExpression": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "UpdateExpression": + case "ClassExpression": + case "TaggedTemplateExpression": + return true; + case "SequenceExpression": + return canNeverBeRef( + node.expressions[node.expressions.length - 1], + userReactiveImport + ); + default: + if (isLiteralNode(node)) { + return true; + } + return false; + } +} +function isStaticNode(node) { + node = CompilerDOM.unwrapTSNode(node); + switch (node.type) { + case "UnaryExpression": + return isStaticNode(node.argument); + case "LogicalExpression": + // 1 > 2 + case "BinaryExpression": + return isStaticNode(node.left) && isStaticNode(node.right); + case "ConditionalExpression": { + return isStaticNode(node.test) && isStaticNode(node.consequent) && isStaticNode(node.alternate); + } + case "SequenceExpression": + // (1, 2) + case "TemplateLiteral": + return node.expressions.every((expr) => isStaticNode(expr)); + case "ParenthesizedExpression": + return isStaticNode(node.expression); + case "StringLiteral": + case "NumericLiteral": + case "BooleanLiteral": + case "NullLiteral": + case "BigIntLiteral": + return true; + } + return false; +} +function mergeSourceMaps(scriptMap, templateMap, templateLineOffset) { + const generator = new sourceMapJs.SourceMapGenerator(); + const addMapping = (map, lineOffset = 0) => { + const consumer = new sourceMapJs.SourceMapConsumer(map); + consumer.sources.forEach((sourceFile) => { + generator._sources.add(sourceFile); + const sourceContent = consumer.sourceContentFor(sourceFile); + if (sourceContent != null) { + generator.setSourceContent(sourceFile, sourceContent); + } + }); + consumer.eachMapping((m) => { + if (m.originalLine == null) return; + generator.addMapping({ + generated: { + line: m.generatedLine + lineOffset, + column: m.generatedColumn + }, + original: { + line: m.originalLine, + column: m.originalColumn + }, + source: m.source, + name: m.name + }); + }); + }; + addMapping(scriptMap); + addMapping(templateMap, templateLineOffset); + generator._sourceRoot = scriptMap.sourceRoot; + generator._file = scriptMap.file; + return generator.toJSON(); +} + +const version = "3.5.28"; +const parseCache = parseCache$1; +const errorMessages = { + ...CompilerDOM.errorMessages, + ...CompilerDOM.DOMErrorMessages +}; +const walk = estreeWalker.walk; +const shouldTransformRef = () => false; + +exports.extractIdentifiers = compilerCore.extractIdentifiers; +exports.generateCodeFrame = compilerCore.generateCodeFrame; +exports.isInDestructureAssignment = compilerCore.isInDestructureAssignment; +exports.isStaticProperty = compilerCore.isStaticProperty; +exports.walkIdentifiers = compilerCore.walkIdentifiers; +exports.MagicString = MagicString; +exports.babelParse = parser$2.parse; +exports.compileScript = compileScript; +exports.compileStyle = compileStyle; +exports.compileStyleAsync = compileStyleAsync; +exports.compileTemplate = compileTemplate; +exports.errorMessages = errorMessages; +exports.extractRuntimeEmits = extractRuntimeEmits; +exports.extractRuntimeProps = extractRuntimeProps; +exports.inferRuntimeType = inferRuntimeType; +exports.invalidateTypeCache = invalidateTypeCache; +exports.parse = parse$1; +exports.parseCache = parseCache; +exports.registerTS = registerTS; +exports.resolveTypeElements = resolveTypeElements; +exports.rewriteDefault = rewriteDefault; +exports.rewriteDefaultAST = rewriteDefaultAST; +exports.shouldTransformRef = shouldTransformRef; +exports.version = version; +exports.walk = walk; diff --git a/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts new file mode 100644 index 0000000..2b43f54 --- /dev/null +++ b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts @@ -0,0 +1,487 @@ +import * as _babel_types from '@babel/types'; +import { Statement, Expression, TSType, Node, Program, CallExpression, ObjectPattern, TSModuleDeclaration, TSPropertySignature, TSMethodSignature, TSCallSignatureDeclaration, TSFunctionType } from '@babel/types'; +import { RootNode, CompilerOptions, CodegenResult, ParserOptions, RawSourceMap, CompilerError, SourceLocation, BindingMetadata as BindingMetadata$1 } from '@vue/compiler-core'; +export { BindingMetadata, CompilerError, CompilerOptions, extractIdentifiers, generateCodeFrame, isInDestructureAssignment, isStaticProperty, walkIdentifiers } from '@vue/compiler-core'; +import { ParserPlugin } from '@babel/parser'; +export { parse as babelParse } from '@babel/parser'; +import { Result, LazyResult } from 'postcss'; +import MagicString from 'magic-string'; +export { default as MagicString } from 'magic-string'; +import TS from 'typescript'; + +export interface AssetURLTagConfig { + [name: string]: string[]; +} +export interface AssetURLOptions { + /** + * If base is provided, instead of transforming relative asset urls into + * imports, they will be directly rewritten to absolute urls. + */ + base?: string | null; + /** + * If true, also processes absolute urls. + */ + includeAbsolute?: boolean; + tags?: AssetURLTagConfig; +} + +export interface TemplateCompiler { + compile(source: string | RootNode, options: CompilerOptions): CodegenResult; + parse(template: string, options: ParserOptions): RootNode; +} +export interface SFCTemplateCompileResults { + code: string; + ast?: RootNode; + preamble?: string; + source: string; + tips: string[]; + errors: (string | CompilerError)[]; + map?: RawSourceMap; +} +export interface SFCTemplateCompileOptions { + source: string; + ast?: RootNode; + filename: string; + id: string; + scoped?: boolean; + slotted?: boolean; + isProd?: boolean; + ssr?: boolean; + ssrCssVars?: string[]; + inMap?: RawSourceMap; + compiler?: TemplateCompiler; + compilerOptions?: CompilerOptions; + preprocessLang?: string; + preprocessOptions?: any; + /** + * In some cases, compiler-sfc may not be inside the project root (e.g. when + * linked or globally installed). In such cases a custom `require` can be + * passed to correctly resolve the preprocessors. + */ + preprocessCustomRequire?: (id: string) => any; + /** + * Configure what tags/attributes to transform into asset url imports, + * or disable the transform altogether with `false`. + */ + transformAssetUrls?: AssetURLOptions | AssetURLTagConfig | boolean; +} +export declare function compileTemplate(options: SFCTemplateCompileOptions): SFCTemplateCompileResults; + +export interface SFCScriptCompileOptions { + /** + * Scope ID for prefixing injected CSS variables. + * This must be consistent with the `id` passed to `compileStyle`. + */ + id: string; + /** + * Production mode. Used to determine whether to generate hashed CSS variables + */ + isProd?: boolean; + /** + * Enable/disable source map. Defaults to true. + */ + sourceMap?: boolean; + /** + * https://babeljs.io/docs/en/babel-parser#plugins + */ + babelParserPlugins?: ParserPlugin[]; + /** + * A list of files to parse for global types to be made available for type + * resolving in SFC macros. The list must be fully resolved file system paths. + */ + globalTypeFiles?: string[]; + /** + * Compile the template and inline the resulting render function + * directly inside setup(). + * - Only affects `<script setup>` + * - This should only be used in production because it prevents the template + * from being hot-reloaded separately from component state. + */ + inlineTemplate?: boolean; + /** + * Generate the final component as a variable instead of default export. + * This is useful in e.g. @vitejs/plugin-vue where the script needs to be + * placed inside the main module. + */ + genDefaultAs?: string; + /** + * Options for template compilation when inlining. Note these are options that + * would normally be passed to `compiler-sfc`'s own `compileTemplate()`, not + * options passed to `compiler-dom`. + */ + templateOptions?: Partial<SFCTemplateCompileOptions>; + /** + * Hoist <script setup> static constants. + * - Only enables when one `<script setup>` exists. + * @default true + */ + hoistStatic?: boolean; + /** + * Set to `false` to disable reactive destructure for `defineProps` (pre-3.5 + * behavior), or set to `'error'` to throw hard error on props destructures. + * @default true + */ + propsDestructure?: boolean | 'error'; + /** + * File system access methods to be used when resolving types + * imported in SFC macros. Defaults to ts.sys in Node.js, can be overwritten + * to use a virtual file system for use in browsers (e.g. in REPLs) + */ + fs?: { + fileExists(file: string): boolean; + readFile(file: string): string | undefined; + realpath?(file: string): string; + }; + /** + * Transform Vue SFCs into custom elements. + */ + customElement?: boolean | ((filename: string) => boolean); +} +interface ImportBinding { + isType: boolean; + imported: string; + local: string; + source: string; + isFromSetup: boolean; + isUsedInTemplate: boolean; +} +/** + * Compile `<script setup>` + * It requires the whole SFC descriptor because we need to handle and merge + * normal `<script>` + `<script setup>` if both are present. + */ +export declare function compileScript(sfc: SFCDescriptor, options: SFCScriptCompileOptions): SFCScriptBlock; + +export interface SFCParseOptions { + filename?: string; + sourceMap?: boolean; + sourceRoot?: string; + pad?: boolean | 'line' | 'space'; + ignoreEmpty?: boolean; + compiler?: TemplateCompiler; + templateParseOptions?: ParserOptions; +} +export interface SFCBlock { + type: string; + content: string; + attrs: Record<string, string | true>; + loc: SourceLocation; + map?: RawSourceMap; + lang?: string; + src?: string; +} +export interface SFCTemplateBlock extends SFCBlock { + type: 'template'; + ast?: RootNode; +} +export interface SFCScriptBlock extends SFCBlock { + type: 'script'; + setup?: string | boolean; + bindings?: BindingMetadata$1; + imports?: Record<string, ImportBinding>; + scriptAst?: _babel_types.Statement[]; + scriptSetupAst?: _babel_types.Statement[]; + warnings?: string[]; + /** + * Fully resolved dependency file paths (unix slashes) with imported types + * used in macros, used for HMR cache busting in @vitejs/plugin-vue and + * vue-loader. + */ + deps?: string[]; +} +export interface SFCStyleBlock extends SFCBlock { + type: 'style'; + scoped?: boolean; + module?: string | boolean; +} +export interface SFCDescriptor { + filename: string; + source: string; + template: SFCTemplateBlock | null; + script: SFCScriptBlock | null; + scriptSetup: SFCScriptBlock | null; + styles: SFCStyleBlock[]; + customBlocks: SFCBlock[]; + cssVars: string[]; + /** + * whether the SFC uses :slotted() modifier. + * this is used as a compiler optimization hint. + */ + slotted: boolean; + /** + * compare with an existing descriptor to determine whether HMR should perform + * a reload vs. re-render. + * + * Note: this comparison assumes the prev/next script are already identical, + * and only checks the special case where <script setup lang="ts"> unused import + * pruning result changes due to template changes. + */ + shouldForceReload: (prevImports: Record<string, ImportBinding>) => boolean; +} +export interface SFCParseResult { + descriptor: SFCDescriptor; + errors: (CompilerError | SyntaxError)[]; +} +export declare function parse(source: string, options?: SFCParseOptions): SFCParseResult; + +type PreprocessLang = 'less' | 'sass' | 'scss' | 'styl' | 'stylus'; + +export interface SFCStyleCompileOptions { + source: string; + filename: string; + id: string; + scoped?: boolean; + trim?: boolean; + isProd?: boolean; + inMap?: RawSourceMap; + preprocessLang?: PreprocessLang; + preprocessOptions?: any; + preprocessCustomRequire?: (id: string) => any; + postcssOptions?: any; + postcssPlugins?: any[]; + /** + * @deprecated use `inMap` instead. + */ + map?: RawSourceMap; +} +/** + * Aligns with postcss-modules + * https://github.com/css-modules/postcss-modules + */ +interface CSSModulesOptions { + scopeBehaviour?: 'global' | 'local'; + generateScopedName?: string | ((name: string, filename: string, css: string) => string); + hashPrefix?: string; + localsConvention?: 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly'; + exportGlobals?: boolean; + globalModulePaths?: RegExp[]; +} +export interface SFCAsyncStyleCompileOptions extends SFCStyleCompileOptions { + isAsync?: boolean; + modules?: boolean; + modulesOptions?: CSSModulesOptions; +} +export interface SFCStyleCompileResults { + code: string; + map: RawSourceMap | undefined; + rawResult: Result | LazyResult | undefined; + errors: Error[]; + modules?: Record<string, string>; + dependencies: Set<string>; +} +export declare function compileStyle(options: SFCStyleCompileOptions): SFCStyleCompileResults; +export declare function compileStyleAsync(options: SFCAsyncStyleCompileOptions): Promise<SFCStyleCompileResults>; + +export declare function rewriteDefault(input: string, as: string, parserPlugins?: ParserPlugin[]): string; +/** + * Utility for rewriting `export default` in a script block into a variable + * declaration so that we can inject things into it + */ +export declare function rewriteDefaultAST(ast: Statement[], s: MagicString, as: string): void; + +type PropsDestructureBindings = Record<string, // public prop key +{ + local: string; + default?: Expression; +}>; +export declare function extractRuntimeProps(ctx: TypeResolveContext): string | undefined; + +interface ModelDecl { + type: TSType | undefined; + options: string | undefined; + identifier: string | undefined; + runtimeOptionNodes: Node[]; +} + +declare enum BindingTypes { + /** + * returned from data() + */ + DATA = "data", + /** + * declared as a prop + */ + PROPS = "props", + /** + * a local alias of a `<script setup>` destructured prop. + * the original is stored in __propsAliases of the bindingMetadata object. + */ + PROPS_ALIASED = "props-aliased", + /** + * a let binding (may or may not be a ref) + */ + SETUP_LET = "setup-let", + /** + * a const binding that can never be a ref. + * these bindings don't need `unref()` calls when processed in inlined + * template expressions. + */ + SETUP_CONST = "setup-const", + /** + * a const binding that does not need `unref()`, but may be mutated. + */ + SETUP_REACTIVE_CONST = "setup-reactive-const", + /** + * a const binding that may be a ref. + */ + SETUP_MAYBE_REF = "setup-maybe-ref", + /** + * bindings that are guaranteed to be refs + */ + SETUP_REF = "setup-ref", + /** + * declared by other options, e.g. computed, inject + */ + OPTIONS = "options", + /** + * a literal constant, e.g. 'foo', 1, true + */ + LITERAL_CONST = "literal-const" +} +type BindingMetadata = { + [key: string]: BindingTypes | undefined; +} & { + __isScriptSetup?: boolean; + __propsAliases?: Record<string, string>; +}; + +export declare class ScriptCompileContext { + descriptor: SFCDescriptor; + options: Partial<SFCScriptCompileOptions>; + isJS: boolean; + isTS: boolean; + isCE: boolean; + scriptAst: Program | null; + scriptSetupAst: Program | null; + source: string; + filename: string; + s: MagicString; + startOffset: number | undefined; + endOffset: number | undefined; + scope?: TypeScope; + globalScopes?: TypeScope[]; + userImports: Record<string, ImportBinding>; + hasDefinePropsCall: boolean; + hasDefineEmitCall: boolean; + hasDefineExposeCall: boolean; + hasDefaultExportName: boolean; + hasDefaultExportRender: boolean; + hasDefineOptionsCall: boolean; + hasDefineSlotsCall: boolean; + hasDefineModelCall: boolean; + propsCall: CallExpression | undefined; + propsDecl: Node | undefined; + propsRuntimeDecl: Node | undefined; + propsTypeDecl: Node | undefined; + propsDestructureDecl: ObjectPattern | undefined; + propsDestructuredBindings: PropsDestructureBindings; + propsDestructureRestId: string | undefined; + propsRuntimeDefaults: Node | undefined; + emitsRuntimeDecl: Node | undefined; + emitsTypeDecl: Node | undefined; + emitDecl: Node | undefined; + modelDecls: Record<string, ModelDecl>; + optionsRuntimeDecl: Node | undefined; + bindingMetadata: BindingMetadata; + helperImports: Set<string>; + helper(key: string): string; + /** + * to be exposed on compiled script block for HMR cache busting + */ + deps?: Set<string>; + /** + * cache for resolved fs + */ + fs?: NonNullable<SFCScriptCompileOptions['fs']>; + constructor(descriptor: SFCDescriptor, options: Partial<SFCScriptCompileOptions>); + getString(node: Node, scriptSetup?: boolean): string; + warn(msg: string, node: Node, scope?: TypeScope): void; + error(msg: string, node: Node, scope?: TypeScope): never; +} + +export type SimpleTypeResolveOptions = Partial<Pick<SFCScriptCompileOptions, 'globalTypeFiles' | 'fs' | 'babelParserPlugins' | 'isProd'>>; +/** + * TypeResolveContext is compatible with ScriptCompileContext + * but also allows a simpler version of it with minimal required properties + * when resolveType needs to be used in a non-SFC context, e.g. in a babel + * plugin. The simplest context can be just: + * ```ts + * const ctx: SimpleTypeResolveContext = { + * filename: '...', + * source: '...', + * options: {}, + * error() {}, + * ast: [] + * } + * ``` + */ +export type SimpleTypeResolveContext = Pick<ScriptCompileContext, 'source' | 'filename' | 'error' | 'warn' | 'helper' | 'getString' | 'propsTypeDecl' | 'propsRuntimeDefaults' | 'propsDestructuredBindings' | 'emitsTypeDecl' | 'isCE'> & Partial<Pick<ScriptCompileContext, 'scope' | 'globalScopes' | 'deps' | 'fs'>> & { + ast: Statement[]; + options: SimpleTypeResolveOptions; +}; +export type TypeResolveContext = (ScriptCompileContext | SimpleTypeResolveContext) & { + silentOnExtendsFailure?: boolean; +}; +type Import = Pick<ImportBinding, 'source' | 'imported'>; +interface WithScope { + _ownerScope: TypeScope; +} +type ScopeTypeNode = Node & WithScope & { + _ns?: TSModuleDeclaration & WithScope; +}; +declare class TypeScope { + filename: string; + source: string; + offset: number; + imports: Record<string, Import>; + types: Record<string, ScopeTypeNode>; + declares: Record<string, ScopeTypeNode>; + constructor(filename: string, source: string, offset?: number, imports?: Record<string, Import>, types?: Record<string, ScopeTypeNode>, declares?: Record<string, ScopeTypeNode>); + isGenericScope: boolean; + resolvedImportSources: Record<string, string>; + exportedTypes: Record<string, ScopeTypeNode>; + exportedDeclares: Record<string, ScopeTypeNode>; +} +interface MaybeWithScope { + _ownerScope?: TypeScope; +} +interface ResolvedElements { + props: Record<string, (TSPropertySignature | TSMethodSignature) & { + _ownerScope: TypeScope; + }>; + calls?: (TSCallSignatureDeclaration | TSFunctionType)[]; +} +/** + * Resolve arbitrary type node to a list of type elements that can be then + * mapped to runtime props or emits. + */ +export declare function resolveTypeElements(ctx: TypeResolveContext, node: Node & MaybeWithScope & { + _resolvedElements?: ResolvedElements; +}, scope?: TypeScope, typeParameters?: Record<string, Node>): ResolvedElements; +/** + * @private + */ +export declare function registerTS(_loadTS: () => typeof TS): void; +/** + * @private + */ +export declare function invalidateTypeCache(filename: string): void; +export declare function inferRuntimeType(ctx: TypeResolveContext, node: Node & MaybeWithScope, scope?: TypeScope, isKeyOf?: boolean, typeParameters?: Record<string, Node>): string[]; + +export declare function extractRuntimeEmits(ctx: TypeResolveContext): Set<string>; + +export declare const version: string; + +export declare const parseCache: Map<string, SFCParseResult>; +export declare const errorMessages: Record<number, string>; + +export declare const walk: any; + +/** + * @deprecated this is preserved to avoid breaking vite-plugin-vue < 5.0 + * with reactivityTransform: true. The desired behavior should be silently + * ignoring the option instead of breaking. + */ +export declare const shouldTransformRef: () => boolean; + + diff --git a/node_modules/@vue/compiler-sfc/dist/compiler-sfc.esm-browser.js b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.esm-browser.js new file mode 100644 index 0000000..413d401 --- /dev/null +++ b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.esm-browser.js @@ -0,0 +1,50788 @@ +/** +* @vue/compiler-sfc v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const extend = Object.assign; +const hasOwnProperty$3 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$3.call(val, key); +const isArray$3 = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isFunction$1 = (val) => typeof val === "function"; +const isString$1 = (val) => typeof val === "string"; +const isSymbol$1 = (val) => typeof val === "symbol"; +const isObject$2 = (val) => val !== null && typeof val === "object"; +const objectToString$1 = Object.prototype.toString; +const toTypeString = (value) => objectToString$1.call(value); +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name) { + return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; +} +function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); +} + +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` +}; + +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray$3(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString$1(value) || isObject$2(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString$1(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString$1(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString$1(value)) { + res = value; + } else if (isArray$3(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject$2(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +const isKnownMathMLAttr = /* @__PURE__ */ makeMap( + `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` +); + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` + ); +} + +const isRef = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString$1(val) ? val : val == null ? "" : isArray$3(val) || isObject$2(val) && (val.toString === objectToString$1 || !isFunction$1(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol$1(val)) { + return stringifySymbol(val); + } else if (isObject$2(val) && !isArray$3(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol$1(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` ); +const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` ); +const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` ); +const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` ); +const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `BaseTransition` +); +const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` ); +const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` ); +const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `createElementBlock` +); +const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` ); +const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `createElementVNode` +); +const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `createCommentVNode` +); +const CREATE_TEXT = /* @__PURE__ */ Symbol( + `createTextVNode` +); +const CREATE_STATIC = /* @__PURE__ */ Symbol( + `createStaticVNode` +); +const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `resolveComponent` +); +const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `resolveDynamicComponent` +); +const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `resolveDirective` +); +const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `resolveFilter` +); +const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `withDirectives` +); +const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` ); +const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` ); +const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` ); +const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `toDisplayString` +); +const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` ); +const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `normalizeClass` +); +const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `normalizeStyle` +); +const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `normalizeProps` +); +const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `guardReactiveProps` +); +const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` ); +const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` ); +const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` ); +const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `toHandlerKey` +); +const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `setBlockTracking` +); +const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` ); +const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` ); +const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` ); +const UNREF = /* @__PURE__ */ Symbol(`unref` ); +const IS_REF = /* @__PURE__ */ Symbol(`isRef` ); +const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` ); +const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` ); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString$1(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: isString$1(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 +var _a$1; +const decodeMap = new Map([ + [0, 65533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376], +]); +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +const fromCodePoint = +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins +(_a$1 = String.fromCodePoint) !== null && _a$1 !== void 0 ? _a$1 : ((codePoint) => { + let output = ""; + if (codePoint > 65535) { + codePoint -= 65536; + output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296); + codePoint = 56320 | (codePoint & 1023); + } + output += String.fromCharCode(codePoint); + return output; +}); +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +function replaceCodePoint(codePoint) { + var _a; + if ((codePoint >= 55296 && codePoint <= 57343) || + codePoint > 1114111) { + return 65533; + } + return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint; +} + +var global$1 = (typeof global !== "undefined" ? global : + typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : {}); + +var lookup = []; +var revLookup = []; +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; +var inited = false; +function init () { + inited = true; + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + + revLookup['-'.charCodeAt(0)] = 62; + revLookup['_'.charCodeAt(0)] = 63; +} + +function toByteArray (b64) { + if (!inited) { + init(); + } + var i, j, l, tmp, placeHolders, arr; + var len = b64.length; + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0; + + // base64 is 4/3 + up to two characters of the original data + arr = new Arr(len * 3 / 4 - placeHolders); + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len; + + var L = 0; + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]; + arr[L++] = (tmp >> 16) & 0xFF; + arr[L++] = (tmp >> 8) & 0xFF; + arr[L++] = tmp & 0xFF; + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4); + arr[L++] = tmp & 0xFF; + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2); + arr[L++] = (tmp >> 8) & 0xFF; + arr[L++] = tmp & 0xFF; + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp; + var output = []; + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]); + output.push(tripletToBase64(tmp)); + } + return output.join('') +} + +function fromByteArray (uint8) { + if (!inited) { + init(); + } + var tmp; + var len = uint8.length; + var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes + var output = ''; + var parts = []; + var maxChunkLength = 16383; // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))); + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1]; + output += lookup[tmp >> 2]; + output += lookup[(tmp << 4) & 0x3F]; + output += '=='; + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]); + output += lookup[tmp >> 10]; + output += lookup[(tmp >> 4) & 0x3F]; + output += lookup[(tmp << 2) & 0x3F]; + output += '='; + } + + parts.push(output); + + return parts.join('') +} + +function read (buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? (nBytes - 1) : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + + i += d; + + e = s & ((1 << (-nBits)) - 1); + s >>= (-nBits); + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1); + e >>= (-nBits); + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +function write (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0); + var i = isLE ? 0 : (nBytes - 1); + var d = isLE ? 1 : -1; + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128; +} + +var toString$1 = {}.toString; + +var isArray$2 = Array.isArray || function (arr) { + return toString$1.call(arr) == '[object Array]'; +}; + +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ +/* eslint-disable no-proto */ + + +var INSPECT_MAX_BYTES = 50; + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer$1.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined + ? global$1.TYPED_ARRAY_SUPPORT + : true; + +/* + * Export kMaxLength after typed array support is determined. + */ +kMaxLength(); + +function kMaxLength () { + return Buffer$1.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length); + that.__proto__ = Buffer$1.prototype; + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer$1(length); + } + that.length = length; + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer$1 (arg, encodingOrOffset, length) { + if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) { + return new Buffer$1(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer$1.poolSize = 8192; // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer$1._augment = function (arr) { + arr.__proto__ = Buffer$1.prototype; + return arr +}; + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer$1.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +}; + +if (Buffer$1.TYPED_ARRAY_SUPPORT) { + Buffer$1.prototype.__proto__ = Uint8Array.prototype; + Buffer$1.__proto__ = Uint8Array; + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer$1[Symbol.species] === Buffer$1) ; +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer$1.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +}; + +function allocUnsafe (that, size) { + assertSize(size); + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0); + if (!Buffer$1.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0; + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer$1.allocUnsafe = function (size) { + return allocUnsafe(null, size) +}; +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer$1.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +}; + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8'; + } + + if (!Buffer$1.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0; + that = createBuffer(that, length); + + var actual = that.write(string, encoding); + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual); + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0; + that = createBuffer(that, length); + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255; + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength; // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array); + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset); + } else { + array = new Uint8Array(array, byteOffset, length); + } + + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array; + that.__proto__ = Buffer$1.prototype; + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array); + } + return that +} + +function fromObject (that, obj) { + if (internalIsBuffer(obj)) { + var len = checked(obj.length) | 0; + that = createBuffer(that, len); + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len); + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray$2(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} +Buffer$1.isBuffer = isBuffer$1; +function internalIsBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer$1.compare = function compare (a, b) { + if (!internalIsBuffer(a) || !internalIsBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length; + var y = b.length; + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +}; + +Buffer$1.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +}; + +Buffer$1.concat = function concat (list, length) { + if (!isArray$2(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer$1.alloc(0) + } + + var i; + if (length === undefined) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + + var buffer = Buffer$1.allocUnsafe(length); + var pos = 0; + for (i = 0; i < list.length; ++i) { + var buf = list[i]; + if (!internalIsBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos); + pos += buf.length; + } + return buffer +}; + +function byteLength (string, encoding) { + if (internalIsBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string; + } + + var len = string.length; + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false; + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } +} +Buffer$1.byteLength = byteLength; + +function slowToString (encoding, start, end) { + var loweredCase = false; + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0; + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length; + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0; + start >>>= 0; + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8'; + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase(); + loweredCase = true; + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer$1.prototype._isBuffer = true; + +function swap (b, n, m) { + var i = b[n]; + b[n] = b[m]; + b[m] = i; +} + +Buffer$1.prototype.swap16 = function swap16 () { + var len = this.length; + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this +}; + +Buffer$1.prototype.swap32 = function swap32 () { + var len = this.length; + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this +}; + +Buffer$1.prototype.swap64 = function swap64 () { + var len = this.length; + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this +}; + +Buffer$1.prototype.toString = function toString () { + var length = this.length | 0; + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +}; + +Buffer$1.prototype.equals = function equals (b) { + if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer$1.compare(this, b) === 0 +}; + +Buffer$1.prototype.inspect = function inspect () { + var str = ''; + var max = INSPECT_MAX_BYTES; + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' '); + if (this.length > max) str += ' ... '; + } + return '<Buffer ' + str + '>' +}; + +Buffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!internalIsBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0; + } + if (end === undefined) { + end = target ? target.length : 0; + } + if (thisStart === undefined) { + thisStart = 0; + } + if (thisEnd === undefined) { + thisEnd = this.length; + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + + if (this === target) return 0 + + var x = thisEnd - thisStart; + var y = end - start; + var len = Math.min(x, y); + + var thisCopy = this.slice(thisStart, thisEnd); + var targetCopy = target.slice(start, end); + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +}; + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1); + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0; + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer$1.from(val, encoding); + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (internalIsBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF; // Search for a byte value [0-255] + if (Buffer$1.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1; + var arrLength = arr.length; + var valLength = val.length; + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase(); + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i; + if (dir) { + var foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + var found = true; + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer$1.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +}; + +Buffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +}; + +Buffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +}; + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0; + var remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + + // must be an even number of digits + var strLen = string.length; + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2; + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16); + if (isNaN(parsed)) return i + buf[offset + i] = parsed; + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer$1.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8'; + length = this.length; + offset = 0; + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset; + length = this.length; + offset = 0; + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0; + if (isFinite(length)) { + length = length | 0; + if (encoding === undefined) encoding = 'utf8'; + } else { + encoding = length; + length = undefined; + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset; + if (length === undefined || length > remaining) length = remaining; + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8'; + + var loweredCase = false; + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } +}; + +Buffer$1.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +}; + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return fromByteArray(buf) + } else { + return fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end); + var res = []; + + var i = start; + while (i < end) { + var firstByte = buf[i]; + var codePoint = null; + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1; + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint; + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte; + } + break + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F); + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint; + } + } + break + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F); + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint; + } + } + break + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F); + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint; + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD; + bytesPerSequence = 1; + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000; + res.push(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + + res.push(codePoint); + i += bytesPerSequence; + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000; + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = ''; + var i = 0; + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ); + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F); + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length; + + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + + var out = ''; + for (var i = start; i < end; ++i) { + out += toHex(buf[i]); + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end); + var res = ''; + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res +} + +Buffer$1.prototype.slice = function slice (start, end) { + var len = this.length; + start = ~~start; + end = end === undefined ? len : ~~end; + + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + + if (end < start) end = start; + + var newBuf; + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end); + newBuf.__proto__ = Buffer$1.prototype; + } else { + var sliceLen = end - start; + newBuf = new Buffer$1(sliceLen, undefined); + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start]; + } + } + + return newBuf +}; + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + + return val +}; + +Buffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) { + checkOffset(offset, byteLength, this.length); + } + + var val = this[offset + --byteLength]; + var mul = 1; + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul; + } + + return val +}; + +Buffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset] +}; + +Buffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | (this[offset + 1] << 8) +}; + +Buffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + return (this[offset] << 8) | this[offset + 1] +}; + +Buffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +}; + +Buffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +}; + +Buffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + mul *= 0x80; + + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + + return val +}; + +Buffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var i = byteLength; + var mul = 1; + var val = this[offset + --i]; + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul; + } + mul *= 0x80; + + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + + return val +}; + +Buffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +}; + +Buffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset] | (this[offset + 1] << 8); + return (val & 0x8000) ? val | 0xFFFF0000 : val +}; + +Buffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset + 1] | (this[offset] << 8); + return (val & 0x8000) ? val | 0xFFFF0000 : val +}; + +Buffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +}; + +Buffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +}; + +Buffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return read(this, offset, true, 23, 4) +}; + +Buffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return read(this, offset, false, 23, 4) +}; + +Buffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length); + return read(this, offset, true, 52, 8) +}; + +Buffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length); + return read(this, offset, false, 52, 8) +}; + +function checkInt (buf, value, offset, ext, max, min) { + if (!internalIsBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var mul = 1; + var i = 0; + this[offset] = value & 0xFF; + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF; + } + + return offset + byteLength +}; + +Buffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var i = byteLength - 1; + var mul = 1; + this[offset + i] = value & 0xFF; + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF; + } + + return offset + byteLength +}; + +Buffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); + if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value); + this[offset] = (value & 0xff); + return offset + 1 +}; + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1; + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8; + } +} + +Buffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff); + this[offset + 1] = (value >>> 8); + } else { + objectWriteUInt16(this, value, offset, true); + } + return offset + 2 +}; + +Buffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8); + this[offset + 1] = (value & 0xff); + } else { + objectWriteUInt16(this, value, offset, false); + } + return offset + 2 +}; + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1; + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff; + } +} + +Buffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24); + this[offset + 2] = (value >>> 16); + this[offset + 1] = (value >>> 8); + this[offset] = (value & 0xff); + } else { + objectWriteUInt32(this, value, offset, true); + } + return offset + 4 +}; + +Buffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24); + this[offset + 1] = (value >>> 16); + this[offset + 2] = (value >>> 8); + this[offset + 3] = (value & 0xff); + } else { + objectWriteUInt32(this, value, offset, false); + } + return offset + 4 +}; + +Buffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = 0; + var mul = 1; + var sub = 0; + this[offset] = value & 0xFF; + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; + } + + return offset + byteLength +}; + +Buffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = byteLength - 1; + var mul = 1; + var sub = 0; + this[offset + i] = value & 0xFF; + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; + } + + return offset + byteLength +}; + +Buffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -128); + if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value); + if (value < 0) value = 0xff + value + 1; + this[offset] = (value & 0xff); + return offset + 1 +}; + +Buffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -32768); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff); + this[offset + 1] = (value >>> 8); + } else { + objectWriteUInt16(this, value, offset, true); + } + return offset + 2 +}; + +Buffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -32768); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8); + this[offset + 1] = (value & 0xff); + } else { + objectWriteUInt16(this, value, offset, false); + } + return offset + 2 +}; + +Buffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -2147483648); + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff); + this[offset + 1] = (value >>> 8); + this[offset + 2] = (value >>> 16); + this[offset + 3] = (value >>> 24); + } else { + objectWriteUInt32(this, value, offset, true); + } + return offset + 4 +}; + +Buffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -2147483648); + if (value < 0) value = 0xffffffff + value + 1; + if (Buffer$1.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24); + this[offset + 1] = (value >>> 16); + this[offset + 2] = (value >>> 8); + this[offset + 3] = (value & 0xff); + } else { + objectWriteUInt32(this, value, offset, false); + } + return offset + 4 +}; + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4); + } + write(buf, value, offset, littleEndian, 23, 4); + return offset + 4 +} + +Buffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +}; + +Buffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +}; + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8); + } + write(buf, value, offset, littleEndian, 52, 8); + return offset + 8 +} + +Buffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +}; + +Buffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +}; + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer$1.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + + var len = end - start; + var i; + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start]; + } + } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start]; + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ); + } + + return len +}; + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer$1.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === 'string') { + encoding = end; + end = this.length; + } + if (val.length === 1) { + var code = val.charCodeAt(0); + if (code < 256) { + val = code; + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255; + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0; + end = end === undefined ? this.length : end >>> 0; + + if (!val) val = 0; + + var i; + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + var bytes = internalIsBuffer(val) + ? val + : utf8ToBytes(new Buffer$1(val, encoding).toString()); + var len = bytes.length; + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + + return this +}; + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g; + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, ''); + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '='; + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + var bytes = []; + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue + } + + // valid lead + leadSurrogate = codePoint; + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + leadSurrogate = codePoint; + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + } + + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ); + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF); + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo; + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + + return byteArray +} + + +function base64ToBytes (str) { + return toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i]; + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + + +// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +function isBuffer$1(obj) { + return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj)) +} + +function isFastBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0)) +} + +/* + * Shared base64 decode helper for generated decode data. + * Assumes global atob is available. + */ +function decodeBase64(input) { + const binary = + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof atob === "function" + ? // Browser (and Node >=16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + atob(input) + : // Older Node versions (<16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof Buffer$1.from === "function" + ? // eslint-disable-next-line n/no-unsupported-features/node-builtins + Buffer$1.from(input, "base64").toString("binary") + : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api + new Buffer$1(input, "base64").toString("binary"); + const evenLength = binary.length & -2; // Round down to even length + const out = new Uint16Array(evenLength / 2); + for (let index = 0, outIndex = 0; index < evenLength; index += 2) { + const lo = binary.charCodeAt(index); + const hi = binary.charCodeAt(index + 1); + out[outIndex++] = lo | (hi << 8); + } + return out; +} + +// Generated using scripts/write-decode-map.ts +const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg"); + +/** + * Bit flags & masks for the binary trie encoding used for entity decoding. + * + * Bit layout (16 bits total): + * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value) + * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';'). + * If valueLength==0: compact run flag. + * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run) + * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char + */ +var BinTrieFlags; +(function (BinTrieFlags) { + BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags[BinTrieFlags["FLAG13"] = 8192] = "FLAG13"; + BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH"; + BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE"; +})(BinTrieFlags || (BinTrieFlags = {})); + +var CharCodes; +(function (CharCodes) { + CharCodes[CharCodes["NUM"] = 35] = "NUM"; + CharCodes[CharCodes["SEMI"] = 59] = "SEMI"; + CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS"; + CharCodes[CharCodes["ZERO"] = 48] = "ZERO"; + CharCodes[CharCodes["NINE"] = 57] = "NINE"; + CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A"; + CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F"; + CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X"; + CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A"; + CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F"; + CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z"; +})(CharCodes || (CharCodes = {})); +/** Bit that needs to be set to convert an upper case ASCII character to lower case */ +const TO_LOWER_BIT = 32; +function isNumber$1(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; +} +function isHexadecimalCharacter(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)); +} +function isAsciiAlphaNumeric(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) || + isNumber$1(code)); +} +/** + * Checks if the given character is a valid end character for an entity in an attribute. + * + * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error. + * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state + */ +function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); +} +var EntityDecoderState; +(function (EntityDecoderState) { + EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity"; +})(EntityDecoderState || (EntityDecoderState = {})); +var DecodingMode; +(function (DecodingMode) { + /** Entities in text nodes that can end with any character. */ + DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy"; + /** Only allow entities terminated with a semicolon. */ + DecodingMode[DecodingMode["Strict"] = 1] = "Strict"; + /** Entities in attributes have limitations on ending characters. */ + DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute"; +})(DecodingMode || (DecodingMode = {})); +/** + * Token decoder with support of writing partial entities. + */ +class EntityDecoder { + constructor( + /** The tree used to decode entities. */ + // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive + decodeTree, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint, + /** An object that is used to produce errors. */ + errors) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors; + /** The current state of the decoder. */ + this.state = EntityDecoderState.EntityStart; + /** Characters that were consumed while parsing an entity. */ + this.consumed = 1; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + this.result = 0; + /** The current index in the decode tree. */ + this.treeIndex = 0; + /** The number of characters that were consumed in excess. */ + this.excess = 1; + /** The mode in which the decoder is operating. */ + this.decodeMode = DecodingMode.Strict; + /** The number of characters that have been consumed in the current run. */ + this.runConsumed = 0; + } + /** Resets the instance to make it reusable. */ + startEntity(decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + this.runConsumed = 0; + } + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + write(input, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (input.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(input, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(input, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(input, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(input, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(input, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(input, offset); + } + } + } + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericStart(input, offset) { + if (offset >= input.length) { + return -1; + } + if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(input, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(input, offset); + } + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericHex(input, offset) { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber$1(char) || isHexadecimalCharacter(char)) { + // Convert hex digit to value (0-15); 'a'/'A' -> 10. + const digit = char <= CharCodes.NINE + ? char - CharCodes.ZERO + : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10; + this.result = this.result * 16 + digit; + this.consumed++; + offset++; + } + else { + return this.emitNumericEntity(char, 3); + } + } + return -1; // Incomplete entity + } + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericDecimal(input, offset) { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber$1(char)) { + this.result = this.result * 10 + (char - CharCodes.ZERO); + this.consumed++; + offset++; + } + else { + return this.emitNumericEntity(char, 2); + } + } + return -1; // Incomplete entity + } + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + emitNumericEntity(lastCp, expectedLength) { + var _a; + // Ensure we consumed at least one digit. + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + // Figure out if this is a legit end of the entity + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } + else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint(replaceCodePoint(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + } + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNamedEntity(input, offset) { + const { decodeTree } = this; + let current = decodeTree[this.treeIndex]; + // The length is the number of bytes of the value, including the current byte. + let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + while (offset < input.length) { + // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set. + if (valueLength === 0 && (current & BinTrieFlags.FLAG13) !== 0) { + const runLength = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */ + // If we are starting a run, check the first char. + if (this.runConsumed === 0) { + const firstChar = current & BinTrieFlags.JUMP_TABLE; + if (input.charCodeAt(offset) !== firstChar) { + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + // Check remaining characters in the run. + while (this.runConsumed < runLength) { + if (offset >= input.length) { + return -1; + } + const charIndexInPacked = this.runConsumed - 1; + const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)]; + const expectedChar = charIndexInPacked % 2 === 0 + ? packedWord & 0xff + : (packedWord >> 8) & 0xff; + if (input.charCodeAt(offset) !== expectedChar) { + this.runConsumed = 0; + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + this.runConsumed = 0; + this.treeIndex += 1 + (runLength >> 1); + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + } + if (offset >= input.length) + break; + const char = input.charCodeAt(offset); + /* + * Implicit semicolon handling for nodes that require a semicolon but + * don't have an explicit ';' branch stored in the trie. If we have + * a value on the current node, it requires a semicolon, and the + * current input character is a semicolon, emit the entity using the + * current node (without descending further). + */ + if (char === CharCodes.SEMI && + valueLength !== 0 && + (current & BinTrieFlags.FLAG13) !== 0) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || + // If we are parsing an attribute + (this.decodeMode === DecodingMode.Attribute && + // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || + // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char))) + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + // If the branch is a value, store it and continue + if (valueLength !== 0) { + // If the entity is terminated by a semicolon, we are done. + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it. + if (this.decodeMode !== DecodingMode.Strict && + (current & BinTrieFlags.FLAG13) === 0) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + // Increment offset & excess for next iteration + offset++; + this.excess++; + } + return -1; + } + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + emitNotTerminatedNamedEntity() { + var _a; + const { result, decodeTree } = this; + const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + } + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + emitNamedEntityData(result, valueLength, consumed) { + const { decodeTree } = this; + this.emitCodePoint(valueLength === 1 + ? decodeTree[result] & + ~(BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13) + : decodeTree[result + 1], consumed); + if (valueLength === 3) { + // For multi-byte values, we need to emit the second byte. + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + } + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + end() { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + // Emit a named entity if we have one. + return this.result !== 0 && + (this.decodeMode !== DecodingMode.Attribute || + this.result === this.treeIndex) + ? this.emitNotTerminatedNamedEntity() + : 0; + } + // Otherwise, emit a numeric entity if we have one. + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + // Return 0 if we have no entity. + return 0; + } + } + } +} +/** + * Creates a function that decodes entities in a string. + * + * @param decodeTree The decode tree. + * @returns A function that decodes entities in a string. + */ +function getDecoder(decodeTree) { + let returnValue = ""; + const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data))); + return function decodeWithTrie(input, decodeMode) { + let lastIndex = 0; + let offset = 0; + while ((offset = input.indexOf("&", offset)) >= 0) { + returnValue += input.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + const length = decoder.write(input, + // Skip the "&" + offset + 1); + if (length < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + length; + // If `length` is 0, skip the current `&` and continue. + offset = length === 0 ? lastIndex + 1 : lastIndex; + } + const result = returnValue + input.slice(lastIndex); + // Make sure we don't keep a reference to the final string. + returnValue = ""; + return result; + }; +} +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +function determineBranch(decodeTree, current, nodeIndex, char) { + const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; + const jumpOffset = current & BinTrieFlags.JUMP_TABLE; + // Case 1: Single branch encoded in jump offset + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1; + } + // Case 2: Multiple branches encoded in jump table + if (jumpOffset) { + const value = char - jumpOffset; + return value < 0 || value >= branchCount + ? -1 + : decodeTree[nodeIndex + value] - 1; + } + // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16) + const packedKeySlots = (branchCount + 1) >> 1; + /* + * Treat packed keys as a virtual sorted array of length `branchCount`. + * Key(i) = low byte for even i, high byte for odd i in slot i>>1. + */ + let lo = 0; + let hi = branchCount - 1; + while (lo <= hi) { + const mid = (lo + hi) >>> 1; + const slot = mid >> 1; + const packed = decodeTree[nodeIndex + slot]; + const midKey = (packed >> ((mid & 1) * 8)) & 0xff; + if (midKey < char) { + lo = mid + 1; + } + else if (midKey > char) { + hi = mid - 1; + } + else { + return decodeTree[nodeIndex + packedKeySlots + mid]; + } + } + return -1; +} +const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree); +/** + * Decodes an HTML string. + * + * @param htmlString The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +function decodeHTML(htmlString, mode = DecodingMode.Legacy) { + return htmlDecoder(htmlString, mode); +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + { + this.entityDecoder = new EntityDecoder( + htmlDecodeTree, + (cp, consumed) => this.emitCodePoint(cp, consumed) + ); + } + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || false) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } else if (c === 38) { + this.startEntity(); + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else if (c === 38) { + this.startEntity(); + } + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + { + this.baseState = this.state; + this.state = 33; + this.entityStart = this.index; + this.entityDecoder.startEntity( + this.baseState === 1 || this.baseState === 32 ? DecodingMode.Legacy : DecodingMode.Attribute + ); + } + } + stateInEntity() { + { + const length = this.entityDecoder.write(this.buffer, this.index); + if (length >= 0) { + this.state = this.baseState; + if (length === 0) { + this.index = this.entityStart; + } + } else { + this.index = this.buffer.length - 1; + } + } + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + if (this.state === 33) { + this.entityDecoder.end(); + this.state = this.baseState; + } + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + { + if (this.baseState !== 1 && this.baseState !== 32) { + if (this.sectionStart < this.entityStart) { + this.cbs.onattribdata(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.onattribentity( + fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } else { + if (this.sectionStart < this.entityStart) { + this.cbs.ontext(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.ontextentity( + fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } + } + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + if (enabled) { + warnDeprecation(key, context, loc, ...args); + } + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages$1)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_V_MODEL_ON_CONST": 45, + "45": "X_V_MODEL_ON_CONST", + "X_INVALID_EXPRESSION": 46, + "46": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 47, + "47": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 48, + "48": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 49, + "49": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 50, + "50": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 51, + "51": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 52, + "52": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53, + "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 54, + "54": "__EXTEND_POINT__" +}; +const errorMessages$1 = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` +}; + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +function getAugmentedNamespace(n) { + if (Object.prototype.hasOwnProperty.call(n, '__esModule')) return n; + var f = n.default; + if (typeof f == "function") { + var a = function a () { + var isInstance = false; + try { + isInstance = this instanceof a; + } catch {} + if (isInstance) { + return Reflect.construct(f, arguments, this.constructor); + } + return f.apply(this, arguments); + }; + a.prototype = f.prototype; + } else a = {}; + Object.defineProperty(a, '__esModule', {value: true}); + Object.keys(n).forEach(function (k) { + var d = Object.getOwnPropertyDescriptor(n, k); + Object.defineProperty(a, k, d.get ? d : { + enumerable: true, + get: function () { + return n[k]; + } + }); + }); + return a; +} + +var lib = {}; + +var hasRequiredLib; + +function requireLib () { + if (hasRequiredLib) return lib; + hasRequiredLib = 1; + + Object.defineProperty(lib, '__esModule', { + value: true + }); + function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (-1 !== e.indexOf(n)) continue; + t[n] = r[n]; + } + return t; + } + class Position { + constructor(line, col, index) { + this.line = void 0; + this.column = void 0; + this.index = void 0; + this.line = line; + this.column = col; + this.index = index; + } + } + class SourceLocation { + constructor(start, end) { + this.start = void 0; + this.end = void 0; + this.filename = void 0; + this.identifierName = void 0; + this.start = start; + this.end = end; + } + } + function createPositionWithColumnOffset(position, columnOffset) { + const { + line, + column, + index + } = position; + return new Position(line, column + columnOffset, index + columnOffset); + } + const code = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"; + var ModuleErrors = { + ImportMetaOutsideModule: { + message: `import.meta may appear only with 'sourceType: "module"'`, + code + }, + ImportOutsideModule: { + message: `'import' and 'export' may appear only with 'sourceType: "module"'`, + code + } + }; + const NodeDescriptions = { + ArrayPattern: "array destructuring pattern", + AssignmentExpression: "assignment expression", + AssignmentPattern: "assignment expression", + ArrowFunctionExpression: "arrow function expression", + ConditionalExpression: "conditional expression", + CatchClause: "catch clause", + ForOfStatement: "for-of statement", + ForInStatement: "for-in statement", + ForStatement: "for-loop", + FormalParameters: "function parameter list", + Identifier: "identifier", + ImportSpecifier: "import specifier", + ImportDefaultSpecifier: "import default specifier", + ImportNamespaceSpecifier: "import namespace specifier", + ObjectPattern: "object destructuring pattern", + ParenthesizedExpression: "parenthesized expression", + RestElement: "rest element", + UpdateExpression: { + true: "prefix operation", + false: "postfix operation" + }, + VariableDeclarator: "variable declaration", + YieldExpression: "yield expression" + }; + const toNodeDescription = node => node.type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type]; + var StandardErrors = { + AccessorIsGenerator: ({ + kind + }) => `A ${kind}ter cannot be a generator.`, + ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", + AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", + AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", + AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", + AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", + AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", + BadGetterArity: "A 'get' accessor must not have any formal parameters.", + BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", + BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", + ConstructorClassField: "Classes may not have a field named 'constructor'.", + ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", + ConstructorIsAccessor: "Class constructor may not be an accessor.", + ConstructorIsAsync: "Constructor can't be an async function.", + ConstructorIsGenerator: "Constructor can't be a generator.", + DeclarationMissingInitializer: ({ + kind + }) => `Missing initializer in ${kind} declaration.`, + DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.", + DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.", + DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.", + DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", + DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.", + DecoratorSemicolon: "Decorators must not be followed by a semicolon.", + DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.', + DeletePrivateField: "Deleting a private field is not allowed.", + DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", + DuplicateConstructor: "Duplicate constructor in the same class.", + DuplicateDefaultExport: "Only one default export allowed per module.", + DuplicateExport: ({ + exportName + }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, + DuplicateProto: "Redefinition of __proto__ property.", + DuplicateRegExpFlags: "Duplicate regular expression flag.", + ElementAfterRest: "Rest element must be last element.", + EscapedCharNotAnIdentifier: "Invalid Unicode escape.", + ExportBindingIsString: ({ + localName, + exportName + }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`, + ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", + ForInOfLoopInitializer: ({ + type + }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, + ForInUsing: "For-in loop may not start with 'using' declaration.", + ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", + ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", + GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", + IllegalBreakContinue: ({ + type + }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, + IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", + IllegalReturn: "'return' outside of function.", + ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.", + ImportBindingIsString: ({ + importName + }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, + ImportCallArity: `\`import()\` requires exactly one or two arguments.`, + ImportCallNotNewExpression: "Cannot use new with import(...).", + ImportCallSpreadArgument: "`...` is not allowed in `import()`.", + ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", + ImportReflectionHasAssertion: "`import module x` cannot have assertions.", + ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.', + IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", + InvalidBigIntLiteral: "Invalid BigIntLiteral.", + InvalidCodePoint: "Code point out of bounds.", + InvalidCoverDiscardElement: "'void' must be followed by an expression when not used in a binding position.", + InvalidCoverInitializedName: "Invalid shorthand property initializer.", + InvalidDecimal: "Invalid decimal.", + InvalidDigit: ({ + radix + }) => `Expected number in radix ${radix}.`, + InvalidEscapeSequence: "Bad character escape sequence.", + InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", + InvalidEscapedReservedWord: ({ + reservedWord + }) => `Escape sequence in keyword ${reservedWord}.`, + InvalidIdentifier: ({ + identifierName + }) => `Invalid identifier ${identifierName}.`, + InvalidLhs: ({ + ancestor + }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsBinding: ({ + ancestor + }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsOptionalChaining: ({ + ancestor + }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`, + InvalidNumber: "Invalid number.", + InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", + InvalidOrUnexpectedToken: ({ + unexpected + }) => `Unexpected character '${unexpected}'.`, + InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", + InvalidPrivateFieldResolution: ({ + identifierName + }) => `Private name #${identifierName} is not defined.`, + InvalidPropertyBindingPattern: "Binding member expression.", + InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", + InvalidRestAssignmentPattern: "Invalid rest operator's argument.", + LabelRedeclaration: ({ + labelName + }) => `Label '${labelName}' is already declared.`, + LetInLexicalBinding: "'let' is disallowed as a lexically bound name.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", + MalformedRegExpFlags: "Invalid regular expression flag.", + MissingClassName: "A class name is required.", + MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", + MissingSemicolon: "Missing semicolon.", + MissingPlugin: ({ + missingPlugin + }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingOneOfPlugins: ({ + missingPlugin + }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", + MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", + ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", + ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", + ModuleAttributesWithDuplicateKeys: ({ + key + }) => `Duplicate key "${key}" is not allowed in module attributes.`, + ModuleExportNameHasLoneSurrogate: ({ + surrogateCharCode + }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`, + ModuleExportUndefined: ({ + localName + }) => `Export '${localName}' is not defined.`, + MultipleDefaultsInSwitch: "Multiple default clauses.", + NewlineAfterThrow: "Illegal newline after throw.", + NoCatchOrFinally: "Missing catch or finally clause.", + NumberIdentifier: "Identifier directly after number.", + NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", + ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", + OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", + OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", + OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", + ParamDupe: "Argument name clash.", + PatternHasAccessor: "Object pattern can't contain getter or setter.", + PatternHasMethod: "Object pattern can't contain methods.", + PrivateInExpectedIn: ({ + identifierName + }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`, + PrivateNameRedeclaration: ({ + identifierName + }) => `Duplicate private name #${identifierName}.`, + RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + RecordNoProto: "'__proto__' is not allowed in Record expressions.", + RestTrailingComma: "Unexpected trailing comma after rest element.", + SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.", + SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.', + StaticPrototype: "Classes may not have static property named prototype.", + SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", + SuperPrivateField: "Private fields can't be accessed on super.", + TrailingDecorator: "Decorators must be attached to a class element.", + TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", + UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', + UnexpectedDigitAfterHash: "Unexpected digit after hash token.", + UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", + UnexpectedKeyword: ({ + keyword + }) => `Unexpected keyword '${keyword}'.`, + UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", + UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", + UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", + UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", + UnexpectedPrivateField: "Unexpected private name.", + UnexpectedReservedWord: ({ + reservedWord + }) => `Unexpected reserved word '${reservedWord}'.`, + UnexpectedSuper: "'super' is only allowed in object methods and classes.", + UnexpectedToken: ({ + expected, + unexpected + }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, + UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.", + UnexpectedVoidPattern: "Unexpected void binding.", + UnsupportedBind: "Binding should be performed on object property.", + UnsupportedDecoratorExport: "A decorated export must export a class declaration.", + UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", + UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", + UnsupportedMetaProperty: ({ + target, + onlyValidPropertyName + }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`, + UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", + UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", + UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", + UnterminatedComment: "Unterminated comment.", + UnterminatedRegExp: "Unterminated regular expression.", + UnterminatedString: "Unterminated string constant.", + UnterminatedTemplate: "Unterminated template.", + UsingDeclarationExport: "Using declaration cannot be exported.", + UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", + VarRedeclaration: ({ + identifierName + }) => `Identifier '${identifierName}' has already been declared.`, + VoidPatternCatchClauseParam: "A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.", + VoidPatternInitializer: "A void binding may not have an initializer.", + YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", + YieldInParameter: "Yield expression is not allowed in formal parameters.", + YieldNotInGeneratorFunction: "'yield' is only allowed within generator functions.", + ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." + }; + var StrictModeErrors = { + StrictDelete: "Deleting local variable in strict mode.", + StrictEvalArguments: ({ + referenceName + }) => `Assigning to '${referenceName}' in strict mode.`, + StrictEvalArgumentsBinding: ({ + bindingName + }) => `Binding '${bindingName}' in strict mode.`, + StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", + StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", + StrictWith: "'with' in strict mode." + }; + var ParseExpressionErrors = { + ParseExpressionEmptyInput: "Unexpected parseExpression() input: The input is empty or contains only comments.", + ParseExpressionExpectsEOF: ({ + unexpected + }) => `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \`${String.fromCodePoint(unexpected)}\`.` + }; + const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); + var PipelineOperatorErrors = Object.assign({ + PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: ({ + token + }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`, + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", + PipeUnparenthesizedBody: ({ + type + }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ + type + })}; please wrap it in parentheses.` + }, { + PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', + PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", + PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", + PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", + PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' + }); + const _excluded = ["message"]; + function defineHidden(obj, key, value) { + Object.defineProperty(obj, key, { + enumerable: false, + configurable: true, + value + }); + } + function toParseErrorConstructor({ + toMessage, + code, + reasonCode, + syntaxPlugin + }) { + const hasMissingPlugin = reasonCode === "MissingPlugin" || reasonCode === "MissingOneOfPlugins"; + const oldReasonCodes = { + AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter", + AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference", + SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter", + SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter", + SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType" + }; + if (oldReasonCodes[reasonCode]) { + reasonCode = oldReasonCodes[reasonCode]; + } + return function constructor(loc, details) { + const error = new SyntaxError(); + error.code = code; + error.reasonCode = reasonCode; + error.loc = loc; + error.pos = loc.index; + error.syntaxPlugin = syntaxPlugin; + if (hasMissingPlugin) { + error.missingPlugin = details.missingPlugin; + } + defineHidden(error, "clone", function clone(overrides = {}) { + var _overrides$loc; + const { + line, + column, + index + } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc; + return constructor(new Position(line, column, index), Object.assign({}, details, overrides.details)); + }); + defineHidden(error, "details", details); + Object.defineProperty(error, "message", { + configurable: true, + get() { + const message = `${toMessage(details)} (${loc.line}:${loc.column})`; + this.message = message; + return message; + }, + set(value) { + Object.defineProperty(this, "message", { + value, + writable: true + }); + } + }); + return error; + }; + } + function ParseErrorEnum(argument, syntaxPlugin) { + if (Array.isArray(argument)) { + return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]); + } + const ParseErrorConstructors = {}; + for (const reasonCode of Object.keys(argument)) { + const template = argument[reasonCode]; + const _ref = typeof template === "string" ? { + message: () => template + } : typeof template === "function" ? { + message: template + } : template, + { + message + } = _ref, + rest = _objectWithoutPropertiesLoose(_ref, _excluded); + const toMessage = typeof message === "string" ? () => message : message; + ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ + code: "BABEL_PARSER_SYNTAX_ERROR", + reasonCode, + toMessage + }, syntaxPlugin ? { + syntaxPlugin + } : {}, rest)); + } + return ParseErrorConstructors; + } + const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum(ParseExpressionErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); + function createDefaultOptions() { + return { + sourceType: "script", + sourceFilename: undefined, + startIndex: 0, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowNewTargetOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + allowYieldOutsideFunction: false, + plugins: [], + strictMode: undefined, + ranges: false, + tokens: false, + createImportExpressions: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true, + annexB: true + }; + } + function getOptions(opts) { + const options = createDefaultOptions(); + if (opts == null) { + return options; + } + if (opts.annexB != null && opts.annexB !== false) { + throw new Error("The `annexB` option can only be set to `false`."); + } + for (const key of Object.keys(options)) { + if (opts[key] != null) options[key] = opts[key]; + } + if (options.startLine === 1) { + if (opts.startIndex == null && options.startColumn > 0) { + options.startIndex = options.startColumn; + } else if (opts.startColumn == null && options.startIndex > 0) { + options.startColumn = options.startIndex; + } + } else if (opts.startColumn == null || opts.startIndex == null) { + if (opts.startIndex != null) { + throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`."); + } + } + if (options.sourceType === "commonjs") { + if (opts.allowAwaitOutsideFunction != null) { + throw new Error("The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`."); + } + if (opts.allowReturnOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`."); + } + if (opts.allowNewTargetOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`."); + } + } + return options; + } + const { + defineProperty + } = Object; + const toUnenumerable = (object, key) => { + if (object) { + defineProperty(object, key, { + enumerable: false, + value: object[key] + }); + } + }; + function toESTreeLocation(node) { + toUnenumerable(node.loc.start, "index"); + toUnenumerable(node.loc.end, "index"); + return node; + } + var estree = superClass => class ESTreeParserMixin extends superClass { + parse() { + const file = toESTreeLocation(super.parse()); + if (this.optionFlags & 256) { + file.tokens = file.tokens.map(toESTreeLocation); + } + return file; + } + parseRegExpLiteral({ + pattern, + flags + }) { + let regex = null; + try { + regex = new RegExp(pattern, flags); + } catch (_) {} + const node = this.estreeParseLiteral(regex); + node.regex = { + pattern, + flags + }; + return node; + } + parseBigIntLiteral(value) { + let bigInt; + try { + bigInt = BigInt(value); + } catch (_unused) { + bigInt = null; + } + const node = this.estreeParseLiteral(bigInt); + node.bigint = String(node.value || value); + return node; + } + parseDecimalLiteral(value) { + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + return node; + } + estreeParseLiteral(value) { + return this.parseLiteral(value, "Literal"); + } + parseStringLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNumericLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNullLiteral() { + return this.estreeParseLiteral(null); + } + parseBooleanLiteral(value) { + return this.estreeParseLiteral(value); + } + estreeParseChainExpression(node, endLoc) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNodeAt(chain, "ChainExpression", endLoc); + } + directiveToStmt(directive) { + const expression = directive.value; + delete directive.value; + this.castNodeTo(expression, "Literal"); + expression.raw = expression.extra.raw; + expression.value = expression.extra.expressionValue; + const stmt = this.castNodeTo(directive, "ExpressionStatement"); + stmt.expression = expression; + stmt.directive = expression.extra.rawValue; + delete expression.extra; + return stmt; + } + fillOptionalPropertiesForTSESLint(node) {} + cloneEstreeStringLiteral(node) { + const { + start, + end, + loc, + range, + raw, + value + } = node; + const cloned = Object.create(node.constructor.prototype); + cloned.type = "Literal"; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.raw = raw; + cloned.value = value; + return cloned; + } + initFunction(node, isAsync) { + super.initFunction(node, isAsync); + node.expression = false; + } + checkDeclaration(node) { + if (node != null && this.isObjectProperty(node)) { + this.checkDeclaration(node.value); + } else { + super.checkDeclaration(node); + } + } + getObjectOrClassMethodParams(method) { + return method.value.params; + } + isValidDirective(stmt) { + var _stmt$expression$extr; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse); + const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); + node.body = directiveStatements.concat(node.body); + delete node.directives; + } + parsePrivateName() { + const node = super.parsePrivateName(); + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } + return this.convertPrivateNameToPrivateIdentifier(node); + } + convertPrivateNameToPrivateIdentifier(node) { + const name = super.getPrivateNameSV(node); + delete node.id; + node.name = name; + return this.castNodeTo(node, "PrivateIdentifier"); + } + isPrivateName(node) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } + return node.type === "PrivateIdentifier"; + } + getPrivateNameSV(node) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } + return node.name; + } + parseLiteral(value, type) { + const node = super.parseLiteral(value, type); + node.raw = node.extra.raw; + delete node.extra; + return node; + } + parseFunctionBody(node, allowExpression, isMethod = false) { + super.parseFunctionBody(node, allowExpression, isMethod); + node.expression = node.body.type !== "BlockStatement"; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + let funcNode = this.startNode(); + funcNode.kind = node.kind; + funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + delete funcNode.kind; + const { + typeParameters + } = node; + if (typeParameters) { + delete node.typeParameters; + funcNode.typeParameters = typeParameters; + this.resetStartLocationFromNode(funcNode, typeParameters); + } + const valueNode = this.castNodeTo(funcNode, "FunctionExpression"); + node.value = valueNode; + if (type === "ClassPrivateMethod") { + node.computed = false; + } + if (type === "ObjectMethod") { + if (node.kind === "method") { + node.kind = "init"; + } + node.shorthand = false; + return this.finishNode(node, "Property"); + } else { + return this.finishNode(node, "MethodDefinition"); + } + } + nameIsConstructor(key) { + if (key.type === "Literal") return key.value === "constructor"; + return super.nameIsConstructor(key); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + propertyNode.computed = false; + return propertyNode; + } + parseClassAccessorProperty(node) { + const accessorPropertyNode = super.parseClassAccessorProperty(node); + if (!this.getPluginOption("estree", "classFeatures")) { + return accessorPropertyNode; + } + if (accessorPropertyNode.abstract && this.hasPlugin("typescript")) { + delete accessorPropertyNode.abstract; + this.castNodeTo(accessorPropertyNode, "TSAbstractAccessorProperty"); + } else { + this.castNodeTo(accessorPropertyNode, "AccessorProperty"); + } + return accessorPropertyNode; + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (node) { + node.kind = "init"; + this.castNodeTo(node, "Property"); + } + return node; + } + finishObjectProperty(node) { + node.kind = "init"; + return this.finishNode(node, "Property"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { + if (node != null && this.isObjectProperty(node)) { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + } else { + super.toAssignable(node, isLHS); + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "Property" && (prop.kind === "get" || prop.kind === "set")) { + this.raise(Errors.PatternHasAccessor, prop.key); + } else if (prop.type === "Property" && prop.method) { + this.raise(Errors.PatternHasMethod, prop.key); + } else { + super.toAssignableObjectExpressionProp(prop, isLast, isLHS); + } + } + finishCallExpression(unfinished, optional) { + const node = super.finishCallExpression(unfinished, optional); + if (node.callee.type === "Import") { + var _ref, _ref2; + this.castNodeTo(node, "ImportExpression"); + node.source = node.arguments[0]; + node.options = (_ref = node.arguments[1]) != null ? _ref : null; + node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null; + delete node.arguments; + delete node.callee; + } else if (node.type === "OptionalCallExpression") { + this.castNodeTo(node, "CallExpression"); + } else { + node.optional = false; + } + return node; + } + toReferencedArguments(node) { + if (node.type === "ImportExpression") { + return; + } + super.toReferencedArguments(node); + } + parseExport(unfinished, decorators) { + const exportStartLoc = this.state.lastTokStartLoc; + const node = super.parseExport(unfinished, decorators); + switch (node.type) { + case "ExportAllDeclaration": + node.exported = null; + break; + case "ExportNamedDeclaration": + if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { + this.castNodeTo(node, "ExportAllDeclaration"); + node.exported = node.specifiers[0].exported; + delete node.specifiers; + } + case "ExportDefaultDeclaration": + { + var _declaration$decorato; + const { + declaration + } = node; + if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) { + this.resetStartLocation(node, exportStartLoc); + } + } + break; + } + return node; + } + stopParseSubscript(base, state) { + const node = super.stopParseSubscript(base, state); + if (state.optionalChainMember) { + return this.estreeParseChainExpression(node, base.loc.end); + } + return node; + } + parseMember(base, startLoc, state, computed, optional) { + const node = super.parseMember(base, startLoc, state, computed, optional); + if (node.type === "OptionalMemberExpression") { + this.castNodeTo(node, "MemberExpression"); + } else { + node.optional = false; + } + return node; + } + isOptionalMemberExpression(node) { + if (node.type === "ChainExpression") { + return node.expression.type === "MemberExpression"; + } + return super.isOptionalMemberExpression(node); + } + hasPropertyAsPrivateName(node) { + if (node.type === "ChainExpression") { + node = node.expression; + } + return super.hasPropertyAsPrivateName(node); + } + isObjectProperty(node) { + return node.type === "Property" && node.kind === "init" && !node.method; + } + isObjectMethod(node) { + return node.type === "Property" && (node.method || node.kind === "get" || node.kind === "set"); + } + castNodeTo(node, type) { + const result = super.castNodeTo(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + this.fillOptionalPropertiesForTSESLint(cloned); + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Literal") { + return this.cloneEstreeStringLiteral(node); + } + return super.cloneStringLiteral(node); + } + finishNodeAt(node, type, endLoc) { + return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); + } + finishNode(node, type) { + const result = super.finishNode(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + resetStartLocation(node, startLoc) { + super.resetStartLocation(node, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + super.resetEndLocation(node, endLoc); + toESTreeLocation(node); + } + }; + class TokContext { + constructor(token, preserveSpace) { + this.token = void 0; + this.preserveSpace = void 0; + this.token = token; + this.preserveSpace = !!preserveSpace; + } + } + const types = { + brace: new TokContext("{"), + j_oTag: new TokContext("<tag"), + j_cTag: new TokContext("</tag"), + j_expr: new TokContext("<tag>...</tag>", true) + }; + types.template = new TokContext("`", true); + const beforeExpr = true; + const startsExpr = true; + const isLoop = true; + const isAssign = true; + const prefix = true; + const postfix = true; + class ExportedTokenType { + constructor(label, conf = {}) { + this.label = void 0; + this.keyword = void 0; + this.beforeExpr = void 0; + this.startsExpr = void 0; + this.rightAssociative = void 0; + this.isLoop = void 0; + this.isAssign = void 0; + this.prefix = void 0; + this.postfix = void 0; + this.binop = void 0; + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.rightAssociative = !!conf.rightAssociative; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop != null ? conf.binop : null; + this.updateContext = null; + } + } + const keywords$1 = new Map(); + function createKeyword(name, options = {}) { + options.keyword = name; + const token = createToken(name, options); + keywords$1.set(name, token); + return token; + } + function createBinop(name, binop) { + return createToken(name, { + beforeExpr, + binop + }); + } + let tokenTypeCounter = -1; + const tokenTypes = []; + const tokenLabels = []; + const tokenBinops = []; + const tokenBeforeExprs = []; + const tokenStartsExprs = []; + const tokenPrefixes = []; + function createToken(name, options = {}) { + var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; + ++tokenTypeCounter; + tokenLabels.push(name); + tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); + tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); + tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); + tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); + tokenTypes.push(new ExportedTokenType(name, options)); + return tokenTypeCounter; + } + function createKeywordLike(name, options = {}) { + var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; + ++tokenTypeCounter; + keywords$1.set(name, tokenTypeCounter); + tokenLabels.push(name); + tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); + tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); + tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); + tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); + tokenTypes.push(new ExportedTokenType("name", options)); + return tokenTypeCounter; + } + const tt = { + bracketL: createToken("[", { + beforeExpr, + startsExpr + }), + bracketHashL: createToken("#[", { + beforeExpr, + startsExpr + }), + bracketBarL: createToken("[|", { + beforeExpr, + startsExpr + }), + bracketR: createToken("]"), + bracketBarR: createToken("|]"), + braceL: createToken("{", { + beforeExpr, + startsExpr + }), + braceBarL: createToken("{|", { + beforeExpr, + startsExpr + }), + braceHashL: createToken("#{", { + beforeExpr, + startsExpr + }), + braceR: createToken("}"), + braceBarR: createToken("|}"), + parenL: createToken("(", { + beforeExpr, + startsExpr + }), + parenR: createToken(")"), + comma: createToken(",", { + beforeExpr + }), + semi: createToken(";", { + beforeExpr + }), + colon: createToken(":", { + beforeExpr + }), + doubleColon: createToken("::", { + beforeExpr + }), + dot: createToken("."), + question: createToken("?", { + beforeExpr + }), + questionDot: createToken("?."), + arrow: createToken("=>", { + beforeExpr + }), + template: createToken("template"), + ellipsis: createToken("...", { + beforeExpr + }), + backQuote: createToken("`", { + startsExpr + }), + dollarBraceL: createToken("${", { + beforeExpr, + startsExpr + }), + templateTail: createToken("...`", { + startsExpr + }), + templateNonTail: createToken("...${", { + beforeExpr, + startsExpr + }), + at: createToken("@"), + hash: createToken("#", { + startsExpr + }), + interpreterDirective: createToken("#!..."), + eq: createToken("=", { + beforeExpr, + isAssign + }), + assign: createToken("_=", { + beforeExpr, + isAssign + }), + slashAssign: createToken("_=", { + beforeExpr, + isAssign + }), + xorAssign: createToken("_=", { + beforeExpr, + isAssign + }), + moduloAssign: createToken("_=", { + beforeExpr, + isAssign + }), + incDec: createToken("++/--", { + prefix, + postfix, + startsExpr + }), + bang: createToken("!", { + beforeExpr, + prefix, + startsExpr + }), + tilde: createToken("~", { + beforeExpr, + prefix, + startsExpr + }), + doubleCaret: createToken("^^", { + startsExpr + }), + doubleAt: createToken("@@", { + startsExpr + }), + pipeline: createBinop("|>", 0), + nullishCoalescing: createBinop("??", 1), + logicalOR: createBinop("||", 1), + logicalAND: createBinop("&&", 2), + bitwiseOR: createBinop("|", 3), + bitwiseXOR: createBinop("^", 4), + bitwiseAND: createBinop("&", 5), + equality: createBinop("==/!=/===/!==", 6), + lt: createBinop("</>/<=/>=", 7), + gt: createBinop("</>/<=/>=", 7), + relational: createBinop("</>/<=/>=", 7), + bitShift: createBinop("<</>>/>>>", 8), + bitShiftL: createBinop("<</>>/>>>", 8), + bitShiftR: createBinop("<</>>/>>>", 8), + plusMin: createToken("+/-", { + beforeExpr, + binop: 9, + prefix, + startsExpr + }), + modulo: createToken("%", { + binop: 10, + startsExpr + }), + star: createToken("*", { + binop: 10 + }), + slash: createBinop("/", 10), + exponent: createToken("**", { + beforeExpr, + binop: 11, + rightAssociative: true + }), + _in: createKeyword("in", { + beforeExpr, + binop: 7 + }), + _instanceof: createKeyword("instanceof", { + beforeExpr, + binop: 7 + }), + _break: createKeyword("break"), + _case: createKeyword("case", { + beforeExpr + }), + _catch: createKeyword("catch"), + _continue: createKeyword("continue"), + _debugger: createKeyword("debugger"), + _default: createKeyword("default", { + beforeExpr + }), + _else: createKeyword("else", { + beforeExpr + }), + _finally: createKeyword("finally"), + _function: createKeyword("function", { + startsExpr + }), + _if: createKeyword("if"), + _return: createKeyword("return", { + beforeExpr + }), + _switch: createKeyword("switch"), + _throw: createKeyword("throw", { + beforeExpr, + prefix, + startsExpr + }), + _try: createKeyword("try"), + _var: createKeyword("var"), + _const: createKeyword("const"), + _with: createKeyword("with"), + _new: createKeyword("new", { + beforeExpr, + startsExpr + }), + _this: createKeyword("this", { + startsExpr + }), + _super: createKeyword("super", { + startsExpr + }), + _class: createKeyword("class", { + startsExpr + }), + _extends: createKeyword("extends", { + beforeExpr + }), + _export: createKeyword("export"), + _import: createKeyword("import", { + startsExpr + }), + _null: createKeyword("null", { + startsExpr + }), + _true: createKeyword("true", { + startsExpr + }), + _false: createKeyword("false", { + startsExpr + }), + _typeof: createKeyword("typeof", { + beforeExpr, + prefix, + startsExpr + }), + _void: createKeyword("void", { + beforeExpr, + prefix, + startsExpr + }), + _delete: createKeyword("delete", { + beforeExpr, + prefix, + startsExpr + }), + _do: createKeyword("do", { + isLoop, + beforeExpr + }), + _for: createKeyword("for", { + isLoop + }), + _while: createKeyword("while", { + isLoop + }), + _as: createKeywordLike("as", { + startsExpr + }), + _assert: createKeywordLike("assert", { + startsExpr + }), + _async: createKeywordLike("async", { + startsExpr + }), + _await: createKeywordLike("await", { + startsExpr + }), + _defer: createKeywordLike("defer", { + startsExpr + }), + _from: createKeywordLike("from", { + startsExpr + }), + _get: createKeywordLike("get", { + startsExpr + }), + _let: createKeywordLike("let", { + startsExpr + }), + _meta: createKeywordLike("meta", { + startsExpr + }), + _of: createKeywordLike("of", { + startsExpr + }), + _sent: createKeywordLike("sent", { + startsExpr + }), + _set: createKeywordLike("set", { + startsExpr + }), + _source: createKeywordLike("source", { + startsExpr + }), + _static: createKeywordLike("static", { + startsExpr + }), + _using: createKeywordLike("using", { + startsExpr + }), + _yield: createKeywordLike("yield", { + startsExpr + }), + _asserts: createKeywordLike("asserts", { + startsExpr + }), + _checks: createKeywordLike("checks", { + startsExpr + }), + _exports: createKeywordLike("exports", { + startsExpr + }), + _global: createKeywordLike("global", { + startsExpr + }), + _implements: createKeywordLike("implements", { + startsExpr + }), + _intrinsic: createKeywordLike("intrinsic", { + startsExpr + }), + _infer: createKeywordLike("infer", { + startsExpr + }), + _is: createKeywordLike("is", { + startsExpr + }), + _mixins: createKeywordLike("mixins", { + startsExpr + }), + _proto: createKeywordLike("proto", { + startsExpr + }), + _require: createKeywordLike("require", { + startsExpr + }), + _satisfies: createKeywordLike("satisfies", { + startsExpr + }), + _keyof: createKeywordLike("keyof", { + startsExpr + }), + _readonly: createKeywordLike("readonly", { + startsExpr + }), + _unique: createKeywordLike("unique", { + startsExpr + }), + _abstract: createKeywordLike("abstract", { + startsExpr + }), + _declare: createKeywordLike("declare", { + startsExpr + }), + _enum: createKeywordLike("enum", { + startsExpr + }), + _module: createKeywordLike("module", { + startsExpr + }), + _namespace: createKeywordLike("namespace", { + startsExpr + }), + _interface: createKeywordLike("interface", { + startsExpr + }), + _type: createKeywordLike("type", { + startsExpr + }), + _opaque: createKeywordLike("opaque", { + startsExpr + }), + name: createToken("name", { + startsExpr + }), + placeholder: createToken("%%", { + startsExpr + }), + string: createToken("string", { + startsExpr + }), + num: createToken("num", { + startsExpr + }), + bigint: createToken("bigint", { + startsExpr + }), + decimal: createToken("decimal", { + startsExpr + }), + regexp: createToken("regexp", { + startsExpr + }), + privateName: createToken("#name", { + startsExpr + }), + eof: createToken("eof"), + jsxName: createToken("jsxName"), + jsxText: createToken("jsxText", { + beforeExpr + }), + jsxTagStart: createToken("jsxTagStart", { + startsExpr + }), + jsxTagEnd: createToken("jsxTagEnd") + }; + function tokenIsIdentifier(token) { + return token >= 93 && token <= 133; + } + function tokenKeywordOrIdentifierIsKeyword(token) { + return token <= 92; + } + function tokenIsKeywordOrIdentifier(token) { + return token >= 58 && token <= 133; + } + function tokenIsLiteralPropertyName(token) { + return token >= 58 && token <= 137; + } + function tokenComesBeforeExpression(token) { + return tokenBeforeExprs[token]; + } + function tokenCanStartExpression(token) { + return tokenStartsExprs[token]; + } + function tokenIsAssignment(token) { + return token >= 29 && token <= 33; + } + function tokenIsFlowInterfaceOrTypeOrOpaque(token) { + return token >= 129 && token <= 131; + } + function tokenIsLoop(token) { + return token >= 90 && token <= 92; + } + function tokenIsKeyword(token) { + return token >= 58 && token <= 92; + } + function tokenIsOperator(token) { + return token >= 39 && token <= 59; + } + function tokenIsPostfix(token) { + return token === 34; + } + function tokenIsPrefix(token) { + return tokenPrefixes[token]; + } + function tokenIsTSTypeOperator(token) { + return token >= 121 && token <= 123; + } + function tokenIsTSDeclarationStart(token) { + return token >= 124 && token <= 130; + } + function tokenLabelName(token) { + return tokenLabels[token]; + } + function tokenOperatorPrecedence(token) { + return tokenBinops[token]; + } + function tokenIsRightAssociative(token) { + return token === 57; + } + function tokenIsTemplate(token) { + return token >= 24 && token <= 25; + } + function getExportedToken(token) { + return tokenTypes[token]; + } + tokenTypes[8].updateContext = context => { + context.pop(); + }; + tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { + context.push(types.brace); + }; + tokenTypes[22].updateContext = context => { + if (context[context.length - 1] === types.template) { + context.pop(); + } else { + context.push(types.template); + } + }; + tokenTypes[143].updateContext = context => { + context.push(types.j_expr, types.j_oTag); + }; + let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; + let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; + const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); + const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); + nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; + const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; + const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; + } + function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); + } + function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); + } + const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] + }; + const keywords = new Set(reservedWords.keyword); + const reservedWordsStrictSet = new Set(reservedWords.strict); + const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; + } + function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); + } + function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); + } + function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); + } + function isKeyword(word) { + return keywords.has(word); + } + function isIteratorStart(current, next, next2) { + return current === 64 && next === 64 && isIdentifierStart(next2); + } + const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]); + function canBeReservedWord(word) { + return reservedWordLikeSet.has(word); + } + class Scope { + constructor(flags) { + this.flags = 0; + this.names = new Map(); + this.firstLexicalName = ""; + this.flags = flags; + } + } + class ScopeHandler { + constructor(parser, inModule) { + this.parser = void 0; + this.scopeStack = []; + this.inModule = void 0; + this.undefinedExports = new Map(); + this.parser = parser; + this.inModule = inModule; + } + get inTopLevel() { + return (this.currentScope().flags & 1) > 0; + } + get inFunction() { + return (this.currentVarScopeFlags() & 2) > 0; + } + get allowSuper() { + return (this.currentThisScopeFlags() & 16) > 0; + } + get allowDirectSuper() { + return (this.currentThisScopeFlags() & 32) > 0; + } + get allowNewTarget() { + return (this.currentThisScopeFlags() & 512) > 0; + } + get inClass() { + return (this.currentThisScopeFlags() & 64) > 0; + } + get inClassAndNotInNonArrowFunction() { + const flags = this.currentThisScopeFlags(); + return (flags & 64) > 0 && (flags & 2) === 0; + } + get inStaticBlock() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 128) { + return true; + } + if (flags & (1667 | 64)) { + return false; + } + } + } + get inNonArrowFunction() { + return (this.currentThisScopeFlags() & 2) > 0; + } + get inBareCaseStatement() { + return (this.currentScope().flags & 256) > 0; + } + get treatFunctionsAsVar() { + return this.treatFunctionsAsVarInScope(this.currentScope()); + } + createScope(flags) { + return new Scope(flags); + } + enter(flags) { + this.scopeStack.push(this.createScope(flags)); + } + exit() { + const scope = this.scopeStack.pop(); + return scope.flags; + } + treatFunctionsAsVarInScope(scope) { + return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1); + } + declareName(name, bindingType, loc) { + let scope = this.currentScope(); + if (bindingType & 8 || bindingType & 16) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + let type = scope.names.get(name) || 0; + if (bindingType & 16) { + type = type | 4; + } else { + if (!scope.firstLexicalName) { + scope.firstLexicalName = name; + } + type = type | 2; + } + scope.names.set(name, type); + if (bindingType & 8) { + this.maybeExportDefined(scope, name); + } + } else if (bindingType & 4) { + for (let i = this.scopeStack.length - 1; i >= 0; --i) { + scope = this.scopeStack[i]; + this.checkRedeclarationInScope(scope, name, bindingType, loc); + scope.names.set(name, (scope.names.get(name) || 0) | 1); + this.maybeExportDefined(scope, name); + if (scope.flags & 1667) break; + } + } + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + maybeExportDefined(scope, name) { + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + checkRedeclarationInScope(scope, name, bindingType, loc) { + if (this.isRedeclaredInScope(scope, name, bindingType)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + } + isRedeclaredInScope(scope, name, bindingType) { + if (!(bindingType & 1)) return false; + if (bindingType & 8) { + return scope.names.has(name); + } + const type = scope.names.get(name) || 0; + if (bindingType & 16) { + return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0; + } + return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0; + } + checkLocalExport(id) { + const { + name + } = id; + const topLevelScope = this.scopeStack[0]; + if (!topLevelScope.names.has(name)) { + this.undefinedExports.set(name, id.loc.start); + } + } + currentScope() { + return this.scopeStack[this.scopeStack.length - 1]; + } + currentVarScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 1667) { + return flags; + } + } + } + currentThisScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & (1667 | 64) && !(flags & 4)) { + return flags; + } + } + } + } + class FlowScope extends Scope { + constructor(...args) { + super(...args); + this.declareFunctions = new Set(); + } + } + class FlowScopeHandler extends ScopeHandler { + createScope(flags) { + return new FlowScope(flags); + } + declareName(name, bindingType, loc) { + const scope = this.currentScope(); + if (bindingType & 2048) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + scope.declareFunctions.add(name); + return; + } + super.declareName(name, bindingType, loc); + } + isRedeclaredInScope(scope, name, bindingType) { + if (super.isRedeclaredInScope(scope, name, bindingType)) return true; + if (bindingType & 2048 && !scope.declareFunctions.has(name)) { + const type = scope.names.get(name); + return (type & 4) > 0 || (type & 2) > 0; + } + return false; + } + checkLocalExport(id) { + if (!this.scopeStack[0].declareFunctions.has(id.name)) { + super.checkLocalExport(id); + } + } + } + const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); + const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitialized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." + }); + function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); + } + function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; + } + const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" + }; + function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; + } + const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; + var flow = superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + finishToken(type, val) { + if (type !== 134 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ;else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(110); + if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, 2048, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(127)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(130)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(131)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } + throw this.unexpected(); + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, 5, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(0); + if (this.match(134)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + const bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(130) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); + } + body.push(super.parseImport(bodyNode)); + } else { + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); + body.push(this.flowParseDeclare(bodyNode, true)); + } + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.default = false; + delete node.exportKind; + return this.castNodeTo(node, "DeclareExportDeclaration"); + } else { + return this.castNodeTo(node, "DeclareExportAllDeclaration"); + } + } + } + throw this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(111); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + this.castNodeTo(finished, "DeclareTypeAlias"); + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + this.castNodeTo(finished, "DeclareOpaqueType"); + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "DeclareInterface"); + } + flowParseInterfaceish(node, isClass) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (isClass) { + node.implements = []; + node.mixins = []; + if (this.eatContextual(117)) { + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.eatContextual(113)) { + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { + reservedType: word + }); + } + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifier(liberal); + } + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(130); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + flowParseTypeParameterInstantiationInExpression() { + if (this.reScan_lt() !== 47) return; + return this.flowParseTypeParameterInstantiation(); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + this.state.inType = true; + node.params = []; + this.flowInTopLevelContext(() => { + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + }); + this.state.inType = oldInType; + if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + if (this.reScan_lt() !== 47) return null; + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(129); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(118)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(106)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(99) || this.isContextual(104)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); + } + } + this.expect(endDelim); + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, variance); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, variance); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, property); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, node); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, node); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + { + const node = this.startNode(); + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 10: + { + const node = this.startNode(); + this.next(); + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 134: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(135)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(136)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); + } + throw this.unexpected(); + case 135: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 136: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(129)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + throw this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 132 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + if (this.match(14)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); + } + return ident; + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + return; + } + super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(129)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(514 | 4); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = newNode; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return newNode; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExportDeclaration(node) { + if (this.isContextual(130)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(131)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.isContextual(126)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(130) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(125)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, startLoc); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { + identifierName: fullWord + }); + } + this.finishToken(132, fullWord); + } + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + this.finishOp(18, 2); + } else { + this.finishOp(17, 1); + } + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + this.readIterator(); + } else { + super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); + } + } + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (refExpressionErrors != null && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression(); + } + if (this.isContextual(113)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, param); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, param); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseFunctionParamType(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, param); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, param); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, param); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, param); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); + } + return node; + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + if (!isExport) return true; + const ch = this.lookaheadCharCode(); + return ch === 123 || ch === 42; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + if (!phase && this.match(65)) { + return; + } + node.exportKind = phase === "type" ? phase : "value"; + } else { + if (phase === "type" && this.match(55)) this.unexpected(); + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = this.cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = this.cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseFunctionParams(node, isConstructor) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); + } + return arrow.node; + } + arrowExpression = arrow.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + return; + } + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); + } + } + super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start))); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.includes(startLoc.index)) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node, false); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + } + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); + } + flowEnumErrorNumberMemberNotInitialized(loc, details) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); + } + flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 135: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 134: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, id, { + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, id, { + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(102)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + jsxParseOpeningElementAfterName(node) { + if (this.shouldParseTypes()) { + if (this.match(47) || this.match(51)) { + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + } + } + return super.jsxParseOpeningElementAfterName(node); + } + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } + }; + const entities = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" + }; + const lineBreak = /\r\n|[\r\n\u2028\u2029]/; + const lineBreakG = new RegExp(lineBreak.source, "g"); + function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } + } + function hasNewLine(input, start, end) { + for (let i = start; i < end; i++) { + if (isNewLine(input.charCodeAt(i))) { + return true; + } + } + return false; + } + const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; + const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; + function isWhitespace(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } + } + const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?" + }); + function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; + } + function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + throw new Error("Node had unexpected type: " + object.type); + } + var jsx = superClass => class JSXParserMixin extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + this.finishToken(143); + } else { + super.getTokenFromCode(ch); + } + return; + } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(142, out); + return; + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(134, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + this.state.pos = startPos; + return "&"; + } + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + this.finishToken(141, this.input.slice(start, this.state.pos)); + } + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(141)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, node); + } + return node; + case 143: + case 134: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); + } + } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(144)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(144); + return this.finishNode(node, "JSXOpeningElement"); + } + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(144); + return this.finishNode(node, "JSXClosingElement"); + } + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 143: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 142: + children.push(this.parseLiteral(this.state.value, "JSXText")); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types.j_expr)); + } + break; + } + default: + this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, closingElement); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + parseExprAtom(refExpressionErrors) { + if (this.match(143)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(143); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types.j_expr) { + this.jsxReadToken(); + return; + } + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + this.jsxReadWord(); + return; + } + if (code === 62) { + ++this.state.pos; + this.finishToken(144); + return; + } + if ((code === 34 || code === 39) && context === types.j_oTag) { + this.jsxReadString(code); + return; + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + this.finishToken(143); + return; + } + super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 143) { + context.splice(-2, 2, types.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 143) { + context.push(types.j_oTag); + } else if (type === 144) { + const out = context[context.length - 1]; + if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; + } else { + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } + }; + class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.tsNames = new Map(); + } + } + class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags === 1024) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags === 1024) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & 4096) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + let type = scope.tsNames.get(name) || 0; + if (bindingType & 1024) { + this.maybeExportDefined(scope, name); + scope.tsNames.set(name, type | 16); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & 2) { + if (!(bindingType & 1)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + type = type | 1; + } + if (bindingType & 256) { + type = type | 2; + } + if (bindingType & 512) { + type = type | 4; + } + if (bindingType & 128) { + type = type | 8; + } + if (type) scope.tsNames.set(name, type); + } + isRedeclaredInScope(scope, name, bindingType) { + const type = scope.tsNames.get(name); + if ((type & 2) > 0) { + if (bindingType & 256) { + const isConst = !!(bindingType & 512); + const wasConst = (type & 4) > 0; + return isConst !== wasConst; + } + return true; + } + if (bindingType & 128 && (type & 8) > 0) { + if (scope.names.get(name) & 2) { + return !!(bindingType & 1); + } else { + return false; + } + } + if (bindingType & 2 && (type & 1) > 0) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + const type = scope.tsNames.get(name); + if ((type & 1) > 0 || (type & 16) > 0) { + return; + } + } + super.checkLocalExport(id); + } + } + class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & 2) > 0; + } + get hasYield() { + return (this.currentFlags() & 1) > 0; + } + get hasReturn() { + return (this.currentFlags() & 4) > 0; + } + get hasIn() { + return (this.currentFlags() & 8) > 0; + } + } + function functionFlags(isAsync, isGenerator) { + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); + } + class BaseParser { + constructor() { + this.sawUnambiguousESM = false; + this.ambiguousScriptDifferentAst = false; + } + sourceToOffsetPos(sourcePos) { + return sourcePos + this.startIndex; + } + offsetToSourcePos(offsetPos) { + return offsetPos - this.startIndex; + } + hasPlugin(pluginConfig) { + if (typeof pluginConfig === "string") { + return this.plugins.has(pluginConfig); + } else { + const [pluginName, pluginOptions] = pluginConfig; + if (!this.hasPlugin(pluginName)) { + return false; + } + const actualOptions = this.plugins.get(pluginName); + for (const key of Object.keys(pluginOptions)) { + if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) { + return false; + } + } + return true; + } + } + getPluginOption(plugin, name) { + var _this$plugins$get; + return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name]; + } + } + function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } + } + function setLeadingComments(node, comments) { + if (node.leadingComments === undefined) { + node.leadingComments = comments; + } else { + node.leadingComments.unshift(...comments); + } + } + function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else { + node.innerComments.unshift(...comments); + } + } + function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } + } + class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + const { + commentsLen + } = this.state; + if (this.comments.length !== commentsLen) { + this.comments.length = commentsLen; + } + this.comments.push(comment); + this.state.commentsLen++; + } + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } + const { + start: nodeStart + } = node; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); + } else { + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; + } + break; + } + } + } + finalizeComment(commentWS) { + var _node$options; + const { + comments + } = commentWS; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); + } + if (commentWS.trailingNode !== null) { + setLeadingComments(commentWS.trailingNode, comments); + } + } else { + const node = commentWS.containingNode; + const commentStart = commentWS.start; + if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + adjustInnerComments(node, node.properties, commentWS); + break; + case "CallExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; + case "ImportExpression": + adjustInnerComments(node, [node.source, (_node$options = node.options) != null ? _node$options : null], commentWS); + break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + adjustInnerComments(node, node.params, commentWS); + break; + case "ArrayExpression": + case "ArrayPattern": + adjustInnerComments(node, node.elements, commentWS); + break; + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; + case "TSEnumDeclaration": + adjustInnerComments(node, node.members, commentWS); + break; + case "TSEnumBody": + adjustInnerComments(node, node.members, commentWS); + break; + default: + { + if (node.type === "RecordExpression") { + adjustInnerComments(node, node.properties, commentWS); + break; + } + if (node.type === "TupleExpression") { + adjustInnerComments(node, node.elements, commentWS); + break; + } + setInnerComments(node, comments); + } + } + } else { + setInnerComments(node, comments); + } + } + } + finalizeRemainingComments() { + const { + commentStack + } = this.state; + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); + } + this.state.commentStack = []; + } + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; + } + } + takeSurroundingComments(node, start, end) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + const commentStart = commentWS.start; + if (commentStart === end) { + commentWS.leadingNode = node; + } else if (commentEnd === start) { + commentWS.trailingNode = node; + } else if (commentEnd < start) { + break; + } + } + } + } + class State { + constructor() { + this.flags = 1024; + this.startIndex = void 0; + this.curLine = void 0; + this.lineStart = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.labels = []; + this.commentsLen = 0; + this.commentStack = []; + this.pos = 0; + this.type = 140; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.context = [types.brace]; + this.firstInvalidTemplateEscapePos = null; + this.strictErrors = new Map(); + this.tokensLength = 0; + } + get strict() { + return (this.flags & 1) > 0; + } + set strict(v) { + if (v) this.flags |= 1;else this.flags &= -2; + } + init({ + strictMode, + sourceType, + startIndex, + startLine, + startColumn + }) { + this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.startIndex = startIndex; + this.curLine = startLine; + this.lineStart = -startColumn; + this.startLoc = this.endLoc = new Position(startLine, startColumn, startIndex); + } + get maybeInArrowParameters() { + return (this.flags & 2) > 0; + } + set maybeInArrowParameters(v) { + if (v) this.flags |= 2;else this.flags &= -3; + } + get inType() { + return (this.flags & 4) > 0; + } + set inType(v) { + if (v) this.flags |= 4;else this.flags &= -5; + } + get noAnonFunctionType() { + return (this.flags & 8) > 0; + } + set noAnonFunctionType(v) { + if (v) this.flags |= 8;else this.flags &= -9; + } + get hasFlowComment() { + return (this.flags & 16) > 0; + } + set hasFlowComment(v) { + if (v) this.flags |= 16;else this.flags &= -17; + } + get isAmbientContext() { + return (this.flags & 32) > 0; + } + set isAmbientContext(v) { + if (v) this.flags |= 32;else this.flags &= -33; + } + get inAbstractClass() { + return (this.flags & 64) > 0; + } + set inAbstractClass(v) { + if (v) this.flags |= 64;else this.flags &= -65; + } + get inDisallowConditionalTypesContext() { + return (this.flags & 128) > 0; + } + set inDisallowConditionalTypesContext(v) { + if (v) this.flags |= 128;else this.flags &= -129; + } + get soloAwait() { + return (this.flags & 256) > 0; + } + set soloAwait(v) { + if (v) this.flags |= 256;else this.flags &= -257; + } + get inFSharpPipelineDirectBody() { + return (this.flags & 512) > 0; + } + set inFSharpPipelineDirectBody(v) { + if (v) this.flags |= 512;else this.flags &= -513; + } + get canStartJSXElement() { + return (this.flags & 1024) > 0; + } + set canStartJSXElement(v) { + if (v) this.flags |= 1024;else this.flags &= -1025; + } + get containsEsc() { + return (this.flags & 2048) > 0; + } + set containsEsc(v) { + if (v) this.flags |= 2048;else this.flags &= -2049; + } + get hasTopLevelAwait() { + return (this.flags & 4096) > 0; + } + set hasTopLevelAwait(v) { + if (v) this.flags |= 4096;else this.flags &= -4097; + } + curPosition() { + return new Position(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex); + } + clone() { + const state = new State(); + state.flags = this.flags; + state.startIndex = this.startIndex; + state.curLine = this.curLine; + state.lineStart = this.lineStart; + state.startLoc = this.startLoc; + state.endLoc = this.endLoc; + state.errors = this.errors.slice(); + state.potentialArrowAt = this.potentialArrowAt; + state.noArrowAt = this.noArrowAt.slice(); + state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(); + state.topicContext = this.topicContext; + state.labels = this.labels.slice(); + state.commentsLen = this.commentsLen; + state.commentStack = this.commentStack.slice(); + state.pos = this.pos; + state.type = this.type; + state.value = this.value; + state.start = this.start; + state.end = this.end; + state.lastTokEndLoc = this.lastTokEndLoc; + state.lastTokStartLoc = this.lastTokStartLoc; + state.context = this.context.slice(); + state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos; + state.strictErrors = this.strictErrors; + state.tokensLength = this.tokensLength; + return state; + } + } + var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; + }; + const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) + }; + const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 + }; + function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; + } + function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); + } + function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } + } + function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; + } + function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; + } + function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; + } + function buildPosition(pos, lineStart, curLine) { + return new Position(curLine, pos - lineStart, pos); + } + const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); + class Token { + constructor(state) { + const startIndex = state.startIndex || 0; + this.type = state.type; + this.value = state.value; + this.start = startIndex + state.start; + this.end = startIndex + state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); + } + } + class Tokenizer extends CommentsParser { + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.errorHandlers_readInt = { + invalidDigit: (pos, lineStart, curLine, radix) => { + if (!(this.optionFlags & 2048)) return false; + this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), { + radix + }); + return true; + }, + numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence), + unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator) + }; + this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, { + invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence), + invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint) + }); + this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: (pos, lineStart, curLine) => { + this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine)); + }, + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine)); + } + }); + this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape), + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine)); + } + }); + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.comments = []; + this.isLookahead = false; + } + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; + } + next() { + this.checkKeywordEscapes(); + if (this.optionFlags & 256) { + this.pushToken(new Token(this.state)); + } + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); + } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; + } + } + match(type) { + return this.state.type === type; + } + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + context: [this.curContext()], + inType: state.inType, + startLoc: state.startLoc, + lastTokEndLoc: state.lastTokEndLoc, + curLine: state.curLine, + lineStart: state.lineStart, + curPosition: state.curPosition + }; + } + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; + } + lookaheadCharCode() { + return this.lookaheadCharCodeSince(this.state.pos); + } + lookaheadCharCodeSince(pos) { + return this.input.charCodeAt(this.nextTokenStartSince(pos)); + } + nextTokenInLineStart() { + return this.nextTokenInLineStartSince(this.state.pos); + } + nextTokenInLineStartSince(pos) { + skipWhiteSpaceInLine.lastIndex = pos; + return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos; + } + lookaheadInLineCharCode() { + return this.input.charCodeAt(this.nextTokenInLineStart()); + } + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + return cp; + } + setStrict(strict) { + this.state.strict = strict; + if (strict) { + this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at)); + this.state.strictErrors.clear(); + } + } + curContext() { + return this.state.context[this.state.context.length - 1]; + } + nextToken() { + this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); + if (this.state.pos >= this.length) { + this.finishToken(140); + return; + } + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + } + skipBlockComment(commentEnd) { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf(commentEnd, start + 2); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + this.state.pos = end + commentEnd.length; + lineBreakG.lastIndex = start + 2; + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } + if (this.isLookahead) return; + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end + commentEnd.length), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 256) this.pushToken(comment); + return comment; + } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + } + if (this.isLookahead) return; + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 256) this.pushToken(comment); + return comment; + } + skipSpace() { + const spaceStart = this.state.pos; + const comments = this.optionFlags & 4096 ? [] : null; + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; + } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment("*/"); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + case 47: + { + const comment = this.skipLineComment(2); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + default: + break loop; + } + break; + default: + if (isWhitespace(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule && this.optionFlags & 8192) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule && this.optionFlags & 8192) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + } + } + if ((comments == null ? void 0 : comments.length) > 0) { + const end = this.state.pos; + const commentWhitespace = { + start: this.sourceToOffsetPos(spaceStart), + end: this.sourceToOffsetPos(end), + comments: comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(commentWhitespace); + } + } + finishToken(type, val) { + this.state.end = this.state.pos; + this.state.endLoc = this.state.curPosition(); + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; + if (!this.isLookahead) { + this.updateContext(prevType); + } + } + replaceToken(type) { + this.state.type = type; + this.updateContext(); + } + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + if (next >= 48 && next <= 57) { + throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition()); + } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); + if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") { + throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + if (next === 123) { + this.finishToken(7); + } else { + this.finishToken(1); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(139, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(139, this.readWord1()); + } else { + this.finishOp(27, 1); + } + } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(21); + } else { + ++this.state.pos; + this.finishToken(16); + } + } + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(31, 2); + } else { + this.finishOp(56, 1); + } + } + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(28, value); + return true; + } + readToken_mult_modulo(code) { + let type = code === 42 ? 55 : 54; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = 57; + } + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? 33 : 30; + } + this.finishOp(type, width); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(code === 124 ? 41 : 42, 2); + } + return; + } + if (code === 124) { + if (next === 62) { + this.finishOp(39, 2); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(9); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(4); + return; + } + } + if (next === 61) { + this.finishOp(30, 2); + return; + } + this.finishOp(code === 124 ? 43 : 45, 1); + } + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61 && !this.state.inType) { + this.finishOp(32, 2); + } else if (next === 94 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "^^" + }])) { + this.finishOp(37, 2); + const lookaheadCh = this.input.codePointAt(this.state.pos); + if (lookaheadCh === 94) { + this.unexpected(); + } + } else { + this.finishOp(44, 1); + } + } + readToken_atSign() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 64 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "@@" + }])) { + this.finishOp(38, 2); + } else { + this.finishOp(26, 1); + } + } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + this.finishOp(34, 2); + return; + } + if (next === 61) { + this.finishOp(30, 2); + } else { + this.finishOp(53, 1); + } + } + readToken_lt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 60) { + if (this.input.charCodeAt(pos + 2) === 61) { + this.finishOp(30, 3); + return; + } + this.finishOp(51, 2); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(47, 1); + } + readToken_gt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 62) { + const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(pos + size) === 61) { + this.finishOp(30, size + 1); + return; + } + this.finishOp(52, size); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(48, 1); + } + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; + } + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(19); + return; + } + this.finishOp(code === 61 ? 29 : 35, 1); + } + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); + if (next === 63) { + if (next2 === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(40, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(18); + } else { + ++this.state.pos; + this.finishToken(17); + } + } + getTokenFromCode(code) { + switch (code) { + case 46: + this.readToken_dot(); + return; + case 40: + ++this.state.pos; + this.finishToken(10); + return; + case 41: + ++this.state.pos; + this.finishToken(11); + return; + case 59: + ++this.state.pos; + this.finishToken(13); + return; + case 44: + ++this.state.pos; + this.finishToken(12); + return; + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(2); + } else { + ++this.state.pos; + this.finishToken(0); + } + return; + case 93: + ++this.state.pos; + this.finishToken(3); + return; + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(6); + } else { + ++this.state.pos; + this.finishToken(5); + } + return; + case 125: + ++this.state.pos; + this.finishToken(8); + return; + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(15, 2); + } else { + ++this.state.pos; + this.finishToken(14); + } + return; + case 63: + this.readToken_question(); + return; + case 96: + this.readTemplateToken(); + return; + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; + case 34: + case 39: + this.readString(code); + return; + case 47: + this.readToken_slash(); + return; + case 37: + case 42: + this.readToken_mult_modulo(code); + return; + case 124: + case 38: + this.readToken_pipe_amp(code); + return; + case 94: + this.readToken_caret(); + return; + case 43: + case 45: + this.readToken_plus_min(code); + return; + case 60: + this.readToken_lt(); + return; + case 62: + this.readToken_gt(); + return; + case 61: + case 33: + this.readToken_eq_excl(code); + return; + case 126: + this.finishOp(36, 1); + return; + case 64: + this.readToken_atSign(); + return; + case 35: + this.readToken_numberSign(); + return; + case 92: + this.readWord(); + return; + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } + } + throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), { + unexpected: String.fromCodePoint(code) + }); + } + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } + readRegexp() { + const startLoc = this.state.startLoc; + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + const ch = this.input.charCodeAt(pos); + if (isNewLine(ch)) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } + escaped = ch === 92; + } + } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; + const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); + if (VALID_REGEX_FLAGS.has(cp)) { + if (cp === 118) { + if (mods.includes("u")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } else if (cp === 117) { + if (mods.includes("v")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } + if (mods.includes(char)) { + this.raise(Errors.DuplicateRegExpFlags, nextPos()); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(Errors.MalformedRegExpFlags, nextPos()); + } else { + break; + } + ++pos; + mods += char; + } + this.state.pos = pos; + this.finishToken(138, { + pattern: content, + flags: mods + }); + } + readInt(radix, len, forceLen = false, allowNumSeparator = true) { + const { + n, + pos + } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false); + this.state.pos = pos; + return n; + } + readRadixNumber(radix) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); + if (val == null) { + this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), { + radix + }); + } + const next = this.input.charCodeAt(this.state.pos); + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(Errors.InvalidDecimal, startLoc); + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + if (isBigInt) { + const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(136, str); + return; + } + this.finishToken(135, val); + } + readNumber(startsWithDot) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isFloat = false; + let isBigInt = false; + let hasExponent = false; + let isOctal = false; + if (!startsWithDot && this.readInt(10) === null) { + this.raise(Errors.InvalidNumber, this.state.curPosition()); + } + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos)); + } + } + isOctal = hasLeadingZero && !/[89]/.test(integer); + } + let next = this.input.charCodeAt(this.state.pos); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); + if (next === 43 || next === 45) { + ++this.state.pos; + } + if (this.readInt(10) === null) { + this.raise(Errors.InvalidOrMissingExponent, startLoc); + } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(Errors.InvalidBigIntLiteral, startLoc); + } + ++this.state.pos; + isBigInt = true; + } + if (next === 109) { + this.expectPlugin("decimal", this.state.curPosition()); + if (hasExponent || hasLeadingZero) { + this.raise(Errors.InvalidDecimal, startLoc); + } + ++this.state.pos; + var isDecimal = true; + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (isBigInt) { + this.finishToken(136, str); + return; + } + if (isDecimal) { + this.finishToken(137, str); + return; + } + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(135, val); + } + readCodePoint(throwOnInvalid) { + const { + code, + pos + } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint); + this.state.pos = pos; + return code; + } + readString(quote) { + const { + str, + pos, + curLine, + lineStart + } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + this.finishToken(134, str); + } + readTemplateContinuation() { + if (!this.match(8)) { + this.unexpected(null, 8); + } + this.state.pos--; + this.readTemplateToken(); + } + readTemplateToken() { + const opening = this.input[this.state.pos]; + const { + str, + firstInvalidLoc, + pos, + curLine, + lineStart + } = readStringContents("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + if (firstInvalidLoc) { + this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, this.sourceToOffsetPos(firstInvalidLoc.pos)); + } + if (this.input.codePointAt(pos) === 96) { + this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); + } else { + this.state.pos++; + this.finishToken(25, firstInvalidLoc ? null : opening + str + "${"); + } + } + recordStrictModeErrors(toParseError, at) { + const index = at.index; + if (this.state.strict && !this.state.strictErrors.has(index)) { + this.raise(toParseError, at); + } else { + this.state.strictErrors.set(index, [toParseError, at]); + } + } + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; + } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.curPosition(); + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(Errors.MissingUnicodeEscape, this.state.curPosition()); + chunkStart = this.state.pos - 1; + continue; + } + ++this.state.pos; + const esc = this.readCodePoint(true); + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(Errors.EscapedCharNotAnIdentifier, escStart); + } + word += String.fromCodePoint(esc); + } + chunkStart = this.state.pos; + } else { + break; + } + } + return word + this.input.slice(chunkStart, this.state.pos); + } + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word); + if (type !== undefined) { + this.finishToken(type, tokenLabelName(type)); + } else { + this.finishToken(132, word); + } + } + checkKeywordEscapes() { + const { + type + } = this.state; + if (tokenIsKeyword(type) && this.state.containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, { + reservedWord: tokenLabelName(type) + }); + } + } + raise(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const error = toParseError(loc, details); + if (!(this.optionFlags & 2048)) throw error; + if (!this.isLookahead) this.state.errors.push(error); + return error; + } + raiseOverwrite(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const pos = loc.index; + const errors = this.state.errors; + for (let i = errors.length - 1; i >= 0; i--) { + const error = errors[i]; + if (error.loc.index === pos) { + return errors[i] = toParseError(loc, details); + } + if (error.loc.index < pos) break; + } + return this.raise(toParseError, at, details); + } + updateContext(prevType) {} + unexpected(loc, type) { + throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, { + expected: type ? tokenLabelName(type) : null + }); + } + expectPlugin(pluginName, loc) { + if (this.hasPlugin(pluginName)) { + return true; + } + throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, { + missingPlugin: [pluginName] + }); + } + expectOnePlugin(pluginNames) { + if (!pluginNames.some(name => this.hasPlugin(name))) { + throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, { + missingPlugin: pluginNames + }); + } + } + errorBuilder(error) { + return (pos, lineStart, curLine) => { + this.raise(error, buildPosition(pos, lineStart, curLine)); + }; + } + } + class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } + } + class ClassScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.parser = parser; + } + current() { + return this.stack[this.stack.length - 1]; + } + enter() { + this.stack.push(new ClassScope()); + } + exit() { + const oldClassScope = this.stack.pop(); + const current = this.current(); + for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, loc); + } + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } + } + declarePrivateName(name, elementType, loc) { + const { + privateNames, + loneAccessors, + undefinedPrivateNames + } = this.current(); + let redefined = privateNames.has(name); + if (elementType & 3) { + const accessor = redefined && loneAccessors.get(name); + if (accessor) { + const oldStatic = accessor & 4; + const newStatic = elementType & 4; + const oldKind = accessor & 3; + const newKind = elementType & 3; + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) loneAccessors.delete(name); + } else if (!redefined) { + loneAccessors.set(name, elementType); + } + } + if (redefined) { + this.parser.raise(Errors.PrivateNameRedeclaration, loc, { + identifierName: name + }); + } + privateNames.add(name); + undefinedPrivateNames.delete(name); + } + usePrivateName(name, loc) { + let classScope; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } + if (classScope) { + classScope.undefinedPrivateNames.set(name, loc); + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } + } + class ExpressionScope { + constructor(type = 0) { + this.type = type; + } + canBeArrowParameterDeclaration() { + return this.type === 2 || this.type === 1; + } + isCertainlyParameterDeclaration() { + return this.type === 3; + } + } + class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.declarationErrors = new Map(); + } + recordDeclarationError(ParsingErrorClass, at) { + const index = at.index; + this.declarationErrors.set(index, [ParsingErrorClass, at]); + } + clearDeclarationError(index) { + this.declarationErrors.delete(index); + } + iterateErrors(iterator) { + this.declarationErrors.forEach(iterator); + } + } + class ExpressionScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = [new ExpressionScope()]; + this.parser = parser; + } + enter(scope) { + this.stack.push(scope); + } + exit() { + this.stack.pop(); + } + recordParameterInitializerError(toParseError, node) { + const origin = node.loc.start; + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(toParseError, origin); + } else { + return; + } + scope = stack[--i]; + } + this.parser.raise(toParseError, origin); + } + recordArrowParameterBindingError(error, node) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + const origin = node.loc.start; + if (scope.isCertainlyParameterDeclaration()) { + this.parser.raise(error, origin); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(error, origin); + } else { + return; + } + } + recordAsyncArrowParametersError(at) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === 2) { + scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at); + } + scope = stack[--i]; + } + } + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors(([toParseError, loc]) => { + this.parser.raise(toParseError, loc); + let i = stack.length - 2; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(loc.index); + scope = stack[--i]; + } + }); + } + } + function newParameterDeclarationScope() { + return new ExpressionScope(3); + } + function newArrowHeadScope() { + return new ArrowHeadParsingScope(1); + } + function newAsyncArrowScope() { + return new ArrowHeadParsingScope(2); + } + function newExpressionScope() { + return new ExpressionScope(); + } + class UtilParser extends Tokenizer { + addExtra(node, key, value, enumerable = true) { + if (!node) return; + let { + extra + } = node; + if (extra == null) { + extra = {}; + node.extra = extra; + } + if (enumerable) { + extra[key] = value; + } else { + Object.defineProperty(extra, key, { + enumerable, + value + }); + } + } + isContextual(token) { + return this.state.type === token && !this.state.containsEsc; + } + isUnparsedContextual(nameStart, name) { + if (this.input.startsWith(name, nameStart)) { + const nextCh = this.input.charCodeAt(nameStart + name.length); + return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); + } + return false; + } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); + } + eatContextual(token) { + if (this.isContextual(token)) { + this.next(); + return true; + } + return false; + } + expectContextual(token, toParseError) { + if (!this.eatContextual(token)) { + if (toParseError != null) { + throw this.raise(toParseError, this.state.startLoc); + } + this.unexpected(null, token); + } + } + canInsertSemicolon() { + return this.match(140) || this.match(8) || this.hasPrecedingLineBreak(); + } + hasPrecedingLineBreak() { + return hasNewLine(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start); + } + hasFollowingLineBreak() { + return hasNewLine(this.input, this.state.end, this.nextTokenStart()); + } + isLineTerminator() { + return this.eat(13) || this.canInsertSemicolon(); + } + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; + this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc); + } + expect(type, loc) { + if (!this.eat(type)) { + this.unexpected(loc, type); + } + } + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } + return { + node: node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; + } + throw error; + } + } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssignLoc, + doubleProtoLoc, + privateKeyLoc, + optionalParametersLoc, + voidPatternLoc + } = refExpressionErrors; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc || !!voidPatternLoc; + if (!andThrow) { + return hasErrors; + } + if (shorthandAssignLoc != null) { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + if (doubleProtoLoc != null) { + this.raise(Errors.DuplicateProto, doubleProtoLoc); + } + if (privateKeyLoc != null) { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + if (optionalParametersLoc != null) { + this.unexpected(optionalParametersLoc); + } + if (voidPatternLoc != null) { + this.raise(Errors.InvalidCoverDiscardElement, voidPatternLoc); + } + } + isLiteralPropertyName() { + return tokenIsLiteralPropertyName(this.state.type); + } + isPrivateName(node) { + return node.type === "PrivateName"; + } + getPrivateNameSV(node) { + return node.id.name; + } + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this, inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; + } + enterInitialScopes() { + let paramFlags = 0; + if (this.inModule || this.optionFlags & 1) { + paramFlags |= 2; + } + if (this.optionFlags & 32) { + paramFlags |= 1; + } + const isCommonJS = !this.inModule && this.options.sourceType === "commonjs"; + if (isCommonJS || this.optionFlags & 2) { + paramFlags |= 4; + } + this.prodParam.enter(paramFlags); + let scopeFlags = isCommonJS ? 514 : 1; + if (this.optionFlags & 4) { + scopeFlags |= 512; + } + this.scope.enter(scopeFlags); + } + checkDestructuringPrivate(refExpressionErrors) { + const { + privateKeyLoc + } = refExpressionErrors; + if (privateKeyLoc !== null) { + this.expectPlugin("destructuringPrivate", privateKeyLoc); + } + } + } + class ExpressionErrors { + constructor() { + this.shorthandAssignLoc = null; + this.doubleProtoLoc = null; + this.privateKeyLoc = null; + this.optionalParametersLoc = null; + this.voidPatternLoc = null; + } + } + class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if ((parser == null ? void 0 : parser.optionFlags) & 128) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } + } + const NodePrototype = Node.prototype; + NodePrototype.__clone = function () { + const newNode = new Node(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; + } + } + return newNode; + }; + class NodeUtils extends UtilParser { + startNode() { + const loc = this.state.startLoc; + return new Node(this, loc.index, loc); + } + startNodeAt(loc) { + return new Node(this, loc.index, loc); + } + startNodeAtNode(type) { + return this.startNodeAt(type.loc.start); + } + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEndLoc); + } + finishNodeAt(node, type, endLoc) { + node.type = type; + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 128) node.range[1] = endLoc.index; + if (this.optionFlags & 4096) { + this.processComment(node); + } + return node; + } + resetStartLocation(node, startLoc) { + node.start = startLoc.index; + node.loc.start = startLoc; + if (this.optionFlags & 128) node.range[0] = startLoc.index; + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 128) node.range[1] = endLoc.index; + } + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.loc.start); + } + castNodeTo(node, type) { + node.type = type; + return node; + } + cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.name = name; + if (node.extra) cloned.extra = node.extra; + return cloned; + } + cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.value = node.value; + return cloned; + } + } + const unwrapParenthesizedExpression = node => { + return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; + }; + class LValParser extends NodeUtils { + toAssignable(node, isLHS = false) { + var _node$extra, _node$extra3; + let parenthesized = undefined; + if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { + parenthesized = unwrapParenthesizedExpression(node); + if (isLHS) { + if (parenthesized.type === "Identifier") { + this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node); + } else if (parenthesized.type !== "CallExpression" && parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } else { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + case "VoidPattern": + break; + case "ObjectExpression": + this.castNodeTo(node, "ObjectPattern"); + for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { + var _node$extra2; + const prop = node.properties[i]; + const isLast = i === last; + this.toAssignableObjectExpressionProp(prop, isLast, isLHS); + if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc); + } + } + break; + case "ObjectProperty": + { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + break; + } + case "SpreadElement": + { + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); + } + case "ArrayExpression": + this.castNodeTo(node, "ArrayPattern"); + this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); + break; + case "AssignmentExpression": + if (node.operator !== "=") { + this.raise(Errors.MissingEqInAssignment, node.left.loc.end); + } + this.castNodeTo(node, "AssignmentPattern"); + delete node.operator; + if (node.left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, node.left); + } + this.toAssignable(node.left, isLHS); + break; + case "ParenthesizedExpression": + this.toAssignable(parenthesized, isLHS); + break; + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "ObjectMethod") { + this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key); + } else if (prop.type === "SpreadElement") { + this.castNodeTo(prop, "RestElement"); + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + if (!isLast) { + this.raise(Errors.RestTrailingComma, prop); + } + } else { + this.toAssignable(prop, isLHS); + } + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + const end = exprList.length - 1; + for (let i = 0; i <= end; i++) { + const elt = exprList[i]; + if (!elt) continue; + this.toAssignableListItem(exprList, i, isLHS); + if (elt.type === "RestElement") { + if (i < end) { + this.raise(Errors.RestTrailingComma, elt); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, trailingCommaLoc); + } + } + } + } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "SpreadElement") { + this.castNodeTo(node, "RestElement"); + const arg = node.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(node, isLHS); + } + } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + case "VoidPattern": + return true; + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + case "ObjectProperty": + return this.isAssignable(node.value); + case "SpreadElement": + return this.isAssignable(node.argument); + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + case "AssignmentExpression": + return node.operator === "="; + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + default: + return false; + } + } + toReferencedList(exprList, isParenthesizedExpr) { + return exprList; + } + toReferencedListDeep(exprList, isParenthesizedExpr) { + this.toReferencedList(exprList, isParenthesizedExpr); + for (const expr of exprList) { + if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { + this.toReferencedListDeep(expr.elements); + } + } + } + parseSpread(refExpressionErrors) { + const node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined); + return this.finishNode(node, "SpreadElement"); + } + parseRestBinding() { + const node = this.startNode(); + this.next(); + const argument = this.parseBindingAtom(); + if (argument.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, argument); + } + node.argument = argument; + return this.finishNode(node, "RestElement"); + } + parseBindingAtom() { + switch (this.state.type) { + case 0: + { + const node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(3, 93, 1); + return this.finishNode(node, "ArrayPattern"); + } + case 5: + return this.parseObjectLike(8, true); + case 88: + return this.parseVoidPattern(null); + } + return this.parseIdentifier(); + } + parseBindingList(close, closeCharCode, flags) { + const allowEmpty = flags & 1; + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + } + if (allowEmpty && this.match(12)) { + elts.push(null); + } else if (this.eat(close)) { + break; + } else if (this.match(21)) { + let rest = this.parseRestBinding(); + if (this.hasPlugin("flow") || flags & 2) { + rest = this.parseFunctionParamType(rest); + } + elts.push(rest); + if (!this.checkCommaAfterRest(closeCharCode)) { + this.expect(close); + break; + } + } else { + const decorators = []; + if (flags & 2) { + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + elts.push(this.parseBindingElement(flags, decorators)); + } + } + return elts; + } + parseBindingRestProperty(prop) { + this.next(); + if (this.hasPlugin("discardBinding") && this.match(88)) { + prop.argument = this.parseVoidPattern(null); + this.raise(Errors.UnexpectedVoidPattern, prop.argument); + } else { + prop.argument = this.parseIdentifier(); + } + this.checkCommaAfterRest(125); + return this.finishNode(prop, "RestElement"); + } + parseBindingProperty() { + const { + type, + startLoc + } = this.state; + if (type === 21) { + return this.parseBindingRestProperty(this.startNode()); + } + const prop = this.startNode(); + if (type === 139) { + this.expectPlugin("destructuringPrivate", startLoc); + this.classScope.usePrivateName(this.state.value, startLoc); + prop.key = this.parsePrivateName(); + } else { + this.parsePropertyName(prop); + } + prop.method = false; + return this.parseObjPropValue(prop, startLoc, false, false, true, false); + } + parseBindingElement(flags, decorators) { + const left = this.parseMaybeDefault(); + if (this.hasPlugin("flow") || flags & 2) { + this.parseFunctionParamType(left); + } + if (decorators.length) { + left.decorators = decorators; + this.resetStartLocationFromNode(left, decorators[0]); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + return elt; + } + parseFunctionParamType(param) { + return param; + } + parseMaybeDefault(startLoc, left) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + left = left != null ? left : this.parseBindingAtom(); + if (!this.eat(29)) return left; + const node = this.startNodeAt(startLoc); + if (left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, left); + } + node.left = left; + node.right = this.parseMaybeAssignAllowIn(); + return this.finishNode(node, "AssignmentPattern"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "AssignmentPattern": + return "left"; + case "RestElement": + return "argument"; + case "ObjectProperty": + return "value"; + case "ParenthesizedExpression": + return "expression"; + case "ArrayPattern": + return "elements"; + case "ObjectPattern": + return "properties"; + case "VoidPattern": + return true; + case "CallExpression": + if (!disallowCallExpression && !this.state.strict && this.optionFlags & 8192) { + return true; + } + } + return false; + } + isOptionalMemberExpression(expression) { + return expression.type === "OptionalMemberExpression"; + } + checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false, disallowCallExpression = false) { + var _expression$extra; + const type = expression.type; + if (this.isObjectMethod(expression)) return; + const isOptionalMemberExpression = this.isOptionalMemberExpression(expression); + if (isOptionalMemberExpression || type === "MemberExpression") { + if (isOptionalMemberExpression) { + this.expectPlugin("optionalChainingAssign", expression.loc.start); + if (ancestor.type !== "AssignmentExpression") { + this.raise(Errors.InvalidLhsOptionalChaining, expression, { + ancestor + }); + } + } + if (binding !== 64) { + this.raise(Errors.InvalidPropertyBindingPattern, expression); + } + return; + } + if (type === "Identifier") { + this.checkIdentifier(expression, binding, strictModeChanged); + const { + name + } = expression; + if (checkClashes) { + if (checkClashes.has(name)) { + this.raise(Errors.ParamDupe, expression); + } else { + checkClashes.add(name); + } + } + return; + } else if (type === "VoidPattern" && ancestor.type === "CatchClause") { + this.raise(Errors.VoidPatternCatchClauseParam, expression); + } + const unwrappedExpression = unwrapParenthesizedExpression(expression); + disallowCallExpression || (disallowCallExpression = unwrappedExpression.type === "CallExpression" && (unwrappedExpression.callee.type === "Import" || unwrappedExpression.callee.type === "Super")); + const validity = this.isValidLVal(type, disallowCallExpression, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + if (validity === true) return; + if (validity === false) { + const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding; + this.raise(ParseErrorClass, expression, { + ancestor + }); + return; + } + let key, isParenthesizedExpression; + if (typeof validity === "string") { + key = validity; + isParenthesizedExpression = type === "ParenthesizedExpression"; + } else { + [key, isParenthesizedExpression] = validity; + } + const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { + type + } : ancestor; + const val = expression[key]; + if (Array.isArray(val)) { + for (const child of val) { + if (child) { + this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, true); + } + } + } else if (val) { + this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, disallowCallExpression); + } + } + checkIdentifier(at, bindingType, strictModeChanged = false) { + if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) { + if (bindingType === 64) { + this.raise(Errors.StrictEvalArguments, at, { + referenceName: at.name + }); + } else { + this.raise(Errors.StrictEvalArgumentsBinding, at, { + bindingName: at.name + }); + } + } + if (bindingType & 8192 && at.name === "let") { + this.raise(Errors.LetInLexicalBinding, at); + } + if (!(bindingType & 64)) { + this.declareNameFromIdentifier(at, bindingType); + } + } + declareNameFromIdentifier(identifier, binding) { + this.scope.declareName(identifier.name, binding, identifier.loc.start); + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + case "Identifier": + case "MemberExpression": + break; + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + default: + this.raise(Errors.InvalidRestAssignmentPattern, node); + } + } + checkCommaAfterRest(close) { + if (!this.match(12)) { + return false; + } + this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc); + return true; + } + } + const keywordAndTSRelationalOperator = /in(?:stanceof)?|as|satisfies/y; + function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } + return x; + } + function assert(x) { + if (!x) { + throw new Error("Assert fail"); + } + } + const TSErrors = ParseErrorEnum`typescript`({ + AbstractMethodHasImplementation: ({ + methodName + }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`, + AbstractPropertyHasInitializer: ({ + propertyName + }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, + AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: ({ + kind + }) => `'declare' is not allowed in ${kind}ters.`, + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: ({ + modifier + }) => `Accessibility modifier already seen: '${modifier}'.`, + DuplicateModifier: ({ + modifier + }) => `Duplicate modifier: '${modifier}'.`, + EmptyHeritageClauseType: ({ + token + }) => `'${token}' list cannot be empty.`, + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier", + IncompatibleModifiers: ({ + modifiers + }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`, + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: ({ + modifier + }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`, + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidHeritageClauseType: ({ + token + }) => `'${token}' list can only include identifiers or qualified-names with optional type arguments.`, + InvalidModifierOnAwaitUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on an await using declaration.`, + InvalidModifierOnTypeMember: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type member.`, + InvalidModifierOnTypeParameter: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`, + InvalidModifierOnTypeParameterPositions: ({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifierOnUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on a using declaration.`, + InvalidModifiersOrder: ({ + orderedModifiers + }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, + InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifier: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: ({ + modifier + }) => `Private elements cannot have an accessibility modifier ('${modifier}').`, + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.", + ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SingleTypeParameterWithoutTrailingComma: ({ + typeParameterName + }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: ({ + type + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`, + UsingDeclarationInAmbientContext: kind => `'${kind}' declarations are not allowed in ambient contexts.` + }); + function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; + case "boolean": + return "TSBooleanKeyword"; + case "bigint": + return "TSBigIntKeyword"; + case "never": + return "TSNeverKeyword"; + case "number": + return "TSNumberKeyword"; + case "object": + return "TSObjectKeyword"; + case "string": + return "TSStringKeyword"; + case "symbol": + return "TSSymbolKeyword"; + case "undefined": + return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; + default: + return undefined; + } + } + function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; + } + function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; + } + var typescript = superClass => class TypeScriptParserMixin extends superClass { + constructor(...args) { + super(...args); + this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out"], + disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + this.tsParseConstModifier = this.tsParseModifiers.bind(this, { + allowedModifiers: ["const"], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out", "const"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + getScopeHandler() { + return TypeScriptScopeHandler; + } + tsIsIdentifier() { + return tokenIsIdentifier(this.state.type); + } + tsTokenCanFollowModifier() { + return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || this.isLiteralPropertyName(); + } + tsNextTokenOnSameLineAndCanFollowModifier() { + this.next(); + if (this.hasPrecedingLineBreak()) { + return false; + } + return this.tsTokenCanFollowModifier(); + } + tsNextTokenCanFollowModifier() { + if (this.match(106)) { + this.next(); + return this.tsTokenCanFollowModifier(); + } + return this.tsNextTokenOnSameLineAndCanFollowModifier(); + } + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock, hasSeenStaticModifier) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) { + return undefined; + } + const modifier = this.state.value; + if (allowedModifiers.includes(modifier)) { + if (hasSeenStaticModifier && this.match(106)) { + return undefined; + } + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } + } + return undefined; + } + tsParseModifiers({ + allowedModifiers, + disallowedModifiers, + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember + }, modified) { + const enforceOrder = (loc, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(TSErrors.InvalidModifiersOrder, loc, { + orderedModifiers: [before, after] + }); + } + }; + const incompatible = (loc, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(TSErrors.IncompatibleModifiers, loc, { + modifiers: [mod1, mod2] + }); + } + }; + for (;;) { + const { + startLoc + } = this.state; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock, modified.static); + if (!modifier) break; + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, modifier, "override"); + enforceOrder(startLoc, modifier, modifier, "static"); + enforceOrder(startLoc, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); + } else { + if (hasOwnProperty.call(modified, modifier)) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, "static", "readonly"); + enforceOrder(startLoc, modifier, "static", "override"); + enforceOrder(startLoc, modifier, "override", "readonly"); + enforceOrder(startLoc, modifier, "abstract", "override"); + incompatible(startLoc, modifier, "declare", "override"); + incompatible(startLoc, modifier, "static", "abstract"); + } + modified[modifier] = true; + } + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(errorTemplate, startLoc, { + modifier + }); + } + } + } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(8); + case "HeritageClauseElement": + return this.match(5); + case "TupleElementTypes": + return this.match(3); + case "TypeParametersOrArguments": + return this.match(48); + } + } + tsParseList(kind, parseElement) { + const result = []; + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); + } + return result; + } + tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos)); + } + tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) { + const result = []; + let trailingCommaPos = -1; + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; + } + trailingCommaPos = -1; + const element = parseElement(); + if (element == null) { + return undefined; + } + result.push(element); + if (this.eat(12)) { + trailingCommaPos = this.state.lastTokStartLoc.index; + continue; + } + if (this.tsIsListTerminator(kind)) { + break; + } + if (expectSuccess) { + this.expect(12); + } + return undefined; + } + if (refTrailingCommaPos) { + refTrailingCommaPos.value = trailingCommaPos; + } + return result; + } + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) { + if (!skipFirstToken) { + if (bracket) { + this.expect(0); + } else { + this.expect(47); + } + } + const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos); + if (bracket) { + this.expect(3); + } else { + this.expect(48); + } + return result; + } + tsParseImportType() { + const node = this.startNode(); + this.expect(83); + this.expect(10); + if (!this.match(134)) { + this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc); + node.argument = super.parseExprAtom(); + } else { + node.argument = this.parseStringLiteral(this.state.value); + } + if (this.eat(12)) { + node.options = this.tsParseImportTypeOptions(); + } else { + node.options = null; + } + this.expect(11); + if (this.eat(16)) { + node.qualifier = this.tsParseEntityName(1 | 2); + } + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSImportType"); + } + tsParseImportTypeOptions() { + const node = this.startNode(); + this.expect(5); + const withProperty = this.startNode(); + if (this.isContextual(76)) { + withProperty.method = false; + withProperty.key = this.parseIdentifier(true); + withProperty.computed = false; + withProperty.shorthand = false; + } else { + this.unexpected(null, 76); + } + this.expect(14); + withProperty.value = this.tsParseImportTypeWithPropertyValue(); + node.properties = [this.finishObjectProperty(withProperty)]; + this.eat(12); + this.expect(8); + return this.finishNode(node, "ObjectExpression"); + } + tsParseImportTypeWithPropertyValue() { + const node = this.startNode(); + const properties = []; + this.expect(5); + while (!this.match(8)) { + const type = this.state.type; + if (tokenIsIdentifier(type) || type === 134) { + properties.push(super.parsePropertyDefinition(null)); + } else { + this.unexpected(); + } + this.eat(12); + } + node.properties = properties; + this.next(); + return this.finishNode(node, "ObjectExpression"); + } + tsParseEntityName(flags) { + let entity; + if (flags & 1 && this.match(78)) { + if (flags & 2) { + entity = this.parseIdentifier(true); + } else { + const node = this.startNode(); + this.next(); + entity = this.finishNode(node, "ThisExpression"); + } + } else { + entity = this.parseIdentifier(!!(flags & 1)); + } + while (this.eat(16)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(!!(flags & 1)); + entity = this.finishNode(node, "TSQualifiedName"); + } + return entity; + } + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(1); + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeReference"); + } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(87); + if (this.match(83)) { + node.exprName = this.tsParseImportType(); + } else { + node.exprName = this.tsParseEntityName(1 | 2); + } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeQuery"); + } + tsParseTypeParameter(parseModifiers) { + const node = this.startNode(); + parseModifiers(node); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(81); + node.default = this.tsEatThenParseType(29); + return this.finishNode(node, "TSTypeParameter"); + } + tsTryParseTypeParameters(parseModifiers) { + if (this.match(47)) { + return this.tsParseTypeParameters(parseModifiers); + } + } + tsParseTypeParameters(parseModifiers) { + const node = this.startNode(); + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + const refTrailingCommaPos = { + value: -1 + }; + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeParameters, node); + } + if (refTrailingCommaPos.value !== -1) { + this.addExtra(node, "trailingComma", refTrailingCommaPos.value); + } + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === 19; + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + this.expect(10); + signature[paramsKey] = this.tsParseBindingListForSignature(); + if (returnTokenRequired) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } + } + tsParseBindingListForSignature() { + const list = super.parseBindingList(11, 41, 2); + for (const pattern of list) { + const { + type + } = pattern; + if (type === "AssignmentPattern" || type === "TSParameterProperty") { + this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, { + type + }); + } + } + return list; + } + tsParseTypeMemberSemicolon() { + if (!this.eat(12) && !this.isLineTerminator()) { + this.expect(13); + } + } + tsParseSignatureMember(kind, node) { + this.tsFillSignature(14, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } + tsIsUnambiguouslyIndexSignature() { + this.next(); + if (tokenIsIdentifier(this.state.type)) { + this.next(); + return this.match(14); + } + return false; + } + tsTryParseIndexSignature(node) { + if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return; + } + this.expect(0); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + this.expect(3); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); + } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(17)) node.optional = true; + if (this.match(10) || this.match(47)) { + if (readonly) { + this.raise(TSErrors.ReadonlyForMethodSignature, node); + } + const method = node; + if (method.kind && this.match(47)) { + this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition()); + } + this.tsFillSignature(14, method); + this.tsParseTypeMemberSemicolon(); + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + if (method.kind === "get") { + if (method[paramsKey].length > 0) { + this.raise(Errors.BadGetterArity, this.state.curPosition()); + if (this.isThisParam(method[paramsKey][0])) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + } + } else if (method.kind === "set") { + if (method[paramsKey].length !== 1) { + this.raise(Errors.BadSetterArity, this.state.curPosition()); + } else { + const firstParameter = method[paramsKey][0]; + if (this.isThisParam(firstParameter)) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()); + } + if (firstParameter.type === "RestElement") { + this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition()); + } + } + if (method[returnTypeKey]) { + this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]); + } + } else { + method.kind = "method"; + } + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = node; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); + } + } + tsParseTypeMember() { + const node = this.startNode(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } + if (this.match(77)) { + const id = this.startNode(); + this.next(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); + } + } + this.tsParseModifiers({ + allowedModifiers: ["readonly"], + disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"] + }, node); + const idx = this.tsTryParseIndexSignature(node); + if (idx) { + return idx; + } + super.parsePropertyName(node); + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + super.parsePropertyName(node); + if (!this.match(10) && !this.match(47)) { + this.unexpected(null, 10); + } + } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); + } + tsParseObjectTypeMembers() { + this.expect(5); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(8); + return members; + } + tsIsStartOfMappedType() { + this.next(); + if (this.eat(53)) { + return this.isContextual(122); + } + if (this.isContextual(122)) { + this.next(); + } + if (!this.match(0)) { + return false; + } + this.next(); + if (!this.tsIsIdentifier()) { + return false; + } + this.next(); + return this.match(58); + } + tsParseMappedType() { + const node = this.startNode(); + this.expect(5); + if (this.match(53)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual(122); + } else if (this.eatContextual(122)) { + node.readonly = true; + } + this.expect(0); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsExpectThenParseType(58); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + node.nameType = this.eatContextual(93) ? this.tsParseType() : null; + this.expect(3); + if (this.match(53)) { + node.optional = this.state.value; + this.next(); + this.expect(17); + } else if (this.eat(17)) { + node.optional = true; + } + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(8); + return this.finishNode(node, "TSMappedType"); + } + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + let seenOptionalElement = false; + node.elementTypes.forEach(elementNode => { + const { + type + } = elementNode; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode); + } + seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); + }); + return this.finishNode(node, "TSTupleType"); + } + tsParseTupleElementType() { + const restStartLoc = this.state.startLoc; + const rest = this.eat(21); + const { + startLoc + } = this.state; + let labeled; + let label; + let optional; + let type; + const isWord = tokenIsKeywordOrIdentifier(this.state.type); + const chAfterWord = isWord ? this.lookaheadCharCode() : null; + if (chAfterWord === 58) { + labeled = true; + optional = false; + label = this.parseIdentifier(true); + this.expect(14); + type = this.tsParseType(); + } else if (chAfterWord === 63) { + optional = true; + const wordName = this.state.value; + const typeOrLabel = this.tsParseNonArrayType(); + if (this.lookaheadCharCode() === 58) { + labeled = true; + label = this.createIdentifier(this.startNodeAt(startLoc), wordName); + this.expect(17); + this.expect(14); + type = this.tsParseType(); + } else { + labeled = false; + type = typeOrLabel; + this.expect(17); + } + } else { + type = this.tsParseType(); + optional = this.eat(17); + labeled = this.eat(14); + } + if (labeled) { + let labeledNode; + if (label) { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + labeledNode.label = label; + labeledNode.elementType = type; + if (this.eat(17)) { + labeledNode.optional = true; + this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc); + } + } else { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + this.raise(TSErrors.InvalidTupleMemberLabel, type); + labeledNode.label = type; + labeledNode.elementType = this.tsParseType(); + } + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAt(startLoc); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + if (rest) { + const restNode = this.startNodeAt(restStartLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + return type; + } + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(10); + node.typeAnnotation = this.tsParseType(); + this.expect(11); + return this.finishNode(node, "TSParenthesizedType"); + } + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); + this.next(); + } + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); + return this.finishNode(node, type); + } + tsParseLiteralTypeNode() { + const node = this.startNode(); + switch (this.state.type) { + case 135: + case 136: + case 134: + case 85: + case 86: + node.literal = super.parseExprAtom(); + break; + default: + this.unexpected(); + } + return this.finishNode(node, "TSLiteralType"); + } + tsParseTemplateLiteralType() { + const node = this.startNode(); + node.literal = super.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); + } + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; + } + } + tsParseNonArrayType() { + switch (this.state.type) { + case 134: + case 135: + case 136: + case 85: + case 86: + return this.tsParseLiteralTypeNode(); + case 53: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + if (nextToken.type !== 135 && nextToken.type !== 136) { + this.unexpected(); + } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } + break; + case 78: + return this.tsParseThisTypeOrThisTypePredicate(); + case 87: + return this.tsParseTypeQuery(); + case 83: + return this.tsParseImportType(); + case 5: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + case 0: + return this.tsParseTupleType(); + case 10: + return this.tsParseParenthesizedType(); + case 25: + case 24: + return this.tsParseTemplateLiteralType(); + default: + { + const { + type + } = this.state; + if (tokenIsIdentifier(type) || type === 88 || type === 84) { + const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); + if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, nodeType); + } + return this.tsParseTypeReference(); + } + } + } + throw this.unexpected(); + } + tsParseArrayTypeOrHigher() { + const { + startLoc + } = this.state; + let type = this.tsParseNonArrayType(); + while (!this.hasPrecedingLineBreak() && this.eat(0)) { + if (this.match(3)) { + const node = this.startNodeAt(startLoc); + node.elementType = type; + this.expect(3); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAt(startLoc); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(3); + type = this.finishNode(node, "TSIndexedAccessType"); + } + } + return type; + } + tsParseTypeOperator() { + const node = this.startNode(); + const operator = this.state.value; + this.next(); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly(node); + } + return this.finishNode(node, "TSTypeOperator"); + } + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; + default: + this.raise(TSErrors.UnexpectedReadonly, node); + } + } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual(115); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); + } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { + const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + } + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; + } + node.types = types; + return this.finishNode(node, kind); + } + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45); + } + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43); + } + tsIsStartOfFunctionType() { + if (this.match(47)) { + return true; + } + return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); + } + tsSkipParameterStart() { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + this.next(); + return true; + } + if (this.match(5)) { + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + this.parseObjectLike(8, true); + return errors.length === previousErrorCount; + } catch (_unused) { + return false; + } + } + if (this.match(0)) { + this.next(); + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + super.parseBindingList(3, 93, 1); + return errors.length === previousErrorCount; + } catch (_unused2) { + return false; + } + } + return false; + } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); + if (this.match(11) || this.match(21)) { + return true; + } + if (this.tsSkipParameterStart()) { + if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) { + return true; + } + if (this.match(11)) { + this.next(); + if (this.match(19)) { + return true; + } + } + } + return false; + } + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + if (asserts && this.match(78)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); + } + tsTryParseTypeOrTypePredicateAnnotation() { + if (this.match(14)) { + return this.tsParseTypeOrTypePredicateAnnotation(14); + } + } + tsTryParseTypeAnnotation() { + if (this.match(14)) { + return this.tsParseTypeAnnotation(); + } + } + tsTryParseType() { + return this.tsEatThenParseType(14); + } + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + this.next(); + return id; + } + } + tsParseTypePredicateAsserts() { + if (this.state.type !== 109) { + return false; + } + const containsEsc = this.state.containsEsc; + this.next(); + if (!tokenIsIdentifier(this.state.type) && !this.match(78)) { + return false; + } + if (containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, { + reservedWord: "asserts" + }); + } + return true; + } + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(14); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); + } + tsParseType() { + assert(this.state.inType); + const type = this.tsParseNonConditionalType(); + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { + return type; + } + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); + this.expect(17); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + this.expect(14); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + return this.finishNode(node, "TSConditionalType"); + } + isAbstractConstructorSignature() { + return this.isContextual(124) && this.isLookaheadContextual("new"); + } + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); + } + if (this.match(77)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); + } + return this.tsParseUnionTypeOrHigher(); + } + tsParseTypeAssertion() { + if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc); + } + const node = this.startNode(); + node.typeAnnotation = this.tsInType(() => { + this.next(); + return this.match(75) ? this.tsParseTypeReference() : this.tsParseType(); + }); + this.expect(48); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } + tsParseHeritageClause(token) { + const originalStartLoc = this.state.startLoc; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + node.expression = this.tsParseEntityName(1 | 2); + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSExpressionWithTypeArguments"); + }); + if (!delimitedList.length) { + this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, { + token + }); + } + return delimitedList; + } + tsParseInterfaceDeclaration(node, properties = {}) { + if (this.hasFollowingLineBreak()) return null; + this.expectContextual(129); + if (properties.declare) node.declare = true; + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 130); + } else { + node.id = null; + this.raise(TSErrors.MissingInterfaceName, this.state.startLoc); + } + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (this.eat(81)) { + node.extends = this.tsParseHeritageClause("extends"); + } + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); + } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 2); + node.typeAnnotation = this.tsInType(() => { + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); + this.expect(29); + if (this.isContextual(114) && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); + } + tsInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + try { + return cb(); + } finally { + this.state.inType = oldInType; + } + } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { + if (this.match(token)) { + return this.tsNextThenParseType(); + } + } + tsExpectThenParseType(token) { + return this.tsInType(() => { + this.expect(token); + return this.tsParseType(); + }); + } + tsNextThenParseType() { + return this.tsInType(() => { + this.next(); + return this.tsParseType(); + }); + } + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + if (this.eat(29)) { + node.initializer = super.parseMaybeAssignAllowIn(); + } + return this.finishNode(node, "TSEnumMember"); + } + tsParseEnumDeclaration(node, properties = {}) { + if (properties.const) node.const = true; + if (properties.declare) node.declare = true; + this.expectContextual(126); + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, node.const ? 8971 : 8459); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumDeclaration"); + } + tsParseEnumBody() { + const node = this.startNode(); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumBody"); + } + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(0); + this.expect(5); + super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); + } + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); + if (!nested) { + this.checkIdentifier(node.id, 1024); + } + if (this.eat(16)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(1024); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual(112)) { + node.kind = "global"; + node.global = true; + node.id = this.parseIdentifier(); + } else if (this.match(134)) { + node.kind = "module"; + node.id = super.parseStringLiteral(this.state.value); + } else { + this.unexpected(); + } + if (this.match(5)) { + this.scope.enter(1024); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) { + node.isExport = isExport || false; + node.id = maybeDefaultIdentifier || this.parseIdentifier(); + this.checkIdentifier(node.id, 4096); + this.expect(29); + const moduleReference = this.tsParseModuleReference(); + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(TSErrors.ImportAliasHasImportType, moduleReference); + } + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); + } + tsIsExternalModuleReference() { + return this.isContextual(119) && this.lookaheadCharCode() === 40; + } + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0); + } + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual(119); + this.expect(10); + if (!this.match(134)) { + this.unexpected(); + } + node.expression = super.parseExprAtom(); + this.expect(11); + this.sawUnambiguousESM = true; + return this.finishNode(node, "TSExternalModuleReference"); + } + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; + } + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => f() || abort()); + if (result.aborted || !result.node) return; + if (result.error) this.state = result.failState; + return result.node; + } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); + if (result !== undefined && result !== false) { + return result; + } + this.state = state; + } + tsTryParseDeclare(node) { + if (this.isLineTerminator()) { + return; + } + const startType = this.state.type; + return this.tsInAmbientContext(() => { + switch (startType) { + case 68: + node.declare = true; + return super.parseFunctionStatement(node, false, false); + case 80: + node.declare = true; + return this.parseClass(node, true, false); + case 126: + return this.tsParseEnumDeclaration(node, { + declare: true + }); + case 112: + return this.tsParseAmbientExternalModuleDeclaration(node); + case 100: + if (this.state.containsEsc) { + return; + } + case 75: + case 74: + if (!this.match(75) || !this.isLookaheadContextual("enum")) { + node.declare = true; + return this.parseVarStatement(node, this.state.value, true); + } + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true, + declare: true + }); + case 107: + if (this.isUsing()) { + this.raise(TSErrors.InvalidModifierOnUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + return this.parseVarStatement(node, "using", true); + } + break; + case 96: + if (this.isAwaitUsing()) { + this.raise(TSErrors.InvalidModifierOnAwaitUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + this.next(); + return this.parseVarStatement(node, "await using", true); + } + break; + case 129: + { + const result = this.tsParseInterfaceDeclaration(node, { + declare: true + }); + if (result) return result; + } + default: + if (tokenIsIdentifier(startType)) { + return this.tsParseDeclaration(node, this.state.type, true, null); + } + } + }); + } + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.type, true, null); + } + tsParseDeclaration(node, type, next, decorators) { + switch (type) { + case 124: + if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { + return this.tsParseAbstractDeclaration(node, decorators); + } + break; + case 127: + if (this.tsCheckLineTerminator(next)) { + if (this.match(134)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (tokenIsIdentifier(this.state.type)) { + node.kind = "module"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + break; + case 128: + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + node.kind = "namespace"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + break; + case 130: + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; + } + return !this.isLineTerminator(); + } + tsTryParseGenericAsyncArrowFunction(startLoc) { + if (!this.match(47)) return; + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startLoc); + node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(19); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!res) return; + return super.parseArrowExpression(res, null, true); + } + tsParseTypeArgumentsInExpression() { + if (this.reScan_lt() !== 47) return; + return this.tsParseTypeArguments(); + } + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => this.tsInTopLevelContext(() => { + this.expect(47); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeArguments, node); + } else if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + tsIsDeclarationStart() { + return tokenIsTSDeclarationStart(this.state.type); + } + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } + parseBindingElement(flags, decorators) { + const startLoc = decorators.length ? decorators[0].loc.start : this.state.startLoc; + const modified = {}; + this.tsParseModifiers({ + allowedModifiers: ["public", "private", "protected", "override", "readonly"] + }, modified); + const accessibility = modified.accessibility; + const override = modified.override; + const readonly = modified.readonly; + if (!(flags & 4) && (accessibility || readonly || override)) { + this.raise(TSErrors.UnexpectedParameterModifier, startLoc); + } + const left = this.parseMaybeDefault(); + if (flags & 2) { + this.parseFunctionParamType(left); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startLoc); + if (decorators.length) { + pp.decorators = decorators; + } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(TSErrors.UnsupportedParameterPropertyKind, pp); + } + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); + } + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + isSimpleParameter(node) { + return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node); + } + tsDisallowOptionalPattern(node) { + for (const param of node.params) { + if (param.type !== "Identifier" && param.optional && !this.state.isAmbientContext) { + this.raise(TSErrors.PatternIsOptional, param); + } + } + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + super.setArrowFunctionParameters(node, params, trailingCommaLoc); + this.tsDisallowOptionalPattern(node); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + } + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined; + if (bodilessType && !this.match(5) && this.isLineTerminator()) { + return this.finishNode(node, bodilessType); + } + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(TSErrors.DeclareFunctionHasImplementation, node); + if (node.declare) { + return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); + } + } + this.tsDisallowOptionalPattern(node); + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkIdentifier(node.id, 1024); + } else { + super.registerFunctionStatementId(node); + } + } + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation); + } + }); + } + toReferencedList(exprList, isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(35)) { + this.state.canStartJSXElement = false; + this.next(); + const nonNullExpression = this.startNodeAt(startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + let isOptionalCall = false; + if (this.match(18) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; + } + state.optionalChainMember = isOptionalCall = true; + this.next(); + } + if (this.match(47) || this.match(51)) { + let missingParenErrorLoc; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); + if (asyncArrowFn) { + state.stop = true; + return asyncArrowFn; + } + } + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) return; + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + return; + } + if (tokenIsTemplate(this.state.type)) { + const result = super.parseTaggedTemplateExpression(base, startLoc, state); + result.typeParameters = typeArguments; + return result; + } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(); + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } + return this.finishCallExpression(node, state.optionalChainMember); + } + const tokenType = this.state.type; + if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenType !== 93 && tokenType !== 120 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + return; + } + const node = this.startNodeAt(startLoc); + node.expression = base; + node.typeParameters = typeArguments; + return this.finishNode(node, "TSInstantiationExpression"); + }); + if (missingParenErrorLoc) { + this.unexpected(missingParenErrorLoc, 10); + } + if (result) { + if (result.type === "TSInstantiationExpression") { + if (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + } + if (!this.match(16) && !this.match(18)) { + result.expression = super.stopParseSubscript(base, state); + } + } + return result; + } + } + return super.parseSubscript(base, startLoc, noCalls, state); + } + parseNewCallee(node) { + var _callee$extra; + super.parseNewCallee(node); + const { + callee + } = node; + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + node.typeParameters = callee.typeParameters; + node.callee = callee.expression; + } + } + parseExprOp(left, leftStartLoc, minPrec) { + let isSatisfies; + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) { + const node = this.startNodeAt(leftStartLoc); + node.expression = left; + node.typeAnnotation = this.tsInType(() => { + this.next(); + if (this.match(75)) { + if (isSatisfies) { + this.raise(Errors.UnexpectedKeyword, this.state.startLoc, { + keyword: "const" + }); + } + return this.tsParseTypeReference(); + } + return this.tsParseType(); + }); + this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartLoc, minPrec); + } + return super.parseExprOp(left, leftStartLoc, minPrec); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (!this.state.isAmbientContext) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + checkDuplicateExports() {} + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + const ch = this.lookaheadCharCode(); + return isExport ? ch === 123 || ch === 42 : ch !== 61; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + node.exportKind = phase === "type" ? "type" : "value"; + } else { + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImport(node) { + if (this.match(134)) { + node.importKind = "value"; + return super.parseImport(node); + } + let importNode; + if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) { + node.importKind = "value"; + return this.tsParseImportEqualsDeclaration(node); + } else if (this.isContextual(130)) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); + if (this.lookaheadCharCode() === 61) { + return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier); + } else { + importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier); + } + } else { + importNode = super.parseImport(node); + } + if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode); + } + return importNode; + } + parseExport(node, decorators) { + if (this.match(83)) { + const nodeImportEquals = node; + this.next(); + let maybeDefaultIdentifier = null; + if (this.isContextual(130) && this.isPotentialImportPhase(false)) { + maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false); + } else { + nodeImportEquals.importKind = "value"; + } + const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true); + return declaration; + } else if (this.eat(29)) { + const assign = node; + assign.expression = super.parseExpression(); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual(93)) { + const decl = node; + this.expectContextual(128); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + return super.parseExport(node, decorators); + } + } + isAbstractClass() { + return this.isContextual(124) && this.isLookaheadContextual("class"); + } + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + return this.parseClass(cls, true, true); + } + if (this.match(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseExportDefaultExpression(); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + const { + isAmbientContext + } = this.state; + const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); + if (!isAmbientContext) return declaration; + if (!node.declare && (kind === "using" || kind === "await using")) { + this.raiseOverwrite(TSErrors.UsingDeclarationInAmbientContext, node, kind); + return declaration; + } + for (const { + id, + init + } of declaration.declarations) { + if (!init) continue; + if (kind === "var" || kind === "let" || !!id.typeAnnotation) { + this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init); + } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) { + this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); + } + } + return declaration; + } + parseStatementContent(flags, decorators) { + if (!this.state.containsEsc) { + switch (this.state.type) { + case 75: + { + if (this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + break; + } + case 124: + case 125: + { + if (this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()) { + const token = this.state.type; + const node = this.startNode(); + this.next(); + const declaration = token === 125 ? this.tsTryParseDeclare(node) : this.tsParseAbstractDeclaration(node, decorators); + if (declaration) { + if (token === 125) { + declaration.declare = true; + } + return declaration; + } else { + node.expression = this.createIdentifier(this.startNodeAt(node.loc.start), token === 125 ? "declare" : "abstract"); + this.semicolon(false); + return this.finishNode(node, "ExpressionStatement"); + } + } + break; + } + case 126: + return this.tsParseEnumDeclaration(this.startNode()); + case 112: + { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 123) { + const node = this.startNode(); + return this.tsParseAmbientExternalModuleDeclaration(node); + } + break; + } + case 129: + { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + break; + } + case 127: + { + if (this.nextTokenIsIdentifierOrStringLiteralOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 127, false, decorators); + } + break; + } + case 128: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 128, false, decorators); + } + break; + } + case 130: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + } + return super.parseStatementContent(flags, decorators); + } + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } + return !!member[modifier]; + }); + } + tsIsStartOfStaticBlocks() { + return this.isContextual(106) && this.lookaheadCharCode() === 123; + } + parseClassMember(classBody, member, state) { + const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; + this.tsParseModifiers({ + allowedModifiers: modifiers, + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }, member); + const callParseClassMemberWithIsStatic = () => { + if (this.tsIsStartOfStaticBlocks()) { + this.next(); + this.next(); + if (this.tsHasSomeModifiers(member, modifiers)) { + this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition()); + } + super.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); + } + }; + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); + if (idx) { + classBody.body.push(idx); + if (member.abstract) { + this.raise(TSErrors.IndexSignatureHasAbstract, member); + } + if (member.accessibility) { + this.raise(TSErrors.IndexSignatureHasAccessibility, member, { + modifier: member.accessibility + }); + } + if (member.declare) { + this.raise(TSErrors.IndexSignatureHasDeclare, member); + } + if (member.override) { + this.raise(TSErrors.IndexSignatureHasOverride, member); + } + return; + } + if (!this.state.inAbstractClass && member.abstract) { + this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member); + } + if (member.override) { + if (!state.hadSuperClass) { + this.raise(TSErrors.OverrideNotInSubClass, member); + } + } + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(17); + if (optional) methodOrProp.optional = true; + if (methodOrProp.readonly && this.match(10)) { + this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp); + } + if (methodOrProp.declare && this.match(10)) { + this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp); + } + } + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + return super.parseConditional(expr, startLoc, refExpressionErrors); + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); + } + return node; + } + parseExportDeclaration(node) { + if (!this.state.isAmbientContext && this.isContextual(125)) { + return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); + } + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual(125); + if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) { + throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc); + } + const isIdentifier = tokenIsIdentifier(this.state.type); + const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node); + if (!declaration) return null; + if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { + node.exportKind = "type"; + } + if (isDeclare && declaration.type !== "TSImportEqualsDeclaration") { + this.resetStartLocation(declaration, startLoc); + declaration.declare = true; + } + return declaration; + } + parseClassId(node, isStatement, optionalId, bindingType) { + if ((!isStatement || optionalId) && this.isContextual(113)) { + return; + } + super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (typeParameters) node.typeParameters = typeParameters; + } + parseClassPropertyAnnotation(node) { + if (!node.optional) { + if (this.eat(35)) { + node.definite = true; + } else if (this.eat(17)) { + node.optional = true; + } + } + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); + if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) { + this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc); + } + if (node.abstract && this.match(29)) { + const { + key + } = node; + this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, { + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(TSErrors.PrivateElementHasAbstract, node); + } + if (node.accessibility) { + this.raise(TSErrors.PrivateElementHasAccessibility, node, { + modifier: node.accessibility + }); + } + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } + parseClassAccessorProperty(node) { + this.parseClassPropertyAnnotation(node); + if (node.optional) { + this.raise(TSErrors.AccessorCannotBeOptional, node); + } + return super.parseClassAccessorProperty(node); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters && isConstructor) { + this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters); + } + const { + declare = false, + kind + } = method; + if (declare && (kind === "get" || kind === "set")) { + this.raise(TSErrors.DeclareAccessor, method, { + kind + }); + } + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + declareClassPrivateMethodInScope(node, kind) { + if (node.type === "TSDeclareMethod") return; + if (node.type === "MethodDefinition" && node.value.body == null) { + return; + } + super.declareClassPrivateMethodInScope(node, kind); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass) { + if (node.superClass.type === "TSInstantiationExpression") { + const tsInstantiationExpression = node.superClass; + const superClass = tsInstantiationExpression.expression; + this.takeSurroundingComments(superClass, superClass.start, superClass.end); + const superTypeArguments = tsInstantiationExpression.typeParameters; + this.takeSurroundingComments(superTypeArguments, superTypeArguments.start, superTypeArguments.end); + node.superClass = superClass; + node.superTypeParameters = superTypeArguments; + } else if (this.match(47) || this.match(51)) { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } + } + if (this.eatContextual(113)) { + node.implements = this.tsParseHeritageClause("implements"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) prop.typeParameters = typeParameters; + return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + } + parseFunctionParams(node, isConstructor) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) { + decl.definite = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + node.returnType = this.tsParseTypeAnnotation(); + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2; + let state; + let jsx; + let typeCast; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) { + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + if (!state || state === this.state) state = this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; + typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } + expr.typeParameters = typeParameters; + return expr; + }, state); + if (!arrow.error && !arrow.aborted) { + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if (!jsx) { + assert(!this.hasPlugin("jsx")); + typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!typeCast.error) return typeCast.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrow.node) { + this.state = arrow.failState; + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; + } + throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error); + } + reportReservedArrowTypeParam(node) { + var _node$extra2; + if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra2 = node.extra) != null && _node$extra2.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedArrowTypeParam, node); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + if (!this.hasPlugin("jsx") && this.match(47)) { + return this.tsParseTypeAssertion(); + } + return super.parseMaybeUnary(refExpressionErrors, sawUnary); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + if (this.canInsertSemicolon() || !this.match(19)) abort(); + return returnType; + }); + if (result.aborted) return; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } + return super.parseArrow(node); + } + parseFunctionParamType(param) { + if (this.eat(17)) { + param.optional = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); + case "TSParameterProperty": + return true; + default: + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "ParenthesizedExpression": + this.toAssignableParenthesizedExpression(node, isLHS); + break; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + if (isLHS) { + this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, node); + } + this.toAssignable(node.expression, isLHS); + break; + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + default: + super.toAssignable(node, isLHS); + } + } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + this.toAssignable(node.expression, isLHS); + break; + default: + super.toAssignable(node, isLHS); + } + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + default: + super.checkToRestConversion(node, allowPattern); + } + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "TSTypeCastExpression": + return true; + case "TSParameterProperty": + return "parameter"; + case "TSNonNullExpression": + return "expression"; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]; + default: + return super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } + } + parseBindingAtom() { + if (this.state.type === 78) { + return this.parseIdentifier(true); + } + return super.parseBindingAtom(); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (this.match(10)) { + const call = super.parseMaybeDecoratorArguments(expr, startLoc); + call.typeParameters = typeArguments; + return call; + } + this.unexpected(null, 10); + } + return super.parseMaybeDecoratorArguments(expr, startLoc); + } + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { + this.next(); + return false; + } + return super.checkCommaAfterRest(close); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(35) || this.match(14) || super.isClassProperty(); + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation); + } + return node; + } + getTokenFromCode(code) { + if (this.state.inType) { + if (code === 62) { + this.finishOp(48, 1); + return; + } + if (code === 60) { + this.finishOp(47, 1); + return; + } + } + super.getTokenFromCode(code); + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "TSTypeCastExpression") { + exprList[index] = this.typeCastToParameter(node); + } + super.toAssignableListItem(exprList, index, isLHS); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + shouldParseArrow(params) { + if (this.match(14)) { + return params.every(expr => this.isAssignable(expr, true)); + } + return super.shouldParseArrow(params); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } + jsxParseOpeningElementAfterName(node) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression()); + if (typeArguments) { + node.typeParameters = typeArguments; + } + } + return super.jsxParseOpeningElementAfterName(node); + } + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; + } + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + return param; + } + tsInAmbientContext(cb) { + const { + isAmbientContext: oldIsAmbientContext, + strict: oldStrict + } = this.state; + this.state.isAmbientContext = true; + this.state.strict = false; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + this.state.strict = oldStrict; + } + } + parseClass(node, isStatement, optionalId) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + try { + return super.parseClass(node, isStatement, optionalId); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } + } + tsParseAbstractDeclaration(node, decorators) { + if (this.match(80)) { + node.abstract = true; + return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); + } else if (this.isContextual(129)) { + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifier, node); + return this.tsParseInterfaceDeclaration(node); + } else { + return null; + } + } + throw this.unexpected(null, 80); + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { + const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + if (method.abstract || method.type === "TSAbstractMethodDefinition") { + const hasEstreePlugin = this.hasPlugin("estree"); + const methodFn = hasEstreePlugin ? method.value : method; + if (methodFn.body) { + const { + key + } = method; + this.raise(TSErrors.AbstractMethodHasImplementation, method, { + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + } + return method; + } + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; + } + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); + } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.parse(); + } + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.getExpression(); + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (!isString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport); + return this.finishNode(node, "ExportSpecifier"); + } + node.exportKind = "value"; + return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly); + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (!importedIsString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport); + return this.finishNode(specifier, "ImportSpecifier"); + } + specifier.importKind = "value"; + return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096); + } + parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) { + const leftOfAsKey = isImport ? "imported" : "local"; + const rightOfAsKey = isImport ? "local" : "exported"; + let leftOfAs = node[leftOfAsKey]; + let rightOfAs; + let hasTypeSpecifier = false; + let canParseAsKeyword = true; + const loc = leftOfAs.loc.start; + if (this.isContextual(93)) { + const firstAs = this.parseIdentifier(); + if (this.isContextual(93)) { + const secondAs = this.parseIdentifier(); + if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + leftOfAs = firstAs; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + canParseAsKeyword = false; + } else { + rightOfAs = secondAs; + canParseAsKeyword = false; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + canParseAsKeyword = false; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } else { + hasTypeSpecifier = true; + leftOfAs = firstAs; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + if (isImport) { + leftOfAs = this.parseIdentifier(true); + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } + } + if (hasTypeSpecifier && isInTypeOnlyImportExport) { + this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc); + } + node[leftOfAsKey] = leftOfAs; + node[rightOfAsKey] = rightOfAs; + const kindKey = isImport ? "importKind" : "exportKind"; + node[kindKey] = hasTypeSpecifier ? "type" : "value"; + if (canParseAsKeyword && this.eatContextual(93)) { + node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } + if (!node[rightOfAsKey]) { + node[rightOfAsKey] = this.cloneIdentifier(node[leftOfAsKey]); + } + if (isImport) { + this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096); + } + } + fillOptionalPropertiesForTSESLint(node) { + var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$declare2, _node$definite, _node$readonly3, _node$typeAnnotation2, _node$accessibility3, _node$decorators3, _node$override2, _node$optional4, _node$id, _node$abstract, _node$declare3, _node$decorators4, _node$implements, _node$superTypeArgume, _node$typeParameters2, _node$declare4, _node$definite2, _node$const, _node$declare5, _node$computed, _node$qualifier, _node$options, _node$declare6, _node$extends, _node$optional5, _node$readonly4, _node$declare7, _node$global, _node$const2, _node$in, _node$out; + switch (node.type) { + case "ExpressionStatement": + (_node$directive = node.directive) != null ? _node$directive : node.directive = undefined; + return; + case "RestElement": + node.value = undefined; + case "Identifier": + case "ArrayPattern": + case "AssignmentPattern": + case "ObjectPattern": + (_node$decorators = node.decorators) != null ? _node$decorators : node.decorators = []; + (_node$optional = node.optional) != null ? _node$optional : node.optional = false; + (_node$typeAnnotation = node.typeAnnotation) != null ? _node$typeAnnotation : node.typeAnnotation = undefined; + return; + case "TSParameterProperty": + (_node$accessibility = node.accessibility) != null ? _node$accessibility : node.accessibility = undefined; + (_node$decorators2 = node.decorators) != null ? _node$decorators2 : node.decorators = []; + (_node$override = node.override) != null ? _node$override : node.override = false; + (_node$readonly = node.readonly) != null ? _node$readonly : node.readonly = false; + (_node$static = node.static) != null ? _node$static : node.static = false; + return; + case "TSEmptyBodyFunctionExpression": + node.body = null; + case "TSDeclareFunction": + case "FunctionDeclaration": + case "FunctionExpression": + case "ClassMethod": + case "ClassPrivateMethod": + (_node$declare = node.declare) != null ? _node$declare : node.declare = false; + (_node$returnType = node.returnType) != null ? _node$returnType : node.returnType = undefined; + (_node$typeParameters = node.typeParameters) != null ? _node$typeParameters : node.typeParameters = undefined; + return; + case "Property": + (_node$optional2 = node.optional) != null ? _node$optional2 : node.optional = false; + return; + case "TSMethodSignature": + case "TSPropertySignature": + (_node$optional3 = node.optional) != null ? _node$optional3 : node.optional = false; + case "TSIndexSignature": + (_node$accessibility2 = node.accessibility) != null ? _node$accessibility2 : node.accessibility = undefined; + (_node$readonly2 = node.readonly) != null ? _node$readonly2 : node.readonly = false; + (_node$static2 = node.static) != null ? _node$static2 : node.static = false; + return; + case "TSAbstractPropertyDefinition": + case "PropertyDefinition": + case "TSAbstractAccessorProperty": + case "AccessorProperty": + (_node$declare2 = node.declare) != null ? _node$declare2 : node.declare = false; + (_node$definite = node.definite) != null ? _node$definite : node.definite = false; + (_node$readonly3 = node.readonly) != null ? _node$readonly3 : node.readonly = false; + (_node$typeAnnotation2 = node.typeAnnotation) != null ? _node$typeAnnotation2 : node.typeAnnotation = undefined; + case "TSAbstractMethodDefinition": + case "MethodDefinition": + (_node$accessibility3 = node.accessibility) != null ? _node$accessibility3 : node.accessibility = undefined; + (_node$decorators3 = node.decorators) != null ? _node$decorators3 : node.decorators = []; + (_node$override2 = node.override) != null ? _node$override2 : node.override = false; + (_node$optional4 = node.optional) != null ? _node$optional4 : node.optional = false; + return; + case "ClassExpression": + (_node$id = node.id) != null ? _node$id : node.id = null; + case "ClassDeclaration": + (_node$abstract = node.abstract) != null ? _node$abstract : node.abstract = false; + (_node$declare3 = node.declare) != null ? _node$declare3 : node.declare = false; + (_node$decorators4 = node.decorators) != null ? _node$decorators4 : node.decorators = []; + (_node$implements = node.implements) != null ? _node$implements : node.implements = []; + (_node$superTypeArgume = node.superTypeArguments) != null ? _node$superTypeArgume : node.superTypeArguments = undefined; + (_node$typeParameters2 = node.typeParameters) != null ? _node$typeParameters2 : node.typeParameters = undefined; + return; + case "TSTypeAliasDeclaration": + case "VariableDeclaration": + (_node$declare4 = node.declare) != null ? _node$declare4 : node.declare = false; + return; + case "VariableDeclarator": + (_node$definite2 = node.definite) != null ? _node$definite2 : node.definite = false; + return; + case "TSEnumDeclaration": + (_node$const = node.const) != null ? _node$const : node.const = false; + (_node$declare5 = node.declare) != null ? _node$declare5 : node.declare = false; + return; + case "TSEnumMember": + (_node$computed = node.computed) != null ? _node$computed : node.computed = false; + return; + case "TSImportType": + (_node$qualifier = node.qualifier) != null ? _node$qualifier : node.qualifier = null; + (_node$options = node.options) != null ? _node$options : node.options = null; + return; + case "TSInterfaceDeclaration": + (_node$declare6 = node.declare) != null ? _node$declare6 : node.declare = false; + (_node$extends = node.extends) != null ? _node$extends : node.extends = []; + return; + case "TSMappedType": + (_node$optional5 = node.optional) != null ? _node$optional5 : node.optional = false; + (_node$readonly4 = node.readonly) != null ? _node$readonly4 : node.readonly = undefined; + return; + case "TSModuleDeclaration": + (_node$declare7 = node.declare) != null ? _node$declare7 : node.declare = false; + (_node$global = node.global) != null ? _node$global : node.global = node.kind === "global"; + return; + case "TSTypeParameter": + (_node$const2 = node.const) != null ? _node$const2 : node.const = false; + (_node$in = node.in) != null ? _node$in : node.in = false; + (_node$out = node.out) != null ? _node$out : node.out = false; + return; + } + } + chStartsBindingIdentifierAndNotRelationalOperator(ch, pos) { + if (isIdentifierStart(ch)) { + keywordAndTSRelationalOperator.lastIndex = pos; + if (keywordAndTSRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordAndTSRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifierAndNotRelationalOperator(nextCh, next); + } + nextTokenIsIdentifierOrStringLiteralOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next) || nextCh === 34 || nextCh === 39; + } + }; + function isPossiblyLiteralEnum(expression) { + if (expression.type !== "MemberExpression") return false; + const { + computed, + property + } = expression; + if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); + } + function isValidAmbientConstInitializer(expression, estree) { + var _expression$extra; + const { + type + } = expression; + if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) { + return false; + } + if (estree) { + if (type === "Literal") { + const { + value + } = expression; + if (typeof value === "string" || typeof value === "boolean") { + return true; + } + } + } else { + if (type === "StringLiteral" || type === "BooleanLiteral") { + return true; + } + } + if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) { + return true; + } + if (type === "TemplateLiteral" && expression.expressions.length === 0) { + return true; + } + if (isPossiblyLiteralEnum(expression)) { + return true; + } + return false; + } + function isNumber(expression, estree) { + if (estree) { + return expression.type === "Literal" && (typeof expression.value === "number" || "bigint" in expression); + } + return expression.type === "NumericLiteral" || expression.type === "BigIntLiteral"; + } + function isNegativeNumber(expression, estree) { + if (expression.type === "UnaryExpression") { + const { + operator, + argument + } = expression; + if (operator === "-" && isNumber(argument, estree)) { + return true; + } + } + return false; + } + function isUncomputedMemberExpressionChain(expression) { + if (expression.type === "Identifier") return true; + if (expression.type !== "MemberExpression" || expression.computed) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); + } + const PlaceholderErrors = ParseErrorEnum`placeholders`({ + ClassNameIsRequired: "A class name is required.", + UnexpectedSpace: "Unexpected space in placeholder." + }); + var placeholders = superClass => class PlaceholdersParserMixin extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(133)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace(); + node.name = super.parseIdentifier(true); + this.assertNoSpace(); + this.expect(133); + return this.finishPlaceholder(node, expectedNode); + } + } + finishPlaceholder(node, expectedNode) { + let placeholder = node; + if (!placeholder.expectedNode || !placeholder.type) { + placeholder = this.finishNode(placeholder, "Placeholder"); + } + placeholder.expectedNode = expectedNode; + return placeholder; + } + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + this.finishOp(133, 2); + } else { + super.getTokenFromCode(code); + } + } + parseExprAtom(refExpressionErrors) { + return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors); + } + parseIdentifier(liberal) { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word !== undefined) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + if (cloned.type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Placeholder") { + return this.cloneIdentifier(node); + } + return super.cloneStringLiteral(node); + } + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + toAssignable(node, isLHS) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + } else { + super.toAssignable(node, isLHS); + } + } + chStartsBindingIdentifier(ch, pos) { + if (super.chStartsBindingIdentifier(ch, pos)) { + return true; + } + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 37 && this.input.charCodeAt(next + 1) === 37) { + return true; + } + return false; + } + verifyBreakContinue(node, isBreak) { + var _node$label; + if (((_node$label = node.label) == null ? void 0 : _node$label.type) === "Placeholder") return; + super.verifyBreakContinue(node, isBreak); + } + parseExpressionStatement(node, expr) { + var _expr$extra; + if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + return super.parseExpressionStatement(node, expr); + } + if (this.match(14)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(); + return this.finishNode(stmt, "LabeledStatement"); + } + this.semicolon(); + const stmtPlaceholder = node; + stmtPlaceholder.name = expr.name; + return this.finishPlaceholder(stmtPlaceholder, "Statement"); + } + parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); + } + parseFunctionId(requireId) { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId); + } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); + if (placeholder) { + if (this.match(81) || this.match(133) || this.match(5)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc); + } + } else { + this.parseClassId(node, isStatement, optionalId); + } + super.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); + } + parseExport(node, decorators) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(node, decorators); + const node2 = node; + if (!this.isContextual(98) && !this.match(12)) { + node2.specifiers = []; + node2.source = null; + node2.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node2, "ExportNamedDeclaration"); + } + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node2, decorators); + } + isExportDefaultSpecifier() { + if (this.match(65)) { + const next = this.nextTokenStart(); + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(tokenLabelName(133), this.nextTokenStartSince(next + 4))) { + return true; + } + } + } + return super.isExportDefaultSpecifier(); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + var _specifiers; + if ((_specifiers = node.specifiers) != null && _specifiers.length) { + return true; + } + return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + } + checkExport(node) { + const { + specifiers + } = node; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + } + super.checkExport(node); + node.specifiers = specifiers; + } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(node); + node.specifiers = []; + if (!this.isContextual(98) && !this.match(12)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier")); + if (this.eat(12)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + if (!hasStarImport) this.parseNamedImportSpecifiers(node); + } + this.expectContextual(98); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); + } + assertNoSpace() { + if (this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index)) { + this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc); + } + } + }; + var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { + parseV8Intrinsic() { + if (this.match(54)) { + const v8IntrinsicStartLoc = this.state.startLoc; + const node = this.startNode(); + this.next(); + if (tokenIsIdentifier(this.state.type)) { + const name = this.parseIdentifierName(); + const identifier = this.createIdentifier(node, name); + this.castNodeTo(identifier, "V8IntrinsicIdentifier"); + if (this.match(10)) { + return identifier; + } + } + this.unexpected(v8IntrinsicStartLoc); + } + } + parseExprAtom(refExpressionErrors) { + return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); + } + }; + const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; + const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; + function validatePlugins(pluginsMap) { + if (pluginsMap.has("decorators")) { + if (pluginsMap.has("decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } + const decoratorsBeforeExport = pluginsMap.get("decorators").decoratorsBeforeExport; + if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean, if specified."); + } + const allowCallParenthesized = pluginsMap.get("decorators").allowCallParenthesized; + if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { + throw new Error("'allowCallParenthesized' must be a boolean."); + } + } + if (pluginsMap.has("flow") && pluginsMap.has("typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); + } + if (pluginsMap.has("placeholders") && pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); + } + if (pluginsMap.has("pipelineOperator")) { + var _pluginsMap$get2; + const proposal = pluginsMap.get("pipelineOperator").proposal; + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } + if (proposal === "hack") { + var _pluginsMap$get; + if (pluginsMap.has("placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } + if (pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); + } + const topicToken = pluginsMap.get("pipelineOperator").topicToken; + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } + if (topicToken === "#" && ((_pluginsMap$get = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } else if (proposal === "smart" && ((_pluginsMap$get2 = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get2.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } + if (pluginsMap.has("moduleAttributes")) { + if (pluginsMap.has("deprecatedImportAssert") || pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = pluginsMap.get("moduleAttributes").version; + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + if (pluginsMap.has("importAssertions")) { + if (pluginsMap.has("deprecatedImportAssert")) { + throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins."); + } + } + if (pluginsMap.has("deprecatedImportAssert")) ;else if (pluginsMap.has("importAttributes") && pluginsMap.get("importAttributes").deprecatedAssertSyntax) { + pluginsMap.set("deprecatedImportAssert", {}); + } + if (pluginsMap.has("recordAndTuple")) { + const syntaxType = pluginsMap.get("recordAndTuple").syntaxType; + if (syntaxType != null) { + const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; + if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + } + } + } + if (pluginsMap.has("asyncDoExpressions") && !pluginsMap.has("doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; + } + if (pluginsMap.has("optionalChainingAssign") && pluginsMap.get("optionalChainingAssign").version !== "2023-07") { + throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); + } + if (pluginsMap.has("discardBinding") && pluginsMap.get("discardBinding").syntaxType !== "void") { + throw new Error("The 'discardBinding' plugin requires a 'syntaxType' option. Currently the only supported value is 'void'."); + } + } + const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders + }; + const mixinPluginNames = Object.keys(mixinPlugins); + class ExpressionParser extends LValParser { + checkProto(prop, isRecord, sawProto, refExpressionErrors) { + if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { + return sawProto; + } + const key = prop.key; + const name = key.type === "Identifier" ? key.name : key.value; + if (name === "__proto__") { + if (isRecord) { + this.raise(Errors.RecordNoProto, key); + return true; + } + if (sawProto) { + if (refExpressionErrors) { + if (refExpressionErrors.doubleProtoLoc === null) { + refExpressionErrors.doubleProtoLoc = key.loc.start; + } + } else { + this.raise(Errors.DuplicateProto, key); + } + } + return true; + } + return sawProto; + } + shouldExitDescending(expr, potentialArrowAt) { + return expr.type === "ArrowFunctionExpression" && this.offsetToSourcePos(expr.start) === potentialArrowAt; + } + getExpression() { + this.enterInitialScopes(); + this.nextToken(); + if (this.match(140)) { + throw this.raise(Errors.ParseExpressionEmptyInput, this.state.startLoc); + } + const expr = this.parseExpression(); + if (!this.match(140)) { + throw this.raise(Errors.ParseExpressionExpectsEOF, this.state.startLoc, { + unexpected: this.input.codePointAt(this.state.start) + }); + } + this.finalizeRemainingComments(); + expr.comments = this.comments; + expr.errors = this.state.errors; + if (this.optionFlags & 256) { + expr.tokens = this.tokens; + } + return expr; + } + parseExpression(disallowIn, refExpressionErrors) { + if (disallowIn) { + return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + parseExpressionBase(refExpressionErrors) { + const startLoc = this.state.startLoc; + const expr = this.parseMaybeAssign(refExpressionErrors); + if (this.match(12)) { + const node = this.startNodeAt(startLoc); + node.expressions = [expr]; + while (this.eat(12)) { + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); + } + this.toReferencedList(node.expressions); + return this.finishNode(node, "SequenceExpression"); + } + return expr; + } + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + setOptionalParametersError(refExpressionErrors) { + refExpressionErrors.optionalParametersLoc = this.state.startLoc; + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + const startLoc = this.state.startLoc; + const isYield = this.isContextual(108); + if (isYield) { + if (this.prodParam.hasYield) { + this.next(); + let left = this.parseYield(startLoc); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + return left; + } + } + let ownExpressionErrors; + if (refExpressionErrors) { + ownExpressionErrors = false; + } else { + refExpressionErrors = new ExpressionErrors(); + ownExpressionErrors = true; + } + const { + type + } = this.state; + if (type === 10 || tokenIsIdentifier(type)) { + this.state.potentialArrowAt = this.state.start; + } + let left = this.parseMaybeConditional(refExpressionErrors); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + if (tokenIsAssignment(this.state.type)) { + const node = this.startNodeAt(startLoc); + const operator = this.state.value; + node.operator = operator; + if (this.match(29)) { + this.toAssignable(left, true); + node.left = left; + const startIndex = startLoc.index; + if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) { + refExpressionErrors.doubleProtoLoc = null; + } + if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) { + refExpressionErrors.shorthandAssignLoc = null; + } + if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) { + this.checkDestructuringPrivate(refExpressionErrors); + refExpressionErrors.privateKeyLoc = null; + } + if (refExpressionErrors.voidPatternLoc != null && refExpressionErrors.voidPatternLoc.index >= startIndex) { + refExpressionErrors.voidPatternLoc = null; + } + } else { + node.left = left; + } + this.next(); + node.right = this.parseMaybeAssign(); + this.checkLVal(left, this.finishNode(node, "AssignmentExpression"), undefined, undefined, undefined, undefined, operator === "||=" || operator === "&&=" || operator === "??="); + return node; + } else if (ownExpressionErrors) { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (isYield) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.YieldNotInGeneratorFunction, startLoc); + return this.parseYield(startLoc); + } + } + return left; + } + parseMaybeConditional(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprOps(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseConditional(expr, startLoc, refExpressionErrors); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (this.eat(17)) { + const node = this.startNodeAt(startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssignAllowIn(); + this.expect(14); + node.alternate = this.parseMaybeAssign(); + return this.finishNode(node, "ConditionalExpression"); + } + return expr; + } + parseMaybeUnaryOrPrivate(refExpressionErrors) { + return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + } + parseExprOps(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseExprOp(expr, startLoc, -1); + } + parseExprOp(left, leftStartLoc, minPrec) { + if (this.isPrivateName(left)) { + const value = this.getPrivateNameSV(left); + if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) { + this.raise(Errors.PrivateInExpectedIn, left, { + identifierName: value + }); + } + this.classScope.usePrivateName(value, left.loc.start); + } + const op = this.state.type; + if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) { + let prec = tokenOperatorPrecedence(op); + if (prec > minPrec) { + if (op === 39) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.checkPipelineAtInfixOperator(left, leftStartLoc); + } + const node = this.startNodeAt(leftStartLoc); + node.left = left; + node.operator = this.state.value; + const logical = op === 41 || op === 42; + const coalesce = op === 40; + if (coalesce) { + prec = tokenOperatorPrecedence(42); + } + this.next(); + if (op === 39 && this.hasPlugin(["pipelineOperator", { + proposal: "minimal" + }])) { + if (this.state.type === 96 && this.prodParam.hasAwait) { + throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc); + } + } + node.right = this.parseExprOpRightExpr(op, prec); + const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); + const nextOp = this.state.type; + if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) { + throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc); + } + return this.parseExprOp(finishedNode, leftStartLoc, minPrec); + } + } + return left; + } + parseExprOpRightExpr(op, prec) { + const startLoc = this.state.startLoc; + switch (op) { + case 39: + switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + return this.parseHackPipeBody(); + }); + case "fsharp": + return this.withSoloAwaitPermittingContext(() => { + return this.parseFSharpPipelineBody(prec); + }); + } + if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(108)) { + throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + } + default: + return this.parseExprOpBaseRightExpr(op, prec); + } + } + parseExprOpBaseRightExpr(op, prec) { + const startLoc = this.state.startLoc; + return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); + } + parseHackPipeBody() { + var _body$extra; + const { + startLoc + } = this.state; + const body = this.parseMaybeAssign(); + const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type); + if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { + this.raise(Errors.PipeUnparenthesizedBody, startLoc, { + type: body.type + }); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipeTopicUnused, startLoc); + } + return body; + } + checkExponentialAfterUnary(node) { + if (this.match(57)) { + this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + const startLoc = this.state.startLoc; + const isAwait = this.isContextual(96); + if (isAwait && this.recordAwaitIfAllowed()) { + this.next(); + const expr = this.parseAwait(startLoc); + if (!sawUnary) this.checkExponentialAfterUnary(expr); + return expr; + } + const update = this.match(34); + const node = this.startNode(); + if (tokenIsPrefix(this.state.type)) { + node.operator = this.state.value; + node.prefix = true; + if (this.match(72)) { + this.expectPlugin("throwExpressions"); + } + const isDelete = this.match(89); + this.next(); + node.argument = this.parseMaybeUnary(null, true); + this.checkExpressionErrors(refExpressionErrors, true); + if (this.state.strict && isDelete) { + const arg = node.argument; + if (arg.type === "Identifier") { + this.raise(Errors.StrictDelete, node); + } else if (this.hasPropertyAsPrivateName(arg)) { + this.raise(Errors.DeletePrivateField, node); + } + } + if (!update) { + if (!sawUnary) { + this.checkExponentialAfterUnary(node); + } + return this.finishNode(node, "UnaryExpression"); + } + } + const expr = this.parseUpdate(node, update, refExpressionErrors); + if (isAwait) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc); + return this.parseAwait(startLoc); + } + } + return expr; + } + parseUpdate(node, update, refExpressionErrors) { + if (update) { + const updateExpressionNode = node; + this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, "UpdateExpression")); + return node; + } + const startLoc = this.state.startLoc; + let expr = this.parseExprSubscripts(refExpressionErrors); + if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; + while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + node.operator = this.state.value; + node.prefix = false; + node.argument = expr; + this.next(); + this.checkLVal(expr, expr = this.finishNode(node, "UpdateExpression")); + } + return expr; + } + parseExprSubscripts(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprAtom(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseSubscripts(expr, startLoc); + } + parseSubscripts(base, startLoc, noCalls) { + const state = { + optionalChainMember: false, + maybeAsyncArrow: this.atPossibleAsyncArrow(base), + stop: false + }; + do { + base = this.parseSubscript(base, startLoc, noCalls, state); + state.maybeAsyncArrow = false; + } while (!state.stop); + return base; + } + parseSubscript(base, startLoc, noCalls, state) { + const { + type + } = this.state; + if (!noCalls && type === 15) { + return this.parseBind(base, startLoc, noCalls, state); + } else if (tokenIsTemplate(type)) { + return this.parseTaggedTemplateExpression(base, startLoc, state); + } + let optional = false; + if (type === 18) { + if (noCalls) { + this.raise(Errors.OptionalChainingNoNew, this.state.startLoc); + if (this.lookaheadCharCode() === 40) { + return this.stopParseSubscript(base, state); + } + } + state.optionalChainMember = optional = true; + this.next(); + } + if (!noCalls && this.match(10)) { + return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional); + } else { + const computed = this.eat(0); + if (computed || optional || this.eat(16)) { + return this.parseMember(base, startLoc, state, computed, optional); + } else { + return this.stopParseSubscript(base, state); + } + } + } + stopParseSubscript(base, state) { + state.stop = true; + return base; + } + parseMember(base, startLoc, state, computed, optional) { + const node = this.startNodeAt(startLoc); + node.object = base; + node.computed = computed; + if (computed) { + node.property = this.parseExpression(); + this.expect(3); + } else if (this.match(139)) { + if (base.type === "Super") { + this.raise(Errors.SuperPrivateField, startLoc); + } + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } + parseBind(base, startLoc, noCalls, state) { + const node = this.startNodeAt(startLoc); + node.object = base; + this.next(); + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls); + } + parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + let refExpressionErrors = null; + this.state.maybeInArrowParameters = true; + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + const { + maybeAsyncArrow, + optionalChainMember + } = state; + if (maybeAsyncArrow) { + this.expressionScope.enter(newAsyncArrowScope()); + refExpressionErrors = new ExpressionErrors(); + } + if (optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(); + } else { + node.arguments = this.parseCallExpressionArguments(base.type !== "Super", node, refExpressionErrors); + } + let finishedNode = this.finishCallExpression(node, optionalChainMember); + if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode); + } else { + if (maybeAsyncArrow) { + this.checkExpressionErrors(refExpressionErrors, true); + this.expressionScope.exit(); + } + this.toReferencedArguments(finishedNode); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return finishedNode; + } + toReferencedArguments(node, isParenthesizedExpr) { + this.toReferencedListDeep(node.arguments, isParenthesizedExpr); + } + parseTaggedTemplateExpression(base, startLoc, state) { + const node = this.startNodeAt(startLoc); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (state.optionalChainMember) { + this.raise(Errors.OptionalChainingNoTemplate, startLoc); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsyncArrow(base) { + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.offsetToSourcePos(base.start) === this.state.potentialArrowAt; + } + finishCallExpression(node, optional) { + if (node.callee.type === "Import") { + if (node.arguments.length === 0 || node.arguments.length > 2) { + this.raise(Errors.ImportCallArity, node); + } else { + for (const arg of node.arguments) { + if (arg.type === "SpreadElement") { + this.raise(Errors.ImportCallSpreadArgument, arg); + } + } + } + } + return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); + } + parseCallExpressionArguments(allowPlaceholder, nodeForExtra, refExpressionErrors) { + const elts = []; + let first = true; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + while (!this.eat(11)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(11)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(11, false, refExpressionErrors, allowPlaceholder)); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return elts; + } + shouldParseAsyncArrow() { + return this.match(19) && !this.canInsertSemicolon(); + } + parseAsyncArrowFromCallExpression(node, call) { + var _call$extra; + this.resetPreviousNodeTrailingComments(call); + this.expect(19); + this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc); + if (call.innerComments) { + setInnerComments(node, call.innerComments); + } + if (call.callee.trailingComments) { + setInnerComments(node, call.callee.trailingComments); + } + return node; + } + parseNoCallExpr() { + const startLoc = this.state.startLoc; + return this.parseSubscripts(this.parseExprAtom(), startLoc, true); + } + parseExprAtom(refExpressionErrors) { + let node; + let decorators = null; + const { + type + } = this.state; + switch (type) { + case 79: + return this.parseSuper(); + case 83: + node = this.startNode(); + this.next(); + if (this.match(16)) { + return this.parseImportMetaPropertyOrPhaseCall(node); + } + if (this.match(10)) { + if (this.optionFlags & 512) { + return this.parseImportCall(node); + } else { + return this.finishNode(node, "Import"); + } + } else { + this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc); + return this.finishNode(node, "Import"); + } + case 78: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); + case 90: + { + return this.parseDo(this.startNode(), false); + } + case 56: + case 31: + { + this.readRegexp(); + return this.parseRegExpLiteral(this.state.value); + } + case 135: + return this.parseNumericLiteral(this.state.value); + case 136: + return this.parseBigIntLiteral(this.state.value); + case 134: + return this.parseStringLiteral(this.state.value); + case 84: + return this.parseNullLiteral(); + case 85: + return this.parseBooleanLiteral(true); + case 86: + return this.parseBooleanLiteral(false); + case 10: + { + const canBeArrow = this.state.potentialArrowAt === this.state.start; + return this.parseParenAndDistinguishExpression(canBeArrow); + } + case 0: + { + return this.parseArrayLike(3, false, refExpressionErrors); + } + case 5: + { + return this.parseObjectLike(8, false, false, refExpressionErrors); + } + case 68: + return this.parseFunctionOrFunctionSent(); + case 26: + decorators = this.parseDecorators(); + case 80: + return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false); + case 77: + return this.parseNewOrNewTarget(); + case 25: + case 24: + return this.parseTemplate(false); + case 15: + { + node = this.startNode(); + this.next(); + node.object = null; + const callee = node.callee = this.parseNoCallExpr(); + if (callee.type === "MemberExpression") { + return this.finishNode(node, "BindExpression"); + } else { + throw this.raise(Errors.UnsupportedBind, callee); + } + } + case 139: + { + this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, { + identifierName: this.state.value + }); + return this.parsePrivateName(); + } + case 33: + { + return this.parseTopicReferenceThenEqualsSign(54, "%"); + } + case 32: + { + return this.parseTopicReferenceThenEqualsSign(44, "^"); + } + case 37: + case 38: + { + return this.parseTopicReference("hack"); + } + case 44: + case 54: + case 27: + { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + return this.parseTopicReference(pipeProposal); + } + throw this.unexpected(); + } + case 47: + { + const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); + if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { + throw this.expectOnePlugin(["jsx", "flow", "typescript"]); + } + throw this.unexpected(); + } + default: + if (type === 137) { + return this.parseDecimalLiteral(this.state.value); + } else if (type === 2 || type === 1) { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, true); + } else if (type === 6 || type === 7) { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } + if (tokenIsIdentifier(type)) { + if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; + const containsEsc = this.state.containsEsc; + const id = this.parseIdentifier(); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + const { + type + } = this.state; + if (type === 68) { + this.resetPreviousNodeTrailingComments(id); + this.next(); + return this.parseAsyncFunctionExpression(this.startNodeAtNode(id)); + } else if (tokenIsIdentifier(type)) { + if (this.lookaheadCharCode() === 61) { + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); + } else { + return id; + } + } else if (type === 90) { + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); + } + } + if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { + this.next(); + return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); + } + return id; + } else { + throw this.unexpected(); + } + } + } + parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + this.state.type = topicTokenType; + this.state.value = topicTokenValue; + this.state.pos--; + this.state.end--; + this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); + return this.parseTopicReference(pipeProposal); + } + throw this.unexpected(); + } + parseTopicReference(pipeProposal) { + const node = this.startNode(); + const startLoc = this.state.startLoc; + const tokenType = this.state.type; + this.next(); + return this.finishTopicReference(node, startLoc, pipeProposal, tokenType); + } + finishTopicReference(node, startLoc, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { + if (pipeProposal === "hack") { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PipeTopicUnbound, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "TopicReference"); + } else { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PrimaryTopicNotAllowed, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "PipelinePrimaryTopicReference"); + } + } else { + throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, { + token: tokenLabelName(tokenType) + }); + } + } + testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) { + switch (pipeProposal) { + case "hack": + { + return this.hasPlugin(["pipelineOperator", { + topicToken: tokenLabelName(tokenType) + }]); + } + case "smart": + return tokenType === 27; + default: + throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc); + } + } + parseAsyncArrowUnaryFunction(node) { + this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); + const params = [this.parseIdentifier()]; + this.prodParam.exit(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition()); + } + this.expect(19); + return this.parseArrowExpression(node, params, true); + } + parseDo(node, isAsync) { + this.expectPlugin("doExpressions"); + if (isAsync) { + this.expectPlugin("asyncDoExpressions"); + } + node.async = isAsync; + this.next(); + const oldLabels = this.state.labels; + this.state.labels = []; + if (isAsync) { + this.prodParam.enter(2); + node.body = this.parseBlock(); + this.prodParam.exit(); + } else { + node.body = this.parseBlock(); + } + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + parseSuper() { + const node = this.startNode(); + this.next(); + if (this.match(10) && !this.scope.allowDirectSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.SuperNotAllowed, node); + } + } else if (!this.scope.allowSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.UnexpectedSuper, node); + } + } + if (!this.match(10) && !this.match(0) && !this.match(16)) { + this.raise(Errors.UnsupportedSuper, node); + } + return this.finishNode(node, "Super"); + } + parsePrivateName() { + const node = this.startNode(); + const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1)); + const name = this.state.value; + this.next(); + node.id = this.createIdentifier(id, name); + return this.finishNode(node, "PrivateName"); + } + parseFunctionOrFunctionSent() { + const node = this.startNode(); + this.next(); + if (this.prodParam.hasYield && this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); + this.next(); + if (this.match(103)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + this.unexpected(); + } + return this.parseMetaProperty(node, meta, "sent"); + } + return this.parseFunction(node); + } + parseMetaProperty(node, meta, propertyName) { + node.meta = meta; + const containsEsc = this.state.containsEsc; + node.property = this.parseIdentifier(true); + if (node.property.name !== propertyName || containsEsc) { + this.raise(Errors.UnsupportedMetaProperty, node.property, { + target: meta.name, + onlyValidPropertyName: propertyName + }); + } + return this.finishNode(node, "MetaProperty"); + } + parseImportMetaPropertyOrPhaseCall(node) { + this.next(); + if (this.isContextual(105) || this.isContextual(97)) { + const isSource = this.isContextual(105); + this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); + this.next(); + node.phase = isSource ? "source" : "defer"; + return this.parseImportCall(node); + } else { + const id = this.createIdentifierAt(this.startNodeAtNode(node), "import", this.state.lastTokStartLoc); + if (this.isContextual(101)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, id); + } + this.sawUnambiguousESM = true; + } + return this.parseMetaProperty(node, id, "meta"); + } + } + parseLiteralAtNode(value, type, node) { + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.value = value; + this.next(); + return this.finishNode(node, type); + } + parseLiteral(value, type) { + const node = this.startNode(); + return this.parseLiteralAtNode(value, type, node); + } + parseStringLiteral(value) { + return this.parseLiteral(value, "StringLiteral"); + } + parseNumericLiteral(value) { + return this.parseLiteral(value, "NumericLiteral"); + } + parseBigIntLiteral(value) { + return this.parseLiteral(value, "BigIntLiteral"); + } + parseDecimalLiteral(value) { + return this.parseLiteral(value, "DecimalLiteral"); + } + parseRegExpLiteral(value) { + const node = this.startNode(); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.pattern = value.pattern; + node.flags = value.flags; + this.next(); + return this.finishNode(node, "RegExpLiteral"); + } + parseBooleanLiteral(value) { + const node = this.startNode(); + node.value = value; + this.next(); + return this.finishNode(node, "BooleanLiteral"); + } + parseNullLiteral() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "NullLiteral"); + } + parseParenAndDistinguishExpression(canBeArrow) { + const startLoc = this.state.startLoc; + let val; + this.next(); + this.expressionScope.enter(newArrowHeadScope()); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.maybeInArrowParameters = true; + this.state.inFSharpPipelineDirectBody = false; + const innerStartLoc = this.state.startLoc; + const exprList = []; + const refExpressionErrors = new ExpressionErrors(); + let first = true; + let spreadStartLoc; + let optionalCommaStartLoc; + while (!this.match(11)) { + if (first) { + first = false; + } else { + this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc); + if (this.match(11)) { + optionalCommaStartLoc = this.state.startLoc; + break; + } + } + if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + spreadStartLoc = this.state.startLoc; + exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc)); + if (!this.checkCommaAfterRest(41)) { + break; + } + } else { + exprList.push(this.parseMaybeAssignAllowInOrVoidPattern(11, refExpressionErrors, this.parseParenItem)); + } + } + const innerEndLoc = this.state.lastTokEndLoc; + this.expect(11); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let arrowNode = this.startNodeAt(startLoc); + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + this.parseArrowExpression(arrowNode, exprList, false); + return arrowNode; + } + this.expressionScope.exit(); + if (!exprList.length) { + this.unexpected(this.state.lastTokStartLoc); + } + if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc); + if (spreadStartLoc) this.unexpected(spreadStartLoc); + this.checkExpressionErrors(refExpressionErrors, true); + this.toReferencedListDeep(exprList, true); + if (exprList.length > 1) { + val = this.startNodeAt(innerStartLoc); + val.expressions = exprList; + this.finishNode(val, "SequenceExpression"); + this.resetEndLocation(val, innerEndLoc); + } else { + val = exprList[0]; + } + return this.wrapParenthesis(startLoc, val); + } + wrapParenthesis(startLoc, expression) { + if (!(this.optionFlags & 1024)) { + this.addExtra(expression, "parenthesized", true); + this.addExtra(expression, "parenStart", startLoc.index); + this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); + return expression; + } + const parenExpression = this.startNodeAt(startLoc); + parenExpression.expression = expression; + return this.finishNode(parenExpression, "ParenthesizedExpression"); + } + shouldParseArrow(params) { + return !this.canInsertSemicolon(); + } + parseArrow(node) { + if (this.eat(19)) { + return node; + } + } + parseParenItem(node, startLoc) { + return node; + } + parseNewOrNewTarget() { + const node = this.startNode(); + this.next(); + if (this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); + const metaProp = this.parseMetaProperty(node, meta, "target"); + if (!this.scope.allowNewTarget) { + this.raise(Errors.UnexpectedNewTarget, metaProp); + } + return metaProp; + } + return this.parseNew(node); + } + parseNew(node) { + this.parseNewCallee(node); + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + return this.finishNode(node, "NewExpression"); + } + parseNewCallee(node) { + const isImport = this.match(83); + const callee = this.parseNoCallExpr(); + node.callee = callee; + if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) { + this.raise(Errors.ImportCallNotNewExpression, callee); + } + } + parseTemplateElement(isTagged) { + const { + start, + startLoc, + end, + value + } = this.state; + const elemStart = start + 1; + const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1)); + if (value === null) { + if (!isTagged) { + this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1)); + } + } + const isTail = this.match(24); + const endOffset = isTail ? -1 : -2; + const elemEnd = end + endOffset; + elem.value = { + raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"), + cooked: value === null ? null : value.slice(1, endOffset) + }; + elem.tail = isTail; + this.next(); + const finishedNode = this.finishNode(elem, "TemplateElement"); + this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset)); + return finishedNode; + } + parseTemplate(isTagged) { + const node = this.startNode(); + let curElt = this.parseTemplateElement(isTagged); + const quasis = [curElt]; + const substitutions = []; + while (!curElt.tail) { + substitutions.push(this.parseTemplateSubstitution()); + this.readTemplateContinuation(); + quasis.push(curElt = this.parseTemplateElement(isTagged)); + } + node.expressions = substitutions; + node.quasis = quasis; + return this.finishNode(node, "TemplateLiteral"); + } + parseTemplateSubstitution() { + return this.parseExpression(); + } + parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + let sawProto = false; + let first = true; + const node = this.startNode(); + node.properties = []; + this.next(); + while (!this.match(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + this.addTrailingCommaExtraToNode(node); + break; + } + } + let prop; + if (isPattern) { + prop = this.parseBindingProperty(); + } else { + prop = this.parsePropertyDefinition(refExpressionErrors); + sawProto = this.checkProto(prop, isRecord, sawProto, refExpressionErrors); + } + if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { + this.raise(Errors.InvalidRecordProperty, prop); + } + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + node.properties.push(prop); + } + this.next(); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let type = "ObjectExpression"; + if (isPattern) { + type = "ObjectPattern"; + } else if (isRecord) { + type = "RecordExpression"; + } + return this.finishNode(node, type); + } + addTrailingCommaExtraToNode(node) { + this.addExtra(node, "trailingComma", this.state.lastTokStartLoc.index); + this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false); + } + maybeAsyncOrAccessorProp(prop) { + return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55)); + } + parsePropertyDefinition(refExpressionErrors) { + let decorators = []; + if (this.match(26)) { + if (this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + const prop = this.startNode(); + let isAsync = false; + let isAccessor = false; + let startLoc; + if (this.match(21)) { + if (decorators.length) this.unexpected(); + return this.parseSpread(); + } + if (decorators.length) { + prop.decorators = decorators; + decorators = []; + } + prop.method = false; + if (refExpressionErrors) { + startLoc = this.state.startLoc; + } + let isGenerator = this.eat(55); + this.parsePropertyNamePrefixOperator(prop); + const containsEsc = this.state.containsEsc; + this.parsePropertyName(prop, refExpressionErrors); + if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const { + key + } = prop; + const keyName = key.name; + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + this.resetPreviousNodeTrailingComments(key); + isGenerator = this.eat(55); + this.parsePropertyName(prop); + } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + this.resetPreviousNodeTrailingComments(key); + prop.kind = keyName; + if (this.match(55)) { + isGenerator = true; + this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), { + kind: keyName + }); + this.next(); + } + this.parsePropertyName(prop); + } + } + return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors); + } + getGetterSetterExpectedParamCount(method) { + return method.kind === "get" ? 0 : 1; + } + getObjectOrClassMethodParams(method) { + return method.params; + } + checkGetterSetterParams(method) { + var _params; + const paramCount = this.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length !== paramCount) { + this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, method); + } + if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { + this.raise(Errors.BadSetterRestParameter, method); + } + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + if (isAccessor) { + const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); + this.checkGetterSetterParams(finishedProp); + return finishedProp; + } + if (isAsync || isGenerator || this.match(10)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); + } + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + prop.shorthand = false; + if (this.eat(14)) { + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowInOrVoidPattern(8, refExpressionErrors); + return this.finishObjectProperty(prop); + } + if (!prop.computed && prop.key.type === "Identifier") { + this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); + if (isPattern) { + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); + } else if (this.match(29)) { + const shorthandAssignLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.shorthandAssignLoc === null) { + refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc; + } + } else { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); + } else { + prop.value = this.cloneIdentifier(prop.key); + } + prop.shorthand = true; + return this.finishObjectProperty(prop); + } + } + finishObjectProperty(node) { + return this.finishNode(node, "ObjectProperty"); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (!node) this.unexpected(); + return node; + } + parsePropertyName(prop, refExpressionErrors) { + if (this.eat(0)) { + prop.computed = true; + prop.key = this.parseMaybeAssignAllowIn(); + this.expect(3); + } else { + const { + type, + value + } = this.state; + let key; + if (tokenIsKeywordOrIdentifier(type)) { + key = this.parseIdentifier(true); + } else { + switch (type) { + case 135: + key = this.parseNumericLiteral(value); + break; + case 134: + key = this.parseStringLiteral(value); + break; + case 136: + key = this.parseBigIntLiteral(value); + break; + case 139: + { + const privateKeyLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.privateKeyLoc === null) { + refExpressionErrors.privateKeyLoc = privateKeyLoc; + } + } else { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + key = this.parsePrivateName(); + break; + } + default: + if (type === 137) { + key = this.parseDecimalLiteral(value); + break; + } + this.unexpected(); + } + } + prop.key = key; + if (type !== 139) { + prop.computed = false; + } + } + } + initFunction(node, isAsync) { + node.id = null; + node.generator = false; + node.async = isAsync; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + this.initFunction(node, isAsync); + node.generator = isGenerator; + this.scope.enter(514 | 16 | (inClassScope ? 576 : 0) | (allowDirectSuper ? 32 : 0)); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + this.parseFunctionParams(node, isConstructor); + const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); + this.prodParam.exit(); + this.scope.exit(); + return finishedNode; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); + } + parseArrowExpression(node, params, isAsync, trailingCommaLoc) { + this.scope.enter(514 | 4); + let flags = functionFlags(isAsync, false); + if (!this.match(5) && this.prodParam.hasIn) { + flags |= 8; + } + this.prodParam.enter(flags); + this.initFunction(node, isAsync); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + if (params) { + this.state.maybeInArrowParameters = true; + this.setArrowFunctionParameters(node, params, trailingCommaLoc); + } + this.state.maybeInArrowParameters = false; + this.parseFunctionBody(node, true); + this.prodParam.exit(); + this.scope.exit(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return this.finishNode(node, "ArrowFunctionExpression"); + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + this.parseFunctionBody(node, false, isMethod); + return this.finishNode(node, type); + } + parseFunctionBody(node, allowExpression, isMethod = false) { + const isExpression = allowExpression && !this.match(5); + this.expressionScope.enter(newExpressionScope()); + if (isExpression) { + node.body = this.parseMaybeAssign(); + this.checkParams(node, false, allowExpression, false); + } else { + const oldStrict = this.state.strict; + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(this.prodParam.currentFlags() | 4); + node.body = this.parseBlock(true, false, hasStrictModeDirective => { + const nonSimple = !this.isSimpleParamList(node.params); + if (hasStrictModeDirective && nonSimple) { + this.raise(Errors.IllegalLanguageModeDirective, (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.loc.end : node); + } + const strictModeChanged = !oldStrict && this.state.strict; + this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); + if (this.state.strict && node.id) { + this.checkIdentifier(node.id, 65, strictModeChanged); + } + }); + this.prodParam.exit(); + this.state.labels = oldLabels; + } + this.expressionScope.exit(); + } + isSimpleParameter(node) { + return node.type === "Identifier"; + } + isSimpleParamList(params) { + for (let i = 0, len = params.length; i < len; i++) { + if (!this.isSimpleParameter(params[i])) return false; + } + return true; + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + const checkClashes = !allowDuplicates && new Set(); + const formalParameters = { + type: "FormalParameters" + }; + for (const param of node.params) { + this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged); + } + } + parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(close, allowEmpty, refExpressionErrors)); + } + return elts; + } + parseExprListItem(close, allowEmpty, refExpressionErrors, allowPlaceholder) { + let elt; + if (this.match(12)) { + if (!allowEmpty) { + this.raise(Errors.UnexpectedToken, this.state.curPosition(), { + unexpected: "," + }); + } + elt = null; + } else if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc); + } else if (this.match(17)) { + this.expectPlugin("partialApplication"); + if (!allowPlaceholder) { + this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc); + } + const node = this.startNode(); + this.next(); + elt = this.finishNode(node, "ArgumentPlaceholder"); + } else { + elt = this.parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, this.parseParenItem); + } + return elt; + } + parseIdentifier(liberal) { + const node = this.startNode(); + const name = this.parseIdentifierName(liberal); + return this.createIdentifier(node, name); + } + createIdentifier(node, name) { + node.name = name; + node.loc.identifierName = name; + return this.finishNode(node, "Identifier"); + } + createIdentifierAt(node, name, endLoc) { + node.name = name; + node.loc.identifierName = name; + return this.finishNodeAt(node, "Identifier", endLoc); + } + parseIdentifierName(liberal) { + let name; + const { + startLoc, + type + } = this.state; + if (tokenIsKeywordOrIdentifier(type)) { + name = this.state.value; + } else { + this.unexpected(); + } + const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); + if (liberal) { + if (tokenIsKeyword) { + this.replaceToken(132); + } + } else { + this.checkReservedWord(name, startLoc, tokenIsKeyword, false); + } + this.next(); + return name; + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word.length > 10) { + return; + } + if (!canBeReservedWord(word)) { + return; + } + if (checkKeywords && isKeyword(word)) { + this.raise(Errors.UnexpectedKeyword, startLoc, { + keyword: word + }); + return; + } + const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; + if (reservedTest(word, this.inModule)) { + this.raise(Errors.UnexpectedReservedWord, startLoc, { + reservedWord: word + }); + return; + } else if (word === "yield") { + if (this.prodParam.hasYield) { + this.raise(Errors.YieldBindingIdentifier, startLoc); + return; + } + } else if (word === "await") { + if (this.prodParam.hasAwait) { + this.raise(Errors.AwaitBindingIdentifier, startLoc); + return; + } + if (this.scope.inStaticBlock) { + this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc); + return; + } + this.expressionScope.recordAsyncArrowParametersError(startLoc); + } else if (word === "arguments") { + if (this.scope.inClassAndNotInNonArrowFunction) { + this.raise(Errors.ArgumentsInClass, startLoc); + return; + } + } + } + recordAwaitIfAllowed() { + const isAwaitAllowed = this.prodParam.hasAwait; + if (isAwaitAllowed && !this.scope.inFunction) { + this.state.hasTopLevelAwait = true; + } + return isAwaitAllowed; + } + parseAwait(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node); + if (this.eat(55)) { + this.raise(Errors.ObsoleteAwaitStar, node); + } + if (!this.scope.inFunction && !(this.optionFlags & 1)) { + if (this.isAmbiguousPrefixOrIdentifier()) { + this.ambiguousScriptDifferentAst = true; + } else { + this.sawUnambiguousESM = true; + } + } + if (!this.state.soloAwait) { + node.argument = this.parseMaybeUnary(null, true); + } + return this.finishNode(node, "AwaitExpression"); + } + isAmbiguousPrefixOrIdentifier() { + if (this.hasPrecedingLineBreak()) return true; + const { + type + } = this.state; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 138 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + } + parseYield(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node); + let delegating = false; + let argument = null; + if (!this.hasPrecedingLineBreak()) { + delegating = this.eat(55); + switch (this.state.type) { + case 13: + case 140: + case 8: + case 11: + case 3: + case 9: + case 14: + case 12: + if (!delegating) break; + default: + argument = this.parseMaybeAssign(); + } + } + node.delegate = delegating; + node.argument = argument; + return this.finishNode(node, "YieldExpression"); + } + parseImportCall(node) { + this.next(); + node.source = this.parseMaybeAssignAllowIn(); + node.options = null; + if (this.eat(12)) { + if (!this.match(11)) { + node.options = this.parseMaybeAssignAllowIn(); + if (this.eat(12)) { + this.addTrailingCommaExtraToNode(node.options); + if (!this.match(11)) { + do { + this.parseMaybeAssignAllowIn(); + } while (this.eat(12) && !this.match(11)); + this.raise(Errors.ImportCallArity, node); + } + } + } else { + this.addTrailingCommaExtraToNode(node.source); + } + } + this.expect(11); + return this.finishNode(node, "ImportExpression"); + } + checkPipelineAtInfixOperator(left, leftStartLoc) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + if (left.type === "SequenceExpression") { + this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc); + } + } + } + parseSmartPipelineBodyInStyle(childExpr, startLoc) { + if (this.isSimpleReference(childExpr)) { + const bodyNode = this.startNodeAt(startLoc); + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); + } else { + const bodyNode = this.startNodeAt(startLoc); + this.checkSmartPipeTopicBodyEarlyErrors(startLoc); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); + } + } + isSimpleReference(expression) { + switch (expression.type) { + case "MemberExpression": + return !expression.computed && this.isSimpleReference(expression.object); + case "Identifier": + return true; + default: + return false; + } + } + checkSmartPipeTopicBodyEarlyErrors(startLoc) { + if (this.match(19)) { + throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipelineTopicUnused, startLoc); + } + } + withTopicBindingContext(callback) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 1, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } + withSmartMixTopicForbiddingContext(callback) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { + return callback(); + } + } + withSoloAwaitPermittingContext(callback) { + const outerContextSoloAwaitState = this.state.soloAwait; + this.state.soloAwait = true; + try { + return callback(); + } finally { + this.state.soloAwait = outerContextSoloAwaitState; + } + } + allowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = 8 & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | 8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + disallowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = 8 & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & -9); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + registerTopicReference() { + this.state.topicContext.maxTopicIndex = 0; + } + topicReferenceIsAllowedInCurrentContext() { + return this.state.topicContext.maxNumOfResolvableTopics >= 1; + } + topicReferenceWasUsedInCurrentContext() { + return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; + } + parseFSharpPipelineBody(prec) { + const startLoc = this.state.startLoc; + this.state.potentialArrowAt = this.state.start; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = true; + const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return ret; + } + parseModuleExpression() { + this.expectPlugin("moduleBlocks"); + const node = this.startNode(); + this.next(); + if (!this.match(5)) { + this.unexpected(null, 5); + } + const program = this.startNodeAt(this.state.endLoc); + this.next(); + const revertScopes = this.initializeScopes(true); + this.enterInitialScopes(); + try { + node.body = this.parseProgram(program, 8, "module"); + } finally { + revertScopes(); + } + return this.finishNode(node, "ModuleExpression"); + } + parseVoidPattern(refExpressionErrors) { + this.expectPlugin("discardBinding"); + const node = this.startNode(); + if (refExpressionErrors != null) { + refExpressionErrors.voidPatternLoc = this.state.startLoc; + } + this.next(); + return this.finishNode(node, "VoidPattern"); + } + parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, afterLeftParse) { + if (refExpressionErrors != null && this.match(88)) { + const nextCode = this.lookaheadCharCode(); + if (nextCode === 44 || nextCode === (close === 3 ? 93 : close === 8 ? 125 : 41) || nextCode === 61) { + return this.parseMaybeDefault(this.state.startLoc, this.parseVoidPattern(refExpressionErrors)); + } + } + return this.parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse); + } + parsePropertyNamePrefixOperator(prop) {} + } + const loopLabel = { + kind: 1 + }, + switchLabel = { + kind: 2 + }; + const loneSurrogate = /[\uD800-\uDFFF]/u; + const keywordRelationalOperator = /in(?:stanceof)?/y; + function babel7CompatTokens(tokens, input, startIndex) { + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i]; + const { + type + } = token; + if (typeof type === "number") { + if (type === 139) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(132), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start - startIndex) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; + } + token.type = getExportedToken(type); + } + } + return tokens; + } + class StatementParser extends ExpressionParser { + parseTopLevel(file, program) { + file.program = this.parseProgram(program, 140, this.options.sourceType === "module" ? "module" : "script"); + file.comments = this.comments; + if (this.optionFlags & 256) { + file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex); + } + return this.finishNode(file, "File"); + } + parseProgram(program, end, sourceType) { + program.sourceType = sourceType; + program.interpreter = this.parseInterpreterDirective(); + this.parseBlockBody(program, true, true, end); + if (this.inModule) { + if (!(this.optionFlags & 64) && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, at, { + localName + }); + } + } + this.addExtra(program, "topLevelAwait", this.state.hasTopLevelAwait); + } + let finishedProgram; + if (end === 140) { + finishedProgram = this.finishNode(program, "Program"); + } else { + finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); + } + return finishedProgram; + } + stmtToDirective(stmt) { + const directive = this.castNodeTo(stmt, "Directive"); + const directiveLiteral = this.castNodeTo(stmt.expression, "DirectiveLiteral"); + const expressionValue = directiveLiteral.value; + const raw = this.input.slice(this.offsetToSourcePos(directiveLiteral.start), this.offsetToSourcePos(directiveLiteral.end)); + const val = directiveLiteral.value = raw.slice(1, -1); + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.addExtra(directiveLiteral, "expressionValue", expressionValue); + directive.value = directiveLiteral; + delete stmt.expression; + return directive; + } + parseInterpreterDirective() { + if (!this.match(28)) { + return null; + } + const node = this.startNode(); + node.value = this.state.value; + this.next(); + return this.finishNode(node, "InterpreterDirective"); + } + isLet() { + if (!this.isContextual(100)) { + return false; + } + return this.hasFollowingBindingAtom(); + } + isUsing() { + if (!this.isContextual(107)) { + return false; + } + return this.nextTokenIsIdentifierOnSameLine(); + } + isForUsing() { + if (!this.isContextual(107)) { + return false; + } + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + if (this.isUnparsedContextual(next, "of")) { + const nextCharAfterOf = this.lookaheadCharCodeSince(next + 2); + if (nextCharAfterOf !== 61 && nextCharAfterOf !== 58 && nextCharAfterOf !== 59) { + return false; + } + } + if (this.chStartsBindingIdentifier(nextCh, next) || this.isUnparsedContextual(next, "void")) { + return true; + } + return false; + } + nextTokenIsIdentifierOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next); + } + isAwaitUsing() { + if (!this.isContextual(96)) { + return false; + } + let next = this.nextTokenInLineStart(); + if (this.isUnparsedContextual(next, "using")) { + next = this.nextTokenInLineStartSince(next + 5); + const nextCh = this.codePointAtPos(next); + if (this.chStartsBindingIdentifier(nextCh, next)) { + return true; + } + } + return false; + } + chStartsBindingIdentifier(ch, pos) { + if (isIdentifierStart(ch)) { + keywordRelationalOperator.lastIndex = pos; + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + chStartsBindingPattern(ch) { + return ch === 91 || ch === 123; + } + hasFollowingBindingAtom() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); + } + hasInLineFollowingBindingIdentifierOrBrace() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next); + } + allowsUsing() { + return (this.scope.inModule || !this.scope.inTopLevel) && !this.scope.inBareCaseStatement; + } + parseModuleItem() { + return this.parseStatementLike(1 | 2 | 4 | 8); + } + parseStatementListItem() { + return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8)); + } + parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) { + let flags = 0; + if (this.options.annexB && !this.state.strict) { + flags |= 4; + if (allowLabeledFunction) { + flags |= 8; + } + } + return this.parseStatementLike(flags); + } + parseStatement() { + return this.parseStatementLike(0); + } + parseStatementLike(flags) { + let decorators = null; + if (this.match(26)) { + decorators = this.parseDecorators(true); + } + return this.parseStatementContent(flags, decorators); + } + parseStatementContent(flags, decorators) { + const startType = this.state.type; + const node = this.startNode(); + const allowDeclaration = !!(flags & 2); + const allowFunctionDeclaration = !!(flags & 4); + const topLevel = flags & 1; + switch (startType) { + case 60: + return this.parseBreakContinueStatement(node, true); + case 63: + return this.parseBreakContinueStatement(node, false); + case 64: + return this.parseDebuggerStatement(node); + case 90: + return this.parseDoWhileStatement(node); + case 91: + return this.parseForStatement(node); + case 68: + if (this.lookaheadCharCode() === 46) break; + if (!allowFunctionDeclaration) { + this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc); + } + return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration); + case 80: + if (!allowDeclaration) this.unexpected(); + return this.parseClass(this.maybeTakeDecorators(decorators, node), true); + case 69: + return this.parseIfStatement(node); + case 70: + return this.parseReturnStatement(node); + case 71: + return this.parseSwitchStatement(node); + case 72: + return this.parseThrowStatement(node); + case 73: + return this.parseTryStatement(node); + case 96: + if (this.isAwaitUsing()) { + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, node); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, node); + } else if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, node); + } + this.next(); + return this.parseVarStatement(node, "await using"); + } + break; + case 107: + if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) { + break; + } + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + return this.parseVarStatement(node, "using"); + case 100: + { + if (this.state.containsEsc) { + break; + } + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + if (nextCh !== 91) { + if (!allowDeclaration && this.hasFollowingLineBreak()) break; + if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) { + break; + } + } + } + case 75: + { + if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + } + case 74: + { + const kind = this.state.value; + return this.parseVarStatement(node, kind); + } + case 92: + return this.parseWhileStatement(node); + case 76: + return this.parseWithStatement(node); + case 5: + return this.parseBlock(); + case 13: + return this.parseEmptyStatement(node); + case 83: + { + const nextTokenCharCode = this.lookaheadCharCode(); + if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { + break; + } + } + case 82: + { + if (!(this.optionFlags & 8) && !topLevel) { + this.raise(Errors.UnexpectedImportExport, this.state.startLoc); + } + this.next(); + let result; + if (startType === 83) { + result = this.parseImport(node); + } else { + result = this.parseExport(node, decorators); + } + this.assertModuleNodeAllowed(result); + return result; + } + default: + { + if (this.isAsyncFunction()) { + if (!allowDeclaration) { + this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc); + } + this.next(); + return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration); + } + } + } + const maybeName = this.state.value; + const expr = this.parseExpression(); + if (tokenIsIdentifier(startType) && expr.type === "Identifier" && this.eat(14)) { + return this.parseLabeledStatement(node, maybeName, expr, flags); + } else { + return this.parseExpressionStatement(node, expr, decorators); + } + } + assertModuleNodeAllowed(node) { + if (!(this.optionFlags & 8) && !this.inModule) { + this.raise(Errors.ImportOutsideModule, node); + } + } + decoratorsEnabledBeforeExport() { + if (this.hasPlugin("decorators-legacy")) return true; + return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== false; + } + maybeTakeDecorators(maybeDecorators, classNode, exportNode) { + if (maybeDecorators) { + var _classNode$decorators; + if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) { + if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") { + this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]); + } + classNode.decorators.unshift(...maybeDecorators); + } else { + classNode.decorators = maybeDecorators; + } + this.resetStartLocationFromNode(classNode, maybeDecorators[0]); + if (exportNode) this.resetStartLocationFromNode(exportNode, classNode); + } + return classNode; + } + canHaveLeadingDecorator() { + return this.match(80); + } + parseDecorators(allowExport) { + const decorators = []; + do { + decorators.push(this.parseDecorator()); + } while (this.match(26)); + if (this.match(82)) { + if (!allowExport) { + this.unexpected(); + } + if (!this.decoratorsEnabledBeforeExport()) { + this.raise(Errors.DecoratorExportClass, this.state.startLoc); + } + } else if (!this.canHaveLeadingDecorator()) { + throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc); + } + return decorators; + } + parseDecorator() { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + const node = this.startNode(); + this.next(); + if (this.hasPlugin("decorators")) { + const startLoc = this.state.startLoc; + let expr; + if (this.match(10)) { + const startLoc = this.state.startLoc; + this.next(); + expr = this.parseExpression(); + this.expect(11); + expr = this.wrapParenthesis(startLoc, expr); + const paramsStartLoc = this.state.startLoc; + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { + this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc); + } + } else { + expr = this.parseIdentifier(false); + while (this.eat(16)) { + const node = this.startNodeAt(startLoc); + node.object = expr; + if (this.match(139)) { + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + node.computed = false; + expr = this.finishNode(node, "MemberExpression"); + } + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + } + } else { + node.expression = this.parseExprSubscripts(); + } + return this.finishNode(node, "Decorator"); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + return expr; + } + parseBreakContinueStatement(node, isBreak) { + this.next(); + if (this.isLineTerminator()) { + node.label = null; + } else { + node.label = this.parseIdentifier(); + this.semicolon(); + } + this.verifyBreakContinue(node, isBreak); + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); + } + verifyBreakContinue(node, isBreak) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { + const lab = this.state.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === 1)) { + break; + } + if (node.label && isBreak) break; + } + } + if (i === this.state.labels.length) { + const type = isBreak ? "BreakStatement" : "ContinueStatement"; + this.raise(Errors.IllegalBreakContinue, node, { + type + }); + } + } + parseDebuggerStatement(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement"); + } + parseHeaderExpression() { + this.expect(10); + const val = this.parseExpression(); + this.expect(11); + return val; + } + parseDoWhileStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + this.expect(92); + node.test = this.parseHeaderExpression(); + this.eat(13); + return this.finishNode(node, "DoWhileStatement"); + } + parseForStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + let awaitAt = null; + if (this.isContextual(96) && this.recordAwaitIfAllowed()) { + awaitAt = this.state.startLoc; + this.next(); + } + this.scope.enter(0); + this.expect(10); + if (this.match(13)) { + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, null); + } + const startsWithLet = this.isContextual(100); + { + const startsWithAwaitUsing = this.isAwaitUsing(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isForUsing(); + const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; + if (this.match(74) || this.match(75) || isLetOrUsing) { + const initNode = this.startNode(); + let kind; + if (startsWithAwaitUsing) { + kind = "await using"; + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc); + } + this.next(); + } else { + kind = this.state.value; + } + this.next(); + this.parseVar(initNode, true, kind); + const init = this.finishNode(initNode, "VariableDeclaration"); + const isForIn = this.match(58); + if (isForIn && starsWithUsingDeclaration) { + this.raise(Errors.ForInUsing, init); + } + if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) { + return this.parseForIn(node, init, awaitAt); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + } + const startsWithAsync = this.isContextual(95); + const refExpressionErrors = new ExpressionErrors(); + const init = this.parseExpression(true, refExpressionErrors); + const isForOf = this.isContextual(102); + if (isForOf) { + if (startsWithLet) { + this.raise(Errors.ForOfLet, init); + } + if (awaitAt === null && startsWithAsync && init.type === "Identifier") { + this.raise(Errors.ForOfAsync, init); + } + } + if (isForOf || this.match(58)) { + this.checkDestructuringPrivate(refExpressionErrors); + this.toAssignable(init, true); + const type = isForOf ? "ForOfStatement" : "ForInStatement"; + this.checkLVal(init, { + type + }); + return this.parseForIn(node, init, awaitAt); + } else { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + parseFunctionStatement(node, isAsync, isHangingDeclaration) { + this.next(); + return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0)); + } + parseIfStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(); + node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null; + return this.finishNode(node, "IfStatement"); + } + parseReturnStatement(node) { + if (!this.prodParam.hasReturn) { + this.raise(Errors.IllegalReturn, this.state.startLoc); + } + this.next(); + if (this.isLineTerminator()) { + node.argument = null; + } else { + node.argument = this.parseExpression(); + this.semicolon(); + } + return this.finishNode(node, "ReturnStatement"); + } + parseSwitchStatement(node) { + this.next(); + node.discriminant = this.parseHeaderExpression(); + const cases = node.cases = []; + this.expect(5); + this.state.labels.push(switchLabel); + this.scope.enter(256); + let cur; + for (let sawDefault; !this.match(8);) { + if (this.match(61) || this.match(65)) { + const isCase = this.match(61); + if (cur) this.finishNode(cur, "SwitchCase"); + cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { + this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc); + } + sawDefault = true; + cur.test = null; + } + this.expect(14); + } else { + if (cur) { + cur.consequent.push(this.parseStatementListItem()); + } else { + this.unexpected(); + } + } + } + this.scope.exit(); + if (cur) this.finishNode(cur, "SwitchCase"); + this.next(); + this.state.labels.pop(); + return this.finishNode(node, "SwitchStatement"); + } + parseThrowStatement(node) { + this.next(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc); + } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement"); + } + parseCatchClauseParam() { + const param = this.parseBindingAtom(); + this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0); + this.checkLVal(param, { + type: "CatchClause" + }, 9); + return param; + } + parseTryStatement(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.match(62)) { + const clause = this.startNode(); + this.next(); + if (this.match(10)) { + this.expect(10); + clause.param = this.parseCatchClauseParam(); + this.expect(11); + } else { + clause.param = null; + this.scope.enter(0); + } + clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); + this.scope.exit(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(67) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) { + this.raise(Errors.NoCatchOrFinally, node); + } + return this.finishNode(node, "TryStatement"); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + this.next(); + this.parseVar(node, false, kind, allowMissingInitializer); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration"); + } + parseWhileStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + return this.finishNode(node, "WhileStatement"); + } + parseWithStatement(node) { + if (this.state.strict) { + this.raise(Errors.StrictWith, this.state.startLoc); + } + this.next(); + node.object = this.parseHeaderExpression(); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + return this.finishNode(node, "WithStatement"); + } + parseEmptyStatement(node) { + this.next(); + return this.finishNode(node, "EmptyStatement"); + } + parseLabeledStatement(node, maybeName, expr, flags) { + for (const label of this.state.labels) { + if (label.name === maybeName) { + this.raise(Errors.LabelRedeclaration, expr, { + labelName: maybeName + }); + } + } + const kind = tokenIsLoop(this.state.type) ? 1 : this.match(71) ? 2 : null; + for (let i = this.state.labels.length - 1; i >= 0; i--) { + const label = this.state.labels[i]; + if (label.statementStart === node.start) { + label.statementStart = this.sourceToOffsetPos(this.state.start); + label.kind = kind; + } else { + break; + } + } + this.state.labels.push({ + name: maybeName, + kind: kind, + statementStart: this.sourceToOffsetPos(this.state.start) + }); + node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement(); + this.state.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement"); + } + parseExpressionStatement(node, expr, decorators) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement"); + } + parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { + const node = this.startNode(); + if (allowDirectives) { + this.state.strictErrors.clear(); + } + this.expect(5); + if (createNewLexicalScope) { + this.scope.enter(0); + } + this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); + if (createNewLexicalScope) { + this.scope.exit(); + } + return this.finishNode(node, "BlockStatement"); + } + isValidDirective(stmt) { + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + const body = node.body = []; + const directives = node.directives = []; + this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); + } + parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { + const oldStrict = this.state.strict; + let hasStrictModeDirective = false; + let parsedNonDirective = false; + while (!this.match(end)) { + const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem(); + if (directives && !parsedNonDirective) { + if (this.isValidDirective(stmt)) { + const directive = this.stmtToDirective(stmt); + directives.push(directive); + if (!hasStrictModeDirective && directive.value.value === "use strict") { + hasStrictModeDirective = true; + this.setStrict(true); + } + continue; + } + parsedNonDirective = true; + this.state.strictErrors.clear(); + } + body.push(stmt); + } + afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective); + if (!oldStrict) { + this.setStrict(false); + } + this.next(); + } + parseFor(node, init) { + node.init = init; + this.semicolon(false); + node.test = this.match(13) ? null : this.parseExpression(); + this.semicolon(false); + node.update = this.match(11) ? null : this.parseExpression(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, "ForStatement"); + } + parseForIn(node, init, awaitAt) { + const isForIn = this.match(58); + this.next(); + if (isForIn) { + if (awaitAt !== null) this.unexpected(awaitAt); + } else { + node.await = awaitAt !== null; + } + if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { + this.raise(Errors.ForInOfLoopInitializer, init, { + type: isForIn ? "ForInStatement" : "ForOfStatement" + }); + } + if (init.type === "AssignmentPattern") { + this.raise(Errors.InvalidLhs, init, { + ancestor: { + type: "ForStatement" + } + }); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); + } + parseVar(node, isFor, kind, allowMissingInitializer = false) { + const declarations = node.declarations = []; + node.kind = kind; + for (;;) { + const decl = this.startNode(); + this.parseVarId(decl, kind); + decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); + if (decl.init === null && !allowMissingInitializer) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind: "destructuring" + }); + } else if ((kind === "const" || kind === "using" || kind === "await using") && !(this.match(58) || this.isContextual(102))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind + }); + } + } + declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(12)) break; + } + return node; + } + parseVarId(decl, kind) { + const id = this.parseBindingAtom(); + if (kind === "using" || kind === "await using") { + if (id.type === "ArrayPattern" || id.type === "ObjectPattern") { + this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start); + } + } else { + if (id.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, id.loc.start); + } + } + this.checkLVal(id, { + type: "VariableDeclarator" + }, kind === "var" ? 5 : 8201); + decl.id = id; + } + parseAsyncFunctionExpression(node) { + return this.parseFunction(node, 8); + } + parseFunction(node, flags = 0) { + const hangingDeclaration = flags & 2; + const isDeclaration = !!(flags & 1); + const requireId = isDeclaration && !(flags & 4); + const isAsync = !!(flags & 8); + this.initFunction(node, isAsync); + if (this.match(55)) { + if (hangingDeclaration) { + this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc); + } + this.next(); + node.generator = true; + } + if (isDeclaration) { + node.id = this.parseFunctionId(requireId); + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = false; + this.scope.enter(514); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + if (!isDeclaration) { + node.id = this.parseFunctionId(); + } + this.parseFunctionParams(node, false); + this.withSmartMixTopicForbiddingContext(() => { + this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression"); + }); + this.prodParam.exit(); + this.scope.exit(); + if (isDeclaration && !hangingDeclaration) { + this.registerFunctionStatementId(node); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return node; + } + parseFunctionId(requireId) { + return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; + } + parseFunctionParams(node, isConstructor) { + this.expect(10); + this.expressionScope.enter(newParameterDeclarationScope()); + node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0)); + this.expressionScope.exit(); + } + registerFunctionStatementId(node) { + if (!node.id) return; + this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start); + } + parseClass(node, isStatement, optionalId) { + this.next(); + const oldStrict = this.state.strict; + this.state.strict = true; + this.parseClassId(node, isStatement, optionalId); + this.parseClassSuper(node); + node.body = this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); + } + isClassProperty() { + return this.match(29) || this.match(13) || this.match(8); + } + isClassMethod() { + return this.match(10); + } + nameIsConstructor(key) { + return key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"; + } + isNonstaticConstructor(method) { + return !method.computed && !method.static && this.nameIsConstructor(method.key); + } + parseClassBody(hadSuperClass, oldStrict) { + this.classScope.enter(); + const state = { + hadConstructor: false, + hadSuperClass + }; + let decorators = []; + const classBody = this.startNode(); + classBody.body = []; + this.expect(5); + this.withSmartMixTopicForbiddingContext(() => { + while (!this.match(8)) { + if (this.eat(13)) { + if (decorators.length > 0) { + throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc); + } + continue; + } + if (this.match(26)) { + decorators.push(this.parseDecorator()); + continue; + } + const member = this.startNode(); + if (decorators.length) { + member.decorators = decorators; + this.resetStartLocationFromNode(member, decorators[0]); + decorators = []; + } + this.parseClassMember(classBody, member, state); + if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { + this.raise(Errors.DecoratorConstructor, member); + } + } + }); + this.state.strict = oldStrict; + this.next(); + if (decorators.length) { + throw this.raise(Errors.TrailingDecorator, this.state.startLoc); + } + this.classScope.exit(); + return this.finishNode(classBody, "ClassBody"); + } + parseClassMemberFromModifier(classBody, member) { + const key = this.parseIdentifier(true); + if (this.isClassMethod()) { + const method = member; + method.kind = "method"; + method.computed = false; + method.key = key; + method.static = false; + this.pushClassMethod(classBody, method, false, false, false, false); + return true; + } else if (this.isClassProperty()) { + const prop = member; + prop.computed = false; + prop.key = key; + prop.static = false; + classBody.body.push(this.parseClassProperty(prop)); + return true; + } + this.resetPreviousNodeTrailingComments(key); + return false; + } + parseClassMember(classBody, member, state) { + const isStatic = this.isContextual(106); + if (isStatic) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } + if (this.eat(5)) { + this.parseClassStaticBlock(classBody, member); + return; + } + } + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const publicMethod = member; + const privateMethod = member; + const publicProp = member; + const privateProp = member; + const accessorProp = member; + const method = publicMethod; + const publicMember = publicMethod; + member.static = isStatic; + this.parsePropertyNamePrefixOperator(member); + if (this.eat(55)) { + method.kind = "method"; + const isPrivateName = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(method); + if (isPrivateName) { + this.pushClassPrivateMethod(classBody, privateMethod, true, false); + return; + } + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsGenerator, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, true, false, false, false); + return; + } + const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type); + const key = this.parseClassElementName(member); + const maybeContextualKw = isContextual ? key.name : null; + const isPrivate = this.isPrivateName(key); + const maybeQuestionTokenStartLoc = this.state.startLoc; + this.parsePostMemberNameModifiers(publicMember); + if (this.isClassMethod()) { + method.kind = "method"; + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + return; + } + const isConstructor = this.isNonstaticConstructor(publicMethod); + let allowsDirectSuper = false; + if (isConstructor) { + publicMethod.kind = "constructor"; + if (state.hadConstructor && !this.hasPlugin("typescript")) { + this.raise(Errors.DuplicateConstructor, key); + } + if (isConstructor && this.hasPlugin("typescript") && member.override) { + this.raise(Errors.OverrideOnConstructor, key); + } + state.hadConstructor = true; + allowsDirectSuper = state.hadSuperClass; + } + this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); + } else if (this.isClassProperty()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else if (maybeContextualKw === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); + const isGenerator = this.eat(55); + if (publicMember.optional) { + this.unexpected(maybeQuestionTokenStartLoc); + } + method.kind = "method"; + const isPrivate = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(publicMember); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAsync, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); + } + } else if ((maybeContextualKw === "get" || maybeContextualKw === "set") && !(this.match(55) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); + method.kind = maybeContextualKw; + const isPrivate = this.match(139); + this.parseClassElementName(publicMethod); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAccessor, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, false, false, false, false); + } + this.checkGetterSetterParams(publicMethod); + } else if (maybeContextualKw === "accessor" && !this.isLineTerminator()) { + this.expectPlugin("decoratorAutoAccessors"); + this.resetPreviousNodeTrailingComments(key); + const isPrivate = this.match(139); + this.parseClassElementName(publicProp); + this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); + } else if (this.isLineTerminator()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else { + this.unexpected(); + } + } + parseClassElementName(member) { + const { + type, + value + } = this.state; + if ((type === 132 || type === 134) && member.static && value === "prototype") { + this.raise(Errors.StaticPrototype, this.state.startLoc); + } + if (type === 139) { + if (value === "constructor") { + this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc); + } + const key = this.parsePrivateName(); + member.key = key; + return key; + } + this.parsePropertyName(member); + return member.key; + } + parseClassStaticBlock(classBody, member) { + var _member$decorators; + this.scope.enter(576 | 128 | 16); + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(0); + const body = member.body = []; + this.parseBlockOrModuleBlockBody(body, undefined, false, 8); + this.prodParam.exit(); + this.scope.exit(); + this.state.labels = oldLabels; + classBody.body.push(this.finishNode(member, "StaticBlock")); + if ((_member$decorators = member.decorators) != null && _member$decorators.length) { + this.raise(Errors.DecoratorStaticBlock, member); + } + } + pushClassProperty(classBody, prop) { + if (!prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + classBody.body.push(this.parseClassProperty(prop)); + } + pushClassPrivateProperty(classBody, prop) { + const node = this.parseClassPrivateProperty(prop); + classBody.body.push(node); + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + pushClassAccessorProperty(classBody, prop, isPrivate) { + if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + const node = this.parseClassAccessorProperty(prop); + classBody.body.push(node); + if (isPrivate) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); + classBody.body.push(node); + const kind = node.kind === "get" ? node.static ? 6 : 2 : node.kind === "set" ? node.static ? 5 : 1 : 0; + this.declareClassPrivateMethodInScope(node, kind); + } + declareClassPrivateMethodInScope(node, kind) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start); + } + parsePostMemberNameModifiers(methodOrProp) {} + parseClassPrivateProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassPrivateProperty"); + } + parseClassProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassProperty"); + } + parseClassAccessorProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassAccessorProperty"); + } + parseInitializer(node) { + this.scope.enter(576 | 16); + this.expressionScope.enter(newExpressionScope()); + this.prodParam.enter(0); + node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; + this.expressionScope.exit(); + this.prodParam.exit(); + this.scope.exit(); + } + parseClassId(node, isStatement, optionalId, bindingType = 8331) { + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + if (isStatement) { + this.declareNameFromIdentifier(node.id, bindingType); + } + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + throw this.raise(Errors.MissingClassName, this.state.startLoc); + } + } + } + parseClassSuper(node) { + node.superClass = this.eat(81) ? this.parseExprSubscripts() : null; + } + parseExport(node, decorators) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true); + const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + const parseAfterDefault = !hasDefault || this.eat(12); + const hasStar = parseAfterDefault && this.eatExportStar(node); + const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); + const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); + const isFromRequired = hasDefault || hasStar; + if (hasStar && !hasNamespace) { + if (hasDefault) this.unexpected(); + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, true); + this.sawUnambiguousESM = true; + return this.finishNode(node, "ExportAllDeclaration"); + } + const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); + if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) { + this.unexpected(null, 5); + } + if (hasNamespace && parseAfterNamespace) { + this.unexpected(null, 98); + } + let hasDeclaration; + if (isFromRequired || hasSpecifiers) { + hasDeclaration = false; + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, isFromRequired); + } else { + hasDeclaration = this.maybeParseExportDeclaration(node); + } + if (isFromRequired || hasSpecifiers || hasDeclaration) { + var _node2$declaration; + const node2 = node; + this.checkExport(node2, true, false, !!node2.source); + if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, node2.declaration, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.sawUnambiguousESM = true; + return this.finishNode(node2, "ExportNamedDeclaration"); + } + if (this.eat(65)) { + const node2 = node; + const decl = this.parseExportDefaultExpression(); + node2.declaration = decl; + if (decl.type === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, decl, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.checkExport(node2, true, true); + this.sawUnambiguousESM = true; + return this.finishNode(node2, "ExportDefaultDeclaration"); + } + throw this.unexpected(null, 5); + } + eatExportStar(node) { + return this.eat(55); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) { + this.expectPlugin("exportDefaultFrom", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start); + const id = maybeDefaultIdentifier || this.parseIdentifier(true); + const specifier = this.startNodeAtNode(id); + specifier.exported = id; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + if (this.isContextual(93)) { + var _ref, _ref$specifiers; + (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = []; + const specifier = this.startNodeAt(this.state.lastTokStartLoc); + this.next(); + specifier.exported = this.parseModuleExportName(); + node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); + return true; + } + return false; + } + maybeParseExportNamedSpecifiers(node) { + if (this.match(5)) { + const node2 = node; + if (!node2.specifiers) node2.specifiers = []; + const isTypeExport = node2.exportKind === "type"; + node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node2.source = null; + if (this.hasPlugin("importAssertions")) { + node2.assertions = []; + } else { + node2.attributes = []; + } + node2.declaration = null; + return true; + } + return false; + } + maybeParseExportDeclaration(node) { + if (this.shouldParseExportDeclaration()) { + node.specifiers = []; + node.source = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } else { + node.attributes = []; + } + node.declaration = this.parseExportDeclaration(node); + return true; + } + return false; + } + isAsyncFunction() { + if (!this.isContextual(95)) return false; + const next = this.nextTokenInLineStart(); + return this.isUnparsedContextual(next, "function"); + } + parseExportDefaultExpression() { + const expr = this.startNode(); + if (this.match(68)) { + this.next(); + return this.parseFunction(expr, 1 | 4); + } else if (this.isAsyncFunction()) { + this.next(); + this.next(); + return this.parseFunction(expr, 1 | 4 | 8); + } + if (this.match(80)) { + return this.parseClass(expr, true, true); + } + if (this.match(26)) { + if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); + } + if (this.match(75) || this.match(74) || this.isLet() || this.isUsing() || this.isAwaitUsing()) { + throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc); + } + const res = this.parseMaybeAssignAllowIn(); + this.semicolon(); + return res; + } + parseExportDeclaration(node) { + if (this.match(80)) { + const node = this.parseClass(this.startNode(), true, false); + return node; + } + return this.parseStatementListItem(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsIdentifier(type)) { + if (type === 95 && !this.state.containsEsc || type === 100) { + return false; + } + if ((type === 130 || type === 129) && !this.state.containsEsc) { + const next = this.nextTokenStart(); + const nextChar = this.input.charCodeAt(next); + if (nextChar === 123 || this.chStartsBindingIdentifier(nextChar, next) && !this.input.startsWith("from", next)) { + this.expectOnePlugin(["flow", "typescript"]); + return false; + } + } + } else if (!this.match(65)) { + return false; + } + const next = this.nextTokenStart(); + const hasFrom = this.isUnparsedContextual(next, "from"); + if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { + return true; + } + if (this.match(65) && hasFrom) { + const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); + return nextAfterFrom === 34 || nextAfterFrom === 39; + } + return false; + } + parseExportFrom(node, expect) { + if (this.eatContextual(98)) { + node.source = this.parseImportSource(); + this.checkExport(node); + this.maybeParseImportAttributes(node); + this.checkJSONModuleImport(node); + } else if (expect) { + this.unexpected(); + } + this.semicolon(); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 26) { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + if (this.hasPlugin("decorators")) { + if (this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return true; + } + } + if (this.isUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + if (this.isAwaitUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); + } + checkExport(node, checkNames, isDefault, isFrom) { + if (checkNames) { + var _node$specifiers; + if (isDefault) { + this.checkDuplicateExports(node, "default"); + if (this.hasPlugin("exportDefaultFrom")) { + var _declaration$extra; + const declaration = node.declaration; + if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { + this.raise(Errors.ExportDefaultFromAsIdentifier, declaration); + } + } + } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) { + for (const specifier of node.specifiers) { + const { + exported + } = specifier; + const exportName = exported.type === "Identifier" ? exported.name : exported.value; + this.checkDuplicateExports(specifier, exportName); + if (!isFrom && specifier.local) { + const { + local + } = specifier; + if (local.type !== "Identifier") { + this.raise(Errors.ExportBindingIsString, specifier, { + localName: local.value, + exportName + }); + } else { + this.checkReservedWord(local.name, local.loc.start, true, false); + this.scope.checkLocalExport(local); + } + } + } + } else if (node.declaration) { + const decl = node.declaration; + if (decl.type === "FunctionDeclaration" || decl.type === "ClassDeclaration") { + const { + id + } = decl; + if (!id) throw new Error("Assertion failure"); + this.checkDuplicateExports(node, id.name); + } else if (decl.type === "VariableDeclaration") { + for (const declaration of decl.declarations) { + this.checkDeclaration(declaration.id); + } + } + } + } + } + checkDeclaration(node) { + if (node.type === "Identifier") { + this.checkDuplicateExports(node, node.name); + } else if (node.type === "ObjectPattern") { + for (const prop of node.properties) { + this.checkDeclaration(prop); + } + } else if (node.type === "ArrayPattern") { + for (const elem of node.elements) { + if (elem) { + this.checkDeclaration(elem); + } + } + } else if (node.type === "ObjectProperty") { + this.checkDeclaration(node.value); + } else if (node.type === "RestElement") { + this.checkDeclaration(node.argument); + } else if (node.type === "AssignmentPattern") { + this.checkDeclaration(node.left); + } + } + checkDuplicateExports(node, exportName) { + if (this.exportedIdentifiers.has(exportName)) { + if (exportName === "default") { + this.raise(Errors.DuplicateDefaultExport, node); + } else { + this.raise(Errors.DuplicateExport, node, { + exportName + }); + } + } + this.exportedIdentifiers.add(exportName); + } + parseExportSpecifiers(isInTypeExport) { + const nodes = []; + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.eat(8)) break; + } + const isMaybeTypeOnly = this.isContextual(130); + const isString = this.match(134); + const node = this.startNode(); + node.local = this.parseModuleExportName(); + nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); + } + return nodes; + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (this.eatContextual(93)) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = this.cloneStringLiteral(node.local); + } else if (!node.exported) { + node.exported = this.cloneIdentifier(node.local); + } + return this.finishNode(node, "ExportSpecifier"); + } + parseModuleExportName() { + if (this.match(134)) { + const result = this.parseStringLiteral(this.state.value); + const surrogate = loneSurrogate.exec(result.value); + if (surrogate) { + this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, { + surrogateCharCode: surrogate[0].charCodeAt(0) + }); + } + return result; + } + return this.parseIdentifier(true); + } + isJSONModuleImport(node) { + if (node.assertions != null) { + return node.assertions.some(({ + key, + value + }) => { + return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type"); + }); + } + return false; + } + checkImportReflection(node) { + const { + specifiers + } = node; + const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null; + if (node.phase === "source") { + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0].loc.start); + } + } else if (node.phase === "defer") { + if (singleBindingType !== "ImportNamespaceSpecifier") { + this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start); + } + } else if (node.module) { + var _node$assertions; + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start); + } + if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { + this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start); + } + } + } + checkJSONModuleImport(node) { + if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") { + const { + specifiers + } = node; + if (specifiers != null) { + const nonDefaultNamedSpecifier = specifiers.find(specifier => { + let imported; + if (specifier.type === "ExportSpecifier") { + imported = specifier.local; + } else if (specifier.type === "ImportSpecifier") { + imported = specifier.imported; + } + if (imported !== undefined) { + return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default"; + } + }); + if (nonDefaultNamedSpecifier !== undefined) { + this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start); + } + } + } + } + isPotentialImportPhase(isExport) { + if (isExport) return false; + return this.isContextual(105) || this.isContextual(97) || this.isContextual(127); + } + applyImportPhase(node, isExport, phase, loc) { + if (isExport) { + return; + } + if (phase === "module") { + this.expectPlugin("importReflection", loc); + node.module = true; + } else if (this.hasPlugin("importReflection")) { + node.module = false; + } + if (phase === "source") { + this.expectPlugin("sourcePhaseImports", loc); + node.phase = "source"; + } else if (phase === "defer") { + this.expectPlugin("deferredImportEvaluation", loc); + node.phase = "defer"; + } else if (this.hasPlugin("sourcePhaseImports")) { + node.phase = null; + } + } + parseMaybeImportPhase(node, isExport) { + if (!this.isPotentialImportPhase(isExport)) { + this.applyImportPhase(node, isExport, null); + return null; + } + const phaseIdentifier = this.startNode(); + const phaseIdentifierName = this.parseIdentifierName(true); + const { + type + } = this.state; + const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + if (isImportPhase) { + this.applyImportPhase(node, isExport, phaseIdentifierName, phaseIdentifier.loc.start); + return null; + } else { + this.applyImportPhase(node, isExport, null); + return this.createIdentifier(phaseIdentifier, phaseIdentifierName); + } + } + isPrecedingIdImportPhase(phase) { + const { + type + } = this.state; + return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + } + parseImport(node) { + if (this.match(134)) { + return this.parseImportSourceAndAttributes(node); + } + return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); + } + parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) { + node.specifiers = []; + const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier); + const parseNext = !hasDefault || this.eat(12); + const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); + if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); + this.expectContextual(98); + return this.parseImportSourceAndAttributes(node); + } + parseImportSourceAndAttributes(node) { + var _node$specifiers2; + (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = []; + node.source = this.parseImportSource(); + this.maybeParseImportAttributes(node); + this.checkImportReflection(node); + this.checkJSONModuleImport(node); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + if (!this.match(134)) this.unexpected(); + return this.parseExprAtom(); + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + finishImportSpecifier(specifier, type, bindingType = 8201) { + this.checkLVal(specifier.local, { + type + }, bindingType); + return this.finishNode(specifier, type); + } + parseImportAttributes() { + this.expect(5); + const attrs = []; + const attrNames = new Set(); + do { + if (this.match(8)) { + break; + } + const node = this.startNode(); + const keyName = this.state.value; + if (attrNames.has(keyName)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, { + key: keyName + }); + } + attrNames.add(keyName); + if (this.match(134)) { + node.key = this.parseStringLiteral(keyName); + } else { + node.key = this.parseIdentifier(true); + } + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + this.expect(8); + return attrs; + } + parseModuleAttributes() { + const attrs = []; + const attributes = new Set(); + do { + const node = this.startNode(); + node.key = this.parseIdentifier(true); + if (node.key.name !== "type") { + this.raise(Errors.ModuleAttributeDifferentFromType, node.key); + } + if (attributes.has(node.key.name)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, { + key: node.key.name + }); + } + attributes.add(node.key.name); + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + return attrs; + } + maybeParseImportAttributes(node) { + let attributes; + var useWith = false; + if (this.match(76)) { + if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) { + return; + } + this.next(); + if (this.hasPlugin("moduleAttributes")) { + attributes = this.parseModuleAttributes(); + this.addExtra(node, "deprecatedWithLegacySyntax", true); + } else { + attributes = this.parseImportAttributes(); + } + useWith = true; + } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { + if (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importAssertions")) { + this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); + } + if (!this.hasPlugin("importAssertions")) { + this.addExtra(node, "deprecatedAssertSyntax", true); + } + this.next(); + attributes = this.parseImportAttributes(); + } else { + attributes = []; + } + if (!useWith && this.hasPlugin("importAssertions")) { + node.assertions = attributes; + } else { + node.attributes = attributes; + } + } + maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier) { + const specifier = this.startNodeAtNode(maybeDefaultIdentifier); + specifier.local = maybeDefaultIdentifier; + node.specifiers.push(this.finishImportSpecifier(specifier, "ImportDefaultSpecifier")); + return true; + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier"); + return true; + } + return false; + } + maybeParseStarImportSpecifier(node) { + if (this.match(55)) { + const specifier = this.startNode(); + this.next(); + this.expectContextual(93); + this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier"); + return true; + } + return false; + } + parseNamedImportSpecifiers(node) { + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + if (this.eat(14)) { + throw this.raise(Errors.DestructureNamedImport, this.state.startLoc); + } + this.expect(12); + if (this.eat(8)) break; + } + const specifier = this.startNode(); + const importedIsString = this.match(134); + const isMaybeTypeOnly = this.isContextual(130); + specifier.imported = this.parseModuleExportName(); + const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); + node.specifiers.push(importSpecifier); + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + const { + imported + } = specifier; + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: imported.value + }); + } + this.checkReservedWord(imported.name, specifier.loc.start, true, true); + if (!specifier.local) { + specifier.local = this.cloneIdentifier(imported); + } + } + return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); + } + isThisParam(param) { + return param.type === "Identifier" && param.name === "this"; + } + } + class Parser extends StatementParser { + constructor(options, input, pluginsMap) { + const normalizedOptions = getOptions(options); + super(normalizedOptions, input); + this.options = normalizedOptions; + this.initializeScopes(); + this.plugins = pluginsMap; + this.filename = normalizedOptions.sourceFilename; + this.startIndex = normalizedOptions.startIndex; + let optionFlags = 0; + if (normalizedOptions.allowAwaitOutsideFunction) { + optionFlags |= 1; + } + if (normalizedOptions.allowReturnOutsideFunction) { + optionFlags |= 2; + } + if (normalizedOptions.allowImportExportEverywhere) { + optionFlags |= 8; + } + if (normalizedOptions.allowSuperOutsideMethod) { + optionFlags |= 16; + } + if (normalizedOptions.allowUndeclaredExports) { + optionFlags |= 64; + } + if (normalizedOptions.allowNewTargetOutsideFunction) { + optionFlags |= 4; + } + if (normalizedOptions.allowYieldOutsideFunction) { + optionFlags |= 32; + } + if (normalizedOptions.ranges) { + optionFlags |= 128; + } + if (normalizedOptions.tokens) { + optionFlags |= 256; + } + if (normalizedOptions.createImportExpressions) { + optionFlags |= 512; + } + if (normalizedOptions.createParenthesizedExpressions) { + optionFlags |= 1024; + } + if (normalizedOptions.errorRecovery) { + optionFlags |= 2048; + } + if (normalizedOptions.attachComment) { + optionFlags |= 4096; + } + if (normalizedOptions.annexB) { + optionFlags |= 8192; + } + this.optionFlags = optionFlags; + } + getScopeHandler() { + return ScopeHandler; + } + parse() { + this.enterInitialScopes(); + const file = this.startNode(); + const program = this.startNode(); + this.nextToken(); + file.errors = null; + const result = this.parseTopLevel(file, program); + result.errors = this.state.errors; + result.comments.length = this.state.commentsLen; + return result; + } + } + function parse(input, options) { + var _options; + if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { + options = Object.assign({}, options); + try { + options.sourceType = "module"; + const parser = getParser(options, input); + const ast = parser.parse(); + if (parser.sawUnambiguousESM) { + return ast; + } + if (parser.ambiguousScriptDifferentAst) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused) {} + } else { + ast.program.sourceType = "script"; + } + return ast; + } catch (moduleError) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused2) {} + throw moduleError; + } + } else { + return getParser(options, input).parse(); + } + } + function parseExpression(input, options) { + const parser = getParser(options, input); + if (parser.options.strictMode) { + parser.state.strict = true; + } + return parser.getExpression(); + } + function generateExportedTokenTypes(internalTokenTypes) { + const tokenTypes = {}; + for (const typeName of Object.keys(internalTokenTypes)) { + tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); + } + return tokenTypes; + } + const tokTypes = generateExportedTokenTypes(tt); + function getParser(options, input) { + let cls = Parser; + const pluginsMap = new Map(); + if (options != null && options.plugins) { + for (const plugin of options.plugins) { + let name, opts; + if (typeof plugin === "string") { + name = plugin; + } else { + [name, opts] = plugin; + } + if (!pluginsMap.has(name)) { + pluginsMap.set(name, opts || {}); + } + } + validatePlugins(pluginsMap); + cls = getParserClass(pluginsMap); + } + return new cls(options, input, pluginsMap); + } + const parserClassCache = new Map(); + function getParserClass(pluginsMap) { + const pluginList = []; + for (const name of mixinPluginNames) { + if (pluginsMap.has(name)) { + pluginList.push(name); + } + } + const key = pluginList.join("|"); + let cls = parserClassCache.get(key); + if (!cls) { + cls = Parser; + for (const plugin of pluginList) { + cls = mixinPlugins[plugin](cls); + } + parserClassCache.set(key, cls); + } + return cls; + } + lib.parse = parse; + lib.parseExpression = parseExpression; + lib.tokTypes = tokTypes; + + return lib; +} + +var libExports = /*@__PURE__*/ requireLib(); + +// @ts-check +/** @typedef { import('estree').BaseNode} BaseNode */ + +/** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; +}} WalkerContext */ + +class WalkerBase { + constructor() { + /** @type {boolean} */ + this.should_skip = false; + + /** @type {boolean} */ + this.should_remove = false; + + /** @type {BaseNode | null} */ + this.replacement = null; + + /** @type {WalkerContext} */ + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } +} + +// @ts-check + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker.js').WalkerContext} WalkerContext */ + +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ + +class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {SyncHandler} */ + this.enter = enter; + + /** @type {SyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } +} + +// @ts-check + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./sync.js').SyncHandler} SyncHandler */ +/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ + +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ +function walk$2(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); +} + +function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + const rootExp = root.type === "Program" ? root.body[0].type === "ExpressionStatement" && root.body[0].expression : root; + walk$2(root, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + if (node.type === "Identifier") { + const isLocal = !!knownIds[node.name]; + const isRefed = isReferencedIdentifier(node, parent, parentStack); + if (includeAll || isRefed && !isLocal) { + onIdentifier(node, parent, parentStack, isRefed, isLocal); + } + } else if (node.type === "ObjectProperty" && // eslint-disable-next-line no-restricted-syntax + (parent == null ? void 0 : parent.type) === "ObjectPattern") { + node.inPattern = true; + } else if (isFunctionType(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkFunctionParams( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "BlockStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkBlockDeclarations( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "SwitchStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkSwitchStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "CatchClause" && node.param) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + for (const id of extractIdentifiers$1(node.param)) { + markScopeIdentifier(node, id, knownIds); + } + } + } else if (isForStatement(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkForStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node !== rootExp && node.scopeIds) { + for (const id of node.scopeIds) { + knownIds[id]--; + if (knownIds[id] === 0) { + delete knownIds[id]; + } + } + } + } + }); +} +function isReferencedIdentifier(id, parent, parentStack) { + if (!parent) { + return true; + } + if (id.name === "arguments") { + return false; + } + if (isReferenced(id, parent, parentStack[parentStack.length - 2])) { + return true; + } + switch (parent.type) { + case "AssignmentExpression": + case "AssignmentPattern": + return true; + case "ObjectProperty": + return parent.key !== id && isInDestructureAssignment(parent, parentStack); + case "ArrayPattern": + return isInDestructureAssignment(parent, parentStack); + } + return false; +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers$1(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + const body = block.type === "SwitchCase" ? block.consequent : block.body; + for (const stmt of body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers$1(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } else if (stmt.type === "SwitchStatement") { + walkSwitchStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers$1(decl.id)) { + onIdent(id); + } + } + } +} +function walkSwitchStatement(stmt, isVar, onIdent) { + for (const cs of stmt.cases) { + for (const stmt2 of cs.consequent) { + if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) { + for (const decl of stmt2.declarations) { + for (const id of extractIdentifiers$1(decl.id)) { + onIdent(id); + } + } + } + } + walkBlockDeclarations(cs, onIdent); + } +} +function extractIdentifiers$1(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers$1(prop.argument, nodes); + } else { + extractIdentifiers$1(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers$1(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers$1(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers$1(param.left, nodes); + break; + } + return nodes; +} +function markKnownIds(name, knownIds) { + if (name in knownIds) { + knownIds[name]++; + } else { + knownIds[name] = 1; + } +} +function markScopeIdentifier(node, child, knownIds) { + const { name } = child; + if (node.scopeIds && node.scopeIds.has(name)) { + return; + } + markKnownIds(name, knownIds); + (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name); +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +function isReferenced(node, parent, grandparent) { + switch (parent.type) { + // yes: PARENT[NODE] + // yes: NODE.child + // no: parent.NODE + case "MemberExpression": + case "OptionalMemberExpression": + if (parent.property === node) { + return !!parent.computed; + } + return parent.object === node; + case "JSXMemberExpression": + return parent.object === node; + // no: let NODE = init; + // yes: let id = NODE; + case "VariableDeclarator": + return parent.init === node; + // yes: () => NODE + // no: (NODE) => {} + case "ArrowFunctionExpression": + return parent.body === node; + // no: class { #NODE; } + // no: class { get #NODE() {} } + // no: class { #NODE() {} } + // no: class { fn() { return this.#NODE; } } + case "PrivateName": + return false; + // no: class { NODE() {} } + // yes: class { [NODE]() {} } + // no: class { foo(NODE) {} } + case "ClassMethod": + case "ClassPrivateMethod": + case "ObjectMethod": + if (parent.key === node) { + return !!parent.computed; + } + return false; + // yes: { [NODE]: "" } + // no: { NODE: "" } + // depends: { NODE } + // depends: { key: NODE } + case "ObjectProperty": + if (parent.key === node) { + return !!parent.computed; + } + return !grandparent || grandparent.type !== "ObjectPattern"; + // no: class { NODE = value; } + // yes: class { [NODE] = value; } + // yes: class { key = NODE; } + case "ClassProperty": + if (parent.key === node) { + return !!parent.computed; + } + return true; + case "ClassPrivateProperty": + return parent.key !== node; + // no: class NODE {} + // yes: class Foo extends NODE {} + case "ClassDeclaration": + case "ClassExpression": + return parent.superClass === node; + // yes: left = NODE; + // no: NODE = right; + case "AssignmentExpression": + return parent.right === node; + // no: [NODE = foo] = []; + // yes: [foo = NODE] = []; + case "AssignmentPattern": + return parent.right === node; + // no: NODE: for (;;) {} + case "LabeledStatement": + return false; + // no: try {} catch (NODE) {} + case "CatchClause": + return false; + // no: function foo(...NODE) {} + case "RestElement": + return false; + case "BreakStatement": + case "ContinueStatement": + return false; + // no: function NODE() {} + // no: function foo(NODE) {} + case "FunctionDeclaration": + case "FunctionExpression": + return false; + // no: export NODE from "foo"; + // no: export * as NODE from "foo"; + case "ExportNamespaceSpecifier": + case "ExportDefaultSpecifier": + return false; + // no: export { foo as NODE }; + // yes: export { NODE as foo }; + // no: export { NODE as foo } from "foo"; + case "ExportSpecifier": + if (grandparent == null ? void 0 : grandparent.source) { + return false; + } + return parent.local === node; + // no: import NODE from "foo"; + // no: import * as NODE from "foo"; + // no: import { NODE as foo } from "foo"; + // no: import { foo as NODE } from "foo"; + // no: import NODE from "bar"; + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "ImportSpecifier": + return false; + // no: import "foo" assert { NODE: "json" } + case "ImportAttribute": + return false; + // no: <div NODE="foo" /> + case "JSXAttribute": + return false; + // no: [NODE] = []; + // no: ({ NODE }) = []; + case "ObjectPattern": + case "ArrayPattern": + return false; + // no: new.NODE + // no: NODE.target + case "MetaProperty": + return false; + // yes: type X = { someProperty: NODE } + // no: type X = { NODE: OtherType } + case "ObjectTypeProperty": + return parent.key !== node; + // yes: enum X { Foo = NODE } + // no: enum X { NODE } + case "TSEnumMember": + return parent.id !== node; + // yes: { [NODE]: value } + // no: { NODE: value } + case "TSPropertySignature": + if (parent.key === node) { + return !!parent.computed; + } + return true; + } + return true; +} +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = (exp, context) => { + try { + let ret = exp.ast || libExports.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + ret = unwrapTSNode(ret); + return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier" && ret.name !== "undefined"; + } catch (e) { + return false; + } +}; +const isMemberExpression = isMemberExpressionNode; +const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpressionNode = (exp, context) => { + try { + let ret = exp.ast || libExports.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + if (ret.type === "Program") { + ret = ret.body[0]; + if (ret.type === "ExpressionStatement") { + ret = ret.expression; + } + } + ret = unwrapTSNode(ret); + return ret.type === "FunctionExpression" || ret.type === "ArrowFunctionExpression"; + } catch (e) { + return false; + } +}; +const isFnExpression = isFnExpressionNode; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString$1(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVPre(p) { + return p.type === 7 && p.name === "pre"; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !isString$1(props) && props.type === 14) { + const callee = props.callee; + if (!isString$1(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString$1(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString$1(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString$1(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => isObject$2(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); +} +function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); +} + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: NO, + isPreTag: NO, + isIgnoreNewlineTag: NO, + isCustomElement: NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = decodeHTML(exp); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + { + if (currentProp.name === "for") { + expParseMode = 3 /* Skip */; + } else if (currentProp.name === "slot") { + expParseMode = 1 /* Params */; + } else if (currentProp.name === "on" && currentAttrValue.includes(";")) { + expParseMode = 2 /* Statements */; + } + } + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } + } + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) { + if (isSimpleIdentifier(content)) { + exp.ast = null; + return exp; + } + try { + const plugins = currentOptions.expressionPlugins; + const options = { + plugins: plugins ? [...plugins, "typescript"] : ["typescript"] + }; + if (parseMode === 2 /* Statements */) { + exp.ast = libExports.parse(` ${content} `, options).program; + } else if (parseMode === 1 /* Params */) { + exp.ast = libExports.parseExpression(`(${content})=>{}`, options); + } else { + exp.ast = libExports.parseExpression(`(${content})`, options); + } + } catch (e) { + exp.ast = false; + emitError(46, loc.start.offset, e.message); + } + } + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (currentOptions.decodeEntities) { + console.warn( + `[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk$1( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); +} +function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; +} +function walk$1(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (` /* ${PatchFlagNames[-1]} */` ) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk$1(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk$1(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk$1( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray$3(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray$3(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray$3(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !isArray$3(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString$1(child) || isSymbol$1(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString$1(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: NOOP, + addIdentifiers(exp) { + { + if (isString$1(exp)) { + addId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(addId); + } else if (exp.type === 4) { + addId(exp.content); + } + } + }, + removeIdentifiers(exp) { + { + if (isString$1(exp)) { + removeId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(removeId); + } else if (exp.type === 4) { + removeId(exp.content); + } + } + }, + hoist(exp) { + if (isString$1(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + function addId(id) { + const { identifiers } = context; + if (identifiers[id] === void 0) { + identifiers[id] = 0; + } + identifiers[id]++; + } + function removeId(id) { + context.identifiers[id]--; + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString$1(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray$3(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = isString$1(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +var sourceMap$1 = {}; + +var sourceMapGenerator$1 = {}; + +var base64Vlq$1 = {}; + +var base64$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBase64$1; + +function requireBase64$1 () { + if (hasRequiredBase64$1) return base64$1; + hasRequiredBase64$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + + /** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ + base64$1.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + + /** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ + base64$1.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; + }; + return base64$1; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBase64Vlq$1; + +function requireBase64Vlq$1 () { + if (hasRequiredBase64Vlq$1) return base64Vlq$1; + hasRequiredBase64Vlq$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + var base64 = /*@__PURE__*/ requireBase64$1(); + + // A single base 64 digit can contain 6 bits of data. For the base 64 variable + // length quantities we use in the source map spec, the first bit is the sign, + // the next four bits are the actual value, and the 6th bit is the + // continuation bit. The continuation bit tells us whether there are more + // digits in this value following this digit. + // + // Continuation + // | Sign + // | | + // V V + // 101011 + + var VLQ_BASE_SHIFT = 5; + + // binary: 100000 + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + + // binary: 011111 + var VLQ_BASE_MASK = VLQ_BASE - 1; + + // binary: 100000 + var VLQ_CONTINUATION_BIT = VLQ_BASE; + + /** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ + function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; + } + + /** + * Returns the base 64 VLQ encoded value. + */ + base64Vlq$1.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; + }; + + /** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ + base64Vlq$1.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; + return base64Vlq$1; +} + +var util$2 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredUtil$2; + +function requireUtil$2 () { + if (hasRequiredUtil$2) return util$2; + hasRequiredUtil$2 = 1; + (function (exports$1) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + /** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports$1.getArg = getArg; + + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports$1.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports$1.urlGenerate = urlGenerate; + + var MAX_CACHED_INPUTS = 32; + + /** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ + function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; + } + + /** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ + var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports$1.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + }); + exports$1.normalize = normalize; + + /** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports$1.join = join; + + exports$1.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); + }; + + /** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports$1.relative = relative; + + var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); + }()); + + function identity (s) { + return s; + } + + /** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; + } + exports$1.toSetString = supportsNullProto ? identity : toSetString; + + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; + } + exports$1.fromSetString = supportsNullProto ? identity : fromSetString; + + function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; + } + + /** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByOriginalPositions = compareByOriginalPositions; + + function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp; + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + + /** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + + function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; + } + + /** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + + /** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); + } + exports$1.parseSourceMapInput = parseSourceMapInput; + + /** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); + } + exports$1.computeSourceURL = computeSourceURL; + } (util$2)); + return util$2; +} + +var arraySet$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredArraySet$1; + +function requireArraySet$1 () { + if (hasRequiredArraySet$1) return arraySet$1; + hasRequiredArraySet$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil$2(); + var has = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + + /** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); + } + + /** + * Static method for creating ArraySet instances from an existing array. + */ + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + }; + + /** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + + /** + * Add the given string to this set. + * + * @param String aStr + */ + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + + /** + * Is the given string a member of this set? + * + * @param String aStr + */ + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } + }; + + /** + * What is the index of the given string in the array? + * + * @param String aStr + */ + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); + }; + + /** + * What is the element at the given index? + * + * @param Number aIdx + */ + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); + }; + + /** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + + arraySet$1.ArraySet = ArraySet; + return arraySet$1; +} + +var mappingList$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredMappingList$1; + +function requireMappingList$1 () { + if (hasRequiredMappingList$1) return mappingList$1; + hasRequiredMappingList$1 = 1; + /* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil$2(); + + /** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ + function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + + /** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ + function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + + mappingList$1.MappingList = MappingList; + return mappingList$1; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceMapGenerator$1; + +function requireSourceMapGenerator$1 () { + if (hasRequiredSourceMapGenerator$1) return sourceMapGenerator$1; + hasRequiredSourceMapGenerator$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var base64VLQ = /*@__PURE__*/ requireBase64Vlq$1(); + var util = /*@__PURE__*/ requireUtil$2(); + var ArraySet = /*@__PURE__*/ requireArraySet$1().ArraySet; + var MappingList = /*@__PURE__*/ requireMappingList$1().MappingList; + + /** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + + SourceMapGenerator.prototype._version = 3; + + /** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ + SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + })); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ + SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + + /** + * Set the source content for a source file. + */ + SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + + /** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ + SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + + /** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ + SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + var message = 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.'; + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + var message = 'Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message) + } + } + }; + + /** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ + SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ''; + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + + SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + + /** + * Externalize the source map. + */ + SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + + /** + * Render the source map being generated to a string. + */ + SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + + sourceMapGenerator$1.SourceMapGenerator = SourceMapGenerator; + return sourceMapGenerator$1; +} + +var sourceMapConsumer$1 = {}; + +var binarySearch$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBinarySearch$1; + +function requireBinarySearch$1 () { + if (hasRequiredBinarySearch$1) return binarySearch$1; + hasRequiredBinarySearch$1 = 1; + (function (exports$1) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + exports$1.GREATEST_LOWER_BOUND = 1; + exports$1.LEAST_UPPER_BOUND = 2; + + /** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports$1.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports$1.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + + /** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ + exports$1.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports$1.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; + }; + } (binarySearch$1)); + return binarySearch$1; +} + +var quickSort$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredQuickSort$1; + +function requireQuickSort$1 () { + if (hasRequiredQuickSort$1) return quickSort$1; + hasRequiredQuickSort$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + // It turns out that some (most?) JavaScript engines don't self-host + // `Array.prototype.sort`. This makes sense because C++ will likely remain + // faster than JS when doing raw CPU-intensive sorting. However, when using a + // custom comparator function, calling back and forth between the VM's C++ and + // JIT'd JS is rather slow *and* loses JIT type information, resulting in + // worse generated code for the comparator function than would be optimal. In + // fact, when sorting with a comparator, these costs outweigh the benefits of + // sorting in C++. By using our own JS-implemented Quick Sort (below), we get + // a ~3500ms mean speed-up in `bench/bench.html`. + + function SortTemplate(comparator) { + + /** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + + /** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ + function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); + } + + /** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ + function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } + } + + return doQuickSort; + } + + function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); + } + + /** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + + let sortCache = new WeakMap(); + quickSort$1.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); + }; + return quickSort$1; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceMapConsumer$1; + +function requireSourceMapConsumer$1 () { + if (hasRequiredSourceMapConsumer$1) return sourceMapConsumer$1; + hasRequiredSourceMapConsumer$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil$2(); + var binarySearch = /*@__PURE__*/ requireBinarySearch$1(); + var ArraySet = /*@__PURE__*/ requireArraySet$1().ArraySet; + var base64VLQ = /*@__PURE__*/ requireBase64Vlq$1(); + var quickSort = /*@__PURE__*/ requireQuickSort$1().quickSort; + + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + SourceMapConsumer.prototype._version = 3; + + // `__generatedMappings` and `__originalMappings` are arrays that hold the + // parsed mapping coordinates from the source map's "mappings" attribute. They + // are lazily instantiated, accessed via the `_generatedMappings` and + // `_originalMappings` getters respectively, and we only parse the mappings + // and create these arrays once queried for a source location. We jump through + // these hoops because there can be many thousands of mappings, and parsing + // them is expensive, so we only want to do it if we must. + // + // Each object in the arrays is of the form: + // + // { + // generatedLine: The line number in the generated code, + // generatedColumn: The column number in the generated code, + // source: The path to the original source file that generated this + // chunk of code, + // originalLine: The line number in the original source that + // corresponds to this chunk of generated code, + // originalColumn: The column number in the original source that + // corresponds to this chunk of generated code, + // name: The name of the original symbol which generated this chunk of + // code. + // } + // + // All properties except for `generatedLine` and `generatedColumn` can be + // `null`. + // + // `_generatedMappings` is ordered by the generated positions. + // + // `_originalMappings` is ordered by the original positions. + + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } + }); + + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } + }); + + SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + + /** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ + SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + } + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + + /** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + + sourceMapConsumer$1.SourceMapConsumer = SourceMapConsumer; + + /** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + + /** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; + }; + + /** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ + BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + BasicSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } + }); + + /** + * Provide the JIT with a nice shape / hidden class. + */ + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + + const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; + function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } + } + BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + + /** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ + BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + + sourceMapConsumer$1.BasicSourceMapConsumer = BasicSourceMapConsumer; + + /** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); + } + + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + + /** + * The version of the source mapping spec that we are consuming. + */ + IndexedSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === '') { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + } + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + + sourceMapConsumer$1.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + return sourceMapConsumer$1; +} + +var sourceNode$1 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceNode$1; + +function requireSourceNode$1 () { + if (hasRequiredSourceNode$1) return sourceNode$1; + hasRequiredSourceNode$1 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var SourceMapGenerator = /*@__PURE__*/ requireSourceMapGenerator$1().SourceMapGenerator; + var util = /*@__PURE__*/ requireUtil$2(); + + // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other + // operating systems these days (capturing the result). + var REGEX_NEWLINE = /(\r?\n)/; + + // Newline character code for charCodeAt() comparisons + var NEWLINE_CODE = 10; + + // Private symbol for identifying `SourceNode`s when multiple versions of + // the source-map library are loaded. This MUST NOT CHANGE across + // versions! + var isSourceNode = "$$$isSourceNode$$$"; + + /** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); + } + + /** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ + SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + + /** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } + }; + + /** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + + /** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; + }; + + /** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ + SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + + /** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + + /** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ + SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; + }; + + /** + * Returns the string representation of this source node along with a source + * map. + */ + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; + }; + + sourceNode$1.SourceNode = SourceNode; + return sourceNode$1; +} + +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var hasRequiredSourceMap$1; + +function requireSourceMap$1 () { + if (hasRequiredSourceMap$1) return sourceMap$1; + hasRequiredSourceMap$1 = 1; + sourceMap$1.SourceMapGenerator = /*@__PURE__*/ requireSourceMapGenerator$1().SourceMapGenerator; + sourceMap$1.SourceMapConsumer = /*@__PURE__*/ requireSourceMapConsumer$1().SourceMapConsumer; + sourceMap$1.SourceNode = /*@__PURE__*/ requireSourceNode$1().SourceNode; + return sourceMap$1; +} + +var sourceMapExports = /*@__PURE__*/ requireSourceMap$1(); + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + if (context.map) { + if (node) { + let name; + if (node.type === 4 && !node.isStatic) { + const content = node.content.replace(/^_ctx\./, ""); + if (content !== node.content && isSimpleIdentifier(content)) { + name = content; + } + } + if (node.loc.source) { + addMapping(node.loc.start, name); + } + } + if (newlineIndex === -3 /* Unknown */) { + advancePositionWithMutation(context, code); + } else { + context.offset += code.length; + if (newlineIndex === -2 /* None */) { + context.column += code.length; + } else { + if (newlineIndex === -1 /* End */) { + newlineIndex = code.length - 1; + } + context.line++; + context.column = code.length - newlineIndex; + } + } + if (node && node.loc !== locStub && node.loc.source) { + addMapping(node.loc.end); + } + } + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + function addMapping(loc, name = null) { + const { _names, _mappings } = context.map; + if (name !== null && !_names.has(name)) _names.add(name); + _mappings.add({ + originalLine: loc.line, + originalColumn: loc.column - 1, + // source-map column is 0 based + generatedLine: context.line, + generatedColumn: context.column - 1, + source: filename, + name + }); + } + if (sourceMap) { + context.map = new sourceMapExports.SourceMapGenerator(); + context.map.setSourceContent(filename, context.source); + context.map._sources.add(filename); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const genScopeId = scopeId != null && mode === "module"; + const isSetupInlined = !!options.inline; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + if (mode === "module") { + genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined); + } else { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + if (options.bindingMetadata && !options.inline) { + args.push("$props", "$setup", "$data", "$options"); + } + const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(",") : args.join(", "); + if (isSetupInlined) { + push(`(${signature}) => {`); + } else { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + if (prefixIdentifiers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding} +`, + -1 /* End */ + ); + } else { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}") +`, + -1 /* End */ + ); + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genModulePreamble(ast, context, genScopeId, inline) { + const { + push, + newline, + optimizeImports, + runtimeModuleName, + ssrRuntimeModuleName + } = context; + if (ast.helpers.size) { + const helpers = Array.from(ast.helpers); + if (optimizeImports) { + push( + `import { ${helpers.map((s) => helperNameMap[s]).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + push( + ` +// Binding optimization for webpack code-split +const ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(", ")} +`, + -1 /* End */ + ); + } else { + push( + `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from "${ssrRuntimeModuleName}" +`, + -1 /* End */ + ); + } + if (ast.imports.length) { + genImports(ast.imports, context); + newline(); + } + genHoists(ast.hoists, context); + newline(); + if (!inline) { + push(`export `); + } +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function genImports(importsOptions, context) { + if (!importsOptions.length) { + return; + } + importsOptions.forEach((imports) => { + context.push(`import `); + genNode(imports.exp, context); + context.push(` from '${imports.path}'`); + context.newline(); + }); +} +function isText(n) { + return isString$1(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray$3(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString$1(node)) { + push(node, -3 /* Unknown */); + } else if (isArray$3(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (isString$1(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (isSymbol$1(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + genTemplateLiteral(node, context); + break; + case 23: + genIfStatement(node, context); + break; + case 24: + genAssignmentExpression(node, context); + break; + case 25: + genSequenceExpression(node, context); + break; + case 26: + genReturnStatement(node, context); + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString$1(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString$1(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (isArray$3(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray$3(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} +function genTemplateLiteral(node, context) { + const { push, indent, deindent } = context; + push("`"); + const l = node.elements.length; + const multilines = l > 3; + for (let i = 0; i < l; i++) { + const e = node.elements[i]; + if (isString$1(e)) { + push(e.replace(/(`|\$|\\)/g, "\\$1"), -3 /* Unknown */); + } else { + push("${"); + if (multilines) indent(); + genNode(e, context); + if (multilines) deindent(); + push("}"); + } + } + push("`"); +} +function genIfStatement(node, context) { + const { push, indent, deindent } = context; + const { test, consequent, alternate } = node; + push(`if (`); + genNode(test, context); + push(`) {`); + indent(); + genNode(consequent, context); + deindent(); + push(`}`); + if (alternate) { + push(` else `); + if (alternate.type === 23) { + genIfStatement(alternate, context); + } else { + push(`{`); + indent(); + genNode(alternate, context); + deindent(); + push(`}`); + } + } +} +function genAssignmentExpression(node, context) { + genNode(node.left, context); + context.push(` = `); + genNode(node.right, context); +} +function genSequenceExpression(node, context) { + context.push(`(`); + genNodeList(node.expressions, context); + context.push(`)`); +} +function genReturnStatement({ returns }, context) { + context.push(`return `); + if (isArray$3(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } +} + +const isLiteralWhitelisted = /* @__PURE__ */ makeMap("true,false,null,this"); +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + if (!context.prefixIdentifiers || !node.content.trim()) { + return node; + } + const { inline, bindingMetadata } = context; + const rewriteIdentifier = (raw, parent, id) => { + const type = hasOwn(bindingMetadata, raw) && bindingMetadata[raw]; + if (inline) { + const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id; + const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id; + const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack); + const isNewExpression = parent && isInNewExpression(parentStack); + const wrapWithUnref = (raw2) => { + const wrapped = `${context.helperString(UNREF)}(${raw2})`; + return isNewExpression ? `(${wrapped})` : wrapped; + }; + if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) { + return raw; + } else if (type === "setup-ref") { + return `${raw}.value`; + } else if (type === "setup-maybe-ref") { + return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw); + } else if (type === "setup-let") { + if (isAssignmentLVal) { + const { right: rVal, operator } = parent; + const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1); + const rExpString = stringifyExpression( + processExpression( + createSimpleExpression(rExp, false), + context, + false, + false, + knownIds + ) + ); + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`; + } else if (isUpdateArg) { + id.start = parent.start; + id.end = parent.end; + const { prefix: isPrefix, operator } = parent; + const prefix = isPrefix ? operator : ``; + const postfix = isPrefix ? `` : operator; + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`; + } else if (isDestructureAssignment) { + return raw; + } else { + return wrapWithUnref(raw); + } + } else if (type === "props") { + return genPropsAccessExp(raw); + } else if (type === "props-aliased") { + return genPropsAccessExp(bindingMetadata.__propsAliases[raw]); + } + } else { + if (type && type.startsWith("setup") || type === "literal-const") { + return `$setup.${raw}`; + } else if (type === "props-aliased") { + return `$props['${bindingMetadata.__propsAliases[raw]}']`; + } else if (type) { + return `$${type}.${raw}`; + } + } + return `_ctx.${raw}`; + }; + const rawExp = node.content; + let ast = node.ast; + if (ast === false) { + return node; + } + if (ast === null || !ast && isSimpleIdentifier(rawExp)) { + const isScopeVarReference = context.identifiers[rawExp]; + const isAllowedGlobal = isGloballyAllowed(rawExp); + const isLiteral = isLiteralWhitelisted(rawExp); + if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) { + if (isConst(bindingMetadata[rawExp])) { + node.constType = 1; + } + node.content = rewriteIdentifier(rawExp); + } else if (!isScopeVarReference) { + if (isLiteral) { + node.constType = 3; + } else { + node.constType = 2; + } + } + return node; + } + if (!ast) { + const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`; + try { + ast = libExports.parseExpression(source, { + sourceType: "module", + plugins: context.expressionPlugins + }); + } catch (e) { + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + e.message + ) + ); + return node; + } + } + const ids = []; + const parentStack = []; + const knownIds = Object.create(context.identifiers); + walkIdentifiers( + ast, + (node2, parent, _, isReferenced, isLocal) => { + if (isStaticPropertyKey(node2, parent)) { + return; + } + const needPrefix = isReferenced && canPrefix(node2); + if (needPrefix && !isLocal) { + if (isStaticProperty(parent) && parent.shorthand) { + node2.prefix = `${node2.name}: `; + } + node2.name = rewriteIdentifier(node2.name, parent, node2); + ids.push(node2); + } else { + if (!(needPrefix && isLocal) && (!parent || parent.type !== "CallExpression" && parent.type !== "NewExpression" && parent.type !== "MemberExpression")) { + node2.isConstant = true; + } + ids.push(node2); + } + }, + true, + // invoke on ALL identifiers + parentStack, + knownIds + ); + const children = []; + ids.sort((a, b) => a.start - b.start); + ids.forEach((id, i) => { + const start = id.start - 1; + const end = id.end - 1; + const last = ids[i - 1]; + const leadingText = rawExp.slice(last ? last.end - 1 : 0, start); + if (leadingText.length || id.prefix) { + children.push(leadingText + (id.prefix || ``)); + } + const source = rawExp.slice(start, end); + children.push( + createSimpleExpression( + id.name, + false, + { + start: advancePositionWithClone(node.loc.start, source, start), + end: advancePositionWithClone(node.loc.start, source, end), + source + }, + id.isConstant ? 3 : 0 + ) + ); + if (i === ids.length - 1 && end < rawExp.length) { + children.push(rawExp.slice(end)); + } + }); + let ret; + if (children.length) { + ret = createCompoundExpression(children, node.loc); + ret.ast = ast; + } else { + ret = node; + ret.constType = 3; + } + ret.identifiers = Object.keys(knownIds); + return ret; +} +function canPrefix(id) { + if (isGloballyAllowed(id.name)) { + return false; + } + if (id.name === "require") { + return false; + } + return true; +} +function stringifyExpression(exp) { + if (isString$1(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} +function isConst(type) { + return type === "setup-const" || type === "literal-const"; +} + +const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (context.prefixIdentifiers && dir.exp) { + dir.exp = processExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + const isDirKey = keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + if (memo && keyExp && isDirKey) { + { + keyProp.exp = keyExp = processExpression( + keyExp, + context + ); + } + } + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + if (isTemplate) { + if (memo) { + memo.exp = processExpression( + memo.exp, + context + ); + } + if (keyProperty && keyProp.type !== 6) { + keyProperty.value = processExpression( + keyProperty.value, + context + ); + } + } + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + if (context.prefixIdentifiers) { + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + } + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (context.prefixIdentifiers) { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + } + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + if (context.prefixIdentifiers) { + result.source = processExpression( + result.source, + context + ); + if (result.key) { + result.key = processExpression( + result.key, + context, + true + ); + } + if (result.index) { + result.index = processExpression( + result.index, + context, + true + ); + } + if (result.value) { + result.value = processExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + const slotProps = vSlot.exp; + if (context.prefixIdentifiers) { + slotProps && context.addIdentifiers(slotProps); + } + context.scopes.vSlot++; + return () => { + if (context.prefixIdentifiers) { + slotProps && context.removeIdentifiers(slotProps); + } + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + if (!context.ssr && context.prefixIdentifiers) { + hasDynamicSlots = node.props.some( + (prop) => isVSlot(prop) && (hasScopeRef(prop.arg, context.identifiers) || hasScopeRef(prop.exp, context.identifiers)) + ) || children.some((child) => hasScopeRef(child, context.identifiers)); + } + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject$2(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || false) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + { + exp = isProp.exp = processExpression(exp, context); + } + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + { + const fromSetup = resolveSetupReference(tag, context); + if (fromSetup) { + return fromSetup; + } + const dotIndex = tag.indexOf("."); + if (dotIndex > 0) { + const ns = resolveSetupReference(tag.slice(0, dotIndex), context); + if (ns) { + return ns + tag.slice(dotIndex); + } + } + } + if (context.selfName && capitalize(camelize(tag)) === context.selfName) { + context.helper(RESOLVE_COMPONENT); + context.components.add(tag + `__self`); + return toValidAssetId(tag, `component`); + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function resolveSetupReference(name, context) { + const bindings = context.bindingMetadata; + if (!bindings || bindings.__isScriptSetup === false) { + return; + } + const camelName = camelize(name); + const PascalName = capitalize(camelName); + const checkType = (type) => { + if (bindings[name] === type) { + return name; + } + if (bindings[camelName] === type) { + return camelName; + } + if (bindings[PascalName] === type) { + return PascalName; + } + }; + const fromConst = checkType("setup-const") || checkType("setup-reactive-const") || checkType("literal-const"); + if (fromConst) { + return context.inline ? ( + // in inline mode, const setup bindings (e.g. imports) can be used as-is + fromConst + ) : `$setup[${JSON.stringify(fromConst)}]`; + } + const fromMaybeRef = checkType("setup-let") || checkType("setup-ref") || checkType("setup-maybe-ref"); + if (fromMaybeRef) { + return context.inline ? ( + // setup scope bindings that may be refs need to be unrefed + `${context.helperString(UNREF)}(${fromMaybeRef})` + ) : `$setup[${JSON.stringify(fromMaybeRef)}]`; + } + const fromProps = checkType("props"); + if (fromProps) { + return `${context.helperString(UNREF)}(${context.inline ? "__props" : "$props"}[${JSON.stringify(fromProps)}])`; + } +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + if (value && context.inline) { + const binding = context.bindingMetadata[value.content]; + if (binding === "setup-let" || binding === "setup-ref" || binding === "setup-maybe-ref") { + isStatic = false; + properties.push( + createObjectProperty( + createSimpleExpression("ref_key", true), + createSimpleExpression(value.content, true, value.loc) + ) + ); + } + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || false)) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || false)) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol$1(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + const fromSetup = resolveSetupReference("v-" + dir.name, context); + if (fromSetup) { + dirArgs.push(fromSetup); + } else { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + { + slotName = p.exp = processExpression(p.exp, context); + } + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp, context); + const isInlineStatement = !(isMemberExp || isFnExpression(exp, context)); + const hasMultipleStatements = exp.content.includes(`;`); + if (context.prefixIdentifiers) { + isInlineStatement && context.addIdentifiers(`$event`); + exp = dir.exp = processExpression( + exp, + context, + false, + hasMultipleStatements + ); + isInlineStatement && context.removeIdentifiers(`$event`); + shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once + !context.inVOnce && // runtime constants don't need to be cached + // (this is analyzed by compileScript in SFC <script setup>) + !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component - + // we need to use the original function to preserve arity, + // e.g. <transition> relies on checking cb.length to determine + // transition end handling. Inline function is ok since its arity + // is preserved even when cached. + !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot) + // it must be passed fresh to avoid stale values. + !hasScopeRef(exp, context.identifiers); + if (shouldCache && isMemberExp) { + if (exp.type === 4) { + exp.content = `${exp.content} && ${exp.content}(...args)`; + } else { + exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`]; + } + } + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? ` +//@ts-ignore +` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + context.onError( + createCompilerError(34, loc) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + true)) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + const maybeRef = context.inline && (bindingType === "setup-let" || bindingType === "setup-ref" || bindingType === "setup-maybe-ref"); + if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) { + context.onError( + createCompilerError(43, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + if (maybeRef) { + if (bindingType === "setup-ref") { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event)` + ]); + } else { + const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`; + assignmentExp = createCompoundExpression([ + `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event : ${altAssignment})` + ]); + } + } else { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) { + props[1].value = context.cache(props[1].value); + } + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + false) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[], + ...prefixIdentifiers ? [ + // order is important + trackVForSlotScopes, + transformExpression + ] : [], + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; + if (!prefixIdentifiers && options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }); + const ast = isString$1(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers); + if (options.isTS) { + const { expressionPlugins } = options; + if (!expressionPlugins || !expressionPlugins.includes("typescript")) { + options.expressionPlugins = [...expressionPlugins || [], "typescript"]; + } + } + transform( + ast, + extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` ); +const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `vModelCheckbox` +); +const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` ); +const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `vModelSelect` +); +const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `vModelDynamic` +); +const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `vOnModifiersGuard` +); +const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `vOnKeysGuard` +); +const V_SHOW = /* @__PURE__ */ Symbol(`vShow` ); +const TRANSITION = /* @__PURE__ */ Symbol(`Transition` ); +const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `TransitionGroup` +); +registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +const parserOptions = { + parseMode: "html", + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: void 0, + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); +} +const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 54, + "54": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 55, + "55": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 56, + "56": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 57, + "57": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 58, + "58": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 59, + "59": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60, + "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 61, + "61": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 62, + "62": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 63, + "63": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 64, + "64": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 65, + "65": "__EXTEND_POINT__" +}; +const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findDir(node, "bind"); + if (value && isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } +}; +function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); +} + +const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g; +const stringifyStatic = (children, context, parent) => { + if (context.scopes.vSlot > 0) { + return; + } + const isParentCached = parent.type === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray$3(parent.codegenNode.children) && parent.codegenNode.children.type === 20; + let nc = 0; + let ec = 0; + const currentChunk = []; + const stringifyCurrentChunk = (currentIndex) => { + if (nc >= 20 || ec >= 5) { + const staticCall = createCallExpression(context.helper(CREATE_STATIC), [ + JSON.stringify( + currentChunk.map((node) => stringifyNode(node, context)).join("") + ).replace(expReplaceRE, `" + $1 + "`), + // the 2nd argument indicates the number of DOM nodes this static vnode + // will insert / hydrate + String(currentChunk.length) + ]); + const deleteCount = currentChunk.length - 1; + if (isParentCached) { + children.splice( + currentIndex - currentChunk.length, + currentChunk.length, + // @ts-expect-error + staticCall + ); + } else { + currentChunk[0].codegenNode.value = staticCall; + if (currentChunk.length > 1) { + children.splice(currentIndex - currentChunk.length + 1, deleteCount); + const cacheIndex = context.cached.indexOf( + currentChunk[currentChunk.length - 1].codegenNode + ); + if (cacheIndex > -1) { + for (let i2 = cacheIndex; i2 < context.cached.length; i2++) { + const c = context.cached[i2]; + if (c) c.index -= deleteCount; + } + context.cached.splice(cacheIndex - deleteCount + 1, deleteCount); + } + } + } + return deleteCount; + } + return 0; + }; + let i = 0; + for (; i < children.length; i++) { + const child = children[i]; + const isCached = isParentCached || getCachedNode(child); + if (isCached) { + const result = analyzeNode(child); + if (result) { + nc += result[0]; + ec += result[1]; + currentChunk.push(child); + continue; + } + } + i -= stringifyCurrentChunk(i); + nc = 0; + ec = 0; + currentChunk.length = 0; + } + stringifyCurrentChunk(i); +}; +const getCachedNode = (node) => { + if ((node.type === 1 && node.tagType === 0 || node.type === 12) && node.codegenNode && node.codegenNode.type === 20) { + return node.codegenNode; + } +}; +const dataAriaRE = /^(?:data|aria)-/; +const isStringifiableAttr = (name, ns) => { + return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name); +}; +const isNonStringifiable = /* @__PURE__ */ makeMap( + `caption,thead,tr,th,tbody,td,tfoot,colgroup,col` +); +function analyzeNode(node) { + if (node.type === 1 && isNonStringifiable(node.tag)) { + return false; + } + if (node.type === 1 && findDir(node, "once", true)) { + return false; + } + if (node.type === 12) { + return [1, 0]; + } + let nc = 1; + let ec = node.props.length > 0 ? 1 : 0; + let bailed = false; + const bail = () => { + bailed = true; + return false; + }; + function walk(node2) { + const isOptionTag = node2.tag === "option" && node2.ns === 0; + for (let i = 0; i < node2.props.length; i++) { + const p = node2.props[i]; + if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) { + return bail(); + } + if (p.type === 7 && p.name === "bind") { + if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) { + return bail(); + } + if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) { + return bail(); + } + if (isOptionTag && isStaticArgOf(p.arg, "value") && p.exp && !p.exp.isStatic) { + return bail(); + } + } + } + for (let i = 0; i < node2.children.length; i++) { + nc++; + const child = node2.children[i]; + if (child.type === 1) { + if (child.props.length > 0) { + ec++; + } + walk(child); + if (bailed) { + return false; + } + } + } + return true; + } + return walk(node) ? [nc, ec] : false; +} +function stringifyNode(node, context) { + if (isString$1(node)) { + return node; + } + if (isSymbol$1(node)) { + return ``; + } + switch (node.type) { + case 1: + return stringifyElement(node, context); + case 2: + return escapeHtml(node.content); + case 3: + return `<!--${escapeHtml(node.content)}-->`; + case 5: + return escapeHtml(toDisplayString(evaluateConstant(node.content))); + case 8: + return escapeHtml(evaluateConstant(node)); + case 12: + return stringifyNode(node.content, context); + default: + return ""; + } +} +function stringifyElement(node, context) { + let res = `<${node.tag}`; + let innerHTML = ""; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + res += ` ${p.name}`; + if (p.value) { + res += `="${escapeHtml(p.value.content)}"`; + } + } else if (p.type === 7) { + if (p.name === "bind") { + const exp = p.exp; + if (exp.content[0] === "_") { + res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`; + continue; + } + if (isBooleanAttr(p.arg.content) && exp.content === "false") { + continue; + } + let evaluated = evaluateConstant(exp); + if (evaluated != null) { + const arg = p.arg && p.arg.content; + if (arg === "class") { + evaluated = normalizeClass(evaluated); + } else if (arg === "style") { + evaluated = stringifyStyle(normalizeStyle(evaluated)); + } + res += ` ${p.arg.content}="${escapeHtml( + evaluated + )}"`; + } + } else if (p.name === "html") { + innerHTML = evaluateConstant(p.exp); + } else if (p.name === "text") { + innerHTML = escapeHtml( + toDisplayString(evaluateConstant(p.exp)) + ); + } + } + } + if (context.scopeId) { + res += ` ${context.scopeId}`; + } + res += `>`; + if (innerHTML) { + res += innerHTML; + } else { + for (let i = 0; i < node.children.length; i++) { + res += stringifyNode(node.children[i], context); + } + } + if (!isVoidTag(node.tag)) { + res += `</${node.tag}>`; + } + return res; +} +function evaluateConstant(exp) { + if (exp.type === 4) { + return new Function(`return (${exp.content})`)(); + } else { + let res = ``; + exp.children.forEach((c) => { + if (isString$1(c) || isSymbol$1(c)) { + return; + } + if (c.type === 2) { + res += c.content; + } else if (c.type === 5) { + res += toDisplayString(evaluateConstant(c.content)); + } else { + res += evaluateConstant(c); + } + }); + return res; + } +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } +}; + +function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; +} +const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); +const emptySet = /* @__PURE__ */ new Set([]); +const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet +}; +const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) +}; +const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) +}; +const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings +}; + +const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] +]; +const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile$1(src, options = {}) { + return baseCompile( + src, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: stringifyStatic + }) + ); +} +function parse$3(template, options = {}) { + return baseParse(template, extend({}, parserOptions, options)); +} + +var CompilerDOM = /*#__PURE__*/Object.freeze({ + __proto__: null, + BASE_TRANSITION: BASE_TRANSITION, + BindingTypes: BindingTypes, + CAMELIZE: CAMELIZE, + CAPITALIZE: CAPITALIZE, + CREATE_BLOCK: CREATE_BLOCK, + CREATE_COMMENT: CREATE_COMMENT, + CREATE_ELEMENT_BLOCK: CREATE_ELEMENT_BLOCK, + CREATE_ELEMENT_VNODE: CREATE_ELEMENT_VNODE, + CREATE_SLOTS: CREATE_SLOTS, + CREATE_STATIC: CREATE_STATIC, + CREATE_TEXT: CREATE_TEXT, + CREATE_VNODE: CREATE_VNODE, + CompilerDeprecationTypes: CompilerDeprecationTypes, + ConstantTypes: ConstantTypes, + DOMDirectiveTransforms: DOMDirectiveTransforms, + DOMErrorCodes: DOMErrorCodes, + DOMErrorMessages: DOMErrorMessages, + DOMNodeTransforms: DOMNodeTransforms, + ElementTypes: ElementTypes, + ErrorCodes: ErrorCodes, + FRAGMENT: FRAGMENT, + GUARD_REACTIVE_PROPS: GUARD_REACTIVE_PROPS, + IS_MEMO_SAME: IS_MEMO_SAME, + IS_REF: IS_REF, + KEEP_ALIVE: KEEP_ALIVE, + MERGE_PROPS: MERGE_PROPS, + NORMALIZE_CLASS: NORMALIZE_CLASS, + NORMALIZE_PROPS: NORMALIZE_PROPS, + NORMALIZE_STYLE: NORMALIZE_STYLE, + Namespaces: Namespaces, + NodeTypes: NodeTypes, + OPEN_BLOCK: OPEN_BLOCK, + POP_SCOPE_ID: POP_SCOPE_ID, + PUSH_SCOPE_ID: PUSH_SCOPE_ID, + RENDER_LIST: RENDER_LIST, + RENDER_SLOT: RENDER_SLOT, + RESOLVE_COMPONENT: RESOLVE_COMPONENT, + RESOLVE_DIRECTIVE: RESOLVE_DIRECTIVE, + RESOLVE_DYNAMIC_COMPONENT: RESOLVE_DYNAMIC_COMPONENT, + RESOLVE_FILTER: RESOLVE_FILTER, + SET_BLOCK_TRACKING: SET_BLOCK_TRACKING, + SUSPENSE: SUSPENSE, + TELEPORT: TELEPORT, + TO_DISPLAY_STRING: TO_DISPLAY_STRING, + TO_HANDLERS: TO_HANDLERS, + TO_HANDLER_KEY: TO_HANDLER_KEY, + TRANSITION: TRANSITION, + TRANSITION_GROUP: TRANSITION_GROUP, + TS_NODE_TYPES: TS_NODE_TYPES, + UNREF: UNREF, + V_MODEL_CHECKBOX: V_MODEL_CHECKBOX, + V_MODEL_DYNAMIC: V_MODEL_DYNAMIC, + V_MODEL_RADIO: V_MODEL_RADIO, + V_MODEL_SELECT: V_MODEL_SELECT, + V_MODEL_TEXT: V_MODEL_TEXT, + V_ON_WITH_KEYS: V_ON_WITH_KEYS, + V_ON_WITH_MODIFIERS: V_ON_WITH_MODIFIERS, + V_SHOW: V_SHOW, + WITH_CTX: WITH_CTX, + WITH_DIRECTIVES: WITH_DIRECTIVES, + WITH_MEMO: WITH_MEMO, + advancePositionWithClone: advancePositionWithClone, + advancePositionWithMutation: advancePositionWithMutation, + assert: assert, + baseCompile: baseCompile, + baseParse: baseParse, + buildDirectiveArgs: buildDirectiveArgs, + buildProps: buildProps, + buildSlots: buildSlots, + checkCompatEnabled: checkCompatEnabled, + compile: compile$1, + convertToBlock: convertToBlock, + createArrayExpression: createArrayExpression, + createAssignmentExpression: createAssignmentExpression, + createBlockStatement: createBlockStatement, + createCacheExpression: createCacheExpression, + createCallExpression: createCallExpression, + createCompilerError: createCompilerError, + createCompoundExpression: createCompoundExpression, + createConditionalExpression: createConditionalExpression, + createDOMCompilerError: createDOMCompilerError, + createForLoopParams: createForLoopParams, + createFunctionExpression: createFunctionExpression, + createIfStatement: createIfStatement, + createInterpolation: createInterpolation, + createObjectExpression: createObjectExpression, + createObjectProperty: createObjectProperty, + createReturnStatement: createReturnStatement, + createRoot: createRoot, + createSequenceExpression: createSequenceExpression, + createSimpleExpression: createSimpleExpression, + createStructuralDirectiveTransform: createStructuralDirectiveTransform, + createTemplateLiteral: createTemplateLiteral, + createTransformContext: createTransformContext, + createVNodeCall: createVNodeCall, + errorMessages: errorMessages$1, + extractIdentifiers: extractIdentifiers$1, + findDir: findDir, + findProp: findProp, + forAliasRE: forAliasRE, + generate: generate, + generateCodeFrame: generateCodeFrame, + getBaseTransformPreset: getBaseTransformPreset, + getConstantType: getConstantType, + getMemoedVNodeCall: getMemoedVNodeCall, + getVNodeBlockHelper: getVNodeBlockHelper, + getVNodeHelper: getVNodeHelper, + hasDynamicKeyVBind: hasDynamicKeyVBind, + hasScopeRef: hasScopeRef, + helperNameMap: helperNameMap, + injectProp: injectProp, + isAllWhitespace: isAllWhitespace, + isCommentOrWhitespace: isCommentOrWhitespace, + isCoreComponent: isCoreComponent, + isFnExpression: isFnExpression, + isFnExpressionBrowser: isFnExpressionBrowser, + isFnExpressionNode: isFnExpressionNode, + isFunctionType: isFunctionType, + isInDestructureAssignment: isInDestructureAssignment, + isInNewExpression: isInNewExpression, + isMemberExpression: isMemberExpression, + isMemberExpressionBrowser: isMemberExpressionBrowser, + isMemberExpressionNode: isMemberExpressionNode, + isReferencedIdentifier: isReferencedIdentifier, + isSimpleIdentifier: isSimpleIdentifier, + isSlotOutlet: isSlotOutlet, + isStaticArgOf: isStaticArgOf, + isStaticExp: isStaticExp, + isStaticProperty: isStaticProperty, + isStaticPropertyKey: isStaticPropertyKey, + isTemplateNode: isTemplateNode, + isText: isText$1, + isVPre: isVPre, + isVSlot: isVSlot, + isWhitespaceText: isWhitespaceText, + locStub: locStub, + noopDirectiveTransform: noopDirectiveTransform, + parse: parse$3, + parserOptions: parserOptions, + processExpression: processExpression, + processFor: processFor, + processIf: processIf, + processSlotOutlet: processSlotOutlet, + registerRuntimeHelpers: registerRuntimeHelpers, + resolveComponentType: resolveComponentType, + stringifyExpression: stringifyExpression, + toValidAssetId: toValidAssetId, + trackSlotScopes: trackSlotScopes, + trackVForSlotScopes: trackVForSlotScopes, + transform: transform, + transformBind: transformBind, + transformElement: transformElement, + transformExpression: transformExpression, + transformModel: transformModel$1, + transformOn: transformOn$1, + transformStyle: transformStyle, + transformVBindShorthand: transformVBindShorthand, + traverseNode: traverseNode, + unwrapTSNode: unwrapTSNode, + validFirstIdentCharRE: validFirstIdentCharRE, + walkBlockDeclarations: walkBlockDeclarations, + walkFunctionParams: walkFunctionParams, + walkIdentifiers: walkIdentifiers, + warnDeprecation: warnDeprecation +}); + +var hashSum; +var hasRequiredHashSum; + +function requireHashSum () { + if (hasRequiredHashSum) return hashSum; + hasRequiredHashSum = 1; + + function pad (hash, len) { + while (hash.length < len) { + hash = '0' + hash; + } + return hash; + } + + function fold (hash, text) { + var i; + var chr; + var len; + if (text.length === 0) { + return hash; + } + for (i = 0, len = text.length; i < len; i++) { + chr = text.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; + } + return hash < 0 ? hash * -2 : hash; + } + + function foldObject (hash, o, seen) { + return Object.keys(o).sort().reduce(foldKey, hash); + function foldKey (hash, key) { + return foldValue(hash, o[key], key, seen); + } + } + + function foldValue (input, value, key, seen) { + var hash = fold(fold(fold(input, key), toString(value)), typeof value); + if (value === null) { + return fold(hash, 'null'); + } + if (value === undefined) { + return fold(hash, 'undefined'); + } + if (typeof value === 'object' || typeof value === 'function') { + if (seen.indexOf(value) !== -1) { + return fold(hash, '[Circular]' + key); + } + seen.push(value); + + var objHash = foldObject(hash, value, seen); + + if (!('valueOf' in value) || typeof value.valueOf !== 'function') { + return objHash; + } + + try { + return fold(objHash, String(value.valueOf())) + } catch (err) { + return fold(objHash, '[valueOf exception]' + (err.stack || err.message)) + } + } + return fold(hash, value.toString()); + } + + function toString (o) { + return Object.prototype.toString.call(o); + } + + function sum (o) { + return pad(foldValue(0, o, '', []).toString(16), 8); + } + + hashSum = sum; + return hashSum; +} + +var hashSumExports = /*@__PURE__*/ requireHashSum(); +var hash = /*@__PURE__*/getDefaultExportFromCjs(hashSumExports); + +const CSS_VARS_HELPER = `useCssVars`; +function genCssVarsFromList(vars, id, isProd, isSSR = false) { + return `{ + ${vars.map( + (key) => ( + // The `:` prefix here is used in `ssrRenderStyle` to distinguish whether + // a custom property comes from `ssrCssVars`. If it does, we need to reset + // its value to `initial` on the component instance to avoid unintentionally + // inheriting the same property value from a different instance of the same + // component in the outer scope. + `"${isSSR ? `:--` : ``}${genVarName(id, key, isProd, isSSR)}": (${key})` + ) + ).join(",\n ")} +}`; +} +function genVarName(id, raw, isProd, isSSR = false) { + if (isProd) { + return hash(id + raw).replace(/^\d/, (r) => `v${r}`); + } else { + return `${id}-${getEscapedCssVarName(raw, isSSR)}`; + } +} +function normalizeExpression(exp) { + exp = exp.trim(); + if (exp[0] === `'` && exp[exp.length - 1] === `'` || exp[0] === `"` && exp[exp.length - 1] === `"`) { + return exp.slice(1, -1); + } + return exp; +} +const vBindRE = /v-bind\s*\(/g; +function parseCssVars(sfc) { + const vars = []; + sfc.styles.forEach((style) => { + let match; + const content = style.content.replace(/\/\*([\s\S]*?)\*\/|\/\/.*/g, ""); + while (match = vBindRE.exec(content)) { + const start = match.index + match[0].length; + const end = lexBinding(content, start); + if (end !== null) { + const variable = normalizeExpression(content.slice(start, end)); + if (!vars.includes(variable)) { + vars.push(variable); + } + } + } + }); + return vars; +} +function lexBinding(content, start) { + let state = 0 /* inParens */; + let parenDepth = 0; + for (let i = start; i < content.length; i++) { + const char = content.charAt(i); + switch (state) { + case 0 /* inParens */: + if (char === `'`) { + state = 1 /* inSingleQuoteString */; + } else if (char === `"`) { + state = 2 /* inDoubleQuoteString */; + } else if (char === `(`) { + parenDepth++; + } else if (char === `)`) { + if (parenDepth > 0) { + parenDepth--; + } else { + return i; + } + } + break; + case 1 /* inSingleQuoteString */: + if (char === `'`) { + state = 0 /* inParens */; + } + break; + case 2 /* inDoubleQuoteString */: + if (char === `"`) { + state = 0 /* inParens */; + } + break; + } + } + return null; +} +const cssVarsPlugin = (opts) => { + const { id, isProd } = opts; + return { + postcssPlugin: "vue-sfc-vars", + Declaration(decl) { + const value = decl.value; + if (vBindRE.test(value)) { + vBindRE.lastIndex = 0; + let transformed = ""; + let lastIndex = 0; + let match; + while (match = vBindRE.exec(value)) { + const start = match.index + match[0].length; + const end = lexBinding(value, start); + if (end !== null) { + const variable = normalizeExpression(value.slice(start, end)); + transformed += value.slice(lastIndex, match.index) + `var(--${genVarName(id, variable, isProd)})`; + lastIndex = end + 1; + } + } + decl.value = transformed + value.slice(lastIndex); + } + } + }; +}; +cssVarsPlugin.postcss = true; +function genCssVarsCode(vars, bindings, id, isProd) { + const varsExp = genCssVarsFromList(vars, id, isProd); + const exp = createSimpleExpression(varsExp, false); + const context = createTransformContext(createRoot([]), { + prefixIdentifiers: true, + inline: true, + bindingMetadata: bindings.__isScriptSetup === false ? void 0 : bindings + }); + const transformed = processExpression(exp, context); + const transformedString = transformed.type === 4 ? transformed.content : transformed.children.map((c) => { + return typeof c === "string" ? c : c.content; + }).join(""); + return `_${CSS_VARS_HELPER}(_ctx => (${transformedString}))`; +} +function genNormalScriptCssVarsCode(cssVars, bindings, id, isProd, defaultVar) { + return ` +import { ${CSS_VARS_HELPER} as _${CSS_VARS_HELPER} } from 'vue' +const __injectCSSVars__ = () => { +${genCssVarsCode( + cssVars, + bindings, + id, + isProd + )}} +const __setup__ = ${defaultVar}.setup +${defaultVar}.setup = __setup__ + ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) } + : __injectCSSVars__ +`; +} + +// shim for using process in browser +// based off https://github.com/defunctzombie/node-process/blob/master/browser.js + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +var cachedSetTimeout = defaultSetTimout; +var cachedClearTimeout = defaultClearTimeout; +if (typeof global$1.setTimeout === 'function') { + cachedSetTimeout = setTimeout; +} +if (typeof global$1.clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; +} + +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} +function nextTick(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +} +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +var title = 'browser'; +var platform = 'browser'; +var browser = true; +var env = {}; +var argv = []; +var version$1 = ''; // empty string to avoid regexp issues +var versions = {}; +var release = {}; +var config = {}; + +function noop() {} + +var on = noop; +var addListener = noop; +var once = noop; +var off = noop; +var removeListener = noop; +var removeAllListeners = noop; +var emit = noop; + +function binding(name) { + throw new Error('process.binding is not supported'); +} + +function cwd () { return '/' } +function chdir (dir) { + throw new Error('process.chdir is not supported'); +}function umask() { return 0; } + +// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js +var performance = global$1.performance || {}; +var performanceNow = + performance.now || + performance.mozNow || + performance.msNow || + performance.oNow || + performance.webkitNow || + function(){ return (new Date()).getTime() }; + +// generate timestamp or delta +// see http://nodejs.org/api/process.html#process_process_hrtime +function hrtime(previousTimestamp){ + var clocktime = performanceNow.call(performance)*1e-3; + var seconds = Math.floor(clocktime); + var nanoseconds = Math.floor((clocktime%1)*1e9); + if (previousTimestamp) { + seconds = seconds - previousTimestamp[0]; + nanoseconds = nanoseconds - previousTimestamp[1]; + if (nanoseconds<0) { + seconds--; + nanoseconds += 1e9; + } + } + return [seconds,nanoseconds] +} + +var startTime = new Date(); +function uptime() { + var currentTime = new Date(); + var dif = currentTime - startTime; + return dif / 1000; +} + +var browser$1 = { + nextTick: nextTick, + title: title, + browser: browser, + env: env, + argv: argv, + version: version$1, + versions: versions, + on: on, + addListener: addListener, + once: once, + off: off, + removeListener: removeListener, + removeAllListeners: removeAllListeners, + emit: emit, + binding: binding, + cwd: cwd, + chdir: chdir, + umask: umask, + hrtime: hrtime, + platform: platform, + release: release, + config: config, + uptime: uptime +}; + +function createCache(max = 500) { + { + return /* @__PURE__ */ new Map(); + } +} + +function isImportUsed(local, sfc) { + return resolveTemplateUsedIdentifiers(sfc).has(local); +} +const templateAnalysisCache = createCache(); +function resolveTemplateVModelIdentifiers(sfc) { + return resolveTemplateAnalysisResult(sfc, false).vModelIds; +} +function resolveTemplateUsedIdentifiers(sfc) { + return resolveTemplateAnalysisResult(sfc).usedIds; +} +function resolveTemplateAnalysisResult(sfc, collectUsedIds = true) { + const { content, ast } = sfc.template; + const cached = templateAnalysisCache.get(content); + if (cached && (!collectUsedIds || cached.usedIds)) { + return cached; + } + const ids = collectUsedIds ? /* @__PURE__ */ new Set() : void 0; + const vModelIds = /* @__PURE__ */ new Set(); + ast.children.forEach(walk); + function walk(node) { + var _a; + switch (node.type) { + case 1: + let tag = node.tag; + if (tag.includes(".")) tag = tag.split(".")[0].trim(); + if (!parserOptions.isNativeTag(tag) && !parserOptions.isBuiltInComponent(tag)) { + if (ids) { + ids.add(camelize(tag)); + ids.add(capitalize(camelize(tag))); + } + } + for (let i = 0; i < node.props.length; i++) { + const prop = node.props[i]; + if (prop.type === 7) { + if (ids) { + if (!isBuiltInDirective(prop.name)) { + ids.add(`v${capitalize(camelize(prop.name))}`); + } + } + if (prop.name === "model") { + const exp = prop.exp; + if (exp && exp.type === 4) { + const expString = exp.content.trim(); + if (isSimpleIdentifier(expString) && expString !== "undefined") { + vModelIds.add(expString); + } + } + } + if (ids && prop.arg && !prop.arg.isStatic) { + extractIdentifiers(ids, prop.arg); + } + if (ids) { + if (prop.name === "for") { + extractIdentifiers(ids, prop.forParseResult.source); + } else if (prop.exp) { + extractIdentifiers(ids, prop.exp); + } else if (prop.name === "bind" && !prop.exp) { + ids.add(camelize(prop.arg.content)); + } + } + } + if (ids && prop.type === 6 && prop.name === "ref" && ((_a = prop.value) == null ? void 0 : _a.content)) { + ids.add(prop.value.content); + } + } + node.children.forEach(walk); + break; + case 5: + if (ids) extractIdentifiers(ids, node.content); + break; + } + } + const result = { usedIds: ids, vModelIds }; + templateAnalysisCache.set(content, result); + return result; +} +function extractIdentifiers(ids, node) { + if (node.ast) { + walkIdentifiers(node.ast, (n) => ids.add(n.name)); + } else if (node.ast === null) { + ids.add(node.content); + } +} + +var __defProp$a = Object.defineProperty; +var __defProps$9 = Object.defineProperties; +var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$a = Object.getOwnPropertySymbols; +var __hasOwnProp$a = Object.prototype.hasOwnProperty; +var __propIsEnum$a = Object.prototype.propertyIsEnumerable; +var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$a = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$a.call(b, prop)) + __defNormalProp$a(a, prop, b[prop]); + if (__getOwnPropSymbols$a) + for (var prop of __getOwnPropSymbols$a(b)) { + if (__propIsEnum$a.call(b, prop)) + __defNormalProp$a(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b)); +const DEFAULT_FILENAME = "anonymous.vue"; +const parseCache$1 = createCache(); +function parse$2(source, options = {}) { + var _a; + const sourceKey = genCacheKey(source, __spreadProps$9(__spreadValues$a({}, options), { + compiler: { parse: (_a = options.compiler) == null ? void 0 : _a.parse } + })); + const cache = parseCache$1.get(sourceKey); + if (cache) { + return cache; + } + const { + sourceMap = true, + filename = DEFAULT_FILENAME, + sourceRoot = "", + pad = false, + ignoreEmpty = true, + compiler = CompilerDOM, + templateParseOptions = {} + } = options; + const descriptor = { + filename, + source, + template: null, + script: null, + scriptSetup: null, + styles: [], + customBlocks: [], + cssVars: [], + slotted: false, + shouldForceReload: (prevImports) => hmrShouldReload(prevImports, descriptor) + }; + const errors = []; + const ast = compiler.parse(source, __spreadProps$9(__spreadValues$a({ + parseMode: "sfc", + prefixIdentifiers: true + }, templateParseOptions), { + onError: (e) => { + errors.push(e); + } + })); + ast.children.forEach((node) => { + if (node.type !== 1) { + return; + } + if (ignoreEmpty && node.tag !== "template" && isEmpty(node) && !hasSrc(node)) { + return; + } + switch (node.tag) { + case "template": + if (!descriptor.template) { + const templateBlock = descriptor.template = createBlock( + node, + source, + false + ); + if (!templateBlock.attrs.src) { + templateBlock.ast = createRoot(node.children, source); + } + if (templateBlock.attrs.functional) { + const err = new SyntaxError( + `<template functional> is no longer supported in Vue 3, since functional components no longer have significant performance difference from stateful ones. Just use a normal <template> instead.` + ); + err.loc = node.props.find( + (p) => p.type === 6 && p.name === "functional" + ).loc; + errors.push(err); + } + } else { + errors.push(createDuplicateBlockError(node)); + } + break; + case "script": + const scriptBlock = createBlock(node, source, pad); + const isSetup = !!scriptBlock.attrs.setup; + if (isSetup && !descriptor.scriptSetup) { + descriptor.scriptSetup = scriptBlock; + break; + } + if (!isSetup && !descriptor.script) { + descriptor.script = scriptBlock; + break; + } + errors.push(createDuplicateBlockError(node, isSetup)); + break; + case "style": + const styleBlock = createBlock(node, source, pad); + if (styleBlock.attrs.vars) { + errors.push( + new SyntaxError( + `<style vars> has been replaced by a new proposal: https://github.com/vuejs/rfcs/pull/231` + ) + ); + } + descriptor.styles.push(styleBlock); + break; + default: + descriptor.customBlocks.push(createBlock(node, source, pad)); + break; + } + }); + if (!descriptor.template && !descriptor.script && !descriptor.scriptSetup) { + errors.push( + new SyntaxError( + `At least one <template> or <script> is required in a single file component. ${descriptor.filename}` + ) + ); + } + if (descriptor.scriptSetup) { + if (descriptor.scriptSetup.src) { + errors.push( + new SyntaxError( + `<script setup> cannot use the "src" attribute because its syntax will be ambiguous outside of the component.` + ) + ); + descriptor.scriptSetup = null; + } + if (descriptor.script && descriptor.script.src) { + errors.push( + new SyntaxError( + `<script> cannot use the "src" attribute when <script setup> is also present because they must be processed together.` + ) + ); + descriptor.script = null; + } + } + let templateColumnOffset = 0; + if (descriptor.template && (descriptor.template.lang === "pug" || descriptor.template.lang === "jade")) { + [descriptor.template.content, templateColumnOffset] = dedent( + descriptor.template.content + ); + } + if (sourceMap) { + const genMap = (block, columnOffset = 0) => { + if (block && !block.src) { + block.map = generateSourceMap( + filename, + source, + block.content, + sourceRoot, + !pad || block.type === "template" ? block.loc.start.line - 1 : 0, + columnOffset + ); + } + }; + genMap(descriptor.template, templateColumnOffset); + genMap(descriptor.script); + descriptor.styles.forEach((s) => genMap(s)); + descriptor.customBlocks.forEach((s) => genMap(s)); + } + descriptor.cssVars = parseCssVars(descriptor); + const slottedRE = /(?:::v-|:)slotted\(/; + descriptor.slotted = descriptor.styles.some( + (s) => s.scoped && slottedRE.test(s.content) + ); + const result = { + descriptor, + errors + }; + parseCache$1.set(sourceKey, result); + return result; +} +function createDuplicateBlockError(node, isScriptSetup = false) { + const err = new SyntaxError( + `Single file component can contain only one <${node.tag}${isScriptSetup ? ` setup` : ``}> element` + ); + err.loc = node.loc; + return err; +} +function createBlock(node, source, pad) { + const type = node.tag; + const loc = node.innerLoc; + const attrs = {}; + const block = { + type, + content: source.slice(loc.start.offset, loc.end.offset), + loc, + attrs + }; + if (pad) { + block.content = padContent(source, block, pad) + block.content; + } + node.props.forEach((p) => { + if (p.type === 6) { + const name = p.name; + attrs[name] = p.value ? p.value.content || true : true; + if (name === "lang") { + block.lang = p.value && p.value.content; + } else if (name === "src") { + block.src = p.value && p.value.content; + } else if (type === "style") { + if (name === "scoped") { + block.scoped = true; + } else if (name === "module") { + block.module = attrs[name]; + } + } else if (type === "script" && name === "setup") { + block.setup = attrs.setup; + } + } + }); + return block; +} +const splitRE = /\r?\n/g; +const emptyRE = /^(?:\/\/)?\s*$/; +const replaceRE = /./g; +function generateSourceMap(filename, source, generated, sourceRoot, lineOffset, columnOffset) { + const map = new sourceMapExports.SourceMapGenerator({ + file: filename.replace(/\\/g, "/"), + sourceRoot: sourceRoot.replace(/\\/g, "/") + }); + map.setSourceContent(filename, source); + map._sources.add(filename); + generated.split(splitRE).forEach((line, index) => { + if (!emptyRE.test(line)) { + const originalLine = index + 1 + lineOffset; + const generatedLine = index + 1; + for (let i = 0; i < line.length; i++) { + if (!/\s/.test(line[i])) { + map._mappings.add({ + originalLine, + originalColumn: i + columnOffset, + generatedLine, + generatedColumn: i, + source: filename, + name: null + }); + } + } + } + }); + return map.toJSON(); +} +function padContent(content, block, pad) { + content = content.slice(0, block.loc.start.offset); + if (pad === "space") { + return content.replace(replaceRE, " "); + } else { + const offset = content.split(splitRE).length; + const padChar = block.type === "script" && !block.lang ? "//\n" : "\n"; + return Array(offset).join(padChar); + } +} +function hasSrc(node) { + return node.props.some((p) => { + if (p.type !== 6) { + return false; + } + return p.name === "src"; + }); +} +function isEmpty(node) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (child.type !== 2 || child.content.trim() !== "") { + return false; + } + } + return true; +} +function hmrShouldReload(prevImports, next) { + if (!next.scriptSetup || next.scriptSetup.lang !== "ts" && next.scriptSetup.lang !== "tsx") { + return false; + } + for (const key in prevImports) { + if (!prevImports[key].isUsedInTemplate && isImportUsed(key, next)) { + return true; + } + } + return false; +} +function dedent(s) { + const lines = s.split("\n"); + const minIndent = lines.reduce(function(minIndent2, line) { + var _a, _b; + if (line.trim() === "") { + return minIndent2; + } + const indent = ((_b = (_a = line.match(/^\s*/)) == null ? void 0 : _a[0]) == null ? void 0 : _b.length) || 0; + return Math.min(indent, minIndent2); + }, Infinity); + if (minIndent === 0) { + return [s, minIndent]; + } + return [ + lines.map(function(line) { + return line.slice(minIndent); + }).join("\n"), + minIndent + ]; +} + +// 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. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + + return parts; +} + +// Split a filename into [root, dir, basename, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; +var splitPath = function(filename) { + return splitPathRe.exec(filename).slice(1); +}; + +// path.resolve([from ...], to) +// posix version +function resolve() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : '/'; + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +} +// path.normalize(path) +// posix version +function normalize$1(path) { + var isPathAbsolute = isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isPathAbsolute).join('/'); + + if (!path && !isPathAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + + return (isPathAbsolute ? '/' : '') + path; +} +// posix version +function isAbsolute(path) { + return path.charAt(0) === '/'; +} + +// posix version +function join() { + var paths = Array.prototype.slice.call(arguments, 0); + return normalize$1(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); +} + + +// path.relative(from, to) +// posix version +function relative(from, to) { + from = resolve(from).substr(1); + to = resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + + return outputParts.join('/'); +} + +var sep = '/'; +var delimiter$1 = ':'; + +function dirname(path) { + var result = splitPath(path), + root = result[0], + dir = result[1]; + + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + + return root + dir; +} + +function basename(path, ext) { + var f = splitPath(path)[2]; + // TODO: make this comparison case-insensitive on windows? + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +} + + +function extname(path) { + return splitPath(path)[3]; +} +var path = { + extname: extname, + basename: basename, + dirname: dirname, + sep: sep, + delimiter: delimiter$1, + relative: relative, + join: join, + isAbsolute: isAbsolute, + normalize: normalize$1, + resolve: resolve +}; +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; +} + +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' ? + function (str, start, len) { return str.substr(start, len) } : + function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; + +var _polyfillNode_path = /*#__PURE__*/Object.freeze({ + __proto__: null, + basename: basename, + default: path, + delimiter: delimiter$1, + dirname: dirname, + extname: extname, + isAbsolute: isAbsolute, + join: join, + normalize: normalize$1, + relative: relative, + resolve: resolve, + sep: sep +}); + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + + +/** Highest positive signed 32-bit float value */ +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + +/** Bootstring parameters */ +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\x20-\x7E]/; // unprintable ASCII chars + non-ASCII chars +var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + +/** Error messages */ +var errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' +}; + +/** Convenience shortcuts */ +var baseMinusTMin = base - tMin; +var floor = Math.floor; +var stringFromCharCode = String.fromCharCode; + +/*--------------------------------------------------------------------------*/ + +/** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ +function error(type) { + throw new RangeError(errors[type]); +} + +/** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ +function map$1(array, fn) { + var length = array.length; + var result = []; + while (length--) { + result[length] = fn(array[length]); + } + return result; +} + +/** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ +function mapDomain(string, fn) { + var parts = string.split('@'); + var result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + var labels = string.split('.'); + var encoded = map$1(labels, fn).join('.'); + return result + encoded; +} + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see <https://mathiasbynens.be/notes/javascript-encoding> + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ +function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +/** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ +function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); +} + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ +function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for ( /* no initialization */ ; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +} + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ +function encode$1(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */ ; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); +} + +/** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ +function toASCII(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) ? + 'xn--' + encode$1(string) : + string; + }); +} + +var inherits; +if (typeof Object.create === 'function'){ + inherits = function inherits(ctor, superCtor) { + // implementation from standard node.js 'util' module + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + inherits = function inherits(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function () {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + }; +} + +var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || + function getOwnPropertyDescriptors(obj) { + var keys = Object.keys(obj); + var descriptors = {}; + for (var i = 0; i < keys.length; i++) { + descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]); + } + return descriptors; + }; + +var formatRegExp = /%[sdj%]/g; +function format$1(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject$1(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +} + +// Mark that a method should not be used. +// Returns a modified function which warns once by default. +// If --no-deprecation is set, then it is a no-op. +function deprecate(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global$1.process)) { + return function() { + return deprecate(fn, msg).apply(this, arguments); + }; + } + + if (browser$1.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (browser$1.throwDeprecation) { + throw new Error(msg); + } else if (browser$1.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +} + +var debugs = {}; +var debugEnviron; +function debuglog(set) { + if (isUndefined(debugEnviron)) + debugEnviron = browser$1.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = 0; + debugs[set] = function() { + var msg = format$1.apply(null, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; +} + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + _extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray$1(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty$2(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty$2(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var length = output.reduce(function(prev, cur) { + if (cur.indexOf('\n') >= 0) ; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray$1(ar) { + return Array.isArray(ar); +} + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} + +function isNull(arg) { + return arg === null; +} + +function isNullOrUndefined(arg) { + return arg == null; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isString(arg) { + return typeof arg === 'string'; +} + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} + +function isUndefined(arg) { + return arg === void 0; +} + +function isRegExp(re) { + return isObject$1(re) && objectToString(re) === '[object RegExp]'; +} + +function isObject$1(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isDate(d) { + return isObject$1(d) && objectToString(d) === '[object Date]'; +} + +function isError(e) { + return isObject$1(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} + +function isBuffer(maybeBuf) { + return Buffer$1.isBuffer(maybeBuf); +} + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +// log is just a thin wrapper to console.log that prepends a timestamp +function log() { + console.log('%s - %s', timestamp(), format$1.apply(null, arguments)); +} + +function _extend(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject$1(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +} +function hasOwnProperty$2(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +var kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined; + +function promisify(original) { + if (typeof original !== 'function') + throw new TypeError('The "original" argument must be of type Function'); + + if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) { + var fn = original[kCustomPromisifiedSymbol]; + if (typeof fn !== 'function') { + throw new TypeError('The "util.promisify.custom" argument must be of type Function'); + } + Object.defineProperty(fn, kCustomPromisifiedSymbol, { + value: fn, enumerable: false, writable: false, configurable: true + }); + return fn; + } + + function fn() { + var promiseResolve, promiseReject; + var promise = new Promise(function (resolve, reject) { + promiseResolve = resolve; + promiseReject = reject; + }); + + var args = []; + for (var i = 0; i < arguments.length; i++) { + args.push(arguments[i]); + } + args.push(function (err, value) { + if (err) { + promiseReject(err); + } else { + promiseResolve(value); + } + }); + + try { + original.apply(this, args); + } catch (err) { + promiseReject(err); + } + + return promise; + } + + Object.setPrototypeOf(fn, Object.getPrototypeOf(original)); + + if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, { + value: fn, enumerable: false, writable: false, configurable: true + }); + return Object.defineProperties( + fn, + getOwnPropertyDescriptors(original) + ); +} + +promisify.custom = kCustomPromisifiedSymbol; + +function callbackifyOnRejected(reason, cb) { + // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M). + // Because `null` is a special error value in callbacks which means "no error + // occurred", we error-wrap so the callback consumer can distinguish between + // "the promise rejected with null" or "the promise fulfilled with undefined". + if (!reason) { + var newReason = new Error('Promise was rejected with a falsy value'); + newReason.reason = reason; + reason = newReason; + } + return cb(reason); +} + +function callbackify(original) { + if (typeof original !== 'function') { + throw new TypeError('The "original" argument must be of type Function'); + } + + // We DO NOT return the promise as it gives the user a false sense that + // the promise is actually somehow related to the callback's execution + // and that the callback throwing will reject the promise. + function callbackified() { + var args = []; + for (var i = 0; i < arguments.length; i++) { + args.push(arguments[i]); + } + + var maybeCb = args.pop(); + if (typeof maybeCb !== 'function') { + throw new TypeError('The last argument must be of type Function'); + } + var self = this; + var cb = function() { + return maybeCb.apply(self, arguments); + }; + // In true node style we process the callback on `nextTick` with all the + // implications (stack, `uncaughtException`, `async_hooks`) + original.apply(this, args) + .then(function(ret) { browser$1.nextTick(cb.bind(null, null, ret)); }, + function(rej) { browser$1.nextTick(callbackifyOnRejected.bind(null, rej, cb)); }); + } + + Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original)); + Object.defineProperties(callbackified, getOwnPropertyDescriptors(original)); + return callbackified; +} + +var _polyfillNode_util = { + inherits: inherits, + _extend: _extend, + log: log, + isBuffer: isBuffer, + isPrimitive: isPrimitive, + isFunction: isFunction, + isError: isError, + isDate: isDate, + isObject: isObject$1, + isRegExp: isRegExp, + isUndefined: isUndefined, + isSymbol: isSymbol, + isString: isString, + isNumber: isNumber, + isNullOrUndefined: isNullOrUndefined, + isNull: isNull, + isBoolean: isBoolean, + isArray: isArray$1, + inspect: inspect, + deprecate: deprecate, + format: format$1, + debuglog: debuglog, + promisify: promisify, + callbackify: callbackify, +}; + +var _polyfillNode_util$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + _extend: _extend, + callbackify: callbackify, + debuglog: debuglog, + default: _polyfillNode_util, + deprecate: deprecate, + format: format$1, + inherits: inherits, + inspect: inspect, + isArray: isArray$1, + isBoolean: isBoolean, + isBuffer: isBuffer, + isDate: isDate, + isError: isError, + isFunction: isFunction, + isNull: isNull, + isNullOrUndefined: isNullOrUndefined, + isNumber: isNumber, + isObject: isObject$1, + isPrimitive: isPrimitive, + isRegExp: isRegExp, + isString: isString, + isSymbol: isSymbol, + isUndefined: isUndefined, + log: log, + promisify: promisify +}); + +// 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. + + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty$1(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; +function stringifyPrimitive(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +} + +function stringify (obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return map(objectKeys(obj), function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (isArray(obj[k])) { + return map(obj[k], function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +} +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); + } + return res; +} + +var objectKeys = Object.keys || function (obj) { + var res = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); + } + return res; +}; + +function parse$1(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty$1(obj, k)) { + obj[k] = v; + } else if (isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +} + +// WHATWG API +const URL$1 = global$1.URL; +const URLSearchParams = global$1.URLSearchParams; +var _polyfillNode_url = { + parse: urlParse, + resolve: urlResolve, + resolveObject: urlResolveObject, + fileURLToPath: urlFileURLToPath, + format: urlFormat, + Url: Url, + + // WHATWG API + URL: URL$1, + URLSearchParams, +}; +function Url() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; +} + +// Reference: RFC 3986, RFC 1808, RFC 2396 + +// define these here so at least they only have to be +// compiled once on the first module load. +var protocolPattern = /^([a-z0-9.+-]+:)/i, + portPattern = /:[0-9]*$/, + + // Special case for a simple path URL + simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, + + // RFC 2396: characters reserved for delimiting URLs. + // We actually just auto-escape these. + delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], + + // RFC 2396: characters not allowed for various reasons. + unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), + + // Allowed by RFCs, but cause of XSS attacks. Always escape these. + autoEscape = ['\''].concat(unwise), + // Characters that are never ever allowed in a hostname. + // Note that any invalid chars are also handled, but these + // are the ones that are *expected* to be seen, so we fast-path + // them. + nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), + hostEndingChars = ['/', '?', '#'], + hostnameMaxLen = 255, + hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + // protocols that can allow "unsafe" and "unwise" chars. + unsafeProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that never have a hostname. + hostlessProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that always contain a // bit. + slashedProtocol = { + 'http': true, + 'https': true, + 'ftp': true, + 'gopher': true, + 'file': true, + 'http:': true, + 'https:': true, + 'ftp:': true, + 'gopher:': true, + 'file:': true + }; + +function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && isObject$1(url) && url instanceof Url) return url; + + var u = new Url; + u.parse(url, parseQueryString, slashesDenoteHost); + return u; +} +Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + return parse(this, url, parseQueryString, slashesDenoteHost); +}; + +function parse(self, url, parseQueryString, slashesDenoteHost) { + if (!isString(url)) { + throw new TypeError('Parameter \'url\' must be a string, not ' + typeof url); + } + + // Copy chrome, IE, opera backslash-handling behavior. + // Back slashes before the query string get converted to forward slashes + // See: https://code.google.com/p/chromium/issues/detail?id=25916 + var queryIndex = url.indexOf('?'), + splitter = + (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', + uSplit = url.split(splitter), + slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, '/'); + url = uSplit.join(splitter); + + var rest = url; + + // trim before proceeding. + // This is to support parse stuff like " http://foo.com \n" + rest = rest.trim(); + + if (!slashesDenoteHost && url.split('#').length === 1) { + // Try fast path regexp + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + self.path = rest; + self.href = rest; + self.pathname = simplePath[1]; + if (simplePath[2]) { + self.search = simplePath[2]; + if (parseQueryString) { + self.query = parse$1(self.search.substr(1)); + } else { + self.query = self.search.substr(1); + } + } else if (parseQueryString) { + self.search = ''; + self.query = {}; + } + return self; + } + } + + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + self.protocol = lowerProto; + rest = rest.substr(proto.length); + } + + // figure out if it's got a host + // user@server is *always* interpreted as a hostname, and url + // resolution will treat //foo/bar as host=foo,path=bar because that's + // how the browser resolves relative URLs. + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { + var slashes = rest.substr(0, 2) === '//'; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + self.slashes = true; + } + } + var i, hec, l, p; + if (!hostlessProtocol[proto] && + (slashes || (proto && !slashedProtocol[proto]))) { + + // there's a hostname. + // the first instance of /, ?, ;, or # ends the host. + // + // If there is an @ in the hostname, then non-host chars *are* allowed + // to the left of the last @ sign, unless some host-ending character + // comes *before* the @-sign. + // URLs are obnoxious. + // + // ex: + // http://a@b@c/ => user:a@b host:c + // http://a@b?@c => user:a host:c path:/?@c + + // v0.12 TODO(isaacs): This is not quite how Chrome does things. + // Review our test case against browsers more comprehensively. + + // find the first instance of any hostEndingChars + var hostEnd = -1; + for (i = 0; i < hostEndingChars.length; i++) { + hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + + // at this point, either we have an explicit point where the + // auth portion cannot go past, or the last @ char is the decider. + var auth, atSign; + if (hostEnd === -1) { + // atSign can be anywhere. + atSign = rest.lastIndexOf('@'); + } else { + // atSign must be in auth portion. + // http://a@b/c@d => host:b auth:a path:/c@d + atSign = rest.lastIndexOf('@', hostEnd); + } + + // Now we have a portion which is definitely the auth. + // Pull that off. + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + self.auth = decodeURIComponent(auth); + } + + // the host is the remaining to the left of the first non-host char + hostEnd = -1; + for (i = 0; i < nonHostChars.length; i++) { + hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + // if we still have not hit it, then the entire thing is a host. + if (hostEnd === -1) + hostEnd = rest.length; + + self.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + + // pull out port. + parseHost(self); + + // we've indicated that there is a hostname, + // so even if it's empty, it has to be present. + self.hostname = self.hostname || ''; + + // if hostname begins with [ and ends with ] + // assume that it's an IPv6 address. + var ipv6Hostname = self.hostname[0] === '[' && + self.hostname[self.hostname.length - 1] === ']'; + + // validate a little. + if (!ipv6Hostname) { + var hostparts = self.hostname.split(/\./); + for (i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) continue; + if (!part.match(hostnamePartPattern)) { + var newpart = ''; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + // we replace non-ASCII char with a temporary placeholder + // we need this to make sure size of hostname is not + // broken by replacing non-ASCII by nothing + newpart += 'x'; + } else { + newpart += part[j]; + } + } + // we test again with ASCII char only + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = '/' + notHost.join('.') + rest; + } + self.hostname = validParts.join('.'); + break; + } + } + } + } + + if (self.hostname.length > hostnameMaxLen) { + self.hostname = ''; + } else { + // hostnames are always lower case. + self.hostname = self.hostname.toLowerCase(); + } + + if (!ipv6Hostname) { + // IDNA Support: Returns a punycoded representation of "domain". + // It only converts parts of the domain name that + // have non-ASCII characters, i.e. it doesn't matter if + // you call it with a domain that already is ASCII-only. + self.hostname = toASCII(self.hostname); + } + + p = self.port ? ':' + self.port : ''; + var h = self.hostname || ''; + self.host = h + p; + self.href += self.host; + + // strip [ and ] from the hostname + // the host field still retains them, though + if (ipv6Hostname) { + self.hostname = self.hostname.substr(1, self.hostname.length - 2); + if (rest[0] !== '/') { + rest = '/' + rest; + } + } + } + + // now rest is set to the post-host stuff. + // chop off any delim chars. + if (!unsafeProtocol[lowerProto]) { + + // First, make 100% sure that any "autoEscape" chars get + // escaped, even if encodeURIComponent doesn't think they + // need to be. + for (i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) + continue; + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); + } + } + + + // chop off from the tail first. + var hash = rest.indexOf('#'); + if (hash !== -1) { + // got a fragment string. + self.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf('?'); + if (qm !== -1) { + self.search = rest.substr(qm); + self.query = rest.substr(qm + 1); + if (parseQueryString) { + self.query = parse$1(self.query); + } + rest = rest.slice(0, qm); + } else if (parseQueryString) { + // no query string, but parseQueryString still requested + self.search = ''; + self.query = {}; + } + if (rest) self.pathname = rest; + if (slashedProtocol[lowerProto] && + self.hostname && !self.pathname) { + self.pathname = '/'; + } + + //to support http.request + if (self.pathname || self.search) { + p = self.pathname || ''; + var s = self.search || ''; + self.path = p + s; + } + + // finally, reconstruct the href based on what has been validated. + self.href = format(self); + return self; +} + +function urlFileURLToPath(path) { + if (typeof path === 'string') + path = new Url().parse(path); + else if (!(path instanceof Url)) + throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type ' + (typeof path) + String(path)); + if (path.protocol !== 'file:') + throw new TypeError('The URL must be of scheme file'); + return getPathFromURLPosix(path); +} + +function getPathFromURLPosix(url) { + const pathname = url.pathname; + for (let n = 0; n < pathname.length; n++) { + if (pathname[n] === '%') { + const third = pathname.codePointAt(n + 2) | 0x20; + if (pathname[n + 1] === '2' && third === 102) { + throw new TypeError( + 'must not include encoded / characters' + ); + } + } + } + return decodeURIComponent(pathname); +} + +// format a parsed object into a url string +function urlFormat(obj) { + // ensure it's an object, and not a string url. + // If it's an obj, this is a no-op. + // this way, you can call url_format() on strings + // to clean up potentially wonky urls. + if (isString(obj)) obj = parse({}, obj); + return format(obj); +} + +function format(self) { + var auth = self.auth || ''; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ':'); + auth += '@'; + } + + var protocol = self.protocol || '', + pathname = self.pathname || '', + hash = self.hash || '', + host = false, + query = ''; + + if (self.host) { + host = auth + self.host; + } else if (self.hostname) { + host = auth + (self.hostname.indexOf(':') === -1 ? + self.hostname : + '[' + this.hostname + ']'); + if (self.port) { + host += ':' + self.port; + } + } + + if (self.query && + isObject$1(self.query) && + Object.keys(self.query).length) { + query = stringify(self.query); + } + + var search = self.search || (query && ('?' + query)) || ''; + + if (protocol && protocol.substr(-1) !== ':') protocol += ':'; + + // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. + // unless they had them to begin with. + if (self.slashes || + (!protocol || slashedProtocol[protocol]) && host !== false) { + host = '//' + (host || ''); + if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; + } else if (!host) { + host = ''; + } + + if (hash && hash.charAt(0) !== '#') hash = '#' + hash; + if (search && search.charAt(0) !== '?') search = '?' + search; + + pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }); + search = search.replace('#', '%23'); + + return protocol + host + pathname + search + hash; +} + +Url.prototype.format = function() { + return format(this); +}; + +function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); +} + +Url.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); +}; + +function urlResolveObject(source, relative) { + if (!source) return relative; + return urlParse(source, false, true).resolveObject(relative); +} + +Url.prototype.resolveObject = function(relative) { + if (isString(relative)) { + var rel = new Url(); + rel.parse(relative, false, true); + relative = rel; + } + + var result = new Url(); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } + + // hash is always overridden, no matter what. + // even href="" will remove it. + result.hash = relative.hash; + + // if the relative url is empty, then there's nothing left to do here. + if (relative.href === '') { + result.href = result.format(); + return result; + } + + // hrefs like //foo/bar always cut to the protocol. + if (relative.slashes && !relative.protocol) { + // take everything except the protocol from relative + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== 'protocol') + result[rkey] = relative[rkey]; + } + + //urlParse appends trailing / to urls like http://www.example.com + if (slashedProtocol[result.protocol] && + result.hostname && !result.pathname) { + result.path = result.pathname = '/'; + } + + result.href = result.format(); + return result; + } + var relPath; + if (relative.protocol && relative.protocol !== result.protocol) { + // if it's a known url protocol, then changing + // the protocol does weird things + // first, if it's not file:, then we MUST have a host, + // and if there was a path + // to begin with, then we MUST have a path. + // if it is file:, then the host is dropped, + // because that's known to be hostless. + // anything else is assumed to be absolute. + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; + } + result.href = result.format(); + return result; + } + + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + relPath = (relative.pathname || '').split('/'); + while (relPath.length && !(relative.host = relPath.shift())); + if (!relative.host) relative.host = ''; + if (!relative.hostname) relative.hostname = ''; + if (relPath[0] !== '') relPath.unshift(''); + if (relPath.length < 2) relPath.unshift(''); + result.pathname = relPath.join('/'); + } else { + result.pathname = relative.pathname; + } + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ''; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + // to support http.request + if (result.pathname || result.search) { + var p = result.pathname || ''; + var s = result.search || ''; + result.path = p + s; + } + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + + var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), + isRelAbs = ( + relative.host || + relative.pathname && relative.pathname.charAt(0) === '/' + ), + mustEndAbs = (isRelAbs || isSourceAbs || + (result.host && relative.pathname)), + removeAllDots = mustEndAbs, + srcPath = result.pathname && result.pathname.split('/') || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + relPath = relative.pathname && relative.pathname.split('/') || []; + // if the url is a non-slashed url, then relative + // links like ../.. should be able + // to crawl up to the hostname, as well. This is strange. + // result.protocol has already been set by now. + // Later on, put the first path part into the host field. + if (psychotic) { + result.hostname = ''; + result.port = null; + if (result.host) { + if (srcPath[0] === '') srcPath[0] = result.host; + else srcPath.unshift(result.host); + } + result.host = ''; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === '') relPath[0] = relative.host; + else relPath.unshift(relative.host); + } + relative.host = null; + } + mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); + } + var authInHost; + if (isRelAbs) { + // it's absolute. + result.host = (relative.host || relative.host === '') ? + relative.host : result.host; + result.hostname = (relative.hostname || relative.hostname === '') ? + relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + // fall through to the dot-handling below. + } else if (relPath.length) { + // it's relative + // throw away the existing file, and take the new path instead. + if (!srcPath) srcPath = []; + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (!isNullOrUndefined(relative.search)) { + // just pull out the search. + // like href='?foo'. + // Put this after the other two cases because it simplifies the booleans + if (psychotic) { + result.hostname = result.host = srcPath.shift(); + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + result.search = relative.search; + result.query = relative.query; + //to support http.request + if (!isNull(result.pathname) || !isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.href = result.format(); + return result; + } + + if (!srcPath.length) { + // no path at all. easy. + // we've already handled the other stuff above. + result.pathname = null; + //to support http.request + if (result.search) { + result.path = '/' + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } + + // if a url ENDs in . or .., then it must get a trailing slash. + // however, if it ends in anything else non-slashy, + // then it must NOT get a trailing slash. + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = ( + (result.host || relative.host || srcPath.length > 1) && + (last === '.' || last === '..') || last === ''); + + // strip single dots, resolve double dots to parent dir + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last === '.') { + srcPath.splice(i, 1); + } else if (last === '..') { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift('..'); + } + } + + if (mustEndAbs && srcPath[0] !== '' && + (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { + srcPath.unshift(''); + } + + if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { + srcPath.push(''); + } + + var isAbsolute = srcPath[0] === '' || + (srcPath[0] && srcPath[0].charAt(0) === '/'); + + // put the host back + if (psychotic) { + result.hostname = result.host = isAbsolute ? '' : + srcPath.length ? srcPath.shift() : ''; + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + + mustEndAbs = mustEndAbs || (result.host && srcPath.length); + + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(''); + } + + if (!srcPath.length) { + result.pathname = null; + result.path = null; + } else { + result.pathname = srcPath.join('/'); + } + + //to support request.http + if (!isNull(result.pathname) || !isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; +}; + +Url.prototype.parseHost = function() { + return parseHost(this); +}; + +function parseHost(self) { + var host = self.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ':') { + self.port = port.substr(1); + } + host = host.substr(0, host.length - port.length); + } + if (host) self.hostname = host; +} + +var _polyfillNode_url$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + URL: URL$1, + URLSearchParams: URLSearchParams, + Url: Url, + default: _polyfillNode_url, + fileURLToPath: urlFileURLToPath, + format: urlFormat, + parse: urlParse, + resolve: urlResolve, + resolveObject: urlResolveObject +}); + +function isRelativeUrl(url) { + const firstChar = url.charAt(0); + return firstChar === "." || firstChar === "~" || firstChar === "@"; +} +const externalRE = /^(?:https?:)?\/\//; +function isExternalUrl(url) { + return externalRE.test(url); +} +const dataUrlRE = /^\s*data:/i; +function isDataUrl(url) { + return dataUrlRE.test(url); +} +function parseUrl(url) { + const firstChar = url.charAt(0); + if (firstChar === "~") { + const secondChar = url.charAt(1); + url = url.slice(secondChar === "/" ? 2 : 1); + } + return parseUriParts(url); +} +function parseUriParts(urlString) { + return urlParse(isString$1(urlString) ? urlString : "", false, true); +} + +var __defProp$9 = Object.defineProperty; +var __defProps$8 = Object.defineProperties; +var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols; +var __hasOwnProp$9 = Object.prototype.hasOwnProperty; +var __propIsEnum$9 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$9 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$9.call(b, prop)) + __defNormalProp$9(a, prop, b[prop]); + if (__getOwnPropSymbols$9) + for (var prop of __getOwnPropSymbols$9(b)) { + if (__propIsEnum$9.call(b, prop)) + __defNormalProp$9(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b)); +const defaultAssetUrlOptions = { + base: null, + includeAbsolute: false, + tags: { + video: ["src", "poster"], + source: ["src"], + img: ["src"], + image: ["xlink:href", "href"], + use: ["xlink:href", "href"] + } +}; +const normalizeOptions = (options) => { + if (Object.keys(options).some((key) => isArray$3(options[key]))) { + return __spreadProps$8(__spreadValues$9({}, defaultAssetUrlOptions), { + tags: options + }); + } + return __spreadValues$9(__spreadValues$9({}, defaultAssetUrlOptions), options); +}; +const createAssetUrlTransformWithOptions = (options) => { + return (node, context) => transformAssetUrl(node, context, options); +}; +const transformAssetUrl = (node, context, options = defaultAssetUrlOptions) => { + if (node.type === 1) { + if (!node.props.length) { + return; + } + const tags = options.tags || defaultAssetUrlOptions.tags; + const attrs = tags[node.tag]; + const wildCardAttrs = tags["*"]; + if (!attrs && !wildCardAttrs) { + return; + } + const assetAttrs = (attrs || []).concat(wildCardAttrs || []); + node.props.forEach((attr, index) => { + if (attr.type !== 6 || !assetAttrs.includes(attr.name) || !attr.value || isExternalUrl(attr.value.content) || isDataUrl(attr.value.content) || attr.value.content[0] === "#" || !options.includeAbsolute && !isRelativeUrl(attr.value.content)) { + return; + } + const url = parseUrl(attr.value.content); + if (options.base && attr.value.content[0] === ".") { + const base = parseUrl(options.base); + const protocol = base.protocol || ""; + const host = base.host ? protocol + "//" + base.host : ""; + const basePath = base.path || "/"; + attr.value.content = host + (path.posix || path).join(basePath, url.path + (url.hash || "")); + return; + } + const exp = getImportsExpressionExp(url.path, url.hash, attr.loc, context); + node.props[index] = { + type: 7, + name: "bind", + arg: createSimpleExpression(attr.name, true, attr.loc), + exp, + modifiers: [], + loc: attr.loc + }; + }); + } +}; +function getImportsExpressionExp(path2, hash, loc, context) { + if (path2) { + let name; + let exp; + const existingIndex = context.imports.findIndex((i) => i.path === path2); + if (existingIndex > -1) { + name = `_imports_${existingIndex}`; + exp = context.imports[existingIndex].exp; + } else { + name = `_imports_${context.imports.length}`; + exp = createSimpleExpression( + name, + false, + loc, + 3 + ); + context.imports.push({ + exp, + path: decodeURIComponent(path2) + }); + } + if (!hash) { + return exp; + } + const hashExp = `${name} + '${hash}'`; + const finalExp = createSimpleExpression( + hashExp, + false, + loc, + 3 + ); + if (!context.hoistStatic) { + return finalExp; + } + const existingHoistIndex = context.hoists.findIndex((h) => { + return h && h.type === 4 && !h.isStatic && h.content === hashExp; + }); + if (existingHoistIndex > -1) { + return createSimpleExpression( + `_hoisted_${existingHoistIndex + 1}`, + false, + loc, + 3 + ); + } + return context.hoist(finalExp); + } else { + return createSimpleExpression(`''`, false, loc, 3); + } +} + +const srcsetTags = ["img", "source"]; +const escapedSpaceCharacters = /( |\\t|\\n|\\f|\\r)+/g; +const createSrcsetTransformWithOptions = (options) => { + return (node, context) => transformSrcset(node, context, options); +}; +const transformSrcset = (node, context, options = defaultAssetUrlOptions) => { + if (node.type === 1) { + if (srcsetTags.includes(node.tag) && node.props.length) { + node.props.forEach((attr, index) => { + if (attr.name === "srcset" && attr.type === 6) { + if (!attr.value) return; + const value = attr.value.content; + if (!value) return; + const imageCandidates = value.split(",").map((s) => { + const [url, descriptor] = s.replace(escapedSpaceCharacters, " ").trim().split(" ", 2); + return { url, descriptor }; + }); + for (let i = 0; i < imageCandidates.length; i++) { + const { url } = imageCandidates[i]; + if (isDataUrl(url)) { + imageCandidates[i + 1].url = url + "," + imageCandidates[i + 1].url; + imageCandidates.splice(i, 1); + } + } + const shouldProcessUrl = (url) => { + return url && !isExternalUrl(url) && !isDataUrl(url) && (options.includeAbsolute || isRelativeUrl(url)); + }; + if (!imageCandidates.some(({ url }) => shouldProcessUrl(url))) { + return; + } + if (options.base) { + const base = options.base; + const set = []; + let needImportTransform = false; + imageCandidates.forEach((candidate) => { + let { url, descriptor } = candidate; + descriptor = descriptor ? ` ${descriptor}` : ``; + if (url[0] === ".") { + candidate.url = (path.posix || path).join(base, url); + set.push(candidate.url + descriptor); + } else if (shouldProcessUrl(url)) { + needImportTransform = true; + } else { + set.push(url + descriptor); + } + }); + if (!needImportTransform) { + attr.value.content = set.join(", "); + return; + } + } + const compoundExpression = createCompoundExpression([], attr.loc); + imageCandidates.forEach(({ url, descriptor }, index2) => { + if (shouldProcessUrl(url)) { + const { path: path2 } = parseUrl(url); + let exp2; + if (path2) { + const existingImportsIndex = context.imports.findIndex( + (i) => i.path === path2 + ); + if (existingImportsIndex > -1) { + exp2 = createSimpleExpression( + `_imports_${existingImportsIndex}`, + false, + attr.loc, + 3 + ); + } else { + exp2 = createSimpleExpression( + `_imports_${context.imports.length}`, + false, + attr.loc, + 3 + ); + context.imports.push({ exp: exp2, path: path2 }); + } + compoundExpression.children.push(exp2); + } + } else { + const exp2 = createSimpleExpression( + `"${url}"`, + false, + attr.loc, + 3 + ); + compoundExpression.children.push(exp2); + } + const isNotLast = imageCandidates.length - 1 > index2; + if (descriptor && isNotLast) { + compoundExpression.children.push(` + ' ${descriptor}, ' + `); + } else if (descriptor) { + compoundExpression.children.push(` + ' ${descriptor}'`); + } else if (isNotLast) { + compoundExpression.children.push(` + ', ' + `); + } + }); + let exp = compoundExpression; + if (context.hoistStatic) { + exp = context.hoist(compoundExpression); + exp.constType = 3; + } + node.props[index] = { + type: 7, + name: "bind", + arg: createSimpleExpression("srcset", true, attr.loc), + exp, + modifiers: [], + loc: attr.loc + }; + } + }); + } + } +}; + +const SSR_INTERPOLATE = /* @__PURE__ */ Symbol(`ssrInterpolate`); +const SSR_RENDER_VNODE = /* @__PURE__ */ Symbol(`ssrRenderVNode`); +const SSR_RENDER_COMPONENT = /* @__PURE__ */ Symbol(`ssrRenderComponent`); +const SSR_RENDER_SLOT = /* @__PURE__ */ Symbol(`ssrRenderSlot`); +const SSR_RENDER_SLOT_INNER = /* @__PURE__ */ Symbol(`ssrRenderSlotInner`); +const SSR_RENDER_CLASS = /* @__PURE__ */ Symbol(`ssrRenderClass`); +const SSR_RENDER_STYLE = /* @__PURE__ */ Symbol(`ssrRenderStyle`); +const SSR_RENDER_ATTRS = /* @__PURE__ */ Symbol(`ssrRenderAttrs`); +const SSR_RENDER_ATTR = /* @__PURE__ */ Symbol(`ssrRenderAttr`); +const SSR_RENDER_DYNAMIC_ATTR = /* @__PURE__ */ Symbol(`ssrRenderDynamicAttr`); +const SSR_RENDER_LIST = /* @__PURE__ */ Symbol(`ssrRenderList`); +const SSR_INCLUDE_BOOLEAN_ATTR = /* @__PURE__ */ Symbol( + `ssrIncludeBooleanAttr` +); +const SSR_LOOSE_EQUAL = /* @__PURE__ */ Symbol(`ssrLooseEqual`); +const SSR_LOOSE_CONTAIN = /* @__PURE__ */ Symbol(`ssrLooseContain`); +const SSR_RENDER_DYNAMIC_MODEL = /* @__PURE__ */ Symbol( + `ssrRenderDynamicModel` +); +const SSR_GET_DYNAMIC_MODEL_PROPS = /* @__PURE__ */ Symbol( + `ssrGetDynamicModelProps` +); +const SSR_RENDER_TELEPORT = /* @__PURE__ */ Symbol(`ssrRenderTeleport`); +const SSR_RENDER_SUSPENSE = /* @__PURE__ */ Symbol(`ssrRenderSuspense`); +const SSR_GET_DIRECTIVE_PROPS = /* @__PURE__ */ Symbol(`ssrGetDirectiveProps`); +const ssrHelpers = { + [SSR_INTERPOLATE]: `ssrInterpolate`, + [SSR_RENDER_VNODE]: `ssrRenderVNode`, + [SSR_RENDER_COMPONENT]: `ssrRenderComponent`, + [SSR_RENDER_SLOT]: `ssrRenderSlot`, + [SSR_RENDER_SLOT_INNER]: `ssrRenderSlotInner`, + [SSR_RENDER_CLASS]: `ssrRenderClass`, + [SSR_RENDER_STYLE]: `ssrRenderStyle`, + [SSR_RENDER_ATTRS]: `ssrRenderAttrs`, + [SSR_RENDER_ATTR]: `ssrRenderAttr`, + [SSR_RENDER_DYNAMIC_ATTR]: `ssrRenderDynamicAttr`, + [SSR_RENDER_LIST]: `ssrRenderList`, + [SSR_INCLUDE_BOOLEAN_ATTR]: `ssrIncludeBooleanAttr`, + [SSR_LOOSE_EQUAL]: `ssrLooseEqual`, + [SSR_LOOSE_CONTAIN]: `ssrLooseContain`, + [SSR_RENDER_DYNAMIC_MODEL]: `ssrRenderDynamicModel`, + [SSR_GET_DYNAMIC_MODEL_PROPS]: `ssrGetDynamicModelProps`, + [SSR_RENDER_TELEPORT]: `ssrRenderTeleport`, + [SSR_RENDER_SUSPENSE]: `ssrRenderSuspense`, + [SSR_GET_DIRECTIVE_PROPS]: `ssrGetDirectiveProps` +}; +registerRuntimeHelpers(ssrHelpers); + +const ssrTransformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + processIf +); +function ssrProcessIf(node, context, disableNestedFragments = false, disableComment = false) { + const [rootBranch] = node.branches; + const ifStatement = createIfStatement( + rootBranch.condition, + processIfBranch(rootBranch, context, disableNestedFragments) + ); + context.pushStatement(ifStatement); + let currentIf = ifStatement; + for (let i = 1; i < node.branches.length; i++) { + const branch = node.branches[i]; + const branchBlockStatement = processIfBranch( + branch, + context, + disableNestedFragments + ); + if (branch.condition) { + currentIf = currentIf.alternate = createIfStatement( + branch.condition, + branchBlockStatement + ); + } else { + currentIf.alternate = branchBlockStatement; + } + } + if (!currentIf.alternate && !disableComment) { + currentIf.alternate = createBlockStatement([ + createCallExpression(`_push`, ["`<!---->`"]) + ]); + } +} +function processIfBranch(branch, context, disableNestedFragments = false) { + const { children } = branch; + const needFragmentWrapper = !disableNestedFragments && (children.length !== 1 || children[0].type !== 1) && // optimize away nested fragments when the only child is a ForNode + !(children.length === 1 && children[0].type === 11); + return processChildrenAsStatement(branch, context, needFragmentWrapper); +} + +const ssrTransformFor = createStructuralDirectiveTransform("for", processFor); +function ssrProcessFor(node, context, disableNestedFragments = false) { + const needFragmentWrapper = !disableNestedFragments && (node.children.length !== 1 || node.children[0].type !== 1); + const renderLoop = createFunctionExpression( + createForLoopParams(node.parseResult) + ); + renderLoop.body = processChildrenAsStatement( + node, + context, + needFragmentWrapper + ); + if (!disableNestedFragments) { + context.pushStringPart(`<!--[-->`); + } + context.pushStatement( + createCallExpression(context.helper(SSR_RENDER_LIST), [ + node.source, + renderLoop + ]) + ); + if (!disableNestedFragments) { + context.pushStringPart(`<!--]-->`); + } +} + +const ssrTransformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { slotName, slotProps } = processSlotOutlet(node, context); + const args = [ + `_ctx.$slots`, + slotName, + slotProps || `{}`, + // fallback content placeholder. will be replaced in the process phase + `null`, + `_push`, + `_parent` + ]; + if (context.scopeId && context.slotted !== false) { + args.push(`"${context.scopeId}-s"`); + } + let method = SSR_RENDER_SLOT; + let parent = context.parent; + if (parent) { + const children = parent.children; + if (parent.type === 10) { + parent = context.grandParent; + } + let componentType; + if (parent.type === 1 && parent.tagType === 1 && ((componentType = resolveComponentType(parent, context, true)) === TRANSITION || componentType === TRANSITION_GROUP) && children.filter((c) => c.type === 1).length === 1) { + method = SSR_RENDER_SLOT_INNER; + if (!(context.scopeId && context.slotted !== false)) { + args.push("null"); + } + args.push("true"); + } + } + node.ssrCodegenNode = createCallExpression(context.helper(method), args); + } +}; +function ssrProcessSlotOutlet(node, context) { + const renderCall = node.ssrCodegenNode; + if (node.children.length) { + const fallbackRenderFn = createFunctionExpression([]); + fallbackRenderFn.body = processChildrenAsStatement(node, context); + renderCall.arguments[3] = fallbackRenderFn; + } + if (context.withSlotScopeId) { + const slotScopeId = renderCall.arguments[6]; + renderCall.arguments[6] = slotScopeId ? `${slotScopeId} + _scopeId` : `_scopeId`; + } + context.pushStatement(node.ssrCodegenNode); +} + +function createSSRCompilerError(code, loc) { + return createCompilerError(code, loc, SSRErrorMessages); +} +const SSRErrorMessages = { + [65]: `Unsafe attribute name for SSR.`, + [66]: `Missing the 'to' prop on teleport element.`, + [67]: `Invalid AST node during SSR transform.` +}; + +function ssrProcessTeleport(node, context) { + const targetProp = findProp(node, "to"); + if (!targetProp) { + context.onError( + createSSRCompilerError(66, node.loc) + ); + return; + } + let target; + if (targetProp.type === 6) { + target = targetProp.value && createSimpleExpression(targetProp.value.content, true); + } else { + target = targetProp.exp; + } + if (!target) { + context.onError( + createSSRCompilerError( + 66, + targetProp.loc + ) + ); + return; + } + const disabledProp = findProp( + node, + "disabled", + false, + true + /* allow empty */ + ); + const disabled = disabledProp ? disabledProp.type === 6 ? `true` : disabledProp.exp || `false` : `false`; + const contentRenderFn = createFunctionExpression( + [`_push`], + void 0, + // Body is added later + true, + // newline + false, + // isSlot + node.loc + ); + contentRenderFn.body = processChildrenAsStatement(node, context); + context.pushStatement( + createCallExpression(context.helper(SSR_RENDER_TELEPORT), [ + `_push`, + contentRenderFn, + target, + disabled, + `_parent` + ]) + ); +} + +const wipMap$3 = /* @__PURE__ */ new WeakMap(); +function ssrTransformSuspense(node, context) { + return () => { + if (node.children.length) { + const wipEntry = { + slotsExp: null, + // to be immediately set + wipSlots: [] + }; + wipMap$3.set(node, wipEntry); + wipEntry.slotsExp = buildSlots( + node, + context, + (_props, _vForExp, children, loc) => { + const fn = createFunctionExpression( + [], + void 0, + // no return, assign body later + true, + // newline + false, + // suspense slots are not treated as normal slots + loc + ); + wipEntry.wipSlots.push({ + fn, + children + }); + return fn; + } + ).slots; + } + }; +} +function ssrProcessSuspense(node, context) { + const wipEntry = wipMap$3.get(node); + if (!wipEntry) { + return; + } + const { slotsExp, wipSlots } = wipEntry; + for (let i = 0; i < wipSlots.length; i++) { + const slot = wipSlots[i]; + slot.fn.body = processChildrenAsStatement(slot, context); + } + context.pushStatement( + createCallExpression(context.helper(SSR_RENDER_SUSPENSE), [ + `_push`, + slotsExp + ]) + ); +} + +const rawChildrenMap = /* @__PURE__ */ new WeakMap(); +const ssrTransformElement = (node, context) => { + if (node.type !== 1 || node.tagType !== 0) { + return; + } + return function ssrPostTransformElement() { + const openTag = [`<${node.tag}`]; + const needTagForRuntime = node.tag === "textarea" || node.tag.indexOf("-") > 0; + const hasDynamicVBind = hasDynamicKeyVBind(node); + const hasCustomDir = node.props.some( + (p) => p.type === 7 && !isBuiltInDirective(p.name) + ); + const vShowPropIndex = node.props.findIndex( + (i) => i.type === 7 && i.name === "show" + ); + if (vShowPropIndex !== -1) { + const vShowProp = node.props[vShowPropIndex]; + node.props.splice(vShowPropIndex, 1); + node.props.push(vShowProp); + } + const needMergeProps = hasDynamicVBind || hasCustomDir; + if (needMergeProps) { + const { props, directives } = buildProps( + node, + context, + node.props, + false, + false, + true + ); + if (props || directives.length) { + const mergedProps = buildSSRProps(props, directives, context); + const propsExp = createCallExpression( + context.helper(SSR_RENDER_ATTRS), + [mergedProps] + ); + if (node.tag === "textarea") { + const existingText = node.children[0]; + if (!hasContentOverrideDirective(node) && (!existingText || existingText.type !== 5)) { + const tempId = `_temp${context.temps++}`; + propsExp.arguments = [ + createAssignmentExpression( + createSimpleExpression(tempId, false), + mergedProps + ) + ]; + rawChildrenMap.set( + node, + createCallExpression(context.helper(SSR_INTERPOLATE), [ + createConditionalExpression( + createSimpleExpression(`"value" in ${tempId}`, false), + createSimpleExpression(`${tempId}.value`, false), + createSimpleExpression( + existingText ? existingText.content : ``, + true + ), + false + ) + ]) + ); + } + } else if (node.tag === "input") { + const vModel = findVModel(node); + if (vModel) { + const tempId = `_temp${context.temps++}`; + const tempExp = createSimpleExpression(tempId, false); + propsExp.arguments = [ + createSequenceExpression([ + createAssignmentExpression(tempExp, mergedProps), + createCallExpression(context.helper(MERGE_PROPS), [ + tempExp, + createCallExpression( + context.helper(SSR_GET_DYNAMIC_MODEL_PROPS), + [ + tempExp, + // existing props + vModel.exp + // model + ] + ) + ]) + ]) + ]; + } + } else if (directives.length && !node.children.length) { + if (!hasContentOverrideDirective(node)) { + const tempId = `_temp${context.temps++}`; + propsExp.arguments = [ + createAssignmentExpression( + createSimpleExpression(tempId, false), + mergedProps + ) + ]; + rawChildrenMap.set( + node, + createConditionalExpression( + createSimpleExpression(`"textContent" in ${tempId}`, false), + createCallExpression(context.helper(SSR_INTERPOLATE), [ + createSimpleExpression(`${tempId}.textContent`, false) + ]), + createSimpleExpression(`${tempId}.innerHTML ?? ''`, false), + false + ) + ); + } + } + if (needTagForRuntime) { + propsExp.arguments.push(`"${node.tag}"`); + } + openTag.push(propsExp); + } + } + let dynamicClassBinding = void 0; + let staticClassBinding = void 0; + let dynamicStyleBinding = void 0; + for (let i = 0; i < node.props.length; i++) { + const prop = node.props[i]; + if (node.tag === "input" && isTrueFalseValue(prop)) { + continue; + } + if (prop.type === 7) { + if (prop.name === "html" && prop.exp) { + rawChildrenMap.set( + node, + createCompoundExpression([`(`, prop.exp, `) ?? ''`]) + ); + } else if (prop.name === "text" && prop.exp) { + node.children = [createInterpolation(prop.exp, prop.loc)]; + } else if (prop.name === "slot") { + context.onError( + createCompilerError(40, prop.loc) + ); + } else if (isTextareaWithValue(node, prop) && prop.exp) { + if (!needMergeProps) { + node.children = [createInterpolation(prop.exp, prop.loc)]; + } + } else if (!needMergeProps && prop.name !== "on") { + const directiveTransform = context.directiveTransforms[prop.name]; + if (directiveTransform) { + const { props, ssrTagParts } = directiveTransform( + prop, + node, + context + ); + if (ssrTagParts) { + openTag.push(...ssrTagParts); + } + for (let j = 0; j < props.length; j++) { + const { key, value } = props[j]; + if (isStaticExp(key)) { + let attrName = key.content; + if (attrName === "key" || attrName === "ref") { + continue; + } + if (attrName === "class") { + openTag.push( + ` class="`, + dynamicClassBinding = createCallExpression( + context.helper(SSR_RENDER_CLASS), + [value] + ), + `"` + ); + } else if (attrName === "style") { + if (dynamicStyleBinding) { + mergeCall(dynamicStyleBinding, value); + } else { + openTag.push( + ` style="`, + dynamicStyleBinding = createCallExpression( + context.helper(SSR_RENDER_STYLE), + [value] + ), + `"` + ); + } + } else { + attrName = node.tag.indexOf("-") > 0 ? attrName : propsToAttrMap[attrName] || attrName.toLowerCase(); + if (isBooleanAttr(attrName)) { + openTag.push( + createConditionalExpression( + createCallExpression( + context.helper(SSR_INCLUDE_BOOLEAN_ATTR), + [value] + ), + createSimpleExpression(" " + attrName, true), + createSimpleExpression("", true), + false + ) + ); + } else if (isSSRSafeAttrName(attrName)) { + openTag.push( + createCallExpression(context.helper(SSR_RENDER_ATTR), [ + key, + value + ]) + ); + } else { + context.onError( + createSSRCompilerError( + 65, + key.loc + ) + ); + } + } + } else { + const args = [key, value]; + if (needTagForRuntime) { + args.push(`"${node.tag}"`); + } + openTag.push( + createCallExpression( + context.helper(SSR_RENDER_DYNAMIC_ATTR), + args + ) + ); + } + } + } + } + } else { + const name = prop.name; + if (node.tag === "textarea" && name === "value" && prop.value) { + rawChildrenMap.set(node, escapeHtml(prop.value.content)); + } else if (!needMergeProps) { + if (name === "key" || name === "ref") { + continue; + } + if (name === "class" && prop.value) { + staticClassBinding = JSON.stringify(prop.value.content); + } + openTag.push( + ` ${prop.name}` + (prop.value ? `="${escapeHtml(prop.value.content)}"` : ``) + ); + } + } + } + if (dynamicClassBinding && staticClassBinding) { + mergeCall(dynamicClassBinding, staticClassBinding); + removeStaticBinding(openTag, "class"); + } + if (context.scopeId) { + openTag.push(` ${context.scopeId}`); + } + node.ssrCodegenNode = createTemplateLiteral(openTag); + }; +}; +function buildSSRProps(props, directives, context) { + let mergePropsArgs = []; + if (props) { + if (props.type === 14) { + mergePropsArgs = props.arguments; + } else { + mergePropsArgs.push(props); + } + } + if (directives.length) { + for (const dir of directives) { + mergePropsArgs.push( + createCallExpression(context.helper(SSR_GET_DIRECTIVE_PROPS), [ + `_ctx`, + ...buildDirectiveArgs(dir, context).elements + ]) + ); + } + } + return mergePropsArgs.length > 1 ? createCallExpression(context.helper(MERGE_PROPS), mergePropsArgs) : mergePropsArgs[0]; +} +function isTrueFalseValue(prop) { + if (prop.type === 7) { + return prop.name === "bind" && prop.arg && isStaticExp(prop.arg) && (prop.arg.content === "true-value" || prop.arg.content === "false-value"); + } else { + return prop.name === "true-value" || prop.name === "false-value"; + } +} +function isTextareaWithValue(node, prop) { + return !!(node.tag === "textarea" && prop.name === "bind" && isStaticArgOf(prop.arg, "value")); +} +function mergeCall(call, arg) { + const existing = call.arguments[0]; + if (existing.type === 17) { + existing.elements.push(arg); + } else { + call.arguments[0] = createArrayExpression([existing, arg]); + } +} +function removeStaticBinding(tag, binding) { + const regExp = new RegExp(`^ ${binding}=".+"$`); + const i = tag.findIndex((e) => typeof e === "string" && regExp.test(e)); + if (i > -1) { + tag.splice(i, 1); + } +} +function findVModel(node) { + return node.props.find( + (p) => p.type === 7 && p.name === "model" && p.exp + ); +} +function hasContentOverrideDirective(node) { + return !!findDir(node, "text") || !!findDir(node, "html"); +} +function ssrProcessElement(node, context) { + const isVoidTag = context.options.isVoidTag || NO; + const elementsToAdd = node.ssrCodegenNode.elements; + for (let j = 0; j < elementsToAdd.length; j++) { + context.pushStringPart(elementsToAdd[j]); + } + if (context.withSlotScopeId) { + context.pushStringPart(createSimpleExpression(`_scopeId`, false)); + } + context.pushStringPart(`>`); + const rawChildren = rawChildrenMap.get(node); + if (rawChildren) { + context.pushStringPart(rawChildren); + } else if (node.children.length) { + processChildren(node, context); + } + if (!isVoidTag(node.tag)) { + context.pushStringPart(`</${node.tag}>`); + } +} + +const wipMap$2 = /* @__PURE__ */ new WeakMap(); +function ssrTransformTransitionGroup(node, context) { + return () => { + const tag = findProp(node, "tag"); + if (tag) { + const otherProps = node.props.filter((p) => p !== tag); + const { props, directives } = buildProps( + node, + context, + otherProps, + true, + false, + true + ); + let propsExp = null; + if (props || directives.length) { + propsExp = createCallExpression(context.helper(SSR_RENDER_ATTRS), [ + buildSSRProps(props, directives, context) + ]); + } + wipMap$2.set(node, { + tag, + propsExp, + scopeId: context.scopeId || null + }); + } + }; +} +function ssrProcessTransitionGroup(node, context) { + const entry = wipMap$2.get(node); + if (entry) { + const { tag, propsExp, scopeId } = entry; + if (tag.type === 7) { + context.pushStringPart(`<`); + context.pushStringPart(tag.exp); + if (propsExp) { + context.pushStringPart(propsExp); + } + if (scopeId) { + context.pushStringPart(` ${scopeId}`); + } + context.pushStringPart(`>`); + processChildren( + node, + context, + false, + /** + * TransitionGroup has the special runtime behavior of flattening and + * concatenating all children into a single fragment (in order for them to + * be patched using the same key map) so we need to account for that here + * by disabling nested fragment wrappers from being generated. + */ + true, + /** + * TransitionGroup filters out comment children at runtime and thus + * doesn't expect comments to be present during hydration. We need to + * account for that by disabling the empty comment that is otherwise + * rendered for a falsy v-if that has no v-else specified. (#6715) + */ + true + ); + context.pushStringPart(`</`); + context.pushStringPart(tag.exp); + context.pushStringPart(`>`); + } else { + context.pushStringPart(`<${tag.value.content}`); + if (propsExp) { + context.pushStringPart(propsExp); + } + if (scopeId) { + context.pushStringPart(` ${scopeId}`); + } + context.pushStringPart(`>`); + processChildren(node, context, false, true, true); + context.pushStringPart(`</${tag.value.content}>`); + } + } else { + processChildren(node, context, true, true, true); + } +} + +const wipMap$1 = /* @__PURE__ */ new WeakMap(); +function ssrTransformTransition(node, context) { + return () => { + const appear = findProp(node, "appear", false, true); + wipMap$1.set(node, !!appear); + }; +} +function ssrProcessTransition(node, context) { + node.children = node.children.filter((c) => c.type !== 3); + const appear = wipMap$1.get(node); + if (appear) { + context.pushStringPart(`<template>`); + processChildren(node, context, false, true); + context.pushStringPart(`</template>`); + } else { + processChildren(node, context, false, true); + } +} + +var __defProp$8 = Object.defineProperty; +var __defProps$7 = Object.defineProperties; +var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols; +var __hasOwnProp$8 = Object.prototype.hasOwnProperty; +var __propIsEnum$8 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$8 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$8.call(b, prop)) + __defNormalProp$8(a, prop, b[prop]); + if (__getOwnPropSymbols$8) + for (var prop of __getOwnPropSymbols$8(b)) { + if (__propIsEnum$8.call(b, prop)) + __defNormalProp$8(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b)); +const wipMap = /* @__PURE__ */ new WeakMap(); +const WIP_SLOT = /* @__PURE__ */ Symbol(); +const componentTypeMap = /* @__PURE__ */ new WeakMap(); +const ssrTransformComponent = (node, context) => { + if (node.type !== 1 || node.tagType !== 1) { + return; + } + const component = resolveComponentType( + node, + context, + true + /* ssr */ + ); + const isDynamicComponent = isObject$2(component) && component.callee === RESOLVE_DYNAMIC_COMPONENT; + componentTypeMap.set(node, component); + if (isSymbol$1(component)) { + if (component === SUSPENSE) { + return ssrTransformSuspense(node, context); + } else if (component === TRANSITION_GROUP) { + return ssrTransformTransitionGroup(node, context); + } else if (component === TRANSITION) { + return ssrTransformTransition(node); + } + return; + } + const vnodeBranches = []; + const clonedNode = clone(node); + return function ssrPostTransformComponent() { + if (clonedNode.children.length) { + buildSlots(clonedNode, context, (props, vFor, children) => { + vnodeBranches.push( + createVNodeSlotBranch(props, vFor, children, context) + ); + return createFunctionExpression(void 0); + }); + } + let propsExp = `null`; + if (node.props.length) { + const { props, directives } = buildProps( + node, + context, + void 0, + true, + isDynamicComponent + ); + if (props || directives.length) { + propsExp = buildSSRProps(props, directives, context); + } + } + const wipEntries = []; + wipMap.set(node, wipEntries); + const buildSSRSlotFn = (props, _vForExp, children, loc) => { + const param0 = props && stringifyExpression(props) || `_`; + const fn = createFunctionExpression( + [param0, `_push`, `_parent`, `_scopeId`], + void 0, + // no return, assign body later + true, + // newline + true, + // isSlot + loc + ); + wipEntries.push({ + type: WIP_SLOT, + fn, + children, + // also collect the corresponding vnode branch built earlier + vnodeBranch: vnodeBranches[wipEntries.length] + }); + return fn; + }; + const slots = node.children.length ? buildSlots(node, context, buildSSRSlotFn).slots : `null`; + if (typeof component !== "string") { + node.ssrCodegenNode = createCallExpression( + context.helper(SSR_RENDER_VNODE), + [ + `_push`, + createCallExpression(context.helper(CREATE_VNODE), [ + component, + propsExp, + slots + ]), + `_parent` + ] + ); + } else { + node.ssrCodegenNode = createCallExpression( + context.helper(SSR_RENDER_COMPONENT), + [component, propsExp, slots, `_parent`] + ); + } + }; +}; +function ssrProcessComponent(node, context, parent) { + const component = componentTypeMap.get(node); + if (!node.ssrCodegenNode) { + if (component === TELEPORT) { + return ssrProcessTeleport(node, context); + } else if (component === SUSPENSE) { + return ssrProcessSuspense(node, context); + } else if (component === TRANSITION_GROUP) { + return ssrProcessTransitionGroup(node, context); + } else { + if (parent.type === WIP_SLOT) { + context.pushStringPart(``); + } + if (component === TRANSITION) { + return ssrProcessTransition(node, context); + } + processChildren(node, context); + } + } else { + const wipEntries = wipMap.get(node) || []; + for (let i = 0; i < wipEntries.length; i++) { + const { fn, vnodeBranch } = wipEntries[i]; + fn.body = createIfStatement( + createSimpleExpression(`_push`, false), + processChildrenAsStatement( + wipEntries[i], + context, + false, + true + ), + vnodeBranch + ); + } + if (context.withSlotScopeId) { + node.ssrCodegenNode.arguments.push(`_scopeId`); + } + if (typeof component === "string") { + context.pushStatement( + createCallExpression(`_push`, [node.ssrCodegenNode]) + ); + } else { + context.pushStatement(node.ssrCodegenNode); + } + } +} +const rawOptionsMap = /* @__PURE__ */ new WeakMap(); +const [baseNodeTransforms, baseDirectiveTransforms] = getBaseTransformPreset(true); +const vnodeNodeTransforms = [...baseNodeTransforms, ...DOMNodeTransforms]; +const vnodeDirectiveTransforms = __spreadValues$8(__spreadValues$8({}, baseDirectiveTransforms), DOMDirectiveTransforms); +function createVNodeSlotBranch(slotProps, vFor, children, parentContext) { + const rawOptions = rawOptionsMap.get(parentContext.root); + const subOptions = __spreadProps$7(__spreadValues$8({}, rawOptions), { + // overwrite with vnode-based transforms + nodeTransforms: [ + ...vnodeNodeTransforms, + ...rawOptions.nodeTransforms || [] + ], + directiveTransforms: __spreadValues$8(__spreadValues$8({}, vnodeDirectiveTransforms), rawOptions.directiveTransforms || {}) + }); + const wrapperProps = []; + if (slotProps) { + wrapperProps.push({ + type: 7, + name: "slot", + exp: slotProps, + arg: void 0, + modifiers: [], + loc: locStub + }); + } + if (vFor) { + wrapperProps.push(extend({}, vFor)); + } + const wrapperNode = { + type: 1, + ns: 0, + tag: "template", + tagType: 3, + props: wrapperProps, + children, + loc: locStub, + codegenNode: void 0 + }; + subTransform(wrapperNode, subOptions, parentContext); + return createReturnStatement(children); +} +function subTransform(node, options, parentContext) { + const childRoot = createRoot([node]); + const childContext = createTransformContext(childRoot, options); + childContext.ssr = false; + childContext.scopes = __spreadValues$8({}, parentContext.scopes); + childContext.identifiers = __spreadValues$8({}, parentContext.identifiers); + childContext.imports = parentContext.imports; + traverseNode(childRoot, childContext); + ["helpers", "components", "directives"].forEach((key) => { + childContext[key].forEach((value, helperKey) => { + if (key === "helpers") { + const parentCount = parentContext.helpers.get(helperKey); + if (parentCount === void 0) { + parentContext.helpers.set(helperKey, value); + } else { + parentContext.helpers.set(helperKey, value + parentCount); + } + } else { + parentContext[key].add(value); + } + }); + }); +} +function clone(v) { + if (isArray$3(v)) { + return v.map(clone); + } else if (isPlainObject(v)) { + const res = {}; + for (const key in v) { + res[key] = clone(v[key]); + } + return res; + } else { + return v; + } +} + +function ssrCodegenTransform(ast, options) { + const context = createSSRTransformContext(ast, options); + if (options.ssrCssVars) { + const cssContext = createTransformContext(createRoot([]), options); + const varsExp = processExpression( + createSimpleExpression(options.ssrCssVars, false), + cssContext + ); + context.body.push( + createCompoundExpression([`const _cssVars = { style: `, varsExp, `}`]) + ); + Array.from(cssContext.helpers.keys()).forEach((helper) => { + ast.helpers.add(helper); + }); + } + const isFragment = ast.children.length > 1 && ast.children.some((c) => !isText$1(c)); + processChildren(ast, context, isFragment); + ast.codegenNode = createBlockStatement(context.body); + ast.ssrHelpers = Array.from( + /* @__PURE__ */ new Set([ + ...Array.from(ast.helpers).filter((h) => h in ssrHelpers), + ...context.helpers + ]) + ); + ast.helpers = new Set(Array.from(ast.helpers).filter((h) => !(h in ssrHelpers))); +} +function createSSRTransformContext(root, options, helpers = /* @__PURE__ */ new Set(), withSlotScopeId = false) { + const body = []; + let currentString = null; + return { + root, + options, + body, + helpers, + withSlotScopeId, + onError: options.onError || ((e) => { + throw e; + }), + helper(name) { + helpers.add(name); + return name; + }, + pushStringPart(part) { + if (!currentString) { + const currentCall = createCallExpression(`_push`); + body.push(currentCall); + currentString = createTemplateLiteral([]); + currentCall.arguments.push(currentString); + } + const bufferedElements = currentString.elements; + const lastItem = bufferedElements[bufferedElements.length - 1]; + if (isString$1(part) && isString$1(lastItem)) { + bufferedElements[bufferedElements.length - 1] += part; + } else { + bufferedElements.push(part); + } + }, + pushStatement(statement) { + currentString = null; + body.push(statement); + } + }; +} +function createChildContext(parent, withSlotScopeId = parent.withSlotScopeId) { + return createSSRTransformContext( + parent.root, + parent.options, + parent.helpers, + withSlotScopeId + ); +} +function processChildren(parent, context, asFragment = false, disableNestedFragments = false, disableComment = false) { + if (asFragment) { + context.pushStringPart(`<!--[-->`); + } + const { children } = parent; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + switch (child.tagType) { + case 0: + ssrProcessElement(child, context); + break; + case 1: + ssrProcessComponent(child, context, parent); + break; + case 2: + ssrProcessSlotOutlet(child, context); + break; + case 3: + break; + default: + context.onError( + createSSRCompilerError( + 67, + child.loc + ) + ); + const exhaustiveCheck2 = child; + return exhaustiveCheck2; + } + break; + case 2: + context.pushStringPart(escapeHtml(child.content)); + break; + case 3: + if (!disableComment) { + context.pushStringPart(`<!--${child.content}-->`); + } + break; + case 5: + context.pushStringPart( + createCallExpression(context.helper(SSR_INTERPOLATE), [ + child.content + ]) + ); + break; + case 9: + ssrProcessIf(child, context, disableNestedFragments, disableComment); + break; + case 11: + ssrProcessFor(child, context, disableNestedFragments); + break; + case 10: + break; + case 12: + case 8: + break; + default: + context.onError( + createSSRCompilerError( + 67, + child.loc + ) + ); + const exhaustiveCheck = child; + return exhaustiveCheck; + } + } + if (asFragment) { + context.pushStringPart(`<!--]-->`); + } +} +function processChildrenAsStatement(parent, parentContext, asFragment = false, withSlotScopeId = parentContext.withSlotScopeId) { + const childContext = createChildContext(parentContext, withSlotScopeId); + processChildren(parent, childContext, asFragment); + return createBlockStatement(childContext.body); +} + +const ssrTransformModel = (dir, node, context) => { + const model = dir.exp; + function checkDuplicatedValue() { + const value = findProp(node, "value"); + if (value) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const processSelectChildren = (children) => { + children.forEach((child) => { + if (child.type === 1) { + processOption(child); + } else if (child.type === 11) { + processSelectChildren(child.children); + } else if (child.type === 9) { + child.branches.forEach((b) => processSelectChildren(b.children)); + } + }); + }; + function processOption(plainNode) { + if (plainNode.tag === "option") { + if (plainNode.props.findIndex((p) => p.name === "selected") === -1) { + const value = findValueBinding(plainNode); + plainNode.ssrCodegenNode.elements.push( + createConditionalExpression( + createCallExpression(context.helper(SSR_INCLUDE_BOOLEAN_ATTR), [ + createConditionalExpression( + createCallExpression(`Array.isArray`, [model]), + createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [ + model, + value + ]), + createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + value + ]) + ) + ]), + createSimpleExpression(" selected", true), + createSimpleExpression("", true), + false + ) + ); + } + } else if (plainNode.tag === "optgroup") { + processSelectChildren(plainNode.children); + } + } + if (node.tagType === 0) { + const res = { props: [] }; + if (node.tag === "input") { + const defaultProps = [ + // default value binding for text type inputs + createObjectProperty(`value`, model) + ]; + const type = findProp(node, "type"); + if (type) { + const value = findValueBinding(node); + if (type.type === 7) { + res.ssrTagParts = [ + createCallExpression(context.helper(SSR_RENDER_DYNAMIC_MODEL), [ + type.exp, + model, + value + ]) + ]; + } else if (type.value) { + switch (type.value.content) { + case "radio": + res.props = [ + createObjectProperty( + `checked`, + createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + value + ]) + ) + ]; + break; + case "checkbox": + const trueValueBinding = findProp(node, "true-value"); + if (trueValueBinding) { + const trueValue = trueValueBinding.type === 6 ? JSON.stringify(trueValueBinding.value.content) : trueValueBinding.exp; + res.props = [ + createObjectProperty( + `checked`, + createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + trueValue + ]) + ) + ]; + } else { + res.props = [ + createObjectProperty( + `checked`, + createConditionalExpression( + createCallExpression(`Array.isArray`, [model]), + createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [ + model, + value + ]), + model + ) + ) + ]; + } + break; + case "file": + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + res.props = defaultProps; + break; + } + } + } else if (hasDynamicKeyVBind(node)) ; else { + checkDuplicatedValue(); + res.props = defaultProps; + } + } else if (node.tag === "textarea") { + checkDuplicatedValue(); + node.children = [createInterpolation(model, model.loc)]; + } else if (node.tag === "select") { + processSelectChildren(node.children); + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + return res; + } else { + return transformModel$1(dir, node, context); + } +}; +function findValueBinding(node) { + const valueBinding = findProp(node, "value"); + return valueBinding ? valueBinding.type === 7 ? valueBinding.exp : createSimpleExpression(valueBinding.value.content, true) : createSimpleExpression(`null`, false); +} + +const ssrTransformShow = (dir, node, context) => { + if (!dir.exp) { + context.onError( + createDOMCompilerError(62) + ); + } + return { + props: [ + createObjectProperty( + `style`, + createConditionalExpression( + dir.exp, + createSimpleExpression(`null`, false), + createObjectExpression([ + createObjectProperty( + `display`, + createSimpleExpression(`none`, true) + ) + ]), + false + ) + ) + ] + }; +}; + +const filterChild = (node) => node.children.filter((n) => !isCommentOrWhitespace(n)); +const hasSingleChild = (node) => filterChild(node).length === 1; +const ssrInjectFallthroughAttrs = (node, context) => { + if (node.type === 0) { + context.identifiers._attrs = 1; + } + if (node.type === 1 && node.tagType === 1 && (node.tag === "transition" || node.tag === "Transition" || node.tag === "KeepAlive" || node.tag === "keep-alive")) { + const rootChildren = filterChild(context.root); + if (rootChildren.length === 1 && rootChildren[0] === node) { + if (hasSingleChild(node)) { + injectFallthroughAttrs(node.children[0]); + } + return; + } + } + const parent = context.parent; + if (!parent || parent.type !== 0) { + return; + } + if (node.type === 10 && hasSingleChild(node)) { + let hasEncounteredIf = false; + for (const c of filterChild(parent)) { + if (c.type === 9 || c.type === 1 && findDir(c, "if")) { + if (hasEncounteredIf) return; + hasEncounteredIf = true; + } else if ( + // node before v-if + !hasEncounteredIf || // non else nodes + !(c.type === 1 && findDir(c, /else/, true)) + ) { + return; + } + } + injectFallthroughAttrs(node.children[0]); + } else if (hasSingleChild(parent)) { + injectFallthroughAttrs(node); + } +}; +function injectFallthroughAttrs(node) { + if (node.type === 1 && (node.tagType === 0 || node.tagType === 1) && !findDir(node, "for")) { + node.props.push({ + type: 7, + name: "bind", + arg: void 0, + exp: createSimpleExpression(`_attrs`, false), + modifiers: [], + loc: locStub + }); + } +} + +const ssrInjectCssVars = (node, context) => { + if (!context.ssrCssVars) { + return; + } + if (node.type === 0) { + context.identifiers._cssVars = 1; + } + const parent = context.parent; + if (!parent || parent.type !== 0) { + return; + } + if (node.type === 10) { + for (const child of node.children) { + injectCssVars(child); + } + } else { + injectCssVars(node); + } +}; +function injectCssVars(node) { + if (node.type === 1 && (node.tagType === 0 || node.tagType === 1) && !findDir(node, "for")) { + if (node.tag === "suspense" || node.tag === "Suspense") { + for (const child of node.children) { + if (child.type === 1 && child.tagType === 3) { + child.children.forEach(injectCssVars); + } else { + injectCssVars(child); + } + } + } else { + node.props.push({ + type: 7, + name: "bind", + arg: void 0, + exp: createSimpleExpression(`_cssVars`, false), + modifiers: [], + loc: locStub + }); + } + } +} + +var __defProp$7 = Object.defineProperty; +var __defProps$6 = Object.defineProperties; +var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols; +var __hasOwnProp$7 = Object.prototype.hasOwnProperty; +var __propIsEnum$7 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$7 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$7.call(b, prop)) + __defNormalProp$7(a, prop, b[prop]); + if (__getOwnPropSymbols$7) + for (var prop of __getOwnPropSymbols$7(b)) { + if (__propIsEnum$7.call(b, prop)) + __defNormalProp$7(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b)); +function compile(source, options = {}) { + options = __spreadProps$6(__spreadValues$7(__spreadValues$7({}, options), parserOptions), { + ssr: true, + inSSR: true, + scopeId: options.mode === "function" ? null : options.scopeId, + // always prefix since compiler-ssr doesn't have size concern + prefixIdentifiers: true, + // disable optimizations that are unnecessary for ssr + cacheHandlers: false, + hoistStatic: false + }); + const ast = typeof source === "string" ? baseParse(source, options) : source; + rawOptionsMap.set(ast, options); + transform(ast, __spreadProps$6(__spreadValues$7({}, options), { + hoistStatic: false, + nodeTransforms: [ + transformVBindShorthand, + ssrTransformIf, + ssrTransformFor, + trackVForSlotScopes, + transformExpression, + ssrTransformSlotOutlet, + ssrInjectFallthroughAttrs, + ssrInjectCssVars, + ssrTransformElement, + ssrTransformComponent, + trackSlotScopes, + transformStyle, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: __spreadValues$7({ + // reusing core v-bind + bind: transformBind, + on: transformOn$1, + // model and show have dedicated SSR handling + model: ssrTransformModel, + show: ssrTransformShow, + // the following are ignored during SSR + // on: noopDirectiveTransform, + cloak: noopDirectiveTransform, + once: noopDirectiveTransform, + memo: noopDirectiveTransform + }, options.directiveTransforms || {}) + })); + ssrCodegenTransform(ast, options); + return generate(ast, options); +} + +var CompilerSSR = /*#__PURE__*/Object.freeze({ + __proto__: null, + compile: compile +}); + +var _polyfillNode_fs = {}; + +var _polyfillNode_fs$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + default: _polyfillNode_fs +}); + +var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_fs$1); + +var require$$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_path); + +var require$$0 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_util$1); + +const hasWarned = {}; +function warnOnce$1(msg) { + const isNodeProd = typeof process !== "undefined" && process.env.NODE_ENV === "production"; + if (!isNodeProd && true && !hasWarned[msg]) { + hasWarned[msg] = true; + warn(msg); + } +} +function warn(msg) { + console.warn( + `\x1B[1m\x1B[33m[@vue/compiler-sfc]\x1B[0m\x1B[33m ${msg}\x1B[0m +` + ); +} + +var __defProp$6 = Object.defineProperty; +var __defProps$5 = Object.defineProperties; +var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols; +var __hasOwnProp$6 = Object.prototype.hasOwnProperty; +var __propIsEnum$6 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$6 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$6.call(b, prop)) + __defNormalProp$6(a, prop, b[prop]); + if (__getOwnPropSymbols$6) + for (var prop of __getOwnPropSymbols$6(b)) { + if (__propIsEnum$6.call(b, prop)) + __defNormalProp$6(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b)); +function preprocess$1({ source, filename, preprocessOptions }, preprocessor) { + let res = ""; + let err = null; + preprocessor.render( + source, + __spreadValues$6({ filename }, preprocessOptions), + (_err, _res) => { + if (_err) err = _err; + res = _res; + } + ); + if (err) throw err; + return res; +} +function compileTemplate(options) { + const { preprocessLang, preprocessCustomRequire } = options; + if (preprocessLang && !preprocessCustomRequire) { + throw new Error( + `[@vue/compiler-sfc] Template preprocessing in the browser build must provide the \`preprocessCustomRequire\` option to return the in-browser version of the preprocessor in the shape of { render(): string }.` + ); + } + const preprocessor = preprocessLang ? preprocessCustomRequire ? preprocessCustomRequire(preprocessLang) : void 0 : false; + if (preprocessor) { + try { + return doCompileTemplate(__spreadProps$5(__spreadValues$6({}, options), { + source: preprocess$1(options, preprocessor), + ast: void 0 + // invalidate AST if template goes through preprocessor + })); + } catch (e) { + return { + code: `export default function render() {}`, + source: options.source, + tips: [], + errors: [e] + }; + } + } else if (preprocessLang) { + return { + code: `export default function render() {}`, + source: options.source, + tips: [ + `Component ${options.filename} uses lang ${preprocessLang} for template. Please install the language preprocessor.` + ], + errors: [ + `Component ${options.filename} uses lang ${preprocessLang} for template, however it is not installed.` + ] + }; + } else { + return doCompileTemplate(options); + } +} +function doCompileTemplate({ + filename, + id, + scoped, + slotted, + inMap, + source, + ast: inAST, + ssr = false, + ssrCssVars, + isProd = false, + compiler, + compilerOptions = {}, + transformAssetUrls +}) { + const errors = []; + const warnings = []; + let nodeTransforms = []; + if (isObject$2(transformAssetUrls)) { + const assetOptions = normalizeOptions(transformAssetUrls); + nodeTransforms = [ + createAssetUrlTransformWithOptions(assetOptions), + createSrcsetTransformWithOptions(assetOptions) + ]; + } else if (transformAssetUrls !== false) { + nodeTransforms = [transformAssetUrl, transformSrcset]; + } + if (ssr && !ssrCssVars) { + warnOnce$1( + `compileTemplate is called with \`ssr: true\` but no corresponding \`cssVars\` option.` + ); + } + if (!id) { + warnOnce$1(`compileTemplate now requires the \`id\` option.`); + id = ""; + } + const shortId = id.replace(/^data-v-/, ""); + const longId = `data-v-${shortId}`; + const defaultCompiler = ssr ? CompilerSSR : CompilerDOM; + compiler = compiler || defaultCompiler; + if (compiler !== defaultCompiler) { + inAST = void 0; + } + if (inAST == null ? void 0 : inAST.transformed) { + const newAST = (ssr ? CompilerDOM : compiler).parse(inAST.source, __spreadProps$5(__spreadValues$6({ + prefixIdentifiers: true + }, compilerOptions), { + parseMode: "sfc", + onError: (e) => errors.push(e) + })); + const template = newAST.children.find( + (node) => node.type === 1 && node.tag === "template" + ); + inAST = createRoot(template.children, inAST.source); + } + let { code, ast, preamble, map } = compiler.compile(inAST || source, __spreadProps$5(__spreadValues$6({ + mode: "module", + prefixIdentifiers: true, + hoistStatic: true, + cacheHandlers: true, + ssrCssVars: ssr && ssrCssVars && ssrCssVars.length ? genCssVarsFromList(ssrCssVars, shortId, isProd, true) : "", + scopeId: scoped ? longId : void 0, + slotted, + sourceMap: true + }, compilerOptions), { + hmr: !isProd, + nodeTransforms: nodeTransforms.concat(compilerOptions.nodeTransforms || []), + filename, + onError: (e) => errors.push(e), + onWarn: (w) => warnings.push(w) + })); + if (inMap && !inAST) { + if (map) { + map = mapLines(inMap, map); + } + if (errors.length) { + patchErrors(errors, source, inMap); + } + } + const tips = warnings.map((w) => { + let msg = w.message; + if (w.loc) { + msg += ` +${generateCodeFrame( + (inAST == null ? void 0 : inAST.source) || source, + w.loc.start.offset, + w.loc.end.offset + )}`; + } + return msg; + }); + return { code, ast, preamble, source, errors, tips, map }; +} +function mapLines(oldMap, newMap) { + if (!oldMap) return newMap; + if (!newMap) return oldMap; + const oldMapConsumer = new sourceMapExports.SourceMapConsumer(oldMap); + const newMapConsumer = new sourceMapExports.SourceMapConsumer(newMap); + const mergedMapGenerator = new sourceMapExports.SourceMapGenerator(); + newMapConsumer.eachMapping((m) => { + if (m.originalLine == null) { + return; + } + const origPosInOldMap = oldMapConsumer.originalPositionFor({ + line: m.originalLine, + column: m.originalColumn + }); + if (origPosInOldMap.source == null) { + return; + } + mergedMapGenerator.addMapping({ + generated: { + line: m.generatedLine, + column: m.generatedColumn + }, + original: { + line: origPosInOldMap.line, + // map line + // use current column, since the oldMap produced by @vue/compiler-sfc + // does not + column: m.originalColumn + }, + source: origPosInOldMap.source, + name: origPosInOldMap.name + }); + }); + const generator = mergedMapGenerator; + oldMapConsumer.sources.forEach((sourceFile) => { + generator._sources.add(sourceFile); + const sourceContent = oldMapConsumer.sourceContentFor(sourceFile); + if (sourceContent != null) { + mergedMapGenerator.setSourceContent(sourceFile, sourceContent); + } + }); + generator._sourceRoot = oldMap.sourceRoot; + generator._file = oldMap.file; + return generator.toJSON(); +} +function patchErrors(errors, source, inMap) { + const originalSource = inMap.sourcesContent[0]; + const offset = originalSource.indexOf(source); + const lineOffset = originalSource.slice(0, offset).split(/\r?\n/).length - 1; + errors.forEach((err) => { + if (err.loc) { + err.loc.start.line += lineOffset; + err.loc.start.offset += offset; + if (err.loc.end !== err.loc.start) { + err.loc.end.line += lineOffset; + err.loc.end.offset += offset; + } + } + }); +} + +var picocolors = {exports: {}}; + +var hasRequiredPicocolors; + +function requirePicocolors () { + if (hasRequiredPicocolors) return picocolors.exports; + hasRequiredPicocolors = 1; + let p = browser$1 || {}, argv = p.argv || [], env = p.env || {}; + let isColorSupported = + !(!!env.NO_COLOR || argv.includes("--no-color")) && + (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || ((p.stdout || {}).isTTY && env.TERM !== "dumb") || !!env.CI); + + let formatter = (open, close, replace = open) => + input => { + let string = "" + input, index = string.indexOf(close, open.length); + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close + }; + + let replaceClose = (string, close, replace, index) => { + let result = "", cursor = 0; + do { + result += string.substring(cursor, index) + replace; + cursor = index + close.length; + index = string.indexOf(close, cursor); + } while (~index) + return result + string.substring(cursor) + }; + + let createColors = (enabled = isColorSupported) => { + let f = enabled ? formatter : () => String; + return { + isColorSupported: enabled, + reset: f("\x1b[0m", "\x1b[0m"), + bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"), + dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"), + italic: f("\x1b[3m", "\x1b[23m"), + underline: f("\x1b[4m", "\x1b[24m"), + inverse: f("\x1b[7m", "\x1b[27m"), + hidden: f("\x1b[8m", "\x1b[28m"), + strikethrough: f("\x1b[9m", "\x1b[29m"), + + black: f("\x1b[30m", "\x1b[39m"), + red: f("\x1b[31m", "\x1b[39m"), + green: f("\x1b[32m", "\x1b[39m"), + yellow: f("\x1b[33m", "\x1b[39m"), + blue: f("\x1b[34m", "\x1b[39m"), + magenta: f("\x1b[35m", "\x1b[39m"), + cyan: f("\x1b[36m", "\x1b[39m"), + white: f("\x1b[37m", "\x1b[39m"), + gray: f("\x1b[90m", "\x1b[39m"), + + bgBlack: f("\x1b[40m", "\x1b[49m"), + bgRed: f("\x1b[41m", "\x1b[49m"), + bgGreen: f("\x1b[42m", "\x1b[49m"), + bgYellow: f("\x1b[43m", "\x1b[49m"), + bgBlue: f("\x1b[44m", "\x1b[49m"), + bgMagenta: f("\x1b[45m", "\x1b[49m"), + bgCyan: f("\x1b[46m", "\x1b[49m"), + bgWhite: f("\x1b[47m", "\x1b[49m"), + + blackBright: f("\x1b[90m", "\x1b[39m"), + redBright: f("\x1b[91m", "\x1b[39m"), + greenBright: f("\x1b[92m", "\x1b[39m"), + yellowBright: f("\x1b[93m", "\x1b[39m"), + blueBright: f("\x1b[94m", "\x1b[39m"), + magentaBright: f("\x1b[95m", "\x1b[39m"), + cyanBright: f("\x1b[96m", "\x1b[39m"), + whiteBright: f("\x1b[97m", "\x1b[39m"), + + bgBlackBright: f("\x1b[100m", "\x1b[49m"), + bgRedBright: f("\x1b[101m", "\x1b[49m"), + bgGreenBright: f("\x1b[102m", "\x1b[49m"), + bgYellowBright: f("\x1b[103m", "\x1b[49m"), + bgBlueBright: f("\x1b[104m", "\x1b[49m"), + bgMagentaBright: f("\x1b[105m", "\x1b[49m"), + bgCyanBright: f("\x1b[106m", "\x1b[49m"), + bgWhiteBright: f("\x1b[107m", "\x1b[49m"), + } + }; + + picocolors.exports = createColors(); + picocolors.exports.createColors = createColors; + return picocolors.exports; +} + +var tokenize$1; +var hasRequiredTokenize$1; + +function requireTokenize$1 () { + if (hasRequiredTokenize$1) return tokenize$1; + hasRequiredTokenize$1 = 1; + + const SINGLE_QUOTE = "'".charCodeAt(0); + const DOUBLE_QUOTE = '"'.charCodeAt(0); + const BACKSLASH = '\\'.charCodeAt(0); + const SLASH = '/'.charCodeAt(0); + const NEWLINE = '\n'.charCodeAt(0); + const SPACE = ' '.charCodeAt(0); + const FEED = '\f'.charCodeAt(0); + const TAB = '\t'.charCodeAt(0); + const CR = '\r'.charCodeAt(0); + const OPEN_SQUARE = '['.charCodeAt(0); + const CLOSE_SQUARE = ']'.charCodeAt(0); + const OPEN_PARENTHESES = '('.charCodeAt(0); + const CLOSE_PARENTHESES = ')'.charCodeAt(0); + const OPEN_CURLY = '{'.charCodeAt(0); + const CLOSE_CURLY = '}'.charCodeAt(0); + const SEMICOLON = ';'.charCodeAt(0); + const ASTERISK = '*'.charCodeAt(0); + const COLON = ':'.charCodeAt(0); + const AT = '@'.charCodeAt(0); + + const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g; + const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g; + const RE_BAD_BRACKET = /.[\r\n"'(/\\]/; + const RE_HEX_ESCAPE = /[\da-f]/i; + + tokenize$1 = function tokenizer(input, options = {}) { + let css = input.css.valueOf(); + let ignore = options.ignoreErrors; + + let code, content, escape, next, quote; + let currentToken, escaped, escapePos, n, prev; + + let length = css.length; + let pos = 0; + let buffer = []; + let returned = []; + + function position() { + return pos + } + + function unclosed(what) { + throw input.error('Unclosed ' + what, pos) + } + + function endOfFile() { + return returned.length === 0 && pos >= length + } + + function nextToken(opts) { + if (returned.length) return returned.pop() + if (pos >= length) return + + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false; + + code = css.charCodeAt(pos); + + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos; + do { + next += 1; + code = css.charCodeAt(next); + } while ( + code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED + ) + + currentToken = ['space', css.slice(pos, next)]; + pos = next - 1; + break + } + + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code); + currentToken = [controlChar, controlChar, pos]; + break + } + + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : ''; + n = css.charCodeAt(pos + 1); + if ( + prev === 'url' && + n !== SINGLE_QUOTE && + n !== DOUBLE_QUOTE && + n !== SPACE && + n !== NEWLINE && + n !== TAB && + n !== FEED && + n !== CR + ) { + next = pos; + do { + escaped = false; + next = css.indexOf(')', next + 1); + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos; + break + } else { + unclosed('bracket'); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped) + + currentToken = ['brackets', css.slice(pos, next + 1), pos, next]; + + pos = next; + } else { + next = css.indexOf(')', pos + 1); + content = css.slice(pos, next + 1); + + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ['(', '(', pos]; + } else { + currentToken = ['brackets', content, pos, next]; + pos = next; + } + } + + break + } + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"'; + next = pos; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1; + break + } else { + unclosed('string'); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped) + + currentToken = ['string', css.slice(pos, next + 1), pos, next]; + pos = next; + break + } + + case AT: { + RE_AT_END.lastIndex = pos + 1; + RE_AT_END.test(css); + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_AT_END.lastIndex - 2; + } + + currentToken = ['at-word', css.slice(pos, next + 1), pos, next]; + + pos = next; + break + } + + case BACKSLASH: { + next = pos; + escape = true; + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1; + escape = !escape; + } + code = css.charCodeAt(next + 1); + if ( + escape && + code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED + ) { + next += 1; + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1; + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1; + } + } + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next]; + + pos = next; + break + } + + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf('*/', pos + 2) + 1; + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length; + } else { + unclosed('comment'); + } + } + + currentToken = ['comment', css.slice(pos, next + 1), pos, next]; + pos = next; + } else { + RE_WORD_END.lastIndex = pos + 1; + RE_WORD_END.test(css); + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_WORD_END.lastIndex - 2; + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next]; + buffer.push(currentToken); + pos = next; + } + + break + } + } + + pos++; + return currentToken + } + + function back(token) { + returned.push(token); + } + + return { + back, + endOfFile, + nextToken, + position + } + }; + return tokenize$1; +} + +var terminalHighlight_1; +var hasRequiredTerminalHighlight; + +function requireTerminalHighlight () { + if (hasRequiredTerminalHighlight) return terminalHighlight_1; + hasRequiredTerminalHighlight = 1; + + let pico = /*@__PURE__*/ requirePicocolors(); + + let tokenizer = /*@__PURE__*/ requireTokenize$1(); + + let Input; + + function registerInput(dependant) { + Input = dependant; + } + + const HIGHLIGHT_THEME = { + ';': pico.yellow, + ':': pico.yellow, + '(': pico.cyan, + ')': pico.cyan, + '[': pico.yellow, + ']': pico.yellow, + '{': pico.yellow, + '}': pico.yellow, + 'at-word': pico.cyan, + 'brackets': pico.cyan, + 'call': pico.cyan, + 'class': pico.yellow, + 'comment': pico.gray, + 'hash': pico.magenta, + 'string': pico.green + }; + + function getTokenType([type, value], processor) { + if (type === 'word') { + if (value[0] === '.') { + return 'class' + } + if (value[0] === '#') { + return 'hash' + } + } + + if (!processor.endOfFile()) { + let next = processor.nextToken(); + processor.back(next); + if (next[0] === 'brackets' || next[0] === '(') return 'call' + } + + return type + } + + function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }); + let result = ''; + while (!processor.endOfFile()) { + let token = processor.nextToken(); + let color = HIGHLIGHT_THEME[getTokenType(token, processor)]; + if (color) { + result += token[1] + .split(/\r?\n/) + .map(i => color(i)) + .join('\n'); + } else { + result += token[1]; + } + } + return result + } + + terminalHighlight.registerInput = registerInput; + + terminalHighlight_1 = terminalHighlight; + return terminalHighlight_1; +} + +var cssSyntaxError; +var hasRequiredCssSyntaxError; + +function requireCssSyntaxError () { + if (hasRequiredCssSyntaxError) return cssSyntaxError; + hasRequiredCssSyntaxError = 1; + + let pico = /*@__PURE__*/ requirePicocolors(); + + let terminalHighlight = /*@__PURE__*/ requireTerminalHighlight(); + + class CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message); + this.name = 'CssSyntaxError'; + this.reason = message; + + if (file) { + this.file = file; + } + if (source) { + this.source = source; + } + if (plugin) { + this.plugin = plugin; + } + if (typeof line !== 'undefined' && typeof column !== 'undefined') { + if (typeof line === 'number') { + this.line = line; + this.column = column; + } else { + this.line = line.line; + this.column = line.column; + this.endLine = column.line; + this.endColumn = column.column; + } + } + + this.setMessage(); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError); + } + } + + setMessage() { + this.message = this.plugin ? this.plugin + ': ' : ''; + this.message += this.file ? this.file : '<css input>'; + if (typeof this.line !== 'undefined') { + this.message += ':' + this.line + ':' + this.column; + } + this.message += ': ' + this.reason; + } + + showSourceCode(color) { + if (!this.source) return '' + + let css = this.source; + if (color == null) color = pico.isColorSupported; + + let aside = text => text; + let mark = text => text; + let highlight = text => text; + if (color) { + let { bold, gray, red } = pico.createColors(true); + mark = text => bold(red(text)); + aside = text => gray(text); + if (terminalHighlight) { + highlight = text => terminalHighlight(text); + } + } + + let lines = css.split(/\r?\n/); + let start = Math.max(this.line - 3, 0); + let end = Math.min(this.line + 2, lines.length); + let maxWidth = String(end).length; + + return lines + .slice(start, end) + .map((line, index) => { + let number = start + 1 + index; + let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '; + if (number === this.line) { + if (line.length > 160) { + let padding = 20; + let subLineStart = Math.max(0, this.column - padding); + let subLineEnd = Math.max( + this.column + padding, + this.endColumn + padding + ); + let subLine = line.slice(subLineStart, subLineEnd); + + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line + .slice(0, Math.min(this.column - 1, padding - 1)) + .replace(/[^\t]/g, ' '); + + return ( + mark('>') + + aside(gutter) + + highlight(subLine) + + '\n ' + + spacing + + mark('^') + ) + } + + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line.slice(0, this.column - 1).replace(/[^\t]/g, ' '); + + return ( + mark('>') + + aside(gutter) + + highlight(line) + + '\n ' + + spacing + + mark('^') + ) + } + + return ' ' + aside(gutter) + highlight(line) + }) + .join('\n') + } + + toString() { + let code = this.showSourceCode(); + if (code) { + code = '\n\n' + code + '\n'; + } + return this.name + ': ' + this.message + code + } + } + + cssSyntaxError = CssSyntaxError; + CssSyntaxError.default = CssSyntaxError; + return cssSyntaxError; +} + +var stringifier; +var hasRequiredStringifier; + +function requireStringifier () { + if (hasRequiredStringifier) return stringifier; + hasRequiredStringifier = 1; + + const DEFAULT_RAW = { + after: '\n', + beforeClose: '\n', + beforeComment: '\n', + beforeDecl: '\n', + beforeOpen: ' ', + beforeRule: '\n', + colon: ': ', + commentLeft: ' ', + commentRight: ' ', + emptyBody: '', + indent: ' ', + semicolon: false + }; + + function capitalize(str) { + return str[0].toUpperCase() + str.slice(1) + } + + class Stringifier { + constructor(builder) { + this.builder = builder; + } + + atrule(node, semicolon) { + let name = '@' + node.name; + let params = node.params ? this.rawValue(node, 'params') : ''; + + if (typeof node.raws.afterName !== 'undefined') { + name += node.raws.afterName; + } else if (params) { + name += ' '; + } + + if (node.nodes) { + this.block(node, name + params); + } else { + let end = (node.raws.between || '') + (semicolon ? ';' : ''); + this.builder(name + params + end, node); + } + } + + beforeAfter(node, detect) { + let value; + if (node.type === 'decl') { + value = this.raw(node, null, 'beforeDecl'); + } else if (node.type === 'comment') { + value = this.raw(node, null, 'beforeComment'); + } else if (detect === 'before') { + value = this.raw(node, null, 'beforeRule'); + } else { + value = this.raw(node, null, 'beforeClose'); + } + + let buf = node.parent; + let depth = 0; + while (buf && buf.type !== 'root') { + depth += 1; + buf = buf.parent; + } + + if (value.includes('\n')) { + let indent = this.raw(node, null, 'indent'); + if (indent.length) { + for (let step = 0; step < depth; step++) value += indent; + } + } + + return value + } + + block(node, start) { + let between = this.raw(node, 'between', 'beforeOpen'); + this.builder(start + between + '{', node, 'start'); + + let after; + if (node.nodes && node.nodes.length) { + this.body(node); + after = this.raw(node, 'after'); + } else { + after = this.raw(node, 'after', 'emptyBody'); + } + + if (after) this.builder(after); + this.builder('}', node, 'end'); + } + + body(node) { + let last = node.nodes.length - 1; + while (last > 0) { + if (node.nodes[last].type !== 'comment') break + last -= 1; + } + + let semicolon = this.raw(node, 'semicolon'); + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + let before = this.raw(child, 'before'); + if (before) this.builder(before); + this.stringify(child, last !== i || semicolon); + } + } + + comment(node) { + let left = this.raw(node, 'left', 'commentLeft'); + let right = this.raw(node, 'right', 'commentRight'); + this.builder('/*' + left + node.text + right + '*/', node); + } + + decl(node, semicolon) { + let between = this.raw(node, 'between', 'colon'); + let string = node.prop + between + this.rawValue(node, 'value'); + + if (node.important) { + string += node.raws.important || ' !important'; + } + + if (semicolon) string += ';'; + this.builder(string, node); + } + + document(node) { + this.body(node); + } + + raw(node, own, detect) { + let value; + if (!detect) detect = own; + + // Already had + if (own) { + value = node.raws[own]; + if (typeof value !== 'undefined') return value + } + + let parent = node.parent; + + if (detect === 'before') { + // Hack for first rule in CSS + if (!parent || (parent.type === 'root' && parent.first === node)) { + return '' + } + + // `root` nodes in `document` should use only their own raws + if (parent && parent.type === 'document') { + return '' + } + } + + // Floating child without parent + if (!parent) return DEFAULT_RAW[detect] + + // Detect style by other nodes + let root = node.root(); + if (!root.rawCache) root.rawCache = {}; + if (typeof root.rawCache[detect] !== 'undefined') { + return root.rawCache[detect] + } + + if (detect === 'before' || detect === 'after') { + return this.beforeAfter(node, detect) + } else { + let method = 'raw' + capitalize(detect); + if (this[method]) { + value = this[method](root, node); + } else { + root.walk(i => { + value = i.raws[own]; + if (typeof value !== 'undefined') return false + }); + } + } + + if (typeof value === 'undefined') value = DEFAULT_RAW[detect]; + + root.rawCache[detect] = value; + return value + } + + rawBeforeClose(root) { + let value; + root.walk(i => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== 'undefined') { + value = i.raws.after; + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, ''); + } + return false + } + } + }); + if (value) value = value.replace(/\S/g, ''); + return value + } + + rawBeforeComment(root, node) { + let value; + root.walkComments(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before; + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, ''); + } + return false + } + }); + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeDecl'); + } else if (value) { + value = value.replace(/\S/g, ''); + } + return value + } + + rawBeforeDecl(root, node) { + let value; + root.walkDecls(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before; + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, ''); + } + return false + } + }); + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeRule'); + } else if (value) { + value = value.replace(/\S/g, ''); + } + return value + } + + rawBeforeOpen(root) { + let value; + root.walk(i => { + if (i.type !== 'decl') { + value = i.raws.between; + if (typeof value !== 'undefined') return false + } + }); + return value + } + + rawBeforeRule(root) { + let value; + root.walk(i => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before; + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, ''); + } + return false + } + } + }); + if (value) value = value.replace(/\S/g, ''); + return value + } + + rawColon(root) { + let value; + root.walkDecls(i => { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, ''); + return false + } + }); + return value + } + + rawEmptyBody(root) { + let value; + root.walk(i => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after; + if (typeof value !== 'undefined') return false + } + }); + return value + } + + rawIndent(root) { + if (root.raws.indent) return root.raws.indent + let value; + root.walk(i => { + let p = i.parent; + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== 'undefined') { + let parts = i.raws.before.split('\n'); + value = parts[parts.length - 1]; + value = value.replace(/\S/g, ''); + return false + } + } + }); + return value + } + + rawSemicolon(root) { + let value; + root.walk(i => { + if (i.nodes && i.nodes.length && i.last.type === 'decl') { + value = i.raws.semicolon; + if (typeof value !== 'undefined') return false + } + }); + return value + } + + rawValue(node, prop) { + let value = node[prop]; + let raw = node.raws[prop]; + if (raw && raw.value === value) { + return raw.raw + } + + return value + } + + root(node) { + this.body(node); + if (node.raws.after) this.builder(node.raws.after); + } + + rule(node) { + this.block(node, this.rawValue(node, 'selector')); + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end'); + } + } + + stringify(node, semicolon) { + /* c8 ignore start */ + if (!this[node.type]) { + throw new Error( + 'Unknown AST node type ' + + node.type + + '. ' + + 'Maybe you need to change PostCSS stringifier.' + ) + } + /* c8 ignore stop */ + this[node.type](node, semicolon); + } + } + + stringifier = Stringifier; + Stringifier.default = Stringifier; + return stringifier; +} + +var stringify_1; +var hasRequiredStringify; + +function requireStringify () { + if (hasRequiredStringify) return stringify_1; + hasRequiredStringify = 1; + + let Stringifier = /*@__PURE__*/ requireStringifier(); + + function stringify(node, builder) { + let str = new Stringifier(builder); + str.stringify(node); + } + + stringify_1 = stringify; + stringify.default = stringify; + return stringify_1; +} + +var symbols = {}; + +var hasRequiredSymbols; + +function requireSymbols () { + if (hasRequiredSymbols) return symbols; + hasRequiredSymbols = 1; + + symbols.isClean = Symbol('isClean'); + + symbols.my = Symbol('my'); + return symbols; +} + +var node$2; +var hasRequiredNode$2; + +function requireNode$2 () { + if (hasRequiredNode$2) return node$2; + hasRequiredNode$2 = 1; + + let CssSyntaxError = /*@__PURE__*/ requireCssSyntaxError(); + let Stringifier = /*@__PURE__*/ requireStringifier(); + let stringify = /*@__PURE__*/ requireStringify(); + let { isClean, my } = /*@__PURE__*/ requireSymbols(); + + function cloneNode(obj, parent) { + let cloned = new obj.constructor(); + + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + /* c8 ignore next 2 */ + continue + } + if (i === 'proxyCache') continue + let value = obj[i]; + let type = typeof value; + + if (i === 'parent' && type === 'object') { + if (parent) cloned[i] = parent; + } else if (i === 'source') { + cloned[i] = value; + } else if (Array.isArray(value)) { + cloned[i] = value.map(j => cloneNode(j, cloned)); + } else { + if (type === 'object' && value !== null) value = cloneNode(value); + cloned[i] = value; + } + } + + return cloned + } + + function sourceOffset(inputCSS, position) { + // Not all custom syntaxes support `offset` in `source.start` and `source.end` + if (position && typeof position.offset !== 'undefined') { + return position.offset + } + + let column = 1; + let line = 1; + let offset = 0; + + for (let i = 0; i < inputCSS.length; i++) { + if (line === position.line && column === position.column) { + offset = i; + break + } + + if (inputCSS[i] === '\n') { + column = 1; + line += 1; + } else { + column += 1; + } + } + + return offset + } + + class Node { + get proxyOf() { + return this + } + + constructor(defaults = {}) { + this.raws = {}; + this[isClean] = false; + this[my] = true; + + for (let name in defaults) { + if (name === 'nodes') { + this.nodes = []; + for (let node of defaults[name]) { + if (typeof node.clone === 'function') { + this.append(node.clone()); + } else { + this.append(node); + } + } + } else { + this[name] = defaults[name]; + } + } + } + + addToError(error) { + error.postcssNode = this; + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source; + error.stack = error.stack.replace( + /\n\s{4}at /, + `$&${s.input.from}:${s.start.line}:${s.start.column}$&` + ); + } + return error + } + + after(add) { + this.parent.insertAfter(this, add); + return this + } + + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name]; + } + return this + } + + before(add) { + this.parent.insertBefore(this, add); + return this + } + + cleanRaws(keepBetween) { + delete this.raws.before; + delete this.raws.after; + if (!keepBetween) delete this.raws.between; + } + + clone(overrides = {}) { + let cloned = cloneNode(this); + for (let name in overrides) { + cloned[name] = overrides[name]; + } + return cloned + } + + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides); + this.parent.insertAfter(this, cloned); + return cloned + } + + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides); + this.parent.insertBefore(this, cloned); + return cloned + } + + error(message, opts = {}) { + if (this.source) { + let { end, start } = this.rangeBy(opts); + return this.source.input.error( + message, + { column: start.column, line: start.line }, + { column: end.column, line: end.line }, + opts + ) + } + return new CssSyntaxError(message) + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (prop === 'root') { + return () => node.root().toProxy() + } else { + return node[prop] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value; + if ( + prop === 'prop' || + prop === 'value' || + prop === 'name' || + prop === 'params' || + prop === 'important' || + /* c8 ignore next */ + prop === 'text' + ) { + node.markDirty(); + } + return true + } + } + } + + /* c8 ignore next 3 */ + markClean() { + this[isClean] = true; + } + + markDirty() { + if (this[isClean]) { + this[isClean] = false; + let next = this; + while ((next = next.parent)) { + next[isClean] = false; + } + } + } + + next() { + if (!this.parent) return undefined + let index = this.parent.index(this); + return this.parent.nodes[index + 1] + } + + positionBy(opts = {}) { + let pos = this.source.start; + if (opts.index) { + pos = this.positionInside(opts.index); + } else if (opts.word) { + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css; + let stringRepresentation = inputString.slice( + sourceOffset(inputString, this.source.start), + sourceOffset(inputString, this.source.end) + ); + let index = stringRepresentation.indexOf(opts.word); + if (index !== -1) pos = this.positionInside(index); + } + return pos + } + + positionInside(index) { + let column = this.source.start.column; + let line = this.source.start.line; + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css; + let offset = sourceOffset(inputString, this.source.start); + let end = offset + index; + + for (let i = offset; i < end; i++) { + if (inputString[i] === '\n') { + column = 1; + line += 1; + } else { + column += 1; + } + } + + return { column, line, offset: end } + } + + prev() { + if (!this.parent) return undefined + let index = this.parent.index(this); + return this.parent.nodes[index - 1] + } + + rangeBy(opts = {}) { + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css; + let start = { + column: this.source.start.column, + line: this.source.start.line, + offset: sourceOffset(inputString, this.source.start) + }; + let end = this.source.end + ? { + column: this.source.end.column + 1, + line: this.source.end.line, + offset: + typeof this.source.end.offset === 'number' + ? // `source.end.offset` is exclusive, so we don't need to add 1 + this.source.end.offset + : // Since line/column in this.source.end is inclusive, + // the `sourceOffset(... , this.source.end)` returns an inclusive offset. + // So, we add 1 to convert it to exclusive. + sourceOffset(inputString, this.source.end) + 1 + } + : { + column: start.column + 1, + line: start.line, + offset: start.offset + 1 + }; + + if (opts.word) { + let stringRepresentation = inputString.slice( + sourceOffset(inputString, this.source.start), + sourceOffset(inputString, this.source.end) + ); + let index = stringRepresentation.indexOf(opts.word); + if (index !== -1) { + start = this.positionInside(index); + end = this.positionInside(index + opts.word.length); + } + } else { + if (opts.start) { + start = { + column: opts.start.column, + line: opts.start.line, + offset: sourceOffset(inputString, opts.start) + }; + } else if (opts.index) { + start = this.positionInside(opts.index); + } + + if (opts.end) { + end = { + column: opts.end.column, + line: opts.end.line, + offset: sourceOffset(inputString, opts.end) + }; + } else if (typeof opts.endIndex === 'number') { + end = this.positionInside(opts.endIndex); + } else if (opts.index) { + end = this.positionInside(opts.index + 1); + } + } + + if ( + end.line < start.line || + (end.line === start.line && end.column <= start.column) + ) { + end = { + column: start.column + 1, + line: start.line, + offset: start.offset + 1 + }; + } + + return { end, start } + } + + raw(prop, defaultType) { + let str = new Stringifier(); + return str.raw(this, prop, defaultType) + } + + remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this + } + + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this; + let foundSelf = false; + for (let node of nodes) { + if (node === this) { + foundSelf = true; + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node); + bookmark = node; + } else { + this.parent.insertBefore(bookmark, node); + } + } + + if (!foundSelf) { + this.remove(); + } + } + + return this + } + + root() { + let result = this; + while (result.parent && result.parent.type !== 'document') { + result = result.parent; + } + return result + } + + toJSON(_, inputs) { + let fixed = {}; + let emitInputs = inputs == null; + inputs = inputs || new Map(); + let inputsNextIndex = 0; + + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + /* c8 ignore next 2 */ + continue + } + if (name === 'parent' || name === 'proxyCache') continue + let value = this[name]; + + if (Array.isArray(value)) { + fixed[name] = value.map(i => { + if (typeof i === 'object' && i.toJSON) { + return i.toJSON(null, inputs) + } else { + return i + } + }); + } else if (typeof value === 'object' && value.toJSON) { + fixed[name] = value.toJSON(null, inputs); + } else if (name === 'source') { + if (value == null) continue + let inputId = inputs.get(value.input); + if (inputId == null) { + inputId = inputsNextIndex; + inputs.set(value.input, inputsNextIndex); + inputsNextIndex++; + } + fixed[name] = { + end: value.end, + inputId, + start: value.start + }; + } else { + fixed[name] = value; + } + } + + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map(input => input.toJSON()); + } + + return fixed + } + + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()); + } + return this.proxyCache + } + + toString(stringifier = stringify) { + if (stringifier.stringify) stringifier = stringifier.stringify; + let result = ''; + stringifier(this, i => { + result += i; + }); + return result + } + + warn(result, text, opts = {}) { + let data = { node: this }; + for (let i in opts) data[i] = opts[i]; + return result.warn(text, data) + } + } + + node$2 = Node; + Node.default = Node; + return node$2; +} + +var comment$1; +var hasRequiredComment$1; + +function requireComment$1 () { + if (hasRequiredComment$1) return comment$1; + hasRequiredComment$1 = 1; + + let Node = /*@__PURE__*/ requireNode$2(); + + class Comment extends Node { + constructor(defaults) { + super(defaults); + this.type = 'comment'; + } + } + + comment$1 = Comment; + Comment.default = Comment; + return comment$1; +} + +var declaration; +var hasRequiredDeclaration; + +function requireDeclaration () { + if (hasRequiredDeclaration) return declaration; + hasRequiredDeclaration = 1; + + let Node = /*@__PURE__*/ requireNode$2(); + + class Declaration extends Node { + get variable() { + return this.prop.startsWith('--') || this.prop[0] === '$' + } + + constructor(defaults) { + if ( + defaults && + typeof defaults.value !== 'undefined' && + typeof defaults.value !== 'string' + ) { + defaults = { ...defaults, value: String(defaults.value) }; + } + super(defaults); + this.type = 'decl'; + } + } + + declaration = Declaration; + Declaration.default = Declaration; + return declaration; +} + +var container$1; +var hasRequiredContainer$1; + +function requireContainer$1 () { + if (hasRequiredContainer$1) return container$1; + hasRequiredContainer$1 = 1; + + let Comment = /*@__PURE__*/ requireComment$1(); + let Declaration = /*@__PURE__*/ requireDeclaration(); + let Node = /*@__PURE__*/ requireNode$2(); + let { isClean, my } = /*@__PURE__*/ requireSymbols(); + + let AtRule, parse, Root, Rule; + + function cleanSource(nodes) { + return nodes.map(i => { + if (i.nodes) i.nodes = cleanSource(i.nodes); + delete i.source; + return i + }) + } + + function markTreeDirty(node) { + node[isClean] = false; + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markTreeDirty(i); + } + } + } + + class Container extends Node { + get first() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[0] + } + + get last() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] + } + + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last); + for (let node of nodes) this.proxyOf.nodes.push(node); + } + + this.markDirty(); + + return this + } + + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween); + if (this.nodes) { + for (let node of this.nodes) node.cleanRaws(keepBetween); + } + } + + each(callback) { + if (!this.proxyOf.nodes) return undefined + let iterator = this.getIterator(); + + let index, result; + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator]; + result = callback(this.proxyOf.nodes[index], index); + if (result === false) break + + this.indexes[iterator] += 1; + } + + delete this.indexes[iterator]; + return result + } + + every(condition) { + return this.nodes.every(condition) + } + + getIterator() { + if (!this.lastEach) this.lastEach = 0; + if (!this.indexes) this.indexes = {}; + + this.lastEach += 1; + let iterator = this.lastEach; + this.indexes[iterator] = 0; + + return iterator + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (!node[prop]) { + return node[prop] + } else if ( + prop === 'each' || + (typeof prop === 'string' && prop.startsWith('walk')) + ) { + return (...args) => { + return node[prop]( + ...args.map(i => { + if (typeof i === 'function') { + return (child, index) => i(child.toProxy(), index) + } else { + return i + } + }) + ) + } + } else if (prop === 'every' || prop === 'some') { + return cb => { + return node[prop]((child, ...other) => + cb(child.toProxy(), ...other) + ) + } + } else if (prop === 'root') { + return () => node.root().toProxy() + } else if (prop === 'nodes') { + return node.nodes.map(i => i.toProxy()) + } else if (prop === 'first' || prop === 'last') { + return node[prop].toProxy() + } else { + return node[prop] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value; + if (prop === 'name' || prop === 'params' || prop === 'selector') { + node.markDirty(); + } + return true + } + } + } + + index(child) { + if (typeof child === 'number') return child + if (child.proxyOf) child = child.proxyOf; + return this.proxyOf.nodes.indexOf(child) + } + + insertAfter(exist, add) { + let existIndex = this.index(exist); + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse(); + existIndex = this.index(exist); + for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node); + + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (existIndex < index) { + this.indexes[id] = index + nodes.length; + } + } + + this.markDirty(); + + return this + } + + insertBefore(exist, add) { + let existIndex = this.index(exist); + let type = existIndex === 0 ? 'prepend' : false; + let nodes = this.normalize( + add, + this.proxyOf.nodes[existIndex], + type + ).reverse(); + existIndex = this.index(exist); + for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node); + + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (existIndex <= index) { + this.indexes[id] = index + nodes.length; + } + } + + this.markDirty(); + + return this + } + + normalize(nodes, sample) { + if (typeof nodes === 'string') { + nodes = cleanSource(parse(nodes).nodes); + } else if (typeof nodes === 'undefined') { + nodes = []; + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0); + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore'); + } + } else if (nodes.type === 'root' && this.type !== 'document') { + nodes = nodes.nodes.slice(0); + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore'); + } + } else if (nodes.type) { + nodes = [nodes]; + } else if (nodes.prop) { + if (typeof nodes.value === 'undefined') { + throw new Error('Value field is missed in node creation') + } else if (typeof nodes.value !== 'string') { + nodes.value = String(nodes.value); + } + nodes = [new Declaration(nodes)]; + } else if (nodes.selector || nodes.selectors) { + nodes = [new Rule(nodes)]; + } else if (nodes.name) { + nodes = [new AtRule(nodes)]; + } else if (nodes.text) { + nodes = [new Comment(nodes)]; + } else { + throw new Error('Unknown node type in node creation') + } + + let processed = nodes.map(i => { + /* c8 ignore next */ + if (!i[my]) Container.rebuild(i); + i = i.proxyOf; + if (i.parent) i.parent.removeChild(i); + if (i[isClean]) markTreeDirty(i); + + if (!i.raws) i.raws = {}; + if (typeof i.raws.before === 'undefined') { + if (sample && typeof sample.raws.before !== 'undefined') { + i.raws.before = sample.raws.before.replace(/\S/g, ''); + } + } + i.parent = this.proxyOf; + return i + }); + + return processed + } + + prepend(...children) { + children = children.reverse(); + for (let child of children) { + let nodes = this.normalize(child, this.first, 'prepend').reverse(); + for (let node of nodes) this.proxyOf.nodes.unshift(node); + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length; + } + } + + this.markDirty(); + + return this + } + + push(child) { + child.parent = this; + this.proxyOf.nodes.push(child); + return this + } + + removeAll() { + for (let node of this.proxyOf.nodes) node.parent = undefined; + this.proxyOf.nodes = []; + + this.markDirty(); + + return this + } + + removeChild(child) { + child = this.index(child); + this.proxyOf.nodes[child].parent = undefined; + this.proxyOf.nodes.splice(child, 1); + + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + + this.markDirty(); + + return this + } + + replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts; + opts = {}; + } + + this.walkDecls(decl => { + if (opts.props && !opts.props.includes(decl.prop)) return + if (opts.fast && !decl.value.includes(opts.fast)) return + + decl.value = decl.value.replace(pattern, callback); + }); + + this.markDirty(); + + return this + } + + some(condition) { + return this.nodes.some(condition) + } + + walk(callback) { + return this.each((child, i) => { + let result; + try { + result = callback(child, i); + } catch (e) { + throw child.addToError(e) + } + if (result !== false && child.walk) { + result = child.walk(callback); + } + + return result + }) + } + + walkAtRules(name, callback) { + if (!callback) { + callback = name; + return this.walk((child, i) => { + if (child.type === 'atrule') { + return callback(child, i) + } + }) + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'atrule' && name.test(child.name)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'atrule' && child.name === name) { + return callback(child, i) + } + }) + } + + walkComments(callback) { + return this.walk((child, i) => { + if (child.type === 'comment') { + return callback(child, i) + } + }) + } + + walkDecls(prop, callback) { + if (!callback) { + callback = prop; + return this.walk((child, i) => { + if (child.type === 'decl') { + return callback(child, i) + } + }) + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'decl' && prop.test(child.prop)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'decl' && child.prop === prop) { + return callback(child, i) + } + }) + } + + walkRules(selector, callback) { + if (!callback) { + callback = selector; + + return this.walk((child, i) => { + if (child.type === 'rule') { + return callback(child, i) + } + }) + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'rule' && selector.test(child.selector)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'rule' && child.selector === selector) { + return callback(child, i) + } + }) + } + } + + Container.registerParse = dependant => { + parse = dependant; + }; + + Container.registerRule = dependant => { + Rule = dependant; + }; + + Container.registerAtRule = dependant => { + AtRule = dependant; + }; + + Container.registerRoot = dependant => { + Root = dependant; + }; + + container$1 = Container; + Container.default = Container; + + /* c8 ignore start */ + Container.rebuild = node => { + if (node.type === 'atrule') { + Object.setPrototypeOf(node, AtRule.prototype); + } else if (node.type === 'rule') { + Object.setPrototypeOf(node, Rule.prototype); + } else if (node.type === 'decl') { + Object.setPrototypeOf(node, Declaration.prototype); + } else if (node.type === 'comment') { + Object.setPrototypeOf(node, Comment.prototype); + } else if (node.type === 'root') { + Object.setPrototypeOf(node, Root.prototype); + } + + node[my] = true; + + if (node.nodes) { + node.nodes.forEach(child => { + Container.rebuild(child); + }); + } + }; + /* c8 ignore stop */ + return container$1; +} + +var atRule; +var hasRequiredAtRule; + +function requireAtRule () { + if (hasRequiredAtRule) return atRule; + hasRequiredAtRule = 1; + + let Container = /*@__PURE__*/ requireContainer$1(); + + class AtRule extends Container { + constructor(defaults) { + super(defaults); + this.type = 'atrule'; + } + + append(...children) { + if (!this.proxyOf.nodes) this.nodes = []; + return super.append(...children) + } + + prepend(...children) { + if (!this.proxyOf.nodes) this.nodes = []; + return super.prepend(...children) + } + } + + atRule = AtRule; + AtRule.default = AtRule; + + Container.registerAtRule(AtRule); + return atRule; +} + +var document; +var hasRequiredDocument; + +function requireDocument () { + if (hasRequiredDocument) return document; + hasRequiredDocument = 1; + + let Container = /*@__PURE__*/ requireContainer$1(); + + let LazyResult, Processor; + + class Document extends Container { + constructor(defaults) { + // type needs to be passed to super, otherwise child roots won't be normalized correctly + super({ type: 'document', ...defaults }); + + if (!this.nodes) { + this.nodes = []; + } + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts); + + return lazy.stringify() + } + } + + Document.registerLazyResult = dependant => { + LazyResult = dependant; + }; + + Document.registerProcessor = dependant => { + Processor = dependant; + }; + + document = Document; + Document.default = Document; + return document; +} + +var nonSecure; +var hasRequiredNonSecure; + +function requireNonSecure () { + if (hasRequiredNonSecure) return nonSecure; + hasRequiredNonSecure = 1; + // This alphabet uses `A-Za-z0-9_-` symbols. + // The order of characters is optimized for better gzip and brotli compression. + // References to the same file (works both for gzip and brotli): + // `'use`, `andom`, and `rict'` + // References to the brotli default dictionary: + // `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf` + let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'; + + let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = ''; + // A compact alternative for `for (var i = 0; i < step; i++)`. + let i = size | 0; + while (i--) { + // `| 0` is more compact and faster than `Math.floor()`. + id += alphabet[(Math.random() * alphabet.length) | 0]; + } + return id + } + }; + + let nanoid = (size = 21) => { + let id = ''; + // A compact alternative for `for (var i = 0; i < step; i++)`. + let i = size | 0; + while (i--) { + // `| 0` is more compact and faster than `Math.floor()`. + id += urlAlphabet[(Math.random() * 64) | 0]; + } + return id + }; + + nonSecure = { nanoid, customAlphabet }; + return nonSecure; +} + +var require$$2 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_url$1); + +var previousMap; +var hasRequiredPreviousMap; + +function requirePreviousMap () { + if (hasRequiredPreviousMap) return previousMap; + hasRequiredPreviousMap = 1; + + let { existsSync, readFileSync } = require$$0$1; + let { dirname, join } = require$$1; + let { SourceMapConsumer, SourceMapGenerator } = /*@__PURE__*/ requireSourceMap$1(); + + function fromBase64(str) { + if (Buffer$1) { + return Buffer$1.from(str, 'base64').toString() + } else { + /* c8 ignore next 2 */ + return window.atob(str) + } + } + + class PreviousMap { + constructor(css, opts) { + if (opts.map === false) return + this.loadAnnotation(css); + this.inline = this.startWith(this.annotation, 'data:'); + + let prev = opts.map ? opts.map.prev : undefined; + let text = this.loadMap(opts.from, prev); + if (!this.mapFile && opts.from) { + this.mapFile = opts.from; + } + if (this.mapFile) this.root = dirname(this.mapFile); + if (text) this.text = text; + } + + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text); + } + return this.consumerCache + } + + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/; + let baseUri = /^data:application\/json;base64,/; + let charsetUri = /^data:application\/json;charset=utf-?8,/; + let uri = /^data:application\/json,/; + + let uriMatch = text.match(charsetUri) || text.match(uri); + if (uriMatch) { + return decodeURIComponent(text.substr(uriMatch[0].length)) + } + + let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri); + if (baseUriMatch) { + return fromBase64(text.substr(baseUriMatch[0].length)) + } + + let encoding = text.match(/data:application\/json;([^,]+),/)[1]; + throw new Error('Unsupported source map encoding ' + encoding) + } + + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() + } + + isMap(map) { + if (typeof map !== 'object') return false + return ( + typeof map.mappings === 'string' || + typeof map._mappings === 'string' || + Array.isArray(map.sections) + ) + } + + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/g); + if (!comments) return + + // sourceMappingURLs from comments, strings, etc. + let start = css.lastIndexOf(comments.pop()); + let end = css.indexOf('*/', start); + + if (start > -1 && end > -1) { + // Locate the last sourceMappingURL to avoid pickin + this.annotation = this.getAnnotationURL(css.substring(start, end)); + } + } + + loadFile(path) { + this.root = dirname(path); + if (existsSync(path)) { + this.mapFile = path; + return readFileSync(path, 'utf-8').toString().trim() + } + } + + loadMap(file, prev) { + if (prev === false) return false + + if (prev) { + if (typeof prev === 'string') { + return prev + } else if (typeof prev === 'function') { + let prevPath = prev(file); + if (prevPath) { + let map = this.loadFile(prevPath); + if (!map) { + throw new Error( + 'Unable to load previous source map: ' + prevPath.toString() + ) + } + return map + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString() + } else if (prev instanceof SourceMapGenerator) { + return prev.toString() + } else if (this.isMap(prev)) { + return JSON.stringify(prev) + } else { + throw new Error( + 'Unsupported previous source map format: ' + prev.toString() + ) + } + } else if (this.inline) { + return this.decodeInline(this.annotation) + } else if (this.annotation) { + let map = this.annotation; + if (file) map = join(dirname(file), map); + return this.loadFile(map) + } + } + + startWith(string, start) { + if (!string) return false + return string.substr(0, start.length) === start + } + + withContent() { + return !!( + this.consumer().sourcesContent && + this.consumer().sourcesContent.length > 0 + ) + } + } + + previousMap = PreviousMap; + PreviousMap.default = PreviousMap; + return previousMap; +} + +var input; +var hasRequiredInput; + +function requireInput () { + if (hasRequiredInput) return input; + hasRequiredInput = 1; + + let { nanoid } = /*@__PURE__*/ requireNonSecure(); + let { isAbsolute, resolve } = require$$1; + let { SourceMapConsumer, SourceMapGenerator } = /*@__PURE__*/ requireSourceMap$1(); + let { fileURLToPath, pathToFileURL } = require$$2; + + let CssSyntaxError = /*@__PURE__*/ requireCssSyntaxError(); + let PreviousMap = /*@__PURE__*/ requirePreviousMap(); + let terminalHighlight = /*@__PURE__*/ requireTerminalHighlight(); + + let lineToIndexCache = Symbol('lineToIndexCache'); + + let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); + let pathAvailable = Boolean(resolve && isAbsolute); + + function getLineToIndex(input) { + if (input[lineToIndexCache]) return input[lineToIndexCache] + let lines = input.css.split('\n'); + let lineToIndex = new Array(lines.length); + let prevIndex = 0; + + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex; + prevIndex += lines[i].length + 1; + } + + input[lineToIndexCache] = lineToIndex; + return lineToIndex + } + + class Input { + get from() { + return this.file || this.id + } + + constructor(css, opts = {}) { + if ( + css === null || + typeof css === 'undefined' || + (typeof css === 'object' && !css.toString) + ) { + throw new Error(`PostCSS received ${css} instead of CSS string`) + } + + this.css = css.toString(); + + if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { + this.hasBOM = true; + this.css = this.css.slice(1); + } else { + this.hasBOM = false; + } + + this.document = this.css; + if (opts.document) this.document = opts.document.toString(); + + if (opts.from) { + if ( + !pathAvailable || + /^\w+:\/\//.test(opts.from) || + isAbsolute(opts.from) + ) { + this.file = opts.from; + } else { + this.file = resolve(opts.from); + } + } + + if (pathAvailable && sourceMapAvailable) { + let map = new PreviousMap(this.css, opts); + if (map.text) { + this.map = map; + let file = map.consumer().file; + if (!this.file && file) this.file = this.mapResolve(file); + } + } + + if (!this.file) { + this.id = '<input css ' + nanoid(6) + '>'; + } + if (this.map) this.map.file = this.from; + } + + error(message, line, column, opts = {}) { + let endColumn, endLine, endOffset, offset, result; + + if (line && typeof line === 'object') { + let start = line; + let end = column; + if (typeof start.offset === 'number') { + offset = start.offset; + let pos = this.fromOffset(offset); + line = pos.line; + column = pos.col; + } else { + line = start.line; + column = start.column; + offset = this.fromLineAndColumn(line, column); + } + if (typeof end.offset === 'number') { + endOffset = end.offset; + let pos = this.fromOffset(endOffset); + endLine = pos.line; + endColumn = pos.col; + } else { + endLine = end.line; + endColumn = end.column; + endOffset = this.fromLineAndColumn(end.line, end.column); + } + } else if (!column) { + offset = line; + let pos = this.fromOffset(offset); + line = pos.line; + column = pos.col; + } else { + offset = this.fromLineAndColumn(line, column); + } + + let origin = this.origin(line, column, endLine, endColumn); + if (origin) { + result = new CssSyntaxError( + message, + origin.endLine === undefined + ? origin.line + : { column: origin.column, line: origin.line }, + origin.endLine === undefined + ? origin.column + : { column: origin.endColumn, line: origin.endLine }, + origin.source, + origin.file, + opts.plugin + ); + } else { + result = new CssSyntaxError( + message, + endLine === undefined ? line : { column, line }, + endLine === undefined ? column : { column: endColumn, line: endLine }, + this.css, + this.file, + opts.plugin + ); + } + + result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css }; + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString(); + } + result.input.file = this.file; + } + + return result + } + + fromLineAndColumn(line, column) { + let lineToIndex = getLineToIndex(this); + let index = lineToIndex[line - 1]; + return index + column - 1 + } + + fromOffset(offset) { + let lineToIndex = getLineToIndex(this); + let lastLine = lineToIndex[lineToIndex.length - 1]; + + let min = 0; + if (offset >= lastLine) { + min = lineToIndex.length - 1; + } else { + let max = lineToIndex.length - 2; + let mid; + while (min < max) { + mid = min + ((max - min) >> 1); + if (offset < lineToIndex[mid]) { + max = mid - 1; + } else if (offset >= lineToIndex[mid + 1]) { + min = mid + 1; + } else { + min = mid; + break + } + } + } + return { + col: offset - lineToIndex[min] + 1, + line: min + 1 + } + } + + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file + } + return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) + } + + origin(line, column, endLine, endColumn) { + if (!this.map) return false + let consumer = this.map.consumer(); + + let from = consumer.originalPositionFor({ column, line }); + if (!from.source) return false + + let to; + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ column: endColumn, line: endLine }); + } + + let fromUrl; + + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source); + } else { + fromUrl = new URL( + from.source, + this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) + ); + } + + let result = { + column: from.column, + endColumn: to && to.column, + endLine: to && to.line, + line: from.line, + url: fromUrl.toString() + }; + + if (fromUrl.protocol === 'file:') { + if (fileURLToPath) { + result.file = fileURLToPath(fromUrl); + } else { + /* c8 ignore next 2 */ + throw new Error(`file: protocol is not available in this PostCSS build`) + } + } + + let source = consumer.sourceContentFor(from.source); + if (source) result.source = source; + + return result + } + + toJSON() { + let json = {}; + for (let name of ['hasBOM', 'css', 'file', 'id']) { + if (this[name] != null) { + json[name] = this[name]; + } + } + if (this.map) { + json.map = { ...this.map }; + if (json.map.consumerCache) { + json.map.consumerCache = undefined; + } + } + return json + } + } + + input = Input; + Input.default = Input; + + if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input); + } + return input; +} + +var root$1; +var hasRequiredRoot$1; + +function requireRoot$1 () { + if (hasRequiredRoot$1) return root$1; + hasRequiredRoot$1 = 1; + + let Container = /*@__PURE__*/ requireContainer$1(); + + let LazyResult, Processor; + + class Root extends Container { + constructor(defaults) { + super(defaults); + this.type = 'root'; + if (!this.nodes) this.nodes = []; + } + + normalize(child, sample, type) { + let nodes = super.normalize(child); + + if (sample) { + if (type === 'prepend') { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before; + } else { + delete sample.raws.before; + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before; + } + } + } + + return nodes + } + + removeChild(child, ignore) { + let index = this.index(child); + + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before; + } + + return super.removeChild(child) + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts); + return lazy.stringify() + } + } + + Root.registerLazyResult = dependant => { + LazyResult = dependant; + }; + + Root.registerProcessor = dependant => { + Processor = dependant; + }; + + root$1 = Root; + Root.default = Root; + + Container.registerRoot(Root); + return root$1; +} + +var list_1; +var hasRequiredList; + +function requireList () { + if (hasRequiredList) return list_1; + hasRequiredList = 1; + + let list = { + comma(string) { + return list.split(string, [','], true) + }, + + space(string) { + let spaces = [' ', '\n', '\t']; + return list.split(string, spaces) + }, + + split(string, separators, last) { + let array = []; + let current = ''; + let split = false; + + let func = 0; + let inQuote = false; + let prevQuote = ''; + let escape = false; + + for (let letter of string) { + if (escape) { + escape = false; + } else if (letter === '\\') { + escape = true; + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false; + } + } else if (letter === '"' || letter === "'") { + inQuote = true; + prevQuote = letter; + } else if (letter === '(') { + func += 1; + } else if (letter === ')') { + if (func > 0) func -= 1; + } else if (func === 0) { + if (separators.includes(letter)) split = true; + } + + if (split) { + if (current !== '') array.push(current.trim()); + current = ''; + split = false; + } else { + current += letter; + } + } + + if (last || current !== '') array.push(current.trim()); + return array + } + }; + + list_1 = list; + list.default = list; + return list_1; +} + +var rule; +var hasRequiredRule; + +function requireRule () { + if (hasRequiredRule) return rule; + hasRequiredRule = 1; + + let Container = /*@__PURE__*/ requireContainer$1(); + let list = /*@__PURE__*/ requireList(); + + class Rule extends Container { + get selectors() { + return list.comma(this.selector) + } + + set selectors(values) { + let match = this.selector ? this.selector.match(/,\s*/) : null; + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen'); + this.selector = values.join(sep); + } + + constructor(defaults) { + super(defaults); + this.type = 'rule'; + if (!this.nodes) this.nodes = []; + } + } + + rule = Rule; + Rule.default = Rule; + + Container.registerRule(Rule); + return rule; +} + +var fromJSON_1; +var hasRequiredFromJSON; + +function requireFromJSON () { + if (hasRequiredFromJSON) return fromJSON_1; + hasRequiredFromJSON = 1; + + let AtRule = /*@__PURE__*/ requireAtRule(); + let Comment = /*@__PURE__*/ requireComment$1(); + let Declaration = /*@__PURE__*/ requireDeclaration(); + let Input = /*@__PURE__*/ requireInput(); + let PreviousMap = /*@__PURE__*/ requirePreviousMap(); + let Root = /*@__PURE__*/ requireRoot$1(); + let Rule = /*@__PURE__*/ requireRule(); + + function fromJSON(json, inputs) { + if (Array.isArray(json)) return json.map(n => fromJSON(n)) + + let { inputs: ownInputs, ...defaults } = json; + if (ownInputs) { + inputs = []; + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype }; + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + }; + } + inputs.push(inputHydrated); + } + } + if (defaults.nodes) { + defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)); + } + if (defaults.source) { + let { inputId, ...source } = defaults.source; + defaults.source = source; + if (inputId != null) { + defaults.source.input = inputs[inputId]; + } + } + if (defaults.type === 'root') { + return new Root(defaults) + } else if (defaults.type === 'decl') { + return new Declaration(defaults) + } else if (defaults.type === 'rule') { + return new Rule(defaults) + } else if (defaults.type === 'comment') { + return new Comment(defaults) + } else if (defaults.type === 'atrule') { + return new AtRule(defaults) + } else { + throw new Error('Unknown node type: ' + json.type) + } + } + + fromJSON_1 = fromJSON; + fromJSON.default = fromJSON; + return fromJSON_1; +} + +var mapGenerator; +var hasRequiredMapGenerator; + +function requireMapGenerator () { + if (hasRequiredMapGenerator) return mapGenerator; + hasRequiredMapGenerator = 1; + + let { dirname, relative, resolve, sep } = require$$1; + let { SourceMapConsumer, SourceMapGenerator } = /*@__PURE__*/ requireSourceMap$1(); + let { pathToFileURL } = require$$2; + + let Input = /*@__PURE__*/ requireInput(); + + let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); + let pathAvailable = Boolean(dirname && resolve && relative && sep); + + class MapGenerator { + constructor(stringify, root, opts, cssString) { + this.stringify = stringify; + this.mapOpts = opts.map || {}; + this.root = root; + this.opts = opts; + this.css = cssString; + this.originalCSS = cssString; + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; + + this.memoizedFileURLs = new Map(); + this.memoizedPaths = new Map(); + this.memoizedURLs = new Map(); + } + + addAnnotation() { + let content; + + if (this.isInline()) { + content = + 'data:application/json;base64,' + this.toBase64(this.map.toString()); + } else if (typeof this.mapOpts.annotation === 'string') { + content = this.mapOpts.annotation; + } else if (typeof this.mapOpts.annotation === 'function') { + content = this.mapOpts.annotation(this.opts.to, this.root); + } else { + content = this.outputFile() + '.map'; + } + let eol = '\n'; + if (this.css.includes('\r\n')) eol = '\r\n'; + + this.css += eol + '/*# sourceMappingURL=' + content + ' */'; + } + + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)); + let root = prev.root || dirname(prev.file); + let map; + + if (this.mapOpts.sourcesContent === false) { + map = new SourceMapConsumer(prev.text); + if (map.sourcesContent) { + map.sourcesContent = null; + } + } else { + map = prev.consumer(); + } + + this.map.applySourceMap(map, from, this.toUrl(this.path(root))); + } + } + + clearAnnotation() { + if (this.mapOpts.annotation === false) return + + if (this.root) { + let node; + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i]; + if (node.type !== 'comment') continue + if (node.text.startsWith('# sourceMappingURL=')) { + this.root.removeChild(i); + } + } + } else if (this.css) { + this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, ''); + } + } + + generate() { + this.clearAnnotation(); + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap() + } else { + let result = ''; + this.stringify(this.root, i => { + result += i; + }); + return [result] + } + } + + generateMap() { + if (this.root) { + this.generateString(); + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer(); + prev.file = this.outputFile(); + this.map = SourceMapGenerator.fromSourceMap(prev, { + ignoreInvalidMapping: true + }); + } else { + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }); + this.map.addMapping({ + generated: { column: 0, line: 1 }, + original: { column: 0, line: 1 }, + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '<no source>' + }); + } + + if (this.isSourcesContent()) this.setSourcesContent(); + if (this.root && this.previous().length > 0) this.applyPrevMaps(); + if (this.isAnnotation()) this.addAnnotation(); + + if (this.isInline()) { + return [this.css] + } else { + return [this.css, this.map] + } + } + + generateString() { + this.css = ''; + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }); + + let line = 1; + let column = 1; + + let noSource = '<no source>'; + let mapping = { + generated: { column: 0, line: 0 }, + original: { column: 0, line: 0 }, + source: '' + }; + + let last, lines; + this.stringify(this.root, (str, node, type) => { + this.css += str; + + if (node && type !== 'end') { + mapping.generated.line = line; + mapping.generated.column = column - 1; + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node); + mapping.original.line = node.source.start.line; + mapping.original.column = node.source.start.column - 1; + this.map.addMapping(mapping); + } else { + mapping.source = noSource; + mapping.original.line = 1; + mapping.original.column = 0; + this.map.addMapping(mapping); + } + } + + lines = str.match(/\n/g); + if (lines) { + line += lines.length; + last = str.lastIndexOf('\n'); + column = str.length - last; + } else { + column += str.length; + } + + if (node && type !== 'start') { + let p = node.parent || { raws: {} }; + let childless = + node.type === 'decl' || (node.type === 'atrule' && !node.nodes); + if (!childless || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node); + mapping.original.line = node.source.end.line; + mapping.original.column = node.source.end.column - 1; + mapping.generated.line = line; + mapping.generated.column = column - 2; + this.map.addMapping(mapping); + } else { + mapping.source = noSource; + mapping.original.line = 1; + mapping.original.column = 0; + mapping.generated.line = line; + mapping.generated.column = column - 1; + this.map.addMapping(mapping); + } + } + } + }); + } + + isAnnotation() { + if (this.isInline()) { + return true + } + if (typeof this.mapOpts.annotation !== 'undefined') { + return this.mapOpts.annotation + } + if (this.previous().length) { + return this.previous().some(i => i.annotation) + } + return true + } + + isInline() { + if (typeof this.mapOpts.inline !== 'undefined') { + return this.mapOpts.inline + } + + let annotation = this.mapOpts.annotation; + if (typeof annotation !== 'undefined' && annotation !== true) { + return false + } + + if (this.previous().length) { + return this.previous().some(i => i.inline) + } + return true + } + + isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map + } + return this.previous().length > 0 + } + + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent + } + if (this.previous().length) { + return this.previous().some(i => i.withContent()) + } + return true + } + + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to) + } else if (this.opts.from) { + return this.path(this.opts.from) + } else { + return 'to.css' + } + } + + path(file) { + if (this.mapOpts.absolute) return file + if (file.charCodeAt(0) === 60 /* `<` */) return file + if (/^\w+:\/\//.test(file)) return file + let cached = this.memoizedPaths.get(file); + if (cached) return cached + + let from = this.opts.to ? dirname(this.opts.to) : '.'; + + if (typeof this.mapOpts.annotation === 'string') { + from = dirname(resolve(from, this.mapOpts.annotation)); + } + + let path = relative(from, file); + this.memoizedPaths.set(file, path); + + return path + } + + previous() { + if (!this.previousMaps) { + this.previousMaps = []; + if (this.root) { + this.root.walk(node => { + if (node.source && node.source.input.map) { + let map = node.source.input.map; + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map); + } + } + }); + } else { + let input = new Input(this.originalCSS, this.opts); + if (input.map) this.previousMaps.push(input.map); + } + } + + return this.previousMaps + } + + setSourcesContent() { + let already = {}; + if (this.root) { + this.root.walk(node => { + if (node.source) { + let from = node.source.input.from; + if (from && !already[from]) { + already[from] = true; + let fromUrl = this.usesFileUrls + ? this.toFileUrl(from) + : this.toUrl(this.path(from)); + this.map.setSourceContent(fromUrl, node.source.input.css); + } + } + }); + } else if (this.css) { + let from = this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '<no source>'; + this.map.setSourceContent(from, this.css); + } + } + + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from) + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from) + } else { + return this.toUrl(this.path(node.source.input.from)) + } + } + + toBase64(str) { + if (Buffer$1) { + return Buffer$1.from(str).toString('base64') + } else { + return window.btoa(unescape(encodeURIComponent(str))) + } + } + + toFileUrl(path) { + let cached = this.memoizedFileURLs.get(path); + if (cached) return cached + + if (pathToFileURL) { + let fileURL = pathToFileURL(path).toString(); + this.memoizedFileURLs.set(path, fileURL); + + return fileURL + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + + toUrl(path) { + let cached = this.memoizedURLs.get(path); + if (cached) return cached + + if (sep === '\\') { + path = path.replace(/\\/g, '/'); + } + + let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent); + this.memoizedURLs.set(path, url); + + return url + } + } + + mapGenerator = MapGenerator; + return mapGenerator; +} + +var parser$1; +var hasRequiredParser$1; + +function requireParser$1 () { + if (hasRequiredParser$1) return parser$1; + hasRequiredParser$1 = 1; + + let AtRule = /*@__PURE__*/ requireAtRule(); + let Comment = /*@__PURE__*/ requireComment$1(); + let Declaration = /*@__PURE__*/ requireDeclaration(); + let Root = /*@__PURE__*/ requireRoot$1(); + let Rule = /*@__PURE__*/ requireRule(); + let tokenizer = /*@__PURE__*/ requireTokenize$1(); + + const SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true + }; + + function findLastWithPosition(tokens) { + for (let i = tokens.length - 1; i >= 0; i--) { + let token = tokens[i]; + let pos = token[3] || token[2]; + if (pos) return pos + } + } + + class Parser { + constructor(input) { + this.input = input; + + this.root = new Root(); + this.current = this.root; + this.spaces = ''; + this.semicolon = false; + + this.createTokenizer(); + this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }; + } + + atrule(token) { + let node = new AtRule(); + node.name = token[1].slice(1); + if (node.name === '') { + this.unnamedAtrule(node, token); + } + this.init(node, token[2]); + + let type; + let prev; + let shift; + let last = false; + let open = false; + let params = []; + let brackets = []; + + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + type = token[0]; + + if (type === '(' || type === '[') { + brackets.push(type === '(' ? ')' : ']'); + } else if (type === '{' && brackets.length > 0) { + brackets.push('}'); + } else if (type === brackets[brackets.length - 1]) { + brackets.pop(); + } + + if (brackets.length === 0) { + if (type === ';') { + node.source.end = this.getPosition(token[2]); + node.source.end.offset++; + this.semicolon = true; + break + } else if (type === '{') { + open = true; + break + } else if (type === '}') { + if (params.length > 0) { + shift = params.length - 1; + prev = params[shift]; + while (prev && prev[0] === 'space') { + prev = params[--shift]; + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]); + node.source.end.offset++; + } + } + this.end(token); + break + } else { + params.push(token); + } + } else { + params.push(token); + } + + if (this.tokenizer.endOfFile()) { + last = true; + break + } + } + + node.raws.between = this.spacesAndCommentsFromEnd(params); + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params); + this.raw(node, 'params', params); + if (last) { + token = params[params.length - 1]; + node.source.end = this.getPosition(token[3] || token[2]); + node.source.end.offset++; + this.spaces = node.raws.between; + node.raws.between = ''; + } + } else { + node.raws.afterName = ''; + node.params = ''; + } + + if (open) { + node.nodes = []; + this.current = node; + } + } + + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens); + if (colon === false) return + + let founded = 0; + let token; + for (let j = colon - 1; j >= 0; j--) { + token = tokens[j]; + if (token[0] !== 'space') { + founded += 1; + if (founded === 2) break + } + } + // If the token is a word, e.g. `!important`, `red` or any other valid property's value. + // Then we need to return the colon after that word token. [3] is the "end" colon of that word. + // And because we need it after that one we do +1 to get the next one. + throw this.input.error( + 'Missed semicolon', + token[0] === 'word' ? token[3] + 1 : token[2] + ) + } + + colon(tokens) { + let brackets = 0; + let prev, token, type; + for (let [i, element] of tokens.entries()) { + token = element; + type = token[0]; + + if (type === '(') { + brackets += 1; + } + if (type === ')') { + brackets -= 1; + } + if (brackets === 0 && type === ':') { + if (!prev) { + this.doubleColon(token); + } else if (prev[0] === 'word' && prev[1] === 'progid') { + continue + } else { + return i + } + } + + prev = token; + } + return false + } + + comment(token) { + let node = new Comment(); + this.init(node, token[2]); + node.source.end = this.getPosition(token[3] || token[2]); + node.source.end.offset++; + + let text = token[1].slice(2, -2); + if (/^\s*$/.test(text)) { + node.text = ''; + node.raws.left = text; + node.raws.right = ''; + } else { + let match = text.match(/^(\s*)([^]*\S)(\s*)$/); + node.text = match[2]; + node.raws.left = match[1]; + node.raws.right = match[3]; + } + } + + createTokenizer() { + this.tokenizer = tokenizer(this.input); + } + + decl(tokens, customProperty) { + let node = new Declaration(); + this.init(node, tokens[0][2]); + + let last = tokens[tokens.length - 1]; + if (last[0] === ';') { + this.semicolon = true; + tokens.pop(); + } + + node.source.end = this.getPosition( + last[3] || last[2] || findLastWithPosition(tokens) + ); + node.source.end.offset++; + + while (tokens[0][0] !== 'word') { + if (tokens.length === 1) this.unknownWord(tokens); + node.raws.before += tokens.shift()[1]; + } + node.source.start = this.getPosition(tokens[0][2]); + + node.prop = ''; + while (tokens.length) { + let type = tokens[0][0]; + if (type === ':' || type === 'space' || type === 'comment') { + break + } + node.prop += tokens.shift()[1]; + } + + node.raws.between = ''; + + let token; + while (tokens.length) { + token = tokens.shift(); + + if (token[0] === ':') { + node.raws.between += token[1]; + break + } else { + if (token[0] === 'word' && /\w/.test(token[1])) { + this.unknownWord([token]); + } + node.raws.between += token[1]; + } + } + + if (node.prop[0] === '_' || node.prop[0] === '*') { + node.raws.before += node.prop[0]; + node.prop = node.prop.slice(1); + } + + let firstSpaces = []; + let next; + while (tokens.length) { + next = tokens[0][0]; + if (next !== 'space' && next !== 'comment') break + firstSpaces.push(tokens.shift()); + } + + this.precheckMissedSemicolon(tokens); + + for (let i = tokens.length - 1; i >= 0; i--) { + token = tokens[i]; + if (token[1].toLowerCase() === '!important') { + node.important = true; + let string = this.stringFrom(tokens, i); + string = this.spacesFromEnd(tokens) + string; + if (string !== ' !important') node.raws.important = string; + break + } else if (token[1].toLowerCase() === 'important') { + let cache = tokens.slice(0); + let str = ''; + for (let j = i; j > 0; j--) { + let type = cache[j][0]; + if (str.trim().startsWith('!') && type !== 'space') { + break + } + str = cache.pop()[1] + str; + } + if (str.trim().startsWith('!')) { + node.important = true; + node.raws.important = str; + tokens = cache; + } + } + + if (token[0] !== 'space' && token[0] !== 'comment') { + break + } + } + + let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment'); + + if (hasWord) { + node.raws.between += firstSpaces.map(i => i[1]).join(''); + firstSpaces = []; + } + this.raw(node, 'value', firstSpaces.concat(tokens), customProperty); + + if (node.value.includes(':') && !customProperty) { + this.checkMissedSemicolon(tokens); + } + } + + doubleColon(token) { + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + emptyRule(token) { + let node = new Rule(); + this.init(node, token[2]); + node.selector = ''; + node.raws.between = ''; + this.current = node; + } + + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.semicolon = false; + + this.current.raws.after = (this.current.raws.after || '') + this.spaces; + this.spaces = ''; + + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]); + this.current.source.end.offset++; + this.current = this.current.parent; + } else { + this.unexpectedClose(token); + } + } + + endFile() { + if (this.current.parent) this.unclosedBlock(); + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.current.raws.after = (this.current.raws.after || '') + this.spaces; + this.root.source.end = this.getPosition(this.tokenizer.position()); + } + + freeSemicolon(token) { + this.spaces += token[1]; + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1]; + if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces; + this.spaces = ''; + prev.source.end = this.getPosition(token[2]); + prev.source.end.offset += prev.raws.ownSemicolon.length; + } + } + } + + // Helpers + + getPosition(offset) { + let pos = this.input.fromOffset(offset); + return { + column: pos.col, + line: pos.line, + offset + } + } + + init(node, offset) { + this.current.push(node); + node.source = { + input: this.input, + start: this.getPosition(offset) + }; + node.raws.before = this.spaces; + this.spaces = ''; + if (node.type !== 'comment') this.semicolon = false; + } + + other(start) { + let end = false; + let type = null; + let colon = false; + let bracket = null; + let brackets = []; + let customProperty = start[1].startsWith('--'); + + let tokens = []; + let token = start; + while (token) { + type = token[0]; + tokens.push(token); + + if (type === '(' || type === '[') { + if (!bracket) bracket = token; + brackets.push(type === '(' ? ')' : ']'); + } else if (customProperty && colon && type === '{') { + if (!bracket) bracket = token; + brackets.push('}'); + } else if (brackets.length === 0) { + if (type === ';') { + if (colon) { + this.decl(tokens, customProperty); + return + } else { + break + } + } else if (type === '{') { + this.rule(tokens); + return + } else if (type === '}') { + this.tokenizer.back(tokens.pop()); + end = true; + break + } else if (type === ':') { + colon = true; + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop(); + if (brackets.length === 0) bracket = null; + } + + token = this.tokenizer.nextToken(); + } + + if (this.tokenizer.endOfFile()) end = true; + if (brackets.length > 0) this.unclosedBracket(bracket); + + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0]; + if (token !== 'space' && token !== 'comment') break + this.tokenizer.back(tokens.pop()); + } + } + this.decl(tokens, customProperty); + } else { + this.unknownWord(tokens); + } + } + + parse() { + let token; + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + + switch (token[0]) { + case 'space': + this.spaces += token[1]; + break + + case ';': + this.freeSemicolon(token); + break + + case '}': + this.end(token); + break + + case 'comment': + this.comment(token); + break + + case 'at-word': + this.atrule(token); + break + + case '{': + this.emptyRule(token); + break + + default: + this.other(token); + break + } + } + this.endFile(); + } + + precheckMissedSemicolon(/* tokens */) { + // Hook for Safe Parser + } + + raw(node, prop, tokens, customProperty) { + let token, type; + let length = tokens.length; + let value = ''; + let clean = true; + let next, prev; + + for (let i = 0; i < length; i += 1) { + token = tokens[i]; + type = token[0]; + if (type === 'space' && i === length - 1 && !customProperty) { + clean = false; + } else if (type === 'comment') { + prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'; + next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'; + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { + if (value.slice(-1) === ',') { + clean = false; + } else { + value += token[1]; + } + } else { + clean = false; + } + } else { + value += token[1]; + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], ''); + node.raws[prop] = { raw, value }; + } + node[prop] = value; + } + + rule(tokens) { + tokens.pop(); + + let node = new Rule(); + this.init(node, tokens[0][2]); + + node.raws.between = this.spacesAndCommentsFromEnd(tokens); + this.raw(node, 'selector', tokens); + this.current = node; + } + + spacesAndCommentsFromEnd(tokens) { + let lastTokenType; + let spaces = ''; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== 'space' && lastTokenType !== 'comment') break + spaces = tokens.pop()[1] + spaces; + } + return spaces + } + + // Errors + + spacesAndCommentsFromStart(tokens) { + let next; + let spaces = ''; + while (tokens.length) { + next = tokens[0][0]; + if (next !== 'space' && next !== 'comment') break + spaces += tokens.shift()[1]; + } + return spaces + } + + spacesFromEnd(tokens) { + let lastTokenType; + let spaces = ''; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== 'space') break + spaces = tokens.pop()[1] + spaces; + } + return spaces + } + + stringFrom(tokens, from) { + let result = ''; + for (let i = from; i < tokens.length; i++) { + result += tokens[i][1]; + } + tokens.splice(from, tokens.length - from); + return result + } + + unclosedBlock() { + let pos = this.current.source.start; + throw this.input.error('Unclosed block', pos.line, pos.column) + } + + unclosedBracket(bracket) { + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) + } + + unexpectedClose(token) { + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) + } + + unknownWord(tokens) { + throw this.input.error( + 'Unknown word ' + tokens[0][1], + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) + } + + unnamedAtrule(node, token) { + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + } + + parser$1 = Parser; + return parser$1; +} + +var parse_1; +var hasRequiredParse; + +function requireParse () { + if (hasRequiredParse) return parse_1; + hasRequiredParse = 1; + + let Container = /*@__PURE__*/ requireContainer$1(); + let Input = /*@__PURE__*/ requireInput(); + let Parser = /*@__PURE__*/ requireParser$1(); + + function parse(css, opts) { + let input = new Input(css, opts); + let parser = new Parser(input); + try { + parser.parse(); + } catch (e) { + if (browser$1.env.NODE_ENV !== 'production') { + if (e.name === 'CssSyntaxError' && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += + '\nYou tried to parse SCSS with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-scss parser'; + } else if (/\.sass/i.test(opts.from)) { + e.message += + '\nYou tried to parse Sass with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-sass parser'; + } else if (/\.less$/i.test(opts.from)) { + e.message += + '\nYou tried to parse Less with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-less parser'; + } + } + } + throw e + } + + return parser.root + } + + parse_1 = parse; + parse.default = parse; + + Container.registerParse(parse); + return parse_1; +} + +var warning; +var hasRequiredWarning; + +function requireWarning () { + if (hasRequiredWarning) return warning; + hasRequiredWarning = 1; + + class Warning { + constructor(text, opts = {}) { + this.type = 'warning'; + this.text = text; + + if (opts.node && opts.node.source) { + let range = opts.node.rangeBy(opts); + this.line = range.start.line; + this.column = range.start.column; + this.endLine = range.end.line; + this.endColumn = range.end.column; + } + + for (let opt in opts) this[opt] = opts[opt]; + } + + toString() { + if (this.node) { + return this.node.error(this.text, { + index: this.index, + plugin: this.plugin, + word: this.word + }).message + } + + if (this.plugin) { + return this.plugin + ': ' + this.text + } + + return this.text + } + } + + warning = Warning; + Warning.default = Warning; + return warning; +} + +var result; +var hasRequiredResult; + +function requireResult () { + if (hasRequiredResult) return result; + hasRequiredResult = 1; + + let Warning = /*@__PURE__*/ requireWarning(); + + class Result { + get content() { + return this.css + } + + constructor(processor, root, opts) { + this.processor = processor; + this.messages = []; + this.root = root; + this.opts = opts; + this.css = ''; + this.map = undefined; + } + + toString() { + return this.css + } + + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin; + } + } + + let warning = new Warning(text, opts); + this.messages.push(warning); + + return warning + } + + warnings() { + return this.messages.filter(i => i.type === 'warning') + } + } + + result = Result; + Result.default = Result; + return result; +} + +/* eslint-disable no-console */ + +var warnOnce; +var hasRequiredWarnOnce; + +function requireWarnOnce () { + if (hasRequiredWarnOnce) return warnOnce; + hasRequiredWarnOnce = 1; + + let printed = {}; + + warnOnce = function warnOnce(message) { + if (printed[message]) return + printed[message] = true; + + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + }; + return warnOnce; +} + +var lazyResult; +var hasRequiredLazyResult; + +function requireLazyResult () { + if (hasRequiredLazyResult) return lazyResult; + hasRequiredLazyResult = 1; + + let Container = /*@__PURE__*/ requireContainer$1(); + let Document = /*@__PURE__*/ requireDocument(); + let MapGenerator = /*@__PURE__*/ requireMapGenerator(); + let parse = /*@__PURE__*/ requireParse(); + let Result = /*@__PURE__*/ requireResult(); + let Root = /*@__PURE__*/ requireRoot$1(); + let stringify = /*@__PURE__*/ requireStringify(); + let { isClean, my } = /*@__PURE__*/ requireSymbols(); + let warnOnce = /*@__PURE__*/ requireWarnOnce(); + + const TYPE_TO_CLASS_NAME = { + atrule: 'AtRule', + comment: 'Comment', + decl: 'Declaration', + document: 'Document', + root: 'Root', + rule: 'Rule' + }; + + const PLUGIN_PROPS = { + AtRule: true, + AtRuleExit: true, + Comment: true, + CommentExit: true, + Declaration: true, + DeclarationExit: true, + Document: true, + DocumentExit: true, + Once: true, + OnceExit: true, + postcssPlugin: true, + prepare: true, + Root: true, + RootExit: true, + Rule: true, + RuleExit: true + }; + + const NOT_VISITORS = { + Once: true, + postcssPlugin: true, + prepare: true + }; + + const CHILDREN = 0; + + function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then === 'function' + } + + function getEvents(node) { + let key = false; + let type = TYPE_TO_CLASS_NAME[node.type]; + if (node.type === 'decl') { + key = node.prop.toLowerCase(); + } else if (node.type === 'atrule') { + key = node.name.toLowerCase(); + } + + if (key && node.append) { + return [ + type, + type + '-' + key, + CHILDREN, + type + 'Exit', + type + 'Exit-' + key + ] + } else if (key) { + return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] + } else if (node.append) { + return [type, CHILDREN, type + 'Exit'] + } else { + return [type, type + 'Exit'] + } + } + + function toStack(node) { + let events; + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit']; + } else if (node.type === 'root') { + events = ['Root', CHILDREN, 'RootExit']; + } else { + events = getEvents(node); + } + + return { + eventIndex: 0, + events, + iterator: 0, + node, + visitorIndex: 0, + visitors: [] + } + } + + function cleanMarks(node) { + node[isClean] = false; + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)); + return node + } + + let postcss = {}; + + class LazyResult { + get content() { + return this.stringify().content + } + + get css() { + return this.stringify().css + } + + get map() { + return this.stringify().map + } + + get messages() { + return this.sync().messages + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + return this.sync().root + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } + + constructor(processor, css, opts) { + this.stringified = false; + this.processed = false; + + let root; + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { + root = cleanMarks(css); + } else if (css instanceof LazyResult || css instanceof Result) { + root = cleanMarks(css.root); + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {}; + if (!opts.map.inline) opts.map.inline = false; + opts.map.prev = css.map; + } + } else { + let parser = parse; + if (opts.syntax) parser = opts.syntax.parse; + if (opts.parser) parser = opts.parser; + if (parser.parse) parser = parser.parse; + + try { + root = parser(css, opts); + } catch (error) { + this.processed = true; + this.error = error; + } + + if (root && !root[my]) { + /* c8 ignore next 2 */ + Container.rebuild(root); + } + } + + this.result = new Result(processor, root, opts); + this.helpers = { ...postcss, postcss, result: this.result }; + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }); + } + + async() { + if (this.error) return Promise.reject(this.error) + if (this.processed) return Promise.resolve(this.result) + if (!this.processing) { + this.processing = this.runAsync(); + } + return this.processing + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + getAsyncError() { + throw new Error('Use process(css).then(cb) to work with async plugins') + } + + handleError(error, node) { + let plugin = this.result.lastPlugin; + try { + if (node) node.addToError(error); + this.error = error; + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin; + error.setMessage(); + } else if (plugin.postcssVersion) { + if (browser$1.env.NODE_ENV !== 'production') { + let pluginName = plugin.postcssPlugin; + let pluginVer = plugin.postcssVersion; + let runtimeVer = this.result.processor.version; + let a = pluginVer.split('.'); + let b = runtimeVer.split('.'); + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console + console.error( + 'Unknown error from PostCSS plugin. Your current PostCSS ' + + 'version is ' + + runtimeVer + + ', but ' + + pluginName + + ' uses ' + + pluginVer + + '. Perhaps this is the source of the error below.' + ); + } + } + } + } catch (err) { + /* c8 ignore next 3 */ + // eslint-disable-next-line no-console + if (console && console.error) console.error(err); + } + return error + } + + prepareVisitors() { + this.listeners = {}; + let add = (plugin, type, cb) => { + if (!this.listeners[type]) this.listeners[type] = []; + this.listeners[type].push([plugin, cb]); + }; + for (let plugin of this.plugins) { + if (typeof plugin === 'object') { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. ` + + `Try to update PostCSS (${this.processor.version} now).` + ) + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === 'object') { + for (let filter in plugin[event]) { + if (filter === '*') { + add(plugin, event, plugin[event][filter]); + } else { + add( + plugin, + event + '-' + filter.toLowerCase(), + plugin[event][filter] + ); + } + } + } else if (typeof plugin[event] === 'function') { + add(plugin, event, plugin[event]); + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0; + } + + async runAsync() { + this.plugin = 0; + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i]; + let promise = this.runOnRoot(plugin); + if (isPromise(promise)) { + try { + await promise; + } catch (error) { + throw this.handleError(error) + } + } + } + + this.prepareVisitors(); + if (this.hasListener) { + let root = this.result.root; + while (!root[isClean]) { + root[isClean] = true; + let stack = [toStack(root)]; + while (stack.length > 0) { + let promise = this.visitTick(stack); + if (isPromise(promise)) { + try { + await promise; + } catch (e) { + let node = stack[stack.length - 1].node; + throw this.handleError(e, node) + } + } + } + } + + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin; + try { + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ); + + await Promise.all(roots); + } else { + await visitor(root, this.helpers); + } + } catch (e) { + throw this.handleError(e) + } + } + } + } + + this.processed = true; + return this.stringify() + } + + runOnRoot(plugin) { + this.result.lastPlugin = plugin; + try { + if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ); + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + + return plugin.Once(this.result.root, this.helpers) + } else if (typeof plugin === 'function') { + return plugin(this.result.root, this.result) + } + } catch (error) { + throw this.handleError(error) + } + } + + stringify() { + if (this.error) throw this.error + if (this.stringified) return this.result + this.stringified = true; + + this.sync(); + + let opts = this.result.opts; + let str = stringify; + if (opts.syntax) str = opts.syntax.stringify; + if (opts.stringifier) str = opts.stringifier; + if (str.stringify) str = str.stringify; + + let map = new MapGenerator(str, this.result.root, this.result.opts); + let data = map.generate(); + this.result.css = data[0]; + this.result.map = data[1]; + + return this.result + } + + sync() { + if (this.error) throw this.error + if (this.processed) return this.result + this.processed = true; + + if (this.processing) { + throw this.getAsyncError() + } + + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin); + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + + this.prepareVisitors(); + if (this.hasListener) { + let root = this.result.root; + while (!root[isClean]) { + root[isClean] = true; + this.walkSync(root); + } + if (this.listeners.OnceExit) { + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot); + } + } else { + this.visitSync(this.listeners.OnceExit, root); + } + } + } + + return this.result + } + + then(onFulfilled, onRejected) { + if (browser$1.env.NODE_ENV !== 'production') { + if (!('from' in this.opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ); + } + } + return this.async().then(onFulfilled, onRejected) + } + + toString() { + return this.css + } + + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin; + let promise; + try { + promise = visitor(node, this.helpers); + } catch (e) { + throw this.handleError(e, node.proxyOf) + } + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + } + + visitTick(stack) { + let visit = stack[stack.length - 1]; + let { node, visitors } = visit; + + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + stack.pop(); + return + } + + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex]; + visit.visitorIndex += 1; + if (visit.visitorIndex === visitors.length) { + visit.visitors = []; + visit.visitorIndex = 0; + } + this.result.lastPlugin = plugin; + try { + return visitor(node.toProxy(), this.helpers) + } catch (e) { + throw this.handleError(e, node) + } + } + + if (visit.iterator !== 0) { + let iterator = visit.iterator; + let child; + while ((child = node.nodes[node.indexes[iterator]])) { + node.indexes[iterator] += 1; + if (!child[isClean]) { + child[isClean] = true; + stack.push(toStack(child)); + return + } + } + visit.iterator = 0; + delete node.indexes[iterator]; + } + + let events = visit.events; + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex]; + visit.eventIndex += 1; + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true; + visit.iterator = node.getIterator(); + } + return + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event]; + return + } + } + stack.pop(); + } + + walkSync(node) { + node[isClean] = true; + let events = getEvents(node); + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each(child => { + if (!child[isClean]) this.walkSync(child); + }); + } + } else { + let visitors = this.listeners[event]; + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) return + } + } + } + } + + warnings() { + return this.sync().warnings() + } + } + + LazyResult.registerPostcss = dependant => { + postcss = dependant; + }; + + lazyResult = LazyResult; + LazyResult.default = LazyResult; + + Root.registerLazyResult(LazyResult); + Document.registerLazyResult(LazyResult); + return lazyResult; +} + +var noWorkResult; +var hasRequiredNoWorkResult; + +function requireNoWorkResult () { + if (hasRequiredNoWorkResult) return noWorkResult; + hasRequiredNoWorkResult = 1; + + let MapGenerator = /*@__PURE__*/ requireMapGenerator(); + let parse = /*@__PURE__*/ requireParse(); + const Result = /*@__PURE__*/ requireResult(); + let stringify = /*@__PURE__*/ requireStringify(); + let warnOnce = /*@__PURE__*/ requireWarnOnce(); + + class NoWorkResult { + get content() { + return this.result.css + } + + get css() { + return this.result.css + } + + get map() { + return this.result.map + } + + get messages() { + return [] + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + if (this._root) { + return this._root + } + + let root; + let parser = parse; + + try { + root = parser(this._css, this._opts); + } catch (error) { + this.error = error; + } + + if (this.error) { + throw this.error + } else { + this._root = root; + return root + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } + + constructor(processor, css, opts) { + css = css.toString(); + this.stringified = false; + + this._processor = processor; + this._css = css; + this._opts = opts; + this._map = undefined; + let root; + + let str = stringify; + this.result = new Result(this._processor, root, this._opts); + this.result.css = css; + + let self = this; + Object.defineProperty(this.result, 'root', { + get() { + return self.root + } + }); + + let map = new MapGenerator(str, root, this._opts, css); + if (map.isMap()) { + let [generatedCSS, generatedMap] = map.generate(); + if (generatedCSS) { + this.result.css = generatedCSS; + } + if (generatedMap) { + this.result.map = generatedMap; + } + } else { + map.clearAnnotation(); + this.result.css = map.css; + } + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + sync() { + if (this.error) throw this.error + return this.result + } + + then(onFulfilled, onRejected) { + if (browser$1.env.NODE_ENV !== 'production') { + if (!('from' in this._opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ); + } + } + + return this.async().then(onFulfilled, onRejected) + } + + toString() { + return this._css + } + + warnings() { + return [] + } + } + + noWorkResult = NoWorkResult; + NoWorkResult.default = NoWorkResult; + return noWorkResult; +} + +var processor$1; +var hasRequiredProcessor$1; + +function requireProcessor$1 () { + if (hasRequiredProcessor$1) return processor$1; + hasRequiredProcessor$1 = 1; + + let Document = /*@__PURE__*/ requireDocument(); + let LazyResult = /*@__PURE__*/ requireLazyResult(); + let NoWorkResult = /*@__PURE__*/ requireNoWorkResult(); + let Root = /*@__PURE__*/ requireRoot$1(); + + class Processor { + constructor(plugins = []) { + this.version = '8.5.6'; + this.plugins = this.normalize(plugins); + } + + normalize(plugins) { + let normalized = []; + for (let i of plugins) { + if (i.postcss === true) { + i = i(); + } else if (i.postcss) { + i = i.postcss; + } + + if (typeof i === 'object' && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins); + } else if (typeof i === 'object' && i.postcssPlugin) { + normalized.push(i); + } else if (typeof i === 'function') { + normalized.push(i); + } else if (typeof i === 'object' && (i.parse || i.stringify)) { + if (browser$1.env.NODE_ENV !== 'production') { + throw new Error( + 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + + 'one of the syntax/parser/stringifier options as outlined ' + + 'in your PostCSS runner documentation.' + ) + } + } else { + throw new Error(i + ' is not a PostCSS plugin') + } + } + return normalized + } + + process(css, opts = {}) { + if ( + !this.plugins.length && + !opts.parser && + !opts.stringifier && + !opts.syntax + ) { + return new NoWorkResult(this, css, opts) + } else { + return new LazyResult(this, css, opts) + } + } + + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])); + return this + } + } + + processor$1 = Processor; + Processor.default = Processor; + + Root.registerProcessor(Processor); + Document.registerProcessor(Processor); + return processor$1; +} + +var postcss_1; +var hasRequiredPostcss; + +function requirePostcss () { + if (hasRequiredPostcss) return postcss_1; + hasRequiredPostcss = 1; + + let AtRule = /*@__PURE__*/ requireAtRule(); + let Comment = /*@__PURE__*/ requireComment$1(); + let Container = /*@__PURE__*/ requireContainer$1(); + let CssSyntaxError = /*@__PURE__*/ requireCssSyntaxError(); + let Declaration = /*@__PURE__*/ requireDeclaration(); + let Document = /*@__PURE__*/ requireDocument(); + let fromJSON = /*@__PURE__*/ requireFromJSON(); + let Input = /*@__PURE__*/ requireInput(); + let LazyResult = /*@__PURE__*/ requireLazyResult(); + let list = /*@__PURE__*/ requireList(); + let Node = /*@__PURE__*/ requireNode$2(); + let parse = /*@__PURE__*/ requireParse(); + let Processor = /*@__PURE__*/ requireProcessor$1(); + let Result = /*@__PURE__*/ requireResult(); + let Root = /*@__PURE__*/ requireRoot$1(); + let Rule = /*@__PURE__*/ requireRule(); + let stringify = /*@__PURE__*/ requireStringify(); + let Warning = /*@__PURE__*/ requireWarning(); + + function postcss(...plugins) { + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0]; + } + return new Processor(plugins) + } + + postcss.plugin = function plugin(name, initializer) { + let warningPrinted = false; + function creator(...args) { + // eslint-disable-next-line no-console + if (console && console.warn && !warningPrinted) { + warningPrinted = true; + // eslint-disable-next-line no-console + console.warn( + name + + ': postcss.plugin was deprecated. Migration guide:\n' + + 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' + ); + if (browser$1.env.LANG && browser$1.env.LANG.startsWith('cn')) { + /* c8 ignore next 7 */ + // eslint-disable-next-line no-console + console.warn( + name + + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + + 'https://www.w3ctech.com/topic/2226' + ); + } + } + let transformer = initializer(...args); + transformer.postcssPlugin = name; + transformer.postcssVersion = new Processor().version; + return transformer + } + + let cache; + Object.defineProperty(creator, 'postcss', { + get() { + if (!cache) cache = creator(); + return cache + } + }); + + creator.process = function (css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts) + }; + + return creator + }; + + postcss.stringify = stringify; + postcss.parse = parse; + postcss.fromJSON = fromJSON; + postcss.list = list; + + postcss.comment = defaults => new Comment(defaults); + postcss.atRule = defaults => new AtRule(defaults); + postcss.decl = defaults => new Declaration(defaults); + postcss.rule = defaults => new Rule(defaults); + postcss.root = defaults => new Root(defaults); + postcss.document = defaults => new Document(defaults); + + postcss.CssSyntaxError = CssSyntaxError; + postcss.Declaration = Declaration; + postcss.Container = Container; + postcss.Processor = Processor; + postcss.Document = Document; + postcss.Comment = Comment; + postcss.Warning = Warning; + postcss.AtRule = AtRule; + postcss.Result = Result; + postcss.Input = Input; + postcss.Rule = Rule; + postcss.Root = Root; + postcss.Node = Node; + + LazyResult.registerPostcss(postcss); + + postcss_1 = postcss; + postcss.default = postcss; + return postcss_1; +} + +var postcssExports = /*@__PURE__*/ requirePostcss(); +var postcss = /*@__PURE__*/getDefaultExportFromCjs(postcssExports); + +postcss.stringify; +postcss.fromJSON; +postcss.plugin; +postcss.parse; +postcss.list; + +postcss.document; +postcss.comment; +postcss.atRule; +postcss.rule; +postcss.decl; +postcss.root; + +postcss.CssSyntaxError; +postcss.Declaration; +postcss.Container; +postcss.Processor; +postcss.Document; +postcss.Comment; +postcss.Warning; +postcss.AtRule; +postcss.Result; +postcss.Input; +const Rule = postcss.Rule; +postcss.Root; +postcss.Node; + +const trimPlugin = () => { + return { + postcssPlugin: "vue-sfc-trim", + Once(root) { + root.walk(({ type, raws }) => { + if (type === "rule" || type === "atrule") { + if (raws.before) raws.before = "\n"; + if ("after" in raws && raws.after) raws.after = "\n"; + } + }); + } + }; +}; +trimPlugin.postcss = true; + +var dist = {exports: {}}; + +var processor = {exports: {}}; + +var parser = {exports: {}}; + +var root = {exports: {}}; + +var container = {exports: {}}; + +var node$1 = {exports: {}}; + +var util$1 = {}; + +var unesc = {exports: {}}; + +var hasRequiredUnesc; + +function requireUnesc () { + if (hasRequiredUnesc) return unesc.exports; + hasRequiredUnesc = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = unesc; + // Many thanks for this post which made this migration much easier. + // https://mathiasbynens.be/notes/css-escapes + + /** + * + * @param {string} str + * @returns {[string, number]|undefined} + */ + function gobbleHex(str) { + var lower = str.toLowerCase(); + var hex = ''; + var spaceTerminated = false; + for (var i = 0; i < 6 && lower[i] !== undefined; i++) { + var code = lower.charCodeAt(i); + // check to see if we are dealing with a valid hex char [a-f|0-9] + var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; + // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point + spaceTerminated = code === 32; + if (!valid) { + break; + } + hex += lower[i]; + } + if (hex.length === 0) { + return undefined; + } + var codePoint = parseInt(hex, 16); + var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; + // Add special case for + // "If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point" + // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point + if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) { + return ["\uFFFD", hex.length + (spaceTerminated ? 1 : 0)]; + } + return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)]; + } + var CONTAINS_ESCAPE = /\\/; + function unesc(str) { + var needToProcess = CONTAINS_ESCAPE.test(str); + if (!needToProcess) { + return str; + } + var ret = ""; + for (var i = 0; i < str.length; i++) { + if (str[i] === "\\") { + var gobbled = gobbleHex(str.slice(i + 1, i + 7)); + if (gobbled !== undefined) { + ret += gobbled[0]; + i += gobbled[1]; + continue; + } + + // Retain a pair of \\ if double escaped `\\\\` + // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e + if (str[i + 1] === "\\") { + ret += "\\"; + i++; + continue; + } + + // if \\ is at the end of the string retain it + // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb + if (str.length === i + 1) { + ret += str[i]; + } + continue; + } + ret += str[i]; + } + return ret; + } + module.exports = exports$1.default; + } (unesc, unesc.exports)); + return unesc.exports; +} + +var getProp = {exports: {}}; + +var hasRequiredGetProp; + +function requireGetProp () { + if (hasRequiredGetProp) return getProp.exports; + hasRequiredGetProp = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = getProp; + function getProp(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + return undefined; + } + obj = obj[prop]; + } + return obj; + } + module.exports = exports$1.default; + } (getProp, getProp.exports)); + return getProp.exports; +} + +var ensureObject = {exports: {}}; + +var hasRequiredEnsureObject; + +function requireEnsureObject () { + if (hasRequiredEnsureObject) return ensureObject.exports; + hasRequiredEnsureObject = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = ensureObject; + function ensureObject(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + obj[prop] = {}; + } + obj = obj[prop]; + } + } + module.exports = exports$1.default; + } (ensureObject, ensureObject.exports)); + return ensureObject.exports; +} + +var stripComments = {exports: {}}; + +var hasRequiredStripComments; + +function requireStripComments () { + if (hasRequiredStripComments) return stripComments.exports; + hasRequiredStripComments = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = stripComments; + function stripComments(str) { + var s = ""; + var commentStart = str.indexOf("/*"); + var lastEnd = 0; + while (commentStart >= 0) { + s = s + str.slice(lastEnd, commentStart); + var commentEnd = str.indexOf("*/", commentStart + 2); + if (commentEnd < 0) { + return s; + } + lastEnd = commentEnd + 2; + commentStart = str.indexOf("/*", lastEnd); + } + s = s + str.slice(lastEnd); + return s; + } + module.exports = exports$1.default; + } (stripComments, stripComments.exports)); + return stripComments.exports; +} + +var hasRequiredUtil$1; + +function requireUtil$1 () { + if (hasRequiredUtil$1) return util$1; + hasRequiredUtil$1 = 1; + + util$1.__esModule = true; + util$1.unesc = util$1.stripComments = util$1.getProp = util$1.ensureObject = void 0; + var _unesc = _interopRequireDefault(/*@__PURE__*/ requireUnesc()); + util$1.unesc = _unesc["default"]; + var _getProp = _interopRequireDefault(/*@__PURE__*/ requireGetProp()); + util$1.getProp = _getProp["default"]; + var _ensureObject = _interopRequireDefault(/*@__PURE__*/ requireEnsureObject()); + util$1.ensureObject = _ensureObject["default"]; + var _stripComments = _interopRequireDefault(/*@__PURE__*/ requireStripComments()); + util$1.stripComments = _stripComments["default"]; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return util$1; +} + +var hasRequiredNode$1; + +function requireNode$1 () { + if (hasRequiredNode$1) return node$1.exports; + hasRequiredNode$1 = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _util = /*@__PURE__*/ requireUtil$1(); + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + var cloneNode = function cloneNode(obj, parent) { + if (typeof obj !== 'object' || obj === null) { + return obj; + } + var cloned = new obj.constructor(); + for (var i in obj) { + if (!obj.hasOwnProperty(i)) { + continue; + } + var value = obj[i]; + var type = typeof value; + if (i === 'parent' && type === 'object') { + if (parent) { + cloned[i] = parent; + } + } else if (value instanceof Array) { + cloned[i] = value.map(function (j) { + return cloneNode(j, cloned); + }); + } else { + cloned[i] = cloneNode(value, cloned); + } + } + return cloned; + }; + var Node = /*#__PURE__*/function () { + function Node(opts) { + if (opts === void 0) { + opts = {}; + } + Object.assign(this, opts); + this.spaces = this.spaces || {}; + this.spaces.before = this.spaces.before || ''; + this.spaces.after = this.spaces.after || ''; + } + var _proto = Node.prototype; + _proto.remove = function remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this; + }; + _proto.replaceWith = function replaceWith() { + if (this.parent) { + for (var index in arguments) { + this.parent.insertBefore(this, arguments[index]); + } + this.remove(); + } + return this; + }; + _proto.next = function next() { + return this.parent.at(this.parent.index(this) + 1); + }; + _proto.prev = function prev() { + return this.parent.at(this.parent.index(this) - 1); + }; + _proto.clone = function clone(overrides) { + if (overrides === void 0) { + overrides = {}; + } + var cloned = cloneNode(this); + for (var name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows non standard syntax to be appended to an existing property + * by specifying the escaped value. By specifying the escaped value, + * illegal characters are allowed to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped optional. the escaped value of the property. + */; + _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + var originalValue = this[name]; + var originalEscaped = this.raws[name]; + this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first. + if (originalEscaped || valueEscaped !== value) { + this.raws[name] = (originalEscaped || originalValue) + valueEscaped; + } else { + delete this.raws[name]; // delete any escaped value that was created by the setter. + } + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows the escaped value to be specified directly, allowing illegal + * characters to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped the escaped value of the property. + */; + _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + this.raws[name] = valueEscaped; + } + + /** + * When you want a value to passed through to CSS directly. This method + * deletes the corresponding raw value causing the stringifier to fallback + * to the unescaped value. + * @param {string} name the property to set. + * @param {any} value The value that is both escaped and unescaped. + */; + _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) { + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + if (this.raws) { + delete this.raws[name]; + } + } + + /** + * + * @param {number} line The number (starting with 1) + * @param {number} column The column number (starting with 1) + */; + _proto.isAtPosition = function isAtPosition(line, column) { + if (this.source && this.source.start && this.source.end) { + if (this.source.start.line > line) { + return false; + } + if (this.source.end.line < line) { + return false; + } + if (this.source.start.line === line && this.source.start.column > column) { + return false; + } + if (this.source.end.line === line && this.source.end.column < column) { + return false; + } + return true; + } + return undefined; + }; + _proto.stringifyProperty = function stringifyProperty(name) { + return this.raws && this.raws[name] || this[name]; + }; + _proto.valueToString = function valueToString() { + return String(this.stringifyProperty("value")); + }; + _proto.toString = function toString() { + return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(''); + }; + _createClass(Node, [{ + key: "rawSpaceBefore", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before; + if (rawSpace === undefined) { + rawSpace = this.spaces && this.spaces.before; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.before = raw; + } + }, { + key: "rawSpaceAfter", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after; + if (rawSpace === undefined) { + rawSpace = this.spaces.after; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.after = raw; + } + }]); + return Node; + }(); + exports$1["default"] = Node; + module.exports = exports$1.default; + } (node$1, node$1.exports)); + return node$1.exports; +} + +var types = {}; + +var hasRequiredTypes; + +function requireTypes () { + if (hasRequiredTypes) return types; + hasRequiredTypes = 1; + + types.__esModule = true; + types.UNIVERSAL = types.TAG = types.STRING = types.SELECTOR = types.ROOT = types.PSEUDO = types.NESTING = types.ID = types.COMMENT = types.COMBINATOR = types.CLASS = types.ATTRIBUTE = void 0; + var TAG = 'tag'; + types.TAG = TAG; + var STRING = 'string'; + types.STRING = STRING; + var SELECTOR = 'selector'; + types.SELECTOR = SELECTOR; + var ROOT = 'root'; + types.ROOT = ROOT; + var PSEUDO = 'pseudo'; + types.PSEUDO = PSEUDO; + var NESTING = 'nesting'; + types.NESTING = NESTING; + var ID = 'id'; + types.ID = ID; + var COMMENT = 'comment'; + types.COMMENT = COMMENT; + var COMBINATOR = 'combinator'; + types.COMBINATOR = COMBINATOR; + var CLASS = 'class'; + types.CLASS = CLASS; + var ATTRIBUTE = 'attribute'; + types.ATTRIBUTE = ATTRIBUTE; + var UNIVERSAL = 'universal'; + types.UNIVERSAL = UNIVERSAL; + return types; +} + +var hasRequiredContainer; + +function requireContainer () { + if (hasRequiredContainer) return container.exports; + hasRequiredContainer = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var types = _interopRequireWildcard(/*@__PURE__*/ requireTypes()); + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike) { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Container = /*#__PURE__*/function (_Node) { + _inheritsLoose(Container, _Node); + function Container(opts) { + var _this; + _this = _Node.call(this, opts) || this; + if (!_this.nodes) { + _this.nodes = []; + } + return _this; + } + var _proto = Container.prototype; + _proto.append = function append(selector) { + selector.parent = this; + this.nodes.push(selector); + return this; + }; + _proto.prepend = function prepend(selector) { + selector.parent = this; + this.nodes.unshift(selector); + for (var id in this.indexes) { + this.indexes[id]++; + } + return this; + }; + _proto.at = function at(index) { + return this.nodes[index]; + }; + _proto.index = function index(child) { + if (typeof child === 'number') { + return child; + } + return this.nodes.indexOf(child); + }; + _proto.removeChild = function removeChild(child) { + child = this.index(child); + this.at(child).parent = undefined; + this.nodes.splice(child, 1); + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + return this; + }; + _proto.removeAll = function removeAll() { + for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) { + var node = _step.value; + node.parent = undefined; + } + this.nodes = []; + return this; + }; + _proto.empty = function empty() { + return this.removeAll(); + }; + _proto.insertAfter = function insertAfter(oldNode, newNode) { + var _this$nodes; + newNode.parent = this; + var oldIndex = this.index(oldNode); + var resetNode = []; + for (var i = 2; i < arguments.length; i++) { + resetNode.push(arguments[i]); + } + (_this$nodes = this.nodes).splice.apply(_this$nodes, [oldIndex + 1, 0, newNode].concat(resetNode)); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (oldIndex < index) { + this.indexes[id] = index + arguments.length - 1; + } + } + return this; + }; + _proto.insertBefore = function insertBefore(oldNode, newNode) { + var _this$nodes2; + newNode.parent = this; + var oldIndex = this.index(oldNode); + var resetNode = []; + for (var i = 2; i < arguments.length; i++) { + resetNode.push(arguments[i]); + } + (_this$nodes2 = this.nodes).splice.apply(_this$nodes2, [oldIndex, 0, newNode].concat(resetNode)); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= oldIndex) { + this.indexes[id] = index + arguments.length - 1; + } + } + return this; + }; + _proto._findChildAtPosition = function _findChildAtPosition(line, col) { + var found = undefined; + this.each(function (node) { + if (node.atPosition) { + var foundChild = node.atPosition(line, col); + if (foundChild) { + found = foundChild; + return false; + } + } else if (node.isAtPosition(line, col)) { + found = node; + return false; + } + }); + return found; + } + + /** + * Return the most specific node at the line and column number given. + * The source location is based on the original parsed location, locations aren't + * updated as selector nodes are mutated. + * + * Note that this location is relative to the location of the first character + * of the selector, and not the location of the selector in the overall document + * when used in conjunction with postcss. + * + * If not found, returns undefined. + * @param {number} line The line number of the node to find. (1-based index) + * @param {number} col The column number of the node to find. (1-based index) + */; + _proto.atPosition = function atPosition(line, col) { + if (this.isAtPosition(line, col)) { + return this._findChildAtPosition(line, col) || this; + } else { + return undefined; + } + }; + _proto._inferEndPosition = function _inferEndPosition() { + if (this.last && this.last.source && this.last.source.end) { + this.source = this.source || {}; + this.source.end = this.source.end || {}; + Object.assign(this.source.end, this.last.source.end); + } + }; + _proto.each = function each(callback) { + if (!this.lastEach) { + this.lastEach = 0; + } + if (!this.indexes) { + this.indexes = {}; + } + this.lastEach++; + var id = this.lastEach; + this.indexes[id] = 0; + if (!this.length) { + return undefined; + } + var index, result; + while (this.indexes[id] < this.length) { + index = this.indexes[id]; + result = callback(this.at(index), index); + if (result === false) { + break; + } + this.indexes[id] += 1; + } + delete this.indexes[id]; + if (result === false) { + return false; + } + }; + _proto.walk = function walk(callback) { + return this.each(function (node, i) { + var result = callback(node, i); + if (result !== false && node.length) { + result = node.walk(callback); + } + if (result === false) { + return false; + } + }); + }; + _proto.walkAttributes = function walkAttributes(callback) { + var _this2 = this; + return this.walk(function (selector) { + if (selector.type === types.ATTRIBUTE) { + return callback.call(_this2, selector); + } + }); + }; + _proto.walkClasses = function walkClasses(callback) { + var _this3 = this; + return this.walk(function (selector) { + if (selector.type === types.CLASS) { + return callback.call(_this3, selector); + } + }); + }; + _proto.walkCombinators = function walkCombinators(callback) { + var _this4 = this; + return this.walk(function (selector) { + if (selector.type === types.COMBINATOR) { + return callback.call(_this4, selector); + } + }); + }; + _proto.walkComments = function walkComments(callback) { + var _this5 = this; + return this.walk(function (selector) { + if (selector.type === types.COMMENT) { + return callback.call(_this5, selector); + } + }); + }; + _proto.walkIds = function walkIds(callback) { + var _this6 = this; + return this.walk(function (selector) { + if (selector.type === types.ID) { + return callback.call(_this6, selector); + } + }); + }; + _proto.walkNesting = function walkNesting(callback) { + var _this7 = this; + return this.walk(function (selector) { + if (selector.type === types.NESTING) { + return callback.call(_this7, selector); + } + }); + }; + _proto.walkPseudos = function walkPseudos(callback) { + var _this8 = this; + return this.walk(function (selector) { + if (selector.type === types.PSEUDO) { + return callback.call(_this8, selector); + } + }); + }; + _proto.walkTags = function walkTags(callback) { + var _this9 = this; + return this.walk(function (selector) { + if (selector.type === types.TAG) { + return callback.call(_this9, selector); + } + }); + }; + _proto.walkUniversals = function walkUniversals(callback) { + var _this10 = this; + return this.walk(function (selector) { + if (selector.type === types.UNIVERSAL) { + return callback.call(_this10, selector); + } + }); + }; + _proto.split = function split(callback) { + var _this11 = this; + var current = []; + return this.reduce(function (memo, node, index) { + var split = callback.call(_this11, node); + current.push(node); + if (split) { + memo.push(current); + current = []; + } else if (index === _this11.length - 1) { + memo.push(current); + } + return memo; + }, []); + }; + _proto.map = function map(callback) { + return this.nodes.map(callback); + }; + _proto.reduce = function reduce(callback, memo) { + return this.nodes.reduce(callback, memo); + }; + _proto.every = function every(callback) { + return this.nodes.every(callback); + }; + _proto.some = function some(callback) { + return this.nodes.some(callback); + }; + _proto.filter = function filter(callback) { + return this.nodes.filter(callback); + }; + _proto.sort = function sort(callback) { + return this.nodes.sort(callback); + }; + _proto.toString = function toString() { + return this.map(String).join(''); + }; + _createClass(Container, [{ + key: "first", + get: function get() { + return this.at(0); + } + }, { + key: "last", + get: function get() { + return this.at(this.length - 1); + } + }, { + key: "length", + get: function get() { + return this.nodes.length; + } + }]); + return Container; + }(_node["default"]); + exports$1["default"] = Container; + module.exports = exports$1.default; + } (container, container.exports)); + return container.exports; +} + +var hasRequiredRoot; + +function requireRoot () { + if (hasRequiredRoot) return root.exports; + hasRequiredRoot = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Root = /*#__PURE__*/function (_Container) { + _inheritsLoose(Root, _Container); + function Root(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.ROOT; + return _this; + } + var _proto = Root.prototype; + _proto.toString = function toString() { + var str = this.reduce(function (memo, selector) { + memo.push(String(selector)); + return memo; + }, []).join(','); + return this.trailingComma ? str + ',' : str; + }; + _proto.error = function error(message, options) { + if (this._error) { + return this._error(message, options); + } else { + return new Error(message); + } + }; + _createClass(Root, [{ + key: "errorGenerator", + set: function set(handler) { + this._error = handler; + } + }]); + return Root; + }(_container["default"]); + exports$1["default"] = Root; + module.exports = exports$1.default; + } (root, root.exports)); + return root.exports; +} + +var selector = {exports: {}}; + +var hasRequiredSelector; + +function requireSelector () { + if (hasRequiredSelector) return selector.exports; + hasRequiredSelector = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Selector = /*#__PURE__*/function (_Container) { + _inheritsLoose(Selector, _Container); + function Selector(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.SELECTOR; + return _this; + } + return Selector; + }(_container["default"]); + exports$1["default"] = Selector; + module.exports = exports$1.default; + } (selector, selector.exports)); + return selector.exports; +} + +var className = {exports: {}}; + +/*! https://mths.be/cssesc v3.0.0 by @mathias */ + +var cssesc_1; +var hasRequiredCssesc; + +function requireCssesc () { + if (hasRequiredCssesc) return cssesc_1; + hasRequiredCssesc = 1; + + var object = {}; + var hasOwnProperty = object.hasOwnProperty; + var merge = function merge(options, defaults) { + if (!options) { + return defaults; + } + var result = {}; + for (var key in defaults) { + // `if (defaults.hasOwnProperty(key) { … }` is not needed here, since + // only recognized option names are used. + result[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key]; + } + return result; + }; + + var regexAnySingleEscape = /[ -,\.\/:-@\[-\^`\{-~]/; + var regexSingleEscape = /[ -,\.\/:-@\[\]\^`\{-~]/; + var regexExcessiveSpaces = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g; + + // https://mathiasbynens.be/notes/css-escapes#css + var cssesc = function cssesc(string, options) { + options = merge(options, cssesc.options); + if (options.quotes != 'single' && options.quotes != 'double') { + options.quotes = 'single'; + } + var quote = options.quotes == 'double' ? '"' : '\''; + var isIdentifier = options.isIdentifier; + + var firstChar = string.charAt(0); + var output = ''; + var counter = 0; + var length = string.length; + while (counter < length) { + var character = string.charAt(counter++); + var codePoint = character.charCodeAt(); + var value = void 0; + // If it’s not a printable ASCII character… + if (codePoint < 0x20 || codePoint > 0x7E) { + if (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) { + // It’s a high surrogate, and there is a next character. + var extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { + // next character is low surrogate + codePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000; + } else { + // It’s an unmatched surrogate; only append this code unit, in case + // the next code unit is the high surrogate of a surrogate pair. + counter--; + } + } + value = '\\' + codePoint.toString(16).toUpperCase() + ' '; + } else { + if (options.escapeEverything) { + if (regexAnySingleEscape.test(character)) { + value = '\\' + character; + } else { + value = '\\' + codePoint.toString(16).toUpperCase() + ' '; + } + } else if (/[\t\n\f\r\x0B]/.test(character)) { + value = '\\' + codePoint.toString(16).toUpperCase() + ' '; + } else if (character == '\\' || !isIdentifier && (character == '"' && quote == character || character == '\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) { + value = '\\' + character; + } else { + value = character; + } + } + output += value; + } + + if (isIdentifier) { + if (/^-[-\d]/.test(output)) { + output = '\\-' + output.slice(1); + } else if (/\d/.test(firstChar)) { + output = '\\3' + firstChar + ' ' + output.slice(1); + } + } + + // Remove spaces after `\HEX` escapes that are not followed by a hex digit, + // since they’re redundant. Note that this is only possible if the escape + // sequence isn’t preceded by an odd number of backslashes. + output = output.replace(regexExcessiveSpaces, function ($0, $1, $2) { + if ($1 && $1.length % 2) { + // It’s not safe to remove the space, so don’t. + return $0; + } + // Strip the space. + return ($1 || '') + $2; + }); + + if (!isIdentifier && options.wrap) { + return quote + output + quote; + } + return output; + }; + + // Expose default options (so they can be overridden globally). + cssesc.options = { + 'escapeEverything': false, + 'isIdentifier': false, + 'quotes': 'single', + 'wrap': false + }; + + cssesc.version = '3.0.0'; + + cssesc_1 = cssesc; + return cssesc_1; +} + +var hasRequiredClassName; + +function requireClassName () { + if (hasRequiredClassName) return className.exports; + hasRequiredClassName = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _util = /*@__PURE__*/ requireUtil$1(); + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var ClassName = /*#__PURE__*/function (_Node) { + _inheritsLoose(ClassName, _Node); + function ClassName(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.CLASS; + _this._constructed = true; + return _this; + } + var _proto = ClassName.prototype; + _proto.valueToString = function valueToString() { + return '.' + _Node.prototype.valueToString.call(this); + }; + _createClass(ClassName, [{ + key: "value", + get: function get() { + return this._value; + }, + set: function set(v) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped !== v) { + (0, _util.ensureObject)(this, "raws"); + this.raws.value = escaped; + } else if (this.raws) { + delete this.raws.value; + } + } + this._value = v; + } + }]); + return ClassName; + }(_node["default"]); + exports$1["default"] = ClassName; + module.exports = exports$1.default; + } (className, className.exports)); + return className.exports; +} + +var comment = {exports: {}}; + +var hasRequiredComment; + +function requireComment () { + if (hasRequiredComment) return comment.exports; + hasRequiredComment = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Comment = /*#__PURE__*/function (_Node) { + _inheritsLoose(Comment, _Node); + function Comment(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMMENT; + return _this; + } + return Comment; + }(_node["default"]); + exports$1["default"] = Comment; + module.exports = exports$1.default; + } (comment, comment.exports)); + return comment.exports; +} + +var id = {exports: {}}; + +var hasRequiredId; + +function requireId () { + if (hasRequiredId) return id.exports; + hasRequiredId = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var ID = /*#__PURE__*/function (_Node) { + _inheritsLoose(ID, _Node); + function ID(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.ID; + return _this; + } + var _proto = ID.prototype; + _proto.valueToString = function valueToString() { + return '#' + _Node.prototype.valueToString.call(this); + }; + return ID; + }(_node["default"]); + exports$1["default"] = ID; + module.exports = exports$1.default; + } (id, id.exports)); + return id.exports; +} + +var tag = {exports: {}}; + +var namespace = {exports: {}}; + +var hasRequiredNamespace; + +function requireNamespace () { + if (hasRequiredNamespace) return namespace.exports; + hasRequiredNamespace = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _util = /*@__PURE__*/ requireUtil$1(); + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Namespace = /*#__PURE__*/function (_Node) { + _inheritsLoose(Namespace, _Node); + function Namespace() { + return _Node.apply(this, arguments) || this; + } + var _proto = Namespace.prototype; + _proto.qualifiedName = function qualifiedName(value) { + if (this.namespace) { + return this.namespaceString + "|" + value; + } else { + return value; + } + }; + _proto.valueToString = function valueToString() { + return this.qualifiedName(_Node.prototype.valueToString.call(this)); + }; + _createClass(Namespace, [{ + key: "namespace", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + if (namespace === true || namespace === "*" || namespace === "&") { + this._namespace = namespace; + if (this.raws) { + delete this.raws.namespace; + } + return; + } + var escaped = (0, _cssesc["default"])(namespace, { + isIdentifier: true + }); + this._namespace = namespace; + if (escaped !== namespace) { + (0, _util.ensureObject)(this, "raws"); + this.raws.namespace = escaped; + } else if (this.raws) { + delete this.raws.namespace; + } + } + }, { + key: "ns", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + this.namespace = namespace; + } + }, { + key: "namespaceString", + get: function get() { + if (this.namespace) { + var ns = this.stringifyProperty("namespace"); + if (ns === true) { + return ''; + } else { + return ns; + } + } else { + return ''; + } + } + }]); + return Namespace; + }(_node["default"]); + exports$1["default"] = Namespace; + module.exports = exports$1.default; + } (namespace, namespace.exports)); + return namespace.exports; +} + +var hasRequiredTag; + +function requireTag () { + if (hasRequiredTag) return tag.exports; + hasRequiredTag = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Tag = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Tag, _Namespace); + function Tag(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.TAG; + return _this; + } + return Tag; + }(_namespace["default"]); + exports$1["default"] = Tag; + module.exports = exports$1.default; + } (tag, tag.exports)); + return tag.exports; +} + +var string = {exports: {}}; + +var hasRequiredString; + +function requireString () { + if (hasRequiredString) return string.exports; + hasRequiredString = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var String = /*#__PURE__*/function (_Node) { + _inheritsLoose(String, _Node); + function String(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.STRING; + return _this; + } + return String; + }(_node["default"]); + exports$1["default"] = String; + module.exports = exports$1.default; + } (string, string.exports)); + return string.exports; +} + +var pseudo = {exports: {}}; + +var hasRequiredPseudo; + +function requirePseudo () { + if (hasRequiredPseudo) return pseudo.exports; + hasRequiredPseudo = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _container = _interopRequireDefault(/*@__PURE__*/ requireContainer()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Pseudo = /*#__PURE__*/function (_Container) { + _inheritsLoose(Pseudo, _Container); + function Pseudo(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.PSEUDO; + return _this; + } + var _proto = Pseudo.prototype; + _proto.toString = function toString() { + var params = this.length ? '(' + this.map(String).join(',') + ')' : ''; + return [this.rawSpaceBefore, this.stringifyProperty("value"), params, this.rawSpaceAfter].join(''); + }; + return Pseudo; + }(_container["default"]); + exports$1["default"] = Pseudo; + module.exports = exports$1.default; + } (pseudo, pseudo.exports)); + return pseudo.exports; +} + +var attribute = {}; + +var node; +var hasRequiredNode; + +function requireNode () { + if (hasRequiredNode) return node; + hasRequiredNode = 1; + /** + * For Node.js, simply re-export the core `util.deprecate` function. + */ + + node = require$$0.deprecate; + return node; +} + +var hasRequiredAttribute; + +function requireAttribute () { + if (hasRequiredAttribute) return attribute; + hasRequiredAttribute = 1; + (function (exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + exports$1.unescapeValue = unescapeValue; + var _cssesc = _interopRequireDefault(/*@__PURE__*/ requireCssesc()); + var _unesc = _interopRequireDefault(/*@__PURE__*/ requireUnesc()); + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace()); + var _types = /*@__PURE__*/ requireTypes(); + var _CSSESC_QUOTE_OPTIONS; + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var deprecate = /*@__PURE__*/ requireNode(); + var WRAPPED_IN_QUOTES = /^('|")([^]*)\1$/; + var warnOfDeprecatedValueAssignment = deprecate(function () {}, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. " + "Call attribute.setValue() instead."); + var warnOfDeprecatedQuotedAssignment = deprecate(function () {}, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."); + var warnOfDeprecatedConstructor = deprecate(function () {}, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now."); + function unescapeValue(value) { + var deprecatedUsage = false; + var quoteMark = null; + var unescaped = value; + var m = unescaped.match(WRAPPED_IN_QUOTES); + if (m) { + quoteMark = m[1]; + unescaped = m[2]; + } + unescaped = (0, _unesc["default"])(unescaped); + if (unescaped !== value) { + deprecatedUsage = true; + } + return { + deprecatedUsage: deprecatedUsage, + unescaped: unescaped, + quoteMark: quoteMark + }; + } + function handleDeprecatedContructorOpts(opts) { + if (opts.quoteMark !== undefined) { + return opts; + } + if (opts.value === undefined) { + return opts; + } + warnOfDeprecatedConstructor(); + var _unescapeValue = unescapeValue(opts.value), + quoteMark = _unescapeValue.quoteMark, + unescaped = _unescapeValue.unescaped; + if (!opts.raws) { + opts.raws = {}; + } + if (opts.raws.value === undefined) { + opts.raws.value = opts.value; + } + opts.value = unescaped; + opts.quoteMark = quoteMark; + return opts; + } + var Attribute = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Attribute, _Namespace); + function Attribute(opts) { + var _this; + if (opts === void 0) { + opts = {}; + } + _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this; + _this.type = _types.ATTRIBUTE; + _this.raws = _this.raws || {}; + Object.defineProperty(_this.raws, 'unquoted', { + get: deprecate(function () { + return _this.value; + }, "attr.raws.unquoted is deprecated. Call attr.value instead."), + set: deprecate(function () { + return _this.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.") + }); + _this._constructed = true; + return _this; + } + + /** + * Returns the Attribute's value quoted such that it would be legal to use + * in the value of a css file. The original value's quotation setting + * used for stringification is left unchanged. See `setValue(value, options)` + * if you want to control the quote settings of a new value for the attribute. + * + * You can also change the quotation used for the current value by setting quoteMark. + * + * Options: + * * quoteMark {'"' | "'" | null} - Use this value to quote the value. If this + * option is not set, the original value for quoteMark will be used. If + * indeterminate, a double quote is used. The legal values are: + * * `null` - the value will be unquoted and characters will be escaped as necessary. + * * `'` - the value will be quoted with a single quote and single quotes are escaped. + * * `"` - the value will be quoted with a double quote and double quotes are escaped. + * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark + * over the quoteMark option value. + * * smart {boolean} - if true, will select a quote mark based on the value + * and the other options specified here. See the `smartQuoteMark()` + * method. + **/ + var _proto = Attribute.prototype; + _proto.getQuotedValue = function getQuotedValue(options) { + if (options === void 0) { + options = {}; + } + var quoteMark = this._determineQuoteMark(options); + var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark]; + var escaped = (0, _cssesc["default"])(this._value, cssescopts); + return escaped; + }; + _proto._determineQuoteMark = function _determineQuoteMark(options) { + return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options); + } + + /** + * Set the unescaped value with the specified quotation options. The value + * provided must not include any wrapping quote marks -- those quotes will + * be interpreted as part of the value and escaped accordingly. + */; + _proto.setValue = function setValue(value, options) { + if (options === void 0) { + options = {}; + } + this._value = value; + this._quoteMark = this._determineQuoteMark(options); + this._syncRawValue(); + } + + /** + * Intelligently select a quoteMark value based on the value's contents. If + * the value is a legal CSS ident, it will not be quoted. Otherwise a quote + * mark will be picked that minimizes the number of escapes. + * + * If there's no clear winner, the quote mark from these options is used, + * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is + * true). If the quoteMark is unspecified, a double quote is used. + * + * @param options This takes the quoteMark and preferCurrentQuoteMark options + * from the quoteValue method. + */; + _proto.smartQuoteMark = function smartQuoteMark(options) { + var v = this.value; + var numSingleQuotes = v.replace(/[^']/g, '').length; + var numDoubleQuotes = v.replace(/[^"]/g, '').length; + if (numSingleQuotes + numDoubleQuotes === 0) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped === v) { + return Attribute.NO_QUOTE; + } else { + var pref = this.preferredQuoteMark(options); + if (pref === Attribute.NO_QUOTE) { + // pick a quote mark that isn't none and see if it's smaller + var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE; + var opts = CSSESC_QUOTE_OPTIONS[quote]; + var quoteValue = (0, _cssesc["default"])(v, opts); + if (quoteValue.length < escaped.length) { + return quote; + } + } + return pref; + } + } else if (numDoubleQuotes === numSingleQuotes) { + return this.preferredQuoteMark(options); + } else if (numDoubleQuotes < numSingleQuotes) { + return Attribute.DOUBLE_QUOTE; + } else { + return Attribute.SINGLE_QUOTE; + } + } + + /** + * Selects the preferred quote mark based on the options and the current quote mark value. + * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)` + * instead. + */; + _proto.preferredQuoteMark = function preferredQuoteMark(options) { + var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark; + if (quoteMark === undefined) { + quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark; + } + if (quoteMark === undefined) { + quoteMark = Attribute.DOUBLE_QUOTE; + } + return quoteMark; + }; + _proto._syncRawValue = function _syncRawValue() { + var rawValue = (0, _cssesc["default"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]); + if (rawValue === this._value) { + if (this.raws) { + delete this.raws.value; + } + } else { + this.raws.value = rawValue; + } + }; + _proto._handleEscapes = function _handleEscapes(prop, value) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(value, { + isIdentifier: true + }); + if (escaped !== value) { + this.raws[prop] = escaped; + } else { + delete this.raws[prop]; + } + } + }; + _proto._spacesFor = function _spacesFor(name) { + var attrSpaces = { + before: '', + after: '' + }; + var spaces = this.spaces[name] || {}; + var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {}; + return Object.assign(attrSpaces, spaces, rawSpaces); + }; + _proto._stringFor = function _stringFor(name, spaceName, concat) { + if (spaceName === void 0) { + spaceName = name; + } + if (concat === void 0) { + concat = defaultAttrConcat; + } + var attrSpaces = this._spacesFor(spaceName); + return concat(this.stringifyProperty(name), attrSpaces); + } + + /** + * returns the offset of the attribute part specified relative to the + * start of the node of the output string. + * + * * "ns" - alias for "namespace" + * * "namespace" - the namespace if it exists. + * * "attribute" - the attribute name + * * "attributeNS" - the start of the attribute or its namespace + * * "operator" - the match operator of the attribute + * * "value" - The value (string or identifier) + * * "insensitive" - the case insensitivity flag; + * @param part One of the possible values inside an attribute. + * @returns -1 if the name is invalid or the value doesn't exist in this attribute. + */; + _proto.offsetOf = function offsetOf(name) { + var count = 1; + var attributeSpaces = this._spacesFor("attribute"); + count += attributeSpaces.before.length; + if (name === "namespace" || name === "ns") { + return this.namespace ? count : -1; + } + if (name === "attributeNS") { + return count; + } + count += this.namespaceString.length; + if (this.namespace) { + count += 1; + } + if (name === "attribute") { + return count; + } + count += this.stringifyProperty("attribute").length; + count += attributeSpaces.after.length; + var operatorSpaces = this._spacesFor("operator"); + count += operatorSpaces.before.length; + var operator = this.stringifyProperty("operator"); + if (name === "operator") { + return operator ? count : -1; + } + count += operator.length; + count += operatorSpaces.after.length; + var valueSpaces = this._spacesFor("value"); + count += valueSpaces.before.length; + var value = this.stringifyProperty("value"); + if (name === "value") { + return value ? count : -1; + } + count += value.length; + count += valueSpaces.after.length; + var insensitiveSpaces = this._spacesFor("insensitive"); + count += insensitiveSpaces.before.length; + if (name === "insensitive") { + return this.insensitive ? count : -1; + } + return -1; + }; + _proto.toString = function toString() { + var _this2 = this; + var selector = [this.rawSpaceBefore, '[']; + selector.push(this._stringFor('qualifiedAttribute', 'attribute')); + if (this.operator && (this.value || this.value === '')) { + selector.push(this._stringFor('operator')); + selector.push(this._stringFor('value')); + selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) { + if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) { + attrSpaces.before = " "; + } + return defaultAttrConcat(attrValue, attrSpaces); + })); + } + selector.push(']'); + selector.push(this.rawSpaceAfter); + return selector.join(''); + }; + _createClass(Attribute, [{ + key: "quoted", + get: function get() { + var qm = this.quoteMark; + return qm === "'" || qm === '"'; + }, + set: function set(value) { + warnOfDeprecatedQuotedAssignment(); + } + + /** + * returns a single (`'`) or double (`"`) quote character if the value is quoted. + * returns `null` if the value is not quoted. + * returns `undefined` if the quotation state is unknown (this can happen when + * the attribute is constructed without specifying a quote mark.) + */ + }, { + key: "quoteMark", + get: function get() { + return this._quoteMark; + } + + /** + * Set the quote mark to be used by this attribute's value. + * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute + * value is updated accordingly. + * + * @param {"'" | '"' | null} quoteMark The quote mark or `null` if the value should be unquoted. + */, + set: function set(quoteMark) { + if (!this._constructed) { + this._quoteMark = quoteMark; + return; + } + if (this._quoteMark !== quoteMark) { + this._quoteMark = quoteMark; + this._syncRawValue(); + } + } + }, { + key: "qualifiedAttribute", + get: function get() { + return this.qualifiedName(this.raws.attribute || this.attribute); + } + }, { + key: "insensitiveFlag", + get: function get() { + return this.insensitive ? 'i' : ''; + } + }, { + key: "value", + get: function get() { + return this._value; + }, + set: + /** + * Before 3.0, the value had to be set to an escaped value including any wrapped + * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value + * is unescaped during parsing and any quote marks are removed. + * + * Because the ambiguity of this semantic change, if you set `attr.value = newValue`, + * a deprecation warning is raised when the new value contains any characters that would + * require escaping (including if it contains wrapped quotes). + * + * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe + * how the new value is quoted. + */ + function set(v) { + if (this._constructed) { + var _unescapeValue2 = unescapeValue(v), + deprecatedUsage = _unescapeValue2.deprecatedUsage, + unescaped = _unescapeValue2.unescaped, + quoteMark = _unescapeValue2.quoteMark; + if (deprecatedUsage) { + warnOfDeprecatedValueAssignment(); + } + if (unescaped === this._value && quoteMark === this._quoteMark) { + return; + } + this._value = unescaped; + this._quoteMark = quoteMark; + this._syncRawValue(); + } else { + this._value = v; + } + } + }, { + key: "insensitive", + get: function get() { + return this._insensitive; + } + + /** + * Set the case insensitive flag. + * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag` + * of the attribute is updated accordingly. + * + * @param {true | false} insensitive true if the attribute should match case-insensitively. + */, + set: function set(insensitive) { + if (!insensitive) { + this._insensitive = false; + + // "i" and "I" can be used in "this.raws.insensitiveFlag" to store the original notation. + // When setting `attr.insensitive = false` both should be erased to ensure correct serialization. + if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) { + this.raws.insensitiveFlag = undefined; + } + } + this._insensitive = insensitive; + } + }, { + key: "attribute", + get: function get() { + return this._attribute; + }, + set: function set(name) { + this._handleEscapes("attribute", name); + this._attribute = name; + } + }]); + return Attribute; + }(_namespace["default"]); + exports$1["default"] = Attribute; + Attribute.NO_QUOTE = null; + Attribute.SINGLE_QUOTE = "'"; + Attribute.DOUBLE_QUOTE = '"'; + var CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = { + "'": { + quotes: 'single', + wrap: true + }, + '"': { + quotes: 'double', + wrap: true + } + }, _CSSESC_QUOTE_OPTIONS[null] = { + isIdentifier: true + }, _CSSESC_QUOTE_OPTIONS); + function defaultAttrConcat(attrValue, attrSpaces) { + return "" + attrSpaces.before + attrValue + attrSpaces.after; + } + } (attribute)); + return attribute; +} + +var universal = {exports: {}}; + +var hasRequiredUniversal; + +function requireUniversal () { + if (hasRequiredUniversal) return universal.exports; + hasRequiredUniversal = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _namespace = _interopRequireDefault(/*@__PURE__*/ requireNamespace()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Universal = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Universal, _Namespace); + function Universal(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.UNIVERSAL; + _this.value = '*'; + return _this; + } + return Universal; + }(_namespace["default"]); + exports$1["default"] = Universal; + module.exports = exports$1.default; + } (universal, universal.exports)); + return universal.exports; +} + +var combinator = {exports: {}}; + +var hasRequiredCombinator; + +function requireCombinator () { + if (hasRequiredCombinator) return combinator.exports; + hasRequiredCombinator = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Combinator = /*#__PURE__*/function (_Node) { + _inheritsLoose(Combinator, _Node); + function Combinator(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMBINATOR; + return _this; + } + return Combinator; + }(_node["default"]); + exports$1["default"] = Combinator; + module.exports = exports$1.default; + } (combinator, combinator.exports)); + return combinator.exports; +} + +var nesting = {exports: {}}; + +var hasRequiredNesting; + +function requireNesting () { + if (hasRequiredNesting) return nesting.exports; + hasRequiredNesting = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _node = _interopRequireDefault(/*@__PURE__*/ requireNode$1()); + var _types = /*@__PURE__*/ requireTypes(); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } + function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + var Nesting = /*#__PURE__*/function (_Node) { + _inheritsLoose(Nesting, _Node); + function Nesting(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.NESTING; + _this.value = '&'; + return _this; + } + return Nesting; + }(_node["default"]); + exports$1["default"] = Nesting; + module.exports = exports$1.default; + } (nesting, nesting.exports)); + return nesting.exports; +} + +var sortAscending = {exports: {}}; + +var hasRequiredSortAscending; + +function requireSortAscending () { + if (hasRequiredSortAscending) return sortAscending.exports; + hasRequiredSortAscending = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = sortAscending; + function sortAscending(list) { + return list.sort(function (a, b) { + return a - b; + }); + } + module.exports = exports$1.default; + } (sortAscending, sortAscending.exports)); + return sortAscending.exports; +} + +var tokenize = {}; + +var tokenTypes = {}; + +var hasRequiredTokenTypes; + +function requireTokenTypes () { + if (hasRequiredTokenTypes) return tokenTypes; + hasRequiredTokenTypes = 1; + + tokenTypes.__esModule = true; + tokenTypes.word = tokenTypes.tilde = tokenTypes.tab = tokenTypes.str = tokenTypes.space = tokenTypes.slash = tokenTypes.singleQuote = tokenTypes.semicolon = tokenTypes.plus = tokenTypes.pipe = tokenTypes.openSquare = tokenTypes.openParenthesis = tokenTypes.newline = tokenTypes.greaterThan = tokenTypes.feed = tokenTypes.equals = tokenTypes.doubleQuote = tokenTypes.dollar = tokenTypes.cr = tokenTypes.comment = tokenTypes.comma = tokenTypes.combinator = tokenTypes.colon = tokenTypes.closeSquare = tokenTypes.closeParenthesis = tokenTypes.caret = tokenTypes.bang = tokenTypes.backslash = tokenTypes.at = tokenTypes.asterisk = tokenTypes.ampersand = void 0; + var ampersand = 38; // `&`.charCodeAt(0); + tokenTypes.ampersand = ampersand; + var asterisk = 42; // `*`.charCodeAt(0); + tokenTypes.asterisk = asterisk; + var at = 64; // `@`.charCodeAt(0); + tokenTypes.at = at; + var comma = 44; // `,`.charCodeAt(0); + tokenTypes.comma = comma; + var colon = 58; // `:`.charCodeAt(0); + tokenTypes.colon = colon; + var semicolon = 59; // `;`.charCodeAt(0); + tokenTypes.semicolon = semicolon; + var openParenthesis = 40; // `(`.charCodeAt(0); + tokenTypes.openParenthesis = openParenthesis; + var closeParenthesis = 41; // `)`.charCodeAt(0); + tokenTypes.closeParenthesis = closeParenthesis; + var openSquare = 91; // `[`.charCodeAt(0); + tokenTypes.openSquare = openSquare; + var closeSquare = 93; // `]`.charCodeAt(0); + tokenTypes.closeSquare = closeSquare; + var dollar = 36; // `$`.charCodeAt(0); + tokenTypes.dollar = dollar; + var tilde = 126; // `~`.charCodeAt(0); + tokenTypes.tilde = tilde; + var caret = 94; // `^`.charCodeAt(0); + tokenTypes.caret = caret; + var plus = 43; // `+`.charCodeAt(0); + tokenTypes.plus = plus; + var equals = 61; // `=`.charCodeAt(0); + tokenTypes.equals = equals; + var pipe = 124; // `|`.charCodeAt(0); + tokenTypes.pipe = pipe; + var greaterThan = 62; // `>`.charCodeAt(0); + tokenTypes.greaterThan = greaterThan; + var space = 32; // ` `.charCodeAt(0); + tokenTypes.space = space; + var singleQuote = 39; // `'`.charCodeAt(0); + tokenTypes.singleQuote = singleQuote; + var doubleQuote = 34; // `"`.charCodeAt(0); + tokenTypes.doubleQuote = doubleQuote; + var slash = 47; // `/`.charCodeAt(0); + tokenTypes.slash = slash; + var bang = 33; // `!`.charCodeAt(0); + tokenTypes.bang = bang; + var backslash = 92; // '\\'.charCodeAt(0); + tokenTypes.backslash = backslash; + var cr = 13; // '\r'.charCodeAt(0); + tokenTypes.cr = cr; + var feed = 12; // '\f'.charCodeAt(0); + tokenTypes.feed = feed; + var newline = 10; // '\n'.charCodeAt(0); + tokenTypes.newline = newline; + var tab = 9; // '\t'.charCodeAt(0); + + // Expose aliases primarily for readability. + tokenTypes.tab = tab; + var str = singleQuote; + + // No good single character representation! + tokenTypes.str = str; + var comment = -1; + tokenTypes.comment = comment; + var word = -2; + tokenTypes.word = word; + var combinator = -3; + tokenTypes.combinator = combinator; + return tokenTypes; +} + +var hasRequiredTokenize; + +function requireTokenize () { + if (hasRequiredTokenize) return tokenize; + hasRequiredTokenize = 1; + (function (exports$1) { + + exports$1.__esModule = true; + exports$1.FIELDS = void 0; + exports$1["default"] = tokenize; + var t = _interopRequireWildcard(/*@__PURE__*/ requireTokenTypes()); + var _unescapable, _wordDelimiters; + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + var unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable); + var wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters); + var hex = {}; + var hexChars = "0123456789abcdefABCDEF"; + for (var i = 0; i < hexChars.length; i++) { + hex[hexChars.charCodeAt(i)] = true; + } + + /** + * Returns the last index of the bar css word + * @param {string} css The string in which the word begins + * @param {number} start The index into the string where word's first letter occurs + */ + function consumeWord(css, start) { + var next = start; + var code; + do { + code = css.charCodeAt(next); + if (wordDelimiters[code]) { + return next - 1; + } else if (code === t.backslash) { + next = consumeEscape(css, next) + 1; + } else { + // All other characters are part of the word + next++; + } + } while (next < css.length); + return next - 1; + } + + /** + * Returns the last index of the escape sequence + * @param {string} css The string in which the sequence begins + * @param {number} start The index into the string where escape character (`\`) occurs. + */ + function consumeEscape(css, start) { + var next = start; + var code = css.charCodeAt(next + 1); + if (unescapable[code]) ; else if (hex[code]) { + var hexDigits = 0; + // consume up to 6 hex chars + do { + next++; + hexDigits++; + code = css.charCodeAt(next + 1); + } while (hex[code] && hexDigits < 6); + // if fewer than 6 hex chars, a trailing space ends the escape + if (hexDigits < 6 && code === t.space) { + next++; + } + } else { + // the next char is part of the current word + next++; + } + return next; + } + var FIELDS = { + TYPE: 0, + START_LINE: 1, + START_COL: 2, + END_LINE: 3, + END_COL: 4, + START_POS: 5, + END_POS: 6 + }; + exports$1.FIELDS = FIELDS; + function tokenize(input) { + var tokens = []; + var css = input.css.valueOf(); + var _css = css, + length = _css.length; + var offset = -1; + var line = 1; + var start = 0; + var end = 0; + var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType; + function unclosed(what, fix) { + if (input.safe) { + // fyi: this is never set to true. + css += fix; + next = css.length - 1; + } else { + throw input.error('Unclosed ' + what, line, start - offset, start); + } + } + while (start < length) { + code = css.charCodeAt(start); + if (code === t.newline) { + offset = start; + line += 1; + } + switch (code) { + case t.space: + case t.tab: + case t.newline: + case t.cr: + case t.feed: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + if (code === t.newline) { + offset = next; + line += 1; + } + } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed); + tokenType = t.space; + endLine = line; + endColumn = next - offset - 1; + end = next; + break; + case t.plus: + case t.greaterThan: + case t.tilde: + case t.pipe: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe); + tokenType = t.combinator; + endLine = line; + endColumn = start - offset; + end = next; + break; + + // Consume these characters as single tokens. + case t.asterisk: + case t.ampersand: + case t.bang: + case t.comma: + case t.equals: + case t.dollar: + case t.caret: + case t.openSquare: + case t.closeSquare: + case t.colon: + case t.semicolon: + case t.openParenthesis: + case t.closeParenthesis: + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + case t.singleQuote: + case t.doubleQuote: + quote = code === t.singleQuote ? "'" : '"'; + next = start; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + unclosed('quote', quote); + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === t.backslash) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + tokenType = t.str; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + default: + if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) { + next = css.indexOf('*/', start + 2) + 1; + if (next === 0) { + unclosed('comment', '*/'); + } + content = css.slice(start, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + if (last > 0) { + nextLine = line + last; + nextOffset = next - lines[last].length; + } else { + nextLine = line; + nextOffset = offset; + } + tokenType = t.comment; + line = nextLine; + endLine = nextLine; + endColumn = next - nextOffset; + } else if (code === t.slash) { + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + } else { + next = consumeWord(css, start); + tokenType = t.word; + endLine = line; + endColumn = next - offset; + } + end = next + 1; + break; + } + + // Ensure that the token structure remains consistent + tokens.push([tokenType, + // [0] Token type + line, + // [1] Starting line + start - offset, + // [2] Starting column + endLine, + // [3] Ending line + endColumn, + // [4] Ending column + start, + // [5] Start position / Source index + end // [6] End position + ]); + + // Reset offset for the next token + if (nextOffset) { + offset = nextOffset; + nextOffset = null; + } + start = end; + } + return tokens; + } + } (tokenize)); + return tokenize; +} + +var hasRequiredParser; + +function requireParser () { + if (hasRequiredParser) return parser.exports; + hasRequiredParser = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _root = _interopRequireDefault(/*@__PURE__*/ requireRoot()); + var _selector = _interopRequireDefault(/*@__PURE__*/ requireSelector()); + var _className = _interopRequireDefault(/*@__PURE__*/ requireClassName()); + var _comment = _interopRequireDefault(/*@__PURE__*/ requireComment()); + var _id = _interopRequireDefault(/*@__PURE__*/ requireId()); + var _tag = _interopRequireDefault(/*@__PURE__*/ requireTag()); + var _string = _interopRequireDefault(/*@__PURE__*/ requireString()); + var _pseudo = _interopRequireDefault(/*@__PURE__*/ requirePseudo()); + var _attribute = _interopRequireWildcard(/*@__PURE__*/ requireAttribute()); + var _universal = _interopRequireDefault(/*@__PURE__*/ requireUniversal()); + var _combinator = _interopRequireDefault(/*@__PURE__*/ requireCombinator()); + var _nesting = _interopRequireDefault(/*@__PURE__*/ requireNesting()); + var _sortAscending = _interopRequireDefault(/*@__PURE__*/ requireSortAscending()); + var _tokenize = _interopRequireWildcard(/*@__PURE__*/ requireTokenize()); + var tokens = _interopRequireWildcard(/*@__PURE__*/ requireTokenTypes()); + var types = _interopRequireWildcard(/*@__PURE__*/ requireTypes()); + var _util = /*@__PURE__*/ requireUtil$1(); + var _WHITESPACE_TOKENS, _Object$assign; + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + var WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS); + var WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign)); + function tokenStart(token) { + return { + line: token[_tokenize.FIELDS.START_LINE], + column: token[_tokenize.FIELDS.START_COL] + }; + } + function tokenEnd(token) { + return { + line: token[_tokenize.FIELDS.END_LINE], + column: token[_tokenize.FIELDS.END_COL] + }; + } + function getSource(startLine, startColumn, endLine, endColumn) { + return { + start: { + line: startLine, + column: startColumn + }, + end: { + line: endLine, + column: endColumn + } + }; + } + function getTokenSource(token) { + return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]); + } + function getTokenSourceSpan(startToken, endToken) { + if (!startToken) { + return undefined; + } + return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]); + } + function unescapeProp(node, prop) { + var value = node[prop]; + if (typeof value !== "string") { + return; + } + if (value.indexOf("\\") !== -1) { + (0, _util.ensureObject)(node, 'raws'); + node[prop] = (0, _util.unesc)(value); + if (node.raws[prop] === undefined) { + node.raws[prop] = value; + } + } + return node; + } + function indexesOf(array, item) { + var i = -1; + var indexes = []; + while ((i = array.indexOf(item, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; + } + function uniqs() { + var list = Array.prototype.concat.apply([], arguments); + return list.filter(function (item, i) { + return i === list.indexOf(item); + }); + } + var Parser = /*#__PURE__*/function () { + function Parser(rule, options) { + if (options === void 0) { + options = {}; + } + this.rule = rule; + this.options = Object.assign({ + lossy: false, + safe: false + }, options); + this.position = 0; + this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector; + this.tokens = (0, _tokenize["default"])({ + css: this.css, + error: this._errorGenerator(), + safe: this.options.safe + }); + var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]); + this.root = new _root["default"]({ + source: rootSource + }); + this.root.errorGenerator = this._errorGenerator(); + var selector = new _selector["default"]({ + source: { + start: { + line: 1, + column: 1 + } + }, + sourceIndex: 0 + }); + this.root.append(selector); + this.current = selector; + this.loop(); + } + var _proto = Parser.prototype; + _proto._errorGenerator = function _errorGenerator() { + var _this = this; + return function (message, errorOptions) { + if (typeof _this.rule === 'string') { + return new Error(message); + } + return _this.rule.error(message, errorOptions); + }; + }; + _proto.attribute = function attribute() { + var attr = []; + var startingToken = this.currToken; + this.position++; + while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + attr.push(this.currToken); + this.position++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + } + var len = attr.length; + var node = { + source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + }; + if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) { + return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]); + } + var pos = 0; + var spaceBefore = ''; + var commentBefore = ''; + var lastAdded = null; + var spaceAfterMeaningfulToken = false; + while (pos < len) { + var token = attr[pos]; + var content = this.content(token); + var next = attr[pos + 1]; + switch (token[_tokenize.FIELDS.TYPE]) { + case tokens.space: + // if ( + // len === 1 || + // pos === 0 && this.content(next) === '|' + // ) { + // return this.expected('attribute', token[TOKEN.START_POS], content); + // } + spaceAfterMeaningfulToken = true; + if (this.options.lossy) { + break; + } + if (lastAdded) { + (0, _util.ensureObject)(node, 'spaces', lastAdded); + var prevContent = node.spaces[lastAdded].after || ''; + node.spaces[lastAdded].after = prevContent + content; + var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null; + if (existingComment) { + node.raws.spaces[lastAdded].after = existingComment + content; + } + } else { + spaceBefore = spaceBefore + content; + commentBefore = commentBefore + content; + } + break; + case tokens.asterisk: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if ((!node.namespace || lastAdded === "namespace" && !spaceAfterMeaningfulToken) && next) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = spaceBefore; + commentBefore = ''; + } + node.namespace = (node.namespace || "") + content; + var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null; + if (rawValue) { + node.raws.namespace += content; + } + lastAdded = 'namespace'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.dollar: + if (lastAdded === "value") { + var oldRawValue = (0, _util.getProp)(node, 'raws', 'value'); + node.value += "$"; + if (oldRawValue) { + node.raws.value = oldRawValue + "$"; + } + break; + } + // Falls through + case tokens.caret: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.combinator: + if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + if (content !== '|') { + spaceAfterMeaningfulToken = false; + break; + } + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if (!node.namespace && !node.attribute) { + node.namespace = true; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.word: + if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && + // this look-ahead probably fails with comment nodes involved. + !node.operator && !node.namespace) { + node.namespace = content; + lastAdded = 'namespace'; + } else if (!node.attribute || lastAdded === "attribute" && !spaceAfterMeaningfulToken) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = commentBefore; + commentBefore = ''; + } + node.attribute = (node.attribute || "") + content; + var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null; + if (_rawValue) { + node.raws.attribute += content; + } + lastAdded = 'attribute'; + } else if (!node.value && node.value !== "" || lastAdded === "value" && !(spaceAfterMeaningfulToken || node.quoteMark)) { + var _unescaped = (0, _util.unesc)(content); + var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || ''; + var oldValue = node.value || ''; + node.value = oldValue + _unescaped; + node.quoteMark = null; + if (_unescaped !== content || _oldRawValue) { + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = (_oldRawValue || oldValue) + content; + } + lastAdded = 'value'; + } else { + var insensitive = content === 'i' || content === "I"; + if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) { + node.insensitive = insensitive; + if (!insensitive || content === "I") { + (0, _util.ensureObject)(node, 'raws'); + node.raws.insensitiveFlag = content; + } + lastAdded = 'insensitive'; + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'insensitive'); + node.spaces.insensitive.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive'); + node.raws.spaces.insensitive.before = commentBefore; + commentBefore = ''; + } + } else if (node.value || node.value === '') { + lastAdded = 'value'; + node.value += content; + if (node.raws.value) { + node.raws.value += content; + } + } + } + spaceAfterMeaningfulToken = false; + break; + case tokens.str: + if (!node.attribute || !node.operator) { + return this.error("Expected an attribute followed by an operator preceding the string.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + var _unescapeValue = (0, _attribute.unescapeValue)(content), + unescaped = _unescapeValue.unescaped, + quoteMark = _unescapeValue.quoteMark; + node.value = unescaped; + node.quoteMark = quoteMark; + lastAdded = 'value'; + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = content; + spaceAfterMeaningfulToken = false; + break; + case tokens.equals: + if (!node.attribute) { + return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content); + } + if (node.value) { + return this.error('Unexpected "=" found; an operator was already defined.', { + index: token[_tokenize.FIELDS.START_POS] + }); + } + node.operator = node.operator ? node.operator + content : content; + lastAdded = 'operator'; + spaceAfterMeaningfulToken = false; + break; + case tokens.comment: + if (lastAdded) { + if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') { + var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || ''; + var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment; + (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded); + node.raws.spaces[lastAdded].after = rawLastComment + content; + } else { + var lastValue = node[lastAdded] || ''; + var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue; + (0, _util.ensureObject)(node, 'raws'); + node.raws[lastAdded] = rawLastValue + content; + } + } else { + commentBefore = commentBefore + content; + } + break; + default: + return this.error("Unexpected \"" + content + "\" found.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + pos++; + } + unescapeProp(node, "attribute"); + unescapeProp(node, "namespace"); + this.newNode(new _attribute["default"](node)); + this.position++; + } + + /** + * return a node containing meaningless garbage up to (but not including) the specified token position. + * if the token position is negative, all remaining tokens are consumed. + * + * This returns an array containing a single string node if all whitespace, + * otherwise an array of comment nodes with space before and after. + * + * These tokens are not added to the current selector, the caller can add them or use them to amend + * a previous node's space metadata. + * + * In lossy mode, this returns only comments. + */; + _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) { + if (stopPosition < 0) { + stopPosition = this.tokens.length; + } + var startPosition = this.position; + var nodes = []; + var space = ""; + var lastComment = undefined; + do { + if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) { + if (!this.options.lossy) { + space += this.content(); + } + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) { + var spaces = {}; + if (space) { + spaces.before = space; + space = ""; + } + lastComment = new _comment["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + spaces: spaces + }); + nodes.push(lastComment); + } + } while (++this.position < stopPosition); + if (space) { + if (lastComment) { + lastComment.spaces.after = space; + } else if (!this.options.lossy) { + var firstToken = this.tokens[startPosition]; + var lastToken = this.tokens[this.position - 1]; + nodes.push(new _string["default"]({ + value: '', + source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: { + before: space, + after: '' + } + })); + } + } + return nodes; + } + + /** + * + * @param {*} nodes + */; + _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) { + var _this2 = this; + if (requiredSpace === void 0) { + requiredSpace = false; + } + var space = ""; + var rawSpace = ""; + nodes.forEach(function (n) { + var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace); + var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace); + space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0); + rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0); + }); + if (rawSpace === space) { + rawSpace = undefined; + } + var result = { + space: space, + rawSpace: rawSpace + }; + return result; + }; + _proto.isNamedCombinator = function isNamedCombinator(position) { + if (position === void 0) { + position = this.position; + } + return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash; + }; + _proto.namedCombinator = function namedCombinator() { + if (this.isNamedCombinator()) { + var nameRaw = this.content(this.tokens[this.position + 1]); + var name = (0, _util.unesc)(nameRaw).toLowerCase(); + var raws = {}; + if (name !== nameRaw) { + raws.value = "/" + nameRaw + "/"; + } + var node = new _combinator["default"]({ + value: "/" + name + "/", + source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + raws: raws + }); + this.position = this.position + 3; + return node; + } else { + this.unexpected(); + } + }; + _proto.combinator = function combinator() { + var _this3 = this; + if (this.content() === '|') { + return this.namespace(); + } + // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector. + var nextSigTokenPos = this.locateNextMeaningfulToken(this.position); + if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + if (nodes.length > 0) { + var last = this.current.last; + if (last) { + var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes), + space = _this$convertWhitespa.space, + rawSpace = _this$convertWhitespa.rawSpace; + if (rawSpace !== undefined) { + last.rawSpaceAfter += rawSpace; + } + last.spaces.after += space; + } else { + nodes.forEach(function (n) { + return _this3.newNode(n); + }); + } + } + return; + } + var firstToken = this.currToken; + var spaceOrDescendantSelectorNodes = undefined; + if (nextSigTokenPos > this.position) { + spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + } + var node; + if (this.isNamedCombinator()) { + node = this.namedCombinator(); + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) { + node = new _combinator["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS] + }); + this.position++; + } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) ; else if (!spaceOrDescendantSelectorNodes) { + this.unexpected(); + } + if (node) { + if (spaceOrDescendantSelectorNodes) { + var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes), + _space = _this$convertWhitespa2.space, + _rawSpace = _this$convertWhitespa2.rawSpace; + node.spaces.before = _space; + node.rawSpaceBefore = _rawSpace; + } + } else { + // descendant combinator + var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true), + _space2 = _this$convertWhitespa3.space, + _rawSpace2 = _this$convertWhitespa3.rawSpace; + if (!_rawSpace2) { + _rawSpace2 = _space2; + } + var spaces = {}; + var raws = { + spaces: {} + }; + if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) { + spaces.before = _space2.slice(0, _space2.length - 1); + raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1); + } else if (_space2[0] === ' ' && _rawSpace2[0] === ' ') { + spaces.after = _space2.slice(1); + raws.spaces.after = _rawSpace2.slice(1); + } else { + raws.value = _rawSpace2; + } + node = new _combinator["default"]({ + value: ' ', + source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: spaces, + raws: raws + }); + } + if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) { + node.spaces.after = this.optionalSpace(this.content()); + this.position++; + } + return this.newNode(node); + }; + _proto.comma = function comma() { + if (this.position === this.tokens.length - 1) { + this.root.trailingComma = true; + this.position++; + return; + } + this.current._inferEndPosition(); + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position + 1]) + }, + sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS] + }); + this.current.parent.append(selector); + this.current = selector; + this.position++; + }; + _proto.comment = function comment() { + var current = this.currToken; + this.newNode(new _comment["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.error = function error(message, opts) { + throw this.root.error(message, opts); + }; + _proto.missingBackslash = function missingBackslash() { + return this.error('Expected a backslash preceding the semicolon.', { + index: this.currToken[_tokenize.FIELDS.START_POS] + }); + }; + _proto.missingParenthesis = function missingParenthesis() { + return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.missingSquareBracket = function missingSquareBracket() { + return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpected = function unexpected() { + return this.error("Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpectedPipe = function unexpectedPipe() { + return this.error("Unexpected '|'.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.namespace = function namespace() { + var before = this.prevToken && this.content(this.prevToken) || true; + if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.position++; + return this.word(before); + } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) { + this.position++; + return this.universal(before); + } + this.unexpectedPipe(); + }; + _proto.nesting = function nesting() { + if (this.nextToken) { + var nextContent = this.content(this.nextToken); + if (nextContent === "|") { + this.position++; + return; + } + } + var current = this.currToken; + this.newNode(new _nesting["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.parentheses = function parentheses() { + var last = this.current.last; + var unbalanced = 1; + this.position++; + if (last && last.type === types.PSEUDO) { + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position]) + }, + sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS] + }); + var cache = this.current; + last.append(selector); + this.current = selector; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + if (unbalanced) { + this.parse(); + } else { + this.current.source.end = tokenEnd(this.currToken); + this.current.parent.source.end = tokenEnd(this.currToken); + this.position++; + } + } + this.current = cache; + } else { + // I think this case should be an error. It's used to implement a basic parse of media queries + // but I don't think it's a good idea. + var parenStart = this.currToken; + var parenValue = "("; + var parenEnd; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + parenEnd = this.currToken; + parenValue += this.parseParenthesisToken(this.currToken); + this.position++; + } + if (last) { + last.appendToPropertyAndEscape("value", parenValue, parenValue); + } else { + this.newNode(new _string["default"]({ + value: parenValue, + source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]), + sourceIndex: parenStart[_tokenize.FIELDS.START_POS] + })); + } + } + if (unbalanced) { + return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.pseudo = function pseudo() { + var _this4 = this; + var pseudoStr = ''; + var startingToken = this.currToken; + while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) { + pseudoStr += this.content(); + this.position++; + } + if (!this.currToken) { + return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1); + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.splitWord(false, function (first, length) { + pseudoStr += first; + _this4.newNode(new _pseudo["default"]({ + value: pseudoStr, + source: getTokenSourceSpan(startingToken, _this4.currToken), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + })); + if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + _this4.error('Misplaced parenthesis.', { + index: _this4.nextToken[_tokenize.FIELDS.START_POS] + }); + } + }); + } else { + return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.space = function space() { + var content = this.content(); + // Handle space before and after the selector + if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) { + return node.type === 'comment'; + })) { + this.spaces = this.optionalSpace(content); + this.position++; + } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + this.current.last.spaces.after = this.optionalSpace(content); + this.position++; + } else { + this.combinator(); + } + }; + _proto.string = function string() { + var current = this.currToken; + this.newNode(new _string["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.universal = function universal(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + var current = this.currToken; + this.newNode(new _universal["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + }), namespace); + this.position++; + }; + _proto.splitWord = function splitWord(namespace, firstCallback) { + var _this5 = this; + var nextToken = this.nextToken; + var word = this.content(); + while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) { + this.position++; + var current = this.content(); + word += current; + if (current.lastIndexOf('\\') === current.length - 1) { + var next = this.nextToken; + if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) { + word += this.requiredSpace(this.content(next)); + this.position++; + } + } + nextToken = this.nextToken; + } + var hasClass = indexesOf(word, '.').filter(function (i) { + // Allow escaped dot within class name + var escapedDot = word[i - 1] === '\\'; + // Allow decimal numbers percent in @keyframes + var isKeyframesPercent = /^\d+\.\d+%$/.test(word); + return !escapedDot && !isKeyframesPercent; + }); + var hasId = indexesOf(word, '#').filter(function (i) { + return word[i - 1] !== '\\'; + }); + // Eliminate Sass interpolations from the list of id indexes + var interpolations = indexesOf(word, '#{'); + if (interpolations.length) { + hasId = hasId.filter(function (hashIndex) { + return !~interpolations.indexOf(hashIndex); + }); + } + var indices = (0, _sortAscending["default"])(uniqs([0].concat(hasClass, hasId))); + indices.forEach(function (ind, i) { + var index = indices[i + 1] || word.length; + var value = word.slice(ind, index); + if (i === 0 && firstCallback) { + return firstCallback.call(_this5, value, indices.length); + } + var node; + var current = _this5.currToken; + var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i]; + var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1)); + if (~hasClass.indexOf(ind)) { + var classNameOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _className["default"](unescapeProp(classNameOpts, "value")); + } else if (~hasId.indexOf(ind)) { + var idOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _id["default"](unescapeProp(idOpts, "value")); + } else { + var tagOpts = { + value: value, + source: source, + sourceIndex: sourceIndex + }; + unescapeProp(tagOpts, "value"); + node = new _tag["default"](tagOpts); + } + _this5.newNode(node, namespace); + // Ensure that the namespace is used only once + namespace = null; + }); + this.position++; + }; + _proto.word = function word(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + return this.splitWord(namespace); + }; + _proto.loop = function loop() { + while (this.position < this.tokens.length) { + this.parse(true); + } + this.current._inferEndPosition(); + return this.root; + }; + _proto.parse = function parse(throwOnParenthesis) { + switch (this.currToken[_tokenize.FIELDS.TYPE]) { + case tokens.space: + this.space(); + break; + case tokens.comment: + this.comment(); + break; + case tokens.openParenthesis: + this.parentheses(); + break; + case tokens.closeParenthesis: + if (throwOnParenthesis) { + this.missingParenthesis(); + } + break; + case tokens.openSquare: + this.attribute(); + break; + case tokens.dollar: + case tokens.caret: + case tokens.equals: + case tokens.word: + this.word(); + break; + case tokens.colon: + this.pseudo(); + break; + case tokens.comma: + this.comma(); + break; + case tokens.asterisk: + this.universal(); + break; + case tokens.ampersand: + this.nesting(); + break; + case tokens.slash: + case tokens.combinator: + this.combinator(); + break; + case tokens.str: + this.string(); + break; + // These cases throw; no break needed. + case tokens.closeSquare: + this.missingSquareBracket(); + case tokens.semicolon: + this.missingBackslash(); + default: + this.unexpected(); + } + } + + /** + * Helpers + */; + _proto.expected = function expected(description, index, found) { + if (Array.isArray(description)) { + var last = description.pop(); + description = description.join(', ') + " or " + last; + } + var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a'; + if (!found) { + return this.error("Expected " + an + " " + description + ".", { + index: index + }); + } + return this.error("Expected " + an + " " + description + ", found \"" + found + "\" instead.", { + index: index + }); + }; + _proto.requiredSpace = function requiredSpace(space) { + return this.options.lossy ? ' ' : space; + }; + _proto.optionalSpace = function optionalSpace(space) { + return this.options.lossy ? '' : space; + }; + _proto.lossySpace = function lossySpace(space, required) { + if (this.options.lossy) { + return required ? ' ' : ''; + } else { + return space; + } + }; + _proto.parseParenthesisToken = function parseParenthesisToken(token) { + var content = this.content(token); + if (token[_tokenize.FIELDS.TYPE] === tokens.space) { + return this.requiredSpace(content); + } else { + return content; + } + }; + _proto.newNode = function newNode(node, namespace) { + if (namespace) { + if (/^ +$/.test(namespace)) { + if (!this.options.lossy) { + this.spaces = (this.spaces || '') + namespace; + } + namespace = true; + } + node.namespace = namespace; + unescapeProp(node, "namespace"); + } + if (this.spaces) { + node.spaces.before = this.spaces; + this.spaces = ''; + } + return this.current.append(node); + }; + _proto.content = function content(token) { + if (token === void 0) { + token = this.currToken; + } + return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]); + }; + /** + * returns the index of the next non-whitespace, non-comment token. + * returns -1 if no meaningful token is found. + */ + _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) { + if (startPosition === void 0) { + startPosition = this.position + 1; + } + var searchPosition = startPosition; + while (searchPosition < this.tokens.length) { + if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) { + searchPosition++; + continue; + } else { + return searchPosition; + } + } + return -1; + }; + _createClass(Parser, [{ + key: "currToken", + get: function get() { + return this.tokens[this.position]; + } + }, { + key: "nextToken", + get: function get() { + return this.tokens[this.position + 1]; + } + }, { + key: "prevToken", + get: function get() { + return this.tokens[this.position - 1]; + } + }]); + return Parser; + }(); + exports$1["default"] = Parser; + module.exports = exports$1.default; + } (parser, parser.exports)); + return parser.exports; +} + +var hasRequiredProcessor; + +function requireProcessor () { + if (hasRequiredProcessor) return processor.exports; + hasRequiredProcessor = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _parser = _interopRequireDefault(/*@__PURE__*/ requireParser()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var Processor = /*#__PURE__*/function () { + function Processor(func, options) { + this.func = func || function noop() {}; + this.funcRes = null; + this.options = options; + } + var _proto = Processor.prototype; + _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.updateSelector === false) { + return false; + } else { + return typeof rule !== "string"; + } + }; + _proto._isLossy = function _isLossy(options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.lossless === false) { + return true; + } else { + return false; + } + }; + _proto._root = function _root(rule, options) { + if (options === void 0) { + options = {}; + } + var parser = new _parser["default"](rule, this._parseOptions(options)); + return parser.root; + }; + _proto._parseOptions = function _parseOptions(options) { + return { + lossy: this._isLossy(options) + }; + }; + _proto._run = function _run(rule, options) { + var _this = this; + if (options === void 0) { + options = {}; + } + return new Promise(function (resolve, reject) { + try { + var root = _this._root(rule, options); + Promise.resolve(_this.func(root)).then(function (transform) { + var string = undefined; + if (_this._shouldUpdateSelector(rule, options)) { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + }).then(resolve, reject); + } catch (e) { + reject(e); + return; + } + }); + }; + _proto._runSync = function _runSync(rule, options) { + if (options === void 0) { + options = {}; + } + var root = this._root(rule, options); + var transform = this.func(root); + if (transform && typeof transform.then === "function") { + throw new Error("Selector processor returned a promise to a synchronous call."); + } + var string = undefined; + if (options.updateSelector && typeof rule !== "string") { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + } + + /** + * Process rule into a selector AST. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise<parser.Root>} The AST of the selector after processing it. + */; + _proto.ast = function ast(rule, options) { + return this._run(rule, options).then(function (result) { + return result.root; + }); + } + + /** + * Process rule into a selector AST synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {parser.Root} The AST of the selector after processing it. + */; + _proto.astSync = function astSync(rule, options) { + return this._runSync(rule, options).root; + } + + /** + * Process a selector into a transformed value asynchronously + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise<any>} The value returned by the processor. + */; + _proto.transform = function transform(rule, options) { + return this._run(rule, options).then(function (result) { + return result.transform; + }); + } + + /** + * Process a selector into a transformed value synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {any} The value returned by the processor. + */; + _proto.transformSync = function transformSync(rule, options) { + return this._runSync(rule, options).transform; + } + + /** + * Process a selector into a new selector string asynchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.process = function process(rule, options) { + return this._run(rule, options).then(function (result) { + return result.string || result.root.toString(); + }); + } + + /** + * Process a selector into a new selector string synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.processSync = function processSync(rule, options) { + var result = this._runSync(rule, options); + return result.string || result.root.toString(); + }; + return Processor; + }(); + exports$1["default"] = Processor; + module.exports = exports$1.default; + } (processor, processor.exports)); + return processor.exports; +} + +var selectors = {}; + +var constructors = {}; + +var hasRequiredConstructors; + +function requireConstructors () { + if (hasRequiredConstructors) return constructors; + hasRequiredConstructors = 1; + + constructors.__esModule = true; + constructors.universal = constructors.tag = constructors.string = constructors.selector = constructors.root = constructors.pseudo = constructors.nesting = constructors.id = constructors.comment = constructors.combinator = constructors.className = constructors.attribute = void 0; + var _attribute = _interopRequireDefault(/*@__PURE__*/ requireAttribute()); + var _className = _interopRequireDefault(/*@__PURE__*/ requireClassName()); + var _combinator = _interopRequireDefault(/*@__PURE__*/ requireCombinator()); + var _comment = _interopRequireDefault(/*@__PURE__*/ requireComment()); + var _id = _interopRequireDefault(/*@__PURE__*/ requireId()); + var _nesting = _interopRequireDefault(/*@__PURE__*/ requireNesting()); + var _pseudo = _interopRequireDefault(/*@__PURE__*/ requirePseudo()); + var _root = _interopRequireDefault(/*@__PURE__*/ requireRoot()); + var _selector = _interopRequireDefault(/*@__PURE__*/ requireSelector()); + var _string = _interopRequireDefault(/*@__PURE__*/ requireString()); + var _tag = _interopRequireDefault(/*@__PURE__*/ requireTag()); + var _universal = _interopRequireDefault(/*@__PURE__*/ requireUniversal()); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var attribute = function attribute(opts) { + return new _attribute["default"](opts); + }; + constructors.attribute = attribute; + var className = function className(opts) { + return new _className["default"](opts); + }; + constructors.className = className; + var combinator = function combinator(opts) { + return new _combinator["default"](opts); + }; + constructors.combinator = combinator; + var comment = function comment(opts) { + return new _comment["default"](opts); + }; + constructors.comment = comment; + var id = function id(opts) { + return new _id["default"](opts); + }; + constructors.id = id; + var nesting = function nesting(opts) { + return new _nesting["default"](opts); + }; + constructors.nesting = nesting; + var pseudo = function pseudo(opts) { + return new _pseudo["default"](opts); + }; + constructors.pseudo = pseudo; + var root = function root(opts) { + return new _root["default"](opts); + }; + constructors.root = root; + var selector = function selector(opts) { + return new _selector["default"](opts); + }; + constructors.selector = selector; + var string = function string(opts) { + return new _string["default"](opts); + }; + constructors.string = string; + var tag = function tag(opts) { + return new _tag["default"](opts); + }; + constructors.tag = tag; + var universal = function universal(opts) { + return new _universal["default"](opts); + }; + constructors.universal = universal; + return constructors; +} + +var guards = {}; + +var hasRequiredGuards; + +function requireGuards () { + if (hasRequiredGuards) return guards; + hasRequiredGuards = 1; + + guards.__esModule = true; + guards.isComment = guards.isCombinator = guards.isClassName = guards.isAttribute = void 0; + guards.isContainer = isContainer; + guards.isIdentifier = void 0; + guards.isNamespace = isNamespace; + guards.isNesting = void 0; + guards.isNode = isNode; + guards.isPseudo = void 0; + guards.isPseudoClass = isPseudoClass; + guards.isPseudoElement = isPseudoElement; + guards.isUniversal = guards.isTag = guards.isString = guards.isSelector = guards.isRoot = void 0; + var _types = /*@__PURE__*/ requireTypes(); + var _IS_TYPE; + var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE); + function isNode(node) { + return typeof node === "object" && IS_TYPE[node.type]; + } + function isNodeType(type, node) { + return isNode(node) && node.type === type; + } + var isAttribute = isNodeType.bind(null, _types.ATTRIBUTE); + guards.isAttribute = isAttribute; + var isClassName = isNodeType.bind(null, _types.CLASS); + guards.isClassName = isClassName; + var isCombinator = isNodeType.bind(null, _types.COMBINATOR); + guards.isCombinator = isCombinator; + var isComment = isNodeType.bind(null, _types.COMMENT); + guards.isComment = isComment; + var isIdentifier = isNodeType.bind(null, _types.ID); + guards.isIdentifier = isIdentifier; + var isNesting = isNodeType.bind(null, _types.NESTING); + guards.isNesting = isNesting; + var isPseudo = isNodeType.bind(null, _types.PSEUDO); + guards.isPseudo = isPseudo; + var isRoot = isNodeType.bind(null, _types.ROOT); + guards.isRoot = isRoot; + var isSelector = isNodeType.bind(null, _types.SELECTOR); + guards.isSelector = isSelector; + var isString = isNodeType.bind(null, _types.STRING); + guards.isString = isString; + var isTag = isNodeType.bind(null, _types.TAG); + guards.isTag = isTag; + var isUniversal = isNodeType.bind(null, _types.UNIVERSAL); + guards.isUniversal = isUniversal; + function isPseudoElement(node) { + return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value.toLowerCase() === ":before" || node.value.toLowerCase() === ":after" || node.value.toLowerCase() === ":first-letter" || node.value.toLowerCase() === ":first-line"); + } + function isPseudoClass(node) { + return isPseudo(node) && !isPseudoElement(node); + } + function isContainer(node) { + return !!(isNode(node) && node.walk); + } + function isNamespace(node) { + return isAttribute(node) || isTag(node); + } + return guards; +} + +var hasRequiredSelectors; + +function requireSelectors () { + if (hasRequiredSelectors) return selectors; + hasRequiredSelectors = 1; + (function (exports$1) { + + exports$1.__esModule = true; + var _types = /*@__PURE__*/ requireTypes(); + Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _types[key]) return; + exports$1[key] = _types[key]; + }); + var _constructors = /*@__PURE__*/ requireConstructors(); + Object.keys(_constructors).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _constructors[key]) return; + exports$1[key] = _constructors[key]; + }); + var _guards = /*@__PURE__*/ requireGuards(); + Object.keys(_guards).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports$1 && exports$1[key] === _guards[key]) return; + exports$1[key] = _guards[key]; + }); + } (selectors)); + return selectors; +} + +var hasRequiredDist; + +function requireDist () { + if (hasRequiredDist) return dist.exports; + hasRequiredDist = 1; + (function (module, exports$1) { + + exports$1.__esModule = true; + exports$1["default"] = void 0; + var _processor = _interopRequireDefault(/*@__PURE__*/ requireProcessor()); + var selectors = _interopRequireWildcard(/*@__PURE__*/ requireSelectors()); + function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + function _interopRequireWildcard(obj, nodeInterop) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + var parser = function parser(processor) { + return new _processor["default"](processor); + }; + Object.assign(parser, selectors); + delete parser.__esModule; + var _default = parser; + exports$1["default"] = _default; + module.exports = exports$1.default; + } (dist, dist.exports)); + return dist.exports; +} + +var distExports = /*@__PURE__*/ requireDist(); +var selectorParser = /*@__PURE__*/getDefaultExportFromCjs(distExports); + +const animationNameRE = /^(?:-\w+-)?animation-name$/; +const animationRE = /^(?:-\w+-)?animation$/; +const keyframesRE = /^(?:-\w+-)?keyframes$/; +const scopedPlugin = (id = "") => { + const keyframes = /* @__PURE__ */ Object.create(null); + const shortId = id.replace(/^data-v-/, ""); + return { + postcssPlugin: "vue-sfc-scoped", + Rule(rule) { + processRule(id, rule); + }, + AtRule(node) { + if (keyframesRE.test(node.name) && !node.params.endsWith(`-${shortId}`)) { + keyframes[node.params] = node.params = node.params + "-" + shortId; + } + }, + OnceExit(root) { + if (Object.keys(keyframes).length) { + root.walkDecls((decl) => { + if (animationNameRE.test(decl.prop)) { + decl.value = decl.value.split(",").map((v) => keyframes[v.trim()] || v.trim()).join(","); + } + if (animationRE.test(decl.prop)) { + decl.value = decl.value.split(",").map((v) => { + const vals = v.trim().split(/\s+/); + const i = vals.findIndex((val) => keyframes[val]); + if (i !== -1) { + vals.splice(i, 1, keyframes[vals[i]]); + return vals.join(" "); + } else { + return v; + } + }).join(","); + } + }); + } + } + }; +}; +const processedRules = /* @__PURE__ */ new WeakSet(); +function processRule(id, rule) { + if (processedRules.has(rule) || rule.parent && rule.parent.type === "atrule" && keyframesRE.test(rule.parent.name)) { + return; + } + processedRules.add(rule); + let deep = false; + let parent = rule.parent; + while (parent && parent.type !== "root") { + if (parent.__deep) { + deep = true; + break; + } + parent = parent.parent; + } + rule.selector = selectorParser((selectorRoot) => { + selectorRoot.each((selector) => { + rewriteSelector(id, rule, selector, selectorRoot, deep); + }); + }).processSync(rule.selector); +} +function rewriteSelector(id, rule, selector, selectorRoot, deep, slotted = false) { + let node = null; + let shouldInject = !deep; + selector.each((n) => { + if (n.type === "combinator" && (n.value === ">>>" || n.value === "/deep/")) { + n.value = " "; + n.spaces.before = n.spaces.after = ""; + warn( + `the >>> and /deep/ combinators have been deprecated. Use :deep() instead.` + ); + return false; + } + if (n.type === "pseudo") { + const { value } = n; + if (value === ":deep" || value === "::v-deep") { + rule.__deep = true; + if (n.nodes.length) { + let last = n; + n.nodes[0].each((ss) => { + selector.insertAfter(last, ss); + last = ss; + }); + const prev = selector.at(selector.index(n) - 1); + if (!prev || !isSpaceCombinator(prev)) { + selector.insertAfter( + n, + selectorParser.combinator({ + value: " " + }) + ); + } + selector.removeChild(n); + } else { + warn( + `${value} usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead of ${value} <inner-selector>.` + ); + const prev = selector.at(selector.index(n) - 1); + if (prev && isSpaceCombinator(prev)) { + selector.removeChild(prev); + } + selector.removeChild(n); + } + return false; + } + if (value === ":slotted" || value === "::v-slotted") { + rewriteSelector( + id, + rule, + n.nodes[0], + selectorRoot, + deep, + true + ); + let last = n; + n.nodes[0].each((ss) => { + selector.insertAfter(last, ss); + last = ss; + }); + selector.removeChild(n); + shouldInject = false; + return false; + } + if (value === ":global" || value === "::v-global") { + selector.replaceWith(n.nodes[0]); + return false; + } + } + if (n.type === "universal") { + const prev = selector.at(selector.index(n) - 1); + const next = selector.at(selector.index(n) + 1); + if (!prev) { + if (next) { + if (next.type === "combinator" && next.value === " ") { + selector.removeChild(next); + } + selector.removeChild(n); + return; + } else { + node = selectorParser.combinator({ + value: "" + }); + selector.insertBefore(n, node); + selector.removeChild(n); + return false; + } + } + if (node) return; + } + if (n.type !== "pseudo" && n.type !== "combinator" || n.type === "pseudo" && (n.value === ":is" || n.value === ":where") && !node) { + node = n; + } + }); + if (rule.nodes.some((node2) => node2.type === "rule")) { + const deep2 = rule.__deep; + if (!deep2) { + extractAndWrapNodes(rule); + const atruleNodes = rule.nodes.filter((node2) => node2.type === "atrule"); + for (const atnode of atruleNodes) { + extractAndWrapNodes(atnode); + } + } + shouldInject = deep2; + } + if (node) { + const { type, value } = node; + if (type === "pseudo" && (value === ":is" || value === ":where")) { + node.nodes.forEach( + (value2) => rewriteSelector(id, rule, value2, selectorRoot, deep, slotted) + ); + shouldInject = false; + } + } + if (node) { + node.spaces.after = ""; + } else { + selector.first.spaces.before = ""; + } + if (shouldInject) { + const idToAdd = slotted ? id + "-s" : id; + selector.insertAfter( + // If node is null it means we need to inject [id] at the start + // insertAfter can handle `null` here + node, + selectorParser.attribute({ + attribute: idToAdd, + value: idToAdd, + raws: {}, + quoteMark: `"` + }) + ); + } +} +function isSpaceCombinator(node) { + return node.type === "combinator" && /^\s+$/.test(node.value); +} +function extractAndWrapNodes(parentNode) { + if (!parentNode.nodes) return; + const nodes = parentNode.nodes.filter( + (node) => node.type === "decl" || node.type === "comment" + ); + if (nodes.length) { + for (const node of nodes) { + parentNode.removeChild(node); + } + const wrappedRule = new Rule({ + nodes, + selector: "&" + }); + parentNode.prepend(wrappedRule); + } +} +scopedPlugin.postcss = true; + +var sourceMap = {}; + +var sourceMapGenerator = {}; + +var base64Vlq = {}; + +var base64 = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBase64; + +function requireBase64 () { + if (hasRequiredBase64) return base64; + hasRequiredBase64 = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + + /** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ + base64.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + + /** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ + base64.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; + }; + return base64; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBase64Vlq; + +function requireBase64Vlq () { + if (hasRequiredBase64Vlq) return base64Vlq; + hasRequiredBase64Vlq = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + var base64 = /*@__PURE__*/ requireBase64(); + + // A single base 64 digit can contain 6 bits of data. For the base 64 variable + // length quantities we use in the source map spec, the first bit is the sign, + // the next four bits are the actual value, and the 6th bit is the + // continuation bit. The continuation bit tells us whether there are more + // digits in this value following this digit. + // + // Continuation + // | Sign + // | | + // V V + // 101011 + + var VLQ_BASE_SHIFT = 5; + + // binary: 100000 + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + + // binary: 011111 + var VLQ_BASE_MASK = VLQ_BASE - 1; + + // binary: 100000 + var VLQ_CONTINUATION_BIT = VLQ_BASE; + + /** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ + function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; + } + + /** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; + } + + /** + * Returns the base 64 VLQ encoded value. + */ + base64Vlq.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; + }; + + /** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ + base64Vlq.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; + return base64Vlq; +} + +var util = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredUtil; + +function requireUtil () { + if (hasRequiredUtil) return util; + hasRequiredUtil = 1; + (function (exports$1) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + /** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports$1.getArg = getArg; + + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports$1.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports$1.urlGenerate = urlGenerate; + + /** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ + function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports$1.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + } + exports$1.normalize = normalize; + + /** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports$1.join = join; + + exports$1.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); + }; + + /** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports$1.relative = relative; + + var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); + }()); + + function identity (s) { + return s; + } + + /** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ + function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; + } + exports$1.toSetString = supportsNullProto ? identity : toSetString; + + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; + } + exports$1.fromSetString = supportsNullProto ? identity : fromSetString; + + function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; + } + + /** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByOriginalPositions = compareByOriginalPositions; + + /** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; + } + + /** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); + } + exports$1.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + + /** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); + } + exports$1.parseSourceMapInput = parseSourceMapInput; + + /** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); + } + exports$1.computeSourceURL = computeSourceURL; + } (util)); + return util; +} + +var arraySet = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredArraySet; + +function requireArraySet () { + if (hasRequiredArraySet) return arraySet; + hasRequiredArraySet = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil(); + var has = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + + /** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); + } + + /** + * Static method for creating ArraySet instances from an existing array. + */ + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + }; + + /** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + + /** + * Add the given string to this set. + * + * @param String aStr + */ + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + + /** + * Is the given string a member of this set? + * + * @param String aStr + */ + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } + }; + + /** + * What is the index of the given string in the array? + * + * @param String aStr + */ + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); + }; + + /** + * What is the element at the given index? + * + * @param Number aIdx + */ + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); + }; + + /** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + + arraySet.ArraySet = ArraySet; + return arraySet; +} + +var mappingList = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredMappingList; + +function requireMappingList () { + if (hasRequiredMappingList) return mappingList; + hasRequiredMappingList = 1; + /* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil(); + + /** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ + function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + + /** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ + function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + + mappingList.MappingList = MappingList; + return mappingList; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceMapGenerator; + +function requireSourceMapGenerator () { + if (hasRequiredSourceMapGenerator) return sourceMapGenerator; + hasRequiredSourceMapGenerator = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var base64VLQ = /*@__PURE__*/ requireBase64Vlq(); + var util = /*@__PURE__*/ requireUtil(); + var ArraySet = /*@__PURE__*/ requireArraySet().ArraySet; + var MappingList = /*@__PURE__*/ requireMappingList().MappingList; + + /** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + + SourceMapGenerator.prototype._version = 3; + + /** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ + SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ + SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + + /** + * Set the source content for a source file. + */ + SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + + /** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ + SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + + /** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ + SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + + /** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ + SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ''; + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + + SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + + /** + * Externalize the source map. + */ + SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + + /** + * Render the source map being generated to a string. + */ + SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + + sourceMapGenerator.SourceMapGenerator = SourceMapGenerator; + return sourceMapGenerator; +} + +var sourceMapConsumer = {}; + +var binarySearch = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredBinarySearch; + +function requireBinarySearch () { + if (hasRequiredBinarySearch) return binarySearch; + hasRequiredBinarySearch = 1; + (function (exports$1) { + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + exports$1.GREATEST_LOWER_BOUND = 1; + exports$1.LEAST_UPPER_BOUND = 2; + + /** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports$1.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports$1.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + + /** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ + exports$1.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports$1.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; + }; + } (binarySearch)); + return binarySearch; +} + +var quickSort = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredQuickSort; + +function requireQuickSort () { + if (hasRequiredQuickSort) return quickSort; + hasRequiredQuickSort = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + // It turns out that some (most?) JavaScript engines don't self-host + // `Array.prototype.sort`. This makes sense because C++ will likely remain + // faster than JS when doing raw CPU-intensive sorting. However, when using a + // custom comparator function, calling back and forth between the VM's C++ and + // JIT'd JS is rather slow *and* loses JIT type information, resulting in + // worse generated code for the comparator function than would be optimal. In + // fact, when sorting with a comparator, these costs outweigh the benefits of + // sorting in C++. By using our own JS-implemented Quick Sort (below), we get + // a ~3500ms mean speed-up in `bench/bench.html`. + + /** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + + /** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ + function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); + } + + /** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ + function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } + } + + /** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + quickSort.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); + }; + return quickSort; +} + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceMapConsumer; + +function requireSourceMapConsumer () { + if (hasRequiredSourceMapConsumer) return sourceMapConsumer; + hasRequiredSourceMapConsumer = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var util = /*@__PURE__*/ requireUtil(); + var binarySearch = /*@__PURE__*/ requireBinarySearch(); + var ArraySet = /*@__PURE__*/ requireArraySet().ArraySet; + var base64VLQ = /*@__PURE__*/ requireBase64Vlq(); + var quickSort = /*@__PURE__*/ requireQuickSort().quickSort; + + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + SourceMapConsumer.prototype._version = 3; + + // `__generatedMappings` and `__originalMappings` are arrays that hold the + // parsed mapping coordinates from the source map's "mappings" attribute. They + // are lazily instantiated, accessed via the `_generatedMappings` and + // `_originalMappings` getters respectively, and we only parse the mappings + // and create these arrays once queried for a source location. We jump through + // these hoops because there can be many thousands of mappings, and parsing + // them is expensive, so we only want to do it if we must. + // + // Each object in the arrays is of the form: + // + // { + // generatedLine: The line number in the generated code, + // generatedColumn: The column number in the generated code, + // source: The path to the original source file that generated this + // chunk of code, + // originalLine: The line number in the original source that + // corresponds to this chunk of generated code, + // originalColumn: The column number in the original source that + // corresponds to this chunk of generated code, + // name: The name of the original symbol which generated this chunk of + // code. + // } + // + // All properties except for `generatedLine` and `generatedColumn` can be + // `null`. + // + // `_generatedMappings` is ordered by the generated positions. + // + // `_originalMappings` is ordered by the original positions. + + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } + }); + + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } + }); + + SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + + /** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ + SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + + /** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + + sourceMapConsumer.SourceMapConsumer = SourceMapConsumer; + + /** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + + /** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; + }; + + /** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ + BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + + /** + * The version of the source mapping spec that we are consuming. + */ + BasicSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } + }); + + /** + * Provide the JIT with a nice shape / hidden class. + */ + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + + /** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ + BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + + sourceMapConsumer.BasicSourceMapConsumer = BasicSourceMapConsumer; + + /** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); + } + + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + + /** + * The version of the source mapping spec that we are consuming. + */ + IndexedSourceMapConsumer.prototype._version = 3; + + /** + * The list of original sources. + */ + Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + + sourceMapConsumer.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + return sourceMapConsumer; +} + +var sourceNode = {}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ + +var hasRequiredSourceNode; + +function requireSourceNode () { + if (hasRequiredSourceNode) return sourceNode; + hasRequiredSourceNode = 1; + /* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + var SourceMapGenerator = /*@__PURE__*/ requireSourceMapGenerator().SourceMapGenerator; + var util = /*@__PURE__*/ requireUtil(); + + // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other + // operating systems these days (capturing the result). + var REGEX_NEWLINE = /(\r?\n)/; + + // Newline character code for charCodeAt() comparisons + var NEWLINE_CODE = 10; + + // Private symbol for identifying `SourceNode`s when multiple versions of + // the source-map library are loaded. This MUST NOT CHANGE across + // versions! + var isSourceNode = "$$$isSourceNode$$$"; + + /** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); + } + + /** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ + SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + + /** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + }; + + /** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } + }; + + /** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + + /** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; + }; + + /** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ + SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + + /** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ + SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + + /** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ + SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; + }; + + /** + * Returns the string representation of this source node along with a source + * map. + */ + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; + }; + + sourceNode.SourceNode = SourceNode; + return sourceNode; +} + +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var hasRequiredSourceMap; + +function requireSourceMap () { + if (hasRequiredSourceMap) return sourceMap; + hasRequiredSourceMap = 1; + sourceMap.SourceMapGenerator = /*@__PURE__*/ requireSourceMapGenerator().SourceMapGenerator; + sourceMap.SourceMapConsumer = /*@__PURE__*/ requireSourceMapConsumer().SourceMapConsumer; + sourceMap.SourceNode = /*@__PURE__*/ requireSourceNode().SourceNode; + return sourceMap; +} + +var mergeSourceMap; +var hasRequiredMergeSourceMap; + +function requireMergeSourceMap () { + if (hasRequiredMergeSourceMap) return mergeSourceMap; + hasRequiredMergeSourceMap = 1; + var sourceMap = /*@__PURE__*/ requireSourceMap(); + var SourceMapConsumer = sourceMap.SourceMapConsumer; + var SourceMapGenerator = sourceMap.SourceMapGenerator; + + mergeSourceMap = merge; + + /** + * Merge old source map and new source map and return merged. + * If old or new source map value is falsy, return another one as it is. + * + * @param {object|string} [oldMap] old source map object + * @param {object|string} [newmap] new source map object + * @return {object|undefined} merged source map object, or undefined when both old and new source map are undefined + */ + function merge(oldMap, newMap) { + if (!oldMap) return newMap + if (!newMap) return oldMap + + var oldMapConsumer = new SourceMapConsumer(oldMap); + var newMapConsumer = new SourceMapConsumer(newMap); + var mergedMapGenerator = new SourceMapGenerator(); + + // iterate on new map and overwrite original position of new map with one of old map + newMapConsumer.eachMapping(function(m) { + // pass when `originalLine` is null. + // It occurs in case that the node does not have origin in original code. + if (m.originalLine == null) return + + var origPosInOldMap = oldMapConsumer.originalPositionFor({ + line: m.originalLine, + column: m.originalColumn + }); + + if (origPosInOldMap.source == null) return + + mergedMapGenerator.addMapping({ + original: { + line: origPosInOldMap.line, + column: origPosInOldMap.column + }, + generated: { + line: m.generatedLine, + column: m.generatedColumn + }, + source: origPosInOldMap.source, + name: origPosInOldMap.name + }); + }); + + var consumers = [oldMapConsumer, newMapConsumer]; + consumers.forEach(function(consumer) { + consumer.sources.forEach(function(sourceFile) { + mergedMapGenerator._sources.add(sourceFile); + var sourceContent = consumer.sourceContentFor(sourceFile); + if (sourceContent != null) { + mergedMapGenerator.setSourceContent(sourceFile, sourceContent); + } + }); + }); + + mergedMapGenerator._sourceRoot = oldMap.sourceRoot; + mergedMapGenerator._file = oldMap.file; + + return JSON.parse(mergedMapGenerator.toString()) + } + return mergeSourceMap; +} + +var mergeSourceMapExports = /*@__PURE__*/ requireMergeSourceMap(); +var merge = /*@__PURE__*/getDefaultExportFromCjs(mergeSourceMapExports); + +var __defProp$5 = Object.defineProperty; +var __defProps$4 = Object.defineProperties; +var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols; +var __hasOwnProp$5 = Object.prototype.hasOwnProperty; +var __propIsEnum$5 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$5 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$5.call(b, prop)) + __defNormalProp$5(a, prop, b[prop]); + if (__getOwnPropSymbols$5) + for (var prop of __getOwnPropSymbols$5(b)) { + if (__propIsEnum$5.call(b, prop)) + __defNormalProp$5(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b)); +const scss = (source, map, options, load = require) => { + const nodeSass = load("sass"); + const { compileString, renderSync } = nodeSass; + const data = getSource(source, options.filename, options.additionalData); + let css; + let dependencies; + let sourceMap; + try { + if (compileString) { + const { pathToFileURL, fileURLToPath } = load("url"); + const result = compileString(data, __spreadProps$4(__spreadValues$5({}, options), { + url: pathToFileURL(options.filename), + sourceMap: !!map + })); + css = result.css; + dependencies = result.loadedUrls.map((url) => fileURLToPath(url)); + sourceMap = map ? result.sourceMap : void 0; + } else { + const result = renderSync(__spreadProps$4(__spreadValues$5({}, options), { + data, + file: options.filename, + outFile: options.filename, + sourceMap: !!map + })); + css = result.css.toString(); + dependencies = result.stats.includedFiles; + sourceMap = map ? JSON.parse(result.map.toString()) : void 0; + } + if (map) { + return { + code: css, + errors: [], + dependencies, + map: merge(map, sourceMap) + }; + } + return { code: css, errors: [], dependencies }; + } catch (e) { + return { code: "", errors: [e], dependencies: [] }; + } +}; +const sass = (source, map, options, load) => scss( + source, + map, + __spreadProps$4(__spreadValues$5({}, options), { + indentedSyntax: true + }), + load +); +const less = (source, map, options, load = require) => { + const nodeLess = load("less"); + let result; + let error = null; + nodeLess.render( + getSource(source, options.filename, options.additionalData), + __spreadProps$4(__spreadValues$5({}, options), { syncImport: true }), + (err, output) => { + error = err; + result = output; + } + ); + if (error) return { code: "", errors: [error], dependencies: [] }; + const dependencies = result.imports; + if (map) { + return { + code: result.css.toString(), + map: merge(map, result.map), + errors: [], + dependencies + }; + } + return { + code: result.css.toString(), + errors: [], + dependencies + }; +}; +const styl = (source, map, options, load = require) => { + const nodeStylus = load("stylus"); + try { + const ref = nodeStylus(source, options); + if (map) ref.set("sourcemap", { inline: false, comment: false }); + const result = ref.render(); + const dependencies = ref.deps(); + if (map) { + return { + code: result, + map: merge(map, ref.sourcemap), + errors: [], + dependencies + }; + } + return { code: result, errors: [], dependencies }; + } catch (e) { + return { code: "", errors: [e], dependencies: [] }; + } +}; +function getSource(source, filename, additionalData) { + if (!additionalData) return source; + if (isFunction$1(additionalData)) { + return additionalData(source, filename); + } + return additionalData + source; +} +const processors = { + less, + sass, + scss, + styl, + stylus: styl +}; + +var __defProp$4 = Object.defineProperty; +var __defProps$3 = Object.defineProperties; +var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols; +var __hasOwnProp$4 = Object.prototype.hasOwnProperty; +var __propIsEnum$4 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$4 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$4.call(b, prop)) + __defNormalProp$4(a, prop, b[prop]); + if (__getOwnPropSymbols$4) + for (var prop of __getOwnPropSymbols$4(b)) { + if (__propIsEnum$4.call(b, prop)) + __defNormalProp$4(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b)); +function compileStyle(options) { + return doCompileStyle(__spreadProps$3(__spreadValues$4({}, options), { + isAsync: false + })); +} +function compileStyleAsync(options) { + return doCompileStyle(__spreadProps$3(__spreadValues$4({}, options), { + isAsync: true + })); +} +function doCompileStyle(options) { + const { + filename, + id, + scoped = false, + trim = true, + isProd = false, + modules = false, + modulesOptions = {}, + preprocessLang, + postcssOptions, + postcssPlugins + } = options; + const preprocessor = preprocessLang && processors[preprocessLang]; + const preProcessedSource = preprocessor && preprocess(options, preprocessor); + const map = preProcessedSource ? preProcessedSource.map : options.inMap || options.map; + const source = preProcessedSource ? preProcessedSource.code : options.source; + const shortId = id.replace(/^data-v-/, ""); + const longId = `data-v-${shortId}`; + const plugins = (postcssPlugins || []).slice(); + plugins.unshift(cssVarsPlugin({ id: shortId, isProd })); + if (trim) { + plugins.push(trimPlugin()); + } + if (scoped) { + plugins.push(scopedPlugin(longId)); + } + let cssModules; + if (modules) { + { + throw new Error( + "[@vue/compiler-sfc] `modules` option is not supported in the browser build." + ); + } + } + const postCSSOptions = __spreadProps$3(__spreadValues$4({}, postcssOptions), { + to: filename, + from: filename + }); + if (map) { + postCSSOptions.map = { + inline: false, + annotation: false, + prev: map + }; + } + let result; + let code; + let outMap; + const dependencies = new Set( + preProcessedSource ? preProcessedSource.dependencies : [] + ); + dependencies.delete(filename); + const errors = []; + if (preProcessedSource && preProcessedSource.errors.length) { + errors.push(...preProcessedSource.errors); + } + const recordPlainCssDependencies = (messages) => { + messages.forEach((msg) => { + if (msg.type === "dependency") { + dependencies.add(msg.file); + } + }); + return dependencies; + }; + try { + result = postcss(plugins).process(source, postCSSOptions); + if (options.isAsync) { + return result.then((result2) => ({ + code: result2.css || "", + map: result2.map && result2.map.toJSON(), + errors, + modules: cssModules, + rawResult: result2, + dependencies: recordPlainCssDependencies(result2.messages) + })).catch((error) => ({ + code: "", + map: void 0, + errors: [...errors, error], + rawResult: void 0, + dependencies + })); + } + recordPlainCssDependencies(result.messages); + code = result.css; + outMap = result.map; + } catch (e) { + errors.push(e); + } + return { + code: code || ``, + map: outMap && outMap.toJSON(), + errors, + rawResult: result, + dependencies + }; +} +function preprocess(options, preprocessor) { + if (!options.preprocessCustomRequire) { + throw new Error( + `[@vue/compiler-sfc] Style preprocessing in the browser build must provide the \`preprocessCustomRequire\` option to return the in-browser version of the preprocessor.` + ); + } + return preprocessor( + options.source, + options.inMap || options.map, + __spreadValues$4({ + filename: options.filename + }, options.preprocessOptions), + options.preprocessCustomRequire + ); +} + +const UNKNOWN_TYPE = "Unknown"; +function resolveObjectKey(node, computed) { + switch (node.type) { + case "StringLiteral": + case "NumericLiteral": + return String(node.value); + case "Identifier": + if (!computed) return node.name; + } + return void 0; +} +function concatStrings(strs) { + return strs.filter((s) => !!s).join(", "); +} +function isLiteralNode(node) { + return node.type.endsWith("Literal"); +} +function isCallOf(node, test) { + return !!(node && test && node.type === "CallExpression" && node.callee.type === "Identifier" && (typeof test === "string" ? node.callee.name === test : test(node.callee.name))); +} +function toRuntimeTypeString(types) { + return types.length > 1 ? `[${types.join(", ")}]` : types[0]; +} +function getImportedName(specifier) { + if (specifier.type === "ImportSpecifier") + return specifier.imported.type === "Identifier" ? specifier.imported.name : specifier.imported.value; + else if (specifier.type === "ImportNamespaceSpecifier") return "*"; + return "default"; +} +function getId(node) { + return node.type === "Identifier" ? node.name : node.type === "StringLiteral" ? node.value : null; +} +function getStringLiteralKey(node) { + return node.computed ? node.key.type === "TemplateLiteral" && !node.key.expressions.length ? node.key.quasis.map((q) => q.value.cooked).join("") : null : node.key.type === "Identifier" ? node.key.name : node.key.type === "StringLiteral" ? node.key.value : node.key.type === "NumericLiteral" ? String(node.key.value) : null; +} +const normalize = (path.posix || path).normalize; +const windowsSlashRE = /\\/g; +function normalizePath(p) { + return normalize(p.replace(windowsSlashRE, "/")); +} +const joinPaths = (path.posix || path).join; +const propNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~\-]/; +function getEscapedPropName(key) { + return propNameEscapeSymbolsRE.test(key) ? JSON.stringify(key) : key; +} +const isJS = (...langs) => langs.some((lang) => lang === "js" || lang === "jsx"); +const isTS = (...langs) => langs.some((lang) => lang === "ts" || lang === "tsx"); + +function analyzeScriptBindings(ast) { + for (const node of ast) { + if (node.type === "ExportDefaultDeclaration" && node.declaration.type === "ObjectExpression") { + return analyzeBindingsFromOptions(node.declaration); + } + } + return {}; +} +function analyzeBindingsFromOptions(node) { + const bindings = {}; + Object.defineProperty(bindings, "__isScriptSetup", { + enumerable: false, + value: false + }); + for (const property of node.properties) { + if (property.type === "ObjectProperty" && !property.computed && property.key.type === "Identifier") { + if (property.key.name === "props") { + for (const key of getObjectOrArrayExpressionKeys(property.value)) { + bindings[key] = "props"; + } + } else if (property.key.name === "inject") { + for (const key of getObjectOrArrayExpressionKeys(property.value)) { + bindings[key] = "options"; + } + } else if (property.value.type === "ObjectExpression" && (property.key.name === "computed" || property.key.name === "methods")) { + for (const key of getObjectExpressionKeys(property.value)) { + bindings[key] = "options"; + } + } + } else if (property.type === "ObjectMethod" && property.key.type === "Identifier" && (property.key.name === "setup" || property.key.name === "data")) { + for (const bodyItem of property.body.body) { + if (bodyItem.type === "ReturnStatement" && bodyItem.argument && bodyItem.argument.type === "ObjectExpression") { + for (const key of getObjectExpressionKeys(bodyItem.argument)) { + bindings[key] = property.key.name === "setup" ? "setup-maybe-ref" : "data"; + } + } + } + } + } + return bindings; +} +function getObjectExpressionKeys(node) { + const keys = []; + for (const prop of node.properties) { + if (prop.type === "SpreadElement") continue; + const key = resolveObjectKey(prop.key, prop.computed); + if (key) keys.push(String(key)); + } + return keys; +} +function getArrayExpressionKeys(node) { + const keys = []; + for (const element of node.elements) { + if (element && element.type === "StringLiteral") { + keys.push(element.value); + } + } + return keys; +} +function getObjectOrArrayExpressionKeys(value) { + if (value.type === "ArrayExpression") { + return getArrayExpressionKeys(value); + } + if (value.type === "ObjectExpression") { + return getObjectExpressionKeys(value); + } + return []; +} + +// src/vlq.ts +var comma = ",".charCodeAt(0); +var semicolon = ";".charCodeAt(0); +var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var intToChar = new Uint8Array(64); +var charToInt = new Uint8Array(128); +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} +function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; +} + +// src/strings.ts +var bufLength = 1024 * 16; +var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } +} : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + } +}; +var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +}; +function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); +} + +class BitSet { + constructor(arg) { + this.bits = arg instanceof BitSet ? arg.bits.slice() : []; + } + + add(n) { + this.bits[n >> 5] |= 1 << (n & 31); + } + + has(n) { + return !!(this.bits[n >> 5] & (1 << (n & 31))); + } +} + +class Chunk { + constructor(start, end, content) { + this.start = start; + this.end = end; + this.original = content; + + this.intro = ''; + this.outro = ''; + + this.content = content; + this.storeName = false; + this.edited = false; + + { + this.previous = null; + this.next = null; + } + } + + appendLeft(content) { + this.outro += content; + } + + appendRight(content) { + this.intro = this.intro + content; + } + + clone() { + const chunk = new Chunk(this.start, this.end, this.original); + + chunk.intro = this.intro; + chunk.outro = this.outro; + chunk.content = this.content; + chunk.storeName = this.storeName; + chunk.edited = this.edited; + + return chunk; + } + + contains(index) { + return this.start < index && index < this.end; + } + + eachNext(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.next; + } + } + + eachPrevious(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.previous; + } + } + + edit(content, storeName, contentOnly) { + this.content = content; + if (!contentOnly) { + this.intro = ''; + this.outro = ''; + } + this.storeName = storeName; + + this.edited = true; + + return this; + } + + prependLeft(content) { + this.outro = content + this.outro; + } + + prependRight(content) { + this.intro = content + this.intro; + } + + reset() { + this.intro = ''; + this.outro = ''; + if (this.edited) { + this.content = this.original; + this.storeName = false; + this.edited = false; + } + } + + split(index) { + const sliceIndex = index - this.start; + + const originalBefore = this.original.slice(0, sliceIndex); + const originalAfter = this.original.slice(sliceIndex); + + this.original = originalBefore; + + const newChunk = new Chunk(index, this.end, originalAfter); + newChunk.outro = this.outro; + this.outro = ''; + + this.end = index; + + if (this.edited) { + // after split we should save the edit content record into the correct chunk + // to make sure sourcemap correct + // For example: + // ' test'.trim() + // split -> ' ' + 'test' + // ✔️ edit -> '' + 'test' + // ✖️ edit -> 'test' + '' + // TODO is this block necessary?... + newChunk.edit('', false); + this.content = ''; + } else { + this.content = originalBefore; + } + + newChunk.next = this.next; + if (newChunk.next) newChunk.next.previous = newChunk; + newChunk.previous = this; + this.next = newChunk; + + return newChunk; + } + + toString() { + return this.intro + this.content + this.outro; + } + + trimEnd(rx) { + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + this.split(this.start + trimmed.length).edit('', undefined, true); + if (this.edited) { + // save the change, if it has been edited + this.edit(trimmed, this.storeName, true); + } + } + return true; + } else { + this.edit('', undefined, true); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + } + } + + trimStart(rx) { + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + const newChunk = this.split(this.end - trimmed.length); + if (this.edited) { + // save the change, if it has been edited + newChunk.edit(trimmed, this.storeName, true); + } + this.edit('', undefined, true); + } + return true; + } else { + this.edit('', undefined, true); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + } + } +} + +function getBtoa() { + if (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') { + return (str) => globalThis.btoa(unescape(encodeURIComponent(str))); + } else if (typeof Buffer === 'function') { + return (str) => Buffer.from(str, 'utf-8').toString('base64'); + } else { + return () => { + throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.'); + }; + } +} + +const btoa = /*#__PURE__*/ getBtoa(); + +class SourceMap { + constructor(properties) { + this.version = 3; + this.file = properties.file; + this.sources = properties.sources; + this.sourcesContent = properties.sourcesContent; + this.names = properties.names; + this.mappings = encode(properties.mappings); + if (typeof properties.x_google_ignoreList !== 'undefined') { + this.x_google_ignoreList = properties.x_google_ignoreList; + } + if (typeof properties.debugId !== 'undefined') { + this.debugId = properties.debugId; + } + } + + toString() { + return JSON.stringify(this); + } + + toUrl() { + return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString()); + } +} + +function guessIndent(code) { + const lines = code.split('\n'); + + const tabbed = lines.filter((line) => /^\t+/.test(line)); + const spaced = lines.filter((line) => /^ {2,}/.test(line)); + + if (tabbed.length === 0 && spaced.length === 0) { + return null; + } + + // More lines tabbed than spaced? Assume tabs, and + // default to tabs in the case of a tie (or nothing + // to go on) + if (tabbed.length >= spaced.length) { + return '\t'; + } + + // Otherwise, we need to guess the multiple + const min = spaced.reduce((previous, current) => { + const numSpaces = /^ +/.exec(current)[0].length; + return Math.min(numSpaces, previous); + }, Infinity); + + return new Array(min + 1).join(' '); +} + +function getRelativePath(from, to) { + const fromParts = from.split(/[/\\]/); + const toParts = to.split(/[/\\]/); + + fromParts.pop(); // get dirname + + while (fromParts[0] === toParts[0]) { + fromParts.shift(); + toParts.shift(); + } + + if (fromParts.length) { + let i = fromParts.length; + while (i--) fromParts[i] = '..'; + } + + return fromParts.concat(toParts).join('/'); +} + +const toString = Object.prototype.toString; + +function isObject(thing) { + return toString.call(thing) === '[object Object]'; +} + +function getLocator(source) { + const originalLines = source.split('\n'); + const lineOffsets = []; + + for (let i = 0, pos = 0; i < originalLines.length; i++) { + lineOffsets.push(pos); + pos += originalLines[i].length + 1; + } + + return function locate(index) { + let i = 0; + let j = lineOffsets.length; + while (i < j) { + const m = (i + j) >> 1; + if (index < lineOffsets[m]) { + j = m; + } else { + i = m + 1; + } + } + const line = i - 1; + const column = index - lineOffsets[line]; + return { line, column }; + }; +} + +const wordRegex = /\w/; + +class Mappings { + constructor(hires) { + this.hires = hires; + this.generatedCodeLine = 0; + this.generatedCodeColumn = 0; + this.raw = []; + this.rawSegments = this.raw[this.generatedCodeLine] = []; + this.pending = null; + } + + addEdit(sourceIndex, content, loc, nameIndex) { + if (content.length) { + const contentLengthMinusOne = content.length - 1; + let contentLineEnd = content.indexOf('\n', 0); + let previousContentLineEnd = -1; + // Loop through each line in the content and add a segment, but stop if the last line is empty, + // else code afterwards would fill one line too many + while (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + + previousContentLineEnd = contentLineEnd; + contentLineEnd = content.indexOf('\n', contentLineEnd + 1); + } + + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.advance(content.slice(previousContentLineEnd + 1)); + } else if (this.pending) { + this.rawSegments.push(this.pending); + this.advance(content); + } + + this.pending = null; + } + + addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) { + let originalCharIndex = chunk.start; + let first = true; + // when iterating each char, check if it's in a word boundary + let charInHiresBoundary = false; + + while (originalCharIndex < chunk.end) { + if (original[originalCharIndex] === '\n') { + loc.line += 1; + loc.column = 0; + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + first = true; + charInHiresBoundary = false; + } else { + if (this.hires || first || sourcemapLocations.has(originalCharIndex)) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + + if (this.hires === 'boundary') { + // in hires "boundary", group segments per word boundary than per char + if (wordRegex.test(original[originalCharIndex])) { + // for first char in the boundary found, start the boundary by pushing a segment + if (!charInHiresBoundary) { + this.rawSegments.push(segment); + charInHiresBoundary = true; + } + } else { + // for non-word char, end the boundary by pushing a segment + this.rawSegments.push(segment); + charInHiresBoundary = false; + } + } else { + this.rawSegments.push(segment); + } + } + + loc.column += 1; + this.generatedCodeColumn += 1; + first = false; + } + + originalCharIndex += 1; + } + + this.pending = null; + } + + advance(str) { + if (!str) return; + + const lines = str.split('\n'); + + if (lines.length > 1) { + for (let i = 0; i < lines.length - 1; i++) { + this.generatedCodeLine++; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + } + this.generatedCodeColumn = 0; + } + + this.generatedCodeColumn += lines[lines.length - 1].length; + } +} + +const n = '\n'; + +const warned = { + insertLeft: false, + insertRight: false, + storeName: false, +}; + +class MagicString { + constructor(string, options = {}) { + const chunk = new Chunk(0, string.length, string); + + Object.defineProperties(this, { + original: { writable: true, value: string }, + outro: { writable: true, value: '' }, + intro: { writable: true, value: '' }, + firstChunk: { writable: true, value: chunk }, + lastChunk: { writable: true, value: chunk }, + lastSearchedChunk: { writable: true, value: chunk }, + byStart: { writable: true, value: {} }, + byEnd: { writable: true, value: {} }, + filename: { writable: true, value: options.filename }, + indentExclusionRanges: { writable: true, value: options.indentExclusionRanges }, + sourcemapLocations: { writable: true, value: new BitSet() }, + storedNames: { writable: true, value: {} }, + indentStr: { writable: true, value: undefined }, + ignoreList: { writable: true, value: options.ignoreList }, + offset: { writable: true, value: options.offset || 0 }, + }); + + this.byStart[0] = chunk; + this.byEnd[string.length] = chunk; + } + + addSourcemapLocation(char) { + this.sourcemapLocations.add(char); + } + + append(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.outro += content; + return this; + } + + appendLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.appendLeft(content); + } else { + this.intro += content; + } + return this; + } + + appendRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.appendRight(content); + } else { + this.outro += content; + } + return this; + } + + clone() { + const cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset }); + + let originalChunk = this.firstChunk; + let clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone()); + + while (originalChunk) { + cloned.byStart[clonedChunk.start] = clonedChunk; + cloned.byEnd[clonedChunk.end] = clonedChunk; + + const nextOriginalChunk = originalChunk.next; + const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone(); + + if (nextClonedChunk) { + clonedChunk.next = nextClonedChunk; + nextClonedChunk.previous = clonedChunk; + + clonedChunk = nextClonedChunk; + } + + originalChunk = nextOriginalChunk; + } + + cloned.lastChunk = clonedChunk; + + if (this.indentExclusionRanges) { + cloned.indentExclusionRanges = this.indentExclusionRanges.slice(); + } + + cloned.sourcemapLocations = new BitSet(this.sourcemapLocations); + + cloned.intro = this.intro; + cloned.outro = this.outro; + + return cloned; + } + + generateDecodedMap(options) { + options = options || {}; + + const sourceIndex = 0; + const names = Object.keys(this.storedNames); + const mappings = new Mappings(options.hires); + + const locate = getLocator(this.original); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (this.outro) { + mappings.advance(this.outro); + } + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: [ + options.source ? getRelativePath(options.file || '', options.source) : options.file || '', + ], + sourcesContent: options.includeContent ? [this.original] : undefined, + names, + mappings: mappings.raw, + x_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + _ensureindentStr() { + if (this.indentStr === undefined) { + this.indentStr = guessIndent(this.original); + } + } + + _getRawIndentString() { + this._ensureindentStr(); + return this.indentStr; + } + + getIndentString() { + this._ensureindentStr(); + return this.indentStr === null ? '\t' : this.indentStr; + } + + indent(indentStr, options) { + const pattern = /^[^\r\n]/gm; + + if (isObject(indentStr)) { + options = indentStr; + indentStr = undefined; + } + + if (indentStr === undefined) { + this._ensureindentStr(); + indentStr = this.indentStr || '\t'; + } + + if (indentStr === '') return this; // noop + + options = options || {}; + + // Process exclusion ranges + const isExcluded = {}; + + if (options.exclude) { + const exclusions = + typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude; + exclusions.forEach((exclusion) => { + for (let i = exclusion[0]; i < exclusion[1]; i += 1) { + isExcluded[i] = true; + } + }); + } + + let shouldIndentNextCharacter = options.indentStart !== false; + const replacer = (match) => { + if (shouldIndentNextCharacter) return `${indentStr}${match}`; + shouldIndentNextCharacter = true; + return match; + }; + + this.intro = this.intro.replace(pattern, replacer); + + let charIndex = 0; + let chunk = this.firstChunk; + + while (chunk) { + const end = chunk.end; + + if (chunk.edited) { + if (!isExcluded[charIndex]) { + chunk.content = chunk.content.replace(pattern, replacer); + + if (chunk.content.length) { + shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n'; + } + } + } else { + charIndex = chunk.start; + + while (charIndex < end) { + if (!isExcluded[charIndex]) { + const char = this.original[charIndex]; + + if (char === '\n') { + shouldIndentNextCharacter = true; + } else if (char !== '\r' && shouldIndentNextCharacter) { + shouldIndentNextCharacter = false; + + if (charIndex === chunk.start) { + chunk.prependRight(indentStr); + } else { + this._splitChunk(chunk, charIndex); + chunk = chunk.next; + chunk.prependRight(indentStr); + } + } + } + + charIndex += 1; + } + } + + charIndex = chunk.end; + chunk = chunk.next; + } + + this.outro = this.outro.replace(pattern, replacer); + + return this; + } + + insert() { + throw new Error( + 'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)', + ); + } + + insertLeft(index, content) { + if (!warned.insertLeft) { + console.warn( + 'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead', + ); + warned.insertLeft = true; + } + + return this.appendLeft(index, content); + } + + insertRight(index, content) { + if (!warned.insertRight) { + console.warn( + 'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead', + ); + warned.insertRight = true; + } + + return this.prependRight(index, content); + } + + move(start, end, index) { + start = start + this.offset; + end = end + this.offset; + index = index + this.offset; + + if (index >= start && index <= end) throw new Error('Cannot move a selection inside itself'); + + this._split(start); + this._split(end); + this._split(index); + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + const oldLeft = first.previous; + const oldRight = last.next; + + const newRight = this.byStart[index]; + if (!newRight && last === this.lastChunk) return this; + const newLeft = newRight ? newRight.previous : this.lastChunk; + + if (oldLeft) oldLeft.next = oldRight; + if (oldRight) oldRight.previous = oldLeft; + + if (newLeft) newLeft.next = first; + if (newRight) newRight.previous = last; + + if (!first.previous) this.firstChunk = last.next; + if (!last.next) { + this.lastChunk = first.previous; + this.lastChunk.next = null; + } + + first.previous = newLeft; + last.next = newRight || null; + + if (!newLeft) this.firstChunk = first; + if (!newRight) this.lastChunk = last; + return this; + } + + overwrite(start, end, content, options) { + options = options || {}; + return this.update(start, end, content, { ...options, overwrite: !options.contentOnly }); + } + + update(start, end, content, options) { + start = start + this.offset; + end = end + this.offset; + + if (typeof content !== 'string') throw new TypeError('replacement content must be a string'); + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (end > this.original.length) throw new Error('end is out of bounds'); + if (start === end) + throw new Error( + 'Cannot overwrite a zero-length range – use appendLeft or prependRight instead', + ); + + this._split(start); + this._split(end); + + if (options === true) { + if (!warned.storeName) { + console.warn( + 'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string', + ); + warned.storeName = true; + } + + options = { storeName: true }; + } + const storeName = options !== undefined ? options.storeName : false; + const overwrite = options !== undefined ? options.overwrite : false; + + if (storeName) { + const original = this.original.slice(start, end); + Object.defineProperty(this.storedNames, original, { + writable: true, + value: true, + enumerable: true, + }); + } + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + if (first) { + let chunk = first; + while (chunk !== last) { + if (chunk.next !== this.byStart[chunk.end]) { + throw new Error('Cannot overwrite across a split point'); + } + chunk = chunk.next; + chunk.edit('', false); + } + + first.edit(content, storeName, !overwrite); + } else { + // must be inserting at the end + const newChunk = new Chunk(start, end, '').edit(content, storeName); + + // TODO last chunk in the array may not be the last chunk, if it's moved... + last.next = newChunk; + newChunk.previous = last; + } + return this; + } + + prepend(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.intro = content + this.intro; + return this; + } + + prependLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.prependLeft(content); + } else { + this.intro = content + this.intro; + } + return this; + } + + prependRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.prependRight(content); + } else { + this.outro = content + this.outro; + } + return this; + } + + remove(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.intro = ''; + chunk.outro = ''; + chunk.edit(''); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + reset(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.reset(); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + lastChar() { + if (this.outro.length) return this.outro[this.outro.length - 1]; + let chunk = this.lastChunk; + do { + if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1]; + if (chunk.content.length) return chunk.content[chunk.content.length - 1]; + if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1]; + } while ((chunk = chunk.previous)); + if (this.intro.length) return this.intro[this.intro.length - 1]; + return ''; + } + + lastLine() { + let lineIndex = this.outro.lastIndexOf(n); + if (lineIndex !== -1) return this.outro.substr(lineIndex + 1); + let lineStr = this.outro; + let chunk = this.lastChunk; + do { + if (chunk.outro.length > 0) { + lineIndex = chunk.outro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.outro + lineStr; + } + + if (chunk.content.length > 0) { + lineIndex = chunk.content.lastIndexOf(n); + if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr; + lineStr = chunk.content + lineStr; + } + + if (chunk.intro.length > 0) { + lineIndex = chunk.intro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.intro + lineStr; + } + } while ((chunk = chunk.previous)); + lineIndex = this.intro.lastIndexOf(n); + if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr; + return this.intro + lineStr; + } + + slice(start = 0, end = this.original.length - this.offset) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + let result = ''; + + // find start chunk + let chunk = this.firstChunk; + while (chunk && (chunk.start > start || chunk.end <= start)) { + // found end chunk before start + if (chunk.start < end && chunk.end >= end) { + return result; + } + + chunk = chunk.next; + } + + if (chunk && chunk.edited && chunk.start !== start) + throw new Error(`Cannot use replaced character ${start} as slice start anchor.`); + + const startChunk = chunk; + while (chunk) { + if (chunk.intro && (startChunk !== chunk || chunk.start === start)) { + result += chunk.intro; + } + + const containsEnd = chunk.start < end && chunk.end >= end; + if (containsEnd && chunk.edited && chunk.end !== end) + throw new Error(`Cannot use replaced character ${end} as slice end anchor.`); + + const sliceStart = startChunk === chunk ? start - chunk.start : 0; + const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length; + + result += chunk.content.slice(sliceStart, sliceEnd); + + if (chunk.outro && (!containsEnd || chunk.end === end)) { + result += chunk.outro; + } + + if (containsEnd) { + break; + } + + chunk = chunk.next; + } + + return result; + } + + // TODO deprecate this? not really very useful + snip(start, end) { + const clone = this.clone(); + clone.remove(0, start); + clone.remove(end, clone.original.length); + + return clone; + } + + _split(index) { + if (this.byStart[index] || this.byEnd[index]) return; + + let chunk = this.lastSearchedChunk; + let previousChunk = chunk; + const searchForward = index > chunk.end; + + while (chunk) { + if (chunk.contains(index)) return this._splitChunk(chunk, index); + + chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start]; + + // Prevent infinite loop (e.g. via empty chunks, where start === end) + if (chunk === previousChunk) return; + + previousChunk = chunk; + } + } + + _splitChunk(chunk, index) { + if (chunk.edited && chunk.content.length) { + // zero-length edited chunks are a special case (overlapping replacements) + const loc = getLocator(this.original)(index); + throw new Error( + `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`, + ); + } + + const newChunk = chunk.split(index); + + this.byEnd[index] = chunk; + this.byStart[index] = newChunk; + this.byEnd[newChunk.end] = newChunk; + + if (chunk === this.lastChunk) this.lastChunk = newChunk; + + this.lastSearchedChunk = chunk; + return true; + } + + toString() { + let str = this.intro; + + let chunk = this.firstChunk; + while (chunk) { + str += chunk.toString(); + chunk = chunk.next; + } + + return str + this.outro; + } + + isEmpty() { + let chunk = this.firstChunk; + do { + if ( + (chunk.intro.length && chunk.intro.trim()) || + (chunk.content.length && chunk.content.trim()) || + (chunk.outro.length && chunk.outro.trim()) + ) + return false; + } while ((chunk = chunk.next)); + return true; + } + + length() { + let chunk = this.firstChunk; + let length = 0; + do { + length += chunk.intro.length + chunk.content.length + chunk.outro.length; + } while ((chunk = chunk.next)); + return length; + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimEndAborted(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + let chunk = this.lastChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimEnd(rx); + + // if chunk was trimmed, we have a new lastChunk + if (chunk.end !== end) { + if (this.lastChunk === chunk) { + this.lastChunk = chunk.next; + } + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.previous; + } while (chunk); + + return false; + } + + trimEnd(charType) { + this.trimEndAborted(charType); + return this; + } + trimStartAborted(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + let chunk = this.firstChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimStart(rx); + + if (chunk.end !== end) { + // special case... + if (chunk === this.lastChunk) this.lastChunk = chunk.next; + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.next; + } while (chunk); + + return false; + } + + trimStart(charType) { + this.trimStartAborted(charType); + return this; + } + + hasChanged() { + return this.original !== this.toString(); + } + + _replaceRegexp(searchValue, replacement) { + function getReplacement(match, str) { + if (typeof replacement === 'string') { + return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => { + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter + if (i === '$') return '$'; + if (i === '&') return match[0]; + const num = +i; + if (num < match.length) return match[+i]; + return `$${i}`; + }); + } else { + return replacement(...match, match.index, str, match.groups); + } + } + function matchAll(re, str) { + let match; + const matches = []; + while ((match = re.exec(str))) { + matches.push(match); + } + return matches; + } + if (searchValue.global) { + const matches = matchAll(searchValue, this.original); + matches.forEach((match) => { + if (match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + }); + } else { + const match = this.original.match(searchValue); + if (match && match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + } + return this; + } + + _replaceString(string, replacement) { + const { original } = this; + const index = original.indexOf(string); + + if (index !== -1) { + if (typeof replacement === 'function') { + replacement = replacement(string, index, original); + } + if (string !== replacement) { + this.overwrite(index, index + string.length, replacement); + } + } + + return this; + } + + replace(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceString(searchValue, replacement); + } + + return this._replaceRegexp(searchValue, replacement); + } + + _replaceAllString(string, replacement) { + const { original } = this; + const stringLength = string.length; + for ( + let index = original.indexOf(string); + index !== -1; + index = original.indexOf(string, index + stringLength) + ) { + const previous = original.slice(index, index + stringLength); + let _replacement = replacement; + if (typeof replacement === 'function') { + _replacement = replacement(previous, index, original); + } + if (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement); + } + + return this; + } + + replaceAll(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceAllString(searchValue, replacement); + } + + if (!searchValue.global) { + throw new TypeError( + 'MagicString.prototype.replaceAll called with a non-global RegExp argument', + ); + } + + return this._replaceRegexp(searchValue, replacement); + } +} + +var _a, _b; +class ScriptCompileContext { + constructor(descriptor, options) { + this.descriptor = descriptor; + this.options = options; + this.isCE = false; + this.source = this.descriptor.source; + this.filename = this.descriptor.filename; + this.s = new MagicString(this.source); + this.startOffset = (_a = this.descriptor.scriptSetup) == null ? void 0 : _a.loc.start.offset; + this.endOffset = (_b = this.descriptor.scriptSetup) == null ? void 0 : _b.loc.end.offset; + this.userImports = /* @__PURE__ */ Object.create(null); + // macros presence check + this.hasDefinePropsCall = false; + this.hasDefineEmitCall = false; + this.hasDefineExposeCall = false; + this.hasDefaultExportName = false; + this.hasDefaultExportRender = false; + this.hasDefineOptionsCall = false; + this.hasDefineSlotsCall = false; + this.hasDefineModelCall = false; + this.propsDestructuredBindings = /* @__PURE__ */ Object.create(null); + // defineModel + this.modelDecls = /* @__PURE__ */ Object.create(null); + // codegen + this.bindingMetadata = {}; + this.helperImports = /* @__PURE__ */ new Set(); + const { script, scriptSetup } = descriptor; + const scriptLang = script && script.lang; + const scriptSetupLang = scriptSetup && scriptSetup.lang; + this.isJS = isJS(scriptLang, scriptSetupLang); + this.isTS = isTS(scriptLang, scriptSetupLang); + const customElement = options.customElement; + const filename = this.descriptor.filename; + if (customElement) { + this.isCE = typeof customElement === "boolean" ? customElement : customElement(filename); + } + const plugins = resolveParserPlugins( + scriptLang || scriptSetupLang, + options.babelParserPlugins + ); + function parse(input, offset) { + try { + return libExports.parse(input, { + plugins, + sourceType: "module" + }).program; + } catch (e) { + e.message = `[vue/compiler-sfc] ${e.message} + +${descriptor.filename} +${generateCodeFrame( + descriptor.source, + e.pos + offset, + e.pos + offset + 1 + )}`; + throw e; + } + } + this.scriptAst = descriptor.script && parse(descriptor.script.content, descriptor.script.loc.start.offset); + this.scriptSetupAst = descriptor.scriptSetup && parse(descriptor.scriptSetup.content, this.startOffset); + } + helper(key) { + this.helperImports.add(key); + return `_${key}`; + } + getString(node, scriptSetup = true) { + const block = scriptSetup ? this.descriptor.scriptSetup : this.descriptor.script; + return block.content.slice(node.start, node.end); + } + warn(msg, node, scope) { + warn(generateError(msg, node, this, scope)); + } + error(msg, node, scope) { + throw new Error( + `[@vue/compiler-sfc] ${generateError(msg, node, this, scope)}` + ); + } +} +function generateError(msg, node, ctx, scope) { + const offset = scope ? scope.offset : ctx.startOffset; + return `${msg} + +${(scope || ctx.descriptor).filename} +${generateCodeFrame( + (scope || ctx.descriptor).source, + node.start + offset, + node.end + offset + )}`; +} +function resolveParserPlugins(lang, userPlugins, dts = false) { + const plugins = []; + if (!userPlugins || !userPlugins.some( + (p) => p === "importAssertions" || p === "importAttributes" || isArray$3(p) && p[0] === "importAttributes" + )) { + plugins.push("importAttributes"); + } + if (lang === "jsx" || lang === "tsx" || lang === "mtsx") { + plugins.push("jsx"); + } else if (userPlugins) { + userPlugins = userPlugins.filter((p) => p !== "jsx"); + } + if (lang === "ts" || lang === "mts" || lang === "tsx" || lang === "cts" || lang === "mtsx") { + plugins.push(["typescript", { dts }], "explicitResourceManagement"); + if (!userPlugins || !userPlugins.includes("decorators")) { + plugins.push("decorators-legacy"); + } + } + if (userPlugins) { + plugins.push(...userPlugins); + } + return plugins; +} + +function rewriteDefault(input, as, parserPlugins) { + const ast = libExports.parse(input, { + sourceType: "module", + plugins: resolveParserPlugins("js", parserPlugins) + }).program.body; + const s = new MagicString(input); + rewriteDefaultAST(ast, s, as); + return s.toString(); +} +function rewriteDefaultAST(ast, s, as) { + if (!hasDefaultExport(ast)) { + s.append(` +const ${as} = {}`); + return; + } + ast.forEach((node) => { + if (node.type === "ExportDefaultDeclaration") { + if (node.declaration.type === "ClassDeclaration" && node.declaration.id) { + const start = node.declaration.decorators && node.declaration.decorators.length > 0 ? node.declaration.decorators[node.declaration.decorators.length - 1].end : node.start; + s.overwrite(start, node.declaration.id.start, ` class `); + s.append(` +const ${as} = ${node.declaration.id.name}`); + } else { + s.overwrite(node.start, node.declaration.start, `const ${as} = `); + } + } else if (node.type === "ExportNamedDeclaration") { + for (const specifier of node.specifiers) { + if (specifier.type === "ExportSpecifier" && specifier.exported.type === "Identifier" && specifier.exported.name === "default") { + if (node.source) { + if (specifier.local.name === "default") { + s.prepend( + `import { default as __VUE_DEFAULT__ } from '${node.source.value}' +` + ); + const end2 = specifierEnd(s, specifier.local.end, node.end); + s.remove(specifier.start, end2); + s.append(` +const ${as} = __VUE_DEFAULT__`); + continue; + } else { + s.prepend( + `import { ${s.slice( + specifier.local.start, + specifier.local.end + )} as __VUE_DEFAULT__ } from '${node.source.value}' +` + ); + const end2 = specifierEnd(s, specifier.exported.end, node.end); + s.remove(specifier.start, end2); + s.append(` +const ${as} = __VUE_DEFAULT__`); + continue; + } + } + const end = specifierEnd(s, specifier.end, node.end); + s.remove(specifier.start, end); + s.append(` +const ${as} = ${specifier.local.name}`); + } + } + } + }); +} +function hasDefaultExport(ast) { + for (const stmt of ast) { + if (stmt.type === "ExportDefaultDeclaration") { + return true; + } else if (stmt.type === "ExportNamedDeclaration" && stmt.specifiers.some( + (spec) => spec.exported.name === "default" + )) { + return true; + } + } + return false; +} +function specifierEnd(s, end, nodeEnd) { + let hasCommas = false; + let oldEnd = end; + while (end < nodeEnd) { + if (/\s/.test(s.slice(end, end + 1))) { + end++; + } else if (s.slice(end, end + 1) === ",") { + end++; + hasCommas = true; + break; + } else if (s.slice(end, end + 1) === "}") { + break; + } + } + return hasCommas ? end : oldEnd; +} + +var __defProp$3 = Object.defineProperty; +var __defProps$2 = Object.defineProperties; +var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols; +var __hasOwnProp$3 = Object.prototype.hasOwnProperty; +var __propIsEnum$3 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$3 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$3.call(b, prop)) + __defNormalProp$3(a, prop, b[prop]); + if (__getOwnPropSymbols$3) + for (var prop of __getOwnPropSymbols$3(b)) { + if (__propIsEnum$3.call(b, prop)) + __defNormalProp$3(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b)); +const normalScriptDefaultVar = `__default__`; +function processNormalScript(ctx, scopeId) { + var _a; + const script = ctx.descriptor.script; + try { + let content = script.content; + let map = script.map; + const scriptAst = ctx.scriptAst; + const bindings = analyzeScriptBindings(scriptAst.body); + const { cssVars } = ctx.descriptor; + const { genDefaultAs, isProd } = ctx.options; + if (cssVars.length || genDefaultAs) { + const defaultVar = genDefaultAs || normalScriptDefaultVar; + const s = new MagicString(content); + rewriteDefaultAST(scriptAst.body, s, defaultVar); + content = s.toString(); + if (cssVars.length && !((_a = ctx.options.templateOptions) == null ? void 0 : _a.ssr)) { + content += genNormalScriptCssVarsCode( + cssVars, + bindings, + scopeId, + !!isProd, + defaultVar + ); + } + if (!genDefaultAs) { + content += ` +export default ${defaultVar}`; + } + } + return __spreadProps$2(__spreadValues$3({}, script), { + content, + map, + bindings, + scriptAst: scriptAst.body + }); + } catch (e) { + return script; + } +} + +var __defProp$2 = Object.defineProperty; +var __defProps$1 = Object.defineProperties; +var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols; +var __hasOwnProp$2 = Object.prototype.hasOwnProperty; +var __propIsEnum$2 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$2 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$2.call(b, prop)) + __defNormalProp$2(a, prop, b[prop]); + if (__getOwnPropSymbols$2) + for (var prop of __getOwnPropSymbols$2(b)) { + if (__propIsEnum$2.call(b, prop)) + __defNormalProp$2(a, prop, b[prop]); + } + return a; +}; +var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b)); +class TypeScope { + constructor(filename, source, offset = 0, imports = /* @__PURE__ */ Object.create(null), types = /* @__PURE__ */ Object.create(null), declares = /* @__PURE__ */ Object.create(null)) { + this.filename = filename; + this.source = source; + this.offset = offset; + this.imports = imports; + this.types = types; + this.declares = declares; + this.isGenericScope = false; + this.resolvedImportSources = /* @__PURE__ */ Object.create(null); + this.exportedTypes = /* @__PURE__ */ Object.create(null); + this.exportedDeclares = /* @__PURE__ */ Object.create(null); + } +} +function resolveTypeElements(ctx, node, scope, typeParameters) { + const canCache = !typeParameters; + if (canCache && node._resolvedElements) { + return node._resolvedElements; + } + const resolved = innerResolveTypeElements( + ctx, + node, + node._ownerScope || scope || ctxToScope(ctx), + typeParameters + ); + return canCache ? node._resolvedElements = resolved : resolved; +} +function innerResolveTypeElements(ctx, node, scope, typeParameters) { + var _a, _b; + if (node.leadingComments && node.leadingComments.some((c) => c.value.includes("@vue-ignore"))) { + return { props: {} }; + } + switch (node.type) { + case "TSTypeLiteral": + return typeElementsToMap(ctx, node.members, scope, typeParameters); + case "TSInterfaceDeclaration": + return resolveInterfaceMembers(ctx, node, scope, typeParameters); + case "TSTypeAliasDeclaration": + case "TSTypeAnnotation": + case "TSParenthesizedType": + return resolveTypeElements( + ctx, + node.typeAnnotation, + scope, + typeParameters + ); + case "TSFunctionType": { + return { props: {}, calls: [node] }; + } + case "TSUnionType": + case "TSIntersectionType": + return mergeElements( + node.types.map((t) => resolveTypeElements(ctx, t, scope, typeParameters)), + node.type + ); + case "TSMappedType": + return resolveMappedType(ctx, node, scope, typeParameters); + case "TSIndexedAccessType": { + const types = resolveIndexType(ctx, node, scope); + return mergeElements( + types.map((t) => resolveTypeElements(ctx, t, t._ownerScope)), + "TSUnionType" + ); + } + case "TSExpressionWithTypeArguments": + // referenced by interface extends + case "TSTypeReference": { + const typeName = getReferenceName(node); + if ((typeName === "ExtractPropTypes" || typeName === "ExtractPublicPropTypes") && node.typeParameters && ((_a = scope.imports[typeName]) == null ? void 0 : _a.source) === "vue") { + return resolveExtractPropTypes( + resolveTypeElements( + ctx, + node.typeParameters.params[0], + scope, + typeParameters + ), + scope + ); + } + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + let typeParams; + if ((resolved.type === "TSTypeAliasDeclaration" || resolved.type === "TSInterfaceDeclaration") && resolved.typeParameters && node.typeParameters) { + typeParams = /* @__PURE__ */ Object.create(null); + resolved.typeParameters.params.forEach((p, i) => { + let param = typeParameters && typeParameters[p.name]; + if (!param) param = node.typeParameters.params[i]; + typeParams[p.name] = param; + }); + } + return resolveTypeElements( + ctx, + resolved, + resolved._ownerScope, + typeParams + ); + } else { + if (typeof typeName === "string") { + if (typeParameters && typeParameters[typeName]) { + return resolveTypeElements( + ctx, + typeParameters[typeName], + scope, + typeParameters + ); + } + if ( + // @ts-expect-error + SupportedBuiltinsSet.has(typeName) + ) { + return resolveBuiltin( + ctx, + node, + typeName, + scope, + typeParameters + ); + } else if (typeName === "ReturnType" && node.typeParameters) { + const ret = resolveReturnType( + ctx, + node.typeParameters.params[0], + scope + ); + if (ret) { + return resolveTypeElements(ctx, ret, scope); + } + } + } + return ctx.error( + `Unresolvable type reference or unsupported built-in utility type`, + node, + scope + ); + } + } + case "TSImportType": { + if (getId(node.argument) === "vue" && ((_b = node.qualifier) == null ? void 0 : _b.type) === "Identifier" && node.qualifier.name === "ExtractPropTypes" && node.typeParameters) { + return resolveExtractPropTypes( + resolveTypeElements(ctx, node.typeParameters.params[0], scope), + scope + ); + } + const sourceScope = importSourceToScope( + ctx, + node.argument, + scope, + node.argument.value + ); + const resolved = resolveTypeReference(ctx, node, sourceScope); + if (resolved) { + return resolveTypeElements(ctx, resolved, resolved._ownerScope); + } + break; + } + case "TSTypeQuery": + { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + return resolveTypeElements(ctx, resolved, resolved._ownerScope); + } + } + break; + } + return ctx.error(`Unresolvable type: ${node.type}`, node, scope); +} +function typeElementsToMap(ctx, elements, scope = ctxToScope(ctx), typeParameters) { + const res = { props: {} }; + for (const e of elements) { + if (e.type === "TSPropertySignature" || e.type === "TSMethodSignature") { + if (typeParameters) { + scope = createChildScope(scope); + scope.isGenericScope = true; + Object.assign(scope.types, typeParameters); + } + e._ownerScope = scope; + const name = getStringLiteralKey(e); + if (name !== null) { + res.props[name] = e; + } else { + ctx.error( + `Unsupported computed key in type referenced by a macro`, + e.key, + scope + ); + } + } else if (e.type === "TSCallSignatureDeclaration") { + (res.calls || (res.calls = [])).push(e); + } + } + return res; +} +function mergeElements(maps, type) { + if (maps.length === 1) return maps[0]; + const res = { props: {} }; + const { props: baseProps } = res; + for (const { props, calls } of maps) { + for (const key in props) { + if (!hasOwn(baseProps, key)) { + baseProps[key] = props[key]; + } else { + baseProps[key] = createProperty( + baseProps[key].key, + { + type, + // @ts-expect-error + types: [baseProps[key], props[key]] + }, + baseProps[key]._ownerScope, + baseProps[key].optional || props[key].optional + ); + } + } + if (calls) { + (res.calls || (res.calls = [])).push(...calls); + } + } + return res; +} +function createProperty(key, typeAnnotation, scope, optional) { + return { + type: "TSPropertySignature", + key, + kind: "get", + optional, + typeAnnotation: { + type: "TSTypeAnnotation", + typeAnnotation + }, + _ownerScope: scope + }; +} +function resolveInterfaceMembers(ctx, node, scope, typeParameters) { + const base = typeElementsToMap( + ctx, + node.body.body, + node._ownerScope, + typeParameters + ); + if (node.extends) { + for (const ext of node.extends) { + try { + const { props, calls } = resolveTypeElements(ctx, ext, scope); + for (const key in props) { + if (!hasOwn(base.props, key)) { + base.props[key] = props[key]; + } + } + if (calls) { + ; + (base.calls || (base.calls = [])).push(...calls); + } + } catch (e) { + if (!ctx.silentOnExtendsFailure) { + ctx.error( + `Failed to resolve extends base type. +If this previously worked in 3.2, you can instruct the compiler to ignore this extend by adding /* @vue-ignore */ before it, for example: + +interface Props extends /* @vue-ignore */ Base {} + +Note: both in 3.2 or with the ignore, the properties in the base type are treated as fallthrough attrs at runtime.`, + ext, + scope + ); + } + } + } + } + return base; +} +function resolveMappedType(ctx, node, scope, typeParameters) { + const res = { props: {} }; + let keys; + if (node.nameType) { + const { name, constraint } = node.typeParameter; + scope = createChildScope(scope); + Object.assign(scope.types, __spreadProps$1(__spreadValues$2({}, typeParameters), { [name]: constraint })); + keys = resolveStringType(ctx, node.nameType, scope); + } else { + keys = resolveStringType(ctx, node.typeParameter.constraint, scope); + } + for (const key of keys) { + res.props[key] = createProperty( + { + type: "Identifier", + name: key + }, + node.typeAnnotation, + scope, + !!node.optional + ); + } + return res; +} +function resolveIndexType(ctx, node, scope) { + var _a, _b; + if (node.indexType.type === "TSNumberKeyword") { + return resolveArrayElementType(ctx, node.objectType, scope); + } + const { indexType, objectType } = node; + const types = []; + let keys; + let resolved; + if (indexType.type === "TSStringKeyword") { + resolved = resolveTypeElements(ctx, objectType, scope); + keys = Object.keys(resolved.props); + } else { + keys = resolveStringType(ctx, indexType, scope); + resolved = resolveTypeElements(ctx, objectType, scope); + } + for (const key of keys) { + const targetType = (_b = (_a = resolved.props[key]) == null ? void 0 : _a.typeAnnotation) == null ? void 0 : _b.typeAnnotation; + if (targetType) { + targetType._ownerScope = resolved.props[key]._ownerScope; + types.push(targetType); + } + } + return types; +} +function resolveArrayElementType(ctx, node, scope) { + if (node.type === "TSArrayType") { + return [node.elementType]; + } + if (node.type === "TSTupleType") { + return node.elementTypes.map( + (t) => t.type === "TSNamedTupleMember" ? t.elementType : t + ); + } + if (node.type === "TSTypeReference") { + if (getReferenceName(node) === "Array" && node.typeParameters) { + return node.typeParameters.params; + } else { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + return resolveArrayElementType(ctx, resolved, scope); + } + } + } + return ctx.error( + "Failed to resolve element type from target type", + node, + scope + ); +} +function resolveStringType(ctx, node, scope, typeParameters) { + switch (node.type) { + case "StringLiteral": + return [node.value]; + case "TSLiteralType": + return resolveStringType(ctx, node.literal, scope, typeParameters); + case "TSUnionType": + return node.types.map((t) => resolveStringType(ctx, t, scope, typeParameters)).flat(); + case "TemplateLiteral": { + return resolveTemplateKeys(ctx, node, scope); + } + case "TSTypeReference": { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + return resolveStringType(ctx, resolved, scope, typeParameters); + } + if (node.typeName.type === "Identifier") { + const name = node.typeName.name; + if (typeParameters && typeParameters[name]) { + return resolveStringType( + ctx, + typeParameters[name], + scope, + typeParameters + ); + } + const getParam = (index = 0) => resolveStringType( + ctx, + node.typeParameters.params[index], + scope, + typeParameters + ); + switch (name) { + case "Extract": + return getParam(1); + case "Exclude": { + const excluded = getParam(1); + return getParam().filter((s) => !excluded.includes(s)); + } + case "Uppercase": + return getParam().map((s) => s.toUpperCase()); + case "Lowercase": + return getParam().map((s) => s.toLowerCase()); + case "Capitalize": + return getParam().map(capitalize); + case "Uncapitalize": + return getParam().map((s) => s[0].toLowerCase() + s.slice(1)); + default: + ctx.error( + "Unsupported type when resolving index type", + node.typeName, + scope + ); + } + } + } + } + return ctx.error("Failed to resolve index type into finite keys", node, scope); +} +function resolveTemplateKeys(ctx, node, scope) { + if (!node.expressions.length) { + return [node.quasis[0].value.raw]; + } + const res = []; + const e = node.expressions[0]; + const q = node.quasis[0]; + const leading = q ? q.value.raw : ``; + const resolved = resolveStringType(ctx, e, scope); + const restResolved = resolveTemplateKeys( + ctx, + __spreadProps$1(__spreadValues$2({}, node), { + expressions: node.expressions.slice(1), + quasis: q ? node.quasis.slice(1) : node.quasis + }), + scope + ); + for (const r of resolved) { + for (const rr of restResolved) { + res.push(leading + r + rr); + } + } + return res; +} +const SupportedBuiltinsSet = /* @__PURE__ */ new Set([ + "Partial", + "Required", + "Readonly", + "Pick", + "Omit" +]); +function resolveBuiltin(ctx, node, name, scope, typeParameters) { + const t = resolveTypeElements( + ctx, + node.typeParameters.params[0], + scope, + typeParameters + ); + switch (name) { + case "Partial": { + const res2 = { props: {}, calls: t.calls }; + Object.keys(t.props).forEach((key) => { + res2.props[key] = __spreadProps$1(__spreadValues$2({}, t.props[key]), { optional: true }); + }); + return res2; + } + case "Required": { + const res2 = { props: {}, calls: t.calls }; + Object.keys(t.props).forEach((key) => { + res2.props[key] = __spreadProps$1(__spreadValues$2({}, t.props[key]), { optional: false }); + }); + return res2; + } + case "Readonly": + return t; + case "Pick": { + const picked = resolveStringType( + ctx, + node.typeParameters.params[1], + scope, + typeParameters + ); + const res2 = { props: {}, calls: t.calls }; + for (const key of picked) { + res2.props[key] = t.props[key]; + } + return res2; + } + case "Omit": + const omitted = resolveStringType( + ctx, + node.typeParameters.params[1], + scope, + typeParameters + ); + const res = { props: {}, calls: t.calls }; + for (const key in t.props) { + if (!omitted.includes(key)) { + res.props[key] = t.props[key]; + } + } + return res; + } +} +function resolveTypeReference(ctx, node, scope, name, onlyExported = false) { + const canCache = !(scope == null ? void 0 : scope.isGenericScope); + if (canCache && node._resolvedReference) { + return node._resolvedReference; + } + const resolved = innerResolveTypeReference( + ctx, + scope || ctxToScope(ctx), + name || getReferenceName(node), + node, + onlyExported + ); + return canCache ? node._resolvedReference = resolved : resolved; +} +function innerResolveTypeReference(ctx, scope, name, node, onlyExported) { + if (typeof name === "string") { + if (scope.imports[name]) { + return resolveTypeFromImport(ctx, node, name, scope); + } else { + const lookupSource = node.type === "TSTypeQuery" ? onlyExported ? scope.exportedDeclares : scope.declares : onlyExported ? scope.exportedTypes : scope.types; + if (lookupSource[name]) { + return lookupSource[name]; + } else { + const globalScopes = resolveGlobalScope(ctx); + if (globalScopes) { + for (const s of globalScopes) { + const src = node.type === "TSTypeQuery" ? s.declares : s.types; + if (src[name]) { + (ctx.deps || (ctx.deps = /* @__PURE__ */ new Set())).add(s.filename); + return src[name]; + } + } + } + } + } + } else { + let ns = innerResolveTypeReference(ctx, scope, name[0], node, onlyExported); + if (ns) { + if (ns.type !== "TSModuleDeclaration") { + ns = ns._ns; + } + if (ns) { + const childScope = moduleDeclToScope(ctx, ns, ns._ownerScope || scope); + return innerResolveTypeReference( + ctx, + childScope, + name.length > 2 ? name.slice(1) : name[name.length - 1], + node, + !ns.declare + ); + } + } + } +} +function getReferenceName(node) { + const ref = node.type === "TSTypeReference" ? node.typeName : node.type === "TSExpressionWithTypeArguments" ? node.expression : node.type === "TSImportType" ? node.qualifier : node.exprName; + if ((ref == null ? void 0 : ref.type) === "Identifier") { + return ref.name; + } else if ((ref == null ? void 0 : ref.type) === "TSQualifiedName") { + return qualifiedNameToPath(ref); + } else { + return "default"; + } +} +function qualifiedNameToPath(node) { + if (node.type === "Identifier") { + return [node.name]; + } else { + return [...qualifiedNameToPath(node.left), node.right.name]; + } +} +function resolveGlobalScope(ctx) { + if (ctx.options.globalTypeFiles) { + const fs = resolveFS(ctx); + if (!fs) { + throw new Error("[vue/compiler-sfc] globalTypeFiles requires fs access."); + } + return ctx.options.globalTypeFiles.map( + (file) => fileToScope(ctx, normalizePath(file), true) + ); + } +} +let ts; +let loadTS; +function registerTS(_loadTS) { + loadTS = () => { + try { + return _loadTS(); + } catch (err) { + if (typeof err.message === "string" && err.message.includes("Cannot find module")) { + throw new Error( + 'Failed to load TypeScript, which is required for resolving imported types. Please make sure "TypeScript" is installed as a project dependency.' + ); + } else { + throw new Error( + "Failed to load TypeScript for resolving imported types." + ); + } + } + }; +} +function resolveFS(ctx) { + if (ctx.fs) { + return ctx.fs; + } + if (!ts && loadTS) { + ts = loadTS(); + } + const fs = ctx.options.fs || (ts == null ? void 0 : ts.sys); + if (!fs) { + return; + } + return ctx.fs = { + fileExists(file) { + if (file.endsWith(".vue.ts") && !file.endsWith(".d.vue.ts")) { + file = file.replace(/\.ts$/, ""); + } + return fs.fileExists(file); + }, + readFile(file) { + if (file.endsWith(".vue.ts") && !file.endsWith(".d.vue.ts")) { + file = file.replace(/\.ts$/, ""); + } + return fs.readFile(file); + }, + realpath: fs.realpath + }; +} +function resolveTypeFromImport(ctx, node, name, scope) { + const { source, imported } = scope.imports[name]; + const sourceScope = importSourceToScope(ctx, node, scope, source); + return resolveTypeReference(ctx, node, sourceScope, imported, true); +} +function importSourceToScope(ctx, node, scope, source) { + let fs; + try { + fs = resolveFS(ctx); + } catch (err) { + return ctx.error(err.message, node, scope); + } + if (!fs) { + return ctx.error( + `No fs option provided to \`compileScript\` in non-Node environment. File system access is required for resolving imported types.`, + node, + scope + ); + } + let resolved = scope.resolvedImportSources[source]; + if (!resolved) { + if (source.startsWith("..")) { + const osSpecificJoinFn = joinPaths; + const filename = osSpecificJoinFn(dirname(scope.filename), source); + resolved = resolveExt(filename, fs); + } else if (source[0] === ".") { + const filename = joinPaths(dirname(scope.filename), source); + resolved = resolveExt(filename, fs); + } else { + { + return ctx.error( + `Type import from non-relative sources is not supported in the browser build.`, + node, + scope + ); + } + } + if (resolved) { + resolved = scope.resolvedImportSources[source] = normalizePath(resolved); + } + } + if (resolved) { + (ctx.deps || (ctx.deps = /* @__PURE__ */ new Set())).add(resolved); + return fileToScope(ctx, resolved); + } else { + return ctx.error( + `Failed to resolve import source ${JSON.stringify(source)}.`, + node, + scope + ); + } +} +function resolveExt(filename, fs) { + let moduleType = "u"; + if (filename.endsWith(".mjs")) { + moduleType = "m"; + } else if (filename.endsWith(".cjs")) { + moduleType = "c"; + } + filename = filename.replace(/\.[cm]?jsx?$/, ""); + const tryResolve = (filename2) => { + if (fs.fileExists(filename2)) return filename2; + }; + const resolveTs = () => tryResolve(filename + `.ts`) || tryResolve(filename + `.tsx`) || tryResolve(filename + `.d.ts`); + const resolveMts = () => tryResolve(filename + `.mts`) || tryResolve(filename + `.d.mts`); + const resolveCts = () => tryResolve(filename + `.cts`) || tryResolve(filename + `.d.cts`); + return tryResolve(filename) || // For explicit .mjs/.cjs imports, prefer .mts/.cts declarations first. + (moduleType === "m" ? resolveMts() || resolveTs() : moduleType === "c" ? resolveCts() || resolveTs() : resolveTs() || resolveMts() || resolveCts()) || tryResolve(joinPaths(filename, `index.ts`)) || tryResolve(joinPaths(filename, `index.tsx`)) || tryResolve(joinPaths(filename, `index.d.ts`)); +} +const tsConfigCache = createCache(); +const tsConfigRefMap = /* @__PURE__ */ new Map(); +const fileToScopeCache = createCache(); +function invalidateTypeCache(filename) { + filename = normalizePath(filename); + fileToScopeCache.delete(filename); + tsConfigCache.delete(filename); + const affectedConfig = tsConfigRefMap.get(filename); + if (affectedConfig) tsConfigCache.delete(affectedConfig); +} +function fileToScope(ctx, filename, asGlobal = false) { + const cached = fileToScopeCache.get(filename); + if (cached) { + return cached; + } + const fs = resolveFS(ctx); + const source = fs.readFile(filename) || ""; + const body = parseFile(filename, source, fs, ctx.options.babelParserPlugins); + const scope = new TypeScope(filename, source, 0, recordImports(body)); + recordTypes(ctx, body, scope, asGlobal); + fileToScopeCache.set(filename, scope); + return scope; +} +function parseFile(filename, content, fs, parserPlugins) { + const ext = extname(filename); + if (ext === ".ts" || ext === ".mts" || ext === ".tsx" || ext === ".cts" || ext === ".mtsx") { + return libExports.parse(content, { + plugins: resolveParserPlugins( + ext.slice(1), + parserPlugins, + /\.d\.[cm]?ts$/.test(filename) + ), + sourceType: "module" + }).program.body; + } + const isUnknownTypeSource = !/\.[cm]?[tj]sx?$/.test(filename); + const arbitraryTypeSource = `${filename.slice(0, -ext.length)}.d${ext}.ts`; + const hasArbitraryTypeDeclaration = isUnknownTypeSource && fs.fileExists(arbitraryTypeSource); + if (hasArbitraryTypeDeclaration) { + return libExports.parse(fs.readFile(arbitraryTypeSource), { + plugins: resolveParserPlugins("ts", parserPlugins, true), + sourceType: "module" + }).program.body; + } + if (ext === ".vue") { + const { + descriptor: { script, scriptSetup } + } = parse$2(content); + if (!script && !scriptSetup) { + return []; + } + const scriptOffset = script ? script.loc.start.offset : Infinity; + const scriptSetupOffset = scriptSetup ? scriptSetup.loc.start.offset : Infinity; + const firstBlock = scriptOffset < scriptSetupOffset ? script : scriptSetup; + const secondBlock = scriptOffset < scriptSetupOffset ? scriptSetup : script; + let scriptContent = " ".repeat(Math.min(scriptOffset, scriptSetupOffset)) + firstBlock.content; + if (secondBlock) { + scriptContent += " ".repeat(secondBlock.loc.start.offset - script.loc.end.offset) + secondBlock.content; + } + const lang = (script == null ? void 0 : script.lang) || (scriptSetup == null ? void 0 : scriptSetup.lang); + return libExports.parse(scriptContent, { + plugins: resolveParserPlugins(lang, parserPlugins), + sourceType: "module" + }).program.body; + } + return []; +} +function ctxToScope(ctx) { + if (ctx.scope) { + return ctx.scope; + } + const body = "ast" in ctx ? ctx.ast : ctx.scriptAst ? [...ctx.scriptAst.body, ...ctx.scriptSetupAst.body] : ctx.scriptSetupAst.body; + const scope = new TypeScope( + ctx.filename, + ctx.source, + "startOffset" in ctx ? ctx.startOffset : 0, + "userImports" in ctx ? Object.create(ctx.userImports) : recordImports(body) + ); + recordTypes(ctx, body, scope); + return ctx.scope = scope; +} +function moduleDeclToScope(ctx, node, parentScope) { + if (node._resolvedChildScope) { + return node._resolvedChildScope; + } + const scope = createChildScope(parentScope); + if (node.body.type === "TSModuleDeclaration") { + const decl = node.body; + decl._ownerScope = scope; + const id = getId(decl.id); + scope.types[id] = scope.exportedTypes[id] = decl; + } else { + recordTypes(ctx, node.body.body, scope); + } + return node._resolvedChildScope = scope; +} +function createChildScope(parentScope) { + return new TypeScope( + parentScope.filename, + parentScope.source, + parentScope.offset, + Object.create(parentScope.imports), + Object.create(parentScope.types), + Object.create(parentScope.declares) + ); +} +const importExportRE = /^Import|^Export/; +function recordTypes(ctx, body, scope, asGlobal = false) { + const { types, declares, exportedTypes, exportedDeclares, imports } = scope; + const isAmbient = asGlobal ? !body.some((s) => importExportRE.test(s.type)) : false; + for (const stmt of body) { + if (asGlobal) { + if (isAmbient) { + if (stmt.declare) { + recordType(stmt, types, declares); + } + } else if (stmt.type === "TSModuleDeclaration" && stmt.global) { + for (const s of stmt.body.body) { + if (s.type === "ExportNamedDeclaration" && s.declaration) { + recordType(s.declaration, types, declares); + } else { + recordType(s, types, declares); + } + } + } + } else { + recordType(stmt, types, declares); + } + } + if (!asGlobal) { + for (const stmt of body) { + if (stmt.type === "ExportNamedDeclaration") { + if (stmt.declaration) { + recordType(stmt.declaration, types, declares); + recordType(stmt.declaration, exportedTypes, exportedDeclares); + } else { + for (const spec of stmt.specifiers) { + if (spec.type === "ExportSpecifier") { + const local = spec.local.name; + const exported = getId(spec.exported); + if (stmt.source) { + imports[exported] = { + source: stmt.source.value, + imported: local + }; + exportedTypes[exported] = { + type: "TSTypeReference", + typeName: { + type: "Identifier", + name: local + }, + _ownerScope: scope + }; + } else if (types[local]) { + exportedTypes[exported] = types[local]; + } + } + } + } + } else if (stmt.type === "ExportAllDeclaration") { + const sourceScope = importSourceToScope( + ctx, + stmt.source, + scope, + stmt.source.value + ); + Object.assign(scope.exportedTypes, sourceScope.exportedTypes); + } else if (stmt.type === "ExportDefaultDeclaration" && stmt.declaration) { + if (stmt.declaration.type !== "Identifier") { + recordType(stmt.declaration, types, declares, "default"); + recordType( + stmt.declaration, + exportedTypes, + exportedDeclares, + "default" + ); + } else if (types[stmt.declaration.name]) { + exportedTypes["default"] = types[stmt.declaration.name]; + } + } + } + } + for (const key of Object.keys(types)) { + const node = types[key]; + node._ownerScope = scope; + if (node._ns) node._ns._ownerScope = scope; + } + for (const key of Object.keys(declares)) { + declares[key]._ownerScope = scope; + } +} +function recordType(node, types, declares, overwriteId) { + switch (node.type) { + case "TSInterfaceDeclaration": + case "TSEnumDeclaration": + case "TSModuleDeclaration": { + if (node.type === "TSModuleDeclaration" && node.global) { + const body = node.body; + for (const s of body.body) { + if (s.type === "ExportNamedDeclaration" && s.declaration) { + recordType(s.declaration, types, declares); + } else { + recordType(s, types, declares); + } + } + break; + } + const id = overwriteId || getId(node.id); + let existing = types[id]; + if (existing) { + if (node.type === "TSModuleDeclaration") { + if (existing.type === "TSModuleDeclaration") { + mergeNamespaces(existing, node); + } else { + attachNamespace(existing, node); + } + break; + } + if (existing.type === "TSModuleDeclaration") { + types[id] = node; + attachNamespace(node, existing); + break; + } + if (existing.type !== node.type) { + break; + } + if (node.type === "TSInterfaceDeclaration") { + existing.body.body.push(...node.body.body); + } else { + existing.members.push(...node.members); + } + } else { + types[id] = node; + } + break; + } + case "ClassDeclaration": + if (overwriteId || node.id) types[overwriteId || getId(node.id)] = node; + break; + case "TSTypeAliasDeclaration": + types[node.id.name] = node.typeParameters ? node : node.typeAnnotation; + break; + case "TSDeclareFunction": + if (node.id) declares[node.id.name] = node; + break; + case "VariableDeclaration": { + if (node.declare) { + for (const decl of node.declarations) { + if (decl.id.type === "Identifier" && decl.id.typeAnnotation) { + declares[decl.id.name] = decl.id.typeAnnotation.typeAnnotation; + } + } + } + break; + } + } +} +function mergeNamespaces(to, from) { + const toBody = to.body; + const fromBody = from.body; + if (toBody.type === "TSModuleDeclaration") { + if (fromBody.type === "TSModuleDeclaration") { + mergeNamespaces(toBody, fromBody); + } else { + fromBody.body.push({ + type: "ExportNamedDeclaration", + declaration: toBody, + exportKind: "type", + specifiers: [] + }); + } + } else if (fromBody.type === "TSModuleDeclaration") { + toBody.body.push({ + type: "ExportNamedDeclaration", + declaration: fromBody, + exportKind: "type", + specifiers: [] + }); + } else { + toBody.body.push(...fromBody.body); + } +} +function attachNamespace(to, ns) { + if (!to._ns) { + to._ns = ns; + } else { + mergeNamespaces(to._ns, ns); + } +} +function recordImports(body) { + const imports = /* @__PURE__ */ Object.create(null); + for (const s of body) { + recordImport(s, imports); + } + return imports; +} +function recordImport(node, imports) { + if (node.type !== "ImportDeclaration") { + return; + } + for (const s of node.specifiers) { + imports[s.local.name] = { + imported: getImportedName(s), + source: node.source.value + }; + } +} +function inferRuntimeType(ctx, node, scope = node._ownerScope || ctxToScope(ctx), isKeyOf = false, typeParameters) { + if (node.leadingComments && node.leadingComments.some((c) => c.value.includes("@vue-ignore"))) { + return [UNKNOWN_TYPE]; + } + const prevSilent = ctx.silentOnExtendsFailure; + ctx.silentOnExtendsFailure = true; + try { + switch (node.type) { + case "TSStringKeyword": + return ["String"]; + case "TSNumberKeyword": + return ["Number"]; + case "TSBooleanKeyword": + return ["Boolean"]; + case "TSObjectKeyword": + return ["Object"]; + case "TSNullKeyword": + return ["null"]; + case "TSTypeLiteral": + case "TSInterfaceDeclaration": { + const types = /* @__PURE__ */ new Set(); + const members = node.type === "TSTypeLiteral" ? node.members : node.body.body; + for (const m of members) { + if (isKeyOf) { + if (m.type === "TSPropertySignature" && m.key.type === "NumericLiteral") { + types.add("Number"); + } else if (m.type === "TSIndexSignature") { + const annotation = m.parameters[0].typeAnnotation; + if (annotation && annotation.type !== "Noop") { + const type = inferRuntimeType( + ctx, + annotation.typeAnnotation, + scope + )[0]; + if (type === UNKNOWN_TYPE) return [UNKNOWN_TYPE]; + types.add(type); + } + } else { + types.add("String"); + } + } else if (m.type === "TSCallSignatureDeclaration" || m.type === "TSConstructSignatureDeclaration") { + types.add("Function"); + } else { + types.add("Object"); + } + } + return types.size ? Array.from(types) : [isKeyOf ? UNKNOWN_TYPE : "Object"]; + } + case "TSPropertySignature": + if (node.typeAnnotation) { + return inferRuntimeType( + ctx, + node.typeAnnotation.typeAnnotation, + scope + ); + } + break; + case "TSMethodSignature": + case "TSFunctionType": + return ["Function"]; + case "TSArrayType": + case "TSTupleType": + return ["Array"]; + case "TSLiteralType": + switch (node.literal.type) { + case "StringLiteral": + return ["String"]; + case "BooleanLiteral": + return ["Boolean"]; + case "NumericLiteral": + case "BigIntLiteral": + return ["Number"]; + default: + return [UNKNOWN_TYPE]; + } + case "TSTypeReference": { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) { + if (resolved.type === "TSTypeAliasDeclaration") { + if (resolved.typeAnnotation.type === "TSFunctionType") { + return ["Function"]; + } + if (node.typeParameters) { + const typeParams = /* @__PURE__ */ Object.create(null); + if (resolved.typeParameters) { + resolved.typeParameters.params.forEach((p, i) => { + typeParams[p.name] = node.typeParameters.params[i]; + }); + } + return inferRuntimeType( + ctx, + resolved.typeAnnotation, + resolved._ownerScope, + isKeyOf, + typeParams + ); + } + } + return inferRuntimeType(ctx, resolved, resolved._ownerScope, isKeyOf); + } + if (node.typeName.type === "Identifier") { + if (typeParameters && typeParameters[node.typeName.name]) { + return inferRuntimeType( + ctx, + typeParameters[node.typeName.name], + scope, + isKeyOf, + typeParameters + ); + } + if (isKeyOf) { + switch (node.typeName.name) { + case "String": + case "Array": + case "ArrayLike": + case "Parameters": + case "ConstructorParameters": + case "ReadonlyArray": + return ["String", "Number"]; + // TS built-in utility types + case "Record": + case "Partial": + case "Required": + case "Readonly": + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[0], + scope, + true + ); + } + break; + case "Pick": + case "Extract": + if (node.typeParameters && node.typeParameters.params[1]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[1], + scope + ); + } + break; + case "Function": + case "Object": + case "Set": + case "Map": + case "WeakSet": + case "WeakMap": + case "Date": + case "Promise": + case "Error": + case "Uppercase": + case "Lowercase": + case "Capitalize": + case "Uncapitalize": + case "ReadonlyMap": + case "ReadonlySet": + return ["String"]; + } + } else { + switch (node.typeName.name) { + case "Array": + case "Function": + case "Object": + case "Set": + case "Map": + case "WeakSet": + case "WeakMap": + case "Date": + case "Promise": + case "Error": + return [node.typeName.name]; + // TS built-in utility types + // https://www.typescriptlang.org/docs/handbook/utility-types.html + case "Partial": + case "Required": + case "Readonly": + case "Record": + case "Pick": + case "Omit": + case "InstanceType": + return ["Object"]; + case "Uppercase": + case "Lowercase": + case "Capitalize": + case "Uncapitalize": + return ["String"]; + case "Parameters": + case "ConstructorParameters": + case "ReadonlyArray": + return ["Array"]; + case "ReadonlyMap": + return ["Map"]; + case "ReadonlySet": + return ["Set"]; + case "NonNullable": + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[0], + scope + ).filter((t) => t !== "null"); + } + break; + case "Extract": + if (node.typeParameters && node.typeParameters.params[1]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[1], + scope + ); + } + break; + case "Exclude": + case "OmitThisParameter": + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + ctx, + node.typeParameters.params[0], + scope + ); + } + break; + } + } + } + break; + } + case "TSParenthesizedType": + return inferRuntimeType(ctx, node.typeAnnotation, scope); + case "TSUnionType": + return flattenTypes(ctx, node.types, scope, isKeyOf, typeParameters); + case "TSIntersectionType": { + return flattenTypes( + ctx, + node.types, + scope, + isKeyOf, + typeParameters + ).filter((t) => t !== UNKNOWN_TYPE); + } + case "TSMappedType": { + const { typeAnnotation, typeParameter } = node; + if (typeAnnotation && typeAnnotation.type === "TSIndexedAccessType" && typeParameter && typeParameter.constraint && typeParameters) { + const constraint = typeParameter.constraint; + if (constraint.type === "TSTypeOperator" && constraint.operator === "keyof" && constraint.typeAnnotation && constraint.typeAnnotation.type === "TSTypeReference" && constraint.typeAnnotation.typeName.type === "Identifier") { + const typeName = constraint.typeAnnotation.typeName.name; + const index = typeAnnotation.indexType; + const obj = typeAnnotation.objectType; + if (obj && obj.type === "TSTypeReference" && obj.typeName.type === "Identifier" && obj.typeName.name === typeName && index && index.type === "TSTypeReference" && index.typeName.type === "Identifier" && index.typeName.name === typeParameter.name) { + const targetType = typeParameters[typeName]; + if (targetType) { + return inferRuntimeType(ctx, targetType, scope); + } + } + } + } + return [UNKNOWN_TYPE]; + } + case "TSEnumDeclaration": + return inferEnumType(node); + case "TSSymbolKeyword": + return ["Symbol"]; + case "TSIndexedAccessType": { + const types = resolveIndexType(ctx, node, scope); + return flattenTypes(ctx, types, scope, isKeyOf); + } + case "ClassDeclaration": + return ["Object"]; + case "TSImportType": { + const sourceScope = importSourceToScope( + ctx, + node.argument, + scope, + node.argument.value + ); + const resolved = resolveTypeReference(ctx, node, sourceScope); + if (resolved) { + return inferRuntimeType(ctx, resolved, resolved._ownerScope); + } + break; + } + case "TSTypeQuery": { + const id = node.exprName; + if (id.type === "Identifier") { + const matched = scope.declares[id.name]; + if (matched) { + return inferRuntimeType(ctx, matched, matched._ownerScope, isKeyOf); + } + } + break; + } + // e.g. readonly + case "TSTypeOperator": { + return inferRuntimeType( + ctx, + node.typeAnnotation, + scope, + node.operator === "keyof" + ); + } + case "TSAnyKeyword": { + if (isKeyOf) { + return ["String", "Number", "Symbol"]; + } + break; + } + } + } catch (e) { + } finally { + ctx.silentOnExtendsFailure = prevSilent; + } + return [UNKNOWN_TYPE]; +} +function flattenTypes(ctx, types, scope, isKeyOf = false, typeParameters = void 0) { + if (types.length === 1) { + return inferRuntimeType( + ctx, + types[0], + types[0]._ownerScope || scope, + isKeyOf, + typeParameters + ); + } + return [ + ...new Set( + [].concat( + ...types.map( + (t) => inferRuntimeType( + ctx, + t, + t._ownerScope || scope, + isKeyOf, + typeParameters + ) + ) + ) + ) + ]; +} +function inferEnumType(node) { + const types = /* @__PURE__ */ new Set(); + for (const m of node.members) { + if (m.initializer) { + switch (m.initializer.type) { + case "StringLiteral": + types.add("String"); + break; + case "NumericLiteral": + types.add("Number"); + break; + } + } + } + return types.size ? [...types] : ["Number"]; +} +function resolveExtractPropTypes({ props }, scope) { + const res = { props: {} }; + for (const key in props) { + const raw = props[key]; + res.props[key] = reverseInferType( + raw.key, + raw.typeAnnotation.typeAnnotation, + scope + ); + } + return res; +} +function reverseInferType(key, node, scope, optional = true, checkObjectSyntax = true) { + if (checkObjectSyntax && node.type === "TSTypeLiteral") { + const typeType = findStaticPropertyType(node, "type"); + if (typeType) { + const requiredType = findStaticPropertyType(node, "required"); + const optional2 = requiredType && requiredType.type === "TSLiteralType" && requiredType.literal.type === "BooleanLiteral" ? !requiredType.literal.value : true; + return reverseInferType(key, typeType, scope, optional2, false); + } + } else if (node.type === "TSTypeReference" && node.typeName.type === "Identifier") { + if (node.typeName.name.endsWith("Constructor")) { + return createProperty( + key, + ctorToType(node.typeName.name), + scope, + optional + ); + } else if (node.typeName.name === "PropType" && node.typeParameters) { + return createProperty(key, node.typeParameters.params[0], scope, optional); + } + } + if ((node.type === "TSTypeReference" || node.type === "TSImportType") && node.typeParameters) { + for (const t of node.typeParameters.params) { + const inferred = reverseInferType(key, t, scope, optional); + if (inferred) return inferred; + } + } + return createProperty(key, { type: `TSNullKeyword` }, scope, optional); +} +function ctorToType(ctorType) { + const ctor = ctorType.slice(0, -11); + switch (ctor) { + case "String": + case "Number": + case "Boolean": + return { type: `TS${ctor}Keyword` }; + case "Array": + case "Function": + case "Object": + case "Set": + case "Map": + case "WeakSet": + case "WeakMap": + case "Date": + case "Promise": + return { + type: "TSTypeReference", + typeName: { type: "Identifier", name: ctor } + }; + } + return { type: `TSNullKeyword` }; +} +function findStaticPropertyType(node, key) { + const prop = node.members.find( + (m) => m.type === "TSPropertySignature" && getStringLiteralKey(m) === key && m.typeAnnotation + ); + return prop && prop.typeAnnotation.typeAnnotation; +} +function resolveReturnType(ctx, arg, scope) { + var _a; + let resolved = arg; + if (arg.type === "TSTypeReference" || arg.type === "TSTypeQuery" || arg.type === "TSImportType") { + resolved = resolveTypeReference(ctx, arg, scope); + } + if (!resolved) return; + if (resolved.type === "TSFunctionType") { + return (_a = resolved.typeAnnotation) == null ? void 0 : _a.typeAnnotation; + } + if (resolved.type === "TSDeclareFunction") { + return resolved.returnType; + } +} +function resolveUnionType(ctx, node, scope) { + if (node.type === "TSTypeReference") { + const resolved = resolveTypeReference(ctx, node, scope); + if (resolved) node = resolved; + } + let types; + if (node.type === "TSUnionType") { + types = node.types.flatMap((node2) => resolveUnionType(ctx, node2, scope)); + } else { + types = [node]; + } + return types; +} + +const DEFINE_MODEL = "defineModel"; +function processDefineModel(ctx, node, declId) { + if (!isCallOf(node, DEFINE_MODEL)) { + return false; + } + ctx.hasDefineModelCall = true; + const type = node.typeParameters && node.typeParameters.params[0] || void 0; + let modelName; + let options; + const arg0 = node.arguments[0] && unwrapTSNode(node.arguments[0]); + const hasName = arg0 && arg0.type === "StringLiteral"; + if (hasName) { + modelName = arg0.value; + options = node.arguments[1]; + } else { + modelName = "modelValue"; + options = arg0; + } + if (ctx.modelDecls[modelName]) { + ctx.error(`duplicate model name ${JSON.stringify(modelName)}`, node); + } + let optionsString = options && ctx.getString(options); + let optionsRemoved = !options; + const runtimeOptionNodes = []; + if (options && options.type === "ObjectExpression" && !options.properties.some((p) => p.type === "SpreadElement" || p.computed)) { + let removed = 0; + for (let i = options.properties.length - 1; i >= 0; i--) { + const p = options.properties[i]; + const next = options.properties[i + 1]; + const start = p.start; + const end = next ? next.start : options.end - 1; + if ((p.type === "ObjectProperty" || p.type === "ObjectMethod") && (p.key.type === "Identifier" && (p.key.name === "get" || p.key.name === "set") || p.key.type === "StringLiteral" && (p.key.value === "get" || p.key.value === "set"))) { + optionsString = optionsString.slice(0, start - options.start) + optionsString.slice(end - options.start); + } else { + removed++; + ctx.s.remove(ctx.startOffset + start, ctx.startOffset + end); + runtimeOptionNodes.push(p); + } + } + if (removed === options.properties.length) { + optionsRemoved = true; + ctx.s.remove( + ctx.startOffset + (hasName ? arg0.end : options.start), + ctx.startOffset + options.end + ); + } + } + ctx.modelDecls[modelName] = { + type, + options: optionsString, + runtimeOptionNodes, + identifier: declId && declId.type === "Identifier" ? declId.name : void 0 + }; + ctx.bindingMetadata[modelName] = "props"; + ctx.s.overwrite( + ctx.startOffset + node.callee.start, + ctx.startOffset + node.callee.end, + ctx.helper("useModel") + ); + ctx.s.appendLeft( + ctx.startOffset + (node.arguments.length ? node.arguments[0].start : node.end - 1), + `__props, ` + (hasName ? `` : `${JSON.stringify(modelName)}${optionsRemoved ? `` : `, `}`) + ); + return true; +} +function genModelProps(ctx) { + if (!ctx.hasDefineModelCall) return; + const isProd = !!ctx.options.isProd; + let modelPropsDecl = ""; + for (const [name, { type, options: runtimeOptions }] of Object.entries( + ctx.modelDecls + )) { + let skipCheck = false; + let codegenOptions = ``; + let runtimeTypes = type && inferRuntimeType(ctx, type); + if (runtimeTypes) { + const hasBoolean = runtimeTypes.includes("Boolean"); + const hasFunction = runtimeTypes.includes("Function"); + const hasUnknownType = runtimeTypes.includes(UNKNOWN_TYPE); + if (hasUnknownType) { + if (hasBoolean || hasFunction) { + runtimeTypes = runtimeTypes.filter((t) => t !== UNKNOWN_TYPE); + skipCheck = true; + } else { + runtimeTypes = ["null"]; + } + } + if (!isProd) { + codegenOptions = `type: ${toRuntimeTypeString(runtimeTypes)}` + (skipCheck ? ", skipCheck: true" : ""); + } else if (hasBoolean || runtimeOptions && hasFunction) { + codegenOptions = `type: ${toRuntimeTypeString(runtimeTypes)}`; + } else ; + } + let decl; + if (codegenOptions && runtimeOptions) { + decl = ctx.isTS ? `{ ${codegenOptions}, ...${runtimeOptions} }` : `Object.assign({ ${codegenOptions} }, ${runtimeOptions})`; + } else if (codegenOptions) { + decl = `{ ${codegenOptions} }`; + } else if (runtimeOptions) { + decl = runtimeOptions; + } else { + decl = `{}`; + } + modelPropsDecl += ` + ${JSON.stringify(name)}: ${decl},`; + const modifierPropName = JSON.stringify( + name === "modelValue" ? `modelModifiers` : `${name}Modifiers` + ); + modelPropsDecl += ` + ${modifierPropName}: {},`; + } + return `{${modelPropsDecl} + }`; +} + +const DEFINE_PROPS = "defineProps"; +const WITH_DEFAULTS = "withDefaults"; +function processDefineProps(ctx, node, declId, isWithDefaults = false) { + if (!isCallOf(node, DEFINE_PROPS)) { + return processWithDefaults(ctx, node, declId); + } + if (ctx.hasDefinePropsCall) { + ctx.error(`duplicate ${DEFINE_PROPS}() call`, node); + } + ctx.hasDefinePropsCall = true; + ctx.propsRuntimeDecl = node.arguments[0]; + if (ctx.propsRuntimeDecl) { + for (const key of getObjectOrArrayExpressionKeys(ctx.propsRuntimeDecl)) { + if (!(key in ctx.bindingMetadata)) { + ctx.bindingMetadata[key] = "props"; + } + } + } + if (node.typeParameters) { + if (ctx.propsRuntimeDecl) { + ctx.error( + `${DEFINE_PROPS}() cannot accept both type and non-type arguments at the same time. Use one or the other.`, + node + ); + } + ctx.propsTypeDecl = node.typeParameters.params[0]; + } + if (!isWithDefaults && declId && declId.type === "ObjectPattern") { + processPropsDestructure(ctx, declId); + } + ctx.propsCall = node; + ctx.propsDecl = declId; + return true; +} +function processWithDefaults(ctx, node, declId) { + if (!isCallOf(node, WITH_DEFAULTS)) { + return false; + } + if (!processDefineProps( + ctx, + node.arguments[0], + declId, + true + )) { + ctx.error( + `${WITH_DEFAULTS}' first argument must be a ${DEFINE_PROPS} call.`, + node.arguments[0] || node + ); + } + if (ctx.propsRuntimeDecl) { + ctx.error( + `${WITH_DEFAULTS} can only be used with type-based ${DEFINE_PROPS} declaration.`, + node + ); + } + if (declId && declId.type === "ObjectPattern") { + ctx.warn( + `${WITH_DEFAULTS}() is unnecessary when using destructure with ${DEFINE_PROPS}(). +Reactive destructure will be disabled when using withDefaults(). +Prefer using destructure default values, e.g. const { foo = 1 } = defineProps(...). `, + node.callee + ); + } + ctx.propsRuntimeDefaults = node.arguments[1]; + if (!ctx.propsRuntimeDefaults) { + ctx.error(`The 2nd argument of ${WITH_DEFAULTS} is required.`, node); + } + ctx.propsCall = node; + return true; +} +function genRuntimeProps(ctx) { + let propsDecls; + if (ctx.propsRuntimeDecl) { + propsDecls = ctx.getString(ctx.propsRuntimeDecl).trim(); + if (ctx.propsDestructureDecl) { + const defaults = []; + for (const key in ctx.propsDestructuredBindings) { + const d = genDestructuredDefaultValue(ctx, key); + const finalKey = getEscapedPropName(key); + if (d) + defaults.push( + `${finalKey}: ${d.valueString}${d.needSkipFactory ? `, __skip_${finalKey}: true` : ``}` + ); + } + if (defaults.length) { + propsDecls = `/*@__PURE__*/${ctx.helper( + `mergeDefaults` + )}(${propsDecls}, { + ${defaults.join(",\n ")} +})`; + } + } + } else if (ctx.propsTypeDecl) { + propsDecls = extractRuntimeProps(ctx); + } + const modelsDecls = genModelProps(ctx); + if (propsDecls && modelsDecls) { + return `/*@__PURE__*/${ctx.helper( + "mergeModels" + )}(${propsDecls}, ${modelsDecls})`; + } else { + return modelsDecls || propsDecls; + } +} +function extractRuntimeProps(ctx) { + const props = resolveRuntimePropsFromType(ctx, ctx.propsTypeDecl); + if (!props.length) { + return; + } + const propStrings = []; + const hasStaticDefaults = hasStaticWithDefaults(ctx); + for (const prop of props) { + propStrings.push(genRuntimePropFromType(ctx, prop, hasStaticDefaults)); + if ("bindingMetadata" in ctx && !(prop.key in ctx.bindingMetadata)) { + ctx.bindingMetadata[prop.key] = "props"; + } + } + let propsDecls = `{ + ${propStrings.join(",\n ")} + }`; + if (ctx.propsRuntimeDefaults && !hasStaticDefaults) { + propsDecls = `/*@__PURE__*/${ctx.helper( + "mergeDefaults" + )}(${propsDecls}, ${ctx.getString(ctx.propsRuntimeDefaults)})`; + } + return propsDecls; +} +function resolveRuntimePropsFromType(ctx, node) { + const props = []; + const elements = resolveTypeElements(ctx, node); + for (const key in elements.props) { + const e = elements.props[key]; + let type = inferRuntimeType(ctx, e); + let skipCheck = false; + if (type.includes(UNKNOWN_TYPE)) { + if (type.includes("Boolean") || type.includes("Function")) { + type = type.filter((t) => t !== UNKNOWN_TYPE); + skipCheck = true; + } else { + type = ["null"]; + } + } + props.push({ + key, + required: !e.optional, + type: type || [`null`], + skipCheck + }); + } + return props; +} +function genRuntimePropFromType(ctx, { key, required, type, skipCheck }, hasStaticDefaults) { + let defaultString; + const destructured = genDestructuredDefaultValue(ctx, key, type); + if (destructured) { + defaultString = `default: ${destructured.valueString}${destructured.needSkipFactory ? `, skipFactory: true` : ``}`; + } else if (hasStaticDefaults) { + const prop = ctx.propsRuntimeDefaults.properties.find( + (node) => { + if (node.type === "SpreadElement") return false; + return resolveObjectKey(node.key, node.computed) === key; + } + ); + if (prop) { + if (prop.type === "ObjectProperty") { + defaultString = `default: ${ctx.getString(prop.value)}`; + } else { + let paramsString = ""; + if (prop.params.length) { + const start = prop.params[0].start; + const end = prop.params[prop.params.length - 1].end; + paramsString = ctx.getString({ start, end }); + } + defaultString = `${prop.async ? "async " : ""}${prop.kind !== "method" ? `${prop.kind} ` : ""}default(${paramsString}) ${ctx.getString(prop.body)}`; + } + } + } + const finalKey = getEscapedPropName(key); + if (!ctx.options.isProd) { + return `${finalKey}: { ${concatStrings([ + `type: ${toRuntimeTypeString(type)}`, + `required: ${required}`, + skipCheck && "skipCheck: true", + defaultString + ])} }`; + } else if (type.some( + (el) => el === "Boolean" || (!hasStaticDefaults || defaultString) && el === "Function" + )) { + return `${finalKey}: { ${concatStrings([ + `type: ${toRuntimeTypeString(type)}`, + defaultString + ])} }`; + } else { + if (ctx.isCE) { + if (defaultString) { + return `${finalKey}: ${`{ ${defaultString}, type: ${toRuntimeTypeString( + type + )} }`}`; + } else { + return `${finalKey}: {type: ${toRuntimeTypeString(type)}}`; + } + } + return `${finalKey}: ${defaultString ? `{ ${defaultString} }` : `{}`}`; + } +} +function hasStaticWithDefaults(ctx) { + return !!(ctx.propsRuntimeDefaults && ctx.propsRuntimeDefaults.type === "ObjectExpression" && ctx.propsRuntimeDefaults.properties.every( + (node) => node.type !== "SpreadElement" && (!node.computed || node.key.type.endsWith("Literal")) + )); +} +function genDestructuredDefaultValue(ctx, key, inferredType) { + const destructured = ctx.propsDestructuredBindings[key]; + const defaultVal = destructured && destructured.default; + if (defaultVal) { + const value = ctx.getString(defaultVal); + const unwrapped = unwrapTSNode(defaultVal); + if (inferredType && inferredType.length && !inferredType.includes("null")) { + const valueType = inferValueType(unwrapped); + if (valueType && !inferredType.includes(valueType)) { + ctx.error( + `Default value of prop "${key}" does not match declared type.`, + unwrapped + ); + } + } + const needSkipFactory = !inferredType && (isFunctionType(unwrapped) || unwrapped.type === "Identifier"); + const needFactoryWrap = !needSkipFactory && !isLiteralNode(unwrapped) && !(inferredType == null ? void 0 : inferredType.includes("Function")); + return { + valueString: needFactoryWrap ? `() => (${value})` : value, + needSkipFactory + }; + } +} +function inferValueType(node) { + switch (node.type) { + case "StringLiteral": + return "String"; + case "NumericLiteral": + return "Number"; + case "BooleanLiteral": + return "Boolean"; + case "ObjectExpression": + return "Object"; + case "ArrayExpression": + return "Array"; + case "FunctionExpression": + case "ArrowFunctionExpression": + return "Function"; + } +} + +function processPropsDestructure(ctx, declId) { + if (ctx.options.propsDestructure === "error") { + ctx.error(`Props destructure is explicitly prohibited via config.`, declId); + } else if (ctx.options.propsDestructure === false) { + return; + } + ctx.propsDestructureDecl = declId; + const registerBinding = (key, local, defaultValue) => { + ctx.propsDestructuredBindings[key] = { local, default: defaultValue }; + if (local !== key) { + ctx.bindingMetadata[local] = "props-aliased"; + (ctx.bindingMetadata.__propsAliases || (ctx.bindingMetadata.__propsAliases = {}))[local] = key; + } + }; + for (const prop of declId.properties) { + if (prop.type === "ObjectProperty") { + const propKey = resolveObjectKey(prop.key, prop.computed); + if (!propKey) { + ctx.error( + `${DEFINE_PROPS}() destructure cannot use computed key.`, + prop.key + ); + } + if (prop.value.type === "AssignmentPattern") { + const { left, right } = prop.value; + if (left.type !== "Identifier") { + ctx.error( + `${DEFINE_PROPS}() destructure does not support nested patterns.`, + left + ); + } + registerBinding(propKey, left.name, right); + } else if (prop.value.type === "Identifier") { + registerBinding(propKey, prop.value.name); + } else { + ctx.error( + `${DEFINE_PROPS}() destructure does not support nested patterns.`, + prop.value + ); + } + } else { + ctx.propsDestructureRestId = prop.argument.name; + ctx.bindingMetadata[ctx.propsDestructureRestId] = "setup-reactive-const"; + } + } +} +function transformDestructuredProps(ctx, vueImportAliases) { + if (ctx.options.propsDestructure === false) { + return; + } + const rootScope = /* @__PURE__ */ Object.create(null); + const scopeStack = [rootScope]; + let currentScope = rootScope; + const excludedIds = /* @__PURE__ */ new WeakSet(); + const parentStack = []; + const propsLocalToPublicMap = /* @__PURE__ */ Object.create(null); + for (const key in ctx.propsDestructuredBindings) { + const { local } = ctx.propsDestructuredBindings[key]; + rootScope[local] = true; + propsLocalToPublicMap[local] = key; + } + function pushScope() { + scopeStack.push(currentScope = Object.create(currentScope)); + } + function popScope() { + scopeStack.pop(); + currentScope = scopeStack[scopeStack.length - 1] || null; + } + function registerLocalBinding(id) { + excludedIds.add(id); + if (currentScope) { + currentScope[id.name] = false; + } else { + ctx.error( + "registerBinding called without active scope, something is wrong.", + id + ); + } + } + function walkScope(node, isRoot = false) { + for (const stmt of node.body) { + if (stmt.type === "VariableDeclaration") { + walkVariableDeclaration(stmt, isRoot); + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + registerLocalBinding(stmt.id); + } else if (stmt.type === "ExportNamedDeclaration" && stmt.declaration && stmt.declaration.type === "VariableDeclaration") { + walkVariableDeclaration(stmt.declaration, isRoot); + } else if (stmt.type === "LabeledStatement" && stmt.body.type === "VariableDeclaration") { + walkVariableDeclaration(stmt.body, isRoot); + } + } + } + function walkVariableDeclaration(stmt, isRoot = false) { + if (stmt.declare) { + return; + } + for (const decl of stmt.declarations) { + const isDefineProps = isRoot && decl.init && isCallOf(unwrapTSNode(decl.init), "defineProps"); + for (const id of extractIdentifiers$1(decl.id)) { + if (isDefineProps) { + excludedIds.add(id); + } else { + registerLocalBinding(id); + } + } + } + } + function rewriteId(id, parent, parentStack2) { + if (parent.type === "AssignmentExpression" && id === parent.left || parent.type === "UpdateExpression") { + ctx.error(`Cannot assign to destructured props as they are readonly.`, id); + } + if (isStaticProperty(parent) && parent.shorthand) { + if (!parent.inPattern || isInDestructureAssignment(parent, parentStack2)) { + ctx.s.appendLeft( + id.end + ctx.startOffset, + `: ${genPropsAccessExp(propsLocalToPublicMap[id.name])}` + ); + } + } else { + ctx.s.overwrite( + id.start + ctx.startOffset, + id.end + ctx.startOffset, + genPropsAccessExp(propsLocalToPublicMap[id.name]) + ); + } + } + function checkUsage(node, method, alias = method) { + if (isCallOf(node, alias)) { + const arg = unwrapTSNode(node.arguments[0]); + if (arg.type === "Identifier" && currentScope[arg.name]) { + ctx.error( + `"${arg.name}" is a destructured prop and should not be passed directly to ${method}(). Pass a getter () => ${arg.name} instead.`, + arg + ); + } + } + } + const ast = ctx.scriptSetupAst; + walkScope(ast, true); + walk$2(ast, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + checkUsage(node, "watch", vueImportAliases.watch); + checkUsage(node, "toRef", vueImportAliases.toRef); + if (isFunctionType(node)) { + pushScope(); + walkFunctionParams(node, registerLocalBinding); + if (node.body.type === "BlockStatement") { + walkScope(node.body); + } + return; + } + if (node.type === "CatchClause") { + pushScope(); + if (node.param && node.param.type === "Identifier") { + registerLocalBinding(node.param); + } + walkScope(node.body); + return; + } + if (node.type === "ForOfStatement" || node.type === "ForInStatement" || node.type === "ForStatement") { + pushScope(); + const varDecl = node.type === "ForStatement" ? node.init : node.left; + if (varDecl && varDecl.type === "VariableDeclaration") { + walkVariableDeclaration(varDecl); + } + if (node.body.type === "BlockStatement") { + walkScope(node.body); + } + return; + } + if (node.type === "BlockStatement" && !isFunctionType(parent)) { + pushScope(); + walkScope(node); + return; + } + if (node.type === "Identifier") { + if (isReferencedIdentifier(node, parent, parentStack) && !excludedIds.has(node)) { + if (currentScope[node.name]) { + rewriteId(node, parent, parentStack); + } + } + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node.type === "BlockStatement" && !isFunctionType(parent) || isFunctionType(node) || node.type === "CatchClause" || node.type === "ForOfStatement" || node.type === "ForInStatement" || node.type === "ForStatement") { + popScope(); + } + } + }); +} + +const DEFINE_EMITS = "defineEmits"; +function processDefineEmits(ctx, node, declId) { + if (!isCallOf(node, DEFINE_EMITS)) { + return false; + } + if (ctx.hasDefineEmitCall) { + ctx.error(`duplicate ${DEFINE_EMITS}() call`, node); + } + ctx.hasDefineEmitCall = true; + ctx.emitsRuntimeDecl = node.arguments[0]; + if (node.typeParameters) { + if (ctx.emitsRuntimeDecl) { + ctx.error( + `${DEFINE_EMITS}() cannot accept both type and non-type arguments at the same time. Use one or the other.`, + node + ); + } + ctx.emitsTypeDecl = node.typeParameters.params[0]; + } + ctx.emitDecl = declId; + return true; +} +function genRuntimeEmits(ctx) { + let emitsDecl = ""; + if (ctx.emitsRuntimeDecl) { + emitsDecl = ctx.getString(ctx.emitsRuntimeDecl).trim(); + } else if (ctx.emitsTypeDecl) { + const typeDeclaredEmits = extractRuntimeEmits(ctx); + emitsDecl = typeDeclaredEmits.size ? `[${Array.from(typeDeclaredEmits).map((k) => JSON.stringify(k)).join(", ")}]` : ``; + } + if (ctx.hasDefineModelCall) { + let modelEmitsDecl = `[${Object.keys(ctx.modelDecls).map((n) => JSON.stringify(`update:${n}`)).join(", ")}]`; + emitsDecl = emitsDecl ? `/*@__PURE__*/${ctx.helper( + "mergeModels" + )}(${emitsDecl}, ${modelEmitsDecl})` : modelEmitsDecl; + } + return emitsDecl; +} +function extractRuntimeEmits(ctx) { + const emits = /* @__PURE__ */ new Set(); + const node = ctx.emitsTypeDecl; + if (node.type === "TSFunctionType") { + extractEventNames(ctx, node.parameters[0], emits); + return emits; + } + const { props, calls } = resolveTypeElements(ctx, node); + let hasProperty = false; + for (const key in props) { + emits.add(key); + hasProperty = true; + } + if (calls) { + if (hasProperty) { + ctx.error( + `defineEmits() type cannot mixed call signature and property syntax.`, + node + ); + } + for (const call of calls) { + extractEventNames(ctx, call.parameters[0], emits); + } + } + return emits; +} +function extractEventNames(ctx, eventName, emits) { + if (eventName.type === "Identifier" && eventName.typeAnnotation && eventName.typeAnnotation.type === "TSTypeAnnotation") { + const types = resolveUnionType(ctx, eventName.typeAnnotation.typeAnnotation); + for (const type of types) { + if (type.type === "TSLiteralType") { + if (type.literal.type !== "UnaryExpression" && type.literal.type !== "TemplateLiteral") { + emits.add(String(type.literal.value)); + } + } + } + } +} + +const DEFINE_EXPOSE = "defineExpose"; +function processDefineExpose(ctx, node) { + if (isCallOf(node, DEFINE_EXPOSE)) { + if (ctx.hasDefineExposeCall) { + ctx.error(`duplicate ${DEFINE_EXPOSE}() call`, node); + } + ctx.hasDefineExposeCall = true; + return true; + } + return false; +} + +const DEFINE_SLOTS = "defineSlots"; +function processDefineSlots(ctx, node, declId) { + if (!isCallOf(node, DEFINE_SLOTS)) { + return false; + } + if (ctx.hasDefineSlotsCall) { + ctx.error(`duplicate ${DEFINE_SLOTS}() call`, node); + } + ctx.hasDefineSlotsCall = true; + if (node.arguments.length > 0) { + ctx.error(`${DEFINE_SLOTS}() cannot accept arguments`, node); + } + if (declId) { + ctx.s.overwrite( + ctx.startOffset + node.start, + ctx.startOffset + node.end, + `${ctx.helper("useSlots")}()` + ); + } + return true; +} + +const DEFINE_OPTIONS = "defineOptions"; +function processDefineOptions(ctx, node) { + if (!isCallOf(node, DEFINE_OPTIONS)) { + return false; + } + if (ctx.hasDefineOptionsCall) { + ctx.error(`duplicate ${DEFINE_OPTIONS}() call`, node); + } + if (node.typeParameters) { + ctx.error(`${DEFINE_OPTIONS}() cannot accept type arguments`, node); + } + if (!node.arguments[0]) return true; + ctx.hasDefineOptionsCall = true; + ctx.optionsRuntimeDecl = unwrapTSNode(node.arguments[0]); + let propsOption = void 0; + let emitsOption = void 0; + let exposeOption = void 0; + let slotsOption = void 0; + if (ctx.optionsRuntimeDecl.type === "ObjectExpression") { + for (const prop of ctx.optionsRuntimeDecl.properties) { + if ((prop.type === "ObjectProperty" || prop.type === "ObjectMethod") && prop.key.type === "Identifier") { + switch (prop.key.name) { + case "props": + propsOption = prop; + break; + case "emits": + emitsOption = prop; + break; + case "expose": + exposeOption = prop; + break; + case "slots": + slotsOption = prop; + break; + } + } + } + } + if (propsOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare props. Use ${DEFINE_PROPS}() instead.`, + propsOption + ); + } + if (emitsOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare emits. Use ${DEFINE_EMITS}() instead.`, + emitsOption + ); + } + if (exposeOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare expose. Use ${DEFINE_EXPOSE}() instead.`, + exposeOption + ); + } + if (slotsOption) { + ctx.error( + `${DEFINE_OPTIONS}() cannot be used to declare slots. Use ${DEFINE_SLOTS}() instead.`, + slotsOption + ); + } + return true; +} + +function processAwait(ctx, node, needSemi, isStatement) { + const argumentStart = node.argument.extra && node.argument.extra.parenthesized ? node.argument.extra.parenStart : node.argument.start; + const startOffset = ctx.startOffset; + const argumentStr = ctx.descriptor.source.slice( + argumentStart + startOffset, + node.argument.end + startOffset + ); + const containsNestedAwait = /\bawait\b/.test(argumentStr); + ctx.s.overwrite( + node.start + startOffset, + argumentStart + startOffset, + `${needSemi ? `;` : ``}( + ([__temp,__restore] = ${ctx.helper( + `withAsyncContext` + )}(${containsNestedAwait ? `async ` : ``}() => ` + ); + ctx.s.appendLeft( + node.end + startOffset, + `)), + ${isStatement ? `` : `__temp = `}await __temp, + __restore()${isStatement ? `` : `, + __temp`} +)` + ); +} + +var __defProp$1 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols; +var __hasOwnProp$1 = Object.prototype.hasOwnProperty; +var __propIsEnum$1 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues$1 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp$1.call(b, prop)) + __defNormalProp$1(a, prop, b[prop]); + if (__getOwnPropSymbols$1) + for (var prop of __getOwnPropSymbols$1(b)) { + if (__propIsEnum$1.call(b, prop)) + __defNormalProp$1(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +const MACROS = [ + DEFINE_PROPS, + DEFINE_EMITS, + DEFINE_EXPOSE, + DEFINE_OPTIONS, + DEFINE_SLOTS, + DEFINE_MODEL, + WITH_DEFAULTS +]; +function compileScript(sfc, options) { + var _a, _b, _c; + if (!options.id) { + warnOnce$1( + `compileScript now requires passing the \`id\` option. +Upgrade your vite or vue-loader version for compatibility with the latest experimental proposals.` + ); + } + const { script, scriptSetup, source, filename } = sfc; + const hoistStatic = options.hoistStatic !== false && !script; + const scopeId = options.id ? options.id.replace(/^data-v-/, "") : ""; + const scriptLang = script && script.lang; + const scriptSetupLang = scriptSetup && scriptSetup.lang; + const isJSOrTS = isJS(scriptLang, scriptSetupLang) || isTS(scriptLang, scriptSetupLang); + if (script && scriptSetup && scriptLang !== scriptSetupLang) { + throw new Error( + `[@vue/compiler-sfc] <script> and <script setup> must have the same language type.` + ); + } + if (!scriptSetup) { + if (!script) { + throw new Error(`[@vue/compiler-sfc] SFC contains no <script> tags.`); + } + if (script.lang && !isJSOrTS) { + return script; + } + const ctx2 = new ScriptCompileContext(sfc, options); + return processNormalScript(ctx2, scopeId); + } + if (scriptSetupLang && !isJSOrTS) { + return scriptSetup; + } + const ctx = new ScriptCompileContext(sfc, options); + const scriptBindings = /* @__PURE__ */ Object.create(null); + const setupBindings = /* @__PURE__ */ Object.create(null); + let defaultExport; + let hasAwait = false; + let hasInlinedSsrRenderFn = false; + const startOffset = ctx.startOffset; + const endOffset = ctx.endOffset; + const scriptStartOffset = script && script.loc.start.offset; + const scriptEndOffset = script && script.loc.end.offset; + function hoistNode(node) { + const start = node.start + startOffset; + let end = node.end + startOffset; + if (node.trailingComments && node.trailingComments.length > 0) { + const lastCommentNode = node.trailingComments[node.trailingComments.length - 1]; + end = lastCommentNode.end + startOffset; + } + while (end <= source.length) { + if (!/\s/.test(source.charAt(end))) { + break; + } + end++; + } + ctx.s.move(start, end, 0); + } + function registerUserImport(source2, local, imported, isType, isFromSetup, needTemplateUsageCheck) { + let isUsedInTemplate = needTemplateUsageCheck; + if (needTemplateUsageCheck && ctx.isTS && sfc.template && !sfc.template.src && !sfc.template.lang) { + isUsedInTemplate = isImportUsed(local, sfc); + } + ctx.userImports[local] = { + isType, + imported, + local, + source: source2, + isFromSetup, + isUsedInTemplate + }; + } + function checkInvalidScopeReference(node, method) { + if (!node) return; + walkIdentifiers(node, (id) => { + const binding = setupBindings[id.name]; + if (binding && binding !== "literal-const") { + ctx.error( + `\`${method}()\` in <script setup> cannot reference locally declared variables because it will be hoisted outside of the setup() function. If your component options require initialization in the module scope, use a separate normal <script> to export the options instead.`, + id + ); + } + }); + } + const scriptAst = ctx.scriptAst; + const scriptSetupAst = ctx.scriptSetupAst; + if (scriptAst) { + for (const node of scriptAst.body) { + if (node.type === "ImportDeclaration") { + for (const specifier of node.specifiers) { + const imported = getImportedName(specifier); + registerUserImport( + node.source.value, + specifier.local.name, + imported, + node.importKind === "type" || specifier.type === "ImportSpecifier" && specifier.importKind === "type", + false, + !options.inlineTemplate + ); + } + } + } + } + for (const node of scriptSetupAst.body) { + if (node.type === "ImportDeclaration") { + hoistNode(node); + let removed = 0; + const removeSpecifier = (i) => { + const removeLeft = i > removed; + removed++; + const current = node.specifiers[i]; + const next = node.specifiers[i + 1]; + ctx.s.remove( + removeLeft ? node.specifiers[i - 1].end + startOffset : current.start + startOffset, + next && !removeLeft ? next.start + startOffset : current.end + startOffset + ); + }; + for (let i = 0; i < node.specifiers.length; i++) { + const specifier = node.specifiers[i]; + const local = specifier.local.name; + const imported = getImportedName(specifier); + const source2 = node.source.value; + const existing = ctx.userImports[local]; + if (source2 === "vue" && MACROS.includes(imported)) { + if (local === imported) { + warnOnce$1( + `\`${imported}\` is a compiler macro and no longer needs to be imported.` + ); + } else { + ctx.error( + `\`${imported}\` is a compiler macro and cannot be aliased to a different name.`, + specifier + ); + } + removeSpecifier(i); + } else if (existing) { + if (existing.source === source2 && existing.imported === imported) { + removeSpecifier(i); + } else { + ctx.error( + `different imports aliased to same local name.`, + specifier + ); + } + } else { + registerUserImport( + source2, + local, + imported, + node.importKind === "type" || specifier.type === "ImportSpecifier" && specifier.importKind === "type", + true, + !options.inlineTemplate + ); + } + } + if (node.specifiers.length && removed === node.specifiers.length) { + ctx.s.remove(node.start + startOffset, node.end + startOffset); + } + } + } + const vueImportAliases = {}; + for (const key in ctx.userImports) { + const { source: source2, imported, local } = ctx.userImports[key]; + if (source2 === "vue") vueImportAliases[imported] = local; + } + if (script && scriptAst) { + for (const node of scriptAst.body) { + if (node.type === "ExportDefaultDeclaration") { + defaultExport = node; + let optionProperties; + if (defaultExport.declaration.type === "ObjectExpression") { + optionProperties = defaultExport.declaration.properties; + } else if (defaultExport.declaration.type === "CallExpression" && defaultExport.declaration.arguments[0] && defaultExport.declaration.arguments[0].type === "ObjectExpression") { + optionProperties = defaultExport.declaration.arguments[0].properties; + } + if (optionProperties) { + for (const p of optionProperties) { + if (p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "name") { + ctx.hasDefaultExportName = true; + } + if ((p.type === "ObjectMethod" || p.type === "ObjectProperty") && p.key.type === "Identifier" && p.key.name === "render") { + ctx.hasDefaultExportRender = true; + } + } + } + const start = node.start + scriptStartOffset; + const end = node.declaration.start + scriptStartOffset; + ctx.s.overwrite(start, end, `const ${normalScriptDefaultVar} = `); + } else if (node.type === "ExportNamedDeclaration") { + const defaultSpecifier = node.specifiers.find( + (s) => s.exported.type === "Identifier" && s.exported.name === "default" + ); + if (defaultSpecifier) { + defaultExport = node; + if (node.specifiers.length > 1) { + ctx.s.remove( + defaultSpecifier.start + scriptStartOffset, + defaultSpecifier.end + scriptStartOffset + ); + } else { + ctx.s.remove( + node.start + scriptStartOffset, + node.end + scriptStartOffset + ); + } + if (node.source) { + ctx.s.prepend( + `import { ${defaultSpecifier.local.name} as ${normalScriptDefaultVar} } from '${node.source.value}' +` + ); + } else { + ctx.s.appendLeft( + scriptEndOffset, + ` +const ${normalScriptDefaultVar} = ${defaultSpecifier.local.name} +` + ); + } + } + if (node.declaration) { + walkDeclaration( + "script", + node.declaration, + scriptBindings, + vueImportAliases, + hoistStatic + ); + } + } else if ((node.type === "VariableDeclaration" || node.type === "FunctionDeclaration" || node.type === "ClassDeclaration" || node.type === "TSEnumDeclaration") && !node.declare) { + walkDeclaration( + "script", + node, + scriptBindings, + vueImportAliases, + hoistStatic + ); + } + } + if (scriptStartOffset > startOffset) { + if (!/\n$/.test(script.content.trim())) { + ctx.s.appendLeft(scriptEndOffset, ` +`); + } + ctx.s.move(scriptStartOffset, scriptEndOffset, 0); + } + } + for (const node of scriptSetupAst.body) { + if (node.type === "ExpressionStatement") { + const expr = unwrapTSNode(node.expression); + if (processDefineProps(ctx, expr) || processDefineEmits(ctx, expr) || processDefineOptions(ctx, expr) || processDefineSlots(ctx, expr)) { + ctx.s.remove(node.start + startOffset, node.end + startOffset); + } else if (processDefineExpose(ctx, expr)) { + const callee = expr.callee; + ctx.s.overwrite( + callee.start + startOffset, + callee.end + startOffset, + "__expose" + ); + } else { + processDefineModel(ctx, expr); + } + } + if (node.type === "VariableDeclaration" && !node.declare) { + const total = node.declarations.length; + let left = total; + let lastNonRemoved; + for (let i = 0; i < total; i++) { + const decl = node.declarations[i]; + const init = decl.init && unwrapTSNode(decl.init); + if (init) { + if (processDefineOptions(ctx, init)) { + ctx.error( + `${DEFINE_OPTIONS}() has no returning value, it cannot be assigned.`, + node + ); + } + const isDefineProps = processDefineProps(ctx, init, decl.id); + if (ctx.propsDestructureRestId) { + setupBindings[ctx.propsDestructureRestId] = "setup-reactive-const"; + } + const isDefineEmits = !isDefineProps && processDefineEmits(ctx, init, decl.id); + !isDefineEmits && (processDefineSlots(ctx, init, decl.id) || processDefineModel(ctx, init, decl.id)); + if (isDefineProps && !ctx.propsDestructureRestId && ctx.propsDestructureDecl) { + if (left === 1) { + ctx.s.remove(node.start + startOffset, node.end + startOffset); + } else { + let start = decl.start + startOffset; + let end = decl.end + startOffset; + if (i === total - 1) { + start = node.declarations[lastNonRemoved].end + startOffset; + } else { + end = node.declarations[i + 1].start + startOffset; + } + ctx.s.remove(start, end); + left--; + } + } else if (isDefineEmits) { + ctx.s.overwrite( + startOffset + init.start, + startOffset + init.end, + "__emit" + ); + } else { + lastNonRemoved = i; + } + } + } + } + let isAllLiteral = false; + if ((node.type === "VariableDeclaration" || node.type === "FunctionDeclaration" || node.type === "ClassDeclaration" || node.type === "TSEnumDeclaration") && !node.declare) { + isAllLiteral = walkDeclaration( + "scriptSetup", + node, + setupBindings, + vueImportAliases, + hoistStatic, + !!ctx.propsDestructureDecl + ); + } + if (hoistStatic && isAllLiteral) { + hoistNode(node); + } + if (node.type === "VariableDeclaration" && !node.declare || node.type.endsWith("Statement")) { + const scope = [scriptSetupAst.body]; + walk$2(node, { + enter(child, parent) { + if (isFunctionType(child)) { + this.skip(); + } + if (child.type === "BlockStatement") { + scope.push(child.body); + } + if (child.type === "AwaitExpression") { + hasAwait = true; + const currentScope = scope[scope.length - 1]; + const needsSemi = currentScope.some((n, i) => { + return (scope.length === 1 || i > 0) && n.type === "ExpressionStatement" && n.start === child.start; + }); + processAwait( + ctx, + child, + needsSemi, + parent.type === "ExpressionStatement" + ); + } + }, + exit(node2) { + if (node2.type === "BlockStatement") scope.pop(); + } + }); + } + if (node.type === "ExportNamedDeclaration" && node.exportKind !== "type" || node.type === "ExportAllDeclaration" || node.type === "ExportDefaultDeclaration") { + ctx.error( + `<script setup> cannot contain ES module exports. If you are using a previous version of <script setup>, please consult the updated RFC at https://github.com/vuejs/rfcs/pull/227.`, + node + ); + } + if (ctx.isTS) { + if (node.type.startsWith("TS") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "VariableDeclaration" && node.declare) { + if (node.type !== "TSEnumDeclaration") { + hoistNode(node); + } + } + } + } + if (ctx.propsDestructureDecl) { + transformDestructuredProps(ctx, vueImportAliases); + } + checkInvalidScopeReference(ctx.propsRuntimeDecl, DEFINE_PROPS); + checkInvalidScopeReference(ctx.propsRuntimeDefaults, DEFINE_PROPS); + checkInvalidScopeReference(ctx.propsDestructureDecl, DEFINE_PROPS); + checkInvalidScopeReference(ctx.emitsRuntimeDecl, DEFINE_EMITS); + checkInvalidScopeReference(ctx.optionsRuntimeDecl, DEFINE_OPTIONS); + for (const { runtimeOptionNodes } of Object.values(ctx.modelDecls)) { + for (const node of runtimeOptionNodes) { + checkInvalidScopeReference(node, DEFINE_MODEL); + } + } + if (script) { + if (startOffset < scriptStartOffset) { + ctx.s.remove(0, startOffset); + ctx.s.remove(endOffset, scriptStartOffset); + ctx.s.remove(scriptEndOffset, source.length); + } else { + ctx.s.remove(0, scriptStartOffset); + ctx.s.remove(scriptEndOffset, startOffset); + ctx.s.remove(endOffset, source.length); + } + } else { + ctx.s.remove(0, startOffset); + ctx.s.remove(endOffset, source.length); + } + if (scriptAst) { + Object.assign(ctx.bindingMetadata, analyzeScriptBindings(scriptAst.body)); + } + for (const [key, { isType, imported, source: source2 }] of Object.entries( + ctx.userImports + )) { + if (isType) continue; + ctx.bindingMetadata[key] = imported === "*" || imported === "default" && source2.endsWith(".vue") || source2 === "vue" ? "setup-const" : "setup-maybe-ref"; + } + for (const key in scriptBindings) { + ctx.bindingMetadata[key] = scriptBindings[key]; + } + for (const key in setupBindings) { + ctx.bindingMetadata[key] = setupBindings[key]; + } + if (sfc.template && !sfc.template.src && sfc.template.ast) { + const vModelIds = resolveTemplateVModelIdentifiers(sfc); + if (vModelIds.size) { + const toDemote = /* @__PURE__ */ new Set(); + for (const id of vModelIds) { + if (setupBindings[id] === "setup-reactive-const") { + toDemote.add(id); + } + } + if (toDemote.size) { + for (const node of scriptSetupAst.body) { + if (node.type === "VariableDeclaration" && node.kind === "const" && !node.declare) { + const demotedInDecl = []; + for (const decl of node.declarations) { + if (decl.id.type === "Identifier" && toDemote.has(decl.id.name)) { + demotedInDecl.push(decl.id.name); + } + } + if (demotedInDecl.length) { + ctx.s.overwrite( + node.start + startOffset, + node.start + startOffset + "const".length, + "let" + ); + for (const id of demotedInDecl) { + setupBindings[id] = "setup-let"; + ctx.bindingMetadata[id] = "setup-let"; + warnOnce$1( + `\`v-model\` cannot update a \`const\` reactive binding \`${id}\`. The compiler has transformed it to \`let\` to make the update work.` + ); + } + } + } + } + } + } + } + if (sfc.cssVars.length && // no need to do this when targeting SSR + !((_a = options.templateOptions) == null ? void 0 : _a.ssr)) { + ctx.helperImports.add(CSS_VARS_HELPER); + ctx.helperImports.add("unref"); + ctx.s.prependLeft( + startOffset, + ` +${genCssVarsCode( + sfc.cssVars, + ctx.bindingMetadata, + scopeId, + !!options.isProd + )} +` + ); + } + let args = `__props`; + if (ctx.propsTypeDecl) { + args += `: any`; + } + if (ctx.propsDecl) { + if (ctx.propsDestructureRestId) { + ctx.s.overwrite( + startOffset + ctx.propsCall.start, + startOffset + ctx.propsCall.end, + `${ctx.helper(`createPropsRestProxy`)}(__props, ${JSON.stringify( + Object.keys(ctx.propsDestructuredBindings) + )})` + ); + ctx.s.overwrite( + startOffset + ctx.propsDestructureDecl.start, + startOffset + ctx.propsDestructureDecl.end, + ctx.propsDestructureRestId + ); + } else if (!ctx.propsDestructureDecl) { + ctx.s.overwrite( + startOffset + ctx.propsCall.start, + startOffset + ctx.propsCall.end, + "__props" + ); + } + } + if (hasAwait) { + const any = ctx.isTS ? `: any` : ``; + ctx.s.prependLeft(startOffset, ` +let __temp${any}, __restore${any} +`); + } + const destructureElements = ctx.hasDefineExposeCall || !options.inlineTemplate ? [`expose: __expose`] : []; + if (ctx.emitDecl) { + destructureElements.push(`emit: __emit`); + } + if (destructureElements.length) { + args += `, { ${destructureElements.join(", ")} }`; + } + let templateMap; + let returned; + const propsDecl = genRuntimeProps(ctx); + if (!options.inlineTemplate || !sfc.template && ctx.hasDefaultExportRender) { + const allBindings = __spreadValues$1(__spreadValues$1({}, scriptBindings), setupBindings); + for (const key in ctx.userImports) { + if (!ctx.userImports[key].isType && ctx.userImports[key].isUsedInTemplate) { + allBindings[key] = true; + } + } + returned = `{ `; + for (const key in allBindings) { + if (allBindings[key] === true && ctx.userImports[key].source !== "vue" && !ctx.userImports[key].source.endsWith(".vue")) { + returned += `get ${key}() { return ${key} }, `; + } else if (ctx.bindingMetadata[key] === "setup-let") { + const setArg = key === "v" ? `_v` : `v`; + returned += `get ${key}() { return ${key} }, set ${key}(${setArg}) { ${key} = ${setArg} }, `; + } else { + returned += `${key}, `; + } + } + returned = returned.replace(/, $/, "") + ` }`; + } else { + if (sfc.template && !sfc.template.src) { + if (options.templateOptions && options.templateOptions.ssr) { + hasInlinedSsrRenderFn = true; + } + const { code, ast, preamble, tips, errors, map: map2 } = compileTemplate(__spreadProps(__spreadValues$1({ + filename, + ast: sfc.template.ast, + source: sfc.template.content, + inMap: sfc.template.map + }, options.templateOptions), { + id: scopeId, + scoped: sfc.styles.some((s) => s.scoped), + isProd: options.isProd, + ssrCssVars: sfc.cssVars, + compilerOptions: __spreadProps(__spreadValues$1({}, options.templateOptions && options.templateOptions.compilerOptions), { + inline: true, + isTS: ctx.isTS, + bindingMetadata: ctx.bindingMetadata + }) + })); + templateMap = map2; + if (tips.length) { + tips.forEach(warnOnce$1); + } + const err = errors[0]; + if (typeof err === "string") { + throw new Error(err); + } else if (err) { + if (err.loc) { + err.message += ` + +` + sfc.filename + "\n" + generateCodeFrame( + source, + err.loc.start.offset, + err.loc.end.offset + ) + ` +`; + } + throw err; + } + if (preamble) { + ctx.s.prepend(preamble); + } + if (ast && ast.helpers.has(UNREF)) { + ctx.helperImports.delete("unref"); + } + returned = code; + } else { + returned = `() => {}`; + } + } + if (!options.inlineTemplate && true) { + ctx.s.appendRight( + endOffset, + ` +const __returned__ = ${returned} +Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true }) +return __returned__ +} + +` + ); + } else { + ctx.s.appendRight(endOffset, ` +return ${returned} +} + +`); + } + const genDefaultAs = options.genDefaultAs ? `const ${options.genDefaultAs} =` : `export default`; + let runtimeOptions = ``; + if (!ctx.hasDefaultExportName && filename && filename !== DEFAULT_FILENAME) { + const match = filename.match(/([^/\\]+)\.\w+$/); + if (match) { + runtimeOptions += ` + __name: '${match[1]}',`; + } + } + if (hasInlinedSsrRenderFn) { + runtimeOptions += ` + __ssrInlineRender: true,`; + } + if (propsDecl) runtimeOptions += ` + props: ${propsDecl},`; + const emitsDecl = genRuntimeEmits(ctx); + if (emitsDecl) runtimeOptions += ` + emits: ${emitsDecl},`; + let definedOptions = ""; + if (ctx.optionsRuntimeDecl) { + definedOptions = scriptSetup.content.slice(ctx.optionsRuntimeDecl.start, ctx.optionsRuntimeDecl.end).trim(); + } + const exposeCall = ctx.hasDefineExposeCall || options.inlineTemplate ? `` : ` __expose(); +`; + if (ctx.isTS) { + const def = (defaultExport ? ` + ...${normalScriptDefaultVar},` : ``) + (definedOptions ? ` + ...${definedOptions},` : ""); + ctx.s.prependLeft( + startOffset, + ` +${genDefaultAs} /*@__PURE__*/${ctx.helper( + `defineComponent` + )}({${def}${runtimeOptions} + ${hasAwait ? `async ` : ``}setup(${args}) { +${exposeCall}` + ); + ctx.s.appendRight(endOffset, `})`); + } else { + if (defaultExport || definedOptions) { + ctx.s.prependLeft( + startOffset, + ` +${genDefaultAs} /*@__PURE__*/Object.assign(${defaultExport ? `${normalScriptDefaultVar}, ` : ""}${definedOptions ? `${definedOptions}, ` : ""}{${runtimeOptions} + ${hasAwait ? `async ` : ``}setup(${args}) { +${exposeCall}` + ); + ctx.s.appendRight(endOffset, `})`); + } else { + ctx.s.prependLeft( + startOffset, + ` +${genDefaultAs} {${runtimeOptions} + ${hasAwait ? `async ` : ``}setup(${args}) { +${exposeCall}` + ); + ctx.s.appendRight(endOffset, `}`); + } + } + if (ctx.helperImports.size > 0) { + const runtimeModuleName = (_c = (_b = options.templateOptions) == null ? void 0 : _b.compilerOptions) == null ? void 0 : _c.runtimeModuleName; + const importSrc = runtimeModuleName ? JSON.stringify(runtimeModuleName) : `'vue'`; + ctx.s.prepend( + `import { ${[...ctx.helperImports].map((h) => `${h} as _${h}`).join(", ")} } from ${importSrc} +` + ); + } + const content = ctx.s.toString(); + let map = options.sourceMap !== false ? ctx.s.generateMap({ + source: filename, + hires: true, + includeContent: true + }) : void 0; + if (templateMap && map) { + const offset = content.indexOf(returned); + const templateLineOffset = content.slice(0, offset).split(/\r?\n/).length - 1; + map = mergeSourceMaps(map, templateMap, templateLineOffset); + } + return __spreadProps(__spreadValues$1({}, scriptSetup), { + bindings: ctx.bindingMetadata, + imports: ctx.userImports, + content, + map, + scriptAst: scriptAst == null ? void 0 : scriptAst.body, + scriptSetupAst: scriptSetupAst == null ? void 0 : scriptSetupAst.body, + deps: ctx.deps ? [...ctx.deps] : void 0 + }); +} +function registerBinding(bindings, node, type) { + bindings[node.name] = type; +} +function walkDeclaration(from, node, bindings, userImportAliases, hoistStatic, isPropsDestructureEnabled = false) { + let isAllLiteral = false; + if (node.type === "VariableDeclaration") { + const isConst = node.kind === "const"; + isAllLiteral = isConst && node.declarations.every( + (decl) => decl.id.type === "Identifier" && isStaticNode(decl.init) + ); + for (const { id, init: _init } of node.declarations) { + const init = _init && unwrapTSNode(_init); + const isConstMacroCall = isConst && isCallOf( + init, + (c) => c === DEFINE_PROPS || c === DEFINE_EMITS || c === WITH_DEFAULTS || c === DEFINE_SLOTS + ); + if (id.type === "Identifier") { + let bindingType; + const userReactiveBinding = userImportAliases["reactive"]; + if ((hoistStatic || from === "script") && (isAllLiteral || isConst && isStaticNode(init))) { + bindingType = "literal-const"; + } else if (isCallOf(init, userReactiveBinding)) { + bindingType = isConst ? "setup-reactive-const" : "setup-let"; + } else if ( + // if a declaration is a const literal, we can mark it so that + // the generated render fn code doesn't need to unref() it + isConstMacroCall || isConst && canNeverBeRef(init, userReactiveBinding) + ) { + bindingType = isCallOf(init, DEFINE_PROPS) ? "setup-reactive-const" : "setup-const"; + } else if (isConst) { + if (isCallOf( + init, + (m) => m === userImportAliases["ref"] || m === userImportAliases["computed"] || m === userImportAliases["shallowRef"] || m === userImportAliases["customRef"] || m === userImportAliases["toRef"] || m === userImportAliases["useTemplateRef"] || m === DEFINE_MODEL + )) { + bindingType = "setup-ref"; + } else { + bindingType = "setup-maybe-ref"; + } + } else { + bindingType = "setup-let"; + } + registerBinding(bindings, id, bindingType); + } else { + if (isCallOf(init, DEFINE_PROPS) && isPropsDestructureEnabled) { + continue; + } + if (id.type === "ObjectPattern") { + walkObjectPattern(id, bindings, isConst, isConstMacroCall); + } else if (id.type === "ArrayPattern") { + walkArrayPattern(id, bindings, isConst, isConstMacroCall); + } + } + } + } else if (node.type === "TSEnumDeclaration") { + isAllLiteral = node.members.every( + (member) => !member.initializer || isStaticNode(member.initializer) + ); + bindings[node.id.name] = isAllLiteral ? "literal-const" : "setup-const"; + } else if (node.type === "FunctionDeclaration" || node.type === "ClassDeclaration") { + bindings[node.id.name] = "setup-const"; + } + return isAllLiteral; +} +function walkObjectPattern(node, bindings, isConst, isDefineCall = false) { + for (const p of node.properties) { + if (p.type === "ObjectProperty") { + if (p.key.type === "Identifier" && p.key === p.value) { + const type = isDefineCall ? "setup-const" : isConst ? "setup-maybe-ref" : "setup-let"; + registerBinding(bindings, p.key, type); + } else { + walkPattern(p.value, bindings, isConst, isDefineCall); + } + } else { + const type = isConst ? "setup-const" : "setup-let"; + registerBinding(bindings, p.argument, type); + } + } +} +function walkArrayPattern(node, bindings, isConst, isDefineCall = false) { + for (const e of node.elements) { + e && walkPattern(e, bindings, isConst, isDefineCall); + } +} +function walkPattern(node, bindings, isConst, isDefineCall = false) { + if (node.type === "Identifier") { + const type = isDefineCall ? "setup-const" : isConst ? "setup-maybe-ref" : "setup-let"; + registerBinding(bindings, node, type); + } else if (node.type === "RestElement") { + const type = isConst ? "setup-const" : "setup-let"; + registerBinding(bindings, node.argument, type); + } else if (node.type === "ObjectPattern") { + walkObjectPattern(node, bindings, isConst); + } else if (node.type === "ArrayPattern") { + walkArrayPattern(node, bindings, isConst); + } else if (node.type === "AssignmentPattern") { + if (node.left.type === "Identifier") { + const type = isDefineCall ? "setup-const" : isConst ? "setup-maybe-ref" : "setup-let"; + registerBinding(bindings, node.left, type); + } else { + walkPattern(node.left, bindings, isConst); + } + } +} +function canNeverBeRef(node, userReactiveImport) { + if (isCallOf(node, userReactiveImport)) { + return true; + } + switch (node.type) { + case "UnaryExpression": + case "BinaryExpression": + case "ArrayExpression": + case "ObjectExpression": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "UpdateExpression": + case "ClassExpression": + case "TaggedTemplateExpression": + return true; + case "SequenceExpression": + return canNeverBeRef( + node.expressions[node.expressions.length - 1], + userReactiveImport + ); + default: + if (isLiteralNode(node)) { + return true; + } + return false; + } +} +function isStaticNode(node) { + node = unwrapTSNode(node); + switch (node.type) { + case "UnaryExpression": + return isStaticNode(node.argument); + case "LogicalExpression": + // 1 > 2 + case "BinaryExpression": + return isStaticNode(node.left) && isStaticNode(node.right); + case "ConditionalExpression": { + return isStaticNode(node.test) && isStaticNode(node.consequent) && isStaticNode(node.alternate); + } + case "SequenceExpression": + // (1, 2) + case "TemplateLiteral": + return node.expressions.every((expr) => isStaticNode(expr)); + case "ParenthesizedExpression": + return isStaticNode(node.expression); + case "StringLiteral": + case "NumericLiteral": + case "BooleanLiteral": + case "NullLiteral": + case "BigIntLiteral": + return true; + } + return false; +} +function mergeSourceMaps(scriptMap, templateMap, templateLineOffset) { + const generator = new sourceMapExports.SourceMapGenerator(); + const addMapping = (map, lineOffset = 0) => { + const consumer = new sourceMapExports.SourceMapConsumer(map); + consumer.sources.forEach((sourceFile) => { + generator._sources.add(sourceFile); + const sourceContent = consumer.sourceContentFor(sourceFile); + if (sourceContent != null) { + generator.setSourceContent(sourceFile, sourceContent); + } + }); + consumer.eachMapping((m) => { + if (m.originalLine == null) return; + generator.addMapping({ + generated: { + line: m.generatedLine + lineOffset, + column: m.generatedColumn + }, + original: { + line: m.originalLine, + column: m.originalColumn + }, + source: m.source, + name: m.name + }); + }); + }; + addMapping(scriptMap); + addMapping(templateMap, templateLineOffset); + generator._sourceRoot = scriptMap.sourceRoot; + generator._file = scriptMap.file; + return generator.toJSON(); +} + +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const version = "3.5.28"; +const parseCache = parseCache$1; +const errorMessages = __spreadValues(__spreadValues({}, errorMessages$1), DOMErrorMessages); +const walk = walk$2; +const shouldTransformRef = () => false; + +var parse$4 = libExports.parse; +export { MagicString, parse$4 as babelParse, compileScript, compileStyle, compileStyleAsync, compileTemplate, errorMessages, extractIdentifiers$1 as extractIdentifiers, extractRuntimeEmits, extractRuntimeProps, generateCodeFrame, inferRuntimeType, invalidateTypeCache, isInDestructureAssignment, isStaticProperty, parse$2 as parse, parseCache, registerTS, resolveTypeElements, rewriteDefault, rewriteDefaultAST, shouldTransformRef, version, walk, walkIdentifiers }; diff --git a/node_modules/@vue/compiler-sfc/package.json b/node_modules/@vue/compiler-sfc/package.json new file mode 100644 index 0000000..07147c8 --- /dev/null +++ b/node_modules/@vue/compiler-sfc/package.json @@ -0,0 +1,67 @@ +{ + "name": "@vue/compiler-sfc", + "version": "3.5.28", + "description": "@vue/compiler-sfc", + "main": "dist/compiler-sfc.cjs.js", + "module": "dist/compiler-sfc.esm-browser.js", + "types": "dist/compiler-sfc.d.ts", + "files": [ + "dist" + ], + "exports": { + ".": { + "types": "./dist/compiler-sfc.d.ts", + "node": "./dist/compiler-sfc.cjs.js", + "module": "./dist/compiler-sfc.esm-browser.js", + "import": "./dist/compiler-sfc.esm-browser.js", + "require": "./dist/compiler-sfc.cjs.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueCompilerSFC", + "formats": [ + "cjs", + "esm-browser" + ], + "prod": false, + "enableNonBrowserBranches": true + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-sfc" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", + "dependencies": { + "@babel/parser": "^7.29.0", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1", + "@vue/compiler-core": "3.5.28", + "@vue/compiler-dom": "3.5.28", + "@vue/compiler-ssr": "3.5.28", + "@vue/shared": "3.5.28" + }, + "devDependencies": { + "@babel/types": "^7.29.0", + "@vue/consolidate": "^1.0.0", + "hash-sum": "^2.0.0", + "lru-cache": "10.1.0", + "merge-source-map": "^1.1.0", + "minimatch": "~10.1.2", + "postcss-modules": "^6.0.1", + "postcss-selector-parser": "^7.1.1", + "pug": "^3.0.3", + "sass": "^1.97.3" + } +} \ No newline at end of file diff --git a/node_modules/@vue/compiler-ssr/LICENSE b/node_modules/@vue/compiler-ssr/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/compiler-ssr/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/compiler-ssr/README.md b/node_modules/@vue/compiler-ssr/README.md new file mode 100644 index 0000000..9337906 --- /dev/null +++ b/node_modules/@vue/compiler-ssr/README.md @@ -0,0 +1 @@ +# @vue/compiler-ssr diff --git a/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js b/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js new file mode 100644 index 0000000..2b68e97 --- /dev/null +++ b/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js @@ -0,0 +1,1413 @@ +/** +* @vue/compiler-ssr v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var shared = require('@vue/shared'); + +const SSR_INTERPOLATE = /* @__PURE__ */ Symbol(`ssrInterpolate`); +const SSR_RENDER_VNODE = /* @__PURE__ */ Symbol(`ssrRenderVNode`); +const SSR_RENDER_COMPONENT = /* @__PURE__ */ Symbol(`ssrRenderComponent`); +const SSR_RENDER_SLOT = /* @__PURE__ */ Symbol(`ssrRenderSlot`); +const SSR_RENDER_SLOT_INNER = /* @__PURE__ */ Symbol(`ssrRenderSlotInner`); +const SSR_RENDER_CLASS = /* @__PURE__ */ Symbol(`ssrRenderClass`); +const SSR_RENDER_STYLE = /* @__PURE__ */ Symbol(`ssrRenderStyle`); +const SSR_RENDER_ATTRS = /* @__PURE__ */ Symbol(`ssrRenderAttrs`); +const SSR_RENDER_ATTR = /* @__PURE__ */ Symbol(`ssrRenderAttr`); +const SSR_RENDER_DYNAMIC_ATTR = /* @__PURE__ */ Symbol(`ssrRenderDynamicAttr`); +const SSR_RENDER_LIST = /* @__PURE__ */ Symbol(`ssrRenderList`); +const SSR_INCLUDE_BOOLEAN_ATTR = /* @__PURE__ */ Symbol( + `ssrIncludeBooleanAttr` +); +const SSR_LOOSE_EQUAL = /* @__PURE__ */ Symbol(`ssrLooseEqual`); +const SSR_LOOSE_CONTAIN = /* @__PURE__ */ Symbol(`ssrLooseContain`); +const SSR_RENDER_DYNAMIC_MODEL = /* @__PURE__ */ Symbol( + `ssrRenderDynamicModel` +); +const SSR_GET_DYNAMIC_MODEL_PROPS = /* @__PURE__ */ Symbol( + `ssrGetDynamicModelProps` +); +const SSR_RENDER_TELEPORT = /* @__PURE__ */ Symbol(`ssrRenderTeleport`); +const SSR_RENDER_SUSPENSE = /* @__PURE__ */ Symbol(`ssrRenderSuspense`); +const SSR_GET_DIRECTIVE_PROPS = /* @__PURE__ */ Symbol(`ssrGetDirectiveProps`); +const ssrHelpers = { + [SSR_INTERPOLATE]: `ssrInterpolate`, + [SSR_RENDER_VNODE]: `ssrRenderVNode`, + [SSR_RENDER_COMPONENT]: `ssrRenderComponent`, + [SSR_RENDER_SLOT]: `ssrRenderSlot`, + [SSR_RENDER_SLOT_INNER]: `ssrRenderSlotInner`, + [SSR_RENDER_CLASS]: `ssrRenderClass`, + [SSR_RENDER_STYLE]: `ssrRenderStyle`, + [SSR_RENDER_ATTRS]: `ssrRenderAttrs`, + [SSR_RENDER_ATTR]: `ssrRenderAttr`, + [SSR_RENDER_DYNAMIC_ATTR]: `ssrRenderDynamicAttr`, + [SSR_RENDER_LIST]: `ssrRenderList`, + [SSR_INCLUDE_BOOLEAN_ATTR]: `ssrIncludeBooleanAttr`, + [SSR_LOOSE_EQUAL]: `ssrLooseEqual`, + [SSR_LOOSE_CONTAIN]: `ssrLooseContain`, + [SSR_RENDER_DYNAMIC_MODEL]: `ssrRenderDynamicModel`, + [SSR_GET_DYNAMIC_MODEL_PROPS]: `ssrGetDynamicModelProps`, + [SSR_RENDER_TELEPORT]: `ssrRenderTeleport`, + [SSR_RENDER_SUSPENSE]: `ssrRenderSuspense`, + [SSR_GET_DIRECTIVE_PROPS]: `ssrGetDirectiveProps` +}; +compilerDom.registerRuntimeHelpers(ssrHelpers); + +const ssrTransformIf = compilerDom.createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + compilerDom.processIf +); +function ssrProcessIf(node, context, disableNestedFragments = false, disableComment = false) { + const [rootBranch] = node.branches; + const ifStatement = compilerDom.createIfStatement( + rootBranch.condition, + processIfBranch(rootBranch, context, disableNestedFragments) + ); + context.pushStatement(ifStatement); + let currentIf = ifStatement; + for (let i = 1; i < node.branches.length; i++) { + const branch = node.branches[i]; + const branchBlockStatement = processIfBranch( + branch, + context, + disableNestedFragments + ); + if (branch.condition) { + currentIf = currentIf.alternate = compilerDom.createIfStatement( + branch.condition, + branchBlockStatement + ); + } else { + currentIf.alternate = branchBlockStatement; + } + } + if (!currentIf.alternate && !disableComment) { + currentIf.alternate = compilerDom.createBlockStatement([ + compilerDom.createCallExpression(`_push`, ["`<!---->`"]) + ]); + } +} +function processIfBranch(branch, context, disableNestedFragments = false) { + const { children } = branch; + const needFragmentWrapper = !disableNestedFragments && (children.length !== 1 || children[0].type !== 1) && // optimize away nested fragments when the only child is a ForNode + !(children.length === 1 && children[0].type === 11); + return processChildrenAsStatement(branch, context, needFragmentWrapper); +} + +const ssrTransformFor = compilerDom.createStructuralDirectiveTransform("for", compilerDom.processFor); +function ssrProcessFor(node, context, disableNestedFragments = false) { + const needFragmentWrapper = !disableNestedFragments && (node.children.length !== 1 || node.children[0].type !== 1); + const renderLoop = compilerDom.createFunctionExpression( + compilerDom.createForLoopParams(node.parseResult) + ); + renderLoop.body = processChildrenAsStatement( + node, + context, + needFragmentWrapper + ); + if (!disableNestedFragments) { + context.pushStringPart(`<!--[-->`); + } + context.pushStatement( + compilerDom.createCallExpression(context.helper(SSR_RENDER_LIST), [ + node.source, + renderLoop + ]) + ); + if (!disableNestedFragments) { + context.pushStringPart(`<!--]-->`); + } +} + +const ssrTransformSlotOutlet = (node, context) => { + if (compilerDom.isSlotOutlet(node)) { + const { slotName, slotProps } = compilerDom.processSlotOutlet(node, context); + const args = [ + `_ctx.$slots`, + slotName, + slotProps || `{}`, + // fallback content placeholder. will be replaced in the process phase + `null`, + `_push`, + `_parent` + ]; + if (context.scopeId && context.slotted !== false) { + args.push(`"${context.scopeId}-s"`); + } + let method = SSR_RENDER_SLOT; + let parent = context.parent; + if (parent) { + const children = parent.children; + if (parent.type === 10) { + parent = context.grandParent; + } + let componentType; + if (parent.type === 1 && parent.tagType === 1 && ((componentType = compilerDom.resolveComponentType(parent, context, true)) === compilerDom.TRANSITION || componentType === compilerDom.TRANSITION_GROUP) && children.filter((c) => c.type === 1).length === 1) { + method = SSR_RENDER_SLOT_INNER; + if (!(context.scopeId && context.slotted !== false)) { + args.push("null"); + } + args.push("true"); + } + } + node.ssrCodegenNode = compilerDom.createCallExpression(context.helper(method), args); + } +}; +function ssrProcessSlotOutlet(node, context) { + const renderCall = node.ssrCodegenNode; + if (node.children.length) { + const fallbackRenderFn = compilerDom.createFunctionExpression([]); + fallbackRenderFn.body = processChildrenAsStatement(node, context); + renderCall.arguments[3] = fallbackRenderFn; + } + if (context.withSlotScopeId) { + const slotScopeId = renderCall.arguments[6]; + renderCall.arguments[6] = slotScopeId ? `${slotScopeId} + _scopeId` : `_scopeId`; + } + context.pushStatement(node.ssrCodegenNode); +} + +function createSSRCompilerError(code, loc) { + return compilerDom.createCompilerError(code, loc, SSRErrorMessages); +} +const SSRErrorMessages = { + [65]: `Unsafe attribute name for SSR.`, + [66]: `Missing the 'to' prop on teleport element.`, + [67]: `Invalid AST node during SSR transform.` +}; + +function ssrProcessTeleport(node, context) { + const targetProp = compilerDom.findProp(node, "to"); + if (!targetProp) { + context.onError( + createSSRCompilerError(66, node.loc) + ); + return; + } + let target; + if (targetProp.type === 6) { + target = targetProp.value && compilerDom.createSimpleExpression(targetProp.value.content, true); + } else { + target = targetProp.exp; + } + if (!target) { + context.onError( + createSSRCompilerError( + 66, + targetProp.loc + ) + ); + return; + } + const disabledProp = compilerDom.findProp( + node, + "disabled", + false, + true + /* allow empty */ + ); + const disabled = disabledProp ? disabledProp.type === 6 ? `true` : disabledProp.exp || `false` : `false`; + const contentRenderFn = compilerDom.createFunctionExpression( + [`_push`], + void 0, + // Body is added later + true, + // newline + false, + // isSlot + node.loc + ); + contentRenderFn.body = processChildrenAsStatement(node, context); + context.pushStatement( + compilerDom.createCallExpression(context.helper(SSR_RENDER_TELEPORT), [ + `_push`, + contentRenderFn, + target, + disabled, + `_parent` + ]) + ); +} + +const wipMap$3 = /* @__PURE__ */ new WeakMap(); +function ssrTransformSuspense(node, context) { + return () => { + if (node.children.length) { + const wipEntry = { + slotsExp: null, + // to be immediately set + wipSlots: [] + }; + wipMap$3.set(node, wipEntry); + wipEntry.slotsExp = compilerDom.buildSlots( + node, + context, + (_props, _vForExp, children, loc) => { + const fn = compilerDom.createFunctionExpression( + [], + void 0, + // no return, assign body later + true, + // newline + false, + // suspense slots are not treated as normal slots + loc + ); + wipEntry.wipSlots.push({ + fn, + children + }); + return fn; + } + ).slots; + } + }; +} +function ssrProcessSuspense(node, context) { + const wipEntry = wipMap$3.get(node); + if (!wipEntry) { + return; + } + const { slotsExp, wipSlots } = wipEntry; + for (let i = 0; i < wipSlots.length; i++) { + const slot = wipSlots[i]; + slot.fn.body = processChildrenAsStatement(slot, context); + } + context.pushStatement( + compilerDom.createCallExpression(context.helper(SSR_RENDER_SUSPENSE), [ + `_push`, + slotsExp + ]) + ); +} + +const rawChildrenMap = /* @__PURE__ */ new WeakMap(); +const ssrTransformElement = (node, context) => { + if (node.type !== 1 || node.tagType !== 0) { + return; + } + return function ssrPostTransformElement() { + const openTag = [`<${node.tag}`]; + const needTagForRuntime = node.tag === "textarea" || node.tag.indexOf("-") > 0; + const hasDynamicVBind = compilerDom.hasDynamicKeyVBind(node); + const hasCustomDir = node.props.some( + (p) => p.type === 7 && !shared.isBuiltInDirective(p.name) + ); + const vShowPropIndex = node.props.findIndex( + (i) => i.type === 7 && i.name === "show" + ); + if (vShowPropIndex !== -1) { + const vShowProp = node.props[vShowPropIndex]; + node.props.splice(vShowPropIndex, 1); + node.props.push(vShowProp); + } + const needMergeProps = hasDynamicVBind || hasCustomDir; + if (needMergeProps) { + const { props, directives } = compilerDom.buildProps( + node, + context, + node.props, + false, + false, + true + ); + if (props || directives.length) { + const mergedProps = buildSSRProps(props, directives, context); + const propsExp = compilerDom.createCallExpression( + context.helper(SSR_RENDER_ATTRS), + [mergedProps] + ); + if (node.tag === "textarea") { + const existingText = node.children[0]; + if (!hasContentOverrideDirective(node) && (!existingText || existingText.type !== 5)) { + const tempId = `_temp${context.temps++}`; + propsExp.arguments = [ + compilerDom.createAssignmentExpression( + compilerDom.createSimpleExpression(tempId, false), + mergedProps + ) + ]; + rawChildrenMap.set( + node, + compilerDom.createCallExpression(context.helper(SSR_INTERPOLATE), [ + compilerDom.createConditionalExpression( + compilerDom.createSimpleExpression(`"value" in ${tempId}`, false), + compilerDom.createSimpleExpression(`${tempId}.value`, false), + compilerDom.createSimpleExpression( + existingText ? existingText.content : ``, + true + ), + false + ) + ]) + ); + } + } else if (node.tag === "input") { + const vModel = findVModel(node); + if (vModel) { + const tempId = `_temp${context.temps++}`; + const tempExp = compilerDom.createSimpleExpression(tempId, false); + propsExp.arguments = [ + compilerDom.createSequenceExpression([ + compilerDom.createAssignmentExpression(tempExp, mergedProps), + compilerDom.createCallExpression(context.helper(compilerDom.MERGE_PROPS), [ + tempExp, + compilerDom.createCallExpression( + context.helper(SSR_GET_DYNAMIC_MODEL_PROPS), + [ + tempExp, + // existing props + vModel.exp + // model + ] + ) + ]) + ]) + ]; + } + } else if (directives.length && !node.children.length) { + if (!hasContentOverrideDirective(node)) { + const tempId = `_temp${context.temps++}`; + propsExp.arguments = [ + compilerDom.createAssignmentExpression( + compilerDom.createSimpleExpression(tempId, false), + mergedProps + ) + ]; + rawChildrenMap.set( + node, + compilerDom.createConditionalExpression( + compilerDom.createSimpleExpression(`"textContent" in ${tempId}`, false), + compilerDom.createCallExpression(context.helper(SSR_INTERPOLATE), [ + compilerDom.createSimpleExpression(`${tempId}.textContent`, false) + ]), + compilerDom.createSimpleExpression(`${tempId}.innerHTML ?? ''`, false), + false + ) + ); + } + } + if (needTagForRuntime) { + propsExp.arguments.push(`"${node.tag}"`); + } + openTag.push(propsExp); + } + } + let dynamicClassBinding = void 0; + let staticClassBinding = void 0; + let dynamicStyleBinding = void 0; + for (let i = 0; i < node.props.length; i++) { + const prop = node.props[i]; + if (node.tag === "input" && isTrueFalseValue(prop)) { + continue; + } + if (prop.type === 7) { + if (prop.name === "html" && prop.exp) { + rawChildrenMap.set( + node, + compilerDom.createCompoundExpression([`(`, prop.exp, `) ?? ''`]) + ); + } else if (prop.name === "text" && prop.exp) { + node.children = [compilerDom.createInterpolation(prop.exp, prop.loc)]; + } else if (prop.name === "slot") { + context.onError( + compilerDom.createCompilerError(40, prop.loc) + ); + } else if (isTextareaWithValue(node, prop) && prop.exp) { + if (!needMergeProps) { + node.children = [compilerDom.createInterpolation(prop.exp, prop.loc)]; + } + } else if (!needMergeProps && prop.name !== "on") { + const directiveTransform = context.directiveTransforms[prop.name]; + if (directiveTransform) { + const { props, ssrTagParts } = directiveTransform( + prop, + node, + context + ); + if (ssrTagParts) { + openTag.push(...ssrTagParts); + } + for (let j = 0; j < props.length; j++) { + const { key, value } = props[j]; + if (compilerDom.isStaticExp(key)) { + let attrName = key.content; + if (attrName === "key" || attrName === "ref") { + continue; + } + if (attrName === "class") { + openTag.push( + ` class="`, + dynamicClassBinding = compilerDom.createCallExpression( + context.helper(SSR_RENDER_CLASS), + [value] + ), + `"` + ); + } else if (attrName === "style") { + if (dynamicStyleBinding) { + mergeCall(dynamicStyleBinding, value); + } else { + openTag.push( + ` style="`, + dynamicStyleBinding = compilerDom.createCallExpression( + context.helper(SSR_RENDER_STYLE), + [value] + ), + `"` + ); + } + } else { + attrName = node.tag.indexOf("-") > 0 ? attrName : shared.propsToAttrMap[attrName] || attrName.toLowerCase(); + if (shared.isBooleanAttr(attrName)) { + openTag.push( + compilerDom.createConditionalExpression( + compilerDom.createCallExpression( + context.helper(SSR_INCLUDE_BOOLEAN_ATTR), + [value] + ), + compilerDom.createSimpleExpression(" " + attrName, true), + compilerDom.createSimpleExpression("", true), + false + ) + ); + } else if (shared.isSSRSafeAttrName(attrName)) { + openTag.push( + compilerDom.createCallExpression(context.helper(SSR_RENDER_ATTR), [ + key, + value + ]) + ); + } else { + context.onError( + createSSRCompilerError( + 65, + key.loc + ) + ); + } + } + } else { + const args = [key, value]; + if (needTagForRuntime) { + args.push(`"${node.tag}"`); + } + openTag.push( + compilerDom.createCallExpression( + context.helper(SSR_RENDER_DYNAMIC_ATTR), + args + ) + ); + } + } + } + } + } else { + const name = prop.name; + if (node.tag === "textarea" && name === "value" && prop.value) { + rawChildrenMap.set(node, shared.escapeHtml(prop.value.content)); + } else if (!needMergeProps) { + if (name === "key" || name === "ref") { + continue; + } + if (name === "class" && prop.value) { + staticClassBinding = JSON.stringify(prop.value.content); + } + openTag.push( + ` ${prop.name}` + (prop.value ? `="${shared.escapeHtml(prop.value.content)}"` : ``) + ); + } + } + } + if (dynamicClassBinding && staticClassBinding) { + mergeCall(dynamicClassBinding, staticClassBinding); + removeStaticBinding(openTag, "class"); + } + if (context.scopeId) { + openTag.push(` ${context.scopeId}`); + } + node.ssrCodegenNode = compilerDom.createTemplateLiteral(openTag); + }; +}; +function buildSSRProps(props, directives, context) { + let mergePropsArgs = []; + if (props) { + if (props.type === 14) { + mergePropsArgs = props.arguments; + } else { + mergePropsArgs.push(props); + } + } + if (directives.length) { + for (const dir of directives) { + mergePropsArgs.push( + compilerDom.createCallExpression(context.helper(SSR_GET_DIRECTIVE_PROPS), [ + `_ctx`, + ...compilerDom.buildDirectiveArgs(dir, context).elements + ]) + ); + } + } + return mergePropsArgs.length > 1 ? compilerDom.createCallExpression(context.helper(compilerDom.MERGE_PROPS), mergePropsArgs) : mergePropsArgs[0]; +} +function isTrueFalseValue(prop) { + if (prop.type === 7) { + return prop.name === "bind" && prop.arg && compilerDom.isStaticExp(prop.arg) && (prop.arg.content === "true-value" || prop.arg.content === "false-value"); + } else { + return prop.name === "true-value" || prop.name === "false-value"; + } +} +function isTextareaWithValue(node, prop) { + return !!(node.tag === "textarea" && prop.name === "bind" && compilerDom.isStaticArgOf(prop.arg, "value")); +} +function mergeCall(call, arg) { + const existing = call.arguments[0]; + if (existing.type === 17) { + existing.elements.push(arg); + } else { + call.arguments[0] = compilerDom.createArrayExpression([existing, arg]); + } +} +function removeStaticBinding(tag, binding) { + const regExp = new RegExp(`^ ${binding}=".+"$`); + const i = tag.findIndex((e) => typeof e === "string" && regExp.test(e)); + if (i > -1) { + tag.splice(i, 1); + } +} +function findVModel(node) { + return node.props.find( + (p) => p.type === 7 && p.name === "model" && p.exp + ); +} +function hasContentOverrideDirective(node) { + return !!compilerDom.findDir(node, "text") || !!compilerDom.findDir(node, "html"); +} +function ssrProcessElement(node, context) { + const isVoidTag = context.options.isVoidTag || shared.NO; + const elementsToAdd = node.ssrCodegenNode.elements; + for (let j = 0; j < elementsToAdd.length; j++) { + context.pushStringPart(elementsToAdd[j]); + } + if (context.withSlotScopeId) { + context.pushStringPart(compilerDom.createSimpleExpression(`_scopeId`, false)); + } + context.pushStringPart(`>`); + const rawChildren = rawChildrenMap.get(node); + if (rawChildren) { + context.pushStringPart(rawChildren); + } else if (node.children.length) { + processChildren(node, context); + } + if (!isVoidTag(node.tag)) { + context.pushStringPart(`</${node.tag}>`); + } +} + +const wipMap$2 = /* @__PURE__ */ new WeakMap(); +function ssrTransformTransitionGroup(node, context) { + return () => { + const tag = compilerDom.findProp(node, "tag"); + if (tag) { + const otherProps = node.props.filter((p) => p !== tag); + const { props, directives } = compilerDom.buildProps( + node, + context, + otherProps, + true, + false, + true + ); + let propsExp = null; + if (props || directives.length) { + propsExp = compilerDom.createCallExpression(context.helper(SSR_RENDER_ATTRS), [ + buildSSRProps(props, directives, context) + ]); + } + wipMap$2.set(node, { + tag, + propsExp, + scopeId: context.scopeId || null + }); + } + }; +} +function ssrProcessTransitionGroup(node, context) { + const entry = wipMap$2.get(node); + if (entry) { + const { tag, propsExp, scopeId } = entry; + if (tag.type === 7) { + context.pushStringPart(`<`); + context.pushStringPart(tag.exp); + if (propsExp) { + context.pushStringPart(propsExp); + } + if (scopeId) { + context.pushStringPart(` ${scopeId}`); + } + context.pushStringPart(`>`); + processChildren( + node, + context, + false, + /** + * TransitionGroup has the special runtime behavior of flattening and + * concatenating all children into a single fragment (in order for them to + * be patched using the same key map) so we need to account for that here + * by disabling nested fragment wrappers from being generated. + */ + true, + /** + * TransitionGroup filters out comment children at runtime and thus + * doesn't expect comments to be present during hydration. We need to + * account for that by disabling the empty comment that is otherwise + * rendered for a falsy v-if that has no v-else specified. (#6715) + */ + true + ); + context.pushStringPart(`</`); + context.pushStringPart(tag.exp); + context.pushStringPart(`>`); + } else { + context.pushStringPart(`<${tag.value.content}`); + if (propsExp) { + context.pushStringPart(propsExp); + } + if (scopeId) { + context.pushStringPart(` ${scopeId}`); + } + context.pushStringPart(`>`); + processChildren(node, context, false, true, true); + context.pushStringPart(`</${tag.value.content}>`); + } + } else { + processChildren(node, context, true, true, true); + } +} + +const wipMap$1 = /* @__PURE__ */ new WeakMap(); +function ssrTransformTransition(node, context) { + return () => { + const appear = compilerDom.findProp(node, "appear", false, true); + wipMap$1.set(node, !!appear); + }; +} +function ssrProcessTransition(node, context) { + node.children = node.children.filter((c) => c.type !== 3); + const appear = wipMap$1.get(node); + if (appear) { + context.pushStringPart(`<template>`); + processChildren(node, context, false, true); + context.pushStringPart(`</template>`); + } else { + processChildren(node, context, false, true); + } +} + +const wipMap = /* @__PURE__ */ new WeakMap(); +const WIP_SLOT = /* @__PURE__ */ Symbol(); +const componentTypeMap = /* @__PURE__ */ new WeakMap(); +const ssrTransformComponent = (node, context) => { + if (node.type !== 1 || node.tagType !== 1) { + return; + } + const component = compilerDom.resolveComponentType( + node, + context, + true + /* ssr */ + ); + const isDynamicComponent = shared.isObject(component) && component.callee === compilerDom.RESOLVE_DYNAMIC_COMPONENT; + componentTypeMap.set(node, component); + if (shared.isSymbol(component)) { + if (component === compilerDom.SUSPENSE) { + return ssrTransformSuspense(node, context); + } else if (component === compilerDom.TRANSITION_GROUP) { + return ssrTransformTransitionGroup(node, context); + } else if (component === compilerDom.TRANSITION) { + return ssrTransformTransition(node); + } + return; + } + const vnodeBranches = []; + const clonedNode = clone(node); + return function ssrPostTransformComponent() { + if (clonedNode.children.length) { + compilerDom.buildSlots(clonedNode, context, (props, vFor, children) => { + vnodeBranches.push( + createVNodeSlotBranch(props, vFor, children, context) + ); + return compilerDom.createFunctionExpression(void 0); + }); + } + let propsExp = `null`; + if (node.props.length) { + const { props, directives } = compilerDom.buildProps( + node, + context, + void 0, + true, + isDynamicComponent + ); + if (props || directives.length) { + propsExp = buildSSRProps(props, directives, context); + } + } + const wipEntries = []; + wipMap.set(node, wipEntries); + const buildSSRSlotFn = (props, _vForExp, children, loc) => { + const param0 = props && compilerDom.stringifyExpression(props) || `_`; + const fn = compilerDom.createFunctionExpression( + [param0, `_push`, `_parent`, `_scopeId`], + void 0, + // no return, assign body later + true, + // newline + true, + // isSlot + loc + ); + wipEntries.push({ + type: WIP_SLOT, + fn, + children, + // also collect the corresponding vnode branch built earlier + vnodeBranch: vnodeBranches[wipEntries.length] + }); + return fn; + }; + const slots = node.children.length ? compilerDom.buildSlots(node, context, buildSSRSlotFn).slots : `null`; + if (typeof component !== "string") { + node.ssrCodegenNode = compilerDom.createCallExpression( + context.helper(SSR_RENDER_VNODE), + [ + `_push`, + compilerDom.createCallExpression(context.helper(compilerDom.CREATE_VNODE), [ + component, + propsExp, + slots + ]), + `_parent` + ] + ); + } else { + node.ssrCodegenNode = compilerDom.createCallExpression( + context.helper(SSR_RENDER_COMPONENT), + [component, propsExp, slots, `_parent`] + ); + } + }; +}; +function ssrProcessComponent(node, context, parent) { + const component = componentTypeMap.get(node); + if (!node.ssrCodegenNode) { + if (component === compilerDom.TELEPORT) { + return ssrProcessTeleport(node, context); + } else if (component === compilerDom.SUSPENSE) { + return ssrProcessSuspense(node, context); + } else if (component === compilerDom.TRANSITION_GROUP) { + return ssrProcessTransitionGroup(node, context); + } else { + if (parent.type === WIP_SLOT) { + context.pushStringPart(``); + } + if (component === compilerDom.TRANSITION) { + return ssrProcessTransition(node, context); + } + processChildren(node, context); + } + } else { + const wipEntries = wipMap.get(node) || []; + for (let i = 0; i < wipEntries.length; i++) { + const { fn, vnodeBranch } = wipEntries[i]; + fn.body = compilerDom.createIfStatement( + compilerDom.createSimpleExpression(`_push`, false), + processChildrenAsStatement( + wipEntries[i], + context, + false, + true + ), + vnodeBranch + ); + } + if (context.withSlotScopeId) { + node.ssrCodegenNode.arguments.push(`_scopeId`); + } + if (typeof component === "string") { + context.pushStatement( + compilerDom.createCallExpression(`_push`, [node.ssrCodegenNode]) + ); + } else { + context.pushStatement(node.ssrCodegenNode); + } + } +} +const rawOptionsMap = /* @__PURE__ */ new WeakMap(); +const [baseNodeTransforms, baseDirectiveTransforms] = compilerDom.getBaseTransformPreset(true); +const vnodeNodeTransforms = [...baseNodeTransforms, ...compilerDom.DOMNodeTransforms]; +const vnodeDirectiveTransforms = { + ...baseDirectiveTransforms, + ...compilerDom.DOMDirectiveTransforms +}; +function createVNodeSlotBranch(slotProps, vFor, children, parentContext) { + const rawOptions = rawOptionsMap.get(parentContext.root); + const subOptions = { + ...rawOptions, + // overwrite with vnode-based transforms + nodeTransforms: [ + ...vnodeNodeTransforms, + ...rawOptions.nodeTransforms || [] + ], + directiveTransforms: { + ...vnodeDirectiveTransforms, + ...rawOptions.directiveTransforms || {} + } + }; + const wrapperProps = []; + if (slotProps) { + wrapperProps.push({ + type: 7, + name: "slot", + exp: slotProps, + arg: void 0, + modifiers: [], + loc: compilerDom.locStub + }); + } + if (vFor) { + wrapperProps.push(shared.extend({}, vFor)); + } + const wrapperNode = { + type: 1, + ns: 0, + tag: "template", + tagType: 3, + props: wrapperProps, + children, + loc: compilerDom.locStub, + codegenNode: void 0 + }; + subTransform(wrapperNode, subOptions, parentContext); + return compilerDom.createReturnStatement(children); +} +function subTransform(node, options, parentContext) { + const childRoot = compilerDom.createRoot([node]); + const childContext = compilerDom.createTransformContext(childRoot, options); + childContext.ssr = false; + childContext.scopes = { ...parentContext.scopes }; + childContext.identifiers = { ...parentContext.identifiers }; + childContext.imports = parentContext.imports; + compilerDom.traverseNode(childRoot, childContext); + ["helpers", "components", "directives"].forEach((key) => { + childContext[key].forEach((value, helperKey) => { + if (key === "helpers") { + const parentCount = parentContext.helpers.get(helperKey); + if (parentCount === void 0) { + parentContext.helpers.set(helperKey, value); + } else { + parentContext.helpers.set(helperKey, value + parentCount); + } + } else { + parentContext[key].add(value); + } + }); + }); +} +function clone(v) { + if (shared.isArray(v)) { + return v.map(clone); + } else if (shared.isPlainObject(v)) { + const res = {}; + for (const key in v) { + res[key] = clone(v[key]); + } + return res; + } else { + return v; + } +} + +function ssrCodegenTransform(ast, options) { + const context = createSSRTransformContext(ast, options); + if (options.ssrCssVars) { + const cssContext = compilerDom.createTransformContext(compilerDom.createRoot([]), options); + const varsExp = compilerDom.processExpression( + compilerDom.createSimpleExpression(options.ssrCssVars, false), + cssContext + ); + context.body.push( + compilerDom.createCompoundExpression([`const _cssVars = { style: `, varsExp, `}`]) + ); + Array.from(cssContext.helpers.keys()).forEach((helper) => { + ast.helpers.add(helper); + }); + } + const isFragment = ast.children.length > 1 && ast.children.some((c) => !compilerDom.isText(c)); + processChildren(ast, context, isFragment); + ast.codegenNode = compilerDom.createBlockStatement(context.body); + ast.ssrHelpers = Array.from( + /* @__PURE__ */ new Set([ + ...Array.from(ast.helpers).filter((h) => h in ssrHelpers), + ...context.helpers + ]) + ); + ast.helpers = new Set(Array.from(ast.helpers).filter((h) => !(h in ssrHelpers))); +} +function createSSRTransformContext(root, options, helpers = /* @__PURE__ */ new Set(), withSlotScopeId = false) { + const body = []; + let currentString = null; + return { + root, + options, + body, + helpers, + withSlotScopeId, + onError: options.onError || ((e) => { + throw e; + }), + helper(name) { + helpers.add(name); + return name; + }, + pushStringPart(part) { + if (!currentString) { + const currentCall = compilerDom.createCallExpression(`_push`); + body.push(currentCall); + currentString = compilerDom.createTemplateLiteral([]); + currentCall.arguments.push(currentString); + } + const bufferedElements = currentString.elements; + const lastItem = bufferedElements[bufferedElements.length - 1]; + if (shared.isString(part) && shared.isString(lastItem)) { + bufferedElements[bufferedElements.length - 1] += part; + } else { + bufferedElements.push(part); + } + }, + pushStatement(statement) { + currentString = null; + body.push(statement); + } + }; +} +function createChildContext(parent, withSlotScopeId = parent.withSlotScopeId) { + return createSSRTransformContext( + parent.root, + parent.options, + parent.helpers, + withSlotScopeId + ); +} +function processChildren(parent, context, asFragment = false, disableNestedFragments = false, disableComment = false) { + if (asFragment) { + context.pushStringPart(`<!--[-->`); + } + const { children } = parent; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + switch (child.tagType) { + case 0: + ssrProcessElement(child, context); + break; + case 1: + ssrProcessComponent(child, context, parent); + break; + case 2: + ssrProcessSlotOutlet(child, context); + break; + case 3: + break; + default: + context.onError( + createSSRCompilerError( + 67, + child.loc + ) + ); + const exhaustiveCheck2 = child; + return exhaustiveCheck2; + } + break; + case 2: + context.pushStringPart(shared.escapeHtml(child.content)); + break; + case 3: + if (!disableComment) { + context.pushStringPart(`<!--${child.content}-->`); + } + break; + case 5: + context.pushStringPart( + compilerDom.createCallExpression(context.helper(SSR_INTERPOLATE), [ + child.content + ]) + ); + break; + case 9: + ssrProcessIf(child, context, disableNestedFragments, disableComment); + break; + case 11: + ssrProcessFor(child, context, disableNestedFragments); + break; + case 10: + break; + case 12: + case 8: + break; + default: + context.onError( + createSSRCompilerError( + 67, + child.loc + ) + ); + const exhaustiveCheck = child; + return exhaustiveCheck; + } + } + if (asFragment) { + context.pushStringPart(`<!--]-->`); + } +} +function processChildrenAsStatement(parent, parentContext, asFragment = false, withSlotScopeId = parentContext.withSlotScopeId) { + const childContext = createChildContext(parentContext, withSlotScopeId); + processChildren(parent, childContext, asFragment); + return compilerDom.createBlockStatement(childContext.body); +} + +const ssrTransformModel = (dir, node, context) => { + const model = dir.exp; + function checkDuplicatedValue() { + const value = compilerDom.findProp(node, "value"); + if (value) { + context.onError( + compilerDom.createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const processSelectChildren = (children) => { + children.forEach((child) => { + if (child.type === 1) { + processOption(child); + } else if (child.type === 11) { + processSelectChildren(child.children); + } else if (child.type === 9) { + child.branches.forEach((b) => processSelectChildren(b.children)); + } + }); + }; + function processOption(plainNode) { + if (plainNode.tag === "option") { + if (plainNode.props.findIndex((p) => p.name === "selected") === -1) { + const value = findValueBinding(plainNode); + plainNode.ssrCodegenNode.elements.push( + compilerDom.createConditionalExpression( + compilerDom.createCallExpression(context.helper(SSR_INCLUDE_BOOLEAN_ATTR), [ + compilerDom.createConditionalExpression( + compilerDom.createCallExpression(`Array.isArray`, [model]), + compilerDom.createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [ + model, + value + ]), + compilerDom.createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + value + ]) + ) + ]), + compilerDom.createSimpleExpression(" selected", true), + compilerDom.createSimpleExpression("", true), + false + ) + ); + } + } else if (plainNode.tag === "optgroup") { + processSelectChildren(plainNode.children); + } + } + if (node.tagType === 0) { + const res = { props: [] }; + if (node.tag === "input") { + const defaultProps = [ + // default value binding for text type inputs + compilerDom.createObjectProperty(`value`, model) + ]; + const type = compilerDom.findProp(node, "type"); + if (type) { + const value = findValueBinding(node); + if (type.type === 7) { + res.ssrTagParts = [ + compilerDom.createCallExpression(context.helper(SSR_RENDER_DYNAMIC_MODEL), [ + type.exp, + model, + value + ]) + ]; + } else if (type.value) { + switch (type.value.content) { + case "radio": + res.props = [ + compilerDom.createObjectProperty( + `checked`, + compilerDom.createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + value + ]) + ) + ]; + break; + case "checkbox": + const trueValueBinding = compilerDom.findProp(node, "true-value"); + if (trueValueBinding) { + const trueValue = trueValueBinding.type === 6 ? JSON.stringify(trueValueBinding.value.content) : trueValueBinding.exp; + res.props = [ + compilerDom.createObjectProperty( + `checked`, + compilerDom.createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + trueValue + ]) + ) + ]; + } else { + res.props = [ + compilerDom.createObjectProperty( + `checked`, + compilerDom.createConditionalExpression( + compilerDom.createCallExpression(`Array.isArray`, [model]), + compilerDom.createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [ + model, + value + ]), + model + ) + ) + ]; + } + break; + case "file": + context.onError( + compilerDom.createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + res.props = defaultProps; + break; + } + } + } else if (compilerDom.hasDynamicKeyVBind(node)) ; else { + checkDuplicatedValue(); + res.props = defaultProps; + } + } else if (node.tag === "textarea") { + checkDuplicatedValue(); + node.children = [compilerDom.createInterpolation(model, model.loc)]; + } else if (node.tag === "select") { + processSelectChildren(node.children); + } else { + context.onError( + compilerDom.createDOMCompilerError( + 58, + dir.loc + ) + ); + } + return res; + } else { + return compilerDom.transformModel(dir, node, context); + } +}; +function findValueBinding(node) { + const valueBinding = compilerDom.findProp(node, "value"); + return valueBinding ? valueBinding.type === 7 ? valueBinding.exp : compilerDom.createSimpleExpression(valueBinding.value.content, true) : compilerDom.createSimpleExpression(`null`, false); +} + +const ssrTransformShow = (dir, node, context) => { + if (!dir.exp) { + context.onError( + compilerDom.createDOMCompilerError(62) + ); + } + return { + props: [ + compilerDom.createObjectProperty( + `style`, + compilerDom.createConditionalExpression( + dir.exp, + compilerDom.createSimpleExpression(`null`, false), + compilerDom.createObjectExpression([ + compilerDom.createObjectProperty( + `display`, + compilerDom.createSimpleExpression(`none`, true) + ) + ]), + false + ) + ) + ] + }; +}; + +const filterChild = (node) => node.children.filter((n) => !compilerDom.isCommentOrWhitespace(n)); +const hasSingleChild = (node) => filterChild(node).length === 1; +const ssrInjectFallthroughAttrs = (node, context) => { + if (node.type === 0) { + context.identifiers._attrs = 1; + } + if (node.type === 1 && node.tagType === 1 && (node.tag === "transition" || node.tag === "Transition" || node.tag === "KeepAlive" || node.tag === "keep-alive")) { + const rootChildren = filterChild(context.root); + if (rootChildren.length === 1 && rootChildren[0] === node) { + if (hasSingleChild(node)) { + injectFallthroughAttrs(node.children[0]); + } + return; + } + } + const parent = context.parent; + if (!parent || parent.type !== 0) { + return; + } + if (node.type === 10 && hasSingleChild(node)) { + let hasEncounteredIf = false; + for (const c of filterChild(parent)) { + if (c.type === 9 || c.type === 1 && compilerDom.findDir(c, "if")) { + if (hasEncounteredIf) return; + hasEncounteredIf = true; + } else if ( + // node before v-if + !hasEncounteredIf || // non else nodes + !(c.type === 1 && compilerDom.findDir(c, /else/, true)) + ) { + return; + } + } + injectFallthroughAttrs(node.children[0]); + } else if (hasSingleChild(parent)) { + injectFallthroughAttrs(node); + } +}; +function injectFallthroughAttrs(node) { + if (node.type === 1 && (node.tagType === 0 || node.tagType === 1) && !compilerDom.findDir(node, "for")) { + node.props.push({ + type: 7, + name: "bind", + arg: void 0, + exp: compilerDom.createSimpleExpression(`_attrs`, false), + modifiers: [], + loc: compilerDom.locStub + }); + } +} + +const ssrInjectCssVars = (node, context) => { + if (!context.ssrCssVars) { + return; + } + if (node.type === 0) { + context.identifiers._cssVars = 1; + } + const parent = context.parent; + if (!parent || parent.type !== 0) { + return; + } + if (node.type === 10) { + for (const child of node.children) { + injectCssVars(child); + } + } else { + injectCssVars(node); + } +}; +function injectCssVars(node) { + if (node.type === 1 && (node.tagType === 0 || node.tagType === 1) && !compilerDom.findDir(node, "for")) { + if (node.tag === "suspense" || node.tag === "Suspense") { + for (const child of node.children) { + if (child.type === 1 && child.tagType === 3) { + child.children.forEach(injectCssVars); + } else { + injectCssVars(child); + } + } + } else { + node.props.push({ + type: 7, + name: "bind", + arg: void 0, + exp: compilerDom.createSimpleExpression(`_cssVars`, false), + modifiers: [], + loc: compilerDom.locStub + }); + } + } +} + +function compile(source, options = {}) { + options = { + ...options, + ...compilerDom.parserOptions, + ssr: true, + inSSR: true, + scopeId: options.mode === "function" ? null : options.scopeId, + // always prefix since compiler-ssr doesn't have size concern + prefixIdentifiers: true, + // disable optimizations that are unnecessary for ssr + cacheHandlers: false, + hoistStatic: false + }; + const ast = typeof source === "string" ? compilerDom.baseParse(source, options) : source; + rawOptionsMap.set(ast, options); + compilerDom.transform(ast, { + ...options, + hoistStatic: false, + nodeTransforms: [ + compilerDom.transformVBindShorthand, + ssrTransformIf, + ssrTransformFor, + compilerDom.trackVForSlotScopes, + compilerDom.transformExpression, + ssrTransformSlotOutlet, + ssrInjectFallthroughAttrs, + ssrInjectCssVars, + ssrTransformElement, + ssrTransformComponent, + compilerDom.trackSlotScopes, + compilerDom.transformStyle, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: { + // reusing core v-bind + bind: compilerDom.transformBind, + on: compilerDom.transformOn, + // model and show have dedicated SSR handling + model: ssrTransformModel, + show: ssrTransformShow, + // the following are ignored during SSR + // on: noopDirectiveTransform, + cloak: compilerDom.noopDirectiveTransform, + once: compilerDom.noopDirectiveTransform, + memo: compilerDom.noopDirectiveTransform, + ...options.directiveTransforms || {} + // user transforms + } + }); + ssrCodegenTransform(ast, options); + return compilerDom.generate(ast, options); +} + +exports.compile = compile; diff --git a/node_modules/@vue/compiler-ssr/dist/compiler-ssr.d.ts b/node_modules/@vue/compiler-ssr/dist/compiler-ssr.d.ts new file mode 100644 index 0000000..60dfb21 --- /dev/null +++ b/node_modules/@vue/compiler-ssr/dist/compiler-ssr.d.ts @@ -0,0 +1,4 @@ +import { RootNode, CompilerOptions, CodegenResult } from '@vue/compiler-dom'; + +export declare function compile(source: string | RootNode, options?: CompilerOptions): CodegenResult; + diff --git a/node_modules/@vue/compiler-ssr/package.json b/node_modules/@vue/compiler-ssr/package.json new file mode 100644 index 0000000..394a5f8 --- /dev/null +++ b/node_modules/@vue/compiler-ssr/package.json @@ -0,0 +1,34 @@ +{ + "name": "@vue/compiler-ssr", + "version": "3.5.28", + "description": "@vue/compiler-ssr", + "main": "dist/compiler-ssr.cjs.js", + "types": "dist/compiler-ssr.d.ts", + "files": [ + "dist" + ], + "buildOptions": { + "prod": false, + "formats": [ + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-ssr" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", + "dependencies": { + "@vue/shared": "3.5.28", + "@vue/compiler-dom": "3.5.28" + } +} \ No newline at end of file diff --git a/node_modules/@vue/reactivity/LICENSE b/node_modules/@vue/reactivity/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/reactivity/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/reactivity/README.md b/node_modules/@vue/reactivity/README.md new file mode 100644 index 0000000..e478074 --- /dev/null +++ b/node_modules/@vue/reactivity/README.md @@ -0,0 +1,19 @@ +# @vue/reactivity + +## Usage Note + +This package is inlined into Global & Browser ESM builds of user-facing renderers (e.g. `@vue/runtime-dom`), but also published as a package that can be used standalone. The standalone build should not be used alongside a pre-bundled build of a user-facing renderer, as they will have different internal storage for reactivity connections. A user-facing renderer should re-export all APIs from this package. + +For full exposed APIs, see `src/index.ts`. + +## Credits + +The implementation of this module is inspired by the following prior art in the JavaScript ecosystem: + +- [Meteor Tracker](https://docs.meteor.com/api/tracker.html) +- [nx-js/observer-util](https://github.com/nx-js/observer-util) +- [salesforce/observable-membrane](https://github.com/salesforce/observable-membrane) + +## Caveats + +- Built-in objects are not observed except for `Array`, `Map`, `WeakMap`, `Set` and `WeakSet`. diff --git a/node_modules/@vue/reactivity/dist/reactivity.cjs.js b/node_modules/@vue/reactivity/dist/reactivity.cjs.js new file mode 100644 index 0000000..34de3e0 --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.cjs.js @@ -0,0 +1,2026 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var shared = require('@vue/shared'); + +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} + +let activeSub; +const EffectFlags = { + "ACTIVE": 1, + "1": "ACTIVE", + "RUNNING": 2, + "2": "RUNNING", + "TRACKING": 4, + "4": "TRACKING", + "NOTIFIED": 8, + "8": "NOTIFIED", + "DIRTY": 16, + "16": "DIRTY", + "ALLOW_RECURSE": 32, + "32": "ALLOW_RECURSE", + "PAUSED": 64, + "64": "PAUSED", + "EVALUATED": 128, + "128": "EVALUATED" +}; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || shared.hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + shared.extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function onEffectCleanup(fn, failSilently = false) { + if (activeSub instanceof ReactiveEffect) { + activeSub.cleanup = fn; + } else if (!failSilently) { + warn( + `onEffectCleanup() was called when there was no active effect to associate with.` + ); + } +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + shared.extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + shared.extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = shared.isArray(target); + const isArrayIndex = targetIsArray && shared.isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !shared.isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (shared.isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => shared.isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(shared.isSymbol) +); +function hasOwnProperty(key) { + if (!shared.isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = shared.isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && shared.isIntegerKey(key) ? res : res.value; + return isReadonly2 && shared.isObject(value) ? readonly(value) : value; + } + if (shared.isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = shared.isArray(target) && shared.isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : shared.hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = shared.hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!shared.isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + shared.isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = shared.isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return shared.extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn( + `${shared.capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (shared.hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (shared.hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + shared.extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = shared.toRawType(target); + warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(shared.toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!shared.isObject(target)) { + { + warn( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!shared.hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + shared.def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => shared.isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => shared.isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (shared.hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return shared.isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + if (!isProxy(object)) { + warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = shared.isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!shared.isArray(_object) || !shared.isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (shared.isFunction(source)) { + return new GetterRefImpl(source); + } else if (shared.isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (shared.isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; +const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw", + "IS_REF": "__v_isRef" +}; + +const WatchErrorCodes = { + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP" +}; +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch(source, cb, options = shared.EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (shared.isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (shared.isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (shared.isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = shared.NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + shared.remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => shared.hasChanged(v, oldValue[i])) : shared.hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !shared.isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (shared.isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (shared.isSet(value) || shared.isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (shared.isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +exports.ARRAY_ITERATE_KEY = ARRAY_ITERATE_KEY; +exports.EffectFlags = EffectFlags; +exports.EffectScope = EffectScope; +exports.ITERATE_KEY = ITERATE_KEY; +exports.MAP_KEY_ITERATE_KEY = MAP_KEY_ITERATE_KEY; +exports.ReactiveEffect = ReactiveEffect; +exports.ReactiveFlags = ReactiveFlags; +exports.TrackOpTypes = TrackOpTypes; +exports.TriggerOpTypes = TriggerOpTypes; +exports.WatchErrorCodes = WatchErrorCodes; +exports.computed = computed; +exports.customRef = customRef; +exports.effect = effect; +exports.effectScope = effectScope; +exports.enableTracking = enableTracking; +exports.getCurrentScope = getCurrentScope; +exports.getCurrentWatcher = getCurrentWatcher; +exports.isProxy = isProxy; +exports.isReactive = isReactive; +exports.isReadonly = isReadonly; +exports.isRef = isRef; +exports.isShallow = isShallow; +exports.markRaw = markRaw; +exports.onEffectCleanup = onEffectCleanup; +exports.onScopeDispose = onScopeDispose; +exports.onWatcherCleanup = onWatcherCleanup; +exports.pauseTracking = pauseTracking; +exports.proxyRefs = proxyRefs; +exports.reactive = reactive; +exports.reactiveReadArray = reactiveReadArray; +exports.readonly = readonly; +exports.ref = ref; +exports.resetTracking = resetTracking; +exports.shallowReactive = shallowReactive; +exports.shallowReadArray = shallowReadArray; +exports.shallowReadonly = shallowReadonly; +exports.shallowRef = shallowRef; +exports.stop = stop; +exports.toRaw = toRaw; +exports.toReactive = toReactive; +exports.toReadonly = toReadonly; +exports.toRef = toRef; +exports.toRefs = toRefs; +exports.toValue = toValue; +exports.track = track; +exports.traverse = traverse; +exports.trigger = trigger; +exports.triggerRef = triggerRef; +exports.unref = unref; +exports.watch = watch; diff --git a/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js b/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js new file mode 100644 index 0000000..a259be7 --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js @@ -0,0 +1,1870 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var shared = require('@vue/shared'); + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } +} + +let activeSub; +const EffectFlags = { + "ACTIVE": 1, + "1": "ACTIVE", + "RUNNING": 2, + "2": "RUNNING", + "TRACKING": 4, + "4": "TRACKING", + "NOTIFIED": 8, + "8": "NOTIFIED", + "DIRTY": 16, + "16": "DIRTY", + "ALLOW_RECURSE": 32, + "32": "ALLOW_RECURSE", + "PAUSED": 64, + "64": "PAUSED", + "EVALUATED": 128, + "128": "EVALUATED" +}; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || shared.hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + shared.extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function onEffectCleanup(fn, failSilently = false) { + if (activeSub instanceof ReactiveEffect) { + activeSub.cleanup = fn; + } +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (false) ; + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track(); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger(); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = shared.isArray(target); + const isArrayIndex = targetIsArray && shared.isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !shared.isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (shared.isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => shared.isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(shared.isSymbol) +); +function hasOwnProperty(key) { + if (!shared.isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = shared.isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && shared.isIntegerKey(key) ? res : res.value; + return isReadonly2 && shared.isObject(value) ? readonly(value) : value; + } + if (shared.isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = shared.isArray(target) && shared.isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : shared.hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger(target, "set", key, value); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = shared.hasOwn(target, key); + target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!shared.isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + shared.isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + return true; + } + deleteProperty(target, key) { + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = shared.isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return shared.extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (shared.hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (shared.hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + shared.extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger(target, "set", key, value); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } + get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(shared.toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!shared.isObject(target)) { + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!shared.hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + shared.def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => shared.isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => shared.isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track(); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (shared.hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger(); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger(); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return shared.isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + const ret = shared.isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!shared.isArray(_object) || !shared.isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (shared.isFunction(source)) { + return new GetterRefImpl(source); + } else if (shared.isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track(); + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (shared.isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; +const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw", + "IS_REF": "__v_isRef" +}; + +const WatchErrorCodes = { + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP" +}; +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } +} +function watch(source, cb, options = shared.EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (shared.isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (shared.isFunction(s)) { + return call ? call(s, 2) : s(); + } else ; + }); + } else if (shared.isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = shared.NOOP; + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + shared.remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => shared.hasChanged(v, oldValue[i])) : shared.hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !shared.isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (shared.isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (shared.isSet(value) || shared.isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (shared.isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +exports.ARRAY_ITERATE_KEY = ARRAY_ITERATE_KEY; +exports.EffectFlags = EffectFlags; +exports.EffectScope = EffectScope; +exports.ITERATE_KEY = ITERATE_KEY; +exports.MAP_KEY_ITERATE_KEY = MAP_KEY_ITERATE_KEY; +exports.ReactiveEffect = ReactiveEffect; +exports.ReactiveFlags = ReactiveFlags; +exports.TrackOpTypes = TrackOpTypes; +exports.TriggerOpTypes = TriggerOpTypes; +exports.WatchErrorCodes = WatchErrorCodes; +exports.computed = computed; +exports.customRef = customRef; +exports.effect = effect; +exports.effectScope = effectScope; +exports.enableTracking = enableTracking; +exports.getCurrentScope = getCurrentScope; +exports.getCurrentWatcher = getCurrentWatcher; +exports.isProxy = isProxy; +exports.isReactive = isReactive; +exports.isReadonly = isReadonly; +exports.isRef = isRef; +exports.isShallow = isShallow; +exports.markRaw = markRaw; +exports.onEffectCleanup = onEffectCleanup; +exports.onScopeDispose = onScopeDispose; +exports.onWatcherCleanup = onWatcherCleanup; +exports.pauseTracking = pauseTracking; +exports.proxyRefs = proxyRefs; +exports.reactive = reactive; +exports.reactiveReadArray = reactiveReadArray; +exports.readonly = readonly; +exports.ref = ref; +exports.resetTracking = resetTracking; +exports.shallowReactive = shallowReactive; +exports.shallowReadArray = shallowReadArray; +exports.shallowReadonly = shallowReadonly; +exports.shallowRef = shallowRef; +exports.stop = stop; +exports.toRaw = toRaw; +exports.toReactive = toReactive; +exports.toReadonly = toReadonly; +exports.toRef = toRef; +exports.toRefs = toRefs; +exports.toValue = toValue; +exports.track = track; +exports.traverse = traverse; +exports.trigger = trigger; +exports.triggerRef = triggerRef; +exports.unref = unref; +exports.watch = watch; diff --git a/node_modules/@vue/reactivity/dist/reactivity.d.ts b/node_modules/@vue/reactivity/dist/reactivity.d.ts new file mode 100644 index 0000000..effa748 --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.d.ts @@ -0,0 +1,754 @@ +import { IfAny } from '@vue/shared'; + +export declare enum TrackOpTypes { + GET = "get", + HAS = "has", + ITERATE = "iterate" +} +export declare enum TriggerOpTypes { + SET = "set", + ADD = "add", + DELETE = "delete", + CLEAR = "clear" +} +export declare enum ReactiveFlags { + SKIP = "__v_skip", + IS_REACTIVE = "__v_isReactive", + IS_READONLY = "__v_isReadonly", + IS_SHALLOW = "__v_isShallow", + RAW = "__v_raw", + IS_REF = "__v_isRef" +} + +export type UnwrapNestedRefs<T> = T extends Ref ? T : UnwrapRefSimple<T>; +declare const ReactiveMarkerSymbol: unique symbol; +export interface ReactiveMarker { + [ReactiveMarkerSymbol]?: void; +} +export type Reactive<T> = UnwrapNestedRefs<T> & (T extends readonly any[] ? ReactiveMarker : {}); +/** + * Returns a reactive proxy of the object. + * + * The reactive conversion is "deep": it affects all nested properties. A + * reactive object also deeply unwraps any properties that are refs while + * maintaining reactivity. + * + * @example + * ```js + * const obj = reactive({ count: 0 }) + * ``` + * + * @param target - The source object. + * @see {@link https://vuejs.org/api/reactivity-core.html#reactive} + */ +export declare function reactive<T extends object>(target: T): Reactive<T>; +declare const ShallowReactiveMarker: unique symbol; +export type ShallowReactive<T> = T & { + [ShallowReactiveMarker]?: true; +}; +/** + * Shallow version of {@link reactive}. + * + * Unlike {@link reactive}, there is no deep conversion: only root-level + * properties are reactive for a shallow reactive object. Property values are + * stored and exposed as-is - this also means properties with ref values will + * not be automatically unwrapped. + * + * @example + * ```js + * const state = shallowReactive({ + * foo: 1, + * nested: { + * bar: 2 + * } + * }) + * + * // mutating state's own properties is reactive + * state.foo++ + * + * // ...but does not convert nested objects + * isReactive(state.nested) // false + * + * // NOT reactive + * state.nested.bar++ + * ``` + * + * @param target - The source object. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive} + */ +export declare function shallowReactive<T extends object>(target: T): ShallowReactive<T>; +type Primitive = string | number | boolean | bigint | symbol | undefined | null; +type Builtin = Primitive | Function | Date | Error | RegExp; +export type DeepReadonly<T> = T extends Builtin ? T : T extends Map<infer K, infer V> ? ReadonlyMap<DeepReadonly<K>, DeepReadonly<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<DeepReadonly<K>, DeepReadonly<V>> : T extends WeakMap<infer K, infer V> ? WeakMap<DeepReadonly<K>, DeepReadonly<V>> : T extends Set<infer U> ? ReadonlySet<DeepReadonly<U>> : T extends ReadonlySet<infer U> ? ReadonlySet<DeepReadonly<U>> : T extends WeakSet<infer U> ? WeakSet<DeepReadonly<U>> : T extends Promise<infer U> ? Promise<DeepReadonly<U>> : T extends Ref<infer U, unknown> ? Readonly<Ref<DeepReadonly<U>>> : T extends {} ? { + readonly [K in keyof T]: DeepReadonly<T[K]>; +} : Readonly<T>; +/** + * Takes an object (reactive or plain) or a ref and returns a readonly proxy to + * the original. + * + * A readonly proxy is deep: any nested property accessed will be readonly as + * well. It also has the same ref-unwrapping behavior as {@link reactive}, + * except the unwrapped values will also be made readonly. + * + * @example + * ```js + * const original = reactive({ count: 0 }) + * + * const copy = readonly(original) + * + * watchEffect(() => { + * // works for reactivity tracking + * console.log(copy.count) + * }) + * + * // mutating original will trigger watchers relying on the copy + * original.count++ + * + * // mutating the copy will fail and result in a warning + * copy.count++ // warning! + * ``` + * + * @param target - The source object. + * @see {@link https://vuejs.org/api/reactivity-core.html#readonly} + */ +export declare function readonly<T extends object>(target: T): DeepReadonly<UnwrapNestedRefs<T>>; +/** + * Shallow version of {@link readonly}. + * + * Unlike {@link readonly}, there is no deep conversion: only root-level + * properties are made readonly. Property values are stored and exposed as-is - + * this also means properties with ref values will not be automatically + * unwrapped. + * + * @example + * ```js + * const state = shallowReadonly({ + * foo: 1, + * nested: { + * bar: 2 + * } + * }) + * + * // mutating state's own properties will fail + * state.foo++ + * + * // ...but works on nested objects + * isReadonly(state.nested) // false + * + * // works + * state.nested.bar++ + * ``` + * + * @param target - The source object. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly} + */ +export declare function shallowReadonly<T extends object>(target: T): Readonly<T>; +/** + * Checks if an object is a proxy created by {@link reactive} or + * {@link shallowReactive} (or {@link ref} in some cases). + * + * @example + * ```js + * isReactive(reactive({})) // => true + * isReactive(readonly(reactive({}))) // => true + * isReactive(ref({}).value) // => true + * isReactive(readonly(ref({})).value) // => true + * isReactive(ref(true)) // => false + * isReactive(shallowRef({}).value) // => false + * isReactive(shallowReactive({})) // => true + * ``` + * + * @param value - The value to check. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive} + */ +export declare function isReactive(value: unknown): boolean; +/** + * Checks whether the passed value is a readonly object. The properties of a + * readonly object can change, but they can't be assigned directly via the + * passed object. + * + * The proxies created by {@link readonly} and {@link shallowReadonly} are + * both considered readonly, as is a computed ref without a set function. + * + * @param value - The value to check. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly} + */ +export declare function isReadonly(value: unknown): boolean; +export declare function isShallow(value: unknown): boolean; +/** + * Checks if an object is a proxy created by {@link reactive}, + * {@link readonly}, {@link shallowReactive} or {@link shallowReadonly}. + * + * @param value - The value to check. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy} + */ +export declare function isProxy(value: any): boolean; +/** + * Returns the raw, original object of a Vue-created proxy. + * + * `toRaw()` can return the original object from proxies created by + * {@link reactive}, {@link readonly}, {@link shallowReactive} or + * {@link shallowReadonly}. + * + * This is an escape hatch that can be used to temporarily read without + * incurring proxy access / tracking overhead or write without triggering + * changes. It is **not** recommended to hold a persistent reference to the + * original object. Use with caution. + * + * @example + * ```js + * const foo = {} + * const reactiveFoo = reactive(foo) + * + * console.log(toRaw(reactiveFoo) === foo) // true + * ``` + * + * @param observed - The object for which the "raw" value is requested. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw} + */ +export declare function toRaw<T>(observed: T): T; +export type Raw<T> = T & { + [RawSymbol]?: true; +}; +/** + * Marks an object so that it will never be converted to a proxy. Returns the + * object itself. + * + * @example + * ```js + * const foo = markRaw({}) + * console.log(isReactive(reactive(foo))) // false + * + * // also works when nested inside other reactive objects + * const bar = reactive({ foo }) + * console.log(isReactive(bar.foo)) // false + * ``` + * + * **Warning:** `markRaw()` together with the shallow APIs such as + * {@link shallowReactive} allow you to selectively opt-out of the default + * deep reactive/readonly conversion and embed raw, non-proxied objects in your + * state graph. + * + * @param value - The object to be marked as "raw". + * @see {@link https://vuejs.org/api/reactivity-advanced.html#markraw} + */ +export declare function markRaw<T extends object>(value: T): Raw<T>; +/** + * Returns a reactive proxy of the given value (if possible). + * + * If the given value is not an object, the original value itself is returned. + * + * @param value - The value for which a reactive proxy shall be created. + */ +export declare const toReactive: <T extends unknown>(value: T) => T; +/** + * Returns a readonly proxy of the given value (if possible). + * + * If the given value is not an object, the original value itself is returned. + * + * @param value - The value for which a readonly proxy shall be created. + */ +export declare const toReadonly: <T extends unknown>(value: T) => DeepReadonly<T>; + +export type EffectScheduler = (...args: any[]) => any; +export type DebuggerEvent = { + effect: Subscriber; +} & DebuggerEventExtraInfo; +export type DebuggerEventExtraInfo = { + target: object; + type: TrackOpTypes | TriggerOpTypes; + key: any; + newValue?: any; + oldValue?: any; + oldTarget?: Map<any, any> | Set<any>; +}; +export interface DebuggerOptions { + onTrack?: (event: DebuggerEvent) => void; + onTrigger?: (event: DebuggerEvent) => void; +} +export interface ReactiveEffectOptions extends DebuggerOptions { + scheduler?: EffectScheduler; + allowRecurse?: boolean; + onStop?: () => void; +} +export interface ReactiveEffectRunner<T = any> { + (): T; + effect: ReactiveEffect; +} +export declare enum EffectFlags { + /** + * ReactiveEffect only + */ + ACTIVE = 1, + RUNNING = 2, + TRACKING = 4, + NOTIFIED = 8, + DIRTY = 16, + ALLOW_RECURSE = 32, + PAUSED = 64, + EVALUATED = 128 +} +/** + * Subscriber is a type that tracks (or subscribes to) a list of deps. + */ +interface Subscriber extends DebuggerOptions { +} +export declare class ReactiveEffect<T = any> implements Subscriber, ReactiveEffectOptions { + fn: () => T; + scheduler?: EffectScheduler; + onStop?: () => void; + onTrack?: (event: DebuggerEvent) => void; + onTrigger?: (event: DebuggerEvent) => void; + constructor(fn: () => T); + pause(): void; + resume(): void; + run(): T; + stop(): void; + trigger(): void; + get dirty(): boolean; +} +export declare function effect<T = any>(fn: () => T, options?: ReactiveEffectOptions): ReactiveEffectRunner<T>; +/** + * Stops the effect associated with the given runner. + * + * @param runner - Association with the effect to stop tracking. + */ +export declare function stop(runner: ReactiveEffectRunner): void; +/** + * Temporarily pauses tracking. + */ +export declare function pauseTracking(): void; +/** + * Re-enables effect tracking (if it was paused). + */ +export declare function enableTracking(): void; +/** + * Resets the previous global effect tracking state. + */ +export declare function resetTracking(): void; +/** + * Registers a cleanup function for the current active effect. + * The cleanup function is called right before the next effect run, or when the + * effect is stopped. + * + * Throws a warning if there is no current active effect. The warning can be + * suppressed by passing `true` to the second argument. + * + * @param fn - the cleanup function to be registered + * @param failSilently - if `true`, will not throw warning when called without + * an active effect. + */ +export declare function onEffectCleanup(fn: () => void, failSilently?: boolean): void; + +declare const ComputedRefSymbol: unique symbol; +declare const WritableComputedRefSymbol: unique symbol; +interface BaseComputedRef<T, S = T> extends Ref<T, S> { + [ComputedRefSymbol]: true; + /** + * @deprecated computed no longer uses effect + */ + effect: ComputedRefImpl; +} +export interface ComputedRef<T = any> extends BaseComputedRef<T> { + readonly value: T; +} +export interface WritableComputedRef<T, S = T> extends BaseComputedRef<T, S> { + [WritableComputedRefSymbol]: true; +} +export type ComputedGetter<T> = (oldValue?: T) => T; +export type ComputedSetter<T> = (newValue: T) => void; +export interface WritableComputedOptions<T, S = T> { + get: ComputedGetter<T>; + set: ComputedSetter<S>; +} +/** + * @private exported by @vue/reactivity for Vue core use, but not exported from + * the main vue package + */ +export declare class ComputedRefImpl<T = any> implements Subscriber { + fn: ComputedGetter<T>; + private readonly setter; + effect: this; + onTrack?: (event: DebuggerEvent) => void; + onTrigger?: (event: DebuggerEvent) => void; + constructor(fn: ComputedGetter<T>, setter: ComputedSetter<T> | undefined, isSSR: boolean); + get value(): T; + set value(newValue: T); +} +/** + * Takes a getter function and returns a readonly reactive ref object for the + * returned value from the getter. It can also take an object with get and set + * functions to create a writable ref object. + * + * @example + * ```js + * // Creating a readonly computed ref: + * const count = ref(1) + * const plusOne = computed(() => count.value + 1) + * + * console.log(plusOne.value) // 2 + * plusOne.value++ // error + * ``` + * + * ```js + * // Creating a writable computed ref: + * const count = ref(1) + * const plusOne = computed({ + * get: () => count.value + 1, + * set: (val) => { + * count.value = val - 1 + * } + * }) + * + * plusOne.value = 1 + * console.log(count.value) // 0 + * ``` + * + * @param getter - Function that produces the next value. + * @param debugOptions - For debugging. See {@link https://vuejs.org/guide/extras/reactivity-in-depth.html#computed-debugging}. + * @see {@link https://vuejs.org/api/reactivity-core.html#computed} + */ +export declare function computed<T>(getter: ComputedGetter<T>, debugOptions?: DebuggerOptions): ComputedRef<T>; +export declare function computed<T, S = T>(options: WritableComputedOptions<T, S>, debugOptions?: DebuggerOptions): WritableComputedRef<T, S>; + +declare const RefSymbol: unique symbol; +declare const RawSymbol: unique symbol; +export interface Ref<T = any, S = T> { + get value(): T; + set value(_: S); + /** + * Type differentiator only. + * We need this to be in public d.ts but don't want it to show up in IDE + * autocomplete, so we use a private Symbol instead. + */ + [RefSymbol]: true; +} +/** + * Checks if a value is a ref object. + * + * @param r - The value to inspect. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#isref} + */ +export declare function isRef<T>(r: Ref<T> | unknown): r is Ref<T>; +/** + * Takes an inner value and returns a reactive and mutable ref object, which + * has a single property `.value` that points to the inner value. + * + * @param value - The object to wrap in the ref. + * @see {@link https://vuejs.org/api/reactivity-core.html#ref} + */ +export declare function ref<T>(value: T): [T] extends [Ref] ? IfAny<T, Ref<T>, T> : Ref<UnwrapRef<T>, UnwrapRef<T> | T>; +export declare function ref<T = any>(): Ref<T | undefined>; +declare const ShallowRefMarker: unique symbol; +export type ShallowRef<T = any, S = T> = Ref<T, S> & { + [ShallowRefMarker]?: true; +}; +/** + * Shallow version of {@link ref}. + * + * @example + * ```js + * const state = shallowRef({ count: 1 }) + * + * // does NOT trigger change + * state.value.count = 2 + * + * // does trigger change + * state.value = { count: 2 } + * ``` + * + * @param value - The "inner value" for the shallow ref. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowref} + */ +export declare function shallowRef<T>(value: T): Ref extends T ? T extends Ref ? IfAny<T, ShallowRef<T>, T> : ShallowRef<T> : ShallowRef<T>; +export declare function shallowRef<T = any>(): ShallowRef<T | undefined>; +/** + * Force trigger effects that depends on a shallow ref. This is typically used + * after making deep mutations to the inner value of a shallow ref. + * + * @example + * ```js + * const shallow = shallowRef({ + * greet: 'Hello, world' + * }) + * + * // Logs "Hello, world" once for the first run-through + * watchEffect(() => { + * console.log(shallow.value.greet) + * }) + * + * // This won't trigger the effect because the ref is shallow + * shallow.value.greet = 'Hello, universe' + * + * // Logs "Hello, universe" + * triggerRef(shallow) + * ``` + * + * @param ref - The ref whose tied effects shall be executed. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#triggerref} + */ +export declare function triggerRef(ref: Ref): void; +export type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>; +export type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T); +/** + * Returns the inner value if the argument is a ref, otherwise return the + * argument itself. This is a sugar function for + * `val = isRef(val) ? val.value : val`. + * + * @example + * ```js + * function useFoo(x: number | Ref<number>) { + * const unwrapped = unref(x) + * // unwrapped is guaranteed to be number now + * } + * ``` + * + * @param ref - Ref or plain value to be converted into the plain value. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#unref} + */ +export declare function unref<T>(ref: MaybeRef<T> | ComputedRef<T>): T; +/** + * Normalizes values / refs / getters to values. + * This is similar to {@link unref}, except that it also normalizes getters. + * If the argument is a getter, it will be invoked and its return value will + * be returned. + * + * @example + * ```js + * toValue(1) // 1 + * toValue(ref(1)) // 1 + * toValue(() => 1) // 1 + * ``` + * + * @param source - A getter, an existing ref, or a non-function value. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#tovalue} + */ +export declare function toValue<T>(source: MaybeRefOrGetter<T>): T; +/** + * Returns a proxy for the given object that shallowly unwraps properties that + * are refs. If the object already is reactive, it's returned as-is. If not, a + * new reactive proxy is created. + * + * @param objectWithRefs - Either an already-reactive object or a simple object + * that contains refs. + */ +export declare function proxyRefs<T extends object>(objectWithRefs: T): ShallowUnwrapRef<T>; +export type CustomRefFactory<T> = (track: () => void, trigger: () => void) => { + get: () => T; + set: (value: T) => void; +}; +/** + * Creates a customized ref with explicit control over its dependency tracking + * and updates triggering. + * + * @param factory - The function that receives the `track` and `trigger` callbacks. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#customref} + */ +export declare function customRef<T>(factory: CustomRefFactory<T>): Ref<T>; +export type ToRefs<T = any> = { + [K in keyof T]: ToRef<T[K]>; +}; +/** + * Converts a reactive object to a plain object where each property of the + * resulting object is a ref pointing to the corresponding property of the + * original object. Each individual ref is created using {@link toRef}. + * + * @param object - Reactive object to be made into an object of linked refs. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs} + */ +export declare function toRefs<T extends object>(object: T): ToRefs<T>; +export type ToRef<T> = IfAny<T, Ref<T>, [T] extends [Ref] ? T : Ref<T>>; +/** + * Used to normalize values / refs / getters into refs. + * + * @example + * ```js + * // returns existing refs as-is + * toRef(existingRef) + * + * // creates a ref that calls the getter on .value access + * toRef(() => props.foo) + * + * // creates normal refs from non-function values + * // equivalent to ref(1) + * toRef(1) + * ``` + * + * Can also be used to create a ref for a property on a source reactive object. + * The created ref is synced with its source property: mutating the source + * property will update the ref, and vice-versa. + * + * @example + * ```js + * const state = reactive({ + * foo: 1, + * bar: 2 + * }) + * + * const fooRef = toRef(state, 'foo') + * + * // mutating the ref updates the original + * fooRef.value++ + * console.log(state.foo) // 2 + * + * // mutating the original also updates the ref + * state.foo++ + * console.log(fooRef.value) // 3 + * ``` + * + * @param source - A getter, an existing ref, a non-function value, or a + * reactive object to create a property ref from. + * @param [key] - (optional) Name of the property in the reactive object. + * @see {@link https://vuejs.org/api/reactivity-utilities.html#toref} + */ +export declare function toRef<T>(value: T): T extends () => infer R ? Readonly<Ref<R>> : T extends Ref ? T : Ref<UnwrapRef<T>>; +export declare function toRef<T extends object, K extends keyof T>(object: T, key: K): ToRef<T[K]>; +export declare function toRef<T extends object, K extends keyof T>(object: T, key: K, defaultValue: T[K]): ToRef<Exclude<T[K], undefined>>; +/** + * This is a special exported interface for other packages to declare + * additional types that should bail out for ref unwrapping. For example + * \@vue/runtime-dom can declare it like so in its d.ts: + * + * ``` ts + * declare module '@vue/reactivity' { + * export interface RefUnwrapBailTypes { + * runtimeDOMBailTypes: Node | Window + * } + * } + * ``` + */ +export interface RefUnwrapBailTypes { +} +export type ShallowUnwrapRef<T> = { + [K in keyof T]: DistributeRef<T[K]>; +}; +type DistributeRef<T> = T extends Ref<infer V, unknown> ? V : T; +export type UnwrapRef<T> = T extends ShallowRef<infer V, unknown> ? V : T extends Ref<infer V, unknown> ? UnwrapRefSimple<V> : UnwrapRefSimple<T>; +type UnwrapRefSimple<T> = T extends Builtin | Ref | RefUnwrapBailTypes[keyof RefUnwrapBailTypes] | { + [RawSymbol]?: true; +} ? T : T extends Map<infer K, infer V> ? Map<K, UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof Map<any, any>>> : T extends WeakMap<infer K, infer V> ? WeakMap<K, UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof WeakMap<any, any>>> : T extends Set<infer V> ? Set<UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof Set<any>>> : T extends WeakSet<infer V> ? WeakSet<UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof WeakSet<any>>> : T extends ReadonlyArray<any> ? { + [K in keyof T]: UnwrapRefSimple<T[K]>; +} : T extends object & { + [ShallowReactiveMarker]?: never; +} ? { + [P in keyof T]: P extends symbol ? T[P] : UnwrapRef<T[P]>; +} : T; + +export declare const ITERATE_KEY: unique symbol; +export declare const MAP_KEY_ITERATE_KEY: unique symbol; +export declare const ARRAY_ITERATE_KEY: unique symbol; +/** + * Tracks access to a reactive property. + * + * This will check which effect is running at the moment and record it as dep + * which records all effects that depend on the reactive property. + * + * @param target - Object holding the reactive property. + * @param type - Defines the type of access to the reactive property. + * @param key - Identifier of the reactive property to track. + */ +export declare function track(target: object, type: TrackOpTypes, key: unknown): void; +/** + * Finds all deps associated with the target (or a specific property) and + * triggers the effects stored within. + * + * @param target - The reactive object. + * @param type - Defines the type of the operation that needs to trigger effects. + * @param key - Can be used to target a specific reactive property in the target object. + */ +export declare function trigger(target: object, type: TriggerOpTypes, key?: unknown, newValue?: unknown, oldValue?: unknown, oldTarget?: Map<unknown, unknown> | Set<unknown>): void; + +export declare class EffectScope { + detached: boolean; + private _isPaused; + readonly __v_skip = true; + constructor(detached?: boolean); + get active(): boolean; + pause(): void; + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume(): void; + run<T>(fn: () => T): T | undefined; + prevScope: EffectScope | undefined; + stop(fromParent?: boolean): void; +} +/** + * Creates an effect scope object which can capture the reactive effects (i.e. + * computed and watchers) created within it so that these effects can be + * disposed together. For detailed use cases of this API, please consult its + * corresponding {@link https://github.com/vuejs/rfcs/blob/master/active-rfcs/0041-reactivity-effect-scope.md | RFC}. + * + * @param detached - Can be used to create a "detached" effect scope. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#effectscope} + */ +export declare function effectScope(detached?: boolean): EffectScope; +/** + * Returns the current active effect scope if there is one. + * + * @see {@link https://vuejs.org/api/reactivity-advanced.html#getcurrentscope} + */ +export declare function getCurrentScope(): EffectScope | undefined; +/** + * Registers a dispose callback on the current active effect scope. The + * callback will be invoked when the associated effect scope is stopped. + * + * @param fn - The callback function to attach to the scope's cleanup. + * @see {@link https://vuejs.org/api/reactivity-advanced.html#onscopedispose} + */ +export declare function onScopeDispose(fn: () => void, failSilently?: boolean): void; + +/** + * Track array iteration and return: + * - if input is reactive: a cloned raw array with reactive values + * - if input is non-reactive or shallowReactive: the original raw array + */ +export declare function reactiveReadArray<T>(array: T[]): T[]; +/** + * Track array iteration and return raw array + */ +export declare function shallowReadArray<T>(arr: T[]): T[]; + +export declare enum WatchErrorCodes { + WATCH_GETTER = 2, + WATCH_CALLBACK = 3, + WATCH_CLEANUP = 4 +} +export type WatchEffect = (onCleanup: OnCleanup) => void; +export type WatchSource<T = any> = Ref<T, any> | ComputedRef<T> | (() => T); +export type WatchCallback<V = any, OV = any> = (value: V, oldValue: OV, onCleanup: OnCleanup) => any; +export type OnCleanup = (cleanupFn: () => void) => void; +export interface WatchOptions<Immediate = boolean> extends DebuggerOptions { + immediate?: Immediate; + deep?: boolean | number; + once?: boolean; + scheduler?: WatchScheduler; + onWarn?: (msg: string, ...args: any[]) => void; +} +export type WatchStopHandle = () => void; +export interface WatchHandle extends WatchStopHandle { + pause: () => void; + resume: () => void; + stop: () => void; +} +export type WatchScheduler = (job: () => void, isFirstRun: boolean) => void; +/** + * Returns the current active effect if there is one. + */ +export declare function getCurrentWatcher(): ReactiveEffect<any> | undefined; +/** + * Registers a cleanup callback on the current active effect. This + * registered cleanup callback will be invoked right before the + * associated effect re-runs. + * + * @param cleanupFn - The callback function to attach to the effect's cleanup. + * @param failSilently - if `true`, will not throw warning when called without + * an active effect. + * @param owner - The effect that this cleanup function should be attached to. + * By default, the current active effect. + */ +export declare function onWatcherCleanup(cleanupFn: () => void, failSilently?: boolean, owner?: ReactiveEffect | undefined): void; +export declare function watch(source: WatchSource | WatchSource[] | WatchEffect | object, cb?: WatchCallback | null, options?: WatchOptions): WatchHandle; +export declare function traverse(value: unknown, depth?: number, seen?: Map<unknown, number>): unknown; + + diff --git a/node_modules/@vue/reactivity/dist/reactivity.esm-browser.js b/node_modules/@vue/reactivity/dist/reactivity.esm-browser.js new file mode 100644 index 0000000..38c5d2b --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.esm-browser.js @@ -0,0 +1,2024 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const NOOP = () => { +}; +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; + +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} + +let activeSub; +const EffectFlags = { + "ACTIVE": 1, + "1": "ACTIVE", + "RUNNING": 2, + "2": "RUNNING", + "TRACKING": 4, + "4": "TRACKING", + "NOTIFIED": 8, + "8": "NOTIFIED", + "DIRTY": 16, + "16": "DIRTY", + "ALLOW_RECURSE": 32, + "32": "ALLOW_RECURSE", + "PAUSED": 64, + "64": "PAUSED", + "EVALUATED": 128, + "128": "EVALUATED" +}; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function onEffectCleanup(fn, failSilently = false) { + if (activeSub instanceof ReactiveEffect) { + activeSub.cleanup = fn; + } else if (!failSilently) { + warn( + `onEffectCleanup() was called when there was no active effect to associate with.` + ); + } +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + if (!isProxy(object)) { + warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; +const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw", + "IS_REF": "__v_isRef" +}; + +const WatchErrorCodes = { + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP" +}; +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +export { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch }; diff --git a/node_modules/@vue/reactivity/dist/reactivity.esm-browser.prod.js b/node_modules/@vue/reactivity/dist/reactivity.esm-browser.prod.js new file mode 100644 index 0000000..ca0204a --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.esm-browser.prod.js @@ -0,0 +1,5 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let e,t,i,s,r;let n={},l=()=>{},o=Object.assign,a=Object.prototype.hasOwnProperty,u=Array.isArray,c=e=>"symbol"==typeof e,h=e=>null!==e&&"object"==typeof e,f=Object.prototype.toString,p=e=>"string"==typeof e&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e;class _{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=e,!t&&e&&(this.index=(e.scopes||(e.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(t){if(this._active){let i=e;try{return e=this,t()}finally{e=i}}}on(){1==++this._on&&(this.prevScope=e,e=this)}off(){this._on>0&&0==--this._on&&(e=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,i;for(t=0,this._active=!1,i=this.effects.length;t<i;t++)this.effects[t].stop();for(t=0,this.effects.length=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,i=this.scopes.length;t<i;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}function d(e){return new _(e)}function v(){return e}function g(t,i=!1){e&&e.cleanups.push(t)}let y={ACTIVE:1,1:"ACTIVE",RUNNING:2,2:"RUNNING",TRACKING:4,4:"TRACKING",NOTIFIED:8,8:"NOTIFIED",DIRTY:16,16:"DIRTY",ALLOW_RECURSE:32,32:"ALLOW_RECURSE",PAUSED:64,64:"PAUSED",EVALUATED:128,128:"EVALUATED"},b=new WeakSet;class w{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,e&&e.active&&e.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,b.has(this)&&(b.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||S(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,N(this),x(this);let e=t,i=j;t=this,j=!0;try{return this.fn()}finally{k(this),t=e,j=i,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)m(e);this.deps=this.depsTail=void 0,N(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?b.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){T(this)&&this.run()}get dirty(){return T(this)}}let R=0;function S(e,t=!1){if(e.flags|=8,t){e.next=s,s=e;return}e.next=i,i=e}function E(){let e;if(!(--R>0)){if(s){let e=s;for(s=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;i;){let t=i;for(i=void 0;t;){let i=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=i}}if(e)throw e}}function x(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function k(e){let t,i=e.depsTail,s=i;for(;s;){let e=s.prevDep;-1===s.version?(s===i&&(i=e),m(s),function(e){let{prevDep:t,nextDep:i}=e;t&&(t.nextDep=i,e.prevDep=void 0),i&&(i.prevDep=t,e.nextDep=void 0)}(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=e}e.deps=t,e.depsTail=i}function T(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(A(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function A(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===M)||(e.globalVersion=M,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!T(e))))return;e.flags|=2;let i=e.dep,s=t,r=j;t=e,j=!0;try{let t;x(e);let s=e.fn(e._value);(0===i.version||(t=e._value,!Object.is(s,t)))&&(e.flags|=128,e._value=s,i.version++)}catch(e){throw i.version++,e}finally{t=s,j=r,k(e),e.flags&=-3}}function m(e,t=!1){let{dep:i,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),i.subs===e&&(i.subs=s,!s&&i.computed)){i.computed.flags&=-5;for(let e=i.computed.deps;e;e=e.nextDep)m(e,!0)}t||--i.sc||!i.map||i.map.delete(i.key)}function O(e,t){e.effect instanceof w&&(e=e.effect.fn);let i=new w(e);t&&o(i,t);try{i.run()}catch(e){throw i.stop(),e}let s=i.run.bind(i);return s.effect=i,s}function D(e){e.effect.stop()}let j=!0,I=[];function L(){I.push(j),j=!1}function P(){I.push(j),j=!0}function C(){let e=I.pop();j=void 0===e||e}function W(e,i=!1){t instanceof w&&(t.cleanup=e)}function N(e){let{cleanup:i}=e;if(e.cleanup=void 0,i){let e=t;t=void 0;try{i()}finally{t=e}}}let M=0;class V{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class K{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!t||!j||t===this.computed)return;let i=this.activeLink;if(void 0===i||i.sub!==t)i=this.activeLink=new V(t,this),t.deps?(i.prevDep=t.depsTail,t.depsTail.nextDep=i,t.depsTail=i):t.deps=t.depsTail=i,function e(t){if(t.dep.sc++,4&t.sub.flags){let i=t.dep.computed;if(i&&!t.dep.subs){i.flags|=20;for(let t=i.deps;t;t=t.nextDep)e(t)}let s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}(i);else if(-1===i.version&&(i.version=this.version,i.nextDep)){let e=i.nextDep;e.prevDep=i.prevDep,i.prevDep&&(i.prevDep.nextDep=e),i.prevDep=t.depsTail,i.nextDep=void 0,t.depsTail.nextDep=i,t.depsTail=i,t.deps===i&&(t.deps=e)}return i}trigger(e){this.version++,M++,this.notify(e)}notify(e){R++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{E()}}}let U=new WeakMap,H=Symbol(""),Y=Symbol(""),G=Symbol("");function F(e,i,s){if(j&&t){let t=U.get(e);t||U.set(e,t=new Map);let i=t.get(s);i||(t.set(s,i=new K),i.map=t,i.key=s),i.track()}}function z(e,t,i,s,r,n){let l=U.get(e);if(!l)return void M++;let o=e=>{e&&e.trigger()};if(R++,"clear"===t)l.forEach(o);else{let r=u(e),n=r&&p(i);if(r&&"length"===i){let e=Number(s);l.forEach((t,i)=>{("length"===i||i===G||!c(i)&&i>=e)&&o(t)})}else switch((void 0!==i||l.has(void 0))&&o(l.get(i)),n&&o(l.get(G)),t){case"add":if(r)n&&o(l.get("length"));else{let t;o(l.get(H));"[object Map]"===(t=e,f.call(t))&&o(l.get(Y))}break;case"delete":if(!r){let t;o(l.get(H));"[object Map]"===(t=e,f.call(t))&&o(l.get(Y))}break;case"set":let a;"[object Map]"===(a=e,f.call(a))&&o(l.get(H))}}E()}function B(e){let t=eL(e);return t===e?t:(F(t,"iterate",G),ej(e)?t:t.map(eC))}function q(e){return F(e=eL(e),"iterate",G),e}function J(e,t){return eD(e)?eO(e)?eW(eC(t)):eW(t):eC(t)}let Q={__proto__:null,[Symbol.iterator](){return X(this,Symbol.iterator,e=>J(this,e))},concat(...e){return B(this).concat(...e.map(e=>u(e)?B(e):e))},entries(){return X(this,"entries",e=>(e[1]=J(this,e[1]),e))},every(e,t){return $(this,"every",e,t,void 0,arguments)},filter(e,t){return $(this,"filter",e,t,e=>e.map(e=>J(this,e)),arguments)},find(e,t){return $(this,"find",e,t,e=>J(this,e),arguments)},findIndex(e,t){return $(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return $(this,"findLast",e,t,e=>J(this,e),arguments)},findLastIndex(e,t){return $(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return $(this,"forEach",e,t,void 0,arguments)},includes(...e){return et(this,"includes",e)},indexOf(...e){return et(this,"indexOf",e)},join(e){return B(this).join(e)},lastIndexOf(...e){return et(this,"lastIndexOf",e)},map(e,t){return $(this,"map",e,t,void 0,arguments)},pop(){return ei(this,"pop")},push(...e){return ei(this,"push",e)},reduce(e,...t){return ee(this,"reduce",e,t)},reduceRight(e,...t){return ee(this,"reduceRight",e,t)},shift(){return ei(this,"shift")},some(e,t){return $(this,"some",e,t,void 0,arguments)},splice(...e){return ei(this,"splice",e)},toReversed(){return B(this).toReversed()},toSorted(e){return B(this).toSorted(e)},toSpliced(...e){return B(this).toSpliced(...e)},unshift(...e){return ei(this,"unshift",e)},values(){return X(this,"values",e=>J(this,e))}};function X(e,t,i){let s=q(e),r=s[t]();return s===e||ej(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=i(e.value)),e}),r}let Z=Array.prototype;function $(e,t,i,s,r,n){let l=q(e),o=l!==e&&!ej(e),a=l[t];if(a!==Z[t]){let t=a.apply(e,n);return o?eC(t):t}let u=i;l!==e&&(o?u=function(t,s){return i.call(this,J(e,t),s,e)}:i.length>2&&(u=function(t,s){return i.call(this,t,s,e)}));let c=a.call(l,u,s);return o&&r?r(c):c}function ee(e,t,i,s){let r=q(e),n=i;return r!==e&&(ej(e)?i.length>3&&(n=function(t,s,r){return i.call(this,t,s,r,e)}):n=function(t,s,r){return i.call(this,t,J(e,s),r,e)}),r[t](n,...s)}function et(e,t,i){let s=eL(e);F(s,"iterate",G);let r=s[t](...i);return(-1===r||!1===r)&&eI(i[0])?(i[0]=eL(i[0]),s[t](...i)):r}function ei(e,t,i=[]){L(),R++;let s=eL(e)[t].apply(e,i);return E(),C(),s}let es=function(e){let t=Object.create(null);for(let i of e.split(","))t[i]=1;return e=>e in t}("__proto__,__v_isRef,__isVue"),er=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(c));function en(e){c(e)||(e=String(e));let t=eL(this);return F(t,"has",e),t.hasOwnProperty(e)}class el{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if("__v_skip"===t)return e.__v_skip;let s=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!s;if("__v_isReadonly"===t)return s;if("__v_isShallow"===t)return r;if("__v_raw"===t)return i===(s?r?eE:eS:r?eR:ew).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;let n=u(e);if(!s){let e;if(n&&(e=Q[t]))return e;if("hasOwnProperty"===t)return en}let l=Reflect.get(e,t,eN(e)?e:i);if((c(t)?er.has(t):es(t))||(s||F(e,"get",t),r))return l;if(eN(l)){let e=n&&p(t)?l:l.value;return s&&h(e)?eT(e):e}return h(l)?s?eT(l):ex(l):l}}class eo extends el{constructor(e=!1){super(!1,e)}set(e,t,i,s){let r=e[t],n=u(e)&&p(t);if(!this._isShallow){let e=eD(r);if(ej(i)||eD(i)||(r=eL(r),i=eL(i)),!n&&eN(r)&&!eN(i))if(e)return!0;else return r.value=i,!0}let l=n?Number(t)<e.length:a.call(e,t),o=Reflect.set(e,t,i,eN(e)?e:s);return e===eL(s)&&(l?Object.is(i,r)||z(e,"set",t,i):z(e,"add",t,i)),o}deleteProperty(e,t){let i=a.call(e,t);e[t];let s=Reflect.deleteProperty(e,t);return s&&i&&z(e,"delete",t,void 0),s}has(e,t){let i=Reflect.has(e,t);return c(t)&&er.has(t)||F(e,"has",t),i}ownKeys(e){return F(e,"iterate",u(e)?"length":H),Reflect.ownKeys(e)}}class ea extends el{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let eu=new eo,ec=new ea,eh=new eo(!0),ef=new ea(!0),ep=e=>e;function e_(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function ed(e,t){let i,s=(o(i={get(i){let s=this.__v_raw,r=eL(s),n=eL(i);e||(Object.is(i,n)||F(r,"get",i),F(r,"get",n));let{has:l}=Reflect.getPrototypeOf(r),o=t?ep:e?eW:eC;return l.call(r,i)?o(s.get(i)):l.call(r,n)?o(s.get(n)):void(s!==r&&s.get(i))},get size(){let t=this.__v_raw;return e||F(eL(t),"iterate",H),t.size},has(t){let i=this.__v_raw,s=eL(i),r=eL(t);return e||(Object.is(t,r)||F(s,"has",t),F(s,"has",r)),t===r?i.has(t):i.has(t)||i.has(r)},forEach(i,s){let r=this,n=r.__v_raw,l=eL(n),o=t?ep:e?eW:eC;return e||F(l,"iterate",H),n.forEach((e,t)=>i.call(s,o(e),o(t),r))}},e?{add:e_("add"),set:e_("set"),delete:e_("delete"),clear:e_("clear")}:{add(e){t||ej(e)||eD(e)||(e=eL(e));let i=eL(this);return Reflect.getPrototypeOf(i).has.call(i,e)||(i.add(e),z(i,"add",e,e)),this},set(e,i){t||ej(i)||eD(i)||(i=eL(i));let s=eL(this),{has:r,get:n}=Reflect.getPrototypeOf(s),l=r.call(s,e);l||(e=eL(e),l=r.call(s,e));let o=n.call(s,e);return(s.set(e,i),l)?Object.is(i,o)||z(s,"set",e,i):z(s,"add",e,i),this},delete(e){let t=eL(this),{has:i,get:s}=Reflect.getPrototypeOf(t),r=i.call(t,e);r||(e=eL(e),r=i.call(t,e)),s&&s.call(t,e);let n=t.delete(e);return r&&z(t,"delete",e,void 0),n},clear(){let e=eL(this),t=0!==e.size,i=e.clear();return t&&z(e,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{i[s]=function(...i){let r,n=this.__v_raw,l=eL(n),a="[object Map]"===(r=l,f.call(r)),u="entries"===s||s===Symbol.iterator&&a,c=n[s](...i),h=t?ep:e?eW:eC;return e||F(l,"iterate","keys"===s&&a?Y:H),o(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:u?[h(e[0]),h(e[1])]:h(e),done:t}}})}}),i);return(t,i,r)=>"__v_isReactive"===i?!e:"__v_isReadonly"===i?e:"__v_raw"===i?t:Reflect.get(a.call(s,i)&&i in t?s:t,i,r)}let ev={get:ed(!1,!1)},eg={get:ed(!1,!0)},ey={get:ed(!0,!1)},eb={get:ed(!0,!0)},ew=new WeakMap,eR=new WeakMap,eS=new WeakMap,eE=new WeakMap;function ex(e){return eD(e)?e:em(e,!1,eu,ev,ew)}function ek(e){return em(e,!1,eh,eg,eR)}function eT(e){return em(e,!0,ec,ey,eS)}function eA(e){return em(e,!0,ef,eb,eE)}function em(e,t,i,s,r){var n;let l;if(!h(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(n=e).__v_skip||!Object.isExtensible(n)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((l=n,f.call(l)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?s:i);return r.set(e,u),u}function eO(e){return eD(e)?eO(e.__v_raw):!!(e&&e.__v_isReactive)}function eD(e){return!!(e&&e.__v_isReadonly)}function ej(e){return!!(e&&e.__v_isShallow)}function eI(e){return!!e&&!!e.__v_raw}function eL(e){let t=e&&e.__v_raw;return t?eL(t):e}function eP(e){return!a.call(e,"__v_skip")&&Object.isExtensible(e)&&((e,t,i,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:i})})(e,"__v_skip",!0),e}let eC=e=>h(e)?ex(e):e,eW=e=>h(e)?eT(e):e;function eN(e){return!!e&&!0===e.__v_isRef}function eM(e){return eK(e,!1)}function eV(e){return eK(e,!0)}function eK(e,t){return eN(e)?e:new eU(e,t)}class eU{constructor(e,t){this.dep=new K,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:eL(e),this._value=t?e:eC(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,i=this.__v_isShallow||ej(e)||eD(e);Object.is(e=i?e:eL(e),t)||(this._rawValue=e,this._value=i?e:eC(e),this.dep.trigger())}}function eH(e){e.dep&&e.dep.trigger()}function eY(e){return eN(e)?e.value:e}function eG(e){return"function"==typeof e?e():eY(e)}let eF={get:(e,t,i)=>"__v_raw"===t?e:eY(Reflect.get(e,t,i)),set:(e,t,i,s)=>{let r=e[t];return eN(r)&&!eN(i)?(r.value=i,!0):Reflect.set(e,t,i,s)}};function ez(e){return eO(e)?e:new Proxy(e,eF)}class eB{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new K,{get:i,set:s}=e(t.track.bind(t),t.trigger.bind(t));this._get=i,this._set=s}get value(){return this._value=this._get()}set value(e){this._set(e)}}function eq(e){return new eB(e)}function eJ(e){let t=u(e)?Array(e.length):{};for(let i in e)t[i]=new eQ(e,i,void 0);return t}class eQ{constructor(e,t,i){this._object=e,this._key=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._raw=eL(e);let s=!0,r=e;if(!u(e)||!p(String(t)))do s=!eI(r)||ej(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let e=this._object[this._key];return this._shallow&&(e=eY(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&eN(this._raw[this._key])){let t=this._object[this._key];if(eN(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let i;return e=this._raw,t=this._key,(i=U.get(e))&&i.get(t)}}class eX{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function eZ(e,t,i){if(eN(e))return e;if("function"==typeof e)return new eX(e);if(!h(e)||!(arguments.length>1))return eM(e);return new eQ(e,t,i)}class e${constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new K(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=M-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(8&this.flags)&&t!==this)return S(this,!0),!0}get value(){let e=this.dep.track();return A(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function e0(e,t,i=!1){let s,r;return"function"==typeof e?s=e:(s=e.get,r=e.set),new e$(s,r,i)}let e1={GET:"get",HAS:"has",ITERATE:"iterate"},e2={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e4={SKIP:"__v_skip",IS_REACTIVE:"__v_isReactive",IS_READONLY:"__v_isReadonly",IS_SHALLOW:"__v_isShallow",RAW:"__v_raw",IS_REF:"__v_isRef"},e6={WATCH_GETTER:2,2:"WATCH_GETTER",WATCH_CALLBACK:3,3:"WATCH_CALLBACK",WATCH_CLEANUP:4,4:"WATCH_CLEANUP"},e3={},e8=new WeakMap;function e5(){return r}function e9(e,t=!1,i=r){if(i){let t=e8.get(i);t||e8.set(i,t=[]),t.push(e)}}function e7(e,t,i=n){let s,o,a,c,{immediate:h,deep:f,once:p,scheduler:_,augmentJob:d,call:g}=i,y=e=>f?e:ej(e)||!1===f||0===f?te(e,1):te(e),b=!1,R=!1;if(eN(e)?(o=()=>e.value,b=ej(e)):eO(e)?(o=()=>y(e),b=!0):u(e)?(R=!0,b=e.some(e=>eO(e)||ej(e)),o=()=>e.map(e=>eN(e)?e.value:eO(e)?y(e):"function"==typeof e?g?g(e,2):e():void 0)):o="function"==typeof e?t?g?()=>g(e,2):e:()=>{if(a){L();try{a()}finally{C()}}let t=r;r=s;try{return g?g(e,3,[c]):e(c)}finally{r=t}}:l,t&&f){let e=o,t=!0===f?1/0:f;o=()=>te(e(),t)}let S=v(),E=()=>{var e,t;let i;s.stop(),S&&S.active&&(e=S.effects,t=s,(i=e.indexOf(t))>-1&&e.splice(i,1))};if(p&&t){let e=t;t=(...t)=>{e(...t),E()}}let x=R?Array(e.length).fill(e3):e3,k=e=>{if(1&s.flags&&(s.dirty||e))if(t){let e=s.run();if(f||b||(R?e.some((e,t)=>!Object.is(e,x[t])):!Object.is(e,x))){a&&a();let i=r;r=s;try{let i=[e,x===e3?void 0:R&&x[0]===e3?[]:x,c];x=e,g?g(t,3,i):t(...i)}finally{r=i}}}else s.run()};return d&&d(k),(s=new w(o)).scheduler=_?()=>_(k,!1):k,c=e=>e9(e,!1,s),a=s.onStop=()=>{let e=e8.get(s);if(e){if(g)g(e,4);else for(let t of e)t();e8.delete(s)}},t?h?k(!0):x=s.run():_?_(k.bind(null,!0),!0):s.run(),E.pause=s.pause.bind(s),E.resume=s.resume.bind(s),E.stop=E,E}function te(e,t=1/0,i){if(t<=0||!h(e)||e.__v_skip||((i=i||new Map).get(e)||0)>=t)return e;if(i.set(e,t),t--,eN(e))te(e.value,t,i);else if(u(e))for(let s=0;s<e.length;s++)te(e[s],t,i);else{let s,r;if("[object Set]"===(s=e,f.call(s))||"[object Map]"===(r=e,f.call(r)))e.forEach(e=>{te(e,t,i)});else{let s;if("[object Object]"===(s=e,f.call(s))){for(let s in e)te(e[s],t,i);for(let s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&te(e[s],t,i)}}}return e}export{G as ARRAY_ITERATE_KEY,y as EffectFlags,_ as EffectScope,H as ITERATE_KEY,Y as MAP_KEY_ITERATE_KEY,w as ReactiveEffect,e4 as ReactiveFlags,e1 as TrackOpTypes,e2 as TriggerOpTypes,e6 as WatchErrorCodes,e0 as computed,eq as customRef,O as effect,d as effectScope,P as enableTracking,v as getCurrentScope,e5 as getCurrentWatcher,eI as isProxy,eO as isReactive,eD as isReadonly,eN as isRef,ej as isShallow,eP as markRaw,W as onEffectCleanup,g as onScopeDispose,e9 as onWatcherCleanup,L as pauseTracking,ez as proxyRefs,ex as reactive,B as reactiveReadArray,eT as readonly,eM as ref,C as resetTracking,ek as shallowReactive,q as shallowReadArray,eA as shallowReadonly,eV as shallowRef,D as stop,eL as toRaw,eC as toReactive,eW as toReadonly,eZ as toRef,eJ as toRefs,eG as toValue,F as track,te as traverse,z as trigger,eH as triggerRef,eY as unref,e7 as watch}; diff --git a/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js b/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js new file mode 100644 index 0000000..eb936d8 --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js @@ -0,0 +1,1983 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared'; + +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!!(process.env.NODE_ENV !== "production") && !failSilently) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} + +let activeSub; +const EffectFlags = { + "ACTIVE": 1, + "1": "ACTIVE", + "RUNNING": 2, + "2": "RUNNING", + "TRACKING": 4, + "4": "TRACKING", + "NOTIFIED": 8, + "8": "NOTIFIED", + "DIRTY": 16, + "16": "DIRTY", + "ALLOW_RECURSE": 32, + "32": "ALLOW_RECURSE", + "PAUSED": 64, + "64": "PAUSED", + "EVALUATED": 128, + "128": "EVALUATED" +}; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (!!(process.env.NODE_ENV !== "production") && activeSub !== this) { + warn( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (!!(process.env.NODE_ENV !== "production") && dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function onEffectCleanup(fn, failSilently = false) { + if (activeSub instanceof ReactiveEffect) { + activeSub.cleanup = fn; + } else if (!!(process.env.NODE_ENV !== "production") && !failSilently) { + warn( + `onEffectCleanup() was called when there was no active effect to associate with.` + ); + } +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + if (!!(process.env.NODE_ENV !== "production")) { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (!!(process.env.NODE_ENV !== "production") && activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (!!(process.env.NODE_ENV !== "production")) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (!!(process.env.NODE_ENV !== "production") && link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? "Object iterate" : "" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? "Map keys iterate" : "" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + !!(process.env.NODE_ENV !== "production") ? "Array iterate" : "" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + if (!!(process.env.NODE_ENV !== "production")) { + dep.track({ + target, + type, + key + }); + } else { + dep.track(); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + if (!!(process.env.NODE_ENV !== "production")) { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } else { + dep.trigger(); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + if (!!(process.env.NODE_ENV !== "production")) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + if (!!(process.env.NODE_ENV !== "production")) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + if (!!(process.env.NODE_ENV !== "production")) { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (!!(process.env.NODE_ENV !== "production")) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else if (!!(process.env.NODE_ENV !== "production")) { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else if (!!(process.env.NODE_ENV !== "production")) { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = !!(process.env.NODE_ENV !== "production") ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (!!(process.env.NODE_ENV !== "production")) { + warn( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + if (!!(process.env.NODE_ENV !== "production")) { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } else { + this.dep.track(); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + if (!!(process.env.NODE_ENV !== "production")) { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } else { + this.dep.trigger(); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + if (!!(process.env.NODE_ENV !== "production")) { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } else { + ref2.dep.trigger(); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + if (!!(process.env.NODE_ENV !== "production") && !isProxy(object)) { + warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } else if (!!(process.env.NODE_ENV !== "production")) ; + } + get value() { + const link = !!(process.env.NODE_ENV !== "production") ? this.dep.track({ + target: this, + type: "get", + key: "value" + }) : this.dep.track(); + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (!!(process.env.NODE_ENV !== "production") && debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; +const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw", + "IS_REF": "__v_isRef" +}; + +const WatchErrorCodes = { + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP" +}; +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!!(process.env.NODE_ENV !== "production") && !failSilently) { + warn( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + !!(process.env.NODE_ENV !== "production") && warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + !!(process.env.NODE_ENV !== "production") && warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + if (!!(process.env.NODE_ENV !== "production")) { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +export { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch }; diff --git a/node_modules/@vue/reactivity/dist/reactivity.global.js b/node_modules/@vue/reactivity/dist/reactivity.global.js new file mode 100644 index 0000000..fa2d3b5 --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.global.js @@ -0,0 +1,2080 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var VueReactivity = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const NOOP = () => { + }; + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); + }; + + function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + let activeSub; + const EffectFlags = { + "ACTIVE": 1, + "1": "ACTIVE", + "RUNNING": 2, + "2": "RUNNING", + "TRACKING": 4, + "4": "TRACKING", + "NOTIFIED": 8, + "8": "NOTIFIED", + "DIRTY": 16, + "16": "DIRTY", + "ALLOW_RECURSE": 32, + "32": "ALLOW_RECURSE", + "PAUSED": 64, + "64": "PAUSED", + "EVALUATED": 128, + "128": "EVALUATED" + }; + const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); + class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } + } + let batchDepth = 0; + let batchedSub; + let batchedComputed; + function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; + } + function startBatch() { + batchDepth++; + } + function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; + } + function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } + } + function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; + } + function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; + } + function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } + } + function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } + } + function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function onEffectCleanup(fn, failSilently = false) { + if (activeSub instanceof ReactiveEffect) { + activeSub.cleanup = fn; + } else if (!failSilently) { + warn( + `onEffectCleanup() was called when there was no active effect to associate with.` + ); + } + } + function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } + } + + let globalVersion = 0; + class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } + } + class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } + } + function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } + } + const targetMap = /* @__PURE__ */ new WeakMap(); + const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" + ); + const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" + ); + const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" + ); + function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); + } + function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); + } + + function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); + } + function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; + } + function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); + } + const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } + }; + function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; + } + const arrayProto = Array.prototype; + function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; + } + function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); + } + function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; + } + function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; + } + function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; + } + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + // @__NO_SIDE_EFFECTS__ + function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + // @__NO_SIDE_EFFECTS__ + function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + // @__NO_SIDE_EFFECTS__ + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + // @__NO_SIDE_EFFECTS__ + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + // @__NO_SIDE_EFFECTS__ + function isProxy(value) { + return value ? !!value["__v_raw"] : false; + } + // @__NO_SIDE_EFFECTS__ + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; + } + function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; + } + const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; + const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + + // @__NO_SIDE_EFFECTS__ + function isRef(r) { + return r ? r["__v_isRef"] === true : false; + } + // @__NO_SIDE_EFFECTS__ + function ref(value) { + return createRef(value, false); + } + // @__NO_SIDE_EFFECTS__ + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } + } + function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } + } + function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + // @__NO_SIDE_EFFECTS__ + function toRefs(object) { + if (!isProxy(object)) { + warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } + } + // @__NO_SIDE_EFFECTS__ + function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn("Write operation failed: computed value is readonly"); + } + } + } + // @__NO_SIDE_EFFECTS__ + function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" + }; + const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" + }; + const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw", + "IS_REF": "__v_isRef" + }; + + const WatchErrorCodes = { + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP" + }; + const INITIAL_WATCHER_VALUE = {}; + const cleanupMap = /* @__PURE__ */ new WeakMap(); + let activeWatcher = void 0; + function getCurrentWatcher() { + return activeWatcher; + } + function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } + } + function watch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; + } + function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; + } + + exports.ARRAY_ITERATE_KEY = ARRAY_ITERATE_KEY; + exports.EffectFlags = EffectFlags; + exports.EffectScope = EffectScope; + exports.ITERATE_KEY = ITERATE_KEY; + exports.MAP_KEY_ITERATE_KEY = MAP_KEY_ITERATE_KEY; + exports.ReactiveEffect = ReactiveEffect; + exports.ReactiveFlags = ReactiveFlags; + exports.TrackOpTypes = TrackOpTypes; + exports.TriggerOpTypes = TriggerOpTypes; + exports.WatchErrorCodes = WatchErrorCodes; + exports.computed = computed; + exports.customRef = customRef; + exports.effect = effect; + exports.effectScope = effectScope; + exports.enableTracking = enableTracking; + exports.getCurrentScope = getCurrentScope; + exports.getCurrentWatcher = getCurrentWatcher; + exports.isProxy = isProxy; + exports.isReactive = isReactive; + exports.isReadonly = isReadonly; + exports.isRef = isRef; + exports.isShallow = isShallow; + exports.markRaw = markRaw; + exports.onEffectCleanup = onEffectCleanup; + exports.onScopeDispose = onScopeDispose; + exports.onWatcherCleanup = onWatcherCleanup; + exports.pauseTracking = pauseTracking; + exports.proxyRefs = proxyRefs; + exports.reactive = reactive; + exports.reactiveReadArray = reactiveReadArray; + exports.readonly = readonly; + exports.ref = ref; + exports.resetTracking = resetTracking; + exports.shallowReactive = shallowReactive; + exports.shallowReadArray = shallowReadArray; + exports.shallowReadonly = shallowReadonly; + exports.shallowRef = shallowRef; + exports.stop = stop; + exports.toRaw = toRaw; + exports.toReactive = toReactive; + exports.toReadonly = toReadonly; + exports.toRef = toRef; + exports.toRefs = toRefs; + exports.toValue = toValue; + exports.track = track; + exports.traverse = traverse; + exports.trigger = trigger; + exports.triggerRef = triggerRef; + exports.unref = unref; + exports.watch = watch; + + return exports; + +})({}); diff --git a/node_modules/@vue/reactivity/dist/reactivity.global.prod.js b/node_modules/@vue/reactivity/dist/reactivity.global.prod.js new file mode 100644 index 0000000..2ed2254 --- /dev/null +++ b/node_modules/@vue/reactivity/dist/reactivity.global.prod.js @@ -0,0 +1,5 @@ +/** +* @vue/reactivity v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var VueReactivity=function(e){"use strict";let t,i,s,r,n,l={},o=()=>{},a=Object.assign,u=Object.prototype.hasOwnProperty,c=Array.isArray,h=e=>"symbol"==typeof e,f=e=>null!==e&&"object"==typeof e,p=Object.prototype.toString,_=e=>"string"==typeof e&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e;class d{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=t,!e&&t&&(this.index=(t.scopes||(t.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let i=t;try{return t=this,e()}finally{t=i}}}on(){1==++this._on&&(this.prevScope=t,t=this)}off(){this._on>0&&0==--this._on&&(t=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,i;for(t=0,this._active=!1,i=this.effects.length;t<i;t++)this.effects[t].stop();for(t=0,this.effects.length=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,i=this.scopes.length;t<i;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}let v=new WeakSet;class g{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,t&&t.active&&t.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,v.has(this)&&(v.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||b(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,D(this),R(this);let e=i,t=T;i=this,T=!0;try{return this.fn()}finally{S(this),i=e,T=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)k(e);this.deps=this.depsTail=void 0,D(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?v.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){E(this)&&this.run()}get dirty(){return E(this)}}let y=0;function b(e,t=!1){if(e.flags|=8,t){e.next=r,r=e;return}e.next=s,s=e}function w(){let e;if(!(--y>0)){if(r){let e=r;for(r=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;s;){let t=s;for(s=void 0;t;){let i=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=i}}if(e)throw e}}function R(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function S(e){let t,i=e.depsTail,s=i;for(;s;){let e=s.prevDep;-1===s.version?(s===i&&(i=e),k(s),function(e){let{prevDep:t,nextDep:i}=e;t&&(t.nextDep=i,e.prevDep=void 0),i&&(i.prevDep=t,e.nextDep=void 0)}(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=e}e.deps=t,e.depsTail=i}function E(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(x(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function x(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===j)||(e.globalVersion=j,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!E(e))))return;e.flags|=2;let t=e.dep,s=i,r=T;i=e,T=!0;try{let i;R(e);let s=e.fn(e._value);(0===t.version||(i=e._value,!Object.is(s,i)))&&(e.flags|=128,e._value=s,t.version++)}catch(e){throw t.version++,e}finally{i=s,T=r,S(e),e.flags&=-3}}function k(e,t=!1){let{dep:i,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),i.subs===e&&(i.subs=s,!s&&i.computed)){i.computed.flags&=-5;for(let e=i.computed.deps;e;e=e.nextDep)k(e,!0)}t||--i.sc||!i.map||i.map.delete(i.key)}let T=!0,A=[];function m(){A.push(T),T=!1}function O(){let e=A.pop();T=void 0===e||e}function D(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=i;i=void 0;try{t()}finally{i=e}}}let j=0;class I{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class L{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!i||!T||i===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==i)t=this.activeLink=new I(i,this),i.deps?(t.prevDep=i.depsTail,i.depsTail.nextDep=t,i.depsTail=t):i.deps=i.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let i=t.dep.computed;if(i&&!t.dep.subs){i.flags|=20;for(let t=i.deps;t;t=t.nextDep)e(t)}let s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=i.depsTail,t.nextDep=void 0,i.depsTail.nextDep=t,i.depsTail=t,i.deps===t&&(i.deps=e)}return t}trigger(e){this.version++,j++,this.notify(e)}notify(e){y++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{w()}}}let P=new WeakMap,C=Symbol(""),W=Symbol(""),N=Symbol("");function M(e,t,s){if(T&&i){let t=P.get(e);t||P.set(e,t=new Map);let i=t.get(s);i||(t.set(s,i=new L),i.map=t,i.key=s),i.track()}}function V(e,t,i,s,r,n){let l=P.get(e);if(!l)return void j++;let o=e=>{e&&e.trigger()};if(y++,"clear"===t)l.forEach(o);else{let r=c(e),n=r&&_(i);if(r&&"length"===i){let e=Number(s);l.forEach((t,i)=>{("length"===i||i===N||!h(i)&&i>=e)&&o(t)})}else switch((void 0!==i||l.has(void 0))&&o(l.get(i)),n&&o(l.get(N)),t){case"add":if(r)n&&o(l.get("length"));else{let t;o(l.get(C));"[object Map]"===(t=e,p.call(t))&&o(l.get(W))}break;case"delete":if(!r){let t;o(l.get(C));"[object Map]"===(t=e,p.call(t))&&o(l.get(W))}break;case"set":let a;"[object Map]"===(a=e,p.call(a))&&o(l.get(C))}}w()}function K(e){let t=ex(e);return t===e?t:(M(t,"iterate",N),eS(e)?t:t.map(ek))}function U(e){return M(e=ex(e),"iterate",N),e}function H(e,t){return eR(e)?ew(e)?eT(ek(t)):eT(t):ek(t)}let Y={__proto__:null,[Symbol.iterator](){return G(this,Symbol.iterator,e=>H(this,e))},concat(...e){return K(this).concat(...e.map(e=>c(e)?K(e):e))},entries(){return G(this,"entries",e=>(e[1]=H(this,e[1]),e))},every(e,t){return z(this,"every",e,t,void 0,arguments)},filter(e,t){return z(this,"filter",e,t,e=>e.map(e=>H(this,e)),arguments)},find(e,t){return z(this,"find",e,t,e=>H(this,e),arguments)},findIndex(e,t){return z(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return z(this,"findLast",e,t,e=>H(this,e),arguments)},findLastIndex(e,t){return z(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return z(this,"forEach",e,t,void 0,arguments)},includes(...e){return q(this,"includes",e)},indexOf(...e){return q(this,"indexOf",e)},join(e){return K(this).join(e)},lastIndexOf(...e){return q(this,"lastIndexOf",e)},map(e,t){return z(this,"map",e,t,void 0,arguments)},pop(){return J(this,"pop")},push(...e){return J(this,"push",e)},reduce(e,...t){return B(this,"reduce",e,t)},reduceRight(e,...t){return B(this,"reduceRight",e,t)},shift(){return J(this,"shift")},some(e,t){return z(this,"some",e,t,void 0,arguments)},splice(...e){return J(this,"splice",e)},toReversed(){return K(this).toReversed()},toSorted(e){return K(this).toSorted(e)},toSpliced(...e){return K(this).toSpliced(...e)},unshift(...e){return J(this,"unshift",e)},values(){return G(this,"values",e=>H(this,e))}};function G(e,t,i){let s=U(e),r=s[t]();return s===e||eS(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=i(e.value)),e}),r}let F=Array.prototype;function z(e,t,i,s,r,n){let l=U(e),o=l!==e&&!eS(e),a=l[t];if(a!==F[t]){let t=a.apply(e,n);return o?ek(t):t}let u=i;l!==e&&(o?u=function(t,s){return i.call(this,H(e,t),s,e)}:i.length>2&&(u=function(t,s){return i.call(this,t,s,e)}));let c=a.call(l,u,s);return o&&r?r(c):c}function B(e,t,i,s){let r=U(e),n=i;return r!==e&&(eS(e)?i.length>3&&(n=function(t,s,r){return i.call(this,t,s,r,e)}):n=function(t,s,r){return i.call(this,t,H(e,s),r,e)}),r[t](n,...s)}function q(e,t,i){let s=ex(e);M(s,"iterate",N);let r=s[t](...i);return(-1===r||!1===r)&&eE(i[0])?(i[0]=ex(i[0]),s[t](...i)):r}function J(e,t,i=[]){m(),y++;let s=ex(e)[t].apply(e,i);return w(),O(),s}let Q=function(e){let t=Object.create(null);for(let i of e.split(","))t[i]=1;return e=>e in t}("__proto__,__v_isRef,__isVue"),X=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(h));function Z(e){h(e)||(e=String(e));let t=ex(this);return M(t,"has",e),t.hasOwnProperty(e)}class ${constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if("__v_skip"===t)return e.__v_skip;let s=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!s;if("__v_isReadonly"===t)return s;if("__v_isShallow"===t)return r;if("__v_raw"===t)return i===(s?r?ev:ed:r?e_:ep).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;let n=c(e);if(!s){let e;if(n&&(e=Y[t]))return e;if("hasOwnProperty"===t)return Z}let l=Reflect.get(e,t,eA(e)?e:i);if((h(t)?X.has(t):Q(t))||(s||M(e,"get",t),r))return l;if(eA(l)){let e=n&&_(t)?l:l.value;return s&&f(e)?ey(e):e}return f(l)?s?ey(l):eg(l):l}}class ee extends ${constructor(e=!1){super(!1,e)}set(e,t,i,s){let r=e[t],n=c(e)&&_(t);if(!this._isShallow){let e=eR(r);if(eS(i)||eR(i)||(r=ex(r),i=ex(i)),!n&&eA(r)&&!eA(i))if(e)return!0;else return r.value=i,!0}let l=n?Number(t)<e.length:u.call(e,t),o=Reflect.set(e,t,i,eA(e)?e:s);return e===ex(s)&&(l?Object.is(i,r)||V(e,"set",t,i):V(e,"add",t,i)),o}deleteProperty(e,t){let i=u.call(e,t);e[t];let s=Reflect.deleteProperty(e,t);return s&&i&&V(e,"delete",t,void 0),s}has(e,t){let i=Reflect.has(e,t);return h(t)&&X.has(t)||M(e,"has",t),i}ownKeys(e){return M(e,"iterate",c(e)?"length":C),Reflect.ownKeys(e)}}class et extends ${constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let ei=new ee,es=new et,er=new ee(!0),en=new et(!0),el=e=>e;function eo(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function ea(e,t){let i,s=(a(i={get(i){let s=this.__v_raw,r=ex(s),n=ex(i);e||(Object.is(i,n)||M(r,"get",i),M(r,"get",n));let{has:l}=Reflect.getPrototypeOf(r),o=t?el:e?eT:ek;return l.call(r,i)?o(s.get(i)):l.call(r,n)?o(s.get(n)):void(s!==r&&s.get(i))},get size(){let t=this.__v_raw;return e||M(ex(t),"iterate",C),t.size},has(t){let i=this.__v_raw,s=ex(i),r=ex(t);return e||(Object.is(t,r)||M(s,"has",t),M(s,"has",r)),t===r?i.has(t):i.has(t)||i.has(r)},forEach(i,s){let r=this,n=r.__v_raw,l=ex(n),o=t?el:e?eT:ek;return e||M(l,"iterate",C),n.forEach((e,t)=>i.call(s,o(e),o(t),r))}},e?{add:eo("add"),set:eo("set"),delete:eo("delete"),clear:eo("clear")}:{add(e){t||eS(e)||eR(e)||(e=ex(e));let i=ex(this);return Reflect.getPrototypeOf(i).has.call(i,e)||(i.add(e),V(i,"add",e,e)),this},set(e,i){t||eS(i)||eR(i)||(i=ex(i));let s=ex(this),{has:r,get:n}=Reflect.getPrototypeOf(s),l=r.call(s,e);l||(e=ex(e),l=r.call(s,e));let o=n.call(s,e);return(s.set(e,i),l)?Object.is(i,o)||V(s,"set",e,i):V(s,"add",e,i),this},delete(e){let t=ex(this),{has:i,get:s}=Reflect.getPrototypeOf(t),r=i.call(t,e);r||(e=ex(e),r=i.call(t,e)),s&&s.call(t,e);let n=t.delete(e);return r&&V(t,"delete",e,void 0),n},clear(){let e=ex(this),t=0!==e.size,i=e.clear();return t&&V(e,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{i[s]=function(...i){let r,n=this.__v_raw,l=ex(n),o="[object Map]"===(r=l,p.call(r)),u="entries"===s||s===Symbol.iterator&&o,c=n[s](...i),h=t?el:e?eT:ek;return e||M(l,"iterate","keys"===s&&o?W:C),a(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:u?[h(e[0]),h(e[1])]:h(e),done:t}}})}}),i);return(t,i,r)=>"__v_isReactive"===i?!e:"__v_isReadonly"===i?e:"__v_raw"===i?t:Reflect.get(u.call(s,i)&&i in t?s:t,i,r)}let eu={get:ea(!1,!1)},ec={get:ea(!1,!0)},eh={get:ea(!0,!1)},ef={get:ea(!0,!0)},ep=new WeakMap,e_=new WeakMap,ed=new WeakMap,ev=new WeakMap;function eg(e){return eR(e)?e:eb(e,!1,ei,eu,ep)}function ey(e){return eb(e,!0,es,eh,ed)}function eb(e,t,i,s,r){var n;let l;if(!f(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(n=e).__v_skip||!Object.isExtensible(n)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((l=n,p.call(l)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?s:i);return r.set(e,u),u}function ew(e){return eR(e)?ew(e.__v_raw):!!(e&&e.__v_isReactive)}function eR(e){return!!(e&&e.__v_isReadonly)}function eS(e){return!!(e&&e.__v_isShallow)}function eE(e){return!!e&&!!e.__v_raw}function ex(e){let t=e&&e.__v_raw;return t?ex(t):e}let ek=e=>f(e)?eg(e):e,eT=e=>f(e)?ey(e):e;function eA(e){return!!e&&!0===e.__v_isRef}function em(e){return eO(e,!1)}function eO(e,t){return eA(e)?e:new eD(e,t)}class eD{constructor(e,t){this.dep=new L,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ex(e),this._value=t?e:ek(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,i=this.__v_isShallow||eS(e)||eR(e);Object.is(e=i?e:ex(e),t)||(this._rawValue=e,this._value=i?e:ek(e),this.dep.trigger())}}function ej(e){return eA(e)?e.value:e}let eI={get:(e,t,i)=>"__v_raw"===t?e:ej(Reflect.get(e,t,i)),set:(e,t,i,s)=>{let r=e[t];return eA(r)&&!eA(i)?(r.value=i,!0):Reflect.set(e,t,i,s)}};class eL{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new L,{get:i,set:s}=e(t.track.bind(t),t.trigger.bind(t));this._get=i,this._set=s}get value(){return this._value=this._get()}set value(e){this._set(e)}}class eP{constructor(e,t,i){this._object=e,this._key=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._raw=ex(e);let s=!0,r=e;if(!c(e)||!_(String(t)))do s=!eE(r)||eS(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let e=this._object[this._key];return this._shallow&&(e=ej(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&eA(this._raw[this._key])){let t=this._object[this._key];if(eA(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let i;return e=this._raw,t=this._key,(i=P.get(e))&&i.get(t)}}class eC{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class eW{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new L(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=j-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(8&this.flags)&&i!==this)return b(this,!0),!0}get value(){let e=this.dep.track();return x(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let eN={},eM=new WeakMap;function eV(e,t=!1,i=n){if(i){let t=eM.get(i);t||eM.set(i,t=[]),t.push(e)}}function eK(e,t=1/0,i){if(t<=0||!f(e)||e.__v_skip||((i=i||new Map).get(e)||0)>=t)return e;if(i.set(e,t),t--,eA(e))eK(e.value,t,i);else if(c(e))for(let s=0;s<e.length;s++)eK(e[s],t,i);else{let s,r;if("[object Set]"===(s=e,p.call(s))||"[object Map]"===(r=e,p.call(r)))e.forEach(e=>{eK(e,t,i)});else{let s;if("[object Object]"===(s=e,p.call(s))){for(let s in e)eK(e[s],t,i);for(let s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&eK(e[s],t,i)}}}return e}return e.ARRAY_ITERATE_KEY=N,e.EffectFlags={ACTIVE:1,1:"ACTIVE",RUNNING:2,2:"RUNNING",TRACKING:4,4:"TRACKING",NOTIFIED:8,8:"NOTIFIED",DIRTY:16,16:"DIRTY",ALLOW_RECURSE:32,32:"ALLOW_RECURSE",PAUSED:64,64:"PAUSED",EVALUATED:128,128:"EVALUATED"},e.EffectScope=d,e.ITERATE_KEY=C,e.MAP_KEY_ITERATE_KEY=W,e.ReactiveEffect=g,e.ReactiveFlags={SKIP:"__v_skip",IS_REACTIVE:"__v_isReactive",IS_READONLY:"__v_isReadonly",IS_SHALLOW:"__v_isShallow",RAW:"__v_raw",IS_REF:"__v_isRef"},e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.WatchErrorCodes={WATCH_GETTER:2,2:"WATCH_GETTER",WATCH_CALLBACK:3,3:"WATCH_CALLBACK",WATCH_CLEANUP:4,4:"WATCH_CLEANUP"},e.computed=function(e,t,i=!1){let s,r;return"function"==typeof e?s=e:(s=e.get,r=e.set),new eW(s,r,i)},e.customRef=function(e){return new eL(e)},e.effect=function(e,t){e.effect instanceof g&&(e=e.effect.fn);let i=new g(e);t&&a(i,t);try{i.run()}catch(e){throw i.stop(),e}let s=i.run.bind(i);return s.effect=i,s},e.effectScope=function(e){return new d(e)},e.enableTracking=function(){A.push(T),T=!0},e.getCurrentScope=function(){return t},e.getCurrentWatcher=function(){return n},e.isProxy=eE,e.isReactive=ew,e.isReadonly=eR,e.isRef=eA,e.isShallow=eS,e.markRaw=function(e){return!u.call(e,"__v_skip")&&Object.isExtensible(e)&&((e,t,i,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:i})})(e,"__v_skip",!0),e},e.onEffectCleanup=function(e,t=!1){i instanceof g&&(i.cleanup=e)},e.onScopeDispose=function(e,i=!1){t&&t.cleanups.push(e)},e.onWatcherCleanup=eV,e.pauseTracking=m,e.proxyRefs=function(e){return ew(e)?e:new Proxy(e,eI)},e.reactive=eg,e.reactiveReadArray=K,e.readonly=ey,e.ref=em,e.resetTracking=O,e.shallowReactive=function(e){return eb(e,!1,er,ec,e_)},e.shallowReadArray=U,e.shallowReadonly=function(e){return eb(e,!0,en,ef,ev)},e.shallowRef=function(e){return eO(e,!0)},e.stop=function(e){e.effect.stop()},e.toRaw=ex,e.toReactive=ek,e.toReadonly=eT,e.toRef=function(e,t,i){if(eA(e))return e;if("function"==typeof e)return new eC(e);if(!f(e)||!(arguments.length>1))return em(e);return new eP(e,t,i)},e.toRefs=function(e){let t=c(e)?Array(e.length):{};for(let i in e)t[i]=new eP(e,i,void 0);return t},e.toValue=function(e){return"function"==typeof e?e():ej(e)},e.track=M,e.traverse=eK,e.trigger=V,e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=ej,e.watch=function(e,i,s=l){let r,a,u,h,{immediate:f,deep:p,once:_,scheduler:d,augmentJob:v,call:y}=s,b=e=>p?e:eS(e)||!1===p||0===p?eK(e,1):eK(e),w=!1,R=!1;if(eA(e)?(a=()=>e.value,w=eS(e)):ew(e)?(a=()=>b(e),w=!0):c(e)?(R=!0,w=e.some(e=>ew(e)||eS(e)),a=()=>e.map(e=>eA(e)?e.value:ew(e)?b(e):"function"==typeof e?y?y(e,2):e():void 0)):a="function"==typeof e?i?y?()=>y(e,2):e:()=>{if(u){m();try{u()}finally{O()}}let t=n;n=r;try{return y?y(e,3,[h]):e(h)}finally{n=t}}:o,i&&p){let e=a,t=!0===p?1/0:p;a=()=>eK(e(),t)}let S=t,E=()=>{var e,t;let i;r.stop(),S&&S.active&&(e=S.effects,t=r,(i=e.indexOf(t))>-1&&e.splice(i,1))};if(_&&i){let e=i;i=(...t)=>{e(...t),E()}}let x=R?Array(e.length).fill(eN):eN,k=e=>{if(1&r.flags&&(r.dirty||e))if(i){let e=r.run();if(p||w||(R?e.some((e,t)=>!Object.is(e,x[t])):!Object.is(e,x))){u&&u();let t=n;n=r;try{let t=[e,x===eN?void 0:R&&x[0]===eN?[]:x,h];x=e,y?y(i,3,t):i(...t)}finally{n=t}}}else r.run()};return v&&v(k),(r=new g(a)).scheduler=d?()=>d(k,!1):k,h=e=>eV(e,!1,r),u=r.onStop=()=>{let e=eM.get(r);if(e){if(y)y(e,4);else for(let t of e)t();eM.delete(r)}},i?f?k(!0):x=r.run():d?d(k.bind(null,!0),!0):r.run(),E.pause=r.pause.bind(r),E.resume=r.resume.bind(r),E.stop=E,E},e}({}); diff --git a/node_modules/@vue/reactivity/index.js b/node_modules/@vue/reactivity/index.js new file mode 100644 index 0000000..04a8ba5 --- /dev/null +++ b/node_modules/@vue/reactivity/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/reactivity.cjs.prod.js') +} else { + module.exports = require('./dist/reactivity.cjs.js') +} diff --git a/node_modules/@vue/reactivity/package.json b/node_modules/@vue/reactivity/package.json new file mode 100644 index 0000000..1e019b0 --- /dev/null +++ b/node_modules/@vue/reactivity/package.json @@ -0,0 +1,55 @@ +{ + "name": "@vue/reactivity", + "version": "3.5.28", + "description": "@vue/reactivity", + "main": "index.js", + "module": "dist/reactivity.esm-bundler.js", + "types": "dist/reactivity.d.ts", + "unpkg": "dist/reactivity.global.js", + "jsdelivr": "dist/reactivity.global.js", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/reactivity.d.ts", + "node": { + "production": "./dist/reactivity.cjs.prod.js", + "development": "./dist/reactivity.cjs.js", + "default": "./index.js" + }, + "module": "./dist/reactivity.esm-bundler.js", + "import": "./dist/reactivity.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/reactivity" + }, + "buildOptions": { + "name": "VueReactivity", + "formats": [ + "esm-bundler", + "esm-browser", + "cjs", + "global" + ] + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", + "dependencies": { + "@vue/shared": "3.5.28" + } +} \ No newline at end of file diff --git a/node_modules/@vue/runtime-core/LICENSE b/node_modules/@vue/runtime-core/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/runtime-core/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/runtime-core/README.md b/node_modules/@vue/runtime-core/README.md new file mode 100644 index 0000000..452ef52 --- /dev/null +++ b/node_modules/@vue/runtime-core/README.md @@ -0,0 +1,28 @@ +# @vue/runtime-core + +> This package is published only for typing and building custom renderers. It is NOT meant to be used in applications. + +For full exposed APIs, see `src/index.ts`. + +## Building a Custom Renderer + +```ts +import { createRenderer } from '@vue/runtime-core' + +const { render, createApp } = createRenderer({ + patchProp, + insert, + remove, + createElement, + // ... +}) + +// `render` is the low-level API +// `createApp` returns an app instance with configurable context shared +// by the entire app tree. +export { render, createApp } + +export * from '@vue/runtime-core' +``` + +See `@vue/runtime-dom` for how a DOM-targeting renderer is implemented. diff --git a/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js b/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js new file mode 100644 index 0000000..1a7e0c1 --- /dev/null +++ b/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js @@ -0,0 +1,8651 @@ +/** +* @vue/runtime-core v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var reactivity = require('@vue/reactivity'); +var shared = require('@vue/shared'); + +const stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + reactivity.pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + reactivity.resetTracking(); + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (shared.isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (reactivity.isRef(value)) { + value = formatProp(key, reactivity.toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (shared.isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = reactivity.toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (shared.isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && shared.isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (shared.isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || shared.EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + reactivity.pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + reactivity.resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!shared.isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; +} + +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Map(); +{ + shared.getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); +} +function updateComponentDef(oldComp, newComp) { + shared.extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} + +let devtools$1; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function validateDirectiveName(name) { + if (shared.isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i]; + if (dir) { + if (shared.isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + reactivity.traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + reactivity.pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + reactivity.resetTracking(); + } + } +} + +function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && shared.isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } +} +function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + shared.extend({}, options, { flush: "post" }) + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + shared.extend({}, options, { flush: "sync" }) + ); +} +function watch(source, cb, options) { + if (!shared.isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = shared.EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = shared.extend({}, options); + baseWatchOptions.onWarn = warn$1; + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = shared.NOOP; + watchStopHandle.resume = shared.NOOP; + watchStopHandle.pause = shared.NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = reactivity.watch(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = shared.isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (shared.isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (shared.isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; +} + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = reactivity.toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (shared.isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey] = void 0; + }; + const done = el[enterCbKey].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey]) { + el[enterCbKey]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && shared.isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return shared.isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => shared.extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = reactivity.shallowRef(null); + if (i) { + const refs = i.refs === shared.EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = reactivity.readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; +} +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (shared.isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (shared.isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === shared.EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = reactivity.toRaw(setupState); + const canSetSetupRef = setupState === shared.EMPTY_OBJ ? shared.NO : (key) => { + { + if (shared.hasOwn(rawSetupState, key) && !reactivity.isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return shared.hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (shared.isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (reactivity.isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (shared.isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = shared.isString(ref); + const _isRef = reactivity.isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + shared.isArray(existing) && shared.remove(existing, refValue); + } else { + if (!shared.isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + shared.def(node, "__vnode", vnode, true); + shared.def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !shared.isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = shared.normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = shared.isString(clientValue) ? clientValue : shared.stringifyStyle(shared.normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) { + if (shared.isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = shared.includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = shared.isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; +} +function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); +} +function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; +} +function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; +} +function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; +} +function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = shared.normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${shared.getEscapedCssVarName(key, false)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = shared.getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = shared.getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (shared.isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (shared.isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !shared.isObject(comp) && !shared.isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = reactivity.ref(false); + const error = reactivity.ref(); + const delayed = reactivity.ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + shared.invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + shared.invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (shared.isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (shared.isString(pattern)) { + return pattern.split(",").includes(name); + } else if (shared.isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + shared.remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + reactivity.pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + reactivity.resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = shared.toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (shared.isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === shared.camelize(name) || selfName === shared.capitalize(shared.camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${shared.capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[shared.camelize(name)] || registry[shared.capitalize(shared.camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = shared.isArray(source); + if (sourceIsArray || shared.isString(source)) { + const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !reactivity.isShallow(source); + isReadonlySource = reactivity.isReadonly(source); + source = reactivity.shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? reactivity.toReadonly(reactivity.toReactive(source[i])) : reactivity.toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (shared.isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (shared.isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!shared.isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : shared.toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ shared.extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => reactivity.shallowReadonly(i.props) , + $attrs: (i) => reactivity.shallowReadonly(i.attrs) , + $slots: (i) => reactivity.shallowReadonly(i.slots) , + $refs: (i) => reactivity.shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== shared.EMPTY_OBJ && !state.__isScriptSetup && shared.hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (shared.hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + reactivity.track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + reactivity.track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, shared.hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!shared.isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== shared.EMPTY_OBJ && isReservedPrefix(key[0]) && shared.hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && shared.hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) { + data[key] = value; + return true; + } else if (shared.hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== shared.EMPTY_OBJ && key[0] !== "$" && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || shared.hasOwn(props, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (shared.hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +{ + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; +} +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ shared.extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !shared.isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } +}); +function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: shared.NOOP + }); + }); + return target; +} +function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: shared.NOOP + }); + }); + } +} +function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(reactivity.toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: shared.NOOP + }); + } + }); +} + +const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` +); +function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; +} +function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; +} +function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } +} +function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } +} +function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; +} +function defineModel() { + { + warnRuntimeUsage("defineModel"); + } +} +function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; +} +function useSlots() { + return getContext("useSlots").slots; +} +function useAttrs() { + return getContext("useAttrs").attrs; +} +function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return shared.isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (shared.isArray(opt) || shared.isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (shared.isArray(a) && shared.isArray(b)) return a.concat(b); + return shared.extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (shared.isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; +} +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (shared.isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!shared.isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (shared.isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!shared.isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactivity.reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: shared.NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = shared.isFunction(opt) ? opt.bind(publicThis, publicThis) : shared.isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : shared.NOOP; + if (get === shared.NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !shared.isFunction(opt) && shared.isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = shared.isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (shared.isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (shared.isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === shared.NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = shared.NOOP) { + if (shared.isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (shared.isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (reactivity.isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } +} +function callHook(hook, instance, type) { + callWithAsyncErrorHandling( + shared.isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (shared.isString(raw)) { + const handler = ctx[raw]; + if (shared.isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (shared.isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (shared.isObject(raw)) { + if (shared.isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = shared.isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (shared.isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (shared.isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (shared.extend)( + shared.isFunction(to) ? to.call(this, this) : to, + shared.isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (shared.isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? shared.extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (shared.isArray(to) && shared.isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return shared.extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = shared.extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: shared.NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!shared.isFunction(rootComponent)) { + rootComponent = shared.extend({}, rootComponent); + } + if (rootProps != null && !shared.isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && shared.isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (shared.isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (shared.hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function useModel(props, name, options = shared.EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return reactivity.ref(); + } + const camelizedName = shared.camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return reactivity.ref(); + } + const hyphenatedName = shared.hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = reactivity.customRef((track, trigger) => { + let localValue; + let prevSetValue = shared.EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (shared.hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!shared.hasChanged(emittedValue, localValue) && !(prevSetValue !== shared.EMPTY_OBJ && shared.hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (shared.hasChanged(value, emittedValue) && shared.hasChanged(value, prevSetValue) && !shared.hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || shared.EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${shared.camelize(modelName)}Modifiers`] || props[`${shared.hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || shared.EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(shared.toHandlerKey(shared.camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${shared.toHandlerKey(shared.camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (shared.isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => shared.isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(shared.looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[shared.toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${shared.hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = shared.toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = shared.toHandlerKey(shared.camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = shared.toHandlerKey(shared.hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!shared.isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + shared.extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (shared.isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (shared.isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + shared.extend(normalized, raw); + } + if (shared.isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !shared.isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return shared.hasOwn(options, key[0].toLowerCase() + key.slice(1)) || shared.hasOwn(options, shared.hyphenate(key)) || shared.hasOwn(options, key); +} + +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? reactivity.shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? reactivity.shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return reactivity.shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? reactivity.shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(shared.isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (shared.isOn(key)) { + if (!shared.isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || shared.isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!shared.isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && shared.isObject(nextProp) && shared.isObject(prevProp)) { + return !shared.looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : reactivity.shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = reactivity.toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (shared.hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = shared.camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !shared.hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = shared.hyphenate(key)) === key || !shared.hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !shared.hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + reactivity.trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (shared.isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && shared.hasOwn(options, camelKey = shared.camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = reactivity.toRaw(props); + const castValues = rawCastValues || shared.EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !shared.hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = shared.hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && shared.isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === shared.hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!shared.isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + shared.extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (shared.isObject(comp)) { + cache.set(comp, shared.EMPTY_ARR); + } + return shared.EMPTY_ARR; + } + if (shared.isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!shared.isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = shared.camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = shared.EMPTY_OBJ; + } + } + } else if (raw) { + if (!shared.isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = shared.camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = shared.isArray(opt) || shared.isFunction(opt) ? { type: opt } : shared.extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (shared.isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = shared.isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = shared.isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || shared.hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (shared.isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !shared.isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; +} +function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; +} +function validateProps(rawProps, props, instance) { + const resolvedValues = reactivity.toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => shared.camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + reactivity.shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } +} +function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = shared.isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } +} +const isSimpleType = /* @__PURE__ */ shared.makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" +); +function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = shared.isObject(value); + } else if (expectedType === "Array") { + valid = shared.isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(shared.capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = shared.toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => shared.isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (shared.isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + shared.def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = shared.EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + reactivity.trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +let supported; +let perf; +function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; +} + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = shared.getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = shared.NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !shared.isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + shared.def(el, "__vnode", vnode, true); + shared.def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || shared.EMPTY_OBJ; + const newProps = n2.props || shared.EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== shared.EMPTY_OBJ) { + for (const key in oldProps) { + if (!shared.isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (shared.isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + shared.invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + shared.invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new reactivity.ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => shared.invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => shared.invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + reactivity.pauseTracking(); + flushPreFlushCbs(instance); + reactivity.resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || shared.EMPTY_ARR; + c2 = c2 || shared.EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : shared.EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + reactivity.pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + reactivity.resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + shared.invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (shared.isArray(ch1) && shared.isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (shared.isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +let hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (shared.isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (shared.isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (shared.isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || shared.EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; +} +let vnodeArgsTransformer; +function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; +} +const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); +}; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? shared.isString(ref) || reactivity.isRef(ref) || shared.isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= shared.isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = createVNodeWithArgsTransform ; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !shared.isString(klass)) { + props.class = shared.normalizeClass(klass); + } + if (shared.isObject(style)) { + if (reactivity.isProxy(style) && !shared.isArray(style)) { + style = shared.extend({}, style); + } + props.style = shared.normalizeStyle(style); + } + } + const shapeFlag = shared.isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : shared.isObject(type) ? 4 : shared.isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && reactivity.isProxy(type)) { + type = reactivity.toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? shared.isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && shared.isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (shared.isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (shared.isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (shared.isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (shared.isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = shared.normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = shared.normalizeStyle([ret.style, toMerge.style]); + } else if (shared.isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(shared.isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new reactivity.EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: shared.EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: shared.EMPTY_OBJ, + data: shared.EMPTY_OBJ, + props: shared.EMPTY_OBJ, + attrs: shared.EMPTY_OBJ, + slots: shared.EMPTY_OBJ, + refs: shared.EMPTY_OBJ, + setupState: shared.EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = shared.getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +const isBuiltInTag = /* @__PURE__ */ shared.makeMap("slot,component"); +function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } +} +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + reactivity.pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + reactivity.shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = shared.isPromise(setupResult); + reactivity.resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (shared.isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (shared.isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = reactivity.proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); +} +let compile; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = shared.extend( + shared.extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || shared.NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + reactivity.pauseTracking(); + try { + applyOptions(instance); + } finally { + reactivity.resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === shared.NOOP && !isSSR) { + if (!compile && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (``) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + reactivity.track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } +} ; +function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + reactivity.track(instance, "get", "$slots"); + return target[key]; + } + }); +} +function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (shared.isArray(exposed)) { + exposedType = "array"; + } else if (reactivity.isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(reactivity.proxyRefs(reactivity.markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return shared.isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; +}; + +function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } +} + +function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!shared.isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (reactivity.isRef(obj)) { + reactivity.pauseTracking(); + const value = obj.value; + reactivity.resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (reactivity.isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, reactivity.isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${reactivity.isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (reactivity.isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, reactivity.isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", reactivity.toRaw(instance.props))); + } + if (instance.setupState !== shared.EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== shared.EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", reactivity.toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = shared.extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (shared.isObject(v)) { + return ["object", { object: asRaw ? reactivity.toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (shared.isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (shared.isArray(opts) && opts.includes(key) || shared.isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (reactivity.isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (shared.hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.28"; +const warn = warn$1 ; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = devtools$1 ; +const setDevtoolsHook = setDevtoolsHook$1 ; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +exports.EffectScope = reactivity.EffectScope; +exports.ReactiveEffect = reactivity.ReactiveEffect; +exports.TrackOpTypes = reactivity.TrackOpTypes; +exports.TriggerOpTypes = reactivity.TriggerOpTypes; +exports.customRef = reactivity.customRef; +exports.effect = reactivity.effect; +exports.effectScope = reactivity.effectScope; +exports.getCurrentScope = reactivity.getCurrentScope; +exports.getCurrentWatcher = reactivity.getCurrentWatcher; +exports.isProxy = reactivity.isProxy; +exports.isReactive = reactivity.isReactive; +exports.isReadonly = reactivity.isReadonly; +exports.isRef = reactivity.isRef; +exports.isShallow = reactivity.isShallow; +exports.markRaw = reactivity.markRaw; +exports.onScopeDispose = reactivity.onScopeDispose; +exports.onWatcherCleanup = reactivity.onWatcherCleanup; +exports.proxyRefs = reactivity.proxyRefs; +exports.reactive = reactivity.reactive; +exports.readonly = reactivity.readonly; +exports.ref = reactivity.ref; +exports.shallowReactive = reactivity.shallowReactive; +exports.shallowReadonly = reactivity.shallowReadonly; +exports.shallowRef = reactivity.shallowRef; +exports.stop = reactivity.stop; +exports.toRaw = reactivity.toRaw; +exports.toRef = reactivity.toRef; +exports.toRefs = reactivity.toRefs; +exports.toValue = reactivity.toValue; +exports.triggerRef = reactivity.triggerRef; +exports.unref = reactivity.unref; +exports.camelize = shared.camelize; +exports.capitalize = shared.capitalize; +exports.normalizeClass = shared.normalizeClass; +exports.normalizeProps = shared.normalizeProps; +exports.normalizeStyle = shared.normalizeStyle; +exports.toDisplayString = shared.toDisplayString; +exports.toHandlerKey = shared.toHandlerKey; +exports.BaseTransition = BaseTransition; +exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; +exports.Comment = Comment; +exports.DeprecationTypes = DeprecationTypes; +exports.ErrorCodes = ErrorCodes; +exports.ErrorTypeStrings = ErrorTypeStrings; +exports.Fragment = Fragment; +exports.KeepAlive = KeepAlive; +exports.Static = Static; +exports.Suspense = Suspense; +exports.Teleport = Teleport; +exports.Text = Text; +exports.assertNumber = assertNumber; +exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; +exports.callWithErrorHandling = callWithErrorHandling; +exports.cloneVNode = cloneVNode; +exports.compatUtils = compatUtils; +exports.computed = computed; +exports.createBlock = createBlock; +exports.createCommentVNode = createCommentVNode; +exports.createElementBlock = createElementBlock; +exports.createElementVNode = createBaseVNode; +exports.createHydrationRenderer = createHydrationRenderer; +exports.createPropsRestProxy = createPropsRestProxy; +exports.createRenderer = createRenderer; +exports.createSlots = createSlots; +exports.createStaticVNode = createStaticVNode; +exports.createTextVNode = createTextVNode; +exports.createVNode = createVNode; +exports.defineAsyncComponent = defineAsyncComponent; +exports.defineComponent = defineComponent; +exports.defineEmits = defineEmits; +exports.defineExpose = defineExpose; +exports.defineModel = defineModel; +exports.defineOptions = defineOptions; +exports.defineProps = defineProps; +exports.defineSlots = defineSlots; +exports.devtools = devtools; +exports.getCurrentInstance = getCurrentInstance; +exports.getTransitionRawChildren = getTransitionRawChildren; +exports.guardReactiveProps = guardReactiveProps; +exports.h = h; +exports.handleError = handleError; +exports.hasInjectionContext = hasInjectionContext; +exports.hydrateOnIdle = hydrateOnIdle; +exports.hydrateOnInteraction = hydrateOnInteraction; +exports.hydrateOnMediaQuery = hydrateOnMediaQuery; +exports.hydrateOnVisible = hydrateOnVisible; +exports.initCustomFormatter = initCustomFormatter; +exports.inject = inject; +exports.isMemoSame = isMemoSame; +exports.isRuntimeOnly = isRuntimeOnly; +exports.isVNode = isVNode; +exports.mergeDefaults = mergeDefaults; +exports.mergeModels = mergeModels; +exports.mergeProps = mergeProps; +exports.nextTick = nextTick; +exports.onActivated = onActivated; +exports.onBeforeMount = onBeforeMount; +exports.onBeforeUnmount = onBeforeUnmount; +exports.onBeforeUpdate = onBeforeUpdate; +exports.onDeactivated = onDeactivated; +exports.onErrorCaptured = onErrorCaptured; +exports.onMounted = onMounted; +exports.onRenderTracked = onRenderTracked; +exports.onRenderTriggered = onRenderTriggered; +exports.onServerPrefetch = onServerPrefetch; +exports.onUnmounted = onUnmounted; +exports.onUpdated = onUpdated; +exports.openBlock = openBlock; +exports.popScopeId = popScopeId; +exports.provide = provide; +exports.pushScopeId = pushScopeId; +exports.queuePostFlushCb = queuePostFlushCb; +exports.registerRuntimeCompiler = registerRuntimeCompiler; +exports.renderList = renderList; +exports.renderSlot = renderSlot; +exports.resolveComponent = resolveComponent; +exports.resolveDirective = resolveDirective; +exports.resolveDynamicComponent = resolveDynamicComponent; +exports.resolveFilter = resolveFilter; +exports.resolveTransitionHooks = resolveTransitionHooks; +exports.setBlockTracking = setBlockTracking; +exports.setDevtoolsHook = setDevtoolsHook; +exports.setTransitionHooks = setTransitionHooks; +exports.ssrContextKey = ssrContextKey; +exports.ssrUtils = ssrUtils; +exports.toHandlers = toHandlers; +exports.transformVNodeArgs = transformVNodeArgs; +exports.useAttrs = useAttrs; +exports.useId = useId; +exports.useModel = useModel; +exports.useSSRContext = useSSRContext; +exports.useSlots = useSlots; +exports.useTemplateRef = useTemplateRef; +exports.useTransitionState = useTransitionState; +exports.version = version; +exports.warn = warn; +exports.watch = watch; +exports.watchEffect = watchEffect; +exports.watchPostEffect = watchPostEffect; +exports.watchSyncEffect = watchSyncEffect; +exports.withAsyncContext = withAsyncContext; +exports.withCtx = withCtx; +exports.withDefaults = withDefaults; +exports.withDirectives = withDirectives; +exports.withMemo = withMemo; +exports.withScopeId = withScopeId; diff --git a/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js b/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js new file mode 100644 index 0000000..ba01fec --- /dev/null +++ b/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js @@ -0,0 +1,6798 @@ +/** +* @vue/runtime-core v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var reactivity = require('@vue/reactivity'); +var shared = require('@vue/shared'); + +function pushWarningContext(vnode) { +} +function popWarningContext() { +} +function assertNumber(val, type) { + return; +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (shared.isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && shared.isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (shared.isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || shared.EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + reactivity.pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + reactivity.resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + if (throwInProd) { + throw err; + } else { + console.error(err); + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!shared.isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (false) ; + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(); + } + } +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i]; + if (dir) { + if (shared.isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + reactivity.traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + reactivity.pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + reactivity.resetTracking(); + } + } +} + +function provide(key, value) { + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && shared.isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else ; + } +} +function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + { flush: "post" } + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + { flush: "sync" } + ); +} +function watch(source, cb, options) { + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = shared.EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + const baseWatchOptions = shared.extend({}, options); + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = shared.NOOP; + watchStopHandle.resume = shared.NOOP; + watchStopHandle.pause = shared.NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = reactivity.watch(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = shared.isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (shared.isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (shared.isString(targetSelector)) { + if (!select) { + return null; + } else { + const target = select(targetSelector); + return target; + } + } else { + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (n1 == null) { + const placeholder = n2.el = createText(""); + const mainAnchor = n2.anchor = createText(""); + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, true); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; +} + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = reactivity.toRaw(props); + const { mode } = rawProps; + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + for (const c of children) { + if (c.type !== Comment) { + child = c; + break; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (shared.isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey] = void 0; + }; + const done = el[enterCbKey].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey]) { + el[enterCbKey]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && shared.isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return shared.isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => shared.extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = reactivity.shallowRef(null); + if (i) { + const refs = i.refs === shared.EMPTY_OBJ ? i.refs = {} : i.refs; + { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } + const ret = r; + return ret; +} +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (shared.isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (shared.isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === shared.EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = reactivity.toRaw(setupState); + const canSetSetupRef = setupState === shared.EMPTY_OBJ ? shared.NO : (key) => { + if (isTemplateRefKey(refs, key)) { + return false; + } + return shared.hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (shared.isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (reactivity.isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (shared.isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = shared.isString(ref); + const _isRef = reactivity.isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef() || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + shared.isArray(existing) && shared.remove(existing, refValue); + } else { + if (!shared.isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else ; + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else ; + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + if (forcePatch || patchFlag !== -1) { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + if (forcePatch || !optimized || patchFlag & (16 | 32)) { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !shared.isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } else if (props.onClick) { + patchProp( + el, + "onClick", + null, + props.onClick, + void 0, + parentComponent + ); + } else if (patchFlag & 4 && reactivity.isReactive(props.style)) { + for (const key in props.style) props.style[key]; + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = shared.getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = shared.getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (shared.isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (shared.isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = reactivity.ref(false); + const error = reactivity.ref(); + const delayed = reactivity.ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + shared.invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + shared.invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (shared.isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (shared.isString(pattern)) { + return pattern.split(",").includes(name); + } else if (shared.isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + shared.remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + reactivity.pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + reactivity.resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (shared.isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === shared.camelize(name) || selfName === shared.capitalize(shared.camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + return res; + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[shared.camelize(name)] || registry[shared.capitalize(shared.camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = shared.isArray(source); + if (sourceIsArray || shared.isString(source)) { + const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !reactivity.isShallow(source); + isReadonlySource = reactivity.isReadonly(source); + source = reactivity.shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? reactivity.toReadonly(reactivity.toReactive(source[i])) : reactivity.toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (shared.isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (shared.isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : shared.toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ shared.extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => i.props, + $attrs: (i) => i.attrs, + $slots: (i) => i.slots, + $refs: (i) => i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const hasSetupBinding = (state, key) => state !== shared.EMPTY_OBJ && !state.__isScriptSetup && shared.hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (shared.hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + reactivity.track(instance.attrs, "get", ""); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, shared.hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else ; + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) { + data[key] = value; + return true; + } else if (shared.hasOwn(instance.props, key)) { + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + return false; + } else { + { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== shared.EMPTY_OBJ && key[0] !== "$" && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || shared.hasOwn(props, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (shared.hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ shared.extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !shared.isGloballyAllowed(key); + return has; + } +}); + +function defineProps() { + return null; +} +function defineEmits() { + return null; +} +function defineExpose(exposed) { +} +function defineOptions(options) { +} +function defineSlots() { + return null; +} +function defineModel() { +} +function withDefaults(props, defaults) { + return null; +} +function useSlots() { + return getContext().slots; +} +function useAttrs() { + return getContext().attrs; +} +function getContext(calledFunctionName) { + const i = getCurrentInstance(); + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return shared.isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (shared.isArray(opt) || shared.isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else ; + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (shared.isArray(a) && shared.isArray(b)) return a.concat(b); + return shared.extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (shared.isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = null; + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (shared.isFunction(methodHandler)) { + { + ctx[key] = methodHandler.bind(publicThis); + } + } + } + } + if (dataOptions) { + const data = dataOptions.call(publicThis, publicThis); + if (!shared.isObject(data)) ; else { + instance.data = reactivity.reactive(data); + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = shared.isFunction(opt) ? opt.bind(publicThis, publicThis) : shared.isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : shared.NOOP; + const set = !shared.isFunction(opt) && shared.isFunction(opt.set) ? opt.set.bind(publicThis) : shared.NOOP; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = shared.isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (shared.isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (shared.isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === shared.NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = shared.NOOP) { + if (shared.isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (shared.isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (reactivity.isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + } +} +function callHook(hook, instance, type) { + callWithAsyncErrorHandling( + shared.isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (shared.isString(raw)) { + const handler = ctx[raw]; + if (shared.isFunction(handler)) { + { + watch(getter, handler); + } + } + } else if (shared.isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (shared.isObject(raw)) { + if (shared.isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = shared.isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (shared.isFunction(handler)) { + watch(getter, handler, raw); + } + } + } else ; +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (shared.isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") ; else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (shared.extend)( + shared.isFunction(to) ? to.call(this, this) : to, + shared.isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (shared.isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? shared.extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (shared.isArray(to) && shared.isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return shared.extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = shared.extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: shared.NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!shared.isFunction(rootComponent)) { + rootComponent = shared.extend({}, rootComponent); + } + if (rootProps != null && !shared.isObject(rootProps)) { + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) ; else if (plugin && shared.isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (shared.isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else ; + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } + } + return app; + }, + component(name, component) { + if (!component) { + return context.components[name]; + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + if (!directive) { + return context.directives[name]; + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + return getComponentPublicInstance(vnode.component); + } + }, + onUnmount(cleanupFn) { + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + delete app._container.__vue_app__; + } + }, + provide(key, value) { + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function useModel(props, name, options = shared.EMPTY_OBJ) { + const i = getCurrentInstance(); + const camelizedName = shared.camelize(name); + const hyphenatedName = shared.hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = reactivity.customRef((track, trigger) => { + let localValue; + let prevSetValue = shared.EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (shared.hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!shared.hasChanged(emittedValue, localValue) && !(prevSetValue !== shared.EMPTY_OBJ && shared.hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (shared.hasChanged(value, emittedValue) && shared.hasChanged(value, prevSetValue) && !shared.hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || shared.EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${shared.camelize(modelName)}Modifiers`] || props[`${shared.hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || shared.EMPTY_OBJ; + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => shared.isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(shared.looseToNumber); + } + } + let handlerName; + let handler = props[handlerName = shared.toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = shared.toHandlerKey(shared.camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = shared.toHandlerKey(shared.hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!shared.isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + shared.extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (shared.isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (shared.isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + shared.extend(normalized, raw); + } + if (shared.isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !shared.isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return shared.hasOwn(options, key[0].toLowerCase() + key.slice(1)) || shared.hasOwn(options, shared.hyphenate(key)) || shared.hasOwn(options, key); +} + +function markAttrsAccessed() { +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = false ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + false ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (false) ; + result = normalizeVNode( + render2.length > 1 ? render2( + false ? shallowReadonly(props) : props, + false ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + false ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(shared.isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } + } + } + if (vnode.dirs) { + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + setTransitionHooks(root, vnode.transition); + } + { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || shared.isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!shared.isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && shared.isObject(nextProp) && shared.isObject(prevProp)) { + return !shared.looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + if (isStateful) { + instance.props = isSSR ? props : reactivity.shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = reactivity.toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (shared.hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = shared.camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !shared.hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = shared.hyphenate(key)) === key || !shared.hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !shared.hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + reactivity.trigger(instance.attrs, "set", ""); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (shared.isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && shared.hasOwn(options, camelKey = shared.camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = reactivity.toRaw(props); + const castValues = rawCastValues || shared.EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !shared.hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = shared.hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && shared.isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === shared.hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!shared.isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + shared.extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (shared.isObject(comp)) { + cache.set(comp, shared.EMPTY_ARR); + } + return shared.EMPTY_ARR; + } + if (shared.isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + const normalizedKey = shared.camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = shared.EMPTY_OBJ; + } + } + } else if (raw) { + for (const key in raw) { + const normalizedKey = shared.camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = shared.isArray(opt) || shared.isFunction(opt) ? { type: opt } : shared.extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (shared.isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = shared.isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = shared.isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || shared.hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (shared.isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !shared.isReservedProp(key)) { + return true; + } + return false; +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => shared.isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (false) ; + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (shared.isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + shared.def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = shared.EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = shared.getGlobalThis(); + target.__VUE__ = true; + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = shared.NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else ; + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !shared.isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || shared.EMPTY_OBJ; + const newProps = n2.props || shared.EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== shared.EMPTY_OBJ) { + for (const key in oldProps) { + if (!shared.isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (shared.isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + if ( + // #2080 if the stable fragment has a key, it's a <template v-for> that may + // get moved around. Make sure all root level vnodes inherit el. + // #2134 or if it's a component root, it may also get moved around + // as the component is being moved. + n2.key != null || parentComponent && n2 === parentComponent.subTree + ) { + traverseStaticChildren( + n1, + n2, + true + /* shallow */ + ); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + setupComponent(instance, false, optimized); + } + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + updateComponentPreRender(instance, n2, optimized); + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + shared.invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + instance.subTree = renderComponentRoot(instance); + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + const subTree = instance.subTree = renderComponentRoot(instance); + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + shared.invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + const nextTree = renderComponentRoot(instance); + const prevTree = instance.subTree; + instance.subTree = nextTree; + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new reactivity.ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + reactivity.pauseTracking(); + flushPreFlushCbs(instance); + reactivity.resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || shared.EMPTY_ARR; + c2 = c2 || shared.EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : shared.EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + reactivity.pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + reactivity.resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + shared.invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (shared.isArray(ch1) && shared.isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (shared.isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : void 0; + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (shared.isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (shared.isArray(s)) { + const singleChild = filterSingleRoot(s); + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (shared.isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || shared.EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + return n1.type === n2.type && n1.key === n2.key; +} +function transformVNodeArgs(transformer) { +} +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? shared.isString(ref) || reactivity.isRef(ref) || shared.isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= shared.isString(children) ? 8 : 16; + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = _createVNode; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !shared.isString(klass)) { + props.class = shared.normalizeClass(klass); + } + if (shared.isObject(style)) { + if (reactivity.isProxy(style) && !shared.isArray(style)) { + style = shared.extend({}, style); + } + props.style = shared.normalizeStyle(style); + } + } + const shapeFlag = shared.isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : shared.isObject(type) ? 4 : shared.isFunction(type) ? 2 : 0; + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? shared.isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (shared.isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (shared.isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (shared.isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = shared.normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = shared.normalizeStyle([ret.style, toMerge.style]); + } else if (shared.isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(shared.isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new reactivity.EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: shared.EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: shared.EMPTY_OBJ, + data: shared.EMPTY_OBJ, + props: shared.EMPTY_OBJ, + attrs: shared.EMPTY_OBJ, + slots: shared.EMPTY_OBJ, + refs: shared.EMPTY_OBJ, + setupState: shared.EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = { _: instance }; + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = shared.getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + const { setup } = Component; + if (setup) { + reactivity.pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + instance.props, + setupContext + ] + ); + const isAsyncSetup = shared.isPromise(setupResult); + reactivity.resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (shared.isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (shared.isObject(setupResult)) { + instance.setupState = reactivity.proxyRefs(setupResult); + } else ; + finishComponentSetup(instance, isSSR); +} +let compile; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = shared.extend( + shared.extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile(template, finalCompilerOptions); + } + } + instance.render = Component.render || shared.NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + reactivity.pauseTracking(); + try { + applyOptions(instance); + } finally { + reactivity.resetTracking(); + reset(); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + reactivity.track(target, "get", ""); + return target[key]; + } +}; +function createSetupContext(instance) { + const expose = (exposed) => { + instance.exposed = exposed || {}; + }; + { + return { + attrs: new Proxy(instance.attrs, attrsProxyHandlers), + slots: instance.slots, + emit: instance.emit, + expose + }; + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(reactivity.proxyRefs(reactivity.markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +function getComponentName(Component, includeInferred = true) { + return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function isClassComponent(value) { + return shared.isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup); + return c; +}; + +function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } +} + +function initCustomFormatter() { + { + return; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (shared.hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.28"; +const warn$1 = shared.NOOP; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = void 0; +const setDevtoolsHook = shared.NOOP; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +exports.EffectScope = reactivity.EffectScope; +exports.ReactiveEffect = reactivity.ReactiveEffect; +exports.TrackOpTypes = reactivity.TrackOpTypes; +exports.TriggerOpTypes = reactivity.TriggerOpTypes; +exports.customRef = reactivity.customRef; +exports.effect = reactivity.effect; +exports.effectScope = reactivity.effectScope; +exports.getCurrentScope = reactivity.getCurrentScope; +exports.getCurrentWatcher = reactivity.getCurrentWatcher; +exports.isProxy = reactivity.isProxy; +exports.isReactive = reactivity.isReactive; +exports.isReadonly = reactivity.isReadonly; +exports.isRef = reactivity.isRef; +exports.isShallow = reactivity.isShallow; +exports.markRaw = reactivity.markRaw; +exports.onScopeDispose = reactivity.onScopeDispose; +exports.onWatcherCleanup = reactivity.onWatcherCleanup; +exports.proxyRefs = reactivity.proxyRefs; +exports.reactive = reactivity.reactive; +exports.readonly = reactivity.readonly; +exports.ref = reactivity.ref; +exports.shallowReactive = reactivity.shallowReactive; +exports.shallowReadonly = reactivity.shallowReadonly; +exports.shallowRef = reactivity.shallowRef; +exports.stop = reactivity.stop; +exports.toRaw = reactivity.toRaw; +exports.toRef = reactivity.toRef; +exports.toRefs = reactivity.toRefs; +exports.toValue = reactivity.toValue; +exports.triggerRef = reactivity.triggerRef; +exports.unref = reactivity.unref; +exports.camelize = shared.camelize; +exports.capitalize = shared.capitalize; +exports.normalizeClass = shared.normalizeClass; +exports.normalizeProps = shared.normalizeProps; +exports.normalizeStyle = shared.normalizeStyle; +exports.toDisplayString = shared.toDisplayString; +exports.toHandlerKey = shared.toHandlerKey; +exports.BaseTransition = BaseTransition; +exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; +exports.Comment = Comment; +exports.DeprecationTypes = DeprecationTypes; +exports.ErrorCodes = ErrorCodes; +exports.ErrorTypeStrings = ErrorTypeStrings; +exports.Fragment = Fragment; +exports.KeepAlive = KeepAlive; +exports.Static = Static; +exports.Suspense = Suspense; +exports.Teleport = Teleport; +exports.Text = Text; +exports.assertNumber = assertNumber; +exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; +exports.callWithErrorHandling = callWithErrorHandling; +exports.cloneVNode = cloneVNode; +exports.compatUtils = compatUtils; +exports.computed = computed; +exports.createBlock = createBlock; +exports.createCommentVNode = createCommentVNode; +exports.createElementBlock = createElementBlock; +exports.createElementVNode = createBaseVNode; +exports.createHydrationRenderer = createHydrationRenderer; +exports.createPropsRestProxy = createPropsRestProxy; +exports.createRenderer = createRenderer; +exports.createSlots = createSlots; +exports.createStaticVNode = createStaticVNode; +exports.createTextVNode = createTextVNode; +exports.createVNode = createVNode; +exports.defineAsyncComponent = defineAsyncComponent; +exports.defineComponent = defineComponent; +exports.defineEmits = defineEmits; +exports.defineExpose = defineExpose; +exports.defineModel = defineModel; +exports.defineOptions = defineOptions; +exports.defineProps = defineProps; +exports.defineSlots = defineSlots; +exports.devtools = devtools; +exports.getCurrentInstance = getCurrentInstance; +exports.getTransitionRawChildren = getTransitionRawChildren; +exports.guardReactiveProps = guardReactiveProps; +exports.h = h; +exports.handleError = handleError; +exports.hasInjectionContext = hasInjectionContext; +exports.hydrateOnIdle = hydrateOnIdle; +exports.hydrateOnInteraction = hydrateOnInteraction; +exports.hydrateOnMediaQuery = hydrateOnMediaQuery; +exports.hydrateOnVisible = hydrateOnVisible; +exports.initCustomFormatter = initCustomFormatter; +exports.inject = inject; +exports.isMemoSame = isMemoSame; +exports.isRuntimeOnly = isRuntimeOnly; +exports.isVNode = isVNode; +exports.mergeDefaults = mergeDefaults; +exports.mergeModels = mergeModels; +exports.mergeProps = mergeProps; +exports.nextTick = nextTick; +exports.onActivated = onActivated; +exports.onBeforeMount = onBeforeMount; +exports.onBeforeUnmount = onBeforeUnmount; +exports.onBeforeUpdate = onBeforeUpdate; +exports.onDeactivated = onDeactivated; +exports.onErrorCaptured = onErrorCaptured; +exports.onMounted = onMounted; +exports.onRenderTracked = onRenderTracked; +exports.onRenderTriggered = onRenderTriggered; +exports.onServerPrefetch = onServerPrefetch; +exports.onUnmounted = onUnmounted; +exports.onUpdated = onUpdated; +exports.openBlock = openBlock; +exports.popScopeId = popScopeId; +exports.provide = provide; +exports.pushScopeId = pushScopeId; +exports.queuePostFlushCb = queuePostFlushCb; +exports.registerRuntimeCompiler = registerRuntimeCompiler; +exports.renderList = renderList; +exports.renderSlot = renderSlot; +exports.resolveComponent = resolveComponent; +exports.resolveDirective = resolveDirective; +exports.resolveDynamicComponent = resolveDynamicComponent; +exports.resolveFilter = resolveFilter; +exports.resolveTransitionHooks = resolveTransitionHooks; +exports.setBlockTracking = setBlockTracking; +exports.setDevtoolsHook = setDevtoolsHook; +exports.setTransitionHooks = setTransitionHooks; +exports.ssrContextKey = ssrContextKey; +exports.ssrUtils = ssrUtils; +exports.toHandlers = toHandlers; +exports.transformVNodeArgs = transformVNodeArgs; +exports.useAttrs = useAttrs; +exports.useId = useId; +exports.useModel = useModel; +exports.useSSRContext = useSSRContext; +exports.useSlots = useSlots; +exports.useTemplateRef = useTemplateRef; +exports.useTransitionState = useTransitionState; +exports.version = version; +exports.warn = warn$1; +exports.watch = watch; +exports.watchEffect = watchEffect; +exports.watchPostEffect = watchPostEffect; +exports.watchSyncEffect = watchSyncEffect; +exports.withAsyncContext = withAsyncContext; +exports.withCtx = withCtx; +exports.withDefaults = withDefaults; +exports.withDirectives = withDirectives; +exports.withMemo = withMemo; +exports.withScopeId = withScopeId; diff --git a/node_modules/@vue/runtime-core/dist/runtime-core.d.ts b/node_modules/@vue/runtime-core/dist/runtime-core.d.ts new file mode 100644 index 0000000..fa06932 --- /dev/null +++ b/node_modules/@vue/runtime-core/dist/runtime-core.d.ts @@ -0,0 +1,1839 @@ +import { computed as computed$1, Ref, OnCleanup, WatchStopHandle, ShallowUnwrapRef, UnwrapNestedRefs, DebuggerEvent, ComputedGetter, WritableComputedOptions, WatchCallback, ReactiveEffect, DebuggerOptions, WatchSource, WatchHandle, ReactiveMarker, WatchEffect, ShallowRef, WatchErrorCodes, reactive } from '@vue/reactivity'; +export { ComputedGetter, ComputedRef, ComputedSetter, CustomRefFactory, DebuggerEvent, DebuggerEventExtraInfo, DebuggerOptions, DeepReadonly, EffectScheduler, EffectScope, MaybeRef, MaybeRefOrGetter, Raw, Reactive, ReactiveEffect, ReactiveEffectOptions, ReactiveEffectRunner, ReactiveFlags, Ref, ShallowReactive, ShallowRef, ShallowUnwrapRef, ToRef, ToRefs, TrackOpTypes, TriggerOpTypes, UnwrapNestedRefs, UnwrapRef, WatchCallback, WatchEffect, WatchHandle, WatchSource, WatchStopHandle, WritableComputedOptions, WritableComputedRef, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity'; +import { IfAny, Prettify, UnionToIntersection, LooseRequired, OverloadParameters, IsKeyValues } from '@vue/shared'; +export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared'; + +export declare const computed: typeof computed$1; + +export type Slot<T extends any = any> = (...args: IfAny<T, any[], [T] | (T extends undefined ? [] : never)>) => VNode[]; +type InternalSlots = { + [name: string]: Slot | undefined; +}; +export type Slots = Readonly<InternalSlots>; +declare const SlotSymbol: unique symbol; +export type SlotsType<T extends Record<string, any> = Record<string, any>> = { + [SlotSymbol]?: T; +}; +type StrictUnwrapSlotsType<S extends SlotsType, T = NonNullable<S[typeof SlotSymbol]>> = [keyof S] extends [never] ? Slots : Readonly<T> & T; +type UnwrapSlotsType<S extends SlotsType, T = NonNullable<S[typeof SlotSymbol]>> = [keyof S] extends [never] ? Slots : Readonly<Prettify<{ + [K in keyof T]: NonNullable<T[K]> extends (...args: any[]) => any ? T[K] : Slot<T[K]>; +}>>; +type RawSlots = { + [name: string]: unknown; + $stable?: boolean; +}; + +declare enum SchedulerJobFlags { + QUEUED = 1, + PRE = 2, + /** + * Indicates whether the effect is allowed to recursively trigger itself + * when managed by the scheduler. + * + * By default, a job cannot trigger itself because some built-in method calls, + * e.g. Array.prototype.push actually performs reads as well (#1740) which + * can lead to confusing infinite loops. + * The allowed cases are component update functions and watch callbacks. + * Component update functions may update child component props, which in turn + * trigger flush: "pre" watch callbacks that mutates state that the parent + * relies on (#1801). Watch callbacks doesn't track its dependencies so if it + * triggers itself again, it's likely intentional and it is the user's + * responsibility to perform recursive state mutation that eventually + * stabilizes (#1727). + */ + ALLOW_RECURSE = 4, + DISPOSED = 8 +} +interface SchedulerJob extends Function { + id?: number; + /** + * flags can technically be undefined, but it can still be used in bitwise + * operations just like 0. + */ + flags?: SchedulerJobFlags; + /** + * Attached by renderer.ts when setting up a component's render effect + * Used to obtain component information when reporting max recursive updates. + */ + i?: ComponentInternalInstance; +} +type SchedulerJobs = SchedulerJob | SchedulerJob[]; +export declare function nextTick(): Promise<void>; +export declare function nextTick<T, R>(this: T, fn: (this: T) => R | Promise<R>): Promise<R>; +export declare function queuePostFlushCb(cb: SchedulerJobs): void; + +export type ComponentPropsOptions<P = Data> = ComponentObjectPropsOptions<P> | string[]; +export type ComponentObjectPropsOptions<P = Data> = { + [K in keyof P]: Prop<P[K]> | null; +}; +export type Prop<T, D = T> = PropOptions<T, D> | PropType<T>; +type DefaultFactory<T> = (props: Data) => T | null | undefined; +interface PropOptions<T = any, D = T> { + type?: PropType<T> | true | null; + required?: boolean; + default?: D | DefaultFactory<D> | null | undefined | object; + validator?(value: unknown, props: Data): boolean; +} +export type PropType<T> = PropConstructor<T> | (PropConstructor<T> | null)[]; +type PropConstructor<T = any> = { + new (...args: any[]): T & {}; +} | { + (): T; +} | PropMethod<T>; +type PropMethod<T, TConstructor = any> = [T] extends [ + ((...args: any) => any) | undefined +] ? { + new (): TConstructor; + (): T; + readonly prototype: TConstructor; +} : never; +type RequiredKeys<T> = { + [K in keyof T]: T[K] extends { + required: true; + } | { + default: any; + } | BooleanConstructor | { + type: BooleanConstructor; + } ? T[K] extends { + default: undefined | (() => undefined); + } ? never : K : never; +}[keyof T]; +type OptionalKeys<T> = Exclude<keyof T, RequiredKeys<T>>; +type DefaultKeys<T> = { + [K in keyof T]: T[K] extends { + default: any; + } | BooleanConstructor | { + type: BooleanConstructor; + } ? T[K] extends { + type: BooleanConstructor; + required: true; + } ? never : K : never; +}[keyof T]; +type InferPropType<T, NullAsAny = true> = [T] extends [null] ? NullAsAny extends true ? any : null : [T] extends [{ + type: null | true; +}] ? any : [T] extends [ObjectConstructor | { + type: ObjectConstructor; +}] ? Record<string, any> : [T] extends [BooleanConstructor | { + type: BooleanConstructor; +}] ? boolean : [T] extends [DateConstructor | { + type: DateConstructor; +}] ? Date : [T] extends [(infer U)[] | { + type: (infer U)[]; +}] ? U extends DateConstructor ? Date | InferPropType<U, false> : InferPropType<U, false> : [T] extends [Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? IfAny<V, V, D> : V : V : T; +/** + * Extract prop types from a runtime props options object. + * The extracted types are **internal** - i.e. the resolved props received by + * the component. + * - Boolean props are always present + * - Props with default values are always present + * + * To extract accepted props from the parent, use {@link ExtractPublicPropTypes}. + */ +export type ExtractPropTypes<O> = { + [K in keyof Pick<O, RequiredKeys<O>>]: O[K] extends { + default: any; + } ? Exclude<InferPropType<O[K]>, undefined> : InferPropType<O[K]>; +} & { + [K in keyof Pick<O, OptionalKeys<O>>]?: InferPropType<O[K]>; +}; +type PublicRequiredKeys<T> = { + [K in keyof T]: T[K] extends { + required: true; + } ? K : never; +}[keyof T]; +type PublicOptionalKeys<T> = Exclude<keyof T, PublicRequiredKeys<T>>; +/** + * Extract prop types from a runtime props options object. + * The extracted types are **public** - i.e. the expected props that can be + * passed to component. + */ +export type ExtractPublicPropTypes<O> = { + [K in keyof Pick<O, PublicRequiredKeys<O>>]: InferPropType<O[K]>; +} & { + [K in keyof Pick<O, PublicOptionalKeys<O>>]?: InferPropType<O[K]>; +}; +export type ExtractDefaultPropTypes<O> = O extends object ? { + [K in keyof Pick<O, DefaultKeys<O>>]: InferPropType<O[K]>; +} : {}; + +/** + * Vue `<script setup>` compiler macro for declaring component props. The + * expected argument is the same as the component `props` option. + * + * Example runtime declaration: + * ```js + * // using Array syntax + * const props = defineProps(['foo', 'bar']) + * // using Object syntax + * const props = defineProps({ + * foo: String, + * bar: { + * type: Number, + * required: true + * } + * }) + * ``` + * + * Equivalent type-based declaration: + * ```ts + * // will be compiled into equivalent runtime declarations + * const props = defineProps<{ + * foo?: string + * bar: number + * }>() + * ``` + * + * @see {@link https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits} + * + * This is only usable inside `<script setup>`, is compiled away in the + * output and should **not** be actually called at runtime. + */ +export declare function defineProps<PropNames extends string = string>(props: PropNames[]): Prettify<Readonly<{ + [key in PropNames]?: any; +}>>; +export declare function defineProps<PP extends ComponentObjectPropsOptions = ComponentObjectPropsOptions>(props: PP): Prettify<Readonly<ExtractPropTypes<PP>>>; +export declare function defineProps<TypeProps>(): DefineProps<LooseRequired<TypeProps>, BooleanKey<TypeProps>>; +export type DefineProps<T, BKeys extends keyof T> = Readonly<T> & { + readonly [K in BKeys]-?: boolean; +}; +type BooleanKey<T, K extends keyof T = keyof T> = K extends any ? T[K] extends boolean | undefined ? T[K] extends never | undefined ? never : K : never : never; +/** + * Vue `<script setup>` compiler macro for declaring a component's emitted + * events. The expected argument is the same as the component `emits` option. + * + * Example runtime declaration: + * ```js + * const emit = defineEmits(['change', 'update']) + * ``` + * + * Example type-based declaration: + * ```ts + * const emit = defineEmits<{ + * // <eventName>: <expected arguments> + * change: [] + * update: [value: number] // named tuple syntax + * }>() + * + * emit('change') + * emit('update', 1) + * ``` + * + * This is only usable inside `<script setup>`, is compiled away in the + * output and should **not** be actually called at runtime. + * + * @see {@link https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits} + */ +export declare function defineEmits<EE extends string = string>(emitOptions: EE[]): EmitFn<EE[]>; +export declare function defineEmits<E extends EmitsOptions = EmitsOptions>(emitOptions: E): EmitFn<E>; +export declare function defineEmits<T extends ComponentTypeEmits>(): T extends (...args: any[]) => any ? T : ShortEmits<T>; +export type ComponentTypeEmits = ((...args: any[]) => any) | Record<string, any>; +type RecordToUnion<T extends Record<string, any>> = T[keyof T]; +type ShortEmits<T extends Record<string, any>> = UnionToIntersection<RecordToUnion<{ + [K in keyof T]: (evt: K, ...args: T[K]) => void; +}>>; +/** + * Vue `<script setup>` compiler macro for declaring a component's exposed + * instance properties when it is accessed by a parent component via template + * refs. + * + * `<script setup>` components are closed by default - i.e. variables inside + * the `<script setup>` scope is not exposed to parent unless explicitly exposed + * via `defineExpose`. + * + * This is only usable inside `<script setup>`, is compiled away in the + * output and should **not** be actually called at runtime. + * + * @see {@link https://vuejs.org/api/sfc-script-setup.html#defineexpose} + */ +export declare function defineExpose<Exposed extends Record<string, any> = Record<string, any>>(exposed?: Exposed): void; +/** + * Vue `<script setup>` compiler macro for declaring a component's additional + * options. This should be used only for options that cannot be expressed via + * Composition API - e.g. `inheritAttrs`. + * + * @see {@link https://vuejs.org/api/sfc-script-setup.html#defineoptions} + */ +export declare function defineOptions<RawBindings = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin>(options?: ComponentOptionsBase<{}, RawBindings, D, C, M, Mixin, Extends, {}> & { + /** + * props should be defined via defineProps(). + */ + props?: never; + /** + * emits should be defined via defineEmits(). + */ + emits?: never; + /** + * expose should be defined via defineExpose(). + */ + expose?: never; + /** + * slots should be defined via defineSlots(). + */ + slots?: never; +}): void; +export declare function defineSlots<S extends Record<string, any> = Record<string, any>>(): StrictUnwrapSlotsType<SlotsType<S>>; +export type ModelRef<T, M extends PropertyKey = string, G = T, S = T> = Ref<G, S> & [ + ModelRef<T, M, G, S>, + Record<M, true | undefined> +]; +type DefineModelOptions<T = any, G = T, S = T> = { + get?: (v: T) => G; + set?: (v: S) => any; +}; +/** + * Vue `<script setup>` compiler macro for declaring a + * two-way binding prop that can be consumed via `v-model` from the parent + * component. This will declare a prop with the same name and a corresponding + * `update:propName` event. + * + * If the first argument is a string, it will be used as the prop name; + * Otherwise the prop name will default to "modelValue". In both cases, you + * can also pass an additional object which will be used as the prop's options. + * + * The returned ref behaves differently depending on whether the parent + * provided the corresponding v-model props or not: + * - If yes, the returned ref's value will always be in sync with the parent + * prop. + * - If not, the returned ref will behave like a normal local ref. + * + * @example + * ```ts + * // default model (consumed via `v-model`) + * const modelValue = defineModel<string>() + * modelValue.value = "hello" + * + * // default model with options + * const modelValue = defineModel<string>({ required: true }) + * + * // with specified name (consumed via `v-model:count`) + * const count = defineModel<number>('count') + * count.value++ + * + * // with specified name and default value + * const count = defineModel<number>('count', { default: 0 }) + * ``` + */ +export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: ({ + default: any; +} | { + required: true; +}) & PropOptions<T> & DefineModelOptions<T, G, S>): ModelRef<T, M, G, S>; +export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options?: PropOptions<T> & DefineModelOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>; +export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: ({ + default: any; +} | { + required: true; +}) & PropOptions<T> & DefineModelOptions<T, G, S>): ModelRef<T, M, G, S>; +export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options?: PropOptions<T> & DefineModelOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>; +type NotUndefined<T> = T extends undefined ? never : T; +type MappedOmit<T, K extends keyof any> = { + [P in keyof T as P extends K ? never : P]: T[P]; +}; +type InferDefaults<T> = { + [K in keyof T]?: InferDefault<T, T[K]>; +}; +type NativeType = null | undefined | number | string | boolean | symbol | Function; +type InferDefault<P, T> = ((props: P) => T & {}) | (T extends NativeType ? T : never); +type PropsWithDefaults<T, Defaults extends InferDefaults<T>, BKeys extends keyof T> = T extends unknown ? Readonly<MappedOmit<T, keyof Defaults>> & { + readonly [K in keyof Defaults as K extends keyof T ? K : never]-?: K extends keyof T ? Defaults[K] extends undefined ? IfAny<Defaults[K], NotUndefined<T[K]>, T[K]> : NotUndefined<T[K]> : never; +} & { + readonly [K in BKeys]-?: K extends keyof Defaults ? Defaults[K] extends undefined ? boolean | undefined : boolean : boolean; +} : never; +/** + * Vue `<script setup>` compiler macro for providing props default values when + * using type-based `defineProps` declaration. + * + * Example usage: + * ```ts + * withDefaults(defineProps<{ + * size?: number + * labels?: string[] + * }>(), { + * size: 3, + * labels: () => ['default label'] + * }) + * ``` + * + * This is only usable inside `<script setup>`, is compiled away in the output + * and should **not** be actually called at runtime. + * + * @see {@link https://vuejs.org/guide/typescript/composition-api.html#typing-component-props} + */ +export declare function withDefaults<T, BKeys extends keyof T, Defaults extends InferDefaults<T>>(props: DefineProps<T, BKeys>, defaults: Defaults): PropsWithDefaults<T, Defaults, BKeys>; +export declare function useSlots(): SetupContext['slots']; +export declare function useAttrs(): SetupContext['attrs']; + +export type ObjectEmitsOptions = Record<string, ((...args: any[]) => any) | null>; +export type EmitsOptions = ObjectEmitsOptions | string[]; +export type EmitsToProps<T extends EmitsOptions | ComponentTypeEmits> = T extends string[] ? { + [K in `on${Capitalize<T[number]>}`]?: (...args: any[]) => any; +} : T extends ObjectEmitsOptions ? { + [K in string & keyof T as `on${Capitalize<K>}`]?: (...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any; +} : {}; +type TypeEmitsToOptions<T extends ComponentTypeEmits> = { + [K in keyof T & string]: T[K] extends [...args: infer Args] ? (...args: Args) => any : () => any; +} & (T extends (...args: any[]) => any ? ParametersToFns<OverloadParameters<T>> : {}); +type ParametersToFns<T extends any[]> = { + [K in T[0]]: IsStringLiteral<K> extends true ? (...args: T extends [e: infer E, ...args: infer P] ? K extends E ? P : never : never) => any : never; +}; +type IsStringLiteral<T> = T extends string ? string extends T ? false : true : false; +export type ShortEmitsToObject<E> = E extends Record<string, any[]> ? { + [K in keyof E]: (...args: E[K]) => any; +} : E; +export type EmitFn<Options = ObjectEmitsOptions, Event extends keyof Options = keyof Options> = Options extends Array<infer V> ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection<{ + [key in Event]: Options[key] extends (...args: infer Args) => any ? (event: key, ...args: Args) => void : Options[key] extends any[] ? (event: key, ...args: Options[key]) => void : (event: key, ...args: any[]) => void; +}[Event]>; + +/** +Runtime helper for applying directives to a vnode. Example usage: + +const comp = resolveComponent('comp') +const foo = resolveDirective('foo') +const bar = resolveDirective('bar') + +return withDirectives(h(comp), [ + [foo, this.x], + [bar, this.y] +]) +*/ + +export interface DirectiveBinding<Value = any, Modifiers extends string = string, Arg = any> { + instance: ComponentPublicInstance | Record<string, any> | null; + value: Value; + oldValue: Value | null; + arg?: Arg; + modifiers: DirectiveModifiers<Modifiers>; + dir: ObjectDirective<any, Value, Modifiers, Arg>; +} +export type DirectiveHook<HostElement = any, Prev = VNode<any, HostElement> | null, Value = any, Modifiers extends string = string, Arg = any> = (el: HostElement, binding: DirectiveBinding<Value, Modifiers, Arg>, vnode: VNode<any, HostElement>, prevVNode: Prev) => void; +type SSRDirectiveHook<Value = any, Modifiers extends string = string, Arg = any> = (binding: DirectiveBinding<Value, Modifiers, Arg>, vnode: VNode) => Data | undefined; +export interface ObjectDirective<HostElement = any, Value = any, Modifiers extends string = string, Arg = any> { + created?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>; + beforeMount?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>; + mounted?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>; + beforeUpdate?: DirectiveHook<HostElement, VNode<any, HostElement>, Value, Modifiers, Arg>; + updated?: DirectiveHook<HostElement, VNode<any, HostElement>, Value, Modifiers, Arg>; + beforeUnmount?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>; + unmounted?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>; + getSSRProps?: SSRDirectiveHook<Value, Modifiers, Arg>; + deep?: boolean; +} +export type FunctionDirective<HostElement = any, V = any, Modifiers extends string = string, Arg = any> = DirectiveHook<HostElement, any, V, Modifiers, Arg>; +export type Directive<HostElement = any, Value = any, Modifiers extends string = string, Arg = any> = ObjectDirective<HostElement, Value, Modifiers, Arg> | FunctionDirective<HostElement, Value, Modifiers, Arg>; +export type DirectiveModifiers<K extends string = string> = Partial<Record<K, boolean>>; +export type DirectiveArguments = Array<[Directive | undefined] | [Directive | undefined, any] | [Directive | undefined, any, any] | [Directive | undefined, any, any, DirectiveModifiers]>; +/** + * Adds directives to a VNode. + */ +export declare function withDirectives<T extends VNode>(vnode: T, directives: DirectiveArguments): T; + +/** + * Custom properties added to component instances in any way and can be accessed through `this` + * + * @example + * Here is an example of adding a property `$router` to every component instance: + * ```ts + * import { createApp } from 'vue' + * import { Router, createRouter } from 'vue-router' + * + * declare module 'vue' { + * interface ComponentCustomProperties { + * $router: Router + * } + * } + * + * // effectively adding the router to every component instance + * const app = createApp({}) + * const router = createRouter() + * app.config.globalProperties.$router = router + * + * const vm = app.mount('#app') + * // we can access the router from the instance + * vm.$router.push('/') + * ``` + */ +export interface ComponentCustomProperties { +} +type IsDefaultMixinComponent<T> = T extends ComponentOptionsMixin ? ComponentOptionsMixin extends T ? true : false : false; +type MixinToOptionTypes<T> = T extends ComponentOptionsBase<infer P, infer B, infer D, infer C, infer M, infer Mixin, infer Extends, any, any, infer Defaults, any, any, any, any, any, any, any> ? OptionTypesType<P & {}, B & {}, D & {}, C & {}, M & {}, Defaults & {}> & IntersectionMixin<Mixin> & IntersectionMixin<Extends> : never; +type ExtractMixin<T> = { + Mixin: MixinToOptionTypes<T>; +}[T extends ComponentOptionsMixin ? 'Mixin' : never]; +type IntersectionMixin<T> = IsDefaultMixinComponent<T> extends true ? OptionTypesType : UnionToIntersection<ExtractMixin<T>>; +type UnwrapMixinsType<T, Type extends OptionTypesKeys> = T extends OptionTypesType ? T[Type] : never; +type EnsureNonVoid<T> = T extends void ? {} : T; +type ComponentPublicInstanceConstructor<T extends ComponentPublicInstance<Props, RawBindings, D, C, M> = ComponentPublicInstance<any>, Props = any, RawBindings = any, D = any, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions> = { + __isFragment?: never; + __isTeleport?: never; + __isSuspense?: never; + new (...args: any[]): T; +}; +/** + * @deprecated This is no longer used internally, but exported and relied on by + * existing library types generated by vue-tsc. + */ +export type CreateComponentPublicInstance<P = {}, B = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, PublicProps = P, Defaults = {}, MakeDefaultsOptional extends boolean = false, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>, PublicP = UnwrapMixinsType<PublicMixin, 'P'> & EnsureNonVoid<P>, PublicB = UnwrapMixinsType<PublicMixin, 'B'> & EnsureNonVoid<B>, PublicD = UnwrapMixinsType<PublicMixin, 'D'> & EnsureNonVoid<D>, PublicC extends ComputedOptions = UnwrapMixinsType<PublicMixin, 'C'> & EnsureNonVoid<C>, PublicM extends MethodOptions = UnwrapMixinsType<PublicMixin, 'M'> & EnsureNonVoid<M>, PublicDefaults = UnwrapMixinsType<PublicMixin, 'Defaults'> & EnsureNonVoid<Defaults>> = ComponentPublicInstance<PublicP, PublicB, PublicD, PublicC, PublicM, E, PublicProps, PublicDefaults, MakeDefaultsOptional, ComponentOptionsBase<P, B, D, C, M, Mixin, Extends, E, string, Defaults, {}, string, S>, I, S>; +/** + * This is the same as `CreateComponentPublicInstance` but adds local components, + * global directives, exposed, and provide inference. + * It changes the arguments order so that we don't need to repeat mixin + * inference everywhere internally, but it has to be a new type to avoid + * breaking types that relies on previous arguments order (#10842) + */ +export type CreateComponentPublicInstanceWithMixins<P = {}, B = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, PublicProps = P, Defaults = {}, MakeDefaultsOptional extends boolean = false, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, TypeRefs extends Data = {}, TypeEl extends Element = any, Provide extends ComponentProvideOptions = ComponentProvideOptions, PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>, PublicP = UnwrapMixinsType<PublicMixin, 'P'> & EnsureNonVoid<P>, PublicB = UnwrapMixinsType<PublicMixin, 'B'> & EnsureNonVoid<B>, PublicD = UnwrapMixinsType<PublicMixin, 'D'> & EnsureNonVoid<D>, PublicC extends ComputedOptions = UnwrapMixinsType<PublicMixin, 'C'> & EnsureNonVoid<C>, PublicM extends MethodOptions = UnwrapMixinsType<PublicMixin, 'M'> & EnsureNonVoid<M>, PublicDefaults = UnwrapMixinsType<PublicMixin, 'Defaults'> & EnsureNonVoid<Defaults>> = ComponentPublicInstance<PublicP, PublicB, PublicD, PublicC, PublicM, E, PublicProps, PublicDefaults, MakeDefaultsOptional, ComponentOptionsBase<P, B, D, C, M, Mixin, Extends, E, string, Defaults, {}, string, S, LC, Directives, Exposed, Provide>, I, S, Exposed, TypeRefs, TypeEl>; +type ExposedKeys<T, Exposed extends string & keyof T> = '' extends Exposed ? T : Pick<T, Exposed>; +export type ComponentPublicInstance<P = {}, // props type extracted from props option +B = {}, // raw bindings returned from setup() +D = {}, // return from data() +C extends ComputedOptions = {}, M extends MethodOptions = {}, E extends EmitsOptions = {}, PublicProps = {}, Defaults = {}, MakeDefaultsOptional extends boolean = false, Options = ComponentOptionsBase<any, any, any, any, any, any, any, any, any>, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, Exposed extends string = '', TypeRefs extends Data = {}, TypeEl extends Element = any> = { + $: ComponentInternalInstance; + $data: D; + $props: MakeDefaultsOptional extends true ? Partial<Defaults> & Omit<Prettify<P> & PublicProps, keyof Defaults> : Prettify<P> & PublicProps; + $attrs: Data; + $refs: Data & TypeRefs; + $slots: UnwrapSlotsType<S>; + $root: ComponentPublicInstance | null; + $parent: ComponentPublicInstance | null; + $host: Element | null; + $emit: EmitFn<E>; + $el: TypeEl; + $options: Options & MergedComponentOptionsOverride; + $forceUpdate: () => void; + $nextTick: typeof nextTick; + $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle; +} & ExposedKeys<IfAny<P, P, Readonly<Defaults> & Omit<P, keyof ShallowUnwrapRef<B> | keyof Defaults>> & ShallowUnwrapRef<B> & UnwrapNestedRefs<D> & ExtractComputedReturns<C> & M & ComponentCustomProperties & InjectToObject<I>, Exposed>; + +declare enum LifecycleHooks { + BEFORE_CREATE = "bc", + CREATED = "c", + BEFORE_MOUNT = "bm", + MOUNTED = "m", + BEFORE_UPDATE = "bu", + UPDATED = "u", + BEFORE_UNMOUNT = "bum", + UNMOUNTED = "um", + DEACTIVATED = "da", + ACTIVATED = "a", + RENDER_TRIGGERED = "rtg", + RENDER_TRACKED = "rtc", + ERROR_CAPTURED = "ec", + SERVER_PREFETCH = "sp" +} + +export interface SuspenseProps { + onResolve?: () => void; + onPending?: () => void; + onFallback?: () => void; + timeout?: string | number; + /** + * Allow suspense to be captured by parent suspense + * + * @default false + */ + suspensible?: boolean; +} +declare const SuspenseImpl: { + name: string; + __isSuspense: boolean; + process(n1: VNode | null, n2: VNode, container: RendererElement, anchor: RendererNode | null, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null, optimized: boolean, rendererInternals: RendererInternals): void; + hydrate: typeof hydrateSuspense; + normalize: typeof normalizeSuspenseChildren; +}; +export declare const Suspense: { + __isSuspense: true; + new (): { + $props: VNodeProps & SuspenseProps; + $slots: { + default(): VNode[]; + fallback(): VNode[]; + }; + }; +}; +export interface SuspenseBoundary { + vnode: VNode<RendererNode, RendererElement, SuspenseProps>; + parent: SuspenseBoundary | null; + parentComponent: ComponentInternalInstance | null; + namespace: ElementNamespace; + container: RendererElement; + hiddenContainer: RendererElement; + activeBranch: VNode | null; + pendingBranch: VNode | null; + deps: number; + pendingId: number; + timeout: number; + isInFallback: boolean; + isHydrating: boolean; + isUnmounted: boolean; + effects: Function[]; + resolve(force?: boolean, sync?: boolean): void; + fallback(fallbackVNode: VNode): void; + move(container: RendererElement, anchor: RendererNode | null, type: MoveType): void; + next(): RendererNode | null; + registerDep(instance: ComponentInternalInstance, setupRenderEffect: SetupRenderEffectFn, optimized: boolean): void; + unmount(parentSuspense: SuspenseBoundary | null, doRemove?: boolean): void; +} +declare function hydrateSuspense(node: Node, vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null, optimized: boolean, rendererInternals: RendererInternals, hydrateNode: (node: Node, vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized: boolean) => Node | null): Node | null; +declare function normalizeSuspenseChildren(vnode: VNode): void; + +export type RootHydrateFunction = (vnode: VNode<Node, Element>, container: (Element | ShadowRoot) & { + _vnode?: VNode; +}) => void; + +type Hook<T = () => void> = T | T[]; +export interface BaseTransitionProps<HostElement = RendererElement> { + mode?: 'in-out' | 'out-in' | 'default'; + appear?: boolean; + persisted?: boolean; + onBeforeEnter?: Hook<(el: HostElement) => void>; + onEnter?: Hook<(el: HostElement, done: () => void) => void>; + onAfterEnter?: Hook<(el: HostElement) => void>; + onEnterCancelled?: Hook<(el: HostElement) => void>; + onBeforeLeave?: Hook<(el: HostElement) => void>; + onLeave?: Hook<(el: HostElement, done: () => void) => void>; + onAfterLeave?: Hook<(el: HostElement) => void>; + onLeaveCancelled?: Hook<(el: HostElement) => void>; + onBeforeAppear?: Hook<(el: HostElement) => void>; + onAppear?: Hook<(el: HostElement, done: () => void) => void>; + onAfterAppear?: Hook<(el: HostElement) => void>; + onAppearCancelled?: Hook<(el: HostElement) => void>; +} +export interface TransitionHooks<HostElement = RendererElement> { + mode: BaseTransitionProps['mode']; + persisted: boolean; + beforeEnter(el: HostElement): void; + enter(el: HostElement): void; + leave(el: HostElement, remove: () => void): void; + clone(vnode: VNode): TransitionHooks<HostElement>; + afterLeave?(): void; + delayLeave?(el: HostElement, earlyRemove: () => void, delayedLeave: () => void): void; + delayedLeave?(): void; +} +export interface TransitionState { + isMounted: boolean; + isLeaving: boolean; + isUnmounting: boolean; + leavingVNodes: Map<any, Record<string, VNode>>; +} +export declare function useTransitionState(): TransitionState; +export declare const BaseTransitionPropsValidators: Record<string, any>; +export declare const BaseTransition: { + new (): { + $props: BaseTransitionProps<any>; + $slots: { + default(): VNode[]; + }; + }; +}; +export declare function resolveTransitionHooks(vnode: VNode, props: BaseTransitionProps<any>, state: TransitionState, instance: ComponentInternalInstance, postClone?: (hooks: TransitionHooks) => void): TransitionHooks; +export declare function setTransitionHooks(vnode: VNode, hooks: TransitionHooks): void; +export declare function getTransitionRawChildren(children: VNode[], keepComment?: boolean, parentKey?: VNode['key']): VNode[]; + +export interface Renderer<HostElement = RendererElement> { + render: RootRenderFunction<HostElement>; + createApp: CreateAppFunction<HostElement>; +} +export interface HydrationRenderer extends Renderer<Element | ShadowRoot> { + hydrate: RootHydrateFunction; +} +export type ElementNamespace = 'svg' | 'mathml' | undefined; +export type RootRenderFunction<HostElement = RendererElement> = (vnode: VNode | null, container: HostElement, namespace?: ElementNamespace) => void; +export interface RendererOptions<HostNode = RendererNode, HostElement = RendererElement> { + patchProp(el: HostElement, key: string, prevValue: any, nextValue: any, namespace?: ElementNamespace, parentComponent?: ComponentInternalInstance | null): void; + insert(el: HostNode, parent: HostElement, anchor?: HostNode | null): void; + remove(el: HostNode): void; + createElement(type: string, namespace?: ElementNamespace, isCustomizedBuiltIn?: string, vnodeProps?: (VNodeProps & { + [key: string]: any; + }) | null): HostElement; + createText(text: string): HostNode; + createComment(text: string): HostNode; + setText(node: HostNode, text: string): void; + setElementText(node: HostElement, text: string): void; + parentNode(node: HostNode): HostElement | null; + nextSibling(node: HostNode): HostNode | null; + querySelector?(selector: string): HostElement | null; + setScopeId?(el: HostElement, id: string): void; + cloneNode?(node: HostNode): HostNode; + insertStaticContent?(content: string, parent: HostElement, anchor: HostNode | null, namespace: ElementNamespace, start?: HostNode | null, end?: HostNode | null): [HostNode, HostNode]; +} +export interface RendererNode { + [key: string | symbol]: any; +} +export interface RendererElement extends RendererNode { +} +interface RendererInternals<HostNode = RendererNode, HostElement = RendererElement> { + p: PatchFn; + um: UnmountFn; + r: RemoveFn; + m: MoveFn; + mt: MountComponentFn; + mc: MountChildrenFn; + pc: PatchChildrenFn; + pbc: PatchBlockChildrenFn; + n: NextFn; + o: RendererOptions<HostNode, HostElement>; +} +type PatchFn = (n1: VNode | null, // null means this is a mount +n2: VNode, container: RendererElement, anchor?: RendererNode | null, parentComponent?: ComponentInternalInstance | null, parentSuspense?: SuspenseBoundary | null, namespace?: ElementNamespace, slotScopeIds?: string[] | null, optimized?: boolean) => void; +type MountChildrenFn = (children: VNodeArrayChildren, container: RendererElement, anchor: RendererNode | null, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null, optimized: boolean, start?: number) => void; +type PatchChildrenFn = (n1: VNode | null, n2: VNode, container: RendererElement, anchor: RendererNode | null, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null, optimized: boolean) => void; +type PatchBlockChildrenFn = (oldChildren: VNode[], newChildren: VNode[], fallbackContainer: RendererElement, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null) => void; +type MoveFn = (vnode: VNode, container: RendererElement, anchor: RendererNode | null, type: MoveType, parentSuspense?: SuspenseBoundary | null) => void; +type NextFn = (vnode: VNode) => RendererNode | null; +type UnmountFn = (vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, doRemove?: boolean, optimized?: boolean) => void; +type RemoveFn = (vnode: VNode) => void; +type MountComponentFn = (initialVNode: VNode, container: RendererElement, anchor: RendererNode | null, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, optimized: boolean) => void; +type SetupRenderEffectFn = (instance: ComponentInternalInstance, initialVNode: VNode, container: RendererElement, anchor: RendererNode | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, optimized: boolean) => void; +declare enum MoveType { + ENTER = 0, + LEAVE = 1, + REORDER = 2 +} +/** + * The createRenderer function accepts two generic arguments: + * HostNode and HostElement, corresponding to Node and Element types in the + * host environment. For example, for runtime-dom, HostNode would be the DOM + * `Node` interface and HostElement would be the DOM `Element` interface. + * + * Custom renderers can pass in the platform specific types like this: + * + * ``` js + * const { render, createApp } = createRenderer<Node, Element>({ + * patchProp, + * ...nodeOps + * }) + * ``` + */ +export declare function createRenderer<HostNode = RendererNode, HostElement = RendererElement>(options: RendererOptions<HostNode, HostElement>): Renderer<HostElement>; +export declare function createHydrationRenderer(options: RendererOptions<Node, Element>): HydrationRenderer; + +type MatchPattern = string | RegExp | (string | RegExp)[]; +export interface KeepAliveProps { + include?: MatchPattern; + exclude?: MatchPattern; + max?: number | string; +} +export declare const KeepAlive: { + __isKeepAlive: true; + new (): { + $props: VNodeProps & KeepAliveProps; + $slots: { + default(): VNode[]; + }; + }; +}; +export declare function onActivated(hook: Function, target?: ComponentInternalInstance | null): void; +export declare function onDeactivated(hook: Function, target?: ComponentInternalInstance | null): void; + +type CreateHook<T = any> = (hook: T, target?: ComponentInternalInstance | null) => void; +export declare const onBeforeMount: CreateHook; +export declare const onMounted: CreateHook; +export declare const onBeforeUpdate: CreateHook; +export declare const onUpdated: CreateHook; +export declare const onBeforeUnmount: CreateHook; +export declare const onUnmounted: CreateHook; +export declare const onServerPrefetch: CreateHook; +type DebuggerHook = (e: DebuggerEvent) => void; +export declare const onRenderTriggered: CreateHook<DebuggerHook>; +export declare const onRenderTracked: CreateHook<DebuggerHook>; +type ErrorCapturedHook<TError = unknown> = (err: TError, instance: ComponentPublicInstance | null, info: string) => boolean | void; +export declare function onErrorCaptured<TError = Error>(hook: ErrorCapturedHook<TError>, target?: ComponentInternalInstance | null): void; + +declare enum DeprecationTypes$1 { + GLOBAL_MOUNT = "GLOBAL_MOUNT", + GLOBAL_MOUNT_CONTAINER = "GLOBAL_MOUNT_CONTAINER", + GLOBAL_EXTEND = "GLOBAL_EXTEND", + GLOBAL_PROTOTYPE = "GLOBAL_PROTOTYPE", + GLOBAL_SET = "GLOBAL_SET", + GLOBAL_DELETE = "GLOBAL_DELETE", + GLOBAL_OBSERVABLE = "GLOBAL_OBSERVABLE", + GLOBAL_PRIVATE_UTIL = "GLOBAL_PRIVATE_UTIL", + CONFIG_SILENT = "CONFIG_SILENT", + CONFIG_DEVTOOLS = "CONFIG_DEVTOOLS", + CONFIG_KEY_CODES = "CONFIG_KEY_CODES", + CONFIG_PRODUCTION_TIP = "CONFIG_PRODUCTION_TIP", + CONFIG_IGNORED_ELEMENTS = "CONFIG_IGNORED_ELEMENTS", + CONFIG_WHITESPACE = "CONFIG_WHITESPACE", + CONFIG_OPTION_MERGE_STRATS = "CONFIG_OPTION_MERGE_STRATS", + INSTANCE_SET = "INSTANCE_SET", + INSTANCE_DELETE = "INSTANCE_DELETE", + INSTANCE_DESTROY = "INSTANCE_DESTROY", + INSTANCE_EVENT_EMITTER = "INSTANCE_EVENT_EMITTER", + INSTANCE_EVENT_HOOKS = "INSTANCE_EVENT_HOOKS", + INSTANCE_CHILDREN = "INSTANCE_CHILDREN", + INSTANCE_LISTENERS = "INSTANCE_LISTENERS", + INSTANCE_SCOPED_SLOTS = "INSTANCE_SCOPED_SLOTS", + INSTANCE_ATTRS_CLASS_STYLE = "INSTANCE_ATTRS_CLASS_STYLE", + OPTIONS_DATA_FN = "OPTIONS_DATA_FN", + OPTIONS_DATA_MERGE = "OPTIONS_DATA_MERGE", + OPTIONS_BEFORE_DESTROY = "OPTIONS_BEFORE_DESTROY", + OPTIONS_DESTROYED = "OPTIONS_DESTROYED", + WATCH_ARRAY = "WATCH_ARRAY", + PROPS_DEFAULT_THIS = "PROPS_DEFAULT_THIS", + V_ON_KEYCODE_MODIFIER = "V_ON_KEYCODE_MODIFIER", + CUSTOM_DIR = "CUSTOM_DIR", + ATTR_FALSE_VALUE = "ATTR_FALSE_VALUE", + ATTR_ENUMERATED_COERCION = "ATTR_ENUMERATED_COERCION", + TRANSITION_CLASSES = "TRANSITION_CLASSES", + TRANSITION_GROUP_ROOT = "TRANSITION_GROUP_ROOT", + COMPONENT_ASYNC = "COMPONENT_ASYNC", + COMPONENT_FUNCTIONAL = "COMPONENT_FUNCTIONAL", + COMPONENT_V_MODEL = "COMPONENT_V_MODEL", + RENDER_FUNCTION = "RENDER_FUNCTION", + FILTERS = "FILTERS", + PRIVATE_APIS = "PRIVATE_APIS" +} +type CompatConfig = Partial<Record<DeprecationTypes$1, boolean | 'suppress-warning'>> & { + MODE?: 2 | 3 | ((comp: Component | null) => 2 | 3); +}; +declare function configureCompat(config: CompatConfig): void; + +/** + * Interface for declaring custom options. + * + * @example + * ```ts + * declare module 'vue' { + * interface ComponentCustomOptions { + * beforeRouteUpdate?( + * to: Route, + * from: Route, + * next: () => void + * ): void + * } + * } + * ``` + */ +export interface ComponentCustomOptions { +} +export type RenderFunction = () => VNodeChild; +export interface ComponentOptionsBase<Props, RawBindings, D, C extends ComputedOptions, M extends MethodOptions, Mixin extends ComponentOptionsMixin, Extends extends ComponentOptionsMixin, E extends EmitsOptions, EE extends string = string, Defaults = {}, I extends ComponentInjectOptions = {}, II extends string = string, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions> extends LegacyOptions<Props, D, C, M, Mixin, Extends, I, II, Provide>, ComponentInternalOptions, ComponentCustomOptions { + setup?: (this: void, props: LooseRequired<Props & Prettify<UnwrapMixinsType<IntersectionMixin<Mixin> & IntersectionMixin<Extends>, 'P'>>>, ctx: SetupContext<E, S>) => Promise<RawBindings> | RawBindings | RenderFunction | void; + name?: string; + template?: string | object; + render?: Function; + components?: LC & Record<string, Component>; + directives?: Directives & Record<string, Directive>; + inheritAttrs?: boolean; + emits?: (E | EE[]) & ThisType<void>; + slots?: S; + expose?: Exposed[]; + serverPrefetch?(): void | Promise<any>; + compilerOptions?: RuntimeCompilerOptions; + call?: (this: unknown, ...args: unknown[]) => never; + __isFragment?: never; + __isTeleport?: never; + __isSuspense?: never; + __defaults?: Defaults; +} +/** + * Subset of compiler options that makes sense for the runtime. + */ +export interface RuntimeCompilerOptions { + isCustomElement?: (tag: string) => boolean; + whitespace?: 'preserve' | 'condense'; + comments?: boolean; + delimiters?: [string, string]; +} +export type ComponentOptions<Props = {}, RawBindings = any, D = any, C extends ComputedOptions = any, M extends MethodOptions = any, Mixin extends ComponentOptionsMixin = any, Extends extends ComponentOptionsMixin = any, E extends EmitsOptions = any, EE extends string = string, Defaults = {}, I extends ComponentInjectOptions = {}, II extends string = string, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions> = ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, Defaults, I, II, S, LC, Directives, Exposed, Provide> & ThisType<CreateComponentPublicInstanceWithMixins<{}, RawBindings, D, C, M, Mixin, Extends, E, Readonly<Props>, Defaults, false, I, S, LC, Directives>>; +export type ComponentOptionsMixin = ComponentOptionsBase<any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>; +export type ComputedOptions = Record<string, ComputedGetter<any> | WritableComputedOptions<any>>; +export interface MethodOptions { + [key: string]: Function; +} +type ExtractComputedReturns<T extends any> = { + [key in keyof T]: T[key] extends { + get: (...args: any[]) => infer TReturn; + } ? TReturn : T[key] extends (...args: any[]) => infer TReturn ? TReturn : never; +}; +type ObjectWatchOptionItem = { + handler: WatchCallback | string; +} & WatchOptions; +type WatchOptionItem = string | WatchCallback | ObjectWatchOptionItem; +type ComponentWatchOptionItem = WatchOptionItem | WatchOptionItem[]; +type ComponentWatchOptions = Record<string, ComponentWatchOptionItem>; +export type ComponentProvideOptions = ObjectProvideOptions | Function; +type ObjectProvideOptions = Record<string | symbol, unknown>; +export type ComponentInjectOptions = string[] | ObjectInjectOptions; +type ObjectInjectOptions = Record<string | symbol, string | symbol | { + from?: string | symbol; + default?: unknown; +}>; +type InjectToObject<T extends ComponentInjectOptions> = T extends string[] ? { + [K in T[number]]?: unknown; +} : T extends ObjectInjectOptions ? { + [K in keyof T]?: unknown; +} : never; +interface LegacyOptions<Props, D, C extends ComputedOptions, M extends MethodOptions, Mixin extends ComponentOptionsMixin, Extends extends ComponentOptionsMixin, I extends ComponentInjectOptions, II extends string, Provide extends ComponentProvideOptions = ComponentProvideOptions> { + compatConfig?: CompatConfig; + [key: string]: any; + data?: (this: CreateComponentPublicInstanceWithMixins<Props, {}, {}, {}, MethodOptions, Mixin, Extends>, vm: CreateComponentPublicInstanceWithMixins<Props, {}, {}, {}, MethodOptions, Mixin, Extends>) => D; + computed?: C; + methods?: M; + watch?: ComponentWatchOptions; + provide?: Provide; + inject?: I | II[]; + filters?: Record<string, Function>; + mixins?: Mixin[]; + extends?: Extends; + beforeCreate?(): any; + created?(): any; + beforeMount?(): any; + mounted?(): any; + beforeUpdate?(): any; + updated?(): any; + activated?(): any; + deactivated?(): any; + /** @deprecated use `beforeUnmount` instead */ + beforeDestroy?(): any; + beforeUnmount?(): any; + /** @deprecated use `unmounted` instead */ + destroyed?(): any; + unmounted?(): any; + renderTracked?: DebuggerHook; + renderTriggered?: DebuggerHook; + errorCaptured?: ErrorCapturedHook; + /** + * runtime compile only + * @deprecated use `compilerOptions.delimiters` instead. + */ + delimiters?: [string, string]; + /** + * #3468 + * + * type-only, used to assist Mixin's type inference, + * TypeScript will try to simplify the inferred `Mixin` type, + * with the `__differentiator`, TypeScript won't be able to combine different mixins, + * because the `__differentiator` will be different + */ + __differentiator?: keyof D | keyof C | keyof M; +} +type MergedHook<T = () => void> = T | T[]; +type MergedComponentOptionsOverride = { + beforeCreate?: MergedHook; + created?: MergedHook; + beforeMount?: MergedHook; + mounted?: MergedHook; + beforeUpdate?: MergedHook; + updated?: MergedHook; + activated?: MergedHook; + deactivated?: MergedHook; + /** @deprecated use `beforeUnmount` instead */ + beforeDestroy?: MergedHook; + beforeUnmount?: MergedHook; + /** @deprecated use `unmounted` instead */ + destroyed?: MergedHook; + unmounted?: MergedHook; + renderTracked?: MergedHook<DebuggerHook>; + renderTriggered?: MergedHook<DebuggerHook>; + errorCaptured?: MergedHook<ErrorCapturedHook>; +}; +type OptionTypesKeys = 'P' | 'B' | 'D' | 'C' | 'M' | 'Defaults'; +type OptionTypesType<P = {}, B = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Defaults = {}> = { + P: P; + B: B; + D: D; + C: C; + M: M; + Defaults: Defaults; +}; +/** + * @deprecated + */ +export type ComponentOptionsWithoutProps<Props = {}, RawBindings = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, EE extends string = string, I extends ComponentInjectOptions = {}, II extends string = string, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, TE extends ComponentTypeEmits = {}, ResolvedEmits extends EmitsOptions = {} extends E ? TypeEmitsToOptions<TE> : E, PE = Props & EmitsToProps<ResolvedEmits>> = ComponentOptionsBase<PE, RawBindings, D, C, M, Mixin, Extends, E, EE, {}, I, II, S, LC, Directives, Exposed, Provide> & { + props?: never; + /** + * @private for language-tools use only + */ + __typeProps?: Props; + /** + * @private for language-tools use only + */ + __typeEmits?: TE; +} & ThisType<CreateComponentPublicInstanceWithMixins<PE, RawBindings, D, C, M, Mixin, Extends, ResolvedEmits, EE, {}, false, I, S, LC, Directives, string>>; +/** + * @deprecated + */ +export type ComponentOptionsWithArrayProps<PropNames extends string = string, RawBindings = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = EmitsOptions, EE extends string = string, I extends ComponentInjectOptions = {}, II extends string = string, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, Props = Prettify<Readonly<{ + [key in PropNames]?: any; +} & EmitsToProps<E>>>> = ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, {}, I, II, S, LC, Directives, Exposed, Provide> & { + props: PropNames[]; +} & ThisType<CreateComponentPublicInstanceWithMixins<Props, RawBindings, D, C, M, Mixin, Extends, E, Props, {}, false, I, S, LC, Directives, string>>; +/** + * @deprecated + */ +export type ComponentOptionsWithObjectProps<PropsOptions = ComponentObjectPropsOptions, RawBindings = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = EmitsOptions, EE extends string = string, I extends ComponentInjectOptions = {}, II extends string = string, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, Props = Prettify<Readonly<ExtractPropTypes<PropsOptions>> & Readonly<EmitsToProps<E>>>, Defaults = ExtractDefaultPropTypes<PropsOptions>> = ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, Defaults, I, II, S, LC, Directives, Exposed, Provide> & { + props: PropsOptions & ThisType<void>; +} & ThisType<CreateComponentPublicInstanceWithMixins<Props, RawBindings, D, C, M, Mixin, Extends, E, Props, Defaults, false, I, S, LC, Directives>>; + +interface InjectionConstraint<T> { +} +export type InjectionKey<T> = symbol & InjectionConstraint<T>; +export declare function provide<T, K = InjectionKey<T> | string | number>(key: K, value: K extends InjectionKey<infer V> ? V : T): void; +export declare function inject<T>(key: InjectionKey<T> | string): T | undefined; +export declare function inject<T>(key: InjectionKey<T> | string, defaultValue: T, treatDefaultAsFactory?: false): T; +export declare function inject<T>(key: InjectionKey<T> | string, defaultValue: T | (() => T), treatDefaultAsFactory: true): T; +/** + * Returns true if `inject()` can be used without warning about being called in the wrong place (e.g. outside of + * setup()). This is used by libraries that want to use `inject()` internally without triggering a warning to the end + * user. One example is `useRoute()` in `vue-router`. + */ +export declare function hasInjectionContext(): boolean; + +export type PublicProps = VNodeProps & AllowedComponentProps & ComponentCustomProps; +type ResolveProps<PropsOrPropOptions, E extends EmitsOptions> = Readonly<PropsOrPropOptions extends ComponentPropsOptions ? ExtractPropTypes<PropsOrPropOptions> : PropsOrPropOptions> & ({} extends E ? {} : EmitsToProps<E>); +export type DefineComponent<PropsOrPropOptions = {}, RawBindings = {}, D = {}, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, EE extends string = string, PP = PublicProps, Props = ResolveProps<PropsOrPropOptions, E>, Defaults = ExtractDefaultPropTypes<PropsOrPropOptions>, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, MakeDefaultsOptional extends boolean = true, TypeRefs extends Record<string, unknown> = {}, TypeEl extends Element = any> = ComponentPublicInstanceConstructor<CreateComponentPublicInstanceWithMixins<Props, RawBindings, D, C, M, Mixin, Extends, E, PP, Defaults, MakeDefaultsOptional, {}, S, LC & GlobalComponents, Directives & GlobalDirectives, Exposed, TypeRefs, TypeEl>> & ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, Defaults, {}, string, S, LC & GlobalComponents, Directives & GlobalDirectives, Exposed, Provide> & PP; +export type DefineSetupFnComponent<P extends Record<string, any>, E extends EmitsOptions = {}, S extends SlotsType = SlotsType, Props = P & EmitsToProps<E>, PP = PublicProps> = new (props: Props & PP) => CreateComponentPublicInstanceWithMixins<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, E, PP, {}, false, {}, S>; +type ToResolvedProps<Props, Emits extends EmitsOptions> = Readonly<Props> & Readonly<EmitsToProps<Emits>>; +export declare function defineComponent<Props extends Record<string, any>, E extends EmitsOptions = {}, EE extends string = string, S extends SlotsType = {}>(setup: (props: Props, ctx: SetupContext<E, S>) => RenderFunction | Promise<RenderFunction>, options?: Pick<ComponentOptions, 'name' | 'inheritAttrs'> & { + props?: (keyof Props)[]; + emits?: E | EE[]; + slots?: S; +}): DefineSetupFnComponent<Props, E, S>; +export declare function defineComponent<Props extends Record<string, any>, E extends EmitsOptions = {}, EE extends string = string, S extends SlotsType = {}>(setup: (props: Props, ctx: SetupContext<E, S>) => RenderFunction | Promise<RenderFunction>, options?: Pick<ComponentOptions, 'name' | 'inheritAttrs'> & { + props?: ComponentObjectPropsOptions<Props>; + emits?: E | EE[]; + slots?: S; +}): DefineSetupFnComponent<Props, E, S>; +export declare function defineComponent<TypeProps, RuntimePropsOptions extends ComponentObjectPropsOptions = ComponentObjectPropsOptions, RuntimePropsKeys extends string = string, TypeEmits extends ComponentTypeEmits = {}, RuntimeEmitsOptions extends EmitsOptions = {}, RuntimeEmitsKeys extends string = string, Data = {}, SetupBindings = {}, Computed extends ComputedOptions = {}, Methods extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, InjectOptions extends ComponentInjectOptions = {}, InjectKeys extends string = string, Slots extends SlotsType = {}, LocalComponents extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, ResolvedEmits extends EmitsOptions = {} extends RuntimeEmitsOptions ? TypeEmitsToOptions<TypeEmits> : RuntimeEmitsOptions, InferredProps = IsKeyValues<TypeProps> extends true ? TypeProps : string extends RuntimePropsKeys ? ComponentObjectPropsOptions extends RuntimePropsOptions ? {} : ExtractPropTypes<RuntimePropsOptions> : { + [key in RuntimePropsKeys]?: any; +}, TypeRefs extends Record<string, unknown> = {}, TypeEl extends Element = any>(options: { + props?: (RuntimePropsOptions & ThisType<void>) | RuntimePropsKeys[]; + /** + * @private for language-tools use only + */ + __typeProps?: TypeProps; + /** + * @private for language-tools use only + */ + __typeEmits?: TypeEmits; + /** + * @private for language-tools use only + */ + __typeRefs?: TypeRefs; + /** + * @private for language-tools use only + */ + __typeEl?: TypeEl; +} & ComponentOptionsBase<ToResolvedProps<InferredProps, ResolvedEmits>, SetupBindings, Data, Computed, Methods, Mixin, Extends, RuntimeEmitsOptions, RuntimeEmitsKeys, {}, // Defaults +InjectOptions, InjectKeys, Slots, LocalComponents, Directives, Exposed, Provide> & ThisType<CreateComponentPublicInstanceWithMixins<ToResolvedProps<InferredProps, ResolvedEmits>, SetupBindings, Data, Computed, Methods, Mixin, Extends, ResolvedEmits, {}, {}, false, InjectOptions, Slots, LocalComponents, Directives, string>>): DefineComponent<InferredProps, SetupBindings, Data, Computed, Methods, Mixin, Extends, ResolvedEmits, RuntimeEmitsKeys, PublicProps, ToResolvedProps<InferredProps, ResolvedEmits>, ExtractDefaultPropTypes<RuntimePropsOptions>, Slots, LocalComponents, Directives, Exposed, Provide, unknown extends TypeProps ? true : false, TypeRefs, TypeEl>; + +export interface App<HostElement = any> { + version: string; + config: AppConfig; + use<Options extends unknown[]>(plugin: Plugin<Options>, ...options: NoInfer<Options>): this; + use<Options>(plugin: Plugin<Options>, options: NoInfer<Options>): this; + mixin(mixin: ComponentOptions): this; + component(name: string): Component | undefined; + component<T extends Component | DefineComponent>(name: string, component: T): this; + directive<HostElement = any, Value = any, Modifiers extends string = string, Arg = any>(name: string): Directive<HostElement, Value, Modifiers, Arg> | undefined; + directive<HostElement = any, Value = any, Modifiers extends string = string, Arg = any>(name: string, directive: Directive<HostElement, Value, Modifiers, Arg>): this; + mount(rootContainer: HostElement | string, + /** + * @internal + */ + isHydrate?: boolean, + /** + * @internal + */ + namespace?: boolean | ElementNamespace, + /** + * @internal + */ + vnode?: VNode): ComponentPublicInstance; + unmount(): void; + onUnmount(cb: () => void): void; + provide<T, K = InjectionKey<T> | string | number>(key: K, value: K extends InjectionKey<infer V> ? V : T): this; + /** + * Runs a function with the app as active instance. This allows using of `inject()` within the function to get access + * to variables provided via `app.provide()`. + * + * @param fn - function to run with the app as active instance + */ + runWithContext<T>(fn: () => T): T; + _uid: number; + _component: ConcreteComponent; + _props: Data | null; + _container: HostElement | null; + _context: AppContext; + _instance: ComponentInternalInstance | null; + /** + * v2 compat only + */ + filter?(name: string): Function | undefined; + filter?(name: string, filter: Function): this; +} +export type OptionMergeFunction = (to: unknown, from: unknown) => any; +export interface AppConfig { + readonly isNativeTag: (tag: string) => boolean; + performance: boolean; + optionMergeStrategies: Record<string, OptionMergeFunction>; + globalProperties: ComponentCustomProperties & Record<string, any>; + errorHandler?: (err: unknown, instance: ComponentPublicInstance | null, info: string) => void; + warnHandler?: (msg: string, instance: ComponentPublicInstance | null, trace: string) => void; + /** + * Options to pass to `@vue/compiler-dom`. + * Only supported in runtime compiler build. + */ + compilerOptions: RuntimeCompilerOptions; + /** + * @deprecated use config.compilerOptions.isCustomElement + */ + isCustomElement?: (tag: string) => boolean; + /** + * TODO document for 3.5 + * Enable warnings for computed getters that recursively trigger itself. + */ + warnRecursiveComputed?: boolean; + /** + * Whether to throw unhandled errors in production. + * Default is `false` to avoid crashing on any error (and only logs it) + * But in some cases, e.g. SSR, throwing might be more desirable. + */ + throwUnhandledErrorInProduction?: boolean; + /** + * Prefix for all useId() calls within this app + */ + idPrefix?: string; +} +export interface AppContext { + app: App; + config: AppConfig; + mixins: ComponentOptions[]; + components: Record<string, Component>; + directives: Record<string, Directive>; + provides: Record<string | symbol, any>; +} +type PluginInstallFunction<Options = any[]> = Options extends unknown[] ? (app: App, ...options: Options) => any : (app: App, options: Options) => any; +export type ObjectPlugin<Options = any[]> = { + install: PluginInstallFunction<Options>; +}; +export type FunctionPlugin<Options = any[]> = PluginInstallFunction<Options> & Partial<ObjectPlugin<Options>>; +export type Plugin<Options = any[], P extends unknown[] = Options extends unknown[] ? Options : [Options]> = FunctionPlugin<P> | ObjectPlugin<P>; +export type CreateAppFunction<HostElement> = (rootComponent: Component, rootProps?: Data | null) => App<HostElement>; + +type TeleportVNode = VNode<RendererNode, RendererElement, TeleportProps>; +export interface TeleportProps { + to: string | RendererElement | null | undefined; + disabled?: boolean; + defer?: boolean; +} +declare const TeleportImpl: { + name: string; + __isTeleport: boolean; + process(n1: TeleportVNode | null, n2: TeleportVNode, container: RendererElement, anchor: RendererNode | null, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, namespace: ElementNamespace, slotScopeIds: string[] | null, optimized: boolean, internals: RendererInternals): void; + remove(vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, { um: unmount, o: { remove: hostRemove } }: RendererInternals, doRemove: boolean): void; + move: typeof moveTeleport; + hydrate: typeof hydrateTeleport; +}; +declare enum TeleportMoveTypes { + TARGET_CHANGE = 0, + TOGGLE = 1,// enable / disable + REORDER = 2 +} +declare function moveTeleport(vnode: VNode, container: RendererElement, parentAnchor: RendererNode | null, { o: { insert }, m: move }: RendererInternals, moveType?: TeleportMoveTypes): void; +declare function hydrateTeleport(node: Node, vnode: TeleportVNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized: boolean, { o: { nextSibling, parentNode, querySelector, insert, createText }, }: RendererInternals<Node, Element>, hydrateChildren: (node: Node | null, vnode: VNode, container: Element, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized: boolean) => Node | null): Node | null; +export declare const Teleport: { + __isTeleport: true; + new (): { + $props: VNodeProps & TeleportProps; + $slots: { + default(): VNode[]; + }; + }; +}; + +/** + * @private + */ +export declare function resolveComponent(name: string, maybeSelfReference?: boolean): ConcreteComponent | string; +declare const NULL_DYNAMIC_COMPONENT: unique symbol; +/** + * @private + */ +export declare function resolveDynamicComponent(component: unknown): VNodeTypes; +/** + * @private + */ +export declare function resolveDirective(name: string): Directive | undefined; + +export declare const Fragment: { + __isFragment: true; + new (): { + $props: VNodeProps; + }; +}; +export declare const Text: unique symbol; +export declare const Comment: unique symbol; +export declare const Static: unique symbol; +export type VNodeTypes = string | VNode | Component | typeof Text | typeof Static | typeof Comment | typeof Fragment | typeof Teleport | typeof TeleportImpl | typeof Suspense | typeof SuspenseImpl; +export type VNodeRef = string | Ref | ((ref: Element | ComponentPublicInstance | null, refs: Record<string, any>) => void); +type VNodeNormalizedRefAtom = { + /** + * component instance + */ + i: ComponentInternalInstance; + /** + * Actual ref + */ + r: VNodeRef; + /** + * setup ref key + */ + k?: string; + /** + * refInFor marker + */ + f?: boolean; +}; +type VNodeNormalizedRef = VNodeNormalizedRefAtom | VNodeNormalizedRefAtom[]; +type VNodeMountHook = (vnode: VNode) => void; +type VNodeUpdateHook = (vnode: VNode, oldVNode: VNode) => void; +export type VNodeProps = { + key?: PropertyKey; + ref?: VNodeRef; + ref_for?: boolean; + ref_key?: string; + onVnodeBeforeMount?: VNodeMountHook | VNodeMountHook[]; + onVnodeMounted?: VNodeMountHook | VNodeMountHook[]; + onVnodeBeforeUpdate?: VNodeUpdateHook | VNodeUpdateHook[]; + onVnodeUpdated?: VNodeUpdateHook | VNodeUpdateHook[]; + onVnodeBeforeUnmount?: VNodeMountHook | VNodeMountHook[]; + onVnodeUnmounted?: VNodeMountHook | VNodeMountHook[]; +}; +type VNodeChildAtom = VNode | string | number | boolean | null | undefined | void; +export type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>; +export type VNodeChild = VNodeChildAtom | VNodeArrayChildren; +export type VNodeNormalizedChildren = string | VNodeArrayChildren | RawSlots | null; +export interface VNode<HostNode = RendererNode, HostElement = RendererElement, ExtraProps = { + [key: string]: any; +}> { + type: VNodeTypes; + props: (VNodeProps & ExtraProps) | null; + key: PropertyKey | null; + ref: VNodeNormalizedRef | null; + /** + * SFC only. This is assigned on vnode creation using currentScopeId + * which is set alongside currentRenderingInstance. + */ + scopeId: string | null; + children: VNodeNormalizedChildren; + component: ComponentInternalInstance | null; + dirs: DirectiveBinding[] | null; + transition: TransitionHooks<HostElement> | null; + el: HostNode | null; + placeholder: HostNode | null; + anchor: HostNode | null; + target: HostElement | null; + targetStart: HostNode | null; + targetAnchor: HostNode | null; + suspense: SuspenseBoundary | null; + shapeFlag: number; + patchFlag: number; + appContext: AppContext | null; +} +/** + * Open a block. + * This must be called before `createBlock`. It cannot be part of `createBlock` + * because the children of the block are evaluated before `createBlock` itself + * is called. The generated code typically looks like this: + * + * ```js + * function render() { + * return (openBlock(),createBlock('div', null, [...])) + * } + * ``` + * disableTracking is true when creating a v-for fragment block, since a v-for + * fragment always diffs its children. + * + * @private + */ +export declare function openBlock(disableTracking?: boolean): void; +/** + * Block tracking sometimes needs to be disabled, for example during the + * creation of a tree that needs to be cached by v-once. The compiler generates + * code like this: + * + * ``` js + * _cache[1] || ( + * setBlockTracking(-1, true), + * _cache[1] = createVNode(...), + * setBlockTracking(1), + * _cache[1] + * ) + * ``` + * + * @private + */ +export declare function setBlockTracking(value: number, inVOnce?: boolean): void; +/** + * @private + */ +export declare function createElementBlock(type: string | typeof Fragment, props?: Record<string, any> | null, children?: any, patchFlag?: number, dynamicProps?: string[], shapeFlag?: number): VNode; +/** + * Create a block root vnode. Takes the same exact arguments as `createVNode`. + * A block root keeps track of dynamic nodes within the block in the + * `dynamicChildren` array. + * + * @private + */ +export declare function createBlock(type: VNodeTypes | ClassComponent, props?: Record<string, any> | null, children?: any, patchFlag?: number, dynamicProps?: string[]): VNode; +export declare function isVNode(value: any): value is VNode; +declare let vnodeArgsTransformer: ((args: Parameters<typeof _createVNode>, instance: ComponentInternalInstance | null) => Parameters<typeof _createVNode>) | undefined; +/** + * Internal API for registering an arguments transform for createVNode + * used for creating stubs in the test-utils + * It is *internal* but needs to be exposed for test-utils to pick up proper + * typings + */ +export declare function transformVNodeArgs(transformer?: typeof vnodeArgsTransformer): void; +export declare function createBaseVNode(type: VNodeTypes | ClassComponent | typeof NULL_DYNAMIC_COMPONENT, props?: (Data & VNodeProps) | null, children?: unknown, patchFlag?: number, dynamicProps?: string[] | null, shapeFlag?: number, isBlockNode?: boolean, needFullChildrenNormalization?: boolean): VNode; + +export declare const createVNode: typeof _createVNode; +declare function _createVNode(type: VNodeTypes | ClassComponent | typeof NULL_DYNAMIC_COMPONENT, props?: (Data & VNodeProps) | null, children?: unknown, patchFlag?: number, dynamicProps?: string[] | null, isBlockNode?: boolean): VNode; +export declare function guardReactiveProps(props: (Data & VNodeProps) | null): (Data & VNodeProps) | null; +export declare function cloneVNode<T, U>(vnode: VNode<T, U>, extraProps?: (Data & VNodeProps) | null, mergeRef?: boolean, cloneTransition?: boolean): VNode<T, U>; +/** + * @private + */ +export declare function createTextVNode(text?: string, flag?: number): VNode; +/** + * @private + */ +export declare function createStaticVNode(content: string, numberOfNodes: number): VNode; +/** + * @private + */ +export declare function createCommentVNode(text?: string, asBlock?: boolean): VNode; +export declare function mergeProps(...args: (Data & VNodeProps)[]): Data; + +type Data = Record<string, unknown>; +/** + * Public utility type for extracting the instance type of a component. + * Works with all valid component definition types. This is intended to replace + * the usage of `InstanceType<typeof Comp>` which only works for + * constructor-based component definition types. + * + * @example + * ```ts + * const MyComp = { ... } + * declare const instance: ComponentInstance<typeof MyComp> + * ``` + */ +export type ComponentInstance<T> = T extends { + new (): ComponentPublicInstance; +} ? InstanceType<T> : T extends FunctionalComponent<infer Props, infer Emits> ? ComponentPublicInstance<Props, {}, {}, {}, {}, ShortEmitsToObject<Emits>> : T extends Component<infer PropsOrInstance, infer RawBindings, infer D, infer C, infer M> ? PropsOrInstance extends { + $props: unknown; +} ? PropsOrInstance : ComponentPublicInstance<unknown extends PropsOrInstance ? {} : PropsOrInstance, unknown extends RawBindings ? {} : RawBindings, unknown extends D ? {} : D, C, M> : never; +/** + * For extending allowed non-declared props on components in TSX + */ +export interface ComponentCustomProps { +} +/** + * For globally defined Directives + * Here is an example of adding a directive `VTooltip` as global directive: + * + * @example + * ```ts + * import VTooltip from 'v-tooltip' + * + * declare module '@vue/runtime-core' { + * interface GlobalDirectives { + * VTooltip + * } + * } + * ``` + */ +export interface GlobalDirectives { +} +/** + * For globally defined Components + * Here is an example of adding a component `RouterView` as global component: + * + * @example + * ```ts + * import { RouterView } from 'vue-router' + * + * declare module '@vue/runtime-core' { + * interface GlobalComponents { + * RouterView + * } + * } + * ``` + */ +export interface GlobalComponents { + Teleport: DefineComponent<TeleportProps>; + Suspense: DefineComponent<SuspenseProps>; + KeepAlive: DefineComponent<KeepAliveProps>; + BaseTransition: DefineComponent<BaseTransitionProps>; +} +/** + * Default allowed non-declared props on component in TSX + */ +export interface AllowedComponentProps { + class?: unknown; + style?: unknown; +} +interface ComponentInternalOptions { + /** + * Compat build only, for bailing out of certain compatibility behavior + */ + __isBuiltIn?: boolean; + /** + * This one should be exposed so that devtools can make use of it + */ + __file?: string; + /** + * name inferred from filename + */ + __name?: string; +} +export interface FunctionalComponent<P = {}, E extends EmitsOptions | Record<string, any[]> = {}, S extends Record<string, any> = any, EE extends EmitsOptions = ShortEmitsToObject<E>> extends ComponentInternalOptions { + (props: P & EmitsToProps<EE>, ctx: Omit<SetupContext<EE, IfAny<S, {}, SlotsType<S>>>, 'expose'>): any; + props?: ComponentPropsOptions<P>; + emits?: EE | (keyof EE)[]; + slots?: IfAny<S, Slots, SlotsType<S>>; + inheritAttrs?: boolean; + displayName?: string; + compatConfig?: CompatConfig; +} +interface ClassComponent { + new (...args: any[]): ComponentPublicInstance<any, any, any, any, any>; + __vccOpts: ComponentOptions; +} +/** + * Concrete component type matches its actual value: it's either an options + * object, or a function. Use this where the code expects to work with actual + * values, e.g. checking if its a function or not. This is mostly for internal + * implementation code. + */ +export type ConcreteComponent<Props = {}, RawBindings = any, D = any, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions, E extends EmitsOptions | Record<string, any[]> = {}, S extends Record<string, any> = any> = ComponentOptions<Props, RawBindings, D, C, M> | FunctionalComponent<Props, E, S>; +/** + * A type used in public APIs where a component type is expected. + * The constructor type is an artificial type returned by defineComponent(). + */ +export type Component<PropsOrInstance = any, RawBindings = any, D = any, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions, E extends EmitsOptions | Record<string, any[]> = {}, S extends Record<string, any> = any> = ConcreteComponent<PropsOrInstance, RawBindings, D, C, M, E, S> | ComponentPublicInstanceConstructor<PropsOrInstance>; + +export type SetupContext<E = EmitsOptions, S extends SlotsType = {}> = E extends any ? { + attrs: Data; + slots: UnwrapSlotsType<S>; + emit: EmitFn<E>; + expose: <Exposed extends Record<string, any> = Record<string, any>>(exposed?: Exposed) => void; +} : never; +/** + * We expose a subset of properties on the internal instance as they are + * useful for advanced external libraries and tools. + */ +export interface ComponentInternalInstance { + uid: number; + type: ConcreteComponent; + parent: ComponentInternalInstance | null; + root: ComponentInternalInstance; + appContext: AppContext; + /** + * Vnode representing this component in its parent's vdom tree + */ + vnode: VNode; + /** + * Root vnode of this component's own vdom tree + */ + subTree: VNode; + /** + * Render effect instance + */ + effect: ReactiveEffect; + /** + * Force update render effect + */ + update: () => void; + /** + * Render effect job to be passed to scheduler (checks if dirty) + */ + job: SchedulerJob; + proxy: ComponentPublicInstance | null; + exposed: Record<string, any> | null; + exposeProxy: Record<string, any> | null; + data: Data; + props: Data; + attrs: Data; + slots: InternalSlots; + refs: Data; + emit: EmitFn; + isMounted: boolean; + isUnmounted: boolean; + isDeactivated: boolean; +} +export declare const getCurrentInstance: () => ComponentInternalInstance | null; +/** + * For runtime-dom to register the compiler. + * Note the exported method uses any to avoid d.ts relying on the compiler types. + */ +export declare function registerRuntimeCompiler(_compile: any): void; +export declare const isRuntimeOnly: () => boolean; +export interface ComponentCustomElementInterface { +} + +type MaybeUndefined<T, I> = I extends true ? T | undefined : T; +type MapSources<T, Immediate> = { + [K in keyof T]: T[K] extends WatchSource<infer V> ? MaybeUndefined<V, Immediate> : T[K] extends object ? MaybeUndefined<T[K], Immediate> : never; +}; +export interface WatchEffectOptions extends DebuggerOptions { + flush?: 'pre' | 'post' | 'sync'; +} +export interface WatchOptions<Immediate = boolean> extends WatchEffectOptions { + immediate?: Immediate; + deep?: boolean | number; + once?: boolean; +} +export declare function watchEffect(effect: WatchEffect, options?: WatchEffectOptions): WatchHandle; +export declare function watchPostEffect(effect: WatchEffect, options?: DebuggerOptions): WatchHandle; +export declare function watchSyncEffect(effect: WatchEffect, options?: DebuggerOptions): WatchHandle; +export type MultiWatchSources = (WatchSource<unknown> | object)[]; +export declare function watch<T, Immediate extends Readonly<boolean> = false>(source: WatchSource<T>, cb: WatchCallback<T, MaybeUndefined<T, Immediate>>, options?: WatchOptions<Immediate>): WatchHandle; +export declare function watch<T extends Readonly<MultiWatchSources>, Immediate extends Readonly<boolean> = false>(sources: readonly [...T] | T, cb: [T] extends [ReactiveMarker] ? WatchCallback<T, MaybeUndefined<T, Immediate>> : WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>, options?: WatchOptions<Immediate>): WatchHandle; +export declare function watch<T extends MultiWatchSources, Immediate extends Readonly<boolean> = false>(sources: [...T], cb: WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>, options?: WatchOptions<Immediate>): WatchHandle; +export declare function watch<T extends object, Immediate extends Readonly<boolean> = false>(source: T, cb: WatchCallback<T, MaybeUndefined<T, Immediate>>, options?: WatchOptions<Immediate>): WatchHandle; + +/** + * A lazy hydration strategy for async components. + * @param hydrate - call this to perform the actual hydration. + * @param forEachElement - iterate through the root elements of the component's + * non-hydrated DOM, accounting for possible fragments. + * @returns a teardown function to be called if the async component is unmounted + * before it is hydrated. This can be used to e.g. remove DOM event + * listeners. + */ +export type HydrationStrategy = (hydrate: () => void, forEachElement: (cb: (el: Element) => any) => void) => (() => void) | void; +export type HydrationStrategyFactory<Options> = (options?: Options) => HydrationStrategy; +export declare const hydrateOnIdle: HydrationStrategyFactory<number>; +export declare const hydrateOnVisible: HydrationStrategyFactory<IntersectionObserverInit>; +export declare const hydrateOnMediaQuery: HydrationStrategyFactory<string>; +export declare const hydrateOnInteraction: HydrationStrategyFactory<keyof HTMLElementEventMap | Array<keyof HTMLElementEventMap>>; + +type AsyncComponentResolveResult<T = Component> = T | { + default: T; +}; +export type AsyncComponentLoader<T = any> = () => Promise<AsyncComponentResolveResult<T>>; +export interface AsyncComponentOptions<T = any> { + loader: AsyncComponentLoader<T>; + loadingComponent?: Component; + errorComponent?: Component; + delay?: number; + timeout?: number; + suspensible?: boolean; + hydrate?: HydrationStrategy; + onError?: (error: Error, retry: () => void, fail: () => void, attempts: number) => any; +} +export declare function defineAsyncComponent<T extends Component = { + new (): ComponentPublicInstance; +}>(source: AsyncComponentLoader<T> | AsyncComponentOptions<T>): T; + +export declare function useModel<M extends PropertyKey, T extends Record<string, any>, K extends keyof T, G = T[K], S = T[K]>(props: T, name: K, options?: DefineModelOptions<T[K], G, S>): ModelRef<T[K], M, G, S>; + +export type TemplateRef<T = unknown> = Readonly<ShallowRef<T | null>>; +export declare function useTemplateRef<T = unknown, Keys extends string = string>(key: Keys): TemplateRef<T>; + +export declare function useId(): string; + +type RawProps = VNodeProps & { + __v_isVNode?: never; + [Symbol.iterator]?: never; +} & Record<string, any>; +type RawChildren = string | number | boolean | VNode | VNodeArrayChildren | (() => any); +interface Constructor<P = any> { + __isFragment?: never; + __isTeleport?: never; + __isSuspense?: never; + new (...args: any[]): { + $props: P; + }; +} +type HTMLElementEventHandler = { + [K in keyof HTMLElementEventMap as `on${Capitalize<K>}`]?: (ev: HTMLElementEventMap[K]) => any; +}; +export declare function h<K extends keyof HTMLElementTagNameMap>(type: K, children?: RawChildren): VNode; +export declare function h<K extends keyof HTMLElementTagNameMap>(type: K, props?: (RawProps & HTMLElementEventHandler) | null, children?: RawChildren | RawSlots): VNode; +export declare function h(type: string, children?: RawChildren): VNode; +export declare function h(type: string, props?: RawProps | null, children?: RawChildren | RawSlots): VNode; +export declare function h(type: typeof Text | typeof Comment, children?: string | number | boolean): VNode; +export declare function h(type: typeof Text | typeof Comment, props?: null, children?: string | number | boolean): VNode; +export declare function h(type: typeof Fragment, children?: VNodeArrayChildren): VNode; +export declare function h(type: typeof Fragment, props?: RawProps | null, children?: VNodeArrayChildren): VNode; +export declare function h(type: typeof Teleport, props: RawProps & TeleportProps, children: RawChildren | RawSlots): VNode; +export declare function h(type: typeof Suspense, children?: RawChildren): VNode; +export declare function h(type: typeof Suspense, props?: (RawProps & SuspenseProps) | null, children?: RawChildren | RawSlots): VNode; +export declare function h<P, E extends EmitsOptions = {}, S extends Record<string, any> = any>(type: FunctionalComponent<P, any, S, any>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | IfAny<S, RawSlots, S>): VNode; +export declare function h(type: Component, children?: RawChildren): VNode; +export declare function h<P>(type: ConcreteComponent | string, children?: RawChildren): VNode; +export declare function h<P>(type: ConcreteComponent<P> | string, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren): VNode; +export declare function h<P>(type: Component<P>, props?: (RawProps & P) | null, children?: RawChildren | RawSlots): VNode; +export declare function h<P>(type: ComponentOptions<P>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | RawSlots): VNode; +export declare function h(type: Constructor, children?: RawChildren): VNode; +export declare function h<P>(type: Constructor<P>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | RawSlots): VNode; +export declare function h(type: DefineComponent, children?: RawChildren): VNode; +export declare function h<P>(type: DefineComponent<P>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | RawSlots): VNode; +export declare function h(type: string | Component, children?: RawChildren): VNode; +export declare function h<P>(type: string | Component<P>, props?: (RawProps & P) | ({} extends P ? null : never), children?: RawChildren | RawSlots): VNode; + +export declare const ssrContextKey: unique symbol; +export declare const useSSRContext: <T = Record<string, any>>() => T | undefined; + +declare function warn$1(msg: string, ...args: any[]): void; + +export declare enum ErrorCodes { + SETUP_FUNCTION = 0, + RENDER_FUNCTION = 1, + NATIVE_EVENT_HANDLER = 5, + COMPONENT_EVENT_HANDLER = 6, + VNODE_HOOK = 7, + DIRECTIVE_HOOK = 8, + TRANSITION_HOOK = 9, + APP_ERROR_HANDLER = 10, + APP_WARN_HANDLER = 11, + FUNCTION_REF = 12, + ASYNC_COMPONENT_LOADER = 13, + SCHEDULER = 14, + COMPONENT_UPDATE = 15, + APP_UNMOUNT_CLEANUP = 16 +} +type ErrorTypes = LifecycleHooks | ErrorCodes | WatchErrorCodes; +export declare function callWithErrorHandling(fn: Function, instance: ComponentInternalInstance | null | undefined, type: ErrorTypes, args?: unknown[]): any; +export declare function callWithAsyncErrorHandling(fn: Function | Function[], instance: ComponentInternalInstance | null, type: ErrorTypes, args?: unknown[]): any; +export declare function handleError(err: unknown, instance: ComponentInternalInstance | null | undefined, type: ErrorTypes, throwInDev?: boolean): void; + +export declare function initCustomFormatter(): void; + +interface AppRecord { + id: number; + app: App; + version: string; + types: Record<string, string | Symbol>; +} +interface DevtoolsHook { + enabled?: boolean; + emit: (event: string, ...payload: any[]) => void; + on: (event: string, handler: Function) => void; + once: (event: string, handler: Function) => void; + off: (event: string, handler: Function) => void; + appRecords: AppRecord[]; + /** + * Added at https://github.com/vuejs/devtools/commit/f2ad51eea789006ab66942e5a27c0f0986a257f9 + * Returns whether the arg was buffered or not + */ + cleanupBuffer?: (matchArg: unknown) => boolean; +} +declare function setDevtoolsHook$1(hook: DevtoolsHook, target: any): void; + +type HMRComponent = ComponentOptions | ClassComponent; +export interface HMRRuntime { + createRecord: typeof createRecord; + rerender: typeof rerender; + reload: typeof reload; +} +declare function createRecord(id: string, initialDef: HMRComponent): boolean; +declare function rerender(id: string, newRender?: Function): void; +declare function reload(id: string, newComp: HMRComponent): void; + +/** + * Set scope id when creating hoisted vnodes. + * @private compiler helper + */ +export declare function pushScopeId(id: string | null): void; +/** + * Technically we no longer need this after 3.0.8 but we need to keep the same + * API for backwards compat w/ code generated by compilers. + * @private + */ +export declare function popScopeId(): void; +/** + * Only for backwards compat + * @private + */ +export declare const withScopeId: (_id: string) => typeof withCtx; +/** + * Wrap a slot function to memoize current rendering instance + * @private compiler helper + */ +export declare function withCtx(fn: Function, ctx?: ComponentInternalInstance | null, isNonScopedSlot?: boolean): Function; + +/** + * v-for string + * @private + */ +export declare function renderList(source: string, renderItem: (value: string, index: number) => VNodeChild): VNodeChild[]; +/** + * v-for number + */ +export declare function renderList(source: number, renderItem: (value: number, index: number) => VNodeChild): VNodeChild[]; +/** + * v-for array + */ +export declare function renderList<T>(source: T[], renderItem: (value: T, index: number) => VNodeChild): VNodeChild[]; +/** + * v-for iterable + */ +export declare function renderList<T>(source: Iterable<T>, renderItem: (value: T, index: number) => VNodeChild): VNodeChild[]; +/** + * v-for object + */ +export declare function renderList<T>(source: T, renderItem: <K extends keyof T>(value: T[K], key: string, index: number) => VNodeChild): VNodeChild[]; + +/** + * For prefixing keys in v-on="obj" with "on" + * @private + */ +export declare function toHandlers(obj: Record<string, any>, preserveCaseIfNecessary?: boolean): Record<string, any>; + +/** + * Compiler runtime helper for rendering `<slot/>` + * @private + */ +export declare function renderSlot(slots: Slots, name: string, props?: Data, fallback?: () => VNodeArrayChildren, noSlotted?: boolean): VNode; + +type SSRSlot = (...args: any[]) => VNode[] | undefined; +interface CompiledSlotDescriptor { + name: string; + fn: SSRSlot; + key?: string; +} +/** + * Compiler runtime helper for creating dynamic slots object + * @private + */ +export declare function createSlots(slots: Record<string, SSRSlot>, dynamicSlots: (CompiledSlotDescriptor | CompiledSlotDescriptor[] | undefined)[]): Record<string, SSRSlot>; + +export declare function withMemo(memo: any[], render: () => VNode<any, any>, cache: any[], index: number): VNode<any, any>; +export declare function isMemoSame(cached: VNode, memo: any[]): boolean; + +export type LegacyConfig = { + /** + * @deprecated `config.silent` option has been removed + */ + silent?: boolean; + /** + * @deprecated use __VUE_PROD_DEVTOOLS__ compile-time feature flag instead + * https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags + */ + devtools?: boolean; + /** + * @deprecated use `config.isCustomElement` instead + * https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement + */ + ignoredElements?: (string | RegExp)[]; + /** + * @deprecated + * https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html + */ + keyCodes?: Record<string, number | number[]>; + /** + * @deprecated + * https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed + */ + productionTip?: boolean; +}; + +type LegacyPublicInstance = ComponentPublicInstance & LegacyPublicProperties; +interface LegacyPublicProperties { + $set<T extends Record<keyof any, any>, K extends keyof T>(target: T, key: K, value: T[K]): void; + $delete<T extends Record<keyof any, any>, K extends keyof T>(target: T, key: K): void; + $mount(el?: string | Element): this; + $destroy(): void; + $scopedSlots: Slots; + $on(event: string | string[], fn: Function): this; + $once(event: string, fn: Function): this; + $off(event?: string | string[], fn?: Function): this; + $children: LegacyPublicProperties[]; + $listeners: Record<string, Function | Function[]>; +} + +/** + * @deprecated the default `Vue` export has been removed in Vue 3. The type for + * the default export is provided only for migration purposes. Please use + * named imports instead - e.g. `import { createApp } from 'vue'`. + */ +export type CompatVue = Pick<App, 'version' | 'component' | 'directive'> & { + configureCompat: typeof configureCompat; + new (options?: ComponentOptions): LegacyPublicInstance; + version: string; + config: AppConfig & LegacyConfig; + nextTick: typeof nextTick; + use<Options extends unknown[]>(plugin: Plugin<Options>, ...options: Options): CompatVue; + use<Options>(plugin: Plugin<Options>, options: Options): CompatVue; + mixin(mixin: ComponentOptions): CompatVue; + component(name: string): Component | undefined; + component(name: string, component: Component): CompatVue; + directive<T = any, V = any>(name: string): Directive<T, V> | undefined; + directive<T = any, V = any>(name: string, directive: Directive<T, V>): CompatVue; + compile(template: string): RenderFunction; + /** + * @deprecated Vue 3 no longer supports extending constructors. + */ + extend: (options?: ComponentOptions) => CompatVue; + /** + * @deprecated Vue 3 no longer needs set() for adding new properties. + */ + set(target: any, key: PropertyKey, value: any): void; + /** + * @deprecated Vue 3 no longer needs delete() for property deletions. + */ + delete(target: any, key: PropertyKey): void; + /** + * @deprecated use `reactive` instead. + */ + observable: typeof reactive; + /** + * @deprecated filters have been removed from Vue 3. + */ + filter(name: string, arg?: any): null; +}; + +export declare const version: string; + +export declare const warn: typeof warn$1; + +export declare const devtools: DevtoolsHook; +export declare const setDevtoolsHook: typeof setDevtoolsHook$1; + +declare module '@vue/reactivity' { + interface RefUnwrapBailTypes { + runtimeCoreBailTypes: VNode | { + $: ComponentInternalInstance; + }; + } +} + +export declare const DeprecationTypes: typeof DeprecationTypes$1; + +export { createBaseVNode as createElementVNode, }; +export type { WatchEffectOptions as WatchOptionsBase }; +// Note: this file is auto concatenated to the end of the bundled d.ts during +// build. + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + Teleport: DefineComponent<TeleportProps> + Suspense: DefineComponent<SuspenseProps> + KeepAlive: DefineComponent<KeepAliveProps> + BaseTransition: DefineComponent<BaseTransitionProps> + } +} + +// Note: this file is auto concatenated to the end of the bundled d.ts during +// build. +type _defineProps = typeof defineProps +type _defineEmits = typeof defineEmits +type _defineExpose = typeof defineExpose +type _defineOptions = typeof defineOptions +type _defineSlots = typeof defineSlots +type _defineModel = typeof defineModel +type _withDefaults = typeof withDefaults + +declare global { + const defineProps: _defineProps + const defineEmits: _defineEmits + const defineExpose: _defineExpose + const defineOptions: _defineOptions + const defineSlots: _defineSlots + const defineModel: _defineModel + const withDefaults: _withDefaults +} diff --git a/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js b/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js new file mode 100644 index 0000000..6efcbfe --- /dev/null +++ b/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js @@ -0,0 +1,8580 @@ +/** +* @vue/runtime-core v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity'; +export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity'; +import { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared'; +export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared'; + +const stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (!!!(process.env.NODE_ENV !== "production")) return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + if (!!(process.env.NODE_ENV !== "production")) { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else if (throwInProd) { + throw err; + } else { + console.error(err); + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + if (!!(process.env.NODE_ENV !== "production")) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (!!(process.env.NODE_ENV !== "production")) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + if (!!(process.env.NODE_ENV !== "production")) { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = !!(process.env.NODE_ENV !== "production") ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (!!(process.env.NODE_ENV !== "production") && check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; +} + +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Map(); +if (!!(process.env.NODE_ENV !== "production")) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} + +let devtools$1; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + !!(process.env.NODE_ENV !== "production") && warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} + +function provide(key, value) { + if (!!(process.env.NODE_ENV !== "production")) { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`injection "${String(key)}" not found.`); + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`inject() can only be used inside setup() or functional components.`); + } +} +function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + !!(process.env.NODE_ENV !== "production") && warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + !!(process.env.NODE_ENV !== "production") ? extend({}, options, { flush: "post" }) : { flush: "post" } + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + !!(process.env.NODE_ENV !== "production") ? extend({}, options, { flush: "sync" }) : { flush: "sync" } + ); +} +function watch(source, cb, options) { + if (!!(process.env.NODE_ENV !== "production") && !isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!!(process.env.NODE_ENV !== "production") && !cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + if (!!(process.env.NODE_ENV !== "production")) baseWatchOptions.onWarn = warn$1; + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = NOOP; + watchStopHandle.resume = NOOP; + watchStopHandle.pause = NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + !!(process.env.NODE_ENV !== "production") && warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!!(process.env.NODE_ENV !== "production") && !target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!!(process.env.NODE_ENV !== "production") && !targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = !!(process.env.NODE_ENV !== "production") ? createComment("teleport start") : createText(""); + const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== "production") ? createComment("teleport end") : createText(""); + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!!(process.env.NODE_ENV !== "production") && !disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== "production")); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; +} + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (!!(process.env.NODE_ENV !== "production") && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (!!(process.env.NODE_ENV !== "production") && hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + if (!!!(process.env.NODE_ENV !== "production")) break; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey] = void 0; + }; + const done = el[enterCbKey].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey]) { + el[enterCbKey]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (!!(process.env.NODE_ENV !== "production") && isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = !!(process.env.NODE_ENV !== "production") ? readonly(r) : r; + if (!!(process.env.NODE_ENV !== "production")) { + knownTemplateRefs.add(ret); + } + return ret; +} +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!!(process.env.NODE_ENV !== "production") && !owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + if (!!(process.env.NODE_ENV !== "production")) { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + if (!!(process.env.NODE_ENV !== "production") || forcePatch || patchFlag !== -1) { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } else if (props.onClick) { + patchProp( + el, + "onClick", + null, + props.onClick, + void 0, + parentComponent + ); + } else if (patchFlag & 4 && isReactive(props.style)) { + for (const key in props.style) props.style[key]; + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; +} +function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); +} +function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; +} +function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; +} +function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; +} +function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!!(process.env.NODE_ENV !== "production") && !comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (!!(process.env.NODE_ENV !== "production") && comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentAdded(instance2); + } + if (!!(process.env.NODE_ENV !== "production") && true) { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (!!(process.env.NODE_ENV !== "production")) { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (!!(process.env.NODE_ENV !== "production") && warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!!(process.env.NODE_ENV !== "production") && !Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (!!(process.env.NODE_ENV !== "production") && slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!!(process.env.NODE_ENV !== "production") && !isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.props) : i.props, + $attrs: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (!!(process.env.NODE_ENV !== "production") && key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + !!(process.env.NODE_ENV !== "production") && markAttrsAccessed(); + } else if (!!(process.env.NODE_ENV !== "production") && key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (!!(process.env.NODE_ENV !== "production") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (!!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + !!(process.env.NODE_ENV !== "production") && warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + !!(process.env.NODE_ENV !== "production") && warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (!!(process.env.NODE_ENV !== "production") && key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || __VUE_OPTIONS_API__ && data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +if (!!(process.env.NODE_ENV !== "production") && true) { + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; +} +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!!(process.env.NODE_ENV !== "production") && !has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } +}); +function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; +} +function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } +} +function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); +} + +const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` +); +function defineProps() { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage(`defineProps`); + } + return null; +} +function defineEmits() { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage(`defineEmits`); + } + return null; +} +function defineExpose(exposed) { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage(`defineExpose`); + } +} +function defineOptions(options) { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage(`defineOptions`); + } +} +function defineSlots() { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage(`defineSlots`); + } + return null; +} +function defineModel() { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage("defineModel"); + } +} +function withDefaults(props, defaults) { + if (!!(process.env.NODE_ENV !== "production")) { + warnRuntimeUsage(`withDefaults`); + } + return null; +} +function useSlots() { + return getContext("useSlots").slots; +} +function useAttrs() { + return getContext("useAttrs").attrs; +} +function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!!(process.env.NODE_ENV !== "production") && !i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!!(process.env.NODE_ENV !== "production") && !ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; +} +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = !!(process.env.NODE_ENV !== "production") ? createDuplicateChecker() : null; + if (!!(process.env.NODE_ENV !== "production")) { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + if (!!(process.env.NODE_ENV !== "production")) { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } else { + ctx[key] = methodHandler.bind(publicThis); + } + if (!!(process.env.NODE_ENV !== "production")) { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!!(process.env.NODE_ENV !== "production") && !isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (!!(process.env.NODE_ENV !== "production") && isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + !!(process.env.NODE_ENV !== "production") && warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + if (!!(process.env.NODE_ENV !== "production")) { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (!!(process.env.NODE_ENV !== "production") && get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== "production") ? () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } : NOOP; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + if (!!(process.env.NODE_ENV !== "production")) { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + if (!!(process.env.NODE_ENV !== "production")) { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } +} +function callHook(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`Invalid watch option: "${key}"`, raw); + } +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + !!(process.env.NODE_ENV !== "production") && warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + !!(process.env.NODE_ENV !== "production") && warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + !!(process.env.NODE_ENV !== "production") && warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + if (__VUE_OPTIONS_API__) { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1("Mixins are only available in builds supporting Options API"); + } + return app; + }, + component(name, component) { + if (!!(process.env.NODE_ENV !== "production")) { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (!!(process.env.NODE_ENV !== "production") && context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + if (!!(process.env.NODE_ENV !== "production")) { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (!!(process.env.NODE_ENV !== "production") && context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (!!(process.env.NODE_ENV !== "production") && rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + if (!!(process.env.NODE_ENV !== "production")) { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (!!(process.env.NODE_ENV !== "production") && typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (!!(process.env.NODE_ENV !== "production") && key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!!(process.env.NODE_ENV !== "production") && !i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + if (!!(process.env.NODE_ENV !== "production")) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentEmit(instance, event, args); + } + if (!!(process.env.NODE_ENV !== "production")) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = __VUE_OPTIONS_API__ && asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} + +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + if (!!(process.env.NODE_ENV !== "production")) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = !!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + !!(process.env.NODE_ENV !== "production") ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (!!(process.env.NODE_ENV !== "production") && attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + !!(process.env.NODE_ENV !== "production") ? shallowReadonly(props) : props, + !!(process.env.NODE_ENV !== "production") ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + !!(process.env.NODE_ENV !== "production") ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (!!(process.env.NODE_ENV !== "production") && result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!!(process.env.NODE_ENV !== "production") && !accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (!!(process.env.NODE_ENV !== "production") && setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (!!(process.env.NODE_ENV !== "production") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (!!(process.env.NODE_ENV !== "production") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if (!!(process.env.NODE_ENV !== "production") && (prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + if (!!(process.env.NODE_ENV !== "production")) { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !(!!(process.env.NODE_ENV !== "production") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + if (!!(process.env.NODE_ENV !== "production")) { + validateProps(rawProps || {}, props, instance); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!!(process.env.NODE_ENV !== "production") && !isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!!(process.env.NODE_ENV !== "production") && !isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; +} +function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; +} +function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + !!(process.env.NODE_ENV !== "production") ? shallowReadonly(resolvedValues) : resolvedValues, + !camelizePropsKey.includes(key) + ); + } +} +function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } +} +const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" +); +function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (!!(process.env.NODE_ENV !== "production") && currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + if (!!(process.env.NODE_ENV !== "production") && true) { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + if (!!(process.env.NODE_ENV !== "production") && !isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +let supported; +let perf; +function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; +} + +function initFeatureFlags() { + const needWarn = []; + if (typeof __VUE_OPTIONS_API__ !== "boolean") { + !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_OPTIONS_API__`); + getGlobalThis().__VUE_OPTIONS_API__ = true; + } + if (typeof __VUE_PROD_DEVTOOLS__ !== "boolean") { + !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_PROD_DEVTOOLS__`); + getGlobalThis().__VUE_PROD_DEVTOOLS__ = false; + } + if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== "boolean") { + !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`); + getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false; + } + if (!!(process.env.NODE_ENV !== "production") && needWarn.length) { + const multi = needWarn.length > 1; + console.warn( + `Feature flag${multi ? `s` : ``} ${needWarn.join(", ")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle. + +For more details, see https://link.vuejs.org/feature-flags.` + ); + } +} + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + { + initFeatureFlags(); + } + const target = getGlobalThis(); + target.__VUE__ = true; + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== "production") && isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else if (!!(process.env.NODE_ENV !== "production")) { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (!!(process.env.NODE_ENV !== "production") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + if (!!(process.env.NODE_ENV !== "production")) { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if (!!(process.env.NODE_ENV !== "production") && // #5523 dev root fragment may inherit directives + (isHmrUpdating || patchFlag & 2048)) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + if (!!(process.env.NODE_ENV !== "production")) { + traverseStaticChildren(n1, n2); + } else if ( + // #2080 if the stable fragment has a key, it's a <template v-for> that may + // get moved around. Make sure all root level vnodes inherit el. + // #2134 or if it's a component root, it may also get moved around + // as the component is being moved. + n2.key != null || parentComponent && n2 === parentComponent.subTree + ) { + traverseStaticChildren( + n1, + n2, + true + /* shallow */ + ); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (!!(process.env.NODE_ENV !== "production") && instance.type.__hmrId) { + registerHMR(instance); + } + if (!!(process.env.NODE_ENV !== "production")) { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `init`); + } + } + if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + if (!!(process.env.NODE_ENV !== "production")) { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + if (!!(process.env.NODE_ENV !== "production")) { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + if (!!(process.env.NODE_ENV !== "production")) { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `render`); + } + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `render`); + } + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + if (!!(process.env.NODE_ENV !== "production")) { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentUpdated(instance); + } + if (!!(process.env.NODE_ENV !== "production")) { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + if (!!(process.env.NODE_ENV !== "production")) { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (!!(process.env.NODE_ENV !== "production") && keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (!!(process.env.NODE_ENV !== "production") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (!!(process.env.NODE_ENV !== "production") && instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + if (!!(process.env.NODE_ENV !== "production")) { + c2.el && (c2.el.__vnode = c2); + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +let hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!!(process.env.NODE_ENV !== "production") && true && !hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (!!(process.env.NODE_ENV !== "production")) { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (!!(process.env.NODE_ENV !== "production")) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (!!(process.env.NODE_ENV !== "production")) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (!!(process.env.NODE_ENV !== "production")) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!!(process.env.NODE_ENV !== "production") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + if (!!(process.env.NODE_ENV !== "production") && n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; +} +let vnodeArgsTransformer; +function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; +} +const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); +}; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithArgsTransform : _createVNode; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!!(process.env.NODE_ENV !== "production") && !type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (!!(process.env.NODE_ENV !== "production") && shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: !!(process.env.NODE_ENV !== "production") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + if (!!(process.env.NODE_ENV !== "production")) { + instance.ctx = createDevRenderContext(instance); + } else { + instance.ctx = { _: instance }; + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); +function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } +} +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + if (!!(process.env.NODE_ENV !== "production")) { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + if (!!(process.env.NODE_ENV !== "production")) { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + !!(process.env.NODE_ENV !== "production") ? shallowReadonly(instance.props) : instance.props, + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!!(process.env.NODE_ENV !== "production") && !instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (!!(process.env.NODE_ENV !== "production") && isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + if (!!(process.env.NODE_ENV !== "production")) { + exposeSetupStateOnRenderContext(instance); + } + } else if (!!(process.env.NODE_ENV !== "production") && setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); +} +let compile; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile && !Component.render) { + const template = Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template; + if (template) { + if (!!(process.env.NODE_ENV !== "production")) { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile(template, finalCompilerOptions); + if (!!(process.env.NODE_ENV !== "production")) { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + if (__VUE_OPTIONS_API__ && true) { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) { + if (!compile && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } +} +const attrsProxyHandlers = !!(process.env.NODE_ENV !== "production") ? { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } +} : { + get(target, key) { + track(target, "get", ""); + return target[key]; + } +}; +function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); +} +function createSetupContext(instance) { + const expose = (exposed) => { + if (!!(process.env.NODE_ENV !== "production")) { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + if (!!(process.env.NODE_ENV !== "production")) { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } else { + return { + attrs: new Proxy(instance.attrs, attrsProxyHandlers), + slots: instance.slots, + emit: instance.emit, + expose + }; + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + if (!!(process.env.NODE_ENV !== "production")) { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; +}; + +function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } +} + +function initCustomFormatter() { + if (!!!(process.env.NODE_ENV !== "production") || typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.28"; +const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0; +const setDevtoolsHook = !!(process.env.NODE_ENV !== "production") || true ? setDevtoolsHook$1 : NOOP; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId }; diff --git a/node_modules/@vue/runtime-core/index.js b/node_modules/@vue/runtime-core/index.js new file mode 100644 index 0000000..50c4882 --- /dev/null +++ b/node_modules/@vue/runtime-core/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/runtime-core.cjs.prod.js') +} else { + module.exports = require('./dist/runtime-core.cjs.js') +} diff --git a/node_modules/@vue/runtime-core/package.json b/node_modules/@vue/runtime-core/package.json new file mode 100644 index 0000000..7ff7cd2 --- /dev/null +++ b/node_modules/@vue/runtime-core/package.json @@ -0,0 +1,52 @@ +{ + "name": "@vue/runtime-core", + "version": "3.5.28", + "description": "@vue/runtime-core", + "main": "index.js", + "module": "dist/runtime-core.esm-bundler.js", + "types": "dist/runtime-core.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/runtime-core.d.ts", + "node": { + "production": "./dist/runtime-core.cjs.prod.js", + "development": "./dist/runtime-core.cjs.js", + "default": "./index.js" + }, + "module": "./dist/runtime-core.esm-bundler.js", + "import": "./dist/runtime-core.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueRuntimeCore", + "formats": [ + "esm-bundler", + "cjs" + ] + }, + "sideEffects": false, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/runtime-core" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", + "dependencies": { + "@vue/shared": "3.5.28", + "@vue/reactivity": "3.5.28" + } +} \ No newline at end of file diff --git a/node_modules/@vue/runtime-dom/LICENSE b/node_modules/@vue/runtime-dom/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/runtime-dom/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/runtime-dom/README.md b/node_modules/@vue/runtime-dom/README.md new file mode 100644 index 0000000..11c373f --- /dev/null +++ b/node_modules/@vue/runtime-dom/README.md @@ -0,0 +1,13 @@ +# @vue/runtime-dom + +```js +import { h, createApp } from '@vue/runtime-dom' + +const RootComponent = { + render() { + return h('div', 'hello world') + }, +} + +createApp(RootComponent).mount('#app') +``` diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js new file mode 100644 index 0000000..9a6e01c --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js @@ -0,0 +1,1898 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var runtimeCore = require('@vue/runtime-core'); +var shared = require('@vue/shared'); + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + runtimeCore.warn(`Error creating trusted types policy: ${e}`); + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION = "transition"; +const ANIMATION = "animation"; +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ shared.extend( + {}, + runtimeCore.BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (shared.isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? shared.isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return shared.extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (shared.isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = shared.toNumber(val); + { + runtimeCore.assertNumber(res, "<transition> explicit duration"); + } + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); +const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); +function useCssVars(getter) { + return; +} + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = shared.isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!shared.isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const semicolonRE = /[^\\];\s*$/; +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (shared.isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + runtimeCore.warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + shared.hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = runtimeCore.camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = shared.capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !shared.includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : shared.isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = shared.includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + runtimeCore.warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : shared.hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + runtimeCore.callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function sanitizeEventValue(value, propName) { + if (shared.isFunction(value) || shared.isArray(value)) { + return value; + } + runtimeCore.warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return shared.NOOP; +} +function patchStopImmediatePropagation(e, value) { + if (shared.isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (shared.isOn(key)) { + if (!shared.isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue)) + ) { + patchDOMProp(el, shared.camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && shared.isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && shared.isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + let Comp = runtimeCore.defineComponent(options, extraOptions); + if (shared.isPlainObject(Comp)) Comp = shared.extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}); +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + runtimeCore.warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + shared.extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + runtimeCore.nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !shared.isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = shared.toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[shared.camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + runtimeCore.warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!shared.hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => runtimeCore.unref(exposed[key]) + }); + } else { + runtimeCore.warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = shared.isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(shared.camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = shared.camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = shared.toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(shared.hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(shared.hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(shared.hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = runtimeCore.createVNode(this._def, shared.extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + shared.isPlainObject(args[0]) ? shared.extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (shared.hyphenate(event) !== event) { + dispatch(shared.hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } +} +function useHost(caller) { + const instance = runtimeCore.getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + runtimeCore.warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + runtimeCore.warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; +} +function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = runtimeCore.getCurrentInstance(); + if (!instance) { + runtimeCore.warn(`useCssModule must be called inside setup()`); + return shared.EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + runtimeCore.warn(`Current instance does not have CSS modules injected.`); + return shared.EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + runtimeCore.warn(`Current instance does not have CSS module named "${name}".`); + return shared.EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = runtimeCore.getCurrentInstance(); + const state = runtimeCore.useTransitionState(); + let prevChildren; + let children; + runtimeCore.onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = runtimeCore.toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || runtimeCore.Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + runtimeCore.setTransitionHooks( + child, + runtimeCore.resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? runtimeCore.getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + runtimeCore.setTransitionHooks( + child, + runtimeCore.resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== runtimeCore.Text) { + runtimeCore.warn(`<TransitionGroup> children must be keyed.`); + } + } + return runtimeCore.createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return shared.isArray(fn) ? (value) => shared.invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = /* @__PURE__ */ Symbol("_assign"); +function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = shared.looseToNumber(value); + return value; +} +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? shared.looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (shared.isArray(modelValue)) { + const index = shared.looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (shared.isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (shared.isArray(value)) { + checked = shared.looseIndexOf(value, vnode.props.value) > -1; + } else if (shared.isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = shared.looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = shared.looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = shared.looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = shared.isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? shared.looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + runtimeCore.nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = shared.isArray(value); + if (isMultiple && !isArrayValue && !shared.isSet(value)) { + runtimeCore.warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = shared.looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (shared.looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && shared.looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (shared.isArray(value)) { + if (vnode.props && shared.looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (shared.isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = shared.hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); +}; + +const rendererOptions = /* @__PURE__ */ shared.extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = runtimeCore.createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : runtimeCore.createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = ((...args) => { + ensureRenderer().render(...args); +}); +const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); +}); +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!shared.isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag), + writable: false + }); +} +function injectCompilerOptionsCheck(app) { + if (runtimeCore.isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + runtimeCore.warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + runtimeCore.warn(msg); + return compilerOptions; + }, + set() { + runtimeCore.warn(msg); + } + }); + } +} +function normalizeContainer(container) { + if (shared.isString(container)) { + const res = document.querySelector(container); + if (!res) { + runtimeCore.warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + runtimeCore.warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +exports.Transition = Transition; +exports.TransitionGroup = TransitionGroup; +exports.VueElement = VueElement; +exports.createApp = createApp; +exports.createSSRApp = createSSRApp; +exports.defineCustomElement = defineCustomElement; +exports.defineSSRCustomElement = defineSSRCustomElement; +exports.hydrate = hydrate; +exports.initDirectivesForSSR = initDirectivesForSSR; +exports.nodeOps = nodeOps; +exports.patchProp = patchProp; +exports.render = render; +exports.useCssModule = useCssModule; +exports.useCssVars = useCssVars; +exports.useHost = useHost; +exports.useShadowRoot = useShadowRoot; +exports.vModelCheckbox = vModelCheckbox; +exports.vModelDynamic = vModelDynamic; +exports.vModelRadio = vModelRadio; +exports.vModelSelect = vModelSelect; +exports.vModelText = vModelText; +exports.vShow = vShow; +exports.withKeys = withKeys; +exports.withModifiers = withModifiers; +Object.keys(runtimeCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeCore[k]; +}); diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js new file mode 100644 index 0000000..fcca5a5 --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js @@ -0,0 +1,1750 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var runtimeCore = require('@vue/runtime-core'); +var shared = require('@vue/shared'); + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION = "transition"; +const ANIMATION = "animation"; +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ shared.extend( + {}, + runtimeCore.BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (shared.isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? shared.isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return shared.extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (shared.isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = shared.toNumber(val); + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); +const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol(""); +function useCssVars(getter) { + return; +} + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = shared.isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!shared.isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (shared.isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + shared.hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = runtimeCore.camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = shared.capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !shared.includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : shared.isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = shared.includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = nextValue; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + nextValue, + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : shared.hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + runtimeCore.callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function patchStopImmediatePropagation(e, value) { + if (shared.isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (shared.isOn(key)) { + if (!shared.isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue)) + ) { + patchDOMProp(el, shared.camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && shared.isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && shared.isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + let Comp = runtimeCore.defineComponent(options, extraOptions); + if (shared.isPlainObject(Comp)) Comp = shared.extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}); +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (_def.shadowRoot !== false) { + this.attachShadow( + shared.extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + runtimeCore.nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !shared.isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = shared.toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[shared.camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!shared.hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => runtimeCore.unref(exposed[key]) + }); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = shared.isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(shared.camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = shared.camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = shared.toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(shared.hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(shared.hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(shared.hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = runtimeCore.createVNode(this._def, shared.extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + shared.isPlainObject(args[0]) ? shared.extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (shared.hyphenate(event) !== event) { + dispatch(shared.hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + } +} +function useHost(caller) { + const instance = runtimeCore.getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } + return null; +} +function useShadowRoot() { + const el = useHost(); + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = runtimeCore.getCurrentInstance(); + if (!instance) { + return shared.EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + return shared.EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + return shared.EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = runtimeCore.getCurrentInstance(); + const state = runtimeCore.useTransitionState(); + let prevChildren; + let children; + runtimeCore.onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = runtimeCore.toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || runtimeCore.Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + runtimeCore.setTransitionHooks( + child, + runtimeCore.resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? runtimeCore.getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + runtimeCore.setTransitionHooks( + child, + runtimeCore.resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } + } + return runtimeCore.createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return shared.isArray(fn) ? (value) => shared.invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = /* @__PURE__ */ Symbol("_assign"); +function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = shared.looseToNumber(value); + return value; +} +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? shared.looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (shared.isArray(modelValue)) { + const index = shared.looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (shared.isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (shared.isArray(value)) { + checked = shared.looseIndexOf(value, vnode.props.value) > -1; + } else if (shared.isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = shared.looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = shared.looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = shared.looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = shared.isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? shared.looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + runtimeCore.nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = shared.isArray(value); + if (isMultiple && !isArrayValue && !shared.isSet(value)) { + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = shared.looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (shared.looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && shared.looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (shared.isArray(value)) { + if (vnode.props && shared.looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (shared.isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = shared.hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); +}; + +const rendererOptions = /* @__PURE__ */ shared.extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = runtimeCore.createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : runtimeCore.createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = ((...args) => { + ensureRenderer().render(...args); +}); +const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); +}); +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!shared.isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function normalizeContainer(container) { + if (shared.isString(container)) { + const res = document.querySelector(container); + return res; + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +exports.Transition = Transition; +exports.TransitionGroup = TransitionGroup; +exports.VueElement = VueElement; +exports.createApp = createApp; +exports.createSSRApp = createSSRApp; +exports.defineCustomElement = defineCustomElement; +exports.defineSSRCustomElement = defineSSRCustomElement; +exports.hydrate = hydrate; +exports.initDirectivesForSSR = initDirectivesForSSR; +exports.nodeOps = nodeOps; +exports.patchProp = patchProp; +exports.render = render; +exports.useCssModule = useCssModule; +exports.useCssVars = useCssVars; +exports.useHost = useHost; +exports.useShadowRoot = useShadowRoot; +exports.vModelCheckbox = vModelCheckbox; +exports.vModelDynamic = vModelDynamic; +exports.vModelRadio = vModelRadio; +exports.vModelSelect = vModelSelect; +exports.vModelText = vModelText; +exports.vShow = vShow; +exports.withKeys = withKeys; +exports.withModifiers = withModifiers; +Object.keys(runtimeCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeCore[k]; +}); diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts b/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts new file mode 100644 index 0000000..8ef33be --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts @@ -0,0 +1,1442 @@ +import { RendererOptions, BaseTransitionProps, FunctionalComponent, ObjectDirective, Directive, App, ComponentCustomElementInterface, ConcreteComponent, CreateAppFunction, SetupContext, RenderFunction, ComponentOptions, ComponentObjectPropsOptions, EmitsOptions, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentInjectOptions, SlotsType, Component, ComponentProvideOptions, ExtractPropTypes, EmitsToProps, ComponentOptionsBase, CreateComponentPublicInstanceWithMixins, ComponentPublicInstance, DefineComponent, VNodeRef, RootHydrateFunction, RootRenderFunction } from '@vue/runtime-core'; +export * from '@vue/runtime-core'; +import * as CSS from 'csstype'; + +export declare const nodeOps: Omit<RendererOptions<Node, Element>, 'patchProp'>; + +type DOMRendererOptions = RendererOptions<Node, Element>; +export declare const patchProp: DOMRendererOptions['patchProp']; + +declare const TRANSITION = "transition"; +declare const ANIMATION = "animation"; +type AnimationTypes = typeof TRANSITION | typeof ANIMATION; +export interface TransitionProps extends BaseTransitionProps<Element> { + name?: string; + type?: AnimationTypes; + css?: boolean; + duration?: number | { + enter: number; + leave: number; + }; + enterFromClass?: string; + enterActiveClass?: string; + enterToClass?: string; + appearFromClass?: string; + appearActiveClass?: string; + appearToClass?: string; + leaveFromClass?: string; + leaveActiveClass?: string; + leaveToClass?: string; +} +/** + * DOM Transition is a higher-order-component based on the platform-agnostic + * base Transition component, with DOM-specific logic. + */ +export declare const Transition: FunctionalComponent<TransitionProps>; + +export type TransitionGroupProps = Omit<TransitionProps, 'mode'> & { + tag?: string; + moveClass?: string; +}; +export declare const TransitionGroup: { + new (): { + $props: TransitionGroupProps; + }; +}; + +declare const vShowOriginalDisplay: unique symbol; +declare const vShowHidden: unique symbol; +interface VShowElement extends HTMLElement { + [vShowOriginalDisplay]: string; + [vShowHidden]: boolean; +} +export declare const vShow: ObjectDirective<VShowElement> & { + name: 'show'; +}; + +declare const systemModifiers: readonly ["ctrl", "shift", "alt", "meta"]; +type SystemModifiers = (typeof systemModifiers)[number]; +type CompatModifiers = keyof typeof keyNames; +type VOnModifiers = SystemModifiers | ModifierGuards | CompatModifiers; +type ModifierGuards = 'shift' | 'ctrl' | 'alt' | 'meta' | 'left' | 'right' | 'stop' | 'prevent' | 'self' | 'middle' | 'exact'; +/** + * @private + */ +export declare const withModifiers: <T extends (event: Event, ...args: unknown[]) => any>(fn: T & { + _withMods?: { + [key: string]: T; + }; +}, modifiers: VOnModifiers[]) => T; +declare const keyNames: Record<'esc' | 'space' | 'up' | 'left' | 'right' | 'down' | 'delete', string>; +/** + * @private + */ +export declare const withKeys: <T extends (event: KeyboardEvent) => any>(fn: T & { + _withKeys?: { + [k: string]: T; + }; +}, modifiers: string[]) => T; +type VOnDirective = Directive<any, any, VOnModifiers>; + +type AssignerFn = (value: any) => void; +declare const assignKey: unique symbol; +type ModelDirective<T, Modifiers extends string = string> = ObjectDirective<T & { + [assignKey]: AssignerFn; + _assigning?: boolean; +}, any, Modifiers>; +export declare const vModelText: ModelDirective<HTMLInputElement | HTMLTextAreaElement, 'trim' | 'number' | 'lazy'>; +export declare const vModelCheckbox: ModelDirective<HTMLInputElement>; +export declare const vModelRadio: ModelDirective<HTMLInputElement>; +export declare const vModelSelect: ModelDirective<HTMLSelectElement, 'number'>; +export declare const vModelDynamic: ObjectDirective<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>; +type VModelDirective = typeof vModelText | typeof vModelCheckbox | typeof vModelSelect | typeof vModelRadio | typeof vModelDynamic; + +export type VueElementConstructor<P = {}> = { + new (initialProps?: Record<string, any>): VueElement & P; +}; +export interface CustomElementOptions { + styles?: string[]; + shadowRoot?: boolean; + shadowRootOptions?: Omit<ShadowRootInit, 'mode'>; + nonce?: string; + configureApp?: (app: App) => void; +} +export declare function defineCustomElement<Props, RawBindings = object>(setup: (props: Props, ctx: SetupContext) => RawBindings | RenderFunction, options?: Pick<ComponentOptions, 'name' | 'inheritAttrs' | 'emits'> & CustomElementOptions & { + props?: (keyof Props)[]; +}): VueElementConstructor<Props>; +export declare function defineCustomElement<Props, RawBindings = object>(setup: (props: Props, ctx: SetupContext) => RawBindings | RenderFunction, options?: Pick<ComponentOptions, 'name' | 'inheritAttrs' | 'emits'> & CustomElementOptions & { + props?: ComponentObjectPropsOptions<Props>; +}): VueElementConstructor<Props>; +export declare function defineCustomElement<RuntimePropsOptions extends ComponentObjectPropsOptions = ComponentObjectPropsOptions, PropsKeys extends string = string, RuntimeEmitsOptions extends EmitsOptions = {}, EmitsKeys extends string = string, Data = {}, SetupBindings = {}, Computed extends ComputedOptions = {}, Methods extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, InjectOptions extends ComponentInjectOptions = {}, InjectKeys extends string = string, Slots extends SlotsType = {}, LocalComponents extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, InferredProps = string extends PropsKeys ? ComponentObjectPropsOptions extends RuntimePropsOptions ? {} : ExtractPropTypes<RuntimePropsOptions> : { + [key in PropsKeys]?: any; +}, ResolvedProps = InferredProps & EmitsToProps<RuntimeEmitsOptions>>(options: CustomElementOptions & { + props?: (RuntimePropsOptions & ThisType<void>) | PropsKeys[]; +} & ComponentOptionsBase<ResolvedProps, SetupBindings, Data, Computed, Methods, Mixin, Extends, RuntimeEmitsOptions, EmitsKeys, {}, // Defaults +InjectOptions, InjectKeys, Slots, LocalComponents, Directives, Exposed, Provide> & ThisType<CreateComponentPublicInstanceWithMixins<Readonly<ResolvedProps>, SetupBindings, Data, Computed, Methods, Mixin, Extends, RuntimeEmitsOptions, EmitsKeys, {}, false, InjectOptions, Slots, LocalComponents, Directives, Exposed>>, extraOptions?: CustomElementOptions): VueElementConstructor<ResolvedProps>; +export declare function defineCustomElement<T extends { + new (...args: any[]): ComponentPublicInstance<any>; +}>(options: T, extraOptions?: CustomElementOptions): VueElementConstructor<T extends DefineComponent<infer P, any, any, any> ? P : unknown>; +export declare const defineSSRCustomElement: typeof defineCustomElement; +declare const BaseClass: typeof HTMLElement; +type InnerComponentDef = ConcreteComponent & CustomElementOptions; +export declare class VueElement extends BaseClass implements ComponentCustomElementInterface { + /** + * Component def - note this may be an AsyncWrapper, and this._def will + * be overwritten by the inner component when resolved. + */ + private _def; + private _props; + private _createApp; + _isVueCE: boolean; + private _connected; + private _resolved; + private _patching; + private _dirty; + private _numberProps; + private _styleChildren; + private _pendingResolve; + private _parent; + /** + * dev only + */ + private _styles?; + /** + * dev only + */ + private _childStyles?; + private _ob?; + private _slots?; + constructor( + /** + * Component def - note this may be an AsyncWrapper, and this._def will + * be overwritten by the inner component when resolved. + */ + _def: InnerComponentDef, _props?: Record<string, any>, _createApp?: CreateAppFunction<Element>); + connectedCallback(): void; + private _setParent; + private _inheritParentContext; + disconnectedCallback(): void; + private _processMutations; + /** + * resolve inner component definition (handle possible async component) + */ + private _resolveDef; + private _mount; + private _resolveProps; + protected _setAttr(key: string): void; + private _update; + private _createVNode; + private _applyStyles; + /** + * Only called when shadowRoot is false + */ + private _parseSlots; + /** + * Only called when shadowRoot is false + */ + private _renderSlots; +} +export declare function useHost(caller?: string): VueElement | null; +/** + * Retrieve the shadowRoot of the current custom element. Only usable in setup() + * of a `defineCustomElement` component. + */ +export declare function useShadowRoot(): ShadowRoot | null; + +export declare function useCssModule(name?: string): Record<string, string>; + +/** + * Runtime helper for SFC's CSS variable injection feature. + * @private + */ +export declare function useCssVars(getter: (ctx: any) => Record<string, unknown>): void; + +export interface CSSProperties extends CSS.Properties<string | number>, CSS.PropertiesHyphen<string | number> { + /** + * The index signature was removed to enable closed typing for style + * using CSSType. You're able to use type assertion or module augmentation + * to add properties or an index signature of your own. + * + * For examples and more information, visit: + * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors + */ + [v: `--${string}`]: string | number | undefined; +} +type Booleanish = boolean | 'true' | 'false'; +type Numberish = number | string; +export interface AriaAttributes { + /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ + 'aria-activedescendant'?: string | undefined; + /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */ + 'aria-atomic'?: Booleanish | undefined; + /** + * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be + * presented if they are made. + */ + 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both' | undefined; + /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */ + 'aria-busy'?: Booleanish | undefined; + /** + * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. + * @see aria-pressed @see aria-selected. + */ + 'aria-checked'?: Booleanish | 'mixed' | undefined; + /** + * Defines the total number of columns in a table, grid, or treegrid. + * @see aria-colindex. + */ + 'aria-colcount'?: Numberish | undefined; + /** + * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. + * @see aria-colcount @see aria-colspan. + */ + 'aria-colindex'?: Numberish | undefined; + /** + * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. + * @see aria-colindex @see aria-rowspan. + */ + 'aria-colspan'?: Numberish | undefined; + /** + * Identifies the element (or elements) whose contents or presence are controlled by the current element. + * @see aria-owns. + */ + 'aria-controls'?: string | undefined; + /** Indicates the element that represents the current item within a container or set of related elements. */ + 'aria-current'?: Booleanish | 'page' | 'step' | 'location' | 'date' | 'time' | undefined; + /** + * Identifies the element (or elements) that describes the object. + * @see aria-labelledby + */ + 'aria-describedby'?: string | undefined; + /** + * Identifies the element that provides a detailed, extended description for the object. + * @see aria-describedby. + */ + 'aria-details'?: string | undefined; + /** + * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. + * @see aria-hidden @see aria-readonly. + */ + 'aria-disabled'?: Booleanish | undefined; + /** + * Indicates what functions can be performed when a dragged object is released on the drop target. + * @deprecated in ARIA 1.1 + */ + 'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup' | undefined; + /** + * Identifies the element that provides an error message for the object. + * @see aria-invalid @see aria-describedby. + */ + 'aria-errormessage'?: string | undefined; + /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ + 'aria-expanded'?: Booleanish | undefined; + /** + * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, + * allows assistive technology to override the general default of reading in document source order. + */ + 'aria-flowto'?: string | undefined; + /** + * Indicates an element's "grabbed" state in a drag-and-drop operation. + * @deprecated in ARIA 1.1 + */ + 'aria-grabbed'?: Booleanish | undefined; + /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ + 'aria-haspopup'?: Booleanish | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | undefined; + /** + * Indicates whether the element is exposed to an accessibility API. + * @see aria-disabled. + */ + 'aria-hidden'?: Booleanish | undefined; + /** + * Indicates the entered value does not conform to the format expected by the application. + * @see aria-errormessage. + */ + 'aria-invalid'?: Booleanish | 'grammar' | 'spelling' | undefined; + /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ + 'aria-keyshortcuts'?: string | undefined; + /** + * Defines a string value that labels the current element. + * @see aria-labelledby. + */ + 'aria-label'?: string | undefined; + /** + * Identifies the element (or elements) that labels the current element. + * @see aria-describedby. + */ + 'aria-labelledby'?: string | undefined; + /** Defines the hierarchical level of an element within a structure. */ + 'aria-level'?: Numberish | undefined; + /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */ + 'aria-live'?: 'off' | 'assertive' | 'polite' | undefined; + /** Indicates whether an element is modal when displayed. */ + 'aria-modal'?: Booleanish | undefined; + /** Indicates whether a text box accepts multiple lines of input or only a single line. */ + 'aria-multiline'?: Booleanish | undefined; + /** Indicates that the user may select more than one item from the current selectable descendants. */ + 'aria-multiselectable'?: Booleanish | undefined; + /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ + 'aria-orientation'?: 'horizontal' | 'vertical' | undefined; + /** + * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship + * between DOM elements where the DOM hierarchy cannot be used to represent the relationship. + * @see aria-controls. + */ + 'aria-owns'?: string | undefined; + /** + * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. + * A hint could be a sample value or a brief description of the expected format. + */ + 'aria-placeholder'?: string | undefined; + /** + * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. + * @see aria-setsize. + */ + 'aria-posinset'?: Numberish | undefined; + /** + * Indicates the current "pressed" state of toggle buttons. + * @see aria-checked @see aria-selected. + */ + 'aria-pressed'?: Booleanish | 'mixed' | undefined; + /** + * Indicates that the element is not editable, but is otherwise operable. + * @see aria-disabled. + */ + 'aria-readonly'?: Booleanish | undefined; + /** + * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. + * @see aria-atomic. + */ + 'aria-relevant'?: 'additions' | 'additions removals' | 'additions text' | 'all' | 'removals' | 'removals additions' | 'removals text' | 'text' | 'text additions' | 'text removals' | undefined; + /** Indicates that user input is required on the element before a form may be submitted. */ + 'aria-required'?: Booleanish | undefined; + /** Defines a human-readable, author-localized description for the role of an element. */ + 'aria-roledescription'?: string | undefined; + /** + * Defines the total number of rows in a table, grid, or treegrid. + * @see aria-rowindex. + */ + 'aria-rowcount'?: Numberish | undefined; + /** + * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. + * @see aria-rowcount @see aria-rowspan. + */ + 'aria-rowindex'?: Numberish | undefined; + /** + * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. + * @see aria-rowindex @see aria-colspan. + */ + 'aria-rowspan'?: Numberish | undefined; + /** + * Indicates the current "selected" state of various widgets. + * @see aria-checked @see aria-pressed. + */ + 'aria-selected'?: Booleanish | undefined; + /** + * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. + * @see aria-posinset. + */ + 'aria-setsize'?: Numberish | undefined; + /** Indicates if items in a table or grid are sorted in ascending or descending order. */ + 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other' | undefined; + /** Defines the maximum allowed value for a range widget. */ + 'aria-valuemax'?: Numberish | undefined; + /** Defines the minimum allowed value for a range widget. */ + 'aria-valuemin'?: Numberish | undefined; + /** + * Defines the current value for a range widget. + * @see aria-valuetext. + */ + 'aria-valuenow'?: Numberish | undefined; + /** Defines the human readable text alternative of aria-valuenow for a range widget. */ + 'aria-valuetext'?: string | undefined; +} +export type StyleValue = false | null | undefined | string | CSSProperties | Array<StyleValue>; +export interface HTMLAttributes extends AriaAttributes, EventHandlers<Events> { + innerHTML?: string | undefined; + class?: any; + style?: StyleValue | undefined; + accesskey?: string | undefined; + contenteditable?: Booleanish | 'inherit' | 'plaintext-only' | undefined; + contextmenu?: string | undefined; + dir?: string | undefined; + draggable?: Booleanish | undefined; + enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | undefined; + /** + * @deprecated Use `enterkeyhint` instead. + */ + enterKeyHint?: HTMLAttributes['enterkeyhint']; + hidden?: Booleanish | '' | 'hidden' | 'until-found' | undefined; + id?: string | undefined; + inert?: Booleanish | undefined; + lang?: string | undefined; + placeholder?: string | undefined; + spellcheck?: Booleanish | undefined; + tabindex?: Numberish | undefined; + title?: string | undefined; + translate?: 'yes' | 'no' | undefined; + radiogroup?: string | undefined; + role?: string | undefined; + about?: string | undefined; + datatype?: string | undefined; + inlist?: any; + prefix?: string | undefined; + property?: string | undefined; + resource?: string | undefined; + typeof?: string | undefined; + vocab?: string | undefined; + autocapitalize?: string | undefined; + autocorrect?: string | undefined; + autosave?: string | undefined; + color?: string | undefined; + itemprop?: string | undefined; + itemscope?: Booleanish | undefined; + itemtype?: string | undefined; + itemid?: string | undefined; + itemref?: string | undefined; + results?: Numberish | undefined; + security?: string | undefined; + unselectable?: 'on' | 'off' | undefined; + /** + * Hints at the type of data that might be entered by the user while editing the element or its contents + * @see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute + */ + inputmode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search' | undefined; + /** + * Specify that a standard HTML element should behave like a defined custom built-in element + * @see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is + */ + is?: string | undefined; + /** + * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts + */ + exportparts?: string; + /** + * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part + */ + part?: string; +} +type HTMLAttributeReferrerPolicy = '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'; +export interface AnchorHTMLAttributes extends HTMLAttributes { + download?: any; + href?: string | undefined; + hreflang?: string | undefined; + media?: string | undefined; + ping?: string | undefined; + rel?: string | undefined; + target?: string | undefined; + type?: string | undefined; + referrerpolicy?: HTMLAttributeReferrerPolicy | undefined; +} +export interface AreaHTMLAttributes extends HTMLAttributes { + alt?: string | undefined; + coords?: string | undefined; + download?: any; + href?: string | undefined; + hreflang?: string | undefined; + media?: string | undefined; + referrerpolicy?: HTMLAttributeReferrerPolicy | undefined; + rel?: string | undefined; + shape?: string | undefined; + target?: string | undefined; +} +export interface AudioHTMLAttributes extends MediaHTMLAttributes { +} +export interface BaseHTMLAttributes extends HTMLAttributes { + href?: string | undefined; + target?: string | undefined; +} +export interface BlockquoteHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; +} +export interface ButtonHTMLAttributes extends HTMLAttributes { + autofocus?: Booleanish | undefined; + disabled?: Booleanish | undefined; + form?: string | undefined; + formaction?: string | undefined; + formenctype?: string | undefined; + formmethod?: string | undefined; + formnovalidate?: Booleanish | undefined; + formtarget?: string | undefined; + name?: string | undefined; + type?: 'submit' | 'reset' | 'button' | undefined; + value?: string | ReadonlyArray<string> | number | undefined; +} +export interface CanvasHTMLAttributes extends HTMLAttributes { + height?: Numberish | undefined; + width?: Numberish | undefined; +} +export interface ColHTMLAttributes extends HTMLAttributes { + span?: Numberish | undefined; + width?: Numberish | undefined; +} +export interface ColgroupHTMLAttributes extends HTMLAttributes { + span?: Numberish | undefined; +} +export interface DataHTMLAttributes extends HTMLAttributes { + value?: string | ReadonlyArray<string> | number | undefined; +} +export interface DetailsHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + open?: Booleanish | undefined; +} +export interface DelHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + datetime?: string | undefined; +} +export interface DialogHTMLAttributes extends HTMLAttributes { + open?: Booleanish | undefined; + onClose?: ((payload: Event) => void) | undefined; + onCancel?: ((payload: Event) => void) | undefined; +} +export interface EmbedHTMLAttributes extends HTMLAttributes { + height?: Numberish | undefined; + src?: string | undefined; + type?: string | undefined; + width?: Numberish | undefined; +} +export interface FieldsetHTMLAttributes extends HTMLAttributes { + disabled?: Booleanish | undefined; + form?: string | undefined; + name?: string | undefined; +} +export interface FormHTMLAttributes extends HTMLAttributes { + acceptcharset?: string | undefined; + action?: string | undefined; + autocomplete?: string | undefined; + enctype?: string | undefined; + method?: string | undefined; + name?: string | undefined; + novalidate?: Booleanish | undefined; + target?: string | undefined; +} +export interface HtmlHTMLAttributes extends HTMLAttributes { + manifest?: string | undefined; +} +export interface IframeHTMLAttributes extends HTMLAttributes { + allow?: string | undefined; + allowfullscreen?: Booleanish | undefined; + allowtransparency?: Booleanish | undefined; + /** @deprecated */ + frameborder?: Numberish | undefined; + height?: Numberish | undefined; + loading?: 'eager' | 'lazy' | undefined; + /** @deprecated */ + marginheight?: Numberish | undefined; + /** @deprecated */ + marginwidth?: Numberish | undefined; + name?: string | undefined; + referrerpolicy?: HTMLAttributeReferrerPolicy | undefined; + sandbox?: string | undefined; + /** @deprecated */ + scrolling?: string | undefined; + seamless?: Booleanish | undefined; + src?: string | undefined; + srcdoc?: string | undefined; + width?: Numberish | undefined; +} +export interface ImgHTMLAttributes extends HTMLAttributes { + alt?: string | undefined; + crossorigin?: 'anonymous' | 'use-credentials' | '' | undefined; + decoding?: 'async' | 'auto' | 'sync' | undefined; + fetchpriority?: 'high' | 'low' | 'auto' | undefined; + height?: Numberish | undefined; + loading?: 'eager' | 'lazy' | undefined; + referrerpolicy?: HTMLAttributeReferrerPolicy | undefined; + sizes?: string | undefined; + src?: string | undefined; + srcset?: string | undefined; + usemap?: string | undefined; + width?: Numberish | undefined; +} +export interface InsHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + datetime?: string | undefined; +} +export type InputTypeHTMLAttribute = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week' | (string & {}); +type AutoFillAddressKind = 'billing' | 'shipping'; +type AutoFillBase = '' | 'off' | 'on'; +type AutoFillContactField = 'email' | 'tel' | 'tel-area-code' | 'tel-country-code' | 'tel-extension' | 'tel-local' | 'tel-local-prefix' | 'tel-local-suffix' | 'tel-national'; +type AutoFillContactKind = 'home' | 'mobile' | 'work'; +type AutoFillCredentialField = 'webauthn'; +type AutoFillNormalField = 'additional-name' | 'address-level1' | 'address-level2' | 'address-level3' | 'address-level4' | 'address-line1' | 'address-line2' | 'address-line3' | 'bday-day' | 'bday-month' | 'bday-year' | 'cc-csc' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-family-name' | 'cc-given-name' | 'cc-name' | 'cc-number' | 'cc-type' | 'country' | 'country-name' | 'current-password' | 'family-name' | 'given-name' | 'honorific-prefix' | 'honorific-suffix' | 'name' | 'new-password' | 'one-time-code' | 'organization' | 'postal-code' | 'street-address' | 'transaction-amount' | 'transaction-currency' | 'username'; +type OptionalPrefixToken<T extends string> = `${T} ` | ''; +type OptionalPostfixToken<T extends string> = ` ${T}` | ''; +type AutoFillField = AutoFillNormalField | `${OptionalPrefixToken<AutoFillContactKind>}${AutoFillContactField}`; +type AutoFillSection = `section-${string}`; +type AutoFill = AutoFillBase | `${OptionalPrefixToken<AutoFillSection>}${OptionalPrefixToken<AutoFillAddressKind>}${AutoFillField}${OptionalPostfixToken<AutoFillCredentialField>}`; +export type InputAutoCompleteAttribute = AutoFill | (string & {}); +export interface InputHTMLAttributes extends HTMLAttributes { + accept?: string | undefined; + alt?: string | undefined; + autocomplete?: InputAutoCompleteAttribute | undefined; + autofocus?: Booleanish | undefined; + capture?: boolean | 'user' | 'environment' | undefined; + checked?: Booleanish | any[] | Set<any> | undefined; + crossorigin?: string | undefined; + disabled?: Booleanish | undefined; + form?: string | undefined; + formaction?: string | undefined; + formenctype?: string | undefined; + formmethod?: string | undefined; + formnovalidate?: Booleanish | undefined; + formtarget?: string | undefined; + height?: Numberish | undefined; + indeterminate?: boolean | undefined; + list?: string | undefined; + max?: Numberish | undefined; + maxlength?: Numberish | undefined; + min?: Numberish | undefined; + minlength?: Numberish | undefined; + multiple?: Booleanish | undefined; + name?: string | undefined; + pattern?: string | undefined; + placeholder?: string | undefined; + readonly?: Booleanish | undefined; + required?: Booleanish | undefined; + size?: Numberish | undefined; + src?: string | undefined; + step?: Numberish | undefined; + type?: InputTypeHTMLAttribute | undefined; + value?: any; + width?: Numberish | undefined; + onCancel?: ((payload: Event) => void) | undefined; +} +export interface KeygenHTMLAttributes extends HTMLAttributes { + autofocus?: Booleanish | undefined; + challenge?: string | undefined; + disabled?: Booleanish | undefined; + form?: string | undefined; + keytype?: string | undefined; + keyparams?: string | undefined; + name?: string | undefined; +} +export interface LabelHTMLAttributes extends HTMLAttributes { + for?: string | undefined; + form?: string | undefined; +} +export interface LiHTMLAttributes extends HTMLAttributes { + value?: string | ReadonlyArray<string> | number | undefined; +} +export interface LinkHTMLAttributes extends HTMLAttributes { + as?: string | undefined; + crossorigin?: string | undefined; + href?: string | undefined; + hreflang?: string | undefined; + integrity?: string | undefined; + media?: string | undefined; + referrerpolicy?: HTMLAttributeReferrerPolicy | undefined; + rel?: string | undefined; + sizes?: string | undefined; + type?: string | undefined; + charset?: string | undefined; +} +export interface MapHTMLAttributes extends HTMLAttributes { + name?: string | undefined; +} +export interface MenuHTMLAttributes extends HTMLAttributes { + type?: string | undefined; +} +export interface MediaHTMLAttributes extends HTMLAttributes { + autoplay?: Booleanish | undefined; + controls?: Booleanish | undefined; + controlslist?: string | undefined; + crossorigin?: string | undefined; + loop?: Booleanish | undefined; + mediagroup?: string | undefined; + muted?: Booleanish | undefined; + playsinline?: Booleanish | undefined; + preload?: string | undefined; + src?: string | undefined; +} +export interface MetaHTMLAttributes extends HTMLAttributes { + charset?: string | undefined; + content?: string | undefined; + httpequiv?: string | undefined; + name?: string | undefined; +} +export interface MeterHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + high?: Numberish | undefined; + low?: Numberish | undefined; + max?: Numberish | undefined; + min?: Numberish | undefined; + optimum?: Numberish | undefined; + value?: string | ReadonlyArray<string> | number | undefined; +} +export interface QuoteHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; +} +export interface ObjectHTMLAttributes extends HTMLAttributes { + classid?: string | undefined; + data?: string | undefined; + form?: string | undefined; + height?: Numberish | undefined; + name?: string | undefined; + type?: string | undefined; + usemap?: string | undefined; + width?: Numberish | undefined; + wmode?: string | undefined; +} +export interface OlHTMLAttributes extends HTMLAttributes { + reversed?: Booleanish | undefined; + start?: Numberish | undefined; + type?: '1' | 'a' | 'A' | 'i' | 'I' | undefined; +} +export interface OptgroupHTMLAttributes extends HTMLAttributes { + disabled?: Booleanish | undefined; + label?: string | undefined; +} +export interface OptionHTMLAttributes extends HTMLAttributes { + disabled?: Booleanish | undefined; + label?: string | undefined; + selected?: Booleanish | undefined; + value?: any; +} +export interface OutputHTMLAttributes extends HTMLAttributes { + for?: string | undefined; + form?: string | undefined; + name?: string | undefined; +} +export interface ParamHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + value?: string | ReadonlyArray<string> | number | undefined; +} +export interface ProgressHTMLAttributes extends HTMLAttributes { + max?: Numberish | undefined; + value?: string | ReadonlyArray<string> | number | undefined; +} +export interface ScriptHTMLAttributes extends HTMLAttributes { + async?: Booleanish | undefined; + /** @deprecated */ + charset?: string | undefined; + crossorigin?: string | undefined; + defer?: Booleanish | undefined; + integrity?: string | undefined; + nomodule?: Booleanish | undefined; + referrerpolicy?: HTMLAttributeReferrerPolicy | undefined; + nonce?: string | undefined; + src?: string | undefined; + type?: string | undefined; +} +export interface SelectHTMLAttributes extends HTMLAttributes { + autocomplete?: string | undefined; + autofocus?: Booleanish | undefined; + disabled?: Booleanish | undefined; + form?: string | undefined; + multiple?: Booleanish | undefined; + name?: string | undefined; + required?: Booleanish | undefined; + size?: Numberish | undefined; + value?: any; +} +export interface SourceHTMLAttributes extends HTMLAttributes { + media?: string | undefined; + sizes?: string | undefined; + src?: string | undefined; + srcset?: string | undefined; + type?: string | undefined; +} +export interface StyleHTMLAttributes extends HTMLAttributes { + media?: string | undefined; + nonce?: string | undefined; + scoped?: Booleanish | undefined; + type?: string | undefined; +} +export interface TableHTMLAttributes extends HTMLAttributes { + cellpadding?: Numberish | undefined; + cellspacing?: Numberish | undefined; + summary?: string | undefined; + width?: Numberish | undefined; +} +export interface TextareaHTMLAttributes extends HTMLAttributes { + autocomplete?: string | undefined; + autofocus?: Booleanish | undefined; + cols?: Numberish | undefined; + dirname?: string | undefined; + disabled?: Booleanish | undefined; + form?: string | undefined; + maxlength?: Numberish | undefined; + minlength?: Numberish | undefined; + name?: string | undefined; + placeholder?: string | undefined; + readonly?: Booleanish | undefined; + required?: Booleanish | undefined; + rows?: Numberish | undefined; + value?: string | ReadonlyArray<string> | number | null | undefined; + wrap?: string | undefined; +} +export interface TdHTMLAttributes extends HTMLAttributes { + align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined; + colspan?: Numberish | undefined; + headers?: string | undefined; + rowspan?: Numberish | undefined; + scope?: string | undefined; + abbr?: string | undefined; + height?: Numberish | undefined; + width?: Numberish | undefined; + valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined; +} +export interface ThHTMLAttributes extends HTMLAttributes { + align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined; + colspan?: Numberish | undefined; + headers?: string | undefined; + rowspan?: Numberish | undefined; + scope?: string | undefined; + abbr?: string | undefined; +} +export interface TimeHTMLAttributes extends HTMLAttributes { + datetime?: string | undefined; +} +export interface TrackHTMLAttributes extends HTMLAttributes { + default?: Booleanish | undefined; + kind?: string | undefined; + label?: string | undefined; + src?: string | undefined; + srclang?: string | undefined; +} +export interface VideoHTMLAttributes extends MediaHTMLAttributes { + height?: Numberish | undefined; + playsinline?: Booleanish | undefined; + poster?: string | undefined; + width?: Numberish | undefined; + disablePictureInPicture?: Booleanish | undefined; + disableRemotePlayback?: Booleanish | undefined; +} +export interface WebViewHTMLAttributes extends HTMLAttributes { + allowfullscreen?: Booleanish | undefined; + allowpopups?: Booleanish | undefined; + autoFocus?: Booleanish | undefined; + autosize?: Booleanish | undefined; + blinkfeatures?: string | undefined; + disableblinkfeatures?: string | undefined; + disableguestresize?: Booleanish | undefined; + disablewebsecurity?: Booleanish | undefined; + guestinstance?: string | undefined; + httpreferrer?: string | undefined; + nodeintegration?: Booleanish | undefined; + partition?: string | undefined; + plugins?: Booleanish | undefined; + preload?: string | undefined; + src?: string | undefined; + useragent?: string | undefined; + webpreferences?: string | undefined; +} +export interface SVGAttributes extends AriaAttributes, EventHandlers<Events> { + innerHTML?: string | undefined; + /** + * SVG Styling Attributes + * @see https://www.w3.org/TR/SVG/styling.html#ElementSpecificStyling + */ + class?: any; + style?: StyleValue | undefined; + color?: string | undefined; + height?: Numberish | undefined; + id?: string | undefined; + lang?: string | undefined; + max?: Numberish | undefined; + media?: string | undefined; + method?: string | undefined; + min?: Numberish | undefined; + name?: string | undefined; + target?: string | undefined; + type?: string | undefined; + width?: Numberish | undefined; + role?: string | undefined; + tabindex?: Numberish | undefined; + crossOrigin?: 'anonymous' | 'use-credentials' | '' | undefined; + 'accent-height'?: Numberish | undefined; + accumulate?: 'none' | 'sum' | undefined; + additive?: 'replace' | 'sum' | undefined; + 'alignment-baseline'?: 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit' | undefined; + allowReorder?: 'no' | 'yes' | undefined; + alphabetic?: Numberish | undefined; + amplitude?: Numberish | undefined; + 'arabic-form'?: 'initial' | 'medial' | 'terminal' | 'isolated' | undefined; + ascent?: Numberish | undefined; + attributeName?: string | undefined; + attributeType?: string | undefined; + autoReverse?: Numberish | undefined; + azimuth?: Numberish | undefined; + baseFrequency?: Numberish | undefined; + 'baseline-shift'?: Numberish | undefined; + baseProfile?: Numberish | undefined; + bbox?: Numberish | undefined; + begin?: Numberish | undefined; + bias?: Numberish | undefined; + by?: Numberish | undefined; + calcMode?: Numberish | undefined; + 'cap-height'?: Numberish | undefined; + clip?: Numberish | undefined; + 'clip-path'?: string | undefined; + clipPathUnits?: Numberish | undefined; + 'clip-rule'?: Numberish | undefined; + 'color-interpolation'?: Numberish | undefined; + 'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit' | undefined; + 'color-profile'?: Numberish | undefined; + 'color-rendering'?: Numberish | undefined; + contentScriptType?: Numberish | undefined; + contentStyleType?: Numberish | undefined; + cursor?: Numberish | undefined; + cx?: Numberish | undefined; + cy?: Numberish | undefined; + d?: string | undefined; + decelerate?: Numberish | undefined; + descent?: Numberish | undefined; + diffuseConstant?: Numberish | undefined; + direction?: Numberish | undefined; + display?: Numberish | undefined; + divisor?: Numberish | undefined; + 'dominant-baseline'?: Numberish | undefined; + dur?: Numberish | undefined; + dx?: Numberish | undefined; + dy?: Numberish | undefined; + edgeMode?: Numberish | undefined; + elevation?: Numberish | undefined; + 'enable-background'?: Numberish | undefined; + end?: Numberish | undefined; + exponent?: Numberish | undefined; + externalResourcesRequired?: Numberish | undefined; + fill?: string | undefined; + 'fill-opacity'?: Numberish | undefined; + 'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit' | undefined; + filter?: string | undefined; + filterRes?: Numberish | undefined; + filterUnits?: Numberish | undefined; + 'flood-color'?: Numberish | undefined; + 'flood-opacity'?: Numberish | undefined; + focusable?: Numberish | undefined; + 'font-family'?: string | undefined; + 'font-size'?: Numberish | undefined; + 'font-size-adjust'?: Numberish | undefined; + 'font-stretch'?: Numberish | undefined; + 'font-style'?: Numberish | undefined; + 'font-variant'?: Numberish | undefined; + 'font-weight'?: Numberish | undefined; + format?: Numberish | undefined; + from?: Numberish | undefined; + fx?: Numberish | undefined; + fy?: Numberish | undefined; + g1?: Numberish | undefined; + g2?: Numberish | undefined; + 'glyph-name'?: Numberish | undefined; + 'glyph-orientation-horizontal'?: Numberish | undefined; + 'glyph-orientation-vertical'?: Numberish | undefined; + glyphRef?: Numberish | undefined; + gradientTransform?: string | undefined; + gradientUnits?: string | undefined; + hanging?: Numberish | undefined; + 'horiz-adv-x'?: Numberish | undefined; + 'horiz-origin-x'?: Numberish | undefined; + href?: string | undefined; + ideographic?: Numberish | undefined; + 'image-rendering'?: Numberish | undefined; + in2?: Numberish | undefined; + in?: string | undefined; + intercept?: Numberish | undefined; + k1?: Numberish | undefined; + k2?: Numberish | undefined; + k3?: Numberish | undefined; + k4?: Numberish | undefined; + k?: Numberish | undefined; + kernelMatrix?: Numberish | undefined; + kernelUnitLength?: Numberish | undefined; + kerning?: Numberish | undefined; + keyPoints?: Numberish | undefined; + keySplines?: Numberish | undefined; + keyTimes?: Numberish | undefined; + lengthAdjust?: Numberish | undefined; + 'letter-spacing'?: Numberish | undefined; + 'lighting-color'?: Numberish | undefined; + limitingConeAngle?: Numberish | undefined; + local?: Numberish | undefined; + 'marker-end'?: string | undefined; + markerHeight?: Numberish | undefined; + 'marker-mid'?: string | undefined; + 'marker-start'?: string | undefined; + markerUnits?: Numberish | undefined; + markerWidth?: Numberish | undefined; + mask?: string | undefined; + maskContentUnits?: Numberish | undefined; + maskUnits?: Numberish | undefined; + mathematical?: Numberish | undefined; + mode?: Numberish | undefined; + numOctaves?: Numberish | undefined; + offset?: Numberish | undefined; + opacity?: Numberish | undefined; + operator?: Numberish | undefined; + order?: Numberish | undefined; + orient?: Numberish | undefined; + orientation?: Numberish | undefined; + origin?: Numberish | undefined; + overflow?: Numberish | undefined; + 'overline-position'?: Numberish | undefined; + 'overline-thickness'?: Numberish | undefined; + 'paint-order'?: Numberish | undefined; + 'panose-1'?: Numberish | undefined; + pathLength?: Numberish | undefined; + patternContentUnits?: string | undefined; + patternTransform?: Numberish | undefined; + patternUnits?: string | undefined; + 'pointer-events'?: Numberish | undefined; + points?: string | undefined; + pointsAtX?: Numberish | undefined; + pointsAtY?: Numberish | undefined; + pointsAtZ?: Numberish | undefined; + preserveAlpha?: Numberish | undefined; + preserveAspectRatio?: string | undefined; + primitiveUnits?: Numberish | undefined; + r?: Numberish | undefined; + radius?: Numberish | undefined; + refX?: Numberish | undefined; + refY?: Numberish | undefined; + renderingIntent?: Numberish | undefined; + repeatCount?: Numberish | undefined; + repeatDur?: Numberish | undefined; + requiredExtensions?: Numberish | undefined; + requiredFeatures?: Numberish | undefined; + restart?: Numberish | undefined; + result?: string | undefined; + rotate?: Numberish | undefined; + rx?: Numberish | undefined; + ry?: Numberish | undefined; + scale?: Numberish | undefined; + seed?: Numberish | undefined; + 'shape-rendering'?: Numberish | undefined; + slope?: Numberish | undefined; + spacing?: Numberish | undefined; + specularConstant?: Numberish | undefined; + specularExponent?: Numberish | undefined; + speed?: Numberish | undefined; + spreadMethod?: string | undefined; + startOffset?: Numberish | undefined; + stdDeviation?: Numberish | undefined; + stemh?: Numberish | undefined; + stemv?: Numberish | undefined; + stitchTiles?: Numberish | undefined; + 'stop-color'?: string | undefined; + 'stop-opacity'?: Numberish | undefined; + 'strikethrough-position'?: Numberish | undefined; + 'strikethrough-thickness'?: Numberish | undefined; + string?: Numberish | undefined; + stroke?: string | undefined; + 'stroke-dasharray'?: Numberish | undefined; + 'stroke-dashoffset'?: Numberish | undefined; + 'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit' | undefined; + 'stroke-linejoin'?: 'miter' | 'round' | 'bevel' | 'inherit' | undefined; + 'stroke-miterlimit'?: Numberish | undefined; + 'stroke-opacity'?: Numberish | undefined; + 'stroke-width'?: Numberish | undefined; + surfaceScale?: Numberish | undefined; + systemLanguage?: Numberish | undefined; + tableValues?: Numberish | undefined; + targetX?: Numberish | undefined; + targetY?: Numberish | undefined; + 'text-anchor'?: string | undefined; + 'text-decoration'?: Numberish | undefined; + textLength?: Numberish | undefined; + 'text-rendering'?: Numberish | undefined; + to?: Numberish | undefined; + transform?: string | undefined; + u1?: Numberish | undefined; + u2?: Numberish | undefined; + 'underline-position'?: Numberish | undefined; + 'underline-thickness'?: Numberish | undefined; + unicode?: Numberish | undefined; + 'unicode-bidi'?: Numberish | undefined; + 'unicode-range'?: Numberish | undefined; + 'unitsPer-em'?: Numberish | undefined; + 'v-alphabetic'?: Numberish | undefined; + values?: string | undefined; + 'vector-effect'?: Numberish | undefined; + version?: string | undefined; + 'vert-adv-y'?: Numberish | undefined; + 'vert-origin-x'?: Numberish | undefined; + 'vert-origin-y'?: Numberish | undefined; + 'v-hanging'?: Numberish | undefined; + 'v-ideographic'?: Numberish | undefined; + viewBox?: string | undefined; + viewTarget?: Numberish | undefined; + visibility?: Numberish | undefined; + 'v-mathematical'?: Numberish | undefined; + widths?: Numberish | undefined; + 'word-spacing'?: Numberish | undefined; + 'writing-mode'?: Numberish | undefined; + x1?: Numberish | undefined; + x2?: Numberish | undefined; + x?: Numberish | undefined; + xChannelSelector?: string | undefined; + 'x-height'?: Numberish | undefined; + xlinkActuate?: string | undefined; + xlinkArcrole?: string | undefined; + xlinkHref?: string | undefined; + xlinkRole?: string | undefined; + xlinkShow?: string | undefined; + xlinkTitle?: string | undefined; + xlinkType?: string | undefined; + xmlns?: string | undefined; + xmlnsXlink?: string | undefined; + y1?: Numberish | undefined; + y2?: Numberish | undefined; + y?: Numberish | undefined; + yChannelSelector?: string | undefined; + z?: Numberish | undefined; + zoomAndPan?: string | undefined; +} +export interface IntrinsicElementAttributes { + a: AnchorHTMLAttributes; + abbr: HTMLAttributes; + address: HTMLAttributes; + area: AreaHTMLAttributes; + article: HTMLAttributes; + aside: HTMLAttributes; + audio: AudioHTMLAttributes; + b: HTMLAttributes; + base: BaseHTMLAttributes; + bdi: HTMLAttributes; + bdo: HTMLAttributes; + blockquote: BlockquoteHTMLAttributes; + body: HTMLAttributes; + br: HTMLAttributes; + button: ButtonHTMLAttributes; + canvas: CanvasHTMLAttributes; + caption: HTMLAttributes; + cite: HTMLAttributes; + code: HTMLAttributes; + col: ColHTMLAttributes; + colgroup: ColgroupHTMLAttributes; + data: DataHTMLAttributes; + datalist: HTMLAttributes; + dd: HTMLAttributes; + del: DelHTMLAttributes; + details: DetailsHTMLAttributes; + dfn: HTMLAttributes; + dialog: DialogHTMLAttributes; + div: HTMLAttributes; + dl: HTMLAttributes; + dt: HTMLAttributes; + em: HTMLAttributes; + embed: EmbedHTMLAttributes; + fieldset: FieldsetHTMLAttributes; + figcaption: HTMLAttributes; + figure: HTMLAttributes; + footer: HTMLAttributes; + form: FormHTMLAttributes; + h1: HTMLAttributes; + h2: HTMLAttributes; + h3: HTMLAttributes; + h4: HTMLAttributes; + h5: HTMLAttributes; + h6: HTMLAttributes; + head: HTMLAttributes; + header: HTMLAttributes; + hgroup: HTMLAttributes; + hr: HTMLAttributes; + html: HtmlHTMLAttributes; + i: HTMLAttributes; + iframe: IframeHTMLAttributes; + img: ImgHTMLAttributes; + input: InputHTMLAttributes; + ins: InsHTMLAttributes; + kbd: HTMLAttributes; + keygen: KeygenHTMLAttributes; + label: LabelHTMLAttributes; + legend: HTMLAttributes; + li: LiHTMLAttributes; + link: LinkHTMLAttributes; + main: HTMLAttributes; + map: MapHTMLAttributes; + mark: HTMLAttributes; + menu: MenuHTMLAttributes; + meta: MetaHTMLAttributes; + meter: MeterHTMLAttributes; + nav: HTMLAttributes; + noindex: HTMLAttributes; + noscript: HTMLAttributes; + object: ObjectHTMLAttributes; + ol: OlHTMLAttributes; + optgroup: OptgroupHTMLAttributes; + option: OptionHTMLAttributes; + output: OutputHTMLAttributes; + p: HTMLAttributes; + param: ParamHTMLAttributes; + picture: HTMLAttributes; + pre: HTMLAttributes; + progress: ProgressHTMLAttributes; + q: QuoteHTMLAttributes; + rp: HTMLAttributes; + rt: HTMLAttributes; + ruby: HTMLAttributes; + s: HTMLAttributes; + samp: HTMLAttributes; + script: ScriptHTMLAttributes; + section: HTMLAttributes; + select: SelectHTMLAttributes; + small: HTMLAttributes; + source: SourceHTMLAttributes; + span: HTMLAttributes; + strong: HTMLAttributes; + style: StyleHTMLAttributes; + sub: HTMLAttributes; + summary: HTMLAttributes; + sup: HTMLAttributes; + table: TableHTMLAttributes; + template: HTMLAttributes; + tbody: HTMLAttributes; + td: TdHTMLAttributes; + textarea: TextareaHTMLAttributes; + tfoot: HTMLAttributes; + th: ThHTMLAttributes; + thead: HTMLAttributes; + time: TimeHTMLAttributes; + title: HTMLAttributes; + tr: HTMLAttributes; + track: TrackHTMLAttributes; + u: HTMLAttributes; + ul: HTMLAttributes; + var: HTMLAttributes; + video: VideoHTMLAttributes; + wbr: HTMLAttributes; + webview: WebViewHTMLAttributes; + svg: SVGAttributes; + animate: SVGAttributes; + animateMotion: SVGAttributes; + animateTransform: SVGAttributes; + circle: SVGAttributes; + clipPath: SVGAttributes; + defs: SVGAttributes; + desc: SVGAttributes; + ellipse: SVGAttributes; + feBlend: SVGAttributes; + feColorMatrix: SVGAttributes; + feComponentTransfer: SVGAttributes; + feComposite: SVGAttributes; + feConvolveMatrix: SVGAttributes; + feDiffuseLighting: SVGAttributes; + feDisplacementMap: SVGAttributes; + feDistantLight: SVGAttributes; + feDropShadow: SVGAttributes; + feFlood: SVGAttributes; + feFuncA: SVGAttributes; + feFuncB: SVGAttributes; + feFuncG: SVGAttributes; + feFuncR: SVGAttributes; + feGaussianBlur: SVGAttributes; + feImage: SVGAttributes; + feMerge: SVGAttributes; + feMergeNode: SVGAttributes; + feMorphology: SVGAttributes; + feOffset: SVGAttributes; + fePointLight: SVGAttributes; + feSpecularLighting: SVGAttributes; + feSpotLight: SVGAttributes; + feTile: SVGAttributes; + feTurbulence: SVGAttributes; + filter: SVGAttributes; + foreignObject: SVGAttributes; + g: SVGAttributes; + image: SVGAttributes; + line: SVGAttributes; + linearGradient: SVGAttributes; + marker: SVGAttributes; + mask: SVGAttributes; + metadata: SVGAttributes; + mpath: SVGAttributes; + path: SVGAttributes; + pattern: SVGAttributes; + polygon: SVGAttributes; + polyline: SVGAttributes; + radialGradient: SVGAttributes; + rect: SVGAttributes; + set: SVGAttributes; + stop: SVGAttributes; + switch: SVGAttributes; + symbol: SVGAttributes; + text: SVGAttributes; + textPath: SVGAttributes; + tspan: SVGAttributes; + use: SVGAttributes; + view: SVGAttributes; +} +export interface Events { + onCopy: ClipboardEvent; + onCut: ClipboardEvent; + onPaste: ClipboardEvent; + onCompositionend: CompositionEvent; + onCompositionstart: CompositionEvent; + onCompositionupdate: CompositionEvent; + onDrag: DragEvent; + onDragend: DragEvent; + onDragenter: DragEvent; + onDragexit: DragEvent; + onDragleave: DragEvent; + onDragover: DragEvent; + onDragstart: DragEvent; + onDrop: DragEvent; + onFocus: FocusEvent; + onFocusin: FocusEvent; + onFocusout: FocusEvent; + onBlur: FocusEvent; + onChange: Event; + onBeforeinput: InputEvent; + onFormdata: FormDataEvent; + onInput: InputEvent; + onReset: Event; + onSubmit: SubmitEvent; + onInvalid: Event; + onFullscreenchange: Event; + onFullscreenerror: Event; + onLoad: Event; + onError: Event; + onKeydown: KeyboardEvent; + onKeypress: KeyboardEvent; + onKeyup: KeyboardEvent; + onDblclick: MouseEvent; + onMousedown: MouseEvent; + onMouseenter: MouseEvent; + onMouseleave: MouseEvent; + onMousemove: MouseEvent; + onMouseout: MouseEvent; + onMouseover: MouseEvent; + onMouseup: MouseEvent; + onAbort: UIEvent; + onCanplay: Event; + onCanplaythrough: Event; + onDurationchange: Event; + onEmptied: Event; + onEncrypted: MediaEncryptedEvent; + onEnded: Event; + onLoadeddata: Event; + onLoadedmetadata: Event; + onLoadstart: Event; + onPause: Event; + onPlay: Event; + onPlaying: Event; + onProgress: ProgressEvent; + onRatechange: Event; + onSeeked: Event; + onSeeking: Event; + onStalled: Event; + onSuspend: Event; + onTimeupdate: Event; + onVolumechange: Event; + onWaiting: Event; + onSelect: Event; + onScroll: Event; + onScrollend: Event; + onTouchcancel: TouchEvent; + onTouchend: TouchEvent; + onTouchmove: TouchEvent; + onTouchstart: TouchEvent; + onAuxclick: PointerEvent; + onClick: PointerEvent; + onContextmenu: PointerEvent; + onGotpointercapture: PointerEvent; + onLostpointercapture: PointerEvent; + onPointerdown: PointerEvent; + onPointermove: PointerEvent; + onPointerup: PointerEvent; + onPointercancel: PointerEvent; + onPointerenter: PointerEvent; + onPointerleave: PointerEvent; + onPointerover: PointerEvent; + onPointerout: PointerEvent; + onBeforetoggle: ToggleEvent; + onToggle: ToggleEvent; + onWheel: WheelEvent; + onAnimationcancel: AnimationEvent; + onAnimationstart: AnimationEvent; + onAnimationend: AnimationEvent; + onAnimationiteration: AnimationEvent; + onSecuritypolicyviolation: SecurityPolicyViolationEvent; + onTransitioncancel: TransitionEvent; + onTransitionend: TransitionEvent; + onTransitionrun: TransitionEvent; + onTransitionstart: TransitionEvent; +} +type EventHandlers<E> = { + [K in keyof E]?: E[K] extends (...args: any) => any ? E[K] : (payload: E[K]) => void; +}; + +export interface ReservedProps { + key?: PropertyKey | undefined; + ref?: VNodeRef | undefined; + ref_for?: boolean | undefined; + ref_key?: string | undefined; +} +export type NativeElements = { + [K in keyof IntrinsicElementAttributes]: IntrinsicElementAttributes[K] & ReservedProps; +}; + +/** + * This is a stub implementation to prevent the need to use dom types. + * + * To enable proper types, add `"dom"` to `"lib"` in your `tsconfig.json`. + */ +type DomType<T> = typeof globalThis extends { + window: unknown; +} ? T : never; +declare module '@vue/reactivity' { + interface RefUnwrapBailTypes { + runtimeDOMBailTypes: DomType<Node | Window>; + } +} +declare module '@vue/runtime-core' { + interface GlobalComponents { + Transition: DefineComponent<TransitionProps>; + TransitionGroup: DefineComponent<TransitionGroupProps>; + } + interface GlobalDirectives { + vShow: typeof vShow; + vOn: VOnDirective; + vBind: VModelDirective; + vIf: Directive<any, boolean>; + vOnce: Directive; + vSlot: Directive; + } +} +export declare const render: RootRenderFunction<Element | ShadowRoot>; +export declare const hydrate: RootHydrateFunction; +export declare const createApp: CreateAppFunction<Element>; +export declare const createSSRApp: CreateAppFunction<Element>; + + diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.js new file mode 100644 index 0000000..b2b67b4 --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.js @@ -0,0 +1,12672 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const EMPTY_ARR = Object.freeze([]) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); +} + +function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} + +let activeSub; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; + +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +const stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; +} + +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Map(); +{ + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} + +let devtools$1; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} + +function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } +} +function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); +} +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = NOOP; + watchStopHandle.resume = NOOP; + watchStopHandle.pause = NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; +} + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; +} +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; +} +function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); +} +function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; +} +function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; +} +function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; +} +function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +{ + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; +} +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } +}); +function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; +} +function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } +} +function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); +} + +const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` +); +function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; +} +function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; +} +function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } +} +function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } +} +function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; +} +function defineModel() { + { + warnRuntimeUsage("defineModel"); + } +} +function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; +} +function useSlots() { + return getContext("useSlots").slots; +} +function useAttrs() { + return getContext("useAttrs").attrs; +} +function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; +} +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } +} +function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} + +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; +} +function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; +} +function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } +} +function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } +} +const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" +); +function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +let supported; +let perf; +function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; +} + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +let hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; +} +let vnodeArgsTransformer; +function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; +} +const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); +}; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = createVNodeWithArgsTransform ; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); +function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } +} +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); +} +let compile; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } +} ; +function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); +} +function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; +}; + +function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } +} + +function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.28"; +const warn = warn$1 ; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = devtools$1 ; +const setDevtoolsHook = setDevtoolsHook$1 ; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION = "transition"; +const ANIMATION = "animation"; +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); +const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); +function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); +} +function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } +} +function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } +} + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const semicolonRE = /[^\\];\s*$/; +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; +} +function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}); +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } +} +function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; +} +function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssModule must be called inside setup()`); + return EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + warn(`Current instance does not have CSS modules injected.`); + return EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + warn(`Current instance does not have CSS module named "${name}".`); + return EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = /* @__PURE__ */ Symbol("_assign"); +function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; +} +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (isArray(value)) { + if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); +}; + +const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = ((...args) => { + ensureRenderer().render(...args); +}); +const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); +}); +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); +} +function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } +} +function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, nodeOps, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId }; diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.prod.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.prod.js new file mode 100644 index 0000000..8ca95de --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.prod.js @@ -0,0 +1,7 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var e,t;let n,l,r,i,s,o,a,u,c,f,p,d;function h(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let g={},_=[],m=()=>{},y=()=>!1,b=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),S=e=>e.startsWith("onUpdate:"),C=Object.assign,x=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,E=(e,t)=>w.call(e,t),k=Array.isArray,T=e=>"function"==typeof e,A=e=>"string"==typeof e,R=e=>"symbol"==typeof e,O=e=>null!==e&&"object"==typeof e,N=e=>(O(e)||T(e))&&T(e.then)&&T(e.catch),P=Object.prototype.toString,M=e=>A(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,I=h(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),L=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},F=/-\w/g,j=L(e=>e.replace(F,e=>e.slice(1).toUpperCase())),D=/\B([A-Z])/g,V=L(e=>e.replace(D,"-$1").toLowerCase()),U=L(e=>e.charAt(0).toUpperCase()+e.slice(1)),B=L(e=>e?`on${U(e)}`:""),$=(e,t)=>!Object.is(e,t),H=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},W=(e,t,n,l=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:l,value:n})},K=e=>{let t=parseFloat(e);return isNaN(t)?e:t},z=e=>{let t=A(e)?Number(e):NaN;return isNaN(t)?e:t},q=()=>n||(n="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),G=h("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function J(e){if(k(e)){let t={};for(let n=0;n<e.length;n++){let l=e[n],r=A(l)?function(e){let t={};return e.replace(Y,"").split(X).forEach(e=>{if(e){let n=e.split(Z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}(l):J(l);if(r)for(let e in r)t[e]=r[e]}return t}if(A(e)||O(e))return e}let X=/;(?![^(]*\))/g,Z=/:([^]+)/,Y=/\/\*[^]*?\*\//g;function Q(e){let t="";if(A(e))t=e;else if(k(e))for(let n=0;n<e.length;n++){let l=Q(e[n]);l&&(t+=l+" ")}else if(O(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}function ee(e){if(!e)return null;let{class:t,style:n}=e;return t&&!A(t)&&(e.class=Q(t)),n&&(e.style=J(n)),e}let et=h("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function en(e,t){let n,l;if(e===t)return!0;let r="[object Date]"===(n=e,P.call(n)),i="[object Date]"===(l=t,P.call(l));if(r||i)return!!r&&!!i&&e.getTime()===t.getTime();if(r=R(e),i=R(t),r||i)return e===t;if(r=k(e),i=k(t),r||i)return!!r&&!!i&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=en(e[l],t[l]);return n}(e,t);if(r=O(e),i=O(t),r||i){if(!r||!i||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let l=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(l&&!r||!l&&r||!en(e[n],t[n]))return!1}}return String(e)===String(t)}function el(e,t){return e.findIndex(e=>en(e,t))}let er=e=>!!(e&&!0===e.__v_isRef),ei=e=>A(e)?e:null==e?"":k(e)||O(e)&&(e.toString===P||!T(e.toString))?er(e)?ei(e.value):JSON.stringify(e,es,2):String(e),es=(e,t)=>{let n;if(er(t))return es(e,t.value);if("[object Map]"===(n=t,P.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],l)=>(e[eo(t,l)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,P.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eo(e))};else{if(R(t))return eo(t);let e;if(O(t)&&!k(t)&&"[object Object]"!==(e=t,P.call(e)))return String(t)}}return t},eo=(e,t="")=>{var n;return R(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ea{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=l;try{return l=this,e()}finally{l=t}}}on(){1==++this._on&&(this.prevScope=l,l=this)}off(){this._on>0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}function eu(e){return new ea(e)}function ec(){return l}function ef(e,t=!1){l&&l.cleanups.push(e)}let ep=new WeakSet;class ed{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,l&&l.active&&l.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,ep.has(this)&&(ep.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||eg(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,eA(this),e_(this);let e=r,t=ew;r=this,ew=!0;try{return this.fn()}finally{em(this),r=e,ew=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)eS(e);this.deps=this.depsTail=void 0,eA(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?ep.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ey(this)&&this.run()}get dirty(){return ey(this)}}let eh=0;function eg(e,t=!1){if(e.flags|=8,t){e.next=s,s=e;return}e.next=i,i=e}function ev(){let e;if(!(--eh>0)){if(s){let e=s;for(s=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;i;){let t=i;for(i=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function e_(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function em(e){let t,n=e.depsTail,l=n;for(;l;){let e=l.prevDep;-1===l.version?(l===n&&(n=e),eS(l),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(l)):t=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=e}e.deps=t,e.depsTail=n}function ey(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eb(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eb(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eR)||(e.globalVersion=eR,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ey(e))))return;e.flags|=2;let t=e.dep,n=r,l=ew;r=e,ew=!0;try{e_(e);let n=e.fn(e._value);(0===t.version||$(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{r=n,ew=l,em(e),e.flags&=-3}}function eS(e,t=!1){let{dep:n,prevSub:l,nextSub:r}=e;if(l&&(l.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=l,e.nextSub=void 0),n.subs===e&&(n.subs=l,!l&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eS(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function eC(e,t){e.effect instanceof ed&&(e=e.effect.fn);let n=new ed(e);t&&C(n,t);try{n.run()}catch(e){throw n.stop(),e}let l=n.run.bind(n);return l.effect=n,l}function ex(e){e.effect.stop()}let ew=!0,eE=[];function ek(){eE.push(ew),ew=!1}function eT(){let e=eE.pop();ew=void 0===e||e}function eA(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=r;r=void 0;try{t()}finally{r=e}}}let eR=0;class eO{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eN{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!r||!ew||r===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==r)t=this.activeLink=new eO(r,this),r.deps?(t.prevDep=r.depsTail,r.depsTail.nextDep=t,r.depsTail=t):r.deps=r.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let l=t.dep.subs;l!==t&&(t.prevSub=l,l&&(l.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=r.depsTail,t.nextDep=void 0,r.depsTail.nextDep=t,r.depsTail=t,r.deps===t&&(r.deps=e)}return t}trigger(e){this.version++,eR++,this.notify(e)}notify(e){eh++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{ev()}}}let eP=new WeakMap,eM=Symbol(""),eI=Symbol(""),eL=Symbol("");function eF(e,t,n){if(ew&&r){let t=eP.get(e);t||eP.set(e,t=new Map);let l=t.get(n);l||(t.set(n,l=new eN),l.map=t,l.key=n),l.track()}}function ej(e,t,n,l,r,i){let s=eP.get(e);if(!s)return void eR++;let o=e=>{e&&e.trigger()};if(eh++,"clear"===t)s.forEach(o);else{let r=k(e),i=r&&M(n);if(r&&"length"===n){let e=Number(l);s.forEach((t,n)=>{("length"===n||n===eL||!R(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),i&&o(s.get(eL)),t){case"add":if(r)i&&o(s.get("length"));else{let t;o(s.get(eM));"[object Map]"===(t=e,P.call(t))&&o(s.get(eI))}break;case"delete":if(!r){let t;o(s.get(eM));"[object Map]"===(t=e,P.call(t))&&o(s.get(eI))}break;case"set":let a;"[object Map]"===(a=e,P.call(a))&&o(s.get(eM))}}ev()}function eD(e){let t=th(e);return t===e?t:(eF(t,"iterate",eL),tp(e)?t:t.map(tv))}function eV(e){return eF(e=th(e),"iterate",eL),e}function eU(e,t){return tf(e)?tc(e)?t_(tv(t)):t_(t):tv(t)}let eB={__proto__:null,[Symbol.iterator](){return e$(this,Symbol.iterator,e=>eU(this,e))},concat(...e){return eD(this).concat(...e.map(e=>k(e)?eD(e):e))},entries(){return e$(this,"entries",e=>(e[1]=eU(this,e[1]),e))},every(e,t){return eW(this,"every",e,t,void 0,arguments)},filter(e,t){return eW(this,"filter",e,t,e=>e.map(e=>eU(this,e)),arguments)},find(e,t){return eW(this,"find",e,t,e=>eU(this,e),arguments)},findIndex(e,t){return eW(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eW(this,"findLast",e,t,e=>eU(this,e),arguments)},findLastIndex(e,t){return eW(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eW(this,"forEach",e,t,void 0,arguments)},includes(...e){return ez(this,"includes",e)},indexOf(...e){return ez(this,"indexOf",e)},join(e){return eD(this).join(e)},lastIndexOf(...e){return ez(this,"lastIndexOf",e)},map(e,t){return eW(this,"map",e,t,void 0,arguments)},pop(){return eq(this,"pop")},push(...e){return eq(this,"push",e)},reduce(e,...t){return eK(this,"reduce",e,t)},reduceRight(e,...t){return eK(this,"reduceRight",e,t)},shift(){return eq(this,"shift")},some(e,t){return eW(this,"some",e,t,void 0,arguments)},splice(...e){return eq(this,"splice",e)},toReversed(){return eD(this).toReversed()},toSorted(e){return eD(this).toSorted(e)},toSpliced(...e){return eD(this).toSpliced(...e)},unshift(...e){return eq(this,"unshift",e)},values(){return e$(this,"values",e=>eU(this,e))}};function e$(e,t,n){let l=eV(e),r=l[t]();return l===e||tp(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=n(e.value)),e}),r}let eH=Array.prototype;function eW(e,t,n,l,r,i){let s=eV(e),o=s!==e&&!tp(e),a=s[t];if(a!==eH[t]){let t=a.apply(e,i);return o?tv(t):t}let u=n;s!==e&&(o?u=function(t,l){return n.call(this,eU(e,t),l,e)}:n.length>2&&(u=function(t,l){return n.call(this,t,l,e)}));let c=a.call(s,u,l);return o&&r?r(c):c}function eK(e,t,n,l){let r=eV(e),i=n;return r!==e&&(tp(e)?n.length>3&&(i=function(t,l,r){return n.call(this,t,l,r,e)}):i=function(t,l,r){return n.call(this,t,eU(e,l),r,e)}),r[t](i,...l)}function ez(e,t,n){let l=th(e);eF(l,"iterate",eL);let r=l[t](...n);return(-1===r||!1===r)&&td(n[0])?(n[0]=th(n[0]),l[t](...n)):r}function eq(e,t,n=[]){ek(),eh++;let l=th(e)[t].apply(e,n);return ev(),eT(),l}let eG=h("__proto__,__v_isRef,__isVue"),eJ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(R));function eX(e){R(e)||(e=String(e));let t=th(this);return eF(t,"has",e),t.hasOwnProperty(e)}class eZ{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let l=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!l;if("__v_isReadonly"===t)return l;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(l?r?tr:tl:r?tn:tt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let i=k(e);if(!l){let e;if(i&&(e=eB[t]))return e;if("hasOwnProperty"===t)return eX}let s=Reflect.get(e,t,tm(e)?e:n);if((R(t)?eJ.has(t):eG(t))||(l||eF(e,"get",t),r))return s;if(tm(s)){let e=i&&M(t)?s:s.value;return l&&O(e)?to(e):e}return O(s)?l?to(s):ti(s):s}}class eY extends eZ{constructor(e=!1){super(!1,e)}set(e,t,n,l){let r=e[t],i=k(e)&&M(t);if(!this._isShallow){let e=tf(r);if(tp(n)||tf(n)||(r=th(r),n=th(n)),!i&&tm(r)&&!tm(n))if(e)return!0;else return r.value=n,!0}let s=i?Number(t)<e.length:E(e,t),o=Reflect.set(e,t,n,tm(e)?e:l);return e===th(l)&&(s?$(n,r)&&ej(e,"set",t,n):ej(e,"add",t,n)),o}deleteProperty(e,t){let n=E(e,t);e[t];let l=Reflect.deleteProperty(e,t);return l&&n&&ej(e,"delete",t,void 0),l}has(e,t){let n=Reflect.has(e,t);return R(t)&&eJ.has(t)||eF(e,"has",t),n}ownKeys(e){return eF(e,"iterate",k(e)?"length":eM),Reflect.ownKeys(e)}}class eQ extends eZ{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let e0=new eY,e1=new eQ,e2=new eY(!0),e6=new eQ(!0),e8=e=>e;function e4(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e3(e,t){let n,l=(C(n={get(n){let l=this.__v_raw,r=th(l),i=th(n);e||($(n,i)&&eF(r,"get",n),eF(r,"get",i));let{has:s}=Reflect.getPrototypeOf(r),o=t?e8:e?t_:tv;return s.call(r,n)?o(l.get(n)):s.call(r,i)?o(l.get(i)):void(l!==r&&l.get(n))},get size(){let t=this.__v_raw;return e||eF(th(t),"iterate",eM),t.size},has(t){let n=this.__v_raw,l=th(n),r=th(t);return e||($(t,r)&&eF(l,"has",t),eF(l,"has",r)),t===r?n.has(t):n.has(t)||n.has(r)},forEach(n,l){let r=this,i=r.__v_raw,s=th(i),o=t?e8:e?t_:tv;return e||eF(s,"iterate",eM),i.forEach((e,t)=>n.call(l,o(e),o(t),r))}},e?{add:e4("add"),set:e4("set"),delete:e4("delete"),clear:e4("clear")}:{add(e){t||tp(e)||tf(e)||(e=th(e));let n=th(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),ej(n,"add",e,e)),this},set(e,n){t||tp(n)||tf(n)||(n=th(n));let l=th(this),{has:r,get:i}=Reflect.getPrototypeOf(l),s=r.call(l,e);s||(e=th(e),s=r.call(l,e));let o=i.call(l,e);return l.set(e,n),s?$(n,o)&&ej(l,"set",e,n):ej(l,"add",e,n),this},delete(e){let t=th(this),{has:n,get:l}=Reflect.getPrototypeOf(t),r=n.call(t,e);r||(e=th(e),r=n.call(t,e)),l&&l.call(t,e);let i=t.delete(e);return r&&ej(t,"delete",e,void 0),i},clear(){let e=th(this),t=0!==e.size,n=e.clear();return t&&ej(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=function(...n){let r,i=this.__v_raw,s=th(i),o="[object Map]"===(r=s,P.call(r)),a="entries"===l||l===Symbol.iterator&&o,u=i[l](...n),c=t?e8:e?t_:tv;return e||eF(s,"iterate","keys"===l&&o?eI:eM),C(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:a?[c(e[0]),c(e[1])]:c(e),done:t}}})}}),n);return(t,n,r)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(E(l,n)&&n in t?l:t,n,r)}let e5={get:e3(!1,!1)},e9={get:e3(!1,!0)},e7={get:e3(!0,!1)},te={get:e3(!0,!0)},tt=new WeakMap,tn=new WeakMap,tl=new WeakMap,tr=new WeakMap;function ti(e){return tf(e)?e:tu(e,!1,e0,e5,tt)}function ts(e){return tu(e,!1,e2,e9,tn)}function to(e){return tu(e,!0,e1,e7,tl)}function ta(e){return tu(e,!0,e6,te,tr)}function tu(e,t,n,l,r){var i;let s;if(!O(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(i=e).__v_skip||!Object.isExtensible(i)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=i,P.call(s)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?l:n);return r.set(e,u),u}function tc(e){return tf(e)?tc(e.__v_raw):!!(e&&e.__v_isReactive)}function tf(e){return!!(e&&e.__v_isReadonly)}function tp(e){return!!(e&&e.__v_isShallow)}function td(e){return!!e&&!!e.__v_raw}function th(e){let t=e&&e.__v_raw;return t?th(t):e}function tg(e){return!E(e,"__v_skip")&&Object.isExtensible(e)&&W(e,"__v_skip",!0),e}let tv=e=>O(e)?ti(e):e,t_=e=>O(e)?to(e):e;function tm(e){return!!e&&!0===e.__v_isRef}function ty(e){return tS(e,!1)}function tb(e){return tS(e,!0)}function tS(e,t){return tm(e)?e:new tC(e,t)}class tC{constructor(e,t){this.dep=new eN,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:th(e),this._value=t?e:tv(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tp(e)||tf(e);$(e=n?e:th(e),t)&&(this._rawValue=e,this._value=n?e:tv(e),this.dep.trigger())}}function tx(e){e.dep&&e.dep.trigger()}function tw(e){return tm(e)?e.value:e}function tE(e){return T(e)?e():tw(e)}let tk={get:(e,t,n)=>"__v_raw"===t?e:tw(Reflect.get(e,t,n)),set:(e,t,n,l)=>{let r=e[t];return tm(r)&&!tm(n)?(r.value=n,!0):Reflect.set(e,t,n,l)}};function tT(e){return tc(e)?e:new Proxy(e,tk)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eN,{get:n,set:l}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=l}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tR(e){return new tA(e)}function tO(e){let t=k(e)?Array(e.length):{};for(let n in e)t[n]=new tN(e,n,void 0);return t}class tN{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=th(e);let l=!0,r=e;if(!k(e)||!M(String(t)))do l=!td(r)||tp(r);while(l&&(r=r.__v_raw));this._shallow=l}get value(){let e=this._object[this._key];return this._shallow&&(e=tw(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&tm(this._raw[this._key])){let t=this._object[this._key];if(tm(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eP.get(e))&&n.get(t)}}class tP{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tM(e,t,n){if(tm(e))return e;if(T(e))return new tP(e);if(!O(e)||!(arguments.length>1))return ty(e);return new tN(e,t,n)}class tI{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eN(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eR-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&r!==this)return eg(this,!0),!0}get value(){let e=this.dep.track();return eb(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tL={GET:"get",HAS:"has",ITERATE:"iterate"},tF={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},tj={},tD=new WeakMap;function tV(){return p}function tU(e,t=!1,n=p){if(n){let t=tD.get(n);t||tD.set(n,t=[]),t.push(e)}}function tB(e,t=1/0,n){if(t<=0||!O(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tm(e))tB(e.value,t,n);else if(k(e))for(let l=0;l<e.length;l++)tB(e[l],t,n);else{let l,r;if("[object Set]"===(l=e,P.call(l))||"[object Map]"===(r=e,P.call(r)))e.forEach(e=>{tB(e,t,n)});else{let l;if("[object Object]"===(l=e,P.call(l))){for(let l in e)tB(e[l],t,n);for(let l of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,l)&&tB(e[l],t,n)}}}return e}function t$(e,t){}let tH={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"};function tW(e,t,n,l){try{return l?e(...l):e()}catch(e){tz(e,t,n)}}function tK(e,t,n,l){if(T(e)){let r=tW(e,t,n,l);return r&&N(r)&&r.catch(e=>{tz(e,t,n)}),r}if(k(e)){let r=[];for(let i=0;i<e.length;i++)r.push(tK(e[i],t,n,l));return r}}function tz(e,t,n,l=!0){let r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||g;if(t){let l=t.parent,r=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){let t=l.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return}l=l.parent}if(i){ek(),tW(i,null,10,[e,r,s]),eT();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,l,s)}let tq=[],tG=-1,tJ=[],tX=null,tZ=0,tY=Promise.resolve(),tQ=null;function t0(e){let t=tQ||tY;return e?t.then(this?e.bind(this):e):t}function t1(e){if(!(1&e.flags)){let t=t3(e),n=tq[tq.length-1];!n||!(2&e.flags)&&t>=t3(n)?tq.push(e):tq.splice(function(e){let t=tG+1,n=tq.length;for(;t<n;){let l=t+n>>>1,r=tq[l],i=t3(r);i<e||i===e&&2&r.flags?t=l+1:n=l}return t}(t),0,e),e.flags|=1,t2()}}function t2(){tQ||(tQ=tY.then(function e(t){try{for(tG=0;tG<tq.length;tG++){let e=tq[tG];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),tW(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tG<tq.length;tG++){let e=tq[tG];e&&(e.flags&=-2)}tG=-1,tq.length=0,t4(),tQ=null,(tq.length||tJ.length)&&e()}}))}function t6(e){k(e)?tJ.push(...e):tX&&-1===e.id?tX.splice(tZ+1,0,e):1&e.flags||(tJ.push(e),e.flags|=1),t2()}function t8(e,t,n=tG+1){for(;n<tq.length;n++){let t=tq[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tq.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function t4(e){if(tJ.length){let e=[...new Set(tJ)].sort((e,t)=>t3(e)-t3(t));if(tJ.length=0,tX)return void tX.push(...e);for(tZ=0,tX=e;tZ<tX.length;tZ++){let e=tX[tZ];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}tX=null,tZ=0}}let t3=e=>null==e.id?2&e.flags?-1:1/0:e.id,t5=null,t9=null;function t7(e){let t=t5;return t5=e,t9=e&&e.type.__scopeId||null,t}function ne(e){t9=e}function nt(){t9=null}let nn=e=>nl;function nl(e,t=t5,n){if(!t||e._n)return e;let l=(...n)=>{let r;l._d&&r0(-1);let i=t7(t);try{r=e(...n)}finally{t7(i),l._d&&r0(1)}return r};return l._n=!0,l._c=!0,l._d=!0,l}function nr(e,t){if(null===t5)return e;let n=iR(t5),l=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[r,i,s,o=g]=t[e];r&&(T(r)&&(r={mounted:r,updated:r}),r.deep&&tB(i),l.push({dir:r,instance:n,value:i,oldValue:void 0,arg:s,modifiers:o}))}return e}function ni(e,t,n,l){let r=e.dirs,i=t&&t.dirs;for(let s=0;s<r.length;s++){let o=r[s];i&&(o.oldValue=i[s].value);let a=o.dir[l];a&&(ek(),tK(a,n,8,[e.el,o,e,t]),eT())}}function ns(e,t){if(iv){let n=iv.provides,l=iv.parent&&iv.parent.provides;l===n&&(n=iv.provides=Object.create(l)),n[e]=t}}function no(e,t,n=!1){let l=i_();if(l||rr){let r=rr?rr._context.provides:l?null==l.parent||l.ce?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&T(t)?t.call(l&&l.proxy):t}}function na(){return!!(i_()||rr)}let nu=Symbol.for("v-scx"),nc=()=>no(nu);function nf(e,t){return ng(e,null,t)}function np(e,t){return ng(e,null,{flush:"post"})}function nd(e,t){return ng(e,null,{flush:"sync"})}function nh(e,t,n){return ng(e,t,n)}function ng(e,t,n=g){let l,{immediate:r,flush:i}=n,s=C({},n),o=t&&r||!t&&"post"!==i;if(iS){if("sync"===i){let e=nc();l=e.__watcherHandles||(e.__watcherHandles=[])}else if(!o){let e=()=>{};return e.stop=m,e.resume=m,e.pause=m,e}}let a=iv;s.call=(e,t,n)=>tK(e,a,t,n);let u=!1;"post"===i?s.scheduler=e=>{rA(e,a&&a.suspense)}:"sync"!==i&&(u=!0,s.scheduler=(e,t)=>{t?e():t1(e)}),s.augmentJob=e=>{t&&(e.flags|=4),u&&(e.flags|=2,a&&(e.id=a.uid,e.i=a))};let c=function(e,t,n=g){let l,r,i,s,{immediate:o,deep:a,once:u,scheduler:c,augmentJob:f,call:d}=n,h=e=>a?e:tp(e)||!1===a||0===a?tB(e,1):tB(e),_=!1,y=!1;if(tm(e)?(r=()=>e.value,_=tp(e)):tc(e)?(r=()=>h(e),_=!0):k(e)?(y=!0,_=e.some(e=>tc(e)||tp(e)),r=()=>e.map(e=>tm(e)?e.value:tc(e)?h(e):T(e)?d?d(e,2):e():void 0)):r=T(e)?t?d?()=>d(e,2):e:()=>{if(i){ek();try{i()}finally{eT()}}let t=p;p=l;try{return d?d(e,3,[s]):e(s)}finally{p=t}}:m,t&&a){let e=r,t=!0===a?1/0:a;r=()=>tB(e(),t)}let b=ec(),S=()=>{l.stop(),b&&b.active&&x(b.effects,l)};if(u&&t){let e=t;t=(...t)=>{e(...t),S()}}let C=y?Array(e.length).fill(tj):tj,w=e=>{if(1&l.flags&&(l.dirty||e))if(t){let e=l.run();if(a||_||(y?e.some((e,t)=>$(e,C[t])):$(e,C))){i&&i();let n=p;p=l;try{let n=[e,C===tj?void 0:y&&C[0]===tj?[]:C,s];C=e,d?d(t,3,n):t(...n)}finally{p=n}}}else l.run()};return f&&f(w),(l=new ed(r)).scheduler=c?()=>c(w,!1):w,s=e=>tU(e,!1,l),i=l.onStop=()=>{let e=tD.get(l);if(e){if(d)d(e,4);else for(let t of e)t();tD.delete(l)}},t?o?w(!0):C=l.run():c?c(w.bind(null,!0),!0):l.run(),S.pause=l.pause.bind(l),S.resume=l.resume.bind(l),S.stop=S,S}(e,t,s);return iS&&(l?l.push(c):o&&c()),c}function nv(e,t,n){let l,r=this.proxy,i=A(e)?e.includes(".")?n_(r,e):()=>r[e]:e.bind(r,r);T(t)?l=t:(l=t.handler,n=t);let s=im(this),o=ng(i,l.bind(r),n);return s(),o}function n_(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let nm=Symbol("_vte"),ny=e=>e&&(e.disabled||""===e.disabled),nb=e=>e&&(e.defer||""===e.defer),nS=e=>"u">typeof SVGElement&&e instanceof SVGElement,nC=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,nx=(e,t)=>{let n=e&&e.to;return A(n)?t?t(n):null:n},nw={name:"Teleport",__isTeleport:!0,process(e,t,n,l,r,i,s,o,a,u){let{mc:c,pc:f,pbc:p,o:{insert:d,querySelector:h,createText:g}}=u,_=ny(t.props),{shapeFlag:m,children:y,dynamicChildren:b}=t;if(null==e){let e=t.el=g(""),u=t.anchor=g("");d(e,n,l),d(u,n,l);let f=(e,t)=>{16&m&&c(y,e,t,r,i,s,o,a)},p=()=>{let e=t.target=nx(t.props,h),n=nA(e,t,g,d);e&&("svg"!==s&&nS(e)?s="svg":"mathml"!==s&&nC(e)&&(s="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(e),_||(f(e,n),nT(t,!1)))};_&&(f(n,u),nT(t,!0)),nb(t.props)?(t.el.__isMounted=!1,rA(()=>{p(),delete t.el.__isMounted},i)):p()}else{if(nb(t.props)&&!1===e.el.__isMounted)return void rA(()=>{nw.process(e,t,n,l,r,i,s,o,a,u)},i);t.el=e.el,t.targetStart=e.targetStart;let c=t.anchor=e.anchor,d=t.target=e.target,g=t.targetAnchor=e.targetAnchor,m=ny(e.props),y=m?n:d,S=m?c:g;if("svg"===s||nS(d)?s="svg":("mathml"===s||nC(d))&&(s="mathml"),b?(p(e.dynamicChildren,b,y,r,i,s,o),rL(e,t,!0)):a||f(e,t,y,S,r,i,s,o,!1),_)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nE(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=nx(t.props,h);e&&nE(t,e,null,u,0)}else m&&nE(t,d,g,u,1);nT(t,_)}},remove(e,t,n,{um:l,o:{remove:r}},i){let{shapeFlag:s,children:o,anchor:a,targetStart:u,targetAnchor:c,target:f,props:p}=e;if(f&&(r(u),r(c)),i&&r(a),16&s){let e=i||!ny(p);for(let r=0;r<o.length;r++){let i=o[r];l(i,t,n,e,!!i.dynamicChildren)}}},move:nE,hydrate:function(e,t,n,l,r,i,{o:{nextSibling:s,parentNode:o,querySelector:a,insert:u,createText:c}},f){function p(e,n){let l=n;for(;l;){if(l&&8===l.nodeType){if("teleport start anchor"===l.data)t.targetStart=l;else if("teleport anchor"===l.data){t.targetAnchor=l,e._lpa=t.targetAnchor&&s(t.targetAnchor);break}}l=s(l)}}function d(e,t){t.anchor=f(s(e),t,o(e),n,l,r,i)}let h=t.target=nx(t.props,a),g=ny(t.props);if(h){let a=h._lpa||h.firstChild;16&t.shapeFlag&&(g?(d(e,t),p(h,a),t.targetAnchor||nA(h,t,c,u,o(e)===h?e:null)):(t.anchor=s(e),p(h,a),t.targetAnchor||nA(h,t,c,u),f(a&&s(a),t,h,n,l,r,i))),nT(t,g)}else g&&16&t.shapeFlag&&(d(e,t),t.targetStart=e,t.targetAnchor=s(e));return t.anchor&&s(t.anchor)}};function nE(e,t,n,{o:{insert:l},m:r},i=2){0===i&&l(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:u,props:c}=e,f=2===i;if(f&&l(s,t,n),(!f||ny(c))&&16&a)for(let e=0;e<u.length;e++)r(u[e],t,n,2);f&&l(o,t,n)}let nk=nw;function nT(e,t){let n=e.ctx;if(n&&n.ut){let l,r;for(t?(l=e.el,r=e.anchor):(l=e.targetStart,r=e.targetAnchor);l&&l!==r;)1===l.nodeType&&l.setAttribute("data-v-owner",n.uid),l=l.nextSibling;n.ut()}}function nA(e,t,n,l,r=null){let i=t.targetStart=n(""),s=t.targetAnchor=n("");return i[nm]=s,e&&(l(i,e,r),l(s,e,r)),s}let nR=Symbol("_leaveCb"),nO=Symbol("_enterCb");function nN(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return lg(()=>{e.isMounted=!0}),lm(()=>{e.isUnmounting=!0}),e}let nP=[Function,Array],nM={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nP,onEnter:nP,onAfterEnter:nP,onEnterCancelled:nP,onBeforeLeave:nP,onLeave:nP,onAfterLeave:nP,onLeaveCancelled:nP,onBeforeAppear:nP,onAppear:nP,onAfterAppear:nP,onAppearCancelled:nP},nI=e=>{let t=e.subTree;return t.component?nI(t.component):t};function nL(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==rq){t=n;break}}return t}let nF={name:"BaseTransition",props:nM,setup(e,{slots:t}){let n=i_(),l=nN();return()=>{let r=t.default&&n$(t.default(),!0);if(!r||!r.length)return;let i=nL(r),s=th(e),{mode:o}=s;if(l.isLeaving)return nV(i);let a=nU(i);if(!a)return nV(i);let u=nD(a,s,l,n,e=>u=e);a.type!==rq&&nB(a,u);let c=n.subTree&&nU(n.subTree);if(c&&c.type!==rq&&!r4(c,a)&&nI(n).type!==rq){let e=nD(c,s,l,n);if(nB(c,e),"out-in"===o&&a.type!==rq)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},nV(i);"in-out"===o&&a.type!==rq?e.delayLeave=(e,t,n)=>{nj(l,c)[String(c.key)]=c,e[nR]=()=>{t(),e[nR]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function nj(e,t){let{leavingVNodes:n}=e,l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function nD(e,t,n,l,r){let{appear:i,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:m,onAfterAppear:y,onAppearCancelled:b}=t,S=String(e.key),C=nj(n,e),x=(e,t)=>{e&&tK(e,l,9,t)},w=(e,t)=>{let n=t[1];x(e,t),k(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},E={mode:s,persisted:o,beforeEnter(t){let l=a;if(!n.isMounted)if(!i)return;else l=_||a;t[nR]&&t[nR](!0);let r=C[S];r&&r4(e,r)&&r.el[nR]&&r.el[nR](),x(l,[t])},enter(e){let t=u,l=c,r=f;if(!n.isMounted)if(!i)return;else t=m||u,l=y||c,r=b||f;let s=!1;e[nO]=t=>{s||(s=!0,t?x(r,[e]):x(l,[e]),E.delayedLeave&&E.delayedLeave(),e[nO]=void 0)};let o=e[nO].bind(null,!1);t?w(t,[e,o]):o()},leave(t,l){let r=String(e.key);if(t[nO]&&t[nO](!0),n.isUnmounting)return l();x(p,[t]);let i=!1;t[nR]=n=>{i||(i=!0,l(),n?x(g,[t]):x(h,[t]),t[nR]=void 0,C[r]===e&&delete C[r])};let s=t[nR].bind(null,!1);C[r]=e,d?w(d,[t,s]):s()},clone(e){let i=nD(e,t,n,l,r);return r&&r(i),i}};return E}function nV(e){if(lr(e))return(e=il(e)).children=null,e}function nU(e){if(!lr(e))return e.type.__isTeleport&&e.children?nL(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&T(n.default))return n.default()}}function nB(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nB(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function n$(e,t=!1,n){let l=[],r=0;for(let i=0;i<e.length;i++){let s=e[i],o=null==n?s.key:String(n)+String(null!=s.key?s.key:i);s.type===rK?(128&s.patchFlag&&r++,l=l.concat(n$(s.children,t,o))):(t||s.type!==rq)&&l.push(null!=o?il(s,{key:o}):s)}if(r>1)for(let e=0;e<l.length;e++)l[e].patchFlag=-2;return l}function nH(e,t){return T(e)?C({name:e.name},t,{setup:e}):e}function nW(){let e=i_();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""}function nK(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nz(e){let t=i_(),n=tb(null);return t&&Object.defineProperty(t.refs===g?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n}function nq(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let nG=new WeakMap;function nJ(e,t,n,l,r=!1){if(k(e))return void e.forEach((e,i)=>nJ(e,t&&(k(t)?t[i]:t),n,l,r));if(lt(l)&&!r){512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&nJ(e,t,n,l.component.subTree);return}let i=4&l.shapeFlag?iR(l.component):l.el,s=r?null:i,{i:o,r:a}=e,u=t&&t.r,c=o.refs===g?o.refs={}:o.refs,f=o.setupState,p=th(f),d=f===g?y:e=>!nq(c,e)&&E(p,e),h=(e,t)=>!(t&&nq(c,t));if(null!=u&&u!==a&&(nX(t),A(u)?(c[u]=null,d(u)&&(f[u]=null)):tm(u)&&(h(u,t.k)&&(u.value=null),t.k&&(c[t.k]=null))),T(a))tW(a,o,12,[s,c]);else{let t=A(a),l=tm(a);if(t||l){let o=()=>{if(e.f){let n=t?d(a)?f[a]:c[a]:h()||!e.k?a.value:c[e.k];if(r)k(n)&&x(n,i);else if(k(n))n.includes(i)||n.push(i);else if(t)c[a]=[i],d(a)&&(f[a]=c[a]);else{let t=[i];h(a,e.k)&&(a.value=t),e.k&&(c[e.k]=t)}}else t?(c[a]=s,d(a)&&(f[a]=s)):l&&(h(a,e.k)&&(a.value=s),e.k&&(c[e.k]=s))};if(s){let t=()=>{o(),nG.delete(e)};t.id=-1,nG.set(e,t),rA(t,n)}else nX(e),o()}}}function nX(e){let t=nG.get(e);t&&(t.flags|=8,nG.delete(e))}let nZ=!1,nY=()=>{nZ||(console.error("Hydration completed but contains mismatches."),nZ=!0)},nQ=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},n0=e=>8===e.nodeType;function n1(e){let{mt:t,p:n,o:{patchProp:l,createText:r,nextSibling:i,parentNode:s,remove:o,insert:a,createComment:u}}=e,c=(n,l,o,u,y,b=!1)=>{b=b||!!l.dynamicChildren;let S=n0(n)&&"["===n.data,C=()=>h(n,l,o,u,y,S),{type:x,ref:w,shapeFlag:E,patchFlag:k}=l,T=n.nodeType;l.el=n,-2===k&&(b=!1,l.dynamicChildren=null);let A=null;switch(x){case rz:3!==T?""===l.children?(a(l.el=r(""),s(n),n),A=n):A=C():(n.data!==l.children&&(nY(),n.data=l.children),A=i(n));break;case rq:m(n)?(A=i(n),_(l.el=n.content.firstChild,n,o)):A=8!==T||S?C():i(n);break;case rG:if(S&&(T=(n=i(n)).nodeType),1===T||3===T){A=n;let e=!l.children.length;for(let t=0;t<l.staticCount;t++)e&&(l.children+=1===A.nodeType?A.outerHTML:A.data),t===l.staticCount-1&&(l.anchor=A),A=i(A);return S?i(A):A}C();break;case rK:A=S?d(n,l,o,u,y,b):C();break;default:if(1&E)A=1===T&&l.type.toLowerCase()===n.tagName.toLowerCase()||m(n)?f(n,l,o,u,y,b):C();else if(6&E){l.slotScopeIds=y;let e=s(n);if(A=S?g(n):n0(n)&&"teleport start"===n.data?g(n,n.data,"teleport end"):i(n),t(l,e,null,o,u,nQ(e),b),lt(l)&&!l.type.__asyncResolved){let t;S?(t=ie(rK)).anchor=A?A.previousSibling:e.lastChild:t=3===n.nodeType?ir(""):ie("div"),t.el=n,l.component.subTree=t}}else 64&E?A=8!==T?C():l.type.hydrate(n,l,o,u,y,b,e,p):128&E&&(A=l.type.hydrate(n,l,o,u,nQ(s(n)),y,b,e,c))}return null!=w&&nJ(w,null,u,l),A},f=(e,t,n,r,i,s)=>{s=s||!!t.dynamicChildren;let{type:a,props:u,patchFlag:c,shapeFlag:f,dirs:d,transition:h}=t,g="input"===a||"option"===a;if(g||-1!==c){let a;d&&ni(t,null,n,"created");let y=!1;if(m(e)){y=rI(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let l=e.content.firstChild;if(y){let e=l.getAttribute("class");e&&(l.$cls=e),h.beforeEnter(l)}_(l,e,n),t.el=e=l}if(16&f&&!(u&&(u.innerHTML||u.textContent))){let l=p(e.firstChild,t,e,n,r,i,s);for(;l;){n8(e,1)||nY();let t=l;l=l.nextSibling,o(t)}}else if(8&f){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:l}=e;l!==n&&l!==n.replace(/\r\n|\r/g,` +`)&&(n8(e,0)||nY(),e.textContent=t.children)}if(u){if(g||!s||48&c){let t=e.tagName.includes("-");for(let r in u)(g&&(r.endsWith("value")||"indeterminate"===r)||b(r)&&!I(r)||"."===r[0]||t&&!I(r))&&l(e,r,null,u[r],void 0,n)}else if(u.onClick)l(e,"onClick",null,u.onClick,void 0,n);else if(4&c&&tc(u.style))for(let e in u.style)u.style[e]}(a=u&&u.onVnodeBeforeMount)&&ip(a,n,t),d&&ni(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||d||y)&&rH(()=>{a&&ip(a,n,t),y&&h.enter(e),d&&ni(t,null,n,"mounted")},r)}return e.nextSibling},p=(e,t,l,s,o,u,f)=>{f=f||!!t.dynamicChildren;let p=t.children,d=p.length;for(let t=0;t<d;t++){let h=f?p[t]:p[t]=io(p[t]),g=h.type===rz;e?(g&&!f&&t+1<d&&io(p[t+1]).type===rz&&(a(r(e.data.slice(h.children.length)),l,i(e)),e.data=h.children),e=c(e,h,s,o,u,f)):g&&!h.children?a(h.el=r(""),l):(n8(l,1)||nY(),n(null,h,l,null,s,o,nQ(l),u))}return e},d=(e,t,n,l,r,o)=>{let{slotScopeIds:c}=t;c&&(r=r?r.concat(c):c);let f=s(e),d=p(i(e),t,f,n,l,r,o);return d&&n0(d)&&"]"===d.data?i(t.anchor=d):(nY(),a(t.anchor=u("]"),f,d),d)},h=(e,t,l,r,a,u)=>{if(n8(e.parentElement,1)||nY(),t.el=null,u){let t=g(e);for(;;){let n=i(e);if(n&&n!==t)o(n);else break}}let c=i(e),f=s(e);return o(e),n(null,t,f,c,l,r,nQ(f),a),l&&(l.vnode.el=t.el,rg(l,t.el)),c},g=(e,t="[",n="]")=>{let l=0;for(;e;)if((e=i(e))&&n0(e)&&(e.data===t&&l++,e.data===n))if(0===l)return i(e);else l--;return e},_=(e,t,n)=>{let l=t.parentNode;l&&l.replaceChild(e,t);let r=n;for(;r;)r.vnode.el===t&&(r.vnode.el=r.subTree.el=e),r=r.parent},m=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),t4(),t._vnode=e;return}c(t.firstChild,e,null,null,null),t4(),t._vnode=e},c]}let n2="data-allow-mismatch",n6={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function n8(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(n2);)e=e.parentElement;let n=e&&e.getAttribute(n2);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n6[t])}}let n4=q().requestIdleCallback||(e=>setTimeout(e,1)),n3=q().cancelIdleCallback||(e=>clearTimeout(e)),n5=(e=1e4)=>t=>{let n=n4(t,{timeout:e});return()=>n3(n)},n9=e=>(t,n)=>{let l=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){l.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:l,right:r}=e.getBoundingClientRect(),{innerHeight:i,innerWidth:s}=window;return(t>0&&t<i||l>0&&l<i)&&(n>0&&n<s||r>0&&r<s)}(e))return t(),l.disconnect(),!1;l.observe(e)}}),()=>l.disconnect()},n7=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},le=(e=[])=>(t,n)=>{A(e)&&(e=[e]);let l=!1,r=e=>{l||(l=!0,i(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},i=()=>{n(t=>{for(let n of e)t.removeEventListener(n,r)})};return n(t=>{for(let n of e)t.addEventListener(n,r,{once:!0})}),i},lt=e=>!!e.type.__asyncLoader;function ln(e){let t;T(e)&&(e={loader:e});let{loader:n,loadingComponent:l,errorComponent:r,delay:i=200,hydrate:s,timeout:o,suspensible:a=!0,onError:u}=e,c=null,f=0,p=()=>{let e;return c||(e=c=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),u)return new Promise((t,n)=>{u(e,()=>t((f++,c=null,p())),()=>n(e),f+1)});throw e}).then(n=>e!==c&&c?c:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nH({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,l){let r=!1;(n.bu||(n.bu=[])).push(()=>r=!0);let i=()=>{r||l()},o=s?()=>{let t=s(i,t=>(function(e,t){if(n0(e)&&"["===e.data){let n=1,l=e.nextSibling;for(;l;){if(1===l.nodeType){if(!1===t(l))break}else if(n0(l))if("]"===l.data){if(0==--n)break}else"["===l.data&&n++;l=l.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:i;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iv;if(nK(e),t)return()=>ll(t,e);let n=t=>{c=null,tz(t,e,13,!r)};if(a&&e.suspense||iS)return p().then(t=>()=>ll(t,e)).catch(e=>(n(e),()=>r?ie(r,{error:e}):null));let s=ty(!1),u=ty(),f=ty(!!i);return i&&setTimeout(()=>{f.value=!1},i),null!=o&&setTimeout(()=>{if(!s.value&&!u.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),u.value=e}},o),p().then(()=>{s.value=!0,e.parent&&lr(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),u.value=e}),()=>s.value&&t?ll(t,e):u.value&&r?ie(r,{error:u.value}):l&&!f.value?ll(l,e):void 0}})}function ll(e,t){let{ref:n,props:l,children:r,ce:i}=t.vnode,s=ie(e,l,r);return s.ref=n,s.ce=i,delete t.vnode.ce,s}let lr=e=>e.type.__isKeepAlive,li={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=i_(),l=n.ctx;if(!l.renderer)return()=>{let e=t.default&&t.default();return e&&1===e.length?e[0]:e};let r=new Map,i=new Set,s=null,o=n.suspense,{renderer:{p:a,m:u,um:c,o:{createElement:f}}}=l,p=f("div");function d(e){lc(e),c(e,n,o,!0)}function h(e){r.forEach((t,n)=>{let l=iO(lt(t)?t.type.__asyncResolved||{}:t.type);l&&!e(l)&&g(n)})}function g(e){let t=r.get(e);!t||s&&r4(t,s)?s&&lc(s):d(t),r.delete(e),i.delete(e)}l.activate=(e,t,n,l,r)=>{let i=e.component;u(e,t,n,0,o),a(i.vnode,e,t,n,i,o,l,e.slotScopeIds,r),rA(()=>{i.isDeactivated=!1,i.a&&H(i.a);let t=e.props&&e.props.onVnodeMounted;t&&ip(t,i.parent,e)},o)},l.deactivate=e=>{let t=e.component;rF(t.m),rF(t.a),u(e,p,null,1,o),rA(()=>{t.da&&H(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&ip(n,t.parent,e),t.isDeactivated=!0},o)},nh(()=>[e.include,e.exclude],([e,t])=>{e&&h(t=>ls(e,t)),t&&h(e=>!ls(t,e))},{flush:"post",deep:!0});let _=null,m=()=>{null!=_&&(rj(n.subTree.type)?rA(()=>{r.set(_,lf(n.subTree))},n.subTree.suspense):r.set(_,lf(n.subTree)))};return lg(m),l_(m),lm(()=>{r.forEach(e=>{let{subTree:t,suspense:l}=n,r=lf(t);if(e.type===r.type&&e.key===r.key){lc(r);let e=r.component.da;e&&rA(e,l);return}d(e)})}),()=>{if(_=null,!t.default)return s=null;let n=t.default(),l=n[0];if(n.length>1)return s=null,n;if(!r8(l)||!(4&l.shapeFlag)&&!(128&l.shapeFlag))return s=null,l;let o=lf(l);if(o.type===rq)return s=null,o;let a=o.type,u=iO(lt(o)?o.type.__asyncResolved||{}:a),{include:c,exclude:f,max:p}=e;if(c&&(!u||!ls(c,u))||f&&u&&ls(f,u))return o.shapeFlag&=-257,s=o,l;let d=null==o.key?a:o.key,h=r.get(d);return o.el&&(o=il(o),128&l.shapeFlag&&(l.ssContent=o)),_=d,h?(o.el=h.el,o.component=h.component,o.transition&&nB(o,o.transition),o.shapeFlag|=512,i.delete(d),i.add(d)):(i.add(d),p&&i.size>parseInt(p,10)&&g(i.values().next().value)),o.shapeFlag|=256,s=o,rj(l.type)?l:o}}};function ls(e,t){let n;if(k(e))return e.some(e=>ls(e,t));if(A(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,P.call(n))&&(e.lastIndex=0,e.test(t))}function lo(e,t){lu(e,"a",t)}function la(e,t){lu(e,"da",t)}function lu(e,t,n=iv){let l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(lp(t,l,n),n){let e=n.parent;for(;e&&e.parent;)lr(e.parent.vnode)&&function(e,t,n,l){let r=lp(t,e,l,!0);ly(()=>{x(l[t],r)},n)}(l,t,n,e),e=e.parent}}function lc(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function lf(e){return 128&e.shapeFlag?e.ssContent:e}function lp(e,t,n=iv,l=!1){if(n){let r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{ek();let r=im(n),i=tK(t,n,e,l);return r(),eT(),i});return l?r.unshift(i):r.push(i),i}}let ld=e=>(t,n=iv)=>{iS&&"sp"!==e||lp(e,(...e)=>t(...e),n)},lh=ld("bm"),lg=ld("m"),lv=ld("bu"),l_=ld("u"),lm=ld("bum"),ly=ld("um"),lb=ld("sp"),lS=ld("rtg"),lC=ld("rtc");function lx(e,t=iv){lp("ec",e,t)}let lw="components";function lE(e,t){return lR(lw,e,!0,t)||e}let lk=Symbol.for("v-ndc");function lT(e){return A(e)?lR(lw,e,!1)||e:e||lk}function lA(e){return lR("directives",e)}function lR(e,t,n=!0,l=!1){let r=t5||iv;if(r){let n=r.type;if(e===lw){let e=iO(n,!1);if(e&&(e===t||e===j(t)||e===U(j(t))))return n}let i=lO(r[e]||n[e],t)||lO(r.appContext[e],t);return!i&&l?n:i}}function lO(e,t){return e&&(e[t]||e[j(t)]||e[U(j(t))])}function lN(e,t,n,l){let r,i=n&&n[l],s=k(e);if(s||A(e)){let n=s&&tc(e),l=!1,o=!1;n&&(l=!tp(e),o=tf(e),e=eV(e)),r=Array(e.length);for(let n=0,s=e.length;n<s;n++)r[n]=t(l?o?t_(tv(e[n])):tv(e[n]):e[n],n,void 0,i&&i[n])}else if("number"==typeof e){r=Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,i&&i[n])}else if(O(e))if(e[Symbol.iterator])r=Array.from(e,(e,n)=>t(e,n,void 0,i&&i[n]));else{let n=Object.keys(e);r=Array(n.length);for(let l=0,s=n.length;l<s;l++){let s=n[l];r[l]=t(e[s],s,l,i&&i[l])}}else r=[];return n&&(n[l]=r),r}function lP(e,t){for(let n=0;n<t.length;n++){let l=t[n];if(k(l))for(let t=0;t<l.length;t++)e[l[t].name]=l[t].fn;else l&&(e[l.name]=l.key?(...e)=>{let t=l.fn(...e);return t&&(t.key=l.key),t}:l.fn)}return e}function lM(e,t,n={},l,r){if(t5.ce||t5.parent&<(t5.parent)&&t5.parent.ce){let e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),rZ(),r6(rK,null,[ie("slot",n,l&&l())],e?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),rZ();let s=i&&lI(i(n)),o=n.key||s&&s.key,a=r6(rK,{key:(o&&!R(o)?o:`_${t}`)+(!s&&l?"_fb":"")},s||(l?l():[]),s&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),i&&i._c&&(i._d=!0),a}function lI(e){return e.some(e=>!r8(e)||e.type!==rq&&(e.type!==rK||!!lI(e.children)))?e:null}function lL(e,t){let n={};for(let l in e)n[t&&/[A-Z]/.test(l)?`on:${l}`:B(l)]=e[l];return n}let lF=e=>e?ib(e)?iR(e):lF(e.parent):null,lj=C(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>lF(e.parent),$root:e=>lF(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>l8(e),$forceUpdate:e=>e.f||(e.f=()=>{t1(e.update)}),$nextTick:e=>e.n||(e.n=t0.bind(e.proxy)),$watch:e=>nv.bind(e)}),lD=(e,t)=>e!==g&&!e.__isScriptSetup&&E(e,t),lV={get({_:e},t){let n,l;if("__v_skip"===t)return!0;let{ctx:r,setupState:i,data:s,props:o,accessCache:a,type:u,appContext:c}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return i[t];case 2:return s[t];case 4:return r[t];case 3:return o[t]}else{if(lD(i,t))return a[t]=1,i[t];if(s!==g&&E(s,t))return a[t]=2,s[t];if(E(o,t))return a[t]=3,o[t];if(r!==g&&E(r,t))return a[t]=4,r[t];l2&&(a[t]=0)}}let f=lj[t];return f?("$attrs"===t&&eF(e.attrs,"get",""),f(e)):(n=u.__cssModules)&&(n=n[t])?n:r!==g&&E(r,t)?(a[t]=4,r[t]):E(l=c.config.globalProperties,t)?l[t]:void 0},set({_:e},t,n){let{data:l,setupState:r,ctx:i}=e;return lD(r,t)?(r[t]=n,!0):l!==g&&E(l,t)?(l[t]=n,!0):!E(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:i,type:s}},o){let a;return!!(n[o]||e!==g&&"$"!==o[0]&&E(e,o)||lD(t,o)||E(i,o)||E(l,o)||E(lj,o)||E(r.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:E(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},lU=C({},lV,{get(e,t){if(t!==Symbol.unscopables)return lV.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!G(t)});function lB(){return null}function l$(){return null}function lH(e){}function lW(e){}function lK(){return null}function lz(){}function lq(e,t){return null}function lG(){return lX().slots}function lJ(){return lX().attrs}function lX(e){let t=i_();return t.setupContext||(t.setupContext=iA(t))}function lZ(e){return k(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function lY(e,t){let n=lZ(e);for(let e in t){if(e.startsWith("__skip"))continue;let l=n[e];l?k(l)||T(l)?l=n[e]={type:l,default:t[e]}:l.default=t[e]:null===l&&(l=n[e]={default:t[e]}),l&&t[`__skip_${e}`]&&(l.skipFactory=!0)}return n}function lQ(e,t){return e&&t?k(e)&&k(t)?e.concat(t):C({},lZ(e),lZ(t)):e||t}function l0(e,t){let n={};for(let l in e)t.includes(l)||Object.defineProperty(n,l,{enumerable:!0,get:()=>e[l]});return n}function l1(e){let t=i_(),n=e();return iy(),N(n)&&(n=n.catch(e=>{throw im(t),e})),[n,()=>im(t)]}let l2=!0;function l6(e,t,n){tK(k(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function l8(e){let t,n=e.type,{mixins:l,extends:r}=n,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:i.length||l||r?(t={},i.length&&i.forEach(e=>l4(t,e,o,!0)),l4(t,n,o)):t=n,O(n)&&s.set(n,t),t}function l4(e,t,n,l=!1){let{mixins:r,extends:i}=t;for(let s in i&&l4(e,i,n,!0),r&&r.forEach(t=>l4(e,t,n,!0)),t)if(l&&"expose"===s);else{let l=l3[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}let l3={data:l5,props:rt,emits:rt,methods:re,computed:re,beforeCreate:l7,created:l7,beforeMount:l7,mounted:l7,beforeUpdate:l7,updated:l7,beforeDestroy:l7,beforeUnmount:l7,destroyed:l7,unmounted:l7,activated:l7,deactivated:l7,errorCaptured:l7,serverPrefetch:l7,components:re,directives:re,watch:function(e,t){if(!e)return t;if(!t)return e;let n=C(Object.create(null),e);for(let l in t)n[l]=l7(e[l],t[l]);return n},provide:l5,inject:function(e,t){return re(l9(e),l9(t))}};function l5(e,t){return t?e?function(){return C(T(e)?e.call(this,this):e,T(t)?t.call(this,this):t)}:t:e}function l9(e){if(k(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function l7(e,t){return e?[...new Set([].concat(e,t))]:t}function re(e,t){return e?C(Object.create(null),e,t):t}function rt(e,t){return e?k(e)&&k(t)?[...new Set([...e,...t])]:C(Object.create(null),lZ(e),lZ(null!=t?t:{})):t}function rn(){return{app:null,config:{isNativeTag:y,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let rl=0,rr=null;function ri(e,t,n=g){let l=i_(),r=j(t),i=V(t),s=rs(e,r),o=tR((s,o)=>{let a,u,c=g;return nd(()=>{let t=e[r];$(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!$(s,a)&&!(c!==g&&$(e,c)))return;let f=l.vnode.props;f&&(t in f||r in f||i in f)&&(`onUpdate:${t}`in f||`onUpdate:${r}`in f||`onUpdate:${i}`in f)||(a=e,o()),l.emit(`update:${t}`,s),$(e,s)&&$(e,c)&&!$(s,u)&&o(),c=e,u=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||g:o,done:!1}:{done:!0}}},o}let rs=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${V(t)}Modifiers`];function ro(e,t,...n){let l;if(e.isUnmounted)return;let r=e.vnode.props||g,i=n,s=t.startsWith("update:"),o=s&&rs(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>A(e)?e.trim():e)),o.number&&(i=n.map(K)));let a=r[l=B(t)]||r[l=B(j(t))];!a&&s&&(a=r[l=B(V(t))]),a&&tK(a,e,6,i);let u=r[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,tK(u,e,6,i)}}let ra=new WeakMap;function ru(e,t){return!!e&&!!b(t)&&(E(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||E(e,V(t))||E(e,t))}function rc(e){let t,n,{type:l,vnode:r,proxy:i,withProxy:s,propsOptions:[o],slots:a,attrs:u,emit:c,render:f,renderCache:p,props:d,data:h,setupState:g,ctx:_,inheritAttrs:m}=e,y=t7(e);try{if(4&r.shapeFlag){let e=s||i;t=io(f.call(e,e,p,d,g,h,_)),n=u}else t=io(l.length>1?l(d,{attrs:u,slots:a,emit:c}):l(d,null)),n=l.props?u:rf(u)}catch(n){rJ.length=0,tz(n,e,1),t=ie(rq)}let b=t;if(n&&!1!==m){let e=Object.keys(n),{shapeFlag:t}=b;e.length&&7&t&&(o&&e.some(S)&&(n=rp(n,o)),b=il(b,n,!1,!0))}return r.dirs&&((b=il(b,null,!1,!0)).dirs=b.dirs?b.dirs.concat(r.dirs):r.dirs),r.transition&&nB(b,r.transition),t=b,t7(y),t}let rf=e=>{let t;for(let n in e)("class"===n||"style"===n||b(n))&&((t||(t={}))[n]=e[n]);return t},rp=(e,t)=>{let n={};for(let l in e)S(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function rd(e,t,n){let l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let r=0;r<l.length;r++){let i=l[r];if(rh(t,e,i)&&!ru(n,i))return!0}return!1}function rh(e,t,n){let l=e[n],r=t[n];return"style"===n&&O(l)&&O(r)?!en(l,r):l!==r}function rg({vnode:e,parent:t},n){for(;t;){let l=t.subTree;if(l.suspense&&l.suspense.activeBranch===e&&(l.el=e.el),l===e)(e=t.vnode).el=n,t=t.parent;else break}}let rv={},r_=e=>Object.getPrototypeOf(e)===rv;function rm(e,t,n,l){let r,[i,s]=e.propsOptions,o=!1;if(t)for(let a in t){let u;if(I(a))continue;let c=t[a];i&&E(i,u=j(a))?s&&s.includes(u)?(r||(r={}))[u]=c:n[u]=c:ru(e.emitsOptions,a)||a in l&&c===l[a]||(l[a]=c,o=!0)}if(s){let t=th(n),l=r||g;for(let r=0;r<s.length;r++){let o=s[r];n[o]=ry(i,t,o,l[o],e,!E(l,o))}}return o}function ry(e,t,n,l,r,i){let s=e[n];if(null!=s){let e=E(s,"default");if(e&&void 0===l){let e=s.default;if(s.type!==Function&&!s.skipFactory&&T(e)){let{propsDefaults:i}=r;if(n in i)l=i[n];else{let s=im(r);l=i[n]=e.call(null,t),s()}}else l=e;r.ce&&r.ce._setProp(n,l)}s[0]&&(i&&!e?l=!1:s[1]&&(""===l||l===V(n))&&(l=!0))}return l}let rb=new WeakMap;function rS(e){return!("$"===e[0]||I(e))}let rC=e=>"_"===e||"_ctx"===e||"$stable"===e,rx=e=>k(e)?e.map(io):[io(e)],rw=(e,t,n)=>{if(t._n)return t;let l=nl((...e)=>rx(t(...e)),n);return l._c=!1,l},rE=(e,t,n)=>{let l=e._ctx;for(let n in e){if(rC(n))continue;let r=e[n];if(T(r))t[n]=rw(n,r,l);else if(null!=r){let e=rx(r);t[n]=()=>e}}},rk=(e,t)=>{let n=rx(t);e.slots.default=()=>n},rT=(e,t,n)=>{for(let l in t)(n||!rC(l))&&(e[l]=t[l])},rA=rH;function rR(e){return rN(e)}function rO(e){return rN(e,n1)}function rN(e,t){var n;let l,r;q().__VUE__=!0;let{insert:i,remove:s,patchProp:o,createElement:a,createText:u,createComment:c,setText:f,setElementText:p,parentNode:d,nextSibling:h,setScopeId:y=m,insertStaticContent:b}=e,S=(e,t,n,l=null,r=null,i=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!r4(e,t)&&(l=en(e),Z(e,r,i,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:u,ref:c,shapeFlag:f}=t;switch(u){case rz:x(e,t,n,l);break;case rq:w(e,t,n,l);break;case rG:null==e&&k(t,n,l,s);break;case rK:D(e,t,n,l,r,i,s,o,a);break;default:1&f?A(e,t,n,l,r,i,s,o,a):6&f?U(e,t,n,l,r,i,s,o,a):64&f?u.process(e,t,n,l,r,i,s,o,a,ei):128&f&&u.process(e,t,n,l,r,i,s,o,a,ei)}null!=c&&r?nJ(c,e&&e.ref,i,t||e,!t):null==c&&e&&null!=e.ref&&nJ(e.ref,null,i,e,!0)},x=(e,t,n,l)=>{if(null==e)i(t.el=u(t.children),n,l);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},w=(e,t,n,l)=>{null==e?i(t.el=c(t.children||""),n,l):t.el=e.el},k=(e,t,n,l)=>{[e.el,e.anchor]=b(e.children,t,n,l,e.el,e.anchor)},A=(e,t,n,l,r,i,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,l,r,i,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,r,i,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,l,r,s,u,c)=>{let f,d,{props:h,shapeFlag:g,transition:_,dirs:m}=e;if(f=e.el=a(e.type,s,h&&h.is,h),8&g?p(f,e.children):16&g&&P(e.children,f,null,l,r,rP(e,s),u,c),m&&ni(e,null,l,"created"),N(f,e,e.scopeId,u,l),h){for(let e in h)"value"===e||I(e)||o(f,e,null,h[e],s,l);"value"in h&&o(f,"value",null,h.value,s),(d=h.onVnodeBeforeMount)&&ip(d,l,e)}m&&ni(e,null,l,"beforeMount");let y=rI(r,_);y&&_.beforeEnter(f),i(f,t,n),((d=h&&h.onVnodeMounted)||y||m)&&rA(()=>{d&&ip(d,l,e),y&&_.enter(f),m&&ni(e,null,l,"mounted")},r)},N=(e,t,n,l,r)=>{if(n&&y(e,n),l)for(let t=0;t<l.length;t++)y(e,l[t]);if(r){let n=r.subTree;if(t===n||rj(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=r.vnode;N(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},P=(e,t,n,l,r,i,s,o,a=0)=>{for(let u=a;u<e.length;u++)S(null,e[u]=o?ia(e[u]):io(e[u]),t,n,l,r,i,s,o)},M=(e,t,n,l,r,i,s)=>{let a,u=t.el=e.el,{patchFlag:c,dynamicChildren:f,dirs:d}=t;c|=16&e.patchFlag;let h=e.props||g,_=t.props||g;if(n&&rM(n,!1),(a=_.onVnodeBeforeUpdate)&&ip(a,n,t,e),d&&ni(t,e,n,"beforeUpdate"),n&&rM(n,!0),(h.innerHTML&&null==_.innerHTML||h.textContent&&null==_.textContent)&&p(u,""),f?L(e.dynamicChildren,f,u,n,l,rP(t,r),i):s||z(e,t,u,null,n,l,rP(t,r),i,!1),c>0){if(16&c)F(u,h,_,n,r);else if(2&c&&h.class!==_.class&&o(u,"class",null,_.class,r),4&c&&o(u,"style",h.style,_.style,r),8&c){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let l=e[t],i=h[l],s=_[l];(s!==i||"value"===l)&&o(u,l,i,s,r,n)}}1&c&&e.children!==t.children&&p(u,t.children)}else s||null!=f||F(u,h,_,n,r);((a=_.onVnodeUpdated)||d)&&rA(()=>{a&&ip(a,n,t,e),d&&ni(t,e,n,"updated")},l)},L=(e,t,n,l,r,i,s)=>{for(let o=0;o<t.length;o++){let a=e[o],u=t[o],c=a.el&&(a.type===rK||!r4(a,u)||198&a.shapeFlag)?d(a.el):n;S(a,u,c,null,l,r,i,s,!0)}},F=(e,t,n,l,r)=>{if(t!==n){if(t!==g)for(let i in t)I(i)||i in n||o(e,i,t[i],null,r,l);for(let i in n){if(I(i))continue;let s=n[i],a=t[i];s!==a&&"value"!==i&&o(e,i,a,s,r,l)}"value"in n&&o(e,"value",t.value,n.value,r)}},D=(e,t,n,l,r,s,o,a,c)=>{let f=t.el=e?e.el:u(""),p=t.anchor=e?e.anchor:u(""),{patchFlag:d,dynamicChildren:h,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(i(f,n,l),i(p,n,l),P(t.children||[],n,p,r,s,o,a,c)):d>0&&64&d&&h&&e.dynamicChildren&&e.dynamicChildren.length===h.length?(L(e.dynamicChildren,h,n,r,s,o,a),(null!=t.key||r&&t===r.subTree)&&rL(e,t,!0)):z(e,t,n,p,r,s,o,a,c)},U=(e,t,n,l,r,i,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?r.ctx.activate(t,n,l,s,a):B(t,n,l,r,i,s,a):$(e,t,a)},B=(e,t,n,l,r,i,s)=>{let o=e.component=ig(e,l,r);if(lr(e)&&(o.ctx.renderer=ei),iC(o,!1,s),o.asyncDep){if(r&&r.registerDep(o,W,s),!e.el){let l=o.subTree=ie(rq);w(null,l,t,n),e.placeholder=l.el}}else W(o,e,t,n,r,i,s)},$=(e,t,n)=>{let l=t.component=e.component;if(function(e,t,n){let{props:l,children:r,component:i}=e,{props:s,children:o,patchFlag:a}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!r||!!o)&&(!o||!o.$stable)||l!==s&&(l?!s||rd(l,s,u):!!s);if(1024&a)return!0;if(16&a)return l?rd(l,s,u):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(rh(s,l,n)&&!ru(u,n))return!0}}return!1}(e,t,n))if(l.asyncDep&&!l.asyncResolved)return void K(l,t,n);else l.next=t,l.update();else t.el=e.el,l.vnode=t},W=(e,t,n,l,i,s,o)=>{e.scope.on();let a=e.effect=new ed(()=>{if(e.isMounted){let t,{next:n,bu:l,u:r,parent:a,vnode:c}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=c.el,K(e,n,o)),t.asyncDep.then(()=>{rA(()=>{e.isUnmounted||u()},i)});return}}let f=n;rM(e,!1),n?(n.el=c.el,K(e,n,o)):n=c,l&&H(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ip(t,a,n,c),rM(e,!0);let p=rc(e),h=e.subTree;e.subTree=p,S(h,p,d(h.el),en(h),e,i,s),n.el=p.el,null===f&&rg(e,p.el),r&&rA(r,i),(t=n.props&&n.props.onVnodeUpdated)&&rA(()=>ip(t,a,n,c),i)}else{let o,{el:a,props:u}=t,{bm:c,m:f,parent:p,root:d,type:h}=e,g=lt(t);if(rM(e,!1),c&&H(c),!g&&(o=u&&u.onVnodeBeforeMount)&&ip(o,p,t),rM(e,!0),a&&r){let t=()=>{e.subTree=rc(e),r(a,e.subTree,e,i,null)};g&&h.__asyncHydrate?h.__asyncHydrate(a,e,t):t()}else{d.ce&&d.ce._hasShadowRoot()&&d.ce._injectChildStyle(h);let r=e.subTree=rc(e);S(null,r,n,l,e,i,s),t.el=r.el}if(f&&rA(f,i),!g&&(o=u&&u.onVnodeMounted)){let e=t;rA(()=>ip(o,p,e),i)}(256&t.shapeFlag||p&<(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&rA(e.a,i),e.isMounted=!0,t=n=l=null}});e.scope.off();let u=e.update=a.run.bind(a),c=e.job=a.runIfDirty.bind(a);c.i=e,c.id=e.uid,a.scheduler=()=>t1(c),rM(e,!0),u()},K=(e,t,n)=>{t.component=e;let l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){let{props:r,attrs:i,vnode:{patchFlag:s}}=e,o=th(r),[a]=e.propsOptions,u=!1;if((l||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){let s=n[l];if(ru(e.emitsOptions,s))continue;let c=t[s];if(a)if(E(i,s))c!==i[s]&&(i[s]=c,u=!0);else{let t=j(s);r[t]=ry(a,o,t,c,e,!1)}else c!==i[s]&&(i[s]=c,u=!0)}}}else{let l;for(let s in rm(e,t,r,i)&&(u=!0),o)t&&(E(t,s)||(l=V(s))!==s&&E(t,l))||(a?n&&(void 0!==n[s]||void 0!==n[l])&&(r[s]=ry(a,o,s,void 0,e,!0)):delete r[s]);if(i!==o)for(let e in i)t&&E(t,e)||(delete i[e],u=!0)}u&&ej(e.attrs,"set","")}(e,t.props,l,n),((e,t,n)=>{let{vnode:l,slots:r}=e,i=!0,s=g;if(32&l.shapeFlag){let e=t._;e?n&&1===e?i=!1:rT(r,t,n):(i=!t.$stable,rE(t,r)),s=t}else t&&(rk(e,t),s={default:1});if(i)for(let e in r)rC(e)||null!=s[e]||delete r[e]})(e,t.children,n),ek(),t8(e),eT()},z=(e,t,n,l,r,i,s,o,a=!1)=>{let u=e&&e.children,c=e?e.shapeFlag:0,f=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void J(u,f,n,l,r,i,s,o,a);else if(256&d)return void G(u,f,n,l,r,i,s,o,a)}8&h?(16&c&&et(u,r,i),f!==u&&p(n,f)):16&c?16&h?J(u,f,n,l,r,i,s,o,a):et(u,r,i,!0):(8&c&&p(n,""),16&h&&P(f,n,l,r,i,s,o,a))},G=(e,t,n,l,r,i,s,o,a)=>{let u;e=e||_,t=t||_;let c=e.length,f=t.length,p=Math.min(c,f);for(u=0;u<p;u++){let l=t[u]=a?ia(t[u]):io(t[u]);S(e[u],l,n,null,r,i,s,o,a)}c>f?et(e,r,i,!0,!1,p):P(t,n,l,r,i,s,o,a,p)},J=(e,t,n,l,r,i,s,o,a)=>{let u=0,c=t.length,f=e.length-1,p=c-1;for(;u<=f&&u<=p;){let l=e[u],c=t[u]=a?ia(t[u]):io(t[u]);if(r4(l,c))S(l,c,n,null,r,i,s,o,a);else break;u++}for(;u<=f&&u<=p;){let l=e[f],u=t[p]=a?ia(t[p]):io(t[p]);if(r4(l,u))S(l,u,n,null,r,i,s,o,a);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,f=e<c?t[e].el:l;for(;u<=p;)S(null,t[u]=a?ia(t[u]):io(t[u]),n,f,r,i,s,o,a),u++}}else if(u>p)for(;u<=f;)Z(e[u],r,i,!0),u++;else{let d,h=u,g=u,m=new Map;for(u=g;u<=p;u++){let e=t[u]=a?ia(t[u]):io(t[u]);null!=e.key&&m.set(e.key,u)}let y=0,b=p-g+1,C=!1,x=0,w=Array(b);for(u=0;u<b;u++)w[u]=0;for(u=h;u<=f;u++){let l,c=e[u];if(y>=b){Z(c,r,i,!0);continue}if(null!=c.key)l=m.get(c.key);else for(d=g;d<=p;d++)if(0===w[d-g]&&r4(c,t[d])){l=d;break}void 0===l?Z(c,r,i,!0):(w[l-g]=u+1,l>=x?x=l:C=!0,S(c,t[l],n,null,r,i,s,o,a),y++)}let E=C?function(e){let t,n,l,r,i,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(l=0,r=o.length-1;l<r;)e[o[i=l+r>>1]]<a?l=i+1:r=i;a<e[o[l]]&&(l>0&&(s[t]=o[l-1]),o[l]=t)}}for(l=o.length,r=o[l-1];l-- >0;)o[l]=r,r=s[r];return o}(w):_;for(d=E.length-1,u=b-1;u>=0;u--){let e=g+u,f=t[e],p=t[e+1],h=e+1<c?p.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(p):l;0===w[u]?S(null,f,n,h,r,i,s,o,a):C&&(d<0||u!==E[d]?X(f,n,h,2):d--)}}},X=(e,t,n,l,r=null)=>{let{el:o,type:a,transition:u,children:c,shapeFlag:f}=e;if(6&f)return void X(e.component.subTree,t,n,l);if(128&f)return void e.suspense.move(t,n,l);if(64&f)return void a.move(e,t,n,ei);if(a===rK){i(o,t,n);for(let e=0;e<c.length;e++)X(c[e],t,n,l);i(e.anchor,t,n);return}if(a===rG)return void(({el:e,anchor:t},n,l)=>{let r;for(;e&&e!==t;)r=h(e),i(e,n,l),e=r;i(t,n,l)})(e,t,n);if(2!==l&&1&f&&u)if(0===l)u.beforeEnter(o),i(o,t,n),rA(()=>u.enter(o),r);else{let{leave:l,delayLeave:r,afterLeave:a}=u,c=()=>{e.ctx.isUnmounted?s(o):i(o,t,n)},f=()=>{o._isLeaving&&o[nR](!0),l(o,()=>{c(),a&&a()})};r?r(o,c,f):f()}else i(o,t,n)},Z=(e,t,n,l=!1,r=!1)=>{let i,{type:s,props:o,ref:a,children:u,dynamicChildren:c,shapeFlag:f,patchFlag:p,dirs:d,cacheIndex:h}=e;if(-2===p&&(r=!1),null!=a&&(ek(),nJ(a,null,n,e,!0),eT()),null!=h&&(t.renderCache[h]=void 0),256&f)return void t.ctx.deactivate(e);let g=1&f&&d,_=!lt(e);if(_&&(i=o&&o.onVnodeBeforeUnmount)&&ip(i,t,e),6&f)ee(e.component,n,l);else{if(128&f)return void e.suspense.unmount(n,l);g&&ni(e,null,t,"beforeUnmount"),64&f?e.type.remove(e,t,n,ei,l):c&&!c.hasOnce&&(s!==rK||p>0&&64&p)?et(c,t,n,!1,!0):(s===rK&&384&p||!r&&16&f)&&et(u,t,n),l&&Y(e)}(_&&(i=o&&o.onVnodeUnmounted)||g)&&rA(()=>{i&&ip(i,t,e),g&&ni(e,null,t,"unmounted")},n)},Y=e=>{let{type:t,el:n,anchor:l,transition:r}=e;if(t===rK)return void Q(n,l);if(t===rG)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)})(e);let i=()=>{s(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){let{leave:t,delayLeave:l}=r,s=()=>t(n,i);l?l(e.el,i,s):s()}else i()},Q=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},ee=(e,t,n)=>{let{bum:l,scope:r,job:i,subTree:s,um:o,m:a,a:u}=e;rF(a),rF(u),l&&H(l),r.stop(),i&&(i.flags|=8,Z(s,e,t,n)),o&&rA(o,t),rA(()=>{e.isUnmounted=!0},t)},et=(e,t,n,l=!1,r=!1,i=0)=>{for(let s=i;s<e.length;s++)Z(e[s],t,n,l,r)},en=e=>{if(6&e.shapeFlag)return en(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[nm];return n?h(n):t},el=!1,er=(e,t,n)=>{let l;null==e?t._vnode&&(Z(t._vnode,null,null,!0),l=t._vnode.component):S(t._vnode||null,e,t,null,null,null,n),t._vnode=e,el||(el=!0,t8(l),t4(),el=!1)},ei={p:S,um:Z,m:X,r:Y,mt:B,mc:P,pc:z,pbc:L,n:en,o:e};return t&&([l,r]=t(ei)),{render:er,hydrate:l,createApp:(n=l,function(e,t=null){T(e)||(e=C({},e)),null==t||O(t)||(t=null);let l=rn(),r=new WeakSet,i=[],s=!1,o=l.app={_uid:rl++,_component:e,_props:t,_container:null,_context:l,_instance:null,version:iF,get config(){return l.config},set config(v){},use:(e,...t)=>(r.has(e)||(e&&T(e.install)?(r.add(e),e.install(o,...t)):T(e)&&(r.add(e),e(o,...t))),o),mixin:e=>(l.mixins.includes(e)||l.mixins.push(e),o),component:(e,t)=>t?(l.components[e]=t,o):l.components[e],directive:(e,t)=>t?(l.directives[e]=t,o):l.directives[e],mount(r,i,a){if(!s){let u=o._ceVNode||ie(e,t);return u.appContext=l,!0===a?a="svg":!1===a&&(a=void 0),i&&n?n(u,r):er(u,r,a),s=!0,o._container=r,r.__vue_app__=o,iR(u.component)}},onUnmount(e){i.push(e)},unmount(){s&&(tK(i,o._instance,16),er(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(l.provides[e]=t,o),runWithContext(e){let t=rr;rr=o;try{return e()}finally{rr=t}}};return o})}}function rP({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rM({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rI(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rL(e,t,n=!1){let l=e.children,r=t.children;if(k(l)&&k(r))for(let e=0;e<l.length;e++){let t=l[e],i=r[e];1&i.shapeFlag&&!i.dynamicChildren&&((i.patchFlag<=0||32===i.patchFlag)&&((i=r[e]=ia(r[e])).el=t.el),n||-2===i.patchFlag||rL(t,i)),i.type===rz&&(-1===i.patchFlag&&(i=r[e]=ia(i)),i.el=t.el),i.type!==rq||i.el||(i.el=t.el)}}function rF(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let rj=e=>e.__isSuspense,rD=0,rV={name:"Suspense",__isSuspense:!0,process(e,t,n,l,r,i,s,o,a,u){if(null==e)!function(e,t,n,l,r,i,s,o,a){let{p:u,o:{createElement:c}}=a,f=c("div"),p=e.suspense=rB(e,r,l,t,f,n,i,s,o,a);u(null,p.pendingBranch=e.ssContent,f,null,l,p,i,s),p.deps>0?(rU(e,"onPending"),rU(e,"onFallback"),u(null,e.ssFallback,t,n,l,null,i,s),rW(p,e.ssFallback)):p.resolve(!1,!0)}(t,n,l,r,i,s,o,a,u);else{if(i&&i.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,l,r,i,s,o,{p:a,um:u,o:{createElement:c}}){let f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;let p=t.ssContent,d=t.ssFallback,{activeBranch:h,pendingBranch:g,isInFallback:_,isHydrating:m}=f;if(g)f.pendingBranch=p,r4(g,p)?(a(g,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():_&&!m&&(a(h,d,n,l,r,null,i,s,o),rW(f,d))):(f.pendingId=rD++,m?(f.isHydrating=!1,f.activeBranch=g):u(g,r,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),_?(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():(a(h,d,n,l,r,null,i,s,o),rW(f,d))):h&&r4(h,p)?(a(h,p,n,l,r,f,i,s,o),f.resolve(!0)):(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0&&f.resolve()));else if(h&&r4(h,p))a(h,p,n,l,r,f,i,s,o),rW(f,p);else if(rU(t,"onPending"),f.pendingBranch=p,512&p.shapeFlag?f.pendingId=p.component.suspenseId:f.pendingId=rD++,a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0)f.resolve();else{let{timeout:e,pendingId:t}=f;e>0?setTimeout(()=>{f.pendingId===t&&f.fallback(d)},e):0===e&&f.fallback(d)}}(e,t,n,l,r,s,o,a,u)}},hydrate:function(e,t,n,l,r,i,s,o,a){let u=t.suspense=rB(t,l,n,e.parentNode,document.createElement("div"),null,r,i,s,o,!0),c=a(e,u.pendingBranch=t.ssContent,n,u,i,s);return 0===u.deps&&u.resolve(!1,!0),c},normalize:function(e){let{shapeFlag:t,children:n}=e,l=32&t;e.ssContent=r$(l?n.default:n),e.ssFallback=l?r$(n.fallback):ie(rq)}};function rU(e,t){let n=e.props&&e.props[t];T(n)&&n()}function rB(e,t,n,l,r,i,s,o,a,u,c=!1){var f;let p,d,{p:h,m:g,um:_,n:m,o:{parentNode:y,remove:b}}=u,S=null!=(p=(f=e).props&&f.props.suspensible)&&!1!==p;S&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let C=e.props?z(e.props.timeout):void 0,x=i,w={vnode:e,parent:t,parentComponent:n,namespace:s,container:l,hiddenContainer:r,deps:0,pendingId:rD++,timeout:"number"==typeof C?C:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:l,activeBranch:r,pendingBranch:s,pendingId:o,effects:a,parentComponent:u,container:c,isInFallback:f}=w,p=!1;w.isHydrating?w.isHydrating=!1:!e&&((p=r&&s.transition&&"out-in"===s.transition.mode)&&(r.transition.afterLeave=()=>{o===w.pendingId&&(g(s,c,i===x?m(r):i,0),t6(a),f&&l.ssFallback&&(l.ssFallback.el=null))}),r&&(y(r.el)===c&&(i=m(r)),_(r,u,w,!0),!p&&f&&l.ssFallback&&rA(()=>l.ssFallback.el=null,w)),p||g(s,c,i,0)),rW(w,s),w.pendingBranch=null,w.isInFallback=!1;let h=w.parent,b=!1;for(;h;){if(h.pendingBranch){h.effects.push(...a),b=!0;break}h=h.parent}b||p||t6(a),w.effects=[],S&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),rU(l,"onResolve")},fallback(e){if(!w.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:l,container:r,namespace:i}=w;rU(t,"onFallback");let s=m(n),u=()=>{w.isInFallback&&(h(null,e,r,s,l,null,i,o,a),rW(w,e))},c=e.transition&&"out-in"===e.transition.mode;c&&(n.transition.afterLeave=u),w.isInFallback=!0,_(n,l,null,!0),c||u()},move(e,t,n){w.activeBranch&&g(w.activeBranch,e,t,n),w.container=e},next:()=>w.activeBranch&&m(w.activeBranch),registerDep(e,t,n){let l=!!w.pendingBranch;l&&w.deps++;let r=e.vnode.el;e.asyncDep.catch(t=>{tz(t,e,0)}).then(i=>{if(e.isUnmounted||w.isUnmounted||w.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;ix(e,i,!1),r&&(o.el=r);let a=!r&&e.subTree.el;t(e,o,y(r||e.subTree.el),r?null:m(e.subTree),w,s,n),a&&(o.placeholder=null,b(a)),rg(e,o.el),l&&0==--w.deps&&w.resolve()})},unmount(e,t){w.isUnmounted=!0,w.activeBranch&&_(w.activeBranch,n,e,t),w.pendingBranch&&_(w.pendingBranch,n,e,t)}};return w}function r$(e){let t;if(T(e)){let n=rQ&&e._c;n&&(e._d=!1,rZ()),e=e(),n&&(e._d=!0,t=rX,rY())}return k(e)&&(e=function(e,t=!0){let n;for(let t=0;t<e.length;t++){let l=e[t];if(!r8(l))return;if(l.type!==rq||"v-if"===l.children)if(n)return;else n=l}return n}(e)),e=io(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function rH(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):t6(e)}function rW(e,t){e.activeBranch=t;let{vnode:n,parentComponent:l}=e,r=t.el;for(;!r&&t.component;)r=(t=t.component.subTree).el;n.el=r,l&&l.subTree===n&&(l.vnode.el=r,rg(l,r))}let rK=Symbol.for("v-fgt"),rz=Symbol.for("v-txt"),rq=Symbol.for("v-cmt"),rG=Symbol.for("v-stc"),rJ=[],rX=null;function rZ(e=!1){rJ.push(rX=e?null:[])}function rY(){rJ.pop(),rX=rJ[rJ.length-1]||null}let rQ=1;function r0(e,t=!1){rQ+=e,e<0&&rX&&t&&(rX.hasOnce=!0)}function r1(e){return e.dynamicChildren=rQ>0?rX||_:null,rY(),rQ>0&&rX&&rX.push(e),e}function r2(e,t,n,l,r,i){return r1(r7(e,t,n,l,r,i,!0))}function r6(e,t,n,l,r){return r1(ie(e,t,n,l,r,!0))}function r8(e){return!!e&&!0===e.__v_isVNode}function r4(e,t){return e.type===t.type&&e.key===t.key}function r3(e){}let r5=({key:e})=>null!=e?e:null,r9=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?A(e)||tm(e)||T(e)?{i:t5,r:e,k:t,f:!!n}:e:null);function r7(e,t=null,n=null,l=0,r=null,i=+(e!==rK),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&r5(t),ref:t&&r9(t),scopeId:t9,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:l,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:t5};return o?(iu(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=A(n)?8:16),rQ>0&&!s&&rX&&(a.patchFlag>0||6&i)&&32!==a.patchFlag&&rX.push(a),a}let ie=function(e,t=null,n=null,l=0,r=null,i=!1){var s;if(e&&e!==lk||(e=rq),r8(e)){let l=il(e,t,!0);return n&&iu(l,n),rQ>0&&!i&&rX&&(6&l.shapeFlag?rX[rX.indexOf(e)]=l:rX.push(l)),l.patchFlag=-2,l}if(T(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=it(t);e&&!A(e)&&(t.class=Q(e)),O(n)&&(td(n)&&!k(n)&&(n=C({},n)),t.style=J(n))}let o=A(e)?1:rj(e)?128:e.__isTeleport?64:O(e)?4:2*!!T(e);return r7(e,t,n,l,r,o,i,!0)};function it(e){return e?td(e)||r_(e)?C({},e):e:null}function il(e,t,n=!1,l=!1){let{props:r,ref:i,patchFlag:s,children:o,transition:a}=e,u=t?ic(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&r5(u),ref:t&&t.ref?n&&i?k(i)?i.concat(r9(t)):[i,r9(t)]:r9(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==rK?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&il(e.ssContent),ssFallback:e.ssFallback&&il(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&l&&nB(c,a.clone(c)),c}function ir(e=" ",t=0){return ie(rz,null,e,t)}function ii(e,t){let n=ie(rG,null,e);return n.staticCount=t,n}function is(e="",t=!1){return t?(rZ(),r6(rq,null,e)):ie(rq,null,e)}function io(e){return null==e||"boolean"==typeof e?ie(rq):k(e)?ie(rK,null,e.slice()):r8(e)?ia(e):ie(rz,null,String(e))}function ia(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:il(e)}function iu(e,t){let n=0,{shapeFlag:l}=e;if(null==t)t=null;else if(k(t))n=16;else if("object"==typeof t)if(65&l){let n=t.default;n&&(n._c&&(n._d=!1),iu(e,n()),n._c&&(n._d=!0));return}else{n=32;let l=t._;l||r_(t)?3===l&&t5&&(1===t5.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t5}else T(t)?(t={default:t,_ctx:t5},n=32):(t=String(t),64&l?(n=16,t=[ir(t)]):n=8);e.children=t,e.shapeFlag|=n}function ic(...e){let t={};for(let n=0;n<e.length;n++){let l=e[n];for(let e in l)if("class"===e)t.class!==l.class&&(t.class=Q([t.class,l.class]));else if("style"===e)t.style=J([t.style,l.style]);else if(b(e)){let n=t[e],r=l[e];r&&n!==r&&!(k(n)&&n.includes(r))&&(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=l[e])}return t}function ip(e,t,n,l=null){tK(e,t,7,[n,l])}let id=rn(),ih=0;function ig(e,t,n){let l=e.type,r=(t?t.appContext:e.appContext)||id,i={uid:ih++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ea(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,l=!1){let r=l?rb:n.propsCache,i=r.get(t);if(i)return i;let s=t.props,o={},a=[],u=!1;if(!T(t)){let r=t=>{u=!0;let[l,r]=e(t,n,!0);C(o,l),r&&a.push(...r)};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!s&&!u)return O(t)&&r.set(t,_),_;if(k(s))for(let e=0;e<s.length;e++){let t=j(s[e]);rS(t)&&(o[t]=g)}else if(s)for(let e in s){let t=j(e);if(rS(t)){let n=s[e],l=o[t]=k(n)||T(n)?{type:n}:C({},n),r=l.type,i=!1,u=!0;if(k(r))for(let e=0;e<r.length;++e){let t=r[e],n=T(t)&&t.name;if("Boolean"===n){i=!0;break}"String"===n&&(u=!1)}else i=T(r)&&"Boolean"===r.name;l[0]=i,l[1]=u,(i||E(l,"default"))&&a.push(t)}}let c=[o,a];return O(t)&&r.set(t,c),c}(l,r),emitsOptions:function e(t,n,l=!1){let r=l?ra:n.emitsCache,i=r.get(t);if(void 0!==i)return i;let s=t.emits,o={},a=!1;if(!T(t)){let r=t=>{let l=e(t,n,!0);l&&(a=!0,C(o,l))};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return s||a?(k(s)?s.forEach(e=>o[e]=null):C(o,s),O(t)&&r.set(t,o),o):(O(t)&&r.set(t,null),null)}(l,r),emit:null,emitted:null,propsDefaults:g,inheritAttrs:l.inheritAttrs,ctx:g,data:g,props:g,attrs:g,slots:g,refs:g,setupState:g,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=ro.bind(null,i),e.ce&&e.ce(i),i}let iv=null,i_=()=>iv||t5;{let e=q(),t=(t,n)=>{let l;return(l=e[t])||(l=e[t]=[]),l.push(n),e=>{l.length>1?l.forEach(t=>t(e)):l[0](e)}};o=t("__VUE_INSTANCE_SETTERS__",e=>iv=e),a=t("__VUE_SSR_SETTERS__",e=>iS=e)}let im=e=>{let t=iv;return o(e),e.scope.on(),()=>{e.scope.off(),o(t)}},iy=()=>{iv&&iv.scope.off(),o(null)};function ib(e){return 4&e.vnode.shapeFlag}let iS=!1;function iC(e,t=!1,n=!1){t&&a(t);let{props:l,children:r}=e.vnode,i=ib(e);!function(e,t,n,l=!1){let r={},i=Object.create(rv);for(let n in e.propsDefaults=Object.create(null),rm(e,t,r,i),e.propsOptions[0])n in r||(r[n]=void 0);n?e.props=l?r:ts(r):e.type.props?e.props=r:e.props=i,e.attrs=i}(e,l,i,t);var s=n||t;let o=e.slots=Object.create(rv);if(32&e.vnode.shapeFlag){let e=r._;e?(rT(o,r,s),s&&W(o,"_",e,!0)):rE(r,o)}else r&&rk(e,r);let u=i?function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lV);let{setup:l}=n;if(l){ek();let n=e.setupContext=l.length>1?iA(e):null,r=im(e),i=tW(l,e,0,[e.props,n]),s=N(i);if(eT(),r(),(s||e.sp)&&!lt(e)&&nK(e),s){if(i.then(iy,iy),t)return i.then(n=>{ix(e,n,t)}).catch(t=>{tz(t,e,0)});e.asyncDep=i}else ix(e,i,t)}else ik(e,t)}(e,t):void 0;return t&&a(!1),u}function ix(e,t,n){T(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:O(t)&&(e.setupState=tT(t)),ik(e,n)}function iw(e){u=e,c=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,lU))}}let iE=()=>!u;function ik(e,t,n){let l=e.type;if(!e.render){if(!t&&u&&!l.render){let t=l.template||l8(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:i,compilerOptions:s}=l,o=C(C({isCustomElement:n,delimiters:i},r),s);l.render=u(t,o)}}e.render=l.render||m,c&&c(e)}{let t=im(e);ek();try{!function(e){let t=l8(e),n=e.proxy,l=e.ctx;l2=!1,t.beforeCreate&&l6(t.beforeCreate,e,"bc");let{data:r,computed:i,methods:s,watch:o,provide:a,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:d,updated:h,activated:g,deactivated:_,beforeUnmount:y,unmounted:b,render:S,renderTracked:C,renderTriggered:x,errorCaptured:w,serverPrefetch:E,expose:R,inheritAttrs:N,components:P,directives:M}=t;if(u&&function(e,t,n=m){for(let n in k(e)&&(e=l9(e)),e){let l,r=e[n];tm(l=O(r)?"default"in r?no(r.from||n,r.default,!0):no(r.from||n):no(r))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(u,l,null),s)for(let e in s){let t=s[e];T(t)&&(l[e]=t.bind(n))}if(r){let t=r.call(n,n);O(t)&&(e.data=ti(t))}if(l2=!0,i)for(let e in i){let t=i[e],r=T(t)?t.bind(n,n):T(t.get)?t.get.bind(n,n):m,s=iN({get:r,set:!T(t)&&T(t.set)?t.set.bind(n):m});Object.defineProperty(l,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,l,r){let i=r.includes(".")?n_(l,r):()=>l[r];if(A(t)){let e=n[t];T(e)&&nh(i,e)}else if(T(t))nh(i,t.bind(l));else if(O(t))if(k(t))t.forEach(t=>e(t,n,l,r));else{let e=T(t.handler)?t.handler.bind(l):n[t.handler];T(e)&&nh(i,e,t)}}(o[e],l,n,e);if(a){let e=T(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{ns(t,e[t])})}function I(e,t){k(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(c&&l6(c,e,"c"),I(lh,f),I(lg,p),I(lv,d),I(l_,h),I(lo,g),I(la,_),I(lx,w),I(lC,C),I(lS,x),I(lm,y),I(ly,b),I(lb,E),k(R))if(R.length){let t=e.exposed||(e.exposed={});R.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===m&&(e.render=S),null!=N&&(e.inheritAttrs=N),P&&(e.components=P),M&&(e.directives=M),E&&nK(e)}(e)}finally{eT(),t()}}}let iT={get:(e,t)=>(eF(e,"get",""),e[t])};function iA(e){return{attrs:new Proxy(e.attrs,iT),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iR(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tT(tg(e.exposed)),{get:(t,n)=>n in t?t[n]:n in lj?lj[n](e):void 0,has:(e,t)=>t in e||t in lj})):e.proxy}function iO(e,t=!0){return T(e)?e.displayName||e.name:e.name||t&&e.__name}let iN=(e,t)=>(function(e,t=!1){let n,l;return T(e)?n=e:(n=e.get,l=e.set),new tI(n,l,t)})(e,iS);function iP(e,t,n){try{r0(-1);let l=arguments.length;if(2!==l)return l>3?n=Array.prototype.slice.call(arguments,2):3===l&&r8(n)&&(n=[n]),ie(e,t,n);if(!O(t)||k(t))return ie(e,null,t);if(r8(t))return ie(e,null,[t]);return ie(e,t)}finally{r0(1)}}function iM(){}function iI(e,t,n,l){let r=n[l];if(r&&iL(r,e))return r;let i=t();return i.memo=e.slice(),i.cacheIndex=l,n[l]=i}function iL(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if($(n[e],t[e]))return!1;return rQ>0&&rX&&rX.push(e),!0}let iF="3.5.28",ij=m,iD=null,iV,iU=m,iB={createComponentInstance:ig,setupComponent:iC,renderComponentRoot:rc,setCurrentRenderingInstance:t7,isVNode:r8,normalizeVNode:io,getComponentPublicInstance:iR,ensureValidVNode:lI,pushWarningContext:function(e){},popWarningContext:function(){}},i$=null,iH=null,iW=null,iK="u">typeof window&&window.trustedTypes;if(iK)try{d=iK.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iz=d?e=>d.createHTML(e):e=>e,iq="u">typeof document?document:null,iG=iq&&iq.createElement("template"),iJ={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{let r="svg"===t?iq.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iq.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iq.createElement(e,{is:n}):iq.createElement(e);return"select"===e&&l&&null!=l.multiple&&r.setAttribute("multiple",l.multiple),r},createText:e=>iq.createTextNode(e),createComment:e=>iq.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iq.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,l,r,i){let s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{iG.innerHTML=iz("svg"===l?`<svg>${e}</svg>`:"mathml"===l?`<math>${e}</math>`:e);let r=iG.content;if("svg"===l||"mathml"===l){let e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iX="transition",iZ="animation",iY=Symbol("_vtc"),iQ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},i0=C({},nM,iQ),i1=((e=(e,{slots:t})=>iP(nF,i8(e),t)).displayName="Transition",e.props=i0,e),i2=(e,t=[])=>{k(e)?e.forEach(e=>e(...t)):e&&e(...t)},i6=e=>!!e&&(k(e)?e.some(e=>e.length>1):e.length>1);function i8(e){let t={};for(let n in e)n in iQ||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:l,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:u=s,appearToClass:c=o,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;{if(O(e))return[function(e){return z(e)}(e.enter),function(e){return z(e)}(e.leave)];let t=function(e){return z(e)}(e);return[t,t]}}(r),g=h&&h[0],_=h&&h[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:b,onLeave:S,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:E=y,onAppearCancelled:k=b}=t,T=(e,t,n,l)=>{e._enterCancelled=l,i3(e,t?c:o),i3(e,t?u:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i3(e,f),i3(e,d),i3(e,p),t&&t()},R=e=>(t,n)=>{let r=e?E:y,s=()=>T(t,e,n);i2(r,[t,s]),i5(()=>{i3(t,e?a:i),i4(t,e?c:o),i6(r)||i7(t,l,g,s)})};return C(t,{onBeforeEnter(e){i2(m,[e]),i4(e,i),i4(e,s)},onBeforeAppear(e){i2(w,[e]),i4(e,a),i4(e,u)},onEnter:R(!1),onAppear:R(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i4(e,f),e._enterCancelled?(i4(e,p),sl(e)):(sl(e),i4(e,p)),i5(()=>{e._isLeaving&&(i3(e,f),i4(e,d),i6(S)||i7(e,l,_,n))}),i2(S,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),i2(b,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),i2(k,[e])},onLeaveCancelled(e){A(e),i2(x,[e])}})}function i4(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iY]||(e[iY]=new Set)).add(t)}function i3(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iY];n&&(n.delete(t),n.size||(e[iY]=void 0))}function i5(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i9=0;function i7(e,t,n,l){let r=e._endId=++i9,i=()=>{r===e._endId&&l()};if(null!=n)return setTimeout(i,n);let{type:s,timeout:o,propCount:a}=se(e,t);if(!s)return l();let u=s+"end",c=0,f=()=>{e.removeEventListener(u,p),i()},p=t=>{t.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},o+1),e.addEventListener(u,p)}function se(e,t){let n=window.getComputedStyle(e),l=e=>(n[e]||"").split(", "),r=l(`${iX}Delay`),i=l(`${iX}Duration`),s=st(r,i),o=l(`${iZ}Delay`),a=l(`${iZ}Duration`),u=st(o,a),c=null,f=0,p=0;t===iX?s>0&&(c=iX,f=s,p=i.length):t===iZ?u>0&&(c=iZ,f=u,p=a.length):p=(c=(f=Math.max(s,u))>0?s>u?iX:iZ:null)?c===iX?i.length:a.length:0;let d=c===iX&&/\b(?:transform|all)(?:,|$)/.test(l(`${iX}Property`).toString());return{type:c,timeout:f,propCount:p,hasTransform:d}}function st(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>sn(t)+sn(e[n])))}function sn(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function sl(e){return(e?e.ownerDocument:document).body.offsetHeight}let sr=Symbol("_vod"),si=Symbol("_vsh"),ss={name:"show",beforeMount(e,{value:t},{transition:n}){e[sr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):so(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),so(e,!0),l.enter(e)):l.leave(e,()=>{so(e,!1)}):so(e,t))},beforeUnmount(e,{value:t}){so(e,t)}};function so(e,t){e.style.display=t?e[sr]:"none",e[si]=!t}let sa=Symbol("");function su(e){let t=i_();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>sc(e,n))},l=()=>{let l=e(t.proxy);t.ce?sc(t.ce,l):function e(t,n){if(128&t.shapeFlag){let l=t.suspense;t=l.activeBranch,l.pendingBranch&&!l.isHydrating&&l.effects.push(()=>{e(l.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)sc(t.el,n);else if(t.type===rK)t.children.forEach(t=>e(t,n));else if(t.type===rG){let{el:e,anchor:l}=t;for(;e&&(sc(e,n),e!==l);)e=e.nextSibling}}(t.subTree,l),n(l)};lv(()=>{t6(l)}),lg(()=>{nh(l,m,{flush:"post"});let e=new MutationObserver(l);e.observe(t.subTree.el.parentNode,{childList:!0}),ly(()=>e.disconnect())})}function sc(e,t){if(1===e.nodeType){let l=e.style,r="";for(let e in t){var n;let i=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);l.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}l[sa]=r}}let sf=/(?:^|;)\s*display\s*:/,sp=/\s*!important$/;function sd(e,t,n){if(k(n))n.forEach(n=>sd(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let l=function(e,t){let n=sg[t];if(n)return n;let l=j(t);if("filter"!==l&&l in e)return sg[t]=l;l=U(l);for(let n=0;n<sh.length;n++){let r=sh[n]+l;if(r in e)return sg[t]=r}return t}(e,t);sp.test(n)?e.setProperty(V(l),n.replace(sp,""),"important"):e[l]=n}}let sh=["Webkit","Moz","ms"],sg={},sv="http://www.w3.org/1999/xlink";function s_(e,t,n,l,r,i=et(t)){if(l&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(sv,t.slice(6,t.length)):e.setAttributeNS(sv,t,n);else null==n||i&&!(n||""===n)?e.removeAttribute(t):e.setAttribute(t,i?"":R(n)?String(n):n)}function sm(e,t,n,l,r){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?iz(n):n);return}let i=e.tagName;if("value"===t&&"PROGRESS"!==i&&!i.includes("-")){let l="OPTION"===i?e.getAttribute("value")||"":e.value,r=null==n?"checkbox"===e.type?"on":"":String(n);l===r&&"_value"in e||(e.value=r),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let l=typeof e[t];if("boolean"===l){var o;n=!!(o=n)||""===o}else null==n&&"string"===l?(n="",s=!0):"number"===l&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(r||t)}function sy(e,t,n,l){e.addEventListener(t,n,l)}let sb=Symbol("_vei"),sS=/(?:Once|Passive|Capture)$/,sC=0,sx=Promise.resolve(),sw=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),sE=(e,t,n,l,r,i)=>{let s="svg"===r;if("class"===t){var o;let t;o=l,(t=e[iY])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let l=e.style,r=A(n),i=!1;if(n&&!r){if(t)if(A(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&sd(l,t,"")}else for(let e in t)null==n[e]&&sd(l,e,"");for(let e in n)"display"===e&&(i=!0),sd(l,e,n[e])}else if(r){if(t!==n){let e=l[sa];e&&(n+=";"+e),l.cssText=n,i=sf.test(n)}}else t&&e.removeAttribute("style");sr in e&&(e[sr]=i?l.display:"",e[si]&&(l.display="none"))}(e,n,l):b(t)?S(t)||function(e,t,n,l=null){let r=e[sb]||(e[sb]={}),i=r[t];if(n&&i)i.value=n;else{let[a,u]=function(e){let t;if(sS.test(e)){let n;for(t={};n=e.match(sS);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):V(e.slice(2)),t]}(t);if(n){var s,o;let i;sy(e,a,r[t]=(s=n,o=l,(i=e=>{if(e._vts){if(e._vts<=i.attached)return}else e._vts=Date.now();tK(function(e,t){if(!k(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,i.value),o,5,[e])}).value=s,i.attached=sC||(sx.then(()=>sC=0),sC=Date.now()),i),u)}else i&&(e.removeEventListener(a,i,u),r[t]=void 0)}}(e,t,l,i):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,l){if(l)return!!("innerHTML"===t||"textContent"===t||t in e&&sw(t)&&T(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(sw(t)&&A(n))&&t in e}(e,t,l,s))?e._isVueCE&&(/[A-Z]/.test(t)||!A(l))?sm(e,j(t),l,i,t):("true-value"===t?e._trueValue=l:"false-value"===t&&(e._falseValue=l),s_(e,t,l,s)):(sm(e,t,l),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||s_(e,t,l,s,i,"value"!==t))},sk={};function sT(e,t,n){let l,r=nH(e,t);"[object Object]"===(l=r,P.call(l))&&(r=C({},r,t));class i extends sO{constructor(e){super(r,e,n)}}return i.def=r,i}let sA=(e,t)=>sT(e,t,os),sR="u">typeof HTMLElement?HTMLElement:class{};class sO extends sR{constructor(e,t={},n=oi){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==oi?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(C({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof sO){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,t0(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:l,styles:r}=e;if(l&&!k(l))for(let e in l){let t=l[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=z(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(r),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)E(this,e)||Object.defineProperty(this,e,{get:()=>tw(t[e])})}_resolveProps(e){let{props:t}=e,n=k(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):sk,l=j(e);t&&this._numberProps&&this._numberProps[l]&&(n=z(n)),this._setProp(l,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,l=!1){if(t!==this._props[e]&&(this._dirty=!0,t===sk?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),l&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(V(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(V(e),t+""):t||this.removeAttribute(V(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),ol(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ie(this._def,C(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],P.call(n))?C({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),V(e)!==e&&t(V(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let l=document.createElement("style");n&&l.setAttribute("nonce",n),l.textContent=e[t],this.shadowRoot.prepend(l)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let l=e[n],r=l.getAttribute("name")||"default",i=this._slots[r],s=l.parentNode;if(i)for(let e of i){if(t&&1===e.nodeType){let n,l=t+"-s",r=document.createTreeWalker(e,1);for(e.setAttribute(l,"");n=r.nextNode();)n.setAttribute(l,"")}s.insertBefore(e,l)}else for(;l.firstChild;)s.insertBefore(l.firstChild,l);s.removeChild(l)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll("slot");for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e){this._applyStyles(e.styles,e)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return!1!==this._def.shadowRoot}_removeChildStyle(e){}}function sN(e){let t=i_(),n=t&&t.ce;return n||null}function sP(){let e=sN();return e&&e.shadowRoot}function sM(e="$style"){{let t=i_();if(!t)return g;let n=t.type.__cssModules;if(!n)return g;let l=n[e];return l||g}}let sI=new WeakMap,sL=new WeakMap,sF=Symbol("_moveCb"),sj=Symbol("_enterCb"),sD=(t={name:"TransitionGroup",props:C({},i0,{tag:String,moveClass:String}),setup(e,{slots:t}){let n,l,r=i_(),i=nN();return l_(()=>{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let l=e.cloneNode(),r=e[iY];r&&r.forEach(e=>{e.split(/\s+/).forEach(e=>e&&l.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&l.classList.add(e)),l.style.display="none";let i=1===t.nodeType?t:t.parentNode;i.appendChild(l);let{hasTransform:s}=se(l);return i.removeChild(l),s}(n[0].el,r.vnode.el,t)){n=[];return}n.forEach(sV),n.forEach(sU);let l=n.filter(sB);sl(r.vnode.el),l.forEach(e=>{let n=e.el,l=n.style;i4(n,t),l.transform=l.webkitTransform=l.transitionDuration="";let r=n[sF]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",r),n[sF]=null,i3(n,t))};n.addEventListener("transitionend",r)}),n=[]}),()=>{let s=th(e),o=i8(s),a=s.tag||rK;if(n=[],l)for(let e=0;e<l.length;e++){let t=l[e];t.el&&t.el instanceof Element&&(n.push(t),nB(t,nD(t,o,i,r)),sI.set(t,s$(t.el)))}l=t.default?n$(t.default()):[];for(let e=0;e<l.length;e++){let t=l[e];null!=t.key&&nB(t,nD(t,o,i,r))}return ie(a,null,l)}}},delete t.props.mode,t);function sV(e){let t=e.el;t[sF]&&t[sF](),t[sj]&&t[sj]()}function sU(e){sL.set(e,s$(e.el))}function sB(e){let t=sI.get(e),n=sL.get(e),l=t.left-n.left,r=t.top-n.top;if(l||r){let t=e.el,n=t.style,i=t.getBoundingClientRect(),s=1,o=1;return t.offsetWidth&&(s=i.width/t.offsetWidth),t.offsetHeight&&(o=i.height/t.offsetHeight),Number.isFinite(s)&&0!==s||(s=1),Number.isFinite(o)&&0!==o||(o=1),.01>Math.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${l/s}px,${r/o}px)`,n.transitionDuration="0s",e}}function s$(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let sH=e=>{let t=e.props["onUpdate:modelValue"]||!1;return k(t)?e=>H(t,e):t};function sW(e){e.target.composing=!0}function sK(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let sz=Symbol("_assign");function sq(e,t,n){return t&&(e=e.trim()),n&&(e=K(e)),e}let sG={created(e,{modifiers:{lazy:t,trim:n,number:l}},r){e[sz]=sH(r);let i=l||r.props&&"number"===r.props.type;sy(e,t?"change":"input",t=>{t.target.composing||e[sz](sq(e.value,n,i))}),(n||i)&&sy(e,"change",()=>{e.value=sq(e.value,n,i)}),t||(sy(e,"compositionstart",sW),sy(e,"compositionend",sK),sy(e,"change",sK))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:l,trim:r,number:i}},s){if(e[sz]=sH(s),e.composing)return;let o=(i||"number"===e.type)&&!/^0\d/.test(e.value)?K(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(l&&t===n||r&&e.value.trim()===a))return;e.value=a}}},sJ={deep:!0,created(e,t,n){e[sz]=sH(n),sy(e,"change",()=>{let t=e._modelValue,n=s0(e),l=e.checked,r=e[sz];if(k(t)){let e=el(t,n),i=-1!==e;if(l&&!i)r(t.concat(n));else if(!l&&i){let n=[...t];n.splice(e,1),r(n)}}else{let i;if("[object Set]"===(i=t,P.call(i))){let e=new Set(t);l?e.add(n):e.delete(n),r(e)}else r(s1(e,l))}})},mounted:sX,beforeUpdate(e,t,n){e[sz]=sH(n),sX(e,t,n)}};function sX(e,{value:t,oldValue:n},l){let r;if(e._modelValue=t,k(t))r=el(t,l.props.value)>-1;else{let i;if("[object Set]"===(i=t,P.call(i)))r=t.has(l.props.value);else{if(t===n)return;r=en(t,s1(e,!0))}}e.checked!==r&&(e.checked=r)}let sZ={created(e,{value:t},n){e.checked=en(t,n.props.value),e[sz]=sH(n),sy(e,"change",()=>{e[sz](s0(e))})},beforeUpdate(e,{value:t,oldValue:n},l){e[sz]=sH(l),t!==n&&(e.checked=en(t,l.props.value))}},sY={deep:!0,created(e,{value:t,modifiers:{number:n}},l){let r,i="[object Set]"===(r=t,P.call(r));sy(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?K(s0(e)):s0(e));e[sz](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,t0(()=>{e._assigning=!1})}),e[sz]=sH(l)},mounted(e,{value:t}){sQ(e,t)},beforeUpdate(e,t,n){e[sz]=sH(n)},updated(e,{value:t}){e._assigning||sQ(e,t)}};function sQ(e,t){let n,l=e.multiple,r=k(t);if(!l||r||"[object Set]"===(n=t,P.call(n))){for(let n=0,i=e.options.length;n<i;n++){let i=e.options[n],s=s0(i);if(l)if(r){let e=typeof s;"string"===e||"number"===e?i.selected=t.some(e=>String(e)===String(s)):i.selected=el(t,s)>-1}else i.selected=t.has(s);else if(en(s0(i),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}l||-1===e.selectedIndex||(e.selectedIndex=-1)}}function s0(e){return"_value"in e?e._value:e.value}function s1(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}let s2={created(e,t,n){s8(e,t,n,null,"created")},mounted(e,t,n){s8(e,t,n,null,"mounted")},beforeUpdate(e,t,n,l){s8(e,t,n,l,"beforeUpdate")},updated(e,t,n,l){s8(e,t,n,l,"updated")}};function s6(e,t){switch(e){case"SELECT":return sY;case"TEXTAREA":return sG;default:switch(t){case"checkbox":return sJ;case"radio":return sZ;default:return sG}}}function s8(e,t,n,l,r){let i=s6(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,l)}let s4=["ctrl","shift","alt","meta"],s3={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>s4.some(n=>e[`${n}Key`]&&!t.includes(n))},s5=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),l=t.join(".");return n[l]||(n[l]=(n,...l)=>{for(let e=0;e<t.length;e++){let l=s3[t[e]];if(l&&l(n,t))return}return e(n,...l)})},s9={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},s7=(e,t)=>{let n=e._withKeys||(e._withKeys={}),l=t.join(".");return n[l]||(n[l]=n=>{if(!("key"in n))return;let l=V(n.key);if(t.some(e=>e===l||s9[e]===l))return e(n)})},oe=C({patchProp:sE},iJ),ot=!1;function on(){return f=ot?f:rO(oe),ot=!0,f}let ol=(...e)=>{(f||(f=rR(oe))).render(...e)},or=(...e)=>{on().hydrate(...e)},oi=(...e)=>{let t=(f||(f=rR(oe))).createApp(...e),{mount:n}=t;return t.mount=e=>{let l=oa(e);if(!l)return;let r=t._component;T(r)||r.render||r.template||(r.template=l.innerHTML),1===l.nodeType&&(l.textContent="");let i=n(l,!1,oo(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},t},os=(...e)=>{let t=on().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=oa(e);if(t)return n(t,!0,oo(t))},t};function oo(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function oa(e){return A(e)?document.querySelector(e):e}let ou=!1,oc=()=>{ou||(ou=!0,sG.getSSRProps=({value:e})=>({value:e}),sZ.getSSRProps=({value:e},t)=>{if(t.props&&en(t.props.value,e))return{checked:!0}},sJ.getSSRProps=({value:e},t)=>{if(k(e)){if(t.props&&el(e,t.props.value)>-1)return{checked:!0}}else{let n;if("[object Set]"===(n=e,P.call(n))){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}},s2.getSSRProps=(e,t)=>{if("string"!=typeof t.type)return;let n=s6(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)},ss.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}})};export{nF as BaseTransition,nM as BaseTransitionPropsValidators,rq as Comment,iW as DeprecationTypes,ea as EffectScope,tH as ErrorCodes,iD as ErrorTypeStrings,rK as Fragment,li as KeepAlive,ed as ReactiveEffect,rG as Static,rV as Suspense,nk as Teleport,rz as Text,tL as TrackOpTypes,i1 as Transition,sD as TransitionGroup,tF as TriggerOpTypes,sO as VueElement,t$ as assertNumber,tK as callWithAsyncErrorHandling,tW as callWithErrorHandling,j as camelize,U as capitalize,il as cloneVNode,iH as compatUtils,iN as computed,oi as createApp,r6 as createBlock,is as createCommentVNode,r2 as createElementBlock,r7 as createElementVNode,rO as createHydrationRenderer,l0 as createPropsRestProxy,rR as createRenderer,os as createSSRApp,lP as createSlots,ii as createStaticVNode,ir as createTextVNode,ie as createVNode,tR as customRef,ln as defineAsyncComponent,nH as defineComponent,sT as defineCustomElement,l$ as defineEmits,lH as defineExpose,lz as defineModel,lW as defineOptions,lB as defineProps,sA as defineSSRCustomElement,lK as defineSlots,iV as devtools,eC as effect,eu as effectScope,i_ as getCurrentInstance,ec as getCurrentScope,tV as getCurrentWatcher,n$ as getTransitionRawChildren,it as guardReactiveProps,iP as h,tz as handleError,na as hasInjectionContext,or as hydrate,n5 as hydrateOnIdle,le as hydrateOnInteraction,n7 as hydrateOnMediaQuery,n9 as hydrateOnVisible,iM as initCustomFormatter,oc as initDirectivesForSSR,no as inject,iL as isMemoSame,td as isProxy,tc as isReactive,tf as isReadonly,tm as isRef,iE as isRuntimeOnly,tp as isShallow,r8 as isVNode,tg as markRaw,lY as mergeDefaults,lQ as mergeModels,ic as mergeProps,t0 as nextTick,iJ as nodeOps,Q as normalizeClass,ee as normalizeProps,J as normalizeStyle,lo as onActivated,lh as onBeforeMount,lm as onBeforeUnmount,lv as onBeforeUpdate,la as onDeactivated,lx as onErrorCaptured,lg as onMounted,lC as onRenderTracked,lS as onRenderTriggered,ef as onScopeDispose,lb as onServerPrefetch,ly as onUnmounted,l_ as onUpdated,tU as onWatcherCleanup,rZ as openBlock,sE as patchProp,nt as popScopeId,ns as provide,tT as proxyRefs,ne as pushScopeId,t6 as queuePostFlushCb,ti as reactive,to as readonly,ty as ref,iw as registerRuntimeCompiler,ol as render,lN as renderList,lM as renderSlot,lE as resolveComponent,lA as resolveDirective,lT as resolveDynamicComponent,i$ as resolveFilter,nD as resolveTransitionHooks,r0 as setBlockTracking,iU as setDevtoolsHook,nB as setTransitionHooks,ts as shallowReactive,ta as shallowReadonly,tb as shallowRef,nu as ssrContextKey,iB as ssrUtils,ex as stop,ei as toDisplayString,B as toHandlerKey,lL as toHandlers,th as toRaw,tM as toRef,tO as toRefs,tE as toValue,r3 as transformVNodeArgs,tx as triggerRef,tw as unref,lJ as useAttrs,sM as useCssModule,su as useCssVars,sN as useHost,nW as useId,ri as useModel,nc as useSSRContext,sP as useShadowRoot,lG as useSlots,nz as useTemplateRef,nN as useTransitionState,sJ as vModelCheckbox,s2 as vModelDynamic,sZ as vModelRadio,sY as vModelSelect,sG as vModelText,ss as vShow,iF as version,ij as warn,nh as watch,nf as watchEffect,np as watchPostEffect,nd as watchSyncEffect,l1 as withAsyncContext,nl as withCtx,lq as withDefaults,nr as withDirectives,s7 as withKeys,iI as withMemo,s5 as withModifiers,nn as withScopeId}; diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js new file mode 100644 index 0000000..c0a5f7c --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js @@ -0,0 +1,1937 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { warn, BaseTransitionPropsValidators, h, BaseTransition, assertNumber, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, nextTick, unref, createVNode, defineComponent, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, createRenderer, isRuntimeOnly, createHydrationRenderer } from '@vue/runtime-core'; +export * from '@vue/runtime-core'; +import { extend, isObject, toNumber, isArray, NOOP, normalizeCssVarValue, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, isOn, isModelListener, camelize as camelize$1, hasOwn, isPlainObject, EMPTY_OBJ, looseIndexOf, isSet, looseEqual, looseToNumber, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared'; + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + !!(process.env.NODE_ENV !== "production") && warn(`Error creating trusted types policy: ${e}`); + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION = "transition"; +const ANIMATION = "animation"; +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = toNumber(val); + if (!!(process.env.NODE_ENV !== "production")) { + assertNumber(res, "<transition> explicit duration"); + } + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); +const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== "production") ? "CSS_VAR_TEXT" : ""); +function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + if (!!(process.env.NODE_ENV !== "production")) { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); +} +function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } +} +function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } +} + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const semicolonRE = /[^\\];\s*$/; +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + if (!!(process.env.NODE_ENV !== "production")) { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!!(process.env.NODE_ENV !== "production") && !needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = !!(process.env.NODE_ENV !== "production") ? sanitizeEventValue(nextValue, rawName) : nextValue; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + !!(process.env.NODE_ENV !== "production") ? sanitizeEventValue(nextValue, rawName) : nextValue, + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; +} +function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize$1(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}); +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (!!(process.env.NODE_ENV !== "production") && this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (!!(process.env.NODE_ENV !== "production") && styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) && !def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else if (!!(process.env.NODE_ENV !== "production")) { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize$1)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize$1(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + if (!!(process.env.NODE_ENV !== "production")) { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + if (!!(process.env.NODE_ENV !== "production")) { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + if (!!(process.env.NODE_ENV !== "production")) { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } +} +function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else if (!!(process.env.NODE_ENV !== "production")) { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; +} +function useShadowRoot() { + const el = !!(process.env.NODE_ENV !== "production") ? useHost("useShadowRoot") : useHost(); + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = getCurrentInstance(); + if (!instance) { + !!(process.env.NODE_ENV !== "production") && warn(`useCssModule must be called inside setup()`); + return EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS modules injected.`); + return EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS module named "${name}".`); + return EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (!!(process.env.NODE_ENV !== "production") && child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = /* @__PURE__ */ Symbol("_assign"); +function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; +} +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + !!(process.env.NODE_ENV !== "production") && warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (isArray(value)) { + if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); +}; + +const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = ((...args) => { + ensureRenderer().render(...args); +}); +const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); +}); +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + if (!!(process.env.NODE_ENV !== "production")) { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + if (!!(process.env.NODE_ENV !== "production")) { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); +} +function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } +} +function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!!(process.env.NODE_ENV !== "production") && !res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (!!(process.env.NODE_ENV !== "production") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +export { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, nodeOps, patchProp, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers }; diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.global.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.global.js new file mode 100644 index 0000000..a0f51a5 --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.global.js @@ -0,0 +1,12725 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var VueRuntimeDOM = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter + (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } + ); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } + }; + const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + + const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; + const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` + ); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` + ); + const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` + ); + function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; + } + + const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; + function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); + }; + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); + }; + + function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); + } + + function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + let activeSub; + const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); + class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } + } + let batchDepth = 0; + let batchedSub; + let batchedComputed; + function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; + } + function startBatch() { + batchDepth++; + } + function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; + } + function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } + } + function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; + } + function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; + } + function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } + } + function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } + } + function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } + } + + let globalVersion = 0; + class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } + } + class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } + } + function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } + } + const targetMap = /* @__PURE__ */ new WeakMap(); + const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" + ); + const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" + ); + const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" + ); + function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); + } + function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); + } + + function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); + } + function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; + } + function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); + } + const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } + }; + function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; + } + const arrayProto = Array.prototype; + function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; + } + function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); + } + function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; + } + function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; + } + function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; + } + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + // @__NO_SIDE_EFFECTS__ + function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + // @__NO_SIDE_EFFECTS__ + function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + // @__NO_SIDE_EFFECTS__ + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + // @__NO_SIDE_EFFECTS__ + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + // @__NO_SIDE_EFFECTS__ + function isProxy(value) { + return value ? !!value["__v_raw"] : false; + } + // @__NO_SIDE_EFFECTS__ + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; + } + function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; + } + const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; + const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + + // @__NO_SIDE_EFFECTS__ + function isRef(r) { + return r ? r["__v_isRef"] === true : false; + } + // @__NO_SIDE_EFFECTS__ + function ref(value) { + return createRef(value, false); + } + // @__NO_SIDE_EFFECTS__ + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } + } + function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } + } + function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + // @__NO_SIDE_EFFECTS__ + function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } + } + // @__NO_SIDE_EFFECTS__ + function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } + } + // @__NO_SIDE_EFFECTS__ + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" + }; + const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" + }; + + const INITIAL_WATCHER_VALUE = {}; + const cleanupMap = /* @__PURE__ */ new WeakMap(); + let activeWatcher = void 0; + function getCurrentWatcher() { + return activeWatcher; + } + function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } + } + function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; + } + function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; + } + + const stack = []; + function pushWarningContext(vnode) { + stack.push(vnode); + } + function popWarningContext() { + stack.pop(); + } + let isWarning = false; + function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; + } + function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" + }; + const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" + }; + function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); + } + function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + const queue = []; + let flushIndex = -1; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; + } + function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } + } + function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; + function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; + } + + let isHmrUpdating = false; + const hmrDirtyComponents = /* @__PURE__ */ new Map(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + let devtools$1; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + // @__NO_SIDE_EFFECTS__ + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); + } + + const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn$1(`useSSRContext() is not supported in the global build.`); + } + }; + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + return watchHandle; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + + const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } + }, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; + } + + const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); + const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } + }; + function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; + } + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + // @__NO_SIDE_EFFECTS__ + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; + } + function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; + } + + const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); + function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; + } + function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); + } + + const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } + } + + let hasLoggedMismatchError = false; + const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; + }; + const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; + const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); + const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; + }; + const isComment = (node) => node.nodeType === 8; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; + } + function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; + } + function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); + } + function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; + } + function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; + } + function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; + } + function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } + } + const allowMismatchAttr = "data-allow-mismatch"; + const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" + }; + function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } + } + + const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); + const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); + const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); + }; + function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); + } + const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); + }; + const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } + }; + const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; + }; + function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + // @__NO_SIDE_EFFECTS__ + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } + }; + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook( + "bu" + ); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook( + "bum" + ); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook( + "sp" + ); + const onRenderTriggered = createHook("rtg"); + const onRenderTracked = createHook("rtc"); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } + }; + { + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; + } + const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } + }); + function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; + } + function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } + } + function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); + } + + const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` + ); + function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; + } + function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; + } + function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } + } + function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } + } + function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; + } + function defineModel() { + { + warnRuntimeUsage("defineModel"); + } + } + function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; + } + function useSlots() { + return getContext("useSlots").slots; + } + function useAttrs() { + return getContext("useAttrs").attrs; + } + function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); + } + function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; + } + function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; + } + function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); + } + function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; + } + function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; + } + + function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; + } + let shouldCacheAccess = true; + function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + } + function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } + } + function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); + } + function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } + } + function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; + } + function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; + } + const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject + }; + function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; + } + function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); + } + function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; + } + function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; + } + function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; + } + function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } + } + function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; + } + + function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; + } + let uid$1 = 0; + function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; + } + let currentApp = null; + + function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; + } + const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; + }; + + function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } + } + const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); + function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; + } + function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); + } + + let accessedAttrs = false; + function markAttrsAccessed() { + accessedAttrs = true; + } + function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; + } + const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; + }; + function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; + } + const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; + }; + const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; + }; + const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; + }; + function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; + } + function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; + } + function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; + } + function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } + } + + const internalObjectProto = {}; + const createInternalObject = () => Object.create(internalObjectProto); + const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + + function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; + } + function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } + } + function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } + } + function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; + } + function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; + } + const mixinPropsCache = /* @__PURE__ */ new WeakMap(); + function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; + } + function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; + } + function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; + } + function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } + } + function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } + } + const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" + ); + function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; + } + function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; + } + function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } + } + function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); + } + function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); + } + + const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; + const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; + const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; + }; + const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } + }; + const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; + }; + const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } + }; + const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } + }; + const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } + }; + + let supported; + let perf; + function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; + } + + const queuePostRenderEffect = queueEffectWithSuspense ; + function createRenderer(options) { + return baseCreateRenderer(options); + } + function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); + } + function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; + } + function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; + } + function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } + } + function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; + } + function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } + } + function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; + } + function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } + } + function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } + } + function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; + } + + const isSuspense = (type) => type.__isSuspense; + let suspenseId = 0; + const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren + }; + const Suspense = SuspenseImpl ; + function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } + } + function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } + } + function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } + } + let hasWarned = false; + function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; + } + function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; + } + function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); + } + function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; + } + function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } + } + function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } + } + function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; + } + + const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); + const Text = /* @__PURE__ */ Symbol.for("v-txt"); + const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); + const Static = /* @__PURE__ */ Symbol.for("v-stc"); + const blockStack = []; + let currentBlock = null; + function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); + } + function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; + } + let isBlockTreeEnabled = 1; + function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } + } + function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; + } + function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); + } + function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); + } + function isVNode(value) { + return value ? value.__v_isVNode === true : false; + } + function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; + } + let vnodeArgsTransformer; + function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; + } + const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); + }; + const normalizeKey = ({ key }) => key != null ? key : null; + const normalizeRef = ({ + ref, + ref_key, + ref_for + }) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; + }; + function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; + } + const createVNode = createVNodeWithArgsTransform ; + function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); + } + function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; + } + function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; + } + function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; + } + function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); + } + function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; + } + function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); + } + function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } + } + function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); + } + function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; + } + function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; + } + function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); + } + + const emptyAppContext = createAppContext(); + let uid = 0; + function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; + } + let currentInstance = null; + const getCurrentInstance = () => currentInstance || currentRenderingInstance; + let internalSetCurrentInstance; + let setInSSRSetupState; + { + internalSetCurrentInstance = (i) => { + currentInstance = i; + }; + setInSSRSetupState = (v) => { + isInSSRComponentSetup = v; + }; + } + const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; + }; + const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); + }; + const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); + function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } + } + function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; + } + let isInSSRComponentSetup = false; + function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; + } + function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } + } + function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); + } + let compile; + let installWithProxy; + function registerRuntimeCompiler(_compile) { + compile = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; + } + const isRuntimeOnly = () => !compile; + function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } + } + const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } + } ; + function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); + } + function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } + } + function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } + } + const classifyRE = /(?:^|[-_])\w/g; + const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); + function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; + } + function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; + } + function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; + } + + const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; + }; + + function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } + } + + function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } + } + + function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; + } + function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; + } + + const version = "3.5.28"; + const warn = warn$1 ; + const ErrorTypeStrings = ErrorTypeStrings$1 ; + const devtools = devtools$1 ; + const setDevtoolsHook = setDevtoolsHook$1 ; + const ssrUtils = null; + const resolveFilter = null; + const compatUtils = null; + const DeprecationTypes = null; + + let policy = void 0; + const tt = typeof window !== "undefined" && window.trustedTypes; + if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } + } + const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; + const svgNS = "http://www.w3.org/2000/svg"; + const mathmlNS = "http://www.w3.org/1998/Math/MathML"; + const doc = typeof document !== "undefined" ? document : null; + const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); + const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } + }; + + const TRANSITION = "transition"; + const ANIMATION = "animation"; + const vtcKey = /* @__PURE__ */ Symbol("_vtc"); + const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String + }; + const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators + ); + const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; + }; + const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) + ); + const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } + }; + const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; + }; + function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); + } + function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } + } + function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; + } + function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); + } + function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } + } + function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); + } + let endId = 0; + function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); + } + function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; + } + function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); + } + function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; + } + function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; + } + + function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } + } + + const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); + const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); + const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } + }; + function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; + } + + const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); + function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); + } + function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } + } + function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } + } + + const displayRE = /(?:^|;)\s*display\s*:/; + function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } + } + const semicolonRE = /[^\\];\s*$/; + const importantRE = /\s*!important$/; + function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } + } + const prefixes = ["Webkit", "Moz", "ms"]; + const prefixCache = {}; + function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; + } + + const xlinkNS = "http://www.w3.org/1999/xlink"; + function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } + } + + function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); + } + + function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); + } + function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); + } + const veiKey = /* @__PURE__ */ Symbol("_vei"); + function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } + } + const optionsModifierRE = /(?:Once|Passive|Capture)$/; + function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; + } + let cachedNow = 0; + const p = /* @__PURE__ */ Promise.resolve(); + const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); + function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; + } + function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; + } + function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } + } + + const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter + key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; + const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } + }; + function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; + } + + const REMOVAL = {}; + // @__NO_SIDE_EFFECTS__ + function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; + } + const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); + }); + const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { + }; + class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } + } + function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; + } + function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; + } + + function useCssModule(name = "$style") { + { + { + warn(`useCssModule() is not supported in the global build.`); + } + return EMPTY_OBJ; + } + } + + const positionMap = /* @__PURE__ */ new WeakMap(); + const newPositionMap = /* @__PURE__ */ new WeakMap(); + const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); + const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); + const decorate = (t) => { + delete t.props.mode; + return t; + }; + const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } + }); + const TransitionGroup = TransitionGroupImpl; + function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } + } + function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); + } + function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } + } + function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; + } + function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; + } + + const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; + }; + function onCompositionStart(e) { + e.target.composing = true; + } + function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } + } + const assignKey = /* @__PURE__ */ Symbol("_assign"); + function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; + } + const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } + }; + const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } + }; + function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } + } + const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } + }; + const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } + }; + function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } + } + function getValue(el) { + return "_value" in el ? el._value : el.value; + } + function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; + } + const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } + }; + function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } + } + function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); + } + + const systemModifiers = ["ctrl", "shift", "alt", "meta"]; + const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) + }; + const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); + }; + const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" + }; + const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); + }; + + const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); + let renderer; + let enabledHydration = false; + function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); + } + function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; + } + const render = ((...args) => { + ensureRenderer().render(...args); + }); + const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); + }); + const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; + }); + const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; + }); + function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } + } + function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); + } + function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } + } + function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; + } + const initDirectivesForSSR = NOOP; + + exports.BaseTransition = BaseTransition; + exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; + exports.Comment = Comment; + exports.DeprecationTypes = DeprecationTypes; + exports.EffectScope = EffectScope; + exports.ErrorCodes = ErrorCodes; + exports.ErrorTypeStrings = ErrorTypeStrings; + exports.Fragment = Fragment; + exports.KeepAlive = KeepAlive; + exports.ReactiveEffect = ReactiveEffect; + exports.Static = Static; + exports.Suspense = Suspense; + exports.Teleport = Teleport; + exports.Text = Text; + exports.TrackOpTypes = TrackOpTypes; + exports.Transition = Transition; + exports.TransitionGroup = TransitionGroup; + exports.TriggerOpTypes = TriggerOpTypes; + exports.VueElement = VueElement; + exports.assertNumber = assertNumber; + exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; + exports.callWithErrorHandling = callWithErrorHandling; + exports.camelize = camelize; + exports.capitalize = capitalize; + exports.cloneVNode = cloneVNode; + exports.compatUtils = compatUtils; + exports.computed = computed; + exports.createApp = createApp; + exports.createBlock = createBlock; + exports.createCommentVNode = createCommentVNode; + exports.createElementBlock = createElementBlock; + exports.createElementVNode = createBaseVNode; + exports.createHydrationRenderer = createHydrationRenderer; + exports.createPropsRestProxy = createPropsRestProxy; + exports.createRenderer = createRenderer; + exports.createSSRApp = createSSRApp; + exports.createSlots = createSlots; + exports.createStaticVNode = createStaticVNode; + exports.createTextVNode = createTextVNode; + exports.createVNode = createVNode; + exports.customRef = customRef; + exports.defineAsyncComponent = defineAsyncComponent; + exports.defineComponent = defineComponent; + exports.defineCustomElement = defineCustomElement; + exports.defineEmits = defineEmits; + exports.defineExpose = defineExpose; + exports.defineModel = defineModel; + exports.defineOptions = defineOptions; + exports.defineProps = defineProps; + exports.defineSSRCustomElement = defineSSRCustomElement; + exports.defineSlots = defineSlots; + exports.devtools = devtools; + exports.effect = effect; + exports.effectScope = effectScope; + exports.getCurrentInstance = getCurrentInstance; + exports.getCurrentScope = getCurrentScope; + exports.getCurrentWatcher = getCurrentWatcher; + exports.getTransitionRawChildren = getTransitionRawChildren; + exports.guardReactiveProps = guardReactiveProps; + exports.h = h; + exports.handleError = handleError; + exports.hasInjectionContext = hasInjectionContext; + exports.hydrate = hydrate; + exports.hydrateOnIdle = hydrateOnIdle; + exports.hydrateOnInteraction = hydrateOnInteraction; + exports.hydrateOnMediaQuery = hydrateOnMediaQuery; + exports.hydrateOnVisible = hydrateOnVisible; + exports.initCustomFormatter = initCustomFormatter; + exports.initDirectivesForSSR = initDirectivesForSSR; + exports.inject = inject; + exports.isMemoSame = isMemoSame; + exports.isProxy = isProxy; + exports.isReactive = isReactive; + exports.isReadonly = isReadonly; + exports.isRef = isRef; + exports.isRuntimeOnly = isRuntimeOnly; + exports.isShallow = isShallow; + exports.isVNode = isVNode; + exports.markRaw = markRaw; + exports.mergeDefaults = mergeDefaults; + exports.mergeModels = mergeModels; + exports.mergeProps = mergeProps; + exports.nextTick = nextTick; + exports.nodeOps = nodeOps; + exports.normalizeClass = normalizeClass; + exports.normalizeProps = normalizeProps; + exports.normalizeStyle = normalizeStyle; + exports.onActivated = onActivated; + exports.onBeforeMount = onBeforeMount; + exports.onBeforeUnmount = onBeforeUnmount; + exports.onBeforeUpdate = onBeforeUpdate; + exports.onDeactivated = onDeactivated; + exports.onErrorCaptured = onErrorCaptured; + exports.onMounted = onMounted; + exports.onRenderTracked = onRenderTracked; + exports.onRenderTriggered = onRenderTriggered; + exports.onScopeDispose = onScopeDispose; + exports.onServerPrefetch = onServerPrefetch; + exports.onUnmounted = onUnmounted; + exports.onUpdated = onUpdated; + exports.onWatcherCleanup = onWatcherCleanup; + exports.openBlock = openBlock; + exports.patchProp = patchProp; + exports.popScopeId = popScopeId; + exports.provide = provide; + exports.proxyRefs = proxyRefs; + exports.pushScopeId = pushScopeId; + exports.queuePostFlushCb = queuePostFlushCb; + exports.reactive = reactive; + exports.readonly = readonly; + exports.ref = ref; + exports.registerRuntimeCompiler = registerRuntimeCompiler; + exports.render = render; + exports.renderList = renderList; + exports.renderSlot = renderSlot; + exports.resolveComponent = resolveComponent; + exports.resolveDirective = resolveDirective; + exports.resolveDynamicComponent = resolveDynamicComponent; + exports.resolveFilter = resolveFilter; + exports.resolveTransitionHooks = resolveTransitionHooks; + exports.setBlockTracking = setBlockTracking; + exports.setDevtoolsHook = setDevtoolsHook; + exports.setTransitionHooks = setTransitionHooks; + exports.shallowReactive = shallowReactive; + exports.shallowReadonly = shallowReadonly; + exports.shallowRef = shallowRef; + exports.ssrContextKey = ssrContextKey; + exports.ssrUtils = ssrUtils; + exports.stop = stop; + exports.toDisplayString = toDisplayString; + exports.toHandlerKey = toHandlerKey; + exports.toHandlers = toHandlers; + exports.toRaw = toRaw; + exports.toRef = toRef; + exports.toRefs = toRefs; + exports.toValue = toValue; + exports.transformVNodeArgs = transformVNodeArgs; + exports.triggerRef = triggerRef; + exports.unref = unref; + exports.useAttrs = useAttrs; + exports.useCssModule = useCssModule; + exports.useCssVars = useCssVars; + exports.useHost = useHost; + exports.useId = useId; + exports.useModel = useModel; + exports.useSSRContext = useSSRContext; + exports.useShadowRoot = useShadowRoot; + exports.useSlots = useSlots; + exports.useTemplateRef = useTemplateRef; + exports.useTransitionState = useTransitionState; + exports.vModelCheckbox = vModelCheckbox; + exports.vModelDynamic = vModelDynamic; + exports.vModelRadio = vModelRadio; + exports.vModelSelect = vModelSelect; + exports.vModelText = vModelText; + exports.vShow = vShow; + exports.version = version; + exports.warn = warn; + exports.watch = watch; + exports.watchEffect = watchEffect; + exports.watchPostEffect = watchPostEffect; + exports.watchSyncEffect = watchSyncEffect; + exports.withAsyncContext = withAsyncContext; + exports.withCtx = withCtx; + exports.withDefaults = withDefaults; + exports.withDirectives = withDirectives; + exports.withKeys = withKeys; + exports.withMemo = withMemo; + exports.withModifiers = withModifiers; + exports.withScopeId = withScopeId; + + return exports; + +})({}); diff --git a/node_modules/@vue/runtime-dom/dist/runtime-dom.global.prod.js b/node_modules/@vue/runtime-dom/dist/runtime-dom.global.prod.js new file mode 100644 index 0000000..a482235 --- /dev/null +++ b/node_modules/@vue/runtime-dom/dist/runtime-dom.global.prod.js @@ -0,0 +1,7 @@ +/** +* @vue/runtime-dom v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var VueRuntimeDOM=function(e){"use strict";var t,n;let l,r,i,s,o,a,u,c,f,p,d,h;function g(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let _={},m=[],y=()=>{},b=()=>!1,S=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),C=e=>e.startsWith("onUpdate:"),x=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},k=Object.prototype.hasOwnProperty,E=(e,t)=>k.call(e,t),T=Array.isArray,A=e=>"function"==typeof e,O=e=>"string"==typeof e,R=e=>"symbol"==typeof e,N=e=>null!==e&&"object"==typeof e,P=e=>(N(e)||A(e))&&A(e.then)&&A(e.catch),M=Object.prototype.toString,I=e=>O(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,L=g(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),F=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},D=/-\w/g,j=F(e=>e.replace(D,e=>e.slice(1).toUpperCase())),V=/\B([A-Z])/g,U=F(e=>e.replace(V,"-$1").toLowerCase()),B=F(e=>e.charAt(0).toUpperCase()+e.slice(1)),$=F(e=>e?`on${B(e)}`:""),H=(e,t)=>!Object.is(e,t),W=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},K=(e,t,n,l=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:l,value:n})},z=e=>{let t=parseFloat(e);return isNaN(t)?e:t},q=e=>{let t=O(e)?Number(e):NaN;return isNaN(t)?e:t},G=()=>l||(l="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),J=g("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function X(e){if(T(e)){let t={};for(let n=0;n<e.length;n++){let l=e[n],r=O(l)?function(e){let t={};return e.replace(Q,"").split(Z).forEach(e=>{if(e){let n=e.split(Y);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}(l):X(l);if(r)for(let e in r)t[e]=r[e]}return t}if(O(e)||N(e))return e}let Z=/;(?![^(]*\))/g,Y=/:([^]+)/,Q=/\/\*[^]*?\*\//g;function ee(e){let t="";if(O(e))t=e;else if(T(e))for(let n=0;n<e.length;n++){let l=ee(e[n]);l&&(t+=l+" ")}else if(N(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}let et=g("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function en(e,t){let n,l;if(e===t)return!0;let r="[object Date]"===(n=e,M.call(n)),i="[object Date]"===(l=t,M.call(l));if(r||i)return!!r&&!!i&&e.getTime()===t.getTime();if(r=R(e),i=R(t),r||i)return e===t;if(r=T(e),i=T(t),r||i)return!!r&&!!i&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=en(e[l],t[l]);return n}(e,t);if(r=N(e),i=N(t),r||i){if(!r||!i||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let l=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(l&&!r||!l&&r||!en(e[n],t[n]))return!1}}return String(e)===String(t)}function el(e,t){return e.findIndex(e=>en(e,t))}let er=e=>!!(e&&!0===e.__v_isRef),ei=e=>O(e)?e:null==e?"":T(e)||N(e)&&(e.toString===M||!A(e.toString))?er(e)?ei(e.value):JSON.stringify(e,es,2):String(e),es=(e,t)=>{let n;if(er(t))return es(e,t.value);if("[object Map]"===(n=t,M.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],l)=>(e[eo(t,l)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,M.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eo(e))};else{if(R(t))return eo(t);let e;if(N(t)&&!T(t)&&"[object Object]"!==(e=t,M.call(e)))return String(t)}}return t},eo=(e,t="")=>{var n;return R(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ea{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=r,!e&&r&&(this.index=(r.scopes||(r.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=r;try{return r=this,e()}finally{r=t}}}on(){1==++this._on&&(this.prevScope=r,r=this)}off(){this._on>0&&0==--this._on&&(r=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}let eu=new WeakSet;class ec{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,r&&r.active&&r.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,eu.has(this)&&(eu.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||ep(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,ex(this),eh(this);let e=i,t=ey;i=this,ey=!0;try{return this.fn()}finally{eg(this),i=e,ey=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)em(e);this.deps=this.depsTail=void 0,ex(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?eu.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ev(this)&&this.run()}get dirty(){return ev(this)}}let ef=0;function ep(e,t=!1){if(e.flags|=8,t){e.next=o,o=e;return}e.next=s,s=e}function ed(){let e;if(!(--ef>0)){if(o){let e=o;for(o=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;s;){let t=s;for(s=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function eh(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eg(e){let t,n=e.depsTail,l=n;for(;l;){let e=l.prevDep;-1===l.version?(l===n&&(n=e),em(l),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(l)):t=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=e}e.deps=t,e.depsTail=n}function ev(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(e_(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function e_(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===ew)||(e.globalVersion=ew,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ev(e))))return;e.flags|=2;let t=e.dep,n=i,l=ey;i=e,ey=!0;try{eh(e);let n=e.fn(e._value);(0===t.version||H(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{i=n,ey=l,eg(e),e.flags&=-3}}function em(e,t=!1){let{dep:n,prevSub:l,nextSub:r}=e;if(l&&(l.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=l,e.nextSub=void 0),n.subs===e&&(n.subs=l,!l&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)em(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let ey=!0,eb=[];function eS(){eb.push(ey),ey=!1}function eC(){let e=eb.pop();ey=void 0===e||e}function ex(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=i;i=void 0;try{t()}finally{i=e}}}let ew=0;class ek{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eE{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!i||!ey||i===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==i)t=this.activeLink=new ek(i,this),i.deps?(t.prevDep=i.depsTail,i.depsTail.nextDep=t,i.depsTail=t):i.deps=i.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let l=t.dep.subs;l!==t&&(t.prevSub=l,l&&(l.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=i.depsTail,t.nextDep=void 0,i.depsTail.nextDep=t,i.depsTail=t,i.deps===t&&(i.deps=e)}return t}trigger(e){this.version++,ew++,this.notify(e)}notify(e){ef++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{ed()}}}let eT=new WeakMap,eA=Symbol(""),eO=Symbol(""),eR=Symbol("");function eN(e,t,n){if(ey&&i){let t=eT.get(e);t||eT.set(e,t=new Map);let l=t.get(n);l||(t.set(n,l=new eE),l.map=t,l.key=n),l.track()}}function eP(e,t,n,l,r,i){let s=eT.get(e);if(!s)return void ew++;let o=e=>{e&&e.trigger()};if(ef++,"clear"===t)s.forEach(o);else{let r=T(e),i=r&&I(n);if(r&&"length"===n){let e=Number(l);s.forEach((t,n)=>{("length"===n||n===eR||!R(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),i&&o(s.get(eR)),t){case"add":if(r)i&&o(s.get("length"));else{let t;o(s.get(eA));"[object Map]"===(t=e,M.call(t))&&o(s.get(eO))}break;case"delete":if(!r){let t;o(s.get(eA));"[object Map]"===(t=e,M.call(t))&&o(s.get(eO))}break;case"set":let a;"[object Map]"===(a=e,M.call(a))&&o(s.get(eA))}}ed()}function eM(e){let t=ta(e);return t===e?t:(eN(t,"iterate",eR),ts(e)?t:t.map(tc))}function eI(e){return eN(e=ta(e),"iterate",eR),e}function eL(e,t){return ti(e)?tr(e)?tf(tc(t)):tf(t):tc(t)}let eF={__proto__:null,[Symbol.iterator](){return eD(this,Symbol.iterator,e=>eL(this,e))},concat(...e){return eM(this).concat(...e.map(e=>T(e)?eM(e):e))},entries(){return eD(this,"entries",e=>(e[1]=eL(this,e[1]),e))},every(e,t){return eV(this,"every",e,t,void 0,arguments)},filter(e,t){return eV(this,"filter",e,t,e=>e.map(e=>eL(this,e)),arguments)},find(e,t){return eV(this,"find",e,t,e=>eL(this,e),arguments)},findIndex(e,t){return eV(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eV(this,"findLast",e,t,e=>eL(this,e),arguments)},findLastIndex(e,t){return eV(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eV(this,"forEach",e,t,void 0,arguments)},includes(...e){return eB(this,"includes",e)},indexOf(...e){return eB(this,"indexOf",e)},join(e){return eM(this).join(e)},lastIndexOf(...e){return eB(this,"lastIndexOf",e)},map(e,t){return eV(this,"map",e,t,void 0,arguments)},pop(){return e$(this,"pop")},push(...e){return e$(this,"push",e)},reduce(e,...t){return eU(this,"reduce",e,t)},reduceRight(e,...t){return eU(this,"reduceRight",e,t)},shift(){return e$(this,"shift")},some(e,t){return eV(this,"some",e,t,void 0,arguments)},splice(...e){return e$(this,"splice",e)},toReversed(){return eM(this).toReversed()},toSorted(e){return eM(this).toSorted(e)},toSpliced(...e){return eM(this).toSpliced(...e)},unshift(...e){return e$(this,"unshift",e)},values(){return eD(this,"values",e=>eL(this,e))}};function eD(e,t,n){let l=eI(e),r=l[t]();return l===e||ts(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=n(e.value)),e}),r}let ej=Array.prototype;function eV(e,t,n,l,r,i){let s=eI(e),o=s!==e&&!ts(e),a=s[t];if(a!==ej[t]){let t=a.apply(e,i);return o?tc(t):t}let u=n;s!==e&&(o?u=function(t,l){return n.call(this,eL(e,t),l,e)}:n.length>2&&(u=function(t,l){return n.call(this,t,l,e)}));let c=a.call(s,u,l);return o&&r?r(c):c}function eU(e,t,n,l){let r=eI(e),i=n;return r!==e&&(ts(e)?n.length>3&&(i=function(t,l,r){return n.call(this,t,l,r,e)}):i=function(t,l,r){return n.call(this,t,eL(e,l),r,e)}),r[t](i,...l)}function eB(e,t,n){let l=ta(e);eN(l,"iterate",eR);let r=l[t](...n);return(-1===r||!1===r)&&to(n[0])?(n[0]=ta(n[0]),l[t](...n)):r}function e$(e,t,n=[]){eS(),ef++;let l=ta(e)[t].apply(e,n);return ed(),eC(),l}let eH=g("__proto__,__v_isRef,__isVue"),eW=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(R));function eK(e){R(e)||(e=String(e));let t=ta(this);return eN(t,"has",e),t.hasOwnProperty(e)}class ez{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let l=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!l;if("__v_isReadonly"===t)return l;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(l?r?e7:e9:r?e5:e3).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let i=T(e);if(!l){let e;if(i&&(e=eF[t]))return e;if("hasOwnProperty"===t)return eK}let s=Reflect.get(e,t,tp(e)?e:n);if((R(t)?eW.has(t):eH(t))||(l||eN(e,"get",t),r))return s;if(tp(s)){let e=i&&I(t)?s:s.value;return l&&N(e)?tn(e):e}return N(s)?l?tn(s):te(s):s}}class eq extends ez{constructor(e=!1){super(!1,e)}set(e,t,n,l){let r=e[t],i=T(e)&&I(t);if(!this._isShallow){let e=ti(r);if(ts(n)||ti(n)||(r=ta(r),n=ta(n)),!i&&tp(r)&&!tp(n))if(e)return!0;else return r.value=n,!0}let s=i?Number(t)<e.length:E(e,t),o=Reflect.set(e,t,n,tp(e)?e:l);return e===ta(l)&&(s?H(n,r)&&eP(e,"set",t,n):eP(e,"add",t,n)),o}deleteProperty(e,t){let n=E(e,t);e[t];let l=Reflect.deleteProperty(e,t);return l&&n&&eP(e,"delete",t,void 0),l}has(e,t){let n=Reflect.has(e,t);return R(t)&&eW.has(t)||eN(e,"has",t),n}ownKeys(e){return eN(e,"iterate",T(e)?"length":eA),Reflect.ownKeys(e)}}class eG extends ez{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let eJ=new eq,eX=new eG,eZ=new eq(!0),eY=new eG(!0),eQ=e=>e;function e0(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e1(e,t){let n,l=(x(n={get(n){let l=this.__v_raw,r=ta(l),i=ta(n);e||(H(n,i)&&eN(r,"get",n),eN(r,"get",i));let{has:s}=Reflect.getPrototypeOf(r),o=t?eQ:e?tf:tc;return s.call(r,n)?o(l.get(n)):s.call(r,i)?o(l.get(i)):void(l!==r&&l.get(n))},get size(){let t=this.__v_raw;return e||eN(ta(t),"iterate",eA),t.size},has(t){let n=this.__v_raw,l=ta(n),r=ta(t);return e||(H(t,r)&&eN(l,"has",t),eN(l,"has",r)),t===r?n.has(t):n.has(t)||n.has(r)},forEach(n,l){let r=this,i=r.__v_raw,s=ta(i),o=t?eQ:e?tf:tc;return e||eN(s,"iterate",eA),i.forEach((e,t)=>n.call(l,o(e),o(t),r))}},e?{add:e0("add"),set:e0("set"),delete:e0("delete"),clear:e0("clear")}:{add(e){t||ts(e)||ti(e)||(e=ta(e));let n=ta(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),eP(n,"add",e,e)),this},set(e,n){t||ts(n)||ti(n)||(n=ta(n));let l=ta(this),{has:r,get:i}=Reflect.getPrototypeOf(l),s=r.call(l,e);s||(e=ta(e),s=r.call(l,e));let o=i.call(l,e);return l.set(e,n),s?H(n,o)&&eP(l,"set",e,n):eP(l,"add",e,n),this},delete(e){let t=ta(this),{has:n,get:l}=Reflect.getPrototypeOf(t),r=n.call(t,e);r||(e=ta(e),r=n.call(t,e)),l&&l.call(t,e);let i=t.delete(e);return r&&eP(t,"delete",e,void 0),i},clear(){let e=ta(this),t=0!==e.size,n=e.clear();return t&&eP(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=function(...n){let r,i=this.__v_raw,s=ta(i),o="[object Map]"===(r=s,M.call(r)),a="entries"===l||l===Symbol.iterator&&o,u=i[l](...n),c=t?eQ:e?tf:tc;return e||eN(s,"iterate","keys"===l&&o?eO:eA),x(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:a?[c(e[0]),c(e[1])]:c(e),done:t}}})}}),n);return(t,n,r)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(E(l,n)&&n in t?l:t,n,r)}let e2={get:e1(!1,!1)},e6={get:e1(!1,!0)},e8={get:e1(!0,!1)},e4={get:e1(!0,!0)},e3=new WeakMap,e5=new WeakMap,e9=new WeakMap,e7=new WeakMap;function te(e){return ti(e)?e:tl(e,!1,eJ,e2,e3)}function tt(e){return tl(e,!1,eZ,e6,e5)}function tn(e){return tl(e,!0,eX,e8,e9)}function tl(e,t,n,l,r){var i;let s;if(!N(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(i=e).__v_skip||!Object.isExtensible(i)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=i,M.call(s)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?l:n);return r.set(e,u),u}function tr(e){return ti(e)?tr(e.__v_raw):!!(e&&e.__v_isReactive)}function ti(e){return!!(e&&e.__v_isReadonly)}function ts(e){return!!(e&&e.__v_isShallow)}function to(e){return!!e&&!!e.__v_raw}function ta(e){let t=e&&e.__v_raw;return t?ta(t):e}function tu(e){return!E(e,"__v_skip")&&Object.isExtensible(e)&&K(e,"__v_skip",!0),e}let tc=e=>N(e)?te(e):e,tf=e=>N(e)?tn(e):e;function tp(e){return!!e&&!0===e.__v_isRef}function td(e){return tg(e,!1)}function th(e){return tg(e,!0)}function tg(e,t){return tp(e)?e:new tv(e,t)}class tv{constructor(e,t){this.dep=new eE,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ta(e),this._value=t?e:tc(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||ts(e)||ti(e);H(e=n?e:ta(e),t)&&(this._rawValue=e,this._value=n?e:tc(e),this.dep.trigger())}}function t_(e){return tp(e)?e.value:e}let tm={get:(e,t,n)=>"__v_raw"===t?e:t_(Reflect.get(e,t,n)),set:(e,t,n,l)=>{let r=e[t];return tp(r)&&!tp(n)?(r.value=n,!0):Reflect.set(e,t,n,l)}};function ty(e){return tr(e)?e:new Proxy(e,tm)}class tb{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eE,{get:n,set:l}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=l}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tS(e){return new tb(e)}class tC{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=ta(e);let l=!0,r=e;if(!T(e)||!I(String(t)))do l=!to(r)||ts(r);while(l&&(r=r.__v_raw));this._shallow=l}get value(){let e=this._object[this._key];return this._shallow&&(e=t_(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&tp(this._raw[this._key])){let t=this._object[this._key];if(tp(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eT.get(e))&&n.get(t)}}class tx{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tw{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eE(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ew-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&i!==this)return ep(this,!0),!0}get value(){let e=this.dep.track();return e_(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tk={},tE=new WeakMap;function tT(e,t=!1,n=d){if(n){let t=tE.get(n);t||tE.set(n,t=[]),t.push(e)}}function tA(e,t=1/0,n){if(t<=0||!N(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tp(e))tA(e.value,t,n);else if(T(e))for(let l=0;l<e.length;l++)tA(e[l],t,n);else{let l,r;if("[object Set]"===(l=e,M.call(l))||"[object Map]"===(r=e,M.call(r)))e.forEach(e=>{tA(e,t,n)});else{let l;if("[object Object]"===(l=e,M.call(l))){for(let l in e)tA(e[l],t,n);for(let l of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,l)&&tA(e[l],t,n)}}}return e}function tO(e,t,n,l){try{return l?e(...l):e()}catch(e){tN(e,t,n)}}function tR(e,t,n,l){if(A(e)){let r=tO(e,t,n,l);return r&&P(r)&&r.catch(e=>{tN(e,t,n)}),r}if(T(e)){let r=[];for(let i=0;i<e.length;i++)r.push(tR(e[i],t,n,l));return r}}function tN(e,t,n,l=!0){let r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||_;if(t){let l=t.parent,r=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){let t=l.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return}l=l.parent}if(i){eS(),tO(i,null,10,[e,r,s]),eC();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,l,s)}let tP=[],tM=-1,tI=[],tL=null,tF=0,tD=Promise.resolve(),tj=null;function tV(e){let t=tj||tD;return e?t.then(this?e.bind(this):e):t}function tU(e){if(!(1&e.flags)){let t=tK(e),n=tP[tP.length-1];!n||!(2&e.flags)&&t>=tK(n)?tP.push(e):tP.splice(function(e){let t=tM+1,n=tP.length;for(;t<n;){let l=t+n>>>1,r=tP[l],i=tK(r);i<e||i===e&&2&r.flags?t=l+1:n=l}return t}(t),0,e),e.flags|=1,tB()}}function tB(){tj||(tj=tD.then(function e(t){try{for(tM=0;tM<tP.length;tM++){let e=tP[tM];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),tO(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tM<tP.length;tM++){let e=tP[tM];e&&(e.flags&=-2)}tM=-1,tP.length=0,tW(),tj=null,(tP.length||tI.length)&&e()}}))}function t$(e){T(e)?tI.push(...e):tL&&-1===e.id?tL.splice(tF+1,0,e):1&e.flags||(tI.push(e),e.flags|=1),tB()}function tH(e,t,n=tM+1){for(;n<tP.length;n++){let t=tP[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tP.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function tW(e){if(tI.length){let e=[...new Set(tI)].sort((e,t)=>tK(e)-tK(t));if(tI.length=0,tL)return void tL.push(...e);for(tF=0,tL=e;tF<tL.length;tF++){let e=tL[tF];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}tL=null,tF=0}}let tK=e=>null==e.id?2&e.flags?-1:1/0:e.id,tz=null,tq=null;function tG(e){let t=tz;return tz=e,tq=e&&e.type.__scopeId||null,t}function tJ(e,t=tz,n){if(!t||e._n)return e;let l=(...n)=>{let r;l._d&&l5(-1);let i=tG(t);try{r=e(...n)}finally{tG(i),l._d&&l5(1)}return r};return l._n=!0,l._c=!0,l._d=!0,l}function tX(e,t,n,l){let r=e.dirs,i=t&&t.dirs;for(let s=0;s<r.length;s++){let o=r[s];i&&(o.oldValue=i[s].value);let a=o.dir[l];a&&(eS(),tR(a,n,8,[e.el,o,e,t]),eC())}}function tZ(e,t){if(rv){let n=rv.provides,l=rv.parent&&rv.parent.provides;l===n&&(n=rv.provides=Object.create(l)),n[e]=t}}function tY(e,t,n=!1){let l=r_();if(l||lh){let r=lh?lh._context.provides:l?null==l.parent||l.ce?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&A(t)?t.call(l&&l.proxy):t}}let tQ=Symbol.for("v-scx");function t0(e,t){return t1(e,null,{flush:"sync"})}function t1(e,t,n=_){let{flush:l}=n,i=x({},n),s=rv;i.call=(e,t,n)=>tR(e,s,t,n);let o=!1;return"post"===l?i.scheduler=e=>{lD(e,s&&s.suspense)}:"sync"!==l&&(o=!0,i.scheduler=(e,t)=>{t?e():tU(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=_){let l,i,s,o,{immediate:a,deep:u,once:c,scheduler:f,augmentJob:p,call:h}=n,g=e=>u?e:ts(e)||!1===u||0===u?tA(e,1):tA(e),m=!1,b=!1;if(tp(e)?(i=()=>e.value,m=ts(e)):tr(e)?(i=()=>g(e),m=!0):T(e)?(b=!0,m=e.some(e=>tr(e)||ts(e)),i=()=>e.map(e=>tp(e)?e.value:tr(e)?g(e):A(e)?h?h(e,2):e():void 0)):i=A(e)?t?h?()=>h(e,2):e:()=>{if(s){eS();try{s()}finally{eC()}}let t=d;d=l;try{return h?h(e,3,[o]):e(o)}finally{d=t}}:y,t&&u){let e=i,t=!0===u?1/0:u;i=()=>tA(e(),t)}let S=r,C=()=>{l.stop(),S&&S.active&&w(S.effects,l)};if(c&&t){let e=t;t=(...t)=>{e(...t),C()}}let x=b?Array(e.length).fill(tk):tk,k=e=>{if(1&l.flags&&(l.dirty||e))if(t){let e=l.run();if(u||m||(b?e.some((e,t)=>H(e,x[t])):H(e,x))){s&&s();let n=d;d=l;try{let n=[e,x===tk?void 0:b&&x[0]===tk?[]:x,o];x=e,h?h(t,3,n):t(...n)}finally{d=n}}}else l.run()};return p&&p(k),(l=new ec(i)).scheduler=f?()=>f(k,!1):k,o=e=>tT(e,!1,l),s=l.onStop=()=>{let e=tE.get(l);if(e){if(h)h(e,4);else for(let t of e)t();tE.delete(l)}},t?a?k(!0):x=l.run():f?f(k.bind(null,!0),!0):l.run(),C.pause=l.pause.bind(l),C.resume=l.resume.bind(l),C.stop=C,C}(e,t,i)}function t2(e,t,n){let l,r=this.proxy,i=O(e)?e.includes(".")?t6(r,e):()=>r[e]:e.bind(r,r);A(t)?l=t:(l=t.handler,n=t);let s=rm(this),o=t1(i,l.bind(r),n);return s(),o}function t6(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let t8=Symbol("_vte"),t4=e=>e&&(e.disabled||""===e.disabled),t3=e=>e&&(e.defer||""===e.defer),t5=e=>"u">typeof SVGElement&&e instanceof SVGElement,t9=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,t7=(e,t)=>{let n=e&&e.to;return O(n)?t?t(n):null:n},ne={name:"Teleport",__isTeleport:!0,process(e,t,n,l,r,i,s,o,a,u){let{mc:c,pc:f,pbc:p,o:{insert:d,querySelector:h,createText:g}}=u,_=t4(t.props),{shapeFlag:m,children:y,dynamicChildren:b}=t;if(null==e){let e=t.el=g(""),u=t.anchor=g("");d(e,n,l),d(u,n,l);let f=(e,t)=>{16&m&&c(y,e,t,r,i,s,o,a)},p=()=>{let e=t.target=t7(t.props,h),n=nl(e,t,g,d);e&&("svg"!==s&&t5(e)?s="svg":"mathml"!==s&&t9(e)&&(s="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(e),_||(f(e,n),nn(t,!1)))};_&&(f(n,u),nn(t,!0)),t3(t.props)?(t.el.__isMounted=!1,lD(()=>{p(),delete t.el.__isMounted},i)):p()}else{if(t3(t.props)&&!1===e.el.__isMounted)return void lD(()=>{ne.process(e,t,n,l,r,i,s,o,a,u)},i);t.el=e.el,t.targetStart=e.targetStart;let c=t.anchor=e.anchor,d=t.target=e.target,g=t.targetAnchor=e.targetAnchor,m=t4(e.props),y=m?n:d,S=m?c:g;if("svg"===s||t5(d)?s="svg":("mathml"===s||t9(d))&&(s="mathml"),b?(p(e.dynamicChildren,b,y,r,i,s,o),lH(e,t,!0)):a||f(e,t,y,S,r,i,s,o,!1),_)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nt(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=t7(t.props,h);e&&nt(t,e,null,u,0)}else m&&nt(t,d,g,u,1);nn(t,_)}},remove(e,t,n,{um:l,o:{remove:r}},i){let{shapeFlag:s,children:o,anchor:a,targetStart:u,targetAnchor:c,target:f,props:p}=e;if(f&&(r(u),r(c)),i&&r(a),16&s){let e=i||!t4(p);for(let r=0;r<o.length;r++){let i=o[r];l(i,t,n,e,!!i.dynamicChildren)}}},move:nt,hydrate:function(e,t,n,l,r,i,{o:{nextSibling:s,parentNode:o,querySelector:a,insert:u,createText:c}},f){function p(e,n){let l=n;for(;l;){if(l&&8===l.nodeType){if("teleport start anchor"===l.data)t.targetStart=l;else if("teleport anchor"===l.data){t.targetAnchor=l,e._lpa=t.targetAnchor&&s(t.targetAnchor);break}}l=s(l)}}function d(e,t){t.anchor=f(s(e),t,o(e),n,l,r,i)}let h=t.target=t7(t.props,a),g=t4(t.props);if(h){let a=h._lpa||h.firstChild;16&t.shapeFlag&&(g?(d(e,t),p(h,a),t.targetAnchor||nl(h,t,c,u,o(e)===h?e:null)):(t.anchor=s(e),p(h,a),t.targetAnchor||nl(h,t,c,u),f(a&&s(a),t,h,n,l,r,i))),nn(t,g)}else g&&16&t.shapeFlag&&(d(e,t),t.targetStart=e,t.targetAnchor=s(e));return t.anchor&&s(t.anchor)}};function nt(e,t,n,{o:{insert:l},m:r},i=2){0===i&&l(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:u,props:c}=e,f=2===i;if(f&&l(s,t,n),(!f||t4(c))&&16&a)for(let e=0;e<u.length;e++)r(u[e],t,n,2);f&&l(o,t,n)}function nn(e,t){let n=e.ctx;if(n&&n.ut){let l,r;for(t?(l=e.el,r=e.anchor):(l=e.targetStart,r=e.targetAnchor);l&&l!==r;)1===l.nodeType&&l.setAttribute("data-v-owner",n.uid),l=l.nextSibling;n.ut()}}function nl(e,t,n,l,r=null){let i=t.targetStart=n(""),s=t.targetAnchor=n("");return i[t8]=s,e&&(l(i,e,r),l(s,e,r)),s}let nr=Symbol("_leaveCb"),ni=Symbol("_enterCb");function ns(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return nz(()=>{e.isMounted=!0}),nJ(()=>{e.isUnmounting=!0}),e}let no=[Function,Array],na={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:no,onEnter:no,onAfterEnter:no,onEnterCancelled:no,onBeforeLeave:no,onLeave:no,onAfterLeave:no,onLeaveCancelled:no,onBeforeAppear:no,onAppear:no,onAfterAppear:no,onAppearCancelled:no},nu=e=>{let t=e.subTree;return t.component?nu(t.component):t};function nc(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==l0){t=n;break}}return t}let nf={name:"BaseTransition",props:na,setup(e,{slots:t}){let n=r_(),l=ns();return()=>{let r=t.default&&n_(t.default(),!0);if(!r||!r.length)return;let i=nc(r),s=ta(e),{mode:o}=s;if(l.isLeaving)return nh(i);let a=ng(i);if(!a)return nh(i);let u=nd(a,s,l,n,e=>u=e);a.type!==l0&&nv(a,u);let c=n.subTree&&ng(n.subTree);if(c&&c.type!==l0&&!rt(c,a)&&nu(n).type!==l0){let e=nd(c,s,l,n);if(nv(c,e),"out-in"===o&&a.type!==l0)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},nh(i);"in-out"===o&&a.type!==l0?e.delayLeave=(e,t,n)=>{np(l,c)[String(c.key)]=c,e[nr]=()=>{t(),e[nr]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function np(e,t){let{leavingVNodes:n}=e,l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function nd(e,t,n,l,r){let{appear:i,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:m,onAfterAppear:y,onAppearCancelled:b}=t,S=String(e.key),C=np(n,e),x=(e,t)=>{e&&tR(e,l,9,t)},w=(e,t)=>{let n=t[1];x(e,t),T(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:s,persisted:o,beforeEnter(t){let l=a;if(!n.isMounted)if(!i)return;else l=_||a;t[nr]&&t[nr](!0);let r=C[S];r&&rt(e,r)&&r.el[nr]&&r.el[nr](),x(l,[t])},enter(e){let t=u,l=c,r=f;if(!n.isMounted)if(!i)return;else t=m||u,l=y||c,r=b||f;let s=!1;e[ni]=t=>{s||(s=!0,t?x(r,[e]):x(l,[e]),k.delayedLeave&&k.delayedLeave(),e[ni]=void 0)};let o=e[ni].bind(null,!1);t?w(t,[e,o]):o()},leave(t,l){let r=String(e.key);if(t[ni]&&t[ni](!0),n.isUnmounting)return l();x(p,[t]);let i=!1;t[nr]=n=>{i||(i=!0,l(),n?x(g,[t]):x(h,[t]),t[nr]=void 0,C[r]===e&&delete C[r])};let s=t[nr].bind(null,!1);C[r]=e,d?w(d,[t,s]):s()},clone(e){let i=nd(e,t,n,l,r);return r&&r(i),i}};return k}function nh(e){if(nF(e))return(e=ro(e)).children=null,e}function ng(e){if(!nF(e))return e.type.__isTeleport&&e.children?nc(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&A(n.default))return n.default()}}function nv(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nv(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function n_(e,t=!1,n){let l=[],r=0;for(let i=0;i<e.length;i++){let s=e[i],o=null==n?s.key:String(n)+String(null!=s.key?s.key:i);s.type===lY?(128&s.patchFlag&&r++,l=l.concat(n_(s.children,t,o))):(t||s.type!==l0)&&l.push(null!=o?ro(s,{key:o}):s)}if(r>1)for(let e=0;e<l.length;e++)l[e].patchFlag=-2;return l}function nm(e,t){return A(e)?x({name:e.name},t,{setup:e}):e}function ny(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nb(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let nS=new WeakMap;function nC(e,t,n,l,r=!1){if(T(e))return void e.forEach((e,i)=>nC(e,t&&(T(t)?t[i]:t),n,l,r));if(nI(l)&&!r){512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&nC(e,t,n,l.component.subTree);return}let i=4&l.shapeFlag?rE(l.component):l.el,s=r?null:i,{i:o,r:a}=e,u=t&&t.r,c=o.refs===_?o.refs={}:o.refs,f=o.setupState,p=ta(f),d=f===_?b:e=>!nb(c,e)&&E(p,e),h=(e,t)=>!(t&&nb(c,t));if(null!=u&&u!==a&&(nx(t),O(u)?(c[u]=null,d(u)&&(f[u]=null)):tp(u)&&(h(u,t.k)&&(u.value=null),t.k&&(c[t.k]=null))),A(a))tO(a,o,12,[s,c]);else{let t=O(a),l=tp(a);if(t||l){let o=()=>{if(e.f){let n=t?d(a)?f[a]:c[a]:h()||!e.k?a.value:c[e.k];if(r)T(n)&&w(n,i);else if(T(n))n.includes(i)||n.push(i);else if(t)c[a]=[i],d(a)&&(f[a]=c[a]);else{let t=[i];h(a,e.k)&&(a.value=t),e.k&&(c[e.k]=t)}}else t?(c[a]=s,d(a)&&(f[a]=s)):l&&(h(a,e.k)&&(a.value=s),e.k&&(c[e.k]=s))};if(s){let t=()=>{o(),nS.delete(e)};t.id=-1,nS.set(e,t),lD(t,n)}else nx(e),o()}}}function nx(e){let t=nS.get(e);t&&(t.flags|=8,nS.delete(e))}let nw=!1,nk=()=>{nw||(console.error("Hydration completed but contains mismatches."),nw=!0)},nE=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nT=e=>8===e.nodeType;function nA(e){let{mt:t,p:n,o:{patchProp:l,createText:r,nextSibling:i,parentNode:s,remove:o,insert:a,createComment:u}}=e,c=(n,l,o,u,y,b=!1)=>{b=b||!!l.dynamicChildren;let S=nT(n)&&"["===n.data,C=()=>h(n,l,o,u,y,S),{type:x,ref:w,shapeFlag:k,patchFlag:E}=l,T=n.nodeType;l.el=n,-2===E&&(b=!1,l.dynamicChildren=null);let A=null;switch(x){case lQ:3!==T?""===l.children?(a(l.el=r(""),s(n),n),A=n):A=C():(n.data!==l.children&&(nk(),n.data=l.children),A=i(n));break;case l0:m(n)?(A=i(n),_(l.el=n.content.firstChild,n,o)):A=8!==T||S?C():i(n);break;case l1:if(S&&(T=(n=i(n)).nodeType),1===T||3===T){A=n;let e=!l.children.length;for(let t=0;t<l.staticCount;t++)e&&(l.children+=1===A.nodeType?A.outerHTML:A.data),t===l.staticCount-1&&(l.anchor=A),A=i(A);return S?i(A):A}C();break;case lY:A=S?d(n,l,o,u,y,b):C();break;default:if(1&k)A=1===T&&l.type.toLowerCase()===n.tagName.toLowerCase()||m(n)?f(n,l,o,u,y,b):C();else if(6&k){l.slotScopeIds=y;let e=s(n);if(A=S?g(n):nT(n)&&"teleport start"===n.data?g(n,n.data,"teleport end"):i(n),t(l,e,null,o,u,nE(e),b),nI(l)&&!l.type.__asyncResolved){let t;S?(t=ri(lY)).anchor=A?A.previousSibling:e.lastChild:t=3===n.nodeType?ra(""):ri("div"),t.el=n,l.component.subTree=t}}else 64&k?A=8!==T?C():l.type.hydrate(n,l,o,u,y,b,e,p):128&k&&(A=l.type.hydrate(n,l,o,u,nE(s(n)),y,b,e,c))}return null!=w&&nC(w,null,u,l),A},f=(e,t,n,r,i,s)=>{s=s||!!t.dynamicChildren;let{type:a,props:u,patchFlag:c,shapeFlag:f,dirs:d,transition:h}=t,g="input"===a||"option"===a;if(g||-1!==c){let a;d&&tX(t,null,n,"created");let y=!1;if(m(e)){y=l$(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let l=e.content.firstChild;if(y){let e=l.getAttribute("class");e&&(l.$cls=e),h.beforeEnter(l)}_(l,e,n),t.el=e=l}if(16&f&&!(u&&(u.innerHTML||u.textContent))){let l=p(e.firstChild,t,e,n,r,i,s);for(;l;){nN(e,1)||nk();let t=l;l=l.nextSibling,o(t)}}else if(8&f){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:l}=e;l!==n&&l!==n.replace(/\r\n|\r/g,` +`)&&(nN(e,0)||nk(),e.textContent=t.children)}if(u){if(g||!s||48&c){let t=e.tagName.includes("-");for(let r in u)(g&&(r.endsWith("value")||"indeterminate"===r)||S(r)&&!L(r)||"."===r[0]||t&&!L(r))&&l(e,r,null,u[r],void 0,n)}else if(u.onClick)l(e,"onClick",null,u.onClick,void 0,n);else if(4&c&&tr(u.style))for(let e in u.style)u.style[e]}(a=u&&u.onVnodeBeforeMount)&&rd(a,n,t),d&&tX(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||d||y)&&lX(()=>{a&&rd(a,n,t),y&&h.enter(e),d&&tX(t,null,n,"mounted")},r)}return e.nextSibling},p=(e,t,l,s,o,u,f)=>{f=f||!!t.dynamicChildren;let p=t.children,d=p.length;for(let t=0;t<d;t++){let h=f?p[t]:p[t]=ru(p[t]),g=h.type===lQ;e?(g&&!f&&t+1<d&&ru(p[t+1]).type===lQ&&(a(r(e.data.slice(h.children.length)),l,i(e)),e.data=h.children),e=c(e,h,s,o,u,f)):g&&!h.children?a(h.el=r(""),l):(nN(l,1)||nk(),n(null,h,l,null,s,o,nE(l),u))}return e},d=(e,t,n,l,r,o)=>{let{slotScopeIds:c}=t;c&&(r=r?r.concat(c):c);let f=s(e),d=p(i(e),t,f,n,l,r,o);return d&&nT(d)&&"]"===d.data?i(t.anchor=d):(nk(),a(t.anchor=u("]"),f,d),d)},h=(e,t,l,r,a,u)=>{if(nN(e.parentElement,1)||nk(),t.el=null,u){let t=g(e);for(;;){let n=i(e);if(n&&n!==t)o(n);else break}}let c=i(e),f=s(e);return o(e),n(null,t,f,c,l,r,nE(f),a),l&&(l.vnode.el=t.el,lw(l,t.el)),c},g=(e,t="[",n="]")=>{let l=0;for(;e;)if((e=i(e))&&nT(e)&&(e.data===t&&l++,e.data===n))if(0===l)return i(e);else l--;return e},_=(e,t,n)=>{let l=t.parentNode;l&&l.replaceChild(e,t);let r=n;for(;r;)r.vnode.el===t&&(r.vnode.el=r.subTree.el=e),r=r.parent},m=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tW(),t._vnode=e;return}c(t.firstChild,e,null,null,null),tW(),t._vnode=e},c]}let nO="data-allow-mismatch",nR={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nN(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nO);)e=e.parentElement;let n=e&&e.getAttribute(nO);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(nR[t])}}let nP=G().requestIdleCallback||(e=>setTimeout(e,1)),nM=G().cancelIdleCallback||(e=>clearTimeout(e)),nI=e=>!!e.type.__asyncLoader;function nL(e,t){let{ref:n,props:l,children:r,ce:i}=t.vnode,s=ri(e,l,r);return s.ref=n,s.ce=i,delete t.vnode.ce,s}let nF=e=>e.type.__isKeepAlive;function nD(e,t){let n;if(T(e))return e.some(e=>nD(e,t));if(O(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,M.call(n))&&(e.lastIndex=0,e.test(t))}function nj(e,t){nU(e,"a",t)}function nV(e,t){nU(e,"da",t)}function nU(e,t,n=rv){let l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nH(t,l,n),n){let e=n.parent;for(;e&&e.parent;)nF(e.parent.vnode)&&function(e,t,n,l){let r=nH(t,e,l,!0);nX(()=>{w(l[t],r)},n)}(l,t,n,e),e=e.parent}}function nB(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function n$(e){return 128&e.shapeFlag?e.ssContent:e}function nH(e,t,n=rv,l=!1){if(n){let r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{eS();let r=rm(n),i=tR(t,n,e,l);return r(),eC(),i});return l?r.unshift(i):r.push(i),i}}let nW=e=>(t,n=rv)=>{rS&&"sp"!==e||nH(e,(...e)=>t(...e),n)},nK=nW("bm"),nz=nW("m"),nq=nW("bu"),nG=nW("u"),nJ=nW("bum"),nX=nW("um"),nZ=nW("sp"),nY=nW("rtg"),nQ=nW("rtc");function n0(e,t=rv){nH("ec",e,t)}let n1="components",n2=Symbol.for("v-ndc");function n6(e,t,n=!0,l=!1){let r=tz||rv;if(r){let n=r.type;if(e===n1){let e=rT(n,!1);if(e&&(e===t||e===j(t)||e===B(j(t))))return n}let i=n8(r[e]||n[e],t)||n8(r.appContext[e],t);return!i&&l?n:i}}function n8(e,t){return e&&(e[t]||e[j(t)]||e[B(j(t))])}let n4=e=>e?rb(e)?rE(e):n4(e.parent):null,n3=x(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>n4(e.parent),$root:e=>n4(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>lr(e),$forceUpdate:e=>e.f||(e.f=()=>{tU(e.update)}),$nextTick:e=>e.n||(e.n=tV.bind(e.proxy)),$watch:e=>t2.bind(e)}),n5=(e,t)=>e!==_&&!e.__isScriptSetup&&E(e,t),n9={get({_:e},t){let n,l;if("__v_skip"===t)return!0;let{ctx:r,setupState:i,data:s,props:o,accessCache:a,type:u,appContext:c}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return i[t];case 2:return s[t];case 4:return r[t];case 3:return o[t]}else{if(n5(i,t))return a[t]=1,i[t];if(s!==_&&E(s,t))return a[t]=2,s[t];if(E(o,t))return a[t]=3,o[t];if(r!==_&&E(r,t))return a[t]=4,r[t];ln&&(a[t]=0)}}let f=n3[t];return f?("$attrs"===t&&eN(e.attrs,"get",""),f(e)):(n=u.__cssModules)&&(n=n[t])?n:r!==_&&E(r,t)?(a[t]=4,r[t]):E(l=c.config.globalProperties,t)?l[t]:void 0},set({_:e},t,n){let{data:l,setupState:r,ctx:i}=e;return n5(r,t)?(r[t]=n,!0):l!==_&&E(l,t)?(l[t]=n,!0):!E(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:i,type:s}},o){let a;return!!(n[o]||e!==_&&"$"!==o[0]&&E(e,o)||n5(t,o)||E(i,o)||E(l,o)||E(n3,o)||E(r.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:E(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},n7=x({},n9,{get(e,t){if(t!==Symbol.unscopables)return n9.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!J(t)});function le(e){let t=r_();return t.setupContext||(t.setupContext=rk(t))}function lt(e){return T(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let ln=!0;function ll(e,t,n){tR(T(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function lr(e){let t,n=e.type,{mixins:l,extends:r}=n,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:i.length||l||r?(t={},i.length&&i.forEach(e=>li(t,e,o,!0)),li(t,n,o)):t=n,N(n)&&s.set(n,t),t}function li(e,t,n,l=!1){let{mixins:r,extends:i}=t;for(let s in i&&li(e,i,n,!0),r&&r.forEach(t=>li(e,t,n,!0)),t)if(l&&"expose"===s);else{let l=ls[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}let ls={data:lo,props:lf,emits:lf,methods:lc,computed:lc,beforeCreate:lu,created:lu,beforeMount:lu,mounted:lu,beforeUpdate:lu,updated:lu,beforeDestroy:lu,beforeUnmount:lu,destroyed:lu,unmounted:lu,activated:lu,deactivated:lu,errorCaptured:lu,serverPrefetch:lu,components:lc,directives:lc,watch:function(e,t){if(!e)return t;if(!t)return e;let n=x(Object.create(null),e);for(let l in t)n[l]=lu(e[l],t[l]);return n},provide:lo,inject:function(e,t){return lc(la(e),la(t))}};function lo(e,t){return t?e?function(){return x(A(e)?e.call(this,this):e,A(t)?t.call(this,this):t)}:t:e}function la(e){if(T(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function lu(e,t){return e?[...new Set([].concat(e,t))]:t}function lc(e,t){return e?x(Object.create(null),e,t):t}function lf(e,t){return e?T(e)&&T(t)?[...new Set([...e,...t])]:x(Object.create(null),lt(e),lt(null!=t?t:{})):t}function lp(){return{app:null,config:{isNativeTag:b,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ld=0,lh=null,lg=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${U(t)}Modifiers`];function lv(e,t,...n){let l;if(e.isUnmounted)return;let r=e.vnode.props||_,i=n,s=t.startsWith("update:"),o=s&&lg(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>O(e)?e.trim():e)),o.number&&(i=n.map(z)));let a=r[l=$(t)]||r[l=$(j(t))];!a&&s&&(a=r[l=$(U(t))]),a&&tR(a,e,6,i);let u=r[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,tR(u,e,6,i)}}let l_=new WeakMap;function lm(e,t){return!!e&&!!S(t)&&(E(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||E(e,U(t))||E(e,t))}function ly(e){let t,n,{type:l,vnode:r,proxy:i,withProxy:s,propsOptions:[o],slots:a,attrs:u,emit:c,render:f,renderCache:p,props:d,data:h,setupState:g,ctx:_,inheritAttrs:m}=e,y=tG(e);try{if(4&r.shapeFlag){let e=s||i;t=ru(f.call(e,e,p,d,g,h,_)),n=u}else t=ru(l.length>1?l(d,{attrs:u,slots:a,emit:c}):l(d,null)),n=l.props?u:lb(u)}catch(n){l2.length=0,tN(n,e,1),t=ri(l0)}let b=t;if(n&&!1!==m){let e=Object.keys(n),{shapeFlag:t}=b;e.length&&7&t&&(o&&e.some(C)&&(n=lS(n,o)),b=ro(b,n,!1,!0))}return r.dirs&&((b=ro(b,null,!1,!0)).dirs=b.dirs?b.dirs.concat(r.dirs):r.dirs),r.transition&&nv(b,r.transition),t=b,tG(y),t}let lb=e=>{let t;for(let n in e)("class"===n||"style"===n||S(n))&&((t||(t={}))[n]=e[n]);return t},lS=(e,t)=>{let n={};for(let l in e)C(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function lC(e,t,n){let l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let r=0;r<l.length;r++){let i=l[r];if(lx(t,e,i)&&!lm(n,i))return!0}return!1}function lx(e,t,n){let l=e[n],r=t[n];return"style"===n&&N(l)&&N(r)?!en(l,r):l!==r}function lw({vnode:e,parent:t},n){for(;t;){let l=t.subTree;if(l.suspense&&l.suspense.activeBranch===e&&(l.el=e.el),l===e)(e=t.vnode).el=n,t=t.parent;else break}}let lk={},lE=e=>Object.getPrototypeOf(e)===lk;function lT(e,t,n,l){let r,[i,s]=e.propsOptions,o=!1;if(t)for(let a in t){let u;if(L(a))continue;let c=t[a];i&&E(i,u=j(a))?s&&s.includes(u)?(r||(r={}))[u]=c:n[u]=c:lm(e.emitsOptions,a)||a in l&&c===l[a]||(l[a]=c,o=!0)}if(s){let t=ta(n),l=r||_;for(let r=0;r<s.length;r++){let o=s[r];n[o]=lA(i,t,o,l[o],e,!E(l,o))}}return o}function lA(e,t,n,l,r,i){let s=e[n];if(null!=s){let e=E(s,"default");if(e&&void 0===l){let e=s.default;if(s.type!==Function&&!s.skipFactory&&A(e)){let{propsDefaults:i}=r;if(n in i)l=i[n];else{let s=rm(r);l=i[n]=e.call(null,t),s()}}else l=e;r.ce&&r.ce._setProp(n,l)}s[0]&&(i&&!e?l=!1:s[1]&&(""===l||l===U(n))&&(l=!0))}return l}let lO=new WeakMap;function lR(e){return!("$"===e[0]||L(e))}let lN=e=>"_"===e||"_ctx"===e||"$stable"===e,lP=e=>T(e)?e.map(ru):[ru(e)],lM=(e,t,n)=>{if(t._n)return t;let l=tJ((...e)=>lP(t(...e)),n);return l._c=!1,l},lI=(e,t,n)=>{let l=e._ctx;for(let n in e){if(lN(n))continue;let r=e[n];if(A(r))t[n]=lM(n,r,l);else if(null!=r){let e=lP(r);t[n]=()=>e}}},lL=(e,t)=>{let n=lP(t);e.slots.default=()=>n},lF=(e,t,n)=>{for(let l in t)(n||!lN(l))&&(e[l]=t[l])},lD=lX;function lj(e){return lV(e,nA)}function lV(e,t){var n;let l,r;G().__VUE__=!0;let{insert:i,remove:s,patchProp:o,createElement:a,createText:c,createComment:f,setText:p,setElementText:d,parentNode:h,nextSibling:g,setScopeId:b=y,insertStaticContent:S}=e,C=(e,t,n,l=null,r=null,i=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!rt(e,t)&&(l=es(e),et(e,r,i,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:u,ref:c,shapeFlag:f}=t;switch(u){case lQ:w(e,t,n,l);break;case l0:k(e,t,n,l);break;case l1:null==e&&O(t,n,l,s);break;case lY:$(e,t,n,l,r,i,s,o,a);break;default:1&f?R(e,t,n,l,r,i,s,o,a):6&f?H(e,t,n,l,r,i,s,o,a):64&f?u.process(e,t,n,l,r,i,s,o,a,ef):128&f&&u.process(e,t,n,l,r,i,s,o,a,ef)}null!=c&&r?nC(c,e&&e.ref,i,t||e,!t):null==c&&e&&null!=e.ref&&nC(e.ref,null,i,e,!0)},w=(e,t,n,l)=>{if(null==e)i(t.el=c(t.children),n,l);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},k=(e,t,n,l)=>{null==e?i(t.el=f(t.children||""),n,l):t.el=e.el},O=(e,t,n,l)=>{[e.el,e.anchor]=S(e.children,t,n,l,e.el,e.anchor)},R=(e,t,n,l,r,i,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)M(t,n,l,r,i,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),D(e,t,r,i,s,o,a)}finally{n&&n._endPatch()}}},M=(e,t,n,l,r,s,u,c)=>{let f,p,{props:h,shapeFlag:g,transition:_,dirs:m}=e;if(f=e.el=a(e.type,s,h&&h.is,h),8&g?d(f,e.children):16&g&&F(e.children,f,null,l,r,lU(e,s),u,c),m&&tX(e,null,l,"created"),I(f,e,e.scopeId,u,l),h){for(let e in h)"value"===e||L(e)||o(f,e,null,h[e],s,l);"value"in h&&o(f,"value",null,h.value,s),(p=h.onVnodeBeforeMount)&&rd(p,l,e)}m&&tX(e,null,l,"beforeMount");let y=l$(r,_);y&&_.beforeEnter(f),i(f,t,n),((p=h&&h.onVnodeMounted)||y||m)&&lD(()=>{p&&rd(p,l,e),y&&_.enter(f),m&&tX(e,null,l,"mounted")},r)},I=(e,t,n,l,r)=>{if(n&&b(e,n),l)for(let t=0;t<l.length;t++)b(e,l[t]);if(r){let n=r.subTree;if(t===n||lK(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=r.vnode;I(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},F=(e,t,n,l,r,i,s,o,a=0)=>{for(let u=a;u<e.length;u++)C(null,e[u]=o?rc(e[u]):ru(e[u]),t,n,l,r,i,s,o)},D=(e,t,n,l,r,i,s)=>{let a,u=t.el=e.el,{patchFlag:c,dynamicChildren:f,dirs:p}=t;c|=16&e.patchFlag;let h=e.props||_,g=t.props||_;if(n&&lB(n,!1),(a=g.onVnodeBeforeUpdate)&&rd(a,n,t,e),p&&tX(t,e,n,"beforeUpdate"),n&&lB(n,!0),(h.innerHTML&&null==g.innerHTML||h.textContent&&null==g.textContent)&&d(u,""),f?V(e.dynamicChildren,f,u,n,l,lU(t,r),i):s||Z(e,t,u,null,n,l,lU(t,r),i,!1),c>0){if(16&c)B(u,h,g,n,r);else if(2&c&&h.class!==g.class&&o(u,"class",null,g.class,r),4&c&&o(u,"style",h.style,g.style,r),8&c){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let l=e[t],i=h[l],s=g[l];(s!==i||"value"===l)&&o(u,l,i,s,r,n)}}1&c&&e.children!==t.children&&d(u,t.children)}else s||null!=f||B(u,h,g,n,r);((a=g.onVnodeUpdated)||p)&&lD(()=>{a&&rd(a,n,t,e),p&&tX(t,e,n,"updated")},l)},V=(e,t,n,l,r,i,s)=>{for(let o=0;o<t.length;o++){let a=e[o],u=t[o],c=a.el&&(a.type===lY||!rt(a,u)||198&a.shapeFlag)?h(a.el):n;C(a,u,c,null,l,r,i,s,!0)}},B=(e,t,n,l,r)=>{if(t!==n){if(t!==_)for(let i in t)L(i)||i in n||o(e,i,t[i],null,r,l);for(let i in n){if(L(i))continue;let s=n[i],a=t[i];s!==a&&"value"!==i&&o(e,i,a,s,r,l)}"value"in n&&o(e,"value",t.value,n.value,r)}},$=(e,t,n,l,r,s,o,a,u)=>{let f=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:d,dynamicChildren:h,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(i(f,n,l),i(p,n,l),F(t.children||[],n,p,r,s,o,a,u)):d>0&&64&d&&h&&e.dynamicChildren&&e.dynamicChildren.length===h.length?(V(e.dynamicChildren,h,n,r,s,o,a),(null!=t.key||r&&t===r.subTree)&&lH(e,t,!0)):Z(e,t,n,p,r,s,o,a,u)},H=(e,t,n,l,r,i,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?r.ctx.activate(t,n,l,s,a):z(t,n,l,r,i,s,a):q(e,t,a)},z=(e,t,n,l,r,i,s)=>{var o,a,c;let f,p,d,h=(o=e,a=l,c=r,f=o.type,p=(a?a.appContext:o.appContext)||rh,(d={uid:rg++,vnode:o,type:f,parent:a,appContext:p,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ea(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(p.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,l=!1){let r=l?lO:n.propsCache,i=r.get(t);if(i)return i;let s=t.props,o={},a=[],u=!1;if(!A(t)){let r=t=>{u=!0;let[l,r]=e(t,n,!0);x(o,l),r&&a.push(...r)};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!s&&!u)return N(t)&&r.set(t,m),m;if(T(s))for(let e=0;e<s.length;e++){let t=j(s[e]);lR(t)&&(o[t]=_)}else if(s)for(let e in s){let t=j(e);if(lR(t)){let n=s[e],l=o[t]=T(n)||A(n)?{type:n}:x({},n),r=l.type,i=!1,u=!0;if(T(r))for(let e=0;e<r.length;++e){let t=r[e],n=A(t)&&t.name;if("Boolean"===n){i=!0;break}"String"===n&&(u=!1)}else i=A(r)&&"Boolean"===r.name;l[0]=i,l[1]=u,(i||E(l,"default"))&&a.push(t)}}let c=[o,a];return N(t)&&r.set(t,c),c}(f,p),emitsOptions:function e(t,n,l=!1){let r=l?l_:n.emitsCache,i=r.get(t);if(void 0!==i)return i;let s=t.emits,o={},a=!1;if(!A(t)){let r=t=>{let l=e(t,n,!0);l&&(a=!0,x(o,l))};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return s||a?(T(s)?s.forEach(e=>o[e]=null):x(o,s),N(t)&&r.set(t,o),o):(N(t)&&r.set(t,null),null)}(f,p),emit:null,emitted:null,propsDefaults:_,inheritAttrs:f.inheritAttrs,ctx:_,data:_,props:_,attrs:_,slots:_,refs:_,setupState:_,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:d},d.root=a?a.root:d,d.emit=lv.bind(null,d),o.ce&&o.ce(d),e.component=d);if(nF(e)&&(h.ctx.renderer=ef),function(e,t=!1,n=!1){t&&u(t);let{props:l,children:r}=e.vnode,i=rb(e);!function(e,t,n,l=!1){let r={},i=Object.create(lk);for(let n in e.propsDefaults=Object.create(null),lT(e,t,r,i),e.propsOptions[0])n in r||(r[n]=void 0);n?e.props=l?r:tt(r):e.type.props?e.props=r:e.props=i,e.attrs=i}(e,l,i,t);var s=n||t;let o=e.slots=Object.create(lk);if(32&e.vnode.shapeFlag){let e=r._;e?(lF(o,r,s),s&&K(o,"_",e,!0)):lI(r,o)}else r&&lL(e,r);i&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,n9);let{setup:l}=n;if(l){eS();let n=e.setupContext=l.length>1?rk(e):null,r=rm(e),i=tO(l,e,0,[e.props,n]),s=P(i);if(eC(),r(),(s||e.sp)&&!nI(e)&&ny(e),s){if(i.then(ry,ry),t)return i.then(n=>{rC(e,n,t)}).catch(t=>{tN(t,e,0)});e.asyncDep=i}else rC(e,i,t)}else rx(e,t)}(e,t),t&&u(!1)}(h,!1,s),h.asyncDep){if(r&&r.registerDep(h,J,s),!e.el){let l=h.subTree=ri(l0);k(null,l,t,n),e.placeholder=l.el}}else J(h,e,t,n,r,i,s)},q=(e,t,n)=>{let l=t.component=e.component;if(function(e,t,n){let{props:l,children:r,component:i}=e,{props:s,children:o,patchFlag:a}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!r||!!o)&&(!o||!o.$stable)||l!==s&&(l?!s||lC(l,s,u):!!s);if(1024&a)return!0;if(16&a)return l?lC(l,s,u):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(lx(s,l,n)&&!lm(u,n))return!0}}return!1}(e,t,n))if(l.asyncDep&&!l.asyncResolved)return void X(l,t,n);else l.next=t,l.update();else t.el=e.el,l.vnode=t},J=(e,t,n,l,i,s,o)=>{e.scope.on();let a=e.effect=new ec(()=>{if(e.isMounted){let t,{next:n,bu:l,u:r,parent:a,vnode:c}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=c.el,X(e,n,o)),t.asyncDep.then(()=>{lD(()=>{e.isUnmounted||u()},i)});return}}let f=n;lB(e,!1),n?(n.el=c.el,X(e,n,o)):n=c,l&&W(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&rd(t,a,n,c),lB(e,!0);let p=ly(e),d=e.subTree;e.subTree=p,C(d,p,h(d.el),es(d),e,i,s),n.el=p.el,null===f&&lw(e,p.el),r&&lD(r,i),(t=n.props&&n.props.onVnodeUpdated)&&lD(()=>rd(t,a,n,c),i)}else{let o,{el:a,props:u}=t,{bm:c,m:f,parent:p,root:d,type:h}=e,g=nI(t);if(lB(e,!1),c&&W(c),!g&&(o=u&&u.onVnodeBeforeMount)&&rd(o,p,t),lB(e,!0),a&&r){let t=()=>{e.subTree=ly(e),r(a,e.subTree,e,i,null)};g&&h.__asyncHydrate?h.__asyncHydrate(a,e,t):t()}else{d.ce&&d.ce._hasShadowRoot()&&d.ce._injectChildStyle(h);let r=e.subTree=ly(e);C(null,r,n,l,e,i,s),t.el=r.el}if(f&&lD(f,i),!g&&(o=u&&u.onVnodeMounted)){let e=t;lD(()=>rd(o,p,e),i)}(256&t.shapeFlag||p&&nI(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&lD(e.a,i),e.isMounted=!0,t=n=l=null}});e.scope.off();let u=e.update=a.run.bind(a),c=e.job=a.runIfDirty.bind(a);c.i=e,c.id=e.uid,a.scheduler=()=>tU(c),lB(e,!0),u()},X=(e,t,n)=>{t.component=e;let l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){let{props:r,attrs:i,vnode:{patchFlag:s}}=e,o=ta(r),[a]=e.propsOptions,u=!1;if((l||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){let s=n[l];if(lm(e.emitsOptions,s))continue;let c=t[s];if(a)if(E(i,s))c!==i[s]&&(i[s]=c,u=!0);else{let t=j(s);r[t]=lA(a,o,t,c,e,!1)}else c!==i[s]&&(i[s]=c,u=!0)}}}else{let l;for(let s in lT(e,t,r,i)&&(u=!0),o)t&&(E(t,s)||(l=U(s))!==s&&E(t,l))||(a?n&&(void 0!==n[s]||void 0!==n[l])&&(r[s]=lA(a,o,s,void 0,e,!0)):delete r[s]);if(i!==o)for(let e in i)t&&E(t,e)||(delete i[e],u=!0)}u&&eP(e.attrs,"set","")}(e,t.props,l,n),((e,t,n)=>{let{vnode:l,slots:r}=e,i=!0,s=_;if(32&l.shapeFlag){let e=t._;e?n&&1===e?i=!1:lF(r,t,n):(i=!t.$stable,lI(t,r)),s=t}else t&&(lL(e,t),s={default:1});if(i)for(let e in r)lN(e)||null!=s[e]||delete r[e]})(e,t.children,n),eS(),tH(e),eC()},Z=(e,t,n,l,r,i,s,o,a=!1)=>{let u=e&&e.children,c=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void Q(u,f,n,l,r,i,s,o,a);else if(256&p)return void Y(u,f,n,l,r,i,s,o,a)}8&h?(16&c&&ei(u,r,i),f!==u&&d(n,f)):16&c?16&h?Q(u,f,n,l,r,i,s,o,a):ei(u,r,i,!0):(8&c&&d(n,""),16&h&&F(f,n,l,r,i,s,o,a))},Y=(e,t,n,l,r,i,s,o,a)=>{let u;e=e||m,t=t||m;let c=e.length,f=t.length,p=Math.min(c,f);for(u=0;u<p;u++){let l=t[u]=a?rc(t[u]):ru(t[u]);C(e[u],l,n,null,r,i,s,o,a)}c>f?ei(e,r,i,!0,!1,p):F(t,n,l,r,i,s,o,a,p)},Q=(e,t,n,l,r,i,s,o,a)=>{let u=0,c=t.length,f=e.length-1,p=c-1;for(;u<=f&&u<=p;){let l=e[u],c=t[u]=a?rc(t[u]):ru(t[u]);if(rt(l,c))C(l,c,n,null,r,i,s,o,a);else break;u++}for(;u<=f&&u<=p;){let l=e[f],u=t[p]=a?rc(t[p]):ru(t[p]);if(rt(l,u))C(l,u,n,null,r,i,s,o,a);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,f=e<c?t[e].el:l;for(;u<=p;)C(null,t[u]=a?rc(t[u]):ru(t[u]),n,f,r,i,s,o,a),u++}}else if(u>p)for(;u<=f;)et(e[u],r,i,!0),u++;else{let d,h=u,g=u,_=new Map;for(u=g;u<=p;u++){let e=t[u]=a?rc(t[u]):ru(t[u]);null!=e.key&&_.set(e.key,u)}let y=0,b=p-g+1,S=!1,x=0,w=Array(b);for(u=0;u<b;u++)w[u]=0;for(u=h;u<=f;u++){let l,c=e[u];if(y>=b){et(c,r,i,!0);continue}if(null!=c.key)l=_.get(c.key);else for(d=g;d<=p;d++)if(0===w[d-g]&&rt(c,t[d])){l=d;break}void 0===l?et(c,r,i,!0):(w[l-g]=u+1,l>=x?x=l:S=!0,C(c,t[l],n,null,r,i,s,o,a),y++)}let k=S?function(e){let t,n,l,r,i,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(l=0,r=o.length-1;l<r;)e[o[i=l+r>>1]]<a?l=i+1:r=i;a<e[o[l]]&&(l>0&&(s[t]=o[l-1]),o[l]=t)}}for(l=o.length,r=o[l-1];l-- >0;)o[l]=r,r=s[r];return o}(w):m;for(d=k.length-1,u=b-1;u>=0;u--){let e=g+u,f=t[e],p=t[e+1],h=e+1<c?p.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(p):l;0===w[u]?C(null,f,n,h,r,i,s,o,a):S&&(d<0||u!==k[d]?ee(f,n,h,2):d--)}}},ee=(e,t,n,l,r=null)=>{let{el:o,type:a,transition:u,children:c,shapeFlag:f}=e;if(6&f)return void ee(e.component.subTree,t,n,l);if(128&f)return void e.suspense.move(t,n,l);if(64&f)return void a.move(e,t,n,ef);if(a===lY){i(o,t,n);for(let e=0;e<c.length;e++)ee(c[e],t,n,l);i(e.anchor,t,n);return}if(a===l1)return void(({el:e,anchor:t},n,l)=>{let r;for(;e&&e!==t;)r=g(e),i(e,n,l),e=r;i(t,n,l)})(e,t,n);if(2!==l&&1&f&&u)if(0===l)u.beforeEnter(o),i(o,t,n),lD(()=>u.enter(o),r);else{let{leave:l,delayLeave:r,afterLeave:a}=u,c=()=>{e.ctx.isUnmounted?s(o):i(o,t,n)},f=()=>{o._isLeaving&&o[nr](!0),l(o,()=>{c(),a&&a()})};r?r(o,c,f):f()}else i(o,t,n)},et=(e,t,n,l=!1,r=!1)=>{let i,{type:s,props:o,ref:a,children:u,dynamicChildren:c,shapeFlag:f,patchFlag:p,dirs:d,cacheIndex:h}=e;if(-2===p&&(r=!1),null!=a&&(eS(),nC(a,null,n,e,!0),eC()),null!=h&&(t.renderCache[h]=void 0),256&f)return void t.ctx.deactivate(e);let g=1&f&&d,_=!nI(e);if(_&&(i=o&&o.onVnodeBeforeUnmount)&&rd(i,t,e),6&f)er(e.component,n,l);else{if(128&f)return void e.suspense.unmount(n,l);g&&tX(e,null,t,"beforeUnmount"),64&f?e.type.remove(e,t,n,ef,l):c&&!c.hasOnce&&(s!==lY||p>0&&64&p)?ei(c,t,n,!1,!0):(s===lY&&384&p||!r&&16&f)&&ei(u,t,n),l&&en(e)}(_&&(i=o&&o.onVnodeUnmounted)||g)&&lD(()=>{i&&rd(i,t,e),g&&tX(e,null,t,"unmounted")},n)},en=e=>{let{type:t,el:n,anchor:l,transition:r}=e;if(t===lY)return void el(n,l);if(t===l1)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let i=()=>{s(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){let{leave:t,delayLeave:l}=r,s=()=>t(n,i);l?l(e.el,i,s):s()}else i()},el=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},er=(e,t,n)=>{let{bum:l,scope:r,job:i,subTree:s,um:o,m:a,a:u}=e;lW(a),lW(u),l&&W(l),r.stop(),i&&(i.flags|=8,et(s,e,t,n)),o&&lD(o,t),lD(()=>{e.isUnmounted=!0},t)},ei=(e,t,n,l=!1,r=!1,i=0)=>{for(let s=i;s<e.length;s++)et(e[s],t,n,l,r)},es=e=>{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[t8];return n?g(n):t},eo=!1,eu=(e,t,n)=>{let l;null==e?t._vnode&&(et(t._vnode,null,null,!0),l=t._vnode.component):C(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tH(l),tW(),eo=!1)},ef={p:C,um:et,m:ee,r:en,mt:z,mc:F,pc:Z,pbc:V,n:es,o:e};return t&&([l,r]=t(ef)),{render:eu,hydrate:l,createApp:(n=l,function(e,t=null){A(e)||(e=x({},e)),null==t||N(t)||(t=null);let l=lp(),r=new WeakSet,i=[],s=!1,o=l.app={_uid:ld++,_component:e,_props:t,_container:null,_context:l,_instance:null,version:rN,get config(){return l.config},set config(v){},use:(e,...t)=>(r.has(e)||(e&&A(e.install)?(r.add(e),e.install(o,...t)):A(e)&&(r.add(e),e(o,...t))),o),mixin:e=>(l.mixins.includes(e)||l.mixins.push(e),o),component:(e,t)=>t?(l.components[e]=t,o):l.components[e],directive:(e,t)=>t?(l.directives[e]=t,o):l.directives[e],mount(r,i,a){if(!s){let u=o._ceVNode||ri(e,t);return u.appContext=l,!0===a?a="svg":!1===a&&(a=void 0),i&&n?n(u,r):eu(u,r,a),s=!0,o._container=r,r.__vue_app__=o,rE(u.component)}},onUnmount(e){i.push(e)},unmount(){s&&(tR(i,o._instance,16),eu(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(l.provides[e]=t,o),runWithContext(e){let t=lh;lh=o;try{return e()}finally{lh=t}}};return o})}}function lU({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function lB({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function l$(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function lH(e,t,n=!1){let l=e.children,r=t.children;if(T(l)&&T(r))for(let e=0;e<l.length;e++){let t=l[e],i=r[e];1&i.shapeFlag&&!i.dynamicChildren&&((i.patchFlag<=0||32===i.patchFlag)&&((i=r[e]=rc(r[e])).el=t.el),n||-2===i.patchFlag||lH(t,i)),i.type===lQ&&(-1===i.patchFlag&&(i=r[e]=rc(i)),i.el=t.el),i.type!==l0||i.el||(i.el=t.el)}}function lW(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let lK=e=>e.__isSuspense,lz=0;function lq(e,t){let n=e.props&&e.props[t];A(n)&&n()}function lG(e,t,n,l,r,i,s,o,a,u,c=!1){var f;let p,d,{p:h,m:g,um:_,n:m,o:{parentNode:y,remove:b}}=u,S=null!=(p=(f=e).props&&f.props.suspensible)&&!1!==p;S&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let C=e.props?q(e.props.timeout):void 0,x=i,w={vnode:e,parent:t,parentComponent:n,namespace:s,container:l,hiddenContainer:r,deps:0,pendingId:lz++,timeout:"number"==typeof C?C:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:l,activeBranch:r,pendingBranch:s,pendingId:o,effects:a,parentComponent:u,container:c,isInFallback:f}=w,p=!1;w.isHydrating?w.isHydrating=!1:!e&&((p=r&&s.transition&&"out-in"===s.transition.mode)&&(r.transition.afterLeave=()=>{o===w.pendingId&&(g(s,c,i===x?m(r):i,0),t$(a),f&&l.ssFallback&&(l.ssFallback.el=null))}),r&&(y(r.el)===c&&(i=m(r)),_(r,u,w,!0),!p&&f&&l.ssFallback&&lD(()=>l.ssFallback.el=null,w)),p||g(s,c,i,0)),lZ(w,s),w.pendingBranch=null,w.isInFallback=!1;let h=w.parent,b=!1;for(;h;){if(h.pendingBranch){h.effects.push(...a),b=!0;break}h=h.parent}b||p||t$(a),w.effects=[],S&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),lq(l,"onResolve")},fallback(e){if(!w.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:l,container:r,namespace:i}=w;lq(t,"onFallback");let s=m(n),u=()=>{w.isInFallback&&(h(null,e,r,s,l,null,i,o,a),lZ(w,e))},c=e.transition&&"out-in"===e.transition.mode;c&&(n.transition.afterLeave=u),w.isInFallback=!0,_(n,l,null,!0),c||u()},move(e,t,n){w.activeBranch&&g(w.activeBranch,e,t,n),w.container=e},next:()=>w.activeBranch&&m(w.activeBranch),registerDep(e,t,n){let l=!!w.pendingBranch;l&&w.deps++;let r=e.vnode.el;e.asyncDep.catch(t=>{tN(t,e,0)}).then(i=>{if(e.isUnmounted||w.isUnmounted||w.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;rC(e,i,!1),r&&(o.el=r);let a=!r&&e.subTree.el;t(e,o,y(r||e.subTree.el),r?null:m(e.subTree),w,s,n),a&&(o.placeholder=null,b(a)),lw(e,o.el),l&&0==--w.deps&&w.resolve()})},unmount(e,t){w.isUnmounted=!0,w.activeBranch&&_(w.activeBranch,n,e,t),w.pendingBranch&&_(w.pendingBranch,n,e,t)}};return w}function lJ(e){let t;if(A(e)){let n=l3&&e._c;n&&(e._d=!1,l8()),e=e(),n&&(e._d=!0,t=l6,l4())}return T(e)&&(e=function(e,t=!0){let n;for(let t=0;t<e.length;t++){let l=e[t];if(!re(l))return;if(l.type!==l0||"v-if"===l.children)if(n)return;else n=l}return n}(e)),e=ru(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function lX(e,t){t&&t.pendingBranch?T(e)?t.effects.push(...e):t.effects.push(e):t$(e)}function lZ(e,t){e.activeBranch=t;let{vnode:n,parentComponent:l}=e,r=t.el;for(;!r&&t.component;)r=(t=t.component.subTree).el;n.el=r,l&&l.subTree===n&&(l.vnode.el=r,lw(l,r))}let lY=Symbol.for("v-fgt"),lQ=Symbol.for("v-txt"),l0=Symbol.for("v-cmt"),l1=Symbol.for("v-stc"),l2=[],l6=null;function l8(e=!1){l2.push(l6=e?null:[])}function l4(){l2.pop(),l6=l2[l2.length-1]||null}let l3=1;function l5(e,t=!1){l3+=e,e<0&&l6&&t&&(l6.hasOnce=!0)}function l9(e){return e.dynamicChildren=l3>0?l6||m:null,l4(),l3>0&&l6&&l6.push(e),e}function l7(e,t,n,l,r){return l9(ri(e,t,n,l,r,!0))}function re(e){return!!e&&!0===e.__v_isVNode}function rt(e,t){return e.type===t.type&&e.key===t.key}let rn=({key:e})=>null!=e?e:null,rl=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?O(e)||tp(e)||A(e)?{i:tz,r:e,k:t,f:!!n}:e:null);function rr(e,t=null,n=null,l=0,r=null,i=+(e!==lY),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&rn(t),ref:t&&rl(t),scopeId:tq,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:l,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:tz};return o?(rf(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=O(n)?8:16),l3>0&&!s&&l6&&(a.patchFlag>0||6&i)&&32!==a.patchFlag&&l6.push(a),a}let ri=function(e,t=null,n=null,l=0,r=null,i=!1){var s;if(e&&e!==n2||(e=l0),re(e)){let l=ro(e,t,!0);return n&&rf(l,n),l3>0&&!i&&l6&&(6&l.shapeFlag?l6[l6.indexOf(e)]=l:l6.push(l)),l.patchFlag=-2,l}if(A(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=rs(t);e&&!O(e)&&(t.class=ee(e)),N(n)&&(to(n)&&!T(n)&&(n=x({},n)),t.style=X(n))}let o=O(e)?1:lK(e)?128:e.__isTeleport?64:N(e)?4:2*!!A(e);return rr(e,t,n,l,r,o,i,!0)};function rs(e){return e?to(e)||lE(e)?x({},e):e:null}function ro(e,t,n=!1,l=!1){let{props:r,ref:i,patchFlag:s,children:o,transition:a}=e,u=t?rp(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&rn(u),ref:t&&t.ref?n&&i?T(i)?i.concat(rl(t)):[i,rl(t)]:rl(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==lY?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ro(e.ssContent),ssFallback:e.ssFallback&&ro(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&l&&nv(c,a.clone(c)),c}function ra(e=" ",t=0){return ri(lQ,null,e,t)}function ru(e){return null==e||"boolean"==typeof e?ri(l0):T(e)?ri(lY,null,e.slice()):re(e)?rc(e):ri(lQ,null,String(e))}function rc(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ro(e)}function rf(e,t){let n=0,{shapeFlag:l}=e;if(null==t)t=null;else if(T(t))n=16;else if("object"==typeof t)if(65&l){let n=t.default;n&&(n._c&&(n._d=!1),rf(e,n()),n._c&&(n._d=!0));return}else{n=32;let l=t._;l||lE(t)?3===l&&tz&&(1===tz.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=tz}else A(t)?(t={default:t,_ctx:tz},n=32):(t=String(t),64&l?(n=16,t=[ra(t)]):n=8);e.children=t,e.shapeFlag|=n}function rp(...e){let t={};for(let n=0;n<e.length;n++){let l=e[n];for(let e in l)if("class"===e)t.class!==l.class&&(t.class=ee([t.class,l.class]));else if("style"===e)t.style=X([t.style,l.style]);else if(S(e)){let n=t[e],r=l[e];r&&n!==r&&!(T(n)&&n.includes(r))&&(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=l[e])}return t}function rd(e,t,n,l=null){tR(e,t,7,[n,l])}let rh=lp(),rg=0,rv=null,r_=()=>rv||tz;a=e=>{rv=e},u=e=>{rS=e};let rm=e=>{let t=rv;return a(e),e.scope.on(),()=>{e.scope.off(),a(t)}},ry=()=>{rv&&rv.scope.off(),a(null)};function rb(e){return 4&e.vnode.shapeFlag}let rS=!1;function rC(e,t,n){A(t)?e.render=t:N(t)&&(e.setupState=ty(t)),rx(e,n)}function rx(e,t,n){let l=e.type;if(!e.render){if(!t&&c&&!l.render){let t=l.template||lr(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:i,compilerOptions:s}=l,o=x(x({isCustomElement:n,delimiters:i},r),s);l.render=c(t,o)}}e.render=l.render||y,f&&f(e)}{let t=rm(e);eS();try{!function(e){let t=lr(e),n=e.proxy,l=e.ctx;ln=!1,t.beforeCreate&&ll(t.beforeCreate,e,"bc");let{data:r,computed:i,methods:s,watch:o,provide:a,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:d,updated:h,activated:g,deactivated:_,beforeUnmount:m,unmounted:b,render:S,renderTracked:C,renderTriggered:x,errorCaptured:w,serverPrefetch:k,expose:E,inheritAttrs:R,components:P,directives:M}=t;if(u&&function(e,t,n=y){for(let n in T(e)&&(e=la(e)),e){let l,r=e[n];tp(l=N(r)?"default"in r?tY(r.from||n,r.default,!0):tY(r.from||n):tY(r))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(u,l,null),s)for(let e in s){let t=s[e];A(t)&&(l[e]=t.bind(n))}if(r){let t=r.call(n,n);N(t)&&(e.data=te(t))}if(ln=!0,i)for(let e in i){let t=i[e],r=A(t)?t.bind(n,n):A(t.get)?t.get.bind(n,n):y,s=rA({get:r,set:!A(t)&&A(t.set)?t.set.bind(n):y});Object.defineProperty(l,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,l,r){let i=r.includes(".")?t6(l,r):()=>l[r];if(O(t)){let e=n[t];A(e)&&t1(i,e,void 0)}else if(A(t))t1(i,t.bind(l),void 0);else if(N(t))if(T(t))t.forEach(t=>e(t,n,l,r));else{let e=A(t.handler)?t.handler.bind(l):n[t.handler];A(e)&&t1(i,e,t)}}(o[e],l,n,e);if(a){let e=A(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{tZ(t,e[t])})}function I(e,t){T(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(c&&ll(c,e,"c"),I(nK,f),I(nz,p),I(nq,d),I(nG,h),I(nj,g),I(nV,_),I(n0,w),I(nQ,C),I(nY,x),I(nJ,m),I(nX,b),I(nZ,k),T(E))if(E.length){let t=e.exposed||(e.exposed={});E.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===y&&(e.render=S),null!=R&&(e.inheritAttrs=R),P&&(e.components=P),M&&(e.directives=M)}(e)}finally{eC(),t()}}}let rw={get:(e,t)=>(eN(e,"get",""),e[t])};function rk(e){return{attrs:new Proxy(e.attrs,rw),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function rE(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ty(tu(e.exposed)),{get:(t,n)=>n in t?t[n]:n in n3?n3[n](e):void 0,has:(e,t)=>t in e||t in n3})):e.proxy}function rT(e,t=!0){return A(e)?e.displayName||e.name:e.name||t&&e.__name}let rA=(e,t)=>(function(e,t=!1){let n,l;return A(e)?n=e:(n=e.get,l=e.set),new tw(n,l,t)})(e,rS);function rO(e,t,n){try{l5(-1);let l=arguments.length;if(2!==l)return l>3?n=Array.prototype.slice.call(arguments,2):3===l&&re(n)&&(n=[n]),ri(e,t,n);if(!N(t)||T(t))return ri(e,null,t);if(re(t))return ri(e,null,[t]);return ri(e,t)}finally{l5(1)}}function rR(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(H(n[e],t[e]))return!1;return l3>0&&l6&&l6.push(e),!0}let rN="3.5.28",rP="u">typeof window&&window.trustedTypes;if(rP)try{h=rP.createPolicy("vue",{createHTML:e=>e})}catch(e){}let rM=h?e=>h.createHTML(e):e=>e,rI="u">typeof document?document:null,rL=rI&&rI.createElement("template"),rF={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{let r="svg"===t?rI.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?rI.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?rI.createElement(e,{is:n}):rI.createElement(e);return"select"===e&&l&&null!=l.multiple&&r.setAttribute("multiple",l.multiple),r},createText:e=>rI.createTextNode(e),createComment:e=>rI.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>rI.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,l,r,i){let s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{rL.innerHTML=rM("svg"===l?`<svg>${e}</svg>`:"mathml"===l?`<math>${e}</math>`:e);let r=rL.content;if("svg"===l||"mathml"===l){let e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rD="transition",rj="animation",rV=Symbol("_vtc"),rU={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},rB=x({},na,rU),r$=((t=(e,{slots:t})=>rO(nf,rK(e),t)).displayName="Transition",t.props=rB,t),rH=(e,t=[])=>{T(e)?e.forEach(e=>e(...t)):e&&e(...t)},rW=e=>!!e&&(T(e)?e.some(e=>e.length>1):e.length>1);function rK(e){let t={};for(let n in e)n in rU||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:l,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:u=s,appearToClass:c=o,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;{if(N(e))return[function(e){return q(e)}(e.enter),function(e){return q(e)}(e.leave)];let t=function(e){return q(e)}(e);return[t,t]}}(r),g=h&&h[0],_=h&&h[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:b,onLeave:S,onLeaveCancelled:C,onBeforeAppear:w=m,onAppear:k=y,onAppearCancelled:E=b}=t,T=(e,t,n,l)=>{e._enterCancelled=l,rq(e,t?c:o),rq(e,t?u:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,rq(e,f),rq(e,d),rq(e,p),t&&t()},O=e=>(t,n)=>{let r=e?k:y,s=()=>T(t,e,n);rH(r,[t,s]),rG(()=>{rq(t,e?a:i),rz(t,e?c:o),rW(r)||rX(t,l,g,s)})};return x(t,{onBeforeEnter(e){rH(m,[e]),rz(e,i),rz(e,s)},onBeforeAppear(e){rH(w,[e]),rz(e,a),rz(e,u)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);rz(e,f),e._enterCancelled?(rz(e,p),r0(e)):(r0(e),rz(e,p)),rG(()=>{e._isLeaving&&(rq(e,f),rz(e,d),rW(S)||rX(e,l,_,n))}),rH(S,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),rH(b,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),rH(E,[e])},onLeaveCancelled(e){A(e),rH(C,[e])}})}function rz(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[rV]||(e[rV]=new Set)).add(t)}function rq(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[rV];n&&(n.delete(t),n.size||(e[rV]=void 0))}function rG(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let rJ=0;function rX(e,t,n,l){let r=e._endId=++rJ,i=()=>{r===e._endId&&l()};if(null!=n)return setTimeout(i,n);let{type:s,timeout:o,propCount:a}=rZ(e,t);if(!s)return l();let u=s+"end",c=0,f=()=>{e.removeEventListener(u,p),i()},p=t=>{t.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},o+1),e.addEventListener(u,p)}function rZ(e,t){let n=window.getComputedStyle(e),l=e=>(n[e]||"").split(", "),r=l(`${rD}Delay`),i=l(`${rD}Duration`),s=rY(r,i),o=l(`${rj}Delay`),a=l(`${rj}Duration`),u=rY(o,a),c=null,f=0,p=0;t===rD?s>0&&(c=rD,f=s,p=i.length):t===rj?u>0&&(c=rj,f=u,p=a.length):p=(c=(f=Math.max(s,u))>0?s>u?rD:rj:null)?c===rD?i.length:a.length:0;let d=c===rD&&/\b(?:transform|all)(?:,|$)/.test(l(`${rD}Property`).toString());return{type:c,timeout:f,propCount:p,hasTransform:d}}function rY(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>rQ(t)+rQ(e[n])))}function rQ(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function r0(e){return(e?e.ownerDocument:document).body.offsetHeight}let r1=Symbol("_vod"),r2=Symbol("_vsh");function r6(e,t){e.style.display=t?e[r1]:"none",e[r2]=!t}let r8=Symbol("");function r4(e,t){if(1===e.nodeType){let l=e.style,r="";for(let e in t){var n;let i=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);l.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}l[r8]=r}}let r3=/(?:^|;)\s*display\s*:/,r5=/\s*!important$/;function r9(e,t,n){if(T(n))n.forEach(n=>r9(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let l=function(e,t){let n=ie[t];if(n)return n;let l=j(t);if("filter"!==l&&l in e)return ie[t]=l;l=B(l);for(let n=0;n<r7.length;n++){let r=r7[n]+l;if(r in e)return ie[t]=r}return t}(e,t);r5.test(n)?e.setProperty(U(l),n.replace(r5,""),"important"):e[l]=n}}let r7=["Webkit","Moz","ms"],ie={},it="http://www.w3.org/1999/xlink";function il(e,t,n,l,r,i=et(t)){if(l&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(it,t.slice(6,t.length)):e.setAttributeNS(it,t,n);else null==n||i&&!(n||""===n)?e.removeAttribute(t):e.setAttribute(t,i?"":R(n)?String(n):n)}function ir(e,t,n,l,r){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?rM(n):n);return}let i=e.tagName;if("value"===t&&"PROGRESS"!==i&&!i.includes("-")){let l="OPTION"===i?e.getAttribute("value")||"":e.value,r=null==n?"checkbox"===e.type?"on":"":String(n);l===r&&"_value"in e||(e.value=r),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let l=typeof e[t];if("boolean"===l){var o;n=!!(o=n)||""===o}else null==n&&"string"===l?(n="",s=!0):"number"===l&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(r||t)}function ii(e,t,n,l){e.addEventListener(t,n,l)}let is=Symbol("_vei"),io=/(?:Once|Passive|Capture)$/,ia=0,iu=Promise.resolve(),ic=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),ip=(e,t,n,l,r,i)=>{let s="svg"===r;if("class"===t){var o;let t;o=l,(t=e[rV])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let l=e.style,r=O(n),i=!1;if(n&&!r){if(t)if(O(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&r9(l,t,"")}else for(let e in t)null==n[e]&&r9(l,e,"");for(let e in n)"display"===e&&(i=!0),r9(l,e,n[e])}else if(r){if(t!==n){let e=l[r8];e&&(n+=";"+e),l.cssText=n,i=r3.test(n)}}else t&&e.removeAttribute("style");r1 in e&&(e[r1]=i?l.display:"",e[r2]&&(l.display="none"))}(e,n,l):S(t)?C(t)||function(e,t,n,l=null){let r=e[is]||(e[is]={}),i=r[t];if(n&&i)i.value=n;else{let[a,u]=function(e){let t;if(io.test(e)){let n;for(t={};n=e.match(io);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):U(e.slice(2)),t]}(t);if(n){var s,o;let i;ii(e,a,r[t]=(s=n,o=l,(i=e=>{if(e._vts){if(e._vts<=i.attached)return}else e._vts=Date.now();tR(function(e,t){if(!T(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,i.value),o,5,[e])}).value=s,i.attached=ia||(iu.then(()=>ia=0),ia=Date.now()),i),u)}else i&&(e.removeEventListener(a,i,u),r[t]=void 0)}}(e,t,l,i):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,l){if(l)return!!("innerHTML"===t||"textContent"===t||t in e&&ic(t)&&A(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(ic(t)&&O(n))&&t in e}(e,t,l,s))?e._isVueCE&&(/[A-Z]/.test(t)||!O(l))?ir(e,j(t),l,i,t):("true-value"===t?e._trueValue=l:"false-value"===t&&(e._falseValue=l),il(e,t,l,s)):(ir(e,t,l),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||il(e,t,l,s,i,"value"!==t))},id={};function ih(e,t,n){let l,r=nm(e,t);"[object Object]"===(l=r,M.call(l))&&(r=x({},r,t));class i extends iv{constructor(e){super(r,e,n)}}return i.def=r,i}let ig="u">typeof HTMLElement?HTMLElement:class{};class iv extends ig{constructor(e,t={},n=iG){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==iG?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(x({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof iv){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tV(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:l,styles:r}=e;if(l&&!T(l))for(let e in l){let t=l[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=q(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(r),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)E(this,e)||Object.defineProperty(this,e,{get:()=>t_(t[e])})}_resolveProps(e){let{props:t}=e,n=T(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):id,l=j(e);t&&this._numberProps&&this._numberProps[l]&&(n=q(n)),this._setProp(l,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,l=!1){if(t!==this._props[e]&&(this._dirty=!0,t===id?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),l&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(U(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(U(e),t+""):t||this.removeAttribute(U(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),iq(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ri(this._def,x(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],M.call(n))?x({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),U(e)!==e&&t(U(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let l=document.createElement("style");n&&l.setAttribute("nonce",n),l.textContent=e[t],this.shadowRoot.prepend(l)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let l=e[n],r=l.getAttribute("name")||"default",i=this._slots[r],s=l.parentNode;if(i)for(let e of i){if(t&&1===e.nodeType){let n,l=t+"-s",r=document.createTreeWalker(e,1);for(e.setAttribute(l,"");n=r.nextNode();)n.setAttribute(l,"")}s.insertBefore(e,l)}else for(;l.firstChild;)s.insertBefore(l.firstChild,l);s.removeChild(l)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll("slot");for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e){this._applyStyles(e.styles,e)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return!1!==this._def.shadowRoot}_removeChildStyle(e){}}function i_(e){let t=r_(),n=t&&t.ce;return n||null}let im=new WeakMap,iy=new WeakMap,ib=Symbol("_moveCb"),iS=Symbol("_enterCb"),iC=(n={name:"TransitionGroup",props:x({},rB,{tag:String,moveClass:String}),setup(e,{slots:t}){let n,l,r=r_(),i=ns();return nG(()=>{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let l=e.cloneNode(),r=e[rV];r&&r.forEach(e=>{e.split(/\s+/).forEach(e=>e&&l.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&l.classList.add(e)),l.style.display="none";let i=1===t.nodeType?t:t.parentNode;i.appendChild(l);let{hasTransform:s}=rZ(l);return i.removeChild(l),s}(n[0].el,r.vnode.el,t)){n=[];return}n.forEach(ix),n.forEach(iw);let l=n.filter(ik);r0(r.vnode.el),l.forEach(e=>{let n=e.el,l=n.style;rz(n,t),l.transform=l.webkitTransform=l.transitionDuration="";let r=n[ib]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",r),n[ib]=null,rq(n,t))};n.addEventListener("transitionend",r)}),n=[]}),()=>{let s=ta(e),o=rK(s),a=s.tag||lY;if(n=[],l)for(let e=0;e<l.length;e++){let t=l[e];t.el&&t.el instanceof Element&&(n.push(t),nv(t,nd(t,o,i,r)),im.set(t,iE(t.el)))}l=t.default?n_(t.default()):[];for(let e=0;e<l.length;e++){let t=l[e];null!=t.key&&nv(t,nd(t,o,i,r))}return ri(a,null,l)}}},delete n.props.mode,n);function ix(e){let t=e.el;t[ib]&&t[ib](),t[iS]&&t[iS]()}function iw(e){iy.set(e,iE(e.el))}function ik(e){let t=im.get(e),n=iy.get(e),l=t.left-n.left,r=t.top-n.top;if(l||r){let t=e.el,n=t.style,i=t.getBoundingClientRect(),s=1,o=1;return t.offsetWidth&&(s=i.width/t.offsetWidth),t.offsetHeight&&(o=i.height/t.offsetHeight),Number.isFinite(s)&&0!==s||(s=1),Number.isFinite(o)&&0!==o||(o=1),.01>Math.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${l/s}px,${r/o}px)`,n.transitionDuration="0s",e}}function iE(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let iT=e=>{let t=e.props["onUpdate:modelValue"]||!1;return T(t)?e=>W(t,e):t};function iA(e){e.target.composing=!0}function iO(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let iR=Symbol("_assign");function iN(e,t,n){return t&&(e=e.trim()),n&&(e=z(e)),e}let iP={created(e,{modifiers:{lazy:t,trim:n,number:l}},r){e[iR]=iT(r);let i=l||r.props&&"number"===r.props.type;ii(e,t?"change":"input",t=>{t.target.composing||e[iR](iN(e.value,n,i))}),(n||i)&&ii(e,"change",()=>{e.value=iN(e.value,n,i)}),t||(ii(e,"compositionstart",iA),ii(e,"compositionend",iO),ii(e,"change",iO))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:l,trim:r,number:i}},s){if(e[iR]=iT(s),e.composing)return;let o=(i||"number"===e.type)&&!/^0\d/.test(e.value)?z(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(l&&t===n||r&&e.value.trim()===a))return;e.value=a}}},iM={deep:!0,created(e,t,n){e[iR]=iT(n),ii(e,"change",()=>{let t=e._modelValue,n=ij(e),l=e.checked,r=e[iR];if(T(t)){let e=el(t,n),i=-1!==e;if(l&&!i)r(t.concat(n));else if(!l&&i){let n=[...t];n.splice(e,1),r(n)}}else{let i;if("[object Set]"===(i=t,M.call(i))){let e=new Set(t);l?e.add(n):e.delete(n),r(e)}else r(iV(e,l))}})},mounted:iI,beforeUpdate(e,t,n){e[iR]=iT(n),iI(e,t,n)}};function iI(e,{value:t,oldValue:n},l){let r;if(e._modelValue=t,T(t))r=el(t,l.props.value)>-1;else{let i;if("[object Set]"===(i=t,M.call(i)))r=t.has(l.props.value);else{if(t===n)return;r=en(t,iV(e,!0))}}e.checked!==r&&(e.checked=r)}let iL={created(e,{value:t},n){e.checked=en(t,n.props.value),e[iR]=iT(n),ii(e,"change",()=>{e[iR](ij(e))})},beforeUpdate(e,{value:t,oldValue:n},l){e[iR]=iT(l),t!==n&&(e.checked=en(t,l.props.value))}},iF={deep:!0,created(e,{value:t,modifiers:{number:n}},l){let r,i="[object Set]"===(r=t,M.call(r));ii(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?z(ij(e)):ij(e));e[iR](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,tV(()=>{e._assigning=!1})}),e[iR]=iT(l)},mounted(e,{value:t}){iD(e,t)},beforeUpdate(e,t,n){e[iR]=iT(n)},updated(e,{value:t}){e._assigning||iD(e,t)}};function iD(e,t){let n,l=e.multiple,r=T(t);if(!l||r||"[object Set]"===(n=t,M.call(n))){for(let n=0,i=e.options.length;n<i;n++){let i=e.options[n],s=ij(i);if(l)if(r){let e=typeof s;"string"===e||"number"===e?i.selected=t.some(e=>String(e)===String(s)):i.selected=el(t,s)>-1}else i.selected=t.has(s);else if(en(ij(i),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}l||-1===e.selectedIndex||(e.selectedIndex=-1)}}function ij(e){return"_value"in e?e._value:e.value}function iV(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function iU(e,t,n,l,r){let i=function(e,t){switch(e){case"SELECT":return iF;case"TEXTAREA":return iP;default:switch(t){case"checkbox":return iM;case"radio":return iL;default:return iP}}}(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,l)}let iB=["ctrl","shift","alt","meta"],i$={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>iB.some(n=>e[`${n}Key`]&&!t.includes(n))},iH={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},iW=x({patchProp:ip},rF),iK=!1;function iz(){return p=iK?p:lj(iW),iK=!0,p}let iq=(...e)=>{(p||(p=lV(iW))).render(...e)},iG=(...e)=>{let t=(p||(p=lV(iW))).createApp(...e),{mount:n}=t;return t.mount=e=>{let l=iZ(e);if(!l)return;let r=t._component;A(r)||r.render||r.template||(r.template=l.innerHTML),1===l.nodeType&&(l.textContent="");let i=n(l,!1,iX(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},t},iJ=(...e)=>{let t=iz().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=iZ(e);if(t)return n(t,!0,iX(t))},t};function iX(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function iZ(e){return O(e)?document.querySelector(e):e}return e.BaseTransition=nf,e.BaseTransitionPropsValidators=na,e.Comment=l0,e.DeprecationTypes=null,e.EffectScope=ea,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=lY,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=r_(),l=n.ctx,r=new Map,i=new Set,s=null,o=n.suspense,{renderer:{p:a,m:u,um:c,o:{createElement:f}}}=l,p=f("div");function d(e){nB(e),c(e,n,o,!0)}function h(e){r.forEach((t,n)=>{let l=rT(nI(t)?t.type.__asyncResolved||{}:t.type);l&&!e(l)&&g(n)})}function g(e){let t=r.get(e);!t||s&&rt(t,s)?s&&nB(s):d(t),r.delete(e),i.delete(e)}l.activate=(e,t,n,l,r)=>{let i=e.component;u(e,t,n,0,o),a(i.vnode,e,t,n,i,o,l,e.slotScopeIds,r),lD(()=>{i.isDeactivated=!1,i.a&&W(i.a);let t=e.props&&e.props.onVnodeMounted;t&&rd(t,i.parent,e)},o)},l.deactivate=e=>{let t=e.component;lW(t.m),lW(t.a),u(e,p,null,1,o),lD(()=>{t.da&&W(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&rd(n,t.parent,e),t.isDeactivated=!0},o)},t1(()=>[e.include,e.exclude],([e,t])=>{e&&h(t=>nD(e,t)),t&&h(e=>!nD(t,e))},{flush:"post",deep:!0});let _=null,m=()=>{null!=_&&(lK(n.subTree.type)?lD(()=>{r.set(_,n$(n.subTree))},n.subTree.suspense):r.set(_,n$(n.subTree)))};return nz(m),nG(m),nJ(()=>{r.forEach(e=>{let{subTree:t,suspense:l}=n,r=n$(t);if(e.type===r.type&&e.key===r.key){nB(r);let e=r.component.da;e&&lD(e,l);return}d(e)})}),()=>{if(_=null,!t.default)return s=null;let n=t.default(),l=n[0];if(n.length>1)return s=null,n;if(!re(l)||!(4&l.shapeFlag)&&!(128&l.shapeFlag))return s=null,l;let o=n$(l);if(o.type===l0)return s=null,o;let a=o.type,u=rT(nI(o)?o.type.__asyncResolved||{}:a),{include:c,exclude:f,max:p}=e;if(c&&(!u||!nD(c,u))||f&&u&&nD(f,u))return o.shapeFlag&=-257,s=o,l;let d=null==o.key?a:o.key,h=r.get(d);return o.el&&(o=ro(o),128&l.shapeFlag&&(l.ssContent=o)),_=d,h?(o.el=h.el,o.component=h.component,o.transition&&nv(o,o.transition),o.shapeFlag|=512,i.delete(d),i.add(d)):(i.add(d),p&&i.size>parseInt(p,10)&&g(i.values().next().value)),o.shapeFlag|=256,s=o,lK(l.type)?l:o}}},e.ReactiveEffect=ec,e.Static=l1,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,l,r,i,s,o,a,u){if(null==e)!function(e,t,n,l,r,i,s,o,a){let{p:u,o:{createElement:c}}=a,f=c("div"),p=e.suspense=lG(e,r,l,t,f,n,i,s,o,a);u(null,p.pendingBranch=e.ssContent,f,null,l,p,i,s),p.deps>0?(lq(e,"onPending"),lq(e,"onFallback"),u(null,e.ssFallback,t,n,l,null,i,s),lZ(p,e.ssFallback)):p.resolve(!1,!0)}(t,n,l,r,i,s,o,a,u);else{if(i&&i.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,l,r,i,s,o,{p:a,um:u,o:{createElement:c}}){let f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;let p=t.ssContent,d=t.ssFallback,{activeBranch:h,pendingBranch:g,isInFallback:_,isHydrating:m}=f;if(g)f.pendingBranch=p,rt(g,p)?(a(g,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():_&&!m&&(a(h,d,n,l,r,null,i,s,o),lZ(f,d))):(f.pendingId=lz++,m?(f.isHydrating=!1,f.activeBranch=g):u(g,r,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),_?(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():(a(h,d,n,l,r,null,i,s,o),lZ(f,d))):h&&rt(h,p)?(a(h,p,n,l,r,f,i,s,o),f.resolve(!0)):(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0&&f.resolve()));else if(h&&rt(h,p))a(h,p,n,l,r,f,i,s,o),lZ(f,p);else if(lq(t,"onPending"),f.pendingBranch=p,512&p.shapeFlag?f.pendingId=p.component.suspenseId:f.pendingId=lz++,a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0)f.resolve();else{let{timeout:e,pendingId:t}=f;e>0?setTimeout(()=>{f.pendingId===t&&f.fallback(d)},e):0===e&&f.fallback(d)}}(e,t,n,l,r,s,o,a,u)}},hydrate:function(e,t,n,l,r,i,s,o,a){let u=t.suspense=lG(t,l,n,e.parentNode,document.createElement("div"),null,r,i,s,o,!0),c=a(e,u.pendingBranch=t.ssContent,n,u,i,s);return 0===u.deps&&u.resolve(!1,!0),c},normalize:function(e){let{shapeFlag:t,children:n}=e,l=32&t;e.ssContent=lJ(l?n.default:n),e.ssFallback=l?lJ(n.fallback):ri(l0)}},e.Teleport=ne,e.Text=lQ,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=r$,e.TransitionGroup=iC,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=iv,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tR,e.callWithErrorHandling=tO,e.camelize=j,e.capitalize=B,e.cloneVNode=ro,e.compatUtils=null,e.computed=rA,e.createApp=iG,e.createBlock=l7,e.createCommentVNode=function(e="",t=!1){return t?(l8(),l7(l0,null,e)):ri(l0,null,e)},e.createElementBlock=function(e,t,n,l,r,i){return l9(rr(e,t,n,l,r,i,!0))},e.createElementVNode=rr,e.createHydrationRenderer=lj,e.createPropsRestProxy=function(e,t){let n={};for(let l in e)t.includes(l)||Object.defineProperty(n,l,{enumerable:!0,get:()=>e[l]});return n},e.createRenderer=function(e){return lV(e)},e.createSSRApp=iJ,e.createSlots=function(e,t){for(let n=0;n<t.length;n++){let l=t[n];if(T(l))for(let t=0;t<l.length;t++)e[l[t].name]=l[t].fn;else l&&(e[l.name]=l.key?(...e)=>{let t=l.fn(...e);return t&&(t.key=l.key),t}:l.fn)}return e},e.createStaticVNode=function(e,t){let n=ri(l1,null,e);return n.staticCount=t,n},e.createTextVNode=ra,e.createVNode=ri,e.customRef=tS,e.defineAsyncComponent=function(e){let t;A(e)&&(e={loader:e});let{loader:n,loadingComponent:l,errorComponent:r,delay:i=200,hydrate:s,timeout:o,suspensible:a=!0,onError:u}=e,c=null,f=0,p=()=>{let e;return c||(e=c=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),u)return new Promise((t,n)=>{u(e,()=>t((f++,c=null,p())),()=>n(e),f+1)});throw e}).then(n=>e!==c&&c?c:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nm({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,l){let r=!1;(n.bu||(n.bu=[])).push(()=>r=!0);let i=()=>{r||l()},o=s?()=>{let t=s(i,t=>(function(e,t){if(nT(e)&&"["===e.data){let n=1,l=e.nextSibling;for(;l;){if(1===l.nodeType){if(!1===t(l))break}else if(nT(l))if("]"===l.data){if(0==--n)break}else"["===l.data&&n++;l=l.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:i;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=rv;if(ny(e),t)return()=>nL(t,e);let n=t=>{c=null,tN(t,e,13,!r)};if(a&&e.suspense)return p().then(t=>()=>nL(t,e)).catch(e=>(n(e),()=>r?ri(r,{error:e}):null));let s=td(!1),u=td(),f=td(!!i);return i&&setTimeout(()=>{f.value=!1},i),null!=o&&setTimeout(()=>{if(!s.value&&!u.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),u.value=e}},o),p().then(()=>{s.value=!0,e.parent&&nF(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),u.value=e}),()=>s.value&&t?nL(t,e):u.value&&r?ri(r,{error:u.value}):l&&!f.value?nL(l,e):void 0}})},e.defineComponent=nm,e.defineCustomElement=ih,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>ih(e,t,iJ),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ec&&(e=e.effect.fn);let n=new ec(e);t&&x(n,t);try{n.run()}catch(e){throw n.stop(),e}let l=n.run.bind(n);return l.effect=n,l},e.effectScope=function(e){return new ea(e)},e.getCurrentInstance=r_,e.getCurrentScope=function(){return r},e.getCurrentWatcher=function(){return d},e.getTransitionRawChildren=n_,e.guardReactiveProps=rs,e.h=rO,e.handleError=tN,e.hasInjectionContext=function(){return!!(r_()||lh)},e.hydrate=(...e)=>{iz().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nP(t,{timeout:e});return()=>nM(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{O(e)&&(e=[e]);let l=!1,r=e=>{l||(l=!0,i(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},i=()=>{n(t=>{for(let n of e)t.removeEventListener(n,r)})};return n(t=>{for(let n of e)t.addEventListener(n,r,{once:!0})}),i},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let l=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){l.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:l,right:r}=e.getBoundingClientRect(),{innerHeight:i,innerWidth:s}=window;return(t>0&&t<i||l>0&&l<i)&&(n>0&&n<s||r>0&&r<s)}(e))return t(),l.disconnect(),!1;l.observe(e)}}),()=>l.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=y,e.inject=tY,e.isMemoSame=rR,e.isProxy=to,e.isReactive=tr,e.isReadonly=ti,e.isRef=tp,e.isRuntimeOnly=()=>!c,e.isShallow=ts,e.isVNode=re,e.markRaw=tu,e.mergeDefaults=function(e,t){let n=lt(e);for(let e in t){if(e.startsWith("__skip"))continue;let l=n[e];l?T(l)||A(l)?l=n[e]={type:l,default:t[e]}:l.default=t[e]:null===l&&(l=n[e]={default:t[e]}),l&&t[`__skip_${e}`]&&(l.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?T(e)&&T(t)?e.concat(t):x({},lt(e),lt(t)):e||t},e.mergeProps=rp,e.nextTick=tV,e.nodeOps=rF,e.normalizeClass=ee,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!O(t)&&(e.class=ee(t)),n&&(e.style=X(n)),e},e.normalizeStyle=X,e.onActivated=nj,e.onBeforeMount=nK,e.onBeforeUnmount=nJ,e.onBeforeUpdate=nq,e.onDeactivated=nV,e.onErrorCaptured=n0,e.onMounted=nz,e.onRenderTracked=nQ,e.onRenderTriggered=nY,e.onScopeDispose=function(e,t=!1){r&&r.cleanups.push(e)},e.onServerPrefetch=nZ,e.onUnmounted=nX,e.onUpdated=nG,e.onWatcherCleanup=tT,e.openBlock=l8,e.patchProp=ip,e.popScopeId=function(){tq=null},e.provide=tZ,e.proxyRefs=ty,e.pushScopeId=function(e){tq=e},e.queuePostFlushCb=t$,e.reactive=te,e.readonly=tn,e.ref=td,e.registerRuntimeCompiler=function(e){c=e,f=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,n7))}},e.render=iq,e.renderList=function(e,t,n,l){let r,i=n&&n[l],s=T(e);if(s||O(e)){let n=s&&tr(e),l=!1,o=!1;n&&(l=!ts(e),o=ti(e),e=eI(e)),r=Array(e.length);for(let n=0,s=e.length;n<s;n++)r[n]=t(l?o?tf(tc(e[n])):tc(e[n]):e[n],n,void 0,i&&i[n])}else if("number"==typeof e){r=Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,i&&i[n])}else if(N(e))if(e[Symbol.iterator])r=Array.from(e,(e,n)=>t(e,n,void 0,i&&i[n]));else{let n=Object.keys(e);r=Array(n.length);for(let l=0,s=n.length;l<s;l++){let s=n[l];r[l]=t(e[s],s,l,i&&i[l])}}else r=[];return n&&(n[l]=r),r},e.renderSlot=function(e,t,n={},l,r){if(tz.ce||tz.parent&&nI(tz.parent)&&tz.parent.ce){let e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),l8(),l7(lY,null,[ri("slot",n,l&&l())],e?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),l8();let s=i&&function e(t){return t.some(t=>!re(t)||t.type!==l0&&(t.type!==lY||!!e(t.children)))?t:null}(i(n)),o=n.key||s&&s.key,a=l7(lY,{key:(o&&!R(o)?o:`_${t}`)+(!s&&l?"_fb":"")},s||(l?l():[]),s&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),i&&i._c&&(i._d=!0),a},e.resolveComponent=function(e,t){return n6(n1,e,!0,t)||e},e.resolveDirective=function(e){return n6("directives",e)},e.resolveDynamicComponent=function(e){return O(e)?n6(n1,e,!1)||e:e||n2},e.resolveFilter=null,e.resolveTransitionHooks=nd,e.setBlockTracking=l5,e.setDevtoolsHook=y,e.setTransitionHooks=nv,e.shallowReactive=tt,e.shallowReadonly=function(e){return tl(e,!0,eY,e4,e7)},e.shallowRef=th,e.ssrContextKey=tQ,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ei,e.toHandlerKey=$,e.toHandlers=function(e,t){let n={};for(let l in e)n[t&&/[A-Z]/.test(l)?`on:${l}`:$(l)]=e[l];return n},e.toRaw=ta,e.toRef=function(e,t,n){if(tp(e))return e;if(A(e))return new tx(e);if(!N(e)||!(arguments.length>1))return td(e);return new tC(e,t,n)},e.toRefs=function(e){let t=T(e)?Array(e.length):{};for(let n in e)t[n]=new tC(e,n,void 0);return t},e.toValue=function(e){return A(e)?e():t_(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=t_,e.useAttrs=function(){return le().attrs},e.useCssModule=function(e="$style"){return _},e.useCssVars=function(e){let t=r_();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>r4(e,n))},l=()=>{let l=e(t.proxy);t.ce?r4(t.ce,l):function e(t,n){if(128&t.shapeFlag){let l=t.suspense;t=l.activeBranch,l.pendingBranch&&!l.isHydrating&&l.effects.push(()=>{e(l.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)r4(t.el,n);else if(t.type===lY)t.children.forEach(t=>e(t,n));else if(t.type===l1){let{el:e,anchor:l}=t;for(;e&&(r4(e,n),e!==l);)e=e.nextSibling}}(t.subTree,l),n(l)};nq(()=>{t$(l)}),nz(()=>{t1(l,y,{flush:"post"});let e=new MutationObserver(l);e.observe(t.subTree.el.parentNode,{childList:!0}),nX(()=>e.disconnect())})},e.useHost=i_,e.useId=function(){let e=r_();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=_){let l=r_(),r=j(t),i=U(t),s=lg(e,r),o=tS((s,o)=>{let a,u,c=_;return t0(()=>{let t=e[r];H(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!H(s,a)&&!(c!==_&&H(e,c)))return;let f=l.vnode.props;f&&(t in f||r in f||i in f)&&(`onUpdate:${t}`in f||`onUpdate:${r}`in f||`onUpdate:${i}`in f)||(a=e,o()),l.emit(`update:${t}`,s),H(e,s)&&H(e,c)&&!H(s,u)&&o(),c=e,u=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||_:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=i_();return e&&e.shadowRoot},e.useSlots=function(){return le().slots},e.useTemplateRef=function(e){let t=r_(),n=th(null);return t&&Object.defineProperty(t.refs===_?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=ns,e.vModelCheckbox=iM,e.vModelDynamic={created(e,t,n){iU(e,t,n,null,"created")},mounted(e,t,n){iU(e,t,n,null,"mounted")},beforeUpdate(e,t,n,l){iU(e,t,n,l,"beforeUpdate")},updated(e,t,n,l){iU(e,t,n,l,"updated")}},e.vModelRadio=iL,e.vModelSelect=iF,e.vModelText=iP,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[r1]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):r6(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),r6(e,!0),l.enter(e)):l.leave(e,()=>{r6(e,!1)}):r6(e,t))},beforeUnmount(e,{value:t}){r6(e,t)}},e.version=rN,e.warn=y,e.watch=function(e,t,n){return t1(e,t,n)},e.watchEffect=function(e,t){return t1(e,null,t)},e.watchPostEffect=function(e,t){return t1(e,null,{flush:"post"})},e.watchSyncEffect=t0,e.withAsyncContext=function(e){let t=r_(),n=e();return ry(),P(n)&&(n=n.catch(e=>{throw rm(t),e})),[n,()=>rm(t)]},e.withCtx=tJ,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===tz)return e;let n=rE(tz),l=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[r,i,s,o=_]=t[e];r&&(A(r)&&(r={mounted:r,updated:r}),r.deep&&tA(i),l.push({dir:r,instance:n,value:i,oldValue:void 0,arg:s,modifiers:o}))}return e},e.withKeys=(e,t)=>{let n=e._withKeys||(e._withKeys={}),l=t.join(".");return n[l]||(n[l]=n=>{if(!("key"in n))return;let l=U(n.key);if(t.some(e=>e===l||iH[e]===l))return e(n)})},e.withMemo=function(e,t,n,l){let r=n[l];if(r&&rR(r,e))return r;let i=t();return i.memo=e.slice(),i.cacheIndex=l,n[l]=i},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),l=t.join(".");return n[l]||(n[l]=(n,...l)=>{for(let e=0;e<t.length;e++){let l=i$[t[e]];if(l&&l(n,t))return}return e(n,...l)})},e.withScopeId=e=>tJ,e}({}); diff --git a/node_modules/@vue/runtime-dom/index.js b/node_modules/@vue/runtime-dom/index.js new file mode 100644 index 0000000..cdc29b2 --- /dev/null +++ b/node_modules/@vue/runtime-dom/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/runtime-dom.cjs.prod.js') +} else { + module.exports = require('./dist/runtime-dom.cjs.js') +} diff --git a/node_modules/@vue/runtime-dom/package.json b/node_modules/@vue/runtime-dom/package.json new file mode 100644 index 0000000..446df86 --- /dev/null +++ b/node_modules/@vue/runtime-dom/package.json @@ -0,0 +1,60 @@ +{ + "name": "@vue/runtime-dom", + "version": "3.5.28", + "description": "@vue/runtime-dom", + "main": "index.js", + "module": "dist/runtime-dom.esm-bundler.js", + "types": "dist/runtime-dom.d.ts", + "unpkg": "dist/runtime-dom.global.js", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/runtime-dom.d.ts", + "node": { + "production": "./dist/runtime-dom.cjs.prod.js", + "development": "./dist/runtime-dom.cjs.js", + "default": "./index.js" + }, + "module": "./dist/runtime-dom.esm-bundler.js", + "import": "./dist/runtime-dom.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "buildOptions": { + "name": "VueRuntimeDOM", + "formats": [ + "esm-bundler", + "esm-browser", + "cjs", + "global" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/runtime-dom" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", + "dependencies": { + "csstype": "^3.2.3", + "@vue/runtime-core": "3.5.28", + "@vue/reactivity": "3.5.28", + "@vue/shared": "3.5.28" + }, + "devDependencies": { + "@types/trusted-types": "^2.0.7" + } +} \ No newline at end of file diff --git a/node_modules/@vue/server-renderer/LICENSE b/node_modules/@vue/server-renderer/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/server-renderer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/server-renderer/README.md b/node_modules/@vue/server-renderer/README.md new file mode 100644 index 0000000..55323e4 --- /dev/null +++ b/node_modules/@vue/server-renderer/README.md @@ -0,0 +1,178 @@ +# @vue/server-renderer + +**Note: as of 3.2.13+, this package is included as a dependency of the main `vue` package and can be accessed as `vue/server-renderer`. This means you no longer need to explicitly install this package and ensure its version match that of `vue`'s. Just use the `vue/server-renderer` deep import instead.** + +## Basic API + +### `renderToString` + +**Signature** + +```ts +function renderToString( + input: App | VNode, + context?: SSRContext, +): Promise<string> +``` + +**Usage** + +```js +const { createSSRApp } = require('vue') +const { renderToString } = require('@vue/server-renderer') + +const app = createSSRApp({ + data: () => ({ msg: 'hello' }), + template: `<div>{{ msg }}</div>`, +}) + +;(async () => { + const html = await renderToString(app) + console.log(html) +})() +``` + +### Handling Teleports + +If the rendered app contains teleports, the teleported content will not be part of the rendered string. Instead, they are exposed under the `teleports` property of the ssr context object: + +```js +const ctx = {} +const html = await renderToString(app, ctx) + +console.log(ctx.teleports) // { '#teleported': 'teleported content' } +``` + +## Streaming API + +### `renderToNodeStream` + +Renders input as a [Node.js Readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable). + +**Signature** + +```ts +function renderToNodeStream(input: App | VNode, context?: SSRContext): Readable +``` + +**Usage** + +```js +// inside a Node.js http handler +renderToNodeStream(app).pipe(res) +``` + +**Note:** This method is not supported in the ESM build of `@vue/server-renderer`, which is decoupled from Node.js environments. Use `pipeToNodeWritable` instead. + +### `pipeToNodeWritable` + +Render and pipe to an existing [Node.js Writable stream](https://nodejs.org/api/stream.html#stream_writable_streams) instance. + +**Signature** + +```ts +function pipeToNodeWritable( + input: App | VNode, + context: SSRContext = {}, + writable: Writable, +): void +``` + +**Usage** + +```js +// inside a Node.js http handler +pipeToNodeWritable(app, {}, res) +``` + +### `renderToWebStream` + +Renders input as a [Web ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API). + +**Signature** + +```ts +function renderToWebStream( + input: App | VNode, + context?: SSRContext, +): ReadableStream +``` + +**Usage** + +```js +// inside an environment with ReadableStream support +return new Response(renderToWebStream(app)) +``` + +**Note:** in environments that do not expose `ReadableStream` constructor in the global scope, `pipeToWebWritable` should be used instead. + +### `pipeToWebWritable` + +Render and pipe to an existing [Web WritableStream](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) instance. + +**Signature** + +```ts +function pipeToWebWritable( + input: App | VNode, + context: SSRContext = {}, + writable: WritableStream, +): void +``` + +**Usage** + +This is typically used in combination with [`TransformStream`](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream): + +```js +// TransformStream is available in environments such as CloudFlare workers. +// in Node.js, TransformStream needs to be explicitly imported from 'stream/web' +const { readable, writable } = new TransformStream() +pipeToWebWritable(app, {}, writable) + +return new Response(readable) +``` + +### `renderToSimpleStream` + +Renders input in streaming mode using a simple readable interface. + +**Signature** + +```ts +function renderToSimpleStream( + input: App | VNode, + context: SSRContext, + options: SimpleReadable, +): SimpleReadable + +interface SimpleReadable { + push(content: string | null): void + destroy(err: any): void +} +``` + +**Usage** + +```js +let res = '' + +renderToSimpleStream( + app, + {}, + { + push(chunk) { + if (chunk === null) { + // done + console(`render complete: ${res}`) + } else { + res += chunk + } + }, + destroy(err) { + // error encountered + }, + }, +) +``` diff --git a/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js b/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js new file mode 100644 index 0000000..01891d0 --- /dev/null +++ b/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js @@ -0,0 +1,1153 @@ +/** +* @vue/server-renderer v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var Vue = require('vue'); +var shared = require('@vue/shared'); +var compilerSsr = require('@vue/compiler-ssr'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var Vue__namespace = /*#__PURE__*/_interopNamespaceDefault(Vue); + +const shouldIgnoreProp = /* @__PURE__ */ shared.makeMap( + `,key,ref,innerHTML,textContent,ref_key,ref_for` +); +function ssrRenderAttrs(props, tag) { + let ret = ""; + for (let key in props) { + if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value" || // force as property (not rendered in SSR) + key.startsWith(".")) { + continue; + } + const value = props[key]; + if (key.startsWith("^")) key = key.slice(1); + if (key === "class" || key === "className") { + ret += ` class="${ssrRenderClass(value)}"`; + } else if (key === "style") { + ret += ` style="${ssrRenderStyle(value)}"`; + } else { + ret += ssrRenderDynamicAttr(key, value, tag); + } + } + return ret; +} +function ssrRenderDynamicAttr(key, value, tag) { + if (!shared.isRenderableAttrValue(value)) { + return ``; + } + const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase(); + if (shared.isBooleanAttr(attrKey)) { + return shared.includeBooleanAttr(value) ? ` ${attrKey}` : ``; + } else if (shared.isSSRSafeAttrName(attrKey)) { + return value === "" ? ` ${attrKey}` : ` ${attrKey}="${shared.escapeHtml(value)}"`; + } else { + console.warn( + `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}` + ); + return ``; + } +} +function ssrRenderAttr(key, value) { + if (!shared.isRenderableAttrValue(value)) { + return ``; + } + return ` ${key}="${shared.escapeHtml(value)}"`; +} +function ssrRenderClass(raw) { + return shared.escapeHtml(shared.normalizeClass(raw)); +} +function ssrRenderStyle(raw) { + if (!raw) { + return ""; + } + if (shared.isString(raw)) { + return shared.escapeHtml(raw); + } + const styles = shared.normalizeStyle(ssrResetCssVars(raw)); + return shared.escapeHtml(shared.stringifyStyle(styles)); +} +function ssrResetCssVars(raw) { + if (!shared.isArray(raw) && shared.isObject(raw)) { + const res = {}; + for (const key in raw) { + if (key.startsWith(":--")) { + res[key.slice(1)] = shared.normalizeCssVarValue(raw[key]); + } else { + res[key] = raw[key]; + } + } + return res; + } + return raw; +} + +function ssrRenderComponent(comp, props = null, children = null, parentComponent = null, slotScopeId) { + return renderComponentVNode( + Vue.createVNode(comp, props, children), + parentComponent, + slotScopeId + ); +} + +const { ensureValidVNode } = Vue.ssrUtils; +function ssrRenderSlot(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId) { + push(`<!--[-->`); + ssrRenderSlotInner( + slots, + slotName, + slotProps, + fallbackRenderFn, + push, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); +} +function ssrRenderSlotInner(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId, transition) { + const slotFn = slots[slotName]; + if (slotFn) { + const slotBuffer = []; + const bufferedPush = (item) => { + slotBuffer.push(item); + }; + const ret = slotFn( + slotProps, + bufferedPush, + parentComponent, + slotScopeId ? " " + slotScopeId : "" + ); + if (shared.isArray(ret)) { + const validSlotContent = ensureValidVNode(ret); + if (validSlotContent) { + renderVNodeChildren( + push, + validSlotContent, + parentComponent, + slotScopeId + ); + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } + } else { + let isEmptySlot = true; + if (transition) { + isEmptySlot = false; + } else { + for (let i = 0; i < slotBuffer.length; i++) { + if (!isComment(slotBuffer[i])) { + isEmptySlot = false; + break; + } + } + } + if (isEmptySlot) { + if (fallbackRenderFn) { + fallbackRenderFn(); + } + } else { + let start = 0; + let end = slotBuffer.length; + if (transition && slotBuffer[0] === "<!--[-->" && slotBuffer[end - 1] === "<!--]-->") { + start++; + end--; + } + if (start < end) { + for (let i = start; i < end; i++) { + push(slotBuffer[i]); + } + } else if (transition) { + push(`<!---->`); + } + } + } + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } +} +const commentTestRE = /^<!--[\s\S]*-->$/; +const commentRE = /<!--[^]*?-->/gm; +function isComment(item) { + if (typeof item !== "string" || !commentTestRE.test(item)) return false; + if (item.length <= 8) return true; + return !item.replace(commentRE, "").trim(); +} + +function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) { + parentPush("<!--teleport start-->"); + const context = parentComponent.appContext.provides[Vue.ssrContextKey]; + const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {}); + const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []); + const bufferIndex = targetBuffer.length; + let teleportContent; + if (disabled) { + contentRenderFn(parentPush); + teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`; + } else { + const { getBuffer, push } = createBuffer(); + push(`<!--teleport start anchor-->`); + contentRenderFn(push); + push(`<!--teleport anchor-->`); + teleportContent = getBuffer(); + } + targetBuffer.splice(bufferIndex, 0, teleportContent); + parentPush("<!--teleport end-->"); +} + +function ssrInterpolate(value) { + return shared.escapeHtml(shared.toDisplayString(value)); +} + +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} + +const stack = []; +function pushWarningContext$1(vnode) { + stack.push(vnode); +} +function popWarningContext$1() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (shared.isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (shared.isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} + +const ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || shared.EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext$1(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext$1(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } +} + +{ + const g = shared.getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => v + ); + registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => v + ); +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} + +const warn = warn$1 ; + +function ssrRenderList(source, renderItem) { + if (shared.isArray(source) || shared.isString(source)) { + for (let i = 0, l = source.length; i < l; i++) { + renderItem(source[i], i); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn(`The v-for range expect an integer value but got ${source}.`); + return; + } + for (let i = 0; i < source; i++) { + renderItem(i + 1, i); + } + } else if (shared.isObject(source)) { + if (source[Symbol.iterator]) { + const arr = Array.from(source); + for (let i = 0, l = arr.length; i < l; i++) { + renderItem(arr[i], i); + } + } else { + const keys = Object.keys(source); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + renderItem(source[key], key, i); + } + } + } +} + +async function ssrRenderSuspense(push, { default: renderContent }) { + if (renderContent) { + renderContent(); + } else { + push(`<!---->`); + } +} + +function ssrGetDirectiveProps(instance, dir, value, arg, modifiers = {}) { + if (typeof dir !== "function" && dir.getSSRProps) { + return dir.getSSRProps( + { + dir, + instance: Vue.ssrUtils.getComponentPublicInstance(instance.$), + value, + oldValue: void 0, + arg, + modifiers + }, + null + ) || {}; + } + return {}; +} + +const ssrLooseEqual = shared.looseEqual; +function ssrLooseContain(arr, value) { + return shared.looseIndexOf(arr, value) > -1; +} +function ssrRenderDynamicModel(type, model, value) { + switch (type) { + case "radio": + return shared.looseEqual(model, value) ? " checked" : ""; + case "checkbox": + return (shared.isArray(model) ? ssrLooseContain(model, value) : model) ? " checked" : ""; + default: + return ssrRenderAttr("value", model); + } +} +function ssrGetDynamicModelProps(existingProps = {}, model) { + const { type, value } = existingProps; + switch (type) { + case "radio": + return shared.looseEqual(model, value) ? { checked: true } : null; + case "checkbox": + return (shared.isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null; + default: + return { value: model }; + } +} + +var helpers = /*#__PURE__*/Object.freeze({ + __proto__: null, + ssrGetDirectiveProps: ssrGetDirectiveProps, + ssrGetDynamicModelProps: ssrGetDynamicModelProps, + ssrIncludeBooleanAttr: shared.includeBooleanAttr, + ssrInterpolate: ssrInterpolate, + ssrLooseContain: ssrLooseContain, + ssrLooseEqual: ssrLooseEqual, + ssrRenderAttr: ssrRenderAttr, + ssrRenderAttrs: ssrRenderAttrs, + ssrRenderClass: ssrRenderClass, + ssrRenderComponent: ssrRenderComponent, + ssrRenderDynamicAttr: ssrRenderDynamicAttr, + ssrRenderDynamicModel: ssrRenderDynamicModel, + ssrRenderList: ssrRenderList, + ssrRenderSlot: ssrRenderSlot, + ssrRenderSlotInner: ssrRenderSlotInner, + ssrRenderStyle: ssrRenderStyle, + ssrRenderSuspense: ssrRenderSuspense, + ssrRenderTeleport: ssrRenderTeleport, + ssrRenderVNode: renderVNode +}); + +const compileCache = /* @__PURE__ */ Object.create(null); +function ssrCompile(template, instance) { + const Component = instance.type; + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = shared.extend( + shared.extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + finalCompilerOptions.isCustomElement = finalCompilerOptions.isCustomElement || shared.NO; + finalCompilerOptions.isNativeTag = finalCompilerOptions.isNativeTag || shared.NO; + const cacheKey = JSON.stringify( + { + template, + compilerOptions: finalCompilerOptions + }, + (key, value) => { + return shared.isFunction(value) ? value.toString() : value; + } + ); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + finalCompilerOptions.onError = (err) => { + { + const message = `[@vue/server-renderer] Template compilation error: ${err.message}`; + const codeFrame = err.loc && shared.generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + Vue.warn(codeFrame ? `${message} +${codeFrame}` : message); + } + }; + const { code } = compilerSsr.compile(template, finalCompilerOptions); + const requireMap = { + vue: Vue__namespace, + "vue/server-renderer": helpers + }; + const fakeRequire = (id) => requireMap[id]; + return compileCache[cacheKey] = Function("require", code)(fakeRequire); +} + +const { + createComponentInstance, + setCurrentRenderingInstance, + setupComponent, + renderComponentRoot, + normalizeVNode, + pushWarningContext, + popWarningContext +} = Vue.ssrUtils; +function createBuffer() { + let appendable = false; + const buffer = []; + return { + getBuffer() { + return buffer; + }, + push(item) { + const isStringItem = shared.isString(item); + if (appendable && isStringItem) { + buffer[buffer.length - 1] += item; + return; + } + buffer.push(item); + appendable = isStringItem; + if (shared.isPromise(item) || shared.isArray(item) && item.hasAsync) { + buffer.hasAsync = true; + } + } + }; +} +function renderComponentVNode(vnode, parentComponent = null, slotScopeId) { + const instance = vnode.component = createComponentInstance( + vnode, + parentComponent, + null + ); + pushWarningContext(vnode); + const res = setupComponent( + instance, + true + /* isSSR */ + ); + popWarningContext(); + const hasAsyncSetup = shared.isPromise(res); + let prefetches = instance.sp; + if (hasAsyncSetup || prefetches) { + const p = Promise.resolve(res).then(() => { + if (hasAsyncSetup) prefetches = instance.sp; + if (prefetches) { + return Promise.all( + prefetches.map((prefetch) => prefetch.call(instance.proxy)) + ); + } + }).catch(shared.NOOP); + return p.then(() => renderComponentSubTree(instance, slotScopeId)); + } else { + return renderComponentSubTree(instance, slotScopeId); + } +} +function renderComponentSubTree(instance, slotScopeId) { + pushWarningContext(instance.vnode); + const comp = instance.type; + const { getBuffer, push } = createBuffer(); + if (shared.isFunction(comp)) { + let root = renderComponentRoot(instance); + if (!comp.props) { + for (const key in instance.attrs) { + if (key.startsWith(`data-v-`)) { + (root.props || (root.props = {}))[key] = ``; + } + } + } + renderVNode(push, instance.subTree = root, instance, slotScopeId); + } else { + if ((!instance.render || instance.render === shared.NOOP) && !instance.ssrRender && !comp.ssrRender && shared.isString(comp.template)) { + comp.ssrRender = ssrCompile(comp.template, instance); + } + const ssrRender = instance.ssrRender || comp.ssrRender; + if (ssrRender) { + let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0; + let hasCloned = false; + let cur = instance; + while (true) { + const scopeId = cur.vnode.scopeId; + if (scopeId) { + if (!hasCloned) { + attrs = { ...attrs }; + hasCloned = true; + } + attrs[scopeId] = ""; + } + const parent = cur.parent; + if (parent && parent.subTree && parent.subTree === cur.vnode) { + cur = parent; + } else { + break; + } + } + if (slotScopeId) { + if (!hasCloned) attrs = { ...attrs }; + const slotScopeIdList = slotScopeId.trim().split(" "); + for (let i = 0; i < slotScopeIdList.length; i++) { + attrs[slotScopeIdList[i]] = ""; + } + } + const prev = setCurrentRenderingInstance(instance); + try { + ssrRender( + instance.proxy, + push, + instance, + attrs, + // compiler-optimized bindings + instance.props, + instance.setupState, + instance.data, + instance.ctx + ); + } finally { + setCurrentRenderingInstance(prev); + } + } else if (instance.render && instance.render !== shared.NOOP) { + renderVNode( + push, + instance.subTree = renderComponentRoot(instance), + instance, + slotScopeId + ); + } else { + const componentName = comp.name || comp.__file || `<Anonymous>`; + Vue.warn(`Component ${componentName} is missing template or render function.`); + push(`<!---->`); + } + } + popWarningContext(); + return getBuffer(); +} +function renderVNode(push, vnode, parentComponent, slotScopeId) { + const { type, shapeFlag, children, dirs, props } = vnode; + if (dirs) { + vnode.props = applySSRDirectives(vnode, props, dirs); + } + switch (type) { + case Vue.Text: + push(shared.escapeHtml(children)); + break; + case Vue.Comment: + push( + children ? `<!--${shared.escapeHtmlComment(children)}-->` : `<!---->` + ); + break; + case Vue.Static: + push(children); + break; + case Vue.Fragment: + if (vnode.slotScopeIds) { + slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" "); + } + push(`<!--[-->`); + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); + break; + default: + if (shapeFlag & 1) { + renderElementVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 6) { + push(renderComponentVNode(vnode, parentComponent, slotScopeId)); + } else if (shapeFlag & 64) { + renderTeleportVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 128) { + renderVNode(push, vnode.ssContent, parentComponent, slotScopeId); + } else { + Vue.warn( + "[@vue/server-renderer] Invalid VNode type:", + type, + `(${typeof type})` + ); + } + } +} +function renderVNodeChildren(push, children, parentComponent, slotScopeId) { + for (let i = 0; i < children.length; i++) { + renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId); + } +} +function renderElementVNode(push, vnode, parentComponent, slotScopeId) { + const tag = vnode.type; + let { props, children, shapeFlag, scopeId } = vnode; + let openTag = `<${tag}`; + if (props) { + openTag += ssrRenderAttrs(props, tag); + } + if (scopeId) { + openTag += ` ${scopeId}`; + } + let curParent = parentComponent; + let curVnode = vnode; + while (curParent && curVnode === curParent.subTree) { + curVnode = curParent.vnode; + if (curVnode.scopeId) { + openTag += ` ${curVnode.scopeId}`; + } + curParent = curParent.parent; + } + if (slotScopeId) { + openTag += ` ${slotScopeId}`; + } + push(openTag + `>`); + if (!shared.isVoidTag(tag)) { + let hasChildrenOverride = false; + if (props) { + if (props.innerHTML) { + hasChildrenOverride = true; + push(props.innerHTML); + } else if (props.textContent) { + hasChildrenOverride = true; + push(shared.escapeHtml(props.textContent)); + } else if (tag === "textarea" && props.value) { + hasChildrenOverride = true; + push(shared.escapeHtml(props.value)); + } + } + if (!hasChildrenOverride) { + if (shapeFlag & 8) { + push(shared.escapeHtml(children)); + } else if (shapeFlag & 16) { + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + } + } + push(`</${tag}>`); + } +} +function applySSRDirectives(vnode, rawProps, dirs) { + const toMerge = []; + for (let i = 0; i < dirs.length; i++) { + const binding = dirs[i]; + const { + dir: { getSSRProps } + } = binding; + if (getSSRProps) { + const props = getSSRProps(binding, vnode); + if (props) toMerge.push(props); + } + } + return Vue.mergeProps(rawProps || {}, ...toMerge); +} +function renderTeleportVNode(push, vnode, parentComponent, slotScopeId) { + const target = vnode.props && vnode.props.to; + const disabled = vnode.props && vnode.props.disabled; + if (!target) { + if (!disabled) { + Vue.warn(`[@vue/server-renderer] Teleport is missing target prop.`); + } + return []; + } + if (!shared.isString(target)) { + Vue.warn( + `[@vue/server-renderer] Teleport target must be a query selector string.` + ); + return []; + } + ssrRenderTeleport( + push, + (push2) => { + renderVNodeChildren( + push2, + vnode.children, + parentComponent, + slotScopeId + ); + }, + target, + disabled || disabled === "", + parentComponent + ); +} + +const { isVNode: isVNode$1 } = Vue.ssrUtils; +function nestedUnrollBuffer(buffer, parentRet, startIndex) { + if (!buffer.hasAsync) { + return parentRet + unrollBufferSync$1(buffer); + } + let ret = parentRet; + for (let i = startIndex; i < buffer.length; i += 1) { + const item = buffer[i]; + if (shared.isString(item)) { + ret += item; + continue; + } + if (shared.isPromise(item)) { + return item.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, ret, i); + }); + } + const result = nestedUnrollBuffer(item, ret, 0); + if (shared.isPromise(result)) { + return result.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, "", i); + }); + } + ret = result; + } + return ret; +} +function unrollBuffer$1(buffer) { + return nestedUnrollBuffer(buffer, "", 0); +} +function unrollBufferSync$1(buffer) { + let ret = ""; + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isString(item)) { + ret += item; + } else { + ret += unrollBufferSync$1(item); + } + } + return ret; +} +async function renderToString(input, context = {}) { + if (isVNode$1(input)) { + return renderToString(Vue.createApp({ render: () => input }), context); + } + const vnode = Vue.createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(Vue.ssrContextKey, context); + const buffer = await renderComponentVNode(vnode); + const result = await unrollBuffer$1(buffer); + await resolveTeleports(context); + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + return result; +} +async function resolveTeleports(context) { + if (context.__teleportBuffers) { + context.teleports = context.teleports || {}; + for (const key in context.__teleportBuffers) { + context.teleports[key] = await unrollBuffer$1( + await Promise.all([context.__teleportBuffers[key]]) + ); + } + } +} + +const { isVNode } = Vue.ssrUtils; +async function unrollBuffer(buffer, stream) { + if (buffer.hasAsync) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isPromise(item)) { + item = await item; + } + if (shared.isString(item)) { + stream.push(item); + } else { + await unrollBuffer(item, stream); + } + } + } else { + unrollBufferSync(buffer, stream); + } +} +function unrollBufferSync(buffer, stream) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isString(item)) { + stream.push(item); + } else { + unrollBufferSync(item, stream); + } + } +} +function renderToSimpleStream(input, context, stream) { + if (isVNode(input)) { + return renderToSimpleStream( + Vue.createApp({ render: () => input }), + context, + stream + ); + } + const vnode = Vue.createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(Vue.ssrContextKey, context); + Promise.resolve(renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => { + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + }).then(() => stream.push(null)).catch((error) => { + stream.destroy(error); + }); + return stream; +} +function renderToStream(input, context = {}) { + console.warn( + `[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead.` + ); + return renderToNodeStream(input, context); +} +function renderToNodeStream(input, context = {}) { + const stream = new (require("node:stream")).Readable({ read() { + } }) ; + if (!stream) { + throw new Error( + `ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.` + ); + } + return renderToSimpleStream(input, context, stream); +} +function pipeToNodeWritable(input, context = {}, writable) { + renderToSimpleStream(input, context, { + push(content) { + if (content != null) { + writable.write(content); + } else { + writable.end(); + } + }, + destroy(err) { + writable.destroy(err); + } + }); +} +function renderToWebStream(input, context = {}) { + if (typeof ReadableStream !== "function") { + throw new Error( + `ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.` + ); + } + const encoder = new TextEncoder(); + let cancelled = false; + return new ReadableStream({ + start(controller) { + renderToSimpleStream(input, context, { + push(content) { + if (cancelled) return; + if (content != null) { + controller.enqueue(encoder.encode(content)); + } else { + controller.close(); + } + }, + destroy(err) { + controller.error(err); + } + }); + }, + cancel() { + cancelled = true; + } + }); +} +function pipeToWebWritable(input, context = {}, writable) { + const writer = writable.getWriter(); + const encoder = new TextEncoder(); + let hasReady = false; + try { + hasReady = shared.isPromise(writer.ready); + } catch (e) { + } + renderToSimpleStream(input, context, { + async push(content) { + if (hasReady) { + await writer.ready; + } + if (content != null) { + return writer.write(encoder.encode(content)); + } else { + return writer.close(); + } + }, + destroy(err) { + console.log(err); + writer.close(); + } + }); +} + +Vue.initDirectivesForSSR(); + +exports.ssrIncludeBooleanAttr = shared.includeBooleanAttr; +exports.pipeToNodeWritable = pipeToNodeWritable; +exports.pipeToWebWritable = pipeToWebWritable; +exports.renderToNodeStream = renderToNodeStream; +exports.renderToSimpleStream = renderToSimpleStream; +exports.renderToStream = renderToStream; +exports.renderToString = renderToString; +exports.renderToWebStream = renderToWebStream; +exports.ssrGetDirectiveProps = ssrGetDirectiveProps; +exports.ssrGetDynamicModelProps = ssrGetDynamicModelProps; +exports.ssrInterpolate = ssrInterpolate; +exports.ssrLooseContain = ssrLooseContain; +exports.ssrLooseEqual = ssrLooseEqual; +exports.ssrRenderAttr = ssrRenderAttr; +exports.ssrRenderAttrs = ssrRenderAttrs; +exports.ssrRenderClass = ssrRenderClass; +exports.ssrRenderComponent = ssrRenderComponent; +exports.ssrRenderDynamicAttr = ssrRenderDynamicAttr; +exports.ssrRenderDynamicModel = ssrRenderDynamicModel; +exports.ssrRenderList = ssrRenderList; +exports.ssrRenderSlot = ssrRenderSlot; +exports.ssrRenderSlotInner = ssrRenderSlotInner; +exports.ssrRenderStyle = ssrRenderStyle; +exports.ssrRenderSuspense = ssrRenderSuspense; +exports.ssrRenderTeleport = ssrRenderTeleport; +exports.ssrRenderVNode = renderVNode; diff --git a/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js b/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js new file mode 100644 index 0000000..bf37e57 --- /dev/null +++ b/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js @@ -0,0 +1,879 @@ +/** +* @vue/server-renderer v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var Vue = require('vue'); +var shared = require('@vue/shared'); +var compilerSsr = require('@vue/compiler-ssr'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var Vue__namespace = /*#__PURE__*/_interopNamespaceDefault(Vue); + +const shouldIgnoreProp = /* @__PURE__ */ shared.makeMap( + `,key,ref,innerHTML,textContent,ref_key,ref_for` +); +function ssrRenderAttrs(props, tag) { + let ret = ""; + for (let key in props) { + if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value" || // force as property (not rendered in SSR) + key.startsWith(".")) { + continue; + } + const value = props[key]; + if (key.startsWith("^")) key = key.slice(1); + if (key === "class" || key === "className") { + ret += ` class="${ssrRenderClass(value)}"`; + } else if (key === "style") { + ret += ` style="${ssrRenderStyle(value)}"`; + } else { + ret += ssrRenderDynamicAttr(key, value, tag); + } + } + return ret; +} +function ssrRenderDynamicAttr(key, value, tag) { + if (!shared.isRenderableAttrValue(value)) { + return ``; + } + const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase(); + if (shared.isBooleanAttr(attrKey)) { + return shared.includeBooleanAttr(value) ? ` ${attrKey}` : ``; + } else if (shared.isSSRSafeAttrName(attrKey)) { + return value === "" ? ` ${attrKey}` : ` ${attrKey}="${shared.escapeHtml(value)}"`; + } else { + console.warn( + `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}` + ); + return ``; + } +} +function ssrRenderAttr(key, value) { + if (!shared.isRenderableAttrValue(value)) { + return ``; + } + return ` ${key}="${shared.escapeHtml(value)}"`; +} +function ssrRenderClass(raw) { + return shared.escapeHtml(shared.normalizeClass(raw)); +} +function ssrRenderStyle(raw) { + if (!raw) { + return ""; + } + if (shared.isString(raw)) { + return shared.escapeHtml(raw); + } + const styles = shared.normalizeStyle(ssrResetCssVars(raw)); + return shared.escapeHtml(shared.stringifyStyle(styles)); +} +function ssrResetCssVars(raw) { + if (!shared.isArray(raw) && shared.isObject(raw)) { + const res = {}; + for (const key in raw) { + if (key.startsWith(":--")) { + res[key.slice(1)] = shared.normalizeCssVarValue(raw[key]); + } else { + res[key] = raw[key]; + } + } + return res; + } + return raw; +} + +function ssrRenderComponent(comp, props = null, children = null, parentComponent = null, slotScopeId) { + return renderComponentVNode( + Vue.createVNode(comp, props, children), + parentComponent, + slotScopeId + ); +} + +const { ensureValidVNode } = Vue.ssrUtils; +function ssrRenderSlot(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId) { + push(`<!--[-->`); + ssrRenderSlotInner( + slots, + slotName, + slotProps, + fallbackRenderFn, + push, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); +} +function ssrRenderSlotInner(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId, transition) { + const slotFn = slots[slotName]; + if (slotFn) { + const slotBuffer = []; + const bufferedPush = (item) => { + slotBuffer.push(item); + }; + const ret = slotFn( + slotProps, + bufferedPush, + parentComponent, + slotScopeId ? " " + slotScopeId : "" + ); + if (shared.isArray(ret)) { + const validSlotContent = ensureValidVNode(ret); + if (validSlotContent) { + renderVNodeChildren( + push, + validSlotContent, + parentComponent, + slotScopeId + ); + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } + } else { + let isEmptySlot = true; + if (transition) { + isEmptySlot = false; + } else { + for (let i = 0; i < slotBuffer.length; i++) { + if (!isComment(slotBuffer[i])) { + isEmptySlot = false; + break; + } + } + } + if (isEmptySlot) { + if (fallbackRenderFn) { + fallbackRenderFn(); + } + } else { + let start = 0; + let end = slotBuffer.length; + if (transition && slotBuffer[0] === "<!--[-->" && slotBuffer[end - 1] === "<!--]-->") { + start++; + end--; + } + if (start < end) { + for (let i = start; i < end; i++) { + push(slotBuffer[i]); + } + } else if (transition) { + push(`<!---->`); + } + } + } + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } +} +const commentTestRE = /^<!--[\s\S]*-->$/; +const commentRE = /<!--[^]*?-->/gm; +function isComment(item) { + if (typeof item !== "string" || !commentTestRE.test(item)) return false; + if (item.length <= 8) return true; + return !item.replace(commentRE, "").trim(); +} + +function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) { + parentPush("<!--teleport start-->"); + const context = parentComponent.appContext.provides[Vue.ssrContextKey]; + const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {}); + const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []); + const bufferIndex = targetBuffer.length; + let teleportContent; + if (disabled) { + contentRenderFn(parentPush); + teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`; + } else { + const { getBuffer, push } = createBuffer(); + push(`<!--teleport start anchor-->`); + contentRenderFn(push); + push(`<!--teleport anchor-->`); + teleportContent = getBuffer(); + } + targetBuffer.splice(bufferIndex, 0, teleportContent); + parentPush("<!--teleport end-->"); +} + +function ssrInterpolate(value) { + return shared.escapeHtml(shared.toDisplayString(value)); +} + +function ssrRenderList(source, renderItem) { + if (shared.isArray(source) || shared.isString(source)) { + for (let i = 0, l = source.length; i < l; i++) { + renderItem(source[i], i); + } + } else if (typeof source === "number") { + for (let i = 0; i < source; i++) { + renderItem(i + 1, i); + } + } else if (shared.isObject(source)) { + if (source[Symbol.iterator]) { + const arr = Array.from(source); + for (let i = 0, l = arr.length; i < l; i++) { + renderItem(arr[i], i); + } + } else { + const keys = Object.keys(source); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + renderItem(source[key], key, i); + } + } + } +} + +async function ssrRenderSuspense(push, { default: renderContent }) { + if (renderContent) { + renderContent(); + } else { + push(`<!---->`); + } +} + +function ssrGetDirectiveProps(instance, dir, value, arg, modifiers = {}) { + if (typeof dir !== "function" && dir.getSSRProps) { + return dir.getSSRProps( + { + dir, + instance: Vue.ssrUtils.getComponentPublicInstance(instance.$), + value, + oldValue: void 0, + arg, + modifiers + }, + null + ) || {}; + } + return {}; +} + +const ssrLooseEqual = shared.looseEqual; +function ssrLooseContain(arr, value) { + return shared.looseIndexOf(arr, value) > -1; +} +function ssrRenderDynamicModel(type, model, value) { + switch (type) { + case "radio": + return shared.looseEqual(model, value) ? " checked" : ""; + case "checkbox": + return (shared.isArray(model) ? ssrLooseContain(model, value) : model) ? " checked" : ""; + default: + return ssrRenderAttr("value", model); + } +} +function ssrGetDynamicModelProps(existingProps = {}, model) { + const { type, value } = existingProps; + switch (type) { + case "radio": + return shared.looseEqual(model, value) ? { checked: true } : null; + case "checkbox": + return (shared.isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null; + default: + return { value: model }; + } +} + +var helpers = /*#__PURE__*/Object.freeze({ + __proto__: null, + ssrGetDirectiveProps: ssrGetDirectiveProps, + ssrGetDynamicModelProps: ssrGetDynamicModelProps, + ssrIncludeBooleanAttr: shared.includeBooleanAttr, + ssrInterpolate: ssrInterpolate, + ssrLooseContain: ssrLooseContain, + ssrLooseEqual: ssrLooseEqual, + ssrRenderAttr: ssrRenderAttr, + ssrRenderAttrs: ssrRenderAttrs, + ssrRenderClass: ssrRenderClass, + ssrRenderComponent: ssrRenderComponent, + ssrRenderDynamicAttr: ssrRenderDynamicAttr, + ssrRenderDynamicModel: ssrRenderDynamicModel, + ssrRenderList: ssrRenderList, + ssrRenderSlot: ssrRenderSlot, + ssrRenderSlotInner: ssrRenderSlotInner, + ssrRenderStyle: ssrRenderStyle, + ssrRenderSuspense: ssrRenderSuspense, + ssrRenderTeleport: ssrRenderTeleport, + ssrRenderVNode: renderVNode +}); + +const compileCache = /* @__PURE__ */ Object.create(null); +function ssrCompile(template, instance) { + const Component = instance.type; + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = shared.extend( + shared.extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + finalCompilerOptions.isCustomElement = finalCompilerOptions.isCustomElement || shared.NO; + finalCompilerOptions.isNativeTag = finalCompilerOptions.isNativeTag || shared.NO; + const cacheKey = JSON.stringify( + { + template, + compilerOptions: finalCompilerOptions + }, + (key, value) => { + return shared.isFunction(value) ? value.toString() : value; + } + ); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + finalCompilerOptions.onError = (err) => { + { + throw err; + } + }; + const { code } = compilerSsr.compile(template, finalCompilerOptions); + const requireMap = { + vue: Vue__namespace, + "vue/server-renderer": helpers + }; + const fakeRequire = (id) => requireMap[id]; + return compileCache[cacheKey] = Function("require", code)(fakeRequire); +} + +const { + createComponentInstance, + setCurrentRenderingInstance, + setupComponent, + renderComponentRoot, + normalizeVNode, + pushWarningContext, + popWarningContext +} = Vue.ssrUtils; +function createBuffer() { + let appendable = false; + const buffer = []; + return { + getBuffer() { + return buffer; + }, + push(item) { + const isStringItem = shared.isString(item); + if (appendable && isStringItem) { + buffer[buffer.length - 1] += item; + return; + } + buffer.push(item); + appendable = isStringItem; + if (shared.isPromise(item) || shared.isArray(item) && item.hasAsync) { + buffer.hasAsync = true; + } + } + }; +} +function renderComponentVNode(vnode, parentComponent = null, slotScopeId) { + const instance = vnode.component = createComponentInstance( + vnode, + parentComponent, + null + ); + const res = setupComponent( + instance, + true + /* isSSR */ + ); + const hasAsyncSetup = shared.isPromise(res); + let prefetches = instance.sp; + if (hasAsyncSetup || prefetches) { + const p = Promise.resolve(res).then(() => { + if (hasAsyncSetup) prefetches = instance.sp; + if (prefetches) { + return Promise.all( + prefetches.map((prefetch) => prefetch.call(instance.proxy)) + ); + } + }).catch(shared.NOOP); + return p.then(() => renderComponentSubTree(instance, slotScopeId)); + } else { + return renderComponentSubTree(instance, slotScopeId); + } +} +function renderComponentSubTree(instance, slotScopeId) { + const comp = instance.type; + const { getBuffer, push } = createBuffer(); + if (shared.isFunction(comp)) { + let root = renderComponentRoot(instance); + if (!comp.props) { + for (const key in instance.attrs) { + if (key.startsWith(`data-v-`)) { + (root.props || (root.props = {}))[key] = ``; + } + } + } + renderVNode(push, instance.subTree = root, instance, slotScopeId); + } else { + if ((!instance.render || instance.render === shared.NOOP) && !instance.ssrRender && !comp.ssrRender && shared.isString(comp.template)) { + comp.ssrRender = ssrCompile(comp.template, instance); + } + const ssrRender = instance.ssrRender || comp.ssrRender; + if (ssrRender) { + let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0; + let hasCloned = false; + let cur = instance; + while (true) { + const scopeId = cur.vnode.scopeId; + if (scopeId) { + if (!hasCloned) { + attrs = { ...attrs }; + hasCloned = true; + } + attrs[scopeId] = ""; + } + const parent = cur.parent; + if (parent && parent.subTree && parent.subTree === cur.vnode) { + cur = parent; + } else { + break; + } + } + if (slotScopeId) { + if (!hasCloned) attrs = { ...attrs }; + const slotScopeIdList = slotScopeId.trim().split(" "); + for (let i = 0; i < slotScopeIdList.length; i++) { + attrs[slotScopeIdList[i]] = ""; + } + } + const prev = setCurrentRenderingInstance(instance); + try { + ssrRender( + instance.proxy, + push, + instance, + attrs, + // compiler-optimized bindings + instance.props, + instance.setupState, + instance.data, + instance.ctx + ); + } finally { + setCurrentRenderingInstance(prev); + } + } else if (instance.render && instance.render !== shared.NOOP) { + renderVNode( + push, + instance.subTree = renderComponentRoot(instance), + instance, + slotScopeId + ); + } else { + const componentName = comp.name || comp.__file || `<Anonymous>`; + Vue.warn(`Component ${componentName} is missing template or render function.`); + push(`<!---->`); + } + } + return getBuffer(); +} +function renderVNode(push, vnode, parentComponent, slotScopeId) { + const { type, shapeFlag, children, dirs, props } = vnode; + if (dirs) { + vnode.props = applySSRDirectives(vnode, props, dirs); + } + switch (type) { + case Vue.Text: + push(shared.escapeHtml(children)); + break; + case Vue.Comment: + push( + children ? `<!--${shared.escapeHtmlComment(children)}-->` : `<!---->` + ); + break; + case Vue.Static: + push(children); + break; + case Vue.Fragment: + if (vnode.slotScopeIds) { + slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" "); + } + push(`<!--[-->`); + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); + break; + default: + if (shapeFlag & 1) { + renderElementVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 6) { + push(renderComponentVNode(vnode, parentComponent, slotScopeId)); + } else if (shapeFlag & 64) { + renderTeleportVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 128) { + renderVNode(push, vnode.ssContent, parentComponent, slotScopeId); + } else { + Vue.warn( + "[@vue/server-renderer] Invalid VNode type:", + type, + `(${typeof type})` + ); + } + } +} +function renderVNodeChildren(push, children, parentComponent, slotScopeId) { + for (let i = 0; i < children.length; i++) { + renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId); + } +} +function renderElementVNode(push, vnode, parentComponent, slotScopeId) { + const tag = vnode.type; + let { props, children, shapeFlag, scopeId } = vnode; + let openTag = `<${tag}`; + if (props) { + openTag += ssrRenderAttrs(props, tag); + } + if (scopeId) { + openTag += ` ${scopeId}`; + } + let curParent = parentComponent; + let curVnode = vnode; + while (curParent && curVnode === curParent.subTree) { + curVnode = curParent.vnode; + if (curVnode.scopeId) { + openTag += ` ${curVnode.scopeId}`; + } + curParent = curParent.parent; + } + if (slotScopeId) { + openTag += ` ${slotScopeId}`; + } + push(openTag + `>`); + if (!shared.isVoidTag(tag)) { + let hasChildrenOverride = false; + if (props) { + if (props.innerHTML) { + hasChildrenOverride = true; + push(props.innerHTML); + } else if (props.textContent) { + hasChildrenOverride = true; + push(shared.escapeHtml(props.textContent)); + } else if (tag === "textarea" && props.value) { + hasChildrenOverride = true; + push(shared.escapeHtml(props.value)); + } + } + if (!hasChildrenOverride) { + if (shapeFlag & 8) { + push(shared.escapeHtml(children)); + } else if (shapeFlag & 16) { + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + } + } + push(`</${tag}>`); + } +} +function applySSRDirectives(vnode, rawProps, dirs) { + const toMerge = []; + for (let i = 0; i < dirs.length; i++) { + const binding = dirs[i]; + const { + dir: { getSSRProps } + } = binding; + if (getSSRProps) { + const props = getSSRProps(binding, vnode); + if (props) toMerge.push(props); + } + } + return Vue.mergeProps(rawProps || {}, ...toMerge); +} +function renderTeleportVNode(push, vnode, parentComponent, slotScopeId) { + const target = vnode.props && vnode.props.to; + const disabled = vnode.props && vnode.props.disabled; + if (!target) { + if (!disabled) { + Vue.warn(`[@vue/server-renderer] Teleport is missing target prop.`); + } + return []; + } + if (!shared.isString(target)) { + Vue.warn( + `[@vue/server-renderer] Teleport target must be a query selector string.` + ); + return []; + } + ssrRenderTeleport( + push, + (push2) => { + renderVNodeChildren( + push2, + vnode.children, + parentComponent, + slotScopeId + ); + }, + target, + disabled || disabled === "", + parentComponent + ); +} + +const { isVNode: isVNode$1 } = Vue.ssrUtils; +function nestedUnrollBuffer(buffer, parentRet, startIndex) { + if (!buffer.hasAsync) { + return parentRet + unrollBufferSync$1(buffer); + } + let ret = parentRet; + for (let i = startIndex; i < buffer.length; i += 1) { + const item = buffer[i]; + if (shared.isString(item)) { + ret += item; + continue; + } + if (shared.isPromise(item)) { + return item.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, ret, i); + }); + } + const result = nestedUnrollBuffer(item, ret, 0); + if (shared.isPromise(result)) { + return result.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, "", i); + }); + } + ret = result; + } + return ret; +} +function unrollBuffer$1(buffer) { + return nestedUnrollBuffer(buffer, "", 0); +} +function unrollBufferSync$1(buffer) { + let ret = ""; + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isString(item)) { + ret += item; + } else { + ret += unrollBufferSync$1(item); + } + } + return ret; +} +async function renderToString(input, context = {}) { + if (isVNode$1(input)) { + return renderToString(Vue.createApp({ render: () => input }), context); + } + const vnode = Vue.createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(Vue.ssrContextKey, context); + const buffer = await renderComponentVNode(vnode); + const result = await unrollBuffer$1(buffer); + await resolveTeleports(context); + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + return result; +} +async function resolveTeleports(context) { + if (context.__teleportBuffers) { + context.teleports = context.teleports || {}; + for (const key in context.__teleportBuffers) { + context.teleports[key] = await unrollBuffer$1( + await Promise.all([context.__teleportBuffers[key]]) + ); + } + } +} + +const { isVNode } = Vue.ssrUtils; +async function unrollBuffer(buffer, stream) { + if (buffer.hasAsync) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isPromise(item)) { + item = await item; + } + if (shared.isString(item)) { + stream.push(item); + } else { + await unrollBuffer(item, stream); + } + } + } else { + unrollBufferSync(buffer, stream); + } +} +function unrollBufferSync(buffer, stream) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isString(item)) { + stream.push(item); + } else { + unrollBufferSync(item, stream); + } + } +} +function renderToSimpleStream(input, context, stream) { + if (isVNode(input)) { + return renderToSimpleStream( + Vue.createApp({ render: () => input }), + context, + stream + ); + } + const vnode = Vue.createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(Vue.ssrContextKey, context); + Promise.resolve(renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => { + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + }).then(() => stream.push(null)).catch((error) => { + stream.destroy(error); + }); + return stream; +} +function renderToStream(input, context = {}) { + console.warn( + `[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead.` + ); + return renderToNodeStream(input, context); +} +function renderToNodeStream(input, context = {}) { + const stream = new (require("node:stream")).Readable({ read() { + } }) ; + if (!stream) { + throw new Error( + `ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.` + ); + } + return renderToSimpleStream(input, context, stream); +} +function pipeToNodeWritable(input, context = {}, writable) { + renderToSimpleStream(input, context, { + push(content) { + if (content != null) { + writable.write(content); + } else { + writable.end(); + } + }, + destroy(err) { + writable.destroy(err); + } + }); +} +function renderToWebStream(input, context = {}) { + if (typeof ReadableStream !== "function") { + throw new Error( + `ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.` + ); + } + const encoder = new TextEncoder(); + let cancelled = false; + return new ReadableStream({ + start(controller) { + renderToSimpleStream(input, context, { + push(content) { + if (cancelled) return; + if (content != null) { + controller.enqueue(encoder.encode(content)); + } else { + controller.close(); + } + }, + destroy(err) { + controller.error(err); + } + }); + }, + cancel() { + cancelled = true; + } + }); +} +function pipeToWebWritable(input, context = {}, writable) { + const writer = writable.getWriter(); + const encoder = new TextEncoder(); + let hasReady = false; + try { + hasReady = shared.isPromise(writer.ready); + } catch (e) { + } + renderToSimpleStream(input, context, { + async push(content) { + if (hasReady) { + await writer.ready; + } + if (content != null) { + return writer.write(encoder.encode(content)); + } else { + return writer.close(); + } + }, + destroy(err) { + console.log(err); + writer.close(); + } + }); +} + +Vue.initDirectivesForSSR(); + +exports.ssrIncludeBooleanAttr = shared.includeBooleanAttr; +exports.pipeToNodeWritable = pipeToNodeWritable; +exports.pipeToWebWritable = pipeToWebWritable; +exports.renderToNodeStream = renderToNodeStream; +exports.renderToSimpleStream = renderToSimpleStream; +exports.renderToStream = renderToStream; +exports.renderToString = renderToString; +exports.renderToWebStream = renderToWebStream; +exports.ssrGetDirectiveProps = ssrGetDirectiveProps; +exports.ssrGetDynamicModelProps = ssrGetDynamicModelProps; +exports.ssrInterpolate = ssrInterpolate; +exports.ssrLooseContain = ssrLooseContain; +exports.ssrLooseEqual = ssrLooseEqual; +exports.ssrRenderAttr = ssrRenderAttr; +exports.ssrRenderAttrs = ssrRenderAttrs; +exports.ssrRenderClass = ssrRenderClass; +exports.ssrRenderComponent = ssrRenderComponent; +exports.ssrRenderDynamicAttr = ssrRenderDynamicAttr; +exports.ssrRenderDynamicModel = ssrRenderDynamicModel; +exports.ssrRenderList = ssrRenderList; +exports.ssrRenderSlot = ssrRenderSlot; +exports.ssrRenderSlotInner = ssrRenderSlotInner; +exports.ssrRenderStyle = ssrRenderStyle; +exports.ssrRenderSuspense = ssrRenderSuspense; +exports.ssrRenderTeleport = ssrRenderTeleport; +exports.ssrRenderVNode = renderVNode; diff --git a/node_modules/@vue/server-renderer/dist/server-renderer.d.ts b/node_modules/@vue/server-renderer/dist/server-renderer.d.ts new file mode 100644 index 0000000..610af06 --- /dev/null +++ b/node_modules/@vue/server-renderer/dist/server-renderer.d.ts @@ -0,0 +1,65 @@ +import { VNode, ComponentInternalInstance, App, Slots, Component, ComponentPublicInstance, Directive } from 'vue'; +import { Writable, Readable } from 'node:stream'; +export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared'; + +type SSRBuffer = SSRBufferItem[] & { + hasAsync?: boolean; +}; +type SSRBufferItem = string | SSRBuffer | Promise<SSRBuffer>; +type PushFn = (item: SSRBufferItem) => void; +type Props = Record<string, unknown>; +export type SSRContext = { + [key: string]: any; + teleports?: Record<string, string>; +}; +export declare function renderVNode(push: PushFn, vnode: VNode, parentComponent: ComponentInternalInstance, slotScopeId?: string): void; + +export declare function renderToString(input: App | VNode, context?: SSRContext): Promise<string>; + +export interface SimpleReadable { + push(chunk: string | null): void; + destroy(err: any): void; +} +export declare function renderToSimpleStream<T extends SimpleReadable>(input: App | VNode, context: SSRContext, stream: T): T; +/** + * @deprecated + */ +export declare function renderToStream(input: App | VNode, context?: SSRContext): Readable; +export declare function renderToNodeStream(input: App | VNode, context?: SSRContext): Readable; +export declare function pipeToNodeWritable(input: App | VNode, context: SSRContext | undefined, writable: Writable): void; +export declare function renderToWebStream(input: App | VNode, context?: SSRContext): ReadableStream; +export declare function pipeToWebWritable(input: App | VNode, context: SSRContext | undefined, writable: WritableStream): void; + +type SSRSlots = Record<string, SSRSlot>; +type SSRSlot = (props: Props, push: PushFn, parentComponent: ComponentInternalInstance | null, scopeId: string | null) => void; +export declare function ssrRenderSlot(slots: Slots | SSRSlots, slotName: string, slotProps: Props, fallbackRenderFn: (() => void) | null, push: PushFn, parentComponent: ComponentInternalInstance, slotScopeId?: string): void; +export declare function ssrRenderSlotInner(slots: Slots | SSRSlots, slotName: string, slotProps: Props, fallbackRenderFn: (() => void) | null, push: PushFn, parentComponent: ComponentInternalInstance, slotScopeId?: string, transition?: boolean): void; + +export declare function ssrRenderComponent(comp: Component, props?: Props | null, children?: Slots | SSRSlots | null, parentComponent?: ComponentInternalInstance | null, slotScopeId?: string): SSRBuffer | Promise<SSRBuffer>; + +export declare function ssrRenderTeleport(parentPush: PushFn, contentRenderFn: (push: PushFn) => void, target: string, disabled: boolean, parentComponent: ComponentInternalInstance): void; + +export declare function ssrRenderAttrs(props: Record<string, unknown>, tag?: string): string; +export declare function ssrRenderDynamicAttr(key: string, value: unknown, tag?: string): string; +export declare function ssrRenderAttr(key: string, value: unknown): string; +export declare function ssrRenderClass(raw: unknown): string; +export declare function ssrRenderStyle(raw: unknown): string; + +export declare function ssrInterpolate(value: unknown): string; + +export declare function ssrRenderList(source: unknown, renderItem: (value: unknown, key: string | number, index?: number) => void): void; + +export declare function ssrRenderSuspense(push: PushFn, { default: renderContent }: Record<string, (() => void) | undefined>): Promise<void>; + +export declare function ssrGetDirectiveProps(instance: ComponentPublicInstance, dir: Directive, value?: any, arg?: string, modifiers?: Record<string, boolean>): Record<string, any>; + +export declare const ssrLooseEqual: (a: unknown, b: unknown) => boolean; +export declare function ssrLooseContain(arr: unknown[], value: unknown): boolean; +export declare function ssrRenderDynamicModel(type: unknown, model: unknown, value: unknown): string; +export declare function ssrGetDynamicModelProps(existingProps: any, model: unknown): { + checked: true; +} | { + value: any; +} | null; + +export { renderVNode as ssrRenderVNode }; diff --git a/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.js b/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.js new file mode 100644 index 0000000..5666efa --- /dev/null +++ b/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.js @@ -0,0 +1,8571 @@ +/** +* @vue/server-renderer v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const EMPTY_ARR = Object.freeze([]) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; +function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); +} + +function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function getCurrentScope() { + return activeEffectScope; +} + +let activeSub; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + return cRef; +} + +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +const stack = []; +function pushWarningContext$1(vnode) { + stack.push(vnode); +} +function popWarningContext$1() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} + +const ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext$1(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext$1(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; +} + +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Map(); +{ + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} + +let devtools; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools) { + devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook(hook, target) { + var _a, _b; + devtools = hook; + if (devtools) { + devtools.enabled = true; + buffer.forEach(({ event, args }) => devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance$1(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance$1(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance$1(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} + +function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; + +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = NOOP; + watchStopHandle.resume = NOOP; + watchStopHandle.pause = NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} + +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); + +function ensureValidVNode$1(vnodes) { + return vnodes.some((child) => { + if (!isVNode$2(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode$1(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +{ + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; +} +function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; +} +function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } +} +function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); +} + +function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} + +function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; +} +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } +} +function callHook(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} + +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot$1(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance$1(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode$1( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode$1( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance$1(prev); + return result; +} +const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode$1(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode$2(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; +} +function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; +} +function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } +} +function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } +} +const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" +); +function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode$1) : [normalizeVNode$1(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +let supported; +let perf; +function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; +} + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode$1(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance$1( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext$1(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent$1(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext$1(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext$1(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext$1(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot$1(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext$1(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot$1(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext$1(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode$1(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode$1(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + return { + render, + hydrate, + createApp: createAppAPI(render) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +let currentBlock = null; +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function isVNode$2(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; +} +const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...args + ); +}; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = createVNodeWithArgsTransform ; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode$2(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function normalizeVNode$1(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode$2(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance$1(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); +function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } +} +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent$1(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode$2(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); +} +const isRuntimeOnly = () => true; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + instance.render = Component.render || NOOP; + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } +} ; +function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); +} +function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; +}; + +const version = "3.5.28"; +const warn = warn$1 ; +const _ssrUtils = { + createComponentInstance: createComponentInstance$1, + setupComponent: setupComponent$1, + renderComponentRoot: renderComponentRoot$1, + setCurrentRenderingInstance: setCurrentRenderingInstance$1, + isVNode: isVNode$2, + normalizeVNode: normalizeVNode$1, + getComponentPublicInstance, + ensureValidVNode: ensureValidVNode$1, + pushWarningContext: pushWarningContext$1, + popWarningContext: popWarningContext$1 +}; +const ssrUtils = _ssrUtils ; + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const semicolonRE = /[^\\];\s*$/; +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; +} +function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; +} + +const vModelText = { + }; +const vModelCheckbox = { + }; +const vModelRadio = { + }; +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (isArray(value)) { + if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; +} + +const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); +let renderer; +function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); +} +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); +} +function injectCompilerOptionsCheck(app) { + { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } +} +function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + } +} ; + +const shouldIgnoreProp = /* @__PURE__ */ makeMap( + `,key,ref,innerHTML,textContent,ref_key,ref_for` +); +function ssrRenderAttrs(props, tag) { + let ret = ""; + for (let key in props) { + if (shouldIgnoreProp(key) || isOn(key) || tag === "textarea" && key === "value" || // force as property (not rendered in SSR) + key.startsWith(".")) { + continue; + } + const value = props[key]; + if (key.startsWith("^")) key = key.slice(1); + if (key === "class" || key === "className") { + ret += ` class="${ssrRenderClass(value)}"`; + } else if (key === "style") { + ret += ` style="${ssrRenderStyle(value)}"`; + } else { + ret += ssrRenderDynamicAttr(key, value, tag); + } + } + return ret; +} +function ssrRenderDynamicAttr(key, value, tag) { + if (!isRenderableAttrValue(value)) { + return ``; + } + const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase(); + if (isBooleanAttr(attrKey)) { + return includeBooleanAttr(value) ? ` ${attrKey}` : ``; + } else if (isSSRSafeAttrName(attrKey)) { + return value === "" ? ` ${attrKey}` : ` ${attrKey}="${escapeHtml(value)}"`; + } else { + console.warn( + `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}` + ); + return ``; + } +} +function ssrRenderAttr(key, value) { + if (!isRenderableAttrValue(value)) { + return ``; + } + return ` ${key}="${escapeHtml(value)}"`; +} +function ssrRenderClass(raw) { + return escapeHtml(normalizeClass(raw)); +} +function ssrRenderStyle(raw) { + if (!raw) { + return ""; + } + if (isString(raw)) { + return escapeHtml(raw); + } + const styles = normalizeStyle(ssrResetCssVars(raw)); + return escapeHtml(stringifyStyle(styles)); +} +function ssrResetCssVars(raw) { + if (!isArray(raw) && isObject(raw)) { + const res = {}; + for (const key in raw) { + if (key.startsWith(":--")) { + res[key.slice(1)] = normalizeCssVarValue(raw[key]); + } else { + res[key] = raw[key]; + } + } + return res; + } + return raw; +} + +function ssrRenderComponent(comp, props = null, children = null, parentComponent = null, slotScopeId) { + return renderComponentVNode( + createVNode(comp, props, children), + parentComponent, + slotScopeId + ); +} + +const { ensureValidVNode } = ssrUtils; +function ssrRenderSlot(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId) { + push(`<!--[-->`); + ssrRenderSlotInner( + slots, + slotName, + slotProps, + fallbackRenderFn, + push, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); +} +function ssrRenderSlotInner(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId, transition) { + const slotFn = slots[slotName]; + if (slotFn) { + const slotBuffer = []; + const bufferedPush = (item) => { + slotBuffer.push(item); + }; + const ret = slotFn( + slotProps, + bufferedPush, + parentComponent, + slotScopeId ? " " + slotScopeId : "" + ); + if (isArray(ret)) { + const validSlotContent = ensureValidVNode(ret); + if (validSlotContent) { + renderVNodeChildren( + push, + validSlotContent, + parentComponent, + slotScopeId + ); + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } + } else { + let isEmptySlot = true; + if (transition) { + isEmptySlot = false; + } else { + for (let i = 0; i < slotBuffer.length; i++) { + if (!isComment(slotBuffer[i])) { + isEmptySlot = false; + break; + } + } + } + if (isEmptySlot) { + if (fallbackRenderFn) { + fallbackRenderFn(); + } + } else { + let start = 0; + let end = slotBuffer.length; + if (transition && slotBuffer[0] === "<!--[-->" && slotBuffer[end - 1] === "<!--]-->") { + start++; + end--; + } + if (start < end) { + for (let i = start; i < end; i++) { + push(slotBuffer[i]); + } + } else if (transition) { + push(`<!---->`); + } + } + } + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } +} +const commentTestRE = /^<!--[\s\S]*-->$/; +const commentRE = /<!--[^]*?-->/gm; +function isComment(item) { + if (typeof item !== "string" || !commentTestRE.test(item)) return false; + if (item.length <= 8) return true; + return !item.replace(commentRE, "").trim(); +} + +function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) { + parentPush("<!--teleport start-->"); + const context = parentComponent.appContext.provides[ssrContextKey]; + const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {}); + const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []); + const bufferIndex = targetBuffer.length; + let teleportContent; + if (disabled) { + contentRenderFn(parentPush); + teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`; + } else { + const { getBuffer, push } = createBuffer(); + push(`<!--teleport start anchor-->`); + contentRenderFn(push); + push(`<!--teleport anchor-->`); + teleportContent = getBuffer(); + } + targetBuffer.splice(bufferIndex, 0, teleportContent); + parentPush("<!--teleport end-->"); +} + +function ssrInterpolate(value) { + return escapeHtml(toDisplayString(value)); +} + +function ssrRenderList(source, renderItem) { + if (isArray(source) || isString(source)) { + for (let i = 0, l = source.length; i < l; i++) { + renderItem(source[i], i); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn(`The v-for range expect an integer value but got ${source}.`); + return; + } + for (let i = 0; i < source; i++) { + renderItem(i + 1, i); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + const arr = Array.from(source); + for (let i = 0, l = arr.length; i < l; i++) { + renderItem(arr[i], i); + } + } else { + const keys = Object.keys(source); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + renderItem(source[key], key, i); + } + } + } +} + +async function ssrRenderSuspense(push, { default: renderContent }) { + if (renderContent) { + renderContent(); + } else { + push(`<!---->`); + } +} + +function ssrGetDirectiveProps(instance, dir, value, arg, modifiers = {}) { + if (typeof dir !== "function" && dir.getSSRProps) { + return dir.getSSRProps( + { + dir, + instance: ssrUtils.getComponentPublicInstance(instance.$), + value, + oldValue: void 0, + arg, + modifiers + }, + null + ) || {}; + } + return {}; +} + +const ssrLooseEqual = looseEqual; +function ssrLooseContain(arr, value) { + return looseIndexOf(arr, value) > -1; +} +function ssrRenderDynamicModel(type, model, value) { + switch (type) { + case "radio": + return looseEqual(model, value) ? " checked" : ""; + case "checkbox": + return (isArray(model) ? ssrLooseContain(model, value) : model) ? " checked" : ""; + default: + return ssrRenderAttr("value", model); + } +} +function ssrGetDynamicModelProps(existingProps = {}, model) { + const { type, value } = existingProps; + switch (type) { + case "radio": + return looseEqual(model, value) ? { checked: true } : null; + case "checkbox": + return (isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null; + default: + return { value: model }; + } +} + +function ssrCompile(template, instance) { + { + throw new Error( + `On-the-fly template compilation is not supported in the ESM build of @vue/server-renderer. All templates must be pre-compiled into render functions.` + ); + } +} + +const { + createComponentInstance, + setCurrentRenderingInstance, + setupComponent, + renderComponentRoot, + normalizeVNode, + pushWarningContext, + popWarningContext +} = ssrUtils; +function createBuffer() { + let appendable = false; + const buffer = []; + return { + getBuffer() { + return buffer; + }, + push(item) { + const isStringItem = isString(item); + if (appendable && isStringItem) { + buffer[buffer.length - 1] += item; + return; + } + buffer.push(item); + appendable = isStringItem; + if (isPromise(item) || isArray(item) && item.hasAsync) { + buffer.hasAsync = true; + } + } + }; +} +function renderComponentVNode(vnode, parentComponent = null, slotScopeId) { + const instance = vnode.component = createComponentInstance( + vnode, + parentComponent, + null + ); + pushWarningContext(vnode); + const res = setupComponent( + instance, + true + /* isSSR */ + ); + popWarningContext(); + const hasAsyncSetup = isPromise(res); + let prefetches = instance.sp; + if (hasAsyncSetup || prefetches) { + const p = Promise.resolve(res).then(() => { + if (hasAsyncSetup) prefetches = instance.sp; + if (prefetches) { + return Promise.all( + prefetches.map((prefetch) => prefetch.call(instance.proxy)) + ); + } + }).catch(NOOP); + return p.then(() => renderComponentSubTree(instance, slotScopeId)); + } else { + return renderComponentSubTree(instance, slotScopeId); + } +} +function renderComponentSubTree(instance, slotScopeId) { + pushWarningContext(instance.vnode); + const comp = instance.type; + const { getBuffer, push } = createBuffer(); + if (isFunction(comp)) { + let root = renderComponentRoot(instance); + if (!comp.props) { + for (const key in instance.attrs) { + if (key.startsWith(`data-v-`)) { + (root.props || (root.props = {}))[key] = ``; + } + } + } + renderVNode(push, instance.subTree = root, instance, slotScopeId); + } else { + if ((!instance.render || instance.render === NOOP) && !instance.ssrRender && !comp.ssrRender && isString(comp.template)) { + comp.ssrRender = ssrCompile(comp.template); + } + const ssrRender = instance.ssrRender || comp.ssrRender; + if (ssrRender) { + let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0; + let hasCloned = false; + let cur = instance; + while (true) { + const scopeId = cur.vnode.scopeId; + if (scopeId) { + if (!hasCloned) { + attrs = { ...attrs }; + hasCloned = true; + } + attrs[scopeId] = ""; + } + const parent = cur.parent; + if (parent && parent.subTree && parent.subTree === cur.vnode) { + cur = parent; + } else { + break; + } + } + if (slotScopeId) { + if (!hasCloned) attrs = { ...attrs }; + const slotScopeIdList = slotScopeId.trim().split(" "); + for (let i = 0; i < slotScopeIdList.length; i++) { + attrs[slotScopeIdList[i]] = ""; + } + } + const prev = setCurrentRenderingInstance(instance); + try { + ssrRender( + instance.proxy, + push, + instance, + attrs, + // compiler-optimized bindings + instance.props, + instance.setupState, + instance.data, + instance.ctx + ); + } finally { + setCurrentRenderingInstance(prev); + } + } else if (instance.render && instance.render !== NOOP) { + renderVNode( + push, + instance.subTree = renderComponentRoot(instance), + instance, + slotScopeId + ); + } else { + const componentName = comp.name || comp.__file || `<Anonymous>`; + warn(`Component ${componentName} is missing template or render function.`); + push(`<!---->`); + } + } + popWarningContext(); + return getBuffer(); +} +function renderVNode(push, vnode, parentComponent, slotScopeId) { + const { type, shapeFlag, children, dirs, props } = vnode; + if (dirs) { + vnode.props = applySSRDirectives(vnode, props, dirs); + } + switch (type) { + case Text: + push(escapeHtml(children)); + break; + case Comment: + push( + children ? `<!--${escapeHtmlComment(children)}-->` : `<!---->` + ); + break; + case Static: + push(children); + break; + case Fragment: + if (vnode.slotScopeIds) { + slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" "); + } + push(`<!--[-->`); + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); + break; + default: + if (shapeFlag & 1) { + renderElementVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 6) { + push(renderComponentVNode(vnode, parentComponent, slotScopeId)); + } else if (shapeFlag & 64) { + renderTeleportVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 128) { + renderVNode(push, vnode.ssContent, parentComponent, slotScopeId); + } else { + warn( + "[@vue/server-renderer] Invalid VNode type:", + type, + `(${typeof type})` + ); + } + } +} +function renderVNodeChildren(push, children, parentComponent, slotScopeId) { + for (let i = 0; i < children.length; i++) { + renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId); + } +} +function renderElementVNode(push, vnode, parentComponent, slotScopeId) { + const tag = vnode.type; + let { props, children, shapeFlag, scopeId } = vnode; + let openTag = `<${tag}`; + if (props) { + openTag += ssrRenderAttrs(props, tag); + } + if (scopeId) { + openTag += ` ${scopeId}`; + } + let curParent = parentComponent; + let curVnode = vnode; + while (curParent && curVnode === curParent.subTree) { + curVnode = curParent.vnode; + if (curVnode.scopeId) { + openTag += ` ${curVnode.scopeId}`; + } + curParent = curParent.parent; + } + if (slotScopeId) { + openTag += ` ${slotScopeId}`; + } + push(openTag + `>`); + if (!isVoidTag(tag)) { + let hasChildrenOverride = false; + if (props) { + if (props.innerHTML) { + hasChildrenOverride = true; + push(props.innerHTML); + } else if (props.textContent) { + hasChildrenOverride = true; + push(escapeHtml(props.textContent)); + } else if (tag === "textarea" && props.value) { + hasChildrenOverride = true; + push(escapeHtml(props.value)); + } + } + if (!hasChildrenOverride) { + if (shapeFlag & 8) { + push(escapeHtml(children)); + } else if (shapeFlag & 16) { + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + } + } + push(`</${tag}>`); + } +} +function applySSRDirectives(vnode, rawProps, dirs) { + const toMerge = []; + for (let i = 0; i < dirs.length; i++) { + const binding = dirs[i]; + const { + dir: { getSSRProps } + } = binding; + if (getSSRProps) { + const props = getSSRProps(binding, vnode); + if (props) toMerge.push(props); + } + } + return mergeProps(rawProps || {}, ...toMerge); +} +function renderTeleportVNode(push, vnode, parentComponent, slotScopeId) { + const target = vnode.props && vnode.props.to; + const disabled = vnode.props && vnode.props.disabled; + if (!target) { + if (!disabled) { + warn(`[@vue/server-renderer] Teleport is missing target prop.`); + } + return []; + } + if (!isString(target)) { + warn( + `[@vue/server-renderer] Teleport target must be a query selector string.` + ); + return []; + } + ssrRenderTeleport( + push, + (push2) => { + renderVNodeChildren( + push2, + vnode.children, + parentComponent, + slotScopeId + ); + }, + target, + disabled || disabled === "", + parentComponent + ); +} + +const { isVNode: isVNode$1 } = ssrUtils; +function nestedUnrollBuffer(buffer, parentRet, startIndex) { + if (!buffer.hasAsync) { + return parentRet + unrollBufferSync$1(buffer); + } + let ret = parentRet; + for (let i = startIndex; i < buffer.length; i += 1) { + const item = buffer[i]; + if (isString(item)) { + ret += item; + continue; + } + if (isPromise(item)) { + return item.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, ret, i); + }); + } + const result = nestedUnrollBuffer(item, ret, 0); + if (isPromise(result)) { + return result.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, "", i); + }); + } + ret = result; + } + return ret; +} +function unrollBuffer$1(buffer) { + return nestedUnrollBuffer(buffer, "", 0); +} +function unrollBufferSync$1(buffer) { + let ret = ""; + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (isString(item)) { + ret += item; + } else { + ret += unrollBufferSync$1(item); + } + } + return ret; +} +async function renderToString(input, context = {}) { + if (isVNode$1(input)) { + return renderToString(createApp({ render: () => input }), context); + } + const vnode = createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(ssrContextKey, context); + const buffer = await renderComponentVNode(vnode); + const result = await unrollBuffer$1(buffer); + await resolveTeleports(context); + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + return result; +} +async function resolveTeleports(context) { + if (context.__teleportBuffers) { + context.teleports = context.teleports || {}; + for (const key in context.__teleportBuffers) { + context.teleports[key] = await unrollBuffer$1( + await Promise.all([context.__teleportBuffers[key]]) + ); + } + } +} + +const { isVNode } = ssrUtils; +async function unrollBuffer(buffer, stream) { + if (buffer.hasAsync) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (isPromise(item)) { + item = await item; + } + if (isString(item)) { + stream.push(item); + } else { + await unrollBuffer(item, stream); + } + } + } else { + unrollBufferSync(buffer, stream); + } +} +function unrollBufferSync(buffer, stream) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (isString(item)) { + stream.push(item); + } else { + unrollBufferSync(item, stream); + } + } +} +function renderToSimpleStream(input, context, stream) { + if (isVNode(input)) { + return renderToSimpleStream( + createApp({ render: () => input }), + context, + stream + ); + } + const vnode = createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(ssrContextKey, context); + Promise.resolve(renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => { + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + }).then(() => stream.push(null)).catch((error) => { + stream.destroy(error); + }); + return stream; +} +function renderToStream(input, context = {}) { + console.warn( + `[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead.` + ); + return renderToNodeStream(input, context); +} +function renderToNodeStream(input, context = {}) { + { + throw new Error( + `ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.` + ); + } +} +function pipeToNodeWritable(input, context = {}, writable) { + renderToSimpleStream(input, context, { + push(content) { + if (content != null) { + writable.write(content); + } else { + writable.end(); + } + }, + destroy(err) { + writable.destroy(err); + } + }); +} +function renderToWebStream(input, context = {}) { + if (typeof ReadableStream !== "function") { + throw new Error( + `ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.` + ); + } + const encoder = new TextEncoder(); + let cancelled = false; + return new ReadableStream({ + start(controller) { + renderToSimpleStream(input, context, { + push(content) { + if (cancelled) return; + if (content != null) { + controller.enqueue(encoder.encode(content)); + } else { + controller.close(); + } + }, + destroy(err) { + controller.error(err); + } + }); + }, + cancel() { + cancelled = true; + } + }); +} +function pipeToWebWritable(input, context = {}, writable) { + const writer = writable.getWriter(); + const encoder = new TextEncoder(); + let hasReady = false; + try { + hasReady = isPromise(writer.ready); + } catch (e) { + } + renderToSimpleStream(input, context, { + async push(content) { + if (hasReady) { + await writer.ready; + } + if (content != null) { + return writer.write(encoder.encode(content)); + } else { + return writer.close(); + } + }, + destroy(err) { + console.log(err); + writer.close(); + } + }); +} + +initDirectivesForSSR(); + +export { pipeToNodeWritable, pipeToWebWritable, renderToNodeStream, renderToSimpleStream, renderToStream, renderToString, renderToWebStream, ssrGetDirectiveProps, ssrGetDynamicModelProps, includeBooleanAttr as ssrIncludeBooleanAttr, ssrInterpolate, ssrLooseContain, ssrLooseEqual, ssrRenderAttr, ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, ssrRenderDynamicAttr, ssrRenderDynamicModel, ssrRenderList, ssrRenderSlot, ssrRenderSlotInner, ssrRenderStyle, ssrRenderSuspense, ssrRenderTeleport, renderVNode as ssrRenderVNode }; diff --git a/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.prod.js b/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.prod.js new file mode 100644 index 0000000..4f56d03 --- /dev/null +++ b/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.prod.js @@ -0,0 +1,5 @@ +/** +* @vue/server-renderer v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let e,t,n,l,r,i,s,o,a,u;function c(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let f={},p=[],d=()=>{},h=()=>!1,g=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),m=e=>e.startsWith("onUpdate:"),_=Object.assign,y=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},b=Object.prototype.hasOwnProperty,x=(e,t)=>b.call(e,t),S=Array.isArray,w=e=>"function"==typeof e,k=e=>"string"==typeof e,C=e=>"symbol"==typeof e,O=e=>null!==e&&"object"==typeof e,T=e=>(O(e)||w(e))&&w(e.then)&&w(e.catch),M=Object.prototype.toString,P=e=>k(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,R=c(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),j=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},E=/-\w/g,A=j(e=>e.replace(E,e=>e.slice(1).toUpperCase())),$=/\B([A-Z])/g,D=j(e=>e.replace($,"-$1").toLowerCase()),I=j(e=>e.charAt(0).toUpperCase()+e.slice(1)),N=j(e=>e?`on${I(e)}`:""),F=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},L=(e,t,n,l=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:l,value:n})},V=e=>{let t=parseFloat(e);return isNaN(t)?e:t},W=()=>e||(e="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{});function U(e){if(S(e)){let t={};for(let n=0;n<e.length;n++){let l=e[n],r=k(l)?function(e){let t={};return e.replace(q,"").split(B).forEach(e=>{if(e){let n=e.split(H);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}(l):U(l);if(r)for(let e in r)t[e]=r[e]}return t}if(k(e)||O(e))return e}let B=/;(?![^(]*\))/g,H=/:([^]+)/,q=/\/\*[^]*?\*\//g;function G(e){let t="";if(k(e))t=e;else if(S(e))for(let n=0;n<e.length;n++){let l=G(e[n]);l&&(t+=l+" ")}else if(O(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}let z=c("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),K=c("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),J="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Z=c(J),X=c(J+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");function Q(e){return!!e||""===e}let Y=/[>/="'\u0009\u000a\u000c\u0020]/,ee={},et={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"};function en(e){if(null==e)return!1;let t=typeof e;return"string"===t||"number"===t||"boolean"===t}let el=/["'&<>]/;function er(e){let t,n,l=""+e,r=el.exec(l);if(!r)return l;let i="",s=0;for(n=r.index;n<l.length;n++){switch(l.charCodeAt(n)){case 34:t=""";break;case 38:t="&";break;case 39:t="'";break;case 60:t="<";break;case 62:t=">";break;default:continue}s!==n&&(i+=l.slice(s,n)),s=n+1,i+=t}return s!==n?i+l.slice(s,n):i}let ei=/^-?>|<!--|-->|--!>|<!-$/g;function es(e,t){let n,l;if(e===t)return!0;let r="[object Date]"===(n=e,M.call(n)),i="[object Date]"===(l=t,M.call(l));if(r||i)return!!r&&!!i&&e.getTime()===t.getTime();if(r=C(e),i=C(t),r||i)return e===t;if(r=S(e),i=S(t),r||i)return!!r&&!!i&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=es(e[l],t[l]);return n}(e,t);if(r=O(e),i=O(t),r||i){if(!r||!i||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let l=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(l&&!r||!l&&r||!es(e[n],t[n]))return!1}}return String(e)===String(t)}function eo(e,t){return e.findIndex(e=>es(e,t))}let ea=e=>!!(e&&!0===e.__v_isRef),eu=e=>k(e)?e:null==e?"":S(e)||O(e)&&(e.toString===M||!w(e.toString))?ea(e)?eu(e.value):JSON.stringify(e,ec,2):String(e),ec=(e,t)=>{let n;if(ea(t))return ec(e,t.value);if("[object Map]"===(n=t,M.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],l)=>(e[ef(t,l)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,M.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>ef(e))};else{if(C(t))return ef(t);let e;if(O(t)&&!S(t)&&"[object Object]"!==(e=t,M.call(e)))return String(t)}}return t},ef=(e,t="")=>{var n;return C(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ep{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=t,!e&&t&&(this.index=(t.scopes||(t.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let n=t;try{return t=this,e()}finally{t=n}}}on(){1==++this._on&&(this.prevScope=t,t=this)}off(){this._on>0&&0==--this._on&&(t=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}let ed=new WeakSet;class eh{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,t&&t.active&&t.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,ed.has(this)&&(ed.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||eg(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,eT(this),e_(this);let e=n,t=ew;n=this,ew=!0;try{return this.fn()}finally{ey(this),n=e,ew=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)eS(e);this.deps=this.depsTail=void 0,eT(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?ed.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){eb(this)&&this.run()}get dirty(){return eb(this)}}let ev=0;function eg(e,t=!1){if(e.flags|=8,t){e.next=r,r=e;return}e.next=l,l=e}function em(){let e;if(!(--ev>0)){if(r){let e=r;for(r=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;l;){let t=l;for(l=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function e_(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ey(e){let t,n=e.depsTail,l=n;for(;l;){let e=l.prevDep;-1===l.version?(l===n&&(n=e),eS(l),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(l)):t=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=e}e.deps=t,e.depsTail=n}function eb(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ex(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ex(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eM)||(e.globalVersion=eM,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!eb(e))))return;e.flags|=2;let t=e.dep,l=n,r=ew;n=e,ew=!0;try{let n;e_(e);let l=e.fn(e._value);(0===t.version||(n=e._value,!Object.is(l,n)))&&(e.flags|=128,e._value=l,t.version++)}catch(e){throw t.version++,e}finally{n=l,ew=r,ey(e),e.flags&=-3}}function eS(e,t=!1){let{dep:n,prevSub:l,nextSub:r}=e;if(l&&(l.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=l,e.nextSub=void 0),n.subs===e&&(n.subs=l,!l&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eS(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let ew=!0,ek=[];function eC(){ek.push(ew),ew=!1}function eO(){let e=ek.pop();ew=void 0===e||e}function eT(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=n;n=void 0;try{t()}finally{n=e}}}let eM=0;class eP{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eR{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!n||!ew||n===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==n)t=this.activeLink=new eP(n,this),n.deps?(t.prevDep=n.depsTail,n.depsTail.nextDep=t,n.depsTail=t):n.deps=n.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let l=t.dep.subs;l!==t&&(t.prevSub=l,l&&(l.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=n.depsTail,t.nextDep=void 0,n.depsTail.nextDep=t,n.depsTail=t,n.deps===t&&(n.deps=e)}return t}trigger(e){this.version++,eM++,this.notify(e)}notify(e){ev++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{em()}}}let ej=new WeakMap,eE=Symbol(""),eA=Symbol(""),e$=Symbol("");function eD(e,t,l){if(ew&&n){let t=ej.get(e);t||ej.set(e,t=new Map);let n=t.get(l);n||(t.set(l,n=new eR),n.map=t,n.key=l),n.track()}}function eI(e,t,n,l,r,i){let s=ej.get(e);if(!s)return void eM++;let o=e=>{e&&e.trigger()};if(ev++,"clear"===t)s.forEach(o);else{let r=S(e),i=r&&P(n);if(r&&"length"===n){let e=Number(l);s.forEach((t,n)=>{("length"===n||n===e$||!C(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),i&&o(s.get(e$)),t){case"add":if(r)i&&o(s.get("length"));else{let t;o(s.get(eE));"[object Map]"===(t=e,M.call(t))&&o(s.get(eA))}break;case"delete":if(!r){let t;o(s.get(eE));"[object Map]"===(t=e,M.call(t))&&o(s.get(eA))}break;case"set":let a;"[object Map]"===(a=e,M.call(a))&&o(s.get(eE))}}em()}function eN(e){let t=ta(e);return t===e?t:(eD(t,"iterate",e$),ts(e)?t:t.map(tu))}function eF(e){return eD(e=ta(e),"iterate",e$),e}function eL(e,t){return ti(e)?tr(e)?tc(tu(t)):tc(t):tu(t)}let eV={__proto__:null,[Symbol.iterator](){return eW(this,Symbol.iterator,e=>eL(this,e))},concat(...e){return eN(this).concat(...e.map(e=>S(e)?eN(e):e))},entries(){return eW(this,"entries",e=>(e[1]=eL(this,e[1]),e))},every(e,t){return eB(this,"every",e,t,void 0,arguments)},filter(e,t){return eB(this,"filter",e,t,e=>e.map(e=>eL(this,e)),arguments)},find(e,t){return eB(this,"find",e,t,e=>eL(this,e),arguments)},findIndex(e,t){return eB(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eB(this,"findLast",e,t,e=>eL(this,e),arguments)},findLastIndex(e,t){return eB(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eB(this,"forEach",e,t,void 0,arguments)},includes(...e){return eq(this,"includes",e)},indexOf(...e){return eq(this,"indexOf",e)},join(e){return eN(this).join(e)},lastIndexOf(...e){return eq(this,"lastIndexOf",e)},map(e,t){return eB(this,"map",e,t,void 0,arguments)},pop(){return eG(this,"pop")},push(...e){return eG(this,"push",e)},reduce(e,...t){return eH(this,"reduce",e,t)},reduceRight(e,...t){return eH(this,"reduceRight",e,t)},shift(){return eG(this,"shift")},some(e,t){return eB(this,"some",e,t,void 0,arguments)},splice(...e){return eG(this,"splice",e)},toReversed(){return eN(this).toReversed()},toSorted(e){return eN(this).toSorted(e)},toSpliced(...e){return eN(this).toSpliced(...e)},unshift(...e){return eG(this,"unshift",e)},values(){return eW(this,"values",e=>eL(this,e))}};function eW(e,t,n){let l=eF(e),r=l[t]();return l===e||ts(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=n(e.value)),e}),r}let eU=Array.prototype;function eB(e,t,n,l,r,i){let s=eF(e),o=s!==e&&!ts(e),a=s[t];if(a!==eU[t]){let t=a.apply(e,i);return o?tu(t):t}let u=n;s!==e&&(o?u=function(t,l){return n.call(this,eL(e,t),l,e)}:n.length>2&&(u=function(t,l){return n.call(this,t,l,e)}));let c=a.call(s,u,l);return o&&r?r(c):c}function eH(e,t,n,l){let r=eF(e),i=n;return r!==e&&(ts(e)?n.length>3&&(i=function(t,l,r){return n.call(this,t,l,r,e)}):i=function(t,l,r){return n.call(this,t,eL(e,l),r,e)}),r[t](i,...l)}function eq(e,t,n){let l=ta(e);eD(l,"iterate",e$);let r=l[t](...n);return(-1===r||!1===r)&&to(n[0])?(n[0]=ta(n[0]),l[t](...n)):r}function eG(e,t,n=[]){eC(),ev++;let l=ta(e)[t].apply(e,n);return em(),eO(),l}let ez=c("__proto__,__v_isRef,__isVue"),eK=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(C));function eJ(e){C(e)||(e=String(e));let t=ta(this);return eD(t,"has",e),t.hasOwnProperty(e)}class eZ{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let l=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!l;if("__v_isReadonly"===t)return l;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(l?r?te:e7:r?e9:e5).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let i=S(e);if(!l){let e;if(i&&(e=eV[t]))return e;if("hasOwnProperty"===t)return eJ}let s=Reflect.get(e,t,tf(e)?e:n);if((C(t)?eK.has(t):ez(t))||(l||eD(e,"get",t),r))return s;if(tf(s)){let e=i&&P(t)?s:s.value;return l&&O(e)?tn(e):e}return O(s)?l?tn(s):tt(s):s}}class eX extends eZ{constructor(e=!1){super(!1,e)}set(e,t,n,l){let r=e[t],i=S(e)&&P(t);if(!this._isShallow){let e=ti(r);if(ts(n)||ti(n)||(r=ta(r),n=ta(n)),!i&&tf(r)&&!tf(n))if(e)return!0;else return r.value=n,!0}let s=i?Number(t)<e.length:x(e,t),o=Reflect.set(e,t,n,tf(e)?e:l);return e===ta(l)&&(s?Object.is(n,r)||eI(e,"set",t,n):eI(e,"add",t,n)),o}deleteProperty(e,t){let n=x(e,t);e[t];let l=Reflect.deleteProperty(e,t);return l&&n&&eI(e,"delete",t,void 0),l}has(e,t){let n=Reflect.has(e,t);return C(t)&&eK.has(t)||eD(e,"has",t),n}ownKeys(e){return eD(e,"iterate",S(e)?"length":eE),Reflect.ownKeys(e)}}let eQ=new eX,eY=new class extends eZ{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},e0=new eX(!0),e1=e=>e;function e2(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e6(e,t){let n,l=(_(n={get(n){let l=this.__v_raw,r=ta(l),i=ta(n);e||(Object.is(n,i)||eD(r,"get",n),eD(r,"get",i));let{has:s}=Reflect.getPrototypeOf(r),o=t?e1:e?tc:tu;return s.call(r,n)?o(l.get(n)):s.call(r,i)?o(l.get(i)):void(l!==r&&l.get(n))},get size(){let t=this.__v_raw;return e||eD(ta(t),"iterate",eE),t.size},has(t){let n=this.__v_raw,l=ta(n),r=ta(t);return e||(Object.is(t,r)||eD(l,"has",t),eD(l,"has",r)),t===r?n.has(t):n.has(t)||n.has(r)},forEach(n,l){let r=this,i=r.__v_raw,s=ta(i),o=t?e1:e?tc:tu;return e||eD(s,"iterate",eE),i.forEach((e,t)=>n.call(l,o(e),o(t),r))}},e?{add:e2("add"),set:e2("set"),delete:e2("delete"),clear:e2("clear")}:{add(e){t||ts(e)||ti(e)||(e=ta(e));let n=ta(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),eI(n,"add",e,e)),this},set(e,n){t||ts(n)||ti(n)||(n=ta(n));let l=ta(this),{has:r,get:i}=Reflect.getPrototypeOf(l),s=r.call(l,e);s||(e=ta(e),s=r.call(l,e));let o=i.call(l,e);return(l.set(e,n),s)?Object.is(n,o)||eI(l,"set",e,n):eI(l,"add",e,n),this},delete(e){let t=ta(this),{has:n,get:l}=Reflect.getPrototypeOf(t),r=n.call(t,e);r||(e=ta(e),r=n.call(t,e)),l&&l.call(t,e);let i=t.delete(e);return r&&eI(t,"delete",e,void 0),i},clear(){let e=ta(this),t=0!==e.size,n=e.clear();return t&&eI(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=function(...n){let r,i=this.__v_raw,s=ta(i),o="[object Map]"===(r=s,M.call(r)),a="entries"===l||l===Symbol.iterator&&o,u=i[l](...n),c=t?e1:e?tc:tu;return e||eD(s,"iterate","keys"===l&&o?eA:eE),_(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:a?[c(e[0]),c(e[1])]:c(e),done:t}}})}}),n);return(t,n,r)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(x(l,n)&&n in t?l:t,n,r)}let e8={get:e6(!1,!1)},e4={get:e6(!1,!0)},e3={get:e6(!0,!1)},e5=new WeakMap,e9=new WeakMap,e7=new WeakMap,te=new WeakMap;function tt(e){return ti(e)?e:tl(e,!1,eQ,e8,e5)}function tn(e){return tl(e,!0,eY,e3,e7)}function tl(e,t,n,l,r){var i;let s;if(!O(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(i=e).__v_skip||!Object.isExtensible(i)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=i,M.call(s)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?l:n);return r.set(e,u),u}function tr(e){return ti(e)?tr(e.__v_raw):!!(e&&e.__v_isReactive)}function ti(e){return!!(e&&e.__v_isReadonly)}function ts(e){return!!(e&&e.__v_isShallow)}function to(e){return!!e&&!!e.__v_raw}function ta(e){let t=e&&e.__v_raw;return t?ta(t):e}let tu=e=>O(e)?tt(e):e,tc=e=>O(e)?tn(e):e;function tf(e){return!!e&&!0===e.__v_isRef}let tp={get:(e,t,n)=>{var l;return"__v_raw"===t?e:tf(l=Reflect.get(e,t,n))?l.value:l},set:(e,t,n,l)=>{let r=e[t];return tf(r)&&!tf(n)?(r.value=n,!0):Reflect.set(e,t,n,l)}};function td(e){return tr(e)?e:new Proxy(e,tp)}class th{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eR(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eM-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&n!==this)return eg(this,!0),!0}get value(){let e=this.dep.track();return ex(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tv={},tg=new WeakMap;function tm(e,t=1/0,n){if(t<=0||!O(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tf(e))tm(e.value,t,n);else if(S(e))for(let l=0;l<e.length;l++)tm(e[l],t,n);else{let l,r;if("[object Set]"===(l=e,M.call(l))||"[object Map]"===(r=e,M.call(r)))e.forEach(e=>{tm(e,t,n)});else{let l;if("[object Object]"===(l=e,M.call(l))){for(let l in e)tm(e[l],t,n);for(let l of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,l)&&tm(e[l],t,n)}}}return e}function t_(e,t,n,l){try{return l?e(...l):e()}catch(e){tb(e,t,n)}}function ty(e,t,n,l){if(w(e)){let r=t_(e,t,n,l);return r&&T(r)&&r.catch(e=>{tb(e,t,n)}),r}if(S(e)){let r=[];for(let i=0;i<e.length;i++)r.push(ty(e[i],t,n,l));return r}}function tb(e,t,n,l=!0){let r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||f;if(t){let l=t.parent,r=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){let t=l.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return}l=l.parent}if(i){eC(),t_(i,null,10,[e,r,s]),eO();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,l,s)}let tx=[],tS=-1,tw=[],tk=null,tC=0,tO=Promise.resolve(),tT=null;function tM(e){let t=tT||tO;return e?t.then(this?e.bind(this):e):t}function tP(e){if(!(1&e.flags)){let t=tA(e),n=tx[tx.length-1];!n||!(2&e.flags)&&t>=tA(n)?tx.push(e):tx.splice(function(e){let t=tS+1,n=tx.length;for(;t<n;){let l=t+n>>>1,r=tx[l],i=tA(r);i<e||i===e&&2&r.flags?t=l+1:n=l}return t}(t),0,e),e.flags|=1,tR()}}function tR(){tT||(tT=tO.then(function e(t){try{for(tS=0;tS<tx.length;tS++){let e=tx[tS];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),t_(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tS<tx.length;tS++){let e=tx[tS];e&&(e.flags&=-2)}tS=-1,tx.length=0,tE(),tT=null,(tx.length||tw.length)&&e()}}))}function tj(e,t,n=tS+1){for(;n<tx.length;n++){let t=tx[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tx.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function tE(e){if(tw.length){let e=[...new Set(tw)].sort((e,t)=>tA(e)-tA(t));if(tw.length=0,tk)return void tk.push(...e);for(tC=0,tk=e;tC<tk.length;tC++){let e=tk[tC];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}tk=null,tC=0}}let tA=e=>null==e.id?2&e.flags?-1:1/0:e.id,t$=null,tD=null;function tI(e){let t=t$;return t$=e,tD=e&&e.type.__scopeId||null,t}function tN(e,t,n,l){let r=e.dirs,i=t&&t.dirs;for(let s=0;s<r.length;s++){let o=r[s];i&&(o.oldValue=i[s].value);let a=o.dir[l];a&&(eC(),ty(a,n,8,[e.el,o,e,t]),eO())}}function tF(e,t,n=!1){let l=lr();if(l||nS){let r=nS?nS._context.provides:l?null==l.parent||l.ce?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&w(t)?t.call(l&&l.proxy):t}}let tL=Symbol.for("v-scx");function tV(e,n,l=f){let r,{immediate:i,flush:s}=l,o=_({},l),u=n&&i||!n&&"post"!==s;if(la){if("sync"===s){let e=tF(tL);r=e.__watcherHandles||(e.__watcherHandles=[])}else if(!u){let e=()=>{};return e.stop=d,e.resume=d,e.pause=d,e}}let c=ll;o.call=(e,t,n)=>ty(e,c,t,n);let p=!1;"post"===s?o.scheduler=e=>{nB(e,c&&c.suspense)}:"sync"!==s&&(p=!0,o.scheduler=(e,t)=>{t?e():tP(e)}),o.augmentJob=e=>{n&&(e.flags|=4),p&&(e.flags|=2,c&&(e.id=c.uid,e.i=c))};let h=function(e,n,l=f){let r,i,s,o,{immediate:u,deep:c,once:p,scheduler:h,augmentJob:g,call:m}=l,_=e=>c?e:ts(e)||!1===c||0===c?tm(e,1):tm(e),b=!1,x=!1;if(tf(e)?(i=()=>e.value,b=ts(e)):tr(e)?(i=()=>_(e),b=!0):S(e)?(x=!0,b=e.some(e=>tr(e)||ts(e)),i=()=>e.map(e=>tf(e)?e.value:tr(e)?_(e):w(e)?m?m(e,2):e():void 0)):i=w(e)?n?m?()=>m(e,2):e:()=>{if(s){eC();try{s()}finally{eO()}}let t=a;a=r;try{return m?m(e,3,[o]):e(o)}finally{a=t}}:d,n&&c){let e=i,t=!0===c?1/0:c;i=()=>tm(e(),t)}let k=t,C=()=>{r.stop(),k&&k.active&&y(k.effects,r)};if(p&&n){let e=n;n=(...t)=>{e(...t),C()}}let O=x?Array(e.length).fill(tv):tv,T=e=>{if(1&r.flags&&(r.dirty||e))if(n){let e=r.run();if(c||b||(x?e.some((e,t)=>!Object.is(e,O[t])):!Object.is(e,O))){s&&s();let t=a;a=r;try{let t=[e,O===tv?void 0:x&&O[0]===tv?[]:O,o];O=e,m?m(n,3,t):n(...t)}finally{a=t}}}else r.run()};return g&&g(T),(r=new eh(i)).scheduler=h?()=>h(T,!1):T,o=e=>(function(e,t=!1,n=a){if(n){let t=tg.get(n);t||tg.set(n,t=[]),t.push(e)}})(e,!1,r),s=r.onStop=()=>{let e=tg.get(r);if(e){if(m)m(e,4);else for(let t of e)t();tg.delete(r)}},n?u?T(!0):O=r.run():h?h(T.bind(null,!0),!0):r.run(),C.pause=r.pause.bind(r),C.resume=r.resume.bind(r),C.stop=C,C}(e,n,o);return la&&(r?r.push(h):u&&h()),h}function tW(e,t,n){let l,r=this.proxy,i=k(e)?e.includes(".")?tU(r,e):()=>r[e]:e.bind(r,r);w(t)?l=t:(l=t.handler,n=t);let s=li(this),o=tV(i,l.bind(r),n);return s(),o}function tU(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let tB=Symbol("_vte"),tH=Symbol("_leaveCb");function tq(e,t){6&e.shapeFlag&&e.component?(e.transition=t,tq(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function tG(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function tz(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let tK=new WeakMap;function tJ(e,t,n,l,r=!1){if(S(e))return void e.forEach((e,i)=>tJ(e,t&&(S(t)?t[i]:t),n,l,r));if(tX(l)&&!r){512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&tJ(e,t,n,l.component.subTree);return}let i=4&l.shapeFlag?ld(l.component):l.el,s=r?null:i,{i:o,r:a}=e,u=t&&t.r,c=o.refs===f?o.refs={}:o.refs,p=o.setupState,d=ta(p),g=p===f?h:e=>!tz(c,e)&&x(d,e),m=(e,t)=>!(t&&tz(c,t));if(null!=u&&u!==a&&(tZ(t),k(u)?(c[u]=null,g(u)&&(p[u]=null)):tf(u)&&(m(u,t.k)&&(u.value=null),t.k&&(c[t.k]=null))),w(a))t_(a,o,12,[s,c]);else{let t=k(a),l=tf(a);if(t||l){let o=()=>{if(e.f){let n=t?g(a)?p[a]:c[a]:m()||!e.k?a.value:c[e.k];if(r)S(n)&&y(n,i);else if(S(n))n.includes(i)||n.push(i);else if(t)c[a]=[i],g(a)&&(p[a]=c[a]);else{let t=[i];m(a,e.k)&&(a.value=t),e.k&&(c[e.k]=t)}}else t?(c[a]=s,g(a)&&(p[a]=s)):l&&(m(a,e.k)&&(a.value=s),e.k&&(c[e.k]=s))};if(s){let t=()=>{o(),tK.delete(e)};t.id=-1,tK.set(e,t),nB(t,n)}else tZ(e),o()}}}function tZ(e){let t=tK.get(e);t&&(t.flags|=8,tK.delete(e))}let tX=e=>!!e.type.__asyncLoader,tQ=e=>e.type.__isKeepAlive;function tY(e,t){t1(e,"a",t)}function t0(e,t){t1(e,"da",t)}function t1(e,t,n=ll){let l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(t2(t,l,n),n){let e=n.parent;for(;e&&e.parent;)tQ(e.parent.vnode)&&function(e,t,n,l){let r=t2(t,e,l,!0);t7(()=>{y(l[t],r)},n)}(l,t,n,e),e=e.parent}}function t2(e,t,n=ll,l=!1){if(n){let r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{eC();let r=li(n),i=ty(t,n,e,l);return r(),eO(),i});return l?r.unshift(i):r.push(i),i}}let t6=e=>(t,n=ll)=>{la&&"sp"!==e||t2(e,(...e)=>t(...e),n)},t8=t6("bm"),t4=t6("m"),t3=t6("bu"),t5=t6("u"),t9=t6("bum"),t7=t6("um"),ne=t6("sp"),nt=t6("rtg"),nn=t6("rtc");function nl(e,t=ll){t2("ec",e,t)}let nr=Symbol.for("v-ndc"),ni=e=>e?lo(e)?ld(e):ni(e.parent):null,ns=_(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ni(e.parent),$root:e=>ni(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>np(e),$forceUpdate:e=>e.f||(e.f=()=>{tP(e.update)}),$nextTick:e=>e.n||(e.n=tM.bind(e.proxy)),$watch:e=>tW.bind(e)}),no=(e,t)=>e!==f&&!e.__isScriptSetup&&x(e,t),na={get({_:e},t){let n,l;if("__v_skip"===t)return!0;let{ctx:r,setupState:i,data:s,props:o,accessCache:a,type:u,appContext:c}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return i[t];case 2:return s[t];case 4:return r[t];case 3:return o[t]}else{if(no(i,t))return a[t]=1,i[t];if(s!==f&&x(s,t))return a[t]=2,s[t];if(x(o,t))return a[t]=3,o[t];if(r!==f&&x(r,t))return a[t]=4,r[t];nc&&(a[t]=0)}}let p=ns[t];return p?("$attrs"===t&&eD(e.attrs,"get",""),p(e)):(n=u.__cssModules)&&(n=n[t])?n:r!==f&&x(r,t)?(a[t]=4,r[t]):x(l=c.config.globalProperties,t)?l[t]:void 0},set({_:e},t,n){let{data:l,setupState:r,ctx:i}=e;return no(r,t)?(r[t]=n,!0):l!==f&&x(l,t)?(l[t]=n,!0):!x(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:i,type:s}},o){let a;return!!(n[o]||e!==f&&"$"!==o[0]&&x(e,o)||no(t,o)||x(i,o)||x(l,o)||x(ns,o)||x(r.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:x(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function nu(e){return S(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let nc=!0;function nf(e,t,n){ty(S(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function np(e){let t,n=e.type,{mixins:l,extends:r}=n,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:i.length||l||r?(t={},i.length&&i.forEach(e=>nd(t,e,o,!0)),nd(t,n,o)):t=n,O(n)&&s.set(n,t),t}function nd(e,t,n,l=!1){let{mixins:r,extends:i}=t;for(let s in i&&nd(e,i,n,!0),r&&r.forEach(t=>nd(e,t,n,!0)),t)if(l&&"expose"===s);else{let l=nh[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}let nh={data:nv,props:ny,emits:ny,methods:n_,computed:n_,beforeCreate:nm,created:nm,beforeMount:nm,mounted:nm,beforeUpdate:nm,updated:nm,beforeDestroy:nm,beforeUnmount:nm,destroyed:nm,unmounted:nm,activated:nm,deactivated:nm,errorCaptured:nm,serverPrefetch:nm,components:n_,directives:n_,watch:function(e,t){if(!e)return t;if(!t)return e;let n=_(Object.create(null),e);for(let l in t)n[l]=nm(e[l],t[l]);return n},provide:nv,inject:function(e,t){return n_(ng(e),ng(t))}};function nv(e,t){return t?e?function(){return _(w(e)?e.call(this,this):e,w(t)?t.call(this,this):t)}:t:e}function ng(e){if(S(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function nm(e,t){return e?[...new Set([].concat(e,t))]:t}function n_(e,t){return e?_(Object.create(null),e,t):t}function ny(e,t){return e?S(e)&&S(t)?[...new Set([...e,...t])]:_(Object.create(null),nu(e),nu(null!=t?t:{})):t}function nb(){return{app:null,config:{isNativeTag:h,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let nx=0,nS=null;function nw(e,t,...n){let l,r;if(e.isUnmounted)return;let i=e.vnode.props||f,s=n,o=t.startsWith("update:"),a=o&&("modelValue"===(r=t.slice(7))||"model-value"===r?i.modelModifiers:i[`${r}Modifiers`]||i[`${A(r)}Modifiers`]||i[`${D(r)}Modifiers`]);a&&(a.trim&&(s=n.map(e=>k(e)?e.trim():e)),a.number&&(s=n.map(V)));let u=i[l=N(t)]||i[l=N(A(t))];!u&&o&&(u=i[l=N(D(t))]),u&&ty(u,e,6,s);let c=i[l+"Once"];if(c){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,ty(c,e,6,s)}}let nk=new WeakMap;function nC(e,t){return!!e&&!!g(t)&&(x(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||x(e,D(t))||x(e,t))}function nO(e){let t,n,{type:l,vnode:r,proxy:i,withProxy:s,propsOptions:[o],slots:a,attrs:u,emit:c,render:f,renderCache:p,props:d,data:h,setupState:g,ctx:_,inheritAttrs:y}=e,b=tI(e);try{if(4&r.shapeFlag){let e=s||i;t=n4(f.call(e,e,p,d,g,h,_)),n=u}else t=n4(l.length>1?l(d,{attrs:u,slots:a,emit:c}):l(d,null)),n=l.props?u:nT(u)}catch(n){tb(n,e,1),t=n6(nJ)}let x=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=x;e.length&&7&t&&(o&&e.some(m)&&(n=nM(n,o)),x=n8(x,n,!1,!0))}return r.dirs&&((x=n8(x,null,!1,!0)).dirs=x.dirs?x.dirs.concat(r.dirs):r.dirs),r.transition&&tq(x,r.transition),t=x,tI(b),t}let nT=e=>{let t;for(let n in e)("class"===n||"style"===n||g(n))&&((t||(t={}))[n]=e[n]);return t},nM=(e,t)=>{let n={};for(let l in e)m(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function nP(e,t,n){let l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let r=0;r<l.length;r++){let i=l[r];if(nR(t,e,i)&&!nC(n,i))return!0}return!1}function nR(e,t,n){let l=e[n],r=t[n];return"style"===n&&O(l)&&O(r)?!es(l,r):l!==r}let nj={},nE=e=>Object.getPrototypeOf(e)===nj;function nA(e,t,n,l){let r,[i,s]=e.propsOptions,o=!1;if(t)for(let a in t){let u;if(R(a))continue;let c=t[a];i&&x(i,u=A(a))?s&&s.includes(u)?(r||(r={}))[u]=c:n[u]=c:nC(e.emitsOptions,a)||a in l&&c===l[a]||(l[a]=c,o=!0)}if(s){let t=ta(n),l=r||f;for(let r=0;r<s.length;r++){let o=s[r];n[o]=n$(i,t,o,l[o],e,!x(l,o))}}return o}function n$(e,t,n,l,r,i){let s=e[n];if(null!=s){let e=x(s,"default");if(e&&void 0===l){let e=s.default;if(s.type!==Function&&!s.skipFactory&&w(e)){let{propsDefaults:i}=r;if(n in i)l=i[n];else{let s=li(r);l=i[n]=e.call(null,t),s()}}else l=e;r.ce&&r.ce._setProp(n,l)}s[0]&&(i&&!e?l=!1:s[1]&&(""===l||l===D(n))&&(l=!0))}return l}let nD=new WeakMap;function nI(e){return!("$"===e[0]||R(e))}let nN=e=>"_"===e||"_ctx"===e||"$stable"===e,nF=e=>S(e)?e.map(n4):[n4(e)],nL=(e,t,n)=>{if(t._n)return t;let l=function(e,t=t$){if(!t||e._n)return e;let n=(...l)=>{let r;n._d&&nQ(-1);let i=tI(t);try{r=e(...l)}finally{tI(i),n._d&&nQ(1)}return r};return n._n=!0,n._c=!0,n._d=!0,n}((...e)=>nF(t(...e)),n);return l._c=!1,l},nV=(e,t,n)=>{let l=e._ctx;for(let n in e){if(nN(n))continue;let r=e[n];if(w(r))t[n]=nL(n,r,l);else if(null!=r){let e=nF(r);t[n]=()=>e}}},nW=(e,t)=>{let n=nF(t);e.slots.default=()=>n},nU=(e,t,n)=>{for(let l in t)(n||!nN(l))&&(e[l]=t[l])},nB=function(e,t){if(t&&t.pendingBranch)S(e)?t.effects.push(...e):t.effects.push(e);else S(e)?tw.push(...e):tk&&-1===e.id?tk.splice(tC+1,0,e):1&e.flags||(tw.push(e),e.flags|=1),tR()};function nH({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function nq({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function nG(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let nz=Symbol.for("v-fgt"),nK=Symbol.for("v-txt"),nJ=Symbol.for("v-cmt"),nZ=Symbol.for("v-stc"),nX=1;function nQ(e,t=!1){nX+=e}function nY(e){return!!e&&!0===e.__v_isVNode}function n0(e,t){return e.type===t.type&&e.key===t.key}let n1=({key:e})=>null!=e?e:null,n2=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?k(e)||tf(e)||w(e)?{i:t$,r:e,k:t,f:!!n}:e:null),n6=function(e,t=null,n=null,l=0,r=null,i=!1){var s,o;if(e&&e!==nr||(e=nJ),nY(e)){let l=n8(e,t,!0);return n&&n5(l,n),nX>0,l.patchFlag=-2,l}if(w(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=(o=t)?to(o)||nE(o)?_({},o):o:null;e&&!k(e)&&(t.class=G(e)),O(n)&&(to(n)&&!S(n)&&(n=_({},n)),t.style=U(n))}let a=k(e)?1:e.__isSuspense?128:e.__isTeleport?64:O(e)?4:2*!!w(e);return function(e,t=null,n=null,l=0,r=null,i=+(e!==nz),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&n1(t),ref:t&&n2(t),scopeId:tD,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:l,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:t$};return o?(n5(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=k(n)?8:16),nX>0,a}(e,t,n,l,r,a,i,!0)};function n8(e,t,n=!1,l=!1){let{props:r,ref:i,patchFlag:s,children:o,transition:a}=e,u=t?n9(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&n1(u),ref:t&&t.ref?n&&i?S(i)?i.concat(n2(t)):[i,n2(t)]:n2(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==nz?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&n8(e.ssContent),ssFallback:e.ssFallback&&n8(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&l&&tq(c,a.clone(c)),c}function n4(e){return null==e||"boolean"==typeof e?n6(nJ):S(e)?n6(nz,null,e.slice()):nY(e)?n3(e):n6(nK,null,String(e))}function n3(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:n8(e)}function n5(e,t){let n=0,{shapeFlag:l}=e;if(null==t)t=null;else if(S(t))n=16;else if("object"==typeof t)if(65&l){let n=t.default;n&&(n._c&&(n._d=!1),n5(e,n()),n._c&&(n._d=!0));return}else{n=32;let l=t._;l||nE(t)?3===l&&t$&&(1===t$.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t$}else w(t)?(t={default:t,_ctx:t$},n=32):(t=String(t),64&l?(n=16,t=[function(e=" ",t=0){return n6(nK,null,e,t)}(t)]):n=8);e.children=t,e.shapeFlag|=n}function n9(...e){let t={};for(let n=0;n<e.length;n++){let l=e[n];for(let e in l)if("class"===e)t.class!==l.class&&(t.class=G([t.class,l.class]));else if("style"===e)t.style=U([t.style,l.style]);else if(g(e)){let n=t[e],r=l[e];r&&n!==r&&!(S(n)&&n.includes(r))&&(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=l[e])}return t}function n7(e,t,n,l=null){ty(e,t,7,[n,l])}let le=nb(),lt=0;function ln(e,t,n){let l=e.type,r=(t?t.appContext:e.appContext)||le,i={uid:lt++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ep(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,l=!1){let r=l?nD:n.propsCache,i=r.get(t);if(i)return i;let s=t.props,o={},a=[],u=!1;if(!w(t)){let r=t=>{u=!0;let[l,r]=e(t,n,!0);_(o,l),r&&a.push(...r)};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!s&&!u)return O(t)&&r.set(t,p),p;if(S(s))for(let e=0;e<s.length;e++){let t=A(s[e]);nI(t)&&(o[t]=f)}else if(s)for(let e in s){let t=A(e);if(nI(t)){let n=s[e],l=o[t]=S(n)||w(n)?{type:n}:_({},n),r=l.type,i=!1,u=!0;if(S(r))for(let e=0;e<r.length;++e){let t=r[e],n=w(t)&&t.name;if("Boolean"===n){i=!0;break}"String"===n&&(u=!1)}else i=w(r)&&"Boolean"===r.name;l[0]=i,l[1]=u,(i||x(l,"default"))&&a.push(t)}}let c=[o,a];return O(t)&&r.set(t,c),c}(l,r),emitsOptions:function e(t,n,l=!1){let r=l?nk:n.emitsCache,i=r.get(t);if(void 0!==i)return i;let s=t.emits,o={},a=!1;if(!w(t)){let r=t=>{let l=e(t,n,!0);l&&(a=!0,_(o,l))};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return s||a?(S(s)?s.forEach(e=>o[e]=null):_(o,s),O(t)&&r.set(t,o),o):(O(t)&&r.set(t,null),null)}(l,r),emit:null,emitted:null,propsDefaults:f,inheritAttrs:l.inheritAttrs,ctx:f,data:f,props:f,attrs:f,slots:f,refs:f,setupState:f,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=nw.bind(null,i),e.ce&&e.ce(i),i}let ll=null,lr=()=>ll||t$;{let e=W(),t=(t,n)=>{let l;return(l=e[t])||(l=e[t]=[]),l.push(n),e=>{l.length>1?l.forEach(t=>t(e)):l[0](e)}};i=t("__VUE_INSTANCE_SETTERS__",e=>ll=e),s=t("__VUE_SSR_SETTERS__",e=>la=e)}let li=e=>{let t=ll;return i(e),e.scope.on(),()=>{e.scope.off(),i(t)}},ls=()=>{ll&&ll.scope.off(),i(null)};function lo(e){return 4&e.vnode.shapeFlag}let la=!1;function lu(e,t=!1,n=!1){t&&s(t);let{props:l,children:r}=e.vnode,i=lo(e);!function(e,t,n,l=!1){let r={},i=Object.create(nj);for(let n in e.propsDefaults=Object.create(null),nA(e,t,r,i),e.propsOptions[0])n in r||(r[n]=void 0);n?e.props=l?r:tl(r,!1,e0,e4,e9):e.type.props?e.props=r:e.props=i,e.attrs=i}(e,l,i,t);var o=n||t;let a=e.slots=Object.create(nj);if(32&e.vnode.shapeFlag){let e=r._;e?(nU(a,r,o),o&&L(a,"_",e,!0)):nV(r,a)}else r&&nW(e,r);let u=i?function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,na);let{setup:l}=n;if(l){var r;eC();let n=e.setupContext=l.length>1?{attrs:new Proxy((r=e).attrs,lp),slots:r.slots,emit:r.emit,expose:e=>{r.exposed=e||{}}}:null,i=li(e),s=t_(l,e,0,[e.props,n]),o=T(s);if(eO(),i(),(o||e.sp)&&!tX(e)&&tG(e),o){if(s.then(ls,ls),t)return s.then(t=>{lc(e,t)}).catch(t=>{tb(t,e,0)});e.asyncDep=s}else lc(e,s)}else lf(e)}(e,t):void 0;return t&&s(!1),u}function lc(e,t,n){w(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:O(t)&&(e.setupState=td(t)),lf(e)}function lf(e,t,n){let l=e.type;e.render||(e.render=l.render||d);{let t=li(e);eC();try{!function(e){let t=np(e),n=e.proxy,l=e.ctx;nc=!1,t.beforeCreate&&nf(t.beforeCreate,e,"bc");let{data:r,computed:i,methods:s,watch:o,provide:a,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:h,updated:g,activated:m,deactivated:_,beforeUnmount:y,unmounted:b,render:x,renderTracked:C,renderTriggered:T,errorCaptured:M,serverPrefetch:P,expose:R,inheritAttrs:j,components:E,directives:A}=t;if(u&&function(e,t,n=d){for(let n in S(e)&&(e=ng(e)),e){let l,r=e[n];tf(l=O(r)?"default"in r?tF(r.from||n,r.default,!0):tF(r.from||n):tF(r))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(u,l,null),s)for(let e in s){let t=s[e];w(t)&&(l[e]=t.bind(n))}if(r){let t=r.call(n,n);O(t)&&(e.data=tt(t))}if(nc=!0,i)for(let e in i){let t=i[e],r=w(t)?t.bind(n,n):w(t.get)?t.get.bind(n,n):d,s=lh({get:r,set:!w(t)&&w(t.set)?t.set.bind(n):d});Object.defineProperty(l,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,l,r){let i=r.includes(".")?tU(l,r):()=>l[r];if(k(t)){let e=n[t];w(e)&&tV(i,e,void 0)}else if(w(t))tV(i,t.bind(l),void 0);else if(O(t))if(S(t))t.forEach(t=>e(t,n,l,r));else{let e=w(t.handler)?t.handler.bind(l):n[t.handler];w(e)&&tV(i,e,t)}}(o[e],l,n,e);if(a){let e=w(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{var n=e[t];if(ll){let e=ll.provides,l=ll.parent&&ll.parent.provides;l===e&&(e=ll.provides=Object.create(l)),e[t]=n}})}function $(e,t){S(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(c&&nf(c,e,"c"),$(t8,f),$(t4,p),$(t3,h),$(t5,g),$(tY,m),$(t0,_),$(nl,M),$(nn,C),$(nt,T),$(t9,y),$(t7,b),$(ne,P),S(R))if(R.length){let t=e.exposed||(e.exposed={});R.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===d&&(e.render=x),null!=j&&(e.inheritAttrs=j),E&&(e.components=E),A&&(e.directives=A),P&&tG(e)}(e)}finally{eO(),t()}}}let lp={get:(e,t)=>(eD(e,"get",""),e[t])};function ld(e){var t;return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(td((!x(t=e.exposed,"__v_skip")&&Object.isExtensible(t)&&L(t,"__v_skip",!0),t)),{get:(t,n)=>n in t?t[n]:n in ns?ns[n](e):void 0,has:(e,t)=>t in e||t in ns})):e.proxy}let lh=(e,t)=>(function(e,t=!1){let n,l;return w(e)?n=e:(n=e.get,l=e.set),new th(n,l,t)})(e,la),lv={createComponentInstance:ln,setupComponent:lu,renderComponentRoot:nO,setCurrentRenderingInstance:tI,isVNode:nY,normalizeVNode:n4,getComponentPublicInstance:ld,ensureValidVNode:function e(t){return t.some(t=>!nY(t)||t.type!==nJ&&(t.type!==nz||!!e(t.children)))?t:null},pushWarningContext:function(e){},popWarningContext:function(){}},lg="u">typeof window&&window.trustedTypes;if(lg)try{u=lg.createPolicy("vue",{createHTML:e=>e})}catch(e){}let lm=u?e=>u.createHTML(e):e=>e,l_="u">typeof document?document:null,ly=l_&&l_.createElement("template"),lb=Symbol("_vtc"),lx=Symbol("_vod"),lS=Symbol("_vsh"),lw=Symbol(""),lk=/(?:^|;)\s*display\s*:/,lC=/\s*!important$/;function lO(e,t,n){if(S(n))n.forEach(n=>lO(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let l=function(e,t){let n=lM[t];if(n)return n;let l=A(t);if("filter"!==l&&l in e)return lM[t]=l;l=I(l);for(let n=0;n<lT.length;n++){let r=lT[n]+l;if(r in e)return lM[t]=r}return t}(e,t);lC.test(n)?e.setProperty(D(l),n.replace(lC,""),"important"):e[l]=n}}let lT=["Webkit","Moz","ms"],lM={},lP="http://www.w3.org/1999/xlink";function lR(e,t,n,l,r,i=Z(t)){l&&t.startsWith("xlink:")?null==n?e.removeAttributeNS(lP,t.slice(6,t.length)):e.setAttributeNS(lP,t,n):null==n||i&&!Q(n)?e.removeAttribute(t):e.setAttribute(t,i?"":C(n)?String(n):n)}function lj(e,t,n,l,r){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?lm(n):n);return}let i=e.tagName;if("value"===t&&"PROGRESS"!==i&&!i.includes("-")){let l="OPTION"===i?e.getAttribute("value")||"":e.value,r=null==n?"checkbox"===e.type?"on":"":String(n);l===r&&"_value"in e||(e.value=r),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let l=typeof e[t];"boolean"===l?n=Q(n):null==n&&"string"===l?(n="",s=!0):"number"===l&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(r||t)}let lE=Symbol("_vei"),lA=/(?:Once|Passive|Capture)$/,l$=0,lD=Promise.resolve(),lI=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lN=_({patchProp:(e,t,n,l,r,i)=>{let s="svg"===r;if("class"===t){var o;let t;o=l,(t=e[lb])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let l=e.style,r=k(n),i=!1;if(n&&!r){if(t)if(k(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lO(l,t,"")}else for(let e in t)null==n[e]&&lO(l,e,"");for(let e in n)"display"===e&&(i=!0),lO(l,e,n[e])}else if(r){if(t!==n){let e=l[lw];e&&(n+=";"+e),l.cssText=n,i=lk.test(n)}}else t&&e.removeAttribute("style");lx in e&&(e[lx]=i?l.display:"",e[lS]&&(l.display="none"))}(e,n,l):g(t)?m(t)||function(e,t,n,l=null){let r=e[lE]||(e[lE]={}),i=r[t];if(n&&i)i.value=n;else{let[a,u]=function(e){let t;if(lA.test(e)){let n;for(t={};n=e.match(lA);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):D(e.slice(2)),t]}(t);if(n){var s,o;let i,c=r[t]=(s=n,o=l,(i=e=>{if(e._vts){if(e._vts<=i.attached)return}else e._vts=Date.now();ty(function(e,t){if(!S(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,i.value),o,5,[e])}).value=s,i.attached=l$||(lD.then(()=>l$=0),l$=Date.now()),i);e.addEventListener(a,c,u)}else i&&(e.removeEventListener(a,i,u),r[t]=void 0)}}(e,t,l,i):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,l){if(l)return!!("innerHTML"===t||"textContent"===t||t in e&&lI(t)&&w(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lI(t)&&k(n))&&t in e}(e,t,l,s))?e._isVueCE&&(/[A-Z]/.test(t)||!k(l))?lj(e,A(t),l,i,t):("true-value"===t?e._trueValue=l:"false-value"===t&&(e._falseValue=l),lR(e,t,l,s)):(lj(e,t,l),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lR(e,t,l,s,i,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{let r="svg"===t?l_.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?l_.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?l_.createElement(e,{is:n}):l_.createElement(e);return"select"===e&&l&&null!=l.multiple&&r.setAttribute("multiple",l.multiple),r},createText:e=>l_.createTextNode(e),createComment:e=>l_.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>l_.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,l,r,i){let s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{ly.innerHTML=lm("svg"===l?`<svg>${e}</svg>`:"mathml"===l?`<math>${e}</math>`:e);let r=ly.content;if("svg"===l||"mathml"===l){let e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),lF=(...e)=>{let t=(o||(o=function(e){let t;W().__VUE__=!0;let{insert:n,remove:l,patchProp:r,createElement:i,createText:s,createComment:o,setText:a,setElementText:u,parentNode:c,nextSibling:h,setScopeId:g=d,insertStaticContent:m}=e,y=(e,t,n,l=null,r=null,i=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!n0(e,t)&&(l=ee(e),J(e,r,i,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:u,ref:c,shapeFlag:f}=t;switch(u){case nK:b(e,t,n,l);break;case nJ:k(e,t,n,l);break;case nZ:null==e&&C(t,n,l,s);break;case nz:N(e,t,n,l,r,i,s,o,a);break;default:1&f?T(e,t,n,l,r,i,s,o,a):6&f?L(e,t,n,l,r,i,s,o,a):64&f?u.process(e,t,n,l,r,i,s,o,a,el):128&f&&u.process(e,t,n,l,r,i,s,o,a,el)}null!=c&&r?tJ(c,e&&e.ref,i,t||e,!t):null==c&&e&&null!=e.ref&&tJ(e.ref,null,i,e,!0)},b=(e,t,l,r)=>{if(null==e)n(t.el=s(t.children),l,r);else{let n=t.el=e.el;t.children!==e.children&&a(n,t.children)}},k=(e,t,l,r)=>{null==e?n(t.el=o(t.children||""),l,r):t.el=e.el},C=(e,t,n,l)=>{[e.el,e.anchor]=m(e.children,t,n,l,e.el,e.anchor)},T=(e,t,n,l,r,i,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)M(t,n,l,r,i,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),E(e,t,r,i,s,o,a)}finally{n&&n._endPatch()}}},M=(e,t,l,s,o,a,c,f)=>{var p,d;let h,g,{props:m,shapeFlag:_,transition:y,dirs:b}=e;if(h=e.el=i(e.type,a,m&&m.is,m),8&_?u(h,e.children):16&_&&j(e.children,h,null,s,o,nH(e,a),c,f),b&&tN(e,null,s,"created"),P(h,e,e.scopeId,c,s),m){for(let e in m)"value"===e||R(e)||r(h,e,null,m[e],a,s);"value"in m&&r(h,"value",null,m.value,a),(g=m.onVnodeBeforeMount)&&n7(g,s,e)}b&&tN(e,null,s,"beforeMount");let x=(p=o,d=y,(!p||p&&!p.pendingBranch)&&d&&!d.persisted);x&&y.beforeEnter(h),n(h,t,l),((g=m&&m.onVnodeMounted)||x||b)&&nB(()=>{g&&n7(g,s,e),x&&y.enter(h),b&&tN(e,null,s,"mounted")},o)},P=(e,t,n,l,r)=>{if(n&&g(e,n),l)for(let t=0;t<l.length;t++)g(e,l[t]);if(r){let n=r.subTree;if(t===n||n.type.__isSuspense&&(n.ssContent===t||n.ssFallback===t)){let t=r.vnode;P(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},j=(e,t,n,l,r,i,s,o,a=0)=>{for(let u=a;u<e.length;u++)y(null,e[u]=o?n3(e[u]):n4(e[u]),t,n,l,r,i,s,o)},E=(e,t,n,l,i,s,o)=>{let a,c=t.el=e.el,{patchFlag:p,dynamicChildren:d,dirs:h}=t;p|=16&e.patchFlag;let g=e.props||f,m=t.props||f;if(n&&nq(n,!1),(a=m.onVnodeBeforeUpdate)&&n7(a,n,t,e),h&&tN(t,e,n,"beforeUpdate"),n&&nq(n,!0),(g.innerHTML&&null==m.innerHTML||g.textContent&&null==m.textContent)&&u(c,""),d?$(e.dynamicChildren,d,c,n,l,nH(t,i),s):o||q(e,t,c,null,n,l,nH(t,i),s,!1),p>0){if(16&p)I(c,g,m,n,i);else if(2&p&&g.class!==m.class&&r(c,"class",null,m.class,i),4&p&&r(c,"style",g.style,m.style,i),8&p){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let l=e[t],s=g[l],o=m[l];(o!==s||"value"===l)&&r(c,l,s,o,i,n)}}1&p&&e.children!==t.children&&u(c,t.children)}else o||null!=d||I(c,g,m,n,i);((a=m.onVnodeUpdated)||h)&&nB(()=>{a&&n7(a,n,t,e),h&&tN(t,e,n,"updated")},l)},$=(e,t,n,l,r,i,s)=>{for(let o=0;o<t.length;o++){let a=e[o],u=t[o],f=a.el&&(a.type===nz||!n0(a,u)||198&a.shapeFlag)?c(a.el):n;y(a,u,f,null,l,r,i,s,!0)}},I=(e,t,n,l,i)=>{if(t!==n){if(t!==f)for(let s in t)R(s)||s in n||r(e,s,t[s],null,i,l);for(let s in n){if(R(s))continue;let o=n[s],a=t[s];o!==a&&"value"!==s&&r(e,s,a,o,i,l)}"value"in n&&r(e,"value",t.value,n.value,i)}},N=(e,t,l,r,i,o,a,u,c)=>{let f=t.el=e?e.el:s(""),p=t.anchor=e?e.anchor:s(""),{patchFlag:d,dynamicChildren:h,slotScopeIds:g}=t;g&&(u=u?u.concat(g):g),null==e?(n(f,l,r),n(p,l,r),j(t.children||[],l,p,i,o,a,u,c)):d>0&&64&d&&h&&e.dynamicChildren&&e.dynamicChildren.length===h.length?($(e.dynamicChildren,h,l,i,o,a,u),(null!=t.key||i&&t===i.subTree)&&function e(t,n,l=!1){let r=t.children,i=n.children;if(S(r)&&S(i))for(let t=0;t<r.length;t++){let n=r[t],s=i[t];1&s.shapeFlag&&!s.dynamicChildren&&((s.patchFlag<=0||32===s.patchFlag)&&((s=i[t]=n3(i[t])).el=n.el),l||-2===s.patchFlag||e(n,s)),s.type===nK&&(-1===s.patchFlag&&(s=i[t]=n3(s)),s.el=n.el),s.type!==nJ||s.el||(s.el=n.el)}}(e,t,!0)):q(e,t,l,p,i,o,a,u,c)},L=(e,t,n,l,r,i,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?r.ctx.activate(t,n,l,s,a):V(t,n,l,r,i,s,a):U(e,t,a)},V=(e,t,n,l,r,i,s)=>{let o=e.component=ln(e,l,r);if(tQ(e)&&(o.ctx.renderer=el),lu(o,!1,s),o.asyncDep){if(r&&r.registerDep(o,B,s),!e.el){let l=o.subTree=n6(nJ);k(null,l,t,n),e.placeholder=l.el}}else B(o,e,t,n,r,i,s)},U=(e,t,n)=>{let l=t.component=e.component;if(function(e,t,n){let{props:l,children:r,component:i}=e,{props:s,children:o,patchFlag:a}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!r||!!o)&&(!o||!o.$stable)||l!==s&&(l?!s||nP(l,s,u):!!s);if(1024&a)return!0;if(16&a)return l?nP(l,s,u):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(nR(s,l,n)&&!nC(u,n))return!0}}return!1}(e,t,n))if(l.asyncDep&&!l.asyncResolved)return void H(l,t,n);else l.next=t,l.update();else t.el=e.el,l.vnode=t},B=(e,t,n,l,r,i,s)=>{e.scope.on();let o=e.effect=new eh(()=>{if(e.isMounted){let t,{next:n,bu:l,u:o,parent:u,vnode:f}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=f.el,H(e,n,s)),t.asyncDep.then(()=>{nB(()=>{e.isUnmounted||a()},r)});return}}let p=n;nq(e,!1),n?(n.el=f.el,H(e,n,s)):n=f,l&&F(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&n7(t,u,n,f),nq(e,!0);let d=nO(e),h=e.subTree;e.subTree=d,y(h,d,c(h.el),ee(h),e,r,i),n.el=d.el,null===p&&function({vnode:e,parent:t},n){for(;t;){let l=t.subTree;if(l.suspense&&l.suspense.activeBranch===e&&(l.el=e.el),l===e)(e=t.vnode).el=n,t=t.parent;else break}}(e,d.el),o&&nB(o,r),(t=n.props&&n.props.onVnodeUpdated)&&nB(()=>n7(t,u,n,f),r)}else{let s,{props:o}=t,{bm:a,m:u,parent:c,root:f,type:p}=e,d=tX(t);nq(e,!1),a&&F(a),!d&&(s=o&&o.onVnodeBeforeMount)&&n7(s,c,t),nq(e,!0);{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p);let s=e.subTree=nO(e);y(null,s,n,l,e,r,i),t.el=s.el}if(u&&nB(u,r),!d&&(s=o&&o.onVnodeMounted)){let e=t;nB(()=>n7(s,c,e),r)}(256&t.shapeFlag||c&&tX(c.vnode)&&256&c.vnode.shapeFlag)&&e.a&&nB(e.a,r),e.isMounted=!0,t=n=l=null}});e.scope.off();let a=e.update=o.run.bind(o),u=e.job=o.runIfDirty.bind(o);u.i=e,u.id=e.uid,o.scheduler=()=>tP(u),nq(e,!0),a()},H=(e,t,n)=>{t.component=e;let l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){let{props:r,attrs:i,vnode:{patchFlag:s}}=e,o=ta(r),[a]=e.propsOptions,u=!1;if((l||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){let s=n[l];if(nC(e.emitsOptions,s))continue;let c=t[s];if(a)if(x(i,s))c!==i[s]&&(i[s]=c,u=!0);else{let t=A(s);r[t]=n$(a,o,t,c,e,!1)}else c!==i[s]&&(i[s]=c,u=!0)}}}else{let l;for(let s in nA(e,t,r,i)&&(u=!0),o)t&&(x(t,s)||(l=D(s))!==s&&x(t,l))||(a?n&&(void 0!==n[s]||void 0!==n[l])&&(r[s]=n$(a,o,s,void 0,e,!0)):delete r[s]);if(i!==o)for(let e in i)t&&x(t,e)||(delete i[e],u=!0)}u&&eI(e.attrs,"set","")}(e,t.props,l,n),((e,t,n)=>{let{vnode:l,slots:r}=e,i=!0,s=f;if(32&l.shapeFlag){let e=t._;e?n&&1===e?i=!1:nU(r,t,n):(i=!t.$stable,nV(t,r)),s=t}else t&&(nW(e,t),s={default:1});if(i)for(let e in r)nN(e)||null!=s[e]||delete r[e]})(e,t.children,n),eC(),tj(e),eO()},q=(e,t,n,l,r,i,s,o,a=!1)=>{let c=e&&e.children,f=e?e.shapeFlag:0,p=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void z(c,p,n,l,r,i,s,o,a);else if(256&d)return void G(c,p,n,l,r,i,s,o,a)}8&h?(16&f&&Y(c,r,i),p!==c&&u(n,p)):16&f?16&h?z(c,p,n,l,r,i,s,o,a):Y(c,r,i,!0):(8&f&&u(n,""),16&h&&j(p,n,l,r,i,s,o,a))},G=(e,t,n,l,r,i,s,o,a)=>{let u;e=e||p,t=t||p;let c=e.length,f=t.length,d=Math.min(c,f);for(u=0;u<d;u++){let l=t[u]=a?n3(t[u]):n4(t[u]);y(e[u],l,n,null,r,i,s,o,a)}c>f?Y(e,r,i,!0,!1,d):j(t,n,l,r,i,s,o,a,d)},z=(e,t,n,l,r,i,s,o,a)=>{let u=0,c=t.length,f=e.length-1,d=c-1;for(;u<=f&&u<=d;){let l=e[u],c=t[u]=a?n3(t[u]):n4(t[u]);if(n0(l,c))y(l,c,n,null,r,i,s,o,a);else break;u++}for(;u<=f&&u<=d;){let l=e[f],u=t[d]=a?n3(t[d]):n4(t[d]);if(n0(l,u))y(l,u,n,null,r,i,s,o,a);else break;f--,d--}if(u>f){if(u<=d){let e=d+1,f=e<c?t[e].el:l;for(;u<=d;)y(null,t[u]=a?n3(t[u]):n4(t[u]),n,f,r,i,s,o,a),u++}}else if(u>d)for(;u<=f;)J(e[u],r,i,!0),u++;else{let h,g=u,m=u,_=new Map;for(u=m;u<=d;u++){let e=t[u]=a?n3(t[u]):n4(t[u]);null!=e.key&&_.set(e.key,u)}let b=0,x=d-m+1,S=!1,w=0,k=Array(x);for(u=0;u<x;u++)k[u]=0;for(u=g;u<=f;u++){let l,c=e[u];if(b>=x){J(c,r,i,!0);continue}if(null!=c.key)l=_.get(c.key);else for(h=m;h<=d;h++)if(0===k[h-m]&&n0(c,t[h])){l=h;break}void 0===l?J(c,r,i,!0):(k[l-m]=u+1,l>=w?w=l:S=!0,y(c,t[l],n,null,r,i,s,o,a),b++)}let C=S?function(e){let t,n,l,r,i,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(l=0,r=o.length-1;l<r;)e[o[i=l+r>>1]]<a?l=i+1:r=i;a<e[o[l]]&&(l>0&&(s[t]=o[l-1]),o[l]=t)}}for(l=o.length,r=o[l-1];l-- >0;)o[l]=r,r=s[r];return o}(k):p;for(h=C.length-1,u=x-1;u>=0;u--){let e=m+u,f=t[e],p=t[e+1],d=e+1<c?p.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(p):l;0===k[u]?y(null,f,n,d,r,i,s,o,a):S&&(h<0||u!==C[h]?K(f,n,d,2):h--)}}},K=(e,t,r,i,s=null)=>{let{el:o,type:a,transition:u,children:c,shapeFlag:f}=e;if(6&f)return void K(e.component.subTree,t,r,i);if(128&f)return void e.suspense.move(t,r,i);if(64&f)return void a.move(e,t,r,el);if(a===nz){n(o,t,r);for(let e=0;e<c.length;e++)K(c[e],t,r,i);n(e.anchor,t,r);return}if(a===nZ)return void(({el:e,anchor:t},l,r)=>{let i;for(;e&&e!==t;)i=h(e),n(e,l,r),e=i;n(t,l,r)})(e,t,r);if(2!==i&&1&f&&u)if(0===i)u.beforeEnter(o),n(o,t,r),nB(()=>u.enter(o),s);else{let{leave:i,delayLeave:s,afterLeave:a}=u,c=()=>{e.ctx.isUnmounted?l(o):n(o,t,r)},f=()=>{o._isLeaving&&o[tH](!0),i(o,()=>{c(),a&&a()})};s?s(o,c,f):f()}else n(o,t,r)},J=(e,t,n,l=!1,r=!1)=>{let i,{type:s,props:o,ref:a,children:u,dynamicChildren:c,shapeFlag:f,patchFlag:p,dirs:d,cacheIndex:h}=e;if(-2===p&&(r=!1),null!=a&&(eC(),tJ(a,null,n,e,!0),eO()),null!=h&&(t.renderCache[h]=void 0),256&f)return void t.ctx.deactivate(e);let g=1&f&&d,m=!tX(e);if(m&&(i=o&&o.onVnodeBeforeUnmount)&&n7(i,t,e),6&f)Q(e.component,n,l);else{if(128&f)return void e.suspense.unmount(n,l);g&&tN(e,null,t,"beforeUnmount"),64&f?e.type.remove(e,t,n,el,l):c&&!c.hasOnce&&(s!==nz||p>0&&64&p)?Y(c,t,n,!1,!0):(s===nz&&384&p||!r&&16&f)&&Y(u,t,n),l&&Z(e)}(m&&(i=o&&o.onVnodeUnmounted)||g)&&nB(()=>{i&&n7(i,t,e),g&&tN(e,null,t,"unmounted")},n)},Z=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===nz)return void X(n,r);if(t===nZ)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),l(e),e=n;l(t)})(e);let s=()=>{l(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:l}=i,r=()=>t(n,s);l?l(e.el,s,r):r()}else s()},X=(e,t)=>{let n;for(;e!==t;)n=h(e),l(e),e=n;l(t)},Q=(e,t,n)=>{let{bum:l,scope:r,job:i,subTree:s,um:o,m:a,a:u}=e;nG(a),nG(u),l&&F(l),r.stop(),i&&(i.flags|=8,J(s,e,t,n)),o&&nB(o,t),nB(()=>{e.isUnmounted=!0},t)},Y=(e,t,n,l=!1,r=!1,i=0)=>{for(let s=i;s<e.length;s++)J(e[s],t,n,l,r)},ee=e=>{if(6&e.shapeFlag)return ee(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[tB];return n?h(n):t},et=!1,en=(e,t,n)=>{let l;null==e?t._vnode&&(J(t._vnode,null,null,!0),l=t._vnode.component):y(t._vnode||null,e,t,null,null,null,n),t._vnode=e,et||(et=!0,tj(l),tE(),et=!1)},el={p:y,um:J,m:K,r:Z,mt:V,mc:j,pc:q,pbc:$,n:ee,o:e};return{render:en,hydrate:t,createApp:function(e,t=null){w(e)||(e=_({},e)),null==t||O(t)||(t=null);let n=nb(),l=new WeakSet,r=[],i=!1,s=n.app={_uid:nx++,_component:e,_props:t,_container:null,_context:n,_instance:null,version:"3.5.28",get config(){return n.config},set config(v){},use:(e,...t)=>(l.has(e)||(e&&w(e.install)?(l.add(e),e.install(s,...t)):w(e)&&(l.add(e),e(s,...t))),s),mixin:e=>(n.mixins.includes(e)||n.mixins.push(e),s),component:(e,t)=>t?(n.components[e]=t,s):n.components[e],directive:(e,t)=>t?(n.directives[e]=t,s):n.directives[e],mount(l,r,o){if(!i){let r=s._ceVNode||n6(e,t);return r.appContext=n,!0===o?o="svg":!1===o&&(o=void 0),en(r,l,o),i=!0,s._container=l,l.__vue_app__=s,ld(r.component)}},onUnmount(e){r.push(e)},unmount(){i&&(ty(r,s._instance,16),en(null,s._container),delete s._container.__vue_app__)},provide:(e,t)=>(n.provides[e]=t,s),runWithContext(e){let t=nS;nS=s;try{return e()}finally{nS=t}}};return s}}}(lN))).createApp(...e),{mount:n}=t;return t.mount=e=>{var l,r;let i=k(l=e)?document.querySelector(l):l;if(!i)return;let s=t._component;w(s)||s.render||s.template||(s.template=i.innerHTML),1===i.nodeType&&(i.textContent="");let o=n(i,!1,(r=i)instanceof SVGElement?"svg":"function"==typeof MathMLElement&&r instanceof MathMLElement?"mathml":void 0);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t},lL=!1,lV=c(",key,ref,innerHTML,textContent,ref_key,ref_for");function lW(e,t){let n="";for(let l in e){if(lV(l)||g(l)||"textarea"===t&&"value"===l||l.startsWith("."))continue;let r=e[l];l.startsWith("^")&&(l=l.slice(1)),"class"===l||"className"===l?n+=` class="${lH(r)}"`:"style"===l?n+=` style="${lq(r)}"`:n+=lU(l,r,t)}return n}function lU(e,t,n){if(!en(t))return"";let l=n&&(n.indexOf("-")>0||z(n))?e:et[e]||e.toLowerCase();return X(l)?Q(t)?` ${l}`:"":!function(e){if(ee.hasOwnProperty(e))return ee[e];let t=Y.test(e);return t&&console.error(`unsafe attribute name: ${e}`),ee[e]=!t}(l)?(console.warn(`[@vue/server-renderer] Skipped rendering unsafe attribute name: ${l}`),""):""===t?` ${l}`:` ${l}="${er(t)}"`}function lB(e,t){return en(t)?` ${e}="${er(t)}"`:""}function lH(e){return er(G(e))}function lq(e){return e?k(e)?er(e):er(function(e){if(!e)return"";if(k(e))return e;let t="";for(let n in e){let l=e[n];if(k(l)||"number"==typeof l){let e=n.startsWith("--")?n:D(n);t+=`${e}:${l};`}}return t}(U(function(e){if(!S(e)&&O(e)){let n={};for(let l in e)if(l.startsWith(":--")){var t;n[l.slice(1)]=null==(t=e[l])?"initial":"string"==typeof t?""===t?" ":t:String(t)}else n[l]=e[l];return n}return e}(e)))):""}function lG(e,t=null,n=null,l=null,r){return rl(n6(e,t,n),l,r)}let{ensureValidVNode:lz}=lv;function lK(e,t,n,l,r,i,s){r("\x3c!--[--\x3e"),lJ(e,t,n,l,r,i,s),r("\x3c!--]--\x3e")}function lJ(e,t,n,l,r,i,s,o){let a=e[t];if(a){let e=[],t=a(n,t=>{e.push(t)},i,s?" "+s:"");if(S(t)){let e=lz(t);e?rs(r,e,i,s):l?l():o&&r("\x3c!----\x3e")}else{let t=!0;if(o)t=!1;else for(let n=0;n<e.length;n++){var u;if(!("string"==typeof(u=e[n])&&lZ.test(u)&&(u.length<=8||!u.replace(lX,"").trim()))){t=!1;break}}if(t)l&&l();else{let t=0,n=e.length;if(o&&"\x3c!--[--\x3e"===e[0]&&"\x3c!--]--\x3e"===e[n-1]&&(t++,n--),t<n)for(let l=t;l<n;l++)r(e[l]);else o&&r("\x3c!----\x3e")}}}else l?l():o&&r("\x3c!----\x3e")}let lZ=/^<!--[\s\S]*-->$/,lX=/<!--[^]*?-->/gm;function lQ(e,t,n,l,r){let i;e("\x3c!--teleport start--\x3e");let s=r.appContext.provides[tL],o=s.__teleportBuffers||(s.__teleportBuffers={}),a=o[n]||(o[n]=[]),u=a.length;if(l)t(e),i="\x3c!--teleport start anchor--\x3e\x3c!--teleport anchor--\x3e";else{let{getBuffer:e,push:n}=rn();n("\x3c!--teleport start anchor--\x3e"),t(n),n("\x3c!--teleport anchor--\x3e"),i=e()}a.splice(u,0,i),e("\x3c!--teleport end--\x3e")}function lY(e){return er(eu(e))}function l0(e,t){if(S(e)||k(e))for(let n=0,l=e.length;n<l;n++)t(e[n],n);else if("number"==typeof e)for(let n=0;n<e;n++)t(n+1,n);else if(O(e))if(e[Symbol.iterator]){let n=Array.from(e);for(let e=0,l=n.length;e<l;e++)t(n[e],e)}else{let n=Object.keys(e);for(let l=0,r=n.length;l<r;l++){let r=n[l];t(e[r],r,l)}}}async function l1(e,{default:t}){t?t():e("\x3c!----\x3e")}function l2(e,t,n,l,r={}){return"function"!=typeof t&&t.getSSRProps&&t.getSSRProps({dir:t,instance:lv.getComponentPublicInstance(e.$),value:n,oldValue:void 0,arg:l,modifiers:r},null)||{}}let l6=es;function l8(e,t){return eo(e,t)>-1}function l4(e,t,n){switch(e){case"radio":return es(t,n)?" checked":"";case"checkbox":return(S(t)?l8(t,n):t)?" checked":"";default:return lB("value",t)}}function l3(e={},t){let{type:n,value:l}=e;switch(n){case"radio":return es(t,l)?{checked:!0}:null;case"checkbox":return(S(t)?l8(t,l):t)?{checked:!0}:null;default:return{value:t}}}let{createComponentInstance:l5,setCurrentRenderingInstance:l9,setupComponent:l7,renderComponentRoot:re,normalizeVNode:rt}=lv;function rn(){let e=!1,t=[];return{getBuffer:()=>t,push(n){let l=k(n);if(e&&l){t[t.length-1]+=n;return}t.push(n),e=l,(T(n)||S(n)&&n.hasAsync)&&(t.hasAsync=!0)}}}function rl(e,t=null,n){let l=e.component=l5(e,t,null),r=l7(l,!0),i=T(r),s=l.sp;return i||s?Promise.resolve(r).then(()=>{if(i&&(s=l.sp),s)return Promise.all(s.map(e=>e.call(l.proxy)))}).catch(d).then(()=>rr(l,n)):rr(l,n)}function rr(e,t){let n=e.type,{getBuffer:l,push:r}=rn();if(w(n)){let l=re(e);if(!n.props)for(let t in e.attrs)t.startsWith("data-v-")&&((l.props||(l.props={}))[t]="");ri(r,e.subTree=l,e,t)}else{(!e.render||e.render===d)&&!e.ssrRender&&!n.ssrRender&&k(n.template)&&(n.ssrRender=function(e){throw Error("On-the-fly template compilation is not supported in the ESM build of @vue/server-renderer. All templates must be pre-compiled into render functions.")}(n.template));let l=e.ssrRender||n.ssrRender;if(l){let n=!1!==e.inheritAttrs?e.attrs:void 0,i=!1,s=e;for(;;){let e=s.vnode.scopeId;e&&(i||(n={...n},i=!0),n[e]="");let t=s.parent;if(t&&t.subTree&&t.subTree===s.vnode)s=t;else break}if(t){i||(n={...n});let e=t.trim().split(" ");for(let t=0;t<e.length;t++)n[e[t]]=""}let o=l9(e);try{l(e.proxy,r,e,n,e.props,e.setupState,e.data,e.ctx)}finally{l9(o)}}else e.render&&e.render!==d?ri(r,e.subTree=re(e),e,t):(n.name||n.__file,r("\x3c!----\x3e"))}return l()}function ri(e,t,n,l){let{type:r,shapeFlag:i,children:s,dirs:o,props:a}=t;switch(o&&(t.props=function(e,t,n){let l=[];for(let t=0;t<n.length;t++){let r=n[t],{dir:{getSSRProps:i}}=r;if(i){let t=i(r,e);t&&l.push(t)}}return n9(t||{},...l)}(t,a,o)),r){case nK:e(er(s));break;case nJ:e(s?`<!--${s.replace(ei,"")}-->`:"\x3c!----\x3e");break;case nZ:e(s);break;case nz:t.slotScopeIds&&(l=(l?l+" ":"")+t.slotScopeIds.join(" ")),e("\x3c!--[--\x3e"),rs(e,s,n,l),e("\x3c!--]--\x3e");break;default:var u,c,f,p;let d,h;1&i?function(e,t,n,l){let r=t.type,{props:i,children:s,shapeFlag:o,scopeId:a}=t,u=`<${r}`;i&&(u+=lW(i,r)),a&&(u+=` ${a}`);let c=n,f=t;for(;c&&f===c.subTree;)(f=c.vnode).scopeId&&(u+=` ${f.scopeId}`),c=c.parent;if(l&&(u+=` ${l}`),e(u+">"),!K(r)){let t=!1;i&&(i.innerHTML?(t=!0,e(i.innerHTML)):i.textContent?(t=!0,e(er(i.textContent))):"textarea"===r&&i.value&&(t=!0,e(er(i.value)))),!t&&(8&o?e(er(s)):16&o&&rs(e,s,n,l)),e(`</${r}>`)}}(e,t,n,l):6&i?e(rl(t,n,l)):64&i?(u=e,c=t,f=n,p=l,d=c.props&&c.props.to,h=c.props&&c.props.disabled,d&&k(d)&&lQ(u,e=>{rs(e,c.children,f,p)},d,h||""===h,f)):128&i&&ri(e,t.ssContent,n,l)}}function rs(e,t,n,l){for(let r=0;r<t.length;r++)ri(e,rt(t[r]),n,l)}let{isVNode:ro}=lv;function ra(e){return function e(t,n,l){if(!t.hasAsync)return n+function e(t){let n="";for(let l=0;l<t.length;l++){let r=t[l];k(r)?n+=r:n+=e(r)}return n}(t);let r=n;for(let n=l;n<t.length;n+=1){let l=t[n];if(k(l)){r+=l;continue}if(T(l))return l.then(l=>(t[n]=l,e(t,r,n)));let i=e(l,r,0);if(T(i))return i.then(l=>(t[n]=l,e(t,"",n)));r=i}return r}(e,"",0)}async function ru(e,t={}){if(ro(e))return ru(lF({render:()=>e}),t);let n=n6(e._component,e._props);n.appContext=e._context,e.provide(tL,t);let l=await rl(n),r=await ra(l);if(await rc(t),t.__watcherHandles)for(let e of t.__watcherHandles)e();return r}async function rc(e){if(e.__teleportBuffers)for(let t in e.teleports=e.teleports||{},e.__teleportBuffers)e.teleports[t]=await ra(await Promise.all([e.__teleportBuffers[t]]))}let{isVNode:rf}=lv;async function rp(e,t){if(e.hasAsync)for(let n=0;n<e.length;n++){let l=e[n];T(l)&&(l=await l),k(l)?t.push(l):await rp(l,t)}else!function e(t,n){for(let l=0;l<t.length;l++){let r=t[l];k(r)?n.push(r):e(r,n)}}(e,t)}function rd(e,t,n){if(rf(e))return rd(lF({render:()=>e}),t,n);let l=n6(e._component,e._props);return l.appContext=e._context,e.provide(tL,t),Promise.resolve(rl(l)).then(e=>rp(e,n)).then(()=>rc(t)).then(()=>{if(t.__watcherHandles)for(let e of t.__watcherHandles)e()}).then(()=>n.push(null)).catch(e=>{n.destroy(e)}),n}function rh(e,t={}){return console.warn("[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead."),rv(e,t)}function rv(e,t={}){throw Error("ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.")}function rg(e,t={},n){rd(e,t,{push(e){null!=e?n.write(e):n.end()},destroy(e){n.destroy(e)}})}function rm(e,t={}){if("function"!=typeof ReadableStream)throw Error("ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.");let n=new TextEncoder,l=!1;return new ReadableStream({start(r){rd(e,t,{push(e){l||(null!=e?r.enqueue(n.encode(e)):r.close())},destroy(e){r.error(e)}})},cancel(){l=!0}})}function r_(e,t={},n){let l=n.getWriter(),r=new TextEncoder,i=!1;try{i=T(l.ready)}catch(e){}rd(e,t,{push:async e=>(i&&await l.ready,null!=e)?l.write(r.encode(e)):l.close(),destroy(e){console.log(e),l.close()}})}lL||(lL=!0,({value:e},t)=>{if(S(e)){if(t.props&&eo(e,t.props.value)>-1)return{checked:!0}}else{let n;if("[object Set]"===(n=e,M.call(n))){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}});export{rg as pipeToNodeWritable,r_ as pipeToWebWritable,rv as renderToNodeStream,rd as renderToSimpleStream,rh as renderToStream,ru as renderToString,rm as renderToWebStream,l2 as ssrGetDirectiveProps,l3 as ssrGetDynamicModelProps,Q as ssrIncludeBooleanAttr,lY as ssrInterpolate,l8 as ssrLooseContain,l6 as ssrLooseEqual,lB as ssrRenderAttr,lW as ssrRenderAttrs,lH as ssrRenderClass,lG as ssrRenderComponent,lU as ssrRenderDynamicAttr,l4 as ssrRenderDynamicModel,l0 as ssrRenderList,lK as ssrRenderSlot,lJ as ssrRenderSlotInner,lq as ssrRenderStyle,l1 as ssrRenderSuspense,lQ as ssrRenderTeleport,ri as ssrRenderVNode}; diff --git a/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js b/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js new file mode 100644 index 0000000..2a8cd6e --- /dev/null +++ b/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js @@ -0,0 +1,1091 @@ +/** +* @vue/server-renderer v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { createVNode, ssrUtils, ssrContextKey, warn as warn$2, Fragment, Static, Comment, Text, mergeProps, createApp, initDirectivesForSSR } from 'vue'; +import { isOn, isRenderableAttrValue, isSVGTag, propsToAttrMap, isBooleanAttr, includeBooleanAttr, isSSRSafeAttrName, escapeHtml, normalizeClass, isString, normalizeStyle, stringifyStyle, isArray, isObject, normalizeCssVarValue, makeMap, toDisplayString, isFunction, EMPTY_OBJ, getGlobalThis, NOOP, looseEqual, looseIndexOf, escapeHtmlComment, isPromise, isVoidTag } from '@vue/shared'; +export { includeBooleanAttr as ssrIncludeBooleanAttr } from '@vue/shared'; + +const shouldIgnoreProp = /* @__PURE__ */ makeMap( + `,key,ref,innerHTML,textContent,ref_key,ref_for` +); +function ssrRenderAttrs(props, tag) { + let ret = ""; + for (let key in props) { + if (shouldIgnoreProp(key) || isOn(key) || tag === "textarea" && key === "value" || // force as property (not rendered in SSR) + key.startsWith(".")) { + continue; + } + const value = props[key]; + if (key.startsWith("^")) key = key.slice(1); + if (key === "class" || key === "className") { + ret += ` class="${ssrRenderClass(value)}"`; + } else if (key === "style") { + ret += ` style="${ssrRenderStyle(value)}"`; + } else { + ret += ssrRenderDynamicAttr(key, value, tag); + } + } + return ret; +} +function ssrRenderDynamicAttr(key, value, tag) { + if (!isRenderableAttrValue(value)) { + return ``; + } + const attrKey = tag && (tag.indexOf("-") > 0 || isSVGTag(tag)) ? key : propsToAttrMap[key] || key.toLowerCase(); + if (isBooleanAttr(attrKey)) { + return includeBooleanAttr(value) ? ` ${attrKey}` : ``; + } else if (isSSRSafeAttrName(attrKey)) { + return value === "" ? ` ${attrKey}` : ` ${attrKey}="${escapeHtml(value)}"`; + } else { + console.warn( + `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}` + ); + return ``; + } +} +function ssrRenderAttr(key, value) { + if (!isRenderableAttrValue(value)) { + return ``; + } + return ` ${key}="${escapeHtml(value)}"`; +} +function ssrRenderClass(raw) { + return escapeHtml(normalizeClass(raw)); +} +function ssrRenderStyle(raw) { + if (!raw) { + return ""; + } + if (isString(raw)) { + return escapeHtml(raw); + } + const styles = normalizeStyle(ssrResetCssVars(raw)); + return escapeHtml(stringifyStyle(styles)); +} +function ssrResetCssVars(raw) { + if (!isArray(raw) && isObject(raw)) { + const res = {}; + for (const key in raw) { + if (key.startsWith(":--")) { + res[key.slice(1)] = normalizeCssVarValue(raw[key]); + } else { + res[key] = raw[key]; + } + } + return res; + } + return raw; +} + +function ssrRenderComponent(comp, props = null, children = null, parentComponent = null, slotScopeId) { + return renderComponentVNode( + createVNode(comp, props, children), + parentComponent, + slotScopeId + ); +} + +const { ensureValidVNode } = ssrUtils; +function ssrRenderSlot(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId) { + push(`<!--[-->`); + ssrRenderSlotInner( + slots, + slotName, + slotProps, + fallbackRenderFn, + push, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); +} +function ssrRenderSlotInner(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId, transition) { + const slotFn = slots[slotName]; + if (slotFn) { + const slotBuffer = []; + const bufferedPush = (item) => { + slotBuffer.push(item); + }; + const ret = slotFn( + slotProps, + bufferedPush, + parentComponent, + slotScopeId ? " " + slotScopeId : "" + ); + if (isArray(ret)) { + const validSlotContent = ensureValidVNode(ret); + if (validSlotContent) { + renderVNodeChildren( + push, + validSlotContent, + parentComponent, + slotScopeId + ); + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } + } else { + let isEmptySlot = true; + if (transition) { + isEmptySlot = false; + } else { + for (let i = 0; i < slotBuffer.length; i++) { + if (!isComment(slotBuffer[i])) { + isEmptySlot = false; + break; + } + } + } + if (isEmptySlot) { + if (fallbackRenderFn) { + fallbackRenderFn(); + } + } else { + let start = 0; + let end = slotBuffer.length; + if (transition && slotBuffer[0] === "<!--[-->" && slotBuffer[end - 1] === "<!--]-->") { + start++; + end--; + } + if (start < end) { + for (let i = start; i < end; i++) { + push(slotBuffer[i]); + } + } else if (transition) { + push(`<!---->`); + } + } + } + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } else if (transition) { + push(`<!---->`); + } +} +const commentTestRE = /^<!--[\s\S]*-->$/; +const commentRE = /<!--[^]*?-->/gm; +function isComment(item) { + if (typeof item !== "string" || !commentTestRE.test(item)) return false; + if (item.length <= 8) return true; + return !item.replace(commentRE, "").trim(); +} + +function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) { + parentPush("<!--teleport start-->"); + const context = parentComponent.appContext.provides[ssrContextKey]; + const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {}); + const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []); + const bufferIndex = targetBuffer.length; + let teleportContent; + if (disabled) { + contentRenderFn(parentPush); + teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`; + } else { + const { getBuffer, push } = createBuffer(); + push(`<!--teleport start anchor-->`); + contentRenderFn(push); + push(`<!--teleport anchor-->`); + teleportContent = getBuffer(); + } + targetBuffer.splice(bufferIndex, 0, teleportContent); + parentPush("<!--teleport end-->"); +} + +function ssrInterpolate(value) { + return escapeHtml(toDisplayString(value)); +} + +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} + +const stack = []; +function pushWarningContext$1(vnode) { + stack.push(vnode); +} +function popWarningContext$1() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} + +const ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings[type] : `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + if (!!(process.env.NODE_ENV !== "production")) { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext$1(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext$1(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else if (throwInProd) { + throw err; + } else { + console.error(err); + } +} + +let devtools; +let buffer = []; +function setDevtoolsHook(hook, target) { + var _a, _b; + devtools = hook; + if (devtools) { + devtools.enabled = true; + buffer.forEach(({ event, args }) => devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + buffer = []; + } + }, 3e3); + } else { + buffer = []; + } +} + +{ + const g = getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => v + ); + registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => v + ); +} +!!(process.env.NODE_ENV !== "production") ? { + } : { + }; +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; +} + +const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP; +!!(process.env.NODE_ENV !== "production") || true ? devtools : void 0; +!!(process.env.NODE_ENV !== "production") || true ? setDevtoolsHook : NOOP; + +function ssrRenderList(source, renderItem) { + if (isArray(source) || isString(source)) { + for (let i = 0, l = source.length; i < l; i++) { + renderItem(source[i], i); + } + } else if (typeof source === "number") { + if (!!(process.env.NODE_ENV !== "production") && !Number.isInteger(source)) { + warn(`The v-for range expect an integer value but got ${source}.`); + return; + } + for (let i = 0; i < source; i++) { + renderItem(i + 1, i); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + const arr = Array.from(source); + for (let i = 0, l = arr.length; i < l; i++) { + renderItem(arr[i], i); + } + } else { + const keys = Object.keys(source); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + renderItem(source[key], key, i); + } + } + } +} + +async function ssrRenderSuspense(push, { default: renderContent }) { + if (renderContent) { + renderContent(); + } else { + push(`<!---->`); + } +} + +function ssrGetDirectiveProps(instance, dir, value, arg, modifiers = {}) { + if (typeof dir !== "function" && dir.getSSRProps) { + return dir.getSSRProps( + { + dir, + instance: ssrUtils.getComponentPublicInstance(instance.$), + value, + oldValue: void 0, + arg, + modifiers + }, + null + ) || {}; + } + return {}; +} + +const ssrLooseEqual = looseEqual; +function ssrLooseContain(arr, value) { + return looseIndexOf(arr, value) > -1; +} +function ssrRenderDynamicModel(type, model, value) { + switch (type) { + case "radio": + return looseEqual(model, value) ? " checked" : ""; + case "checkbox": + return (isArray(model) ? ssrLooseContain(model, value) : model) ? " checked" : ""; + default: + return ssrRenderAttr("value", model); + } +} +function ssrGetDynamicModelProps(existingProps = {}, model) { + const { type, value } = existingProps; + switch (type) { + case "radio": + return looseEqual(model, value) ? { checked: true } : null; + case "checkbox": + return (isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null; + default: + return { value: model }; + } +} + +function ssrCompile(template, instance) { + { + throw new Error( + `On-the-fly template compilation is not supported in the ESM build of @vue/server-renderer. All templates must be pre-compiled into render functions.` + ); + } +} + +const { + createComponentInstance, + setCurrentRenderingInstance, + setupComponent, + renderComponentRoot, + normalizeVNode, + pushWarningContext, + popWarningContext +} = ssrUtils; +function createBuffer() { + let appendable = false; + const buffer = []; + return { + getBuffer() { + return buffer; + }, + push(item) { + const isStringItem = isString(item); + if (appendable && isStringItem) { + buffer[buffer.length - 1] += item; + return; + } + buffer.push(item); + appendable = isStringItem; + if (isPromise(item) || isArray(item) && item.hasAsync) { + buffer.hasAsync = true; + } + } + }; +} +function renderComponentVNode(vnode, parentComponent = null, slotScopeId) { + const instance = vnode.component = createComponentInstance( + vnode, + parentComponent, + null + ); + if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(vnode); + const res = setupComponent( + instance, + true + /* isSSR */ + ); + if (!!(process.env.NODE_ENV !== "production")) popWarningContext(); + const hasAsyncSetup = isPromise(res); + let prefetches = instance.sp; + if (hasAsyncSetup || prefetches) { + const p = Promise.resolve(res).then(() => { + if (hasAsyncSetup) prefetches = instance.sp; + if (prefetches) { + return Promise.all( + prefetches.map((prefetch) => prefetch.call(instance.proxy)) + ); + } + }).catch(NOOP); + return p.then(() => renderComponentSubTree(instance, slotScopeId)); + } else { + return renderComponentSubTree(instance, slotScopeId); + } +} +function renderComponentSubTree(instance, slotScopeId) { + if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(instance.vnode); + const comp = instance.type; + const { getBuffer, push } = createBuffer(); + if (isFunction(comp)) { + let root = renderComponentRoot(instance); + if (!comp.props) { + for (const key in instance.attrs) { + if (key.startsWith(`data-v-`)) { + (root.props || (root.props = {}))[key] = ``; + } + } + } + renderVNode(push, instance.subTree = root, instance, slotScopeId); + } else { + if ((!instance.render || instance.render === NOOP) && !instance.ssrRender && !comp.ssrRender && isString(comp.template)) { + comp.ssrRender = ssrCompile(comp.template); + } + const ssrRender = instance.ssrRender || comp.ssrRender; + if (ssrRender) { + let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0; + let hasCloned = false; + let cur = instance; + while (true) { + const scopeId = cur.vnode.scopeId; + if (scopeId) { + if (!hasCloned) { + attrs = { ...attrs }; + hasCloned = true; + } + attrs[scopeId] = ""; + } + const parent = cur.parent; + if (parent && parent.subTree && parent.subTree === cur.vnode) { + cur = parent; + } else { + break; + } + } + if (slotScopeId) { + if (!hasCloned) attrs = { ...attrs }; + const slotScopeIdList = slotScopeId.trim().split(" "); + for (let i = 0; i < slotScopeIdList.length; i++) { + attrs[slotScopeIdList[i]] = ""; + } + } + const prev = setCurrentRenderingInstance(instance); + try { + ssrRender( + instance.proxy, + push, + instance, + attrs, + // compiler-optimized bindings + instance.props, + instance.setupState, + instance.data, + instance.ctx + ); + } finally { + setCurrentRenderingInstance(prev); + } + } else if (instance.render && instance.render !== NOOP) { + renderVNode( + push, + instance.subTree = renderComponentRoot(instance), + instance, + slotScopeId + ); + } else { + const componentName = comp.name || comp.__file || `<Anonymous>`; + warn$2(`Component ${componentName} is missing template or render function.`); + push(`<!---->`); + } + } + if (!!(process.env.NODE_ENV !== "production")) popWarningContext(); + return getBuffer(); +} +function renderVNode(push, vnode, parentComponent, slotScopeId) { + const { type, shapeFlag, children, dirs, props } = vnode; + if (dirs) { + vnode.props = applySSRDirectives(vnode, props, dirs); + } + switch (type) { + case Text: + push(escapeHtml(children)); + break; + case Comment: + push( + children ? `<!--${escapeHtmlComment(children)}-->` : `<!---->` + ); + break; + case Static: + push(children); + break; + case Fragment: + if (vnode.slotScopeIds) { + slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" "); + } + push(`<!--[-->`); + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); + break; + default: + if (shapeFlag & 1) { + renderElementVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 6) { + push(renderComponentVNode(vnode, parentComponent, slotScopeId)); + } else if (shapeFlag & 64) { + renderTeleportVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 128) { + renderVNode(push, vnode.ssContent, parentComponent, slotScopeId); + } else { + warn$2( + "[@vue/server-renderer] Invalid VNode type:", + type, + `(${typeof type})` + ); + } + } +} +function renderVNodeChildren(push, children, parentComponent, slotScopeId) { + for (let i = 0; i < children.length; i++) { + renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId); + } +} +function renderElementVNode(push, vnode, parentComponent, slotScopeId) { + const tag = vnode.type; + let { props, children, shapeFlag, scopeId } = vnode; + let openTag = `<${tag}`; + if (props) { + openTag += ssrRenderAttrs(props, tag); + } + if (scopeId) { + openTag += ` ${scopeId}`; + } + let curParent = parentComponent; + let curVnode = vnode; + while (curParent && curVnode === curParent.subTree) { + curVnode = curParent.vnode; + if (curVnode.scopeId) { + openTag += ` ${curVnode.scopeId}`; + } + curParent = curParent.parent; + } + if (slotScopeId) { + openTag += ` ${slotScopeId}`; + } + push(openTag + `>`); + if (!isVoidTag(tag)) { + let hasChildrenOverride = false; + if (props) { + if (props.innerHTML) { + hasChildrenOverride = true; + push(props.innerHTML); + } else if (props.textContent) { + hasChildrenOverride = true; + push(escapeHtml(props.textContent)); + } else if (tag === "textarea" && props.value) { + hasChildrenOverride = true; + push(escapeHtml(props.value)); + } + } + if (!hasChildrenOverride) { + if (shapeFlag & 8) { + push(escapeHtml(children)); + } else if (shapeFlag & 16) { + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + } + } + push(`</${tag}>`); + } +} +function applySSRDirectives(vnode, rawProps, dirs) { + const toMerge = []; + for (let i = 0; i < dirs.length; i++) { + const binding = dirs[i]; + const { + dir: { getSSRProps } + } = binding; + if (getSSRProps) { + const props = getSSRProps(binding, vnode); + if (props) toMerge.push(props); + } + } + return mergeProps(rawProps || {}, ...toMerge); +} +function renderTeleportVNode(push, vnode, parentComponent, slotScopeId) { + const target = vnode.props && vnode.props.to; + const disabled = vnode.props && vnode.props.disabled; + if (!target) { + if (!disabled) { + warn$2(`[@vue/server-renderer] Teleport is missing target prop.`); + } + return []; + } + if (!isString(target)) { + warn$2( + `[@vue/server-renderer] Teleport target must be a query selector string.` + ); + return []; + } + ssrRenderTeleport( + push, + (push2) => { + renderVNodeChildren( + push2, + vnode.children, + parentComponent, + slotScopeId + ); + }, + target, + disabled || disabled === "", + parentComponent + ); +} + +const { isVNode: isVNode$1 } = ssrUtils; +function nestedUnrollBuffer(buffer, parentRet, startIndex) { + if (!buffer.hasAsync) { + return parentRet + unrollBufferSync$1(buffer); + } + let ret = parentRet; + for (let i = startIndex; i < buffer.length; i += 1) { + const item = buffer[i]; + if (isString(item)) { + ret += item; + continue; + } + if (isPromise(item)) { + return item.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, ret, i); + }); + } + const result = nestedUnrollBuffer(item, ret, 0); + if (isPromise(result)) { + return result.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, "", i); + }); + } + ret = result; + } + return ret; +} +function unrollBuffer$1(buffer) { + return nestedUnrollBuffer(buffer, "", 0); +} +function unrollBufferSync$1(buffer) { + let ret = ""; + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (isString(item)) { + ret += item; + } else { + ret += unrollBufferSync$1(item); + } + } + return ret; +} +async function renderToString(input, context = {}) { + if (isVNode$1(input)) { + return renderToString(createApp({ render: () => input }), context); + } + const vnode = createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(ssrContextKey, context); + const buffer = await renderComponentVNode(vnode); + const result = await unrollBuffer$1(buffer); + await resolveTeleports(context); + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + return result; +} +async function resolveTeleports(context) { + if (context.__teleportBuffers) { + context.teleports = context.teleports || {}; + for (const key in context.__teleportBuffers) { + context.teleports[key] = await unrollBuffer$1( + await Promise.all([context.__teleportBuffers[key]]) + ); + } + } +} + +const { isVNode } = ssrUtils; +async function unrollBuffer(buffer, stream) { + if (buffer.hasAsync) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (isPromise(item)) { + item = await item; + } + if (isString(item)) { + stream.push(item); + } else { + await unrollBuffer(item, stream); + } + } + } else { + unrollBufferSync(buffer, stream); + } +} +function unrollBufferSync(buffer, stream) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (isString(item)) { + stream.push(item); + } else { + unrollBufferSync(item, stream); + } + } +} +function renderToSimpleStream(input, context, stream) { + if (isVNode(input)) { + return renderToSimpleStream( + createApp({ render: () => input }), + context, + stream + ); + } + const vnode = createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(ssrContextKey, context); + Promise.resolve(renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => { + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + }).then(() => stream.push(null)).catch((error) => { + stream.destroy(error); + }); + return stream; +} +function renderToStream(input, context = {}) { + console.warn( + `[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead.` + ); + return renderToNodeStream(input, context); +} +function renderToNodeStream(input, context = {}) { + { + throw new Error( + `ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.` + ); + } +} +function pipeToNodeWritable(input, context = {}, writable) { + renderToSimpleStream(input, context, { + push(content) { + if (content != null) { + writable.write(content); + } else { + writable.end(); + } + }, + destroy(err) { + writable.destroy(err); + } + }); +} +function renderToWebStream(input, context = {}) { + if (typeof ReadableStream !== "function") { + throw new Error( + `ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.` + ); + } + const encoder = new TextEncoder(); + let cancelled = false; + return new ReadableStream({ + start(controller) { + renderToSimpleStream(input, context, { + push(content) { + if (cancelled) return; + if (content != null) { + controller.enqueue(encoder.encode(content)); + } else { + controller.close(); + } + }, + destroy(err) { + controller.error(err); + } + }); + }, + cancel() { + cancelled = true; + } + }); +} +function pipeToWebWritable(input, context = {}, writable) { + const writer = writable.getWriter(); + const encoder = new TextEncoder(); + let hasReady = false; + try { + hasReady = isPromise(writer.ready); + } catch (e) { + } + renderToSimpleStream(input, context, { + async push(content) { + if (hasReady) { + await writer.ready; + } + if (content != null) { + return writer.write(encoder.encode(content)); + } else { + return writer.close(); + } + }, + destroy(err) { + console.log(err); + writer.close(); + } + }); +} + +initDirectivesForSSR(); + +export { pipeToNodeWritable, pipeToWebWritable, renderToNodeStream, renderToSimpleStream, renderToStream, renderToString, renderToWebStream, ssrGetDirectiveProps, ssrGetDynamicModelProps, ssrInterpolate, ssrLooseContain, ssrLooseEqual, ssrRenderAttr, ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, ssrRenderDynamicAttr, ssrRenderDynamicModel, ssrRenderList, ssrRenderSlot, ssrRenderSlotInner, ssrRenderStyle, ssrRenderSuspense, ssrRenderTeleport, renderVNode as ssrRenderVNode }; diff --git a/node_modules/@vue/server-renderer/index.js b/node_modules/@vue/server-renderer/index.js new file mode 100644 index 0000000..f5a3d90 --- /dev/null +++ b/node_modules/@vue/server-renderer/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/server-renderer.cjs.prod.js') +} else { + module.exports = require('./dist/server-renderer.cjs.js') +} diff --git a/node_modules/@vue/server-renderer/package.json b/node_modules/@vue/server-renderer/package.json new file mode 100644 index 0000000..afd78f1 --- /dev/null +++ b/node_modules/@vue/server-renderer/package.json @@ -0,0 +1,55 @@ +{ + "name": "@vue/server-renderer", + "version": "3.5.28", + "description": "@vue/server-renderer", + "main": "index.js", + "module": "dist/server-renderer.esm-bundler.js", + "types": "dist/server-renderer.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/server-renderer.d.ts", + "node": { + "production": "./dist/server-renderer.cjs.prod.js", + "development": "./dist/server-renderer.cjs.js", + "default": "./index.js" + }, + "module": "./dist/server-renderer.esm-bundler.js", + "import": "./dist/server-renderer.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueServerRenderer", + "formats": [ + "esm-bundler", + "esm-browser", + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/server-renderer" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", + "peerDependencies": { + "vue": "3.5.28" + }, + "dependencies": { + "@vue/shared": "3.5.28", + "@vue/compiler-ssr": "3.5.28" + } +} \ No newline at end of file diff --git a/node_modules/@vue/shared/LICENSE b/node_modules/@vue/shared/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/@vue/shared/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/@vue/shared/README.md b/node_modules/@vue/shared/README.md new file mode 100644 index 0000000..1d01f2f --- /dev/null +++ b/node_modules/@vue/shared/README.md @@ -0,0 +1,3 @@ +# @vue/shared + +Internal utility functions and constants shared across `@vue` packages. diff --git a/node_modules/@vue/shared/dist/shared.cjs.js b/node_modules/@vue/shared/dist/shared.cjs.js new file mode 100644 index 0000000..3acd2ac --- /dev/null +++ b/node_modules/@vue/shared/dist/shared.cjs.js @@ -0,0 +1,612 @@ +/** +* @vue/shared v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const EMPTY_ARR = Object.freeze([]) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name) { + return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; +} +function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); +} + +const PatchFlags = { + "TEXT": 1, + "1": "TEXT", + "CLASS": 2, + "2": "CLASS", + "STYLE": 4, + "4": "STYLE", + "PROPS": 8, + "8": "PROPS", + "FULL_PROPS": 16, + "16": "FULL_PROPS", + "NEED_HYDRATION": 32, + "32": "NEED_HYDRATION", + "STABLE_FRAGMENT": 64, + "64": "STABLE_FRAGMENT", + "KEYED_FRAGMENT": 128, + "128": "KEYED_FRAGMENT", + "UNKEYED_FRAGMENT": 256, + "256": "UNKEYED_FRAGMENT", + "NEED_PATCH": 512, + "512": "NEED_PATCH", + "DYNAMIC_SLOTS": 1024, + "1024": "DYNAMIC_SLOTS", + "DEV_ROOT_FRAGMENT": 2048, + "2048": "DEV_ROOT_FRAGMENT", + "CACHED": -1, + "-1": "CACHED", + "BAIL": -2, + "-2": "BAIL" +}; +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` +}; + +const ShapeFlags = { + "ELEMENT": 1, + "1": "ELEMENT", + "FUNCTIONAL_COMPONENT": 2, + "2": "FUNCTIONAL_COMPONENT", + "STATEFUL_COMPONENT": 4, + "4": "STATEFUL_COMPONENT", + "TEXT_CHILDREN": 8, + "8": "TEXT_CHILDREN", + "ARRAY_CHILDREN": 16, + "16": "ARRAY_CHILDREN", + "SLOTS_CHILDREN": 32, + "32": "SLOTS_CHILDREN", + "TELEPORT": 64, + "64": "TELEPORT", + "SUSPENSE": 128, + "128": "SUSPENSE", + "COMPONENT_SHOULD_KEEP_ALIVE": 256, + "256": "COMPONENT_SHOULD_KEEP_ALIVE", + "COMPONENT_KEPT_ALIVE": 512, + "512": "COMPONENT_KEPT_ALIVE", + "COMPONENT": 6, + "6": "COMPONENT" +}; + +const SlotFlags = { + "STABLE": 1, + "1": "STABLE", + "DYNAMIC": 2, + "2": "DYNAMIC", + "FORWARDED": 3, + "3": "FORWARDED" +}; +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); +const isGloballyWhitelisted = isGloballyAllowed; + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +const isKnownMathMLAttr = /* @__PURE__ */ makeMap( + `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; +function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); +} +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); +} + +exports.EMPTY_ARR = EMPTY_ARR; +exports.EMPTY_OBJ = EMPTY_OBJ; +exports.NO = NO; +exports.NOOP = NOOP; +exports.PatchFlagNames = PatchFlagNames; +exports.PatchFlags = PatchFlags; +exports.ShapeFlags = ShapeFlags; +exports.SlotFlags = SlotFlags; +exports.camelize = camelize; +exports.capitalize = capitalize; +exports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE; +exports.def = def; +exports.escapeHtml = escapeHtml; +exports.escapeHtmlComment = escapeHtmlComment; +exports.extend = extend; +exports.genCacheKey = genCacheKey; +exports.genPropsAccessExp = genPropsAccessExp; +exports.generateCodeFrame = generateCodeFrame; +exports.getEscapedCssVarName = getEscapedCssVarName; +exports.getGlobalThis = getGlobalThis; +exports.hasChanged = hasChanged; +exports.hasOwn = hasOwn; +exports.hyphenate = hyphenate; +exports.includeBooleanAttr = includeBooleanAttr; +exports.invokeArrayFns = invokeArrayFns; +exports.isArray = isArray; +exports.isBooleanAttr = isBooleanAttr; +exports.isBuiltInDirective = isBuiltInDirective; +exports.isDate = isDate; +exports.isFunction = isFunction; +exports.isGloballyAllowed = isGloballyAllowed; +exports.isGloballyWhitelisted = isGloballyWhitelisted; +exports.isHTMLTag = isHTMLTag; +exports.isIntegerKey = isIntegerKey; +exports.isKnownHtmlAttr = isKnownHtmlAttr; +exports.isKnownMathMLAttr = isKnownMathMLAttr; +exports.isKnownSvgAttr = isKnownSvgAttr; +exports.isMap = isMap; +exports.isMathMLTag = isMathMLTag; +exports.isModelListener = isModelListener; +exports.isObject = isObject; +exports.isOn = isOn; +exports.isPlainObject = isPlainObject; +exports.isPromise = isPromise; +exports.isRegExp = isRegExp; +exports.isRenderableAttrValue = isRenderableAttrValue; +exports.isReservedProp = isReservedProp; +exports.isSSRSafeAttrName = isSSRSafeAttrName; +exports.isSVGTag = isSVGTag; +exports.isSet = isSet; +exports.isSpecialBooleanAttr = isSpecialBooleanAttr; +exports.isString = isString; +exports.isSymbol = isSymbol; +exports.isVoidTag = isVoidTag; +exports.looseEqual = looseEqual; +exports.looseIndexOf = looseIndexOf; +exports.looseToNumber = looseToNumber; +exports.makeMap = makeMap; +exports.normalizeClass = normalizeClass; +exports.normalizeCssVarValue = normalizeCssVarValue; +exports.normalizeProps = normalizeProps; +exports.normalizeStyle = normalizeStyle; +exports.objectToString = objectToString; +exports.parseStringStyle = parseStringStyle; +exports.propsToAttrMap = propsToAttrMap; +exports.remove = remove; +exports.slotFlagsText = slotFlagsText; +exports.stringifyStyle = stringifyStyle; +exports.toDisplayString = toDisplayString; +exports.toHandlerKey = toHandlerKey; +exports.toNumber = toNumber; +exports.toRawType = toRawType; +exports.toTypeString = toTypeString; diff --git a/node_modules/@vue/shared/dist/shared.cjs.prod.js b/node_modules/@vue/shared/dist/shared.cjs.prod.js new file mode 100644 index 0000000..5af6998 --- /dev/null +++ b/node_modules/@vue/shared/dist/shared.cjs.prod.js @@ -0,0 +1,604 @@ +/** +* @vue/shared v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = {}; +const EMPTY_ARR = []; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name) { + return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; +} +function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); +} + +const PatchFlags = { + "TEXT": 1, + "1": "TEXT", + "CLASS": 2, + "2": "CLASS", + "STYLE": 4, + "4": "STYLE", + "PROPS": 8, + "8": "PROPS", + "FULL_PROPS": 16, + "16": "FULL_PROPS", + "NEED_HYDRATION": 32, + "32": "NEED_HYDRATION", + "STABLE_FRAGMENT": 64, + "64": "STABLE_FRAGMENT", + "KEYED_FRAGMENT": 128, + "128": "KEYED_FRAGMENT", + "UNKEYED_FRAGMENT": 256, + "256": "UNKEYED_FRAGMENT", + "NEED_PATCH": 512, + "512": "NEED_PATCH", + "DYNAMIC_SLOTS": 1024, + "1024": "DYNAMIC_SLOTS", + "DEV_ROOT_FRAGMENT": 2048, + "2048": "DEV_ROOT_FRAGMENT", + "CACHED": -1, + "-1": "CACHED", + "BAIL": -2, + "-2": "BAIL" +}; +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` +}; + +const ShapeFlags = { + "ELEMENT": 1, + "1": "ELEMENT", + "FUNCTIONAL_COMPONENT": 2, + "2": "FUNCTIONAL_COMPONENT", + "STATEFUL_COMPONENT": 4, + "4": "STATEFUL_COMPONENT", + "TEXT_CHILDREN": 8, + "8": "TEXT_CHILDREN", + "ARRAY_CHILDREN": 16, + "16": "ARRAY_CHILDREN", + "SLOTS_CHILDREN": 32, + "32": "SLOTS_CHILDREN", + "TELEPORT": 64, + "64": "TELEPORT", + "SUSPENSE": 128, + "128": "SUSPENSE", + "COMPONENT_SHOULD_KEEP_ALIVE": 256, + "256": "COMPONENT_SHOULD_KEEP_ALIVE", + "COMPONENT_KEPT_ALIVE": 512, + "512": "COMPONENT_KEPT_ALIVE", + "COMPONENT": 6, + "6": "COMPONENT" +}; + +const SlotFlags = { + "STABLE": 1, + "1": "STABLE", + "DYNAMIC": 2, + "2": "DYNAMIC", + "FORWARDED": 3, + "3": "FORWARDED" +}; +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); +const isGloballyWhitelisted = isGloballyAllowed; + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +const isKnownMathMLAttr = /* @__PURE__ */ makeMap( + `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; +function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); +} +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + return String(value); +} + +exports.EMPTY_ARR = EMPTY_ARR; +exports.EMPTY_OBJ = EMPTY_OBJ; +exports.NO = NO; +exports.NOOP = NOOP; +exports.PatchFlagNames = PatchFlagNames; +exports.PatchFlags = PatchFlags; +exports.ShapeFlags = ShapeFlags; +exports.SlotFlags = SlotFlags; +exports.camelize = camelize; +exports.capitalize = capitalize; +exports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE; +exports.def = def; +exports.escapeHtml = escapeHtml; +exports.escapeHtmlComment = escapeHtmlComment; +exports.extend = extend; +exports.genCacheKey = genCacheKey; +exports.genPropsAccessExp = genPropsAccessExp; +exports.generateCodeFrame = generateCodeFrame; +exports.getEscapedCssVarName = getEscapedCssVarName; +exports.getGlobalThis = getGlobalThis; +exports.hasChanged = hasChanged; +exports.hasOwn = hasOwn; +exports.hyphenate = hyphenate; +exports.includeBooleanAttr = includeBooleanAttr; +exports.invokeArrayFns = invokeArrayFns; +exports.isArray = isArray; +exports.isBooleanAttr = isBooleanAttr; +exports.isBuiltInDirective = isBuiltInDirective; +exports.isDate = isDate; +exports.isFunction = isFunction; +exports.isGloballyAllowed = isGloballyAllowed; +exports.isGloballyWhitelisted = isGloballyWhitelisted; +exports.isHTMLTag = isHTMLTag; +exports.isIntegerKey = isIntegerKey; +exports.isKnownHtmlAttr = isKnownHtmlAttr; +exports.isKnownMathMLAttr = isKnownMathMLAttr; +exports.isKnownSvgAttr = isKnownSvgAttr; +exports.isMap = isMap; +exports.isMathMLTag = isMathMLTag; +exports.isModelListener = isModelListener; +exports.isObject = isObject; +exports.isOn = isOn; +exports.isPlainObject = isPlainObject; +exports.isPromise = isPromise; +exports.isRegExp = isRegExp; +exports.isRenderableAttrValue = isRenderableAttrValue; +exports.isReservedProp = isReservedProp; +exports.isSSRSafeAttrName = isSSRSafeAttrName; +exports.isSVGTag = isSVGTag; +exports.isSet = isSet; +exports.isSpecialBooleanAttr = isSpecialBooleanAttr; +exports.isString = isString; +exports.isSymbol = isSymbol; +exports.isVoidTag = isVoidTag; +exports.looseEqual = looseEqual; +exports.looseIndexOf = looseIndexOf; +exports.looseToNumber = looseToNumber; +exports.makeMap = makeMap; +exports.normalizeClass = normalizeClass; +exports.normalizeCssVarValue = normalizeCssVarValue; +exports.normalizeProps = normalizeProps; +exports.normalizeStyle = normalizeStyle; +exports.objectToString = objectToString; +exports.parseStringStyle = parseStringStyle; +exports.propsToAttrMap = propsToAttrMap; +exports.remove = remove; +exports.slotFlagsText = slotFlagsText; +exports.stringifyStyle = stringifyStyle; +exports.toDisplayString = toDisplayString; +exports.toHandlerKey = toHandlerKey; +exports.toNumber = toNumber; +exports.toRawType = toRawType; +exports.toTypeString = toTypeString; diff --git a/node_modules/@vue/shared/dist/shared.d.ts b/node_modules/@vue/shared/dist/shared.d.ts new file mode 100644 index 0000000..9b1ec01 --- /dev/null +++ b/node_modules/@vue/shared/dist/shared.d.ts @@ -0,0 +1,334 @@ +/** + * Make a map and return a function for checking if a key + * is in that map. + * IMPORTANT: all calls of this function must be prefixed with + * \/\*#\_\_PURE\_\_\*\/ + * So that rollup can tree-shake them if necessary. + */ +export declare function makeMap(str: string): (key: string) => boolean; + +export declare const EMPTY_OBJ: { + readonly [key: string]: any; +}; +export declare const EMPTY_ARR: readonly never[]; +export declare const NOOP: () => void; +/** + * Always return false. + */ +export declare const NO: () => boolean; +export declare const isOn: (key: string) => boolean; +export declare const isModelListener: (key: string) => key is `onUpdate:${string}`; +export declare const extend: typeof Object.assign; +export declare const remove: <T>(arr: T[], el: T) => void; +export declare const hasOwn: (val: object, key: string | symbol) => key is keyof typeof val; +export declare const isArray: typeof Array.isArray; +export declare const isMap: (val: unknown) => val is Map<any, any>; +export declare const isSet: (val: unknown) => val is Set<any>; +export declare const isDate: (val: unknown) => val is Date; +export declare const isRegExp: (val: unknown) => val is RegExp; +export declare const isFunction: (val: unknown) => val is Function; +export declare const isString: (val: unknown) => val is string; +export declare const isSymbol: (val: unknown) => val is symbol; +export declare const isObject: (val: unknown) => val is Record<any, any>; +export declare const isPromise: <T = any>(val: unknown) => val is Promise<T>; +export declare const objectToString: typeof Object.prototype.toString; +export declare const toTypeString: (value: unknown) => string; +export declare const toRawType: (value: unknown) => string; +export declare const isPlainObject: (val: unknown) => val is object; +export declare const isIntegerKey: (key: unknown) => boolean; +export declare const isReservedProp: (key: string) => boolean; +export declare const isBuiltInDirective: (key: string) => boolean; +/** + * @private + */ +export declare const camelize: (str: string) => string; +/** + * @private + */ +export declare const hyphenate: (str: string) => string; +/** + * @private + */ +export declare const capitalize: <T extends string>(str: T) => Capitalize<T>; +/** + * @private + */ +export declare const toHandlerKey: <T extends string>(str: T) => T extends '' ? '' : `on${Capitalize<T>}`; +export declare const hasChanged: (value: any, oldValue: any) => boolean; +export declare const invokeArrayFns: (fns: Function[], ...arg: any[]) => void; +export declare const def: (obj: object, key: string | symbol, value: any, writable?: boolean) => void; +/** + * "123-foo" will be parsed to 123 + * This is used for the .number modifier in v-model + */ +export declare const looseToNumber: (val: any) => any; +/** + * Only concerns number-like strings + * "123-foo" will be returned as-is + */ +export declare const toNumber: (val: any) => any; +export declare const getGlobalThis: () => any; +export declare function genPropsAccessExp(name: string): string; +export declare function genCacheKey(source: string, options: any): string; + +/** + * Patch flags are optimization hints generated by the compiler. + * when a block with dynamicChildren is encountered during diff, the algorithm + * enters "optimized mode". In this mode, we know that the vdom is produced by + * a render function generated by the compiler, so the algorithm only needs to + * handle updates explicitly marked by these patch flags. + * + * Patch flags can be combined using the | bitwise operator and can be checked + * using the & operator, e.g. + * + * ```js + * const flag = TEXT | CLASS + * if (flag & TEXT) { ... } + * ``` + * + * Check the `patchElement` function in '../../runtime-core/src/renderer.ts' to see how the + * flags are handled during diff. + */ +export declare enum PatchFlags { + /** + * Indicates an element with dynamic textContent (children fast path) + */ + TEXT = 1, + /** + * Indicates an element with dynamic class binding. + */ + CLASS = 2, + /** + * Indicates an element with dynamic style + * The compiler pre-compiles static string styles into static objects + * + detects and hoists inline static objects + * e.g. `style="color: red"` and `:style="{ color: 'red' }"` both get hoisted + * as: + * ```js + * const style = { color: 'red' } + * render() { return e('div', { style }) } + * ``` + */ + STYLE = 4, + /** + * Indicates an element that has non-class/style dynamic props. + * Can also be on a component that has any dynamic props (includes + * class/style). when this flag is present, the vnode also has a dynamicProps + * array that contains the keys of the props that may change so the runtime + * can diff them faster (without having to worry about removed props) + */ + PROPS = 8, + /** + * Indicates an element with props with dynamic keys. When keys change, a full + * diff is always needed to remove the old key. This flag is mutually + * exclusive with CLASS, STYLE and PROPS. + */ + FULL_PROPS = 16, + /** + * Indicates an element that requires props hydration + * (but not necessarily patching) + * e.g. event listeners & v-bind with prop modifier + */ + NEED_HYDRATION = 32, + /** + * Indicates a fragment whose children order doesn't change. + */ + STABLE_FRAGMENT = 64, + /** + * Indicates a fragment with keyed or partially keyed children + */ + KEYED_FRAGMENT = 128, + /** + * Indicates a fragment with unkeyed children. + */ + UNKEYED_FRAGMENT = 256, + /** + * Indicates an element that only needs non-props patching, e.g. ref or + * directives (onVnodeXXX hooks). since every patched vnode checks for refs + * and onVnodeXXX hooks, it simply marks the vnode so that a parent block + * will track it. + */ + NEED_PATCH = 512, + /** + * Indicates a component with dynamic slots (e.g. slot that references a v-for + * iterated value, or dynamic slot names). + * Components with this flag are always force updated. + */ + DYNAMIC_SLOTS = 1024, + /** + * Indicates a fragment that was created only because the user has placed + * comments at the root level of a template. This is a dev-only flag since + * comments are stripped in production. + */ + DEV_ROOT_FRAGMENT = 2048, + /** + * SPECIAL FLAGS ------------------------------------------------------------- + * Special flags are negative integers. They are never matched against using + * bitwise operators (bitwise matching should only happen in branches where + * patchFlag > 0), and are mutually exclusive. When checking for a special + * flag, simply check patchFlag === FLAG. + */ + /** + * Indicates a cached static vnode. This is also a hint for hydration to skip + * the entire sub tree since static content never needs to be updated. + */ + CACHED = -1, + /** + * A special flag that indicates that the diffing algorithm should bail out + * of optimized mode. For example, on block fragments created by renderSlot() + * when encountering non-compiler generated slots (i.e. manually written + * render functions, which should always be fully diffed) + * OR manually cloneVNodes + */ + BAIL = -2 +} +/** + * dev only flag -> name mapping + */ +export declare const PatchFlagNames: Record<PatchFlags, string>; + +export declare enum ShapeFlags { + ELEMENT = 1, + FUNCTIONAL_COMPONENT = 2, + STATEFUL_COMPONENT = 4, + TEXT_CHILDREN = 8, + ARRAY_CHILDREN = 16, + SLOTS_CHILDREN = 32, + TELEPORT = 64, + SUSPENSE = 128, + COMPONENT_SHOULD_KEEP_ALIVE = 256, + COMPONENT_KEPT_ALIVE = 512, + COMPONENT = 6 +} + +export declare enum SlotFlags { + /** + * Stable slots that only reference slot props or context state. The slot + * can fully capture its own dependencies so when passed down the parent won't + * need to force the child to update. + */ + STABLE = 1, + /** + * Slots that reference scope variables (v-for or an outer slot prop), or + * has conditional structure (v-if, v-for). The parent will need to force + * the child to update because the slot does not fully capture its dependencies. + */ + DYNAMIC = 2, + /** + * `<slot/>` being forwarded into a child component. Whether the parent needs + * to update the child is dependent on what kind of slots the parent itself + * received. This has to be refined at runtime, when the child's vnode + * is being created (in `normalizeChildren`) + */ + FORWARDED = 3 +} +/** + * Dev only + */ +export declare const slotFlagsText: Record<SlotFlags, string>; + +export declare const isGloballyAllowed: (key: string) => boolean; +/** @deprecated use `isGloballyAllowed` instead */ +export declare const isGloballyWhitelisted: (key: string) => boolean; + +export declare function generateCodeFrame(source: string, start?: number, end?: number): string; + +export type NormalizedStyle = Record<string, string | number>; +export declare function normalizeStyle(value: unknown): NormalizedStyle | string | undefined; +export declare function parseStringStyle(cssText: string): NormalizedStyle; +export declare function stringifyStyle(styles: NormalizedStyle | string | undefined): string; +export declare function normalizeClass(value: unknown): string; +export declare function normalizeProps(props: Record<string, any> | null): Record<string, any> | null; + +/** + * Compiler only. + * Do NOT use in runtime code paths unless behind `__DEV__` flag. + */ +export declare const isHTMLTag: (key: string) => boolean; +/** + * Compiler only. + * Do NOT use in runtime code paths unless behind `__DEV__` flag. + */ +export declare const isSVGTag: (key: string) => boolean; +/** + * Compiler only. + * Do NOT use in runtime code paths unless behind `__DEV__` flag. + */ +export declare const isMathMLTag: (key: string) => boolean; +/** + * Compiler only. + * Do NOT use in runtime code paths unless behind `__DEV__` flag. + */ +export declare const isVoidTag: (key: string) => boolean; + +export declare const isSpecialBooleanAttr: (key: string) => boolean; +/** + * The full list is needed during SSR to produce the correct initial markup. + */ +export declare const isBooleanAttr: (key: string) => boolean; +/** + * Boolean attributes should be included if the value is truthy or ''. + * e.g. `<select multiple>` compiles to `{ multiple: '' }` + */ +export declare function includeBooleanAttr(value: unknown): boolean; +export declare function isSSRSafeAttrName(name: string): boolean; +export declare const propsToAttrMap: Record<string, string | undefined>; +/** + * Known attributes, this is used for stringification of runtime static nodes + * so that we don't stringify bindings that cannot be set from HTML. + * Don't also forget to allow `data-*` and `aria-*`! + * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes + */ +export declare const isKnownHtmlAttr: (key: string) => boolean; +/** + * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute + */ +export declare const isKnownSvgAttr: (key: string) => boolean; +/** + * Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute + */ +export declare const isKnownMathMLAttr: (key: string) => boolean; +/** + * Shared between server-renderer and runtime-core hydration logic + */ +export declare function isRenderableAttrValue(value: unknown): boolean; + +export declare function escapeHtml(string: unknown): string; +export declare function escapeHtmlComment(src: string): string; +export declare const cssVarNameEscapeSymbolsRE: RegExp; +export declare function getEscapedCssVarName(key: string, doubleEscape: boolean): string; + +export declare function looseEqual(a: any, b: any): boolean; +export declare function looseIndexOf(arr: any[], val: any): number; + +/** + * For converting {{ interpolation }} values to displayed strings. + * @private + */ +export declare const toDisplayString: (val: unknown) => string; + +export type Prettify<T> = { + [K in keyof T]: T[K]; +} & {}; +export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; +export type LooseRequired<T> = { + [P in keyof (T & Required<T>)]: T[P]; +}; +export type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N; +export type IsKeyValues<T, K = string> = IfAny<T, false, T extends object ? (keyof T extends K ? true : false) : false>; +/** + * Utility for extracting the parameters from a function overload (for typed emits) + * https://github.com/microsoft/TypeScript/issues/32164#issuecomment-1146737709 + */ +export type OverloadParameters<T extends (...args: any[]) => any> = Parameters<OverloadUnion<T>>; +type OverloadProps<TOverload> = Pick<TOverload, keyof TOverload>; +type OverloadUnionRecursive<TOverload, TPartialOverload = unknown> = TOverload extends (...args: infer TArgs) => infer TReturn ? TPartialOverload extends TOverload ? never : OverloadUnionRecursive<TPartialOverload & TOverload, TPartialOverload & ((...args: TArgs) => TReturn) & OverloadProps<TOverload>> | ((...args: TArgs) => TReturn) : never; +type OverloadUnion<TOverload extends (...args: any[]) => any> = Exclude<OverloadUnionRecursive<(() => never) & TOverload>, TOverload extends () => never ? never : () => never>; + +/** + * Normalize CSS var value created by `v-bind` in `<style>` block + * See https://github.com/vuejs/core/pull/12461#issuecomment-2495804664 + */ +export declare function normalizeCssVarValue(value: unknown): string; + + diff --git a/node_modules/@vue/shared/dist/shared.esm-bundler.js b/node_modules/@vue/shared/dist/shared.esm-bundler.js new file mode 100644 index 0000000..a213fdd --- /dev/null +++ b/node_modules/@vue/shared/dist/shared.esm-bundler.js @@ -0,0 +1,536 @@ +/** +* @vue/shared v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = !!(process.env.NODE_ENV !== "production") ? Object.freeze({}) : {}; +const EMPTY_ARR = !!(process.env.NODE_ENV !== "production") ? Object.freeze([]) : []; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name) { + return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; +} +function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); +} + +const PatchFlags = { + "TEXT": 1, + "1": "TEXT", + "CLASS": 2, + "2": "CLASS", + "STYLE": 4, + "4": "STYLE", + "PROPS": 8, + "8": "PROPS", + "FULL_PROPS": 16, + "16": "FULL_PROPS", + "NEED_HYDRATION": 32, + "32": "NEED_HYDRATION", + "STABLE_FRAGMENT": 64, + "64": "STABLE_FRAGMENT", + "KEYED_FRAGMENT": 128, + "128": "KEYED_FRAGMENT", + "UNKEYED_FRAGMENT": 256, + "256": "UNKEYED_FRAGMENT", + "NEED_PATCH": 512, + "512": "NEED_PATCH", + "DYNAMIC_SLOTS": 1024, + "1024": "DYNAMIC_SLOTS", + "DEV_ROOT_FRAGMENT": 2048, + "2048": "DEV_ROOT_FRAGMENT", + "CACHED": -1, + "-1": "CACHED", + "BAIL": -2, + "-2": "BAIL" +}; +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` +}; + +const ShapeFlags = { + "ELEMENT": 1, + "1": "ELEMENT", + "FUNCTIONAL_COMPONENT": 2, + "2": "FUNCTIONAL_COMPONENT", + "STATEFUL_COMPONENT": 4, + "4": "STATEFUL_COMPONENT", + "TEXT_CHILDREN": 8, + "8": "TEXT_CHILDREN", + "ARRAY_CHILDREN": 16, + "16": "ARRAY_CHILDREN", + "SLOTS_CHILDREN": 32, + "32": "SLOTS_CHILDREN", + "TELEPORT": 64, + "64": "TELEPORT", + "SUSPENSE": 128, + "128": "SUSPENSE", + "COMPONENT_SHOULD_KEEP_ALIVE": 256, + "256": "COMPONENT_SHOULD_KEEP_ALIVE", + "COMPONENT_KEPT_ALIVE": 512, + "512": "COMPONENT_KEPT_ALIVE", + "COMPONENT": 6, + "6": "COMPONENT" +}; + +const SlotFlags = { + "STABLE": 1, + "1": "STABLE", + "DYNAMIC": 2, + "2": "DYNAMIC", + "FORWARDED": 3, + "3": "FORWARDED" +}; +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); +const isGloballyWhitelisted = isGloballyAllowed; + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +const isKnownMathMLAttr = /* @__PURE__ */ makeMap( + `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; +function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); +} +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + if (!!(process.env.NODE_ENV !== "production")) { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); +} + +export { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString }; diff --git a/node_modules/@vue/shared/index.js b/node_modules/@vue/shared/index.js new file mode 100644 index 0000000..a2ee43e --- /dev/null +++ b/node_modules/@vue/shared/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/shared.cjs.prod.js') +} else { + module.exports = require('./dist/shared.cjs.js') +} diff --git a/node_modules/@vue/shared/package.json b/node_modules/@vue/shared/package.json new file mode 100644 index 0000000..52a4586 --- /dev/null +++ b/node_modules/@vue/shared/package.json @@ -0,0 +1,47 @@ +{ + "name": "@vue/shared", + "version": "3.5.28", + "description": "internal utils shared across @vue packages", + "main": "index.js", + "module": "dist/shared.esm-bundler.js", + "types": "dist/shared.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/shared.d.ts", + "node": { + "production": "./dist/shared.cjs.prod.js", + "development": "./dist/shared.cjs.js", + "default": "./index.js" + }, + "module": "./dist/shared.esm-bundler.js", + "import": "./dist/shared.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "buildOptions": { + "formats": [ + "esm-bundler", + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/shared" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/shared#readme" +} \ No newline at end of file diff --git a/node_modules/buetify/LICENSE b/node_modules/buetify/LICENSE new file mode 100755 index 0000000..1f776f1 --- /dev/null +++ b/node_modules/buetify/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Harry Kightlinger + +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. diff --git a/node_modules/buetify/README.md b/node_modules/buetify/README.md new file mode 100755 index 0000000..03eb0f6 --- /dev/null +++ b/node_modules/buetify/README.md @@ -0,0 +1,12 @@ + +# buetify +Source code for buetify +## Project setup +``` +yarn install +``` + +### Compiles for production +``` +yarn build +``` diff --git a/node_modules/buetify/lib/components/accordion/BAccordion.d.ts b/node_modules/buetify/lib/components/accordion/BAccordion.d.ts new file mode 100755 index 0000000..87108f1 --- /dev/null +++ b/node_modules/buetify/lib/components/accordion/BAccordion.d.ts @@ -0,0 +1,62 @@ +import 'bulma/sass/components/card.sass'; +import '../../sass/helpers/animations.sass'; +import './accordion.sass'; +export declare const ACCORDION_CONTENT_THEME_MAP: { + dark: string; + light: string; +}; +declare const _default: import("vue").DefineComponent<{ + themeMap: { + type: import("vue").PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + transition: { + type: import("vue").PropType<import("../../types/Transition").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../../types/Transition").Transition>; + }; + onToggle: { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: import("vue").PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + onSetOff: { + type: import("vue").PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + isExpanded: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + hasPopup: boolean; + transition: import("../../types/Transition").Transition; + isExpanded: boolean; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: import("fp-ts/lib/IO").IO<void> | undefined; + onSetOff?: import("fp-ts/lib/IO").IO<void> | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + hasPopup: boolean; + transition: import("../../types/Transition").Transition; + isExpanded: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/accordion/BAccordion.js b/node_modules/buetify/lib/components/accordion/BAccordion.js new file mode 100755 index 0000000..209bedf --- /dev/null +++ b/node_modules/buetify/lib/components/accordion/BAccordion.js @@ -0,0 +1,75 @@ +import 'bulma/sass/components/card.sass'; +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/components/accordion/accordion.sass"; +import { defineComponent, h, vShow, withDirectives, Transition } from 'vue'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import { getUseTogglePropsDefinition, useToggle } from '../../composables/toggle'; +import { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition'; +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; + +function generateTitle(slots) { + return h('h1', { + class: 'card-header-title' + }, slots.title && slots.title()); +} + +function generateTriggerButton(toggle, slots) { + return h('button', { + class: 'card-header-icon', + ...toggle.listeners, + ...toggle.attrs.value, + onClick: e => { + e.stopPropagation(); + toggle.toggle(); + } + }, slots.trigger ? slots.trigger({ + isExpanded: toggle.isOn.value + }) : h(VerticalExpansionIcon, { + isExpanded: toggle.isOn.value + })); +} + +function generateHeader(toggle, slots) { + return h('header', { + class: 'card-header', + onClick: toggle.toggle + }, [generateTitle(slots), generateTriggerButton(toggle, slots)]); +} + +export const ACCORDION_CONTENT_THEME_MAP = { + dark: 'is-black-ter', + light: '' +}; +const BAccordionContent = getThemeableFunctionalComponent({ + cls: 'card-content', + el: 'section', + themeMap: ACCORDION_CONTENT_THEME_MAP +}); + +function generateBody(toggle, transition, slots) { + return h(Transition, transition.value, () => withDirectives(h(BAccordionContent, { + 'aria-hidden': !toggle.isOn.value + }, slots.default), [[vShow, toggle.isOn.value]])); +} + +export default defineComponent({ + name: 'b-accordion', + props: { ...getUseTogglePropsDefinition('isExpanded'), + ...FadeTransitionPropsDefinition, + ...DefaultThemePropsDefinition + }, + + setup(props, { + slots + }) { + const toggle = useToggle(props, 'isExpanded'); + const theme = useTheme(props); + const transition = useTransition(props); + return () => h('article', { + class: ['b-card card', ...theme.themeClasses.value] + }, [generateHeader(toggle, slots), generateBody(toggle, transition, slots)]); + } + +}); +//# sourceMappingURL=BAccordion.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/accordion/BAccordion.js.map b/node_modules/buetify/lib/components/accordion/BAccordion.js.map new file mode 100755 index 0000000..8660604 --- /dev/null +++ b/node_modules/buetify/lib/components/accordion/BAccordion.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/accordion/BAccordion.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAP;AACA,OAAO,2CAAP;AACA,OAAO,kDAAP;AACA,SAAS,eAAT,EAA0B,CAA1B,EAAyC,KAAzC,EAAgD,cAAhD,EAAgE,UAAhE,QAAkF,KAAlF;AACA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,yBAAtD;AACA,SAAS,2BAAT,EAA8C,SAA9C,QAA+D,0BAA/D;AACA,SAAS,6BAAT,EAAwC,aAAxC,QAA6D,8BAA7D;AAEA,SAAS,+BAAT,QAAgD,6CAAhD;AACA,OAAO,qBAAP,MAAkC,kDAAlC;;AAEA,SAAS,aAAT,CAAuB,KAAvB,EAAmC;AACjC,SAAO,CAAC,CACN,IADM,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,KAAK,CAAC,KAAN,IAAe,KAAK,CAAC,KAAN,EALT,CAAR;AAOD;;AAED,SAAS,qBAAT,CAA+B,MAA/B,EAA+C,KAA/C,EAA2D;AACzD,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,kBADT;AAEE,OAAG,MAAM,CAAC,SAFZ;AAGE,OAAG,MAAM,CAAC,KAAP,CAAa,KAHlB;AAIE,IAAA,OAAO,EAAG,CAAD,IAAkB;AACzB,MAAA,CAAC,CAAC,eAAF;AACA,MAAA,MAAM,CAAC,MAAP;AACD;AAPH,GAFM,EAYN,KAAK,CAAC,OAAN,GACI,KAAK,CAAC,OAAN,CAAc;AACZ,IAAA,UAAU,EAAE,MAAM,CAAC,IAAP,CAAY;AADZ,GAAd,CADJ,GAII,CAAC,CAAC,qBAAD,EAAwB;AAAE,IAAA,UAAU,EAAE,MAAM,CAAC,IAAP,CAAY;AAA1B,GAAxB,CAhBC,CAAR;AAkBD;;AAED,SAAS,cAAT,CAAwB,MAAxB,EAAwC,KAAxC,EAAoD;AAClD,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,aADT;AAEE,IAAA,OAAO,EAAE,MAAM,CAAC;AAFlB,GAFM,EAMN,CAAC,aAAa,CAAC,KAAD,CAAd,EAAuB,qBAAqB,CAAC,MAAD,EAAS,KAAT,CAA5C,CANM,CAAR;AAQD;;AAED,OAAO,MAAM,2BAA2B,GAAG;AACzC,EAAA,IAAI,EAAE,cADmC;AAEzC,EAAA,KAAK,EAAE;AAFkC,CAApC;AAKP,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AACxD,EAAA,GAAG,EAAE,cADmD;AAExD,EAAA,EAAE,EAAE,SAFoD;AAGxD,EAAA,QAAQ,EAAE;AAH8C,CAAD,CAAzD;;AAMA,SAAS,YAAT,CAAsB,MAAtB,EAAsC,UAAtC,EAA0E,KAA1E,EAAsF;AACpF,SAAO,CAAC,CAAC,UAAD,EAAa,UAAU,CAAC,KAAxB,EAA+B,MACrC,cAAc,CACZ,CAAC,CACC,iBADD,EAEC;AACE,mBAAe,CAAC,MAAM,CAAC,IAAP,CAAY;AAD9B,GAFD,EAKC,KAAK,CAAC,OALP,CADW,EAQZ,CAAC,CAAC,KAAD,EAAQ,MAAM,CAAC,IAAP,CAAY,KAApB,CAAD,CARY,CADR,CAAR;AAYD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,aADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,2BAA2B,CAAC,YAAD,CADzB;AAEL,OAAG,6BAFE;AAGL,OAAG;AAHE,GAFsB;;AAO7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,MAAM,GAAG,SAAS,CAAC,KAAD,EAAQ,YAAR,CAAxB;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,KAAD,CAAtB;AACA,UAAM,UAAU,GAAG,aAAa,CAAC,KAAD,CAAhC;AACA,WAAO,MACL,CAAC,CAAC,SAAD,EAAY;AAAE,MAAA,KAAK,EAAE,CAAC,aAAD,EAAgB,GAAG,KAAK,CAAC,YAAN,CAAmB,KAAtC;AAAT,KAAZ,EAAqE,CACpE,cAAc,CAAC,MAAD,EAAS,KAAT,CADsD,EAEpE,YAAY,CAAC,MAAD,EAAS,UAAT,EAAqB,KAArB,CAFwD,CAArE,CADH;AAKD;;AAhB4B,CAAD,CAA9B","sourcesContent":["import 'bulma/sass/components/card.sass';\nimport '../../sass/helpers/animations.sass';\nimport './accordion.sass';\nimport { defineComponent, h, Slots, Ref, vShow, withDirectives, Transition } from 'vue';\nimport { DefaultThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { getUseTogglePropsDefinition, Toggle, useToggle } from '../../composables/toggle';\nimport { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition';\nimport { TransitionClasses } from '../../types/Transition';\nimport { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent';\nimport VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon';\n\nfunction generateTitle(slots: Slots) {\n return h(\n 'h1',\n {\n class: 'card-header-title'\n },\n slots.title && slots.title()\n );\n}\n\nfunction generateTriggerButton(toggle: Toggle, slots: Slots) {\n return h(\n 'button',\n {\n class: 'card-header-icon',\n ...toggle.listeners,\n ...toggle.attrs.value,\n onClick: (e: MouseEvent) => {\n e.stopPropagation();\n toggle.toggle();\n }\n },\n\n slots.trigger\n ? slots.trigger({\n isExpanded: toggle.isOn.value\n })\n : h(VerticalExpansionIcon, { isExpanded: toggle.isOn.value })\n );\n}\n\nfunction generateHeader(toggle: Toggle, slots: Slots) {\n return h(\n 'header',\n {\n class: 'card-header',\n onClick: toggle.toggle\n },\n [generateTitle(slots), generateTriggerButton(toggle, slots)]\n );\n}\n\nexport const ACCORDION_CONTENT_THEME_MAP = {\n dark: 'is-black-ter', //'is-grey-dark',\n light: ''\n};\n\nconst BAccordionContent = getThemeableFunctionalComponent({\n cls: 'card-content',\n el: 'section',\n themeMap: ACCORDION_CONTENT_THEME_MAP\n});\n\nfunction generateBody(toggle: Toggle, transition: Ref<TransitionClasses>, slots: Slots) {\n return h(Transition, transition.value, () =>\n withDirectives(\n h(\n BAccordionContent,\n {\n 'aria-hidden': !toggle.isOn.value\n },\n slots.default\n ),\n [[vShow, toggle.isOn.value]]\n )\n );\n}\n\nexport default defineComponent({\n name: 'b-accordion',\n props: {\n ...getUseTogglePropsDefinition('isExpanded'),\n ...FadeTransitionPropsDefinition,\n ...DefaultThemePropsDefinition\n },\n setup(props, { slots }) {\n const toggle = useToggle(props, 'isExpanded');\n const theme = useTheme(props);\n const transition = useTransition(props);\n return () =>\n h('article', { class: ['b-card card', ...theme.themeClasses.value] }, [\n generateHeader(toggle, slots),\n generateBody(toggle, transition, slots)\n ]);\n }\n});\n"],"sourceRoot":"","file":"BAccordion.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/accordion/index.d.ts b/node_modules/buetify/lib/components/accordion/index.d.ts new file mode 100755 index 0000000..1b95f6d --- /dev/null +++ b/node_modules/buetify/lib/components/accordion/index.d.ts @@ -0,0 +1,3 @@ +import BAccordion from './BAccordion'; +export { BAccordion }; +export default BAccordion; diff --git a/node_modules/buetify/lib/components/accordion/index.js b/node_modules/buetify/lib/components/accordion/index.js new file mode 100755 index 0000000..2f16744 --- /dev/null +++ b/node_modules/buetify/lib/components/accordion/index.js @@ -0,0 +1,4 @@ +import BAccordion from './BAccordion'; +export { BAccordion }; +export default BAccordion; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/accordion/index.js.map b/node_modules/buetify/lib/components/accordion/index.js.map new file mode 100755 index 0000000..184c2e9 --- /dev/null +++ b/node_modules/buetify/lib/components/accordion/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAP,MAAuB,cAAvB;AAEA,SAAS,UAAT;AACA,eAAe,UAAf","sourcesContent":["import BAccordion from './BAccordion';\n\nexport { BAccordion };\nexport default BAccordion;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/app/BApp.d.ts b/node_modules/buetify/lib/components/app/BApp.d.ts new file mode 100755 index 0000000..1612afd --- /dev/null +++ b/node_modules/buetify/lib/components/app/BApp.d.ts @@ -0,0 +1,72 @@ +import '../../sass/helpers/animations.sass'; +import './app.sass'; +import { VNode } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + currentRoute: { + required: boolean; + }; + isVisible: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + breakPoints: { + type: import("vue").PropType<{ + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; + }>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<{ + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; + }>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + persistTheme: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + persistTheme: boolean; + hasPopup: boolean; + breakPoints: { + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; + }; + isVisible: boolean; +} & { + currentRoute?: unknown; +}>, { + isThemeable: boolean; + persistTheme: boolean; + hasPopup: boolean; + breakPoints: { + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; + }; + isVisible: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/app/BApp.js b/node_modules/buetify/lib/components/app/BApp.js new file mode 100755 index 0000000..9cd7bcb --- /dev/null +++ b/node_modules/buetify/lib/components/app/BApp.js @@ -0,0 +1,104 @@ +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/components/app/app.sass"; +import { defineComponent, shallowRef, h, vShow, withDirectives } from 'vue'; +import { provideNoticeController } from '../../composables/noticeController'; +import { providePopupController } from '../../composables/popupController'; +import { provideTheme, ProvideThemePropDefinitions } from '../../composables/theme'; +import { formatTransition } from '../../composables/transition'; +import { provideWindowSize, ProvideWindowSizePropsDefinition } from '../../composables/windowSize'; +import BSidebar from '../sidebar/BSidebar'; +import BNoticeContainer from '../notices/noticeContainer/BNoticeContainer'; +import BPopupContainer from '../popupContainer/BPopupContainer'; +import { provideSidebarController, ProvideSidebarControllerPropsDefinition } from '../sidebar/composables'; +const DEFAULT_TRANSITION = { + name: 'fade' +}; + +function generateNoticeContainer(placement, ref) { + return h(BNoticeContainer, { + ref, + class: placement === 'top' ? 'notices-is-top' : 'notices-is-bottom' + }); +} + +function generatePopupContainer(ref) { + return h(BPopupContainer, { + ref + }); +} + +function generateSidebarSlot(slots, hasHeader, currentRoute, sidebar) { + return h(BSidebar, { + currentRoute, + isFullheight: true + }, () => slots.sidebar && slots.sidebar(sidebar)); +} + +function generateBodyContent(slots, hasNavigationDrawer, sidebar, currentRoute) { + const nodes = []; + + if (slots.header) { + const header = slots.header(sidebar); + if (header) nodes.push(header); + } + + nodes.push(h('div', { + class: 'b-app-body-content' + }, hasNavigationDrawer ? [withDirectives(generateSidebarSlot(slots, !!slots.header, currentRoute, sidebar), [[vShow, sidebar.isVisible.value]]), h('div', { + class: 'b-app-content' + }, slots.default && slots.default(sidebar))] : [h('div', { + class: 'b-app-content' + }, slots.default && slots.default(sidebar))])); + return nodes; +} + +export default defineComponent({ + name: 'b-app', + props: { ...ProvideThemePropDefinitions, + ...ProvideWindowSizePropsDefinition, + ...ProvideSidebarControllerPropsDefinition + }, + + setup(props, { + slots + }) { + const popup = shallowRef(null); + const top = shallowRef(null); + const bottom = shallowRef(null); + + function showNotice(params) { + const options = { ...params, + transition: params.transition ? formatTransition(params.transition) : DEFAULT_TRANSITION + }; + return params.placement === 'top' ? top.value.showNotice(options) : bottom.value.showNotice(options); + } + + function showPopup(params) { + return popup.value.showPopup({ + render: params.render, + transition: params.transition ? formatTransition(params.transition) : DEFAULT_TRANSITION + }); + } + + provideTheme(props); + provideNoticeController(showNotice); + providePopupController(showPopup); + provideWindowSize(props); + const sidebarController = provideSidebarController(props); + return () => { + const hasNavigationDrawer = !!slots['sidebar']; + const nodes = [generateNoticeContainer('top', top), generateNoticeContainer('bottom', bottom), generatePopupContainer(popup)]; + nodes.push(h('div', { + class: ['b-app', { + 'has-navigation-drawer': hasNavigationDrawer && sidebarController.isVisible.value, + 'has-header': !!slots.header + }] + }, generateBodyContent(slots, hasNavigationDrawer, sidebarController, props.currentRoute))); + return h('div', { + class: 'b-notices-container' + }, nodes); + }; + } + +}); +//# sourceMappingURL=BApp.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/app/BApp.js.map b/node_modules/buetify/lib/components/app/BApp.js.map new file mode 100755 index 0000000..eb36d1f --- /dev/null +++ b/node_modules/buetify/lib/components/app/BApp.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/app/BApp.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AACA,OAAO,sCAAP;AACA,SAAS,eAAT,EAA0B,UAA1B,EAAsC,CAAtC,EAAqD,KAArD,EAA4D,cAA5D,QAAyF,KAAzF;AACA,SAAS,uBAAT,QAA2D,oCAA3D;AACA,SAAS,sBAAT,QAAyD,mCAAzD;AACA,SAAS,YAAT,EAAuB,2BAAvB,QAA0D,yBAA1D;AACA,SAAS,gBAAT,QAAiC,8BAAjC;AACA,SAAS,iBAAT,EAA4B,gCAA5B,QAAoE,8BAApE;AAEA,OAAO,QAAP,MAAqB,qBAArB;AACA,OAAO,gBAAP,MAAiE,6CAAjE;AACA,OAAO,eAAP,MAAgD,mCAAhD;AACA,SACE,wBADF,EAEE,uCAFF,QAIO,wBAJP;AAMA,MAAM,kBAAkB,GAAsB;AAAE,EAAA,IAAI,EAAE;AAAR,CAA9C;;AAEA,SAAS,uBAAT,CAAiC,SAAjC,EAA8D,GAA9D,EAAuF;AACrF,SAAO,CAAC,CAAC,gBAAD,EAAmB;AAAE,IAAA,GAAF;AAAO,IAAA,KAAK,EAAE,SAAS,KAAK,KAAd,GAAsB,gBAAtB,GAAyC;AAAvD,GAAnB,CAAR;AACD;;AAED,SAAS,sBAAT,CAAgC,GAAhC,EAAwD;AACtD,SAAO,CAAC,CAAC,eAAD,EAAkB;AAAE,IAAA;AAAF,GAAlB,CAAR;AACD;;AAED,SAAS,mBAAT,CACE,KADF,EAEE,SAFF,EAGE,YAHF,EAIE,OAJF,EAI4B;AAE1B,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,YADF;AAEE,IAAA,YAAY,EAAE;AAFhB,GAFM,EAMN,MAAM,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,OAAd,CANjB,CAAR;AAQD;;AAED,SAAS,mBAAT,CACE,KADF,EAEE,mBAFF,EAGE,OAHF,EAIE,YAJF,EAImC;AAEjC,QAAM,KAAK,GAA2B,EAAtC;;AACA,MAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,UAAM,MAAM,GAAG,KAAK,CAAC,MAAN,CAAa,OAAb,CAAf;AACA,QAAI,MAAJ,EAAY,KAAK,CAAC,IAAN,CAAW,MAAX;AACb;;AACD,EAAA,KAAK,CAAC,IAAN,CACE,CAAC,CACC,KADD,EAEC;AAAE,IAAA,KAAK,EAAE;AAAT,GAFD,EAGC,mBAAmB,GACf,CACE,cAAc,CAAC,mBAAmB,CAAC,KAAD,EAAQ,CAAC,CAAC,KAAK,CAAC,MAAhB,EAAwB,YAAxB,EAAsC,OAAtC,CAApB,EAAoE,CAChF,CAAC,KAAD,EAAQ,OAAO,CAAC,SAAR,CAAkB,KAA1B,CADgF,CAApE,CADhB,EAIE,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAoC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,OAAd,CAArD,CAJH,CADe,GAOf,CAAC,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAoC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,OAAd,CAArD,CAAF,CAVL,CADH;AAcA,SAAO,KAAP;AACD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,OADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,2BADE;AAEL,OAAG,gCAFE;AAGL,OAAG;AAHE,GAFsB;;AAO7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,KAAK,GAAG,UAAU,CAAE,IAAF,CAAxB;AACA,UAAM,GAAG,GAAG,UAAU,CAAE,IAAF,CAAtB;AACA,UAAM,MAAM,GAAG,UAAU,CAAE,IAAF,CAAzB;;AAEA,aAAS,UAAT,CAAoB,MAApB,EAA6C;AAC3C,YAAM,OAAO,GAAkB,EAC7B,GAAG,MAD0B;AAE7B,QAAA,UAAU,EAAE,MAAM,CAAC,UAAP,GAAoB,gBAAgB,CAAC,MAAM,CAAC,UAAR,CAApC,GAA0D;AAFzC,OAA/B;AAIA,aAAO,MAAM,CAAC,SAAP,KAAqB,KAArB,GAA6B,GAAG,CAAC,KAAJ,CAAU,UAAV,CAAqB,OAArB,CAA7B,GAA6D,MAAM,CAAC,KAAP,CAAa,UAAb,CAAwB,OAAxB,CAApE;AACD;;AAED,aAAS,SAAT,CAAmB,MAAnB,EAA2C;AACzC,aAAO,KAAK,CAAC,KAAN,CAAY,SAAZ,CAAsB;AAC3B,QAAA,MAAM,EAAE,MAAM,CAAC,MADY;AAE3B,QAAA,UAAU,EAAE,MAAM,CAAC,UAAP,GAAoB,gBAAgB,CAAC,MAAM,CAAC,UAAR,CAApC,GAA0D;AAF3C,OAAtB,CAAP;AAID;;AACD,IAAA,YAAY,CAAC,KAAD,CAAZ;AACA,IAAA,uBAAuB,CAAC,UAAD,CAAvB;AACA,IAAA,sBAAsB,CAAC,SAAD,CAAtB;AACA,IAAA,iBAAiB,CAAC,KAAD,CAAjB;AACA,UAAM,iBAAiB,GAAG,wBAAwB,CAAC,KAAD,CAAlD;AAEA,WAAO,MAAK;AACV,YAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,SAAD,CAAnC;AACA,YAAM,KAAK,GAAG,CACZ,uBAAuB,CAAC,KAAD,EAAQ,GAAR,CADX,EAEZ,uBAAuB,CAAC,QAAD,EAAW,MAAX,CAFX,EAGZ,sBAAsB,CAAC,KAAD,CAHV,CAAd;AAMA,MAAA,KAAK,CAAC,IAAN,CACE,CAAC,CACC,KADD,EAEC;AACE,QAAA,KAAK,EAAE,CACL,OADK,EAEL;AACE,mCAAyB,mBAAmB,IAAI,iBAAiB,CAAC,SAAlB,CAA4B,KAD9E;AAEE,wBAAc,CAAC,CAAC,KAAK,CAAC;AAFxB,SAFK;AADT,OAFD,EAWC,mBAAmB,CAAC,KAAD,EAAQ,mBAAR,EAA6B,iBAA7B,EAAgD,KAAK,CAAC,YAAtD,CAXpB,CADH;AAgBA,aAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,QAAA,KAAK,EAAE;AAAT,OAAR,EAA0C,KAA1C,CAAR;AACD,KAzBD;AA0BD;;AA1D4B,CAAD,CAA9B","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport './app.sass';\nimport { defineComponent, shallowRef, h, Slots, Ref, vShow, withDirectives, VNode } from 'vue';\nimport { provideNoticeController, ShowNoticeOptions } from '../../composables/noticeController';\nimport { providePopupController, ShowPopupOptions } from '../../composables/popupController';\nimport { provideTheme, ProvideThemePropDefinitions } from '../../composables/theme';\nimport { formatTransition } from '../../composables/transition';\nimport { provideWindowSize, ProvideWindowSizePropsDefinition } from '../../composables/windowSize';\nimport { TransitionClasses } from '../../types/Transition';\nimport BSidebar from '../sidebar/BSidebar';\nimport BNoticeContainer, { NoticeContainer, NoticeOptions } from '../notices/noticeContainer/BNoticeContainer';\nimport BPopupContainer, { PopupContainer } from '../popupContainer/BPopupContainer';\nimport {\n provideSidebarController,\n ProvideSidebarControllerPropsDefinition,\n SidebarController\n} from '../sidebar/composables';\n\nconst DEFAULT_TRANSITION: TransitionClasses = { name: 'fade' };\n\nfunction generateNoticeContainer(placement: 'top' | 'bottom', ref: Ref<NoticeContainer>) {\n return h(BNoticeContainer, { ref, class: placement === 'top' ? 'notices-is-top' : 'notices-is-bottom' });\n}\n\nfunction generatePopupContainer(ref: Ref<PopupContainer>) {\n return h(BPopupContainer, { ref });\n}\n\nfunction generateSidebarSlot(\n slots: Slots,\n hasHeader: boolean,\n currentRoute: unknown | undefined,\n sidebar: SidebarController\n) {\n return h(\n BSidebar,\n {\n currentRoute,\n isFullheight: true\n },\n () => slots.sidebar && slots.sidebar(sidebar)\n );\n}\n\nfunction generateBodyContent(\n slots: Slots,\n hasNavigationDrawer: boolean,\n sidebar: SidebarController,\n currentRoute: unknown | undefined\n) {\n const nodes: Array<VNode | VNode[]> = [];\n if (slots.header) {\n const header = slots.header(sidebar);\n if (header) nodes.push(header);\n }\n nodes.push(\n h(\n 'div',\n { class: 'b-app-body-content' },\n hasNavigationDrawer\n ? [\n withDirectives(generateSidebarSlot(slots, !!slots.header, currentRoute, sidebar), [\n [vShow, sidebar.isVisible.value]\n ]),\n h('div', { class: 'b-app-content' }, slots.default && slots.default(sidebar))\n ]\n : [h('div', { class: 'b-app-content' }, slots.default && slots.default(sidebar))]\n )\n );\n return nodes;\n}\n\nexport default defineComponent({\n name: 'b-app',\n props: {\n ...ProvideThemePropDefinitions,\n ...ProvideWindowSizePropsDefinition,\n ...ProvideSidebarControllerPropsDefinition\n },\n setup(props, { slots }) {\n const popup = shallowRef((null as unknown) as PopupContainer);\n const top = shallowRef((null as unknown) as NoticeContainer);\n const bottom = shallowRef((null as unknown) as NoticeContainer);\n\n function showNotice(params: ShowNoticeOptions) {\n const options: NoticeOptions = {\n ...params,\n transition: params.transition ? formatTransition(params.transition) : DEFAULT_TRANSITION\n };\n return params.placement === 'top' ? top.value.showNotice(options) : bottom.value.showNotice(options);\n }\n\n function showPopup(params: ShowPopupOptions) {\n return popup.value.showPopup({\n render: params.render,\n transition: params.transition ? formatTransition(params.transition) : DEFAULT_TRANSITION\n });\n }\n provideTheme(props);\n provideNoticeController(showNotice);\n providePopupController(showPopup);\n provideWindowSize(props);\n const sidebarController = provideSidebarController(props);\n\n return () => {\n const hasNavigationDrawer = !!slots['sidebar'];\n const nodes = [\n generateNoticeContainer('top', top),\n generateNoticeContainer('bottom', bottom),\n generatePopupContainer(popup)\n ];\n\n nodes.push(\n h(\n 'div',\n {\n class: [\n 'b-app',\n {\n 'has-navigation-drawer': hasNavigationDrawer && sidebarController.isVisible.value,\n 'has-header': !!slots.header\n }\n ]\n },\n generateBodyContent(slots, hasNavigationDrawer, sidebarController, props.currentRoute)\n )\n );\n\n return h('div', { class: 'b-notices-container' }, nodes);\n };\n }\n});\n"],"sourceRoot":"","file":"BApp.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/app/index.d.ts b/node_modules/buetify/lib/components/app/index.d.ts new file mode 100755 index 0000000..f82be03 --- /dev/null +++ b/node_modules/buetify/lib/components/app/index.d.ts @@ -0,0 +1,3 @@ +import BApp from './BApp'; +export { BApp }; +export default BApp; diff --git a/node_modules/buetify/lib/components/app/index.js b/node_modules/buetify/lib/components/app/index.js new file mode 100755 index 0000000..8b32611 --- /dev/null +++ b/node_modules/buetify/lib/components/app/index.js @@ -0,0 +1,4 @@ +import BApp from './BApp'; +export { BApp }; +export default BApp; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/app/index.js.map b/node_modules/buetify/lib/components/app/index.js.map new file mode 100755 index 0000000..c4a89ab --- /dev/null +++ b/node_modules/buetify/lib/components/app/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAP,MAAiB,QAAjB;AAEA,SAAS,IAAT;AACA,eAAe,IAAf","sourcesContent":["import BApp from './BApp';\n\nexport { BApp };\nexport default BApp;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/appHeader/BAppHeader.d.ts b/node_modules/buetify/lib/components/appHeader/BAppHeader.d.ts new file mode 100755 index 0000000..5dac0f9 --- /dev/null +++ b/node_modules/buetify/lib/components/appHeader/BAppHeader.d.ts @@ -0,0 +1,8 @@ +import './app-header.sass'; +import '../../sass/helpers/flex-helpers.sass'; +import { SetupContext } from 'vue'; +export default function (props: { + tag?: string; +}, { slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/appHeader/BAppHeader.js b/node_modules/buetify/lib/components/appHeader/BAppHeader.js new file mode 100755 index 0000000..d4c6aac --- /dev/null +++ b/node_modules/buetify/lib/components/appHeader/BAppHeader.js @@ -0,0 +1,42 @@ +import "../../../src/components/appHeader/app-header.sass"; +import "../../../src/sass/helpers/flex-helpers.sass"; +import { isSome } from 'fp-ts/lib/Option'; +import { h } from 'vue'; +import BNavbarBurger from '../navbar/BNavbarBurger'; +import { useSidebarController } from '../sidebar/composables'; + +function generateMainSlot(injection, includeClickHandler, slots) { + return h('div', { + class: 'main-slot', + ...(includeClickHandler && isSome(injection.listeners.value) ? { + onClick: injection.listeners.value.value.onClick + } : {}) + }, slots.default && slots.default()); +} + +function generateNavigationButton(injection, slots) { + const listeners = isSome(injection.listeners.value) ? injection.listeners.value.value : {}; + const attrs = isSome(injection.attrs.value) ? injection.attrs.value.value : {}; + return h('button', { + class: 'navigation-icon is-hidden-desktop', + ...listeners, + ...attrs, + 'aria-label': 'Toggle navigation pane' + }, slots.trigger ? slots.trigger({ + isVisible: injection.isVisible.value + }) : h(BNavbarBurger, { + tag: 'span', + isActive: injection.isVisible.value + })); +} + +export default function (props, { + slots +}) { + const sidebarController = useSidebarController(); + const isInvisible = !sidebarController.isVisible.value; + return h(props.tag ?? 'header', { + class: 'b-app-header is-flex flex-direction-row justify-content-center align-items-center has-navigation' + }, [generateNavigationButton(sidebarController, slots), generateMainSlot(sidebarController, isInvisible, slots)]); +} +//# sourceMappingURL=BAppHeader.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/appHeader/BAppHeader.js.map b/node_modules/buetify/lib/components/appHeader/BAppHeader.js.map new file mode 100755 index 0000000..9bf986b --- /dev/null +++ b/node_modules/buetify/lib/components/appHeader/BAppHeader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/appHeader/BAppHeader.ts"],"names":[],"mappings":"AAAA,OAAO,mDAAP;AACA,OAAO,6CAAP;AACA,SAAS,MAAT,QAAuB,kBAAvB;AACA,SAAuB,CAAvB,QAAuC,KAAvC;AACA,OAAO,aAAP,MAA0B,yBAA1B;AACA,SAA4B,oBAA5B,QAAwD,wBAAxD;;AAEA,SAAS,gBAAT,CAA0B,SAA1B,EAAwD,mBAAxD,EAAsF,KAAtF,EAAkG;AAChG,SAAO,CAAC,CACN,KADM,EAEN;AACE,IAAA,KAAK,EAAE,WADT;AAEE,QAAI,mBAAmB,IAAI,MAAM,CAAC,SAAS,CAAC,SAAV,CAAoB,KAArB,CAA7B,GACA;AAAE,MAAA,OAAO,EAAE,SAAS,CAAC,SAAV,CAAoB,KAApB,CAA0B,KAA1B,CAAgC;AAA3C,KADA,GAEA,EAFJ;AAFF,GAFM,EAQN,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EARX,CAAR;AAUD;;AAED,SAAS,wBAAT,CAAkC,SAAlC,EAAgE,KAAhE,EAA4E;AAC1E,QAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAV,CAAoB,KAArB,CAAN,GAAoC,SAAS,CAAC,SAAV,CAAoB,KAApB,CAA0B,KAA9D,GAAsE,EAAxF;AACA,QAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAV,CAAgB,KAAjB,CAAN,GAAgC,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,KAAtD,GAA8D,EAA5E;AACA,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,mCADT;AAEE,OAAG,SAFL;AAGE,OAAG,KAHL;AAIE,kBAAc;AAJhB,GAFM,EAQN,KAAK,CAAC,OAAN,GACI,KAAK,CAAC,OAAN,CAAc;AAAE,IAAA,SAAS,EAAE,SAAS,CAAC,SAAV,CAAoB;AAAjC,GAAd,CADJ,GAEI,CAAC,CAAC,aAAD,EAAgB;AAAE,IAAA,GAAG,EAAE,MAAP;AAAe,IAAA,QAAQ,EAAE,SAAS,CAAC,SAAV,CAAoB;AAA7C,GAAhB,CAVC,CAAR;AAYD;;AAED,eAAc,UAAU,KAAV,EAAmC;AAAE,EAAA;AAAF,CAAnC,EAA0D;AACtE,QAAM,iBAAiB,GAAG,oBAAoB,EAA9C;AACA,QAAM,WAAW,GAAG,CAAC,iBAAiB,CAAC,SAAlB,CAA4B,KAAjD;AACA,SAAO,CAAC,CACN,KAAK,CAAC,GAAN,IAAa,QADP,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,CAAC,wBAAwB,CAAC,iBAAD,EAAoB,KAApB,CAAzB,EAAqD,gBAAgB,CAAC,iBAAD,EAAoB,WAApB,EAAiC,KAAjC,CAArE,CALM,CAAR;AAOD","sourcesContent":["import './app-header.sass';\nimport '../../sass/helpers/flex-helpers.sass';\nimport { isSome } from 'fp-ts/lib/Option';\nimport { SetupContext, h, Slots } from 'vue';\nimport BNavbarBurger from '../navbar/BNavbarBurger';\nimport { SidebarController, useSidebarController } from '../sidebar/composables';\n\nfunction generateMainSlot(injection: SidebarController, includeClickHandler: boolean, slots: Slots) {\n return h(\n 'div',\n {\n class: 'main-slot',\n ...(includeClickHandler && isSome(injection.listeners.value)\n ? { onClick: injection.listeners.value.value.onClick }\n : {})\n },\n slots.default && slots.default()\n );\n}\n\nfunction generateNavigationButton(injection: SidebarController, slots: Slots) {\n const listeners = isSome(injection.listeners.value) ? injection.listeners.value.value : {};\n const attrs = isSome(injection.attrs.value) ? injection.attrs.value.value : {};\n return h(\n 'button',\n {\n class: 'navigation-icon is-hidden-desktop',\n ...listeners,\n ...attrs,\n 'aria-label': 'Toggle navigation pane'\n },\n slots.trigger\n ? slots.trigger({ isVisible: injection.isVisible.value })\n : h(BNavbarBurger, { tag: 'span', isActive: injection.isVisible.value })\n );\n}\n\nexport default function(props: { tag?: string }, { slots }: SetupContext) {\n const sidebarController = useSidebarController();\n const isInvisible = !sidebarController.isVisible.value;\n return h(\n props.tag ?? 'header',\n {\n class: 'b-app-header is-flex flex-direction-row justify-content-center align-items-center has-navigation'\n },\n [generateNavigationButton(sidebarController, slots), generateMainSlot(sidebarController, isInvisible, slots)]\n );\n}\n"],"sourceRoot":"","file":"BAppHeader.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/appHeader/index.d.ts b/node_modules/buetify/lib/components/appHeader/index.d.ts new file mode 100755 index 0000000..0edf4cb --- /dev/null +++ b/node_modules/buetify/lib/components/appHeader/index.d.ts @@ -0,0 +1,3 @@ +import BAppHeader from './BAppHeader'; +export { BAppHeader }; +export default BAppHeader; diff --git a/node_modules/buetify/lib/components/appHeader/index.js b/node_modules/buetify/lib/components/appHeader/index.js new file mode 100755 index 0000000..fb7f771 --- /dev/null +++ b/node_modules/buetify/lib/components/appHeader/index.js @@ -0,0 +1,4 @@ +import BAppHeader from './BAppHeader'; +export { BAppHeader }; +export default BAppHeader; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/appHeader/index.js.map b/node_modules/buetify/lib/components/appHeader/index.js.map new file mode 100755 index 0000000..12c5966 --- /dev/null +++ b/node_modules/buetify/lib/components/appHeader/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/appHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAP,MAAuB,cAAvB;AAEA,SAAS,UAAT;AACA,eAAe,UAAf","sourcesContent":["import BAppHeader from './BAppHeader';\n\nexport { BAppHeader };\nexport default BAppHeader;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/button/BButton.d.ts b/node_modules/buetify/lib/components/button/BButton.d.ts new file mode 100755 index 0000000..c391d6e --- /dev/null +++ b/node_modules/buetify/lib/components/button/BButton.d.ts @@ -0,0 +1,105 @@ +import 'bulma/sass/elements/button.sass'; +import { PropType } from 'vue'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +export interface ButtonProps { + variant: ColorVariant; + isRounded: boolean; + isLoading: boolean; + isOutlined: boolean; + isInverted: boolean; + isFocused: boolean; + isActive: boolean; + isDisabled: boolean; + isHovered: boolean; + isSelected: boolean; + isFullwidth: boolean; + size: SizeVariant; + tag: 'button' | 'a' | 'input'; +} +declare const _default: import("vue").DefineComponent<{ + tag: { + type: PropType<"button" | "input" | "a">; + default: "button"; + validator: (val: string) => boolean; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + variant: { + type: PropType<ColorVariant>; + default: ColorVariant; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isOutlined: { + type: PropType<boolean>; + default: boolean; + }; + isInverted: { + type: PropType<boolean>; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + default: boolean; + }; + isHovered: { + type: PropType<boolean>; + default: boolean; + }; + isSelected: { + type: PropType<boolean>; + default: boolean; + }; + isFullwidth: { + type: PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + tag: "button" | "input" | "a"; + variant: ColorVariant; + size: SizeVariant; + isActive: boolean; + isRounded: boolean; + isLoading: boolean; + isOutlined: boolean; + isInverted: boolean; + isFocused: boolean; + isDisabled: boolean; + isHovered: boolean; + isSelected: boolean; + isFullwidth: boolean; +} & {}>, { + tag: "button" | "input" | "a"; + variant: ColorVariant; + size: SizeVariant; + isActive: boolean; + isRounded: boolean; + isLoading: boolean; + isOutlined: boolean; + isInverted: boolean; + isFocused: boolean; + isDisabled: boolean; + isHovered: boolean; + isSelected: boolean; + isFullwidth: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/button/BButton.js b/node_modules/buetify/lib/components/button/BButton.js new file mode 100755 index 0000000..9fbe155 --- /dev/null +++ b/node_modules/buetify/lib/components/button/BButton.js @@ -0,0 +1,87 @@ +import 'bulma/sass/elements/button.sass'; +import { h, defineComponent } from 'vue'; + +function useButtonClasses(props) { + return ['button', props.variant, props.size, { + 'is-rounded': props.isRounded, + 'is-loading': props.isLoading, + 'is-outlined': props.isOutlined, + 'is-inverted': props.isInverted, + 'is-focused': props.isFocused, + 'is-active': props.isActive, + 'is-disabled': props.isDisabled, + 'is-hovered': props.isHovered, + 'is-selected': props.isSelected, + 'is-fullwidth': props.isFullwidth + }]; +} + +export default defineComponent({ + name: 'b-button', + props: { + tag: { + type: String, + default: 'button', + validator: val => ['button', 'a', 'input'].includes(val) + }, + size: { + type: String, + default: '' + }, + variant: { + type: String, + default: '' + }, + isRounded: { + type: Boolean, + default: false + }, + isLoading: { + type: Boolean, + default: false + }, + isOutlined: { + type: Boolean, + default: false + }, + isInverted: { + type: Boolean, + default: false + }, + isFocused: { + type: Boolean, + default: false + }, + isActive: { + type: Boolean, + default: false + }, + isDisabled: { + type: Boolean, + default: false + }, + isHovered: { + type: Boolean, + default: false + }, + isSelected: { + type: Boolean, + default: false + }, + isFullwidth: { + type: Boolean, + default: false + } + }, + + setup(props, { + slots + }) { + return () => h(props.tag, { + class: useButtonClasses(props), + disabled: props.isDisabled ? true : null + }, slots.default && slots.default()); + } + +}); +//# sourceMappingURL=BButton.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/button/BButton.js.map b/node_modules/buetify/lib/components/button/BButton.js.map new file mode 100755 index 0000000..7576ecb --- /dev/null +++ b/node_modules/buetify/lib/components/button/BButton.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/button/BButton.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAP;AACA,SAAS,CAAT,EAAsB,eAAtB,QAA6C,KAA7C;;AAqBA,SAAS,gBAAT,CAA0B,KAA1B,EAA4C;AAC1C,SAAO,CACL,QADK,EAEL,KAAK,CAAC,OAFD,EAGL,KAAK,CAAC,IAHD,EAIL;AACE,kBAAc,KAAK,CAAC,SADtB;AAEE,kBAAc,KAAK,CAAC,SAFtB;AAGE,mBAAe,KAAK,CAAC,UAHvB;AAIE,mBAAe,KAAK,CAAC,UAJvB;AAKE,kBAAc,KAAK,CAAC,SALtB;AAME,iBAAa,KAAK,CAAC,QANrB;AAOE,mBAAe,KAAK,CAAC,UAPvB;AAQE,kBAAc,KAAK,CAAC,SARtB;AASE,mBAAe,KAAK,CAAC,UATvB;AAUE,oBAAgB,KAAK,CAAC;AAVxB,GAJK,CAAP;AAiBD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,UADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE,QAFN;AAGH,MAAA,SAAS,EAAG,GAAD,IAAiB,CAAC,QAAD,EAAW,GAAX,EAAgB,OAAhB,EAAyB,QAAzB,CAAkC,GAAlC;AAHzB,KADA;AAML,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAND;AAUL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAVJ;AAcL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KAdN;AAkBL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KAlBN;AAsBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAtBP;AA0BL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KA1BP;AA8BL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KA9BN;AAkCL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KAlCL;AAsCL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAtCP;AA0CL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KA1CN;AA8CL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KA9CP;AAkDL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,OADK;AAEX,MAAA,OAAO,EAAE;AAFE;AAlDR,GAFsB;;AAyD7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MACL,CAAC,CACC,KAAK,CAAC,GADP,EAEC;AACE,MAAA,KAAK,EAAE,gBAAgB,CAAC,KAAD,CADzB;AAEE,MAAA,QAAQ,EAAE,KAAK,CAAC,UAAN,GAAmB,IAAnB,GAA0B;AAFtC,KAFD,EAMC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EANlB,CADH;AASD;;AAnE4B,CAAD,CAA9B","sourcesContent":["import 'bulma/sass/elements/button.sass';\nimport { h, PropType, defineComponent } from 'vue';\nimport { ColorVariant } from '../../types/ColorVariants';\nimport { SizeVariant } from '../../types/SizeVariants';\nimport { Classes } from '../../utils/mergeClasses';\n\nexport interface ButtonProps {\n variant: ColorVariant;\n isRounded: boolean;\n isLoading: boolean;\n isOutlined: boolean;\n isInverted: boolean;\n isFocused: boolean;\n isActive: boolean;\n isDisabled: boolean;\n isHovered: boolean;\n isSelected: boolean;\n isFullwidth: boolean;\n size: SizeVariant;\n tag: 'button' | 'a' | 'input';\n}\n\nfunction useButtonClasses(props: ButtonProps): Classes {\n return [\n 'button',\n props.variant,\n props.size,\n {\n 'is-rounded': props.isRounded,\n 'is-loading': props.isLoading,\n 'is-outlined': props.isOutlined,\n 'is-inverted': props.isInverted,\n 'is-focused': props.isFocused,\n 'is-active': props.isActive,\n 'is-disabled': props.isDisabled,\n 'is-hovered': props.isHovered,\n 'is-selected': props.isSelected,\n 'is-fullwidth': props.isFullwidth\n }\n ];\n}\n\nexport default defineComponent({\n name: 'b-button',\n props: {\n tag: {\n type: String as PropType<'button' | 'a' | 'input'>,\n default: 'button' as const,\n validator: (val: string) => ['button', 'a', 'input'].includes(val)\n },\n size: {\n type: String as PropType<SizeVariant>,\n default: '' as SizeVariant\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as ColorVariant\n },\n isRounded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isOutlined: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isInverted: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isFocused: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isDisabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isHovered: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isSelected: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isFullwidth: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n },\n setup(props, { slots }) {\n return () =>\n h(\n props.tag,\n {\n class: useButtonClasses(props),\n disabled: props.isDisabled ? true : null\n },\n slots.default && slots.default()\n );\n }\n});\n"],"sourceRoot":"","file":"BButton.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/button/index.d.ts b/node_modules/buetify/lib/components/button/index.d.ts new file mode 100755 index 0000000..94e86db --- /dev/null +++ b/node_modules/buetify/lib/components/button/index.d.ts @@ -0,0 +1,4 @@ +import BButton from './BButton'; +import { ButtonTheme } from './theme'; +export { BButton, ButtonTheme }; +export default BButton; diff --git a/node_modules/buetify/lib/components/button/index.js b/node_modules/buetify/lib/components/button/index.js new file mode 100755 index 0000000..a2f24cf --- /dev/null +++ b/node_modules/buetify/lib/components/button/index.js @@ -0,0 +1,5 @@ +import BButton from './BButton'; +import { ButtonTheme } from './theme'; +export { BButton, ButtonTheme }; +export default BButton; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/button/index.js.map b/node_modules/buetify/lib/components/button/index.js.map new file mode 100755 index 0000000..c694f5e --- /dev/null +++ b/node_modules/buetify/lib/components/button/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAP,MAAoB,WAApB;AACA,SAAS,WAAT,QAA4B,SAA5B;AAEA,SAAS,OAAT,EAAkB,WAAlB;AACA,eAAe,OAAf","sourcesContent":["import BButton from './BButton';\nimport { ButtonTheme } from './theme';\n\nexport { BButton, ButtonTheme };\nexport default BButton;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/button/theme.d.ts b/node_modules/buetify/lib/components/button/theme.d.ts new file mode 100755 index 0000000..fdc030f --- /dev/null +++ b/node_modules/buetify/lib/components/button/theme.d.ts @@ -0,0 +1,2 @@ +import { ThemeColorMap } from '../../types/ThemeColorMap'; +export declare const ButtonTheme: ThemeColorMap; diff --git a/node_modules/buetify/lib/components/button/theme.js b/node_modules/buetify/lib/components/button/theme.js new file mode 100755 index 0000000..dbc799a --- /dev/null +++ b/node_modules/buetify/lib/components/button/theme.js @@ -0,0 +1,6 @@ +import { shallowReactive } from 'vue'; +export const ButtonTheme = shallowReactive({ + dark: 'is-primary', + light: 'is-primary' +}); +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/button/theme.js.map b/node_modules/buetify/lib/components/button/theme.js.map new file mode 100755 index 0000000..d234df3 --- /dev/null +++ b/node_modules/buetify/lib/components/button/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/button/theme.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AAGA,OAAO,MAAM,WAAW,GAAkB,eAAe,CAAC;AACxD,EAAA,IAAI,EAAE,YADkD;AAExD,EAAA,KAAK,EAAE;AAFiD,CAAD,CAAlD","sourcesContent":["import { shallowReactive } from 'vue';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\n\nexport const ButtonTheme: ThemeColorMap = shallowReactive({\n dark: 'is-primary',\n light: 'is-primary'\n});\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/BDialog.d.ts b/node_modules/buetify/lib/components/dialog/BDialog.d.ts new file mode 100755 index 0000000..7dff52c --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialog.d.ts @@ -0,0 +1,71 @@ +import 'bulma/sass/components/modal.sass'; +import './dialog.sass'; +import { IO } from 'fp-ts/lib/IO'; +declare const _default: import("vue").DefineComponent<{ + onToggle: { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + isActive: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + transition: { + type: import("vue").PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; +}, { + popup: { + isOpen: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + open: (e?: Event | undefined) => void; + close: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; + }; +}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + transition: import("../..").Transition; + isActive: boolean; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: IO<void> | undefined; + onSetOff?: IO<void> | undefined; +}>, { + hasPopup: boolean; + transition: import("../..").Transition; + isActive: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/dialog/BDialog.js b/node_modules/buetify/lib/components/dialog/BDialog.js new file mode 100755 index 0000000..a4ec324 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialog.js @@ -0,0 +1,63 @@ +import 'bulma/sass/components/modal.sass'; +import "../../../src/components/dialog/dialog.sass"; +import { head } from 'fp-ts/lib/Array'; +import { pipe } from 'fp-ts/lib/function'; +import { exists } from 'fp-ts/lib/Option'; +import { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController'; +import { constEmptyArray, isObject } from '../../utils/helpers'; +import BOverlay from '../overlay/BOverlay'; +import BDialogContent, { B_DIALOG_CONTENT_NAME } from './BDialogContent'; +import { defineComponent, shallowRef, h } from 'vue'; + +function containsBDialogContent(node) { + const components = isObject(node) && node?.type?.components || {}; // eslint-disable-line + + for (const k in components) { + if (components[k]?.name === B_DIALOG_CONTENT_NAME) { + return true; + } + } + + return false; +} + +export default defineComponent({ + name: 'b-dialog', + props: UsePopupControllerPropsDefinition, + + setup(props, { + attrs, + slots + }) { + const generateDialog = shallowRef(constEmptyArray); + const popup = usePopupController(props, generateDialog); + + generateDialog.value = () => { + return [h(BOverlay, { ...attrs, + class: 'dialog', + isActive: true, + onClick: popup.close + }, () => { + const nodes = slots.default ? slots.default(popup) : []; + const isDialogContent = pipe(head(nodes), exists(containsBDialogContent)); + return isDialogContent ? nodes : h(BDialogContent, { + asCard: false + }, { + header: slots.header ? () => slots.header && slots.header(popup) : undefined, + default: () => nodes, + footer: () => slots.footer && slots.footer(popup) + }); + })]; + }; + + return { + popup + }; + }, + + render() { + return this.$slots.trigger && this.$slots.trigger(this.popup); + } + +}); +//# sourceMappingURL=BDialog.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/BDialog.js.map b/node_modules/buetify/lib/components/dialog/BDialog.js.map new file mode 100755 index 0000000..e856162 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialog.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dialog/BDialog.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAP;AACA,OAAO,4CAAP;AACA,SAAS,IAAT,QAAqB,iBAArB;AACA,SAAS,IAAT,QAAqB,oBAArB;AAEA,SAAS,MAAT,QAAuB,kBAAvB;AACA,SAAS,kBAAT,EAA6B,iCAA7B,QAAsE,mCAAtE;AACA,SAAS,eAAT,EAA0B,QAA1B,QAA0C,qBAA1C;AACA,OAAO,QAAP,MAAqB,qBAArB;AACA,OAAO,cAAP,IAAyB,qBAAzB,QAAsD,kBAAtD;AACA,SAAS,eAAT,EAAiC,UAAjC,EAA6C,CAA7C,QAAsD,KAAtD;;AAEA,SAAS,sBAAT,CAAgC,IAAhC,EAAyC;AACvC,QAAM,UAAU,GAAI,QAAQ,CAAC,IAAD,CAAR,IAAmB,IAAY,EAAE,IAAd,EAAoB,UAAxC,IAAuD,EAA1E,CADuC,CACuC;;AAC9E,OAAK,MAAM,CAAX,IAAgB,UAAhB,EAA4B;AAC1B,QAAI,UAAU,CAAC,CAAD,CAAV,EAAe,IAAf,KAAwB,qBAA5B,EAAmD;AACjD,aAAO,IAAP;AACD;AACF;;AACD,SAAO,KAAP;AACD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,UADuB;AAE7B,EAAA,KAAK,EAAE,iCAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,GAAR,EAAwB;AAC3B,UAAM,cAAc,GAAG,UAAU,CAAC,eAAD,CAAjC;AACA,UAAM,KAAK,GAAG,kBAAkB,CAAC,KAAD,EAAQ,cAAR,CAAhC;;AACA,IAAA,cAAc,CAAC,KAAf,GAAuB,MAAK;AAC1B,aAAO,CACL,CAAC,CACC,QADD,EAEC,EACE,GAAG,KADL;AAEE,QAAA,KAAK,EAAE,QAFT;AAGE,QAAA,QAAQ,EAAE,IAHZ;AAIE,QAAA,OAAO,EAAE,KAAK,CAAC;AAJjB,OAFD,EAQC,MAAK;AACH,cAAM,KAAK,GAAG,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,CAAc,KAAd,CAAhB,GAAuC,EAArD;AACA,cAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,KAAD,CAAL,EAAc,MAAM,CAAC,sBAAD,CAApB,CAA5B;AACA,eAAO,eAAe,GAClB,KADkB,GAElB,CAAC,CACC,cADD,EAEC;AACE,UAAA,MAAM,EAAE;AADV,SAFD,EAKC;AACE,UAAA,MAAM,EAAE,KAAK,CAAC,MAAN,GAAe,MAAM,KAAK,CAAC,MAAN,IAAgB,KAAK,CAAC,MAAN,CAAa,KAAb,CAArC,GAA2D,SADrE;AAEE,UAAA,OAAO,EAAE,MAAM,KAFjB;AAGE,UAAA,MAAM,EAAE,MAAM,KAAK,CAAC,MAAN,IAAgB,KAAK,CAAC,MAAN,CAAa,KAAb;AAHhC,SALD,CAFL;AAaD,OAxBF,CADI,CAAP;AA4BD,KA7BD;;AA8BA,WAAO;AAAE,MAAA;AAAF,KAAP;AACD,GArC4B;;AAsC7B,EAAA,MAAM,GAAA;AACJ,WAAO,KAAK,MAAL,CAAY,OAAZ,IAAuB,KAAK,MAAL,CAAY,OAAZ,CAAoB,KAAK,KAAzB,CAA9B;AACD;;AAxC4B,CAAD,CAA9B","sourcesContent":["import 'bulma/sass/components/modal.sass';\nimport './dialog.sass';\nimport { head } from 'fp-ts/lib/Array';\nimport { pipe } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { exists } from 'fp-ts/lib/Option';\nimport { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController';\nimport { constEmptyArray, isObject } from '../../utils/helpers';\nimport BOverlay from '../overlay/BOverlay';\nimport BDialogContent, { B_DIALOG_CONTENT_NAME } from './BDialogContent';\nimport { defineComponent, VNode, shallowRef, h } from 'vue';\n\nfunction containsBDialogContent(node: any) { //eslint-disable-line\n const components = (isObject(node) && (node as any)?.type?.components) || {}; // eslint-disable-line\n for (const k in components) {\n if (components[k]?.name === B_DIALOG_CONTENT_NAME) {\n return true;\n }\n }\n return false;\n}\n\nexport default defineComponent({\n name: 'b-dialog',\n props: UsePopupControllerPropsDefinition,\n setup(props, { attrs, slots }) {\n const generateDialog = shallowRef(constEmptyArray as IO<VNode[]>);\n const popup = usePopupController(props, generateDialog);\n generateDialog.value = () => {\n return [\n h(\n BOverlay,\n {\n ...attrs,\n class: 'dialog',\n isActive: true,\n onClick: popup.close\n },\n () => {\n const nodes = slots.default ? slots.default(popup) : [];\n const isDialogContent = pipe(head(nodes), exists(containsBDialogContent));\n return isDialogContent\n ? nodes\n : h(\n BDialogContent,\n {\n asCard: false\n },\n {\n header: slots.header ? () => slots.header && slots.header(popup) : undefined,\n default: () => nodes,\n footer: () => slots.footer && slots.footer(popup)\n }\n );\n }\n )\n ];\n };\n return { popup };\n },\n render() {\n return this.$slots.trigger && this.$slots.trigger(this.popup);\n }\n});\n"],"sourceRoot":"","file":"BDialog.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/BDialogContent.d.ts b/node_modules/buetify/lib/components/dialog/BDialogContent.d.ts new file mode 100755 index 0000000..083a5ab --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialogContent.d.ts @@ -0,0 +1,43 @@ +import 'bulma/sass/components/modal.sass'; +import './dialog.sass'; +import { SizeVariant } from '../../types/SizeVariants'; +import { PropType, VNode } from 'vue'; +export declare const B_DIALOG_CONTENT_NAME = "b-dialog-content"; +declare const _default: import("vue").DefineComponent<{ + size: { + type: PropType<SizeVariant>; + required: false; + }; + cardClass: { + type: PropType<string>; + required: false; + }; + asCard: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + asCard: boolean; +} & { + size?: "" | "is-small" | "is-medium" | "is-large" | undefined; + cardClass?: string | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + asCard: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/dialog/BDialogContent.js b/node_modules/buetify/lib/components/dialog/BDialogContent.js new file mode 100755 index 0000000..9df4407 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialogContent.js @@ -0,0 +1,62 @@ +import 'bulma/sass/components/modal.sass'; +import "../../../src/components/dialog/dialog.sass"; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { defineComponent, h } from 'vue'; +import { DialogTheme } from './theme'; +export const B_DIALOG_CONTENT_NAME = 'b-dialog-content'; +export default defineComponent({ + name: B_DIALOG_CONTENT_NAME, + props: { ...useThemePropsDefinition(DialogTheme, true), + size: { + type: String, + required: false + }, + cardClass: { + type: String, + required: false + }, + asCard: { + type: Boolean, + default: true + } + }, + + setup(props, { + slots + }) { + const { + themeClasses + } = useTheme(props); + return () => { + const nodes = []; + + if (slots.header) { + nodes.push(h('header', { + class: 'modal-card-head' + }, slots.header())); + } + + nodes.push(h('section', { + class: ['modal-card-body', { + 'is-titleless': !slots.header + }] + }, slots.default && slots.default())); + + if (slots.footer) { + nodes.push(h('footer', { + class: 'modal-card-foot' + }, slots.footer())); + } + + return h('div', { + class: [props.size, 'b-dialog'] + }, [h('article', { + class: ['modal-card', { + card: props.asCard + }, ...themeClasses.value, props.cardClass] + }, nodes)]); + }; + } + +}); +//# sourceMappingURL=BDialogContent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/BDialogContent.js.map b/node_modules/buetify/lib/components/dialog/BDialogContent.js.map new file mode 100755 index 0000000..eca4e56 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialogContent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dialog/BDialogContent.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAP;AACA,OAAO,4CAAP;AACA,SAAS,uBAAT,EAAkC,QAAlC,QAAkD,yBAAlD;AAEA,SAA0B,eAA1B,EAA2C,CAA3C,QAAoD,KAApD;AACA,SAAS,WAAT,QAA4B,SAA5B;AAEA,OAAO,MAAM,qBAAqB,GAAG,kBAA9B;AAEP,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,qBADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,uBAAuB,CAAC,WAAD,EAAc,IAAd,CADrB;AAEL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,QAAQ,EAAE;AAFN,KAFD;AAML,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,MADG;AAET,MAAA,QAAQ,EAAE;AAFD,KANN;AAUL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,OADA;AAEN,MAAA,OAAO,EAAE;AAFH;AAVH,GAFsB;;AAiB7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,WAAO,MAAK;AACV,YAAM,KAAK,GAAY,EAAvB;;AACA,UAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,QAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,QAAD,EAAW;AAAE,UAAA,KAAK,EAAE;AAAT,SAAX,EAAyC,KAAK,CAAC,MAAN,EAAzC,CAAZ;AACD;;AACD,MAAA,KAAK,CAAC,IAAN,CACE,CAAC,CACC,SADD,EAEC;AAAE,QAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB;AAAE,0BAAgB,CAAC,KAAK,CAAC;AAAzB,SAApB;AAAT,OAFD,EAGC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAHlB,CADH;;AAOA,UAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,QAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,QAAD,EAAW;AAAE,UAAA,KAAK,EAAE;AAAT,SAAX,EAAyC,KAAK,CAAC,MAAN,EAAzC,CAAZ;AACD;;AACD,aAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,QAAA,KAAK,EAAE,CAAC,KAAK,CAAC,IAAP,EAAa,UAAb;AAAT,OAAR,EAA6C,CACnD,CAAC,CACC,SADD,EAEC;AACE,QAAA,KAAK,EAAE,CAAC,YAAD,EAAe;AAAE,UAAA,IAAI,EAAE,KAAK,CAAC;AAAd,SAAf,EAAuC,GAAG,YAAY,CAAC,KAAvD,EAA8D,KAAK,CAAC,SAApE;AADT,OAFD,EAKC,KALD,CADkD,CAA7C,CAAR;AASD,KAxBD;AAyBD;;AA5C4B,CAAD,CAA9B","sourcesContent":["import 'bulma/sass/components/modal.sass';\nimport './dialog.sass';\nimport { useThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { SizeVariant } from '../../types/SizeVariants';\nimport { PropType, VNode, defineComponent, h } from 'vue';\nimport { DialogTheme } from './theme';\n\nexport const B_DIALOG_CONTENT_NAME = 'b-dialog-content';\n\nexport default defineComponent({\n name: B_DIALOG_CONTENT_NAME,\n props: {\n ...useThemePropsDefinition(DialogTheme, true),\n size: {\n type: String as PropType<SizeVariant>,\n required: false\n },\n cardClass: {\n type: String as PropType<string>,\n required: false\n },\n asCard: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n },\n setup(props, { slots }) {\n const { themeClasses } = useTheme(props);\n return () => {\n const nodes: VNode[] = [];\n if (slots.header) {\n nodes.push(h('header', { class: 'modal-card-head' }, slots.header()));\n }\n nodes.push(\n h(\n 'section',\n { class: ['modal-card-body', { 'is-titleless': !slots.header }] },\n slots.default && slots.default()\n )\n );\n if (slots.footer) {\n nodes.push(h('footer', { class: 'modal-card-foot' }, slots.footer()));\n }\n return h('div', { class: [props.size, 'b-dialog'] }, [\n h(\n 'article',\n {\n class: ['modal-card', { card: props.asCard }, ...themeClasses.value, props.cardClass]\n },\n nodes\n )\n ]);\n };\n }\n});\n"],"sourceRoot":"","file":"BDialogContent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/BDialogOverlay.d.ts b/node_modules/buetify/lib/components/dialog/BDialogOverlay.d.ts new file mode 100755 index 0000000..f700dc9 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialogOverlay.d.ts @@ -0,0 +1,6 @@ +import 'bulma/sass/components/modal.sass'; +import './dialog.sass'; +import { SetupContext } from 'vue'; +export default function BDialogOverlay(_: any, { attrs, slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/dialog/BDialogOverlay.js b/node_modules/buetify/lib/components/dialog/BDialogOverlay.js new file mode 100755 index 0000000..629d081 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialogOverlay.js @@ -0,0 +1,13 @@ +import 'bulma/sass/components/modal.sass'; +import "../../../src/components/dialog/dialog.sass"; +import BOverlay from '../overlay/BOverlay'; +import { h } from 'vue'; +export default function BDialogOverlay(_, { + attrs, + slots +}) { + return h(BOverlay, { ...attrs, + class: 'dialog' + }, slots.default()); +} +//# sourceMappingURL=BDialogOverlay.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/BDialogOverlay.js.map b/node_modules/buetify/lib/components/dialog/BDialogOverlay.js.map new file mode 100755 index 0000000..bcc2413 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/BDialogOverlay.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dialog/BDialogOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAP;AACA,OAAO,4CAAP;AACA,OAAO,QAAP,MAAqB,qBAArB;AACA,SAAS,CAAT,QAAgC,KAAhC;AAEA,eAAc,SAAU,cAAV,CAAyB,CAAzB,EAAiC;AAAE,EAAA,KAAF;AAAS,EAAA;AAAT,CAAjC,EAA+D;AAC3E,SAAO,CAAC,CAAC,QAAD,EAAW,EAAE,GAAG,KAAL;AAAY,IAAA,KAAK,EAAE;AAAnB,GAAX,EAA0C,KAAK,CAAC,OAAN,EAA1C,CAAR;AACD","sourcesContent":["import 'bulma/sass/components/modal.sass';\nimport './dialog.sass';\nimport BOverlay from '../overlay/BOverlay';\nimport { h, SetupContext } from 'vue';\n\nexport default function BDialogOverlay(_: any, { attrs, slots }: SetupContext) {\n return h(BOverlay, { ...attrs, class: 'dialog' }, slots.default!());\n}\n"],"sourceRoot":"","file":"BDialogOverlay.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/index.d.ts b/node_modules/buetify/lib/components/dialog/index.d.ts new file mode 100755 index 0000000..e78f50c --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/index.d.ts @@ -0,0 +1,5 @@ +import BDialog from './BDialog'; +import BDialogContent from './BDialogContent'; +import { DialogTheme } from './theme'; +export { BDialog, BDialogContent, DialogTheme }; +export default BDialog; diff --git a/node_modules/buetify/lib/components/dialog/index.js b/node_modules/buetify/lib/components/dialog/index.js new file mode 100755 index 0000000..07e0fc4 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/index.js @@ -0,0 +1,6 @@ +import BDialog from './BDialog'; +import BDialogContent from './BDialogContent'; +import { DialogTheme } from './theme'; +export { BDialog, BDialogContent, DialogTheme }; +export default BDialog; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/index.js.map b/node_modules/buetify/lib/components/dialog/index.js.map new file mode 100755 index 0000000..72825d9 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAP,MAAoB,WAApB;AACA,OAAO,cAAP,MAA2B,kBAA3B;AACA,SAAS,WAAT,QAA4B,SAA5B;AAEA,SAAS,OAAT,EAAkB,cAAlB,EAAkC,WAAlC;AAEA,eAAe,OAAf","sourcesContent":["import BDialog from './BDialog';\nimport BDialogContent from './BDialogContent';\nimport { DialogTheme } from './theme';\n\nexport { BDialog, BDialogContent, DialogTheme };\n\nexport default BDialog;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/theme.d.ts b/node_modules/buetify/lib/components/dialog/theme.d.ts new file mode 100755 index 0000000..c04b3af --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/theme.d.ts @@ -0,0 +1,2 @@ +import { ThemeColorMap } from '../../types/ThemeColorMap'; +export declare const DialogTheme: ThemeColorMap; diff --git a/node_modules/buetify/lib/components/dialog/theme.js b/node_modules/buetify/lib/components/dialog/theme.js new file mode 100755 index 0000000..183c2f3 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/theme.js @@ -0,0 +1,6 @@ +import { shallowReactive } from 'vue'; +export const DialogTheme = shallowReactive({ + dark: 'is-grey-dark', + light: '' +}); +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dialog/theme.js.map b/node_modules/buetify/lib/components/dialog/theme.js.map new file mode 100755 index 0000000..db583c0 --- /dev/null +++ b/node_modules/buetify/lib/components/dialog/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dialog/theme.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AAGA,OAAO,MAAM,WAAW,GAAkB,eAAe,CAAC;AACxD,EAAA,IAAI,EAAE,cADkD;AAExD,EAAA,KAAK,EAAE;AAFiD,CAAD,CAAlD","sourcesContent":["import { shallowReactive } from 'vue';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\n\nexport const DialogTheme: ThemeColorMap = shallowReactive({\n dark: 'is-grey-dark',\n light: ''\n});\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdown.d.ts b/node_modules/buetify/lib/components/dropdown/BDropdown.d.ts new file mode 100755 index 0000000..fee05ad --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdown.d.ts @@ -0,0 +1,230 @@ +import './dropdown.sass'; +import { Predicate } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { TransitionClasses } from '../../types/Transition'; +import { ExtractPropTypes, PropType, Ref } from 'vue'; +import { Classes } from '../../utils/mergeClasses'; +export declare type DropdownPosition = 'is-top-right' | 'is-top-left' | 'is-bottom-left'; +export declare const BDropdownPropsDefinition: { + id: PropType<string>; + isDisabled: { + type: PropType<boolean>; + default: boolean; + }; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isInline: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<DropdownPosition>; + validator: (value: unknown) => boolean; + }; + isMobileModal: { + type: PropType<boolean>; + default: boolean; + }; + menuTag: { + type: PropType<string>; + default: string; + }; + transition: { + type: PropType<import("../../types/Transition").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../../types/Transition").Transition>; + }; + onToggle: { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type BDropdownProps = ExtractPropTypes<typeof BDropdownPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + id: PropType<string>; + isDisabled: { + type: PropType<boolean>; + default: boolean; + }; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isInline: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<DropdownPosition>; + validator: (value: unknown) => boolean; + }; + isMobileModal: { + type: PropType<boolean>; + default: boolean; + }; + menuTag: { + type: PropType<string>; + default: string; + }; + transition: { + type: PropType<import("../../types/Transition").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../../types/Transition").Transition>; + }; + onToggle: { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, { + root: Ref<HTMLElement>; + rootClasses: Ref<Classes[]>; + clickOutsideArgs: { + include: () => HTMLElement[]; + closeConditional: Predicate<Event>; + }; + toggle: { + isOn: import("vue").WritableComputedRef<boolean>; + isOff: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + setOn: (e?: Event | undefined) => void; + setOff: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; + }; + transition: import("vue").ComputedRef<TransitionClasses>; + themeClasses: import("vue").ComputedRef<string[]>; + dropdownMenu: Ref<HTMLElement>; + displayMobileBackground: import("vue").ComputedRef<boolean>; + menuToggle: { + isOn: import("vue").ComputedRef<boolean>; + isOff: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + setOn: (e?: Event | undefined) => void; + setOff: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; + }; + trigger: Ref<HTMLElement>; + computedId: import("vue").ComputedRef<string>; +}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + hasPopup: boolean; + transition: import("../../types/Transition").Transition; + isExpanded: boolean; + isDisabled: boolean; + isHoverable: boolean; + isInline: boolean; + isMobileModal: boolean; + menuTag: string; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: IO<void> | undefined; + onSetOff?: IO<void> | undefined; + position?: "is-top-right" | "is-top-left" | "is-bottom-left" | undefined; + id?: string | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + hasPopup: boolean; + transition: import("../../types/Transition").Transition; + isExpanded: boolean; + isDisabled: boolean; + isHoverable: boolean; + isInline: boolean; + isMobileModal: boolean; + menuTag: string; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/dropdown/BDropdown.js b/node_modules/buetify/lib/components/dropdown/BDropdown.js new file mode 100755 index 0000000..32a8051 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdown.js @@ -0,0 +1,188 @@ +import "../../../src/components/dropdown/dropdown.sass"; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { getUseTogglePropsDefinition, useToggle } from '../../composables/toggle'; +import { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition'; +import { useWindowSize } from '../../composables/windowSize'; +import { defineComponent, shallowRef, computed, h, withDirectives, vShow, Transition } from 'vue'; +import ClickOutside from '../../directives/clickOutside'; +import { isString } from '../../utils/helpers'; +import { DropdownThemeMap } from './theme'; +export const BDropdownPropsDefinition = { ...useThemePropsDefinition(DropdownThemeMap), + ...getUseTogglePropsDefinition('isExpanded'), + ...FadeTransitionPropsDefinition, + id: String, + isDisabled: { + type: Boolean, + default: false + }, + isHoverable: { + type: Boolean, + default: false + }, + isInline: { + type: Boolean, + default: false + }, + position: { + type: String, + validator: value => { + return isString(value) && ['is-top-right', 'is-top-left', 'is-bottom-left'].includes(value); + } + }, + isMobileModal: { + type: Boolean, + default: true + }, + menuTag: { + type: String, + default: 'ul' + } +}; +let id = 0; + +function generateTrigger(toggle, id, slots) { + return h('div', { + ref: 'trigger', + class: 'dropdown-trigger', + role: 'button', + 'aria-owns': id, + 'aria-haspopup': 'listbox', + 'aria-expanded': `${toggle.isOn.value}`, + onClick: toggle.toggle + }, slots.trigger && slots.trigger(toggle)); +} + +function generateTransition(transition, children) { + return h(Transition, transition, children); +} + +function useCloseConditional(toggle, isInWhiteList) { + return e => { + const target = e.target; + return toggle.isOn.value && isInWhiteList(target); + }; +} + +function generateDropdownContent(menuTag, toggle, computedId, themeClasses, slots) { + return h(menuTag, { + class: ['dropdown-content', ...themeClasses], + role: 'menu', + id: computedId, + 'aria-hidden': toggle.isOff.value + }, slots.default && slots.default(toggle)); +} + +function generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots, useTransition = true) { + const menu = () => withDirectives(h('div', { + class: 'dropdown-menu' + }, [generateDropdownContent(menuTag, toggle, computedId, themeClasses, slots)]), [[vShow, toggle.isOn.value]]); + + return useTransition ? generateTransition(transition, menu) : menu(); +} + +function generateMobileBackground(menuTag, toggle, computedId, themeClasses, transition, slots) { + return generateTransition(transition, () => withDirectives(h('div', { + class: 'background', + 'aria-hidden': toggle.isOff.value, + onClick: toggle.setOff + }, [generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots, false)]), [[vShow, toggle.isOn.value]])); +} + +function generateChildren(menuTag, isInline, toggle, computedId, transition, themeClasses, shouldDisplayMobileBackground, slots) { + const children = []; + + if (!isInline) { + children.push(generateTrigger(toggle, computedId, slots)); + } + + if (shouldDisplayMobileBackground) { + children.push(generateMobileBackground(menuTag, toggle, computedId, themeClasses, transition, slots)); + } else { + const menu = generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots); + + if (menu) { + children.push(menu); + } + } + + return children; +} + +export default defineComponent({ + name: 'b-dropdown', + props: BDropdownPropsDefinition, + + setup(props) { + const windowSize = useWindowSize(); + const toggle = useToggle(props, 'isExpanded'); + const { + themeClasses + } = useTheme(props); + const transition = useTransition(props); + const root = shallowRef(null); + const trigger = shallowRef(null); + const dropdownMenu = shallowRef(null); + const computedId = computed(() => `dropdown-menu-${props.id ?? id++}`); + const rootClasses = computed(() => [props.position, { + 'is-disabled': props.isDisabled, + 'is-hoverable': props.isHoverable, + 'is-inline': props.isInline, + 'is-active': toggle.isOn.value || props.isInline, + 'is-mobile-modal': props.isMobileModal + }]); + const displayMenu = computed(() => !props.isDisabled && (toggle.isOn.value || props.isHoverable) || props.isInline); + const isMobileModal = computed(() => props.isMobileModal && !props.isInline && !props.isHoverable); + const displayMobileBackground = computed(() => isMobileModal.value && windowSize.value.isTouch); + + function getDependentElements() { + return Array.from(dropdownMenu.value?.querySelectorAll('*') ?? []); + } + + function isInDropdown(el) { + return dropdownMenu.value !== undefined && dropdownMenu.value.contains(el); + } + + function isInTrigger(el) { + return trigger.value !== undefined && trigger.value.contains(el); + } + + function isInWhiteList(el) { + if (el === root.value) return true; + if (el === dropdownMenu.value) return true; + if (el === trigger.value) return true; + return isInDropdown(el) || isInTrigger(el); + } + + const menuToggle = { ...toggle, + isOn: displayMenu, + isOff: computed(() => !displayMenu.value) + }; + const closeConditional = useCloseConditional(menuToggle, isInWhiteList); + const clickOutsideArgs = { + include: getDependentElements, + closeConditional + }; + return { + root, + rootClasses, + clickOutsideArgs, + toggle, + transition, + themeClasses, + dropdownMenu, + displayMobileBackground, + menuToggle, + trigger, + computedId + }; + }, + + render() { + return withDirectives(h('div', { + ref: 'root', + class: ['dropdown', ...this.rootClasses] + }, generateChildren(this.menuTag, this.isInline, this.menuToggle, this.computedId, this.transition, this.themeClasses, this.displayMobileBackground, this.$slots)), [[ClickOutside, this.toggle.setOff, this.clickOutsideArgs]]); + } + +}); +//# sourceMappingURL=BDropdown.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdown.js.map b/node_modules/buetify/lib/components/dropdown/BDropdown.js.map new file mode 100755 index 0000000..3a4faea --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdown.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dropdown/BDropdown.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAP;AAGA,SAAS,uBAAT,EAAkC,QAAlC,QAAkD,yBAAlD;AACA,SAAS,2BAAT,EAA8C,SAA9C,QAA+D,0BAA/D;AACA,SAAS,6BAAT,EAAwC,aAAxC,QAA6D,8BAA7D;AACA,SAAS,aAAT,QAA8B,8BAA9B;AAEA,SAIE,eAJF,EAKE,UALF,EAME,QANF,EAQE,CARF,EASE,cATF,EAUE,KAVF,EAYE,UAZF,QAaO,KAbP;AAcA,OAAO,YAAP,MAAyB,+BAAzB;AACA,SAAS,QAAT,QAAyB,qBAAzB;AAEA,SAAS,gBAAT,QAAiC,SAAjC;AAIA,OAAO,MAAM,wBAAwB,GAAG,EACtC,GAAG,uBAAuB,CAAC,gBAAD,CADY;AAEtC,KAAG,2BAA2B,CAAC,YAAD,CAFQ;AAGtC,KAAG,6BAHmC;AAItC,EAAA,EAAE,EAAE,MAJkC;AAKtC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAL0B;AAStC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GATyB;AAatC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,OADE;AAER,IAAA,OAAO,EAAE;AAFD,GAb4B;AAiBtC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,SAAS,EAAG,KAAD,IAAmB;AAC5B,aAAO,QAAQ,CAAC,KAAD,CAAR,IAAmB,CAAC,cAAD,EAAiB,aAAjB,EAAgC,gBAAhC,EAAkD,QAAlD,CAA2D,KAA3D,CAA1B;AACD;AAJO,GAjB4B;AAuBtC,EAAA,aAAa,EAAE;AACb,IAAA,IAAI,EAAE,OADO;AAEb,IAAA,OAAO,EAAE;AAFI,GAvBuB;AA2BtC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF;AA3B6B,CAAjC;AAmCP,IAAI,EAAE,GAAG,CAAT;;AAEA,SAAS,eAAT,CAAyB,MAAzB,EAAyC,EAAzC,EAAqD,KAArD,EAAiE;AAC/D,SAAO,CAAC,CACN,KADM,EAEN;AACE,IAAA,GAAG,EAAE,SADP;AAEE,IAAA,KAAK,EAAE,kBAFT;AAGE,IAAA,IAAI,EAAE,QAHR;AAIE,iBAAa,EAJf;AAKE,qBAAiB,SALnB;AAME,qBAAiB,GAAG,MAAM,CAAC,IAAP,CAAY,KAAK,EANvC;AAOE,IAAA,OAAO,EAAE,MAAM,CAAC;AAPlB,GAFM,EAWN,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,MAAd,CAXX,CAAR;AAaD;;AAED,SAAS,kBAAT,CAA4B,UAA5B,EAA2D,QAA3D,EAA0F;AACxF,SAAO,CAAC,CAAC,UAAD,EAAa,UAAb,EAAyB,QAAzB,CAAR;AACD;;AAED,SAAS,mBAAT,CAA6B,MAA7B,EAA6C,aAA7C,EAAkF;AAChF,SAAQ,CAAD,IAAa;AAClB,UAAM,MAAM,GAAG,CAAC,CAAC,MAAjB;AACA,WAAO,MAAM,CAAC,IAAP,CAAY,KAAZ,IAAqB,aAAa,CAAC,MAAD,CAAzC;AACD,GAHD;AAID;;AAED,SAAS,uBAAT,CACE,OADF,EAEE,MAFF,EAGE,UAHF,EAIE,YAJF,EAKE,KALF,EAKc;AAEZ,SAAO,CAAC,CACN,OADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,kBAAD,EAAqB,GAAG,YAAxB,CADT;AAEE,IAAA,IAAI,EAAE,MAFR;AAGE,IAAA,EAAE,EAAE,UAHN;AAIE,mBAAe,MAAM,CAAC,KAAP,CAAa;AAJ9B,GAFM,EAQN,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,MAAd,CARX,CAAR;AAUD;;AAED,SAAS,oBAAT,CACE,OADF,EAEE,MAFF,EAGE,UAHF,EAIE,YAJF,EAKE,UALF,EAME,KANF,EAOE,aAAa,GAAG,IAPlB,EAOsB;AAEpB,QAAM,IAAI,GAAG,MACX,cAAc,CACZ,CAAC,CACC,KADD,EAEC;AACE,IAAA,KAAK,EAAE;AADT,GAFD,EAKC,CAAC,uBAAuB,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,YAA9B,EAA4C,KAA5C,CAAxB,CALD,CADW,EAQZ,CAAC,CAAC,KAAD,EAAQ,MAAM,CAAC,IAAP,CAAY,KAApB,CAAD,CARY,CADhB;;AAWA,SAAO,aAAa,GAAG,kBAAkB,CAAC,UAAD,EAAa,IAAb,CAArB,GAA0C,IAAI,EAAlE;AACD;;AAED,SAAS,wBAAT,CACE,OADF,EAEE,MAFF,EAGE,UAHF,EAIE,YAJF,EAKE,UALF,EAME,KANF,EAMc;AAEZ,SAAO,kBAAkB,CAAC,UAAD,EAAa,MACpC,cAAc,CACZ,CAAC,CACC,KADD,EAEC;AACE,IAAA,KAAK,EAAE,YADT;AAEE,mBAAe,MAAM,CAAC,KAAP,CAAa,KAF9B;AAGE,IAAA,OAAO,EAAE,MAAM,CAAC;AAHlB,GAFD,EAOC,CAAC,oBAAoB,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,YAA9B,EAA4C,UAA5C,EAAwD,KAAxD,EAA+D,KAA/D,CAArB,CAPD,CADW,EAUZ,CAAC,CAAC,KAAD,EAAQ,MAAM,CAAC,IAAP,CAAY,KAApB,CAAD,CAVY,CADS,CAAzB;AAcD;;AAED,SAAS,gBAAT,CACE,OADF,EAEE,QAFF,EAGE,MAHF,EAIE,UAJF,EAKE,UALF,EAME,YANF,EAOE,6BAPF,EAQE,KARF,EAQc;AAEZ,QAAM,QAAQ,GAAY,EAA1B;;AACA,MAAI,CAAC,QAAL,EAAe;AACb,IAAA,QAAQ,CAAC,IAAT,CAAc,eAAe,CAAC,MAAD,EAAS,UAAT,EAAqB,KAArB,CAA7B;AACD;;AACD,MAAI,6BAAJ,EAAmC;AACjC,IAAA,QAAQ,CAAC,IAAT,CAAc,wBAAwB,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,YAA9B,EAA4C,UAA5C,EAAwD,KAAxD,CAAtC;AACD,GAFD,MAEO;AACL,UAAM,IAAI,GAAG,oBAAoB,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,YAA9B,EAA4C,UAA5C,EAAwD,KAAxD,CAAjC;;AACA,QAAI,IAAJ,EAAU;AACR,MAAA,QAAQ,CAAC,IAAT,CAAc,IAAd;AACD;AACF;;AACD,SAAO,QAAP;AACD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,YADuB;AAE7B,EAAA,KAAK,EAAE,wBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,UAAM,UAAU,GAAG,aAAa,EAAhC;AACA,UAAM,MAAM,GAAG,SAAS,CAAC,KAAD,EAAQ,YAAR,CAAxB;AACA,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,UAAM,UAAU,GAAG,aAAa,CAAC,KAAD,CAAhC;AACA,UAAM,IAAI,GAAG,UAAU,CAAE,IAAF,CAAvB;AACA,UAAM,OAAO,GAAG,UAAU,CAAE,IAAF,CAA1B;AACA,UAAM,YAAY,GAAG,UAAU,CAAE,IAAF,CAA/B;AACA,UAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,iBAAiB,KAAK,CAAC,EAAN,IAAY,EAAE,EAAE,EAAxC,CAA3B;AACA,UAAM,WAAW,GAAmB,QAAQ,CAAC,MAAM,CACjD,KAAK,CAAC,QAD2C,EAEjD;AACE,qBAAe,KAAK,CAAC,UADvB;AAEE,sBAAgB,KAAK,CAAC,WAFxB;AAGE,mBAAa,KAAK,CAAC,QAHrB;AAIE,mBAAa,MAAM,CAAC,IAAP,CAAY,KAAZ,IAAqB,KAAK,CAAC,QAJ1C;AAKE,yBAAmB,KAAK,CAAC;AAL3B,KAFiD,CAAP,CAA5C;AAUA,UAAM,WAAW,GAAG,QAAQ,CAC1B,MAAO,CAAC,KAAK,CAAC,UAAP,KAAsB,MAAM,CAAC,IAAP,CAAY,KAAZ,IAAqB,KAAK,CAAC,WAAjD,CAAD,IAAmE,KAAK,CAAC,QADrD,CAA5B;AAGA,UAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAN,IAAuB,CAAC,KAAK,CAAC,QAA9B,IAA0C,CAAC,KAAK,CAAC,WAAxD,CAA9B;AACA,UAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,KAAd,IAAuB,UAAU,CAAC,KAAX,CAAiB,OAA/C,CAAxC;;AAEA,aAAS,oBAAT,GAA6B;AAC3B,aAAO,KAAK,CAAC,IAAN,CAAW,YAAY,CAAC,KAAb,EAAoB,gBAApB,CAAqC,GAArC,KAA6C,EAAxD,CAAP;AACD;;AAED,aAAS,YAAT,CAAsB,EAAtB,EAAqC;AACnC,aAAO,YAAY,CAAC,KAAb,KAAuB,SAAvB,IAAoC,YAAY,CAAC,KAAb,CAAmB,QAAnB,CAA4B,EAA5B,CAA3C;AACD;;AAED,aAAS,WAAT,CAAqB,EAArB,EAAoC;AAClC,aAAO,OAAO,CAAC,KAAR,KAAkB,SAAlB,IAA+B,OAAO,CAAC,KAAR,CAAc,QAAd,CAAuB,EAAvB,CAAtC;AACD;;AAED,aAAS,aAAT,CAAuB,EAAvB,EAAsC;AACpC,UAAI,EAAE,KAAK,IAAI,CAAC,KAAhB,EAAuB,OAAO,IAAP;AACvB,UAAI,EAAE,KAAK,YAAY,CAAC,KAAxB,EAA+B,OAAO,IAAP;AAC/B,UAAI,EAAE,KAAK,OAAO,CAAC,KAAnB,EAA0B,OAAO,IAAP;AAC1B,aAAO,YAAY,CAAC,EAAD,CAAZ,IAAoB,WAAW,CAAC,EAAD,CAAtC;AACD;;AAED,UAAM,UAAU,GAAG,EACjB,GAAG,MADc;AAEjB,MAAA,IAAI,EAAE,WAFW;AAGjB,MAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,KAApB;AAHE,KAAnB;AAMA,UAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAD,EAAa,aAAb,CAA5C;AAEA,UAAM,gBAAgB,GAAG;AACvB,MAAA,OAAO,EAAE,oBADc;AAEvB,MAAA;AAFuB,KAAzB;AAIA,WAAO;AACL,MAAA,IADK;AAEL,MAAA,WAFK;AAGL,MAAA,gBAHK;AAIL,MAAA,MAJK;AAKL,MAAA,UALK;AAML,MAAA,YANK;AAOL,MAAA,YAPK;AAQL,MAAA,uBARK;AASL,MAAA,UATK;AAUL,MAAA,OAVK;AAWL,MAAA;AAXK,KAAP;AAaD,GAxE4B;;AAyE7B,EAAA,MAAM,GAAA;AACJ,WAAO,cAAc,CACnB,CAAC,CACC,KADD,EAEC;AAAE,MAAA,GAAG,EAAE,MAAP;AAAe,MAAA,KAAK,EAAE,CAAC,UAAD,EAAa,GAAG,KAAK,WAArB;AAAtB,KAFD,EAGC,gBAAgB,CACd,KAAK,OADS,EAEd,KAAK,QAFS,EAGd,KAAK,UAHS,EAId,KAAK,UAJS,EAKd,KAAK,UALS,EAMd,KAAK,YANS,EAOd,KAAK,uBAPS,EAQd,KAAK,MARS,CAHjB,CADkB,EAenB,CAAC,CAAC,YAAD,EAAe,KAAK,MAAL,CAAY,MAA3B,EAAoC,KAAK,gBAAzC,CAAD,CAfmB,CAArB;AAiBD;;AA3F4B,CAAD,CAA9B","sourcesContent":["import './dropdown.sass';\nimport { Predicate } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { useThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { getUseTogglePropsDefinition, Toggle, useToggle } from '../../composables/toggle';\nimport { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition';\nimport { useWindowSize } from '../../composables/windowSize';\nimport { TransitionClasses } from '../../types/Transition';\nimport {\n ExtractPropTypes,\n PropType,\n VNode,\n defineComponent,\n shallowRef,\n computed,\n Ref,\n h,\n withDirectives,\n vShow,\n Slots,\n Transition\n} from 'vue';\nimport ClickOutside from '../../directives/clickOutside';\nimport { isString } from '../../utils/helpers';\nimport { Classes } from '../../utils/mergeClasses';\nimport { DropdownThemeMap } from './theme';\n\nexport type DropdownPosition = 'is-top-right' | 'is-top-left' | 'is-bottom-left';\n\nexport const BDropdownPropsDefinition = {\n ...useThemePropsDefinition(DropdownThemeMap),\n ...getUseTogglePropsDefinition('isExpanded'),\n ...FadeTransitionPropsDefinition,\n id: String as PropType<string>,\n isDisabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isHoverable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isInline: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n position: {\n type: String as PropType<DropdownPosition>,\n validator: (value: unknown) => {\n return isString(value) && ['is-top-right', 'is-top-left', 'is-bottom-left'].includes(value);\n }\n },\n isMobileModal: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n menuTag: {\n type: String as PropType<string>,\n default: 'ul'\n }\n};\n\nexport type BDropdownProps = ExtractPropTypes<typeof BDropdownPropsDefinition>;\n\nlet id = 0;\n\nfunction generateTrigger(toggle: Toggle, id: string, slots: Slots) {\n return h(\n 'div',\n {\n ref: 'trigger',\n class: 'dropdown-trigger',\n role: 'button',\n 'aria-owns': id,\n 'aria-haspopup': 'listbox',\n 'aria-expanded': `${toggle.isOn.value}`,\n onClick: toggle.toggle\n },\n slots.trigger && slots.trigger(toggle)\n );\n}\n\nfunction generateTransition(transition: TransitionClasses, children: IO<VNode | undefined>) {\n return h(Transition, transition, children);\n}\n\nfunction useCloseConditional(toggle: Toggle, isInWhiteList: Predicate<HTMLElement>): Predicate<Event> {\n return (e: Event) => {\n const target = e.target as HTMLElement;\n return toggle.isOn.value && isInWhiteList(target);\n };\n}\n\nfunction generateDropdownContent(\n menuTag: string,\n toggle: Toggle,\n computedId: string,\n themeClasses: string[],\n slots: Slots\n): VNode {\n return h(\n menuTag,\n {\n class: ['dropdown-content', ...themeClasses],\n role: 'menu',\n id: computedId,\n 'aria-hidden': toggle.isOff.value\n },\n slots.default && slots.default(toggle)\n );\n}\n\nfunction generateDropdownMenu(\n menuTag: string,\n toggle: Toggle,\n computedId: string,\n themeClasses: string[],\n transition: TransitionClasses,\n slots: Slots,\n useTransition = true\n) {\n const menu = () =>\n withDirectives(\n h(\n 'div',\n {\n class: 'dropdown-menu'\n },\n [generateDropdownContent(menuTag, toggle, computedId, themeClasses, slots)]\n ),\n [[vShow, toggle.isOn.value]]\n );\n return useTransition ? generateTransition(transition, menu) : menu();\n}\n\nfunction generateMobileBackground(\n menuTag: string,\n toggle: Toggle,\n computedId: string,\n themeClasses: string[],\n transition: TransitionClasses,\n slots: Slots\n): VNode {\n return generateTransition(transition, () =>\n withDirectives(\n h(\n 'div',\n {\n class: 'background',\n 'aria-hidden': toggle.isOff.value,\n onClick: toggle.setOff\n },\n [generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots, false)]\n ),\n [[vShow, toggle.isOn.value]]\n )\n );\n}\n\nfunction generateChildren(\n menuTag: string,\n isInline: boolean,\n toggle: Toggle,\n computedId: string,\n transition: TransitionClasses,\n themeClasses: string[],\n shouldDisplayMobileBackground: boolean,\n slots: Slots\n) {\n const children: VNode[] = [];\n if (!isInline) {\n children.push(generateTrigger(toggle, computedId, slots));\n }\n if (shouldDisplayMobileBackground) {\n children.push(generateMobileBackground(menuTag, toggle, computedId, themeClasses, transition, slots));\n } else {\n const menu = generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots);\n if (menu) {\n children.push(menu);\n }\n }\n return children;\n}\n\nexport default defineComponent({\n name: 'b-dropdown',\n props: BDropdownPropsDefinition,\n setup(props) {\n const windowSize = useWindowSize();\n const toggle = useToggle(props, 'isExpanded');\n const { themeClasses } = useTheme(props);\n const transition = useTransition(props);\n const root = shallowRef((null as unknown) as HTMLElement);\n const trigger = shallowRef((null as unknown) as HTMLElement);\n const dropdownMenu = shallowRef((null as unknown) as HTMLElement);\n const computedId = computed(() => `dropdown-menu-${props.id ?? id++}`);\n const rootClasses: Ref<Classes[]> = computed(() => [\n props.position,\n {\n 'is-disabled': props.isDisabled,\n 'is-hoverable': props.isHoverable,\n 'is-inline': props.isInline,\n 'is-active': toggle.isOn.value || props.isInline,\n 'is-mobile-modal': props.isMobileModal\n }\n ]);\n const displayMenu = computed(\n () => (!props.isDisabled && (toggle.isOn.value || props.isHoverable)) || props.isInline\n );\n const isMobileModal = computed(() => props.isMobileModal && !props.isInline && !props.isHoverable);\n const displayMobileBackground = computed(() => isMobileModal.value && windowSize.value.isTouch);\n\n function getDependentElements(): HTMLElement[] {\n return Array.from(dropdownMenu.value?.querySelectorAll('*') ?? []);\n }\n\n function isInDropdown(el: HTMLElement): boolean {\n return dropdownMenu.value !== undefined && dropdownMenu.value.contains(el);\n }\n\n function isInTrigger(el: HTMLElement): boolean {\n return trigger.value !== undefined && trigger.value.contains(el);\n }\n\n function isInWhiteList(el: HTMLElement) {\n if (el === root.value) return true;\n if (el === dropdownMenu.value) return true;\n if (el === trigger.value) return true;\n return isInDropdown(el) || isInTrigger(el);\n }\n\n const menuToggle = {\n ...toggle,\n isOn: displayMenu,\n isOff: computed(() => !displayMenu.value)\n };\n\n const closeConditional = useCloseConditional(menuToggle, isInWhiteList);\n\n const clickOutsideArgs = {\n include: getDependentElements,\n closeConditional\n };\n return {\n root,\n rootClasses,\n clickOutsideArgs,\n toggle,\n transition,\n themeClasses,\n dropdownMenu,\n displayMobileBackground,\n menuToggle,\n trigger,\n computedId\n };\n },\n render() {\n return withDirectives(\n h(\n 'div',\n { ref: 'root', class: ['dropdown', ...this.rootClasses] },\n generateChildren(\n this.menuTag,\n this.isInline,\n this.menuToggle,\n this.computedId,\n this.transition,\n this.themeClasses,\n this.displayMobileBackground,\n this.$slots\n )\n ),\n [[ClickOutside, this.toggle.setOff, (this.clickOutsideArgs as unknown) as string]]\n );\n }\n});\n"],"sourceRoot":"","file":"BDropdown.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownDivider.d.ts b/node_modules/buetify/lib/components/dropdown/BDropdownDivider.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownDivider.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownDivider.js b/node_modules/buetify/lib/components/dropdown/BDropdownDivider.js new file mode 100755 index 0000000..116f554 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownDivider.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('dropdown-divider', 'hr'); +//# sourceMappingURL=BDropdownDivider.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownDivider.js.map b/node_modules/buetify/lib/components/dropdown/BDropdownDivider.js.map new file mode 100755 index 0000000..2b46469 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownDivider.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dropdown/BDropdownDivider.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,kBAAD,EAAqB,IAArB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('dropdown-divider', 'hr');\n"],"sourceRoot":"","file":"BDropdownDivider.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownItem.d.ts b/node_modules/buetify/lib/components/dropdown/BDropdownItem.d.ts new file mode 100755 index 0000000..e9ada75 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownItem.d.ts @@ -0,0 +1,34 @@ +import { PropType } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + isActive: { + type: PropType<boolean>; + default: boolean; + }; + tag: { + type: PropType<string>; + default: string; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; + isActive: boolean; +} & {}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; + isActive: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownItem.js b/node_modules/buetify/lib/components/dropdown/BDropdownItem.js new file mode 100755 index 0000000..d5be474 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownItem.js @@ -0,0 +1,35 @@ +import { useTheme, useThemePropsDefinition } from '../../composables/theme'; +import { h, defineComponent } from 'vue'; +import { DropdownThemeMap } from './theme'; +export default defineComponent({ + name: 'b-dropdown-item', + props: { ...useThemePropsDefinition(DropdownThemeMap, true), + isActive: { + type: Boolean, + default: false + }, + tag: { + type: String, + default: 'li' + } + }, + + setup(props, { + slots + }) { + const { + themeClasses + } = useTheme(props); + return () => { + return h(props.tag ?? 'li', { + role: 'menuitem', + tabindex: 0, + class: ['dropdown-item', ...themeClasses.value, { + 'is-active': props.isActive + }] + }, slots.default && slots.default()); + }; + } + +}); +//# sourceMappingURL=BDropdownItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownItem.js.map b/node_modules/buetify/lib/components/dropdown/BDropdownItem.js.map new file mode 100755 index 0000000..7319ca0 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dropdown/BDropdownItem.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,uBAAnB,QAAkD,yBAAlD;AACA,SAAS,CAAT,EAAY,eAAZ,QAA6C,KAA7C;AACA,SAAS,gBAAT,QAAiC,SAAjC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,iBADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,uBAAuB,CAAC,gBAAD,EAAmB,IAAnB,CADrB;AAEL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KAFL;AAML,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN;AANA,GAFsB;;AAa7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,WAAO,MAAK;AACV,aAAO,CAAC,CACN,KAAK,CAAC,GAAN,IAAa,IADP,EAEN;AACE,QAAA,IAAI,EAAE,UADR;AAEE,QAAA,QAAQ,EAAE,CAFZ;AAGE,QAAA,KAAK,EAAE,CAAC,eAAD,EAAkB,GAAG,YAAY,CAAC,KAAlC,EAAyC;AAAE,uBAAa,KAAK,CAAC;AAArB,SAAzC;AAHT,OAFM,EAON,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAPX,CAAR;AASD,KAVD;AAWD;;AA1B4B,CAAD,CAA9B","sourcesContent":["import { useTheme, useThemePropsDefinition } from '../../composables/theme';\nimport { h, defineComponent, PropType } from 'vue';\nimport { DropdownThemeMap } from './theme';\n\nexport default defineComponent({\n name: 'b-dropdown-item',\n props: {\n ...useThemePropsDefinition(DropdownThemeMap, true),\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n tag: {\n type: String as PropType<string>,\n default: 'li'\n }\n },\n setup(props, { slots }) {\n const { themeClasses } = useTheme(props);\n return () => {\n return h(\n props.tag ?? 'li',\n {\n role: 'menuitem',\n tabindex: 0,\n class: ['dropdown-item', ...themeClasses.value, { 'is-active': props.isActive }]\n },\n slots.default && slots.default()\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BDropdownItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownLink.d.ts b/node_modules/buetify/lib/components/dropdown/BDropdownLink.d.ts new file mode 100755 index 0000000..bcf0e42 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownLink.d.ts @@ -0,0 +1,39 @@ +import { PropType } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + isActive: { + type: PropType<boolean>; + default: boolean; + }; + href: { + type: PropType<string>; + required: true; + }; + tag: { + type: PropType<string>; + default: string; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; + isActive: boolean; + href: string; +} & {}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; + isActive: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownLink.js b/node_modules/buetify/lib/components/dropdown/BDropdownLink.js new file mode 100755 index 0000000..9914074 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownLink.js @@ -0,0 +1,40 @@ +import { useTheme, useThemePropsDefinition } from '../../composables/theme'; +import { h, defineComponent } from 'vue'; +import { DropdownThemeMap } from './theme'; +export default defineComponent({ + name: 'b-dropdown-link-item', + props: { ...useThemePropsDefinition(DropdownThemeMap, true), + isActive: { + type: Boolean, + default: false + }, + href: { + type: String, + required: true + }, + tag: { + type: String, + default: 'li' + } + }, + + setup(props, { + attrs, + slots + }) { + const { + themeClasses + } = useTheme(props); + return () => { + return h(props.tag ?? 'li', { + role: 'menuitem' + }, [h('a', { ...attrs, + class: ['dropdown-item dropdown-link', ...themeClasses.value, { + 'is-active': props.isActive + }] + }, slots.default && slots.default())]); + }; + } + +}); +//# sourceMappingURL=BDropdownLink.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/BDropdownLink.js.map b/node_modules/buetify/lib/components/dropdown/BDropdownLink.js.map new file mode 100755 index 0000000..aa258e3 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/BDropdownLink.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dropdown/BDropdownLink.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,uBAAnB,QAAkD,yBAAlD;AACA,SAAS,CAAT,EAAY,eAAZ,QAA6C,KAA7C;AACA,SAAS,gBAAT,QAAiC,SAAjC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,sBADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,uBAAuB,CAAC,gBAAD,EAAmB,IAAnB,CADrB;AAEL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KAFL;AAML,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,QAAQ,EAAE;AAFN,KAND;AAUL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN;AAVA,GAFsB;;AAiB7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,GAAR,EAAwB;AAC3B,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,WAAO,MAAK;AACV,aAAO,CAAC,CACN,KAAK,CAAC,GAAN,IAAa,IADP,EAEN;AACE,QAAA,IAAI,EAAE;AADR,OAFM,EAKN,CACE,CAAC,CACC,GADD,EAEC,EACE,GAAG,KADL;AAEE,QAAA,KAAK,EAAE,CAAC,6BAAD,EAAgC,GAAG,YAAY,CAAC,KAAhD,EAAuD;AAAE,uBAAa,KAAK,CAAC;AAArB,SAAvD;AAFT,OAFD,EAMC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EANlB,CADH,CALM,CAAR;AAgBD,KAjBD;AAkBD;;AArC4B,CAAD,CAA9B","sourcesContent":["import { useTheme, useThemePropsDefinition } from '../../composables/theme';\nimport { h, defineComponent, PropType } from 'vue';\nimport { DropdownThemeMap } from './theme';\n\nexport default defineComponent({\n name: 'b-dropdown-link-item',\n props: {\n ...useThemePropsDefinition(DropdownThemeMap, true),\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n href: {\n type: String as PropType<string>,\n required: true\n },\n tag: {\n type: String as PropType<string>,\n default: 'li'\n }\n },\n setup(props, { attrs, slots }) {\n const { themeClasses } = useTheme(props);\n return () => {\n return h(\n props.tag ?? 'li',\n {\n role: 'menuitem'\n },\n [\n h(\n 'a',\n {\n ...attrs,\n class: ['dropdown-item dropdown-link', ...themeClasses.value, { 'is-active': props.isActive }]\n },\n slots.default && slots.default()\n )\n ]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BDropdownLink.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/index.d.ts b/node_modules/buetify/lib/components/dropdown/index.d.ts new file mode 100755 index 0000000..c777861 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/index.d.ts @@ -0,0 +1,7 @@ +import BDropdown from './BDropdown'; +import BDropdownDivider from './BDropdownDivider'; +import BDropdownItem from './BDropdownItem'; +import BDropdownLink from './BDropdownLink'; +import { DropdownThemeMap } from './theme'; +export { BDropdownItem, BDropdownLink, BDropdownDivider, BDropdown, DropdownThemeMap }; +export default BDropdown; diff --git a/node_modules/buetify/lib/components/dropdown/index.js b/node_modules/buetify/lib/components/dropdown/index.js new file mode 100755 index 0000000..8c1dc1d --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/index.js @@ -0,0 +1,8 @@ +import BDropdown from './BDropdown'; +import BDropdownDivider from './BDropdownDivider'; +import BDropdownItem from './BDropdownItem'; +import BDropdownLink from './BDropdownLink'; +import { DropdownThemeMap } from './theme'; +export { BDropdownItem, BDropdownLink, BDropdownDivider, BDropdown, DropdownThemeMap }; +export default BDropdown; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/index.js.map b/node_modules/buetify/lib/components/dropdown/index.js.map new file mode 100755 index 0000000..8c793c8 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AACA,OAAO,gBAAP,MAA6B,oBAA7B;AACA,OAAO,aAAP,MAA0B,iBAA1B;AACA,OAAO,aAAP,MAA0B,iBAA1B;AACA,SAAS,gBAAT,QAAiC,SAAjC;AAEA,SAAS,aAAT,EAAwB,aAAxB,EAAuC,gBAAvC,EAAyD,SAAzD,EAAoE,gBAApE;AAEA,eAAe,SAAf","sourcesContent":["import BDropdown from './BDropdown';\nimport BDropdownDivider from './BDropdownDivider';\nimport BDropdownItem from './BDropdownItem';\nimport BDropdownLink from './BDropdownLink';\nimport { DropdownThemeMap } from './theme';\n\nexport { BDropdownItem, BDropdownLink, BDropdownDivider, BDropdown, DropdownThemeMap };\n\nexport default BDropdown;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/theme.d.ts b/node_modules/buetify/lib/components/dropdown/theme.d.ts new file mode 100755 index 0000000..5b7b7f7 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/theme.d.ts @@ -0,0 +1,2 @@ +import { ThemeColorMap } from '../../types/ThemeColorMap'; +export declare const DropdownThemeMap: ThemeColorMap; diff --git a/node_modules/buetify/lib/components/dropdown/theme.js b/node_modules/buetify/lib/components/dropdown/theme.js new file mode 100755 index 0000000..31bc8e4 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/theme.js @@ -0,0 +1,6 @@ +import { shallowReactive } from 'vue'; +export const DropdownThemeMap = shallowReactive({ + dark: 'is-grey-dark', + light: '' +}); +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/dropdown/theme.js.map b/node_modules/buetify/lib/components/dropdown/theme.js.map new file mode 100755 index 0000000..6381815 --- /dev/null +++ b/node_modules/buetify/lib/components/dropdown/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/dropdown/theme.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AAGA,OAAO,MAAM,gBAAgB,GAAkB,eAAe,CAAC;AAC7D,EAAA,IAAI,EAAE,cADuD;AAE7D,EAAA,KAAK,EAAE;AAFsD,CAAD,CAAvD","sourcesContent":["import { shallowReactive } from 'vue';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\n\nexport const DropdownThemeMap: ThemeColorMap = shallowReactive({\n dark: 'is-grey-dark',\n light: ''\n});\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.d.ts b/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.d.ts new file mode 100755 index 0000000..8d7ef67 --- /dev/null +++ b/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.d.ts @@ -0,0 +1,230 @@ +import '../sass/form.sass'; +import '../../dropdown/dropdown.sass'; +import './autocomplete.sass'; +import { Eq } from 'fp-ts/lib/Eq'; +import { FunctionN, Predicate } from 'fp-ts/lib/function'; +import { PropType, VNode } from 'vue'; +export interface AutocompleteItem<T> { + id: string; + isSelected: boolean; + isHovered: boolean; + text: string; + value: T; + index: number; +} +export declare const BAutocomplete: import("vue").DefineComponent<{ + selectedItems: { + type: PropType<unknown[]>; + required: true; + }; + items: { + type: PropType<unknown[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + itemFilter: { + type: PropType<FunctionN<[string], Predicate<unknown>>>; + required: false; + }; + itemId: { + type: PropType<(item: unknown) => any>; + default: string; + }; + itemText: { + type: PropType<(item: unknown) => any>; + default: string; + }; + closeOnSelect: { + type: PropType<boolean>; + default: boolean; + }; + clearOnSelect: { + type: PropType<boolean>; + default: boolean; + }; + openOnFocus: { + type: PropType<boolean>; + default: boolean; + }; + onSelected: { + type: PropType<FunctionN<[unknown], void>>; + required: false; + }; + "onUpdate:selectedItems": { + type: PropType<FunctionN<[unknown[]], void>>; + default: import("fp-ts/lib/function").Lazy<FunctionN<[unknown[]], void>>; + }; + modelValue: { + type: PropType<string>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[string], void>>; + default: import("fp-ts/lib/function").Lazy<FunctionN<[string], void>>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + eq: { + type: PropType<Eq<unknown>>; + default: import("fp-ts/lib/function").Lazy<Eq<unknown>>; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": FunctionN<[string], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + selectedItems: unknown[]; + "onUpdate:selectedItems": FunctionN<[unknown[]], void>; + items: unknown[]; + itemId: (item: unknown) => any; + itemText: (item: unknown) => any; + closeOnSelect: boolean; + clearOnSelect: boolean; + openOnFocus: boolean; + eq: Eq<unknown>; +} & { + icon?: any; + type?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: string | undefined; + autocomplete?: string | undefined; + placeholder?: string | undefined; + maxlength?: string | number | undefined; + itemFilter?: FunctionN<[string], Predicate<unknown>> | undefined; + onSelected?: FunctionN<[unknown], void> | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": FunctionN<[string], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + "onUpdate:selectedItems": FunctionN<[unknown[]], void>; + items: unknown[]; + itemId: (item: unknown) => any; + itemText: (item: unknown) => any; + closeOnSelect: boolean; + clearOnSelect: boolean; + openOnFocus: boolean; + eq: Eq<unknown>; +}>; diff --git a/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.js b/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.js new file mode 100755 index 0000000..67e2c00 --- /dev/null +++ b/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.js @@ -0,0 +1,317 @@ +import "../../../../src/components/form/sass/form.sass"; +import "../../../../src/components/dropdown/dropdown.sass"; +import "../../../../src/components/form/autocomplete/autocomplete.sass"; +import { StaticUseInputProps } from '../../../composables/input/useInput'; +import { getUseModelPropsDefinition } from '../../../composables/model/useModel'; +import { useProxy } from '../../../composables/proxy'; +import { getEqPropsDefinition } from '../../../composables/shared'; +import { useThemePropsDefinition } from '../../../composables/theme'; +import { constEmptyArray, extractProp, isFunction, isHTMLElement, isObject, isString, toggleListItem } from '../../../utils/helpers'; +import { DropdownThemeMap } from '../../dropdown'; +import BDropdown from '../../dropdown/BDropdown'; +import { isArrowDownEvent, isArrowUpEvent, isEnterEvent, isEscEvent, isTabEvent } from '../../../utils/eventHelpers'; +import { constant, constVoid } from 'fp-ts/lib/function'; +import BDropdownDivider from '../../dropdown/BDropdownDivider'; +import BDropdownItem from '../../dropdown/BDropdownItem'; +import { head, isEmpty, lookup } from 'fp-ts/lib/Array'; +import { alt, chain, fold, fromNullable, isSome, map, none, some, toUndefined } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { defineComponent, shallowRef, computed, onBeforeUpdate, nextTick, toRef, h } from 'vue'; +import { BInput } from '../input'; + +function getActiveDescendentId(selectedItems, itemId) { + return pipe(selectedItems, head, chain(item => { + if (isString(item) && isFunction(itemId)) { + const id = extractProp(itemId, item); + return isString(id) ? some(id) : none; + } + + if (isString(item)) { + return some(item); + } + + if (isString(itemId) && isObject(item) && Object.hasOwnProperty.call(item, itemId)) { + const id = item[itemId]; + return isString(id) ? some(id) : none; + } + + const id = extractProp(itemId, item); + return isString(id) ? some(id) : none; + }), toUndefined); +} + +function getAutocompleteItems(items, selectedItems, itemId, itemText, eq, hoveredItem) { + return items.map((item, index) => { + const id = extractProp(itemId, item); + const nid = isString(id) ? id : String(id); + const text = extractProp(itemText, item); + return { + id: nid, + isSelected: selectedItems.some(i => eq.equals(i, item)), + isHovered: isSome(hoveredItem) ? hoveredItem.value.id === nid : false, + text: isString(text) ? text : String(text), + value: item, + index + }; + }); +} + +function getSetSelected(props, closeDropdown, inputModel, selectedItemsModel) { + const toggle = toggleListItem(props.eq); + return item => { + const text = extractProp(props.itemText, item.value); + inputModel.value = props.clearOnSelect ? '' : isString(text) ? text : String(text); + selectedItemsModel.value = toggle(item.value, selectedItemsModel.value || []); + + if (props.closeOnSelect) { + closeDropdown(); + } + }; +} + +function getSetHovered(hoveredItem, templateItems) { + return item => { + const newItem = fromNullable(item); + + if (isSome(newItem)) { + hoveredItem.value = newItem; + pipe(newItem, map(item => item.index), chain(index => lookup(index, templateItems.value)), fold(constant(constVoid), li => () => li.focus && li.focus()))(); + } + }; +} + +function getOnKeydown(autocompleteItems, hoveredItem, closeDropdown, setSelected, setHovered) { + function onArrowPress(isUp) { + pipe(hoveredItem.value, map(item => item.index), alt(() => some(0)), chain(index => lookup(isUp ? Math.max(index - 1, 0) : Math.min(index + 1, autocompleteItems.value.length - 1), autocompleteItems.value)), fold(constant(constVoid), newItem => () => setHovered(newItem)))(); + } + + return function onKeydown(event) { + if (isEnterEvent(event)) { + event.preventDefault(); + + if (isSome(hoveredItem.value)) { + setSelected(hoveredItem.value.value); + } + } else if (isTabEvent(event)) { + event.preventDefault(); + + if (isSome(hoveredItem.value)) { + setSelected(hoveredItem.value.value); + } else { + nextTick(closeDropdown); + } + } else if (isArrowUpEvent(event)) { + event.preventDefault(); + onArrowPress(true); + } else if (isArrowDownEvent(event)) { + event.preventDefault(); + onArrowPress(false); + } else if (isEscEvent(event)) { + event.preventDefault(); + nextTick(closeDropdown); + } + }; +} + +function getGenerateItem(itemsRef, length, onKeydown, setSelected, setHovered, slots) { + return function generateItem(item, index) { + return h(BDropdownItem, { + key: item.id, + ref: el => { + if (isHTMLElement(el)) { + itemsRef.value[index] = el; + } + }, + id: item.id, + isActive: item.isSelected, + tabindex: item.isSelected ? -1 : 0, + 'aria-selected': item.isSelected, + 'aria-label': `Option ${index + 1} of ${length.value}`, + class: { + 'is-hovered': item.isHovered + }, + onClick: () => setSelected(item), + onMouseenter: () => setHovered(item), + onKeydown + }, () => slots.default ? slots.default({ + option: item, + index + }) : item.text); + }; +} + +function generateHeaderItem(slots) { + return h('li', { + class: 'dropdown-item', + tabindex: -1 + }, slots.header && slots.header()); +} + +function generateFooterItem(slots) { + return h('li', { + class: 'dropdown-item', + tabindex: -1 + }, slots.footer && slots.footer()); +} + +function generateLoadingItem(slots) { + return h('li', { + tabindex: -1 + }, [h(BDropdownItem, { + tag: 'div' + }, () => slots.loading ? slots.loading() : 'Loading results...')]); +} + +function generateEmptyItem(modelValue, slots) { + return h(BDropdownItem, { + class: 'is-disabled' + }, () => slots.empty ? slots.empty({ + searchValue: modelValue + }) : modelValue ? `No results` : `No results for ${modelValue}`); +} + +function defineAutocomplete() { + return defineComponent({ + name: 'b-autocomplete', + props: { ...StaticUseInputProps, + ...getEqPropsDefinition(), + ...useThemePropsDefinition(DropdownThemeMap), + ...getUseModelPropsDefinition(), + ...getUseModelPropsDefinition('selectedItems', 'onUpdate:selectedItems'), + selectedItems: { + type: Array, + required: true + }, + items: { + type: Array, + default: constEmptyArray + }, + itemFilter: { + type: Function, + required: false + }, + itemId: { + type: [String, Function], + default: 'id' + }, + itemText: { + type: [String, Function], + default: 'text' + }, + closeOnSelect: { + type: Boolean, + default: true + }, + clearOnSelect: { + type: Boolean, + default: true + }, + openOnFocus: { + type: Boolean, + default: true + }, + onSelected: { + type: Function, + required: false + } + }, + + setup(props, { + slots + }) { + const { + value: searchValue + } = useProxy(computed(() => props.modelValue ?? ''), toRef(props, 'onUpdate:modelValue')); + const { + value: selectedItems + } = useProxy(toRef(props, 'selectedItems'), toRef(props, 'onUpdate:selectedItems')); + const itemsRef = shallowRef([]); + const filteredItems = computed(() => { + if (props.itemFilter) { + return props.items.filter(props.itemFilter(searchValue.value)); + } else { + const sv = searchValue.value.toLowerCase(); + const extract = props.itemText; + return props.items.filter(i => extractProp(extract, i).toLowerCase().includes(sv)); + } + }); + onBeforeUpdate(() => { + itemsRef.value = []; + }); + const dropdown = shallowRef(null); + + function close() { + dropdown.value && dropdown.value.toggle.setOff(); + } + + const hoveredItem = shallowRef(none); + const activeDescendentId = computed(() => getActiveDescendentId(props.selectedItems, props.itemId)); + const autocompleteItems = computed(() => getAutocompleteItems(filteredItems.value, selectedItems.value, props.itemId, props.itemText, props.eq, hoveredItem.value)); + const numberOfItems = computed(() => autocompleteItems.value.length); + const setSelected = getSetSelected(props, close, searchValue, selectedItems); + const setHovered = getSetHovered(hoveredItem, itemsRef); + const onKeydown = getOnKeydown(autocompleteItems, hoveredItem, close, setSelected, setHovered); + const generateItem = getGenerateItem(itemsRef, numberOfItems, onKeydown, setSelected, setHovered, slots); + return () => { + return h(BDropdown, { + ref: dropdown, + isMobileModal: false, + class: ['b-autocomplete', { + 'is-expanded': props.isExpanded + }] + }, { + trigger: () => { + return h(BInput, { + modelValue: searchValue.value, + type: 'text', + size: props.size, + isLoading: props.isLoading, + isRounded: props.isRounded, + icon: props.icon, + maxlength: props.maxlength, + autocomplete: 'off', + placeholder: props.placeholder, + role: 'searchbox', + 'aria-activedescendant': activeDescendentId.value, + 'onUpdate:modelValue': val => { + searchValue.value = val; + }, + // onFocus: () => { + // nextTick().then(() => { + // if (props.openOnFocus && toggle.isOff.value) { + // toggle.setOn(); + // } + // }); + // }, + onBlur: props.onBlur, + onKeydown + }); + }, + default: () => { + let nodes; + + if (props.isLoading) { + nodes = [generateLoadingItem(slots)]; + } else { + nodes = isEmpty(autocompleteItems.value) ? [generateEmptyItem(searchValue.value, slots)] : autocompleteItems.value.map(generateItem); + + if (slots.header) { + nodes.unshift(generateHeaderItem(slots), h(BDropdownDivider)); + } + + if (slots.footer) { + nodes.push(h(BDropdownDivider), generateFooterItem(slots)); + } + } + + return nodes; + } + }); + }; + } + + }); +} + +export const BAutocomplete = defineAutocomplete(); +//# sourceMappingURL=BAutocomplete.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.js.map b/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.js.map new file mode 100755 index 0000000..85064e1 --- /dev/null +++ b/node_modules/buetify/lib/components/form/autocomplete/BAutocomplete.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/autocomplete/BAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAP;AACA,OAAO,mDAAP;AACA,OAAO,gEAAP;AAGA,SAAS,mBAAT,QAAoC,qCAApC;AACA,SAAS,0BAAT,QAA2C,qCAA3C;AACA,SAAS,QAAT,QAAyB,4BAAzB;AACA,SAAS,oBAAT,QAAqC,6BAArC;AACA,SAAS,uBAAT,QAAwC,4BAAxC;AACA,SACE,eADF,EAGE,WAHF,EAIE,UAJF,EAKE,aALF,EAME,QANF,EAOE,QAPF,EAQE,cARF,QASO,wBATP;AAUA,SAAS,gBAAT,QAAiC,gBAAjC;AACA,OAAO,SAAP,MAAsB,0BAAtB;AACA,SAAS,gBAAT,EAA2B,cAA3B,EAA2C,YAA3C,EAAyD,UAAzD,EAAqE,UAArE,QAAuF,6BAAvF;AACA,SAAS,QAAT,EAAmB,SAAnB,QAA0D,oBAA1D;AACA,OAAO,gBAAP,MAA6B,iCAA7B;AACA,OAAO,aAAP,MAA0B,8BAA1B;AACA,SAAS,IAAT,EAAe,OAAf,EAAwB,MAAxB,QAAsC,iBAAtC;AACA,SAAS,GAAT,EAAc,KAAd,EAAqB,IAArB,EAA2B,YAA3B,EAAyC,MAAzC,EAAiD,GAAjD,EAAsD,IAAtD,EAAoE,IAApE,EAA0E,WAA1E,QAA6F,kBAA7F;AACA,SAAS,IAAT,QAAqB,oBAArB;AACA,SACE,eADF,EAKE,UALF,EAME,QANF,EAOE,cAPF,EAQE,QARF,EASE,KATF,EAWE,CAXF,QAYO,KAZP;AAcA,SAAS,MAAT,QAAuB,UAAvB;;AAWA,SAAS,qBAAT,CACE,aADF,EAEE,MAFF,EAEkD;AAEhD,SAAO,IAAI,CACT,aADS,EAET,IAFS,EAGT,KAAK,CAAC,IAAI,IAAG;AACX,QAAI,QAAQ,CAAC,IAAD,CAAR,IAAkB,UAAU,CAAC,MAAD,CAAhC,EAA0C;AACxC,YAAM,EAAE,GAAG,WAAW,CAAC,MAAD,EAAS,IAAT,CAAtB;AACA,aAAO,QAAQ,CAAC,EAAD,CAAR,GAAe,IAAI,CAAC,EAAD,CAAnB,GAA0B,IAAjC;AACD;;AACD,QAAI,QAAQ,CAAC,IAAD,CAAZ,EAAoB;AAClB,aAAO,IAAI,CAAC,IAAD,CAAX;AACD;;AACD,QAAI,QAAQ,CAAC,MAAD,CAAR,IAAoB,QAAQ,CAAC,IAAD,CAA5B,IAAsC,MAAM,CAAC,cAAP,CAAsB,IAAtB,CAA2B,IAA3B,EAAiC,MAAjC,CAA1C,EAA8F;AAC5F,YAAM,EAAE,GAAG,IAAI,CAAC,MAAD,CAAf;AACA,aAAO,QAAQ,CAAC,EAAD,CAAR,GAAe,IAAI,CAAC,EAAD,CAAnB,GAA0B,IAAjC;AACD;;AACD,UAAM,EAAE,GAAG,WAAW,CAAC,MAAD,EAAyB,IAAzB,CAAtB;AACA,WAAO,QAAQ,CAAC,EAAD,CAAR,GAAe,IAAI,CAAC,EAAD,CAAnB,GAA2B,IAAlC;AACD,GAdI,CAHI,EAkBT,WAlBS,CAAX;AAoBD;;AAED,SAAS,oBAAT,CACE,KADF,EAEE,aAFF,EAGE,MAHF,EAIE,QAJF,EAKE,EALF,EAME,WANF,EAM0C;AAExC,SAAO,KAAK,CAAC,GAAN,CAAU,CAAC,IAAD,EAAO,KAAP,KAAgB;AAC/B,UAAM,EAAE,GAAG,WAAW,CAAC,MAAD,EAAS,IAAT,CAAtB;AACA,UAAM,GAAG,GAAG,QAAQ,CAAC,EAAD,CAAR,GAAe,EAAf,GAAoB,MAAM,CAAC,EAAD,CAAtC;AACA,UAAM,IAAI,GAAG,WAAW,CAAC,QAAD,EAAW,IAAX,CAAxB;AACA,WAAO;AACL,MAAA,EAAE,EAAE,GADC;AAEL,MAAA,UAAU,EAAE,aAAa,CAAC,IAAd,CAAmB,CAAC,IAAI,EAAE,CAAC,MAAH,CAAU,CAAV,EAAa,IAAb,CAAxB,CAFP;AAGL,MAAA,SAAS,EAAE,MAAM,CAAC,WAAD,CAAN,GAAsB,WAAW,CAAC,KAAZ,CAAkB,EAAlB,KAAyB,GAA/C,GAAqD,KAH3D;AAIL,MAAA,IAAI,EAAE,QAAQ,CAAC,IAAD,CAAR,GAAiB,IAAjB,GAAwB,MAAM,CAAC,IAAD,CAJ/B;AAKL,MAAA,KAAK,EAAE,IALF;AAML,MAAA;AANK,KAAP;AAQD,GAZM,CAAP;AAaD;;AASD,SAAS,cAAT,CACE,KADF,EAEE,aAFF,EAGE,UAHF,EAIE,kBAJF,EAI8B;AAE5B,QAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,EAAP,CAA7B;AACA,SAAQ,IAAD,IAA8B;AACnC,UAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,QAAP,EAAiB,IAAI,CAAC,KAAtB,CAAxB;AACA,IAAA,UAAU,CAAC,KAAX,GAAmB,KAAK,CAAC,aAAN,GAAsB,EAAtB,GAA2B,QAAQ,CAAC,IAAD,CAAR,GAAiB,IAAjB,GAAwB,MAAM,CAAC,IAAD,CAA5E;AACA,IAAA,kBAAkB,CAAC,KAAnB,GAA2B,MAAM,CAAC,IAAI,CAAC,KAAN,EAAa,kBAAkB,CAAC,KAAnB,IAA4B,EAAzC,CAAjC;;AACA,QAAI,KAAK,CAAC,aAAV,EAAyB;AACvB,MAAA,aAAa;AACd;AACF,GAPD;AAQD;;AAMD,SAAS,aAAT,CACE,WADF,EAEE,aAFF,EAEmC;AAEjC,SAAQ,IAAD,IAA0C;AAC/C,UAAM,OAAO,GAAG,YAAY,CAAC,IAAD,CAA5B;;AACA,QAAI,MAAM,CAAC,OAAD,CAAV,EAAqB;AACnB,MAAA,WAAW,CAAC,KAAZ,GAAoB,OAApB;AACA,MAAA,IAAI,CACF,OADE,EAEF,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAd,CAFD,EAGF,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAD,EAAQ,aAAa,CAAC,KAAtB,CAAhB,CAHH,EAIF,IAAI,CAAC,QAAQ,CAAC,SAAD,CAAT,EAAsB,EAAE,IAAI,MAAM,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,KAAH,EAA9C,CAJF,CAAJ;AAMD;AACF,GAXD;AAYD;;AAMD,SAAS,YAAT,CACE,iBADF,EAEE,WAFF,EAGE,aAHF,EAIE,WAJF,EAKE,UALF,EAKoD;AAElD,WAAS,YAAT,CAAsB,IAAtB,EAAmC;AACjC,IAAA,IAAI,CACF,WAAW,CAAC,KADV,EAEF,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAd,CAFD,EAGF,GAAG,CAAC,MAAM,IAAI,CAAC,CAAD,CAAX,CAHD,EAIF,KAAK,CAAC,KAAK,IACT,MAAM,CACJ,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,KAAK,GAAG,CAAjB,EAAoB,CAApB,CAAH,GAA4B,IAAI,CAAC,GAAL,CAAS,KAAK,GAAG,CAAjB,EAAoB,iBAAiB,CAAC,KAAlB,CAAwB,MAAxB,GAAiC,CAArD,CAD5B,EAEJ,iBAAiB,CAAC,KAFd,CADH,CAJH,EAUF,IAAI,CAAC,QAAQ,CAAC,SAAD,CAAT,EAAsB,OAAO,IAAI,MAAM,UAAU,CAAC,OAAD,CAAjD,CAVF,CAAJ;AAYD;;AACD,SAAO,SAAS,SAAT,CAAmB,KAAnB,EAAuC;AAC5C,QAAI,YAAY,CAAC,KAAD,CAAhB,EAAyB;AACvB,MAAA,KAAK,CAAC,cAAN;;AACA,UAAI,MAAM,CAAC,WAAW,CAAC,KAAb,CAAV,EAA+B;AAC7B,QAAA,WAAW,CAAC,WAAW,CAAC,KAAZ,CAAkB,KAAnB,CAAX;AACD;AACF,KALD,MAKO,IAAI,UAAU,CAAC,KAAD,CAAd,EAAuB;AAC5B,MAAA,KAAK,CAAC,cAAN;;AACA,UAAI,MAAM,CAAC,WAAW,CAAC,KAAb,CAAV,EAA+B;AAC7B,QAAA,WAAW,CAAC,WAAW,CAAC,KAAZ,CAAkB,KAAnB,CAAX;AACD,OAFD,MAEO;AACL,QAAA,QAAQ,CAAC,aAAD,CAAR;AACD;AACF,KAPM,MAOA,IAAI,cAAc,CAAC,KAAD,CAAlB,EAA2B;AAChC,MAAA,KAAK,CAAC,cAAN;AACA,MAAA,YAAY,CAAC,IAAD,CAAZ;AACD,KAHM,MAGA,IAAI,gBAAgB,CAAC,KAAD,CAApB,EAA6B;AAClC,MAAA,KAAK,CAAC,cAAN;AACA,MAAA,YAAY,CAAC,KAAD,CAAZ;AACD,KAHM,MAGA,IAAI,UAAU,CAAC,KAAD,CAAd,EAAuB;AAC5B,MAAA,KAAK,CAAC,cAAN;AACA,MAAA,QAAQ,CAAC,aAAD,CAAR;AACD;AACF,GAvBD;AAwBD;;AAID,SAAS,eAAT,CACE,QADF,EAEE,MAFF,EAGE,SAHF,EAIE,WAJF,EAKE,UALF,EAME,KANF,EAMc;AAEZ,SAAO,SAAS,YAAT,CAAsB,IAAtB,EAAiD,KAAjD,EAA8D;AACnE,WAAO,CAAC,CACN,aADM,EAEN;AACE,MAAA,GAAG,EAAE,IAAI,CAAC,EADZ;AAEE,MAAA,GAAG,EAAG,EAAD,IAAgB;AACnB,YAAI,aAAa,CAAC,EAAD,CAAjB,EAAuB;AACrB,UAAA,QAAQ,CAAC,KAAT,CAAe,KAAf,IAAwB,EAAxB;AACD;AACF,OANH;AAOE,MAAA,EAAE,EAAE,IAAI,CAAC,EAPX;AAQE,MAAA,QAAQ,EAAE,IAAI,CAAC,UARjB;AASE,MAAA,QAAQ,EAAE,IAAI,CAAC,UAAL,GAAkB,CAAC,CAAnB,GAAuB,CATnC;AAUE,uBAAiB,IAAI,CAAC,UAVxB;AAWE,oBAAc,UAAU,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,EAXtD;AAYE,MAAA,KAAK,EAAE;AAAE,sBAAc,IAAI,CAAC;AAArB,OAZT;AAaE,MAAA,OAAO,EAAE,MAAM,WAAW,CAAC,IAAD,CAb5B;AAcE,MAAA,YAAY,EAAE,MAAM,UAAU,CAAC,IAAD,CAdhC;AAeE,MAAA;AAfF,KAFM,EAmBN,MAAO,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,CAAc;AAAE,MAAA,MAAM,EAAE,IAAV;AAAgB,MAAA;AAAhB,KAAd,CAAhB,GAAyD,IAAI,CAAC,IAnB/D,CAAR;AAqBD,GAtBD;AAuBD;;AAED,SAAS,kBAAT,CAA4B,KAA5B,EAAwC;AACtC,SAAO,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,KAAK,EAAE,eAAT;AAA0B,IAAA,QAAQ,EAAE,CAAC;AAArC,GAAP,EAAiD,KAAK,CAAC,MAAN,IAAgB,KAAK,CAAC,MAAN,EAAjE,CAAR;AACD;;AAED,SAAS,kBAAT,CAA4B,KAA5B,EAAwC;AACtC,SAAO,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,KAAK,EAAE,eAAT;AAA0B,IAAA,QAAQ,EAAE,CAAC;AAArC,GAAP,EAAiD,KAAK,CAAC,MAAN,IAAgB,KAAK,CAAC,MAAN,EAAjE,CAAR;AACD;;AAED,SAAS,mBAAT,CAA6B,KAA7B,EAAyC;AACvC,SAAO,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,QAAQ,EAAE,CAAC;AAAb,GAAP,EAAyB,CAC/B,CAAC,CAAC,aAAD,EAAgB;AAAE,IAAA,GAAG,EAAE;AAAP,GAAhB,EAAgC,MAAO,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,oBAAzE,CAD8B,CAAzB,CAAR;AAGD;;AAED,SAAS,iBAAT,CAA2B,UAA3B,EAA2D,KAA3D,EAAuE;AACrE,SAAO,CAAC,CACN,aADM,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,MACE,KAAK,CAAC,KAAN,GACI,KAAK,CAAC,KAAN,CAAY;AAAE,IAAA,WAAW,EAAE;AAAf,GAAZ,CADJ,GAEI,UAAU,GACV,YADU,GAEV,kBAAkB,UAAU,EAV5B,CAAR;AAYD;;AAED,SAAS,kBAAT,GAA2B;AACzB,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,gBADe;AAErB,IAAA,KAAK,EAAE,EACL,GAAG,mBADE;AAEL,SAAG,oBAAoB,EAFlB;AAGL,SAAG,uBAAuB,CAAC,gBAAD,CAHrB;AAIL,SAAG,0BAA0B,EAJxB;AAKL,SAAG,0BAA0B,CAC3B,eAD2B,EAE3B,wBAF2B,CALxB;AASL,MAAA,aAAa,EAAE;AACb,QAAA,IAAI,EAAE,KADO;AAEb,QAAA,QAAQ,EAAE;AAFG,OATV;AAaL,MAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,KADD;AAEL,QAAA,OAAO,EAAE;AAFJ,OAbF;AAiBL,MAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE,QADI;AAEV,QAAA,QAAQ,EAAE;AAFA,OAjBP;AAqBL,MAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT,CADA;AAEN,QAAA,OAAO,EAAE;AAFH,OArBH;AAyBL,MAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT,CADE;AAER,QAAA,OAAO,EAAE;AAFD,OAzBL;AA6BL,MAAA,aAAa,EAAE;AACb,QAAA,IAAI,EAAE,OADO;AAEb,QAAA,OAAO,EAAE;AAFI,OA7BV;AAiCL,MAAA,aAAa,EAAE;AACb,QAAA,IAAI,EAAE,OADO;AAEb,QAAA,OAAO,EAAE;AAFI,OAjCV;AAqCL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,OADK;AAEX,QAAA,OAAO,EAAE;AAFE,OArCR;AAyCL,MAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE,QADI;AAEV,QAAA,QAAQ,EAAE;AAFA;AAzCP,KAFc;;AAgDrB,IAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,MAAA;AAAF,KAAR,EAAiB;AACpB,YAAM;AAAE,QAAA,KAAK,EAAE;AAAT,UAAyB,QAAQ,CACrC,QAAQ,CAAC,MAAM,KAAK,CAAC,UAAN,IAAoB,EAA3B,CAD6B,EAErC,KAAK,CAAC,KAAD,EAAQ,qBAAR,CAFgC,CAAvC;AAIA,YAAM;AAAE,QAAA,KAAK,EAAE;AAAT,UAA2B,QAAQ,CAAC,KAAK,CAAC,KAAD,EAAQ,eAAR,CAAN,EAAgC,KAAK,CAAC,KAAD,EAAQ,wBAAR,CAArC,CAAzC;AAEA,YAAM,QAAQ,GAAG,UAAU,CAAC,EAAD,CAA3B;AACA,YAAM,aAAa,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAI,KAAK,CAAC,UAAV,EAAsB;AACpB,iBAAO,KAAK,CAAC,KAAN,CAAY,MAAZ,CAAmB,KAAK,CAAC,UAAN,CAAiB,WAAW,CAAC,KAA7B,CAAnB,CAAP;AACD,SAFD,MAEO;AACL,gBAAM,EAAE,GAAG,WAAW,CAAC,KAAZ,CAAkB,WAAlB,EAAX;AACA,gBAAM,OAAO,GAAG,KAAK,CAAC,QAAtB;AACA,iBAAO,KAAK,CAAC,KAAN,CAAY,MAAZ,CAAmB,CAAC,IACvB,WAAW,CAAC,OAAD,EAA0B,CAA1B,CAAX,CAA+D,WAA/D,GAA6E,QAA7E,CAAsF,EAAtF,CADG,CAAP;AAGD;AACF,OAV6B,CAA9B;AAWA,MAAA,cAAc,CAAC,MAAK;AAClB,QAAA,QAAQ,CAAC,KAAT,GAAiB,EAAjB;AACD,OAFa,CAAd;AAGA,YAAM,QAAQ,GAA+C,UAAU,CAAC,IAAD,CAAvE;;AACA,eAAS,KAAT,GAAc;AACZ,QAAA,QAAQ,CAAC,KAAT,IAAkB,QAAQ,CAAC,KAAT,CAAe,MAAf,CAAsB,MAAtB,EAAlB;AACD;;AACD,YAAM,WAAW,GAAG,UAAU,CAAC,IAAD,CAA9B;AACA,YAAM,kBAAkB,GAAG,QAAQ,CAAC,MAClC,qBAAqB,CAAC,KAAK,CAAC,aAAP,EAAsB,KAAK,CAAC,MAA5B,CADY,CAAnC;AAGA,YAAM,iBAAiB,GAAG,QAAQ,CAAC,MACjC,oBAAoB,CAClB,aAAa,CAAC,KADI,EAElB,aAAa,CAAC,KAFI,EAGlB,KAAK,CAAC,MAHY,EAIlB,KAAK,CAAC,QAJY,EAKlB,KAAK,CAAC,EALY,EAMlB,WAAW,CAAC,KANM,CADY,CAAlC;AAUA,YAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,KAAlB,CAAwB,MAA/B,CAA9B;AACA,YAAM,WAAW,GAAG,cAAc,CAAC,KAAD,EAAkC,KAAlC,EAAyC,WAAzC,EAAsD,aAAtD,CAAlC;AACA,YAAM,UAAU,GAAG,aAAa,CAAC,WAAD,EAAc,QAAd,CAAhC;AACA,YAAM,SAAS,GAAG,YAAY,CAAC,iBAAD,EAAoB,WAApB,EAAiC,KAAjC,EAAwC,WAAxC,EAAqD,UAArD,CAA9B;AACA,YAAM,YAAY,GAAG,eAAe,CAAC,QAAD,EAAW,aAAX,EAA0B,SAA1B,EAAqC,WAArC,EAAkD,UAAlD,EAA8D,KAA9D,CAApC;AACA,aAAO,MAAK;AACV,eAAO,CAAC,CACN,SADM,EAEN;AACE,UAAA,GAAG,EAAE,QADP;AAEE,UAAA,aAAa,EAAE,KAFjB;AAGE,UAAA,KAAK,EAAE,CAAC,gBAAD,EAAmB;AAAE,2BAAe,KAAK,CAAC;AAAvB,WAAnB;AAHT,SAFM,EAON;AACE,UAAA,OAAO,EAAE,MAAK;AACZ,mBAAO,CAAC,CAAC,MAAD,EAAS;AACf,cAAA,UAAU,EAAE,WAAW,CAAC,KADT;AAEf,cAAA,IAAI,EAAE,MAFS;AAGf,cAAA,IAAI,EAAE,KAAK,CAAC,IAHG;AAIf,cAAA,SAAS,EAAE,KAAK,CAAC,SAJF;AAKf,cAAA,SAAS,EAAE,KAAK,CAAC,SALF;AAMf,cAAA,IAAI,EAAE,KAAK,CAAC,IANG;AAOf,cAAA,SAAS,EAAE,KAAK,CAAC,SAPF;AAQf,cAAA,YAAY,EAAE,KARC;AASf,cAAA,WAAW,EAAE,KAAK,CAAC,WATJ;AAUf,cAAA,IAAI,EAAE,WAVS;AAWf,uCAAyB,kBAAkB,CAAC,KAX7B;AAYf,qCAAwB,GAAD,IAAgB;AACrC,gBAAA,WAAW,CAAC,KAAZ,GAAoB,GAApB;AACD,eAdc;AAef;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAA,MAAM,EAAE,KAAK,CAAC,MAtBC;AAuBf,cAAA;AAvBe,aAAT,CAAR;AAyBD,WA3BH;AA4BE,UAAA,OAAO,EAAE,MAAK;AACZ,gBAAI,KAAJ;;AACA,gBAAI,KAAK,CAAC,SAAV,EAAqB;AACnB,cAAA,KAAK,GAAG,CAAC,mBAAmB,CAAC,KAAD,CAApB,CAAR;AACD,aAFD,MAEO;AACL,cAAA,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAnB,CAAP,GACJ,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAb,EAAoB,KAApB,CAAlB,CADI,GAEJ,iBAAiB,CAAC,KAAlB,CAAwB,GAAxB,CAA4B,YAA5B,CAFJ;;AAGA,kBAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,gBAAA,KAAK,CAAC,OAAN,CAAc,kBAAkB,CAAC,KAAD,CAAhC,EAAyC,CAAC,CAAC,gBAAD,CAA1C;AACD;;AACD,kBAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,gBAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,gBAAD,CAAZ,EAAgC,kBAAkB,CAAC,KAAD,CAAlD;AACD;AACF;;AACD,mBAAO,KAAP;AACD;AA5CH,SAPM,CAAR;AAsDD,OAvDD;AAwDD;;AArJoB,GAAD,CAAtB;AAuJD;;AAED,OAAO,MAAM,aAAa,GAAG,kBAAkB,EAAxC","sourcesContent":["import '../sass/form.sass';\nimport '../../dropdown/dropdown.sass';\nimport './autocomplete.sass';\nimport { Eq } from 'fp-ts/lib/Eq';\nimport { IO } from 'fp-ts/lib/IO';\nimport { StaticUseInputProps } from '../../../composables/input/useInput';\nimport { getUseModelPropsDefinition } from '../../../composables/model/useModel';\nimport { useProxy } from '../../../composables/proxy';\nimport { getEqPropsDefinition } from '../../../composables/shared';\nimport { useThemePropsDefinition } from '../../../composables/theme';\nimport {\n constEmptyArray,\n Extractor,\n extractProp,\n isFunction,\n isHTMLElement,\n isObject,\n isString,\n toggleListItem\n} from '../../../utils/helpers';\nimport { DropdownThemeMap } from '../../dropdown';\nimport BDropdown from '../../dropdown/BDropdown';\nimport { isArrowDownEvent, isArrowUpEvent, isEnterEvent, isEscEvent, isTabEvent } from '../../../utils/eventHelpers';\nimport { constant, constVoid, FunctionN, Predicate } from 'fp-ts/lib/function';\nimport BDropdownDivider from '../../dropdown/BDropdownDivider';\nimport BDropdownItem from '../../dropdown/BDropdownItem';\nimport { head, isEmpty, lookup } from 'fp-ts/lib/Array';\nimport { alt, chain, fold, fromNullable, isSome, map, none, Option, some, toUndefined } from 'fp-ts/lib/Option';\nimport { pipe } from 'fp-ts/lib/pipeable';\nimport {\n defineComponent,\n PropType,\n VNode,\n Ref,\n shallowRef,\n computed,\n onBeforeUpdate,\n nextTick,\n toRef,\n Slots,\n h\n} from 'vue';\n\nimport { BInput } from '../input';\n\nexport interface AutocompleteItem<T> {\n id: string;\n isSelected: boolean;\n isHovered: boolean;\n text: string;\n value: T;\n index: number;\n}\n\nfunction getActiveDescendentId<T>(\n selectedItems: T[],\n itemId: keyof T | ((item: T) => string) | string\n): string | undefined {\n return pipe(\n selectedItems,\n head,\n chain(item => {\n if (isString(item) && isFunction(itemId)) {\n const id = extractProp(itemId, item);\n return isString(id) ? some(id) : none;\n }\n if (isString(item)) {\n return some(item);\n }\n if (isString(itemId) && isObject(item) && Object.hasOwnProperty.call(item, itemId as string)) {\n const id = item[itemId as keyof T];\n return isString(id) ? some(id) : none;\n }\n const id = extractProp(itemId as Extractor<T>, item);\n return isString(id) ? some(id) : (none as Option<string>);\n }),\n toUndefined\n );\n}\n\nfunction getAutocompleteItems<T>(\n items: T[],\n selectedItems: T[],\n itemId: keyof T | ((item: T) => string),\n itemText: keyof T | ((item: T) => string),\n eq: Eq<T>,\n hoveredItem: Option<AutocompleteItem<T>>\n): AutocompleteItem<T>[] {\n return items.map((item, index) => {\n const id = extractProp(itemId, item);\n const nid = isString(id) ? id : String(id);\n const text = extractProp(itemText, item);\n return {\n id: nid,\n isSelected: selectedItems.some(i => eq.equals(i, item)),\n isHovered: isSome(hoveredItem) ? hoveredItem.value.id === nid : false,\n text: isString(text) ? text : String(text),\n value: item,\n index\n };\n });\n}\n\ninterface GetSetSelectedProps<T> {\n eq: Eq<T>;\n itemText: Extractor<T>;\n clearOnSelect: boolean;\n closeOnSelect: boolean;\n}\n\nfunction getSetSelected<T>(\n props: GetSetSelectedProps<T>,\n closeDropdown: IO<void>,\n inputModel: Ref<string>,\n selectedItemsModel: Ref<T[]>\n): SetSelected<T> {\n const toggle = toggleListItem(props.eq);\n return (item: AutocompleteItem<T>) => {\n const text = extractProp(props.itemText, item.value);\n inputModel.value = props.clearOnSelect ? '' : isString(text) ? text : String(text);\n selectedItemsModel.value = toggle(item.value, selectedItemsModel.value || []);\n if (props.closeOnSelect) {\n closeDropdown();\n }\n };\n}\n\ninterface SetSelected<T> {\n (item: AutocompleteItem<T>): void;\n}\n\nfunction getSetHovered<T>(\n hoveredItem: Ref<Option<AutocompleteItem<T>>>,\n templateItems: Ref<HTMLElement[]>\n): SetHovered<T> {\n return (item: AutocompleteItem<T> | undefined) => {\n const newItem = fromNullable(item);\n if (isSome(newItem)) {\n hoveredItem.value = newItem;\n pipe(\n newItem,\n map(item => item.index),\n chain(index => lookup(index, templateItems.value)),\n fold(constant(constVoid), li => () => li.focus && li.focus())\n )();\n }\n };\n}\n\ninterface SetHovered<T> {\n (item?: AutocompleteItem<T> | undefined): void;\n}\n\nfunction getOnKeydown<T>(\n autocompleteItems: Ref<AutocompleteItem<T>[]>,\n hoveredItem: Ref<Option<AutocompleteItem<T>>>,\n closeDropdown: IO<void>,\n setSelected: FunctionN<[AutocompleteItem<T>], void>,\n setHovered: FunctionN<[AutocompleteItem<T>], void>\n) {\n function onArrowPress(isUp: boolean) {\n pipe(\n hoveredItem.value,\n map(item => item.index),\n alt(() => some(0)),\n chain(index =>\n lookup(\n isUp ? Math.max(index - 1, 0) : Math.min(index + 1, autocompleteItems.value.length - 1),\n autocompleteItems.value as AutocompleteItem<T>[]\n )\n ),\n fold(constant(constVoid), newItem => () => setHovered(newItem))\n )();\n }\n return function onKeydown(event: KeyboardEvent) {\n if (isEnterEvent(event)) {\n event.preventDefault();\n if (isSome(hoveredItem.value)) {\n setSelected(hoveredItem.value.value);\n }\n } else if (isTabEvent(event)) {\n event.preventDefault();\n if (isSome(hoveredItem.value)) {\n setSelected(hoveredItem.value.value);\n } else {\n nextTick(closeDropdown);\n }\n } else if (isArrowUpEvent(event)) {\n event.preventDefault();\n onArrowPress(true);\n } else if (isArrowDownEvent(event)) {\n event.preventDefault();\n onArrowPress(false);\n } else if (isEscEvent(event)) {\n event.preventDefault();\n nextTick(closeDropdown);\n }\n };\n}\n\ntype OnKeydown = ReturnType<typeof getOnKeydown>;\n\nfunction getGenerateItem<T>(\n itemsRef: Ref<HTMLElement[]>,\n length: Ref<number>,\n onKeydown: OnKeydown,\n setSelected: SetSelected<T>,\n setHovered: SetHovered<T>,\n slots: Slots\n) {\n return function generateItem(item: AutocompleteItem<T>, index: number): VNode {\n return h(\n BDropdownItem,\n {\n key: item.id,\n ref: (el: unknown) => {\n if (isHTMLElement(el)) {\n itemsRef.value[index] = el;\n }\n },\n id: item.id,\n isActive: item.isSelected,\n tabindex: item.isSelected ? -1 : 0,\n 'aria-selected': item.isSelected,\n 'aria-label': `Option ${index + 1} of ${length.value}`,\n class: { 'is-hovered': item.isHovered },\n onClick: () => setSelected(item),\n onMouseenter: () => setHovered(item),\n onKeydown\n },\n () => (slots.default ? slots.default({ option: item, index }) : item.text)\n );\n };\n}\n\nfunction generateHeaderItem(slots: Slots): VNode {\n return h('li', { class: 'dropdown-item', tabindex: -1 }, slots.header && slots.header());\n}\n\nfunction generateFooterItem(slots: Slots): VNode {\n return h('li', { class: 'dropdown-item', tabindex: -1 }, slots.footer && slots.footer());\n}\n\nfunction generateLoadingItem(slots: Slots): VNode {\n return h('li', { tabindex: -1 }, [\n h(BDropdownItem, { tag: 'div' }, () => (slots.loading ? slots.loading() : 'Loading results...'))\n ]);\n}\n\nfunction generateEmptyItem(modelValue: string | undefined, slots: Slots) {\n return h(\n BDropdownItem,\n {\n class: 'is-disabled'\n },\n () =>\n slots.empty\n ? slots.empty({ searchValue: modelValue })\n : modelValue\n ? `No results`\n : `No results for ${modelValue}`\n );\n}\n\nfunction defineAutocomplete<T>() {\n return defineComponent({\n name: 'b-autocomplete',\n props: {\n ...StaticUseInputProps,\n ...getEqPropsDefinition<T>(),\n ...useThemePropsDefinition(DropdownThemeMap),\n ...getUseModelPropsDefinition<string>(),\n ...getUseModelPropsDefinition<T[], 'selectedItems', 'onUpdate:selectedItems'>(\n 'selectedItems',\n 'onUpdate:selectedItems'\n ),\n selectedItems: {\n type: Array as PropType<T[]>,\n required: true as const\n },\n items: {\n type: Array as PropType<T[]>,\n default: constEmptyArray\n },\n itemFilter: {\n type: Function as PropType<FunctionN<[string], Predicate<T>>>,\n required: false\n },\n itemId: {\n type: [String, Function] as PropType<Extractor<T>>,\n default: 'id'\n },\n itemText: {\n type: [String, Function] as PropType<Extractor<T>>,\n default: 'text'\n },\n closeOnSelect: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n clearOnSelect: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n openOnFocus: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n onSelected: {\n type: Function as PropType<FunctionN<[T], void>>,\n required: false\n }\n },\n setup(props, { slots }) {\n const { value: searchValue } = useProxy(\n computed(() => props.modelValue ?? ''),\n toRef(props, 'onUpdate:modelValue')\n );\n const { value: selectedItems } = useProxy(toRef(props, 'selectedItems'), toRef(props, 'onUpdate:selectedItems'));\n\n const itemsRef = shallowRef([] as HTMLElement[]);\n const filteredItems = computed(() => {\n if (props.itemFilter) {\n return props.items.filter(props.itemFilter(searchValue.value));\n } else {\n const sv = searchValue.value.toLowerCase();\n const extract = props.itemText;\n return props.items.filter(i =>\n ((extractProp(extract as Extractor<T>, i) as unknown) as string).toLowerCase().includes(sv)\n );\n }\n });\n onBeforeUpdate(() => {\n itemsRef.value = [];\n });\n const dropdown: Ref<InstanceType<typeof BDropdown> | null> = shallowRef(null);\n function close() {\n dropdown.value && dropdown.value.toggle.setOff();\n }\n const hoveredItem = shallowRef(none as Option<AutocompleteItem<T>>);\n const activeDescendentId = computed(() =>\n getActiveDescendentId(props.selectedItems, props.itemId as Extractor<T>)\n );\n const autocompleteItems = computed(() =>\n getAutocompleteItems(\n filteredItems.value,\n selectedItems.value,\n props.itemId as Extractor<T>,\n props.itemText as Extractor<T>,\n props.eq,\n hoveredItem.value\n )\n );\n const numberOfItems = computed(() => autocompleteItems.value.length);\n const setSelected = getSetSelected(props as GetSetSelectedProps<T>, close, searchValue, selectedItems);\n const setHovered = getSetHovered(hoveredItem, itemsRef);\n const onKeydown = getOnKeydown(autocompleteItems, hoveredItem, close, setSelected, setHovered);\n const generateItem = getGenerateItem(itemsRef, numberOfItems, onKeydown, setSelected, setHovered, slots);\n return () => {\n return h(\n BDropdown,\n {\n ref: dropdown,\n isMobileModal: false,\n class: ['b-autocomplete', { 'is-expanded': props.isExpanded }]\n },\n {\n trigger: () => {\n return h(BInput, {\n modelValue: searchValue.value,\n type: 'text',\n size: props.size,\n isLoading: props.isLoading,\n isRounded: props.isRounded,\n icon: props.icon,\n maxlength: props.maxlength,\n autocomplete: 'off',\n placeholder: props.placeholder,\n role: 'searchbox',\n 'aria-activedescendant': activeDescendentId.value,\n 'onUpdate:modelValue': (val: string) => {\n searchValue.value = val;\n },\n // onFocus: () => {\n // nextTick().then(() => {\n // if (props.openOnFocus && toggle.isOff.value) {\n // toggle.setOn();\n // }\n // });\n // },\n onBlur: props.onBlur,\n onKeydown\n });\n },\n default: () => {\n let nodes: VNode[];\n if (props.isLoading) {\n nodes = [generateLoadingItem(slots)];\n } else {\n nodes = isEmpty(autocompleteItems.value)\n ? [generateEmptyItem(searchValue.value, slots)]\n : autocompleteItems.value.map(generateItem);\n if (slots.header) {\n nodes.unshift(generateHeaderItem(slots), h(BDropdownDivider));\n }\n if (slots.footer) {\n nodes.push(h(BDropdownDivider), generateFooterItem(slots));\n }\n }\n return nodes;\n }\n }\n );\n };\n }\n });\n}\n\nexport const BAutocomplete = defineAutocomplete<unknown>();\n"],"sourceRoot":"","file":"BAutocomplete.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/autocomplete/index.d.ts b/node_modules/buetify/lib/components/form/autocomplete/index.d.ts new file mode 100755 index 0000000..08c3206 --- /dev/null +++ b/node_modules/buetify/lib/components/form/autocomplete/index.d.ts @@ -0,0 +1 @@ +export * from './BAutocomplete'; diff --git a/node_modules/buetify/lib/components/form/autocomplete/index.js b/node_modules/buetify/lib/components/form/autocomplete/index.js new file mode 100755 index 0000000..383ad75 --- /dev/null +++ b/node_modules/buetify/lib/components/form/autocomplete/index.js @@ -0,0 +1,2 @@ +export * from './BAutocomplete'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/autocomplete/index.js.map b/node_modules/buetify/lib/components/form/autocomplete/index.js.map new file mode 100755 index 0000000..4e3b8e6 --- /dev/null +++ b/node_modules/buetify/lib/components/form/autocomplete/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/autocomplete/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAd","sourcesContent":["export * from './BAutocomplete';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/checkbox/BCheckbox.d.ts b/node_modules/buetify/lib/components/form/checkbox/BCheckbox.d.ts new file mode 100755 index 0000000..3d7ae36 --- /dev/null +++ b/node_modules/buetify/lib/components/form/checkbox/BCheckbox.d.ts @@ -0,0 +1,1991 @@ +import './checkbox.sass'; +import '../sass/form.sass'; +export declare const defineCheckbox: <T>() => import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ [K in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K]; } & { [K_1 in Exclude<"variant", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"size", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"name", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isFocused", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isDisabled", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"label", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"labelFor", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onFocus", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onBlur", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"focusOnMount", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onUpdate:modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"disableIfReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isRequired", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"eq", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"falseValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"nativeValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"trueValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isMultiple", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isIndeterminate", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)>]?: ({ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1]) | undefined; }>, { [K_2 in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2]; }>; +export declare const BCheckbox: import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<unknown>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[unknown], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[unknown], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<unknown>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<unknown>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<unknown>; + default: unknown; + }; + falseValue: { + type: import("vue").PropType<unknown>; + default: unknown; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isFocused: boolean; + isDisabled: boolean; + label: string; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[unknown], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + isRequired: boolean; + eq: import("fp-ts/lib/Eq").Eq<unknown>; + falseValue: unknown; + nativeValue: null; + trueValue: unknown; + isMultiple: boolean; + isIndeterminate: boolean; +} & { + name?: string | undefined; + labelFor?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: unknown; +}>, { + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isFocused: boolean; + isDisabled: boolean; + label: string; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[unknown], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + isRequired: boolean; + eq: import("fp-ts/lib/Eq").Eq<unknown>; + falseValue: unknown; + nativeValue: null; + trueValue: unknown; + isMultiple: boolean; + isIndeterminate: boolean; +}>; diff --git a/node_modules/buetify/lib/components/form/checkbox/BCheckbox.js b/node_modules/buetify/lib/components/form/checkbox/BCheckbox.js new file mode 100755 index 0000000..b85f94e --- /dev/null +++ b/node_modules/buetify/lib/components/form/checkbox/BCheckbox.js @@ -0,0 +1,6 @@ +import "../../../../src/components/form/checkbox/checkbox.sass"; +import "../../../../src/components/form/sass/form.sass"; +import { useSelectionControl } from '../shared/useSelectionControl'; +export const defineCheckbox = useSelectionControl('checkbox', 'checkbox', 'b-checkbox', 'b-checkbox checkbox'); +export const BCheckbox = defineCheckbox(); +//# sourceMappingURL=BCheckbox.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/checkbox/BCheckbox.js.map b/node_modules/buetify/lib/components/form/checkbox/BCheckbox.js.map new file mode 100755 index 0000000..1f934f8 --- /dev/null +++ b/node_modules/buetify/lib/components/form/checkbox/BCheckbox.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/checkbox/BCheckbox.ts"],"names":[],"mappings":"AAAA,OAAO,wDAAP;AACA,OAAO,gDAAP;AACA,SAAS,mBAAT,QAAoC,+BAApC;AAEA,OAAO,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAD,EAAa,UAAb,EAAyB,YAAzB,EAAuC,qBAAvC,CAA1C;AAEP,OAAO,MAAM,SAAS,GAAG,cAAc,EAAhC","sourcesContent":["import './checkbox.sass';\nimport '../sass/form.sass';\nimport { useSelectionControl } from '../shared/useSelectionControl';\n\nexport const defineCheckbox = useSelectionControl('checkbox', 'checkbox', 'b-checkbox', 'b-checkbox checkbox');\n\nexport const BCheckbox = defineCheckbox<unknown>();\n"],"sourceRoot":"","file":"BCheckbox.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/checkbox/index.d.ts b/node_modules/buetify/lib/components/form/checkbox/index.d.ts new file mode 100755 index 0000000..02dc7b2 --- /dev/null +++ b/node_modules/buetify/lib/components/form/checkbox/index.d.ts @@ -0,0 +1,3 @@ +import { BCheckbox, defineCheckbox } from './BCheckbox'; +export { BCheckbox, defineCheckbox }; +export default BCheckbox; diff --git a/node_modules/buetify/lib/components/form/checkbox/index.js b/node_modules/buetify/lib/components/form/checkbox/index.js new file mode 100755 index 0000000..9021da0 --- /dev/null +++ b/node_modules/buetify/lib/components/form/checkbox/index.js @@ -0,0 +1,4 @@ +import { BCheckbox, defineCheckbox } from './BCheckbox'; +export { BCheckbox, defineCheckbox }; +export default BCheckbox; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/checkbox/index.js.map b/node_modules/buetify/lib/components/form/checkbox/index.js.map new file mode 100755 index 0000000..d8d6020 --- /dev/null +++ b/node_modules/buetify/lib/components/form/checkbox/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/checkbox/index.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,EAAoB,cAApB,QAA0C,aAA1C;AAEA,SAAS,SAAT,EAAoB,cAApB;AAEA,eAAe,SAAf","sourcesContent":["import { BCheckbox, defineCheckbox } from './BCheckbox';\n\nexport { BCheckbox, defineCheckbox };\n\nexport default BCheckbox;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepicker.d.ts b/node_modules/buetify/lib/components/form/datepicker/BDatepicker.d.ts new file mode 100755 index 0000000..86105b0 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepicker.d.ts @@ -0,0 +1,557 @@ +import '../../pagination/pagination.sass'; +import '../../dropdown/dropdown.sass'; +import './datepicker.sass'; +import { DateEvent, EventIndicator, MonthNumber } from './shared'; +import { WeekdayNumber } from './utils'; +import { FunctionN } from 'fp-ts/lib/function'; +import { PropType, VNode, ComponentOptions, FunctionalComponent, ExtractPropTypes } from 'vue'; +declare type Component = ComponentOptions | FunctionalComponent; +export declare type DatepickerPosition = 'is-top-right' | 'is-top-left' | 'is-bottom-left'; +export interface DatepickerIcons { + next: Component; + previous: Component; + calendar: Component; +} +export declare function getDatepickerIcons(icons: Partial<DatepickerIcons>): DatepickerIcons; +declare const BDatepickerPropsDefinition: { + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + year: { + type: NumberConstructor; + default: number; + }; + 'onUpdate:year': { + type: PropType<FunctionN<[number], void>>; + required: boolean; + }; + month: { + type: PropType<MonthNumber>; + default: MonthNumber; + }; + 'onUpdate:month': { + type: PropType<FunctionN<[MonthNumber], void>>; + required: boolean; + }; + dayNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + monthNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + firstDayOfWeek: { + type: PropType<WeekdayNumber>; + default: 0; + }; + events: { + type: PropType<DateEvent[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + minDate: { + type: PropType<Date>; + required: boolean; + }; + maxDate: { + type: PropType<Date>; + required: boolean; + }; + isDisabled: { + type: BooleanConstructor; + default: boolean; + }; + unselectableDates: { + type: PropType<Date[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + unselectableDaysOfWeek: { + type: PropType<number[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + selectableDates: { + type: PropType<Date[]>; + }; + showWeekNumber: { + type: PropType<boolean>; + default: false; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + placeholder: { + type: PropType<string>; + }; + useMobileNative: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<import("../../dropdown/BDropdown").DropdownPosition>; + }; + indicators: { + type: PropType<EventIndicator>; + default: "bars"; + }; + yearsRange: { + type: PropType<[number, number]>; + default: import("fp-ts/lib/function").Lazy<readonly [-5, 3]>; + }; + closeOnSelect: { + type: PropType<boolean>; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + icons: { + type: PropType<DatepickerIcons>; + default: import("fp-ts/lib/function").Lazy<DatepickerIcons>; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + id: PropType<string>; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isInline: { + type: PropType<boolean>; + default: boolean; + }; + isMobileModal: { + type: PropType<boolean>; + default: boolean; + }; + menuTag: { + type: PropType<string>; + default: string; + }; + transition: { + type: PropType<import("../../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../../..").Transition>; + }; + onToggle: { + type: PropType<FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type BDatepickerProps = ExtractPropTypes<typeof BDatepickerPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + year: { + type: NumberConstructor; + default: number; + }; + 'onUpdate:year': { + type: PropType<FunctionN<[number], void>>; + required: boolean; + }; + month: { + type: PropType<MonthNumber>; + default: MonthNumber; + }; + 'onUpdate:month': { + type: PropType<FunctionN<[MonthNumber], void>>; + required: boolean; + }; + dayNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + monthNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + firstDayOfWeek: { + type: PropType<WeekdayNumber>; + default: 0; + }; + events: { + type: PropType<DateEvent[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + minDate: { + type: PropType<Date>; + required: boolean; + }; + maxDate: { + type: PropType<Date>; + required: boolean; + }; + isDisabled: { + type: BooleanConstructor; + default: boolean; + }; + unselectableDates: { + type: PropType<Date[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + unselectableDaysOfWeek: { + type: PropType<number[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + selectableDates: { + type: PropType<Date[]>; + }; + showWeekNumber: { + type: PropType<boolean>; + default: false; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + placeholder: { + type: PropType<string>; + }; + useMobileNative: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<import("../../dropdown/BDropdown").DropdownPosition>; + }; + indicators: { + type: PropType<EventIndicator>; + default: "bars"; + }; + yearsRange: { + type: PropType<[number, number]>; + default: import("fp-ts/lib/function").Lazy<readonly [-5, 3]>; + }; + closeOnSelect: { + type: PropType<boolean>; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + icons: { + type: PropType<DatepickerIcons>; + default: import("fp-ts/lib/function").Lazy<DatepickerIcons>; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + id: PropType<string>; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isInline: { + type: PropType<boolean>; + default: boolean; + }; + isMobileModal: { + type: PropType<boolean>; + default: boolean; + }; + menuTag: { + type: PropType<string>; + default: string; + }; + transition: { + type: PropType<import("../../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../../..").Transition>; + }; + onToggle: { + type: PropType<FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + hasPopup: boolean; + transition: import("../../..").Transition; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + icons: DatepickerIcons; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + isHoverable: boolean; + isInline: boolean; + isMobileModal: boolean; + menuTag: string; + focusOnMount: boolean; + "onUpdate:modelValue": FunctionN<[Date | Date[]], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + closeOnSelect: boolean; + isMultiple: boolean; + events: DateEvent[]; + indicators: EventIndicator; + showWeekNumber: boolean; + month: MonthNumber; + unselectableDates: Date[]; + unselectableDaysOfWeek: number[]; + year: number; + dayNames: string[]; + monthNames: string[]; + firstDayOfWeek: WeekdayNumber; + useMobileNative: boolean; + yearsRange: [number, number]; +} & { + onToggle?: FunctionN<[boolean], void> | undefined; + onSetOn?: import("fp-ts/lib/IO").IO<void> | undefined; + onSetOff?: import("fp-ts/lib/IO").IO<void> | undefined; + icon?: any; + type?: string | undefined; + position?: "is-top-right" | "is-top-left" | "is-bottom-left" | undefined; + id?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: Date | Date[] | undefined; + autocomplete?: string | undefined; + placeholder?: string | undefined; + maxlength?: string | number | undefined; + minDate?: Date | undefined; + maxDate?: Date | undefined; + selectableDates?: Date[] | undefined; + "onUpdate:year"?: FunctionN<[number], void> | undefined; + "onUpdate:month"?: FunctionN<[MonthNumber], void> | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + hasPopup: boolean; + transition: import("../../..").Transition; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + icons: DatepickerIcons; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + isHoverable: boolean; + isInline: boolean; + isMobileModal: boolean; + menuTag: string; + focusOnMount: boolean; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + closeOnSelect: boolean; + isMultiple: boolean; + events: DateEvent[]; + indicators: EventIndicator; + showWeekNumber: boolean; + month: MonthNumber; + unselectableDates: Date[]; + unselectableDaysOfWeek: number[]; + year: number; + dayNames: string[]; + monthNames: string[]; + firstDayOfWeek: WeekdayNumber; + useMobileNative: boolean; + yearsRange: [number, number]; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepicker.js b/node_modules/buetify/lib/components/form/datepicker/BDatepicker.js new file mode 100755 index 0000000..415a3b7 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepicker.js @@ -0,0 +1,541 @@ +import "../../../../src/components/pagination/pagination.sass"; +import "../../../../src/components/dropdown/dropdown.sass"; +import "../../../../src/components/form/datepicker/datepicker.sass"; +import { useDisable, UseDisablePropsDefinition } from '../../../composables/disable'; +import { useEqRef } from '../../../composables/eqRef'; +import { useFieldData } from '../../../composables/fieldData'; +import { getUseInputPropsDefinition } from '../../../composables/input/useInput'; +import { useProxy } from '../../../composables/proxy/useProxy'; +import { DEFAULT_DAY_NAMES, DEFAULT_MONTH_NAMES } from './shared'; +import { addDays, eqSerialDate, isDate } from './utils'; +import { BInput } from '../input/BInput'; +import { isArrowDownEvent, isArrowLeftEvent, isArrowRightEvent, isArrowUpEvent, isEnterEvent, isEscEvent, isSpaceEvent } from '../../../utils/eventHelpers'; +import { head, isNonEmpty, range } from 'fp-ts/lib/Array'; +import { constant } from 'fp-ts/lib/function'; +import { alt, chain, fromNullable, getEq, isNone, isSome, some } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import BDropdown, { BDropdownPropsDefinition } from '../../dropdown/BDropdown'; +import BDatepickerTable from './BDatepickerTable'; +import BField from '../field/BField'; +import { BSelect } from '../select/BSelect'; +import { computed, onUnmounted, onMounted, defineAsyncComponent, defineComponent, h, shallowRef, watch, toRef } from 'vue'; +import { constEmptyArray, isString, toggleListItem } from '../../../utils/helpers'; +const DEFAULT_DATEPICKER_ICONS = { + previous: defineAsyncComponent(() => import('../../icons/angleLeft')), + next: defineAsyncComponent(() => import('../../icons/angleRight')), + calendar: defineAsyncComponent(() => import('../../icons/calendar')) +}; +export function getDatepickerIcons(icons) { + return { ...DEFAULT_DATEPICKER_ICONS, + ...icons + }; +} +const BDatepickerPropsDefinition = { ...BDropdownPropsDefinition, + ...UseDisablePropsDefinition, + ...getUseInputPropsDefinition(), + modelValue: { + type: [Array, Date] + }, + 'onUpdate:modelValue': { + type: Function, + required: true + }, + year: { + type: Number, + default: new Date().getFullYear() + }, + 'onUpdate:year': { + type: Function, + required: false + }, + month: { + type: Number, + default: new Date().getMonth() + }, + 'onUpdate:month': { + type: Function, + required: false + }, + dayNames: { + type: Array, + default: constant(DEFAULT_DAY_NAMES) + }, + monthNames: { + type: Array, + default: constant(DEFAULT_MONTH_NAMES) + }, + firstDayOfWeek: { + type: Number, + default: 0 + }, + events: { + type: Array, + default: constEmptyArray + }, + minDate: { + type: Date, + required: false + }, + maxDate: { + type: Date, + required: false + }, + isDisabled: { + type: Boolean, + default: false + }, + unselectableDates: { + type: Array, + default: constEmptyArray + }, + unselectableDaysOfWeek: { + type: Array, + default: constEmptyArray + }, + selectableDates: { + type: Object + }, + showWeekNumber: { + type: Boolean, + default: false + }, + isMultiple: { + type: Boolean, + default: false + }, + placeholder: { + type: String + }, + useMobileNative: { + type: Boolean, + default: false + }, + position: { + type: String + }, + indicators: { + type: String, + default: 'bars' + }, + yearsRange: { + type: Array, + default: constant([-5, 3]) + }, + closeOnSelect: { + type: Boolean, + default: true + }, + isReadonly: { + type: Boolean, + default: true + }, + useNativeValidation: { + type: Boolean, + default: false + }, + // openOnFocus: { + // type: Boolean as PropType<boolean>, + // default: true + // }, + icons: { + type: Object, + default: constant(DEFAULT_DATEPICKER_ICONS) + } +}; + +function useNative(props) { + return props.useMobileNative && !props.isInline; +} + +const useFormattedDate = Intl.DateTimeFormat('default', { + year: 'numeric', + month: 'numeric', + day: 'numeric' +}).format; + +function useFormattedModelValue(modelValue) { + return Array.isArray(modelValue) ? modelValue.map(useFormattedDate).join(', ') : modelValue ? useFormattedDate(modelValue) : null; +} + +function parseInputString(str) { + const splits = str.split(',').map(s => s.trim()); + return splits.map(s => new Date(s)).filter(d => isDate(d) && !isNaN(d.getTime())); +} + +function generateInput(props, context, data) { + const isMobile = useNative(props); + return h(BInput, { + max: props.maxDate ? useFormattedDate(props.maxDate) : null, + min: props.minDate ? useFormattedDate(props.minDate) : null, + autocomplete: 'off', + type: isMobile ? 'date' : 'text', + modelValue: useFormattedModelValue(data.modelValue.value), + 'onUpdate:modelValue': val => { + data.modelValue.value = parseInputString(val); + }, + placeholder: props.placeholder, + size: props.size, + icon: props.icons.calendar, + isRounded: props.isRounded, + isDisabled: props.isDisabled, + isReadonly: props.isReadonly, + isLoading: props.isLoading, + useNativeValidation: props.useNativeValidation // onFocus: () => { + // if (!isMobile && props.openOnFocus && toggle) { + // if (toggle.isOff.value) { + // console.log('focus-set-on') + // toggle.setOn(); + // Date.now() + // } + // } + // } + + }); +} + +function generateButton(props, data, isNext) { + return h('button', { + class: isNext ? 'pagination-next datepicker-next' : 'pagination-previous datepicker-previous', + disabled: data.isDisabled, + onClick: isNext ? data.nextMonth : data.previousMonth, + onKeydown: e => { + if (isEnterEvent(e) || isSpaceEvent(e)) { + e.preventDefault(); + isNext ? data.nextMonth() : data.previousMonth(); + } + } + }, [h(isNext ? props.icons.next : props.icons.previous, { + variant: 'is-link', + isThemeable: false + })]); +} + +function generateYearSelect(props, data) { + return h(BSelect, { + items: data.years, + modelValue: data.year.value, + isDisabled: data.isDisabled, + size: props.size, + 'onUpdate:modelValue': data.setYear + }); +} + +function generateMonthSelect(props, data) { + return h(BSelect, { + items: data.months, + isDisabled: data.isDisabled, + size: props.size, + modelValue: data.month.value, + 'onUpdate:modelValue': data.setMonth + }); +} + +function generateSelects(props, data) { + return h('div', { + class: 'pagination-list' + }, [h(BField, { + class: 'is-marginless' + }, () => [generateMonthSelect(props, data), generateYearSelect(props, data)])]); +} + +function generateDefaultHeaderContents(props, data) { + return h('div', { + class: ['pagination field is-centered', props.size] + }, [generateButton(props, data, false), generateSelects(props, data), generateButton(props, data, true)]); +} + +function generateHeader(props, context, data) { + return h('header', { + class: 'datepicker-header' + }, context.slots.header ? context.slots.header(data) : [generateDefaultHeaderContents(props, data)]); +} + +function generateDatepickerTable(props, context, data) { + return h(BDatepickerTable, { + modelValue: data.modelValue.value, + 'onUpdate:modelValue': val => { + data.modelValue.value = val; + }, + focusedDate: data.focusedDate.value, + 'onUpdate:focusedDate': val => { + data.focusedDate.value = val; + }, + dayNames: props.dayNames, + monthNames: props.monthNames, + firstDayOfWeek: props.firstDayOfWeek, + minDate: props.minDate, + maxDate: props.maxDate, + month: data.month.value, + year: data.year.value, + isDisabled: data.isDisabled, + unselectableDates: props.unselectableDates, + unselectableDaysOfWeek: props.unselectableDaysOfWeek, + selectableDates: props.selectableDates, + events: props.events, + indicators: props.indicators, + showWeekNumber: props.showWeekNumber + }); +} + +function generateFooter(context) { + return h('footer', { + class: 'datepicker-footer' + }, context.slots.footer && context.slots.footer()); +} + +function generateCalendar(props, context, data) { + return h('section', { + class: 'datepicker-content', + 'aria-label': 'Datepicker calendar' + }, [generateDatepickerTable(props, context, data)]); +} + +function generateDatepickerBody(props, context, data) { + const nodes = [generateHeader(props, context, data), generateCalendar(props, context, data)]; + + if (context.slots.footer) { + nodes.push(generateFooter(context)); + } + + return h('div', nodes); +} + +function generateDropdown(props, context, data, dropdown) { + return h(BDropdown, { + ref: dropdown, + position: props.position, + isDisabled: props.isDisabled, + isInline: props.isInline + }, { + trigger: () => { + return generateInput(props, context, data); + }, + default: () => generateDatepickerBody(props, context, data) + }); +} + +function getMonths(props, focusedMonth) { + return props.monthNames.map((month, index) => ({ + value: index, + text: month, + isDisabled: false, + isSelected: focusedMonth === index + })); +} + +function getYears(props, focusedYear) { + const currentYear = new Date().getFullYear(); + return range(props.yearsRange[0], props.yearsRange[1]).map(inc => currentYear + inc).map(year => ({ + value: year, + text: year.toString(), + isDisabled: false, + isSelected: focusedYear === year + })); +} + +function getSetPreviousMonth(props, month, year) { + return e => { + if (e) { + e.preventDefault(); + } + + if (!props.isDisabled) { + if (month.value > 0) { + month.value = month.value - 1; + } else { + month.value = 11; + year.value = year.value - 1; + } + } + }; +} + +function getSetNextMonth(props, month, year) { + return e => { + if (e) { + e.preventDefault(); + } + + if (!props.isDisabled) { + const mv = month.value; + + if (mv < 11) { + month.value = mv + 1; + } else { + month.value = 0; + year.value = year.value + 1; + } + } + }; +} + +function getSetMonth(monthRef) { + return month => { + if (isString(month)) { + const newVal = fromNullable(parseInt(month, 10)); + + if (isSome(newVal)) { + monthRef.value = newVal.value; + } + } else { + monthRef.value = month; + } + }; +} + +function getSetYear(yearRef) { + return year => { + if (isString(year)) { + const newVal = fromNullable(parseInt(year, 10)); + + if (isSome(newVal)) { + yearRef.value = newVal.value; + } + } else { + yearRef.value = year; + } + }; +} + +const toggleSerialDate = toggleListItem(eqSerialDate); +export default defineComponent({ + name: 'b-datepicker', + props: BDatepickerPropsDefinition, + + setup(props, context) { + const fieldData = useFieldData(); + const isDisabled = useDisable(props); + const dropdown = shallowRef(null); + const internalValue = shallowRef(props.modelValue); + watch(() => props.modelValue, newVal => { + internalValue.value = newVal; + }); + const modelValue = computed({ + get() { + return internalValue.value; + }, + + set(val) { + if (!val) { + return; + } + + if (Array.isArray(val) && props.isMultiple || isDate(val)) { + props['onUpdate:modelValue'](val); + internalValue.value = val; + } else if (props.isMultiple && isDate(val)) { + const newVal = toggleSerialDate(val, internalValue.value == undefined ? [] : Array.isArray(internalValue.value) ? internalValue.value : [internalValue.value]); + props['onUpdate:modelValue'](newVal); + internalValue.value = newVal; + } else if (Array.isArray(val) && isNonEmpty(val)) { + props['onUpdate:modelValue'](val[0]); + internalValue.value = val[0]; + } + + if (props.closeOnSelect) { + dropdown.value && dropdown.value.toggle.setOff(); + } + } + + }); + const focusedDate = useEqRef(getEq(eqSerialDate))(pipe(fromNullable(props.modelValue), chain(v => Array.isArray(v) ? head(v) : some(v)), alt(() => some(new Date())))); + const { + value: month + } = useProxy(toRef(props, 'month'), toRef(props, 'onUpdate:month')); + const { + value: year + } = useProxy(toRef(props, 'year'), toRef(props, 'onUpdate:year')); + const nextMonth = getSetNextMonth(props, month, year); + const previousMonth = getSetPreviousMonth(props, month, year); + const setMonth = getSetMonth(month); + const setYear = getSetYear(year); + + function onKeydown(e) { + if (dropdown.value === undefined || dropdown.value?.$el === undefined || !dropdown.value.$el.contains(e.target)) { + return; + } + + if (isEscEvent(e)) { + dropdown.value && dropdown.value.toggle.setOff(); + return; + } + + const fd = pipe(focusedDate.value, alt(() => pipe(fromNullable(modelValue.value), chain(v => Array.isArray(v) ? head(v) : some(v))))); + + if (isNone(fd)) { + return; + } + + if (isEnterEvent(e) || isSpaceEvent(e)) { + e.preventDefault(); + modelValue.value = fd.value; + } else if (isArrowUpEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, -7)); + } else if (isArrowRightEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, 1)); + } else if (isArrowDownEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, 7)); + } else if (isArrowLeftEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, -1)); + } + } + + onMounted(() => { + if (typeof window !== 'undefined') { + document.addEventListener('keyup', onKeydown); + } + }); + onUnmounted(() => { + if (typeof window !== 'undefined') { + document.removeEventListener('keyup', onKeydown); + } + }); + watch(focusedDate, fd => { + const m = month.value; + const y = year.value; + + if (isSome(fd)) { + const fdValue = fd.value; + const nMonth = fdValue.getMonth(); + + if (nMonth !== m) { + month.value = nMonth; + } + + const nYear = fdValue.getFullYear(); + + if (nYear !== y) { + year.value = nYear; + } + } + }, { + immediate: true + }); + return () => { + const data = { + modelValue, + month, + year, + isDisabled: isDisabled.value, + focusedDate: focusedDate, + nextMonth, + previousMonth, + setMonth, + setYear, + months: getMonths(props, month.value), + years: getYears(props, year.value) + }; + return h('article', { + class: ['b-datepicker control', props.size, { + 'is-expanded': props.isExpanded || fieldData.attrs.isExpanded.value + }] + }, [useNative(props) ? generateInput(props, context, data) : generateDropdown(props, context, data, dropdown)]); + }; + } + +}); +//# sourceMappingURL=BDatepicker.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepicker.js.map b/node_modules/buetify/lib/components/form/datepicker/BDatepicker.js.map new file mode 100755 index 0000000..05d32b4 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepicker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/BDatepicker.ts"],"names":[],"mappings":"AAAA,OAAO,uDAAP;AACA,OAAO,mDAAP;AACA,OAAO,4DAAP;AAEA,SAAS,UAAT,EAAqB,yBAArB,QAAsD,8BAAtD;AACA,SAAS,QAAT,QAAyB,4BAAzB;AACA,SAAS,YAAT,QAA6B,gCAA7B;AACA,SAAS,0BAAT,QAA2C,qCAA3C;AACA,SAAS,QAAT,QAAyB,qCAAzB;AACA,SAAoB,iBAApB,EAAuC,mBAAvC,QAA+F,UAA/F;AACA,SAAS,OAAT,EAAkB,YAAlB,EAAgC,MAAhC,QAA6D,SAA7D;AACA,SAAS,MAAT,QAAuB,iBAAvB;AACA,SACE,gBADF,EAEE,gBAFF,EAGE,iBAHF,EAIE,cAJF,EAKE,YALF,EAME,UANF,EAOE,YAPF,QAQO,6BARP;AASA,SAAS,IAAT,EAAe,UAAf,EAA2B,KAA3B,QAAwC,iBAAxC;AACA,SAAS,QAAT,QAAoC,oBAApC;AACA,SAAS,GAAT,EAAc,KAAd,EAAqB,YAArB,EAAmC,KAAnC,EAA0C,MAA1C,EAAkD,MAAlD,EAAkE,IAAlE,QAA8E,kBAA9E;AACA,SAAS,IAAT,QAAqB,oBAArB;AACA,OAAO,SAAP,IAAoB,wBAApB,QAAoD,0BAApD;AACA,OAAO,gBAAP,MAA6B,oBAA7B;AACA,OAAO,MAAP,MAAmB,iBAAnB;AACA,SAAS,OAAT,QAAoC,mBAApC;AACA,SACE,QADF,EAEE,WAFF,EAGE,SAHF,EAME,oBANF,EAOE,eAPF,EAQE,CARF,EAYE,UAZF,EAeE,KAfF,EAgBE,KAhBF,QAiBO,KAjBP;AAkBA,SAAS,eAAT,EAA0B,QAA1B,EAAoC,cAApC,QAA0D,wBAA1D;AAcA,MAAM,wBAAwB,GAAoB;AAChD,EAAA,QAAQ,EAAE,oBAAoB,CAAC,MAAM,OAAO,uBAAP,CAAP,CADkB;AAEhD,EAAA,IAAI,EAAE,oBAAoB,CAAC,MAAM,OAAO,wBAAP,CAAP,CAFsB;AAGhD,EAAA,QAAQ,EAAE,oBAAoB,CAAC,MAAM,OAAO,sBAAP,CAAP;AAHkB,CAAlD;AAMA,OAAM,SAAU,kBAAV,CAA6B,KAA7B,EAA4D;AAChE,SAAO,EACL,GAAG,wBADE;AAEL,OAAG;AAFE,GAAP;AAID;AAED,MAAM,0BAA0B,GAAG,EACjC,GAAG,wBAD8B;AAEjC,KAAG,yBAF8B;AAGjC,KAAG,0BAA0B,EAHI;AAIjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,CAAC,KAAD,EAAQ,IAAR;AADI,GAJqB;AAOjC,yBAAuB;AACrB,IAAA,IAAI,EAAE,QADe;AAErB,IAAA,QAAQ,EAAE;AAFW,GAPU;AAWjC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE,IAAI,IAAJ,GAAW,WAAX;AAFL,GAX2B;AAejC,mBAAiB;AACf,IAAA,IAAI,EAAE,QADS;AAEf,IAAA,QAAQ,EAAE;AAFK,GAfgB;AAmBjC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,OAAO,EAAE,IAAI,IAAJ,GAAW,QAAX;AAFJ,GAnB0B;AAuBjC,oBAAkB;AAChB,IAAA,IAAI,EAAE,QADU;AAEhB,IAAA,QAAQ,EAAE;AAFM,GAvBe;AA2BjC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,KADE;AAER,IAAA,OAAO,EAAE,QAAQ,CAAC,iBAAD;AAFT,GA3BuB;AA+BjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,KADI;AAEV,IAAA,OAAO,EAAE,QAAQ,CAAC,mBAAD;AAFP,GA/BqB;AAmCjC,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,MADQ;AAEd,IAAA,OAAO,EAAE;AAFK,GAnCiB;AAuCjC,EAAA,MAAM,EAAE;AACN,IAAA,IAAI,EAAE,KADA;AAEN,IAAA,OAAO,EAAE;AAFH,GAvCyB;AA2CjC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,IADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GA3CwB;AA+CjC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,IADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GA/CwB;AAmDjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAnDqB;AAuDjC,EAAA,iBAAiB,EAAE;AACjB,IAAA,IAAI,EAAE,KADW;AAEjB,IAAA,OAAO,EAAE;AAFQ,GAvDc;AA2DjC,EAAA,sBAAsB,EAAE;AACtB,IAAA,IAAI,EAAE,KADgB;AAEtB,IAAA,OAAO,EAAE;AAFa,GA3DS;AA+DjC,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE;AADS,GA/DgB;AAkEjC,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,OADQ;AAEd,IAAA,OAAO,EAAE;AAFK,GAlEiB;AAsEjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAtEqB;AA0EjC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE;AADK,GA1EoB;AA6EjC,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE,OADS;AAEf,IAAA,OAAO,EAAE;AAFM,GA7EgB;AAiFjC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE;AADE,GAjFuB;AAoFjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,OAAO,EAAE;AAFC,GApFqB;AAwFjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAG,KADG;AAEV,IAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAF,EAAK,CAAL,CAAD;AAFP,GAxFqB;AA4FjC,EAAA,aAAa,EAAE;AACb,IAAA,IAAI,EAAE,OADO;AAEb,IAAA,OAAO,EAAE;AAFI,GA5FkB;AAgGjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAhGqB;AAoGjC,EAAA,mBAAmB,EAAE;AACnB,IAAA,IAAI,EAAE,OADa;AAEnB,IAAA,OAAO,EAAE;AAFU,GApGY;AAwGjC;AACA;AACA;AACA;AACA,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,OAAO,EAAE,QAAQ,CAAC,wBAAD;AAFZ;AA5G0B,CAAnC;;AAoHA,SAAS,SAAT,CAAmB,KAAnB,EAA0C;AACxC,SAAO,KAAK,CAAC,eAAN,IAAyB,CAAC,KAAK,CAAC,QAAvC;AACD;;AAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAL,CAAoB,SAApB,EAA+B;AACtD,EAAA,IAAI,EAAE,SADgD;AAEtD,EAAA,KAAK,EAAE,SAF+C;AAGtD,EAAA,GAAG,EAAE;AAHiD,CAA/B,EAItB,MAJH;;AAMA,SAAS,sBAAT,CAAgC,UAAhC,EAA0D;AACxD,SAAO,KAAK,CAAC,OAAN,CAAc,UAAd,IACH,UAAU,CAAC,GAAX,CAAe,gBAAf,EAAiC,IAAjC,CAAsC,IAAtC,CADG,GAEH,UAAU,GACV,gBAAgB,CAAC,UAAD,CADN,GAEV,IAJJ;AAKD;;AAED,SAAS,gBAAT,CAA0B,GAA1B,EAAqC;AACnC,QAAM,MAAM,GAAG,GAAG,CAAC,KAAJ,CAAU,GAAV,EAAe,GAAf,CAAmB,CAAC,IAAI,CAAC,CAAC,IAAF,EAAxB,CAAf;AACA,SAAO,MAAM,CAAC,GAAP,CAAW,CAAC,IAAI,IAAI,IAAJ,CAAS,CAAT,CAAhB,EAA6B,MAA7B,CAAoC,CAAC,IAAI,MAAM,CAAC,CAAD,CAAN,IAAa,CAAC,KAAK,CAAC,CAAC,CAAC,OAAF,EAAD,CAA5D,CAAP;AACD;;AAED,SAAS,aAAT,CAAuB,KAAvB,EAAgD,OAAhD,EAAuE,IAAvE,EAA4F;AAC1F,QAAM,QAAQ,GAAG,SAAS,CAAC,KAAD,CAA1B;AACA,SAAO,CAAC,CAAC,MAAD,EAAS;AACf,IAAA,GAAG,EAAE,KAAK,CAAC,OAAN,GAAgB,gBAAgB,CAAC,KAAK,CAAC,OAAP,CAAhC,GAAkD,IADxC;AAEf,IAAA,GAAG,EAAE,KAAK,CAAC,OAAN,GAAgB,gBAAgB,CAAC,KAAK,CAAC,OAAP,CAAhC,GAAkD,IAFxC;AAGf,IAAA,YAAY,EAAE,KAHC;AAIf,IAAA,IAAI,EAAE,QAAQ,GAAG,MAAH,GAAY,MAJX;AAKf,IAAA,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,UAAL,CAAgB,KAAjB,CALnB;AAMf,2BAAwB,GAAD,IAAgB;AACrC,MAAA,IAAI,CAAC,UAAL,CAAgB,KAAhB,GAAwB,gBAAgB,CAAC,GAAD,CAAxC;AACD,KARc;AASf,IAAA,WAAW,EAAE,KAAK,CAAC,WATJ;AAUf,IAAA,IAAI,EAAE,KAAK,CAAC,IAVG;AAWf,IAAA,IAAI,EAAE,KAAK,CAAC,KAAN,CAAY,QAXH;AAYf,IAAA,SAAS,EAAE,KAAK,CAAC,SAZF;AAaf,IAAA,UAAU,EAAE,KAAK,CAAC,UAbH;AAcf,IAAA,UAAU,EAAE,KAAK,CAAC,UAdH;AAef,IAAA,SAAS,EAAE,KAAK,CAAC,SAfF;AAgBf,IAAA,mBAAmB,EAAE,KAAK,CAAC,mBAhBZ,CAiBf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAzBe,GAAT,CAAR;AA2BD;;AAED,SAAS,cAAT,CAAwB,KAAxB,EAAiD,IAAjD,EAAwE,MAAxE,EAAuF;AACrF,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,MAAM,GAAG,iCAAH,GAAuC,yCADtD;AAEE,IAAA,QAAQ,EAAE,IAAI,CAAC,UAFjB;AAGE,IAAA,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,SAAR,GAAoB,IAAI,CAAC,aAH1C;AAIE,IAAA,SAAS,EAAG,CAAD,IAAqB;AAC9B,UAAI,YAAY,CAAC,CAAD,CAAZ,IAAmB,YAAY,CAAC,CAAD,CAAnC,EAAwC;AACtC,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,MAAM,GAAG,IAAI,CAAC,SAAL,EAAH,GAAsB,IAAI,CAAC,aAAL,EAA5B;AACD;AACF;AATH,GAFM,EAaN,CACE,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,KAAN,CAAY,IAAf,GAAsB,KAAK,CAAC,KAAN,CAAY,QAAzC,EAAmD;AAClD,IAAA,OAAO,EAAE,SADyC;AAElD,IAAA,WAAW,EAAE;AAFqC,GAAnD,CADH,CAbM,CAAR;AAoBD;;AAED,SAAS,kBAAT,CAA4B,KAA5B,EAAqD,IAArD,EAA0E;AACxE,SAAO,CAAC,CAAC,OAAD,EAAU;AAChB,IAAA,KAAK,EAAE,IAAI,CAAC,KADI;AAEhB,IAAA,UAAU,EAAE,IAAI,CAAC,IAAL,CAAU,KAFN;AAGhB,IAAA,UAAU,EAAE,IAAI,CAAC,UAHD;AAIhB,IAAA,IAAI,EAAE,KAAK,CAAC,IAJI;AAKhB,2BAAuB,IAAI,CAAC;AALZ,GAAV,CAAR;AAOD;;AAED,SAAS,mBAAT,CAA6B,KAA7B,EAAsD,IAAtD,EAA2E;AACzE,SAAO,CAAC,CAAC,OAAD,EAAU;AAChB,IAAA,KAAK,EAAE,IAAI,CAAC,MADI;AAEhB,IAAA,UAAU,EAAE,IAAI,CAAC,UAFD;AAGhB,IAAA,IAAI,EAAE,KAAK,CAAC,IAHI;AAIhB,IAAA,UAAU,EAAE,IAAI,CAAC,KAAL,CAAW,KAJP;AAKhB,2BAAuB,IAAI,CAAC;AALZ,GAAV,CAAR;AAOD;;AAED,SAAS,eAAT,CAAyB,KAAzB,EAAkD,IAAlD,EAAuE;AACrE,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAsC,CAC5C,CAAC,CAAC,MAAD,EAAS;AAAE,IAAA,KAAK,EAAE;AAAT,GAAT,EAAqC,MAAM,CAAC,mBAAmB,CAAC,KAAD,EAAQ,IAAR,CAApB,EAAmC,kBAAkB,CAAC,KAAD,EAAQ,IAAR,CAArD,CAA3C,CAD2C,CAAtC,CAAR;AAGD;;AAED,SAAS,6BAAT,CAAuC,KAAvC,EAAgE,IAAhE,EAAqF;AACnF,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE,CAAC,8BAAD,EAAiC,KAAK,CAAC,IAAvC;AAAT,GAAR,EAAiE,CACvE,cAAc,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,CADyD,EAEvE,eAAe,CAAC,KAAD,EAAQ,IAAR,CAFwD,EAGvE,cAAc,CAAC,KAAD,EAAQ,IAAR,EAAc,IAAd,CAHyD,CAAjE,CAAR;AAKD;;AAED,SAAS,cAAT,CAAwB,KAAxB,EAAiD,OAAjD,EAAwE,IAAxE,EAA6F;AAC3F,SAAO,CAAC,CACN,QADM,EAEN;AAAE,IAAA,KAAK,EAAE;AAAT,GAFM,EAGN,OAAO,CAAC,KAAR,CAAc,MAAd,GAAuB,OAAO,CAAC,KAAR,CAAc,MAAd,CAAqB,IAArB,CAAvB,GAAoD,CAAC,6BAA6B,CAAC,KAAD,EAAQ,IAAR,CAA9B,CAH9C,CAAR;AAKD;;AAED,SAAS,uBAAT,CAAiC,KAAjC,EAA0D,OAA1D,EAAiF,IAAjF,EAAsG;AACpG,SAAO,CAAC,CAAC,gBAAD,EAAmB;AACzB,IAAA,UAAU,EAAE,IAAI,CAAC,UAAL,CAAgB,KADH;AAEzB,2BAAwB,GAAD,IAAuB;AAC5C,MAAA,IAAI,CAAC,UAAL,CAAgB,KAAhB,GAAwB,GAAxB;AACD,KAJwB;AAKzB,IAAA,WAAW,EAAE,IAAI,CAAC,WAAL,CAAiB,KALL;AAMzB,4BAAyB,GAAD,IAAsB;AAC5C,MAAA,IAAI,CAAC,WAAL,CAAiB,KAAjB,GAAyB,GAAzB;AACD,KARwB;AASzB,IAAA,QAAQ,EAAE,KAAK,CAAC,QATS;AAUzB,IAAA,UAAU,EAAE,KAAK,CAAC,UAVO;AAWzB,IAAA,cAAc,EAAE,KAAK,CAAC,cAXG;AAYzB,IAAA,OAAO,EAAE,KAAK,CAAC,OAZU;AAazB,IAAA,OAAO,EAAE,KAAK,CAAC,OAbU;AAczB,IAAA,KAAK,EAAE,IAAI,CAAC,KAAL,CAAW,KAdO;AAezB,IAAA,IAAI,EAAE,IAAI,CAAC,IAAL,CAAU,KAfS;AAgBzB,IAAA,UAAU,EAAE,IAAI,CAAC,UAhBQ;AAiBzB,IAAA,iBAAiB,EAAE,KAAK,CAAC,iBAjBA;AAkBzB,IAAA,sBAAsB,EAAE,KAAK,CAAC,sBAlBL;AAmBzB,IAAA,eAAe,EAAE,KAAK,CAAC,eAnBE;AAoBzB,IAAA,MAAM,EAAE,KAAK,CAAC,MApBW;AAqBzB,IAAA,UAAU,EAAE,KAAK,CAAC,UArBO;AAsBzB,IAAA,cAAc,EAAE,KAAK,CAAC;AAtBG,GAAnB,CAAR;AAwBD;;AAED,SAAS,cAAT,CAAwB,OAAxB,EAA6C;AAC3C,SAAO,CAAC,CAAC,QAAD,EAAW;AAAE,IAAA,KAAK,EAAE;AAAT,GAAX,EAA2C,OAAO,CAAC,KAAR,CAAc,MAAd,IAAwB,OAAO,CAAC,KAAR,CAAc,MAAd,EAAnE,CAAR;AACD;;AAED,SAAS,gBAAT,CAA0B,KAA1B,EAAmD,OAAnD,EAA0E,IAA1E,EAA+F;AAC7F,SAAO,CAAC,CACN,SADM,EAEN;AACE,IAAA,KAAK,EAAE,oBADT;AAEE,kBAAc;AAFhB,GAFM,EAMN,CAAC,uBAAuB,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB,CAAxB,CANM,CAAR;AAQD;;AAED,SAAS,sBAAT,CAAgC,KAAhC,EAAyD,OAAzD,EAAgF,IAAhF,EAAqG;AACnG,QAAM,KAAK,GAAG,CAAC,cAAc,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB,CAAf,EAAuC,gBAAgB,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB,CAAvD,CAAd;;AACA,MAAI,OAAO,CAAC,KAAR,CAAc,MAAlB,EAA0B;AACxB,IAAA,KAAK,CAAC,IAAN,CAAW,cAAc,CAAC,OAAD,CAAzB;AACD;;AACD,SAAO,CAAC,CAAC,KAAD,EAAQ,KAAR,CAAR;AACD;;AAED,SAAS,gBAAT,CACE,KADF,EAEE,OAFF,EAGE,IAHF,EAIE,QAJF,EAIgC;AAE9B,SAAO,CAAC,CACN,SADM,EAEN;AACE,IAAA,GAAG,EAAE,QADP;AAEE,IAAA,QAAQ,EAAE,KAAK,CAAC,QAFlB;AAGE,IAAA,UAAU,EAAE,KAAK,CAAC,UAHpB;AAIE,IAAA,QAAQ,EAAE,KAAK,CAAC;AAJlB,GAFM,EAQN;AACE,IAAA,OAAO,EAAE,MAAK;AACZ,aAAO,aAAa,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB,CAApB;AACD,KAHH;AAIE,IAAA,OAAO,EAAE,MAAM,sBAAsB,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB;AAJvC,GARM,CAAR;AAeD;;AAgBD,SAAS,SAAT,CAAmB,KAAnB,EAA4C,YAA5C,EAAqE;AACnE,SAAO,KAAK,CAAC,UAAN,CAAiB,GAAjB,CAAqB,CAAC,KAAD,EAAgB,KAAhB,MAAmC;AAC7D,IAAA,KAAK,EAAE,KADsD;AAE7D,IAAA,IAAI,EAAE,KAFuD;AAG7D,IAAA,UAAU,EAAE,KAHiD;AAI7D,IAAA,UAAU,EAAE,YAAY,KAAK;AAJgC,GAAnC,CAArB,CAAP;AAMD;;AAED,SAAS,QAAT,CAAkB,KAAlB,EAA2C,WAA3C,EAA8D;AAC5D,QAAM,WAAW,GAAG,IAAI,IAAJ,GAAW,WAAX,EAApB;AACA,SAAO,KAAK,CAAC,KAAK,CAAC,UAAN,CAAiB,CAAjB,CAAD,EAAsB,KAAK,CAAC,UAAN,CAAiB,CAAjB,CAAtB,CAAL,CACJ,GADI,CACA,GAAG,IAAI,WAAW,GAAG,GADrB,EAEJ,GAFI,CAEA,IAAI,KAAK;AACZ,IAAA,KAAK,EAAE,IADK;AAEZ,IAAA,IAAI,EAAE,IAAI,CAAC,QAAL,EAFM;AAGZ,IAAA,UAAU,EAAE,KAHA;AAIZ,IAAA,UAAU,EAAE,WAAW,KAAK;AAJhB,GAAL,CAFJ,CAAP;AAQD;;AAED,SAAS,mBAAT,CAA6B,KAA7B,EAAsD,KAAtD,EAA+E,IAA/E,EAAgG;AAC9F,SAAQ,CAAD,IAAc;AACnB,QAAI,CAAJ,EAAO;AACL,MAAA,CAAC,CAAC,cAAF;AACD;;AACD,QAAI,CAAC,KAAK,CAAC,UAAX,EAAuB;AACrB,UAAI,KAAK,CAAC,KAAN,GAAc,CAAlB,EAAqB;AACnB,QAAA,KAAK,CAAC,KAAN,GAAe,KAAK,CAAC,KAAN,GAAc,CAA7B;AACD,OAFD,MAEO;AACL,QAAA,KAAK,CAAC,KAAN,GAAc,EAAd;AACA,QAAA,IAAI,CAAC,KAAL,GAAa,IAAI,CAAC,KAAL,GAAa,CAA1B;AACD;AACF;AACF,GAZD;AAaD;;AAED,SAAS,eAAT,CAAyB,KAAzB,EAAkD,KAAlD,EAA2E,IAA3E,EAA4F;AAC1F,SAAQ,CAAD,IAAc;AACnB,QAAI,CAAJ,EAAO;AACL,MAAA,CAAC,CAAC,cAAF;AACD;;AACD,QAAI,CAAC,KAAK,CAAC,UAAX,EAAuB;AACrB,YAAM,EAAE,GAAG,KAAK,CAAC,KAAjB;;AACA,UAAI,EAAE,GAAG,EAAT,EAAa;AACX,QAAA,KAAK,CAAC,KAAN,GAAe,EAAE,GAAG,CAApB;AACD,OAFD,MAEO;AACL,QAAA,KAAK,CAAC,KAAN,GAAc,CAAd;AACA,QAAA,IAAI,CAAC,KAAL,GAAa,IAAI,CAAC,KAAL,GAAa,CAA1B;AACD;AACF;AACF,GAbD;AAcD;;AAED,SAAS,WAAT,CAAqB,QAArB,EAA+C;AAC7C,SAAQ,KAAD,IAA2B;AAChC,QAAI,QAAQ,CAAC,KAAD,CAAZ,EAAqB;AACnB,YAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAD,EAAQ,EAAR,CAAT,CAA3B;;AACA,UAAI,MAAM,CAAC,MAAD,CAAV,EAAoB;AAClB,QAAA,QAAQ,CAAC,KAAT,GAAiB,MAAM,CAAC,KAAxB;AACD;AACF,KALD,MAKO;AACL,MAAA,QAAQ,CAAC,KAAT,GAAiB,KAAjB;AACD;AACF,GATD;AAUD;;AAED,SAAS,UAAT,CAAoB,OAApB,EAAwC;AACtC,SAAQ,IAAD,IAA0B;AAC/B,QAAI,QAAQ,CAAC,IAAD,CAAZ,EAAoB;AAClB,YAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAD,EAAO,EAAP,CAAT,CAA3B;;AACA,UAAI,MAAM,CAAC,MAAD,CAAV,EAAoB;AAClB,QAAA,OAAO,CAAC,KAAR,GAAgB,MAAM,CAAC,KAAvB;AACD;AACF,KALD,MAKO;AACL,MAAA,OAAO,CAAC,KAAR,GAAgB,IAAhB;AACD;AACF,GATD;AAUD;;AAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAD,CAAvC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,cADuB;AAE7B,EAAA,KAAK,EAAE,0BAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM,SAAS,GAAG,YAAY,EAA9B;AACA,UAAM,UAAU,GAAG,UAAU,CAAC,KAAD,CAA7B;AAEA,UAAM,QAAQ,GAAyB,UAAU,CAAC,IAAD,CAAjD;AAEA,UAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,UAAP,CAAhC;AAEA,IAAA,KAAK,CACH,MAAM,KAAK,CAAC,UADT,EAEH,MAAM,IAAG;AACP,MAAA,aAAa,CAAC,KAAd,GAAsB,MAAtB;AACD,KAJE,CAAL;AAOA,UAAM,UAAU,GAAG,QAAQ,CAAC;AAC1B,MAAA,GAAG,GAAA;AACD,eAAO,aAAa,CAAC,KAArB;AACD,OAHyB;;AAI1B,MAAA,GAAG,CAAC,GAAD,EAAoB;AACrB,YAAI,CAAC,GAAL,EAAU;AACR;AACD;;AACD,YAAK,KAAK,CAAC,OAAN,CAAc,GAAd,KAAsB,KAAK,CAAC,UAA7B,IAA4C,MAAM,CAAC,GAAD,CAAtD,EAA6D;AAC3D,UAAA,KAAK,CAAC,qBAAD,CAAL,CAA6B,GAA7B;AACA,UAAA,aAAa,CAAC,KAAd,GAAsB,GAAtB;AACD,SAHD,MAGO,IAAI,KAAK,CAAC,UAAN,IAAoB,MAAM,CAAC,GAAD,CAA9B,EAAqC;AAC1C,gBAAM,MAAM,GAAG,gBAAgB,CAC7B,GAD6B,EAE7B,aAAa,CAAC,KAAd,IAAuB,SAAvB,GACI,EADJ,GAEI,KAAK,CAAC,OAAN,CAAc,aAAa,CAAC,KAA5B,IACA,aAAa,CAAC,KADd,GAEA,CAAC,aAAa,CAAC,KAAf,CANyB,CAA/B;AAQA,UAAA,KAAK,CAAC,qBAAD,CAAL,CAA6B,MAA7B;AACA,UAAA,aAAa,CAAC,KAAd,GAAsB,MAAtB;AACD,SAXM,MAWA,IAAI,KAAK,CAAC,OAAN,CAAc,GAAd,KAAsB,UAAU,CAAC,GAAD,CAApC,EAA2C;AAChD,UAAA,KAAK,CAAC,qBAAD,CAAL,CAA6B,GAAG,CAAC,CAAD,CAAhC;AACA,UAAA,aAAa,CAAC,KAAd,GAAsB,GAAG,CAAC,CAAD,CAAzB;AACD;;AACD,YAAI,KAAK,CAAC,aAAV,EAAyB;AACvB,UAAA,QAAQ,CAAC,KAAT,IAAkB,QAAQ,CAAC,KAAT,CAAe,MAAf,CAAsB,MAAtB,EAAlB;AACD;AACF;;AA7ByB,KAAD,CAA3B;AAgCA,UAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAD,CAAN,CAAR,CAClB,IAAI,CACF,YAAY,CAAC,KAAK,CAAC,UAAP,CADV,EAEF,KAAK,CAAC,CAAC,IAAK,KAAK,CAAC,OAAN,CAAc,CAAd,IAAmB,IAAI,CAAC,CAAD,CAAvB,GAA6B,IAAI,CAAC,CAAD,CAAxC,CAFH,EAGF,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,IAAJ,EAAD,CAAX,CAHD,CADc,CAApB;AAQA,UAAM;AAAE,MAAA,KAAK,EAAE;AAAT,QAAmB,QAAQ,CAAC,KAAK,CAAC,KAAD,EAAQ,OAAR,CAAN,EAAwB,KAAK,CAAC,KAAD,EAAQ,gBAAR,CAA7B,CAAjC;AACA,UAAM;AAAE,MAAA,KAAK,EAAE;AAAT,QAAkB,QAAQ,CAAC,KAAK,CAAC,KAAD,EAAQ,MAAR,CAAN,EAAuB,KAAK,CAAC,KAAD,EAAQ,eAAR,CAA5B,CAAhC;AAEA,UAAM,SAAS,GAAG,eAAe,CAAC,KAAD,EAAQ,KAAR,EAAe,IAAf,CAAjC;AACA,UAAM,aAAa,GAAG,mBAAmB,CAAC,KAAD,EAAQ,KAAR,EAAe,IAAf,CAAzC;AACA,UAAM,QAAQ,GAAG,WAAW,CAAC,KAAD,CAA5B;AACA,UAAM,OAAO,GAAG,UAAU,CAAC,IAAD,CAA1B;;AAEA,aAAS,SAAT,CAAmB,CAAnB,EAAmC;AACjC,UAAI,QAAQ,CAAC,KAAT,KAAmB,SAAnB,IAAgC,QAAQ,CAAC,KAAT,EAAgB,GAAhB,KAAwB,SAAxD,IAAqE,CAAC,QAAQ,CAAC,KAAT,CAAe,GAAf,CAAmB,QAAnB,CAA4B,CAAC,CAAC,MAA9B,CAA1E,EAAiH;AAC/G;AACD;;AACD,UAAI,UAAU,CAAC,CAAD,CAAd,EAAmB;AACjB,QAAA,QAAQ,CAAC,KAAT,IAAkB,QAAQ,CAAC,KAAT,CAAe,MAAf,CAAsB,MAAtB,EAAlB;AACA;AACD;;AACD,YAAM,EAAE,GAAG,IAAI,CACb,WAAW,CAAC,KADC,EAEb,GAAG,CAAC,MACF,IAAI,CACF,YAAY,CAAC,UAAU,CAAC,KAAZ,CADV,EAEF,KAAK,CAAC,CAAC,IAAK,KAAK,CAAC,OAAN,CAAc,CAAd,IAAmB,IAAI,CAAC,CAAD,CAAvB,GAA6B,IAAI,CAAC,CAAD,CAAxC,CAFH,CADH,CAFU,CAAf;;AASA,UAAI,MAAM,CAAC,EAAD,CAAV,EAAgB;AACd;AACD;;AACD,UAAI,YAAY,CAAC,CAAD,CAAZ,IAAmB,YAAY,CAAC,CAAD,CAAnC,EAAwC;AACtC,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,UAAU,CAAC,KAAX,GAAmB,EAAE,CAAC,KAAtB;AACD,OAHD,MAGO,IAAI,cAAc,CAAC,CAAD,CAAlB,EAAuB;AAC5B,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,WAAW,CAAC,KAAZ,GAAoB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAJ,EAAW,CAAC,CAAZ,CAAR,CAAxB;AACD,OAHM,MAGA,IAAI,iBAAiB,CAAC,CAAD,CAArB,EAA0B;AAC/B,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,WAAW,CAAC,KAAZ,GAAoB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAJ,EAAW,CAAX,CAAR,CAAxB;AACD,OAHM,MAGA,IAAI,gBAAgB,CAAC,CAAD,CAApB,EAAyB;AAC9B,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,WAAW,CAAC,KAAZ,GAAoB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAJ,EAAW,CAAX,CAAR,CAAxB;AACD,OAHM,MAGA,IAAI,gBAAgB,CAAC,CAAD,CAApB,EAAyB;AAC9B,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,WAAW,CAAC,KAAZ,GAAoB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAJ,EAAW,CAAC,CAAZ,CAAR,CAAxB;AACD;AACF;;AAED,IAAA,SAAS,CAAC,MAAK;AACb,UAAI,OAAO,MAAP,KAAkB,WAAtB,EAAmC;AACjC,QAAA,QAAQ,CAAC,gBAAT,CAA0B,OAA1B,EAAmC,SAAnC;AACD;AACF,KAJQ,CAAT;AAMA,IAAA,WAAW,CAAC,MAAK;AACf,UAAI,OAAO,MAAP,KAAkB,WAAtB,EAAmC;AACjC,QAAA,QAAQ,CAAC,mBAAT,CAA6B,OAA7B,EAAsC,SAAtC;AACD;AACF,KAJU,CAAX;AAMA,IAAA,KAAK,CACH,WADG,EAEH,EAAE,IAAG;AACH,YAAM,CAAC,GAAG,KAAK,CAAC,KAAhB;AACA,YAAM,CAAC,GAAG,IAAI,CAAC,KAAf;;AACA,UAAI,MAAM,CAAC,EAAD,CAAV,EAAgB;AACd,cAAM,OAAO,GAAG,EAAE,CAAC,KAAnB;AACA,cAAM,MAAM,GAAG,OAAO,CAAC,QAAR,EAAf;;AACA,YAAI,MAAM,KAAK,CAAf,EAAkB;AAChB,UAAA,KAAK,CAAC,KAAN,GAAc,MAAd;AACD;;AACD,cAAM,KAAK,GAAG,OAAO,CAAC,WAAR,EAAd;;AACA,YAAI,KAAK,KAAK,CAAd,EAAiB;AACf,UAAA,IAAI,CAAC,KAAL,GAAa,KAAb;AACD;AACF;AACF,KAhBE,EAiBH;AACE,MAAA,SAAS,EAAE;AADb,KAjBG,CAAL;AAsBA,WAAO,MAAK;AACV,YAAM,IAAI,GAAoB;AAC5B,QAAA,UAD4B;AAE5B,QAAA,KAF4B;AAG5B,QAAA,IAH4B;AAI5B,QAAA,UAAU,EAAE,UAAU,CAAC,KAJK;AAK5B,QAAA,WAAW,EAAE,WALe;AAM5B,QAAA,SAN4B;AAO5B,QAAA,aAP4B;AAQ5B,QAAA,QAR4B;AAS5B,QAAA,OAT4B;AAU5B,QAAA,MAAM,EAAE,SAAS,CAAC,KAAD,EAAQ,KAAK,CAAC,KAAd,CAVW;AAW5B,QAAA,KAAK,EAAE,QAAQ,CAAC,KAAD,EAAQ,IAAI,CAAC,KAAb;AAXa,OAA9B;AAaA,aAAO,CAAC,CACN,SADM,EAEN;AACE,QAAA,KAAK,EAAE,CACL,sBADK,EAEL,KAAK,CAAC,IAFD,EAGL;AAAE,yBAAe,KAAK,CAAC,UAAN,IAAoB,SAAS,CAAC,KAAV,CAAgB,UAAhB,CAA2B;AAAhE,SAHK;AADT,OAFM,EASN,CAAC,SAAS,CAAC,KAAD,CAAT,GAAmB,aAAa,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB,CAAhC,GAAyD,gBAAgB,CAAC,KAAD,EAAQ,OAAR,EAAiB,IAAjB,EAAuB,QAAvB,CAA1E,CATM,CAAR;AAWD,KAzBD;AA0BD;;AApK4B,CAAD,CAA9B","sourcesContent":["import '../../pagination/pagination.sass';\nimport '../../dropdown/dropdown.sass';\nimport './datepicker.sass';\nimport { IO } from 'fp-ts/es6/IO';\nimport { useDisable, UseDisablePropsDefinition } from '../../../composables/disable';\nimport { useEqRef } from '../../../composables/eqRef';\nimport { useFieldData } from '../../../composables/fieldData';\nimport { getUseInputPropsDefinition } from '../../../composables/input/useInput';\nimport { useProxy } from '../../../composables/proxy/useProxy';\nimport { DateEvent, DEFAULT_DAY_NAMES, DEFAULT_MONTH_NAMES, EventIndicator, MonthNumber } from './shared';\nimport { addDays, eqSerialDate, isDate, WeekdayNumber } from './utils';\nimport { BInput } from '../input/BInput';\nimport {\n isArrowDownEvent,\n isArrowLeftEvent,\n isArrowRightEvent,\n isArrowUpEvent,\n isEnterEvent,\n isEscEvent,\n isSpaceEvent\n} from '../../../utils/eventHelpers';\nimport { head, isNonEmpty, range } from 'fp-ts/lib/Array';\nimport { constant, FunctionN } from 'fp-ts/lib/function';\nimport { alt, chain, fromNullable, getEq, isNone, isSome, Option, some } from 'fp-ts/lib/Option';\nimport { pipe } from 'fp-ts/lib/pipeable';\nimport BDropdown, { BDropdownPropsDefinition } from '../../dropdown/BDropdown';\nimport BDatepickerTable from './BDatepickerTable';\nimport BField from '../field/BField';\nimport { BSelect, SelectItem } from '../select/BSelect';\nimport {\n computed,\n onUnmounted,\n onMounted,\n PropType,\n VNode,\n defineAsyncComponent,\n defineComponent,\n h,\n ComponentOptions,\n FunctionalComponent,\n ExtractPropTypes,\n shallowRef,\n SetupContext,\n Ref,\n watch,\n toRef\n} from 'vue';\nimport { constEmptyArray, isString, toggleListItem } from '../../../utils/helpers';\n\ntype Dropdown = InstanceType<typeof BDropdown>;\n\ntype Component = ComponentOptions | FunctionalComponent;\n\nexport type DatepickerPosition = 'is-top-right' | 'is-top-left' | 'is-bottom-left';\n\nexport interface DatepickerIcons {\n next: Component;\n previous: Component;\n calendar: Component;\n}\n\nconst DEFAULT_DATEPICKER_ICONS: DatepickerIcons = {\n previous: defineAsyncComponent(() => import('../../icons/angleLeft')),\n next: defineAsyncComponent(() => import('../../icons/angleRight')),\n calendar: defineAsyncComponent(() => import('../../icons/calendar'))\n};\n\nexport function getDatepickerIcons(icons: Partial<DatepickerIcons>): DatepickerIcons {\n return {\n ...DEFAULT_DATEPICKER_ICONS,\n ...icons\n };\n}\n\nconst BDatepickerPropsDefinition = {\n ...BDropdownPropsDefinition,\n ...UseDisablePropsDefinition,\n ...getUseInputPropsDefinition<Date | Date[]>(),\n modelValue: {\n type: [Array, Date] as PropType<Date | Date[]>\n },\n 'onUpdate:modelValue': {\n type: Function as PropType<FunctionN<[Date | Date[]], void>>,\n required: true as const\n },\n year: {\n type: Number,\n default: new Date().getFullYear()\n },\n 'onUpdate:year': {\n type: Function as PropType<FunctionN<[number], void>>,\n required: false\n },\n month: {\n type: Number as PropType<MonthNumber>,\n default: new Date().getMonth() as MonthNumber\n },\n 'onUpdate:month': {\n type: Function as PropType<FunctionN<[MonthNumber], void>>,\n required: false\n },\n dayNames: {\n type: Array as PropType<string[]>,\n default: constant(DEFAULT_DAY_NAMES)\n },\n monthNames: {\n type: Array as PropType<string[]>,\n default: constant(DEFAULT_MONTH_NAMES)\n },\n firstDayOfWeek: {\n type: Number as PropType<WeekdayNumber>,\n default: 0 as const\n },\n events: {\n type: Array as PropType<DateEvent[]>,\n default: constEmptyArray\n },\n minDate: {\n type: Date as PropType<Date>,\n required: false\n },\n maxDate: {\n type: Date as PropType<Date>,\n required: false\n },\n isDisabled: {\n type: Boolean,\n default: false\n },\n unselectableDates: {\n type: Array as PropType<Date[]>,\n default: constEmptyArray\n },\n unselectableDaysOfWeek: {\n type: Array as PropType<number[]>,\n default: constEmptyArray\n },\n selectableDates: {\n type: Object as PropType<Date[]>\n },\n showWeekNumber: {\n type: Boolean as PropType<boolean>,\n default: false as const\n },\n isMultiple: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n placeholder: {\n type: String as PropType<string>\n },\n useMobileNative: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n position: {\n type: String as PropType<DatepickerPosition>\n },\n indicators: {\n type: String as PropType<EventIndicator>,\n default: 'bars' as const\n },\n yearsRange: {\n type: (Array as unknown) as PropType<[number, number]>,\n default: constant([-5, 3] as const)\n },\n closeOnSelect: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n isReadonly: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n useNativeValidation: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n // openOnFocus: {\n // type: Boolean as PropType<boolean>,\n // default: true\n // },\n icons: {\n type: Object as PropType<DatepickerIcons>,\n default: constant(DEFAULT_DATEPICKER_ICONS)\n }\n};\n\nexport type BDatepickerProps = ExtractPropTypes<typeof BDatepickerPropsDefinition>;\n\nfunction useNative(props: BDatepickerProps) {\n return props.useMobileNative && !props.isInline;\n}\n\nconst useFormattedDate = Intl.DateTimeFormat('default', {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n}).format;\n\nfunction useFormattedModelValue(modelValue?: Date | Date[]) {\n return Array.isArray(modelValue)\n ? modelValue.map(useFormattedDate).join(', ')\n : modelValue\n ? useFormattedDate(modelValue)\n : null;\n}\n\nfunction parseInputString(str: string): Date[] {\n const splits = str.split(',').map(s => s.trim());\n return splits.map(s => new Date(s)).filter(d => isDate(d) && !isNaN(d.getTime()));\n}\n\nfunction generateInput(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode {\n const isMobile = useNative(props);\n return h(BInput, {\n max: props.maxDate ? useFormattedDate(props.maxDate) : null,\n min: props.minDate ? useFormattedDate(props.minDate) : null,\n autocomplete: 'off',\n type: isMobile ? 'date' : 'text',\n modelValue: useFormattedModelValue(data.modelValue.value),\n 'onUpdate:modelValue': (val: string) => {\n data.modelValue.value = parseInputString(val);\n },\n placeholder: props.placeholder,\n size: props.size,\n icon: props.icons.calendar,\n isRounded: props.isRounded,\n isDisabled: props.isDisabled,\n isReadonly: props.isReadonly,\n isLoading: props.isLoading,\n useNativeValidation: props.useNativeValidation\n // onFocus: () => {\n // if (!isMobile && props.openOnFocus && toggle) {\n // if (toggle.isOff.value) {\n // console.log('focus-set-on')\n // toggle.setOn();\n // Date.now()\n // }\n // }\n // }\n });\n}\n\nfunction generateButton(props: BDatepickerProps, data: BDatepickerData, isNext: boolean): VNode {\n return h(\n 'button',\n {\n class: isNext ? 'pagination-next datepicker-next' : 'pagination-previous datepicker-previous',\n disabled: data.isDisabled,\n onClick: isNext ? data.nextMonth : data.previousMonth,\n onKeydown: (e: KeyboardEvent) => {\n if (isEnterEvent(e) || isSpaceEvent(e)) {\n e.preventDefault();\n isNext ? data.nextMonth() : data.previousMonth();\n }\n }\n },\n [\n h(isNext ? props.icons.next : props.icons.previous, {\n variant: 'is-link',\n isThemeable: false\n })\n ]\n );\n}\n\nfunction generateYearSelect(props: BDatepickerProps, data: BDatepickerData): VNode {\n return h(BSelect, {\n items: data.years,\n modelValue: data.year.value,\n isDisabled: data.isDisabled,\n size: props.size,\n 'onUpdate:modelValue': data.setYear\n });\n}\n\nfunction generateMonthSelect(props: BDatepickerProps, data: BDatepickerData): VNode {\n return h(BSelect, {\n items: data.months,\n isDisabled: data.isDisabled,\n size: props.size,\n modelValue: data.month.value,\n 'onUpdate:modelValue': data.setMonth\n });\n}\n\nfunction generateSelects(props: BDatepickerProps, data: BDatepickerData): VNode {\n return h('div', { class: 'pagination-list' }, [\n h(BField, { class: 'is-marginless' }, () => [generateMonthSelect(props, data), generateYearSelect(props, data)])\n ]);\n}\n\nfunction generateDefaultHeaderContents(props: BDatepickerProps, data: BDatepickerData): VNode {\n return h('div', { class: ['pagination field is-centered', props.size] }, [\n generateButton(props, data, false),\n generateSelects(props, data),\n generateButton(props, data, true)\n ]);\n}\n\nfunction generateHeader(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode {\n return h(\n 'header',\n { class: 'datepicker-header' },\n context.slots.header ? context.slots.header(data) : [generateDefaultHeaderContents(props, data)]\n );\n}\n\nfunction generateDatepickerTable(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode {\n return h(BDatepickerTable, {\n modelValue: data.modelValue.value,\n 'onUpdate:modelValue': (val: Date | Date[]) => {\n data.modelValue.value = val;\n },\n focusedDate: data.focusedDate.value,\n 'onUpdate:focusedDate': (val: Option<Date>) => {\n data.focusedDate.value = val;\n },\n dayNames: props.dayNames,\n monthNames: props.monthNames,\n firstDayOfWeek: props.firstDayOfWeek,\n minDate: props.minDate,\n maxDate: props.maxDate,\n month: data.month.value,\n year: data.year.value,\n isDisabled: data.isDisabled,\n unselectableDates: props.unselectableDates,\n unselectableDaysOfWeek: props.unselectableDaysOfWeek,\n selectableDates: props.selectableDates,\n events: props.events,\n indicators: props.indicators,\n showWeekNumber: props.showWeekNumber\n });\n}\n\nfunction generateFooter(context: SetupContext): VNode {\n return h('footer', { class: 'datepicker-footer' }, context.slots.footer && context.slots.footer());\n}\n\nfunction generateCalendar(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode {\n return h(\n 'section',\n {\n class: 'datepicker-content',\n 'aria-label': 'Datepicker calendar'\n },\n [generateDatepickerTable(props, context, data)]\n );\n}\n\nfunction generateDatepickerBody(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode {\n const nodes = [generateHeader(props, context, data), generateCalendar(props, context, data)];\n if (context.slots.footer) {\n nodes.push(generateFooter(context));\n }\n return h('div', nodes);\n}\n\nfunction generateDropdown(\n props: BDatepickerProps,\n context: SetupContext,\n data: BDatepickerData,\n dropdown: Ref<Dropdown | null>\n): VNode {\n return h(\n BDropdown,\n {\n ref: dropdown,\n position: props.position,\n isDisabled: props.isDisabled,\n isInline: props.isInline\n },\n {\n trigger: () => {\n return generateInput(props, context, data);\n },\n default: () => generateDatepickerBody(props, context, data)\n }\n );\n}\n\ninterface BDatepickerData {\n month: Ref<MonthNumber>;\n year: Ref<number>;\n nextMonth: IO<void>;\n previousMonth: IO<void>;\n setYear: FunctionN<[string | number], void>;\n setMonth: FunctionN<[string | number], void>;\n months: SelectItem<number>[];\n years: SelectItem<number>[];\n isDisabled: boolean;\n focusedDate: Ref<Option<Date>>;\n modelValue: Ref<Date | Date[] | undefined>;\n}\n\nfunction getMonths(props: BDatepickerProps, focusedMonth: MonthNumber): SelectItem<number>[] {\n return props.monthNames.map((month: string, index: number) => ({\n value: index,\n text: month,\n isDisabled: false,\n isSelected: focusedMonth === index\n }));\n}\n\nfunction getYears(props: BDatepickerProps, focusedYear: number): SelectItem<number>[] {\n const currentYear = new Date().getFullYear();\n return range(props.yearsRange[0], props.yearsRange[1])\n .map(inc => currentYear + inc)\n .map(year => ({\n value: year,\n text: year.toString(),\n isDisabled: false,\n isSelected: focusedYear === year\n }));\n}\n\nfunction getSetPreviousMonth(props: BDatepickerProps, month: Ref<MonthNumber>, year: Ref<number>) {\n return (e?: Event) => {\n if (e) {\n e.preventDefault();\n }\n if (!props.isDisabled) {\n if (month.value > 0) {\n month.value = (month.value - 1) as MonthNumber;\n } else {\n month.value = 11;\n year.value = year.value - 1;\n }\n }\n };\n}\n\nfunction getSetNextMonth(props: BDatepickerProps, month: Ref<MonthNumber>, year: Ref<number>) {\n return (e?: Event) => {\n if (e) {\n e.preventDefault();\n }\n if (!props.isDisabled) {\n const mv = month.value;\n if (mv < 11) {\n month.value = (mv + 1) as MonthNumber;\n } else {\n month.value = 0;\n year.value = year.value + 1;\n }\n }\n };\n}\n\nfunction getSetMonth(monthRef: Ref<MonthNumber>) {\n return (month: number | string) => {\n if (isString(month)) {\n const newVal = fromNullable(parseInt(month, 10));\n if (isSome(newVal)) {\n monthRef.value = newVal.value as MonthNumber;\n }\n } else {\n monthRef.value = month as MonthNumber;\n }\n };\n}\n\nfunction getSetYear(yearRef: Ref<number>) {\n return (year: number | string) => {\n if (isString(year)) {\n const newVal = fromNullable(parseInt(year, 10));\n if (isSome(newVal)) {\n yearRef.value = newVal.value;\n }\n } else {\n yearRef.value = year;\n }\n };\n}\n\nconst toggleSerialDate = toggleListItem(eqSerialDate);\n\nexport default defineComponent({\n name: 'b-datepicker',\n props: BDatepickerPropsDefinition,\n setup(props, context) {\n const fieldData = useFieldData();\n const isDisabled = useDisable(props);\n\n const dropdown: Ref<null | Dropdown> = shallowRef(null);\n\n const internalValue = shallowRef(props.modelValue);\n\n watch(\n () => props.modelValue,\n newVal => {\n internalValue.value = newVal;\n }\n );\n\n const modelValue = computed({\n get() {\n return internalValue.value;\n },\n set(val?: Date | Date[]) {\n if (!val) {\n return;\n }\n if ((Array.isArray(val) && props.isMultiple) || isDate(val)) {\n props['onUpdate:modelValue'](val);\n internalValue.value = val;\n } else if (props.isMultiple && isDate(val)) {\n const newVal = toggleSerialDate(\n val,\n internalValue.value == undefined\n ? []\n : Array.isArray(internalValue.value)\n ? internalValue.value\n : [internalValue.value]\n );\n props['onUpdate:modelValue'](newVal);\n internalValue.value = newVal;\n } else if (Array.isArray(val) && isNonEmpty(val)) {\n props['onUpdate:modelValue'](val[0]);\n internalValue.value = val[0];\n }\n if (props.closeOnSelect) {\n dropdown.value && dropdown.value.toggle.setOff();\n }\n }\n });\n\n const focusedDate = useEqRef(getEq(eqSerialDate))(\n pipe(\n fromNullable(props.modelValue),\n chain(v => (Array.isArray(v) ? head(v) : some(v))),\n alt(() => some(new Date()))\n )\n );\n\n const { value: month } = useProxy(toRef(props, 'month'), toRef(props, 'onUpdate:month'));\n const { value: year } = useProxy(toRef(props, 'year'), toRef(props, 'onUpdate:year'));\n\n const nextMonth = getSetNextMonth(props, month, year);\n const previousMonth = getSetPreviousMonth(props, month, year);\n const setMonth = getSetMonth(month);\n const setYear = getSetYear(year);\n\n function onKeydown(e: KeyboardEvent) {\n if (dropdown.value === undefined || dropdown.value?.$el === undefined || !dropdown.value.$el.contains(e.target)) {\n return;\n }\n if (isEscEvent(e)) {\n dropdown.value && dropdown.value.toggle.setOff();\n return;\n }\n const fd = pipe(\n focusedDate.value,\n alt(() =>\n pipe(\n fromNullable(modelValue.value),\n chain(v => (Array.isArray(v) ? head(v) : some(v)))\n )\n )\n );\n if (isNone(fd)) {\n return;\n }\n if (isEnterEvent(e) || isSpaceEvent(e)) {\n e.preventDefault();\n modelValue.value = fd.value;\n } else if (isArrowUpEvent(e)) {\n e.preventDefault();\n focusedDate.value = some(addDays(fd.value, -7));\n } else if (isArrowRightEvent(e)) {\n e.preventDefault();\n focusedDate.value = some(addDays(fd.value, 1));\n } else if (isArrowDownEvent(e)) {\n e.preventDefault();\n focusedDate.value = some(addDays(fd.value, 7));\n } else if (isArrowLeftEvent(e)) {\n e.preventDefault();\n focusedDate.value = some(addDays(fd.value, -1));\n }\n }\n\n onMounted(() => {\n if (typeof window !== 'undefined') {\n document.addEventListener('keyup', onKeydown);\n }\n });\n\n onUnmounted(() => {\n if (typeof window !== 'undefined') {\n document.removeEventListener('keyup', onKeydown);\n }\n });\n\n watch(\n focusedDate,\n fd => {\n const m = month.value;\n const y = year.value;\n if (isSome(fd)) {\n const fdValue = fd.value;\n const nMonth = fdValue.getMonth() as MonthNumber;\n if (nMonth !== m) {\n month.value = nMonth;\n }\n const nYear = fdValue.getFullYear();\n if (nYear !== y) {\n year.value = nYear;\n }\n }\n },\n {\n immediate: true\n }\n );\n\n return () => {\n const data: BDatepickerData = {\n modelValue,\n month,\n year,\n isDisabled: isDisabled.value,\n focusedDate: focusedDate,\n nextMonth,\n previousMonth,\n setMonth,\n setYear,\n months: getMonths(props, month.value),\n years: getYears(props, year.value)\n };\n return h(\n 'article',\n {\n class: [\n 'b-datepicker control',\n props.size,\n { 'is-expanded': props.isExpanded || fieldData.attrs.isExpanded.value }\n ]\n },\n [useNative(props) ? generateInput(props, context, data) : generateDropdown(props, context, data, dropdown)]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BDatepicker.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.d.ts b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.d.ts new file mode 100755 index 0000000..3262c8e --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.d.ts @@ -0,0 +1,183 @@ +import './datepicker.sass'; +import { DateEvent, MonthNumber } from './shared'; +import { WeekdayNumber } from './utils'; +import { FunctionN } from 'fp-ts/lib/function'; +import { Option } from 'fp-ts/lib/Option'; +import { PropType, VNode, ExtractPropTypes } from 'vue'; +export declare const BDatepickerTablePropsDefinition: { + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + focusedDate: { + type: PropType<Option<Date>>; + required: true; + }; + 'onUpdate:focusedDate': { + type: PropType<FunctionN<[Option<Date>], unknown>>; + required: true; + }; + month: { + type: PropType<MonthNumber>; + required: true; + }; + year: { + type: NumberConstructor; + required: true; + }; + dayNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + monthNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + firstDayOfWeek: { + type: PropType<WeekdayNumber>; + default: 0; + }; + events: { + type: PropType<DateEvent[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + indicators: { + type: PropType<import("./shared").EventIndicator>; + required: true; + }; + minDate: { + type: PropType<Date>; + required: boolean; + }; + maxDate: { + type: PropType<Date>; + required: boolean; + }; + isDisabled: { + type: BooleanConstructor; + default: boolean; + }; + unselectableDates: { + type: PropType<Date[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + unselectableDaysOfWeek: { + type: PropType<number[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + selectableDates: { + type: PropType<Date[]>; + }; + showWeekNumber: { + type: PropType<boolean>; + default: false; + }; +}; +export declare type BDatepickerTableProps = ExtractPropTypes<typeof BDatepickerTablePropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + focusedDate: { + type: PropType<Option<Date>>; + required: true; + }; + 'onUpdate:focusedDate': { + type: PropType<FunctionN<[Option<Date>], unknown>>; + required: true; + }; + month: { + type: PropType<MonthNumber>; + required: true; + }; + year: { + type: NumberConstructor; + required: true; + }; + dayNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + monthNames: { + type: PropType<string[]>; + default: import("fp-ts/lib/function").Lazy<string[]>; + }; + firstDayOfWeek: { + type: PropType<WeekdayNumber>; + default: 0; + }; + events: { + type: PropType<DateEvent[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + indicators: { + type: PropType<import("./shared").EventIndicator>; + required: true; + }; + minDate: { + type: PropType<Date>; + required: boolean; + }; + maxDate: { + type: PropType<Date>; + required: boolean; + }; + isDisabled: { + type: BooleanConstructor; + default: boolean; + }; + unselectableDates: { + type: PropType<Date[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + unselectableDaysOfWeek: { + type: PropType<number[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + selectableDates: { + type: PropType<Date[]>; + }; + showWeekNumber: { + type: PropType<boolean>; + default: false; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isDisabled: boolean; + "onUpdate:modelValue": FunctionN<[Date | Date[]], void>; + events: DateEvent[]; + focusedDate: Option<Date>; + "onUpdate:focusedDate": FunctionN<[Option<Date>], unknown>; + indicators: import("./shared").EventIndicator; + showWeekNumber: boolean; + month: MonthNumber; + unselectableDates: Date[]; + unselectableDaysOfWeek: number[]; + year: number; + dayNames: string[]; + monthNames: string[]; + firstDayOfWeek: WeekdayNumber; +} & { + modelValue?: Date | Date[] | undefined; + minDate?: Date | undefined; + maxDate?: Date | undefined; + selectableDates?: Date[] | undefined; +}>, { + isDisabled: boolean; + events: DateEvent[]; + showWeekNumber: boolean; + unselectableDates: Date[]; + unselectableDaysOfWeek: number[]; + dayNames: string[]; + monthNames: string[]; + firstDayOfWeek: WeekdayNumber; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.js b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.js new file mode 100755 index 0000000..509a192 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.js @@ -0,0 +1,186 @@ +import "../../../../src/components/form/datepicker/datepicker.sass"; +import { DEFAULT_DAY_NAMES, DEFAULT_MONTH_NAMES } from './shared'; +import { addDays, getDatesInWeek, getEndOfMonth, getEndOfWeek, getStartOfMonth, getStartOfWeek, isDate, isOnOrAfterDate, isOnOrBeforeDate, isWithinWeek } from './utils'; +import { constEmptyArray } from '../../../utils/helpers'; +import { isEmpty, rotate } from 'fp-ts/lib/Array'; +import { constant } from 'fp-ts/lib/function'; +import { fromNullable, isNone, none } from 'fp-ts/lib/Option'; +import { defineComponent, h, computed } from 'vue'; +import BDatepickerTableRow from './BDatepickerTableRow'; +export const BDatepickerTablePropsDefinition = { + modelValue: { + type: [Array, Date] + }, + 'onUpdate:modelValue': { + type: Function, + required: true + }, + focusedDate: { + type: Object, + required: true + }, + 'onUpdate:focusedDate': { + type: Function, + required: true + }, + month: { + type: Number, + required: true + }, + year: { + type: Number, + required: true + }, + dayNames: { + type: Array, + default: constant(DEFAULT_DAY_NAMES) + }, + monthNames: { + type: Array, + default: constant(DEFAULT_MONTH_NAMES) + }, + firstDayOfWeek: { + type: Number, + default: 0 + }, + events: { + type: Array, + default: constEmptyArray + }, + indicators: { + type: String, + required: true + }, + minDate: { + type: Date, + required: false + }, + maxDate: { + type: Date, + required: false + }, + isDisabled: { + type: Boolean, + default: false + }, + unselectableDates: { + type: Array, + default: constEmptyArray + }, + unselectableDaysOfWeek: { + type: Array, + default: constEmptyArray + }, + selectableDates: { + type: Object + }, + showWeekNumber: { + type: Boolean, + default: false + } +}; + +function getWeeksWithinMonth(props) { + const startOfMonth = getStartOfMonth(new Date(props.year, props.month + 1, 0)); + const endOfCalendar = getEndOfWeek(getEndOfMonth(startOfMonth), props.firstDayOfWeek); + const weeks = []; + let date = getStartOfWeek(startOfMonth, props.firstDayOfWeek); + + while (isOnOrBeforeDate(date, endOfCalendar)) { + weeks.push(getDatesInWeek(date, props.firstDayOfWeek)); + date = addDays(date, 7); + } + + return weeks; +} + +function getEventsWithinWeek(props, week) { + return props.events.filter(event => { + const eventDate = isDate(event) ? event : event.date; + return isWithinWeek(week[0], eventDate, props.firstDayOfWeek); + }); +} + +function getWeeks(props) { + return getWeeksWithinMonth(props).map((week, weekNumber) => ({ + week, + weekNumber, + events: getEventsWithinWeek(props, week) + })); +} + +function generateTableHeader(dayNames) { + return h('thead', { + class: 'datepicker-header' + }, [h('tr', dayNames.map(day => h('th', { + key: day, + class: 'datepicker-cell' + }, day)))]); +} + +function getGenerateTableRow(props, focusedDate) { + return function generateTableRow(weekData) { + return h(BDatepickerTableRow, { + key: weekData.weekNumber, + modelValue: props.modelValue, + 'onUpdate:modelValue': props['onUpdate:modelValue'], + focusedDate: focusedDate.value, + 'onUpdate:focusedDate': val => { + focusedDate.value = val; + }, + week: weekData.week, + weekNumber: weekData.weekNumber, + month: props.month, + minDate: fromNullable(props.minDate), + maxDate: fromNullable(props.maxDate), + unselectableDates: props.unselectableDates, + unselectableDaysOfWeek: props.unselectableDaysOfWeek, + selectableDates: fromNullable(props.selectableDates), + events: weekData.events, + indicators: props.indicators + }); + }; +} + +function generateTableBody(props, focusedDate) { + return h('tbody', { + class: ['datepicker-body', { + 'has-events': !isEmpty(props.events) + }] + }, getWeeks(props).map(getGenerateTableRow(props, focusedDate))); +} + +export default defineComponent({ + name: 'b-datepicker-table', + props: BDatepickerTablePropsDefinition, + + setup(props) { + const focusedDate = computed({ + get() { + return props.focusedDate; + }, + + set(date) { + if (isNone(date)) { + props['onUpdate:focusedDate'](date); + } else if (props.minDate && props.maxDate) { + props['onUpdate:focusedDate'](isOnOrAfterDate(date.value, props.minDate) && isOnOrBeforeDate(date.value, props.maxDate) ? date : none); + } else if (props.minDate) { + props['onUpdate:focusedDate'](isOnOrAfterDate(date.value, props.minDate) ? date : none); + } else if (props.maxDate) { + props['onUpdate:focusedDate'](isOnOrBeforeDate(date.value, props.maxDate) ? date : none); + } else { + props['onUpdate:focusedDate'](date); + } + } + + }); + return () => { + return h('table', { + class: 'datepicker-table' + }, [generateTableHeader(rotate(-props.firstDayOfWeek)(props.dayNames)), generateTableBody(props, focusedDate)]); + }; + } + +}); +//# sourceMappingURL=BDatepickerTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.js.map b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.js.map new file mode 100755 index 0000000..ceca4b1 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/BDatepickerTable.ts"],"names":[],"mappings":"AAAA,OAAO,4DAAP;AACA,SAAoB,iBAApB,EAAuC,mBAAvC,QAA+E,UAA/E;AACA,SACE,OADF,EAEE,cAFF,EAGE,aAHF,EAIE,YAJF,EAKE,eALF,EAME,cANF,EAOE,MAPF,EAQE,eARF,EASE,gBATF,EAUE,YAVF,QAYO,SAZP;AAaA,SAAS,eAAT,QAAgC,wBAAhC;AACA,SAAS,OAAT,EAAkB,MAAlB,QAAgC,iBAAhC;AACA,SAAS,QAAT,QAAoC,oBAApC;AACA,SAAS,YAAT,EAAuB,MAAvB,EAA+B,IAA/B,QAAmD,kBAAnD;AACA,SAAS,eAAT,EAA6D,CAA7D,EAAgE,QAAhE,QAAqF,KAArF;AACA,OAAO,mBAAP,MAAgC,uBAAhC;AAEA,OAAO,MAAM,+BAA+B,GAAG;AAC7C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,CAAC,KAAD,EAAQ,IAAR;AADI,GADiC;AAI7C,yBAAuB;AACrB,IAAA,IAAI,EAAE,QADe;AAErB,IAAA,QAAQ,EAAE;AAFW,GAJsB;AAQ7C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,MADK;AAEX,IAAA,QAAQ,EAAE;AAFC,GARgC;AAY7C,0BAAwB;AACtB,IAAA,IAAI,EAAE,QADgB;AAEtB,IAAA,QAAQ,EAAE;AAFY,GAZqB;AAgB7C,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,QAAQ,EAAE;AAFL,GAhBsC;AAoB7C,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,QAAQ,EAAE;AAFN,GApBuC;AAwB7C,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,KADE;AAER,IAAA,OAAO,EAAE,QAAQ,CAAC,iBAAD;AAFT,GAxBmC;AA4B7C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,KADI;AAEV,IAAA,OAAO,EAAE,QAAQ,CAAC,mBAAD;AAFP,GA5BiC;AAgC7C,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,MADQ;AAEd,IAAA,OAAO,EAAE;AAFK,GAhC6B;AAoC7C,EAAA,MAAM,EAAE;AACN,IAAA,IAAI,EAAE,KADA;AAEN,IAAA,OAAO,EAAE;AAFH,GApCqC;AAwC7C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,QAAQ,EAAE;AAFA,GAxCiC;AA4C7C,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,IADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GA5CoC;AAgD7C,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,IADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GAhDoC;AAoD7C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GApDiC;AAwD7C,EAAA,iBAAiB,EAAE;AACjB,IAAA,IAAI,EAAE,KADW;AAEjB,IAAA,OAAO,EAAE;AAFQ,GAxD0B;AA4D7C,EAAA,sBAAsB,EAAE;AACtB,IAAA,IAAI,EAAE,KADgB;AAEtB,IAAA,OAAO,EAAE;AAFa,GA5DqB;AAgE7C,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE;AADS,GAhE4B;AAmE7C,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,OADQ;AAEd,IAAA,OAAO,EAAE;AAFK;AAnE6B,CAAxC;;AAiFP,SAAS,mBAAT,CAA6B,KAA7B,EAAyD;AACvD,QAAM,YAAY,GAAG,eAAe,CAAC,IAAI,IAAJ,CAAS,KAAK,CAAC,IAAf,EAAqB,KAAK,CAAC,KAAN,GAAc,CAAnC,EAAsC,CAAtC,CAAD,CAApC;AACA,QAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,YAAD,CAAd,EAA8B,KAAK,CAAC,cAApC,CAAlC;AACA,QAAM,KAAK,GAAa,EAAxB;AACA,MAAI,IAAI,GAAG,cAAc,CAAC,YAAD,EAAe,KAAK,CAAC,cAArB,CAAzB;;AAEA,SAAO,gBAAgB,CAAC,IAAD,EAAO,aAAP,CAAvB,EAA8C;AAC5C,IAAA,KAAK,CAAC,IAAN,CAAW,cAAc,CAAC,IAAD,EAAO,KAAK,CAAC,cAAb,CAAzB;AACA,IAAA,IAAI,GAAG,OAAO,CAAC,IAAD,EAAO,CAAP,CAAd;AACD;;AACD,SAAO,KAAP;AACD;;AAED,SAAS,mBAAT,CAA6B,KAA7B,EAA2D,IAA3D,EAAuE;AACrE,SAAO,KAAK,CAAC,MAAN,CAAa,MAAb,CAAoB,KAAK,IAAG;AACjC,UAAM,SAAS,GAAG,MAAM,CAAC,KAAD,CAAN,GAAgB,KAAhB,GAAwB,KAAK,CAAC,IAAhD;AACA,WAAO,YAAY,CAAC,IAAI,CAAC,CAAD,CAAL,EAAU,SAAV,EAAqB,KAAK,CAAC,cAA3B,CAAnB;AACD,GAHM,CAAP;AAID;;AAED,SAAS,QAAT,CAAkB,KAAlB,EAA8C;AAC5C,SAAO,mBAAmB,CAAC,KAAD,CAAnB,CAA2B,GAA3B,CAA+B,CAAC,IAAD,EAAO,UAAP,MAAuB;AAC3D,IAAA,IAD2D;AAE3D,IAAA,UAF2D;AAG3D,IAAA,MAAM,EAAE,mBAAmB,CAAC,KAAD,EAAQ,IAAR;AAHgC,GAAvB,CAA/B,CAAP;AAKD;;AAED,SAAS,mBAAT,CAA6B,QAA7B,EAA+C;AAC7C,SAAO,CAAC,CAAC,OAAD,EAAU;AAAE,IAAA,KAAK,EAAE;AAAT,GAAV,EAA0C,CAChD,CAAC,CACC,IADD,EAEC,QAAQ,CAAC,GAAT,CAAa,GAAG,IAAI,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,GAAG,EAAE,GAAP;AAAY,IAAA,KAAK,EAAE;AAAnB,GAAP,EAA+C,GAA/C,CAArB,CAFD,CAD+C,CAA1C,CAAR;AAMD;;AAED,SAAS,mBAAT,CAA6B,KAA7B,EAA2D,WAA3D,EAAyF;AACvF,SAAO,SAAS,gBAAT,CAA0B,QAA1B,EAA4C;AACjD,WAAO,CAAC,CAAC,mBAAD,EAAsB;AAC5B,MAAA,GAAG,EAAE,QAAQ,CAAC,UADc;AAE5B,MAAA,UAAU,EAAE,KAAK,CAAC,UAFU;AAG5B,6BAAuB,KAAK,CAAC,qBAAD,CAHA;AAI5B,MAAA,WAAW,EAAE,WAAW,CAAC,KAJG;AAK5B,8BAAyB,GAAD,IAAsB;AAC5C,QAAA,WAAW,CAAC,KAAZ,GAAoB,GAApB;AACD,OAP2B;AAQ5B,MAAA,IAAI,EAAE,QAAQ,CAAC,IARa;AAS5B,MAAA,UAAU,EAAE,QAAQ,CAAC,UATO;AAU5B,MAAA,KAAK,EAAE,KAAK,CAAC,KAVe;AAW5B,MAAA,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAP,CAXO;AAY5B,MAAA,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAP,CAZO;AAa5B,MAAA,iBAAiB,EAAE,KAAK,CAAC,iBAbG;AAc5B,MAAA,sBAAsB,EAAE,KAAK,CAAC,sBAdF;AAe5B,MAAA,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,eAAP,CAfD;AAgB5B,MAAA,MAAM,EAAE,QAAQ,CAAC,MAhBW;AAiB5B,MAAA,UAAU,EAAE,KAAK,CAAC;AAjBU,KAAtB,CAAR;AAmBD,GApBD;AAqBD;;AAED,SAAS,iBAAT,CAA2B,KAA3B,EAAyD,WAAzD,EAAuF;AACrF,SAAO,CAAC,CACN,OADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB;AAAE,oBAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAP;AAAxB,KAApB;AADT,GAFM,EAKN,QAAQ,CAAC,KAAD,CAAR,CAAgB,GAAhB,CAAoB,mBAAmB,CAAC,KAAD,EAAQ,WAAR,CAAvC,CALM,CAAR;AAOD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,oBADuB;AAE7B,EAAA,KAAK,EAAE,+BAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,UAAM,WAAW,GAAG,QAAQ,CAAC;AAC3B,MAAA,GAAG,GAAA;AACD,eAAO,KAAK,CAAC,WAAb;AACD,OAH0B;;AAI3B,MAAA,GAAG,CAAC,IAAD,EAAmB;AACpB,YAAI,MAAM,CAAC,IAAD,CAAV,EAAkB;AAChB,UAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,IAA9B;AACD,SAFD,MAEO,IAAI,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAA3B,EAAoC;AACzC,UAAA,KAAK,CAAC,sBAAD,CAAL,CACE,eAAe,CAAC,IAAI,CAAC,KAAN,EAAa,KAAK,CAAC,OAAnB,CAAf,IAA8C,gBAAgB,CAAC,IAAI,CAAC,KAAN,EAAa,KAAK,CAAC,OAAnB,CAA9D,GAA4F,IAA5F,GAAmG,IADrG;AAGD,SAJM,MAIA,IAAI,KAAK,CAAC,OAAV,EAAmB;AACxB,UAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,eAAe,CAAC,IAAI,CAAC,KAAN,EAAa,KAAK,CAAC,OAAnB,CAAf,GAA6C,IAA7C,GAAoD,IAAlF;AACD,SAFM,MAEA,IAAI,KAAK,CAAC,OAAV,EAAmB;AACxB,UAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,gBAAgB,CAAC,IAAI,CAAC,KAAN,EAAa,KAAK,CAAC,OAAnB,CAAhB,GAA8C,IAA9C,GAAqD,IAAnF;AACD,SAFM,MAEA;AACL,UAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,IAA9B;AACD;AACF;;AAlB0B,KAAD,CAA5B;AAoBA,WAAO,MAAK;AACV,aAAO,CAAC,CAAC,OAAD,EAAU;AAAE,QAAA,KAAK,EAAE;AAAT,OAAV,EAAyC,CAC/C,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAR,CAAN,CAA8B,KAAK,CAAC,QAApC,CAAD,CAD4B,EAE/C,iBAAiB,CAAC,KAAD,EAAQ,WAAR,CAF8B,CAAzC,CAAR;AAID,KALD;AAMD;;AA9B4B,CAAD,CAA9B","sourcesContent":["import './datepicker.sass';\nimport { DateEvent, DEFAULT_DAY_NAMES, DEFAULT_MONTH_NAMES, MonthNumber } from './shared';\nimport {\n addDays,\n getDatesInWeek,\n getEndOfMonth,\n getEndOfWeek,\n getStartOfMonth,\n getStartOfWeek,\n isDate,\n isOnOrAfterDate,\n isOnOrBeforeDate,\n isWithinWeek,\n WeekdayNumber\n} from './utils';\nimport { constEmptyArray } from '../../../utils/helpers';\nimport { isEmpty, rotate } from 'fp-ts/lib/Array';\nimport { constant, FunctionN } from 'fp-ts/lib/function';\nimport { fromNullable, isNone, none, Option } from 'fp-ts/lib/Option';\nimport { defineComponent, PropType, VNode, ExtractPropTypes, h, computed, Ref } from 'vue';\nimport BDatepickerTableRow from './BDatepickerTableRow';\n\nexport const BDatepickerTablePropsDefinition = {\n modelValue: {\n type: [Array, Date] as PropType<Date | Date[]>\n },\n 'onUpdate:modelValue': {\n type: Function as PropType<FunctionN<[Date | Date[]], void>>,\n required: true as const\n },\n focusedDate: {\n type: Object as PropType<Option<Date>>,\n required: true as const\n },\n 'onUpdate:focusedDate': {\n type: Function as PropType<FunctionN<[Option<Date>], unknown>>,\n required: true as const\n },\n month: {\n type: Number as PropType<MonthNumber>,\n required: true as const\n },\n year: {\n type: Number,\n required: true as const\n },\n dayNames: {\n type: Array as PropType<string[]>,\n default: constant(DEFAULT_DAY_NAMES)\n },\n monthNames: {\n type: Array as PropType<string[]>,\n default: constant(DEFAULT_MONTH_NAMES)\n },\n firstDayOfWeek: {\n type: Number as PropType<WeekdayNumber>,\n default: 0 as const\n },\n events: {\n type: Array as PropType<DateEvent[]>,\n default: constEmptyArray\n },\n indicators: {\n type: String as PropType<'dots' | 'bars'>,\n required: true as const\n },\n minDate: {\n type: Date as PropType<Date>,\n required: false\n },\n maxDate: {\n type: Date as PropType<Date>,\n required: false\n },\n isDisabled: {\n type: Boolean,\n default: false\n },\n unselectableDates: {\n type: Array as PropType<Date[]>,\n default: constEmptyArray\n },\n unselectableDaysOfWeek: {\n type: Array as PropType<number[]>,\n default: constEmptyArray\n },\n selectableDates: {\n type: Object as PropType<Date[]>\n },\n showWeekNumber: {\n type: Boolean as PropType<boolean>,\n default: false as const\n }\n};\n\nexport type BDatepickerTableProps = ExtractPropTypes<typeof BDatepickerTablePropsDefinition>;\n\ninterface WeekData {\n week: Date[];\n weekNumber: number;\n events: DateEvent[];\n}\n\nfunction getWeeksWithinMonth(props: BDatepickerTableProps) {\n const startOfMonth = getStartOfMonth(new Date(props.year, props.month + 1, 0));\n const endOfCalendar = getEndOfWeek(getEndOfMonth(startOfMonth), props.firstDayOfWeek);\n const weeks: Date[][] = [];\n let date = getStartOfWeek(startOfMonth, props.firstDayOfWeek);\n\n while (isOnOrBeforeDate(date, endOfCalendar)) {\n weeks.push(getDatesInWeek(date, props.firstDayOfWeek));\n date = addDays(date, 7);\n }\n return weeks;\n}\n\nfunction getEventsWithinWeek(props: BDatepickerTableProps, week: Date[]) {\n return props.events.filter(event => {\n const eventDate = isDate(event) ? event : event.date;\n return isWithinWeek(week[0], eventDate, props.firstDayOfWeek);\n });\n}\n\nfunction getWeeks(props: BDatepickerTableProps) {\n return getWeeksWithinMonth(props).map((week, weekNumber) => ({\n week,\n weekNumber,\n events: getEventsWithinWeek(props, week)\n }));\n}\n\nfunction generateTableHeader(dayNames: string[]) {\n return h('thead', { class: 'datepicker-header' }, [\n h(\n 'tr',\n dayNames.map(day => h('th', { key: day, class: 'datepicker-cell' }, day))\n )\n ]);\n}\n\nfunction getGenerateTableRow(props: BDatepickerTableProps, focusedDate: Ref<Option<Date>>) {\n return function generateTableRow(weekData: WeekData): VNode {\n return h(BDatepickerTableRow, {\n key: weekData.weekNumber,\n modelValue: props.modelValue,\n 'onUpdate:modelValue': props['onUpdate:modelValue'],\n focusedDate: focusedDate.value,\n 'onUpdate:focusedDate': (val: Option<Date>) => {\n focusedDate.value = val;\n },\n week: weekData.week,\n weekNumber: weekData.weekNumber,\n month: props.month,\n minDate: fromNullable(props.minDate),\n maxDate: fromNullable(props.maxDate),\n unselectableDates: props.unselectableDates,\n unselectableDaysOfWeek: props.unselectableDaysOfWeek,\n selectableDates: fromNullable(props.selectableDates),\n events: weekData.events,\n indicators: props.indicators\n });\n };\n}\n\nfunction generateTableBody(props: BDatepickerTableProps, focusedDate: Ref<Option<Date>>): VNode {\n return h(\n 'tbody',\n {\n class: ['datepicker-body', { 'has-events': !isEmpty(props.events) }]\n },\n getWeeks(props).map(getGenerateTableRow(props, focusedDate))\n );\n}\n\nexport default defineComponent({\n name: 'b-datepicker-table',\n props: BDatepickerTablePropsDefinition,\n setup(props) {\n const focusedDate = computed({\n get() {\n return props.focusedDate;\n },\n set(date: Option<Date>) {\n if (isNone(date)) {\n props['onUpdate:focusedDate'](date);\n } else if (props.minDate && props.maxDate) {\n props['onUpdate:focusedDate'](\n isOnOrAfterDate(date.value, props.minDate) && isOnOrBeforeDate(date.value, props.maxDate) ? date : none\n );\n } else if (props.minDate) {\n props['onUpdate:focusedDate'](isOnOrAfterDate(date.value, props.minDate) ? date : none);\n } else if (props.maxDate) {\n props['onUpdate:focusedDate'](isOnOrBeforeDate(date.value, props.maxDate) ? date : none);\n } else {\n props['onUpdate:focusedDate'](date);\n }\n }\n });\n return () => {\n return h('table', { class: 'datepicker-table' }, [\n generateTableHeader(rotate(-props.firstDayOfWeek)(props.dayNames)),\n generateTableBody(props, focusedDate)\n ]);\n };\n }\n});\n"],"sourceRoot":"","file":"BDatepickerTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.d.ts b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.d.ts new file mode 100755 index 0000000..566d2a9 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.d.ts @@ -0,0 +1,41 @@ +import './datepicker.sass'; +import { FunctionN } from 'fp-ts/lib/function'; +import { DateCell, EventIndicator } from './shared'; +import { Option } from 'fp-ts/lib/Option'; +import { PropType, VNode } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + focusedDate: { + type: PropType<Option<Date>>; + required: true; + }; + 'onUpdate:focusedDate': { + type: PropType<FunctionN<[Option<Date>], void>>; + required: true; + }; + indicators: { + type: PropType<EventIndicator>; + required: true; + }; + cell: { + type: PropType<DateCell>; + required: true; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + "onUpdate:modelValue": FunctionN<[Date | Date[]], void>; + focusedDate: Option<Date>; + "onUpdate:focusedDate": FunctionN<[Option<Date>], void>; + indicators: EventIndicator; + cell: DateCell; +} & { + modelValue?: Date | Date[] | undefined; +}>, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.js b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.js new file mode 100755 index 0000000..d0df4d5 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.js @@ -0,0 +1,84 @@ +import "../../../../src/components/form/datepicker/datepicker.sass"; +import { toggleListItem } from '../../../utils/helpers'; +import { eqSerialDate, isSameDay } from './utils'; +import { exists, getEq, some } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { defineComponent, shallowRef, h, watch, onMounted } from 'vue'; + +function generateEvents(events) { + return h('div', { + class: 'events' + }, events.map((event, index) => h('div', { + key: index, + class: ['event', event.variant] + }))); +} + +const toggleSerialDate = toggleListItem(eqSerialDate); +const eqOptionSerialDate = getEq(eqSerialDate); +export default defineComponent({ + name: 'b-datepicker-table-cell', + props: { + modelValue: { + type: [Date, Array] + }, + 'onUpdate:modelValue': { + type: Function, + required: true + }, + focusedDate: { + type: Object, + required: true + }, + 'onUpdate:focusedDate': { + type: Function, + required: true + }, + indicators: { + type: String, + required: true + }, + cell: { + type: Object, + required: true + } + }, + + setup(props) { + const buttonRef = shallowRef(null); + + function onClick(e) { + e && e.preventDefault(); + const currentValue = props.modelValue; + props['onUpdate:modelValue'](Array.isArray(currentValue) ? toggleSerialDate(props.cell.date, currentValue) : props.cell.date); + } + + const onFocus = () => { + props['onUpdate:focusedDate'](some(props.cell.date)); + }; + + onMounted(() => watch(() => props.focusedDate, (newVal, oldVal) => { + if ((oldVal && !eqOptionSerialDate.equals(newVal, oldVal) || oldVal === undefined) && buttonRef.value && pipe(newVal, exists(d => isSameDay(d, props.cell.date))) && document.activeElement !== buttonRef.value) { + buttonRef.value.focus({ + preventScroll: true + }); + } + }, { + immediate: true + })); + return () => { + return h('td', [h('button', { + ref: buttonRef, + class: ['datepicker-cell', props.cell.classes, props.indicators], + disabled: props.cell.isDisabled, + tabindex: props.cell.isDisabled || props.cell.isSelected ? -1 : 0, + 'aria-label': props.cell.ariaLabel, + onClick, + onFocus, + onMouseenter: onFocus + }, [props.cell.date.getDate(), props.cell.hasEvents ? generateEvents(props.cell.events) : undefined])]); + }; + } + +}); +//# sourceMappingURL=BDatepickerTableCell.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.js.map b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.js.map new file mode 100755 index 0000000..bfb492a --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableCell.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/BDatepickerTableCell.ts"],"names":[],"mappings":"AAAA,OAAO,4DAAP;AAEA,SAAS,cAAT,QAA+B,wBAA/B;AAEA,SAAS,YAAT,EAAuB,SAAvB,QAAwC,SAAxC;AACA,SAAS,MAAT,EAAiB,KAAjB,EAAgC,IAAhC,QAA4C,kBAA5C;AACA,SAAS,IAAT,QAAqB,oBAArB;AACA,SAA0B,eAA1B,EAA2C,UAA3C,EAAuD,CAAvD,EAA0D,KAA1D,EAAiE,SAAjE,QAAkF,KAAlF;;AAEA,SAAS,cAAT,CAAwB,MAAxB,EAAmD;AACjD,SAAO,CAAC,CACN,KADM,EAEN;AAAE,IAAA,KAAK,EAAE;AAAT,GAFM,EAGN,MAAM,CAAC,GAAP,CAAW,CAAC,KAAD,EAAQ,KAAR,KACT,CAAC,CAAC,KAAD,EAAQ;AACP,IAAA,GAAG,EAAE,KADE;AAEP,IAAA,KAAK,EAAE,CAAC,OAAD,EAAU,KAAK,CAAC,OAAhB;AAFA,GAAR,CADH,CAHM,CAAR;AAUD;;AAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAD,CAAvC;AAEA,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAD,CAAhC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,yBADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,IAAD,EAAO,KAAP;AADI,KADP;AAIL,2BAAuB;AACrB,MAAA,IAAI,EAAE,QADe;AAErB,MAAA,QAAQ,EAAE;AAFW,KAJlB;AAQL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,MADK;AAEX,MAAA,QAAQ,EAAE;AAFC,KARR;AAYL,4BAAwB;AACtB,MAAA,IAAI,EAAE,QADgB;AAEtB,MAAA,QAAQ,EAAE;AAFY,KAZnB;AAgBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,MADI;AAEV,MAAA,QAAQ,EAAE;AAFA,KAhBP;AAoBL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,QAAQ,EAAE;AAFN;AApBD,GAFsB;;AA2B7B,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,UAAM,SAAS,GAAG,UAAU,CAAE,IAAF,CAA5B;;AAEA,aAAS,OAAT,CAAiB,CAAjB,EAA+B;AAC7B,MAAA,CAAC,IAAI,CAAC,CAAC,cAAF,EAAL;AACA,YAAM,YAAY,GAAG,KAAK,CAAC,UAA3B;AACA,MAAA,KAAK,CAAC,qBAAD,CAAL,CACE,KAAK,CAAC,OAAN,CAAc,YAAd,IAA8B,gBAAgB,CAAC,KAAK,CAAC,IAAN,CAAW,IAAZ,EAAkB,YAAlB,CAA9C,GAAgF,KAAK,CAAC,IAAN,CAAW,IAD7F;AAGD;;AAED,UAAM,OAAO,GAAG,MAAK;AACnB,MAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,IAAI,CAAC,KAAK,CAAC,IAAN,CAAW,IAAZ,CAAlC;AACD,KAFD;;AAIA,IAAA,SAAS,CAAC,MACR,KAAK,CACH,MAAM,KAAK,CAAC,WADT,EAEH,CAAC,MAAD,EAAS,MAAT,KAAmB;AACjB,UACE,CAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAnB,CAA0B,MAA1B,EAAkC,MAAlC,CAAZ,IAA0D,MAAM,KAAK,SAAtE,KACA,SAAS,CAAC,KADV,IAEA,IAAI,CACF,MADE,EAEF,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC,CAAD,EAAI,KAAK,CAAC,IAAN,CAAW,IAAf,CAAf,CAFJ,CAFJ,IAMA,QAAQ,CAAC,aAAT,KAA2B,SAAS,CAAC,KAPvC,EAQE;AACA,QAAA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB;AAAE,UAAA,aAAa,EAAE;AAAjB,SAAtB;AACD;AACF,KAdE,EAeH;AACE,MAAA,SAAS,EAAE;AADb,KAfG,CADE,CAAT;AAsBA,WAAO,MAAK;AACV,aAAO,CAAC,CAAC,IAAD,EAAO,CACb,CAAC,CACC,QADD,EAEC;AACE,QAAA,GAAG,EAAE,SADP;AAEE,QAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB,KAAK,CAAC,IAAN,CAAW,OAA/B,EAAwC,KAAK,CAAC,UAA9C,CAFT;AAGE,QAAA,QAAQ,EAAE,KAAK,CAAC,IAAN,CAAW,UAHvB;AAIE,QAAA,QAAQ,EAAE,KAAK,CAAC,IAAN,CAAW,UAAX,IAAyB,KAAK,CAAC,IAAN,CAAW,UAApC,GAAiD,CAAC,CAAlD,GAAsD,CAJlE;AAKE,sBAAc,KAAK,CAAC,IAAN,CAAW,SAL3B;AAME,QAAA,OANF;AAOE,QAAA,OAPF;AAQE,QAAA,YAAY,EAAE;AARhB,OAFD,EAYC,CAAC,KAAK,CAAC,IAAN,CAAW,IAAX,CAAgB,OAAhB,EAAD,EAA4B,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,cAAc,CAAC,KAAK,CAAC,IAAN,CAAW,MAAZ,CAArC,GAA2D,SAAvF,CAZD,CADY,CAAP,CAAR;AAgBD,KAjBD;AAkBD;;AAlF4B,CAAD,CAA9B","sourcesContent":["import './datepicker.sass';\nimport { FunctionN } from 'fp-ts/lib/function';\nimport { toggleListItem } from '../../../utils/helpers';\nimport { DateCell, DetailedDateEvent, EventIndicator } from './shared';\nimport { eqSerialDate, isSameDay } from './utils';\nimport { exists, getEq, Option, some } from 'fp-ts/lib/Option';\nimport { pipe } from 'fp-ts/lib/pipeable';\nimport { PropType, VNode, defineComponent, shallowRef, h, watch, onMounted } from 'vue';\n\nfunction generateEvents(events: DetailedDateEvent[]): VNode {\n return h(\n 'div',\n { class: 'events' },\n events.map((event, index) =>\n h('div', {\n key: index,\n class: ['event', event.variant]\n })\n )\n );\n}\n\nconst toggleSerialDate = toggleListItem(eqSerialDate);\n\nconst eqOptionSerialDate = getEq(eqSerialDate);\n\nexport default defineComponent({\n name: 'b-datepicker-table-cell',\n props: {\n modelValue: {\n type: [Date, Array] as PropType<Date | Date[]>\n },\n 'onUpdate:modelValue': {\n type: Function as PropType<FunctionN<[Date | Date[]], void>>,\n required: true\n },\n focusedDate: {\n type: Object as PropType<Option<Date>>,\n required: true\n },\n 'onUpdate:focusedDate': {\n type: Function as PropType<FunctionN<[Option<Date>], void>>,\n required: true\n },\n indicators: {\n type: String as PropType<EventIndicator>,\n required: true\n },\n cell: {\n type: Object as PropType<DateCell>,\n required: true\n }\n },\n setup(props) {\n const buttonRef = shallowRef((null as unknown) as HTMLElement);\n\n function onClick(e?: MouseEvent) {\n e && e.preventDefault();\n const currentValue = props.modelValue;\n props['onUpdate:modelValue'](\n Array.isArray(currentValue) ? toggleSerialDate(props.cell.date, currentValue) : props.cell.date\n );\n }\n\n const onFocus = () => {\n props['onUpdate:focusedDate'](some(props.cell.date));\n };\n\n onMounted(() =>\n watch(\n () => props.focusedDate,\n (newVal, oldVal) => {\n if (\n ((oldVal && !eqOptionSerialDate.equals(newVal, oldVal)) || oldVal === undefined) &&\n buttonRef.value &&\n pipe(\n newVal,\n exists(d => isSameDay(d, props.cell.date))\n ) &&\n document.activeElement !== buttonRef.value\n ) {\n buttonRef.value.focus({ preventScroll: true });\n }\n },\n {\n immediate: true\n }\n )\n );\n\n return () => {\n return h('td', [\n h(\n 'button',\n {\n ref: buttonRef,\n class: ['datepicker-cell', props.cell.classes, props.indicators],\n disabled: props.cell.isDisabled,\n tabindex: props.cell.isDisabled || props.cell.isSelected ? -1 : 0,\n 'aria-label': props.cell.ariaLabel,\n onClick,\n onFocus,\n onMouseenter: onFocus\n },\n [props.cell.date.getDate(), props.cell.hasEvents ? generateEvents(props.cell.events) : undefined]\n )\n ]);\n };\n }\n});\n"],"sourceRoot":"","file":"BDatepickerTableCell.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.d.ts b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.d.ts new file mode 100755 index 0000000..9997192 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.d.ts @@ -0,0 +1,164 @@ +import './datepicker.sass'; +import { DateEvent } from './shared'; +import { FunctionN } from 'fp-ts/lib/function'; +import { Option } from 'fp-ts/lib/Option'; +import { PropType, VNode, ExtractPropTypes } from 'vue'; +export declare const BDatepickerTableRowPropsDefinition: { + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + focusedDate: { + type: PropType<Option<Date>>; + required: true; + }; + 'onUpdate:focusedDate': { + type: PropType<FunctionN<[Option<Date>], unknown>>; + required: true; + }; + showWeekNumber: { + type: PropType<boolean>; + default: false; + }; + weekNumber: { + type: PropType<number>; + required: true; + }; + week: { + type: PropType<Date[]>; + required: true; + }; + month: { + type: PropType<number>; + required: true; + }; + minDate: { + type: PropType<Option<Date>>; + required: true; + }; + maxDate: { + type: PropType<Option<Date>>; + required: true; + }; + isDisabled: { + type: PropType<boolean>; + default: false; + }; + unselectableDates: { + type: PropType<Date[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + unselectableDaysOfWeek: { + type: PropType<number[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + selectableDates: { + type: PropType<Option<Date[]>>; + default: import("fp-ts/lib/function").Lazy<Option<never>>; + }; + events: { + type: PropType<DateEvent[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + indicators: { + type: PropType<import("./shared").EventIndicator>; + required: true; + }; +}; +export declare type BDatePickerTableRowProps = ExtractPropTypes<typeof BDatepickerTableRowPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + modelValue: { + type: PropType<Date | Date[]>; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[Date | Date[]], void>>; + required: true; + }; + focusedDate: { + type: PropType<Option<Date>>; + required: true; + }; + 'onUpdate:focusedDate': { + type: PropType<FunctionN<[Option<Date>], unknown>>; + required: true; + }; + showWeekNumber: { + type: PropType<boolean>; + default: false; + }; + weekNumber: { + type: PropType<number>; + required: true; + }; + week: { + type: PropType<Date[]>; + required: true; + }; + month: { + type: PropType<number>; + required: true; + }; + minDate: { + type: PropType<Option<Date>>; + required: true; + }; + maxDate: { + type: PropType<Option<Date>>; + required: true; + }; + isDisabled: { + type: PropType<boolean>; + default: false; + }; + unselectableDates: { + type: PropType<Date[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + unselectableDaysOfWeek: { + type: PropType<number[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + selectableDates: { + type: PropType<Option<Date[]>>; + default: import("fp-ts/lib/function").Lazy<Option<never>>; + }; + events: { + type: PropType<DateEvent[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + indicators: { + type: PropType<import("./shared").EventIndicator>; + required: true; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isDisabled: boolean; + "onUpdate:modelValue": FunctionN<[Date | Date[]], void>; + events: DateEvent[]; + focusedDate: Option<Date>; + "onUpdate:focusedDate": FunctionN<[Option<Date>], unknown>; + indicators: import("./shared").EventIndicator; + showWeekNumber: boolean; + weekNumber: number; + week: Date[]; + month: number; + minDate: Option<Date>; + maxDate: Option<Date>; + unselectableDates: Date[]; + unselectableDaysOfWeek: number[]; + selectableDates: Option<Date[]>; +} & { + modelValue?: Date | Date[] | undefined; +}>, { + isDisabled: boolean; + events: DateEvent[]; + showWeekNumber: boolean; + unselectableDates: Date[]; + unselectableDaysOfWeek: number[]; + selectableDates: Option<Date[]>; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.js b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.js new file mode 100755 index 0000000..62a2370 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.js @@ -0,0 +1,202 @@ +import "../../../../src/components/form/datepicker/datepicker.sass"; +import BDatepickerTableCell from './BDatepickerTableCell'; +import { elemSerialDate, isDate, isOnOrAfterDate, isOnOrBeforeDate, isSameDay } from './utils'; +import { constEmptyArray, constNone } from '../../../utils/helpers'; +import { isNonEmpty } from 'fp-ts/lib/Array'; +import { constTrue, identity } from 'fp-ts/lib/function'; +import { fold } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { defineComponent, computed, h } from 'vue'; +export const BDatepickerTableRowPropsDefinition = { + modelValue: { + type: [Date, Array] + }, + 'onUpdate:modelValue': { + type: Function, + required: true + }, + focusedDate: { + type: Object, + required: true + }, + 'onUpdate:focusedDate': { + type: Function, + required: true + }, + showWeekNumber: { + type: Boolean, + default: false + }, + weekNumber: { + type: Number, + required: true + }, + week: { + type: Array, + required: true + }, + month: { + type: Number, + required: true + }, + minDate: { + type: Object, + required: true + }, + maxDate: { + type: Object, + required: true + }, + isDisabled: { + type: Boolean, + default: false + }, + unselectableDates: { + type: Array, + default: constEmptyArray + }, + unselectableDaysOfWeek: { + type: Array, + default: constEmptyArray + }, + selectableDates: { + type: Object, + default: constNone + }, + events: { + type: Array, + default: constEmptyArray + }, + indicators: { + type: String, + required: true + } +}; + +function getIsAfterMinDate(props) { + return function isAfterMinDate(date) { + return pipe(props.minDate, fold(constTrue, d => isOnOrAfterDate(date, d))); + }; +} + +function getIsBeforeMaxDate(props) { + return function isBeforeMaxDate(date) { + return pipe(props.maxDate, fold(constTrue, d => isOnOrBeforeDate(date, d))); + }; +} + +function getIsWithinMonth(props) { + return function isWithinMonth(date) { + return date.getMonth() === props.month; + }; +} + +function getIsEnabled(props) { + return function isEnabled(date) { + return !elemSerialDate(date, props.unselectableDates) && pipe(props.selectableDates, fold(constTrue, dates => elemSerialDate(date, dates))); + }; +} + +function getIsOnSelectableDayOfWeek(props) { + return function isOnSelectableDayOfWeek(date) { + return !props.unselectableDaysOfWeek.includes(date.getDay()); + }; +} + +function getDatePredicates(props) { + const isAfterMinDate = getIsAfterMinDate(props); + const isBeforeMaxDate = getIsBeforeMaxDate(props); + const isWithinMonth = getIsWithinMonth(props); + const isEnabled = getIsEnabled(props); + const isOnSelectableDayOfWeek = getIsOnSelectableDayOfWeek(props); + + function isSelectedDate(date) { + return Array.isArray(props.modelValue) ? props.modelValue.some(d => isSameDay(d, date)) : props.modelValue ? isSameDay(props.modelValue, date) : false; + } + + function isSelectableDate(date) { + return [isAfterMinDate(date), isBeforeMaxDate(date), isWithinMonth(date), isEnabled(date), isOnSelectableDayOfWeek(date)].every(identity); + } + + return { + isAfterMinDate, + isBeforeMaxDate, + isWithinMonth, + isEnabled, + isOnSelectableDayOfWeek, + isSelectableDate, + isSelectedDate + }; +} + +function getDateClassesGenerator(props, predicates) { + const today = new Date(); + return function getDateClasses(date, hasEvents = false) { + if (isDate(date)) { + const isSelectable = predicates.isSelectableDate(date); + return { + 'is-selected': predicates.isSelectedDate(date), + 'is-today': isSameDay(date, today), + 'is-selectable': isSelectable && !props.isDisabled, + 'is-unselectable': !isSelectable || props.isDisabled, + 'has-event': hasEvents + }; + } else { + return {}; + } + }; +} + +function generateWeekNumber(weekNumber) { + return h('td', [`${weekNumber}`]); +} + +function getGenerateCell(props) { + return function generateCell(cell) { + return h(BDatepickerTableCell, { + key: cell.date.toLocaleDateString(), + cell, + modelValue: props.modelValue, + 'onUpdate:modelValue': props['onUpdate:modelValue'], + focusedDate: props.focusedDate, + 'onUpdate:focusedDate': props['onUpdate:focusedDate'], + indicators: props.indicators + }); + }; +} + +export default defineComponent({ + name: 'b-datepicker-table-row', + props: BDatepickerTableRowPropsDefinition, + + setup(props) { + const formattedEvents = computed(() => props.events.map(event => isDate(event) ? { + date: event, + variant: 'is-primary' + } : event)); + const predicates = getDatePredicates(props); + const getDateClasses = getDateClassesGenerator(props, predicates); + const cells = computed(() => props.week.map(date => { + const events = formattedEvents.value.filter(event => isSameDay(date, event.date)); + const hasEvents = isNonEmpty(events); + return { + date, + events, + hasEvents, + isSelected: predicates.isSelectedDate(date), + isDisabled: props.isDisabled || !predicates.isSelectableDate(date), + number: date.getDate(), + ariaLabel: date.toLocaleDateString(), + classes: getDateClasses(date, hasEvents) + }; + })); + const generateCell = getGenerateCell(props); + return () => { + return h('tr', { + class: 'datepicker-row' + }, props.showWeekNumber ? [generateWeekNumber(props.weekNumber), ...cells.value.map(generateCell)] : cells.value.map(generateCell)); + }; + } + +}); +//# sourceMappingURL=BDatepickerTableRow.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.js.map b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.js.map new file mode 100755 index 0000000..cc1993c --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/BDatepickerTableRow.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/BDatepickerTableRow.ts"],"names":[],"mappings":"AAAA,OAAO,4DAAP;AACA,OAAO,oBAAP,MAAiC,wBAAjC;AAEA,SAAS,cAAT,EAAyB,MAAzB,EAAiC,eAAjC,EAAkD,gBAAlD,EAAoE,SAApE,QAAqF,SAArF;AACA,SAAS,eAAT,EAA0B,SAA1B,QAA2C,wBAA3C;AACA,SAAS,UAAT,QAA2B,iBAA3B;AACA,SAAS,SAAT,EAA+B,QAA/B,QAA+C,oBAA/C;AACA,SAAS,IAAT,QAA6B,kBAA7B;AACA,SAAS,IAAT,QAAqB,oBAArB;AACA,SAAS,eAAT,EAA2C,QAA3C,EAA4E,CAA5E,QAAqF,KAArF;AAEA,OAAO,MAAM,kCAAkC,GAAG;AAChD,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,CAAC,IAAD,EAAO,KAAP;AADI,GADoC;AAIhD,yBAAuB;AACrB,IAAA,IAAI,EAAE,QADe;AAErB,IAAA,QAAQ,EAAE;AAFW,GAJyB;AAQhD,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,MADK;AAEX,IAAA,QAAQ,EAAE;AAFC,GARmC;AAYhD,0BAAwB;AACtB,IAAA,IAAI,EAAE,QADgB;AAEtB,IAAA,QAAQ,EAAE;AAFY,GAZwB;AAgBhD,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,OADQ;AAEd,IAAA,OAAO,EAAE;AAFK,GAhBgC;AAoBhD,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,QAAQ,EAAE;AAFA,GApBoC;AAwBhD,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,KADF;AAEJ,IAAA,QAAQ,EAAE;AAFN,GAxB0C;AA4BhD,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,QAAQ,EAAE;AAFL,GA5ByC;AAgChD,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GAhCuC;AAoChD,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GApCuC;AAwChD,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAxCoC;AA4ChD,EAAA,iBAAiB,EAAE;AACjB,IAAA,IAAI,EAAE,KADW;AAEjB,IAAA,OAAO,EAAE;AAFQ,GA5C6B;AAgDhD,EAAA,sBAAsB,EAAE;AACtB,IAAA,IAAI,EAAE,KADgB;AAEtB,IAAA,OAAO,EAAE;AAFa,GAhDwB;AAoDhD,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE,MADS;AAEf,IAAA,OAAO,EAAE;AAFM,GApD+B;AAwDhD,EAAA,MAAM,EAAE;AACN,IAAA,IAAI,EAAE,KADA;AAEN,IAAA,OAAO,EAAE;AAFH,GAxDwC;AA4DhD,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,QAAQ,EAAE;AAFA;AA5DoC,CAA3C;;AAoEP,SAAS,iBAAT,CAA2B,KAA3B,EAA0D;AACxD,SAAO,SAAS,cAAT,CAAwB,IAAxB,EAAkC;AACvC,WAAO,IAAI,CACT,KAAK,CAAC,OADG,EAET,IAAI,CAAC,SAAD,EAAY,CAAC,IAAI,eAAe,CAAC,IAAD,EAAO,CAAP,CAAhC,CAFK,CAAX;AAID,GALD;AAMD;;AAED,SAAS,kBAAT,CAA4B,KAA5B,EAA2D;AACzD,SAAO,SAAS,eAAT,CAAyB,IAAzB,EAAmC;AACxC,WAAO,IAAI,CACT,KAAK,CAAC,OADG,EAET,IAAI,CAAC,SAAD,EAAY,CAAC,IAAI,gBAAgB,CAAC,IAAD,EAAO,CAAP,CAAjC,CAFK,CAAX;AAID,GALD;AAMD;;AAED,SAAS,gBAAT,CAA0B,KAA1B,EAAyD;AACvD,SAAO,SAAS,aAAT,CAAuB,IAAvB,EAAiC;AACtC,WAAO,IAAI,CAAC,QAAL,OAAoB,KAAK,CAAC,KAAjC;AACD,GAFD;AAGD;;AAED,SAAS,YAAT,CAAsB,KAAtB,EAAqD;AACnD,SAAO,SAAS,SAAT,CAAmB,IAAnB,EAA6B;AAClC,WACE,CAAC,cAAc,CAAC,IAAD,EAAO,KAAK,CAAC,iBAAb,CAAf,IACA,IAAI,CACF,KAAK,CAAC,eADJ,EAEF,IAAI,CAAC,SAAD,EAAY,KAAK,IAAI,cAAc,CAAC,IAAD,EAAO,KAAP,CAAnC,CAFF,CAFN;AAOD,GARD;AASD;;AAED,SAAS,0BAAT,CAAoC,KAApC,EAAmE;AACjE,SAAO,SAAS,uBAAT,CAAiC,IAAjC,EAA2C;AAChD,WAAO,CAAC,KAAK,CAAC,sBAAN,CAA6B,QAA7B,CAAsC,IAAI,CAAC,MAAL,EAAtC,CAAR;AACD,GAFD;AAGD;;AAED,SAAS,iBAAT,CAA2B,KAA3B,EAA0D;AACxD,QAAM,cAAc,GAAG,iBAAiB,CAAC,KAAD,CAAxC;AACA,QAAM,eAAe,GAAG,kBAAkB,CAAC,KAAD,CAA1C;AACA,QAAM,aAAa,GAAG,gBAAgB,CAAC,KAAD,CAAtC;AACA,QAAM,SAAS,GAAG,YAAY,CAAC,KAAD,CAA9B;AACA,QAAM,uBAAuB,GAAG,0BAA0B,CAAC,KAAD,CAA1D;;AACA,WAAS,cAAT,CAAwB,IAAxB,EAAkC;AAChC,WAAO,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,UAApB,IACH,KAAK,CAAC,UAAN,CAAiB,IAAjB,CAAsB,CAAC,IAAI,SAAS,CAAC,CAAD,EAAI,IAAJ,CAApC,CADG,GAEH,KAAK,CAAC,UAAN,GACA,SAAS,CAAC,KAAK,CAAC,UAAP,EAAmB,IAAnB,CADT,GAEA,KAJJ;AAKD;;AACD,WAAS,gBAAT,CAA0B,IAA1B,EAAoC;AAClC,WAAO,CACL,cAAc,CAAC,IAAD,CADT,EAEL,eAAe,CAAC,IAAD,CAFV,EAGL,aAAa,CAAC,IAAD,CAHR,EAIL,SAAS,CAAC,IAAD,CAJJ,EAKL,uBAAuB,CAAC,IAAD,CALlB,EAML,KANK,CAMC,QAND,CAAP;AAOD;;AACD,SAAO;AACL,IAAA,cADK;AAEL,IAAA,eAFK;AAGL,IAAA,aAHK;AAIL,IAAA,SAJK;AAKL,IAAA,uBALK;AAML,IAAA,gBANK;AAOL,IAAA;AAPK,GAAP;AASD;;AAID,SAAS,uBAAT,CAAiC,KAAjC,EAAkE,UAAlE,EAA4F;AAC1F,QAAM,KAAK,GAAG,IAAI,IAAJ,EAAd;AACA,SAAO,SAAS,cAAT,CAAwB,IAAxB,EAAuD,SAAS,GAAG,KAAnE,EAAwE;AAC7E,QAAI,MAAM,CAAC,IAAD,CAAV,EAAkB;AAChB,YAAM,YAAY,GAAG,UAAU,CAAC,gBAAX,CAA4B,IAA5B,CAArB;AACA,aAAO;AACL,uBAAe,UAAU,CAAC,cAAX,CAA0B,IAA1B,CADV;AAEL,oBAAY,SAAS,CAAC,IAAD,EAAO,KAAP,CAFhB;AAGL,yBAAiB,YAAY,IAAI,CAAC,KAAK,CAAC,UAHnC;AAIL,2BAAmB,CAAC,YAAD,IAAiB,KAAK,CAAC,UAJrC;AAKL,qBAAa;AALR,OAAP;AAOD,KATD,MASO;AACL,aAAO,EAAP;AACD;AACF,GAbD;AAcD;;AAED,SAAS,kBAAT,CAA4B,UAA5B,EAA8C;AAC5C,SAAO,CAAC,CAAC,IAAD,EAAO,CAAC,GAAG,UAAU,EAAd,CAAP,CAAR;AACD;;AAED,SAAS,eAAT,CAAyB,KAAzB,EAAwD;AACtD,SAAO,SAAS,YAAT,CAAsB,IAAtB,EAAoC;AACzC,WAAO,CAAC,CAAC,oBAAD,EAAuB;AAC7B,MAAA,GAAG,EAAE,IAAI,CAAC,IAAL,CAAU,kBAAV,EADwB;AAE7B,MAAA,IAF6B;AAG7B,MAAA,UAAU,EAAE,KAAK,CAAC,UAHW;AAI7B,6BAAuB,KAAK,CAAC,qBAAD,CAJC;AAK7B,MAAA,WAAW,EAAE,KAAK,CAAC,WALU;AAM7B,8BAAwB,KAAK,CAAC,sBAAD,CANA;AAO7B,MAAA,UAAU,EAAE,KAAK,CAAC;AAPW,KAAvB,CAAR;AASD,GAVD;AAWD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,wBADuB;AAE7B,EAAA,KAAK,EAAE,kCAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,UAAM,eAAe,GAA6B,QAAQ,CAAC,MACzD,KAAK,CAAC,MAAN,CAAa,GAAb,CAAiB,KAAK,IAAK,MAAM,CAAC,KAAD,CAAN,GAAgB;AAAE,MAAA,IAAI,EAAE,KAAR;AAAe,MAAA,OAAO,EAAE;AAAxB,KAAhB,GAAyD,KAApF,CADwD,CAA1D;AAGA,UAAM,UAAU,GAAG,iBAAiB,CAAC,KAAD,CAApC;AACA,UAAM,cAAc,GAAG,uBAAuB,CAAC,KAAD,EAAQ,UAAR,CAA9C;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,MACrB,KAAK,CAAC,IAAN,CAAW,GAAX,CAAe,IAAI,IAAG;AACpB,YAAM,MAAM,GAAG,eAAe,CAAC,KAAhB,CAAsB,MAAtB,CAA6B,KAAK,IAAI,SAAS,CAAC,IAAD,EAAO,KAAK,CAAC,IAAb,CAA/C,CAAf;AACA,YAAM,SAAS,GAAG,UAAU,CAAC,MAAD,CAA5B;AACA,aAAO;AACL,QAAA,IADK;AAEL,QAAA,MAFK;AAGL,QAAA,SAHK;AAIL,QAAA,UAAU,EAAE,UAAU,CAAC,cAAX,CAA0B,IAA1B,CAJP;AAKL,QAAA,UAAU,EAAE,KAAK,CAAC,UAAN,IAAoB,CAAC,UAAU,CAAC,gBAAX,CAA4B,IAA5B,CAL5B;AAML,QAAA,MAAM,EAAE,IAAI,CAAC,OAAL,EANH;AAOL,QAAA,SAAS,EAAE,IAAI,CAAC,kBAAL,EAPN;AAQL,QAAA,OAAO,EAAE,cAAc,CAAC,IAAD,EAAO,SAAP;AARlB,OAAP;AAUD,KAbD,CADoB,CAAtB;AAgBA,UAAM,YAAY,GAAG,eAAe,CAAC,KAAD,CAApC;AACA,WAAO,MAAK;AACV,aAAO,CAAC,CACN,IADM,EAEN;AAAE,QAAA,KAAK,EAAE;AAAT,OAFM,EAGN,KAAK,CAAC,cAAN,GACI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAP,CAAnB,EAAuC,GAAG,KAAK,CAAC,KAAN,CAAY,GAAZ,CAAgB,YAAhB,CAA1C,CADJ,GAEI,KAAK,CAAC,KAAN,CAAY,GAAZ,CAAgB,YAAhB,CALE,CAAR;AAOD,KARD;AASD;;AAnC4B,CAAD,CAA9B","sourcesContent":["import './datepicker.sass';\nimport BDatepickerTableCell from './BDatepickerTableCell';\nimport { DateCell, DateEvent, DetailedDateEvent } from './shared';\nimport { elemSerialDate, isDate, isOnOrAfterDate, isOnOrBeforeDate, isSameDay } from './utils';\nimport { constEmptyArray, constNone } from '../../../utils/helpers';\nimport { isNonEmpty } from 'fp-ts/lib/Array';\nimport { constTrue, FunctionN, identity } from 'fp-ts/lib/function';\nimport { fold, Option } from 'fp-ts/lib/Option';\nimport { pipe } from 'fp-ts/lib/pipeable';\nimport { defineComponent, PropType, VNode, computed, Ref, ExtractPropTypes, h } from 'vue';\n\nexport const BDatepickerTableRowPropsDefinition = {\n modelValue: {\n type: [Date, Array] as PropType<Date | Date[]>\n },\n 'onUpdate:modelValue': {\n type: Function as PropType<FunctionN<[Date | Date[]], void>>,\n required: true as const\n },\n focusedDate: {\n type: Object as PropType<Option<Date>>,\n required: true as const\n },\n 'onUpdate:focusedDate': {\n type: Function as PropType<FunctionN<[Option<Date>], unknown>>,\n required: true as const\n },\n showWeekNumber: {\n type: Boolean as PropType<boolean>,\n default: false as const\n },\n weekNumber: {\n type: Number as PropType<number>,\n required: true as const\n },\n week: {\n type: Array as PropType<Date[]>,\n required: true as const\n },\n month: {\n type: Number as PropType<number>,\n required: true as const\n },\n minDate: {\n type: Object as PropType<Option<Date>>,\n required: true as const\n },\n maxDate: {\n type: Object as PropType<Option<Date>>,\n required: true as const\n },\n isDisabled: {\n type: Boolean as PropType<boolean>,\n default: false as const\n },\n unselectableDates: {\n type: Array as PropType<Date[]>,\n default: constEmptyArray\n },\n unselectableDaysOfWeek: {\n type: Array as PropType<number[]>,\n default: constEmptyArray\n },\n selectableDates: {\n type: Object as PropType<Option<Date[]>>,\n default: constNone\n },\n events: {\n type: Array as PropType<DateEvent[]>,\n default: constEmptyArray\n },\n indicators: {\n type: String as PropType<'dots' | 'bars'>,\n required: true as const\n }\n};\n\nexport type BDatePickerTableRowProps = ExtractPropTypes<typeof BDatepickerTableRowPropsDefinition>;\n\nfunction getIsAfterMinDate(props: BDatePickerTableRowProps) {\n return function isAfterMinDate(date: Date): boolean {\n return pipe(\n props.minDate,\n fold(constTrue, d => isOnOrAfterDate(date, d))\n );\n };\n}\n\nfunction getIsBeforeMaxDate(props: BDatePickerTableRowProps) {\n return function isBeforeMaxDate(date: Date): boolean {\n return pipe(\n props.maxDate,\n fold(constTrue, d => isOnOrBeforeDate(date, d))\n );\n };\n}\n\nfunction getIsWithinMonth(props: BDatePickerTableRowProps) {\n return function isWithinMonth(date: Date): boolean {\n return date.getMonth() === props.month;\n };\n}\n\nfunction getIsEnabled(props: BDatePickerTableRowProps) {\n return function isEnabled(date: Date): boolean {\n return (\n !elemSerialDate(date, props.unselectableDates) &&\n pipe(\n props.selectableDates,\n fold(constTrue, dates => elemSerialDate(date, dates))\n )\n );\n };\n}\n\nfunction getIsOnSelectableDayOfWeek(props: BDatePickerTableRowProps) {\n return function isOnSelectableDayOfWeek(date: Date): boolean {\n return !props.unselectableDaysOfWeek.includes(date.getDay());\n };\n}\n\nfunction getDatePredicates(props: BDatePickerTableRowProps) {\n const isAfterMinDate = getIsAfterMinDate(props);\n const isBeforeMaxDate = getIsBeforeMaxDate(props);\n const isWithinMonth = getIsWithinMonth(props);\n const isEnabled = getIsEnabled(props);\n const isOnSelectableDayOfWeek = getIsOnSelectableDayOfWeek(props);\n function isSelectedDate(date: Date): boolean {\n return Array.isArray(props.modelValue)\n ? props.modelValue.some(d => isSameDay(d, date))\n : props.modelValue\n ? isSameDay(props.modelValue, date)\n : false;\n }\n function isSelectableDate(date: Date): boolean {\n return [\n isAfterMinDate(date),\n isBeforeMaxDate(date),\n isWithinMonth(date),\n isEnabled(date),\n isOnSelectableDayOfWeek(date)\n ].every(identity);\n }\n return {\n isAfterMinDate,\n isBeforeMaxDate,\n isWithinMonth,\n isEnabled,\n isOnSelectableDayOfWeek,\n isSelectableDate,\n isSelectedDate\n };\n}\n\ntype DatePredicates = ReturnType<typeof getDatePredicates>;\n\nfunction getDateClassesGenerator(props: BDatePickerTableRowProps, predicates: DatePredicates) {\n const today = new Date();\n return function getDateClasses(date: Date | undefined | null, hasEvents = false) {\n if (isDate(date)) {\n const isSelectable = predicates.isSelectableDate(date);\n return {\n 'is-selected': predicates.isSelectedDate(date),\n 'is-today': isSameDay(date, today),\n 'is-selectable': isSelectable && !props.isDisabled,\n 'is-unselectable': !isSelectable || props.isDisabled,\n 'has-event': hasEvents\n };\n } else {\n return {};\n }\n };\n}\n\nfunction generateWeekNumber(weekNumber: number): VNode {\n return h('td', [`${weekNumber}`]);\n}\n\nfunction getGenerateCell(props: BDatePickerTableRowProps) {\n return function generateCell(cell: DateCell): VNode {\n return h(BDatepickerTableCell, {\n key: cell.date.toLocaleDateString(),\n cell,\n modelValue: props.modelValue,\n 'onUpdate:modelValue': props['onUpdate:modelValue'],\n focusedDate: props.focusedDate,\n 'onUpdate:focusedDate': props['onUpdate:focusedDate'],\n indicators: props.indicators\n });\n };\n}\n\nexport default defineComponent({\n name: 'b-datepicker-table-row',\n props: BDatepickerTableRowPropsDefinition,\n setup(props) {\n const formattedEvents: Ref<DetailedDateEvent[]> = computed(() =>\n props.events.map(event => (isDate(event) ? { date: event, variant: 'is-primary' } : event))\n );\n const predicates = getDatePredicates(props);\n const getDateClasses = getDateClassesGenerator(props, predicates);\n const cells = computed(() =>\n props.week.map(date => {\n const events = formattedEvents.value.filter(event => isSameDay(date, event.date));\n const hasEvents = isNonEmpty(events);\n return {\n date,\n events,\n hasEvents,\n isSelected: predicates.isSelectedDate(date),\n isDisabled: props.isDisabled || !predicates.isSelectableDate(date),\n number: date.getDate(),\n ariaLabel: date.toLocaleDateString(),\n classes: getDateClasses(date, hasEvents)\n };\n })\n );\n const generateCell = getGenerateCell(props);\n return () => {\n return h(\n 'tr',\n { class: 'datepicker-row' },\n props.showWeekNumber\n ? [generateWeekNumber(props.weekNumber), ...cells.value.map(generateCell)]\n : cells.value.map(generateCell)\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BDatepickerTableRow.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/index.d.ts b/node_modules/buetify/lib/components/form/datepicker/index.d.ts new file mode 100755 index 0000000..0c92732 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/index.d.ts @@ -0,0 +1,3 @@ +import BDatepicker from './BDatepicker'; +export default BDatepicker; +export { BDatepicker }; diff --git a/node_modules/buetify/lib/components/form/datepicker/index.js b/node_modules/buetify/lib/components/form/datepicker/index.js new file mode 100755 index 0000000..0817129 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/index.js @@ -0,0 +1,4 @@ +import BDatepicker from './BDatepicker'; +export default BDatepicker; +export { BDatepicker }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/index.js.map b/node_modules/buetify/lib/components/form/datepicker/index.js.map new file mode 100755 index 0000000..707140c --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAP,MAAwB,eAAxB;AAEA,eAAe,WAAf;AAEA,SAAS,WAAT","sourcesContent":["import BDatepicker from './BDatepicker';\n\nexport default BDatepicker;\n\nexport { BDatepicker };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/shared.d.ts b/node_modules/buetify/lib/components/form/datepicker/shared.d.ts new file mode 100755 index 0000000..aa56c17 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/shared.d.ts @@ -0,0 +1,20 @@ +import { ColorVariant } from '../../../types/ColorVariants'; +export declare type DateEvent = Date | DetailedDateEvent; +export interface DetailedDateEvent { + date: Date; + variant: ColorVariant; +} +export declare type EventIndicator = 'dots' | 'bars'; +export declare const DEFAULT_DAY_NAMES: string[]; +export declare const DEFAULT_MONTH_NAMES: string[]; +export declare type MonthNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11; +export interface DateCell { + date: Date; + number: number; + ariaLabel: string; + isDisabled: boolean; + isSelected: boolean; + events: DetailedDateEvent[]; + hasEvents: boolean; + classes: object; +} diff --git a/node_modules/buetify/lib/components/form/datepicker/shared.js b/node_modules/buetify/lib/components/form/datepicker/shared.js new file mode 100755 index 0000000..73184e5 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/shared.js @@ -0,0 +1,3 @@ +export const DEFAULT_DAY_NAMES = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'S']; +export const DEFAULT_MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/shared.js.map b/node_modules/buetify/lib/components/form/datepicker/shared.js.map new file mode 100755 index 0000000..64f0725 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/shared.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/shared.ts"],"names":[],"mappings":"AAWA,OAAO,MAAM,iBAAiB,GAAG,CAAC,IAAD,EAAO,GAAP,EAAY,IAAZ,EAAkB,GAAlB,EAAuB,IAAvB,EAA6B,GAA7B,EAAkC,GAAlC,CAA1B;AAEP,OAAO,MAAM,mBAAmB,GAAG,CACjC,SADiC,EAEjC,UAFiC,EAGjC,OAHiC,EAIjC,OAJiC,EAKjC,KALiC,EAMjC,MANiC,EAOjC,MAPiC,EAQjC,QARiC,EASjC,WATiC,EAUjC,SAViC,EAWjC,UAXiC,EAYjC,UAZiC,CAA5B","sourcesContent":["import { ColorVariant } from '../../../types/ColorVariants';\n\nexport type DateEvent = Date | DetailedDateEvent;\n\nexport interface DetailedDateEvent {\n date: Date;\n variant: ColorVariant;\n}\n\nexport type EventIndicator = 'dots' | 'bars';\n\nexport const DEFAULT_DAY_NAMES = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'S'];\n\nexport const DEFAULT_MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n];\n\nexport type MonthNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\n\nexport interface DateCell {\n date: Date;\n number: number;\n ariaLabel: string;\n isDisabled: boolean;\n isSelected: boolean;\n events: DetailedDateEvent[];\n hasEvents: boolean;\n classes: object;\n}\n"],"sourceRoot":"","file":"shared.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/utils.d.ts b/node_modules/buetify/lib/components/form/datepicker/utils.d.ts new file mode 100755 index 0000000..3aea4e2 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/utils.d.ts @@ -0,0 +1,27 @@ +import { Eq } from 'fp-ts/lib/Eq'; +import { Ord } from 'fp-ts/lib/Ord'; +export declare function isDate(value: unknown): value is Date; +export declare function getStartOfDay(date: Date): Date; +export declare function getEndOfDay(date: Date): Date; +export declare function isSameDay(x: Date, y: Date): boolean; +export declare function isBeforeDay(date: Date, isBefore: Date): boolean; +export declare function isAfterDay(date: Date, isAfter: Date): boolean; +export declare function isSameMonth(x: Date, y: Date): boolean; +export declare const eqSerialDate: Eq<Date>; +export declare const ordSerialDate: Ord<Date>; +export declare const isOnOrAfterDate: (x: Date, y: Date) => boolean; +export declare const isOnOrBeforeDate: (x: Date, y: Date) => boolean; +export declare const elemSerialDate: { + (a: Date): (as: Date[]) => boolean; + (a: Date, as: Date[]): boolean; +}; +export declare type WeekdayNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6; +export declare function getStartOfMonth(date: Date): Date; +export declare function getEndOfMonth(date: Date): Date; +export declare function getStartOfWeek(date: Date, weekStartsOn?: WeekdayNumber): Date; +export declare function getEndOfWeek(date: Date, weekStartsOn?: WeekdayNumber): Date; +export declare function isWithinWeek(date: Date, secondDate: Date, weekStartsOn?: WeekdayNumber): boolean; +export declare function getDaysInMonth(date: Date): number; +export declare function addDays(date: Date, days: number): Date; +export declare function getDatesInWeek(date: Date, weekStartsOn?: WeekdayNumber): Date[]; +export declare function addMonths(date: Date, months: number): Date; diff --git a/node_modules/buetify/lib/components/form/datepicker/utils.js b/node_modules/buetify/lib/components/form/datepicker/utils.js new file mode 100755 index 0000000..7a26cd0 --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/utils.js @@ -0,0 +1,108 @@ +import { elem } from 'fp-ts/lib/Array'; +import { fromEquals } from 'fp-ts/lib/Eq'; +import { fromCompare, geq, leq } from 'fp-ts/lib/Ord'; +export function isDate(value) { + // from date-fns + return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]'; +} +export function getStartOfDay(date) { + const clone = new Date(date.getTime()); + clone.setHours(0, 0, 0, 0); + return clone; +} +export function getEndOfDay(date) { + const clone = new Date(date.getTime()); + clone.setHours(23, 59, 59, 999); + return clone; +} +export function isSameDay(x, y) { + return getStartOfDay(x).getTime() === getStartOfDay(y).getTime(); +} +export function isBeforeDay(date, isBefore) { + return date.getTime() < getStartOfDay(isBefore).getTime(); +} +export function isAfterDay(date, isAfter) { + return date.getTime() > getEndOfDay(isAfter).getTime(); +} + +function compareSerialDate(x, y) { + return isBeforeDay(x, y) ? -1 : isAfterDay(x, y) ? 1 : 0; +} + +export function isSameMonth(x, y) { + return x.getFullYear() === y.getFullYear() && x.getMonth() === y.getMonth(); +} +export const eqSerialDate = fromEquals(isSameDay); +export const ordSerialDate = fromCompare(compareSerialDate); +export const isOnOrAfterDate = geq(ordSerialDate); +export const isOnOrBeforeDate = leq(ordSerialDate); +export const elemSerialDate = elem(ordSerialDate); +export function getStartOfMonth(date) { + const clone = new Date(date.getTime()); + clone.setDate(1); + clone.setHours(0, 0, 0, 0); + return clone; +} +export function getEndOfMonth(date) { + const clone = new Date(date.getTime()); + const month = clone.getMonth(); + clone.setFullYear(clone.getFullYear(), month + 1, 0); + clone.setHours(23, 59, 59, 999); + return clone; +} +export function getStartOfWeek(date, weekStartsOn = 0) { + const clone = new Date(date.getTime()); + const day = clone.getDay(); + const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + clone.setDate(clone.getDate() - diff); + clone.setHours(0, 0, 0, 0); + return clone; +} +export function getEndOfWeek(date, weekStartsOn = 0) { + const clone = new Date(date.getTime()); + const day = clone.getDay(); + const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); + clone.setDate(clone.getDate() + diff); + clone.setHours(23, 59, 59, 999); + return clone; +} +export function isWithinWeek(date, secondDate, weekStartsOn = 0) { + return isOnOrAfterDate(date, getStartOfWeek(secondDate, weekStartsOn)) && isOnOrBeforeDate(date, getEndOfWeek(secondDate, weekStartsOn)); +} +export function getDaysInMonth(date) { + const clone = new Date(date.getTime()); + const year = clone.getFullYear(); + const monthIndex = clone.getMonth(); + const lastDayOfMonth = new Date(0); + lastDayOfMonth.setFullYear(year, monthIndex + 1, 0); + lastDayOfMonth.setHours(0, 0, 0, 0); + return lastDayOfMonth.getDate(); +} +export function addDays(date, days) { + const clone = new Date(date.getTime()); + clone.setDate(clone.getDate() + days); + return clone; +} +export function getDatesInWeek(date, weekStartsOn = 0) { + const dates = []; + let day = getStartOfWeek(date, weekStartsOn); + const end = getEndOfWeek(date, weekStartsOn); + + while (isOnOrBeforeDate(day, end)) { + dates.push(day); + day = addDays(day, 1); + } + + return dates; +} +export function addMonths(date, months) { + const clone = new Date(date.getTime()); + const newMonth = clone.getMonth() + months; + const dateWithDesiredMonth = new Date(0); + dateWithDesiredMonth.setFullYear(clone.getFullYear(), newMonth, 1); + dateWithDesiredMonth.setHours(0, 0, 0, 0); + const daysInMonth = getDaysInMonth(dateWithDesiredMonth); + clone.setMonth(newMonth, Math.min(daysInMonth, clone.getDate())); + return clone; +} +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/datepicker/utils.js.map b/node_modules/buetify/lib/components/form/datepicker/utils.js.map new file mode 100755 index 0000000..8a1274d --- /dev/null +++ b/node_modules/buetify/lib/components/form/datepicker/utils.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/datepicker/utils.ts"],"names":[],"mappings":"AAAA,SAAS,IAAT,QAAqB,iBAArB;AACA,SAAa,UAAb,QAA+B,cAA/B;AACA,SAAS,WAAT,EAAsB,GAAtB,EAA2B,GAA3B,QAA2C,eAA3C;AAGA,OAAM,SAAU,MAAV,CAAiB,KAAjB,EAA+B;AACnC;AACA,SACE,KAAK,YAAY,IAAjB,IAA0B,OAAO,KAAP,KAAiB,QAAjB,IAA6B,MAAM,CAAC,SAAP,CAAiB,QAAjB,CAA0B,IAA1B,CAA+B,KAA/B,MAA0C,eADnG;AAGD;AAED,OAAM,SAAU,aAAV,CAAwB,IAAxB,EAAkC;AACtC,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,WAAV,CAAsB,IAAtB,EAAgC;AACpC,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,GAA3B;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,SAAV,CAAoB,CAApB,EAA6B,CAA7B,EAAoC;AACxC,SAAO,aAAa,CAAC,CAAD,CAAb,CAAiB,OAAjB,OAA+B,aAAa,CAAC,CAAD,CAAb,CAAiB,OAAjB,EAAtC;AACD;AAED,OAAM,SAAU,WAAV,CAAsB,IAAtB,EAAkC,QAAlC,EAAgD;AACpD,SAAO,IAAI,CAAC,OAAL,KAAiB,aAAa,CAAC,QAAD,CAAb,CAAwB,OAAxB,EAAxB;AACD;AAED,OAAM,SAAU,UAAV,CAAqB,IAArB,EAAiC,OAAjC,EAA8C;AAClD,SAAO,IAAI,CAAC,OAAL,KAAiB,WAAW,CAAC,OAAD,CAAX,CAAqB,OAArB,EAAxB;AACD;;AAED,SAAS,iBAAT,CAA2B,CAA3B,EAAoC,CAApC,EAA2C;AACzC,SAAO,WAAW,CAAC,CAAD,EAAI,CAAJ,CAAX,GAAoB,CAAC,CAArB,GAAyB,UAAU,CAAC,CAAD,EAAI,CAAJ,CAAV,GAAmB,CAAnB,GAAuB,CAAvD;AACD;;AAED,OAAM,SAAU,WAAV,CAAsB,CAAtB,EAA+B,CAA/B,EAAsC;AAC1C,SAAO,CAAC,CAAC,WAAF,OAAoB,CAAC,CAAC,WAAF,EAApB,IAAuC,CAAC,CAAC,QAAF,OAAiB,CAAC,CAAC,QAAF,EAA/D;AACD;AAED,OAAO,MAAM,YAAY,GAAa,UAAU,CAAC,SAAD,CAAzC;AACP,OAAO,MAAM,aAAa,GAAc,WAAW,CAAC,iBAAD,CAA5C;AAEP,OAAO,MAAM,eAAe,GAAG,GAAG,CAAC,aAAD,CAA3B;AAEP,OAAO,MAAM,gBAAgB,GAAG,GAAG,CAAC,aAAD,CAA5B;AAEP,OAAO,MAAM,cAAc,GAAG,IAAI,CAAC,aAAD,CAA3B;AAIP,OAAM,SAAU,eAAV,CAA0B,IAA1B,EAAoC;AACxC,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,EAAA,KAAK,CAAC,OAAN,CAAc,CAAd;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,aAAV,CAAwB,IAAxB,EAAkC;AACtC,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,QAAM,KAAK,GAAG,KAAK,CAAC,QAAN,EAAd;AACA,EAAA,KAAK,CAAC,WAAN,CAAkB,KAAK,CAAC,WAAN,EAAlB,EAAuC,KAAK,GAAG,CAA/C,EAAkD,CAAlD;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,GAA3B;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,cAAV,CAAyB,IAAzB,EAAqC,YAAA,GAA8B,CAAnE,EAAoE;AACxE,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,QAAM,GAAG,GAAG,KAAK,CAAC,MAAN,EAAZ;AACA,QAAM,IAAI,GAAG,CAAC,GAAG,GAAG,YAAN,GAAqB,CAArB,GAAyB,CAA1B,IAA+B,GAA/B,GAAqC,YAAlD;AACA,EAAA,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,OAAN,KAAkB,IAAhC;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,YAAV,CAAuB,IAAvB,EAAmC,YAAA,GAA8B,CAAjE,EAAkE;AACtE,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,QAAM,GAAG,GAAG,KAAK,CAAC,MAAN,EAAZ;AACA,QAAM,IAAI,GAAG,CAAC,GAAG,GAAG,YAAN,GAAqB,CAAC,CAAtB,GAA0B,CAA3B,IAAgC,CAAhC,IAAqC,GAAG,GAAG,YAA3C,CAAb;AACA,EAAA,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,OAAN,KAAkB,IAAhC;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,GAA3B;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,YAAV,CAAuB,IAAvB,EAAmC,UAAnC,EAAqD,YAAA,GAA8B,CAAnF,EAAoF;AACxF,SACE,eAAe,CAAC,IAAD,EAAO,cAAc,CAAC,UAAD,EAAa,YAAb,CAArB,CAAf,IACA,gBAAgB,CAAC,IAAD,EAAO,YAAY,CAAC,UAAD,EAAa,YAAb,CAAnB,CAFlB;AAID;AAED,OAAM,SAAU,cAAV,CAAyB,IAAzB,EAAmC;AACvC,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,QAAM,IAAI,GAAG,KAAK,CAAC,WAAN,EAAb;AACA,QAAM,UAAU,GAAG,KAAK,CAAC,QAAN,EAAnB;AACA,QAAM,cAAc,GAAG,IAAI,IAAJ,CAAS,CAAT,CAAvB;AACA,EAAA,cAAc,CAAC,WAAf,CAA2B,IAA3B,EAAiC,UAAU,GAAG,CAA9C,EAAiD,CAAjD;AACA,EAAA,cAAc,CAAC,QAAf,CAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,EAAiC,CAAjC;AACA,SAAO,cAAc,CAAC,OAAf,EAAP;AACD;AAED,OAAM,SAAU,OAAV,CAAkB,IAAlB,EAA8B,IAA9B,EAA0C;AAC9C,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,EAAA,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,OAAN,KAAkB,IAAhC;AACA,SAAO,KAAP;AACD;AAED,OAAM,SAAU,cAAV,CAAyB,IAAzB,EAAqC,YAAA,GAA8B,CAAnE,EAAoE;AACxE,QAAM,KAAK,GAAG,EAAd;AACA,MAAI,GAAG,GAAG,cAAc,CAAC,IAAD,EAAO,YAAP,CAAxB;AACA,QAAM,GAAG,GAAG,YAAY,CAAC,IAAD,EAAO,YAAP,CAAxB;;AACA,SAAO,gBAAgB,CAAC,GAAD,EAAM,GAAN,CAAvB,EAAmC;AACjC,IAAA,KAAK,CAAC,IAAN,CAAW,GAAX;AACA,IAAA,GAAG,GAAG,OAAO,CAAC,GAAD,EAAM,CAAN,CAAb;AACD;;AACD,SAAO,KAAP;AACD;AAED,OAAM,SAAU,SAAV,CAAoB,IAApB,EAAgC,MAAhC,EAA8C;AAClD,QAAM,KAAK,GAAG,IAAI,IAAJ,CAAS,IAAI,CAAC,OAAL,EAAT,CAAd;AACA,QAAM,QAAQ,GAAG,KAAK,CAAC,QAAN,KAAmB,MAApC;AACA,QAAM,oBAAoB,GAAG,IAAI,IAAJ,CAAS,CAAT,CAA7B;AACA,EAAA,oBAAoB,CAAC,WAArB,CAAiC,KAAK,CAAC,WAAN,EAAjC,EAAsD,QAAtD,EAAgE,CAAhE;AACA,EAAA,oBAAoB,CAAC,QAArB,CAA8B,CAA9B,EAAiC,CAAjC,EAAoC,CAApC,EAAuC,CAAvC;AACA,QAAM,WAAW,GAAG,cAAc,CAAC,oBAAD,CAAlC;AACA,EAAA,KAAK,CAAC,QAAN,CAAe,QAAf,EAAyB,IAAI,CAAC,GAAL,CAAS,WAAT,EAAsB,KAAK,CAAC,OAAN,EAAtB,CAAzB;AACA,SAAO,KAAP;AACD","sourcesContent":["import { elem } from 'fp-ts/lib/Array';\nimport { Eq, fromEquals } from 'fp-ts/lib/Eq';\nimport { fromCompare, geq, leq, Ord } from 'fp-ts/lib/Ord';\nimport { Ordering } from 'fp-ts/lib/Ordering';\n\nexport function isDate(value: unknown): value is Date {\n // from date-fns\n return (\n value instanceof Date || (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]')\n );\n}\n\nexport function getStartOfDay(date: Date): Date {\n const clone = new Date(date.getTime());\n clone.setHours(0, 0, 0, 0);\n return clone;\n}\n\nexport function getEndOfDay(date: Date): Date {\n const clone = new Date(date.getTime());\n clone.setHours(23, 59, 59, 999);\n return clone;\n}\n\nexport function isSameDay(x: Date, y: Date): boolean {\n return getStartOfDay(x).getTime() === getStartOfDay(y).getTime();\n}\n\nexport function isBeforeDay(date: Date, isBefore: Date): boolean {\n return date.getTime() < getStartOfDay(isBefore).getTime();\n}\n\nexport function isAfterDay(date: Date, isAfter: Date): boolean {\n return date.getTime() > getEndOfDay(isAfter).getTime();\n}\n\nfunction compareSerialDate(x: Date, y: Date): Ordering {\n return isBeforeDay(x, y) ? -1 : isAfterDay(x, y) ? 1 : 0;\n}\n\nexport function isSameMonth(x: Date, y: Date): boolean {\n return x.getFullYear() === y.getFullYear() && x.getMonth() === y.getMonth();\n}\n\nexport const eqSerialDate: Eq<Date> = fromEquals(isSameDay);\nexport const ordSerialDate: Ord<Date> = fromCompare(compareSerialDate);\n\nexport const isOnOrAfterDate = geq(ordSerialDate);\n\nexport const isOnOrBeforeDate = leq(ordSerialDate);\n\nexport const elemSerialDate = elem(ordSerialDate);\n\nexport type WeekdayNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport function getStartOfMonth(date: Date): Date {\n const clone = new Date(date.getTime());\n clone.setDate(1);\n clone.setHours(0, 0, 0, 0);\n return clone;\n}\n\nexport function getEndOfMonth(date: Date): Date {\n const clone = new Date(date.getTime());\n const month = clone.getMonth();\n clone.setFullYear(clone.getFullYear(), month + 1, 0);\n clone.setHours(23, 59, 59, 999);\n return clone;\n}\n\nexport function getStartOfWeek(date: Date, weekStartsOn: WeekdayNumber = 0): Date {\n const clone = new Date(date.getTime());\n const day = clone.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n clone.setDate(clone.getDate() - diff);\n clone.setHours(0, 0, 0, 0);\n return clone;\n}\n\nexport function getEndOfWeek(date: Date, weekStartsOn: WeekdayNumber = 0): Date {\n const clone = new Date(date.getTime());\n const day = clone.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n clone.setDate(clone.getDate() + diff);\n clone.setHours(23, 59, 59, 999);\n return clone;\n}\n\nexport function isWithinWeek(date: Date, secondDate: Date, weekStartsOn: WeekdayNumber = 0): boolean {\n return (\n isOnOrAfterDate(date, getStartOfWeek(secondDate, weekStartsOn)) &&\n isOnOrBeforeDate(date, getEndOfWeek(secondDate, weekStartsOn))\n );\n}\n\nexport function getDaysInMonth(date: Date): number {\n const clone = new Date(date.getTime());\n const year = clone.getFullYear();\n const monthIndex = clone.getMonth();\n const lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\nexport function addDays(date: Date, days: number): Date {\n const clone = new Date(date.getTime());\n clone.setDate(clone.getDate() + days);\n return clone;\n}\n\nexport function getDatesInWeek(date: Date, weekStartsOn: WeekdayNumber = 0): Date[] {\n const dates = [];\n let day = getStartOfWeek(date, weekStartsOn);\n const end = getEndOfWeek(date, weekStartsOn);\n while (isOnOrBeforeDate(day, end)) {\n dates.push(day);\n day = addDays(day, 1);\n }\n return dates;\n}\n\nexport function addMonths(date: Date, months: number): Date {\n const clone = new Date(date.getTime());\n const newMonth = clone.getMonth() + months;\n const dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(clone.getFullYear(), newMonth, 1);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n clone.setMonth(newMonth, Math.min(daysInMonth, clone.getDate()));\n return clone;\n}\n"],"sourceRoot":"","file":"utils.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/field/BField.d.ts b/node_modules/buetify/lib/components/form/field/BField.d.ts new file mode 100755 index 0000000..589ce54 --- /dev/null +++ b/node_modules/buetify/lib/components/form/field/BField.d.ts @@ -0,0 +1,157 @@ +import '../sass/tools.sass'; +import { PropType, VNode, ExtractPropTypes } from 'vue'; +import { AllColorsVariant } from '../../../types/ColorVariants'; +export declare type FieldPosition = 'is-left' | 'is-centered' | 'is-right'; +export declare const BFieldPropsDefinition: { + isGrouped: { + type: PropType<boolean>; + default: boolean; + }; + isGroupedMultiline: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<"is-left" | "is-right" | "is-centered">; + default: string; + }; + isHorizontal: { + type: PropType<boolean>; + default: boolean; + }; + hasAddons: { + type: PropType<boolean>; + default: boolean; + }; + customLabelClass: { + type: PropType<string>; + default: string; + }; + variant: { + type: PropType<AllColorsVariant>; + required: boolean; + }; + message: { + type: PropType<string | { + [K: string]: boolean; + } | (string | { + [K: string]: boolean; + })[]>; + required: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + labelFor: PropType<string>; + label: { + type: PropType<string>; + default: string; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type BFieldProps = ExtractPropTypes<typeof BFieldPropsDefinition>; +declare const BField: import("vue").DefineComponent<{ + isGrouped: { + type: PropType<boolean>; + default: boolean; + }; + isGroupedMultiline: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<"is-left" | "is-right" | "is-centered">; + default: string; + }; + isHorizontal: { + type: PropType<boolean>; + default: boolean; + }; + hasAddons: { + type: PropType<boolean>; + default: boolean; + }; + customLabelClass: { + type: PropType<string>; + default: string; + }; + variant: { + type: PropType<AllColorsVariant>; + required: boolean; + }; + message: { + type: PropType<string | { + [K: string]: boolean; + } | (string | { + [K: string]: boolean; + })[]>; + required: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + labelFor: PropType<string>; + label: { + type: PropType<string>; + default: string; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + isExpanded: boolean; + position: "is-left" | "is-right" | "is-centered"; + label: string; + isGrouped: boolean; + isGroupedMultiline: boolean; + isHorizontal: boolean; + hasAddons: boolean; + customLabelClass: string; +} & { + variant?: "" | "is-black-ter" | "is-orange" | "is-primary" | "is-info" | "is-link" | "is-success" | "is-warning" | "is-danger" | "is-white" | "is-black" | "is-light" | "is-dark" | "is-black-bis" | "is-grey-darker" | "is-grey-dark" | "is-grey" | "is-grey-light" | "is-grey-lighter" | "is-white-ter" | "is-white-bis" | undefined; + message?: string | { + [K: string]: boolean; + } | (string | { + [K: string]: boolean; + })[] | undefined; + labelFor?: string | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + isExpanded: boolean; + position: "is-left" | "is-right" | "is-centered"; + label: string; + isGrouped: boolean; + isGroupedMultiline: boolean; + isHorizontal: boolean; + hasAddons: boolean; + customLabelClass: string; +}>; +export interface BFieldBodyProps { + message?: string; + variant?: AllColorsVariant; + tag?: string; +} +export default BField; diff --git a/node_modules/buetify/lib/components/form/field/BField.js b/node_modules/buetify/lib/components/form/field/BField.js new file mode 100755 index 0000000..ab068ee --- /dev/null +++ b/node_modules/buetify/lib/components/form/field/BField.js @@ -0,0 +1,164 @@ +import "../../../../src/components/form/sass/tools.sass"; +import { constant } from 'fp-ts/lib/function'; +import { provideFieldData, ProvideFieldDataPropsDefinition } from '../../../composables/fieldData'; +import { DefaultThemePropsDefinition } from '../../../composables/theme'; +import { h, defineComponent, computed, shallowRef, watch } from 'vue'; + +function useRootClasses(props) { + return { + 'is-expanded': props.isExpanded, + 'is-horizontal': props.isHorizontal + }; +} + +function useFieldType(isGrouped, hasAddons) { + return isGrouped ? 'is-grouped' : hasAddons ? 'has-addons' : ''; +} + +function useInnerFieldClasses(props, fieldType) { + const isGrouped = props.isGrouped; + const position = props.position; + return [fieldType, { + 'flex-grow-1': props.isExpanded, + 'is-grouped-multiline': props.isGroupedMultiline, + 'is-horizontal': props.isHorizontal, + 'is-grouped-centered': isGrouped && position === 'is-centered', + 'is-grouped-right': isGrouped && position === 'is-right', + 'has-addons-centered': !isGrouped && position === 'is-centered', + 'has-addons-right': !isGrouped && position === 'is-right' + }]; +} + +export const BFieldPropsDefinition = { ...DefaultThemePropsDefinition, + ...ProvideFieldDataPropsDefinition, + isGrouped: { + type: Boolean, + default: false + }, + isGroupedMultiline: { + type: Boolean, + default: false + }, + position: { + type: String, + default: 'is-left' + }, + isHorizontal: { + type: Boolean, + default: false + }, + hasAddons: { + type: Boolean, + default: true + }, + customLabelClass: { + type: String, + default: '' + } +}; + +function generateInnerLabel(fieldData, customClass) { + return h('label', { + class: ['label', customClass], + id: fieldData.labelId.value, + for: fieldData.id.value + }, fieldData.label.value); +} + +function generateHorizontalLabel(fieldData, customClass, size) { + return h('div', { + class: ['field-label', size] + }, [generateInnerLabel(fieldData, customClass)]); +} + +function generateLabel(isHorizontal, fieldData, customClass, size) { + const label = fieldData.label.value; + + if (isHorizontal && !!label) { + return [generateHorizontalLabel(fieldData, customClass, size)]; + } else if (!isHorizontal && !!label) { + return [generateInnerLabel(fieldData, customClass)]; + } else { + return []; + } +} + +function generateHelpMessage(isHorizontal, fieldDataAttrs) { + return !isHorizontal && !!fieldDataAttrs.message.value ? h('p', { + class: ['help', fieldDataAttrs.messageVariant.value], + innerHTML: fieldDataAttrs.message.value + }) : undefined; +} + +function generateBody(props, fieldData, role, hasInnerField, fieldType, slots) { + if (props.isHorizontal) { + return [h(BFieldBody, // eslint-disable-line + { + class: { + 'is-expanded': fieldData.isExpanded.value + }, + message: fieldData.message.value, + variant: fieldData.messageVariant.value, + role + }, slots.default)]; + } else if (hasInnerField) { + return [h('div', { + class: 'field-body' + }, [h(BField, // eslint-disable-line + { + hasAddons: false, + variant: fieldData.messageVariant.value, + class: useInnerFieldClasses(props, fieldType) + }, slots.default)])]; + } else { + return slots.default ? slots.default() : []; + } +} + +const BField = defineComponent({ + name: 'b-field', + props: BFieldPropsDefinition, + + setup(props, { + slots + }) { + const field = shallowRef(null); + const fieldData = provideFieldData(props); + const role = computed(() => props.isGrouped ? 'group' : ''); + const size = shallowRef(''); + watch(field, newVal => { + if (props.isHorizontal && newVal) { + // Bulma docs: .is-normal for any .input or .button + const elements = newVal.querySelectorAll('.input, .select, .button, .textarea'); + + if (elements.length > 0) { + size.value = 'is-normal'; + } + } + }); + return () => { + const hasAddons = !!(props.hasAddons && !props.isHorizontal && slots.default && slots.default().length > 1); + const hasInnerField = props.isGrouped || props.isGroupedMultiline || hasAddons; + const nodes = [...generateLabel(props.isHorizontal, fieldData.attrs, props.customLabelClass, size.value), ...generateBody(props, fieldData.attrs, role.value, hasInnerField, useFieldType(props.isGrouped, hasAddons), slots), generateHelpMessage(props.isHorizontal, fieldData.attrs)]; + return h('div', { + ref: field, + class: ['field', useRootClasses(props)], + role: role.value + }, nodes); + }; + } + +}); // eslint-disable-next-line + +function BFieldBody(props, { + attrs, + slots +}) { + const nodes = slots.default ? slots.default() : []; + return h(props.tag ?? 'div', { + class: 'field-body' + }, nodes.map(element => element.el ? element : h(BField, props, constant(element)))); +} + +export default BField; +//# sourceMappingURL=BField.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/field/BField.js.map b/node_modules/buetify/lib/components/form/field/BField.js.map new file mode 100755 index 0000000..46f89db --- /dev/null +++ b/node_modules/buetify/lib/components/form/field/BField.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/field/BField.ts"],"names":[],"mappings":"AAAA,OAAO,iDAAP;AACA,SAAS,QAAT,QAAyB,oBAAzB;AACA,SAAyB,gBAAzB,EAA2C,+BAA3C,QAAkF,gCAAlF;AACA,SAAS,2BAAT,QAA4C,4BAA5C;AACA,SACE,CADF,EAIE,eAJF,EAKE,QALF,EAOE,UAPF,EAQE,KARF,QAWO,KAXP;;AAiBA,SAAS,cAAT,CAAwB,KAAxB,EAA0C;AACxC,SAAO;AACL,mBAAe,KAAK,CAAC,UADhB;AAEL,qBAAiB,KAAK,CAAC;AAFlB,GAAP;AAID;;AAED,SAAS,YAAT,CAAsB,SAAtB,EAA0C,SAA1C,EAA4D;AAC1D,SAAO,SAAS,GAAG,YAAH,GAAkB,SAAS,GAAG,YAAH,GAAkB,EAA7D;AACD;;AAED,SAAS,oBAAT,CAA8B,KAA9B,EAAkD,SAAlD,EAAmE;AACjE,QAAM,SAAS,GAAG,KAAK,CAAC,SAAxB;AACA,QAAM,QAAQ,GAAG,KAAK,CAAC,QAAvB;AACA,SAAO,CACL,SADK,EAEL;AACE,mBAAe,KAAK,CAAC,UADvB;AAEE,4BAAwB,KAAK,CAAC,kBAFhC;AAGE,qBAAiB,KAAK,CAAC,YAHzB;AAIE,2BAAuB,SAAS,IAAI,QAAQ,KAAK,aAJnD;AAKE,wBAAoB,SAAS,IAAI,QAAQ,KAAK,UALhD;AAME,2BAAuB,CAAC,SAAD,IAAc,QAAQ,KAAK,aANpD;AAOE,wBAAoB,CAAC,SAAD,IAAc,QAAQ,KAAK;AAPjD,GAFK,CAAP;AAYD;;AAED,OAAO,MAAM,qBAAqB,GAAG,EACnC,GAAG,2BADgC;AAEnC,KAAG,+BAFgC;AAGnC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GAHwB;AAOnC,EAAA,kBAAkB,EAAE;AAClB,IAAA,IAAI,EAAE,OADY;AAElB,IAAA,OAAO,EAAE;AAFS,GAPe;AAWnC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAXyB;AAenC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAfqB;AAmBnC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GAnBwB;AAuBnC,EAAA,gBAAgB,EAAE;AAChB,IAAA,IAAI,EAAE,MADU;AAEhB,IAAA,OAAO,EAAE;AAFO;AAvBiB,CAA9B;;AA+BP,SAAS,kBAAT,CAA4B,SAA5B,EAAuD,WAAvD,EAA0E;AACxE,SAAO,CAAC,CACN,OADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,OAAD,EAAU,WAAV,CADT;AAEE,IAAA,EAAE,EAAE,SAAS,CAAC,OAAV,CAAkB,KAFxB;AAGE,IAAA,GAAG,EAAE,SAAS,CAAC,EAAV,CAAa;AAHpB,GAFM,EAQN,SAAS,CAAC,KAAV,CAAgB,KARV,CAAR;AAUD;;AAED,SAAS,uBAAT,CAAiC,SAAjC,EAA4D,WAA5D,EAAiF,IAAjF,EAA6F;AAC3F,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE,CAAC,aAAD,EAAgB,IAAhB;AAAT,GAAR,EAA0C,CAAC,kBAAkB,CAAC,SAAD,EAAY,WAAZ,CAAnB,CAA1C,CAAR;AACD;;AAED,SAAS,aAAT,CAAuB,YAAvB,EAA8C,SAA9C,EAAyE,WAAzE,EAA8F,IAA9F,EAA0G;AACxG,QAAM,KAAK,GAAG,SAAS,CAAC,KAAV,CAAgB,KAA9B;;AACA,MAAI,YAAY,IAAI,CAAC,CAAC,KAAtB,EAA6B;AAC3B,WAAO,CAAC,uBAAuB,CAAC,SAAD,EAAY,WAAZ,EAAyB,IAAzB,CAAxB,CAAP;AACD,GAFD,MAEO,IAAI,CAAC,YAAD,IAAiB,CAAC,CAAC,KAAvB,EAA8B;AACnC,WAAO,CAAC,kBAAkB,CAAC,SAAD,EAAY,WAAZ,CAAnB,CAAP;AACD,GAFM,MAEA;AACL,WAAO,EAAP;AACD;AACF;;AAED,SAAS,mBAAT,CAA6B,YAA7B,EAAoD,cAApD,EAAkF;AAChF,SAAO,CAAC,YAAD,IAAiB,CAAC,CAAC,cAAc,CAAC,OAAf,CAAuB,KAA1C,GACH,CAAC,CAAC,GAAD,EAAM;AACL,IAAA,KAAK,EAAE,CAAC,MAAD,EAAS,cAAc,CAAC,cAAf,CAA8B,KAAvC,CADF;AAEL,IAAA,SAAS,EAAE,cAAc,CAAC,OAAf,CAAuB;AAF7B,GAAN,CADE,GAKH,SALJ;AAMD;;AAED,SAAS,YAAT,CACE,KADF,EAEE,SAFF,EAGE,IAHF,EAIE,aAJF,EAKE,SALF,EAME,KANF,EAMc;AAEZ,MAAI,KAAK,CAAC,YAAV,EAAwB;AACtB,WAAO,CACL,CAAC,CACC,UADD,EACa;AACZ;AACE,MAAA,KAAK,EAAE;AAAE,uBAAe,SAAS,CAAC,UAAV,CAAqB;AAAtC,OADT;AAEE,MAAA,OAAO,EAAE,SAAS,CAAC,OAAV,CAAkB,KAF7B;AAGE,MAAA,OAAO,EAAE,SAAS,CAAC,cAAV,CAAyB,KAHpC;AAIE,MAAA;AAJF,KAFD,EAQC,KAAK,CAAC,OARP,CADI,CAAP;AAYD,GAbD,MAaO,IAAI,aAAJ,EAAmB;AACxB,WAAO,CACL,CAAC,CACC,KADD,EAEC;AACE,MAAA,KAAK,EAAE;AADT,KAFD,EAKC,CACE,CAAC,CACC,MADD,EACS;AACR;AACE,MAAA,SAAS,EAAE,KADb;AAEE,MAAA,OAAO,EAAE,SAAS,CAAC,cAAV,CAAyB,KAFpC;AAGE,MAAA,KAAK,EAAE,oBAAoB,CAAC,KAAD,EAAQ,SAAR;AAH7B,KAFD,EAOC,KAAK,CAAC,OAPP,CADH,CALD,CADI,CAAP;AAmBD,GApBM,MAoBA;AACL,WAAO,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,EAAzC;AACD;AACF;;AAED,MAAM,MAAM,GAAG,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,SADuB;AAE7B,EAAA,KAAK,EAAE,qBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,KAAK,GAAG,UAAU,CAAE,IAAF,CAAxB;AACA,UAAM,SAAS,GAAG,gBAAgB,CAAC,KAAD,CAAlC;AACA,UAAM,IAAI,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,SAAN,GAAkB,OAAlB,GAA4B,EAApC,CAArB;AACA,UAAM,IAAI,GAAG,UAAU,CAAC,EAAD,CAAvB;AACA,IAAA,KAAK,CAAC,KAAD,EAAQ,MAAM,IAAG;AACpB,UAAI,KAAK,CAAC,YAAN,IAAsB,MAA1B,EAAkC;AAChC;AACA,cAAM,QAAQ,GAAG,MAAM,CAAC,gBAAP,CAAwB,qCAAxB,CAAjB;;AACA,YAAI,QAAQ,CAAC,MAAT,GAAkB,CAAtB,EAAyB;AACvB,UAAA,IAAI,CAAC,KAAL,GAAa,WAAb;AACD;AACF;AACF,KARI,CAAL;AASA,WAAO,MAAK;AACV,YAAM,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,SAAN,IAAmB,CAAC,KAAK,CAAC,YAA1B,IAA0C,KAAK,CAAC,OAAhD,IAA2D,KAAK,CAAC,OAAN,GAAgB,MAAhB,GAAyB,CAAtF,CAAnB;AACA,YAAM,aAAa,GAAG,KAAK,CAAC,SAAN,IAAmB,KAAK,CAAC,kBAAzB,IAA+C,SAArE;AAEA,YAAM,KAAK,GAA6B,CACtC,GAAG,aAAa,CAAC,KAAK,CAAC,YAAP,EAAqB,SAAS,CAAC,KAA/B,EAAsC,KAAK,CAAC,gBAA5C,EAA8D,IAAI,CAAC,KAAnE,CADsB,EAEtC,GAAG,YAAY,CACb,KADa,EAEb,SAAS,CAAC,KAFG,EAGb,IAAI,CAAC,KAHQ,EAIb,aAJa,EAKb,YAAY,CAAC,KAAK,CAAC,SAAP,EAAkB,SAAlB,CALC,EAMb,KANa,CAFuB,EAUtC,mBAAmB,CAAC,KAAK,CAAC,YAAP,EAAqB,SAAS,CAAC,KAA/B,CAVmB,CAAxC;AAaA,aAAO,CAAC,CACN,KADM,EAEN;AACE,QAAA,GAAG,EAAE,KADP;AAEE,QAAA,KAAK,EAAE,CAAC,OAAD,EAAU,cAAc,CAAC,KAAD,CAAxB,CAFT;AAGE,QAAA,IAAI,EAAE,IAAI,CAAC;AAHb,OAFM,EAON,KAPM,CAAR;AASD,KA1BD;AA2BD;;AA5C4B,CAAD,CAA9B,C,CAqDA;;AACA,SAAS,UAAT,CAAoB,KAApB,EAA4C;AAAE,EAAA,KAAF;AAAS,EAAA;AAAT,CAA5C,EAA0E;AACxE,QAAM,KAAK,GAAG,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,EAAhD;AACA,SAAO,CAAC,CACN,KAAK,CAAC,GAAN,IAAa,KADP,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,KAAK,CAAC,GAAN,CAAW,OAAD,IAAqB,OAAO,CAAC,EAAR,GAAa,OAAb,GAAuB,CAAC,CAAC,MAAD,EAAS,KAAT,EAAgB,QAAQ,CAAC,OAAD,CAAxB,CAAvD,CALM,CAAR;AAOD;;AAED,eAAe,MAAf","sourcesContent":["import '../sass/tools.sass';\nimport { constant } from 'fp-ts/lib/function';\nimport { FieldDataAttrs, provideFieldData, ProvideFieldDataPropsDefinition } from '../../../composables/fieldData';\nimport { DefaultThemePropsDefinition } from '../../../composables/theme';\nimport {\n h,\n PropType,\n VNode,\n defineComponent,\n computed,\n ExtractPropTypes,\n shallowRef,\n watch,\n Slots,\n SetupContext\n} from 'vue';\nimport { AllColorsVariant } from '../../../types/ColorVariants';\nimport { Classes } from '../../../utils/mergeClasses';\n\nexport type FieldPosition = 'is-left' | 'is-centered' | 'is-right';\n\nfunction useRootClasses(props: BFieldProps): Classes {\n return {\n 'is-expanded': props.isExpanded,\n 'is-horizontal': props.isHorizontal\n };\n}\n\nfunction useFieldType(isGrouped: boolean, hasAddons: boolean): string {\n return isGrouped ? 'is-grouped' : hasAddons ? 'has-addons' : '';\n}\n\nfunction useInnerFieldClasses(props: BFieldProps, fieldType: string): Classes {\n const isGrouped = props.isGrouped;\n const position = props.position;\n return [\n fieldType,\n {\n 'flex-grow-1': props.isExpanded,\n 'is-grouped-multiline': props.isGroupedMultiline,\n 'is-horizontal': props.isHorizontal,\n 'is-grouped-centered': isGrouped && position === 'is-centered',\n 'is-grouped-right': isGrouped && position === 'is-right',\n 'has-addons-centered': !isGrouped && position === 'is-centered',\n 'has-addons-right': !isGrouped && position === 'is-right'\n }\n ];\n}\n\nexport const BFieldPropsDefinition = {\n ...DefaultThemePropsDefinition,\n ...ProvideFieldDataPropsDefinition,\n isGrouped: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isGroupedMultiline: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n position: {\n type: String as PropType<FieldPosition>,\n default: 'is-left'\n },\n isHorizontal: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n hasAddons: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n customLabelClass: {\n type: String as PropType<string>,\n default: ''\n }\n};\n\nexport type BFieldProps = ExtractPropTypes<typeof BFieldPropsDefinition>;\n\nfunction generateInnerLabel(fieldData: FieldDataAttrs, customClass: string): VNode {\n return h(\n 'label',\n {\n class: ['label', customClass],\n id: fieldData.labelId.value,\n for: fieldData.id.value\n },\n\n fieldData.label.value\n );\n}\n\nfunction generateHorizontalLabel(fieldData: FieldDataAttrs, customClass: string, size: string): VNode {\n return h('div', { class: ['field-label', size] }, [generateInnerLabel(fieldData, customClass)]);\n}\n\nfunction generateLabel(isHorizontal: boolean, fieldData: FieldDataAttrs, customClass: string, size: string): VNode[] {\n const label = fieldData.label.value;\n if (isHorizontal && !!label) {\n return [generateHorizontalLabel(fieldData, customClass, size)];\n } else if (!isHorizontal && !!label) {\n return [generateInnerLabel(fieldData, customClass)];\n } else {\n return [];\n }\n}\n\nfunction generateHelpMessage(isHorizontal: boolean, fieldDataAttrs: FieldDataAttrs): VNode | undefined {\n return !isHorizontal && !!fieldDataAttrs.message.value\n ? h('p', {\n class: ['help', fieldDataAttrs.messageVariant.value],\n innerHTML: fieldDataAttrs.message.value\n })\n : undefined;\n}\n\nfunction generateBody(\n props: BFieldProps,\n fieldData: FieldDataAttrs,\n role: string,\n hasInnerField: boolean,\n fieldType: string,\n slots: Slots\n): VNode[] {\n if (props.isHorizontal) {\n return [\n h(\n BFieldBody, // eslint-disable-line\n {\n class: { 'is-expanded': fieldData.isExpanded.value },\n message: fieldData.message.value,\n variant: fieldData.messageVariant.value,\n role\n },\n slots.default\n )\n ];\n } else if (hasInnerField) {\n return [\n h(\n 'div',\n {\n class: 'field-body'\n },\n [\n h(\n BField, // eslint-disable-line\n {\n hasAddons: false,\n variant: fieldData.messageVariant.value,\n class: useInnerFieldClasses(props, fieldType)\n },\n slots.default\n )\n ]\n )\n ];\n } else {\n return slots.default ? slots.default() : [];\n }\n}\n\nconst BField = defineComponent({\n name: 'b-field',\n props: BFieldPropsDefinition,\n setup(props, { slots }) {\n const field = shallowRef((null as unknown) as HTMLElement);\n const fieldData = provideFieldData(props);\n const role = computed(() => (props.isGrouped ? 'group' : ''));\n const size = shallowRef('');\n watch(field, newVal => {\n if (props.isHorizontal && newVal) {\n // Bulma docs: .is-normal for any .input or .button\n const elements = newVal.querySelectorAll('.input, .select, .button, .textarea');\n if (elements.length > 0) {\n size.value = 'is-normal';\n }\n }\n });\n return () => {\n const hasAddons = !!(props.hasAddons && !props.isHorizontal && slots.default && slots.default().length > 1);\n const hasInnerField = props.isGrouped || props.isGroupedMultiline || hasAddons;\n\n const nodes: Array<VNode | undefined> = [\n ...generateLabel(props.isHorizontal, fieldData.attrs, props.customLabelClass, size.value),\n ...generateBody(\n props,\n fieldData.attrs,\n role.value,\n hasInnerField,\n useFieldType(props.isGrouped, hasAddons),\n slots\n ),\n generateHelpMessage(props.isHorizontal, fieldData.attrs)\n ];\n\n return h(\n 'div',\n {\n ref: field,\n class: ['field', useRootClasses(props)],\n role: role.value\n },\n nodes\n );\n };\n }\n});\n\nexport interface BFieldBodyProps {\n message?: string;\n variant?: AllColorsVariant;\n tag?: string;\n}\n\n// eslint-disable-next-line\nfunction BFieldBody(props: BFieldBodyProps, { attrs, slots }: SetupContext) {\n const nodes = slots.default ? slots.default() : [];\n return h(\n props.tag ?? 'div',\n {\n class: 'field-body'\n },\n nodes.map((element: VNode) => (element.el ? element : h(BField, props, constant(element))))\n );\n}\n\nexport default BField;\n"],"sourceRoot":"","file":"BField.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/field/index.d.ts b/node_modules/buetify/lib/components/form/field/index.d.ts new file mode 100755 index 0000000..f8e1a66 --- /dev/null +++ b/node_modules/buetify/lib/components/form/field/index.d.ts @@ -0,0 +1,3 @@ +import BField from './BField'; +export default BField; +export { BField }; diff --git a/node_modules/buetify/lib/components/form/field/index.js b/node_modules/buetify/lib/components/form/field/index.js new file mode 100755 index 0000000..1cc4cfd --- /dev/null +++ b/node_modules/buetify/lib/components/form/field/index.js @@ -0,0 +1,4 @@ +import BField from './BField'; +export default BField; +export { BField }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/field/index.js.map b/node_modules/buetify/lib/components/form/field/index.js.map new file mode 100755 index 0000000..653cef8 --- /dev/null +++ b/node_modules/buetify/lib/components/form/field/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/field/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AAEA,eAAe,MAAf;AAEA,SAAS,MAAT","sourcesContent":["import BField from './BField';\n\nexport default BField;\n\nexport { BField };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/index.d.ts b/node_modules/buetify/lib/components/form/index.d.ts new file mode 100755 index 0000000..43898da --- /dev/null +++ b/node_modules/buetify/lib/components/form/index.d.ts @@ -0,0 +1,9 @@ +export * from './autocomplete'; +export * from './checkbox'; +export * from './datepicker'; +export * from './field'; +export * from './input'; +export * from './numberInput'; +export * from './radio'; +export * from './select'; +export * from './switch'; diff --git a/node_modules/buetify/lib/components/form/index.js b/node_modules/buetify/lib/components/form/index.js new file mode 100755 index 0000000..607c577 --- /dev/null +++ b/node_modules/buetify/lib/components/form/index.js @@ -0,0 +1,10 @@ +export * from './autocomplete'; +export * from './checkbox'; +export * from './datepicker'; +export * from './field'; +export * from './input'; +export * from './numberInput'; +export * from './radio'; +export * from './select'; +export * from './switch'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/index.js.map b/node_modules/buetify/lib/components/form/index.js.map new file mode 100755 index 0000000..b93ff52 --- /dev/null +++ b/node_modules/buetify/lib/components/form/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,eAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,UAAd","sourcesContent":["export * from './autocomplete';\nexport * from './checkbox';\nexport * from './datepicker';\nexport * from './field';\nexport * from './input';\nexport * from './numberInput';\nexport * from './radio';\nexport * from './select';\nexport * from './switch';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/input/BInput.d.ts b/node_modules/buetify/lib/components/form/input/BInput.d.ts new file mode 100755 index 0000000..3457f1f --- /dev/null +++ b/node_modules/buetify/lib/components/form/input/BInput.d.ts @@ -0,0 +1,2797 @@ +import '../sass/form.sass'; +import { ColorVariant } from '../../../types/ColorVariants'; +import { SizeVariant } from '../../../types/SizeVariants'; +import { VNode } from 'vue'; +import { InputIcons } from '../shared/types'; +import { PropType } from 'vue'; +export declare function getBInputPropsDefinition<T>(): { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}; +export declare function defineInput<T>(): import("vue").DefineComponent<{ + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ [K in "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K] extends null ? any : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K] extends { + type: true | null; +} ? any : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K]; } & { [K_1 in Exclude<"isThemeable", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"themeMap", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"variant", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"size", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"icon", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isExpanded", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"type", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isRounded", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isLoading", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isFocused", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isDisabled", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onFocus", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onBlur", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"focusOnMount", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"modelValue", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onUpdate:modelValue", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isReadonly", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"disableIfReadonly", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"useNativeValidation", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isValid", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onUpdate:isValid", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"autocomplete", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"placeholder", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isRequired", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"maxlength", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"usePasswordReveal", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"hasCounter", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"customInputClass", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"inputIcons", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)>]?: ({ + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_1] extends null ? any : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_1] extends { + type: true | null; +} ? any : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_1] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_1] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_1] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_1]) | undefined; }>, { [K_2 in "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "hasCounter" | "customInputClass" | "inputIcons" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_2] extends null ? any : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_2] extends { + type: true | null; +} ? any : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_2] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_2] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_2] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}[K_2]; }>; +export declare const BInput: import("vue").DefineComponent<{ + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + hasCounter: { + type: BooleanConstructor; + default: boolean; + }; + customInputClass: { + type: StringConstructor; + default: string; + }; + inputIcons: { + type: PropType<InputIcons>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<any>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[any], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[any], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + variant: ColorVariant; + size: SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[any], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": import("fp-ts/lib/function").FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + hasCounter: boolean; + customInputClass: string; + inputIcons: InputIcons; +} & { + icon?: any; + type?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: unknown; + autocomplete?: string | undefined; + placeholder?: string | undefined; + maxlength?: string | number | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + variant: ColorVariant; + size: SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[any], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": import("fp-ts/lib/function").FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + hasCounter: boolean; + customInputClass: string; + inputIcons: InputIcons; +}>; diff --git a/node_modules/buetify/lib/components/form/input/BInput.js b/node_modules/buetify/lib/components/form/input/BInput.js new file mode 100755 index 0000000..f513894 --- /dev/null +++ b/node_modules/buetify/lib/components/form/input/BInput.js @@ -0,0 +1,221 @@ +import "../../../../src/components/form/sass/form.sass"; +import { getUseInputPropsDefinition, useInput } from '../../../composables/input/useInput'; +import { DefaultThemePropsDefinition, useTheme } from '../../../composables/theme/useTheme'; +import { isNumber, isString } from '../../../utils/helpers'; +import { constant } from 'fp-ts/lib/function'; +import { DEFAULT_INPUT_ICONS } from '../shared/types'; +import { defineComponent, shallowRef, h, computed } from 'vue'; +export function getBInputPropsDefinition() { + return { ...getUseInputPropsDefinition(), + ...DefaultThemePropsDefinition, + isLoading: { + type: Boolean, + default: false + }, + hasCounter: { + type: Boolean, + default: true + }, + customInputClass: { + type: String, + default: '' + }, + inputIcons: { + type: Object, + required: false, + default: constant(DEFAULT_INPUT_ICONS) + } + }; +} + +function getIconPosition(leftIcon, rightIcon) { + if (leftIcon && rightIcon) { + return 'has-icons-left has-icons-right'; + } else if (rightIcon) { + return 'has-icons-right'; + } else if (leftIcon) { + return 'has-icons-left'; + } else { + return ''; + } +} + +function getRightIcon(icons, variant, usePasswordReveal, passwordIsVisible) { + if (usePasswordReveal) { + return passwordIsVisible ? icons.passwordVisible : icons.passwordInvisible; + } else { + switch (variant) { + case 'is-danger': + return icons.isDanger; + + case 'is-info': + return icons.isInfo; + + case 'is-success': + return icons.isSuccess; + + case 'is-warning': + return icons.isWarning; + + default: + return undefined; + } + } +} + +function generateLeftIcon(icon, size) { + // eslint-disable-next-line + return h(icon, { + class: 'is-left', + size + }); +} + +function generateRightIcon(icon, size, variant, usePasswordReveal, passwordToggle) { + // eslint-disable-next-line + return h(icon, { + class: ['is-right', { + 'is-clickable': usePasswordReveal + }], + variant, + size, + ...passwordToggle.attrs.value, + ...passwordToggle.listeners + }); +} + +function generateCounter(isFocused, valueLength, maxLength) { + return h('small', { + class: ['help counter', { + 'is-invisible': !isFocused + }] + }, `${valueLength} / ${maxLength}`); +} + +function getAutocomplete(autocomplete, type) { + if (autocomplete && autocomplete.value) { + return autocomplete.value; + } else { + switch (type) { + case 'email': + return 'email'; + + case 'password': + return 'password'; + + default: + return undefined; + } + } +} + +function generateNonTextInput(inputRef, inputData, isLoading, context, themeClasses) { + const hasMessage = !!inputData.message.value; + const type = inputData.type ? inputData.type.value : inputData.usePasswordReveal.value ? 'password' : undefined; + return h('input', { ...context.attrs, + ref: inputRef, + class: ['input', inputData.messageVariant.value, inputData.size.value, { + 'is-rounded': inputData.isRounded.value, + // 'is-expanded': inputData.isExpanded.value, + 'is-loading': isLoading, + 'is-clearfix': !hasMessage + }, ...themeClasses], + value: inputData.modelValue.value, + onInput: inputData.onNativeInput, + type: inputData.type ? inputData.type.value : undefined, + autocomplete: getAutocomplete(inputData.autocomplete, type), + maxlength: inputData.maxlength && inputData.maxlength.value, + placeholder: inputData.placeholder && inputData.placeholder.value, + onBlur: inputData.onBlur, + onFocus: inputData.onFocus, + required: inputData.isRequired.value, + readonly: inputData.isReadonly.value, + disabled: inputData.isDisabled.value, + tabindex: inputData.isDisabled.value ? -1 : 0, + id: inputData.id.value + }); +} + +function generateTextarea(inputRef, inputData, isLoading, context, themeClasses) { + const hasMessage = !!inputData.message.value; + return h('textarea', { ...context.attrs, + ref: inputRef, + class: ['textarea', inputData.messageVariant.value, inputData.size.value, { + 'is-rounded': inputData.isRounded.value, + 'is-expanded': inputData.isExpanded.value, + 'is-loading': isLoading, + 'is-clearfix': !hasMessage + }, ...themeClasses], + value: inputData.modelValue.value, + onInput: inputData.onNativeInput, + maxlength: inputData.maxlength && inputData.maxlength.value, + placeholder: inputData.placeholder && inputData.placeholder.value, + onBlur: inputData.onBlur, + onFocus: inputData.onFocus, + required: inputData.isRequired.value, + readonly: inputData.isReadonly.value, + disabled: inputData.isDisabled.value, + tabindex: inputData.isDisabled.value ? -1 : 0, + id: inputData.id.value + }); +} + +function generateInput(inputRef, inputData, isLoading, context, themeClasses) { + const type = inputData.type && inputData.type.value; + return type === 'textarea' ? generateTextarea(inputRef, inputData, isLoading, context, themeClasses) : generateNonTextInput(inputRef, inputData, isLoading, context, themeClasses); +} + +function getValueLength(modelValue) { + if (isString(modelValue)) { + return modelValue.length; + } else if (isNumber(modelValue)) { + return modelValue.toString().length; + } + + return 0; +} + +export function defineInput() { + return defineComponent({ + name: 'b-input', + inheritAttrs: false, + props: getBInputPropsDefinition(), + + setup(props, context) { + const inputRef = shallowRef(null); + const inputData = useInput(props, inputRef); + const rightIcon = computed(() => getRightIcon(props.inputIcons, inputData.messageVariant.value, inputData.usePasswordReveal.value, inputData.passwordToggle.isOn.value)); + const useCounter = computed(() => (inputData.type === undefined || inputData.modelValue && typeof inputData.modelValue.value !== 'number') && !!inputData.maxlength && props.hasCounter); + const { + themeClasses + } = useTheme(props); + return () => { + const nodes = [generateInput(inputRef, inputData, props.isLoading, context, themeClasses.value)]; + + if (inputData.icon && inputData.icon.value) { + nodes.push(generateLeftIcon(inputData.icon.value, inputData.iconSize.value)); + } + + if (rightIcon.value) { + nodes.push(generateRightIcon(rightIcon.value, inputData.iconSize.value, inputData.messageVariant.value, inputData.usePasswordReveal.value, inputData.passwordToggle)); + } + + if (useCounter.value && inputData.maxlength && inputData.maxlength.value !== undefined) { + nodes.push(generateCounter(inputData.isFocused.value, getValueLength(inputData.modelValue.value), inputData.maxlength.value)); + } + + return h('div', { + class: ['control', inputData.size.value, getIconPosition(inputData.icon?.value, rightIcon.value), { + 'is-expanded': inputData.isExpanded.value, + 'is-loading': props.isLoading, + 'is-clearfix': !inputData.message.value + }] + }, nodes); + }; + } + + }); +} // eslint-disable-next-line + +export const BInput = defineInput(); +//# sourceMappingURL=BInput.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/input/BInput.js.map b/node_modules/buetify/lib/components/form/input/BInput.js.map new file mode 100755 index 0000000..d2d06f8 --- /dev/null +++ b/node_modules/buetify/lib/components/form/input/BInput.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/input/BInput.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAP;AACA,SAAS,0BAAT,EAA4C,QAA5C,QAA2E,qCAA3E;AACA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,qCAAtD;AAIA,SAAS,QAAT,EAAmB,QAAnB,QAAmC,wBAAnC;AACA,SAAS,QAAT,QAAyB,oBAAzB;AAEA,SAAS,mBAAT,QAAgD,iBAAhD;AACA,SAAoB,eAApB,EAA+C,UAA/C,EAA2D,CAA3D,EAAmE,QAAnE,QAAiG,KAAjG;AAEA,OAAM,SAAU,wBAAV,GAAkC;AACtC,SAAO,EACL,GAAG,0BAA0B,EADxB;AAEL,OAAG,2BAFE;AAGL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KAHN;AAOL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAPP;AAWL,IAAA,gBAAgB,EAAE;AAChB,MAAA,IAAI,EAAE,MADU;AAEhB,MAAA,OAAO,EAAE;AAFO,KAXb;AAeL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,MADI;AAEV,MAAA,QAAQ,EAAE,KAFA;AAGV,MAAA,OAAO,EAAE,QAAQ,CAAC,mBAAD;AAHP;AAfP,GAAP;AAqBD;;AAED,SAAS,eAAT,CAAyB,QAAzB,EAA0D,SAA1D,EAA0F;AACxF,MAAI,QAAQ,IAAI,SAAhB,EAA2B;AACzB,WAAO,gCAAP;AACD,GAFD,MAEO,IAAI,SAAJ,EAAe;AACpB,WAAO,iBAAP;AACD,GAFM,MAEA,IAAI,QAAJ,EAAc;AACnB,WAAO,gBAAP;AACD,GAFM,MAEA;AACL,WAAO,EAAP;AACD;AACF;;AAED,SAAS,YAAT,CACE,KADF,EAEE,OAFF,EAGE,iBAHF,EAIE,iBAJF,EAI4B;AAE1B,MAAI,iBAAJ,EAAuB;AACrB,WAAO,iBAAiB,GAAG,KAAK,CAAC,eAAT,GAA2B,KAAK,CAAC,iBAAzD;AACD,GAFD,MAEO;AACL,YAAQ,OAAR;AACE,WAAK,WAAL;AACE,eAAO,KAAK,CAAC,QAAb;;AACF,WAAK,SAAL;AACE,eAAO,KAAK,CAAC,MAAb;;AACF,WAAK,YAAL;AACE,eAAO,KAAK,CAAC,SAAb;;AACF,WAAK,YAAL;AACE,eAAO,KAAK,CAAC,SAAb;;AACF;AACE,eAAO,SAAP;AAVJ;AAYD;AACF;;AAED,SAAS,gBAAT,CAA0B,IAA1B,EAA2C,IAA3C,EAA4D;AAC1D;AACA,SAAO,CAAC,CAAC,IAAD,EAAc;AACpB,IAAA,KAAK,EAAE,SADa;AAEpB,IAAA;AAFoB,GAAd,CAAR;AAID;;AAED,SAAS,iBAAT,CACE,IADF,EAEE,IAFF,EAGE,OAHF,EAIE,iBAJF,EAKE,cALF,EAKwB;AAEtB;AACA,SAAO,CAAC,CAAC,IAAD,EAAc;AACpB,IAAA,KAAK,EAAE,CAAC,UAAD,EAAa;AAAE,sBAAgB;AAAlB,KAAb,CADa;AAEpB,IAAA,OAFoB;AAGpB,IAAA,IAHoB;AAIpB,OAAG,cAAc,CAAC,KAAf,CAAqB,KAJJ;AAKpB,OAAG,cAAc,CAAC;AALE,GAAd,CAAR;AAOD;;AAED,SAAS,eAAT,CAAyB,SAAzB,EAA6C,WAA7C,EAAkE,SAAlE,EAA4F;AAC1F,SAAO,CAAC,CACN,OADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,cAAD,EAAiB;AAAE,sBAAgB,CAAC;AAAnB,KAAjB;AADT,GAFM,EAKN,GAAG,WAAW,MAAM,SAAS,EALvB,CAAR;AAOD;;AAED,SAAS,eAAT,CAAyB,YAAzB,EAA4E,IAA5E,EAAoG;AAClG,MAAI,YAAY,IAAI,YAAY,CAAC,KAAjC,EAAwC;AACtC,WAAO,YAAY,CAAC,KAApB;AACD,GAFD,MAEO;AACL,YAAQ,IAAR;AACE,WAAK,OAAL;AACE,eAAO,OAAP;;AACF,WAAK,UAAL;AACE,eAAO,UAAP;;AACF;AACE,eAAO,SAAP;AANJ;AAQD;AACF;;AAED,SAAS,oBAAT,CACE,QADF,EAEE,SAFF,EAGE,SAHF,EAIE,OAJF,EAKE,YALF,EAKwB;AAEtB,QAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,OAAV,CAAkB,KAAvC;AACA,QAAM,IAAI,GAAG,SAAS,CAAC,IAAV,GAAiB,SAAS,CAAC,IAAV,CAAe,KAAhC,GAAwC,SAAS,CAAC,iBAAV,CAA4B,KAA5B,GAAoC,UAApC,GAAiD,SAAtG;AACA,SAAO,CAAC,CAAC,OAAD,EAAU,EAChB,GAAG,OAAO,CAAC,KADK;AAEhB,IAAA,GAAG,EAAE,QAFW;AAGhB,IAAA,KAAK,EAAE,CACL,OADK,EAEL,SAAS,CAAC,cAAV,CAAyB,KAFpB,EAGL,SAAS,CAAC,IAAV,CAAe,KAHV,EAIL;AACE,oBAAc,SAAS,CAAC,SAAV,CAAoB,KADpC;AAEE;AACA,oBAAc,SAHhB;AAIE,qBAAe,CAAC;AAJlB,KAJK,EAUL,GAAG,YAVE,CAHS;AAehB,IAAA,KAAK,EAAE,SAAS,CAAC,UAAV,CAAqB,KAfZ;AAgBhB,IAAA,OAAO,EAAE,SAAS,CAAC,aAhBH;AAiBhB,IAAA,IAAI,EAAE,SAAS,CAAC,IAAV,GAAiB,SAAS,CAAC,IAAV,CAAe,KAAhC,GAAwC,SAjB9B;AAkBhB,IAAA,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,YAAX,EAAyB,IAAzB,CAlBb;AAmBhB,IAAA,SAAS,EAAE,SAAS,CAAC,SAAV,IAAuB,SAAS,CAAC,SAAV,CAAoB,KAnBtC;AAoBhB,IAAA,WAAW,EAAE,SAAS,CAAC,WAAV,IAAyB,SAAS,CAAC,WAAV,CAAsB,KApB5C;AAqBhB,IAAA,MAAM,EAAE,SAAS,CAAC,MArBF;AAsBhB,IAAA,OAAO,EAAE,SAAS,CAAC,OAtBH;AAuBhB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAvBf;AAwBhB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAxBf;AAyBhB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAzBf;AA0BhB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAArB,GAA6B,CAAC,CAA9B,GAAkC,CA1B5B;AA2BhB,IAAA,EAAE,EAAE,SAAS,CAAC,EAAV,CAAa;AA3BD,GAAV,CAAR;AA6BD;;AAED,SAAS,gBAAT,CACE,QADF,EAEE,SAFF,EAGE,SAHF,EAIE,OAJF,EAKE,YALF,EAKwB;AAEtB,QAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,OAAV,CAAkB,KAAvC;AACA,SAAO,CAAC,CAAC,UAAD,EAAa,EACnB,GAAG,OAAO,CAAC,KADQ;AAEnB,IAAA,GAAG,EAAE,QAFc;AAGnB,IAAA,KAAK,EAAE,CACL,UADK,EAEL,SAAS,CAAC,cAAV,CAAyB,KAFpB,EAGL,SAAS,CAAC,IAAV,CAAe,KAHV,EAIL;AACE,oBAAc,SAAS,CAAC,SAAV,CAAoB,KADpC;AAEE,qBAAe,SAAS,CAAC,UAAV,CAAqB,KAFtC;AAGE,oBAAc,SAHhB;AAIE,qBAAe,CAAC;AAJlB,KAJK,EAUL,GAAG,YAVE,CAHY;AAenB,IAAA,KAAK,EAAE,SAAS,CAAC,UAAV,CAAqB,KAfT;AAgBnB,IAAA,OAAO,EAAE,SAAS,CAAC,aAhBA;AAiBnB,IAAA,SAAS,EAAE,SAAS,CAAC,SAAV,IAAuB,SAAS,CAAC,SAAV,CAAoB,KAjBnC;AAkBnB,IAAA,WAAW,EAAE,SAAS,CAAC,WAAV,IAAyB,SAAS,CAAC,WAAV,CAAsB,KAlBzC;AAmBnB,IAAA,MAAM,EAAE,SAAS,CAAC,MAnBC;AAoBnB,IAAA,OAAO,EAAE,SAAS,CAAC,OApBA;AAqBnB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KArBZ;AAsBnB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAtBZ;AAuBnB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAvBZ;AAwBnB,IAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAArB,GAA6B,CAAC,CAA9B,GAAkC,CAxBzB;AAyBnB,IAAA,EAAE,EAAE,SAAS,CAAC,EAAV,CAAa;AAzBE,GAAb,CAAR;AA2BD;;AACD,SAAS,aAAT,CACE,QADF,EAEE,SAFF,EAGE,SAHF,EAIE,OAJF,EAKE,YALF,EAKwB;AAEtB,QAAM,IAAI,GAAG,SAAS,CAAC,IAAV,IAAkB,SAAS,CAAC,IAAV,CAAe,KAA9C;AACA,SAAO,IAAI,KAAK,UAAT,GACH,gBAAgB,CAAC,QAAD,EAAW,SAAX,EAAsB,SAAtB,EAAiC,OAAjC,EAA0C,YAA1C,CADb,GAEH,oBAAoB,CAAC,QAAD,EAAW,SAAX,EAAsB,SAAtB,EAAiC,OAAjC,EAA0C,YAA1C,CAFxB;AAGD;;AAED,SAAS,cAAT,CAAwB,UAAxB,EAA2C;AACzC,MAAI,QAAQ,CAAC,UAAD,CAAZ,EAA0B;AACxB,WAAO,UAAU,CAAC,MAAlB;AACD,GAFD,MAEO,IAAI,QAAQ,CAAC,UAAD,CAAZ,EAA0B;AAC/B,WAAO,UAAU,CAAC,QAAX,GAAsB,MAA7B;AACD;;AACD,SAAO,CAAP;AACD;;AAED,OAAM,SAAU,WAAV,GAAqB;AACzB,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,SADe;AAErB,IAAA,YAAY,EAAE,KAFO;AAGrB,IAAA,KAAK,EAAE,wBAAwB,EAHV;;AAIrB,IAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAA6B;AAChC,YAAM,QAAQ,GAAG,UAAU,CAAE,IAAF,CAA3B;AACA,YAAM,SAAS,GAAG,QAAQ,CAAC,KAAD,EAA4B,QAA5B,CAA1B;AAEA,YAAM,SAAS,GAAG,QAAQ,CAAC,MACzB,YAAY,CACV,KAAK,CAAC,UADI,EAEV,SAAS,CAAC,cAAV,CAAyB,KAFf,EAGV,SAAS,CAAC,iBAAV,CAA4B,KAHlB,EAIV,SAAS,CAAC,cAAV,CAAyB,IAAzB,CAA8B,KAJpB,CADY,CAA1B;AAQA,YAAM,UAAU,GAAG,QAAQ,CACzB,MACE,CAAC,SAAS,CAAC,IAAV,KAAmB,SAAnB,IAAiC,SAAS,CAAC,UAAV,IAAwB,OAAO,SAAS,CAAC,UAAV,CAAqB,KAA5B,KAAsC,QAAhG,KACA,CAAC,CAAC,SAAS,CAAC,SADZ,IAEA,KAAK,CAAC,UAJiB,CAA3B;AAOA,YAAM;AAAE,QAAA;AAAF,UAAmB,QAAQ,CAAC,KAAD,CAAjC;AAEA,aAAO,MAAK;AACV,cAAM,KAAK,GAAY,CACrB,aAAa,CAAC,QAAD,EAAW,SAAX,EAA+B,KAAK,CAAC,SAArC,EAAgD,OAAhD,EAAyD,YAAY,CAAC,KAAtE,CADQ,CAAvB;;AAGA,YAAI,SAAS,CAAC,IAAV,IAAkB,SAAS,CAAC,IAAV,CAAe,KAArC,EAA4C;AAC1C,UAAA,KAAK,CAAC,IAAN,CAAW,gBAAgB,CAAC,SAAS,CAAC,IAAV,CAAe,KAAhB,EAAuB,SAAS,CAAC,QAAV,CAAmB,KAA1C,CAA3B;AACD;;AACD,YAAI,SAAS,CAAC,KAAd,EAAqB;AACnB,UAAA,KAAK,CAAC,IAAN,CACE,iBAAiB,CACf,SAAS,CAAC,KADK,EAEf,SAAS,CAAC,QAAV,CAAmB,KAFJ,EAGf,SAAS,CAAC,cAAV,CAAyB,KAHV,EAIf,SAAS,CAAC,iBAAV,CAA4B,KAJb,EAKf,SAAS,CAAC,cALK,CADnB;AASD;;AACD,YAAI,UAAU,CAAC,KAAX,IAAoB,SAAS,CAAC,SAA9B,IAA2C,SAAS,CAAC,SAAV,CAAoB,KAApB,KAA8B,SAA7E,EAAwF;AACtF,UAAA,KAAK,CAAC,IAAN,CACE,eAAe,CACb,SAAS,CAAC,SAAV,CAAoB,KADP,EAEb,cAAc,CAAC,SAAS,CAAC,UAAV,CAAqB,KAAtB,CAFD,EAGb,SAAS,CAAC,SAAV,CAAoB,KAHP,CADjB;AAOD;;AACD,eAAO,CAAC,CACN,KADM,EAEN;AACE,UAAA,KAAK,EAAE,CACL,SADK,EAEL,SAAS,CAAC,IAAV,CAAe,KAFV,EAGL,eAAe,CAAC,SAAS,CAAC,IAAV,EAAgB,KAAjB,EAAwB,SAAS,CAAC,KAAlC,CAHV,EAIL;AACE,2BAAe,SAAS,CAAC,UAAV,CAAqB,KADtC;AAEE,0BAAc,KAAK,CAAC,SAFtB;AAGE,2BAAe,CAAC,SAAS,CAAC,OAAV,CAAkB;AAHpC,WAJK;AADT,SAFM,EAcN,KAdM,CAAR;AAgBD,OA3CD;AA4CD;;AArEoB,GAAD,CAAtB;AAuED,C,CAED;;AACA,OAAO,MAAM,MAAM,GAAG,WAAW,EAA1B","sourcesContent":["import '../sass/form.sass';\nimport { getUseInputPropsDefinition, Input, useInput, UseInputProps } from '../../../composables/input/useInput';\nimport { DefaultThemePropsDefinition, useTheme } from '../../../composables/theme/useTheme';\nimport { Toggle } from '../../../composables/toggle';\nimport { ColorVariant } from '../../../types/ColorVariants';\nimport { SizeVariant } from '../../../types/SizeVariants';\nimport { isNumber, isString } from '../../../utils/helpers';\nimport { constant } from 'fp-ts/lib/function';\nimport { VNode } from 'vue';\nimport { DEFAULT_INPUT_ICONS, InputIcons } from '../shared/types';\nimport { Component, defineComponent, PropType, shallowRef, h, Ref, computed, SetupContext } from 'vue';\n\nexport function getBInputPropsDefinition<T>() {\n return {\n ...getUseInputPropsDefinition<T>(),\n ...DefaultThemePropsDefinition,\n isLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n hasCounter: {\n type: Boolean,\n default: true\n },\n customInputClass: {\n type: String,\n default: ''\n },\n inputIcons: {\n type: Object as PropType<InputIcons>,\n required: false,\n default: constant(DEFAULT_INPUT_ICONS)\n }\n };\n}\n\nfunction getIconPosition(leftIcon: Component | undefined, rightIcon: Component | undefined): string {\n if (leftIcon && rightIcon) {\n return 'has-icons-left has-icons-right';\n } else if (rightIcon) {\n return 'has-icons-right';\n } else if (leftIcon) {\n return 'has-icons-left';\n } else {\n return '';\n }\n}\n\nfunction getRightIcon(\n icons: InputIcons,\n variant: ColorVariant,\n usePasswordReveal: boolean,\n passwordIsVisible: boolean\n) {\n if (usePasswordReveal) {\n return passwordIsVisible ? icons.passwordVisible : icons.passwordInvisible;\n } else {\n switch (variant) {\n case 'is-danger':\n return icons.isDanger;\n case 'is-info':\n return icons.isInfo;\n case 'is-success':\n return icons.isSuccess;\n case 'is-warning':\n return icons.isWarning;\n default:\n return undefined;\n }\n }\n}\n\nfunction generateLeftIcon(icon: Component, size: SizeVariant): VNode {\n // eslint-disable-next-line\n return h(icon as any, {\n class: 'is-left',\n size\n });\n}\n\nfunction generateRightIcon(\n icon: Component,\n size: SizeVariant,\n variant: ColorVariant,\n usePasswordReveal: boolean,\n passwordToggle: Toggle\n): VNode {\n // eslint-disable-next-line\n return h(icon as any, {\n class: ['is-right', { 'is-clickable': usePasswordReveal }],\n variant,\n size,\n ...passwordToggle.attrs.value,\n ...passwordToggle.listeners\n });\n}\n\nfunction generateCounter(isFocused: boolean, valueLength: number, maxLength: number | string): VNode {\n return h(\n 'small',\n {\n class: ['help counter', { 'is-invisible': !isFocused }]\n },\n `${valueLength} / ${maxLength}`\n );\n}\n\nfunction getAutocomplete(autocomplete: undefined | Ref<string | undefined>, type: string | undefined) {\n if (autocomplete && autocomplete.value) {\n return autocomplete.value;\n } else {\n switch (type) {\n case 'email':\n return 'email';\n case 'password':\n return 'password';\n default:\n return undefined;\n }\n }\n}\n\nfunction generateNonTextInput(\n inputRef: Ref<HTMLInputElement>,\n inputData: Input,\n isLoading: boolean,\n context: SetupContext,\n themeClasses: string[]\n): VNode {\n const hasMessage = !!inputData.message.value;\n const type = inputData.type ? inputData.type.value : inputData.usePasswordReveal.value ? 'password' : undefined;\n return h('input', {\n ...context.attrs,\n ref: inputRef,\n class: [\n 'input',\n inputData.messageVariant.value,\n inputData.size.value,\n {\n 'is-rounded': inputData.isRounded.value,\n // 'is-expanded': inputData.isExpanded.value,\n 'is-loading': isLoading,\n 'is-clearfix': !hasMessage\n },\n ...themeClasses\n ],\n value: inputData.modelValue.value,\n onInput: inputData.onNativeInput,\n type: inputData.type ? inputData.type.value : undefined,\n autocomplete: getAutocomplete(inputData.autocomplete, type),\n maxlength: inputData.maxlength && inputData.maxlength.value,\n placeholder: inputData.placeholder && inputData.placeholder.value,\n onBlur: inputData.onBlur,\n onFocus: inputData.onFocus,\n required: inputData.isRequired.value,\n readonly: inputData.isReadonly.value,\n disabled: inputData.isDisabled.value,\n tabindex: inputData.isDisabled.value ? -1 : 0,\n id: inputData.id.value\n });\n}\n\nfunction generateTextarea(\n inputRef: Ref<HTMLInputElement>,\n inputData: Input,\n isLoading: boolean,\n context: SetupContext,\n themeClasses: string[]\n): VNode {\n const hasMessage = !!inputData.message.value;\n return h('textarea', {\n ...context.attrs,\n ref: inputRef,\n class: [\n 'textarea',\n inputData.messageVariant.value,\n inputData.size.value,\n {\n 'is-rounded': inputData.isRounded.value,\n 'is-expanded': inputData.isExpanded.value,\n 'is-loading': isLoading,\n 'is-clearfix': !hasMessage\n },\n ...themeClasses\n ],\n value: inputData.modelValue.value,\n onInput: inputData.onNativeInput,\n maxlength: inputData.maxlength && inputData.maxlength.value,\n placeholder: inputData.placeholder && inputData.placeholder.value,\n onBlur: inputData.onBlur,\n onFocus: inputData.onFocus,\n required: inputData.isRequired.value,\n readonly: inputData.isReadonly.value,\n disabled: inputData.isDisabled.value,\n tabindex: inputData.isDisabled.value ? -1 : 0,\n id: inputData.id.value\n });\n}\nfunction generateInput(\n inputRef: Ref<HTMLInputElement>,\n inputData: Input,\n isLoading: boolean,\n context: SetupContext,\n themeClasses: string[]\n): VNode {\n const type = inputData.type && inputData.type.value;\n return type === 'textarea'\n ? generateTextarea(inputRef, inputData, isLoading, context, themeClasses)\n : generateNonTextInput(inputRef, inputData, isLoading, context, themeClasses);\n}\n\nfunction getValueLength(modelValue: unknown) {\n if (isString(modelValue)) {\n return modelValue.length;\n } else if (isNumber(modelValue)) {\n return modelValue.toString().length;\n }\n return 0;\n}\n\nexport function defineInput<T>() {\n return defineComponent({\n name: 'b-input',\n inheritAttrs: false,\n props: getBInputPropsDefinition<T>(),\n setup(props, context: SetupContext) {\n const inputRef = shallowRef((null as unknown) as HTMLInputElement);\n const inputData = useInput(props as UseInputProps<T>, inputRef);\n\n const rightIcon = computed(() =>\n getRightIcon(\n props.inputIcons,\n inputData.messageVariant.value,\n inputData.usePasswordReveal.value,\n inputData.passwordToggle.isOn.value\n )\n );\n const useCounter = computed(\n () =>\n (inputData.type === undefined || (inputData.modelValue && typeof inputData.modelValue.value !== 'number')) &&\n !!inputData.maxlength &&\n props.hasCounter\n );\n\n const { themeClasses } = useTheme(props);\n\n return () => {\n const nodes: VNode[] = [\n generateInput(inputRef, inputData as Input, props.isLoading, context, themeClasses.value)\n ];\n if (inputData.icon && inputData.icon.value) {\n nodes.push(generateLeftIcon(inputData.icon.value, inputData.iconSize.value));\n }\n if (rightIcon.value) {\n nodes.push(\n generateRightIcon(\n rightIcon.value,\n inputData.iconSize.value,\n inputData.messageVariant.value,\n inputData.usePasswordReveal.value,\n inputData.passwordToggle\n )\n );\n }\n if (useCounter.value && inputData.maxlength && inputData.maxlength.value !== undefined) {\n nodes.push(\n generateCounter(\n inputData.isFocused.value,\n getValueLength(inputData.modelValue.value),\n inputData.maxlength.value\n )\n );\n }\n return h(\n 'div',\n {\n class: [\n 'control',\n inputData.size.value,\n getIconPosition(inputData.icon?.value, rightIcon.value),\n {\n 'is-expanded': inputData.isExpanded.value,\n 'is-loading': props.isLoading,\n 'is-clearfix': !inputData.message.value\n }\n ]\n },\n nodes\n );\n };\n }\n });\n}\n\n// eslint-disable-next-line\nexport const BInput = defineInput<any>();\n"],"sourceRoot":"","file":"BInput.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/input/index.d.ts b/node_modules/buetify/lib/components/form/input/index.d.ts new file mode 100755 index 0000000..336f946 --- /dev/null +++ b/node_modules/buetify/lib/components/form/input/index.d.ts @@ -0,0 +1 @@ +export * from './BInput'; diff --git a/node_modules/buetify/lib/components/form/input/index.js b/node_modules/buetify/lib/components/form/input/index.js new file mode 100755 index 0000000..a71ff84 --- /dev/null +++ b/node_modules/buetify/lib/components/form/input/index.js @@ -0,0 +1,2 @@ +export * from './BInput'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/input/index.js.map b/node_modules/buetify/lib/components/form/input/index.js.map new file mode 100755 index 0000000..8bb4d07 --- /dev/null +++ b/node_modules/buetify/lib/components/form/input/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAd","sourcesContent":["export * from './BInput';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/numberInput/BNumberInput.d.ts b/node_modules/buetify/lib/components/form/numberInput/BNumberInput.d.ts new file mode 100755 index 0000000..c9c7d06 --- /dev/null +++ b/node_modules/buetify/lib/components/form/numberInput/BNumberInput.d.ts @@ -0,0 +1,321 @@ +import './number-input.sass'; +import { FunctionN } from 'fp-ts/lib/function'; +import { VNode, PropType, ExtractPropTypes } from 'vue'; +import { InputIcons, NumberInputIcons } from '../shared/types'; +export declare type BNumberInputControlsPosition = 'compact' | ''; +declare const BNumberInputPropsDefinition: { + min: { + type: PropType<number>; + default: number; + }; + max: { + type: PropType<number>; + default: number; + }; + step: { + type: PropType<number>; + default: number; + }; + displayControls: { + type: PropType<boolean>; + default: boolean; + }; + controlsRounded: { + type: PropType<boolean>; + default: boolean; + }; + controlsPosition: { + type: PropType<BNumberInputControlsPosition>; + default: ""; + }; + inputIcons: { + type: PropType<InputIcons>; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + numberInputIcons: { + type: PropType<NumberInputIcons>; + default: import("fp-ts/lib/function").Lazy<NumberInputIcons>; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<number>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<FunctionN<[number], void>>; + }; +}; +export declare type BNumberInputProps = ExtractPropTypes<typeof BNumberInputPropsDefinition>; +export declare function getNumberInputIcons(icons: Partial<NumberInputIcons>): NumberInputIcons; +declare const _default: import("vue").DefineComponent<{ + min: { + type: PropType<number>; + default: number; + }; + max: { + type: PropType<number>; + default: number; + }; + step: { + type: PropType<number>; + default: number; + }; + displayControls: { + type: PropType<boolean>; + default: boolean; + }; + controlsRounded: { + type: PropType<boolean>; + default: boolean; + }; + controlsPosition: { + type: PropType<BNumberInputControlsPosition>; + default: ""; + }; + inputIcons: { + type: PropType<InputIcons>; + default: import("fp-ts/lib/function").Lazy<InputIcons>; + }; + numberInputIcons: { + type: PropType<NumberInputIcons>; + default: import("fp-ts/lib/function").Lazy<NumberInputIcons>; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<number>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<FunctionN<[number], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": FunctionN<[number], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + inputIcons: InputIcons; + min: number; + max: number; + step: number; + displayControls: boolean; + controlsRounded: boolean; + controlsPosition: BNumberInputControlsPosition; + numberInputIcons: NumberInputIcons; +} & { + icon?: any; + type?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: number | undefined; + autocomplete?: string | undefined; + placeholder?: string | undefined; + maxlength?: string | number | undefined; +}>, { + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": FunctionN<[number], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + inputIcons: InputIcons; + min: number; + max: number; + step: number; + displayControls: boolean; + controlsRounded: boolean; + controlsPosition: BNumberInputControlsPosition; + numberInputIcons: NumberInputIcons; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/form/numberInput/BNumberInput.js b/node_modules/buetify/lib/components/form/numberInput/BNumberInput.js new file mode 100755 index 0000000..a9c9134 --- /dev/null +++ b/node_modules/buetify/lib/components/form/numberInput/BNumberInput.js @@ -0,0 +1,152 @@ +import "../../../../src/components/form/numberInput/number-input.sass"; +import { getUseInputPropsDefinition } from '../../../composables/input/useInput'; +import { constant } from 'fp-ts/lib/function'; +import { h, defineComponent, defineAsyncComponent, computed, toRef } from 'vue'; +import { useProxy } from '../../../composables/proxy'; +import { isNumber, isString } from '../../../utils/helpers'; +import BButton from '../../button/BButton'; +import { BInput } from '../input/BInput'; +import { DEFAULT_INPUT_ICONS } from '../shared/types'; +const DEFAULT_NUMBER_INPUT_ICONS = { + minus: defineAsyncComponent(() => import('../../icons/minus')), + plus: defineAsyncComponent(() => import('../../icons/plus')) +}; +const BNumberInputPropsDefinition = { ...getUseInputPropsDefinition(), + min: { + type: Number, + default: Number.MIN_SAFE_INTEGER + }, + max: { + type: Number, + default: Number.MAX_SAFE_INTEGER + }, + step: { + type: Number, + default: 1 + }, + displayControls: { + type: Boolean, + default: true + }, + controlsRounded: { + type: Boolean, + default: false + }, + controlsPosition: { + type: String, + default: '' + }, + inputIcons: { + type: Object, + default: constant(DEFAULT_INPUT_ICONS) + }, + numberInputIcons: { + type: Object, + default: constant(DEFAULT_NUMBER_INPUT_ICONS) + } +}; +export function getNumberInputIcons(icons) { + return { ...DEFAULT_NUMBER_INPUT_ICONS, + ...icons + }; +} + +function getFieldClasses(controlsPosition, isExpanded) { + const isCompact = controlsPosition === 'compact'; + return { + 'is-expanded': isExpanded, + 'has-addons': isCompact, + 'is-grouped': !isCompact + }; +} + +function generateControl(props, data, isDecrement) { + return h('p', { + class: 'control' + }, [h(BButton, { + variant: props.variant || 'is-primary', + size: props.size, + isRounded: props.controlsRounded, + isDisabled: isDecrement ? !data.canDecrement.value : !data.canIncrement.value, + onClick: isDecrement ? data.onDecrement : data.onIncrement + }, () => h(isDecrement ? props.numberInputIcons.minus : props.numberInputIcons.plus, { + size: props.size + }))]); +} + +function generateInput(props, data, context) { + return h(BInput, { ...context.attrs, + modelValue: data.number.value, + 'onUpdate:modelValue': data.set, + type: 'number', + size: props.size, + placeholder: props.placeholder ? `${props.placeholder}` : '', + isDisabled: props.isDisabled, + inputIcons: props.inputIcons, + isReadonly: props.isReadonly, + isLoading: props.isLoading, + isRounded: props.isRounded, + icon: props.icon, + isExpanded: props.isExpanded, + step: props.step, + max: props.max, + min: props.min + }); +} + +export default defineComponent({ + name: 'b-number-input', + props: BNumberInputPropsDefinition, + + setup(props, context) { + const { + value: number + } = useProxy(toRef(props, 'modelValue'), toRef(props, 'onUpdate:modelValue')); + const defaultMin = computed(() => props.min === Number.MIN_SAFE_INTEGER ? 0 : props.min); + const defaultMax = computed(() => props.max === Number.MAX_SAFE_INTEGER ? 0 : props.max); + const canDecrement = computed(() => (number.value ?? defaultMax.value) - props.step >= props.min); + + function onDecrement() { + if (canDecrement.value) { + number.value = (number.value ?? 0) - props.step; + } + } + + const canIncrement = computed(() => (props.modelValue ?? defaultMin.value) + props.step <= props.max); + + function onIncrement() { + if (canIncrement.value) { + number.value = (number.value ?? 0) + props.step; + } + } + + function set(val) { + if (isString(val)) { + const x = Number.parseFloat(val); + if (Number.isNaN(x)) return; + number.value = x; + } + + if (isNumber(val)) { + number.value = val; + } + } + + const data = { + set, + number, + canDecrement, + canIncrement, + onDecrement, + onIncrement + }; + return () => { + const nodes = props.displayControls ? [generateControl(props, data, true), generateInput(props, data, context), generateControl(props, data, false)] : [generateInput(props, data, context)]; + return h('div', { + class: ['b-number-input field', getFieldClasses(props.controlsPosition, props.isExpanded)] + }, nodes); + }; + } + +}); +//# sourceMappingURL=BNumberInput.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/numberInput/BNumberInput.js.map b/node_modules/buetify/lib/components/form/numberInput/BNumberInput.js.map new file mode 100755 index 0000000..570ad49 --- /dev/null +++ b/node_modules/buetify/lib/components/form/numberInput/BNumberInput.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/numberInput/BNumberInput.ts"],"names":[],"mappings":"AAAA,OAAO,+DAAP;AAEA,SAAS,0BAAT,QAA2C,qCAA3C;AACA,SAAS,QAAT,QAAoC,oBAApC;AACA,SACE,CADF,EAGE,eAHF,EAIE,oBAJF,EAOE,QAPF,EASE,KATF,QAWO,KAXP;AAYA,SAAS,QAAT,QAAyB,4BAAzB;AACA,SAAS,QAAT,EAAmB,QAAnB,QAAmC,wBAAnC;AACA,OAAO,OAAP,MAAoB,sBAApB;AACA,SAAS,MAAT,QAAuB,iBAAvB;AACA,SAAuC,mBAAvC,QAAkE,iBAAlE;AAIA,MAAM,0BAA0B,GAAqB;AACnD,EAAA,KAAK,EAAE,oBAAoB,CAAC,MAAM,OAAO,mBAAP,CAAP,CADwB;AAEnD,EAAA,IAAI,EAAE,oBAAoB,CAAC,MAAM,OAAO,kBAAP,CAAP;AAFyB,CAArD;AAKA,MAAM,2BAA2B,GAAG,EAClC,GAAG,0BAA0B,EADK;AAElC,EAAA,GAAG,EAAE;AACH,IAAA,IAAI,EAAE,MADH;AAEH,IAAA,OAAO,EAAE,MAAM,CAAC;AAFb,GAF6B;AAMlC,EAAA,GAAG,EAAE;AACH,IAAA,IAAI,EAAE,MADH;AAEH,IAAA,OAAO,EAAE,MAAM,CAAC;AAFb,GAN6B;AAUlC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAV4B;AAclC,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE,OADS;AAEf,IAAA,OAAO,EAAE;AAFM,GAdiB;AAkBlC,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE,OADS;AAEf,IAAA,OAAO,EAAE;AAFM,GAlBiB;AAsBlC,EAAA,gBAAgB,EAAE;AAChB,IAAA,IAAI,EAAE,MADU;AAEhB,IAAA,OAAO,EAAE;AAFO,GAtBgB;AA0BlC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,OAAO,EAAE,QAAQ,CAAC,mBAAD;AAFP,GA1BsB;AA8BlC,EAAA,gBAAgB,EAAE;AAChB,IAAA,IAAI,EAAE,MADU;AAEhB,IAAA,OAAO,EAAE,QAAQ,CAAC,0BAAD;AAFD;AA9BgB,CAApC;AAsCA,OAAM,SAAU,mBAAV,CAA8B,KAA9B,EAA8D;AAClE,SAAO,EAAE,GAAG,0BAAL;AAAiC,OAAG;AAApC,GAAP;AACD;;AAED,SAAS,eAAT,CAAyB,gBAAzB,EAAyE,UAAzE,EAA4F;AAC1F,QAAM,SAAS,GAAG,gBAAgB,KAAK,SAAvC;AACA,SAAO;AACL,mBAAe,UADV;AAEL,kBAAc,SAFT;AAGL,kBAAc,CAAC;AAHV,GAAP;AAKD;;AAED,SAAS,eAAT,CAAyB,KAAzB,EAAmD,IAAnD,EAA2E,WAA3E,EAA+F;AAC7F,SAAO,CAAC,CACN,GADM,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,CACE,CAAC,CACC,OADD,EAEC;AACE,IAAA,OAAO,EAAE,KAAK,CAAC,OAAN,IAAiB,YAD5B;AAEE,IAAA,IAAI,EAAE,KAAK,CAAC,IAFd;AAGE,IAAA,SAAS,EAAE,KAAK,CAAC,eAHnB;AAIE,IAAA,UAAU,EAAE,WAAW,GAAG,CAAC,IAAI,CAAC,YAAL,CAAkB,KAAtB,GAA8B,CAAC,IAAI,CAAC,YAAL,CAAkB,KAJ1E;AAKE,IAAA,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,WAAR,GAAsB,IAAI,CAAC;AALjD,GAFD,EASC,MACE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,gBAAN,CAAuB,KAA1B,GAAkC,KAAK,CAAC,gBAAN,CAAuB,IAArE,EAA2E;AAC1E,IAAA,IAAI,EAAE,KAAK,CAAC;AAD8D,GAA3E,CAVJ,CADH,CALM,CAAR;AAsBD;;AAED,SAAS,aAAT,CAAuB,KAAvB,EAAiD,IAAjD,EAAyE,OAAzE,EAA8F;AAC5F,SAAO,CAAC,CAAC,MAAD,EAAS,EACf,GAAG,OAAO,CAAC,KADI;AAEf,IAAA,UAAU,EAAE,IAAI,CAAC,MAAL,CAAY,KAFT;AAGf,2BAAuB,IAAI,CAAC,GAHb;AAIf,IAAA,IAAI,EAAE,QAJS;AAKf,IAAA,IAAI,EAAE,KAAK,CAAC,IALG;AAMf,IAAA,WAAW,EAAE,KAAK,CAAC,WAAN,GAAoB,GAAG,KAAK,CAAC,WAAW,EAAxC,GAA6C,EAN3C;AAOf,IAAA,UAAU,EAAE,KAAK,CAAC,UAPH;AAQf,IAAA,UAAU,EAAE,KAAK,CAAC,UARH;AASf,IAAA,UAAU,EAAE,KAAK,CAAC,UATH;AAUf,IAAA,SAAS,EAAE,KAAK,CAAC,SAVF;AAWf,IAAA,SAAS,EAAE,KAAK,CAAC,SAXF;AAYf,IAAA,IAAI,EAAE,KAAK,CAAC,IAZG;AAaf,IAAA,UAAU,EAAE,KAAK,CAAC,UAbH;AAcf,IAAA,IAAI,EAAE,KAAK,CAAC,IAdG;AAef,IAAA,GAAG,EAAE,KAAK,CAAC,GAfI;AAgBf,IAAA,GAAG,EAAE,KAAK,CAAC;AAhBI,GAAT,CAAR;AAkBD;;AAWD,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,gBADuB;AAE7B,EAAA,KAAK,EAAE,2BAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM;AAAE,MAAA,KAAK,EAAE;AAAT,QAAoB,QAAQ,CAChC,KAAK,CAAC,KAAD,EAAQ,YAAR,CAD2B,EAEhC,KAAK,CAAC,KAAD,EAAQ,qBAAR,CAF2B,CAAlC;AAKA,UAAM,UAAU,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,GAAN,KAAc,MAAM,CAAC,gBAArB,GAAwC,CAAxC,GAA4C,KAAK,CAAC,GAA1D,CAA3B;AAEA,UAAM,UAAU,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,GAAN,KAAc,MAAM,CAAC,gBAArB,GAAwC,CAAxC,GAA4C,KAAK,CAAC,GAA1D,CAA3B;AAEA,UAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAP,IAAgB,UAAU,CAAC,KAA5B,IAAqC,KAAK,CAAC,IAA3C,IAAmD,KAAK,CAAC,GAAhE,CAA7B;;AACA,aAAS,WAAT,GAAoB;AAClB,UAAI,YAAY,CAAC,KAAjB,EAAwB;AACtB,QAAA,MAAM,CAAC,KAAP,GAAe,CAAC,MAAM,CAAC,KAAP,IAAgB,CAAjB,IAAsB,KAAK,CAAC,IAA3C;AACD;AACF;;AACD,UAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,UAAN,IAAoB,UAAU,CAAC,KAAhC,IAAyC,KAAK,CAAC,IAA/C,IAAuD,KAAK,CAAC,GAApE,CAA7B;;AAEA,aAAS,WAAT,GAAoB;AAClB,UAAI,YAAY,CAAC,KAAjB,EAAwB;AACtB,QAAA,MAAM,CAAC,KAAP,GAAe,CAAC,MAAM,CAAC,KAAP,IAAgB,CAAjB,IAAsB,KAAK,CAAC,IAA3C;AACD;AACF;;AAED,aAAS,GAAT,CAAa,GAAb,EAAyB;AACvB,UAAI,QAAQ,CAAC,GAAD,CAAZ,EAAmB;AACjB,cAAM,CAAC,GAAG,MAAM,CAAC,UAAP,CAAkB,GAAlB,CAAV;AACA,YAAI,MAAM,CAAC,KAAP,CAAa,CAAb,CAAJ,EAAqB;AACrB,QAAA,MAAM,CAAC,KAAP,GAAe,CAAf;AACD;;AACD,UAAI,QAAQ,CAAC,GAAD,CAAZ,EAAmB;AACjB,QAAA,MAAM,CAAC,KAAP,GAAe,GAAf;AACD;AACF;;AAED,UAAM,IAAI,GAAqB;AAC7B,MAAA,GAD6B;AAE7B,MAAA,MAF6B;AAG7B,MAAA,YAH6B;AAI7B,MAAA,YAJ6B;AAK7B,MAAA,WAL6B;AAM7B,MAAA;AAN6B,KAA/B;AASA,WAAO,MAAK;AACV,YAAM,KAAK,GAAG,KAAK,CAAC,eAAN,GACV,CAAC,eAAe,CAAC,KAAD,EAAQ,IAAR,EAAc,IAAd,CAAhB,EAAqC,aAAa,CAAC,KAAD,EAAQ,IAAR,EAAc,OAAd,CAAlD,EAA0E,eAAe,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,CAAzF,CADU,GAEV,CAAC,aAAa,CAAC,KAAD,EAAQ,IAAR,EAAc,OAAd,CAAd,CAFJ;AAGA,aAAO,CAAC,CACN,KADM,EAEN;AAAE,QAAA,KAAK,EAAE,CAAC,sBAAD,EAAyB,eAAe,CAAC,KAAK,CAAC,gBAAP,EAAyB,KAAK,CAAC,UAA/B,CAAxC;AAAT,OAFM,EAGN,KAHM,CAAR;AAKD,KATD;AAUD;;AAzD4B,CAAD,CAA9B","sourcesContent":["import './number-input.sass';\nimport { IO } from 'fp-ts/lib/IO';\nimport { getUseInputPropsDefinition } from '../../../composables/input/useInput';\nimport { constant, FunctionN } from 'fp-ts/lib/function';\nimport {\n h,\n VNode,\n defineComponent,\n defineAsyncComponent,\n PropType,\n ExtractPropTypes,\n computed,\n SetupContext,\n toRef,\n Ref\n} from 'vue';\nimport { useProxy } from '../../../composables/proxy';\nimport { isNumber, isString } from '../../../utils/helpers';\nimport BButton from '../../button/BButton';\nimport { BInput } from '../input/BInput';\nimport { InputIcons, NumberInputIcons, DEFAULT_INPUT_ICONS } from '../shared/types';\n\nexport type BNumberInputControlsPosition = 'compact' | '';\n\nconst DEFAULT_NUMBER_INPUT_ICONS: NumberInputIcons = {\n minus: defineAsyncComponent(() => import('../../icons/minus')),\n plus: defineAsyncComponent(() => import('../../icons/plus'))\n};\n\nconst BNumberInputPropsDefinition = {\n ...getUseInputPropsDefinition<number>(),\n min: {\n type: Number as PropType<number>,\n default: Number.MIN_SAFE_INTEGER\n },\n max: {\n type: Number as PropType<number>,\n default: Number.MAX_SAFE_INTEGER\n },\n step: {\n type: Number as PropType<number>,\n default: 1\n },\n displayControls: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n controlsRounded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n controlsPosition: {\n type: String as PropType<BNumberInputControlsPosition>,\n default: '' as const\n },\n inputIcons: {\n type: Object as PropType<InputIcons>,\n default: constant(DEFAULT_INPUT_ICONS)\n },\n numberInputIcons: {\n type: Object as PropType<NumberInputIcons>,\n default: constant(DEFAULT_NUMBER_INPUT_ICONS)\n }\n};\n\nexport type BNumberInputProps = ExtractPropTypes<typeof BNumberInputPropsDefinition>;\n\nexport function getNumberInputIcons(icons: Partial<NumberInputIcons>): NumberInputIcons {\n return { ...DEFAULT_NUMBER_INPUT_ICONS, ...icons };\n}\n\nfunction getFieldClasses(controlsPosition: BNumberInputControlsPosition, isExpanded: boolean) {\n const isCompact = controlsPosition === 'compact';\n return {\n 'is-expanded': isExpanded,\n 'has-addons': isCompact,\n 'is-grouped': !isCompact\n };\n}\n\nfunction generateControl(props: BNumberInputProps, data: BNumberInputData, isDecrement: boolean): VNode {\n return h(\n 'p',\n {\n class: 'control'\n },\n [\n h(\n BButton,\n {\n variant: props.variant || 'is-primary',\n size: props.size,\n isRounded: props.controlsRounded,\n isDisabled: isDecrement ? !data.canDecrement.value : !data.canIncrement.value,\n onClick: isDecrement ? data.onDecrement : data.onIncrement\n },\n () =>\n h(isDecrement ? props.numberInputIcons.minus : props.numberInputIcons.plus, {\n size: props.size\n })\n )\n ]\n );\n}\n\nfunction generateInput(props: BNumberInputProps, data: BNumberInputData, context: SetupContext): VNode {\n return h(BInput, {\n ...context.attrs,\n modelValue: data.number.value,\n 'onUpdate:modelValue': data.set,\n type: 'number',\n size: props.size,\n placeholder: props.placeholder ? `${props.placeholder}` : '',\n isDisabled: props.isDisabled,\n inputIcons: props.inputIcons,\n isReadonly: props.isReadonly,\n isLoading: props.isLoading,\n isRounded: props.isRounded,\n icon: props.icon,\n isExpanded: props.isExpanded,\n step: props.step,\n max: props.max,\n min: props.min\n });\n}\n\ninterface BNumberInputData {\n set: FunctionN<[unknown], void>;\n number: Ref<number | undefined>;\n canIncrement: Ref<boolean>;\n onDecrement: IO<void>;\n onIncrement: IO<void>;\n canDecrement: Ref<boolean>;\n}\n\nexport default defineComponent({\n name: 'b-number-input',\n props: BNumberInputPropsDefinition,\n setup(props, context) {\n const { value: number } = useProxy<number | undefined>(\n toRef(props, 'modelValue'),\n toRef(props, 'onUpdate:modelValue') as Ref<FunctionN<[number | undefined], void>>\n );\n\n const defaultMin = computed(() => (props.min === Number.MIN_SAFE_INTEGER ? 0 : props.min));\n\n const defaultMax = computed(() => (props.max === Number.MAX_SAFE_INTEGER ? 0 : props.max));\n\n const canDecrement = computed(() => (number.value ?? defaultMax.value) - props.step >= props.min);\n function onDecrement() {\n if (canDecrement.value) {\n number.value = (number.value ?? 0) - props.step;\n }\n }\n const canIncrement = computed(() => (props.modelValue ?? defaultMin.value) + props.step <= props.max);\n\n function onIncrement() {\n if (canIncrement.value) {\n number.value = (number.value ?? 0) + props.step;\n }\n }\n\n function set(val: unknown) {\n if (isString(val)) {\n const x = Number.parseFloat(val);\n if (Number.isNaN(x)) return;\n number.value = x;\n }\n if (isNumber(val)) {\n number.value = val;\n }\n }\n\n const data: BNumberInputData = {\n set,\n number,\n canDecrement,\n canIncrement,\n onDecrement,\n onIncrement\n };\n\n return () => {\n const nodes = props.displayControls\n ? [generateControl(props, data, true), generateInput(props, data, context), generateControl(props, data, false)]\n : [generateInput(props, data, context)];\n return h(\n 'div',\n { class: ['b-number-input field', getFieldClasses(props.controlsPosition, props.isExpanded)] },\n nodes\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BNumberInput.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/numberInput/index.d.ts b/node_modules/buetify/lib/components/form/numberInput/index.d.ts new file mode 100755 index 0000000..d5b9ab5 --- /dev/null +++ b/node_modules/buetify/lib/components/form/numberInput/index.d.ts @@ -0,0 +1,3 @@ +import BNumberInput from './BNumberInput'; +export { BNumberInput }; +export default BNumberInput; diff --git a/node_modules/buetify/lib/components/form/numberInput/index.js b/node_modules/buetify/lib/components/form/numberInput/index.js new file mode 100755 index 0000000..807d4c3 --- /dev/null +++ b/node_modules/buetify/lib/components/form/numberInput/index.js @@ -0,0 +1,4 @@ +import BNumberInput from './BNumberInput'; +export { BNumberInput }; +export default BNumberInput; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/numberInput/index.js.map b/node_modules/buetify/lib/components/form/numberInput/index.js.map new file mode 100755 index 0000000..95cc5f6 --- /dev/null +++ b/node_modules/buetify/lib/components/form/numberInput/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/numberInput/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAP,MAAyB,gBAAzB;AAEA,SAAS,YAAT;AAEA,eAAe,YAAf","sourcesContent":["import BNumberInput from './BNumberInput';\n\nexport { BNumberInput };\n\nexport default BNumberInput;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/radio/BRadio.d.ts b/node_modules/buetify/lib/components/form/radio/BRadio.d.ts new file mode 100755 index 0000000..f0ded97 --- /dev/null +++ b/node_modules/buetify/lib/components/form/radio/BRadio.d.ts @@ -0,0 +1,1991 @@ +import '../sass/form.sass'; +import './radio.sass'; +export declare const defineRadio: <T>() => import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ [K in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K]; } & { [K_1 in Exclude<"variant", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"size", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"name", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isFocused", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isDisabled", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"label", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"labelFor", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onFocus", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onBlur", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"focusOnMount", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onUpdate:modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"disableIfReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isRequired", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"eq", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"falseValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"nativeValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"trueValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isMultiple", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isIndeterminate", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)>]?: ({ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1]) | undefined; }>, { [K_2 in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2]; }>; +export declare const BRadio: import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<unknown>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[unknown], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[unknown], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<unknown>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<unknown>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<unknown>; + default: unknown; + }; + falseValue: { + type: import("vue").PropType<unknown>; + default: unknown; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isFocused: boolean; + isDisabled: boolean; + label: string; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[unknown], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + isRequired: boolean; + eq: import("fp-ts/lib/Eq").Eq<unknown>; + falseValue: unknown; + nativeValue: null; + trueValue: unknown; + isMultiple: boolean; + isIndeterminate: boolean; +} & { + name?: string | undefined; + labelFor?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: unknown; +}>, { + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isFocused: boolean; + isDisabled: boolean; + label: string; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[unknown], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + isRequired: boolean; + eq: import("fp-ts/lib/Eq").Eq<unknown>; + falseValue: unknown; + nativeValue: null; + trueValue: unknown; + isMultiple: boolean; + isIndeterminate: boolean; +}>; diff --git a/node_modules/buetify/lib/components/form/radio/BRadio.js b/node_modules/buetify/lib/components/form/radio/BRadio.js new file mode 100755 index 0000000..d5be95e --- /dev/null +++ b/node_modules/buetify/lib/components/form/radio/BRadio.js @@ -0,0 +1,6 @@ +import "../../../../src/components/form/sass/form.sass"; +import "../../../../src/components/form/radio/radio.sass"; +import { useSelectionControl } from '../shared/useSelectionControl'; +export const defineRadio = useSelectionControl('radio', 'radio', 'b-radio', 'b-radio radio'); +export const BRadio = defineRadio(); +//# sourceMappingURL=BRadio.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/radio/BRadio.js.map b/node_modules/buetify/lib/components/form/radio/BRadio.js.map new file mode 100755 index 0000000..85e22cd --- /dev/null +++ b/node_modules/buetify/lib/components/form/radio/BRadio.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/radio/BRadio.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAP;AACA,OAAO,kDAAP;AACA,SAAS,mBAAT,QAAoC,+BAApC;AAEA,OAAO,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAD,EAAU,OAAV,EAAmB,SAAnB,EAA8B,eAA9B,CAAvC;AAEP,OAAO,MAAM,MAAM,GAAG,WAAW,EAA1B","sourcesContent":["import '../sass/form.sass';\nimport './radio.sass';\nimport { useSelectionControl } from '../shared/useSelectionControl';\n\nexport const defineRadio = useSelectionControl('radio', 'radio', 'b-radio', 'b-radio radio');\n\nexport const BRadio = defineRadio<unknown>();\n"],"sourceRoot":"","file":"BRadio.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/radio/index.d.ts b/node_modules/buetify/lib/components/form/radio/index.d.ts new file mode 100755 index 0000000..a7115d8 --- /dev/null +++ b/node_modules/buetify/lib/components/form/radio/index.d.ts @@ -0,0 +1,3 @@ +import { BRadio, defineRadio } from './BRadio'; +export { BRadio, defineRadio }; +export default BRadio; diff --git a/node_modules/buetify/lib/components/form/radio/index.js b/node_modules/buetify/lib/components/form/radio/index.js new file mode 100755 index 0000000..48aa5ae --- /dev/null +++ b/node_modules/buetify/lib/components/form/radio/index.js @@ -0,0 +1,4 @@ +import { BRadio, defineRadio } from './BRadio'; +export { BRadio, defineRadio }; +export default BRadio; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/radio/index.js.map b/node_modules/buetify/lib/components/form/radio/index.js.map new file mode 100755 index 0000000..b1ca051 --- /dev/null +++ b/node_modules/buetify/lib/components/form/radio/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/radio/index.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,EAAiB,WAAjB,QAAoC,UAApC;AAEA,SAAS,MAAT,EAAiB,WAAjB;AAEA,eAAe,MAAf","sourcesContent":["import { BRadio, defineRadio } from './BRadio';\n\nexport { BRadio, defineRadio };\n\nexport default BRadio;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/select/BSelect.d.ts b/node_modules/buetify/lib/components/form/select/BSelect.d.ts new file mode 100755 index 0000000..f640d15 --- /dev/null +++ b/node_modules/buetify/lib/components/form/select/BSelect.d.ts @@ -0,0 +1,3508 @@ +import '../sass/form.sass'; +import './select.sass'; +import { Eq } from 'fp-ts/lib/Eq'; +import { UseInputProps } from '../../../composables/input/useInput'; +import { EqProps } from '../../../composables/shared'; +import { Extractor } from '../../../utils/helpers'; +import { PropType, VNode } from 'vue'; +export interface SelectItem<T> { + value: T; + text: string; + isDisabled: boolean; + isSelected: boolean; +} +export declare function getBSelectPropsDefinition<T>(eq?: Eq<T>): { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}; +export declare type BSelectProps<T> = EqProps<T> & UseInputProps<T> & { + items: T[]; + isMultiple: boolean; + itemKey?: Extractor<T>; + itemText: Extractor<T>; + itemValue: Extractor<T>; + itemDisabled: Extractor<T>; + displayCount?: string | number; +}; +export declare function defineSelect<T>(eq?: Eq<T>): import("vue").DefineComponent<{ + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ [K in "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)]: { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K] extends null ? any : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K] extends { + type: true | null; +} ? any : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K]; } & { [K_1 in Exclude<"isThemeable", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"themeMap", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"variant", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"size", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"icon", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isExpanded", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"type", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isRounded", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isLoading", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isFocused", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isDisabled", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"onFocus", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"onBlur", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"focusOnMount", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"modelValue", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"onUpdate:modelValue", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isReadonly", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"disableIfReadonly", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"useNativeValidation", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isValid", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"onUpdate:isValid", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"autocomplete", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"placeholder", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isRequired", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"maxlength", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"usePasswordReveal", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"items", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"itemText", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"eq", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"isMultiple", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"itemKey", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"itemValue", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"itemDisabled", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)> | Exclude<"displayCount", "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "items" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)>]?: ({ + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_1] extends null ? any : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_1] extends { + type: true | null; +} ? any : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_1] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_1] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_1] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_1]) | undefined; }>, { [K_2 in "isThemeable" | "themeMap" | "variant" | "size" | "isExpanded" | "isRounded" | "isLoading" | "isFocused" | "isDisabled" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "useNativeValidation" | "isValid" | "onUpdate:isValid" | "isRequired" | "usePasswordReveal" | "itemText" | "eq" | "isMultiple" | "itemValue" | "itemDisabled" | ({ + type: PropType<T>; + required: false; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never) | ({ + type: PropType<Extractor<T>>; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "itemKey" : never)]: { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_2] extends null ? any : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_2] extends { + type: true | null; +} ? any : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_2] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_2] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_2] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + items: { + type: PropType<T[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<T>>; + }; + itemText: { + type: PropType<Extractor<T>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<T>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<T>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}[K_2]; }>; +export declare const BSelect: import("vue").DefineComponent<{ + items: { + type: PropType<any[]>; + required: true; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + itemKey: { + type: PropType<Extractor<any>>; + }; + itemText: { + type: PropType<Extractor<any>>; + default: string; + }; + itemValue: { + type: PropType<Extractor<any>>; + default: string; + }; + itemDisabled: { + type: PropType<Extractor<any>>; + default: string; + }; + displayCount: { + type: (StringConstructor | NumberConstructor)[]; + }; + themeMap: { + type: PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<any>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[any], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[any], void>>; + }; + eq: { + type: PropType<Eq<any>>; + default: import("fp-ts/lib/function").Lazy<Eq<any>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[any], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": import("fp-ts/lib/function").FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + items: any[]; + itemText: Extractor<any>; + eq: Eq<any>; + isMultiple: boolean; + itemValue: Extractor<any>; + itemDisabled: Extractor<any>; +} & { + icon?: any; + type?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: unknown; + autocomplete?: string | undefined; + placeholder?: string | undefined; + maxlength?: string | number | undefined; + itemKey?: string | number | symbol | ((item: any) => any) | undefined; + displayCount?: string | number | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isExpanded: boolean; + isRounded: boolean; + isLoading: boolean; + isFocused: boolean; + isDisabled: boolean; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[any], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + useNativeValidation: boolean; + isValid: boolean; + "onUpdate:isValid": import("fp-ts/lib/function").FunctionN<[boolean], void>; + isRequired: boolean; + usePasswordReveal: boolean; + itemText: Extractor<any>; + eq: Eq<any>; + isMultiple: boolean; + itemValue: Extractor<any>; + itemDisabled: Extractor<any>; +}>; diff --git a/node_modules/buetify/lib/components/form/select/BSelect.js b/node_modules/buetify/lib/components/form/select/BSelect.js new file mode 100755 index 0000000..4ff2eab --- /dev/null +++ b/node_modules/buetify/lib/components/form/select/BSelect.js @@ -0,0 +1,158 @@ +import "../../../../src/components/form/sass/form.sass"; +import "../../../../src/components/form/select/select.sass"; +import { getUseInputPropsDefinition, useInput } from '../../../composables/input/useInput'; +import { getEqPropsDefinition } from '../../../composables/shared'; +import { DefaultThemePropsDefinition, useTheme } from '../../../composables/theme'; +import { extractProp, isBoolean } from '../../../utils/helpers'; +import { defineComponent, h, shallowRef, vModelSelect, withDirectives } from 'vue'; +export function getBSelectPropsDefinition(eq) { + return { ...getEqPropsDefinition(eq), + ...getUseInputPropsDefinition(), + ...DefaultThemePropsDefinition, + items: { + type: Array, + required: true + }, + isMultiple: { + type: Boolean, + default: false + }, + itemKey: { + type: [String, Function] + }, + itemText: { + type: [String, Function], + default: 'text' + }, + itemValue: { + type: [String, Function], + default: 'value' + }, + itemDisabled: { + type: [String, Function], + default: 'isDisabled' + }, + displayCount: { + type: [String, Number] + } + }; +} + +function getControlClasses(isExpanded, hasIcon) { + return { + 'is-expanded': isExpanded, + 'has-icons-left': hasIcon + }; +} + +function isMultiple(props, input) { + return props.isMultiple || props.isMultiple === undefined && Array.isArray(input.modelValue.value); +} + +function isEmpty(val) { + return val === null || val === undefined || Array.isArray(val) && val.length === 0; +} + +function getSelectClasses(props, input) { + return [input.size.value, input.messageVariant.value, { + 'is-fullwidth': input.isFullwidth.value, + 'is-loading': props.isLoading, + 'is-multiple': isMultiple(props, input), + 'is-rounded': props.isRounded, + 'is-empty': isEmpty(input.modelValue.value) + }]; +} + +function generatePlaceholder(props, context) { + return h('option', { + value: null, + hidden: true, + disabled: true, + selected: true + }, context.slots.placeholder ? context.slots.placeholder() : props.placeholder); +} + +function getIsSelected(props, input) { + return val => { + const equals = props.eq.equals; + const value = input.modelValue.value; + + if (value === null || value === undefined) { + return false; + } else if (isMultiple(props, input)) { + return Array.isArray(value) ? value.some(v => equals(v, val)) : false; + } else { + return equals(val, value); + } + }; +} + +function generateOptions(props, context, input) { + const isSelected = getIsSelected(props, input); + return props.items.map((item, index) => { + const isDisabled = extractProp(props.itemDisabled, item); + return context.slots.option ? context.slots.option({ + item, + index + }) : h('option', { + key: props.itemKey ? extractProp(props.itemKey, item) : String(index), + value: extractProp(props.itemValue, item), + disabled: isBoolean(isDisabled) ? isDisabled : !isDisabled, + selected: isSelected(item) + }, context.slots.default ? context.slots.default({ + item, + index + }) : extractProp(props.itemText, item)); + }); +} + +function generateSelect(props, context, ref, input, themeClasses) { + const value = input.modelValue.value; + const usePlaceholder = isEmpty(value) && (!!props.placeholder || !!context.slots.placeholder); + return withDirectives(h('select', { ...context.attrs, + ref, + required: props.isRequired, + disabled: props.isDisabled, + size: props.displayCount || null, + multiple: isMultiple(props, input), + class: themeClasses, + onBlur: input.onBlur, + onFocus: input.onFocus, + 'onUpdate:modelValue': input.set + }, usePlaceholder ? [generatePlaceholder(props, context), ...generateOptions(props, context, input)] : generateOptions(props, context, input)), [[vModelSelect, value ?? null]]); +} + +export function defineSelect(eq) { + return defineComponent({ + name: 'b-select', + props: getBSelectPropsDefinition(eq), + + setup(props, context) { + const selectRef = shallowRef(null); + const input = useInput(props, selectRef); + const { + themeClasses + } = useTheme(props); + return () => { + const nodes = [h('span', { + class: ['select', ...getSelectClasses(props, input)] + }, [generateSelect(props, context, selectRef, input, themeClasses.value)])]; + + if (input.icon && input.icon.value) { + nodes.push(h(input.icon.value, { + class: 'is-left', + size: input.size.value + })); + } + + return h('div', { + class: ['control', getControlClasses(input.isExpanded.value, !!input.icon)] + }, nodes); + }; + } + + }); +} // eslint-disable-next-line + +export const BSelect = defineSelect(); +//# sourceMappingURL=BSelect.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/select/BSelect.js.map b/node_modules/buetify/lib/components/form/select/BSelect.js.map new file mode 100755 index 0000000..842f744 --- /dev/null +++ b/node_modules/buetify/lib/components/form/select/BSelect.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/select/BSelect.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAP;AACA,OAAO,oDAAP;AAEA,SAAS,0BAAT,EAA4C,QAA5C,QAA2E,qCAA3E;AACA,SAAkB,oBAAlB,QAA8C,6BAA9C;AACA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,4BAAtD;AACA,SAAoB,WAApB,EAAiC,SAAjC,QAAkD,wBAAlD;AACA,SAA0B,eAA1B,EAA2C,CAA3C,EAA8C,UAA9C,EAA6E,YAA7E,EAA2F,cAA3F,QAAiH,KAAjH;AAUA,OAAM,SAAU,yBAAV,CAAuC,EAAvC,EAAiD;AACrD,SAAO,EACL,GAAG,oBAAoB,CAAI,EAAJ,CADlB;AAEL,OAAG,0BAA0B,EAFxB;AAGL,OAAG,2BAHE;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,KADD;AAEL,MAAA,QAAQ,EAAE;AAFL,KAJF;AAQL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KARP;AAYL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT;AADC,KAZJ;AAeL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT,CADE;AAER,MAAA,OAAO,EAAE;AAFD,KAfL;AAmBL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT,CADG;AAET,MAAA,OAAO,EAAE;AAFA,KAnBN;AAuBL,IAAA,YAAY,EAAE;AACZ,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT,CADM;AAEZ,MAAA,OAAO,EAAE;AAFG,KAvBT;AA2BL,IAAA,YAAY,EAAE;AACZ,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT;AADM;AA3BT,GAAP;AA+BD;;AAaD,SAAS,iBAAT,CAA2B,UAA3B,EAAgD,OAAhD,EAAgE;AAC9D,SAAO;AACL,mBAAe,UADV;AAEL,sBAAkB;AAFb,GAAP;AAID;;AAED,SAAS,UAAT,CAAuB,KAAvB,EAA+C,KAA/C,EAA2D;AACzD,SAAO,KAAK,CAAC,UAAN,IAAqB,KAAK,CAAC,UAAN,KAAqB,SAArB,IAAkC,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,UAAN,CAAiB,KAA/B,CAA9D;AACD;;AAED,SAAS,OAAT,CAAiB,GAAjB,EAA6B;AAC3B,SAAO,GAAG,KAAK,IAAR,IAAgB,GAAG,KAAK,SAAxB,IAAsC,KAAK,CAAC,OAAN,CAAc,GAAd,KAAsB,GAAG,CAAC,MAAJ,KAAe,CAAlF;AACD;;AAED,SAAS,gBAAT,CAA6B,KAA7B,EAAqD,KAArD,EAAiE;AAC/D,SAAO,CACL,KAAK,CAAC,IAAN,CAAW,KADN,EAEL,KAAK,CAAC,cAAN,CAAqB,KAFhB,EAGL;AACE,oBAAgB,KAAK,CAAC,WAAN,CAAkB,KADpC;AAEE,kBAAc,KAAK,CAAC,SAFtB;AAGE,mBAAe,UAAU,CAAC,KAAD,EAAQ,KAAR,CAH3B;AAIE,kBAAc,KAAK,CAAC,SAJtB;AAKE,gBAAY,OAAO,CAAC,KAAK,CAAC,UAAN,CAAiB,KAAlB;AALrB,GAHK,CAAP;AAWD;;AAED,SAAS,mBAAT,CAAgC,KAAhC,EAAwD,OAAxD,EAA6E;AAC3E,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,IADT;AAEE,IAAA,MAAM,EAAE,IAFV;AAGE,IAAA,QAAQ,EAAE,IAHZ;AAIE,IAAA,QAAQ,EAAE;AAJZ,GAFM,EAQN,OAAO,CAAC,KAAR,CAAc,WAAd,GAA4B,OAAO,CAAC,KAAR,CAAc,WAAd,EAA5B,GAA0D,KAAK,CAAC,WAR1D,CAAR;AAUD;;AAED,SAAS,aAAT,CAA0B,KAA1B,EAAkD,KAAlD,EAA8D;AAC5D,SAAQ,GAAD,IAAW;AAChB,UAAM,MAAM,GAAG,KAAK,CAAC,EAAN,CAAS,MAAxB;AACA,UAAM,KAAK,GAAG,KAAK,CAAC,UAAN,CAAiB,KAA/B;;AACA,QAAI,KAAK,KAAK,IAAV,IAAkB,KAAK,KAAK,SAAhC,EAA2C;AACzC,aAAO,KAAP;AACD,KAFD,MAEO,IAAI,UAAU,CAAC,KAAD,EAAQ,KAAR,CAAd,EAA8B;AACnC,aAAO,KAAK,CAAC,OAAN,CAAc,KAAd,IAAuB,KAAK,CAAC,IAAN,CAAW,CAAC,IAAI,MAAM,CAAC,CAAD,EAAI,GAAJ,CAAtB,CAAvB,GAAyD,KAAhE;AACD,KAFM,MAEA;AACL,aAAO,MAAM,CAAC,GAAD,EAAM,KAAN,CAAb;AACD;AACF,GAVD;AAWD;;AACD,SAAS,eAAT,CAA4B,KAA5B,EAAoD,OAApD,EAA2E,KAA3E,EAAuF;AACrF,QAAM,UAAU,GAAG,aAAa,CAAC,KAAD,EAAQ,KAAR,CAAhC;AACA,SAAO,KAAK,CAAC,KAAN,CAAY,GAAZ,CAAgB,CAAC,IAAD,EAAO,KAAP,KAAgB;AACrC,UAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,YAAP,EAAqB,IAArB,CAA9B;AACA,WAAO,OAAO,CAAC,KAAR,CAAc,MAAd,GACH,OAAO,CAAC,KAAR,CAAc,MAAd,CAAqB;AAAE,MAAA,IAAF;AAAQ,MAAA;AAAR,KAArB,CADG,GAEH,CAAC,CACC,QADD,EAEC;AACE,MAAA,GAAG,EAAE,KAAK,CAAC,OAAN,GAAkB,WAAW,CAAC,KAAK,CAAC,OAAP,EAAgB,IAAhB,CAA7B,GAA4E,MAAM,CAAC,KAAD,CADzF;AAEE,MAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,SAAP,EAAkB,IAAlB,CAFpB;AAGE,MAAA,QAAQ,EAAE,SAAS,CAAC,UAAD,CAAT,GAAwB,UAAxB,GAAqC,CAAC,UAHlD;AAIE,MAAA,QAAQ,EAAE,UAAU,CAAC,IAAD;AAJtB,KAFD,EAQC,OAAO,CAAC,KAAR,CAAc,OAAd,GACI,OAAO,CAAC,KAAR,CAAc,OAAd,CAAsB;AAAE,MAAA,IAAF;AAAQ,MAAA;AAAR,KAAtB,CADJ,GAEM,WAAW,CAAC,KAAK,CAAC,QAAP,EAAiB,IAAjB,CAVlB,CAFL;AAcD,GAhBM,CAAP;AAiBD;;AAED,SAAS,cAAT,CACE,KADF,EAEE,OAFF,EAGE,GAHF,EAIE,KAJF,EAKE,YALF,EAKuB;AAErB,QAAM,KAAK,GAAG,KAAK,CAAC,UAAN,CAAiB,KAA/B;AACA,QAAM,cAAc,GAAG,OAAO,CAAC,KAAD,CAAP,KAAmB,CAAC,CAAC,KAAK,CAAC,WAAR,IAAuB,CAAC,CAAC,OAAO,CAAC,KAAR,CAAc,WAA1D,CAAvB;AACA,SAAO,cAAc,CACnB,CAAC,CACC,QADD,EAEC,EACE,GAAG,OAAO,CAAC,KADb;AAEE,IAAA,GAFF;AAGE,IAAA,QAAQ,EAAE,KAAK,CAAC,UAHlB;AAIE,IAAA,QAAQ,EAAE,KAAK,CAAC,UAJlB;AAKE,IAAA,IAAI,EAAE,KAAK,CAAC,YAAN,IAAsB,IAL9B;AAME,IAAA,QAAQ,EAAE,UAAU,CAAC,KAAD,EAAQ,KAAR,CANtB;AAOE,IAAA,KAAK,EAAE,YAPT;AAQE,IAAA,MAAM,EAAE,KAAK,CAAC,MARhB;AASE,IAAA,OAAO,EAAE,KAAK,CAAC,OATjB;AAUE,2BAAuB,KAAK,CAAC;AAV/B,GAFD,EAcC,cAAc,GACV,CAAC,mBAAmB,CAAC,KAAD,EAAQ,OAAR,CAApB,EAAsC,GAAG,eAAe,CAAC,KAAD,EAAQ,OAAR,EAAiB,KAAjB,CAAxD,CADU,GAEV,eAAe,CAAC,KAAD,EAAQ,OAAR,EAAiB,KAAjB,CAhBpB,CADkB,EAmBnB,CAAC,CAAC,YAAD,EAAe,KAAK,IAAI,IAAxB,CAAD,CAnBmB,CAArB;AAqBD;;AAED,OAAM,SAAU,YAAV,CAA0B,EAA1B,EAAoC;AACxC,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,UADe;AAErB,IAAA,KAAK,EAAE,yBAAyB,CAAI,EAAJ,CAFX;;AAGrB,IAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,YAAM,SAAS,GAAG,UAAU,CAAE,IAAF,CAA5B;AACA,YAAM,KAAK,GAAG,QAAQ,CAAC,KAAD,EAA4B,SAA5B,CAAtB;AACA,YAAM;AAAE,QAAA;AAAF,UAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,aAAO,MAAK;AACV,cAAM,KAAK,GAAG,CACZ,CAAC,CACC,MADD,EAEC;AACE,UAAA,KAAK,EAAE,CAAC,QAAD,EAAW,GAAG,gBAAgB,CAAC,KAAD,EAA2B,KAA3B,CAA9B;AADT,SAFD,EAKC,CAAC,cAAc,CAAC,KAAD,EAA2B,OAA3B,EAAoC,SAApC,EAA+C,KAA/C,EAA+D,YAAY,CAAC,KAA5E,CAAf,CALD,CADW,CAAd;;AAUA,YAAI,KAAK,CAAC,IAAN,IAAc,KAAK,CAAC,IAAN,CAAW,KAA7B,EAAoC;AAClC,UAAA,KAAK,CAAC,IAAN,CACE,CAAC,CAAC,KAAK,CAAC,IAAN,CAAW,KAAZ,EAAmB;AAClB,YAAA,KAAK,EAAE,SADW;AAElB,YAAA,IAAI,EAAE,KAAK,CAAC,IAAN,CAAW;AAFC,WAAnB,CADH;AAMD;;AAED,eAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,UAAA,KAAK,EAAE,CAAC,SAAD,EAAY,iBAAiB,CAAC,KAAK,CAAC,UAAN,CAAiB,KAAlB,EAAyB,CAAC,CAAC,KAAK,CAAC,IAAjC,CAA7B;AAAT,SAAR,EAAyF,KAAzF,CAAR;AACD,OArBD;AAsBD;;AA7BoB,GAAD,CAAtB;AA+BD,C,CAED;;AACA,OAAO,MAAM,OAAO,GAAG,YAAY,EAA5B","sourcesContent":["import '../sass/form.sass';\nimport './select.sass';\nimport { Eq } from 'fp-ts/lib/Eq';\nimport { getUseInputPropsDefinition, Input, useInput, UseInputProps } from '../../../composables/input/useInput';\nimport { EqProps, getEqPropsDefinition } from '../../../composables/shared';\nimport { DefaultThemePropsDefinition, useTheme } from '../../../composables/theme';\nimport { Extractor, extractProp, isBoolean } from '../../../utils/helpers';\nimport { PropType, VNode, defineComponent, h, shallowRef, SetupContext, Ref, vModelSelect, withDirectives } from 'vue';\nimport { Classes } from '../../../utils/mergeClasses';\n\nexport interface SelectItem<T> {\n value: T;\n text: string;\n isDisabled: boolean;\n isSelected: boolean;\n}\n\nexport function getBSelectPropsDefinition<T>(eq?: Eq<T>) {\n return {\n ...getEqPropsDefinition<T>(eq),\n ...getUseInputPropsDefinition<T>(),\n ...DefaultThemePropsDefinition,\n items: {\n type: Array as PropType<T[]>,\n required: true as const\n },\n isMultiple: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n itemKey: {\n type: [String, Function] as PropType<Extractor<T>>\n },\n itemText: {\n type: [String, Function] as PropType<Extractor<T>>,\n default: 'text'\n },\n itemValue: {\n type: [String, Function] as PropType<Extractor<T>>,\n default: 'value'\n },\n itemDisabled: {\n type: [String, Function] as PropType<Extractor<T>>,\n default: 'isDisabled'\n },\n displayCount: {\n type: [String, Number]\n }\n };\n}\n\nexport type BSelectProps<T> = EqProps<T> &\n UseInputProps<T> & {\n items: T[];\n isMultiple: boolean;\n itemKey?: Extractor<T>;\n itemText: Extractor<T>;\n itemValue: Extractor<T>;\n itemDisabled: Extractor<T>;\n displayCount?: string | number;\n };\n\nfunction getControlClasses(isExpanded: boolean, hasIcon: boolean) {\n return {\n 'is-expanded': isExpanded,\n 'has-icons-left': hasIcon\n };\n}\n\nfunction isMultiple<T>(props: BSelectProps<T>, input: Input) {\n return props.isMultiple || (props.isMultiple === undefined && Array.isArray(input.modelValue.value));\n}\n\nfunction isEmpty(val: unknown) {\n return val === null || val === undefined || (Array.isArray(val) && val.length === 0);\n}\n\nfunction getSelectClasses<T>(props: BSelectProps<T>, input: Input): Classes[] {\n return [\n input.size.value,\n input.messageVariant.value,\n {\n 'is-fullwidth': input.isFullwidth.value,\n 'is-loading': props.isLoading,\n 'is-multiple': isMultiple(props, input),\n 'is-rounded': props.isRounded,\n 'is-empty': isEmpty(input.modelValue.value)\n }\n ];\n}\n\nfunction generatePlaceholder<T>(props: BSelectProps<T>, context: SetupContext): VNode {\n return h(\n 'option',\n {\n value: null,\n hidden: true,\n disabled: true,\n selected: true\n },\n context.slots.placeholder ? context.slots.placeholder() : props.placeholder\n );\n}\n\nfunction getIsSelected<T>(props: BSelectProps<T>, input: Input) {\n return (val: T) => {\n const equals = props.eq.equals;\n const value = input.modelValue.value;\n if (value === null || value === undefined) {\n return false;\n } else if (isMultiple(props, input)) {\n return Array.isArray(value) ? value.some(v => equals(v, val)) : false;\n } else {\n return equals(val, value as T);\n }\n };\n}\nfunction generateOptions<T>(props: BSelectProps<T>, context: SetupContext, input: Input) {\n const isSelected = getIsSelected(props, input);\n return props.items.map((item, index) => {\n const isDisabled = extractProp(props.itemDisabled, item);\n return context.slots.option\n ? context.slots.option({ item, index })\n : h(\n 'option',\n {\n key: props.itemKey ? ((extractProp(props.itemKey, item) as unknown) as string) : String(index),\n value: extractProp(props.itemValue, item),\n disabled: isBoolean(isDisabled) ? isDisabled : !isDisabled,\n selected: isSelected(item)\n },\n context.slots.default\n ? context.slots.default({ item, index })\n : ((extractProp(props.itemText, item) as unknown) as string)\n );\n });\n}\n\nfunction generateSelect<T>(\n props: BSelectProps<T>,\n context: SetupContext,\n ref: Ref<HTMLElement>,\n input: Input,\n themeClasses: Classes\n): VNode {\n const value = input.modelValue.value;\n const usePlaceholder = isEmpty(value) && (!!props.placeholder || !!context.slots.placeholder);\n return withDirectives(\n h(\n 'select',\n {\n ...context.attrs,\n ref,\n required: props.isRequired,\n disabled: props.isDisabled,\n size: props.displayCount || null,\n multiple: isMultiple(props, input),\n class: themeClasses,\n onBlur: input.onBlur,\n onFocus: input.onFocus,\n 'onUpdate:modelValue': input.set\n },\n usePlaceholder\n ? [generatePlaceholder(props, context), ...generateOptions(props, context, input)]\n : generateOptions(props, context, input)\n ),\n [[vModelSelect, value ?? null]]\n );\n}\n\nexport function defineSelect<T>(eq?: Eq<T>) {\n return defineComponent({\n name: 'b-select',\n props: getBSelectPropsDefinition<T>(eq),\n setup(props, context) {\n const selectRef = shallowRef((null as unknown) as HTMLElement);\n const input = useInput(props as UseInputProps<T>, selectRef);\n const { themeClasses } = useTheme(props);\n return () => {\n const nodes = [\n h(\n 'span',\n {\n class: ['select', ...getSelectClasses(props as BSelectProps<T>, input as Input)]\n },\n [generateSelect(props as BSelectProps<T>, context, selectRef, input as Input, themeClasses.value)]\n )\n ];\n\n if (input.icon && input.icon.value) {\n nodes.push(\n h(input.icon.value, {\n class: 'is-left',\n size: input.size.value\n })\n );\n }\n\n return h('div', { class: ['control', getControlClasses(input.isExpanded.value, !!input.icon)] }, nodes);\n };\n }\n });\n}\n\n// eslint-disable-next-line\nexport const BSelect = defineSelect<any>();\n"],"sourceRoot":"","file":"BSelect.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/select/index.d.ts b/node_modules/buetify/lib/components/form/select/index.d.ts new file mode 100755 index 0000000..cb317eb --- /dev/null +++ b/node_modules/buetify/lib/components/form/select/index.d.ts @@ -0,0 +1 @@ +export * from './BSelect'; diff --git a/node_modules/buetify/lib/components/form/select/index.js b/node_modules/buetify/lib/components/form/select/index.js new file mode 100755 index 0000000..13b6810 --- /dev/null +++ b/node_modules/buetify/lib/components/form/select/index.js @@ -0,0 +1,2 @@ +export * from './BSelect'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/select/index.js.map b/node_modules/buetify/lib/components/form/select/index.js.map new file mode 100755 index 0000000..90dce25 --- /dev/null +++ b/node_modules/buetify/lib/components/form/select/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/select/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAd","sourcesContent":["export * from './BSelect';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/index.d.ts b/node_modules/buetify/lib/components/form/shared/index.d.ts new file mode 100755 index 0000000..235a578 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/index.d.ts @@ -0,0 +1,2 @@ +export * from './useSelectionControl'; +export * from './types'; diff --git a/node_modules/buetify/lib/components/form/shared/index.js b/node_modules/buetify/lib/components/form/shared/index.js new file mode 100755 index 0000000..16d9879 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/index.js @@ -0,0 +1,3 @@ +export * from './useSelectionControl'; +export * from './types'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/index.js.map b/node_modules/buetify/lib/components/form/shared/index.js.map new file mode 100755 index 0000000..2c9b4ab --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAd;AACA,cAAc,SAAd","sourcesContent":["export * from './useSelectionControl';\nexport * from './types';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/types.d.ts b/node_modules/buetify/lib/components/form/shared/types.d.ts new file mode 100755 index 0000000..bd81b0b --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/types.d.ts @@ -0,0 +1,19 @@ +import { FunctionalComponent, ComponentOptions } from 'vue'; +declare type Component = FunctionalComponent | ComponentOptions; +export interface InputIcons { + isSuccess: Component; + isDanger: Component; + isWarning: Component; + isInfo: Component; + passwordVisible: Component; + passwordInvisible: Component; +} +export declare const DEFAULT_INPUT_ICONS: InputIcons; +export declare function getInputIcons(icons: Partial<InputIcons>): InputIcons; +export interface NumberInputIcons { + minus: Component; + plus: Component; +} +export declare const DEFAULT_NUMBER_INPUT_ICONS: NumberInputIcons; +export declare function getNumberInputIcons(icons: Partial<NumberInputIcons>): NumberInputIcons; +export {}; diff --git a/node_modules/buetify/lib/components/form/shared/types.js b/node_modules/buetify/lib/components/form/shared/types.js new file mode 100755 index 0000000..bb7df1d --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/types.js @@ -0,0 +1,24 @@ +import { defineAsyncComponent } from 'vue'; +export const DEFAULT_INPUT_ICONS = { + isSuccess: defineAsyncComponent(() => import('../../icons/check')), + isDanger: defineAsyncComponent(() => import('../../icons/exclamationCircle')), + isInfo: defineAsyncComponent(() => import('../../icons/infoCircle')), + isWarning: defineAsyncComponent(() => import('../../icons/exclamationTriangle')), + passwordInvisible: defineAsyncComponent(() => import('../../icons/eye')), + passwordVisible: defineAsyncComponent(() => import('../../icons/eyeSlash')) +}; +export function getInputIcons(icons) { + return { ...DEFAULT_INPUT_ICONS, + ...icons + }; +} +export const DEFAULT_NUMBER_INPUT_ICONS = { + minus: defineAsyncComponent(() => import('../../icons/minus')), + plus: defineAsyncComponent(() => import('../../icons/plus')) +}; +export function getNumberInputIcons(icons) { + return { ...DEFAULT_NUMBER_INPUT_ICONS, + ...icons + }; +} +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/types.js.map b/node_modules/buetify/lib/components/form/shared/types.js.map new file mode 100755 index 0000000..a982dda --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/types.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/shared/types.ts"],"names":[],"mappings":"AAAA,SAAgD,oBAAhD,QAA4E,KAA5E;AAaA,OAAO,MAAM,mBAAmB,GAAe;AAC7C,EAAA,SAAS,EAAE,oBAAoB,CAAC,MAAM,OAAO,mBAAP,CAAP,CADc;AAE7C,EAAA,QAAQ,EAAE,oBAAoB,CAAC,MAAM,OAAO,+BAAP,CAAP,CAFe;AAG7C,EAAA,MAAM,EAAE,oBAAoB,CAAC,MAAM,OAAO,wBAAP,CAAP,CAHiB;AAI7C,EAAA,SAAS,EAAE,oBAAoB,CAAC,MAAM,OAAO,iCAAP,CAAP,CAJc;AAK7C,EAAA,iBAAiB,EAAE,oBAAoB,CAAC,MAAM,OAAO,iBAAP,CAAP,CALM;AAM7C,EAAA,eAAe,EAAE,oBAAoB,CAAC,MAAM,OAAO,sBAAP,CAAP;AANQ,CAAxC;AASP,OAAM,SAAU,aAAV,CAAwB,KAAxB,EAAkD;AACtD,SAAO,EACL,GAAG,mBADE;AAEL,OAAG;AAFE,GAAP;AAID;AAOD,OAAO,MAAM,0BAA0B,GAAqB;AAC1D,EAAA,KAAK,EAAE,oBAAoB,CAAC,MAAM,OAAO,mBAAP,CAAP,CAD+B;AAE1D,EAAA,IAAI,EAAE,oBAAoB,CAAC,MAAM,OAAO,kBAAP,CAAP;AAFgC,CAArD;AAKP,OAAM,SAAU,mBAAV,CAA8B,KAA9B,EAA8D;AAClE,SAAO,EACL,GAAG,0BADE;AAEL,OAAG;AAFE,GAAP;AAID","sourcesContent":["import { FunctionalComponent, ComponentOptions, defineAsyncComponent } from 'vue';\n\ntype Component = FunctionalComponent | ComponentOptions;\n\nexport interface InputIcons {\n isSuccess: Component;\n isDanger: Component;\n isWarning: Component;\n isInfo: Component;\n passwordVisible: Component;\n passwordInvisible: Component;\n}\n\nexport const DEFAULT_INPUT_ICONS: InputIcons = {\n isSuccess: defineAsyncComponent(() => import('../../icons/check')),\n isDanger: defineAsyncComponent(() => import('../../icons/exclamationCircle')),\n isInfo: defineAsyncComponent(() => import('../../icons/infoCircle')),\n isWarning: defineAsyncComponent(() => import('../../icons/exclamationTriangle')),\n passwordInvisible: defineAsyncComponent(() => import('../../icons/eye')),\n passwordVisible: defineAsyncComponent(() => import('../../icons/eyeSlash'))\n};\n\nexport function getInputIcons(icons: Partial<InputIcons>): InputIcons {\n return {\n ...DEFAULT_INPUT_ICONS,\n ...icons\n };\n}\n\nexport interface NumberInputIcons {\n minus: Component;\n plus: Component;\n}\n\nexport const DEFAULT_NUMBER_INPUT_ICONS: NumberInputIcons = {\n minus: defineAsyncComponent(() => import('../../icons/minus')),\n plus: defineAsyncComponent(() => import('../../icons/plus'))\n};\n\nexport function getNumberInputIcons(icons: Partial<NumberInputIcons>): NumberInputIcons {\n return {\n ...DEFAULT_NUMBER_INPUT_ICONS,\n ...icons\n };\n}\n"],"sourceRoot":"","file":"types.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/useCheckRadio.d.ts b/node_modules/buetify/lib/components/form/shared/useCheckRadio.d.ts new file mode 100755 index 0000000..08b3548 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/useCheckRadio.d.ts @@ -0,0 +1,9 @@ +import { PropType } from 'vue'; +export declare function useCheckRadioPropsDefinition<T>(): { + value: PropType<T>; + nativeValue: PropType<unknown>; + type: { + type: PropType<string>; + }; +}; +export declare function useCheckRadio<T>(): void; diff --git a/node_modules/buetify/lib/components/form/shared/useCheckRadio.js b/node_modules/buetify/lib/components/form/shared/useCheckRadio.js new file mode 100755 index 0000000..bef7179 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/useCheckRadio.js @@ -0,0 +1,11 @@ +export function useCheckRadioPropsDefinition() { + return { + value: null, + nativeValue: null, + type: { + type: String + } + }; +} +export function useCheckRadio() {} +//# sourceMappingURL=useCheckRadio.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/useCheckRadio.js.map b/node_modules/buetify/lib/components/form/shared/useCheckRadio.js.map new file mode 100755 index 0000000..b4937c7 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/useCheckRadio.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/shared/useCheckRadio.ts"],"names":[],"mappings":"AAEA,OAAM,SAAU,4BAAV,GAAsC;AAC1C,SAAO;AACL,IAAA,KAAK,EAAG,IADH;AAEL,IAAA,WAAW,EAAG,IAFT;AAGL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE;AADF;AAHD,GAAP;AAOD;AAED,OAAM,SAAU,aAAV,GAAuB,CAAQ","sourcesContent":["import { PropType } from 'vue';\r\n\r\nexport function useCheckRadioPropsDefinition<T>() {\r\n return {\r\n value: (null as unknown) as PropType<T>,\r\n nativeValue: (null as unknown) as PropType<unknown>,\r\n type: {\r\n type: String as PropType<string>\r\n }\r\n };\r\n}\r\n\r\nexport function useCheckRadio<T>() {}\r\n"],"sourceRoot":"","file":"useCheckRadio.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/useSelectionControl.d.ts b/node_modules/buetify/lib/components/form/shared/useSelectionControl.d.ts new file mode 100755 index 0000000..a22aa65 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/useSelectionControl.d.ts @@ -0,0 +1,1861 @@ +import { ColorVariant } from '../../../types/ColorVariants'; +export declare function useSelectionControl(role: string, type: string, name: string, staticClass: string): <T>() => import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ [K in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K]; } & { [K_1 in Exclude<"variant", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"size", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"name", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isFocused", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isDisabled", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"label", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"labelFor", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onFocus", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onBlur", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"focusOnMount", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onUpdate:modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"disableIfReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isRequired", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"eq", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"falseValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"nativeValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"trueValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isMultiple", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isIndeterminate", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)>]?: ({ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1]) | undefined; }>, { [K_2 in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2]; }>; diff --git a/node_modules/buetify/lib/components/form/shared/useSelectionControl.js b/node_modules/buetify/lib/components/form/shared/useSelectionControl.js new file mode 100755 index 0000000..4567e01 --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/useSelectionControl.js @@ -0,0 +1,54 @@ +import { getUseSelectablePropsDefinition, useSelectionControl as useControl } from '../../../composables/selectionControl/useSelectionControl'; +import { defineComponent, shallowRef, h } from 'vue'; + +function generateCheck(variant) { + return h('span', { + class: [variant, 'check'] + }); +} + +function generateInput(selectionControl) { + return h('input', { + onChange: selectionControl.onChange, + onBlur: selectionControl.onBlur, + onFocus: selectionControl.onFocus, + ...selectionControl.attrs.value + }); +} + +function generateLabelText(selectionControl, slots) { + return h('span', { + class: 'control-label' + }, slots.default && slots.default()); +} + +export function useSelectionControl(role, type, name, staticClass) { + return () => defineComponent({ + name, + props: getUseSelectablePropsDefinition(), + + setup(props, { + slots + }) { + const label = shallowRef(null); + const selection = useControl(props, label, role, type); + return () => { + return h('label', { + class: [staticClass, props.size, { + 'is-disabled': selection.isDisabled.value + }], + ref: label, + id: selection.label.labelId.value, + for: selection.label.id.value, + disabled: selection.isDisabled.value || null, + tabindex: selection.isDisabled.value ? -1 : 0, + onKeydown: selection.onKeydown, + onBlur: selection.onBlur, + onClick: selection.onClick + }, [generateInput(selection), generateCheck(props.variant), generateLabelText(selection, slots)]); + }; + } + + }); +} +//# sourceMappingURL=useSelectionControl.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/shared/useSelectionControl.js.map b/node_modules/buetify/lib/components/form/shared/useSelectionControl.js.map new file mode 100755 index 0000000..3bcf4bb --- /dev/null +++ b/node_modules/buetify/lib/components/form/shared/useSelectionControl.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/shared/useSelectionControl.ts"],"names":[],"mappings":"AAAA,SACE,+BADF,EAIE,mBAAmB,IAAI,UAJzB,QAKO,2DALP;AAOA,SAAS,eAAT,EAA0B,UAA1B,EAA6C,CAA7C,QAAsD,KAAtD;;AAEA,SAAS,aAAT,CAAuB,OAAvB,EAA4C;AAC1C,SAAO,CAAC,CAAC,MAAD,EAAS;AAAE,IAAA,KAAK,EAAE,CAAC,OAAD,EAAU,OAAV;AAAT,GAAT,CAAR;AACD;;AAED,SAAS,aAAT,CAAuB,gBAAvB,EAAyD;AACvD,SAAO,CAAC,CAAC,OAAD,EAAU;AAChB,IAAA,QAAQ,EAAE,gBAAgB,CAAC,QADX;AAEhB,IAAA,MAAM,EAAE,gBAAgB,CAAC,MAFT;AAGhB,IAAA,OAAO,EAAE,gBAAgB,CAAC,OAHV;AAIhB,OAAG,gBAAgB,CAAC,KAAjB,CAAuB;AAJV,GAAV,CAAR;AAMD;;AAED,SAAS,iBAAT,CAA2B,gBAA3B,EAA+D,KAA/D,EAA2E;AACzE,SAAO,CAAC,CACN,MADM,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EALX,CAAR;AAOD;;AAED,OAAM,SAAU,mBAAV,CAA8B,IAA9B,EAA4C,IAA5C,EAA0D,IAA1D,EAAwE,WAAxE,EAA2F;AAC/F,SAAO,MACL,eAAe,CAAC;AACd,IAAA,IADc;AAEd,IAAA,KAAK,EAAE,+BAA+B,EAFxB;;AAGd,IAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,MAAA;AAAF,KAAR,EAAiB;AACpB,YAAM,KAAK,GAAG,UAAU,CAAE,IAAF,CAAxB;AACA,YAAM,SAAS,GAAG,UAAU,CAAC,KAAD,EAAiC,KAAjC,EAAwC,IAAxC,EAA8C,IAA9C,CAA5B;AACA,aAAO,MAAK;AACV,eAAO,CAAC,CACN,OADM,EAEN;AACE,UAAA,KAAK,EAAE,CAAC,WAAD,EAAc,KAAK,CAAC,IAApB,EAA0B;AAAE,2BAAe,SAAS,CAAC,UAAV,CAAqB;AAAtC,WAA1B,CADT;AAEE,UAAA,GAAG,EAAE,KAFP;AAGE,UAAA,EAAE,EAAE,SAAS,CAAC,KAAV,CAAgB,OAAhB,CAAwB,KAH9B;AAIE,UAAA,GAAG,EAAE,SAAS,CAAC,KAAV,CAAgB,EAAhB,CAAmB,KAJ1B;AAKE,UAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAArB,IAA8B,IAL1C;AAME,UAAA,QAAQ,EAAE,SAAS,CAAC,UAAV,CAAqB,KAArB,GAA6B,CAAC,CAA9B,GAAkC,CAN9C;AAOE,UAAA,SAAS,EAAE,SAAS,CAAC,SAPvB;AAQE,UAAA,MAAM,EAAE,SAAS,CAAC,MARpB;AASE,UAAA,OAAO,EAAE,SAAS,CAAC;AATrB,SAFM,EAaN,CAAC,aAAa,CAAC,SAAD,CAAd,EAA2B,aAAa,CAAC,KAAK,CAAC,OAAP,CAAxC,EAAyD,iBAAiB,CAAC,SAAD,EAAY,KAAZ,CAA1E,CAbM,CAAR;AAeD,OAhBD;AAiBD;;AAvBa,GAAD,CADjB;AA0BD","sourcesContent":["import {\n getUseSelectablePropsDefinition,\n SelectionControl,\n UseSelectableProps,\n useSelectionControl as useControl\n} from '../../../composables/selectionControl/useSelectionControl';\nimport { ColorVariant } from '../../../types/ColorVariants';\nimport { defineComponent, shallowRef, Slots, h } from 'vue';\n\nfunction generateCheck(variant: ColorVariant) {\n return h('span', { class: [variant, 'check'] });\n}\n\nfunction generateInput(selectionControl: SelectionControl) {\n return h('input', {\n onChange: selectionControl.onChange,\n onBlur: selectionControl.onBlur,\n onFocus: selectionControl.onFocus,\n ...selectionControl.attrs.value\n });\n}\n\nfunction generateLabelText(selectionControl: SelectionControl, slots: Slots) {\n return h(\n 'span',\n {\n class: 'control-label'\n },\n slots.default && slots.default()\n );\n}\n\nexport function useSelectionControl(role: string, type: string, name: string, staticClass: string) {\n return <T>() =>\n defineComponent({\n name,\n props: getUseSelectablePropsDefinition<T>(),\n setup(props, { slots }) {\n const label = shallowRef((null as unknown) as HTMLElement);\n const selection = useControl(props as UseSelectableProps<T>, label, role, type);\n return () => {\n return h(\n 'label',\n {\n class: [staticClass, props.size, { 'is-disabled': selection.isDisabled.value }],\n ref: label,\n id: selection.label.labelId.value,\n for: selection.label.id.value,\n disabled: selection.isDisabled.value || null,\n tabindex: selection.isDisabled.value ? -1 : 0,\n onKeydown: selection.onKeydown,\n onBlur: selection.onBlur,\n onClick: selection.onClick\n },\n [generateInput(selection), generateCheck(props.variant), generateLabelText(selection, slots)]\n );\n };\n }\n });\n}\n"],"sourceRoot":"","file":"useSelectionControl.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/switch/BSwitch.d.ts b/node_modules/buetify/lib/components/form/switch/BSwitch.d.ts new file mode 100755 index 0000000..8862ce4 --- /dev/null +++ b/node_modules/buetify/lib/components/form/switch/BSwitch.d.ts @@ -0,0 +1,1992 @@ +import '../../../sass/helpers/animations.sass'; +import '../sass/form.sass'; +import './switch.sass'; +export declare const defineSwitch: <T>() => import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ [K in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K]; } & { [K_1 in Exclude<"variant", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"size", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"name", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isFocused", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isDisabled", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"label", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"labelFor", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onFocus", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onBlur", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"focusOnMount", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"onUpdate:modelValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"disableIfReadonly", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isRequired", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"eq", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"falseValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"nativeValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"trueValue", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isMultiple", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)> | Exclude<"isIndeterminate", "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + required: true; +} | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)>]?: ({ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_1]) | undefined; }>, { [K_2 in "variant" | "size" | "isFocused" | "isDisabled" | "label" | "focusOnMount" | "onUpdate:modelValue" | "isReadonly" | "disableIfReadonly" | "isRequired" | "eq" | "falseValue" | "nativeValue" | "trueValue" | "isMultiple" | "isIndeterminate" | ({ + type: import("vue").PropType<T>; + required: false; +} extends BooleanConstructor | { + default: any; +} | { + type: BooleanConstructor; +} ? "modelValue" : never)]: { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends null ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends { + type: true | null; +} ? any : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends ObjectConstructor | { + type: ObjectConstructor; +} ? Record<string, any> : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends BooleanConstructor | { + type: BooleanConstructor; +} ? boolean : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2] extends import("vue").Prop<infer V, infer D> ? unknown extends V ? D : V : { + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<T>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<T>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<T>; + default: T; + }; + falseValue: { + type: import("vue").PropType<T>; + default: T; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}[K_2]; }>; +export declare const BSwitch: import("vue").DefineComponent<{ + isFocused: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + onFocus: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: import("vue").PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + labelFor: import("vue").PropType<string>; + label: { + type: import("vue").PropType<string>; + default: string; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: import("vue").PropType<unknown>; + required: false; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[unknown], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[unknown], void>>; + }; + eq: { + type: import("vue").PropType<import("fp-ts/lib/Eq").Eq<unknown>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Eq").Eq<unknown>>; + }; + nativeValue: { + type: import("vue").PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: import("vue").PropType<unknown>; + default: unknown; + }; + falseValue: { + type: import("vue").PropType<unknown>; + default: unknown; + }; + isIndeterminate: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: import("../../..").ColorVariant; + }; + size: { + type: import("vue").PropType<import("../../..").SizeVariant>; + default: import("../../..").SizeVariant; + }; + isRequired: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + name: { + type: import("vue").PropType<string>; + required: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isFocused: boolean; + isDisabled: boolean; + label: string; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[unknown], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + isRequired: boolean; + eq: import("fp-ts/lib/Eq").Eq<unknown>; + falseValue: unknown; + nativeValue: null; + trueValue: unknown; + isMultiple: boolean; + isIndeterminate: boolean; +} & { + name?: string | undefined; + labelFor?: string | undefined; + onFocus?: ((e?: Event | undefined) => void) | undefined; + onBlur?: ((e?: Event | undefined) => void) | undefined; + modelValue?: unknown; +}>, { + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + isFocused: boolean; + isDisabled: boolean; + label: string; + focusOnMount: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[unknown], void>; + isReadonly: boolean; + disableIfReadonly: boolean; + isRequired: boolean; + eq: import("fp-ts/lib/Eq").Eq<unknown>; + falseValue: unknown; + nativeValue: null; + trueValue: unknown; + isMultiple: boolean; + isIndeterminate: boolean; +}>; diff --git a/node_modules/buetify/lib/components/form/switch/BSwitch.js b/node_modules/buetify/lib/components/form/switch/BSwitch.js new file mode 100755 index 0000000..bdb6c9c --- /dev/null +++ b/node_modules/buetify/lib/components/form/switch/BSwitch.js @@ -0,0 +1,7 @@ +import "../../../../src/sass/helpers/animations.sass"; +import "../../../../src/components/form/sass/form.sass"; +import "../../../../src/components/form/switch/switch.sass"; +import { useSelectionControl } from '../shared/useSelectionControl'; +export const defineSwitch = useSelectionControl('switch', 'checkbox', 'b-switch', 'switch'); +export const BSwitch = defineSwitch(); +//# sourceMappingURL=BSwitch.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/switch/BSwitch.js.map b/node_modules/buetify/lib/components/form/switch/BSwitch.js.map new file mode 100755 index 0000000..4bc42f2 --- /dev/null +++ b/node_modules/buetify/lib/components/form/switch/BSwitch.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/switch/BSwitch.ts"],"names":[],"mappings":"AAAA,OAAO,8CAAP;AACA,OAAO,gDAAP;AACA,OAAO,oDAAP;AACA,SAAS,mBAAT,QAAoC,+BAApC;AAEA,OAAO,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAD,EAAW,UAAX,EAAuB,UAAvB,EAAmC,QAAnC,CAAxC;AAEP,OAAO,MAAM,OAAO,GAAG,YAAY,EAA5B","sourcesContent":["import '../../../sass/helpers/animations.sass';\nimport '../sass/form.sass';\nimport './switch.sass';\nimport { useSelectionControl } from '../shared/useSelectionControl';\n\nexport const defineSwitch = useSelectionControl('switch', 'checkbox', 'b-switch', 'switch');\n\nexport const BSwitch = defineSwitch<unknown>();\n"],"sourceRoot":"","file":"BSwitch.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/switch/index.d.ts b/node_modules/buetify/lib/components/form/switch/index.d.ts new file mode 100755 index 0000000..f7f5d3c --- /dev/null +++ b/node_modules/buetify/lib/components/form/switch/index.d.ts @@ -0,0 +1,3 @@ +import { BSwitch, defineSwitch } from './BSwitch'; +export default BSwitch; +export { BSwitch, defineSwitch }; diff --git a/node_modules/buetify/lib/components/form/switch/index.js b/node_modules/buetify/lib/components/form/switch/index.js new file mode 100755 index 0000000..5716f2a --- /dev/null +++ b/node_modules/buetify/lib/components/form/switch/index.js @@ -0,0 +1,4 @@ +import { BSwitch, defineSwitch } from './BSwitch'; +export default BSwitch; +export { BSwitch, defineSwitch }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/form/switch/index.js.map b/node_modules/buetify/lib/components/form/switch/index.js.map new file mode 100755 index 0000000..55df870 --- /dev/null +++ b/node_modules/buetify/lib/components/form/switch/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/form/switch/index.ts"],"names":[],"mappings":"AAAA,SAAS,OAAT,EAAkB,YAAlB,QAAsC,WAAtC;AAEA,eAAe,OAAf;AAEA,SAAS,OAAT,EAAkB,YAAlB","sourcesContent":["import { BSwitch, defineSwitch } from './BSwitch';\n\nexport default BSwitch;\n\nexport { BSwitch, defineSwitch };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/higherOrder/index.d.ts b/node_modules/buetify/lib/components/higherOrder/index.d.ts new file mode 100755 index 0000000..14a7377 --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/index.d.ts @@ -0,0 +1 @@ +export * from './screenSizeDependentComponent'; diff --git a/node_modules/buetify/lib/components/higherOrder/index.js b/node_modules/buetify/lib/components/higherOrder/index.js new file mode 100755 index 0000000..dbaedde --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/index.js @@ -0,0 +1,2 @@ +export * from './screenSizeDependentComponent'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/higherOrder/index.js.map b/node_modules/buetify/lib/components/higherOrder/index.js.map new file mode 100755 index 0000000..9dfa652 --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/higherOrder/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAd","sourcesContent":["export * from './screenSizeDependentComponent';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.d.ts b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.d.ts new file mode 100755 index 0000000..4382ffd --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.d.ts @@ -0,0 +1,11 @@ +import { SetupContext, ComponentOptions, FunctionalComponent } from 'vue'; +export interface ComponentsByBreakPoint { + mobile: ComponentOptions | FunctionalComponent; + tablet: ComponentOptions | FunctionalComponent; + desktop: ComponentOptions | FunctionalComponent; + widescreen: ComponentOptions | FunctionalComponent; + fullHD: ComponentOptions | FunctionalComponent; +} +export declare const ScreenSizeDependentComponent: (components: ComponentsByBreakPoint) => (props: any, context: SetupContext) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.js b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.js new file mode 100755 index 0000000..560864e --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.js @@ -0,0 +1,19 @@ +import { useWindowSize } from '../../../composables/windowSize'; +import { h } from 'vue'; +export const ScreenSizeDependentComponent = components => (props, // eslint-disable-line +context) => { + const windowSize = useWindowSize(); + + if (windowSize.value.isMobile) { + return h(components.mobile, props, context.slots); + } else if (windowSize.value.isTablet) { + return h(components.tablet, props, context.slots); + } else if (windowSize.value.isDesktop) { + return h(components.desktop, props, context.slots); + } else if (windowSize.value.isWidescreen) { + return h(components.widescreen, props, context.slots); + } else { + return h(components.fullHD, props, context.slots); + } +}; +//# sourceMappingURL=ScreenSizeDependentComponent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.js.map b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.js.map new file mode 100755 index 0000000..5691478 --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.ts"],"names":[],"mappings":"AAAA,SAAS,aAAT,QAA8B,iCAA9B;AACA,SAAuB,CAAvB,QAAuE,KAAvE;AAUA,OAAO,MAAM,4BAA4B,GAAI,UAAD,IAAwC,CAClF,KADkF,EACtE;AACZ,OAFkF,KAGhF;AACF,QAAM,UAAU,GAAG,aAAa,EAAhC;;AACA,MAAI,UAAU,CAAC,KAAX,CAAiB,QAArB,EAA+B;AAC7B,WAAO,CAAC,CAAC,UAAU,CAAC,MAAZ,EAAoB,KAApB,EAA2B,OAAO,CAAC,KAAnC,CAAR;AACD,GAFD,MAEO,IAAI,UAAU,CAAC,KAAX,CAAiB,QAArB,EAA+B;AACpC,WAAO,CAAC,CAAC,UAAU,CAAC,MAAZ,EAAoB,KAApB,EAA2B,OAAO,CAAC,KAAnC,CAAR;AACD,GAFM,MAEA,IAAI,UAAU,CAAC,KAAX,CAAiB,SAArB,EAAgC;AACrC,WAAO,CAAC,CAAC,UAAU,CAAC,OAAZ,EAAqB,KAArB,EAA4B,OAAO,CAAC,KAApC,CAAR;AACD,GAFM,MAEA,IAAI,UAAU,CAAC,KAAX,CAAiB,YAArB,EAAmC;AACxC,WAAO,CAAC,CAAC,UAAU,CAAC,UAAZ,EAAwB,KAAxB,EAA+B,OAAO,CAAC,KAAvC,CAAR;AACD,GAFM,MAEA;AACL,WAAO,CAAC,CAAC,UAAU,CAAC,MAAZ,EAAoB,KAApB,EAA2B,OAAO,CAAC,KAAnC,CAAR;AACD;AACF,CAhBM","sourcesContent":["import { useWindowSize } from '../../../composables/windowSize';\nimport { SetupContext, h, ComponentOptions, FunctionalComponent } from 'vue';\n\nexport interface ComponentsByBreakPoint {\n mobile: ComponentOptions | FunctionalComponent;\n tablet: ComponentOptions | FunctionalComponent;\n desktop: ComponentOptions | FunctionalComponent;\n widescreen: ComponentOptions | FunctionalComponent;\n fullHD: ComponentOptions | FunctionalComponent;\n}\n\nexport const ScreenSizeDependentComponent = (components: ComponentsByBreakPoint) => (\n props: any, // eslint-disable-line\n context: SetupContext\n) => {\n const windowSize = useWindowSize();\n if (windowSize.value.isMobile) {\n return h(components.mobile, props, context.slots);\n } else if (windowSize.value.isTablet) {\n return h(components.tablet, props, context.slots);\n } else if (windowSize.value.isDesktop) {\n return h(components.desktop, props, context.slots);\n } else if (windowSize.value.isWidescreen) {\n return h(components.widescreen, props, context.slots);\n } else {\n return h(components.fullHD, props, context.slots);\n }\n};\n"],"sourceRoot":"","file":"ScreenSizeDependentComponent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.d.ts b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.d.ts new file mode 100755 index 0000000..95073b5 --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.d.ts @@ -0,0 +1,3 @@ +import { ScreenSizeDependentComponent } from './ScreenSizeDependentComponent'; +export { ScreenSizeDependentComponent }; +export default ScreenSizeDependentComponent; diff --git a/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.js b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.js new file mode 100755 index 0000000..da3bb9a --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.js @@ -0,0 +1,4 @@ +import { ScreenSizeDependentComponent } from './ScreenSizeDependentComponent'; +export { ScreenSizeDependentComponent }; +export default ScreenSizeDependentComponent; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.js.map b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.js.map new file mode 100755 index 0000000..4b74f70 --- /dev/null +++ b/node_modules/buetify/lib/components/higherOrder/screenSizeDependentComponent/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/higherOrder/screenSizeDependentComponent/index.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,gCAA7C;AAEA,SAAS,4BAAT;AAEA,eAAe,4BAAf","sourcesContent":["import { ScreenSizeDependentComponent } from './ScreenSizeDependentComponent';\n\nexport { ScreenSizeDependentComponent };\n\nexport default ScreenSizeDependentComponent;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icon/BIcon.d.ts b/node_modules/buetify/lib/components/icon/BIcon.d.ts new file mode 100755 index 0000000..83e15d7 --- /dev/null +++ b/node_modules/buetify/lib/components/icon/BIcon.d.ts @@ -0,0 +1,44 @@ +import './icon.sass'; +import { PropType, ExtractPropTypes } from 'vue'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +export declare const BIconPropsDefinition: { + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + size: { + type: PropType<SizeVariant>; + default: ""; + }; + tag: { + type: StringConstructor; + default: string; + }; +}; +export declare type BIconProps = ExtractPropTypes<typeof BIconPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + size: { + type: PropType<SizeVariant>; + default: ""; + }; + tag: { + type: StringConstructor; + default: string; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + tag: string; + variant: ColorVariant; + size: SizeVariant; +} & {}>, { + tag: string; + variant: ColorVariant; + size: SizeVariant; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/icon/BIcon.js b/node_modules/buetify/lib/components/icon/BIcon.js new file mode 100755 index 0000000..0b3551c --- /dev/null +++ b/node_modules/buetify/lib/components/icon/BIcon.js @@ -0,0 +1,50 @@ +import "../../../src/components/icon/icon.sass"; +import { isString } from '../../utils/helpers'; +import { h, defineComponent } from 'vue'; + +function convertVariant(variant) { + if (isString(variant)) { + return variant.replace('is', 'has-text'); + } else { + // eslint-disable-next-line + const x = {}; + + for (const k in variant) { + const nk = k.replace('is', 'has-text'); + x[nk] = variant[k]; + } + + return x; + } +} + +export const BIconPropsDefinition = { + variant: { + type: String, + default: '' + }, + size: { + type: String, + default: '' + }, + tag: { + type: String, + default: 'span' + } +}; +export default defineComponent({ + name: 'b-icon', + props: BIconPropsDefinition, + + setup(props, { + slots + }) { + return () => h( // eslint-disable-next-line + props.tag, { + class: ['icon', props.size, convertVariant(props.variant)] + }, // eslint-disable-next-line + slots.default && slots.default()); + } + +}); +//# sourceMappingURL=BIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icon/BIcon.js.map b/node_modules/buetify/lib/components/icon/BIcon.js.map new file mode 100755 index 0000000..f09e7cc --- /dev/null +++ b/node_modules/buetify/lib/components/icon/BIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/icon/BIcon.ts"],"names":[],"mappings":"AAAA,OAAO,wCAAP;AACA,SAAS,QAAT,QAAyB,qBAAzB;AACA,SAAS,CAAT,EAAY,eAAZ,QAA+D,KAA/D;;AAIA,SAAS,cAAT,CAAwB,OAAxB,EAAiE;AAC/D,MAAI,QAAQ,CAAC,OAAD,CAAZ,EAAuB;AACrB,WAAO,OAAO,CAAC,OAAR,CAAgB,IAAhB,EAAsB,UAAtB,CAAP;AACD,GAFD,MAEO;AACL;AACA,UAAM,CAAC,GAAQ,EAAf;;AACA,SAAK,MAAM,CAAX,IAAgB,OAAhB,EAAyB;AACvB,YAAM,EAAE,GAAG,CAAC,CAAC,OAAF,CAAU,IAAV,EAAgB,UAAhB,CAAX;AACA,MAAA,CAAC,CAAC,EAAD,CAAD,GAAQ,OAAO,CAAC,CAAD,CAAf;AACD;;AACD,WAAO,CAAP;AACD;AACF;;AAED,OAAO,MAAM,oBAAoB,GAAG;AAClC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GADyB;AAKlC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAL4B;AASlC,EAAA,GAAG,EAAE;AACH,IAAA,IAAI,EAAE,MADH;AAEH,IAAA,OAAO,EAAE;AAFN;AAT6B,CAA7B;AAiBP,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,QADuB;AAE7B,EAAA,KAAK,EAAE,oBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MACL,CAAC,EACC;AACA,IAAA,KAAK,CAAC,GAFP,EAGC;AACE,MAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAK,CAAC,IAAf,EAAqB,cAAc,CAAC,KAAK,CAAC,OAAP,CAAnC;AADT,KAHD,EAMC;AACA,IAAA,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAPlB,CADH;AAUD;;AAd4B,CAAD,CAA9B","sourcesContent":["import './icon.sass';\nimport { isString } from '../../utils/helpers';\nimport { h, defineComponent, PropType, ExtractPropTypes } from 'vue';\nimport { ColorVariant, ColorVariantFlags } from '../../types/ColorVariants';\nimport { SizeVariant } from '../../types/SizeVariants';\n\nfunction convertVariant(variant: ColorVariant | ColorVariantFlags): string | ColorVariantFlags {\n if (isString(variant)) {\n return variant.replace('is', 'has-text');\n } else {\n // eslint-disable-next-line\n const x: any = {};\n for (const k in variant) {\n const nk = k.replace('is', 'has-text');\n x[nk] = variant[k as ColorVariant];\n }\n return x;\n }\n}\n\nexport const BIconPropsDefinition = {\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as const\n },\n size: {\n type: String as PropType<SizeVariant>,\n default: '' as const\n },\n tag: {\n type: String,\n default: 'span'\n }\n};\n\nexport type BIconProps = ExtractPropTypes<typeof BIconPropsDefinition>;\n\nexport default defineComponent({\n name: 'b-icon',\n props: BIconPropsDefinition,\n setup(props, { slots }) {\n return () =>\n h(\n // eslint-disable-next-line\n props.tag,\n {\n class: ['icon', props.size, convertVariant(props.variant)]\n },\n // eslint-disable-next-line\n slots.default && slots.default()\n );\n }\n});\n"],"sourceRoot":"","file":"BIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icon/index.d.ts b/node_modules/buetify/lib/components/icon/index.d.ts new file mode 100755 index 0000000..979644f --- /dev/null +++ b/node_modules/buetify/lib/components/icon/index.d.ts @@ -0,0 +1,3 @@ +import BIcon from './BIcon'; +export { BIcon }; +export default BIcon; diff --git a/node_modules/buetify/lib/components/icon/index.js b/node_modules/buetify/lib/components/icon/index.js new file mode 100755 index 0000000..6bbca37 --- /dev/null +++ b/node_modules/buetify/lib/components/icon/index.js @@ -0,0 +1,4 @@ +import BIcon from './BIcon'; +export { BIcon }; +export default BIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icon/index.js.map b/node_modules/buetify/lib/components/icon/index.js.map new file mode 100755 index 0000000..cd25242 --- /dev/null +++ b/node_modules/buetify/lib/components/icon/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAP,MAAkB,SAAlB;AAEA,SAAS,KAAT;AAEA,eAAe,KAAf","sourcesContent":["import BIcon from './BIcon';\n\nexport { BIcon };\n\nexport default BIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.d.ts b/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.js b/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.js new file mode 100755 index 0000000..478a871 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.js @@ -0,0 +1,4 @@ +import { faAdjust } from '@fortawesome/free-solid-svg-icons/faAdjust'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('Adjust', faAdjust); +//# sourceMappingURL=AdjustIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.js.map b/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.js.map new file mode 100755 index 0000000..90e3ce4 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/adjust/AdjustIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/adjust/AdjustIcon.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,4CAAzB;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,QAAD,EAAW,QAAX,CAA1C","sourcesContent":["import { faAdjust } from '@fortawesome/free-solid-svg-icons/faAdjust';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('Adjust', faAdjust);\n"],"sourceRoot":"","file":"AdjustIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/adjust/index.d.ts b/node_modules/buetify/lib/components/icons/adjust/index.d.ts new file mode 100755 index 0000000..c81f9fb --- /dev/null +++ b/node_modules/buetify/lib/components/icons/adjust/index.d.ts @@ -0,0 +1,3 @@ +import AdjustIcon from './AdjustIcon'; +export { AdjustIcon }; +export default AdjustIcon; diff --git a/node_modules/buetify/lib/components/icons/adjust/index.js b/node_modules/buetify/lib/components/icons/adjust/index.js new file mode 100755 index 0000000..de1622e --- /dev/null +++ b/node_modules/buetify/lib/components/icons/adjust/index.js @@ -0,0 +1,4 @@ +import AdjustIcon from './AdjustIcon'; +export { AdjustIcon }; +export default AdjustIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/adjust/index.js.map b/node_modules/buetify/lib/components/icons/adjust/index.js.map new file mode 100755 index 0000000..f3da59e --- /dev/null +++ b/node_modules/buetify/lib/components/icons/adjust/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/adjust/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAP,MAAuB,cAAvB;AAEA,SAAS,UAAT;AAEA,eAAe,UAAf","sourcesContent":["import AdjustIcon from './AdjustIcon';\n\nexport { AdjustIcon };\n\nexport default AdjustIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.d.ts b/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.js b/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.js new file mode 100755 index 0000000..8191f46 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.js @@ -0,0 +1,4 @@ +import { faAngleDown } from '@fortawesome/free-solid-svg-icons/faAngleDown'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('AngleDown', faAngleDown); +//# sourceMappingURL=AngleDownIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.js.map b/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.js.map new file mode 100755 index 0000000..53555eb --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleDown/AngleDownIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/angleDown/AngleDownIcon.ts"],"names":[],"mappings":"AAAA,SAAS,WAAT,QAA4B,+CAA5B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,WAAD,EAAc,WAAd,CAA1C","sourcesContent":["import { faAngleDown } from '@fortawesome/free-solid-svg-icons/faAngleDown';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('AngleDown', faAngleDown);\n"],"sourceRoot":"","file":"AngleDownIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleDown/index.d.ts b/node_modules/buetify/lib/components/icons/angleDown/index.d.ts new file mode 100755 index 0000000..416850d --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleDown/index.d.ts @@ -0,0 +1,3 @@ +import AngleDownIcon from './AngleDownIcon'; +export { AngleDownIcon }; +export default AngleDownIcon; diff --git a/node_modules/buetify/lib/components/icons/angleDown/index.js b/node_modules/buetify/lib/components/icons/angleDown/index.js new file mode 100755 index 0000000..91156ed --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleDown/index.js @@ -0,0 +1,4 @@ +import AngleDownIcon from './AngleDownIcon'; +export { AngleDownIcon }; +export default AngleDownIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleDown/index.js.map b/node_modules/buetify/lib/components/icons/angleDown/index.js.map new file mode 100755 index 0000000..dd1593d --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleDown/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/angleDown/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAP,MAA0B,iBAA1B;AAEA,SAAS,aAAT;AAEA,eAAe,aAAf","sourcesContent":["import AngleDownIcon from './AngleDownIcon';\n\nexport { AngleDownIcon };\n\nexport default AngleDownIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.d.ts b/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.js b/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.js new file mode 100755 index 0000000..aec371e --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.js @@ -0,0 +1,4 @@ +import { faAngleLeft } from '@fortawesome/free-solid-svg-icons/faAngleLeft'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('AngleLeft', faAngleLeft); +//# sourceMappingURL=AngleLeftIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.js.map b/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.js.map new file mode 100755 index 0000000..19711c9 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleLeft/AngleLeftIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/angleLeft/AngleLeftIcon.ts"],"names":[],"mappings":"AAAA,SAAS,WAAT,QAA4B,+CAA5B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,WAAD,EAAc,WAAd,CAA1C","sourcesContent":["import { faAngleLeft } from '@fortawesome/free-solid-svg-icons/faAngleLeft';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('AngleLeft', faAngleLeft);\n"],"sourceRoot":"","file":"AngleLeftIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleLeft/index.d.ts b/node_modules/buetify/lib/components/icons/angleLeft/index.d.ts new file mode 100755 index 0000000..9080ef3 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleLeft/index.d.ts @@ -0,0 +1,3 @@ +import AngleLeftIcon from './AngleLeftIcon'; +export { AngleLeftIcon }; +export default AngleLeftIcon; diff --git a/node_modules/buetify/lib/components/icons/angleLeft/index.js b/node_modules/buetify/lib/components/icons/angleLeft/index.js new file mode 100755 index 0000000..34991f4 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleLeft/index.js @@ -0,0 +1,4 @@ +import AngleLeftIcon from './AngleLeftIcon'; +export { AngleLeftIcon }; +export default AngleLeftIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleLeft/index.js.map b/node_modules/buetify/lib/components/icons/angleLeft/index.js.map new file mode 100755 index 0000000..1c55cf1 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleLeft/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/angleLeft/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAP,MAA0B,iBAA1B;AAEA,SAAS,aAAT;AAEA,eAAe,aAAf","sourcesContent":["import AngleLeftIcon from './AngleLeftIcon';\n\nexport { AngleLeftIcon };\n\nexport default AngleLeftIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.d.ts b/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.js b/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.js new file mode 100755 index 0000000..de3c0c6 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.js @@ -0,0 +1,4 @@ +import { faAngleRight } from '@fortawesome/free-solid-svg-icons/faAngleRight'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('AngleRight', faAngleRight); +//# sourceMappingURL=AngleRightIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.js.map b/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.js.map new file mode 100755 index 0000000..e125b16 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleRight/AngleRightIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/angleRight/AngleRightIcon.ts"],"names":[],"mappings":"AAAA,SAAS,YAAT,QAA6B,gDAA7B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,YAAD,EAAe,YAAf,CAA1C","sourcesContent":["import { faAngleRight } from '@fortawesome/free-solid-svg-icons/faAngleRight';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('AngleRight', faAngleRight);\n"],"sourceRoot":"","file":"AngleRightIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleRight/index.d.ts b/node_modules/buetify/lib/components/icons/angleRight/index.d.ts new file mode 100755 index 0000000..d5b0df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleRight/index.d.ts @@ -0,0 +1,3 @@ +import AngleRightIcon from './AngleRightIcon'; +export { AngleRightIcon }; +export default AngleRightIcon; diff --git a/node_modules/buetify/lib/components/icons/angleRight/index.js b/node_modules/buetify/lib/components/icons/angleRight/index.js new file mode 100755 index 0000000..8976daf --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleRight/index.js @@ -0,0 +1,4 @@ +import AngleRightIcon from './AngleRightIcon'; +export { AngleRightIcon }; +export default AngleRightIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/angleRight/index.js.map b/node_modules/buetify/lib/components/icons/angleRight/index.js.map new file mode 100755 index 0000000..8e2cd3e --- /dev/null +++ b/node_modules/buetify/lib/components/icons/angleRight/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/angleRight/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAP,MAA2B,kBAA3B;AAEA,SAAS,cAAT;AAEA,eAAe,cAAf","sourcesContent":["import AngleRightIcon from './AngleRightIcon';\n\nexport { AngleRightIcon };\n\nexport default AngleRightIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.d.ts b/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.js b/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.js new file mode 100755 index 0000000..cde47fe --- /dev/null +++ b/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.js @@ -0,0 +1,4 @@ +import { faCalendarAlt } from '@fortawesome/free-solid-svg-icons/faCalendarAlt'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('Calendar', faCalendarAlt); +//# sourceMappingURL=CalendarIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.js.map b/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.js.map new file mode 100755 index 0000000..6b669db --- /dev/null +++ b/node_modules/buetify/lib/components/icons/calendar/CalendarIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/calendar/CalendarIcon.ts"],"names":[],"mappings":"AAAA,SAAS,aAAT,QAA8B,iDAA9B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,UAAD,EAAa,aAAb,CAA1C","sourcesContent":["import { faCalendarAlt } from '@fortawesome/free-solid-svg-icons/faCalendarAlt';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('Calendar', faCalendarAlt);\n"],"sourceRoot":"","file":"CalendarIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/calendar/index.d.ts b/node_modules/buetify/lib/components/icons/calendar/index.d.ts new file mode 100755 index 0000000..e6b8478 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/calendar/index.d.ts @@ -0,0 +1,3 @@ +import CalendarIcon from './CalendarIcon'; +export { CalendarIcon }; +export default CalendarIcon; diff --git a/node_modules/buetify/lib/components/icons/calendar/index.js b/node_modules/buetify/lib/components/icons/calendar/index.js new file mode 100755 index 0000000..1e3a6ab --- /dev/null +++ b/node_modules/buetify/lib/components/icons/calendar/index.js @@ -0,0 +1,4 @@ +import CalendarIcon from './CalendarIcon'; +export { CalendarIcon }; +export default CalendarIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/calendar/index.js.map b/node_modules/buetify/lib/components/icons/calendar/index.js.map new file mode 100755 index 0000000..9c1b417 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/calendar/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/calendar/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAP,MAAyB,gBAAzB;AACA,SAAS,YAAT;AACA,eAAe,YAAf","sourcesContent":["import CalendarIcon from './CalendarIcon';\nexport { CalendarIcon };\nexport default CalendarIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/check/CheckIcon.d.ts b/node_modules/buetify/lib/components/icons/check/CheckIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/check/CheckIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/check/CheckIcon.js b/node_modules/buetify/lib/components/icons/check/CheckIcon.js new file mode 100755 index 0000000..9c4c3db --- /dev/null +++ b/node_modules/buetify/lib/components/icons/check/CheckIcon.js @@ -0,0 +1,4 @@ +import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('Check', faCheck); +//# sourceMappingURL=CheckIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/check/CheckIcon.js.map b/node_modules/buetify/lib/components/icons/check/CheckIcon.js.map new file mode 100755 index 0000000..d61069f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/check/CheckIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/check/CheckIcon.ts"],"names":[],"mappings":"AAAA,SAAS,OAAT,QAAwB,2CAAxB;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,OAAD,EAAU,OAAV,CAA1C","sourcesContent":["import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('Check', faCheck);\n"],"sourceRoot":"","file":"CheckIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/check/index.d.ts b/node_modules/buetify/lib/components/icons/check/index.d.ts new file mode 100755 index 0000000..35b92cb --- /dev/null +++ b/node_modules/buetify/lib/components/icons/check/index.d.ts @@ -0,0 +1,3 @@ +import CheckIcon from './CheckIcon'; +export { CheckIcon }; +export default CheckIcon; diff --git a/node_modules/buetify/lib/components/icons/check/index.js b/node_modules/buetify/lib/components/icons/check/index.js new file mode 100755 index 0000000..c454756 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/check/index.js @@ -0,0 +1,4 @@ +import CheckIcon from './CheckIcon'; +export { CheckIcon }; +export default CheckIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/check/index.js.map b/node_modules/buetify/lib/components/icons/check/index.js.map new file mode 100755 index 0000000..bb4d1df --- /dev/null +++ b/node_modules/buetify/lib/components/icons/check/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/check/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AAEA,SAAS,SAAT;AAEA,eAAe,SAAf","sourcesContent":["import CheckIcon from './CheckIcon';\n\nexport { CheckIcon };\n\nexport default CheckIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.d.ts b/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.js b/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.js new file mode 100755 index 0000000..8405f66 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.js @@ -0,0 +1,4 @@ +import { faCheckCircle } from '@fortawesome/free-solid-svg-icons/faCheckCircle'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('CheckCircle', faCheckCircle); +//# sourceMappingURL=CheckCircleIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.js.map b/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.js.map new file mode 100755 index 0000000..2c59e14 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/checkCircle/CheckCircleIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/checkCircle/CheckCircleIcon.ts"],"names":[],"mappings":"AAAA,SAAS,aAAT,QAA8B,iDAA9B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,aAAD,EAAgB,aAAhB,CAA1C","sourcesContent":["import { faCheckCircle } from '@fortawesome/free-solid-svg-icons/faCheckCircle';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('CheckCircle', faCheckCircle);\n"],"sourceRoot":"","file":"CheckCircleIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/checkCircle/index.d.ts b/node_modules/buetify/lib/components/icons/checkCircle/index.d.ts new file mode 100755 index 0000000..405c2b4 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/checkCircle/index.d.ts @@ -0,0 +1,3 @@ +import CheckCircleIcon from './CheckCircleIcon'; +export { CheckCircleIcon }; +export default CheckCircleIcon; diff --git a/node_modules/buetify/lib/components/icons/checkCircle/index.js b/node_modules/buetify/lib/components/icons/checkCircle/index.js new file mode 100755 index 0000000..bc8be94 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/checkCircle/index.js @@ -0,0 +1,4 @@ +import CheckCircleIcon from './CheckCircleIcon'; +export { CheckCircleIcon }; +export default CheckCircleIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/checkCircle/index.js.map b/node_modules/buetify/lib/components/icons/checkCircle/index.js.map new file mode 100755 index 0000000..dd68c10 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/checkCircle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/checkCircle/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAP,MAA4B,mBAA5B;AAEA,SAAS,eAAT;AAEA,eAAe,eAAf","sourcesContent":["import CheckCircleIcon from './CheckCircleIcon';\n\nexport { CheckCircleIcon };\n\nexport default CheckCircleIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.d.ts b/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.js b/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.js new file mode 100755 index 0000000..902ac70 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.js @@ -0,0 +1,4 @@ +import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('ExclamationCircle', faExclamationCircle); +//# sourceMappingURL=ExclamationCircleIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.js.map b/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.js.map new file mode 100755 index 0000000..3e666cd --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationCircle/ExclamationCircleIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/exclamationCircle/ExclamationCircleIcon.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAT,QAAoC,uDAApC;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,mBAAD,EAAsB,mBAAtB,CAA1C","sourcesContent":["import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('ExclamationCircle', faExclamationCircle);\n"],"sourceRoot":"","file":"ExclamationCircleIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationCircle/index.d.ts b/node_modules/buetify/lib/components/icons/exclamationCircle/index.d.ts new file mode 100755 index 0000000..e8f180e --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationCircle/index.d.ts @@ -0,0 +1,3 @@ +import ExclamationCircleIcon from './ExclamationCircleIcon'; +export { ExclamationCircleIcon }; +export default ExclamationCircleIcon; diff --git a/node_modules/buetify/lib/components/icons/exclamationCircle/index.js b/node_modules/buetify/lib/components/icons/exclamationCircle/index.js new file mode 100755 index 0000000..eeb3df1 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationCircle/index.js @@ -0,0 +1,4 @@ +import ExclamationCircleIcon from './ExclamationCircleIcon'; +export { ExclamationCircleIcon }; +export default ExclamationCircleIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationCircle/index.js.map b/node_modules/buetify/lib/components/icons/exclamationCircle/index.js.map new file mode 100755 index 0000000..d625aa2 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationCircle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/exclamationCircle/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAP,MAAkC,yBAAlC;AAEA,SAAS,qBAAT;AAEA,eAAe,qBAAf","sourcesContent":["import ExclamationCircleIcon from './ExclamationCircleIcon';\n\nexport { ExclamationCircleIcon };\n\nexport default ExclamationCircleIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.d.ts b/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.js b/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.js new file mode 100755 index 0000000..acbe835 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.js @@ -0,0 +1,4 @@ +import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('ExclamationTriangle', faExclamationTriangle); +//# sourceMappingURL=ExclamationTriangleIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.js.map b/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.js.map new file mode 100755 index 0000000..cca2c73 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationTriangle/ExclamationTriangleIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/exclamationTriangle/ExclamationTriangleIcon.ts"],"names":[],"mappings":"AAAA,SAAS,qBAAT,QAAsC,yDAAtC;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,qBAAD,EAAwB,qBAAxB,CAA1C","sourcesContent":["import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('ExclamationTriangle', faExclamationTriangle);\n"],"sourceRoot":"","file":"ExclamationTriangleIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationTriangle/index.d.ts b/node_modules/buetify/lib/components/icons/exclamationTriangle/index.d.ts new file mode 100755 index 0000000..4427705 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationTriangle/index.d.ts @@ -0,0 +1,3 @@ +import ExclamationTriangleIcon from './ExclamationTriangleIcon'; +export { ExclamationTriangleIcon }; +export default ExclamationTriangleIcon; diff --git a/node_modules/buetify/lib/components/icons/exclamationTriangle/index.js b/node_modules/buetify/lib/components/icons/exclamationTriangle/index.js new file mode 100755 index 0000000..35b89d6 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationTriangle/index.js @@ -0,0 +1,4 @@ +import ExclamationTriangleIcon from './ExclamationTriangleIcon'; +export { ExclamationTriangleIcon }; +export default ExclamationTriangleIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/exclamationTriangle/index.js.map b/node_modules/buetify/lib/components/icons/exclamationTriangle/index.js.map new file mode 100755 index 0000000..6dc0716 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/exclamationTriangle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/exclamationTriangle/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAP,MAAoC,2BAApC;AAEA,SAAS,uBAAT;AAEA,eAAe,uBAAf","sourcesContent":["import ExclamationTriangleIcon from './ExclamationTriangleIcon';\n\nexport { ExclamationTriangleIcon };\n\nexport default ExclamationTriangleIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eye/EyeIcon.d.ts b/node_modules/buetify/lib/components/icons/eye/EyeIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eye/EyeIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/eye/EyeIcon.js b/node_modules/buetify/lib/components/icons/eye/EyeIcon.js new file mode 100755 index 0000000..7781214 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eye/EyeIcon.js @@ -0,0 +1,4 @@ +import { faEye } from '@fortawesome/free-solid-svg-icons/faEye'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('Eye', faEye); +//# sourceMappingURL=EyeIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eye/EyeIcon.js.map b/node_modules/buetify/lib/components/icons/eye/EyeIcon.js.map new file mode 100755 index 0000000..5107835 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eye/EyeIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/eye/EyeIcon.ts"],"names":[],"mappings":"AAAA,SAAS,KAAT,QAAsB,yCAAtB;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,KAAD,EAAQ,KAAR,CAA1C","sourcesContent":["import { faEye } from '@fortawesome/free-solid-svg-icons/faEye';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('Eye', faEye);\n"],"sourceRoot":"","file":"EyeIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eye/index.d.ts b/node_modules/buetify/lib/components/icons/eye/index.d.ts new file mode 100755 index 0000000..6618818 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eye/index.d.ts @@ -0,0 +1,3 @@ +import EyeIcon from './EyeIcon'; +export { EyeIcon }; +export default EyeIcon; diff --git a/node_modules/buetify/lib/components/icons/eye/index.js b/node_modules/buetify/lib/components/icons/eye/index.js new file mode 100755 index 0000000..8cc37ea --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eye/index.js @@ -0,0 +1,5 @@ +import EyeIcon from './EyeIcon'; +export { EyeIcon }; +export default EyeIcon; +1; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eye/index.js.map b/node_modules/buetify/lib/components/icons/eye/index.js.map new file mode 100755 index 0000000..d9279c5 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eye/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/eye/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAP,MAAoB,WAApB;AAEA,SAAS,OAAT;AACA,eAAe,OAAf;AACA","sourcesContent":["import EyeIcon from './EyeIcon';\n\nexport { EyeIcon };\nexport default EyeIcon;\n1;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.d.ts b/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.js b/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.js new file mode 100755 index 0000000..330c1f6 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.js @@ -0,0 +1,4 @@ +import { faEyeSlash } from '@fortawesome/free-solid-svg-icons/faEyeSlash'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('EyeSlash', faEyeSlash); +//# sourceMappingURL=EyeSlashIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.js.map b/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.js.map new file mode 100755 index 0000000..d1d4663 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eyeSlash/EyeSlashIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/eyeSlash/EyeSlashIcon.ts"],"names":[],"mappings":"AAAA,SAAS,UAAT,QAA2B,8CAA3B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,UAAD,EAAa,UAAb,CAA1C","sourcesContent":["import { faEyeSlash } from '@fortawesome/free-solid-svg-icons/faEyeSlash';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('EyeSlash', faEyeSlash);\n"],"sourceRoot":"","file":"EyeSlashIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eyeSlash/index.d.ts b/node_modules/buetify/lib/components/icons/eyeSlash/index.d.ts new file mode 100755 index 0000000..0ba4127 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eyeSlash/index.d.ts @@ -0,0 +1,3 @@ +import EyeSlashIcon from './EyeSlashIcon'; +export { EyeSlashIcon }; +export default EyeSlashIcon; diff --git a/node_modules/buetify/lib/components/icons/eyeSlash/index.js b/node_modules/buetify/lib/components/icons/eyeSlash/index.js new file mode 100755 index 0000000..3cfb1b6 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eyeSlash/index.js @@ -0,0 +1,4 @@ +import EyeSlashIcon from './EyeSlashIcon'; +export { EyeSlashIcon }; +export default EyeSlashIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/eyeSlash/index.js.map b/node_modules/buetify/lib/components/icons/eyeSlash/index.js.map new file mode 100755 index 0000000..0b54e6c --- /dev/null +++ b/node_modules/buetify/lib/components/icons/eyeSlash/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/eyeSlash/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAP,MAAyB,gBAAzB;AAEA,SAAS,YAAT;AAEA,eAAe,YAAf","sourcesContent":["import EyeSlashIcon from './EyeSlashIcon';\n\nexport { EyeSlashIcon };\n\nexport default EyeSlashIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.d.ts b/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.d.ts new file mode 100755 index 0000000..0b53a6a --- /dev/null +++ b/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.d.ts @@ -0,0 +1,7 @@ +import './horizontal-expansion-icon.sass'; +import { SetupContext } from 'vue'; +export default function HorizontalExpansionIcon(props: { + isExpanded: boolean; +}, { attrs }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.js b/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.js new file mode 100755 index 0000000..130d8b0 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.js @@ -0,0 +1,14 @@ +import "../../../../src/components/icons/horizontalExpansion/horizontal-expansion-icon.sass"; +import { h } from 'vue'; +import { mergeClasses } from '../../../utils/mergeClasses'; +import { AngleRightIcon } from '../angleRight'; +export default function HorizontalExpansionIcon(props, { + attrs +}) { + return h(AngleRightIcon, { ...attrs, + class: mergeClasses(attrs.class, ['horizontal-expansion-icon', { + 'is-expanded': props.isExpanded + }]) + }); +} +//# sourceMappingURL=HorizontalExpansionIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.js.map b/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.js.map new file mode 100755 index 0000000..1017004 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/horizontalExpansion/HorizontalExpansionIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/horizontalExpansion/HorizontalExpansionIcon.ts"],"names":[],"mappings":"AAAA,OAAO,qFAAP;AACA,SAAS,CAAT,QAAgC,KAAhC;AACA,SAAkB,YAAlB,QAAsC,6BAAtC;AACA,SAAS,cAAT,QAA+B,eAA/B;AAEA,eAAc,SAAU,uBAAV,CAAkC,KAAlC,EAAkE;AAAE,EAAA;AAAF,CAAlE,EAAyF;AACrG,SAAO,CAAC,CAAC,cAAD,EAAiB,EACvB,GAAG,KADoB;AAEvB,IAAA,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAP,EAAyB,CAAC,2BAAD,EAA8B;AAAE,qBAAe,KAAK,CAAC;AAAvB,KAA9B,CAAzB;AAFI,GAAjB,CAAR;AAID","sourcesContent":["import './horizontal-expansion-icon.sass';\nimport { h, SetupContext } from 'vue';\nimport { Classes, mergeClasses } from '../../../utils/mergeClasses';\nimport { AngleRightIcon } from '../angleRight';\n\nexport default function HorizontalExpansionIcon(props: { isExpanded: boolean }, { attrs }: SetupContext) {\n return h(AngleRightIcon, {\n ...attrs,\n class: mergeClasses(attrs.class as Classes, ['horizontal-expansion-icon', { 'is-expanded': props.isExpanded }])\n });\n}\n"],"sourceRoot":"","file":"HorizontalExpansionIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/horizontalExpansion/index.d.ts b/node_modules/buetify/lib/components/icons/horizontalExpansion/index.d.ts new file mode 100755 index 0000000..7f7d866 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/horizontalExpansion/index.d.ts @@ -0,0 +1,3 @@ +import HorizontalExpansionIcon from './HorizontalExpansionIcon'; +export { HorizontalExpansionIcon }; +export default HorizontalExpansionIcon; diff --git a/node_modules/buetify/lib/components/icons/horizontalExpansion/index.js b/node_modules/buetify/lib/components/icons/horizontalExpansion/index.js new file mode 100755 index 0000000..d2a304b --- /dev/null +++ b/node_modules/buetify/lib/components/icons/horizontalExpansion/index.js @@ -0,0 +1,4 @@ +import HorizontalExpansionIcon from './HorizontalExpansionIcon'; +export { HorizontalExpansionIcon }; +export default HorizontalExpansionIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/horizontalExpansion/index.js.map b/node_modules/buetify/lib/components/icons/horizontalExpansion/index.js.map new file mode 100755 index 0000000..693c00d --- /dev/null +++ b/node_modules/buetify/lib/components/icons/horizontalExpansion/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/horizontalExpansion/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAP,MAAoC,2BAApC;AAEA,SAAS,uBAAT;AACA,eAAe,uBAAf","sourcesContent":["import HorizontalExpansionIcon from './HorizontalExpansionIcon';\n\nexport { HorizontalExpansionIcon };\nexport default HorizontalExpansionIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/index.d.ts b/node_modules/buetify/lib/components/icons/index.d.ts new file mode 100755 index 0000000..024cf20 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/index.d.ts @@ -0,0 +1,16 @@ +export * from './adjust'; +export * from './angleDown'; +export * from './angleLeft'; +export * from './angleRight'; +export * from './calendar'; +export * from './check'; +export * from './checkCircle'; +export * from './exclamationCircle'; +export * from './exclamationTriangle'; +export * from './eye'; +export * from './eyeSlash'; +export * from './horizontalExpansion'; +export * from './infoCircle'; +export * from './minus'; +export * from './plus'; +export * from './verticalExpansion'; diff --git a/node_modules/buetify/lib/components/icons/index.js b/node_modules/buetify/lib/components/icons/index.js new file mode 100755 index 0000000..9d6f32b --- /dev/null +++ b/node_modules/buetify/lib/components/icons/index.js @@ -0,0 +1,17 @@ +export * from './adjust'; +export * from './angleDown'; +export * from './angleLeft'; +export * from './angleRight'; +export * from './calendar'; +export * from './check'; +export * from './checkCircle'; +export * from './exclamationCircle'; +export * from './exclamationTriangle'; +export * from './eye'; +export * from './eyeSlash'; +export * from './horizontalExpansion'; +export * from './infoCircle'; +export * from './minus'; +export * from './plus'; +export * from './verticalExpansion'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/index.js.map b/node_modules/buetify/lib/components/icons/index.js.map new file mode 100755 index 0000000..dab892f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAd;AACA,cAAc,aAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,eAAd;AACA,cAAc,qBAAd;AACA,cAAc,uBAAd;AACA,cAAc,OAAd;AACA,cAAc,YAAd;AACA,cAAc,uBAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,qBAAd","sourcesContent":["export * from './adjust';\nexport * from './angleDown';\nexport * from './angleLeft';\nexport * from './angleRight';\nexport * from './calendar';\nexport * from './check';\nexport * from './checkCircle';\nexport * from './exclamationCircle';\nexport * from './exclamationTriangle';\nexport * from './eye';\nexport * from './eyeSlash';\nexport * from './horizontalExpansion';\nexport * from './infoCircle';\nexport * from './minus';\nexport * from './plus';\nexport * from './verticalExpansion';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.d.ts b/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.js b/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.js new file mode 100755 index 0000000..8ff2165 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.js @@ -0,0 +1,4 @@ +import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('InfoCircle', faInfoCircle); +//# sourceMappingURL=InfoCircleIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.js.map b/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.js.map new file mode 100755 index 0000000..fd5c9f1 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/infoCircle/InfoCircleIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/infoCircle/InfoCircleIcon.ts"],"names":[],"mappings":"AAAA,SAAS,YAAT,QAA6B,gDAA7B;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,YAAD,EAAe,YAAf,CAA1C","sourcesContent":["import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('InfoCircle', faInfoCircle);\n"],"sourceRoot":"","file":"InfoCircleIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/infoCircle/index.d.ts b/node_modules/buetify/lib/components/icons/infoCircle/index.d.ts new file mode 100755 index 0000000..c269b21 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/infoCircle/index.d.ts @@ -0,0 +1,3 @@ +import InfoCircleIcon from './InfoCircleIcon'; +export { InfoCircleIcon }; +export default InfoCircleIcon; diff --git a/node_modules/buetify/lib/components/icons/infoCircle/index.js b/node_modules/buetify/lib/components/icons/infoCircle/index.js new file mode 100755 index 0000000..827a7ad --- /dev/null +++ b/node_modules/buetify/lib/components/icons/infoCircle/index.js @@ -0,0 +1,4 @@ +import InfoCircleIcon from './InfoCircleIcon'; +export { InfoCircleIcon }; +export default InfoCircleIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/infoCircle/index.js.map b/node_modules/buetify/lib/components/icons/infoCircle/index.js.map new file mode 100755 index 0000000..ac24853 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/infoCircle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/infoCircle/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAP,MAA2B,kBAA3B;AAEA,SAAS,cAAT;AAEA,eAAe,cAAf","sourcesContent":["import InfoCircleIcon from './InfoCircleIcon';\n\nexport { InfoCircleIcon };\n\nexport default InfoCircleIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/minus/MinusIcon.d.ts b/node_modules/buetify/lib/components/icons/minus/MinusIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/minus/MinusIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/minus/MinusIcon.js b/node_modules/buetify/lib/components/icons/minus/MinusIcon.js new file mode 100755 index 0000000..1656003 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/minus/MinusIcon.js @@ -0,0 +1,4 @@ +import { faMinus } from '@fortawesome/free-solid-svg-icons/faMinus'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('Minus', faMinus); +//# sourceMappingURL=MinusIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/minus/MinusIcon.js.map b/node_modules/buetify/lib/components/icons/minus/MinusIcon.js.map new file mode 100755 index 0000000..cc03988 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/minus/MinusIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/minus/MinusIcon.ts"],"names":[],"mappings":"AAAA,SAAS,OAAT,QAAwB,2CAAxB;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,OAAD,EAAU,OAAV,CAA1C","sourcesContent":["import { faMinus } from '@fortawesome/free-solid-svg-icons/faMinus';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('Minus', faMinus);\n"],"sourceRoot":"","file":"MinusIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/minus/index.d.ts b/node_modules/buetify/lib/components/icons/minus/index.d.ts new file mode 100755 index 0000000..a7c08c2 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/minus/index.d.ts @@ -0,0 +1,3 @@ +import MinusIcon from './MinusIcon'; +export { MinusIcon }; +export default MinusIcon; diff --git a/node_modules/buetify/lib/components/icons/minus/index.js b/node_modules/buetify/lib/components/icons/minus/index.js new file mode 100755 index 0000000..5918bd5 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/minus/index.js @@ -0,0 +1,4 @@ +import MinusIcon from './MinusIcon'; +export { MinusIcon }; +export default MinusIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/minus/index.js.map b/node_modules/buetify/lib/components/icons/minus/index.js.map new file mode 100755 index 0000000..ff4e9ef --- /dev/null +++ b/node_modules/buetify/lib/components/icons/minus/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/minus/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AAEA,SAAS,SAAT;AACA,eAAe,SAAf","sourcesContent":["import MinusIcon from './MinusIcon';\n\nexport { MinusIcon };\nexport default MinusIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/plus/PlusIcon.d.ts b/node_modules/buetify/lib/components/icons/plus/PlusIcon.d.ts new file mode 100755 index 0000000..5298df7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/plus/PlusIcon.d.ts @@ -0,0 +1,2 @@ +declare const _default: any; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/plus/PlusIcon.js b/node_modules/buetify/lib/components/icons/plus/PlusIcon.js new file mode 100755 index 0000000..33b8052 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/plus/PlusIcon.js @@ -0,0 +1,4 @@ +import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus'; +import { useFontAwesomeIconComponent } from '../utils'; +export default useFontAwesomeIconComponent('Plus', faPlus); +//# sourceMappingURL=PlusIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/plus/PlusIcon.js.map b/node_modules/buetify/lib/components/icons/plus/PlusIcon.js.map new file mode 100755 index 0000000..3717830 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/plus/PlusIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/plus/PlusIcon.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,QAAuB,0CAAvB;AACA,SAAS,2BAAT,QAA4C,UAA5C;AAEA,eAAe,2BAA2B,CAAC,MAAD,EAAS,MAAT,CAA1C","sourcesContent":["import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus';\nimport { useFontAwesomeIconComponent } from '../utils';\n\nexport default useFontAwesomeIconComponent('Plus', faPlus);\n"],"sourceRoot":"","file":"PlusIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/plus/index.d.ts b/node_modules/buetify/lib/components/icons/plus/index.d.ts new file mode 100755 index 0000000..6c53d2f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/plus/index.d.ts @@ -0,0 +1,3 @@ +import PlusIcon from './PlusIcon'; +export { PlusIcon }; +export default PlusIcon; diff --git a/node_modules/buetify/lib/components/icons/plus/index.js b/node_modules/buetify/lib/components/icons/plus/index.js new file mode 100755 index 0000000..a88f8c3 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/plus/index.js @@ -0,0 +1,4 @@ +import PlusIcon from './PlusIcon'; +export { PlusIcon }; +export default PlusIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/plus/index.js.map b/node_modules/buetify/lib/components/icons/plus/index.js.map new file mode 100755 index 0000000..0b4ec4b --- /dev/null +++ b/node_modules/buetify/lib/components/icons/plus/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/plus/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,QAAT;AACA,eAAe,QAAf","sourcesContent":["import PlusIcon from './PlusIcon';\n\nexport { PlusIcon };\nexport default PlusIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/utils/index.d.ts b/node_modules/buetify/lib/components/icons/utils/index.d.ts new file mode 100755 index 0000000..db94b4a --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/index.d.ts @@ -0,0 +1,2 @@ +export * from './useFontAwesomeIconComponent'; +export * from './useMaterialDesignIconComponent'; diff --git a/node_modules/buetify/lib/components/icons/utils/index.js b/node_modules/buetify/lib/components/icons/utils/index.js new file mode 100755 index 0000000..1a4166f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/index.js @@ -0,0 +1,3 @@ +export * from './useFontAwesomeIconComponent'; +export * from './useMaterialDesignIconComponent'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/utils/index.js.map b/node_modules/buetify/lib/components/icons/utils/index.js.map new file mode 100755 index 0000000..39252b7 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAAd;AACA,cAAc,kCAAd","sourcesContent":["export * from './useFontAwesomeIconComponent';\r\nexport * from './useMaterialDesignIconComponent';\r\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.d.ts b/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.d.ts new file mode 100755 index 0000000..4959362 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.d.ts @@ -0,0 +1 @@ +export declare function useFontAwesomeIconComponent(name: string, iconDefinition: any): any; diff --git a/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.js b/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.js new file mode 100755 index 0000000..402260c --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.js @@ -0,0 +1,175 @@ +import { parse as faParse, icon as faIcon } from '@fortawesome/fontawesome-svg-core'; +import { h, defineComponent } from 'vue'; // import { IconDefinition } from '@fortawesome/fontawesome-common-types'; + +import { camelize } from '../../../utils/helpers'; +import { mergeClasses } from '../../../utils/mergeClasses'; +import { BIcon } from '../../icon'; +import { BIconPropsDefinition } from '../../icon/BIcon'; //replace iconDefinition with actual definition from fontawesome. causing some typescript issues at the moment + +function objectWithKey(key, value) { + return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? { + [key]: value + } : {}; +} // eslint-disable-next-line + + +function classList(props) { + const classes = { + 'fa-spin': props.spin, + 'fa-pulse': props.pulse, + 'fa-fw': props.fixedWidth, + 'fa-border': props.border, + 'fa-li': props.listItem, + 'fa-inverse': props.inverse, + 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both', + 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both', + [`fa-${props.size}`]: props.size !== undefined, + [`fa-rotate-${props.rotation}`]: props.rotation !== undefined, + [`fa-pull-${props.pull}`]: props.pull !== undefined, + 'fa-swap-opacity': props.swapOpacity + }; + return Object.keys(classes).map(key => classes[key] ? key : null).filter(key => key); +} + +function styleToObject(style) { + return style.split(';').map(s => s.trim()).filter(s => s).reduce((acc, pair) => { + const i = pair.indexOf(':'); + const prop = camelize(pair.slice(0, i)); + const value = pair.slice(i + 1).trim(); + acc[prop] = value; + return acc; + }, {}); // eslint-disable-line +} + +function classToObject(cls) { + return cls.split(/\s+/).reduce((acc, c) => { + acc[c] = true; + return acc; + }, {}); // eslint-disable-line +} // eslint-disable-next-line + + +function normalizeIconArgs(icon) { + if (icon === null) { + return null; + } + + if (typeof icon === 'object' && icon.prefix && icon.iconName) { + return icon; + } + + if (Array.isArray(icon) && icon.length === 2) { + return { + prefix: icon[0], + iconName: icon[1] + }; + } + + if (typeof icon === 'string') { + return { + prefix: 'fas', + iconName: icon + }; + } +} // eslint-disable-next-line + + +function convert(element, attrs = {}) { + if (typeof element === 'string') { + return h(element); + } + + const mixins = Object.keys(element.attributes || {}).reduce((acc, key) => { + const val = element.attributes[key]; + + switch (key) { + case 'class': + acc['class'] = classToObject(val); + break; + + case 'style': + acc['style'] = styleToObject(val); + break; + + default: + acc[key] = val; + } + + return acc; + }, { + class: {}, + style: {} + } // eslint-disable-line + ); + const { + class: dClass = {}, + style: dStyle = {}, + ...remainingData + } = attrs; + const { + class: mClass = {}, + style: mStyle = {}, + ...mRemainingData + } = mixins; + return h(element.tag, { ...attrs, + class: mergeClasses(mClass, dClass), + style: { ...mStyle, + ...dStyle + }, + ...mRemainingData, + ...remainingData + }, (element.children || []).map(convert)); +} // eslint-disable-next-line + + +function useFontAwesomeIconComponent_(iconArgs) { + return function FontAwesomeIcon(_, { + attrs + }) { + const { + mask: maskArgs, + symbol, + title + } = attrs; // eslint-disable-line + + const icon = normalizeIconArgs(iconArgs); + const classes = objectWithKey('classes', classList(attrs)); + const transform = objectWithKey('transform', typeof attrs.transform === 'string' ? faParse.transform(attrs.transform) : attrs.transform); + const mask = objectWithKey('mask', normalizeIconArgs(maskArgs)); + const { + abstract + } = faIcon(icon, { ...classes, + ...transform, + ...mask, + symbol, + title + }); + return convert(abstract[0], attrs); + }; +} + +const SIZE_MAP = { + 'is-small': '', + '': '', + 'is-medium': 'fa-lg', + 'is-large': 'fa-2x' +}; // eslint-disable-next-line + +export function useFontAwesomeIconComponent(name, iconDefinition) { + const icon = useFontAwesomeIconComponent_(iconDefinition); + return defineComponent({ + props: { ...BIconPropsDefinition, + iconClass: { + type: String + } + }, + + setup(props) { + return () => h(BIcon, props, () => h(icon, { + class: [props.iconClass, SIZE_MAP[props.size]] + })); + } + + }); // eslint-disable-line +} +//# sourceMappingURL=useFontAwesomeIconComponent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.js.map b/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.js.map new file mode 100755 index 0000000..105fc3f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/useFontAwesomeIconComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/utils/useFontAwesomeIconComponent.ts"],"names":[],"mappings":"AAAA,SAAS,KAAK,IAAI,OAAlB,EAA2B,IAAI,IAAI,MAAnC,QAAiD,mCAAjD;AACA,SAAS,CAAT,EAAsD,eAAtD,QAA6E,KAA7E,C,CAEA;;AACA,SAAS,QAAT,QAAyB,wBAAzB;AACA,SAAS,YAAT,QAA6B,6BAA7B;AACA,SAAS,KAAT,QAAsB,YAAtB;AACA,SAAS,oBAAT,QAAqC,kBAArC,C,CAEA;;AAEA,SAAS,aAAT,CAAuB,GAAvB,EAAoC,KAApC,EAAkD;AAChD,SAAQ,KAAK,CAAC,OAAN,CAAc,KAAd,KAAwB,KAAK,CAAC,MAAN,GAAe,CAAxC,IAA+C,CAAC,KAAK,CAAC,OAAN,CAAc,KAAd,CAAD,IAAyB,KAAxE,GAAiF;AAAE,KAAC,GAAD,GAAO;AAAT,GAAjF,GAAoG,EAA3G;AACD,C,CAED;;;AACA,SAAS,SAAT,CAAmB,KAAnB,EAA6B;AAC3B,QAAM,OAAO,GAAG;AACd,eAAW,KAAK,CAAC,IADH;AAEd,gBAAY,KAAK,CAAC,KAFJ;AAGd,aAAS,KAAK,CAAC,UAHD;AAId,iBAAa,KAAK,CAAC,MAJL;AAKd,aAAS,KAAK,CAAC,QALD;AAMd,kBAAc,KAAK,CAAC,OANN;AAOd,0BAAsB,KAAK,CAAC,IAAN,KAAe,YAAf,IAA+B,KAAK,CAAC,IAAN,KAAe,MAPtD;AAQd,wBAAoB,KAAK,CAAC,IAAN,KAAe,UAAf,IAA6B,KAAK,CAAC,IAAN,KAAe,MARlD;AASd,KAAC,MAAM,KAAK,CAAC,IAAI,EAAjB,GAAsB,KAAK,CAAC,IAAN,KAAe,SATvB;AAUd,KAAC,aAAa,KAAK,CAAC,QAAQ,EAA5B,GAAiC,KAAK,CAAC,QAAN,KAAmB,SAVtC;AAWd,KAAC,WAAW,KAAK,CAAC,IAAI,EAAtB,GAA2B,KAAK,CAAC,IAAN,KAAe,SAX5B;AAYd,uBAAmB,KAAK,CAAC;AAZX,GAAhB;AAeA,SAAO,MAAM,CAAC,IAAP,CAAY,OAAZ,EACJ,GADI,CACA,GAAG,IAAK,OAAO,CAAC,GAAD,CAAP,GAAe,GAAf,GAAqB,IAD7B,EAEJ,MAFI,CAEG,GAAG,IAAI,GAFV,CAAP;AAGD;;AAED,SAAS,aAAT,CAAuB,KAAvB,EAAoC;AAClC,SAAO,KAAK,CACT,KADI,CACE,GADF,EAEJ,GAFI,CAEA,CAAC,IAAI,CAAC,CAAC,IAAF,EAFL,EAGJ,MAHI,CAGG,CAAC,IAAI,CAHR,EAIJ,MAJI,CAIG,CAAC,GAAD,EAAM,IAAN,KAAc;AACpB,UAAM,CAAC,GAAG,IAAI,CAAC,OAAL,CAAa,GAAb,CAAV;AACA,UAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAL,CAAW,CAAX,EAAc,CAAd,CAAD,CAArB;AACA,UAAM,KAAK,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,GAAG,CAAf,EAAkB,IAAlB,EAAd;AAEA,IAAA,GAAG,CAAC,IAAD,CAAH,GAAY,KAAZ;AAEA,WAAO,GAAP;AACD,GAZI,EAYF,EAZE,CAAP,CADkC,CAajB;AAClB;;AAED,SAAS,aAAT,CAAuB,GAAvB,EAAkC;AAChC,SAAO,GAAG,CAAC,KAAJ,CAAU,KAAV,EAAiB,MAAjB,CAAwB,CAAC,GAAD,EAAM,CAAN,KAAW;AACxC,IAAA,GAAG,CAAC,CAAD,CAAH,GAAS,IAAT;AAEA,WAAO,GAAP;AACD,GAJM,EAIJ,EAJI,CAAP,CADgC,CAKjB;AAChB,C,CAED;;;AACA,SAAS,iBAAT,CAA2B,IAA3B,EAAoC;AAClC,MAAI,IAAI,KAAK,IAAb,EAAmB;AACjB,WAAO,IAAP;AACD;;AAED,MAAI,OAAO,IAAP,KAAgB,QAAhB,IAA4B,IAAI,CAAC,MAAjC,IAA2C,IAAI,CAAC,QAApD,EAA8D;AAC5D,WAAO,IAAP;AACD;;AAED,MAAI,KAAK,CAAC,OAAN,CAAc,IAAd,KAAuB,IAAI,CAAC,MAAL,KAAgB,CAA3C,EAA8C;AAC5C,WAAO;AAAE,MAAA,MAAM,EAAE,IAAI,CAAC,CAAD,CAAd;AAAmB,MAAA,QAAQ,EAAE,IAAI,CAAC,CAAD;AAAjC,KAAP;AACD;;AAED,MAAI,OAAO,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAO;AAAE,MAAA,MAAM,EAAE,KAAV;AAAiB,MAAA,QAAQ,EAAE;AAA3B,KAAP;AACD;AACF,C,CAED;;;AACA,SAAS,OAAT,CAAiB,OAAjB,EAA+B,KAAA,GAAa,EAA5C,EAA8C;AAC5C,MAAI,OAAO,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,WAAO,CAAC,CAAC,OAAD,CAAR;AACD;;AAED,QAAM,MAAM,GAAG,MAAM,CAAC,IAAP,CAAY,OAAO,CAAC,UAAR,IAAsB,EAAlC,EAAsC,MAAtC,CACb,CAAC,GAAD,EAAM,GAAN,KAAa;AACX,UAAM,GAAG,GAAG,OAAO,CAAC,UAAR,CAAmB,GAAnB,CAAZ;;AAEA,YAAQ,GAAR;AACE,WAAK,OAAL;AACE,QAAA,GAAG,CAAC,OAAD,CAAH,GAAe,aAAa,CAAC,GAAD,CAA5B;AACA;;AACF,WAAK,OAAL;AACE,QAAA,GAAG,CAAC,OAAD,CAAH,GAAe,aAAa,CAAC,GAAD,CAA5B;AACA;;AACF;AACE,QAAA,GAAG,CAAC,GAAD,CAAH,GAAW,GAAX;AARJ;;AAWA,WAAO,GAAP;AACD,GAhBY,EAiBb;AAAE,IAAA,KAAK,EAAE,EAAT;AAAa,IAAA,KAAK,EAAE;AAApB,GAjBa,CAiBmB;AAjBnB,GAAf;AAmBA,QAAM;AAAE,IAAA,KAAK,EAAE,MAAM,GAAG,EAAlB;AAAsB,IAAA,KAAK,EAAE,MAAM,GAAG,EAAtC;AAA0C,OAAG;AAA7C,MAA+D,KAArE;AACA,QAAM;AAAE,IAAA,KAAK,EAAE,MAAM,GAAG,EAAlB;AAAsB,IAAA,KAAK,EAAE,MAAM,GAAG,EAAtC;AAA0C,OAAG;AAA7C,MAAgE,MAAtE;AACA,SAAO,CAAC,CACN,OAAO,CAAC,GADF,EAEN,EACE,GAAG,KADL;AAEE,IAAA,KAAK,EAAE,YAAY,CAAC,MAAD,EAAS,MAAT,CAFrB;AAGE,IAAA,KAAK,EAAE,EAAE,GAAG,MAAL;AAAa,SAAG;AAAhB,KAHT;AAIE,OAAG,cAJL;AAKE,OAAG;AALL,GAFM,EASN,CAAC,OAAO,CAAC,QAAR,IAAoB,EAArB,EAAyB,GAAzB,CAA6B,OAA7B,CATM,CAAR;AAWD,C,CAED;;;AACA,SAAS,4BAAT,CAAsC,QAAtC,EAAmD;AACjD,SAAO,SAAS,eAAT,CAAyB,CAAzB,EAA4B;AAAE,IAAA;AAAF,GAA5B,EAAmD;AACxD,UAAM;AAAE,MAAA,IAAI,EAAE,QAAR;AAAkB,MAAA,MAAlB;AAA0B,MAAA;AAA1B,QAAoC,KAA1C,CADwD,CACA;;AACxD,UAAM,IAAI,GAAG,iBAAiB,CAAC,QAAD,CAA9B;AACA,UAAM,OAAO,GAAG,aAAa,CAAC,SAAD,EAAY,SAAS,CAAC,KAAD,CAArB,CAA7B;AACA,UAAM,SAAS,GAAG,aAAa,CAC7B,WAD6B,EAE7B,OAAO,KAAK,CAAC,SAAb,KAA2B,QAA3B,GAAsC,OAAO,CAAC,SAAR,CAAkB,KAAK,CAAC,SAAxB,CAAtC,GAA2E,KAAK,CAAC,SAFpD,CAA/B;AAIA,UAAM,IAAI,GAAG,aAAa,CAAC,MAAD,EAAS,iBAAiB,CAAC,QAAD,CAA1B,CAA1B;AAEA,UAAM;AAAE,MAAA;AAAF,QAAe,MAAM,CAAC,IAAD,EAAO,EAAE,GAAG,OAAL;AAAc,SAAG,SAAjB;AAA4B,SAAG,IAA/B;AAAqC,MAAA,MAArC;AAA6C,MAAA;AAA7C,KAAP,CAA3B;AACA,WAAO,OAAO,CAAC,QAAQ,CAAC,CAAD,CAAT,EAAc,KAAd,CAAd;AACD,GAZD;AAaD;;AAED,MAAM,QAAQ,GAAgC;AAC5C,cAAY,EADgC;AAE5C,MAAI,EAFwC;AAG5C,eAAa,OAH+B;AAI5C,cAAY;AAJgC,CAA9C,C,CAOA;;AACA,OAAM,SAAU,2BAAV,CAAsC,IAAtC,EAAoD,cAApD,EAAuE;AAC3E,QAAM,IAAI,GAAG,4BAA4B,CAAC,cAAD,CAAzC;AACA,SAAO,eAAe,CAAC;AACrB,IAAA,KAAK,EAAE,EACL,GAAG,oBADE;AAEL,MAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE;AADG;AAFN,KADc;;AAOrB,IAAA,KAAK,CAAC,KAAD,EAAM;AACT,aAAO,MAAM,CAAC,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAM,CAAC,CAAC,IAAD,EAAO;AAAE,QAAA,KAAK,EAAE,CAAC,KAAK,CAAC,SAAP,EAAkB,QAAQ,CAAC,KAAK,CAAC,IAAP,CAA1B;AAAT,OAAP,CAAtB,CAAd;AACD;;AAToB,GAAD,CAAtB,CAF2E,CAYhE;AACZ","sourcesContent":["import { parse as faParse, icon as faIcon } from '@fortawesome/fontawesome-svg-core';\nimport { h, SetupContext, VNode, FunctionalComponent, defineComponent } from 'vue';\nimport { SizeVariant } from '../../../types';\n// import { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { camelize } from '../../../utils/helpers';\nimport { mergeClasses } from '../../../utils/mergeClasses';\nimport { BIcon } from '../../icon';\nimport { BIconPropsDefinition } from '../../icon/BIcon';\n\n//replace iconDefinition with actual definition from fontawesome. causing some typescript issues at the moment\n\nfunction objectWithKey(key: string, value: unknown) {\n return (Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && value) ? { [key]: value } : {};\n}\n\n// eslint-disable-next-line\nfunction classList(props: any) {\n const classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-inverse': props.inverse,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both',\n [`fa-${props.size}`]: props.size !== undefined,\n [`fa-rotate-${props.rotation}`]: props.rotation !== undefined,\n [`fa-pull-${props.pull}`]: props.pull !== undefined,\n 'fa-swap-opacity': props.swapOpacity\n };\n\n return Object.keys(classes)\n .map(key => (classes[key] ? key : null))\n .filter(key => key);\n}\n\nfunction styleToObject(style: string) {\n return style\n .split(';')\n .map(s => s.trim())\n .filter(s => s)\n .reduce((acc, pair) => {\n const i = pair.indexOf(':');\n const prop = camelize(pair.slice(0, i));\n const value = pair.slice(i + 1).trim();\n\n acc[prop] = value;\n\n return acc;\n }, {} as any); // eslint-disable-line\n}\n\nfunction classToObject(cls: string) {\n return cls.split(/\\s+/).reduce((acc, c) => {\n acc[c] = true;\n\n return acc;\n }, {} as any); // eslint-disable-line\n}\n\n// eslint-disable-next-line\nfunction normalizeIconArgs(icon: any) {\n if (icon === null) {\n return null;\n }\n\n if (typeof icon === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n\n if (Array.isArray(icon) && icon.length === 2) {\n return { prefix: icon[0], iconName: icon[1] };\n }\n\n if (typeof icon === 'string') {\n return { prefix: 'fas', iconName: icon };\n }\n}\n\n// eslint-disable-next-line\nfunction convert(element: any, attrs: any = {}): VNode {\n if (typeof element === 'string') {\n return h(element);\n }\n\n const mixins = Object.keys(element.attributes || {}).reduce(\n (acc, key) => {\n const val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc['class'] = classToObject(val);\n break;\n case 'style':\n acc['style'] = styleToObject(val);\n break;\n default:\n acc[key] = val;\n }\n\n return acc;\n },\n { class: {}, style: {} } as any // eslint-disable-line\n );\n const { class: dClass = {}, style: dStyle = {}, ...remainingData } = attrs;\n const { class: mClass = {}, style: mStyle = {}, ...mRemainingData } = mixins;\n return h(\n element.tag,\n {\n ...attrs,\n class: mergeClasses(mClass, dClass),\n style: { ...mStyle, ...dStyle },\n ...mRemainingData,\n ...remainingData\n },\n (element.children || []).map(convert)\n );\n}\n\n// eslint-disable-next-line\nfunction useFontAwesomeIconComponent_(iconArgs: any): FunctionalComponent {\n return function FontAwesomeIcon(_, { attrs }: SetupContext): VNode {\n const { mask: maskArgs, symbol, title } = attrs as any; // eslint-disable-line\n const icon = normalizeIconArgs(iconArgs);\n const classes = objectWithKey('classes', classList(attrs));\n const transform = objectWithKey(\n 'transform',\n typeof attrs.transform === 'string' ? faParse.transform(attrs.transform) : attrs.transform\n );\n const mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n\n const { abstract } = faIcon(icon, { ...classes, ...transform, ...mask, symbol, title });\n return convert(abstract[0], attrs);\n };\n}\n\nconst SIZE_MAP: Record<SizeVariant, string> = {\n 'is-small': '',\n '': '',\n 'is-medium': 'fa-lg',\n 'is-large': 'fa-2x'\n};\n\n// eslint-disable-next-line\nexport function useFontAwesomeIconComponent(name: string, iconDefinition: any) {\n const icon = useFontAwesomeIconComponent_(iconDefinition);\n return defineComponent({\n props: {\n ...BIconPropsDefinition,\n iconClass: {\n type: String\n }\n },\n setup(props) {\n return () => h(BIcon, props, () => h(icon, { class: [props.iconClass, SIZE_MAP[props.size]] }));\n }\n }) as any; // eslint-disable-line\n}\n"],"sourceRoot":"","file":"useFontAwesomeIconComponent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.d.ts b/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.d.ts new file mode 100755 index 0000000..337cd54 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.d.ts @@ -0,0 +1,24 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { PropType } from 'vue'; +export declare const SvgLoader: import("vue").DefineComponent<{ + src: { + type: StringConstructor; + required: true; + }; + onLoad: { + type: PropType<IO<void>>; + required: false; + }; + onError: { + type: PropType<FunctionN<[Error], void>>; + required: false; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + src: string; +} & { + onLoad?: IO<void> | undefined; + onError?: FunctionN<[Error], void> | undefined; +}>, {}>; diff --git a/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.js b/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.js new file mode 100755 index 0000000..5a60346 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.js @@ -0,0 +1,84 @@ +import { defineComponent, shallowRef, h, watchEffect } from 'vue'; +import { isString } from '../../../utils/helpers'; +const SVG_STORE = new Map(); + +function isSVG(mimetype) { + return isString(mimetype) ? mimetype.includes('svg') : false; +} + +function load(src) { + let r = SVG_STORE.get(src); + + if (!r) { + return new Promise((resolve, reject) => { + const request = new window.XMLHttpRequest(); + request.open('GET', src, true); + + request.onload = () => { + const mimetype = request.getResponseHeader('content-type'); + + if (request.status === 200) { + if (isSVG(mimetype)) { + r = Promise.resolve(request.response); + SVG_STORE.set(src, r); + resolve(request.response); + } else { + reject(`The file ${src} is not a valid SVG.`); + } + } else if (request.status >= 400 && request.status < 500) { + reject(`The file ${src} do not exists.`); + } else { + reject(`Something bad happened trying to fetch ${src}.`); + } + }; + + request.onerror = reject; + request.onabort = reject; + request.send(); + }); + } else { + return r; + } +} + +export const SvgLoader = defineComponent({ + name: 'svg-loader', + props: { + src: { + type: String, + required: true + }, + onLoad: { + type: Function, + required: false + }, + onError: { + type: Function, + required: false + } + }, + + setup(props) { + const html = shallowRef(null); + watchEffect(() => { + html.value = null; + load(props.src).then(svg => { + html.value = svg; + + if (props.onLoad) { + props.onLoad(); + } + }).catch(e => { + if (props.onError) { + props.onError(e); + } + }); + }); + return () => h('i', { + class: 'is-block is-fullwidth', + innerHtml: html.value + }); + } + +}); +//# sourceMappingURL=useMaterialDesignIconComponent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.js.map b/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.js.map new file mode 100755 index 0000000..34a6509 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/utils/useMaterialDesignIconComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/utils/useMaterialDesignIconComponent.ts"],"names":[],"mappings":"AAEA,SAAS,eAAT,EAA0B,UAA1B,EAAgD,CAAhD,EAAmD,WAAnD,QAAsE,KAAtE;AACA,SAAS,QAAT,QAAyB,wBAAzB;AAEA,MAAM,SAAS,GAAG,IAAI,GAAJ,EAAlB;;AAEA,SAAS,KAAT,CAAe,QAAf,EAAgC;AAC9B,SAAO,QAAQ,CAAC,QAAD,CAAR,GAAqB,QAAQ,CAAC,QAAT,CAAkB,KAAlB,CAArB,GAAgD,KAAvD;AACD;;AAED,SAAS,IAAT,CAAc,GAAd,EAAyB;AACvB,MAAI,CAAC,GAAG,SAAS,CAAC,GAAV,CAAc,GAAd,CAAR;;AACA,MAAI,CAAC,CAAL,EAAQ;AACN,WAAO,IAAI,OAAJ,CAAY,CAAC,OAAD,EAAU,MAAV,KAAoB;AACrC,YAAM,OAAO,GAAG,IAAI,MAAM,CAAC,cAAX,EAAhB;AACA,MAAA,OAAO,CAAC,IAAR,CAAa,KAAb,EAAoB,GAApB,EAAyB,IAAzB;;AACA,MAAA,OAAO,CAAC,MAAR,GAAiB,MAAK;AACpB,cAAM,QAAQ,GAAG,OAAO,CAAC,iBAAR,CAA0B,cAA1B,CAAjB;;AACA,YAAI,OAAO,CAAC,MAAR,KAAmB,GAAvB,EAA4B;AAC1B,cAAI,KAAK,CAAC,QAAD,CAAT,EAAqB;AACnB,YAAA,CAAC,GAAG,OAAO,CAAC,OAAR,CAAgB,OAAO,CAAC,QAAxB,CAAJ;AACA,YAAA,SAAS,CAAC,GAAV,CAAc,GAAd,EAAmB,CAAnB;AACA,YAAA,OAAO,CAAC,OAAO,CAAC,QAAT,CAAP;AACD,WAJD,MAIO;AACL,YAAA,MAAM,CAAC,YAAY,GAAG,sBAAhB,CAAN;AACD;AACF,SARD,MAQO,IAAI,OAAO,CAAC,MAAR,IAAkB,GAAlB,IAAyB,OAAO,CAAC,MAAR,GAAiB,GAA9C,EAAmD;AACxD,UAAA,MAAM,CAAC,YAAY,GAAG,iBAAhB,CAAN;AACD,SAFM,MAEA;AACL,UAAA,MAAM,CAAC,0CAA0C,GAAG,GAA9C,CAAN;AACD;AACF,OAfD;;AAgBA,MAAA,OAAO,CAAC,OAAR,GAAkB,MAAlB;AACA,MAAA,OAAO,CAAC,OAAR,GAAkB,MAAlB;AACA,MAAA,OAAO,CAAC,IAAR;AACD,KAtBM,CAAP;AAuBD,GAxBD,MAwBO;AACL,WAAO,CAAP;AACD;AACF;;AAED,OAAO,MAAM,SAAS,GAAG,eAAe,CAAC;AACvC,EAAA,IAAI,EAAE,YADiC;AAEvC,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,QAAQ,EAAE;AAFP,KADA;AAKL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,QADA;AAEN,MAAA,QAAQ,EAAE;AAFJ,KALH;AASL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,QADC;AAEP,MAAA,QAAQ,EAAE;AAFH;AATJ,GAFgC;;AAgBvC,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,UAAM,IAAI,GAAG,UAAU,CAAC,IAAD,CAAvB;AAEA,IAAA,WAAW,CAAC,MAAK;AACf,MAAA,IAAI,CAAC,KAAL,GAAa,IAAb;AACA,MAAA,IAAI,CAAC,KAAK,CAAC,GAAP,CAAJ,CACG,IADH,CACQ,GAAG,IAAG;AACV,QAAA,IAAI,CAAC,KAAL,GAAa,GAAb;;AACA,YAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,UAAA,KAAK,CAAC,MAAN;AACD;AACF,OANH,EAOG,KAPH,CAOU,CAAD,IAAa;AAClB,YAAI,KAAK,CAAC,OAAV,EAAmB;AACjB,UAAA,KAAK,CAAC,OAAN,CAAc,CAAd;AACD;AACF,OAXH;AAYD,KAdU,CAAX;AAgBA,WAAO,MACL,CAAC,CAAC,GAAD,EAAM;AACL,MAAA,KAAK,EAAE,uBADF;AAEL,MAAA,SAAS,EAAE,IAAI,CAAC;AAFX,KAAN,CADH;AAKD;;AAxCsC,CAAD,CAAjC","sourcesContent":["import { FunctionN } from 'fp-ts/lib/function';\r\nimport { IO } from 'fp-ts/lib/IO';\r\nimport { defineComponent, shallowRef, PropType, h, watchEffect } from 'vue';\r\nimport { isString } from '../../../utils/helpers';\r\n\r\nconst SVG_STORE = new Map<string, Promise<string>>();\r\n\r\nfunction isSVG(mimetype: unknown): boolean {\r\n return isString(mimetype) ? mimetype.includes('svg') : false;\r\n}\r\n\r\nfunction load(src: string): Promise<string> {\r\n let r = SVG_STORE.get(src);\r\n if (!r) {\r\n return new Promise((resolve, reject) => {\r\n const request = new window.XMLHttpRequest();\r\n request.open('GET', src, true);\r\n request.onload = () => {\r\n const mimetype = request.getResponseHeader('content-type');\r\n if (request.status === 200) {\r\n if (isSVG(mimetype)) {\r\n r = Promise.resolve(request.response);\r\n SVG_STORE.set(src, r);\r\n resolve(request.response);\r\n } else {\r\n reject(`The file ${src} is not a valid SVG.`);\r\n }\r\n } else if (request.status >= 400 && request.status < 500) {\r\n reject(`The file ${src} do not exists.`);\r\n } else {\r\n reject(`Something bad happened trying to fetch ${src}.`);\r\n }\r\n };\r\n request.onerror = reject;\r\n request.onabort = reject;\r\n request.send();\r\n });\r\n } else {\r\n return r;\r\n }\r\n}\r\n\r\nexport const SvgLoader = defineComponent({\r\n name: 'svg-loader',\r\n props: {\r\n src: {\r\n type: String,\r\n required: true\r\n },\r\n onLoad: {\r\n type: Function as PropType<IO<void>>,\r\n required: false\r\n },\r\n onError: {\r\n type: Function as PropType<FunctionN<[Error], void>>,\r\n required: false\r\n }\r\n },\r\n setup(props) {\r\n const html = shallowRef(null as null | string);\r\n\r\n watchEffect(() => {\r\n html.value = null;\r\n load(props.src)\r\n .then(svg => {\r\n html.value = svg;\r\n if (props.onLoad) {\r\n props.onLoad();\r\n }\r\n })\r\n .catch((e: Error) => {\r\n if (props.onError) {\r\n props.onError(e);\r\n }\r\n });\r\n });\r\n\r\n return () =>\r\n h('i', {\r\n class: 'is-block is-fullwidth',\r\n innerHtml: html.value\r\n });\r\n }\r\n});\r\n"],"sourceRoot":"","file":"useMaterialDesignIconComponent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.d.ts b/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.d.ts new file mode 100755 index 0000000..5fcc066 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.d.ts @@ -0,0 +1,12 @@ +import './vertical-expansion-icon.sass'; +declare const _default: import("vue").DefineComponent<{ + isExpanded: { + type: BooleanConstructor; + required: true; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isExpanded: boolean; +} & {}>, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.js b/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.js new file mode 100755 index 0000000..aaebdac --- /dev/null +++ b/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.js @@ -0,0 +1,22 @@ +import "../../../../src/components/icons/verticalExpansion/vertical-expansion-icon.sass"; +import { h, defineComponent } from 'vue'; +import { AngleDownIcon } from '../angleDown'; +export default defineComponent({ + name: 'vertical-expansion-icon', + props: { + isExpanded: { + type: Boolean, + required: true + } + }, + + setup(props) { + return () => h(AngleDownIcon, { + class: ['vertical-expansion-icon', { + 'is-expanded': props.isExpanded + }] + }); + } + +}); +//# sourceMappingURL=VerticalExpansionIcon.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.js.map b/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.js.map new file mode 100755 index 0000000..2951a53 --- /dev/null +++ b/node_modules/buetify/lib/components/icons/verticalExpansion/VerticalExpansionIcon.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/verticalExpansion/VerticalExpansionIcon.ts"],"names":[],"mappings":"AAAA,OAAO,iFAAP;AACA,SAAS,CAAT,EAAY,eAAZ,QAAmC,KAAnC;AACA,SAAS,aAAT,QAA8B,cAA9B;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,yBADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,QAAQ,EAAE;AAFA;AADP,GAFsB;;AAQ7B,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,WAAO,MACL,CAAC,CAAC,aAAD,EAAgB;AACf,MAAA,KAAK,EAAE,CAAC,yBAAD,EAA4B;AAAE,uBAAe,KAAK,CAAC;AAAvB,OAA5B;AADQ,KAAhB,CADH;AAID;;AAb4B,CAAD,CAA9B","sourcesContent":["import './vertical-expansion-icon.sass';\nimport { h, defineComponent } from 'vue';\nimport { AngleDownIcon } from '../angleDown';\n\nexport default defineComponent({\n name: 'vertical-expansion-icon',\n props: {\n isExpanded: {\n type: Boolean,\n required: true\n }\n },\n setup(props) {\n return () =>\n h(AngleDownIcon, {\n class: ['vertical-expansion-icon', { 'is-expanded': props.isExpanded }]\n });\n }\n});\n"],"sourceRoot":"","file":"VerticalExpansionIcon.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/verticalExpansion/index.d.ts b/node_modules/buetify/lib/components/icons/verticalExpansion/index.d.ts new file mode 100755 index 0000000..46382ed --- /dev/null +++ b/node_modules/buetify/lib/components/icons/verticalExpansion/index.d.ts @@ -0,0 +1,3 @@ +import VerticalExpansionIcon from './VerticalExpansionIcon'; +export { VerticalExpansionIcon }; +export default VerticalExpansionIcon; diff --git a/node_modules/buetify/lib/components/icons/verticalExpansion/index.js b/node_modules/buetify/lib/components/icons/verticalExpansion/index.js new file mode 100755 index 0000000..e18e07f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/verticalExpansion/index.js @@ -0,0 +1,4 @@ +import VerticalExpansionIcon from './VerticalExpansionIcon'; +export { VerticalExpansionIcon }; +export default VerticalExpansionIcon; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/icons/verticalExpansion/index.js.map b/node_modules/buetify/lib/components/icons/verticalExpansion/index.js.map new file mode 100755 index 0000000..5dae29f --- /dev/null +++ b/node_modules/buetify/lib/components/icons/verticalExpansion/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/icons/verticalExpansion/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAP,MAAkC,yBAAlC;AACA,SAAS,qBAAT;AACA,eAAe,qBAAf","sourcesContent":["import VerticalExpansionIcon from './VerticalExpansionIcon';\nexport { VerticalExpansionIcon };\nexport default VerticalExpansionIcon;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/image/BImage.d.ts b/node_modules/buetify/lib/components/image/BImage.d.ts new file mode 100755 index 0000000..f932803 --- /dev/null +++ b/node_modules/buetify/lib/components/image/BImage.d.ts @@ -0,0 +1,12 @@ +import 'bulma/sass/elements/image.sass'; +import { Classes } from '../../utils/mergeClasses'; +import { SetupContext } from 'vue'; +export interface BImageProps { + src: string; + alt: string; + isRounded?: boolean; + imgClass?: Classes; +} +export default function BImage(props: BImageProps, { attrs }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/image/BImage.js b/node_modules/buetify/lib/components/image/BImage.js new file mode 100755 index 0000000..85fb5dd --- /dev/null +++ b/node_modules/buetify/lib/components/image/BImage.js @@ -0,0 +1,16 @@ +import 'bulma/sass/elements/image.sass'; +import { h } from 'vue'; +export default function BImage(props, { + attrs +}) { + return h('figure', { ...attrs, + class: 'image' + }, [h('img', { + class: [props.imgClass, { + 'is-rounded': props.isRounded + }], + src: props.src, + alt: props.alt + })]); +} +//# sourceMappingURL=BImage.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/image/BImage.js.map b/node_modules/buetify/lib/components/image/BImage.js.map new file mode 100755 index 0000000..da63d25 --- /dev/null +++ b/node_modules/buetify/lib/components/image/BImage.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/image/BImage.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAP;AAEA,SAAuB,CAAvB,QAAgC,KAAhC;AASA,eAAc,SAAU,MAAV,CAAiB,KAAjB,EAAqC;AAAE,EAAA;AAAF,CAArC,EAA4D;AACxE,SAAO,CAAC,CACN,QADM,EAEN,EACE,GAAG,KADL;AAEE,IAAA,KAAK,EAAE;AAFT,GAFM,EAMN,CACE,CAAC,CAAC,KAAD,EAAQ;AACP,IAAA,KAAK,EAAE,CACL,KAAK,CAAC,QADD,EAEL;AACE,oBAAc,KAAK,CAAC;AADtB,KAFK,CADA;AAOP,IAAA,GAAG,EAAE,KAAK,CAAC,GAPJ;AAQP,IAAA,GAAG,EAAE,KAAK,CAAC;AARJ,GAAR,CADH,CANM,CAAR;AAmBD","sourcesContent":["import 'bulma/sass/elements/image.sass';\nimport { Classes } from '../../utils/mergeClasses';\nimport { SetupContext, h } from 'vue';\n\nexport interface BImageProps {\n src: string;\n alt: string;\n isRounded?: boolean;\n imgClass?: Classes;\n}\n\nexport default function BImage(props: BImageProps, { attrs }: SetupContext) {\n return h(\n 'figure',\n {\n ...attrs,\n class: 'image'\n },\n [\n h('img', {\n class: [\n props.imgClass,\n {\n 'is-rounded': props.isRounded\n }\n ],\n src: props.src,\n alt: props.alt\n })\n ]\n );\n}\n"],"sourceRoot":"","file":"BImage.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/image/index.d.ts b/node_modules/buetify/lib/components/image/index.d.ts new file mode 100755 index 0000000..2ff7372 --- /dev/null +++ b/node_modules/buetify/lib/components/image/index.d.ts @@ -0,0 +1,3 @@ +import BImage from './BImage'; +export { BImage }; +export default BImage; diff --git a/node_modules/buetify/lib/components/image/index.js b/node_modules/buetify/lib/components/image/index.js new file mode 100755 index 0000000..6fbc636 --- /dev/null +++ b/node_modules/buetify/lib/components/image/index.js @@ -0,0 +1,4 @@ +import BImage from './BImage'; +export { BImage }; +export default BImage; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/image/index.js.map b/node_modules/buetify/lib/components/image/index.js.map new file mode 100755 index 0000000..123f664 --- /dev/null +++ b/node_modules/buetify/lib/components/image/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AAEA,SAAS,MAAT;AACA,eAAe,MAAf","sourcesContent":["import BImage from './BImage';\n\nexport { BImage };\nexport default BImage;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/index.d.ts b/node_modules/buetify/lib/components/index.d.ts new file mode 100755 index 0000000..58884dc --- /dev/null +++ b/node_modules/buetify/lib/components/index.d.ts @@ -0,0 +1,34 @@ +export * from './accordion'; +export * from './app'; +export * from './appHeader'; +export * from './button'; +export * from './dialog'; +export * from './dropdown'; +export * from './form'; +export * from './higherOrder'; +export * from './icon'; +export * from './icons'; +export * from './image'; +export * from './layout'; +export * from './link'; +export * from './loading'; +export * from './menu'; +export * from './message'; +export * from './modal'; +export * from './navbar'; +export * from './sidebar'; +export * from './notices'; +export * from './overlay'; +export * from './pageLoader'; +export * from './pagination'; +export * from './pricingTable'; +export * from './renderless'; +export * from './scroll'; +export * from './sheet'; +export * from './steps'; +export * from './table'; +export * from './tabs'; +export * from './tag'; +export * from './themeToggle'; +export * from './title'; +export * from './tooltip'; diff --git a/node_modules/buetify/lib/components/index.js b/node_modules/buetify/lib/components/index.js new file mode 100755 index 0000000..76ae17b --- /dev/null +++ b/node_modules/buetify/lib/components/index.js @@ -0,0 +1,35 @@ +export * from './accordion'; +export * from './app'; +export * from './appHeader'; +export * from './button'; +export * from './dialog'; +export * from './dropdown'; +export * from './form'; +export * from './higherOrder'; +export * from './icon'; +export * from './icons'; +export * from './image'; +export * from './layout'; +export * from './link'; +export * from './loading'; +export * from './menu'; +export * from './message'; +export * from './modal'; +export * from './navbar'; +export * from './sidebar'; +export * from './notices'; +export * from './overlay'; +export * from './pageLoader'; +export * from './pagination'; +export * from './pricingTable'; +export * from './renderless'; +export * from './scroll'; +export * from './sheet'; +export * from './steps'; +export * from './table'; +export * from './tabs'; +export * from './tag'; +export * from './themeToggle'; +export * from './title'; +export * from './tooltip'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/index.js.map b/node_modules/buetify/lib/components/index.js.map new file mode 100755 index 0000000..fab18b1 --- /dev/null +++ b/node_modules/buetify/lib/components/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAd;AACA,cAAc,OAAd;AACA,cAAc,aAAd;AACA,cAAc,UAAd;AACA,cAAc,UAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,WAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,WAAd;AACA,cAAc,WAAd;AACA,cAAc,WAAd;AACA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,gBAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,OAAd;AACA,cAAc,eAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd","sourcesContent":["export * from './accordion';\nexport * from './app';\nexport * from './appHeader';\nexport * from './button';\nexport * from './dialog';\nexport * from './dropdown';\nexport * from './form';\nexport * from './higherOrder';\nexport * from './icon';\nexport * from './icons';\nexport * from './image';\nexport * from './layout';\nexport * from './link';\nexport * from './loading';\nexport * from './menu';\nexport * from './message';\nexport * from './modal';\nexport * from './navbar';\nexport * from './sidebar';\nexport * from './notices';\nexport * from './overlay';\nexport * from './pageLoader';\nexport * from './pagination';\nexport * from './pricingTable';\nexport * from './renderless';\nexport * from './scroll';\nexport * from './sheet';\nexport * from './steps';\nexport * from './table';\nexport * from './tabs';\nexport * from './tag';\nexport * from './themeToggle';\nexport * from './title';\nexport * from './tooltip';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/box/BBox.d.ts b/node_modules/buetify/lib/components/layout/box/BBox.d.ts new file mode 100755 index 0000000..ff2b571 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/box/BBox.d.ts @@ -0,0 +1,28 @@ +import './box.sass'; +declare const _default: import("vue").DefineComponent<{ + tag: { + type: (FunctionConstructor | StringConstructor)[]; + default: string; + }; + themeMap: { + type: import("vue").PropType<import("../../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../..").ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + tag: string | Function; +} & {}>, { + isThemeable: boolean; + themeMap: import("../../..").ThemeColorMap; + tag: string | Function; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/box/BBox.js b/node_modules/buetify/lib/components/layout/box/BBox.js new file mode 100755 index 0000000..b569540 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/box/BBox.js @@ -0,0 +1,7 @@ +import "../../../../src/components/layout/box/box.sass"; +import { getThemeableFunctionalComponent } from '../../../utils/getThemeableFunctionalComponent'; +export default getThemeableFunctionalComponent({ + cls: 'box', + el: 'section' +}); +//# sourceMappingURL=BBox.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/box/BBox.js.map b/node_modules/buetify/lib/components/layout/box/BBox.js.map new file mode 100755 index 0000000..3e738f1 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/box/BBox.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/box/BBox.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAP;AACA,SAAS,+BAAT,QAAgD,gDAAhD;AAEA,eAAe,+BAA+B,CAAC;AAAE,EAAA,GAAG,EAAE,KAAP;AAAc,EAAA,EAAE,EAAE;AAAlB,CAAD,CAA9C","sourcesContent":["import './box.sass';\nimport { getThemeableFunctionalComponent } from '../../../utils/getThemeableFunctionalComponent';\n\nexport default getThemeableFunctionalComponent({ cls: 'box', el: 'section' });\n"],"sourceRoot":"","file":"BBox.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/box/index.d.ts b/node_modules/buetify/lib/components/layout/box/index.d.ts new file mode 100755 index 0000000..3b2688e --- /dev/null +++ b/node_modules/buetify/lib/components/layout/box/index.d.ts @@ -0,0 +1,3 @@ +import BBox from './BBox'; +export { BBox }; +export default BBox; diff --git a/node_modules/buetify/lib/components/layout/box/index.js b/node_modules/buetify/lib/components/layout/box/index.js new file mode 100755 index 0000000..fabd29d --- /dev/null +++ b/node_modules/buetify/lib/components/layout/box/index.js @@ -0,0 +1,4 @@ +import BBox from './BBox'; +export { BBox }; +export default BBox; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/box/index.js.map b/node_modules/buetify/lib/components/layout/box/index.js.map new file mode 100755 index 0000000..2f573d7 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/box/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/box/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAP,MAAiB,QAAjB;AAEA,SAAS,IAAT;AAEA,eAAe,IAAf","sourcesContent":["import BBox from './BBox';\n\nexport { BBox };\n\nexport default BBox;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/columns/BColumn.d.ts b/node_modules/buetify/lib/components/layout/columns/BColumn.d.ts new file mode 100755 index 0000000..831e7dd --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/BColumn.d.ts @@ -0,0 +1,5 @@ +import './columns.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/columns/BColumn.js b/node_modules/buetify/lib/components/layout/columns/BColumn.js new file mode 100755 index 0000000..a8fe20a --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/BColumn.js @@ -0,0 +1,4 @@ +import "../../../../src/components/layout/columns/columns.sass"; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('column', 'div'); +//# sourceMappingURL=BColumn.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/columns/BColumn.js.map b/node_modules/buetify/lib/components/layout/columns/BColumn.js.map new file mode 100755 index 0000000..d4b5015 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/BColumn.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/columns/BColumn.ts"],"names":[],"mappings":"AAAA,OAAO,wDAAP;AACA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,QAAD,EAAW,KAAX,CAA3C","sourcesContent":["import './columns.sass';\nimport { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('column', 'div');\n"],"sourceRoot":"","file":"BColumn.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/columns/BColumns.d.ts b/node_modules/buetify/lib/components/layout/columns/BColumns.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/BColumns.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/columns/BColumns.js b/node_modules/buetify/lib/components/layout/columns/BColumns.js new file mode 100755 index 0000000..64d37e9 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/BColumns.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('columns', 'div'); +//# sourceMappingURL=BColumns.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/columns/BColumns.js.map b/node_modules/buetify/lib/components/layout/columns/BColumns.js.map new file mode 100755 index 0000000..018faf8 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/BColumns.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/columns/BColumns.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,SAAD,EAAY,KAAZ,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('columns', 'div');\n"],"sourceRoot":"","file":"BColumns.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/columns/index.d.ts b/node_modules/buetify/lib/components/layout/columns/index.d.ts new file mode 100755 index 0000000..6313770 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/index.d.ts @@ -0,0 +1,3 @@ +import BColumns from './BColumns'; +import BColumn from './BColumn'; +export { BColumns, BColumn }; diff --git a/node_modules/buetify/lib/components/layout/columns/index.js b/node_modules/buetify/lib/components/layout/columns/index.js new file mode 100755 index 0000000..fbbc437 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/index.js @@ -0,0 +1,4 @@ +import BColumns from './BColumns'; +import BColumn from './BColumn'; +export { BColumns, BColumn }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/columns/index.js.map b/node_modules/buetify/lib/components/layout/columns/index.js.map new file mode 100755 index 0000000..676c9e3 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/columns/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/columns/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AACA,OAAO,OAAP,MAAoB,WAApB;AAEA,SAAS,QAAT,EAAmB,OAAnB","sourcesContent":["import BColumns from './BColumns';\nimport BColumn from './BColumn';\n\nexport { BColumns, BColumn };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/container/BContainer.d.ts b/node_modules/buetify/lib/components/layout/container/BContainer.d.ts new file mode 100755 index 0000000..f422ce6 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/container/BContainer.d.ts @@ -0,0 +1,5 @@ +import 'bulma/sass/elements/container.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/container/BContainer.js b/node_modules/buetify/lib/components/layout/container/BContainer.js new file mode 100755 index 0000000..03fe1e7 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/container/BContainer.js @@ -0,0 +1,4 @@ +import 'bulma/sass/elements/container.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('container', 'div'); +//# sourceMappingURL=BContainer.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/container/BContainer.js.map b/node_modules/buetify/lib/components/layout/container/BContainer.js.map new file mode 100755 index 0000000..cdd0643 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/container/BContainer.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/container/BContainer.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAP;AACA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,WAAD,EAAc,KAAd,CAA3C","sourcesContent":["import 'bulma/sass/elements/container.sass';\nimport { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('container', 'div');\n"],"sourceRoot":"","file":"BContainer.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/container/index.d.ts b/node_modules/buetify/lib/components/layout/container/index.d.ts new file mode 100755 index 0000000..d1a494c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/container/index.d.ts @@ -0,0 +1,3 @@ +import BContainer from './BContainer'; +export { BContainer }; +export default BContainer; diff --git a/node_modules/buetify/lib/components/layout/container/index.js b/node_modules/buetify/lib/components/layout/container/index.js new file mode 100755 index 0000000..409a1d9 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/container/index.js @@ -0,0 +1,4 @@ +import BContainer from './BContainer'; +export { BContainer }; +export default BContainer; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/container/index.js.map b/node_modules/buetify/lib/components/layout/container/index.js.map new file mode 100755 index 0000000..2b3711e --- /dev/null +++ b/node_modules/buetify/lib/components/layout/container/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/container/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAP,MAAuB,cAAvB;AAEA,SAAS,UAAT;AAEA,eAAe,UAAf","sourcesContent":["import BContainer from './BContainer';\n\nexport { BContainer };\n\nexport default BContainer;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/content/BContent.d.ts b/node_modules/buetify/lib/components/layout/content/BContent.d.ts new file mode 100755 index 0000000..34d6f4d --- /dev/null +++ b/node_modules/buetify/lib/components/layout/content/BContent.d.ts @@ -0,0 +1,5 @@ +import 'bulma/sass/elements/content.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/content/BContent.js b/node_modules/buetify/lib/components/layout/content/BContent.js new file mode 100755 index 0000000..d18875e --- /dev/null +++ b/node_modules/buetify/lib/components/layout/content/BContent.js @@ -0,0 +1,4 @@ +import 'bulma/sass/elements/content.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('content', 'div'); +//# sourceMappingURL=BContent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/content/BContent.js.map b/node_modules/buetify/lib/components/layout/content/BContent.js.map new file mode 100755 index 0000000..83540a1 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/content/BContent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/content/BContent.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAP;AACA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,SAAD,EAAY,KAAZ,CAA3C","sourcesContent":["import 'bulma/sass/elements/content.sass';\nimport { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('content', 'div');\n"],"sourceRoot":"","file":"BContent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/content/index.d.ts b/node_modules/buetify/lib/components/layout/content/index.d.ts new file mode 100755 index 0000000..29a1c6b --- /dev/null +++ b/node_modules/buetify/lib/components/layout/content/index.d.ts @@ -0,0 +1,3 @@ +import BContent from './BContent'; +export { BContent }; +export default BContent; diff --git a/node_modules/buetify/lib/components/layout/content/index.js b/node_modules/buetify/lib/components/layout/content/index.js new file mode 100755 index 0000000..01fe507 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/content/index.js @@ -0,0 +1,4 @@ +import BContent from './BContent'; +export { BContent }; +export default BContent; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/content/index.js.map b/node_modules/buetify/lib/components/layout/content/index.js.map new file mode 100755 index 0000000..ceda1c6 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/content/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,QAAT;AAEA,eAAe,QAAf","sourcesContent":["import BContent from './BContent';\n\nexport { BContent };\n\nexport default BContent;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.d.ts b/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.d.ts new file mode 100755 index 0000000..ff3e16c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.d.ts @@ -0,0 +1,11 @@ +import './divider.sass'; +import { ThemeColorMap } from '../../../types/ThemeColorMap'; +export interface BDividerProps { + text?: string; + tag?: string; + themeMap?: ThemeColorMap; + isThemeable?: boolean; +} +export default function BHorizontalDivider(props: BDividerProps): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.js b/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.js new file mode 100755 index 0000000..04727a6 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.js @@ -0,0 +1,16 @@ +import "../../../../src/components/layout/divider/divider.sass"; +import { DEFAULT_THEME_COLOR_MAP, useTheme } from '../../../composables/theme'; +import { h } from 'vue'; +export default function BHorizontalDivider(props) { + const { + themeClasses + } = useTheme({ + themeMap: props.themeMap ?? DEFAULT_THEME_COLOR_MAP, + isThemeable: props.isThemeable ?? true + }); + return h(props.tag ?? 'hr', { + class: ['is-divider', ...themeClasses.value], + 'data-content': props.text || null + }); +} +//# sourceMappingURL=BHorizontalDivider.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.js.map b/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.js.map new file mode 100755 index 0000000..91dbd88 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/BHorizontalDivider.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/divider/BHorizontalDivider.ts"],"names":[],"mappings":"AAAA,OAAO,wDAAP;AACA,SAAS,uBAAT,EAAkC,QAAlC,QAAkD,4BAAlD;AAEA,SAAS,CAAT,QAAkB,KAAlB;AASA,eAAc,SAAU,kBAAV,CAA6B,KAA7B,EAAiD;AAC7D,QAAM;AAAE,IAAA;AAAF,MAAmB,QAAQ,CAAC;AAChC,IAAA,QAAQ,EAAE,KAAK,CAAC,QAAN,IAAkB,uBADI;AAEhC,IAAA,WAAW,EAAE,KAAK,CAAC,WAAN,IAAqB;AAFF,GAAD,CAAjC;AAKA,SAAO,CAAC,CAAC,KAAK,CAAC,GAAN,IAAa,IAAd,EAAoB;AAC1B,IAAA,KAAK,EAAE,CAAC,YAAD,EAAe,GAAG,YAAY,CAAC,KAA/B,CADmB;AAE1B,oBAAgB,KAAK,CAAC,IAAN,IAAc;AAFJ,GAApB,CAAR;AAID","sourcesContent":["import './divider.sass';\nimport { DEFAULT_THEME_COLOR_MAP, useTheme } from '../../../composables/theme';\nimport { ThemeColorMap } from '../../../types/ThemeColorMap';\nimport { h } from 'vue';\n\nexport interface BDividerProps {\n text?: string;\n tag?: string;\n themeMap?: ThemeColorMap;\n isThemeable?: boolean;\n}\n\nexport default function BHorizontalDivider(props: BDividerProps) {\n const { themeClasses } = useTheme({\n themeMap: props.themeMap ?? DEFAULT_THEME_COLOR_MAP,\n isThemeable: props.isThemeable ?? true\n });\n\n return h(props.tag ?? 'hr', {\n class: ['is-divider', ...themeClasses.value],\n 'data-content': props.text || null\n });\n}\n"],"sourceRoot":"","file":"BHorizontalDivider.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.d.ts b/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.d.ts new file mode 100755 index 0000000..93851f0 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.d.ts @@ -0,0 +1,5 @@ +import './divider.sass'; +import { BDividerProps } from './BHorizontalDivider'; +export default function BVerticalDivider(props: BDividerProps): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.js b/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.js new file mode 100755 index 0000000..f686374 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.js @@ -0,0 +1,16 @@ +import "../../../../src/components/layout/divider/divider.sass"; +import { DEFAULT_THEME_COLOR_MAP, useTheme } from '../../../composables/theme'; +import { h } from 'vue'; +export default function BVerticalDivider(props) { + const { + themeClasses + } = useTheme({ + themeMap: props.themeMap ?? DEFAULT_THEME_COLOR_MAP, + isThemeable: props.isThemeable ?? true + }); + return h(props.tag ?? 'hr', { + class: ['is-divider-vertical', ...themeClasses.value], + 'data-content': props.text || null + }); +} +//# sourceMappingURL=BVerticalDivider.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.js.map b/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.js.map new file mode 100755 index 0000000..e764020 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/BVerticalDivider.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/divider/BVerticalDivider.ts"],"names":[],"mappings":"AAAA,OAAO,wDAAP;AACA,SAAS,uBAAT,EAAkC,QAAlC,QAAkD,4BAAlD;AACA,SAAS,CAAT,QAAkB,KAAlB;AAGA,eAAc,SAAU,gBAAV,CAA2B,KAA3B,EAA+C;AAC3D,QAAM;AAAE,IAAA;AAAF,MAAmB,QAAQ,CAAC;AAChC,IAAA,QAAQ,EAAE,KAAK,CAAC,QAAN,IAAkB,uBADI;AAEhC,IAAA,WAAW,EAAE,KAAK,CAAC,WAAN,IAAqB;AAFF,GAAD,CAAjC;AAIA,SAAO,CAAC,CAAC,KAAK,CAAC,GAAN,IAAa,IAAd,EAAoB;AAC1B,IAAA,KAAK,EAAE,CAAC,qBAAD,EAAwB,GAAG,YAAY,CAAC,KAAxC,CADmB;AAE1B,oBAAgB,KAAK,CAAC,IAAN,IAAc;AAFJ,GAApB,CAAR;AAID","sourcesContent":["import './divider.sass';\nimport { DEFAULT_THEME_COLOR_MAP, useTheme } from '../../../composables/theme';\nimport { h } from 'vue';\nimport { BDividerProps } from './BHorizontalDivider';\n\nexport default function BVerticalDivider(props: BDividerProps) {\n const { themeClasses } = useTheme({\n themeMap: props.themeMap ?? DEFAULT_THEME_COLOR_MAP,\n isThemeable: props.isThemeable ?? true\n });\n return h(props.tag ?? 'hr', {\n class: ['is-divider-vertical', ...themeClasses.value],\n 'data-content': props.text || null\n });\n}\n"],"sourceRoot":"","file":"BVerticalDivider.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/divider/index.d.ts b/node_modules/buetify/lib/components/layout/divider/index.d.ts new file mode 100755 index 0000000..4ee25c5 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/index.d.ts @@ -0,0 +1,3 @@ +import BHorizontalDivider from './BHorizontalDivider'; +import BVerticalDivider from './BVerticalDivider'; +export { BHorizontalDivider, BVerticalDivider }; diff --git a/node_modules/buetify/lib/components/layout/divider/index.js b/node_modules/buetify/lib/components/layout/divider/index.js new file mode 100755 index 0000000..9c2b99f --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/index.js @@ -0,0 +1,4 @@ +import BHorizontalDivider from './BHorizontalDivider'; +import BVerticalDivider from './BVerticalDivider'; +export { BHorizontalDivider, BVerticalDivider }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/divider/index.js.map b/node_modules/buetify/lib/components/layout/divider/index.js.map new file mode 100755 index 0000000..e67b4bd --- /dev/null +++ b/node_modules/buetify/lib/components/layout/divider/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/divider/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAP,MAA+B,sBAA/B;AACA,OAAO,gBAAP,MAA6B,oBAA7B;AAEA,SAAS,kBAAT,EAA6B,gBAA7B","sourcesContent":["import BHorizontalDivider from './BHorizontalDivider';\nimport BVerticalDivider from './BVerticalDivider';\n\nexport { BHorizontalDivider, BVerticalDivider };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/hero/BHero.d.ts b/node_modules/buetify/lib/components/layout/hero/BHero.d.ts new file mode 100755 index 0000000..72aae9f --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/BHero.d.ts @@ -0,0 +1,5 @@ +import './hero.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/hero/BHero.js b/node_modules/buetify/lib/components/layout/hero/BHero.js new file mode 100755 index 0000000..02c4cc7 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/BHero.js @@ -0,0 +1,4 @@ +import "../../../../src/components/layout/hero/hero.sass"; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('hero', 'section'); +//# sourceMappingURL=BHero.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/hero/BHero.js.map b/node_modules/buetify/lib/components/layout/hero/BHero.js.map new file mode 100755 index 0000000..f4834e4 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/BHero.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/hero/BHero.ts"],"names":[],"mappings":"AAAA,OAAO,kDAAP;AACA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,MAAD,EAAS,SAAT,CAA3C","sourcesContent":["import './hero.sass';\nimport { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('hero', 'section');\n"],"sourceRoot":"","file":"BHero.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/hero/BHeroBody.d.ts b/node_modules/buetify/lib/components/layout/hero/BHeroBody.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/BHeroBody.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/hero/BHeroBody.js b/node_modules/buetify/lib/components/layout/hero/BHeroBody.js new file mode 100755 index 0000000..275a5ea --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/BHeroBody.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('hero-body', 'div'); +//# sourceMappingURL=BHeroBody.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/hero/BHeroBody.js.map b/node_modules/buetify/lib/components/layout/hero/BHeroBody.js.map new file mode 100755 index 0000000..a02283e --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/BHeroBody.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/hero/BHeroBody.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,WAAD,EAAc,KAAd,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('hero-body', 'div');\n"],"sourceRoot":"","file":"BHeroBody.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/hero/index.d.ts b/node_modules/buetify/lib/components/layout/hero/index.d.ts new file mode 100755 index 0000000..d98dfd1 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/index.d.ts @@ -0,0 +1,3 @@ +import BHero from './BHero'; +import BHeroBody from './BHeroBody'; +export { BHero, BHeroBody }; diff --git a/node_modules/buetify/lib/components/layout/hero/index.js b/node_modules/buetify/lib/components/layout/hero/index.js new file mode 100755 index 0000000..8fad49e --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/index.js @@ -0,0 +1,4 @@ +import BHero from './BHero'; +import BHeroBody from './BHeroBody'; +export { BHero, BHeroBody }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/hero/index.js.map b/node_modules/buetify/lib/components/layout/hero/index.js.map new file mode 100755 index 0000000..5c58455 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/hero/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/hero/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAP,MAAkB,SAAlB;AACA,OAAO,SAAP,MAAsB,aAAtB;AAEA,SAAS,KAAT,EAAgB,SAAhB","sourcesContent":["import BHero from './BHero';\nimport BHeroBody from './BHeroBody';\n\nexport { BHero, BHeroBody };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/index.d.ts b/node_modules/buetify/lib/components/layout/index.d.ts new file mode 100755 index 0000000..ff1b890 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/index.d.ts @@ -0,0 +1,9 @@ +export * from './box'; +export * from './columns'; +export * from './container'; +export * from './content'; +export * from './divider'; +export * from './hero'; +export * from './level'; +export * from './list'; +export * from './media'; diff --git a/node_modules/buetify/lib/components/layout/index.js b/node_modules/buetify/lib/components/layout/index.js new file mode 100755 index 0000000..a8e41e0 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/index.js @@ -0,0 +1,10 @@ +export * from './box'; +export * from './columns'; +export * from './container'; +export * from './content'; +export * from './divider'; +export * from './hero'; +export * from './level'; +export * from './list'; +export * from './media'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/index.js.map b/node_modules/buetify/lib/components/layout/index.js.map new file mode 100755 index 0000000..1e88c88 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAd;AACA,cAAc,WAAd;AACA,cAAc,aAAd;AACA,cAAc,WAAd;AACA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd","sourcesContent":["export * from './box';\nexport * from './columns';\nexport * from './container';\nexport * from './content';\nexport * from './divider';\nexport * from './hero';\nexport * from './level';\nexport * from './list';\nexport * from './media';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevel.d.ts b/node_modules/buetify/lib/components/layout/level/BLevel.d.ts new file mode 100755 index 0000000..72a5504 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevel.d.ts @@ -0,0 +1,5 @@ +import 'bulma/sass/components/level.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/level/BLevel.js b/node_modules/buetify/lib/components/layout/level/BLevel.js new file mode 100755 index 0000000..0ae0244 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevel.js @@ -0,0 +1,4 @@ +import 'bulma/sass/components/level.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('level', 'div'); +//# sourceMappingURL=BLevel.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevel.js.map b/node_modules/buetify/lib/components/layout/level/BLevel.js.map new file mode 100755 index 0000000..0d306cd --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevel.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/level/BLevel.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAP;AACA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,OAAD,EAAU,KAAV,CAA3C","sourcesContent":["import 'bulma/sass/components/level.sass';\nimport { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('level', 'div');\n"],"sourceRoot":"","file":"BLevel.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevelItem.d.ts b/node_modules/buetify/lib/components/layout/level/BLevelItem.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelItem.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/level/BLevelItem.js b/node_modules/buetify/lib/components/layout/level/BLevelItem.js new file mode 100755 index 0000000..9c5bc04 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelItem.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('level-item', 'div'); +//# sourceMappingURL=BLevelItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevelItem.js.map b/node_modules/buetify/lib/components/layout/level/BLevelItem.js.map new file mode 100755 index 0000000..271665a --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/level/BLevelItem.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,YAAD,EAAe,KAAf,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('level-item', 'div');\n"],"sourceRoot":"","file":"BLevelItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevelLeft.d.ts b/node_modules/buetify/lib/components/layout/level/BLevelLeft.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelLeft.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/level/BLevelLeft.js b/node_modules/buetify/lib/components/layout/level/BLevelLeft.js new file mode 100755 index 0000000..5b585e0 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelLeft.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('level-left', 'div'); +//# sourceMappingURL=BLevelLeft.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevelLeft.js.map b/node_modules/buetify/lib/components/layout/level/BLevelLeft.js.map new file mode 100755 index 0000000..9585a98 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelLeft.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/level/BLevelLeft.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,YAAD,EAAe,KAAf,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('level-left', 'div');\n"],"sourceRoot":"","file":"BLevelLeft.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevelRight.d.ts b/node_modules/buetify/lib/components/layout/level/BLevelRight.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelRight.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/level/BLevelRight.js b/node_modules/buetify/lib/components/layout/level/BLevelRight.js new file mode 100755 index 0000000..4d0652e --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelRight.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('level-right', 'div'); +//# sourceMappingURL=BLevelRight.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/BLevelRight.js.map b/node_modules/buetify/lib/components/layout/level/BLevelRight.js.map new file mode 100755 index 0000000..b905a6b --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/BLevelRight.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/level/BLevelRight.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,aAAD,EAAgB,KAAhB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('level-right', 'div');\n"],"sourceRoot":"","file":"BLevelRight.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/index.d.ts b/node_modules/buetify/lib/components/layout/level/index.d.ts new file mode 100755 index 0000000..1a5f434 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/index.d.ts @@ -0,0 +1,5 @@ +import BLevel from './BLevel'; +import BLevelItem from './BLevelItem'; +import BLevelLeft from './BLevelLeft'; +import BLevelRight from './BLevelRight'; +export { BLevel, BLevelItem, BLevelLeft, BLevelRight }; diff --git a/node_modules/buetify/lib/components/layout/level/index.js b/node_modules/buetify/lib/components/layout/level/index.js new file mode 100755 index 0000000..511570a --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/index.js @@ -0,0 +1,6 @@ +import BLevel from './BLevel'; +import BLevelItem from './BLevelItem'; +import BLevelLeft from './BLevelLeft'; +import BLevelRight from './BLevelRight'; +export { BLevel, BLevelItem, BLevelLeft, BLevelRight }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/level/index.js.map b/node_modules/buetify/lib/components/layout/level/index.js.map new file mode 100755 index 0000000..7096ee2 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/level/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/level/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AACA,OAAO,UAAP,MAAuB,cAAvB;AACA,OAAO,UAAP,MAAuB,cAAvB;AACA,OAAO,WAAP,MAAwB,eAAxB;AAEA,SAAS,MAAT,EAAiB,UAAjB,EAA6B,UAA7B,EAAyC,WAAzC","sourcesContent":["import BLevel from './BLevel';\nimport BLevelItem from './BLevelItem';\nimport BLevelLeft from './BLevelLeft';\nimport BLevelRight from './BLevelRight';\n\nexport { BLevel, BLevelItem, BLevelLeft, BLevelRight };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/list/BList.d.ts b/node_modules/buetify/lib/components/layout/list/BList.d.ts new file mode 100755 index 0000000..2cf7e45 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/list/BList.d.ts @@ -0,0 +1,8 @@ +import { SetupContext, ComponentOptions, FunctionalComponent } from 'vue'; +export interface BListProps { + tag?: string | ComponentOptions | FunctionalComponent; + items: unknown[]; +} +export default function BList(props: BListProps, { slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}> | undefined; diff --git a/node_modules/buetify/lib/components/layout/list/BList.js b/node_modules/buetify/lib/components/layout/list/BList.js new file mode 100755 index 0000000..0cb5970 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/list/BList.js @@ -0,0 +1,19 @@ +import { isEmpty } from 'fp-ts/lib/Array'; +import { h } from 'vue'; +export default function BList(props, { + slots +}) { + if (isEmpty(props.items)) { + return h(props.tag ?? 'div', slots.empty && slots.empty()); + } else { + const length = props.items.length; + const slot = slots.default; + return slot && h(props.tag ?? 'div', props.items.map((item, index) => slot({ + item, + index, + length, + isLast: index === length - 1 + }))); + } +} +//# sourceMappingURL=BList.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/list/BList.js.map b/node_modules/buetify/lib/components/layout/list/BList.js.map new file mode 100755 index 0000000..2fd2b70 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/list/BList.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/list/BList.ts"],"names":[],"mappings":"AAAA,SAAS,OAAT,QAAwB,iBAAxB;AACA,SAAS,CAAT,QAAuE,KAAvE;AAOA,eAAc,SAAU,KAAV,CAAgB,KAAhB,EAAmC;AAAE,EAAA;AAAF,CAAnC,EAA0D;AACtE,MAAI,OAAO,CAAC,KAAK,CAAC,KAAP,CAAX,EAA0B;AACxB,WAAO,CAAC,CAAC,KAAK,CAAC,GAAN,IAAa,KAAd,EAAqB,KAAK,CAAC,KAAN,IAAe,KAAK,CAAC,KAAN,EAApC,CAAR;AACD,GAFD,MAEO;AACL,UAAM,MAAM,GAAG,KAAK,CAAC,KAAN,CAAY,MAA3B;AACA,UAAM,IAAI,GAAG,KAAK,CAAC,OAAnB;AACA,WACE,IAAI,IACJ,CAAC,CACC,KAAK,CAAC,GAAN,IAAa,KADd,EAEC,KAAK,CAAC,KAAN,CAAY,GAAZ,CAAgB,CAAC,IAAD,EAAO,KAAP,KACd,IAAI,CAAC;AACH,MAAA,IADG;AAEH,MAAA,KAFG;AAGH,MAAA,MAHG;AAIH,MAAA,MAAM,EAAE,KAAK,KAAK,MAAM,GAAG;AAJxB,KAAD,CADN,CAFD,CAFH;AAcD;AACF","sourcesContent":["import { isEmpty } from 'fp-ts/lib/Array';\nimport { h, SetupContext, ComponentOptions, FunctionalComponent } from 'vue';\n\nexport interface BListProps {\n tag?: string | ComponentOptions | FunctionalComponent;\n items: unknown[];\n}\n\nexport default function BList(props: BListProps, { slots }: SetupContext) {\n if (isEmpty(props.items)) {\n return h(props.tag ?? 'div', slots.empty && slots.empty());\n } else {\n const length = props.items.length;\n const slot = slots.default;\n return (\n slot &&\n h(\n props.tag ?? 'div',\n props.items.map((item, index) =>\n slot({\n item,\n index,\n length,\n isLast: index === length - 1\n })\n )\n )\n );\n }\n}\n"],"sourceRoot":"","file":"BList.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/list/index.d.ts b/node_modules/buetify/lib/components/layout/list/index.d.ts new file mode 100755 index 0000000..15926e7 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/list/index.d.ts @@ -0,0 +1,3 @@ +import BList from './BList'; +export { BList }; +export default BList; diff --git a/node_modules/buetify/lib/components/layout/list/index.js b/node_modules/buetify/lib/components/layout/list/index.js new file mode 100755 index 0000000..2d98f87 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/list/index.js @@ -0,0 +1,4 @@ +import BList from './BList'; +export { BList }; +export default BList; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/list/index.js.map b/node_modules/buetify/lib/components/layout/list/index.js.map new file mode 100755 index 0000000..09617c6 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/list/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/list/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAP,MAAkB,SAAlB;AAEA,SAAS,KAAT;AAEA,eAAe,KAAf","sourcesContent":["import BList from './BList';\n\nexport { BList };\n\nexport default BList;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMedia.d.ts b/node_modules/buetify/lib/components/layout/media/BMedia.d.ts new file mode 100755 index 0000000..102392f --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMedia.d.ts @@ -0,0 +1,5 @@ +import './media.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/media/BMedia.js b/node_modules/buetify/lib/components/layout/media/BMedia.js new file mode 100755 index 0000000..f10fed6 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMedia.js @@ -0,0 +1,4 @@ +import "../../../../src/components/layout/media/media.sass"; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('media', 'article'); +//# sourceMappingURL=BMedia.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMedia.js.map b/node_modules/buetify/lib/components/layout/media/BMedia.js.map new file mode 100755 index 0000000..b575fd9 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMedia.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/media/BMedia.ts"],"names":[],"mappings":"AAAA,OAAO,oDAAP;AACA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,OAAD,EAAU,SAAV,CAA3C","sourcesContent":["import './media.sass';\nimport { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('media', 'article');\n"],"sourceRoot":"","file":"BMedia.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMediaContent.d.ts b/node_modules/buetify/lib/components/layout/media/BMediaContent.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaContent.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/media/BMediaContent.js b/node_modules/buetify/lib/components/layout/media/BMediaContent.js new file mode 100755 index 0000000..357d4df --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaContent.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('media-content', 'section'); +//# sourceMappingURL=BMediaContent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMediaContent.js.map b/node_modules/buetify/lib/components/layout/media/BMediaContent.js.map new file mode 100755 index 0000000..cb428aa --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaContent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/media/BMediaContent.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,eAAD,EAAkB,SAAlB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('media-content', 'section');\n"],"sourceRoot":"","file":"BMediaContent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMediaLeft.d.ts b/node_modules/buetify/lib/components/layout/media/BMediaLeft.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaLeft.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/media/BMediaLeft.js b/node_modules/buetify/lib/components/layout/media/BMediaLeft.js new file mode 100755 index 0000000..2abd7fc --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaLeft.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('media-left', 'div'); +//# sourceMappingURL=BMediaLeft.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMediaLeft.js.map b/node_modules/buetify/lib/components/layout/media/BMediaLeft.js.map new file mode 100755 index 0000000..0a961de --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaLeft.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/media/BMediaLeft.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,YAAD,EAAe,KAAf,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('media-left', 'div');\n"],"sourceRoot":"","file":"BMediaLeft.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMediaRight.d.ts b/node_modules/buetify/lib/components/layout/media/BMediaRight.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaRight.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/layout/media/BMediaRight.js b/node_modules/buetify/lib/components/layout/media/BMediaRight.js new file mode 100755 index 0000000..936bb59 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaRight.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('media-right', 'div'); +//# sourceMappingURL=BMediaRight.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/BMediaRight.js.map b/node_modules/buetify/lib/components/layout/media/BMediaRight.js.map new file mode 100755 index 0000000..f7c93f9 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/BMediaRight.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/media/BMediaRight.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,6CAA7C;AAEA,eAAe,4BAA4B,CAAC,aAAD,EAAgB,KAAhB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('media-right', 'div');\n"],"sourceRoot":"","file":"BMediaRight.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/index.d.ts b/node_modules/buetify/lib/components/layout/media/index.d.ts new file mode 100755 index 0000000..1ba0475 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/index.d.ts @@ -0,0 +1,5 @@ +import BMedia from './BMedia'; +import BMediaContent from './BMediaContent'; +import BMediaLeft from './BMediaLeft'; +import BMediaRight from './BMediaRight'; +export { BMedia, BMediaContent, BMediaLeft, BMediaRight }; diff --git a/node_modules/buetify/lib/components/layout/media/index.js b/node_modules/buetify/lib/components/layout/media/index.js new file mode 100755 index 0000000..1cacc87 --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/index.js @@ -0,0 +1,6 @@ +import BMedia from './BMedia'; +import BMediaContent from './BMediaContent'; +import BMediaLeft from './BMediaLeft'; +import BMediaRight from './BMediaRight'; +export { BMedia, BMediaContent, BMediaLeft, BMediaRight }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/layout/media/index.js.map b/node_modules/buetify/lib/components/layout/media/index.js.map new file mode 100755 index 0000000..58790fe --- /dev/null +++ b/node_modules/buetify/lib/components/layout/media/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/layout/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AACA,OAAO,aAAP,MAA0B,iBAA1B;AACA,OAAO,UAAP,MAAuB,cAAvB;AACA,OAAO,WAAP,MAAwB,eAAxB;AAEA,SAAS,MAAT,EAAiB,aAAjB,EAAgC,UAAhC,EAA4C,WAA5C","sourcesContent":["import BMedia from './BMedia';\nimport BMediaContent from './BMediaContent';\nimport BMediaLeft from './BMediaLeft';\nimport BMediaRight from './BMediaRight';\n\nexport { BMedia, BMediaContent, BMediaLeft, BMediaRight };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/link/BLink.d.ts b/node_modules/buetify/lib/components/link/BLink.d.ts new file mode 100755 index 0000000..02a90af --- /dev/null +++ b/node_modules/buetify/lib/components/link/BLink.d.ts @@ -0,0 +1,11 @@ +import './link.sass'; +import { FunctionalThemeProps } from '../../composables/theme'; +import { SetupContext } from 'vue'; +export interface BLinkProps extends FunctionalThemeProps { + href?: string; + tag?: string; + isDisabled?: boolean; +} +export default function BLink(props: BLinkProps, { attrs, slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/link/BLink.js b/node_modules/buetify/lib/components/link/BLink.js new file mode 100755 index 0000000..37f2f2a --- /dev/null +++ b/node_modules/buetify/lib/components/link/BLink.js @@ -0,0 +1,22 @@ +import "../../../src/components/link/link.sass"; +import { useTheme } from '../../composables/theme'; +import { h } from 'vue'; +import { LinkThemeMap } from './theme'; +export default function BLink(props, { + attrs, + slots +}) { + const { + themeClasses + } = useTheme({ + isThemeable: props.isThemeable ?? true, + themeMap: props.themeMap ?? LinkThemeMap + }); + return h(props.tag ?? 'a', { + class: ['b-link', ...themeClasses.value, { + 'is-disabled': props.isDisabled + }], + onClick: props.isDisabled ? undefined : attrs.onClick + }, slots.default && slots.default()); +} +//# sourceMappingURL=BLink.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/link/BLink.js.map b/node_modules/buetify/lib/components/link/BLink.js.map new file mode 100755 index 0000000..049f298 --- /dev/null +++ b/node_modules/buetify/lib/components/link/BLink.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/link/BLink.ts"],"names":[],"mappings":"AAAA,OAAO,wCAAP;AACA,SAA+B,QAA/B,QAA+C,yBAA/C;AACA,SAAS,CAAT,QAAgC,KAAhC;AACA,SAAS,YAAT,QAA6B,SAA7B;AAQA,eAAc,SAAU,KAAV,CAAgB,KAAhB,EAAmC;AAAE,EAAA,KAAF;AAAS,EAAA;AAAT,CAAnC,EAAiE;AAC7E,QAAM;AAAE,IAAA;AAAF,MAAmB,QAAQ,CAAC;AAChC,IAAA,WAAW,EAAE,KAAK,CAAC,WAAN,IAAqB,IADF;AAEhC,IAAA,QAAQ,EAAE,KAAK,CAAC,QAAN,IAAkB;AAFI,GAAD,CAAjC;AAIA,SAAO,CAAC,CACN,KAAK,CAAC,GAAN,IAAa,GADP,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,QAAD,EAAW,GAAG,YAAY,CAAC,KAA3B,EAAkC;AAAE,qBAAe,KAAK,CAAC;AAAvB,KAAlC,CADT;AAEE,IAAA,OAAO,EAAE,KAAK,CAAC,UAAN,GAAmB,SAAnB,GAA+B,KAAK,CAAC;AAFhD,GAFM,EAMN,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EANX,CAAR;AAQD","sourcesContent":["import './link.sass';\nimport { FunctionalThemeProps, useTheme } from '../../composables/theme';\nimport { h, SetupContext } from 'vue';\nimport { LinkThemeMap } from './theme';\n\nexport interface BLinkProps extends FunctionalThemeProps {\n href?: string;\n tag?: string;\n isDisabled?: boolean;\n}\n\nexport default function BLink(props: BLinkProps, { attrs, slots }: SetupContext) {\n const { themeClasses } = useTheme({\n isThemeable: props.isThemeable ?? true,\n themeMap: props.themeMap ?? LinkThemeMap\n });\n return h(\n props.tag ?? 'a',\n {\n class: ['b-link', ...themeClasses.value, { 'is-disabled': props.isDisabled }],\n onClick: props.isDisabled ? undefined : attrs.onClick\n },\n slots.default && slots.default()\n );\n}\n"],"sourceRoot":"","file":"BLink.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/link/index.d.ts b/node_modules/buetify/lib/components/link/index.d.ts new file mode 100755 index 0000000..f9d07b2 --- /dev/null +++ b/node_modules/buetify/lib/components/link/index.d.ts @@ -0,0 +1,4 @@ +import BLink from './BLink'; +import { LinkThemeMap } from './theme'; +export { BLink, LinkThemeMap }; +export default BLink; diff --git a/node_modules/buetify/lib/components/link/index.js b/node_modules/buetify/lib/components/link/index.js new file mode 100755 index 0000000..3be8c08 --- /dev/null +++ b/node_modules/buetify/lib/components/link/index.js @@ -0,0 +1,5 @@ +import BLink from './BLink'; +import { LinkThemeMap } from './theme'; +export { BLink, LinkThemeMap }; +export default BLink; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/link/index.js.map b/node_modules/buetify/lib/components/link/index.js.map new file mode 100755 index 0000000..17fa368 --- /dev/null +++ b/node_modules/buetify/lib/components/link/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/link/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAP,MAAkB,SAAlB;AACA,SAAS,YAAT,QAA6B,SAA7B;AAEA,SAAS,KAAT,EAAgB,YAAhB;AAEA,eAAe,KAAf","sourcesContent":["import BLink from './BLink';\nimport { LinkThemeMap } from './theme';\n\nexport { BLink, LinkThemeMap };\n\nexport default BLink;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/link/theme.d.ts b/node_modules/buetify/lib/components/link/theme.d.ts new file mode 100755 index 0000000..9fcd544 --- /dev/null +++ b/node_modules/buetify/lib/components/link/theme.d.ts @@ -0,0 +1,2 @@ +import { ThemeColorMap } from '../../types/ThemeColorMap'; +export declare const LinkThemeMap: ThemeColorMap; diff --git a/node_modules/buetify/lib/components/link/theme.js b/node_modules/buetify/lib/components/link/theme.js new file mode 100755 index 0000000..641fee9 --- /dev/null +++ b/node_modules/buetify/lib/components/link/theme.js @@ -0,0 +1,6 @@ +import { shallowReactive } from 'vue'; +export const LinkThemeMap = shallowReactive({ + dark: 'is-warning', + light: 'is-link' +}); +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/link/theme.js.map b/node_modules/buetify/lib/components/link/theme.js.map new file mode 100755 index 0000000..14c49fc --- /dev/null +++ b/node_modules/buetify/lib/components/link/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/link/theme.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AAGA,OAAO,MAAM,YAAY,GAAkB,eAAe,CAAC;AACzD,EAAA,IAAI,EAAE,YADmD;AAEzD,EAAA,KAAK,EAAE;AAFkD,CAAD,CAAnD","sourcesContent":["import { shallowReactive } from 'vue';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\n\nexport const LinkThemeMap: ThemeColorMap = shallowReactive({\n dark: 'is-warning',\n light: 'is-link'\n});\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/loading/BLoading.d.ts b/node_modules/buetify/lib/components/loading/BLoading.d.ts new file mode 100755 index 0000000..4adf3d2 --- /dev/null +++ b/node_modules/buetify/lib/components/loading/BLoading.d.ts @@ -0,0 +1,93 @@ +import './loading.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { VNode, ExtractPropTypes } from 'vue'; +export declare const BLoadingPropsDefinition: { + isFullscreen: { + type: BooleanConstructor; + default: boolean; + }; + canCancel: { + type: BooleanConstructor; + default: boolean; + }; + onToggle: { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + isActive: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + transition: { + type: import("vue").PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; +}; +export declare type BLoadingProps = ExtractPropTypes<typeof BLoadingPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + isFullscreen: { + type: BooleanConstructor; + default: boolean; + }; + canCancel: { + type: BooleanConstructor; + default: boolean; + }; + onToggle: { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + isActive: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + transition: { + type: import("vue").PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}> | VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + transition: import("../..").Transition; + isActive: boolean; + isFullscreen: boolean; + canCancel: boolean; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: IO<void> | undefined; + onSetOff?: IO<void> | undefined; +}>, { + hasPopup: boolean; + transition: import("../..").Transition; + isActive: boolean; + isFullscreen: boolean; + canCancel: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/loading/BLoading.js b/node_modules/buetify/lib/components/loading/BLoading.js new file mode 100755 index 0000000..1e9c8f3 --- /dev/null +++ b/node_modules/buetify/lib/components/loading/BLoading.js @@ -0,0 +1,86 @@ +import "../../../src/components/loading/loading.sass"; +import { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController'; +import { isEscEvent } from '../../utils/eventHelpers'; +import { h, defineComponent, shallowRef, Transition, onUnmounted, toRef, toRefs, reactive, computed, watchEffect } from 'vue'; +import { constEmptyArray } from '../../utils/helpers'; +export const BLoadingPropsDefinition = { ...UsePopupControllerPropsDefinition, + isFullscreen: { + type: Boolean, + default: false + }, + canCancel: { + type: Boolean, + default: false + } +}; + +function getGenerateModal(onClick, slots, isFullscreen) { + return () => [h('div', { + class: ['b-loading-overlay is-active', { + 'is-fullscreen': isFullscreen.value + }] + }, [h('div', { + class: 'loading-background', + onClick + }), slots.default ? slots.default({ + close: onClick + }) : h('div', { + class: 'loading-icon' + })])]; +} + +export default defineComponent({ + name: 'b-loading', + props: BLoadingPropsDefinition, + + setup(props, { + slots + }) { + const isFullscreen = toRef(props, 'isFullscreen'); + const isActive = computed(() => props.isFullscreen && props.isActive); + const render = shallowRef(constEmptyArray); + const popup = usePopupController(reactive({ ...toRefs(props), + isActive + }), render); + + function onClick() { + if (props.canCancel && props.isFullscreen ? popup.isOpen.value : props.isActive) { + popup.close(); + } + } + + render.value = getGenerateModal(onClick, slots, isFullscreen); + + function onKeyup(e) { + if (isEscEvent(e)) { + onClick(); + } + } + + watchEffect(() => { + if (window === undefined) return; + + if (popup.isOpen.value && props.canCancel) { + document.addEventListener('keyup', onKeyup); + } else { + document.removeEventListener('keyup', onKeyup); + } + }); + onUnmounted(() => { + window && window.removeEventListener('keyup', onKeyup); + }); + return () => { + if (slots.trigger && props.isFullscreen) { + return slots.trigger(popup); + } else if (props.isFullscreen) { + return undefined; + } else { + return h(Transition, { + name: props.transition + }, () => props.isActive ? render.value() : undefined); + } + }; + } + +}); +//# sourceMappingURL=BLoading.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/loading/BLoading.js.map b/node_modules/buetify/lib/components/loading/BLoading.js.map new file mode 100755 index 0000000..0784961 --- /dev/null +++ b/node_modules/buetify/lib/components/loading/BLoading.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/loading/BLoading.ts"],"names":[],"mappings":"AAAA,OAAO,8CAAP;AAEA,SAAS,kBAAT,EAA6B,iCAA7B,QAAsE,mCAAtE;AACA,SAAS,UAAT,QAA2B,0BAA3B;AACA,SAEE,CAFF,EAGE,eAHF,EAKE,UALF,EAME,UANF,EAOE,WAPF,EAUE,KAVF,EAWE,MAXF,EAYE,QAZF,EAaE,QAbF,EAcE,WAdF,QAgBO,KAhBP;AAiBA,SAAS,eAAT,QAAgC,qBAAhC;AAEA,OAAO,MAAM,uBAAuB,GAAG,EACrC,GAAG,iCADkC;AAErC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAFuB;AAMrC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA;AAN0B,CAAhC;;AAcP,SAAS,gBAAT,CAA0B,OAA1B,EAA6C,KAA7C,EAA2D,YAA3D,EAAqF;AACnF,SAAO,MAAM,CACX,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE,CAAC,6BAAD,EAAgC;AAAE,uBAAiB,YAAY,CAAC;AAAhC,KAAhC;AAAT,GAAR,EAA6F,CAC5F,CAAC,CAAC,KAAD,EAAQ;AACP,IAAA,KAAK,EAAE,oBADA;AAEP,IAAA;AAFO,GAAR,CAD2F,EAK5F,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,CAAc;AAAE,IAAA,KAAK,EAAE;AAAT,GAAd,CAAhB,GAAoD,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,CALuC,CAA7F,CADU,CAAb;AASD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,WADuB;AAE7B,EAAA,KAAK,EAAE,uBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,YAAY,GAAG,KAAK,CAAC,KAAD,EAAQ,cAAR,CAA1B;AACA,UAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,YAAN,IAAsB,KAAK,CAAC,QAAnC,CAAzB;AACA,UAAM,MAAM,GAAG,UAAU,CAAC,eAAD,CAAzB;AACA,UAAM,KAAK,GAAG,kBAAkB,CAC9B,QAAQ,CAAC,EACP,GAAG,MAAM,CAAC,KAAD,CADF;AAEP,MAAA;AAFO,KAAD,CADsB,EAK9B,MAL8B,CAAhC;;AAQA,aAAS,OAAT,GAAgB;AACd,UAAI,KAAK,CAAC,SAAN,IAAmB,KAAK,CAAC,YAAzB,GAAwC,KAAK,CAAC,MAAN,CAAa,KAArD,GAA6D,KAAK,CAAC,QAAvE,EAAiF;AAC/E,QAAA,KAAK,CAAC,KAAN;AACD;AACF;;AAED,IAAA,MAAM,CAAC,KAAP,GAAe,gBAAgB,CAAC,OAAD,EAAU,KAAV,EAAiB,YAAjB,CAA/B;;AAEA,aAAS,OAAT,CAAiB,CAAjB,EAAiC;AAC/B,UAAI,UAAU,CAAC,CAAD,CAAd,EAAmB;AACjB,QAAA,OAAO;AACR;AACF;;AAED,IAAA,WAAW,CAAC,MAAK;AACf,UAAI,MAAM,KAAK,SAAf,EAA0B;;AAC1B,UAAI,KAAK,CAAC,MAAN,CAAa,KAAb,IAAsB,KAAK,CAAC,SAAhC,EAA2C;AACzC,QAAA,QAAQ,CAAC,gBAAT,CAA0B,OAA1B,EAAmC,OAAnC;AACD,OAFD,MAEO;AACL,QAAA,QAAQ,CAAC,mBAAT,CAA6B,OAA7B,EAAsC,OAAtC;AACD;AACF,KAPU,CAAX;AASA,IAAA,WAAW,CAAC,MAAK;AACf,MAAA,MAAM,IAAI,MAAM,CAAC,mBAAP,CAA2B,OAA3B,EAAoC,OAApC,CAAV;AACD,KAFU,CAAX;AAIA,WAAO,MAAK;AACV,UAAI,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,YAA3B,EAAyC;AACvC,eAAO,KAAK,CAAC,OAAN,CAAc,KAAd,CAAP;AACD,OAFD,MAEO,IAAI,KAAK,CAAC,YAAV,EAAwB;AAC7B,eAAO,SAAP;AACD,OAFM,MAEA;AACL,eAAO,CAAC,CAAC,UAAD,EAAa;AAAE,UAAA,IAAI,EAAE,KAAK,CAAC;AAAd,SAAb,EAA4D,MAClE,KAAK,CAAC,QAAN,GAAiB,MAAM,CAAC,KAAP,EAAjB,GAAkC,SAD5B,CAAR;AAGD;AACF,KAVD;AAWD;;AArD4B,CAAD,CAA9B","sourcesContent":["import './loading.sass';\nimport { IO } from 'fp-ts/lib/IO';\nimport { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController';\nimport { isEscEvent } from '../../utils/eventHelpers';\nimport {\n VNode,\n h,\n defineComponent,\n ExtractPropTypes,\n shallowRef,\n Transition,\n onUnmounted,\n Slots,\n Ref,\n toRef,\n toRefs,\n reactive,\n computed,\n watchEffect,\n TransitionProps\n} from 'vue';\nimport { constEmptyArray } from '../../utils/helpers';\n\nexport const BLoadingPropsDefinition = {\n ...UsePopupControllerPropsDefinition,\n isFullscreen: {\n type: Boolean,\n default: false\n },\n canCancel: {\n type: Boolean,\n default: false\n }\n};\n\nexport type BLoadingProps = ExtractPropTypes<typeof BLoadingPropsDefinition>;\n\nfunction getGenerateModal(onClick: IO<void>, slots: Slots, isFullscreen: Ref<boolean>) {\n return () => [\n h('div', { class: ['b-loading-overlay is-active', { 'is-fullscreen': isFullscreen.value }] }, [\n h('div', {\n class: 'loading-background',\n onClick\n }),\n slots.default ? slots.default({ close: onClick }) : h('div', { class: 'loading-icon' })\n ])\n ];\n}\n\nexport default defineComponent({\n name: 'b-loading',\n props: BLoadingPropsDefinition,\n setup(props, { slots }) {\n const isFullscreen = toRef(props, 'isFullscreen');\n const isActive = computed(() => props.isFullscreen && props.isActive);\n const render = shallowRef(constEmptyArray as IO<VNode[]>);\n const popup = usePopupController(\n reactive({\n ...toRefs(props),\n isActive\n }),\n render\n );\n\n function onClick() {\n if (props.canCancel && props.isFullscreen ? popup.isOpen.value : props.isActive) {\n popup.close();\n }\n }\n\n render.value = getGenerateModal(onClick, slots, isFullscreen);\n\n function onKeyup(e: KeyboardEvent) {\n if (isEscEvent(e)) {\n onClick();\n }\n }\n\n watchEffect(() => {\n if (window === undefined) return;\n if (popup.isOpen.value && props.canCancel) {\n document.addEventListener('keyup', onKeyup);\n } else {\n document.removeEventListener('keyup', onKeyup);\n }\n });\n\n onUnmounted(() => {\n window && window.removeEventListener('keyup', onKeyup);\n });\n\n return () => {\n if (slots.trigger && props.isFullscreen) {\n return slots.trigger(popup);\n } else if (props.isFullscreen) {\n return undefined;\n } else {\n return h(Transition, { name: props.transition } as TransitionProps, () =>\n props.isActive ? render.value() : undefined\n );\n }\n };\n }\n});\n"],"sourceRoot":"","file":"BLoading.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/loading/index.d.ts b/node_modules/buetify/lib/components/loading/index.d.ts new file mode 100755 index 0000000..5c34f25 --- /dev/null +++ b/node_modules/buetify/lib/components/loading/index.d.ts @@ -0,0 +1,3 @@ +import BLoading from './BLoading'; +export { BLoading }; +export default BLoading; diff --git a/node_modules/buetify/lib/components/loading/index.js b/node_modules/buetify/lib/components/loading/index.js new file mode 100755 index 0000000..6bec4a1 --- /dev/null +++ b/node_modules/buetify/lib/components/loading/index.js @@ -0,0 +1,4 @@ +import BLoading from './BLoading'; +export { BLoading }; +export default BLoading; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/loading/index.js.map b/node_modules/buetify/lib/components/loading/index.js.map new file mode 100755 index 0000000..9d01683 --- /dev/null +++ b/node_modules/buetify/lib/components/loading/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/loading/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,QAAT;AAEA,eAAe,QAAf","sourcesContent":["import BLoading from './BLoading';\n\nexport { BLoading };\n\nexport default BLoading;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenu.d.ts b/node_modules/buetify/lib/components/menu/BMenu.d.ts new file mode 100755 index 0000000..7ce9871 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenu.d.ts @@ -0,0 +1,29 @@ +import '../../sass/helpers/flex-helpers.sass'; +import './menu.sass'; +declare const _default: import("vue").DefineComponent<{ + tag: { + type: (FunctionConstructor | StringConstructor)[]; + default: string; + }; + themeMap: { + type: import("vue").PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string | Function; +} & {}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string | Function; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/menu/BMenu.js b/node_modules/buetify/lib/components/menu/BMenu.js new file mode 100755 index 0000000..bb17028 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenu.js @@ -0,0 +1,10 @@ +import "../../../src/sass/helpers/flex-helpers.sass"; +import "../../../src/components/menu/menu.sass"; +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; +import { MenuThemeMap } from './theme'; +export default getThemeableFunctionalComponent({ + cls: 'menu', + el: 'aside', + themeMap: MenuThemeMap +}); +//# sourceMappingURL=BMenu.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenu.js.map b/node_modules/buetify/lib/components/menu/BMenu.js.map new file mode 100755 index 0000000..9294d8e --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenu.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/BMenu.ts"],"names":[],"mappings":"AAAA,OAAO,6CAAP;AACA,OAAO,wCAAP;AACA,SAAS,+BAAT,QAAgD,6CAAhD;AACA,SAAS,YAAT,QAA6B,SAA7B;AAEA,eAAe,+BAA+B,CAAC;AAAE,EAAA,GAAG,EAAE,MAAP;AAAe,EAAA,EAAE,EAAE,OAAnB;AAA4B,EAAA,QAAQ,EAAE;AAAtC,CAAD,CAA9C","sourcesContent":["import '../../sass/helpers/flex-helpers.sass';\nimport './menu.sass';\nimport { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent';\nimport { MenuThemeMap } from './theme';\n\nexport default getThemeableFunctionalComponent({ cls: 'menu', el: 'aside', themeMap: MenuThemeMap });\n"],"sourceRoot":"","file":"BMenu.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuGroup.d.ts b/node_modules/buetify/lib/components/menu/BMenuGroup.d.ts new file mode 100755 index 0000000..91e887c --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuGroup.d.ts @@ -0,0 +1,55 @@ +import { Classes } from '../../utils/mergeClasses'; +import { PropType } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + isExpandable: { + type: BooleanConstructor; + default: boolean; + }; + menuLabelClass: { + type: PropType<Classes>; + default: string; + }; + menuListClass: { + type: PropType<Classes>; + default: string; + }; + onToggle: { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + isExpanded: boolean; + isExpandable: boolean; + menuLabelClass: Classes; + menuListClass: Classes; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: import("fp-ts/lib/IO").IO<void> | undefined; + onSetOff?: import("fp-ts/lib/IO").IO<void> | undefined; +}>, { + hasPopup: boolean; + isExpanded: boolean; + isExpandable: boolean; + menuLabelClass: Classes; + menuListClass: Classes; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/menu/BMenuGroup.js b/node_modules/buetify/lib/components/menu/BMenuGroup.js new file mode 100755 index 0000000..8074e83 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuGroup.js @@ -0,0 +1,46 @@ +import { getUseTogglePropsDefinition, useToggle } from '../../composables/toggle'; +import VerticalExpandTransition from '../../transitions/verticalExpandTransition'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; +import BMenuList from './BMenuList'; +import { withDirectives, vShow, defineComponent, h } from 'vue'; +export default defineComponent({ + name: 'b-menu-group', + props: { ...getUseTogglePropsDefinition('isExpanded'), + isExpandable: { + type: Boolean, + default: false + }, + menuLabelClass: { + type: [String, Object, Array], + default: '' + }, + menuListClass: { + type: [String, Object, Array], + default: '' + } + }, + + setup(props, { + slots + }) { + const toggle = useToggle(props, 'isExpanded'); + return () => h('section', { + class: 'is-fullwidth' + }, [props.isExpandable ? h('button', { + class: ['menu-label is-flex flex-direction-row justify-content-space-between align-items-center is-fullwidth', props.menuLabelClass], + ...toggle.listeners, + ...toggle.attrs.value + }, [slots['menu-label'] && slots['menu-label'](), h(VerticalExpansionIcon, { + isExpanded: toggle.isOn.value + })]) : h('div', { + class: ['menu-label', props.menuLabelClass] + }, slots['menu-label'] && slots['menu-label']()), props.isExpandable ? h(VerticalExpandTransition, undefined, () => [withDirectives(h(BMenuList, { + class: [props.menuListClass, 'expand-vertical-transition'], + 'aria-hidden': toggle.isOff.value + }, slots.default), [[vShow, toggle.isOn.value]])]) : h(BMenuList, { + class: props.menuListClass + }, slots.default)]); + } + +}); +//# sourceMappingURL=BMenuGroup.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuGroup.js.map b/node_modules/buetify/lib/components/menu/BMenuGroup.js.map new file mode 100755 index 0000000..8cfa36f --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuGroup.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/BMenuGroup.ts"],"names":[],"mappings":"AAAA,SAAS,2BAAT,EAAsC,SAAtC,QAAuD,0BAAvD;AACA,OAAO,wBAAP,MAAqC,4CAArC;AAEA,OAAO,qBAAP,MAAkC,kDAAlC;AACA,OAAO,SAAP,MAAsB,aAAtB;AACA,SAAS,cAAT,EAAyB,KAAzB,EAAgC,eAAhC,EAAiD,CAAjD,QAAoE,KAApE;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,cADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,2BAA2B,CAAC,YAAD,CADzB;AAEL,IAAA,YAAY,EAAE;AACZ,MAAA,IAAI,EAAE,OADM;AAEZ,MAAA,OAAO,EAAE;AAFG,KAFT;AAML,IAAA,cAAc,EAAE;AACd,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,EAAiB,KAAjB,CADQ;AAEd,MAAA,OAAO,EAAE;AAFK,KANX;AAUL,IAAA,aAAa,EAAE;AACb,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,EAAiB,KAAjB,CADO;AAEb,MAAA,OAAO,EAAE;AAFI;AAVV,GAFsB;;AAiB7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,MAAM,GAAG,SAAS,CAAC,KAAD,EAAQ,YAAR,CAAxB;AACA,WAAO,MACL,CAAC,CAAC,SAAD,EAAY;AAAE,MAAA,KAAK,EAAE;AAAT,KAAZ,EAAuC,CACtC,KAAK,CAAC,YAAN,GACI,CAAC,CACC,QADD,EAEC;AACE,MAAA,KAAK,EAAE,CACL,qGADK,EAEL,KAAK,CAAC,cAFD,CADT;AAKE,SAAG,MAAM,CAAC,SALZ;AAME,SAAG,MAAM,CAAC,KAAP,CAAa;AANlB,KAFD,EAUC,CACE,KAAK,CAAC,YAAD,CAAL,IAAuB,KAAK,CAAC,YAAD,CAAL,EADzB,EAEE,CAAC,CAAC,qBAAD,EAAwB;AACvB,MAAA,UAAU,EAAE,MAAM,CAAC,IAAP,CAAY;AADD,KAAxB,CAFH,CAVD,CADL,GAkBI,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE,CAAC,YAAD,EAAe,KAAK,CAAC,cAArB;AAAT,KAAR,EAAyD,KAAK,CAAC,YAAD,CAAL,IAAuB,KAAK,CAAC,YAAD,CAAL,EAAhF,CAnBiC,EAoBtC,KAAK,CAAC,YAAN,GACI,CAAC,CAAC,wBAAD,EAA2B,SAA3B,EAAsC,MAAM,CAC3C,cAAc,CACZ,CAAC,CACC,SADD,EAEC;AACE,MAAA,KAAK,EAAE,CAAC,KAAK,CAAC,aAAP,EAAsB,4BAAtB,CADT;AAEE,qBAAe,MAAM,CAAC,KAAP,CAAa;AAF9B,KAFD,EAMC,KAAK,CAAC,OANP,CADW,EASZ,CAAC,CAAC,KAAD,EAAQ,MAAM,CAAC,IAAP,CAAY,KAApB,CAAD,CATY,CAD6B,CAA5C,CADL,GAcI,CAAC,CACC,SADD,EAEC;AACE,MAAA,KAAK,EAAE,KAAK,CAAC;AADf,KAFD,EAKC,KAAK,CAAC,OALP,CAlCiC,CAAvC,CADH;AA2CD;;AA9D4B,CAAD,CAA9B","sourcesContent":["import { getUseTogglePropsDefinition, useToggle } from '../../composables/toggle';\nimport VerticalExpandTransition from '../../transitions/verticalExpandTransition';\nimport { Classes } from '../../utils/mergeClasses';\nimport VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon';\nimport BMenuList from './BMenuList';\nimport { withDirectives, vShow, defineComponent, h, PropType } from 'vue';\n\nexport default defineComponent({\n name: 'b-menu-group',\n props: {\n ...getUseTogglePropsDefinition('isExpanded'),\n isExpandable: {\n type: Boolean,\n default: false\n },\n menuLabelClass: {\n type: [String, Object, Array] as PropType<Classes>,\n default: ''\n },\n menuListClass: {\n type: [String, Object, Array] as PropType<Classes>,\n default: ''\n }\n },\n setup(props, { slots }) {\n const toggle = useToggle(props, 'isExpanded');\n return () =>\n h('section', { class: 'is-fullwidth' }, [\n props.isExpandable\n ? h(\n 'button',\n {\n class: [\n 'menu-label is-flex flex-direction-row justify-content-space-between align-items-center is-fullwidth',\n props.menuLabelClass\n ],\n ...toggle.listeners,\n ...toggle.attrs.value\n },\n [\n slots['menu-label'] && slots['menu-label'](),\n h(VerticalExpansionIcon, {\n isExpanded: toggle.isOn.value\n })\n ]\n )\n : h('div', { class: ['menu-label', props.menuLabelClass] }, slots['menu-label'] && slots['menu-label']()),\n props.isExpandable\n ? h(VerticalExpandTransition, undefined, () => [\n withDirectives(\n h(\n BMenuList,\n {\n class: [props.menuListClass, 'expand-vertical-transition'],\n 'aria-hidden': toggle.isOff.value\n },\n slots.default\n ),\n [[vShow, toggle.isOn.value]]\n )\n ])\n : h(\n BMenuList,\n {\n class: props.menuListClass\n },\n slots.default\n )\n ]);\n }\n});\n"],"sourceRoot":"","file":"BMenuGroup.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuLabel.d.ts b/node_modules/buetify/lib/components/menu/BMenuLabel.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuLabel.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/menu/BMenuLabel.js b/node_modules/buetify/lib/components/menu/BMenuLabel.js new file mode 100755 index 0000000..6a89647 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuLabel.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('menu-label', 'p'); +//# sourceMappingURL=BMenuLabel.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuLabel.js.map b/node_modules/buetify/lib/components/menu/BMenuLabel.js.map new file mode 100755 index 0000000..2cdfe9b --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuLabel.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/BMenuLabel.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,YAAD,EAAe,GAAf,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('menu-label', 'p');\n"],"sourceRoot":"","file":"BMenuLabel.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuList.d.ts b/node_modules/buetify/lib/components/menu/BMenuList.d.ts new file mode 100755 index 0000000..09cd5f7 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuList.d.ts @@ -0,0 +1,27 @@ +declare const _default: import("vue").DefineComponent<{ + tag: { + type: (FunctionConstructor | StringConstructor)[]; + default: string; + }; + themeMap: { + type: import("vue").PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string | Function; +} & {}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string | Function; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/menu/BMenuList.js b/node_modules/buetify/lib/components/menu/BMenuList.js new file mode 100755 index 0000000..b4c94c1 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuList.js @@ -0,0 +1,6 @@ +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; +export default getThemeableFunctionalComponent({ + cls: 'menu-list', + el: 'ul' +}); +//# sourceMappingURL=BMenuList.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuList.js.map b/node_modules/buetify/lib/components/menu/BMenuList.js.map new file mode 100755 index 0000000..cddc1db --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuList.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/BMenuList.ts"],"names":[],"mappings":"AAAA,SAAS,+BAAT,QAAgD,6CAAhD;AAEA,eAAe,+BAA+B,CAAC;AAAE,EAAA,GAAG,EAAE,WAAP;AAAoB,EAAA,EAAE,EAAE;AAAxB,CAAD,CAA9C","sourcesContent":["import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent';\n\nexport default getThemeableFunctionalComponent({ cls: 'menu-list', el: 'ul' });\n"],"sourceRoot":"","file":"BMenuList.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuListItem.d.ts b/node_modules/buetify/lib/components/menu/BMenuListItem.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuListItem.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/menu/BMenuListItem.js b/node_modules/buetify/lib/components/menu/BMenuListItem.js new file mode 100755 index 0000000..ba4680f --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuListItem.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('menu-list-item', 'li'); +//# sourceMappingURL=BMenuListItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/BMenuListItem.js.map b/node_modules/buetify/lib/components/menu/BMenuListItem.js.map new file mode 100755 index 0000000..ca10fa2 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/BMenuListItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/BMenuListItem.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,gBAAD,EAAmB,IAAnB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('menu-list-item', 'li');\n"],"sourceRoot":"","file":"BMenuListItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/index.d.ts b/node_modules/buetify/lib/components/menu/index.d.ts new file mode 100755 index 0000000..2a59be0 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/index.d.ts @@ -0,0 +1,7 @@ +import BMenu from './BMenu'; +import BMenuGroup from './BMenuGroup'; +import BMenuLabel from './BMenuLabel'; +import BMenuList from './BMenuList'; +import BMenuListItem from './BMenuListItem'; +import { MenuThemeMap } from './theme'; +export { BMenu, BMenuGroup, BMenuLabel, BMenuList, BMenuListItem, MenuThemeMap }; diff --git a/node_modules/buetify/lib/components/menu/index.js b/node_modules/buetify/lib/components/menu/index.js new file mode 100755 index 0000000..314b8ac --- /dev/null +++ b/node_modules/buetify/lib/components/menu/index.js @@ -0,0 +1,8 @@ +import BMenu from './BMenu'; +import BMenuGroup from './BMenuGroup'; +import BMenuLabel from './BMenuLabel'; +import BMenuList from './BMenuList'; +import BMenuListItem from './BMenuListItem'; +import { MenuThemeMap } from './theme'; +export { BMenu, BMenuGroup, BMenuLabel, BMenuList, BMenuListItem, MenuThemeMap }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/index.js.map b/node_modules/buetify/lib/components/menu/index.js.map new file mode 100755 index 0000000..22373f9 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAP,MAAkB,SAAlB;AACA,OAAO,UAAP,MAAuB,cAAvB;AACA,OAAO,UAAP,MAAuB,cAAvB;AACA,OAAO,SAAP,MAAsB,aAAtB;AACA,OAAO,aAAP,MAA0B,iBAA1B;AACA,SAAS,YAAT,QAA6B,SAA7B;AAEA,SAAS,KAAT,EAAgB,UAAhB,EAA4B,UAA5B,EAAwC,SAAxC,EAAmD,aAAnD,EAAkE,YAAlE","sourcesContent":["import BMenu from './BMenu';\nimport BMenuGroup from './BMenuGroup';\nimport BMenuLabel from './BMenuLabel';\nimport BMenuList from './BMenuList';\nimport BMenuListItem from './BMenuListItem';\nimport { MenuThemeMap } from './theme';\n\nexport { BMenu, BMenuGroup, BMenuLabel, BMenuList, BMenuListItem, MenuThemeMap };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/theme.d.ts b/node_modules/buetify/lib/components/menu/theme.d.ts new file mode 100755 index 0000000..bb2ad44 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/theme.d.ts @@ -0,0 +1,2 @@ +import { ThemeColorMap } from '../../types/ThemeColorMap'; +export declare const MenuThemeMap: ThemeColorMap; diff --git a/node_modules/buetify/lib/components/menu/theme.js b/node_modules/buetify/lib/components/menu/theme.js new file mode 100755 index 0000000..898221a --- /dev/null +++ b/node_modules/buetify/lib/components/menu/theme.js @@ -0,0 +1,6 @@ +import { shallowReactive } from 'vue'; +export const MenuThemeMap = shallowReactive({ + dark: 'is-black-bis', + light: 'is-grey-darker' +}); +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/menu/theme.js.map b/node_modules/buetify/lib/components/menu/theme.js.map new file mode 100755 index 0000000..78ae1f6 --- /dev/null +++ b/node_modules/buetify/lib/components/menu/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/menu/theme.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AAGA,OAAO,MAAM,YAAY,GAAkB,eAAe,CAAC;AACzD,EAAA,IAAI,EAAE,cADmD;AAEzD,EAAA,KAAK,EAAE;AAFkD,CAAD,CAAnD","sourcesContent":["import { shallowReactive } from 'vue';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\n\nexport const MenuThemeMap: ThemeColorMap = shallowReactive({\n dark: 'is-black-bis',\n light: 'is-grey-darker'\n});\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/message/BMessage.d.ts b/node_modules/buetify/lib/components/message/BMessage.d.ts new file mode 100755 index 0000000..99b2ff6 --- /dev/null +++ b/node_modules/buetify/lib/components/message/BMessage.d.ts @@ -0,0 +1,106 @@ +import 'bulma/sass/components/message.sass'; +import 'bulma/sass/elements/notification.sass'; +import '../../sass/helpers/animations.sass'; +import './message.sass'; +import { VNode } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + transition: { + type: import("vue").PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; + title: { + type: import("vue").PropType<string>; + }; + isClosable: { + type: BooleanConstructor; + default: boolean; + }; + message: { + type: import("vue").PropType<string>; + }; + variant: { + type: import("vue").PropType<import("../..").AllColorsVariant>; + default: ""; + }; + size: { + type: import("vue").PropType<import("../..").SizeVariant>; + default: ""; + }; + iconSize: { + type: import("vue").PropType<import("../..").SizeVariant>; + default: ""; + }; + useAutoClose: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + duration: { + type: import("vue").PropType<number>; + default: number; + }; + useIcon: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + icons: { + type: import("vue").PropType<Partial<import("../../composables/message").MessageIcons>>; + default: import("fp-ts/lib/function").Lazy<Partial<import("../../composables/message").MessageIcons>>; + }; + icon: { + type: import("vue").PropType<import("vue").FunctionalComponent<{}, {}> | import("vue").ComponentOptions<{}, any, any, any, any, any, any, any>>; + }; + onToggle: { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: import("vue").PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + onSetOff: { + type: import("vue").PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + isActive: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + transition: import("../..").Transition; + variant: import("../..").AllColorsVariant; + size: import("../..").SizeVariant; + icons: Partial<import("../../composables/message").MessageIcons>; + duration: number; + isActive: boolean; + isClosable: boolean; + iconSize: import("../..").SizeVariant; + useAutoClose: boolean; + useIcon: boolean; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: import("fp-ts/lib/IO").IO<void> | undefined; + onSetOff?: import("fp-ts/lib/IO").IO<void> | undefined; + icon?: import("vue").FunctionalComponent<{}, {}> | import("vue").ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + title?: string | undefined; + message?: string | undefined; +}>, { + hasPopup: boolean; + transition: import("../..").Transition; + variant: import("../..").AllColorsVariant; + size: import("../..").SizeVariant; + icons: Partial<import("../../composables/message").MessageIcons>; + duration: number; + isActive: boolean; + isClosable: boolean; + iconSize: import("../..").SizeVariant; + useAutoClose: boolean; + useIcon: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/message/BMessage.js b/node_modules/buetify/lib/components/message/BMessage.js new file mode 100755 index 0000000..7f0b1ed --- /dev/null +++ b/node_modules/buetify/lib/components/message/BMessage.js @@ -0,0 +1,71 @@ +import 'bulma/sass/components/message.sass'; +import 'bulma/sass/elements/notification.sass'; +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/components/message/message.sass"; +import { useMessage, UseMessagePropsDefinition } from '../../composables/message'; +import { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition'; +import { defineComponent, h, Transition, computed } from 'vue'; + +function generateBody(props, context, message) { + const nodes = []; + + if (!!message.icon.value && props.useIcon) { + nodes.push(h('div', { + class: 'media-left' + }, [h(message.icon.value, { + size: message.iconSize.value, + variant: props.variant, + class: props.variant + })])); + } + + nodes.push(h('div', { + class: 'media-content' + }, context.slots.default && context.slots.default() || props.message)); + return h('section', { + class: 'message-body', + 'aria-label': 'Close message' + }, [h('div', { + class: 'media' + }, nodes)]); +} + +function generateHeader(props, context, message) { + const nodes = context.slots.title ? context.slots.title() : props.title ? [props.title] : []; + + if (props.isClosable) { + nodes.push(h('button', { + class: 'delete', + attrs: { + 'aria-label': `Close message` + }, + ...message.listeners + })); + } + + return h('header', { + class: 'message-header' + }, nodes); +} + +function generateMessage(props, context, message) { + return h('article', { + class: ['message', props.variant, props.size] + }, context.slots.title || !!props.title ? [generateHeader(props, context, message), generateBody(props, context, message)] : [generateBody(props, context, message)]); +} + +export default defineComponent({ + name: 'b-message', + props: { ...UseMessagePropsDefinition, + ...FadeTransitionPropsDefinition + }, + + setup(props, context) { + const message = useMessage(props); + const transition = useTransition(props); + const showMessage = computed(() => message.isOn.value || props.title === undefined && context.slots.title === undefined); + return () => h(Transition, transition.value, () => showMessage.value ? generateMessage(props, context, message) : undefined); + } + +}); +//# sourceMappingURL=BMessage.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/message/BMessage.js.map b/node_modules/buetify/lib/components/message/BMessage.js.map new file mode 100755 index 0000000..94f035b --- /dev/null +++ b/node_modules/buetify/lib/components/message/BMessage.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/message/BMessage.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAP;AACA,OAAO,uCAAP;AACA,OAAO,2CAAP;AACA,OAAO,8CAAP;AACA,SAAkB,UAAlB,EAA+C,yBAA/C,QAAgF,2BAAhF;AACA,SAAS,6BAAT,EAAwC,aAAxC,QAA6D,8BAA7D;AACA,SAAgB,eAAhB,EAAiC,CAAjC,EAAoC,UAApC,EAA8D,QAA9D,QAA8E,KAA9E;;AAEA,SAAS,YAAT,CAAsB,KAAtB,EAA8C,OAA9C,EAAqE,OAArE,EAAqF;AACnF,QAAM,KAAK,GAAY,EAAvB;;AACA,MAAI,CAAC,CAAC,OAAO,CAAC,IAAR,CAAa,KAAf,IAAwB,KAAK,CAAC,OAAlC,EAA2C;AACzC,IAAA,KAAK,CAAC,IAAN,CACE,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAT,KAAR,EAAiC,CAChC,CAAC,CAAC,OAAO,CAAC,IAAR,CAAa,KAAd,EAAqB;AACpB,MAAA,IAAI,EAAE,OAAO,CAAC,QAAR,CAAiB,KADH;AAEpB,MAAA,OAAO,EAAE,KAAK,CAAC,OAFK;AAGpB,MAAA,KAAK,EAAE,KAAK,CAAC;AAHO,KAArB,CAD+B,CAAjC,CADH;AASD;;AACD,EAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAqC,OAAO,CAAC,KAAR,CAAc,OAAd,IAAyB,OAAO,CAAC,KAAR,CAAc,OAAd,EAA1B,IAAsD,KAAK,CAAC,OAAhG,CAAZ;AACA,SAAO,CAAC,CACN,SADM,EAEN;AACE,IAAA,KAAK,EAAE,cADT;AAEE,kBAAc;AAFhB,GAFM,EAMN,CAAC,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAA4B,KAA5B,CAAF,CANM,CAAR;AAQD;;AAED,SAAS,cAAT,CAAwB,KAAxB,EAAgD,OAAhD,EAAuE,OAAvE,EAAuF;AACrF,QAAM,KAAK,GAAG,OAAO,CAAC,KAAR,CAAc,KAAd,GAAsB,OAAO,CAAC,KAAR,CAAc,KAAd,EAAtB,GAA8C,KAAK,CAAC,KAAN,GAAc,CAAE,KAAK,CAAC,KAAR,CAAd,GAAoD,EAAhH;;AACA,MAAI,KAAK,CAAC,UAAV,EAAsB;AACpB,IAAA,KAAK,CAAC,IAAN,CACE,CAAC,CAAC,QAAD,EAAW;AACV,MAAA,KAAK,EAAE,QADG;AAEV,MAAA,KAAK,EAAE;AAAE,sBAAc;AAAhB,OAFG;AAGV,SAAG,OAAO,CAAC;AAHD,KAAX,CADH;AAOD;;AACD,SAAO,CAAC,CAAC,QAAD,EAAW;AAAE,IAAA,KAAK,EAAE;AAAT,GAAX,EAAwC,KAAxC,CAAR;AACD;;AAED,SAAS,eAAT,CAAyB,KAAzB,EAAiD,OAAjD,EAAwE,OAAxE,EAAwF;AACtF,SAAO,CAAC,CACN,SADM,EAEN;AAAE,IAAA,KAAK,EAAE,CAAC,SAAD,EAAY,KAAK,CAAC,OAAlB,EAA2B,KAAK,CAAC,IAAjC;AAAT,GAFM,EAGN,OAAO,CAAC,KAAR,CAAc,KAAd,IAAuB,CAAC,CAAC,KAAK,CAAC,KAA/B,GACI,CAAC,cAAc,CAAC,KAAD,EAAQ,OAAR,EAAiB,OAAjB,CAAf,EAA0C,YAAY,CAAC,KAAD,EAAQ,OAAR,EAAiB,OAAjB,CAAtD,CADJ,GAEI,CAAC,YAAY,CAAC,KAAD,EAAQ,OAAR,EAAiB,OAAjB,CAAb,CALE,CAAR;AAOD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,WADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,yBADE;AAEL,OAAG;AAFE,GAFsB;;AAM7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM,OAAO,GAAG,UAAU,CAAC,KAAD,CAA1B;AACA,UAAM,UAAU,GAAG,aAAa,CAAC,KAAD,CAAhC;AACA,UAAM,WAAW,GAAG,QAAQ,CAC1B,MAAM,OAAO,CAAC,IAAR,CAAa,KAAb,IAAuB,KAAK,CAAC,KAAN,KAAgB,SAAhB,IAA6B,OAAO,CAAC,KAAR,CAAc,KAAd,KAAwB,SADxD,CAA5B;AAGA,WAAO,MACL,CAAC,CAAC,UAAD,EAAa,UAAU,CAAC,KAAxB,EAA+B,MAAO,WAAW,CAAC,KAAZ,GAAoB,eAAe,CAAC,KAAD,EAAQ,OAAR,EAAiB,OAAjB,CAAnC,GAA+D,SAArG,CADH;AAED;;AAd4B,CAAD,CAA9B","sourcesContent":["import 'bulma/sass/components/message.sass';\nimport 'bulma/sass/elements/notification.sass';\nimport '../../sass/helpers/animations.sass';\nimport './message.sass';\nimport { Message, useMessage, UseMessageProps, UseMessagePropsDefinition } from '../../composables/message';\nimport { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition';\nimport { VNode, defineComponent, h, Transition, SetupContext, computed } from 'vue';\n\nfunction generateBody(props: UseMessageProps, context: SetupContext, message: Message): VNode {\n const nodes: VNode[] = [];\n if (!!message.icon.value && props.useIcon) {\n nodes.push(\n h('div', { class: 'media-left' }, [\n h(message.icon.value, {\n size: message.iconSize.value,\n variant: props.variant,\n class: props.variant\n })\n ])\n );\n }\n nodes.push(h('div', { class: 'media-content' }, (context.slots.default && context.slots.default()) || props.message));\n return h(\n 'section',\n {\n class: 'message-body',\n 'aria-label': 'Close message'\n },\n [h('div', { class: 'media' }, nodes)]\n );\n}\n\nfunction generateHeader(props: UseMessageProps, context: SetupContext, message: Message): VNode {\n const nodes = context.slots.title ? context.slots.title() : props.title ? [(props.title as unknown) as VNode] : [];\n if (props.isClosable) {\n nodes.push(\n h('button', {\n class: 'delete',\n attrs: { 'aria-label': `Close message` },\n ...message.listeners\n })\n );\n }\n return h('header', { class: 'message-header' }, nodes);\n}\n\nfunction generateMessage(props: UseMessageProps, context: SetupContext, message: Message): VNode {\n return h(\n 'article',\n { class: ['message', props.variant, props.size] },\n context.slots.title || !!props.title\n ? [generateHeader(props, context, message), generateBody(props, context, message)]\n : [generateBody(props, context, message)]\n );\n}\n\nexport default defineComponent({\n name: 'b-message',\n props: {\n ...UseMessagePropsDefinition,\n ...FadeTransitionPropsDefinition\n },\n setup(props, context) {\n const message = useMessage(props);\n const transition = useTransition(props);\n const showMessage = computed(\n () => message.isOn.value || (props.title === undefined && context.slots.title === undefined)\n );\n return () =>\n h(Transition, transition.value, () => (showMessage.value ? generateMessage(props, context, message) : undefined));\n }\n});\n"],"sourceRoot":"","file":"BMessage.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/message/index.d.ts b/node_modules/buetify/lib/components/message/index.d.ts new file mode 100755 index 0000000..a5561c3 --- /dev/null +++ b/node_modules/buetify/lib/components/message/index.d.ts @@ -0,0 +1,3 @@ +import BMessage from './BMessage'; +export { BMessage }; +export default BMessage; diff --git a/node_modules/buetify/lib/components/message/index.js b/node_modules/buetify/lib/components/message/index.js new file mode 100755 index 0000000..19ae059 --- /dev/null +++ b/node_modules/buetify/lib/components/message/index.js @@ -0,0 +1,4 @@ +import BMessage from './BMessage'; +export { BMessage }; +export default BMessage; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/message/index.js.map b/node_modules/buetify/lib/components/message/index.js.map new file mode 100755 index 0000000..929c283 --- /dev/null +++ b/node_modules/buetify/lib/components/message/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,QAAT;AAEA,eAAe,QAAf","sourcesContent":["import BMessage from './BMessage';\n\nexport { BMessage };\n\nexport default BMessage;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/modal/BModal.d.ts b/node_modules/buetify/lib/components/modal/BModal.d.ts new file mode 100755 index 0000000..32eb933 --- /dev/null +++ b/node_modules/buetify/lib/components/modal/BModal.d.ts @@ -0,0 +1,121 @@ +import 'bulma/sass/components/card.sass'; +import 'bulma/sass/components/modal.sass'; +import '../../sass/helpers/animations.sass'; +import './modal.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { PropType, ExtractPropTypes } from 'vue'; +declare const BModalPropsDefinition: { + showExit: { + type: PropType<boolean>; + default: boolean; + }; + isFullscreen: { + type: PropType<boolean>; + default: boolean; + }; + onToggle: { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; + transition: { + type: PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; +}; +export declare type BModalProps = ExtractPropTypes<typeof BModalPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + showExit: { + type: PropType<boolean>; + default: boolean; + }; + isFullscreen: { + type: PropType<boolean>; + default: boolean; + }; + onToggle: { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; + transition: { + type: PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; +}, { + popup: { + isOpen: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + open: (e?: Event | undefined) => void; + close: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; + }; +}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + transition: import("../..").Transition; + isActive: boolean; + isFullscreen: boolean; + showExit: boolean; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: IO<void> | undefined; + onSetOff?: IO<void> | undefined; +}>, { + hasPopup: boolean; + transition: import("../..").Transition; + isActive: boolean; + isFullscreen: boolean; + showExit: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/modal/BModal.js b/node_modules/buetify/lib/components/modal/BModal.js new file mode 100755 index 0000000..e76bb96 --- /dev/null +++ b/node_modules/buetify/lib/components/modal/BModal.js @@ -0,0 +1,80 @@ +import 'bulma/sass/components/card.sass'; +import 'bulma/sass/components/modal.sass'; +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/components/modal/modal.sass"; +import { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController'; +import { constEmptyArray } from '../../utils/helpers'; +import { defineComponent, shallowRef, h, watchEffect, onUnmounted } from 'vue'; +import BSheet from '../sheet/BSheet'; +const BModalPropsDefinition = { ...UsePopupControllerPropsDefinition, + showExit: { + type: Boolean, + default: true + }, + isFullscreen: { + type: Boolean, + default: false + } +}; +export default defineComponent({ + name: 'b-modal', + props: BModalPropsDefinition, + + setup(props, { + attrs, + slots + }) { + const generateModal = shallowRef(constEmptyArray); + const popup = usePopupController(props, generateModal); + + generateModal.value = () => { + if (!props.isFullscreen) { + const nodes = [h('div', { + onClick: popup.close, + class: 'modal-background' + }), h('div', { + class: 'modal-content' + }, slots.default && slots.default(popup))]; + + if (props.showExit) { + nodes.push(h('button', { + class: 'modal-close is-large', + onClick: popup.close + })); + } + + return [h('div', { ...attrs, + class: 'modal is-active' + }, nodes)]; + } else { + return [h('div', { ...attrs, + class: 'modal is-active is-fullscreen' + }, [h(BSheet, () => slots.default && slots.default(popup))])]; + } + }; + + watchEffect(() => { + if (window === undefined) { + return; + } + + if (popup.isOpen.value && props.isFullscreen) { + window.document.documentElement.classList.add('is-clipped'); + } else { + window.document.documentElement.classList.remove('is-clipped'); + } + }); + onUnmounted(() => { + window && window.document.documentElement.classList.remove('is-clipped'); + }); + return { + popup + }; + }, + + render() { + return this.$slots.trigger && this.$slots.trigger(this.popup); + } + +}); +//# sourceMappingURL=BModal.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/modal/BModal.js.map b/node_modules/buetify/lib/components/modal/BModal.js.map new file mode 100755 index 0000000..97bff5c --- /dev/null +++ b/node_modules/buetify/lib/components/modal/BModal.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/modal/BModal.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAP;AACA,OAAO,kCAAP;AACA,OAAO,2CAAP;AACA,OAAO,0CAAP;AAEA,SAAS,kBAAT,EAA6B,iCAA7B,QAAsE,mCAAtE;AACA,SAAS,eAAT,QAAgC,qBAAhC;AACA,SAAgB,eAAhB,EAA2C,UAA3C,EAAuD,CAAvD,EAA4E,WAA5E,EAAyF,WAAzF,QAA4G,KAA5G;AACA,OAAO,MAAP,MAAmB,iBAAnB;AAEA,MAAM,qBAAqB,GAAG,EAC5B,GAAG,iCADyB;AAE5B,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,OADE;AAER,IAAA,OAAO,EAAE;AAFD,GAFkB;AAM5B,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG;AANc,CAA9B;AAcA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,SADuB;AAE7B,EAAA,KAAK,EAAE,qBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,GAAR,EAAwB;AAC3B,UAAM,aAAa,GAAG,UAAU,CAAC,eAAD,CAAhC;AACA,UAAM,KAAK,GAAG,kBAAkB,CAAC,KAAD,EAAQ,aAAR,CAAhC;;AACA,IAAA,aAAa,CAAC,KAAd,GAAsB,MAAK;AACzB,UAAI,CAAC,KAAK,CAAC,YAAX,EAAyB;AACvB,cAAM,KAAK,GAAG,CACZ,CAAC,CAAC,KAAD,EAAQ;AAAE,UAAA,OAAO,EAAE,KAAK,CAAC,KAAjB;AAAwB,UAAA,KAAK,EAAE;AAA/B,SAAR,CADW,EAEZ,CAAC,CAAC,KAAD,EAAQ;AAAE,UAAA,KAAK,EAAE;AAAT,SAAR,EAAoC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,KAAd,CAArD,CAFW,CAAd;;AAIA,YAAI,KAAK,CAAC,QAAV,EAAoB;AAClB,UAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,QAAD,EAAW;AAAE,YAAA,KAAK,EAAE,sBAAT;AAAiC,YAAA,OAAO,EAAE,KAAK,CAAC;AAAhD,WAAX,CAAZ;AACD;;AACD,eAAO,CACL,CAAC,CACC,KADD,EAEC,EACE,GAAG,KADL;AAEE,UAAA,KAAK,EAAE;AAFT,SAFD,EAMC,KAND,CADI,CAAP;AAUD,OAlBD,MAkBO;AACL,eAAO,CACL,CAAC,CACC,KADD,EAEC,EACE,GAAG,KADL;AAEE,UAAA,KAAK,EAAE;AAFT,SAFD,EAMC,CAAC,CAAC,CAAC,MAAD,EAAS,MAAM,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,KAAd,CAAhC,CAAF,CAND,CADI,CAAP;AAUD;AACF,KA/BD;;AAiCA,IAAA,WAAW,CAAC,MAAK;AACf,UAAI,MAAM,KAAK,SAAf,EAA0B;AACxB;AACD;;AACD,UAAI,KAAK,CAAC,MAAN,CAAa,KAAb,IAAsB,KAAK,CAAC,YAAhC,EAA8C;AAC5C,QAAA,MAAM,CAAC,QAAP,CAAgB,eAAhB,CAAgC,SAAhC,CAA0C,GAA1C,CAA8C,YAA9C;AACD,OAFD,MAEO;AACL,QAAA,MAAM,CAAC,QAAP,CAAgB,eAAhB,CAAgC,SAAhC,CAA0C,MAA1C,CAAiD,YAAjD;AACD;AACF,KATU,CAAX;AAWA,IAAA,WAAW,CAAC,MAAK;AACf,MAAA,MAAM,IAAI,MAAM,CAAC,QAAP,CAAgB,eAAhB,CAAgC,SAAhC,CAA0C,MAA1C,CAAiD,YAAjD,CAAV;AACD,KAFU,CAAX;AAGA,WAAO;AAAE,MAAA;AAAF,KAAP;AACD,GAtD4B;;AAuD7B,EAAA,MAAM,GAAA;AACJ,WAAO,KAAK,MAAL,CAAY,OAAZ,IAAuB,KAAK,MAAL,CAAY,OAAZ,CAAoB,KAAK,KAAzB,CAA9B;AACD;;AAzD4B,CAAD,CAA9B","sourcesContent":["import 'bulma/sass/components/card.sass';\nimport 'bulma/sass/components/modal.sass';\nimport '../../sass/helpers/animations.sass';\nimport './modal.sass';\nimport { IO } from 'fp-ts/lib/IO';\nimport { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController';\nimport { constEmptyArray } from '../../utils/helpers';\nimport { VNode, defineComponent, PropType, shallowRef, h, ExtractPropTypes, watchEffect, onUnmounted } from 'vue';\nimport BSheet from '../sheet/BSheet';\n\nconst BModalPropsDefinition = {\n ...UsePopupControllerPropsDefinition,\n showExit: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n isFullscreen: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n};\n\nexport type BModalProps = ExtractPropTypes<typeof BModalPropsDefinition>;\n\nexport default defineComponent({\n name: 'b-modal',\n props: BModalPropsDefinition,\n setup(props, { attrs, slots }) {\n const generateModal = shallowRef(constEmptyArray as IO<VNode[]>);\n const popup = usePopupController(props, generateModal);\n generateModal.value = () => {\n if (!props.isFullscreen) {\n const nodes = [\n h('div', { onClick: popup.close, class: 'modal-background' }),\n h('div', { class: 'modal-content' }, slots.default && slots.default(popup))\n ];\n if (props.showExit) {\n nodes.push(h('button', { class: 'modal-close is-large', onClick: popup.close }));\n }\n return [\n h(\n 'div',\n {\n ...attrs,\n class: 'modal is-active'\n },\n nodes\n )\n ];\n } else {\n return [\n h(\n 'div',\n {\n ...attrs,\n class: 'modal is-active is-fullscreen'\n },\n [h(BSheet, () => slots.default && slots.default(popup))]\n )\n ];\n }\n };\n\n watchEffect(() => {\n if (window === undefined) {\n return;\n }\n if (popup.isOpen.value && props.isFullscreen) {\n window.document.documentElement.classList.add('is-clipped');\n } else {\n window.document.documentElement.classList.remove('is-clipped');\n }\n });\n\n onUnmounted(() => {\n window && window.document.documentElement.classList.remove('is-clipped');\n });\n return { popup };\n },\n render() {\n return this.$slots.trigger && this.$slots.trigger(this.popup);\n }\n});\n"],"sourceRoot":"","file":"BModal.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/modal/index.d.ts b/node_modules/buetify/lib/components/modal/index.d.ts new file mode 100755 index 0000000..98dbe72 --- /dev/null +++ b/node_modules/buetify/lib/components/modal/index.d.ts @@ -0,0 +1,3 @@ +import BModal from './BModal'; +export { BModal }; +export default BModal; diff --git a/node_modules/buetify/lib/components/modal/index.js b/node_modules/buetify/lib/components/modal/index.js new file mode 100755 index 0000000..6ea74f4 --- /dev/null +++ b/node_modules/buetify/lib/components/modal/index.js @@ -0,0 +1,4 @@ +import BModal from './BModal'; +export { BModal }; +export default BModal; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/modal/index.js.map b/node_modules/buetify/lib/components/modal/index.js.map new file mode 100755 index 0000000..38f29f1 --- /dev/null +++ b/node_modules/buetify/lib/components/modal/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AAEA,SAAS,MAAT;AAEA,eAAe,MAAf","sourcesContent":["import BModal from './BModal';\n\nexport { BModal };\n\nexport default BModal;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbar.d.ts b/node_modules/buetify/lib/components/navbar/BNavbar.d.ts new file mode 100755 index 0000000..fce6a70 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbar.d.ts @@ -0,0 +1,5 @@ +import './navbar.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/navbar/BNavbar.js b/node_modules/buetify/lib/components/navbar/BNavbar.js new file mode 100755 index 0000000..702aaaf --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbar.js @@ -0,0 +1,4 @@ +import "../../../src/components/navbar/navbar.sass"; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('navbar', 'nav'); +//# sourceMappingURL=BNavbar.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbar.js.map b/node_modules/buetify/lib/components/navbar/BNavbar.js.map new file mode 100755 index 0000000..13557b5 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbar.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbar.ts"],"names":[],"mappings":"AAAA,OAAO,4CAAP;AACA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,QAAD,EAAW,KAAX,CAA3C","sourcesContent":["import './navbar.sass';\nimport { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('navbar', 'nav');\n"],"sourceRoot":"","file":"BNavbar.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarBrand.d.ts b/node_modules/buetify/lib/components/navbar/BNavbarBrand.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarBrand.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/navbar/BNavbarBrand.js b/node_modules/buetify/lib/components/navbar/BNavbarBrand.js new file mode 100755 index 0000000..b8da099 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarBrand.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('navbar-brand'); +//# sourceMappingURL=BNavbarBrand.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarBrand.js.map b/node_modules/buetify/lib/components/navbar/BNavbarBrand.js.map new file mode 100755 index 0000000..3f4b847 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarBrand.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbarBrand.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,cAAD,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('navbar-brand');\n"],"sourceRoot":"","file":"BNavbarBrand.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarBurger.d.ts b/node_modules/buetify/lib/components/navbar/BNavbarBurger.d.ts new file mode 100755 index 0000000..1fa745b --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarBurger.d.ts @@ -0,0 +1,7 @@ +export interface BNavbarBurgerProps { + tag?: string; + isActive?: boolean; +} +export default function BNavbarBurger(props: BNavbarBurgerProps): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/navbar/BNavbarBurger.js b/node_modules/buetify/lib/components/navbar/BNavbarBurger.js new file mode 100755 index 0000000..e79e2ea --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarBurger.js @@ -0,0 +1,14 @@ +import { makeBy } from 'fp-ts/lib/Array'; +import { h } from 'vue'; +const hamburgerLines = makeBy(3, () => h('span', { + 'aria-hidden': true +})); +export default function BNavbarBurger(props) { + return h(props.tag || 'button', { + class: ['b-navbar-burger', 'navbar-burger', { + 'is-active': !!props.isActive + }], + 'aria-expanded': !!props.isActive + }, hamburgerLines); +} +//# sourceMappingURL=BNavbarBurger.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarBurger.js.map b/node_modules/buetify/lib/components/navbar/BNavbarBurger.js.map new file mode 100755 index 0000000..f0e72a0 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarBurger.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbarBurger.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,QAAuB,iBAAvB;AACA,SAAS,CAAT,QAAkB,KAAlB;AAOA,MAAM,cAAc,GAAG,MAAM,CAAC,CAAD,EAAI,MAAM,CAAC,CAAC,MAAD,EAAS;AAAE,iBAAe;AAAjB,CAAT,CAAX,CAA7B;AAEA,eAAc,SAAU,aAAV,CAAwB,KAAxB,EAAiD;AAC7D,SAAO,CAAC,CACN,KAAK,CAAC,GAAN,IAAa,QADP,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB,eAApB,EAAqC;AAAE,mBAAa,CAAC,CAAC,KAAK,CAAC;AAAvB,KAArC,CADT;AAEE,qBAAiB,CAAC,CAAC,KAAK,CAAC;AAF3B,GAFM,EAMN,cANM,CAAR;AAQD","sourcesContent":["import { makeBy } from 'fp-ts/lib/Array';\nimport { h } from 'vue';\n\nexport interface BNavbarBurgerProps {\n tag?: string;\n isActive?: boolean;\n}\n\nconst hamburgerLines = makeBy(3, () => h('span', { 'aria-hidden': true }));\n\nexport default function BNavbarBurger(props: BNavbarBurgerProps) {\n return h(\n props.tag || 'button',\n {\n class: ['b-navbar-burger', 'navbar-burger', { 'is-active': !!props.isActive }],\n 'aria-expanded': !!props.isActive\n },\n hamburgerLines\n );\n}\n"],"sourceRoot":"","file":"BNavbarBurger.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarEnd.d.ts b/node_modules/buetify/lib/components/navbar/BNavbarEnd.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarEnd.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/navbar/BNavbarEnd.js b/node_modules/buetify/lib/components/navbar/BNavbarEnd.js new file mode 100755 index 0000000..7fe3d9b --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarEnd.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('navbar-end'); +//# sourceMappingURL=BNavbarEnd.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarEnd.js.map b/node_modules/buetify/lib/components/navbar/BNavbarEnd.js.map new file mode 100755 index 0000000..0d5656c --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarEnd.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbarEnd.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,YAAD,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('navbar-end');\n"],"sourceRoot":"","file":"BNavbarEnd.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarItem.d.ts b/node_modules/buetify/lib/components/navbar/BNavbarItem.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarItem.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/navbar/BNavbarItem.js b/node_modules/buetify/lib/components/navbar/BNavbarItem.js new file mode 100755 index 0000000..6ecb476 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarItem.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('navbar-item', 'a'); +//# sourceMappingURL=BNavbarItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarItem.js.map b/node_modules/buetify/lib/components/navbar/BNavbarItem.js.map new file mode 100755 index 0000000..9183f74 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbarItem.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,aAAD,EAAgB,GAAhB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('navbar-item', 'a');\n"],"sourceRoot":"","file":"BNavbarItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarMenu.d.ts b/node_modules/buetify/lib/components/navbar/BNavbarMenu.d.ts new file mode 100755 index 0000000..29696fc --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarMenu.d.ts @@ -0,0 +1,13 @@ +declare const _default: import("vue").DefineComponent<{ + isActive: { + type: BooleanConstructor; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isActive: boolean; +} & {}>, { + isActive: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/navbar/BNavbarMenu.js b/node_modules/buetify/lib/components/navbar/BNavbarMenu.js new file mode 100755 index 0000000..2548811 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarMenu.js @@ -0,0 +1,22 @@ +import { h, defineComponent } from 'vue'; +export default defineComponent({ + name: 'b-navbar-menu', + props: { + isActive: { + type: Boolean, + default: false + } + }, + + setup(props, { + slots + }) { + return () => h('div', { + class: ['navbar-menu', { + isActive: props.isActive + }] + }, slots.default && slots.default()); + } + +}); +//# sourceMappingURL=BNavbarMenu.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarMenu.js.map b/node_modules/buetify/lib/components/navbar/BNavbarMenu.js.map new file mode 100755 index 0000000..325bd5d --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarMenu.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbarMenu.ts"],"names":[],"mappings":"AAAA,SAAS,CAAT,EAAY,eAAZ,QAAmC,KAAnC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,eADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD;AADL,GAFsB;;AAQ7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MACL,CAAC,CACC,KADD,EAEC;AACE,MAAA,KAAK,EAAE,CAAC,aAAD,EAAgB;AAAE,QAAA,QAAQ,EAAE,KAAK,CAAC;AAAlB,OAAhB;AADT,KAFD,EAKC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EALlB,CADH;AAQD;;AAjB4B,CAAD,CAA9B","sourcesContent":["import { h, defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'b-navbar-menu',\n props: {\n isActive: {\n type: Boolean,\n default: false\n }\n },\n setup(props, { slots }) {\n return () =>\n h(\n 'div',\n {\n class: ['navbar-menu', { isActive: props.isActive }]\n },\n slots.default && slots.default()\n );\n }\n});\n"],"sourceRoot":"","file":"BNavbarMenu.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarStart.d.ts b/node_modules/buetify/lib/components/navbar/BNavbarStart.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarStart.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/navbar/BNavbarStart.js b/node_modules/buetify/lib/components/navbar/BNavbarStart.js new file mode 100755 index 0000000..329ce92 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarStart.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('navbar-start'); +//# sourceMappingURL=BNavbarStart.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/BNavbarStart.js.map b/node_modules/buetify/lib/components/navbar/BNavbarStart.js.map new file mode 100755 index 0000000..11be51b --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/BNavbarStart.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/BNavbarStart.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,cAAD,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('navbar-start');\n"],"sourceRoot":"","file":"BNavbarStart.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/index.d.ts b/node_modules/buetify/lib/components/navbar/index.d.ts new file mode 100755 index 0000000..eedbc32 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/index.d.ts @@ -0,0 +1,8 @@ +import BNavbar from './BNavbar'; +import BNavbarBrand from './BNavbarBrand'; +import BNavbarBurger from './BNavbarBurger'; +import BNavbarEnd from './BNavbarEnd'; +import BNavbarItem from './BNavbarItem'; +import BNavbarMenu from './BNavbarMenu'; +import BNavbarStart from './BNavbarStart'; +export { BNavbar, BNavbarBrand, BNavbarBurger, BNavbarEnd, BNavbarItem, BNavbarMenu, BNavbarStart }; diff --git a/node_modules/buetify/lib/components/navbar/index.js b/node_modules/buetify/lib/components/navbar/index.js new file mode 100755 index 0000000..491ad42 --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/index.js @@ -0,0 +1,9 @@ +import BNavbar from './BNavbar'; +import BNavbarBrand from './BNavbarBrand'; +import BNavbarBurger from './BNavbarBurger'; +import BNavbarEnd from './BNavbarEnd'; +import BNavbarItem from './BNavbarItem'; +import BNavbarMenu from './BNavbarMenu'; +import BNavbarStart from './BNavbarStart'; +export { BNavbar, BNavbarBrand, BNavbarBurger, BNavbarEnd, BNavbarItem, BNavbarMenu, BNavbarStart }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/navbar/index.js.map b/node_modules/buetify/lib/components/navbar/index.js.map new file mode 100755 index 0000000..88739ac --- /dev/null +++ b/node_modules/buetify/lib/components/navbar/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/navbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAP,MAAoB,WAApB;AACA,OAAO,YAAP,MAAyB,gBAAzB;AACA,OAAO,aAAP,MAA0B,iBAA1B;AACA,OAAO,UAAP,MAAuB,cAAvB;AACA,OAAO,WAAP,MAAwB,eAAxB;AACA,OAAO,WAAP,MAAwB,eAAxB;AACA,OAAO,YAAP,MAAyB,gBAAzB;AAEA,SAAS,OAAT,EAAkB,YAAlB,EAAgC,aAAhC,EAA+C,UAA/C,EAA2D,WAA3D,EAAwE,WAAxE,EAAqF,YAArF","sourcesContent":["import BNavbar from './BNavbar';\nimport BNavbarBrand from './BNavbarBrand';\nimport BNavbarBurger from './BNavbarBurger';\nimport BNavbarEnd from './BNavbarEnd';\nimport BNavbarItem from './BNavbarItem';\nimport BNavbarMenu from './BNavbarMenu';\nimport BNavbarStart from './BNavbarStart';\n\nexport { BNavbar, BNavbarBrand, BNavbarBurger, BNavbarEnd, BNavbarItem, BNavbarMenu, BNavbarStart };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/index.d.ts b/node_modules/buetify/lib/components/notices/index.d.ts new file mode 100755 index 0000000..de7137b --- /dev/null +++ b/node_modules/buetify/lib/components/notices/index.d.ts @@ -0,0 +1,4 @@ +export * from './notification'; +export * from './snackbar'; +export * from './toast'; +export * from './noticeContainer'; diff --git a/node_modules/buetify/lib/components/notices/index.js b/node_modules/buetify/lib/components/notices/index.js new file mode 100755 index 0000000..5318f0e --- /dev/null +++ b/node_modules/buetify/lib/components/notices/index.js @@ -0,0 +1,5 @@ +export * from './notification'; +export * from './snackbar'; +export * from './toast'; +export * from './noticeContainer'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/index.js.map b/node_modules/buetify/lib/components/notices/index.js.map new file mode 100755 index 0000000..a703795 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/notices/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,mBAAd","sourcesContent":["export * from './notification';\nexport * from './snackbar';\nexport * from './toast';\nexport * from './noticeContainer';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.d.ts b/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.d.ts new file mode 100755 index 0000000..c5098bf --- /dev/null +++ b/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.d.ts @@ -0,0 +1,36 @@ +import { IO } from 'fp-ts/lib/IO'; +import { VNode } from 'vue'; +import { Transition, TransitionClasses } from '../../../types/Transition'; +export interface NoticeOptions { + render: IO<VNode[]>; + duration: number; + shouldQueue: boolean; + transition: Transition; +} +export interface Notice { + id: number; + render: IO<VNode[] | undefined>; + transition: TransitionClasses; + onAfterLeave: IO<void>; +} +declare const BNoticeContainer: import("vue").DefineComponent<{}, { + rootZ: import("vue").ComputedRef<-1 | 999>; + showNotice: (params: NoticeOptions) => IO<void>; + notices: { + id: number; + render: IO<VNode[] | undefined>; + transition: { + css?: boolean | undefined; + name?: string | undefined; + 'enter-from-class'?: string | undefined; + 'enter-active-class'?: string | undefined; + 'enter-to-class'?: string | undefined; + 'leave-from-class'?: string | undefined; + 'leave-active-class'?: string | undefined; + 'leave-to-class'?: string | undefined; + }; + onAfterLeave: IO<void>; + }[]; +}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & {}>, {}>; +export declare type NoticeContainer = InstanceType<typeof BNoticeContainer>; +export default BNoticeContainer; diff --git a/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.js b/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.js new file mode 100755 index 0000000..cbb9943 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.js @@ -0,0 +1,84 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { formatTransition } from '../../../composables/transition'; +import { defineComponent, h, Transition as transition, computed, reactive, nextTick } from 'vue'; +import { constEmptyArray } from '../../../utils/helpers'; +let id = 0; + +function generateNotice(notice) { + return h(transition, { + key: notice.id, + ...notice.transition, + onAfterLeague: notice.onAfterLeave + }, notice.render); +} + +const BNoticeContainer = defineComponent({ + name: 'b-notice-container', + + setup() { + const notices = reactive([]); + const rootZ = computed(() => notices.length ? 999 : -1); + + function addNotice(options) { + const nId = id++; + + function remove() { + const index = notices.findIndex(n => n.id === nId); + + if (index > -1) { + notices.splice(index, 1); + } + } + + const newNotice = reactive({ + id: nId, + render: constEmptyArray, + transition: formatTransition(options.transition), + onAfterLeave: remove + }); + notices.push(newNotice); + nextTick().then(() => { + newNotice.render = options.render; + }); + return remove; + } + + function showNotice(params) { + if (params.shouldQueue && notices.length > 0) { + let remove = constVoid; + setTimeout(() => { + remove = showNotice(params); + }, 250); + return () => { + remove(); + }; + } + + const removeNotice = addNotice(params); + + if (params.duration === 0) { + return removeNotice; + } else { + setTimeout(removeNotice, params.duration); + return removeNotice; + } + } + + return { + rootZ, + showNotice, + notices + }; + }, + + render() { + return h('div', { + style: { + 'z-index': this.rootZ + } + }, this.notices.map(generateNotice)); + } + +}); +export default BNoticeContainer; +//# sourceMappingURL=BNoticeContainer.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.js.map b/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.js.map new file mode 100755 index 0000000..90b1621 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/noticeContainer/BNoticeContainer.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/noticeContainer/BNoticeContainer.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,QAA0B,oBAA1B;AAGA,SAAS,gBAAT,QAAiC,iCAAjC;AAEA,SAAS,eAAT,EAA0B,CAA1B,EAA6B,UAAU,IAAI,UAA3C,EAAuD,QAAvD,EAAiE,QAAjE,EAA2E,QAA3E,QAA2F,KAA3F;AACA,SAAS,eAAT,QAAgC,wBAAhC;AAgBA,IAAI,EAAE,GAAG,CAAT;;AAEA,SAAS,cAAT,CAAwB,MAAxB,EAAsC;AACpC,SAAO,CAAC,CAAC,UAAD,EAAa;AAAE,IAAA,GAAG,EAAE,MAAM,CAAC,EAAd;AAAkB,OAAG,MAAM,CAAC,UAA5B;AAAwC,IAAA,aAAa,EAAE,MAAM,CAAC;AAA9D,GAAb,EAA2F,MAAM,CAAC,MAAlG,CAAR;AACD;;AAED,MAAM,gBAAgB,GAAG,eAAe,CAAC;AACvC,EAAA,IAAI,EAAE,oBADiC;;AAEvC,EAAA,KAAK,GAAA;AACH,UAAM,OAAO,GAAG,QAAQ,CAAC,EAAD,CAAxB;AAEA,UAAM,KAAK,GAAG,QAAQ,CAAC,MAAO,OAAO,CAAC,MAAR,GAAiB,GAAjB,GAAuB,CAAC,CAAhC,CAAtB;;AAEA,aAAS,SAAT,CAAmB,OAAnB,EAAyC;AACvC,YAAM,GAAG,GAAG,EAAE,EAAd;;AACA,eAAS,MAAT,GAAe;AACb,cAAM,KAAK,GAAG,OAAO,CAAC,SAAR,CAAkB,CAAC,IAAI,CAAC,CAAC,EAAF,KAAS,GAAhC,CAAd;;AACA,YAAI,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,UAAA,OAAO,CAAC,MAAR,CAAe,KAAf,EAAsB,CAAtB;AACD;AACF;;AACD,YAAM,SAAS,GAAW,QAAQ,CAAC;AACjC,QAAA,EAAE,EAAE,GAD6B;AAEjC,QAAA,MAAM,EAAE,eAFyB;AAGjC,QAAA,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,UAAT,CAHK;AAIjC,QAAA,YAAY,EAAE;AAJmB,OAAD,CAAlC;AAMA,MAAA,OAAO,CAAC,IAAR,CAAa,SAAb;AACA,MAAA,QAAQ,GAAG,IAAX,CAAgB,MAAK;AACnB,QAAA,SAAS,CAAC,MAAV,GAAmB,OAAO,CAAC,MAA3B;AACD,OAFD;AAGA,aAAO,MAAP;AACD;;AAED,aAAS,UAAT,CAAoB,MAApB,EAAyC;AACvC,UAAI,MAAM,CAAC,WAAP,IAAsB,OAAO,CAAC,MAAR,GAAiB,CAA3C,EAA8C;AAC5C,YAAI,MAAM,GAAG,SAAb;AACA,QAAA,UAAU,CAAC,MAAK;AACd,UAAA,MAAM,GAAG,UAAU,CAAC,MAAD,CAAnB;AACD,SAFS,EAEP,GAFO,CAAV;AAGA,eAAO,MAAK;AACV,UAAA,MAAM;AACP,SAFD;AAGD;;AACD,YAAM,YAAY,GAAG,SAAS,CAAC,MAAD,CAA9B;;AACA,UAAI,MAAM,CAAC,QAAP,KAAoB,CAAxB,EAA2B;AACzB,eAAO,YAAP;AACD,OAFD,MAEO;AACL,QAAA,UAAU,CAAC,YAAD,EAAe,MAAM,CAAC,QAAtB,CAAV;AACA,eAAO,YAAP;AACD;AACF;;AAED,WAAO;AACL,MAAA,KADK;AAEL,MAAA,UAFK;AAGL,MAAA;AAHK,KAAP;AAKD,GApDsC;;AAqDvC,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAE,mBAAW,KAAK;AAAlB;AAAT,KAAR,EAA8C,KAAK,OAAL,CAAa,GAAb,CAAiB,cAAjB,CAA9C,CAAR;AACD;;AAvDsC,CAAD,CAAxC;AA4DA,eAAe,gBAAf","sourcesContent":["import { constVoid } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { VNode } from 'vue';\nimport { formatTransition } from '../../../composables/transition';\nimport { Transition, TransitionClasses } from '../../../types/Transition';\nimport { defineComponent, h, Transition as transition, computed, reactive, nextTick } from 'vue';\nimport { constEmptyArray } from '../../../utils/helpers';\n\nexport interface NoticeOptions {\n render: IO<VNode[]>;\n duration: number;\n shouldQueue: boolean;\n transition: Transition;\n}\n\nexport interface Notice {\n id: number;\n render: IO<VNode[] | undefined>;\n transition: TransitionClasses;\n onAfterLeave: IO<void>;\n}\n\nlet id = 0;\n\nfunction generateNotice(notice: Notice): VNode {\n return h(transition, { key: notice.id, ...notice.transition, onAfterLeague: notice.onAfterLeave }, notice.render);\n}\n\nconst BNoticeContainer = defineComponent({\n name: 'b-notice-container',\n setup() {\n const notices = reactive([] as Notice[]);\n\n const rootZ = computed(() => (notices.length ? 999 : -1));\n\n function addNotice(options: NoticeOptions): IO<void> {\n const nId = id++;\n function remove() {\n const index = notices.findIndex(n => n.id === nId);\n if (index > -1) {\n notices.splice(index, 1);\n }\n }\n const newNotice: Notice = reactive({\n id: nId,\n render: constEmptyArray,\n transition: formatTransition(options.transition),\n onAfterLeave: remove\n });\n notices.push(newNotice);\n nextTick().then(() => {\n newNotice.render = options.render;\n });\n return remove;\n }\n\n function showNotice(params: NoticeOptions): IO<void> {\n if (params.shouldQueue && notices.length > 0) {\n let remove = constVoid;\n setTimeout(() => {\n remove = showNotice(params);\n }, 250);\n return () => {\n remove();\n };\n }\n const removeNotice = addNotice(params);\n if (params.duration === 0) {\n return removeNotice;\n } else {\n setTimeout(removeNotice, params.duration);\n return removeNotice;\n }\n }\n\n return {\n rootZ,\n showNotice,\n notices\n };\n },\n render() {\n return h('div', { style: { 'z-index': this.rootZ } }, this.notices.map(generateNotice));\n }\n});\n\nexport type NoticeContainer = InstanceType<typeof BNoticeContainer>;\n\nexport default BNoticeContainer;\n"],"sourceRoot":"","file":"BNoticeContainer.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/noticeContainer/index.d.ts b/node_modules/buetify/lib/components/notices/noticeContainer/index.d.ts new file mode 100755 index 0000000..a21e62b --- /dev/null +++ b/node_modules/buetify/lib/components/notices/noticeContainer/index.d.ts @@ -0,0 +1,3 @@ +import BNoticeContainer from './BNoticeContainer'; +export { BNoticeContainer }; +export default BNoticeContainer; diff --git a/node_modules/buetify/lib/components/notices/noticeContainer/index.js b/node_modules/buetify/lib/components/notices/noticeContainer/index.js new file mode 100755 index 0000000..16684a1 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/noticeContainer/index.js @@ -0,0 +1,4 @@ +import BNoticeContainer from './BNoticeContainer'; +export { BNoticeContainer }; +export default BNoticeContainer; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/noticeContainer/index.js.map b/node_modules/buetify/lib/components/notices/noticeContainer/index.js.map new file mode 100755 index 0000000..7510bd5 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/noticeContainer/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/noticeContainer/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAP,MAA6B,oBAA7B;AAEA,SAAS,gBAAT;AAEA,eAAe,gBAAf","sourcesContent":["import BNoticeContainer from './BNoticeContainer';\n\nexport { BNoticeContainer };\n\nexport default BNoticeContainer;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/notification/BNotification.d.ts b/node_modules/buetify/lib/components/notices/notification/BNotification.d.ts new file mode 100755 index 0000000..ec79501 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/notification/BNotification.d.ts @@ -0,0 +1,215 @@ +import '../../../sass/helpers/animations.sass'; +import '../sass/notices.sass'; +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { VNode, PropType, ExtractPropTypes, ComponentOptions, FunctionalComponent } from 'vue'; +export declare const BNotificationPropsDefinition: { + isNotice: { + type: PropType<boolean>; + default: boolean; + }; + icon: { + type: PropType<FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any>>; + }; + transition: { + type: PropType<import("../../..").Transition>; + required: boolean; + }; + position: { + type: PropType<import("../../..").PositionVariant>; + default: "is-bottom"; + }; + duration: { + type: PropType<number>; + default: number; + }; + message: { + type: PropType<string>; + }; + shouldQueue: { + type: PropType<boolean>; + default: boolean; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + isIndefinite: { + type: PropType<boolean>; + default: boolean; + }; + title: { + type: PropType<string>; + }; + isClosable: { + type: BooleanConstructor; + default: boolean; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: ""; + }; + iconSize: { + type: PropType<import("../../..").SizeVariant>; + default: ""; + }; + useAutoClose: { + type: PropType<boolean>; + default: boolean; + }; + useIcon: { + type: PropType<boolean>; + default: boolean; + }; + icons: { + type: PropType<Partial<import("../../../composables/message").MessageIcons>>; + default: import("fp-ts/lib/function").Lazy<Partial<import("../../../composables/message").MessageIcons>>; + }; + onToggle: { + type: PropType<FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; +}; +export declare type BNotificationProps = ExtractPropTypes<typeof BNotificationPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + isNotice: { + type: PropType<boolean>; + default: boolean; + }; + icon: { + type: PropType<FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any>>; + }; + transition: { + type: PropType<import("../../..").Transition>; + required: boolean; + }; + position: { + type: PropType<import("../../..").PositionVariant>; + default: "is-bottom"; + }; + duration: { + type: PropType<number>; + default: number; + }; + message: { + type: PropType<string>; + }; + shouldQueue: { + type: PropType<boolean>; + default: boolean; + }; + variant: { + type: PropType<import("../../..").ColorVariant>; + default: ""; + }; + isIndefinite: { + type: PropType<boolean>; + default: boolean; + }; + title: { + type: PropType<string>; + }; + isClosable: { + type: BooleanConstructor; + default: boolean; + }; + size: { + type: PropType<import("../../..").SizeVariant>; + default: ""; + }; + iconSize: { + type: PropType<import("../../..").SizeVariant>; + default: ""; + }; + useAutoClose: { + type: PropType<boolean>; + default: boolean; + }; + useIcon: { + type: PropType<boolean>; + default: boolean; + }; + icons: { + type: PropType<Partial<import("../../../composables/message").MessageIcons>>; + default: import("fp-ts/lib/function").Lazy<Partial<import("../../../composables/message").MessageIcons>>; + }; + onToggle: { + type: PropType<FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}> | VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + icons: Partial<import("../../../composables/message").MessageIcons>; + duration: number; + position: import("../../..").PositionVariant; + shouldQueue: boolean; + isIndefinite: boolean; + isActive: boolean; + isClosable: boolean; + iconSize: import("../../..").SizeVariant; + useAutoClose: boolean; + useIcon: boolean; + isNotice: boolean; +} & { + onToggle?: FunctionN<[boolean], void> | undefined; + onSetOn?: IO<void> | undefined; + onSetOff?: IO<void> | undefined; + transition?: string | import("../../..").TransitionClasses | undefined; + icon?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + title?: string | undefined; + message?: string | undefined; +}>, { + hasPopup: boolean; + variant: import("../../..").ColorVariant; + size: import("../../..").SizeVariant; + icons: Partial<import("../../../composables/message").MessageIcons>; + duration: number; + position: import("../../..").PositionVariant; + shouldQueue: boolean; + isIndefinite: boolean; + isActive: boolean; + isClosable: boolean; + iconSize: import("../../..").SizeVariant; + useAutoClose: boolean; + useIcon: boolean; + isNotice: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/notices/notification/BNotification.js b/node_modules/buetify/lib/components/notices/notification/BNotification.js new file mode 100755 index 0000000..59122fa --- /dev/null +++ b/node_modules/buetify/lib/components/notices/notification/BNotification.js @@ -0,0 +1,73 @@ +import "../../../../src/sass/helpers/animations.sass"; +import "../../../../src/components/notices/sass/notices.sass"; +import { constant } from 'fp-ts/lib/function'; +import { useMessage, UseMessagePropsDefinition } from '../../../composables/message'; +import { useNoticeController, UseNoticePropsDefinition } from '../../../composables/noticeController'; +import { formatTransition } from '../../../composables/transition'; +import { Transition, h, defineComponent, shallowRef, withDirectives, vShow } from 'vue'; +import { constEmptyArray } from '../../../utils/helpers'; +export const BNotificationPropsDefinition = { ...UseMessagePropsDefinition, + ...UseNoticePropsDefinition, + isNotice: { + type: Boolean, + default: false + }, + icon: { + type: [Object, Function] + } +}; + +function generateCloseButton(props, messageController, noticeController) { + return h('button', { + class: 'delete', + onClick: props.isNotice ? noticeController.close : messageController.setOff + }); +} + +function generateIcon(messageController) { + const icon = messageController.icon.value; + return icon ? h('div', { + class: 'media-left' + }, [h(icon, { + size: messageController.iconSize.value + })]) : undefined; +} + +function generateNoticeContent(context, message) { + return h('div', { + class: 'media-content' + }, context.slots.default && context.slots.default() || h('p', message)); +} + +function generateNoticeBody(props, context, messageController, noticeController, message) { + return h('div', { + class: 'media' + }, props.useIcon && messageController.icon.value ? [generateIcon(messageController), generateNoticeContent(context, message)] : [generateNoticeContent(context, message)]); +} + +function getGenerateNotice(props, context, messageController, noticeController) { + return options => () => { + const notice = h('article', { + class: ['notification', options.variant ?? props.variant, options.position ?? props.position] + }, props.isClosable ? [generateCloseButton(props, messageController, noticeController), generateNoticeBody(props, context, messageController, noticeController, options.message ?? props.message)] : [generateNoticeBody(props, context, messageController, noticeController, options.message ?? props.message)]); + return props.isNotice ? [notice] : [withDirectives(notice, [[vShow, messageController.isOn.value]])]; + }; +} + +export default defineComponent({ + name: 'b-notification', + props: BNotificationPropsDefinition, + + setup(props, context) { + const renderNotification = shallowRef(constant(constEmptyArray)); + const noticeController = useNoticeController(props, renderNotification); + const messageController = useMessage(props); + renderNotification.value = getGenerateNotice(props, context, messageController, noticeController); + return () => props.isNotice ? context.slots.trigger && context.slots.trigger({ + open: noticeController.open, + close: noticeController.close + }) : h(Transition, props.transition ? formatTransition(props.transition) : {}, renderNotification.value({})); + } + +}); +//# sourceMappingURL=BNotification.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/notification/BNotification.js.map b/node_modules/buetify/lib/components/notices/notification/BNotification.js.map new file mode 100755 index 0000000..30a04de --- /dev/null +++ b/node_modules/buetify/lib/components/notices/notification/BNotification.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/notification/BNotification.ts"],"names":[],"mappings":"AAAA,OAAO,8CAAP;AACA,OAAO,sDAAP;AACA,SAAS,QAAT,QAAoC,oBAApC;AAEA,SAAkB,UAAlB,EAA8B,yBAA9B,QAA+D,8BAA/D;AACA,SAIE,mBAJF,EAKE,wBALF,QAMO,uCANP;AAOA,SAAS,gBAAT,QAAiC,iCAAjC;AACA,SACE,UADF,EAGE,CAHF,EAKE,eALF,EAOE,UAPF,EAQE,cARF,EAUE,KAVF,QAaO,KAbP;AAcA,SAAS,eAAT,QAAgC,wBAAhC;AAEA,OAAO,MAAM,4BAA4B,GAAG,EAC1C,GAAG,yBADuC;AAE1C,KAAG,wBAFuC;AAG1C,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,OADE;AAER,IAAA,OAAO,EAAE;AAFD,GAHgC;AAO1C,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT;AADF;AAPoC,CAArC;;AAcP,SAAS,mBAAT,CACE,KADF,EAEE,iBAFF,EAGE,gBAHF,EAGoC;AAElC,SAAO,CAAC,CAAC,QAAD,EAAW;AACjB,IAAA,KAAK,EAAE,QADU;AAEjB,IAAA,OAAO,EAAE,KAAK,CAAC,QAAN,GAAiB,gBAAgB,CAAC,KAAlC,GAA0C,iBAAiB,CAAC;AAFpD,GAAX,CAAR;AAID;;AAED,SAAS,YAAT,CAAsB,iBAAtB,EAAgD;AAC9C,QAAM,IAAI,GAAG,iBAAiB,CAAC,IAAlB,CAAuB,KAApC;AACA,SAAO,IAAI,GAAG,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAiC,CAAC,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,IAAI,EAAE,iBAAiB,CAAC,QAAlB,CAA2B;AAAnC,GAAP,CAAF,CAAjC,CAAJ,GAA8F,SAAzG;AACD;;AAED,SAAS,qBAAT,CAA+B,OAA/B,EAAsD,OAAtD,EAAsE;AACpE,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAqC,OAAO,CAAC,KAAR,CAAc,OAAd,IAAyB,OAAO,CAAC,KAAR,CAAc,OAAd,EAA1B,IAAsD,CAAC,CAAC,GAAD,EAAM,OAAN,CAA3F,CAAR;AACD;;AAED,SAAS,kBAAT,CACE,KADF,EAEE,OAFF,EAGE,iBAHF,EAIE,gBAJF,EAKE,OALF,EAKkB;AAEhB,SAAO,CAAC,CACN,KADM,EAEN;AAAE,IAAA,KAAK,EAAE;AAAT,GAFM,EAGN,KAAK,CAAC,OAAN,IAAiB,iBAAiB,CAAC,IAAlB,CAAuB,KAAxC,GACI,CAAC,YAAY,CAAC,iBAAD,CAAb,EAAkC,qBAAqB,CAAC,OAAD,EAAU,OAAV,CAAvD,CADJ,GAEI,CAAC,qBAAqB,CAAC,OAAD,EAAU,OAAV,CAAtB,CALE,CAAR;AAOD;;AAED,SAAS,iBAAT,CACE,KADF,EAEE,OAFF,EAGE,iBAHF,EAIE,gBAJF,EAIoC;AAElC,SAAQ,OAAD,IAAgC,MAAK;AAC1C,UAAM,MAAM,GAAG,CAAC,CACd,SADc,EAEd;AACE,MAAA,KAAK,EAAE,CAAC,cAAD,EAAiB,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAA1C,EAAmD,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC,QAA7E;AADT,KAFc,EAKd,KAAK,CAAC,UAAN,GACI,CACE,mBAAmB,CAAC,KAAD,EAAQ,iBAAR,EAA2B,gBAA3B,CADrB,EAEE,kBAAkB,CAAC,KAAD,EAAQ,OAAR,EAAiB,iBAAjB,EAAoC,gBAApC,EAAsD,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAA/E,CAFpB,CADJ,GAKI,CAAC,kBAAkB,CAAC,KAAD,EAAQ,OAAR,EAAiB,iBAAjB,EAAoC,gBAApC,EAAsD,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAA/E,CAAnB,CAVU,CAAhB;AAYA,WAAO,KAAK,CAAC,QAAN,GAAiB,CAAC,MAAD,CAAjB,GAA4B,CAAC,cAAc,CAAC,MAAD,EAAS,CAAC,CAAC,KAAD,EAAQ,iBAAiB,CAAC,IAAlB,CAAuB,KAA/B,CAAD,CAAT,CAAf,CAAnC;AACD,GAdD;AAeD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,gBADuB;AAE7B,EAAA,KAAK,EAAE,4BAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAD,CAAT,CAArC;AACA,UAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAD,EAAQ,kBAAR,CAA5C;AACA,UAAM,iBAAiB,GAAG,UAAU,CAAC,KAAD,CAApC;AACA,IAAA,kBAAkB,CAAC,KAAnB,GAA2B,iBAAiB,CAAC,KAAD,EAAQ,OAAR,EAAiB,iBAAjB,EAAoC,gBAApC,CAA5C;AACA,WAAO,MACL,KAAK,CAAC,QAAN,GACI,OAAO,CAAC,KAAR,CAAc,OAAd,IAAyB,OAAO,CAAC,KAAR,CAAc,OAAd,CAAsB;AAAE,MAAA,IAAI,EAAE,gBAAgB,CAAC,IAAzB;AAA+B,MAAA,KAAK,EAAE,gBAAgB,CAAC;AAAvD,KAAtB,CAD7B,GAEI,CAAC,CAAC,UAAD,EAAa,KAAK,CAAC,UAAN,GAAmB,gBAAgB,CAAC,KAAK,CAAC,UAAP,CAAnC,GAAwD,EAArE,EAAyE,kBAAkB,CAAC,KAAnB,CAAyB,EAAzB,CAAzE,CAHP;AAID;;AAZ4B,CAAD,CAA9B","sourcesContent":["import '../../../sass/helpers/animations.sass';\nimport '../sass/notices.sass';\nimport { constant, FunctionN } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { Message, useMessage, UseMessagePropsDefinition } from '../../../composables/message';\nimport {\n NoticeController,\n OpenNoticeOptions,\n RenderNoticeOptions,\n useNoticeController,\n UseNoticePropsDefinition\n} from '../../../composables/noticeController';\nimport { formatTransition } from '../../../composables/transition';\nimport {\n Transition,\n VNode,\n h,\n PropType,\n defineComponent,\n ExtractPropTypes,\n shallowRef,\n withDirectives,\n SetupContext,\n vShow,\n ComponentOptions,\n FunctionalComponent\n} from 'vue';\nimport { constEmptyArray } from '../../../utils/helpers';\n\nexport const BNotificationPropsDefinition = {\n ...UseMessagePropsDefinition,\n ...UseNoticePropsDefinition,\n isNotice: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n icon: {\n type: [Object, Function] as PropType<ComponentOptions | FunctionalComponent>\n }\n};\n\nexport type BNotificationProps = ExtractPropTypes<typeof BNotificationPropsDefinition>;\n\nfunction generateCloseButton(\n props: BNotificationProps,\n messageController: Message,\n noticeController: NoticeController\n): VNode {\n return h('button', {\n class: 'delete',\n onClick: props.isNotice ? noticeController.close : messageController.setOff\n });\n}\n\nfunction generateIcon(messageController: Message): VNode | undefined {\n const icon = messageController.icon.value;\n return icon ? h('div', { class: 'media-left' }, [h(icon, { size: messageController.iconSize.value })]) : undefined;\n}\n\nfunction generateNoticeContent(context: SetupContext, message?: string): VNode {\n return h('div', { class: 'media-content' }, (context.slots.default && context.slots.default()) || h('p', message));\n}\n\nfunction generateNoticeBody(\n props: BNotificationProps,\n context: SetupContext,\n messageController: Message,\n noticeController: NoticeController,\n message?: string\n): VNode {\n return h(\n 'div',\n { class: 'media' },\n props.useIcon && messageController.icon.value\n ? [generateIcon(messageController), generateNoticeContent(context, message)]\n : [generateNoticeContent(context, message)]\n );\n}\n\nfunction getGenerateNotice(\n props: BNotificationProps,\n context: SetupContext,\n messageController: Message,\n noticeController: NoticeController\n) {\n return (options: OpenNoticeOptions) => () => {\n const notice = h(\n 'article',\n {\n class: ['notification', options.variant ?? props.variant, options.position ?? props.position]\n },\n props.isClosable\n ? [\n generateCloseButton(props, messageController, noticeController),\n generateNoticeBody(props, context, messageController, noticeController, options.message ?? props.message)\n ]\n : [generateNoticeBody(props, context, messageController, noticeController, options.message ?? props.message)]\n );\n return props.isNotice ? [notice] : [withDirectives(notice, [[vShow, messageController.isOn.value]])];\n };\n}\n\nexport default defineComponent({\n name: 'b-notification',\n props: BNotificationPropsDefinition,\n setup(props, context) {\n const renderNotification = shallowRef(constant(constEmptyArray) as FunctionN<[RenderNoticeOptions], IO<VNode[]>>);\n const noticeController = useNoticeController(props, renderNotification);\n const messageController = useMessage(props);\n renderNotification.value = getGenerateNotice(props, context, messageController, noticeController);\n return () =>\n props.isNotice\n ? context.slots.trigger && context.slots.trigger({ open: noticeController.open, close: noticeController.close })\n : h(Transition, props.transition ? formatTransition(props.transition) : {}, renderNotification.value({}));\n }\n});\n"],"sourceRoot":"","file":"BNotification.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/notification/index.d.ts b/node_modules/buetify/lib/components/notices/notification/index.d.ts new file mode 100755 index 0000000..144f3dc --- /dev/null +++ b/node_modules/buetify/lib/components/notices/notification/index.d.ts @@ -0,0 +1,3 @@ +import BNotification from './BNotification'; +export { BNotification }; +export default BNotification; diff --git a/node_modules/buetify/lib/components/notices/notification/index.js b/node_modules/buetify/lib/components/notices/notification/index.js new file mode 100755 index 0000000..6acad94 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/notification/index.js @@ -0,0 +1,4 @@ +import BNotification from './BNotification'; +export { BNotification }; +export default BNotification; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/notification/index.js.map b/node_modules/buetify/lib/components/notices/notification/index.js.map new file mode 100755 index 0000000..ed74a2b --- /dev/null +++ b/node_modules/buetify/lib/components/notices/notification/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/notification/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAP,MAA0B,iBAA1B;AAEA,SAAS,aAAT;AAEA,eAAe,aAAf","sourcesContent":["import BNotification from './BNotification';\n\nexport { BNotification };\n\nexport default BNotification;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.d.ts b/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.d.ts new file mode 100755 index 0000000..b968867 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.d.ts @@ -0,0 +1,61 @@ +import '../../../sass/helpers/animations.sass'; +import '../sass/notices.sass'; +declare const _default: import("vue").DefineComponent<{ + position: { + type: import("vue").PropType<import("../../..").PositionVariant>; + default: "is-bottom-right"; + }; + actionText: { + type: import("vue").PropType<string>; + default: string; + }; + onAction: { + type: import("vue").PropType<import("fp-ts/lib/IO").IO<void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: "is-success"; + }; + transition: { + type: import("vue").PropType<import("../../..").Transition>; + required: boolean; + }; + duration: { + type: import("vue").PropType<number>; + default: number; + }; + message: { + type: import("vue").PropType<string>; + }; + shouldQueue: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isIndefinite: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../../..").ColorVariant; + duration: number; + position: import("../../..").PositionVariant; + shouldQueue: boolean; + isIndefinite: boolean; + actionText: string; + onAction: import("fp-ts/lib/IO").IO<void>; +} & { + transition?: string | import("../../..").TransitionClasses | undefined; + message?: string | undefined; +}>, { + variant: import("../../..").ColorVariant; + duration: number; + position: import("../../..").PositionVariant; + shouldQueue: boolean; + isIndefinite: boolean; + actionText: string; + onAction: import("fp-ts/lib/IO").IO<void>; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.js b/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.js new file mode 100755 index 0000000..ce26e27 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.js @@ -0,0 +1,17 @@ +import "../../../../src/sass/helpers/animations.sass"; +import "../../../../src/components/notices/sass/notices.sass"; +import { defineComponent } from 'vue'; +import { SnackbarPropsDefinition, useSnackbar } from '../../../composables/snackbar'; +export default defineComponent({ + name: 'b-snackbar', + props: SnackbarPropsDefinition, + + setup(props, { + slots + }) { + const controller = useSnackbar(props, slots); + return () => slots.default && slots.default(controller); + } + +}); +//# sourceMappingURL=BSnackbar.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.js.map b/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.js.map new file mode 100755 index 0000000..30dfbba --- /dev/null +++ b/node_modules/buetify/lib/components/notices/snackbar/BSnackbar.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/snackbar/BSnackbar.ts"],"names":[],"mappings":"AAAA,OAAO,8CAAP;AACA,OAAO,sDAAP;AACA,SAAS,eAAT,QAAgC,KAAhC;AACA,SAAS,uBAAT,EAAkC,WAAlC,QAAqD,+BAArD;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,YADuB;AAE7B,EAAA,KAAK,EAAE,uBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,UAAU,GAAG,WAAW,CAAC,KAAD,EAAQ,KAAR,CAA9B;AACA,WAAO,MAAM,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,UAAd,CAA9B;AACD;;AAN4B,CAAD,CAA9B","sourcesContent":["import '../../../sass/helpers/animations.sass';\nimport '../sass/notices.sass';\nimport { defineComponent } from 'vue';\nimport { SnackbarPropsDefinition, useSnackbar } from '../../../composables/snackbar';\n\nexport default defineComponent({\n name: 'b-snackbar',\n props: SnackbarPropsDefinition,\n setup(props, { slots }) {\n const controller = useSnackbar(props, slots);\n return () => slots.default && slots.default(controller);\n }\n});\n"],"sourceRoot":"","file":"BSnackbar.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/snackbar/index.d.ts b/node_modules/buetify/lib/components/notices/snackbar/index.d.ts new file mode 100755 index 0000000..20547a0 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/snackbar/index.d.ts @@ -0,0 +1,3 @@ +import BSnackbar from './BSnackbar'; +export { BSnackbar }; +export default BSnackbar; diff --git a/node_modules/buetify/lib/components/notices/snackbar/index.js b/node_modules/buetify/lib/components/notices/snackbar/index.js new file mode 100755 index 0000000..a6fcdf5 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/snackbar/index.js @@ -0,0 +1,4 @@ +import BSnackbar from './BSnackbar'; +export { BSnackbar }; +export default BSnackbar; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/snackbar/index.js.map b/node_modules/buetify/lib/components/notices/snackbar/index.js.map new file mode 100755 index 0000000..441dfc8 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/snackbar/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/snackbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AAEA,SAAS,SAAT;AAEA,eAAe,SAAf","sourcesContent":["import BSnackbar from './BSnackbar';\n\nexport { BSnackbar };\n\nexport default BSnackbar;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/toast/BToast.d.ts b/node_modules/buetify/lib/components/notices/toast/BToast.d.ts new file mode 100755 index 0000000..d9dc7b1 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/toast/BToast.d.ts @@ -0,0 +1,47 @@ +declare const _default: import("vue").DefineComponent<{ + transition: { + type: import("vue").PropType<import("../../..").Transition>; + required: boolean; + }; + position: { + type: import("vue").PropType<import("../../..").PositionVariant>; + default: "is-bottom"; + }; + duration: { + type: import("vue").PropType<number>; + default: number; + }; + message: { + type: import("vue").PropType<string>; + }; + shouldQueue: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + variant: { + type: import("vue").PropType<import("../../..").ColorVariant>; + default: ""; + }; + isIndefinite: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../../..").ColorVariant; + duration: number; + position: import("../../..").PositionVariant; + shouldQueue: boolean; + isIndefinite: boolean; +} & { + transition?: string | import("../../..").TransitionClasses | undefined; + message?: string | undefined; +}>, { + variant: import("../../..").ColorVariant; + duration: number; + position: import("../../..").PositionVariant; + shouldQueue: boolean; + isIndefinite: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/notices/toast/BToast.js b/node_modules/buetify/lib/components/notices/toast/BToast.js new file mode 100755 index 0000000..18b562b --- /dev/null +++ b/node_modules/buetify/lib/components/notices/toast/BToast.js @@ -0,0 +1,16 @@ +import { UseNoticePropsDefinition } from '../../../composables/noticeController'; +import { defineComponent } from 'vue'; +import { useToast } from '../../../composables/toast'; +export default defineComponent({ + name: 'b-toast', + props: UseNoticePropsDefinition, + + setup(props, { + slots + }) { + const controller = useToast(props, slots); + return () => slots.default && slots.default(controller); + } + +}); +//# sourceMappingURL=BToast.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/toast/BToast.js.map b/node_modules/buetify/lib/components/notices/toast/BToast.js.map new file mode 100755 index 0000000..c35903f --- /dev/null +++ b/node_modules/buetify/lib/components/notices/toast/BToast.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/toast/BToast.ts"],"names":[],"mappings":"AAAA,SAAS,wBAAT,QAAyC,uCAAzC;AACA,SAAS,eAAT,QAAgC,KAAhC;AACA,SAAS,QAAT,QAAyB,4BAAzB;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,SADuB;AAE7B,EAAA,KAAK,EAAE,wBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,UAAU,GAAG,QAAQ,CAAC,KAAD,EAAQ,KAAR,CAA3B;AACA,WAAO,MAAM,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,UAAd,CAA9B;AACD;;AAN4B,CAAD,CAA9B","sourcesContent":["import { UseNoticePropsDefinition } from '../../../composables/noticeController';\nimport { defineComponent } from 'vue';\nimport { useToast } from '../../../composables/toast';\n\nexport default defineComponent({\n name: 'b-toast',\n props: UseNoticePropsDefinition,\n setup(props, { slots }) {\n const controller = useToast(props, slots);\n return () => slots.default && slots.default(controller);\n }\n});\n"],"sourceRoot":"","file":"BToast.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/toast/index.d.ts b/node_modules/buetify/lib/components/notices/toast/index.d.ts new file mode 100755 index 0000000..01d8810 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/toast/index.d.ts @@ -0,0 +1,3 @@ +import BToast from './BToast'; +export { BToast }; +export default BToast; diff --git a/node_modules/buetify/lib/components/notices/toast/index.js b/node_modules/buetify/lib/components/notices/toast/index.js new file mode 100755 index 0000000..1f72918 --- /dev/null +++ b/node_modules/buetify/lib/components/notices/toast/index.js @@ -0,0 +1,4 @@ +import BToast from './BToast'; +export { BToast }; +export default BToast; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/notices/toast/index.js.map b/node_modules/buetify/lib/components/notices/toast/index.js.map new file mode 100755 index 0000000..1233c6a --- /dev/null +++ b/node_modules/buetify/lib/components/notices/toast/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/notices/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AAEA,SAAS,MAAT;AAEA,eAAe,MAAf","sourcesContent":["import BToast from './BToast';\n\nexport { BToast };\n\nexport default BToast;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/overlay/BOverlay.d.ts b/node_modules/buetify/lib/components/overlay/BOverlay.d.ts new file mode 100755 index 0000000..ce59ec7 --- /dev/null +++ b/node_modules/buetify/lib/components/overlay/BOverlay.d.ts @@ -0,0 +1,34 @@ +import './overlay.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { PropType } from 'vue'; +declare type OverlayPosition = 'is-left' | 'is-right' | 'is-centered'; +declare const _default: import("vue").DefineComponent<{ + position: { + type: PropType<OverlayPosition>; + required: false; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + isFullscreen: { + type: PropType<boolean>; + default: boolean; + }; + onClick: { + type: PropType<IO<void>>; + required: false; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isActive: boolean; + isFullscreen: boolean; +} & { + position?: "is-left" | "is-right" | "is-centered" | undefined; + onClick?: IO<void> | undefined; +}>, { + isActive: boolean; + isFullscreen: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/overlay/BOverlay.js b/node_modules/buetify/lib/components/overlay/BOverlay.js new file mode 100755 index 0000000..edbca3c --- /dev/null +++ b/node_modules/buetify/lib/components/overlay/BOverlay.js @@ -0,0 +1,54 @@ +import "../../../src/components/overlay/overlay.sass"; +import { h, withDirectives, vShow, defineComponent } from 'vue'; +export default defineComponent({ + name: 'b-overlay', + props: { + position: { + type: String, + required: false + }, + isActive: { + type: Boolean, + default: false + }, + isFullscreen: { + type: Boolean, + default: false + }, + onClick: { + type: Function, + required: false + } + }, + + setup(props, { + slots + }) { + return () => { + if (props.isFullscreen) { + return withDirectives(h('div', { + class: ['b-overlay', props.position] + }, [h('div', { + class: 'b-overlay-background', + onClick: props.onClick + }), h('div', { + class: 'b-overlay-content is-fullscreen' + }, slots.default && slots.default())]), [[vShow, props.isActive]]); + } else { + return withDirectives(h('div', { + class: ['b-overlay', props.position] + }, [h('div', { + onClick: () => { + console.log('overlay background-click'); + props.onClick && props.onClick(); + }, + class: 'b-overlay-background' + }), h('div', { + class: 'b-overlay-content' + }, slots.default && slots.default())]), [[vShow, props.isActive]]); + } + }; + } + +}); +//# sourceMappingURL=BOverlay.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/overlay/BOverlay.js.map b/node_modules/buetify/lib/components/overlay/BOverlay.js.map new file mode 100755 index 0000000..954fc74 --- /dev/null +++ b/node_modules/buetify/lib/components/overlay/BOverlay.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/overlay/BOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,8CAAP;AAEA,SAAS,CAAT,EAAY,cAAZ,EAA4B,KAA5B,EAAmC,eAAnC,QAAoE,KAApE;AAIA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,WADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,MADE;AAER,MAAA,QAAQ,EAAE;AAFF,KADL;AAKL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KALL;AASL,IAAA,YAAY,EAAE;AACZ,MAAA,IAAI,EAAE,OADM;AAEZ,MAAA,OAAO,EAAE;AAFG,KATT;AAaL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,QADC;AAEP,MAAA,QAAQ,EAAE;AAFH;AAbJ,GAFsB;;AAoB7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MAAK;AACV,UAAI,KAAK,CAAC,YAAV,EAAwB;AACtB,eAAO,cAAc,CACnB,CAAC,CACC,KADD,EAEC;AACE,UAAA,KAAK,EAAE,CAAC,WAAD,EAAc,KAAK,CAAC,QAApB;AADT,SAFD,EAKC,CACE,CAAC,CAAC,KAAD,EAAQ;AACP,UAAA,KAAK,EAAE,sBADA;AAEP,UAAA,OAAO,EAAE,KAAK,CAAC;AAFR,SAAR,CADH,EAKE,CAAC,CACC,KADD,EAEC;AACE,UAAA,KAAK,EAAE;AADT,SAFD,EAKC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EALlB,CALH,CALD,CADkB,EAoBnB,CAAC,CAAC,KAAD,EAAQ,KAAK,CAAC,QAAd,CAAD,CApBmB,CAArB;AAsBD,OAvBD,MAuBO;AACL,eAAO,cAAc,CACnB,CAAC,CACC,KADD,EAEC;AACE,UAAA,KAAK,EAAE,CAAC,WAAD,EAAc,KAAK,CAAC,QAApB;AADT,SAFD,EAKC,CACE,CAAC,CAAC,KAAD,EAAQ;AACP,UAAA,OAAO,EAAE,MAAK;AACZ,YAAA,OAAO,CAAC,GAAR,CAAY,0BAAZ;AACA,YAAA,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAAjB;AACD,WAJM;AAKP,UAAA,KAAK,EAAE;AALA,SAAR,CADH,EAQE,CAAC,CACC,KADD,EAEC;AACE,UAAA,KAAK,EAAE;AADT,SAFD,EAKC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EALlB,CARH,CALD,CADkB,EAuBnB,CAAC,CAAC,KAAD,EAAQ,KAAK,CAAC,QAAd,CAAD,CAvBmB,CAArB;AAyBD;AACF,KAnDD;AAoDD;;AAzE4B,CAAD,CAA9B","sourcesContent":["import './overlay.sass';\nimport { IO } from 'fp-ts/lib/IO';\nimport { h, withDirectives, vShow, defineComponent, PropType } from 'vue';\n\ntype OverlayPosition = 'is-left' | 'is-right' | 'is-centered';\n\nexport default defineComponent({\n name: 'b-overlay',\n props: {\n position: {\n type: String as PropType<OverlayPosition>,\n required: false\n },\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isFullscreen: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n onClick: {\n type: Function as PropType<IO<void>>,\n required: false\n }\n },\n setup(props, { slots }) {\n return () => {\n if (props.isFullscreen) {\n return withDirectives(\n h(\n 'div',\n {\n class: ['b-overlay', props.position]\n },\n [\n h('div', {\n class: 'b-overlay-background',\n onClick: props.onClick\n }),\n h(\n 'div',\n {\n class: 'b-overlay-content is-fullscreen'\n },\n slots.default && slots.default()\n )\n ]\n ),\n [[vShow, props.isActive]]\n );\n } else {\n return withDirectives(\n h(\n 'div',\n {\n class: ['b-overlay', props.position]\n },\n [\n h('div', {\n onClick: () => {\n console.log('overlay background-click');\n props.onClick && props.onClick();\n },\n class: 'b-overlay-background'\n }),\n h(\n 'div',\n {\n class: 'b-overlay-content'\n },\n slots.default && slots.default()\n )\n ]\n ),\n [[vShow, props.isActive]]\n );\n }\n };\n }\n});\n"],"sourceRoot":"","file":"BOverlay.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/overlay/index.d.ts b/node_modules/buetify/lib/components/overlay/index.d.ts new file mode 100755 index 0000000..76c80b0 --- /dev/null +++ b/node_modules/buetify/lib/components/overlay/index.d.ts @@ -0,0 +1,3 @@ +import BOverlay from './BOverlay'; +export { BOverlay }; +export default BOverlay; diff --git a/node_modules/buetify/lib/components/overlay/index.js b/node_modules/buetify/lib/components/overlay/index.js new file mode 100755 index 0000000..6ea4541 --- /dev/null +++ b/node_modules/buetify/lib/components/overlay/index.js @@ -0,0 +1,4 @@ +import BOverlay from './BOverlay'; +export { BOverlay }; +export default BOverlay; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/overlay/index.js.map b/node_modules/buetify/lib/components/overlay/index.js.map new file mode 100755 index 0000000..07b7a3e --- /dev/null +++ b/node_modules/buetify/lib/components/overlay/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/overlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,QAAT;AAEA,eAAe,QAAf","sourcesContent":["import BOverlay from './BOverlay';\n\nexport { BOverlay };\n\nexport default BOverlay;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pageLoader/BPageLoader.d.ts b/node_modules/buetify/lib/components/pageLoader/BPageLoader.d.ts new file mode 100755 index 0000000..a765f2c --- /dev/null +++ b/node_modules/buetify/lib/components/pageLoader/BPageLoader.d.ts @@ -0,0 +1,6 @@ +import './pageloader.sass'; +export default function BPageLoader(props: { + text: string; +}): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/pageLoader/BPageLoader.js b/node_modules/buetify/lib/components/pageLoader/BPageLoader.js new file mode 100755 index 0000000..5d30f8b --- /dev/null +++ b/node_modules/buetify/lib/components/pageLoader/BPageLoader.js @@ -0,0 +1,9 @@ +import "../../../src/components/pageLoader/pageloader.sass"; +import { h } from 'vue'; +export default function BPageLoader(props) { + return h('div', { + 'data-content': props.text, + class: 'b-pageloader is-active' + }); +} +//# sourceMappingURL=BPageLoader.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pageLoader/BPageLoader.js.map b/node_modules/buetify/lib/components/pageLoader/BPageLoader.js.map new file mode 100755 index 0000000..1d4f936 --- /dev/null +++ b/node_modules/buetify/lib/components/pageLoader/BPageLoader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pageLoader/BPageLoader.ts"],"names":[],"mappings":"AAAA,OAAO,oDAAP;AACA,SAAS,CAAT,QAAkB,KAAlB;AAEA,eAAc,SAAU,WAAV,CAAsB,KAAtB,EAA6C;AACzD,SAAO,CAAC,CAAC,KAAD,EAAQ;AACd,oBAAgB,KAAK,CAAC,IADR;AAEd,IAAA,KAAK,EAAE;AAFO,GAAR,CAAR;AAID","sourcesContent":["import './pageloader.sass';\nimport { h } from 'vue';\n\nexport default function BPageLoader(props: { text: string }) {\n return h('div', {\n 'data-content': props.text,\n class: 'b-pageloader is-active'\n });\n}\n"],"sourceRoot":"","file":"BPageLoader.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pageLoader/index.d.ts b/node_modules/buetify/lib/components/pageLoader/index.d.ts new file mode 100755 index 0000000..665eea5 --- /dev/null +++ b/node_modules/buetify/lib/components/pageLoader/index.d.ts @@ -0,0 +1,3 @@ +import BPageLoader from './BPageLoader'; +export { BPageLoader }; +export default BPageLoader; diff --git a/node_modules/buetify/lib/components/pageLoader/index.js b/node_modules/buetify/lib/components/pageLoader/index.js new file mode 100755 index 0000000..937c0fa --- /dev/null +++ b/node_modules/buetify/lib/components/pageLoader/index.js @@ -0,0 +1,4 @@ +import BPageLoader from './BPageLoader'; +export { BPageLoader }; +export default BPageLoader; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pageLoader/index.js.map b/node_modules/buetify/lib/components/pageLoader/index.js.map new file mode 100755 index 0000000..5d3aa36 --- /dev/null +++ b/node_modules/buetify/lib/components/pageLoader/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pageLoader/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAP,MAAwB,eAAxB;AAEA,SAAS,WAAT;AAEA,eAAe,WAAf","sourcesContent":["import BPageLoader from './BPageLoader';\n\nexport { BPageLoader };\n\nexport default BPageLoader;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pagination/BPagination.d.ts b/node_modules/buetify/lib/components/pagination/BPagination.d.ts new file mode 100755 index 0000000..00cd92d --- /dev/null +++ b/node_modules/buetify/lib/components/pagination/BPagination.d.ts @@ -0,0 +1,141 @@ +import './pagination.sass'; +import { VNode, PropType, ExtractPropTypes } from 'vue'; +export declare type PaginationSize = 'is-small' | 'is-medium' | 'is-large' | ''; +export declare type PaginationPosition = 'is-centered' | 'is-right' | ''; +export declare type PaginationVerticalPosition = 'is-top' | ''; +export declare const BPaginationPropsDefinition: { + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + isSimple: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<PaginationPosition>; + default: ""; + }; + verticalPosition: { + type: PropType<PaginationVerticalPosition>; + default: ""; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<number>; + default: number; + }; + total: { + type: PropType<number>; + required: boolean; + }; + perPage: { + type: PropType<number>; + default: () => number; + validator: (value: number) => boolean; + }; + items: { + type: PropType<unknown[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}; +export declare type BPaginationProps = ExtractPropTypes<typeof BPaginationPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + isSimple: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + position: { + type: PropType<PaginationPosition>; + default: ""; + }; + verticalPosition: { + type: PropType<PaginationVerticalPosition>; + default: ""; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<number>; + default: number; + }; + total: { + type: PropType<number>; + required: boolean; + }; + perPage: { + type: PropType<number>; + default: () => number; + validator: (value: number) => boolean; + }; + items: { + type: PropType<unknown[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + size: import("../..").SizeVariant; + position: PaginationPosition; + isRounded: boolean; + modelValue: number; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + items: unknown[]; + perPage: number; + isSimple: boolean; + verticalPosition: PaginationVerticalPosition; +} & { + total?: number | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + size: import("../..").SizeVariant; + position: PaginationPosition; + isRounded: boolean; + modelValue: number; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + items: unknown[]; + perPage: number; + isSimple: boolean; + verticalPosition: PaginationVerticalPosition; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/pagination/BPagination.js b/node_modules/buetify/lib/components/pagination/BPagination.js new file mode 100755 index 0000000..0e1a2a2 --- /dev/null +++ b/node_modules/buetify/lib/components/pagination/BPagination.js @@ -0,0 +1,166 @@ +import "../../../src/components/pagination/pagination.sass"; +import { extractPaginationState, usePagination, UsePaginationPropsDefinition } from '../../composables/pagination'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import AngleLeftIcon from '../icons/angleLeft/AngleLeftIcon'; +import AngleRightIcon from '../icons/angleRight/AngleRightIcon'; +import { range } from 'fp-ts/lib/Array'; +import { defineComponent, h } from 'vue'; +export const BPaginationPropsDefinition = { ...UsePaginationPropsDefinition, + ...DefaultThemePropsDefinition, + size: { + type: String, + default: '' + }, + isSimple: { + type: Boolean, + default: false + }, + isRounded: { + type: Boolean, + default: false + }, + position: { + type: String, + default: '' + }, + verticalPosition: { + type: String, + default: '' + } +}; + +function getAriaLabel(num, total) { + return `Go to page ${num} of ${total}`; +} + +const ellipsis = h('li', [h('span', { + class: 'pagination-ellipsis', + innerHTML: `…` +})]); + +function generatePreviousButton(context, pagination, themeClasses) { + return h('button', { + class: ['pagination-previous', ...themeClasses], + disabled: !pagination.hasPrevious.value, + 'aria-label': getAriaLabel(pagination.previousPage.value, pagination.numberOfPages.value), + onClick: pagination.previous + }, context.slots.previous ? context.slots.previous() : h(AngleLeftIcon)); +} + +function generateNextButton(context, pagination, themeClasses) { + return h('button', { + class: ['pagination-next', ...themeClasses], + disabled: !pagination.hasNext.value, + 'aria-label': getAriaLabel(pagination.nextPage.value, pagination.numberOfPages.value), + onClick: pagination.next + }, context.slots.next ? context.slots.next() : h(AngleRightIcon)); +} + +function getGeneratePaginationListItem(pagination, themeClasses) { + return page => h('li', { + key: page.number + }, [h('button', { + class: ['pagination-link', ...themeClasses, { + 'is-current': page.isCurrent + }], + 'aria-label': getAriaLabel(page.number, pagination.numberOfPages.value), + 'aria-current': page.isCurrent, + onClick: e => { + e.preventDefault(); + pagination.set(page.number); + } + }, `${page.number}`)]); +} + +function getPageRange(props, pagination) { + if (props.isSimple) { + return []; + } else { + const currentValue = pagination.current.value; + const numberOfPages = pagination.numberOfPages.value; + const left = currentValue === numberOfPages ? numberOfPages - 3 : Math.max(0, currentValue - 2); // internal value is 1 indexed + + const right = Math.min(left + 3, numberOfPages); + const pages = range(1, numberOfPages).map(number => ({ + number, + isCurrent: number === currentValue + })).slice(left, right); + return pages; + } +} + +function generatePaginationList(props, pagination, themeClasses) { + const generatePaginationListItem = getGeneratePaginationListItem(pagination, themeClasses); + const currentValue = pagination.current.value; + const numberOfPages = pagination.numberOfPages.value; + const nodes = getPageRange(props, pagination).map(generatePaginationListItem); + + if (currentValue >= 5) { + nodes.unshift(ellipsis); + } + + if (currentValue > 3) { + nodes.unshift(generatePaginationListItem({ + number: 1, + isCurrent: currentValue === 1 + })); + } + + if (currentValue < numberOfPages - 3) { + nodes.push(ellipsis); + } + + if (currentValue < numberOfPages - 2) { + nodes.push(generatePaginationListItem({ + number: numberOfPages, + isCurrent: currentValue === numberOfPages + })); + } + + return h('ul', { + class: 'pagination-list' + }, nodes); +} + +function generateSimpleSummary(props, pagination) { + return h('small', { + class: 'info' + }, props.perPage === 1 ? `${pagination.after.value + 1} / ${props.total}` : `${pagination.after.value + 1} - ${Math.min(pagination.after.value + props.perPage, props.total || 0)} / ${props.total || 0}`); +} + +function generatePaginationControls(props, context, pagination, themeClasses) { + return h('section', { + 'aria-label': 'Pagination Controls', + class: ['pagination', props.position, props.size, { + 'is-simple': props.isSimple, + 'is-rounded': props.isRounded + }] + }, props.isSimple ? [generatePreviousButton(context, pagination, themeClasses), generateNextButton(context, pagination, themeClasses), generateSimpleSummary(props, pagination)] : [generatePreviousButton(context, pagination, themeClasses), generateNextButton(context, pagination, themeClasses), generatePaginationList(props, pagination, themeClasses)]); +} + +export default defineComponent({ + name: 'b-pagination', + props: BPaginationPropsDefinition, + + setup(props, context) { + const pagination = usePagination(props); + const { + themeClasses + } = useTheme(props); + return () => { + const controls = generatePaginationControls(props, context, pagination, themeClasses.value); + + if (props.verticalPosition === 'is-top' && context.slots.default) { + return h('article', [controls, context.slots.default(extractPaginationState(pagination))]); + } + + if (context.slots.default) { + return h('article', [context.slots.default(extractPaginationState(pagination)), controls]); + } + + return controls; + }; + } + +}); +//# sourceMappingURL=BPagination.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pagination/BPagination.js.map b/node_modules/buetify/lib/components/pagination/BPagination.js.map new file mode 100755 index 0000000..3dc6a02 --- /dev/null +++ b/node_modules/buetify/lib/components/pagination/BPagination.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pagination/BPagination.ts"],"names":[],"mappings":"AAAA,OAAO,oDAAP;AACA,SACE,sBADF,EAGE,aAHF,EAIE,4BAJF,QAKO,8BALP;AAMA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,yBAAtD;AACA,OAAO,aAAP,MAA0B,kCAA1B;AACA,OAAO,cAAP,MAA2B,oCAA3B;AACA,SAAS,KAAT,QAAsB,iBAAtB;AACA,SAA0B,eAA1B,EAA6D,CAA7D,QAAoF,KAApF;AAQA,OAAO,MAAM,0BAA0B,GAAG,EACxC,GAAG,4BADqC;AAExC,KAAG,2BAFqC;AAGxC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAHkC;AAOxC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,OADE;AAER,IAAA,OAAO,EAAE;AAFD,GAP8B;AAWxC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GAX6B;AAexC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAf8B;AAmBxC,EAAA,gBAAgB,EAAE;AAChB,IAAA,IAAI,EAAE,MADU;AAEhB,IAAA,OAAO,EAAE;AAFO;AAnBsB,CAAnC;;AA2BP,SAAS,YAAT,CAAsB,GAAtB,EAAmC,KAAnC,EAAgD;AAC9C,SAAO,cAAc,GAAG,OAAO,KAAK,EAApC;AACD;;AAED,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAD,EAAO,CACvB,CAAC,CAAC,MAAD,EAAS;AACR,EAAA,KAAK,EAAE,qBADC;AAER,EAAA,SAAS,EAAE;AAFH,CAAT,CADsB,CAAP,CAAlB;;AAOA,SAAS,sBAAT,CAAgC,OAAhC,EAAuD,UAAvD,EAA+E,YAA/E,EAAqG;AACnG,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,qBAAD,EAAwB,GAAG,YAA3B,CADT;AAEE,IAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,WAAX,CAAuB,KAFpC;AAGE,kBAAc,YAAY,CAAC,UAAU,CAAC,YAAX,CAAwB,KAAzB,EAAgC,UAAU,CAAC,aAAX,CAAyB,KAAzD,CAH5B;AAIE,IAAA,OAAO,EAAE,UAAU,CAAC;AAJtB,GAFM,EAQN,OAAO,CAAC,KAAR,CAAc,QAAd,GAAyB,OAAO,CAAC,KAAR,CAAc,QAAd,EAAzB,GAAoD,CAAC,CAAC,aAAD,CAR/C,CAAR;AAUD;;AAED,SAAS,kBAAT,CAA4B,OAA5B,EAAmD,UAAnD,EAA2E,YAA3E,EAAiG;AAC/F,SAAO,CAAC,CACN,QADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB,GAAG,YAAvB,CADT;AAEE,IAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAX,CAAmB,KAFhC;AAGE,kBAAc,YAAY,CAAC,UAAU,CAAC,QAAX,CAAoB,KAArB,EAA4B,UAAU,CAAC,aAAX,CAAyB,KAArD,CAH5B;AAIE,IAAA,OAAO,EAAE,UAAU,CAAC;AAJtB,GAFM,EAQN,OAAO,CAAC,KAAR,CAAc,IAAd,GAAqB,OAAO,CAAC,KAAR,CAAc,IAAd,EAArB,GAA4C,CAAC,CAAC,cAAD,CARvC,CAAR;AAUD;;AAED,SAAS,6BAAT,CAAuC,UAAvC,EAA+D,YAA/D,EAAqF;AACnF,SAAQ,IAAD,IACL,CAAC,CACC,IADD,EAEC;AACE,IAAA,GAAG,EAAE,IAAI,CAAC;AADZ,GAFD,EAKC,CACE,CAAC,CACC,QADD,EAEC;AACE,IAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB,GAAG,YAAvB,EAAqC;AAAE,oBAAc,IAAI,CAAC;AAArB,KAArC,CADT;AAEE,kBAAc,YAAY,CAAC,IAAI,CAAC,MAAN,EAAc,UAAU,CAAC,aAAX,CAAyB,KAAvC,CAF5B;AAGE,oBAAgB,IAAI,CAAC,SAHvB;AAIE,IAAA,OAAO,EAAG,CAAD,IAAkB;AACzB,MAAA,CAAC,CAAC,cAAF;AACA,MAAA,UAAU,CAAC,GAAX,CAAe,IAAI,CAAC,MAApB;AACD;AAPH,GAFD,EAWC,GAAG,IAAI,CAAC,MAAM,EAXf,CADH,CALD,CADH;AAsBD;;AAED,SAAS,YAAT,CAAsB,KAAtB,EAA+C,UAA/C,EAAqE;AACnE,MAAI,KAAK,CAAC,QAAV,EAAoB;AAClB,WAAO,EAAP;AACD,GAFD,MAEO;AACL,UAAM,YAAY,GAAG,UAAU,CAAC,OAAX,CAAmB,KAAxC;AACA,UAAM,aAAa,GAAG,UAAU,CAAC,aAAX,CAAyB,KAA/C;AACA,UAAM,IAAI,GAAG,YAAY,KAAK,aAAjB,GAAiC,aAAa,GAAG,CAAjD,GAAqD,IAAI,CAAC,GAAL,CAAS,CAAT,EAAa,YAAuB,GAAG,CAAvC,CAAlE,CAHK,CAGwG;;AAC7G,UAAM,KAAK,GAAG,IAAI,CAAC,GAAL,CAAS,IAAI,GAAG,CAAhB,EAAmB,aAAnB,CAAd;AACA,UAAM,KAAK,GAAG,KAAK,CAAC,CAAD,EAAI,aAAJ,CAAL,CACX,GADW,CACP,MAAM,KAAK;AACd,MAAA,MADc;AAEd,MAAA,SAAS,EAAE,MAAM,KAAK;AAFR,KAAL,CADC,EAKX,KALW,CAKL,IALK,EAKC,KALD,CAAd;AAMA,WAAO,KAAP;AACD;AACF;;AAED,SAAS,sBAAT,CAAgC,KAAhC,EAAyD,UAAzD,EAAiF,YAAjF,EAAuG;AACrG,QAAM,0BAA0B,GAAG,6BAA6B,CAAC,UAAD,EAAa,YAAb,CAAhE;AACA,QAAM,YAAY,GAAG,UAAU,CAAC,OAAX,CAAmB,KAAxC;AACA,QAAM,aAAa,GAAG,UAAU,CAAC,aAAX,CAAyB,KAA/C;AACA,QAAM,KAAK,GAAY,YAAY,CAAC,KAAD,EAAQ,UAAR,CAAZ,CAAgC,GAAhC,CAAoC,0BAApC,CAAvB;;AACA,MAAI,YAAY,IAAI,CAApB,EAAuB;AACrB,IAAA,KAAK,CAAC,OAAN,CAAc,QAAd;AACD;;AACD,MAAI,YAAY,GAAG,CAAnB,EAAsB;AACpB,IAAA,KAAK,CAAC,OAAN,CAAc,0BAA0B,CAAC;AAAE,MAAA,MAAM,EAAE,CAAV;AAAa,MAAA,SAAS,EAAE,YAAY,KAAK;AAAzC,KAAD,CAAxC;AACD;;AACD,MAAI,YAAY,GAAG,aAAa,GAAG,CAAnC,EAAsC;AACpC,IAAA,KAAK,CAAC,IAAN,CAAW,QAAX;AACD;;AACD,MAAI,YAAY,GAAG,aAAa,GAAG,CAAnC,EAAsC;AACpC,IAAA,KAAK,CAAC,IAAN,CAAW,0BAA0B,CAAC;AAAE,MAAA,MAAM,EAAE,aAAV;AAAyB,MAAA,SAAS,EAAE,YAAY,KAAK;AAArD,KAAD,CAArC;AACD;;AACD,SAAO,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,KAAK,EAAE;AAAT,GAAP,EAAqC,KAArC,CAAR;AACD;;AAED,SAAS,qBAAT,CAA+B,KAA/B,EAAwD,UAAxD,EAA8E;AAC5E,SAAO,CAAC,CACN,OADM,EAEN;AAAE,IAAA,KAAK,EAAE;AAAT,GAFM,EAGN,KAAK,CAAC,OAAN,KAAkB,CAAlB,GACI,GAAG,UAAU,CAAC,KAAX,CAAiB,KAAjB,GAAyB,CAAC,MAAM,KAAK,CAAC,KAAK,EADlD,GAEI,GAAG,UAAU,CAAC,KAAX,CAAiB,KAAjB,GAAyB,CAAC,MAAM,IAAI,CAAC,GAAL,CACjC,UAAU,CAAC,KAAX,CAAiB,KAAjB,GAAyB,KAAK,CAAC,OADE,EAEjC,KAAK,CAAC,KAAN,IAAe,CAFkB,CAGlC,MAAM,KAAK,CAAC,KAAN,IAAe,CAAC,EARrB,CAAR;AAUD;;AAED,SAAS,0BAAT,CACE,KADF,EAEE,OAFF,EAGE,UAHF,EAIE,YAJF,EAIwB;AAEtB,SAAO,CAAC,CACN,SADM,EAEN;AACE,kBAAc,qBADhB;AAEE,IAAA,KAAK,EAAE,CAAC,YAAD,EAAe,KAAK,CAAC,QAArB,EAA+B,KAAK,CAAC,IAArC,EAA2C;AAAE,mBAAa,KAAK,CAAC,QAArB;AAA+B,oBAAc,KAAK,CAAC;AAAnD,KAA3C;AAFT,GAFM,EAMN,KAAK,CAAC,QAAN,GACI,CACE,sBAAsB,CAAC,OAAD,EAAU,UAAV,EAAsB,YAAtB,CADxB,EAEE,kBAAkB,CAAC,OAAD,EAAU,UAAV,EAAsB,YAAtB,CAFpB,EAGE,qBAAqB,CAAC,KAAD,EAAQ,UAAR,CAHvB,CADJ,GAMI,CACE,sBAAsB,CAAC,OAAD,EAAU,UAAV,EAAsB,YAAtB,CADxB,EAEE,kBAAkB,CAAC,OAAD,EAAU,UAAV,EAAsB,YAAtB,CAFpB,EAGE,sBAAsB,CAAC,KAAD,EAAQ,UAAR,EAAoB,YAApB,CAHxB,CAZE,CAAR;AAkBD;;AAOD,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,cADuB;AAE7B,EAAA,KAAK,EAAE,0BAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM,UAAU,GAAG,aAAa,CAAC,KAAD,CAAhC;AACA,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,WAAO,MAAK;AACV,YAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAD,EAAQ,OAAR,EAAiB,UAAjB,EAA6B,YAAY,CAAC,KAA1C,CAA3C;;AACA,UAAI,KAAK,CAAC,gBAAN,KAA2B,QAA3B,IAAuC,OAAO,CAAC,KAAR,CAAc,OAAzD,EAAkE;AAChE,eAAO,CAAC,CAAC,SAAD,EAAY,CAAC,QAAD,EAAW,OAAO,CAAC,KAAR,CAAc,OAAd,CAAsB,sBAAsB,CAAC,UAAD,CAA5C,CAAX,CAAZ,CAAR;AACD;;AACD,UAAI,OAAO,CAAC,KAAR,CAAc,OAAlB,EAA2B;AACzB,eAAO,CAAC,CAAC,SAAD,EAAY,CAAC,OAAO,CAAC,KAAR,CAAc,OAAd,CAAsB,sBAAsB,CAAC,UAAD,CAA5C,CAAD,EAA4D,QAA5D,CAAZ,CAAR;AACD;;AACD,aAAO,QAAP;AACD,KATD;AAUD;;AAhB4B,CAAD,CAA9B","sourcesContent":["import './pagination.sass';\nimport {\n extractPaginationState,\n Pagination,\n usePagination,\n UsePaginationPropsDefinition\n} from '../../composables/pagination';\nimport { DefaultThemePropsDefinition, useTheme } from '../../composables/theme';\nimport AngleLeftIcon from '../icons/angleLeft/AngleLeftIcon';\nimport AngleRightIcon from '../icons/angleRight/AngleRightIcon';\nimport { range } from 'fp-ts/lib/Array';\nimport { VNode, PropType, defineComponent, ExtractPropTypes, h, SetupContext } from 'vue';\n\nexport type PaginationSize = 'is-small' | 'is-medium' | 'is-large' | '';\n\nexport type PaginationPosition = 'is-centered' | 'is-right' | '';\n\nexport type PaginationVerticalPosition = 'is-top' | '';\n\nexport const BPaginationPropsDefinition = {\n ...UsePaginationPropsDefinition,\n ...DefaultThemePropsDefinition,\n size: {\n type: String as PropType<PaginationSize>,\n default: '' as const\n },\n isSimple: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isRounded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n position: {\n type: String as PropType<PaginationPosition>,\n default: '' as const\n },\n verticalPosition: {\n type: String as PropType<PaginationVerticalPosition>,\n default: '' as const\n }\n};\n\nexport type BPaginationProps = ExtractPropTypes<typeof BPaginationPropsDefinition>;\n\nfunction getAriaLabel(num: number, total: number): string {\n return `Go to page ${num} of ${total}`;\n}\n\nconst ellipsis = h('li', [\n h('span', {\n class: 'pagination-ellipsis',\n innerHTML: `…`\n })\n]);\n\nfunction generatePreviousButton(context: SetupContext, pagination: Pagination, themeClasses: string[]): VNode {\n return h(\n 'button',\n {\n class: ['pagination-previous', ...themeClasses],\n disabled: !pagination.hasPrevious.value,\n 'aria-label': getAriaLabel(pagination.previousPage.value, pagination.numberOfPages.value),\n onClick: pagination.previous\n },\n context.slots.previous ? context.slots.previous() : h(AngleLeftIcon)\n );\n}\n\nfunction generateNextButton(context: SetupContext, pagination: Pagination, themeClasses: string[]): VNode {\n return h(\n 'button',\n {\n class: ['pagination-next', ...themeClasses],\n disabled: !pagination.hasNext.value,\n 'aria-label': getAriaLabel(pagination.nextPage.value, pagination.numberOfPages.value),\n onClick: pagination.next\n },\n context.slots.next ? context.slots.next() : h(AngleRightIcon)\n );\n}\n\nfunction getGeneratePaginationListItem(pagination: Pagination, themeClasses: string[]) {\n return (page: Page) =>\n h(\n 'li',\n {\n key: page.number\n },\n [\n h(\n 'button',\n {\n class: ['pagination-link', ...themeClasses, { 'is-current': page.isCurrent }],\n 'aria-label': getAriaLabel(page.number, pagination.numberOfPages.value),\n 'aria-current': page.isCurrent,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n pagination.set(page.number);\n }\n },\n `${page.number}`\n )\n ]\n );\n}\n\nfunction getPageRange(props: BPaginationProps, pagination: Pagination): Page[] {\n if (props.isSimple) {\n return [];\n } else {\n const currentValue = pagination.current.value;\n const numberOfPages = pagination.numberOfPages.value;\n const left = currentValue === numberOfPages ? numberOfPages - 3 : Math.max(0, (currentValue as number) - 2); // internal value is 1 indexed\n const right = Math.min(left + 3, numberOfPages);\n const pages = range(1, numberOfPages)\n .map(number => ({\n number,\n isCurrent: number === currentValue\n }))\n .slice(left, right);\n return pages;\n }\n}\n\nfunction generatePaginationList(props: BPaginationProps, pagination: Pagination, themeClasses: string[]): VNode {\n const generatePaginationListItem = getGeneratePaginationListItem(pagination, themeClasses);\n const currentValue = pagination.current.value;\n const numberOfPages = pagination.numberOfPages.value;\n const nodes: VNode[] = getPageRange(props, pagination).map(generatePaginationListItem);\n if (currentValue >= 5) {\n nodes.unshift(ellipsis);\n }\n if (currentValue > 3) {\n nodes.unshift(generatePaginationListItem({ number: 1, isCurrent: currentValue === 1 }));\n }\n if (currentValue < numberOfPages - 3) {\n nodes.push(ellipsis);\n }\n if (currentValue < numberOfPages - 2) {\n nodes.push(generatePaginationListItem({ number: numberOfPages, isCurrent: currentValue === numberOfPages }));\n }\n return h('ul', { class: 'pagination-list' }, nodes);\n}\n\nfunction generateSimpleSummary(props: BPaginationProps, pagination: Pagination): VNode {\n return h(\n 'small',\n { class: 'info' },\n props.perPage === 1\n ? `${pagination.after.value + 1} / ${props.total}`\n : `${pagination.after.value + 1} - ${Math.min(\n pagination.after.value + props.perPage,\n props.total || 0\n )} / ${props.total || 0}`\n );\n}\n\nfunction generatePaginationControls(\n props: BPaginationProps,\n context: SetupContext,\n pagination: Pagination,\n themeClasses: string[]\n): VNode {\n return h(\n 'section',\n {\n 'aria-label': 'Pagination Controls',\n class: ['pagination', props.position, props.size, { 'is-simple': props.isSimple, 'is-rounded': props.isRounded }]\n },\n props.isSimple\n ? [\n generatePreviousButton(context, pagination, themeClasses),\n generateNextButton(context, pagination, themeClasses),\n generateSimpleSummary(props, pagination)\n ]\n : [\n generatePreviousButton(context, pagination, themeClasses),\n generateNextButton(context, pagination, themeClasses),\n generatePaginationList(props, pagination, themeClasses)\n ]\n );\n}\n\ninterface Page {\n number: number;\n isCurrent: boolean;\n}\n\nexport default defineComponent({\n name: 'b-pagination',\n props: BPaginationPropsDefinition,\n setup(props, context) {\n const pagination = usePagination(props);\n const { themeClasses } = useTheme(props);\n return () => {\n const controls = generatePaginationControls(props, context, pagination, themeClasses.value);\n if (props.verticalPosition === 'is-top' && context.slots.default) {\n return h('article', [controls, context.slots.default(extractPaginationState(pagination))]);\n }\n if (context.slots.default) {\n return h('article', [context.slots.default(extractPaginationState(pagination)), controls]);\n }\n return controls;\n };\n }\n});\n"],"sourceRoot":"","file":"BPagination.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pagination/index.d.ts b/node_modules/buetify/lib/components/pagination/index.d.ts new file mode 100755 index 0000000..a256366 --- /dev/null +++ b/node_modules/buetify/lib/components/pagination/index.d.ts @@ -0,0 +1,3 @@ +import BPagination from './BPagination'; +export { BPagination }; +export default BPagination; diff --git a/node_modules/buetify/lib/components/pagination/index.js b/node_modules/buetify/lib/components/pagination/index.js new file mode 100755 index 0000000..7c760db --- /dev/null +++ b/node_modules/buetify/lib/components/pagination/index.js @@ -0,0 +1,4 @@ +import BPagination from './BPagination'; +export { BPagination }; +export default BPagination; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pagination/index.js.map b/node_modules/buetify/lib/components/pagination/index.js.map new file mode 100755 index 0000000..8c5f79c --- /dev/null +++ b/node_modules/buetify/lib/components/pagination/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pagination/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAP,MAAwB,eAAxB;AAEA,SAAS,WAAT;AAEA,eAAe,WAAf","sourcesContent":["import BPagination from './BPagination';\n\nexport { BPagination };\n\nexport default BPagination;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/popupContainer/BPopupContainer.d.ts b/node_modules/buetify/lib/components/popupContainer/BPopupContainer.d.ts new file mode 100755 index 0000000..90ef00b --- /dev/null +++ b/node_modules/buetify/lib/components/popupContainer/BPopupContainer.d.ts @@ -0,0 +1,34 @@ +import { Eq } from 'fp-ts/lib/Eq'; +import { IO } from 'fp-ts/lib/IO'; +import { VNode } from 'vue'; +import { Transition, TransitionClasses } from '../../types/Transition'; +export interface PopupOptions { + transition: Transition; + render: IO<VNode[]>; +} +export interface Popup extends PopupOptions { + transition: TransitionClasses; + id: number; +} +export declare const eqPopup: Eq<Popup>; +export declare const removePopup: (a: Popup, as: Popup[]) => Popup[]; +declare const BPopupContainer: import("vue").DefineComponent<{}, { + showPopup: (options: PopupOptions) => IO<void>; + popups: { + transition: { + css?: boolean | undefined; + name?: string | undefined; + 'enter-from-class'?: string | undefined; + 'enter-active-class'?: string | undefined; + 'enter-to-class'?: string | undefined; + 'leave-from-class'?: string | undefined; + 'leave-active-class'?: string | undefined; + 'leave-to-class'?: string | undefined; + }; + id: number; + render: IO<VNode[]>; + }[]; + rootZ: import("vue").ComputedRef<-1 | 999>; +}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & {}>, {}>; +export declare type PopupContainer = InstanceType<typeof BPopupContainer>; +export default BPopupContainer; diff --git a/node_modules/buetify/lib/components/popupContainer/BPopupContainer.js b/node_modules/buetify/lib/components/popupContainer/BPopupContainer.js new file mode 100755 index 0000000..f905f48 --- /dev/null +++ b/node_modules/buetify/lib/components/popupContainer/BPopupContainer.js @@ -0,0 +1,66 @@ +import { eq, eqNumber } from 'fp-ts/lib/Eq'; +import { defineComponent, h, Transition as transition, reactive, computed, nextTick } from 'vue'; +import { formatTransition } from '../../composables/transition'; +import { constEmptyArray, removeListItem } from '../../utils/helpers'; +export const eqPopup = eq.contramap(eqNumber, popup => popup.id); +export const removePopup = removeListItem(eqPopup); +const z = 999; +let id = 0; + +function generatePopup(popup, index) { + return h('div', { + key: popup.id, + style: { + 'z-index': z + index + 1 + } + }, [h(transition, popup.transition, popup.render)]); +} + +const BPopupContainer = defineComponent({ + name: 'b-popup-container', + + setup() { + const popups = reactive([]); + + function showPopup(options) { + const nid = id++; + const popup = reactive({ + id: nid, + render: constEmptyArray, + transition: formatTransition(options.transition) + }); + popups.push(popup); + nextTick().then(() => { + popup.render = options.render; + }); + return () => { + popup.render = constEmptyArray; + setTimeout(() => { + const index = popups.findIndex(p => p.id === nid); + + if (index > 0) { + popups.splice(index, 1); + } + }, 250); + }; + } + + const rootZ = computed(() => popups.length ? z : -1); + return { + showPopup, + popups, + rootZ + }; + }, + + render() { + return h('div', { + style: { + 'z-index': this.rootZ + } + }, this.rootZ ? this.popups.map(generatePopup) : undefined); + } + +}); +export default BPopupContainer; +//# sourceMappingURL=BPopupContainer.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/popupContainer/BPopupContainer.js.map b/node_modules/buetify/lib/components/popupContainer/BPopupContainer.js.map new file mode 100755 index 0000000..bfa43e5 --- /dev/null +++ b/node_modules/buetify/lib/components/popupContainer/BPopupContainer.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/popupContainer/BPopupContainer.ts"],"names":[],"mappings":"AAAA,SAAa,EAAb,EAAiB,QAAjB,QAAiC,cAAjC;AAEA,SAAgB,eAAhB,EAAiC,CAAjC,EAAoC,UAAU,IAAI,UAAlD,EAA8D,QAA9D,EAAwE,QAAxE,EAAkF,QAAlF,QAAkG,KAAlG;AACA,SAAS,gBAAT,QAAiC,8BAAjC;AAEA,SAAS,eAAT,EAA0B,cAA1B,QAAgD,qBAAhD;AAYA,OAAO,MAAM,OAAO,GAAc,EAAE,CAAC,SAAH,CAAa,QAAb,EAAuB,KAAK,IAAI,KAAK,CAAC,EAAtC,CAA3B;AAEP,OAAO,MAAM,WAAW,GAAG,cAAc,CAAC,OAAD,CAAlC;AAEP,MAAM,CAAC,GAAG,GAAV;AAEA,IAAI,EAAE,GAAG,CAAT;;AAEA,SAAS,aAAT,CAAuB,KAAvB,EAAqC,KAArC,EAAkD;AAChD,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,GAAG,EAAE,KAAK,CAAC,EAAb;AAAiB,IAAA,KAAK,EAAE;AAAE,iBAAW,CAAC,GAAG,KAAJ,GAAY;AAAzB;AAAxB,GAAR,EAAgE,CACtE,CAAC,CAAC,UAAD,EAAa,KAAK,CAAC,UAAnB,EAA+B,KAAK,CAAC,MAArC,CADqE,CAAhE,CAAR;AAGD;;AAED,MAAM,eAAe,GAAG,eAAe,CAAC;AACtC,EAAA,IAAI,EAAE,mBADgC;;AAEtC,EAAA,KAAK,GAAA;AACH,UAAM,MAAM,GAAG,QAAQ,CAAU,EAAV,CAAvB;;AACA,aAAS,SAAT,CAAmB,OAAnB,EAAwC;AACtC,YAAM,GAAG,GAAG,EAAE,EAAd;AACA,YAAM,KAAK,GAAG,QAAQ,CAAC;AACrB,QAAA,EAAE,EAAE,GADiB;AAErB,QAAA,MAAM,EAAE,eAFa;AAGrB,QAAA,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,UAAT;AAHP,OAAD,CAAtB;AAKA,MAAA,MAAM,CAAC,IAAP,CAAY,KAAZ;AACA,MAAA,QAAQ,GAAG,IAAX,CAAgB,MAAK;AACnB,QAAA,KAAK,CAAC,MAAN,GAAe,OAAO,CAAC,MAAvB;AACD,OAFD;AAGA,aAAO,MAAK;AACV,QAAA,KAAK,CAAC,MAAN,GAAe,eAAf;AACA,QAAA,UAAU,CAAC,MAAK;AACd,gBAAM,KAAK,GAAG,MAAM,CAAC,SAAP,CAAiB,CAAC,IAAI,CAAC,CAAC,EAAF,KAAS,GAA/B,CAAd;;AACA,cAAI,KAAK,GAAG,CAAZ,EAAe;AACb,YAAA,MAAM,CAAC,MAAP,CAAc,KAAd,EAAqB,CAArB;AACD;AACF,SALS,EAKP,GALO,CAAV;AAMD,OARD;AASD;;AACD,UAAM,KAAK,GAAG,QAAQ,CAAC,MAAO,MAAM,CAAC,MAAP,GAAgB,CAAhB,GAAoB,CAAC,CAA7B,CAAtB;AACA,WAAO;AACL,MAAA,SADK;AAEL,MAAA,MAFK;AAGL,MAAA;AAHK,KAAP;AAKD,GA/BqC;;AAgCtC,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAE,mBAAW,KAAK;AAAlB;AAAT,KAAR,EAA8C,KAAK,KAAL,GAAa,KAAK,MAAL,CAAY,GAAZ,CAAgB,aAAhB,CAAb,GAA8C,SAA5F,CAAR;AACD;;AAlCqC,CAAD,CAAvC;AAuCA,eAAe,eAAf","sourcesContent":["import { Eq, eq, eqNumber } from 'fp-ts/lib/Eq';\nimport { IO } from 'fp-ts/lib/IO';\nimport { VNode, defineComponent, h, Transition as transition, reactive, computed, nextTick } from 'vue';\nimport { formatTransition } from '../../composables/transition';\nimport { Transition, TransitionClasses } from '../../types/Transition';\nimport { constEmptyArray, removeListItem } from '../../utils/helpers';\n\nexport interface PopupOptions {\n transition: Transition;\n render: IO<VNode[]>;\n}\n\nexport interface Popup extends PopupOptions {\n transition: TransitionClasses;\n id: number;\n}\n\nexport const eqPopup: Eq<Popup> = eq.contramap(eqNumber, popup => popup.id);\n\nexport const removePopup = removeListItem(eqPopup);\n\nconst z = 999;\n\nlet id = 0;\n\nfunction generatePopup(popup: Popup, index: number): VNode {\n return h('div', { key: popup.id, style: { 'z-index': z + index + 1 } }, [\n h(transition, popup.transition, popup.render)\n ]);\n}\n\nconst BPopupContainer = defineComponent({\n name: 'b-popup-container',\n setup() {\n const popups = reactive<Popup[]>([]);\n function showPopup(options: PopupOptions): IO<void> {\n const nid = id++;\n const popup = reactive({\n id: nid,\n render: constEmptyArray as IO<VNode[]>,\n transition: formatTransition(options.transition)\n });\n popups.push(popup);\n nextTick().then(() => {\n popup.render = options.render;\n });\n return () => {\n popup.render = constEmptyArray;\n setTimeout(() => {\n const index = popups.findIndex(p => p.id === nid);\n if (index > 0) {\n popups.splice(index, 1);\n }\n }, 250);\n };\n }\n const rootZ = computed(() => (popups.length ? z : -1));\n return {\n showPopup,\n popups,\n rootZ\n };\n },\n render(): VNode {\n return h('div', { style: { 'z-index': this.rootZ } }, this.rootZ ? this.popups.map(generatePopup) : undefined);\n }\n});\n\nexport type PopupContainer = InstanceType<typeof BPopupContainer>;\n\nexport default BPopupContainer;\n"],"sourceRoot":"","file":"BPopupContainer.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/popupContainer/index.d.ts b/node_modules/buetify/lib/components/popupContainer/index.d.ts new file mode 100755 index 0000000..7c31b01 --- /dev/null +++ b/node_modules/buetify/lib/components/popupContainer/index.d.ts @@ -0,0 +1,3 @@ +import BPopupContainer from './BPopupContainer'; +export { BPopupContainer }; +export default BPopupContainer; diff --git a/node_modules/buetify/lib/components/popupContainer/index.js b/node_modules/buetify/lib/components/popupContainer/index.js new file mode 100755 index 0000000..eebc177 --- /dev/null +++ b/node_modules/buetify/lib/components/popupContainer/index.js @@ -0,0 +1,4 @@ +import BPopupContainer from './BPopupContainer'; +export { BPopupContainer }; +export default BPopupContainer; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/popupContainer/index.js.map b/node_modules/buetify/lib/components/popupContainer/index.js.map new file mode 100755 index 0000000..385ded3 --- /dev/null +++ b/node_modules/buetify/lib/components/popupContainer/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/popupContainer/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAP,MAA4B,mBAA5B;AAEA,SAAS,eAAT;AAEA,eAAe,eAAf","sourcesContent":["import BPopupContainer from './BPopupContainer';\n\nexport { BPopupContainer };\n\nexport default BPopupContainer;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlan.d.ts b/node_modules/buetify/lib/components/pricingTable/BPricingPlan.d.ts new file mode 100755 index 0000000..f41062d --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlan.d.ts @@ -0,0 +1,10 @@ +import './pricing-table.sass'; +import { VNode, SetupContext } from 'vue'; +export interface BPricingPlanProps { + isActive?: boolean; + amount: number; + interval: number; +} +export default function BPricingPlan(props: BPricingPlanProps, { attrs, slots }: SetupContext): VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlan.js b/node_modules/buetify/lib/components/pricingTable/BPricingPlan.js new file mode 100755 index 0000000..4aa15ca --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlan.js @@ -0,0 +1,35 @@ +import "../../../src/components/pricingTable/pricing-table.sass"; +import BPricingPlanPrice from './BPricingPlanPrice'; +import { h } from 'vue'; +export default function BPricingPlan(props, { + attrs, + slots +}) { + const nodes = []; + + if (slots.header) { + nodes.push(h('div', { + class: 'plan-header' + }, slots.header())); + } + + nodes.push(h('div', { + class: 'plan-pricing-container' + }, slots.price ? slots.price(props) : h(BPricingPlanPrice, props))); + nodes.push(h('div', { + class: 'plan-items' + }, slots.items && slots.items())); + + if (slots.footer) { + nodes.push(h('div', { + class: 'plan-footer' + }, slots.footer())); + } + + return h('section', { ...attrs, + class: ['pricing-plan', { + 'is-active': !!props.isActive + }] + }, nodes); +} +//# sourceMappingURL=BPricingPlan.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlan.js.map b/node_modules/buetify/lib/components/pricingTable/BPricingPlan.js.map new file mode 100755 index 0000000..5abe68d --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlan.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pricingTable/BPricingPlan.ts"],"names":[],"mappings":"AAAA,OAAO,yDAAP;AACA,OAAO,iBAAP,MAA8B,qBAA9B;AACA,SAAgB,CAAhB,QAAuC,KAAvC;AAQA,eAAc,SAAU,YAAV,CAAuB,KAAvB,EAAiD;AAAE,EAAA,KAAF;AAAS,EAAA;AAAT,CAAjD,EAA+E;AAC3F,QAAM,KAAK,GAAY,EAAvB;;AACA,MAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,IAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAT,KAAR,EAAkC,KAAK,CAAC,MAAN,EAAlC,CAAZ;AACD;;AACD,EAAA,KAAK,CAAC,IAAN,CACE,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAA6C,KAAK,CAAC,KAAN,GAAc,KAAK,CAAC,KAAN,CAAY,KAAZ,CAAd,GAAmC,CAAC,CAAC,iBAAD,EAAoB,KAApB,CAAjF,CADH;AAGA,EAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAiC,KAAK,CAAC,KAAN,IAAe,KAAK,CAAC,KAAN,EAAhD,CAAZ;;AACA,MAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,IAAA,KAAK,CAAC,IAAN,CAAW,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAT,KAAR,EAAkC,KAAK,CAAC,MAAN,EAAlC,CAAZ;AACD;;AACD,SAAO,CAAC,CAAC,SAAD,EAAY,EAAE,GAAG,KAAL;AAAY,IAAA,KAAK,EAAE,CAAC,cAAD,EAAiB;AAAE,mBAAa,CAAC,CAAC,KAAK,CAAC;AAAvB,KAAjB;AAAnB,GAAZ,EAAsF,KAAtF,CAAR;AACD","sourcesContent":["import './pricing-table.sass';\nimport BPricingPlanPrice from './BPricingPlanPrice';\nimport { VNode, h, SetupContext } from 'vue';\n\nexport interface BPricingPlanProps {\n isActive?: boolean;\n amount: number;\n interval: number;\n}\n\nexport default function BPricingPlan(props: BPricingPlanProps, { attrs, slots }: SetupContext) {\n const nodes: VNode[] = [];\n if (slots.header) {\n nodes.push(h('div', { class: 'plan-header' }, slots.header()));\n }\n nodes.push(\n h('div', { class: 'plan-pricing-container' }, slots.price ? slots.price(props) : h(BPricingPlanPrice, props))\n );\n nodes.push(h('div', { class: 'plan-items' }, slots.items && slots.items()));\n if (slots.footer) {\n nodes.push(h('div', { class: 'plan-footer' }, slots.footer()));\n }\n return h('section', { ...attrs, class: ['pricing-plan', { 'is-active': !!props.isActive }] }, nodes);\n}\n"],"sourceRoot":"","file":"BPricingPlan.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.d.ts b/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.js b/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.js new file mode 100755 index 0000000..b6bc7a2 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('plan-item'); +//# sourceMappingURL=BPricingPlanItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.js.map b/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.js.map new file mode 100755 index 0000000..7cdf51b --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlanItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pricingTable/BPricingPlanItem.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,WAAD,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('plan-item');\n"],"sourceRoot":"","file":"BPricingPlanItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.d.ts b/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.d.ts new file mode 100755 index 0000000..7eece44 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.d.ts @@ -0,0 +1,6 @@ +import { SetupContext } from 'vue'; +import { BPricingPlanProps } from './BPricingPlan'; +export declare type BPricingPlanPriceProps = Omit<BPricingPlanProps, 'isActive'>; +export default function BPricingPlanPrice(props: BPricingPlanPriceProps, { attrs, slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.js b/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.js new file mode 100755 index 0000000..87494d7 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.js @@ -0,0 +1,14 @@ +import { h } from 'vue'; +export default function BPricingPlanPrice(props, { + attrs, + slots +}) { + return h('div', { ...attrs, + class: 'plan-price' + }, [h('span', { + class: 'plan-price-amount' + }, [h('span', { + class: 'plan-price-currency' + }, slots.currency ? slots.currency() : '$'), `${props.amount}`]), `/${props.interval}`]); +} +//# sourceMappingURL=BPricingPlanPrice.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.js.map b/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.js.map new file mode 100755 index 0000000..322ab8e --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingPlanPrice.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pricingTable/BPricingPlanPrice.ts"],"names":[],"mappings":"AAAA,SAAuB,CAAvB,QAAgC,KAAhC;AAKA,eAAc,SAAU,iBAAV,CAA4B,KAA5B,EAA2D;AAAE,EAAA,KAAF;AAAS,EAAA;AAAT,CAA3D,EAAyF;AACrG,SAAO,CAAC,CAAC,KAAD,EAAQ,EAAE,GAAG,KAAL;AAAY,IAAA,KAAK,EAAE;AAAnB,GAAR,EAA2C,CACjD,CAAC,CAAC,MAAD,EAAS;AAAE,IAAA,KAAK,EAAE;AAAT,GAAT,EAAyC,CACxC,CAAC,CAAC,MAAD,EAAS;AAAE,IAAA,KAAK,EAAE;AAAT,GAAT,EAA2C,KAAK,CAAC,QAAN,GAAiB,KAAK,CAAC,QAAN,EAAjB,GAAoC,GAA/E,CADuC,EAExC,GAAG,KAAK,CAAC,MAAM,EAFyB,CAAzC,CADgD,EAKjD,IAAI,KAAK,CAAC,QAAQ,EAL+B,CAA3C,CAAR;AAOD","sourcesContent":["import { SetupContext, h } from 'vue';\nimport { BPricingPlanProps } from './BPricingPlan';\n\nexport type BPricingPlanPriceProps = Omit<BPricingPlanProps, 'isActive'>;\n\nexport default function BPricingPlanPrice(props: BPricingPlanPriceProps, { attrs, slots }: SetupContext) {\n return h('div', { ...attrs, class: 'plan-price' }, [\n h('span', { class: 'plan-price-amount' }, [\n h('span', { class: 'plan-price-currency' }, slots.currency ? slots.currency() : '$'),\n `${props.amount}`\n ]),\n `/${props.interval}`\n ]);\n}\n"],"sourceRoot":"","file":"BPricingPlanPrice.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingTable.d.ts b/node_modules/buetify/lib/components/pricingTable/BPricingTable.d.ts new file mode 100755 index 0000000..0c0a24c --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingTable.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingTable.js b/node_modules/buetify/lib/components/pricingTable/BPricingTable.js new file mode 100755 index 0000000..b67c700 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingTable.js @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('pricing-table', 'article'); +//# sourceMappingURL=BPricingTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/BPricingTable.js.map b/node_modules/buetify/lib/components/pricingTable/BPricingTable.js.map new file mode 100755 index 0000000..9e45b21 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/BPricingTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pricingTable/BPricingTable.ts"],"names":[],"mappings":"AAAA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,eAAD,EAAkB,SAAlB,CAA3C","sourcesContent":["import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('pricing-table', 'article');\n"],"sourceRoot":"","file":"BPricingTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/index.d.ts b/node_modules/buetify/lib/components/pricingTable/index.d.ts new file mode 100755 index 0000000..4015326 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/index.d.ts @@ -0,0 +1,5 @@ +import BPricingPlan from './BPricingPlan'; +import BPricingPlanItem from './BPricingPlanItem'; +import BPricingPlanPrice from './BPricingPlanPrice'; +import BPricingTable from './BPricingTable'; +export { BPricingPlanPrice, BPricingTable, BPricingPlanItem, BPricingPlan }; diff --git a/node_modules/buetify/lib/components/pricingTable/index.js b/node_modules/buetify/lib/components/pricingTable/index.js new file mode 100755 index 0000000..c42cfaa --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/index.js @@ -0,0 +1,6 @@ +import BPricingPlan from './BPricingPlan'; +import BPricingPlanItem from './BPricingPlanItem'; +import BPricingPlanPrice from './BPricingPlanPrice'; +import BPricingTable from './BPricingTable'; +export { BPricingPlanPrice, BPricingTable, BPricingPlanItem, BPricingPlan }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/pricingTable/index.js.map b/node_modules/buetify/lib/components/pricingTable/index.js.map new file mode 100755 index 0000000..b37d507 --- /dev/null +++ b/node_modules/buetify/lib/components/pricingTable/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/pricingTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAP,MAAyB,gBAAzB;AACA,OAAO,gBAAP,MAA6B,oBAA7B;AACA,OAAO,iBAAP,MAA8B,qBAA9B;AACA,OAAO,aAAP,MAA0B,iBAA1B;AAEA,SAAS,iBAAT,EAA4B,aAA5B,EAA2C,gBAA3C,EAA6D,YAA7D","sourcesContent":["import BPricingPlan from './BPricingPlan';\nimport BPricingPlanItem from './BPricingPlanItem';\nimport BPricingPlanPrice from './BPricingPlanPrice';\nimport BPricingTable from './BPricingTable';\n\nexport { BPricingPlanPrice, BPricingTable, BPricingPlanItem, BPricingPlan };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.d.ts b/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.d.ts new file mode 100755 index 0000000..a19dffd --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.d.ts @@ -0,0 +1,10 @@ +export declare const DeferRendering: import("vue").DefineComponent<{ + frames: { + type: NumberConstructor; + required: true; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + frames: number; +} & {}>, {}>; diff --git a/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.js b/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.js new file mode 100755 index 0000000..2a758f2 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.js @@ -0,0 +1,46 @@ +import { shallowRef, onMounted, defineComponent } from 'vue'; +export const DeferRendering = defineComponent({ + name: 'defer-rendering', + props: { + frames: { + type: Number, + required: true + } + }, + + setup(props, { + slots + }) { + const currentFrame = shallowRef(0); + + function checkRenderingStatus() { + if (props.frames > 0) { + if (window && window.requestAnimationFrame) { + const step = () => { + requestAnimationFrame(() => { + if (currentFrame.value < props.frames) { + currentFrame.value++; + step(); + } + }); + }; + + step(); + } else { + setTimeout(() => currentFrame.value = props.frames, props.frames * 16); + } + } + } + + onMounted(checkRenderingStatus); + return () => { + if (currentFrame.value >= props.frames && slots.default) { + return slots.default(); + } else { + return undefined; + } + }; + } + +}); +//# sourceMappingURL=DeferRendering.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.js.map b/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.js.map new file mode 100755 index 0000000..554e425 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/deferRendering/DeferRendering.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/deferRendering/DeferRendering.ts"],"names":[],"mappings":"AAAA,SAAS,UAAT,EAAqB,SAArB,EAAgC,eAAhC,QAAuD,KAAvD;AAEA,OAAO,MAAM,cAAc,GAAG,eAAe,CAAC;AAC5C,EAAA,IAAI,EAAE,iBADsC;AAE5C,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,MADA;AAEN,MAAA,QAAQ,EAAE;AAFJ;AADH,GAFqC;;AAQ5C,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,YAAY,GAAG,UAAU,CAAC,CAAD,CAA/B;;AACA,aAAS,oBAAT,GAA6B;AAC3B,UAAI,KAAK,CAAC,MAAN,GAAe,CAAnB,EAAsB;AACpB,YAAI,MAAM,IAAI,MAAM,CAAC,qBAArB,EAA4C;AAC1C,gBAAM,IAAI,GAAG,MAAK;AAChB,YAAA,qBAAqB,CAAC,MAAK;AACzB,kBAAI,YAAY,CAAC,KAAb,GAAqB,KAAK,CAAC,MAA/B,EAAuC;AACrC,gBAAA,YAAY,CAAC,KAAb;AACA,gBAAA,IAAI;AACL;AACF,aALoB,CAArB;AAMD,WAPD;;AAQA,UAAA,IAAI;AACL,SAVD,MAUO;AACL,UAAA,UAAU,CAAC,MAAO,YAAY,CAAC,KAAb,GAAqB,KAAK,CAAC,MAAnC,EAA4C,KAAK,CAAC,MAAN,GAAe,EAA3D,CAAV;AACD;AACF;AACF;;AACD,IAAA,SAAS,CAAC,oBAAD,CAAT;AACA,WAAO,MAAK;AACV,UAAI,YAAY,CAAC,KAAb,IAAsB,KAAK,CAAC,MAA5B,IAAsC,KAAK,CAAC,OAAhD,EAAyD;AACvD,eAAO,KAAK,CAAC,OAAN,EAAP;AACD,OAFD,MAEO;AACL,eAAO,SAAP;AACD;AACF,KAND;AAOD;;AAnC2C,CAAD,CAAtC","sourcesContent":["import { shallowRef, onMounted, defineComponent } from 'vue';\n\nexport const DeferRendering = defineComponent({\n name: 'defer-rendering',\n props: {\n frames: {\n type: Number,\n required: true\n }\n },\n setup(props, { slots }) {\n const currentFrame = shallowRef(0);\n function checkRenderingStatus() {\n if (props.frames > 0) {\n if (window && window.requestAnimationFrame) {\n const step = () => {\n requestAnimationFrame(() => {\n if (currentFrame.value < props.frames) {\n currentFrame.value++;\n step();\n }\n });\n };\n step();\n } else {\n setTimeout(() => (currentFrame.value = props.frames), props.frames * 16);\n }\n }\n }\n onMounted(checkRenderingStatus);\n return () => {\n if (currentFrame.value >= props.frames && slots.default) {\n return slots.default();\n } else {\n return undefined;\n }\n };\n }\n});\n"],"sourceRoot":"","file":"DeferRendering.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/deferRendering/index.d.ts b/node_modules/buetify/lib/components/renderless/deferRendering/index.d.ts new file mode 100755 index 0000000..a87810e --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/deferRendering/index.d.ts @@ -0,0 +1,3 @@ +import { DeferRendering } from './DeferRendering'; +export { DeferRendering }; +export default DeferRendering; diff --git a/node_modules/buetify/lib/components/renderless/deferRendering/index.js b/node_modules/buetify/lib/components/renderless/deferRendering/index.js new file mode 100755 index 0000000..f092b62 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/deferRendering/index.js @@ -0,0 +1,4 @@ +import { DeferRendering } from './DeferRendering'; +export { DeferRendering }; +export default DeferRendering; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/deferRendering/index.js.map b/node_modules/buetify/lib/components/renderless/deferRendering/index.js.map new file mode 100755 index 0000000..47b4c1f --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/deferRendering/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/deferRendering/index.ts"],"names":[],"mappings":"AAAA,SAAS,cAAT,QAA+B,kBAA/B;AAEA,SAAS,cAAT;AAEA,eAAe,cAAf","sourcesContent":["import { DeferRendering } from './DeferRendering';\n\nexport { DeferRendering };\n\nexport default DeferRendering;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/index.d.ts b/node_modules/buetify/lib/components/renderless/index.d.ts new file mode 100755 index 0000000..90e98a5 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/index.d.ts @@ -0,0 +1,4 @@ +export * from './deferRendering'; +export * from './paginationState'; +export * from './toggle'; +export * from './windowSize'; diff --git a/node_modules/buetify/lib/components/renderless/index.js b/node_modules/buetify/lib/components/renderless/index.js new file mode 100755 index 0000000..0b6110f --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/index.js @@ -0,0 +1,5 @@ +export * from './deferRendering'; +export * from './paginationState'; +export * from './toggle'; +export * from './windowSize'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/index.js.map b/node_modules/buetify/lib/components/renderless/index.js.map new file mode 100755 index 0000000..c1b21d4 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/renderless/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAd;AACA,cAAc,mBAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd","sourcesContent":["export * from './deferRendering';\nexport * from './paginationState';\nexport * from './toggle';\nexport * from './windowSize';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.d.ts b/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.d.ts new file mode 100755 index 0000000..d83da6f --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.d.ts @@ -0,0 +1,37 @@ +export declare const PaginationState: import("vue").DefineComponent<{ + modelValue: { + type: import("vue").PropType<number>; + default: number; + }; + total: { + type: import("vue").PropType<number>; + required: boolean; + }; + perPage: { + type: import("vue").PropType<number>; + default: () => number; + validator: (value: number) => boolean; + }; + items: { + type: import("vue").PropType<unknown[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:modelValue': { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + modelValue: number; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + items: unknown[]; + perPage: number; +} & { + total?: number | undefined; +}>, { + modelValue: number; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + items: unknown[]; + perPage: number; +}>; diff --git a/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.js b/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.js new file mode 100755 index 0000000..ef2a481 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.js @@ -0,0 +1,15 @@ +import { extractPaginationState, usePagination, UsePaginationPropsDefinition } from '../../../composables/pagination'; +import { defineComponent } from 'vue'; +export const PaginationState = defineComponent({ + name: 'pagination-state', + props: UsePaginationPropsDefinition, + + setup(props, { + slots + }) { + const pagination = usePagination(props); + return () => slots.default && slots.default(extractPaginationState(pagination)); + } + +}); +//# sourceMappingURL=PaginationState.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.js.map b/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.js.map new file mode 100755 index 0000000..58941c6 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/paginationState/PaginationState.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/paginationState/PaginationState.ts"],"names":[],"mappings":"AAAA,SAAS,sBAAT,EAAiC,aAAjC,EAAgD,4BAAhD,QAAoF,iCAApF;AACA,SAAS,eAAT,QAAgC,KAAhC;AAEA,OAAO,MAAM,eAAe,GAAG,eAAe,CAAC;AAC7C,EAAA,IAAI,EAAE,kBADuC;AAE7C,EAAA,KAAK,EAAE,4BAFsC;;AAG7C,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,UAAU,GAAG,aAAa,CAAC,KAAD,CAAhC;AACA,WAAO,MAAM,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,sBAAsB,CAAC,UAAD,CAApC,CAA9B;AACD;;AAN4C,CAAD,CAAvC","sourcesContent":["import { extractPaginationState, usePagination, UsePaginationPropsDefinition } from '../../../composables/pagination';\nimport { defineComponent } from 'vue';\n\nexport const PaginationState = defineComponent({\n name: 'pagination-state',\n props: UsePaginationPropsDefinition,\n setup(props, { slots }) {\n const pagination = usePagination(props);\n return () => slots.default && slots.default(extractPaginationState(pagination));\n }\n});\n"],"sourceRoot":"","file":"PaginationState.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/paginationState/index.d.ts b/node_modules/buetify/lib/components/renderless/paginationState/index.d.ts new file mode 100755 index 0000000..fcd4ece --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/paginationState/index.d.ts @@ -0,0 +1,3 @@ +import { PaginationState } from './PaginationState'; +export { PaginationState }; +export default PaginationState; diff --git a/node_modules/buetify/lib/components/renderless/paginationState/index.js b/node_modules/buetify/lib/components/renderless/paginationState/index.js new file mode 100755 index 0000000..0b9b5b7 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/paginationState/index.js @@ -0,0 +1,4 @@ +import { PaginationState } from './PaginationState'; +export { PaginationState }; +export default PaginationState; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/paginationState/index.js.map b/node_modules/buetify/lib/components/renderless/paginationState/index.js.map new file mode 100755 index 0000000..d7db1fc --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/paginationState/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/paginationState/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,mBAAhC;AAEA,SAAS,eAAT;AAEA,eAAe,eAAf","sourcesContent":["import { PaginationState } from './PaginationState';\n\nexport { PaginationState };\n\nexport default PaginationState;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.d.ts b/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.d.ts new file mode 100755 index 0000000..e91ec84 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.d.ts @@ -0,0 +1,16 @@ +export declare function defineToggle<K extends string>(statusName: K): import("vue").DefineComponent<import("../../../composables/toggle").UseTogglePropsDefinition<K>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<import("../../../composables/toggle").UseTogglePropsDefinition<K>>>, import("vue").ExtractDefaultPropTypes<import("../../../composables/toggle").UseTogglePropsDefinition<K>>>; +export declare const DefaultToggle: import("vue").DefineComponent<import("../../../composables/toggle").UseTogglePropsDefinition<"status">, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + hasPopup: boolean; + status: boolean; +} & { + onToggle?: import("fp-ts/lib/function").FunctionN<[boolean], void> | undefined; + onSetOn?: import("fp-ts/lib/IO").IO<void> | undefined; + onSetOff?: import("fp-ts/lib/IO").IO<void> | undefined; +}>, { + hasPopup: boolean; + status: boolean; +}>; diff --git a/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.js b/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.js new file mode 100755 index 0000000..9559ef8 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.js @@ -0,0 +1,26 @@ +import { getUseTogglePropsDefinition, useToggle } from '../../../composables/toggle'; +import { defineComponent } from 'vue'; +export function defineToggle(statusName) { + return defineComponent({ + name: 'toggle', + props: getUseTogglePropsDefinition(statusName), + + setup(props, { + slots + }) { + const toggle = useToggle(props, statusName); + return () => slots.default && slots.default({ + attrs: toggle.attrs.value, + listeners: toggle.listeners, + isOn: toggle.isOn.value, + isOff: toggle.isOff.value, + setOn: toggle.setOn, + setOff: toggle.setOff, + toggle: toggle.toggle + }); + } + + }); +} +export const DefaultToggle = defineToggle('status'); +//# sourceMappingURL=DefaultToggle.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.js.map b/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.js.map new file mode 100755 index 0000000..27c19b7 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/toggle/DefaultToggle.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/toggle/DefaultToggle.ts"],"names":[],"mappings":"AAAA,SAAS,2BAAT,EAAsC,SAAtC,QAAuE,6BAAvE;AACA,SAAS,eAAT,QAAgC,KAAhC;AAEA,OAAM,SAAU,YAAV,CAAyC,UAAzC,EAAsD;AAC1D,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,QADe;AAErB,IAAA,KAAK,EAAE,2BAA2B,CAAI,UAAJ,CAFb;;AAGrB,IAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,MAAA;AAAF,KAAR,EAAiB;AACpB,YAAM,MAAM,GAAG,SAAS,CAAE,KAAF,EAA0C,UAA1C,CAAxB;AACA,aAAO,MACL,KAAK,CAAC,OAAN,IACA,KAAK,CAAC,OAAN,CAAc;AACZ,QAAA,KAAK,EAAE,MAAM,CAAC,KAAP,CAAa,KADR;AAEZ,QAAA,SAAS,EAAE,MAAM,CAAC,SAFN;AAGZ,QAAA,IAAI,EAAE,MAAM,CAAC,IAAP,CAAY,KAHN;AAIZ,QAAA,KAAK,EAAE,MAAM,CAAC,KAAP,CAAa,KAJR;AAKZ,QAAA,KAAK,EAAE,MAAM,CAAC,KALF;AAMZ,QAAA,MAAM,EAAE,MAAM,CAAC,MANH;AAOZ,QAAA,MAAM,EAAE,MAAM,CAAC;AAPH,OAAd,CAFF;AAWD;;AAhBoB,GAAD,CAAtB;AAkBD;AAED,OAAO,MAAM,aAAa,GAAG,YAAY,CAAC,QAAD,CAAlC","sourcesContent":["import { getUseTogglePropsDefinition, useToggle, UseToggleProps } from '../../../composables/toggle';\nimport { defineComponent } from 'vue';\n\nexport function defineToggle<K extends string>(statusName: K) {\n return defineComponent({\n name: 'toggle',\n props: getUseTogglePropsDefinition<K>(statusName),\n setup(props, { slots }) {\n const toggle = useToggle((props as unknown) as UseToggleProps<K>, statusName);\n return () =>\n slots.default &&\n slots.default({\n attrs: toggle.attrs.value,\n listeners: toggle.listeners,\n isOn: toggle.isOn.value,\n isOff: toggle.isOff.value,\n setOn: toggle.setOn,\n setOff: toggle.setOff,\n toggle: toggle.toggle\n });\n }\n });\n}\n\nexport const DefaultToggle = defineToggle('status');\n"],"sourceRoot":"","file":"DefaultToggle.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/toggle/index.d.ts b/node_modules/buetify/lib/components/renderless/toggle/index.d.ts new file mode 100755 index 0000000..636de25 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/toggle/index.d.ts @@ -0,0 +1 @@ +export * from './DefaultToggle'; diff --git a/node_modules/buetify/lib/components/renderless/toggle/index.js b/node_modules/buetify/lib/components/renderless/toggle/index.js new file mode 100755 index 0000000..be837f1 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/toggle/index.js @@ -0,0 +1,2 @@ +export * from './DefaultToggle'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/toggle/index.js.map b/node_modules/buetify/lib/components/renderless/toggle/index.js.map new file mode 100755 index 0000000..8696c51 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/toggle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/toggle/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAd","sourcesContent":["export * from './DefaultToggle';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.d.ts b/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.d.ts new file mode 100755 index 0000000..a5f3a8a --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.d.ts @@ -0,0 +1,3 @@ +export declare const WindowSizeSlot: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & {}>, {}>; diff --git a/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.js b/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.js new file mode 100755 index 0000000..3747095 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.js @@ -0,0 +1,14 @@ +import { defineComponent } from 'vue'; +import { useWindowSize } from '../../../composables/windowSize'; +export const WindowSizeSlot = defineComponent({ + name: 'window-size', + + setup(_, { + slots + }) { + const windowSize = useWindowSize(); + return () => slots.default && slots.default(windowSize.value); + } + +}); +//# sourceMappingURL=WindowSizeSlot.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.js.map b/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.js.map new file mode 100755 index 0000000..5a9275a --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/windowSize/WindowSizeSlot.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/windowSize/WindowSizeSlot.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AACA,SAAS,aAAT,QAA8B,iCAA9B;AAEA,OAAO,MAAM,cAAc,GAAG,eAAe,CAAC;AAC5C,EAAA,IAAI,EAAE,aADsC;;AAE5C,EAAA,KAAK,CAAC,CAAD,EAAI;AAAE,IAAA;AAAF,GAAJ,EAAa;AAChB,UAAM,UAAU,GAAG,aAAa,EAAhC;AACA,WAAO,MAAM,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc,UAAU,CAAC,KAAzB,CAA9B;AACD;;AAL2C,CAAD,CAAtC","sourcesContent":["import { defineComponent } from 'vue';\nimport { useWindowSize } from '../../../composables/windowSize';\n\nexport const WindowSizeSlot = defineComponent({\n name: 'window-size',\n setup(_, { slots }) {\n const windowSize = useWindowSize();\n return () => slots.default && slots.default(windowSize.value);\n }\n});\n"],"sourceRoot":"","file":"WindowSizeSlot.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/windowSize/index.d.ts b/node_modules/buetify/lib/components/renderless/windowSize/index.d.ts new file mode 100755 index 0000000..c7a1cae --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/windowSize/index.d.ts @@ -0,0 +1,3 @@ +import { WindowSizeSlot } from './WindowSizeSlot'; +export { WindowSizeSlot }; +export default WindowSizeSlot; diff --git a/node_modules/buetify/lib/components/renderless/windowSize/index.js b/node_modules/buetify/lib/components/renderless/windowSize/index.js new file mode 100755 index 0000000..03b0c84 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/windowSize/index.js @@ -0,0 +1,4 @@ +import { WindowSizeSlot } from './WindowSizeSlot'; +export { WindowSizeSlot }; +export default WindowSizeSlot; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/renderless/windowSize/index.js.map b/node_modules/buetify/lib/components/renderless/windowSize/index.js.map new file mode 100755 index 0000000..a901b17 --- /dev/null +++ b/node_modules/buetify/lib/components/renderless/windowSize/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/renderless/windowSize/index.ts"],"names":[],"mappings":"AAAA,SAAS,cAAT,QAA+B,kBAA/B;AAEA,SAAS,cAAT;AAEA,eAAe,cAAf","sourcesContent":["import { WindowSizeSlot } from './WindowSizeSlot';\n\nexport { WindowSizeSlot };\n\nexport default WindowSizeSlot;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/scroll/BScroll.d.ts b/node_modules/buetify/lib/components/scroll/BScroll.d.ts new file mode 100755 index 0000000..57bd6d4 --- /dev/null +++ b/node_modules/buetify/lib/components/scroll/BScroll.d.ts @@ -0,0 +1,5 @@ +import './scroll.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/scroll/BScroll.js b/node_modules/buetify/lib/components/scroll/BScroll.js new file mode 100755 index 0000000..ba4260e --- /dev/null +++ b/node_modules/buetify/lib/components/scroll/BScroll.js @@ -0,0 +1,25 @@ +import "../../../src/components/scroll/scroll.sass"; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +function testWindowScrollbar() { + const parent = document.createElement('div'); + parent.setAttribute('style', 'width:30px;height:30px;'); + parent.classList.add('scrollbar-test'); + const child = document.createElement('div'); + child.setAttribute('style', 'width:100%;height:40px'); + parent.appendChild(child); + document.body.appendChild(parent); // eslint-disable-next-line + // @ts-ignore + + const scrollbarWidth = 30 - parent.firstChild.clientWidth; + + if (scrollbarWidth) { + document.body.classList.add('layout-scrollbar-obtrusive'); + } + + document.body.removeChild(parent); +} + +requestAnimationFrame(testWindowScrollbar); +export default getSimpleFunctionalComponent('b-scroll', 'div'); +//# sourceMappingURL=BScroll.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/scroll/BScroll.js.map b/node_modules/buetify/lib/components/scroll/BScroll.js.map new file mode 100755 index 0000000..e32fe88 --- /dev/null +++ b/node_modules/buetify/lib/components/scroll/BScroll.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/scroll/BScroll.ts"],"names":[],"mappings":"AAAA,OAAO,4CAAP;AACA,SAAS,4BAAT,QAA6C,0CAA7C;;AAEA,SAAS,mBAAT,GAA4B;AAC1B,QAAM,MAAM,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAf;AACA,EAAA,MAAM,CAAC,YAAP,CAAoB,OAApB,EAA6B,yBAA7B;AACA,EAAA,MAAM,CAAC,SAAP,CAAiB,GAAjB,CAAqB,gBAArB;AAEA,QAAM,KAAK,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAd;AACA,EAAA,KAAK,CAAC,YAAN,CAAmB,OAAnB,EAA4B,wBAA5B;AACA,EAAA,MAAM,CAAC,WAAP,CAAmB,KAAnB;AACA,EAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,MAA1B,EAR0B,CAU1B;AACA;;AACA,QAAM,cAAc,GAAG,KAAK,MAAM,CAAC,UAAP,CAAkB,WAA9C;;AACA,MAAI,cAAJ,EAAoB;AAClB,IAAA,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,GAAxB,CAA4B,4BAA5B;AACD;;AACD,EAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,MAA1B;AACD;;AAED,qBAAqB,CAAC,mBAAD,CAArB;AAEA,eAAe,4BAA4B,CAAC,UAAD,EAAa,KAAb,CAA3C","sourcesContent":["import './scroll.sass';\nimport { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nfunction testWindowScrollbar() {\n const parent = document.createElement('div');\n parent.setAttribute('style', 'width:30px;height:30px;');\n parent.classList.add('scrollbar-test');\n\n const child = document.createElement('div');\n child.setAttribute('style', 'width:100%;height:40px');\n parent.appendChild(child);\n document.body.appendChild(parent);\n\n // eslint-disable-next-line\n // @ts-ignore\n const scrollbarWidth = 30 - parent.firstChild.clientWidth;\n if (scrollbarWidth) {\n document.body.classList.add('layout-scrollbar-obtrusive');\n }\n document.body.removeChild(parent);\n}\n\nrequestAnimationFrame(testWindowScrollbar);\n\nexport default getSimpleFunctionalComponent('b-scroll', 'div');\n"],"sourceRoot":"","file":"BScroll.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/scroll/index.d.ts b/node_modules/buetify/lib/components/scroll/index.d.ts new file mode 100755 index 0000000..0314544 --- /dev/null +++ b/node_modules/buetify/lib/components/scroll/index.d.ts @@ -0,0 +1,3 @@ +import BScroll from './BScroll'; +export { BScroll }; +export default BScroll; diff --git a/node_modules/buetify/lib/components/scroll/index.js b/node_modules/buetify/lib/components/scroll/index.js new file mode 100755 index 0000000..5dd61a9 --- /dev/null +++ b/node_modules/buetify/lib/components/scroll/index.js @@ -0,0 +1,4 @@ +import BScroll from './BScroll'; +export { BScroll }; +export default BScroll; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/scroll/index.js.map b/node_modules/buetify/lib/components/scroll/index.js.map new file mode 100755 index 0000000..580da6e --- /dev/null +++ b/node_modules/buetify/lib/components/scroll/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/scroll/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAP,MAAoB,WAApB;AAEA,SAAS,OAAT;AAEA,eAAe,OAAf","sourcesContent":["import BScroll from './BScroll';\n\nexport { BScroll };\n\nexport default BScroll;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sheet/BSheet.d.ts b/node_modules/buetify/lib/components/sheet/BSheet.d.ts new file mode 100755 index 0000000..5a03eed --- /dev/null +++ b/node_modules/buetify/lib/components/sheet/BSheet.d.ts @@ -0,0 +1,36 @@ +import '../../sass/helpers/border-helpers.sass'; +import '../../sass/helpers/height-width-helpers.sass'; +import './sheet.sass'; +declare const _default: import("vue").DefineComponent<{ + tag: { + type: StringConstructor; + default: string; + }; + isLoading: { + type: BooleanConstructor; + default: boolean; + }; + themeMap: { + type: import("vue").PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; + isLoading: boolean; +} & {}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; + isLoading: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/sheet/BSheet.js b/node_modules/buetify/lib/components/sheet/BSheet.js new file mode 100755 index 0000000..3e28e1a --- /dev/null +++ b/node_modules/buetify/lib/components/sheet/BSheet.js @@ -0,0 +1,41 @@ +import "../../../src/sass/helpers/border-helpers.sass"; +import "../../../src/sass/helpers/height-width-helpers.sass"; +import "../../../src/components/sheet/sheet.sass"; +import { h, defineComponent } from 'vue'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import BButton from '../button/BButton'; +const IsLoadingButton = h(BButton, { + size: 'is-large', + variant: 'is-link', + isOutlined: true, + isLoading: true, + class: 'is-borderless is-fullwidth' +}); +export default defineComponent({ + name: 'b-sheet', + props: { ...DefaultThemePropsDefinition, + tag: { + type: String, + default: 'main' + }, + isLoading: { + type: Boolean, + default: false + } + }, + + setup(props, { + slots + }) { + const { + themeClasses + } = useTheme(props); + return () => h(props.tag, { + class: ['b-sheet', { + 'is-loading': props.isLoading + }, ...themeClasses.value] + }, props.isLoading ? slots.loading ? slots.loading() : IsLoadingButton : slots.default && slots.default()); + } + +}); +//# sourceMappingURL=BSheet.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sheet/BSheet.js.map b/node_modules/buetify/lib/components/sheet/BSheet.js.map new file mode 100755 index 0000000..21e8624 --- /dev/null +++ b/node_modules/buetify/lib/components/sheet/BSheet.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/sheet/BSheet.ts"],"names":[],"mappings":"AAAA,OAAO,+CAAP;AACA,OAAO,qDAAP;AACA,OAAO,0CAAP;AACA,SAAS,CAAT,EAAY,eAAZ,QAAmC,KAAnC;AACA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,yBAAtD;AACA,OAAO,OAAP,MAAoB,mBAApB;AAEA,MAAM,eAAe,GAAG,CAAC,CAAC,OAAD,EAAU;AACjC,EAAA,IAAI,EAAE,UAD2B;AAEjC,EAAA,OAAO,EAAE,SAFwB;AAGjC,EAAA,UAAU,EAAE,IAHqB;AAIjC,EAAA,SAAS,EAAE,IAJsB;AAKjC,EAAA,KAAK,EAAE;AAL0B,CAAV,CAAzB;AAQA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,SADuB;AAE7B,EAAA,KAAK,EAAE,EACL,GAAG,2BADE;AAEL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN,KAFA;AAML,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA;AANN,GAFsB;;AAa7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AAEA,WAAO,MACL,CAAC,CACC,KAAK,CAAC,GADP,EAEC;AAAE,MAAA,KAAK,EAAE,CAAC,SAAD,EAAY;AAAE,sBAAc,KAAK,CAAC;AAAtB,OAAZ,EAA+C,GAAG,YAAY,CAAC,KAA/D;AAAT,KAFD,EAGC,KAAK,CAAC,SAAN,GAAmB,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,eAArD,GAAwE,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAH1F,CADH;AAMD;;AAtB4B,CAAD,CAA9B","sourcesContent":["import '../../sass/helpers/border-helpers.sass';\nimport '../../sass/helpers/height-width-helpers.sass';\nimport './sheet.sass';\nimport { h, defineComponent } from 'vue';\nimport { DefaultThemePropsDefinition, useTheme } from '../../composables/theme';\nimport BButton from '../button/BButton';\n\nconst IsLoadingButton = h(BButton, {\n size: 'is-large',\n variant: 'is-link',\n isOutlined: true,\n isLoading: true,\n class: 'is-borderless is-fullwidth'\n});\n\nexport default defineComponent({\n name: 'b-sheet',\n props: {\n ...DefaultThemePropsDefinition,\n tag: {\n type: String,\n default: 'main'\n },\n isLoading: {\n type: Boolean,\n default: false\n }\n },\n setup(props, { slots }) {\n const { themeClasses } = useTheme(props);\n\n return () =>\n h(\n props.tag,\n { class: ['b-sheet', { 'is-loading': props.isLoading }, ...themeClasses.value] },\n props.isLoading ? (slots.loading ? slots.loading() : IsLoadingButton) : slots.default && slots.default()\n );\n }\n});\n"],"sourceRoot":"","file":"BSheet.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sheet/index.d.ts b/node_modules/buetify/lib/components/sheet/index.d.ts new file mode 100755 index 0000000..ba932db --- /dev/null +++ b/node_modules/buetify/lib/components/sheet/index.d.ts @@ -0,0 +1,3 @@ +import BSheet from './BSheet'; +export { BSheet }; +export default BSheet; diff --git a/node_modules/buetify/lib/components/sheet/index.js b/node_modules/buetify/lib/components/sheet/index.js new file mode 100755 index 0000000..b6898c5 --- /dev/null +++ b/node_modules/buetify/lib/components/sheet/index.js @@ -0,0 +1,4 @@ +import BSheet from './BSheet'; +export { BSheet }; +export default BSheet; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sheet/index.js.map b/node_modules/buetify/lib/components/sheet/index.js.map new file mode 100755 index 0000000..1dc68f7 --- /dev/null +++ b/node_modules/buetify/lib/components/sheet/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/sheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AAEA,SAAS,MAAT;AAEA,eAAe,MAAf","sourcesContent":["import BSheet from './BSheet';\n\nexport { BSheet };\n\nexport default BSheet;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/BSidebar.d.ts b/node_modules/buetify/lib/components/sidebar/BSidebar.d.ts new file mode 100755 index 0000000..c357799 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/BSidebar.d.ts @@ -0,0 +1,54 @@ +import './sidebar.sass'; +import { VNode, PropType, ExtractPropTypes } from 'vue'; +export declare const BSidebarPropsDefinition: { + tag: { + type: PropType<string>; + default: string; + }; + currentRoute: { + required: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type BNavigationDrawerProps = ExtractPropTypes<typeof BSidebarPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + tag: { + type: PropType<string>; + default: string; + }; + currentRoute: { + required: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; +} & { + currentRoute?: unknown; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/sidebar/BSidebar.js b/node_modules/buetify/lib/components/sidebar/BSidebar.js new file mode 100755 index 0000000..f8a944d --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/BSidebar.js @@ -0,0 +1,81 @@ +import "../../../src/components/sidebar/sidebar.sass"; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { useWindowSize } from '../../composables/windowSize'; +import { SlideRightTransition } from '../../transitions/slideRightTransition'; +import { defineComponent, h, computed, watch, toRef, withDirectives, vShow } from 'vue'; +import BOverlay from '../overlay/BOverlay'; +import { useSidebarController } from './composables'; +import { SidebarThemeMap } from './theme'; +export const BSidebarPropsDefinition = { ...useThemePropsDefinition(SidebarThemeMap), + tag: { + type: String, + default: 'nav' + }, + currentRoute: { + required: false + } +}; + +function generateDrawer(props, controller, themeClasses, context) { + return h(props.tag, { + class: ['b-sidebar', ...themeClasses] + }, context.slots.default && context.slots.default({ + showSidebar: controller.show, + hideSidebar: controller.hide, + sidebarIsVisible: controller.isVisible.value, + toggleSidebar: controller.toggle + })); +} + +function generateMobileDrawer(props, controller, themeClasses, context) { + return h(SlideRightTransition, undefined, () => withDirectives(h(BOverlay, { + class: 'is-left', + isActive: controller.isVisible.value, + onClick: controller.hide + }, () => generateDrawer(props, controller, themeClasses, context)), [[vShow, controller.isVisible.value]])); +} + +export default defineComponent({ + name: 'b-sidebar', + props: BSidebarPropsDefinition, + + setup(props, context) { + const controller = useSidebarController(); + const windowSize = useWindowSize(); + const { + themeClasses + } = useTheme(props); + const useSideDrawer = computed(() => { + return windowSize.value.isTouch || windowSize.value.isDesktop; + }); + watch(useSideDrawer, (newValue, oldValue) => { + if (newValue === oldValue && oldValue !== undefined) { + return; + } + + if (newValue) { + controller.hide(); + } else { + controller.show(); + } + }, { + immediate: true + }); + watch(toRef(props, 'currentRoute'), () => { + if (useSideDrawer.value) { + controller.hide(); + } + }, { + deep: false + }); + return () => { + if (useSideDrawer.value) { + return generateMobileDrawer(props, controller, themeClasses.value, context); + } else { + return generateDrawer(props, controller, themeClasses.value, context); + } + }; + } + +}); +//# sourceMappingURL=BSidebar.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/BSidebar.js.map b/node_modules/buetify/lib/components/sidebar/BSidebar.js.map new file mode 100755 index 0000000..79b1fe6 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/BSidebar.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/sidebar/BSidebar.ts"],"names":[],"mappings":"AAAA,OAAO,8CAAP;AACA,SAAS,uBAAT,EAAkC,QAAlC,QAAkD,yBAAlD;AACA,SAAS,aAAT,QAA8B,8BAA9B;AACA,SAAS,oBAAT,QAAqC,wCAArC;AACA,SACE,eADF,EAIE,CAJF,EAME,QANF,EAOE,KAPF,EAQE,KARF,EAUE,cAVF,EAWE,KAXF,QAYO,KAZP;AAaA,OAAO,QAAP,MAAqB,qBAArB;AACA,SAA4B,oBAA5B,QAAwD,eAAxD;AACA,SAAS,eAAT,QAAgC,SAAhC;AAEA,OAAO,MAAM,uBAAuB,GAAG,EACrC,GAAG,uBAAuB,CAAC,eAAD,CADW;AAErC,EAAA,GAAG,EAAE;AACH,IAAA,IAAI,EAAE,MADH;AAEH,IAAA,OAAO,EAAE;AAFN,GAFgC;AAMrC,EAAA,YAAY,EAAE;AACZ,IAAA,QAAQ,EAAE;AADE;AANuB,CAAhC;;AAaP,SAAS,cAAT,CACE,KADF,EAEE,UAFF,EAGE,YAHF,EAIE,OAJF,EAIuB;AAErB,SAAO,CAAC,CACN,KAAK,CAAC,GADA,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,WAAD,EAAc,GAAG,YAAjB;AADT,GAFM,EAKN,OAAO,CAAC,KAAR,CAAc,OAAd,IACE,OAAO,CAAC,KAAR,CAAc,OAAd,CAAsB;AACpB,IAAA,WAAW,EAAE,UAAU,CAAC,IADJ;AAEpB,IAAA,WAAW,EAAE,UAAU,CAAC,IAFJ;AAGpB,IAAA,gBAAgB,EAAE,UAAU,CAAC,SAAX,CAAqB,KAHnB;AAIpB,IAAA,aAAa,EAAE,UAAU,CAAC;AAJN,GAAtB,CANI,CAAR;AAaD;;AAED,SAAS,oBAAT,CACE,KADF,EAEE,UAFF,EAGE,YAHF,EAIE,OAJF,EAIuB;AAErB,SAAO,CAAC,CAAC,oBAAD,EAAuB,SAAvB,EAAkC,MACxC,cAAc,CACZ,CAAC,CACC,QADD,EAEC;AACE,IAAA,KAAK,EAAE,SADT;AAEE,IAAA,QAAQ,EAAE,UAAU,CAAC,SAAX,CAAqB,KAFjC;AAGE,IAAA,OAAO,EAAE,UAAU,CAAC;AAHtB,GAFD,EAOC,MAAM,cAAc,CAAC,KAAD,EAAQ,UAAR,EAAoB,YAApB,EAAkC,OAAlC,CAPrB,CADW,EAUZ,CAAC,CAAC,KAAD,EAAQ,UAAU,CAAC,SAAX,CAAqB,KAA7B,CAAD,CAVY,CADR,CAAR;AAcD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,WADuB;AAE7B,EAAA,KAAK,EAAE,uBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM,UAAU,GAAG,oBAAoB,EAAvC;AACA,UAAM,UAAU,GAAG,aAAa,EAAhC;AACA,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,UAAM,aAAa,GAAG,QAAQ,CAAC,MAAK;AAClC,aAAO,UAAU,CAAC,KAAX,CAAiB,OAAjB,IAA4B,UAAU,CAAC,KAAX,CAAiB,SAApD;AACD,KAF6B,CAA9B;AAGA,IAAA,KAAK,CACH,aADG,EAEH,CAAC,QAAD,EAAW,QAAX,KAAuB;AACrB,UAAI,QAAQ,KAAK,QAAb,IAAyB,QAAQ,KAAK,SAA1C,EAAqD;AACnD;AACD;;AACD,UAAI,QAAJ,EAAc;AACZ,QAAA,UAAU,CAAC,IAAX;AACD,OAFD,MAEO;AACL,QAAA,UAAU,CAAC,IAAX;AACD;AACF,KAXE,EAYH;AAAE,MAAA,SAAS,EAAE;AAAb,KAZG,CAAL;AAcA,IAAA,KAAK,CACH,KAAK,CAAC,KAAD,EAAQ,cAAR,CADF,EAEH,MAAK;AACH,UAAI,aAAa,CAAC,KAAlB,EAAyB;AACvB,QAAA,UAAU,CAAC,IAAX;AACD;AACF,KANE,EAOH;AACE,MAAA,IAAI,EAAE;AADR,KAPG,CAAL;AAWA,WAAO,MAAK;AACV,UAAI,aAAa,CAAC,KAAlB,EAAyB;AACvB,eAAO,oBAAoB,CAAC,KAAD,EAAQ,UAAR,EAAoB,YAAY,CAAC,KAAjC,EAAwC,OAAxC,CAA3B;AACD,OAFD,MAEO;AACL,eAAO,cAAc,CAAC,KAAD,EAAQ,UAAR,EAAoB,YAAY,CAAC,KAAjC,EAAwC,OAAxC,CAArB;AACD;AACF,KAND;AAOD;;AA1C4B,CAAD,CAA9B","sourcesContent":["import './sidebar.sass';\nimport { useThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { useWindowSize } from '../../composables/windowSize';\nimport { SlideRightTransition } from '../../transitions/slideRightTransition';\nimport {\n defineComponent,\n SetupContext,\n VNode,\n h,\n PropType,\n computed,\n watch,\n toRef,\n ExtractPropTypes,\n withDirectives,\n vShow\n} from 'vue';\nimport BOverlay from '../overlay/BOverlay';\nimport { SidebarController, useSidebarController } from './composables';\nimport { SidebarThemeMap } from './theme';\n\nexport const BSidebarPropsDefinition = {\n ...useThemePropsDefinition(SidebarThemeMap),\n tag: {\n type: String as PropType<string>,\n default: 'nav'\n },\n currentRoute: {\n required: false\n }\n};\n\nexport type BNavigationDrawerProps = ExtractPropTypes<typeof BSidebarPropsDefinition>;\n\nfunction generateDrawer(\n props: BNavigationDrawerProps,\n controller: SidebarController,\n themeClasses: string[],\n context: SetupContext\n): VNode {\n return h(\n props.tag,\n {\n class: ['b-sidebar', ...themeClasses]\n },\n context.slots.default &&\n context.slots.default({\n showSidebar: controller.show,\n hideSidebar: controller.hide,\n sidebarIsVisible: controller.isVisible.value,\n toggleSidebar: controller.toggle\n })\n );\n}\n\nfunction generateMobileDrawer(\n props: BNavigationDrawerProps,\n controller: SidebarController,\n themeClasses: string[],\n context: SetupContext\n): VNode {\n return h(SlideRightTransition, undefined, () =>\n withDirectives(\n h(\n BOverlay,\n {\n class: 'is-left',\n isActive: controller.isVisible.value,\n onClick: controller.hide\n },\n () => generateDrawer(props, controller, themeClasses, context)\n ),\n [[vShow, controller.isVisible.value]]\n )\n );\n}\n\nexport default defineComponent({\n name: 'b-sidebar',\n props: BSidebarPropsDefinition,\n setup(props, context) {\n const controller = useSidebarController();\n const windowSize = useWindowSize();\n const { themeClasses } = useTheme(props);\n const useSideDrawer = computed(() => {\n return windowSize.value.isTouch || windowSize.value.isDesktop;\n });\n watch(\n useSideDrawer,\n (newValue, oldValue) => {\n if (newValue === oldValue && oldValue !== undefined) {\n return;\n }\n if (newValue) {\n controller.hide();\n } else {\n controller.show();\n }\n },\n { immediate: true }\n );\n watch(\n toRef(props, 'currentRoute'),\n () => {\n if (useSideDrawer.value) {\n controller.hide();\n }\n },\n {\n deep: false\n }\n );\n return () => {\n if (useSideDrawer.value) {\n return generateMobileDrawer(props, controller, themeClasses.value, context);\n } else {\n return generateDrawer(props, controller, themeClasses.value, context);\n }\n };\n }\n});\n"],"sourceRoot":"","file":"BSidebar.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/composables.d.ts b/node_modules/buetify/lib/components/sidebar/composables.d.ts new file mode 100755 index 0000000..3f14f87 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/composables.d.ts @@ -0,0 +1,30 @@ +import { Option } from 'fp-ts/lib/Option'; +import { Ref, ExtractPropTypes, PropType } from 'vue'; +import { IO } from 'fp-ts/lib/IO'; +import { ToggleAttrs, ToggleListeners } from '../../composables/toggle'; +export interface SidebarController { + isVisible: Ref<boolean>; + attrs: Ref<Option<ToggleAttrs>>; + listeners: Ref<Option<ToggleListeners>>; + show: IO<void>; + hide: IO<void>; + toggle: IO<void>; +} +export declare const ProvideSidebarControllerPropsDefinition: { + currentRoute: { + required: boolean; + }; + isVisible: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type ProvideNavigationDrawerControllerProps = ExtractPropTypes<typeof ProvideSidebarControllerPropsDefinition>; +export declare function useSidebarController(): SidebarController; +export declare function provideSidebarController(props: ProvideNavigationDrawerControllerProps): SidebarController; diff --git a/node_modules/buetify/lib/components/sidebar/composables.js b/node_modules/buetify/lib/components/sidebar/composables.js new file mode 100755 index 0000000..40ad731 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/composables.js @@ -0,0 +1,46 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { none, some } from 'fp-ts/lib/Option'; +import { shallowRef, computed, provide, inject } from 'vue'; +import { useToggle } from '../../composables/toggle'; +import { DEFAULT_BREAK_POINTS } from '../../composables/windowSize/provideWindowSize'; +const SIDEBAR_CONTROLLER_INJECTION_SYMBOL = Symbol('navigation-drawer-controller'); +export const ProvideSidebarControllerPropsDefinition = { + currentRoute: { + required: false + }, + isVisible: { + type: Boolean, + required: false, + default: !!window && window.innerWidth > DEFAULT_BREAK_POINTS.value.desktop + }, + hasPopup: { + type: Boolean, + required: false, + default: true + } +}; +const DEFAULT_SIDEBAR_CONTROLLER_INJECTION = { + isVisible: shallowRef(false), + attrs: shallowRef(none), + listeners: shallowRef(none), + show: constVoid, + hide: constVoid, + toggle: constVoid +}; +export function useSidebarController() { + return inject(SIDEBAR_CONTROLLER_INJECTION_SYMBOL, DEFAULT_SIDEBAR_CONTROLLER_INJECTION); +} +export function provideSidebarController(props) { + const toggle = useToggle(props, 'isVisible'); + const injection = { + isVisible: toggle.isOn, + listeners: computed(() => some(toggle.listeners)), + attrs: computed(() => some(toggle.attrs.value)), + show: toggle.setOn, + hide: toggle.setOff, + toggle: toggle.toggle + }; + provide(SIDEBAR_CONTROLLER_INJECTION_SYMBOL, injection); + return injection; +} +//# sourceMappingURL=composables.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/composables.js.map b/node_modules/buetify/lib/components/sidebar/composables.js.map new file mode 100755 index 0000000..859c658 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/composables.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/sidebar/composables.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,QAA0B,oBAA1B;AACA,SAAS,IAAT,EAAuB,IAAvB,QAAmC,kBAAnC;AACA,SAAgC,UAAhC,EAAsD,QAAtD,EAAgE,OAAhE,EAAyE,MAAzE,QAAuF,KAAvF;AAEA,SAAuC,SAAvC,QAAwD,0BAAxD;AACA,SAAS,oBAAT,QAAqC,gDAArC;AAWA,MAAM,mCAAmC,GAAG,MAAM,CAAC,8BAAD,CAAlD;AAEA,OAAO,MAAM,uCAAuC,GAAG;AACrD,EAAA,YAAY,EAAE;AACZ,IAAA,QAAQ,EAAE;AADE,GADuC;AAIrD,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,QAAQ,EAAE,KAFD;AAGT,IAAA,OAAO,EAAE,CAAC,CAAC,MAAF,IAAY,MAAM,CAAC,UAAP,GAAoB,oBAAoB,CAAC,KAArB,CAA2B;AAH3D,GAJ0C;AASrD,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,OADE;AAER,IAAA,QAAQ,EAAE,KAFF;AAGR,IAAA,OAAO,EAAE;AAHD;AAT2C,CAAhD;AAkBP,MAAM,oCAAoC,GAAsB;AAC9D,EAAA,SAAS,EAAE,UAAU,CAAC,KAAD,CADyC;AAE9D,EAAA,KAAK,EAAE,UAAU,CAAC,IAAD,CAF6C;AAG9D,EAAA,SAAS,EAAE,UAAU,CAAC,IAAD,CAHyC;AAI9D,EAAA,IAAI,EAAE,SAJwD;AAK9D,EAAA,IAAI,EAAE,SALwD;AAM9D,EAAA,MAAM,EAAE;AANsD,CAAhE;AASA,OAAM,SAAU,oBAAV,GAA8B;AAClC,SAAO,MAAM,CAAC,mCAAD,EAAsC,oCAAtC,CAAb;AACD;AAED,OAAM,SAAU,wBAAV,CAAmC,KAAnC,EAAgF;AACpF,QAAM,MAAM,GAAG,SAAS,CAAC,KAAD,EAAQ,WAAR,CAAxB;AACA,QAAM,SAAS,GAAsB;AACnC,IAAA,SAAS,EAAE,MAAM,CAAC,IADiB;AAEnC,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAR,CAAX,CAFgB;AAGnC,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAP,CAAa,KAAd,CAAX,CAHoB;AAInC,IAAA,IAAI,EAAE,MAAM,CAAC,KAJsB;AAKnC,IAAA,IAAI,EAAE,MAAM,CAAC,MALsB;AAMnC,IAAA,MAAM,EAAE,MAAM,CAAC;AANoB,GAArC;AAQA,EAAA,OAAO,CAAC,mCAAD,EAAsC,SAAtC,CAAP;AACA,SAAO,SAAP;AACD","sourcesContent":["import { constVoid } from 'fp-ts/lib/function';\nimport { none, Option, some } from 'fp-ts/lib/Option';\nimport { Ref, ExtractPropTypes, shallowRef, PropType, computed, provide, inject } from 'vue';\nimport { IO } from 'fp-ts/lib/IO';\nimport { ToggleAttrs, ToggleListeners, useToggle } from '../../composables/toggle';\nimport { DEFAULT_BREAK_POINTS } from '../../composables/windowSize/provideWindowSize';\n\nexport interface SidebarController {\n isVisible: Ref<boolean>;\n attrs: Ref<Option<ToggleAttrs>>;\n listeners: Ref<Option<ToggleListeners>>;\n show: IO<void>;\n hide: IO<void>;\n toggle: IO<void>;\n}\n\nconst SIDEBAR_CONTROLLER_INJECTION_SYMBOL = Symbol('navigation-drawer-controller');\n\nexport const ProvideSidebarControllerPropsDefinition = {\n currentRoute: {\n required: false\n },\n isVisible: {\n type: Boolean as PropType<boolean>,\n required: false,\n default: !!window && window.innerWidth > DEFAULT_BREAK_POINTS.value.desktop\n },\n hasPopup: {\n type: Boolean as PropType<boolean>,\n required: false,\n default: true\n }\n};\n\nexport type ProvideNavigationDrawerControllerProps = ExtractPropTypes<typeof ProvideSidebarControllerPropsDefinition>;\n\nconst DEFAULT_SIDEBAR_CONTROLLER_INJECTION: SidebarController = {\n isVisible: shallowRef(false),\n attrs: shallowRef(none),\n listeners: shallowRef(none),\n show: constVoid,\n hide: constVoid,\n toggle: constVoid\n};\n\nexport function useSidebarController(): SidebarController {\n return inject(SIDEBAR_CONTROLLER_INJECTION_SYMBOL, DEFAULT_SIDEBAR_CONTROLLER_INJECTION);\n}\n\nexport function provideSidebarController(props: ProvideNavigationDrawerControllerProps) {\n const toggle = useToggle(props, 'isVisible');\n const injection: SidebarController = {\n isVisible: toggle.isOn,\n listeners: computed(() => some(toggle.listeners)),\n attrs: computed(() => some(toggle.attrs.value)),\n show: toggle.setOn,\n hide: toggle.setOff,\n toggle: toggle.toggle\n };\n provide(SIDEBAR_CONTROLLER_INJECTION_SYMBOL, injection);\n return injection;\n}\n"],"sourceRoot":"","file":"composables.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/index.d.ts b/node_modules/buetify/lib/components/sidebar/index.d.ts new file mode 100755 index 0000000..4dceb9a --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/index.d.ts @@ -0,0 +1,4 @@ +import BSidebar from './BSidebar'; +import { SidebarThemeMap } from './theme'; +export { BSidebar, SidebarThemeMap }; +export default BSidebar; diff --git a/node_modules/buetify/lib/components/sidebar/index.js b/node_modules/buetify/lib/components/sidebar/index.js new file mode 100755 index 0000000..e2ecc34 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/index.js @@ -0,0 +1,5 @@ +import BSidebar from './BSidebar'; +import { SidebarThemeMap } from './theme'; +export { BSidebar, SidebarThemeMap }; +export default BSidebar; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/index.js.map b/node_modules/buetify/lib/components/sidebar/index.js.map new file mode 100755 index 0000000..6d8d9e0 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AACA,SAAS,eAAT,QAAgC,SAAhC;AAEA,SAAS,QAAT,EAAmB,eAAnB;AAEA,eAAe,QAAf","sourcesContent":["import BSidebar from './BSidebar';\nimport { SidebarThemeMap } from './theme';\n\nexport { BSidebar, SidebarThemeMap };\n\nexport default BSidebar;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/theme.d.ts b/node_modules/buetify/lib/components/sidebar/theme.d.ts new file mode 100755 index 0000000..9be6a1b --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/theme.d.ts @@ -0,0 +1,2 @@ +import { ThemeColorMap } from '../../types/ThemeColorMap'; +export declare const SidebarThemeMap: ThemeColorMap; diff --git a/node_modules/buetify/lib/components/sidebar/theme.js b/node_modules/buetify/lib/components/sidebar/theme.js new file mode 100755 index 0000000..394780e --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/theme.js @@ -0,0 +1,6 @@ +import { shallowReactive } from 'vue'; +export const SidebarThemeMap = shallowReactive({ + dark: 'is-black-bis', + light: 'is-grey-darker' +}); +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/sidebar/theme.js.map b/node_modules/buetify/lib/components/sidebar/theme.js.map new file mode 100755 index 0000000..46a1423 --- /dev/null +++ b/node_modules/buetify/lib/components/sidebar/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/sidebar/theme.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgC,KAAhC;AAGA,OAAO,MAAM,eAAe,GAAkB,eAAe,CAAC;AAC5D,EAAA,IAAI,EAAE,cADsD;AAE5D,EAAA,KAAK,EAAE;AAFqD,CAAD,CAAtD","sourcesContent":["import { shallowReactive } from 'vue';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\n\nexport const SidebarThemeMap: ThemeColorMap = shallowReactive({\n dark: 'is-black-bis',\n light: 'is-grey-darker'\n});\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/BStepItem.d.ts b/node_modules/buetify/lib/components/steps/BStepItem.d.ts new file mode 100755 index 0000000..ca88b7a --- /dev/null +++ b/node_modules/buetify/lib/components/steps/BStepItem.d.ts @@ -0,0 +1,51 @@ +declare const _default: import("vue").DefineComponent<{ + label: { + type: import("vue").PropType<string>; + required: true; + }; + step: { + type: StringConstructor; + required: boolean; + }; + variant: { + type: import("vue").PropType<import("../..").ColorVariant>; + default: ""; + }; + icon: { + type: import("vue").PropType<import("vue").Component<any, any, any, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions>>; + }; + isClickable: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isCompleted: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isVisible: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + variant: import("../..").ColorVariant; + isVisible: boolean; + label: string; + isClickable: boolean; + isCompleted: boolean; +} & { + icon?: import("vue").ComponentOptions<any, any, any, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions, any, any, any> | import("vue").FunctionalComponent<any, any> | { + new (...args: any[]): any; + __isFragment?: undefined; + __isTeleport?: undefined; + __isSuspense?: undefined; + } | undefined; + step?: string | undefined; +}>, { + variant: import("../..").ColorVariant; + isVisible: boolean; + isClickable: boolean; + isCompleted: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/steps/BStepItem.js b/node_modules/buetify/lib/components/steps/BStepItem.js new file mode 100755 index 0000000..f9938a9 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/BStepItem.js @@ -0,0 +1,32 @@ +import { toUndefined } from 'fp-ts/lib/Option'; +import { defineComponent, inject, h, computed, withDirectives, vShow } from 'vue'; +import { BStepItemPropsDefinition, DEFAULT_STEP_INJECTION, STEP_ITEM_NAME, STEPS_SYMBOL } from './shared'; +export default defineComponent({ + name: STEP_ITEM_NAME, + props: BStepItemPropsDefinition, + + setup(props, { + slots + }) { + const injection = inject(STEPS_SYMBOL, DEFAULT_STEP_INJECTION); + const index = injection.steps.findIndex(p => p.label === props.label); + + if (index > -1) { + injection.steps.splice(index, 1, props); + } else { + injection.steps.push(props); + } + + const isActive = computed(() => toUndefined(injection.activeLabel.value) === props.label); + return () => { + return withDirectives(h('section', { + class: 'step-item', + 'aria-label': props.label + }, slots.default && slots.default({ + isActive: isActive.value + })), [[vShow, isActive.value]]); + }; + } + +}); +//# sourceMappingURL=BStepItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/BStepItem.js.map b/node_modules/buetify/lib/components/steps/BStepItem.js.map new file mode 100755 index 0000000..f0aef48 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/BStepItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/steps/BStepItem.ts"],"names":[],"mappings":"AAAA,SAAS,WAAT,QAA4B,kBAA5B;AACA,SAAS,eAAT,EAA0B,MAA1B,EAAkC,CAAlC,EAAqC,QAArC,EAA+C,cAA/C,EAA+D,KAA/D,QAA4E,KAA5E;AACA,SAAS,wBAAT,EAAmC,sBAAnC,EAA2D,cAA3D,EAA2E,YAA3E,QAA+F,UAA/F;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,cADuB;AAE7B,EAAA,KAAK,EAAE,wBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,SAAS,GAAG,MAAM,CAAC,YAAD,EAAe,sBAAf,CAAxB;AAEA,UAAM,KAAK,GAAG,SAAS,CAAC,KAAV,CAAgB,SAAhB,CAA0B,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,KAAK,CAAC,KAAjD,CAAd;;AAEA,QAAI,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,MAAA,SAAS,CAAC,KAAV,CAAgB,MAAhB,CAAuB,KAAvB,EAA8B,CAA9B,EAAiC,KAAjC;AACD,KAFD,MAEO;AACL,MAAA,SAAS,CAAC,KAAV,CAAgB,IAAhB,CAAqB,KAArB;AACD;;AAED,UAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,WAAV,CAAsB,KAAvB,CAAX,KAA6C,KAAK,CAAC,KAA1D,CAAzB;AAEA,WAAO,MAAK;AACV,aAAO,cAAc,CACnB,CAAC,CACC,SADD,EAEC;AACE,QAAA,KAAK,EAAE,WADT;AAEE,sBAAc,KAAK,CAAC;AAFtB,OAFD,EAMC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc;AAAE,QAAA,QAAQ,EAAE,QAAQ,CAAC;AAArB,OAAd,CANlB,CADkB,EASnB,CAAC,CAAC,KAAD,EAAQ,QAAQ,CAAC,KAAjB,CAAD,CATmB,CAArB;AAWD,KAZD;AAaD;;AA7B4B,CAAD,CAA9B","sourcesContent":["import { toUndefined } from 'fp-ts/lib/Option';\nimport { defineComponent, inject, h, computed, withDirectives, vShow } from 'vue';\nimport { BStepItemPropsDefinition, DEFAULT_STEP_INJECTION, STEP_ITEM_NAME, STEPS_SYMBOL } from './shared';\n\nexport default defineComponent({\n name: STEP_ITEM_NAME,\n props: BStepItemPropsDefinition,\n setup(props, { slots }) {\n const injection = inject(STEPS_SYMBOL, DEFAULT_STEP_INJECTION);\n\n const index = injection.steps.findIndex(p => p.label === props.label);\n\n if (index > -1) {\n injection.steps.splice(index, 1, props);\n } else {\n injection.steps.push(props);\n }\n\n const isActive = computed(() => toUndefined(injection.activeLabel.value) === props.label);\n\n return () => {\n return withDirectives(\n h(\n 'section',\n {\n class: 'step-item',\n 'aria-label': props.label\n },\n slots.default && slots.default({ isActive: isActive.value })\n ),\n [[vShow, isActive.value]]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BStepItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/BSteps.d.ts b/node_modules/buetify/lib/components/steps/BSteps.d.ts new file mode 100755 index 0000000..2d0a892 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/BSteps.d.ts @@ -0,0 +1,141 @@ +import './steps.sass'; +import { ColorVariant } from '../../types/ColorVariants'; +import { VNode, PropType, ExtractPropTypes } from 'vue'; +export declare type StepsSize = 'is-small' | 'is-medium' | 'is-large' | ''; +export declare type StepsPosition = 'is-right' | ''; +export declare type StepLabelPosition = 'is-right' | 'is-left' | ''; +export declare type StepsMobileMode = 'minimal' | 'compact' | ''; +export declare const BStepsPropsDefinition: { + position: { + type: PropType<StepsPosition>; + default: ""; + }; + labelPosition: { + type: PropType<StepLabelPosition>; + default: string; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + isAnimated: { + type: PropType<boolean>; + default: boolean; + }; + mobileMode: { + type: PropType<StepsMobileMode>; + default: "minimal"; + }; + isRounded: { + type: BooleanConstructor; + default: boolean; + }; + isVertical: { + type: BooleanConstructor; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<number>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}; +export declare type BStepsProps = ExtractPropTypes<typeof BStepsPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + position: { + type: PropType<StepsPosition>; + default: ""; + }; + labelPosition: { + type: PropType<StepLabelPosition>; + default: string; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + isAnimated: { + type: PropType<boolean>; + default: boolean; + }; + mobileMode: { + type: PropType<StepsMobileMode>; + default: "minimal"; + }; + isRounded: { + type: BooleanConstructor; + default: boolean; + }; + isVertical: { + type: BooleanConstructor; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<number>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + variant: ColorVariant; + size: import("../..").SizeVariant; + position: StepsPosition; + isRounded: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + labelPosition: StepLabelPosition; + isAnimated: boolean; + mobileMode: StepsMobileMode; + isVertical: boolean; +} & { + modelValue?: number | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + variant: ColorVariant; + size: import("../..").SizeVariant; + position: StepsPosition; + isRounded: boolean; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + labelPosition: StepLabelPosition; + isAnimated: boolean; + mobileMode: StepsMobileMode; + isVertical: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/steps/BSteps.js b/node_modules/buetify/lib/components/steps/BSteps.js new file mode 100755 index 0000000..ff5bda7 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/BSteps.js @@ -0,0 +1,156 @@ +import "../../../src/components/steps/steps.sass"; +import { lookup } from 'fp-ts/Array'; +import { pipe } from 'fp-ts/function'; +import { getUseModelPropsDefinition, useModel } from '../../composables/model'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import { map } from 'fp-ts/lib/Option'; +import { computed, cloneVNode, TransitionGroup, defineComponent, nextTick, h, provide, shallowRef, withDirectives, vShow, shallowReactive } from 'vue'; +import { STEPS_SYMBOL } from './shared'; +export const BStepsPropsDefinition = { ...getUseModelPropsDefinition(), + ...DefaultThemePropsDefinition, + position: { + type: String, + default: '' + }, + labelPosition: { + type: String, + default: '' + }, + variant: { + type: String, + default: '' + }, + size: { + type: String, + default: '' + }, + isAnimated: { + type: Boolean, + default: true + }, + mobileMode: { + type: String, + default: 'minimal' + }, + isRounded: { + type: Boolean, + default: true + }, + isVertical: { + type: Boolean, + default: false + } +}; + +function getOnStepItemClick(index, model, transition) { + return () => { + const val = model.modelValue.value || 0; + + if (val !== index) { + transition.value = index < val ? 'slide-next' : 'slide-prev'; + nextTick().then(() => { + model.modelValue.value = index; + }); + } + }; +} + +function getGenerateNavItem(props, model, injection, transition) { + return function generateNavItem(step, index) { + const currentIndex = model.modelValue.value || 0; + const isClickable = step.isClickable ?? index < currentIndex; + return withDirectives(h('li', { + key: step.label, + class: [step.variant || props.variant, 'step-item', { + 'is-previous': index < currentIndex, + 'is-active': index === currentIndex + }] + }, [h('a', { + class: ['step-link', { + 'is-clickable': isClickable + }], + onClick: isClickable ? getOnStepItemClick(index, model, transition) : undefined + }, [h('div', { + class: 'step-marker' + }, step.icon ? h(step.icon, { + size: props.size + }) : step.step ?? `${index + 1}`), h('div', { + class: 'step-details' + }, [h('span', { + class: 'step-title' + }, step.label)])])]), [[vShow, injection.steps[index]?.isVisible ?? true]]); + }; +} + +function generateNavHeader(props, model, injection, transition, themeClasses) { + return h('nav', { + class: ['steps', props.size, props.variant || null, { + 'is-rounded': props.isRounded, + 'is-animated': props.isAnimated, + 'has-label-right': props.labelPosition === 'is-right', + 'has-label-left': props.labelPosition === 'is-left', + 'mobile-minimalist': props.mobileMode === 'minimal', + 'mobile-compact': props.mobileMode === 'compact' + }, ...themeClasses] + }, h('ul', { + class: ['step-items'] + }, injection.steps.map(getGenerateNavItem(props, model, injection, transition)))); +} + +function BStaticStepContent(_, { + slots +}) { + return h('div', { + class: 'step-content' + }, slots.default && slots.default()); +} + +export default defineComponent({ + name: 'b-steps', + props: BStepsPropsDefinition, + + setup(props, context) { + const { + themeClasses + } = useTheme(props); + const model = useModel(props); + const transition = shallowRef('slide-next'); + const steps = shallowReactive([]); + const isTransitioning = shallowRef(false); + const activeLabel = computed(() => pipe(steps, lookup(model.modelValue.value || 0), map(p => p.label))); + const injection = { + activeLabel, + steps + }; + provide(STEPS_SYMBOL, injection); + + function onBeforeEnter() { + isTransitioning.value = true; + } + + function onAfterLeave() { + isTransitioning.value = false; + } + + return () => { + return h('article', { + class: ['b-steps', props.size || null, { + 'is-vertical': props.isVertical, + [props.position]: props.position && props.isVertical + }] + }, [generateNavHeader(props, model, injection, transition, themeClasses.value), props.isAnimated ? h('div', { + class: ['step-content', { + 'is-transitioning': isTransitioning.value + }] + }, h(TransitionGroup, { + onBeforeEnter, + onAfterLeave, + name: transition.value + }, () => context.slots.default && context.slots.default().map((node, index) => cloneVNode(node, { + key: steps[index]?.label ?? index + })))) : h(BStaticStepContent, () => context.slots.default && context.slots.default())]); + }; + } + +}); +//# sourceMappingURL=BSteps.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/BSteps.js.map b/node_modules/buetify/lib/components/steps/BSteps.js.map new file mode 100755 index 0000000..3e211eb --- /dev/null +++ b/node_modules/buetify/lib/components/steps/BSteps.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/steps/BSteps.ts"],"names":[],"mappings":"AAAA,OAAO,0CAAP;AACA,SAAS,MAAT,QAAuB,aAAvB;AACA,SAAS,IAAT,QAAqB,gBAArB;AACA,SAAS,0BAAT,EAA4C,QAA5C,QAA4D,yBAA5D;AACA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,yBAAtD;AAEA,SAAS,GAAT,QAAoB,kBAApB;AACA,SACE,QADF,EAEE,UAFF,EAGE,eAHF,EAKE,eALF,EAME,QANF,EASE,CATF,EAWE,OAXF,EAYE,UAZF,EAaE,cAbF,EAcE,KAdF,EAeE,eAfF,QAkBO,KAlBP;AAmBA,SAAwC,YAAxC,QAA4D,UAA5D;AAYA,OAAO,MAAM,qBAAqB,GAAG,EACnC,GAAG,0BAA0B,EADM;AAEnC,KAAG,2BAFgC;AAGnC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAHyB;AAOnC,EAAA,aAAa,EAAE;AACb,IAAA,IAAI,EAAE,MADO;AAEb,IAAA,OAAO,EAAE;AAFI,GAPoB;AAWnC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GAX0B;AAenC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAf6B;AAmBnC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAnBuB;AAuBnC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAvBuB;AA2BnC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GA3BwB;AA+BnC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC;AA/BuB,CAA9B;;AAuCP,SAAS,kBAAT,CAA4B,KAA5B,EAA2C,KAA3C,EAAiE,UAAjE,EAAgG;AAC9F,SAAO,MAAK;AACV,UAAM,GAAG,GAAG,KAAK,CAAC,UAAN,CAAiB,KAAjB,IAA0B,CAAtC;;AACA,QAAI,GAAG,KAAK,KAAZ,EAAmB;AACjB,MAAA,UAAU,CAAC,KAAX,GAAmB,KAAK,GAAG,GAAR,GAAc,YAAd,GAA6B,YAAhD;AACA,MAAA,QAAQ,GAAG,IAAX,CAAgB,MAAK;AACnB,QAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,KAAzB;AACD,OAFD;AAGD;AACF,GARD;AASD;;AAED,SAAS,kBAAT,CACE,KADF,EAEE,KAFF,EAGE,SAHF,EAIE,UAJF,EAIiC;AAE/B,SAAO,SAAS,eAAT,CAAyB,IAAzB,EAA+C,KAA/C,EAA4D;AACjE,UAAM,YAAY,GAAG,KAAK,CAAC,UAAN,CAAiB,KAAjB,IAA0B,CAA/C;AACA,UAAM,WAAW,GAAG,IAAI,CAAC,WAAL,IAAoB,KAAK,GAAG,YAAhD;AACA,WAAO,cAAc,CACnB,CAAC,CACC,IADD,EAEC;AACE,MAAA,GAAG,EAAE,IAAI,CAAC,KADZ;AAEE,MAAA,KAAK,EAAE,CACL,IAAI,CAAC,OAAL,IAAgB,KAAK,CAAC,OADjB,EAEL,WAFK,EAGL;AACE,uBAAe,KAAK,GAAG,YADzB;AAEE,qBAAa,KAAK,KAAK;AAFzB,OAHK;AAFT,KAFD,EAaC,CACE,CAAC,CACC,GADD,EAEC;AACE,MAAA,KAAK,EAAE,CACL,WADK,EAEL;AACE,wBAAgB;AADlB,OAFK,CADT;AAOE,MAAA,OAAO,EAAE,WAAW,GAAG,kBAAkB,CAAC,KAAD,EAAQ,KAAR,EAAe,UAAf,CAArB,GAAkD;AAPxE,KAFD,EAWC,CACE,CAAC,CACC,KADD,EAEC;AAAE,MAAA,KAAK,EAAE;AAAT,KAFD,EAGC,IAAI,CAAC,IAAL,GAAY,CAAC,CAAC,IAAI,CAAC,IAAN,EAAgC;AAAE,MAAA,IAAI,EAAE,KAAK,CAAC;AAAd,KAAhC,CAAb,GAAqE,IAAI,CAAC,IAAL,IAAa,GAAG,KAAK,GAAG,CAAC,EAH/F,CADH,EAME,CAAC,CAAC,KAAD,EAAQ;AAAE,MAAA,KAAK,EAAE;AAAT,KAAR,EAAmC,CAAC,CAAC,CAAC,MAAD,EAAS;AAAE,MAAA,KAAK,EAAE;AAAT,KAAT,EAAkC,IAAI,CAAC,KAAvC,CAAF,CAAnC,CANH,CAXD,CADH,CAbD,CADkB,EAqCnB,CAAC,CAAC,KAAD,EAAQ,SAAS,CAAC,KAAV,CAAgB,KAAhB,GAAwB,SAAxB,IAAqC,IAA7C,CAAD,CArCmB,CAArB;AAuCD,GA1CD;AA2CD;;AAED,SAAS,iBAAT,CACE,KADF,EAEE,KAFF,EAGE,SAHF,EAIE,UAJF,EAKE,YALF,EAKwB;AAEtB,SAAO,CAAC,CACN,KADM,EAEN;AACE,IAAA,KAAK,EAAE,CACL,OADK,EAEL,KAAK,CAAC,IAFD,EAGL,KAAK,CAAC,OAAN,IAAiB,IAHZ,EAIL;AACE,oBAAc,KAAK,CAAC,SADtB;AAEE,qBAAe,KAAK,CAAC,UAFvB;AAGE,yBAAmB,KAAK,CAAC,aAAN,KAAwB,UAH7C;AAIE,wBAAkB,KAAK,CAAC,aAAN,KAAwB,SAJ5C;AAKE,2BAAqB,KAAK,CAAC,UAAN,KAAqB,SAL5C;AAME,wBAAkB,KAAK,CAAC,UAAN,KAAqB;AANzC,KAJK,EAYL,GAAG,YAZE;AADT,GAFM,EAkBN,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,KAAK,EAAE,CAAC,YAAD;AAAT,GAAP,EAAkC,SAAS,CAAC,KAAV,CAAgB,GAAhB,CAAoB,kBAAkB,CAAC,KAAD,EAAQ,KAAR,EAAe,SAAf,EAA0B,UAA1B,CAAtC,CAAlC,CAlBK,CAAR;AAoBD;;AAED,SAAS,kBAAT,CAA4B,CAA5B,EAAwC;AAAE,EAAA;AAAF,CAAxC,EAA+D;AAC7D,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAmC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAApD,CAAR;AACD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,SADuB;AAE7B,EAAA,KAAK,EAAE,qBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,KAAD,CAAtB;AACA,UAAM,UAAU,GAAG,UAAU,CAAC,YAAD,CAA7B;AACA,UAAM,KAAK,GAAG,eAAe,CAAC,EAAD,CAA7B;AACA,UAAM,eAAe,GAAG,UAAU,CAAC,KAAD,CAAlC;AACA,UAAM,WAAW,GAAG,QAAQ,CAAC,MAC3B,IAAI,CACF,KADE,EAEF,MAAM,CAAC,KAAK,CAAC,UAAN,CAAiB,KAAjB,IAA0B,CAA3B,CAFJ,EAGF,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAR,CAHD,CADsB,CAA5B;AAOA,UAAM,SAAS,GAAkB;AAC/B,MAAA,WAD+B;AAE/B,MAAA;AAF+B,KAAjC;AAKA,IAAA,OAAO,CAAC,YAAD,EAAe,SAAf,CAAP;;AAEA,aAAS,aAAT,GAAsB;AACpB,MAAA,eAAe,CAAC,KAAhB,GAAwB,IAAxB;AACD;;AAED,aAAS,YAAT,GAAqB;AACnB,MAAA,eAAe,CAAC,KAAhB,GAAwB,KAAxB;AACD;;AAED,WAAO,MAAK;AACV,aAAO,CAAC,CACN,SADM,EAEN;AACE,QAAA,KAAK,EAAE,CACL,SADK,EAEL,KAAK,CAAC,IAAN,IAAc,IAFT,EAGL;AACE,yBAAe,KAAK,CAAC,UADvB;AAEE,WAAC,KAAK,CAAC,QAAP,GAAkB,KAAK,CAAC,QAAN,IAAkB,KAAK,CAAC;AAF5C,SAHK;AADT,OAFM,EAYN,CACE,iBAAiB,CAAC,KAAD,EAAQ,KAAR,EAAe,SAAf,EAA0B,UAA1B,EAAsC,YAAY,CAAC,KAAnD,CADnB,EAEE,KAAK,CAAC,UAAN,GACI,CAAC,CACC,KADD,EAEC;AACE,QAAA,KAAK,EAAE,CAAC,cAAD,EAAiB;AAAE,8BAAoB,eAAe,CAAC;AAAtC,SAAjB;AADT,OAFD,EAKC,CAAC,CACC,eADD,EAEC;AACE,QAAA,aADF;AAEE,QAAA,YAFF;AAGE,QAAA,IAAI,EAAE,UAAU,CAAC;AAHnB,OAFD,EAOC,MACE,OAAO,CAAC,KAAR,CAAc,OAAd,IACA,OAAO,CAAC,KAAR,CACG,OADH,GAEG,GAFH,CAEO,CAAC,IAAD,EAAO,KAAP,KAAiB,UAAU,CAAC,IAAD,EAAO;AAAE,QAAA,GAAG,EAAE,KAAK,CAAC,KAAD,CAAL,EAAc,KAAd,IAAuB;AAA9B,OAAP,CAFlC,CATH,CALF,CADL,GAoBI,CAAC,CAAC,kBAAD,EAAqB,MAAM,OAAO,CAAC,KAAR,CAAc,OAAd,IAAyB,OAAO,CAAC,KAAR,CAAc,OAAd,EAApD,CAtBP,CAZM,CAAR;AAqCD,KAtCD;AAuCD;;AAtE4B,CAAD,CAA9B","sourcesContent":["import './steps.sass';\nimport { lookup } from 'fp-ts/Array';\nimport { pipe } from 'fp-ts/function';\nimport { getUseModelPropsDefinition, Model, useModel } from '../../composables/model';\nimport { DefaultThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { ColorVariant } from '../../types/ColorVariants';\nimport { map } from 'fp-ts/lib/Option';\nimport {\n computed,\n cloneVNode,\n TransitionGroup,\n Ref,\n defineComponent,\n nextTick,\n VNode,\n PropType,\n h,\n ExtractPropTypes,\n provide,\n shallowRef,\n withDirectives,\n vShow,\n shallowReactive,\n SetupContext,\n ComponentOptions\n} from 'vue';\nimport { BStepItemProps, StepInjection, STEPS_SYMBOL } from './shared';\n\nexport type StepsSize = 'is-small' | 'is-medium' | 'is-large' | '';\n\ntype StepTransition = 'slide-next' | 'slide-prev';\n\nexport type StepsPosition = 'is-right' | '';\n\nexport type StepLabelPosition = 'is-right' | 'is-left' | '';\n\nexport type StepsMobileMode = 'minimal' | 'compact' | '';\n\nexport const BStepsPropsDefinition = {\n ...getUseModelPropsDefinition<number>(),\n ...DefaultThemePropsDefinition,\n position: {\n type: String as PropType<StepsPosition>,\n default: '' as const\n },\n labelPosition: {\n type: String as PropType<StepLabelPosition>,\n default: ''\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as const\n },\n size: {\n type: String as PropType<StepsSize>,\n default: '' as const\n },\n isAnimated: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n mobileMode: {\n type: String as PropType<StepsMobileMode>,\n default: 'minimal' as const\n },\n isRounded: {\n type: Boolean,\n default: true\n },\n isVertical: {\n type: Boolean,\n default: false\n }\n};\n\nexport type BStepsProps = ExtractPropTypes<typeof BStepsPropsDefinition>;\n\nfunction getOnStepItemClick(index: number, model: Model<number>, transition: Ref<StepTransition>) {\n return () => {\n const val = model.modelValue.value || 0;\n if (val !== index) {\n transition.value = index < val ? 'slide-next' : 'slide-prev';\n nextTick().then(() => {\n model.modelValue.value = index;\n });\n }\n };\n}\n\nfunction getGenerateNavItem(\n props: BStepsProps,\n model: Model<number>,\n injection: StepInjection,\n transition: Ref<StepTransition>\n) {\n return function generateNavItem(step: BStepItemProps, index: number): VNode {\n const currentIndex = model.modelValue.value || 0;\n const isClickable = step.isClickable ?? index < currentIndex;\n return withDirectives(\n h(\n 'li',\n {\n key: step.label,\n class: [\n step.variant || props.variant,\n 'step-item',\n {\n 'is-previous': index < currentIndex,\n 'is-active': index === currentIndex\n }\n ]\n },\n [\n h(\n 'a',\n {\n class: [\n 'step-link',\n {\n 'is-clickable': isClickable\n }\n ],\n onClick: isClickable ? getOnStepItemClick(index, model, transition) : undefined\n },\n [\n h(\n 'div',\n { class: 'step-marker' },\n step.icon ? h(step.icon as ComponentOptions, { size: props.size }) : step.step ?? `${index + 1}`\n ), //eslint-disable-line\n h('div', { class: 'step-details' }, [h('span', { class: 'step-title' }, step.label)])\n ]\n )\n ]\n ),\n [[vShow, injection.steps[index]?.isVisible ?? true]]\n );\n };\n}\n\nfunction generateNavHeader(\n props: BStepsProps,\n model: Model<number>,\n injection: StepInjection,\n transition: Ref<StepTransition>,\n themeClasses: string[]\n): VNode {\n return h(\n 'nav',\n {\n class: [\n 'steps',\n props.size,\n props.variant || null,\n {\n 'is-rounded': props.isRounded,\n 'is-animated': props.isAnimated,\n 'has-label-right': props.labelPosition === 'is-right',\n 'has-label-left': props.labelPosition === 'is-left',\n 'mobile-minimalist': props.mobileMode === 'minimal',\n 'mobile-compact': props.mobileMode === 'compact'\n },\n ...themeClasses\n ]\n },\n h('ul', { class: ['step-items'] }, injection.steps.map(getGenerateNavItem(props, model, injection, transition)))\n );\n}\n\nfunction BStaticStepContent(_: unknown, { slots }: SetupContext) {\n return h('div', { class: 'step-content' }, slots.default && slots.default());\n}\n\nexport default defineComponent({\n name: 'b-steps',\n props: BStepsPropsDefinition,\n setup(props, context) {\n const { themeClasses } = useTheme(props);\n const model = useModel(props);\n const transition = shallowRef('slide-next' as 'slide-next' | 'slide-prev');\n const steps = shallowReactive([] as BStepItemProps[]);\n const isTransitioning = shallowRef(false);\n const activeLabel = computed(() =>\n pipe(\n steps,\n lookup(model.modelValue.value || 0),\n map(p => p.label)\n )\n );\n const injection: StepInjection = {\n activeLabel,\n steps\n };\n\n provide(STEPS_SYMBOL, injection);\n\n function onBeforeEnter() {\n isTransitioning.value = true;\n }\n\n function onAfterLeave() {\n isTransitioning.value = false;\n }\n\n return () => {\n return h(\n 'article',\n {\n class: [\n 'b-steps',\n props.size || null,\n {\n 'is-vertical': props.isVertical,\n [props.position]: props.position && props.isVertical\n }\n ]\n },\n [\n generateNavHeader(props, model, injection, transition, themeClasses.value),\n props.isAnimated\n ? h(\n 'div',\n {\n class: ['step-content', { 'is-transitioning': isTransitioning.value }]\n },\n h(\n TransitionGroup,\n {\n onBeforeEnter,\n onAfterLeave,\n name: transition.value\n },\n () =>\n context.slots.default &&\n context.slots\n .default()\n .map((node, index) => cloneVNode(node, { key: steps[index]?.label ?? index }))\n )\n )\n : h(BStaticStepContent, () => context.slots.default && context.slots.default())\n ]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BSteps.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/index.d.ts b/node_modules/buetify/lib/components/steps/index.d.ts new file mode 100755 index 0000000..4f417d0 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/index.d.ts @@ -0,0 +1,3 @@ +import BStepItem from './BStepItem'; +import BSteps from './BSteps'; +export { BStepItem, BSteps }; diff --git a/node_modules/buetify/lib/components/steps/index.js b/node_modules/buetify/lib/components/steps/index.js new file mode 100755 index 0000000..d4a6176 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/index.js @@ -0,0 +1,4 @@ +import BStepItem from './BStepItem'; +import BSteps from './BSteps'; +export { BStepItem, BSteps }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/index.js.map b/node_modules/buetify/lib/components/steps/index.js.map new file mode 100755 index 0000000..4fb404a --- /dev/null +++ b/node_modules/buetify/lib/components/steps/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AACA,OAAO,MAAP,MAAmB,UAAnB;AAEA,SAAS,SAAT,EAAoB,MAApB","sourcesContent":["import BStepItem from './BStepItem';\nimport BSteps from './BSteps';\n\nexport { BStepItem, BSteps };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/shared.d.ts b/node_modules/buetify/lib/components/steps/shared.d.ts new file mode 100755 index 0000000..fd1cdc1 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/shared.d.ts @@ -0,0 +1,40 @@ +import { Component, ExtractPropTypes, PropType, Ref } from 'vue'; +import { Option } from 'fp-ts/lib/Option'; +import { ColorVariant } from '../../types/ColorVariants'; +export declare const STEPS_SYMBOL: unique symbol; +export declare const STEP_ITEM_NAME = "b-step-item"; +export interface StepInjection { + activeLabel: Ref<Option<string>>; + steps: BStepItemProps[]; +} +export declare const DEFAULT_STEP_INJECTION: StepInjection; +export declare const BStepItemPropsDefinition: { + label: { + type: PropType<string>; + required: true; + }; + step: { + type: StringConstructor; + required: boolean; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + icon: { + type: PropType<Component<any, any, any, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions>>; + }; + isClickable: { + type: PropType<boolean>; + default: boolean; + }; + isCompleted: { + type: PropType<boolean>; + default: boolean; + }; + isVisible: { + type: PropType<boolean>; + default: boolean; + }; +}; +export declare type BStepItemProps = ExtractPropTypes<typeof BStepItemPropsDefinition>; diff --git a/node_modules/buetify/lib/components/steps/shared.js b/node_modules/buetify/lib/components/steps/shared.js new file mode 100755 index 0000000..9d0645b --- /dev/null +++ b/node_modules/buetify/lib/components/steps/shared.js @@ -0,0 +1,38 @@ +import { shallowRef } from 'vue'; +import { none } from 'fp-ts/lib/Option'; +export const STEPS_SYMBOL = Symbol('steps'); +export const STEP_ITEM_NAME = 'b-step-item'; +export const DEFAULT_STEP_INJECTION = { + activeLabel: shallowRef(none), + steps: [] +}; +export const BStepItemPropsDefinition = { + label: { + type: String, + required: true + }, + step: { + type: String, + required: false + }, + variant: { + type: String, + default: '' + }, + icon: { + type: [Function, Object] + }, + isClickable: { + type: Boolean, + default: false + }, + isCompleted: { + type: Boolean, + default: false + }, + isVisible: { + type: Boolean, + default: true + } +}; +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/steps/shared.js.map b/node_modules/buetify/lib/components/steps/shared.js.map new file mode 100755 index 0000000..e19f6f8 --- /dev/null +++ b/node_modules/buetify/lib/components/steps/shared.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/steps/shared.ts"],"names":[],"mappings":"AAAA,SAAqD,UAArD,QAAuE,KAAvE;AACA,SAAS,IAAT,QAA6B,kBAA7B;AAGA,OAAO,MAAM,YAAY,GAAG,MAAM,CAAC,OAAD,CAA3B;AAEP,OAAO,MAAM,cAAc,GAAG,aAAvB;AAOP,OAAO,MAAM,sBAAsB,GAAkB;AACnD,EAAA,WAAW,EAAE,UAAU,CAAC,IAAD,CAD4B;AAEnD,EAAA,KAAK,EAAE;AAF4C,CAA9C;AAKP,OAAO,MAAM,wBAAwB,GAAG;AACtC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,QAAQ,EAAE;AAFL,GAD+B;AAKtC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,QAAQ,EAAE;AAFN,GALgC;AAStC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GAT6B;AAatC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,CAAC,QAAD,EAAW,MAAX;AADF,GAbgC;AAgBtC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAhByB;AAoBtC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GApByB;AAwBtC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA;AAxB2B,CAAjC","sourcesContent":["import { Component, ExtractPropTypes, PropType, Ref, shallowRef } from 'vue';\nimport { none, Option } from 'fp-ts/lib/Option';\nimport { ColorVariant } from '../../types/ColorVariants';\n\nexport const STEPS_SYMBOL = Symbol('steps');\n\nexport const STEP_ITEM_NAME = 'b-step-item';\n\nexport interface StepInjection {\n activeLabel: Ref<Option<string>>;\n steps: BStepItemProps[];\n}\n\nexport const DEFAULT_STEP_INJECTION: StepInjection = {\n activeLabel: shallowRef(none),\n steps: []\n};\n\nexport const BStepItemPropsDefinition = {\n label: {\n type: String as PropType<string>,\n required: true as const\n },\n step: {\n type: String,\n required: false\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as const\n },\n icon: {\n type: [Function, Object] as PropType<Component>\n },\n isClickable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isCompleted: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isVisible: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n};\n\nexport type BStepItemProps = ExtractPropTypes<typeof BStepItemPropsDefinition>;\n"],"sourceRoot":"","file":"shared.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BSimpleTable.d.ts b/node_modules/buetify/lib/components/table/BSimpleTable.d.ts new file mode 100755 index 0000000..8eeb344 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BSimpleTable.d.ts @@ -0,0 +1,133 @@ +import { SizeVariant } from '../../types'; +import { PropType } from 'vue'; +export declare const BSimpleTablePropsDefinition: { + isBordered: { + type: PropType<boolean>; + default: boolean; + }; + isSelectable: { + type: PropType<boolean>; + default: boolean; + }; + isStriped: { + type: PropType<boolean>; + default: boolean; + }; + isNarrow: { + type: PropType<boolean>; + default: boolean; + }; + isFullwidth: { + type: PropType<boolean>; + default: boolean; + }; + size: { + type: PropType<SizeVariant>; + }; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isScrollable: { + type: PropType<boolean>; + default: boolean; + }; + useMobileCards: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../../types").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../types").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +declare const _default: import("vue").DefineComponent<{ + isBordered: { + type: PropType<boolean>; + default: boolean; + }; + isSelectable: { + type: PropType<boolean>; + default: boolean; + }; + isStriped: { + type: PropType<boolean>; + default: boolean; + }; + isNarrow: { + type: PropType<boolean>; + default: boolean; + }; + isFullwidth: { + type: PropType<boolean>; + default: boolean; + }; + size: { + type: PropType<SizeVariant>; + }; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isScrollable: { + type: PropType<boolean>; + default: boolean; + }; + useMobileCards: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../../types").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../../types").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../../types").ThemeColorMap; + isLoading: boolean; + isFullwidth: boolean; + isHoverable: boolean; + isBordered: boolean; + isSelectable: boolean; + isStriped: boolean; + isNarrow: boolean; + isScrollable: boolean; + useMobileCards: boolean; +} & { + size?: "" | "is-small" | "is-medium" | "is-large" | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../../types").ThemeColorMap; + isLoading: boolean; + isFullwidth: boolean; + isHoverable: boolean; + isBordered: boolean; + isSelectable: boolean; + isStriped: boolean; + isNarrow: boolean; + isScrollable: boolean; + useMobileCards: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/table/BSimpleTable.js b/node_modules/buetify/lib/components/table/BSimpleTable.js new file mode 100755 index 0000000..a756434 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BSimpleTable.js @@ -0,0 +1,85 @@ +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import BScroll from '../scroll/BScroll'; +import { defineComponent, h } from 'vue'; +import BStyledTable from './BStyledTable'; +export const BSimpleTablePropsDefinition = { ...DefaultThemePropsDefinition, + isBordered: { + type: Boolean, + default: false + }, + isSelectable: { + type: Boolean, + default: false + }, + isStriped: { + type: Boolean, + default: false + }, + isNarrow: { + type: Boolean, + default: false + }, + isFullwidth: { + type: Boolean, + default: true + }, + size: { + type: String + }, + isHoverable: { + type: Boolean, + default: false + }, + isLoading: { + type: Boolean, + default: false + }, + isScrollable: { + type: Boolean, + default: true + }, + useMobileCards: { + type: Boolean, + default: false + } +}; +export default defineComponent({ + name: 'b-simple-table', + inheritAttrs: false, + props: BSimpleTablePropsDefinition, + + setup(props, { + slots + }) { + const { + themeClasses + } = useTheme(props); + + function table() { + return [h('div', { + class: 'table-wrapper' + }, [h(BStyledTable, { + class: [props.size, { + 'is-bordered': props.isBordered, + 'is-striped': props.isStriped, + 'is-narrow': props.isNarrow, + 'is-fullwidth': props.isFullwidth, + 'is-hoverable': props.isHoverable || props.isSelectable, + 'has-mobile-cards': props.useMobileCards + }, ...themeClasses.value] + }, slots.default)])]; + } + + return () => { + return h('div', { + class: ['b-table', { + 'is-loading': props.isLoading + }] + }, props.isScrollable ? h(BScroll, { + class: 'is-fullwidth' + }, table) : table()); + }; + } + +}); +//# sourceMappingURL=BSimpleTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BSimpleTable.js.map b/node_modules/buetify/lib/components/table/BSimpleTable.js.map new file mode 100755 index 0000000..2a04278 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BSimpleTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BSimpleTable.ts"],"names":[],"mappings":"AAAA,SAAS,2BAAT,EAAsC,QAAtC,QAAsD,yBAAtD;AAEA,OAAO,OAAP,MAAoB,mBAApB;AACA,SAAS,eAAT,EAA0B,CAA1B,QAA6C,KAA7C;AACA,OAAO,YAAP,MAAyB,gBAAzB;AAEA,OAAO,MAAM,2BAA2B,GAAG,EACzC,GAAG,2BADsC;AAEzC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAF6B;AAMzC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAN2B;AAUzC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GAV8B;AAczC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,OADE;AAER,IAAA,OAAO,EAAE;AAFD,GAd+B;AAkBzC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAlB4B;AAsBzC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE;AADF,GAtBmC;AAyBzC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAzB4B;AA6BzC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GA7B8B;AAiCzC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAjC2B;AAqCzC,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,OADQ;AAEd,IAAA,OAAO,EAAE;AAFK;AArCyB,CAApC;AA2CP,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,gBADuB;AAE7B,EAAA,YAAY,EAAE,KAFe;AAG7B,EAAA,KAAK,EAAE,2BAHsB;;AAI7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;;AAEA,aAAS,KAAT,GAAc;AACZ,aAAO,CACL,CAAC,CAAC,KAAD,EAAQ;AAAE,QAAA,KAAK,EAAE;AAAT,OAAR,EAAoC,CACnC,CAAC,CACC,YADD,EAEC;AACE,QAAA,KAAK,EAAE,CACL,KAAK,CAAC,IADD,EAEL;AACE,yBAAe,KAAK,CAAC,UADvB;AAEE,wBAAc,KAAK,CAAC,SAFtB;AAGE,uBAAa,KAAK,CAAC,QAHrB;AAIE,0BAAgB,KAAK,CAAC,WAJxB;AAKE,0BAAgB,KAAK,CAAC,WAAN,IAAqB,KAAK,CAAC,YAL7C;AAME,8BAAoB,KAAK,CAAC;AAN5B,SAFK,EAUL,GAAG,YAAY,CAAC,KAVX;AADT,OAFD,EAgBC,KAAK,CAAC,OAhBP,CADkC,CAApC,CADI,CAAP;AAsBD;;AACD,WAAO,MAAK;AACV,aAAO,CAAC,CACN,KADM,EAEN;AACE,QAAA,KAAK,EAAE,CAAC,SAAD,EAAY;AAAE,wBAAc,KAAK,CAAC;AAAtB,SAAZ;AADT,OAFM,EAKN,KAAK,CAAC,YAAN,GAAqB,CAAC,CAAC,OAAD,EAAU;AAAE,QAAA,KAAK,EAAE;AAAT,OAAV,EAAqC,KAArC,CAAtB,GAAoE,KAAK,EALnE,CAAR;AAOD,KARD;AASD;;AAxC4B,CAAD,CAA9B","sourcesContent":["import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { SizeVariant } from '../../types';\nimport BScroll from '../scroll/BScroll';\nimport { defineComponent, h, PropType } from 'vue';\nimport BStyledTable from './BStyledTable';\n\nexport const BSimpleTablePropsDefinition = {\n ...DefaultThemePropsDefinition,\n isBordered: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isSelectable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isStriped: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isNarrow: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isFullwidth: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n size: {\n type: String as PropType<SizeVariant>\n },\n isHoverable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isScrollable: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n useMobileCards: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n};\n\nexport default defineComponent({\n name: 'b-simple-table',\n inheritAttrs: false,\n props: BSimpleTablePropsDefinition,\n setup(props, { slots }) {\n const { themeClasses } = useTheme(props);\n\n function table() {\n return [\n h('div', { class: 'table-wrapper' }, [\n h(\n BStyledTable,\n {\n class: [\n props.size,\n {\n 'is-bordered': props.isBordered,\n 'is-striped': props.isStriped,\n 'is-narrow': props.isNarrow,\n 'is-fullwidth': props.isFullwidth,\n 'is-hoverable': props.isHoverable || props.isSelectable,\n 'has-mobile-cards': props.useMobileCards\n },\n ...themeClasses.value\n ]\n },\n slots.default\n )\n ])\n ];\n }\n return () => {\n return h(\n 'div',\n {\n class: ['b-table', { 'is-loading': props.isLoading }]\n },\n props.isScrollable ? h(BScroll, { class: 'is-fullwidth' }, table) : table()\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BSimpleTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BStyledTable.d.ts b/node_modules/buetify/lib/components/table/BStyledTable.d.ts new file mode 100755 index 0000000..207e1b7 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BStyledTable.d.ts @@ -0,0 +1,30 @@ +import '../../sass/helpers/animations.sass'; +import '../../sass/helpers/cursor-helpers.sass'; +import './table.sass'; +declare const _default: import("vue").DefineComponent<{ + tag: { + type: (FunctionConstructor | StringConstructor)[]; + default: string; + }; + themeMap: { + type: import("vue").PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string | Function; +} & {}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + tag: string | Function; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/table/BStyledTable.js b/node_modules/buetify/lib/components/table/BStyledTable.js new file mode 100755 index 0000000..0931c09 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BStyledTable.js @@ -0,0 +1,9 @@ +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/sass/helpers/cursor-helpers.sass"; +import "../../../src/components/table/table.sass"; +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; +export default getThemeableFunctionalComponent({ + cls: 'table', + el: 'table' +}); +//# sourceMappingURL=BStyledTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BStyledTable.js.map b/node_modules/buetify/lib/components/table/BStyledTable.js.map new file mode 100755 index 0000000..34dd7e4 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BStyledTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BStyledTable.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AACA,OAAO,+CAAP;AACA,OAAO,0CAAP;AACA,SAAS,+BAAT,QAAgD,6CAAhD;AAEA,eAAe,+BAA+B,CAAC;AAAE,EAAA,GAAG,EAAE,OAAP;AAAgB,EAAA,EAAE,EAAE;AAApB,CAAD,CAA9C","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport '../../sass/helpers/cursor-helpers.sass';\nimport './table.sass';\nimport { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent';\n\nexport default getThemeableFunctionalComponent({ cls: 'table', el: 'table' });\n"],"sourceRoot":"","file":"BStyledTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTable.d.ts b/node_modules/buetify/lib/components/table/BTable.d.ts new file mode 100755 index 0000000..6b62e8b --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTable.d.ts @@ -0,0 +1,432 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { PropType, VNode, ExtractPropTypes } from 'vue'; +import { Classes } from '../../utils/mergeClasses'; +import { PaginationPosition, PaginationSize, PaginationVerticalPosition } from '../pagination/BPagination'; +import { BTableColumn, BTableRow } from './shared'; +export interface BTablePaginationInput { + page?: number; + 'onUpdate:page'?: FunctionN<[number], void>; + perPage?: number; + size?: PaginationSize; + isSimple?: boolean; + isRounded?: boolean; + horizontalPosition?: PaginationPosition; + verticalPosition?: PaginationVerticalPosition; +} +export declare const BTablePropsDefinition: { + useMobileCards: { + type: PropType<boolean>; + default: boolean; + }; + rows: { + type: PropType<BTableRow[]>; + required: true; + }; + sortBy: { + type: PropType<BTableColumn<BTableRow> | BTableColumn<BTableRow>[]>; + }; + 'onUpdate:sortBy': { + type: PropType<FunctionN<[BTableColumn<BTableRow> | BTableColumn<BTableRow>[]], void>>; + }; + sortType: { + type: PropType<import("./shared").SortType>; + default: "Descending"; + }; + 'onUpdate:sortType': { + type: PropType<FunctionN<[import("./shared").SortType], void>>; + }; + isSelectable: { + type: PropType<boolean>; + default: boolean; + }; + selectedRows: { + type: PropType<BTableRow[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:selectedRows': { + type: PropType<FunctionN<[BTableRow[]], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onSelectRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onUnselectRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + isDraggable: { + type: BooleanConstructor; + default: boolean; + }; + dropEffect: { + type: PropType<"copy" | "link" | "none" | "move">; + default: "move"; + }; + onDragstart: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragenter: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragover: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragleave: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragend: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDrop: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + isCheckable: { + type: PropType<boolean>; + default: boolean; + }; + checkedRows: { + type: PropType<BTableRow[]>; + default: never[]; + }; + 'onUpdate:checkedRows': { + type: PropType<FunctionN<[BTableRow[]], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + checkboxVariant: { + type: PropType<import("../..").ColorVariant>; + default: "is-primary"; + }; + canCheckAllRows: { + type: PropType<boolean>; + default: boolean; + }; + onCheckRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onUncheckRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + isBordered: { + type: PropType<boolean>; + default: boolean; + }; + isStriped: { + type: PropType<boolean>; + default: boolean; + }; + isNarrow: { + type: PropType<boolean>; + default: boolean; + }; + isFullwidth: { + type: PropType<boolean>; + default: boolean; + }; + size: { + type: PropType<import("../..").SizeVariant>; + }; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isScrollable: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + columns: { + type: PropType<BTableColumn<unknown>[]>; + required: true; + }; + isFocusable: { + type: PropType<boolean>; + default: boolean; + }; + mobileSortPlaceholder: { + type: PropType<string>; + }; + headerClasses: { + type: PropType<Classes>; + default: undefined; + }; + onRowClick: { + type: PropType<FunctionN<[BTableRow, MouseEvent], void>>; + required: boolean; + }; + pagination: { + type: PropType<boolean | BTablePaginationInput>; + required: boolean; + }; +}; +export interface BTableProps extends ExtractPropTypes<typeof BTablePropsDefinition> { +} +declare const _default: import("vue").DefineComponent<{ + useMobileCards: { + type: PropType<boolean>; + default: boolean; + }; + rows: { + type: PropType<BTableRow[]>; + required: true; + }; + sortBy: { + type: PropType<BTableColumn<BTableRow> | BTableColumn<BTableRow>[]>; + }; + 'onUpdate:sortBy': { + type: PropType<FunctionN<[BTableColumn<BTableRow> | BTableColumn<BTableRow>[]], void>>; + }; + sortType: { + type: PropType<import("./shared").SortType>; + default: "Descending"; + }; + 'onUpdate:sortType': { + type: PropType<FunctionN<[import("./shared").SortType], void>>; + }; + isSelectable: { + type: PropType<boolean>; + default: boolean; + }; + selectedRows: { + type: PropType<BTableRow[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:selectedRows': { + type: PropType<FunctionN<[BTableRow[]], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onSelectRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onUnselectRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + isDraggable: { + type: BooleanConstructor; + default: boolean; + }; + dropEffect: { + type: PropType<"copy" | "link" | "none" | "move">; + default: "move"; + }; + onDragstart: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragenter: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragover: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragleave: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragend: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDrop: { + type: PropType<FunctionN<[BTableRow, DragEvent, number], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + isCheckable: { + type: PropType<boolean>; + default: boolean; + }; + checkedRows: { + type: PropType<BTableRow[]>; + default: never[]; + }; + 'onUpdate:checkedRows': { + type: PropType<FunctionN<[BTableRow[]], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + checkboxVariant: { + type: PropType<import("../..").ColorVariant>; + default: "is-primary"; + }; + canCheckAllRows: { + type: PropType<boolean>; + default: boolean; + }; + onCheckRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onUncheckRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + isBordered: { + type: PropType<boolean>; + default: boolean; + }; + isStriped: { + type: PropType<boolean>; + default: boolean; + }; + isNarrow: { + type: PropType<boolean>; + default: boolean; + }; + isFullwidth: { + type: PropType<boolean>; + default: boolean; + }; + size: { + type: PropType<import("../..").SizeVariant>; + }; + isHoverable: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isScrollable: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + columns: { + type: PropType<BTableColumn<unknown>[]>; + required: true; + }; + isFocusable: { + type: PropType<boolean>; + default: boolean; + }; + mobileSortPlaceholder: { + type: PropType<string>; + }; + headerClasses: { + type: PropType<Classes>; + default: undefined; + }; + onRowClick: { + type: PropType<FunctionN<[BTableRow, MouseEvent], void>>; + required: boolean; + }; + pagination: { + type: PropType<boolean | BTablePaginationInput>; + required: boolean; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + columns: BTableColumn<unknown>[]; + isLoading: boolean; + isFullwidth: boolean; + isHoverable: boolean; + isBordered: boolean; + isSelectable: boolean; + isStriped: boolean; + isNarrow: boolean; + isScrollable: boolean; + useMobileCards: boolean; + rows: BTableRow[]; + sortType: import("./shared").SortType; + isDraggable: boolean; + isCheckable: boolean; + checkedRows: BTableRow[]; + "onUpdate:checkedRows": FunctionN<[BTableRow[]], void>; + checkboxVariant: import("../..").ColorVariant; + canCheckAllRows: boolean; + onCheckRow: FunctionN<[BTableRow], void>; + onUncheckRow: FunctionN<[BTableRow], void>; + dropEffect: "copy" | "link" | "none" | "move"; + onDragstart: FunctionN<[BTableRow, DragEvent, number], void>; + onDragenter: FunctionN<[BTableRow, DragEvent, number], void>; + onDragover: FunctionN<[BTableRow, DragEvent, number], void>; + onDragleave: FunctionN<[BTableRow, DragEvent, number], void>; + onDragend: FunctionN<[BTableRow, DragEvent, number], void>; + onDrop: FunctionN<[BTableRow, DragEvent, number], void>; + selectedRows: BTableRow[]; + "onUpdate:selectedRows": FunctionN<[BTableRow[]], void>; + onSelectRow: FunctionN<[BTableRow], void>; + onUnselectRow: FunctionN<[BTableRow], void>; + isFocusable: boolean; + headerClasses: Classes; +} & { + size?: "" | "is-small" | "is-medium" | "is-large" | undefined; + pagination?: boolean | BTablePaginationInput | undefined; + sortBy?: BTableColumn<BTableRow> | BTableColumn<BTableRow>[] | undefined; + "onUpdate:sortBy"?: FunctionN<[BTableColumn<BTableRow> | BTableColumn<BTableRow>[]], void> | undefined; + "onUpdate:sortType"?: FunctionN<[import("./shared").SortType], void> | undefined; + onRowClick?: FunctionN<[BTableRow, MouseEvent], void> | undefined; + mobileSortPlaceholder?: string | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + isLoading: boolean; + isFullwidth: boolean; + isHoverable: boolean; + isBordered: boolean; + isSelectable: boolean; + isStriped: boolean; + isNarrow: boolean; + isScrollable: boolean; + useMobileCards: boolean; + sortType: import("./shared").SortType; + isDraggable: boolean; + isCheckable: boolean; + checkedRows: BTableRow[]; + "onUpdate:checkedRows": FunctionN<[BTableRow[]], void>; + checkboxVariant: import("../..").ColorVariant; + canCheckAllRows: boolean; + onCheckRow: FunctionN<[BTableRow], void>; + onUncheckRow: FunctionN<[BTableRow], void>; + dropEffect: "copy" | "link" | "none" | "move"; + onDragstart: FunctionN<[BTableRow, DragEvent, number], void>; + onDragenter: FunctionN<[BTableRow, DragEvent, number], void>; + onDragover: FunctionN<[BTableRow, DragEvent, number], void>; + onDragleave: FunctionN<[BTableRow, DragEvent, number], void>; + onDragend: FunctionN<[BTableRow, DragEvent, number], void>; + onDrop: FunctionN<[BTableRow, DragEvent, number], void>; + selectedRows: BTableRow[]; + "onUpdate:selectedRows": FunctionN<[BTableRow[]], void>; + onSelectRow: FunctionN<[BTableRow], void>; + onUnselectRow: FunctionN<[BTableRow], void>; + isFocusable: boolean; + headerClasses: Classes; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/table/BTable.js b/node_modules/buetify/lib/components/table/BTable.js new file mode 100755 index 0000000..1834de7 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTable.js @@ -0,0 +1,166 @@ +import { isEmpty } from 'fp-ts/lib/Array'; +import { defineComponent, h, computed, toRef } from 'vue'; +import { useProxy } from '../../composables/proxy'; +import { useWindowSize } from '../../composables/windowSize'; +import { isBoolean } from '../../utils/helpers'; +import BPagination from '../pagination/BPagination'; +import BSimpleTable, { BSimpleTablePropsDefinition } from './BSimpleTable'; +import BTableHeader from './BTableHeader'; +import BTableMobileSort from './BTableMobileSort'; +import BTableRowElement from './BTableRow'; +import { provideVisibleColumns } from './composables/shared'; +import { BTableCheckPropsDefinition, useCheckableTable } from './composables/useCheckableTable'; +import { BTableDraggablePropsDefinition, useDraggableTable } from './composables/useDraggableTable'; +import { BTableSelectablePropsDefinition, useSelectableTable } from './composables/useSelectableTable'; +import { BTableSortingPropsDefinition, useSortableTable } from './composables/useSortableTable'; +export const BTablePropsDefinition = { + columns: { + type: Array, + required: true + }, + isFocusable: { + type: Boolean, + default: false + }, + mobileSortPlaceholder: { + type: String + }, + headerClasses: { + type: [String, Object, Array], + default: undefined + }, + onRowClick: { + type: Function, + required: false + }, + pagination: { + type: [Boolean, Object], + required: false + }, + ...BSimpleTablePropsDefinition, + ...BTableCheckPropsDefinition, + ...BTableDraggablePropsDefinition, + ...BTableSelectablePropsDefinition, + ...BTableSortingPropsDefinition, + useMobileCards: { + type: Boolean, + default: true + } +}; + +function generateTableHeader(classes, slots) { + return h(BTableHeader, { + class: classes + }, { ...slots + }); +} + +function generateEmptyTable(visibleColumns, slots) { + return h('tbody', [h('tr', { + class: 'is-empty' + }, [h('td', { + colspan: visibleColumns.value.length + }, slots.empty && slots.empty())])]); +} + +function generateTableBody(props, rows, visibleColumns, slots) { + if (isEmpty(props.rows)) { + return generateEmptyTable(visibleColumns, slots); + } + + const onRowClick = props.onRowClick; + return h('tbody', rows.map((row, index) => slots.row ? slots.row({ + row, + index, + onRowClick, + columns: visibleColumns.value + }) : h(BTableRowElement, { + key: row.id, + row, + index, + onRowClick + }, { ...slots + }))); +} + +function generateTableFooter(visibleColumns, slots) { + return h('tfoot', [h('tr', { + class: 'table-footer' + }, slots.footer && slots.footer({ + numberOfColumns: visibleColumns.value.length, + columns: visibleColumns.value + }))]); +} + +function generateTable(props, rows, visibleColumns, slots) { + return h(BSimpleTable, props, () => { + const nodes = [generateTableHeader(props.headerClasses, slots), generateTableBody(props, rows, visibleColumns, slots)]; + + if (slots.footer) { + nodes.push(generateTableFooter(visibleColumns, slots)); + } + + return nodes; + }); +} + +export default defineComponent({ + name: 'b-table', + props: BTablePropsDefinition, + + setup(props, { + slots + }) { + const { + value: rows + } = useProxy(toRef(props, 'rows')); + const visibleColumns = computed(() => props.columns.filter(column => column.isVisible ?? true)); + provideVisibleColumns(visibleColumns); + const { + hasSortableColumns + } = useSortableTable(props, rows, visibleColumns); + useCheckableTable(props, rows); + useSelectableTable(props); + useDraggableTable(props); + const windowSize = useWindowSize(); + const useMobileSorting = computed(() => props.useMobileCards && hasSortableColumns.value && windowSize.value.isTouch); + return () => { + const nodes = []; + + if (useMobileSorting.value) { + nodes.push(h(BTableMobileSort, { + placeholder: props.mobileSortPlaceholder + })); + } + + if (props.pagination) { + nodes.push(h(BPagination, isBoolean(props.pagination) ? { + total: props.rows.length, + items: rows.value + } : { + isSimple: props.pagination.isSimple, + isRounded: props.pagination.isRounded, + modelValue: props.pagination.page, + 'onUpdate:modelValue': props.pagination['onUpdate:page'], + total: props.rows.length, + items: rows.value, + perPage: props.pagination.perPage, + size: props.pagination.size, + position: props.pagination.horizontalPosition, + verticalPosition: props.pagination.verticalPosition + }, // eslint-disable-line + { + default: paginatedState => { + return generateTable(props, paginatedState.paginatedItems, visibleColumns, slots); + } + })); + return h('div', nodes); + } else { + nodes.push(generateTable(props, rows.value, visibleColumns, slots)); + return h('div', nodes); + } + }; + } + +}); +//# sourceMappingURL=BTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTable.js.map b/node_modules/buetify/lib/components/table/BTable.js.map new file mode 100755 index 0000000..a886f65 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BTable.ts"],"names":[],"mappings":"AAAA,SAAS,OAAT,QAAwB,iBAAxB;AAEA,SAAS,eAAT,EAA0B,CAA1B,EAAqE,QAArE,EAAsF,KAAtF,QAAmG,KAAnG;AAEA,SAAS,QAAT,QAAyB,yBAAzB;AACA,SAAS,aAAT,QAA8B,8BAA9B;AACA,SAAS,SAAT,QAA0B,qBAA1B;AAEA,OAAO,WAAP,MAA4F,2BAA5F;AACA,OAAO,YAAP,IAAuB,2BAAvB,QAA0D,gBAA1D;AACA,OAAO,YAAP,MAAyB,gBAAzB;AACA,OAAO,gBAAP,MAA6B,oBAA7B;AACA,OAAO,gBAAP,MAA6B,aAA7B;AACA,SAAS,qBAAT,QAAsC,sBAAtC;AACA,SAAS,0BAAT,EAAqC,iBAArC,QAA8D,iCAA9D;AACA,SAAS,8BAAT,EAAyC,iBAAzC,QAAkE,iCAAlE;AACA,SAAS,+BAAT,EAA0C,kBAA1C,QAAoE,kCAApE;AACA,SAAS,4BAAT,EAAuC,gBAAvC,QAA+D,gCAA/D;AAcA,OAAO,MAAM,qBAAqB,GAAG;AACnC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,KADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GAD0B;AAKnC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GALsB;AASnC,EAAA,qBAAqB,EAAE;AACrB,IAAA,IAAI,EAAE;AADe,GATY;AAYnC,EAAA,aAAa,EAAE;AACb,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,EAAiB,KAAjB,CADO;AAEb,IAAA,OAAO,EAAE;AAFI,GAZoB;AAgBnC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,QADI;AAEV,IAAA,QAAQ,EAAE;AAFA,GAhBuB;AAoBnC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,CADI;AAEV,IAAA,QAAQ,EAAE;AAFA,GApBuB;AAwBnC,KAAG,2BAxBgC;AAyBnC,KAAG,0BAzBgC;AA0BnC,KAAG,8BA1BgC;AA2BnC,KAAG,+BA3BgC;AA4BnC,KAAG,4BA5BgC;AA6BnC,EAAA,cAAc,EAAE;AACd,IAAA,IAAI,EAAE,OADQ;AAEd,IAAA,OAAO,EAAE;AAFK;AA7BmB,CAA9B;;AAqCP,SAAS,mBAAT,CAA6B,OAA7B,EAA+C,KAA/C,EAA2D;AACzD,SAAO,CAAC,CACN,YADM,EAEN;AACE,IAAA,KAAK,EAAE;AADT,GAFM,EAKN,EAAE,GAAG;AAAL,GALM,CAAR;AAOD;;AAED,SAAS,kBAAT,CAA4B,cAA5B,EAAiE,KAAjE,EAA6E;AAC3E,SAAO,CAAC,CAAC,OAAD,EAAU,CAChB,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,KAAK,EAAE;AAAT,GAAP,EAA8B,CAAC,CAAC,CAAC,IAAD,EAAO;AAAE,IAAA,OAAO,EAAE,cAAc,CAAC,KAAf,CAAqB;AAAhC,GAAP,EAAiD,KAAK,CAAC,KAAN,IAAe,KAAK,CAAC,KAAN,EAAhE,CAAF,CAA9B,CADe,CAAV,CAAR;AAGD;;AAED,SAAS,iBAAT,CACE,KADF,EAEE,IAFF,EAGE,cAHF,EAIE,KAJF,EAIc;AAEZ,MAAI,OAAO,CAAC,KAAK,CAAC,IAAP,CAAX,EAAyB;AACvB,WAAO,kBAAkB,CAAC,cAAD,EAAiB,KAAjB,CAAzB;AACD;;AACD,QAAM,UAAU,GAAG,KAAK,CAAC,UAAzB;AACA,SAAO,CAAC,CACN,OADM,EAEN,IAAI,CAAC,GAAL,CAAS,CAAC,GAAD,EAAM,KAAN,KACP,KAAK,CAAC,GAAN,GACI,KAAK,CAAC,GAAN,CAAU;AACR,IAAA,GADQ;AAER,IAAA,KAFQ;AAGR,IAAA,UAHQ;AAIR,IAAA,OAAO,EAAE,cAAc,CAAC;AAJhB,GAAV,CADJ,GAOI,CAAC,CACC,gBADD,EAEC;AACE,IAAA,GAAG,EAAE,GAAG,CAAC,EADX;AAEE,IAAA,GAFF;AAGE,IAAA,KAHF;AAIE,IAAA;AAJF,GAFD,EAQC,EAAE,GAAG;AAAL,GARD,CARP,CAFM,CAAR;AAsBD;;AAED,SAAS,mBAAT,CAA6B,cAA7B,EAAkE,KAAlE,EAA8E;AAC5E,SAAO,CAAC,CAAC,OAAD,EAAU,CAChB,CAAC,CACC,IADD,EAEC;AAAE,IAAA,KAAK,EAAE;AAAT,GAFD,EAGC,KAAK,CAAC,MAAN,IAAgB,KAAK,CAAC,MAAN,CAAa;AAAE,IAAA,eAAe,EAAE,cAAc,CAAC,KAAf,CAAqB,MAAxC;AAAgD,IAAA,OAAO,EAAE,cAAc,CAAC;AAAxE,GAAb,CAHjB,CADe,CAAV,CAAR;AAOD;;AAED,SAAS,aAAT,CACE,KADF,EAEE,IAFF,EAGE,cAHF,EAIE,KAJF,EAIc;AAEZ,SAAO,CAAC,CAAC,YAAD,EAAe,KAAf,EAAsB,MAAK;AACjC,UAAM,KAAK,GAAG,CACZ,mBAAmB,CAAC,KAAK,CAAC,aAAP,EAAsB,KAAtB,CADP,EAEZ,iBAAiB,CAAC,KAAD,EAAQ,IAAR,EAAc,cAAd,EAA8B,KAA9B,CAFL,CAAd;;AAIA,QAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,MAAA,KAAK,CAAC,IAAN,CAAW,mBAAmB,CAAC,cAAD,EAAiB,KAAjB,CAA9B;AACD;;AACD,WAAO,KAAP;AACD,GATO,CAAR;AAUD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,SADuB;AAE7B,EAAA,KAAK,EAAE,qBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA,KAAK,EAAE;AAAT,QAAkB,QAAQ,CAAC,KAAK,CAAC,KAAD,EAAQ,MAAR,CAAN,CAAhC;AAEA,UAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,OAAN,CAAc,MAAd,CAAqB,MAAM,IAAI,MAAM,CAAC,SAAP,IAAoB,IAAnD,CAAP,CAA/B;AAEA,IAAA,qBAAqB,CAAC,cAAD,CAArB;AACA,UAAM;AAAE,MAAA;AAAF,QAAyB,gBAAgB,CAAC,KAAD,EAAQ,IAAR,EAAc,cAAd,CAA/C;AACA,IAAA,iBAAiB,CAAC,KAAD,EAAQ,IAAR,CAAjB;AACA,IAAA,kBAAkB,CAAC,KAAD,CAAlB;AACA,IAAA,iBAAiB,CAAC,KAAD,CAAjB;AAEA,UAAM,UAAU,GAAG,aAAa,EAAhC;AACA,UAAM,gBAAgB,GAAG,QAAQ,CAC/B,MAAM,KAAK,CAAC,cAAN,IAAwB,kBAAkB,CAAC,KAA3C,IAAoD,UAAU,CAAC,KAAX,CAAiB,OAD5C,CAAjC;AAIA,WAAO,MAAK;AACV,YAAM,KAAK,GAAG,EAAd;;AACA,UAAI,gBAAgB,CAAC,KAArB,EAA4B;AAC1B,QAAA,KAAK,CAAC,IAAN,CACE,CAAC,CAAC,gBAAD,EAAmB;AAClB,UAAA,WAAW,EAAE,KAAK,CAAC;AADD,SAAnB,CADH;AAKD;;AACD,UAAI,KAAK,CAAC,UAAV,EAAsB;AACpB,QAAA,KAAK,CAAC,IAAN,CACE,CAAC,CACC,WADD,EAEC,SAAS,CAAC,KAAK,CAAC,UAAP,CAAT,GACI;AACE,UAAA,KAAK,EAAE,KAAK,CAAC,IAAN,CAAW,MADpB;AAEE,UAAA,KAAK,EAAE,IAAI,CAAC;AAFd,SADJ,GAKK;AACC,UAAA,QAAQ,EAAE,KAAK,CAAC,UAAN,CAAiB,QAD5B;AAEC,UAAA,SAAS,EAAE,KAAK,CAAC,UAAN,CAAiB,SAF7B;AAGC,UAAA,UAAU,EAAE,KAAK,CAAC,UAAN,CAAiB,IAH9B;AAIC,iCAAuB,KAAK,CAAC,UAAN,CAAiB,eAAjB,CAJxB;AAKC,UAAA,KAAK,EAAE,KAAK,CAAC,IAAN,CAAW,MALnB;AAMC,UAAA,KAAK,EAAE,IAAI,CAAC,KANb;AAOC,UAAA,OAAO,EAAE,KAAK,CAAC,UAAN,CAAiB,OAP3B;AAQC,UAAA,IAAI,EAAE,KAAK,CAAC,UAAN,CAAiB,IARxB;AASC,UAAA,QAAQ,EAAE,KAAK,CAAC,UAAN,CAAiB,kBAT5B;AAUC,UAAA,gBAAgB,EAAE,KAAK,CAAC,UAAN,CAAiB;AAVpC,SAPN,EAkBgB;AACf;AACE,UAAA,OAAO,EAAG,cAAD,IAA6C;AACpD,mBAAO,aAAa,CAAC,KAAD,EAAQ,cAAc,CAAC,cAAvB,EAAsD,cAAtD,EAAsE,KAAtE,CAApB;AACD;AAHH,SAnBD,CADH;AA2BA,eAAO,CAAC,CAAC,KAAD,EAAQ,KAAR,CAAR;AACD,OA7BD,MA6BO;AACL,QAAA,KAAK,CAAC,IAAN,CAAW,aAAa,CAAC,KAAD,EAAQ,IAAI,CAAC,KAAb,EAAoB,cAApB,EAAoC,KAApC,CAAxB;AACA,eAAO,CAAC,CAAC,KAAD,EAAQ,KAAR,CAAR;AACD;AACF,KA1CD;AA2CD;;AA9D4B,CAAD,CAA9B","sourcesContent":["import { isEmpty } from 'fp-ts/lib/Array';\nimport { FunctionN } from 'fp-ts/lib/function';\nimport { defineComponent, h, PropType, VNode, Ref, ExtractPropTypes, computed, Slots, toRef } from 'vue';\nimport { ExtractedPaginationState } from '../../composables/pagination';\nimport { useProxy } from '../../composables/proxy';\nimport { useWindowSize } from '../../composables/windowSize';\nimport { isBoolean } from '../../utils/helpers';\nimport { Classes } from '../../utils/mergeClasses';\nimport BPagination, { PaginationPosition, PaginationSize, PaginationVerticalPosition } from '../pagination/BPagination';\nimport BSimpleTable, { BSimpleTablePropsDefinition } from './BSimpleTable';\nimport BTableHeader from './BTableHeader';\nimport BTableMobileSort from './BTableMobileSort';\nimport BTableRowElement from './BTableRow';\nimport { provideVisibleColumns } from './composables/shared';\nimport { BTableCheckPropsDefinition, useCheckableTable } from './composables/useCheckableTable';\nimport { BTableDraggablePropsDefinition, useDraggableTable } from './composables/useDraggableTable';\nimport { BTableSelectablePropsDefinition, useSelectableTable } from './composables/useSelectableTable';\nimport { BTableSortingPropsDefinition, useSortableTable } from './composables/useSortableTable';\nimport { BTableColumn, BTableRow } from './shared';\n\nexport interface BTablePaginationInput {\n page?: number;\n 'onUpdate:page'?: FunctionN<[number], void>;\n perPage?: number;\n size?: PaginationSize;\n isSimple?: boolean;\n isRounded?: boolean;\n horizontalPosition?: PaginationPosition;\n verticalPosition?: PaginationVerticalPosition;\n}\n\nexport const BTablePropsDefinition = {\n columns: {\n type: Array as PropType<BTableColumn<unknown>[]>,\n required: true as const\n },\n isFocusable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n mobileSortPlaceholder: {\n type: String as PropType<string>\n },\n headerClasses: {\n type: [String, Object, Array] as PropType<Classes>,\n default: undefined\n },\n onRowClick: {\n type: Function as PropType<FunctionN<[BTableRow, MouseEvent], void>>,\n required: false\n },\n pagination: {\n type: [Boolean, Object] as PropType<boolean | BTablePaginationInput>,\n required: false\n },\n ...BSimpleTablePropsDefinition,\n ...BTableCheckPropsDefinition,\n ...BTableDraggablePropsDefinition,\n ...BTableSelectablePropsDefinition,\n ...BTableSortingPropsDefinition,\n useMobileCards: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n};\n\nexport interface BTableProps extends ExtractPropTypes<typeof BTablePropsDefinition> {}\n\nfunction generateTableHeader(classes: Classes, slots: Slots): VNode {\n return h(\n BTableHeader,\n {\n class: classes\n },\n { ...slots }\n );\n}\n\nfunction generateEmptyTable(visibleColumns: Ref<BTableColumn[]>, slots: Slots): VNode {\n return h('tbody', [\n h('tr', { class: 'is-empty' }, [h('td', { colspan: visibleColumns.value.length }, slots.empty && slots.empty())])\n ]);\n}\n\nfunction generateTableBody(\n props: BTableProps,\n rows: BTableRow[],\n visibleColumns: Ref<BTableColumn[]>,\n slots: Slots\n): VNode {\n if (isEmpty(props.rows)) {\n return generateEmptyTable(visibleColumns, slots);\n }\n const onRowClick = props.onRowClick;\n return h(\n 'tbody',\n rows.map((row, index) =>\n slots.row\n ? slots.row({\n row,\n index,\n onRowClick,\n columns: visibleColumns.value\n })\n : h(\n BTableRowElement,\n {\n key: row.id as string | number,\n row,\n index,\n onRowClick\n },\n { ...slots }\n )\n )\n );\n}\n\nfunction generateTableFooter(visibleColumns: Ref<BTableColumn[]>, slots: Slots): VNode {\n return h('tfoot', [\n h(\n 'tr',\n { class: 'table-footer' },\n slots.footer && slots.footer({ numberOfColumns: visibleColumns.value.length, columns: visibleColumns.value })\n )\n ]);\n}\n\nfunction generateTable(\n props: BTableProps,\n rows: BTableRow[],\n visibleColumns: Ref<BTableColumn[]>,\n slots: Slots\n): VNode {\n return h(BSimpleTable, props, () => {\n const nodes = [\n generateTableHeader(props.headerClasses, slots),\n generateTableBody(props, rows, visibleColumns, slots)\n ];\n if (slots.footer) {\n nodes.push(generateTableFooter(visibleColumns, slots));\n }\n return nodes;\n });\n}\n\nexport default defineComponent({\n name: 'b-table',\n props: BTablePropsDefinition,\n setup(props, { slots }) {\n const { value: rows } = useProxy(toRef(props, 'rows'));\n\n const visibleColumns = computed(() => props.columns.filter(column => column.isVisible ?? true));\n\n provideVisibleColumns(visibleColumns);\n const { hasSortableColumns } = useSortableTable(props, rows, visibleColumns);\n useCheckableTable(props, rows);\n useSelectableTable(props);\n useDraggableTable(props);\n\n const windowSize = useWindowSize();\n const useMobileSorting = computed(\n () => props.useMobileCards && hasSortableColumns.value && windowSize.value.isTouch\n );\n\n return () => {\n const nodes = [];\n if (useMobileSorting.value) {\n nodes.push(\n h(BTableMobileSort, {\n placeholder: props.mobileSortPlaceholder\n })\n );\n }\n if (props.pagination) {\n nodes.push(\n h(\n BPagination,\n isBoolean(props.pagination)\n ? {\n total: props.rows.length,\n items: rows.value\n }\n : ({\n isSimple: props.pagination.isSimple,\n isRounded: props.pagination.isRounded,\n modelValue: props.pagination.page,\n 'onUpdate:modelValue': props.pagination['onUpdate:page'],\n total: props.rows.length,\n items: rows.value,\n perPage: props.pagination.perPage,\n size: props.pagination.size,\n position: props.pagination.horizontalPosition,\n verticalPosition: props.pagination.verticalPosition\n } as any), // eslint-disable-line\n {\n default: (paginatedState: ExtractedPaginationState) => {\n return generateTable(props, paginatedState.paginatedItems as BTableRow[], visibleColumns, slots);\n }\n }\n )\n );\n return h('div', nodes);\n } else {\n nodes.push(generateTable(props, rows.value, visibleColumns, slots));\n return h('div', nodes);\n }\n };\n }\n});\n"],"sourceRoot":"","file":"BTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableColumn.d.ts b/node_modules/buetify/lib/components/table/BTableColumn.d.ts new file mode 100755 index 0000000..84352e6 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableColumn.d.ts @@ -0,0 +1,13 @@ +import { PropType } from 'vue'; +import { BTableColumn } from './shared'; +declare const _default: import("vue").DefineComponent<{ + column: { + type: PropType<BTableColumn<import("./shared").BTableRow>>; + required: true; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + column: BTableColumn<import("./shared").BTableRow>; +} & {}>, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/table/BTableColumn.js b/node_modules/buetify/lib/components/table/BTableColumn.js new file mode 100755 index 0000000..2863686 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableColumn.js @@ -0,0 +1,98 @@ +import { h, defineComponent, computed } from 'vue'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; +import BTooltip from '../tooltip/BTooltip'; +import { isBoolean, isString } from '../../utils/helpers'; +import { useInjectedSortableTable } from './composables/useSortableTable'; + +function formatWidth(width, suffix = 'px') { + return isString(width) ? width : `${width}${suffix}`; +} + +function useSortType(sortType, column) { + return column === undefined || isBoolean(column.sort) || column.sort === undefined ? sortType : column.sort.sortType ?? sortType; +} + +export default defineComponent({ + name: 'b-table-column', + props: { + column: { + type: Object, + required: true + } + }, + + setup(props, { + slots + }) { + const { + sortByMap, + isMultiple, + sortType, + updateSortColumn, + updateSortDirection + } = useInjectedSortableTable(); + const isSortable = computed(() => !!props.column.sort); + const isSortColumn = computed(() => sortByMap.value.has(props.column.label)); + const sortColumn = computed(() => sortByMap.value.get(props.column.label)); + + function updateColumn(e) { + e && e.stopPropagation(); + updateSortColumn(props.column.label); + } + + function onClick() { + if (isSortColumn.value) { + updateSortDirection(props.column.label); + } else { + updateColumn(); + } + } + + return () => { + const slot = slots[`header.${props.column.label}`] || slots.header; + const children = []; + + if (slot) { + children.push(slot(props.column)); + } else { + children.push(isString(props.column.detail) ? h(BTooltip, { + label: props.column.detail, + position: 'is-left' + }, () => props.column.label) : props.column.label); + } + + if (isSortColumn.value) { + const type = useSortType(sortType.value, sortColumn.value); + const icon = slots['sort-icon'] ? slots['sort-icon']({ + sortType: type + }) : h(VerticalExpansionIcon, { + isExpanded: useSortType(sortType.value, sortColumn.value) === 'Ascending' + }); + + if (isMultiple.value && sortColumn.value) { + children.push(icon, sortColumn.value.sortIndex + 1, h('button', { + class: 'delete is-small b-column-delete', + onClick: updateColumn + })); + } else { + children.push(icon); + } + } + + return h('th', { + class: { + 'is-sortable': isSortable.value, + 'is-sticky-left': !!props.column.isSticky + }, + onClick: isSortable.value ? onClick : undefined, + style: props.column.width !== undefined ? { + 'min-width': formatWidth(props.column.width) + } : undefined + }, [h('div', { + class: ['th-wrap', props.column.position] + }, children)]); + }; + } + +}); +//# sourceMappingURL=BTableColumn.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableColumn.js.map b/node_modules/buetify/lib/components/table/BTableColumn.js.map new file mode 100755 index 0000000..8d8b79d --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableColumn.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BTableColumn.ts"],"names":[],"mappings":"AAAA,SAAS,CAAT,EAAY,eAAZ,EAAuC,QAAvC,QAAuD,KAAvD;AACA,OAAO,qBAAP,MAAkC,kDAAlC;AACA,OAAO,QAAP,MAAqB,qBAArB;AACA,SAAS,SAAT,EAAoB,QAApB,QAAoC,qBAApC;AACA,SAAS,wBAAT,QAAyC,gCAAzC;;AAGA,SAAS,WAAT,CAAqB,KAArB,EAA6C,MAAA,GAA8B,IAA3E,EAA+E;AAC7E,SAAO,QAAQ,CAAC,KAAD,CAAR,GAAkB,KAAlB,GAA0B,GAAG,KAAK,GAAG,MAAM,EAAlD;AACD;;AAED,SAAS,WAAT,CAAqB,QAArB,EAAyC,MAAzC,EAA8D;AAC5D,SAAO,MAAM,KAAK,SAAX,IAAwB,SAAS,CAAC,MAAM,CAAC,IAAR,CAAjC,IAAkD,MAAM,CAAC,IAAP,KAAgB,SAAlE,GACH,QADG,GAEH,MAAM,CAAC,IAAP,CAAY,QAAZ,IAAwB,QAF5B;AAGD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,gBADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,MADA;AAEN,MAAA,QAAQ,EAAE;AAFJ;AADH,GAFsB;;AAQ7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA,SAAF;AAAa,MAAA,UAAb;AAAyB,MAAA,QAAzB;AAAmC,MAAA,gBAAnC;AAAqD,MAAA;AAArD,QAA6E,wBAAwB,EAA3G;AACA,UAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAN,CAAa,IAAtB,CAA3B;AACA,UAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,KAAV,CAAgB,GAAhB,CAAoB,KAAK,CAAC,MAAN,CAAa,KAAjC,CAAP,CAA7B;AACA,UAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,KAAV,CAAgB,GAAhB,CAAoB,KAAK,CAAC,MAAN,CAAa,KAAjC,CAAP,CAA3B;;AAEA,aAAS,YAAT,CAAsB,CAAtB,EAAoC;AAClC,MAAA,CAAC,IAAI,CAAC,CAAC,eAAF,EAAL;AACA,MAAA,gBAAgB,CAAC,KAAK,CAAC,MAAN,CAAa,KAAd,CAAhB;AACD;;AAED,aAAS,OAAT,GAAgB;AACd,UAAI,YAAY,CAAC,KAAjB,EAAwB;AACtB,QAAA,mBAAmB,CAAC,KAAK,CAAC,MAAN,CAAa,KAAd,CAAnB;AACD,OAFD,MAEO;AACL,QAAA,YAAY;AACb;AACF;;AACD,WAAO,MAAK;AACV,YAAM,IAAI,GAAG,KAAK,CAAC,UAAU,KAAK,CAAC,MAAN,CAAa,KAAK,EAA7B,CAAL,IAAyC,KAAK,CAAC,MAA5D;AACA,YAAM,QAAQ,GAAG,EAAjB;;AACA,UAAI,IAAJ,EAAU;AACR,QAAA,QAAQ,CAAC,IAAT,CAAc,IAAI,CAAC,KAAK,CAAC,MAAP,CAAlB;AACD,OAFD,MAEO;AACL,QAAA,QAAQ,CAAC,IAAT,CACE,QAAQ,CAAC,KAAK,CAAC,MAAN,CAAa,MAAd,CAAR,GACI,CAAC,CAAC,QAAD,EAAW;AAAE,UAAA,KAAK,EAAE,KAAK,CAAC,MAAN,CAAa,MAAtB;AAA8B,UAAA,QAAQ,EAAE;AAAxC,SAAX,EAAgE,MAAM,KAAK,CAAC,MAAN,CAAa,KAAnF,CADL,GAEI,KAAK,CAAC,MAAN,CAAa,KAHnB;AAKD;;AACD,UAAI,YAAY,CAAC,KAAjB,EAAwB;AACtB,cAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAV,EAAiB,UAAU,CAAC,KAA5B,CAAxB;AACA,cAAM,IAAI,GAAG,KAAK,CAAC,WAAD,CAAL,GACT,KAAK,CAAC,WAAD,CAAL,CAAmB;AAAE,UAAA,QAAQ,EAAE;AAAZ,SAAnB,CADS,GAET,CAAC,CAAC,qBAAD,EAAwB;AACvB,UAAA,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAV,EAAiB,UAAU,CAAC,KAA5B,CAAX,KAAkD;AADvC,SAAxB,CAFL;;AAKA,YAAI,UAAU,CAAC,KAAX,IAAoB,UAAU,CAAC,KAAnC,EAA0C;AACxC,UAAA,QAAQ,CAAC,IAAT,CACE,IADF,EAEE,UAAU,CAAC,KAAX,CAAiB,SAAjB,GAA6B,CAF/B,EAGE,CAAC,CAAC,QAAD,EAAW;AACV,YAAA,KAAK,EAAE,iCADG;AAEV,YAAA,OAAO,EAAE;AAFC,WAAX,CAHH;AAQD,SATD,MASO;AACL,UAAA,QAAQ,CAAC,IAAT,CAAc,IAAd;AACD;AACF;;AACD,aAAO,CAAC,CACN,IADM,EAEN;AACE,QAAA,KAAK,EAAE;AACL,yBAAe,UAAU,CAAC,KADrB;AAEL,4BAAkB,CAAC,CAAC,KAAK,CAAC,MAAN,CAAa;AAF5B,SADT;AAKE,QAAA,OAAO,EAAE,UAAU,CAAC,KAAX,GAAmB,OAAnB,GAA6B,SALxC;AAME,QAAA,KAAK,EAAE,KAAK,CAAC,MAAN,CAAa,KAAb,KAAuB,SAAvB,GAAmC;AAAE,uBAAa,WAAW,CAAC,KAAK,CAAC,MAAN,CAAa,KAAd;AAA1B,SAAnC,GAAsF;AAN/F,OAFM,EAUN,CACE,CAAC,CACC,KADD,EAEC;AACE,QAAA,KAAK,EAAE,CAAC,SAAD,EAAY,KAAK,CAAC,MAAN,CAAa,QAAzB;AADT,OAFD,EAKC,QALD,CADH,CAVM,CAAR;AAoBD,KApDD;AAqDD;;AA/E4B,CAAD,CAA9B","sourcesContent":["import { h, defineComponent, PropType, computed } from 'vue';\nimport VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon';\nimport BTooltip from '../tooltip/BTooltip';\nimport { isBoolean, isString } from '../../utils/helpers';\nimport { useInjectedSortableTable } from './composables/useSortableTable';\nimport { BTableColumn, SortType } from './shared';\n\nfunction formatWidth(width: string | number, suffix: 'rem' | 'em' | 'px' = 'px'): string {\n return isString(width) ? width : `${width}${suffix}`;\n}\n\nfunction useSortType(sortType: SortType, column?: BTableColumn): SortType {\n return column === undefined || isBoolean(column.sort) || column.sort === undefined\n ? sortType\n : column.sort.sortType ?? sortType;\n}\n\nexport default defineComponent({\n name: 'b-table-column',\n props: {\n column: {\n type: Object as PropType<BTableColumn>,\n required: true\n }\n },\n setup(props, { slots }) {\n const { sortByMap, isMultiple, sortType, updateSortColumn, updateSortDirection } = useInjectedSortableTable();\n const isSortable = computed(() => !!props.column.sort);\n const isSortColumn = computed(() => sortByMap.value.has(props.column.label));\n const sortColumn = computed(() => sortByMap.value.get(props.column.label));\n\n function updateColumn(e?: MouseEvent) {\n e && e.stopPropagation();\n updateSortColumn(props.column.label);\n }\n\n function onClick() {\n if (isSortColumn.value) {\n updateSortDirection(props.column.label);\n } else {\n updateColumn();\n }\n }\n return () => {\n const slot = slots[`header.${props.column.label}`] || slots.header;\n const children = [];\n if (slot) {\n children.push(slot(props.column));\n } else {\n children.push(\n isString(props.column.detail)\n ? h(BTooltip, { label: props.column.detail, position: 'is-left' }, () => props.column.label)\n : props.column.label\n );\n }\n if (isSortColumn.value) {\n const type = useSortType(sortType.value, sortColumn.value);\n const icon = slots['sort-icon']\n ? slots['sort-icon']({ sortType: type })\n : h(VerticalExpansionIcon, {\n isExpanded: useSortType(sortType.value, sortColumn.value) === 'Ascending'\n });\n if (isMultiple.value && sortColumn.value) {\n children.push(\n icon,\n sortColumn.value.sortIndex + 1,\n h('button', {\n class: 'delete is-small b-column-delete',\n onClick: updateColumn\n })\n );\n } else {\n children.push(icon);\n }\n }\n return h(\n 'th',\n {\n class: {\n 'is-sortable': isSortable.value,\n 'is-sticky-left': !!props.column.isSticky\n },\n onClick: isSortable.value ? onClick : undefined,\n style: props.column.width !== undefined ? { 'min-width': formatWidth(props.column.width) } : undefined\n },\n [\n h(\n 'div',\n {\n class: ['th-wrap', props.column.position]\n },\n children\n )\n ]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BTableColumn.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableHeader.d.ts b/node_modules/buetify/lib/components/table/BTableHeader.d.ts new file mode 100755 index 0000000..bdc55c4 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableHeader.d.ts @@ -0,0 +1,7 @@ +import { SetupContext } from 'vue'; +export interface BTableHeaderProps { + isDisabled?: boolean; +} +export default function BTableHeader(props: BTableHeaderProps, { slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/components/table/BTableHeader.js b/node_modules/buetify/lib/components/table/BTableHeader.js new file mode 100755 index 0000000..06c35d6 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableHeader.js @@ -0,0 +1,39 @@ +import { BCheckbox } from '../form/checkbox/BCheckbox'; +import BTableColumn from './BTableColumn'; +import { useInjectedVisibleColumns } from './composables/shared'; +import { useInjectedCheckableTable } from './composables/useCheckableTable'; +import { h } from 'vue'; +export default function BTableHeader(props, { + slots +}) { + const { + allRowsChecked, + toggleAllRows, + variant, + isCheckable + } = useInjectedCheckableTable(); + const columns = useInjectedVisibleColumns(); + const nodes = columns.value.map(column => h(BTableColumn, { + key: column.label, + column + }, slots)); + + if (isCheckable.value) { + nodes.unshift(slots['header.checkbox'] ? h('th', slots['header.checkbox']({ + modelValue: allRowsChecked.value, + variant: variant.value, + isDisabled: props.isDisabled, + 'onUpdate:modelValue': toggleAllRows + })) : h('th', { + class: 'checkbox-cell' + }, [h(BCheckbox, { + modelValue: allRowsChecked.value, + variant: variant.value, + isDisabled: props.isDisabled, + 'onUpdate:modelValue': toggleAllRows + })])); + } + + return h('thead', [h('tr', nodes)]); +} +//# sourceMappingURL=BTableHeader.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableHeader.js.map b/node_modules/buetify/lib/components/table/BTableHeader.js.map new file mode 100755 index 0000000..a071a4e --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableHeader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BTableHeader.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,QAA0B,4BAA1B;AACA,OAAO,YAAP,MAAyB,gBAAzB;AACA,SAAS,yBAAT,QAA0C,sBAA1C;AACA,SAAS,yBAAT,QAA0C,iCAA1C;AACA,SAAuB,CAAvB,QAAgC,KAAhC;AAMA,eAAc,SAAU,YAAV,CAAuB,KAAvB,EAAiD;AAAE,EAAA;AAAF,CAAjD,EAAwE;AACpF,QAAM;AAAE,IAAA,cAAF;AAAkB,IAAA,aAAlB;AAAiC,IAAA,OAAjC;AAA0C,IAAA;AAA1C,MAA0D,yBAAyB,EAAzF;AACA,QAAM,OAAO,GAAG,yBAAyB,EAAzC;AACA,QAAM,KAAK,GAAG,OAAO,CAAC,KAAR,CAAc,GAAd,CAAkB,MAAM,IACpC,CAAC,CACC,YADD,EAEC;AACE,IAAA,GAAG,EAAE,MAAM,CAAC,KADd;AAEE,IAAA;AAFF,GAFD,EAMC,KAND,CADW,CAAd;;AAUA,MAAI,WAAW,CAAC,KAAhB,EAAuB;AACrB,IAAA,KAAK,CAAC,OAAN,CACE,KAAK,CAAC,iBAAD,CAAL,GACI,CAAC,CACC,IADD,EAEC,KAAK,CAAC,iBAAD,CAAL,CAAyB;AACvB,MAAA,UAAU,EAAE,cAAc,CAAC,KADJ;AAEvB,MAAA,OAAO,EAAE,OAAO,CAAC,KAFM;AAGvB,MAAA,UAAU,EAAE,KAAK,CAAC,UAHK;AAIvB,6BAAuB;AAJA,KAAzB,CAFD,CADL,GAUI,CAAC,CAAC,IAAD,EAAO;AAAE,MAAA,KAAK,EAAE;AAAT,KAAP,EAAmC,CAClC,CAAC,CAAC,SAAD,EAAY;AACX,MAAA,UAAU,EAAE,cAAc,CAAC,KADhB;AAEX,MAAA,OAAO,EAAE,OAAO,CAAC,KAFN;AAGX,MAAA,UAAU,EAAE,KAAK,CAAC,UAHP;AAIX,6BAAuB;AAJZ,KAAZ,CADiC,CAAnC,CAXP;AAoBD;;AACD,SAAO,CAAC,CAAC,OAAD,EAAU,CAAC,CAAC,CAAC,IAAD,EAAO,KAAP,CAAF,CAAV,CAAR;AACD","sourcesContent":["import { BCheckbox } from '../form/checkbox/BCheckbox';\nimport BTableColumn from './BTableColumn';\nimport { useInjectedVisibleColumns } from './composables/shared';\nimport { useInjectedCheckableTable } from './composables/useCheckableTable';\nimport { SetupContext, h } from 'vue';\n\nexport interface BTableHeaderProps {\n isDisabled?: boolean;\n}\n\nexport default function BTableHeader(props: BTableHeaderProps, { slots }: SetupContext) {\n const { allRowsChecked, toggleAllRows, variant, isCheckable } = useInjectedCheckableTable();\n const columns = useInjectedVisibleColumns();\n const nodes = columns.value.map(column =>\n h(\n BTableColumn,\n {\n key: column.label,\n column\n },\n slots\n )\n );\n if (isCheckable.value) {\n nodes.unshift(\n slots['header.checkbox']\n ? h(\n 'th',\n slots['header.checkbox']({\n modelValue: allRowsChecked.value,\n variant: variant.value,\n isDisabled: props.isDisabled,\n 'onUpdate:modelValue': toggleAllRows\n })\n )\n : h('th', { class: 'checkbox-cell' }, [\n h(BCheckbox, {\n modelValue: allRowsChecked.value,\n variant: variant.value,\n isDisabled: props.isDisabled,\n 'onUpdate:modelValue': toggleAllRows\n })\n ])\n );\n }\n return h('thead', [h('tr', nodes)]);\n}\n"],"sourceRoot":"","file":"BTableHeader.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableMobileSort.d.ts b/node_modules/buetify/lib/components/table/BTableMobileSort.d.ts new file mode 100755 index 0000000..0fc7afd --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableMobileSort.d.ts @@ -0,0 +1,11 @@ +import { VNode } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + placeholder: { + type: StringConstructor; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & { + placeholder?: string | undefined; +}>, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/table/BTableMobileSort.js b/node_modules/buetify/lib/components/table/BTableMobileSort.js new file mode 100755 index 0000000..d907940 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableMobileSort.js @@ -0,0 +1,67 @@ +import { defineSelect } from '../form/select/BSelect'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; +import { useInjectedSortableTable } from './composables/useSortableTable'; +import { eqBTableColumn } from './shared'; +import { head } from 'fp-ts/lib/Array'; +import { toUndefined } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { defineComponent, h } from 'vue'; +const SelectBTableColumn = defineSelect(eqBTableColumn); + +function generateSortDirectionButton(sortType, toggleSortType) { + return h('div', { + class: 'control' + }, [h('button', { + class: 'button is-primary', + onClick: toggleSortType + }, [h(VerticalExpansionIcon, { + isExpanded: sortType === 'Descending', + size: 'is-small' + })])]); +} + +function generateBSelect(placeholder, sortableColumns, sortBy, setSortColumn) { + return h(SelectBTableColumn, { + placeholder, + items: sortableColumns, + itemKey: 'label', + itemText: 'label', + modelValue: pipe(head(sortBy), toUndefined), + isExpanded: true, + 'onUpdate:modelValue': setSortColumn + }); +} + +export default defineComponent({ + name: 'b-table-mobile-sort', + props: { + placeholder: { + type: String + } + }, + + setup(props) { + const sorting = useInjectedSortableTable(); + + function toggleSortDirection() { + sorting.updateSortDirection(); + } + + function updateSortColumn(column) { + if (column) { + sorting.updateSortColumn(column.label); + } + } + + return () => { + return h('section', { + class: 'field table-mobile-sort', + 'aria-label': 'Table Sort Controls' + }, [h('div', { + class: 'field has-addons' + }, [generateBSelect(props.placeholder, sorting.sortableColumns.value, sorting.sortBy.value, updateSortColumn), generateSortDirectionButton(sorting.sortType.value, toggleSortDirection)])]); + }; + } + +}); +//# sourceMappingURL=BTableMobileSort.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableMobileSort.js.map b/node_modules/buetify/lib/components/table/BTableMobileSort.js.map new file mode 100755 index 0000000..71d5a84 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableMobileSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BTableMobileSort.ts"],"names":[],"mappings":"AAEA,SAAS,YAAT,QAA6B,wBAA7B;AACA,OAAO,qBAAP,MAAkC,kDAAlC;AACA,SAAS,wBAAT,QAAyC,gCAAzC;AACA,SAAuB,cAAvB,QAAuD,UAAvD;AACA,SAAS,IAAT,QAAqB,iBAArB;AACA,SAAS,WAAT,QAA4B,kBAA5B;AACA,SAAS,IAAT,QAAqB,oBAArB;AACA,SAAgB,eAAhB,EAAiC,CAAjC,QAA0C,KAA1C;AAEA,MAAM,kBAAkB,GAAG,YAAY,CAAe,cAAf,CAAvC;;AAEA,SAAS,2BAAT,CAAqC,QAArC,EAAyD,cAAzD,EAAiF;AAC/E,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAA8B,CACpC,CAAC,CACC,QADD,EAEC;AACE,IAAA,KAAK,EAAE,mBADT;AAEE,IAAA,OAAO,EAAE;AAFX,GAFD,EAMC,CACE,CAAC,CAAC,qBAAD,EAAwB;AACvB,IAAA,UAAU,EAAE,QAAQ,KAAK,YADF;AAEvB,IAAA,IAAI,EAAE;AAFiB,GAAxB,CADH,CAND,CADmC,CAA9B,CAAR;AAeD;;AAED,SAAS,eAAT,CACE,WADF,EAEE,eAFF,EAGE,MAHF,EAIE,aAJF,EAIgD;AAE9C,SAAO,CAAC,CAAC,kBAAD,EAAqB;AAC3B,IAAA,WAD2B;AAE3B,IAAA,KAAK,EAAE,eAFoB;AAG3B,IAAA,OAAO,EAAE,OAHkB;AAI3B,IAAA,QAAQ,EAAE,OAJiB;AAK3B,IAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAD,CAAL,EAAe,WAAf,CALW;AAM3B,IAAA,UAAU,EAAE,IANe;AAO3B,2BAAuB;AAPI,GAArB,CAAR;AASD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,qBADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE;AADK;AADR,GAFsB;;AAO7B,EAAA,KAAK,CAAC,KAAD,EAAM;AACT,UAAM,OAAO,GAAG,wBAAwB,EAAxC;;AAEA,aAAS,mBAAT,GAA4B;AAC1B,MAAA,OAAO,CAAC,mBAAR;AACD;;AAED,aAAS,gBAAT,CAA0B,MAA1B,EAA+C;AAC7C,UAAI,MAAJ,EAAY;AACV,QAAA,OAAO,CAAC,gBAAR,CAAyB,MAAM,CAAC,KAAhC;AACD;AACF;;AAED,WAAO,MAAK;AACV,aAAO,CAAC,CACN,SADM,EAEN;AACE,QAAA,KAAK,EAAE,yBADT;AAEE,sBAAc;AAFhB,OAFM,EAMN,CACE,CAAC,CAAC,KAAD,EAAQ;AAAE,QAAA,KAAK,EAAE;AAAT,OAAR,EAAuC,CACtC,eAAe,CAAC,KAAK,CAAC,WAAP,EAAoB,OAAO,CAAC,eAAR,CAAwB,KAA5C,EAAmD,OAAO,CAAC,MAAR,CAAe,KAAlE,EAAyE,gBAAzE,CADuB,EAEtC,2BAA2B,CAAC,OAAO,CAAC,QAAR,CAAiB,KAAlB,EAAyB,mBAAzB,CAFW,CAAvC,CADH,CANM,CAAR;AAaD,KAdD;AAeD;;AAnC4B,CAAD,CAA9B","sourcesContent":["import { IO } from 'fp-ts/IO';\nimport { FunctionN } from 'fp-ts/lib/function';\nimport { defineSelect } from '../form/select/BSelect';\nimport VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon';\nimport { useInjectedSortableTable } from './composables/useSortableTable';\nimport { BTableColumn, eqBTableColumn, SortType } from './shared';\nimport { head } from 'fp-ts/lib/Array';\nimport { toUndefined } from 'fp-ts/lib/Option';\nimport { pipe } from 'fp-ts/lib/pipeable';\nimport { VNode, defineComponent, h } from 'vue';\n\nconst SelectBTableColumn = defineSelect<BTableColumn>(eqBTableColumn);\n\nfunction generateSortDirectionButton(sortType: SortType, toggleSortType: IO<void>): VNode {\n return h('div', { class: 'control' }, [\n h(\n 'button',\n {\n class: 'button is-primary',\n onClick: toggleSortType\n },\n [\n h(VerticalExpansionIcon, {\n isExpanded: sortType === 'Descending',\n size: 'is-small'\n })\n ]\n )\n ]);\n}\n\nfunction generateBSelect(\n placeholder: string | undefined,\n sortableColumns: BTableColumn[],\n sortBy: BTableColumn[],\n setSortColumn: FunctionN<[BTableColumn], void>\n): VNode {\n return h(SelectBTableColumn, {\n placeholder,\n items: sortableColumns,\n itemKey: 'label',\n itemText: 'label',\n modelValue: pipe(head(sortBy), toUndefined),\n isExpanded: true,\n 'onUpdate:modelValue': setSortColumn\n });\n}\n\nexport default defineComponent({\n name: 'b-table-mobile-sort',\n props: {\n placeholder: {\n type: String\n }\n },\n setup(props) {\n const sorting = useInjectedSortableTable();\n\n function toggleSortDirection() {\n sorting.updateSortDirection();\n }\n\n function updateSortColumn(column?: BTableColumn) {\n if (column) {\n sorting.updateSortColumn(column.label);\n }\n }\n\n return () => {\n return h(\n 'section',\n {\n class: 'field table-mobile-sort',\n 'aria-label': 'Table Sort Controls'\n },\n [\n h('div', { class: 'field has-addons' }, [\n generateBSelect(props.placeholder, sorting.sortableColumns.value, sorting.sortBy.value, updateSortColumn),\n generateSortDirectionButton(sorting.sortType.value, toggleSortDirection)\n ])\n ]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BTableMobileSort.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableRow.d.ts b/node_modules/buetify/lib/components/table/BTableRow.d.ts new file mode 100755 index 0000000..3c2bd39 --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableRow.d.ts @@ -0,0 +1,24 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { BTableRow } from './shared'; +import { VNode, PropType } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + index: { + type: PropType<number>; + required: true; + }; + row: { + type: PropType<BTableRow>; + required: true; + }; + onRowClick: { + type: PropType<FunctionN<[BTableRow, MouseEvent], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + index: number; + row: BTableRow; +} & { + onRowClick?: FunctionN<[BTableRow, MouseEvent], void> | undefined; +}>, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/table/BTableRow.js b/node_modules/buetify/lib/components/table/BTableRow.js new file mode 100755 index 0000000..8ac619d --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableRow.js @@ -0,0 +1,120 @@ +import { exists } from 'fp-ts/Option'; +import { pipe } from 'fp-ts/pipeable'; +import { BCheckbox } from '../form/checkbox/BCheckbox'; +import { isString } from '../../utils/helpers'; +import { useInjectedVisibleColumns } from './composables/shared'; +import { useInjectedCheckableTable } from './composables/useCheckableTable'; +import { useInjectedDraggableTable } from './composables/useDraggableTable'; +import { useInjectedSelectableTable } from './composables/useSelectableTable'; +import { eqBTableRowData } from './shared'; +import { h, defineComponent, computed } from 'vue'; +export default defineComponent({ + name: 'b-table-row', + props: { + index: { + type: Number, + required: true + }, + row: { + type: Object, + required: true + }, + onRowClick: { + type: Function + } + }, + + setup(props, { + slots + }) { + const { + checkedRowIds, + variant, + toggleRow, + isCheckable + } = useInjectedCheckableTable(); + const { + selectedRowIds, + toggleRowSelection, + isSelectable + } = useInjectedSelectableTable(); + const draggable = useInjectedDraggableTable(); + const visibleColumns = useInjectedVisibleColumns(); + const isChecked = computed(() => checkedRowIds.value.has(props.row.id)); + const isSelected = computed(() => selectedRowIds.value.has(props.row.id)); + const classes = computed(() => { + const isActive = draggable.isActive.value; + const isDroppable = props.row.isDroppable ?? !!props.row.isDraggable; + return [{ + 'is-selected': isSelected.value, + 'is-checked': isChecked.value, + 'is-draggable': draggable.isDraggable.value && !!props.row.isDraggable, + 'is-droppable': isActive && isDroppable, + 'is-undroppable': isActive && !isDroppable, + 'is-drop-target': isActive && pipe(draggable.target.value, exists(t => eqBTableRowData.equals(t, props.row))) + }, props.row.classes]; + }); + const dragListeners = computed(() => draggable.useRowDragListeners(props.row, props.index)); + + function toggleCheck() { + toggleRow(props.row); + } + + function onClick(e) { + if (props.onRowClick) { + props.onRowClick(props.row, e); + } + + if (props.row.isSelectable ?? isSelectable.value) { + e.stopPropagation(); + toggleRowSelection(props.row); + } + } + + return () => { + const columns = visibleColumns.value.map(column => { + const children = []; + const value = column.value ? isString(column.value) ? props.row[column.value] : column.value(props.row) : undefined; + const columnSlot = slots[column.slotName || column.label]; + + if (columnSlot) { + children.push(columnSlot({ + row: props.row, + column, + value + })); + } else if (value !== null) { + children.push(String(value)); + } + + const textClass = column.position === undefined ? 'has-text-left' : column.position === 'is-left' ? 'has-text-left' : column.position === 'is-centered' ? 'has-text-centered' : 'has-text-right'; + return h('td', { + class: [textClass, { + 'is-sticky-left': column.isSticky + }], + 'data-label': column.label + }, children); + }); + + if (isCheckable.value) { + columns.unshift(h('td', { + class: 'checkbox-cell' + }, [h(BCheckbox, { + modelValue: isChecked.value, + variant: variant.value, + isDisabled: props.row.isCheckable === false, + 'onUpdate:modelValue': toggleCheck + })])); + } + + return h('tr', { + class: classes.value, + onClick, + draggable: draggable.isDraggable.value && !!props.row.isDraggable, + ...dragListeners.value + }, columns); + }; + } + +}); +//# sourceMappingURL=BTableRow.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/BTableRow.js.map b/node_modules/buetify/lib/components/table/BTableRow.js.map new file mode 100755 index 0000000..4e37c7d --- /dev/null +++ b/node_modules/buetify/lib/components/table/BTableRow.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/BTableRow.ts"],"names":[],"mappings":"AACA,SAAS,MAAT,QAAuB,cAAvB;AACA,SAAS,IAAT,QAAqB,gBAArB;AACA,SAAS,SAAT,QAA0B,4BAA1B;AACA,SAAS,QAAT,QAAyB,qBAAzB;AACA,SAAS,yBAAT,QAA0C,sBAA1C;AACA,SAAS,yBAAT,QAA0C,iCAA1C;AACA,SAAS,yBAAT,QAA0C,iCAA1C;AACA,SAAS,0BAAT,QAA2C,kCAA3C;AACA,SAAkC,eAAlC,QAAyD,UAAzD;AACA,SAAS,CAAT,EAAmB,eAAnB,EAAoC,QAApC,QAA8D,KAA9D;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,aADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,QAAQ,EAAE;AAFL,KADF;AAKL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,QAAQ,EAAE;AAFP,KALA;AASL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI;AATP,GAFsB;;AAe7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM;AAAE,MAAA,aAAF;AAAiB,MAAA,OAAjB;AAA0B,MAAA,SAA1B;AAAqC,MAAA;AAArC,QAAqD,yBAAyB,EAApF;AACA,UAAM;AAAE,MAAA,cAAF;AAAkB,MAAA,kBAAlB;AAAsC,MAAA;AAAtC,QAAuD,0BAA0B,EAAvF;AACA,UAAM,SAAS,GAAG,yBAAyB,EAA3C;AACA,UAAM,cAAc,GAAG,yBAAyB,EAAhD;AACA,UAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,KAAd,CAAoB,GAApB,CAAwB,KAAK,CAAC,GAAN,CAAU,EAAlC,CAAP,CAA1B;AACA,UAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,KAAf,CAAqB,GAArB,CAAyB,KAAK,CAAC,GAAN,CAAU,EAAnC,CAAP,CAA3B;AAEA,UAAM,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC5B,YAAM,QAAQ,GAAG,SAAS,CAAC,QAAV,CAAmB,KAApC;AACA,YAAM,WAAW,GAAG,KAAK,CAAC,GAAN,CAAU,WAAV,IAAyB,CAAC,CAAC,KAAK,CAAC,GAAN,CAAU,WAAzD;AACA,aAAO,CACL;AACE,uBAAe,UAAU,CAAC,KAD5B;AAEE,sBAAc,SAAS,CAAC,KAF1B;AAGE,wBAAgB,SAAS,CAAC,WAAV,CAAsB,KAAtB,IAA+B,CAAC,CAAC,KAAK,CAAC,GAAN,CAAU,WAH7D;AAIE,wBAAgB,QAAQ,IAAI,WAJ9B;AAKE,0BAAkB,QAAQ,IAAI,CAAC,WALjC;AAME,0BACE,QAAQ,IACR,IAAI,CACF,SAAS,CAAC,MAAV,CAAiB,KADf,EAEF,MAAM,CAAC,CAAC,IAAI,eAAe,CAAC,MAAhB,CAAuB,CAAvB,EAA0B,KAAK,CAAC,GAAhC,CAAN,CAFJ;AARR,OADK,EAcL,KAAK,CAAC,GAAN,CAAU,OAdL,CAAP;AAgBD,KAnBuB,CAAxB;AAqBA,UAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,mBAAV,CAA8B,KAAK,CAAC,GAApC,EAAyC,KAAK,CAAC,KAA/C,CAAP,CAA9B;;AAEA,aAAS,WAAT,GAAoB;AAClB,MAAA,SAAS,CAAC,KAAK,CAAC,GAAP,CAAT;AACD;;AAED,aAAS,OAAT,CAAiB,CAAjB,EAA8B;AAC5B,UAAI,KAAK,CAAC,UAAV,EAAsB;AACpB,QAAA,KAAK,CAAC,UAAN,CAAiB,KAAK,CAAC,GAAvB,EAA4B,CAA5B;AACD;;AACD,UAAI,KAAK,CAAC,GAAN,CAAU,YAAV,IAA0B,YAAY,CAAC,KAA3C,EAAkD;AAChD,QAAA,CAAC,CAAC,eAAF;AACA,QAAA,kBAAkB,CAAC,KAAK,CAAC,GAAP,CAAlB;AACD;AACF;;AAED,WAAO,MAAK;AACV,YAAM,OAAO,GAAY,cAAc,CAAC,KAAf,CAAqB,GAArB,CAA0B,MAAD,IAAyB;AACzE,cAAM,QAAQ,GAAoC,EAAlD;AACA,cAAM,KAAK,GAAG,MAAM,CAAC,KAAP,GACV,QAAQ,CAAC,MAAM,CAAC,KAAR,CAAR,GACE,KAAK,CAAC,GAAN,CAAU,MAAM,CAAC,KAAjB,CADF,GAEE,MAAM,CAAC,KAAP,CAAa,KAAK,CAAC,GAAnB,CAHQ,GAIV,SAJJ;AAMA,cAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,QAAP,IAAmB,MAAM,CAAC,KAA3B,CAAxB;;AAEA,YAAI,UAAJ,EAAgB;AACd,UAAA,QAAQ,CAAC,IAAT,CAAc,UAAU,CAAC;AAAE,YAAA,GAAG,EAAE,KAAK,CAAC,GAAb;AAAkB,YAAA,MAAlB;AAA0B,YAAA;AAA1B,WAAD,CAAxB;AACD,SAFD,MAEO,IAAI,KAAK,KAAK,IAAd,EAAoB;AACzB,UAAA,QAAQ,CAAC,IAAT,CAAc,MAAM,CAAC,KAAD,CAApB;AACD;;AAED,cAAM,SAAS,GACb,MAAM,CAAC,QAAP,KAAoB,SAApB,GACI,eADJ,GAEI,MAAM,CAAC,QAAP,KAAoB,SAApB,GACA,eADA,GAEA,MAAM,CAAC,QAAP,KAAoB,aAApB,GACA,mBADA,GAEA,gBAPN;AASA,eAAO,CAAC,CACN,IADM,EAEN;AACE,UAAA,KAAK,EAAE,CAAC,SAAD,EAAY;AAAE,8BAAkB,MAAM,CAAC;AAA3B,WAAZ,CADT;AAEE,wBAAc,MAAM,CAAC;AAFvB,SAFM,EAMN,QANM,CAAR;AAQD,OAjCwB,CAAzB;;AAmCA,UAAI,WAAW,CAAC,KAAhB,EAAuB;AACrB,QAAA,OAAO,CAAC,OAAR,CACE,CAAC,CAAC,IAAD,EAAO;AAAE,UAAA,KAAK,EAAE;AAAT,SAAP,EAAmC,CAClC,CAAC,CAAC,SAAD,EAAY;AACX,UAAA,UAAU,EAAE,SAAS,CAAC,KADX;AAEX,UAAA,OAAO,EAAE,OAAO,CAAC,KAFN;AAGX,UAAA,UAAU,EAAE,KAAK,CAAC,GAAN,CAAU,WAAV,KAA0B,KAH3B;AAIX,iCAAuB;AAJZ,SAAZ,CADiC,CAAnC,CADH;AAUD;;AAED,aAAO,CAAC,CACN,IADM,EAEN;AACE,QAAA,KAAK,EAAE,OAAO,CAAC,KADjB;AAEE,QAAA,OAFF;AAGE,QAAA,SAAS,EAAE,SAAS,CAAC,WAAV,CAAsB,KAAtB,IAA+B,CAAC,CAAC,KAAK,CAAC,GAAN,CAAU,WAHxD;AAIE,WAAG,aAAa,CAAC;AAJnB,OAFM,EAQN,OARM,CAAR;AAUD,KA3DD;AA4DD;;AAxH4B,CAAD,CAA9B","sourcesContent":["import { FunctionN } from 'fp-ts/lib/function';\nimport { exists } from 'fp-ts/Option';\nimport { pipe } from 'fp-ts/pipeable';\nimport { BCheckbox } from '../form/checkbox/BCheckbox';\nimport { isString } from '../../utils/helpers';\nimport { useInjectedVisibleColumns } from './composables/shared';\nimport { useInjectedCheckableTable } from './composables/useCheckableTable';\nimport { useInjectedDraggableTable } from './composables/useDraggableTable';\nimport { useInjectedSelectableTable } from './composables/useSelectableTable';\nimport { BTableColumn, BTableRow, eqBTableRowData } from './shared';\nimport { h, VNode, defineComponent, computed, PropType } from 'vue';\n\nexport default defineComponent({\n name: 'b-table-row',\n props: {\n index: {\n type: Number as PropType<number>,\n required: true as const\n },\n row: {\n type: Object as PropType<BTableRow>,\n required: true as const\n },\n onRowClick: {\n type: Function as PropType<FunctionN<[BTableRow, MouseEvent], void>>\n }\n },\n setup(props, { slots }) {\n const { checkedRowIds, variant, toggleRow, isCheckable } = useInjectedCheckableTable();\n const { selectedRowIds, toggleRowSelection, isSelectable } = useInjectedSelectableTable();\n const draggable = useInjectedDraggableTable();\n const visibleColumns = useInjectedVisibleColumns();\n const isChecked = computed(() => checkedRowIds.value.has(props.row.id));\n const isSelected = computed(() => selectedRowIds.value.has(props.row.id));\n\n const classes = computed(() => {\n const isActive = draggable.isActive.value;\n const isDroppable = props.row.isDroppable ?? !!props.row.isDraggable;\n return [\n {\n 'is-selected': isSelected.value,\n 'is-checked': isChecked.value,\n 'is-draggable': draggable.isDraggable.value && !!props.row.isDraggable,\n 'is-droppable': isActive && isDroppable,\n 'is-undroppable': isActive && !isDroppable,\n 'is-drop-target':\n isActive &&\n pipe(\n draggable.target.value,\n exists(t => eqBTableRowData.equals(t, props.row))\n )\n },\n props.row.classes\n ];\n });\n\n const dragListeners = computed(() => draggable.useRowDragListeners(props.row, props.index));\n\n function toggleCheck() {\n toggleRow(props.row);\n }\n\n function onClick(e: MouseEvent) {\n if (props.onRowClick) {\n props.onRowClick(props.row, e);\n }\n if (props.row.isSelectable ?? isSelectable.value) {\n e.stopPropagation();\n toggleRowSelection(props.row);\n }\n }\n\n return () => {\n const columns: VNode[] = visibleColumns.value.map((column: BTableColumn) => {\n const children: Array<VNode | VNode[] | string> = [];\n const value = column.value\n ? isString(column.value)\n ? props.row[column.value]\n : column.value(props.row)\n : undefined;\n\n const columnSlot = slots[column.slotName || column.label];\n\n if (columnSlot) {\n children.push(columnSlot({ row: props.row, column, value }));\n } else if (value !== null) {\n children.push(String(value));\n }\n\n const textClass =\n column.position === undefined\n ? 'has-text-left'\n : column.position === 'is-left'\n ? 'has-text-left'\n : column.position === 'is-centered'\n ? 'has-text-centered'\n : 'has-text-right';\n\n return h(\n 'td',\n {\n class: [textClass, { 'is-sticky-left': column.isSticky }],\n 'data-label': column.label\n },\n children\n );\n });\n\n if (isCheckable.value) {\n columns.unshift(\n h('td', { class: 'checkbox-cell' }, [\n h(BCheckbox, {\n modelValue: isChecked.value,\n variant: variant.value,\n isDisabled: props.row.isCheckable === false,\n 'onUpdate:modelValue': toggleCheck\n })\n ])\n );\n }\n\n return h(\n 'tr',\n {\n class: classes.value,\n onClick,\n draggable: draggable.isDraggable.value && !!props.row.isDraggable,\n ...dragListeners.value\n },\n columns\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BTableRow.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/shared.d.ts b/node_modules/buetify/lib/components/table/composables/shared.d.ts new file mode 100755 index 0000000..7ba91e3 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/shared.d.ts @@ -0,0 +1,5 @@ +import { ComputedRef } from 'vue'; +import { BTableColumn, BTableRow } from '../shared'; +export declare function toSet(rows: BTableRow[]): Set<unknown>; +export declare function provideVisibleColumns(visibleColumns: ComputedRef<BTableColumn[]>): void; +export declare function useInjectedVisibleColumns(): ComputedRef<BTableColumn[]>; diff --git a/node_modules/buetify/lib/components/table/composables/shared.js b/node_modules/buetify/lib/components/table/composables/shared.js new file mode 100755 index 0000000..b9b91d3 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/shared.js @@ -0,0 +1,16 @@ +import { provide, inject, computed } from 'vue'; +import { constEmptyArray } from '../../../utils/helpers'; +export function toSet(rows) { + const set = new Set(); + rows.forEach(row => set.add(row.id)); + return set; +} +const COLUMNS_INJECTION_SYMBOL = Symbol(); +export function provideVisibleColumns(visibleColumns) { + provide(COLUMNS_INJECTION_SYMBOL, visibleColumns); +} +const DEFAULT_VISIBLE_COLUMNS = computed(constEmptyArray); +export function useInjectedVisibleColumns() { + return inject(COLUMNS_INJECTION_SYMBOL, DEFAULT_VISIBLE_COLUMNS); +} +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/shared.js.map b/node_modules/buetify/lib/components/table/composables/shared.js.map new file mode 100755 index 0000000..f32eb9a --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/shared.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/table/composables/shared.ts"],"names":[],"mappings":"AAAA,SAAsB,OAAtB,EAA+B,MAA/B,EAAuC,QAAvC,QAAuD,KAAvD;AACA,SAAS,eAAT,QAAgC,wBAAhC;AAIA,OAAM,SAAU,KAAV,CAAgB,IAAhB,EAAiC;AACrC,QAAM,GAAG,GAAG,IAAI,GAAJ,EAAZ;AACA,EAAA,IAAI,CAAC,OAAL,CAAa,GAAG,IAAI,GAAG,CAAC,GAAJ,CAAQ,GAAG,CAAC,EAAZ,CAApB;AACA,SAAO,GAAP;AACD;AAED,MAAM,wBAAwB,GAAG,MAAM,EAAvC;AAEA,OAAM,SAAU,qBAAV,CAAgC,cAAhC,EAA2E;AAC/E,EAAA,OAAO,CAAC,wBAAD,EAA2B,cAA3B,CAAP;AACD;AAED,MAAM,uBAAuB,GAAG,QAAQ,CAAiB,eAAjB,CAAxC;AAEA,OAAM,SAAU,yBAAV,GAAmC;AACvC,SAAO,MAAM,CAAC,wBAAD,EAA2B,uBAA3B,CAAb;AACD","sourcesContent":["import { ComputedRef, provide, inject, computed } from 'vue';\r\nimport { constEmptyArray } from '../../../utils/helpers';\r\n\r\nimport { BTableColumn, BTableRow } from '../shared';\r\n\r\nexport function toSet(rows: BTableRow[]): Set<unknown> {\r\n const set = new Set<unknown>();\r\n rows.forEach(row => set.add(row.id));\r\n return set;\r\n}\r\n\r\nconst COLUMNS_INJECTION_SYMBOL = Symbol();\r\n\r\nexport function provideVisibleColumns(visibleColumns: ComputedRef<BTableColumn[]>) {\r\n provide(COLUMNS_INJECTION_SYMBOL, visibleColumns);\r\n}\r\n\r\nconst DEFAULT_VISIBLE_COLUMNS = computed<BTableColumn[]>(constEmptyArray);\r\n\r\nexport function useInjectedVisibleColumns(): ComputedRef<BTableColumn[]> {\r\n return inject(COLUMNS_INJECTION_SYMBOL, DEFAULT_VISIBLE_COLUMNS);\r\n}\r\n"],"sourceRoot":"","file":"shared.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useCheckableTable.d.ts b/node_modules/buetify/lib/components/table/composables/useCheckableTable.d.ts new file mode 100755 index 0000000..a4caa3e --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useCheckableTable.d.ts @@ -0,0 +1,53 @@ +import { IO } from 'fp-ts/lib/IO'; +import { ExtractPropTypes, Ref, ComputedRef } from 'vue'; +import { FunctionN } from 'fp-ts/lib/function'; +import { PropType } from 'vue'; +import { ColorVariant } from '../../../types/ColorVariants'; +import { BTableRow } from '../shared'; +export declare const BTableCheckPropsDefinition: { + isCheckable: { + type: PropType<boolean>; + default: boolean; + }; + checkedRows: { + type: PropType<BTableRow[]>; + default: never[]; + }; + 'onUpdate:checkedRows': { + type: PropType<FunctionN<[BTableRow[]], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + checkboxVariant: { + type: PropType<ColorVariant>; + default: "is-primary"; + }; + canCheckAllRows: { + type: PropType<boolean>; + default: boolean; + }; + onCheckRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onUncheckRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; +}; +export interface BTableCheckProps extends ExtractPropTypes<typeof BTableCheckPropsDefinition> { +} +export declare function useCheckableTable(props: BTableCheckProps, rows: Ref<BTableRow[]>): UseCheckableTable; +export interface UseCheckableTable { + isCheckable: ComputedRef<boolean>; + variant: ComputedRef<ColorVariant>; + checkedRowIds: ComputedRef<Set<unknown>>; + toggleAllRows: IO<void>; + checkAllRows: IO<void>; + uncheckAllRows: IO<void>; + allRowsChecked: ComputedRef<boolean>; + toggleRow: FunctionN<[BTableRow], void>; + allRowsUncheckable: ComputedRef<boolean>; + hasCheckableRows: ComputedRef<boolean>; + allRowsUnchecked: ComputedRef<boolean>; +} +export declare function useInjectedCheckableTable(): UseCheckableTable; diff --git a/node_modules/buetify/lib/components/table/composables/useCheckableTable.js b/node_modules/buetify/lib/components/table/composables/useCheckableTable.js new file mode 100755 index 0000000..c100d27 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useCheckableTable.js @@ -0,0 +1,119 @@ +import { computed, provide, inject, shallowRef, watch } from 'vue'; +import { constant, constFalse, constTrue, constVoid } from 'fp-ts/lib/function'; +import { constEmptyArray } from '../../../utils/helpers'; +import { toggleBTableRow } from '../shared'; +import { toSet } from './shared'; +export const BTableCheckPropsDefinition = { + isCheckable: { + type: Boolean, + default: false + }, + checkedRows: { + type: Array, + default: constEmptyArray() + }, + 'onUpdate:checkedRows': { + type: Function, + default: constant(constVoid) + }, + checkboxVariant: { + type: String, + default: 'is-primary' + }, + canCheckAllRows: { + type: Boolean, + default: true + }, + onCheckRow: { + type: Function, + default: constant(constVoid) + }, + onUncheckRow: { + type: Function, + default: constant(constVoid) + } +}; +const USE_CHECKABLE_TABLE_INJECTION_SYMBOL = Symbol(); +export function useCheckableTable(props, rows) { + const checkableRows = computed(() => props.isCheckable ? rows.value.filter(row => row.isCheckable ?? true) : []); + const propCheckedRows = computed(() => props.isCheckable ? props.checkedRows : []); + const newCheckedRows = shallowRef(propCheckedRows.value); + watch(propCheckedRows, newValue => { + newCheckedRows.value = newValue; + }); + const checkedRowIds = computed(() => toSet(newCheckedRows.value)); + const allRowsChecked = computed(() => { + const ids = checkedRowIds.value; + return checkableRows.value.length > 0 && checkableRows.value.every(row => ids.has(row.id)); + }); + const allRowsUncheckable = computed(() => rows.value.every(row => !row.isCheckable)); + + function checkAllRows() { + const cRows = checkableRows.value; + newCheckedRows.value = cRows; + props['onUpdate:checkedRows'](cRows); + } + + function toggleRow(row) { + if (row.isCheckable) { + const ids = checkedRowIds.value; + + if (ids.has(row.id)) { + props.onUncheckRow(row); + } else { + props.onCheckRow(row); + } + + const cRows = toggleBTableRow(row, newCheckedRows.value); + newCheckedRows.value = cRows; + props['onUpdate:checkedRows'](cRows); + } + } + + function uncheckAllRows() { + newCheckedRows.value = []; + props['onUpdate:checkedRows']([]); + } + + function toggleAllRows() { + allRowsChecked.value ? uncheckAllRows() : checkAllRows(); + } + + const hasCheckableRows = computed(() => checkableRows.value.length > 0); + const state = { + isCheckable: computed(() => props.isCheckable), + variant: computed(() => props.checkboxVariant), + checkedRowIds, + toggleAllRows, + checkAllRows, + uncheckAllRows, + allRowsChecked, + toggleRow, + allRowsUncheckable, + hasCheckableRows, + allRowsUnchecked: computed(() => hasCheckableRows.value && checkedRowIds.value.size === 0) + }; + provide(USE_CHECKABLE_TABLE_INJECTION_SYMBOL, state); + return state; +} + +function useDefaultCheckableTableState() { + return { + isCheckable: computed(constFalse), + variant: computed(() => 'is-primary'), + checkedRowIds: computed(() => new Set()), + toggleAllRows: constVoid, + checkAllRows: constVoid, + uncheckAllRows: constVoid, + toggleRow: constVoid, + allRowsChecked: computed(constFalse), + allRowsUncheckable: computed(constFalse), + hasCheckableRows: computed(constFalse), + allRowsUnchecked: computed(constTrue) + }; +} + +export function useInjectedCheckableTable() { + return inject(USE_CHECKABLE_TABLE_INJECTION_SYMBOL, useDefaultCheckableTableState, true); +} +//# sourceMappingURL=useCheckableTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useCheckableTable.js.map b/node_modules/buetify/lib/components/table/composables/useCheckableTable.js.map new file mode 100755 index 0000000..0ffcb3e --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useCheckableTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/table/composables/useCheckableTable.ts"],"names":[],"mappings":"AACA,SAA2B,QAA3B,EAAuD,OAAvD,EAAgE,MAAhE,EAAwE,UAAxE,EAAoF,KAApF,QAAiG,KAAjG;AACA,SAAS,QAAT,EAAmB,UAAnB,EAA+B,SAA/B,EAA0C,SAA1C,QAAsE,oBAAtE;AAGA,SAAS,eAAT,QAAgC,wBAAhC;AACA,SAAoB,eAApB,QAA2C,WAA3C;AACA,SAAS,KAAT,QAAsB,UAAtB;AAEA,OAAO,MAAM,0BAA0B,GAAG;AACxC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAD2B;AAKxC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,KADK;AAEX,IAAA,OAAO,EAAE,eAAe;AAFb,GAL2B;AASxC,0BAAwB;AACtB,IAAA,IAAI,EAAE,QADgB;AAEtB,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFK,GATgB;AAaxC,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE,MADS;AAEf,IAAA,OAAO,EAAE;AAFM,GAbuB;AAiBxC,EAAA,eAAe,EAAE;AACf,IAAA,IAAI,EAAE,OADS;AAEf,IAAA,OAAO,EAAE;AAFM,GAjBuB;AAqBxC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,QADI;AAEV,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFP,GArB4B;AAyBxC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,QADM;AAEZ,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFL;AAzB0B,CAAnC;AAiCP,MAAM,oCAAoC,GAAG,MAAM,EAAnD;AAEA,OAAM,SAAU,iBAAV,CAA4B,KAA5B,EAAqD,IAArD,EAA2E;AAC/E,QAAM,aAAa,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,WAAN,GAAoB,IAAI,CAAC,KAAL,CAAW,MAAX,CAAkB,GAAG,IAAI,GAAG,CAAC,WAAJ,IAAmB,IAA5C,CAApB,GAAwE,EAAhF,CAA9B;AACA,QAAM,eAAe,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,WAAN,GAAoB,KAAK,CAAC,WAA1B,GAAwC,EAAhD,CAAhC;AACA,QAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,KAAjB,CAAjC;AAEA,EAAA,KAAK,CAAC,eAAD,EAAkB,QAAQ,IAAG;AAChC,IAAA,cAAc,CAAC,KAAf,GAAuB,QAAvB;AACD,GAFI,CAAL;AAIA,QAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,KAAhB,CAAZ,CAA9B;AAEA,QAAM,cAAc,GAAG,QAAQ,CAAC,MAAK;AACnC,UAAM,GAAG,GAAG,aAAa,CAAC,KAA1B;AACA,WAAO,aAAa,CAAC,KAAd,CAAoB,MAApB,GAA6B,CAA7B,IAAkC,aAAa,CAAC,KAAd,CAAoB,KAApB,CAA0B,GAAG,IAAI,GAAG,CAAC,GAAJ,CAAQ,GAAG,CAAC,EAAZ,CAAjC,CAAzC;AACD,GAH8B,CAA/B;AAKA,QAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAL,CAAW,KAAX,CAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,WAA7B,CAAP,CAAnC;;AAEA,WAAS,YAAT,GAAqB;AACnB,UAAM,KAAK,GAAG,aAAa,CAAC,KAA5B;AACA,IAAA,cAAc,CAAC,KAAf,GAAuB,KAAvB;AACA,IAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,KAA9B;AACD;;AAED,WAAS,SAAT,CAAmB,GAAnB,EAAiC;AAC/B,QAAI,GAAG,CAAC,WAAR,EAAqB;AACnB,YAAM,GAAG,GAAG,aAAa,CAAC,KAA1B;;AACA,UAAI,GAAG,CAAC,GAAJ,CAAQ,GAAG,CAAC,EAAZ,CAAJ,EAAqB;AACnB,QAAA,KAAK,CAAC,YAAN,CAAmB,GAAnB;AACD,OAFD,MAEO;AACL,QAAA,KAAK,CAAC,UAAN,CAAiB,GAAjB;AACD;;AACD,YAAM,KAAK,GAAG,eAAe,CAAC,GAAD,EAAM,cAAc,CAAC,KAArB,CAA7B;AACA,MAAA,cAAc,CAAC,KAAf,GAAuB,KAAvB;AACA,MAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,KAA9B;AACD;AACF;;AAED,WAAS,cAAT,GAAuB;AACrB,IAAA,cAAc,CAAC,KAAf,GAAuB,EAAvB;AACA,IAAA,KAAK,CAAC,sBAAD,CAAL,CAA8B,EAA9B;AACD;;AAED,WAAS,aAAT,GAAsB;AACpB,IAAA,cAAc,CAAC,KAAf,GAAuB,cAAc,EAArC,GAA0C,YAAY,EAAtD;AACD;;AAED,QAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,KAAd,CAAoB,MAApB,GAA6B,CAApC,CAAjC;AAEA,QAAM,KAAK,GAAG;AACZ,IAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,WAAb,CADT;AAEZ,IAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,eAAb,CAFL;AAGZ,IAAA,aAHY;AAIZ,IAAA,aAJY;AAKZ,IAAA,YALY;AAMZ,IAAA,cANY;AAOZ,IAAA,cAPY;AAQZ,IAAA,SARY;AASZ,IAAA,kBATY;AAUZ,IAAA,gBAVY;AAWZ,IAAA,gBAAgB,EAAE,QAAQ,CAAC,MAAM,gBAAgB,CAAC,KAAjB,IAA0B,aAAa,CAAC,KAAd,CAAoB,IAApB,KAA6B,CAA9D;AAXd,GAAd;AAcA,EAAA,OAAO,CAAC,oCAAD,EAAuC,KAAvC,CAAP;AAEA,SAAO,KAAP;AACD;;AAgBD,SAAS,6BAAT,GAAsC;AACpC,SAAO;AACL,IAAA,WAAW,EAAE,QAAQ,CAAC,UAAD,CADhB;AAEL,IAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,YAAP,CAFZ;AAGL,IAAA,aAAa,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAJ,EAAP,CAHlB;AAIL,IAAA,aAAa,EAAE,SAJV;AAKL,IAAA,YAAY,EAAE,SALT;AAML,IAAA,cAAc,EAAE,SANX;AAOL,IAAA,SAAS,EAAE,SAPN;AAQL,IAAA,cAAc,EAAE,QAAQ,CAAC,UAAD,CARnB;AASL,IAAA,kBAAkB,EAAE,QAAQ,CAAC,UAAD,CATvB;AAUL,IAAA,gBAAgB,EAAE,QAAQ,CAAC,UAAD,CAVrB;AAWL,IAAA,gBAAgB,EAAE,QAAQ,CAAC,SAAD;AAXrB,GAAP;AAaD;;AAED,OAAM,SAAU,yBAAV,GAAmC;AACvC,SAAO,MAAM,CAAC,oCAAD,EAAuC,6BAAvC,EAAsE,IAAtE,CAAb;AACD","sourcesContent":["import { IO } from 'fp-ts/lib/IO';\nimport { ExtractPropTypes, computed, Ref, ComputedRef, provide, inject, shallowRef, watch } from 'vue';\nimport { constant, constFalse, constTrue, constVoid, FunctionN } from 'fp-ts/lib/function';\nimport { PropType } from 'vue';\nimport { ColorVariant } from '../../../types/ColorVariants';\nimport { constEmptyArray } from '../../../utils/helpers';\nimport { BTableRow, toggleBTableRow } from '../shared';\nimport { toSet } from './shared';\n\nexport const BTableCheckPropsDefinition = {\n isCheckable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n checkedRows: {\n type: Array as PropType<BTableRow[]>,\n default: constEmptyArray()\n },\n 'onUpdate:checkedRows': {\n type: Function as PropType<FunctionN<[BTableRow[]], void>>,\n default: constant(constVoid)\n },\n checkboxVariant: {\n type: String as PropType<ColorVariant>,\n default: 'is-primary' as const\n },\n canCheckAllRows: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n onCheckRow: {\n type: Function as PropType<FunctionN<[BTableRow], void>>,\n default: constant(constVoid)\n },\n onUncheckRow: {\n type: Function as PropType<FunctionN<[BTableRow], void>>,\n default: constant(constVoid)\n }\n};\n\nexport interface BTableCheckProps extends ExtractPropTypes<typeof BTableCheckPropsDefinition> {}\n\nconst USE_CHECKABLE_TABLE_INJECTION_SYMBOL = Symbol();\n\nexport function useCheckableTable(props: BTableCheckProps, rows: Ref<BTableRow[]>): UseCheckableTable {\n const checkableRows = computed(() => (props.isCheckable ? rows.value.filter(row => row.isCheckable ?? true) : []));\n const propCheckedRows = computed(() => (props.isCheckable ? props.checkedRows : []));\n const newCheckedRows = shallowRef(propCheckedRows.value);\n\n watch(propCheckedRows, newValue => {\n newCheckedRows.value = newValue;\n });\n\n const checkedRowIds = computed(() => toSet(newCheckedRows.value));\n\n const allRowsChecked = computed(() => {\n const ids = checkedRowIds.value;\n return checkableRows.value.length > 0 && checkableRows.value.every(row => ids.has(row.id));\n });\n\n const allRowsUncheckable = computed(() => rows.value.every(row => !row.isCheckable));\n\n function checkAllRows() {\n const cRows = checkableRows.value;\n newCheckedRows.value = cRows;\n props['onUpdate:checkedRows'](cRows);\n }\n\n function toggleRow(row: BTableRow) {\n if (row.isCheckable) {\n const ids = checkedRowIds.value;\n if (ids.has(row.id)) {\n props.onUncheckRow(row);\n } else {\n props.onCheckRow(row);\n }\n const cRows = toggleBTableRow(row, newCheckedRows.value);\n newCheckedRows.value = cRows;\n props['onUpdate:checkedRows'](cRows);\n }\n }\n\n function uncheckAllRows() {\n newCheckedRows.value = [];\n props['onUpdate:checkedRows']([]);\n }\n\n function toggleAllRows() {\n allRowsChecked.value ? uncheckAllRows() : checkAllRows();\n }\n\n const hasCheckableRows = computed(() => checkableRows.value.length > 0);\n\n const state = {\n isCheckable: computed(() => props.isCheckable),\n variant: computed(() => props.checkboxVariant),\n checkedRowIds,\n toggleAllRows,\n checkAllRows,\n uncheckAllRows,\n allRowsChecked,\n toggleRow,\n allRowsUncheckable,\n hasCheckableRows,\n allRowsUnchecked: computed(() => hasCheckableRows.value && checkedRowIds.value.size === 0)\n };\n\n provide(USE_CHECKABLE_TABLE_INJECTION_SYMBOL, state);\n\n return state;\n}\n\nexport interface UseCheckableTable {\n isCheckable: ComputedRef<boolean>;\n variant: ComputedRef<ColorVariant>;\n checkedRowIds: ComputedRef<Set<unknown>>;\n toggleAllRows: IO<void>;\n checkAllRows: IO<void>;\n uncheckAllRows: IO<void>;\n allRowsChecked: ComputedRef<boolean>;\n toggleRow: FunctionN<[BTableRow], void>;\n allRowsUncheckable: ComputedRef<boolean>;\n hasCheckableRows: ComputedRef<boolean>;\n allRowsUnchecked: ComputedRef<boolean>;\n}\n\nfunction useDefaultCheckableTableState(): UseCheckableTable {\n return {\n isCheckable: computed(constFalse),\n variant: computed(() => 'is-primary'),\n checkedRowIds: computed(() => new Set()),\n toggleAllRows: constVoid,\n checkAllRows: constVoid,\n uncheckAllRows: constVoid,\n toggleRow: constVoid,\n allRowsChecked: computed(constFalse),\n allRowsUncheckable: computed(constFalse),\n hasCheckableRows: computed(constFalse),\n allRowsUnchecked: computed(constTrue)\n };\n}\n\nexport function useInjectedCheckableTable(): UseCheckableTable {\n return inject(USE_CHECKABLE_TABLE_INJECTION_SYMBOL, useDefaultCheckableTableState, true);\n}\n"],"sourceRoot":"","file":"useCheckableTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useDraggableTable.d.ts b/node_modules/buetify/lib/components/table/composables/useDraggableTable.d.ts new file mode 100755 index 0000000..6380752 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useDraggableTable.d.ts @@ -0,0 +1,53 @@ +import { Option } from 'fp-ts/lib/Option'; +import { ExtractPropTypes } from 'vue'; +import { FunctionN } from 'fp-ts/lib/function'; +import { PropType, Ref } from 'vue'; +import { BTableRow } from '../shared'; +declare type DropEffect = 'none' | 'copy' | 'link' | 'move'; +declare type DragHandler = FunctionN<[DragEvent], void>; +declare type OnDragEffect = FunctionN<[BTableRow, DragEvent, number], void>; +export declare const BTableDraggablePropsDefinition: { + isDraggable: { + type: BooleanConstructor; + default: boolean; + }; + dropEffect: { + type: PropType<DropEffect>; + default: "move"; + }; + onDragstart: { + type: PropType<OnDragEffect>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragenter: { + type: PropType<OnDragEffect>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragover: { + type: PropType<OnDragEffect>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragleave: { + type: PropType<OnDragEffect>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDragend: { + type: PropType<OnDragEffect>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onDrop: { + type: PropType<OnDragEffect>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; +}; +export interface BTableDraggableProps extends ExtractPropTypes<typeof BTableDraggablePropsDefinition> { +} +export interface UseDraggableTable { + isDraggable: Ref<boolean>; + isActive: Ref<boolean>; + target: Ref<Option<BTableRow>>; + useRowDragListeners: FunctionN<[BTableRow, number], Record<string, DragHandler>>; +} +export declare function useDraggableTable(props: BTableDraggableProps): UseDraggableTable; +export declare function useInjectedDraggableTable(): UseDraggableTable; +export {}; diff --git a/node_modules/buetify/lib/components/table/composables/useDraggableTable.js b/node_modules/buetify/lib/components/table/composables/useDraggableTable.js new file mode 100755 index 0000000..17557bb --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useDraggableTable.js @@ -0,0 +1,155 @@ +import { isNone, isSome, none, some } from 'fp-ts/lib/Option'; +import { shallowRef, toRef, computed } from 'vue'; +import { constant, constVoid } from 'fp-ts/lib/function'; +import { provide, inject } from 'vue'; +import { eqBTableRowData } from '../shared'; +export const BTableDraggablePropsDefinition = { + isDraggable: { + type: Boolean, + default: false + }, + dropEffect: { + type: String, + default: 'move' + }, + onDragstart: { + type: Function, + default: constant(constVoid) + }, + onDragenter: { + type: Function, + default: constant(constVoid) + }, + onDragover: { + type: Function, + default: constant(constVoid) + }, + onDragleave: { + type: Function, + default: constant(constVoid) + }, + onDragend: { + type: Function, + default: constant(constVoid) + }, + onDrop: { + type: Function, + default: constant(constVoid) + } +}; +const USE_DRAGGABLE_TABLE_INJECTION_SYMBOL = Symbol(); +export function useDraggableTable(props) { + const dropTarget = shallowRef(none); + const dragIsActive = computed(() => props.isDraggable && isSome(dropTarget.value)); + + function getOnDragStartListener(row, index) { + return e => { + if (e.dataTransfer) { + e.dataTransfer.setData('text/plain', String(index)); + e.dataTransfer.dropEffect = props.dropEffect; + } + + dropTarget.value = some(row); + props.onDragstart(row, e, index); + }; + } + + function getOnDropListener(row, index) { + return e => { + if (row.isDroppable) { + e.preventDefault(); + props.onDrop(row, e, index); + } + + dropTarget.value = none; + }; + } + + function getOnDragEnterListener(row, index) { + return e => { + if (row.isDroppable) { + e.preventDefault(); + dropTarget.value = some(row); + props.onDragenter(row, e, index); + } + }; + } + + function getOnDragOverListener(row, index) { + return e => { + if (row.isDroppable) { + e.preventDefault(); + const target = dropTarget.value; + + if (isNone(target) || isSome(target) && !eqBTableRowData.equals(target.value, row)) { + dropTarget.value = some(row); + } + + props.onDragover(row, e, index); + } + }; + } + + function getOnDragLeaveListener(row, index) { + return e => { + if (row.isDroppable) { + e.preventDefault(); + const target = dropTarget.value; + + if (isSome(target) && eqBTableRowData.equals(target.value, row)) { + dropTarget.value = none; + } + + props.onDragleave(row, e, index); + } + }; + } + + function getOnDragEndListener(row, index) { + return e => { + props.onDragend(row, e, index); + + if (isSome(dropTarget.value)) { + dropTarget.value = none; + } + }; + } + + function useRowDragListeners(row, index) { + if (props.isDraggable && !!row.isDraggable) { + return { + onDragstart: getOnDragStartListener(row, index), + onDrop: getOnDropListener(row, index), + onDragenter: getOnDragEnterListener(row, index), + onDragleave: getOnDragLeaveListener(row, index), + onDragover: getOnDragOverListener(row, index), + onDragend: getOnDragEndListener(row, index) + }; + } else { + return {}; + } + } + + const draggableTable = { + isDraggable: toRef(props, 'isDraggable'), + useRowDragListeners, + isActive: dragIsActive, + target: dropTarget + }; + provide(USE_DRAGGABLE_TABLE_INJECTION_SYMBOL, draggableTable); + return draggableTable; +} + +function useDefaultDraggableTable() { + return { + isDraggable: shallowRef(false), + useRowDragListeners: constant({}), + isActive: shallowRef(false), + target: shallowRef(none) + }; +} + +export function useInjectedDraggableTable() { + return inject(USE_DRAGGABLE_TABLE_INJECTION_SYMBOL, useDefaultDraggableTable, true); +} +//# sourceMappingURL=useDraggableTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useDraggableTable.js.map b/node_modules/buetify/lib/components/table/composables/useDraggableTable.js.map new file mode 100755 index 0000000..e51e8d8 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useDraggableTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/table/composables/useDraggableTable.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,EAAiB,MAAjB,EAAyB,IAAzB,EAAuC,IAAvC,QAAmD,kBAAnD;AACA,SAA2B,UAA3B,EAAuC,KAAvC,EAA8C,QAA9C,QAA8D,KAA9D;AACA,SAAS,QAAT,EAAmB,SAAnB,QAA+C,oBAA/C;AACA,SAAwB,OAAxB,EAAiC,MAAjC,QAA+C,KAA/C;AACA,SAAoB,eAApB,QAA2C,WAA3C;AAQA,OAAO,MAAM,8BAA8B,GAAG;AAC5C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAD+B;AAK5C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,OAAO,EAAE;AAFC,GALgC;AAS5C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,QADK;AAEX,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFN,GAT+B;AAa5C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,QADK;AAEX,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFN,GAb+B;AAiB5C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,QADI;AAEV,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFP,GAjBgC;AAqB5C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,QADK;AAEX,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFN,GArB+B;AAyB5C,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,QADG;AAET,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFR,GAzBiC;AA6B5C,EAAA,MAAM,EAAE;AACN,IAAA,IAAI,EAAE,QADA;AAEN,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFX;AA7BoC,CAAvC;AA4CP,MAAM,oCAAoC,GAAG,MAAM,EAAnD;AAEA,OAAM,SAAU,iBAAV,CAA4B,KAA5B,EAAuD;AAC3D,QAAM,UAAU,GAAG,UAAU,CAAC,IAAD,CAA7B;AAEA,QAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,WAAN,IAAqB,MAAM,CAAC,UAAU,CAAC,KAAZ,CAAlC,CAA7B;;AAEA,WAAS,sBAAT,CAAgC,GAAhC,EAAgD,KAAhD,EAA6D;AAC3D,WAAQ,CAAD,IAAiB;AACtB,UAAI,CAAC,CAAC,YAAN,EAAoB;AAClB,QAAA,CAAC,CAAC,YAAF,CAAe,OAAf,CAAuB,YAAvB,EAAqC,MAAM,CAAC,KAAD,CAA3C;AACA,QAAA,CAAC,CAAC,YAAF,CAAe,UAAf,GAA4B,KAAK,CAAC,UAAlC;AACD;;AACD,MAAA,UAAU,CAAC,KAAX,GAAmB,IAAI,CAAC,GAAD,CAAvB;AACA,MAAA,KAAK,CAAC,WAAN,CAAkB,GAAlB,EAAuB,CAAvB,EAA0B,KAA1B;AACD,KAPD;AAQD;;AAED,WAAS,iBAAT,CAA2B,GAA3B,EAA2C,KAA3C,EAAwD;AACtD,WAAQ,CAAD,IAAiB;AACtB,UAAI,GAAG,CAAC,WAAR,EAAqB;AACnB,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,KAAK,CAAC,MAAN,CAAa,GAAb,EAAkB,CAAlB,EAAqB,KAArB;AACD;;AACD,MAAA,UAAU,CAAC,KAAX,GAAmB,IAAnB;AACD,KAND;AAOD;;AAED,WAAS,sBAAT,CAAgC,GAAhC,EAAgD,KAAhD,EAA6D;AAC3D,WAAQ,CAAD,IAAiB;AACtB,UAAI,GAAG,CAAC,WAAR,EAAqB;AACnB,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,UAAU,CAAC,KAAX,GAAmB,IAAI,CAAC,GAAD,CAAvB;AACA,QAAA,KAAK,CAAC,WAAN,CAAkB,GAAlB,EAAuB,CAAvB,EAA0B,KAA1B;AACD;AACF,KAND;AAOD;;AAED,WAAS,qBAAT,CAA+B,GAA/B,EAA+C,KAA/C,EAA4D;AAC1D,WAAQ,CAAD,IAAiB;AACtB,UAAI,GAAG,CAAC,WAAR,EAAqB;AACnB,QAAA,CAAC,CAAC,cAAF;AACA,cAAM,MAAM,GAAG,UAAU,CAAC,KAA1B;;AACA,YAAI,MAAM,CAAC,MAAD,CAAN,IAAmB,MAAM,CAAC,MAAD,CAAN,IAAkB,CAAC,eAAe,CAAC,MAAhB,CAAuB,MAAM,CAAC,KAA9B,EAAqC,GAArC,CAA1C,EAAsF;AACpF,UAAA,UAAU,CAAC,KAAX,GAAmB,IAAI,CAAC,GAAD,CAAvB;AACD;;AACD,QAAA,KAAK,CAAC,UAAN,CAAiB,GAAjB,EAAsB,CAAtB,EAAyB,KAAzB;AACD;AACF,KATD;AAUD;;AAED,WAAS,sBAAT,CAAgC,GAAhC,EAAgD,KAAhD,EAA6D;AAC3D,WAAQ,CAAD,IAAiB;AACtB,UAAI,GAAG,CAAC,WAAR,EAAqB;AACnB,QAAA,CAAC,CAAC,cAAF;AACA,cAAM,MAAM,GAAG,UAAU,CAAC,KAA1B;;AACA,YAAI,MAAM,CAAC,MAAD,CAAN,IAAkB,eAAe,CAAC,MAAhB,CAAuB,MAAM,CAAC,KAA9B,EAAqC,GAArC,CAAtB,EAAiE;AAC/D,UAAA,UAAU,CAAC,KAAX,GAAmB,IAAnB;AACD;;AACD,QAAA,KAAK,CAAC,WAAN,CAAkB,GAAlB,EAAuB,CAAvB,EAA0B,KAA1B;AACD;AACF,KATD;AAUD;;AAED,WAAS,oBAAT,CAA8B,GAA9B,EAA8C,KAA9C,EAA2D;AACzD,WAAO,CAAC,IAAG;AACT,MAAA,KAAK,CAAC,SAAN,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,KAAxB;;AACA,UAAI,MAAM,CAAC,UAAU,CAAC,KAAZ,CAAV,EAA8B;AAC5B,QAAA,UAAU,CAAC,KAAX,GAAmB,IAAnB;AACD;AACF,KALD;AAMD;;AAED,WAAS,mBAAT,CAA6B,GAA7B,EAA6C,KAA7C,EAA0D;AACxD,QAAI,KAAK,CAAC,WAAN,IAAqB,CAAC,CAAC,GAAG,CAAC,WAA/B,EAA4C;AAC1C,aAAO;AACL,QAAA,WAAW,EAAE,sBAAsB,CAAC,GAAD,EAAM,KAAN,CAD9B;AAEL,QAAA,MAAM,EAAE,iBAAiB,CAAC,GAAD,EAAM,KAAN,CAFpB;AAGL,QAAA,WAAW,EAAE,sBAAsB,CAAC,GAAD,EAAM,KAAN,CAH9B;AAIL,QAAA,WAAW,EAAE,sBAAsB,CAAC,GAAD,EAAM,KAAN,CAJ9B;AAKL,QAAA,UAAU,EAAE,qBAAqB,CAAC,GAAD,EAAM,KAAN,CAL5B;AAML,QAAA,SAAS,EAAE,oBAAoB,CAAC,GAAD,EAAM,KAAN;AAN1B,OAAP;AAQD,KATD,MASO;AACL,aAAO,EAAP;AACD;AACF;;AAED,QAAM,cAAc,GAAsB;AACxC,IAAA,WAAW,EAAE,KAAK,CAAC,KAAD,EAAQ,aAAR,CADsB;AAExC,IAAA,mBAFwC;AAGxC,IAAA,QAAQ,EAAE,YAH8B;AAIxC,IAAA,MAAM,EAAE;AAJgC,GAA1C;AAOA,EAAA,OAAO,CAAC,oCAAD,EAAuC,cAAvC,CAAP;AAEA,SAAO,cAAP;AACD;;AAED,SAAS,wBAAT,GAAiC;AAC/B,SAAO;AACL,IAAA,WAAW,EAAE,UAAU,CAAC,KAAD,CADlB;AAEL,IAAA,mBAAmB,EAAE,QAAQ,CAAC,EAAD,CAFxB;AAGL,IAAA,QAAQ,EAAE,UAAU,CAAC,KAAD,CAHf;AAIL,IAAA,MAAM,EAAE,UAAU,CAAC,IAAD;AAJb,GAAP;AAMD;;AAED,OAAM,SAAU,yBAAV,GAAmC;AACvC,SAAO,MAAM,CAAC,oCAAD,EAAuC,wBAAvC,EAAiE,IAAjE,CAAb;AACD","sourcesContent":["import { isNone, isSome, none, Option, some } from 'fp-ts/lib/Option';\nimport { ExtractPropTypes, shallowRef, toRef, computed } from 'vue';\nimport { constant, constVoid, FunctionN } from 'fp-ts/lib/function';\nimport { PropType, Ref, provide, inject } from 'vue';\nimport { BTableRow, eqBTableRowData } from '../shared';\n\ntype DropEffect = 'none' | 'copy' | 'link' | 'move';\n\ntype DragHandler = FunctionN<[DragEvent], void>;\n\ntype OnDragEffect = FunctionN<[BTableRow, DragEvent, number], void>;\n\nexport const BTableDraggablePropsDefinition = {\n isDraggable: {\n type: Boolean,\n default: false\n },\n dropEffect: {\n type: String as PropType<DropEffect>,\n default: 'move' as const\n },\n onDragstart: {\n type: Function as PropType<OnDragEffect>,\n default: constant(constVoid)\n },\n onDragenter: {\n type: Function as PropType<OnDragEffect>,\n default: constant(constVoid)\n },\n onDragover: {\n type: Function as PropType<OnDragEffect>,\n default: constant(constVoid)\n },\n onDragleave: {\n type: Function as PropType<OnDragEffect>,\n default: constant(constVoid)\n },\n onDragend: {\n type: Function as PropType<OnDragEffect>,\n default: constant(constVoid)\n },\n onDrop: {\n type: Function as PropType<OnDragEffect>,\n default: constant(constVoid)\n }\n};\n\nexport interface BTableDraggableProps extends ExtractPropTypes<typeof BTableDraggablePropsDefinition> {}\n\nexport interface UseDraggableTable {\n isDraggable: Ref<boolean>;\n isActive: Ref<boolean>;\n target: Ref<Option<BTableRow>>;\n useRowDragListeners: FunctionN<[BTableRow, number], Record<string, DragHandler>>;\n}\n\nconst USE_DRAGGABLE_TABLE_INJECTION_SYMBOL = Symbol();\n\nexport function useDraggableTable(props: BTableDraggableProps): UseDraggableTable {\n const dropTarget = shallowRef(none as Option<BTableRow>);\n\n const dragIsActive = computed(() => props.isDraggable && isSome(dropTarget.value));\n\n function getOnDragStartListener(row: BTableRow, index: number): DragHandler {\n return (e: DragEvent) => {\n if (e.dataTransfer) {\n e.dataTransfer.setData('text/plain', String(index));\n e.dataTransfer.dropEffect = props.dropEffect;\n }\n dropTarget.value = some(row);\n props.onDragstart(row, e, index);\n };\n }\n\n function getOnDropListener(row: BTableRow, index: number): DragHandler {\n return (e: DragEvent) => {\n if (row.isDroppable) {\n e.preventDefault();\n props.onDrop(row, e, index);\n }\n dropTarget.value = none;\n };\n }\n\n function getOnDragEnterListener(row: BTableRow, index: number): DragHandler {\n return (e: DragEvent) => {\n if (row.isDroppable) {\n e.preventDefault();\n dropTarget.value = some(row);\n props.onDragenter(row, e, index);\n }\n };\n }\n\n function getOnDragOverListener(row: BTableRow, index: number): DragHandler {\n return (e: DragEvent) => {\n if (row.isDroppable) {\n e.preventDefault();\n const target = dropTarget.value;\n if (isNone(target) || (isSome(target) && !eqBTableRowData.equals(target.value, row))) {\n dropTarget.value = some(row);\n }\n props.onDragover(row, e, index);\n }\n };\n }\n\n function getOnDragLeaveListener(row: BTableRow, index: number): DragHandler {\n return (e: DragEvent) => {\n if (row.isDroppable) {\n e.preventDefault();\n const target = dropTarget.value;\n if (isSome(target) && eqBTableRowData.equals(target.value, row)) {\n dropTarget.value = none;\n }\n props.onDragleave(row, e, index);\n }\n };\n }\n\n function getOnDragEndListener(row: BTableRow, index: number): DragHandler {\n return e => {\n props.onDragend(row, e, index);\n if (isSome(dropTarget.value)) {\n dropTarget.value = none;\n }\n };\n }\n\n function useRowDragListeners(row: BTableRow, index: number): { [key: string]: DragHandler } {\n if (props.isDraggable && !!row.isDraggable) {\n return {\n onDragstart: getOnDragStartListener(row, index),\n onDrop: getOnDropListener(row, index),\n onDragenter: getOnDragEnterListener(row, index),\n onDragleave: getOnDragLeaveListener(row, index),\n onDragover: getOnDragOverListener(row, index),\n onDragend: getOnDragEndListener(row, index)\n };\n } else {\n return {};\n }\n }\n\n const draggableTable: UseDraggableTable = {\n isDraggable: toRef(props, 'isDraggable'),\n useRowDragListeners,\n isActive: dragIsActive,\n target: dropTarget\n };\n\n provide(USE_DRAGGABLE_TABLE_INJECTION_SYMBOL, draggableTable);\n\n return draggableTable;\n}\n\nfunction useDefaultDraggableTable(): UseDraggableTable {\n return {\n isDraggable: shallowRef(false),\n useRowDragListeners: constant({}),\n isActive: shallowRef(false),\n target: shallowRef(none)\n };\n}\n\nexport function useInjectedDraggableTable(): UseDraggableTable {\n return inject(USE_DRAGGABLE_TABLE_INJECTION_SYMBOL, useDefaultDraggableTable, true);\n}\n"],"sourceRoot":"","file":"useDraggableTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useSelectableTable.d.ts b/node_modules/buetify/lib/components/table/composables/useSelectableTable.d.ts new file mode 100755 index 0000000..f0a281c --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useSelectableTable.d.ts @@ -0,0 +1,34 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { ExtractPropTypes, PropType, ComputedRef, Ref } from 'vue'; +import { BTableRow } from '../shared'; +export declare const BTableSelectablePropsDefinition: { + isSelectable: { + type: PropType<boolean>; + default: boolean; + }; + selectedRows: { + type: PropType<BTableRow[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:selectedRows': { + type: PropType<FunctionN<[BTableRow[]], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onSelectRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + onUnselectRow: { + type: PropType<FunctionN<[BTableRow], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; +}; +export interface BTableSelectableProps extends ExtractPropTypes<typeof BTableSelectablePropsDefinition> { +} +export declare function useSelectableTable(props: BTableSelectableProps): UseSelectableTableState; +export interface UseSelectableTableState { + isSelectable: Ref<boolean>; + selectedRowIds: ComputedRef<Set<unknown>>; + toggleRowSelection: FunctionN<[BTableRow], void>; +} +export declare function useInjectedSelectableTable(): UseSelectableTableState; diff --git a/node_modules/buetify/lib/components/table/composables/useSelectableTable.js b/node_modules/buetify/lib/components/table/composables/useSelectableTable.js new file mode 100755 index 0000000..d46b15d --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useSelectableTable.js @@ -0,0 +1,64 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { computed, toRef, provide, inject, shallowRef } from 'vue'; +import { useProxy } from '../../../composables/proxy/useProxy'; +import { constEmptyArray } from '../../../utils/helpers'; +import { toggleBTableRow } from '../shared'; +import { toSet } from './shared'; +export const BTableSelectablePropsDefinition = { + isSelectable: { + type: Boolean, + default: false + }, + selectedRows: { + type: Array, + default: constEmptyArray + }, + 'onUpdate:selectedRows': { + type: Function, + default: constant(constVoid) + }, + onSelectRow: { + type: Function, + default: constant(constVoid) + }, + onUnselectRow: { + type: Function, + default: constant(constVoid) + } +}; +const USE_SELECTABLE_TABLE_INJECTION_SYMBOL = Symbol(); +export function useSelectableTable(props) { + const { + value: selectedRows + } = useProxy(computed(() => props.isSelectable ? props.selectedRows : []), toRef(props, 'onUpdate:selectedRows')); + const selectedRowIds = computed(() => toSet(selectedRows.value)); + + function toggleRowSelection(row) { + if (row.isSelectable ?? props.isSelectable) { + const ids = selectedRowIds.value; + ids.has(row.id) ? props.onUnselectRow(row) : props.onSelectRow(row); + selectedRows.value = toggleBTableRow(row, selectedRows.value); + } + } + + const state = { + isSelectable: toRef(props, 'isSelectable'), + selectedRowIds, + toggleRowSelection + }; + provide(USE_SELECTABLE_TABLE_INJECTION_SYMBOL, state); + return state; +} + +function useDefaultSelectableTableState() { + return { + isSelectable: shallowRef(false), + selectedRowIds: computed(() => new Set()), + toggleRowSelection: constVoid + }; +} + +export function useInjectedSelectableTable() { + return inject(USE_SELECTABLE_TABLE_INJECTION_SYMBOL, useDefaultSelectableTableState, true); +} +//# sourceMappingURL=useSelectableTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useSelectableTable.js.map b/node_modules/buetify/lib/components/table/composables/useSelectableTable.js.map new file mode 100755 index 0000000..7dc7adf --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useSelectableTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/table/composables/useSelectableTable.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,SAAnB,QAA+C,oBAA/C;AACA,SAAS,QAAT,EAA+C,KAA/C,EAAsD,OAAtD,EAA+D,MAA/D,EAAyF,UAAzF,QAA2G,KAA3G;AACA,SAAS,QAAT,QAAyB,qCAAzB;AACA,SAAS,eAAT,QAAgC,wBAAhC;AACA,SAAoB,eAApB,QAA2C,WAA3C;AACA,SAAS,KAAT,QAAsB,UAAtB;AAEA,OAAO,MAAM,+BAA+B,GAAG;AAC7C,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAD+B;AAK7C,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,KADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAL+B;AAS7C,2BAAyB;AACvB,IAAA,IAAI,EAAE,QADiB;AAEvB,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFM,GAToB;AAa7C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,QADK;AAEX,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFN,GAbgC;AAiB7C,EAAA,aAAa,EAAE;AACb,IAAA,IAAI,EAAE,QADO;AAEb,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFJ;AAjB8B,CAAxC;AAyBP,MAAM,qCAAqC,GAAG,MAAM,EAApD;AAEA,OAAM,SAAU,kBAAV,CAA6B,KAA7B,EAAyD;AAC7D,QAAM;AAAE,IAAA,KAAK,EAAE;AAAT,MAA0B,QAAQ,CACtC,QAAQ,CAAC,MAAO,KAAK,CAAC,YAAN,GAAqB,KAAK,CAAC,YAA3B,GAA0C,EAAlD,CAD8B,EAEtC,KAAK,CAAC,KAAD,EAAQ,uBAAR,CAFiC,CAAxC;AAKA,QAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,KAAd,CAAZ,CAA/B;;AAEA,WAAS,kBAAT,CAA4B,GAA5B,EAA0C;AACxC,QAAI,GAAG,CAAC,YAAJ,IAAoB,KAAK,CAAC,YAA9B,EAA4C;AAC1C,YAAM,GAAG,GAAG,cAAc,CAAC,KAA3B;AACA,MAAA,GAAG,CAAC,GAAJ,CAAQ,GAAG,CAAC,EAAZ,IAAkB,KAAK,CAAC,aAAN,CAAoB,GAApB,CAAlB,GAA6C,KAAK,CAAC,WAAN,CAAkB,GAAlB,CAA7C;AACA,MAAA,YAAY,CAAC,KAAb,GAAqB,eAAe,CAAC,GAAD,EAAM,YAAY,CAAC,KAAnB,CAApC;AACD;AACF;;AAED,QAAM,KAAK,GAA4B;AACrC,IAAA,YAAY,EAAE,KAAK,CAAC,KAAD,EAAQ,cAAR,CADkB;AAErC,IAAA,cAFqC;AAGrC,IAAA;AAHqC,GAAvC;AAMA,EAAA,OAAO,CAAC,qCAAD,EAAwC,KAAxC,CAAP;AAEA,SAAO,KAAP;AACD;;AAQD,SAAS,8BAAT,GAAuC;AACrC,SAAO;AACL,IAAA,YAAY,EAAE,UAAU,CAAC,KAAD,CADnB;AAEL,IAAA,cAAc,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAJ,EAAP,CAFnB;AAGL,IAAA,kBAAkB,EAAE;AAHf,GAAP;AAKD;;AAED,OAAM,SAAU,0BAAV,GAAoC;AACxC,SAAO,MAAM,CAAC,qCAAD,EAAwC,8BAAxC,EAAwE,IAAxE,CAAb;AACD","sourcesContent":["import { constant, constVoid, FunctionN } from 'fp-ts/lib/function';\nimport { computed, ExtractPropTypes, PropType, toRef, provide, inject, ComputedRef, Ref, shallowRef } from 'vue';\nimport { useProxy } from '../../../composables/proxy/useProxy';\nimport { constEmptyArray } from '../../../utils/helpers';\nimport { BTableRow, toggleBTableRow } from '../shared';\nimport { toSet } from './shared';\n\nexport const BTableSelectablePropsDefinition = {\n isSelectable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n selectedRows: {\n type: Array as PropType<BTableRow[]>,\n default: constEmptyArray\n },\n 'onUpdate:selectedRows': {\n type: Function as PropType<FunctionN<[BTableRow[]], void>>,\n default: constant(constVoid)\n },\n onSelectRow: {\n type: Function as PropType<FunctionN<[BTableRow], void>>,\n default: constant(constVoid)\n },\n onUnselectRow: {\n type: Function as PropType<FunctionN<[BTableRow], void>>,\n default: constant(constVoid)\n }\n};\n\nexport interface BTableSelectableProps extends ExtractPropTypes<typeof BTableSelectablePropsDefinition> {}\n\nconst USE_SELECTABLE_TABLE_INJECTION_SYMBOL = Symbol();\n\nexport function useSelectableTable(props: BTableSelectableProps) {\n const { value: selectedRows } = useProxy<BTableRow[]>(\n computed(() => (props.isSelectable ? props.selectedRows : [])),\n toRef(props, 'onUpdate:selectedRows')\n );\n\n const selectedRowIds = computed(() => toSet(selectedRows.value));\n\n function toggleRowSelection(row: BTableRow) {\n if (row.isSelectable ?? props.isSelectable) {\n const ids = selectedRowIds.value;\n ids.has(row.id) ? props.onUnselectRow(row) : props.onSelectRow(row);\n selectedRows.value = toggleBTableRow(row, selectedRows.value);\n }\n }\n\n const state: UseSelectableTableState = {\n isSelectable: toRef(props, 'isSelectable'),\n selectedRowIds,\n toggleRowSelection\n };\n\n provide(USE_SELECTABLE_TABLE_INJECTION_SYMBOL, state);\n\n return state;\n}\n\nexport interface UseSelectableTableState {\n isSelectable: Ref<boolean>;\n selectedRowIds: ComputedRef<Set<unknown>>;\n toggleRowSelection: FunctionN<[BTableRow], void>;\n}\n\nfunction useDefaultSelectableTableState(): UseSelectableTableState {\n return {\n isSelectable: shallowRef(false),\n selectedRowIds: computed(() => new Set()),\n toggleRowSelection: constVoid\n };\n}\n\nexport function useInjectedSelectableTable(): UseSelectableTableState {\n return inject(USE_SELECTABLE_TABLE_INJECTION_SYMBOL, useDefaultSelectableTableState, true);\n}\n"],"sourceRoot":"","file":"useSelectableTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useSortableTable.d.ts b/node_modules/buetify/lib/components/table/composables/useSortableTable.d.ts new file mode 100755 index 0000000..bfde222 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useSortableTable.d.ts @@ -0,0 +1,39 @@ +import { ExtractPropTypes, Ref, ComputedRef } from 'vue'; +import { FunctionN } from 'fp-ts/lib/function'; +import { PropType } from 'vue'; +import { BTableColumn, BTableRow, SortType } from '../shared'; +export declare const BTableSortingPropsDefinition: { + rows: { + type: PropType<BTableRow[]>; + required: true; + }; + sortBy: { + type: PropType<BTableColumn<BTableRow> | BTableColumn<BTableRow>[]>; + }; + 'onUpdate:sortBy': { + type: PropType<FunctionN<[BTableColumn<BTableRow> | BTableColumn<BTableRow>[]], void>>; + }; + sortType: { + type: PropType<SortType>; + default: "Descending"; + }; + 'onUpdate:sortType': { + type: PropType<FunctionN<[SortType], void>>; + }; +}; +export interface BTableSortingProps extends ExtractPropTypes<typeof BTableSortingPropsDefinition> { +} +export interface UseSortableTable { + sortBy: Ref<BTableColumn[]>; + sortType: Ref<SortType>; + isMultiple: ComputedRef<boolean>; + sortByMap: ComputedRef<Map<string, BTableColumn & { + sortIndex: number; + }>>; + updateSortColumn: FunctionN<[string], void>; + updateSortDirection: (columnLabel?: string) => void; + sortableColumns: ComputedRef<BTableColumn[]>; + hasSortableColumns: ComputedRef<boolean>; +} +export declare function useSortableTable(props: BTableSortingProps, rows: Ref<BTableRow[]>, columns: Ref<BTableColumn[]>): UseSortableTable; +export declare function useInjectedSortableTable(): UseSortableTable; diff --git a/node_modules/buetify/lib/components/table/composables/useSortableTable.js b/node_modules/buetify/lib/components/table/composables/useSortableTable.js new file mode 100755 index 0000000..812e37b --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useSortableTable.js @@ -0,0 +1,181 @@ +import { findFirst, isEmpty, isNonEmpty, reverse, snoc, sortBy as sortBy_ } from 'fp-ts/lib/Array'; +import { fromCompare } from 'fp-ts/lib/Ord'; +import { alt, isNone, isSome, none } from 'fp-ts/Option'; +import { toRef, computed, watch, shallowRef, provide, inject } from 'vue'; +import { constFalse, constVoid, pipe } from 'fp-ts/lib/function'; +import { useProxy } from '../../../composables/proxy/useProxy'; +import { constEmptyArray, isBoolean } from '../../../utils/helpers'; +import { toggleBTableColumn } from '../shared'; +export const BTableSortingPropsDefinition = { + rows: { + type: Array, + required: true + }, + sortBy: { + type: [Object, Array] + }, + 'onUpdate:sortBy': { + type: Function + }, + sortType: { + type: String, + default: 'Descending' + }, + 'onUpdate:sortType': { + type: Function + } +}; + +function useSortType(sortType, columnSortType, invert) { + if (invert) { + return (columnSortType ?? sortType) === 'Ascending' ? 'Descending' : 'Ascending'; + } else { + return columnSortType ?? sortType; + } +} + +function useSortColumn(sortType, column, invert) { + return { ...column, + sort: isBoolean(column.sort) ? column.sort : column.sort === undefined ? undefined : { ...column.sort, + sortType: useSortType(sortType, column.sort?.sortType, invert) + } + }; +} + +const USE_SORTABLE_TABLE_INJECTION_SYMBOL = Symbol(); + +function toMap(columns) { + return new Map(columns.map((c, sortIndex) => [c.label, { ...c, + sortIndex + }])); +} + +export function useSortableTable(props, rows, columns) { + const initialSortType = props.sortType; + const { + value: sortType + } = useProxy(toRef(props, 'sortType'), toRef(props, 'onUpdate:sortType')); + /* + fp-ts sorts in ascending order so we need to reverse the ords if the initial sort type is 'Descending' + Future sortType changes just reverse the array so we don't need to readjust the ords + */ + + const isMultiple = computed(() => Array.isArray(props.sortBy)); + const internalSortBy = shallowRef(Array.isArray(props.sortBy) ? props.sortBy : props.sortBy ? [props.sortBy] : []); + watch(() => props.sortBy, newVal => { + internalSortBy.value = Array.isArray(newVal) ? newVal : newVal ? [newVal] : []; + }); + const sortBy = computed({ + get() { + return internalSortBy.value; + }, + + set(columns) { + internalSortBy.value = columns; + + if (!props['onUpdate:sortBy']) { + return; + } + + if (Array.isArray(props.sortBy)) { + props['onUpdate:sortBy'](columns); + } else if (isNonEmpty(columns)) { + props['onUpdate:sortBy'](columns[0]); + } + } + + }); + const sortByMap = computed(() => toMap(sortBy.value)); + const ords = computed(() => { + const ords = []; + sortBy.value.forEach(c => { + const sort = c.sort; + + if (sort && !isBoolean(sort)) { + ords.push(sort.sortType === 'Ascending' || sort.sortType === undefined && initialSortType === 'Ascending' ? sort.ord : fromCompare((x, y) => { + return sort.ord.compare(x, y) * -1; + })); + } + }); + return ords; + }); + + function sort() { + if (!isEmpty(ords.value) && !isEmpty(rows.value)) { + rows.value = sortBy_(ords.value)(rows.value); + } + } + + watch(sortType, () => { + if (Array.isArray(sortBy.value) && sortBy.value.length > 1) { + sort(); + } else { + rows.value = reverse(rows.value); + } + }); + watch(() => [props.rows, sortBy.value], sort, { + immediate: true + }); + const sortableColumns = computed(() => columns.value.filter(column => !!column.sort)); + + function updateSortColumn(label) { + const column = pipe(sortBy.value, findFirst(c => c.label === label), alt(() => pipe(sortableColumns.value, findFirst(c => c.label === label)))); + if (isNone(column)) return; + + if (isMultiple.value) { + sortBy.value = toggleBTableColumn(useSortColumn(sortType.value, column.value, false), sortBy.value); + } else { + sortBy.value = [column.value]; + } + } + + function updateSortDirection(columnLabel) { + const column = columnLabel ? pipe(sortBy.value, findFirst(c => c.label === columnLabel), alt(() => pipe(sortableColumns.value, findFirst(c => c.label === columnLabel)))) : none; + + if (isMultiple.value && columnLabel && isSome(column)) { + const index = sortBy.value.findIndex(c => c.label === columnLabel); + const newColumn = useSortColumn(sortType.value, column.value, true); + + if (index > -1) { + const newVal = sortBy.value.slice(); + newVal.splice(index, 1, newColumn); + sortBy.value = newVal; + } else { + sortBy.value = snoc(sortBy.value, newColumn); + } + } else { + sortType.value = sortType.value === 'Ascending' ? 'Descending' : 'Ascending'; + } + } + + const sortableTable = { + sortBy, + sortType, + isMultiple, + sortByMap, + updateSortDirection, + updateSortColumn, + sortableColumns, + hasSortableColumns: computed(() => isNonEmpty(sortableColumns.value)) + }; + provide(USE_SORTABLE_TABLE_INJECTION_SYMBOL, sortableTable); + return sortableTable; +} + +function useDefaultSortableTable() { + return { + sortBy: shallowRef([]), + sortType: shallowRef('Ascending'), + updateSortColumn: constVoid, + updateSortDirection: constVoid, + sortableColumns: computed(constEmptyArray), + hasSortableColumns: computed(constFalse), + isMultiple: computed(constFalse), + sortByMap: computed(() => new Map()) + }; +} + +export function useInjectedSortableTable() { + return inject(USE_SORTABLE_TABLE_INJECTION_SYMBOL, useDefaultSortableTable, true); +} +//# sourceMappingURL=useSortableTable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/composables/useSortableTable.js.map b/node_modules/buetify/lib/components/table/composables/useSortableTable.js.map new file mode 100755 index 0000000..c51cf36 --- /dev/null +++ b/node_modules/buetify/lib/components/table/composables/useSortableTable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/components/table/composables/useSortableTable.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,EAAoB,OAApB,EAA6B,UAA7B,EAAyC,OAAzC,EAAkD,IAAlD,EAAwD,MAAM,IAAI,OAAlE,QAAiF,iBAAjF;AACA,SAAS,WAAT,QAAiC,eAAjC;AAEA,SAAS,GAAT,EAAc,MAAd,EAAsB,MAAtB,EAA8B,IAA9B,QAA0C,cAA1C;AACA,SAA2B,KAA3B,EAAkC,QAAlC,EAAiD,KAAjD,EAAqE,UAArE,EAAiF,OAAjF,EAA0F,MAA1F,QAAwG,KAAxG;AACA,SAAS,UAAT,EAAqB,SAArB,EAA2C,IAA3C,QAAuD,oBAAvD;AAEA,SAAS,QAAT,QAAyB,qCAAzB;AACA,SAAS,eAAT,EAA0B,SAA1B,QAA2C,wBAA3C;AACA,SAA4C,kBAA5C,QAAsE,WAAtE;AAEA,OAAO,MAAM,4BAA4B,GAAG;AAC1C,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,KADF;AAEJ,IAAA,QAAQ,EAAE;AAFN,GADoC;AAK1C,EAAA,MAAM,EAAE;AACN,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,KAAT;AADA,GALkC;AAQ1C,qBAAmB;AACjB,IAAA,IAAI,EAAE;AADW,GARuB;AAW1C,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAXgC;AAe1C,uBAAqB;AACnB,IAAA,IAAI,EAAE;AADa;AAfqB,CAArC;;AAiCP,SAAS,WAAT,CAAqB,QAArB,EAAyC,cAAzC,EAA+E,MAA/E,EAA8F;AAC5F,MAAI,MAAJ,EAAY;AACV,WAAO,CAAC,cAAc,IAAI,QAAnB,MAAiC,WAAjC,GAA+C,YAA/C,GAA8D,WAArE;AACD,GAFD,MAEO;AACL,WAAO,cAAc,IAAI,QAAzB;AACD;AACF;;AAED,SAAS,aAAT,CAAuB,QAAvB,EAA2C,MAA3C,EAAiE,MAAjE,EAAgF;AAC9E,SAAO,EACL,GAAG,MADE;AAEL,IAAA,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAR,CAAT,GACF,MAAM,CAAC,IADL,GAEF,MAAM,CAAC,IAAP,KAAgB,SAAhB,GACA,SADA,GAEA,EAAE,GAAG,MAAM,CAAC,IAAZ;AAAkB,MAAA,QAAQ,EAAE,WAAW,CAAC,QAAD,EAAW,MAAM,CAAC,IAAP,EAAa,QAAxB,EAAkC,MAAlC;AAAvC;AANC,GAAP;AAQD;;AAED,MAAM,mCAAmC,GAAG,MAAM,EAAlD;;AAEA,SAAS,KAAT,CAAe,OAAf,EAAsC;AACpC,SAAO,IAAI,GAAJ,CAAQ,OAAO,CAAC,GAAR,CAAY,CAAC,CAAD,EAAI,SAAJ,KAAkB,CAAC,CAAC,CAAC,KAAH,EAAU,EAAE,GAAG,CAAL;AAAQ,IAAA;AAAR,GAAV,CAA9B,CAAR,CAAP;AACD;;AAED,OAAM,SAAU,gBAAV,CAA2B,KAA3B,EAAsD,IAAtD,EAA8E,OAA9E,EAA0G;AAC9G,QAAM,eAAe,GAAG,KAAK,CAAC,QAA9B;AAEA,QAAM;AAAE,IAAA,KAAK,EAAE;AAAT,MAAsB,QAAQ,CAAC,KAAK,CAAC,KAAD,EAAQ,UAAR,CAAN,EAA2B,KAAK,CAAC,KAAD,EAAQ,mBAAR,CAAhC,CAApC;AACA;;;AAGG;;AAEH,QAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,MAApB,CAAP,CAA3B;AAEA,QAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,MAApB,IAA8B,KAAK,CAAC,MAApC,GAA6C,KAAK,CAAC,MAAN,GAAe,CAAC,KAAK,CAAC,MAAP,CAAf,GAAgC,EAA9E,CAAjC;AAEA,EAAA,KAAK,CACH,MAAM,KAAK,CAAC,MADT,EAEH,MAAM,IAAG;AACP,IAAA,cAAc,CAAC,KAAf,GAAuB,KAAK,CAAC,OAAN,CAAc,MAAd,IAAwB,MAAxB,GAAiC,MAAM,GAAG,CAAC,MAAD,CAAH,GAAc,EAA5E;AACD,GAJE,CAAL;AAOA,QAAM,MAAM,GAAG,QAAQ,CAAC;AACtB,IAAA,GAAG,GAAA;AACD,aAAO,cAAc,CAAC,KAAtB;AACD,KAHqB;;AAItB,IAAA,GAAG,CAAC,OAAD,EAAwB;AACzB,MAAA,cAAc,CAAC,KAAf,GAAuB,OAAvB;;AACA,UAAI,CAAC,KAAK,CAAC,iBAAD,CAAV,EAA+B;AAC7B;AACD;;AACD,UAAI,KAAK,CAAC,OAAN,CAAc,KAAK,CAAC,MAApB,CAAJ,EAAiC;AAC/B,QAAA,KAAK,CAAC,iBAAD,CAAL,CAAyB,OAAzB;AACD,OAFD,MAEO,IAAI,UAAU,CAAC,OAAD,CAAd,EAAyB;AAC9B,QAAA,KAAK,CAAC,iBAAD,CAAL,CAAyB,OAAO,CAAC,CAAD,CAAhC;AACD;AACF;;AAdqB,GAAD,CAAvB;AAiBA,QAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,KAAR,CAAZ,CAA1B;AAEA,QAAM,IAAI,GAAG,QAAQ,CAAC,MAAK;AACzB,UAAM,IAAI,GAAqB,EAA/B;AACA,IAAA,MAAM,CAAC,KAAP,CAAa,OAAb,CAAqB,CAAC,IAAG;AACvB,YAAM,IAAI,GAAG,CAAC,CAAC,IAAf;;AACA,UAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAD,CAAtB,EAA8B;AAC5B,QAAA,IAAI,CAAC,IAAL,CACE,IAAI,CAAC,QAAL,KAAkB,WAAlB,IAAkC,IAAI,CAAC,QAAL,KAAkB,SAAlB,IAA+B,eAAe,KAAK,WAArF,GACI,IAAI,CAAC,GADT,GAEI,WAAW,CAAC,CAAC,CAAD,EAAI,CAAJ,KAAS;AACnB,iBAAQ,IAAI,CAAC,GAAL,CAAS,OAAT,CAAiB,CAAjB,EAAoB,CAApB,IAAyB,CAAC,CAAlC;AACD,SAFU,CAHjB;AAOD;AACF,KAXD;AAYA,WAAO,IAAP;AACD,GAfoB,CAArB;;AAiBA,WAAS,IAAT,GAAa;AACX,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAN,CAAR,IAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAN,CAApC,EAAkD;AAChD,MAAA,IAAI,CAAC,KAAL,GAAa,OAAO,CAAC,IAAI,CAAC,KAAN,CAAP,CAAoB,IAAI,CAAC,KAAzB,CAAb;AACD;AACF;;AAED,EAAA,KAAK,CAAC,QAAD,EAAW,MAAK;AACnB,QAAI,KAAK,CAAC,OAAN,CAAc,MAAM,CAAC,KAArB,KAA+B,MAAM,CAAC,KAAP,CAAa,MAAb,GAAsB,CAAzD,EAA4D;AAC1D,MAAA,IAAI;AACL,KAFD,MAEO;AACL,MAAA,IAAI,CAAC,KAAL,GAAa,OAAO,CAAC,IAAI,CAAC,KAAN,CAApB;AACD;AACF,GANI,CAAL;AAQA,EAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAP,EAAa,MAAM,CAAC,KAApB,CAAP,EAAmC,IAAnC,EAAyC;AAC5C,IAAA,SAAS,EAAE;AADiC,GAAzC,CAAL;AAIA,QAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,KAAR,CAAc,MAAd,CAAqB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAxC,CAAP,CAAhC;;AAEA,WAAS,gBAAT,CAA0B,KAA1B,EAAuC;AACrC,UAAM,MAAM,GAAG,IAAI,CACjB,MAAM,CAAC,KADU,EAEjB,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,KAAlB,CAFQ,EAGjB,GAAG,CAAC,MACF,IAAI,CACF,eAAe,CAAC,KADd,EAEF,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,KAAlB,CAFP,CADH,CAHc,CAAnB;AAUA,QAAI,MAAM,CAAC,MAAD,CAAV,EAAoB;;AACpB,QAAI,UAAU,CAAC,KAAf,EAAsB;AACpB,MAAA,MAAM,CAAC,KAAP,GAAe,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAV,EAAiB,MAAM,CAAC,KAAxB,EAA+B,KAA/B,CAAd,EAAqD,MAAM,CAAC,KAA5D,CAAjC;AACD,KAFD,MAEO;AACL,MAAA,MAAM,CAAC,KAAP,GAAe,CAAC,MAAM,CAAC,KAAR,CAAf;AACD;AACF;;AAED,WAAS,mBAAT,CAA6B,WAA7B,EAAiD;AAC/C,UAAM,MAAM,GAAG,WAAW,GACtB,IAAI,CACF,MAAM,CAAC,KADL,EAEF,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,WAAlB,CAFP,EAGF,GAAG,CAAC,MACF,IAAI,CACF,eAAe,CAAC,KADd,EAEF,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,WAAlB,CAFP,CADH,CAHD,CADkB,GAWtB,IAXJ;;AAYA,QAAI,UAAU,CAAC,KAAX,IAAoB,WAApB,IAAmC,MAAM,CAAC,MAAD,CAA7C,EAAuD;AACrD,YAAM,KAAK,GAAG,MAAM,CAAC,KAAP,CAAa,SAAb,CAAuB,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,WAAxC,CAAd;AACA,YAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAV,EAAiB,MAAM,CAAC,KAAxB,EAA+B,IAA/B,CAA/B;;AACA,UAAI,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,cAAM,MAAM,GAAG,MAAM,CAAC,KAAP,CAAa,KAAb,EAAf;AACA,QAAA,MAAM,CAAC,MAAP,CAAc,KAAd,EAAqB,CAArB,EAAwB,SAAxB;AACA,QAAA,MAAM,CAAC,KAAP,GAAe,MAAf;AACD,OAJD,MAIO;AACL,QAAA,MAAM,CAAC,KAAP,GAAe,IAAI,CAAC,MAAM,CAAC,KAAR,EAAe,SAAf,CAAnB;AACD;AACF,KAVD,MAUO;AACL,MAAA,QAAQ,CAAC,KAAT,GAAiB,QAAQ,CAAC,KAAT,KAAmB,WAAnB,GAAiC,YAAjC,GAAgD,WAAjE;AACD;AACF;;AAED,QAAM,aAAa,GAAqB;AACtC,IAAA,MADsC;AAEtC,IAAA,QAFsC;AAGtC,IAAA,UAHsC;AAItC,IAAA,SAJsC;AAKtC,IAAA,mBALsC;AAMtC,IAAA,gBANsC;AAOtC,IAAA,eAPsC;AAQtC,IAAA,kBAAkB,EAAE,QAAQ,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,KAAjB,CAAjB;AARU,GAAxC;AAWA,EAAA,OAAO,CAAC,mCAAD,EAAsC,aAAtC,CAAP;AAEA,SAAO,aAAP;AACD;;AAED,SAAS,uBAAT,GAAgC;AAC9B,SAAO;AACL,IAAA,MAAM,EAAE,UAAU,CAAC,EAAD,CADb;AAEL,IAAA,QAAQ,EAAE,UAAU,CAAC,WAAD,CAFf;AAGL,IAAA,gBAAgB,EAAE,SAHb;AAIL,IAAA,mBAAmB,EAAE,SAJhB;AAKL,IAAA,eAAe,EAAE,QAAQ,CAAC,eAAD,CALpB;AAML,IAAA,kBAAkB,EAAE,QAAQ,CAAC,UAAD,CANvB;AAOL,IAAA,UAAU,EAAE,QAAQ,CAAC,UAAD,CAPf;AAQL,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAJ,EAAP;AARd,GAAP;AAUD;;AAED,OAAM,SAAU,wBAAV,GAAkC;AACtC,SAAO,MAAM,CAAC,mCAAD,EAAsC,uBAAtC,EAA+D,IAA/D,CAAb;AACD","sourcesContent":["import { findFirst, isEmpty, isNonEmpty, reverse, snoc, sortBy as sortBy_ } from 'fp-ts/lib/Array';\nimport { fromCompare, Ord } from 'fp-ts/lib/Ord';\nimport { Ordering } from 'fp-ts/lib/Ordering';\nimport { alt, isNone, isSome, none } from 'fp-ts/Option';\nimport { ExtractPropTypes, toRef, computed, Ref, watch, ComputedRef, shallowRef, provide, inject } from 'vue';\nimport { constFalse, constVoid, FunctionN, pipe } from 'fp-ts/lib/function';\nimport { PropType } from 'vue';\nimport { useProxy } from '../../../composables/proxy/useProxy';\nimport { constEmptyArray, isBoolean } from '../../../utils/helpers';\nimport { BTableColumn, BTableRow, SortType, toggleBTableColumn } from '../shared';\n\nexport const BTableSortingPropsDefinition = {\n rows: {\n type: Array as PropType<BTableRow[]>,\n required: true as const\n },\n sortBy: {\n type: [Object, Array] as PropType<BTableColumn | BTableColumn[]>\n },\n 'onUpdate:sortBy': {\n type: Function as PropType<FunctionN<[BTableColumn | BTableColumn[]], void>>\n },\n sortType: {\n type: String as PropType<SortType>,\n default: 'Descending' as const\n },\n 'onUpdate:sortType': {\n type: Function as PropType<FunctionN<[SortType], void>>\n }\n};\n\nexport interface BTableSortingProps extends ExtractPropTypes<typeof BTableSortingPropsDefinition> {}\n\nexport interface UseSortableTable {\n sortBy: Ref<BTableColumn[]>;\n sortType: Ref<SortType>;\n isMultiple: ComputedRef<boolean>;\n sortByMap: ComputedRef<Map<string, BTableColumn & { sortIndex: number }>>;\n updateSortColumn: FunctionN<[string], void>;\n updateSortDirection: (columnLabel?: string) => void;\n sortableColumns: ComputedRef<BTableColumn[]>;\n hasSortableColumns: ComputedRef<boolean>;\n}\n\nfunction useSortType(sortType: SortType, columnSortType: SortType | undefined, invert: boolean): SortType {\n if (invert) {\n return (columnSortType ?? sortType) === 'Ascending' ? 'Descending' : 'Ascending';\n } else {\n return columnSortType ?? sortType;\n }\n}\n\nfunction useSortColumn(sortType: SortType, column: BTableColumn, invert: boolean): BTableColumn {\n return {\n ...column,\n sort: isBoolean(column.sort)\n ? column.sort\n : column.sort === undefined\n ? undefined\n : { ...column.sort, sortType: useSortType(sortType, column.sort?.sortType, invert) }\n };\n}\n\nconst USE_SORTABLE_TABLE_INJECTION_SYMBOL = Symbol();\n\nfunction toMap(columns: BTableColumn[]): Map<string, BTableColumn & { sortIndex: number }> {\n return new Map(columns.map((c, sortIndex) => [c.label, { ...c, sortIndex }]));\n}\n\nexport function useSortableTable(props: BTableSortingProps, rows: Ref<BTableRow[]>, columns: Ref<BTableColumn[]>) {\n const initialSortType = props.sortType;\n\n const { value: sortType } = useProxy(toRef(props, 'sortType'), toRef(props, 'onUpdate:sortType'));\n /*\n fp-ts sorts in ascending order so we need to reverse the ords if the initial sort type is 'Descending'\n Future sortType changes just reverse the array so we don't need to readjust the ords\n */\n\n const isMultiple = computed(() => Array.isArray(props.sortBy));\n\n const internalSortBy = shallowRef(Array.isArray(props.sortBy) ? props.sortBy : props.sortBy ? [props.sortBy] : []);\n\n watch(\n () => props.sortBy,\n newVal => {\n internalSortBy.value = Array.isArray(newVal) ? newVal : newVal ? [newVal] : [];\n }\n );\n\n const sortBy = computed({\n get() {\n return internalSortBy.value;\n },\n set(columns: BTableColumn[]) {\n internalSortBy.value = columns;\n if (!props['onUpdate:sortBy']) {\n return;\n }\n if (Array.isArray(props.sortBy)) {\n props['onUpdate:sortBy'](columns);\n } else if (isNonEmpty(columns)) {\n props['onUpdate:sortBy'](columns[0]);\n }\n }\n });\n\n const sortByMap = computed(() => toMap(sortBy.value));\n\n const ords = computed(() => {\n const ords: Ord<BTableRow>[] = [];\n sortBy.value.forEach(c => {\n const sort = c.sort;\n if (sort && !isBoolean(sort)) {\n ords.push(\n sort.sortType === 'Ascending' || (sort.sortType === undefined && initialSortType === 'Ascending')\n ? sort.ord\n : fromCompare((x, y) => {\n return (sort.ord.compare(x, y) * -1) as Ordering;\n })\n );\n }\n });\n return ords;\n });\n\n function sort() {\n if (!isEmpty(ords.value) && !isEmpty(rows.value)) {\n rows.value = sortBy_(ords.value)(rows.value);\n }\n }\n\n watch(sortType, () => {\n if (Array.isArray(sortBy.value) && sortBy.value.length > 1) {\n sort();\n } else {\n rows.value = reverse(rows.value);\n }\n });\n\n watch(() => [props.rows, sortBy.value], sort, {\n immediate: true\n });\n\n const sortableColumns = computed(() => columns.value.filter(column => !!column.sort));\n\n function updateSortColumn(label: string) {\n const column = pipe(\n sortBy.value,\n findFirst(c => c.label === label),\n alt(() =>\n pipe(\n sortableColumns.value,\n findFirst(c => c.label === label)\n )\n )\n );\n if (isNone(column)) return;\n if (isMultiple.value) {\n sortBy.value = toggleBTableColumn(useSortColumn(sortType.value, column.value, false), sortBy.value);\n } else {\n sortBy.value = [column.value];\n }\n }\n\n function updateSortDirection(columnLabel?: string) {\n const column = columnLabel\n ? pipe(\n sortBy.value,\n findFirst(c => c.label === columnLabel),\n alt(() =>\n pipe(\n sortableColumns.value,\n findFirst(c => c.label === columnLabel)\n )\n )\n )\n : none;\n if (isMultiple.value && columnLabel && isSome(column)) {\n const index = sortBy.value.findIndex(c => c.label === columnLabel);\n const newColumn = useSortColumn(sortType.value, column.value, true);\n if (index > -1) {\n const newVal = sortBy.value.slice();\n newVal.splice(index, 1, newColumn);\n sortBy.value = newVal;\n } else {\n sortBy.value = snoc(sortBy.value, newColumn);\n }\n } else {\n sortType.value = sortType.value === 'Ascending' ? 'Descending' : 'Ascending';\n }\n }\n\n const sortableTable: UseSortableTable = {\n sortBy,\n sortType,\n isMultiple,\n sortByMap,\n updateSortDirection,\n updateSortColumn,\n sortableColumns,\n hasSortableColumns: computed(() => isNonEmpty(sortableColumns.value))\n };\n\n provide(USE_SORTABLE_TABLE_INJECTION_SYMBOL, sortableTable);\n\n return sortableTable;\n}\n\nfunction useDefaultSortableTable(): UseSortableTable {\n return {\n sortBy: shallowRef([]),\n sortType: shallowRef('Ascending'),\n updateSortColumn: constVoid,\n updateSortDirection: constVoid,\n sortableColumns: computed(constEmptyArray),\n hasSortableColumns: computed(constFalse),\n isMultiple: computed(constFalse),\n sortByMap: computed(() => new Map())\n };\n}\n\nexport function useInjectedSortableTable(): UseSortableTable {\n return inject(USE_SORTABLE_TABLE_INJECTION_SYMBOL, useDefaultSortableTable, true);\n}\n"],"sourceRoot":"","file":"useSortableTable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/index.d.ts b/node_modules/buetify/lib/components/table/index.d.ts new file mode 100755 index 0000000..da899dc --- /dev/null +++ b/node_modules/buetify/lib/components/table/index.d.ts @@ -0,0 +1,5 @@ +import BTable from './BTable'; +import BSimpleTable from './BSimpleTable'; +import BStyledTable from './BStyledTable'; +import BTableColumn from './BTableColumn'; +export { BTable, BTableColumn, BSimpleTable, BStyledTable }; diff --git a/node_modules/buetify/lib/components/table/index.js b/node_modules/buetify/lib/components/table/index.js new file mode 100755 index 0000000..3cb817a --- /dev/null +++ b/node_modules/buetify/lib/components/table/index.js @@ -0,0 +1,6 @@ +import BTable from './BTable'; +import BSimpleTable from './BSimpleTable'; +import BStyledTable from './BStyledTable'; +import BTableColumn from './BTableColumn'; +export { BTable, BTableColumn, BSimpleTable, BStyledTable }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/index.js.map b/node_modules/buetify/lib/components/table/index.js.map new file mode 100755 index 0000000..53b33f7 --- /dev/null +++ b/node_modules/buetify/lib/components/table/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAP,MAAmB,UAAnB;AACA,OAAO,YAAP,MAAyB,gBAAzB;AACA,OAAO,YAAP,MAAyB,gBAAzB;AACA,OAAO,YAAP,MAAyB,gBAAzB;AAEA,SAAS,MAAT,EAAiB,YAAjB,EAA+B,YAA/B,EAA6C,YAA7C","sourcesContent":["import BTable from './BTable';\nimport BSimpleTable from './BSimpleTable';\nimport BStyledTable from './BStyledTable';\nimport BTableColumn from './BTableColumn';\n\nexport { BTable, BTableColumn, BSimpleTable, BStyledTable };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/shared.d.ts b/node_modules/buetify/lib/components/table/shared.d.ts new file mode 100755 index 0000000..e6b8cc1 --- /dev/null +++ b/node_modules/buetify/lib/components/table/shared.d.ts @@ -0,0 +1,36 @@ +import { FunctionN } from 'fp-ts/function'; +import { Eq } from 'fp-ts/lib/Eq'; +import { Ord } from 'fp-ts/lib/Ord'; +import { Classes } from '../../utils/mergeClasses'; +export interface BTableRow { + id: unknown; + isDroppable?: boolean; + isDraggable?: boolean; + isSelectable?: boolean; + isCheckable?: boolean; + classes?: Classes; +} +export declare type SortType = 'Ascending' | 'Descending'; +export declare type BTableColumnPosition = 'is-left' | 'is-centered' | 'is-right'; +export interface BTableColumnSort<T = BTableRow> { + ord: Ord<T>; + sortType?: SortType; +} +export interface BTableColumn<T = BTableRow> { + label: string; + detail?: string; + slotName?: string; + value?: keyof T | FunctionN<[T], unknown>; + asHtml?: boolean; + sort?: boolean | BTableColumnSort<T>; + meta?: unknown; + isVisible?: boolean; + position?: BTableColumnPosition; + width?: string | number; + classes?: Classes; + isSticky?: boolean; +} +export declare const eqBTableRowData: Eq<BTableRow>; +export declare const eqBTableColumn: Eq<BTableColumn>; +export declare const toggleBTableRow: (a: BTableRow, as: BTableRow[]) => BTableRow[]; +export declare const toggleBTableColumn: (a: BTableColumn<BTableRow>, as: BTableColumn<BTableRow>[]) => BTableColumn<BTableRow>[]; diff --git a/node_modules/buetify/lib/components/table/shared.js b/node_modules/buetify/lib/components/table/shared.js new file mode 100755 index 0000000..210a020 --- /dev/null +++ b/node_modules/buetify/lib/components/table/shared.js @@ -0,0 +1,7 @@ +import { contramap, eqStrict, eqString } from 'fp-ts/lib/Eq'; +import { toggleListItem } from '../../utils/helpers'; +export const eqBTableRowData = contramap(row => row.id)(eqStrict); +export const eqBTableColumn = contramap(column => column.label)(eqString); +export const toggleBTableRow = toggleListItem(eqBTableRowData); +export const toggleBTableColumn = toggleListItem(eqBTableColumn); +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/table/shared.js.map b/node_modules/buetify/lib/components/table/shared.js.map new file mode 100755 index 0000000..65731f1 --- /dev/null +++ b/node_modules/buetify/lib/components/table/shared.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/table/shared.ts"],"names":[],"mappings":"AACA,SAAS,SAAT,EAAwB,QAAxB,EAAkC,QAAlC,QAAkD,cAAlD;AAEA,SAAS,cAAT,QAA+B,qBAA/B;AAmCA,OAAO,MAAM,eAAe,GAAkB,SAAS,CAAqB,GAAG,IAAI,GAAG,CAAC,EAAhC,CAAT,CAA6C,QAA7C,CAAvC;AAEP,OAAO,MAAM,cAAc,GAAqB,SAAS,CAAuB,MAAM,IAAI,MAAM,CAAC,KAAxC,CAAT,CAAwD,QAAxD,CAAzC;AAEP,OAAO,MAAM,eAAe,GAAG,cAAc,CAAC,eAAD,CAAtC;AAEP,OAAO,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAD,CAAzC","sourcesContent":["import { FunctionN } from 'fp-ts/function';\nimport { contramap, Eq, eqStrict, eqString } from 'fp-ts/lib/Eq';\nimport { Ord } from 'fp-ts/lib/Ord';\nimport { toggleListItem } from '../../utils/helpers';\nimport { Classes } from '../../utils/mergeClasses';\n\nexport interface BTableRow {\n id: unknown;\n isDroppable?: boolean;\n isDraggable?: boolean;\n isSelectable?: boolean;\n isCheckable?: boolean;\n classes?: Classes;\n}\n\nexport type SortType = 'Ascending' | 'Descending';\n\nexport type BTableColumnPosition = 'is-left' | 'is-centered' | 'is-right';\n\nexport interface BTableColumnSort<T = BTableRow> {\n ord: Ord<T>;\n sortType?: SortType;\n}\nexport interface BTableColumn<T = BTableRow> {\n label: string;\n detail?: string;\n slotName?: string;\n value?: keyof T | FunctionN<[T], unknown>;\n asHtml?: boolean;\n sort?: boolean | BTableColumnSort<T>;\n meta?: unknown;\n isVisible?: boolean;\n position?: BTableColumnPosition;\n width?: string | number;\n classes?: Classes;\n isSticky?: boolean;\n}\n\nexport const eqBTableRowData: Eq<BTableRow> = contramap<unknown, BTableRow>(row => row.id)(eqStrict);\n\nexport const eqBTableColumn: Eq<BTableColumn> = contramap<string, BTableColumn>(column => column.label)(eqString);\n\nexport const toggleBTableRow = toggleListItem(eqBTableRowData);\n\nexport const toggleBTableColumn = toggleListItem(eqBTableColumn);\n"],"sourceRoot":"","file":"shared.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/BTabItem.d.ts b/node_modules/buetify/lib/components/tabs/BTabItem.d.ts new file mode 100755 index 0000000..b0df118 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/BTabItem.d.ts @@ -0,0 +1,34 @@ +declare const _default: import("vue").DefineComponent<{ + label: { + type: import("vue").PropType<string>; + required: true; + }; + icon: { + type: import("vue").PropType<import("vue").Component<any, any, any, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions>>; + }; + isDisabled: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + isVisible: { + type: import("vue").PropType<boolean>; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isVisible: boolean; + isDisabled: boolean; + label: string; +} & { + icon?: import("vue").ComponentOptions<any, any, any, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions, any, any, any> | import("vue").FunctionalComponent<any, any> | { + new (...args: any[]): any; + __isFragment?: undefined; + __isTeleport?: undefined; + __isSuspense?: undefined; + } | undefined; +}>, { + isVisible: boolean; + isDisabled: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/tabs/BTabItem.js b/node_modules/buetify/lib/components/tabs/BTabItem.js new file mode 100755 index 0000000..f686ba1 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/BTabItem.js @@ -0,0 +1,32 @@ +import { toUndefined } from 'fp-ts/lib/Option'; +import { defineComponent, h, inject, withDirectives, vShow, computed } from 'vue'; +import { BTabItemPropsDefinition, DEFAULT_TAB_INJECTION, TAB_ITEM_NAME, TABS_SYMBOL } from './shared'; +export default defineComponent({ + name: TAB_ITEM_NAME, + props: BTabItemPropsDefinition, + + setup(props, { + slots + }) { + const injection = inject(TABS_SYMBOL, DEFAULT_TAB_INJECTION); + const index = injection.tabs.findIndex(p => p.label === props.label); + + if (index > -1) { + injection.tabs.splice(index, 1, props); + } else { + injection.tabs.push(props); + } + + const isActive = computed(() => toUndefined(injection.activeLabel.value) === props.label); + return () => { + return withDirectives(h('section', { + class: 'tab-item', + 'aria-label': props.label + }, slots.default && slots.default({ + isActive: toUndefined(injection.activeLabel.value) === props.label + })), [[vShow, isActive.value]]); + }; + } + +}); +//# sourceMappingURL=BTabItem.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/BTabItem.js.map b/node_modules/buetify/lib/components/tabs/BTabItem.js.map new file mode 100755 index 0000000..d4ad6d5 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/BTabItem.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tabs/BTabItem.ts"],"names":[],"mappings":"AAAA,SAAS,WAAT,QAA4B,kBAA5B;AACA,SAAS,eAAT,EAA0B,CAA1B,EAA6B,MAA7B,EAAqC,cAArC,EAAqD,KAArD,EAA4D,QAA5D,QAA4E,KAA5E;AACA,SAAS,uBAAT,EAAkC,qBAAlC,EAAyD,aAAzD,EAAwE,WAAxE,QAA2F,UAA3F;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,aADuB;AAE7B,EAAA,KAAK,EAAE,uBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,UAAM,SAAS,GAAG,MAAM,CAAC,WAAD,EAAc,qBAAd,CAAxB;AAEA,UAAM,KAAK,GAAG,SAAS,CAAC,IAAV,CAAe,SAAf,CAAyB,CAAC,IAAI,CAAC,CAAC,KAAF,KAAY,KAAK,CAAC,KAAhD,CAAd;;AAEA,QAAI,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,MAAA,SAAS,CAAC,IAAV,CAAe,MAAf,CAAsB,KAAtB,EAA6B,CAA7B,EAAgC,KAAhC;AACD,KAFD,MAEO;AACL,MAAA,SAAS,CAAC,IAAV,CAAe,IAAf,CAAoB,KAApB;AACD;;AAED,UAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,WAAV,CAAsB,KAAvB,CAAX,KAA6C,KAAK,CAAC,KAA1D,CAAzB;AAEA,WAAO,MAAK;AACV,aAAO,cAAc,CACnB,CAAC,CACC,SADD,EAEC;AACE,QAAA,KAAK,EAAE,UADT;AAEE,sBAAc,KAAK,CAAC;AAFtB,OAFD,EAMC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,CAAc;AAAE,QAAA,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,WAAV,CAAsB,KAAvB,CAAX,KAA6C,KAAK,CAAC;AAA/D,OAAd,CANlB,CADkB,EASnB,CAAC,CAAC,KAAD,EAAQ,QAAQ,CAAC,KAAjB,CAAD,CATmB,CAArB;AAWD,KAZD;AAaD;;AA7B4B,CAAD,CAA9B","sourcesContent":["import { toUndefined } from 'fp-ts/lib/Option';\nimport { defineComponent, h, inject, withDirectives, vShow, computed } from 'vue';\nimport { BTabItemPropsDefinition, DEFAULT_TAB_INJECTION, TAB_ITEM_NAME, TABS_SYMBOL } from './shared';\n\nexport default defineComponent({\n name: TAB_ITEM_NAME,\n props: BTabItemPropsDefinition,\n setup(props, { slots }) {\n const injection = inject(TABS_SYMBOL, DEFAULT_TAB_INJECTION);\n\n const index = injection.tabs.findIndex(p => p.label === props.label);\n\n if (index > -1) {\n injection.tabs.splice(index, 1, props);\n } else {\n injection.tabs.push(props);\n }\n\n const isActive = computed(() => toUndefined(injection.activeLabel.value) === props.label);\n\n return () => {\n return withDirectives(\n h(\n 'section',\n {\n class: 'tab-item',\n 'aria-label': props.label\n },\n slots.default && slots.default({ isActive: toUndefined(injection.activeLabel.value) === props.label })\n ),\n [[vShow, isActive.value]]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BTabItem.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/BTabs.d.ts b/node_modules/buetify/lib/components/tabs/BTabs.d.ts new file mode 100755 index 0000000..de9e0ad --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/BTabs.d.ts @@ -0,0 +1,150 @@ +import '../../sass/helpers/animations.sass'; +import '../../sass/helpers/flex-helpers.sass'; +import '../../sass/helpers/padding-margin-helpers.sass'; +import './tabs.sass'; +import { AllColorsVariant } from '../../types/ColorVariants'; +import { PropType, ExtractPropTypes, VNode } from 'vue'; +export declare type TabsPosition = 'is-centered' | 'is-right' | ''; +export declare type TabsType = 'is-boxed' | 'is-toggle' | 'is-toggle-rounded' | ''; +export declare type TabsSize = 'is-small' | 'is-medium' | 'is-large' | ''; +export declare const BTabsPropsDefinition: { + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + type: { + type: PropType<TabsType>; + default: ""; + }; + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + position: { + type: PropType<import("../pagination/BPagination").PaginationPosition>; + default: ""; + }; + label: { + type: PropType<string>; + }; + variant: { + type: PropType<AllColorsVariant>; + default: ""; + }; + isAnimated: { + type: PropType<boolean>; + default: boolean; + }; + isScrollable: { + type: PropType<boolean>; + default: boolean; + }; + isVertical: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<number>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}; +export declare type BTabsProps = ExtractPropTypes<typeof BTabsPropsDefinition>; +declare const _default: import("vue").DefineComponent<{ + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + type: { + type: PropType<TabsType>; + default: ""; + }; + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + position: { + type: PropType<import("../pagination/BPagination").PaginationPosition>; + default: ""; + }; + label: { + type: PropType<string>; + }; + variant: { + type: PropType<AllColorsVariant>; + default: ""; + }; + isAnimated: { + type: PropType<boolean>; + default: boolean; + }; + isScrollable: { + type: PropType<boolean>; + default: boolean; + }; + isVertical: { + type: PropType<boolean>; + default: boolean; + }; + themeMap: { + type: PropType<import("../..").ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<import("../..").ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<number>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + variant: AllColorsVariant; + size: import("../..").SizeVariant; + isExpanded: boolean; + type: TabsType; + position: import("../pagination/BPagination").PaginationPosition; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + isAnimated: boolean; + isVertical: boolean; + isScrollable: boolean; +} & { + label?: string | undefined; + modelValue?: number | undefined; +}>, { + isThemeable: boolean; + themeMap: import("../..").ThemeColorMap; + variant: AllColorsVariant; + size: import("../..").SizeVariant; + isExpanded: boolean; + type: TabsType; + position: import("../pagination/BPagination").PaginationPosition; + "onUpdate:modelValue": import("fp-ts/lib/function").FunctionN<[number], void>; + isAnimated: boolean; + isVertical: boolean; + isScrollable: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/tabs/BTabs.js b/node_modules/buetify/lib/components/tabs/BTabs.js new file mode 100755 index 0000000..f8cf0f0 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/BTabs.js @@ -0,0 +1,168 @@ +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/sass/helpers/flex-helpers.sass"; +import "../../../src/sass/helpers/padding-margin-helpers.sass"; +import "../../../src/components/tabs/tabs.sass"; +import { lookup } from 'fp-ts/Array'; +import { pipe } from 'fp-ts/function'; +import { map } from 'fp-ts/Option'; +import { getUseModelPropsDefinition, useModel } from '../../composables/model'; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import BScroll from '../scroll/BScroll'; +import { shallowReactive, h, shallowRef, provide, nextTick, defineComponent, onBeforeMount, computed, TransitionGroup, cloneVNode, withDirectives, vShow } from 'vue'; +import { TABS_SYMBOL } from './shared'; +import { TabsThemeMap } from './theme'; +export const BTabsPropsDefinition = { ...getUseModelPropsDefinition(), + ...useThemePropsDefinition(TabsThemeMap), + isExpanded: { + type: Boolean, + default: false + }, + type: { + type: String, + default: '' + }, + size: { + type: String, + default: '' + }, + position: { + type: String, + default: '' + }, + label: { + type: String + }, + variant: { + type: String, + default: '' + }, + isAnimated: { + type: Boolean, + default: true + }, + isScrollable: { + type: Boolean, + default: false + }, + isVertical: { + type: Boolean, + default: false + } +}; + +function useOnTabItemClick(tab, index, model, transition) { + return () => { + const val = model.modelValue.value || 0; + + if (val !== index) { + transition.value = index < val ? 'slide-next' : 'slide-prev'; + nextTick(() => { + model.modelValue.value = index; + }); + } + }; +} + +function useGenerateNavItem(props, model, transition) { + return function generateNavItem(tab, index) { + return withDirectives(h('li', { + key: tab.label, + class: [{ + 'is-active': index === model.modelValue.value, + 'is-disabled': tab.isDisabled + }] + }, [h('a', { + onClick: useOnTabItemClick(tab, index, model, transition) + }, tab.icon ? [h(tab.icon, { + size: props.size + }), tab.label] : tab.label)]), [[vShow, tab.isVisible]]); + }; +} + +function generateNavLabel(props) { + return h('label', { + class: ['label is-marginless align-self-center', props.size] + }, props.label); +} + +function generateNavItems(props, tabs, model, transition) { + return h('ul', tabs.map(useGenerateNavItem(props, model, transition))); +} + +function generateNavHeaderContent(props, tabs, model, transition, themeClasses) { + return h('nav', { + class: ['tabs', props.type, props.size, props.position, { + 'is-fullwidth': !!props.isExpanded || !!props.isScrollable, + 'is-toggle-rounded is-toggle': props.type === 'is-toggle-rounded' + }].concat(props.variant === '' ? themeClasses : [props.variant]) + }, props.label ? [generateNavLabel(props), generateNavItems(props, tabs, model, transition)] : [generateNavItems(props, tabs, model, transition)]); +} + +function generateNavHeader(props, tabs, model, transition, themeClasses) { + return props.isScrollable ? h(BScroll, { + class: props.isVertical ? 'is-fullheight' : 'is-fullwidth' + }, () => [generateNavHeaderContent(props, tabs, model, transition, themeClasses)]) : generateNavHeaderContent(props, tabs, model, transition, themeClasses); +} + +function BStaticTabContent(_, { + slots +}) { + return h('div', { + class: 'tab-content' + }, slots.default && slots.default()); +} + +export default defineComponent({ + name: 'b-tabs', + props: BTabsPropsDefinition, + + setup(props, context) { + const { + themeClasses + } = useTheme(props); + const model = useModel(props); + const transition = shallowRef('slide-next'); + const tabs = shallowReactive([]); + const isTransitioning = shallowRef(false); + const activeLabel = computed(() => pipe(tabs, lookup(model.modelValue.value || 0), map(p => p.label))); + const injection = { + activeLabel, + tabs + }; + provide(TABS_SYMBOL, injection); + onBeforeMount(() => { + if (model.modelValue.value === undefined) { + model.modelValue.value = 0; + } + }); + + function onBeforeEnter() { + isTransitioning.value = true; + } + + function onAfterLeave() { + isTransitioning.value = false; + } + + return () => { + return h('article', { + class: ['b-tabs', props.size || null, { + 'is-vertical': props.isVertical, + [props.position]: props.position && props.isVertical + }] + }, [generateNavHeader(props, tabs, model, transition, themeClasses.value), props.isAnimated ? h('div', { + class: ['tab-content', { + 'is-transitioning': isTransitioning.value + }] + }, h(TransitionGroup, { + onBeforeEnter, + onAfterLeave, + name: transition.value + }, () => context.slots.default && context.slots.default().map((node, index) => cloneVNode(node, { + key: tabs[index]?.label ?? index + })))) : h(BStaticTabContent, context.slots.default)]); + }; + } + +}); +//# sourceMappingURL=BTabs.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/BTabs.js.map b/node_modules/buetify/lib/components/tabs/BTabs.js.map new file mode 100755 index 0000000..c0f84bd --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/BTabs.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tabs/BTabs.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AACA,OAAO,6CAAP;AACA,OAAO,uDAAP;AACA,OAAO,wCAAP;AACA,SAAS,MAAT,QAAuB,aAAvB;AACA,SAAS,IAAT,QAAqB,gBAArB;AACA,SAAS,GAAT,QAAoB,cAApB;AACA,SAAS,0BAAT,EAA4C,QAA5C,QAA4D,yBAA5D;AACA,SAAS,uBAAT,EAAkC,QAAlC,QAAkD,yBAAlD;AAEA,OAAO,OAAP,MAAoB,mBAApB;AACA,SACE,eADF,EAGE,CAHF,EAIE,UAJF,EAKE,OALF,EAQE,QARF,EASE,eATF,EAWE,aAXF,EAYE,QAZF,EAcE,eAdF,EAeE,UAfF,EAgBE,cAhBF,EAiBE,KAjBF,QAmBO,KAnBP;AAqBA,SAAsC,WAAtC,QAAyD,UAAzD;AAEA,SAAS,YAAT,QAA6B,SAA7B;AAUA,OAAO,MAAM,oBAAoB,GAAG,EAClC,GAAG,0BAA0B,EADK;AAElC,KAAG,uBAAuB,CAAC,YAAD,CAFQ;AAGlC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAHsB;AAOlC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAP4B;AAWlC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAX4B;AAelC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAfwB;AAmBlC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE;AADD,GAnB2B;AAsBlC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GAtByB;AA0BlC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GA1BsB;AA8BlC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GA9BoB;AAkClC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC;AAlCsB,CAA7B;;AA0CP,SAAS,iBAAT,CAA2B,GAA3B,EAA+C,KAA/C,EAA8D,KAA9D,EAAoF,UAApF,EAAkH;AAChH,SAAO,MAAK;AACV,UAAM,GAAG,GAAG,KAAK,CAAC,UAAN,CAAiB,KAAjB,IAA0B,CAAtC;;AACA,QAAI,GAAG,KAAK,KAAZ,EAAmB;AACjB,MAAA,UAAU,CAAC,KAAX,GAAmB,KAAK,GAAG,GAAR,GAAc,YAAd,GAA6B,YAAhD;AACA,MAAA,QAAQ,CAAC,MAAK;AACZ,QAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,KAAzB;AACD,OAFO,CAAR;AAGD;AACF,GARD;AASD;;AAED,SAAS,kBAAT,CAA4B,KAA5B,EAA+C,KAA/C,EAAqE,UAArE,EAAmG;AACjG,SAAO,SAAS,eAAT,CAAyB,GAAzB,EAA6C,KAA7C,EAA0D;AAC/D,WAAO,cAAc,CACnB,CAAC,CACC,IADD,EAEC;AACE,MAAA,GAAG,EAAE,GAAG,CAAC,KADX;AAEE,MAAA,KAAK,EAAE,CACL;AACE,qBAAa,KAAK,KAAK,KAAK,CAAC,UAAN,CAAiB,KAD1C;AAEE,uBAAe,GAAG,CAAC;AAFrB,OADK;AAFT,KAFD,EAWC,CACE,CAAC,CACC,GADD,EAEC;AAAE,MAAA,OAAO,EAAE,iBAAiB,CAAC,GAAD,EAAM,KAAN,EAAa,KAAb,EAAoB,UAApB;AAA5B,KAFD,EAGC,GAAG,CAAC,IAAJ,GACI,CACE,CAAC,CAAC,GAAG,CAAC,IAAL,EAA+B;AAC9B,MAAA,IAAI,EAAE,KAAK,CAAC;AADkB,KAA/B,CADH,EAIE,GAAG,CAAC,KAJN,CADJ,GAOI,GAAG,CAAC,KAVT,CADH,CAXD,CADkB,EA2BnB,CAAC,CAAC,KAAD,EAAQ,GAAG,CAAC,SAAZ,CAAD,CA3BmB,CAArB;AA6BD,GA9BD;AA+BD;;AAED,SAAS,gBAAT,CAA0B,KAA1B,EAA2C;AACzC,SAAO,CAAC,CACN,OADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,uCAAD,EAA0C,KAAK,CAAC,IAAhD;AADT,GAFM,EAKN,KAAK,CAAC,KALA,CAAR;AAOD;;AAED,SAAS,gBAAT,CACE,KADF,EAEE,IAFF,EAGE,KAHF,EAIE,UAJF,EAIgC;AAE9B,SAAO,CAAC,CAAC,IAAD,EAAO,IAAI,CAAC,GAAL,CAAS,kBAAkB,CAAC,KAAD,EAAQ,KAAR,EAAe,UAAf,CAA3B,CAAP,CAAR;AACD;;AAED,SAAS,wBAAT,CACE,KADF,EAEE,IAFF,EAGE,KAHF,EAIE,UAJF,EAKE,YALF,EAKwB;AAEtB,SAAO,CAAC,CACN,KADM,EAEN;AACE,IAAA,KAAK,EAAE,CACL,MADK,EAEL,KAAK,CAAC,IAFD,EAGL,KAAK,CAAC,IAHD,EAIL,KAAK,CAAC,QAJD,EAKL;AACE,sBAAgB,CAAC,CAAC,KAAK,CAAC,UAAR,IAAsB,CAAC,CAAC,KAAK,CAAC,YADhD;AAEE,qCAA+B,KAAK,CAAC,IAAN,KAAe;AAFhD,KALK,EASL,MATK,CASE,KAAK,CAAC,OAAN,KAAkB,EAAlB,GAAuB,YAAvB,GAAsC,CAAC,KAAK,CAAC,OAAP,CATxC;AADT,GAFM,EAcN,KAAK,CAAC,KAAN,GACI,CAAC,gBAAgB,CAAC,KAAD,CAAjB,EAA0B,gBAAgB,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,EAAqB,UAArB,CAA1C,CADJ,GAEI,CAAC,gBAAgB,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,EAAqB,UAArB,CAAjB,CAhBE,CAAR;AAkBD;;AAED,SAAS,iBAAT,CACE,KADF,EAEE,IAFF,EAGE,KAHF,EAIE,UAJF,EAKE,YALF,EAKwB;AAEtB,SAAO,KAAK,CAAC,YAAN,GACH,CAAC,CAAC,OAAD,EAAU;AAAE,IAAA,KAAK,EAAE,KAAK,CAAC,UAAN,GAAmB,eAAnB,GAAqC;AAA9C,GAAV,EAA0E,MAAM,CAC/E,wBAAwB,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,EAAqB,UAArB,EAAiC,YAAjC,CADuD,CAAhF,CADE,GAIH,wBAAwB,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,EAAqB,UAArB,EAAiC,YAAjC,CAJ5B;AAKD;;AAED,SAAS,iBAAT,CAA2B,CAA3B,EAAuC;AAAE,EAAA;AAAF,CAAvC,EAA8D;AAC5D,SAAO,CAAC,CAAC,KAAD,EAAQ;AAAE,IAAA,KAAK,EAAE;AAAT,GAAR,EAAkC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAAnD,CAAR;AACD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,QADuB;AAE7B,EAAA,KAAK,EAAE,oBAFsB;;AAG7B,EAAA,KAAK,CAAC,KAAD,EAAQ,OAAR,EAAe;AAClB,UAAM;AAAE,MAAA;AAAF,QAAmB,QAAQ,CAAC,KAAD,CAAjC;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,KAAD,CAAtB;AACA,UAAM,UAAU,GAAG,UAAU,CAAC,YAAD,CAA7B;AACA,UAAM,IAAI,GAAG,eAAe,CAAC,EAAD,CAA5B;AACA,UAAM,eAAe,GAAG,UAAU,CAAC,KAAD,CAAlC;AACA,UAAM,WAAW,GAAG,QAAQ,CAAC,MAC3B,IAAI,CACF,IADE,EAEF,MAAM,CAAC,KAAK,CAAC,UAAN,CAAiB,KAAjB,IAA0B,CAA3B,CAFJ,EAGF,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAR,CAHD,CADsB,CAA5B;AAQA,UAAM,SAAS,GAAiB;AAC9B,MAAA,WAD8B;AAE9B,MAAA;AAF8B,KAAhC;AAKA,IAAA,OAAO,CAAC,WAAD,EAAc,SAAd,CAAP;AAEA,IAAA,aAAa,CAAC,MAAK;AACjB,UAAI,KAAK,CAAC,UAAN,CAAiB,KAAjB,KAA2B,SAA/B,EAA0C;AACxC,QAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,CAAzB;AACD;AACF,KAJY,CAAb;;AAMA,aAAS,aAAT,GAAsB;AACpB,MAAA,eAAe,CAAC,KAAhB,GAAwB,IAAxB;AACD;;AAED,aAAS,YAAT,GAAqB;AACnB,MAAA,eAAe,CAAC,KAAhB,GAAwB,KAAxB;AACD;;AAED,WAAO,MAAK;AACV,aAAO,CAAC,CACN,SADM,EAEN;AACE,QAAA,KAAK,EAAE,CACL,QADK,EAEL,KAAK,CAAC,IAAN,IAAc,IAFT,EAGL;AACE,yBAAe,KAAK,CAAC,UADvB;AAEE,WAAC,KAAK,CAAC,QAAP,GAAkB,KAAK,CAAC,QAAN,IAAkB,KAAK,CAAC;AAF5C,SAHK;AADT,OAFM,EAYN,CACE,iBAAiB,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,EAAqB,UAArB,EAAiC,YAAY,CAAC,KAA9C,CADnB,EAEE,KAAK,CAAC,UAAN,GACI,CAAC,CACC,KADD,EAEC;AACE,QAAA,KAAK,EAAE,CAAC,aAAD,EAAgB;AAAE,8BAAoB,eAAe,CAAC;AAAtC,SAAhB;AADT,OAFD,EAKC,CAAC,CACC,eADD,EAEC;AACE,QAAA,aADF;AAEE,QAAA,YAFF;AAGE,QAAA,IAAI,EAAE,UAAU,CAAC;AAHnB,OAFD,EAOC,MACE,OAAO,CAAC,KAAR,CAAc,OAAd,IACA,OAAO,CAAC,KAAR,CAAc,OAAd,GAAwB,GAAxB,CAA4B,CAAC,IAAD,EAAO,KAAP,KAAiB,UAAU,CAAC,IAAD,EAAO;AAAE,QAAA,GAAG,EAAE,IAAI,CAAC,KAAD,CAAJ,EAAa,KAAb,IAAsB;AAA7B,OAAP,CAAvD,CATH,CALF,CADL,GAkBI,CAAC,CAAC,iBAAD,EAAoB,OAAO,CAAC,KAAR,CAAc,OAAlC,CApBP,CAZM,CAAR;AAmCD,KApCD;AAqCD;;AA3E4B,CAAD,CAA9B","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport '../../sass/helpers/flex-helpers.sass';\nimport '../../sass/helpers/padding-margin-helpers.sass';\nimport './tabs.sass';\nimport { lookup } from 'fp-ts/Array';\nimport { pipe } from 'fp-ts/function';\nimport { map } from 'fp-ts/Option';\nimport { getUseModelPropsDefinition, Model, useModel } from '../../composables/model';\nimport { useThemePropsDefinition, useTheme } from '../../composables/theme';\nimport { AllColorsVariant } from '../../types/ColorVariants';\nimport BScroll from '../scroll/BScroll';\nimport {\n shallowReactive,\n PropType,\n h,\n shallowRef,\n provide,\n ExtractPropTypes,\n Ref,\n nextTick,\n defineComponent,\n VNode,\n onBeforeMount,\n computed,\n SetupContext,\n TransitionGroup,\n cloneVNode,\n withDirectives,\n vShow,\n ComponentOptions\n} from 'vue';\n\nimport { BTabItemProps, TabInjection, TABS_SYMBOL } from './shared';\n\nimport { TabsThemeMap } from './theme';\n\nexport type TabsPosition = 'is-centered' | 'is-right' | '';\n\nexport type TabsType = 'is-boxed' | 'is-toggle' | 'is-toggle-rounded' | '';\n\nexport type TabsSize = 'is-small' | 'is-medium' | 'is-large' | '';\n\ntype TabTransition = 'slide-next' | 'slide-prev';\n\nexport const BTabsPropsDefinition = {\n ...getUseModelPropsDefinition<number>(),\n ...useThemePropsDefinition(TabsThemeMap),\n isExpanded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n type: {\n type: String as PropType<TabsType>,\n default: '' as const\n },\n size: {\n type: String as PropType<TabsSize>,\n default: '' as const\n },\n position: {\n type: String as PropType<TabsPosition>,\n default: '' as const\n },\n label: {\n type: String as PropType<string>\n },\n variant: {\n type: String as PropType<AllColorsVariant>,\n default: '' as const\n },\n isAnimated: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n isScrollable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isVertical: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n};\n\nexport type BTabsProps = ExtractPropTypes<typeof BTabsPropsDefinition>;\n\nfunction useOnTabItemClick(tab: BTabItemProps, index: number, model: Model<number>, transition: Ref<TabTransition>) {\n return () => {\n const val = model.modelValue.value || 0;\n if (val !== index) {\n transition.value = index < val ? 'slide-next' : 'slide-prev';\n nextTick(() => {\n model.modelValue.value = index;\n });\n }\n };\n}\n\nfunction useGenerateNavItem(props: BTabsProps, model: Model<number>, transition: Ref<TabTransition>) {\n return function generateNavItem(tab: BTabItemProps, index: number): VNode {\n return withDirectives(\n h(\n 'li',\n {\n key: tab.label,\n class: [\n {\n 'is-active': index === model.modelValue.value,\n 'is-disabled': tab.isDisabled\n }\n ]\n },\n [\n h(\n 'a',\n { onClick: useOnTabItemClick(tab, index, model, transition) },\n tab.icon\n ? [\n h(tab.icon as ComponentOptions, {\n size: props.size\n }),\n tab.label\n ]\n : tab.label\n )\n ]\n ),\n [[vShow, tab.isVisible]]\n );\n };\n}\n\nfunction generateNavLabel(props: BTabsProps): VNode {\n return h(\n 'label',\n {\n class: ['label is-marginless align-self-center', props.size]\n },\n props.label\n );\n}\n\nfunction generateNavItems(\n props: BTabsProps,\n tabs: BTabItemProps[],\n model: Model<number>,\n transition: Ref<TabTransition>\n) {\n return h('ul', tabs.map(useGenerateNavItem(props, model, transition)));\n}\n\nfunction generateNavHeaderContent(\n props: BTabsProps,\n tabs: BTabItemProps[],\n model: Model<number>,\n transition: Ref<TabTransition>,\n themeClasses: string[]\n): VNode {\n return h(\n 'nav',\n {\n class: [\n 'tabs',\n props.type,\n props.size,\n props.position,\n {\n 'is-fullwidth': !!props.isExpanded || !!props.isScrollable,\n 'is-toggle-rounded is-toggle': props.type === 'is-toggle-rounded'\n }\n ].concat(props.variant === '' ? themeClasses : [props.variant])\n },\n props.label\n ? [generateNavLabel(props), generateNavItems(props, tabs, model, transition)]\n : [generateNavItems(props, tabs, model, transition)]\n );\n}\n\nfunction generateNavHeader(\n props: BTabsProps,\n tabs: BTabItemProps[],\n model: Model<number>,\n transition: Ref<TabTransition>,\n themeClasses: string[]\n): VNode {\n return props.isScrollable\n ? h(BScroll, { class: props.isVertical ? 'is-fullheight' : 'is-fullwidth' }, () => [\n generateNavHeaderContent(props, tabs, model, transition, themeClasses)\n ])\n : generateNavHeaderContent(props, tabs, model, transition, themeClasses);\n}\n\nfunction BStaticTabContent(_: unknown, { slots }: SetupContext) {\n return h('div', { class: 'tab-content' }, slots.default && slots.default());\n}\n\nexport default defineComponent({\n name: 'b-tabs',\n props: BTabsPropsDefinition,\n setup(props, context) {\n const { themeClasses } = useTheme(props);\n const model = useModel(props);\n const transition = shallowRef('slide-next' as 'slide-next' | 'slide-prev');\n const tabs = shallowReactive([] as BTabItemProps[]);\n const isTransitioning = shallowRef(false);\n const activeLabel = computed(() =>\n pipe(\n tabs,\n lookup(model.modelValue.value || 0),\n map(p => p.label)\n )\n );\n\n const injection: TabInjection = {\n activeLabel,\n tabs\n };\n\n provide(TABS_SYMBOL, injection);\n\n onBeforeMount(() => {\n if (model.modelValue.value === undefined) {\n model.modelValue.value = 0;\n }\n });\n\n function onBeforeEnter() {\n isTransitioning.value = true;\n }\n\n function onAfterLeave() {\n isTransitioning.value = false;\n }\n\n return () => {\n return h(\n 'article',\n {\n class: [\n 'b-tabs',\n props.size || null,\n {\n 'is-vertical': props.isVertical,\n [props.position]: props.position && props.isVertical\n }\n ]\n },\n [\n generateNavHeader(props, tabs, model, transition, themeClasses.value),\n props.isAnimated\n ? h(\n 'div',\n {\n class: ['tab-content', { 'is-transitioning': isTransitioning.value }]\n },\n h(\n TransitionGroup,\n {\n onBeforeEnter,\n onAfterLeave,\n name: transition.value\n },\n () =>\n context.slots.default &&\n context.slots.default().map((node, index) => cloneVNode(node, { key: tabs[index]?.label ?? index }))\n )\n )\n : h(BStaticTabContent, context.slots.default)\n ]\n );\n };\n }\n});\n"],"sourceRoot":"","file":"BTabs.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/index.d.ts b/node_modules/buetify/lib/components/tabs/index.d.ts new file mode 100755 index 0000000..032893e --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/index.d.ts @@ -0,0 +1,4 @@ +import BTabItem from './BTabItem'; +import BTabs from './BTabs'; +import { TabsThemeMap } from './theme'; +export { BTabItem, BTabs, TabsThemeMap }; diff --git a/node_modules/buetify/lib/components/tabs/index.js b/node_modules/buetify/lib/components/tabs/index.js new file mode 100755 index 0000000..3ea8d16 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/index.js @@ -0,0 +1,5 @@ +import BTabItem from './BTabItem'; +import BTabs from './BTabs'; +import { TabsThemeMap } from './theme'; +export { BTabItem, BTabs, TabsThemeMap }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/index.js.map b/node_modules/buetify/lib/components/tabs/index.js.map new file mode 100755 index 0000000..56e7d24 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AACA,OAAO,KAAP,MAAkB,SAAlB;AACA,SAAS,YAAT,QAA6B,SAA7B;AAEA,SAAS,QAAT,EAAmB,KAAnB,EAA0B,YAA1B","sourcesContent":["import BTabItem from './BTabItem';\nimport BTabs from './BTabs';\nimport { TabsThemeMap } from './theme';\n\nexport { BTabItem, BTabs, TabsThemeMap };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/shared.d.ts b/node_modules/buetify/lib/components/tabs/shared.d.ts new file mode 100755 index 0000000..874325b --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/shared.d.ts @@ -0,0 +1,27 @@ +import { Option } from 'fp-ts/lib/Option'; +import { PropType, ExtractPropTypes, Component, Ref } from 'vue'; +export declare const TABS_SYMBOL: unique symbol; +export declare const TAB_ITEM_NAME = "b-tab-item"; +export declare const BTabItemPropsDefinition: { + label: { + type: PropType<string>; + required: true; + }; + icon: { + type: PropType<Component<any, any, any, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions>>; + }; + isDisabled: { + type: PropType<boolean>; + default: boolean; + }; + isVisible: { + type: PropType<boolean>; + default: boolean; + }; +}; +export declare type BTabItemProps = ExtractPropTypes<typeof BTabItemPropsDefinition>; +export interface TabInjection { + activeLabel: Ref<Option<string>>; + tabs: BTabItemProps[]; +} +export declare const DEFAULT_TAB_INJECTION: TabInjection; diff --git a/node_modules/buetify/lib/components/tabs/shared.js b/node_modules/buetify/lib/components/tabs/shared.js new file mode 100755 index 0000000..5569749 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/shared.js @@ -0,0 +1,26 @@ +import { none } from 'fp-ts/lib/Option'; +import { shallowRef } from 'vue'; +export const TABS_SYMBOL = Symbol('tabs'); +export const TAB_ITEM_NAME = 'b-tab-item'; +export const BTabItemPropsDefinition = { + label: { + type: String, + required: true + }, + icon: { + type: [Function, Object] + }, + isDisabled: { + type: Boolean, + default: false + }, + isVisible: { + type: Boolean, + default: true + } +}; +export const DEFAULT_TAB_INJECTION = { + activeLabel: shallowRef(none), + tabs: [] +}; +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/shared.js.map b/node_modules/buetify/lib/components/tabs/shared.js.map new file mode 100755 index 0000000..69f5838 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/shared.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tabs/shared.ts"],"names":[],"mappings":"AAAA,SAAS,IAAT,QAA6B,kBAA7B;AACA,SAAqD,UAArD,QAAuE,KAAvE;AAEA,OAAO,MAAM,WAAW,GAAG,MAAM,CAAC,MAAD,CAA1B;AAEP,OAAO,MAAM,aAAa,GAAG,YAAtB;AAEP,OAAO,MAAM,uBAAuB,GAAG;AACrC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,QAAQ,EAAE;AAFL,GAD8B;AAKrC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,CAAC,QAAD,EAAW,MAAX;AADF,GAL+B;AAQrC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GARyB;AAYrC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA;AAZ0B,CAAhC;AAyBP,OAAO,MAAM,qBAAqB,GAAiB;AACjD,EAAA,WAAW,EAAE,UAAU,CAAC,IAAD,CAD0B;AAEjD,EAAA,IAAI,EAAE;AAF2C,CAA5C","sourcesContent":["import { none, Option } from 'fp-ts/lib/Option';\nimport { PropType, ExtractPropTypes, Component, Ref, shallowRef } from 'vue';\n\nexport const TABS_SYMBOL = Symbol('tabs');\n\nexport const TAB_ITEM_NAME = 'b-tab-item';\n\nexport const BTabItemPropsDefinition = {\n label: {\n type: String as PropType<string>,\n required: true as const\n },\n icon: {\n type: [Function, Object] as PropType<Component>\n },\n isDisabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isVisible: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n};\n\nexport type BTabItemProps = ExtractPropTypes<typeof BTabItemPropsDefinition>;\n\nexport interface TabInjection {\n activeLabel: Ref<Option<string>>;\n tabs: BTabItemProps[];\n}\n\nexport const DEFAULT_TAB_INJECTION: TabInjection = {\n activeLabel: shallowRef(none),\n tabs: []\n};\n"],"sourceRoot":"","file":"shared.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/theme.d.ts b/node_modules/buetify/lib/components/tabs/theme.d.ts new file mode 100755 index 0000000..1d768fb --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/theme.d.ts @@ -0,0 +1,4 @@ +export declare const TabsThemeMap: { + dark: string; + light: string; +}; diff --git a/node_modules/buetify/lib/components/tabs/theme.js b/node_modules/buetify/lib/components/tabs/theme.js new file mode 100755 index 0000000..7311eae --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/theme.js @@ -0,0 +1,5 @@ +export const TabsThemeMap = { + dark: 'is-link', + light: '' +}; +//# sourceMappingURL=theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tabs/theme.js.map b/node_modules/buetify/lib/components/tabs/theme.js.map new file mode 100755 index 0000000..e0dbfe7 --- /dev/null +++ b/node_modules/buetify/lib/components/tabs/theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tabs/theme.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,YAAY,GAAG;AAC1B,EAAA,IAAI,EAAE,SADoB;AAE1B,EAAA,KAAK,EAAE;AAFmB,CAArB","sourcesContent":["export const TabsThemeMap = {\n dark: 'is-link',\n light: ''\n};\n"],"sourceRoot":"","file":"theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tag/BTag.d.ts b/node_modules/buetify/lib/components/tag/BTag.d.ts new file mode 100755 index 0000000..0e4ec2d --- /dev/null +++ b/node_modules/buetify/lib/components/tag/BTag.d.ts @@ -0,0 +1,76 @@ +import './tag.sass'; +import { FunctionN } from 'fp-ts/lib/function'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { PropType } from 'vue'; +declare const _default: import("vue").DefineComponent<{ + tag: { + type: StringConstructor; + default: string; + }; + isAttached: { + type: BooleanConstructor; + default: boolean; + }; + isClosable: { + type: BooleanConstructor; + default: boolean; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + closeVariant: { + type: PropType<ColorVariant>; + }; + size: { + type: PropType<SizeVariant>; + default: ""; + }; + isRounded: { + type: BooleanConstructor; + default: boolean; + }; + isDisabled: { + type: BooleanConstructor; + default: boolean; + }; + hasEllipsis: { + type: BooleanConstructor; + default: boolean; + }; + isTabable: { + type: BooleanConstructor; + default: boolean; + }; + onClose: { + type: PropType<FunctionN<[MouseEvent], void>>; + required: false; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + tag: string; + variant: ColorVariant; + size: SizeVariant; + isRounded: boolean; + isDisabled: boolean; + isClosable: boolean; + isAttached: boolean; + hasEllipsis: boolean; + isTabable: boolean; +} & { + closeVariant?: "" | "is-orange" | "is-primary" | "is-info" | "is-link" | "is-success" | "is-warning" | "is-danger" | undefined; + onClose?: FunctionN<[MouseEvent], void> | undefined; +}>, { + tag: string; + variant: ColorVariant; + size: SizeVariant; + isRounded: boolean; + isDisabled: boolean; + isClosable: boolean; + isAttached: boolean; + hasEllipsis: boolean; + isTabable: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/tag/BTag.js b/node_modules/buetify/lib/components/tag/BTag.js new file mode 100755 index 0000000..c241df0 --- /dev/null +++ b/node_modules/buetify/lib/components/tag/BTag.js @@ -0,0 +1,100 @@ +import "../../../src/components/tag/tag.sass"; +import { h, defineComponent } from 'vue'; +export default defineComponent({ + name: 'b-tag', + props: { + tag: { + type: String, + default: 'span' + }, + isAttached: { + type: Boolean, + default: false + }, + isClosable: { + type: Boolean, + default: false + }, + variant: { + type: String, + default: '' + }, + closeVariant: { + type: String + }, + size: { + type: String, + default: '' + }, + isRounded: { + type: Boolean, + default: false + }, + isDisabled: { + type: Boolean, + default: false + }, + hasEllipsis: { + type: Boolean, + default: false + }, + isTabable: { + type: Boolean, + default: false + }, + onClose: { + type: Function, + required: false + } + }, + + setup(props, { + slots + }) { + return () => { + if (props.isAttached && props.isClosable) { + return h(props.tag, { + class: 'tags has-addons' + }, [h('span', { + class: ['tag', props.variant, props.size, { + 'is-rounded': props.isRounded + }] + }, [h('span', { + class: { + 'has-ellipsis': props.hasEllipsis + } + }, slots.default && slots.default())]), h('button', { + class: ['tag is-delete', props.closeVariant, props.size, { + 'is-rounded': props.isRounded + }], + tabindex: props.isTabable ? 0 : null, + disabled: props.isDisabled, + onClick: props.isDisabled ? undefined : props.onClose + })]); + } else { + const nodes = [h('span', { + class: { + 'has-ellipsis': props.hasEllipsis + } + }, slots.default && slots.default())]; + + if (props.isClosable) { + nodes.push(h('button', { + class: ['delete is-small', props.closeVariant], + tabindex: props.isTabable ? 0 : null, + disabled: props.isDisabled, + onClick: props.isDisabled ? undefined : props.onClose + })); + } + + return h(props.tag, { + class: ['tag', props.variant, props.size, { + 'is-rounded': props.isRounded + }] + }, nodes); + } + }; + } + +}); +//# sourceMappingURL=BTag.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tag/BTag.js.map b/node_modules/buetify/lib/components/tag/BTag.js.map new file mode 100755 index 0000000..2f69104 --- /dev/null +++ b/node_modules/buetify/lib/components/tag/BTag.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tag/BTag.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAP;AAIA,SAAS,CAAT,EAAsB,eAAtB,QAA6C,KAA7C;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,OADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN,KADA;AAKL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KALP;AASL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KATP;AAaL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAbJ;AAiBL,IAAA,YAAY,EAAE;AACZ,MAAA,IAAI,EAAE;AADM,KAjBT;AAoBL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KApBD;AAwBL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KAxBN;AA4BL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KA5BP;AAgCL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,OADK;AAEX,MAAA,OAAO,EAAE;AAFE,KAhCR;AAoCL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KApCN;AAwCL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,QADC;AAEP,MAAA,QAAQ,EAAE;AAFH;AAxCJ,GAFsB;;AA+C7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MAAK;AACV,UAAI,KAAK,CAAC,UAAN,IAAoB,KAAK,CAAC,UAA9B,EAA0C;AACxC,eAAO,CAAC,CACN,KAAK,CAAC,GADA,EAEN;AACE,UAAA,KAAK,EAAE;AADT,SAFM,EAKN,CACE,CAAC,CACC,MADD,EAEC;AACE,UAAA,KAAK,EAAE,CAAC,KAAD,EAAQ,KAAK,CAAC,OAAd,EAAuB,KAAK,CAAC,IAA7B,EAAmC;AAAE,0BAAc,KAAK,CAAC;AAAtB,WAAnC;AADT,SAFD,EAKC,CAAC,CAAC,CAAC,MAAD,EAAS;AAAE,UAAA,KAAK,EAAE;AAAE,4BAAgB,KAAK,CAAC;AAAxB;AAAT,SAAT,EAA2D,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAA5E,CAAF,CALD,CADH,EAQE,CAAC,CAAC,QAAD,EAAW;AACV,UAAA,KAAK,EAAE,CAAC,eAAD,EAAkB,KAAK,CAAC,YAAxB,EAAsC,KAAK,CAAC,IAA5C,EAAkD;AAAE,0BAAc,KAAK,CAAC;AAAtB,WAAlD,CADG;AAEV,UAAA,QAAQ,EAAE,KAAK,CAAC,SAAN,GAAkB,CAAlB,GAAsB,IAFtB;AAGV,UAAA,QAAQ,EAAE,KAAK,CAAC,UAHN;AAIV,UAAA,OAAO,EAAE,KAAK,CAAC,UAAN,GAAmB,SAAnB,GAA+B,KAAK,CAAC;AAJpC,SAAX,CARH,CALM,CAAR;AAqBD,OAtBD,MAsBO;AACL,cAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAD,EAAS;AAAE,UAAA,KAAK,EAAE;AAAE,4BAAgB,KAAK,CAAC;AAAxB;AAAT,SAAT,EAA2D,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAA5E,CAAF,CAAd;;AACA,YAAI,KAAK,CAAC,UAAV,EAAsB;AACpB,UAAA,KAAK,CAAC,IAAN,CACE,CAAC,CAAC,QAAD,EAAW;AACV,YAAA,KAAK,EAAE,CAAC,iBAAD,EAAoB,KAAK,CAAC,YAA1B,CADG;AAEV,YAAA,QAAQ,EAAE,KAAK,CAAC,SAAN,GAAkB,CAAlB,GAAsB,IAFtB;AAGV,YAAA,QAAQ,EAAE,KAAK,CAAC,UAHN;AAIV,YAAA,OAAO,EAAE,KAAK,CAAC,UAAN,GAAmB,SAAnB,GAA+B,KAAK,CAAC;AAJpC,WAAX,CADH;AAQD;;AACD,eAAO,CAAC,CACN,KAAK,CAAC,GADA,EAEN;AACE,UAAA,KAAK,EAAE,CAAC,KAAD,EAAQ,KAAK,CAAC,OAAd,EAAuB,KAAK,CAAC,IAA7B,EAAmC;AAAE,0BAAc,KAAK,CAAC;AAAtB,WAAnC;AADT,SAFM,EAKN,KALM,CAAR;AAOD;AACF,KA3CD;AA4CD;;AA5F4B,CAAD,CAA9B","sourcesContent":["import './tag.sass';\nimport { FunctionN } from 'fp-ts/lib/function';\nimport { ColorVariant } from '../../types/ColorVariants';\nimport { SizeVariant } from '../../types/SizeVariants';\nimport { h, PropType, defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'b-tag',\n props: {\n tag: {\n type: String,\n default: 'span'\n },\n isAttached: {\n type: Boolean,\n default: false\n },\n isClosable: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as const\n },\n closeVariant: {\n type: String as PropType<ColorVariant>\n },\n size: {\n type: String as PropType<SizeVariant>,\n default: '' as const\n },\n isRounded: {\n type: Boolean,\n default: false\n },\n isDisabled: {\n type: Boolean,\n default: false\n },\n hasEllipsis: {\n type: Boolean,\n default: false\n },\n isTabable: {\n type: Boolean,\n default: false\n },\n onClose: {\n type: Function as PropType<FunctionN<[MouseEvent], void>>,\n required: false\n }\n },\n setup(props, { slots }) {\n return () => {\n if (props.isAttached && props.isClosable) {\n return h(\n props.tag,\n {\n class: 'tags has-addons'\n },\n [\n h(\n 'span',\n {\n class: ['tag', props.variant, props.size, { 'is-rounded': props.isRounded }]\n },\n [h('span', { class: { 'has-ellipsis': props.hasEllipsis } }, slots.default && slots.default())]\n ),\n h('button', {\n class: ['tag is-delete', props.closeVariant, props.size, { 'is-rounded': props.isRounded }],\n tabindex: props.isTabable ? 0 : null,\n disabled: props.isDisabled,\n onClick: props.isDisabled ? undefined : props.onClose\n })\n ]\n );\n } else {\n const nodes = [h('span', { class: { 'has-ellipsis': props.hasEllipsis } }, slots.default && slots.default())];\n if (props.isClosable) {\n nodes.push(\n h('button', {\n class: ['delete is-small', props.closeVariant],\n tabindex: props.isTabable ? 0 : null,\n disabled: props.isDisabled,\n onClick: props.isDisabled ? undefined : props.onClose\n })\n );\n }\n return h(\n props.tag,\n {\n class: ['tag', props.variant, props.size, { 'is-rounded': props.isRounded }]\n },\n nodes\n );\n }\n };\n }\n});\n"],"sourceRoot":"","file":"BTag.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tag/BTagList.d.ts b/node_modules/buetify/lib/components/tag/BTagList.d.ts new file mode 100755 index 0000000..678825f --- /dev/null +++ b/node_modules/buetify/lib/components/tag/BTagList.d.ts @@ -0,0 +1,20 @@ +import './tag.sass'; +declare const _default: import("vue").DefineComponent<{ + isAttached: { + type: BooleanConstructor; + default: boolean; + }; + tag: { + type: StringConstructor; + default: string; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + tag: string; + isAttached: boolean; +} & {}>, { + tag: string; + isAttached: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/tag/BTagList.js b/node_modules/buetify/lib/components/tag/BTagList.js new file mode 100755 index 0000000..105a5b6 --- /dev/null +++ b/node_modules/buetify/lib/components/tag/BTagList.js @@ -0,0 +1,27 @@ +import "../../../src/components/tag/tag.sass"; +import { h, defineComponent } from 'vue'; +export default defineComponent({ + name: 'b-tag-list', + props: { + isAttached: { + type: Boolean, + default: false + }, + tag: { + type: String, + default: 'div' + } + }, + + setup(props, { + slots + }) { + return () => h(props.tag, { + class: ['tags', { + 'has-addons': props.isAttached + }] + }, slots.default && slots.default()); + } + +}); +//# sourceMappingURL=BTagList.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tag/BTagList.js.map b/node_modules/buetify/lib/components/tag/BTagList.js.map new file mode 100755 index 0000000..74eaba3 --- /dev/null +++ b/node_modules/buetify/lib/components/tag/BTagList.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tag/BTagList.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAP;AACA,SAAS,CAAT,EAAY,eAAZ,QAAmC,KAAnC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,YADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KADP;AAKL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN;AALA,GAFsB;;AAY7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MACL,CAAC,CAAC,KAAK,CAAC,GAAP,EAAY;AAAE,MAAA,KAAK,EAAE,CAAC,MAAD,EAAS;AAAE,sBAAc,KAAK,CAAC;AAAtB,OAAT;AAAT,KAAZ,EAAqE,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAAtF,CADH;AAED;;AAf4B,CAAD,CAA9B","sourcesContent":["import './tag.sass';\nimport { h, defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'b-tag-list',\n props: {\n isAttached: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n }\n },\n setup(props, { slots }) {\n return () =>\n h(props.tag, { class: ['tags', { 'has-addons': props.isAttached }] }, slots.default && slots.default());\n }\n});\n"],"sourceRoot":"","file":"BTagList.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tag/index.d.ts b/node_modules/buetify/lib/components/tag/index.d.ts new file mode 100755 index 0000000..51516a2 --- /dev/null +++ b/node_modules/buetify/lib/components/tag/index.d.ts @@ -0,0 +1,3 @@ +import BTag from './BTag'; +import BTagList from './BTagList'; +export { BTag, BTagList }; diff --git a/node_modules/buetify/lib/components/tag/index.js b/node_modules/buetify/lib/components/tag/index.js new file mode 100755 index 0000000..da083fa --- /dev/null +++ b/node_modules/buetify/lib/components/tag/index.js @@ -0,0 +1,4 @@ +import BTag from './BTag'; +import BTagList from './BTagList'; +export { BTag, BTagList }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tag/index.js.map b/node_modules/buetify/lib/components/tag/index.js.map new file mode 100755 index 0000000..4e984b5 --- /dev/null +++ b/node_modules/buetify/lib/components/tag/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAP,MAAiB,QAAjB;AACA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,IAAT,EAAe,QAAf","sourcesContent":["import BTag from './BTag';\nimport BTagList from './BTagList';\n\nexport { BTag, BTagList };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/themeToggle/BThemeToggle.d.ts b/node_modules/buetify/lib/components/themeToggle/BThemeToggle.d.ts new file mode 100755 index 0000000..fdc3429 --- /dev/null +++ b/node_modules/buetify/lib/components/themeToggle/BThemeToggle.d.ts @@ -0,0 +1,4 @@ +declare const _default: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & {}>, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/themeToggle/BThemeToggle.js b/node_modules/buetify/lib/components/themeToggle/BThemeToggle.js new file mode 100755 index 0000000..e2d2358 --- /dev/null +++ b/node_modules/buetify/lib/components/themeToggle/BThemeToggle.js @@ -0,0 +1,23 @@ +import { h, defineComponent } from 'vue'; +import { useTheme } from '../../composables/theme'; +import AdjustIcon from '../icons/adjust/AdjustIcon'; +import BTooltip from '../tooltip/BTooltip'; +export default defineComponent({ + name: 'b-theme-toggle', + + setup(_, { + slots + }) { + const { + toggleTheme + } = useTheme(); + return () => h('button', { + 'aria-label': 'toggle color theme', + onClick: toggleTheme + }, [h(BTooltip, { + label: 'Toggle color theme' + }, () => slots.default ? slots.default() : h(AdjustIcon))]); + } + +}); +//# sourceMappingURL=BThemeToggle.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/themeToggle/BThemeToggle.js.map b/node_modules/buetify/lib/components/themeToggle/BThemeToggle.js.map new file mode 100755 index 0000000..82a9d7a --- /dev/null +++ b/node_modules/buetify/lib/components/themeToggle/BThemeToggle.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/themeToggle/BThemeToggle.ts"],"names":[],"mappings":"AAAA,SAAS,CAAT,EAAY,eAAZ,QAAmC,KAAnC;AACA,SAAS,QAAT,QAAyB,yBAAzB;AACA,OAAO,UAAP,MAAuB,4BAAvB;AACA,OAAO,QAAP,MAAqB,qBAArB;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,gBADuB;;AAE7B,EAAA,KAAK,CAAC,CAAD,EAAI;AAAE,IAAA;AAAF,GAAJ,EAAa;AAChB,UAAM;AAAE,MAAA;AAAF,QAAkB,QAAQ,EAAhC;AACA,WAAO,MACL,CAAC,CAAC,QAAD,EAAW;AAAE,oBAAc,oBAAhB;AAAsC,MAAA,OAAO,EAAE;AAA/C,KAAX,EAAyE,CACxE,CAAC,CACC,QADD,EAEC;AACE,MAAA,KAAK,EAAE;AADT,KAFD,EAKC,MAAO,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,CAAC,CAAC,UAAD,CAL3C,CADuE,CAAzE,CADH;AAUD;;AAd4B,CAAD,CAA9B","sourcesContent":["import { h, defineComponent } from 'vue';\nimport { useTheme } from '../../composables/theme';\nimport AdjustIcon from '../icons/adjust/AdjustIcon';\nimport BTooltip from '../tooltip/BTooltip';\n\nexport default defineComponent({\n name: 'b-theme-toggle',\n setup(_, { slots }) {\n const { toggleTheme } = useTheme();\n return () =>\n h('button', { 'aria-label': 'toggle color theme', onClick: toggleTheme }, [\n h(\n BTooltip,\n {\n label: 'Toggle color theme'\n },\n () => (slots.default ? slots.default() : h(AdjustIcon))\n )\n ]);\n }\n});\n"],"sourceRoot":"","file":"BThemeToggle.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/themeToggle/index.d.ts b/node_modules/buetify/lib/components/themeToggle/index.d.ts new file mode 100755 index 0000000..9aabfa4 --- /dev/null +++ b/node_modules/buetify/lib/components/themeToggle/index.d.ts @@ -0,0 +1,3 @@ +import BThemeToggle from './BThemeToggle'; +export { BThemeToggle }; +export default BThemeToggle; diff --git a/node_modules/buetify/lib/components/themeToggle/index.js b/node_modules/buetify/lib/components/themeToggle/index.js new file mode 100755 index 0000000..ce846f5 --- /dev/null +++ b/node_modules/buetify/lib/components/themeToggle/index.js @@ -0,0 +1,4 @@ +import BThemeToggle from './BThemeToggle'; +export { BThemeToggle }; +export default BThemeToggle; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/themeToggle/index.js.map b/node_modules/buetify/lib/components/themeToggle/index.js.map new file mode 100755 index 0000000..d5a2f8c --- /dev/null +++ b/node_modules/buetify/lib/components/themeToggle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/themeToggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAP,MAAyB,gBAAzB;AAEA,SAAS,YAAT;AAEA,eAAe,YAAf","sourcesContent":["import BThemeToggle from './BThemeToggle';\n\nexport { BThemeToggle };\n\nexport default BThemeToggle;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/title/BSubtitle.d.ts b/node_modules/buetify/lib/components/title/BSubtitle.d.ts new file mode 100755 index 0000000..45d60d3 --- /dev/null +++ b/node_modules/buetify/lib/components/title/BSubtitle.d.ts @@ -0,0 +1,5 @@ +import './title.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/title/BSubtitle.js b/node_modules/buetify/lib/components/title/BSubtitle.js new file mode 100755 index 0000000..ef04d5f --- /dev/null +++ b/node_modules/buetify/lib/components/title/BSubtitle.js @@ -0,0 +1,4 @@ +import "../../../src/components/title/title.sass"; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('subtitle', 'h2'); +//# sourceMappingURL=BSubtitle.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/title/BSubtitle.js.map b/node_modules/buetify/lib/components/title/BSubtitle.js.map new file mode 100755 index 0000000..9fd11db --- /dev/null +++ b/node_modules/buetify/lib/components/title/BSubtitle.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/title/BSubtitle.ts"],"names":[],"mappings":"AAAA,OAAO,0CAAP;AACA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,UAAD,EAAa,IAAb,CAA3C","sourcesContent":["import './title.sass';\nimport { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('subtitle', 'h2');\n"],"sourceRoot":"","file":"BSubtitle.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/title/BTitle.d.ts b/node_modules/buetify/lib/components/title/BTitle.d.ts new file mode 100755 index 0000000..45d60d3 --- /dev/null +++ b/node_modules/buetify/lib/components/title/BTitle.d.ts @@ -0,0 +1,5 @@ +import './title.sass'; +declare const _default: import("vue").FunctionalComponent<{ + tag?: string | undefined; +}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/components/title/BTitle.js b/node_modules/buetify/lib/components/title/BTitle.js new file mode 100755 index 0000000..14f6253 --- /dev/null +++ b/node_modules/buetify/lib/components/title/BTitle.js @@ -0,0 +1,4 @@ +import "../../../src/components/title/title.sass"; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; +export default getSimpleFunctionalComponent('title', 'h1'); +//# sourceMappingURL=BTitle.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/title/BTitle.js.map b/node_modules/buetify/lib/components/title/BTitle.js.map new file mode 100755 index 0000000..8ea9eb3 --- /dev/null +++ b/node_modules/buetify/lib/components/title/BTitle.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/title/BTitle.ts"],"names":[],"mappings":"AAAA,OAAO,0CAAP;AACA,SAAS,4BAAT,QAA6C,0CAA7C;AAEA,eAAe,4BAA4B,CAAC,OAAD,EAAU,IAAV,CAA3C","sourcesContent":["import './title.sass';\nimport { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent';\n\nexport default getSimpleFunctionalComponent('title', 'h1');\n"],"sourceRoot":"","file":"BTitle.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/title/index.d.ts b/node_modules/buetify/lib/components/title/index.d.ts new file mode 100755 index 0000000..ba6663f --- /dev/null +++ b/node_modules/buetify/lib/components/title/index.d.ts @@ -0,0 +1,3 @@ +import BSubtitle from './BSubtitle'; +import BTitle from './BTitle'; +export { BSubtitle, BTitle }; diff --git a/node_modules/buetify/lib/components/title/index.js b/node_modules/buetify/lib/components/title/index.js new file mode 100755 index 0000000..b972462 --- /dev/null +++ b/node_modules/buetify/lib/components/title/index.js @@ -0,0 +1,4 @@ +import BSubtitle from './BSubtitle'; +import BTitle from './BTitle'; +export { BSubtitle, BTitle }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/title/index.js.map b/node_modules/buetify/lib/components/title/index.js.map new file mode 100755 index 0000000..99be018 --- /dev/null +++ b/node_modules/buetify/lib/components/title/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/title/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAP,MAAsB,aAAtB;AACA,OAAO,MAAP,MAAmB,UAAnB;AAEA,SAAS,SAAT,EAAoB,MAApB","sourcesContent":["import BSubtitle from './BSubtitle';\nimport BTitle from './BTitle';\n\nexport { BSubtitle, BTitle };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tooltip/BTooltip.d.ts b/node_modules/buetify/lib/components/tooltip/BTooltip.d.ts new file mode 100755 index 0000000..cd1be40 --- /dev/null +++ b/node_modules/buetify/lib/components/tooltip/BTooltip.d.ts @@ -0,0 +1,77 @@ +import '../../sass/helpers/animations.sass'; +import './tooltip.sass'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { PropType } from 'vue'; +export declare type TooltipPosition = 'is-top' | 'is-bottom' | 'is-left' | 'is-right'; +declare const _default: import("vue").DefineComponent<{ + isActive: { + type: PropType<boolean>; + }; + variant: { + type: PropType<ColorVariant>; + default: "is-primary"; + }; + label: { + type: PropType<string>; + required: true; + }; + position: { + type: PropType<TooltipPosition>; + default: "is-top"; + }; + isAlways: { + type: PropType<boolean>; + default: boolean; + }; + isAnimated: { + type: PropType<boolean>; + default: boolean; + }; + isSquare: { + type: PropType<boolean>; + default: boolean; + }; + isDashed: { + type: PropType<boolean>; + default: boolean; + }; + isMultiline: { + type: PropType<boolean>; + default: boolean; + }; + size: { + type: PropType<SizeVariant>; + default: "is-medium"; + }; + tag: { + type: PropType<string>; + default: string; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + tag: string; + variant: ColorVariant; + size: SizeVariant; + position: TooltipPosition; + label: string; + isAnimated: boolean; + isAlways: boolean; + isSquare: boolean; + isDashed: boolean; + isMultiline: boolean; +} & { + isActive?: boolean | undefined; +}>, { + tag: string; + variant: ColorVariant; + size: SizeVariant; + position: TooltipPosition; + isAnimated: boolean; + isAlways: boolean; + isSquare: boolean; + isDashed: boolean; + isMultiline: boolean; +}>; +export default _default; diff --git a/node_modules/buetify/lib/components/tooltip/BTooltip.js b/node_modules/buetify/lib/components/tooltip/BTooltip.js new file mode 100755 index 0000000..b9c53de --- /dev/null +++ b/node_modules/buetify/lib/components/tooltip/BTooltip.js @@ -0,0 +1,69 @@ +import "../../../src/sass/helpers/animations.sass"; +import "../../../src/components/tooltip/tooltip.sass"; +import { h, defineComponent } from 'vue'; +export default defineComponent({ + name: 'b-tooltip', + props: { + isActive: { + type: Boolean + }, + variant: { + type: String, + default: 'is-primary' + }, + label: { + type: String, + required: true + }, + position: { + type: String, + default: 'is-top' + }, + isAlways: { + type: Boolean, + default: false + }, + isAnimated: { + type: Boolean, + default: true + }, + isSquare: { + type: Boolean, + default: false + }, + isDashed: { + type: Boolean, + default: false + }, + isMultiline: { + type: Boolean, + default: false + }, + size: { + type: String, + default: 'is-medium' + }, + tag: { + type: String, + default: 'span' + } + }, + + setup(props, { + slots + }) { + return () => h(props.tag, { + class: ['b-tooltip', props.variant, props.size, props.position, { + 'b-tooltip': props.isActive, + 'is-always': props.isAlways || props.isActive, + 'is-animated': props.isAnimated, + 'is-square': props.isSquare, + 'is-dashed': props.isDashed, + 'is-multiline': props.isMultiline + }], + 'data-label': props.label + }, slots.default ? slots.default() : undefined); + } + +}); +//# sourceMappingURL=BTooltip.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tooltip/BTooltip.js.map b/node_modules/buetify/lib/components/tooltip/BTooltip.js.map new file mode 100755 index 0000000..5c1f748 --- /dev/null +++ b/node_modules/buetify/lib/components/tooltip/BTooltip.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tooltip/BTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AACA,OAAO,8CAAP;AAGA,SAAS,CAAT,EAAY,eAAZ,QAA6C,KAA7C;AAIA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,WADuB;AAE7B,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE;AADE,KADL;AAIL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAJJ;AAQL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,QAAQ,EAAE;AAFL,KARF;AAYL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,MADE;AAER,MAAA,OAAO,EAAE;AAFD,KAZL;AAgBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KAhBL;AAoBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KApBP;AAwBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KAxBL;AA4BL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KA5BL;AAgCL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,OADK;AAEX,MAAA,OAAO,EAAE;AAFE,KAhCR;AAoCL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KApCD;AAwCL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN;AAxCA,GAFsB;;AA+C7B,EAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,IAAA;AAAF,GAAR,EAAiB;AACpB,WAAO,MACL,CAAC,CACC,KAAK,CAAC,GADP,EAEC;AACE,MAAA,KAAK,EAAE,CACL,WADK,EAEL,KAAK,CAAC,OAFD,EAGL,KAAK,CAAC,IAHD,EAIL,KAAK,CAAC,QAJD,EAKL;AACE,qBAAa,KAAK,CAAC,QADrB;AAEE,qBAAa,KAAK,CAAC,QAAN,IAAkB,KAAK,CAAC,QAFvC;AAGE,uBAAe,KAAK,CAAC,UAHvB;AAIE,qBAAa,KAAK,CAAC,QAJrB;AAKE,qBAAa,KAAK,CAAC,QALrB;AAME,wBAAgB,KAAK,CAAC;AANxB,OALK,CADT;AAeE,oBAAc,KAAK,CAAC;AAftB,KAFD,EAmBC,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,SAnBnC,CADH;AAsBD;;AAtE4B,CAAD,CAA9B","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport './tooltip.sass';\nimport { ColorVariant } from '../../types/ColorVariants';\nimport { SizeVariant } from '../../types/SizeVariants';\nimport { h, defineComponent, PropType } from 'vue';\n\nexport type TooltipPosition = 'is-top' | 'is-bottom' | 'is-left' | 'is-right';\n\nexport default defineComponent({\n name: 'b-tooltip',\n props: {\n isActive: {\n type: Boolean as PropType<boolean>\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: 'is-primary' as const\n },\n label: {\n type: String as PropType<string>,\n required: true\n },\n position: {\n type: String as PropType<TooltipPosition>,\n default: 'is-top' as const\n },\n isAlways: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isAnimated: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n isSquare: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isDashed: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isMultiline: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n size: {\n type: String as PropType<SizeVariant>,\n default: 'is-medium' as const\n },\n tag: {\n type: String as PropType<string>,\n default: 'span'\n }\n },\n setup(props, { slots }) {\n return () =>\n h(\n props.tag,\n {\n class: [\n 'b-tooltip',\n props.variant,\n props.size,\n props.position,\n {\n 'b-tooltip': props.isActive,\n 'is-always': props.isAlways || props.isActive,\n 'is-animated': props.isAnimated,\n 'is-square': props.isSquare,\n 'is-dashed': props.isDashed,\n 'is-multiline': props.isMultiline\n }\n ],\n 'data-label': props.label\n },\n slots.default ? slots.default() : undefined\n );\n }\n});\n"],"sourceRoot":"","file":"BTooltip.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tooltip/index.d.ts b/node_modules/buetify/lib/components/tooltip/index.d.ts new file mode 100755 index 0000000..81634c6 --- /dev/null +++ b/node_modules/buetify/lib/components/tooltip/index.d.ts @@ -0,0 +1,3 @@ +import BTooltip from './BTooltip'; +export { BTooltip }; +export default BTooltip; diff --git a/node_modules/buetify/lib/components/tooltip/index.js b/node_modules/buetify/lib/components/tooltip/index.js new file mode 100755 index 0000000..9b21781 --- /dev/null +++ b/node_modules/buetify/lib/components/tooltip/index.js @@ -0,0 +1,4 @@ +import BTooltip from './BTooltip'; +export { BTooltip }; +export default BTooltip; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/components/tooltip/index.js.map b/node_modules/buetify/lib/components/tooltip/index.js.map new file mode 100755 index 0000000..774df99 --- /dev/null +++ b/node_modules/buetify/lib/components/tooltip/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAP,MAAqB,YAArB;AAEA,SAAS,QAAT;AAEA,eAAe,QAAf","sourcesContent":["import BTooltip from './BTooltip';\n\nexport { BTooltip };\n\nexport default BTooltip;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/disable/index.d.ts b/node_modules/buetify/lib/composables/disable/index.d.ts new file mode 100755 index 0000000..6a692e5 --- /dev/null +++ b/node_modules/buetify/lib/composables/disable/index.d.ts @@ -0,0 +1 @@ +export * from './useDisable'; diff --git a/node_modules/buetify/lib/composables/disable/index.js b/node_modules/buetify/lib/composables/disable/index.js new file mode 100755 index 0000000..bad9397 --- /dev/null +++ b/node_modules/buetify/lib/composables/disable/index.js @@ -0,0 +1,2 @@ +export * from './useDisable'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/disable/index.js.map b/node_modules/buetify/lib/composables/disable/index.js.map new file mode 100755 index 0000000..1b70e34 --- /dev/null +++ b/node_modules/buetify/lib/composables/disable/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/disable/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAd","sourcesContent":["export * from './useDisable';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/disable/useDisable.d.ts b/node_modules/buetify/lib/composables/disable/useDisable.d.ts new file mode 100755 index 0000000..83fe5fb --- /dev/null +++ b/node_modules/buetify/lib/composables/disable/useDisable.d.ts @@ -0,0 +1,20 @@ +import { Ref, PropType, ExtractPropTypes } from 'vue'; +export declare const UseDisablePropsDefinition: { + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type UseDisableProps = ExtractPropTypes<typeof UseDisablePropsDefinition>; +export declare function useDisable(props: UseDisableProps): Ref<boolean>; diff --git a/node_modules/buetify/lib/composables/disable/useDisable.js b/node_modules/buetify/lib/composables/disable/useDisable.js new file mode 100755 index 0000000..124de0f --- /dev/null +++ b/node_modules/buetify/lib/composables/disable/useDisable.js @@ -0,0 +1,22 @@ +import { computed } from 'vue'; +export const UseDisablePropsDefinition = { + isDisabled: { + type: Boolean, + required: false, + default: false + }, + isReadonly: { + type: Boolean, + required: false, + default: false + }, + disableIfReadonly: { + type: Boolean, + required: false, + default: false + } +}; +export function useDisable(props) { + return computed(() => props.isDisabled || props.isReadonly && props.disableIfReadonly); +} +//# sourceMappingURL=useDisable.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/disable/useDisable.js.map b/node_modules/buetify/lib/composables/disable/useDisable.js.map new file mode 100755 index 0000000..874123c --- /dev/null +++ b/node_modules/buetify/lib/composables/disable/useDisable.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/disable/useDisable.ts"],"names":[],"mappings":"AAAA,SAAc,QAAd,QAA0D,KAA1D;AAEA,OAAO,MAAM,yBAAyB,GAAG;AACvC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,QAAQ,EAAE,KAFA;AAGV,IAAA,OAAO,EAAE;AAHC,GAD2B;AAMvC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,QAAQ,EAAE,KAFA;AAGV,IAAA,OAAO,EAAE;AAHC,GAN2B;AAWvC,EAAA,iBAAiB,EAAE;AACjB,IAAA,IAAI,EAAE,OADW;AAEjB,IAAA,QAAQ,EAAE,KAFO;AAGjB,IAAA,OAAO,EAAE;AAHQ;AAXoB,CAAlC;AAoBP,OAAM,SAAU,UAAV,CAAqB,KAArB,EAA2C;AAC/C,SAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,UAAN,IAAqB,KAAK,CAAC,UAAN,IAAoB,KAAK,CAAC,iBAAtD,CAAf;AACD","sourcesContent":["import { Ref, computed, PropType, ExtractPropTypes } from 'vue';\n\nexport const UseDisablePropsDefinition = {\n isDisabled: {\n type: Boolean as PropType<boolean>,\n required: false,\n default: false\n },\n isReadonly: {\n type: Boolean as PropType<boolean>,\n required: false,\n default: false\n },\n disableIfReadonly: {\n type: Boolean as PropType<boolean>,\n required: false,\n default: false\n }\n};\n\nexport type UseDisableProps = ExtractPropTypes<typeof UseDisablePropsDefinition>;\n\nexport function useDisable(props: UseDisableProps): Ref<boolean> {\n return computed(() => props.isDisabled || (props.isReadonly && props.disableIfReadonly));\n}\n"],"sourceRoot":"","file":"useDisable.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/eqRef/index.d.ts b/node_modules/buetify/lib/composables/eqRef/index.d.ts new file mode 100755 index 0000000..d6ba5ef --- /dev/null +++ b/node_modules/buetify/lib/composables/eqRef/index.d.ts @@ -0,0 +1,3 @@ +import { Eq } from 'fp-ts/lib/Eq'; +import { Ref } from 'vue'; +export declare function useEqRef<A>(eq: Eq<A>): (v: A) => Ref<A>; diff --git a/node_modules/buetify/lib/composables/eqRef/index.js b/node_modules/buetify/lib/composables/eqRef/index.js new file mode 100755 index 0000000..f73bd45 --- /dev/null +++ b/node_modules/buetify/lib/composables/eqRef/index.js @@ -0,0 +1,21 @@ +import { customRef } from 'vue'; +export function useEqRef(eq) { + return v => customRef((track, trigger) => { + let value = v; + return { + get() { + track(); + return value; + }, + + set(newValue) { + if (!eq.equals(newValue, value)) { + value = newValue; + trigger(); + } + } + + }; + }); +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/eqRef/index.js.map b/node_modules/buetify/lib/composables/eqRef/index.js.map new file mode 100755 index 0000000..10ad8a9 --- /dev/null +++ b/node_modules/buetify/lib/composables/eqRef/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/eqRef/index.ts"],"names":[],"mappings":"AACA,SAAc,SAAd,QAA+B,KAA/B;AAEA,OAAM,SAAU,QAAV,CAAsB,EAAtB,EAA+B;AACnC,SAAQ,CAAD,IACL,SAAS,CAAC,CAAC,KAAD,EAAQ,OAAR,KAAmB;AAC3B,QAAI,KAAK,GAAG,CAAZ;AACA,WAAO;AACL,MAAA,GAAG,GAAA;AACD,QAAA,KAAK;AACL,eAAO,KAAP;AACD,OAJI;;AAKL,MAAA,GAAG,CAAC,QAAD,EAAY;AACb,YAAI,CAAC,EAAE,CAAC,MAAH,CAAU,QAAV,EAAoB,KAApB,CAAL,EAAiC;AAC/B,UAAA,KAAK,GAAG,QAAR;AACA,UAAA,OAAO;AACR;AACF;;AAVI,KAAP;AAYD,GAdQ,CADX;AAgBD","sourcesContent":["import { Eq } from 'fp-ts/lib/Eq';\r\nimport { Ref, customRef } from 'vue';\r\n\r\nexport function useEqRef<A>(eq: Eq<A>) {\r\n return (v: A): Ref<A> =>\r\n customRef((track, trigger) => {\r\n let value = v;\r\n return {\r\n get(): A {\r\n track();\r\n return value;\r\n },\r\n set(newValue: A) {\r\n if (!eq.equals(newValue, value)) {\r\n value = newValue;\r\n trigger();\r\n }\r\n }\r\n };\r\n });\r\n}\r\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/fieldData/index.d.ts b/node_modules/buetify/lib/composables/fieldData/index.d.ts new file mode 100755 index 0000000..ed47fbb --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/index.d.ts @@ -0,0 +1,2 @@ +export * from './provideFieldData'; +export * from './useFieldData'; diff --git a/node_modules/buetify/lib/composables/fieldData/index.js b/node_modules/buetify/lib/composables/fieldData/index.js new file mode 100755 index 0000000..d8f3553 --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/index.js @@ -0,0 +1,3 @@ +export * from './provideFieldData'; +export * from './useFieldData'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/fieldData/index.js.map b/node_modules/buetify/lib/composables/fieldData/index.js.map new file mode 100755 index 0000000..1657215 --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/fieldData/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAd;AACA,cAAc,gBAAd","sourcesContent":["export * from './provideFieldData';\nexport * from './useFieldData';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/fieldData/provideFieldData.d.ts b/node_modules/buetify/lib/composables/fieldData/provideFieldData.d.ts new file mode 100755 index 0000000..e7cf51f --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/provideFieldData.d.ts @@ -0,0 +1,56 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { PropType, ExtractPropTypes, Ref } from 'vue'; +import { AllColorsVariant } from '../../types/ColorVariants'; +export declare const PROVIDE_FIELD_DATA_INJECTION_SYMBOL: unique symbol; +export declare const ProvideFieldDataPropsDefinition: { + variant: { + type: PropType<AllColorsVariant>; + required: boolean; + }; + message: { + type: PropType<string | { + [K: string]: boolean; + } | (string | { + [K: string]: boolean; + })[]>; + required: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + labelFor: PropType<string>; + label: { + type: PropType<string>; + default: string; + }; +}; +export declare type ProvideFieldDataProps = ExtractPropTypes<typeof ProvideFieldDataPropsDefinition>; +export declare function formatMessage(message: string | { + [K: string]: boolean; +} | Array<string | { + [K: string]: boolean; +}> | undefined): string; +export interface FieldDataAttrs { + label: Ref<string>; + isFullwidth: Ref<boolean>; + isExpanded: Ref<boolean>; + message: Ref<string>; + messageVariant: Ref<undefined | AllColorsVariant>; + id: Ref<string | undefined>; + labelId: Ref<string | undefined>; +} +export interface FieldDataListeners { + onNewMessage: FunctionN<[string | { + [K: string]: boolean; + } | Array<string | { + [K: string]: boolean; + }>], void>; + onNewVariant: FunctionN<[AllColorsVariant], void>; +} +export interface FieldDataInjection { + attrs: FieldDataAttrs; + setters: FieldDataListeners; +} +export declare const DEFAULT_FIELD_DATA_INJECTION: FieldDataInjection; +export declare function provideFieldData(props: ProvideFieldDataProps): FieldDataInjection; diff --git a/node_modules/buetify/lib/composables/fieldData/provideFieldData.js b/node_modules/buetify/lib/composables/fieldData/provideFieldData.js new file mode 100755 index 0000000..108cb0a --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/provideFieldData.js @@ -0,0 +1,100 @@ +import { constVoid, not } from 'fp-ts/lib/function'; +import { provide, shallowRef, computed, watch, toRef } from 'vue'; +import { isEmptyString, isString } from '../../utils/helpers'; +import { useLabelId, UseLabelIdPropsDefinition } from '../labelId'; +export const PROVIDE_FIELD_DATA_INJECTION_SYMBOL = Symbol('use-field-data'); +export const ProvideFieldDataPropsDefinition = { ...UseLabelIdPropsDefinition, + variant: { + type: [String, Object], + required: false + }, + message: { + type: [String, Array, Object], + required: false + }, + isExpanded: { + type: Boolean, + default: false + } +}; +export function formatMessage(message) { + if (isString(message)) { + return message; + } else { + const messages = []; + + if (Array.isArray(message)) { + message.forEach(m => { + if (isString(m)) { + messages.push(m); + } else { + for (const key in m) { + if (m[key]) { + messages.push(key); + } + } + } + }); + } else { + for (const key in message) { + if (message[key]) { + messages.push(key); + } + } + } + + return messages.filter(not(isEmptyString)).join(' <br> '); + } +} +export const DEFAULT_FIELD_DATA_INJECTION = { + attrs: { + label: shallowRef(''), + isFullwidth: shallowRef(false), + isExpanded: shallowRef(false), + message: shallowRef(''), + messageVariant: shallowRef(), + id: shallowRef(), + labelId: shallowRef() + }, + setters: { + onNewMessage: constVoid, + onNewVariant: constVoid + } +}; +export function provideFieldData(props) { + const label = useLabelId(props, 'field'); + const variant = shallowRef(props.variant); + watch(toRef(props, 'variant'), newVariant => { + variant.value = newVariant; + }); + const message = shallowRef(props.message); + watch(toRef(props, 'message'), newMessage => { + message.value = newMessage; + }); + const formattedMessage = computed(() => formatMessage(message.value)); + const isExpanded = toRef(props, 'isExpanded'); + const attrs = { + label: toRef(props, 'label'), + isFullwidth: isExpanded, + isExpanded: isExpanded, + message: formattedMessage, + messageVariant: variant, + id: label.id, + labelId: label.labelId + }; + const setters = { + onNewMessage: newMessage => { + message.value = newMessage; + }, + onNewVariant: newVariant => { + variant.value = newVariant; + } + }; + const injection = { + attrs, + setters + }; + provide(PROVIDE_FIELD_DATA_INJECTION_SYMBOL, injection); + return injection; +} +//# sourceMappingURL=provideFieldData.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/fieldData/provideFieldData.js.map b/node_modules/buetify/lib/composables/fieldData/provideFieldData.js.map new file mode 100755 index 0000000..8149dd0 --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/provideFieldData.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/fieldData/provideFieldData.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,EAA+B,GAA/B,QAA0C,oBAA1C;AACA,SAAqC,OAArC,EAA8C,UAA9C,EAA0D,QAA1D,EAAoE,KAApE,EAA2E,KAA3E,QAA6F,KAA7F;AAEA,SAAS,aAAT,EAAwB,QAAxB,QAAwC,qBAAxC;AACA,SAAS,UAAT,EAAqB,yBAArB,QAAsD,YAAtD;AAEA,OAAO,MAAM,mCAAmC,GAAG,MAAM,CAAC,gBAAD,CAAlD;AAEP,OAAO,MAAM,+BAA+B,GAAG,EAC7C,GAAG,yBAD0C;AAE7C,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GAFoC;AAM7C,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,KAAT,EAAgB,MAAhB,CADC;AAIP,IAAA,QAAQ,EAAE;AAJH,GANoC;AAY7C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC;AAZiC,CAAxC;AAoBP,OAAM,SAAU,aAAV,CACJ,OADI,EAC6F;AAEjG,MAAI,QAAQ,CAAC,OAAD,CAAZ,EAAuB;AACrB,WAAO,OAAP;AACD,GAFD,MAEO;AACL,UAAM,QAAQ,GAAG,EAAjB;;AACA,QAAI,KAAK,CAAC,OAAN,CAAc,OAAd,CAAJ,EAA4B;AAC1B,MAAA,OAAO,CAAC,OAAR,CAAgB,CAAC,IAAG;AAClB,YAAI,QAAQ,CAAC,CAAD,CAAZ,EAAiB;AACf,UAAA,QAAQ,CAAC,IAAT,CAAc,CAAd;AACD,SAFD,MAEO;AACL,eAAK,MAAM,GAAX,IAAkB,CAAlB,EAAqB;AACnB,gBAAI,CAAC,CAAC,GAAD,CAAL,EAAY;AACV,cAAA,QAAQ,CAAC,IAAT,CAAc,GAAd;AACD;AACF;AACF;AACF,OAVD;AAWD,KAZD,MAYO;AACL,WAAK,MAAM,GAAX,IAAkB,OAAlB,EAA2B;AACzB,YAAI,OAAO,CAAC,GAAD,CAAX,EAAkB;AAChB,UAAA,QAAQ,CAAC,IAAT,CAAc,GAAd;AACD;AACF;AACF;;AACD,WAAO,QAAQ,CAAC,MAAT,CAAgB,GAAG,CAAC,aAAD,CAAnB,EAAoC,IAApC,CAAyC,QAAzC,CAAP;AACD;AACF;AAsBD,OAAO,MAAM,4BAA4B,GAAuB;AAC9D,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE,UAAU,CAAC,EAAD,CADZ;AAEL,IAAA,WAAW,EAAE,UAAU,CAAC,KAAD,CAFlB;AAGL,IAAA,UAAU,EAAE,UAAU,CAAC,KAAD,CAHjB;AAIL,IAAA,OAAO,EAAE,UAAU,CAAC,EAAD,CAJd;AAKL,IAAA,cAAc,EAAE,UAAU,EALrB;AAML,IAAA,EAAE,EAAE,UAAU,EANT;AAOL,IAAA,OAAO,EAAE,UAAU;AAPd,GADuD;AAU9D,EAAA,OAAO,EAAE;AACP,IAAA,YAAY,EAAE,SADP;AAEP,IAAA,YAAY,EAAE;AAFP;AAVqD,CAAzD;AAgBP,OAAM,SAAU,gBAAV,CAA2B,KAA3B,EAAuD;AAC3D,QAAM,KAAK,GAAG,UAAU,CAAC,KAAD,EAAQ,OAAR,CAAxB;AACA,QAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAP,CAA1B;AACA,EAAA,KAAK,CAAC,KAAK,CAAC,KAAD,EAAQ,SAAR,CAAN,EAA0B,UAAU,IAAG;AAC1C,IAAA,OAAO,CAAC,KAAR,GAAgB,UAAhB;AACD,GAFI,CAAL;AAGA,QAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAP,CAA1B;AACA,EAAA,KAAK,CAAC,KAAK,CAAC,KAAD,EAAQ,SAAR,CAAN,EAA0B,UAAU,IAAG;AAC1C,IAAA,OAAO,CAAC,KAAR,GAAgB,UAAhB;AACD,GAFI,CAAL;AAGA,QAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,KAAT,CAApB,CAAjC;AAEA,QAAM,UAAU,GAAG,KAAK,CAAC,KAAD,EAAQ,YAAR,CAAxB;AAEA,QAAM,KAAK,GAAG;AACZ,IAAA,KAAK,EAAE,KAAK,CAAC,KAAD,EAAQ,OAAR,CADA;AAEZ,IAAA,WAAW,EAAE,UAFD;AAGZ,IAAA,UAAU,EAAE,UAHA;AAIZ,IAAA,OAAO,EAAE,gBAJG;AAKZ,IAAA,cAAc,EAAE,OALJ;AAMZ,IAAA,EAAE,EAAE,KAAK,CAAC,EANE;AAOZ,IAAA,OAAO,EAAE,KAAK,CAAC;AAPH,GAAd;AAUA,QAAM,OAAO,GAAG;AACd,IAAA,YAAY,EAAG,UAAD,IAA6F;AACzG,MAAA,OAAO,CAAC,KAAR,GAAgB,UAAhB;AACD,KAHa;AAId,IAAA,YAAY,EAAG,UAAD,IAAiC;AAC7C,MAAA,OAAO,CAAC,KAAR,GAAgB,UAAhB;AACD;AANa,GAAhB;AASA,QAAM,SAAS,GAAuB;AACpC,IAAA,KADoC;AAEpC,IAAA;AAFoC,GAAtC;AAKA,EAAA,OAAO,CAAC,mCAAD,EAAsC,SAAtC,CAAP;AAEA,SAAO,SAAP;AACD","sourcesContent":["import { constVoid, FunctionN, not } from 'fp-ts/lib/function';\nimport { PropType, ExtractPropTypes, provide, shallowRef, computed, watch, toRef, Ref } from 'vue';\nimport { AllColorsVariant } from '../../types/ColorVariants';\nimport { isEmptyString, isString } from '../../utils/helpers';\nimport { useLabelId, UseLabelIdPropsDefinition } from '../labelId';\n\nexport const PROVIDE_FIELD_DATA_INJECTION_SYMBOL = Symbol('use-field-data');\n\nexport const ProvideFieldDataPropsDefinition = {\n ...UseLabelIdPropsDefinition,\n variant: {\n type: [String, Object] as PropType<AllColorsVariant>,\n required: false\n },\n message: {\n type: [String, Array, Object] as PropType<\n string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }>\n >,\n required: false\n },\n isExpanded: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n};\n\nexport type ProvideFieldDataProps = ExtractPropTypes<typeof ProvideFieldDataPropsDefinition>;\n\nexport function formatMessage(\n message: string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }> | undefined\n): string {\n if (isString(message)) {\n return message;\n } else {\n const messages = [];\n if (Array.isArray(message)) {\n message.forEach(m => {\n if (isString(m)) {\n messages.push(m);\n } else {\n for (const key in m) {\n if (m[key]) {\n messages.push(key);\n }\n }\n }\n });\n } else {\n for (const key in message) {\n if (message[key]) {\n messages.push(key);\n }\n }\n }\n return messages.filter(not(isEmptyString)).join(' <br> ');\n }\n}\n\nexport interface FieldDataAttrs {\n label: Ref<string>;\n isFullwidth: Ref<boolean>;\n isExpanded: Ref<boolean>;\n message: Ref<string>;\n messageVariant: Ref<undefined | AllColorsVariant>;\n id: Ref<string | undefined>;\n labelId: Ref<string | undefined>;\n}\n\nexport interface FieldDataListeners {\n onNewMessage: FunctionN<[string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }>], void>;\n onNewVariant: FunctionN<[AllColorsVariant], void>;\n}\n\nexport interface FieldDataInjection {\n attrs: FieldDataAttrs;\n setters: FieldDataListeners;\n}\n\nexport const DEFAULT_FIELD_DATA_INJECTION: FieldDataInjection = {\n attrs: {\n label: shallowRef(''),\n isFullwidth: shallowRef(false),\n isExpanded: shallowRef(false),\n message: shallowRef(''),\n messageVariant: shallowRef(),\n id: shallowRef(),\n labelId: shallowRef()\n },\n setters: {\n onNewMessage: constVoid,\n onNewVariant: constVoid\n }\n};\n\nexport function provideFieldData(props: ProvideFieldDataProps) {\n const label = useLabelId(props, 'field');\n const variant = shallowRef(props.variant);\n watch(toRef(props, 'variant'), newVariant => {\n variant.value = newVariant;\n });\n const message = shallowRef(props.message);\n watch(toRef(props, 'message'), newMessage => {\n message.value = newMessage;\n });\n const formattedMessage = computed(() => formatMessage(message.value));\n\n const isExpanded = toRef(props, 'isExpanded');\n\n const attrs = {\n label: toRef(props, 'label'),\n isFullwidth: isExpanded,\n isExpanded: isExpanded,\n message: formattedMessage,\n messageVariant: variant,\n id: label.id,\n labelId: label.labelId\n };\n\n const setters = {\n onNewMessage: (newMessage: string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }>) => {\n message.value = newMessage;\n },\n onNewVariant: (newVariant: AllColorsVariant) => {\n variant.value = newVariant;\n }\n };\n\n const injection: FieldDataInjection = {\n attrs,\n setters\n };\n\n provide(PROVIDE_FIELD_DATA_INJECTION_SYMBOL, injection);\n\n return injection;\n}\n"],"sourceRoot":"","file":"provideFieldData.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/fieldData/useFieldData.d.ts b/node_modules/buetify/lib/composables/fieldData/useFieldData.d.ts new file mode 100755 index 0000000..d29dfc9 --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/useFieldData.d.ts @@ -0,0 +1 @@ +export declare function useFieldData(): import("./provideFieldData").FieldDataInjection; diff --git a/node_modules/buetify/lib/composables/fieldData/useFieldData.js b/node_modules/buetify/lib/composables/fieldData/useFieldData.js new file mode 100755 index 0000000..87622b1 --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/useFieldData.js @@ -0,0 +1,6 @@ +import { inject } from 'vue'; +import { DEFAULT_FIELD_DATA_INJECTION, PROVIDE_FIELD_DATA_INJECTION_SYMBOL } from './provideFieldData'; +export function useFieldData() { + return inject(PROVIDE_FIELD_DATA_INJECTION_SYMBOL, DEFAULT_FIELD_DATA_INJECTION); +} +//# sourceMappingURL=useFieldData.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/fieldData/useFieldData.js.map b/node_modules/buetify/lib/composables/fieldData/useFieldData.js.map new file mode 100755 index 0000000..37cb6d1 --- /dev/null +++ b/node_modules/buetify/lib/composables/fieldData/useFieldData.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/fieldData/useFieldData.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,QAAuB,KAAvB;AACA,SAAS,4BAAT,EAAuC,mCAAvC,QAAkF,oBAAlF;AAEA,OAAM,SAAU,YAAV,GAAsB;AAC1B,SAAO,MAAM,CAAC,mCAAD,EAAsC,4BAAtC,CAAb;AACD","sourcesContent":["import { inject } from 'vue';\nimport { DEFAULT_FIELD_DATA_INJECTION, PROVIDE_FIELD_DATA_INJECTION_SYMBOL } from './provideFieldData';\n\nexport function useFieldData() {\n return inject(PROVIDE_FIELD_DATA_INJECTION_SYMBOL, DEFAULT_FIELD_DATA_INJECTION);\n}\n"],"sourceRoot":"","file":"useFieldData.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/focus/index.d.ts b/node_modules/buetify/lib/composables/focus/index.d.ts new file mode 100755 index 0000000..fb62693 --- /dev/null +++ b/node_modules/buetify/lib/composables/focus/index.d.ts @@ -0,0 +1 @@ +export * from './useFocus'; diff --git a/node_modules/buetify/lib/composables/focus/index.js b/node_modules/buetify/lib/composables/focus/index.js new file mode 100755 index 0000000..e97e732 --- /dev/null +++ b/node_modules/buetify/lib/composables/focus/index.js @@ -0,0 +1,2 @@ +export * from './useFocus'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/focus/index.js.map b/node_modules/buetify/lib/composables/focus/index.js.map new file mode 100755 index 0000000..a001962 --- /dev/null +++ b/node_modules/buetify/lib/composables/focus/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/focus/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAd","sourcesContent":["export * from './useFocus';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/focus/useFocus.d.ts b/node_modules/buetify/lib/composables/focus/useFocus.d.ts new file mode 100755 index 0000000..23e93fa --- /dev/null +++ b/node_modules/buetify/lib/composables/focus/useFocus.d.ts @@ -0,0 +1,26 @@ +import { Ref, VNode, PropType, ExtractPropTypes } from 'vue'; +export declare const UseFocusPropsDefinition: { + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; +}; +export declare type UseFocusProps = ExtractPropTypes<typeof UseFocusPropsDefinition>; +export declare function useFocus(props: UseFocusProps, ref: Ref<HTMLElement | VNode>): { + isFocused: Ref<boolean>; + focus: (e?: Event | undefined) => void; + onFocus: (e?: Event | undefined) => void; + onBlur: (e?: Event | undefined) => void; +}; diff --git a/node_modules/buetify/lib/composables/focus/useFocus.js b/node_modules/buetify/lib/composables/focus/useFocus.js new file mode 100755 index 0000000..7a3ffba --- /dev/null +++ b/node_modules/buetify/lib/composables/focus/useFocus.js @@ -0,0 +1,69 @@ +import { shallowRef, onMounted, watchEffect } from 'vue'; +import { isHTMLElement } from '../../utils/helpers'; +export const UseFocusPropsDefinition = { + isFocused: { + type: Boolean, + default: false + }, + onFocus: { + type: Function, + required: false + }, + onBlur: { + type: Function, + required: false + }, + focusOnMount: { + type: Boolean, + default: false + } +}; +export function useFocus(props, ref) { + const isFocused = shallowRef(false); + + function onFocus(e) { + isFocused.value = true; + if (props.onFocus) props.onFocus(e); + } + + function focus(e) { + if (isFocused.value) { + return; + } + + if (isHTMLElement(ref.value)) { + ref.value.focus(); + isFocused.value = true; + if (props.onFocus) props.onFocus(e); + } else { + if (ref.value && isHTMLElement(ref.value.el)) { + ref.value.el.focus(); + isFocused.value = true; + if (props.onFocus) props.onFocus(e); + } + } + } + + watchEffect(() => { + if (props.isFocused && isFocused.value === false) { + focus(); + } + }); + + if (props.focusOnMount) { + onMounted(focus); + } + + function onBlur(e) { + isFocused.value = false; + if (props.onBlur) props.onBlur(e); + } + + return { + isFocused, + focus, + onFocus, + onBlur + }; +} +//# sourceMappingURL=useFocus.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/focus/useFocus.js.map b/node_modules/buetify/lib/composables/focus/useFocus.js.map new file mode 100755 index 0000000..63d6ed5 --- /dev/null +++ b/node_modules/buetify/lib/composables/focus/useFocus.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/focus/useFocus.ts"],"names":[],"mappings":"AAAA,SAAqB,UAArB,EAA6D,SAA7D,EAAwE,WAAxE,QAA2F,KAA3F;AACA,SAAS,aAAT,QAA8B,qBAA9B;AAEA,OAAO,MAAM,uBAAuB,GAAG;AACrC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GAD0B;AAKrC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,QADC;AAEP,IAAA,QAAQ,EAAE;AAFH,GAL4B;AASrC,EAAA,MAAM,EAAE;AACN,IAAA,IAAI,EAAE,QADA;AAEN,IAAA,QAAQ,EAAE;AAFJ,GAT6B;AAarC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG;AAbuB,CAAhC;AAqBP,OAAM,SAAU,QAAV,CAAmB,KAAnB,EAAyC,GAAzC,EAAsE;AAC1E,QAAM,SAAS,GAAiB,UAAU,CAAC,KAAD,CAA1C;;AACA,WAAS,OAAT,CAAiB,CAAjB,EAA0B;AACxB,IAAA,SAAS,CAAC,KAAV,GAAkB,IAAlB;AACA,QAAI,KAAK,CAAC,OAAV,EAAmB,KAAK,CAAC,OAAN,CAAc,CAAd;AACpB;;AACD,WAAS,KAAT,CAAe,CAAf,EAAwB;AACtB,QAAI,SAAS,CAAC,KAAd,EAAqB;AACnB;AACD;;AACD,QAAI,aAAa,CAAC,GAAG,CAAC,KAAL,CAAjB,EAA8B;AAC5B,MAAA,GAAG,CAAC,KAAJ,CAAU,KAAV;AACA,MAAA,SAAS,CAAC,KAAV,GAAkB,IAAlB;AACA,UAAI,KAAK,CAAC,OAAV,EAAmB,KAAK,CAAC,OAAN,CAAc,CAAd;AACpB,KAJD,MAIO;AACL,UAAI,GAAG,CAAC,KAAJ,IAAa,aAAa,CAAC,GAAG,CAAC,KAAJ,CAAU,EAAX,CAA9B,EAA8C;AAC5C,QAAA,GAAG,CAAC,KAAJ,CAAU,EAAV,CAAa,KAAb;AACA,QAAA,SAAS,CAAC,KAAV,GAAkB,IAAlB;AACA,YAAI,KAAK,CAAC,OAAV,EAAmB,KAAK,CAAC,OAAN,CAAc,CAAd;AACpB;AACF;AACF;;AACD,EAAA,WAAW,CAAC,MAAK;AACf,QAAI,KAAK,CAAC,SAAN,IAAmB,SAAS,CAAC,KAAV,KAAoB,KAA3C,EAAkD;AAChD,MAAA,KAAK;AACN;AACF,GAJU,CAAX;;AAMA,MAAI,KAAK,CAAC,YAAV,EAAwB;AACtB,IAAA,SAAS,CAAC,KAAD,CAAT;AACD;;AAED,WAAS,MAAT,CAAgB,CAAhB,EAAyB;AACvB,IAAA,SAAS,CAAC,KAAV,GAAkB,KAAlB;AACA,QAAI,KAAK,CAAC,MAAV,EAAkB,KAAK,CAAC,MAAN,CAAa,CAAb;AACnB;;AACD,SAAO;AACL,IAAA,SADK;AAEL,IAAA,KAFK;AAGL,IAAA,OAHK;AAIL,IAAA;AAJK,GAAP;AAMD","sourcesContent":["import { Ref, VNode, shallowRef, PropType, ExtractPropTypes, onMounted, watchEffect } from 'vue';\nimport { isHTMLElement } from '../../utils/helpers';\n\nexport const UseFocusPropsDefinition = {\n isFocused: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n onFocus: {\n type: Function as PropType<(e?: Event) => void>,\n required: false as const\n },\n onBlur: {\n type: Function as PropType<(e?: Event) => void>,\n required: false as const\n },\n focusOnMount: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n};\n\nexport type UseFocusProps = ExtractPropTypes<typeof UseFocusPropsDefinition>;\n\nexport function useFocus(props: UseFocusProps, ref: Ref<HTMLElement | VNode>) {\n const isFocused: Ref<boolean> = shallowRef(false);\n function onFocus(e?: Event) {\n isFocused.value = true;\n if (props.onFocus) props.onFocus(e);\n }\n function focus(e?: Event) {\n if (isFocused.value) {\n return;\n }\n if (isHTMLElement(ref.value)) {\n ref.value.focus();\n isFocused.value = true;\n if (props.onFocus) props.onFocus(e);\n } else {\n if (ref.value && isHTMLElement(ref.value.el)) {\n ref.value.el.focus();\n isFocused.value = true;\n if (props.onFocus) props.onFocus(e);\n }\n }\n }\n watchEffect(() => {\n if (props.isFocused && isFocused.value === false) {\n focus();\n }\n });\n\n if (props.focusOnMount) {\n onMounted(focus);\n }\n\n function onBlur(e?: Event) {\n isFocused.value = false;\n if (props.onBlur) props.onBlur(e);\n }\n return {\n isFocused,\n focus,\n onFocus,\n onBlur\n };\n}\n"],"sourceRoot":"","file":"useFocus.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/index.d.ts b/node_modules/buetify/lib/composables/index.d.ts new file mode 100755 index 0000000..328b008 --- /dev/null +++ b/node_modules/buetify/lib/composables/index.d.ts @@ -0,0 +1,18 @@ +export * from './disable'; +export * from './fieldData'; +export * from './focus'; +export * from './labelId'; +export * from './message'; +export * from './model'; +export * from './noticeController'; +export * from './pagination'; +export * from './popupController'; +export * from './proxy'; +export * from './selectionControl'; +export * from './snackbar'; +export * from './theme'; +export * from './toast'; +export * from './toggle'; +export * from './transition'; +export * from './validation'; +export * from './windowSize'; diff --git a/node_modules/buetify/lib/composables/index.js b/node_modules/buetify/lib/composables/index.js new file mode 100755 index 0000000..12c41f2 --- /dev/null +++ b/node_modules/buetify/lib/composables/index.js @@ -0,0 +1,19 @@ +export * from './disable'; +export * from './fieldData'; +export * from './focus'; +export * from './labelId'; +export * from './message'; +export * from './model'; +export * from './noticeController'; +export * from './pagination'; +export * from './popupController'; +export * from './proxy'; +export * from './selectionControl'; +export * from './snackbar'; +export * from './theme'; +export * from './toast'; +export * from './toggle'; +export * from './transition'; +export * from './validation'; +export * from './windowSize'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/index.js.map b/node_modules/buetify/lib/composables/index.js.map new file mode 100755 index 0000000..a287d05 --- /dev/null +++ b/node_modules/buetify/lib/composables/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/composables/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,aAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd;AACA,cAAc,WAAd;AACA,cAAc,SAAd;AACA,cAAc,oBAAd;AACA,cAAc,cAAd;AACA,cAAc,mBAAd;AACA,cAAc,SAAd;AACA,cAAc,oBAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,cAAd;AACA,cAAc,cAAd","sourcesContent":["export * from './disable';\nexport * from './fieldData';\nexport * from './focus';\nexport * from './labelId';\nexport * from './message';\nexport * from './model';\nexport * from './noticeController';\nexport * from './pagination';\nexport * from './popupController';\nexport * from './proxy';\nexport * from './selectionControl';\nexport * from './snackbar';\nexport * from './theme';\nexport * from './toast';\nexport * from './toggle';\nexport * from './transition';\nexport * from './validation';\nexport * from './windowSize';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/input/useInput.d.ts b/node_modules/buetify/lib/composables/input/useInput.d.ts new file mode 100755 index 0000000..270e544 --- /dev/null +++ b/node_modules/buetify/lib/composables/input/useInput.d.ts @@ -0,0 +1,261 @@ +import { AllColorsVariant, ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { PropType, ExtractPropTypes, Ref } from 'vue'; +import { UseModelProps } from '../model'; +export declare const StaticUseInputProps: { + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; +}; +declare type StaticInputProps = ExtractPropTypes<typeof StaticUseInputProps>; +export declare function getUseInputPropsDefinition<T>(): { + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + type: { + type: PropType<string>; + }; + autocomplete: { + type: PropType<string>; + }; + placeholder: { + type: PropType<string>; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: BooleanConstructor; + default: boolean; + }; + isExpanded: { + type: PropType<boolean>; + default: boolean; + }; + isLoading: { + type: PropType<boolean>; + default: boolean; + }; + isRounded: { + type: PropType<boolean>; + default: boolean; + }; + maxlength: { + type: PropType<string | number>; + }; + icon: null; + usePasswordReveal: { + type: PropType<boolean>; + default: undefined; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; +}; +export declare type UseInputProps<T> = UseModelProps<T> & StaticInputProps; +export declare function useInput<T>(props: UseInputProps<T>, ref: Ref<HTMLElement>): { + iconSize: import("vue").ComputedRef<"" | "is-small">; + type: Ref<string | undefined>; + passwordToggle: { + isOn: import("vue").WritableComputedRef<boolean>; + isOff: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: import("fp-ts/lib/IO").IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: import("fp-ts/lib/IO").IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + setOn: (e?: Event | undefined) => void; + setOff: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; + }; + usePasswordReveal: import("vue").ComputedRef<boolean>; + isDisabled: Ref<boolean>; + isValid: Ref<boolean>; + validate: () => void; + isFocused: Ref<boolean>; + focus: (e?: Event | undefined) => void; + onFocus: (e?: Event | undefined) => void; + onBlur: (e?: Event | undefined) => void; + set: import("fp-ts/lib/function").FunctionN<[T], void>; + modelValue: Ref<T | undefined>; + onNativeInput: import("fp-ts/lib/function").FunctionN<[Event], void>; + isExpanded: import("vue").ComputedRef<boolean>; + isFullwidth: import("vue").ComputedRef<boolean>; + messageVariant: import("vue").ComputedRef<any>; + setters: import("../fieldData").FieldDataListeners; + onNewMessage: import("fp-ts/lib/function").FunctionN<[string | { + [K: string]: boolean; + } | (string | { + [K: string]: boolean; + })[]], void>; + onNewVariant: import("fp-ts/lib/function").FunctionN<[AllColorsVariant], void>; + label: Ref<string>; + message: Ref<string>; + id: Ref<string | undefined>; + labelId: Ref<string | undefined>; + "onUpdate:modelValue": Ref<import("fp-ts/lib/function").FunctionN<[T], void>>; + variant: Ref<ColorVariant>; + size: Ref<SizeVariant>; + isRounded: Ref<boolean>; + isLoading: Ref<boolean>; + focusOnMount: Ref<boolean>; + isReadonly: Ref<boolean>; + disableIfReadonly: Ref<boolean>; + useNativeValidation: Ref<boolean>; + "onUpdate:isValid": Ref<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + isRequired: Ref<boolean>; + icon?: Ref<any> | undefined; + autocomplete?: Ref<string | undefined> | undefined; + placeholder?: Ref<string | undefined> | undefined; + maxlength?: Ref<string | number | undefined> | undefined; +}; +export declare type Input = ReturnType<typeof useInput>; +export {}; diff --git a/node_modules/buetify/lib/composables/input/useInput.js b/node_modules/buetify/lib/composables/input/useInput.js new file mode 100755 index 0000000..2356cd8 --- /dev/null +++ b/node_modules/buetify/lib/composables/input/useInput.js @@ -0,0 +1,133 @@ +import { isObject, isString } from '../../utils/helpers'; +import { computed, toRefs, watch, shallowRef, toRef, reactive } from 'vue'; +import { useFieldData } from '../fieldData'; +import { useFocus, UseFocusPropsDefinition } from '../focus'; +import { getUseModelPropsDefinition, useModel } from '../model'; +import { useToggle } from '../toggle'; +import { useValidation, UseValidationPropsDefinition } from '../validation'; +export const StaticUseInputProps = { + variant: { + type: String, + default: '' + }, + type: { + type: String + }, + autocomplete: { + type: String + }, + placeholder: { + type: String + }, + size: { + type: String, + default: '' + }, + isRequired: { + type: Boolean, + default: false + }, + isExpanded: { + type: Boolean, + default: false + }, + isLoading: { + type: Boolean, + default: false + }, + isRounded: { + type: Boolean, + default: false + }, + maxlength: { + type: [Number, String] + }, + icon: null, + usePasswordReveal: { + type: Boolean, + default: undefined + }, + ...UseValidationPropsDefinition, + ...UseFocusPropsDefinition +}; +export function getUseInputPropsDefinition() { + return { ...getUseModelPropsDefinition(), + ...StaticUseInputProps + }; +} + +function getIconSize(size) { + switch (size) { + case 'is-small': + return size; + + default: + return ''; + } +} + +function getMessageVariant(variant) { + if (isString(variant)) { + return variant; + } else if (isObject(variant)) { + return Object.values(variant)[0]; // eslint-disable-line + } else { + return undefined; + } +} + +export function useInput(props, ref) { + const fieldData = useFieldData(); + const isExpanded = computed(() => props.isExpanded || fieldData.attrs.isExpanded.value); + const model = useModel(props); + const validate = useValidation(props, ref); + const focus = useFocus(reactive({ + isFocused: toRef(props, 'isFocused'), + onFocus: toRef(props, 'onFocus'), + focusOnMount: toRef(props, 'focusOnMount'), + onBlur: e => { + if (props.onBlur) { + props.onBlur(e); + } + + validate.validate(); + } + }), ref); // watch(model.modelValue, (newVal, oldVal) => { + // if (newVal !== oldVal) { + // validate.validate() + // } + // }); + + const iconSize = computed(() => getIconSize(props.size)); + const messageVariant = computed(() => getMessageVariant(fieldData.attrs.messageVariant.value)); + const passwordToggle = useToggle({ + isVisible: false, + hasPopup: false + }, 'isVisible'); + const type = shallowRef(props.type); + const usePasswordReveal = computed(() => { + return props.type === 'password' && (props.usePasswordReveal === undefined || props.usePasswordReveal); + }); + watch(toRef(props, 'type'), newVal => { + type.value = newVal; + }); + watch(passwordToggle.isOn, newVal => { + type.value = newVal ? 'text' : 'password'; + }); + return { ...toRefs(props), + ...fieldData.attrs, + ...fieldData.setters, + isExpanded, + isFullwidth: isExpanded, + messageVariant, + setters: fieldData.setters, + ...model, + ...focus, + ...validate, + iconSize, + type, + passwordToggle, + usePasswordReveal + }; +} +//# sourceMappingURL=useInput.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/input/useInput.js.map b/node_modules/buetify/lib/composables/input/useInput.js.map new file mode 100755 index 0000000..398b286 --- /dev/null +++ b/node_modules/buetify/lib/composables/input/useInput.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/input/useInput.ts"],"names":[],"mappings":"AAEA,SAAS,QAAT,EAAmB,QAAnB,QAAmC,qBAAnC;AACA,SAA0C,QAA1C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,UAAnE,EAA+E,KAA/E,EAAsF,QAAtF,QAAsG,KAAtG;AACA,SAAS,YAAT,QAA6B,cAA7B;AACA,SAAS,QAAT,EAAmB,uBAAnB,QAAkD,UAAlD;AACA,SAAS,0BAAT,EAAqC,QAArC,QAAoE,UAApE;AACA,SAAS,SAAT,QAA0B,WAA1B;AACA,SAAS,aAAT,EAAwB,4BAAxB,QAA4D,eAA5D;AAEA,OAAO,MAAM,mBAAmB,GAAG;AACjC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GADwB;AAKjC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE;AADF,GAL2B;AAQjC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE;AADM,GARmB;AAWjC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE;AADK,GAXoB;AAcjC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAd2B;AAkBjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAlBqB;AAsBjC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAtBqB;AA0BjC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GA1BsB;AA8BjC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,OADG;AAET,IAAA,OAAO,EAAE;AAFA,GA9BsB;AAkCjC,EAAA,SAAS,EAAE;AACT,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT;AADG,GAlCsB;AAqCjC,EAAA,IAAI,EAAE,IArC2B;AAsCjC,EAAA,iBAAiB,EAAE;AACjB,IAAA,IAAI,EAAE,OADW;AAEjB,IAAA,OAAO,EAAE;AAFQ,GAtCc;AA0CjC,KAAG,4BA1C8B;AA2CjC,KAAG;AA3C8B,CAA5B;AAgDP,OAAM,SAAU,0BAAV,GAAoC;AACxC,SAAO,EACL,GAAG,0BAA0B,EADxB;AAEL,OAAG;AAFE,GAAP;AAID;;AAGD,SAAS,WAAT,CAAqB,IAArB,EAAuC;AACrC,UAAQ,IAAR;AACE,SAAK,UAAL;AACE,aAAO,IAAP;;AACF;AACE,aAAO,EAAP;AAJJ;AAMD;;AAED,SAAS,iBAAT,CAA2B,OAA3B,EAAgH;AAC9G,MAAI,QAAQ,CAAC,OAAD,CAAZ,EAAuB;AACrB,WAAO,OAAP;AACD,GAFD,MAEO,IAAI,QAAQ,CAAC,OAAD,CAAZ,EAAuB;AAC5B,WAAO,MAAM,CAAC,MAAP,CAAc,OAAd,EAAuB,CAAvB,CAAP,CAD4B,CACa;AAC1C,GAFM,MAEA;AACL,WAAO,SAAP;AACD;AACF;;AAED,OAAM,SAAU,QAAV,CAAsB,KAAtB,EAA+C,GAA/C,EAAoE;AACxE,QAAM,SAAS,GAAG,YAAY,EAA9B;AACA,QAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,UAAN,IAAoB,SAAS,CAAC,KAAV,CAAgB,UAAhB,CAA2B,KAAtD,CAA3B;AACA,QAAM,KAAK,GAAG,QAAQ,CAAC,KAAD,CAAtB;AACA,QAAM,QAAQ,GAAG,aAAa,CAAC,KAAD,EAAQ,GAAR,CAA9B;AACA,QAAM,KAAK,GAAG,QAAQ,CACpB,QAAQ,CAAC;AACP,IAAA,SAAS,EAAE,KAAK,CAAC,KAAD,EAAQ,WAAR,CADT;AAEP,IAAA,OAAO,EAAE,KAAK,CAAC,KAAD,EAAQ,SAAR,CAFP;AAGP,IAAA,YAAY,EAAE,KAAK,CAAC,KAAD,EAAQ,cAAR,CAHZ;AAIP,IAAA,MAAM,EAAG,CAAD,IAAc;AACpB,UAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,QAAA,KAAK,CAAC,MAAN,CAAa,CAAb;AACD;;AACD,MAAA,QAAQ,CAAC,QAAT;AACD;AATM,GAAD,CADY,EAYpB,GAZoB,CAAtB,CALwE,CAmBxE;AACA;AACA;AACA;AACA;;AACA,QAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,IAAP,CAAlB,CAAzB;AACA,QAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,SAAS,CAAC,KAAV,CAAgB,cAAhB,CAA+B,KAAhC,CAAxB,CAA/B;AAEA,QAAM,cAAc,GAAG,SAAS,CAAC;AAAE,IAAA,SAAS,EAAE,KAAb;AAAoB,IAAA,QAAQ,EAAE;AAA9B,GAAD,EAAwC,WAAxC,CAAhC;AACA,QAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAP,CAAvB;AAEA,QAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACtC,WAAO,KAAK,CAAC,IAAN,KAAe,UAAf,KAA8B,KAAK,CAAC,iBAAN,KAA4B,SAA5B,IAAyC,KAAK,CAAC,iBAA7E,CAAP;AACD,GAFiC,CAAlC;AAIA,EAAA,KAAK,CAAC,KAAK,CAAC,KAAD,EAAQ,MAAR,CAAN,EAAuB,MAAM,IAAG;AACnC,IAAA,IAAI,CAAC,KAAL,GAAa,MAAb;AACD,GAFI,CAAL;AAGA,EAAA,KAAK,CAAC,cAAc,CAAC,IAAhB,EAAsB,MAAM,IAAG;AAClC,IAAA,IAAI,CAAC,KAAL,GAAa,MAAM,GAAG,MAAH,GAAY,UAA/B;AACD,GAFI,CAAL;AAGA,SAAO,EACL,GAAG,MAAM,CAAC,KAAD,CADJ;AAEL,OAAG,SAAS,CAAC,KAFR;AAGL,OAAG,SAAS,CAAC,OAHR;AAIL,IAAA,UAJK;AAKL,IAAA,WAAW,EAAE,UALR;AAML,IAAA,cANK;AAOL,IAAA,OAAO,EAAE,SAAS,CAAC,OAPd;AAQL,OAAG,KARE;AASL,OAAG,KATE;AAUL,OAAG,QAVE;AAWL,IAAA,QAXK;AAYL,IAAA,IAZK;AAaL,IAAA,cAbK;AAcL,IAAA;AAdK,GAAP;AAgBD","sourcesContent":["import { AllColorsVariant, ColorVariant } from '../../types/ColorVariants';\nimport { SizeVariant } from '../../types/SizeVariants';\nimport { isObject, isString } from '../../utils/helpers';\nimport { PropType, ExtractPropTypes, Ref, computed, toRefs, watch, shallowRef, toRef, reactive } from 'vue';\nimport { useFieldData } from '../fieldData';\nimport { useFocus, UseFocusPropsDefinition } from '../focus';\nimport { getUseModelPropsDefinition, useModel, UseModelProps } from '../model';\nimport { useToggle } from '../toggle';\nimport { useValidation, UseValidationPropsDefinition } from '../validation';\n\nexport const StaticUseInputProps = {\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as const\n },\n type: {\n type: String as PropType<string>\n },\n autocomplete: {\n type: String as PropType<string>\n },\n placeholder: {\n type: String as PropType<string>\n },\n size: {\n type: String as PropType<SizeVariant>,\n default: '' as SizeVariant\n },\n isRequired: {\n type: Boolean,\n default: false\n },\n isExpanded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isRounded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n maxlength: {\n type: [Number, String] as PropType<number | string>\n },\n icon: null,\n usePasswordReveal: {\n type: Boolean as PropType<boolean>,\n default: undefined\n },\n ...UseValidationPropsDefinition,\n ...UseFocusPropsDefinition\n};\n\ntype StaticInputProps = ExtractPropTypes<typeof StaticUseInputProps>;\n\nexport function getUseInputPropsDefinition<T>() {\n return {\n ...getUseModelPropsDefinition<T>(),\n ...StaticUseInputProps\n };\n}\n\nexport type UseInputProps<T> = UseModelProps<T> & StaticInputProps;\nfunction getIconSize(size?: SizeVariant) {\n switch (size) {\n case 'is-small':\n return size;\n default:\n return '';\n }\n}\n\nfunction getMessageVariant(variant: undefined | AllColorsVariant | Partial<{ [K in AllColorsVariant]: boolean }>) {\n if (isString(variant)) {\n return variant;\n } else if (isObject(variant)) {\n return Object.values(variant)[0] as any; // eslint-disable-line\n } else {\n return undefined;\n }\n}\n\nexport function useInput<T>(props: UseInputProps<T>, ref: Ref<HTMLElement>) {\n const fieldData = useFieldData();\n const isExpanded = computed(() => props.isExpanded || fieldData.attrs.isExpanded.value);\n const model = useModel(props);\n const validate = useValidation(props, ref);\n const focus = useFocus(\n reactive({\n isFocused: toRef(props, 'isFocused'),\n onFocus: toRef(props, 'onFocus'),\n focusOnMount: toRef(props, 'focusOnMount'),\n onBlur: (e?: Event) => {\n if (props.onBlur) {\n props.onBlur(e);\n }\n validate.validate();\n }\n }),\n ref\n );\n // watch(model.modelValue, (newVal, oldVal) => {\n // if (newVal !== oldVal) {\n // validate.validate()\n // }\n // });\n const iconSize = computed(() => getIconSize(props.size));\n const messageVariant = computed(() => getMessageVariant(fieldData.attrs.messageVariant.value));\n\n const passwordToggle = useToggle({ isVisible: false, hasPopup: false }, 'isVisible');\n const type = shallowRef(props.type);\n\n const usePasswordReveal = computed(() => {\n return props.type === 'password' && (props.usePasswordReveal === undefined || props.usePasswordReveal);\n });\n\n watch(toRef(props, 'type'), newVal => {\n type.value = newVal;\n });\n watch(passwordToggle.isOn, newVal => {\n type.value = newVal ? 'text' : 'password';\n });\n return {\n ...toRefs(props),\n ...fieldData.attrs,\n ...fieldData.setters,\n isExpanded,\n isFullwidth: isExpanded,\n messageVariant,\n setters: fieldData.setters,\n ...model,\n ...focus,\n ...validate,\n iconSize,\n type,\n passwordToggle,\n usePasswordReveal\n };\n}\n\nexport type Input = ReturnType<typeof useInput>;\n"],"sourceRoot":"","file":"useInput.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/labelId/index.d.ts b/node_modules/buetify/lib/composables/labelId/index.d.ts new file mode 100755 index 0000000..fee3434 --- /dev/null +++ b/node_modules/buetify/lib/composables/labelId/index.d.ts @@ -0,0 +1 @@ +export * from './useLabelId'; diff --git a/node_modules/buetify/lib/composables/labelId/index.js b/node_modules/buetify/lib/composables/labelId/index.js new file mode 100755 index 0000000..30350c6 --- /dev/null +++ b/node_modules/buetify/lib/composables/labelId/index.js @@ -0,0 +1,2 @@ +export * from './useLabelId'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/labelId/index.js.map b/node_modules/buetify/lib/composables/labelId/index.js.map new file mode 100755 index 0000000..176a92a --- /dev/null +++ b/node_modules/buetify/lib/composables/labelId/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/labelId/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAd","sourcesContent":["export * from './useLabelId';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/labelId/useLabelId.d.ts b/node_modules/buetify/lib/composables/labelId/useLabelId.d.ts new file mode 100755 index 0000000..806172d --- /dev/null +++ b/node_modules/buetify/lib/composables/labelId/useLabelId.d.ts @@ -0,0 +1,14 @@ +import { PropType, ExtractPropTypes } from 'vue'; +export declare const UseLabelIdPropsDefinition: { + labelFor: PropType<string>; + label: { + type: PropType<string>; + default: string; + }; +}; +export declare type UseLabelIdProps = ExtractPropTypes<typeof UseLabelIdPropsDefinition>; +export declare function useLabelId(props: UseLabelIdProps, prefix: string): { + id: import("vue").ComputedRef<string>; + labelId: import("vue").ComputedRef<string>; + label: import("vue").Ref<string>; +}; diff --git a/node_modules/buetify/lib/composables/labelId/useLabelId.js b/node_modules/buetify/lib/composables/labelId/useLabelId.js new file mode 100755 index 0000000..a20a949 --- /dev/null +++ b/node_modules/buetify/lib/composables/labelId/useLabelId.js @@ -0,0 +1,20 @@ +import { computed, toRef } from 'vue'; +let numId = 0; +export const UseLabelIdPropsDefinition = { + labelFor: String, + label: { + type: String, + default: '' + } +}; +export function useLabelId(props, prefix) { + const newId = numId++; + const id = computed(() => props.labelFor ? props.labelFor : `${prefix}-${newId}`); + const labelId = computed(() => `label-for-${id.value}`); + return { + id, + labelId, + label: toRef(props, 'label') + }; +} +//# sourceMappingURL=useLabelId.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/labelId/useLabelId.js.map b/node_modules/buetify/lib/composables/labelId/useLabelId.js.map new file mode 100755 index 0000000..4698a82 --- /dev/null +++ b/node_modules/buetify/lib/composables/labelId/useLabelId.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/labelId/useLabelId.ts"],"names":[],"mappings":"AAAA,SAAqC,QAArC,EAA+C,KAA/C,QAA4D,KAA5D;AAEA,IAAI,KAAK,GAAG,CAAZ;AAEA,OAAO,MAAM,yBAAyB,GAAG;AACvC,EAAA,QAAQ,EAAE,MAD6B;AAEvC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,OAAO,EAAE;AAFJ;AAFgC,CAAlC;AAUP,OAAM,SAAU,UAAV,CAAqB,KAArB,EAA6C,MAA7C,EAA2D;AAC/D,QAAM,KAAK,GAAG,KAAK,EAAnB;AACA,QAAM,EAAE,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,QAAN,GAAiB,KAAK,CAAC,QAAvB,GAAkC,GAAG,MAAM,IAAI,KAAK,EAA5D,CAAnB;AACA,QAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,aAAa,EAAE,CAAC,KAAK,EAA5B,CAAxB;AACA,SAAO;AACL,IAAA,EADK;AAEL,IAAA,OAFK;AAGL,IAAA,KAAK,EAAE,KAAK,CAAC,KAAD,EAAQ,OAAR;AAHP,GAAP;AAKD","sourcesContent":["import { PropType, ExtractPropTypes, computed, toRef } from 'vue';\n\nlet numId = 0;\n\nexport const UseLabelIdPropsDefinition = {\n labelFor: String as PropType<string>,\n label: {\n type: String as PropType<string>,\n default: ''\n }\n};\n\nexport type UseLabelIdProps = ExtractPropTypes<typeof UseLabelIdPropsDefinition>;\n\nexport function useLabelId(props: UseLabelIdProps, prefix: string) {\n const newId = numId++;\n const id = computed(() => (props.labelFor ? props.labelFor : `${prefix}-${newId}`));\n const labelId = computed(() => `label-for-${id.value}`);\n return {\n id,\n labelId,\n label: toRef(props, 'label')\n };\n}\n"],"sourceRoot":"","file":"useLabelId.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/message/index.d.ts b/node_modules/buetify/lib/composables/message/index.d.ts new file mode 100755 index 0000000..107ba71 --- /dev/null +++ b/node_modules/buetify/lib/composables/message/index.d.ts @@ -0,0 +1 @@ +export * from './useMessage'; diff --git a/node_modules/buetify/lib/composables/message/index.js b/node_modules/buetify/lib/composables/message/index.js new file mode 100755 index 0000000..f26eb25 --- /dev/null +++ b/node_modules/buetify/lib/composables/message/index.js @@ -0,0 +1,2 @@ +export * from './useMessage'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/message/index.js.map b/node_modules/buetify/lib/composables/message/index.js.map new file mode 100755 index 0000000..087bfd6 --- /dev/null +++ b/node_modules/buetify/lib/composables/message/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/message/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAd","sourcesContent":["export * from './useMessage';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/message/useMessage.d.ts b/node_modules/buetify/lib/composables/message/useMessage.d.ts new file mode 100755 index 0000000..81c668a --- /dev/null +++ b/node_modules/buetify/lib/composables/message/useMessage.d.ts @@ -0,0 +1,126 @@ +import { PropType, ExtractPropTypes, ComponentOptions, FunctionalComponent } from 'vue'; +import { AllColorsVariant } from '../../types/ColorVariants'; +export declare type MessageSize = 'is-small' | 'is-medium' | 'is-large' | ''; +export declare type MessageIcons = { + [K in AllColorsVariant]: ComponentOptions | FunctionalComponent; +}; +export declare function getMessageIcons(icons: Partial<MessageIcons>): { + ""?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-black-ter"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-orange"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-primary"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-info"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-link"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-success"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-warning"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-danger"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-white"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-black"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-light"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-dark"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-black-bis"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-grey-darker"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-grey-dark"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-grey"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-grey-light"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-grey-lighter"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-white-ter"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; + "is-white-bis"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined; +}; +export declare const UseMessagePropsDefinition: { + title: { + type: PropType<string>; + }; + isClosable: { + type: BooleanConstructor; + default: boolean; + }; + message: { + type: PropType<string>; + }; + variant: { + type: PropType<AllColorsVariant>; + default: ""; + }; + size: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + iconSize: { + type: PropType<import("../..").SizeVariant>; + default: ""; + }; + useAutoClose: { + type: PropType<boolean>; + default: boolean; + }; + duration: { + type: PropType<number>; + default: number; + }; + useIcon: { + type: PropType<boolean>; + default: boolean; + }; + icons: { + type: PropType<Partial<MessageIcons>>; + default: import("fp-ts/lib/function").Lazy<Partial<MessageIcons>>; + }; + icon: { + type: PropType<FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any>>; + }; + onToggle: { + type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<import("fp-ts/lib/IO").IO<void>>; + required: false; + }; + isActive: { + type: PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: PropType<boolean>; + default: boolean; + }; +}; +export declare type UseMessageProps = ExtractPropTypes<typeof UseMessagePropsDefinition>; +export declare function useMessage(props: UseMessageProps): { + icon: import("vue").ComputedRef<FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined>; + iconSize: import("vue").ComputedRef<"is-small" | "is-medium" | "is-large">; + setAutoClose: () => void; + isOn: import("vue").WritableComputedRef<boolean>; + isOff: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: import("fp-ts/lib/IO").IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: import("fp-ts/lib/IO").IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + setOn: (e?: Event | undefined) => void; + setOff: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; +}; +export declare type Message = ReturnType<typeof useMessage>; diff --git a/node_modules/buetify/lib/composables/message/useMessage.js b/node_modules/buetify/lib/composables/message/useMessage.js new file mode 100755 index 0000000..005287b --- /dev/null +++ b/node_modules/buetify/lib/composables/message/useMessage.js @@ -0,0 +1,79 @@ +import { constant } from 'fp-ts/lib/function'; +import { defineAsyncComponent, computed } from 'vue'; +import { getUseTogglePropsDefinition, useToggle } from '../toggle'; +const DEFAULT_MESSAGE_ICONS = { + 'is-info': defineAsyncComponent(() => import('../../components/icons/infoCircle')), + 'is-success': defineAsyncComponent(() => import('../../components/icons/checkCircle')), + 'is-warning': defineAsyncComponent(() => import('../../components/icons/exclamationTriangle')), + 'is-danger': defineAsyncComponent(() => import('../../components/icons/exclamationCircle')) +}; +export function getMessageIcons(icons) { + return { ...DEFAULT_MESSAGE_ICONS, + ...icons + }; +} +export const UseMessagePropsDefinition = { ...getUseTogglePropsDefinition('isActive', true), + title: { + type: String + }, + isClosable: { + type: Boolean, + default: true + }, + message: { + type: String + }, + variant: { + type: String, + default: '' + }, + size: { + type: String, + default: '' + }, + iconSize: { + type: String, + default: '' + }, + useAutoClose: { + type: Boolean, + default: false + }, + duration: { + type: Number, + default: 2000 + }, + useIcon: { + type: Boolean, + default: false + }, + icons: { + type: Object, + default: constant(DEFAULT_MESSAGE_ICONS) + }, + icon: { + type: [Object, Function] + } +}; +export function useMessage(props) { + const toggle = useToggle(props, 'isActive'); + const icon = computed(() => props.icon ?? props.icons[props.variant]); + const iconSize = computed(() => props.iconSize || props.size || 'is-large'); + + function setAutoClose() { + if (props.useAutoClose) { + setTimeout(() => { + if (toggle.isOn.value) { + toggle.setOff(); + } + }, props.duration); + } + } + + return { ...toggle, + icon, + iconSize, + setAutoClose + }; +} +//# sourceMappingURL=useMessage.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/message/useMessage.js.map b/node_modules/buetify/lib/composables/message/useMessage.js.map new file mode 100755 index 0000000..b348e57 --- /dev/null +++ b/node_modules/buetify/lib/composables/message/useMessage.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/message/useMessage.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,oBAAzB;AACA,SAAS,oBAAT,EAAkG,QAAlG,QAAkH,KAAlH;AAEA,SAAS,2BAAT,EAAsC,SAAtC,QAAuD,WAAvD;AAQA,MAAM,qBAAqB,GAA0B;AACnD,aAAW,oBAAoB,CAAC,MAAM,OAAO,mCAAP,CAAP,CADoB;AAEnD,gBAAc,oBAAoB,CAAC,MAAM,OAAO,oCAAP,CAAP,CAFiB;AAGnD,gBAAc,oBAAoB,CAAC,MAAM,OAAO,4CAAP,CAAP,CAHiB;AAInD,eAAa,oBAAoB,CAAC,MAAM,OAAO,0CAAP,CAAP;AAJkB,CAArD;AAOA,OAAM,SAAU,eAAV,CAA0B,KAA1B,EAAsD;AAC1D,SAAO,EACL,GAAG,qBADE;AAEL,OAAG;AAFE,GAAP;AAID;AAED,OAAO,MAAM,yBAAyB,GAAG,EACvC,GAAG,2BAA2B,CAAC,UAAD,EAAa,IAAb,CADS;AAEvC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE;AADD,GAFgC;AAKvC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,OADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAL2B;AASvC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE;AADC,GAT8B;AAYvC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GAZ8B;AAgBvC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,MADF;AAEJ,IAAA,OAAO,EAAE;AAFL,GAhBiC;AAoBvC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GApB6B;AAwBvC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG,GAxByB;AA4BvC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GA5B6B;AAgCvC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,OADC;AAEP,IAAA,OAAO,EAAE;AAFF,GAhC8B;AAoCvC,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,OAAO,EAAE,QAAQ,CAAC,qBAAD;AAFZ,GApCgC;AAwCvC,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT;AADF;AAxCiC,CAAlC;AA+CP,OAAM,SAAU,UAAV,CAAqB,KAArB,EAA2C;AAC/C,QAAM,MAAM,GAAG,SAAS,CAAC,KAAD,EAAQ,UAAR,CAAxB;AACA,QAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAN,IAAc,KAAK,CAAC,KAAN,CAAY,KAAK,CAAC,OAAlB,CAArB,CAArB;AACA,QAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAN,IAAkB,KAAK,CAAC,IAAxB,IAAgC,UAAvC,CAAzB;;AACA,WAAS,YAAT,GAAqB;AACnB,QAAI,KAAK,CAAC,YAAV,EAAwB;AACtB,MAAA,UAAU,CAAC,MAAK;AACd,YAAI,MAAM,CAAC,IAAP,CAAY,KAAhB,EAAuB;AACrB,UAAA,MAAM,CAAC,MAAP;AACD;AACF,OAJS,EAIP,KAAK,CAAC,QAJC,CAAV;AAKD;AACF;;AACD,SAAO,EACL,GAAG,MADE;AAEL,IAAA,IAFK;AAGL,IAAA,QAHK;AAIL,IAAA;AAJK,GAAP;AAMD","sourcesContent":["import { constant } from 'fp-ts/lib/function';\nimport { defineAsyncComponent, PropType, ExtractPropTypes, ComponentOptions, FunctionalComponent, computed } from 'vue';\nimport { AllColorsVariant } from '../../types/ColorVariants';\nimport { getUseTogglePropsDefinition, useToggle } from '../toggle';\n\nexport type MessageSize = 'is-small' | 'is-medium' | 'is-large' | '';\n\nexport type MessageIcons = {\n [K in AllColorsVariant]: ComponentOptions | FunctionalComponent;\n};\n\nconst DEFAULT_MESSAGE_ICONS: Partial<MessageIcons> = {\n 'is-info': defineAsyncComponent(() => import('../../components/icons/infoCircle')),\n 'is-success': defineAsyncComponent(() => import('../../components/icons/checkCircle')),\n 'is-warning': defineAsyncComponent(() => import('../../components/icons/exclamationTriangle')),\n 'is-danger': defineAsyncComponent(() => import('../../components/icons/exclamationCircle'))\n};\n\nexport function getMessageIcons(icons: Partial<MessageIcons>) {\n return {\n ...DEFAULT_MESSAGE_ICONS,\n ...icons\n };\n}\n\nexport const UseMessagePropsDefinition = {\n ...getUseTogglePropsDefinition('isActive', true),\n title: {\n type: String as PropType<string>\n },\n isClosable: {\n type: Boolean,\n default: true\n },\n message: {\n type: String as PropType<string>\n },\n variant: {\n type: String as PropType<AllColorsVariant>,\n default: '' as const\n },\n size: {\n type: String as PropType<MessageSize>,\n default: '' as const\n },\n iconSize: {\n type: String as PropType<MessageSize>,\n default: '' as const\n },\n useAutoClose: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n duration: {\n type: Number as PropType<number>,\n default: 2000\n },\n useIcon: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n icons: {\n type: Object as PropType<Partial<MessageIcons>>,\n default: constant(DEFAULT_MESSAGE_ICONS)\n },\n icon: {\n type: [Object, Function] as PropType<ComponentOptions | FunctionalComponent>\n }\n};\n\nexport type UseMessageProps = ExtractPropTypes<typeof UseMessagePropsDefinition>;\n\nexport function useMessage(props: UseMessageProps) {\n const toggle = useToggle(props, 'isActive');\n const icon = computed(() => props.icon ?? props.icons[props.variant]);\n const iconSize = computed(() => props.iconSize || props.size || 'is-large');\n function setAutoClose() {\n if (props.useAutoClose) {\n setTimeout(() => {\n if (toggle.isOn.value) {\n toggle.setOff();\n }\n }, props.duration);\n }\n }\n return {\n ...toggle,\n icon,\n iconSize,\n setAutoClose\n };\n}\n\nexport type Message = ReturnType<typeof useMessage>;\n"],"sourceRoot":"","file":"useMessage.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/model/index.d.ts b/node_modules/buetify/lib/composables/model/index.d.ts new file mode 100755 index 0000000..d464854 --- /dev/null +++ b/node_modules/buetify/lib/composables/model/index.d.ts @@ -0,0 +1 @@ +export * from './useModel'; diff --git a/node_modules/buetify/lib/composables/model/index.js b/node_modules/buetify/lib/composables/model/index.js new file mode 100755 index 0000000..f7d32c1 --- /dev/null +++ b/node_modules/buetify/lib/composables/model/index.js @@ -0,0 +1,2 @@ +export * from './useModel'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/model/index.js.map b/node_modules/buetify/lib/composables/model/index.js.map new file mode 100755 index 0000000..6d3cddd --- /dev/null +++ b/node_modules/buetify/lib/composables/model/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAd","sourcesContent":["export * from './useModel';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/model/useModel.d.ts b/node_modules/buetify/lib/composables/model/useModel.d.ts new file mode 100755 index 0000000..71b3e4d --- /dev/null +++ b/node_modules/buetify/lib/composables/model/useModel.d.ts @@ -0,0 +1,35 @@ +import { FunctionN, Lazy } from 'fp-ts/lib/function'; +import { PropType, Ref } from 'vue'; +export declare function getUseModelPropsDefinition<T>(): { + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[T], void>>; + default: Lazy<FunctionN<[T], void>>; + }; +}; +export declare function getUseModelPropsDefinition<T, ValueKey extends string, UpdateKey extends string>(valueKey: ValueKey, updateKey: UpdateKey): { + [K in ValueKey]: { + type: PropType<T>; + required: false; + }; +} & { + [K in UpdateKey]: { + type: PropType<FunctionN<[T], void>>; + default: Lazy<FunctionN<[T], void>>; + }; +}; +export declare type UseModelProps<T, ValueKey extends string = 'modelValue', UpdateKey extends string = 'onUpdate:modelValue'> = { + [K in ValueKey]?: T | undefined; +} & { + [K in UpdateKey]: FunctionN<[T], void>; +}; +export declare function useModel<T>(props: UseModelProps<T>): Model<T>; +export declare function useModel<T, ValueKey extends string, UpdateKey extends string>(props: UseModelProps<T, ValueKey, UpdateKey>, valueKey: ValueKey, updateKey: UpdateKey): Model<T>; +export declare type Model<T> = { + set: FunctionN<[T], void>; + modelValue: Ref<T | undefined>; + onNativeInput: FunctionN<[Event], void>; +}; diff --git a/node_modules/buetify/lib/composables/model/useModel.js b/node_modules/buetify/lib/composables/model/useModel.js new file mode 100755 index 0000000..6c6aa41 --- /dev/null +++ b/node_modules/buetify/lib/composables/model/useModel.js @@ -0,0 +1,53 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { shallowRef, watch, toRef, computed } from 'vue'; +import { exists, isObject } from '../../utils/helpers'; +export function getUseModelPropsDefinition(valueKey = 'modelValue', updateKey = 'onUpdate:modelValue') { + return { + [valueKey]: null, + [updateKey]: { + type: Function, + default: constant(constVoid) + } + }; +} +export function useModel(props, valueKey = 'modelValue', updateKey = 'onUpdate:modelValue') { + const internalValue = shallowRef(props[valueKey]); + watch(toRef(props, valueKey), newVal => { + internalValue.value = newVal; + }); + const value = computed({ + get() { + return internalValue.value; + }, + + set(val) { + internalValue.value = val; + + if (val !== undefined) { + props[updateKey](val); + } + } + + }); + + function onUpdate(e) { + // eslint-disable-next-line + // @ts-ignore-next-line + if (isObject(e.target) && exists(e.target.value)) { + // eslint-disable-next-line + // @ts-ignore-next-line + value.value = e.target.value; + } + } + + function set(val) { + value.value = val; + } + + return { + set, + modelValue: value, + onNativeInput: onUpdate + }; +} +//# sourceMappingURL=useModel.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/model/useModel.js.map b/node_modules/buetify/lib/composables/model/useModel.js.map new file mode 100755 index 0000000..f777446 --- /dev/null +++ b/node_modules/buetify/lib/composables/model/useModel.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/model/useModel.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,SAAnB,QAAqD,oBAArD;AACA,SAAmB,UAAnB,EAA+B,KAA/B,EAAsC,KAAtC,EAAkD,QAAlD,QAAkE,KAAlE;AACA,SAAS,MAAT,EAAiB,QAAjB,QAAiC,qBAAjC;AA2BA,OAAM,SAAU,0BAAV,CAKJ,QAAA,GAAqB,YALjB,EAK2C,SAAA,GAAuB,qBALlE,EAKoG;AACxG,SAAO;AACL,KAAC,QAAD,GAAY,IADP;AAEL,KAAC,SAAD,GAAa;AACX,MAAA,IAAI,EAAE,QADK;AAEX,MAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFN;AAFR,GAAP;AAOD;AAcD,OAAM,SAAU,QAAV,CACJ,KADI,EAEJ,QAAA,GAAqB,YAFjB,EAGJ,SAAA,GAAuB,qBAHnB,EAGqD;AAEzD,QAAM,aAAa,GAAuB,UAAU,CAAC,KAAK,CAAC,QAAD,CAAN,CAApD;AAEA,EAAA,KAAK,CAAC,KAAK,CAAC,KAAD,EAAQ,QAAR,CAAN,EAAyB,MAAM,IAAG;AACrC,IAAA,aAAa,CAAC,KAAd,GAAsB,MAAtB;AACD,GAFI,CAAL;AAIA,QAAM,KAAK,GAAG,QAAQ,CAAC;AACrB,IAAA,GAAG,GAAA;AACD,aAAO,aAAa,CAAC,KAArB;AACD,KAHoB;;AAIrB,IAAA,GAAG,CAAC,GAAD,EAAmB;AACpB,MAAA,aAAa,CAAC,KAAd,GAAsB,GAAtB;;AACA,UAAI,GAAG,KAAK,SAAZ,EAAuB;AACrB,QAAA,KAAK,CAAC,SAAD,CAAL,CAAiB,GAAjB;AACD;AACF;;AAToB,GAAD,CAAtB;;AAYA,WAAS,QAAT,CAAkB,CAAlB,EAA0B;AACxB;AACA;AACA,QAAI,QAAQ,CAAC,CAAC,CAAC,MAAH,CAAR,IAAsB,MAAM,CAAC,CAAC,CAAC,MAAF,CAAS,KAAV,CAAhC,EAAkD;AAChD;AACA;AACA,MAAA,KAAK,CAAC,KAAN,GAAc,CAAC,CAAC,MAAF,CAAS,KAAvB;AACD;AACF;;AAED,WAAS,GAAT,CAAa,GAAb,EAAmB;AACjB,IAAA,KAAK,CAAC,KAAN,GAAc,GAAd;AACD;;AAED,SAAO;AACL,IAAA,GADK;AAEL,IAAA,UAAU,EAAE,KAFP;AAGL,IAAA,aAAa,EAAE;AAHV,GAAP;AAKD","sourcesContent":["import { constant, constVoid, FunctionN, Lazy } from 'fp-ts/lib/function';\nimport { PropType, shallowRef, watch, toRef, Ref, computed } from 'vue';\nimport { exists, isObject } from '../../utils/helpers';\n\nexport function getUseModelPropsDefinition<T>(): {\n modelValue: {\n type: PropType<T>;\n required: false;\n };\n 'onUpdate:modelValue': {\n type: PropType<FunctionN<[T], void>>;\n default: Lazy<FunctionN<[T], void>>;\n };\n};\nexport function getUseModelPropsDefinition<T, ValueKey extends string, UpdateKey extends string>(\n valueKey: ValueKey,\n updateKey: UpdateKey\n): {\n [K in ValueKey]: {\n type: PropType<T>;\n required: false;\n };\n} &\n {\n [K in UpdateKey]: {\n type: PropType<FunctionN<[T], void>>;\n default: Lazy<FunctionN<[T], void>>;\n };\n };\nexport function getUseModelPropsDefinition<\n T,\n ValueKey extends string = 'modelValue',\n UpdateKey extends string = 'onUpdate:modelValue'\n // eslint-disable-next-line\n>(valueKey: ValueKey = 'modelValue' as ValueKey, updateKey: UpdateKey = 'onUpdate:modelValue' as UpdateKey): any {\n return {\n [valueKey]: null,\n [updateKey]: {\n type: Function,\n default: constant(constVoid)\n }\n };\n}\n\nexport type UseModelProps<\n T,\n ValueKey extends string = 'modelValue',\n UpdateKey extends string = 'onUpdate:modelValue'\n> = { [K in ValueKey]?: T | undefined } & { [K in UpdateKey]: FunctionN<[T], void> };\n\nexport function useModel<T>(props: UseModelProps<T>): Model<T>;\nexport function useModel<T, ValueKey extends string, UpdateKey extends string>(\n props: UseModelProps<T, ValueKey, UpdateKey>,\n valueKey: ValueKey,\n updateKey: UpdateKey\n): Model<T>;\nexport function useModel<T, ValueKey extends string = 'modelValue', UpdateKey extends string = 'onUpdate:modelValue'>(\n props: UseModelProps<T, ValueKey, UpdateKey>,\n valueKey: ValueKey = 'modelValue' as ValueKey,\n updateKey: UpdateKey = 'onUpdate:modelValue' as UpdateKey\n): Model<T> {\n const internalValue: Ref<T | undefined> = shallowRef(props[valueKey]);\n\n watch(toRef(props, valueKey), newVal => {\n internalValue.value = newVal;\n });\n\n const value = computed({\n get() {\n return internalValue.value;\n },\n set(val: T | undefined) {\n internalValue.value = val;\n if (val !== undefined) {\n props[updateKey](val);\n }\n }\n });\n\n function onUpdate(e: Event) {\n // eslint-disable-next-line\n // @ts-ignore-next-line\n if (isObject(e.target) && exists(e.target.value)) {\n // eslint-disable-next-line\n // @ts-ignore-next-line\n value.value = e.target.value;\n }\n }\n\n function set(val: T) {\n value.value = val;\n }\n\n return {\n set,\n modelValue: value,\n onNativeInput: onUpdate\n };\n}\n\nexport type Model<T> = {\n set: FunctionN<[T], void>;\n modelValue: Ref<T | undefined>;\n onNativeInput: FunctionN<[Event], void>;\n};\n"],"sourceRoot":"","file":"useModel.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/noticeController/index.d.ts b/node_modules/buetify/lib/composables/noticeController/index.d.ts new file mode 100755 index 0000000..2838f54 --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/index.d.ts @@ -0,0 +1,2 @@ +export * from './provideNoticeController'; +export * from './useNoticeController'; diff --git a/node_modules/buetify/lib/composables/noticeController/index.js b/node_modules/buetify/lib/composables/noticeController/index.js new file mode 100755 index 0000000..65e6e1a --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/index.js @@ -0,0 +1,3 @@ +export * from './provideNoticeController'; +export * from './useNoticeController'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/noticeController/index.js.map b/node_modules/buetify/lib/composables/noticeController/index.js.map new file mode 100755 index 0000000..dff73a5 --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/noticeController/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAAd;AACA,cAAc,uBAAd","sourcesContent":["export * from './provideNoticeController';\nexport * from './useNoticeController';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/noticeController/provideNoticeController.d.ts b/node_modules/buetify/lib/composables/noticeController/provideNoticeController.d.ts new file mode 100755 index 0000000..331bd2a --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/provideNoticeController.d.ts @@ -0,0 +1,18 @@ +import { IO } from 'fp-ts/lib/IO'; +import { VNode } from 'vue'; +import { NoticePlacement } from '../../types/NoticePlacement'; +import { Transition } from '../../types/Transition'; +import { Remove } from '../shared'; +export declare const NOTICE_CONTROLLER_SYMBOL: unique symbol; +export interface ShowNoticeOptions { + render: IO<VNode[]>; + placement: NoticePlacement; + duration: number; + shouldQueue: boolean; + transition?: Transition; +} +export interface NoticeControllerInjection { + showNotice: (options: ShowNoticeOptions) => Remove; +} +export declare const DEFAULT_NOTICE_CONTROLLER_INJECTION: NoticeControllerInjection; +export declare function provideNoticeController(showNotice: (options: ShowNoticeOptions) => Remove): NoticeControllerInjection; diff --git a/node_modules/buetify/lib/composables/noticeController/provideNoticeController.js b/node_modules/buetify/lib/composables/noticeController/provideNoticeController.js new file mode 100755 index 0000000..ab25656 --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/provideNoticeController.js @@ -0,0 +1,14 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { provide } from 'vue'; +export const NOTICE_CONTROLLER_SYMBOL = Symbol('notice-controller'); +export const DEFAULT_NOTICE_CONTROLLER_INJECTION = { + showNotice: constant(constVoid) +}; +export function provideNoticeController(showNotice) { + const injection = { + showNotice + }; + provide(NOTICE_CONTROLLER_SYMBOL, injection); + return injection; +} +//# sourceMappingURL=provideNoticeController.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/noticeController/provideNoticeController.js.map b/node_modules/buetify/lib/composables/noticeController/provideNoticeController.js.map new file mode 100755 index 0000000..296b45b --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/provideNoticeController.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/noticeController/provideNoticeController.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,SAAnB,QAAoC,oBAApC;AAEA,SAAS,OAAT,QAA+B,KAA/B;AAKA,OAAO,MAAM,wBAAwB,GAAG,MAAM,CAAC,mBAAD,CAAvC;AAcP,OAAO,MAAM,mCAAmC,GAA8B;AAC5E,EAAA,UAAU,EAAE,QAAQ,CAAC,SAAD;AADwD,CAAvE;AAIP,OAAM,SAAU,uBAAV,CAAkC,UAAlC,EAAoF;AACxF,QAAM,SAAS,GAA8B;AAC3C,IAAA;AAD2C,GAA7C;AAIA,EAAA,OAAO,CAAC,wBAAD,EAA2B,SAA3B,CAAP;AACA,SAAO,SAAP;AACD","sourcesContent":["import { constant, constVoid } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { provide, VNode } from 'vue';\nimport { NoticePlacement } from '../../types/NoticePlacement';\nimport { Transition } from '../../types/Transition';\nimport { Remove } from '../shared';\n\nexport const NOTICE_CONTROLLER_SYMBOL = Symbol('notice-controller');\n\nexport interface ShowNoticeOptions {\n render: IO<VNode[]>;\n placement: NoticePlacement;\n duration: number;\n shouldQueue: boolean;\n transition?: Transition;\n}\n\nexport interface NoticeControllerInjection {\n showNotice: (options: ShowNoticeOptions) => Remove;\n}\n\nexport const DEFAULT_NOTICE_CONTROLLER_INJECTION: NoticeControllerInjection = {\n showNotice: constant(constVoid)\n};\n\nexport function provideNoticeController(showNotice: (options: ShowNoticeOptions) => Remove) {\n const injection: NoticeControllerInjection = {\n showNotice\n };\n\n provide(NOTICE_CONTROLLER_SYMBOL, injection);\n return injection;\n}\n"],"sourceRoot":"","file":"provideNoticeController.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/noticeController/useNoticeController.d.ts b/node_modules/buetify/lib/composables/noticeController/useNoticeController.d.ts new file mode 100755 index 0000000..0ab3686 --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/useNoticeController.d.ts @@ -0,0 +1,55 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { PropType, ExtractPropTypes, VNode, Ref } from 'vue'; +import { AllColorsVariant, ColorVariant } from '../../types/ColorVariants'; +import { PositionVariant } from '../../types/PositionVariant'; +import { Transition } from '../../types/Transition'; +export declare const UseNoticePropsDefinition: { + transition: { + type: PropType<Transition>; + required: boolean; + }; + position: { + type: PropType<PositionVariant>; + default: "is-bottom"; + }; + duration: { + type: PropType<number>; + default: number; + }; + message: { + type: PropType<string>; + }; + shouldQueue: { + type: PropType<boolean>; + default: boolean; + }; + variant: { + type: PropType<ColorVariant>; + default: ""; + }; + isIndefinite: { + type: PropType<boolean>; + default: boolean; + }; +}; +export interface UseNoticeProps extends ExtractPropTypes<typeof UseNoticePropsDefinition> { +} +export declare const DEFAULT_USE_NOTICE_PROPS: UseNoticeProps; +export interface RenderNoticeOptions { + variant?: AllColorsVariant; + message?: string; + position?: PositionVariant; +} +export interface OpenNoticeOptions extends RenderNoticeOptions { + duration?: number; + shouldQueue?: boolean; + transition?: Transition; + isIndefinite?: boolean; + onAction?: IO<void>; +} +export declare function useNoticeController(props: UseNoticeProps, render: Ref<FunctionN<[RenderNoticeOptions], IO<VNode[]>>>): { + open: (options: OpenNoticeOptions) => void; + close: () => void; +}; +export declare type NoticeController = ReturnType<typeof useNoticeController>; diff --git a/node_modules/buetify/lib/composables/noticeController/useNoticeController.js b/node_modules/buetify/lib/composables/noticeController/useNoticeController.js new file mode 100755 index 0000000..1387f9b --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/useNoticeController.js @@ -0,0 +1,98 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { inject, shallowRef, onUnmounted, computed } from 'vue'; +import { formatTransition } from '../transition'; +import { DEFAULT_NOTICE_CONTROLLER_INJECTION, NOTICE_CONTROLLER_SYMBOL } from './provideNoticeController'; +export const UseNoticePropsDefinition = { + transition: { + type: [Object, String], + required: false + }, + position: { + type: String, + default: 'is-bottom' + }, + duration: { + type: Number, + default: 2000 + }, + message: { + type: String + }, + shouldQueue: { + type: Boolean, + default: true + }, + variant: { + type: String, + default: '' + }, + isIndefinite: { + type: Boolean, + default: false + } +}; +export const DEFAULT_USE_NOTICE_PROPS = { + position: UseNoticePropsDefinition.position.default, + duration: UseNoticePropsDefinition.duration.default, + shouldQueue: UseNoticePropsDefinition.shouldQueue.default, + variant: UseNoticePropsDefinition.variant.default, + isIndefinite: UseNoticePropsDefinition.isIndefinite.default +}; + +function useNoticeTransition(props = DEFAULT_USE_NOTICE_PROPS) { + return computed(() => { + if (props.transition) { + return formatTransition(props.transition); + } else { + switch (props.position) { + case 'is-top-right': + case 'is-top': + case 'is-top-left': + return { + 'enter-active-class': 'fadeInDown', + 'leave-active-class': 'fadeOutUp' + }; + + case 'is-bottom-right': + case 'is-bottom': + case 'is-bottom-left': + return { + 'enter-active-class': 'fadeInUp', + 'leave-active-class': 'fadeOutDown' + }; + } + } + }); +} + +export function useNoticeController(props, render) { + const remove = shallowRef(constVoid); + const { + showNotice + } = inject(NOTICE_CONTROLLER_SYMBOL, DEFAULT_NOTICE_CONTROLLER_INJECTION); + const transition = useNoticeTransition(props); + onUnmounted(() => { + remove.value(); + }); + + function open(options) { + const position = options.position ?? props.position; + remove.value(); + remove.value = showNotice({ + placement: position.includes('top') ? 'top' : 'bottom', + render: render.value(options), + transition: options.transition ?? transition.value, + shouldQueue: options.shouldQueue ?? props.shouldQueue, + duration: options.isIndefinite || props.isIndefinite ? 0 : options.duration ?? props.duration + }); + } + + return { + open: open, + close: () => { + remove.value(); + remove.value = constVoid; + } + }; +} +//# sourceMappingURL=useNoticeController.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/noticeController/useNoticeController.js.map b/node_modules/buetify/lib/composables/noticeController/useNoticeController.js.map new file mode 100755 index 0000000..b1961a4 --- /dev/null +++ b/node_modules/buetify/lib/composables/noticeController/useNoticeController.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/noticeController/useNoticeController.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,QAAqC,oBAArC;AAEA,SAAS,MAAT,EAAoD,UAApD,EAAgE,WAAhE,EAA6E,QAA7E,QAAkG,KAAlG;AAIA,SAAS,gBAAT,QAAiC,eAAjC;AACA,SAAS,mCAAT,EAA8C,wBAA9C,QAA8E,2BAA9E;AAEA,OAAO,MAAM,wBAAwB,GAAG;AACtC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,IAAA,QAAQ,EAAE;AAFA,GAD0B;AAKtC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAL4B;AAStC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAT4B;AAatC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE;AADC,GAb6B;AAgBtC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAhByB;AAoBtC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF,GApB6B;AAwBtC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG;AAxBwB,CAAjC;AA+BP,OAAO,MAAM,wBAAwB,GAAmB;AACtD,EAAA,QAAQ,EAAE,wBAAwB,CAAC,QAAzB,CAAkC,OADU;AAEtD,EAAA,QAAQ,EAAE,wBAAwB,CAAC,QAAzB,CAAkC,OAFU;AAGtD,EAAA,WAAW,EAAE,wBAAwB,CAAC,WAAzB,CAAqC,OAHI;AAItD,EAAA,OAAO,EAAE,wBAAwB,CAAC,OAAzB,CAAiC,OAJY;AAKtD,EAAA,YAAY,EAAE,wBAAwB,CAAC,YAAzB,CAAsC;AALE,CAAjD;;AAQP,SAAS,mBAAT,CAA6B,KAAA,GAAwB,wBAArD,EAA6E;AAC3E,SAAO,QAAQ,CAAC,MAAK;AACnB,QAAI,KAAK,CAAC,UAAV,EAAsB;AACpB,aAAO,gBAAgB,CAAC,KAAK,CAAC,UAAP,CAAvB;AACD,KAFD,MAEO;AACL,cAAQ,KAAK,CAAC,QAAd;AACE,aAAK,cAAL;AACA,aAAK,QAAL;AACA,aAAK,aAAL;AACE,iBAAO;AACL,kCAAsB,YADjB;AAEL,kCAAsB;AAFjB,WAAP;;AAIF,aAAK,iBAAL;AACA,aAAK,WAAL;AACA,aAAK,gBAAL;AACE,iBAAO;AACL,kCAAsB,UADjB;AAEL,kCAAsB;AAFjB,WAAP;AAXJ;AAgBD;AACF,GArBc,CAAf;AAsBD;;AAgBD,OAAM,SAAU,mBAAV,CAA8B,KAA9B,EAAqD,MAArD,EAA+G;AACnH,QAAM,MAAM,GAAG,UAAU,CAAC,SAAD,CAAzB;AACA,QAAM;AAAE,IAAA;AAAF,MAAiB,MAAM,CAAC,wBAAD,EAA2B,mCAA3B,CAA7B;AACA,QAAM,UAAU,GAAG,mBAAmB,CAAC,KAAD,CAAtC;AACA,EAAA,WAAW,CAAC,MAAK;AACf,IAAA,MAAM,CAAC,KAAP;AACD,GAFU,CAAX;;AAGA,WAAS,IAAT,CAAc,OAAd,EAAwC;AACtC,UAAM,QAAQ,GAAG,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC,QAA3C;AACA,IAAA,MAAM,CAAC,KAAP;AACA,IAAA,MAAM,CAAC,KAAP,GAAe,UAAU,CAAC;AACxB,MAAA,SAAS,EAAE,QAAQ,CAAC,QAAT,CAAkB,KAAlB,IAA2B,KAA3B,GAAmC,QADtB;AAExB,MAAA,MAAM,EAAE,MAAM,CAAC,KAAP,CAAa,OAAb,CAFgB;AAGxB,MAAA,UAAU,EAAE,OAAO,CAAC,UAAR,IAAsB,UAAU,CAAC,KAHrB;AAIxB,MAAA,WAAW,EAAE,OAAO,CAAC,WAAR,IAAuB,KAAK,CAAC,WAJlB;AAKxB,MAAA,QAAQ,EAAE,OAAO,CAAC,YAAR,IAAwB,KAAK,CAAC,YAA9B,GAA6C,CAA7C,GAAiD,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC;AAL7D,KAAD,CAAzB;AAOD;;AAED,SAAO;AACL,IAAA,IAAI,EAAE,IADD;AAEL,IAAA,KAAK,EAAE,MAAK;AACV,MAAA,MAAM,CAAC,KAAP;AACA,MAAA,MAAM,CAAC,KAAP,GAAe,SAAf;AACD;AALI,GAAP;AAOD","sourcesContent":["import { constVoid, FunctionN } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { inject, PropType, ExtractPropTypes, VNode, shallowRef, onUnmounted, computed, Ref } from 'vue';\nimport { AllColorsVariant, ColorVariant } from '../../types/ColorVariants';\nimport { PositionVariant } from '../../types/PositionVariant';\nimport { Transition, TransitionClasses } from '../../types/Transition';\nimport { formatTransition } from '../transition';\nimport { DEFAULT_NOTICE_CONTROLLER_INJECTION, NOTICE_CONTROLLER_SYMBOL } from './provideNoticeController';\n\nexport const UseNoticePropsDefinition = {\n transition: {\n type: [Object, String] as PropType<Transition>,\n required: false\n },\n position: {\n type: String as PropType<PositionVariant>,\n default: 'is-bottom' as const\n },\n duration: {\n type: Number as PropType<number>,\n default: 2000\n },\n message: {\n type: String as PropType<string>\n },\n shouldQueue: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: '' as const\n },\n isIndefinite: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n};\nexport interface UseNoticeProps extends ExtractPropTypes<typeof UseNoticePropsDefinition> {}\n\nexport const DEFAULT_USE_NOTICE_PROPS: UseNoticeProps = {\n position: UseNoticePropsDefinition.position.default,\n duration: UseNoticePropsDefinition.duration.default,\n shouldQueue: UseNoticePropsDefinition.shouldQueue.default,\n variant: UseNoticePropsDefinition.variant.default,\n isIndefinite: UseNoticePropsDefinition.isIndefinite.default\n};\n\nfunction useNoticeTransition(props: UseNoticeProps = DEFAULT_USE_NOTICE_PROPS): Ref<TransitionClasses> {\n return computed(() => {\n if (props.transition) {\n return formatTransition(props.transition);\n } else {\n switch (props.position) {\n case 'is-top-right':\n case 'is-top':\n case 'is-top-left':\n return {\n 'enter-active-class': 'fadeInDown',\n 'leave-active-class': 'fadeOutUp'\n };\n case 'is-bottom-right':\n case 'is-bottom':\n case 'is-bottom-left':\n return {\n 'enter-active-class': 'fadeInUp',\n 'leave-active-class': 'fadeOutDown'\n };\n }\n }\n });\n}\n\nexport interface RenderNoticeOptions {\n variant?: AllColorsVariant;\n message?: string;\n position?: PositionVariant;\n}\n\nexport interface OpenNoticeOptions extends RenderNoticeOptions {\n duration?: number;\n shouldQueue?: boolean;\n transition?: Transition;\n isIndefinite?: boolean;\n onAction?: IO<void>;\n}\n\nexport function useNoticeController(props: UseNoticeProps, render: Ref<FunctionN<[RenderNoticeOptions], IO<VNode[]>>>) {\n const remove = shallowRef(constVoid);\n const { showNotice } = inject(NOTICE_CONTROLLER_SYMBOL, DEFAULT_NOTICE_CONTROLLER_INJECTION);\n const transition = useNoticeTransition(props);\n onUnmounted(() => {\n remove.value();\n });\n function open(options: OpenNoticeOptions) {\n const position = options.position ?? props.position;\n remove.value();\n remove.value = showNotice({\n placement: position.includes('top') ? 'top' : 'bottom',\n render: render.value(options),\n transition: options.transition ?? transition.value,\n shouldQueue: options.shouldQueue ?? props.shouldQueue,\n duration: options.isIndefinite || props.isIndefinite ? 0 : options.duration ?? props.duration\n });\n }\n\n return {\n open: open,\n close: () => {\n remove.value();\n remove.value = constVoid;\n }\n };\n}\n\nexport type NoticeController = ReturnType<typeof useNoticeController>;\n"],"sourceRoot":"","file":"useNoticeController.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/pagination/index.d.ts b/node_modules/buetify/lib/composables/pagination/index.d.ts new file mode 100755 index 0000000..612e4d2 --- /dev/null +++ b/node_modules/buetify/lib/composables/pagination/index.d.ts @@ -0,0 +1 @@ +export * from './usePagination'; diff --git a/node_modules/buetify/lib/composables/pagination/index.js b/node_modules/buetify/lib/composables/pagination/index.js new file mode 100755 index 0000000..693d481 --- /dev/null +++ b/node_modules/buetify/lib/composables/pagination/index.js @@ -0,0 +1,2 @@ +export * from './usePagination'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/pagination/index.js.map b/node_modules/buetify/lib/composables/pagination/index.js.map new file mode 100755 index 0000000..76e8f58 --- /dev/null +++ b/node_modules/buetify/lib/composables/pagination/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/pagination/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAd","sourcesContent":["export * from './usePagination';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/pagination/usePagination.d.ts b/node_modules/buetify/lib/composables/pagination/usePagination.d.ts new file mode 100755 index 0000000..4aaf93e --- /dev/null +++ b/node_modules/buetify/lib/composables/pagination/usePagination.d.ts @@ -0,0 +1,58 @@ +import { PropType, ExtractPropTypes } from 'vue'; +export declare const DEFAULT_ITEMS_PER_PAGE: import("vue").Ref<number>; +export declare const UsePaginationPropsDefinition: { + modelValue: { + type: PropType<number>; + default: number; + }; + total: { + type: PropType<number>; + required: boolean; + }; + perPage: { + type: PropType<number>; + default: () => number; + validator: (value: number) => boolean; + }; + items: { + type: PropType<unknown[]>; + default: import("fp-ts/lib/function").Lazy<never[]>; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[number], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[number], void>>; + }; +}; +export declare type UsePaginationProps = ExtractPropTypes<typeof UsePaginationPropsDefinition>; +export declare function usePagination<T>(props: UsePaginationProps): { + paginatedItems: import("vue").ComputedRef<T[]>; + current: import("vue").ComputedRef<number>; + numberOfPages: import("vue").ComputedRef<number>; + after: import("vue").ComputedRef<number>; + nextPage: import("vue").ComputedRef<number>; + hasNext: import("vue").ComputedRef<boolean>; + previousPage: import("vue").ComputedRef<number>; + hasPrevious: import("vue").ComputedRef<boolean>; + next: (e: Event) => void; + previous: () => void; + first: () => void; + last: () => void; + set: (num: number) => void; +}; +export declare type Pagination = ReturnType<typeof usePagination>; +export declare function extractPaginationState(pagination: Pagination): { + paginatedItems: unknown[]; + current: number; + numberOfPages: number; + after: number; + nextPage: number; + hasNext: boolean; + previousPage: number; + hasPrevious: boolean; + next: (e: Event) => void; + previous: () => void; + first: () => void; + last: () => void; + set: (num: number) => void; +}; +export declare type ExtractedPaginationState = ReturnType<typeof extractPaginationState>; diff --git a/node_modules/buetify/lib/composables/pagination/usePagination.js b/node_modules/buetify/lib/composables/pagination/usePagination.js new file mode 100755 index 0000000..d968521 --- /dev/null +++ b/node_modules/buetify/lib/composables/pagination/usePagination.js @@ -0,0 +1,100 @@ +import { computed, shallowRef } from 'vue'; +import { constEmptyArray, isNumber } from '../../utils/helpers'; +import { getUseModelPropsDefinition, useModel } from '../model'; +export const DEFAULT_ITEMS_PER_PAGE = shallowRef(25); +export const UsePaginationPropsDefinition = { ...getUseModelPropsDefinition(), + modelValue: { + type: Number, + default: 0 + }, + total: { + type: Number, + required: true + }, + perPage: { + type: Number, + default: () => DEFAULT_ITEMS_PER_PAGE.value, + validator: value => isNumber(value) && value > 0 + }, + items: { + type: Array, + default: constEmptyArray + } +}; +export function usePagination(props) { + const model = useModel(props); + const total = computed(() => props.total ?? props.items.length); + const current = computed(() => Math.max(model.modelValue.value, 1)); + const itemsPerPage = computed(() => props.perPage <= 0 ? DEFAULT_ITEMS_PER_PAGE.value : props.perPage); + const numberOfPages = computed(() => Math.ceil(total.value / itemsPerPage.value)); + const after = computed(() => Math.max((current.value - 1) * itemsPerPage.value, 0)); + const nextPage = computed(() => Math.min(numberOfPages.value, current.value + 1)); + const hasNext = computed(() => { + return itemsPerPage.value + after.value < total.value; + }); + const previousPage = computed(() => Math.max(0, current.value - 1)); + const hasPrevious = computed(() => after.value > 0 && total.value > 0); + const paginatedItems = computed(() => (props.items ?? []).slice(after.value, after.value + itemsPerPage.value)); + + function next(e) { + console.log('here', e, current.value, hasNext.value); + + if (hasNext.value) { + model.modelValue.value = nextPage.value; + } + } + + function previous() { + if (hasPrevious.value) { + model.modelValue.value = previousPage.value; + } + } + + function first() { + model.modelValue.value = 1; + } + + function last() { + model.modelValue.value = numberOfPages.value; + } + + function set(num) { + if (num >= 1 && num <= numberOfPages.value) { + model.modelValue.value = num; + } + } + + return { + paginatedItems, + current, + numberOfPages, + after, + nextPage, + hasNext, + previousPage, + hasPrevious, + next, + previous, + first, + last, + set + }; +} +export function extractPaginationState(pagination) { + return { + paginatedItems: pagination.paginatedItems.value, + current: pagination.current.value, + numberOfPages: pagination.numberOfPages.value, + after: pagination.after.value, + nextPage: pagination.nextPage.value, + hasNext: pagination.hasNext.value, + previousPage: pagination.previousPage.value, + hasPrevious: pagination.hasPrevious.value, + next: pagination.next, + previous: pagination.previous, + first: pagination.first, + last: pagination.last, + set: pagination.set + }; +} +//# sourceMappingURL=usePagination.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/pagination/usePagination.js.map b/node_modules/buetify/lib/composables/pagination/usePagination.js.map new file mode 100755 index 0000000..c9ba016 --- /dev/null +++ b/node_modules/buetify/lib/composables/pagination/usePagination.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/pagination/usePagination.ts"],"names":[],"mappings":"AAAA,SAAqC,QAArC,EAA+C,UAA/C,QAAiE,KAAjE;AACA,SAAS,eAAT,EAA0B,QAA1B,QAA0C,qBAA1C;AACA,SAAS,0BAAT,EAAqC,QAArC,QAAqD,UAArD;AAEA,OAAO,MAAM,sBAAsB,GAAG,UAAU,CAAC,EAAD,CAAzC;AAEP,OAAO,MAAM,4BAA4B,GAAG,EAC1C,GAAG,0BAA0B,EADa;AAE1C,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,OAAO,EAAE;AAFC,GAF8B;AAM1C,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,MADD;AAEL,IAAA,QAAQ,EAAE;AAFL,GANmC;AAU1C,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE,MAAM,sBAAsB,CAAC,KAF/B;AAGP,IAAA,SAAS,EAAG,KAAD,IAAmB,QAAQ,CAAC,KAAD,CAAR,IAAmB,KAAK,GAAG;AAHlD,GAViC;AAe1C,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,KADD;AAEL,IAAA,OAAO,EAAE;AAFJ;AAfmC,CAArC;AAuBP,OAAM,SAAU,aAAV,CAA2B,KAA3B,EAAoD;AACxD,QAAM,KAAK,GAAG,QAAQ,CAAC,KAAD,CAAtB;AACA,QAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAN,IAAe,KAAK,CAAC,KAAN,CAAY,MAAlC,CAAtB;AACA,QAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAL,CAAS,KAAK,CAAC,UAAN,CAAiB,KAA1B,EAA2C,CAA3C,CAAP,CAAxB;AACA,QAAM,YAAY,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,OAAN,IAAiB,CAAjB,GAAqB,sBAAsB,CAAC,KAA5C,GAAoD,KAAK,CAAC,OAAlE,CAA7B;AACA,QAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAL,CAAU,KAAK,CAAC,KAAN,GAAc,YAAY,CAAC,KAArC,CAAP,CAA9B;AACA,QAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAL,CAAS,CAAC,OAAO,CAAC,KAAR,GAAgB,CAAjB,IAAsB,YAAY,CAAC,KAA5C,EAAmD,CAAnD,CAAP,CAAtB;AACA,QAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAL,CAAS,aAAa,CAAC,KAAvB,EAA8B,OAAO,CAAC,KAAR,GAAgB,CAA9C,CAAP,CAAzB;AACA,QAAM,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC5B,WAAO,YAAY,CAAC,KAAb,GAAqB,KAAK,CAAC,KAA3B,GAAmC,KAAK,CAAC,KAAhD;AACD,GAFuB,CAAxB;AAGA,QAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,OAAO,CAAC,KAAR,GAAgB,CAA5B,CAAP,CAA7B;AACA,QAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAN,GAAc,CAAd,IAAmB,KAAK,CAAC,KAAN,GAAc,CAAxC,CAA5B;AAEA,QAAM,cAAc,GAAG,QAAQ,CAC7B,MAAM,CAAC,KAAK,CAAC,KAAN,IAAe,EAAhB,EAAoB,KAApB,CAA0B,KAAK,CAAC,KAAhC,EAAuC,KAAK,CAAC,KAAN,GAAc,YAAY,CAAC,KAAlE,CADuB,CAA/B;;AAIA,WAAS,IAAT,CAAc,CAAd,EAAsB;AACpB,IAAA,OAAO,CAAC,GAAR,CAAY,MAAZ,EAAoB,CAApB,EAAuB,OAAO,CAAC,KAA/B,EAAsC,OAAO,CAAC,KAA9C;;AACA,QAAI,OAAO,CAAC,KAAZ,EAAmB;AACjB,MAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,QAAQ,CAAC,KAAlC;AACD;AACF;;AACD,WAAS,QAAT,GAAiB;AACf,QAAI,WAAW,CAAC,KAAhB,EAAuB;AACrB,MAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,YAAY,CAAC,KAAtC;AACD;AACF;;AACD,WAAS,KAAT,GAAc;AACZ,IAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,CAAzB;AACD;;AACD,WAAS,IAAT,GAAa;AACX,IAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,aAAa,CAAC,KAAvC;AACD;;AACD,WAAS,GAAT,CAAa,GAAb,EAAwB;AACtB,QAAI,GAAG,IAAI,CAAP,IAAY,GAAG,IAAI,aAAa,CAAC,KAArC,EAA4C;AAC1C,MAAA,KAAK,CAAC,UAAN,CAAiB,KAAjB,GAAyB,GAAzB;AACD;AACF;;AACD,SAAO;AACL,IAAA,cADK;AAEL,IAAA,OAFK;AAGL,IAAA,aAHK;AAIL,IAAA,KAJK;AAKL,IAAA,QALK;AAML,IAAA,OANK;AAOL,IAAA,YAPK;AAQL,IAAA,WARK;AASL,IAAA,IATK;AAUL,IAAA,QAVK;AAWL,IAAA,KAXK;AAYL,IAAA,IAZK;AAaL,IAAA;AAbK,GAAP;AAeD;AAID,OAAM,SAAU,sBAAV,CAAiC,UAAjC,EAAuD;AAC3D,SAAO;AACL,IAAA,cAAc,EAAE,UAAU,CAAC,cAAX,CAA0B,KADrC;AAEL,IAAA,OAAO,EAAE,UAAU,CAAC,OAAX,CAAmB,KAFvB;AAGL,IAAA,aAAa,EAAE,UAAU,CAAC,aAAX,CAAyB,KAHnC;AAIL,IAAA,KAAK,EAAE,UAAU,CAAC,KAAX,CAAiB,KAJnB;AAKL,IAAA,QAAQ,EAAE,UAAU,CAAC,QAAX,CAAoB,KALzB;AAML,IAAA,OAAO,EAAE,UAAU,CAAC,OAAX,CAAmB,KANvB;AAOL,IAAA,YAAY,EAAE,UAAU,CAAC,YAAX,CAAwB,KAPjC;AAQL,IAAA,WAAW,EAAE,UAAU,CAAC,WAAX,CAAuB,KAR/B;AASL,IAAA,IAAI,EAAE,UAAU,CAAC,IATZ;AAUL,IAAA,QAAQ,EAAE,UAAU,CAAC,QAVhB;AAWL,IAAA,KAAK,EAAE,UAAU,CAAC,KAXb;AAYL,IAAA,IAAI,EAAE,UAAU,CAAC,IAZZ;AAaL,IAAA,GAAG,EAAE,UAAU,CAAC;AAbX,GAAP;AAeD","sourcesContent":["import { PropType, ExtractPropTypes, computed, shallowRef } from 'vue';\nimport { constEmptyArray, isNumber } from '../../utils/helpers';\nimport { getUseModelPropsDefinition, useModel } from '../model';\n\nexport const DEFAULT_ITEMS_PER_PAGE = shallowRef(25);\n\nexport const UsePaginationPropsDefinition = {\n ...getUseModelPropsDefinition<number>(),\n modelValue: {\n type: Number as PropType<number>,\n default: 0\n },\n total: {\n type: Number as PropType<number>,\n required: true\n },\n perPage: {\n type: Number as PropType<number>,\n default: () => DEFAULT_ITEMS_PER_PAGE.value,\n validator: (value: number) => isNumber(value) && value > 0\n },\n items: {\n type: Array as PropType<Array<unknown>>,\n default: constEmptyArray\n }\n};\n\nexport type UsePaginationProps = ExtractPropTypes<typeof UsePaginationPropsDefinition>;\n\nexport function usePagination<T>(props: UsePaginationProps) {\n const model = useModel(props);\n const total = computed(() => props.total ?? props.items.length);\n const current = computed(() => Math.max(model.modelValue.value as number, 1));\n const itemsPerPage = computed(() => (props.perPage <= 0 ? DEFAULT_ITEMS_PER_PAGE.value : props.perPage));\n const numberOfPages = computed(() => Math.ceil(total.value / itemsPerPage.value));\n const after = computed(() => Math.max((current.value - 1) * itemsPerPage.value, 0));\n const nextPage = computed(() => Math.min(numberOfPages.value, current.value + 1));\n const hasNext = computed(() => {\n return itemsPerPage.value + after.value < total.value;\n });\n const previousPage = computed(() => Math.max(0, current.value - 1));\n const hasPrevious = computed(() => after.value > 0 && total.value > 0);\n\n const paginatedItems = computed<T[]>(\n () => (props.items ?? []).slice(after.value, after.value + itemsPerPage.value) as T[]\n );\n\n function next(e: Event) {\n console.log('here', e, current.value, hasNext.value);\n if (hasNext.value) {\n model.modelValue.value = nextPage.value;\n }\n }\n function previous() {\n if (hasPrevious.value) {\n model.modelValue.value = previousPage.value;\n }\n }\n function first() {\n model.modelValue.value = 1;\n }\n function last() {\n model.modelValue.value = numberOfPages.value;\n }\n function set(num: number) {\n if (num >= 1 && num <= numberOfPages.value) {\n model.modelValue.value = num;\n }\n }\n return {\n paginatedItems,\n current,\n numberOfPages,\n after,\n nextPage,\n hasNext,\n previousPage,\n hasPrevious,\n next,\n previous,\n first,\n last,\n set\n };\n}\n\nexport type Pagination = ReturnType<typeof usePagination>;\n\nexport function extractPaginationState(pagination: Pagination) {\n return {\n paginatedItems: pagination.paginatedItems.value,\n current: pagination.current.value,\n numberOfPages: pagination.numberOfPages.value,\n after: pagination.after.value,\n nextPage: pagination.nextPage.value,\n hasNext: pagination.hasNext.value,\n previousPage: pagination.previousPage.value,\n hasPrevious: pagination.hasPrevious.value,\n next: pagination.next,\n previous: pagination.previous,\n first: pagination.first,\n last: pagination.last,\n set: pagination.set\n };\n}\n\nexport type ExtractedPaginationState = ReturnType<typeof extractPaginationState>;\n"],"sourceRoot":"","file":"usePagination.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/popupController/index.d.ts b/node_modules/buetify/lib/composables/popupController/index.d.ts new file mode 100755 index 0000000..d14872d --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/index.d.ts @@ -0,0 +1,2 @@ +export * from './providePopupController'; +export * from './usePopupController'; diff --git a/node_modules/buetify/lib/composables/popupController/index.js b/node_modules/buetify/lib/composables/popupController/index.js new file mode 100755 index 0000000..d7992db --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/index.js @@ -0,0 +1,3 @@ +export * from './providePopupController'; +export * from './usePopupController'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/popupController/index.js.map b/node_modules/buetify/lib/composables/popupController/index.js.map new file mode 100755 index 0000000..5b35635 --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/popupController/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAAd;AACA,cAAc,sBAAd","sourcesContent":["export * from './providePopupController';\nexport * from './usePopupController';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/popupController/providePopupController.d.ts b/node_modules/buetify/lib/composables/popupController/providePopupController.d.ts new file mode 100755 index 0000000..7700fb4 --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/providePopupController.d.ts @@ -0,0 +1,14 @@ +import { IO } from 'fp-ts/lib/IO'; +import { VNode } from 'vue'; +import { Transition } from '../../types/Transition'; +import { Remove } from '../shared'; +export declare const POPUP_CONTROLLER_SYMBOL: unique symbol; +export interface ShowPopupOptions { + render: IO<VNode[]>; + transition?: Transition; +} +export interface PopupControllerInjection { + showPopup: (options: ShowPopupOptions) => Remove; +} +export declare const DEFAULT_POPUP_CONTROLLER_INJECTION: PopupControllerInjection; +export declare function providePopupController(showPopup: (options: ShowPopupOptions) => Remove): PopupControllerInjection; diff --git a/node_modules/buetify/lib/composables/popupController/providePopupController.js b/node_modules/buetify/lib/composables/popupController/providePopupController.js new file mode 100755 index 0000000..8c4b9b8 --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/providePopupController.js @@ -0,0 +1,14 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { provide } from 'vue'; +export const POPUP_CONTROLLER_SYMBOL = Symbol('popup-controller'); +export const DEFAULT_POPUP_CONTROLLER_INJECTION = { + showPopup: constant(constVoid) +}; +export function providePopupController(showPopup) { + const injection = { + showPopup + }; + provide(POPUP_CONTROLLER_SYMBOL, injection); + return injection; +} +//# sourceMappingURL=providePopupController.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/popupController/providePopupController.js.map b/node_modules/buetify/lib/composables/popupController/providePopupController.js.map new file mode 100755 index 0000000..f85598d --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/providePopupController.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/popupController/providePopupController.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,SAAnB,QAAoC,oBAApC;AAEA,SAAS,OAAT,QAA+B,KAA/B;AAIA,OAAO,MAAM,uBAAuB,GAAG,MAAM,CAAC,kBAAD,CAAtC;AAWP,OAAO,MAAM,kCAAkC,GAA6B;AAC1E,EAAA,SAAS,EAAE,QAAQ,CAAC,SAAD;AADuD,CAArE;AAIP,OAAM,SAAU,sBAAV,CAAiC,SAAjC,EAAiF;AACrF,QAAM,SAAS,GAA6B;AAC1C,IAAA;AAD0C,GAA5C;AAIA,EAAA,OAAO,CAAC,uBAAD,EAA0B,SAA1B,CAAP;AACA,SAAO,SAAP;AACD","sourcesContent":["import { constant, constVoid } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { provide, VNode } from 'vue';\nimport { Transition } from '../../types/Transition';\nimport { Remove } from '../shared';\n\nexport const POPUP_CONTROLLER_SYMBOL = Symbol('popup-controller');\n\nexport interface ShowPopupOptions {\n render: IO<VNode[]>;\n transition?: Transition;\n}\n\nexport interface PopupControllerInjection {\n showPopup: (options: ShowPopupOptions) => Remove;\n}\n\nexport const DEFAULT_POPUP_CONTROLLER_INJECTION: PopupControllerInjection = {\n showPopup: constant(constVoid)\n};\n\nexport function providePopupController(showPopup: (options: ShowPopupOptions) => Remove) {\n const injection: PopupControllerInjection = {\n showPopup\n };\n\n provide(POPUP_CONTROLLER_SYMBOL, injection);\n return injection;\n}\n"],"sourceRoot":"","file":"providePopupController.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/popupController/usePopupController.d.ts b/node_modules/buetify/lib/composables/popupController/usePopupController.d.ts new file mode 100755 index 0000000..f6b7ae8 --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/usePopupController.d.ts @@ -0,0 +1,58 @@ +import { IO } from 'fp-ts/lib/IO'; +import { VNode, ExtractPropTypes, Ref } from 'vue'; +export declare const UsePopupControllerPropsDefinition: { + onToggle: { + type: import("vue").PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: import("vue").PropType<IO<void>>; + required: false; + }; + isActive: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + hasPopup: { + type: import("vue").PropType<boolean>; + default: boolean; + }; + transition: { + type: import("vue").PropType<import("../..").Transition>; + default: import("fp-ts/lib/function").Lazy<import("../..").Transition>; + }; +}; +export declare type UsePopupProps = ExtractPropTypes<typeof UsePopupControllerPropsDefinition>; +export declare function usePopupController(props: UsePopupProps, render: Ref<IO<VNode[]>>): { + isOpen: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + open: (e?: Event | undefined) => void; + close: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; +}; +export declare type PopupController = ReturnType<typeof usePopupController>; diff --git a/node_modules/buetify/lib/composables/popupController/usePopupController.js b/node_modules/buetify/lib/composables/popupController/usePopupController.js new file mode 100755 index 0000000..853d577 --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/usePopupController.js @@ -0,0 +1,58 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { inject, shallowRef, onMounted, computed, watchEffect, toRef, onUnmounted } from 'vue'; +import { getToggleAttrs, getUseTogglePropsDefinition, useToggle } from '../toggle'; +import { FadeTransitionPropsDefinition } from '../transition'; +import { DEFAULT_POPUP_CONTROLLER_INJECTION, POPUP_CONTROLLER_SYMBOL } from './providePopupController'; +export const UsePopupControllerPropsDefinition = { ...FadeTransitionPropsDefinition, + ...getUseTogglePropsDefinition('isActive') +}; +export function usePopupController(props, render) { + const hasMounted = shallowRef(false); + onMounted(() => { + hasMounted.value = true; + }); + let remove = constVoid; + const { + isOn, + setOn, + setOff, + toggle, + listeners + } = useToggle(props, 'isActive'); + const { + showPopup + } = inject(POPUP_CONTROLLER_SYMBOL, DEFAULT_POPUP_CONTROLLER_INJECTION); + const isOpen = computed(() => { + return hasMounted.value && isOn.value; + }); + const attrs = getToggleAttrs(isOpen, toRef(props, 'hasPopup')); + watchEffect(() => { + if (isOpen.value) { + remove(); + remove = showPopup({ + render: render.value, + transition: props.transition + }); + } else { + remove(); + remove = constVoid; + } + }, { + flush: 'sync' + }); + onUnmounted(() => { + remove(); + }); + return { + isOpen, + attrs, + listeners, + props: computed(() => ({ ...attrs.value, + ...listeners + })), + open: setOn, + close: setOff, + toggle: toggle + }; +} +//# sourceMappingURL=usePopupController.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/popupController/usePopupController.js.map b/node_modules/buetify/lib/composables/popupController/usePopupController.js.map new file mode 100755 index 0000000..751eaeb --- /dev/null +++ b/node_modules/buetify/lib/composables/popupController/usePopupController.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/popupController/usePopupController.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,QAA0B,oBAA1B;AAEA,SACE,MADF,EAIE,UAJF,EAKE,SALF,EAME,QANF,EAOE,WAPF,EAQE,KARF,EASE,WATF,QAWO,KAXP;AAYA,SAAS,cAAT,EAAyB,2BAAzB,EAAsD,SAAtD,QAAuE,WAAvE;AACA,SAAS,6BAAT,QAA8C,eAA9C;AACA,SAAS,kCAAT,EAA6C,uBAA7C,QAA4E,0BAA5E;AAEA,OAAO,MAAM,iCAAiC,GAAG,EAC/C,GAAG,6BAD4C;AAE/C,KAAG,2BAA2B,CAAC,UAAD;AAFiB,CAA1C;AAOP,OAAM,SAAU,kBAAV,CAA6B,KAA7B,EAAmD,MAAnD,EAA2E;AAC/E,QAAM,UAAU,GAAG,UAAU,CAAC,KAAD,CAA7B;AACA,EAAA,SAAS,CAAC,MAAK;AACb,IAAA,UAAU,CAAC,KAAX,GAAmB,IAAnB;AACD,GAFQ,CAAT;AAGA,MAAI,MAAM,GAAG,SAAb;AACA,QAAM;AAAE,IAAA,IAAF;AAAQ,IAAA,KAAR;AAAe,IAAA,MAAf;AAAuB,IAAA,MAAvB;AAA+B,IAAA;AAA/B,MAA6C,SAAS,CAAC,KAAD,EAAQ,UAAR,CAA5D;AACA,QAAM;AAAE,IAAA;AAAF,MAAgB,MAAM,CAAC,uBAAD,EAA0B,kCAA1B,CAA5B;AACA,QAAM,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC3B,WAAO,UAAU,CAAC,KAAX,IAAoB,IAAI,CAAC,KAAhC;AACD,GAFsB,CAAvB;AAGA,QAAM,KAAK,GAAG,cAAc,CAAC,MAAD,EAAS,KAAK,CAAC,KAAD,EAAQ,UAAR,CAAd,CAA5B;AACA,EAAA,WAAW,CACT,MAAK;AACH,QAAI,MAAM,CAAC,KAAX,EAAkB;AAChB,MAAA,MAAM;AACN,MAAA,MAAM,GAAG,SAAS,CAAC;AACjB,QAAA,MAAM,EAAE,MAAM,CAAC,KADE;AAEjB,QAAA,UAAU,EAAE,KAAK,CAAC;AAFD,OAAD,CAAlB;AAID,KAND,MAMO;AACL,MAAA,MAAM;AACN,MAAA,MAAM,GAAG,SAAT;AACD;AACF,GAZQ,EAaT;AACE,IAAA,KAAK,EAAE;AADT,GAbS,CAAX;AAkBA,EAAA,WAAW,CAAC,MAAK;AACf,IAAA,MAAM;AACP,GAFU,CAAX;AAIA,SAAO;AACL,IAAA,MADK;AAEL,IAAA,KAFK;AAGL,IAAA,SAHK;AAIL,IAAA,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAX;AAAkB,SAAG;AAArB,KAAP,CAAD,CAJV;AAKL,IAAA,IAAI,EAAE,KALD;AAML,IAAA,KAAK,EAAE,MANF;AAOL,IAAA,MAAM,EAAE;AAPH,GAAP;AASD","sourcesContent":["import { constVoid } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport {\n inject,\n VNode,\n ExtractPropTypes,\n shallowRef,\n onMounted,\n computed,\n watchEffect,\n toRef,\n onUnmounted,\n Ref\n} from 'vue';\nimport { getToggleAttrs, getUseTogglePropsDefinition, useToggle } from '../toggle';\nimport { FadeTransitionPropsDefinition } from '../transition';\nimport { DEFAULT_POPUP_CONTROLLER_INJECTION, POPUP_CONTROLLER_SYMBOL } from './providePopupController';\n\nexport const UsePopupControllerPropsDefinition = {\n ...FadeTransitionPropsDefinition,\n ...getUseTogglePropsDefinition('isActive')\n};\n\nexport type UsePopupProps = ExtractPropTypes<typeof UsePopupControllerPropsDefinition>;\n\nexport function usePopupController(props: UsePopupProps, render: Ref<IO<VNode[]>>) {\n const hasMounted = shallowRef(false);\n onMounted(() => {\n hasMounted.value = true;\n });\n let remove = constVoid;\n const { isOn, setOn, setOff, toggle, listeners } = useToggle(props, 'isActive');\n const { showPopup } = inject(POPUP_CONTROLLER_SYMBOL, DEFAULT_POPUP_CONTROLLER_INJECTION);\n const isOpen = computed(() => {\n return hasMounted.value && isOn.value;\n });\n const attrs = getToggleAttrs(isOpen, toRef(props, 'hasPopup'));\n watchEffect(\n () => {\n if (isOpen.value) {\n remove();\n remove = showPopup({\n render: render.value,\n transition: props.transition\n });\n } else {\n remove();\n remove = constVoid;\n }\n },\n {\n flush: 'sync'\n }\n );\n\n onUnmounted(() => {\n remove();\n });\n\n return {\n isOpen,\n attrs,\n listeners,\n props: computed(() => ({ ...attrs.value, ...listeners })),\n open: setOn,\n close: setOff,\n toggle: toggle\n };\n}\n\nexport type PopupController = ReturnType<typeof usePopupController>;\n"],"sourceRoot":"","file":"usePopupController.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/proxy/index.d.ts b/node_modules/buetify/lib/composables/proxy/index.d.ts new file mode 100755 index 0000000..2161baa --- /dev/null +++ b/node_modules/buetify/lib/composables/proxy/index.d.ts @@ -0,0 +1 @@ +export * from './useProxy'; diff --git a/node_modules/buetify/lib/composables/proxy/index.js b/node_modules/buetify/lib/composables/proxy/index.js new file mode 100755 index 0000000..9418f3b --- /dev/null +++ b/node_modules/buetify/lib/composables/proxy/index.js @@ -0,0 +1,2 @@ +export * from './useProxy'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/proxy/index.js.map b/node_modules/buetify/lib/composables/proxy/index.js.map new file mode 100755 index 0000000..dff973c --- /dev/null +++ b/node_modules/buetify/lib/composables/proxy/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/proxy/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAd","sourcesContent":["export * from './useProxy';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/proxy/useProxy.d.ts b/node_modules/buetify/lib/composables/proxy/useProxy.d.ts new file mode 100755 index 0000000..0eb3574 --- /dev/null +++ b/node_modules/buetify/lib/composables/proxy/useProxy.d.ts @@ -0,0 +1,6 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { Ref } from 'vue'; +export declare function useProxy<T>(ref: Ref<T>, onUpdate?: Ref<FunctionN<[T], void> | undefined> | FunctionN<[T], void>): Proxy<T>; +export interface Proxy<T> { + value: Ref<T>; +} diff --git a/node_modules/buetify/lib/composables/proxy/useProxy.js b/node_modules/buetify/lib/composables/proxy/useProxy.js new file mode 100755 index 0000000..117a2fe --- /dev/null +++ b/node_modules/buetify/lib/composables/proxy/useProxy.js @@ -0,0 +1,26 @@ +import { shallowRef, watch, computed, unref } from 'vue'; +export function useProxy(ref, onUpdate) { + const internalValue = shallowRef(ref.value); + watch(ref, newValue => { + internalValue.value = newValue; + }); + const value = computed({ + get() { + return internalValue.value; + }, + + set(val) { + internalValue.value = val; + const update = unref(onUpdate); + + if (update) { + update(val); + } + } + + }); + return { + value + }; +} +//# sourceMappingURL=useProxy.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/proxy/useProxy.js.map b/node_modules/buetify/lib/composables/proxy/useProxy.js.map new file mode 100755 index 0000000..51deb3f --- /dev/null +++ b/node_modules/buetify/lib/composables/proxy/useProxy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/proxy/useProxy.ts"],"names":[],"mappings":"AACA,SAAc,UAAd,EAA0B,KAA1B,EAAiC,QAAjC,EAA2C,KAA3C,QAAwD,KAAxD;AAEA,OAAM,SAAU,QAAV,CACJ,GADI,EAEJ,QAFI,EAEmE;AAEvE,QAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,KAAL,CAAhC;AACA,EAAA,KAAK,CAAC,GAAD,EAAM,QAAQ,IAAG;AACpB,IAAA,aAAa,CAAC,KAAd,GAAsB,QAAtB;AACD,GAFI,CAAL;AAIA,QAAM,KAAK,GAAG,QAAQ,CAAC;AACrB,IAAA,GAAG,GAAA;AACD,aAAO,aAAa,CAAC,KAArB;AACD,KAHoB;;AAIrB,IAAA,GAAG,CAAC,GAAD,EAAO;AACR,MAAA,aAAa,CAAC,KAAd,GAAsB,GAAtB;AACA,YAAM,MAAM,GAAG,KAAK,CAAC,QAAD,CAApB;;AACA,UAAI,MAAJ,EAAY;AACV,QAAA,MAAM,CAAC,GAAD,CAAN;AACD;AACF;;AAVoB,GAAD,CAAtB;AAaA,SAAO;AACL,IAAA;AADK,GAAP;AAGD","sourcesContent":["import { FunctionN } from 'fp-ts/lib/function';\nimport { Ref, shallowRef, watch, computed, unref } from 'vue';\n\nexport function useProxy<T>(\n ref: Ref<T>,\n onUpdate?: Ref<FunctionN<[T], void> | undefined> | FunctionN<[T], void>\n): Proxy<T> {\n const internalValue = shallowRef(ref.value);\n watch(ref, newValue => {\n internalValue.value = newValue;\n });\n\n const value = computed({\n get() {\n return internalValue.value;\n },\n set(val: T) {\n internalValue.value = val;\n const update = unref(onUpdate);\n if (update) {\n update(val);\n }\n }\n });\n\n return {\n value\n };\n}\n\nexport interface Proxy<T> {\n value: Ref<T>;\n}\n"],"sourceRoot":"","file":"useProxy.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/selectionControl/index.d.ts b/node_modules/buetify/lib/composables/selectionControl/index.d.ts new file mode 100755 index 0000000..2258967 --- /dev/null +++ b/node_modules/buetify/lib/composables/selectionControl/index.d.ts @@ -0,0 +1 @@ +export * from './useSelectionControl'; diff --git a/node_modules/buetify/lib/composables/selectionControl/index.js b/node_modules/buetify/lib/composables/selectionControl/index.js new file mode 100755 index 0000000..280a225 --- /dev/null +++ b/node_modules/buetify/lib/composables/selectionControl/index.js @@ -0,0 +1,2 @@ +export * from './useSelectionControl'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/selectionControl/index.js.map b/node_modules/buetify/lib/composables/selectionControl/index.js.map new file mode 100755 index 0000000..12d6e82 --- /dev/null +++ b/node_modules/buetify/lib/composables/selectionControl/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/selectionControl/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAd","sourcesContent":["export * from './useSelectionControl';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.d.ts b/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.d.ts new file mode 100755 index 0000000..28100fb --- /dev/null +++ b/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.d.ts @@ -0,0 +1,144 @@ +import { Eq } from 'fp-ts/lib/Eq'; +import { PropType, Ref, ComputedRef } from 'vue'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { UseDisableProps } from '../disable'; +import { UseLabelIdProps } from '../labelId'; +import { UseModelProps } from '../model'; +import { EqProps } from '../shared'; +export declare function getUseSelectablePropsDefinition<T>(): { + isFocused: { + type: PropType<boolean>; + default: boolean; + }; + onFocus: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + onBlur: { + type: PropType<(e?: Event | undefined) => void>; + required: false; + }; + focusOnMount: { + type: PropType<boolean>; + default: boolean; + }; + labelFor: PropType<string>; + label: { + type: PropType<string>; + default: string; + }; + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<import("fp-ts/lib/function").FunctionN<[T], void>>; + default: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/function").FunctionN<[T], void>>; + }; + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; + nativeValue: { + type: PropType<unknown>; + required: boolean; + default: null; + }; + trueValue: { + type: PropType<T>; + default: T; + }; + falseValue: { + type: PropType<T>; + default: T; + }; + isIndeterminate: { + type: PropType<boolean>; + default: boolean; + }; + isMultiple: { + type: PropType<boolean>; + default: boolean; + }; + variant: { + type: PropType<ColorVariant>; + default: ColorVariant; + }; + size: { + type: PropType<SizeVariant>; + default: SizeVariant; + }; + isRequired: { + type: PropType<boolean>; + default: boolean; + }; + name: { + type: PropType<string>; + required: boolean; + }; +}; +export declare type UseSelectableProps<T> = { + nativeValue: unknown; + trueValue: T; + falseValue: T; + indeterminateValue?: T; + isMultiple: boolean; + variant: ColorVariant; + size: SizeVariant; + isRequired: boolean; + isIndeterminate: boolean; + name?: string; +} & EqProps<T> & UseModelProps<T> & UseDisableProps & UseLabelIdProps; +export declare function useSelectionControl<T>(props: UseSelectableProps<T>, ref: Ref<HTMLElement>, role: string, type: string): { + isDisabled: Ref<boolean>; + isMultiple: ComputedRef<boolean>; + isActive: ComputedRef<boolean>; + attrs: ComputedRef<{ + role: string; + type: string; + id: string; + name: string | undefined; + checked: boolean; + 'aria-checked': boolean; + 'aria-disabled': boolean; + 'aria-labelledby': string; + tabindex: number; + readonly: boolean; + disabled: boolean; + required: boolean; + indeterminate: boolean | undefined; + value: string; + 'true-value': string; + 'false-value': string; + }>; + onChange: () => void; + onKeydown: (e: KeyboardEvent) => void; + onClick: () => void; + label: { + id: ComputedRef<string>; + labelId: ComputedRef<string>; + label: Ref<string>; + }; + isFocused: Ref<boolean>; + focus: (e?: Event | undefined) => void; + onFocus: (e?: Event | undefined) => void; + onBlur: (e?: Event | undefined) => void; + modelValue: Ref<T | undefined>; +}; +export declare type SelectionControl = ReturnType<typeof useSelectionControl>; diff --git a/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.js b/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.js new file mode 100755 index 0000000..8e46c44 --- /dev/null +++ b/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.js @@ -0,0 +1,150 @@ +import { computed, toRef } from 'vue'; +import { isEnterEvent, isSpaceEvent } from '../../utils/eventHelpers'; +import { toggleListItem } from '../../utils/helpers'; +import { useDisable, UseDisablePropsDefinition } from '../disable'; +import { useFocus, UseFocusPropsDefinition } from '../focus'; +import { useLabelId, UseLabelIdPropsDefinition } from '../labelId'; +import { getUseModelPropsDefinition, useModel } from '../model'; +import { getEqPropsDefinition } from '../shared'; +export function getUseSelectablePropsDefinition() { + return { + nativeValue: { + type: null, + required: false, + default: null + }, + trueValue: { + type: null, + default: true + }, + falseValue: { + type: null, + default: false + }, + isIndeterminate: { + type: Boolean, + default: false + }, + isMultiple: { + type: Boolean, + default: false + }, + variant: { + type: String, + default: 'is-primary' + }, + size: { + type: String, + default: '' + }, + isRequired: { + type: Boolean, + default: false + }, + name: { + type: String, + required: false + }, + ...getEqPropsDefinition(), + ...getUseModelPropsDefinition(), + ...UseDisablePropsDefinition, + ...UseLabelIdPropsDefinition, + ...UseFocusPropsDefinition + }; +} + +function getIsActive(value, trueValue, isMultiple, eq) { + if (isMultiple) { + if (!Array.isArray(value)) return false; + return trueValue !== undefined && value.some(item => eq.equals(item, trueValue)); + } + + if (!Array.isArray(value) && trueValue !== undefined) { + return value !== undefined && eq.equals(value, trueValue); + } + + return false; +} + +function getOnChange(value, trueValue, falseValue, isDisabled, isMultiple, eq) { + return function onChange() { + if (isDisabled.value) return; + if (trueValue.value === undefined) return; + const currentValue = value.value; + const tValue = trueValue.value; + const fValue = falseValue.value; + + if (isMultiple.value) { + if (!Array.isArray(currentValue)) { + value.value = []; + } else { + value.value = toggleListItem(eq.value)(tValue, currentValue); + } + } else if (!Array.isArray(currentValue)) { + if (currentValue === undefined || currentValue !== undefined && !eq.value.equals(currentValue, tValue)) { + value.value = tValue; + } else { + value.value = fValue; + } + } + }; +} + +function getInputAttrs(role, type, id, labelId, isActive, isDisabled, isReadonly, isRequired, trueValue, falseValue, nativeValue, isIndeterminate, name) { + return { + role, + type, + id, + name, + checked: isActive, + 'aria-checked': isActive, + 'aria-disabled': isDisabled, + 'aria-labelledby': labelId, + tabindex: -1, + readonly: isReadonly, + disabled: isDisabled, + required: isRequired, + indeterminate: isIndeterminate, + value: JSON.stringify(nativeValue), + 'true-value': JSON.stringify(trueValue), + 'false-value': JSON.stringify(falseValue) + }; +} + +export function useSelectionControl(props, ref, role, type) { + const { + modelValue + } = useModel(props); + const focus = useFocus(props, ref); + const trueValue = computed(() => props.nativeValue || props.trueValue); + const label = useLabelId(props, role); + const isMultiple = computed(() => props.isMultiple || Array.isArray(modelValue.value)); + const isActive = computed(() => getIsActive(modelValue.value, trueValue.value, isMultiple.value, props.eq)); + const isDisabled = useDisable(props); + const onChange = getOnChange(modelValue, trueValue, toRef(props, 'falseValue'), isDisabled, isMultiple, toRef(props, 'eq')); + const attrs = computed(() => getInputAttrs(role, type, label.id.value, label.labelId.value, isActive.value, isDisabled.value, props.isReadonly, props.isRequired, props.trueValue, props.falseValue, props.nativeValue, props.isIndeterminate, props.name)); + + function onKeydown(e) { + if (isEnterEvent(e) || isSpaceEvent(e)) { + ref.value?.click(); + } + } + + function onClick() { + focus.focus(); + } + + return { + modelValue, + ...focus, + isDisabled, + isMultiple, + isActive, + attrs, + onChange, + onKeydown, + onClick, + label + }; +} +//# sourceMappingURL=useSelectionControl.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.js.map b/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.js.map new file mode 100755 index 0000000..6963167 --- /dev/null +++ b/node_modules/buetify/lib/composables/selectionControl/useSelectionControl.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/selectionControl/useSelectionControl.ts"],"names":[],"mappings":"AACA,SAAwB,QAAxB,EAAkC,KAAlC,QAA4D,KAA5D;AAGA,SAAS,YAAT,EAAuB,YAAvB,QAA2C,0BAA3C;AACA,SAAS,cAAT,QAA+B,qBAA/B;AACA,SAAS,UAAT,EAAsC,yBAAtC,QAAuE,YAAvE;AACA,SAAS,QAAT,EAAkC,uBAAlC,QAAiE,UAAjE;AACA,SAAS,UAAT,EAAsC,yBAAtC,QAAuE,YAAvE;AACA,SAAS,0BAAT,EAAqC,QAArC,QAAoE,UAApE;AACA,SAAkB,oBAAlB,QAA8C,WAA9C;AAEA,OAAM,SAAU,+BAAV,GAAyC;AAC7C,SAAO;AACL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAG,IADI;AAEX,MAAA,QAAQ,EAAE,KAFC;AAGX,MAAA,OAAO,EAAE;AAHE,KADR;AAML,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAG,IADE;AAET,MAAA,OAAO,EAAG;AAFD,KANN;AAUL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAG,IADG;AAEV,MAAA,OAAO,EAAG;AAFA,KAVP;AAcL,IAAA,eAAe,EAAE;AACf,MAAA,IAAI,EAAE,OADS;AAEf,MAAA,OAAO,EAAE;AAFM,KAdZ;AAkBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAlBP;AAsBL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP,MAAA,OAAO,EAAE;AAFF,KAtBJ;AA0BL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KA1BD;AA8BL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,OADI;AAEV,MAAA,OAAO,EAAE;AAFC,KA9BP;AAkCL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,QAAQ,EAAE;AAFN,KAlCD;AAsCL,OAAG,oBAAoB,EAtClB;AAuCL,OAAG,0BAA0B,EAvCxB;AAwCL,OAAG,yBAxCE;AAyCL,OAAG,yBAzCE;AA0CL,OAAG;AA1CE,GAAP;AA4CD;;AAkBD,SAAS,WAAT,CAAwB,KAAxB,EAAoD,SAApD,EAA8E,UAA9E,EAAmG,EAAnG,EAA4G;AAC1G,MAAI,UAAJ,EAAgB;AACd,QAAI,CAAC,KAAK,CAAC,OAAN,CAAc,KAAd,CAAL,EAA2B,OAAO,KAAP;AAC3B,WAAO,SAAS,KAAK,SAAd,IAA2B,KAAK,CAAC,IAAN,CAAW,IAAI,IAAI,EAAE,CAAC,MAAH,CAAU,IAAV,EAAgB,SAAhB,CAAnB,CAAlC;AACD;;AACD,MAAI,CAAC,KAAK,CAAC,OAAN,CAAc,KAAd,CAAD,IAAyB,SAAS,KAAK,SAA3C,EAAsD;AACpD,WAAO,KAAK,KAAK,SAAV,IAAuB,EAAE,CAAC,MAAH,CAAU,KAAV,EAAiB,SAAjB,CAA9B;AACD;;AACD,SAAO,KAAP;AACD;;AAED,SAAS,WAAT,CACE,KADF,EAEE,SAFF,EAGE,UAHF,EAIE,UAJF,EAKE,UALF,EAME,EANF,EAMgB;AAEd,SAAO,SAAS,QAAT,GAAiB;AACtB,QAAI,UAAU,CAAC,KAAf,EAAsB;AACtB,QAAI,SAAS,CAAC,KAAV,KAAoB,SAAxB,EAAmC;AACnC,UAAM,YAAY,GAAG,KAAK,CAAC,KAA3B;AACA,UAAM,MAAM,GAAG,SAAS,CAAC,KAAzB;AACA,UAAM,MAAM,GAAG,UAAU,CAAC,KAA1B;;AACA,QAAI,UAAU,CAAC,KAAf,EAAsB;AACpB,UAAI,CAAC,KAAK,CAAC,OAAN,CAAc,YAAd,CAAL,EAAkC;AAChC,QAAA,KAAK,CAAC,KAAN,GAAc,EAAd;AACD,OAFD,MAEO;AACL,QAAA,KAAK,CAAC,KAAN,GAAc,cAAc,CAAC,EAAE,CAAC,KAAJ,CAAd,CAAyB,MAAzB,EAAiC,YAAjC,CAAd;AACD;AACF,KAND,MAMO,IAAI,CAAC,KAAK,CAAC,OAAN,CAAc,YAAd,CAAL,EAAkC;AACvC,UAAI,YAAY,KAAK,SAAjB,IAA+B,YAAY,KAAK,SAAjB,IAA8B,CAAC,EAAE,CAAC,KAAH,CAAS,MAAT,CAAgB,YAAhB,EAA8B,MAA9B,CAAlE,EAA0G;AACxG,QAAA,KAAK,CAAC,KAAN,GAAc,MAAd;AACD,OAFD,MAEO;AACL,QAAA,KAAK,CAAC,KAAN,GAAc,MAAd;AACD;AACF;AACF,GAnBD;AAoBD;;AAED,SAAS,aAAT,CACE,IADF,EAEE,IAFF,EAGE,EAHF,EAIE,OAJF,EAKE,QALF,EAME,UANF,EAOE,UAPF,EAQE,UARF,EASE,SATF,EAUE,UAVF,EAWE,WAXF,EAYE,eAZF,EAaE,IAbF,EAae;AAEb,SAAO;AACL,IAAA,IADK;AAEL,IAAA,IAFK;AAGL,IAAA,EAHK;AAIL,IAAA,IAJK;AAKL,IAAA,OAAO,EAAE,QALJ;AAML,oBAAgB,QANX;AAOL,qBAAiB,UAPZ;AAQL,uBAAmB,OARd;AASL,IAAA,QAAQ,EAAE,CAAC,CATN;AAUL,IAAA,QAAQ,EAAE,UAVL;AAWL,IAAA,QAAQ,EAAE,UAXL;AAYL,IAAA,QAAQ,EAAE,UAZL;AAaL,IAAA,aAAa,EAAE,eAbV;AAcL,IAAA,KAAK,EAAE,IAAI,CAAC,SAAL,CAAe,WAAf,CAdF;AAeL,kBAAc,IAAI,CAAC,SAAL,CAAe,SAAf,CAfT;AAgBL,mBAAe,IAAI,CAAC,SAAL,CAAe,UAAf;AAhBV,GAAP;AAkBD;;AAED,OAAM,SAAU,mBAAV,CACJ,KADI,EAEJ,GAFI,EAGJ,IAHI,EAIJ,IAJI,EAIQ;AAEZ,QAAM;AAAE,IAAA;AAAF,MAAiB,QAAQ,CAAI,KAAJ,CAA/B;AACA,QAAM,KAAK,GAAG,QAAQ,CAAE,KAAF,EAAsC,GAAtC,CAAtB;AACA,QAAM,SAAS,GAAG,QAAQ,CAAC,MAAO,KAAK,CAAC,WAAN,IAAqB,KAAK,CAAC,SAAnC,CAA1B;AACA,QAAM,KAAK,GAAG,UAAU,CAAC,KAAD,EAAQ,IAAR,CAAxB;AACA,QAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,UAAN,IAAoB,KAAK,CAAC,OAAN,CAAc,UAAU,CAAC,KAAzB,CAA3B,CAA3B;AACA,QAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,KAAZ,EAAmB,SAAS,CAAC,KAA7B,EAAoC,UAAU,CAAC,KAA/C,EAAsD,KAAK,CAAC,EAA5D,CAAlB,CAAzB;AACA,QAAM,UAAU,GAAG,UAAU,CAAC,KAAD,CAA7B;AAEA,QAAM,QAAQ,GAAG,WAAW,CAC1B,UAD0B,EAE1B,SAF0B,EAG1B,KAAK,CAAC,KAAD,EAAQ,YAAR,CAHqB,EAI1B,UAJ0B,EAK1B,UAL0B,EAM1B,KAAK,CAAC,KAAD,EAAQ,IAAR,CANqB,CAA5B;AASA,QAAM,KAAK,GAAG,QAAQ,CAAC,MACrB,aAAa,CACX,IADW,EAEX,IAFW,EAGX,KAAK,CAAC,EAAN,CAAS,KAHE,EAIX,KAAK,CAAC,OAAN,CAAc,KAJH,EAKX,QAAQ,CAAC,KALE,EAMX,UAAU,CAAC,KANA,EAOX,KAAK,CAAC,UAPK,EAQX,KAAK,CAAC,UARK,EASX,KAAK,CAAC,SATK,EAUX,KAAK,CAAC,UAVK,EAWX,KAAK,CAAC,WAXK,EAYX,KAAK,CAAC,eAZK,EAaX,KAAK,CAAC,IAbK,CADO,CAAtB;;AAkBA,WAAS,SAAT,CAAmB,CAAnB,EAAmC;AACjC,QAAI,YAAY,CAAC,CAAD,CAAZ,IAAmB,YAAY,CAAC,CAAD,CAAnC,EAAwC;AACtC,MAAA,GAAG,CAAC,KAAJ,EAAW,KAAX;AACD;AACF;;AAED,WAAS,OAAT,GAAgB;AACd,IAAA,KAAK,CAAC,KAAN;AACD;;AAED,SAAO;AACL,IAAA,UADK;AAEL,OAAG,KAFE;AAGL,IAAA,UAHK;AAIL,IAAA,UAJK;AAKL,IAAA,QALK;AAML,IAAA,KANK;AAOL,IAAA,QAPK;AAQL,IAAA,SARK;AASL,IAAA,OATK;AAUL,IAAA;AAVK,GAAP;AAYD","sourcesContent":["import { Eq } from 'fp-ts/lib/Eq';\nimport { PropType, Ref, computed, toRef, ComputedRef } from 'vue';\nimport { ColorVariant } from '../../types/ColorVariants';\nimport { SizeVariant } from '../../types/SizeVariants';\nimport { isEnterEvent, isSpaceEvent } from '../../utils/eventHelpers';\nimport { toggleListItem } from '../../utils/helpers';\nimport { useDisable, UseDisableProps, UseDisablePropsDefinition } from '../disable';\nimport { useFocus, UseFocusProps, UseFocusPropsDefinition } from '../focus';\nimport { useLabelId, UseLabelIdProps, UseLabelIdPropsDefinition } from '../labelId';\nimport { getUseModelPropsDefinition, useModel, UseModelProps } from '../model';\nimport { EqProps, getEqPropsDefinition } from '../shared';\n\nexport function getUseSelectablePropsDefinition<T>() {\n return {\n nativeValue: {\n type: (null as unknown) as PropType<unknown>,\n required: false,\n default: null\n },\n trueValue: {\n type: (null as unknown) as PropType<T>,\n default: (true as unknown) as T\n },\n falseValue: {\n type: (null as unknown) as PropType<T>,\n default: (false as unknown) as T\n },\n isIndeterminate: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isMultiple: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: 'is-primary' as ColorVariant\n },\n size: {\n type: String as PropType<SizeVariant>,\n default: '' as SizeVariant\n },\n isRequired: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n name: {\n type: String as PropType<string>,\n required: false\n },\n ...getEqPropsDefinition<T>(),\n ...getUseModelPropsDefinition<T>(),\n ...UseDisablePropsDefinition,\n ...UseLabelIdPropsDefinition,\n ...UseFocusPropsDefinition\n };\n}\n\nexport type UseSelectableProps<T> = {\n nativeValue: unknown;\n trueValue: T;\n falseValue: T;\n indeterminateValue?: T;\n isMultiple: boolean;\n variant: ColorVariant;\n size: SizeVariant;\n isRequired: boolean;\n isIndeterminate: boolean;\n name?: string;\n} & EqProps<T> &\n UseModelProps<T> &\n UseDisableProps &\n UseLabelIdProps;\n\nfunction getIsActive<T>(value: T | T[] | undefined, trueValue: T | undefined, isMultiple: boolean, eq: Eq<T>): boolean {\n if (isMultiple) {\n if (!Array.isArray(value)) return false;\n return trueValue !== undefined && value.some(item => eq.equals(item, trueValue));\n }\n if (!Array.isArray(value) && trueValue !== undefined) {\n return value !== undefined && eq.equals(value, trueValue);\n }\n return false;\n}\n\nfunction getOnChange<T>(\n value: Ref<T | T[] | undefined>,\n trueValue: ComputedRef<T | undefined>,\n falseValue: Ref<T | undefined>,\n isDisabled: Ref<boolean>,\n isMultiple: Ref<boolean>,\n eq: Ref<Eq<T>>\n) {\n return function onChange() {\n if (isDisabled.value) return;\n if (trueValue.value === undefined) return;\n const currentValue = value.value;\n const tValue = trueValue.value;\n const fValue = falseValue.value;\n if (isMultiple.value) {\n if (!Array.isArray(currentValue)) {\n value.value = [];\n } else {\n value.value = toggleListItem(eq.value)(tValue, currentValue) as T[];\n }\n } else if (!Array.isArray(currentValue)) {\n if (currentValue === undefined || (currentValue !== undefined && !eq.value.equals(currentValue, tValue))) {\n value.value = tValue;\n } else {\n value.value = fValue;\n }\n }\n };\n}\n\nfunction getInputAttrs<T>(\n role: string,\n type: string,\n id: string,\n labelId: string,\n isActive: boolean,\n isDisabled: boolean,\n isReadonly: boolean,\n isRequired: boolean,\n trueValue: T,\n falseValue: T,\n nativeValue: unknown,\n isIndeterminate?: boolean,\n name?: string\n) {\n return {\n role,\n type,\n id,\n name,\n checked: isActive,\n 'aria-checked': isActive,\n 'aria-disabled': isDisabled,\n 'aria-labelledby': labelId,\n tabindex: -1,\n readonly: isReadonly,\n disabled: isDisabled,\n required: isRequired,\n indeterminate: isIndeterminate,\n value: JSON.stringify(nativeValue),\n 'true-value': JSON.stringify(trueValue),\n 'false-value': JSON.stringify(falseValue)\n };\n}\n\nexport function useSelectionControl<T>(\n props: UseSelectableProps<T>,\n ref: Ref<HTMLElement>,\n role: string,\n type: string\n) {\n const { modelValue } = useModel<T>(props);\n const focus = useFocus((props as unknown) as UseFocusProps, ref);\n const trueValue = computed(() => (props.nativeValue || props.trueValue) as T | undefined);\n const label = useLabelId(props, role);\n const isMultiple = computed(() => props.isMultiple || Array.isArray(modelValue.value));\n const isActive = computed(() => getIsActive(modelValue.value, trueValue.value, isMultiple.value, props.eq));\n const isDisabled = useDisable(props);\n\n const onChange = getOnChange(\n modelValue,\n trueValue,\n toRef(props, 'falseValue'),\n isDisabled,\n isMultiple,\n toRef(props, 'eq')\n );\n\n const attrs = computed(() =>\n getInputAttrs(\n role,\n type,\n label.id.value,\n label.labelId.value,\n isActive.value,\n isDisabled.value,\n props.isReadonly,\n props.isRequired,\n props.trueValue,\n props.falseValue,\n props.nativeValue,\n props.isIndeterminate,\n props.name\n )\n );\n\n function onKeydown(e: KeyboardEvent) {\n if (isEnterEvent(e) || isSpaceEvent(e)) {\n ref.value?.click();\n }\n }\n\n function onClick() {\n focus.focus();\n }\n\n return {\n modelValue,\n ...focus,\n isDisabled,\n isMultiple,\n isActive,\n attrs,\n onChange,\n onKeydown,\n onClick,\n label\n };\n}\n\nexport type SelectionControl = ReturnType<typeof useSelectionControl>;\n"],"sourceRoot":"","file":"useSelectionControl.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/shared/index.d.ts b/node_modules/buetify/lib/composables/shared/index.d.ts new file mode 100755 index 0000000..b223497 --- /dev/null +++ b/node_modules/buetify/lib/composables/shared/index.d.ts @@ -0,0 +1,13 @@ +import { PropType } from 'vue'; +import { Eq } from 'fp-ts/lib/Eq'; +import { IO } from 'fp-ts/lib/IO'; +export declare type Remove = IO<void>; +export declare function getEqPropsDefinition<T>(eq?: Eq<T>): { + eq: { + type: PropType<Eq<T>>; + default: import("fp-ts/lib/function").Lazy<Eq<T>>; + }; +}; +export interface EqProps<T> { + eq: Eq<T>; +} diff --git a/node_modules/buetify/lib/composables/shared/index.js b/node_modules/buetify/lib/composables/shared/index.js new file mode 100755 index 0000000..4c24a46 --- /dev/null +++ b/node_modules/buetify/lib/composables/shared/index.js @@ -0,0 +1,13 @@ +import { constant } from 'fp-ts/lib/function'; +import { fromEquals } from 'fp-ts/lib/Eq'; +import { deepEqual } from '../../utils/helpers'; +const eqDeep = fromEquals(deepEqual); +export function getEqPropsDefinition(eq = eqDeep) { + return { + eq: { + type: Object, + default: constant(eq) + } + }; +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/shared/index.js.map b/node_modules/buetify/lib/composables/shared/index.js.map new file mode 100755 index 0000000..f250d7e --- /dev/null +++ b/node_modules/buetify/lib/composables/shared/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/shared/index.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,oBAAzB;AAEA,SAAa,UAAb,QAA+B,cAA/B;AAEA,SAAS,SAAT,QAA0B,qBAA1B;AAIA,MAAM,MAAM,GAAgB,UAAU,CAAC,SAAD,CAAtC;AAEA,OAAM,SAAU,oBAAV,CAAkC,EAAA,GAAY,MAA9C,EAAoD;AACxD,SAAO;AACL,IAAA,EAAE,EAAE;AACF,MAAA,IAAI,EAAE,MADJ;AAEF,MAAA,OAAO,EAAE,QAAQ,CAAC,EAAD;AAFf;AADC,GAAP;AAMD","sourcesContent":["import { constant } from 'fp-ts/lib/function';\nimport { PropType } from 'vue';\nimport { Eq, fromEquals } from 'fp-ts/lib/Eq';\nimport { IO } from 'fp-ts/lib/IO';\nimport { deepEqual } from '../../utils/helpers';\n\nexport type Remove = IO<void>;\n\nconst eqDeep: Eq<unknown> = fromEquals(deepEqual);\n\nexport function getEqPropsDefinition<T>(eq: Eq<T> = eqDeep) {\n return {\n eq: {\n type: Object as PropType<Eq<T>>,\n default: constant(eq)\n }\n };\n}\n\nexport interface EqProps<T> {\n eq: Eq<T>;\n}\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/snackbar/index.d.ts b/node_modules/buetify/lib/composables/snackbar/index.d.ts new file mode 100755 index 0000000..f5f7b39 --- /dev/null +++ b/node_modules/buetify/lib/composables/snackbar/index.d.ts @@ -0,0 +1 @@ +export * from './useSnackbar'; diff --git a/node_modules/buetify/lib/composables/snackbar/index.js b/node_modules/buetify/lib/composables/snackbar/index.js new file mode 100755 index 0000000..6694416 --- /dev/null +++ b/node_modules/buetify/lib/composables/snackbar/index.js @@ -0,0 +1,2 @@ +export * from './useSnackbar'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/snackbar/index.js.map b/node_modules/buetify/lib/composables/snackbar/index.js.map new file mode 100755 index 0000000..89616e0 --- /dev/null +++ b/node_modules/buetify/lib/composables/snackbar/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/snackbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAd","sourcesContent":["export * from './useSnackbar';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/snackbar/useSnackbar.d.ts b/node_modules/buetify/lib/composables/snackbar/useSnackbar.d.ts new file mode 100755 index 0000000..dc6084e --- /dev/null +++ b/node_modules/buetify/lib/composables/snackbar/useSnackbar.d.ts @@ -0,0 +1,54 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { ExtractPropTypes, PropType, Slots } from 'vue'; +import { ColorVariant, PositionVariant } from '../../types'; +import { NoticeController, OpenNoticeOptions, RenderNoticeOptions } from '../noticeController'; +export declare const SnackbarPropsDefinition: { + position: { + type: PropType<PositionVariant>; + default: "is-bottom-right"; + }; + actionText: { + type: PropType<string>; + default: string; + }; + onAction: { + type: PropType<IO<void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; + variant: { + type: PropType<ColorVariant>; + default: "is-success"; + }; + transition: { + type: PropType<import("../../types").Transition>; + required: boolean; + }; + duration: { + type: PropType<number>; + default: number; + }; + message: { + type: PropType<string>; + }; + shouldQueue: { + type: PropType<boolean>; + default: boolean; + }; + isIndefinite: { + type: PropType<boolean>; + default: boolean; + }; +}; +export interface SnackbarProps extends ExtractPropTypes<typeof SnackbarPropsDefinition> { +} +export interface RenderSnackbarOptions extends RenderNoticeOptions, OpenNoticeOptions { + onAction?: IO<void>; + actionText?: string; +} +export interface OpenSnackbarOptions extends RenderSnackbarOptions { +} +export interface SnackbarController extends NoticeController { + open: FunctionN<[OpenSnackbarOptions], void>; +} +export declare function useSnackbar(props?: SnackbarProps, slots?: Slots): SnackbarController; diff --git a/node_modules/buetify/lib/composables/snackbar/useSnackbar.js b/node_modules/buetify/lib/composables/snackbar/useSnackbar.js new file mode 100755 index 0000000..d1f90e3 --- /dev/null +++ b/node_modules/buetify/lib/composables/snackbar/useSnackbar.js @@ -0,0 +1,71 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { h, shallowRef } from 'vue'; +import { constEmptyArray } from '../../utils/helpers'; +import { DEFAULT_USE_NOTICE_PROPS, useNoticeController, UseNoticePropsDefinition } from '../noticeController'; +export const SnackbarPropsDefinition = { ...UseNoticePropsDefinition, + position: { + type: String, + default: 'is-bottom-right' + }, + actionText: { + type: String, + default: 'OK' + }, + onAction: { + type: Function, + default: constant(constVoid) + }, + variant: { + type: String, + default: 'is-success' + } +}; +const DEFAULT_SNACKBAR_PROPS = { ...DEFAULT_USE_NOTICE_PROPS, + variant: SnackbarPropsDefinition.variant.default, + position: SnackbarPropsDefinition.position.default, + actionText: SnackbarPropsDefinition.actionText.default, + onAction: SnackbarPropsDefinition.onAction.default() +}; + +function generateMessage(slots, message) { + return message ? h('p', { + class: 'text', + innerHTML: message + }) : h('p', { + class: 'text' + }, slots.message && slots.message()); +} + +function generateAction(props, slots, noticeController, options) { + return h('div', { + class: ['action', options.variant ?? props.variant, options.position ?? props.position] + }, [h('button', { + class: 'button', + onClick: () => { + if (options.onAction) { + options.onAction(); + } else { + props.onAction(); + } + + noticeController.close(); + } + }, slots.action ? slots.action(noticeController) : options.actionText ?? props.actionText)]); +} + +function getGenerateSnackbar(props, slots, noticeController) { + return options => () => { + return [h('article', { + class: ['snackbar', options.position || props.position], + role: 'alert' + }, [generateMessage(slots, options.message ?? props.message), generateAction(props, slots, noticeController, options)])]; + }; +} + +export function useSnackbar(props = DEFAULT_SNACKBAR_PROPS, slots = {}) { + const renderNotification = shallowRef(constant(constEmptyArray)); + const controller = useNoticeController(props, renderNotification); + renderNotification.value = getGenerateSnackbar(props, slots, controller); + return controller; +} +//# sourceMappingURL=useSnackbar.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/snackbar/useSnackbar.js.map b/node_modules/buetify/lib/composables/snackbar/useSnackbar.js.map new file mode 100755 index 0000000..e7b9da6 --- /dev/null +++ b/node_modules/buetify/lib/composables/snackbar/useSnackbar.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/snackbar/useSnackbar.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,SAAnB,QAA+C,oBAA/C;AAEA,SAA2B,CAA3B,EAAwC,UAAxC,QAAwE,KAAxE;AAEA,SAAS,eAAT,QAAgC,qBAAhC;AACA,SACE,wBADF,EAKE,mBALF,EAME,wBANF,QAOO,qBAPP;AASA,OAAO,MAAM,uBAAuB,GAAG,EACrC,GAAG,wBADkC;AAErC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,MADE;AAER,IAAA,OAAO,EAAE;AAFD,GAF2B;AAMrC,EAAA,UAAU,EAAE;AACV,IAAA,IAAI,EAAE,MADI;AAEV,IAAA,OAAO,EAAE;AAFC,GANyB;AAUrC,EAAA,QAAQ,EAAE;AACR,IAAA,IAAI,EAAE,QADE;AAER,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFT,GAV2B;AAcrC,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,MADC;AAEP,IAAA,OAAO,EAAE;AAFF;AAd4B,CAAhC;AA6BP,MAAM,sBAAsB,GAAkB,EAC5C,GAAG,wBADyC;AAE5C,EAAA,OAAO,EAAE,uBAAuB,CAAC,OAAxB,CAAgC,OAFG;AAG5C,EAAA,QAAQ,EAAE,uBAAuB,CAAC,QAAxB,CAAiC,OAHC;AAI5C,EAAA,UAAU,EAAE,uBAAuB,CAAC,UAAxB,CAAmC,OAJH;AAK5C,EAAA,QAAQ,EAAE,uBAAuB,CAAC,QAAxB,CAAiC,OAAjC;AALkC,CAA9C;;AAQA,SAAS,eAAT,CAAyB,KAAzB,EAAuC,OAAvC,EAAuD;AACrD,SAAO,OAAO,GACV,CAAC,CAAC,GAAD,EAAM;AAAE,IAAA,KAAK,EAAE,MAAT;AAAiB,IAAA,SAAS,EAAE;AAA5B,GAAN,CADS,GAEV,CAAC,CAAC,GAAD,EAAM;AAAE,IAAA,KAAK,EAAE;AAAT,GAAN,EAAyB,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAA1C,CAFL;AAGD;;AAED,SAAS,cAAT,CACE,KADF,EAEE,KAFF,EAGE,gBAHF,EAIE,OAJF,EAIgC;AAE9B,SAAO,CAAC,CACN,KADM,EAEN;AACE,IAAA,KAAK,EAAE,CAAC,QAAD,EAAW,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAApC,EAA6C,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC,QAAvE;AADT,GAFM,EAKN,CACE,CAAC,CACC,QADD,EAEC;AACE,IAAA,KAAK,EAAE,QADT;AAEE,IAAA,OAAO,EAAE,MAAK;AACZ,UAAI,OAAO,CAAC,QAAZ,EAAsB;AACpB,QAAA,OAAO,CAAC,QAAR;AACD,OAFD,MAEO;AACL,QAAA,KAAK,CAAC,QAAN;AACD;;AACD,MAAA,gBAAgB,CAAC,KAAjB;AACD;AATH,GAFD,EAaC,KAAK,CAAC,MAAN,GAAe,KAAK,CAAC,MAAN,CAAa,gBAAb,CAAf,GAAgD,OAAO,CAAC,UAAR,IAAsB,KAAK,CAAC,UAb7E,CADH,CALM,CAAR;AAuBD;;AAED,SAAS,mBAAT,CAA6B,KAA7B,EAAmD,KAAnD,EAAiE,gBAAjE,EAAmG;AACjG,SAAQ,OAAD,IAAoC,MAAK;AAC9C,WAAO,CACL,CAAC,CACC,SADD,EAEC;AACE,MAAA,KAAK,EAAE,CAAC,UAAD,EAAa,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC,QAAvC,CADT;AAEE,MAAA,IAAI,EAAE;AAFR,KAFD,EAMC,CACE,eAAe,CAAC,KAAD,EAAQ,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAAjC,CADjB,EAEE,cAAc,CAAC,KAAD,EAAQ,KAAR,EAAe,gBAAf,EAAiC,OAAjC,CAFhB,CAND,CADI,CAAP;AAaD,GAdD;AAeD;;AAMD,OAAM,SAAU,WAAV,CAAsB,KAAA,GAAuB,sBAA7C,EAAqE,KAAA,GAAe,EAApF,EAAsF;AAC1F,QAAM,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAD,CAAT,CAArC;AACA,QAAM,UAAU,GAAG,mBAAmB,CAAC,KAAD,EAAQ,kBAAR,CAAtC;AACA,EAAA,kBAAkB,CAAC,KAAnB,GAA2B,mBAAmB,CAAC,KAAD,EAAQ,KAAR,EAAe,UAAf,CAA9C;AACA,SAAO,UAAP;AACD","sourcesContent":["import { constant, constVoid, FunctionN } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { ExtractPropTypes, h, PropType, shallowRef, VNode, Slots } from 'vue';\nimport { ColorVariant, PositionVariant } from '../../types';\nimport { constEmptyArray } from '../../utils/helpers';\nimport {\n DEFAULT_USE_NOTICE_PROPS,\n NoticeController,\n OpenNoticeOptions,\n RenderNoticeOptions,\n useNoticeController,\n UseNoticePropsDefinition\n} from '../noticeController';\n\nexport const SnackbarPropsDefinition = {\n ...UseNoticePropsDefinition,\n position: {\n type: String as PropType<PositionVariant>,\n default: 'is-bottom-right' as const\n },\n actionText: {\n type: String as PropType<string>,\n default: 'OK'\n },\n onAction: {\n type: Function as PropType<IO<void>>,\n default: constant(constVoid)\n },\n variant: {\n type: String as PropType<ColorVariant>,\n default: 'is-success' as const\n }\n};\n\nexport interface SnackbarProps extends ExtractPropTypes<typeof SnackbarPropsDefinition> {}\n\nexport interface RenderSnackbarOptions extends RenderNoticeOptions, OpenNoticeOptions {\n onAction?: IO<void>;\n actionText?: string;\n}\n\nexport interface OpenSnackbarOptions extends RenderSnackbarOptions {}\n\nconst DEFAULT_SNACKBAR_PROPS: SnackbarProps = {\n ...DEFAULT_USE_NOTICE_PROPS,\n variant: SnackbarPropsDefinition.variant.default,\n position: SnackbarPropsDefinition.position.default,\n actionText: SnackbarPropsDefinition.actionText.default,\n onAction: SnackbarPropsDefinition.onAction.default()\n};\n\nfunction generateMessage(slots: Slots, message?: string): VNode {\n return message\n ? h('p', { class: 'text', innerHTML: message })\n : h('p', { class: 'text' }, slots.message && slots.message());\n}\n\nfunction generateAction(\n props: SnackbarProps,\n slots: Slots,\n noticeController: NoticeController,\n options: RenderSnackbarOptions\n): VNode {\n return h(\n 'div',\n {\n class: ['action', options.variant ?? props.variant, options.position ?? props.position]\n },\n [\n h(\n 'button',\n {\n class: 'button',\n onClick: () => {\n if (options.onAction) {\n options.onAction();\n } else {\n props.onAction();\n }\n noticeController.close();\n }\n },\n slots.action ? slots.action(noticeController) : options.actionText ?? props.actionText\n )\n ]\n );\n}\n\nfunction getGenerateSnackbar(props: SnackbarProps, slots: Slots, noticeController: NoticeController) {\n return (options: RenderSnackbarOptions) => () => {\n return [\n h(\n 'article',\n {\n class: ['snackbar', options.position || props.position],\n role: 'alert'\n },\n [\n generateMessage(slots, options.message ?? props.message),\n generateAction(props, slots, noticeController, options)\n ]\n )\n ];\n };\n}\n\nexport interface SnackbarController extends NoticeController {\n open: FunctionN<[OpenSnackbarOptions], void>;\n}\n\nexport function useSnackbar(props: SnackbarProps = DEFAULT_SNACKBAR_PROPS, slots: Slots = {}): SnackbarController {\n const renderNotification = shallowRef(constant(constEmptyArray) as FunctionN<[RenderNoticeOptions], IO<VNode[]>>);\n const controller = useNoticeController(props, renderNotification);\n renderNotification.value = getGenerateSnackbar(props, slots, controller);\n return controller;\n}\n"],"sourceRoot":"","file":"useSnackbar.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/theme/index.d.ts b/node_modules/buetify/lib/composables/theme/index.d.ts new file mode 100755 index 0000000..6a3a85f --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/index.d.ts @@ -0,0 +1,2 @@ +export * from './provideTheme'; +export * from './useTheme'; diff --git a/node_modules/buetify/lib/composables/theme/index.js b/node_modules/buetify/lib/composables/theme/index.js new file mode 100755 index 0000000..8dc45f7 --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/index.js @@ -0,0 +1,3 @@ +export * from './provideTheme'; +export * from './useTheme'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/theme/index.js.map b/node_modules/buetify/lib/composables/theme/index.js.map new file mode 100755 index 0000000..bfa7f67 --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAd;AACA,cAAc,YAAd","sourcesContent":["export * from './provideTheme';\nexport * from './useTheme';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/theme/provideTheme.d.ts b/node_modules/buetify/lib/composables/theme/provideTheme.d.ts new file mode 100755 index 0000000..8cacccf --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/provideTheme.d.ts @@ -0,0 +1,26 @@ +import { Option } from 'fp-ts/lib/Option'; +import { Ref, ExtractPropTypes, PropType } from 'vue'; +export declare type ThemeVariant = 'dark' | 'light'; +export interface ThemeInjection { + isThemeable: Ref<boolean>; + currentTheme: Ref<Option<ThemeVariant>>; + setTheme: (theme: ThemeVariant) => void; +} +export declare const DEFAULT_THEME_INJECTION: ThemeInjection; +export declare const THEME_INJECTION_SYMBOL: unique symbol; +export declare const ProvideThemePropDefinitions: { + isThemeable: { + type: PropType<boolean>; + default: boolean; + }; + persistTheme: { + type: PropType<boolean>; + default: boolean; + }; +}; +export declare type ProvideThemeProps = ExtractPropTypes<typeof ProvideThemePropDefinitions>; +export declare function provideTheme(props: ProvideThemeProps): { + setTheme: (newTheme: ThemeVariant) => void; + currentTheme: Ref<import("fp-ts/lib/Option").None> | Ref<import("fp-ts/lib/Option").Some<ThemeVariant>>; + isThemeable: Ref<boolean>; +}; diff --git a/node_modules/buetify/lib/composables/theme/provideTheme.js b/node_modules/buetify/lib/composables/theme/provideTheme.js new file mode 100755 index 0000000..f31a57a --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/provideTheme.js @@ -0,0 +1,49 @@ +import { getItem, setItem } from 'fp-ts-local-storage'; +import { constant, constVoid } from 'fp-ts/lib/function'; +import { getOrElse, none, some } from 'fp-ts/lib/Option'; +import { provide, shallowRef, watch } from 'vue'; +export const DEFAULT_THEME_INJECTION = { + currentTheme: shallowRef(none), + isThemeable: shallowRef(false), + setTheme: constVoid +}; +export const THEME_INJECTION_SYMBOL = Symbol('theme'); +const persistentTheme = getOrElse(constant('dark'))(getItem('theme')()); +export const ProvideThemePropDefinitions = { + isThemeable: { + type: Boolean, + default: true + }, + persistTheme: { + type: Boolean, + default: true + } +}; +export function provideTheme(props) { + const isThemeable = shallowRef(props.isThemeable); + watch(() => props.isThemeable, themeable => { + isThemeable.value = themeable; + }); + const currentTheme = shallowRef(some(persistentTheme)); + + function setTheme(newTheme) { + currentTheme.value = some(newTheme); + + if (props.persistTheme) { + setItem('theme', newTheme)(); + } + } + + const injection = { + isThemeable, + currentTheme, + setTheme + }; + provide(THEME_INJECTION_SYMBOL, injection); + return { + setTheme, + currentTheme, + isThemeable + }; +} +//# sourceMappingURL=provideTheme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/theme/provideTheme.js.map b/node_modules/buetify/lib/composables/theme/provideTheme.js.map new file mode 100755 index 0000000..aba32a3 --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/provideTheme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/theme/provideTheme.ts"],"names":[],"mappings":"AAAA,SAAS,OAAT,EAAkB,OAAlB,QAAiC,qBAAjC;AACA,SAAS,QAAT,EAAmB,SAAnB,QAAoC,oBAApC;AACA,SAAS,SAAT,EAAoB,IAApB,EAAkC,IAAlC,QAA8C,kBAA9C;AACA,SAAS,OAAT,EAAkB,UAAlB,EAAmC,KAAnC,QAA4E,KAA5E;AAUA,OAAO,MAAM,uBAAuB,GAAmB;AACrD,EAAA,YAAY,EAAE,UAAU,CAAC,IAAD,CAD6B;AAErD,EAAA,WAAW,EAAE,UAAU,CAAC,KAAD,CAF8B;AAGrD,EAAA,QAAQ,EAAE;AAH2C,CAAhD;AAMP,OAAO,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAD,CAArC;AAEP,MAAM,eAAe,GAAG,SAAS,CAAe,QAAQ,CAAe,MAAf,CAAvB,CAAT,CACtB,OAAO,CAAC,OAAD,CAAP,EADsB,CAAxB;AAIA,OAAO,MAAM,2BAA2B,GAAG;AACzC,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,OADK;AAEX,IAAA,OAAO,EAAE;AAFE,GAD4B;AAKzC,EAAA,YAAY,EAAE;AACZ,IAAA,IAAI,EAAE,OADM;AAEZ,IAAA,OAAO,EAAE;AAFG;AAL2B,CAApC;AAaP,OAAM,SAAU,YAAV,CAAuB,KAAvB,EAA+C;AACnD,QAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,WAAP,CAA9B;AACA,EAAA,KAAK,CACH,MAAM,KAAK,CAAC,WADT,EAEH,SAAS,IAAG;AACV,IAAA,WAAW,CAAC,KAAZ,GAAoB,SAApB;AACD,GAJE,CAAL;AAMA,QAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,eAAD,CAAL,CAA/B;;AACA,WAAS,QAAT,CAAkB,QAAlB,EAAwC;AACtC,IAAA,YAAY,CAAC,KAAb,GAAqB,IAAI,CAAC,QAAD,CAAzB;;AACA,QAAI,KAAK,CAAC,YAAV,EAAwB;AACtB,MAAA,OAAO,CAAC,OAAD,EAAU,QAAV,CAAP;AACD;AACF;;AACD,QAAM,SAAS,GAAmB;AAChC,IAAA,WADgC;AAEhC,IAAA,YAFgC;AAGhC,IAAA;AAHgC,GAAlC;AAKA,EAAA,OAAO,CAAC,sBAAD,EAAyB,SAAzB,CAAP;AACA,SAAO;AACL,IAAA,QADK;AAEL,IAAA,YAFK;AAGL,IAAA;AAHK,GAAP;AAKD","sourcesContent":["import { getItem, setItem } from 'fp-ts-local-storage';\nimport { constant, constVoid } from 'fp-ts/lib/function';\nimport { getOrElse, none, Option, some } from 'fp-ts/lib/Option';\nimport { provide, shallowRef, Ref, watch, ExtractPropTypes, PropType } from 'vue';\n\nexport type ThemeVariant = 'dark' | 'light';\n\nexport interface ThemeInjection {\n isThemeable: Ref<boolean>;\n currentTheme: Ref<Option<ThemeVariant>>; // allows for easier defaults in injected component\n setTheme: (theme: ThemeVariant) => void;\n}\n\nexport const DEFAULT_THEME_INJECTION: ThemeInjection = {\n currentTheme: shallowRef(none),\n isThemeable: shallowRef(false),\n setTheme: constVoid\n};\n\nexport const THEME_INJECTION_SYMBOL = Symbol('theme');\n\nconst persistentTheme = getOrElse<ThemeVariant>(constant<ThemeVariant>('dark'))(\n getItem('theme')() as Option<ThemeVariant>\n);\n\nexport const ProvideThemePropDefinitions = {\n isThemeable: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n persistTheme: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n};\n\nexport type ProvideThemeProps = ExtractPropTypes<typeof ProvideThemePropDefinitions>;\n\nexport function provideTheme(props: ProvideThemeProps) {\n const isThemeable = shallowRef(props.isThemeable);\n watch(\n () => props.isThemeable,\n themeable => {\n isThemeable.value = themeable;\n }\n );\n const currentTheme = shallowRef(some(persistentTheme));\n function setTheme(newTheme: ThemeVariant) {\n currentTheme.value = some(newTheme);\n if (props.persistTheme) {\n setItem('theme', newTheme)();\n }\n }\n const injection: ThemeInjection = {\n isThemeable,\n currentTheme,\n setTheme\n };\n provide(THEME_INJECTION_SYMBOL, injection);\n return {\n setTheme,\n currentTheme,\n isThemeable\n };\n}\n"],"sourceRoot":"","file":"provideTheme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/theme/useTheme.d.ts b/node_modules/buetify/lib/composables/theme/useTheme.d.ts new file mode 100755 index 0000000..9263a17 --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/useTheme.d.ts @@ -0,0 +1,37 @@ +import { PropType, ExtractPropTypes } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; +import { ThemeInjection } from './provideTheme'; +export declare const DEFAULT_THEME_COLOR_MAP: ThemeColorMap; +export declare function useThemePropsDefinition(themeMap: ThemeColorMap, defaultIsThemeable?: boolean): { + themeMap: { + type: PropType<ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare type ThemeProps = ExtractPropTypes<ReturnType<typeof useThemePropsDefinition>>; +export declare type FunctionalThemeProps = Partial<ThemeProps>; +export declare const DefaultThemePropsDefinition: { + themeMap: { + type: PropType<ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<ThemeColorMap>; + }; + isThemeable: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; +}; +export declare function getThemeClasses(themeMap: ThemeColorMap, themeInjection: ThemeInjection): string[]; +export declare function useTheme(props?: ThemeProps): { + currentTheme: import("vue").Ref<import("fp-ts/lib/Option").Option<import("./provideTheme").ThemeVariant>>; + setTheme: (theme: import("./provideTheme").ThemeVariant) => void; + toggleTheme: () => void; + themeClasses: import("vue").ComputedRef<string[]>; +}; diff --git a/node_modules/buetify/lib/composables/theme/useTheme.js b/node_modules/buetify/lib/composables/theme/useTheme.js new file mode 100755 index 0000000..6764fa9 --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/useTheme.js @@ -0,0 +1,50 @@ +import { isSome } from 'fp-ts/lib/Option'; +import { inject, computed } from 'vue'; +import { constant } from 'fp-ts/lib/function'; +import { DEFAULT_THEME_INJECTION, THEME_INJECTION_SYMBOL } from './provideTheme'; +export const DEFAULT_THEME_COLOR_MAP = { + dark: 'is-black-ter', + light: '' +}; +export function useThemePropsDefinition(themeMap, defaultIsThemeable = true) { + return { + themeMap: { + type: Object, + required: false, + default: constant(themeMap) + }, + isThemeable: { + type: Boolean, + required: false, + default: defaultIsThemeable + } + }; +} +export const DefaultThemePropsDefinition = useThemePropsDefinition(DEFAULT_THEME_COLOR_MAP, true); +export function getThemeClasses(themeMap, themeInjection) { + if (themeInjection.isThemeable.value && isSome(themeInjection.currentTheme.value)) { + const classes = themeMap[themeInjection.currentTheme.value.value]; + return Array.isArray(classes) ? classes : [classes]; + } else { + return []; + } +} +export function useTheme(props) { + const themeInjection = inject(THEME_INJECTION_SYMBOL, DEFAULT_THEME_INJECTION); + const themeClasses = computed(() => props ? getThemeClasses(props.themeMap, themeInjection) : []); + return { + currentTheme: themeInjection.currentTheme, + setTheme: themeInjection.setTheme, + toggleTheme: () => { + if (isSome(themeInjection.currentTheme.value)) { + if (themeInjection.currentTheme.value.value === 'light') { + themeInjection.setTheme('dark'); + } else { + themeInjection.setTheme('light'); + } + } + }, + themeClasses + }; +} +//# sourceMappingURL=useTheme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/theme/useTheme.js.map b/node_modules/buetify/lib/composables/theme/useTheme.js.map new file mode 100755 index 0000000..ca4dc93 --- /dev/null +++ b/node_modules/buetify/lib/composables/theme/useTheme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/theme/useTheme.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,QAAuB,kBAAvB;AACA,SAAmB,MAAnB,EAA6C,QAA7C,QAA6D,KAA7D;AACA,SAAS,QAAT,QAAyB,oBAAzB;AAEA,SAAS,uBAAT,EAAkC,sBAAlC,QAAgF,gBAAhF;AAEA,OAAO,MAAM,uBAAuB,GAAkB;AACpD,EAAA,IAAI,EAAE,cAD8C;AAEpD,EAAA,KAAK,EAAE;AAF6C,CAA/C;AAKP,OAAM,SAAU,uBAAV,CAAkC,QAAlC,EAA2D,kBAAkB,GAAG,IAAhF,EAAoF;AACxF,SAAO;AACL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,MADE;AAER,MAAA,QAAQ,EAAE,KAFF;AAGR,MAAA,OAAO,EAAE,QAAQ,CAAC,QAAD;AAHT,KADL;AAML,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,OADK;AAEX,MAAA,QAAQ,EAAE,KAFC;AAGX,MAAA,OAAO,EAAE;AAHE;AANR,GAAP;AAYD;AAMD,OAAO,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,uBAAD,EAA0B,IAA1B,CAA3D;AAEP,OAAM,SAAU,eAAV,CAA0B,QAA1B,EAAmD,cAAnD,EAAiF;AACrF,MAAI,cAAc,CAAC,WAAf,CAA2B,KAA3B,IAAoC,MAAM,CAAC,cAAc,CAAC,YAAf,CAA4B,KAA7B,CAA9C,EAAmF;AACjF,UAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAf,CAA4B,KAA5B,CAAkC,KAAnC,CAAxB;AACA,WAAO,KAAK,CAAC,OAAN,CAAc,OAAd,IAAyB,OAAzB,GAAmC,CAAC,OAAD,CAA1C;AACD,GAHD,MAGO;AACL,WAAO,EAAP;AACD;AACF;AAED,OAAM,SAAU,QAAV,CAAmB,KAAnB,EAAqC;AACzC,QAAM,cAAc,GAAG,MAAM,CAAC,sBAAD,EAAyB,uBAAzB,CAA7B;AACA,QAAM,YAAY,GAAG,QAAQ,CAAC,MAAO,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAP,EAAiB,cAAjB,CAAlB,GAAqD,EAAlE,CAA7B;AAEA,SAAO;AACL,IAAA,YAAY,EAAE,cAAc,CAAC,YADxB;AAEL,IAAA,QAAQ,EAAE,cAAc,CAAC,QAFpB;AAGL,IAAA,WAAW,EAAE,MAAK;AAChB,UAAI,MAAM,CAAC,cAAc,CAAC,YAAf,CAA4B,KAA7B,CAAV,EAA+C;AAC7C,YAAI,cAAc,CAAC,YAAf,CAA4B,KAA5B,CAAkC,KAAlC,KAA4C,OAAhD,EAAyD;AACvD,UAAA,cAAc,CAAC,QAAf,CAAwB,MAAxB;AACD,SAFD,MAEO;AACL,UAAA,cAAc,CAAC,QAAf,CAAwB,OAAxB;AACD;AACF;AACF,KAXI;AAYL,IAAA;AAZK,GAAP;AAcD","sourcesContent":["import { isSome } from 'fp-ts/lib/Option';\nimport { PropType, inject, ExtractPropTypes, computed } from 'vue';\nimport { constant } from 'fp-ts/lib/function';\nimport { ThemeColorMap } from '../../types/ThemeColorMap';\nimport { DEFAULT_THEME_INJECTION, THEME_INJECTION_SYMBOL, ThemeInjection } from './provideTheme';\n\nexport const DEFAULT_THEME_COLOR_MAP: ThemeColorMap = {\n dark: 'is-black-ter',\n light: ''\n};\n\nexport function useThemePropsDefinition(themeMap: ThemeColorMap, defaultIsThemeable = true) {\n return {\n themeMap: {\n type: Object as PropType<ThemeColorMap>,\n required: false,\n default: constant(themeMap)\n },\n isThemeable: {\n type: Boolean as PropType<boolean>,\n required: false,\n default: defaultIsThemeable\n }\n };\n}\n\nexport type ThemeProps = ExtractPropTypes<ReturnType<typeof useThemePropsDefinition>>;\n\nexport type FunctionalThemeProps = Partial<ThemeProps>;\n\nexport const DefaultThemePropsDefinition = useThemePropsDefinition(DEFAULT_THEME_COLOR_MAP, true);\n\nexport function getThemeClasses(themeMap: ThemeColorMap, themeInjection: ThemeInjection): string[] {\n if (themeInjection.isThemeable.value && isSome(themeInjection.currentTheme.value)) {\n const classes = themeMap[themeInjection.currentTheme.value.value];\n return Array.isArray(classes) ? classes : [classes];\n } else {\n return [];\n }\n}\n\nexport function useTheme(props?: ThemeProps) {\n const themeInjection = inject(THEME_INJECTION_SYMBOL, DEFAULT_THEME_INJECTION);\n const themeClasses = computed(() => (props ? getThemeClasses(props.themeMap, themeInjection) : []));\n\n return {\n currentTheme: themeInjection.currentTheme,\n setTheme: themeInjection.setTheme,\n toggleTheme: () => {\n if (isSome(themeInjection.currentTheme.value)) {\n if (themeInjection.currentTheme.value.value === 'light') {\n themeInjection.setTheme('dark');\n } else {\n themeInjection.setTheme('light');\n }\n }\n },\n themeClasses\n };\n}\n"],"sourceRoot":"","file":"useTheme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toast/index.d.ts b/node_modules/buetify/lib/composables/toast/index.d.ts new file mode 100755 index 0000000..44a723a --- /dev/null +++ b/node_modules/buetify/lib/composables/toast/index.d.ts @@ -0,0 +1 @@ +export * from './useToast'; diff --git a/node_modules/buetify/lib/composables/toast/index.js b/node_modules/buetify/lib/composables/toast/index.js new file mode 100755 index 0000000..e2bec8c --- /dev/null +++ b/node_modules/buetify/lib/composables/toast/index.js @@ -0,0 +1,2 @@ +export * from './useToast'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toast/index.js.map b/node_modules/buetify/lib/composables/toast/index.js.map new file mode 100755 index 0000000..b9e574e --- /dev/null +++ b/node_modules/buetify/lib/composables/toast/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAd","sourcesContent":["export * from './useToast';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toast/useToast.d.ts b/node_modules/buetify/lib/composables/toast/useToast.d.ts new file mode 100755 index 0000000..3623f9b --- /dev/null +++ b/node_modules/buetify/lib/composables/toast/useToast.d.ts @@ -0,0 +1,6 @@ +import { Slots } from 'vue'; +import { UseNoticeProps } from '../noticeController'; +export declare function useToast(props?: UseNoticeProps, slots?: Slots): { + open: (options: import("../noticeController").OpenNoticeOptions) => void; + close: () => void; +}; diff --git a/node_modules/buetify/lib/composables/toast/useToast.js b/node_modules/buetify/lib/composables/toast/useToast.js new file mode 100755 index 0000000..74674f1 --- /dev/null +++ b/node_modules/buetify/lib/composables/toast/useToast.js @@ -0,0 +1,22 @@ +import { constant } from 'fp-ts/lib/function'; +import { h, shallowRef } from 'vue'; +import { constEmptyArray } from '../../utils/helpers'; +import { DEFAULT_USE_NOTICE_PROPS, useNoticeController } from '../noticeController'; +export function useToast(props = DEFAULT_USE_NOTICE_PROPS, slots = {}) { + const renderNotification = shallowRef(constant(constEmptyArray)); + const noticeController = useNoticeController(props, renderNotification); + + renderNotification.value = options => () => { + return [slots.message ? h('div', { + class: ['toast', options.variant ?? props.variant, options.position ?? props.position], + role: 'alert' + }, slots.message && slots.message()) : h('div', { + class: ['toast', options.variant ?? props.variant, options.position ?? props.position], + role: 'alert', + innerHTML: options.message ?? props.message + })]; + }; + + return noticeController; +} +//# sourceMappingURL=useToast.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toast/useToast.js.map b/node_modules/buetify/lib/composables/toast/useToast.js.map new file mode 100755 index 0000000..7b55181 --- /dev/null +++ b/node_modules/buetify/lib/composables/toast/useToast.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/toast/useToast.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAoC,oBAApC;AAEA,SAAS,CAAT,EAAY,UAAZ,QAA4C,KAA5C;AACA,SAAS,eAAT,QAAgC,qBAAhC;AACA,SACE,wBADF,EAGE,mBAHF,QAKO,qBALP;AAOA,OAAM,SAAU,QAAV,CAAmB,KAAA,GAAwB,wBAA3C,EAAqE,KAAA,GAAe,EAApF,EAAsF;AAC1F,QAAM,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAD,CAAT,CAArC;AACA,QAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAD,EAAQ,kBAAR,CAA5C;;AACA,EAAA,kBAAkB,CAAC,KAAnB,GAA2B,OAAO,IAAI,MAAK;AACzC,WAAO,CACL,KAAK,CAAC,OAAN,GACI,CAAC,CACC,KADD,EAEC;AACE,MAAA,KAAK,EAAE,CAAC,OAAD,EAAU,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAAnC,EAA4C,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC,QAAtE,CADT;AAEE,MAAA,IAAI,EAAE;AAFR,KAFD,EAMC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EANlB,CADL,GASI,CAAC,CAAC,KAAD,EAAQ;AACP,MAAA,KAAK,EAAE,CAAC,OAAD,EAAU,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC,OAAnC,EAA4C,OAAO,CAAC,QAAR,IAAoB,KAAK,CAAC,QAAtE,CADA;AAEP,MAAA,IAAI,EAAE,OAFC;AAGP,MAAA,SAAS,EAAE,OAAO,CAAC,OAAR,IAAmB,KAAK,CAAC;AAH7B,KAAR,CAVA,CAAP;AAgBD,GAjBD;;AAkBA,SAAO,gBAAP;AACD","sourcesContent":["import { constant, FunctionN } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { h, shallowRef, VNode, Slots } from 'vue';\nimport { constEmptyArray } from '../../utils/helpers';\nimport {\n DEFAULT_USE_NOTICE_PROPS,\n RenderNoticeOptions,\n useNoticeController,\n UseNoticeProps\n} from '../noticeController';\n\nexport function useToast(props: UseNoticeProps = DEFAULT_USE_NOTICE_PROPS, slots: Slots = {}) {\n const renderNotification = shallowRef(constant(constEmptyArray) as FunctionN<[RenderNoticeOptions], IO<VNode[]>>);\n const noticeController = useNoticeController(props, renderNotification);\n renderNotification.value = options => () => {\n return [\n slots.message\n ? h(\n 'div',\n {\n class: ['toast', options.variant ?? props.variant, options.position ?? props.position],\n role: 'alert'\n },\n slots.message && slots.message()\n )\n : h('div', {\n class: ['toast', options.variant ?? props.variant, options.position ?? props.position],\n role: 'alert',\n innerHTML: options.message ?? props.message\n })\n ];\n };\n return noticeController;\n}\n"],"sourceRoot":"","file":"useToast.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toggle/index.d.ts b/node_modules/buetify/lib/composables/toggle/index.d.ts new file mode 100755 index 0000000..cf7b23d --- /dev/null +++ b/node_modules/buetify/lib/composables/toggle/index.d.ts @@ -0,0 +1 @@ +export * from './useToggle'; diff --git a/node_modules/buetify/lib/composables/toggle/index.js b/node_modules/buetify/lib/composables/toggle/index.js new file mode 100755 index 0000000..97d4224 --- /dev/null +++ b/node_modules/buetify/lib/composables/toggle/index.js @@ -0,0 +1,2 @@ +export * from './useToggle'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toggle/index.js.map b/node_modules/buetify/lib/composables/toggle/index.js.map new file mode 100755 index 0000000..a3c8d4d --- /dev/null +++ b/node_modules/buetify/lib/composables/toggle/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/toggle/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAd","sourcesContent":["export * from './useToggle';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toggle/useToggle.d.ts b/node_modules/buetify/lib/composables/toggle/useToggle.d.ts new file mode 100755 index 0000000..b4cfad1 --- /dev/null +++ b/node_modules/buetify/lib/composables/toggle/useToggle.d.ts @@ -0,0 +1,76 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { Ref, PropType } from 'vue'; +export declare function getUseTogglePropsDefinition<K extends string>(statusName: K, defaultStatus?: boolean): UseTogglePropsDefinition<K>; +export declare type UseTogglePropsDefinition<K extends string> = { + onToggle: { + type: PropType<FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; +} & Record<K, { + type: PropType<boolean>; + default: boolean; +}> & Record<'hasPopup', { + type: PropType<boolean>; + default: boolean; +}>; +export declare type UseToggleProps<K extends string> = Record<K, boolean> & Record<'hasPopup', boolean>; +export declare function getToggleAttrs(status: Ref<boolean>, hasPopup: Ref<boolean>): import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; +}>; +export declare type ToggleAttrs = ReturnType<typeof getToggleAttrs> extends Ref<infer A> ? A : never; +declare function getListeners(toggle: IO<void>): { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; +}; +export declare type ToggleListeners = ReturnType<typeof getListeners>; +export declare function useToggle<K extends string>(props: { + onToggle?: FunctionN<[boolean], void>; + onSetOn?: IO<void>; + onSetOff?: IO<void>; +} & Record<K, boolean> & { + hasPopup: boolean; +}, statusName: K): { + isOn: import("vue").WritableComputedRef<boolean>; + isOff: import("vue").ComputedRef<boolean>; + attrs: import("vue").ComputedRef<{ + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + listeners: { + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + }; + props: import("vue").ComputedRef<{ + onClick: IO<void>; + onKeydown: (e: KeyboardEvent) => void; + 'aria-haspopup'?: boolean; + tabindex: number; + role: string; + type: string; + 'aria-pressed': boolean; + 'aria-expanded': boolean; + }>; + setOn: (e?: Event | undefined) => void; + setOff: (e?: Event | undefined) => void; + toggle: (e?: Event | undefined) => void; +}; +export declare type Toggle = ReturnType<typeof useToggle>; +export {}; diff --git a/node_modules/buetify/lib/composables/toggle/useToggle.js b/node_modules/buetify/lib/composables/toggle/useToggle.js new file mode 100755 index 0000000..5199a46 --- /dev/null +++ b/node_modules/buetify/lib/composables/toggle/useToggle.js @@ -0,0 +1,121 @@ +import { watch, computed, shallowRef, toRef } from 'vue'; +import { isEnterEvent } from '../../utils/eventHelpers'; +export function getUseTogglePropsDefinition(statusName, defaultStatus = false) { + return { + [statusName]: { + type: Boolean, + default: defaultStatus + }, + [`onUpdate:${statusName}`]: { + type: Function, + required: false + }, + hasPopup: { + type: Boolean, + default: false + }, + onToggle: { + type: Function, + required: false + }, + onSetOn: { + type: Function, + required: false + }, + onSetOff: { + type: Function, + required: false + } + }; +} +export function getToggleAttrs(status, hasPopup) { + return computed(() => ({ + tabindex: 0, + role: 'button', + type: 'button', + 'aria-pressed': status.value, + 'aria-expanded': status.value, + ...(hasPopup.value ? { + 'aria-haspopup': true + } : {}) + })); +} + +function getListeners(toggle) { + return { + onClick: toggle, + onKeydown: e => { + if (isEnterEvent(e)) { + e.preventDefault(); + toggle(); + } + } + }; +} + +export function useToggle(props, statusName) { + const internalStatus = shallowRef(props[statusName]); + const value = computed({ + get() { + return internalStatus.value; + }, + + set(val) { + const cValue = internalStatus.value; + + if (cValue !== val && props.onToggle) { + props.onToggle(val); + } + + if (val && props.onSetOn) { + props.onSetOn(); + } + + if (!val && props.onSetOff) { + props.onSetOff(); + } + + internalStatus.value = val; + const updateModel = props[`onUpdate:${statusName}`]; //eslint-disable-line + + if (updateModel) { + updateModel(val); + } + } + + }); + watch(() => props[statusName], status => { + internalStatus.value = status; + }); + + function setOn(e) { + e && e?.stopPropagation(); + value.value = true; + } + + function setOff(e) { + e && e?.stopPropagation(); + value.value = false; + } + + function toggle(e) { + e && e?.stopPropagation(); + value.value = !value.value; + } + + const attrs = getToggleAttrs(value, toRef(props, 'hasPopup')); + const listeners = getListeners(toggle); + return { + isOn: value, + isOff: computed(() => internalStatus.value === false), + attrs, + listeners, + props: computed(() => ({ ...attrs.value, + ...listeners + })), + setOn, + setOff, + toggle + }; +} +//# sourceMappingURL=useToggle.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/toggle/useToggle.js.map b/node_modules/buetify/lib/composables/toggle/useToggle.js.map new file mode 100755 index 0000000..d5a0741 --- /dev/null +++ b/node_modules/buetify/lib/composables/toggle/useToggle.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/toggle/useToggle.ts"],"names":[],"mappings":"AAEA,SAAS,KAAT,EAAgB,QAAhB,EAAyC,UAAzC,EAAqD,KAArD,QAAkE,KAAlE;AACA,SAAS,YAAT,QAA6B,0BAA7B;AAEA,OAAM,SAAU,2BAAV,CACJ,UADI,EAEJ,aAAa,GAAG,KAFZ,EAEiB;AAErB,SAAO;AACL,KAAC,UAAD,GAAc;AACZ,MAAA,IAAI,EAAE,OADM;AAEZ,MAAA,OAAO,EAAE;AAFG,KADT;AAKL,KAAC,YAAY,UAAU,EAAvB,GAA4B;AAC1B,MAAA,IAAI,EAAE,QADoB;AAE1B,MAAA,QAAQ,EAAE;AAFgB,KALvB;AASL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KATL;AAaL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,QADE;AAER,MAAA,QAAQ,EAAE;AAFF,KAbL;AAiBL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,QADC;AAEP,MAAA,QAAQ,EAAE;AAFH,KAjBJ;AAqBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,QADE;AAER,MAAA,QAAQ,EAAE;AAFF;AArBL,GAAP;AA0BD;AAgCD,OAAM,SAAU,cAAV,CAAyB,MAAzB,EAA+C,QAA/C,EAAqE;AACzE,SAAO,QAAQ,CAAC,OAAO;AACrB,IAAA,QAAQ,EAAE,CADW;AAErB,IAAA,IAAI,EAAE,QAFe;AAGrB,IAAA,IAAI,EAAE,QAHe;AAIrB,oBAAgB,MAAM,CAAC,KAJF;AAKrB,qBAAiB,MAAM,CAAC,KALH;AAMrB,QAAI,QAAQ,CAAC,KAAT,GAAiB;AAAE,uBAAiB;AAAnB,KAAjB,GAA6C,EAAjD;AANqB,GAAP,CAAD,CAAf;AAQD;;AAID,SAAS,YAAT,CAAsB,MAAtB,EAAsC;AACpC,SAAO;AACL,IAAA,OAAO,EAAE,MADJ;AAEL,IAAA,SAAS,EAAG,CAAD,IAAqB;AAC9B,UAAI,YAAY,CAAC,CAAD,CAAhB,EAAqB;AACnB,QAAA,CAAC,CAAC,cAAF;AACA,QAAA,MAAM;AACP;AACF;AAPI,GAAP;AASD;;AAID,OAAM,SAAU,SAAV,CACJ,KADI,EAIJ,UAJI,EAIS;AAEb,QAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,UAAD,CAAN,CAAjC;AACA,QAAM,KAAK,GAAG,QAAQ,CAAC;AACrB,IAAA,GAAG,GAAA;AACD,aAAO,cAAc,CAAC,KAAtB;AACD,KAHoB;;AAIrB,IAAA,GAAG,CAAC,GAAD,EAAa;AACd,YAAM,MAAM,GAAG,cAAc,CAAC,KAA9B;;AACA,UAAI,MAAM,KAAK,GAAX,IAAkB,KAAK,CAAC,QAA5B,EAAsC;AACpC,QAAA,KAAK,CAAC,QAAN,CAAe,GAAf;AACD;;AACD,UAAI,GAAG,IAAI,KAAK,CAAC,OAAjB,EAA0B;AACxB,QAAA,KAAK,CAAC,OAAN;AACD;;AACD,UAAI,CAAC,GAAD,IAAQ,KAAK,CAAC,QAAlB,EAA4B;AAC1B,QAAA,KAAK,CAAC,QAAN;AACD;;AACD,MAAA,cAAc,CAAC,KAAf,GAAuB,GAAvB;AACA,YAAM,WAAW,GAAI,KAAa,CAAC,YAAY,UAAU,EAAvB,CAAlC,CAZc,CAYgD;;AAC9D,UAAI,WAAJ,EAAiB;AACf,QAAA,WAAW,CAAC,GAAD,CAAX;AACD;AACF;;AApBoB,GAAD,CAAtB;AAsBA,EAAA,KAAK,CACH,MAAM,KAAK,CAAC,UAAD,CADR,EAEH,MAAM,IAAG;AACP,IAAA,cAAc,CAAC,KAAf,GAAuB,MAAvB;AACD,GAJE,CAAL;;AAOA,WAAS,KAAT,CAAe,CAAf,EAAwB;AACtB,IAAA,CAAC,IAAI,CAAC,EAAE,eAAH,EAAL;AACA,IAAA,KAAK,CAAC,KAAN,GAAc,IAAd;AACD;;AACD,WAAS,MAAT,CAAgB,CAAhB,EAAyB;AACvB,IAAA,CAAC,IAAI,CAAC,EAAE,eAAH,EAAL;AACA,IAAA,KAAK,CAAC,KAAN,GAAc,KAAd;AACD;;AACD,WAAS,MAAT,CAAgB,CAAhB,EAAyB;AACvB,IAAA,CAAC,IAAI,CAAC,EAAE,eAAH,EAAL;AACA,IAAA,KAAK,CAAC,KAAN,GAAc,CAAC,KAAK,CAAC,KAArB;AACD;;AAED,QAAM,KAAK,GAAG,cAAc,CAAC,KAAD,EAAQ,KAAK,CAAC,KAAD,EAAQ,UAAR,CAAb,CAA5B;AACA,QAAM,SAAS,GAAG,YAAY,CAAC,MAAD,CAA9B;AACA,SAAO;AACL,IAAA,IAAI,EAAE,KADD;AAEL,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,cAAc,CAAC,KAAf,KAAyB,KAAhC,CAFV;AAGL,IAAA,KAHK;AAIL,IAAA,SAJK;AAKL,IAAA,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAX;AAAkB,SAAG;AAArB,KAAP,CAAD,CALV;AAML,IAAA,KANK;AAOL,IAAA,MAPK;AAQL,IAAA;AARK,GAAP;AAUD","sourcesContent":["import { FunctionN } from 'fp-ts/lib/function';\nimport { IO } from 'fp-ts/lib/IO';\nimport { watch, computed, Ref, PropType, shallowRef, toRef } from 'vue';\nimport { isEnterEvent } from '../../utils/eventHelpers';\n\nexport function getUseTogglePropsDefinition<K extends string>(\n statusName: K,\n defaultStatus = false\n): UseTogglePropsDefinition<K> {\n return {\n [statusName]: {\n type: Boolean,\n default: defaultStatus\n },\n [`onUpdate:${statusName}`]: {\n type: Function as PropType<FunctionN<[boolean], void>>,\n required: false\n },\n hasPopup: {\n type: Boolean,\n default: false\n },\n onToggle: {\n type: Function as PropType<FunctionN<[boolean], void>>,\n required: false\n },\n onSetOn: {\n type: Function as PropType<IO<void>>,\n required: false\n },\n onSetOff: {\n type: Function as PropType<IO<void>>,\n required: false\n }\n } as UseTogglePropsDefinition<K>;\n}\n\nexport type UseTogglePropsDefinition<K extends string> = {\n onToggle: {\n type: PropType<FunctionN<[boolean], void>>;\n required: false;\n };\n onSetOn: {\n type: PropType<IO<void>>;\n required: false;\n };\n onSetOff: {\n type: PropType<IO<void>>;\n required: false;\n };\n} & Record<\n K,\n {\n type: PropType<boolean>;\n default: boolean;\n }\n> &\n Record<\n 'hasPopup',\n {\n type: PropType<boolean>;\n default: boolean;\n }\n >;\n\nexport type UseToggleProps<K extends string> = Record<K, boolean> & Record<'hasPopup', boolean>;\n\nexport function getToggleAttrs(status: Ref<boolean>, hasPopup: Ref<boolean>) {\n return computed(() => ({\n tabindex: 0,\n role: 'button',\n type: 'button',\n 'aria-pressed': status.value,\n 'aria-expanded': status.value,\n ...(hasPopup.value ? { 'aria-haspopup': true } : {})\n }));\n}\n\nexport type ToggleAttrs = ReturnType<typeof getToggleAttrs> extends Ref<infer A> ? A : never;\n\nfunction getListeners(toggle: IO<void>) {\n return {\n onClick: toggle,\n onKeydown: (e: KeyboardEvent) => {\n if (isEnterEvent(e)) {\n e.preventDefault();\n toggle();\n }\n }\n };\n}\n\nexport type ToggleListeners = ReturnType<typeof getListeners>;\n\nexport function useToggle<K extends string>(\n props: { onToggle?: FunctionN<[boolean], void>; onSetOn?: IO<void>; onSetOff?: IO<void> } & Record<K, boolean> & {\n hasPopup: boolean;\n },\n statusName: K\n) {\n const internalStatus = shallowRef(props[statusName] as boolean);\n const value = computed({\n get() {\n return internalStatus.value;\n },\n set(val: boolean) {\n const cValue = internalStatus.value;\n if (cValue !== val && props.onToggle) {\n props.onToggle(val);\n }\n if (val && props.onSetOn) {\n props.onSetOn();\n }\n if (!val && props.onSetOff) {\n props.onSetOff();\n }\n internalStatus.value = val;\n const updateModel = (props as any)[`onUpdate:${statusName}`]; //eslint-disable-line\n if (updateModel) {\n updateModel(val);\n }\n }\n });\n watch(\n () => props[statusName],\n status => {\n internalStatus.value = status;\n }\n );\n\n function setOn(e?: Event) {\n e && e?.stopPropagation();\n value.value = true;\n }\n function setOff(e?: Event) {\n e && e?.stopPropagation();\n value.value = false;\n }\n function toggle(e?: Event) {\n e && e?.stopPropagation();\n value.value = !value.value;\n }\n\n const attrs = getToggleAttrs(value, toRef(props, 'hasPopup'));\n const listeners = getListeners(toggle);\n return {\n isOn: value,\n isOff: computed(() => internalStatus.value === false),\n attrs,\n listeners,\n props: computed(() => ({ ...attrs.value, ...listeners })),\n setOn,\n setOff,\n toggle\n };\n}\n\nexport type Toggle = ReturnType<typeof useToggle>;\n"],"sourceRoot":"","file":"useToggle.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/transition/index.d.ts b/node_modules/buetify/lib/composables/transition/index.d.ts new file mode 100755 index 0000000..7b93884 --- /dev/null +++ b/node_modules/buetify/lib/composables/transition/index.d.ts @@ -0,0 +1 @@ +export * from './useTransition'; diff --git a/node_modules/buetify/lib/composables/transition/index.js b/node_modules/buetify/lib/composables/transition/index.js new file mode 100755 index 0000000..ae8eab8 --- /dev/null +++ b/node_modules/buetify/lib/composables/transition/index.js @@ -0,0 +1,2 @@ +export * from './useTransition'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/transition/index.js.map b/node_modules/buetify/lib/composables/transition/index.js.map new file mode 100755 index 0000000..090c341 --- /dev/null +++ b/node_modules/buetify/lib/composables/transition/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/transition/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAd","sourcesContent":["export * from './useTransition';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/transition/useTransition.d.ts b/node_modules/buetify/lib/composables/transition/useTransition.d.ts new file mode 100755 index 0000000..b9c01b9 --- /dev/null +++ b/node_modules/buetify/lib/composables/transition/useTransition.d.ts @@ -0,0 +1,17 @@ +import { PropType, ExtractPropTypes } from 'vue'; +import { Transition, TransitionClasses } from '../../types/Transition'; +export declare function getUseTransitionPropsDefinition(transition: Transition): { + transition: { + type: PropType<Transition>; + default: import("fp-ts/lib/function").Lazy<Transition>; + }; +}; +export declare type UserTransitionProps = ExtractPropTypes<ReturnType<typeof getUseTransitionPropsDefinition>>; +export declare const FadeTransitionPropsDefinition: { + transition: { + type: PropType<Transition>; + default: import("fp-ts/lib/function").Lazy<Transition>; + }; +}; +export declare function formatTransition(transition: Transition): TransitionClasses; +export declare function useTransition(props: UserTransitionProps): import("vue").ComputedRef<TransitionClasses>; diff --git a/node_modules/buetify/lib/composables/transition/useTransition.js b/node_modules/buetify/lib/composables/transition/useTransition.js new file mode 100755 index 0000000..b6b7082 --- /dev/null +++ b/node_modules/buetify/lib/composables/transition/useTransition.js @@ -0,0 +1,22 @@ +import { constant } from 'fp-ts/lib/function'; +import { computed } from 'vue'; +import { isString } from '../../utils/helpers'; +export function getUseTransitionPropsDefinition(transition) { + return { + transition: { + type: [Object, String], + default: constant(transition) + } + }; +} +export const FadeTransitionPropsDefinition = getUseTransitionPropsDefinition('fade'); +export function formatTransition(transition) { + return isString(transition) ? { + name: transition, + css: true + } : transition; +} +export function useTransition(props) { + return computed(() => formatTransition(props.transition)); +} +//# sourceMappingURL=useTransition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/transition/useTransition.js.map b/node_modules/buetify/lib/composables/transition/useTransition.js.map new file mode 100755 index 0000000..035ca35 --- /dev/null +++ b/node_modules/buetify/lib/composables/transition/useTransition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/transition/useTransition.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,oBAAzB;AACA,SAAS,QAAT,QAAqD,KAArD;AAEA,SAAS,QAAT,QAAyB,qBAAzB;AAEA,OAAM,SAAU,+BAAV,CAA0C,UAA1C,EAAgE;AACpE,SAAO;AACL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,MAAA,OAAO,EAAE,QAAQ,CAAC,UAAD;AAFP;AADP,GAAP;AAMD;AAID,OAAO,MAAM,6BAA6B,GAAG,+BAA+B,CAAC,MAAD,CAArE;AAEP,OAAM,SAAU,gBAAV,CAA2B,UAA3B,EAAiD;AACrD,SAAO,QAAQ,CAAC,UAAD,CAAR,GAAuB;AAAE,IAAA,IAAI,EAAE,UAAR;AAAoB,IAAA,GAAG,EAAE;AAAzB,GAAvB,GAAyD,UAAhE;AACD;AAED,OAAM,SAAU,aAAV,CAAwB,KAAxB,EAAkD;AACtD,SAAO,QAAQ,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,UAAP,CAAvB,CAAf;AACD","sourcesContent":["import { constant } from 'fp-ts/lib/function';\nimport { computed, PropType, ExtractPropTypes } from 'vue';\nimport { Transition, TransitionClasses } from '../../types/Transition';\nimport { isString } from '../../utils/helpers';\n\nexport function getUseTransitionPropsDefinition(transition: Transition) {\n return {\n transition: {\n type: [Object, String] as PropType<Transition>,\n default: constant(transition)\n }\n };\n}\n\nexport type UserTransitionProps = ExtractPropTypes<ReturnType<typeof getUseTransitionPropsDefinition>>;\n\nexport const FadeTransitionPropsDefinition = getUseTransitionPropsDefinition('fade');\n\nexport function formatTransition(transition: Transition): TransitionClasses {\n return isString(transition) ? { name: transition, css: true } : transition;\n}\n\nexport function useTransition(props: UserTransitionProps) {\n return computed(() => formatTransition(props.transition));\n}\n"],"sourceRoot":"","file":"useTransition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/validation/index.d.ts b/node_modules/buetify/lib/composables/validation/index.d.ts new file mode 100755 index 0000000..85b20b3 --- /dev/null +++ b/node_modules/buetify/lib/composables/validation/index.d.ts @@ -0,0 +1 @@ +export * from './useValidation'; diff --git a/node_modules/buetify/lib/composables/validation/index.js b/node_modules/buetify/lib/composables/validation/index.js new file mode 100755 index 0000000..48718e7 --- /dev/null +++ b/node_modules/buetify/lib/composables/validation/index.js @@ -0,0 +1,2 @@ +export * from './useValidation'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/validation/index.js.map b/node_modules/buetify/lib/composables/validation/index.js.map new file mode 100755 index 0000000..bdedfcf --- /dev/null +++ b/node_modules/buetify/lib/composables/validation/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAd","sourcesContent":["export * from './useValidation';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/validation/useValidation.d.ts b/node_modules/buetify/lib/composables/validation/useValidation.d.ts new file mode 100755 index 0000000..7bee0ce --- /dev/null +++ b/node_modules/buetify/lib/composables/validation/useValidation.d.ts @@ -0,0 +1,37 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { Ref, ExtractPropTypes, PropType } from 'vue'; +export declare const UseValidationPropsDefinition: { + isDisabled: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + isReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + disableIfReadonly: { + type: PropType<boolean>; + required: boolean; + default: boolean; + }; + useNativeValidation: { + type: PropType<boolean>; + default: boolean; + }; + isValid: { + type: PropType<boolean>; + default: boolean; + }; + 'onUpdate:isValid': { + type: PropType<FunctionN<[boolean], void>>; + default: import("fp-ts/lib/function").Lazy<() => void>; + }; +}; +export declare type UseValidationProps = ExtractPropTypes<typeof UseValidationPropsDefinition>; +export declare function useValidation(props: UseValidationProps, ref: Ref<HTMLElement>): { + isDisabled: Ref<boolean>; + isValid: Ref<boolean>; + validate: () => void; +}; diff --git a/node_modules/buetify/lib/composables/validation/useValidation.js b/node_modules/buetify/lib/composables/validation/useValidation.js new file mode 100755 index 0000000..cfc07b7 --- /dev/null +++ b/node_modules/buetify/lib/composables/validation/useValidation.js @@ -0,0 +1,61 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { shallowRef, watch } from 'vue'; +import { isString } from '../../utils/helpers'; +import { useDisable, UseDisablePropsDefinition } from '../disable'; +import { useFieldData } from '../fieldData'; +export const UseValidationPropsDefinition = { + useNativeValidation: { + type: Boolean, + default: true + }, + isValid: { + type: Boolean, + default: true + }, + 'onUpdate:isValid': { + type: Function, + default: constant(constVoid) + }, + ...UseDisablePropsDefinition +}; + +function isHtmlInputElement(el) { + const newEl = el; + return el && typeof newEl.checkValidity === 'function' && isString(newEl.validationMessage); +} + +export function useValidation(props, ref) { + const { + setters + } = useFieldData(); + const isDisabled = useDisable(props); + const isValid = shallowRef(props.isValid); + watch(isValid, newValue => { + props['onUpdate:isValid'](newValue); + }); + + function validate() { + if (!isDisabled.value && props.useNativeValidation) { + if (isHtmlInputElement(ref.value)) { + const el = ref.value; + + if (!el.checkValidity()) { + setters.onNewVariant('is-danger'); + setters.onNewMessage(el.validationMessage); + isValid.value = false; + } else { + setters.onNewVariant('is-success'); + setters.onNewMessage(''); + isValid.value = true; + } + } + } + } + + return { + isDisabled, + isValid, + validate + }; +} +//# sourceMappingURL=useValidation.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/validation/useValidation.js.map b/node_modules/buetify/lib/composables/validation/useValidation.js.map new file mode 100755 index 0000000..d548abf --- /dev/null +++ b/node_modules/buetify/lib/composables/validation/useValidation.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/validation/useValidation.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,EAAmB,SAAnB,QAA+C,oBAA/C;AACA,SAAgC,UAAhC,EAAsD,KAAtD,QAAmE,KAAnE;AACA,SAAS,QAAT,QAAyB,qBAAzB;AACA,SAAS,UAAT,EAAqB,yBAArB,QAAsD,YAAtD;AACA,SAAS,YAAT,QAA6B,cAA7B;AAEA,OAAO,MAAM,4BAA4B,GAAG;AAC1C,EAAA,mBAAmB,EAAE;AACnB,IAAA,IAAI,EAAE,OADa;AAEnB,IAAA,OAAO,EAAE;AAFU,GADqB;AAK1C,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,EAAE,OADC;AAEP,IAAA,OAAO,EAAE;AAFF,GALiC;AAS1C,sBAAoB;AAClB,IAAA,IAAI,EAAE,QADY;AAElB,IAAA,OAAO,EAAE,QAAQ,CAAC,SAAD;AAFC,GATsB;AAa1C,KAAG;AAbuC,CAArC;;AAkBP,SAAS,kBAAT,CAA4B,EAA5B,EAA2C;AACzC,QAAM,KAAK,GAAI,EAAf;AACA,SAAO,EAAE,IAAI,OAAO,KAAK,CAAC,aAAb,KAA+B,UAArC,IAAmD,QAAQ,CAAC,KAAK,CAAC,iBAAP,CAAlE;AACD;;AAED,OAAM,SAAU,aAAV,CAAwB,KAAxB,EAAmD,GAAnD,EAAwE;AAC5E,QAAM;AAAE,IAAA;AAAF,MAAc,YAAY,EAAhC;AACA,QAAM,UAAU,GAAG,UAAU,CAAC,KAAD,CAA7B;AACA,QAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAP,CAA1B;AACA,EAAA,KAAK,CAAC,OAAD,EAAU,QAAQ,IAAG;AACxB,IAAA,KAAK,CAAC,kBAAD,CAAL,CAA0B,QAA1B;AACD,GAFI,CAAL;;AAGA,WAAS,QAAT,GAAiB;AACf,QAAI,CAAC,UAAU,CAAC,KAAZ,IAAqB,KAAK,CAAC,mBAA/B,EAAoD;AAClD,UAAI,kBAAkB,CAAC,GAAG,CAAC,KAAL,CAAtB,EAAmC;AACjC,cAAM,EAAE,GAAG,GAAG,CAAC,KAAf;;AACA,YAAI,CAAC,EAAE,CAAC,aAAH,EAAL,EAAyB;AACvB,UAAA,OAAO,CAAC,YAAR,CAAqB,WAArB;AACA,UAAA,OAAO,CAAC,YAAR,CAAqB,EAAE,CAAC,iBAAxB;AACA,UAAA,OAAO,CAAC,KAAR,GAAgB,KAAhB;AACD,SAJD,MAIO;AACL,UAAA,OAAO,CAAC,YAAR,CAAqB,YAArB;AACA,UAAA,OAAO,CAAC,YAAR,CAAqB,EAArB;AACA,UAAA,OAAO,CAAC,KAAR,GAAgB,IAAhB;AACD;AACF;AACF;AACF;;AACD,SAAO;AACL,IAAA,UADK;AAEL,IAAA,OAFK;AAGL,IAAA;AAHK,GAAP;AAKD","sourcesContent":["import { constant, constVoid, FunctionN } from 'fp-ts/lib/function';\nimport { Ref, ExtractPropTypes, shallowRef, PropType, watch } from 'vue';\nimport { isString } from '../../utils/helpers';\nimport { useDisable, UseDisablePropsDefinition } from '../disable';\nimport { useFieldData } from '../fieldData';\n\nexport const UseValidationPropsDefinition = {\n useNativeValidation: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n isValid: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n 'onUpdate:isValid': {\n type: Function as PropType<FunctionN<[boolean], void>>,\n default: constant(constVoid)\n },\n ...UseDisablePropsDefinition\n};\n\nexport type UseValidationProps = ExtractPropTypes<typeof UseValidationPropsDefinition>;\n\nfunction isHtmlInputElement(el: HTMLElement): el is HTMLInputElement {\n const newEl = (el as unknown) as HTMLInputElement;\n return el && typeof newEl.checkValidity === 'function' && isString(newEl.validationMessage);\n}\n\nexport function useValidation(props: UseValidationProps, ref: Ref<HTMLElement>) {\n const { setters } = useFieldData();\n const isDisabled = useDisable(props);\n const isValid = shallowRef(props.isValid);\n watch(isValid, newValue => {\n props['onUpdate:isValid'](newValue);\n });\n function validate() {\n if (!isDisabled.value && props.useNativeValidation) {\n if (isHtmlInputElement(ref.value)) {\n const el = ref.value;\n if (!el.checkValidity()) {\n setters.onNewVariant('is-danger');\n setters.onNewMessage(el.validationMessage);\n isValid.value = false;\n } else {\n setters.onNewVariant('is-success');\n setters.onNewMessage('');\n isValid.value = true;\n }\n }\n }\n }\n return {\n isDisabled,\n isValid,\n validate\n };\n}\n"],"sourceRoot":"","file":"useValidation.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/windowSize/index.d.ts b/node_modules/buetify/lib/composables/windowSize/index.d.ts new file mode 100755 index 0000000..8e30911 --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/index.d.ts @@ -0,0 +1,2 @@ +export * from './provideWindowSize'; +export * from './useWindowSize'; diff --git a/node_modules/buetify/lib/composables/windowSize/index.js b/node_modules/buetify/lib/composables/windowSize/index.js new file mode 100755 index 0000000..45673cd --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/index.js @@ -0,0 +1,3 @@ +export * from './provideWindowSize'; +export * from './useWindowSize'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/windowSize/index.js.map b/node_modules/buetify/lib/composables/windowSize/index.js.map new file mode 100755 index 0000000..d74845c --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/windowSize/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAd;AACA,cAAc,iBAAd","sourcesContent":["export * from './provideWindowSize';\nexport * from './useWindowSize';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/windowSize/provideWindowSize.d.ts b/node_modules/buetify/lib/composables/windowSize/provideWindowSize.d.ts new file mode 100755 index 0000000..7a83d95 --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/provideWindowSize.d.ts @@ -0,0 +1,48 @@ +import { Option } from 'fp-ts/lib/Option'; +import { Ref, PropType, ExtractPropTypes } from 'vue'; +export interface WindowSize { + windowWidth: number; + isMobile: boolean; + isTablet: boolean; + isTouch: boolean; + isDesktop: boolean; + isWidescreen: boolean; + isFullHD: boolean; +} +export interface WindowSizeInjection { + windowSize: Ref<Option<WindowSize>>; +} +export declare const DEFAULT_WINDOW_SIZE_INJECTION: WindowSizeInjection; +export declare const DEFAULT_BREAK_POINTS: Ref<{ + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; +}>; +export declare type BreakPoints = typeof DEFAULT_BREAK_POINTS.value; +export declare const WINDOW_SIZE_SYMBOL: unique symbol; +export declare const ProvideWindowSizePropsDefinition: { + breakPoints: { + type: PropType<{ + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; + }>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<{ + mobile: number; + tablet: number; + desktop: number; + widescreen: number; + fullHD: number; + }>; + }; +}; +export declare type ProvideWindowSizeProps = ExtractPropTypes<typeof ProvideWindowSizePropsDefinition>; +export declare function getWindowSize(): Ref<WindowSize>; +export declare function provideWindowSize(props: ProvideWindowSizeProps): { + windowSize: Ref<WindowSize>; +}; diff --git a/node_modules/buetify/lib/composables/windowSize/provideWindowSize.js b/node_modules/buetify/lib/composables/windowSize/provideWindowSize.js new file mode 100755 index 0000000..d063b2d --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/provideWindowSize.js @@ -0,0 +1,61 @@ +import { constant } from 'fp-ts/lib/function'; +import { none, some } from 'fp-ts/lib/Option'; +import debounce from 'lodash.debounce'; +import { watchEffect, provide, shallowRef, computed, onMounted, onUnmounted } from 'vue'; +export const DEFAULT_WINDOW_SIZE_INJECTION = { + windowSize: shallowRef(none) +}; +export const DEFAULT_BREAK_POINTS = shallowRef({ + mobile: 768, + tablet: 1023, + desktop: 1215, + widescreen: 1407, + fullHD: 1408 +}); +export const WINDOW_SIZE_SYMBOL = Symbol('window-size'); +export const ProvideWindowSizePropsDefinition = { + breakPoints: { + type: Object, + required: false, + default: constant(DEFAULT_BREAK_POINTS.value) + } +}; +export function getWindowSize() { + const windowWidth = shallowRef(window.innerWidth); + const resizeHandler = debounce(() => { + windowWidth.value = window.innerWidth; + }, 250); + onMounted(() => window.addEventListener('resize', resizeHandler, { + passive: true + })); + onUnmounted(() => window.removeEventListener('resize', resizeHandler)); + return computed(() => { + const breakPoints = DEFAULT_BREAK_POINTS.value; + const innerWidth = windowWidth.value; + const isMobile = innerWidth <= breakPoints.mobile; + const isTablet = innerWidth <= breakPoints.tablet && innerWidth > breakPoints.mobile; + return { + windowWidth: innerWidth, + isMobile, + isTablet, + isTouch: isMobile || isTablet, + isDesktop: innerWidth <= breakPoints.desktop && innerWidth > breakPoints.tablet, + isWidescreen: innerWidth <= breakPoints.widescreen && innerWidth > breakPoints.desktop, + isFullHD: innerWidth >= breakPoints.fullHD + }; + }); +} +export function provideWindowSize(props) { + watchEffect(() => { + DEFAULT_BREAK_POINTS.value = props.breakPoints; + }); + const windowSize = getWindowSize(); + const injection = { + windowSize: computed(() => some(windowSize.value)) + }; + provide(WINDOW_SIZE_SYMBOL, injection); + return { + windowSize + }; +} +//# sourceMappingURL=provideWindowSize.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/windowSize/provideWindowSize.js.map b/node_modules/buetify/lib/composables/windowSize/provideWindowSize.js.map new file mode 100755 index 0000000..ac7fab1 --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/provideWindowSize.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/windowSize/provideWindowSize.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,oBAAzB;AACA,SAAS,IAAT,EAAuB,IAAvB,QAAmC,kBAAnC;AACA,OAAO,QAAP,MAAqB,iBAArB;AACA,SACE,WADF,EAEE,OAFF,EAGE,UAHF,EAOE,QAPF,EAQE,SARF,EASE,WATF,QAUO,KAVP;AA0BA,OAAO,MAAM,6BAA6B,GAAwB;AAChE,EAAA,UAAU,EAAE,UAAU,CAAC,IAAD;AAD0C,CAA3D;AAIP,OAAO,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC7C,EAAA,MAAM,EAAE,GADqC;AAE7C,EAAA,MAAM,EAAE,IAFqC;AAG7C,EAAA,OAAO,EAAE,IAHoC;AAI7C,EAAA,UAAU,EAAE,IAJiC;AAK7C,EAAA,MAAM,EAAE;AALqC,CAAD,CAAvC;AAUP,OAAO,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAD,CAAjC;AAEP,OAAO,MAAM,gCAAgC,GAAG;AAC9C,EAAA,WAAW,EAAE;AACX,IAAA,IAAI,EAAE,MADK;AAEX,IAAA,QAAQ,EAAE,KAFC;AAGX,IAAA,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAtB;AAHN;AADiC,CAAzC;AAUP,OAAM,SAAU,aAAV,GAAuB;AAC3B,QAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,UAAR,CAA9B;AAEA,QAAM,aAAa,GAAG,QAAQ,CAAC,MAAK;AAClC,IAAA,WAAW,CAAC,KAAZ,GAAoB,MAAM,CAAC,UAA3B;AACD,GAF6B,EAE3B,GAF2B,CAA9B;AAIA,EAAA,SAAS,CAAC,MAAM,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,aAAlC,EAAiD;AAAE,IAAA,OAAO,EAAE;AAAX,GAAjD,CAAP,CAAT;AACA,EAAA,WAAW,CAAC,MAAM,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,aAArC,CAAP,CAAX;AAEA,SAAO,QAAQ,CAAC,MAAK;AACnB,UAAM,WAAW,GAAG,oBAAoB,CAAC,KAAzC;AACA,UAAM,UAAU,GAAG,WAAW,CAAC,KAA/B;AACA,UAAM,QAAQ,GAAG,UAAU,IAAI,WAAW,CAAC,MAA3C;AACA,UAAM,QAAQ,GAAG,UAAU,IAAI,WAAW,CAAC,MAA1B,IAAoC,UAAU,GAAG,WAAW,CAAC,MAA9E;AACA,WAAO;AACL,MAAA,WAAW,EAAE,UADR;AAEL,MAAA,QAFK;AAGL,MAAA,QAHK;AAIL,MAAA,OAAO,EAAE,QAAQ,IAAI,QAJhB;AAKL,MAAA,SAAS,EAAE,UAAU,IAAI,WAAW,CAAC,OAA1B,IAAqC,UAAU,GAAG,WAAW,CAAC,MALpE;AAML,MAAA,YAAY,EAAE,UAAU,IAAI,WAAW,CAAC,UAA1B,IAAwC,UAAU,GAAG,WAAW,CAAC,OAN1E;AAOL,MAAA,QAAQ,EAAE,UAAU,IAAI,WAAW,CAAC;AAP/B,KAAP;AASD,GAdc,CAAf;AAeD;AAED,OAAM,SAAU,iBAAV,CAA4B,KAA5B,EAAyD;AAC7D,EAAA,WAAW,CAAC,MAAK;AACf,IAAA,oBAAoB,CAAC,KAArB,GAA6B,KAAK,CAAC,WAAnC;AACD,GAFU,CAAX;AAGA,QAAM,UAAU,GAAG,aAAa,EAAhC;AAEA,QAAM,SAAS,GAAwB;AACrC,IAAA,UAAU,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAZ,CAAX;AADiB,GAAvC;AAIA,EAAA,OAAO,CAAC,kBAAD,EAAqB,SAArB,CAAP;AAEA,SAAO;AACL,IAAA;AADK,GAAP;AAGD","sourcesContent":["import { constant } from 'fp-ts/lib/function';\nimport { none, Option, some } from 'fp-ts/lib/Option';\nimport debounce from 'lodash.debounce';\nimport {\n watchEffect,\n provide,\n shallowRef,\n Ref,\n PropType,\n ExtractPropTypes,\n computed,\n onMounted,\n onUnmounted\n} from 'vue';\n\nexport interface WindowSize {\n windowWidth: number;\n isMobile: boolean;\n isTablet: boolean;\n isTouch: boolean;\n isDesktop: boolean;\n isWidescreen: boolean;\n isFullHD: boolean;\n}\n\nexport interface WindowSizeInjection {\n windowSize: Ref<Option<WindowSize>>;\n}\n\nexport const DEFAULT_WINDOW_SIZE_INJECTION: WindowSizeInjection = {\n windowSize: shallowRef(none)\n};\n\nexport const DEFAULT_BREAK_POINTS = shallowRef({\n mobile: 768,\n tablet: 1023,\n desktop: 1215,\n widescreen: 1407,\n fullHD: 1408\n});\n\nexport type BreakPoints = typeof DEFAULT_BREAK_POINTS.value;\n\nexport const WINDOW_SIZE_SYMBOL = Symbol('window-size');\n\nexport const ProvideWindowSizePropsDefinition = {\n breakPoints: {\n type: Object as PropType<BreakPoints>,\n required: false,\n default: constant(DEFAULT_BREAK_POINTS.value)\n }\n};\n\nexport type ProvideWindowSizeProps = ExtractPropTypes<typeof ProvideWindowSizePropsDefinition>;\n\nexport function getWindowSize(): Ref<WindowSize> {\n const windowWidth = shallowRef(window.innerWidth);\n\n const resizeHandler = debounce(() => {\n windowWidth.value = window.innerWidth;\n }, 250);\n\n onMounted(() => window.addEventListener('resize', resizeHandler, { passive: true }));\n onUnmounted(() => window.removeEventListener('resize', resizeHandler));\n\n return computed(() => {\n const breakPoints = DEFAULT_BREAK_POINTS.value;\n const innerWidth = windowWidth.value;\n const isMobile = innerWidth <= breakPoints.mobile;\n const isTablet = innerWidth <= breakPoints.tablet && innerWidth > breakPoints.mobile;\n return {\n windowWidth: innerWidth,\n isMobile,\n isTablet,\n isTouch: isMobile || isTablet,\n isDesktop: innerWidth <= breakPoints.desktop && innerWidth > breakPoints.tablet,\n isWidescreen: innerWidth <= breakPoints.widescreen && innerWidth > breakPoints.desktop,\n isFullHD: innerWidth >= breakPoints.fullHD\n };\n });\n}\n\nexport function provideWindowSize(props: ProvideWindowSizeProps) {\n watchEffect(() => {\n DEFAULT_BREAK_POINTS.value = props.breakPoints;\n });\n const windowSize = getWindowSize();\n\n const injection: WindowSizeInjection = {\n windowSize: computed(() => some(windowSize.value))\n };\n\n provide(WINDOW_SIZE_SYMBOL, injection);\n\n return {\n windowSize\n };\n}\n"],"sourceRoot":"","file":"provideWindowSize.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/windowSize/useWindowSize.d.ts b/node_modules/buetify/lib/composables/windowSize/useWindowSize.d.ts new file mode 100755 index 0000000..38f6eea --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/useWindowSize.d.ts @@ -0,0 +1 @@ +export declare function useWindowSize(): import("vue").ComputedRef<import("./provideWindowSize").WindowSize>; diff --git a/node_modules/buetify/lib/composables/windowSize/useWindowSize.js b/node_modules/buetify/lib/composables/windowSize/useWindowSize.js new file mode 100755 index 0000000..c4015d7 --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/useWindowSize.js @@ -0,0 +1,10 @@ +import { isSome, none } from 'fp-ts/lib/Option'; +import { shallowRef, inject, computed } from 'vue'; +import { getWindowSize, WINDOW_SIZE_SYMBOL } from './provideWindowSize'; +export function useWindowSize() { + const injection = inject(WINDOW_SIZE_SYMBOL, { + windowSize: shallowRef(none) + }); + return computed(() => isSome(injection.windowSize.value) ? injection.windowSize.value.value : getWindowSize().value); +} +//# sourceMappingURL=useWindowSize.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/composables/windowSize/useWindowSize.js.map b/node_modules/buetify/lib/composables/windowSize/useWindowSize.js.map new file mode 100755 index 0000000..ceace3c --- /dev/null +++ b/node_modules/buetify/lib/composables/windowSize/useWindowSize.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/composables/windowSize/useWindowSize.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,EAAiB,IAAjB,QAA6B,kBAA7B;AACA,SAAS,UAAT,EAAqB,MAArB,EAA6B,QAA7B,QAA6C,KAA7C;AACA,SAAS,aAAT,EAAwB,kBAAxB,QAAuE,qBAAvE;AAEA,OAAM,SAAU,aAAV,GAAuB;AAC3B,QAAM,SAAS,GAAG,MAAM,CAAC,kBAAD,EAAqB;AAAE,IAAA,UAAU,EAAE,UAAU,CAAC,IAAD;AAAxB,GAArB,CAAxB;AACA,SAAO,QAAQ,CAAC,MACd,MAAM,CAAC,SAAS,CAAC,UAAV,CAAqB,KAAtB,CAAN,GAAqC,SAAS,CAAC,UAAV,CAAqB,KAArB,CAA2B,KAAhE,GAAwE,aAAa,GAAG,KAD3E,CAAf;AAGD","sourcesContent":["import { isSome, none } from 'fp-ts/lib/Option';\nimport { shallowRef, inject, computed } from 'vue';\nimport { getWindowSize, WINDOW_SIZE_SYMBOL, WindowSizeInjection } from './provideWindowSize';\n\nexport function useWindowSize() {\n const injection = inject(WINDOW_SIZE_SYMBOL, { windowSize: shallowRef(none) } as WindowSizeInjection);\n return computed(() =>\n isSome(injection.windowSize.value) ? injection.windowSize.value.value : getWindowSize().value\n );\n}\n"],"sourceRoot":"","file":"useWindowSize.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/directives/clickOutside/index.d.ts b/node_modules/buetify/lib/directives/clickOutside/index.d.ts new file mode 100755 index 0000000..0b80f88 --- /dev/null +++ b/node_modules/buetify/lib/directives/clickOutside/index.d.ts @@ -0,0 +1,3 @@ +import { Directive } from 'vue'; +export declare const ClickOutside: Directive; +export default ClickOutside; diff --git a/node_modules/buetify/lib/directives/clickOutside/index.js b/node_modules/buetify/lib/directives/clickOutside/index.js new file mode 100755 index 0000000..5d5c849 --- /dev/null +++ b/node_modules/buetify/lib/directives/clickOutside/index.js @@ -0,0 +1,64 @@ +function defaultConditional() { + return true; +} + +function directive(e, el, binding) { + const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler; + const isActive = typeof binding.value === 'object' && binding.value.closeConditional || defaultConditional; // The include element callbacks below can be expensive + // so we should avoid calling them when we're not active. + // Explicitly check for false to allow fallback compatibility + // with non-toggleable components + + if (!e || isActive(e) === false) return; // If click was triggered programmaticaly (domEl.click()) then + // it shouldn't be treated as click-outside + // Chrome/Firefox support isTrusted property + // IE/Edge support pointerType property (empty if not triggered + // by pointing device) + + if ('isTrusted' in e && !e.isTrusted || 'pointerType' in e && !e.pointerType) return; // Check if additional elements were passed to be included in check + // (click must be outside all included elements, if any) + + const elements = (typeof binding.value === 'object' && binding.value.include || (() => []))(); // Add the root element for the component this directive was defined on + + + elements.push(el); // Check if it's a click outside our elements, and then if our callback returns true. + // Non-toggleable components should take action in their callback and return falsy. + // Toggleable can return true if it wants to deactivate. + // Note that, because we're in the capture phase, this callback will occur before + // the bubbling click event on any outside elements. + // eslint-disable-next-line + + !elements.some(el => el.contains(e.target)) && setTimeout(() => { + isActive(e) && handler && handler(e); + }, 0); +} + +export const ClickOutside = { + // .b-app may not be found + // if using bind, inserted makes + // sure that the root element is + // available, iOS does not support + // clicks on body + mounted(el, binding) { + const onClick = e => directive(e, el, binding); // iOS does not recognize click events on document + // or body, this is the entire purpose of the v-app + // component and [data-app], stop removing this + + + const app = document.querySelector('.b-app') || document.body; // This is only for unit tests + + app.addEventListener('click', onClick, true); + el._clickOutside = onClick; + }, + + unmounted(el) { + if (!el._clickOutside) return; + const app = document.querySelector('.b-app') || document.body; // This is only for unit tests + + app && app.removeEventListener('click', el._clickOutside, true); + delete el._clickOutside; + } + +}; +export default ClickOutside; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/directives/clickOutside/index.js.map b/node_modules/buetify/lib/directives/clickOutside/index.js.map new file mode 100755 index 0000000..e5a0452 --- /dev/null +++ b/node_modules/buetify/lib/directives/clickOutside/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/directives/clickOutside/index.ts"],"names":[],"mappings":"AAgBA,SAAS,kBAAT,GAA2B;AACzB,SAAO,IAAP;AACD;;AAED,SAAS,SAAT,CAAmB,CAAnB,EAAoC,EAApC,EAAqD,OAArD,EAA0F;AACxF,QAAM,OAAO,GAAG,OAAO,OAAO,CAAC,KAAf,KAAyB,UAAzB,GAAsC,OAAO,CAAC,KAA9C,GAAsD,OAAO,CAAC,KAAR,CAAc,OAApF;AAEA,QAAM,QAAQ,GAAI,OAAO,OAAO,CAAC,KAAf,KAAyB,QAAzB,IAAqC,OAAO,CAAC,KAAR,CAAc,gBAApD,IAAyE,kBAA1F,CAHwF,CAKxF;AACA;AACA;AACA;;AACA,MAAI,CAAC,CAAD,IAAM,QAAQ,CAAC,CAAD,CAAR,KAAgB,KAA1B,EAAiC,OATuD,CAWxF;AACA;AACA;AACA;AACA;;AACA,MAAK,eAAe,CAAf,IAAoB,CAAC,CAAC,CAAC,SAAxB,IAAuC,iBAAiB,CAAjB,IAAsB,CAAC,CAAC,CAAC,WAApE,EAAkF,OAhBM,CAkBxF;AACA;;AACA,QAAM,QAAQ,GAAG,CAAE,OAAO,OAAO,CAAC,KAAf,KAAyB,QAAzB,IAAqC,OAAO,CAAC,KAAR,CAAc,OAApD,KAAiE,MAAM,EAAvE,CAAD,GAAjB,CApBwF,CAqBxF;;;AACA,EAAA,QAAQ,CAAC,IAAT,CAAc,EAAd,EAtBwF,CAwBxF;AACA;AACA;AACA;AACA;AAEA;;AACA,GAAC,QAAQ,CAAC,IAAT,CAAe,EAAD,IAAa,EAAE,CAAC,QAAH,CAAY,CAAC,CAAC,MAAd,CAA3B,CAAD,IACE,UAAU,CAAC,MAAK;AACd,IAAA,QAAQ,CAAC,CAAD,CAAR,IAAe,OAAf,IAA0B,OAAO,CAAC,CAAD,CAAjC;AACD,GAFS,EAEP,CAFO,CADZ;AAID;;AAED,OAAO,MAAM,YAAY,GAAc;AACrC;AACA;AACA;AACA;AACA;AACA,EAAA,OAAO,CAAC,EAAD,EAAkB,OAAlB,EAAuD;AAC5D,UAAM,OAAO,GAAI,CAAD,IAAc,SAAS,CAAC,CAAD,EAAoB,EAApB,EAAwB,OAAxB,CAAvC,CAD4D,CAE5D;AACA;AACA;;;AACA,UAAM,GAAG,GAAG,QAAQ,CAAC,aAAT,CAAuB,QAAvB,KAAoC,QAAQ,CAAC,IAAzD,CAL4D,CAKG;;AAC/D,IAAA,GAAG,CAAC,gBAAJ,CAAqB,OAArB,EAA8B,OAA9B,EAAuC,IAAvC;AACA,IAAA,EAAE,CAAC,aAAH,GAAmB,OAAnB;AACD,GAdoC;;AAgBrC,EAAA,SAAS,CAAC,EAAD,EAAgB;AACvB,QAAI,CAAC,EAAE,CAAC,aAAR,EAAuB;AAEvB,UAAM,GAAG,GAAG,QAAQ,CAAC,aAAT,CAAuB,QAAvB,KAAoC,QAAQ,CAAC,IAAzD,CAHuB,CAGwC;;AAC/D,IAAA,GAAG,IAAI,GAAG,CAAC,mBAAJ,CAAwB,OAAxB,EAAiC,EAAE,CAAC,aAApC,EAAmD,IAAnD,CAAP;AACA,WAAO,EAAE,CAAC,aAAV;AACD;;AAtBoC,CAAhC;AAyBP,eAAe,YAAf","sourcesContent":["import { Directive, DirectiveBinding } from 'vue';\n\ninterface HTMLElement {\n _clickOutside?: EventListenerOrEventListenerObject;\n}\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void;\n closeConditional?: (e: Event) => boolean;\n include?: () => HTMLElement[];\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: Event) => void) | ClickOutsideBindingArgs;\n}\n\nfunction defaultConditional() {\n return true;\n}\n\nfunction directive(e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): void {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler;\n\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional;\n\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || isActive(e) === false) return;\n\n // If click was triggered programmaticaly (domEl.click()) then\n // it shouldn't be treated as click-outside\n // Chrome/Firefox support isTrusted property\n // IE/Edge support pointerType property (empty if not triggered\n // by pointing device)\n if (('isTrusted' in e && !e.isTrusted) || ('pointerType' in e && !e.pointerType)) return;\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))();\n // Add the root element for the component this directive was defined on\n elements.push(el);\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n\n // eslint-disable-next-line\n !elements.some((el: any) => el.contains(e.target as Node)) &&\n setTimeout(() => {\n isActive(e) && handler && handler(e);\n }, 0);\n}\n\nexport const ClickOutside: Directive = {\n // .b-app may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted(el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding);\n // iOS does not recognize click events on document\n // or body, this is the entire purpose of the v-app\n // component and [data-app], stop removing this\n const app = document.querySelector('.b-app') || document.body; // This is only for unit tests\n app.addEventListener('click', onClick, true);\n el._clickOutside = onClick;\n },\n\n unmounted(el: HTMLElement) {\n if (!el._clickOutside) return;\n\n const app = document.querySelector('.b-app') || document.body; // This is only for unit tests\n app && app.removeEventListener('click', el._clickOutside, true);\n delete el._clickOutside;\n }\n};\n\nexport default ClickOutside;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/directives/index.d.ts b/node_modules/buetify/lib/directives/index.d.ts new file mode 100755 index 0000000..1922eb8 --- /dev/null +++ b/node_modules/buetify/lib/directives/index.d.ts @@ -0,0 +1 @@ +export * from './clickOutside'; diff --git a/node_modules/buetify/lib/directives/index.js b/node_modules/buetify/lib/directives/index.js new file mode 100755 index 0000000..d95bac8 --- /dev/null +++ b/node_modules/buetify/lib/directives/index.js @@ -0,0 +1,2 @@ +export * from './clickOutside'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/directives/index.js.map b/node_modules/buetify/lib/directives/index.js.map new file mode 100755 index 0000000..c2c5388 --- /dev/null +++ b/node_modules/buetify/lib/directives/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAd","sourcesContent":["export * from './clickOutside';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/index.d.ts b/node_modules/buetify/lib/index.d.ts new file mode 100755 index 0000000..e5b9498 --- /dev/null +++ b/node_modules/buetify/lib/index.d.ts @@ -0,0 +1,5 @@ +export * from './components'; +export * from './composables'; +export * from './directives'; +export * from './transitions'; +export * from './types'; diff --git a/node_modules/buetify/lib/index.js b/node_modules/buetify/lib/index.js new file mode 100755 index 0000000..6d9fe22 --- /dev/null +++ b/node_modules/buetify/lib/index.js @@ -0,0 +1,6 @@ +export * from './components'; +export * from './composables'; +export * from './directives'; +export * from './transitions'; +export * from './types'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/index.js.map b/node_modules/buetify/lib/index.js.map new file mode 100755 index 0000000..e0616a3 --- /dev/null +++ b/node_modules/buetify/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,cAAd;AACA,cAAc,eAAd;AACA,cAAc,SAAd","sourcesContent":["export * from './components';\nexport * from './composables';\nexport * from './directives';\nexport * from './transitions';\nexport * from './types';\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.d.ts b/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.d.ts new file mode 100755 index 0000000..9528429 --- /dev/null +++ b/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.d.ts @@ -0,0 +1,2 @@ +import '../../sass/helpers/animations.sass'; +export declare const HorizontalExpandTransition: import("vue").FunctionalComponent<{}, {}>; diff --git a/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.js b/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.js new file mode 100755 index 0000000..5d122f3 --- /dev/null +++ b/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.js @@ -0,0 +1,5 @@ +import "../../../src/sass/helpers/animations.sass"; +import { createJavascriptTransition } from '../shared/createJavascriptTransition'; +import { createExpandTransition } from '../shared/expandTransition'; +export const HorizontalExpandTransition = createJavascriptTransition('is-horizontal-expand-transition', createExpandTransition('expand-horizontal-transition', true)); +//# sourceMappingURL=HorizontalExpandTransition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.js.map b/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.js.map new file mode 100755 index 0000000..579e5cb --- /dev/null +++ b/node_modules/buetify/lib/transitions/horizontalExpandTransition/HorizontalExpandTransition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/horizontalExpandTransition/HorizontalExpandTransition.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AACA,SAAS,0BAAT,QAA2C,sCAA3C;AACA,SAAS,sBAAT,QAAuC,4BAAvC;AAEA,OAAO,MAAM,0BAA0B,GAAG,0BAA0B,CAClE,iCADkE,EAElE,sBAAsB,CAAC,8BAAD,EAAiC,IAAjC,CAF4C,CAA7D","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport { createJavascriptTransition } from '../shared/createJavascriptTransition';\nimport { createExpandTransition } from '../shared/expandTransition';\n\nexport const HorizontalExpandTransition = createJavascriptTransition(\n 'is-horizontal-expand-transition',\n createExpandTransition('expand-horizontal-transition', true)\n);\n"],"sourceRoot":"","file":"HorizontalExpandTransition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.d.ts b/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.d.ts new file mode 100755 index 0000000..7a2e25f --- /dev/null +++ b/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.d.ts @@ -0,0 +1,3 @@ +import { HorizontalExpandTransition } from './HorizontalExpandTransition'; +export { HorizontalExpandTransition }; +export default HorizontalExpandTransition; diff --git a/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.js b/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.js new file mode 100755 index 0000000..8c6c21b --- /dev/null +++ b/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.js @@ -0,0 +1,4 @@ +import { HorizontalExpandTransition } from './HorizontalExpandTransition'; +export { HorizontalExpandTransition }; +export default HorizontalExpandTransition; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.js.map b/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.js.map new file mode 100755 index 0000000..04e4d67 --- /dev/null +++ b/node_modules/buetify/lib/transitions/horizontalExpandTransition/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/horizontalExpandTransition/index.ts"],"names":[],"mappings":"AAAA,SAAS,0BAAT,QAA2C,8BAA3C;AAEA,SAAS,0BAAT;AAEA,eAAe,0BAAf","sourcesContent":["import { HorizontalExpandTransition } from './HorizontalExpandTransition';\n\nexport { HorizontalExpandTransition };\n\nexport default HorizontalExpandTransition;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/index.d.ts b/node_modules/buetify/lib/transitions/index.d.ts new file mode 100755 index 0000000..a22ed98 --- /dev/null +++ b/node_modules/buetify/lib/transitions/index.d.ts @@ -0,0 +1,5 @@ +import HorizontalExpandTransition from './horizontalExpandTransition'; +import SlideRightTransition from './slideRightTransition'; +import VerticalExpandTransition from './verticalExpandTransition'; +import VerticalExpandTransitionGroup from './verticalExpandTransitionGroup'; +export { HorizontalExpandTransition, SlideRightTransition, VerticalExpandTransition, VerticalExpandTransitionGroup }; diff --git a/node_modules/buetify/lib/transitions/index.js b/node_modules/buetify/lib/transitions/index.js new file mode 100755 index 0000000..d257fcc --- /dev/null +++ b/node_modules/buetify/lib/transitions/index.js @@ -0,0 +1,6 @@ +import HorizontalExpandTransition from './horizontalExpandTransition'; +import SlideRightTransition from './slideRightTransition'; +import VerticalExpandTransition from './verticalExpandTransition'; +import VerticalExpandTransitionGroup from './verticalExpandTransitionGroup'; +export { HorizontalExpandTransition, SlideRightTransition, VerticalExpandTransition, VerticalExpandTransitionGroup }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/index.js.map b/node_modules/buetify/lib/transitions/index.js.map new file mode 100755 index 0000000..f3d8e99 --- /dev/null +++ b/node_modules/buetify/lib/transitions/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/transitions/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAAP,MAAuC,8BAAvC;AACA,OAAO,oBAAP,MAAiC,wBAAjC;AACA,OAAO,wBAAP,MAAqC,4BAArC;AACA,OAAO,6BAAP,MAA0C,iCAA1C;AAEA,SAAS,0BAAT,EAAqC,oBAArC,EAA2D,wBAA3D,EAAqF,6BAArF","sourcesContent":["import HorizontalExpandTransition from './horizontalExpandTransition';\nimport SlideRightTransition from './slideRightTransition';\nimport VerticalExpandTransition from './verticalExpandTransition';\nimport VerticalExpandTransitionGroup from './verticalExpandTransitionGroup';\n\nexport { HorizontalExpandTransition, SlideRightTransition, VerticalExpandTransition, VerticalExpandTransitionGroup };\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.d.ts b/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.d.ts new file mode 100755 index 0000000..e02ee9a --- /dev/null +++ b/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.d.ts @@ -0,0 +1,3 @@ +import { FunctionalComponent, BaseTransitionProps, TransitionGroupProps, RendererElement } from 'vue'; +export declare function createJavascriptTransition<Element = RendererElement>(name: string, staticProps: BaseTransitionProps<Element>): FunctionalComponent; +export declare function createJavascriptTransitionGroup(name: string, staticProps: TransitionGroupProps): FunctionalComponent; diff --git a/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.js b/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.js new file mode 100755 index 0000000..0dca032 --- /dev/null +++ b/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.js @@ -0,0 +1,24 @@ +import { h, Transition, TransitionGroup } from 'vue'; +export function createJavascriptTransition(name, staticProps) { + return (dynamicProps, { + slots + }) => { + return h(Transition, { + name, + ...staticProps, + ...dynamicProps + }, slots.default); + }; +} +export function createJavascriptTransitionGroup(name, staticProps) { + return (dynamicProps, { + slots + }) => { + return h(TransitionGroup, { + name, + ...staticProps, + ...dynamicProps + }, slots.default); + }; +} +//# sourceMappingURL=createJavascriptTransition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.js.map b/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.js.map new file mode 100755 index 0000000..7d1a9a8 --- /dev/null +++ b/node_modules/buetify/lib/transitions/shared/createJavascriptTransition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/shared/createJavascriptTransition.ts"],"names":[],"mappings":"AAAA,SAGE,CAHF,EAIE,UAJF,EAKE,eALF,QAUO,KAVP;AAYA,OAAM,SAAU,0BAAV,CACJ,IADI,EAEJ,WAFI,EAEqC;AAEzC,SAAO,CAAC,YAAD,EAAgC;AAAE,IAAA;AAAF,GAAhC,KAA2D;AAChE,WAAO,CAAC,CACN,UADM,EAEN;AACE,MAAA,IADF;AAEE,SAAG,WAFL;AAGE,SAAG;AAHL,KAFM,EAON,KAAK,CAAC,OAPA,CAAR;AASD,GAVD;AAWD;AAED,OAAM,SAAU,+BAAV,CAA0C,IAA1C,EAAwD,WAAxD,EAAyF;AAC7F,SAAO,CAAC,YAAD,EAAqC;AAAE,IAAA;AAAF,GAArC,KAAgE;AACrE,WAAO,CAAC,CACN,eADM,EAEN;AACE,MAAA,IADF;AAEE,SAAG,WAFL;AAGE,SAAG;AAHL,KAFM,EAON,KAAK,CAAC,OAPA,CAAR;AASD,GAVD;AAWD","sourcesContent":["import {\n FunctionalComponent,\n SetupContext,\n h,\n Transition,\n TransitionGroup,\n TransitionProps,\n BaseTransitionProps,\n TransitionGroupProps,\n RendererElement\n} from 'vue';\n\nexport function createJavascriptTransition<Element = RendererElement>(\n name: string,\n staticProps: BaseTransitionProps<Element>\n): FunctionalComponent {\n return (dynamicProps: TransitionProps, { slots }: SetupContext) => {\n return h(\n Transition,\n {\n name,\n ...staticProps,\n ...dynamicProps\n } as TransitionProps,\n slots.default\n );\n };\n}\n\nexport function createJavascriptTransitionGroup(name: string, staticProps: TransitionGroupProps): FunctionalComponent {\n return (dynamicProps: TransitionGroupProps, { slots }: SetupContext) => {\n return h(\n TransitionGroup,\n {\n name,\n ...staticProps,\n ...dynamicProps\n } as TransitionGroupProps,\n slots.default\n );\n };\n}\n"],"sourceRoot":"","file":"createJavascriptTransition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/shared/expandTransition.d.ts b/node_modules/buetify/lib/transitions/shared/expandTransition.d.ts new file mode 100755 index 0000000..01c6ab0 --- /dev/null +++ b/node_modules/buetify/lib/transitions/shared/expandTransition.d.ts @@ -0,0 +1,13 @@ +import { BaseTransitionProps } from 'vue'; +interface HTMLExpandElement extends HTMLElement { + _parent?: (Node & ParentNode & HTMLElement) | null; + _initialStyle: { + transition: string; + visibility: string | null; + overflow: string | null; + height?: string | null; + width?: string | null; + }; +} +export declare function createExpandTransition(expandedParentClass?: string, x?: boolean): BaseTransitionProps<HTMLExpandElement>; +export {}; diff --git a/node_modules/buetify/lib/transitions/shared/expandTransition.js b/node_modules/buetify/lib/transitions/shared/expandTransition.js new file mode 100755 index 0000000..433202e --- /dev/null +++ b/node_modules/buetify/lib/transitions/shared/expandTransition.js @@ -0,0 +1,74 @@ +import { capitalizeFirstLetter } from '../../utils/helpers'; +export function createExpandTransition(expandedParentClass = '', x = false) { + const sizeProperty = x ? 'width' : 'height'; + const offsetProperty = `offset${capitalizeFirstLetter(sizeProperty)}`; + + function resetStyles(el) { + const size = el._initialStyle[sizeProperty]; + el.style.overflow = el._initialStyle.overflow; + if (size != null) el.style[sizeProperty] = size; + delete el._initialStyle; + } + + function onAfterLeave(el) { + if (expandedParentClass && el._parent) { + el._parent.classList.remove(expandedParentClass); + } + + resetStyles(el); + } + + return { + onBeforeEnter(el) { + el._parent = el.parentNode; + el._initialStyle = { + transition: el.style.transition, + visibility: el.style.visibility, + overflow: el.style.overflow, + [sizeProperty]: el.style[sizeProperty] + }; + }, + + onEnter(el) { + const initialStyle = el._initialStyle; + const offset = `${el[offsetProperty]}px`; + el.style.setProperty('transition', 'none', 'important'); + el.style.visibility = 'hidden'; + el.style.visibility = initialStyle.visibility; + el.style.overflow = 'hidden'; + el.style[sizeProperty] = '0'; + void el.offsetHeight; // force reflow + + el.style.transition = initialStyle.transition; + + if (expandedParentClass && el._parent) { + el._parent.classList.add(expandedParentClass); + } + + requestAnimationFrame(() => { + el.style[sizeProperty] = offset; + }); + }, + + onAfterEnter: resetStyles, + onEnterCancelled: resetStyles, + + onLeave(el) { + el._initialStyle = { + transition: '', + visibility: '', + overflow: el.style.overflow, + [sizeProperty]: el.style[sizeProperty] + }; + el.style.overflow = 'hidden'; + el.style[sizeProperty] = `${el[offsetProperty]}px`; + void el.offsetHeight; // force reflow + + requestAnimationFrame(() => el.style[sizeProperty] = '0'); + }, + + onAfterLeave, + onLeaveCancelled: onAfterLeave + }; +} +//# sourceMappingURL=expandTransition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/shared/expandTransition.js.map b/node_modules/buetify/lib/transitions/shared/expandTransition.js.map new file mode 100755 index 0000000..56ae1ab --- /dev/null +++ b/node_modules/buetify/lib/transitions/shared/expandTransition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/shared/expandTransition.ts"],"names":[],"mappings":"AACA,SAAS,qBAAT,QAAsC,qBAAtC;AAYA,OAAM,SAAU,sBAAV,CAAiC,mBAAmB,GAAG,EAAvD,EAA2D,CAAC,GAAG,KAA/D,EAAoE;AACxE,QAAM,YAAY,GAAG,CAAC,GAAG,OAAH,GAAc,QAApC;AACA,QAAM,cAAc,GAAG,SAAS,qBAAqB,CAAC,YAAD,CAAc,EAAnE;;AAEA,WAAS,WAAT,CAAqB,EAArB,EAA0C;AACxC,UAAM,IAAI,GAAG,EAAE,CAAC,aAAH,CAAiB,YAAjB,CAAb;AACA,IAAA,EAAE,CAAC,KAAH,CAAS,QAAT,GAAoB,EAAE,CAAC,aAAH,CAAiB,QAArC;AACA,QAAI,IAAI,IAAI,IAAZ,EAAkB,EAAE,CAAC,KAAH,CAAS,YAAT,IAAyB,IAAzB;AAClB,WAAO,EAAE,CAAC,aAAV;AACD;;AAED,WAAS,YAAT,CAAsB,EAAtB,EAA2C;AACzC,QAAI,mBAAmB,IAAI,EAAE,CAAC,OAA9B,EAAuC;AACrC,MAAA,EAAE,CAAC,OAAH,CAAW,SAAX,CAAqB,MAArB,CAA4B,mBAA5B;AACD;;AACD,IAAA,WAAW,CAAC,EAAD,CAAX;AACD;;AAED,SAAO;AACL,IAAA,aAAa,CAAC,EAAD,EAAsB;AACjC,MAAA,EAAE,CAAC,OAAH,GAAa,EAAE,CAAC,UAAhB;AACA,MAAA,EAAE,CAAC,aAAH,GAAmB;AACjB,QAAA,UAAU,EAAE,EAAE,CAAC,KAAH,CAAS,UADJ;AAEjB,QAAA,UAAU,EAAE,EAAE,CAAC,KAAH,CAAS,UAFJ;AAGjB,QAAA,QAAQ,EAAE,EAAE,CAAC,KAAH,CAAS,QAHF;AAIjB,SAAC,YAAD,GAAgB,EAAE,CAAC,KAAH,CAAS,YAAT;AAJC,OAAnB;AAMD,KATI;;AAWL,IAAA,OAAO,CAAC,EAAD,EAAsB;AAC3B,YAAM,YAAY,GAAG,EAAE,CAAC,aAAxB;AACA,YAAM,MAAM,GAAG,GAAG,EAAE,CAAC,cAAD,CAAgB,IAApC;AAEA,MAAA,EAAE,CAAC,KAAH,CAAS,WAAT,CAAqB,YAArB,EAAmC,MAAnC,EAA2C,WAA3C;AACA,MAAA,EAAE,CAAC,KAAH,CAAS,UAAT,GAAsB,QAAtB;AACA,MAAA,EAAE,CAAC,KAAH,CAAS,UAAT,GAAsB,YAAY,CAAC,UAAnC;AACA,MAAA,EAAE,CAAC,KAAH,CAAS,QAAT,GAAoB,QAApB;AACA,MAAA,EAAE,CAAC,KAAH,CAAS,YAAT,IAAyB,GAAzB;AAEA,WAAK,EAAE,CAAC,YAAR,CAV2B,CAUL;;AAEtB,MAAA,EAAE,CAAC,KAAH,CAAS,UAAT,GAAsB,YAAY,CAAC,UAAnC;;AAEA,UAAI,mBAAmB,IAAI,EAAE,CAAC,OAA9B,EAAuC;AACrC,QAAA,EAAE,CAAC,OAAH,CAAW,SAAX,CAAqB,GAArB,CAAyB,mBAAzB;AACD;;AAED,MAAA,qBAAqB,CAAC,MAAK;AACzB,QAAA,EAAE,CAAC,KAAH,CAAS,YAAT,IAAyB,MAAzB;AACD,OAFoB,CAArB;AAGD,KAhCI;;AAkCL,IAAA,YAAY,EAAE,WAlCT;AAmCL,IAAA,gBAAgB,EAAE,WAnCb;;AAqCL,IAAA,OAAO,CAAC,EAAD,EAAsB;AAC3B,MAAA,EAAE,CAAC,aAAH,GAAmB;AACjB,QAAA,UAAU,EAAE,EADK;AAEjB,QAAA,UAAU,EAAE,EAFK;AAGjB,QAAA,QAAQ,EAAE,EAAE,CAAC,KAAH,CAAS,QAHF;AAIjB,SAAC,YAAD,GAAgB,EAAE,CAAC,KAAH,CAAS,YAAT;AAJC,OAAnB;AAOA,MAAA,EAAE,CAAC,KAAH,CAAS,QAAT,GAAoB,QAApB;AACA,MAAA,EAAE,CAAC,KAAH,CAAS,YAAT,IAAyB,GAAG,EAAE,CAAC,cAAD,CAAgB,IAA9C;AACA,WAAK,EAAE,CAAC,YAAR,CAV2B,CAUL;;AAEtB,MAAA,qBAAqB,CAAC,MAAO,EAAE,CAAC,KAAH,CAAS,YAAT,IAAyB,GAAjC,CAArB;AACD,KAlDI;;AAoDL,IAAA,YApDK;AAqDL,IAAA,gBAAgB,EAAE;AArDb,GAAP;AAuDD","sourcesContent":["import { BaseTransitionProps } from 'vue';\nimport { capitalizeFirstLetter } from '../../utils/helpers';\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null;\n _initialStyle: {\n transition: string;\n visibility: string | null;\n overflow: string | null;\n height?: string | null;\n width?: string | null;\n };\n}\nexport function createExpandTransition(expandedParentClass = '', x = false): BaseTransitionProps<HTMLExpandElement> {\n const sizeProperty = x ? 'width' : ('height' as 'width' | 'height');\n const offsetProperty = `offset${capitalizeFirstLetter(sizeProperty)}` as 'offsetHeight' | 'offsetWidth';\n\n function resetStyles(el: HTMLExpandElement) {\n const size = el._initialStyle[sizeProperty];\n el.style.overflow = el._initialStyle.overflow as string;\n if (size != null) el.style[sizeProperty] = size;\n delete el._initialStyle;\n }\n\n function onAfterLeave(el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass);\n }\n resetStyles(el);\n }\n\n return {\n onBeforeEnter(el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null;\n el._initialStyle = {\n transition: el.style.transition,\n visibility: el.style.visibility,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n },\n\n onEnter(el: HTMLExpandElement) {\n const initialStyle = el._initialStyle;\n const offset = `${el[offsetProperty]}px`;\n\n el.style.setProperty('transition', 'none', 'important');\n el.style.visibility = 'hidden';\n el.style.visibility = initialStyle.visibility as string;\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = '0';\n\n void el.offsetHeight; // force reflow\n\n el.style.transition = initialStyle.transition;\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass);\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset;\n });\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave(el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n visibility: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n void el.offsetHeight; // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'));\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave\n };\n}\n"],"sourceRoot":"","file":"expandTransition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.d.ts b/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.d.ts new file mode 100755 index 0000000..d100048 --- /dev/null +++ b/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.d.ts @@ -0,0 +1,5 @@ +import './slide-right-transition.sass'; +import { SetupContext } from 'vue'; +export default function SlideRightTransition(_: unknown, { slots }: SetupContext): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>; diff --git a/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.js b/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.js new file mode 100755 index 0000000..86fc62e --- /dev/null +++ b/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.js @@ -0,0 +1,11 @@ +import "../../../src/transitions/slideRightTransition/slide-right-transition.sass"; +import { h, Transition } from 'vue'; +export default function SlideRightTransition(_, { + slots +}) { + return h(Transition, { + name: 'slide-right', + css: true + }, slots.default); +} +//# sourceMappingURL=SlideRightTransition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.js.map b/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.js.map new file mode 100755 index 0000000..3797bd8 --- /dev/null +++ b/node_modules/buetify/lib/transitions/slideRightTransition/SlideRightTransition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/slideRightTransition/SlideRightTransition.ts"],"names":[],"mappings":"AAAA,OAAO,2EAAP;AACA,SAAuB,CAAvB,EAA0B,UAA1B,QAA4C,KAA5C;AAEA,eAAc,SAAU,oBAAV,CAA+B,CAA/B,EAA2C;AAAE,EAAA;AAAF,CAA3C,EAAkE;AAC9E,SAAO,CAAC,CAAC,UAAD,EAAa;AAAE,IAAA,IAAI,EAAE,aAAR;AAAuB,IAAA,GAAG,EAAE;AAA5B,GAAb,EAAiD,KAAK,CAAC,OAAvD,CAAR;AACD","sourcesContent":["import './slide-right-transition.sass';\nimport { SetupContext, h, Transition } from 'vue';\n\nexport default function SlideRightTransition(_: unknown, { slots }: SetupContext) {\n return h(Transition, { name: 'slide-right', css: true }, slots.default);\n}\n"],"sourceRoot":"","file":"SlideRightTransition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/slideRightTransition/index.d.ts b/node_modules/buetify/lib/transitions/slideRightTransition/index.d.ts new file mode 100755 index 0000000..b3ee760 --- /dev/null +++ b/node_modules/buetify/lib/transitions/slideRightTransition/index.d.ts @@ -0,0 +1,3 @@ +import SlideRightTransition from './SlideRightTransition'; +export { SlideRightTransition }; +export default SlideRightTransition; diff --git a/node_modules/buetify/lib/transitions/slideRightTransition/index.js b/node_modules/buetify/lib/transitions/slideRightTransition/index.js new file mode 100755 index 0000000..a268b93 --- /dev/null +++ b/node_modules/buetify/lib/transitions/slideRightTransition/index.js @@ -0,0 +1,4 @@ +import SlideRightTransition from './SlideRightTransition'; +export { SlideRightTransition }; +export default SlideRightTransition; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/slideRightTransition/index.js.map b/node_modules/buetify/lib/transitions/slideRightTransition/index.js.map new file mode 100755 index 0000000..990e1a9 --- /dev/null +++ b/node_modules/buetify/lib/transitions/slideRightTransition/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/slideRightTransition/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAP,MAAiC,wBAAjC;AAEA,SAAS,oBAAT;AAEA,eAAe,oBAAf","sourcesContent":["import SlideRightTransition from './SlideRightTransition';\n\nexport { SlideRightTransition };\n\nexport default SlideRightTransition;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.d.ts b/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.d.ts new file mode 100755 index 0000000..83371e8 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.d.ts @@ -0,0 +1,3 @@ +import '../../sass/helpers/animations.sass'; +declare const _default: import("vue").FunctionalComponent<{}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.js b/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.js new file mode 100755 index 0000000..1eebb7c --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.js @@ -0,0 +1,5 @@ +import "../../../src/sass/helpers/animations.sass"; +import { createJavascriptTransition } from '../shared/createJavascriptTransition'; +import { createExpandTransition } from '../shared/expandTransition'; +export default createJavascriptTransition('vertical-expand-transition', createExpandTransition('expand-vertical-transition')); +//# sourceMappingURL=VerticalExpandTransition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.js.map b/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.js.map new file mode 100755 index 0000000..fbb0649 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransition/VerticalExpandTransition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/verticalExpandTransition/VerticalExpandTransition.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AACA,SAAS,0BAAT,QAA2C,sCAA3C;AACA,SAAS,sBAAT,QAAuC,4BAAvC;AAEA,eAAe,0BAA0B,CACvC,4BADuC,EAEvC,sBAAsB,CAAC,4BAAD,CAFiB,CAAzC","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport { createJavascriptTransition } from '../shared/createJavascriptTransition';\nimport { createExpandTransition } from '../shared/expandTransition';\n\nexport default createJavascriptTransition(\n 'vertical-expand-transition',\n createExpandTransition('expand-vertical-transition')\n);\n"],"sourceRoot":"","file":"VerticalExpandTransition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransition/index.d.ts b/node_modules/buetify/lib/transitions/verticalExpandTransition/index.d.ts new file mode 100755 index 0000000..30e3604 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransition/index.d.ts @@ -0,0 +1,3 @@ +import VerticalExpandTransition from './VerticalExpandTransition'; +export { VerticalExpandTransition }; +export default VerticalExpandTransition; diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransition/index.js b/node_modules/buetify/lib/transitions/verticalExpandTransition/index.js new file mode 100755 index 0000000..1082497 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransition/index.js @@ -0,0 +1,4 @@ +import VerticalExpandTransition from './VerticalExpandTransition'; +export { VerticalExpandTransition }; +export default VerticalExpandTransition; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransition/index.js.map b/node_modules/buetify/lib/transitions/verticalExpandTransition/index.js.map new file mode 100755 index 0000000..1180474 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransition/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/verticalExpandTransition/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAP,MAAqC,4BAArC;AAEA,SAAS,wBAAT;AAEA,eAAe,wBAAf","sourcesContent":["import VerticalExpandTransition from './VerticalExpandTransition';\n\nexport { VerticalExpandTransition };\n\nexport default VerticalExpandTransition;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.d.ts b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.d.ts new file mode 100755 index 0000000..83371e8 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.d.ts @@ -0,0 +1,3 @@ +import '../../sass/helpers/animations.sass'; +declare const _default: import("vue").FunctionalComponent<{}, {}>; +export default _default; diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.js b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.js new file mode 100755 index 0000000..3511bb4 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.js @@ -0,0 +1,5 @@ +import "../../../src/sass/helpers/animations.sass"; +import { createJavascriptTransitionGroup } from '../shared/createJavascriptTransition'; +import { createExpandTransition } from '../shared/expandTransition'; +export default createJavascriptTransitionGroup('vertical-expand-transition', createExpandTransition('expand-vertical-transition')); +//# sourceMappingURL=VerticalExpandTransitionGroup.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.js.map b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.js.map new file mode 100755 index 0000000..b27b0ea --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.ts"],"names":[],"mappings":"AAAA,OAAO,2CAAP;AAEA,SAAS,+BAAT,QAAgD,sCAAhD;AACA,SAAS,sBAAT,QAAuC,4BAAvC;AAEA,eAAe,+BAA+B,CAC5C,4BAD4C,EAE5C,sBAAsB,CAAC,4BAAD,CAFsB,CAA9C","sourcesContent":["import '../../sass/helpers/animations.sass';\nimport { TransitionGroupProps } from 'vue';\nimport { createJavascriptTransitionGroup } from '../shared/createJavascriptTransition';\nimport { createExpandTransition } from '../shared/expandTransition';\n\nexport default createJavascriptTransitionGroup(\n 'vertical-expand-transition',\n createExpandTransition('expand-vertical-transition') as TransitionGroupProps\n);\n"],"sourceRoot":"","file":"VerticalExpandTransitionGroup.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.d.ts b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.d.ts new file mode 100755 index 0000000..14da3eb --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.d.ts @@ -0,0 +1,3 @@ +import VerticalExpandTransitionGroup from './VerticalExpandTransitionGroup'; +export { VerticalExpandTransitionGroup }; +export default VerticalExpandTransitionGroup; diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.js b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.js new file mode 100755 index 0000000..982f7c6 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.js @@ -0,0 +1,4 @@ +import VerticalExpandTransitionGroup from './VerticalExpandTransitionGroup'; +export { VerticalExpandTransitionGroup }; +export default VerticalExpandTransitionGroup; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.js.map b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.js.map new file mode 100755 index 0000000..8aa98d5 --- /dev/null +++ b/node_modules/buetify/lib/transitions/verticalExpandTransitionGroup/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/transitions/verticalExpandTransitionGroup/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAAP,MAA0C,iCAA1C;AAEA,SAAS,6BAAT;AAEA,eAAe,6BAAf","sourcesContent":["import VerticalExpandTransitionGroup from './VerticalExpandTransitionGroup';\n\nexport { VerticalExpandTransitionGroup };\n\nexport default VerticalExpandTransitionGroup;\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/ColorVariants.d.ts b/node_modules/buetify/lib/types/ColorVariants.d.ts new file mode 100755 index 0000000..62ee146 --- /dev/null +++ b/node_modules/buetify/lib/types/ColorVariants.d.ts @@ -0,0 +1,6 @@ +export declare type AllColorsVariant = ColorVariant | ShadeVariant; +export declare type ColorVariantFlags = { + [K in ColorVariant]: boolean; +}; +export declare type ColorVariant = 'is-orange' | 'is-primary' | 'is-info' | 'is-link' | 'is-success' | 'is-warning' | 'is-danger' | ''; +export declare type ShadeVariant = 'is-white' | 'is-black' | 'is-light' | 'is-dark' | 'is-black-bis' | 'is-black-ter' | 'is-grey-darker' | 'is-grey-dark' | 'is-grey' | 'is-grey-light' | 'is-grey-lighter' | 'is-white-ter' | 'is-white-bis'; diff --git a/node_modules/buetify/lib/types/ColorVariants.js b/node_modules/buetify/lib/types/ColorVariants.js new file mode 100755 index 0000000..975d958 --- /dev/null +++ b/node_modules/buetify/lib/types/ColorVariants.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=ColorVariants.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/ColorVariants.js.map b/node_modules/buetify/lib/types/ColorVariants.js.map new file mode 100755 index 0000000..33a8cac --- /dev/null +++ b/node_modules/buetify/lib/types/ColorVariants.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"ColorVariants.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/NoticePlacement.d.ts b/node_modules/buetify/lib/types/NoticePlacement.d.ts new file mode 100755 index 0000000..5fc12b9 --- /dev/null +++ b/node_modules/buetify/lib/types/NoticePlacement.d.ts @@ -0,0 +1 @@ +export declare type NoticePlacement = 'top' | 'bottom'; diff --git a/node_modules/buetify/lib/types/NoticePlacement.js b/node_modules/buetify/lib/types/NoticePlacement.js new file mode 100755 index 0000000..da09179 --- /dev/null +++ b/node_modules/buetify/lib/types/NoticePlacement.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=NoticePlacement.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/NoticePlacement.js.map b/node_modules/buetify/lib/types/NoticePlacement.js.map new file mode 100755 index 0000000..0990963 --- /dev/null +++ b/node_modules/buetify/lib/types/NoticePlacement.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"NoticePlacement.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/PositionVariant.d.ts b/node_modules/buetify/lib/types/PositionVariant.d.ts new file mode 100755 index 0000000..b4ba058 --- /dev/null +++ b/node_modules/buetify/lib/types/PositionVariant.d.ts @@ -0,0 +1 @@ +export declare type PositionVariant = 'is-top-right' | 'is-top' | 'is-top-left' | 'is-bottom-right' | 'is-bottom' | 'is-bottom-left'; diff --git a/node_modules/buetify/lib/types/PositionVariant.js b/node_modules/buetify/lib/types/PositionVariant.js new file mode 100755 index 0000000..9b7d865 --- /dev/null +++ b/node_modules/buetify/lib/types/PositionVariant.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=PositionVariant.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/PositionVariant.js.map b/node_modules/buetify/lib/types/PositionVariant.js.map new file mode 100755 index 0000000..0064404 --- /dev/null +++ b/node_modules/buetify/lib/types/PositionVariant.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"PositionVariant.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/SizeVariants.d.ts b/node_modules/buetify/lib/types/SizeVariants.d.ts new file mode 100755 index 0000000..a599c52 --- /dev/null +++ b/node_modules/buetify/lib/types/SizeVariants.d.ts @@ -0,0 +1 @@ +export declare type SizeVariant = 'is-small' | 'is-medium' | 'is-large' | ''; diff --git a/node_modules/buetify/lib/types/SizeVariants.js b/node_modules/buetify/lib/types/SizeVariants.js new file mode 100755 index 0000000..38db9b0 --- /dev/null +++ b/node_modules/buetify/lib/types/SizeVariants.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=SizeVariants.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/SizeVariants.js.map b/node_modules/buetify/lib/types/SizeVariants.js.map new file mode 100755 index 0000000..0ded7e2 --- /dev/null +++ b/node_modules/buetify/lib/types/SizeVariants.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"SizeVariants.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/Theme.d.ts b/node_modules/buetify/lib/types/Theme.d.ts new file mode 100755 index 0000000..55045fa --- /dev/null +++ b/node_modules/buetify/lib/types/Theme.d.ts @@ -0,0 +1 @@ +export declare type Theme = 'dark' | 'light'; diff --git a/node_modules/buetify/lib/types/Theme.js b/node_modules/buetify/lib/types/Theme.js new file mode 100755 index 0000000..6adc07c --- /dev/null +++ b/node_modules/buetify/lib/types/Theme.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=Theme.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/Theme.js.map b/node_modules/buetify/lib/types/Theme.js.map new file mode 100755 index 0000000..f2a914b --- /dev/null +++ b/node_modules/buetify/lib/types/Theme.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"Theme.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/ThemeColorMap.d.ts b/node_modules/buetify/lib/types/ThemeColorMap.d.ts new file mode 100755 index 0000000..3815a22 --- /dev/null +++ b/node_modules/buetify/lib/types/ThemeColorMap.d.ts @@ -0,0 +1,4 @@ +import { Theme } from './Theme'; +export declare type ThemeColorMap = { + [K in Theme]: string | string[]; +}; diff --git a/node_modules/buetify/lib/types/ThemeColorMap.js b/node_modules/buetify/lib/types/ThemeColorMap.js new file mode 100755 index 0000000..e35ecdd --- /dev/null +++ b/node_modules/buetify/lib/types/ThemeColorMap.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=ThemeColorMap.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/ThemeColorMap.js.map b/node_modules/buetify/lib/types/ThemeColorMap.js.map new file mode 100755 index 0000000..3e80137 --- /dev/null +++ b/node_modules/buetify/lib/types/ThemeColorMap.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"ThemeColorMap.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/Transition.d.ts b/node_modules/buetify/lib/types/Transition.d.ts new file mode 100755 index 0000000..7a381f1 --- /dev/null +++ b/node_modules/buetify/lib/types/Transition.d.ts @@ -0,0 +1,13 @@ +export declare type Transition = TransitionName | TransitionClasses; +export declare type TransitionName = string; +export interface TransitionClasses { + css?: boolean; + name?: TransitionName; + 'enter-from-class'?: string; + 'enter-active-class'?: string; + 'enter-to-class'?: string; + 'leave-from-class'?: string; + 'leave-active-class'?: string; + 'leave-to-class'?: string; +} +export declare type TransitionMode = 'in-out' | 'out-in'; diff --git a/node_modules/buetify/lib/types/Transition.js b/node_modules/buetify/lib/types/Transition.js new file mode 100755 index 0000000..5986bdb --- /dev/null +++ b/node_modules/buetify/lib/types/Transition.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=Transition.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/Transition.js.map b/node_modules/buetify/lib/types/Transition.js.map new file mode 100755 index 0000000..badd472 --- /dev/null +++ b/node_modules/buetify/lib/types/Transition.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"Transition.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/types/index.d.ts b/node_modules/buetify/lib/types/index.d.ts new file mode 100755 index 0000000..c957d72 --- /dev/null +++ b/node_modules/buetify/lib/types/index.d.ts @@ -0,0 +1,7 @@ +export * from './ColorVariants'; +export * from './NoticePlacement'; +export * from './PositionVariant'; +export * from './SizeVariants'; +export * from './Theme'; +export * from './ThemeColorMap'; +export * from './Transition'; diff --git a/node_modules/buetify/lib/types/index.js b/node_modules/buetify/lib/types/index.js new file mode 100755 index 0000000..5d408f1 --- /dev/null +++ b/node_modules/buetify/lib/types/index.js @@ -0,0 +1,8 @@ +export * from './ColorVariants'; +export * from './NoticePlacement'; +export * from './PositionVariant'; +export * from './SizeVariants'; +export * from './Theme'; +export * from './ThemeColorMap'; +export * from './Transition'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/types/index.js.map b/node_modules/buetify/lib/types/index.js.map new file mode 100755 index 0000000..b750c35 --- /dev/null +++ b/node_modules/buetify/lib/types/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAd;AACA,cAAc,mBAAd;AACA,cAAc,mBAAd;AACA,cAAc,gBAAd;AACA,cAAc,SAAd;AACA,cAAc,iBAAd;AACA,cAAc,cAAd","sourcesContent":["export * from './ColorVariants';\r\nexport * from './NoticePlacement';\r\nexport * from './PositionVariant';\r\nexport * from './SizeVariants';\r\nexport * from './Theme';\r\nexport * from './ThemeColorMap';\r\nexport * from './Transition';\r\n"],"sourceRoot":"","file":"index.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/eventHelpers.d.ts b/node_modules/buetify/lib/utils/eventHelpers.d.ts new file mode 100755 index 0000000..cb771ab --- /dev/null +++ b/node_modules/buetify/lib/utils/eventHelpers.d.ts @@ -0,0 +1,8 @@ +export declare function isEnterEvent(e: KeyboardEvent): boolean; +export declare function isSpaceEvent(e: KeyboardEvent): boolean; +export declare function isEscEvent(e: KeyboardEvent): boolean; +export declare function isArrowDownEvent(e: KeyboardEvent): boolean; +export declare function isArrowRightEvent(e: KeyboardEvent): boolean; +export declare function isArrowLeftEvent(e: KeyboardEvent): boolean; +export declare function isArrowUpEvent(e: KeyboardEvent): boolean; +export declare function isTabEvent(e: KeyboardEvent): boolean; diff --git a/node_modules/buetify/lib/utils/eventHelpers.js b/node_modules/buetify/lib/utils/eventHelpers.js new file mode 100755 index 0000000..2de6d96 --- /dev/null +++ b/node_modules/buetify/lib/utils/eventHelpers.js @@ -0,0 +1,25 @@ +export function isEnterEvent(e) { + return e.key === 'Enter' || e.keyCode === 13; +} +export function isSpaceEvent(e) { + return e.code === 'Space' || e.which === 32 || e.key === ' '; +} +export function isEscEvent(e) { + return e.key === 'Escape' || e.code === 'Escape' || e.which === 27; +} +export function isArrowDownEvent(e) { + return e.key === 'ArrowDown' || e.code === 'ArrowDown' || e.which === 40; +} +export function isArrowRightEvent(e) { + return e.key === 'ArrowRight' || e.code === 'ArrowRight' || e.which === 39; +} +export function isArrowLeftEvent(e) { + return e.key === 'ArrowLeft' || e.code === 'ArrowLeft' || e.which === 37; +} +export function isArrowUpEvent(e) { + return e.key === 'ArrowUp' || e.code === 'ArrowUp' || e.which === 38; +} +export function isTabEvent(e) { + return e.key === 'Tab' || e.code === 'Tab' || e.which === 9; +} +//# sourceMappingURL=eventHelpers.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/eventHelpers.js.map b/node_modules/buetify/lib/utils/eventHelpers.js.map new file mode 100755 index 0000000..52a7ec7 --- /dev/null +++ b/node_modules/buetify/lib/utils/eventHelpers.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/utils/eventHelpers.ts"],"names":[],"mappings":"AAAA,OAAM,SAAU,YAAV,CAAuB,CAAvB,EAAuC;AAC3C,SAAO,CAAC,CAAC,GAAF,KAAU,OAAV,IAAqB,CAAC,CAAC,OAAF,KAAc,EAA1C;AACD;AAED,OAAM,SAAU,YAAV,CAAuB,CAAvB,EAAuC;AAC3C,SAAO,CAAC,CAAC,IAAF,KAAW,OAAX,IAAsB,CAAC,CAAC,KAAF,KAAY,EAAlC,IAAwC,CAAC,CAAC,GAAF,KAAU,GAAzD;AACD;AAED,OAAM,SAAU,UAAV,CAAqB,CAArB,EAAqC;AACzC,SAAO,CAAC,CAAC,GAAF,KAAU,QAAV,IAAsB,CAAC,CAAC,IAAF,KAAW,QAAjC,IAA6C,CAAC,CAAC,KAAF,KAAY,EAAhE;AACD;AAED,OAAM,SAAU,gBAAV,CAA2B,CAA3B,EAA2C;AAC/C,SAAO,CAAC,CAAC,GAAF,KAAU,WAAV,IAAyB,CAAC,CAAC,IAAF,KAAW,WAApC,IAAmD,CAAC,CAAC,KAAF,KAAY,EAAtE;AACD;AAED,OAAM,SAAU,iBAAV,CAA4B,CAA5B,EAA4C;AAChD,SAAO,CAAC,CAAC,GAAF,KAAU,YAAV,IAA0B,CAAC,CAAC,IAAF,KAAW,YAArC,IAAqD,CAAC,CAAC,KAAF,KAAY,EAAxE;AACD;AAED,OAAM,SAAU,gBAAV,CAA2B,CAA3B,EAA2C;AAC/C,SAAO,CAAC,CAAC,GAAF,KAAU,WAAV,IAAyB,CAAC,CAAC,IAAF,KAAW,WAApC,IAAmD,CAAC,CAAC,KAAF,KAAY,EAAtE;AACD;AAED,OAAM,SAAU,cAAV,CAAyB,CAAzB,EAAyC;AAC7C,SAAO,CAAC,CAAC,GAAF,KAAU,SAAV,IAAuB,CAAC,CAAC,IAAF,KAAW,SAAlC,IAA+C,CAAC,CAAC,KAAF,KAAY,EAAlE;AACD;AAED,OAAM,SAAU,UAAV,CAAqB,CAArB,EAAqC;AACzC,SAAO,CAAC,CAAC,GAAF,KAAU,KAAV,IAAmB,CAAC,CAAC,IAAF,KAAW,KAA9B,IAAuC,CAAC,CAAC,KAAF,KAAY,CAA1D;AACD","sourcesContent":["export function isEnterEvent(e: KeyboardEvent): boolean {\n return e.key === 'Enter' || e.keyCode === 13;\n}\n\nexport function isSpaceEvent(e: KeyboardEvent): boolean {\n return e.code === 'Space' || e.which === 32 || e.key === ' ';\n}\n\nexport function isEscEvent(e: KeyboardEvent): boolean {\n return e.key === 'Escape' || e.code === 'Escape' || e.which === 27;\n}\n\nexport function isArrowDownEvent(e: KeyboardEvent): boolean {\n return e.key === 'ArrowDown' || e.code === 'ArrowDown' || e.which === 40;\n}\n\nexport function isArrowRightEvent(e: KeyboardEvent): boolean {\n return e.key === 'ArrowRight' || e.code === 'ArrowRight' || e.which === 39;\n}\n\nexport function isArrowLeftEvent(e: KeyboardEvent): boolean {\n return e.key === 'ArrowLeft' || e.code === 'ArrowLeft' || e.which === 37;\n}\n\nexport function isArrowUpEvent(e: KeyboardEvent): boolean {\n return e.key === 'ArrowUp' || e.code === 'ArrowUp' || e.which === 38;\n}\n\nexport function isTabEvent(e: KeyboardEvent): boolean {\n return e.key === 'Tab' || e.code === 'Tab' || e.which === 9;\n}\n"],"sourceRoot":"","file":"eventHelpers.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.d.ts b/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.d.ts new file mode 100755 index 0000000..cb658fc --- /dev/null +++ b/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.d.ts @@ -0,0 +1,4 @@ +import { FunctionalComponent } from 'vue'; +export declare function getSimpleFunctionalComponent(cls: string, el?: string): FunctionalComponent<{ + tag?: string; +}>; diff --git a/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.js b/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.js new file mode 100755 index 0000000..a891130 --- /dev/null +++ b/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.js @@ -0,0 +1,11 @@ +import { h } from 'vue'; +export function getSimpleFunctionalComponent(cls, el = 'div') { + return function (props, { + slots + }) { + return h(props.tag ?? el, { + class: cls + }, slots.default ? slots.default() : undefined); + }; +} +//# sourceMappingURL=getSimpleFunctionalComponent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.js.map b/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.js.map new file mode 100755 index 0000000..c868dde --- /dev/null +++ b/node_modules/buetify/lib/utils/getSimpleFunctionalComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/utils/getSimpleFunctionalComponent.ts"],"names":[],"mappings":"AAAA,SAAS,CAAT,QAAqD,KAArD;AAEA,OAAM,SAAU,4BAAV,CAAuC,GAAvC,EAAoD,EAAE,GAAG,KAAzD,EAA8D;AAClE,SAAO,UAAS,KAAT,EAAkC;AAAE,IAAA;AAAF,GAAlC,EAAyD;AAC9D,WAAO,CAAC,CAAC,KAAK,CAAC,GAAN,IAAa,EAAd,EAAkB;AAAE,MAAA,KAAK,EAAE;AAAT,KAAlB,EAAkC,KAAK,CAAC,OAAN,GAAgB,KAAK,CAAC,OAAN,EAAhB,GAAkC,SAApE,CAAR;AACD,GAFD;AAGD","sourcesContent":["import { h, SetupContext, FunctionalComponent } from 'vue';\n\nexport function getSimpleFunctionalComponent(cls: string, el = 'div'): FunctionalComponent<{ tag?: string }> {\n return function(props: { tag?: string }, { slots }: SetupContext) {\n return h(props.tag ?? el, { class: cls }, slots.default ? slots.default() : undefined);\n };\n}\n"],"sourceRoot":"","file":"getSimpleFunctionalComponent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.d.ts b/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.d.ts new file mode 100755 index 0000000..d70b2d4 --- /dev/null +++ b/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.d.ts @@ -0,0 +1,37 @@ +import { ThemeInjection, ThemeProps } from '../composables/theme'; +import { ThemeColorMap } from '../types/ThemeColorMap'; +export interface ThemeableComponentOptions { + cls: string; + el?: string; + themeMap?: ThemeColorMap; +} +export interface ThemeableComponentProps extends Partial<ThemeProps> { + tag?: string; +} +export declare function isThemeable(props: Partial<ThemeProps>, injection: ThemeInjection): boolean; +export declare function getThemeableFunctionalComponent({ cls, el, themeMap }: ThemeableComponentOptions): import("vue").DefineComponent<{ + tag: { + type: (FunctionConstructor | StringConstructor)[]; + default: string; + }; + themeMap: { + type: import("vue").PropType<ThemeColorMap>; + required: boolean; + default: import("fp-ts/lib/function").Lazy<ThemeColorMap>; + }; + isThemeable: { + type: import("vue").PropType<boolean>; + required: boolean; + default: boolean; + }; +}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { + [key: string]: any; +}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ + isThemeable: boolean; + themeMap: ThemeColorMap; + tag: string | Function; +} & {}>, { + isThemeable: boolean; + themeMap: ThemeColorMap; + tag: string | Function; +}>; diff --git a/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.js b/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.js new file mode 100755 index 0000000..b872dbd --- /dev/null +++ b/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.js @@ -0,0 +1,32 @@ +import { isSome } from 'fp-ts/lib/Option'; +import { inject, h, defineComponent } from 'vue'; +import { DEFAULT_THEME_COLOR_MAP, DEFAULT_THEME_INJECTION, getThemeClasses, useThemePropsDefinition, THEME_INJECTION_SYMBOL } from '../composables/theme'; +import { mergeClasses } from './mergeClasses'; +export function isThemeable(props, injection) { + return !!props.isThemeable && !!props.themeMap && isSome(injection.currentTheme.value); +} +export function getThemeableFunctionalComponent({ + cls, + el = 'div', + themeMap = DEFAULT_THEME_COLOR_MAP +}) { + return defineComponent({ + props: { ...useThemePropsDefinition(themeMap, true), + tag: { + type: [String, Function], + default: el + } + }, + + setup(props, { + slots + }) { + const themeInjection = inject(THEME_INJECTION_SYMBOL, DEFAULT_THEME_INJECTION); + return () => h(props.tag, { + class: isThemeable(props, themeInjection) ? mergeClasses(getThemeClasses(props.themeMap, themeInjection), cls) : cls + }, slots.default && slots.default()); + } + + }); +} +//# sourceMappingURL=getThemeableFunctionalComponent.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.js.map b/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.js.map new file mode 100755 index 0000000..45e2a81 --- /dev/null +++ b/node_modules/buetify/lib/utils/getThemeableFunctionalComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/utils/getThemeableFunctionalComponent.ts"],"names":[],"mappings":"AAAA,SAAS,MAAT,QAAuB,kBAAvB;AACA,SAAS,MAAT,EAAiB,CAAjB,EAAoB,eAApB,QAA2C,KAA3C;AACA,SACE,uBADF,EAEE,uBAFF,EAGE,eAHF,EAIE,uBAJF,EAKE,sBALF,QAQO,sBARP;AAUA,SAAS,YAAT,QAA6B,gBAA7B;AAYA,OAAM,SAAU,WAAV,CAAsB,KAAtB,EAAkD,SAAlD,EAA2E;AAC/E,SAAO,CAAC,CAAC,KAAK,CAAC,WAAR,IAAuB,CAAC,CAAC,KAAK,CAAC,QAA/B,IAA2C,MAAM,CAAC,SAAS,CAAC,YAAV,CAAuB,KAAxB,CAAxD;AACD;AAED,OAAM,SAAU,+BAAV,CAA0C;AAC9C,EAAA,GAD8C;AAE9C,EAAA,EAAE,GAAG,KAFyC;AAG9C,EAAA,QAAQ,GAAG;AAHmC,CAA1C,EAIsB;AAC1B,SAAO,eAAe,CAAC;AACrB,IAAA,KAAK,EAAE,EACL,GAAG,uBAAuB,CAAC,QAAD,EAAW,IAAX,CADrB;AAEL,MAAA,GAAG,EAAE;AACH,QAAA,IAAI,EAAE,CAAC,MAAD,EAAS,QAAT,CADH;AAEH,QAAA,OAAO,EAAE;AAFN;AAFA,KADc;;AAQrB,IAAA,KAAK,CAAC,KAAD,EAAQ;AAAE,MAAA;AAAF,KAAR,EAAiB;AACpB,YAAM,cAAc,GAAG,MAAM,CAAC,sBAAD,EAAyB,uBAAzB,CAA7B;AACA,aAAO,MACL,CAAC,CACC,KAAK,CAAC,GADP,EAEC;AACE,QAAA,KAAK,EAAE,WAAW,CAAC,KAAD,EAAQ,cAAR,CAAX,GACH,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,QAAP,EAAiB,cAAjB,CAAhB,EAAkD,GAAlD,CADT,GAEH;AAHN,OAFD,EAOC,KAAK,CAAC,OAAN,IAAiB,KAAK,CAAC,OAAN,EAPlB,CADH;AAUD;;AApBoB,GAAD,CAAtB;AAsBD","sourcesContent":["import { isSome } from 'fp-ts/lib/Option';\nimport { inject, h, defineComponent } from 'vue';\nimport {\n DEFAULT_THEME_COLOR_MAP,\n DEFAULT_THEME_INJECTION,\n getThemeClasses,\n useThemePropsDefinition,\n THEME_INJECTION_SYMBOL,\n ThemeInjection,\n ThemeProps\n} from '../composables/theme';\nimport { ThemeColorMap } from '../types/ThemeColorMap';\nimport { mergeClasses } from './mergeClasses';\n\nexport interface ThemeableComponentOptions {\n cls: string;\n el?: string;\n themeMap?: ThemeColorMap;\n}\n\nexport interface ThemeableComponentProps extends Partial<ThemeProps> {\n tag?: string;\n}\n\nexport function isThemeable(props: Partial<ThemeProps>, injection: ThemeInjection): boolean {\n return !!props.isThemeable && !!props.themeMap && isSome(injection.currentTheme.value);\n}\n\nexport function getThemeableFunctionalComponent({\n cls,\n el = 'div',\n themeMap = DEFAULT_THEME_COLOR_MAP\n}: ThemeableComponentOptions) {\n return defineComponent({\n props: {\n ...useThemePropsDefinition(themeMap, true),\n tag: {\n type: [String, Function],\n default: el\n }\n },\n setup(props, { slots }) {\n const themeInjection = inject(THEME_INJECTION_SYMBOL, DEFAULT_THEME_INJECTION);\n return () =>\n h(\n props.tag as string,\n {\n class: isThemeable(props, themeInjection)\n ? mergeClasses(getThemeClasses(props.themeMap, themeInjection), cls)\n : cls\n },\n slots.default && slots.default()\n );\n }\n });\n}\n"],"sourceRoot":"","file":"getThemeableFunctionalComponent.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/helpers.d.ts b/node_modules/buetify/lib/utils/helpers.d.ts new file mode 100755 index 0000000..5046c20 --- /dev/null +++ b/node_modules/buetify/lib/utils/helpers.d.ts @@ -0,0 +1,40 @@ +import { VNode } from 'vue'; +import { Eq } from 'fp-ts/lib/Eq'; +/** + * Mobile detection + * https://www.abeautifulsite.net/detecting-mobile-devices-with-javascript + */ +export declare const isMobile: { + Android: () => false | RegExpMatchArray | null; + BlackBerry: () => false | RegExpMatchArray | null; + iOS: () => false | RegExpMatchArray | null; + Opera: () => false | RegExpMatchArray | null; + Windows: () => false | RegExpMatchArray | null; + any: () => false | RegExpMatchArray | null; +}; +export declare function capitalizeFirstLetter(str: string): string; +export declare function keys<O>(o: O): Array<keyof O>; +export declare function deepEqual(a: any, b: any): boolean; +export declare function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any; +export declare function getObjectValueByPath(obj: any, path: string, fallback?: any): any; +export declare function isBoolean(val: any): val is boolean; +export declare function isObject(obj: any): obj is object; +export declare function isFunction(obj: any): obj is Function; +export declare function isPrimitive(val: any): val is number | string | boolean; +export declare function isNil(arg: any): boolean; +export declare const exists: import("fp-ts/lib/function").Predicate<any>; +export declare function isString(arg: any): arg is string; +export declare function isNumber(arg: any): arg is number; +export declare function isHTMLElement(obj: any): obj is HTMLElement; +export declare const constEmptyArray: import("fp-ts/lib/function").Lazy<never[]>; +export declare const constNone: import("fp-ts/lib/function").Lazy<import("fp-ts/lib/Option").Option<never>>; +export declare const constZero: import("fp-ts/lib/function").Lazy<number>; +export declare const constEmptyString: import("fp-ts/lib/function").Lazy<string>; +export declare function removeListItem<A>(E: Eq<A>): (a: A, as: A[]) => A[]; +export declare function toggleListItem<A>(E: Eq<A>): (a: A, as: A[]) => A[]; +export declare function isFragment(node: VNode): boolean; +export declare function isEmptyString(str: string): boolean; +export declare type Result<T, P> = P extends keyof T ? T[P] : P extends (item: T) => any ? ReturnType<P> : never; +export declare type Extractor<T> = keyof T | ((item: T) => any); +export declare function extractProp<T, P extends (item: T) => any | keyof T>(extractor: Extractor<T>, item: T): Result<T, P>; +export declare function camelize(str: string): string; diff --git a/node_modules/buetify/lib/utils/helpers.js b/node_modules/buetify/lib/utils/helpers.js new file mode 100755 index 0000000..1781ed1 --- /dev/null +++ b/node_modules/buetify/lib/utils/helpers.js @@ -0,0 +1,162 @@ +import { Fragment } from 'vue'; +import { snoc, unsafeDeleteAt } from 'fp-ts/lib/Array'; +import { constant, not } from 'fp-ts/lib/function'; +import { none } from 'fp-ts/lib/Option'; +/** + * Mobile detection + * https://www.abeautifulsite.net/detecting-mobile-devices-with-javascript + */ + +export const isMobile = { + Android: function () { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/Android/i); + }, + BlackBerry: function () { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/BlackBerry/i); + }, + iOS: function () { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/iPhone|iPad|iPod/i); + }, + Opera: function () { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/Opera Mini/i); + }, + Windows: function () { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/IEMobile/i); + }, + any: function () { + return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows(); + } +}; +export function capitalizeFirstLetter(str) { + return str.charAt(0).toUpperCase() + str.slice(1); +} +export function keys(o) { + return Object.keys(o); +} // eslint-disable-next-line + +export function deepEqual(a, b) { + if (a === b) return true; + + if (a instanceof Date && b instanceof Date) { + // If the values are Date, they were convert to timestamp with getTime and compare it + if (a.getTime() !== b.getTime()) return false; + } + + if (a !== Object(a) || b !== Object(b)) { + // If the values aren't objects, they were already checked for equality + return false; + } + + const props = Object.keys(a); + + if (props.length !== Object.keys(b).length) { + // Different number of props, don't bother to check + return false; + } + + return props.every(p => deepEqual(a[p], b[p])); +} // eslint-disable-next-line + +export function getNestedValue(obj, path, fallback) { + const last = path.length - 1; + if (last < 0) return obj === undefined ? fallback : obj; + + for (let i = 0; i < last; i++) { + if (obj == null) { + return fallback; + } + + obj = obj[path[i]]; + } + + if (obj == null) return fallback; + return obj[path[last]] === undefined ? fallback : obj[path[last]]; +} // eslint-disable-next-line + +export function getObjectValueByPath(obj, path, fallback) { + // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621 + if (obj == null || !path || typeof path !== 'string') return fallback; + if (obj[path] !== undefined) return obj[path]; + path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties + + path = path.replace(/^\./, ''); // strip a leading dot + + return getNestedValue(obj, path.split('.'), fallback); +} // eslint-disable-next-line + +export function isBoolean(val) { + return typeof val === 'boolean'; +} // eslint-disable-next-line + +export function isObject(obj) { + return obj !== null && typeof obj === 'object'; +} // eslint-disable-next-line + +export function isFunction(obj) { + return typeof obj === 'function'; +} // eslint-disable-next-line + +export function isPrimitive(val) { + return typeof val === 'number' || typeof val === 'string' || typeof val === 'boolean'; +} // eslint-disable-next-line + +export function isNil(arg) { + return arg === null || arg === undefined; +} +export const exists = not(isNil); // eslint-disable-next-line + +export function isString(arg) { + return typeof arg === 'string'; +} // eslint-disable-next-line + +export function isNumber(arg) { + return typeof arg === 'number'; +} // eslint-disable-next-line + +export function isHTMLElement(obj) { + return typeof HTMLElement === 'object' ? obj instanceof HTMLElement //DOM2 + : obj && typeof isObject(obj) && obj.nodeType === 1 && typeof obj.nodeName === 'string'; +} +export const constEmptyArray = constant([]); +export const constNone = constant(none); +export const constZero = constant(0); +export const constEmptyString = constant(''); +export function removeListItem(E) { + return (a, as) => { + const index = as.findIndex(i => E.equals(a, i)); + return index > -1 ? unsafeDeleteAt(index, as) : as; + }; +} +export function toggleListItem(E) { + return (a, as) => { + const index = as.findIndex(i => E.equals(a, i)); + return index > -1 ? unsafeDeleteAt(index, as) : snoc(as, a); + }; +} +export function isFragment(node) { + return node.type === Fragment; +} +export function isEmptyString(str) { + return str === ''; +} + +function prop(key, obj) { + return obj[key]; +} // eslint-disable-next-line + + +export function extractProp(extractor, item) { + if (isFunction(extractor)) { + return extractor(item); + } else if (isObject(item) && isString(extractor) && Object.hasOwnProperty.call(item, extractor)) { + // eslint-disable-next-line + return prop(extractor, item); + } else { + return item; + } +} +const camelizeRE = /-(\w)/g; +export function camelize(str) { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ''); +} +//# sourceMappingURL=helpers.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/helpers.js.map b/node_modules/buetify/lib/utils/helpers.js.map new file mode 100755 index 0000000..ab86e44 --- /dev/null +++ b/node_modules/buetify/lib/utils/helpers.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,SAAgB,QAAhB,QAAgC,KAAhC;AACA,SAAS,IAAT,EAAe,cAAf,QAAqC,iBAArC;AAEA,SAAS,QAAT,EAAmB,GAAnB,QAA8B,oBAA9B;AACA,SAAS,IAAT,QAAqB,kBAArB;AAEA;;;AAGG;;AAEH,OAAO,MAAM,QAAQ,GAAG;AACtB,EAAA,OAAO,EAAE,YAAA;AACP,WAAO,OAAO,MAAP,KAAkB,WAAlB,IAAiC,MAAM,CAAC,SAAP,CAAiB,SAAjB,CAA2B,KAA3B,CAAiC,UAAjC,CAAxC;AACD,GAHqB;AAItB,EAAA,UAAU,EAAE,YAAA;AACV,WAAO,OAAO,MAAP,KAAkB,WAAlB,IAAiC,MAAM,CAAC,SAAP,CAAiB,SAAjB,CAA2B,KAA3B,CAAiC,aAAjC,CAAxC;AACD,GANqB;AAOtB,EAAA,GAAG,EAAE,YAAA;AACH,WAAO,OAAO,MAAP,KAAkB,WAAlB,IAAiC,MAAM,CAAC,SAAP,CAAiB,SAAjB,CAA2B,KAA3B,CAAiC,mBAAjC,CAAxC;AACD,GATqB;AAUtB,EAAA,KAAK,EAAE,YAAA;AACL,WAAO,OAAO,MAAP,KAAkB,WAAlB,IAAiC,MAAM,CAAC,SAAP,CAAiB,SAAjB,CAA2B,KAA3B,CAAiC,aAAjC,CAAxC;AACD,GAZqB;AAatB,EAAA,OAAO,EAAE,YAAA;AACP,WAAO,OAAO,MAAP,KAAkB,WAAlB,IAAiC,MAAM,CAAC,SAAP,CAAiB,SAAjB,CAA2B,KAA3B,CAAiC,WAAjC,CAAxC;AACD,GAfqB;AAgBtB,EAAA,GAAG,EAAE,YAAA;AACH,WAAO,QAAQ,CAAC,OAAT,MAAsB,QAAQ,CAAC,UAAT,EAAtB,IAA+C,QAAQ,CAAC,GAAT,EAA/C,IAAiE,QAAQ,CAAC,KAAT,EAAjE,IAAqF,QAAQ,CAAC,OAAT,EAA5F;AACD;AAlBqB,CAAjB;AAqBP,OAAM,SAAU,qBAAV,CAAgC,GAAhC,EAA2C;AAC/C,SAAO,GAAG,CAAC,MAAJ,CAAW,CAAX,EAAc,WAAd,KAA8B,GAAG,CAAC,KAAJ,CAAU,CAAV,CAArC;AACD;AAED,OAAM,SAAU,IAAV,CAAkB,CAAlB,EAAsB;AAC1B,SAAO,MAAM,CAAC,IAAP,CAAY,CAAZ,CAAP;AACD,C,CAED;;AACA,OAAM,SAAU,SAAV,CAAoB,CAApB,EAA4B,CAA5B,EAAkC;AACtC,MAAI,CAAC,KAAK,CAAV,EAAa,OAAO,IAAP;;AAEb,MAAI,CAAC,YAAY,IAAb,IAAqB,CAAC,YAAY,IAAtC,EAA4C;AAC1C;AACA,QAAI,CAAC,CAAC,OAAF,OAAgB,CAAC,CAAC,OAAF,EAApB,EAAiC,OAAO,KAAP;AAClC;;AAED,MAAI,CAAC,KAAK,MAAM,CAAC,CAAD,CAAZ,IAAmB,CAAC,KAAK,MAAM,CAAC,CAAD,CAAnC,EAAwC;AACtC;AACA,WAAO,KAAP;AACD;;AAED,QAAM,KAAK,GAAG,MAAM,CAAC,IAAP,CAAY,CAAZ,CAAd;;AAEA,MAAI,KAAK,CAAC,MAAN,KAAiB,MAAM,CAAC,IAAP,CAAY,CAAZ,EAAe,MAApC,EAA4C;AAC1C;AACA,WAAO,KAAP;AACD;;AAED,SAAO,KAAK,CAAC,KAAN,CAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAD,CAAF,EAAO,CAAC,CAAC,CAAD,CAAR,CAA1B,CAAP;AACD,C,CAED;;AACA,OAAM,SAAU,cAAV,CAAyB,GAAzB,EAAmC,IAAnC,EAA8D,QAA9D,EAA4E;AAChF,QAAM,IAAI,GAAG,IAAI,CAAC,MAAL,GAAc,CAA3B;AAEA,MAAI,IAAI,GAAG,CAAX,EAAc,OAAO,GAAG,KAAK,SAAR,GAAoB,QAApB,GAA+B,GAAtC;;AAEd,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,IAApB,EAA0B,CAAC,EAA3B,EAA+B;AAC7B,QAAI,GAAG,IAAI,IAAX,EAAiB;AACf,aAAO,QAAP;AACD;;AACD,IAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAD,CAAL,CAAT;AACD;;AAED,MAAI,GAAG,IAAI,IAAX,EAAiB,OAAO,QAAP;AAEjB,SAAO,GAAG,CAAC,IAAI,CAAC,IAAD,CAAL,CAAH,KAAoB,SAApB,GAAgC,QAAhC,GAA2C,GAAG,CAAC,IAAI,CAAC,IAAD,CAAL,CAArD;AACD,C,CAED;;AACA,OAAM,SAAU,oBAAV,CAA+B,GAA/B,EAAyC,IAAzC,EAAuD,QAAvD,EAAqE;AACzE;AACA,MAAI,GAAG,IAAI,IAAP,IAAe,CAAC,IAAhB,IAAwB,OAAO,IAAP,KAAgB,QAA5C,EAAsD,OAAO,QAAP;AACtD,MAAI,GAAG,CAAC,IAAD,CAAH,KAAc,SAAlB,EAA6B,OAAO,GAAG,CAAC,IAAD,CAAV;AAC7B,EAAA,IAAI,GAAG,IAAI,CAAC,OAAL,CAAa,YAAb,EAA2B,KAA3B,CAAP,CAJyE,CAI/B;;AAC1C,EAAA,IAAI,GAAG,IAAI,CAAC,OAAL,CAAa,KAAb,EAAoB,EAApB,CAAP,CALyE,CAKzC;;AAChC,SAAO,cAAc,CAAC,GAAD,EAAM,IAAI,CAAC,KAAL,CAAW,GAAX,CAAN,EAAuB,QAAvB,CAArB;AACD,C,CAED;;AACA,OAAM,SAAU,SAAV,CAAoB,GAApB,EAA4B;AAChC,SAAO,OAAO,GAAP,KAAe,SAAtB;AACD,C,CAED;;AACA,OAAM,SAAU,QAAV,CAAmB,GAAnB,EAA2B;AAC/B,SAAO,GAAG,KAAK,IAAR,IAAgB,OAAO,GAAP,KAAe,QAAtC;AACD,C,CAED;;AACA,OAAM,SAAU,UAAV,CAAqB,GAArB,EAA6B;AACjC,SAAO,OAAO,GAAP,KAAe,UAAtB;AACD,C,CAED;;AACA,OAAM,SAAU,WAAV,CAAsB,GAAtB,EAA8B;AAClC,SAAO,OAAO,GAAP,KAAe,QAAf,IAA2B,OAAO,GAAP,KAAe,QAA1C,IAAsD,OAAO,GAAP,KAAe,SAA5E;AACD,C,CAED;;AACA,OAAM,SAAU,KAAV,CAAgB,GAAhB,EAAwB;AAC5B,SAAO,GAAG,KAAK,IAAR,IAAgB,GAAG,KAAK,SAA/B;AACD;AAED,OAAO,MAAM,MAAM,GAAG,GAAG,CAAC,KAAD,CAAlB,C,CAEP;;AACA,OAAM,SAAU,QAAV,CAAmB,GAAnB,EAA2B;AAC/B,SAAO,OAAO,GAAP,KAAe,QAAtB;AACD,C,CAED;;AACA,OAAM,SAAU,QAAV,CAAmB,GAAnB,EAA2B;AAC/B,SAAO,OAAO,GAAP,KAAe,QAAtB;AACD,C,CAED;;AACA,OAAM,SAAU,aAAV,CAAwB,GAAxB,EAAgC;AACpC,SAAO,OAAO,WAAP,KAAuB,QAAvB,GACH,GAAG,YAAY,WADZ,CACwB;AADxB,IAEH,GAAG,IAAI,OAAO,QAAQ,CAAC,GAAD,CAAtB,IAA+B,GAAG,CAAC,QAAJ,KAAiB,CAAhD,IAAqD,OAAO,GAAG,CAAC,QAAX,KAAwB,QAFjF;AAGD;AAED,OAAO,MAAM,eAAe,GAAG,QAAQ,CAAC,EAAD,CAAhC;AAEP,OAAO,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAD,CAA1B;AAEP,OAAO,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAD,CAA1B;AAEP,OAAO,MAAM,gBAAgB,GAAG,QAAQ,CAAC,EAAD,CAAjC;AAEP,OAAM,SAAU,cAAV,CAA4B,CAA5B,EAAoC;AACxC,SAAO,CAAC,CAAD,EAAO,EAAP,KAAkB;AACvB,UAAM,KAAK,GAAG,EAAE,CAAC,SAAH,CAAa,CAAC,IAAI,CAAC,CAAC,MAAF,CAAS,CAAT,EAAY,CAAZ,CAAlB,CAAd;AACA,WAAO,KAAK,GAAG,CAAC,CAAT,GAAa,cAAc,CAAC,KAAD,EAAQ,EAAR,CAA3B,GAAyC,EAAhD;AACD,GAHD;AAID;AAED,OAAM,SAAU,cAAV,CAA4B,CAA5B,EAAoC;AACxC,SAAO,CAAC,CAAD,EAAO,EAAP,KAAkB;AACvB,UAAM,KAAK,GAAG,EAAE,CAAC,SAAH,CAAa,CAAC,IAAI,CAAC,CAAC,MAAF,CAAS,CAAT,EAAY,CAAZ,CAAlB,CAAd;AACA,WAAO,KAAK,GAAG,CAAC,CAAT,GAAa,cAAc,CAAC,KAAD,EAAQ,EAAR,CAA3B,GAAyC,IAAI,CAAC,EAAD,EAAK,CAAL,CAApD;AACD,GAHD;AAID;AAED,OAAM,SAAU,UAAV,CAAqB,IAArB,EAAgC;AACpC,SAAO,IAAI,CAAC,IAAL,KAAc,QAArB;AACD;AAED,OAAM,SAAU,aAAV,CAAwB,GAAxB,EAAmC;AACvC,SAAO,GAAG,KAAK,EAAf;AACD;;AAOD,SAAS,IAAT,CAAmD,GAAnD,EAA2D,GAA3D,EAAiE;AAC/D,SAAO,GAAG,CAAC,GAAD,CAAV;AACD,C,CAED;;;AACA,OAAM,SAAU,WAAV,CAA+D,SAA/D,EAAwF,IAAxF,EAA+F;AACnG,MAAI,UAAU,CAAC,SAAD,CAAd,EAA2B;AACzB,WAAO,SAAS,CAAC,IAAD,CAAhB;AACD,GAFD,MAEO,IAAI,QAAQ,CAAC,IAAD,CAAR,IAAkB,QAAQ,CAAC,SAAD,CAA1B,IAAyC,MAAM,CAAC,cAAP,CAAsB,IAAtB,CAA2B,IAA3B,EAAiC,SAAjC,CAA7C,EAA0F;AAC/F;AACA,WAAO,IAAI,CAAC,SAAD,EAAmB,IAAnB,CAAX;AACD,GAHM,MAGA;AACL,WAAO,IAAP;AACD;AACF;AAED,MAAM,UAAU,GAAG,QAAnB;AACA,OAAM,SAAU,QAAV,CAAmB,GAAnB,EAA8B;AAClC,SAAO,GAAG,CAAC,OAAJ,CAAY,UAAZ,EAAwB,CAAC,CAAD,EAAI,CAAJ,KAAW,CAAC,GAAG,CAAC,CAAC,WAAF,EAAH,GAAqB,EAAzD,CAAP;AACD","sourcesContent":["import { VNode, Fragment } from 'vue';\nimport { snoc, unsafeDeleteAt } from 'fp-ts/lib/Array';\nimport { Eq } from 'fp-ts/lib/Eq';\nimport { constant, not } from 'fp-ts/lib/function';\nimport { none } from 'fp-ts/lib/Option';\n\n/**\n * Mobile detection\n * https://www.abeautifulsite.net/detecting-mobile-devices-with-javascript\n */\n\nexport const isMobile = {\n Android: function() {\n return typeof window !== 'undefined' && window.navigator.userAgent.match(/Android/i);\n },\n BlackBerry: function() {\n return typeof window !== 'undefined' && window.navigator.userAgent.match(/BlackBerry/i);\n },\n iOS: function() {\n return typeof window !== 'undefined' && window.navigator.userAgent.match(/iPhone|iPad|iPod/i);\n },\n Opera: function() {\n return typeof window !== 'undefined' && window.navigator.userAgent.match(/Opera Mini/i);\n },\n Windows: function() {\n return typeof window !== 'undefined' && window.navigator.userAgent.match(/IEMobile/i);\n },\n any: function() {\n return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows();\n }\n};\n\nexport function capitalizeFirstLetter(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function keys<O>(o: O): Array<keyof O> {\n return Object.keys(o) as (keyof O)[];\n}\n\n// eslint-disable-next-line\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) return true;\n\n if (a instanceof Date && b instanceof Date) {\n // If the values are Date, they were convert to timestamp with getTime and compare it\n if (a.getTime() !== b.getTime()) return false;\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false;\n }\n\n const props = Object.keys(a);\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false;\n }\n\n return props.every(p => deepEqual(a[p], b[p]));\n}\n\n// eslint-disable-next-line\nexport function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1;\n\n if (last < 0) return obj === undefined ? fallback : obj;\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n\n if (obj == null) return fallback;\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]];\n}\n\n// eslint-disable-next-line\nexport function getObjectValueByPath(obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback;\n if (obj[path] !== undefined) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback);\n}\n\n// eslint-disable-next-line\nexport function isBoolean(val: any): val is boolean {\n return typeof val === 'boolean';\n}\n\n// eslint-disable-next-line\nexport function isObject(obj: any): obj is object {\n return obj !== null && typeof obj === 'object';\n}\n\n// eslint-disable-next-line\nexport function isFunction(obj: any): obj is Function {\n return typeof obj === 'function';\n}\n\n// eslint-disable-next-line\nexport function isPrimitive(val: any): val is number | string | boolean {\n return typeof val === 'number' || typeof val === 'string' || typeof val === 'boolean';\n}\n\n// eslint-disable-next-line\nexport function isNil(arg: any): boolean {\n return arg === null || arg === undefined;\n}\n\nexport const exists = not(isNil);\n\n// eslint-disable-next-line\nexport function isString(arg: any): arg is string {\n return typeof arg === 'string';\n}\n\n// eslint-disable-next-line\nexport function isNumber(arg: any): arg is number {\n return typeof arg === 'number';\n}\n\n// eslint-disable-next-line\nexport function isHTMLElement(obj: any): obj is HTMLElement {\n return typeof HTMLElement === 'object'\n ? obj instanceof HTMLElement //DOM2\n : obj && typeof isObject(obj) && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n\nexport const constEmptyArray = constant([]);\n\nexport const constNone = constant(none);\n\nexport const constZero = constant(0);\n\nexport const constEmptyString = constant('');\n\nexport function removeListItem<A>(E: Eq<A>) {\n return (a: A, as: A[]) => {\n const index = as.findIndex(i => E.equals(a, i));\n return index > -1 ? unsafeDeleteAt(index, as) : as;\n };\n}\n\nexport function toggleListItem<A>(E: Eq<A>) {\n return (a: A, as: A[]) => {\n const index = as.findIndex(i => E.equals(a, i));\n return index > -1 ? unsafeDeleteAt(index, as) : snoc(as, a);\n };\n}\n\nexport function isFragment(node: VNode): boolean {\n return node.type === Fragment;\n}\n\nexport function isEmptyString(str: string): boolean {\n return str === '';\n}\n\n// eslint-disable-next-line\nexport type Result<T, P> = P extends keyof T ? T[P] : P extends (item: T) => any ? ReturnType<P> : never;\n// eslint-disable-next-line\nexport type Extractor<T> = keyof T | ((item: T) => any);\n\nfunction prop<T extends object, K extends keyof T>(key: K, obj: T): T[K] {\n return obj[key];\n}\n\n// eslint-disable-next-line\nexport function extractProp<T, P extends (item: T) => any | keyof T>(extractor: Extractor<T>, item: T): Result<T, P> {\n if (isFunction(extractor)) {\n return extractor(item);\n } else if (isObject(item) && isString(extractor) && Object.hasOwnProperty.call(item, extractor)) {\n // eslint-disable-next-line\n return prop(extractor as any, item);\n } else {\n return item as Result<T, P>;\n }\n}\n\nconst camelizeRE = /-(\\w)/g;\nexport function camelize(str: string): string {\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n}\n"],"sourceRoot":"","file":"helpers.js"} \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/mergeClasses.d.ts b/node_modules/buetify/lib/utils/mergeClasses.d.ts new file mode 100755 index 0000000..831a6f3 --- /dev/null +++ b/node_modules/buetify/lib/utils/mergeClasses.d.ts @@ -0,0 +1,4 @@ +export declare type Classes = string | { + [K: string]: boolean; +} | null | undefined | Classes[]; +export declare function mergeClasses(existingClasses?: Classes, newClasses?: Classes): Classes; diff --git a/node_modules/buetify/lib/utils/mergeClasses.js b/node_modules/buetify/lib/utils/mergeClasses.js new file mode 100755 index 0000000..40c9de6 --- /dev/null +++ b/node_modules/buetify/lib/utils/mergeClasses.js @@ -0,0 +1,12 @@ +import { identity } from 'fp-ts/lib/function'; +import { isObject, isString } from './helpers'; +export function mergeClasses(existingClasses, newClasses) { + if (Array.isArray(existingClasses)) { + return [...existingClasses.filter(identity), ...(Array.isArray(newClasses) ? newClasses.filter(identity) : [newClasses])]; + } else if (isObject(existingClasses) || isString(existingClasses)) { + return [existingClasses, ...(Array.isArray(newClasses) ? newClasses.filter(identity) : [newClasses])]; + } else { + return newClasses; + } +} +//# sourceMappingURL=mergeClasses.js.map \ No newline at end of file diff --git a/node_modules/buetify/lib/utils/mergeClasses.js.map b/node_modules/buetify/lib/utils/mergeClasses.js.map new file mode 100755 index 0000000..94a3978 --- /dev/null +++ b/node_modules/buetify/lib/utils/mergeClasses.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/utils/mergeClasses.ts"],"names":[],"mappings":"AAAA,SAAS,QAAT,QAAyB,oBAAzB;AACA,SAAS,QAAT,EAAmB,QAAnB,QAAmC,WAAnC;AAIA,OAAM,SAAU,YAAV,CAAuB,eAAvB,EAAkD,UAAlD,EAAsE;AAC1E,MAAI,KAAK,CAAC,OAAN,CAAc,eAAd,CAAJ,EAAoC;AAClC,WAAO,CACL,GAAG,eAAe,CAAC,MAAhB,CAAuB,QAAvB,CADE,EAEL,IAAI,KAAK,CAAC,OAAN,CAAc,UAAd,IAA4B,UAAU,CAAC,MAAX,CAAkB,QAAlB,CAA5B,GAA0D,CAAC,UAAD,CAA9D,CAFK,CAAP;AAID,GALD,MAKO,IAAI,QAAQ,CAAC,eAAD,CAAR,IAA6B,QAAQ,CAAC,eAAD,CAAzC,EAA4D;AACjE,WAAO,CAAC,eAAD,EAAkB,IAAI,KAAK,CAAC,OAAN,CAAc,UAAd,IAA4B,UAAU,CAAC,MAAX,CAAkB,QAAlB,CAA5B,GAA0D,CAAC,UAAD,CAA9D,CAAlB,CAAP;AACD,GAFM,MAEA;AACL,WAAO,UAAP;AACD;AACF","sourcesContent":["import { identity } from 'fp-ts/lib/function';\nimport { isObject, isString } from './helpers';\n\nexport type Classes = string | { [K: string]: boolean } | null | undefined | Classes[];\n\nexport function mergeClasses(existingClasses?: Classes, newClasses?: Classes): Classes {\n if (Array.isArray(existingClasses)) {\n return [\n ...existingClasses.filter(identity),\n ...(Array.isArray(newClasses) ? newClasses.filter(identity) : [newClasses])\n ];\n } else if (isObject(existingClasses) || isString(existingClasses)) {\n return [existingClasses, ...(Array.isArray(newClasses) ? newClasses.filter(identity) : [newClasses])];\n } else {\n return newClasses;\n }\n}\n"],"sourceRoot":"","file":"mergeClasses.js"} \ No newline at end of file diff --git a/node_modules/buetify/package.json b/node_modules/buetify/package.json new file mode 100755 index 0000000..416fd1c --- /dev/null +++ b/node_modules/buetify/package.json @@ -0,0 +1,76 @@ +{ + "name": "buetify", + "version": "0.1.7", + "description": "A Vue component framework based on Bulma", + "main": "lib/index.js", + "module": "lib/index.js", + "types": "lib/index.d.ts", + "author": { + "name": "Harry Kightlinger", + "email": "kightlingerh@gmail.com" + }, + "scripts": { + "test": "echo \"No tests specified\"", + "build": "node build/build-lib.js", + "prettier-write": "prettier --write \"./src/**/*.ts\"", + "prettier-check": "prettier --list-different \"src/**/*.ts\"", + "typecheck": "tsc --project ./tsconfig.json" + }, + "license": "MIT", + "sideEffects": [ + "*.css", + "*.sass", + "*.scss" + ], + "repository": { + "type": "git", + "url": "https://github.com/kightlingerh/buetify" + }, + "bugs": { + "url": "https://github.com/kightlingerh/buetify/issues" + }, + "files": [ + "src/", + "lib/" + ], + "keywords": [ + "bulma", + "ui framework", + "vue framework", + "ui library", + "component framework" + ], + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^1.2.25", + "@fortawesome/free-solid-svg-icons": "^5.11.2", + "bulma": "^0.9.0", + "fp-ts": "^2.6.5", + "fp-ts-local-storage": "^1.0.3", + "vue": "^3.0.0" + }, + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "devDependencies": { + "@babel/cli": "^7.8.4", + "@babel/core": "^7.8.4", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/preset-env": "^7.8.4", + "@fortawesome/fontawesome-svg-core": "^1.2.25", + "@fortawesome/free-solid-svg-icons": "^5.11.2", + "@types/lodash.debounce": "^4.0.6", + "@types/node": "^14.10.1", + "babel-plugin-detective": "^2.0.0", + "babel-plugin-module-resolver": "^4.0.0", + "babel-plugin-transform-define": "^2.0.0", + "bulma": "^0.9.1", + "cross-env": "^7.0.0", + "fp-ts": "^2.6.5", + "fp-ts-local-storage": "^1.0.3", + "prettier": "^1.19.1", + "rimraf": "^3.0.1", + "shelljs": "^0.8.3", + "typescript": "~3.9.7", + "vue": "3.0.2" + } +} diff --git a/node_modules/buetify/src/components/accordion/BAccordion.ts b/node_modules/buetify/src/components/accordion/BAccordion.ts new file mode 100755 index 0000000..82db9ac --- /dev/null +++ b/node_modules/buetify/src/components/accordion/BAccordion.ts @@ -0,0 +1,97 @@ +import 'bulma/sass/components/card.sass'; +import '../../sass/helpers/animations.sass'; +import './accordion.sass'; +import { defineComponent, h, Slots, Ref, vShow, withDirectives, Transition } from 'vue'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import { getUseTogglePropsDefinition, Toggle, useToggle } from '../../composables/toggle'; +import { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition'; +import { TransitionClasses } from '../../types/Transition'; +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; + +function generateTitle(slots: Slots) { + return h( + 'h1', + { + class: 'card-header-title' + }, + slots.title && slots.title() + ); +} + +function generateTriggerButton(toggle: Toggle, slots: Slots) { + return h( + 'button', + { + class: 'card-header-icon', + ...toggle.listeners, + ...toggle.attrs.value, + onClick: (e: MouseEvent) => { + e.stopPropagation(); + toggle.toggle(); + } + }, + + slots.trigger + ? slots.trigger({ + isExpanded: toggle.isOn.value + }) + : h(VerticalExpansionIcon, { isExpanded: toggle.isOn.value }) + ); +} + +function generateHeader(toggle: Toggle, slots: Slots) { + return h( + 'header', + { + class: 'card-header', + onClick: toggle.toggle + }, + [generateTitle(slots), generateTriggerButton(toggle, slots)] + ); +} + +export const ACCORDION_CONTENT_THEME_MAP = { + dark: 'is-black-ter', //'is-grey-dark', + light: '' +}; + +const BAccordionContent = getThemeableFunctionalComponent({ + cls: 'card-content', + el: 'section', + themeMap: ACCORDION_CONTENT_THEME_MAP +}); + +function generateBody(toggle: Toggle, transition: Ref<TransitionClasses>, slots: Slots) { + return h(Transition, transition.value, () => + withDirectives( + h( + BAccordionContent, + { + 'aria-hidden': !toggle.isOn.value + }, + slots.default + ), + [[vShow, toggle.isOn.value]] + ) + ); +} + +export default defineComponent({ + name: 'b-accordion', + props: { + ...getUseTogglePropsDefinition('isExpanded'), + ...FadeTransitionPropsDefinition, + ...DefaultThemePropsDefinition + }, + setup(props, { slots }) { + const toggle = useToggle(props, 'isExpanded'); + const theme = useTheme(props); + const transition = useTransition(props); + return () => + h('article', { class: ['b-card card', ...theme.themeClasses.value] }, [ + generateHeader(toggle, slots), + generateBody(toggle, transition, slots) + ]); + } +}); diff --git a/node_modules/buetify/src/components/accordion/accordion.sass b/node_modules/buetify/src/components/accordion/accordion.sass new file mode 100755 index 0000000..43bf993 --- /dev/null +++ b/node_modules/buetify/src/components/accordion/accordion.sass @@ -0,0 +1,39 @@ + +$card-header-icon-hover-color: $link + +.b-card + &:last-child + margin-bottom: 1rem + &.card + background-color: inherit + color: inherit + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + box-shadow: 0 2px 3px rgba($color-invert, 0.1), 0 0 0 1px rgba($color-invert, 0.1) + .card-header + box-shadow: 0 0.125em 0.25em rgba($color-invert, 0.1) + + .card-header-title + color: inherit + + .card-header-icon + &:hover + color: $card-header-icon-hover-color + + .card-content + background-color: inherit + margin-top: calc(1.5rem * 0.5) + padding: calc(1.5rem * 0.5) 1.5rem 1.5rem 1.5rem + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + +touch + padding: $size-6 + + .card-footer + background-color: transparent diff --git a/node_modules/buetify/src/components/accordion/index.ts b/node_modules/buetify/src/components/accordion/index.ts new file mode 100755 index 0000000..6a5d5a3 --- /dev/null +++ b/node_modules/buetify/src/components/accordion/index.ts @@ -0,0 +1,4 @@ +import BAccordion from './BAccordion'; + +export { BAccordion }; +export default BAccordion; diff --git a/node_modules/buetify/src/components/app/BApp.ts b/node_modules/buetify/src/components/app/BApp.ts new file mode 100755 index 0000000..f20fd35 --- /dev/null +++ b/node_modules/buetify/src/components/app/BApp.ts @@ -0,0 +1,132 @@ +import '../../sass/helpers/animations.sass'; +import './app.sass'; +import { defineComponent, shallowRef, h, Slots, Ref, vShow, withDirectives, VNode } from 'vue'; +import { provideNoticeController, ShowNoticeOptions } from '../../composables/noticeController'; +import { providePopupController, ShowPopupOptions } from '../../composables/popupController'; +import { provideTheme, ProvideThemePropDefinitions } from '../../composables/theme'; +import { formatTransition } from '../../composables/transition'; +import { provideWindowSize, ProvideWindowSizePropsDefinition } from '../../composables/windowSize'; +import { TransitionClasses } from '../../types/Transition'; +import BSidebar from '../sidebar/BSidebar'; +import BNoticeContainer, { NoticeContainer, NoticeOptions } from '../notices/noticeContainer/BNoticeContainer'; +import BPopupContainer, { PopupContainer } from '../popupContainer/BPopupContainer'; +import { + provideSidebarController, + ProvideSidebarControllerPropsDefinition, + SidebarController +} from '../sidebar/composables'; + +const DEFAULT_TRANSITION: TransitionClasses = { name: 'fade' }; + +function generateNoticeContainer(placement: 'top' | 'bottom', ref: Ref<NoticeContainer>) { + return h(BNoticeContainer, { ref, class: placement === 'top' ? 'notices-is-top' : 'notices-is-bottom' }); +} + +function generatePopupContainer(ref: Ref<PopupContainer>) { + return h(BPopupContainer, { ref }); +} + +function generateSidebarSlot( + slots: Slots, + hasHeader: boolean, + currentRoute: unknown | undefined, + sidebar: SidebarController +) { + return h( + BSidebar, + { + currentRoute, + isFullheight: true + }, + () => slots.sidebar && slots.sidebar(sidebar) + ); +} + +function generateBodyContent( + slots: Slots, + hasNavigationDrawer: boolean, + sidebar: SidebarController, + currentRoute: unknown | undefined +) { + const nodes: Array<VNode | VNode[]> = []; + if (slots.header) { + const header = slots.header(sidebar); + if (header) nodes.push(header); + } + nodes.push( + h( + 'div', + { class: 'b-app-body-content' }, + hasNavigationDrawer + ? [ + withDirectives(generateSidebarSlot(slots, !!slots.header, currentRoute, sidebar), [ + [vShow, sidebar.isVisible.value] + ]), + h('div', { class: 'b-app-content' }, slots.default && slots.default(sidebar)) + ] + : [h('div', { class: 'b-app-content' }, slots.default && slots.default(sidebar))] + ) + ); + return nodes; +} + +export default defineComponent({ + name: 'b-app', + props: { + ...ProvideThemePropDefinitions, + ...ProvideWindowSizePropsDefinition, + ...ProvideSidebarControllerPropsDefinition + }, + setup(props, { slots }) { + const popup = shallowRef((null as unknown) as PopupContainer); + const top = shallowRef((null as unknown) as NoticeContainer); + const bottom = shallowRef((null as unknown) as NoticeContainer); + + function showNotice(params: ShowNoticeOptions) { + const options: NoticeOptions = { + ...params, + transition: params.transition ? formatTransition(params.transition) : DEFAULT_TRANSITION + }; + return params.placement === 'top' ? top.value.showNotice(options) : bottom.value.showNotice(options); + } + + function showPopup(params: ShowPopupOptions) { + return popup.value.showPopup({ + render: params.render, + transition: params.transition ? formatTransition(params.transition) : DEFAULT_TRANSITION + }); + } + provideTheme(props); + provideNoticeController(showNotice); + providePopupController(showPopup); + provideWindowSize(props); + const sidebarController = provideSidebarController(props); + + return () => { + const hasNavigationDrawer = !!slots['sidebar']; + const nodes = [ + generateNoticeContainer('top', top), + generateNoticeContainer('bottom', bottom), + generatePopupContainer(popup) + ]; + + nodes.push( + h( + 'div', + { + class: [ + 'b-app', + { + 'has-navigation-drawer': hasNavigationDrawer && sidebarController.isVisible.value, + 'has-header': !!slots.header + } + ] + }, + generateBodyContent(slots, hasNavigationDrawer, sidebarController, props.currentRoute) + ) + ); + + return h('div', { class: 'b-notices-container' }, nodes); + }; + } +}); diff --git a/node_modules/buetify/src/components/app/app.sass b/node_modules/buetify/src/components/app/app.sass new file mode 100755 index 0000000..5c2bec4 --- /dev/null +++ b/node_modules/buetify/src/components/app/app.sass @@ -0,0 +1,159 @@ + +$snackbar-background-color: $dark !default +$snackbar-color: $dark-invert !default +$toast-background-color: $snackbar-background-color !default +$toast-color: $snackbar-color +$toast-border-radius: $radius !default +$snackbar-border-radius: $radius !default +$all-colors: mergeColorMaps($colors, $shades) !default + +.b-notices-container + position: relative + .toast + margin: 2rem + z-index: 1000 + display: inline-flex + animation-duration: $speed-slow + margin: 0.5em 0 + text-align: center + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04) + border-radius: $toast-border-radius + padding: 0.75em 1.5em + background-color: $toast-background-color + color: $toast-color + //pointer-events: auto + opacity: 0.92 + @each $name, $pair in $all-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + color: $color-invert + background: $color + + .snackbar + margin: 2rem + display: inline-flex + align-items: center + justify-content: space-around + animation-duration: $speed-slow + margin: 0.5em 0 + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04) + border-radius: $snackbar-border-radius + pointer-events: auto + background: $snackbar-background-color + color: $snackbar-color + min-height: 3em + .text + padding: 0.5em 1em + .action + margin-left: auto + padding: 0.5em + padding-left: 0 + .button + font-weight: $weight-semibold + text-transform: uppercase + background: $snackbar-background-color + border: transparent + color: $snackbar-color + + .button:hover + background: darken($snackbar-background-color, 5%) + + .button:active + background: darken($snackbar-background-color, 5%) + + @each $name, $pair in $all-colors + $color: nth($pair, 1) + &.is-#{$name} + .button + color: $color + @include mobile + width: 100% + margin: 0 + border-radius: 0 + @include tablet + min-width: 350px + max-width: 600px + overflow: hidden + .notification + max-width: 600px + .toast, + .snackbar, + .notification + // Modifiers + &.is-top, + &.is-bottom + align-self: center + + &.is-top-right, + &.is-bottom-right + align-self: flex-end + +mobile + align-self: center + + &.is-top-left, + &.is-bottom-left + align-self: flex-start + +mobile + align-self: center + + &.is-toast + opacity: 0.92 + // Modifiers + > .notices-is-top + width: 100% + position: fixed + padding: 2rem 2rem 0 2rem + top: 0 + display: flex + flex-direction: column + > .notices-is-bottom + width: 100% + padding: 0 2rem 2rem 2rem + position: fixed + bottom: 0 + display: flex + flex-direction: column-reverse + &.has-custom-container + position: fixed + +.b-app + width: 100% + &.is-fullheight + height: 100vh + .b-app-body-content + height: 100% + .b-app-content + .b-sheet + &.is-loading + width: 100% + &.is-fullheight-mobile + +mobile + height: 100vh + &.has-navigation-drawer + +until-widescreen + .b-sidebar + height: 100% + position: fixed + top: 0 + left: 0 + +widescreen + .b-app-body-content + display: flex + flex-direction: row + .b-sidebar + flex-grow: 0 + flex-shrink: 0 + .b-app-content + flex-grow: 1 + .b-sheet + &.is-loading + flex-grow: 1 + &.has-header + display: flex + flex-direction: column + .b-app-body-content + flex: 1 + position: relative + + diff --git a/node_modules/buetify/src/components/app/index.ts b/node_modules/buetify/src/components/app/index.ts new file mode 100755 index 0000000..142b0c4 --- /dev/null +++ b/node_modules/buetify/src/components/app/index.ts @@ -0,0 +1,4 @@ +import BApp from './BApp'; + +export { BApp }; +export default BApp; diff --git a/node_modules/buetify/src/components/appHeader/BAppHeader.ts b/node_modules/buetify/src/components/appHeader/BAppHeader.ts new file mode 100755 index 0000000..843d922 --- /dev/null +++ b/node_modules/buetify/src/components/appHeader/BAppHeader.ts @@ -0,0 +1,48 @@ +import './app-header.sass'; +import '../../sass/helpers/flex-helpers.sass'; +import { isSome } from 'fp-ts/lib/Option'; +import { SetupContext, h, Slots } from 'vue'; +import BNavbarBurger from '../navbar/BNavbarBurger'; +import { SidebarController, useSidebarController } from '../sidebar/composables'; + +function generateMainSlot(injection: SidebarController, includeClickHandler: boolean, slots: Slots) { + return h( + 'div', + { + class: 'main-slot', + ...(includeClickHandler && isSome(injection.listeners.value) + ? { onClick: injection.listeners.value.value.onClick } + : {}) + }, + slots.default && slots.default() + ); +} + +function generateNavigationButton(injection: SidebarController, slots: Slots) { + const listeners = isSome(injection.listeners.value) ? injection.listeners.value.value : {}; + const attrs = isSome(injection.attrs.value) ? injection.attrs.value.value : {}; + return h( + 'button', + { + class: 'navigation-icon is-hidden-desktop', + ...listeners, + ...attrs, + 'aria-label': 'Toggle navigation pane' + }, + slots.trigger + ? slots.trigger({ isVisible: injection.isVisible.value }) + : h(BNavbarBurger, { tag: 'span', isActive: injection.isVisible.value }) + ); +} + +export default function(props: { tag?: string }, { slots }: SetupContext) { + const sidebarController = useSidebarController(); + const isInvisible = !sidebarController.isVisible.value; + return h( + props.tag ?? 'header', + { + class: 'b-app-header is-flex flex-direction-row justify-content-center align-items-center has-navigation' + }, + [generateNavigationButton(sidebarController, slots), generateMainSlot(sidebarController, isInvisible, slots)] + ); +} diff --git a/node_modules/buetify/src/components/appHeader/app-header.sass b/node_modules/buetify/src/components/appHeader/app-header.sass new file mode 100755 index 0000000..5c53598 --- /dev/null +++ b/node_modules/buetify/src/components/appHeader/app-header.sass @@ -0,0 +1,28 @@ + +$app-header-background-color: $primary !default +$app-header-background-color-invert: findColorInvert($app-header-background-color) + +.b-app-header + position: relative + border-bottom: 1px $border solid + min-height: 4rem + .main-slot + width: 100% + &.has-navigation + .navigation-icon + position: absolute + left: 0 + padding: $size-7 + flex: none + cursor: pointer + z-index: 1 + .main-slot + width: calc(100% - 4.5rem) ++until-widescreen + .b-app-header + &.has-touch-header + background-color: $app-header-background-color + border-bottom: none + color: $app-header-background-color-invert + .title + color: $app-header-background-color-invert diff --git a/node_modules/buetify/src/components/appHeader/index.ts b/node_modules/buetify/src/components/appHeader/index.ts new file mode 100755 index 0000000..8c87714 --- /dev/null +++ b/node_modules/buetify/src/components/appHeader/index.ts @@ -0,0 +1,4 @@ +import BAppHeader from './BAppHeader'; + +export { BAppHeader }; +export default BAppHeader; diff --git a/node_modules/buetify/src/components/button/BButton.ts b/node_modules/buetify/src/components/button/BButton.ts new file mode 100755 index 0000000..f628196 --- /dev/null +++ b/node_modules/buetify/src/components/button/BButton.ts @@ -0,0 +1,111 @@ +import 'bulma/sass/elements/button.sass'; +import { h, PropType, defineComponent } from 'vue'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { Classes } from '../../utils/mergeClasses'; + +export interface ButtonProps { + variant: ColorVariant; + isRounded: boolean; + isLoading: boolean; + isOutlined: boolean; + isInverted: boolean; + isFocused: boolean; + isActive: boolean; + isDisabled: boolean; + isHovered: boolean; + isSelected: boolean; + isFullwidth: boolean; + size: SizeVariant; + tag: 'button' | 'a' | 'input'; +} + +function useButtonClasses(props: ButtonProps): Classes { + return [ + 'button', + props.variant, + props.size, + { + 'is-rounded': props.isRounded, + 'is-loading': props.isLoading, + 'is-outlined': props.isOutlined, + 'is-inverted': props.isInverted, + 'is-focused': props.isFocused, + 'is-active': props.isActive, + 'is-disabled': props.isDisabled, + 'is-hovered': props.isHovered, + 'is-selected': props.isSelected, + 'is-fullwidth': props.isFullwidth + } + ]; +} + +export default defineComponent({ + name: 'b-button', + props: { + tag: { + type: String as PropType<'button' | 'a' | 'input'>, + default: 'button' as const, + validator: (val: string) => ['button', 'a', 'input'].includes(val) + }, + size: { + type: String as PropType<SizeVariant>, + default: '' as SizeVariant + }, + variant: { + type: String as PropType<ColorVariant>, + default: '' as ColorVariant + }, + isRounded: { + type: Boolean as PropType<boolean>, + default: false + }, + isLoading: { + type: Boolean as PropType<boolean>, + default: false + }, + isOutlined: { + type: Boolean as PropType<boolean>, + default: false + }, + isInverted: { + type: Boolean as PropType<boolean>, + default: false + }, + isFocused: { + type: Boolean as PropType<boolean>, + default: false + }, + isActive: { + type: Boolean as PropType<boolean>, + default: false + }, + isDisabled: { + type: Boolean as PropType<boolean>, + default: false + }, + isHovered: { + type: Boolean as PropType<boolean>, + default: false + }, + isSelected: { + type: Boolean as PropType<boolean>, + default: false + }, + isFullwidth: { + type: Boolean as PropType<boolean>, + default: false + } + }, + setup(props, { slots }) { + return () => + h( + props.tag, + { + class: useButtonClasses(props), + disabled: props.isDisabled ? true : null + }, + slots.default && slots.default() + ); + } +}); diff --git a/node_modules/buetify/src/components/button/index.ts b/node_modules/buetify/src/components/button/index.ts new file mode 100755 index 0000000..2163106 --- /dev/null +++ b/node_modules/buetify/src/components/button/index.ts @@ -0,0 +1,5 @@ +import BButton from './BButton'; +import { ButtonTheme } from './theme'; + +export { BButton, ButtonTheme }; +export default BButton; diff --git a/node_modules/buetify/src/components/button/theme.ts b/node_modules/buetify/src/components/button/theme.ts new file mode 100755 index 0000000..47c1853 --- /dev/null +++ b/node_modules/buetify/src/components/button/theme.ts @@ -0,0 +1,7 @@ +import { shallowReactive } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; + +export const ButtonTheme: ThemeColorMap = shallowReactive({ + dark: 'is-primary', + light: 'is-primary' +}); diff --git a/node_modules/buetify/src/components/dialog/BDialog.ts b/node_modules/buetify/src/components/dialog/BDialog.ts new file mode 100755 index 0000000..9f1085a --- /dev/null +++ b/node_modules/buetify/src/components/dialog/BDialog.ts @@ -0,0 +1,64 @@ +import 'bulma/sass/components/modal.sass'; +import './dialog.sass'; +import { head } from 'fp-ts/lib/Array'; +import { pipe } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { exists } from 'fp-ts/lib/Option'; +import { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController'; +import { constEmptyArray, isObject } from '../../utils/helpers'; +import BOverlay from '../overlay/BOverlay'; +import BDialogContent, { B_DIALOG_CONTENT_NAME } from './BDialogContent'; +import { defineComponent, VNode, shallowRef, h } from 'vue'; + +function containsBDialogContent(node: any) { //eslint-disable-line + const components = (isObject(node) && (node as any)?.type?.components) || {}; // eslint-disable-line + for (const k in components) { + if (components[k]?.name === B_DIALOG_CONTENT_NAME) { + return true; + } + } + return false; +} + +export default defineComponent({ + name: 'b-dialog', + props: UsePopupControllerPropsDefinition, + setup(props, { attrs, slots }) { + const generateDialog = shallowRef(constEmptyArray as IO<VNode[]>); + const popup = usePopupController(props, generateDialog); + generateDialog.value = () => { + return [ + h( + BOverlay, + { + ...attrs, + class: 'dialog', + isActive: true, + onClick: popup.close + }, + () => { + const nodes = slots.default ? slots.default(popup) : []; + const isDialogContent = pipe(head(nodes), exists(containsBDialogContent)); + return isDialogContent + ? nodes + : h( + BDialogContent, + { + asCard: false + }, + { + header: slots.header ? () => slots.header && slots.header(popup) : undefined, + default: () => nodes, + footer: () => slots.footer && slots.footer(popup) + } + ); + } + ) + ]; + }; + return { popup }; + }, + render() { + return this.$slots.trigger && this.$slots.trigger(this.popup); + } +}); diff --git a/node_modules/buetify/src/components/dialog/BDialogContent.ts b/node_modules/buetify/src/components/dialog/BDialogContent.ts new file mode 100755 index 0000000..1838ac9 --- /dev/null +++ b/node_modules/buetify/src/components/dialog/BDialogContent.ts @@ -0,0 +1,55 @@ +import 'bulma/sass/components/modal.sass'; +import './dialog.sass'; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { SizeVariant } from '../../types/SizeVariants'; +import { PropType, VNode, defineComponent, h } from 'vue'; +import { DialogTheme } from './theme'; + +export const B_DIALOG_CONTENT_NAME = 'b-dialog-content'; + +export default defineComponent({ + name: B_DIALOG_CONTENT_NAME, + props: { + ...useThemePropsDefinition(DialogTheme, true), + size: { + type: String as PropType<SizeVariant>, + required: false + }, + cardClass: { + type: String as PropType<string>, + required: false + }, + asCard: { + type: Boolean as PropType<boolean>, + default: true + } + }, + setup(props, { slots }) { + const { themeClasses } = useTheme(props); + return () => { + const nodes: VNode[] = []; + if (slots.header) { + nodes.push(h('header', { class: 'modal-card-head' }, slots.header())); + } + nodes.push( + h( + 'section', + { class: ['modal-card-body', { 'is-titleless': !slots.header }] }, + slots.default && slots.default() + ) + ); + if (slots.footer) { + nodes.push(h('footer', { class: 'modal-card-foot' }, slots.footer())); + } + return h('div', { class: [props.size, 'b-dialog'] }, [ + h( + 'article', + { + class: ['modal-card', { card: props.asCard }, ...themeClasses.value, props.cardClass] + }, + nodes + ) + ]); + }; + } +}); diff --git a/node_modules/buetify/src/components/dialog/BDialogOverlay.ts b/node_modules/buetify/src/components/dialog/BDialogOverlay.ts new file mode 100755 index 0000000..942f422 --- /dev/null +++ b/node_modules/buetify/src/components/dialog/BDialogOverlay.ts @@ -0,0 +1,8 @@ +import 'bulma/sass/components/modal.sass'; +import './dialog.sass'; +import BOverlay from '../overlay/BOverlay'; +import { h, SetupContext } from 'vue'; + +export default function BDialogOverlay(_: any, { attrs, slots }: SetupContext) { + return h(BOverlay, { ...attrs, class: 'dialog' }, slots.default!()); +} diff --git a/node_modules/buetify/src/components/dialog/dialog.sass b/node_modules/buetify/src/components/dialog/dialog.sass new file mode 100755 index 0000000..3ce6524 --- /dev/null +++ b/node_modules/buetify/src/components/dialog/dialog.sass @@ -0,0 +1,48 @@ + +.b-dialog + z-index: 1 + .modal-card + max-width: 540px + width: auto + background-color: inherit + .modal-card-head + font-size: $size-5 + font-weight: $weight-semibold + .modal-card-body + & > .field + margin-top: 1rem + &:first-child + margin-top: 0 + &.is-titleless + border-top-left-radius: $radius-large + border-top-right-radius: $radius-large + @include tablet + min-width: 320px + + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + .modal-card-head, + .modal-card-foot + background-color: bulmaDarken($color, 5%) + color: $color-invert + .modal-card-body + background-color: $color + color: $color-invert + + &.is-small + .modal-card, + .input, + .button + @include control-small + &.is-medium + .modal-card, + .input, + .button + @include control-medium + &.is-large + .modal-card, + .input, + .button + @include control-large diff --git a/node_modules/buetify/src/components/dialog/index.ts b/node_modules/buetify/src/components/dialog/index.ts new file mode 100755 index 0000000..3aa2790 --- /dev/null +++ b/node_modules/buetify/src/components/dialog/index.ts @@ -0,0 +1,7 @@ +import BDialog from './BDialog'; +import BDialogContent from './BDialogContent'; +import { DialogTheme } from './theme'; + +export { BDialog, BDialogContent, DialogTheme }; + +export default BDialog; diff --git a/node_modules/buetify/src/components/dialog/theme.ts b/node_modules/buetify/src/components/dialog/theme.ts new file mode 100755 index 0000000..43ca2dd --- /dev/null +++ b/node_modules/buetify/src/components/dialog/theme.ts @@ -0,0 +1,7 @@ +import { shallowReactive } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; + +export const DialogTheme: ThemeColorMap = shallowReactive({ + dark: 'is-grey-dark', + light: '' +}); diff --git a/node_modules/buetify/src/components/dropdown/BDropdown.ts b/node_modules/buetify/src/components/dropdown/BDropdown.ts new file mode 100755 index 0000000..650612b --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/BDropdown.ts @@ -0,0 +1,277 @@ +import './dropdown.sass'; +import { Predicate } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { getUseTogglePropsDefinition, Toggle, useToggle } from '../../composables/toggle'; +import { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition'; +import { useWindowSize } from '../../composables/windowSize'; +import { TransitionClasses } from '../../types/Transition'; +import { + ExtractPropTypes, + PropType, + VNode, + defineComponent, + shallowRef, + computed, + Ref, + h, + withDirectives, + vShow, + Slots, + Transition +} from 'vue'; +import ClickOutside from '../../directives/clickOutside'; +import { isString } from '../../utils/helpers'; +import { Classes } from '../../utils/mergeClasses'; +import { DropdownThemeMap } from './theme'; + +export type DropdownPosition = 'is-top-right' | 'is-top-left' | 'is-bottom-left'; + +export const BDropdownPropsDefinition = { + ...useThemePropsDefinition(DropdownThemeMap), + ...getUseTogglePropsDefinition('isExpanded'), + ...FadeTransitionPropsDefinition, + id: String as PropType<string>, + isDisabled: { + type: Boolean as PropType<boolean>, + default: false + }, + isHoverable: { + type: Boolean as PropType<boolean>, + default: false + }, + isInline: { + type: Boolean as PropType<boolean>, + default: false + }, + position: { + type: String as PropType<DropdownPosition>, + validator: (value: unknown) => { + return isString(value) && ['is-top-right', 'is-top-left', 'is-bottom-left'].includes(value); + } + }, + isMobileModal: { + type: Boolean as PropType<boolean>, + default: true + }, + menuTag: { + type: String as PropType<string>, + default: 'ul' + } +}; + +export type BDropdownProps = ExtractPropTypes<typeof BDropdownPropsDefinition>; + +let id = 0; + +function generateTrigger(toggle: Toggle, id: string, slots: Slots) { + return h( + 'div', + { + ref: 'trigger', + class: 'dropdown-trigger', + role: 'button', + 'aria-owns': id, + 'aria-haspopup': 'listbox', + 'aria-expanded': `${toggle.isOn.value}`, + onClick: toggle.toggle + }, + slots.trigger && slots.trigger(toggle) + ); +} + +function generateTransition(transition: TransitionClasses, children: IO<VNode | undefined>) { + return h(Transition, transition, children); +} + +function useCloseConditional(toggle: Toggle, isInWhiteList: Predicate<HTMLElement>): Predicate<Event> { + return (e: Event) => { + const target = e.target as HTMLElement; + return toggle.isOn.value && isInWhiteList(target); + }; +} + +function generateDropdownContent( + menuTag: string, + toggle: Toggle, + computedId: string, + themeClasses: string[], + slots: Slots +): VNode { + return h( + menuTag, + { + class: ['dropdown-content', ...themeClasses], + role: 'menu', + id: computedId, + 'aria-hidden': toggle.isOff.value + }, + slots.default && slots.default(toggle) + ); +} + +function generateDropdownMenu( + menuTag: string, + toggle: Toggle, + computedId: string, + themeClasses: string[], + transition: TransitionClasses, + slots: Slots, + useTransition = true +) { + const menu = () => + withDirectives( + h( + 'div', + { + class: 'dropdown-menu' + }, + [generateDropdownContent(menuTag, toggle, computedId, themeClasses, slots)] + ), + [[vShow, toggle.isOn.value]] + ); + return useTransition ? generateTransition(transition, menu) : menu(); +} + +function generateMobileBackground( + menuTag: string, + toggle: Toggle, + computedId: string, + themeClasses: string[], + transition: TransitionClasses, + slots: Slots +): VNode { + return generateTransition(transition, () => + withDirectives( + h( + 'div', + { + class: 'background', + 'aria-hidden': toggle.isOff.value, + onClick: toggle.setOff + }, + [generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots, false)] + ), + [[vShow, toggle.isOn.value]] + ) + ); +} + +function generateChildren( + menuTag: string, + isInline: boolean, + toggle: Toggle, + computedId: string, + transition: TransitionClasses, + themeClasses: string[], + shouldDisplayMobileBackground: boolean, + slots: Slots +) { + const children: VNode[] = []; + if (!isInline) { + children.push(generateTrigger(toggle, computedId, slots)); + } + if (shouldDisplayMobileBackground) { + children.push(generateMobileBackground(menuTag, toggle, computedId, themeClasses, transition, slots)); + } else { + const menu = generateDropdownMenu(menuTag, toggle, computedId, themeClasses, transition, slots); + if (menu) { + children.push(menu); + } + } + return children; +} + +export default defineComponent({ + name: 'b-dropdown', + props: BDropdownPropsDefinition, + setup(props) { + const windowSize = useWindowSize(); + const toggle = useToggle(props, 'isExpanded'); + const { themeClasses } = useTheme(props); + const transition = useTransition(props); + const root = shallowRef((null as unknown) as HTMLElement); + const trigger = shallowRef((null as unknown) as HTMLElement); + const dropdownMenu = shallowRef((null as unknown) as HTMLElement); + const computedId = computed(() => `dropdown-menu-${props.id ?? id++}`); + const rootClasses: Ref<Classes[]> = computed(() => [ + props.position, + { + 'is-disabled': props.isDisabled, + 'is-hoverable': props.isHoverable, + 'is-inline': props.isInline, + 'is-active': toggle.isOn.value || props.isInline, + 'is-mobile-modal': props.isMobileModal + } + ]); + const displayMenu = computed( + () => (!props.isDisabled && (toggle.isOn.value || props.isHoverable)) || props.isInline + ); + const isMobileModal = computed(() => props.isMobileModal && !props.isInline && !props.isHoverable); + const displayMobileBackground = computed(() => isMobileModal.value && windowSize.value.isTouch); + + function getDependentElements(): HTMLElement[] { + return Array.from(dropdownMenu.value?.querySelectorAll('*') ?? []); + } + + function isInDropdown(el: HTMLElement): boolean { + return dropdownMenu.value !== undefined && dropdownMenu.value.contains(el); + } + + function isInTrigger(el: HTMLElement): boolean { + return trigger.value !== undefined && trigger.value.contains(el); + } + + function isInWhiteList(el: HTMLElement) { + if (el === root.value) return true; + if (el === dropdownMenu.value) return true; + if (el === trigger.value) return true; + return isInDropdown(el) || isInTrigger(el); + } + + const menuToggle = { + ...toggle, + isOn: displayMenu, + isOff: computed(() => !displayMenu.value) + }; + + const closeConditional = useCloseConditional(menuToggle, isInWhiteList); + + const clickOutsideArgs = { + include: getDependentElements, + closeConditional + }; + return { + root, + rootClasses, + clickOutsideArgs, + toggle, + transition, + themeClasses, + dropdownMenu, + displayMobileBackground, + menuToggle, + trigger, + computedId + }; + }, + render() { + return withDirectives( + h( + 'div', + { ref: 'root', class: ['dropdown', ...this.rootClasses] }, + generateChildren( + this.menuTag, + this.isInline, + this.menuToggle, + this.computedId, + this.transition, + this.themeClasses, + this.displayMobileBackground, + this.$slots + ) + ), + [[ClickOutside, this.toggle.setOff, (this.clickOutsideArgs as unknown) as string]] + ); + } +}); diff --git a/node_modules/buetify/src/components/dropdown/BDropdownDivider.ts b/node_modules/buetify/src/components/dropdown/BDropdownDivider.ts new file mode 100755 index 0000000..f0b6f90 --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/BDropdownDivider.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('dropdown-divider', 'hr'); diff --git a/node_modules/buetify/src/components/dropdown/BDropdownItem.ts b/node_modules/buetify/src/components/dropdown/BDropdownItem.ts new file mode 100755 index 0000000..9386a46 --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/BDropdownItem.ts @@ -0,0 +1,32 @@ +import { useTheme, useThemePropsDefinition } from '../../composables/theme'; +import { h, defineComponent, PropType } from 'vue'; +import { DropdownThemeMap } from './theme'; + +export default defineComponent({ + name: 'b-dropdown-item', + props: { + ...useThemePropsDefinition(DropdownThemeMap, true), + isActive: { + type: Boolean as PropType<boolean>, + default: false + }, + tag: { + type: String as PropType<string>, + default: 'li' + } + }, + setup(props, { slots }) { + const { themeClasses } = useTheme(props); + return () => { + return h( + props.tag ?? 'li', + { + role: 'menuitem', + tabindex: 0, + class: ['dropdown-item', ...themeClasses.value, { 'is-active': props.isActive }] + }, + slots.default && slots.default() + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/dropdown/BDropdownLink.ts b/node_modules/buetify/src/components/dropdown/BDropdownLink.ts new file mode 100755 index 0000000..43de164 --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/BDropdownLink.ts @@ -0,0 +1,43 @@ +import { useTheme, useThemePropsDefinition } from '../../composables/theme'; +import { h, defineComponent, PropType } from 'vue'; +import { DropdownThemeMap } from './theme'; + +export default defineComponent({ + name: 'b-dropdown-link-item', + props: { + ...useThemePropsDefinition(DropdownThemeMap, true), + isActive: { + type: Boolean as PropType<boolean>, + default: false + }, + href: { + type: String as PropType<string>, + required: true + }, + tag: { + type: String as PropType<string>, + default: 'li' + } + }, + setup(props, { attrs, slots }) { + const { themeClasses } = useTheme(props); + return () => { + return h( + props.tag ?? 'li', + { + role: 'menuitem' + }, + [ + h( + 'a', + { + ...attrs, + class: ['dropdown-item dropdown-link', ...themeClasses.value, { 'is-active': props.isActive }] + }, + slots.default && slots.default() + ) + ] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/dropdown/base-dropdown.sass b/node_modules/buetify/src/components/dropdown/base-dropdown.sass new file mode 100755 index 0000000..f0fd842 --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/base-dropdown.sass @@ -0,0 +1,101 @@ +$dropdown-content-background-color: $white !default +$dropdown-content-arrow: $link !default +$dropdown-content-offset: 4px !default +$dropdown-content-radius: $radius !default +$dropdown-content-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default +$dropdown-content-z: 20 !default + +$dropdown-item-color: $grey-dark !default +$dropdown-item-hover-color: $black !default +$dropdown-item-hover-background-color: $background !default +$dropdown-item-active-color: $link-invert !default +$dropdown-item-active-background-color: $link !default + +$dropdown-divider-background-color: $border !default + +.dropdown + display: inline-flex + position: relative + vertical-align: top + &.is-active, + &.is-hoverable:hover + .dropdown-menu + display: block + &.is-right + .dropdown-menu + left: auto + right: 0 + &.is-up + .dropdown-menu + bottom: 100% + padding-bottom: $dropdown-content-offset + padding-top: initial + top: auto + +.dropdown-menu + display: none + left: 0 + min-width: 12rem + padding-top: $dropdown-content-offset + position: absolute + top: 100% + z-index: $dropdown-content-z + +.dropdown-content + background-color: $dropdown-content-background-color + border-radius: $dropdown-content-radius + box-shadow: $dropdown-content-shadow + padding-bottom: 0.5rem + padding-top: 0.5rem + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + +.dropdown-item + color: $dropdown-item-color + display: block + font-size: 0.875rem + line-height: 1.5 + padding: 0.375rem 1rem + position: relative + @each $name, $pair in mergeColorMaps($colors, $shades) + $color-invert: nth($pair, 2) + &.is-#{$name} + color: $color-invert + + +a.dropdown-item, +button.dropdown-item, +li.dropdown-item + text-align: left + white-space: nowrap + width: 100% + &:hover + background-color: $dropdown-item-hover-background-color + color: $dropdown-item-hover-color + &.is-active + background-color: $dropdown-item-active-background-color !important + color: $dropdown-item-active-color !important + &:hover, + &.is-hovered + background-color: bulmaDarken($dropdown-item-active-background-color, 2.5%) !important + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + &.is-hovered, + &:hover + background-color: bulmaDarken($color, 10%) + color: $color-invert + +.dropdown-divider + background-color: $dropdown-divider-background-color + border: none + display: block + height: 1px + margin: 0.5rem 0 diff --git a/node_modules/buetify/src/components/dropdown/dropdown.sass b/node_modules/buetify/src/components/dropdown/dropdown.sass new file mode 100755 index 0000000..5d81481 --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/dropdown.sass @@ -0,0 +1,83 @@ +@import './base-dropdown' +@import '../../sass/helpers/animations' + +.dropdown + .background + @include overlay + position: fixed + background-color: rgba($black, 0.86) + z-index: 10 + cursor: pointer + @include desktop + display: none + .dropdown-trigger + cursor: pointer + .dropdown-menu + .dropdown-item + &.is-disabled + cursor: not-allowed + &:hover + background: inherit + color: inherit + &.dropdown-link + cursor: pointer + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.has-background-#{$name} + background-color: $color + color: $color-invert + &.is-expanded + width: 100% + .dropdown-trigger + width: 100% + + &:not(.is-disabled) + .dropdown-menu + .dropdown-item + &.is-disabled + opacity: 0.5 + .navbar-item + height: 100% + &.is-disabled + opacity: 0.5 + cursor: not-allowed + .dropdown-trigger + pointer-events: none + &.is-inline + .dropdown-menu + position: static + display: inline-block + padding: 0 + &.is-top-right + .dropdown-menu + top: auto + bottom: 100% + padding-bottom: $dropdown-content-offset + &.is-top-left + .dropdown-menu + top: auto + bottom: 100% + right: 0 + left: auto + padding-bottom: $dropdown-content-offset + &.is-bottom-left + .dropdown-menu + right: 0 + left: auto + @include touch + &.is-mobile-modal + .dropdown-menu + position: fixed + width: calc(100vw - 40px) + max-width: 460px + max-height: calc(100vh - 120px) + top: 25% !important + left: 50% !important + bottom: auto !important + right: auto !important + transform: translate3d(-50%, -25%, 0) + white-space: normal + overflow-y: auto + .dropdown-item + padding: 1rem 1.5rem diff --git a/node_modules/buetify/src/components/dropdown/index.ts b/node_modules/buetify/src/components/dropdown/index.ts new file mode 100755 index 0000000..fb68731 --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/index.ts @@ -0,0 +1,9 @@ +import BDropdown from './BDropdown'; +import BDropdownDivider from './BDropdownDivider'; +import BDropdownItem from './BDropdownItem'; +import BDropdownLink from './BDropdownLink'; +import { DropdownThemeMap } from './theme'; + +export { BDropdownItem, BDropdownLink, BDropdownDivider, BDropdown, DropdownThemeMap }; + +export default BDropdown; diff --git a/node_modules/buetify/src/components/dropdown/theme.ts b/node_modules/buetify/src/components/dropdown/theme.ts new file mode 100755 index 0000000..61babbb --- /dev/null +++ b/node_modules/buetify/src/components/dropdown/theme.ts @@ -0,0 +1,7 @@ +import { shallowReactive } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; + +export const DropdownThemeMap: ThemeColorMap = shallowReactive({ + dark: 'is-grey-dark', + light: '' +}); diff --git a/node_modules/buetify/src/components/form/autocomplete/BAutocomplete.ts b/node_modules/buetify/src/components/form/autocomplete/BAutocomplete.ts new file mode 100755 index 0000000..dd9f17a --- /dev/null +++ b/node_modules/buetify/src/components/form/autocomplete/BAutocomplete.ts @@ -0,0 +1,419 @@ +import '../sass/form.sass'; +import '../../dropdown/dropdown.sass'; +import './autocomplete.sass'; +import { Eq } from 'fp-ts/lib/Eq'; +import { IO } from 'fp-ts/lib/IO'; +import { StaticUseInputProps } from '../../../composables/input/useInput'; +import { getUseModelPropsDefinition } from '../../../composables/model/useModel'; +import { useProxy } from '../../../composables/proxy'; +import { getEqPropsDefinition } from '../../../composables/shared'; +import { useThemePropsDefinition } from '../../../composables/theme'; +import { + constEmptyArray, + Extractor, + extractProp, + isFunction, + isHTMLElement, + isObject, + isString, + toggleListItem +} from '../../../utils/helpers'; +import { DropdownThemeMap } from '../../dropdown'; +import BDropdown from '../../dropdown/BDropdown'; +import { isArrowDownEvent, isArrowUpEvent, isEnterEvent, isEscEvent, isTabEvent } from '../../../utils/eventHelpers'; +import { constant, constVoid, FunctionN, Predicate } from 'fp-ts/lib/function'; +import BDropdownDivider from '../../dropdown/BDropdownDivider'; +import BDropdownItem from '../../dropdown/BDropdownItem'; +import { head, isEmpty, lookup } from 'fp-ts/lib/Array'; +import { alt, chain, fold, fromNullable, isSome, map, none, Option, some, toUndefined } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { + defineComponent, + PropType, + VNode, + Ref, + shallowRef, + computed, + onBeforeUpdate, + nextTick, + toRef, + Slots, + h +} from 'vue'; + +import { BInput } from '../input'; + +export interface AutocompleteItem<T> { + id: string; + isSelected: boolean; + isHovered: boolean; + text: string; + value: T; + index: number; +} + +function getActiveDescendentId<T>( + selectedItems: T[], + itemId: keyof T | ((item: T) => string) | string +): string | undefined { + return pipe( + selectedItems, + head, + chain(item => { + if (isString(item) && isFunction(itemId)) { + const id = extractProp(itemId, item); + return isString(id) ? some(id) : none; + } + if (isString(item)) { + return some(item); + } + if (isString(itemId) && isObject(item) && Object.hasOwnProperty.call(item, itemId as string)) { + const id = item[itemId as keyof T]; + return isString(id) ? some(id) : none; + } + const id = extractProp(itemId as Extractor<T>, item); + return isString(id) ? some(id) : (none as Option<string>); + }), + toUndefined + ); +} + +function getAutocompleteItems<T>( + items: T[], + selectedItems: T[], + itemId: keyof T | ((item: T) => string), + itemText: keyof T | ((item: T) => string), + eq: Eq<T>, + hoveredItem: Option<AutocompleteItem<T>> +): AutocompleteItem<T>[] { + return items.map((item, index) => { + const id = extractProp(itemId, item); + const nid = isString(id) ? id : String(id); + const text = extractProp(itemText, item); + return { + id: nid, + isSelected: selectedItems.some(i => eq.equals(i, item)), + isHovered: isSome(hoveredItem) ? hoveredItem.value.id === nid : false, + text: isString(text) ? text : String(text), + value: item, + index + }; + }); +} + +interface GetSetSelectedProps<T> { + eq: Eq<T>; + itemText: Extractor<T>; + clearOnSelect: boolean; + closeOnSelect: boolean; +} + +function getSetSelected<T>( + props: GetSetSelectedProps<T>, + closeDropdown: IO<void>, + inputModel: Ref<string>, + selectedItemsModel: Ref<T[]> +): SetSelected<T> { + const toggle = toggleListItem(props.eq); + return (item: AutocompleteItem<T>) => { + const text = extractProp(props.itemText, item.value); + inputModel.value = props.clearOnSelect ? '' : isString(text) ? text : String(text); + selectedItemsModel.value = toggle(item.value, selectedItemsModel.value || []); + if (props.closeOnSelect) { + closeDropdown(); + } + }; +} + +interface SetSelected<T> { + (item: AutocompleteItem<T>): void; +} + +function getSetHovered<T>( + hoveredItem: Ref<Option<AutocompleteItem<T>>>, + templateItems: Ref<HTMLElement[]> +): SetHovered<T> { + return (item: AutocompleteItem<T> | undefined) => { + const newItem = fromNullable(item); + if (isSome(newItem)) { + hoveredItem.value = newItem; + pipe( + newItem, + map(item => item.index), + chain(index => lookup(index, templateItems.value)), + fold(constant(constVoid), li => () => li.focus && li.focus()) + )(); + } + }; +} + +interface SetHovered<T> { + (item?: AutocompleteItem<T> | undefined): void; +} + +function getOnKeydown<T>( + autocompleteItems: Ref<AutocompleteItem<T>[]>, + hoveredItem: Ref<Option<AutocompleteItem<T>>>, + closeDropdown: IO<void>, + setSelected: FunctionN<[AutocompleteItem<T>], void>, + setHovered: FunctionN<[AutocompleteItem<T>], void> +) { + function onArrowPress(isUp: boolean) { + pipe( + hoveredItem.value, + map(item => item.index), + alt(() => some(0)), + chain(index => + lookup( + isUp ? Math.max(index - 1, 0) : Math.min(index + 1, autocompleteItems.value.length - 1), + autocompleteItems.value as AutocompleteItem<T>[] + ) + ), + fold(constant(constVoid), newItem => () => setHovered(newItem)) + )(); + } + return function onKeydown(event: KeyboardEvent) { + if (isEnterEvent(event)) { + event.preventDefault(); + if (isSome(hoveredItem.value)) { + setSelected(hoveredItem.value.value); + } + } else if (isTabEvent(event)) { + event.preventDefault(); + if (isSome(hoveredItem.value)) { + setSelected(hoveredItem.value.value); + } else { + nextTick(closeDropdown); + } + } else if (isArrowUpEvent(event)) { + event.preventDefault(); + onArrowPress(true); + } else if (isArrowDownEvent(event)) { + event.preventDefault(); + onArrowPress(false); + } else if (isEscEvent(event)) { + event.preventDefault(); + nextTick(closeDropdown); + } + }; +} + +type OnKeydown = ReturnType<typeof getOnKeydown>; + +function getGenerateItem<T>( + itemsRef: Ref<HTMLElement[]>, + length: Ref<number>, + onKeydown: OnKeydown, + setSelected: SetSelected<T>, + setHovered: SetHovered<T>, + slots: Slots +) { + return function generateItem(item: AutocompleteItem<T>, index: number): VNode { + return h( + BDropdownItem, + { + key: item.id, + ref: (el: unknown) => { + if (isHTMLElement(el)) { + itemsRef.value[index] = el; + } + }, + id: item.id, + isActive: item.isSelected, + tabindex: item.isSelected ? -1 : 0, + 'aria-selected': item.isSelected, + 'aria-label': `Option ${index + 1} of ${length.value}`, + class: { 'is-hovered': item.isHovered }, + onClick: () => setSelected(item), + onMouseenter: () => setHovered(item), + onKeydown + }, + () => (slots.default ? slots.default({ option: item, index }) : item.text) + ); + }; +} + +function generateHeaderItem(slots: Slots): VNode { + return h('li', { class: 'dropdown-item', tabindex: -1 }, slots.header && slots.header()); +} + +function generateFooterItem(slots: Slots): VNode { + return h('li', { class: 'dropdown-item', tabindex: -1 }, slots.footer && slots.footer()); +} + +function generateLoadingItem(slots: Slots): VNode { + return h('li', { tabindex: -1 }, [ + h(BDropdownItem, { tag: 'div' }, () => (slots.loading ? slots.loading() : 'Loading results...')) + ]); +} + +function generateEmptyItem(modelValue: string | undefined, slots: Slots) { + return h( + BDropdownItem, + { + class: 'is-disabled' + }, + () => + slots.empty + ? slots.empty({ searchValue: modelValue }) + : modelValue + ? `No results` + : `No results for ${modelValue}` + ); +} + +function defineAutocomplete<T>() { + return defineComponent({ + name: 'b-autocomplete', + props: { + ...StaticUseInputProps, + ...getEqPropsDefinition<T>(), + ...useThemePropsDefinition(DropdownThemeMap), + ...getUseModelPropsDefinition<string>(), + ...getUseModelPropsDefinition<T[], 'selectedItems', 'onUpdate:selectedItems'>( + 'selectedItems', + 'onUpdate:selectedItems' + ), + selectedItems: { + type: Array as PropType<T[]>, + required: true as const + }, + items: { + type: Array as PropType<T[]>, + default: constEmptyArray + }, + itemFilter: { + type: Function as PropType<FunctionN<[string], Predicate<T>>>, + required: false + }, + itemId: { + type: [String, Function] as PropType<Extractor<T>>, + default: 'id' + }, + itemText: { + type: [String, Function] as PropType<Extractor<T>>, + default: 'text' + }, + closeOnSelect: { + type: Boolean as PropType<boolean>, + default: true + }, + clearOnSelect: { + type: Boolean as PropType<boolean>, + default: true + }, + openOnFocus: { + type: Boolean as PropType<boolean>, + default: true + }, + onSelected: { + type: Function as PropType<FunctionN<[T], void>>, + required: false + } + }, + setup(props, { slots }) { + const { value: searchValue } = useProxy( + computed(() => props.modelValue ?? ''), + toRef(props, 'onUpdate:modelValue') + ); + const { value: selectedItems } = useProxy(toRef(props, 'selectedItems'), toRef(props, 'onUpdate:selectedItems')); + + const itemsRef = shallowRef([] as HTMLElement[]); + const filteredItems = computed(() => { + if (props.itemFilter) { + return props.items.filter(props.itemFilter(searchValue.value)); + } else { + const sv = searchValue.value.toLowerCase(); + const extract = props.itemText; + return props.items.filter(i => + ((extractProp(extract as Extractor<T>, i) as unknown) as string).toLowerCase().includes(sv) + ); + } + }); + onBeforeUpdate(() => { + itemsRef.value = []; + }); + const dropdown: Ref<InstanceType<typeof BDropdown> | null> = shallowRef(null); + function close() { + dropdown.value && dropdown.value.toggle.setOff(); + } + const hoveredItem = shallowRef(none as Option<AutocompleteItem<T>>); + const activeDescendentId = computed(() => + getActiveDescendentId(props.selectedItems, props.itemId as Extractor<T>) + ); + const autocompleteItems = computed(() => + getAutocompleteItems( + filteredItems.value, + selectedItems.value, + props.itemId as Extractor<T>, + props.itemText as Extractor<T>, + props.eq, + hoveredItem.value + ) + ); + const numberOfItems = computed(() => autocompleteItems.value.length); + const setSelected = getSetSelected(props as GetSetSelectedProps<T>, close, searchValue, selectedItems); + const setHovered = getSetHovered(hoveredItem, itemsRef); + const onKeydown = getOnKeydown(autocompleteItems, hoveredItem, close, setSelected, setHovered); + const generateItem = getGenerateItem(itemsRef, numberOfItems, onKeydown, setSelected, setHovered, slots); + return () => { + return h( + BDropdown, + { + ref: dropdown, + isMobileModal: false, + class: ['b-autocomplete', { 'is-expanded': props.isExpanded }] + }, + { + trigger: () => { + return h(BInput, { + modelValue: searchValue.value, + type: 'text', + size: props.size, + isLoading: props.isLoading, + isRounded: props.isRounded, + icon: props.icon, + maxlength: props.maxlength, + autocomplete: 'off', + placeholder: props.placeholder, + role: 'searchbox', + 'aria-activedescendant': activeDescendentId.value, + 'onUpdate:modelValue': (val: string) => { + searchValue.value = val; + }, + // onFocus: () => { + // nextTick().then(() => { + // if (props.openOnFocus && toggle.isOff.value) { + // toggle.setOn(); + // } + // }); + // }, + onBlur: props.onBlur, + onKeydown + }); + }, + default: () => { + let nodes: VNode[]; + if (props.isLoading) { + nodes = [generateLoadingItem(slots)]; + } else { + nodes = isEmpty(autocompleteItems.value) + ? [generateEmptyItem(searchValue.value, slots)] + : autocompleteItems.value.map(generateItem); + if (slots.header) { + nodes.unshift(generateHeaderItem(slots), h(BDropdownDivider)); + } + if (slots.footer) { + nodes.push(h(BDropdownDivider), generateFooterItem(slots)); + } + } + return nodes; + } + } + ); + }; + } + }); +} + +export const BAutocomplete = defineAutocomplete<unknown>(); diff --git a/node_modules/buetify/src/components/form/autocomplete/autocomplete.sass b/node_modules/buetify/src/components/form/autocomplete/autocomplete.sass new file mode 100755 index 0000000..3451680 --- /dev/null +++ b/node_modules/buetify/src/components/form/autocomplete/autocomplete.sass @@ -0,0 +1,33 @@ +$autocomplete-item-hover-color: $black !default +$autocomplete-item-hover-background-color: $background !default + +.b-autocomplete + position: relative + &.dropdown, + .dropdown-trigger + width: 100% + .dropdown-menu + display: block + min-width: 100% + max-width: 100% + &.is-opened-top + top: auto + bottom: 100% + .dropdown-content + overflow: auto + max-height: 200px + .dropdown-item + white-space: normal + overflow: hidden + &.is-hovered + background: $autocomplete-item-hover-background-color + color: $autocomplete-item-hover-color + &.is-disabled + opacity: 0.5 + cursor: not-allowed + &.is-small + @include control-small + &.is-medium + @include control-medium + &.is-large + @include control-large diff --git a/node_modules/buetify/src/components/form/autocomplete/index.ts b/node_modules/buetify/src/components/form/autocomplete/index.ts new file mode 100755 index 0000000..08c3206 --- /dev/null +++ b/node_modules/buetify/src/components/form/autocomplete/index.ts @@ -0,0 +1 @@ +export * from './BAutocomplete'; diff --git a/node_modules/buetify/src/components/form/checkbox/BCheckbox.ts b/node_modules/buetify/src/components/form/checkbox/BCheckbox.ts new file mode 100755 index 0000000..d346838 --- /dev/null +++ b/node_modules/buetify/src/components/form/checkbox/BCheckbox.ts @@ -0,0 +1,7 @@ +import './checkbox.sass'; +import '../sass/form.sass'; +import { useSelectionControl } from '../shared/useSelectionControl'; + +export const defineCheckbox = useSelectionControl('checkbox', 'checkbox', 'b-checkbox', 'b-checkbox checkbox'); + +export const BCheckbox = defineCheckbox<unknown>(); diff --git a/node_modules/buetify/src/components/form/checkbox/checkbox.sass b/node_modules/buetify/src/components/form/checkbox/checkbox.sass new file mode 100755 index 0000000..9d9b831 --- /dev/null +++ b/node_modules/buetify/src/components/form/checkbox/checkbox.sass @@ -0,0 +1,76 @@ +@import '../../../sass/helpers/functions' + +$checkbox-active-background-color: $primary !default +$checkbox-checkmark-color: $primary-invert !default + +.b-checkbox + &.checkbox + outline: none + display: inline-flex + align-items: center + @include unselectable + & + .checkbox + margin-left: 0.5em + input[type='checkbox'] + position: absolute + left: 0 + opacity: 0 + outline: none + z-index: -1 + + .check + width: 1.25em + height: 1.25em + flex-shrink: 0 + border-radius: $radius + border: 2px solid $grey + transition: background $speed-slow $easing + &:checked + .check + background: $checkbox-active-background-color url(checkmark($checkbox-checkmark-color)) no-repeat center center + border-color: $checkbox-active-background-color + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background: $color url(checkmark($color-invert)) no-repeat center center + border-color: $color + &:indeterminate + .check + background: $checkbox-active-background-color url(indeterminate($checkbox-checkmark-color)) no-repeat center center + border-color: $checkbox-active-background-color + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background: $color url(indeterminate($color-invert)) no-repeat center center + border-color: $color + .control-label + padding-left: 0.5em + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: findColorInvert($color) + &.is-#{$name} + &:hover + color: darken($color-invert, 10%) + &[disabled] + opacity: 0.5 + &:hover + input[type='checkbox'] + .check + border-color: $checkbox-active-background-color + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + border-color: $color + &:focus + input[type='checkbox'] + .check + box-shadow: 0 0 0.5em bulmaRgba($grey, 0.8) + input[type='checkbox']:checked + .check + box-shadow: 0 0 0.5em bulmaRgba($checkbox-active-background-color, 0.8) + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + box-shadow: 0 0 0.5em bulmaRgba($color, 0.8) + &.is-small + @include control-small + &.is-medium + @include control-medium + &.is-large + @include control-large diff --git a/node_modules/buetify/src/components/form/checkbox/index.ts b/node_modules/buetify/src/components/form/checkbox/index.ts new file mode 100755 index 0000000..eeb17f4 --- /dev/null +++ b/node_modules/buetify/src/components/form/checkbox/index.ts @@ -0,0 +1,5 @@ +import { BCheckbox, defineCheckbox } from './BCheckbox'; + +export { BCheckbox, defineCheckbox }; + +export default BCheckbox; diff --git a/node_modules/buetify/src/components/form/datepicker/BDatepicker.ts b/node_modules/buetify/src/components/form/datepicker/BDatepicker.ts new file mode 100755 index 0000000..9502259 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/BDatepicker.ts @@ -0,0 +1,644 @@ +import '../../pagination/pagination.sass'; +import '../../dropdown/dropdown.sass'; +import './datepicker.sass'; +import { IO } from 'fp-ts/es6/IO'; +import { useDisable, UseDisablePropsDefinition } from '../../../composables/disable'; +import { useEqRef } from '../../../composables/eqRef'; +import { useFieldData } from '../../../composables/fieldData'; +import { getUseInputPropsDefinition } from '../../../composables/input/useInput'; +import { useProxy } from '../../../composables/proxy/useProxy'; +import { DateEvent, DEFAULT_DAY_NAMES, DEFAULT_MONTH_NAMES, EventIndicator, MonthNumber } from './shared'; +import { addDays, eqSerialDate, isDate, WeekdayNumber } from './utils'; +import { BInput } from '../input/BInput'; +import { + isArrowDownEvent, + isArrowLeftEvent, + isArrowRightEvent, + isArrowUpEvent, + isEnterEvent, + isEscEvent, + isSpaceEvent +} from '../../../utils/eventHelpers'; +import { head, isNonEmpty, range } from 'fp-ts/lib/Array'; +import { constant, FunctionN } from 'fp-ts/lib/function'; +import { alt, chain, fromNullable, getEq, isNone, isSome, Option, some } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import BDropdown, { BDropdownPropsDefinition } from '../../dropdown/BDropdown'; +import BDatepickerTable from './BDatepickerTable'; +import BField from '../field/BField'; +import { BSelect, SelectItem } from '../select/BSelect'; +import { + computed, + onUnmounted, + onMounted, + PropType, + VNode, + defineAsyncComponent, + defineComponent, + h, + ComponentOptions, + FunctionalComponent, + ExtractPropTypes, + shallowRef, + SetupContext, + Ref, + watch, + toRef +} from 'vue'; +import { constEmptyArray, isString, toggleListItem } from '../../../utils/helpers'; + +type Dropdown = InstanceType<typeof BDropdown>; + +type Component = ComponentOptions | FunctionalComponent; + +export type DatepickerPosition = 'is-top-right' | 'is-top-left' | 'is-bottom-left'; + +export interface DatepickerIcons { + next: Component; + previous: Component; + calendar: Component; +} + +const DEFAULT_DATEPICKER_ICONS: DatepickerIcons = { + previous: defineAsyncComponent(() => import('../../icons/angleLeft')), + next: defineAsyncComponent(() => import('../../icons/angleRight')), + calendar: defineAsyncComponent(() => import('../../icons/calendar')) +}; + +export function getDatepickerIcons(icons: Partial<DatepickerIcons>): DatepickerIcons { + return { + ...DEFAULT_DATEPICKER_ICONS, + ...icons + }; +} + +const BDatepickerPropsDefinition = { + ...BDropdownPropsDefinition, + ...UseDisablePropsDefinition, + ...getUseInputPropsDefinition<Date | Date[]>(), + modelValue: { + type: [Array, Date] as PropType<Date | Date[]> + }, + 'onUpdate:modelValue': { + type: Function as PropType<FunctionN<[Date | Date[]], void>>, + required: true as const + }, + year: { + type: Number, + default: new Date().getFullYear() + }, + 'onUpdate:year': { + type: Function as PropType<FunctionN<[number], void>>, + required: false + }, + month: { + type: Number as PropType<MonthNumber>, + default: new Date().getMonth() as MonthNumber + }, + 'onUpdate:month': { + type: Function as PropType<FunctionN<[MonthNumber], void>>, + required: false + }, + dayNames: { + type: Array as PropType<string[]>, + default: constant(DEFAULT_DAY_NAMES) + }, + monthNames: { + type: Array as PropType<string[]>, + default: constant(DEFAULT_MONTH_NAMES) + }, + firstDayOfWeek: { + type: Number as PropType<WeekdayNumber>, + default: 0 as const + }, + events: { + type: Array as PropType<DateEvent[]>, + default: constEmptyArray + }, + minDate: { + type: Date as PropType<Date>, + required: false + }, + maxDate: { + type: Date as PropType<Date>, + required: false + }, + isDisabled: { + type: Boolean, + default: false + }, + unselectableDates: { + type: Array as PropType<Date[]>, + default: constEmptyArray + }, + unselectableDaysOfWeek: { + type: Array as PropType<number[]>, + default: constEmptyArray + }, + selectableDates: { + type: Object as PropType<Date[]> + }, + showWeekNumber: { + type: Boolean as PropType<boolean>, + default: false as const + }, + isMultiple: { + type: Boolean as PropType<boolean>, + default: false + }, + placeholder: { + type: String as PropType<string> + }, + useMobileNative: { + type: Boolean as PropType<boolean>, + default: false + }, + position: { + type: String as PropType<DatepickerPosition> + }, + indicators: { + type: String as PropType<EventIndicator>, + default: 'bars' as const + }, + yearsRange: { + type: (Array as unknown) as PropType<[number, number]>, + default: constant([-5, 3] as const) + }, + closeOnSelect: { + type: Boolean as PropType<boolean>, + default: true + }, + isReadonly: { + type: Boolean as PropType<boolean>, + default: true + }, + useNativeValidation: { + type: Boolean as PropType<boolean>, + default: false + }, + // openOnFocus: { + // type: Boolean as PropType<boolean>, + // default: true + // }, + icons: { + type: Object as PropType<DatepickerIcons>, + default: constant(DEFAULT_DATEPICKER_ICONS) + } +}; + +export type BDatepickerProps = ExtractPropTypes<typeof BDatepickerPropsDefinition>; + +function useNative(props: BDatepickerProps) { + return props.useMobileNative && !props.isInline; +} + +const useFormattedDate = Intl.DateTimeFormat('default', { + year: 'numeric', + month: 'numeric', + day: 'numeric' +}).format; + +function useFormattedModelValue(modelValue?: Date | Date[]) { + return Array.isArray(modelValue) + ? modelValue.map(useFormattedDate).join(', ') + : modelValue + ? useFormattedDate(modelValue) + : null; +} + +function parseInputString(str: string): Date[] { + const splits = str.split(',').map(s => s.trim()); + return splits.map(s => new Date(s)).filter(d => isDate(d) && !isNaN(d.getTime())); +} + +function generateInput(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode { + const isMobile = useNative(props); + return h(BInput, { + max: props.maxDate ? useFormattedDate(props.maxDate) : null, + min: props.minDate ? useFormattedDate(props.minDate) : null, + autocomplete: 'off', + type: isMobile ? 'date' : 'text', + modelValue: useFormattedModelValue(data.modelValue.value), + 'onUpdate:modelValue': (val: string) => { + data.modelValue.value = parseInputString(val); + }, + placeholder: props.placeholder, + size: props.size, + icon: props.icons.calendar, + isRounded: props.isRounded, + isDisabled: props.isDisabled, + isReadonly: props.isReadonly, + isLoading: props.isLoading, + useNativeValidation: props.useNativeValidation + // onFocus: () => { + // if (!isMobile && props.openOnFocus && toggle) { + // if (toggle.isOff.value) { + // console.log('focus-set-on') + // toggle.setOn(); + // Date.now() + // } + // } + // } + }); +} + +function generateButton(props: BDatepickerProps, data: BDatepickerData, isNext: boolean): VNode { + return h( + 'button', + { + class: isNext ? 'pagination-next datepicker-next' : 'pagination-previous datepicker-previous', + disabled: data.isDisabled, + onClick: isNext ? data.nextMonth : data.previousMonth, + onKeydown: (e: KeyboardEvent) => { + if (isEnterEvent(e) || isSpaceEvent(e)) { + e.preventDefault(); + isNext ? data.nextMonth() : data.previousMonth(); + } + } + }, + [ + h(isNext ? props.icons.next : props.icons.previous, { + variant: 'is-link', + isThemeable: false + }) + ] + ); +} + +function generateYearSelect(props: BDatepickerProps, data: BDatepickerData): VNode { + return h(BSelect, { + items: data.years, + modelValue: data.year.value, + isDisabled: data.isDisabled, + size: props.size, + 'onUpdate:modelValue': data.setYear + }); +} + +function generateMonthSelect(props: BDatepickerProps, data: BDatepickerData): VNode { + return h(BSelect, { + items: data.months, + isDisabled: data.isDisabled, + size: props.size, + modelValue: data.month.value, + 'onUpdate:modelValue': data.setMonth + }); +} + +function generateSelects(props: BDatepickerProps, data: BDatepickerData): VNode { + return h('div', { class: 'pagination-list' }, [ + h(BField, { class: 'is-marginless' }, () => [generateMonthSelect(props, data), generateYearSelect(props, data)]) + ]); +} + +function generateDefaultHeaderContents(props: BDatepickerProps, data: BDatepickerData): VNode { + return h('div', { class: ['pagination field is-centered', props.size] }, [ + generateButton(props, data, false), + generateSelects(props, data), + generateButton(props, data, true) + ]); +} + +function generateHeader(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode { + return h( + 'header', + { class: 'datepicker-header' }, + context.slots.header ? context.slots.header(data) : [generateDefaultHeaderContents(props, data)] + ); +} + +function generateDatepickerTable(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode { + return h(BDatepickerTable, { + modelValue: data.modelValue.value, + 'onUpdate:modelValue': (val: Date | Date[]) => { + data.modelValue.value = val; + }, + focusedDate: data.focusedDate.value, + 'onUpdate:focusedDate': (val: Option<Date>) => { + data.focusedDate.value = val; + }, + dayNames: props.dayNames, + monthNames: props.monthNames, + firstDayOfWeek: props.firstDayOfWeek, + minDate: props.minDate, + maxDate: props.maxDate, + month: data.month.value, + year: data.year.value, + isDisabled: data.isDisabled, + unselectableDates: props.unselectableDates, + unselectableDaysOfWeek: props.unselectableDaysOfWeek, + selectableDates: props.selectableDates, + events: props.events, + indicators: props.indicators, + showWeekNumber: props.showWeekNumber + }); +} + +function generateFooter(context: SetupContext): VNode { + return h('footer', { class: 'datepicker-footer' }, context.slots.footer && context.slots.footer()); +} + +function generateCalendar(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode { + return h( + 'section', + { + class: 'datepicker-content', + 'aria-label': 'Datepicker calendar' + }, + [generateDatepickerTable(props, context, data)] + ); +} + +function generateDatepickerBody(props: BDatepickerProps, context: SetupContext, data: BDatepickerData): VNode { + const nodes = [generateHeader(props, context, data), generateCalendar(props, context, data)]; + if (context.slots.footer) { + nodes.push(generateFooter(context)); + } + return h('div', nodes); +} + +function generateDropdown( + props: BDatepickerProps, + context: SetupContext, + data: BDatepickerData, + dropdown: Ref<Dropdown | null> +): VNode { + return h( + BDropdown, + { + ref: dropdown, + position: props.position, + isDisabled: props.isDisabled, + isInline: props.isInline + }, + { + trigger: () => { + return generateInput(props, context, data); + }, + default: () => generateDatepickerBody(props, context, data) + } + ); +} + +interface BDatepickerData { + month: Ref<MonthNumber>; + year: Ref<number>; + nextMonth: IO<void>; + previousMonth: IO<void>; + setYear: FunctionN<[string | number], void>; + setMonth: FunctionN<[string | number], void>; + months: SelectItem<number>[]; + years: SelectItem<number>[]; + isDisabled: boolean; + focusedDate: Ref<Option<Date>>; + modelValue: Ref<Date | Date[] | undefined>; +} + +function getMonths(props: BDatepickerProps, focusedMonth: MonthNumber): SelectItem<number>[] { + return props.monthNames.map((month: string, index: number) => ({ + value: index, + text: month, + isDisabled: false, + isSelected: focusedMonth === index + })); +} + +function getYears(props: BDatepickerProps, focusedYear: number): SelectItem<number>[] { + const currentYear = new Date().getFullYear(); + return range(props.yearsRange[0], props.yearsRange[1]) + .map(inc => currentYear + inc) + .map(year => ({ + value: year, + text: year.toString(), + isDisabled: false, + isSelected: focusedYear === year + })); +} + +function getSetPreviousMonth(props: BDatepickerProps, month: Ref<MonthNumber>, year: Ref<number>) { + return (e?: Event) => { + if (e) { + e.preventDefault(); + } + if (!props.isDisabled) { + if (month.value > 0) { + month.value = (month.value - 1) as MonthNumber; + } else { + month.value = 11; + year.value = year.value - 1; + } + } + }; +} + +function getSetNextMonth(props: BDatepickerProps, month: Ref<MonthNumber>, year: Ref<number>) { + return (e?: Event) => { + if (e) { + e.preventDefault(); + } + if (!props.isDisabled) { + const mv = month.value; + if (mv < 11) { + month.value = (mv + 1) as MonthNumber; + } else { + month.value = 0; + year.value = year.value + 1; + } + } + }; +} + +function getSetMonth(monthRef: Ref<MonthNumber>) { + return (month: number | string) => { + if (isString(month)) { + const newVal = fromNullable(parseInt(month, 10)); + if (isSome(newVal)) { + monthRef.value = newVal.value as MonthNumber; + } + } else { + monthRef.value = month as MonthNumber; + } + }; +} + +function getSetYear(yearRef: Ref<number>) { + return (year: number | string) => { + if (isString(year)) { + const newVal = fromNullable(parseInt(year, 10)); + if (isSome(newVal)) { + yearRef.value = newVal.value; + } + } else { + yearRef.value = year; + } + }; +} + +const toggleSerialDate = toggleListItem(eqSerialDate); + +export default defineComponent({ + name: 'b-datepicker', + props: BDatepickerPropsDefinition, + setup(props, context) { + const fieldData = useFieldData(); + const isDisabled = useDisable(props); + + const dropdown: Ref<null | Dropdown> = shallowRef(null); + + const internalValue = shallowRef(props.modelValue); + + watch( + () => props.modelValue, + newVal => { + internalValue.value = newVal; + } + ); + + const modelValue = computed({ + get() { + return internalValue.value; + }, + set(val?: Date | Date[]) { + if (!val) { + return; + } + if ((Array.isArray(val) && props.isMultiple) || isDate(val)) { + props['onUpdate:modelValue'](val); + internalValue.value = val; + } else if (props.isMultiple && isDate(val)) { + const newVal = toggleSerialDate( + val, + internalValue.value == undefined + ? [] + : Array.isArray(internalValue.value) + ? internalValue.value + : [internalValue.value] + ); + props['onUpdate:modelValue'](newVal); + internalValue.value = newVal; + } else if (Array.isArray(val) && isNonEmpty(val)) { + props['onUpdate:modelValue'](val[0]); + internalValue.value = val[0]; + } + if (props.closeOnSelect) { + dropdown.value && dropdown.value.toggle.setOff(); + } + } + }); + + const focusedDate = useEqRef(getEq(eqSerialDate))( + pipe( + fromNullable(props.modelValue), + chain(v => (Array.isArray(v) ? head(v) : some(v))), + alt(() => some(new Date())) + ) + ); + + const { value: month } = useProxy(toRef(props, 'month'), toRef(props, 'onUpdate:month')); + const { value: year } = useProxy(toRef(props, 'year'), toRef(props, 'onUpdate:year')); + + const nextMonth = getSetNextMonth(props, month, year); + const previousMonth = getSetPreviousMonth(props, month, year); + const setMonth = getSetMonth(month); + const setYear = getSetYear(year); + + function onKeydown(e: KeyboardEvent) { + if (dropdown.value === undefined || dropdown.value?.$el === undefined || !dropdown.value.$el.contains(e.target)) { + return; + } + if (isEscEvent(e)) { + dropdown.value && dropdown.value.toggle.setOff(); + return; + } + const fd = pipe( + focusedDate.value, + alt(() => + pipe( + fromNullable(modelValue.value), + chain(v => (Array.isArray(v) ? head(v) : some(v))) + ) + ) + ); + if (isNone(fd)) { + return; + } + if (isEnterEvent(e) || isSpaceEvent(e)) { + e.preventDefault(); + modelValue.value = fd.value; + } else if (isArrowUpEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, -7)); + } else if (isArrowRightEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, 1)); + } else if (isArrowDownEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, 7)); + } else if (isArrowLeftEvent(e)) { + e.preventDefault(); + focusedDate.value = some(addDays(fd.value, -1)); + } + } + + onMounted(() => { + if (typeof window !== 'undefined') { + document.addEventListener('keyup', onKeydown); + } + }); + + onUnmounted(() => { + if (typeof window !== 'undefined') { + document.removeEventListener('keyup', onKeydown); + } + }); + + watch( + focusedDate, + fd => { + const m = month.value; + const y = year.value; + if (isSome(fd)) { + const fdValue = fd.value; + const nMonth = fdValue.getMonth() as MonthNumber; + if (nMonth !== m) { + month.value = nMonth; + } + const nYear = fdValue.getFullYear(); + if (nYear !== y) { + year.value = nYear; + } + } + }, + { + immediate: true + } + ); + + return () => { + const data: BDatepickerData = { + modelValue, + month, + year, + isDisabled: isDisabled.value, + focusedDate: focusedDate, + nextMonth, + previousMonth, + setMonth, + setYear, + months: getMonths(props, month.value), + years: getYears(props, year.value) + }; + return h( + 'article', + { + class: [ + 'b-datepicker control', + props.size, + { 'is-expanded': props.isExpanded || fieldData.attrs.isExpanded.value } + ] + }, + [useNative(props) ? generateInput(props, context, data) : generateDropdown(props, context, data, dropdown)] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/form/datepicker/BDatepickerTable.ts b/node_modules/buetify/src/components/form/datepicker/BDatepickerTable.ts new file mode 100755 index 0000000..b649d68 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/BDatepickerTable.ts @@ -0,0 +1,206 @@ +import './datepicker.sass'; +import { DateEvent, DEFAULT_DAY_NAMES, DEFAULT_MONTH_NAMES, MonthNumber } from './shared'; +import { + addDays, + getDatesInWeek, + getEndOfMonth, + getEndOfWeek, + getStartOfMonth, + getStartOfWeek, + isDate, + isOnOrAfterDate, + isOnOrBeforeDate, + isWithinWeek, + WeekdayNumber +} from './utils'; +import { constEmptyArray } from '../../../utils/helpers'; +import { isEmpty, rotate } from 'fp-ts/lib/Array'; +import { constant, FunctionN } from 'fp-ts/lib/function'; +import { fromNullable, isNone, none, Option } from 'fp-ts/lib/Option'; +import { defineComponent, PropType, VNode, ExtractPropTypes, h, computed, Ref } from 'vue'; +import BDatepickerTableRow from './BDatepickerTableRow'; + +export const BDatepickerTablePropsDefinition = { + modelValue: { + type: [Array, Date] as PropType<Date | Date[]> + }, + 'onUpdate:modelValue': { + type: Function as PropType<FunctionN<[Date | Date[]], void>>, + required: true as const + }, + focusedDate: { + type: Object as PropType<Option<Date>>, + required: true as const + }, + 'onUpdate:focusedDate': { + type: Function as PropType<FunctionN<[Option<Date>], unknown>>, + required: true as const + }, + month: { + type: Number as PropType<MonthNumber>, + required: true as const + }, + year: { + type: Number, + required: true as const + }, + dayNames: { + type: Array as PropType<string[]>, + default: constant(DEFAULT_DAY_NAMES) + }, + monthNames: { + type: Array as PropType<string[]>, + default: constant(DEFAULT_MONTH_NAMES) + }, + firstDayOfWeek: { + type: Number as PropType<WeekdayNumber>, + default: 0 as const + }, + events: { + type: Array as PropType<DateEvent[]>, + default: constEmptyArray + }, + indicators: { + type: String as PropType<'dots' | 'bars'>, + required: true as const + }, + minDate: { + type: Date as PropType<Date>, + required: false + }, + maxDate: { + type: Date as PropType<Date>, + required: false + }, + isDisabled: { + type: Boolean, + default: false + }, + unselectableDates: { + type: Array as PropType<Date[]>, + default: constEmptyArray + }, + unselectableDaysOfWeek: { + type: Array as PropType<number[]>, + default: constEmptyArray + }, + selectableDates: { + type: Object as PropType<Date[]> + }, + showWeekNumber: { + type: Boolean as PropType<boolean>, + default: false as const + } +}; + +export type BDatepickerTableProps = ExtractPropTypes<typeof BDatepickerTablePropsDefinition>; + +interface WeekData { + week: Date[]; + weekNumber: number; + events: DateEvent[]; +} + +function getWeeksWithinMonth(props: BDatepickerTableProps) { + const startOfMonth = getStartOfMonth(new Date(props.year, props.month + 1, 0)); + const endOfCalendar = getEndOfWeek(getEndOfMonth(startOfMonth), props.firstDayOfWeek); + const weeks: Date[][] = []; + let date = getStartOfWeek(startOfMonth, props.firstDayOfWeek); + + while (isOnOrBeforeDate(date, endOfCalendar)) { + weeks.push(getDatesInWeek(date, props.firstDayOfWeek)); + date = addDays(date, 7); + } + return weeks; +} + +function getEventsWithinWeek(props: BDatepickerTableProps, week: Date[]) { + return props.events.filter(event => { + const eventDate = isDate(event) ? event : event.date; + return isWithinWeek(week[0], eventDate, props.firstDayOfWeek); + }); +} + +function getWeeks(props: BDatepickerTableProps) { + return getWeeksWithinMonth(props).map((week, weekNumber) => ({ + week, + weekNumber, + events: getEventsWithinWeek(props, week) + })); +} + +function generateTableHeader(dayNames: string[]) { + return h('thead', { class: 'datepicker-header' }, [ + h( + 'tr', + dayNames.map(day => h('th', { key: day, class: 'datepicker-cell' }, day)) + ) + ]); +} + +function getGenerateTableRow(props: BDatepickerTableProps, focusedDate: Ref<Option<Date>>) { + return function generateTableRow(weekData: WeekData): VNode { + return h(BDatepickerTableRow, { + key: weekData.weekNumber, + modelValue: props.modelValue, + 'onUpdate:modelValue': props['onUpdate:modelValue'], + focusedDate: focusedDate.value, + 'onUpdate:focusedDate': (val: Option<Date>) => { + focusedDate.value = val; + }, + week: weekData.week, + weekNumber: weekData.weekNumber, + month: props.month, + minDate: fromNullable(props.minDate), + maxDate: fromNullable(props.maxDate), + unselectableDates: props.unselectableDates, + unselectableDaysOfWeek: props.unselectableDaysOfWeek, + selectableDates: fromNullable(props.selectableDates), + events: weekData.events, + indicators: props.indicators + }); + }; +} + +function generateTableBody(props: BDatepickerTableProps, focusedDate: Ref<Option<Date>>): VNode { + return h( + 'tbody', + { + class: ['datepicker-body', { 'has-events': !isEmpty(props.events) }] + }, + getWeeks(props).map(getGenerateTableRow(props, focusedDate)) + ); +} + +export default defineComponent({ + name: 'b-datepicker-table', + props: BDatepickerTablePropsDefinition, + setup(props) { + const focusedDate = computed({ + get() { + return props.focusedDate; + }, + set(date: Option<Date>) { + if (isNone(date)) { + props['onUpdate:focusedDate'](date); + } else if (props.minDate && props.maxDate) { + props['onUpdate:focusedDate']( + isOnOrAfterDate(date.value, props.minDate) && isOnOrBeforeDate(date.value, props.maxDate) ? date : none + ); + } else if (props.minDate) { + props['onUpdate:focusedDate'](isOnOrAfterDate(date.value, props.minDate) ? date : none); + } else if (props.maxDate) { + props['onUpdate:focusedDate'](isOnOrBeforeDate(date.value, props.maxDate) ? date : none); + } else { + props['onUpdate:focusedDate'](date); + } + } + }); + return () => { + return h('table', { class: 'datepicker-table' }, [ + generateTableHeader(rotate(-props.firstDayOfWeek)(props.dayNames)), + generateTableBody(props, focusedDate) + ]); + }; + } +}); diff --git a/node_modules/buetify/src/components/form/datepicker/BDatepickerTableCell.ts b/node_modules/buetify/src/components/form/datepicker/BDatepickerTableCell.ts new file mode 100755 index 0000000..be99880 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/BDatepickerTableCell.ts @@ -0,0 +1,110 @@ +import './datepicker.sass'; +import { FunctionN } from 'fp-ts/lib/function'; +import { toggleListItem } from '../../../utils/helpers'; +import { DateCell, DetailedDateEvent, EventIndicator } from './shared'; +import { eqSerialDate, isSameDay } from './utils'; +import { exists, getEq, Option, some } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { PropType, VNode, defineComponent, shallowRef, h, watch, onMounted } from 'vue'; + +function generateEvents(events: DetailedDateEvent[]): VNode { + return h( + 'div', + { class: 'events' }, + events.map((event, index) => + h('div', { + key: index, + class: ['event', event.variant] + }) + ) + ); +} + +const toggleSerialDate = toggleListItem(eqSerialDate); + +const eqOptionSerialDate = getEq(eqSerialDate); + +export default defineComponent({ + name: 'b-datepicker-table-cell', + props: { + modelValue: { + type: [Date, Array] as PropType<Date | Date[]> + }, + 'onUpdate:modelValue': { + type: Function as PropType<FunctionN<[Date | Date[]], void>>, + required: true + }, + focusedDate: { + type: Object as PropType<Option<Date>>, + required: true + }, + 'onUpdate:focusedDate': { + type: Function as PropType<FunctionN<[Option<Date>], void>>, + required: true + }, + indicators: { + type: String as PropType<EventIndicator>, + required: true + }, + cell: { + type: Object as PropType<DateCell>, + required: true + } + }, + setup(props) { + const buttonRef = shallowRef((null as unknown) as HTMLElement); + + function onClick(e?: MouseEvent) { + e && e.preventDefault(); + const currentValue = props.modelValue; + props['onUpdate:modelValue']( + Array.isArray(currentValue) ? toggleSerialDate(props.cell.date, currentValue) : props.cell.date + ); + } + + const onFocus = () => { + props['onUpdate:focusedDate'](some(props.cell.date)); + }; + + onMounted(() => + watch( + () => props.focusedDate, + (newVal, oldVal) => { + if ( + ((oldVal && !eqOptionSerialDate.equals(newVal, oldVal)) || oldVal === undefined) && + buttonRef.value && + pipe( + newVal, + exists(d => isSameDay(d, props.cell.date)) + ) && + document.activeElement !== buttonRef.value + ) { + buttonRef.value.focus({ preventScroll: true }); + } + }, + { + immediate: true + } + ) + ); + + return () => { + return h('td', [ + h( + 'button', + { + ref: buttonRef, + class: ['datepicker-cell', props.cell.classes, props.indicators], + disabled: props.cell.isDisabled, + tabindex: props.cell.isDisabled || props.cell.isSelected ? -1 : 0, + 'aria-label': props.cell.ariaLabel, + onClick, + onFocus, + onMouseenter: onFocus + }, + [props.cell.date.getDate(), props.cell.hasEvents ? generateEvents(props.cell.events) : undefined] + ) + ]); + }; + } +}); diff --git a/node_modules/buetify/src/components/form/datepicker/BDatepickerTableRow.ts b/node_modules/buetify/src/components/form/datepicker/BDatepickerTableRow.ts new file mode 100755 index 0000000..6df9b52 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/BDatepickerTableRow.ts @@ -0,0 +1,229 @@ +import './datepicker.sass'; +import BDatepickerTableCell from './BDatepickerTableCell'; +import { DateCell, DateEvent, DetailedDateEvent } from './shared'; +import { elemSerialDate, isDate, isOnOrAfterDate, isOnOrBeforeDate, isSameDay } from './utils'; +import { constEmptyArray, constNone } from '../../../utils/helpers'; +import { isNonEmpty } from 'fp-ts/lib/Array'; +import { constTrue, FunctionN, identity } from 'fp-ts/lib/function'; +import { fold, Option } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { defineComponent, PropType, VNode, computed, Ref, ExtractPropTypes, h } from 'vue'; + +export const BDatepickerTableRowPropsDefinition = { + modelValue: { + type: [Date, Array] as PropType<Date | Date[]> + }, + 'onUpdate:modelValue': { + type: Function as PropType<FunctionN<[Date | Date[]], void>>, + required: true as const + }, + focusedDate: { + type: Object as PropType<Option<Date>>, + required: true as const + }, + 'onUpdate:focusedDate': { + type: Function as PropType<FunctionN<[Option<Date>], unknown>>, + required: true as const + }, + showWeekNumber: { + type: Boolean as PropType<boolean>, + default: false as const + }, + weekNumber: { + type: Number as PropType<number>, + required: true as const + }, + week: { + type: Array as PropType<Date[]>, + required: true as const + }, + month: { + type: Number as PropType<number>, + required: true as const + }, + minDate: { + type: Object as PropType<Option<Date>>, + required: true as const + }, + maxDate: { + type: Object as PropType<Option<Date>>, + required: true as const + }, + isDisabled: { + type: Boolean as PropType<boolean>, + default: false as const + }, + unselectableDates: { + type: Array as PropType<Date[]>, + default: constEmptyArray + }, + unselectableDaysOfWeek: { + type: Array as PropType<number[]>, + default: constEmptyArray + }, + selectableDates: { + type: Object as PropType<Option<Date[]>>, + default: constNone + }, + events: { + type: Array as PropType<DateEvent[]>, + default: constEmptyArray + }, + indicators: { + type: String as PropType<'dots' | 'bars'>, + required: true as const + } +}; + +export type BDatePickerTableRowProps = ExtractPropTypes<typeof BDatepickerTableRowPropsDefinition>; + +function getIsAfterMinDate(props: BDatePickerTableRowProps) { + return function isAfterMinDate(date: Date): boolean { + return pipe( + props.minDate, + fold(constTrue, d => isOnOrAfterDate(date, d)) + ); + }; +} + +function getIsBeforeMaxDate(props: BDatePickerTableRowProps) { + return function isBeforeMaxDate(date: Date): boolean { + return pipe( + props.maxDate, + fold(constTrue, d => isOnOrBeforeDate(date, d)) + ); + }; +} + +function getIsWithinMonth(props: BDatePickerTableRowProps) { + return function isWithinMonth(date: Date): boolean { + return date.getMonth() === props.month; + }; +} + +function getIsEnabled(props: BDatePickerTableRowProps) { + return function isEnabled(date: Date): boolean { + return ( + !elemSerialDate(date, props.unselectableDates) && + pipe( + props.selectableDates, + fold(constTrue, dates => elemSerialDate(date, dates)) + ) + ); + }; +} + +function getIsOnSelectableDayOfWeek(props: BDatePickerTableRowProps) { + return function isOnSelectableDayOfWeek(date: Date): boolean { + return !props.unselectableDaysOfWeek.includes(date.getDay()); + }; +} + +function getDatePredicates(props: BDatePickerTableRowProps) { + const isAfterMinDate = getIsAfterMinDate(props); + const isBeforeMaxDate = getIsBeforeMaxDate(props); + const isWithinMonth = getIsWithinMonth(props); + const isEnabled = getIsEnabled(props); + const isOnSelectableDayOfWeek = getIsOnSelectableDayOfWeek(props); + function isSelectedDate(date: Date): boolean { + return Array.isArray(props.modelValue) + ? props.modelValue.some(d => isSameDay(d, date)) + : props.modelValue + ? isSameDay(props.modelValue, date) + : false; + } + function isSelectableDate(date: Date): boolean { + return [ + isAfterMinDate(date), + isBeforeMaxDate(date), + isWithinMonth(date), + isEnabled(date), + isOnSelectableDayOfWeek(date) + ].every(identity); + } + return { + isAfterMinDate, + isBeforeMaxDate, + isWithinMonth, + isEnabled, + isOnSelectableDayOfWeek, + isSelectableDate, + isSelectedDate + }; +} + +type DatePredicates = ReturnType<typeof getDatePredicates>; + +function getDateClassesGenerator(props: BDatePickerTableRowProps, predicates: DatePredicates) { + const today = new Date(); + return function getDateClasses(date: Date | undefined | null, hasEvents = false) { + if (isDate(date)) { + const isSelectable = predicates.isSelectableDate(date); + return { + 'is-selected': predicates.isSelectedDate(date), + 'is-today': isSameDay(date, today), + 'is-selectable': isSelectable && !props.isDisabled, + 'is-unselectable': !isSelectable || props.isDisabled, + 'has-event': hasEvents + }; + } else { + return {}; + } + }; +} + +function generateWeekNumber(weekNumber: number): VNode { + return h('td', [`${weekNumber}`]); +} + +function getGenerateCell(props: BDatePickerTableRowProps) { + return function generateCell(cell: DateCell): VNode { + return h(BDatepickerTableCell, { + key: cell.date.toLocaleDateString(), + cell, + modelValue: props.modelValue, + 'onUpdate:modelValue': props['onUpdate:modelValue'], + focusedDate: props.focusedDate, + 'onUpdate:focusedDate': props['onUpdate:focusedDate'], + indicators: props.indicators + }); + }; +} + +export default defineComponent({ + name: 'b-datepicker-table-row', + props: BDatepickerTableRowPropsDefinition, + setup(props) { + const formattedEvents: Ref<DetailedDateEvent[]> = computed(() => + props.events.map(event => (isDate(event) ? { date: event, variant: 'is-primary' } : event)) + ); + const predicates = getDatePredicates(props); + const getDateClasses = getDateClassesGenerator(props, predicates); + const cells = computed(() => + props.week.map(date => { + const events = formattedEvents.value.filter(event => isSameDay(date, event.date)); + const hasEvents = isNonEmpty(events); + return { + date, + events, + hasEvents, + isSelected: predicates.isSelectedDate(date), + isDisabled: props.isDisabled || !predicates.isSelectableDate(date), + number: date.getDate(), + ariaLabel: date.toLocaleDateString(), + classes: getDateClasses(date, hasEvents) + }; + }) + ); + const generateCell = getGenerateCell(props); + return () => { + return h( + 'tr', + { class: 'datepicker-row' }, + props.showWeekNumber + ? [generateWeekNumber(props.weekNumber), ...cells.value.map(generateCell)] + : cells.value.map(generateCell) + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/form/datepicker/datepicker.sass b/node_modules/buetify/src/components/form/datepicker/datepicker.sass new file mode 100755 index 0000000..e083ae2 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/datepicker.sass @@ -0,0 +1,163 @@ +$datepicker-background-color: $white !default +$datepicker-radius: $radius !default +$datepicker-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default +$datepicker-header-color: $grey !default +$datepicker-today-border: solid 2px rgba($primary, 0.5) !default +$datepicker-item-color: $grey-dark !default +$datepicker-item-disabled-color: $grey-light !default +$datepicker-item-hover-color: $black !default +$datepicker-item-hover-background-color: $background !default +$datepicker-item-hover-border: solid 2px $datepicker-item-hover-background-color !default +$datepicker-item-selected-color: $link-invert !default +$datepicker-item-selected-background-color: $link !default + +.b-datepicker + font-size: 0.875rem + .dropdown, + .dropdown-trigger + width: 100% + // unset opacity when dropdown is disabled + .dropdown + &.is-disabled + opacity: 1 + .dropdown-item + font-size: inherit + .datepicker-header + padding-bottom: 0.5rem + padding-left: 0.25rem + padding-right: 0.25rem + margin-bottom: 0.5rem + border-bottom: 1px solid $grey-lighter + .datepicker-next, + .datepicker-previous + display: flex + flex-direction: column + justify-content: center + .datepicker-content + padding: 0 0.25rem + .datepicker-footer + margin-top: 0.5rem + padding: 0.5rem + border-top: 1px solid $grey-lighter + .datepicker-table + width: 100% + .datepicker-cell + text-align: center + vertical-align: middle + border-radius: $radius + padding: 0.5rem 0.75rem + .datepicker-header + .datepicker-cell + color: inherit + font-weight: $weight-semibold + .datepicker-body + .datepicker-row + display: table-row + .datepicker-months + display: inline-flex + flex-wrap: wrap + flex-direction: row + width: 17rem + .datepicker-cell + display: flex + align-items: center + justify-content: center + width: 33.33% + height: 2.5rem + .datepicker-cell + width: 100% + border: solid 2px transparent + &.is-unselectable + color: $datepicker-item-disabled-color + &.is-today + border: $datepicker-today-border + &.is-selectable + color: inherit + &:focus:not(.is-selected) + background-color: $datepicker-item-hover-background-color + border: $datepicker-item-hover-border + color: $datepicker-item-hover-color + cursor: pointer + &.is-within-hovered-range + &.is-first-hovered + background-color: $grey + color: $grey-lighter + border-bottom-right-radius: 0 + border-top-right-radius: 0 + &.is-within-hovered + background-color: $datepicker-item-hover-background-color + color: $datepicker-item-hover-color + border-radius: 0 + &.is-last-hovered + background-color: $grey + color: $grey-lighter + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &.is-selected + border: $datepicker-today-border + background-color: $datepicker-item-selected-background-color + color: $datepicker-item-selected-color + &.is-first-selected + background-color: $datepicker-item-selected-background-color + color: $datepicker-item-selected-color + border-bottom-right-radius: 0 + border-top-right-radius: 0 + &.is-within-selected + background-color: rgba($datepicker-item-selected-background-color, 0.5) + border-radius: 0 + &.is-last-selected + background-color: $datepicker-item-selected-background-color + color: $datepicker-item-selected-color + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &.is-nearby:not(.is-selected) + color: $grey-light + &.is-week-number + cursor: default + &.has-events + .datepicker-cell + padding: 0.3rem 0.75rem 0.75rem + &.has-event + position: relative + .events + bottom: .425rem + display: flex + justify-content: center + left: 0 + padding: 0 .35rem + position: absolute + width: 100% + .event + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + background-color: $color + &.dots .event + border-radius: 50% + height: .35em + margin: 0 .1em + width: .35em + + &.bars .event + height: .25em + width: 100% + + &.is-selected, + &.is-today + .events + bottom: calc(.425rem + 2px) + &.is-selected + overflow: hidden + .events .event + // Currently datepicker only uses primary coloring + // Ensure indicator is visible when selected + &.is-primary + background-color: lighten($primary, 15) + +mobile + font-size: 1rem + &.is-small + @include control-small + &.is-medium + @include control-medium + &.is-large + @include control-large diff --git a/node_modules/buetify/src/components/form/datepicker/index.ts b/node_modules/buetify/src/components/form/datepicker/index.ts new file mode 100755 index 0000000..b713dc9 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/index.ts @@ -0,0 +1,5 @@ +import BDatepicker from './BDatepicker'; + +export default BDatepicker; + +export { BDatepicker }; diff --git a/node_modules/buetify/src/components/form/datepicker/shared.ts b/node_modules/buetify/src/components/form/datepicker/shared.ts new file mode 100755 index 0000000..1673bc2 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/shared.ts @@ -0,0 +1,40 @@ +import { ColorVariant } from '../../../types/ColorVariants'; + +export type DateEvent = Date | DetailedDateEvent; + +export interface DetailedDateEvent { + date: Date; + variant: ColorVariant; +} + +export type EventIndicator = 'dots' | 'bars'; + +export const DEFAULT_DAY_NAMES = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'S']; + +export const DEFAULT_MONTH_NAMES = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' +]; + +export type MonthNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11; + +export interface DateCell { + date: Date; + number: number; + ariaLabel: string; + isDisabled: boolean; + isSelected: boolean; + events: DetailedDateEvent[]; + hasEvents: boolean; + classes: object; +} diff --git a/node_modules/buetify/src/components/form/datepicker/utils.ts b/node_modules/buetify/src/components/form/datepicker/utils.ts new file mode 100755 index 0000000..164ff80 --- /dev/null +++ b/node_modules/buetify/src/components/form/datepicker/utils.ts @@ -0,0 +1,132 @@ +import { elem } from 'fp-ts/lib/Array'; +import { Eq, fromEquals } from 'fp-ts/lib/Eq'; +import { fromCompare, geq, leq, Ord } from 'fp-ts/lib/Ord'; +import { Ordering } from 'fp-ts/lib/Ordering'; + +export function isDate(value: unknown): value is Date { + // from date-fns + return ( + value instanceof Date || (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]') + ); +} + +export function getStartOfDay(date: Date): Date { + const clone = new Date(date.getTime()); + clone.setHours(0, 0, 0, 0); + return clone; +} + +export function getEndOfDay(date: Date): Date { + const clone = new Date(date.getTime()); + clone.setHours(23, 59, 59, 999); + return clone; +} + +export function isSameDay(x: Date, y: Date): boolean { + return getStartOfDay(x).getTime() === getStartOfDay(y).getTime(); +} + +export function isBeforeDay(date: Date, isBefore: Date): boolean { + return date.getTime() < getStartOfDay(isBefore).getTime(); +} + +export function isAfterDay(date: Date, isAfter: Date): boolean { + return date.getTime() > getEndOfDay(isAfter).getTime(); +} + +function compareSerialDate(x: Date, y: Date): Ordering { + return isBeforeDay(x, y) ? -1 : isAfterDay(x, y) ? 1 : 0; +} + +export function isSameMonth(x: Date, y: Date): boolean { + return x.getFullYear() === y.getFullYear() && x.getMonth() === y.getMonth(); +} + +export const eqSerialDate: Eq<Date> = fromEquals(isSameDay); +export const ordSerialDate: Ord<Date> = fromCompare(compareSerialDate); + +export const isOnOrAfterDate = geq(ordSerialDate); + +export const isOnOrBeforeDate = leq(ordSerialDate); + +export const elemSerialDate = elem(ordSerialDate); + +export type WeekdayNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6; + +export function getStartOfMonth(date: Date): Date { + const clone = new Date(date.getTime()); + clone.setDate(1); + clone.setHours(0, 0, 0, 0); + return clone; +} + +export function getEndOfMonth(date: Date): Date { + const clone = new Date(date.getTime()); + const month = clone.getMonth(); + clone.setFullYear(clone.getFullYear(), month + 1, 0); + clone.setHours(23, 59, 59, 999); + return clone; +} + +export function getStartOfWeek(date: Date, weekStartsOn: WeekdayNumber = 0): Date { + const clone = new Date(date.getTime()); + const day = clone.getDay(); + const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + clone.setDate(clone.getDate() - diff); + clone.setHours(0, 0, 0, 0); + return clone; +} + +export function getEndOfWeek(date: Date, weekStartsOn: WeekdayNumber = 0): Date { + const clone = new Date(date.getTime()); + const day = clone.getDay(); + const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); + clone.setDate(clone.getDate() + diff); + clone.setHours(23, 59, 59, 999); + return clone; +} + +export function isWithinWeek(date: Date, secondDate: Date, weekStartsOn: WeekdayNumber = 0): boolean { + return ( + isOnOrAfterDate(date, getStartOfWeek(secondDate, weekStartsOn)) && + isOnOrBeforeDate(date, getEndOfWeek(secondDate, weekStartsOn)) + ); +} + +export function getDaysInMonth(date: Date): number { + const clone = new Date(date.getTime()); + const year = clone.getFullYear(); + const monthIndex = clone.getMonth(); + const lastDayOfMonth = new Date(0); + lastDayOfMonth.setFullYear(year, monthIndex + 1, 0); + lastDayOfMonth.setHours(0, 0, 0, 0); + return lastDayOfMonth.getDate(); +} + +export function addDays(date: Date, days: number): Date { + const clone = new Date(date.getTime()); + clone.setDate(clone.getDate() + days); + return clone; +} + +export function getDatesInWeek(date: Date, weekStartsOn: WeekdayNumber = 0): Date[] { + const dates = []; + let day = getStartOfWeek(date, weekStartsOn); + const end = getEndOfWeek(date, weekStartsOn); + while (isOnOrBeforeDate(day, end)) { + dates.push(day); + day = addDays(day, 1); + } + return dates; +} + +export function addMonths(date: Date, months: number): Date { + const clone = new Date(date.getTime()); + const newMonth = clone.getMonth() + months; + const dateWithDesiredMonth = new Date(0); + dateWithDesiredMonth.setFullYear(clone.getFullYear(), newMonth, 1); + dateWithDesiredMonth.setHours(0, 0, 0, 0); + const daysInMonth = getDaysInMonth(dateWithDesiredMonth); + clone.setMonth(newMonth, Math.min(daysInMonth, clone.getDate())); + return clone; +} diff --git a/node_modules/buetify/src/components/form/field/BField.ts b/node_modules/buetify/src/components/form/field/BField.ts new file mode 100755 index 0000000..aef73cf --- /dev/null +++ b/node_modules/buetify/src/components/form/field/BField.ts @@ -0,0 +1,229 @@ +import '../sass/tools.sass'; +import { constant } from 'fp-ts/lib/function'; +import { FieldDataAttrs, provideFieldData, ProvideFieldDataPropsDefinition } from '../../../composables/fieldData'; +import { DefaultThemePropsDefinition } from '../../../composables/theme'; +import { + h, + PropType, + VNode, + defineComponent, + computed, + ExtractPropTypes, + shallowRef, + watch, + Slots, + SetupContext +} from 'vue'; +import { AllColorsVariant } from '../../../types/ColorVariants'; +import { Classes } from '../../../utils/mergeClasses'; + +export type FieldPosition = 'is-left' | 'is-centered' | 'is-right'; + +function useRootClasses(props: BFieldProps): Classes { + return { + 'is-expanded': props.isExpanded, + 'is-horizontal': props.isHorizontal + }; +} + +function useFieldType(isGrouped: boolean, hasAddons: boolean): string { + return isGrouped ? 'is-grouped' : hasAddons ? 'has-addons' : ''; +} + +function useInnerFieldClasses(props: BFieldProps, fieldType: string): Classes { + const isGrouped = props.isGrouped; + const position = props.position; + return [ + fieldType, + { + 'flex-grow-1': props.isExpanded, + 'is-grouped-multiline': props.isGroupedMultiline, + 'is-horizontal': props.isHorizontal, + 'is-grouped-centered': isGrouped && position === 'is-centered', + 'is-grouped-right': isGrouped && position === 'is-right', + 'has-addons-centered': !isGrouped && position === 'is-centered', + 'has-addons-right': !isGrouped && position === 'is-right' + } + ]; +} + +export const BFieldPropsDefinition = { + ...DefaultThemePropsDefinition, + ...ProvideFieldDataPropsDefinition, + isGrouped: { + type: Boolean as PropType<boolean>, + default: false + }, + isGroupedMultiline: { + type: Boolean as PropType<boolean>, + default: false + }, + position: { + type: String as PropType<FieldPosition>, + default: 'is-left' + }, + isHorizontal: { + type: Boolean as PropType<boolean>, + default: false + }, + hasAddons: { + type: Boolean as PropType<boolean>, + default: true + }, + customLabelClass: { + type: String as PropType<string>, + default: '' + } +}; + +export type BFieldProps = ExtractPropTypes<typeof BFieldPropsDefinition>; + +function generateInnerLabel(fieldData: FieldDataAttrs, customClass: string): VNode { + return h( + 'label', + { + class: ['label', customClass], + id: fieldData.labelId.value, + for: fieldData.id.value + }, + + fieldData.label.value + ); +} + +function generateHorizontalLabel(fieldData: FieldDataAttrs, customClass: string, size: string): VNode { + return h('div', { class: ['field-label', size] }, [generateInnerLabel(fieldData, customClass)]); +} + +function generateLabel(isHorizontal: boolean, fieldData: FieldDataAttrs, customClass: string, size: string): VNode[] { + const label = fieldData.label.value; + if (isHorizontal && !!label) { + return [generateHorizontalLabel(fieldData, customClass, size)]; + } else if (!isHorizontal && !!label) { + return [generateInnerLabel(fieldData, customClass)]; + } else { + return []; + } +} + +function generateHelpMessage(isHorizontal: boolean, fieldDataAttrs: FieldDataAttrs): VNode | undefined { + return !isHorizontal && !!fieldDataAttrs.message.value + ? h('p', { + class: ['help', fieldDataAttrs.messageVariant.value], + innerHTML: fieldDataAttrs.message.value + }) + : undefined; +} + +function generateBody( + props: BFieldProps, + fieldData: FieldDataAttrs, + role: string, + hasInnerField: boolean, + fieldType: string, + slots: Slots +): VNode[] { + if (props.isHorizontal) { + return [ + h( + BFieldBody, // eslint-disable-line + { + class: { 'is-expanded': fieldData.isExpanded.value }, + message: fieldData.message.value, + variant: fieldData.messageVariant.value, + role + }, + slots.default + ) + ]; + } else if (hasInnerField) { + return [ + h( + 'div', + { + class: 'field-body' + }, + [ + h( + BField, // eslint-disable-line + { + hasAddons: false, + variant: fieldData.messageVariant.value, + class: useInnerFieldClasses(props, fieldType) + }, + slots.default + ) + ] + ) + ]; + } else { + return slots.default ? slots.default() : []; + } +} + +const BField = defineComponent({ + name: 'b-field', + props: BFieldPropsDefinition, + setup(props, { slots }) { + const field = shallowRef((null as unknown) as HTMLElement); + const fieldData = provideFieldData(props); + const role = computed(() => (props.isGrouped ? 'group' : '')); + const size = shallowRef(''); + watch(field, newVal => { + if (props.isHorizontal && newVal) { + // Bulma docs: .is-normal for any .input or .button + const elements = newVal.querySelectorAll('.input, .select, .button, .textarea'); + if (elements.length > 0) { + size.value = 'is-normal'; + } + } + }); + return () => { + const hasAddons = !!(props.hasAddons && !props.isHorizontal && slots.default && slots.default().length > 1); + const hasInnerField = props.isGrouped || props.isGroupedMultiline || hasAddons; + + const nodes: Array<VNode | undefined> = [ + ...generateLabel(props.isHorizontal, fieldData.attrs, props.customLabelClass, size.value), + ...generateBody( + props, + fieldData.attrs, + role.value, + hasInnerField, + useFieldType(props.isGrouped, hasAddons), + slots + ), + generateHelpMessage(props.isHorizontal, fieldData.attrs) + ]; + + return h( + 'div', + { + ref: field, + class: ['field', useRootClasses(props)], + role: role.value + }, + nodes + ); + }; + } +}); + +export interface BFieldBodyProps { + message?: string; + variant?: AllColorsVariant; + tag?: string; +} + +// eslint-disable-next-line +function BFieldBody(props: BFieldBodyProps, { attrs, slots }: SetupContext) { + const nodes = slots.default ? slots.default() : []; + return h( + props.tag ?? 'div', + { + class: 'field-body' + }, + nodes.map((element: VNode) => (element.el ? element : h(BField, props, constant(element)))) + ); +} + +export default BField; diff --git a/node_modules/buetify/src/components/form/field/index.ts b/node_modules/buetify/src/components/form/field/index.ts new file mode 100755 index 0000000..77e3b35 --- /dev/null +++ b/node_modules/buetify/src/components/form/field/index.ts @@ -0,0 +1,5 @@ +import BField from './BField'; + +export default BField; + +export { BField }; diff --git a/node_modules/buetify/src/components/form/index.ts b/node_modules/buetify/src/components/form/index.ts new file mode 100755 index 0000000..43898da --- /dev/null +++ b/node_modules/buetify/src/components/form/index.ts @@ -0,0 +1,9 @@ +export * from './autocomplete'; +export * from './checkbox'; +export * from './datepicker'; +export * from './field'; +export * from './input'; +export * from './numberInput'; +export * from './radio'; +export * from './select'; +export * from './switch'; diff --git a/node_modules/buetify/src/components/form/input/BInput.ts b/node_modules/buetify/src/components/form/input/BInput.ts new file mode 100755 index 0000000..6136f66 --- /dev/null +++ b/node_modules/buetify/src/components/form/input/BInput.ts @@ -0,0 +1,296 @@ +import '../sass/form.sass'; +import { getUseInputPropsDefinition, Input, useInput, UseInputProps } from '../../../composables/input/useInput'; +import { DefaultThemePropsDefinition, useTheme } from '../../../composables/theme/useTheme'; +import { Toggle } from '../../../composables/toggle'; +import { ColorVariant } from '../../../types/ColorVariants'; +import { SizeVariant } from '../../../types/SizeVariants'; +import { isNumber, isString } from '../../../utils/helpers'; +import { constant } from 'fp-ts/lib/function'; +import { VNode } from 'vue'; +import { DEFAULT_INPUT_ICONS, InputIcons } from '../shared/types'; +import { Component, defineComponent, PropType, shallowRef, h, Ref, computed, SetupContext } from 'vue'; + +export function getBInputPropsDefinition<T>() { + return { + ...getUseInputPropsDefinition<T>(), + ...DefaultThemePropsDefinition, + isLoading: { + type: Boolean as PropType<boolean>, + default: false + }, + hasCounter: { + type: Boolean, + default: true + }, + customInputClass: { + type: String, + default: '' + }, + inputIcons: { + type: Object as PropType<InputIcons>, + required: false, + default: constant(DEFAULT_INPUT_ICONS) + } + }; +} + +function getIconPosition(leftIcon: Component | undefined, rightIcon: Component | undefined): string { + if (leftIcon && rightIcon) { + return 'has-icons-left has-icons-right'; + } else if (rightIcon) { + return 'has-icons-right'; + } else if (leftIcon) { + return 'has-icons-left'; + } else { + return ''; + } +} + +function getRightIcon( + icons: InputIcons, + variant: ColorVariant, + usePasswordReveal: boolean, + passwordIsVisible: boolean +) { + if (usePasswordReveal) { + return passwordIsVisible ? icons.passwordVisible : icons.passwordInvisible; + } else { + switch (variant) { + case 'is-danger': + return icons.isDanger; + case 'is-info': + return icons.isInfo; + case 'is-success': + return icons.isSuccess; + case 'is-warning': + return icons.isWarning; + default: + return undefined; + } + } +} + +function generateLeftIcon(icon: Component, size: SizeVariant): VNode { + // eslint-disable-next-line + return h(icon as any, { + class: 'is-left', + size + }); +} + +function generateRightIcon( + icon: Component, + size: SizeVariant, + variant: ColorVariant, + usePasswordReveal: boolean, + passwordToggle: Toggle +): VNode { + // eslint-disable-next-line + return h(icon as any, { + class: ['is-right', { 'is-clickable': usePasswordReveal }], + variant, + size, + ...passwordToggle.attrs.value, + ...passwordToggle.listeners + }); +} + +function generateCounter(isFocused: boolean, valueLength: number, maxLength: number | string): VNode { + return h( + 'small', + { + class: ['help counter', { 'is-invisible': !isFocused }] + }, + `${valueLength} / ${maxLength}` + ); +} + +function getAutocomplete(autocomplete: undefined | Ref<string | undefined>, type: string | undefined) { + if (autocomplete && autocomplete.value) { + return autocomplete.value; + } else { + switch (type) { + case 'email': + return 'email'; + case 'password': + return 'password'; + default: + return undefined; + } + } +} + +function generateNonTextInput( + inputRef: Ref<HTMLInputElement>, + inputData: Input, + isLoading: boolean, + context: SetupContext, + themeClasses: string[] +): VNode { + const hasMessage = !!inputData.message.value; + const type = inputData.type ? inputData.type.value : inputData.usePasswordReveal.value ? 'password' : undefined; + return h('input', { + ...context.attrs, + ref: inputRef, + class: [ + 'input', + inputData.messageVariant.value, + inputData.size.value, + { + 'is-rounded': inputData.isRounded.value, + // 'is-expanded': inputData.isExpanded.value, + 'is-loading': isLoading, + 'is-clearfix': !hasMessage + }, + ...themeClasses + ], + value: inputData.modelValue.value, + onInput: inputData.onNativeInput, + type: inputData.type ? inputData.type.value : undefined, + autocomplete: getAutocomplete(inputData.autocomplete, type), + maxlength: inputData.maxlength && inputData.maxlength.value, + placeholder: inputData.placeholder && inputData.placeholder.value, + onBlur: inputData.onBlur, + onFocus: inputData.onFocus, + required: inputData.isRequired.value, + readonly: inputData.isReadonly.value, + disabled: inputData.isDisabled.value, + tabindex: inputData.isDisabled.value ? -1 : 0, + id: inputData.id.value + }); +} + +function generateTextarea( + inputRef: Ref<HTMLInputElement>, + inputData: Input, + isLoading: boolean, + context: SetupContext, + themeClasses: string[] +): VNode { + const hasMessage = !!inputData.message.value; + return h('textarea', { + ...context.attrs, + ref: inputRef, + class: [ + 'textarea', + inputData.messageVariant.value, + inputData.size.value, + { + 'is-rounded': inputData.isRounded.value, + 'is-expanded': inputData.isExpanded.value, + 'is-loading': isLoading, + 'is-clearfix': !hasMessage + }, + ...themeClasses + ], + value: inputData.modelValue.value, + onInput: inputData.onNativeInput, + maxlength: inputData.maxlength && inputData.maxlength.value, + placeholder: inputData.placeholder && inputData.placeholder.value, + onBlur: inputData.onBlur, + onFocus: inputData.onFocus, + required: inputData.isRequired.value, + readonly: inputData.isReadonly.value, + disabled: inputData.isDisabled.value, + tabindex: inputData.isDisabled.value ? -1 : 0, + id: inputData.id.value + }); +} +function generateInput( + inputRef: Ref<HTMLInputElement>, + inputData: Input, + isLoading: boolean, + context: SetupContext, + themeClasses: string[] +): VNode { + const type = inputData.type && inputData.type.value; + return type === 'textarea' + ? generateTextarea(inputRef, inputData, isLoading, context, themeClasses) + : generateNonTextInput(inputRef, inputData, isLoading, context, themeClasses); +} + +function getValueLength(modelValue: unknown) { + if (isString(modelValue)) { + return modelValue.length; + } else if (isNumber(modelValue)) { + return modelValue.toString().length; + } + return 0; +} + +export function defineInput<T>() { + return defineComponent({ + name: 'b-input', + inheritAttrs: false, + props: getBInputPropsDefinition<T>(), + setup(props, context: SetupContext) { + const inputRef = shallowRef((null as unknown) as HTMLInputElement); + const inputData = useInput(props as UseInputProps<T>, inputRef); + + const rightIcon = computed(() => + getRightIcon( + props.inputIcons, + inputData.messageVariant.value, + inputData.usePasswordReveal.value, + inputData.passwordToggle.isOn.value + ) + ); + const useCounter = computed( + () => + (inputData.type === undefined || (inputData.modelValue && typeof inputData.modelValue.value !== 'number')) && + !!inputData.maxlength && + props.hasCounter + ); + + const { themeClasses } = useTheme(props); + + return () => { + const nodes: VNode[] = [ + generateInput(inputRef, inputData as Input, props.isLoading, context, themeClasses.value) + ]; + if (inputData.icon && inputData.icon.value) { + nodes.push(generateLeftIcon(inputData.icon.value, inputData.iconSize.value)); + } + if (rightIcon.value) { + nodes.push( + generateRightIcon( + rightIcon.value, + inputData.iconSize.value, + inputData.messageVariant.value, + inputData.usePasswordReveal.value, + inputData.passwordToggle + ) + ); + } + if (useCounter.value && inputData.maxlength && inputData.maxlength.value !== undefined) { + nodes.push( + generateCounter( + inputData.isFocused.value, + getValueLength(inputData.modelValue.value), + inputData.maxlength.value + ) + ); + } + return h( + 'div', + { + class: [ + 'control', + inputData.size.value, + getIconPosition(inputData.icon?.value, rightIcon.value), + { + 'is-expanded': inputData.isExpanded.value, + 'is-loading': props.isLoading, + 'is-clearfix': !inputData.message.value + } + ] + }, + nodes + ); + }; + } + }); +} + +// eslint-disable-next-line +export const BInput = defineInput<any>(); diff --git a/node_modules/buetify/src/components/form/input/index.ts b/node_modules/buetify/src/components/form/input/index.ts new file mode 100755 index 0000000..336f946 --- /dev/null +++ b/node_modules/buetify/src/components/form/input/index.ts @@ -0,0 +1 @@ +export * from './BInput'; diff --git a/node_modules/buetify/src/components/form/numberInput/BNumberInput.ts b/node_modules/buetify/src/components/form/numberInput/BNumberInput.ts new file mode 100755 index 0000000..07439bf --- /dev/null +++ b/node_modules/buetify/src/components/form/numberInput/BNumberInput.ts @@ -0,0 +1,194 @@ +import './number-input.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { getUseInputPropsDefinition } from '../../../composables/input/useInput'; +import { constant, FunctionN } from 'fp-ts/lib/function'; +import { + h, + VNode, + defineComponent, + defineAsyncComponent, + PropType, + ExtractPropTypes, + computed, + SetupContext, + toRef, + Ref +} from 'vue'; +import { useProxy } from '../../../composables/proxy'; +import { isNumber, isString } from '../../../utils/helpers'; +import BButton from '../../button/BButton'; +import { BInput } from '../input/BInput'; +import { InputIcons, NumberInputIcons, DEFAULT_INPUT_ICONS } from '../shared/types'; + +export type BNumberInputControlsPosition = 'compact' | ''; + +const DEFAULT_NUMBER_INPUT_ICONS: NumberInputIcons = { + minus: defineAsyncComponent(() => import('../../icons/minus')), + plus: defineAsyncComponent(() => import('../../icons/plus')) +}; + +const BNumberInputPropsDefinition = { + ...getUseInputPropsDefinition<number>(), + min: { + type: Number as PropType<number>, + default: Number.MIN_SAFE_INTEGER + }, + max: { + type: Number as PropType<number>, + default: Number.MAX_SAFE_INTEGER + }, + step: { + type: Number as PropType<number>, + default: 1 + }, + displayControls: { + type: Boolean as PropType<boolean>, + default: true + }, + controlsRounded: { + type: Boolean as PropType<boolean>, + default: false + }, + controlsPosition: { + type: String as PropType<BNumberInputControlsPosition>, + default: '' as const + }, + inputIcons: { + type: Object as PropType<InputIcons>, + default: constant(DEFAULT_INPUT_ICONS) + }, + numberInputIcons: { + type: Object as PropType<NumberInputIcons>, + default: constant(DEFAULT_NUMBER_INPUT_ICONS) + } +}; + +export type BNumberInputProps = ExtractPropTypes<typeof BNumberInputPropsDefinition>; + +export function getNumberInputIcons(icons: Partial<NumberInputIcons>): NumberInputIcons { + return { ...DEFAULT_NUMBER_INPUT_ICONS, ...icons }; +} + +function getFieldClasses(controlsPosition: BNumberInputControlsPosition, isExpanded: boolean) { + const isCompact = controlsPosition === 'compact'; + return { + 'is-expanded': isExpanded, + 'has-addons': isCompact, + 'is-grouped': !isCompact + }; +} + +function generateControl(props: BNumberInputProps, data: BNumberInputData, isDecrement: boolean): VNode { + return h( + 'p', + { + class: 'control' + }, + [ + h( + BButton, + { + variant: props.variant || 'is-primary', + size: props.size, + isRounded: props.controlsRounded, + isDisabled: isDecrement ? !data.canDecrement.value : !data.canIncrement.value, + onClick: isDecrement ? data.onDecrement : data.onIncrement + }, + () => + h(isDecrement ? props.numberInputIcons.minus : props.numberInputIcons.plus, { + size: props.size + }) + ) + ] + ); +} + +function generateInput(props: BNumberInputProps, data: BNumberInputData, context: SetupContext): VNode { + return h(BInput, { + ...context.attrs, + modelValue: data.number.value, + 'onUpdate:modelValue': data.set, + type: 'number', + size: props.size, + placeholder: props.placeholder ? `${props.placeholder}` : '', + isDisabled: props.isDisabled, + inputIcons: props.inputIcons, + isReadonly: props.isReadonly, + isLoading: props.isLoading, + isRounded: props.isRounded, + icon: props.icon, + isExpanded: props.isExpanded, + step: props.step, + max: props.max, + min: props.min + }); +} + +interface BNumberInputData { + set: FunctionN<[unknown], void>; + number: Ref<number | undefined>; + canIncrement: Ref<boolean>; + onDecrement: IO<void>; + onIncrement: IO<void>; + canDecrement: Ref<boolean>; +} + +export default defineComponent({ + name: 'b-number-input', + props: BNumberInputPropsDefinition, + setup(props, context) { + const { value: number } = useProxy<number | undefined>( + toRef(props, 'modelValue'), + toRef(props, 'onUpdate:modelValue') as Ref<FunctionN<[number | undefined], void>> + ); + + const defaultMin = computed(() => (props.min === Number.MIN_SAFE_INTEGER ? 0 : props.min)); + + const defaultMax = computed(() => (props.max === Number.MAX_SAFE_INTEGER ? 0 : props.max)); + + const canDecrement = computed(() => (number.value ?? defaultMax.value) - props.step >= props.min); + function onDecrement() { + if (canDecrement.value) { + number.value = (number.value ?? 0) - props.step; + } + } + const canIncrement = computed(() => (props.modelValue ?? defaultMin.value) + props.step <= props.max); + + function onIncrement() { + if (canIncrement.value) { + number.value = (number.value ?? 0) + props.step; + } + } + + function set(val: unknown) { + if (isString(val)) { + const x = Number.parseFloat(val); + if (Number.isNaN(x)) return; + number.value = x; + } + if (isNumber(val)) { + number.value = val; + } + } + + const data: BNumberInputData = { + set, + number, + canDecrement, + canIncrement, + onDecrement, + onIncrement + }; + + return () => { + const nodes = props.displayControls + ? [generateControl(props, data, true), generateInput(props, data, context), generateControl(props, data, false)] + : [generateInput(props, data, context)]; + return h( + 'div', + { class: ['b-number-input field', getFieldClasses(props.controlsPosition, props.isExpanded)] }, + nodes + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/form/numberInput/index.ts b/node_modules/buetify/src/components/form/numberInput/index.ts new file mode 100755 index 0000000..12a2628 --- /dev/null +++ b/node_modules/buetify/src/components/form/numberInput/index.ts @@ -0,0 +1,5 @@ +import BNumberInput from './BNumberInput'; + +export { BNumberInput }; + +export default BNumberInput; diff --git a/node_modules/buetify/src/components/form/numberInput/number-input.sass b/node_modules/buetify/src/components/form/numberInput/number-input.sass new file mode 100755 index 0000000..c865d0f --- /dev/null +++ b/node_modules/buetify/src/components/form/numberInput/number-input.sass @@ -0,0 +1,23 @@ +.b-number-input + &.field + margin-bottom: 0 + &.is-expanded + flex-grow: 1 + &.is-grouped + div.control + flex-grow: 1 + flex-shrink: 1 + input[type='number']::-webkit-inner-spin-button, + input[type='number']::-webkit-outer-spin-button + -webkit-appearance: none + input[type='number'] + -moz-appearance: textfield + input[type='number'] + text-align: center + .button + &.is-rounded + padding-left: 0.75em + padding-right: 0.75em + + + diff --git a/node_modules/buetify/src/components/form/radio/BRadio.ts b/node_modules/buetify/src/components/form/radio/BRadio.ts new file mode 100755 index 0000000..2694779 --- /dev/null +++ b/node_modules/buetify/src/components/form/radio/BRadio.ts @@ -0,0 +1,7 @@ +import '../sass/form.sass'; +import './radio.sass'; +import { useSelectionControl } from '../shared/useSelectionControl'; + +export const defineRadio = useSelectionControl('radio', 'radio', 'b-radio', 'b-radio radio'); + +export const BRadio = defineRadio<unknown>(); diff --git a/node_modules/buetify/src/components/form/radio/index.ts b/node_modules/buetify/src/components/form/radio/index.ts new file mode 100755 index 0000000..b9cc654 --- /dev/null +++ b/node_modules/buetify/src/components/form/radio/index.ts @@ -0,0 +1,5 @@ +import { BRadio, defineRadio } from './BRadio'; + +export { BRadio, defineRadio }; + +export default BRadio; diff --git a/node_modules/buetify/src/components/form/radio/radio.sass b/node_modules/buetify/src/components/form/radio/radio.sass new file mode 100755 index 0000000..73149ca --- /dev/null +++ b/node_modules/buetify/src/components/form/radio/radio.sass @@ -0,0 +1,75 @@ +$radio-active-background-color: $primary !default + +.b-radio + &.radio + outline: none + display: inline-flex + align-items: center + @include unselectable + & + .radio + margin-left: 0.5em + input[type='radio'] + position: absolute + left: 0 + opacity: 0 + outline: none + z-index: -1 + + .check + display: flex + align-items: center + justify-content: center + flex-shrink: 0 + width: 1.25em + height: 1.25em + border: 2px solid $grey + border-radius: 50% + transition: background $speed-slow $easing + &:before + content: '' + border-radius: 50% + width: 0.625em + height: 0.625em + background: $radio-active-background-color + transform: scale(0) + transition: transform $speed-slow $easing + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name}:before + background: $color + &:checked + .check + border-color: $radio-active-background-color + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + border-color: $color + &:before + transform: scale(1) + .control-label + padding-left: 0.5em + &[disabled] + opacity: 0.5 + &:hover + input[type='radio'] + .check + border-color: $radio-active-background-color + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + border-color: $color + &:focus + input[type='radio'] + .check + box-shadow: 0 0 0.5em bulmaRgba($grey, 0.8) + + input[type='radio']:checked + .check + box-shadow: 0 0 0.5em bulmaRgba($radio-active-background-color, 0.8) + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + box-shadow: 0 0 0.5em bulmaRgba($color, 0.8) + &.is-small + @include control-small + + &.is-medium + @include control-medium + + &.is-large + @include control-large diff --git a/node_modules/buetify/src/components/form/sass/checkbox-radio.sass b/node_modules/buetify/src/components/form/sass/checkbox-radio.sass new file mode 100755 index 0000000..9fb48ce --- /dev/null +++ b/node_modules/buetify/src/components/form/sass/checkbox-radio.sass @@ -0,0 +1,19 @@ +%checkbox-radio + cursor: pointer + display: inline-block + line-height: 1.25 + position: relative + input + cursor: pointer + &[disabled], + fieldset[disabled] & + color: $input-disabled-color + cursor: not-allowed + +.checkbox + @extend %checkbox-radio + +.radio + @extend %checkbox-radio + & + .radio + margin-left: 0.5em diff --git a/node_modules/buetify/src/components/form/sass/form.sass b/node_modules/buetify/src/components/form/sass/form.sass new file mode 100755 index 0000000..93b8051 --- /dev/null +++ b/node_modules/buetify/src/components/form/sass/form.sass @@ -0,0 +1,46 @@ +@import './tools' +@import '~bulma/sass/form/input-textarea' +@import './checkbox-radio' +@import '~bulma/sass/form/select' +@import '~bulma/sass/form/file' + +.label + font-weight: $weight-semibold + color: inherit + +.field + &.is-grouped + .field + flex-shrink: 0 + &:not(:last-child) + margin-right: 0.75rem + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + // Nested control hasAddons (for Autocomplete and Datepicker) + &.has-addons .control + &:first-child .control + .button, + .input, + .select select + border-bottom-left-radius: $input-radius + border-top-left-radius: $input-radius + &:last-child .control + .button, + .input, + .select select + border-bottom-right-radius: $input-radius + border-top-right-radius: $input-radius + .control + .button, + .input, + .select select + border-radius: 0 +.control + .help.counter + float: right + margin-left: 0.5em + .icon + &.is-clickable + pointer-events: auto + cursor: pointer diff --git a/node_modules/buetify/src/components/form/sass/shared.sass b/node_modules/buetify/src/components/form/sass/shared.sass new file mode 100755 index 0000000..aa9c983 --- /dev/null +++ b/node_modules/buetify/src/components/form/sass/shared.sass @@ -0,0 +1,84 @@ +@import "~bulma/sass/form/shared" +//$input-color: $text-strong !default +//$input-background-color: $scheme-main !default +//$input-border-color: $border !default +//$input-height: $control-height !default +//$input-shadow: inset 0 0.0625em 0.125em rgba($scheme-invert, 0.05) !default +//$input-placeholder-color: rgba($input-color, 0.3) !default +// +//$input-hover-color: $text-strong !default +//$input-hover-border-color: $border-hover !default +// +//$input-focus-color: $text-strong !default +//$input-focus-border-color: $link !default +//$input-focus-box-shadow-size: 0 0 0 0.125em !default +//$input-focus-box-shadow-color: rgba($link, 0.25) !default +// +//$input-disabled-color: $text-light !default +//$input-disabled-background-color: $background !default +//$input-disabled-border-color: $background !default +//$input-disabled-placeholder-color: rgba($input-disabled-color, 0.3) !default +// +//$input-arrow: $link !default +// +//$input-icon-color: $border !default +//$input-icon-active-color: $text !default +// +//$input-radius: $radius !default +// +//$all-colors: mergeColorMaps($colors, $shades) +// +//=input +// @extend %control +// background-color: $input-background-color +// border-color: $input-border-color +// border-radius: $input-radius +// color: $input-color +// +placeholder +// color: $input-placeholder-color +// &:hover, +// &.is-hovered +// border-color: $input-hover-border-color +// &:focus, +// &.is-focused, +// &:active, +// &.is-active +// border-color: $input-focus-border-color +// box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color +// &[disabled], +// fieldset[disabled] & +// background-color: $input-disabled-background-color +// border-color: $input-disabled-border-color +// box-shadow: none +// color: $input-disabled-color +// +placeholder +// color: $input-disabled-placeholder-color +// @each $name, $pair in $colors +// $color: nth($pair, 1) +// $color-invert: nth($pair, 2) +// &.is-#{$name} +// border-color: $color-invert +// color: $color-invert +// +placeholder +// color: darken($color-invert, 35%) +// &:hover, +// &.is-hovered +// border-color: $input-hover-border-color +// &:focus, +// &.is-focused, +// &:active, +// &.is-active +// border-color: $input-focus-border-color +// box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color +// &[disabled], +// fieldset[disabled] & +// background-color: $input-disabled-background-color +// border-color: $input-disabled-border-color +// box-shadow: none +// color: darken($color-invert, 35%) +// +placeholder +// color: darken($color-invert, 35%) +// +//%input +// +input +// diff --git a/node_modules/buetify/src/components/form/sass/tools.sass b/node_modules/buetify/src/components/form/sass/tools.sass new file mode 100755 index 0000000..c0dfd43 --- /dev/null +++ b/node_modules/buetify/src/components/form/sass/tools.sass @@ -0,0 +1,247 @@ +@import "./shared" +$label-color: $text-strong !default +$label-weight: $weight-bold !default + +$help-size: $size-small !default + +.label + color: $label-color + display: block + font-size: $size-normal + font-weight: $label-weight + &:not(:last-child) + margin-bottom: 0.5em + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + color: $color-invert + +.help + display: block + font-size: $help-size + margin-top: 0.25rem + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + color: $color + +// Containers +.field + &:not(:last-child) + margin-bottom: 0.75rem + // Modifiers + &.has-addons + display: flex + justify-content: flex-start + .control + &:not(:last-child) + margin-right: -1px + &:not(:first-child):not(:last-child) + .button, + .input, + .select select + border-radius: 0 + &:first-child + .button, + .input, + .select select + border-bottom-right-radius: 0 + border-top-right-radius: 0 + &:last-child + .button, + .input, + .select select + border-bottom-left-radius: 0 + border-top-left-radius: 0 + .button, + .input, + .select select + &:not([disabled]) + &:hover, + &.is-hovered + z-index: 2 + &:focus, + &.is-focused, + &:active, + &.is-active + z-index: 3 + &:hover + z-index: 4 + &.is-expanded + flex-grow: 1 + &.has-addons-centered + justify-content: center + &.has-addons-right + justify-content: flex-end + &.has-addons-fullwidth + .control + flex-grow: 1 + flex-shrink: 0 + &.is-grouped + display: flex + justify-content: flex-start + & > .control + flex-shrink: 0 + &:not(:last-child) + margin-bottom: 0 + margin-right: 0.75rem + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-grouped-centered + justify-content: center + &.is-grouped-right + justify-content: flex-end + &.is-grouped-multiline + flex-wrap: wrap + & > .control + &:last-child, + &:not(:last-child) + margin-bottom: 0.75rem + &:last-child + margin-bottom: -0.75rem + &:not(:last-child) + margin-bottom: 0 + &.is-horizontal + +tablet + display: flex + +.field-label + display: flex + .label + font-size: inherit + align-self: flex-start + text-align: right + justify-content: flex-end + +mobile + margin-right: 0.5rem + +tablet + flex-basis: 0 + flex-shrink: 0 + flex-grow: 1 + margin-right: 1.5rem + justify-content: flex-end + &.is-small + font-size: $size-small + padding-top: 0.375em + &.is-normal + padding-top: 0.375em + &.is-medium + font-size: $size-medium + padding-top: 0.375em + &.is-large + font-size: $size-large + padding-top: 0.375em + +.field-body + .field .field + margin-bottom: 0 + &.is-expanded + width: 100% + +tablet + display: flex + flex-basis: 0 + flex-grow: 5 + flex-shrink: 1 + .field + margin-bottom: 0 + & > .field + flex-shrink: 1 + &:not(.is-narrow) + flex-grow: 1 + &:not(:last-child) + margin-right: 0.75rem + +.control + clear: both //fixes the icon floating out of the input when help text is floated right + font-size: $size-normal + position: relative + text-align: left + // Modifiers + // DEPRECATED + &.has-icon + .icon + color: $input-icon-color + height: $input-height + pointer-events: none + position: absolute + top: 0 + width: $input-height + z-index: 4 + .input + &:focus + & + .icon + color: $input-icon-active-color + &.is-small + & + .icon + font-size: $size-small + &.is-medium + & + .icon + font-size: $size-medium + &.is-large + & + .icon + font-size: $size-large + &:not(.has-icon-right) + .icon + left: 0 + .input + padding-left: $input-height + &.has-icon-right + .icon + right: 0 + .input + padding-right: $input-height + &.has-icons-left, + &.has-icons-right + .input, + .select + &:focus + & ~ .icon + color: $input-icon-active-color + &.is-small ~ .icon + font-size: $size-small + &.is-medium ~ .icon + font-size: $size-medium + &.is-large ~ .icon + font-size: $size-large + .icon + color: $input-icon-color + height: $input-height + pointer-events: none + position: absolute + top: 0 + width: $input-height + z-index: 4 + &.has-icons-left + .input, + .select select + padding-left: $input-height + .icon.is-left + left: 0 + &.has-icons-right + .input, + .select select + padding-right: $input-height + .icon.is-right + right: 0 + &.is-loading + &::after + @extend %loader + position: absolute !important + right: 0.625em + top: 0.625em + z-index: 4 + &.is-small:after + font-size: $size-small + &.is-medium:after + font-size: $size-medium + &.is-large:after + font-size: $size-large diff --git a/node_modules/buetify/src/components/form/select/BSelect.ts b/node_modules/buetify/src/components/form/select/BSelect.ts new file mode 100755 index 0000000..597dcc4 --- /dev/null +++ b/node_modules/buetify/src/components/form/select/BSelect.ts @@ -0,0 +1,206 @@ +import '../sass/form.sass'; +import './select.sass'; +import { Eq } from 'fp-ts/lib/Eq'; +import { getUseInputPropsDefinition, Input, useInput, UseInputProps } from '../../../composables/input/useInput'; +import { EqProps, getEqPropsDefinition } from '../../../composables/shared'; +import { DefaultThemePropsDefinition, useTheme } from '../../../composables/theme'; +import { Extractor, extractProp, isBoolean } from '../../../utils/helpers'; +import { PropType, VNode, defineComponent, h, shallowRef, SetupContext, Ref, vModelSelect, withDirectives } from 'vue'; +import { Classes } from '../../../utils/mergeClasses'; + +export interface SelectItem<T> { + value: T; + text: string; + isDisabled: boolean; + isSelected: boolean; +} + +export function getBSelectPropsDefinition<T>(eq?: Eq<T>) { + return { + ...getEqPropsDefinition<T>(eq), + ...getUseInputPropsDefinition<T>(), + ...DefaultThemePropsDefinition, + items: { + type: Array as PropType<T[]>, + required: true as const + }, + isMultiple: { + type: Boolean as PropType<boolean>, + default: false + }, + itemKey: { + type: [String, Function] as PropType<Extractor<T>> + }, + itemText: { + type: [String, Function] as PropType<Extractor<T>>, + default: 'text' + }, + itemValue: { + type: [String, Function] as PropType<Extractor<T>>, + default: 'value' + }, + itemDisabled: { + type: [String, Function] as PropType<Extractor<T>>, + default: 'isDisabled' + }, + displayCount: { + type: [String, Number] + } + }; +} + +export type BSelectProps<T> = EqProps<T> & + UseInputProps<T> & { + items: T[]; + isMultiple: boolean; + itemKey?: Extractor<T>; + itemText: Extractor<T>; + itemValue: Extractor<T>; + itemDisabled: Extractor<T>; + displayCount?: string | number; + }; + +function getControlClasses(isExpanded: boolean, hasIcon: boolean) { + return { + 'is-expanded': isExpanded, + 'has-icons-left': hasIcon + }; +} + +function isMultiple<T>(props: BSelectProps<T>, input: Input) { + return props.isMultiple || (props.isMultiple === undefined && Array.isArray(input.modelValue.value)); +} + +function isEmpty(val: unknown) { + return val === null || val === undefined || (Array.isArray(val) && val.length === 0); +} + +function getSelectClasses<T>(props: BSelectProps<T>, input: Input): Classes[] { + return [ + input.size.value, + input.messageVariant.value, + { + 'is-fullwidth': input.isFullwidth.value, + 'is-loading': props.isLoading, + 'is-multiple': isMultiple(props, input), + 'is-rounded': props.isRounded, + 'is-empty': isEmpty(input.modelValue.value) + } + ]; +} + +function generatePlaceholder<T>(props: BSelectProps<T>, context: SetupContext): VNode { + return h( + 'option', + { + value: null, + hidden: true, + disabled: true, + selected: true + }, + context.slots.placeholder ? context.slots.placeholder() : props.placeholder + ); +} + +function getIsSelected<T>(props: BSelectProps<T>, input: Input) { + return (val: T) => { + const equals = props.eq.equals; + const value = input.modelValue.value; + if (value === null || value === undefined) { + return false; + } else if (isMultiple(props, input)) { + return Array.isArray(value) ? value.some(v => equals(v, val)) : false; + } else { + return equals(val, value as T); + } + }; +} +function generateOptions<T>(props: BSelectProps<T>, context: SetupContext, input: Input) { + const isSelected = getIsSelected(props, input); + return props.items.map((item, index) => { + const isDisabled = extractProp(props.itemDisabled, item); + return context.slots.option + ? context.slots.option({ item, index }) + : h( + 'option', + { + key: props.itemKey ? ((extractProp(props.itemKey, item) as unknown) as string) : String(index), + value: extractProp(props.itemValue, item), + disabled: isBoolean(isDisabled) ? isDisabled : !isDisabled, + selected: isSelected(item) + }, + context.slots.default + ? context.slots.default({ item, index }) + : ((extractProp(props.itemText, item) as unknown) as string) + ); + }); +} + +function generateSelect<T>( + props: BSelectProps<T>, + context: SetupContext, + ref: Ref<HTMLElement>, + input: Input, + themeClasses: Classes +): VNode { + const value = input.modelValue.value; + const usePlaceholder = isEmpty(value) && (!!props.placeholder || !!context.slots.placeholder); + return withDirectives( + h( + 'select', + { + ...context.attrs, + ref, + required: props.isRequired, + disabled: props.isDisabled, + size: props.displayCount || null, + multiple: isMultiple(props, input), + class: themeClasses, + onBlur: input.onBlur, + onFocus: input.onFocus, + 'onUpdate:modelValue': input.set + }, + usePlaceholder + ? [generatePlaceholder(props, context), ...generateOptions(props, context, input)] + : generateOptions(props, context, input) + ), + [[vModelSelect, value ?? null]] + ); +} + +export function defineSelect<T>(eq?: Eq<T>) { + return defineComponent({ + name: 'b-select', + props: getBSelectPropsDefinition<T>(eq), + setup(props, context) { + const selectRef = shallowRef((null as unknown) as HTMLElement); + const input = useInput(props as UseInputProps<T>, selectRef); + const { themeClasses } = useTheme(props); + return () => { + const nodes = [ + h( + 'span', + { + class: ['select', ...getSelectClasses(props as BSelectProps<T>, input as Input)] + }, + [generateSelect(props as BSelectProps<T>, context, selectRef, input as Input, themeClasses.value)] + ) + ]; + + if (input.icon && input.icon.value) { + nodes.push( + h(input.icon.value, { + class: 'is-left', + size: input.size.value + }) + ); + } + + return h('div', { class: ['control', getControlClasses(input.isExpanded.value, !!input.icon)] }, nodes); + }; + } + }); +} + +// eslint-disable-next-line +export const BSelect = defineSelect<any>(); diff --git a/node_modules/buetify/src/components/form/select/index.ts b/node_modules/buetify/src/components/form/select/index.ts new file mode 100755 index 0000000..cb317eb --- /dev/null +++ b/node_modules/buetify/src/components/form/select/index.ts @@ -0,0 +1 @@ +export * from './BSelect'; diff --git a/node_modules/buetify/src/components/form/select/select.sass b/node_modules/buetify/src/components/form/select/select.sass new file mode 100755 index 0000000..88f4a37 --- /dev/null +++ b/node_modules/buetify/src/components/form/select/select.sass @@ -0,0 +1,19 @@ + +.select + &.is-expanded + width: 100% + select + padding-right: 2.5em + option + color: $grey-dark + padding: 0.25em 0.5em + option:disabled + cursor: not-allowed + opacity: 0.5 + optgroup + color: $grey-light + font-weight: $weight-normal + font-style: normal + padding: 0.25em 0 + &.is-empty select + color: rgba($grey, 0.7) diff --git a/node_modules/buetify/src/components/form/shared/index.ts b/node_modules/buetify/src/components/form/shared/index.ts new file mode 100755 index 0000000..235a578 --- /dev/null +++ b/node_modules/buetify/src/components/form/shared/index.ts @@ -0,0 +1,2 @@ +export * from './useSelectionControl'; +export * from './types'; diff --git a/node_modules/buetify/src/components/form/shared/types.ts b/node_modules/buetify/src/components/form/shared/types.ts new file mode 100755 index 0000000..33791fe --- /dev/null +++ b/node_modules/buetify/src/components/form/shared/types.ts @@ -0,0 +1,45 @@ +import { FunctionalComponent, ComponentOptions, defineAsyncComponent } from 'vue'; + +type Component = FunctionalComponent | ComponentOptions; + +export interface InputIcons { + isSuccess: Component; + isDanger: Component; + isWarning: Component; + isInfo: Component; + passwordVisible: Component; + passwordInvisible: Component; +} + +export const DEFAULT_INPUT_ICONS: InputIcons = { + isSuccess: defineAsyncComponent(() => import('../../icons/check')), + isDanger: defineAsyncComponent(() => import('../../icons/exclamationCircle')), + isInfo: defineAsyncComponent(() => import('../../icons/infoCircle')), + isWarning: defineAsyncComponent(() => import('../../icons/exclamationTriangle')), + passwordInvisible: defineAsyncComponent(() => import('../../icons/eye')), + passwordVisible: defineAsyncComponent(() => import('../../icons/eyeSlash')) +}; + +export function getInputIcons(icons: Partial<InputIcons>): InputIcons { + return { + ...DEFAULT_INPUT_ICONS, + ...icons + }; +} + +export interface NumberInputIcons { + minus: Component; + plus: Component; +} + +export const DEFAULT_NUMBER_INPUT_ICONS: NumberInputIcons = { + minus: defineAsyncComponent(() => import('../../icons/minus')), + plus: defineAsyncComponent(() => import('../../icons/plus')) +}; + +export function getNumberInputIcons(icons: Partial<NumberInputIcons>): NumberInputIcons { + return { + ...DEFAULT_NUMBER_INPUT_ICONS, + ...icons + }; +} diff --git a/node_modules/buetify/src/components/form/shared/useCheckRadio.ts b/node_modules/buetify/src/components/form/shared/useCheckRadio.ts new file mode 100755 index 0000000..12ef47e --- /dev/null +++ b/node_modules/buetify/src/components/form/shared/useCheckRadio.ts @@ -0,0 +1,13 @@ +import { PropType } from 'vue'; + +export function useCheckRadioPropsDefinition<T>() { + return { + value: (null as unknown) as PropType<T>, + nativeValue: (null as unknown) as PropType<unknown>, + type: { + type: String as PropType<string> + } + }; +} + +export function useCheckRadio<T>() {} diff --git a/node_modules/buetify/src/components/form/shared/useSelectionControl.ts b/node_modules/buetify/src/components/form/shared/useSelectionControl.ts new file mode 100755 index 0000000..e01bcd5 --- /dev/null +++ b/node_modules/buetify/src/components/form/shared/useSelectionControl.ts @@ -0,0 +1,60 @@ +import { + getUseSelectablePropsDefinition, + SelectionControl, + UseSelectableProps, + useSelectionControl as useControl +} from '../../../composables/selectionControl/useSelectionControl'; +import { ColorVariant } from '../../../types/ColorVariants'; +import { defineComponent, shallowRef, Slots, h } from 'vue'; + +function generateCheck(variant: ColorVariant) { + return h('span', { class: [variant, 'check'] }); +} + +function generateInput(selectionControl: SelectionControl) { + return h('input', { + onChange: selectionControl.onChange, + onBlur: selectionControl.onBlur, + onFocus: selectionControl.onFocus, + ...selectionControl.attrs.value + }); +} + +function generateLabelText(selectionControl: SelectionControl, slots: Slots) { + return h( + 'span', + { + class: 'control-label' + }, + slots.default && slots.default() + ); +} + +export function useSelectionControl(role: string, type: string, name: string, staticClass: string) { + return <T>() => + defineComponent({ + name, + props: getUseSelectablePropsDefinition<T>(), + setup(props, { slots }) { + const label = shallowRef((null as unknown) as HTMLElement); + const selection = useControl(props as UseSelectableProps<T>, label, role, type); + return () => { + return h( + 'label', + { + class: [staticClass, props.size, { 'is-disabled': selection.isDisabled.value }], + ref: label, + id: selection.label.labelId.value, + for: selection.label.id.value, + disabled: selection.isDisabled.value || null, + tabindex: selection.isDisabled.value ? -1 : 0, + onKeydown: selection.onKeydown, + onBlur: selection.onBlur, + onClick: selection.onClick + }, + [generateInput(selection), generateCheck(props.variant), generateLabelText(selection, slots)] + ); + }; + } + }); +} diff --git a/node_modules/buetify/src/components/form/switch/BSwitch.ts b/node_modules/buetify/src/components/form/switch/BSwitch.ts new file mode 100755 index 0000000..5e117ba --- /dev/null +++ b/node_modules/buetify/src/components/form/switch/BSwitch.ts @@ -0,0 +1,8 @@ +import '../../../sass/helpers/animations.sass'; +import '../sass/form.sass'; +import './switch.sass'; +import { useSelectionControl } from '../shared/useSelectionControl'; + +export const defineSwitch = useSelectionControl('switch', 'checkbox', 'b-switch', 'switch'); + +export const BSwitch = defineSwitch<unknown>(); diff --git a/node_modules/buetify/src/components/form/switch/index.ts b/node_modules/buetify/src/components/form/switch/index.ts new file mode 100755 index 0000000..571ea8e --- /dev/null +++ b/node_modules/buetify/src/components/form/switch/index.ts @@ -0,0 +1,5 @@ +import { BSwitch, defineSwitch } from './BSwitch'; + +export default BSwitch; + +export { BSwitch, defineSwitch }; diff --git a/node_modules/buetify/src/components/form/switch/switch.sass b/node_modules/buetify/src/components/form/switch/switch.sass new file mode 100755 index 0000000..fe97618 --- /dev/null +++ b/node_modules/buetify/src/components/form/switch/switch.sass @@ -0,0 +1,100 @@ +@import '../../../sass/helpers/functions' +$switch-width-number: 2.75 +$switch-width: $switch-width-number * 1em +$switch-padding: 0.2em + +$switch-active-background-color: $primary !default + +.switch + cursor: pointer + display: inline-flex + align-items: center + @include unselectable + & + .switch + margin-left: 0.5em + + input[type='checkbox'] + position: absolute + left: 0 + opacity: 0 + outline: none + z-index: -1 + + .check + display: flex + align-items: center + flex-shrink: 0 + width: $switch-width + height: #{$switch-width / 2 + $switch-padding} + padding: $switch-padding + background: $grey-light + border-radius: 1em + transition: background $speed-slow $easing + &:before + content: '' + display: block + border-radius: 1em + width: #{($switch-width - $switch-padding * 2) / 2} + height: #{($switch-width - $switch-padding * 2) / 2} + background: $background + box-shadow: 0 3px 1px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 3px 3px 0 rgba(0, 0, 0, 0.05) + transition: transform $speed-slow $easing, width $speed-slow $easing + will-change: transform + + &.is-elastic:before + width: 1.75em + + + &:checked + .check + background: $switch-active-background-color + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + background: $color + + + &:before + transform: translate3d(100%, 0, 0) + + &.is-elastic:before + // Might be a little offset if base font is not 16px + transform: translate3d(percentage(16 / ($switch-width-number * 16)), 0, 0) + + .control-label + padding-left: 0.5em + + &:hover + input[type='checkbox'] + .check + background: bulmaRgba($grey-light, 0.9) + + input[type='checkbox']:checked + .check + background: bulmaRgba($switch-active-background-color, 0.9) + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + background: bulmaRgba($color, 0.9) + + &:focus + outline: none + input[type='checkbox'] + .check + box-shadow: 0 0 0.5em bulmaRgba($grey, 0.6) + + input[type='checkbox']:checked + .check + box-shadow: 0 0 0.5em bulmaRgba($switch-active-background-color, 0.8) + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + box-shadow: 0 0 0.5em bulmaRgba($color, 0.8) + + &.is-small + @include control-small + + &.is-medium + @include control-medium + + &.is-large + @include control-large + + &[disabled] + opacity: 0.5 + cursor: not-allowed + color: $grey diff --git a/node_modules/buetify/src/components/higherOrder/index.ts b/node_modules/buetify/src/components/higherOrder/index.ts new file mode 100755 index 0000000..14a7377 --- /dev/null +++ b/node_modules/buetify/src/components/higherOrder/index.ts @@ -0,0 +1 @@ +export * from './screenSizeDependentComponent'; diff --git a/node_modules/buetify/src/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.ts b/node_modules/buetify/src/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.ts new file mode 100755 index 0000000..32b76fd --- /dev/null +++ b/node_modules/buetify/src/components/higherOrder/screenSizeDependentComponent/ScreenSizeDependentComponent.ts @@ -0,0 +1,28 @@ +import { useWindowSize } from '../../../composables/windowSize'; +import { SetupContext, h, ComponentOptions, FunctionalComponent } from 'vue'; + +export interface ComponentsByBreakPoint { + mobile: ComponentOptions | FunctionalComponent; + tablet: ComponentOptions | FunctionalComponent; + desktop: ComponentOptions | FunctionalComponent; + widescreen: ComponentOptions | FunctionalComponent; + fullHD: ComponentOptions | FunctionalComponent; +} + +export const ScreenSizeDependentComponent = (components: ComponentsByBreakPoint) => ( + props: any, // eslint-disable-line + context: SetupContext +) => { + const windowSize = useWindowSize(); + if (windowSize.value.isMobile) { + return h(components.mobile, props, context.slots); + } else if (windowSize.value.isTablet) { + return h(components.tablet, props, context.slots); + } else if (windowSize.value.isDesktop) { + return h(components.desktop, props, context.slots); + } else if (windowSize.value.isWidescreen) { + return h(components.widescreen, props, context.slots); + } else { + return h(components.fullHD, props, context.slots); + } +}; diff --git a/node_modules/buetify/src/components/higherOrder/screenSizeDependentComponent/index.ts b/node_modules/buetify/src/components/higherOrder/screenSizeDependentComponent/index.ts new file mode 100755 index 0000000..af6723d --- /dev/null +++ b/node_modules/buetify/src/components/higherOrder/screenSizeDependentComponent/index.ts @@ -0,0 +1,5 @@ +import { ScreenSizeDependentComponent } from './ScreenSizeDependentComponent'; + +export { ScreenSizeDependentComponent }; + +export default ScreenSizeDependentComponent; diff --git a/node_modules/buetify/src/components/icon/BIcon.ts b/node_modules/buetify/src/components/icon/BIcon.ts new file mode 100755 index 0000000..b210549 --- /dev/null +++ b/node_modules/buetify/src/components/icon/BIcon.ts @@ -0,0 +1,53 @@ +import './icon.sass'; +import { isString } from '../../utils/helpers'; +import { h, defineComponent, PropType, ExtractPropTypes } from 'vue'; +import { ColorVariant, ColorVariantFlags } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; + +function convertVariant(variant: ColorVariant | ColorVariantFlags): string | ColorVariantFlags { + if (isString(variant)) { + return variant.replace('is', 'has-text'); + } else { + // eslint-disable-next-line + const x: any = {}; + for (const k in variant) { + const nk = k.replace('is', 'has-text'); + x[nk] = variant[k as ColorVariant]; + } + return x; + } +} + +export const BIconPropsDefinition = { + variant: { + type: String as PropType<ColorVariant>, + default: '' as const + }, + size: { + type: String as PropType<SizeVariant>, + default: '' as const + }, + tag: { + type: String, + default: 'span' + } +}; + +export type BIconProps = ExtractPropTypes<typeof BIconPropsDefinition>; + +export default defineComponent({ + name: 'b-icon', + props: BIconPropsDefinition, + setup(props, { slots }) { + return () => + h( + // eslint-disable-next-line + props.tag, + { + class: ['icon', props.size, convertVariant(props.variant)] + }, + // eslint-disable-next-line + slots.default && slots.default() + ); + } +}); diff --git a/node_modules/buetify/src/components/icon/icon.sass b/node_modules/buetify/src/components/icon/icon.sass new file mode 100755 index 0000000..1b50bbf --- /dev/null +++ b/node_modules/buetify/src/components/icon/icon.sass @@ -0,0 +1,25 @@ +$icon-dimensions: 1.5rem !default +$icon-dimensions-small: 1rem !default +$icon-dimensions-medium: 2rem !default +$icon-dimensions-large: 3rem !default +$icon-hover-color: $link !default + +.icon + align-items: center + display: inline-flex + justify-content: center + height: $icon-dimensions + width: $icon-dimensions + &.is-hoverable + &:hover + color: $icon-hover-color + // Sizes + &.is-small + height: $icon-dimensions-small + width: $icon-dimensions-small + &.is-medium + height: $icon-dimensions-medium + width: $icon-dimensions-medium + &.is-large + height: $icon-dimensions-large + width: $icon-dimensions-large diff --git a/node_modules/buetify/src/components/icon/index.ts b/node_modules/buetify/src/components/icon/index.ts new file mode 100755 index 0000000..70383e8 --- /dev/null +++ b/node_modules/buetify/src/components/icon/index.ts @@ -0,0 +1,5 @@ +import BIcon from './BIcon'; + +export { BIcon }; + +export default BIcon; diff --git a/node_modules/buetify/src/components/icons/adjust/AdjustIcon.ts b/node_modules/buetify/src/components/icons/adjust/AdjustIcon.ts new file mode 100755 index 0000000..655b1cb --- /dev/null +++ b/node_modules/buetify/src/components/icons/adjust/AdjustIcon.ts @@ -0,0 +1,4 @@ +import { faAdjust } from '@fortawesome/free-solid-svg-icons/faAdjust'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('Adjust', faAdjust); diff --git a/node_modules/buetify/src/components/icons/adjust/index.ts b/node_modules/buetify/src/components/icons/adjust/index.ts new file mode 100755 index 0000000..8a0f6c7 --- /dev/null +++ b/node_modules/buetify/src/components/icons/adjust/index.ts @@ -0,0 +1,5 @@ +import AdjustIcon from './AdjustIcon'; + +export { AdjustIcon }; + +export default AdjustIcon; diff --git a/node_modules/buetify/src/components/icons/angleDown/AngleDownIcon.ts b/node_modules/buetify/src/components/icons/angleDown/AngleDownIcon.ts new file mode 100755 index 0000000..ae9a08c --- /dev/null +++ b/node_modules/buetify/src/components/icons/angleDown/AngleDownIcon.ts @@ -0,0 +1,4 @@ +import { faAngleDown } from '@fortawesome/free-solid-svg-icons/faAngleDown'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('AngleDown', faAngleDown); diff --git a/node_modules/buetify/src/components/icons/angleDown/index.ts b/node_modules/buetify/src/components/icons/angleDown/index.ts new file mode 100755 index 0000000..00dd2ab --- /dev/null +++ b/node_modules/buetify/src/components/icons/angleDown/index.ts @@ -0,0 +1,5 @@ +import AngleDownIcon from './AngleDownIcon'; + +export { AngleDownIcon }; + +export default AngleDownIcon; diff --git a/node_modules/buetify/src/components/icons/angleLeft/AngleLeftIcon.ts b/node_modules/buetify/src/components/icons/angleLeft/AngleLeftIcon.ts new file mode 100755 index 0000000..7ad7be9 --- /dev/null +++ b/node_modules/buetify/src/components/icons/angleLeft/AngleLeftIcon.ts @@ -0,0 +1,4 @@ +import { faAngleLeft } from '@fortawesome/free-solid-svg-icons/faAngleLeft'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('AngleLeft', faAngleLeft); diff --git a/node_modules/buetify/src/components/icons/angleLeft/index.ts b/node_modules/buetify/src/components/icons/angleLeft/index.ts new file mode 100755 index 0000000..72fc66e --- /dev/null +++ b/node_modules/buetify/src/components/icons/angleLeft/index.ts @@ -0,0 +1,5 @@ +import AngleLeftIcon from './AngleLeftIcon'; + +export { AngleLeftIcon }; + +export default AngleLeftIcon; diff --git a/node_modules/buetify/src/components/icons/angleRight/AngleRightIcon.ts b/node_modules/buetify/src/components/icons/angleRight/AngleRightIcon.ts new file mode 100755 index 0000000..5addbfd --- /dev/null +++ b/node_modules/buetify/src/components/icons/angleRight/AngleRightIcon.ts @@ -0,0 +1,4 @@ +import { faAngleRight } from '@fortawesome/free-solid-svg-icons/faAngleRight'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('AngleRight', faAngleRight); diff --git a/node_modules/buetify/src/components/icons/angleRight/index.ts b/node_modules/buetify/src/components/icons/angleRight/index.ts new file mode 100755 index 0000000..9106916 --- /dev/null +++ b/node_modules/buetify/src/components/icons/angleRight/index.ts @@ -0,0 +1,5 @@ +import AngleRightIcon from './AngleRightIcon'; + +export { AngleRightIcon }; + +export default AngleRightIcon; diff --git a/node_modules/buetify/src/components/icons/calendar/CalendarIcon.ts b/node_modules/buetify/src/components/icons/calendar/CalendarIcon.ts new file mode 100755 index 0000000..54b471a --- /dev/null +++ b/node_modules/buetify/src/components/icons/calendar/CalendarIcon.ts @@ -0,0 +1,4 @@ +import { faCalendarAlt } from '@fortawesome/free-solid-svg-icons/faCalendarAlt'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('Calendar', faCalendarAlt); diff --git a/node_modules/buetify/src/components/icons/calendar/index.ts b/node_modules/buetify/src/components/icons/calendar/index.ts new file mode 100755 index 0000000..e6b8478 --- /dev/null +++ b/node_modules/buetify/src/components/icons/calendar/index.ts @@ -0,0 +1,3 @@ +import CalendarIcon from './CalendarIcon'; +export { CalendarIcon }; +export default CalendarIcon; diff --git a/node_modules/buetify/src/components/icons/check/CheckIcon.ts b/node_modules/buetify/src/components/icons/check/CheckIcon.ts new file mode 100755 index 0000000..bcbea4d --- /dev/null +++ b/node_modules/buetify/src/components/icons/check/CheckIcon.ts @@ -0,0 +1,4 @@ +import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('Check', faCheck); diff --git a/node_modules/buetify/src/components/icons/check/index.ts b/node_modules/buetify/src/components/icons/check/index.ts new file mode 100755 index 0000000..34fbbfa --- /dev/null +++ b/node_modules/buetify/src/components/icons/check/index.ts @@ -0,0 +1,5 @@ +import CheckIcon from './CheckIcon'; + +export { CheckIcon }; + +export default CheckIcon; diff --git a/node_modules/buetify/src/components/icons/checkCircle/CheckCircleIcon.ts b/node_modules/buetify/src/components/icons/checkCircle/CheckCircleIcon.ts new file mode 100755 index 0000000..dbac448 --- /dev/null +++ b/node_modules/buetify/src/components/icons/checkCircle/CheckCircleIcon.ts @@ -0,0 +1,4 @@ +import { faCheckCircle } from '@fortawesome/free-solid-svg-icons/faCheckCircle'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('CheckCircle', faCheckCircle); diff --git a/node_modules/buetify/src/components/icons/checkCircle/index.ts b/node_modules/buetify/src/components/icons/checkCircle/index.ts new file mode 100755 index 0000000..f900c6d --- /dev/null +++ b/node_modules/buetify/src/components/icons/checkCircle/index.ts @@ -0,0 +1,5 @@ +import CheckCircleIcon from './CheckCircleIcon'; + +export { CheckCircleIcon }; + +export default CheckCircleIcon; diff --git a/node_modules/buetify/src/components/icons/exclamationCircle/ExclamationCircleIcon.ts b/node_modules/buetify/src/components/icons/exclamationCircle/ExclamationCircleIcon.ts new file mode 100755 index 0000000..e620035 --- /dev/null +++ b/node_modules/buetify/src/components/icons/exclamationCircle/ExclamationCircleIcon.ts @@ -0,0 +1,4 @@ +import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('ExclamationCircle', faExclamationCircle); diff --git a/node_modules/buetify/src/components/icons/exclamationCircle/index.ts b/node_modules/buetify/src/components/icons/exclamationCircle/index.ts new file mode 100755 index 0000000..ff6c8fb --- /dev/null +++ b/node_modules/buetify/src/components/icons/exclamationCircle/index.ts @@ -0,0 +1,5 @@ +import ExclamationCircleIcon from './ExclamationCircleIcon'; + +export { ExclamationCircleIcon }; + +export default ExclamationCircleIcon; diff --git a/node_modules/buetify/src/components/icons/exclamationTriangle/ExclamationTriangleIcon.ts b/node_modules/buetify/src/components/icons/exclamationTriangle/ExclamationTriangleIcon.ts new file mode 100755 index 0000000..625325e --- /dev/null +++ b/node_modules/buetify/src/components/icons/exclamationTriangle/ExclamationTriangleIcon.ts @@ -0,0 +1,4 @@ +import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons/faExclamationTriangle'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('ExclamationTriangle', faExclamationTriangle); diff --git a/node_modules/buetify/src/components/icons/exclamationTriangle/index.ts b/node_modules/buetify/src/components/icons/exclamationTriangle/index.ts new file mode 100755 index 0000000..614ec9f --- /dev/null +++ b/node_modules/buetify/src/components/icons/exclamationTriangle/index.ts @@ -0,0 +1,5 @@ +import ExclamationTriangleIcon from './ExclamationTriangleIcon'; + +export { ExclamationTriangleIcon }; + +export default ExclamationTriangleIcon; diff --git a/node_modules/buetify/src/components/icons/eye/EyeIcon.ts b/node_modules/buetify/src/components/icons/eye/EyeIcon.ts new file mode 100755 index 0000000..7534261 --- /dev/null +++ b/node_modules/buetify/src/components/icons/eye/EyeIcon.ts @@ -0,0 +1,4 @@ +import { faEye } from '@fortawesome/free-solid-svg-icons/faEye'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('Eye', faEye); diff --git a/node_modules/buetify/src/components/icons/eye/index.ts b/node_modules/buetify/src/components/icons/eye/index.ts new file mode 100755 index 0000000..00ef011 --- /dev/null +++ b/node_modules/buetify/src/components/icons/eye/index.ts @@ -0,0 +1,5 @@ +import EyeIcon from './EyeIcon'; + +export { EyeIcon }; +export default EyeIcon; +1; diff --git a/node_modules/buetify/src/components/icons/eyeSlash/EyeSlashIcon.ts b/node_modules/buetify/src/components/icons/eyeSlash/EyeSlashIcon.ts new file mode 100755 index 0000000..e1cecd8 --- /dev/null +++ b/node_modules/buetify/src/components/icons/eyeSlash/EyeSlashIcon.ts @@ -0,0 +1,4 @@ +import { faEyeSlash } from '@fortawesome/free-solid-svg-icons/faEyeSlash'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('EyeSlash', faEyeSlash); diff --git a/node_modules/buetify/src/components/icons/eyeSlash/index.ts b/node_modules/buetify/src/components/icons/eyeSlash/index.ts new file mode 100755 index 0000000..a64624a --- /dev/null +++ b/node_modules/buetify/src/components/icons/eyeSlash/index.ts @@ -0,0 +1,5 @@ +import EyeSlashIcon from './EyeSlashIcon'; + +export { EyeSlashIcon }; + +export default EyeSlashIcon; diff --git a/node_modules/buetify/src/components/icons/horizontalExpansion/HorizontalExpansionIcon.ts b/node_modules/buetify/src/components/icons/horizontalExpansion/HorizontalExpansionIcon.ts new file mode 100755 index 0000000..8907e3b --- /dev/null +++ b/node_modules/buetify/src/components/icons/horizontalExpansion/HorizontalExpansionIcon.ts @@ -0,0 +1,11 @@ +import './horizontal-expansion-icon.sass'; +import { h, SetupContext } from 'vue'; +import { Classes, mergeClasses } from '../../../utils/mergeClasses'; +import { AngleRightIcon } from '../angleRight'; + +export default function HorizontalExpansionIcon(props: { isExpanded: boolean }, { attrs }: SetupContext) { + return h(AngleRightIcon, { + ...attrs, + class: mergeClasses(attrs.class as Classes, ['horizontal-expansion-icon', { 'is-expanded': props.isExpanded }]) + }); +} diff --git a/node_modules/buetify/src/components/icons/horizontalExpansion/horizontal-expansion-icon.sass b/node_modules/buetify/src/components/icons/horizontalExpansion/horizontal-expansion-icon.sass new file mode 100755 index 0000000..d84e7bd --- /dev/null +++ b/node_modules/buetify/src/components/icons/horizontalExpansion/horizontal-expansion-icon.sass @@ -0,0 +1,4 @@ +.horizontal-expansion-icon + transition: transform $speed-slow $easing + &.is-expanded + transform: rotate(90deg) diff --git a/node_modules/buetify/src/components/icons/horizontalExpansion/index.ts b/node_modules/buetify/src/components/icons/horizontalExpansion/index.ts new file mode 100755 index 0000000..efe973d --- /dev/null +++ b/node_modules/buetify/src/components/icons/horizontalExpansion/index.ts @@ -0,0 +1,4 @@ +import HorizontalExpansionIcon from './HorizontalExpansionIcon'; + +export { HorizontalExpansionIcon }; +export default HorizontalExpansionIcon; diff --git a/node_modules/buetify/src/components/icons/index.ts b/node_modules/buetify/src/components/icons/index.ts new file mode 100755 index 0000000..024cf20 --- /dev/null +++ b/node_modules/buetify/src/components/icons/index.ts @@ -0,0 +1,16 @@ +export * from './adjust'; +export * from './angleDown'; +export * from './angleLeft'; +export * from './angleRight'; +export * from './calendar'; +export * from './check'; +export * from './checkCircle'; +export * from './exclamationCircle'; +export * from './exclamationTriangle'; +export * from './eye'; +export * from './eyeSlash'; +export * from './horizontalExpansion'; +export * from './infoCircle'; +export * from './minus'; +export * from './plus'; +export * from './verticalExpansion'; diff --git a/node_modules/buetify/src/components/icons/infoCircle/InfoCircleIcon.ts b/node_modules/buetify/src/components/icons/infoCircle/InfoCircleIcon.ts new file mode 100755 index 0000000..31d0909 --- /dev/null +++ b/node_modules/buetify/src/components/icons/infoCircle/InfoCircleIcon.ts @@ -0,0 +1,4 @@ +import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('InfoCircle', faInfoCircle); diff --git a/node_modules/buetify/src/components/icons/infoCircle/index.ts b/node_modules/buetify/src/components/icons/infoCircle/index.ts new file mode 100755 index 0000000..f72a15b --- /dev/null +++ b/node_modules/buetify/src/components/icons/infoCircle/index.ts @@ -0,0 +1,5 @@ +import InfoCircleIcon from './InfoCircleIcon'; + +export { InfoCircleIcon }; + +export default InfoCircleIcon; diff --git a/node_modules/buetify/src/components/icons/minus/MinusIcon.ts b/node_modules/buetify/src/components/icons/minus/MinusIcon.ts new file mode 100755 index 0000000..383c25f --- /dev/null +++ b/node_modules/buetify/src/components/icons/minus/MinusIcon.ts @@ -0,0 +1,4 @@ +import { faMinus } from '@fortawesome/free-solid-svg-icons/faMinus'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('Minus', faMinus); diff --git a/node_modules/buetify/src/components/icons/minus/index.ts b/node_modules/buetify/src/components/icons/minus/index.ts new file mode 100755 index 0000000..e41dff8 --- /dev/null +++ b/node_modules/buetify/src/components/icons/minus/index.ts @@ -0,0 +1,4 @@ +import MinusIcon from './MinusIcon'; + +export { MinusIcon }; +export default MinusIcon; diff --git a/node_modules/buetify/src/components/icons/plus/PlusIcon.ts b/node_modules/buetify/src/components/icons/plus/PlusIcon.ts new file mode 100755 index 0000000..65e9814 --- /dev/null +++ b/node_modules/buetify/src/components/icons/plus/PlusIcon.ts @@ -0,0 +1,4 @@ +import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus'; +import { useFontAwesomeIconComponent } from '../utils'; + +export default useFontAwesomeIconComponent('Plus', faPlus); diff --git a/node_modules/buetify/src/components/icons/plus/index.ts b/node_modules/buetify/src/components/icons/plus/index.ts new file mode 100755 index 0000000..8758666 --- /dev/null +++ b/node_modules/buetify/src/components/icons/plus/index.ts @@ -0,0 +1,4 @@ +import PlusIcon from './PlusIcon'; + +export { PlusIcon }; +export default PlusIcon; diff --git a/node_modules/buetify/src/components/icons/utils/index.ts b/node_modules/buetify/src/components/icons/utils/index.ts new file mode 100755 index 0000000..91df166 --- /dev/null +++ b/node_modules/buetify/src/components/icons/utils/index.ts @@ -0,0 +1,2 @@ +export * from './useFontAwesomeIconComponent'; +export * from './useMaterialDesignIconComponent'; diff --git a/node_modules/buetify/src/components/icons/utils/useFontAwesomeIconComponent.ts b/node_modules/buetify/src/components/icons/utils/useFontAwesomeIconComponent.ts new file mode 100755 index 0000000..6b86908 --- /dev/null +++ b/node_modules/buetify/src/components/icons/utils/useFontAwesomeIconComponent.ts @@ -0,0 +1,159 @@ +import { parse as faParse, icon as faIcon } from '@fortawesome/fontawesome-svg-core'; +import { h, SetupContext, VNode, FunctionalComponent, defineComponent } from 'vue'; +import { SizeVariant } from '../../../types'; +// import { IconDefinition } from '@fortawesome/fontawesome-common-types'; +import { camelize } from '../../../utils/helpers'; +import { mergeClasses } from '../../../utils/mergeClasses'; +import { BIcon } from '../../icon'; +import { BIconPropsDefinition } from '../../icon/BIcon'; + +//replace iconDefinition with actual definition from fontawesome. causing some typescript issues at the moment + +function objectWithKey(key: string, value: unknown) { + return (Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && value) ? { [key]: value } : {}; +} + +// eslint-disable-next-line +function classList(props: any) { + const classes = { + 'fa-spin': props.spin, + 'fa-pulse': props.pulse, + 'fa-fw': props.fixedWidth, + 'fa-border': props.border, + 'fa-li': props.listItem, + 'fa-inverse': props.inverse, + 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both', + 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both', + [`fa-${props.size}`]: props.size !== undefined, + [`fa-rotate-${props.rotation}`]: props.rotation !== undefined, + [`fa-pull-${props.pull}`]: props.pull !== undefined, + 'fa-swap-opacity': props.swapOpacity + }; + + return Object.keys(classes) + .map(key => (classes[key] ? key : null)) + .filter(key => key); +} + +function styleToObject(style: string) { + return style + .split(';') + .map(s => s.trim()) + .filter(s => s) + .reduce((acc, pair) => { + const i = pair.indexOf(':'); + const prop = camelize(pair.slice(0, i)); + const value = pair.slice(i + 1).trim(); + + acc[prop] = value; + + return acc; + }, {} as any); // eslint-disable-line +} + +function classToObject(cls: string) { + return cls.split(/\s+/).reduce((acc, c) => { + acc[c] = true; + + return acc; + }, {} as any); // eslint-disable-line +} + +// eslint-disable-next-line +function normalizeIconArgs(icon: any) { + if (icon === null) { + return null; + } + + if (typeof icon === 'object' && icon.prefix && icon.iconName) { + return icon; + } + + if (Array.isArray(icon) && icon.length === 2) { + return { prefix: icon[0], iconName: icon[1] }; + } + + if (typeof icon === 'string') { + return { prefix: 'fas', iconName: icon }; + } +} + +// eslint-disable-next-line +function convert(element: any, attrs: any = {}): VNode { + if (typeof element === 'string') { + return h(element); + } + + const mixins = Object.keys(element.attributes || {}).reduce( + (acc, key) => { + const val = element.attributes[key]; + + switch (key) { + case 'class': + acc['class'] = classToObject(val); + break; + case 'style': + acc['style'] = styleToObject(val); + break; + default: + acc[key] = val; + } + + return acc; + }, + { class: {}, style: {} } as any // eslint-disable-line + ); + const { class: dClass = {}, style: dStyle = {}, ...remainingData } = attrs; + const { class: mClass = {}, style: mStyle = {}, ...mRemainingData } = mixins; + return h( + element.tag, + { + ...attrs, + class: mergeClasses(mClass, dClass), + style: { ...mStyle, ...dStyle }, + ...mRemainingData, + ...remainingData + }, + (element.children || []).map(convert) + ); +} + +// eslint-disable-next-line +function useFontAwesomeIconComponent_(iconArgs: any): FunctionalComponent { + return function FontAwesomeIcon(_, { attrs }: SetupContext): VNode { + const { mask: maskArgs, symbol, title } = attrs as any; // eslint-disable-line + const icon = normalizeIconArgs(iconArgs); + const classes = objectWithKey('classes', classList(attrs)); + const transform = objectWithKey( + 'transform', + typeof attrs.transform === 'string' ? faParse.transform(attrs.transform) : attrs.transform + ); + const mask = objectWithKey('mask', normalizeIconArgs(maskArgs)); + + const { abstract } = faIcon(icon, { ...classes, ...transform, ...mask, symbol, title }); + return convert(abstract[0], attrs); + }; +} + +const SIZE_MAP: Record<SizeVariant, string> = { + 'is-small': '', + '': '', + 'is-medium': 'fa-lg', + 'is-large': 'fa-2x' +}; + +// eslint-disable-next-line +export function useFontAwesomeIconComponent(name: string, iconDefinition: any) { + const icon = useFontAwesomeIconComponent_(iconDefinition); + return defineComponent({ + props: { + ...BIconPropsDefinition, + iconClass: { + type: String + } + }, + setup(props) { + return () => h(BIcon, props, () => h(icon, { class: [props.iconClass, SIZE_MAP[props.size]] })); + } + }) as any; // eslint-disable-line +} diff --git a/node_modules/buetify/src/components/icons/utils/useMaterialDesignIconComponent.ts b/node_modules/buetify/src/components/icons/utils/useMaterialDesignIconComponent.ts new file mode 100755 index 0000000..2f74deb --- /dev/null +++ b/node_modules/buetify/src/components/icons/utils/useMaterialDesignIconComponent.ts @@ -0,0 +1,84 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { defineComponent, shallowRef, PropType, h, watchEffect } from 'vue'; +import { isString } from '../../../utils/helpers'; + +const SVG_STORE = new Map<string, Promise<string>>(); + +function isSVG(mimetype: unknown): boolean { + return isString(mimetype) ? mimetype.includes('svg') : false; +} + +function load(src: string): Promise<string> { + let r = SVG_STORE.get(src); + if (!r) { + return new Promise((resolve, reject) => { + const request = new window.XMLHttpRequest(); + request.open('GET', src, true); + request.onload = () => { + const mimetype = request.getResponseHeader('content-type'); + if (request.status === 200) { + if (isSVG(mimetype)) { + r = Promise.resolve(request.response); + SVG_STORE.set(src, r); + resolve(request.response); + } else { + reject(`The file ${src} is not a valid SVG.`); + } + } else if (request.status >= 400 && request.status < 500) { + reject(`The file ${src} do not exists.`); + } else { + reject(`Something bad happened trying to fetch ${src}.`); + } + }; + request.onerror = reject; + request.onabort = reject; + request.send(); + }); + } else { + return r; + } +} + +export const SvgLoader = defineComponent({ + name: 'svg-loader', + props: { + src: { + type: String, + required: true + }, + onLoad: { + type: Function as PropType<IO<void>>, + required: false + }, + onError: { + type: Function as PropType<FunctionN<[Error], void>>, + required: false + } + }, + setup(props) { + const html = shallowRef(null as null | string); + + watchEffect(() => { + html.value = null; + load(props.src) + .then(svg => { + html.value = svg; + if (props.onLoad) { + props.onLoad(); + } + }) + .catch((e: Error) => { + if (props.onError) { + props.onError(e); + } + }); + }); + + return () => + h('i', { + class: 'is-block is-fullwidth', + innerHtml: html.value + }); + } +}); diff --git a/node_modules/buetify/src/components/icons/verticalExpansion/VerticalExpansionIcon.ts b/node_modules/buetify/src/components/icons/verticalExpansion/VerticalExpansionIcon.ts new file mode 100755 index 0000000..9e604b5 --- /dev/null +++ b/node_modules/buetify/src/components/icons/verticalExpansion/VerticalExpansionIcon.ts @@ -0,0 +1,19 @@ +import './vertical-expansion-icon.sass'; +import { h, defineComponent } from 'vue'; +import { AngleDownIcon } from '../angleDown'; + +export default defineComponent({ + name: 'vertical-expansion-icon', + props: { + isExpanded: { + type: Boolean, + required: true + } + }, + setup(props) { + return () => + h(AngleDownIcon, { + class: ['vertical-expansion-icon', { 'is-expanded': props.isExpanded }] + }); + } +}); diff --git a/node_modules/buetify/src/components/icons/verticalExpansion/index.ts b/node_modules/buetify/src/components/icons/verticalExpansion/index.ts new file mode 100755 index 0000000..46382ed --- /dev/null +++ b/node_modules/buetify/src/components/icons/verticalExpansion/index.ts @@ -0,0 +1,3 @@ +import VerticalExpansionIcon from './VerticalExpansionIcon'; +export { VerticalExpansionIcon }; +export default VerticalExpansionIcon; diff --git a/node_modules/buetify/src/components/icons/verticalExpansion/vertical-expansion-icon.sass b/node_modules/buetify/src/components/icons/verticalExpansion/vertical-expansion-icon.sass new file mode 100755 index 0000000..c088ab4 --- /dev/null +++ b/node_modules/buetify/src/components/icons/verticalExpansion/vertical-expansion-icon.sass @@ -0,0 +1,4 @@ +.vertical-expansion-icon + transition: transform $speed-slow $easing + &.is-expanded + transform: rotate(180deg) diff --git a/node_modules/buetify/src/components/image/BImage.ts b/node_modules/buetify/src/components/image/BImage.ts new file mode 100755 index 0000000..71bbf78 --- /dev/null +++ b/node_modules/buetify/src/components/image/BImage.ts @@ -0,0 +1,32 @@ +import 'bulma/sass/elements/image.sass'; +import { Classes } from '../../utils/mergeClasses'; +import { SetupContext, h } from 'vue'; + +export interface BImageProps { + src: string; + alt: string; + isRounded?: boolean; + imgClass?: Classes; +} + +export default function BImage(props: BImageProps, { attrs }: SetupContext) { + return h( + 'figure', + { + ...attrs, + class: 'image' + }, + [ + h('img', { + class: [ + props.imgClass, + { + 'is-rounded': props.isRounded + } + ], + src: props.src, + alt: props.alt + }) + ] + ); +} diff --git a/node_modules/buetify/src/components/image/index.ts b/node_modules/buetify/src/components/image/index.ts new file mode 100755 index 0000000..3c2d169 --- /dev/null +++ b/node_modules/buetify/src/components/image/index.ts @@ -0,0 +1,4 @@ +import BImage from './BImage'; + +export { BImage }; +export default BImage; diff --git a/node_modules/buetify/src/components/index.ts b/node_modules/buetify/src/components/index.ts new file mode 100755 index 0000000..58884dc --- /dev/null +++ b/node_modules/buetify/src/components/index.ts @@ -0,0 +1,34 @@ +export * from './accordion'; +export * from './app'; +export * from './appHeader'; +export * from './button'; +export * from './dialog'; +export * from './dropdown'; +export * from './form'; +export * from './higherOrder'; +export * from './icon'; +export * from './icons'; +export * from './image'; +export * from './layout'; +export * from './link'; +export * from './loading'; +export * from './menu'; +export * from './message'; +export * from './modal'; +export * from './navbar'; +export * from './sidebar'; +export * from './notices'; +export * from './overlay'; +export * from './pageLoader'; +export * from './pagination'; +export * from './pricingTable'; +export * from './renderless'; +export * from './scroll'; +export * from './sheet'; +export * from './steps'; +export * from './table'; +export * from './tabs'; +export * from './tag'; +export * from './themeToggle'; +export * from './title'; +export * from './tooltip'; diff --git a/node_modules/buetify/src/components/layout/box/BBox.ts b/node_modules/buetify/src/components/layout/box/BBox.ts new file mode 100755 index 0000000..4778e6b --- /dev/null +++ b/node_modules/buetify/src/components/layout/box/BBox.ts @@ -0,0 +1,4 @@ +import './box.sass'; +import { getThemeableFunctionalComponent } from '../../../utils/getThemeableFunctionalComponent'; + +export default getThemeableFunctionalComponent({ cls: 'box', el: 'section' }); diff --git a/node_modules/buetify/src/components/layout/box/box.sass b/node_modules/buetify/src/components/layout/box/box.sass new file mode 100755 index 0000000..6ddf029 --- /dev/null +++ b/node_modules/buetify/src/components/layout/box/box.sass @@ -0,0 +1,40 @@ +$box-radius: $radius-large !default +$box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default +$box-padding: 1.25rem !default + +$box-link-hover-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px $link !default +$box-link-active-shadow: inset 0 1px 2px rgba($black, 0.2), 0 0 0 1px $link !default + +$all-colors: mergeColorMaps($colors, $shades) + +.box + @extend %block + border-radius: $box-radius + box-shadow: $box-shadow + display: block + padding: $box-padding + @each $name, $pair in $all-colors + $color: nth($pair, 1) + $color-invert: findColorInvert($color) + &.is-#{$name} + background-color: $color + color: $color-invert + box-shadow: 0 2px 3px rgba($color-invert, 0.1), 0 0 0 1px rgba($color-invert, 0.1) + + +a.box + &:hover, + &:focus + box-shadow: $box-link-hover-shadow + &:active + box-shadow: $box-link-active-shadow + @each $name, $pair in $all-colors + $color: nth($pair, 1) + $color-invert: findColorInvert($color) + &.is-#{$name} + &:hover, + &:focus + box-shadow: 0 2px 3px rgba($color-invert, 0.1), 0 0 0 1px $link + &:active + box-shadow: inset 0 1px 2px rgba($color-invert, 0.2), 0 0 0 1px $link + diff --git a/node_modules/buetify/src/components/layout/box/index.ts b/node_modules/buetify/src/components/layout/box/index.ts new file mode 100755 index 0000000..5073b07 --- /dev/null +++ b/node_modules/buetify/src/components/layout/box/index.ts @@ -0,0 +1,5 @@ +import BBox from './BBox'; + +export { BBox }; + +export default BBox; diff --git a/node_modules/buetify/src/components/layout/columns/BColumn.ts b/node_modules/buetify/src/components/layout/columns/BColumn.ts new file mode 100755 index 0000000..5dce948 --- /dev/null +++ b/node_modules/buetify/src/components/layout/columns/BColumn.ts @@ -0,0 +1,4 @@ +import './columns.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('column', 'div'); diff --git a/node_modules/buetify/src/components/layout/columns/BColumns.ts b/node_modules/buetify/src/components/layout/columns/BColumns.ts new file mode 100755 index 0000000..cc6a3a6 --- /dev/null +++ b/node_modules/buetify/src/components/layout/columns/BColumns.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('columns', 'div'); diff --git a/node_modules/buetify/src/components/layout/columns/columns.sass b/node_modules/buetify/src/components/layout/columns/columns.sass new file mode 100755 index 0000000..4ebc2e9 --- /dev/null +++ b/node_modules/buetify/src/components/layout/columns/columns.sass @@ -0,0 +1,510 @@ +$column-gap: 0.75rem !default + +.column + display: block + flex-basis: 0 + flex-grow: 1 + flex-shrink: 1 + padding: $column-gap + .columns.is-mobile > &.is-narrow + flex: none + .columns.is-mobile > &.is-full + flex: none + width: 100% + .columns.is-mobile > &.is-three-quarters + flex: none + width: 75% + .columns.is-mobile > &.is-two-thirds + flex: none + width: 66.6666% + .columns.is-mobile > &.is-half + flex: none + width: 50% + .columns.is-mobile > &.is-one-third + flex: none + width: 33.3333% + .columns.is-mobile > &.is-one-quarter + flex: none + width: 25% + .columns.is-mobile > &.is-one-fifth + flex: none + width: 20% + .columns.is-mobile > &.is-two-fifths + flex: none + width: 40% + .columns.is-mobile > &.is-three-fifths + flex: none + width: 60% + .columns.is-mobile > &.is-four-fifths + flex: none + width: 80% + .columns.is-mobile > &.is-offset-three-quarters + margin-left: 75% + .columns.is-mobile > &.is-offset-two-thirds + margin-left: 66.6666% + .columns.is-mobile > &.is-offset-half + margin-left: 50% + .columns.is-mobile > &.is-offset-one-third + margin-left: 33.3333% + .columns.is-mobile > &.is-offset-one-quarter + margin-left: 25% + .columns.is-mobile > &.is-offset-one-fifth + margin-left: 20% + .columns.is-mobile > &.is-offset-two-fifths + margin-left: 40% + .columns.is-mobile > &.is-offset-three-fifths + margin-left: 60% + .columns.is-mobile > &.is-offset-four-fifths + margin-left: 80% + @for $i from 1 through 12 + .columns.is-mobile > &.is-#{$i} + flex: none + width: percentage($i / 12) + .columns.is-mobile > &.is-offset-#{$i} + margin-left: percentage($i / 12) + +mobile + &.is-narrow-mobile + flex: none + width: auto + &.is-full-mobile + flex: none + width: 100% + &.is-three-quarters-mobile + flex: none + width: 75% + &.is-two-thirds-mobile + flex: none + width: 66.6666% + &.is-half-mobile + flex: none + width: 50% + &.is-one-third-mobile + flex: none + width: 33.3333% + &.is-one-quarter-mobile + flex: none + width: 25% + &.is-one-fifth-mobile + flex: none + width: 20% + &.is-two-fifths-mobile + flex: none + width: 40% + &.is-three-fifths-mobile + flex: none + width: 60% + &.is-four-fifths-mobile + flex: none + width: 80% + &.is-offset-three-quarters-mobile + margin-left: 75% + &.is-offset-two-thirds-mobile + margin-left: 66.6666% + &.is-offset-half-mobile + margin-left: 50% + &.is-offset-one-third-mobile + margin-left: 33.3333% + &.is-offset-one-quarter-mobile + margin-left: 25% + &.is-offset-one-fifth-mobile + margin-left: 20% + &.is-offset-two-fifths-mobile + margin-left: 40% + &.is-offset-three-fifths-mobile + margin-left: 60% + &.is-offset-four-fifths-mobile + margin-left: 80% + @for $i from 1 through 12 + &.is-#{$i}-mobile + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-mobile + margin-left: percentage($i / 12) + +tablet + &.is-narrow, + &.is-narrow-tablet + flex: none + width: auto + &.is-full, + &.is-full-tablet + flex: none + width: 100% + &.is-three-quarters, + &.is-three-quarters-tablet + flex: none + width: 75% + &.is-two-thirds, + &.is-two-thirds-tablet + flex: none + width: 66.6666% + &.is-half, + &.is-half-tablet + flex: none + width: 50% + &.is-one-third, + &.is-one-third-tablet + flex: none + width: 33.3333% + &.is-one-quarter, + &.is-one-quarter-tablet + flex: none + width: 25% + &.is-one-fifth, + &.is-one-fifth-tablet + flex: none + width: 20% + &.is-two-fifths, + &.is-two-fifths-tablet + flex: none + width: 40% + &.is-three-fifths, + &.is-three-fifths-tablet + flex: none + width: 60% + &.is-four-fifths, + &.is-four-fifths-tablet + flex: none + width: 80% + &.is-offset-three-quarters, + &.is-offset-three-quarters-tablet + margin-left: 75% + &.is-offset-two-thirds, + &.is-offset-two-thirds-tablet + margin-left: 66.6666% + &.is-offset-half, + &.is-offset-half-tablet + margin-left: 50% + &.is-offset-one-third, + &.is-offset-one-third-tablet + margin-left: 33.3333% + &.is-offset-one-quarter, + &.is-offset-one-quarter-tablet + margin-left: 25% + &.is-offset-one-fifth, + &.is-offset-one-fifth-tablet + margin-left: 20% + &.is-offset-two-fifths, + &.is-offset-two-fifths-tablet + margin-left: 40% + &.is-offset-three-fifths, + &.is-offset-three-fifths-tablet + margin-left: 60% + &.is-offset-four-fifths, + &.is-offset-four-fifths-tablet + margin-left: 80% + @for $i from 1 through 12 + &.is-#{$i}, + &.is-#{$i}-tablet + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}, + &.is-offset-#{$i}-tablet + margin-left: percentage($i / 12) + +touch + &.is-narrow-touch + flex: none + width: auto + &.is-full-touch + flex: none + width: 100% + &.is-three-quarters-touch + flex: none + width: 75% + &.is-two-thirds-touch + flex: none + width: 66.6666% + &.is-half-touch + flex: none + width: 50% + &.is-one-third-touch + flex: none + width: 33.3333% + &.is-one-quarter-touch + flex: none + width: 25% + &.is-one-fifth-touch + flex: none + width: 20% + &.is-two-fifths-touch + flex: none + width: 40% + &.is-three-fifths-touch + flex: none + width: 60% + &.is-four-fifths-touch + flex: none + width: 80% + &.is-offset-three-quarters-touch + margin-left: 75% + &.is-offset-two-thirds-touch + margin-left: 66.6666% + &.is-offset-half-touch + margin-left: 50% + &.is-offset-one-third-touch + margin-left: 33.3333% + &.is-offset-one-quarter-touch + margin-left: 25% + &.is-offset-one-fifth-touch + margin-left: 20% + &.is-offset-two-fifths-touch + margin-left: 40% + &.is-offset-three-fifths-touch + margin-left: 60% + &.is-offset-four-fifths-touch + margin-left: 80% + @for $i from 1 through 12 + &.is-#{$i}-touch + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-touch + margin-left: percentage($i / 12) + +desktop + &.is-narrow-desktop + flex: none + width: auto + &.is-full-desktop + flex: none + width: 100% + &.is-three-quarters-desktop + flex: none + width: 75% + &.is-two-thirds-desktop + flex: none + width: 66.6666% + &.is-half-desktop + flex: none + width: 50% + &.is-one-third-desktop + flex: none + width: 33.3333% + &.is-one-quarter-desktop + flex: none + width: 25% + &.is-one-fifth-desktop + flex: none + width: 20% + &.is-two-fifths-desktop + flex: none + width: 40% + &.is-three-fifths-desktop + flex: none + width: 60% + &.is-four-fifths-desktop + flex: none + width: 80% + &.is-offset-three-quarters-desktop + margin-left: 75% + &.is-offset-two-thirds-desktop + margin-left: 66.6666% + &.is-offset-half-desktop + margin-left: 50% + &.is-offset-one-third-desktop + margin-left: 33.3333% + &.is-offset-one-quarter-desktop + margin-left: 25% + &.is-offset-one-fifth-desktop + margin-left: 20% + &.is-offset-two-fifths-desktop + margin-left: 40% + &.is-offset-three-fifths-desktop + margin-left: 60% + &.is-offset-four-fifths-desktop + margin-left: 80% + @for $i from 1 through 12 + &.is-#{$i}-desktop + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-desktop + margin-left: percentage($i / 12) + +widescreen + &.is-narrow-widescreen + flex: none + width: auto + &.is-full-widescreen + flex: none + width: 100% + &.is-three-quarters-widescreen + flex: none + width: 75% + &.is-two-thirds-widescreen + flex: none + width: 66.6666% + &.is-half-widescreen + flex: none + width: 50% + &.is-one-third-widescreen + flex: none + width: 33.3333% + &.is-one-quarter-widescreen + flex: none + width: 25% + &.is-one-fifth-widescreen + flex: none + width: 20% + &.is-two-fifths-widescreen + flex: none + width: 40% + &.is-three-fifths-widescreen + flex: none + width: 60% + &.is-four-fifths-widescreen + flex: none + width: 80% + &.is-offset-three-quarters-widescreen + margin-left: 75% + &.is-offset-two-thirds-widescreen + margin-left: 66.6666% + &.is-offset-half-widescreen + margin-left: 50% + &.is-offset-one-third-widescreen + margin-left: 33.3333% + &.is-offset-one-quarter-widescreen + margin-left: 25% + &.is-offset-one-fifth-widescreen + margin-left: 20% + &.is-offset-two-fifths-widescreen + margin-left: 40% + &.is-offset-three-fifths-widescreen + margin-left: 60% + &.is-offset-four-fifths-widescreen + margin-left: 80% + @for $i from 1 through 12 + &.is-#{$i}-widescreen + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-widescreen + margin-left: percentage($i / 12) + +fullhd + &.is-narrow-fullhd + flex: none + width: auto + &.is-full-fullhd + flex: none + width: 100% + &.is-three-quarters-fullhd + flex: none + width: 75% + &.is-two-thirds-fullhd + flex: none + width: 66.6666% + &.is-half-fullhd + flex: none + width: 50% + &.is-one-third-fullhd + flex: none + width: 33.3333% + &.is-one-quarter-fullhd + flex: none + width: 25% + &.is-one-fifth-fullhd + flex: none + width: 20% + &.is-two-fifths-fullhd + flex: none + width: 40% + &.is-three-fifths-fullhd + flex: none + width: 60% + &.is-four-fifths-fullhd + flex: none + width: 80% + &.is-offset-three-quarters-fullhd + margin-left: 75% + &.is-offset-two-thirds-fullhd + margin-left: 66.6666% + &.is-offset-half-fullhd + margin-left: 50% + &.is-offset-one-third-fullhd + margin-left: 33.3333% + &.is-offset-one-quarter-fullhd + margin-left: 25% + &.is-offset-one-fifth-fullhd + margin-left: 20% + &.is-offset-two-fifths-fullhd + margin-left: 40% + &.is-offset-three-fifths-fullhd + margin-left: 60% + &.is-offset-four-fifths-fullhd + margin-left: 80% + @for $i from 1 through 12 + &.is-#{$i}-fullhd + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-fullhd + margin-left: percentage($i / 12) + +.columns + margin-left: (-$column-gap) + margin-right: (-$column-gap) + margin-top: (-$column-gap) + &:last-child + margin-bottom: (-$column-gap) + &:not(:last-child) + margin-bottom: calc(1.5rem - #{$column-gap}) + // Modifiers + &.is-centered + justify-content: center + &.is-gapless + margin-left: 0 + margin-right: 0 + margin-top: 0 + & > .column + margin: 0 + padding: 0 !important + &:not(:last-child) + margin-bottom: 1.5rem + &:last-child + margin-bottom: 0 + &.is-mobile + display: flex + &.is-multiline + flex-wrap: wrap + &.is-vcentered + align-items: center + // Responsiveness + +tablet + &:not(.is-desktop) + display: flex + +desktop + // Modifiers + &.is-desktop + display: flex + +@if $variable-columns + .columns.is-variable + --columnGap: 0.75rem + margin-left: calc(-1 * var(--columnGap)) + margin-right: calc(-1 * var(--columnGap)) + .column + padding-left: var(--columnGap) + padding-right: var(--columnGap) + @for $i from 0 through 8 + &.is-#{$i} + --columnGap: #{$i * 0.25rem} + +mobile + &.is-#{$i}-mobile + --columnGap: #{$i * 0.25rem} + +tablet + &.is-#{$i}-tablet + --columnGap: #{$i * 0.25rem} + +tablet-only + &.is-#{$i}-tablet-only + --columnGap: #{$i * 0.25rem} + +touch + &.is-#{$i}-touch + --columnGap: #{$i * 0.25rem} + +desktop + &.is-#{$i}-desktop + --columnGap: #{$i * 0.25rem} + +desktop-only + &.is-#{$i}-desktop-only + --columnGap: #{$i * 0.25rem} + +widescreen + &.is-#{$i}-widescreen + --columnGap: #{$i * 0.25rem} + +widescreen-only + &.is-#{$i}-widescreen-only + --columnGap: #{$i * 0.25rem} + +fullhd + &.is-#{$i}-fullhd + --columnGap: #{$i * 0.25rem} diff --git a/node_modules/buetify/src/components/layout/columns/index.ts b/node_modules/buetify/src/components/layout/columns/index.ts new file mode 100755 index 0000000..cfe9182 --- /dev/null +++ b/node_modules/buetify/src/components/layout/columns/index.ts @@ -0,0 +1,4 @@ +import BColumns from './BColumns'; +import BColumn from './BColumn'; + +export { BColumns, BColumn }; diff --git a/node_modules/buetify/src/components/layout/container/BContainer.ts b/node_modules/buetify/src/components/layout/container/BContainer.ts new file mode 100755 index 0000000..096828c --- /dev/null +++ b/node_modules/buetify/src/components/layout/container/BContainer.ts @@ -0,0 +1,4 @@ +import 'bulma/sass/elements/container.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('container', 'div'); diff --git a/node_modules/buetify/src/components/layout/container/index.ts b/node_modules/buetify/src/components/layout/container/index.ts new file mode 100755 index 0000000..730f8f5 --- /dev/null +++ b/node_modules/buetify/src/components/layout/container/index.ts @@ -0,0 +1,5 @@ +import BContainer from './BContainer'; + +export { BContainer }; + +export default BContainer; diff --git a/node_modules/buetify/src/components/layout/content/BContent.ts b/node_modules/buetify/src/components/layout/content/BContent.ts new file mode 100755 index 0000000..8887627 --- /dev/null +++ b/node_modules/buetify/src/components/layout/content/BContent.ts @@ -0,0 +1,4 @@ +import 'bulma/sass/elements/content.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('content', 'div'); diff --git a/node_modules/buetify/src/components/layout/content/index.ts b/node_modules/buetify/src/components/layout/content/index.ts new file mode 100755 index 0000000..5ac7d4c --- /dev/null +++ b/node_modules/buetify/src/components/layout/content/index.ts @@ -0,0 +1,5 @@ +import BContent from './BContent'; + +export { BContent }; + +export default BContent; diff --git a/node_modules/buetify/src/components/layout/divider/BHorizontalDivider.ts b/node_modules/buetify/src/components/layout/divider/BHorizontalDivider.ts new file mode 100755 index 0000000..959c1b1 --- /dev/null +++ b/node_modules/buetify/src/components/layout/divider/BHorizontalDivider.ts @@ -0,0 +1,23 @@ +import './divider.sass'; +import { DEFAULT_THEME_COLOR_MAP, useTheme } from '../../../composables/theme'; +import { ThemeColorMap } from '../../../types/ThemeColorMap'; +import { h } from 'vue'; + +export interface BDividerProps { + text?: string; + tag?: string; + themeMap?: ThemeColorMap; + isThemeable?: boolean; +} + +export default function BHorizontalDivider(props: BDividerProps) { + const { themeClasses } = useTheme({ + themeMap: props.themeMap ?? DEFAULT_THEME_COLOR_MAP, + isThemeable: props.isThemeable ?? true + }); + + return h(props.tag ?? 'hr', { + class: ['is-divider', ...themeClasses.value], + 'data-content': props.text || null + }); +} diff --git a/node_modules/buetify/src/components/layout/divider/BVerticalDivider.ts b/node_modules/buetify/src/components/layout/divider/BVerticalDivider.ts new file mode 100755 index 0000000..c7e80ae --- /dev/null +++ b/node_modules/buetify/src/components/layout/divider/BVerticalDivider.ts @@ -0,0 +1,15 @@ +import './divider.sass'; +import { DEFAULT_THEME_COLOR_MAP, useTheme } from '../../../composables/theme'; +import { h } from 'vue'; +import { BDividerProps } from './BHorizontalDivider'; + +export default function BVerticalDivider(props: BDividerProps) { + const { themeClasses } = useTheme({ + themeMap: props.themeMap ?? DEFAULT_THEME_COLOR_MAP, + isThemeable: props.isThemeable ?? true + }); + return h(props.tag ?? 'hr', { + class: ['is-divider-vertical', ...themeClasses.value], + 'data-content': props.text || null + }); +} diff --git a/node_modules/buetify/src/components/layout/divider/divider.sass b/node_modules/buetify/src/components/layout/divider/divider.sass new file mode 100755 index 0000000..ebbd3ce --- /dev/null +++ b/node_modules/buetify/src/components/layout/divider/divider.sass @@ -0,0 +1,55 @@ +$divider-background-color: $grey-lighter !default +$divider-font-size: $size-7 !default +$divider-color: $grey-light !default + +.is-divider, .is-divider-vertical + display: block + position: relative + +.is-divider[data-content]::after, .is-divider-vertical[data-content]::after + background: $divider-background-color + color: $divider-color + content: attr(data-content) + display: inline-block + font-size: $divider-font-size + padding: 0 .8rem + -webkit-transform: translateY(-1rem) + -ms-transform: translateY(-1rem) + transform: translateY(-1rem) + text-align: center + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + .is-#{$name}.is-divider[data-content]::after, .is-#{$name}.is-divider-vertical[data-content]::after + background: $color + color: darken($color-invert, 25%) + +.is-divider + border-top: .1rem solid $divider-background-color + height: .1rem + margin: 2rem 0 + text-align: center + +.is-divider-vertical + display: block + padding: 2rem + position: relative + &::before + border-left: .1rem solid $divider-background-color + bottom: 1rem + content: "" + display: block + left: 50% + position: absolute + top: 1rem + -webkit-transform: translateX(-50%) + -ms-transform: translateX(-50%) + transform: translateX(-50%) + &[data-content]::after + left: 50% + padding: .4rem 0 + position: relative + top: 50% + -webkit-transform: translate(-50%, -50%) + -ms-transform: translate(-50%, -50%) + transform: translate(-50%, -50%) diff --git a/node_modules/buetify/src/components/layout/divider/index.ts b/node_modules/buetify/src/components/layout/divider/index.ts new file mode 100755 index 0000000..2d13dec --- /dev/null +++ b/node_modules/buetify/src/components/layout/divider/index.ts @@ -0,0 +1,4 @@ +import BHorizontalDivider from './BHorizontalDivider'; +import BVerticalDivider from './BVerticalDivider'; + +export { BHorizontalDivider, BVerticalDivider }; diff --git a/node_modules/buetify/src/components/layout/hero/BHero.ts b/node_modules/buetify/src/components/layout/hero/BHero.ts new file mode 100755 index 0000000..aa84b3c --- /dev/null +++ b/node_modules/buetify/src/components/layout/hero/BHero.ts @@ -0,0 +1,4 @@ +import './hero.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('hero', 'section'); diff --git a/node_modules/buetify/src/components/layout/hero/BHeroBody.ts b/node_modules/buetify/src/components/layout/hero/BHeroBody.ts new file mode 100755 index 0000000..81a63ce --- /dev/null +++ b/node_modules/buetify/src/components/layout/hero/BHeroBody.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('hero-body', 'div'); diff --git a/node_modules/buetify/src/components/layout/hero/hero.sass b/node_modules/buetify/src/components/layout/hero/hero.sass new file mode 100755 index 0000000..64e5808 --- /dev/null +++ b/node_modules/buetify/src/components/layout/hero/hero.sass @@ -0,0 +1,156 @@ +// Main container + + +.hero + align-items: stretch + display: flex + flex-direction: column + justify-content: space-between + .navbar + background: none + .tabs + ul + border-bottom: none + // Colors + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + strong + color: inherit + .title + color: inherit + .subtitle + color: inherit + a:not(.button), + strong + color: inherit + .navbar-menu + +touch + background-color: $color + .navbar-item, + .navbar-link + color: bulmaRgba($color-invert, 0.7) + a.navbar-item, + .navbar-link + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .tabs + a + color: $color-invert + opacity: 0.9 + &:hover + opacity: 1 + li + &.is-active a + opacity: 1 + &.is-boxed, + &.is-toggle + a + color: $color-invert + &:hover + background-color: bulmaRgba($black, 0.1) + li.is-active a + &, + &:hover + background-color: $color-invert + border-color: $color-invert + color: $color + // Modifiers + &.is-bold + $gradient-top-left: darken(saturate(adjust-hue($color, -10deg), 10%), 10%) + $gradient-bottom-right: lighten(saturate(adjust-hue($color, 10deg), 5%), 5%) + background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%) + +mobile + .navbar-menu + background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%) + // Responsiveness + // +mobile + // .nav-toggleListItem + // span + // background-color: $color-invert + // &:hover + // background-color: rgba($black, 0.1) + // &.is-active + // span + // background-color: $color-invert + // .nav-menu + // .nav-item + // border-top-color: rgba($color-invert, 0.2) + // Sizes + &.is-small + .hero-body + padding-bottom: 1.5rem + padding-top: 1.5rem + &.is-medium + +tablet + .hero-body + padding-bottom: 9rem + padding-top: 9rem + &.is-large + +tablet + .hero-body + padding-bottom: 18rem + padding-top: 18rem + &.is-halfheight, + &.is-fullheight, + &.is-fullheight-with-navbar + .hero-body + align-items: center + display: flex + & > .container + flex-grow: 1 + flex-shrink: 1 + &.is-halfheight + min-height: 50vh + &.is-fullheight + min-height: 100vh + +// Components + +.hero-video + @extend %overlay + overflow: hidden + video + left: 50% + min-height: 100% + min-width: 100% + position: absolute + top: 50% + transform: translate3d(-50%, -50%, 0) + // Modifiers + &.is-transparent + opacity: 0.3 + // Responsiveness + +mobile + display: none + +.hero-buttons + margin-top: 1.5rem + // Responsiveness + +mobile + .button + display: flex + &:not(:last-child) + margin-bottom: 0.75rem + +tablet + display: flex + justify-content: center + .button:not(:last-child) + margin-right: 1.5rem + +// Containers + +.hero-head, +.hero-foot + flex-grow: 0 + flex-shrink: 0 + +.hero-body + flex-grow: 1 + flex-shrink: 0 + padding: 3rem 1.5rem diff --git a/node_modules/buetify/src/components/layout/hero/index.ts b/node_modules/buetify/src/components/layout/hero/index.ts new file mode 100755 index 0000000..8ba41e9 --- /dev/null +++ b/node_modules/buetify/src/components/layout/hero/index.ts @@ -0,0 +1,4 @@ +import BHero from './BHero'; +import BHeroBody from './BHeroBody'; + +export { BHero, BHeroBody }; diff --git a/node_modules/buetify/src/components/layout/index.ts b/node_modules/buetify/src/components/layout/index.ts new file mode 100755 index 0000000..ff1b890 --- /dev/null +++ b/node_modules/buetify/src/components/layout/index.ts @@ -0,0 +1,9 @@ +export * from './box'; +export * from './columns'; +export * from './container'; +export * from './content'; +export * from './divider'; +export * from './hero'; +export * from './level'; +export * from './list'; +export * from './media'; diff --git a/node_modules/buetify/src/components/layout/level/BLevel.ts b/node_modules/buetify/src/components/layout/level/BLevel.ts new file mode 100755 index 0000000..7d5afc5 --- /dev/null +++ b/node_modules/buetify/src/components/layout/level/BLevel.ts @@ -0,0 +1,4 @@ +import 'bulma/sass/components/level.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('level', 'div'); diff --git a/node_modules/buetify/src/components/layout/level/BLevelItem.ts b/node_modules/buetify/src/components/layout/level/BLevelItem.ts new file mode 100755 index 0000000..a2cbb71 --- /dev/null +++ b/node_modules/buetify/src/components/layout/level/BLevelItem.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('level-item', 'div'); diff --git a/node_modules/buetify/src/components/layout/level/BLevelLeft.ts b/node_modules/buetify/src/components/layout/level/BLevelLeft.ts new file mode 100755 index 0000000..f95399b --- /dev/null +++ b/node_modules/buetify/src/components/layout/level/BLevelLeft.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('level-left', 'div'); diff --git a/node_modules/buetify/src/components/layout/level/BLevelRight.ts b/node_modules/buetify/src/components/layout/level/BLevelRight.ts new file mode 100755 index 0000000..828352c --- /dev/null +++ b/node_modules/buetify/src/components/layout/level/BLevelRight.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('level-right', 'div'); diff --git a/node_modules/buetify/src/components/layout/level/index.ts b/node_modules/buetify/src/components/layout/level/index.ts new file mode 100755 index 0000000..08c16b5 --- /dev/null +++ b/node_modules/buetify/src/components/layout/level/index.ts @@ -0,0 +1,6 @@ +import BLevel from './BLevel'; +import BLevelItem from './BLevelItem'; +import BLevelLeft from './BLevelLeft'; +import BLevelRight from './BLevelRight'; + +export { BLevel, BLevelItem, BLevelLeft, BLevelRight }; diff --git a/node_modules/buetify/src/components/layout/list/BList.ts b/node_modules/buetify/src/components/layout/list/BList.ts new file mode 100755 index 0000000..4f1c787 --- /dev/null +++ b/node_modules/buetify/src/components/layout/list/BList.ts @@ -0,0 +1,30 @@ +import { isEmpty } from 'fp-ts/lib/Array'; +import { h, SetupContext, ComponentOptions, FunctionalComponent } from 'vue'; + +export interface BListProps { + tag?: string | ComponentOptions | FunctionalComponent; + items: unknown[]; +} + +export default function BList(props: BListProps, { slots }: SetupContext) { + if (isEmpty(props.items)) { + return h(props.tag ?? 'div', slots.empty && slots.empty()); + } else { + const length = props.items.length; + const slot = slots.default; + return ( + slot && + h( + props.tag ?? 'div', + props.items.map((item, index) => + slot({ + item, + index, + length, + isLast: index === length - 1 + }) + ) + ) + ); + } +} diff --git a/node_modules/buetify/src/components/layout/list/index.ts b/node_modules/buetify/src/components/layout/list/index.ts new file mode 100755 index 0000000..7cde323 --- /dev/null +++ b/node_modules/buetify/src/components/layout/list/index.ts @@ -0,0 +1,5 @@ +import BList from './BList'; + +export { BList }; + +export default BList; diff --git a/node_modules/buetify/src/components/layout/media/BMedia.ts b/node_modules/buetify/src/components/layout/media/BMedia.ts new file mode 100755 index 0000000..83a7011 --- /dev/null +++ b/node_modules/buetify/src/components/layout/media/BMedia.ts @@ -0,0 +1,4 @@ +import './media.sass'; +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('media', 'article'); diff --git a/node_modules/buetify/src/components/layout/media/BMediaContent.ts b/node_modules/buetify/src/components/layout/media/BMediaContent.ts new file mode 100755 index 0000000..50315d9 --- /dev/null +++ b/node_modules/buetify/src/components/layout/media/BMediaContent.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('media-content', 'section'); diff --git a/node_modules/buetify/src/components/layout/media/BMediaLeft.ts b/node_modules/buetify/src/components/layout/media/BMediaLeft.ts new file mode 100755 index 0000000..1af695d --- /dev/null +++ b/node_modules/buetify/src/components/layout/media/BMediaLeft.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('media-left', 'div'); diff --git a/node_modules/buetify/src/components/layout/media/BMediaRight.ts b/node_modules/buetify/src/components/layout/media/BMediaRight.ts new file mode 100755 index 0000000..3f1a400 --- /dev/null +++ b/node_modules/buetify/src/components/layout/media/BMediaRight.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('media-right', 'div'); diff --git a/node_modules/buetify/src/components/layout/media/index.ts b/node_modules/buetify/src/components/layout/media/index.ts new file mode 100755 index 0000000..dbb6445 --- /dev/null +++ b/node_modules/buetify/src/components/layout/media/index.ts @@ -0,0 +1,6 @@ +import BMedia from './BMedia'; +import BMediaContent from './BMediaContent'; +import BMediaLeft from './BMediaLeft'; +import BMediaRight from './BMediaRight'; + +export { BMedia, BMediaContent, BMediaLeft, BMediaRight }; diff --git a/node_modules/buetify/src/components/layout/media/media.sass b/node_modules/buetify/src/components/layout/media/media.sass new file mode 100755 index 0000000..87ad3ca --- /dev/null +++ b/node_modules/buetify/src/components/layout/media/media.sass @@ -0,0 +1 @@ +@import '~bulma/sass/components/media' diff --git a/node_modules/buetify/src/components/link/BLink.ts b/node_modules/buetify/src/components/link/BLink.ts new file mode 100755 index 0000000..85a30f1 --- /dev/null +++ b/node_modules/buetify/src/components/link/BLink.ts @@ -0,0 +1,25 @@ +import './link.sass'; +import { FunctionalThemeProps, useTheme } from '../../composables/theme'; +import { h, SetupContext } from 'vue'; +import { LinkThemeMap } from './theme'; + +export interface BLinkProps extends FunctionalThemeProps { + href?: string; + tag?: string; + isDisabled?: boolean; +} + +export default function BLink(props: BLinkProps, { attrs, slots }: SetupContext) { + const { themeClasses } = useTheme({ + isThemeable: props.isThemeable ?? true, + themeMap: props.themeMap ?? LinkThemeMap + }); + return h( + props.tag ?? 'a', + { + class: ['b-link', ...themeClasses.value, { 'is-disabled': props.isDisabled }], + onClick: props.isDisabled ? undefined : attrs.onClick + }, + slots.default && slots.default() + ); +} diff --git a/node_modules/buetify/src/components/link/index.ts b/node_modules/buetify/src/components/link/index.ts new file mode 100755 index 0000000..95073a8 --- /dev/null +++ b/node_modules/buetify/src/components/link/index.ts @@ -0,0 +1,6 @@ +import BLink from './BLink'; +import { LinkThemeMap } from './theme'; + +export { BLink, LinkThemeMap }; + +export default BLink; diff --git a/node_modules/buetify/src/components/link/link.sass b/node_modules/buetify/src/components/link/link.sass new file mode 100755 index 0000000..68ef43d --- /dev/null +++ b/node_modules/buetify/src/components/link/link.sass @@ -0,0 +1,38 @@ + +.b-link + color: $link + &:hover + color: $link-hover + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + &.is-disabled + color: inherit + &:hover + color: inherit + @each $name, $pair in $colors + @if length($pair) >= 4 + $color: nth($pair, 1) + $color-dark: nth($pair, 4) + &.is-#{$name} + color: $color + &:hover + color: $color-dark + &.is-disabled + color: inherit + &:hover + color: inherit + @else + $color: nth($pair, 1) + $color-dark: darken($color, 2.5%) + &.is-#{$name} + color: $color + &:hover + color: $color-dark + &.is-disabled + color: inherit + &:hover + color: inherit diff --git a/node_modules/buetify/src/components/link/theme.ts b/node_modules/buetify/src/components/link/theme.ts new file mode 100755 index 0000000..ecef5a6 --- /dev/null +++ b/node_modules/buetify/src/components/link/theme.ts @@ -0,0 +1,7 @@ +import { shallowReactive } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; + +export const LinkThemeMap: ThemeColorMap = shallowReactive({ + dark: 'is-warning', + light: 'is-link' +}); diff --git a/node_modules/buetify/src/components/loading/BLoading.ts b/node_modules/buetify/src/components/loading/BLoading.ts new file mode 100755 index 0000000..a2914b1 --- /dev/null +++ b/node_modules/buetify/src/components/loading/BLoading.ts @@ -0,0 +1,104 @@ +import './loading.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController'; +import { isEscEvent } from '../../utils/eventHelpers'; +import { + VNode, + h, + defineComponent, + ExtractPropTypes, + shallowRef, + Transition, + onUnmounted, + Slots, + Ref, + toRef, + toRefs, + reactive, + computed, + watchEffect, + TransitionProps +} from 'vue'; +import { constEmptyArray } from '../../utils/helpers'; + +export const BLoadingPropsDefinition = { + ...UsePopupControllerPropsDefinition, + isFullscreen: { + type: Boolean, + default: false + }, + canCancel: { + type: Boolean, + default: false + } +}; + +export type BLoadingProps = ExtractPropTypes<typeof BLoadingPropsDefinition>; + +function getGenerateModal(onClick: IO<void>, slots: Slots, isFullscreen: Ref<boolean>) { + return () => [ + h('div', { class: ['b-loading-overlay is-active', { 'is-fullscreen': isFullscreen.value }] }, [ + h('div', { + class: 'loading-background', + onClick + }), + slots.default ? slots.default({ close: onClick }) : h('div', { class: 'loading-icon' }) + ]) + ]; +} + +export default defineComponent({ + name: 'b-loading', + props: BLoadingPropsDefinition, + setup(props, { slots }) { + const isFullscreen = toRef(props, 'isFullscreen'); + const isActive = computed(() => props.isFullscreen && props.isActive); + const render = shallowRef(constEmptyArray as IO<VNode[]>); + const popup = usePopupController( + reactive({ + ...toRefs(props), + isActive + }), + render + ); + + function onClick() { + if (props.canCancel && props.isFullscreen ? popup.isOpen.value : props.isActive) { + popup.close(); + } + } + + render.value = getGenerateModal(onClick, slots, isFullscreen); + + function onKeyup(e: KeyboardEvent) { + if (isEscEvent(e)) { + onClick(); + } + } + + watchEffect(() => { + if (window === undefined) return; + if (popup.isOpen.value && props.canCancel) { + document.addEventListener('keyup', onKeyup); + } else { + document.removeEventListener('keyup', onKeyup); + } + }); + + onUnmounted(() => { + window && window.removeEventListener('keyup', onKeyup); + }); + + return () => { + if (slots.trigger && props.isFullscreen) { + return slots.trigger(popup); + } else if (props.isFullscreen) { + return undefined; + } else { + return h(Transition, { name: props.transition } as TransitionProps, () => + props.isActive ? render.value() : undefined + ); + } + }; + } +}); diff --git a/node_modules/buetify/src/components/loading/index.ts b/node_modules/buetify/src/components/loading/index.ts new file mode 100755 index 0000000..9a6a5aa --- /dev/null +++ b/node_modules/buetify/src/components/loading/index.ts @@ -0,0 +1,5 @@ +import BLoading from './BLoading'; + +export { BLoading }; + +export default BLoading; diff --git a/node_modules/buetify/src/components/loading/loading.sass b/node_modules/buetify/src/components/loading/loading.sass new file mode 100755 index 0000000..5126c41 --- /dev/null +++ b/node_modules/buetify/src/components/loading/loading.sass @@ -0,0 +1,32 @@ +$loading-background-color: rgba(255, 255, 255, 0.5) !default + +.b-loading-overlay + @include overlay + align-items: center + display: none + justify-content: center + overflow: hidden + &.is-active + display: flex + &.is-fullscreen + z-index: 999 + position: fixed + .loading-icon + &:after + top: calc(50% - 2.5em) + left: calc(50% - 2.5em) + width: 5em + height: 5em + .loading-background + @include overlay + background: $loading-background-color + .loading-icon + position: relative + &:after + @include loader + position: absolute + top: calc(50% - 1.5em) + left: calc(50% - 1.5em) + width: 3em + height: 3em + border-width: 0.25em diff --git a/node_modules/buetify/src/components/menu/BMenu.ts b/node_modules/buetify/src/components/menu/BMenu.ts new file mode 100755 index 0000000..363f90f --- /dev/null +++ b/node_modules/buetify/src/components/menu/BMenu.ts @@ -0,0 +1,6 @@ +import '../../sass/helpers/flex-helpers.sass'; +import './menu.sass'; +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; +import { MenuThemeMap } from './theme'; + +export default getThemeableFunctionalComponent({ cls: 'menu', el: 'aside', themeMap: MenuThemeMap }); diff --git a/node_modules/buetify/src/components/menu/BMenuGroup.ts b/node_modules/buetify/src/components/menu/BMenuGroup.ts new file mode 100755 index 0000000..163c2bb --- /dev/null +++ b/node_modules/buetify/src/components/menu/BMenuGroup.ts @@ -0,0 +1,71 @@ +import { getUseTogglePropsDefinition, useToggle } from '../../composables/toggle'; +import VerticalExpandTransition from '../../transitions/verticalExpandTransition'; +import { Classes } from '../../utils/mergeClasses'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; +import BMenuList from './BMenuList'; +import { withDirectives, vShow, defineComponent, h, PropType } from 'vue'; + +export default defineComponent({ + name: 'b-menu-group', + props: { + ...getUseTogglePropsDefinition('isExpanded'), + isExpandable: { + type: Boolean, + default: false + }, + menuLabelClass: { + type: [String, Object, Array] as PropType<Classes>, + default: '' + }, + menuListClass: { + type: [String, Object, Array] as PropType<Classes>, + default: '' + } + }, + setup(props, { slots }) { + const toggle = useToggle(props, 'isExpanded'); + return () => + h('section', { class: 'is-fullwidth' }, [ + props.isExpandable + ? h( + 'button', + { + class: [ + 'menu-label is-flex flex-direction-row justify-content-space-between align-items-center is-fullwidth', + props.menuLabelClass + ], + ...toggle.listeners, + ...toggle.attrs.value + }, + [ + slots['menu-label'] && slots['menu-label'](), + h(VerticalExpansionIcon, { + isExpanded: toggle.isOn.value + }) + ] + ) + : h('div', { class: ['menu-label', props.menuLabelClass] }, slots['menu-label'] && slots['menu-label']()), + props.isExpandable + ? h(VerticalExpandTransition, undefined, () => [ + withDirectives( + h( + BMenuList, + { + class: [props.menuListClass, 'expand-vertical-transition'], + 'aria-hidden': toggle.isOff.value + }, + slots.default + ), + [[vShow, toggle.isOn.value]] + ) + ]) + : h( + BMenuList, + { + class: props.menuListClass + }, + slots.default + ) + ]); + } +}); diff --git a/node_modules/buetify/src/components/menu/BMenuLabel.ts b/node_modules/buetify/src/components/menu/BMenuLabel.ts new file mode 100755 index 0000000..40906b1 --- /dev/null +++ b/node_modules/buetify/src/components/menu/BMenuLabel.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('menu-label', 'p'); diff --git a/node_modules/buetify/src/components/menu/BMenuList.ts b/node_modules/buetify/src/components/menu/BMenuList.ts new file mode 100755 index 0000000..d312f5d --- /dev/null +++ b/node_modules/buetify/src/components/menu/BMenuList.ts @@ -0,0 +1,3 @@ +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; + +export default getThemeableFunctionalComponent({ cls: 'menu-list', el: 'ul' }); diff --git a/node_modules/buetify/src/components/menu/BMenuListItem.ts b/node_modules/buetify/src/components/menu/BMenuListItem.ts new file mode 100755 index 0000000..8857be9 --- /dev/null +++ b/node_modules/buetify/src/components/menu/BMenuListItem.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('menu-list-item', 'li'); diff --git a/node_modules/buetify/src/components/menu/index.ts b/node_modules/buetify/src/components/menu/index.ts new file mode 100755 index 0000000..97067c6 --- /dev/null +++ b/node_modules/buetify/src/components/menu/index.ts @@ -0,0 +1,8 @@ +import BMenu from './BMenu'; +import BMenuGroup from './BMenuGroup'; +import BMenuLabel from './BMenuLabel'; +import BMenuList from './BMenuList'; +import BMenuListItem from './BMenuListItem'; +import { MenuThemeMap } from './theme'; + +export { BMenu, BMenuGroup, BMenuLabel, BMenuList, BMenuListItem, MenuThemeMap }; diff --git a/node_modules/buetify/src/components/menu/menu.sass b/node_modules/buetify/src/components/menu/menu.sass new file mode 100755 index 0000000..e5e1a11 --- /dev/null +++ b/node_modules/buetify/src/components/menu/menu.sass @@ -0,0 +1,79 @@ +$menu-item-color: $text !default +$menu-item-radius: $radius-small !default +$menu-item-hover-color: $link !default +$menu-item-hover-background-color: $background !default +$menu-item-active-color: $link !default +$menu-item-active-background-color: $link !default + +$menu-list-border-left: 1px solid $border !default +$menu-list-line-height: 1.25 !default +$menu-list-link-padding: 0.25em 0 !default +$menu-nested-list-margin: 0.5em 0 0.75em 0.25em !default +$menu-nested-list-padding-left: 0.75em !default + +$menu-label-color: $text-light !default +$menu-label-font-size: 0.9em !default +$menu-label-letter-spacing: 0.1em !default +$menu-label-spacing: 1em !default + +.menu-label + color: $menu-label-color + font-size: $menu-label-font-size + letter-spacing: $menu-label-letter-spacing + text-transform: uppercase + margin-bottom: 0.5em + +.menu + font-size: $size-normal + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + + .menu-list + margin-left: 0.75rem + line-height: $menu-list-line-height + .menu-label + margin-top: $menu-label-spacing + a + border-radius: $menu-item-radius + color: $menu-item-color + display: block + padding: $menu-list-link-padding + &:hover + color: $menu-item-hover-color + // Modifiers + &.is-active + color: $menu-item-active-color + li + display: flex + flex-direction: row + align-items: center + .icon + margin-right: 0.25rem + &.is-active + color: $menu-item-active-color + ul + border-left: $menu-list-border-left + margin: $menu-nested-list-margin + padding-left: $menu-nested-list-padding-left + + + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: findColorInvert($color) + &.is-#{$name} + background-color: $color + color: $color-invert + .menu-list + a + color: inherit + &:hover + color: $menu-item-hover-color + &.is-active + color: $menu-item-active-color + .menu-label + color: inherit diff --git a/node_modules/buetify/src/components/menu/theme.ts b/node_modules/buetify/src/components/menu/theme.ts new file mode 100755 index 0000000..59f0739 --- /dev/null +++ b/node_modules/buetify/src/components/menu/theme.ts @@ -0,0 +1,7 @@ +import { shallowReactive } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; + +export const MenuThemeMap: ThemeColorMap = shallowReactive({ + dark: 'is-black-bis', + light: 'is-grey-darker' +}); diff --git a/node_modules/buetify/src/components/message/BMessage.ts b/node_modules/buetify/src/components/message/BMessage.ts new file mode 100755 index 0000000..49435c7 --- /dev/null +++ b/node_modules/buetify/src/components/message/BMessage.ts @@ -0,0 +1,72 @@ +import 'bulma/sass/components/message.sass'; +import 'bulma/sass/elements/notification.sass'; +import '../../sass/helpers/animations.sass'; +import './message.sass'; +import { Message, useMessage, UseMessageProps, UseMessagePropsDefinition } from '../../composables/message'; +import { FadeTransitionPropsDefinition, useTransition } from '../../composables/transition'; +import { VNode, defineComponent, h, Transition, SetupContext, computed } from 'vue'; + +function generateBody(props: UseMessageProps, context: SetupContext, message: Message): VNode { + const nodes: VNode[] = []; + if (!!message.icon.value && props.useIcon) { + nodes.push( + h('div', { class: 'media-left' }, [ + h(message.icon.value, { + size: message.iconSize.value, + variant: props.variant, + class: props.variant + }) + ]) + ); + } + nodes.push(h('div', { class: 'media-content' }, (context.slots.default && context.slots.default()) || props.message)); + return h( + 'section', + { + class: 'message-body', + 'aria-label': 'Close message' + }, + [h('div', { class: 'media' }, nodes)] + ); +} + +function generateHeader(props: UseMessageProps, context: SetupContext, message: Message): VNode { + const nodes = context.slots.title ? context.slots.title() : props.title ? [(props.title as unknown) as VNode] : []; + if (props.isClosable) { + nodes.push( + h('button', { + class: 'delete', + attrs: { 'aria-label': `Close message` }, + ...message.listeners + }) + ); + } + return h('header', { class: 'message-header' }, nodes); +} + +function generateMessage(props: UseMessageProps, context: SetupContext, message: Message): VNode { + return h( + 'article', + { class: ['message', props.variant, props.size] }, + context.slots.title || !!props.title + ? [generateHeader(props, context, message), generateBody(props, context, message)] + : [generateBody(props, context, message)] + ); +} + +export default defineComponent({ + name: 'b-message', + props: { + ...UseMessagePropsDefinition, + ...FadeTransitionPropsDefinition + }, + setup(props, context) { + const message = useMessage(props); + const transition = useTransition(props); + const showMessage = computed( + () => message.isOn.value || (props.title === undefined && context.slots.title === undefined) + ); + return () => + h(Transition, transition.value, () => (showMessage.value ? generateMessage(props, context, message) : undefined)); + } +}); diff --git a/node_modules/buetify/src/components/message/index.ts b/node_modules/buetify/src/components/message/index.ts new file mode 100755 index 0000000..a0797a2 --- /dev/null +++ b/node_modules/buetify/src/components/message/index.ts @@ -0,0 +1,5 @@ +import BMessage from './BMessage'; + +export { BMessage }; + +export default BMessage; diff --git a/node_modules/buetify/src/components/message/message.sass b/node_modules/buetify/src/components/message/message.sass new file mode 100755 index 0000000..8b943da --- /dev/null +++ b/node_modules/buetify/src/components/message/message.sass @@ -0,0 +1,10 @@ +.message, +.notification + .media + padding-top: 0 + border: 0 + +// Fix for Bulma 0.6.1 +.notification > .delete + right: 0.5rem !important + top: 0.5rem !important diff --git a/node_modules/buetify/src/components/modal/BModal.ts b/node_modules/buetify/src/components/modal/BModal.ts new file mode 100755 index 0000000..cb964e6 --- /dev/null +++ b/node_modules/buetify/src/components/modal/BModal.ts @@ -0,0 +1,83 @@ +import 'bulma/sass/components/card.sass'; +import 'bulma/sass/components/modal.sass'; +import '../../sass/helpers/animations.sass'; +import './modal.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { usePopupController, UsePopupControllerPropsDefinition } from '../../composables/popupController'; +import { constEmptyArray } from '../../utils/helpers'; +import { VNode, defineComponent, PropType, shallowRef, h, ExtractPropTypes, watchEffect, onUnmounted } from 'vue'; +import BSheet from '../sheet/BSheet'; + +const BModalPropsDefinition = { + ...UsePopupControllerPropsDefinition, + showExit: { + type: Boolean as PropType<boolean>, + default: true + }, + isFullscreen: { + type: Boolean as PropType<boolean>, + default: false + } +}; + +export type BModalProps = ExtractPropTypes<typeof BModalPropsDefinition>; + +export default defineComponent({ + name: 'b-modal', + props: BModalPropsDefinition, + setup(props, { attrs, slots }) { + const generateModal = shallowRef(constEmptyArray as IO<VNode[]>); + const popup = usePopupController(props, generateModal); + generateModal.value = () => { + if (!props.isFullscreen) { + const nodes = [ + h('div', { onClick: popup.close, class: 'modal-background' }), + h('div', { class: 'modal-content' }, slots.default && slots.default(popup)) + ]; + if (props.showExit) { + nodes.push(h('button', { class: 'modal-close is-large', onClick: popup.close })); + } + return [ + h( + 'div', + { + ...attrs, + class: 'modal is-active' + }, + nodes + ) + ]; + } else { + return [ + h( + 'div', + { + ...attrs, + class: 'modal is-active is-fullscreen' + }, + [h(BSheet, () => slots.default && slots.default(popup))] + ) + ]; + } + }; + + watchEffect(() => { + if (window === undefined) { + return; + } + if (popup.isOpen.value && props.isFullscreen) { + window.document.documentElement.classList.add('is-clipped'); + } else { + window.document.documentElement.classList.remove('is-clipped'); + } + }); + + onUnmounted(() => { + window && window.document.documentElement.classList.remove('is-clipped'); + }); + return { popup }; + }, + render() { + return this.$slots.trigger && this.$slots.trigger(this.popup); + } +}); diff --git a/node_modules/buetify/src/components/modal/index.ts b/node_modules/buetify/src/components/modal/index.ts new file mode 100755 index 0000000..a97bbbb --- /dev/null +++ b/node_modules/buetify/src/components/modal/index.ts @@ -0,0 +1,5 @@ +import BModal from './BModal'; + +export { BModal }; + +export default BModal; diff --git a/node_modules/buetify/src/components/modal/modal.sass b/node_modules/buetify/src/components/modal/modal.sass new file mode 100755 index 0000000..a374dc7 --- /dev/null +++ b/node_modules/buetify/src/components/modal/modal.sass @@ -0,0 +1,13 @@ +.modal + &.is-fullscreen + .b-sheet + width: 100% + height: 100% + max-height: 100vh + margin: 0 + .modal-card + margin: 0 + width: 100% + height: 100% + max-height: 100vh + diff --git a/node_modules/buetify/src/components/navbar/BNavbar.ts b/node_modules/buetify/src/components/navbar/BNavbar.ts new file mode 100755 index 0000000..76130f4 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbar.ts @@ -0,0 +1,4 @@ +import './navbar.sass'; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('navbar', 'nav'); diff --git a/node_modules/buetify/src/components/navbar/BNavbarBrand.ts b/node_modules/buetify/src/components/navbar/BNavbarBrand.ts new file mode 100755 index 0000000..1db06f3 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbarBrand.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('navbar-brand'); diff --git a/node_modules/buetify/src/components/navbar/BNavbarBurger.ts b/node_modules/buetify/src/components/navbar/BNavbarBurger.ts new file mode 100755 index 0000000..b7e2357 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbarBurger.ts @@ -0,0 +1,20 @@ +import { makeBy } from 'fp-ts/lib/Array'; +import { h } from 'vue'; + +export interface BNavbarBurgerProps { + tag?: string; + isActive?: boolean; +} + +const hamburgerLines = makeBy(3, () => h('span', { 'aria-hidden': true })); + +export default function BNavbarBurger(props: BNavbarBurgerProps) { + return h( + props.tag || 'button', + { + class: ['b-navbar-burger', 'navbar-burger', { 'is-active': !!props.isActive }], + 'aria-expanded': !!props.isActive + }, + hamburgerLines + ); +} diff --git a/node_modules/buetify/src/components/navbar/BNavbarEnd.ts b/node_modules/buetify/src/components/navbar/BNavbarEnd.ts new file mode 100755 index 0000000..a658095 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbarEnd.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('navbar-end'); diff --git a/node_modules/buetify/src/components/navbar/BNavbarItem.ts b/node_modules/buetify/src/components/navbar/BNavbarItem.ts new file mode 100755 index 0000000..711e7b0 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbarItem.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('navbar-item', 'a'); diff --git a/node_modules/buetify/src/components/navbar/BNavbarMenu.ts b/node_modules/buetify/src/components/navbar/BNavbarMenu.ts new file mode 100755 index 0000000..1da5a1f --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbarMenu.ts @@ -0,0 +1,21 @@ +import { h, defineComponent } from 'vue'; + +export default defineComponent({ + name: 'b-navbar-menu', + props: { + isActive: { + type: Boolean, + default: false + } + }, + setup(props, { slots }) { + return () => + h( + 'div', + { + class: ['navbar-menu', { isActive: props.isActive }] + }, + slots.default && slots.default() + ); + } +}); diff --git a/node_modules/buetify/src/components/navbar/BNavbarStart.ts b/node_modules/buetify/src/components/navbar/BNavbarStart.ts new file mode 100755 index 0000000..0fe6b87 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/BNavbarStart.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('navbar-start'); diff --git a/node_modules/buetify/src/components/navbar/index.ts b/node_modules/buetify/src/components/navbar/index.ts new file mode 100755 index 0000000..3fdc7e8 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/index.ts @@ -0,0 +1,9 @@ +import BNavbar from './BNavbar'; +import BNavbarBrand from './BNavbarBrand'; +import BNavbarBurger from './BNavbarBurger'; +import BNavbarEnd from './BNavbarEnd'; +import BNavbarItem from './BNavbarItem'; +import BNavbarMenu from './BNavbarMenu'; +import BNavbarStart from './BNavbarStart'; + +export { BNavbar, BNavbarBrand, BNavbarBurger, BNavbarEnd, BNavbarItem, BNavbarMenu, BNavbarStart }; diff --git a/node_modules/buetify/src/components/navbar/navbar.sass b/node_modules/buetify/src/components/navbar/navbar.sass new file mode 100755 index 0000000..1937168 --- /dev/null +++ b/node_modules/buetify/src/components/navbar/navbar.sass @@ -0,0 +1,4 @@ +@import '~bulma/sass/components/navbar.sass' + +.b-navbar-burger + align-self: center diff --git a/node_modules/buetify/src/components/notices/index.ts b/node_modules/buetify/src/components/notices/index.ts new file mode 100755 index 0000000..de7137b --- /dev/null +++ b/node_modules/buetify/src/components/notices/index.ts @@ -0,0 +1,4 @@ +export * from './notification'; +export * from './snackbar'; +export * from './toast'; +export * from './noticeContainer'; diff --git a/node_modules/buetify/src/components/notices/noticeContainer/BNoticeContainer.ts b/node_modules/buetify/src/components/notices/noticeContainer/BNoticeContainer.ts new file mode 100755 index 0000000..91f067c --- /dev/null +++ b/node_modules/buetify/src/components/notices/noticeContainer/BNoticeContainer.ts @@ -0,0 +1,89 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { VNode } from 'vue'; +import { formatTransition } from '../../../composables/transition'; +import { Transition, TransitionClasses } from '../../../types/Transition'; +import { defineComponent, h, Transition as transition, computed, reactive, nextTick } from 'vue'; +import { constEmptyArray } from '../../../utils/helpers'; + +export interface NoticeOptions { + render: IO<VNode[]>; + duration: number; + shouldQueue: boolean; + transition: Transition; +} + +export interface Notice { + id: number; + render: IO<VNode[] | undefined>; + transition: TransitionClasses; + onAfterLeave: IO<void>; +} + +let id = 0; + +function generateNotice(notice: Notice): VNode { + return h(transition, { key: notice.id, ...notice.transition, onAfterLeague: notice.onAfterLeave }, notice.render); +} + +const BNoticeContainer = defineComponent({ + name: 'b-notice-container', + setup() { + const notices = reactive([] as Notice[]); + + const rootZ = computed(() => (notices.length ? 999 : -1)); + + function addNotice(options: NoticeOptions): IO<void> { + const nId = id++; + function remove() { + const index = notices.findIndex(n => n.id === nId); + if (index > -1) { + notices.splice(index, 1); + } + } + const newNotice: Notice = reactive({ + id: nId, + render: constEmptyArray, + transition: formatTransition(options.transition), + onAfterLeave: remove + }); + notices.push(newNotice); + nextTick().then(() => { + newNotice.render = options.render; + }); + return remove; + } + + function showNotice(params: NoticeOptions): IO<void> { + if (params.shouldQueue && notices.length > 0) { + let remove = constVoid; + setTimeout(() => { + remove = showNotice(params); + }, 250); + return () => { + remove(); + }; + } + const removeNotice = addNotice(params); + if (params.duration === 0) { + return removeNotice; + } else { + setTimeout(removeNotice, params.duration); + return removeNotice; + } + } + + return { + rootZ, + showNotice, + notices + }; + }, + render() { + return h('div', { style: { 'z-index': this.rootZ } }, this.notices.map(generateNotice)); + } +}); + +export type NoticeContainer = InstanceType<typeof BNoticeContainer>; + +export default BNoticeContainer; diff --git a/node_modules/buetify/src/components/notices/noticeContainer/index.ts b/node_modules/buetify/src/components/notices/noticeContainer/index.ts new file mode 100755 index 0000000..a44942b --- /dev/null +++ b/node_modules/buetify/src/components/notices/noticeContainer/index.ts @@ -0,0 +1,5 @@ +import BNoticeContainer from './BNoticeContainer'; + +export { BNoticeContainer }; + +export default BNoticeContainer; diff --git a/node_modules/buetify/src/components/notices/notification/BNotification.ts b/node_modules/buetify/src/components/notices/notification/BNotification.ts new file mode 100755 index 0000000..0b413c0 --- /dev/null +++ b/node_modules/buetify/src/components/notices/notification/BNotification.ts @@ -0,0 +1,116 @@ +import '../../../sass/helpers/animations.sass'; +import '../sass/notices.sass'; +import { constant, FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { Message, useMessage, UseMessagePropsDefinition } from '../../../composables/message'; +import { + NoticeController, + OpenNoticeOptions, + RenderNoticeOptions, + useNoticeController, + UseNoticePropsDefinition +} from '../../../composables/noticeController'; +import { formatTransition } from '../../../composables/transition'; +import { + Transition, + VNode, + h, + PropType, + defineComponent, + ExtractPropTypes, + shallowRef, + withDirectives, + SetupContext, + vShow, + ComponentOptions, + FunctionalComponent +} from 'vue'; +import { constEmptyArray } from '../../../utils/helpers'; + +export const BNotificationPropsDefinition = { + ...UseMessagePropsDefinition, + ...UseNoticePropsDefinition, + isNotice: { + type: Boolean as PropType<boolean>, + default: false + }, + icon: { + type: [Object, Function] as PropType<ComponentOptions | FunctionalComponent> + } +}; + +export type BNotificationProps = ExtractPropTypes<typeof BNotificationPropsDefinition>; + +function generateCloseButton( + props: BNotificationProps, + messageController: Message, + noticeController: NoticeController +): VNode { + return h('button', { + class: 'delete', + onClick: props.isNotice ? noticeController.close : messageController.setOff + }); +} + +function generateIcon(messageController: Message): VNode | undefined { + const icon = messageController.icon.value; + return icon ? h('div', { class: 'media-left' }, [h(icon, { size: messageController.iconSize.value })]) : undefined; +} + +function generateNoticeContent(context: SetupContext, message?: string): VNode { + return h('div', { class: 'media-content' }, (context.slots.default && context.slots.default()) || h('p', message)); +} + +function generateNoticeBody( + props: BNotificationProps, + context: SetupContext, + messageController: Message, + noticeController: NoticeController, + message?: string +): VNode { + return h( + 'div', + { class: 'media' }, + props.useIcon && messageController.icon.value + ? [generateIcon(messageController), generateNoticeContent(context, message)] + : [generateNoticeContent(context, message)] + ); +} + +function getGenerateNotice( + props: BNotificationProps, + context: SetupContext, + messageController: Message, + noticeController: NoticeController +) { + return (options: OpenNoticeOptions) => () => { + const notice = h( + 'article', + { + class: ['notification', options.variant ?? props.variant, options.position ?? props.position] + }, + props.isClosable + ? [ + generateCloseButton(props, messageController, noticeController), + generateNoticeBody(props, context, messageController, noticeController, options.message ?? props.message) + ] + : [generateNoticeBody(props, context, messageController, noticeController, options.message ?? props.message)] + ); + return props.isNotice ? [notice] : [withDirectives(notice, [[vShow, messageController.isOn.value]])]; + }; +} + +export default defineComponent({ + name: 'b-notification', + props: BNotificationPropsDefinition, + setup(props, context) { + const renderNotification = shallowRef(constant(constEmptyArray) as FunctionN<[RenderNoticeOptions], IO<VNode[]>>); + const noticeController = useNoticeController(props, renderNotification); + const messageController = useMessage(props); + renderNotification.value = getGenerateNotice(props, context, messageController, noticeController); + return () => + props.isNotice + ? context.slots.trigger && context.slots.trigger({ open: noticeController.open, close: noticeController.close }) + : h(Transition, props.transition ? formatTransition(props.transition) : {}, renderNotification.value({})); + } +}); diff --git a/node_modules/buetify/src/components/notices/notification/index.ts b/node_modules/buetify/src/components/notices/notification/index.ts new file mode 100755 index 0000000..573d2ae --- /dev/null +++ b/node_modules/buetify/src/components/notices/notification/index.ts @@ -0,0 +1,5 @@ +import BNotification from './BNotification'; + +export { BNotification }; + +export default BNotification; diff --git a/node_modules/buetify/src/components/notices/sass/notices.sass b/node_modules/buetify/src/components/notices/sass/notices.sass new file mode 100755 index 0000000..6e08f41 --- /dev/null +++ b/node_modules/buetify/src/components/notices/sass/notices.sass @@ -0,0 +1,20 @@ +.notices + position: fixed + display: flex + top: 0 + bottom: 0 + left: 0 + right: 0 + padding: 2em + overflow: hidden + z-index: 1000 + pointer-events: none + .notification + max-width: 600px + + &.has-custom-container + position: absolute + + @include mobile + padding: 0 + position: fixed !important diff --git a/node_modules/buetify/src/components/notices/snackbar/BSnackbar.ts b/node_modules/buetify/src/components/notices/snackbar/BSnackbar.ts new file mode 100755 index 0000000..63a46e0 --- /dev/null +++ b/node_modules/buetify/src/components/notices/snackbar/BSnackbar.ts @@ -0,0 +1,13 @@ +import '../../../sass/helpers/animations.sass'; +import '../sass/notices.sass'; +import { defineComponent } from 'vue'; +import { SnackbarPropsDefinition, useSnackbar } from '../../../composables/snackbar'; + +export default defineComponent({ + name: 'b-snackbar', + props: SnackbarPropsDefinition, + setup(props, { slots }) { + const controller = useSnackbar(props, slots); + return () => slots.default && slots.default(controller); + } +}); diff --git a/node_modules/buetify/src/components/notices/snackbar/index.ts b/node_modules/buetify/src/components/notices/snackbar/index.ts new file mode 100755 index 0000000..946c7a8 --- /dev/null +++ b/node_modules/buetify/src/components/notices/snackbar/index.ts @@ -0,0 +1,5 @@ +import BSnackbar from './BSnackbar'; + +export { BSnackbar }; + +export default BSnackbar; diff --git a/node_modules/buetify/src/components/notices/toast/BToast.ts b/node_modules/buetify/src/components/notices/toast/BToast.ts new file mode 100755 index 0000000..04ce3a7 --- /dev/null +++ b/node_modules/buetify/src/components/notices/toast/BToast.ts @@ -0,0 +1,12 @@ +import { UseNoticePropsDefinition } from '../../../composables/noticeController'; +import { defineComponent } from 'vue'; +import { useToast } from '../../../composables/toast'; + +export default defineComponent({ + name: 'b-toast', + props: UseNoticePropsDefinition, + setup(props, { slots }) { + const controller = useToast(props, slots); + return () => slots.default && slots.default(controller); + } +}); diff --git a/node_modules/buetify/src/components/notices/toast/index.ts b/node_modules/buetify/src/components/notices/toast/index.ts new file mode 100755 index 0000000..5d73576 --- /dev/null +++ b/node_modules/buetify/src/components/notices/toast/index.ts @@ -0,0 +1,5 @@ +import BToast from './BToast'; + +export { BToast }; + +export default BToast; diff --git a/node_modules/buetify/src/components/overlay/BOverlay.ts b/node_modules/buetify/src/components/overlay/BOverlay.ts new file mode 100755 index 0000000..ceb127a --- /dev/null +++ b/node_modules/buetify/src/components/overlay/BOverlay.ts @@ -0,0 +1,81 @@ +import './overlay.sass'; +import { IO } from 'fp-ts/lib/IO'; +import { h, withDirectives, vShow, defineComponent, PropType } from 'vue'; + +type OverlayPosition = 'is-left' | 'is-right' | 'is-centered'; + +export default defineComponent({ + name: 'b-overlay', + props: { + position: { + type: String as PropType<OverlayPosition>, + required: false + }, + isActive: { + type: Boolean as PropType<boolean>, + default: false + }, + isFullscreen: { + type: Boolean as PropType<boolean>, + default: false + }, + onClick: { + type: Function as PropType<IO<void>>, + required: false + } + }, + setup(props, { slots }) { + return () => { + if (props.isFullscreen) { + return withDirectives( + h( + 'div', + { + class: ['b-overlay', props.position] + }, + [ + h('div', { + class: 'b-overlay-background', + onClick: props.onClick + }), + h( + 'div', + { + class: 'b-overlay-content is-fullscreen' + }, + slots.default && slots.default() + ) + ] + ), + [[vShow, props.isActive]] + ); + } else { + return withDirectives( + h( + 'div', + { + class: ['b-overlay', props.position] + }, + [ + h('div', { + onClick: () => { + console.log('overlay background-click'); + props.onClick && props.onClick(); + }, + class: 'b-overlay-background' + }), + h( + 'div', + { + class: 'b-overlay-content' + }, + slots.default && slots.default() + ) + ] + ), + [[vShow, props.isActive]] + ); + } + }; + } +}); diff --git a/node_modules/buetify/src/components/overlay/index.ts b/node_modules/buetify/src/components/overlay/index.ts new file mode 100755 index 0000000..7e63d70 --- /dev/null +++ b/node_modules/buetify/src/components/overlay/index.ts @@ -0,0 +1,5 @@ +import BOverlay from './BOverlay'; + +export { BOverlay }; + +export default BOverlay; diff --git a/node_modules/buetify/src/components/overlay/overlay.sass b/node_modules/buetify/src/components/overlay/overlay.sass new file mode 100755 index 0000000..75a54d0 --- /dev/null +++ b/node_modules/buetify/src/components/overlay/overlay.sass @@ -0,0 +1,36 @@ +$overlay-background-background-color: rgba($black, 0.86) !default +$overlay-z: 40 !default +.b-overlay + top: 0 + left: 0 + width: 100% + min-height: 100vh + display: flex + flex-direction: row + justify-content: center + align-items: center + position: fixed + z-index: $overlay-z + .b-overlay-background + @extend %overlay + background-color: $overlay-background-background-color + .b-overlay-content + z-index: 1 + display: flex + flex-direction: column + justify-content: center + &.is-fullscreen + width: 100% + min-height: 100vh + &.is-left + justify-content: flex-start + &.is-right + justify-content: flex-end + &.is-top + align-items: flex-start + &.is-bottom + align-items: flex-end + + + + diff --git a/node_modules/buetify/src/components/pageLoader/BPageLoader.ts b/node_modules/buetify/src/components/pageLoader/BPageLoader.ts new file mode 100755 index 0000000..a5d43f4 --- /dev/null +++ b/node_modules/buetify/src/components/pageLoader/BPageLoader.ts @@ -0,0 +1,9 @@ +import './pageloader.sass'; +import { h } from 'vue'; + +export default function BPageLoader(props: { text: string }) { + return h('div', { + 'data-content': props.text, + class: 'b-pageloader is-active' + }); +} diff --git a/node_modules/buetify/src/components/pageLoader/index.ts b/node_modules/buetify/src/components/pageLoader/index.ts new file mode 100755 index 0000000..1c4e4b3 --- /dev/null +++ b/node_modules/buetify/src/components/pageLoader/index.ts @@ -0,0 +1,5 @@ +import BPageLoader from './BPageLoader'; + +export { BPageLoader }; + +export default BPageLoader; diff --git a/node_modules/buetify/src/components/pageLoader/pageloader.sass b/node_modules/buetify/src/components/pageLoader/pageloader.sass new file mode 100755 index 0000000..638033d --- /dev/null +++ b/node_modules/buetify/src/components/pageLoader/pageloader.sass @@ -0,0 +1,92 @@ +//Credit to original author Wikiki <wikiki@protonmail.com> (https://wikiki.github.io/bulma-extensions/overview) +$pageloader-opacity: 1 !default + +.b-pageloader + +overlay + position: fixed + background: $primary + background: rgba( $primary, $pageloader-opacity ) + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + background: bulmaRgba( $color, $pageloader-opacity ) + z-index: 999998 + transition: -webkit-transform .35s ease-out + transition: transform .35s ease-out + transition: transform .35s ease-out,-webkit-transform .35s ease-out + -webkit-transform: translateY(-100%) + transform: translateY(-100%) + will-change: transform + &.is-active + -webkit-transform: translateY(0) + transform: translateY(0) + &::after, &::before + position: absolute + top: 50% + left: 50% + display: block + border-radius: 100% + content: '' + z-index: 999999 + &::after + margin-top: -100px + margin-left: -100px + width: 200px + height: 200px + background-color: rgba(255, 255, 255, 0.5) + border: 3px solid rgba(255, 255, 255, 0.75) + -webkit-animation: page-loader-inner 1.5s infinite ease-out + animation: page-loader-inner 1.5s infinite ease-out + &::before + margin-top: -30px + margin-left: -30px + width: 60px + height: 60px + background-color: #fff + -webkit-animation: page-loader-outer 1.5s infinite ease-in + animation: page-loader-outer 1.5s infinite ease-in + +@-webkit-keyframes page-loader-inner + 0%,40% + -webkit-transform: scale(0) + transform: scale(0) + + 100% + -webkit-transform: scale(1) + transform: scale(1) + opacity: 0 + + +@keyframes page-loader-inner + 0%,40% + -webkit-transform: scale(0) + transform: scale(0) + + 100% + -webkit-transform: scale(1) + transform: scale(1) + opacity: 0 + + +@-webkit-keyframes page-loader-outer + 0% + -webkit-transform: scale(1) + transform: scale(1) + + 100%,40% + -webkit-transform: scale(0) + transform: scale(0) + opacity: 0 + + +@keyframes page-loader-outer + 0% + -webkit-transform: scale(1) + transform: scale(1) + + 100%,40% + -webkit-transform: scale(0) + transform: scale(0) + opacity: 0 diff --git a/node_modules/buetify/src/components/pagination/BPagination.ts b/node_modules/buetify/src/components/pagination/BPagination.ts new file mode 100755 index 0000000..cd72b7a --- /dev/null +++ b/node_modules/buetify/src/components/pagination/BPagination.ts @@ -0,0 +1,208 @@ +import './pagination.sass'; +import { + extractPaginationState, + Pagination, + usePagination, + UsePaginationPropsDefinition +} from '../../composables/pagination'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import AngleLeftIcon from '../icons/angleLeft/AngleLeftIcon'; +import AngleRightIcon from '../icons/angleRight/AngleRightIcon'; +import { range } from 'fp-ts/lib/Array'; +import { VNode, PropType, defineComponent, ExtractPropTypes, h, SetupContext } from 'vue'; + +export type PaginationSize = 'is-small' | 'is-medium' | 'is-large' | ''; + +export type PaginationPosition = 'is-centered' | 'is-right' | ''; + +export type PaginationVerticalPosition = 'is-top' | ''; + +export const BPaginationPropsDefinition = { + ...UsePaginationPropsDefinition, + ...DefaultThemePropsDefinition, + size: { + type: String as PropType<PaginationSize>, + default: '' as const + }, + isSimple: { + type: Boolean as PropType<boolean>, + default: false + }, + isRounded: { + type: Boolean as PropType<boolean>, + default: false + }, + position: { + type: String as PropType<PaginationPosition>, + default: '' as const + }, + verticalPosition: { + type: String as PropType<PaginationVerticalPosition>, + default: '' as const + } +}; + +export type BPaginationProps = ExtractPropTypes<typeof BPaginationPropsDefinition>; + +function getAriaLabel(num: number, total: number): string { + return `Go to page ${num} of ${total}`; +} + +const ellipsis = h('li', [ + h('span', { + class: 'pagination-ellipsis', + innerHTML: `…` + }) +]); + +function generatePreviousButton(context: SetupContext, pagination: Pagination, themeClasses: string[]): VNode { + return h( + 'button', + { + class: ['pagination-previous', ...themeClasses], + disabled: !pagination.hasPrevious.value, + 'aria-label': getAriaLabel(pagination.previousPage.value, pagination.numberOfPages.value), + onClick: pagination.previous + }, + context.slots.previous ? context.slots.previous() : h(AngleLeftIcon) + ); +} + +function generateNextButton(context: SetupContext, pagination: Pagination, themeClasses: string[]): VNode { + return h( + 'button', + { + class: ['pagination-next', ...themeClasses], + disabled: !pagination.hasNext.value, + 'aria-label': getAriaLabel(pagination.nextPage.value, pagination.numberOfPages.value), + onClick: pagination.next + }, + context.slots.next ? context.slots.next() : h(AngleRightIcon) + ); +} + +function getGeneratePaginationListItem(pagination: Pagination, themeClasses: string[]) { + return (page: Page) => + h( + 'li', + { + key: page.number + }, + [ + h( + 'button', + { + class: ['pagination-link', ...themeClasses, { 'is-current': page.isCurrent }], + 'aria-label': getAriaLabel(page.number, pagination.numberOfPages.value), + 'aria-current': page.isCurrent, + onClick: (e: MouseEvent) => { + e.preventDefault(); + pagination.set(page.number); + } + }, + `${page.number}` + ) + ] + ); +} + +function getPageRange(props: BPaginationProps, pagination: Pagination): Page[] { + if (props.isSimple) { + return []; + } else { + const currentValue = pagination.current.value; + const numberOfPages = pagination.numberOfPages.value; + const left = currentValue === numberOfPages ? numberOfPages - 3 : Math.max(0, (currentValue as number) - 2); // internal value is 1 indexed + const right = Math.min(left + 3, numberOfPages); + const pages = range(1, numberOfPages) + .map(number => ({ + number, + isCurrent: number === currentValue + })) + .slice(left, right); + return pages; + } +} + +function generatePaginationList(props: BPaginationProps, pagination: Pagination, themeClasses: string[]): VNode { + const generatePaginationListItem = getGeneratePaginationListItem(pagination, themeClasses); + const currentValue = pagination.current.value; + const numberOfPages = pagination.numberOfPages.value; + const nodes: VNode[] = getPageRange(props, pagination).map(generatePaginationListItem); + if (currentValue >= 5) { + nodes.unshift(ellipsis); + } + if (currentValue > 3) { + nodes.unshift(generatePaginationListItem({ number: 1, isCurrent: currentValue === 1 })); + } + if (currentValue < numberOfPages - 3) { + nodes.push(ellipsis); + } + if (currentValue < numberOfPages - 2) { + nodes.push(generatePaginationListItem({ number: numberOfPages, isCurrent: currentValue === numberOfPages })); + } + return h('ul', { class: 'pagination-list' }, nodes); +} + +function generateSimpleSummary(props: BPaginationProps, pagination: Pagination): VNode { + return h( + 'small', + { class: 'info' }, + props.perPage === 1 + ? `${pagination.after.value + 1} / ${props.total}` + : `${pagination.after.value + 1} - ${Math.min( + pagination.after.value + props.perPage, + props.total || 0 + )} / ${props.total || 0}` + ); +} + +function generatePaginationControls( + props: BPaginationProps, + context: SetupContext, + pagination: Pagination, + themeClasses: string[] +): VNode { + return h( + 'section', + { + 'aria-label': 'Pagination Controls', + class: ['pagination', props.position, props.size, { 'is-simple': props.isSimple, 'is-rounded': props.isRounded }] + }, + props.isSimple + ? [ + generatePreviousButton(context, pagination, themeClasses), + generateNextButton(context, pagination, themeClasses), + generateSimpleSummary(props, pagination) + ] + : [ + generatePreviousButton(context, pagination, themeClasses), + generateNextButton(context, pagination, themeClasses), + generatePaginationList(props, pagination, themeClasses) + ] + ); +} + +interface Page { + number: number; + isCurrent: boolean; +} + +export default defineComponent({ + name: 'b-pagination', + props: BPaginationPropsDefinition, + setup(props, context) { + const pagination = usePagination(props); + const { themeClasses } = useTheme(props); + return () => { + const controls = generatePaginationControls(props, context, pagination, themeClasses.value); + if (props.verticalPosition === 'is-top' && context.slots.default) { + return h('article', [controls, context.slots.default(extractPaginationState(pagination))]); + } + if (context.slots.default) { + return h('article', [context.slots.default(extractPaginationState(pagination)), controls]); + } + return controls; + }; + } +}); diff --git a/node_modules/buetify/src/components/pagination/index.ts b/node_modules/buetify/src/components/pagination/index.ts new file mode 100755 index 0000000..53387b6 --- /dev/null +++ b/node_modules/buetify/src/components/pagination/index.ts @@ -0,0 +1,5 @@ +import BPagination from './BPagination'; + +export { BPagination }; + +export default BPagination; diff --git a/node_modules/buetify/src/components/pagination/pagination.sass b/node_modules/buetify/src/components/pagination/pagination.sass new file mode 100755 index 0000000..39c3f1a --- /dev/null +++ b/node_modules/buetify/src/components/pagination/pagination.sass @@ -0,0 +1,20 @@ +@import '~bulma/sass/components/pagination' +.pagination + .pagination-next, + .pagination-previous + padding-left: 0.25em + padding-right: 0.25em + cursor: pointer + &.is-disabled + pointer-events: none + cursor: not-allowed + opacity: 0.5 + &.is-simple + justify-content: normal + &.is-centered + justify-content: center + &.is-right + justify-content: flex-end + .is-current + pointer-events: none + cursor: not-allowed diff --git a/node_modules/buetify/src/components/popupContainer/BPopupContainer.ts b/node_modules/buetify/src/components/popupContainer/BPopupContainer.ts new file mode 100755 index 0000000..643fa22 --- /dev/null +++ b/node_modules/buetify/src/components/popupContainer/BPopupContainer.ts @@ -0,0 +1,71 @@ +import { Eq, eq, eqNumber } from 'fp-ts/lib/Eq'; +import { IO } from 'fp-ts/lib/IO'; +import { VNode, defineComponent, h, Transition as transition, reactive, computed, nextTick } from 'vue'; +import { formatTransition } from '../../composables/transition'; +import { Transition, TransitionClasses } from '../../types/Transition'; +import { constEmptyArray, removeListItem } from '../../utils/helpers'; + +export interface PopupOptions { + transition: Transition; + render: IO<VNode[]>; +} + +export interface Popup extends PopupOptions { + transition: TransitionClasses; + id: number; +} + +export const eqPopup: Eq<Popup> = eq.contramap(eqNumber, popup => popup.id); + +export const removePopup = removeListItem(eqPopup); + +const z = 999; + +let id = 0; + +function generatePopup(popup: Popup, index: number): VNode { + return h('div', { key: popup.id, style: { 'z-index': z + index + 1 } }, [ + h(transition, popup.transition, popup.render) + ]); +} + +const BPopupContainer = defineComponent({ + name: 'b-popup-container', + setup() { + const popups = reactive<Popup[]>([]); + function showPopup(options: PopupOptions): IO<void> { + const nid = id++; + const popup = reactive({ + id: nid, + render: constEmptyArray as IO<VNode[]>, + transition: formatTransition(options.transition) + }); + popups.push(popup); + nextTick().then(() => { + popup.render = options.render; + }); + return () => { + popup.render = constEmptyArray; + setTimeout(() => { + const index = popups.findIndex(p => p.id === nid); + if (index > 0) { + popups.splice(index, 1); + } + }, 250); + }; + } + const rootZ = computed(() => (popups.length ? z : -1)); + return { + showPopup, + popups, + rootZ + }; + }, + render(): VNode { + return h('div', { style: { 'z-index': this.rootZ } }, this.rootZ ? this.popups.map(generatePopup) : undefined); + } +}); + +export type PopupContainer = InstanceType<typeof BPopupContainer>; + +export default BPopupContainer; diff --git a/node_modules/buetify/src/components/popupContainer/index.ts b/node_modules/buetify/src/components/popupContainer/index.ts new file mode 100755 index 0000000..eccaf67 --- /dev/null +++ b/node_modules/buetify/src/components/popupContainer/index.ts @@ -0,0 +1,5 @@ +import BPopupContainer from './BPopupContainer'; + +export { BPopupContainer }; + +export default BPopupContainer; diff --git a/node_modules/buetify/src/components/pricingTable/BPricingPlan.ts b/node_modules/buetify/src/components/pricingTable/BPricingPlan.ts new file mode 100755 index 0000000..6e780b6 --- /dev/null +++ b/node_modules/buetify/src/components/pricingTable/BPricingPlan.ts @@ -0,0 +1,24 @@ +import './pricing-table.sass'; +import BPricingPlanPrice from './BPricingPlanPrice'; +import { VNode, h, SetupContext } from 'vue'; + +export interface BPricingPlanProps { + isActive?: boolean; + amount: number; + interval: number; +} + +export default function BPricingPlan(props: BPricingPlanProps, { attrs, slots }: SetupContext) { + const nodes: VNode[] = []; + if (slots.header) { + nodes.push(h('div', { class: 'plan-header' }, slots.header())); + } + nodes.push( + h('div', { class: 'plan-pricing-container' }, slots.price ? slots.price(props) : h(BPricingPlanPrice, props)) + ); + nodes.push(h('div', { class: 'plan-items' }, slots.items && slots.items())); + if (slots.footer) { + nodes.push(h('div', { class: 'plan-footer' }, slots.footer())); + } + return h('section', { ...attrs, class: ['pricing-plan', { 'is-active': !!props.isActive }] }, nodes); +} diff --git a/node_modules/buetify/src/components/pricingTable/BPricingPlanItem.ts b/node_modules/buetify/src/components/pricingTable/BPricingPlanItem.ts new file mode 100755 index 0000000..481eb58 --- /dev/null +++ b/node_modules/buetify/src/components/pricingTable/BPricingPlanItem.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('plan-item'); diff --git a/node_modules/buetify/src/components/pricingTable/BPricingPlanPrice.ts b/node_modules/buetify/src/components/pricingTable/BPricingPlanPrice.ts new file mode 100755 index 0000000..0b18c0f --- /dev/null +++ b/node_modules/buetify/src/components/pricingTable/BPricingPlanPrice.ts @@ -0,0 +1,14 @@ +import { SetupContext, h } from 'vue'; +import { BPricingPlanProps } from './BPricingPlan'; + +export type BPricingPlanPriceProps = Omit<BPricingPlanProps, 'isActive'>; + +export default function BPricingPlanPrice(props: BPricingPlanPriceProps, { attrs, slots }: SetupContext) { + return h('div', { ...attrs, class: 'plan-price' }, [ + h('span', { class: 'plan-price-amount' }, [ + h('span', { class: 'plan-price-currency' }, slots.currency ? slots.currency() : '$'), + `${props.amount}` + ]), + `/${props.interval}` + ]); +} diff --git a/node_modules/buetify/src/components/pricingTable/BPricingTable.ts b/node_modules/buetify/src/components/pricingTable/BPricingTable.ts new file mode 100755 index 0000000..d140ca2 --- /dev/null +++ b/node_modules/buetify/src/components/pricingTable/BPricingTable.ts @@ -0,0 +1,3 @@ +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('pricing-table', 'article'); diff --git a/node_modules/buetify/src/components/pricingTable/index.ts b/node_modules/buetify/src/components/pricingTable/index.ts new file mode 100755 index 0000000..3fb8fab --- /dev/null +++ b/node_modules/buetify/src/components/pricingTable/index.ts @@ -0,0 +1,6 @@ +import BPricingPlan from './BPricingPlan'; +import BPricingPlanItem from './BPricingPlanItem'; +import BPricingPlanPrice from './BPricingPlanPrice'; +import BPricingTable from './BPricingTable'; + +export { BPricingPlanPrice, BPricingTable, BPricingPlanItem, BPricingPlan }; diff --git a/node_modules/buetify/src/components/pricingTable/pricing-table.sass b/node_modules/buetify/src/components/pricingTable/pricing-table.sass new file mode 100755 index 0000000..f9c41e4 --- /dev/null +++ b/node_modules/buetify/src/components/pricingTable/pricing-table.sass @@ -0,0 +1,197 @@ +$pricing-plan-border: .1rem solid $white-ter !default +$pricing-plan-border-radius: $radius !default +$pricing-plan-active-shadow: 0 8px 12px 0 rgba($grey, 0.2) !default +$pricing-plan-active-transform: scale(1.05) !default +$pricing-header-background: $white !default +$pricing-item-background: $white-ter !default +$pricing-item-border: .1rem solid $white !default +$pricing-item-color: $grey !default +$pricing-price-background: white !default + +.pricing-table + display: flex + align-items: stretch + flex-direction: row + flex-flow: row wrap + justify-content: space-between + + &.is-comparative + .pricing-plan + margin: 0 + &:not(:last-child) + border-right: none + + .pricing-plan + display: flex + flex-direction: column + flex: 1 1 auto + background-color: $white + border: $pricing-plan-border + border-radius: $pricing-plan-border-radius + list-style-type: none + transition: 0.25s + margin: .5em + + .plan-header + border-top-left-radius: $pricing-plan-border-radius + border-top-right-radius: $pricing-plan-border-radius + background-color: $pricing-header-background + font-size: $size-medium + font-weight: $weight-semibold + padding: .75em + align-content: center + text-align: center + + .plan-item + background: $pricing-item-background + border-bottom: $pricing-item-border + padding: .75em + align-content: center + text-align: center + font-size: .9em + color: $pricing-item-color + + .plan-price + background-color: $pricing-price-background + font-size: $size-small + font-weight: $weight-normal + padding: .75em + align-content: center + text-align: center + + .plan-price-amount + font-size: $size-2 + font-weight: $weight-bold + + .plan-price-currency + vertical-align: super + font-size: $size-normal !important + font-weight: $weight-normal !important + color: $text + margin-right: .25rem + + .plan-footer + border-bottom-left-radius: $pricing-plan-border-radius + border-bottom-right-radius: $pricing-plan-border-radius + padding: .75em + align-content: center + text-align: center + margin-top: auto + + &.is-active + box-shadow: $pricing-plan-active-shadow + transform: $pricing-plan-active-transform + .plan-price + .plan-price-amount + color: $primary + .plan-footer + .button + background-color: $primary + border-color: transparent + color: findColorInvert( $primary ) + &:hover, + &.is-hovered + background-color: darken($primary, 2.5%) + border-color: transparent + color: findColorInvert( $primary ) + &:focus, + &.is-focused + border-color: transparent + box-shadow: 0 0 0.5em rgba($primary, 0.25) + color: findColorInvert( $primary ) + &:active, + &.is-active + background-color: darken($primary, 5%) + border-color: transparent + color: findColorInvert( $primary ) + &[disabled] + background-color: $primary + border-color: transparent + + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + .plan-price + .plan-price-amount + color: $color + .plan-footer + .button + background-color: $color + border-color: transparent + color: $color-invert + &:hover, + &.is-hovered + background-color: bulmaDarken($color, 2.5%) + border-color: transparent + color: $color-invert + &:focus, + &.is-focused + border-color: transparent + box-shadow: 0 0 0.5em bulmaRgba($color, 0.25) + color: $color-invert + &:active, + &.is-active + background-color: bulmaDarken($color, 5%) + border-color: transparent + color: $color-invert + &[disabled] + background-color: $color + border-color: transparent + box-shadow: none + ++tablet + .pricing-table + &.is-comparative + margin: .5rem + &.is-features + display: none + .plan-item + &::before + content: attr( 'data-feature' ) + + &.is-horizontal + .pricing-plan + display: flex + flex-direction: row + flex-basis: 100% + .plan-header + width: 50% + display: flex + flex-direction: column + justify-content: center + .plan-price + width: 100% + display: flex + flex-direction: row + justify-content: center + .plan-items + width: 100% + background-color: $pricing-item-background + columns: 2 + -webkit-columns: 2 + -moz-columns: 2 + column-gap: .1rem + .plan-footer + width: 50% + display: flex + flex-direction: column + justify-content: center + margin: auto + ++mobile + .pricing-table + &.is-comparative + .pricing-plan + &.is-plan-first-mobile + order: -1 + &.is-features + display: none + margin: .5rem + .plan-item + &::before + content: attr(data-feature) + display: block + font-weight: $weight-semibold + font-size: $size-small + color: $grey-light diff --git a/node_modules/buetify/src/components/renderless/deferRendering/DeferRendering.ts b/node_modules/buetify/src/components/renderless/deferRendering/DeferRendering.ts new file mode 100755 index 0000000..198ffd2 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/deferRendering/DeferRendering.ts @@ -0,0 +1,39 @@ +import { shallowRef, onMounted, defineComponent } from 'vue'; + +export const DeferRendering = defineComponent({ + name: 'defer-rendering', + props: { + frames: { + type: Number, + required: true + } + }, + setup(props, { slots }) { + const currentFrame = shallowRef(0); + function checkRenderingStatus() { + if (props.frames > 0) { + if (window && window.requestAnimationFrame) { + const step = () => { + requestAnimationFrame(() => { + if (currentFrame.value < props.frames) { + currentFrame.value++; + step(); + } + }); + }; + step(); + } else { + setTimeout(() => (currentFrame.value = props.frames), props.frames * 16); + } + } + } + onMounted(checkRenderingStatus); + return () => { + if (currentFrame.value >= props.frames && slots.default) { + return slots.default(); + } else { + return undefined; + } + }; + } +}); diff --git a/node_modules/buetify/src/components/renderless/deferRendering/index.ts b/node_modules/buetify/src/components/renderless/deferRendering/index.ts new file mode 100755 index 0000000..0703462 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/deferRendering/index.ts @@ -0,0 +1,5 @@ +import { DeferRendering } from './DeferRendering'; + +export { DeferRendering }; + +export default DeferRendering; diff --git a/node_modules/buetify/src/components/renderless/index.ts b/node_modules/buetify/src/components/renderless/index.ts new file mode 100755 index 0000000..90e98a5 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/index.ts @@ -0,0 +1,4 @@ +export * from './deferRendering'; +export * from './paginationState'; +export * from './toggle'; +export * from './windowSize'; diff --git a/node_modules/buetify/src/components/renderless/paginationState/PaginationState.ts b/node_modules/buetify/src/components/renderless/paginationState/PaginationState.ts new file mode 100755 index 0000000..e969755 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/paginationState/PaginationState.ts @@ -0,0 +1,11 @@ +import { extractPaginationState, usePagination, UsePaginationPropsDefinition } from '../../../composables/pagination'; +import { defineComponent } from 'vue'; + +export const PaginationState = defineComponent({ + name: 'pagination-state', + props: UsePaginationPropsDefinition, + setup(props, { slots }) { + const pagination = usePagination(props); + return () => slots.default && slots.default(extractPaginationState(pagination)); + } +}); diff --git a/node_modules/buetify/src/components/renderless/paginationState/index.ts b/node_modules/buetify/src/components/renderless/paginationState/index.ts new file mode 100755 index 0000000..bc8e77b --- /dev/null +++ b/node_modules/buetify/src/components/renderless/paginationState/index.ts @@ -0,0 +1,5 @@ +import { PaginationState } from './PaginationState'; + +export { PaginationState }; + +export default PaginationState; diff --git a/node_modules/buetify/src/components/renderless/toggle/DefaultToggle.ts b/node_modules/buetify/src/components/renderless/toggle/DefaultToggle.ts new file mode 100755 index 0000000..b020535 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/toggle/DefaultToggle.ts @@ -0,0 +1,25 @@ +import { getUseTogglePropsDefinition, useToggle, UseToggleProps } from '../../../composables/toggle'; +import { defineComponent } from 'vue'; + +export function defineToggle<K extends string>(statusName: K) { + return defineComponent({ + name: 'toggle', + props: getUseTogglePropsDefinition<K>(statusName), + setup(props, { slots }) { + const toggle = useToggle((props as unknown) as UseToggleProps<K>, statusName); + return () => + slots.default && + slots.default({ + attrs: toggle.attrs.value, + listeners: toggle.listeners, + isOn: toggle.isOn.value, + isOff: toggle.isOff.value, + setOn: toggle.setOn, + setOff: toggle.setOff, + toggle: toggle.toggle + }); + } + }); +} + +export const DefaultToggle = defineToggle('status'); diff --git a/node_modules/buetify/src/components/renderless/toggle/index.ts b/node_modules/buetify/src/components/renderless/toggle/index.ts new file mode 100755 index 0000000..636de25 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/toggle/index.ts @@ -0,0 +1 @@ +export * from './DefaultToggle'; diff --git a/node_modules/buetify/src/components/renderless/windowSize/WindowSizeSlot.ts b/node_modules/buetify/src/components/renderless/windowSize/WindowSizeSlot.ts new file mode 100755 index 0000000..c6f2b71 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/windowSize/WindowSizeSlot.ts @@ -0,0 +1,10 @@ +import { defineComponent } from 'vue'; +import { useWindowSize } from '../../../composables/windowSize'; + +export const WindowSizeSlot = defineComponent({ + name: 'window-size', + setup(_, { slots }) { + const windowSize = useWindowSize(); + return () => slots.default && slots.default(windowSize.value); + } +}); diff --git a/node_modules/buetify/src/components/renderless/windowSize/index.ts b/node_modules/buetify/src/components/renderless/windowSize/index.ts new file mode 100755 index 0000000..de8e028 --- /dev/null +++ b/node_modules/buetify/src/components/renderless/windowSize/index.ts @@ -0,0 +1,5 @@ +import { WindowSizeSlot } from './WindowSizeSlot'; + +export { WindowSizeSlot }; + +export default WindowSizeSlot; diff --git a/node_modules/buetify/src/components/scroll/BScroll.ts b/node_modules/buetify/src/components/scroll/BScroll.ts new file mode 100755 index 0000000..4032bb5 --- /dev/null +++ b/node_modules/buetify/src/components/scroll/BScroll.ts @@ -0,0 +1,25 @@ +import './scroll.sass'; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +function testWindowScrollbar() { + const parent = document.createElement('div'); + parent.setAttribute('style', 'width:30px;height:30px;'); + parent.classList.add('scrollbar-test'); + + const child = document.createElement('div'); + child.setAttribute('style', 'width:100%;height:40px'); + parent.appendChild(child); + document.body.appendChild(parent); + + // eslint-disable-next-line + // @ts-ignore + const scrollbarWidth = 30 - parent.firstChild.clientWidth; + if (scrollbarWidth) { + document.body.classList.add('layout-scrollbar-obtrusive'); + } + document.body.removeChild(parent); +} + +requestAnimationFrame(testWindowScrollbar); + +export default getSimpleFunctionalComponent('b-scroll', 'div'); diff --git a/node_modules/buetify/src/components/scroll/index.ts b/node_modules/buetify/src/components/scroll/index.ts new file mode 100755 index 0000000..26d255a --- /dev/null +++ b/node_modules/buetify/src/components/scroll/index.ts @@ -0,0 +1,5 @@ +import BScroll from './BScroll'; + +export { BScroll }; + +export default BScroll; diff --git a/node_modules/buetify/src/components/scroll/scroll.sass b/node_modules/buetify/src/components/scroll/scroll.sass new file mode 100755 index 0000000..ec51b86 --- /dev/null +++ b/node_modules/buetify/src/components/scroll/scroll.sass @@ -0,0 +1,46 @@ +$scrollbar-track-color: transparent !default +$scrollbar-color: $primary !default +$scrollbar-color-hover: $primary-dark !default +$scrollbar-color-active: $primary-dark !default +$scrollbar-size: 0.5rem !default +$scrollbar-min-length: 1.5rem !default +$scrollbar-radius: $radius-large !default + +.b-scroll, .scrollbar-test + //overscroll-behavior: contain + overflow: auto + -webkit-overflow-scrolling: touch + -ms-overflow-style: -ms-autohiding-scrollbar + // FF only accepts values of auto, thin, and none + scrollbar-width: thin + + +/* This class controls what elements have the new fancy scrollbar CSS */ +.b-scroll + scrollbar-color: $scrollbar-color $scrollbar-track-color + +/* Only apply height/width to ::-webkit-scrollbar if is obtrusive */ +.layout-scrollbar-obtrusive .b-scroll::-webkit-scrollbar + height: $scrollbar-size + width: $scrollbar-size + +.b-scroll::-webkit-scrollbar-track + background-color: $scrollbar-track-color + +.b-scroll::-webkit-scrollbar-thumb + background-color: $scrollbar-color + border-radius: $scrollbar-radius + +.b-scroll::-webkit-scrollbar-thumb:hover + background-color: $scrollbar-color-hover + +.b-scroll::-webkit-scrollbar-thumb:active + background-color: $scrollbar-color-hover + +.scrollbar-test::-webkit-scrollbar-thumb:vertical, +.b-scroll::-webkit-scrollbar-thumb:vertical + min-height: $scrollbar-min-length + +.scrollbar-test::-webkit-scrollbar-thumb:horizontal, +.b-scroll::-webkit-scrollbar-thumb:horizontal + min-width: $scrollbar-min-length diff --git a/node_modules/buetify/src/components/sheet/BSheet.ts b/node_modules/buetify/src/components/sheet/BSheet.ts new file mode 100755 index 0000000..c719e47 --- /dev/null +++ b/node_modules/buetify/src/components/sheet/BSheet.ts @@ -0,0 +1,39 @@ +import '../../sass/helpers/border-helpers.sass'; +import '../../sass/helpers/height-width-helpers.sass'; +import './sheet.sass'; +import { h, defineComponent } from 'vue'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import BButton from '../button/BButton'; + +const IsLoadingButton = h(BButton, { + size: 'is-large', + variant: 'is-link', + isOutlined: true, + isLoading: true, + class: 'is-borderless is-fullwidth' +}); + +export default defineComponent({ + name: 'b-sheet', + props: { + ...DefaultThemePropsDefinition, + tag: { + type: String, + default: 'main' + }, + isLoading: { + type: Boolean, + default: false + } + }, + setup(props, { slots }) { + const { themeClasses } = useTheme(props); + + return () => + h( + props.tag, + { class: ['b-sheet', { 'is-loading': props.isLoading }, ...themeClasses.value] }, + props.isLoading ? (slots.loading ? slots.loading() : IsLoadingButton) : slots.default && slots.default() + ); + } +}); diff --git a/node_modules/buetify/src/components/sheet/index.ts b/node_modules/buetify/src/components/sheet/index.ts new file mode 100755 index 0000000..9123b86 --- /dev/null +++ b/node_modules/buetify/src/components/sheet/index.ts @@ -0,0 +1,5 @@ +import BSheet from './BSheet'; + +export { BSheet }; + +export default BSheet; diff --git a/node_modules/buetify/src/components/sheet/sheet.sass b/node_modules/buetify/src/components/sheet/sheet.sass new file mode 100755 index 0000000..c8ba414 --- /dev/null +++ b/node_modules/buetify/src/components/sheet/sheet.sass @@ -0,0 +1,26 @@ +$sheet-color: $text !default +$sheet-background-color: $white !default + +.b-sheet + background-color: $sheet-background-color + color: $sheet-color + &.is-loading + display: flex + flex-direction: column + justify-content: center + &.is-fullheight + // So that loading indicator is displayed on center of viewport on mobile + position: fixed + top: 0 + bottom: 0 + height: auto + +touch + width: 100% !important + &.is-fullheight + min-height: 100vh + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: findColorInvert($color) + &.is-#{$name} + background-color: $color + color: $color-invert diff --git a/node_modules/buetify/src/components/sidebar/BSidebar.ts b/node_modules/buetify/src/components/sidebar/BSidebar.ts new file mode 100755 index 0000000..7206215 --- /dev/null +++ b/node_modules/buetify/src/components/sidebar/BSidebar.ts @@ -0,0 +1,121 @@ +import './sidebar.sass'; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { useWindowSize } from '../../composables/windowSize'; +import { SlideRightTransition } from '../../transitions/slideRightTransition'; +import { + defineComponent, + SetupContext, + VNode, + h, + PropType, + computed, + watch, + toRef, + ExtractPropTypes, + withDirectives, + vShow +} from 'vue'; +import BOverlay from '../overlay/BOverlay'; +import { SidebarController, useSidebarController } from './composables'; +import { SidebarThemeMap } from './theme'; + +export const BSidebarPropsDefinition = { + ...useThemePropsDefinition(SidebarThemeMap), + tag: { + type: String as PropType<string>, + default: 'nav' + }, + currentRoute: { + required: false + } +}; + +export type BNavigationDrawerProps = ExtractPropTypes<typeof BSidebarPropsDefinition>; + +function generateDrawer( + props: BNavigationDrawerProps, + controller: SidebarController, + themeClasses: string[], + context: SetupContext +): VNode { + return h( + props.tag, + { + class: ['b-sidebar', ...themeClasses] + }, + context.slots.default && + context.slots.default({ + showSidebar: controller.show, + hideSidebar: controller.hide, + sidebarIsVisible: controller.isVisible.value, + toggleSidebar: controller.toggle + }) + ); +} + +function generateMobileDrawer( + props: BNavigationDrawerProps, + controller: SidebarController, + themeClasses: string[], + context: SetupContext +): VNode { + return h(SlideRightTransition, undefined, () => + withDirectives( + h( + BOverlay, + { + class: 'is-left', + isActive: controller.isVisible.value, + onClick: controller.hide + }, + () => generateDrawer(props, controller, themeClasses, context) + ), + [[vShow, controller.isVisible.value]] + ) + ); +} + +export default defineComponent({ + name: 'b-sidebar', + props: BSidebarPropsDefinition, + setup(props, context) { + const controller = useSidebarController(); + const windowSize = useWindowSize(); + const { themeClasses } = useTheme(props); + const useSideDrawer = computed(() => { + return windowSize.value.isTouch || windowSize.value.isDesktop; + }); + watch( + useSideDrawer, + (newValue, oldValue) => { + if (newValue === oldValue && oldValue !== undefined) { + return; + } + if (newValue) { + controller.hide(); + } else { + controller.show(); + } + }, + { immediate: true } + ); + watch( + toRef(props, 'currentRoute'), + () => { + if (useSideDrawer.value) { + controller.hide(); + } + }, + { + deep: false + } + ); + return () => { + if (useSideDrawer.value) { + return generateMobileDrawer(props, controller, themeClasses.value, context); + } else { + return generateDrawer(props, controller, themeClasses.value, context); + } + }; + } +}); diff --git a/node_modules/buetify/src/components/sidebar/composables.ts b/node_modules/buetify/src/components/sidebar/composables.ts new file mode 100755 index 0000000..8cb5fa0 --- /dev/null +++ b/node_modules/buetify/src/components/sidebar/composables.ts @@ -0,0 +1,62 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { none, Option, some } from 'fp-ts/lib/Option'; +import { Ref, ExtractPropTypes, shallowRef, PropType, computed, provide, inject } from 'vue'; +import { IO } from 'fp-ts/lib/IO'; +import { ToggleAttrs, ToggleListeners, useToggle } from '../../composables/toggle'; +import { DEFAULT_BREAK_POINTS } from '../../composables/windowSize/provideWindowSize'; + +export interface SidebarController { + isVisible: Ref<boolean>; + attrs: Ref<Option<ToggleAttrs>>; + listeners: Ref<Option<ToggleListeners>>; + show: IO<void>; + hide: IO<void>; + toggle: IO<void>; +} + +const SIDEBAR_CONTROLLER_INJECTION_SYMBOL = Symbol('navigation-drawer-controller'); + +export const ProvideSidebarControllerPropsDefinition = { + currentRoute: { + required: false + }, + isVisible: { + type: Boolean as PropType<boolean>, + required: false, + default: !!window && window.innerWidth > DEFAULT_BREAK_POINTS.value.desktop + }, + hasPopup: { + type: Boolean as PropType<boolean>, + required: false, + default: true + } +}; + +export type ProvideNavigationDrawerControllerProps = ExtractPropTypes<typeof ProvideSidebarControllerPropsDefinition>; + +const DEFAULT_SIDEBAR_CONTROLLER_INJECTION: SidebarController = { + isVisible: shallowRef(false), + attrs: shallowRef(none), + listeners: shallowRef(none), + show: constVoid, + hide: constVoid, + toggle: constVoid +}; + +export function useSidebarController(): SidebarController { + return inject(SIDEBAR_CONTROLLER_INJECTION_SYMBOL, DEFAULT_SIDEBAR_CONTROLLER_INJECTION); +} + +export function provideSidebarController(props: ProvideNavigationDrawerControllerProps) { + const toggle = useToggle(props, 'isVisible'); + const injection: SidebarController = { + isVisible: toggle.isOn, + listeners: computed(() => some(toggle.listeners)), + attrs: computed(() => some(toggle.attrs.value)), + show: toggle.setOn, + hide: toggle.setOff, + toggle: toggle.toggle + }; + provide(SIDEBAR_CONTROLLER_INJECTION_SYMBOL, injection); + return injection; +} diff --git a/node_modules/buetify/src/components/sidebar/index.ts b/node_modules/buetify/src/components/sidebar/index.ts new file mode 100755 index 0000000..7d1c378 --- /dev/null +++ b/node_modules/buetify/src/components/sidebar/index.ts @@ -0,0 +1,6 @@ +import BSidebar from './BSidebar'; +import { SidebarThemeMap } from './theme'; + +export { BSidebar, SidebarThemeMap }; + +export default BSidebar; diff --git a/node_modules/buetify/src/components/sidebar/sidebar.sass b/node_modules/buetify/src/components/sidebar/sidebar.sass new file mode 100755 index 0000000..95f0c08 --- /dev/null +++ b/node_modules/buetify/src/components/sidebar/sidebar.sass @@ -0,0 +1,8 @@ +.b-sidebar + width: $navigation-drawer-width + @each $name, $pair in mergeColorMaps($colors, $shades) + $color: nth($pair, 1) + $color-invert: findColorInvert($color) + &.is-#{$name} + background-color: $color + color: $color-invert diff --git a/node_modules/buetify/src/components/sidebar/theme.ts b/node_modules/buetify/src/components/sidebar/theme.ts new file mode 100755 index 0000000..32227b3 --- /dev/null +++ b/node_modules/buetify/src/components/sidebar/theme.ts @@ -0,0 +1,7 @@ +import { shallowReactive } from 'vue'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; + +export const SidebarThemeMap: ThemeColorMap = shallowReactive({ + dark: 'is-black-bis', + light: 'is-grey-darker' +}); diff --git a/node_modules/buetify/src/components/steps/BStepItem.ts b/node_modules/buetify/src/components/steps/BStepItem.ts new file mode 100755 index 0000000..909f94b --- /dev/null +++ b/node_modules/buetify/src/components/steps/BStepItem.ts @@ -0,0 +1,35 @@ +import { toUndefined } from 'fp-ts/lib/Option'; +import { defineComponent, inject, h, computed, withDirectives, vShow } from 'vue'; +import { BStepItemPropsDefinition, DEFAULT_STEP_INJECTION, STEP_ITEM_NAME, STEPS_SYMBOL } from './shared'; + +export default defineComponent({ + name: STEP_ITEM_NAME, + props: BStepItemPropsDefinition, + setup(props, { slots }) { + const injection = inject(STEPS_SYMBOL, DEFAULT_STEP_INJECTION); + + const index = injection.steps.findIndex(p => p.label === props.label); + + if (index > -1) { + injection.steps.splice(index, 1, props); + } else { + injection.steps.push(props); + } + + const isActive = computed(() => toUndefined(injection.activeLabel.value) === props.label); + + return () => { + return withDirectives( + h( + 'section', + { + class: 'step-item', + 'aria-label': props.label + }, + slots.default && slots.default({ isActive: isActive.value }) + ), + [[vShow, isActive.value]] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/steps/BSteps.ts b/node_modules/buetify/src/components/steps/BSteps.ts new file mode 100755 index 0000000..cb48c98 --- /dev/null +++ b/node_modules/buetify/src/components/steps/BSteps.ts @@ -0,0 +1,245 @@ +import './steps.sass'; +import { lookup } from 'fp-ts/Array'; +import { pipe } from 'fp-ts/function'; +import { getUseModelPropsDefinition, Model, useModel } from '../../composables/model'; +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import { ColorVariant } from '../../types/ColorVariants'; +import { map } from 'fp-ts/lib/Option'; +import { + computed, + cloneVNode, + TransitionGroup, + Ref, + defineComponent, + nextTick, + VNode, + PropType, + h, + ExtractPropTypes, + provide, + shallowRef, + withDirectives, + vShow, + shallowReactive, + SetupContext, + ComponentOptions +} from 'vue'; +import { BStepItemProps, StepInjection, STEPS_SYMBOL } from './shared'; + +export type StepsSize = 'is-small' | 'is-medium' | 'is-large' | ''; + +type StepTransition = 'slide-next' | 'slide-prev'; + +export type StepsPosition = 'is-right' | ''; + +export type StepLabelPosition = 'is-right' | 'is-left' | ''; + +export type StepsMobileMode = 'minimal' | 'compact' | ''; + +export const BStepsPropsDefinition = { + ...getUseModelPropsDefinition<number>(), + ...DefaultThemePropsDefinition, + position: { + type: String as PropType<StepsPosition>, + default: '' as const + }, + labelPosition: { + type: String as PropType<StepLabelPosition>, + default: '' + }, + variant: { + type: String as PropType<ColorVariant>, + default: '' as const + }, + size: { + type: String as PropType<StepsSize>, + default: '' as const + }, + isAnimated: { + type: Boolean as PropType<boolean>, + default: true + }, + mobileMode: { + type: String as PropType<StepsMobileMode>, + default: 'minimal' as const + }, + isRounded: { + type: Boolean, + default: true + }, + isVertical: { + type: Boolean, + default: false + } +}; + +export type BStepsProps = ExtractPropTypes<typeof BStepsPropsDefinition>; + +function getOnStepItemClick(index: number, model: Model<number>, transition: Ref<StepTransition>) { + return () => { + const val = model.modelValue.value || 0; + if (val !== index) { + transition.value = index < val ? 'slide-next' : 'slide-prev'; + nextTick().then(() => { + model.modelValue.value = index; + }); + } + }; +} + +function getGenerateNavItem( + props: BStepsProps, + model: Model<number>, + injection: StepInjection, + transition: Ref<StepTransition> +) { + return function generateNavItem(step: BStepItemProps, index: number): VNode { + const currentIndex = model.modelValue.value || 0; + const isClickable = step.isClickable ?? index < currentIndex; + return withDirectives( + h( + 'li', + { + key: step.label, + class: [ + step.variant || props.variant, + 'step-item', + { + 'is-previous': index < currentIndex, + 'is-active': index === currentIndex + } + ] + }, + [ + h( + 'a', + { + class: [ + 'step-link', + { + 'is-clickable': isClickable + } + ], + onClick: isClickable ? getOnStepItemClick(index, model, transition) : undefined + }, + [ + h( + 'div', + { class: 'step-marker' }, + step.icon ? h(step.icon as ComponentOptions, { size: props.size }) : step.step ?? `${index + 1}` + ), //eslint-disable-line + h('div', { class: 'step-details' }, [h('span', { class: 'step-title' }, step.label)]) + ] + ) + ] + ), + [[vShow, injection.steps[index]?.isVisible ?? true]] + ); + }; +} + +function generateNavHeader( + props: BStepsProps, + model: Model<number>, + injection: StepInjection, + transition: Ref<StepTransition>, + themeClasses: string[] +): VNode { + return h( + 'nav', + { + class: [ + 'steps', + props.size, + props.variant || null, + { + 'is-rounded': props.isRounded, + 'is-animated': props.isAnimated, + 'has-label-right': props.labelPosition === 'is-right', + 'has-label-left': props.labelPosition === 'is-left', + 'mobile-minimalist': props.mobileMode === 'minimal', + 'mobile-compact': props.mobileMode === 'compact' + }, + ...themeClasses + ] + }, + h('ul', { class: ['step-items'] }, injection.steps.map(getGenerateNavItem(props, model, injection, transition))) + ); +} + +function BStaticStepContent(_: unknown, { slots }: SetupContext) { + return h('div', { class: 'step-content' }, slots.default && slots.default()); +} + +export default defineComponent({ + name: 'b-steps', + props: BStepsPropsDefinition, + setup(props, context) { + const { themeClasses } = useTheme(props); + const model = useModel(props); + const transition = shallowRef('slide-next' as 'slide-next' | 'slide-prev'); + const steps = shallowReactive([] as BStepItemProps[]); + const isTransitioning = shallowRef(false); + const activeLabel = computed(() => + pipe( + steps, + lookup(model.modelValue.value || 0), + map(p => p.label) + ) + ); + const injection: StepInjection = { + activeLabel, + steps + }; + + provide(STEPS_SYMBOL, injection); + + function onBeforeEnter() { + isTransitioning.value = true; + } + + function onAfterLeave() { + isTransitioning.value = false; + } + + return () => { + return h( + 'article', + { + class: [ + 'b-steps', + props.size || null, + { + 'is-vertical': props.isVertical, + [props.position]: props.position && props.isVertical + } + ] + }, + [ + generateNavHeader(props, model, injection, transition, themeClasses.value), + props.isAnimated + ? h( + 'div', + { + class: ['step-content', { 'is-transitioning': isTransitioning.value }] + }, + h( + TransitionGroup, + { + onBeforeEnter, + onAfterLeave, + name: transition.value + }, + () => + context.slots.default && + context.slots + .default() + .map((node, index) => cloneVNode(node, { key: steps[index]?.label ?? index })) + ) + ) + : h(BStaticStepContent, () => context.slots.default && context.slots.default()) + ] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/steps/index.ts b/node_modules/buetify/src/components/steps/index.ts new file mode 100755 index 0000000..d21719e --- /dev/null +++ b/node_modules/buetify/src/components/steps/index.ts @@ -0,0 +1,4 @@ +import BStepItem from './BStepItem'; +import BSteps from './BSteps'; + +export { BStepItem, BSteps }; diff --git a/node_modules/buetify/src/components/steps/shared.ts b/node_modules/buetify/src/components/steps/shared.ts new file mode 100755 index 0000000..e44bd6c --- /dev/null +++ b/node_modules/buetify/src/components/steps/shared.ts @@ -0,0 +1,49 @@ +import { Component, ExtractPropTypes, PropType, Ref, shallowRef } from 'vue'; +import { none, Option } from 'fp-ts/lib/Option'; +import { ColorVariant } from '../../types/ColorVariants'; + +export const STEPS_SYMBOL = Symbol('steps'); + +export const STEP_ITEM_NAME = 'b-step-item'; + +export interface StepInjection { + activeLabel: Ref<Option<string>>; + steps: BStepItemProps[]; +} + +export const DEFAULT_STEP_INJECTION: StepInjection = { + activeLabel: shallowRef(none), + steps: [] +}; + +export const BStepItemPropsDefinition = { + label: { + type: String as PropType<string>, + required: true as const + }, + step: { + type: String, + required: false + }, + variant: { + type: String as PropType<ColorVariant>, + default: '' as const + }, + icon: { + type: [Function, Object] as PropType<Component> + }, + isClickable: { + type: Boolean as PropType<boolean>, + default: false + }, + isCompleted: { + type: Boolean as PropType<boolean>, + default: false + }, + isVisible: { + type: Boolean as PropType<boolean>, + default: true + } +}; + +export type BStepItemProps = ExtractPropTypes<typeof BStepItemPropsDefinition>; diff --git a/node_modules/buetify/src/components/steps/steps.sass b/node_modules/buetify/src/components/steps/steps.sass new file mode 100755 index 0000000..cc04c64 --- /dev/null +++ b/node_modules/buetify/src/components/steps/steps.sass @@ -0,0 +1,366 @@ +// The below is pulled from Buefy + + +$steps-details-background-color: $body-background-color !default +$steps-maker-default-color: $grey-light !default +$steps-marker-default-border: .2em solid #fff !default +$steps-default-color: $grey-lighter !default +$steps-previous-color: $primary !default +$steps-active-color: $primary !default +$steps-divider-height: .2em !default +$steps-vertical-padding: 1em 0 !default +$steps-mobile-max-width: $tablet !default +$steps-colors: $colors !default + +@mixin steps-size($size) + .steps + font-size: $size + min-height: $size * 2 + + .step-items + .step-item + .step-marker + height: $size * 2 + width: $size * 2 + + .icon + *, *:before + font-size: $size + + .step-details + .step-title + font-size: $size * 1.2 + font-weight: $weight-semibold + line-height: $size + + &:not(:first-child), &:only-child + &::before + height: $steps-divider-height + top: #{$size} + + &:only-child + &::after + top: #{$size} + + @include until($steps-mobile-max-width) + &::before, &::after, &:not(:first-child)::before + top: #{$size} + + &.is-vertical + > .steps + &.has-label-right + .step-items + .step-item + &:not(:first-child), &:only-child + &::before, &::after + left: calc(#{$size} - #{$steps-divider-height / 2}) + + &.has-label-left + .step-items + .step-item + &:not(:first-child), &:only-child + &::before, &::after + left: auto + right: calc(#{$size} - #{$steps-divider-height / 2}) + + &.is-right + > .steps + &.has-label-right + .step-items + .step-item + &:not(:first-child), &:only-child + &::before, &::after + left: calc(#{$size} - #{$steps-divider-height / 2}) + + &.has-label-left + .step-items + .step-item + &:not(:first-child), &:only-child + &::before, &::after + left: auto + right: calc(#{$size} - #{$steps-divider-height / 2}) + +.b-steps + .steps + .step-items + display: flex + flex-wrap: wrap + + .step-item + margin-top: 0 + position: relative + flex-grow: 1 + flex-basis: 1em + + .step-link + display: flex + align-items: center + justify-content: center + flex-direction: column + color: $body-color + + &:not(.is-clickable) + cursor: not-allowed + + .step-marker + align-items: center + display: flex + border-radius: $radius + font-weight: $weight-bold + justify-content: center + background: $steps-maker-default-color + color: $scheme-main + border: $steps-marker-default-border + z-index: 1 + overflow: hidden + + // Override marker color per step + @each $name, $pair in $steps-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + + &.is-#{$name} + &::before, &::after + background: linear-gradient(to left, $steps-default-color 50%, $color 50%) + background-size: 200% 100% + background-position: right bottom + + &.is-active + .step-marker + background-color: $scheme-main + border-color: $color + color: $color + + &::before, &::after + background-position: left bottom + + &.is-previous + .step-marker + color: $color-invert + background-color: $color + + &::before, &::after + background-position: left bottom + + .step-marker + color: $scheme-main + + .step-details + text-align: center + z-index: 1 + + + &:not(:first-child), &:only-child + flex-shrink: 1 + + &::before + // This will contain the divider + content: " " + display: block + position: absolute + width: 100% + bottom: 0 + left: -50% + + &:only-child + &::after + // This will contain the divider + content: " " + display: block + position: absolute + height: $steps-divider-height + bottom: 0 + + &::before, &::after + width: 25% + left: 50% + + &::before + right: 50% + left: auto + + &::before, &::after + background: linear-gradient(to left, $steps-default-color 50%, $steps-active-color 50%) + background-size: 200% 100% + background-position: right bottom + + &.is-active + .step-link + cursor: default + + .step-marker + background-color: $scheme-main + border-color: $steps-active-color + color: $steps-active-color + + &::before, &::after + background-position: left bottom + &.is-previous + .step-marker + color: $scheme-main + background-color: $steps-previous-color + + &::before, &::after + background-position: left bottom + + + .step-content + position: relative + overflow: visible + display: flex + flex-direction: column + padding: 1rem + .step-item + flex-shrink: 0 + flex-basis: auto + &.is-transitioning + overflow: hidden + + &.is-rounded + .step-item + .step-marker + border-radius: $radius-rounded + + &.is-animated + .step-item + &:not(:first-child), &:only-child + &::before + transition: background $speed-slow $easing + + &.has-label-right, &.has-label-left + .step-items + .step-item + .step-link + flex-direction: row + + > .step-details + background-color: $steps-details-background-color + padding: .2em + + &.has-label-left + .step-items + .step-item + .step-link + flex-direction: row-reverse + + @include steps-size($size-normal) + &.is-small + @include steps-size($size-small) + + &.is-medium + @include steps-size($size-medium) + + &.is-large + @include steps-size($size-large) + + &.is-vertical + display: flex + flex-direction: row + flex-wrap: wrap + + > .steps + .step-items + height: 100% + flex-direction: column + border-bottom-color: transparent + + .step-item + width: 100% + display: flex + align-items: center + justify-content: center + padding: $steps-vertical-padding + + &::before, &::after + background: linear-gradient(to top, $steps-default-color 50%, $steps-active-color 50%) + background-size: 100% 200% + background-position: left bottom + + + // Override marker connector color per step + @each $name, $pair in $steps-colors + $color: nth($pair, 1) + + &.is-#{$name} + &::before, &::after + background: linear-gradient(to top, $steps-default-color 50%, $color 50%) + background-size: 100% 200% + background-position: left bottom + + &:not(:first-child), &:only-child + &::before + height: 100% + width: $steps-divider-height + top: -50% + left: calc(50% - #{$steps-divider-height / 2}) + + &.is-active, &.is-previous + &::before, &::after + background-position: right top + + &:only-child + &::before + top: 50% + + &::after + width: $steps-divider-height + top: auto + bottom: 50% + &::before, &::after + height: 25% + + &.has-label-right + .step-items + .step-item + justify-content: flex-start + + &.has-label-left + .step-items + .step-item + justify-content: flex-end + + &:not(.has-label-right):not(.has-label-left) + .step-items + .step-item + .step-link + > .step-details + background-color: $steps-details-background-color + + > .step-content + flex-grow: 1 + + > .step-navigation + flex-basis: 100% + + &.is-right + flex-direction: row-reverse + + &:not(.is-vertical) + .steps + @include until($steps-mobile-max-width) + &.mobile-minimalist + .step-items + .step-item + &:not(.is-active) + display: none + + &::before, &::after, &:not(:first-child)::before + // This will contain the divider + content: " " + display: block + position: absolute + height: $steps-divider-height + width: 25% + bottom: 0 + left: 50% + + &::before, &:not(:first-child)::before + right: 50% + left: auto + + &.mobile-compact + .step-items + .step-item + &:not(.is-active) + .step-details + display: none + diff --git a/node_modules/buetify/src/components/table/BSimpleTable.ts b/node_modules/buetify/src/components/table/BSimpleTable.ts new file mode 100755 index 0000000..a824d25 --- /dev/null +++ b/node_modules/buetify/src/components/table/BSimpleTable.ts @@ -0,0 +1,91 @@ +import { DefaultThemePropsDefinition, useTheme } from '../../composables/theme'; +import { SizeVariant } from '../../types'; +import BScroll from '../scroll/BScroll'; +import { defineComponent, h, PropType } from 'vue'; +import BStyledTable from './BStyledTable'; + +export const BSimpleTablePropsDefinition = { + ...DefaultThemePropsDefinition, + isBordered: { + type: Boolean as PropType<boolean>, + default: false + }, + isSelectable: { + type: Boolean as PropType<boolean>, + default: false + }, + isStriped: { + type: Boolean as PropType<boolean>, + default: false + }, + isNarrow: { + type: Boolean as PropType<boolean>, + default: false + }, + isFullwidth: { + type: Boolean as PropType<boolean>, + default: true + }, + size: { + type: String as PropType<SizeVariant> + }, + isHoverable: { + type: Boolean as PropType<boolean>, + default: false + }, + isLoading: { + type: Boolean as PropType<boolean>, + default: false + }, + isScrollable: { + type: Boolean as PropType<boolean>, + default: true + }, + useMobileCards: { + type: Boolean as PropType<boolean>, + default: false + } +}; + +export default defineComponent({ + name: 'b-simple-table', + inheritAttrs: false, + props: BSimpleTablePropsDefinition, + setup(props, { slots }) { + const { themeClasses } = useTheme(props); + + function table() { + return [ + h('div', { class: 'table-wrapper' }, [ + h( + BStyledTable, + { + class: [ + props.size, + { + 'is-bordered': props.isBordered, + 'is-striped': props.isStriped, + 'is-narrow': props.isNarrow, + 'is-fullwidth': props.isFullwidth, + 'is-hoverable': props.isHoverable || props.isSelectable, + 'has-mobile-cards': props.useMobileCards + }, + ...themeClasses.value + ] + }, + slots.default + ) + ]) + ]; + } + return () => { + return h( + 'div', + { + class: ['b-table', { 'is-loading': props.isLoading }] + }, + props.isScrollable ? h(BScroll, { class: 'is-fullwidth' }, table) : table() + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/table/BStyledTable.ts b/node_modules/buetify/src/components/table/BStyledTable.ts new file mode 100755 index 0000000..9de850e --- /dev/null +++ b/node_modules/buetify/src/components/table/BStyledTable.ts @@ -0,0 +1,6 @@ +import '../../sass/helpers/animations.sass'; +import '../../sass/helpers/cursor-helpers.sass'; +import './table.sass'; +import { getThemeableFunctionalComponent } from '../../utils/getThemeableFunctionalComponent'; + +export default getThemeableFunctionalComponent({ cls: 'table', el: 'table' }); diff --git a/node_modules/buetify/src/components/table/BTable.ts b/node_modules/buetify/src/components/table/BTable.ts new file mode 100755 index 0000000..a352f53 --- /dev/null +++ b/node_modules/buetify/src/components/table/BTable.ts @@ -0,0 +1,210 @@ +import { isEmpty } from 'fp-ts/lib/Array'; +import { FunctionN } from 'fp-ts/lib/function'; +import { defineComponent, h, PropType, VNode, Ref, ExtractPropTypes, computed, Slots, toRef } from 'vue'; +import { ExtractedPaginationState } from '../../composables/pagination'; +import { useProxy } from '../../composables/proxy'; +import { useWindowSize } from '../../composables/windowSize'; +import { isBoolean } from '../../utils/helpers'; +import { Classes } from '../../utils/mergeClasses'; +import BPagination, { PaginationPosition, PaginationSize, PaginationVerticalPosition } from '../pagination/BPagination'; +import BSimpleTable, { BSimpleTablePropsDefinition } from './BSimpleTable'; +import BTableHeader from './BTableHeader'; +import BTableMobileSort from './BTableMobileSort'; +import BTableRowElement from './BTableRow'; +import { provideVisibleColumns } from './composables/shared'; +import { BTableCheckPropsDefinition, useCheckableTable } from './composables/useCheckableTable'; +import { BTableDraggablePropsDefinition, useDraggableTable } from './composables/useDraggableTable'; +import { BTableSelectablePropsDefinition, useSelectableTable } from './composables/useSelectableTable'; +import { BTableSortingPropsDefinition, useSortableTable } from './composables/useSortableTable'; +import { BTableColumn, BTableRow } from './shared'; + +export interface BTablePaginationInput { + page?: number; + 'onUpdate:page'?: FunctionN<[number], void>; + perPage?: number; + size?: PaginationSize; + isSimple?: boolean; + isRounded?: boolean; + horizontalPosition?: PaginationPosition; + verticalPosition?: PaginationVerticalPosition; +} + +export const BTablePropsDefinition = { + columns: { + type: Array as PropType<BTableColumn<unknown>[]>, + required: true as const + }, + isFocusable: { + type: Boolean as PropType<boolean>, + default: false + }, + mobileSortPlaceholder: { + type: String as PropType<string> + }, + headerClasses: { + type: [String, Object, Array] as PropType<Classes>, + default: undefined + }, + onRowClick: { + type: Function as PropType<FunctionN<[BTableRow, MouseEvent], void>>, + required: false + }, + pagination: { + type: [Boolean, Object] as PropType<boolean | BTablePaginationInput>, + required: false + }, + ...BSimpleTablePropsDefinition, + ...BTableCheckPropsDefinition, + ...BTableDraggablePropsDefinition, + ...BTableSelectablePropsDefinition, + ...BTableSortingPropsDefinition, + useMobileCards: { + type: Boolean as PropType<boolean>, + default: true + } +}; + +export interface BTableProps extends ExtractPropTypes<typeof BTablePropsDefinition> {} + +function generateTableHeader(classes: Classes, slots: Slots): VNode { + return h( + BTableHeader, + { + class: classes + }, + { ...slots } + ); +} + +function generateEmptyTable(visibleColumns: Ref<BTableColumn[]>, slots: Slots): VNode { + return h('tbody', [ + h('tr', { class: 'is-empty' }, [h('td', { colspan: visibleColumns.value.length }, slots.empty && slots.empty())]) + ]); +} + +function generateTableBody( + props: BTableProps, + rows: BTableRow[], + visibleColumns: Ref<BTableColumn[]>, + slots: Slots +): VNode { + if (isEmpty(props.rows)) { + return generateEmptyTable(visibleColumns, slots); + } + const onRowClick = props.onRowClick; + return h( + 'tbody', + rows.map((row, index) => + slots.row + ? slots.row({ + row, + index, + onRowClick, + columns: visibleColumns.value + }) + : h( + BTableRowElement, + { + key: row.id as string | number, + row, + index, + onRowClick + }, + { ...slots } + ) + ) + ); +} + +function generateTableFooter(visibleColumns: Ref<BTableColumn[]>, slots: Slots): VNode { + return h('tfoot', [ + h( + 'tr', + { class: 'table-footer' }, + slots.footer && slots.footer({ numberOfColumns: visibleColumns.value.length, columns: visibleColumns.value }) + ) + ]); +} + +function generateTable( + props: BTableProps, + rows: BTableRow[], + visibleColumns: Ref<BTableColumn[]>, + slots: Slots +): VNode { + return h(BSimpleTable, props, () => { + const nodes = [ + generateTableHeader(props.headerClasses, slots), + generateTableBody(props, rows, visibleColumns, slots) + ]; + if (slots.footer) { + nodes.push(generateTableFooter(visibleColumns, slots)); + } + return nodes; + }); +} + +export default defineComponent({ + name: 'b-table', + props: BTablePropsDefinition, + setup(props, { slots }) { + const { value: rows } = useProxy(toRef(props, 'rows')); + + const visibleColumns = computed(() => props.columns.filter(column => column.isVisible ?? true)); + + provideVisibleColumns(visibleColumns); + const { hasSortableColumns } = useSortableTable(props, rows, visibleColumns); + useCheckableTable(props, rows); + useSelectableTable(props); + useDraggableTable(props); + + const windowSize = useWindowSize(); + const useMobileSorting = computed( + () => props.useMobileCards && hasSortableColumns.value && windowSize.value.isTouch + ); + + return () => { + const nodes = []; + if (useMobileSorting.value) { + nodes.push( + h(BTableMobileSort, { + placeholder: props.mobileSortPlaceholder + }) + ); + } + if (props.pagination) { + nodes.push( + h( + BPagination, + isBoolean(props.pagination) + ? { + total: props.rows.length, + items: rows.value + } + : ({ + isSimple: props.pagination.isSimple, + isRounded: props.pagination.isRounded, + modelValue: props.pagination.page, + 'onUpdate:modelValue': props.pagination['onUpdate:page'], + total: props.rows.length, + items: rows.value, + perPage: props.pagination.perPage, + size: props.pagination.size, + position: props.pagination.horizontalPosition, + verticalPosition: props.pagination.verticalPosition + } as any), // eslint-disable-line + { + default: (paginatedState: ExtractedPaginationState) => { + return generateTable(props, paginatedState.paginatedItems as BTableRow[], visibleColumns, slots); + } + } + ) + ); + return h('div', nodes); + } else { + nodes.push(generateTable(props, rows.value, visibleColumns, slots)); + return h('div', nodes); + } + }; + } +}); diff --git a/node_modules/buetify/src/components/table/BTableColumn.ts b/node_modules/buetify/src/components/table/BTableColumn.ts new file mode 100755 index 0000000..e8f92c0 --- /dev/null +++ b/node_modules/buetify/src/components/table/BTableColumn.ts @@ -0,0 +1,98 @@ +import { h, defineComponent, PropType, computed } from 'vue'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; +import BTooltip from '../tooltip/BTooltip'; +import { isBoolean, isString } from '../../utils/helpers'; +import { useInjectedSortableTable } from './composables/useSortableTable'; +import { BTableColumn, SortType } from './shared'; + +function formatWidth(width: string | number, suffix: 'rem' | 'em' | 'px' = 'px'): string { + return isString(width) ? width : `${width}${suffix}`; +} + +function useSortType(sortType: SortType, column?: BTableColumn): SortType { + return column === undefined || isBoolean(column.sort) || column.sort === undefined + ? sortType + : column.sort.sortType ?? sortType; +} + +export default defineComponent({ + name: 'b-table-column', + props: { + column: { + type: Object as PropType<BTableColumn>, + required: true + } + }, + setup(props, { slots }) { + const { sortByMap, isMultiple, sortType, updateSortColumn, updateSortDirection } = useInjectedSortableTable(); + const isSortable = computed(() => !!props.column.sort); + const isSortColumn = computed(() => sortByMap.value.has(props.column.label)); + const sortColumn = computed(() => sortByMap.value.get(props.column.label)); + + function updateColumn(e?: MouseEvent) { + e && e.stopPropagation(); + updateSortColumn(props.column.label); + } + + function onClick() { + if (isSortColumn.value) { + updateSortDirection(props.column.label); + } else { + updateColumn(); + } + } + return () => { + const slot = slots[`header.${props.column.label}`] || slots.header; + const children = []; + if (slot) { + children.push(slot(props.column)); + } else { + children.push( + isString(props.column.detail) + ? h(BTooltip, { label: props.column.detail, position: 'is-left' }, () => props.column.label) + : props.column.label + ); + } + if (isSortColumn.value) { + const type = useSortType(sortType.value, sortColumn.value); + const icon = slots['sort-icon'] + ? slots['sort-icon']({ sortType: type }) + : h(VerticalExpansionIcon, { + isExpanded: useSortType(sortType.value, sortColumn.value) === 'Ascending' + }); + if (isMultiple.value && sortColumn.value) { + children.push( + icon, + sortColumn.value.sortIndex + 1, + h('button', { + class: 'delete is-small b-column-delete', + onClick: updateColumn + }) + ); + } else { + children.push(icon); + } + } + return h( + 'th', + { + class: { + 'is-sortable': isSortable.value, + 'is-sticky-left': !!props.column.isSticky + }, + onClick: isSortable.value ? onClick : undefined, + style: props.column.width !== undefined ? { 'min-width': formatWidth(props.column.width) } : undefined + }, + [ + h( + 'div', + { + class: ['th-wrap', props.column.position] + }, + children + ) + ] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/table/BTableHeader.ts b/node_modules/buetify/src/components/table/BTableHeader.ts new file mode 100755 index 0000000..49e5226 --- /dev/null +++ b/node_modules/buetify/src/components/table/BTableHeader.ts @@ -0,0 +1,47 @@ +import { BCheckbox } from '../form/checkbox/BCheckbox'; +import BTableColumn from './BTableColumn'; +import { useInjectedVisibleColumns } from './composables/shared'; +import { useInjectedCheckableTable } from './composables/useCheckableTable'; +import { SetupContext, h } from 'vue'; + +export interface BTableHeaderProps { + isDisabled?: boolean; +} + +export default function BTableHeader(props: BTableHeaderProps, { slots }: SetupContext) { + const { allRowsChecked, toggleAllRows, variant, isCheckable } = useInjectedCheckableTable(); + const columns = useInjectedVisibleColumns(); + const nodes = columns.value.map(column => + h( + BTableColumn, + { + key: column.label, + column + }, + slots + ) + ); + if (isCheckable.value) { + nodes.unshift( + slots['header.checkbox'] + ? h( + 'th', + slots['header.checkbox']({ + modelValue: allRowsChecked.value, + variant: variant.value, + isDisabled: props.isDisabled, + 'onUpdate:modelValue': toggleAllRows + }) + ) + : h('th', { class: 'checkbox-cell' }, [ + h(BCheckbox, { + modelValue: allRowsChecked.value, + variant: variant.value, + isDisabled: props.isDisabled, + 'onUpdate:modelValue': toggleAllRows + }) + ]) + ); + } + return h('thead', [h('tr', nodes)]); +} diff --git a/node_modules/buetify/src/components/table/BTableMobileSort.ts b/node_modules/buetify/src/components/table/BTableMobileSort.ts new file mode 100755 index 0000000..a6c34c9 --- /dev/null +++ b/node_modules/buetify/src/components/table/BTableMobileSort.ts @@ -0,0 +1,85 @@ +import { IO } from 'fp-ts/IO'; +import { FunctionN } from 'fp-ts/lib/function'; +import { defineSelect } from '../form/select/BSelect'; +import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon'; +import { useInjectedSortableTable } from './composables/useSortableTable'; +import { BTableColumn, eqBTableColumn, SortType } from './shared'; +import { head } from 'fp-ts/lib/Array'; +import { toUndefined } from 'fp-ts/lib/Option'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { VNode, defineComponent, h } from 'vue'; + +const SelectBTableColumn = defineSelect<BTableColumn>(eqBTableColumn); + +function generateSortDirectionButton(sortType: SortType, toggleSortType: IO<void>): VNode { + return h('div', { class: 'control' }, [ + h( + 'button', + { + class: 'button is-primary', + onClick: toggleSortType + }, + [ + h(VerticalExpansionIcon, { + isExpanded: sortType === 'Descending', + size: 'is-small' + }) + ] + ) + ]); +} + +function generateBSelect( + placeholder: string | undefined, + sortableColumns: BTableColumn[], + sortBy: BTableColumn[], + setSortColumn: FunctionN<[BTableColumn], void> +): VNode { + return h(SelectBTableColumn, { + placeholder, + items: sortableColumns, + itemKey: 'label', + itemText: 'label', + modelValue: pipe(head(sortBy), toUndefined), + isExpanded: true, + 'onUpdate:modelValue': setSortColumn + }); +} + +export default defineComponent({ + name: 'b-table-mobile-sort', + props: { + placeholder: { + type: String + } + }, + setup(props) { + const sorting = useInjectedSortableTable(); + + function toggleSortDirection() { + sorting.updateSortDirection(); + } + + function updateSortColumn(column?: BTableColumn) { + if (column) { + sorting.updateSortColumn(column.label); + } + } + + return () => { + return h( + 'section', + { + class: 'field table-mobile-sort', + 'aria-label': 'Table Sort Controls' + }, + [ + h('div', { class: 'field has-addons' }, [ + generateBSelect(props.placeholder, sorting.sortableColumns.value, sorting.sortBy.value, updateSortColumn), + generateSortDirectionButton(sorting.sortType.value, toggleSortDirection) + ]) + ] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/table/BTableRow.ts b/node_modules/buetify/src/components/table/BTableRow.ts new file mode 100755 index 0000000..272a34d --- /dev/null +++ b/node_modules/buetify/src/components/table/BTableRow.ts @@ -0,0 +1,134 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { exists } from 'fp-ts/Option'; +import { pipe } from 'fp-ts/pipeable'; +import { BCheckbox } from '../form/checkbox/BCheckbox'; +import { isString } from '../../utils/helpers'; +import { useInjectedVisibleColumns } from './composables/shared'; +import { useInjectedCheckableTable } from './composables/useCheckableTable'; +import { useInjectedDraggableTable } from './composables/useDraggableTable'; +import { useInjectedSelectableTable } from './composables/useSelectableTable'; +import { BTableColumn, BTableRow, eqBTableRowData } from './shared'; +import { h, VNode, defineComponent, computed, PropType } from 'vue'; + +export default defineComponent({ + name: 'b-table-row', + props: { + index: { + type: Number as PropType<number>, + required: true as const + }, + row: { + type: Object as PropType<BTableRow>, + required: true as const + }, + onRowClick: { + type: Function as PropType<FunctionN<[BTableRow, MouseEvent], void>> + } + }, + setup(props, { slots }) { + const { checkedRowIds, variant, toggleRow, isCheckable } = useInjectedCheckableTable(); + const { selectedRowIds, toggleRowSelection, isSelectable } = useInjectedSelectableTable(); + const draggable = useInjectedDraggableTable(); + const visibleColumns = useInjectedVisibleColumns(); + const isChecked = computed(() => checkedRowIds.value.has(props.row.id)); + const isSelected = computed(() => selectedRowIds.value.has(props.row.id)); + + const classes = computed(() => { + const isActive = draggable.isActive.value; + const isDroppable = props.row.isDroppable ?? !!props.row.isDraggable; + return [ + { + 'is-selected': isSelected.value, + 'is-checked': isChecked.value, + 'is-draggable': draggable.isDraggable.value && !!props.row.isDraggable, + 'is-droppable': isActive && isDroppable, + 'is-undroppable': isActive && !isDroppable, + 'is-drop-target': + isActive && + pipe( + draggable.target.value, + exists(t => eqBTableRowData.equals(t, props.row)) + ) + }, + props.row.classes + ]; + }); + + const dragListeners = computed(() => draggable.useRowDragListeners(props.row, props.index)); + + function toggleCheck() { + toggleRow(props.row); + } + + function onClick(e: MouseEvent) { + if (props.onRowClick) { + props.onRowClick(props.row, e); + } + if (props.row.isSelectable ?? isSelectable.value) { + e.stopPropagation(); + toggleRowSelection(props.row); + } + } + + return () => { + const columns: VNode[] = visibleColumns.value.map((column: BTableColumn) => { + const children: Array<VNode | VNode[] | string> = []; + const value = column.value + ? isString(column.value) + ? props.row[column.value] + : column.value(props.row) + : undefined; + + const columnSlot = slots[column.slotName || column.label]; + + if (columnSlot) { + children.push(columnSlot({ row: props.row, column, value })); + } else if (value !== null) { + children.push(String(value)); + } + + const textClass = + column.position === undefined + ? 'has-text-left' + : column.position === 'is-left' + ? 'has-text-left' + : column.position === 'is-centered' + ? 'has-text-centered' + : 'has-text-right'; + + return h( + 'td', + { + class: [textClass, { 'is-sticky-left': column.isSticky }], + 'data-label': column.label + }, + children + ); + }); + + if (isCheckable.value) { + columns.unshift( + h('td', { class: 'checkbox-cell' }, [ + h(BCheckbox, { + modelValue: isChecked.value, + variant: variant.value, + isDisabled: props.row.isCheckable === false, + 'onUpdate:modelValue': toggleCheck + }) + ]) + ); + } + + return h( + 'tr', + { + class: classes.value, + onClick, + draggable: draggable.isDraggable.value && !!props.row.isDraggable, + ...dragListeners.value + }, + columns + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/table/composables/shared.ts b/node_modules/buetify/src/components/table/composables/shared.ts new file mode 100755 index 0000000..39c56a7 --- /dev/null +++ b/node_modules/buetify/src/components/table/composables/shared.ts @@ -0,0 +1,22 @@ +import { ComputedRef, provide, inject, computed } from 'vue'; +import { constEmptyArray } from '../../../utils/helpers'; + +import { BTableColumn, BTableRow } from '../shared'; + +export function toSet(rows: BTableRow[]): Set<unknown> { + const set = new Set<unknown>(); + rows.forEach(row => set.add(row.id)); + return set; +} + +const COLUMNS_INJECTION_SYMBOL = Symbol(); + +export function provideVisibleColumns(visibleColumns: ComputedRef<BTableColumn[]>) { + provide(COLUMNS_INJECTION_SYMBOL, visibleColumns); +} + +const DEFAULT_VISIBLE_COLUMNS = computed<BTableColumn[]>(constEmptyArray); + +export function useInjectedVisibleColumns(): ComputedRef<BTableColumn[]> { + return inject(COLUMNS_INJECTION_SYMBOL, DEFAULT_VISIBLE_COLUMNS); +} diff --git a/node_modules/buetify/src/components/table/composables/useCheckableTable.ts b/node_modules/buetify/src/components/table/composables/useCheckableTable.ts new file mode 100755 index 0000000..5f98d87 --- /dev/null +++ b/node_modules/buetify/src/components/table/composables/useCheckableTable.ts @@ -0,0 +1,145 @@ +import { IO } from 'fp-ts/lib/IO'; +import { ExtractPropTypes, computed, Ref, ComputedRef, provide, inject, shallowRef, watch } from 'vue'; +import { constant, constFalse, constTrue, constVoid, FunctionN } from 'fp-ts/lib/function'; +import { PropType } from 'vue'; +import { ColorVariant } from '../../../types/ColorVariants'; +import { constEmptyArray } from '../../../utils/helpers'; +import { BTableRow, toggleBTableRow } from '../shared'; +import { toSet } from './shared'; + +export const BTableCheckPropsDefinition = { + isCheckable: { + type: Boolean as PropType<boolean>, + default: false + }, + checkedRows: { + type: Array as PropType<BTableRow[]>, + default: constEmptyArray() + }, + 'onUpdate:checkedRows': { + type: Function as PropType<FunctionN<[BTableRow[]], void>>, + default: constant(constVoid) + }, + checkboxVariant: { + type: String as PropType<ColorVariant>, + default: 'is-primary' as const + }, + canCheckAllRows: { + type: Boolean as PropType<boolean>, + default: true + }, + onCheckRow: { + type: Function as PropType<FunctionN<[BTableRow], void>>, + default: constant(constVoid) + }, + onUncheckRow: { + type: Function as PropType<FunctionN<[BTableRow], void>>, + default: constant(constVoid) + } +}; + +export interface BTableCheckProps extends ExtractPropTypes<typeof BTableCheckPropsDefinition> {} + +const USE_CHECKABLE_TABLE_INJECTION_SYMBOL = Symbol(); + +export function useCheckableTable(props: BTableCheckProps, rows: Ref<BTableRow[]>): UseCheckableTable { + const checkableRows = computed(() => (props.isCheckable ? rows.value.filter(row => row.isCheckable ?? true) : [])); + const propCheckedRows = computed(() => (props.isCheckable ? props.checkedRows : [])); + const newCheckedRows = shallowRef(propCheckedRows.value); + + watch(propCheckedRows, newValue => { + newCheckedRows.value = newValue; + }); + + const checkedRowIds = computed(() => toSet(newCheckedRows.value)); + + const allRowsChecked = computed(() => { + const ids = checkedRowIds.value; + return checkableRows.value.length > 0 && checkableRows.value.every(row => ids.has(row.id)); + }); + + const allRowsUncheckable = computed(() => rows.value.every(row => !row.isCheckable)); + + function checkAllRows() { + const cRows = checkableRows.value; + newCheckedRows.value = cRows; + props['onUpdate:checkedRows'](cRows); + } + + function toggleRow(row: BTableRow) { + if (row.isCheckable) { + const ids = checkedRowIds.value; + if (ids.has(row.id)) { + props.onUncheckRow(row); + } else { + props.onCheckRow(row); + } + const cRows = toggleBTableRow(row, newCheckedRows.value); + newCheckedRows.value = cRows; + props['onUpdate:checkedRows'](cRows); + } + } + + function uncheckAllRows() { + newCheckedRows.value = []; + props['onUpdate:checkedRows']([]); + } + + function toggleAllRows() { + allRowsChecked.value ? uncheckAllRows() : checkAllRows(); + } + + const hasCheckableRows = computed(() => checkableRows.value.length > 0); + + const state = { + isCheckable: computed(() => props.isCheckable), + variant: computed(() => props.checkboxVariant), + checkedRowIds, + toggleAllRows, + checkAllRows, + uncheckAllRows, + allRowsChecked, + toggleRow, + allRowsUncheckable, + hasCheckableRows, + allRowsUnchecked: computed(() => hasCheckableRows.value && checkedRowIds.value.size === 0) + }; + + provide(USE_CHECKABLE_TABLE_INJECTION_SYMBOL, state); + + return state; +} + +export interface UseCheckableTable { + isCheckable: ComputedRef<boolean>; + variant: ComputedRef<ColorVariant>; + checkedRowIds: ComputedRef<Set<unknown>>; + toggleAllRows: IO<void>; + checkAllRows: IO<void>; + uncheckAllRows: IO<void>; + allRowsChecked: ComputedRef<boolean>; + toggleRow: FunctionN<[BTableRow], void>; + allRowsUncheckable: ComputedRef<boolean>; + hasCheckableRows: ComputedRef<boolean>; + allRowsUnchecked: ComputedRef<boolean>; +} + +function useDefaultCheckableTableState(): UseCheckableTable { + return { + isCheckable: computed(constFalse), + variant: computed(() => 'is-primary'), + checkedRowIds: computed(() => new Set()), + toggleAllRows: constVoid, + checkAllRows: constVoid, + uncheckAllRows: constVoid, + toggleRow: constVoid, + allRowsChecked: computed(constFalse), + allRowsUncheckable: computed(constFalse), + hasCheckableRows: computed(constFalse), + allRowsUnchecked: computed(constTrue) + }; +} + +export function useInjectedCheckableTable(): UseCheckableTable { + return inject(USE_CHECKABLE_TABLE_INJECTION_SYMBOL, useDefaultCheckableTableState, true); +} diff --git a/node_modules/buetify/src/components/table/composables/useDraggableTable.ts b/node_modules/buetify/src/components/table/composables/useDraggableTable.ts new file mode 100755 index 0000000..274f713 --- /dev/null +++ b/node_modules/buetify/src/components/table/composables/useDraggableTable.ts @@ -0,0 +1,168 @@ +import { isNone, isSome, none, Option, some } from 'fp-ts/lib/Option'; +import { ExtractPropTypes, shallowRef, toRef, computed } from 'vue'; +import { constant, constVoid, FunctionN } from 'fp-ts/lib/function'; +import { PropType, Ref, provide, inject } from 'vue'; +import { BTableRow, eqBTableRowData } from '../shared'; + +type DropEffect = 'none' | 'copy' | 'link' | 'move'; + +type DragHandler = FunctionN<[DragEvent], void>; + +type OnDragEffect = FunctionN<[BTableRow, DragEvent, number], void>; + +export const BTableDraggablePropsDefinition = { + isDraggable: { + type: Boolean, + default: false + }, + dropEffect: { + type: String as PropType<DropEffect>, + default: 'move' as const + }, + onDragstart: { + type: Function as PropType<OnDragEffect>, + default: constant(constVoid) + }, + onDragenter: { + type: Function as PropType<OnDragEffect>, + default: constant(constVoid) + }, + onDragover: { + type: Function as PropType<OnDragEffect>, + default: constant(constVoid) + }, + onDragleave: { + type: Function as PropType<OnDragEffect>, + default: constant(constVoid) + }, + onDragend: { + type: Function as PropType<OnDragEffect>, + default: constant(constVoid) + }, + onDrop: { + type: Function as PropType<OnDragEffect>, + default: constant(constVoid) + } +}; + +export interface BTableDraggableProps extends ExtractPropTypes<typeof BTableDraggablePropsDefinition> {} + +export interface UseDraggableTable { + isDraggable: Ref<boolean>; + isActive: Ref<boolean>; + target: Ref<Option<BTableRow>>; + useRowDragListeners: FunctionN<[BTableRow, number], Record<string, DragHandler>>; +} + +const USE_DRAGGABLE_TABLE_INJECTION_SYMBOL = Symbol(); + +export function useDraggableTable(props: BTableDraggableProps): UseDraggableTable { + const dropTarget = shallowRef(none as Option<BTableRow>); + + const dragIsActive = computed(() => props.isDraggable && isSome(dropTarget.value)); + + function getOnDragStartListener(row: BTableRow, index: number): DragHandler { + return (e: DragEvent) => { + if (e.dataTransfer) { + e.dataTransfer.setData('text/plain', String(index)); + e.dataTransfer.dropEffect = props.dropEffect; + } + dropTarget.value = some(row); + props.onDragstart(row, e, index); + }; + } + + function getOnDropListener(row: BTableRow, index: number): DragHandler { + return (e: DragEvent) => { + if (row.isDroppable) { + e.preventDefault(); + props.onDrop(row, e, index); + } + dropTarget.value = none; + }; + } + + function getOnDragEnterListener(row: BTableRow, index: number): DragHandler { + return (e: DragEvent) => { + if (row.isDroppable) { + e.preventDefault(); + dropTarget.value = some(row); + props.onDragenter(row, e, index); + } + }; + } + + function getOnDragOverListener(row: BTableRow, index: number): DragHandler { + return (e: DragEvent) => { + if (row.isDroppable) { + e.preventDefault(); + const target = dropTarget.value; + if (isNone(target) || (isSome(target) && !eqBTableRowData.equals(target.value, row))) { + dropTarget.value = some(row); + } + props.onDragover(row, e, index); + } + }; + } + + function getOnDragLeaveListener(row: BTableRow, index: number): DragHandler { + return (e: DragEvent) => { + if (row.isDroppable) { + e.preventDefault(); + const target = dropTarget.value; + if (isSome(target) && eqBTableRowData.equals(target.value, row)) { + dropTarget.value = none; + } + props.onDragleave(row, e, index); + } + }; + } + + function getOnDragEndListener(row: BTableRow, index: number): DragHandler { + return e => { + props.onDragend(row, e, index); + if (isSome(dropTarget.value)) { + dropTarget.value = none; + } + }; + } + + function useRowDragListeners(row: BTableRow, index: number): { [key: string]: DragHandler } { + if (props.isDraggable && !!row.isDraggable) { + return { + onDragstart: getOnDragStartListener(row, index), + onDrop: getOnDropListener(row, index), + onDragenter: getOnDragEnterListener(row, index), + onDragleave: getOnDragLeaveListener(row, index), + onDragover: getOnDragOverListener(row, index), + onDragend: getOnDragEndListener(row, index) + }; + } else { + return {}; + } + } + + const draggableTable: UseDraggableTable = { + isDraggable: toRef(props, 'isDraggable'), + useRowDragListeners, + isActive: dragIsActive, + target: dropTarget + }; + + provide(USE_DRAGGABLE_TABLE_INJECTION_SYMBOL, draggableTable); + + return draggableTable; +} + +function useDefaultDraggableTable(): UseDraggableTable { + return { + isDraggable: shallowRef(false), + useRowDragListeners: constant({}), + isActive: shallowRef(false), + target: shallowRef(none) + }; +} + +export function useInjectedDraggableTable(): UseDraggableTable { + return inject(USE_DRAGGABLE_TABLE_INJECTION_SYMBOL, useDefaultDraggableTable, true); +} diff --git a/node_modules/buetify/src/components/table/composables/useSelectableTable.ts b/node_modules/buetify/src/components/table/composables/useSelectableTable.ts new file mode 100755 index 0000000..e954dd9 --- /dev/null +++ b/node_modules/buetify/src/components/table/composables/useSelectableTable.ts @@ -0,0 +1,78 @@ +import { constant, constVoid, FunctionN } from 'fp-ts/lib/function'; +import { computed, ExtractPropTypes, PropType, toRef, provide, inject, ComputedRef, Ref, shallowRef } from 'vue'; +import { useProxy } from '../../../composables/proxy/useProxy'; +import { constEmptyArray } from '../../../utils/helpers'; +import { BTableRow, toggleBTableRow } from '../shared'; +import { toSet } from './shared'; + +export const BTableSelectablePropsDefinition = { + isSelectable: { + type: Boolean as PropType<boolean>, + default: false + }, + selectedRows: { + type: Array as PropType<BTableRow[]>, + default: constEmptyArray + }, + 'onUpdate:selectedRows': { + type: Function as PropType<FunctionN<[BTableRow[]], void>>, + default: constant(constVoid) + }, + onSelectRow: { + type: Function as PropType<FunctionN<[BTableRow], void>>, + default: constant(constVoid) + }, + onUnselectRow: { + type: Function as PropType<FunctionN<[BTableRow], void>>, + default: constant(constVoid) + } +}; + +export interface BTableSelectableProps extends ExtractPropTypes<typeof BTableSelectablePropsDefinition> {} + +const USE_SELECTABLE_TABLE_INJECTION_SYMBOL = Symbol(); + +export function useSelectableTable(props: BTableSelectableProps) { + const { value: selectedRows } = useProxy<BTableRow[]>( + computed(() => (props.isSelectable ? props.selectedRows : [])), + toRef(props, 'onUpdate:selectedRows') + ); + + const selectedRowIds = computed(() => toSet(selectedRows.value)); + + function toggleRowSelection(row: BTableRow) { + if (row.isSelectable ?? props.isSelectable) { + const ids = selectedRowIds.value; + ids.has(row.id) ? props.onUnselectRow(row) : props.onSelectRow(row); + selectedRows.value = toggleBTableRow(row, selectedRows.value); + } + } + + const state: UseSelectableTableState = { + isSelectable: toRef(props, 'isSelectable'), + selectedRowIds, + toggleRowSelection + }; + + provide(USE_SELECTABLE_TABLE_INJECTION_SYMBOL, state); + + return state; +} + +export interface UseSelectableTableState { + isSelectable: Ref<boolean>; + selectedRowIds: ComputedRef<Set<unknown>>; + toggleRowSelection: FunctionN<[BTableRow], void>; +} + +function useDefaultSelectableTableState(): UseSelectableTableState { + return { + isSelectable: shallowRef(false), + selectedRowIds: computed(() => new Set()), + toggleRowSelection: constVoid + }; +} + +export function useInjectedSelectableTable(): UseSelectableTableState { + return inject(USE_SELECTABLE_TABLE_INJECTION_SYMBOL, useDefaultSelectableTableState, true); +} diff --git a/node_modules/buetify/src/components/table/composables/useSortableTable.ts b/node_modules/buetify/src/components/table/composables/useSortableTable.ts new file mode 100755 index 0000000..1f2c444 --- /dev/null +++ b/node_modules/buetify/src/components/table/composables/useSortableTable.ts @@ -0,0 +1,224 @@ +import { findFirst, isEmpty, isNonEmpty, reverse, snoc, sortBy as sortBy_ } from 'fp-ts/lib/Array'; +import { fromCompare, Ord } from 'fp-ts/lib/Ord'; +import { Ordering } from 'fp-ts/lib/Ordering'; +import { alt, isNone, isSome, none } from 'fp-ts/Option'; +import { ExtractPropTypes, toRef, computed, Ref, watch, ComputedRef, shallowRef, provide, inject } from 'vue'; +import { constFalse, constVoid, FunctionN, pipe } from 'fp-ts/lib/function'; +import { PropType } from 'vue'; +import { useProxy } from '../../../composables/proxy/useProxy'; +import { constEmptyArray, isBoolean } from '../../../utils/helpers'; +import { BTableColumn, BTableRow, SortType, toggleBTableColumn } from '../shared'; + +export const BTableSortingPropsDefinition = { + rows: { + type: Array as PropType<BTableRow[]>, + required: true as const + }, + sortBy: { + type: [Object, Array] as PropType<BTableColumn | BTableColumn[]> + }, + 'onUpdate:sortBy': { + type: Function as PropType<FunctionN<[BTableColumn | BTableColumn[]], void>> + }, + sortType: { + type: String as PropType<SortType>, + default: 'Descending' as const + }, + 'onUpdate:sortType': { + type: Function as PropType<FunctionN<[SortType], void>> + } +}; + +export interface BTableSortingProps extends ExtractPropTypes<typeof BTableSortingPropsDefinition> {} + +export interface UseSortableTable { + sortBy: Ref<BTableColumn[]>; + sortType: Ref<SortType>; + isMultiple: ComputedRef<boolean>; + sortByMap: ComputedRef<Map<string, BTableColumn & { sortIndex: number }>>; + updateSortColumn: FunctionN<[string], void>; + updateSortDirection: (columnLabel?: string) => void; + sortableColumns: ComputedRef<BTableColumn[]>; + hasSortableColumns: ComputedRef<boolean>; +} + +function useSortType(sortType: SortType, columnSortType: SortType | undefined, invert: boolean): SortType { + if (invert) { + return (columnSortType ?? sortType) === 'Ascending' ? 'Descending' : 'Ascending'; + } else { + return columnSortType ?? sortType; + } +} + +function useSortColumn(sortType: SortType, column: BTableColumn, invert: boolean): BTableColumn { + return { + ...column, + sort: isBoolean(column.sort) + ? column.sort + : column.sort === undefined + ? undefined + : { ...column.sort, sortType: useSortType(sortType, column.sort?.sortType, invert) } + }; +} + +const USE_SORTABLE_TABLE_INJECTION_SYMBOL = Symbol(); + +function toMap(columns: BTableColumn[]): Map<string, BTableColumn & { sortIndex: number }> { + return new Map(columns.map((c, sortIndex) => [c.label, { ...c, sortIndex }])); +} + +export function useSortableTable(props: BTableSortingProps, rows: Ref<BTableRow[]>, columns: Ref<BTableColumn[]>) { + const initialSortType = props.sortType; + + const { value: sortType } = useProxy(toRef(props, 'sortType'), toRef(props, 'onUpdate:sortType')); + /* + fp-ts sorts in ascending order so we need to reverse the ords if the initial sort type is 'Descending' + Future sortType changes just reverse the array so we don't need to readjust the ords + */ + + const isMultiple = computed(() => Array.isArray(props.sortBy)); + + const internalSortBy = shallowRef(Array.isArray(props.sortBy) ? props.sortBy : props.sortBy ? [props.sortBy] : []); + + watch( + () => props.sortBy, + newVal => { + internalSortBy.value = Array.isArray(newVal) ? newVal : newVal ? [newVal] : []; + } + ); + + const sortBy = computed({ + get() { + return internalSortBy.value; + }, + set(columns: BTableColumn[]) { + internalSortBy.value = columns; + if (!props['onUpdate:sortBy']) { + return; + } + if (Array.isArray(props.sortBy)) { + props['onUpdate:sortBy'](columns); + } else if (isNonEmpty(columns)) { + props['onUpdate:sortBy'](columns[0]); + } + } + }); + + const sortByMap = computed(() => toMap(sortBy.value)); + + const ords = computed(() => { + const ords: Ord<BTableRow>[] = []; + sortBy.value.forEach(c => { + const sort = c.sort; + if (sort && !isBoolean(sort)) { + ords.push( + sort.sortType === 'Ascending' || (sort.sortType === undefined && initialSortType === 'Ascending') + ? sort.ord + : fromCompare((x, y) => { + return (sort.ord.compare(x, y) * -1) as Ordering; + }) + ); + } + }); + return ords; + }); + + function sort() { + if (!isEmpty(ords.value) && !isEmpty(rows.value)) { + rows.value = sortBy_(ords.value)(rows.value); + } + } + + watch(sortType, () => { + if (Array.isArray(sortBy.value) && sortBy.value.length > 1) { + sort(); + } else { + rows.value = reverse(rows.value); + } + }); + + watch(() => [props.rows, sortBy.value], sort, { + immediate: true + }); + + const sortableColumns = computed(() => columns.value.filter(column => !!column.sort)); + + function updateSortColumn(label: string) { + const column = pipe( + sortBy.value, + findFirst(c => c.label === label), + alt(() => + pipe( + sortableColumns.value, + findFirst(c => c.label === label) + ) + ) + ); + if (isNone(column)) return; + if (isMultiple.value) { + sortBy.value = toggleBTableColumn(useSortColumn(sortType.value, column.value, false), sortBy.value); + } else { + sortBy.value = [column.value]; + } + } + + function updateSortDirection(columnLabel?: string) { + const column = columnLabel + ? pipe( + sortBy.value, + findFirst(c => c.label === columnLabel), + alt(() => + pipe( + sortableColumns.value, + findFirst(c => c.label === columnLabel) + ) + ) + ) + : none; + if (isMultiple.value && columnLabel && isSome(column)) { + const index = sortBy.value.findIndex(c => c.label === columnLabel); + const newColumn = useSortColumn(sortType.value, column.value, true); + if (index > -1) { + const newVal = sortBy.value.slice(); + newVal.splice(index, 1, newColumn); + sortBy.value = newVal; + } else { + sortBy.value = snoc(sortBy.value, newColumn); + } + } else { + sortType.value = sortType.value === 'Ascending' ? 'Descending' : 'Ascending'; + } + } + + const sortableTable: UseSortableTable = { + sortBy, + sortType, + isMultiple, + sortByMap, + updateSortDirection, + updateSortColumn, + sortableColumns, + hasSortableColumns: computed(() => isNonEmpty(sortableColumns.value)) + }; + + provide(USE_SORTABLE_TABLE_INJECTION_SYMBOL, sortableTable); + + return sortableTable; +} + +function useDefaultSortableTable(): UseSortableTable { + return { + sortBy: shallowRef([]), + sortType: shallowRef('Ascending'), + updateSortColumn: constVoid, + updateSortDirection: constVoid, + sortableColumns: computed(constEmptyArray), + hasSortableColumns: computed(constFalse), + isMultiple: computed(constFalse), + sortByMap: computed(() => new Map()) + }; +} + +export function useInjectedSortableTable(): UseSortableTable { + return inject(USE_SORTABLE_TABLE_INJECTION_SYMBOL, useDefaultSortableTable, true); +} diff --git a/node_modules/buetify/src/components/table/index.ts b/node_modules/buetify/src/components/table/index.ts new file mode 100755 index 0000000..056c74d --- /dev/null +++ b/node_modules/buetify/src/components/table/index.ts @@ -0,0 +1,6 @@ +import BTable from './BTable'; +import BSimpleTable from './BSimpleTable'; +import BStyledTable from './BStyledTable'; +import BTableColumn from './BTableColumn'; + +export { BTable, BTableColumn, BSimpleTable, BStyledTable }; diff --git a/node_modules/buetify/src/components/table/shared.ts b/node_modules/buetify/src/components/table/shared.ts new file mode 100755 index 0000000..dd306f5 --- /dev/null +++ b/node_modules/buetify/src/components/table/shared.ts @@ -0,0 +1,45 @@ +import { FunctionN } from 'fp-ts/function'; +import { contramap, Eq, eqStrict, eqString } from 'fp-ts/lib/Eq'; +import { Ord } from 'fp-ts/lib/Ord'; +import { toggleListItem } from '../../utils/helpers'; +import { Classes } from '../../utils/mergeClasses'; + +export interface BTableRow { + id: unknown; + isDroppable?: boolean; + isDraggable?: boolean; + isSelectable?: boolean; + isCheckable?: boolean; + classes?: Classes; +} + +export type SortType = 'Ascending' | 'Descending'; + +export type BTableColumnPosition = 'is-left' | 'is-centered' | 'is-right'; + +export interface BTableColumnSort<T = BTableRow> { + ord: Ord<T>; + sortType?: SortType; +} +export interface BTableColumn<T = BTableRow> { + label: string; + detail?: string; + slotName?: string; + value?: keyof T | FunctionN<[T], unknown>; + asHtml?: boolean; + sort?: boolean | BTableColumnSort<T>; + meta?: unknown; + isVisible?: boolean; + position?: BTableColumnPosition; + width?: string | number; + classes?: Classes; + isSticky?: boolean; +} + +export const eqBTableRowData: Eq<BTableRow> = contramap<unknown, BTableRow>(row => row.id)(eqStrict); + +export const eqBTableColumn: Eq<BTableColumn> = contramap<string, BTableColumn>(column => column.label)(eqString); + +export const toggleBTableRow = toggleListItem(eqBTableRowData); + +export const toggleBTableColumn = toggleListItem(eqBTableColumn); diff --git a/node_modules/buetify/src/components/table/table.sass b/node_modules/buetify/src/components/table/table.sass new file mode 100755 index 0000000..0290b18 --- /dev/null +++ b/node_modules/buetify/src/components/table/table.sass @@ -0,0 +1,383 @@ +@import '../../sass/helpers/functions' + +$table-cell-border: 1px solid $grey-lighter !default +$table-cell-border-width: 0 0 1px !default +$table-cell-padding: 0.5em 0.75em !default +$table-cell-padding-small: 0.25em 0.5em !default +$table-cell-heading-color: $text-strong !default + +$table-head-cell-border-width: 0 0 2px !default +$table-head-cell-color: $text-strong !default +$table-foot-cell-border-width: 2px 0 0 !default +$table-foot-cell-color: $text-strong !default + +$table-head-background-color: $white !default +$table-body-background-color: $white !default +$table-foot-background-color: $white !default + +$table-row-hover-background-color: $white-ter !default + +$table-row-active-background-color: $primary !default +$table-row-active-color: $primary-invert !default + +$table-striped-row-even-background-color: $white-bis !default +$table-striped-row-even-hover-background-color: $white-ter !default + +$table-row-is-undroppable-background-color: $danger-light !default +$table-row-is-undroppable-color: findColorInvert($table-row-is-undroppable-background-color) !default + +$table-row-is-droppable-background-color: $success !default +$table-row-is-droppable-color: findColorInvert($table-row-is-droppable-background-color) !default + +$table-row-is-drop-target-background-color: $link-dark !default +$table-row-is-drop-target-color: findColorInvert($table-row-is-drop-target-background-color) !default + +$table-color: $grey-darker !default +$table-background-color: $white !default + +$all-colors: mergeColorMaps($colors, $shades) + +.table + @extend %block + position: relative + color: $table-color + border-collapse: separate + tr, + th + background-color: $table-background-color + // Modifiers + &.is-bordered + td, + th + border-width: 1px + tr + &:last-child + td, + th + border-bottom-width: 1px + td, + th + border: $table-cell-border + border-width: $table-cell-border-width + padding: $table-cell-padding + vertical-align: middle + &.is-narrow + white-space: nowrap + width: 1% + &.is-selected + background-color: $table-row-active-background-color + color: $table-row-active-color + cursor: pointer + a, + strong + color: currentColor + &.is-sticky-left + z-index: 1 + background: inherit + position: sticky + th + color: $table-cell-heading-color + text-align: left + font-weight: $weight-semibold + .th-wrap + display: flex + min-width: 3.5rem + align-items: center + .icon + margin-left: 0.5rem + margin-right: 0 + font-size: 1rem + &.is-right + flex-direction: row-reverse + text-align: right + .icon + margin-left: 0 + margin-right: 0.5rem + &.is-centered + justify-content: center + text-align: center + &.is-current-sort + border-color: $grey + font-weight: $weight-bold + &.is-sortable:hover + border-color: $grey-dark + &.is-sortable, + &.is-sortable .th-wrap + cursor: pointer + &.is-sticky-left + position: sticky + background: inherit + z-index: 1 + thead + background-color: $table-head-background-color + td, + th + border-width: $table-head-cell-border-width + color: $table-head-cell-color + tfoot + background-color: $table-foot-background-color + td, + th + border-width: $table-foot-cell-border-width + color: $table-foot-cell-color + tbody + background-color: $table-body-background-color + // Modifiers + &.is-bordered + td, + th + border-width: 1px + tr + &:last-child + td, + th + border-bottom-width: 1px + &.is-fullwidth + width: 100% + &.is-hoverable + tbody + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + &:hover + background-color: $table-row-hover-background-color + &.is-striped + tbody + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + &:hover + background-color: $table-row-hover-background-color + &:nth-child(even) + background-color: $table-striped-row-even-hover-background-color + &.is-narrow + td, + th + padding: 0.25em 0.5em + &.is-striped + tbody + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + &:nth-child(even) + background-color: $table-striped-row-even-background-color + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + +mobile + font-size: $size-small + td, th + padding: $table-cell-padding-small + tr + &.is-draggable + cursor: move + &.is-undroppable + cursor: no-drop + background-color: $table-row-is-undroppable-background-color + td, + th, + a + color: $table-row-is-undroppable-color !important + &.is-droppable + background-color: $table-row-is-droppable-background-color + cursor: pointer + td, + th, + a + color: $table-row-is-droppable-color !important + &:hover + background-color: findDarkColor($table-row-is-droppable-background-color) + &.is-drop-target + background-color: $table-row-is-drop-target-background-color + td, + th, + a + color: $table-row-is-drop-target-color !important + &.is-selected + cursor: pointer + background-color: $table-row-active-background-color + color: $table-row-active-color !important + strong + color: currentColor + td, + th + border-color: $table-row-active-color + color: currentColor + .checkbox input + &:checked + .check + background: $table-row-active-color url(checkmark($table-row-active-background-color)) no-repeat center center + + .check + border-color: $table-row-active-color + &.is-drop-target + background-color: $table-row-active-background-color + &:hover + background-color: bulmaDarken($table-row-active-background-color, 2.5%) + &.is-empty:hover + background-color: transparent + @each $name, $pair in $all-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + background-color: $color + th + background-color: $color + th + border-color: $color-invert, + thead + background-color: $color + td, + th + border-width: $table-head-cell-border-width + color: $color-invert + tfoot + background-color: $color + td, + th + border-width: $table-foot-cell-border-width + color: $color-invert + tbody + background-color: $color + td, + th + color: $color-invert + &.is-hoverable + tbody + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + &:hover + background-color: bulmaDarken($color, 10%) + &.is-striped + tbody + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + &:hover + background-color: bulmaDarken($color, 10%) + &:nth-child(even) + background-color: bulmaDarken($color, 10%) + &.is-striped + tbody + tr:not(.is-selected):not(.is-undroppable):not(.is-droppable):not(.is-drop-target) + &:nth-child(even) + background-color: bulmaDarken($color, 2.5%) + th + background-color: bulmaDarken($color, 2.5%) + &:nth-child(odd) + background-color: $color + th + background-color: $color + .chevron-cell + vertical-align: middle + .checkbox-cell + width: 40px + .checkbox + vertical-align: middle + .check + transition: none + tr.detail + box-shadow: inset 0 1px 3px $grey-lighter + background: $white-bis + .detail-container + padding: 1rem + &:focus + border-color: $link + box-shadow: 0 0 0 0.125em rgba($link, 0.25) + + // Modifiers + &.is-bordered + th.is-current-sort, + th.is-sortable:hover + border-color: $grey-lighter + background: $background + &.has-mobile-cards + @include mobile + thead + display: none + tfoot + th + border: 0 // Disable is-bordered + display: inherit + + tr + // Card style — Cannot extend inside media query + box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) + max-width: 100% + position: relative + display: block + td + border: 0 // Disable is-bordered + display: inherit + &:last-child + border-bottom: 0 + + &:not(:last-child) + margin-bottom: 1rem + // Disables is-* + &:not([class*='is-']) + background: inherit + &:hover + background-color: inherit + &.detail + margin-top: -1rem + tr:not(.detail):not(.is-empty):not(.table-footer) + td + display: flex + width: auto + justify-content: space-between + align-items: center + text-align: right + border-bottom: 1px solid $background + &:before + content: attr(data-label) + font-weight: $weight-semibold + padding-right: 0.5em + text-align: left + +.b-table + transition: opacity $speed $easing + .table + width: 100% + border: 1px solid transparent + border-radius: $radius + border-collapse: separate + .table-mobile-sort + @include tablet + display: none + + .level + padding-bottom: 1.5rem + + &.is-loading + position: relative + pointer-events: none + opacity: 0.5 + &:after + @include loader + position: absolute + top: 4em + left: calc(50% - 1em) + width: 2em + height: 2em + border-width: 0.25em + z-index: 1 + +.b-column-delete + margin-left: 0.5rem + +.table-container + @extend %block + +overflow-touch + overflow: auto + overflow-y: hidden + max-width: 100% + +.table-wrapper + .table + margin-bottom: 0 + padding-bottom: 0.75rem + &:not(:last-child) + margin-bottom: 1.5rem + +.b-scroll + .table-wrapper + padding-bottom: 0.5rem + margin-bottom: 0 + .table + padding-bottom: 0 diff --git a/node_modules/buetify/src/components/tabs/BTabItem.ts b/node_modules/buetify/src/components/tabs/BTabItem.ts new file mode 100755 index 0000000..4d5ad75 --- /dev/null +++ b/node_modules/buetify/src/components/tabs/BTabItem.ts @@ -0,0 +1,35 @@ +import { toUndefined } from 'fp-ts/lib/Option'; +import { defineComponent, h, inject, withDirectives, vShow, computed } from 'vue'; +import { BTabItemPropsDefinition, DEFAULT_TAB_INJECTION, TAB_ITEM_NAME, TABS_SYMBOL } from './shared'; + +export default defineComponent({ + name: TAB_ITEM_NAME, + props: BTabItemPropsDefinition, + setup(props, { slots }) { + const injection = inject(TABS_SYMBOL, DEFAULT_TAB_INJECTION); + + const index = injection.tabs.findIndex(p => p.label === props.label); + + if (index > -1) { + injection.tabs.splice(index, 1, props); + } else { + injection.tabs.push(props); + } + + const isActive = computed(() => toUndefined(injection.activeLabel.value) === props.label); + + return () => { + return withDirectives( + h( + 'section', + { + class: 'tab-item', + 'aria-label': props.label + }, + slots.default && slots.default({ isActive: toUndefined(injection.activeLabel.value) === props.label }) + ), + [[vShow, isActive.value]] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/tabs/BTabs.ts b/node_modules/buetify/src/components/tabs/BTabs.ts new file mode 100755 index 0000000..420a838 --- /dev/null +++ b/node_modules/buetify/src/components/tabs/BTabs.ts @@ -0,0 +1,273 @@ +import '../../sass/helpers/animations.sass'; +import '../../sass/helpers/flex-helpers.sass'; +import '../../sass/helpers/padding-margin-helpers.sass'; +import './tabs.sass'; +import { lookup } from 'fp-ts/Array'; +import { pipe } from 'fp-ts/function'; +import { map } from 'fp-ts/Option'; +import { getUseModelPropsDefinition, Model, useModel } from '../../composables/model'; +import { useThemePropsDefinition, useTheme } from '../../composables/theme'; +import { AllColorsVariant } from '../../types/ColorVariants'; +import BScroll from '../scroll/BScroll'; +import { + shallowReactive, + PropType, + h, + shallowRef, + provide, + ExtractPropTypes, + Ref, + nextTick, + defineComponent, + VNode, + onBeforeMount, + computed, + SetupContext, + TransitionGroup, + cloneVNode, + withDirectives, + vShow, + ComponentOptions +} from 'vue'; + +import { BTabItemProps, TabInjection, TABS_SYMBOL } from './shared'; + +import { TabsThemeMap } from './theme'; + +export type TabsPosition = 'is-centered' | 'is-right' | ''; + +export type TabsType = 'is-boxed' | 'is-toggle' | 'is-toggle-rounded' | ''; + +export type TabsSize = 'is-small' | 'is-medium' | 'is-large' | ''; + +type TabTransition = 'slide-next' | 'slide-prev'; + +export const BTabsPropsDefinition = { + ...getUseModelPropsDefinition<number>(), + ...useThemePropsDefinition(TabsThemeMap), + isExpanded: { + type: Boolean as PropType<boolean>, + default: false + }, + type: { + type: String as PropType<TabsType>, + default: '' as const + }, + size: { + type: String as PropType<TabsSize>, + default: '' as const + }, + position: { + type: String as PropType<TabsPosition>, + default: '' as const + }, + label: { + type: String as PropType<string> + }, + variant: { + type: String as PropType<AllColorsVariant>, + default: '' as const + }, + isAnimated: { + type: Boolean as PropType<boolean>, + default: true + }, + isScrollable: { + type: Boolean as PropType<boolean>, + default: false + }, + isVertical: { + type: Boolean as PropType<boolean>, + default: false + } +}; + +export type BTabsProps = ExtractPropTypes<typeof BTabsPropsDefinition>; + +function useOnTabItemClick(tab: BTabItemProps, index: number, model: Model<number>, transition: Ref<TabTransition>) { + return () => { + const val = model.modelValue.value || 0; + if (val !== index) { + transition.value = index < val ? 'slide-next' : 'slide-prev'; + nextTick(() => { + model.modelValue.value = index; + }); + } + }; +} + +function useGenerateNavItem(props: BTabsProps, model: Model<number>, transition: Ref<TabTransition>) { + return function generateNavItem(tab: BTabItemProps, index: number): VNode { + return withDirectives( + h( + 'li', + { + key: tab.label, + class: [ + { + 'is-active': index === model.modelValue.value, + 'is-disabled': tab.isDisabled + } + ] + }, + [ + h( + 'a', + { onClick: useOnTabItemClick(tab, index, model, transition) }, + tab.icon + ? [ + h(tab.icon as ComponentOptions, { + size: props.size + }), + tab.label + ] + : tab.label + ) + ] + ), + [[vShow, tab.isVisible]] + ); + }; +} + +function generateNavLabel(props: BTabsProps): VNode { + return h( + 'label', + { + class: ['label is-marginless align-self-center', props.size] + }, + props.label + ); +} + +function generateNavItems( + props: BTabsProps, + tabs: BTabItemProps[], + model: Model<number>, + transition: Ref<TabTransition> +) { + return h('ul', tabs.map(useGenerateNavItem(props, model, transition))); +} + +function generateNavHeaderContent( + props: BTabsProps, + tabs: BTabItemProps[], + model: Model<number>, + transition: Ref<TabTransition>, + themeClasses: string[] +): VNode { + return h( + 'nav', + { + class: [ + 'tabs', + props.type, + props.size, + props.position, + { + 'is-fullwidth': !!props.isExpanded || !!props.isScrollable, + 'is-toggle-rounded is-toggle': props.type === 'is-toggle-rounded' + } + ].concat(props.variant === '' ? themeClasses : [props.variant]) + }, + props.label + ? [generateNavLabel(props), generateNavItems(props, tabs, model, transition)] + : [generateNavItems(props, tabs, model, transition)] + ); +} + +function generateNavHeader( + props: BTabsProps, + tabs: BTabItemProps[], + model: Model<number>, + transition: Ref<TabTransition>, + themeClasses: string[] +): VNode { + return props.isScrollable + ? h(BScroll, { class: props.isVertical ? 'is-fullheight' : 'is-fullwidth' }, () => [ + generateNavHeaderContent(props, tabs, model, transition, themeClasses) + ]) + : generateNavHeaderContent(props, tabs, model, transition, themeClasses); +} + +function BStaticTabContent(_: unknown, { slots }: SetupContext) { + return h('div', { class: 'tab-content' }, slots.default && slots.default()); +} + +export default defineComponent({ + name: 'b-tabs', + props: BTabsPropsDefinition, + setup(props, context) { + const { themeClasses } = useTheme(props); + const model = useModel(props); + const transition = shallowRef('slide-next' as 'slide-next' | 'slide-prev'); + const tabs = shallowReactive([] as BTabItemProps[]); + const isTransitioning = shallowRef(false); + const activeLabel = computed(() => + pipe( + tabs, + lookup(model.modelValue.value || 0), + map(p => p.label) + ) + ); + + const injection: TabInjection = { + activeLabel, + tabs + }; + + provide(TABS_SYMBOL, injection); + + onBeforeMount(() => { + if (model.modelValue.value === undefined) { + model.modelValue.value = 0; + } + }); + + function onBeforeEnter() { + isTransitioning.value = true; + } + + function onAfterLeave() { + isTransitioning.value = false; + } + + return () => { + return h( + 'article', + { + class: [ + 'b-tabs', + props.size || null, + { + 'is-vertical': props.isVertical, + [props.position]: props.position && props.isVertical + } + ] + }, + [ + generateNavHeader(props, tabs, model, transition, themeClasses.value), + props.isAnimated + ? h( + 'div', + { + class: ['tab-content', { 'is-transitioning': isTransitioning.value }] + }, + h( + TransitionGroup, + { + onBeforeEnter, + onAfterLeave, + name: transition.value + }, + () => + context.slots.default && + context.slots.default().map((node, index) => cloneVNode(node, { key: tabs[index]?.label ?? index })) + ) + ) + : h(BStaticTabContent, context.slots.default) + ] + ); + }; + } +}); diff --git a/node_modules/buetify/src/components/tabs/index.ts b/node_modules/buetify/src/components/tabs/index.ts new file mode 100755 index 0000000..700fe28 --- /dev/null +++ b/node_modules/buetify/src/components/tabs/index.ts @@ -0,0 +1,5 @@ +import BTabItem from './BTabItem'; +import BTabs from './BTabs'; +import { TabsThemeMap } from './theme'; + +export { BTabItem, BTabs, TabsThemeMap }; diff --git a/node_modules/buetify/src/components/tabs/shared.ts b/node_modules/buetify/src/components/tabs/shared.ts new file mode 100755 index 0000000..7ec6134 --- /dev/null +++ b/node_modules/buetify/src/components/tabs/shared.ts @@ -0,0 +1,36 @@ +import { none, Option } from 'fp-ts/lib/Option'; +import { PropType, ExtractPropTypes, Component, Ref, shallowRef } from 'vue'; + +export const TABS_SYMBOL = Symbol('tabs'); + +export const TAB_ITEM_NAME = 'b-tab-item'; + +export const BTabItemPropsDefinition = { + label: { + type: String as PropType<string>, + required: true as const + }, + icon: { + type: [Function, Object] as PropType<Component> + }, + isDisabled: { + type: Boolean as PropType<boolean>, + default: false + }, + isVisible: { + type: Boolean as PropType<boolean>, + default: true + } +}; + +export type BTabItemProps = ExtractPropTypes<typeof BTabItemPropsDefinition>; + +export interface TabInjection { + activeLabel: Ref<Option<string>>; + tabs: BTabItemProps[]; +} + +export const DEFAULT_TAB_INJECTION: TabInjection = { + activeLabel: shallowRef(none), + tabs: [] +}; diff --git a/node_modules/buetify/src/components/tabs/tabs.sass b/node_modules/buetify/src/components/tabs/tabs.sass new file mode 100755 index 0000000..a38579f --- /dev/null +++ b/node_modules/buetify/src/components/tabs/tabs.sass @@ -0,0 +1,116 @@ +@import '~bulma/sass/components/tabs' +.b-tabs + .tabs + margin-bottom: 0 + flex-shrink: 0 + li + &.is-disabled + pointer-events: none + cursor: not-allowed + opacity: 0.5 + + .tab-content + position: relative + overflow: visible + display: flex + flex-direction: column + padding: 1rem + .tab-item + flex-shrink: 0 + flex-basis: auto + + &.is-transitioning + overflow: hidden + + &:not(:last-child) + margin-bottom: 1.5rem + + &.is-fullwidth + width: 100% + + &.is-vertical + display: flex + flex-direction: row + flex-wrap: wrap + > .tabs + ul + flex-direction: column + border-bottom-color: transparent + + li + width: 100% + + a + justify-content: left + + &.is-boxed + li + a + border-bottom-color: transparent !important + border-right-color: $tabs-border-bottom-color !important + border-radius: $tabs-boxed-link-radius 0 0 $tabs-boxed-link-radius + + &.is-active + a + border-bottom-color: $tabs-border-bottom-color !important + border-right-color: transparent !important + + &.is-toggle + li + + li + margin-left: 0 + + &:first-child + a + border-radius: $tabs-toggle-link-radius $tabs-toggle-link-radius 0 0 + + &:last-child + a + border-radius: 0 0 $tabs-toggle-link-radius $tabs-toggle-link-radius + + &.is-fullwidth + li + a + height: 100% + + > .tab-content + flex-grow: 1 + + &.is-right + flex-direction: row-reverse + + > .tabs + ul + a + flex-direction: row-reverse + + .icon:first-child + margin-right: 0 + margin-left: 0.5em + + &.is-boxed + li + a + border-bottom-color: transparent !important + border-right-color: transparent !important + border-left-color: $tabs-border-bottom-color !important + border-radius: 0 $tabs-boxed-link-radius $tabs-boxed-link-radius 0 + + &.is-active + a + border-bottom-color: $tabs-border-bottom-color !important + border-right-color: $tabs-border-bottom-color !important + border-left-color: transparent !important + + &.is-multiline + > .tabs + ul + flex-wrap: wrap + flex-shrink: 1 + + &.is-scrollable + .tabs + padding-bottom: 0.5rem + + .b-scroll + padding-bottom: 0.5rem diff --git a/node_modules/buetify/src/components/tabs/theme.ts b/node_modules/buetify/src/components/tabs/theme.ts new file mode 100755 index 0000000..6a5092a --- /dev/null +++ b/node_modules/buetify/src/components/tabs/theme.ts @@ -0,0 +1,4 @@ +export const TabsThemeMap = { + dark: 'is-link', + light: '' +}; diff --git a/node_modules/buetify/src/components/tag/BTag.ts b/node_modules/buetify/src/components/tag/BTag.ts new file mode 100755 index 0000000..2bd9e61 --- /dev/null +++ b/node_modules/buetify/src/components/tag/BTag.ts @@ -0,0 +1,100 @@ +import './tag.sass'; +import { FunctionN } from 'fp-ts/lib/function'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { h, PropType, defineComponent } from 'vue'; + +export default defineComponent({ + name: 'b-tag', + props: { + tag: { + type: String, + default: 'span' + }, + isAttached: { + type: Boolean, + default: false + }, + isClosable: { + type: Boolean, + default: false + }, + variant: { + type: String as PropType<ColorVariant>, + default: '' as const + }, + closeVariant: { + type: String as PropType<ColorVariant> + }, + size: { + type: String as PropType<SizeVariant>, + default: '' as const + }, + isRounded: { + type: Boolean, + default: false + }, + isDisabled: { + type: Boolean, + default: false + }, + hasEllipsis: { + type: Boolean, + default: false + }, + isTabable: { + type: Boolean, + default: false + }, + onClose: { + type: Function as PropType<FunctionN<[MouseEvent], void>>, + required: false + } + }, + setup(props, { slots }) { + return () => { + if (props.isAttached && props.isClosable) { + return h( + props.tag, + { + class: 'tags has-addons' + }, + [ + h( + 'span', + { + class: ['tag', props.variant, props.size, { 'is-rounded': props.isRounded }] + }, + [h('span', { class: { 'has-ellipsis': props.hasEllipsis } }, slots.default && slots.default())] + ), + h('button', { + class: ['tag is-delete', props.closeVariant, props.size, { 'is-rounded': props.isRounded }], + tabindex: props.isTabable ? 0 : null, + disabled: props.isDisabled, + onClick: props.isDisabled ? undefined : props.onClose + }) + ] + ); + } else { + const nodes = [h('span', { class: { 'has-ellipsis': props.hasEllipsis } }, slots.default && slots.default())]; + if (props.isClosable) { + nodes.push( + h('button', { + class: ['delete is-small', props.closeVariant], + tabindex: props.isTabable ? 0 : null, + disabled: props.isDisabled, + onClick: props.isDisabled ? undefined : props.onClose + }) + ); + } + return h( + props.tag, + { + class: ['tag', props.variant, props.size, { 'is-rounded': props.isRounded }] + }, + nodes + ); + } + }; + } +}); diff --git a/node_modules/buetify/src/components/tag/BTagList.ts b/node_modules/buetify/src/components/tag/BTagList.ts new file mode 100755 index 0000000..8279bff --- /dev/null +++ b/node_modules/buetify/src/components/tag/BTagList.ts @@ -0,0 +1,20 @@ +import './tag.sass'; +import { h, defineComponent } from 'vue'; + +export default defineComponent({ + name: 'b-tag-list', + props: { + isAttached: { + type: Boolean, + default: false + }, + tag: { + type: String, + default: 'div' + } + }, + setup(props, { slots }) { + return () => + h(props.tag, { class: ['tags', { 'has-addons': props.isAttached }] }, slots.default && slots.default()); + } +}); diff --git a/node_modules/buetify/src/components/tag/index.ts b/node_modules/buetify/src/components/tag/index.ts new file mode 100755 index 0000000..490d08c --- /dev/null +++ b/node_modules/buetify/src/components/tag/index.ts @@ -0,0 +1,4 @@ +import BTag from './BTag'; +import BTagList from './BTagList'; + +export { BTag, BTagList }; diff --git a/node_modules/buetify/src/components/tag/tag.sass b/node_modules/buetify/src/components/tag/tag.sass new file mode 100755 index 0000000..e54cd67 --- /dev/null +++ b/node_modules/buetify/src/components/tag/tag.sass @@ -0,0 +1,21 @@ +// from buefy +@import '~bulma/sass/elements/tag' +.tag + .has-ellipsis + max-width: 10em + overflow: hidden + white-space: nowrap + text-overflow: ellipsis + .delete, &.is-delete, &.has-delete-icon + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name} + background: $color + &:hover + background-color: darken($color, 10%) + text-decoration: none + &.has-delete-icon + padding: 0px + .icon:first-child:not(:last-child) + margin-right: 0px + margin-left: 0px diff --git a/node_modules/buetify/src/components/themeToggle/BThemeToggle.ts b/node_modules/buetify/src/components/themeToggle/BThemeToggle.ts new file mode 100755 index 0000000..2e354f9 --- /dev/null +++ b/node_modules/buetify/src/components/themeToggle/BThemeToggle.ts @@ -0,0 +1,21 @@ +import { h, defineComponent } from 'vue'; +import { useTheme } from '../../composables/theme'; +import AdjustIcon from '../icons/adjust/AdjustIcon'; +import BTooltip from '../tooltip/BTooltip'; + +export default defineComponent({ + name: 'b-theme-toggle', + setup(_, { slots }) { + const { toggleTheme } = useTheme(); + return () => + h('button', { 'aria-label': 'toggle color theme', onClick: toggleTheme }, [ + h( + BTooltip, + { + label: 'Toggle color theme' + }, + () => (slots.default ? slots.default() : h(AdjustIcon)) + ) + ]); + } +}); diff --git a/node_modules/buetify/src/components/themeToggle/index.ts b/node_modules/buetify/src/components/themeToggle/index.ts new file mode 100755 index 0000000..86a2257 --- /dev/null +++ b/node_modules/buetify/src/components/themeToggle/index.ts @@ -0,0 +1,5 @@ +import BThemeToggle from './BThemeToggle'; + +export { BThemeToggle }; + +export default BThemeToggle; diff --git a/node_modules/buetify/src/components/title/BSubtitle.ts b/node_modules/buetify/src/components/title/BSubtitle.ts new file mode 100755 index 0000000..2640412 --- /dev/null +++ b/node_modules/buetify/src/components/title/BSubtitle.ts @@ -0,0 +1,4 @@ +import './title.sass'; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('subtitle', 'h2'); diff --git a/node_modules/buetify/src/components/title/BTitle.ts b/node_modules/buetify/src/components/title/BTitle.ts new file mode 100755 index 0000000..1316738 --- /dev/null +++ b/node_modules/buetify/src/components/title/BTitle.ts @@ -0,0 +1,4 @@ +import './title.sass'; +import { getSimpleFunctionalComponent } from '../../utils/getSimpleFunctionalComponent'; + +export default getSimpleFunctionalComponent('title', 'h1'); diff --git a/node_modules/buetify/src/components/title/index.ts b/node_modules/buetify/src/components/title/index.ts new file mode 100755 index 0000000..f10d2e4 --- /dev/null +++ b/node_modules/buetify/src/components/title/index.ts @@ -0,0 +1,4 @@ +import BSubtitle from './BSubtitle'; +import BTitle from './BTitle'; + +export { BSubtitle, BTitle }; diff --git a/node_modules/buetify/src/components/title/title.sass b/node_modules/buetify/src/components/title/title.sass new file mode 100755 index 0000000..2ace852 --- /dev/null +++ b/node_modules/buetify/src/components/title/title.sass @@ -0,0 +1,5 @@ +@import "~bulma/sass/elements/title" + +.title, +.subtitle + color: inherit diff --git a/node_modules/buetify/src/components/tooltip/BTooltip.ts b/node_modules/buetify/src/components/tooltip/BTooltip.ts new file mode 100755 index 0000000..cc2732a --- /dev/null +++ b/node_modules/buetify/src/components/tooltip/BTooltip.ts @@ -0,0 +1,80 @@ +import '../../sass/helpers/animations.sass'; +import './tooltip.sass'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { h, defineComponent, PropType } from 'vue'; + +export type TooltipPosition = 'is-top' | 'is-bottom' | 'is-left' | 'is-right'; + +export default defineComponent({ + name: 'b-tooltip', + props: { + isActive: { + type: Boolean as PropType<boolean> + }, + variant: { + type: String as PropType<ColorVariant>, + default: 'is-primary' as const + }, + label: { + type: String as PropType<string>, + required: true + }, + position: { + type: String as PropType<TooltipPosition>, + default: 'is-top' as const + }, + isAlways: { + type: Boolean as PropType<boolean>, + default: false + }, + isAnimated: { + type: Boolean as PropType<boolean>, + default: true + }, + isSquare: { + type: Boolean as PropType<boolean>, + default: false + }, + isDashed: { + type: Boolean as PropType<boolean>, + default: false + }, + isMultiline: { + type: Boolean as PropType<boolean>, + default: false + }, + size: { + type: String as PropType<SizeVariant>, + default: 'is-medium' as const + }, + tag: { + type: String as PropType<string>, + default: 'span' + } + }, + setup(props, { slots }) { + return () => + h( + props.tag, + { + class: [ + 'b-tooltip', + props.variant, + props.size, + props.position, + { + 'b-tooltip': props.isActive, + 'is-always': props.isAlways || props.isActive, + 'is-animated': props.isAnimated, + 'is-square': props.isSquare, + 'is-dashed': props.isDashed, + 'is-multiline': props.isMultiline + } + ], + 'data-label': props.label + }, + slots.default ? slots.default() : undefined + ); + } +}); diff --git a/node_modules/buetify/src/components/tooltip/index.ts b/node_modules/buetify/src/components/tooltip/index.ts new file mode 100755 index 0000000..88b384d --- /dev/null +++ b/node_modules/buetify/src/components/tooltip/index.ts @@ -0,0 +1,5 @@ +import BTooltip from './BTooltip'; + +export { BTooltip }; + +export default BTooltip; diff --git a/node_modules/buetify/src/components/tooltip/tooltip.sass b/node_modules/buetify/src/components/tooltip/tooltip.sass new file mode 100755 index 0000000..5656631 --- /dev/null +++ b/node_modules/buetify/src/components/tooltip/tooltip.sass @@ -0,0 +1,126 @@ +$tooltip-arrow-size: 5px +$tooltip-arrow-margin: 2px + +$tooltip-multiline-sizes: (small: 180px, medium: 240px, large: 300px) + +@mixin tooltip-arrow($direction, $color) + @if ($direction == 'is-top') + border-top: $tooltip-arrow-size solid $color + border-right: $tooltip-arrow-size solid transparent + border-left: $tooltip-arrow-size solid transparent + bottom: calc(100% + #{$tooltip-arrow-margin}) + @else if ($direction == 'is-bottom') + border-right: $tooltip-arrow-size solid transparent + border-bottom: $tooltip-arrow-size solid $color + border-left: $tooltip-arrow-size solid transparent + top: calc(100% + #{$tooltip-arrow-margin}) + @else if ($direction == 'is-right') + border-top: $tooltip-arrow-size solid transparent + border-right: $tooltip-arrow-size solid $color + border-bottom: $tooltip-arrow-size solid transparent + left: calc(100% + #{$tooltip-arrow-margin}) + @else if ($direction == 'is-left') + border-top: $tooltip-arrow-size solid transparent + border-bottom: $tooltip-arrow-size solid transparent + border-left: $tooltip-arrow-size solid $color + right: calc(100% + #{$tooltip-arrow-margin}) + +@mixin tooltip($direction, $breakpoint: '') + &.#{$direction} + &:before, + &:after + @if ($direction == 'is-top') + top: auto + right: auto + bottom: calc(100% + #{$tooltip-arrow-size} + #{$tooltip-arrow-margin}) + left: 50% + transform: translateX(-50%) + @else if ($direction == 'is-bottom') + top: calc(100% + #{$tooltip-arrow-size} + #{$tooltip-arrow-margin}) + right: auto + bottom: auto + left: 50% + transform: translateX(-50%) + @else if ($direction == 'is-right') + top: 50% + right: auto + bottom: auto + left: calc(100% + #{$tooltip-arrow-size} + #{$tooltip-arrow-margin}) + transform: translateY(-50%) + @else if ($direction == 'is-left') + top: 50% + right: calc(100% + #{$tooltip-arrow-size} + #{$tooltip-arrow-margin}) + bottom: auto + left: auto + transform: translateY(-50%) + @each $name, $pair in $colors + $color: nth($pair, 1) + &.is-#{$name}:before + @include tooltip-arrow($direction, $color) + &.is-multiline + @each $name, $size in $tooltip-multiline-sizes + &.is-#{$name}:after + width: $size + +// Base ++supports-hover + .b-tooltip + @include tooltip('is-top') + @include tooltip('is-right') + @include tooltip('is-bottom') + @include tooltip('is-left') + position: relative + display: inline-flex + &:before, + &:after + position: absolute + content: '' + opacity: 0 + visibility: hidden + pointer-events: none + &:before + z-index: 889 + &:after + content: attr(data-label) + width: auto + padding: 0.35rem 0.75rem + border-radius: $radius-large + font-size: 0.85rem + font-weight: $weight-normal + box-shadow: 0 1px 2px 1px rgba(0, 1, 0, 0.2) + z-index: 888 + white-space: nowrap + &:not([data-label='']):hover:before, + &:not([data-label='']):hover:after, + &:not([data-label='']):focus:before, + &:not([data-label='']):focus:after + opacity: 1 + visibility: visible + // Modifiers + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name}:after + background: $color + color: $color-invert + &:not([data-label='']).is-always + &:before, + &:after + opacity: 1 + visibility: visible + &.is-multiline + &:after + display: flex + text-align: center + white-space: normal + + &.is-dashed + border-bottom: 1px dashed $grey-light + cursor: default + &.is-square + &:after + border-radius: 0 + &.is-animated + &:before, + &:after + transition: opacity $speed-slow $easing, visibility $speed-slow $easing diff --git a/node_modules/buetify/src/composables/disable/index.ts b/node_modules/buetify/src/composables/disable/index.ts new file mode 100755 index 0000000..6a692e5 --- /dev/null +++ b/node_modules/buetify/src/composables/disable/index.ts @@ -0,0 +1 @@ +export * from './useDisable'; diff --git a/node_modules/buetify/src/composables/disable/useDisable.ts b/node_modules/buetify/src/composables/disable/useDisable.ts new file mode 100755 index 0000000..b0528c5 --- /dev/null +++ b/node_modules/buetify/src/composables/disable/useDisable.ts @@ -0,0 +1,25 @@ +import { Ref, computed, PropType, ExtractPropTypes } from 'vue'; + +export const UseDisablePropsDefinition = { + isDisabled: { + type: Boolean as PropType<boolean>, + required: false, + default: false + }, + isReadonly: { + type: Boolean as PropType<boolean>, + required: false, + default: false + }, + disableIfReadonly: { + type: Boolean as PropType<boolean>, + required: false, + default: false + } +}; + +export type UseDisableProps = ExtractPropTypes<typeof UseDisablePropsDefinition>; + +export function useDisable(props: UseDisableProps): Ref<boolean> { + return computed(() => props.isDisabled || (props.isReadonly && props.disableIfReadonly)); +} diff --git a/node_modules/buetify/src/composables/eqRef/index.ts b/node_modules/buetify/src/composables/eqRef/index.ts new file mode 100755 index 0000000..d64fbf5 --- /dev/null +++ b/node_modules/buetify/src/composables/eqRef/index.ts @@ -0,0 +1,21 @@ +import { Eq } from 'fp-ts/lib/Eq'; +import { Ref, customRef } from 'vue'; + +export function useEqRef<A>(eq: Eq<A>) { + return (v: A): Ref<A> => + customRef((track, trigger) => { + let value = v; + return { + get(): A { + track(); + return value; + }, + set(newValue: A) { + if (!eq.equals(newValue, value)) { + value = newValue; + trigger(); + } + } + }; + }); +} diff --git a/node_modules/buetify/src/composables/fieldData/index.ts b/node_modules/buetify/src/composables/fieldData/index.ts new file mode 100755 index 0000000..ed47fbb --- /dev/null +++ b/node_modules/buetify/src/composables/fieldData/index.ts @@ -0,0 +1,2 @@ +export * from './provideFieldData'; +export * from './useFieldData'; diff --git a/node_modules/buetify/src/composables/fieldData/provideFieldData.ts b/node_modules/buetify/src/composables/fieldData/provideFieldData.ts new file mode 100755 index 0000000..c0f17f5 --- /dev/null +++ b/node_modules/buetify/src/composables/fieldData/provideFieldData.ts @@ -0,0 +1,136 @@ +import { constVoid, FunctionN, not } from 'fp-ts/lib/function'; +import { PropType, ExtractPropTypes, provide, shallowRef, computed, watch, toRef, Ref } from 'vue'; +import { AllColorsVariant } from '../../types/ColorVariants'; +import { isEmptyString, isString } from '../../utils/helpers'; +import { useLabelId, UseLabelIdPropsDefinition } from '../labelId'; + +export const PROVIDE_FIELD_DATA_INJECTION_SYMBOL = Symbol('use-field-data'); + +export const ProvideFieldDataPropsDefinition = { + ...UseLabelIdPropsDefinition, + variant: { + type: [String, Object] as PropType<AllColorsVariant>, + required: false + }, + message: { + type: [String, Array, Object] as PropType< + string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }> + >, + required: false + }, + isExpanded: { + type: Boolean as PropType<boolean>, + default: false + } +}; + +export type ProvideFieldDataProps = ExtractPropTypes<typeof ProvideFieldDataPropsDefinition>; + +export function formatMessage( + message: string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }> | undefined +): string { + if (isString(message)) { + return message; + } else { + const messages = []; + if (Array.isArray(message)) { + message.forEach(m => { + if (isString(m)) { + messages.push(m); + } else { + for (const key in m) { + if (m[key]) { + messages.push(key); + } + } + } + }); + } else { + for (const key in message) { + if (message[key]) { + messages.push(key); + } + } + } + return messages.filter(not(isEmptyString)).join(' <br> '); + } +} + +export interface FieldDataAttrs { + label: Ref<string>; + isFullwidth: Ref<boolean>; + isExpanded: Ref<boolean>; + message: Ref<string>; + messageVariant: Ref<undefined | AllColorsVariant>; + id: Ref<string | undefined>; + labelId: Ref<string | undefined>; +} + +export interface FieldDataListeners { + onNewMessage: FunctionN<[string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }>], void>; + onNewVariant: FunctionN<[AllColorsVariant], void>; +} + +export interface FieldDataInjection { + attrs: FieldDataAttrs; + setters: FieldDataListeners; +} + +export const DEFAULT_FIELD_DATA_INJECTION: FieldDataInjection = { + attrs: { + label: shallowRef(''), + isFullwidth: shallowRef(false), + isExpanded: shallowRef(false), + message: shallowRef(''), + messageVariant: shallowRef(), + id: shallowRef(), + labelId: shallowRef() + }, + setters: { + onNewMessage: constVoid, + onNewVariant: constVoid + } +}; + +export function provideFieldData(props: ProvideFieldDataProps) { + const label = useLabelId(props, 'field'); + const variant = shallowRef(props.variant); + watch(toRef(props, 'variant'), newVariant => { + variant.value = newVariant; + }); + const message = shallowRef(props.message); + watch(toRef(props, 'message'), newMessage => { + message.value = newMessage; + }); + const formattedMessage = computed(() => formatMessage(message.value)); + + const isExpanded = toRef(props, 'isExpanded'); + + const attrs = { + label: toRef(props, 'label'), + isFullwidth: isExpanded, + isExpanded: isExpanded, + message: formattedMessage, + messageVariant: variant, + id: label.id, + labelId: label.labelId + }; + + const setters = { + onNewMessage: (newMessage: string | { [K: string]: boolean } | Array<string | { [K: string]: boolean }>) => { + message.value = newMessage; + }, + onNewVariant: (newVariant: AllColorsVariant) => { + variant.value = newVariant; + } + }; + + const injection: FieldDataInjection = { + attrs, + setters + }; + + provide(PROVIDE_FIELD_DATA_INJECTION_SYMBOL, injection); + + return injection; +} diff --git a/node_modules/buetify/src/composables/fieldData/useFieldData.ts b/node_modules/buetify/src/composables/fieldData/useFieldData.ts new file mode 100755 index 0000000..8f08434 --- /dev/null +++ b/node_modules/buetify/src/composables/fieldData/useFieldData.ts @@ -0,0 +1,6 @@ +import { inject } from 'vue'; +import { DEFAULT_FIELD_DATA_INJECTION, PROVIDE_FIELD_DATA_INJECTION_SYMBOL } from './provideFieldData'; + +export function useFieldData() { + return inject(PROVIDE_FIELD_DATA_INJECTION_SYMBOL, DEFAULT_FIELD_DATA_INJECTION); +} diff --git a/node_modules/buetify/src/composables/focus/index.ts b/node_modules/buetify/src/composables/focus/index.ts new file mode 100755 index 0000000..fb62693 --- /dev/null +++ b/node_modules/buetify/src/composables/focus/index.ts @@ -0,0 +1 @@ +export * from './useFocus'; diff --git a/node_modules/buetify/src/composables/focus/useFocus.ts b/node_modules/buetify/src/composables/focus/useFocus.ts new file mode 100755 index 0000000..4cb513f --- /dev/null +++ b/node_modules/buetify/src/composables/focus/useFocus.ts @@ -0,0 +1,67 @@ +import { Ref, VNode, shallowRef, PropType, ExtractPropTypes, onMounted, watchEffect } from 'vue'; +import { isHTMLElement } from '../../utils/helpers'; + +export const UseFocusPropsDefinition = { + isFocused: { + type: Boolean as PropType<boolean>, + default: false + }, + onFocus: { + type: Function as PropType<(e?: Event) => void>, + required: false as const + }, + onBlur: { + type: Function as PropType<(e?: Event) => void>, + required: false as const + }, + focusOnMount: { + type: Boolean as PropType<boolean>, + default: false + } +}; + +export type UseFocusProps = ExtractPropTypes<typeof UseFocusPropsDefinition>; + +export function useFocus(props: UseFocusProps, ref: Ref<HTMLElement | VNode>) { + const isFocused: Ref<boolean> = shallowRef(false); + function onFocus(e?: Event) { + isFocused.value = true; + if (props.onFocus) props.onFocus(e); + } + function focus(e?: Event) { + if (isFocused.value) { + return; + } + if (isHTMLElement(ref.value)) { + ref.value.focus(); + isFocused.value = true; + if (props.onFocus) props.onFocus(e); + } else { + if (ref.value && isHTMLElement(ref.value.el)) { + ref.value.el.focus(); + isFocused.value = true; + if (props.onFocus) props.onFocus(e); + } + } + } + watchEffect(() => { + if (props.isFocused && isFocused.value === false) { + focus(); + } + }); + + if (props.focusOnMount) { + onMounted(focus); + } + + function onBlur(e?: Event) { + isFocused.value = false; + if (props.onBlur) props.onBlur(e); + } + return { + isFocused, + focus, + onFocus, + onBlur + }; +} diff --git a/node_modules/buetify/src/composables/index.ts b/node_modules/buetify/src/composables/index.ts new file mode 100755 index 0000000..328b008 --- /dev/null +++ b/node_modules/buetify/src/composables/index.ts @@ -0,0 +1,18 @@ +export * from './disable'; +export * from './fieldData'; +export * from './focus'; +export * from './labelId'; +export * from './message'; +export * from './model'; +export * from './noticeController'; +export * from './pagination'; +export * from './popupController'; +export * from './proxy'; +export * from './selectionControl'; +export * from './snackbar'; +export * from './theme'; +export * from './toast'; +export * from './toggle'; +export * from './transition'; +export * from './validation'; +export * from './windowSize'; diff --git a/node_modules/buetify/src/composables/input/useInput.ts b/node_modules/buetify/src/composables/input/useInput.ts new file mode 100755 index 0000000..22e07aa --- /dev/null +++ b/node_modules/buetify/src/composables/input/useInput.ts @@ -0,0 +1,144 @@ +import { AllColorsVariant, ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { isObject, isString } from '../../utils/helpers'; +import { PropType, ExtractPropTypes, Ref, computed, toRefs, watch, shallowRef, toRef, reactive } from 'vue'; +import { useFieldData } from '../fieldData'; +import { useFocus, UseFocusPropsDefinition } from '../focus'; +import { getUseModelPropsDefinition, useModel, UseModelProps } from '../model'; +import { useToggle } from '../toggle'; +import { useValidation, UseValidationPropsDefinition } from '../validation'; + +export const StaticUseInputProps = { + variant: { + type: String as PropType<ColorVariant>, + default: '' as const + }, + type: { + type: String as PropType<string> + }, + autocomplete: { + type: String as PropType<string> + }, + placeholder: { + type: String as PropType<string> + }, + size: { + type: String as PropType<SizeVariant>, + default: '' as SizeVariant + }, + isRequired: { + type: Boolean, + default: false + }, + isExpanded: { + type: Boolean as PropType<boolean>, + default: false + }, + isLoading: { + type: Boolean as PropType<boolean>, + default: false + }, + isRounded: { + type: Boolean as PropType<boolean>, + default: false + }, + maxlength: { + type: [Number, String] as PropType<number | string> + }, + icon: null, + usePasswordReveal: { + type: Boolean as PropType<boolean>, + default: undefined + }, + ...UseValidationPropsDefinition, + ...UseFocusPropsDefinition +}; + +type StaticInputProps = ExtractPropTypes<typeof StaticUseInputProps>; + +export function getUseInputPropsDefinition<T>() { + return { + ...getUseModelPropsDefinition<T>(), + ...StaticUseInputProps + }; +} + +export type UseInputProps<T> = UseModelProps<T> & StaticInputProps; +function getIconSize(size?: SizeVariant) { + switch (size) { + case 'is-small': + return size; + default: + return ''; + } +} + +function getMessageVariant(variant: undefined | AllColorsVariant | Partial<{ [K in AllColorsVariant]: boolean }>) { + if (isString(variant)) { + return variant; + } else if (isObject(variant)) { + return Object.values(variant)[0] as any; // eslint-disable-line + } else { + return undefined; + } +} + +export function useInput<T>(props: UseInputProps<T>, ref: Ref<HTMLElement>) { + const fieldData = useFieldData(); + const isExpanded = computed(() => props.isExpanded || fieldData.attrs.isExpanded.value); + const model = useModel(props); + const validate = useValidation(props, ref); + const focus = useFocus( + reactive({ + isFocused: toRef(props, 'isFocused'), + onFocus: toRef(props, 'onFocus'), + focusOnMount: toRef(props, 'focusOnMount'), + onBlur: (e?: Event) => { + if (props.onBlur) { + props.onBlur(e); + } + validate.validate(); + } + }), + ref + ); + // watch(model.modelValue, (newVal, oldVal) => { + // if (newVal !== oldVal) { + // validate.validate() + // } + // }); + const iconSize = computed(() => getIconSize(props.size)); + const messageVariant = computed(() => getMessageVariant(fieldData.attrs.messageVariant.value)); + + const passwordToggle = useToggle({ isVisible: false, hasPopup: false }, 'isVisible'); + const type = shallowRef(props.type); + + const usePasswordReveal = computed(() => { + return props.type === 'password' && (props.usePasswordReveal === undefined || props.usePasswordReveal); + }); + + watch(toRef(props, 'type'), newVal => { + type.value = newVal; + }); + watch(passwordToggle.isOn, newVal => { + type.value = newVal ? 'text' : 'password'; + }); + return { + ...toRefs(props), + ...fieldData.attrs, + ...fieldData.setters, + isExpanded, + isFullwidth: isExpanded, + messageVariant, + setters: fieldData.setters, + ...model, + ...focus, + ...validate, + iconSize, + type, + passwordToggle, + usePasswordReveal + }; +} + +export type Input = ReturnType<typeof useInput>; diff --git a/node_modules/buetify/src/composables/labelId/index.ts b/node_modules/buetify/src/composables/labelId/index.ts new file mode 100755 index 0000000..fee3434 --- /dev/null +++ b/node_modules/buetify/src/composables/labelId/index.ts @@ -0,0 +1 @@ +export * from './useLabelId'; diff --git a/node_modules/buetify/src/composables/labelId/useLabelId.ts b/node_modules/buetify/src/composables/labelId/useLabelId.ts new file mode 100755 index 0000000..69ec0b6 --- /dev/null +++ b/node_modules/buetify/src/composables/labelId/useLabelId.ts @@ -0,0 +1,24 @@ +import { PropType, ExtractPropTypes, computed, toRef } from 'vue'; + +let numId = 0; + +export const UseLabelIdPropsDefinition = { + labelFor: String as PropType<string>, + label: { + type: String as PropType<string>, + default: '' + } +}; + +export type UseLabelIdProps = ExtractPropTypes<typeof UseLabelIdPropsDefinition>; + +export function useLabelId(props: UseLabelIdProps, prefix: string) { + const newId = numId++; + const id = computed(() => (props.labelFor ? props.labelFor : `${prefix}-${newId}`)); + const labelId = computed(() => `label-for-${id.value}`); + return { + id, + labelId, + label: toRef(props, 'label') + }; +} diff --git a/node_modules/buetify/src/composables/message/index.ts b/node_modules/buetify/src/composables/message/index.ts new file mode 100755 index 0000000..107ba71 --- /dev/null +++ b/node_modules/buetify/src/composables/message/index.ts @@ -0,0 +1 @@ +export * from './useMessage'; diff --git a/node_modules/buetify/src/composables/message/useMessage.ts b/node_modules/buetify/src/composables/message/useMessage.ts new file mode 100755 index 0000000..700c1b0 --- /dev/null +++ b/node_modules/buetify/src/composables/message/useMessage.ts @@ -0,0 +1,94 @@ +import { constant } from 'fp-ts/lib/function'; +import { defineAsyncComponent, PropType, ExtractPropTypes, ComponentOptions, FunctionalComponent, computed } from 'vue'; +import { AllColorsVariant } from '../../types/ColorVariants'; +import { getUseTogglePropsDefinition, useToggle } from '../toggle'; + +export type MessageSize = 'is-small' | 'is-medium' | 'is-large' | ''; + +export type MessageIcons = { + [K in AllColorsVariant]: ComponentOptions | FunctionalComponent; +}; + +const DEFAULT_MESSAGE_ICONS: Partial<MessageIcons> = { + 'is-info': defineAsyncComponent(() => import('../../components/icons/infoCircle')), + 'is-success': defineAsyncComponent(() => import('../../components/icons/checkCircle')), + 'is-warning': defineAsyncComponent(() => import('../../components/icons/exclamationTriangle')), + 'is-danger': defineAsyncComponent(() => import('../../components/icons/exclamationCircle')) +}; + +export function getMessageIcons(icons: Partial<MessageIcons>) { + return { + ...DEFAULT_MESSAGE_ICONS, + ...icons + }; +} + +export const UseMessagePropsDefinition = { + ...getUseTogglePropsDefinition('isActive', true), + title: { + type: String as PropType<string> + }, + isClosable: { + type: Boolean, + default: true + }, + message: { + type: String as PropType<string> + }, + variant: { + type: String as PropType<AllColorsVariant>, + default: '' as const + }, + size: { + type: String as PropType<MessageSize>, + default: '' as const + }, + iconSize: { + type: String as PropType<MessageSize>, + default: '' as const + }, + useAutoClose: { + type: Boolean as PropType<boolean>, + default: false + }, + duration: { + type: Number as PropType<number>, + default: 2000 + }, + useIcon: { + type: Boolean as PropType<boolean>, + default: false + }, + icons: { + type: Object as PropType<Partial<MessageIcons>>, + default: constant(DEFAULT_MESSAGE_ICONS) + }, + icon: { + type: [Object, Function] as PropType<ComponentOptions | FunctionalComponent> + } +}; + +export type UseMessageProps = ExtractPropTypes<typeof UseMessagePropsDefinition>; + +export function useMessage(props: UseMessageProps) { + const toggle = useToggle(props, 'isActive'); + const icon = computed(() => props.icon ?? props.icons[props.variant]); + const iconSize = computed(() => props.iconSize || props.size || 'is-large'); + function setAutoClose() { + if (props.useAutoClose) { + setTimeout(() => { + if (toggle.isOn.value) { + toggle.setOff(); + } + }, props.duration); + } + } + return { + ...toggle, + icon, + iconSize, + setAutoClose + }; +} + +export type Message = ReturnType<typeof useMessage>; diff --git a/node_modules/buetify/src/composables/model/index.ts b/node_modules/buetify/src/composables/model/index.ts new file mode 100755 index 0000000..d464854 --- /dev/null +++ b/node_modules/buetify/src/composables/model/index.ts @@ -0,0 +1 @@ +export * from './useModel'; diff --git a/node_modules/buetify/src/composables/model/useModel.ts b/node_modules/buetify/src/composables/model/useModel.ts new file mode 100755 index 0000000..4c56cf4 --- /dev/null +++ b/node_modules/buetify/src/composables/model/useModel.ts @@ -0,0 +1,105 @@ +import { constant, constVoid, FunctionN, Lazy } from 'fp-ts/lib/function'; +import { PropType, shallowRef, watch, toRef, Ref, computed } from 'vue'; +import { exists, isObject } from '../../utils/helpers'; + +export function getUseModelPropsDefinition<T>(): { + modelValue: { + type: PropType<T>; + required: false; + }; + 'onUpdate:modelValue': { + type: PropType<FunctionN<[T], void>>; + default: Lazy<FunctionN<[T], void>>; + }; +}; +export function getUseModelPropsDefinition<T, ValueKey extends string, UpdateKey extends string>( + valueKey: ValueKey, + updateKey: UpdateKey +): { + [K in ValueKey]: { + type: PropType<T>; + required: false; + }; +} & + { + [K in UpdateKey]: { + type: PropType<FunctionN<[T], void>>; + default: Lazy<FunctionN<[T], void>>; + }; + }; +export function getUseModelPropsDefinition< + T, + ValueKey extends string = 'modelValue', + UpdateKey extends string = 'onUpdate:modelValue' + // eslint-disable-next-line +>(valueKey: ValueKey = 'modelValue' as ValueKey, updateKey: UpdateKey = 'onUpdate:modelValue' as UpdateKey): any { + return { + [valueKey]: null, + [updateKey]: { + type: Function, + default: constant(constVoid) + } + }; +} + +export type UseModelProps< + T, + ValueKey extends string = 'modelValue', + UpdateKey extends string = 'onUpdate:modelValue' +> = { [K in ValueKey]?: T | undefined } & { [K in UpdateKey]: FunctionN<[T], void> }; + +export function useModel<T>(props: UseModelProps<T>): Model<T>; +export function useModel<T, ValueKey extends string, UpdateKey extends string>( + props: UseModelProps<T, ValueKey, UpdateKey>, + valueKey: ValueKey, + updateKey: UpdateKey +): Model<T>; +export function useModel<T, ValueKey extends string = 'modelValue', UpdateKey extends string = 'onUpdate:modelValue'>( + props: UseModelProps<T, ValueKey, UpdateKey>, + valueKey: ValueKey = 'modelValue' as ValueKey, + updateKey: UpdateKey = 'onUpdate:modelValue' as UpdateKey +): Model<T> { + const internalValue: Ref<T | undefined> = shallowRef(props[valueKey]); + + watch(toRef(props, valueKey), newVal => { + internalValue.value = newVal; + }); + + const value = computed({ + get() { + return internalValue.value; + }, + set(val: T | undefined) { + internalValue.value = val; + if (val !== undefined) { + props[updateKey](val); + } + } + }); + + function onUpdate(e: Event) { + // eslint-disable-next-line + // @ts-ignore-next-line + if (isObject(e.target) && exists(e.target.value)) { + // eslint-disable-next-line + // @ts-ignore-next-line + value.value = e.target.value; + } + } + + function set(val: T) { + value.value = val; + } + + return { + set, + modelValue: value, + onNativeInput: onUpdate + }; +} + +export type Model<T> = { + set: FunctionN<[T], void>; + modelValue: Ref<T | undefined>; + onNativeInput: FunctionN<[Event], void>; +}; diff --git a/node_modules/buetify/src/composables/noticeController/index.ts b/node_modules/buetify/src/composables/noticeController/index.ts new file mode 100755 index 0000000..2838f54 --- /dev/null +++ b/node_modules/buetify/src/composables/noticeController/index.ts @@ -0,0 +1,2 @@ +export * from './provideNoticeController'; +export * from './useNoticeController'; diff --git a/node_modules/buetify/src/composables/noticeController/provideNoticeController.ts b/node_modules/buetify/src/composables/noticeController/provideNoticeController.ts new file mode 100755 index 0000000..11b8950 --- /dev/null +++ b/node_modules/buetify/src/composables/noticeController/provideNoticeController.ts @@ -0,0 +1,33 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { provide, VNode } from 'vue'; +import { NoticePlacement } from '../../types/NoticePlacement'; +import { Transition } from '../../types/Transition'; +import { Remove } from '../shared'; + +export const NOTICE_CONTROLLER_SYMBOL = Symbol('notice-controller'); + +export interface ShowNoticeOptions { + render: IO<VNode[]>; + placement: NoticePlacement; + duration: number; + shouldQueue: boolean; + transition?: Transition; +} + +export interface NoticeControllerInjection { + showNotice: (options: ShowNoticeOptions) => Remove; +} + +export const DEFAULT_NOTICE_CONTROLLER_INJECTION: NoticeControllerInjection = { + showNotice: constant(constVoid) +}; + +export function provideNoticeController(showNotice: (options: ShowNoticeOptions) => Remove) { + const injection: NoticeControllerInjection = { + showNotice + }; + + provide(NOTICE_CONTROLLER_SYMBOL, injection); + return injection; +} diff --git a/node_modules/buetify/src/composables/noticeController/useNoticeController.ts b/node_modules/buetify/src/composables/noticeController/useNoticeController.ts new file mode 100755 index 0000000..b641e8a --- /dev/null +++ b/node_modules/buetify/src/composables/noticeController/useNoticeController.ts @@ -0,0 +1,116 @@ +import { constVoid, FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { inject, PropType, ExtractPropTypes, VNode, shallowRef, onUnmounted, computed, Ref } from 'vue'; +import { AllColorsVariant, ColorVariant } from '../../types/ColorVariants'; +import { PositionVariant } from '../../types/PositionVariant'; +import { Transition, TransitionClasses } from '../../types/Transition'; +import { formatTransition } from '../transition'; +import { DEFAULT_NOTICE_CONTROLLER_INJECTION, NOTICE_CONTROLLER_SYMBOL } from './provideNoticeController'; + +export const UseNoticePropsDefinition = { + transition: { + type: [Object, String] as PropType<Transition>, + required: false + }, + position: { + type: String as PropType<PositionVariant>, + default: 'is-bottom' as const + }, + duration: { + type: Number as PropType<number>, + default: 2000 + }, + message: { + type: String as PropType<string> + }, + shouldQueue: { + type: Boolean as PropType<boolean>, + default: true + }, + variant: { + type: String as PropType<ColorVariant>, + default: '' as const + }, + isIndefinite: { + type: Boolean as PropType<boolean>, + default: false + } +}; +export interface UseNoticeProps extends ExtractPropTypes<typeof UseNoticePropsDefinition> {} + +export const DEFAULT_USE_NOTICE_PROPS: UseNoticeProps = { + position: UseNoticePropsDefinition.position.default, + duration: UseNoticePropsDefinition.duration.default, + shouldQueue: UseNoticePropsDefinition.shouldQueue.default, + variant: UseNoticePropsDefinition.variant.default, + isIndefinite: UseNoticePropsDefinition.isIndefinite.default +}; + +function useNoticeTransition(props: UseNoticeProps = DEFAULT_USE_NOTICE_PROPS): Ref<TransitionClasses> { + return computed(() => { + if (props.transition) { + return formatTransition(props.transition); + } else { + switch (props.position) { + case 'is-top-right': + case 'is-top': + case 'is-top-left': + return { + 'enter-active-class': 'fadeInDown', + 'leave-active-class': 'fadeOutUp' + }; + case 'is-bottom-right': + case 'is-bottom': + case 'is-bottom-left': + return { + 'enter-active-class': 'fadeInUp', + 'leave-active-class': 'fadeOutDown' + }; + } + } + }); +} + +export interface RenderNoticeOptions { + variant?: AllColorsVariant; + message?: string; + position?: PositionVariant; +} + +export interface OpenNoticeOptions extends RenderNoticeOptions { + duration?: number; + shouldQueue?: boolean; + transition?: Transition; + isIndefinite?: boolean; + onAction?: IO<void>; +} + +export function useNoticeController(props: UseNoticeProps, render: Ref<FunctionN<[RenderNoticeOptions], IO<VNode[]>>>) { + const remove = shallowRef(constVoid); + const { showNotice } = inject(NOTICE_CONTROLLER_SYMBOL, DEFAULT_NOTICE_CONTROLLER_INJECTION); + const transition = useNoticeTransition(props); + onUnmounted(() => { + remove.value(); + }); + function open(options: OpenNoticeOptions) { + const position = options.position ?? props.position; + remove.value(); + remove.value = showNotice({ + placement: position.includes('top') ? 'top' : 'bottom', + render: render.value(options), + transition: options.transition ?? transition.value, + shouldQueue: options.shouldQueue ?? props.shouldQueue, + duration: options.isIndefinite || props.isIndefinite ? 0 : options.duration ?? props.duration + }); + } + + return { + open: open, + close: () => { + remove.value(); + remove.value = constVoid; + } + }; +} + +export type NoticeController = ReturnType<typeof useNoticeController>; diff --git a/node_modules/buetify/src/composables/pagination/index.ts b/node_modules/buetify/src/composables/pagination/index.ts new file mode 100755 index 0000000..612e4d2 --- /dev/null +++ b/node_modules/buetify/src/composables/pagination/index.ts @@ -0,0 +1 @@ +export * from './usePagination'; diff --git a/node_modules/buetify/src/composables/pagination/usePagination.ts b/node_modules/buetify/src/composables/pagination/usePagination.ts new file mode 100755 index 0000000..3706129 --- /dev/null +++ b/node_modules/buetify/src/composables/pagination/usePagination.ts @@ -0,0 +1,107 @@ +import { PropType, ExtractPropTypes, computed, shallowRef } from 'vue'; +import { constEmptyArray, isNumber } from '../../utils/helpers'; +import { getUseModelPropsDefinition, useModel } from '../model'; + +export const DEFAULT_ITEMS_PER_PAGE = shallowRef(25); + +export const UsePaginationPropsDefinition = { + ...getUseModelPropsDefinition<number>(), + modelValue: { + type: Number as PropType<number>, + default: 0 + }, + total: { + type: Number as PropType<number>, + required: true + }, + perPage: { + type: Number as PropType<number>, + default: () => DEFAULT_ITEMS_PER_PAGE.value, + validator: (value: number) => isNumber(value) && value > 0 + }, + items: { + type: Array as PropType<Array<unknown>>, + default: constEmptyArray + } +}; + +export type UsePaginationProps = ExtractPropTypes<typeof UsePaginationPropsDefinition>; + +export function usePagination<T>(props: UsePaginationProps) { + const model = useModel(props); + const total = computed(() => props.total ?? props.items.length); + const current = computed(() => Math.max(model.modelValue.value as number, 1)); + const itemsPerPage = computed(() => (props.perPage <= 0 ? DEFAULT_ITEMS_PER_PAGE.value : props.perPage)); + const numberOfPages = computed(() => Math.ceil(total.value / itemsPerPage.value)); + const after = computed(() => Math.max((current.value - 1) * itemsPerPage.value, 0)); + const nextPage = computed(() => Math.min(numberOfPages.value, current.value + 1)); + const hasNext = computed(() => { + return itemsPerPage.value + after.value < total.value; + }); + const previousPage = computed(() => Math.max(0, current.value - 1)); + const hasPrevious = computed(() => after.value > 0 && total.value > 0); + + const paginatedItems = computed<T[]>( + () => (props.items ?? []).slice(after.value, after.value + itemsPerPage.value) as T[] + ); + + function next(e: Event) { + console.log('here', e, current.value, hasNext.value); + if (hasNext.value) { + model.modelValue.value = nextPage.value; + } + } + function previous() { + if (hasPrevious.value) { + model.modelValue.value = previousPage.value; + } + } + function first() { + model.modelValue.value = 1; + } + function last() { + model.modelValue.value = numberOfPages.value; + } + function set(num: number) { + if (num >= 1 && num <= numberOfPages.value) { + model.modelValue.value = num; + } + } + return { + paginatedItems, + current, + numberOfPages, + after, + nextPage, + hasNext, + previousPage, + hasPrevious, + next, + previous, + first, + last, + set + }; +} + +export type Pagination = ReturnType<typeof usePagination>; + +export function extractPaginationState(pagination: Pagination) { + return { + paginatedItems: pagination.paginatedItems.value, + current: pagination.current.value, + numberOfPages: pagination.numberOfPages.value, + after: pagination.after.value, + nextPage: pagination.nextPage.value, + hasNext: pagination.hasNext.value, + previousPage: pagination.previousPage.value, + hasPrevious: pagination.hasPrevious.value, + next: pagination.next, + previous: pagination.previous, + first: pagination.first, + last: pagination.last, + set: pagination.set + }; +} + +export type ExtractedPaginationState = ReturnType<typeof extractPaginationState>; diff --git a/node_modules/buetify/src/composables/popupController/index.ts b/node_modules/buetify/src/composables/popupController/index.ts new file mode 100755 index 0000000..d14872d --- /dev/null +++ b/node_modules/buetify/src/composables/popupController/index.ts @@ -0,0 +1,2 @@ +export * from './providePopupController'; +export * from './usePopupController'; diff --git a/node_modules/buetify/src/composables/popupController/providePopupController.ts b/node_modules/buetify/src/composables/popupController/providePopupController.ts new file mode 100755 index 0000000..47eb818 --- /dev/null +++ b/node_modules/buetify/src/composables/popupController/providePopupController.ts @@ -0,0 +1,29 @@ +import { constant, constVoid } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { provide, VNode } from 'vue'; +import { Transition } from '../../types/Transition'; +import { Remove } from '../shared'; + +export const POPUP_CONTROLLER_SYMBOL = Symbol('popup-controller'); + +export interface ShowPopupOptions { + render: IO<VNode[]>; + transition?: Transition; +} + +export interface PopupControllerInjection { + showPopup: (options: ShowPopupOptions) => Remove; +} + +export const DEFAULT_POPUP_CONTROLLER_INJECTION: PopupControllerInjection = { + showPopup: constant(constVoid) +}; + +export function providePopupController(showPopup: (options: ShowPopupOptions) => Remove) { + const injection: PopupControllerInjection = { + showPopup + }; + + provide(POPUP_CONTROLLER_SYMBOL, injection); + return injection; +} diff --git a/node_modules/buetify/src/composables/popupController/usePopupController.ts b/node_modules/buetify/src/composables/popupController/usePopupController.ts new file mode 100755 index 0000000..abf3acf --- /dev/null +++ b/node_modules/buetify/src/composables/popupController/usePopupController.ts @@ -0,0 +1,71 @@ +import { constVoid } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { + inject, + VNode, + ExtractPropTypes, + shallowRef, + onMounted, + computed, + watchEffect, + toRef, + onUnmounted, + Ref +} from 'vue'; +import { getToggleAttrs, getUseTogglePropsDefinition, useToggle } from '../toggle'; +import { FadeTransitionPropsDefinition } from '../transition'; +import { DEFAULT_POPUP_CONTROLLER_INJECTION, POPUP_CONTROLLER_SYMBOL } from './providePopupController'; + +export const UsePopupControllerPropsDefinition = { + ...FadeTransitionPropsDefinition, + ...getUseTogglePropsDefinition('isActive') +}; + +export type UsePopupProps = ExtractPropTypes<typeof UsePopupControllerPropsDefinition>; + +export function usePopupController(props: UsePopupProps, render: Ref<IO<VNode[]>>) { + const hasMounted = shallowRef(false); + onMounted(() => { + hasMounted.value = true; + }); + let remove = constVoid; + const { isOn, setOn, setOff, toggle, listeners } = useToggle(props, 'isActive'); + const { showPopup } = inject(POPUP_CONTROLLER_SYMBOL, DEFAULT_POPUP_CONTROLLER_INJECTION); + const isOpen = computed(() => { + return hasMounted.value && isOn.value; + }); + const attrs = getToggleAttrs(isOpen, toRef(props, 'hasPopup')); + watchEffect( + () => { + if (isOpen.value) { + remove(); + remove = showPopup({ + render: render.value, + transition: props.transition + }); + } else { + remove(); + remove = constVoid; + } + }, + { + flush: 'sync' + } + ); + + onUnmounted(() => { + remove(); + }); + + return { + isOpen, + attrs, + listeners, + props: computed(() => ({ ...attrs.value, ...listeners })), + open: setOn, + close: setOff, + toggle: toggle + }; +} + +export type PopupController = ReturnType<typeof usePopupController>; diff --git a/node_modules/buetify/src/composables/proxy/index.ts b/node_modules/buetify/src/composables/proxy/index.ts new file mode 100755 index 0000000..2161baa --- /dev/null +++ b/node_modules/buetify/src/composables/proxy/index.ts @@ -0,0 +1 @@ +export * from './useProxy'; diff --git a/node_modules/buetify/src/composables/proxy/useProxy.ts b/node_modules/buetify/src/composables/proxy/useProxy.ts new file mode 100755 index 0000000..ddefc5f --- /dev/null +++ b/node_modules/buetify/src/composables/proxy/useProxy.ts @@ -0,0 +1,33 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { Ref, shallowRef, watch, computed, unref } from 'vue'; + +export function useProxy<T>( + ref: Ref<T>, + onUpdate?: Ref<FunctionN<[T], void> | undefined> | FunctionN<[T], void> +): Proxy<T> { + const internalValue = shallowRef(ref.value); + watch(ref, newValue => { + internalValue.value = newValue; + }); + + const value = computed({ + get() { + return internalValue.value; + }, + set(val: T) { + internalValue.value = val; + const update = unref(onUpdate); + if (update) { + update(val); + } + } + }); + + return { + value + }; +} + +export interface Proxy<T> { + value: Ref<T>; +} diff --git a/node_modules/buetify/src/composables/selectionControl/index.ts b/node_modules/buetify/src/composables/selectionControl/index.ts new file mode 100755 index 0000000..2258967 --- /dev/null +++ b/node_modules/buetify/src/composables/selectionControl/index.ts @@ -0,0 +1 @@ +export * from './useSelectionControl'; diff --git a/node_modules/buetify/src/composables/selectionControl/useSelectionControl.ts b/node_modules/buetify/src/composables/selectionControl/useSelectionControl.ts new file mode 100755 index 0000000..9f99fd8 --- /dev/null +++ b/node_modules/buetify/src/composables/selectionControl/useSelectionControl.ts @@ -0,0 +1,217 @@ +import { Eq } from 'fp-ts/lib/Eq'; +import { PropType, Ref, computed, toRef, ComputedRef } from 'vue'; +import { ColorVariant } from '../../types/ColorVariants'; +import { SizeVariant } from '../../types/SizeVariants'; +import { isEnterEvent, isSpaceEvent } from '../../utils/eventHelpers'; +import { toggleListItem } from '../../utils/helpers'; +import { useDisable, UseDisableProps, UseDisablePropsDefinition } from '../disable'; +import { useFocus, UseFocusProps, UseFocusPropsDefinition } from '../focus'; +import { useLabelId, UseLabelIdProps, UseLabelIdPropsDefinition } from '../labelId'; +import { getUseModelPropsDefinition, useModel, UseModelProps } from '../model'; +import { EqProps, getEqPropsDefinition } from '../shared'; + +export function getUseSelectablePropsDefinition<T>() { + return { + nativeValue: { + type: (null as unknown) as PropType<unknown>, + required: false, + default: null + }, + trueValue: { + type: (null as unknown) as PropType<T>, + default: (true as unknown) as T + }, + falseValue: { + type: (null as unknown) as PropType<T>, + default: (false as unknown) as T + }, + isIndeterminate: { + type: Boolean as PropType<boolean>, + default: false + }, + isMultiple: { + type: Boolean as PropType<boolean>, + default: false + }, + variant: { + type: String as PropType<ColorVariant>, + default: 'is-primary' as ColorVariant + }, + size: { + type: String as PropType<SizeVariant>, + default: '' as SizeVariant + }, + isRequired: { + type: Boolean as PropType<boolean>, + default: false + }, + name: { + type: String as PropType<string>, + required: false + }, + ...getEqPropsDefinition<T>(), + ...getUseModelPropsDefinition<T>(), + ...UseDisablePropsDefinition, + ...UseLabelIdPropsDefinition, + ...UseFocusPropsDefinition + }; +} + +export type UseSelectableProps<T> = { + nativeValue: unknown; + trueValue: T; + falseValue: T; + indeterminateValue?: T; + isMultiple: boolean; + variant: ColorVariant; + size: SizeVariant; + isRequired: boolean; + isIndeterminate: boolean; + name?: string; +} & EqProps<T> & + UseModelProps<T> & + UseDisableProps & + UseLabelIdProps; + +function getIsActive<T>(value: T | T[] | undefined, trueValue: T | undefined, isMultiple: boolean, eq: Eq<T>): boolean { + if (isMultiple) { + if (!Array.isArray(value)) return false; + return trueValue !== undefined && value.some(item => eq.equals(item, trueValue)); + } + if (!Array.isArray(value) && trueValue !== undefined) { + return value !== undefined && eq.equals(value, trueValue); + } + return false; +} + +function getOnChange<T>( + value: Ref<T | T[] | undefined>, + trueValue: ComputedRef<T | undefined>, + falseValue: Ref<T | undefined>, + isDisabled: Ref<boolean>, + isMultiple: Ref<boolean>, + eq: Ref<Eq<T>> +) { + return function onChange() { + if (isDisabled.value) return; + if (trueValue.value === undefined) return; + const currentValue = value.value; + const tValue = trueValue.value; + const fValue = falseValue.value; + if (isMultiple.value) { + if (!Array.isArray(currentValue)) { + value.value = []; + } else { + value.value = toggleListItem(eq.value)(tValue, currentValue) as T[]; + } + } else if (!Array.isArray(currentValue)) { + if (currentValue === undefined || (currentValue !== undefined && !eq.value.equals(currentValue, tValue))) { + value.value = tValue; + } else { + value.value = fValue; + } + } + }; +} + +function getInputAttrs<T>( + role: string, + type: string, + id: string, + labelId: string, + isActive: boolean, + isDisabled: boolean, + isReadonly: boolean, + isRequired: boolean, + trueValue: T, + falseValue: T, + nativeValue: unknown, + isIndeterminate?: boolean, + name?: string +) { + return { + role, + type, + id, + name, + checked: isActive, + 'aria-checked': isActive, + 'aria-disabled': isDisabled, + 'aria-labelledby': labelId, + tabindex: -1, + readonly: isReadonly, + disabled: isDisabled, + required: isRequired, + indeterminate: isIndeterminate, + value: JSON.stringify(nativeValue), + 'true-value': JSON.stringify(trueValue), + 'false-value': JSON.stringify(falseValue) + }; +} + +export function useSelectionControl<T>( + props: UseSelectableProps<T>, + ref: Ref<HTMLElement>, + role: string, + type: string +) { + const { modelValue } = useModel<T>(props); + const focus = useFocus((props as unknown) as UseFocusProps, ref); + const trueValue = computed(() => (props.nativeValue || props.trueValue) as T | undefined); + const label = useLabelId(props, role); + const isMultiple = computed(() => props.isMultiple || Array.isArray(modelValue.value)); + const isActive = computed(() => getIsActive(modelValue.value, trueValue.value, isMultiple.value, props.eq)); + const isDisabled = useDisable(props); + + const onChange = getOnChange( + modelValue, + trueValue, + toRef(props, 'falseValue'), + isDisabled, + isMultiple, + toRef(props, 'eq') + ); + + const attrs = computed(() => + getInputAttrs( + role, + type, + label.id.value, + label.labelId.value, + isActive.value, + isDisabled.value, + props.isReadonly, + props.isRequired, + props.trueValue, + props.falseValue, + props.nativeValue, + props.isIndeterminate, + props.name + ) + ); + + function onKeydown(e: KeyboardEvent) { + if (isEnterEvent(e) || isSpaceEvent(e)) { + ref.value?.click(); + } + } + + function onClick() { + focus.focus(); + } + + return { + modelValue, + ...focus, + isDisabled, + isMultiple, + isActive, + attrs, + onChange, + onKeydown, + onClick, + label + }; +} + +export type SelectionControl = ReturnType<typeof useSelectionControl>; diff --git a/node_modules/buetify/src/composables/shared/index.ts b/node_modules/buetify/src/composables/shared/index.ts new file mode 100755 index 0000000..ee62120 --- /dev/null +++ b/node_modules/buetify/src/composables/shared/index.ts @@ -0,0 +1,22 @@ +import { constant } from 'fp-ts/lib/function'; +import { PropType } from 'vue'; +import { Eq, fromEquals } from 'fp-ts/lib/Eq'; +import { IO } from 'fp-ts/lib/IO'; +import { deepEqual } from '../../utils/helpers'; + +export type Remove = IO<void>; + +const eqDeep: Eq<unknown> = fromEquals(deepEqual); + +export function getEqPropsDefinition<T>(eq: Eq<T> = eqDeep) { + return { + eq: { + type: Object as PropType<Eq<T>>, + default: constant(eq) + } + }; +} + +export interface EqProps<T> { + eq: Eq<T>; +} diff --git a/node_modules/buetify/src/composables/snackbar/index.ts b/node_modules/buetify/src/composables/snackbar/index.ts new file mode 100755 index 0000000..f5f7b39 --- /dev/null +++ b/node_modules/buetify/src/composables/snackbar/index.ts @@ -0,0 +1 @@ +export * from './useSnackbar'; diff --git a/node_modules/buetify/src/composables/snackbar/useSnackbar.ts b/node_modules/buetify/src/composables/snackbar/useSnackbar.ts new file mode 100755 index 0000000..27f2f87 --- /dev/null +++ b/node_modules/buetify/src/composables/snackbar/useSnackbar.ts @@ -0,0 +1,116 @@ +import { constant, constVoid, FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { ExtractPropTypes, h, PropType, shallowRef, VNode, Slots } from 'vue'; +import { ColorVariant, PositionVariant } from '../../types'; +import { constEmptyArray } from '../../utils/helpers'; +import { + DEFAULT_USE_NOTICE_PROPS, + NoticeController, + OpenNoticeOptions, + RenderNoticeOptions, + useNoticeController, + UseNoticePropsDefinition +} from '../noticeController'; + +export const SnackbarPropsDefinition = { + ...UseNoticePropsDefinition, + position: { + type: String as PropType<PositionVariant>, + default: 'is-bottom-right' as const + }, + actionText: { + type: String as PropType<string>, + default: 'OK' + }, + onAction: { + type: Function as PropType<IO<void>>, + default: constant(constVoid) + }, + variant: { + type: String as PropType<ColorVariant>, + default: 'is-success' as const + } +}; + +export interface SnackbarProps extends ExtractPropTypes<typeof SnackbarPropsDefinition> {} + +export interface RenderSnackbarOptions extends RenderNoticeOptions, OpenNoticeOptions { + onAction?: IO<void>; + actionText?: string; +} + +export interface OpenSnackbarOptions extends RenderSnackbarOptions {} + +const DEFAULT_SNACKBAR_PROPS: SnackbarProps = { + ...DEFAULT_USE_NOTICE_PROPS, + variant: SnackbarPropsDefinition.variant.default, + position: SnackbarPropsDefinition.position.default, + actionText: SnackbarPropsDefinition.actionText.default, + onAction: SnackbarPropsDefinition.onAction.default() +}; + +function generateMessage(slots: Slots, message?: string): VNode { + return message + ? h('p', { class: 'text', innerHTML: message }) + : h('p', { class: 'text' }, slots.message && slots.message()); +} + +function generateAction( + props: SnackbarProps, + slots: Slots, + noticeController: NoticeController, + options: RenderSnackbarOptions +): VNode { + return h( + 'div', + { + class: ['action', options.variant ?? props.variant, options.position ?? props.position] + }, + [ + h( + 'button', + { + class: 'button', + onClick: () => { + if (options.onAction) { + options.onAction(); + } else { + props.onAction(); + } + noticeController.close(); + } + }, + slots.action ? slots.action(noticeController) : options.actionText ?? props.actionText + ) + ] + ); +} + +function getGenerateSnackbar(props: SnackbarProps, slots: Slots, noticeController: NoticeController) { + return (options: RenderSnackbarOptions) => () => { + return [ + h( + 'article', + { + class: ['snackbar', options.position || props.position], + role: 'alert' + }, + [ + generateMessage(slots, options.message ?? props.message), + generateAction(props, slots, noticeController, options) + ] + ) + ]; + }; +} + +export interface SnackbarController extends NoticeController { + open: FunctionN<[OpenSnackbarOptions], void>; +} + +export function useSnackbar(props: SnackbarProps = DEFAULT_SNACKBAR_PROPS, slots: Slots = {}): SnackbarController { + const renderNotification = shallowRef(constant(constEmptyArray) as FunctionN<[RenderNoticeOptions], IO<VNode[]>>); + const controller = useNoticeController(props, renderNotification); + renderNotification.value = getGenerateSnackbar(props, slots, controller); + return controller; +} diff --git a/node_modules/buetify/src/composables/theme/index.ts b/node_modules/buetify/src/composables/theme/index.ts new file mode 100755 index 0000000..6a3a85f --- /dev/null +++ b/node_modules/buetify/src/composables/theme/index.ts @@ -0,0 +1,2 @@ +export * from './provideTheme'; +export * from './useTheme'; diff --git a/node_modules/buetify/src/composables/theme/provideTheme.ts b/node_modules/buetify/src/composables/theme/provideTheme.ts new file mode 100755 index 0000000..2fdcc54 --- /dev/null +++ b/node_modules/buetify/src/composables/theme/provideTheme.ts @@ -0,0 +1,65 @@ +import { getItem, setItem } from 'fp-ts-local-storage'; +import { constant, constVoid } from 'fp-ts/lib/function'; +import { getOrElse, none, Option, some } from 'fp-ts/lib/Option'; +import { provide, shallowRef, Ref, watch, ExtractPropTypes, PropType } from 'vue'; + +export type ThemeVariant = 'dark' | 'light'; + +export interface ThemeInjection { + isThemeable: Ref<boolean>; + currentTheme: Ref<Option<ThemeVariant>>; // allows for easier defaults in injected component + setTheme: (theme: ThemeVariant) => void; +} + +export const DEFAULT_THEME_INJECTION: ThemeInjection = { + currentTheme: shallowRef(none), + isThemeable: shallowRef(false), + setTheme: constVoid +}; + +export const THEME_INJECTION_SYMBOL = Symbol('theme'); + +const persistentTheme = getOrElse<ThemeVariant>(constant<ThemeVariant>('dark'))( + getItem('theme')() as Option<ThemeVariant> +); + +export const ProvideThemePropDefinitions = { + isThemeable: { + type: Boolean as PropType<boolean>, + default: true + }, + persistTheme: { + type: Boolean as PropType<boolean>, + default: true + } +}; + +export type ProvideThemeProps = ExtractPropTypes<typeof ProvideThemePropDefinitions>; + +export function provideTheme(props: ProvideThemeProps) { + const isThemeable = shallowRef(props.isThemeable); + watch( + () => props.isThemeable, + themeable => { + isThemeable.value = themeable; + } + ); + const currentTheme = shallowRef(some(persistentTheme)); + function setTheme(newTheme: ThemeVariant) { + currentTheme.value = some(newTheme); + if (props.persistTheme) { + setItem('theme', newTheme)(); + } + } + const injection: ThemeInjection = { + isThemeable, + currentTheme, + setTheme + }; + provide(THEME_INJECTION_SYMBOL, injection); + return { + setTheme, + currentTheme, + isThemeable + }; +} diff --git a/node_modules/buetify/src/composables/theme/useTheme.ts b/node_modules/buetify/src/composables/theme/useTheme.ts new file mode 100755 index 0000000..d0e9625 --- /dev/null +++ b/node_modules/buetify/src/composables/theme/useTheme.ts @@ -0,0 +1,60 @@ +import { isSome } from 'fp-ts/lib/Option'; +import { PropType, inject, ExtractPropTypes, computed } from 'vue'; +import { constant } from 'fp-ts/lib/function'; +import { ThemeColorMap } from '../../types/ThemeColorMap'; +import { DEFAULT_THEME_INJECTION, THEME_INJECTION_SYMBOL, ThemeInjection } from './provideTheme'; + +export const DEFAULT_THEME_COLOR_MAP: ThemeColorMap = { + dark: 'is-black-ter', + light: '' +}; + +export function useThemePropsDefinition(themeMap: ThemeColorMap, defaultIsThemeable = true) { + return { + themeMap: { + type: Object as PropType<ThemeColorMap>, + required: false, + default: constant(themeMap) + }, + isThemeable: { + type: Boolean as PropType<boolean>, + required: false, + default: defaultIsThemeable + } + }; +} + +export type ThemeProps = ExtractPropTypes<ReturnType<typeof useThemePropsDefinition>>; + +export type FunctionalThemeProps = Partial<ThemeProps>; + +export const DefaultThemePropsDefinition = useThemePropsDefinition(DEFAULT_THEME_COLOR_MAP, true); + +export function getThemeClasses(themeMap: ThemeColorMap, themeInjection: ThemeInjection): string[] { + if (themeInjection.isThemeable.value && isSome(themeInjection.currentTheme.value)) { + const classes = themeMap[themeInjection.currentTheme.value.value]; + return Array.isArray(classes) ? classes : [classes]; + } else { + return []; + } +} + +export function useTheme(props?: ThemeProps) { + const themeInjection = inject(THEME_INJECTION_SYMBOL, DEFAULT_THEME_INJECTION); + const themeClasses = computed(() => (props ? getThemeClasses(props.themeMap, themeInjection) : [])); + + return { + currentTheme: themeInjection.currentTheme, + setTheme: themeInjection.setTheme, + toggleTheme: () => { + if (isSome(themeInjection.currentTheme.value)) { + if (themeInjection.currentTheme.value.value === 'light') { + themeInjection.setTheme('dark'); + } else { + themeInjection.setTheme('light'); + } + } + }, + themeClasses + }; +} diff --git a/node_modules/buetify/src/composables/toast/index.ts b/node_modules/buetify/src/composables/toast/index.ts new file mode 100755 index 0000000..44a723a --- /dev/null +++ b/node_modules/buetify/src/composables/toast/index.ts @@ -0,0 +1 @@ +export * from './useToast'; diff --git a/node_modules/buetify/src/composables/toast/useToast.ts b/node_modules/buetify/src/composables/toast/useToast.ts new file mode 100755 index 0000000..3b33e27 --- /dev/null +++ b/node_modules/buetify/src/composables/toast/useToast.ts @@ -0,0 +1,34 @@ +import { constant, FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { h, shallowRef, VNode, Slots } from 'vue'; +import { constEmptyArray } from '../../utils/helpers'; +import { + DEFAULT_USE_NOTICE_PROPS, + RenderNoticeOptions, + useNoticeController, + UseNoticeProps +} from '../noticeController'; + +export function useToast(props: UseNoticeProps = DEFAULT_USE_NOTICE_PROPS, slots: Slots = {}) { + const renderNotification = shallowRef(constant(constEmptyArray) as FunctionN<[RenderNoticeOptions], IO<VNode[]>>); + const noticeController = useNoticeController(props, renderNotification); + renderNotification.value = options => () => { + return [ + slots.message + ? h( + 'div', + { + class: ['toast', options.variant ?? props.variant, options.position ?? props.position], + role: 'alert' + }, + slots.message && slots.message() + ) + : h('div', { + class: ['toast', options.variant ?? props.variant, options.position ?? props.position], + role: 'alert', + innerHTML: options.message ?? props.message + }) + ]; + }; + return noticeController; +} diff --git a/node_modules/buetify/src/composables/toggle/index.ts b/node_modules/buetify/src/composables/toggle/index.ts new file mode 100755 index 0000000..cf7b23d --- /dev/null +++ b/node_modules/buetify/src/composables/toggle/index.ts @@ -0,0 +1 @@ +export * from './useToggle'; diff --git a/node_modules/buetify/src/composables/toggle/useToggle.ts b/node_modules/buetify/src/composables/toggle/useToggle.ts new file mode 100755 index 0000000..4ca6c52 --- /dev/null +++ b/node_modules/buetify/src/composables/toggle/useToggle.ts @@ -0,0 +1,158 @@ +import { FunctionN } from 'fp-ts/lib/function'; +import { IO } from 'fp-ts/lib/IO'; +import { watch, computed, Ref, PropType, shallowRef, toRef } from 'vue'; +import { isEnterEvent } from '../../utils/eventHelpers'; + +export function getUseTogglePropsDefinition<K extends string>( + statusName: K, + defaultStatus = false +): UseTogglePropsDefinition<K> { + return { + [statusName]: { + type: Boolean, + default: defaultStatus + }, + [`onUpdate:${statusName}`]: { + type: Function as PropType<FunctionN<[boolean], void>>, + required: false + }, + hasPopup: { + type: Boolean, + default: false + }, + onToggle: { + type: Function as PropType<FunctionN<[boolean], void>>, + required: false + }, + onSetOn: { + type: Function as PropType<IO<void>>, + required: false + }, + onSetOff: { + type: Function as PropType<IO<void>>, + required: false + } + } as UseTogglePropsDefinition<K>; +} + +export type UseTogglePropsDefinition<K extends string> = { + onToggle: { + type: PropType<FunctionN<[boolean], void>>; + required: false; + }; + onSetOn: { + type: PropType<IO<void>>; + required: false; + }; + onSetOff: { + type: PropType<IO<void>>; + required: false; + }; +} & Record< + K, + { + type: PropType<boolean>; + default: boolean; + } +> & + Record< + 'hasPopup', + { + type: PropType<boolean>; + default: boolean; + } + >; + +export type UseToggleProps<K extends string> = Record<K, boolean> & Record<'hasPopup', boolean>; + +export function getToggleAttrs(status: Ref<boolean>, hasPopup: Ref<boolean>) { + return computed(() => ({ + tabindex: 0, + role: 'button', + type: 'button', + 'aria-pressed': status.value, + 'aria-expanded': status.value, + ...(hasPopup.value ? { 'aria-haspopup': true } : {}) + })); +} + +export type ToggleAttrs = ReturnType<typeof getToggleAttrs> extends Ref<infer A> ? A : never; + +function getListeners(toggle: IO<void>) { + return { + onClick: toggle, + onKeydown: (e: KeyboardEvent) => { + if (isEnterEvent(e)) { + e.preventDefault(); + toggle(); + } + } + }; +} + +export type ToggleListeners = ReturnType<typeof getListeners>; + +export function useToggle<K extends string>( + props: { onToggle?: FunctionN<[boolean], void>; onSetOn?: IO<void>; onSetOff?: IO<void> } & Record<K, boolean> & { + hasPopup: boolean; + }, + statusName: K +) { + const internalStatus = shallowRef(props[statusName] as boolean); + const value = computed({ + get() { + return internalStatus.value; + }, + set(val: boolean) { + const cValue = internalStatus.value; + if (cValue !== val && props.onToggle) { + props.onToggle(val); + } + if (val && props.onSetOn) { + props.onSetOn(); + } + if (!val && props.onSetOff) { + props.onSetOff(); + } + internalStatus.value = val; + const updateModel = (props as any)[`onUpdate:${statusName}`]; //eslint-disable-line + if (updateModel) { + updateModel(val); + } + } + }); + watch( + () => props[statusName], + status => { + internalStatus.value = status; + } + ); + + function setOn(e?: Event) { + e && e?.stopPropagation(); + value.value = true; + } + function setOff(e?: Event) { + e && e?.stopPropagation(); + value.value = false; + } + function toggle(e?: Event) { + e && e?.stopPropagation(); + value.value = !value.value; + } + + const attrs = getToggleAttrs(value, toRef(props, 'hasPopup')); + const listeners = getListeners(toggle); + return { + isOn: value, + isOff: computed(() => internalStatus.value === false), + attrs, + listeners, + props: computed(() => ({ ...attrs.value, ...listeners })), + setOn, + setOff, + toggle + }; +} + +export type Toggle = ReturnType<typeof useToggle>; diff --git a/node_modules/buetify/src/composables/transition/index.ts b/node_modules/buetify/src/composables/transition/index.ts new file mode 100755 index 0000000..7b93884 --- /dev/null +++ b/node_modules/buetify/src/composables/transition/index.ts @@ -0,0 +1 @@ +export * from './useTransition'; diff --git a/node_modules/buetify/src/composables/transition/useTransition.ts b/node_modules/buetify/src/composables/transition/useTransition.ts new file mode 100755 index 0000000..c79bdd5 --- /dev/null +++ b/node_modules/buetify/src/composables/transition/useTransition.ts @@ -0,0 +1,25 @@ +import { constant } from 'fp-ts/lib/function'; +import { computed, PropType, ExtractPropTypes } from 'vue'; +import { Transition, TransitionClasses } from '../../types/Transition'; +import { isString } from '../../utils/helpers'; + +export function getUseTransitionPropsDefinition(transition: Transition) { + return { + transition: { + type: [Object, String] as PropType<Transition>, + default: constant(transition) + } + }; +} + +export type UserTransitionProps = ExtractPropTypes<ReturnType<typeof getUseTransitionPropsDefinition>>; + +export const FadeTransitionPropsDefinition = getUseTransitionPropsDefinition('fade'); + +export function formatTransition(transition: Transition): TransitionClasses { + return isString(transition) ? { name: transition, css: true } : transition; +} + +export function useTransition(props: UserTransitionProps) { + return computed(() => formatTransition(props.transition)); +} diff --git a/node_modules/buetify/src/composables/validation/index.ts b/node_modules/buetify/src/composables/validation/index.ts new file mode 100755 index 0000000..85b20b3 --- /dev/null +++ b/node_modules/buetify/src/composables/validation/index.ts @@ -0,0 +1 @@ +export * from './useValidation'; diff --git a/node_modules/buetify/src/composables/validation/useValidation.ts b/node_modules/buetify/src/composables/validation/useValidation.ts new file mode 100755 index 0000000..f5839db --- /dev/null +++ b/node_modules/buetify/src/composables/validation/useValidation.ts @@ -0,0 +1,58 @@ +import { constant, constVoid, FunctionN } from 'fp-ts/lib/function'; +import { Ref, ExtractPropTypes, shallowRef, PropType, watch } from 'vue'; +import { isString } from '../../utils/helpers'; +import { useDisable, UseDisablePropsDefinition } from '../disable'; +import { useFieldData } from '../fieldData'; + +export const UseValidationPropsDefinition = { + useNativeValidation: { + type: Boolean as PropType<boolean>, + default: true + }, + isValid: { + type: Boolean as PropType<boolean>, + default: true + }, + 'onUpdate:isValid': { + type: Function as PropType<FunctionN<[boolean], void>>, + default: constant(constVoid) + }, + ...UseDisablePropsDefinition +}; + +export type UseValidationProps = ExtractPropTypes<typeof UseValidationPropsDefinition>; + +function isHtmlInputElement(el: HTMLElement): el is HTMLInputElement { + const newEl = (el as unknown) as HTMLInputElement; + return el && typeof newEl.checkValidity === 'function' && isString(newEl.validationMessage); +} + +export function useValidation(props: UseValidationProps, ref: Ref<HTMLElement>) { + const { setters } = useFieldData(); + const isDisabled = useDisable(props); + const isValid = shallowRef(props.isValid); + watch(isValid, newValue => { + props['onUpdate:isValid'](newValue); + }); + function validate() { + if (!isDisabled.value && props.useNativeValidation) { + if (isHtmlInputElement(ref.value)) { + const el = ref.value; + if (!el.checkValidity()) { + setters.onNewVariant('is-danger'); + setters.onNewMessage(el.validationMessage); + isValid.value = false; + } else { + setters.onNewVariant('is-success'); + setters.onNewMessage(''); + isValid.value = true; + } + } + } + } + return { + isDisabled, + isValid, + validate + }; +} diff --git a/node_modules/buetify/src/composables/windowSize/index.ts b/node_modules/buetify/src/composables/windowSize/index.ts new file mode 100755 index 0000000..8e30911 --- /dev/null +++ b/node_modules/buetify/src/composables/windowSize/index.ts @@ -0,0 +1,2 @@ +export * from './provideWindowSize'; +export * from './useWindowSize'; diff --git a/node_modules/buetify/src/composables/windowSize/provideWindowSize.ts b/node_modules/buetify/src/composables/windowSize/provideWindowSize.ts new file mode 100755 index 0000000..e938165 --- /dev/null +++ b/node_modules/buetify/src/composables/windowSize/provideWindowSize.ts @@ -0,0 +1,98 @@ +import { constant } from 'fp-ts/lib/function'; +import { none, Option, some } from 'fp-ts/lib/Option'; +import debounce from 'lodash.debounce'; +import { + watchEffect, + provide, + shallowRef, + Ref, + PropType, + ExtractPropTypes, + computed, + onMounted, + onUnmounted +} from 'vue'; + +export interface WindowSize { + windowWidth: number; + isMobile: boolean; + isTablet: boolean; + isTouch: boolean; + isDesktop: boolean; + isWidescreen: boolean; + isFullHD: boolean; +} + +export interface WindowSizeInjection { + windowSize: Ref<Option<WindowSize>>; +} + +export const DEFAULT_WINDOW_SIZE_INJECTION: WindowSizeInjection = { + windowSize: shallowRef(none) +}; + +export const DEFAULT_BREAK_POINTS = shallowRef({ + mobile: 768, + tablet: 1023, + desktop: 1215, + widescreen: 1407, + fullHD: 1408 +}); + +export type BreakPoints = typeof DEFAULT_BREAK_POINTS.value; + +export const WINDOW_SIZE_SYMBOL = Symbol('window-size'); + +export const ProvideWindowSizePropsDefinition = { + breakPoints: { + type: Object as PropType<BreakPoints>, + required: false, + default: constant(DEFAULT_BREAK_POINTS.value) + } +}; + +export type ProvideWindowSizeProps = ExtractPropTypes<typeof ProvideWindowSizePropsDefinition>; + +export function getWindowSize(): Ref<WindowSize> { + const windowWidth = shallowRef(window.innerWidth); + + const resizeHandler = debounce(() => { + windowWidth.value = window.innerWidth; + }, 250); + + onMounted(() => window.addEventListener('resize', resizeHandler, { passive: true })); + onUnmounted(() => window.removeEventListener('resize', resizeHandler)); + + return computed(() => { + const breakPoints = DEFAULT_BREAK_POINTS.value; + const innerWidth = windowWidth.value; + const isMobile = innerWidth <= breakPoints.mobile; + const isTablet = innerWidth <= breakPoints.tablet && innerWidth > breakPoints.mobile; + return { + windowWidth: innerWidth, + isMobile, + isTablet, + isTouch: isMobile || isTablet, + isDesktop: innerWidth <= breakPoints.desktop && innerWidth > breakPoints.tablet, + isWidescreen: innerWidth <= breakPoints.widescreen && innerWidth > breakPoints.desktop, + isFullHD: innerWidth >= breakPoints.fullHD + }; + }); +} + +export function provideWindowSize(props: ProvideWindowSizeProps) { + watchEffect(() => { + DEFAULT_BREAK_POINTS.value = props.breakPoints; + }); + const windowSize = getWindowSize(); + + const injection: WindowSizeInjection = { + windowSize: computed(() => some(windowSize.value)) + }; + + provide(WINDOW_SIZE_SYMBOL, injection); + + return { + windowSize + }; +} diff --git a/node_modules/buetify/src/composables/windowSize/useWindowSize.ts b/node_modules/buetify/src/composables/windowSize/useWindowSize.ts new file mode 100755 index 0000000..c7f9531 --- /dev/null +++ b/node_modules/buetify/src/composables/windowSize/useWindowSize.ts @@ -0,0 +1,10 @@ +import { isSome, none } from 'fp-ts/lib/Option'; +import { shallowRef, inject, computed } from 'vue'; +import { getWindowSize, WINDOW_SIZE_SYMBOL, WindowSizeInjection } from './provideWindowSize'; + +export function useWindowSize() { + const injection = inject(WINDOW_SIZE_SYMBOL, { windowSize: shallowRef(none) } as WindowSizeInjection); + return computed(() => + isSome(injection.windowSize.value) ? injection.windowSize.value.value : getWindowSize().value + ); +} diff --git a/node_modules/buetify/src/directives/clickOutside/index.ts b/node_modules/buetify/src/directives/clickOutside/index.ts new file mode 100755 index 0000000..d2cb211 --- /dev/null +++ b/node_modules/buetify/src/directives/clickOutside/index.ts @@ -0,0 +1,83 @@ +import { Directive, DirectiveBinding } from 'vue'; + +interface HTMLElement { + _clickOutside?: EventListenerOrEventListenerObject; +} + +interface ClickOutsideBindingArgs { + handler: (e: Event) => void; + closeConditional?: (e: Event) => boolean; + include?: () => HTMLElement[]; +} + +interface ClickOutsideDirectiveBinding extends DirectiveBinding { + value: ((e: Event) => void) | ClickOutsideBindingArgs; +} + +function defaultConditional() { + return true; +} + +function directive(e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): void { + const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler; + + const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional; + + // The include element callbacks below can be expensive + // so we should avoid calling them when we're not active. + // Explicitly check for false to allow fallback compatibility + // with non-toggleable components + if (!e || isActive(e) === false) return; + + // If click was triggered programmaticaly (domEl.click()) then + // it shouldn't be treated as click-outside + // Chrome/Firefox support isTrusted property + // IE/Edge support pointerType property (empty if not triggered + // by pointing device) + if (('isTrusted' in e && !e.isTrusted) || ('pointerType' in e && !e.pointerType)) return; + + // Check if additional elements were passed to be included in check + // (click must be outside all included elements, if any) + const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))(); + // Add the root element for the component this directive was defined on + elements.push(el); + + // Check if it's a click outside our elements, and then if our callback returns true. + // Non-toggleable components should take action in their callback and return falsy. + // Toggleable can return true if it wants to deactivate. + // Note that, because we're in the capture phase, this callback will occur before + // the bubbling click event on any outside elements. + + // eslint-disable-next-line + !elements.some((el: any) => el.contains(e.target as Node)) && + setTimeout(() => { + isActive(e) && handler && handler(e); + }, 0); +} + +export const ClickOutside: Directive = { + // .b-app may not be found + // if using bind, inserted makes + // sure that the root element is + // available, iOS does not support + // clicks on body + mounted(el: HTMLElement, binding: ClickOutsideDirectiveBinding) { + const onClick = (e: Event) => directive(e as PointerEvent, el, binding); + // iOS does not recognize click events on document + // or body, this is the entire purpose of the v-app + // component and [data-app], stop removing this + const app = document.querySelector('.b-app') || document.body; // This is only for unit tests + app.addEventListener('click', onClick, true); + el._clickOutside = onClick; + }, + + unmounted(el: HTMLElement) { + if (!el._clickOutside) return; + + const app = document.querySelector('.b-app') || document.body; // This is only for unit tests + app && app.removeEventListener('click', el._clickOutside, true); + delete el._clickOutside; + } +}; + +export default ClickOutside; diff --git a/node_modules/buetify/src/directives/index.ts b/node_modules/buetify/src/directives/index.ts new file mode 100755 index 0000000..1922eb8 --- /dev/null +++ b/node_modules/buetify/src/directives/index.ts @@ -0,0 +1 @@ +export * from './clickOutside'; diff --git a/node_modules/buetify/src/index.ts b/node_modules/buetify/src/index.ts new file mode 100755 index 0000000..e5b9498 --- /dev/null +++ b/node_modules/buetify/src/index.ts @@ -0,0 +1,5 @@ +export * from './components'; +export * from './composables'; +export * from './directives'; +export * from './transitions'; +export * from './types'; diff --git a/node_modules/buetify/src/sass/buetify.sass b/node_modules/buetify/src/sass/buetify.sass new file mode 100755 index 0000000..fdacc9c --- /dev/null +++ b/node_modules/buetify/src/sass/buetify.sass @@ -0,0 +1 @@ +@import './mini-reset' diff --git a/node_modules/buetify/src/sass/derived-variables.sass b/node_modules/buetify/src/sass/derived-variables.sass new file mode 100755 index 0000000..b9f131d --- /dev/null +++ b/node_modules/buetify/src/sass/derived-variables.sass @@ -0,0 +1,30 @@ +$body-background-color: $scheme-main !default +$body-size: 16px !default +$body-min-width: 300px !default +$body-rendering: optimizeLegibility !default +$body-family: $family-primary !default +$body-overflow-x: hidden !default +$body-overflow-y: scroll !default + +$body-color: $text !default +$body-font-size: 1em !default +$body-weight: $weight-normal !default +$body-line-height: 1.5 !default + +$code-family: $family-code !default +$code-padding: 0.25em 0.5em 0.25em !default +$code-weight: normal !default +$code-size: 0.875em !default + +$small-font-size: 0.875em !default + +$hr-background-color: $background !default +$hr-height: 2px !default +$hr-margin: 1.5rem 0 !default + +$strong-color: $text-strong !default +$strong-weight: $weight-bold !default + +$pre-font-size: 0.875em !default +$pre-padding: 1.25rem 1.5rem !default +$pre-code-font-size: 1em !default diff --git a/node_modules/buetify/src/sass/helpers/alignment-helpers.sass b/node_modules/buetify/src/sass/helpers/alignment-helpers.sass new file mode 100755 index 0000000..7f4ad81 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/alignment-helpers.sass @@ -0,0 +1,7 @@ +$vertical-alignments: top center bottom + +@each $alignment in $vertical-alignments + .vertical-align-#{$alignment} + vertical-align: $alignment + + diff --git a/node_modules/buetify/src/sass/helpers/all.sass b/node_modules/buetify/src/sass/helpers/all.sass new file mode 100755 index 0000000..be2876e --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/all.sass @@ -0,0 +1,12 @@ +@import './flex-helpers' +@import './padding-margin-helpers' +@import './height-width-helpers' +@import './cursor-helpers' +@import './background-color-helpers' +@import './typography-helpers' +@import './border-helpers' +@import './position-helpers' +@import './alignment-helpers' +@import './overflow-helpers' +@import './functions' +@import './animations' diff --git a/node_modules/buetify/src/sass/helpers/animations.sass b/node_modules/buetify/src/sass/helpers/animations.sass new file mode 100755 index 0000000..e15f699 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/animations.sass @@ -0,0 +1,123 @@ +// Fade out +@keyframes fadeOut + from + opacity: 1 + to + opacity: 0 + +.fadeOut + animation-name: fadeOut + +@keyframes fadeOutDown + from + opacity: 1 + + to + opacity: 0 + transform: translate3d(0, 100%, 0) + +.fadeOutDown + animation-name: fadeOutDown + +@keyframes fadeOutUp + from + opacity: 1 + to + opacity: 0 + transform: translate3d(0, -100%, 0) + +.fadeOutUp + animation-name: fadeOutUp + +@keyframes fadeIn + from + opacity: 0 + to + opacity: 1 + +.fadeIn + animation-name: fadeIn + +@keyframes fadeInDown + from + opacity: 0 + transform: translate3d(0, -100%, 0) + to + opacity: 1 + transform: none + +.fadeInDown + animation-name: fadeInDown + +@keyframes fadeInUp + from + opacity: 0 + transform: translate3d(0, 100%, 0) + to + opacity: 1 + transform: none + +.fadeInUp + animation-name: fadeInUp + +.fade-enter-active, +.fade-leave-active + transition: opacity $speed-slow $easing + +.fade-enter-from, +.fade-leave-to + opacity: 0 + +.zoom-in-enter-active, +.zoom-in-leave-active + transition: opacity $speed-slow $easing + .animation-content, + .animation-content + transition: transform $speed-slow $easing + +.zoom-in-enter-from, +.zoom-in-leave-active + opacity: 0 + .animation-content, + .animation-content + transform: scale(0.95) + +.zoom-out-enter-active, +.zoom-out-leave-active + transition: opacity $speed-slow $easing + .animation-content, + .animation-content + transition: transform $speed-slow $easing + +.zoom-out-enter-from, +.zoom-out-leave-active + opacity: 0 + .animation-content, + .animation-content + transform: scale(1.05) + +.slide-next-enter-active, +.slide-next-leave-active, +.slide-prev-enter-active, +.slide-prev-leave-active + overflow: hidden + transition: transform $speed-slower cubic-bezier(0.785, 0.135, 0.15, 0.86) + +.slide-prev-leave-to, +.slide-next-enter-from + transform: translate3d(-100%, 0, 0) + position: absolute + width: 100% + +.slide-prev-enter-from, +.slide-next-leave-to + transform: translate3d(100%, 0, 0) + position: absolute + width: 100% + +.expand-vertical-transition + transition: height $speed-slow ease-out + +.expand-horizontal-transition + transition: width $speed-slow ease-out + diff --git a/node_modules/buetify/src/sass/helpers/background-color-helpers.sass b/node_modules/buetify/src/sass/helpers/background-color-helpers.sass new file mode 100755 index 0000000..b150f1c --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/background-color-helpers.sass @@ -0,0 +1,4 @@ +@each $name, $pair in $colors + $color: nth($pair, 1) + .has-background-#{$name} + background-color: $color diff --git a/node_modules/buetify/src/sass/helpers/badge.sass b/node_modules/buetify/src/sass/helpers/badge.sass new file mode 100755 index 0000000..9b8074a --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/badge.sass @@ -0,0 +1,127 @@ +$badge-border-size: 1px !default +$badge-padding: .1rem .25rem !default +$badge-border-radius: 1rem !default +$badge-size-small: .75rem !default +$badge-size-normal: 1rem !default +$badge-size-medium: 1.2rem !default +$badge-size-large: 1.4rem !default +$badge-z-index: 99 !default + +=badge-size($size) + &::after + z-index: 0 + min-width: $size + min-height: $size + font-size: $size * .75 + top: 0 + right: 0 + bottom: auto + left: auto + transform: translate(50%, -50%) + &.has-badge-left + &::after + top: 0 + right: auto + bottom: auto + left: 0 + transform: translate(-50%, -50%) + &.has-badge-bottom + &::after + top: auto + right: 0 + bottom: 0 + left: auto + transform: translate(50%, 50%) + &.has-badge-bottom-left + &::after + top: auto + right: auto + bottom: 0 + left: 0 + transform: translate(-50%, 50%) + &.has-badge-inline + margin-right: $size * 1.5 + &::after + top: 50% + right: -10% + &.has-badge-left + margin-right: inherit + margin-left: $size * 1.5 + top: 50% + left: 10% + &.has-badge-bottom + margin-right: $size * 1.5 + top: 50% + right: -10% + &.has-badge-bottom-left + margin-right: inherit + margin-left: $size * 1.5 + top: 50% + left: 10% + +=badge + position: relative + &::after + display: inline-block + position: absolute + margin: 0 + padding: $badge-padding + text-align: center + white-space: nowrap + line-height: 1 + background: $primary + background-clip: padding-box + border-radius: 0 + box-shadow: 0 0 0 $badge-border-size $white + color: $white + content: attr(data-badge) + z-index: $badge-z-index + &[data-badge=""] + &::after + // content: none + vertical-align: inherit + + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.has-badge-#{$name} + &::after + background: $color + color: $color-invert + + &.has-badge-outlined + &::after + background-color: $white + box-shadow: none + border: $badge-border-size solid $primary + color: $primary + @each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.has-badge-#{$name} + &::after + background: $white + box-shadow: none + border: $badge-border-size solid $color + color: $color + &.has-badge-rounded + &::after + border-radius: $radius-rounded + + +badge-size($badge-size-normal) + + &.has-badge-small + +badge-size($badge-size-small) + &.has-badge-medium + +badge-size($badge-size-medium) + &.has-badge-large + +badge-size($badge-size-large) + + // IE FIX: on IE badge was cropped + &.button + &:not(.is-clipped) + &::after + overflow: visible + +[data-badge] + +badge \ No newline at end of file diff --git a/node_modules/buetify/src/sass/helpers/border-helpers.sass b/node_modules/buetify/src/sass/helpers/border-helpers.sass new file mode 100755 index 0000000..f05f6d8 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/border-helpers.sass @@ -0,0 +1,41 @@ +$border-sides: 'top' 'left' 'right' 'bottom' + +.is-borderless + border: none !important + ++mobile + .is-borderless-mobile + border: none !important + ++tablet + .is-borderless-tablet + border: none !important + ++touch + .is-borderless-touch + border: none !important ++desktop + .is-borderless-desktop + border: none !important ++widescreen + .is-borderless-widescreen + border: none !important ++fullhd + .is-borderless-fullhd + border: none !important + +.has-border + border: 1px solid $border + border-radius: $radius + +@each $border-side in $border-sides + .has-border-#{$border-side} + border-#{$border-side}: 1px solid $border + +@each $name, $pair in $colors + $color: nth($pair, 1) + .has-border-#{$name} + border: solid 1px $color + @each $border-side in $border-sides + .has-border-#{$border-side}-#{$name} + border-#{$border-side}: solid 1px $color diff --git a/node_modules/buetify/src/sass/helpers/cursor-helpers.sass b/node_modules/buetify/src/sass/helpers/cursor-helpers.sass new file mode 100755 index 0000000..b3b6cc1 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/cursor-helpers.sass @@ -0,0 +1,8 @@ +.has-cursor-grab + cursor: grab + +.has-cursor-pointer + cursor: pointer + +.has-cursor-move + cursor: move diff --git a/node_modules/buetify/src/sass/helpers/flex-helpers.sass b/node_modules/buetify/src/sass/helpers/flex-helpers.sass new file mode 100755 index 0000000..8bf88c2 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/flex-helpers.sass @@ -0,0 +1,101 @@ +$flex-grow-levels: 0 1 2 3 4 5 +$flex-align-items-alignments: flex-start flex-end center baseline stretche +$flex-justify-content-alignments: flex-start flex-end center space-between space-around + +.flex-direction-column + flex-direction: column + +.flex-direction-row + flex-direction: row + +.flex-wrap-wrap + flex-wrap: wrap + +.flex-wrap-wrap-reverse + flex-wrap: wrap-reverse + +.flex-wrap-no-wrap + flex-wrap: nowrap + +.align-content-stretch + align-content: stretch + +@each $level in $flex-grow-levels + .flex-grow-#{$level} + flex-grow: $level + .flex-shrink-#{$level} + flex-shrink: $level + +@each $alignment in $flex-align-items-alignments + .align-items-#{$alignment} + align-items: $alignment + .align-self-#{$alignment} + align-self: $alignment + +mobile + .align-items-#{$alignment}-mobile + align-items: $alignment + .align-self-#{$alignment}-mobile + align-self: $alignment + +tablet + .align-items-#{$alignment}-tablet + align-items: $alignment + .align-self-#{$alignment}-tablet + align-self: $alignment + +touch + .align-items-#{$alignment}-touch + align-items: $alignment + .align-self-#{$alignment}-touch + align-self: $alignment + +desktop + .align-items-#{$alignment}-desktop + align-items: $alignment + .align-self-#{$alignment}-desktop + align-self: $alignment + +widescreen + .align-items-#{$alignment}-widescreen + align-items: $alignment + .align-self-#{$alignment}-widescreen + align-self: $alignment + +fullhd + .align-items-#{$alignment}-fullhd + align-items: $alignment + .align-self-#{$alignment}-fullhd + align-self: $alignment + + +@each $alignment in $flex-justify-content-alignments + .justify-content-#{$alignment} + justify-content: $alignment + .align-content-#{$alignment} + align-content: $alignment + +mobile + .justify-content-#{$alignment}-mobile + justify-content: $alignment + .align-content-#{$alignment}-mobile + align-content: $alignment + +tablet + .justify-content-#{$alignment}-tablet + justify-content: $alignment + .align-content-#{$alignment}-tablet + align-content: $alignment + +touch + .justify-content-#{$alignment}-touch + justify-content: $alignment + .align-content-#{$alignment}-touch + align-content: $alignment + +desktop + .justify-content-#{$alignment}-desktop + justify-content: $alignment + .align-content-#{$alignment}-desktop + align-content: $alignment + +widescreen + .justify-content-#{$alignment}-widescreen + justify-content: $alignment + .align-content-#{$alignment}-widescreen + align-content: $alignment + +fullhd + .justify-content-#{$alignment}-fullhd + justify-content: $alignment + .align-content-#{$alignment}-fullhd + align-content: $alignment + diff --git a/node_modules/buetify/src/sass/helpers/functions.sass b/node_modules/buetify/src/sass/helpers/functions.sass new file mode 100755 index 0000000..9416585 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/functions.sass @@ -0,0 +1,65 @@ +// Helper function to replace characters in a string +@function str-replace($string, $search, $replace: '') + $index: str-index($string, $search) + @return if($index, str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace), $string) + + +// Encode svg function by http://codepen.io/jakob-e/pen/doMoML +@function svg-encode($svg) + // Chunk up string in order to avoid "stack level too deep" error + $encoded: '' + $slice: 2000 + $index: 0 + $loops: ceil(str-length($svg) / $slice) + @for $i from 1 through $loops + $chunk: str-slice($svg, $index, $index + $slice - 1) + // Encode + $chunk: str-replace($chunk, '"', "'") + $chunk: str-replace($chunk, '%', '%25') + $chunk: str-replace($chunk, '#', '%23') + $chunk: str-replace($chunk, '{', '%7B') + $chunk: str-replace($chunk, '}', '%7D') + $chunk: str-replace($chunk, '<', '%3C') + $chunk: str-replace($chunk, '>', '%3E') + + $encoded: #{$encoded}#{$chunk} + $index: $index + $slice + + @return 'data:image/svg+xml,#{$encoded}' + + +@function checkmark($color) + $start: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1">' + $content: '<path style="fill:#{$color}" d="M 0.04038059,0.6267767 0.14644661,0.52071068 0.42928932,0.80355339 0.3232233,0.90961941 z M 0.21715729,0.80355339 0.85355339,0.16715729 0.95961941,0.2732233 0.3232233,0.90961941 z"></path>' + $end: '</svg>' + + @return svg-encode('#{$start}#{$content}#{$end}') + + +@function indeterminate($color) + $start: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1">' + $content: '<rect style="fill:#{$color}" width="0.7" height="0.2" x=".15" y=".4"></rect>' + $end: '</svg>' + + @return svg-encode('#{$start}#{$content}#{$end}') + + +@function hasContrast($foreground, $background) + $r: (max(red($foreground), red($background))) - (min(red($foreground), red($background))) + $g: (max(green($foreground), green($background))) - (min(green($foreground), green($background))) + $b: (max(blue($foreground), blue($background))) - (min(blue($foreground), blue($background))) + $sum-rgb: $r + $g + $b + + @if $sum-rgb < 500 + @return false + @else + @return true + + +@function getContrastedColor($color, $background) + @if (hasContrast($color, $background)) + @return $color + @else + @return findColorInvert($background) + + diff --git a/node_modules/buetify/src/sass/helpers/height-width-helpers.sass b/node_modules/buetify/src/sass/helpers/height-width-helpers.sass new file mode 100755 index 0000000..f348947 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/height-width-helpers.sass @@ -0,0 +1,54 @@ +.height-100-vh + height: 100vh +.width-100-vw + width: 100vw +.min-height-100-percent + min-height: 100% +.max-height-100-percent + max-height: 100% +.min-height-100-vh + min-height: 100vh + +.is-fullheight + height: 100% +.is-fullwidth + width: 100% + ++mobile + .is-fullheight-mobile + height: 100% + .is-fullwidth-mobile + width: 100% + ++tablet + .is-fullheight-tablet + height: 100% + .is-fullwidth-tablet + width: 100% + ++touch + .is-fullheight-touch + height: 100% + .is-fullwidth-touch + width: 100% + ++desktop + .is-fullheight-desktop + height: 100% + .is-fullwidth-desktop + width: 100% + ++widescreen + .is-fullheight-widescreen + height: 100% + .is-fullwidth-widescreen + width: 100% + ++fullhd + .is-fullheight-fullhd + height: 100% + .is-fullwidth-fullhd + width: 100% + + + diff --git a/node_modules/buetify/src/sass/helpers/mixins.sass b/node_modules/buetify/src/sass/helpers/mixins.sass new file mode 100755 index 0000000..99a8725 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/mixins.sass @@ -0,0 +1,3 @@ +=supports-hover + @media (hover: hover) + @content diff --git a/node_modules/buetify/src/sass/helpers/overflow-helpers.sass b/node_modules/buetify/src/sass/helpers/overflow-helpers.sass new file mode 100755 index 0000000..11e973e --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/overflow-helpers.sass @@ -0,0 +1,10 @@ +.overflow-hidden + overflow: hidden +.overflow-x-hidden + overflow-x: hidden +.overflow-y-hidden + overflow-y: hidden +.overflow-y-scroll + overflow-y: scroll +.overflow-auto + overflow: auto diff --git a/node_modules/buetify/src/sass/helpers/padding-margin-helpers.sass b/node_modules/buetify/src/sass/helpers/padding-margin-helpers.sass new file mode 100755 index 0000000..26853a8 --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/padding-margin-helpers.sass @@ -0,0 +1,238 @@ + +@each $size in $sizes + $i: index($sizes, $size) + .margin-left-size-#{$i} + margin-left: $size !important + .margin-top-size-#{$i} + margin-top: $size !important + .margin-right-size-#{$i} + margin-right: $size !important + .margin-bottom-size-#{$i} + margin-bottom: $size !important + .margin-size-#{$i} + margin: $size !important + .padding-left-size-#{$i} + padding-left: $size !important + .padding-top-size-#{$i} + padding-top: $size !important + .padding-right-size-#{$i} + padding-right: $size !important + .padding-bottom-size-#{$i} + padding-bottom: $size !important + .padding-size-#{$i} + padding: $size !important + +.is-paddingless-left + padding-left: 0 !important +.is-paddingless-top + padding-top: 0 !important +.is-paddingless-right + padding-right: 0 !important +.is-paddingless-bottom + padding-bottom: 0 !important + +.is-marginless-left + margin-left: 0 !important +.is-marginless-top + margin-top: 0 !important +.is-marginless-right + margin-right: 0 !important +.is-marginless-bottom + margin-bottom: 0 !important + ++mobile + .is-marginless-mobile + margin: 0 !important + .is-paddingless-mobile + padding: 0 !important + .is-paddingless-left-mobile + padding-left: 0 !important + .is-paddingless-right-mobile + padding-right: 0 !important + .is-marginless-left-mobile + margin-left: 0 !important + .is-marginless-right-mobile + margin-right: 0 !important + .is-paddingless-top + padding-top: 0 !important + .is-paddingless-bottom + padding-bottom: 0 !important + .is-marginless-top + margin-top: 0 !important + .is-marginless-bottom + margin-bottom: 0 !important ++tablet + .is-marginless-tablet + margin: 0 !important + .is-paddingless-tablet + padding: 0 !important + .is-paddingless-left-tablet + padding-left: 0 !important + .is-paddingless-right-tablet + padding-right: 0 !important + .is-marginless-left-tablet + margin-left: 0 !important + .is-marginless-right-tablet + margin-right: 0 !important + .is-paddingless-top-tablet + padding-top: 0 !important + .is-paddingless-bottom-tablet + padding-bottom: 0 !important + .is-marginless-top-tablet + margin-top: 0 !important + .is-marginless-bottom-tablet + margin-bottom: 0 !important + ++tablet-only + .is-marginless-tablet-only + margin: 0 !important + .is-paddingless-tablet-only + padding: 0 !important + .is-paddingless-left-tablet-only + padding-left: 0 !important + .is-paddingless-right-tablet-only + padding-right: 0 !important + .is-marginless-left-tablet-only + margin-left: 0 !important + .is-marginless-right-tablet-only + margin-right: 0 !important + .is-paddingless-top-tablet-only + padding-top: 0 !important + .is-paddingless-bottom-tablet-only + padding-bottom: 0 !important + .is-marginless-top-tablet-only + margin-top: 0 !important + .is-marginless-bottom-tablet-only + margin-bottom: 0 !important + ++touch + .is-marginless-touch + margin: 0 !important + .is-paddingless-touch + padding: 0 !important + .is-paddingless-left-touch + padding-left: 0 !important + .is-paddingless-right-touch + padding-right: 0 !important + .is-marginless-left-touch + margin-left: 0 !important + .is-marginless-right-touch + margin-right: 0 !important + .is-paddingless-top-touch + padding-top: 0 !important + .is-paddingless-bottom-touch + padding-bottom: 0 !important + .is-marginless-top-touch + margin-top: 0 !important + .is-marginless-bottom-touch + margin-bottom: 0 !important + ++desktop + .is-marginless-desktop + margin: 0 !important + .is-paddingless-desktop + padding: 0 !important + .is-paddingless-left-desktop + padding-left: 0 !important + .is-paddingless-right-desktop + padding-right: 0 !important + .is-marginless-left-desktop + margin-left: 0 !important + .is-marginless-right-desktop + margin-right: 0 !important + .is-paddingless-top-desktop + padding-top: 0 !important + .is-paddingless-bottom-desktop + padding-bottom: 0 !important + .is-marginless-top-desktop + margin-top: 0 !important + .is-marginless-bottom-desktop + margin-bottom: 0 !important + ++desktop-only + .is-marginless-desktop-only + margin: 0 !important + .is-paddingless-desktop-only + padding: 0 !important + .is-paddingless-left-desktop-only + padding-left: 0 !important + .is-paddingless-right-desktop-only + padding-right: 0 !important + .is-marginless-left-desktop-only + margin-left: 0 !important + .is-marginless-right-desktop-only + margin-right: 0 !important + .is-paddingless-top-desktop-only + padding-top: 0 !important + .is-paddingless-bottom-desktop-only + padding-bottom: 0 !important + .is-marginless-top-desktop-only + margin-top: 0 !important + .is-marginless-bottom-desktop-only + margin-bottom: 0 !important + ++widescreen + .is-marginless-widescreen + margin: 0 !important + .is-paddingless-widescreen + padding: 0 !important + .is-paddingless-left-widescreen + padding-left: 0 !important + .is-paddingless-right-widescreen + padding-right: 0 !important + .is-marginless-left-widescreen + margin-left: 0 !important + .is-marginless-right-widescreen + margin-right: 0 !important + .is-paddingless-top-widescreen + padding-top: 0 !important + .is-paddingless-bottom-widescreen + padding-bottom: 0 !important + .is-marginless-top-widescreen + margin-top: 0 !important + .is-marginless-bottom-widescreen + margin-bottom: 0 !important + ++widescreen-only + .is-marginless-widescreen-only + margin: 0 !important + .is-paddingless-widescreen-only + padding: 0 !important + .is-paddingless-left-widescreen-only + padding-left: 0 !important + .is-paddingless-right-widescreen-only + padding-right: 0 !important + .is-marginless-left-widescreen-only + margin-left: 0 !important + .is-marginless-right-widescreen-only + margin-right: 0 !important + .is-paddingless-top-widescreen-only + padding-top: 0 !important + .is-paddingless-bottom-widescreen-only + padding-bottom: 0 !important + .is-marginless-top-widescreen-only + margin-top: 0 !important + .is-marginless-bottom-widescreen-only + margin-bottom: 0 !important + ++fullhd + .is-marginless-fullhd + margin: 0 !important + .is-marginless-fullhd + padding: 0 !important + .is-paddingless-left-fullhd + padding-left: 0 !important + .is-paddingless-right-fullhd + padding-right: 0 !important + .is-marginless-left-fullhd + margin-left: 0 !important + .is-marginless-right-fullhd + margin-right: 0 !important + .is-paddingless-top-fullhd + padding-top: 0 !important + .is-paddingless-bottom-fullhd + padding-bottom: 0 !important + .is-marginless-top-fullhd + margin-top: 0 !important + .is-marginless-bottom-fullhd + margin-bottom: 0 !important diff --git a/node_modules/buetify/src/sass/helpers/position-helpers.sass b/node_modules/buetify/src/sass/helpers/position-helpers.sass new file mode 100755 index 0000000..3197bba --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/position-helpers.sass @@ -0,0 +1,35 @@ +.is-sticky-top + position: sticky + top: 0 + +.is-sticky-left + position: sticky + left: 0 + +.is-relative + position: relative + ++mobile + .is-relative-mobile + position: relative + ++tablet + .is-relative-tablet + position: relative + ++touch + .is-relative-touch + position: relative + ++desktop + .is-relative-desktop + position: relative + ++widescreen + .is-relative-widescreen + position: relative + ++fullhd + .is-relative-fullhd + position: relative + diff --git a/node_modules/buetify/src/sass/helpers/typography-helpers.sass b/node_modules/buetify/src/sass/helpers/typography-helpers.sass new file mode 100755 index 0000000..c40f9dc --- /dev/null +++ b/node_modules/buetify/src/sass/helpers/typography-helpers.sass @@ -0,0 +1,20 @@ +@each $name, $pair in $colors + $color: nth($pair, 1) + .has-text-#{$name}-hover + &:hover + color: $color + +.white-space-normal + white-space: normal + ++mobile + .white-space-normal-mobile + white-space: normal + +.inherit-color + color: inherit + +.ellipsis + text-overflow: ellipsis + white-space: nowrap + overflow: hidden diff --git a/node_modules/buetify/src/sass/initial-variables.sass b/node_modules/buetify/src/sass/initial-variables.sass new file mode 100755 index 0000000..36581aa --- /dev/null +++ b/node_modules/buetify/src/sass/initial-variables.sass @@ -0,0 +1,6 @@ +@import './helpers/mixins' + +$speed-slow: 150ms !default +$speed-slower: 250ms !default +$navigation-drawer-width: 300px !default + diff --git a/node_modules/buetify/src/sass/mini-reset.sass b/node_modules/buetify/src/sass/mini-reset.sass new file mode 100755 index 0000000..c119505 --- /dev/null +++ b/node_modules/buetify/src/sass/mini-reset.sass @@ -0,0 +1,18 @@ +button + margin: 0 + padding: 0 + border: none + background: none + color: inherit + cursor: pointer + font-size: inherit + line-height: inherit + +a + color: inherit + &:hover + color: inherit + +figure + padding: 0 + margin: 0 diff --git a/node_modules/buetify/src/transitions/horizontalExpandTransition/HorizontalExpandTransition.ts b/node_modules/buetify/src/transitions/horizontalExpandTransition/HorizontalExpandTransition.ts new file mode 100755 index 0000000..cf7f547 --- /dev/null +++ b/node_modules/buetify/src/transitions/horizontalExpandTransition/HorizontalExpandTransition.ts @@ -0,0 +1,8 @@ +import '../../sass/helpers/animations.sass'; +import { createJavascriptTransition } from '../shared/createJavascriptTransition'; +import { createExpandTransition } from '../shared/expandTransition'; + +export const HorizontalExpandTransition = createJavascriptTransition( + 'is-horizontal-expand-transition', + createExpandTransition('expand-horizontal-transition', true) +); diff --git a/node_modules/buetify/src/transitions/horizontalExpandTransition/index.ts b/node_modules/buetify/src/transitions/horizontalExpandTransition/index.ts new file mode 100755 index 0000000..81d3c32 --- /dev/null +++ b/node_modules/buetify/src/transitions/horizontalExpandTransition/index.ts @@ -0,0 +1,5 @@ +import { HorizontalExpandTransition } from './HorizontalExpandTransition'; + +export { HorizontalExpandTransition }; + +export default HorizontalExpandTransition; diff --git a/node_modules/buetify/src/transitions/index.ts b/node_modules/buetify/src/transitions/index.ts new file mode 100755 index 0000000..8e9dba9 --- /dev/null +++ b/node_modules/buetify/src/transitions/index.ts @@ -0,0 +1,6 @@ +import HorizontalExpandTransition from './horizontalExpandTransition'; +import SlideRightTransition from './slideRightTransition'; +import VerticalExpandTransition from './verticalExpandTransition'; +import VerticalExpandTransitionGroup from './verticalExpandTransitionGroup'; + +export { HorizontalExpandTransition, SlideRightTransition, VerticalExpandTransition, VerticalExpandTransitionGroup }; diff --git a/node_modules/buetify/src/transitions/shared/createJavascriptTransition.ts b/node_modules/buetify/src/transitions/shared/createJavascriptTransition.ts new file mode 100755 index 0000000..2ea3bfa --- /dev/null +++ b/node_modules/buetify/src/transitions/shared/createJavascriptTransition.ts @@ -0,0 +1,42 @@ +import { + FunctionalComponent, + SetupContext, + h, + Transition, + TransitionGroup, + TransitionProps, + BaseTransitionProps, + TransitionGroupProps, + RendererElement +} from 'vue'; + +export function createJavascriptTransition<Element = RendererElement>( + name: string, + staticProps: BaseTransitionProps<Element> +): FunctionalComponent { + return (dynamicProps: TransitionProps, { slots }: SetupContext) => { + return h( + Transition, + { + name, + ...staticProps, + ...dynamicProps + } as TransitionProps, + slots.default + ); + }; +} + +export function createJavascriptTransitionGroup(name: string, staticProps: TransitionGroupProps): FunctionalComponent { + return (dynamicProps: TransitionGroupProps, { slots }: SetupContext) => { + return h( + TransitionGroup, + { + name, + ...staticProps, + ...dynamicProps + } as TransitionGroupProps, + slots.default + ); + }; +} diff --git a/node_modules/buetify/src/transitions/shared/expandTransition.ts b/node_modules/buetify/src/transitions/shared/expandTransition.ts new file mode 100755 index 0000000..4eee4a3 --- /dev/null +++ b/node_modules/buetify/src/transitions/shared/expandTransition.ts @@ -0,0 +1,87 @@ +import { BaseTransitionProps } from 'vue'; +import { capitalizeFirstLetter } from '../../utils/helpers'; + +interface HTMLExpandElement extends HTMLElement { + _parent?: (Node & ParentNode & HTMLElement) | null; + _initialStyle: { + transition: string; + visibility: string | null; + overflow: string | null; + height?: string | null; + width?: string | null; + }; +} +export function createExpandTransition(expandedParentClass = '', x = false): BaseTransitionProps<HTMLExpandElement> { + const sizeProperty = x ? 'width' : ('height' as 'width' | 'height'); + const offsetProperty = `offset${capitalizeFirstLetter(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'; + + function resetStyles(el: HTMLExpandElement) { + const size = el._initialStyle[sizeProperty]; + el.style.overflow = el._initialStyle.overflow as string; + if (size != null) el.style[sizeProperty] = size; + delete el._initialStyle; + } + + function onAfterLeave(el: HTMLExpandElement) { + if (expandedParentClass && el._parent) { + el._parent.classList.remove(expandedParentClass); + } + resetStyles(el); + } + + return { + onBeforeEnter(el: HTMLExpandElement) { + el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null; + el._initialStyle = { + transition: el.style.transition, + visibility: el.style.visibility, + overflow: el.style.overflow, + [sizeProperty]: el.style[sizeProperty] + }; + }, + + onEnter(el: HTMLExpandElement) { + const initialStyle = el._initialStyle; + const offset = `${el[offsetProperty]}px`; + + el.style.setProperty('transition', 'none', 'important'); + el.style.visibility = 'hidden'; + el.style.visibility = initialStyle.visibility as string; + el.style.overflow = 'hidden'; + el.style[sizeProperty] = '0'; + + void el.offsetHeight; // force reflow + + el.style.transition = initialStyle.transition; + + if (expandedParentClass && el._parent) { + el._parent.classList.add(expandedParentClass); + } + + requestAnimationFrame(() => { + el.style[sizeProperty] = offset; + }); + }, + + onAfterEnter: resetStyles, + onEnterCancelled: resetStyles, + + onLeave(el: HTMLExpandElement) { + el._initialStyle = { + transition: '', + visibility: '', + overflow: el.style.overflow, + [sizeProperty]: el.style[sizeProperty] + }; + + el.style.overflow = 'hidden'; + el.style[sizeProperty] = `${el[offsetProperty]}px`; + void el.offsetHeight; // force reflow + + requestAnimationFrame(() => (el.style[sizeProperty] = '0')); + }, + + onAfterLeave, + onLeaveCancelled: onAfterLeave + }; +} diff --git a/node_modules/buetify/src/transitions/slideRightTransition/SlideRightTransition.ts b/node_modules/buetify/src/transitions/slideRightTransition/SlideRightTransition.ts new file mode 100755 index 0000000..0bd8aa9 --- /dev/null +++ b/node_modules/buetify/src/transitions/slideRightTransition/SlideRightTransition.ts @@ -0,0 +1,6 @@ +import './slide-right-transition.sass'; +import { SetupContext, h, Transition } from 'vue'; + +export default function SlideRightTransition(_: unknown, { slots }: SetupContext) { + return h(Transition, { name: 'slide-right', css: true }, slots.default); +} diff --git a/node_modules/buetify/src/transitions/slideRightTransition/index.ts b/node_modules/buetify/src/transitions/slideRightTransition/index.ts new file mode 100755 index 0000000..ee5e257 --- /dev/null +++ b/node_modules/buetify/src/transitions/slideRightTransition/index.ts @@ -0,0 +1,5 @@ +import SlideRightTransition from './SlideRightTransition'; + +export { SlideRightTransition }; + +export default SlideRightTransition; diff --git a/node_modules/buetify/src/transitions/slideRightTransition/slide-right-transition.sass b/node_modules/buetify/src/transitions/slideRightTransition/slide-right-transition.sass new file mode 100755 index 0000000..d7892b4 --- /dev/null +++ b/node_modules/buetify/src/transitions/slideRightTransition/slide-right-transition.sass @@ -0,0 +1,6 @@ +.slide-right-enter-active, +.slide-right-leave-active + transition: transform $speed-slow ease-in + +.slide-right-enter-from, .slide-right-leave-to + transform: translateX(-100%) diff --git a/node_modules/buetify/src/transitions/verticalExpandTransition/VerticalExpandTransition.ts b/node_modules/buetify/src/transitions/verticalExpandTransition/VerticalExpandTransition.ts new file mode 100755 index 0000000..03920c0 --- /dev/null +++ b/node_modules/buetify/src/transitions/verticalExpandTransition/VerticalExpandTransition.ts @@ -0,0 +1,8 @@ +import '../../sass/helpers/animations.sass'; +import { createJavascriptTransition } from '../shared/createJavascriptTransition'; +import { createExpandTransition } from '../shared/expandTransition'; + +export default createJavascriptTransition( + 'vertical-expand-transition', + createExpandTransition('expand-vertical-transition') +); diff --git a/node_modules/buetify/src/transitions/verticalExpandTransition/index.ts b/node_modules/buetify/src/transitions/verticalExpandTransition/index.ts new file mode 100755 index 0000000..44e8491 --- /dev/null +++ b/node_modules/buetify/src/transitions/verticalExpandTransition/index.ts @@ -0,0 +1,5 @@ +import VerticalExpandTransition from './VerticalExpandTransition'; + +export { VerticalExpandTransition }; + +export default VerticalExpandTransition; diff --git a/node_modules/buetify/src/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.ts b/node_modules/buetify/src/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.ts new file mode 100755 index 0000000..6bd56e9 --- /dev/null +++ b/node_modules/buetify/src/transitions/verticalExpandTransitionGroup/VerticalExpandTransitionGroup.ts @@ -0,0 +1,9 @@ +import '../../sass/helpers/animations.sass'; +import { TransitionGroupProps } from 'vue'; +import { createJavascriptTransitionGroup } from '../shared/createJavascriptTransition'; +import { createExpandTransition } from '../shared/expandTransition'; + +export default createJavascriptTransitionGroup( + 'vertical-expand-transition', + createExpandTransition('expand-vertical-transition') as TransitionGroupProps +); diff --git a/node_modules/buetify/src/transitions/verticalExpandTransitionGroup/index.ts b/node_modules/buetify/src/transitions/verticalExpandTransitionGroup/index.ts new file mode 100755 index 0000000..e8597e7 --- /dev/null +++ b/node_modules/buetify/src/transitions/verticalExpandTransitionGroup/index.ts @@ -0,0 +1,5 @@ +import VerticalExpandTransitionGroup from './VerticalExpandTransitionGroup'; + +export { VerticalExpandTransitionGroup }; + +export default VerticalExpandTransitionGroup; diff --git a/node_modules/buetify/src/types/ColorVariants.ts b/node_modules/buetify/src/types/ColorVariants.ts new file mode 100755 index 0000000..a328880 --- /dev/null +++ b/node_modules/buetify/src/types/ColorVariants.ts @@ -0,0 +1,30 @@ +export type AllColorsVariant = ColorVariant | ShadeVariant; + +export type ColorVariantFlags = { + [K in ColorVariant]: boolean; +}; + +export type ColorVariant = + | 'is-orange' + | 'is-primary' + | 'is-info' + | 'is-link' + | 'is-success' + | 'is-warning' + | 'is-danger' + | ''; + +export type ShadeVariant = + | 'is-white' + | 'is-black' + | 'is-light' + | 'is-dark' + | 'is-black-bis' + | 'is-black-ter' + | 'is-grey-darker' + | 'is-grey-dark' + | 'is-grey' + | 'is-grey-light' + | 'is-grey-lighter' + | 'is-white-ter' + | 'is-white-bis'; diff --git a/node_modules/buetify/src/types/NoticePlacement.ts b/node_modules/buetify/src/types/NoticePlacement.ts new file mode 100755 index 0000000..fd6b8c8 --- /dev/null +++ b/node_modules/buetify/src/types/NoticePlacement.ts @@ -0,0 +1 @@ +export type NoticePlacement = 'top' | 'bottom'; diff --git a/node_modules/buetify/src/types/PositionVariant.ts b/node_modules/buetify/src/types/PositionVariant.ts new file mode 100755 index 0000000..2882852 --- /dev/null +++ b/node_modules/buetify/src/types/PositionVariant.ts @@ -0,0 +1,7 @@ +export type PositionVariant = + | 'is-top-right' + | 'is-top' + | 'is-top-left' + | 'is-bottom-right' + | 'is-bottom' + | 'is-bottom-left'; diff --git a/node_modules/buetify/src/types/SizeVariants.ts b/node_modules/buetify/src/types/SizeVariants.ts new file mode 100755 index 0000000..9ba0c0e --- /dev/null +++ b/node_modules/buetify/src/types/SizeVariants.ts @@ -0,0 +1 @@ +export type SizeVariant = 'is-small' | 'is-medium' | 'is-large' | ''; diff --git a/node_modules/buetify/src/types/Theme.ts b/node_modules/buetify/src/types/Theme.ts new file mode 100755 index 0000000..ce26274 --- /dev/null +++ b/node_modules/buetify/src/types/Theme.ts @@ -0,0 +1 @@ +export type Theme = 'dark' | 'light'; diff --git a/node_modules/buetify/src/types/ThemeColorMap.ts b/node_modules/buetify/src/types/ThemeColorMap.ts new file mode 100755 index 0000000..79ae2df --- /dev/null +++ b/node_modules/buetify/src/types/ThemeColorMap.ts @@ -0,0 +1,3 @@ +import { Theme } from './Theme'; + +export type ThemeColorMap = { [K in Theme]: string | string[] }; diff --git a/node_modules/buetify/src/types/Transition.ts b/node_modules/buetify/src/types/Transition.ts new file mode 100755 index 0000000..b43033a --- /dev/null +++ b/node_modules/buetify/src/types/Transition.ts @@ -0,0 +1,16 @@ +export type Transition = TransitionName | TransitionClasses; + +export type TransitionName = string; + +export interface TransitionClasses { + css?: boolean; + name?: TransitionName; + 'enter-from-class'?: string; + 'enter-active-class'?: string; + 'enter-to-class'?: string; + 'leave-from-class'?: string; + 'leave-active-class'?: string; + 'leave-to-class'?: string; +} + +export type TransitionMode = 'in-out' | 'out-in'; diff --git a/node_modules/buetify/src/types/index.ts b/node_modules/buetify/src/types/index.ts new file mode 100755 index 0000000..1150c96 --- /dev/null +++ b/node_modules/buetify/src/types/index.ts @@ -0,0 +1,7 @@ +export * from './ColorVariants'; +export * from './NoticePlacement'; +export * from './PositionVariant'; +export * from './SizeVariants'; +export * from './Theme'; +export * from './ThemeColorMap'; +export * from './Transition'; diff --git a/node_modules/buetify/src/utils/eventHelpers.ts b/node_modules/buetify/src/utils/eventHelpers.ts new file mode 100755 index 0000000..058ffbc --- /dev/null +++ b/node_modules/buetify/src/utils/eventHelpers.ts @@ -0,0 +1,31 @@ +export function isEnterEvent(e: KeyboardEvent): boolean { + return e.key === 'Enter' || e.keyCode === 13; +} + +export function isSpaceEvent(e: KeyboardEvent): boolean { + return e.code === 'Space' || e.which === 32 || e.key === ' '; +} + +export function isEscEvent(e: KeyboardEvent): boolean { + return e.key === 'Escape' || e.code === 'Escape' || e.which === 27; +} + +export function isArrowDownEvent(e: KeyboardEvent): boolean { + return e.key === 'ArrowDown' || e.code === 'ArrowDown' || e.which === 40; +} + +export function isArrowRightEvent(e: KeyboardEvent): boolean { + return e.key === 'ArrowRight' || e.code === 'ArrowRight' || e.which === 39; +} + +export function isArrowLeftEvent(e: KeyboardEvent): boolean { + return e.key === 'ArrowLeft' || e.code === 'ArrowLeft' || e.which === 37; +} + +export function isArrowUpEvent(e: KeyboardEvent): boolean { + return e.key === 'ArrowUp' || e.code === 'ArrowUp' || e.which === 38; +} + +export function isTabEvent(e: KeyboardEvent): boolean { + return e.key === 'Tab' || e.code === 'Tab' || e.which === 9; +} diff --git a/node_modules/buetify/src/utils/getSimpleFunctionalComponent.ts b/node_modules/buetify/src/utils/getSimpleFunctionalComponent.ts new file mode 100755 index 0000000..b88e092 --- /dev/null +++ b/node_modules/buetify/src/utils/getSimpleFunctionalComponent.ts @@ -0,0 +1,7 @@ +import { h, SetupContext, FunctionalComponent } from 'vue'; + +export function getSimpleFunctionalComponent(cls: string, el = 'div'): FunctionalComponent<{ tag?: string }> { + return function(props: { tag?: string }, { slots }: SetupContext) { + return h(props.tag ?? el, { class: cls }, slots.default ? slots.default() : undefined); + }; +} diff --git a/node_modules/buetify/src/utils/getThemeableFunctionalComponent.ts b/node_modules/buetify/src/utils/getThemeableFunctionalComponent.ts new file mode 100755 index 0000000..572ce8f --- /dev/null +++ b/node_modules/buetify/src/utils/getThemeableFunctionalComponent.ts @@ -0,0 +1,56 @@ +import { isSome } from 'fp-ts/lib/Option'; +import { inject, h, defineComponent } from 'vue'; +import { + DEFAULT_THEME_COLOR_MAP, + DEFAULT_THEME_INJECTION, + getThemeClasses, + useThemePropsDefinition, + THEME_INJECTION_SYMBOL, + ThemeInjection, + ThemeProps +} from '../composables/theme'; +import { ThemeColorMap } from '../types/ThemeColorMap'; +import { mergeClasses } from './mergeClasses'; + +export interface ThemeableComponentOptions { + cls: string; + el?: string; + themeMap?: ThemeColorMap; +} + +export interface ThemeableComponentProps extends Partial<ThemeProps> { + tag?: string; +} + +export function isThemeable(props: Partial<ThemeProps>, injection: ThemeInjection): boolean { + return !!props.isThemeable && !!props.themeMap && isSome(injection.currentTheme.value); +} + +export function getThemeableFunctionalComponent({ + cls, + el = 'div', + themeMap = DEFAULT_THEME_COLOR_MAP +}: ThemeableComponentOptions) { + return defineComponent({ + props: { + ...useThemePropsDefinition(themeMap, true), + tag: { + type: [String, Function], + default: el + } + }, + setup(props, { slots }) { + const themeInjection = inject(THEME_INJECTION_SYMBOL, DEFAULT_THEME_INJECTION); + return () => + h( + props.tag as string, + { + class: isThemeable(props, themeInjection) + ? mergeClasses(getThemeClasses(props.themeMap, themeInjection), cls) + : cls + }, + slots.default && slots.default() + ); + } + }); +} diff --git a/node_modules/buetify/src/utils/helpers.ts b/node_modules/buetify/src/utils/helpers.ts new file mode 100755 index 0000000..bd715a9 --- /dev/null +++ b/node_modules/buetify/src/utils/helpers.ts @@ -0,0 +1,191 @@ +import { VNode, Fragment } from 'vue'; +import { snoc, unsafeDeleteAt } from 'fp-ts/lib/Array'; +import { Eq } from 'fp-ts/lib/Eq'; +import { constant, not } from 'fp-ts/lib/function'; +import { none } from 'fp-ts/lib/Option'; + +/** + * Mobile detection + * https://www.abeautifulsite.net/detecting-mobile-devices-with-javascript + */ + +export const isMobile = { + Android: function() { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/Android/i); + }, + BlackBerry: function() { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/BlackBerry/i); + }, + iOS: function() { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/iPhone|iPad|iPod/i); + }, + Opera: function() { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/Opera Mini/i); + }, + Windows: function() { + return typeof window !== 'undefined' && window.navigator.userAgent.match(/IEMobile/i); + }, + any: function() { + return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows(); + } +}; + +export function capitalizeFirstLetter(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +export function keys<O>(o: O): Array<keyof O> { + return Object.keys(o) as (keyof O)[]; +} + +// eslint-disable-next-line +export function deepEqual(a: any, b: any): boolean { + if (a === b) return true; + + if (a instanceof Date && b instanceof Date) { + // If the values are Date, they were convert to timestamp with getTime and compare it + if (a.getTime() !== b.getTime()) return false; + } + + if (a !== Object(a) || b !== Object(b)) { + // If the values aren't objects, they were already checked for equality + return false; + } + + const props = Object.keys(a); + + if (props.length !== Object.keys(b).length) { + // Different number of props, don't bother to check + return false; + } + + return props.every(p => deepEqual(a[p], b[p])); +} + +// eslint-disable-next-line +export function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any { + const last = path.length - 1; + + if (last < 0) return obj === undefined ? fallback : obj; + + for (let i = 0; i < last; i++) { + if (obj == null) { + return fallback; + } + obj = obj[path[i]]; + } + + if (obj == null) return fallback; + + return obj[path[last]] === undefined ? fallback : obj[path[last]]; +} + +// eslint-disable-next-line +export function getObjectValueByPath(obj: any, path: string, fallback?: any): any { + // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621 + if (obj == null || !path || typeof path !== 'string') return fallback; + if (obj[path] !== undefined) return obj[path]; + path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties + path = path.replace(/^\./, ''); // strip a leading dot + return getNestedValue(obj, path.split('.'), fallback); +} + +// eslint-disable-next-line +export function isBoolean(val: any): val is boolean { + return typeof val === 'boolean'; +} + +// eslint-disable-next-line +export function isObject(obj: any): obj is object { + return obj !== null && typeof obj === 'object'; +} + +// eslint-disable-next-line +export function isFunction(obj: any): obj is Function { + return typeof obj === 'function'; +} + +// eslint-disable-next-line +export function isPrimitive(val: any): val is number | string | boolean { + return typeof val === 'number' || typeof val === 'string' || typeof val === 'boolean'; +} + +// eslint-disable-next-line +export function isNil(arg: any): boolean { + return arg === null || arg === undefined; +} + +export const exists = not(isNil); + +// eslint-disable-next-line +export function isString(arg: any): arg is string { + return typeof arg === 'string'; +} + +// eslint-disable-next-line +export function isNumber(arg: any): arg is number { + return typeof arg === 'number'; +} + +// eslint-disable-next-line +export function isHTMLElement(obj: any): obj is HTMLElement { + return typeof HTMLElement === 'object' + ? obj instanceof HTMLElement //DOM2 + : obj && typeof isObject(obj) && obj.nodeType === 1 && typeof obj.nodeName === 'string'; +} + +export const constEmptyArray = constant([]); + +export const constNone = constant(none); + +export const constZero = constant(0); + +export const constEmptyString = constant(''); + +export function removeListItem<A>(E: Eq<A>) { + return (a: A, as: A[]) => { + const index = as.findIndex(i => E.equals(a, i)); + return index > -1 ? unsafeDeleteAt(index, as) : as; + }; +} + +export function toggleListItem<A>(E: Eq<A>) { + return (a: A, as: A[]) => { + const index = as.findIndex(i => E.equals(a, i)); + return index > -1 ? unsafeDeleteAt(index, as) : snoc(as, a); + }; +} + +export function isFragment(node: VNode): boolean { + return node.type === Fragment; +} + +export function isEmptyString(str: string): boolean { + return str === ''; +} + +// eslint-disable-next-line +export type Result<T, P> = P extends keyof T ? T[P] : P extends (item: T) => any ? ReturnType<P> : never; +// eslint-disable-next-line +export type Extractor<T> = keyof T | ((item: T) => any); + +function prop<T extends object, K extends keyof T>(key: K, obj: T): T[K] { + return obj[key]; +} + +// eslint-disable-next-line +export function extractProp<T, P extends (item: T) => any | keyof T>(extractor: Extractor<T>, item: T): Result<T, P> { + if (isFunction(extractor)) { + return extractor(item); + } else if (isObject(item) && isString(extractor) && Object.hasOwnProperty.call(item, extractor)) { + // eslint-disable-next-line + return prop(extractor as any, item); + } else { + return item as Result<T, P>; + } +} + +const camelizeRE = /-(\w)/g; +export function camelize(str: string): string { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')); +} diff --git a/node_modules/buetify/src/utils/mergeClasses.ts b/node_modules/buetify/src/utils/mergeClasses.ts new file mode 100755 index 0000000..9ec24db --- /dev/null +++ b/node_modules/buetify/src/utils/mergeClasses.ts @@ -0,0 +1,17 @@ +import { identity } from 'fp-ts/lib/function'; +import { isObject, isString } from './helpers'; + +export type Classes = string | { [K: string]: boolean } | null | undefined | Classes[]; + +export function mergeClasses(existingClasses?: Classes, newClasses?: Classes): Classes { + if (Array.isArray(existingClasses)) { + return [ + ...existingClasses.filter(identity), + ...(Array.isArray(newClasses) ? newClasses.filter(identity) : [newClasses]) + ]; + } else if (isObject(existingClasses) || isString(existingClasses)) { + return [existingClasses, ...(Array.isArray(newClasses) ? newClasses.filter(identity) : [newClasses])]; + } else { + return newClasses; + } +} diff --git a/node_modules/bulma/LICENSE b/node_modules/bulma/LICENSE new file mode 100644 index 0000000..3fdc17c --- /dev/null +++ b/node_modules/bulma/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 Jeremy Thomas + +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. diff --git a/node_modules/bulma/README.md b/node_modules/bulma/README.md new file mode 100644 index 0000000..7e7d688 --- /dev/null +++ b/node_modules/bulma/README.md @@ -0,0 +1,139 @@ +# [Bulma](https://bulma.io) + +Bulma is a **modern CSS framework** based on [Flexbox](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes). + +![Github](https://img.shields.io/github/v/release/jgthms/bulma?logo=Bulma) +[![npm](https://img.shields.io/npm/v/bulma.svg)][npm-link] +[![npm](https://img.shields.io/npm/dm/bulma.svg)][npm-link] +[![](https://data.jsdelivr.com/v1/package/npm/bulma/badge)](https://www.jsdelivr.com/package/npm/bulma) +[![Awesome][awesome-badge]][awesome-link] +[![Join the chat at https://gitter.im/jgthms/bulma](https://badges.gitter.im/jgthms/bulma.svg)](https://gitter.im/jgthms/bulma) +[![Build Status](https://travis-ci.org/jgthms/bulma.svg?branch=master)](https://travis-ci.org/jgthms/bulma) + +<a href="https://bulma.io"><img src="https://raw.githubusercontent.com/jgthms/bulma/master/docs/images/bulma-banner.png" alt="Bulma: a Flexbox CSS framework" style="max-width:100%;" width="600"></a> + +## Quick install + +Bulma is constantly in development! Try it out now: + +### NPM + +```sh +npm install bulma +``` + +**or** + +### Yarn + +```sh +yarn add bulma +``` + +### Bower + +```sh +bower install bulma +``` + +### Import + +After installation, you can import the CSS file into your project using this snippet: + +```sh +@import 'bulma/css/bulma.css' +``` + +### CDN + +[https://www.jsdelivr.com/package/npm/bulma](https://www.jsdelivr.com/package/npm/bulma) + +Feel free to raise an issue or submit a pull request. + +## CSS only + +Bulma is a **CSS** framework. As such, the sole output is a single CSS file: [bulma.css](https://github.com/jgthms/bulma/blob/master/css/bulma.css) + +You can either use that file, "out of the box", or download the Sass source files to customize the [variables](https://bulma.io/documentation/overview/variables/). + +There is **no** JavaScript included. People generally want to use their own JS implementation (and usually already have one). Bulma can be considered "environment agnostic": it's just the style layer on top of the logic. + +## Browser Support + +Bulma uses [autoprefixer](https://github.com/postcss/autoprefixer) to make (most) Flexbox features compatible with earlier browser versions. According to [Can I use](https://caniuse.com/#feat=flexbox), Bulma is compatible with **recent** versions of: + +- Chrome +- Edge +- Firefox +- Opera +- Safari + +Internet Explorer (10+) is only partially supported. + +## Documentation + +The documentation resides in the [docs](docs) directory, and is built with the Ruby-based [Jekyll](https://jekyllrb.com/) tool. + +Browse the [online documentation here.](https://bulma.io/documentation/overview/start/) + +## Related projects + +| Project | Description | +| ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| [Bulma with Attribute Modules](https://github.com/j5bot/bulma-attribute-selectors) | Adds support for attribute-based selectors | +| [Bulma with Rails](https://github.com/joshuajansen/bulma-rails) | Integrates Bulma with the rails asset pipeline | +| [BulmaRazor](https://github.com/loogn/bulmarazor) | A lightweight component library based on Bulma and Blazor. | +| [Vue Admin (dead)](https://github.com/vue-bulma/vue-admin) | Vue Admin framework powered by Bulma | +| [Bulmaswatch](https://github.com/jenil/bulmaswatch) | Free themes for Bulma | +| [Goldfish (read-only)](https://github.com/Caiyeon/goldfish) | Vault UI with Bulma, Golang, and Vue Admin | +| [ember-bulma](https://github.com/open-tux/ember-bulma) | Ember addon providing a collection of UI components for Bulma | +| [Bloomer](https://bloomer.js.org) | A set of React components for Bulma | +| [React-bulma](https://github.com/kulakowka/react-bulma) | React.js components for Bulma | +| [Buefy](https://buefy.org/) | Lightweight UI components for Vue.js based on Bulma | +| [vue-bulma-components](https://github.com/vouill/vue-bulma-components) | Bulma components for Vue.js with straightforward syntax | +| [BulmaJS](https://github.com/VizuaaLOG/BulmaJS) | Javascript integration for Bulma. Written in ES6 with a data-\* API | +| [Bulma-modal-fx](https://github.com/postare/bulma-modal-fx) | A set of modal window effects with CSS transitions and animations for Bulma | +| [Bulma Stylus](https://github.com/groenroos/bulma-stylus) | Up-to-date 1:1 translation to Stylus | +| [Bulma.styl (read-only)](https://github.com/log1x/bulma.styl) | 1:1 Stylus translation of Bulma 0.6.11 | +| [elm-bulma](https://github.com/surprisetalk/elm-bulma) | Bulma + Elm | +| [elm-bulma-classes](https://github.com/ahstro/elm-bulma-classes) | Bulma classes prepared for usage with Elm | +| [Bulma Customizer](https://bulma-customizer.bstash.io/) | Bulma Customizer – Create your own **bespoke** Bulma build | +| [Fulma](https://fulma.github.io/Fulma/) | Wrapper around Bulma for [fable-react](https://github.com/fable-compiler/fable-react) | +| [Laravel Enso](https://github.com/laravel-enso/enso) | SPA Admin Panel built with Bulma, VueJS and Laravel | +| [Django Bulma](https://github.com/timonweb/django-bulma) | Integrates Bulma with Django | +| [Bulma Templates](https://github.com/dansup/bulma-templates) | Free Templates for Bulma | +| [React Bulma Components](https://github.com/couds/react-bulma-components) | Another React wrap on React for Bulma.io | +| [purescript-bulma](https://github.com/sectore/purescript-bulma) | PureScript bindings for Bulma | +| [Vue Datatable](https://github.com/laravel-enso/vuedatatable) | Bulma themed datatable based on Vue, Laravel & JSON templates | +| [bulma-fluent](https://mubaidr.github.io/bulma-fluent/) | Fluent Design Theme for Bulma inspired by Microsoft’s Fluent Design System | +| [csskrt-csskrt](https://github.com/4d11/csskrt-csskrt) | Automatically add Bulma classes to HTML files | +| [bulma-pagination-react](https://github.com/hipstersmoothie/bulma-pagination-react) | Bulma pagination as a react component | +| [bulma-helpers](https://github.com/jmaczan/bulma-helpers) | Functional / Atomic CSS classes for Bulma | +| [bulma-swatch-hook](https://github.com/hipstersmoothie/bulma-swatch-hook) | Bulma swatches as a react hook and a component | +| [BulmaWP (read-only)](https://github.com/tomhrtly/BulmaWP) | Starter WordPress theme for Bulma | +| [Ralma](https://github.com/aldi/ralma) | Stateless Ractive.js Components for Bulma | +| [Django Simple Bulma](https://github.com/python-discord/django-simple-bulma) | Lightweight integration of Bulma and Bulma-Extensions for your Django app | +| [rbx](https://dfee.github.io/rbx) | Comprehensive React UI Framework written in TypeScript | +| [Awesome Bulma Templates](https://github.com/aldi/awesome-bulma-templates) | Free real-world Templates built with Bulma | +| [Trunx](http://g14n.info/trunx) | Super Saiyan React components, son of awesome Bulma, implemented in TypeScript | +| [@aybolit/bulma](https://github.com/web-padawan/aybolit/tree/master/packages/bulma) | Web Components library inspired by Bulma and Bulma-extensions | +| [Drulma](https://www.drupal.org/project/drulma) | Drupal theme for Bulma. | +| [Bulrush](https://github.com/textbook/bulrush) | A Bulma-based Python Pelican blog theme | +| [Bulma Variable Export](https://github.com/service-paradis/bulma-variables-export) | Access Bulma Variables in Javascript/Typescript in project using Webpack | +| [Bulmil](https://github.com/gomah/bulmil) | An agnostic UI components library based on Web Components, made with Bulma & Stencil. | +| [Svelte Bulma Components](https://github.com/elcobvg/svelte-bulma-components) | Library of UI components to be used in [Svelte.js](https://svelte.technology/) or standalone. | +| [Bulma Nunjucks Starterkit](https://github.com/benninkcorien/nunjucks-starter-kit) | Starterkit for Nunjucks with Bulma. | +| [Bulma-Social](https://github.com/aldi/bulma-social) | Social Buttons and Colors for Bulma | +| [Divjoy](https://divjoy.com/?kit=bulma) | React codebase generator with Bulma templates | +| [Blazorise](https://github.com/Megabit/Blazorise) | Blazor component library with the support for Bulma CSS framework | +| [Oruga-Bulma](https://github.com/oruga-ui/theme-bulma) | Bulma theme for [Oruga UI](https://oruga.io) | +| [@bulvar/bulma](https://github.com/daniil4udo/bulvar/tree/master/packages/bulma) | Bulma with [CSS Variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) support | +| [@angular-bulma](https://quinnjr.github.io/angular-bulma) | [Angular](https://angular.io/) directives and components to use in your Bulma projects | + +## Copyright and license ![Github](https://img.shields.io/github/license/jgthms/bulma?logo=Github) + +Code copyright 2022 Jeremy Thomas. Code released under [the MIT license](https://github.com/jgthms/bulma/blob/master/LICENSE). + +[npm-link]: https://www.npmjs.com/package/bulma +[awesome-link]: https://github.com/awesome-css-group/awesome-css +[awesome-badge]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg diff --git a/node_modules/bulma/bulma.sass b/node_modules/bulma/bulma.sass new file mode 100644 index 0000000..87dec21 --- /dev/null +++ b/node_modules/bulma/bulma.sass @@ -0,0 +1,10 @@ +@charset "utf-8" +/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */ +@import "sass/utilities/_all" +@import "sass/base/_all" +@import "sass/elements/_all" +@import "sass/form/_all" +@import "sass/components/_all" +@import "sass/grid/_all" +@import "sass/helpers/_all" +@import "sass/layout/_all" diff --git a/node_modules/bulma/css/bulma-rtl.css b/node_modules/bulma/css/bulma-rtl.css new file mode 100644 index 0000000..7770d4c --- /dev/null +++ b/node_modules/bulma/css/bulma-rtl.css @@ -0,0 +1,11851 @@ +/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */ +/* Bulma Utilities */ +.button, .input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.5em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.5em - 1px); + padding-left: calc(0.75em - 1px); + padding-right: calc(0.75em - 1px); + padding-top: calc(0.5em - 1px); + position: relative; + vertical-align: top; +} + +.button:focus, .input:focus, .textarea:focus, .select select:focus, .file-cta:focus, +.file-name:focus, .pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus, +.pagination-ellipsis:focus, .is-focused.button, .is-focused.input, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, +.is-focused.file-name, .is-focused.pagination-previous, +.is-focused.pagination-next, +.is-focused.pagination-link, +.is-focused.pagination-ellipsis, .button:active, .input:active, .textarea:active, .select select:active, .file-cta:active, +.file-name:active, .pagination-previous:active, +.pagination-next:active, +.pagination-link:active, +.pagination-ellipsis:active, .is-active.button, .is-active.input, .is-active.textarea, .select select.is-active, .is-active.file-cta, +.is-active.file-name, .is-active.pagination-previous, +.is-active.pagination-next, +.is-active.pagination-link, +.is-active.pagination-ellipsis { + outline: none; +} + +.button[disabled], .input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], +.file-name[disabled], .pagination-previous[disabled], +.pagination-next[disabled], +.pagination-link[disabled], +.pagination-ellipsis[disabled], +fieldset[disabled] .button, +fieldset[disabled] .input, +fieldset[disabled] .textarea, +fieldset[disabled] .select select, +.select fieldset[disabled] select, +fieldset[disabled] .file-cta, +fieldset[disabled] .file-name, +fieldset[disabled] .pagination-previous, +fieldset[disabled] .pagination-next, +fieldset[disabled] .pagination-link, +fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; +} + +.button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs, .is-unselectable { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; +} + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .message:not(:last-child), .pagination:not(:last-child), .tabs:not(:last-child) { + margin-bottom: 1.5rem; +} + +.delete, .modal-close { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 9999px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; +} + +.delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; +} + +.delete::before, .modal-close::before { + height: 2px; + width: 50%; +} + +.delete::after, .modal-close::after { + height: 50%; + width: 2px; +} + +.delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); +} + +.delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); +} + +.is-small.delete, .is-small.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; +} + +.is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; +} + +.is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; +} + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + -webkit-animation: spinAround 500ms infinite linear; + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 9999px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; +} + +.image.is-square img, +.image.is-square .has-ratio, .image.is-1by1 img, +.image.is-1by1 .has-ratio, .image.is-5by4 img, +.image.is-5by4 .has-ratio, .image.is-4by3 img, +.image.is-4by3 .has-ratio, .image.is-3by2 img, +.image.is-3by2 .has-ratio, .image.is-5by3 img, +.image.is-5by3 .has-ratio, .image.is-16by9 img, +.image.is-16by9 .has-ratio, .image.is-2by1 img, +.image.is-2by1 .has-ratio, .image.is-3by1 img, +.image.is-3by1 .has-ratio, .image.is-4by5 img, +.image.is-4by5 .has-ratio, .image.is-3by4 img, +.image.is-3by4 .has-ratio, .image.is-2by3 img, +.image.is-2by3 .has-ratio, .image.is-3by5 img, +.image.is-3by5 .has-ratio, .image.is-9by16 img, +.image.is-9by16 .has-ratio, .image.is-1by2 img, +.image.is-1by2 .has-ratio, .image.is-1by3 img, +.image.is-1by3 .has-ratio, .modal, .modal-background, .is-overlay, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.navbar-burger { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + color: currentColor; + font-family: inherit; + font-size: 1em; + margin: 0; + padding: 0; +} + +/* Bulma Base */ +/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; +} + +ul { + list-style: none; +} + +button, +input, +select, +textarea { + margin: 0; +} + +html { + box-sizing: border-box; +} + +*, *::before, *::after { + box-sizing: inherit; +} + +img, +video { + height: auto; + max-width: 100%; +} + +iframe { + border: 0; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +td:not([align]), +th:not([align]) { + text-align: inherit; +} + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: hidden; + overflow-y: scroll; + text-rendering: optimizeLegibility; + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; +} + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; +} + +body, +button, +input, +optgroup, +select, +textarea { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; +} + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: monospace; +} + +body { + color: #4a4a4a; + font-size: 1em; + font-weight: 400; + line-height: 1.5; +} + +a { + color: #485fc7; + cursor: pointer; + text-decoration: none; +} + +a strong { + color: currentColor; +} + +a:hover { + color: #363636; +} + +code { + background-color: whitesmoke; + color: #da1039; + font-size: 0.875em; + font-weight: normal; + padding: 0.25em 0.5em 0.25em; +} + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; +} + +img { + height: auto; + max-width: 100%; +} + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; +} + +small { + font-size: 0.875em; +} + +span { + font-style: inherit; + font-weight: inherit; +} + +strong { + color: #363636; + font-weight: 700; +} + +fieldset { + border: none; +} + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #4a4a4a; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; +} + +pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; +} + +table td, +table th { + vertical-align: top; +} + +table td:not([align]), +table th:not([align]) { + text-align: inherit; +} + +table th { + color: #363636; +} + +@-webkit-keyframes spinAround { + from { + transform: rotate(0deg); + } + to { + transform: rotate(359deg); + } +} + +@keyframes spinAround { + from { + transform: rotate(0deg); + } + to { + transform: rotate(359deg); + } +} + +/* Bulma Elements */ +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + color: #4a4a4a; + display: block; + padding: 1.25rem; +} + +a.box:hover, a.box:focus { + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #485fc7; +} + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #485fc7; +} + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.5em - 1px); + padding-left: 1em; + padding-right: 1em; + padding-top: calc(0.5em - 1px); + text-align: center; + white-space: nowrap; +} + +.button strong { + color: inherit; +} + +.button .icon, .button .icon.is-small, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; +} + +.button .icon:first-child:not(:last-child) { + margin-right: calc(-0.5em - 1px); + margin-left: 0.25em; +} + +.button .icon:last-child:not(:first-child) { + margin-right: 0.25em; + margin-left: calc(-0.5em - 1px); +} + +.button .icon:first-child:last-child { + margin-left: calc(-0.5em - 1px); + margin-right: calc(-0.5em - 1px); +} + +.button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; +} + +.button:focus, .button.is-focused { + border-color: #485fc7; + color: #363636; +} + +.button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; +} + +.button.is-text { + background-color: transparent; + border-color: transparent; + color: #4a4a4a; + text-decoration: underline; +} + +.button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #363636; +} + +.button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.button.is-text[disabled], +fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; +} + +.button.is-ghost { + background: none; + border-color: transparent; + color: #485fc7; + text-decoration: none; +} + +.button.is-ghost:hover, .button.is-ghost.is-hovered { + color: #485fc7; + text-decoration: underline; +} + +.button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white[disabled], +fieldset[disabled] .button.is-white { + background-color: white; + border-color: white; + box-shadow: none; +} + +.button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; +} + +.button.is-white.is-inverted[disabled], +fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; +} + +.button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined[disabled], +fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; +} + +.button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; +} + +.button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; +} + +.button.is-black[disabled], +fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + box-shadow: none; +} + +.button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-black.is-inverted[disabled], +fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined[disabled], +fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light[disabled], +fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; +} + +.button.is-light.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: whitesmoke; +} + +.button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); +} + +.button.is-light.is-inverted[disabled], +fieldset[disabled] .button.is-light.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; +} + +.button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-light.is-outlined[disabled], +fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-dark { + background-color: #363636; + border-color: transparent; + color: #fff; +} + +.button.is-dark:hover, .button.is-dark.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: #fff; +} + +.button.is-dark:focus, .button.is-dark.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.button.is-dark:active, .button.is-dark.is-active { + background-color: #292929; + border-color: transparent; + color: #fff; +} + +.button.is-dark[disabled], +fieldset[disabled] .button.is-dark { + background-color: #363636; + border-color: #363636; + box-shadow: none; +} + +.button.is-dark.is-inverted { + background-color: #fff; + color: #363636; +} + +.button.is-dark.is-inverted:hover, .button.is-dark.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-dark.is-inverted[disabled], +fieldset[disabled] .button.is-dark.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; +} + +.button.is-dark.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .button.is-dark.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: #fff; +} + +.button.is-dark.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-dark.is-outlined[disabled], +fieldset[disabled] .button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-dark.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-primary { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.button.is-primary:hover, .button.is-primary.is-hovered { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus, .button.is-primary.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus:not(:active), .button.is-primary.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.button.is-primary:active, .button.is-primary.is-active { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.button.is-primary[disabled], +fieldset[disabled] .button.is-primary { + background-color: #00d1b2; + border-color: #00d1b2; + box-shadow: none; +} + +.button.is-primary.is-inverted { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted:hover, .button.is-primary.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-primary.is-inverted[disabled], +fieldset[disabled] .button.is-primary.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + color: #00d1b2; +} + +.button.is-primary.is-outlined:hover, .button.is-primary.is-outlined.is-hovered, .button.is-primary.is-outlined:focus, .button.is-primary.is-outlined.is-focused { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.button.is-primary.is-outlined.is-loading::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-outlined.is-loading:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-outlined.is-loading:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined[disabled], +fieldset[disabled] .button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-primary.is-inverted.is-outlined:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .button.is-primary.is-inverted.is-outlined:focus, .button.is-primary.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-primary.is-light { + background-color: #ebfffc; + color: #00947e; +} + +.button.is-primary.is-light:hover, .button.is-primary.is-light.is-hovered { + background-color: #defffa; + border-color: transparent; + color: #00947e; +} + +.button.is-primary.is-light:active, .button.is-primary.is-light.is-active { + background-color: #d1fff8; + border-color: transparent; + color: #00947e; +} + +.button.is-link { + background-color: #485fc7; + border-color: transparent; + color: #fff; +} + +.button.is-link:hover, .button.is-link.is-hovered { + background-color: #3e56c4; + border-color: transparent; + color: #fff; +} + +.button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.button.is-link:active, .button.is-link.is-active { + background-color: #3a51bb; + border-color: transparent; + color: #fff; +} + +.button.is-link[disabled], +fieldset[disabled] .button.is-link { + background-color: #485fc7; + border-color: #485fc7; + box-shadow: none; +} + +.button.is-link.is-inverted { + background-color: #fff; + color: #485fc7; +} + +.button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-link.is-inverted[disabled], +fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #485fc7; +} + +.button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined { + background-color: transparent; + border-color: #485fc7; + color: #485fc7; +} + +.button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; +} + +.button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #485fc7 #485fc7 !important; +} + +.button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined[disabled], +fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #485fc7; + box-shadow: none; + color: #485fc7; +} + +.button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #485fc7; +} + +.button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #485fc7 #485fc7 !important; +} + +.button.is-link.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-link.is-light { + background-color: #eff1fa; + color: #3850b7; +} + +.button.is-link.is-light:hover, .button.is-link.is-light.is-hovered { + background-color: #e6e9f7; + border-color: transparent; + color: #3850b7; +} + +.button.is-link.is-light:active, .button.is-link.is-light.is-active { + background-color: #dce0f4; + border-color: transparent; + color: #3850b7; +} + +.button.is-info { + background-color: #3e8ed0; + border-color: transparent; + color: #fff; +} + +.button.is-info:hover, .button.is-info.is-hovered { + background-color: #3488ce; + border-color: transparent; + color: #fff; +} + +.button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25); +} + +.button.is-info:active, .button.is-info.is-active { + background-color: #3082c5; + border-color: transparent; + color: #fff; +} + +.button.is-info[disabled], +fieldset[disabled] .button.is-info { + background-color: #3e8ed0; + border-color: #3e8ed0; + box-shadow: none; +} + +.button.is-info.is-inverted { + background-color: #fff; + color: #3e8ed0; +} + +.button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-info.is-inverted[disabled], +fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #3e8ed0; +} + +.button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined { + background-color: transparent; + border-color: #3e8ed0; + color: #3e8ed0; +} + +.button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #3e8ed0; + border-color: #3e8ed0; + color: #fff; +} + +.button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #3e8ed0 #3e8ed0 !important; +} + +.button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined[disabled], +fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #3e8ed0; + box-shadow: none; + color: #3e8ed0; +} + +.button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #3e8ed0; +} + +.button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #3e8ed0 #3e8ed0 !important; +} + +.button.is-info.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-info.is-light { + background-color: #eff5fb; + color: #296fa8; +} + +.button.is-info.is-light:hover, .button.is-info.is-light.is-hovered { + background-color: #e4eff9; + border-color: transparent; + color: #296fa8; +} + +.button.is-info.is-light:active, .button.is-info.is-light.is-active { + background-color: #dae9f6; + border-color: transparent; + color: #296fa8; +} + +.button.is-success { + background-color: #48c78e; + border-color: transparent; + color: #fff; +} + +.button.is-success:hover, .button.is-success.is-hovered { + background-color: #3ec487; + border-color: transparent; + color: #fff; +} + +.button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25); +} + +.button.is-success:active, .button.is-success.is-active { + background-color: #3abb81; + border-color: transparent; + color: #fff; +} + +.button.is-success[disabled], +fieldset[disabled] .button.is-success { + background-color: #48c78e; + border-color: #48c78e; + box-shadow: none; +} + +.button.is-success.is-inverted { + background-color: #fff; + color: #48c78e; +} + +.button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-success.is-inverted[disabled], +fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #48c78e; +} + +.button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined { + background-color: transparent; + border-color: #48c78e; + color: #48c78e; +} + +.button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #48c78e; + border-color: #48c78e; + color: #fff; +} + +.button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #48c78e #48c78e !important; +} + +.button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined[disabled], +fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #48c78e; + box-shadow: none; + color: #48c78e; +} + +.button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #48c78e; +} + +.button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #48c78e #48c78e !important; +} + +.button.is-success.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-success.is-light { + background-color: #effaf5; + color: #257953; +} + +.button.is-success.is-light:hover, .button.is-success.is-light.is-hovered { + background-color: #e6f7ef; + border-color: transparent; + color: #257953; +} + +.button.is-success.is-light:active, .button.is-success.is-light.is-active { + background-color: #dcf4e9; + border-color: transparent; + color: #257953; +} + +.button.is-warning { + background-color: #ffe08a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdc7d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25); +} + +.button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd970; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning[disabled], +fieldset[disabled] .button.is-warning { + background-color: #ffe08a; + border-color: #ffe08a; + box-shadow: none; +} + +.button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffe08a; +} + +.button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted[disabled], +fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffe08a; +} + +.button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffe08a; + color: #ffe08a; +} + +.button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffe08a; + border-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffe08a #ffe08a !important; +} + +.button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined[disabled], +fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffe08a; + box-shadow: none; + color: #ffe08a; +} + +.button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffe08a; +} + +.button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffe08a #ffe08a !important; +} + +.button.is-warning.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-light { + background-color: #fffaeb; + color: #946c00; +} + +.button.is-warning.is-light:hover, .button.is-warning.is-light.is-hovered { + background-color: #fff6de; + border-color: transparent; + color: #946c00; +} + +.button.is-warning.is-light:active, .button.is-warning.is-light.is-active { + background-color: #fff3d1; + border-color: transparent; + color: #946c00; +} + +.button.is-danger { + background-color: #f14668; + border-color: transparent; + color: #fff; +} + +.button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #f03a5f; + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); +} + +.button.is-danger:active, .button.is-danger.is-active { + background-color: #ef2e55; + border-color: transparent; + color: #fff; +} + +.button.is-danger[disabled], +fieldset[disabled] .button.is-danger { + background-color: #f14668; + border-color: #f14668; + box-shadow: none; +} + +.button.is-danger.is-inverted { + background-color: #fff; + color: #f14668; +} + +.button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-danger.is-inverted[disabled], +fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #f14668; +} + +.button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined { + background-color: transparent; + border-color: #f14668; + color: #f14668; +} + +.button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #f14668; + border-color: #f14668; + color: #fff; +} + +.button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #f14668 #f14668 !important; +} + +.button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined[disabled], +fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #f14668; + box-shadow: none; + color: #f14668; +} + +.button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #f14668; +} + +.button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #f14668 #f14668 !important; +} + +.button.is-danger.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-danger.is-light { + background-color: #feecf0; + color: #cc0f35; +} + +.button.is-danger.is-light:hover, .button.is-danger.is-light.is-hovered { + background-color: #fde0e6; + border-color: transparent; + color: #cc0f35; +} + +.button.is-danger.is-light:active, .button.is-danger.is-light.is-active { + background-color: #fcd4dc; + border-color: transparent; + color: #cc0f35; +} + +.button.is-small { + font-size: 0.75rem; +} + +.button.is-small:not(.is-rounded) { + border-radius: 2px; +} + +.button.is-normal { + font-size: 1rem; +} + +.button.is-medium { + font-size: 1.25rem; +} + +.button.is-large { + font-size: 1.5rem; +} + +.button[disabled], +fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; +} + +.button.is-fullwidth { + display: flex; + width: 100%; +} + +.button.is-loading { + color: transparent !important; + pointer-events: none; +} + +.button.is-loading::after { + position: absolute; + left: calc(50% - (1em * 0.5)); + top: calc(50% - (1em * 0.5)); + position: absolute !important; +} + +.button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; +} + +.button.is-rounded { + border-radius: 9999px; + padding-left: calc(1em + 0.25em); + padding-right: calc(1em + 0.25em); +} + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.buttons .button { + margin-bottom: 0.5rem; +} + +.buttons .button:not(:last-child):not(.is-fullwidth) { + margin-left: 0.5rem; +} + +.buttons:last-child { + margin-bottom: -0.5rem; +} + +.buttons:not(:last-child) { + margin-bottom: 1rem; +} + +.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + font-size: 0.75rem; +} + +.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded) { + border-radius: 2px; +} + +.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; +} + +.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; +} + +.buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-left: -1px; +} + +.buttons.has-addons .button:last-child { + margin-left: 0; +} + +.buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; +} + +.buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; +} + +.buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; +} + +.buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.buttons.is-centered { + justify-content: center; +} + +.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.buttons.is-right { + justify-content: flex-end; +} + +.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +@media screen and (max-width: 768px) { + .button.is-responsive.is-small { + font-size: 0.5625rem; + } + .button.is-responsive, + .button.is-responsive.is-normal { + font-size: 0.65625rem; + } + .button.is-responsive.is-medium { + font-size: 0.75rem; + } + .button.is-responsive.is-large { + font-size: 1rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .button.is-responsive.is-small { + font-size: 0.65625rem; + } + .button.is-responsive, + .button.is-responsive.is-normal { + font-size: 0.75rem; + } + .button.is-responsive.is-medium { + font-size: 1rem; + } + .button.is-responsive.is-large { + font-size: 1.25rem; + } +} + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; +} + +.container.is-fluid { + max-width: none !important; + padding-left: 32px; + padding-right: 32px; + width: 100%; +} + +@media screen and (min-width: 1024px) { + .container { + max-width: 960px; + } +} + +@media screen and (max-width: 1215px) { + .container.is-widescreen:not(.is-max-desktop) { + max-width: 1152px; + } +} + +@media screen and (max-width: 1407px) { + .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) { + max-width: 1344px; + } +} + +@media screen and (min-width: 1216px) { + .container:not(.is-max-desktop) { + max-width: 1152px; + } +} + +@media screen and (min-width: 1408px) { + .container:not(.is-max-desktop):not(.is-max-widescreen) { + max-width: 1344px; + } +} + +.content li + li { + margin-top: 0.25em; +} + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #363636; + font-weight: 600; + line-height: 1.125; +} + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; +} + +.content h1:not(:first-child) { + margin-top: 1em; +} + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; +} + +.content h2:not(:first-child) { + margin-top: 1.1428em; +} + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; +} + +.content h3:not(:first-child) { + margin-top: 1.3333em; +} + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; +} + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; +} + +.content h6 { + font-size: 1em; + margin-bottom: 1em; +} + +.content blockquote { + background-color: whitesmoke; + border-right: 5px solid #dbdbdb; + padding: 1.25em 1.5em; +} + +.content ol { + list-style-position: outside; + margin-right: 2em; + margin-top: 1em; +} + +.content ol:not([type]) { + list-style-type: decimal; +} + +.content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; +} + +.content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; +} + +.content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; +} + +.content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; +} + +.content ul { + list-style: disc outside; + margin-right: 2em; + margin-top: 1em; +} + +.content ul ul { + list-style-type: circle; + margin-top: 0.5em; +} + +.content ul ul ul { + list-style-type: square; +} + +.content dd { + margin-right: 2em; +} + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; +} + +.content figure:not(:first-child) { + margin-top: 2em; +} + +.content figure:not(:last-child) { + margin-bottom: 2em; +} + +.content figure img { + display: inline-block; +} + +.content figure figcaption { + font-style: italic; +} + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 1.25em 1.5em; + white-space: pre; + word-wrap: normal; +} + +.content sup, +.content sub { + font-size: 75%; +} + +.content table { + width: 100%; +} + +.content table td, +.content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.content table th { + color: #363636; +} + +.content table th:not([align]) { + text-align: inherit; +} + +.content table thead td, +.content table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.content table tfoot td, +.content table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.content table tbody tr:last-child td, +.content table tbody tr:last-child th { + border-bottom-width: 0; +} + +.content .tabs li + li { + margin-top: 0; +} + +.content.is-small { + font-size: 0.75rem; +} + +.content.is-normal { + font-size: 1rem; +} + +.content.is-medium { + font-size: 1.25rem; +} + +.content.is-large { + font-size: 1.5rem; +} + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; +} + +.icon.is-small { + height: 1rem; + width: 1rem; +} + +.icon.is-medium { + height: 2rem; + width: 2rem; +} + +.icon.is-large { + height: 3rem; + width: 3rem; +} + +.icon-text { + align-items: flex-start; + color: inherit; + display: inline-flex; + flex-wrap: wrap; + line-height: 1.5rem; + vertical-align: top; +} + +.icon-text .icon { + flex-grow: 0; + flex-shrink: 0; +} + +.icon-text .icon:not(:last-child) { + margin-left: 0.25em; +} + +.icon-text .icon:not(:first-child) { + margin-right: 0.25em; +} + +div.icon-text { + display: flex; +} + +.image { + display: block; + position: relative; +} + +.image img { + display: block; + height: auto; + width: 100%; +} + +.image img.is-rounded { + border-radius: 9999px; +} + +.image.is-fullwidth { + width: 100%; +} + +.image.is-square img, +.image.is-square .has-ratio, .image.is-1by1 img, +.image.is-1by1 .has-ratio, .image.is-5by4 img, +.image.is-5by4 .has-ratio, .image.is-4by3 img, +.image.is-4by3 .has-ratio, .image.is-3by2 img, +.image.is-3by2 .has-ratio, .image.is-5by3 img, +.image.is-5by3 .has-ratio, .image.is-16by9 img, +.image.is-16by9 .has-ratio, .image.is-2by1 img, +.image.is-2by1 .has-ratio, .image.is-3by1 img, +.image.is-3by1 .has-ratio, .image.is-4by5 img, +.image.is-4by5 .has-ratio, .image.is-3by4 img, +.image.is-3by4 .has-ratio, .image.is-2by3 img, +.image.is-2by3 .has-ratio, .image.is-3by5 img, +.image.is-3by5 .has-ratio, .image.is-9by16 img, +.image.is-9by16 .has-ratio, .image.is-1by2 img, +.image.is-1by2 .has-ratio, .image.is-1by3 img, +.image.is-1by3 .has-ratio { + height: 100%; + width: 100%; +} + +.image.is-square, .image.is-1by1 { + padding-top: 100%; +} + +.image.is-5by4 { + padding-top: 80%; +} + +.image.is-4by3 { + padding-top: 75%; +} + +.image.is-3by2 { + padding-top: 66.6666%; +} + +.image.is-5by3 { + padding-top: 60%; +} + +.image.is-16by9 { + padding-top: 56.25%; +} + +.image.is-2by1 { + padding-top: 50%; +} + +.image.is-3by1 { + padding-top: 33.3333%; +} + +.image.is-4by5 { + padding-top: 125%; +} + +.image.is-3by4 { + padding-top: 133.3333%; +} + +.image.is-2by3 { + padding-top: 150%; +} + +.image.is-3by5 { + padding-top: 166.6666%; +} + +.image.is-9by16 { + padding-top: 177.7777%; +} + +.image.is-1by2 { + padding-top: 200%; +} + +.image.is-1by3 { + padding-top: 300%; +} + +.image.is-16x16 { + height: 16px; + width: 16px; +} + +.image.is-24x24 { + height: 24px; + width: 24px; +} + +.image.is-32x32 { + height: 32px; + width: 32px; +} + +.image.is-48x48 { + height: 48px; + width: 48px; +} + +.image.is-64x64 { + height: 64px; + width: 64px; +} + +.image.is-96x96 { + height: 96px; + width: 96px; +} + +.image.is-128x128 { + height: 128px; + width: 128px; +} + +.notification { + background-color: whitesmoke; + border-radius: 4px; + position: relative; + padding: 1.25rem 1.5rem 1.25rem 2.5rem; +} + +.notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.notification strong { + color: currentColor; +} + +.notification code, +.notification pre { + background: white; +} + +.notification pre code { + background: transparent; +} + +.notification > .delete { + left: 0.5rem; + position: absolute; + top: 0.5rem; +} + +.notification .title, +.notification .subtitle, +.notification .content { + color: currentColor; +} + +.notification.is-white { + background-color: white; + color: #0a0a0a; +} + +.notification.is-black { + background-color: #0a0a0a; + color: white; +} + +.notification.is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.notification.is-dark { + background-color: #363636; + color: #fff; +} + +.notification.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.notification.is-primary.is-light { + background-color: #ebfffc; + color: #00947e; +} + +.notification.is-link { + background-color: #485fc7; + color: #fff; +} + +.notification.is-link.is-light { + background-color: #eff1fa; + color: #3850b7; +} + +.notification.is-info { + background-color: #3e8ed0; + color: #fff; +} + +.notification.is-info.is-light { + background-color: #eff5fb; + color: #296fa8; +} + +.notification.is-success { + background-color: #48c78e; + color: #fff; +} + +.notification.is-success.is-light { + background-color: #effaf5; + color: #257953; +} + +.notification.is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.notification.is-warning.is-light { + background-color: #fffaeb; + color: #946c00; +} + +.notification.is-danger { + background-color: #f14668; + color: #fff; +} + +.notification.is-danger.is-light { + background-color: #feecf0; + color: #cc0f35; +} + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 9999px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; +} + +.progress::-webkit-progress-bar { + background-color: #ededed; +} + +.progress::-webkit-progress-value { + background-color: #4a4a4a; +} + +.progress::-moz-progress-bar { + background-color: #4a4a4a; +} + +.progress::-ms-fill { + background-color: #4a4a4a; + border: none; +} + +.progress.is-white::-webkit-progress-value { + background-color: white; +} + +.progress.is-white::-moz-progress-bar { + background-color: white; +} + +.progress.is-white::-ms-fill { + background-color: white; +} + +.progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #ededed 30%); +} + +.progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; +} + +.progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; +} + +.progress.is-black::-ms-fill { + background-color: #0a0a0a; +} + +.progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #ededed 30%); +} + +.progress.is-light::-webkit-progress-value { + background-color: whitesmoke; +} + +.progress.is-light::-moz-progress-bar { + background-color: whitesmoke; +} + +.progress.is-light::-ms-fill { + background-color: whitesmoke; +} + +.progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #ededed 30%); +} + +.progress.is-dark::-webkit-progress-value { + background-color: #363636; +} + +.progress.is-dark::-moz-progress-bar { + background-color: #363636; +} + +.progress.is-dark::-ms-fill { + background-color: #363636; +} + +.progress.is-dark:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #ededed 30%); +} + +.progress.is-primary::-webkit-progress-value { + background-color: #00d1b2; +} + +.progress.is-primary::-moz-progress-bar { + background-color: #00d1b2; +} + +.progress.is-primary::-ms-fill { + background-color: #00d1b2; +} + +.progress.is-primary:indeterminate { + background-image: linear-gradient(to right, #00d1b2 30%, #ededed 30%); +} + +.progress.is-link::-webkit-progress-value { + background-color: #485fc7; +} + +.progress.is-link::-moz-progress-bar { + background-color: #485fc7; +} + +.progress.is-link::-ms-fill { + background-color: #485fc7; +} + +.progress.is-link:indeterminate { + background-image: linear-gradient(to right, #485fc7 30%, #ededed 30%); +} + +.progress.is-info::-webkit-progress-value { + background-color: #3e8ed0; +} + +.progress.is-info::-moz-progress-bar { + background-color: #3e8ed0; +} + +.progress.is-info::-ms-fill { + background-color: #3e8ed0; +} + +.progress.is-info:indeterminate { + background-image: linear-gradient(to right, #3e8ed0 30%, #ededed 30%); +} + +.progress.is-success::-webkit-progress-value { + background-color: #48c78e; +} + +.progress.is-success::-moz-progress-bar { + background-color: #48c78e; +} + +.progress.is-success::-ms-fill { + background-color: #48c78e; +} + +.progress.is-success:indeterminate { + background-image: linear-gradient(to right, #48c78e 30%, #ededed 30%); +} + +.progress.is-warning::-webkit-progress-value { + background-color: #ffe08a; +} + +.progress.is-warning::-moz-progress-bar { + background-color: #ffe08a; +} + +.progress.is-warning::-ms-fill { + background-color: #ffe08a; +} + +.progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffe08a 30%, #ededed 30%); +} + +.progress.is-danger::-webkit-progress-value { + background-color: #f14668; +} + +.progress.is-danger::-moz-progress-bar { + background-color: #f14668; +} + +.progress.is-danger::-ms-fill { + background-color: #f14668; +} + +.progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #f14668 30%, #ededed 30%); +} + +.progress:indeterminate { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-name: moveIndeterminate; + animation-name: moveIndeterminate; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + background-color: #ededed; + background-image: linear-gradient(to right, #4a4a4a 30%, #ededed 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; +} + +.progress:indeterminate::-webkit-progress-bar { + background-color: transparent; +} + +.progress:indeterminate::-moz-progress-bar { + background-color: transparent; +} + +.progress:indeterminate::-ms-fill { + animation-name: none; +} + +.progress.is-small { + height: 0.75rem; +} + +.progress.is-medium { + height: 1.25rem; +} + +.progress.is-large { + height: 1.5rem; +} + +@-webkit-keyframes moveIndeterminate { + from { + background-position: 200% 0; + } + to { + background-position: -200% 0; + } +} + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; + } + to { + background-position: -200% 0; + } +} + +.table { + background-color: white; + color: #363636; +} + +.table td, +.table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.table td.is-white, +.table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.table td.is-black, +.table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.table td.is-light, +.table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.table td.is-dark, +.table th.is-dark { + background-color: #363636; + border-color: #363636; + color: #fff; +} + +.table td.is-primary, +.table th.is-primary { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.table td.is-link, +.table th.is-link { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; +} + +.table td.is-info, +.table th.is-info { + background-color: #3e8ed0; + border-color: #3e8ed0; + color: #fff; +} + +.table td.is-success, +.table th.is-success { + background-color: #48c78e; + border-color: #48c78e; + color: #fff; +} + +.table td.is-warning, +.table th.is-warning { + background-color: #ffe08a; + border-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.table td.is-danger, +.table th.is-danger { + background-color: #f14668; + border-color: #f14668; + color: #fff; +} + +.table td.is-narrow, +.table th.is-narrow { + white-space: nowrap; + width: 1%; +} + +.table td.is-selected, +.table th.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table td.is-selected a, +.table td.is-selected strong, +.table th.is-selected a, +.table th.is-selected strong { + color: currentColor; +} + +.table td.is-vcentered, +.table th.is-vcentered { + vertical-align: middle; +} + +.table th { + color: #363636; +} + +.table th:not([align]) { + text-align: left; +} + +.table tr.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table tr.is-selected a, +.table tr.is-selected strong { + color: currentColor; +} + +.table tr.is-selected td, +.table tr.is-selected th { + border-color: #fff; + color: currentColor; +} + +.table thead { + background-color: transparent; +} + +.table thead td, +.table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.table tfoot { + background-color: transparent; +} + +.table tfoot td, +.table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.table tbody { + background-color: transparent; +} + +.table tbody tr:last-child td, +.table tbody tr:last-child th { + border-bottom-width: 0; +} + +.table.is-bordered td, +.table.is-bordered th { + border-width: 1px; +} + +.table.is-bordered tr:last-child td, +.table.is-bordered tr:last-child th { + border-bottom-width: 1px; +} + +.table.is-fullwidth { + width: 100%; +} + +.table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; +} + +.table.is-narrow td, +.table.is-narrow th { + padding: 0.25em 0.5em; +} + +.table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; +} + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; +} + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.tags .tag { + margin-bottom: 0.5rem; +} + +.tags .tag:not(:last-child) { + margin-left: 0.5rem; +} + +.tags:last-child { + margin-bottom: -0.5rem; +} + +.tags:not(:last-child) { + margin-bottom: 1rem; +} + +.tags.are-medium .tag:not(.is-normal):not(.is-large) { + font-size: 1rem; +} + +.tags.are-large .tag:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; +} + +.tags.is-centered { + justify-content: center; +} + +.tags.is-centered .tag { + margin-right: 0.25rem; + margin-left: 0.25rem; +} + +.tags.is-right { + justify-content: flex-end; +} + +.tags.is-right .tag:not(:first-child) { + margin-left: 0.5rem; +} + +.tags.is-right .tag:not(:last-child) { + margin-right: 0; +} + +.tags.has-addons .tag { + margin-left: 0; +} + +.tags.has-addons .tag:not(:first-child) { + margin-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.tags.has-addons .tag:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.tag:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #4a4a4a; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.tag:not(body) .delete { + margin-right: 0.25rem; + margin-left: -0.375rem; +} + +.tag:not(body).is-white { + background-color: white; + color: #0a0a0a; +} + +.tag:not(body).is-black { + background-color: #0a0a0a; + color: white; +} + +.tag:not(body).is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.tag:not(body).is-dark { + background-color: #363636; + color: #fff; +} + +.tag:not(body).is-primary { + background-color: #00d1b2; + color: #fff; +} + +.tag:not(body).is-primary.is-light { + background-color: #ebfffc; + color: #00947e; +} + +.tag:not(body).is-link { + background-color: #485fc7; + color: #fff; +} + +.tag:not(body).is-link.is-light { + background-color: #eff1fa; + color: #3850b7; +} + +.tag:not(body).is-info { + background-color: #3e8ed0; + color: #fff; +} + +.tag:not(body).is-info.is-light { + background-color: #eff5fb; + color: #296fa8; +} + +.tag:not(body).is-success { + background-color: #48c78e; + color: #fff; +} + +.tag:not(body).is-success.is-light { + background-color: #effaf5; + color: #257953; +} + +.tag:not(body).is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.tag:not(body).is-warning.is-light { + background-color: #fffaeb; + color: #946c00; +} + +.tag:not(body).is-danger { + background-color: #f14668; + color: #fff; +} + +.tag:not(body).is-danger.is-light { + background-color: #feecf0; + color: #cc0f35; +} + +.tag:not(body).is-normal { + font-size: 0.75rem; +} + +.tag:not(body).is-medium { + font-size: 1rem; +} + +.tag:not(body).is-large { + font-size: 1.25rem; +} + +.tag:not(body) .icon:first-child:not(:last-child) { + margin-right: -0.375em; + margin-left: 0.1875em; +} + +.tag:not(body) .icon:last-child:not(:first-child) { + margin-right: 0.1875em; + margin-left: -0.375em; +} + +.tag:not(body) .icon:first-child:last-child { + margin-right: -0.375em; + margin-left: -0.375em; +} + +.tag:not(body).is-delete { + margin-right: 1px; + padding: 0; + position: relative; + width: 2em; +} + +.tag:not(body).is-delete::before, .tag:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; +} + +.tag:not(body).is-delete::before { + height: 1px; + width: 50%; +} + +.tag:not(body).is-delete::after { + height: 50%; + width: 1px; +} + +.tag:not(body).is-delete:hover, .tag:not(body).is-delete:focus { + background-color: #e8e8e8; +} + +.tag:not(body).is-delete:active { + background-color: #dbdbdb; +} + +.tag:not(body).is-rounded { + border-radius: 9999px; +} + +a.tag:hover { + text-decoration: underline; +} + +.title, +.subtitle { + word-break: break-word; +} + +.title em, +.title span, +.subtitle em, +.subtitle span { + font-weight: inherit; +} + +.title sub, +.subtitle sub { + font-size: 0.75em; +} + +.title sup, +.subtitle sup { + font-size: 0.75em; +} + +.title .tag, +.subtitle .tag { + vertical-align: middle; +} + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; +} + +.title strong { + color: inherit; + font-weight: inherit; +} + +.title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; +} + +.title.is-1 { + font-size: 3rem; +} + +.title.is-2 { + font-size: 2.5rem; +} + +.title.is-3 { + font-size: 2rem; +} + +.title.is-4 { + font-size: 1.5rem; +} + +.title.is-5 { + font-size: 1.25rem; +} + +.title.is-6 { + font-size: 1rem; +} + +.title.is-7 { + font-size: 0.75rem; +} + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; +} + +.subtitle strong { + color: #363636; + font-weight: 600; +} + +.subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; +} + +.subtitle.is-1 { + font-size: 3rem; +} + +.subtitle.is-2 { + font-size: 2.5rem; +} + +.subtitle.is-3 { + font-size: 2rem; +} + +.subtitle.is-4 { + font-size: 1.5rem; +} + +.subtitle.is-5 { + font-size: 1.25rem; +} + +.subtitle.is-6 { + font-size: 1rem; +} + +.subtitle.is-7 { + font-size: 0.75rem; +} + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; +} + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 9999px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; +} + +/* Bulma Form */ +.input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; +} + +.input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:hover, .textarea:hover, .select select:hover, .is-hovered.input, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; +} + +.input:focus, .textarea:focus, .select select:focus, .is-focused.input, .is-focused.textarea, .select select.is-focused, .input:active, .textarea:active, .select select:active, .is-active.input, .is-active.textarea, .select select.is-active { + border-color: #485fc7; + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.input[disabled], .textarea[disabled], .select select[disabled], +fieldset[disabled] .input, +fieldset[disabled] .textarea, +fieldset[disabled] .select select, +.select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; +} + +.input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, +fieldset[disabled] .input::-moz-placeholder, +fieldset[disabled] .textarea::-moz-placeholder, +fieldset[disabled] .select select::-moz-placeholder, +.select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, +fieldset[disabled] .input::-webkit-input-placeholder, +fieldset[disabled] .textarea::-webkit-input-placeholder, +fieldset[disabled] .select select::-webkit-input-placeholder, +.select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, +fieldset[disabled] .input:-moz-placeholder, +fieldset[disabled] .textarea:-moz-placeholder, +fieldset[disabled] .select select:-moz-placeholder, +.select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, +fieldset[disabled] .input:-ms-input-placeholder, +fieldset[disabled] .textarea:-ms-input-placeholder, +fieldset[disabled] .select select:-ms-input-placeholder, +.select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input, .textarea { + box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); + max-width: 100%; + width: 100%; +} + +.input[readonly], .textarea[readonly] { + box-shadow: none; +} + +.is-white.input, .is-white.textarea { + border-color: white; +} + +.is-white.input:focus, .is-white.textarea:focus, .is-white.is-focused.input, .is-white.is-focused.textarea, .is-white.input:active, .is-white.textarea:active, .is-white.is-active.input, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.is-black.input, .is-black.textarea { + border-color: #0a0a0a; +} + +.is-black.input:focus, .is-black.textarea:focus, .is-black.is-focused.input, .is-black.is-focused.textarea, .is-black.input:active, .is-black.textarea:active, .is-black.is-active.input, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.is-light.input, .is-light.textarea { + border-color: whitesmoke; +} + +.is-light.input:focus, .is-light.textarea:focus, .is-light.is-focused.input, .is-light.is-focused.textarea, .is-light.input:active, .is-light.textarea:active, .is-light.is-active.input, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.is-dark.input, .is-dark.textarea { + border-color: #363636; +} + +.is-dark.input:focus, .is-dark.textarea:focus, .is-dark.is-focused.input, .is-dark.is-focused.textarea, .is-dark.input:active, .is-dark.textarea:active, .is-dark.is-active.input, .is-dark.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.is-primary.input, .is-primary.textarea { + border-color: #00d1b2; +} + +.is-primary.input:focus, .is-primary.textarea:focus, .is-primary.is-focused.input, .is-primary.is-focused.textarea, .is-primary.input:active, .is-primary.textarea:active, .is-primary.is-active.input, .is-primary.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.is-link.input, .is-link.textarea { + border-color: #485fc7; +} + +.is-link.input:focus, .is-link.textarea:focus, .is-link.is-focused.input, .is-link.is-focused.textarea, .is-link.input:active, .is-link.textarea:active, .is-link.is-active.input, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.is-info.input, .is-info.textarea { + border-color: #3e8ed0; +} + +.is-info.input:focus, .is-info.textarea:focus, .is-info.is-focused.input, .is-info.is-focused.textarea, .is-info.input:active, .is-info.textarea:active, .is-info.is-active.input, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25); +} + +.is-success.input, .is-success.textarea { + border-color: #48c78e; +} + +.is-success.input:focus, .is-success.textarea:focus, .is-success.is-focused.input, .is-success.is-focused.textarea, .is-success.input:active, .is-success.textarea:active, .is-success.is-active.input, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25); +} + +.is-warning.input, .is-warning.textarea { + border-color: #ffe08a; +} + +.is-warning.input:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, .is-warning.is-focused.textarea, .is-warning.input:active, .is-warning.textarea:active, .is-warning.is-active.input, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25); +} + +.is-danger.input, .is-danger.textarea { + border-color: #f14668; +} + +.is-danger.input:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, .is-danger.is-focused.textarea, .is-danger.input:active, .is-danger.textarea:active, .is-danger.is-active.input, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); +} + +.is-small.input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; +} + +.is-medium.input, .is-medium.textarea { + font-size: 1.25rem; +} + +.is-large.input, .is-large.textarea { + font-size: 1.5rem; +} + +.is-fullwidth.input, .is-fullwidth.textarea { + display: block; + width: 100%; +} + +.is-inline.input, .is-inline.textarea { + display: inline; + width: auto; +} + +.input.is-rounded { + border-radius: 9999px; + padding-left: calc(calc(0.75em - 1px) + 0.375em); + padding-right: calc(calc(0.75em - 1px) + 0.375em); +} + +.input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; +} + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: calc(0.75em - 1px); + resize: vertical; +} + +.textarea:not([rows]) { + max-height: 40em; + min-height: 8em; +} + +.textarea[rows] { + height: initial; +} + +.textarea.has-fixed-size { + resize: none; +} + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; +} + +.checkbox input, .radio input { + cursor: pointer; +} + +.checkbox:hover, .radio:hover { + color: #363636; +} + +.checkbox[disabled], .radio[disabled], +fieldset[disabled] .checkbox, +fieldset[disabled] .radio, +.checkbox input[disabled], +.radio input[disabled] { + color: #7a7a7a; + cursor: not-allowed; +} + +.radio + .radio { + margin-right: 0.5em; +} + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; +} + +.select:not(.is-multiple) { + height: 2.5em; +} + +.select:not(.is-multiple):not(.is-loading)::after { + border-color: #485fc7; + left: 1.125em; + z-index: 4; +} + +.select.is-rounded select { + border-radius: 9999px; + padding-right: 1em; +} + +.select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; +} + +.select select::-ms-expand { + display: none; +} + +.select select[disabled]:hover, +fieldset[disabled] .select select:hover { + border-color: whitesmoke; +} + +.select select:not([multiple]) { + padding-left: 2.5em; +} + +.select select[multiple] { + height: auto; + padding: 0; +} + +.select select[multiple] option { + padding: 0.5em 1em; +} + +.select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; +} + +.select.is-white:not(:hover)::after { + border-color: white; +} + +.select.is-white select { + border-color: white; +} + +.select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; +} + +.select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.select.is-black:not(:hover)::after { + border-color: #0a0a0a; +} + +.select.is-black select { + border-color: #0a0a0a; +} + +.select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; +} + +.select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.select.is-light:not(:hover)::after { + border-color: whitesmoke; +} + +.select.is-light select { + border-color: whitesmoke; +} + +.select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; +} + +.select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.select.is-dark:not(:hover)::after { + border-color: #363636; +} + +.select.is-dark select { + border-color: #363636; +} + +.select.is-dark select:hover, .select.is-dark select.is-hovered { + border-color: #292929; +} + +.select.is-dark select:focus, .select.is-dark select.is-focused, .select.is-dark select:active, .select.is-dark select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.select.is-primary:not(:hover)::after { + border-color: #00d1b2; +} + +.select.is-primary select { + border-color: #00d1b2; +} + +.select.is-primary select:hover, .select.is-primary select.is-hovered { + border-color: #00b89c; +} + +.select.is-primary select:focus, .select.is-primary select.is-focused, .select.is-primary select:active, .select.is-primary select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.select.is-link:not(:hover)::after { + border-color: #485fc7; +} + +.select.is-link select { + border-color: #485fc7; +} + +.select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #3a51bb; +} + +.select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.select.is-info:not(:hover)::after { + border-color: #3e8ed0; +} + +.select.is-info select { + border-color: #3e8ed0; +} + +.select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #3082c5; +} + +.select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25); +} + +.select.is-success:not(:hover)::after { + border-color: #48c78e; +} + +.select.is-success select { + border-color: #48c78e; +} + +.select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #3abb81; +} + +.select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25); +} + +.select.is-warning:not(:hover)::after { + border-color: #ffe08a; +} + +.select.is-warning select { + border-color: #ffe08a; +} + +.select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd970; +} + +.select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25); +} + +.select.is-danger:not(:hover)::after { + border-color: #f14668; +} + +.select.is-danger select { + border-color: #f14668; +} + +.select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #ef2e55; +} + +.select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); +} + +.select.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.select.is-medium { + font-size: 1.25rem; +} + +.select.is-large { + font-size: 1.5rem; +} + +.select.is-disabled::after { + border-color: #7a7a7a !important; + opacity: 0.5; +} + +.select.is-fullwidth { + width: 100%; +} + +.select.is-fullwidth select { + width: 100%; +} + +.select.is-loading::after { + margin-top: 0; + position: absolute; + left: 0.625em; + top: 0.625em; + transform: none; +} + +.select.is-loading.is-small:after { + font-size: 0.75rem; +} + +.select.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.select.is-loading.is-large:after { + font-size: 1.5rem; +} + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; +} + +.file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; +} + +.file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; +} + +.file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; +} + +.file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; +} + +.file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: rgba(0, 0, 0, 0.7); +} + +.file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-dark .file-cta { + background-color: #363636; + border-color: transparent; + color: #fff; +} + +.file.is-dark:hover .file-cta, .file.is-dark.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: #fff; +} + +.file.is-dark:focus .file-cta, .file.is-dark.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: #fff; +} + +.file.is-dark:active .file-cta, .file.is-dark.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: #fff; +} + +.file.is-primary .file-cta { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.file.is-primary:hover .file-cta, .file.is-primary.is-hovered .file-cta { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.file.is-primary:focus .file-cta, .file.is-primary.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 209, 178, 0.25); + color: #fff; +} + +.file.is-primary:active .file-cta, .file.is-primary.is-active .file-cta { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.file.is-link .file-cta { + background-color: #485fc7; + border-color: transparent; + color: #fff; +} + +.file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #3e56c4; + border-color: transparent; + color: #fff; +} + +.file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(72, 95, 199, 0.25); + color: #fff; +} + +.file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #3a51bb; + border-color: transparent; + color: #fff; +} + +.file.is-info .file-cta { + background-color: #3e8ed0; + border-color: transparent; + color: #fff; +} + +.file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #3488ce; + border-color: transparent; + color: #fff; +} + +.file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(62, 142, 208, 0.25); + color: #fff; +} + +.file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #3082c5; + border-color: transparent; + color: #fff; +} + +.file.is-success .file-cta { + background-color: #48c78e; + border-color: transparent; + color: #fff; +} + +.file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #3ec487; + border-color: transparent; + color: #fff; +} + +.file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(72, 199, 142, 0.25); + color: #fff; +} + +.file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #3abb81; + border-color: transparent; + color: #fff; +} + +.file.is-warning .file-cta { + background-color: #ffe08a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdc7d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 224, 138, 0.25); + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd970; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-danger .file-cta { + background-color: #f14668; + border-color: transparent; + color: #fff; +} + +.file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #f03a5f; + border-color: transparent; + color: #fff; +} + +.file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25); + color: #fff; +} + +.file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #ef2e55; + border-color: transparent; + color: #fff; +} + +.file.is-small { + font-size: 0.75rem; +} + +.file.is-normal { + font-size: 1rem; +} + +.file.is-medium { + font-size: 1.25rem; +} + +.file.is-medium .file-icon .fa { + font-size: 21px; +} + +.file.is-large { + font-size: 1.5rem; +} + +.file.is-large .file-icon .fa { + font-size: 28px; +} + +.file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.file.has-name.is-empty .file-cta { + border-radius: 4px; +} + +.file.has-name.is-empty .file-name { + display: none; +} + +.file.is-boxed .file-label { + flex-direction: column; +} + +.file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; +} + +.file.is-boxed .file-name { + border-width: 0 1px 1px; +} + +.file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; +} + +.file.is-boxed .file-icon .fa { + font-size: 21px; +} + +.file.is-boxed.is-small .file-icon .fa { + font-size: 14px; +} + +.file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; +} + +.file.is-boxed.is-large .file-icon .fa { + font-size: 35px; +} + +.file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; +} + +.file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; +} + +.file.is-centered { + justify-content: center; +} + +.file.is-fullwidth .file-label { + width: 100%; +} + +.file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; +} + +.file.is-right { + justify-content: flex-end; +} + +.file.is-right .file-cta { + border-radius: 0 4px 4px 0; +} + +.file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; +} + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; +} + +.file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; +} + +.file-label:hover .file-name { + border-color: #d5d5d5; +} + +.file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; +} + +.file-label:active .file-name { + border-color: #cfcfcf; +} + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; +} + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; +} + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; +} + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: inherit; + text-overflow: ellipsis; +} + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-left: 0.5em; + width: 1em; +} + +.file-icon .fa { + font-size: 14px; +} + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; +} + +.label:not(:last-child) { + margin-bottom: 0.5em; +} + +.label.is-small { + font-size: 0.75rem; +} + +.label.is-medium { + font-size: 1.25rem; +} + +.label.is-large { + font-size: 1.5rem; +} + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; +} + +.help.is-white { + color: white; +} + +.help.is-black { + color: #0a0a0a; +} + +.help.is-light { + color: whitesmoke; +} + +.help.is-dark { + color: #363636; +} + +.help.is-primary { + color: #00d1b2; +} + +.help.is-link { + color: #485fc7; +} + +.help.is-info { + color: #3e8ed0; +} + +.help.is-success { + color: #48c78e; +} + +.help.is-warning { + color: #ffe08a; +} + +.help.is-danger { + color: #f14668; +} + +.field:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.has-addons { + display: flex; + justify-content: flex-start; +} + +.field.has-addons .control:not(:last-child) { + margin-left: -1px; +} + +.field.has-addons .control:not(:first-child):not(:last-child) .button, +.field.has-addons .control:not(:first-child):not(:last-child) .input, +.field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; +} + +.field.has-addons .control:first-child:not(:only-child) .button, +.field.has-addons .control:first-child:not(:only-child) .input, +.field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.field.has-addons .control:last-child:not(:only-child) .button, +.field.has-addons .control:last-child:not(:only-child) .input, +.field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, +.field.has-addons .control .input:not([disabled]):hover, +.field.has-addons .control .input:not([disabled]).is-hovered, +.field.has-addons .control .select select:not([disabled]):hover, +.field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; +} + +.field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, +.field.has-addons .control .input:not([disabled]):focus, +.field.has-addons .control .input:not([disabled]).is-focused, +.field.has-addons .control .input:not([disabled]):active, +.field.has-addons .control .input:not([disabled]).is-active, +.field.has-addons .control .select select:not([disabled]):focus, +.field.has-addons .control .select select:not([disabled]).is-focused, +.field.has-addons .control .select select:not([disabled]):active, +.field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; +} + +.field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, +.field.has-addons .control .input:not([disabled]):focus:hover, +.field.has-addons .control .input:not([disabled]).is-focused:hover, +.field.has-addons .control .input:not([disabled]):active:hover, +.field.has-addons .control .input:not([disabled]).is-active:hover, +.field.has-addons .control .select select:not([disabled]):focus:hover, +.field.has-addons .control .select select:not([disabled]).is-focused:hover, +.field.has-addons .control .select select:not([disabled]):active:hover, +.field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; +} + +.field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.has-addons.has-addons-centered { + justify-content: center; +} + +.field.has-addons.has-addons-right { + justify-content: flex-end; +} + +.field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; +} + +.field.is-grouped { + display: flex; + justify-content: flex-start; +} + +.field.is-grouped > .control { + flex-shrink: 0; +} + +.field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-left: 0.75rem; +} + +.field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.is-grouped.is-grouped-centered { + justify-content: center; +} + +.field.is-grouped.is-grouped-right { + justify-content: flex-end; +} + +.field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; +} + +.field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; +} + +.field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; + } +} + +.field-label .label { + font-size: inherit; +} + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-left: 1.5rem; + text-align: right; + } + .field-label.is-small { + font-size: 0.75rem; + padding-top: 0.375em; + } + .field-label.is-normal { + padding-top: 0.375em; + } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; + } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; + } +} + +.field-body .field .field { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; + } + .field-body .field { + margin-bottom: 0; + } + .field-body > .field { + flex-shrink: 1; + } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; + } + .field-body > .field:not(:last-child) { + margin-left: 0.75rem; + } +} + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: inherit; +} + +.control.has-icons-left .input:focus ~ .icon, +.control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, +.control.has-icons-right .select:focus ~ .icon { + color: #4a4a4a; +} + +.control.has-icons-left .input.is-small ~ .icon, +.control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, +.control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; +} + +.control.has-icons-left .input.is-medium ~ .icon, +.control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, +.control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; +} + +.control.has-icons-left .input.is-large ~ .icon, +.control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, +.control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; +} + +.control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.5em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.5em; + z-index: 4; +} + +.control.has-icons-left .input, +.control.has-icons-left .select select { + padding-left: 2.5em; +} + +.control.has-icons-left .icon.is-left { + left: 0; +} + +.control.has-icons-right .input, +.control.has-icons-right .select select { + padding-right: 2.5em; +} + +.control.has-icons-right .icon.is-right { + right: 0; +} + +.control.is-loading::after { + position: absolute !important; + left: 0.625em; + top: 0.625em; + z-index: 4; +} + +.control.is-loading.is-small:after { + font-size: 0.75rem; +} + +.control.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.control.is-loading.is-large:after { + font-size: 1.5rem; +} + +/* Bulma Components */ +.breadcrumb { + font-size: 1rem; + white-space: nowrap; +} + +.breadcrumb a { + align-items: center; + color: #485fc7; + display: flex; + justify-content: center; + padding: 0 0.75em; +} + +.breadcrumb a:hover { + color: #363636; +} + +.breadcrumb li { + align-items: center; + display: flex; +} + +.breadcrumb li:first-child a { + padding-right: 0; +} + +.breadcrumb li.is-active a { + color: #363636; + cursor: default; + pointer-events: none; +} + +.breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; +} + +.breadcrumb ul, +.breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.breadcrumb .icon:first-child { + margin-left: 0.5em; +} + +.breadcrumb .icon:last-child { + margin-right: 0.5em; +} + +.breadcrumb.is-centered ol, +.breadcrumb.is-centered ul { + justify-content: center; +} + +.breadcrumb.is-right ol, +.breadcrumb.is-right ul { + justify-content: flex-end; +} + +.breadcrumb.is-small { + font-size: 0.75rem; +} + +.breadcrumb.is-medium { + font-size: 1.25rem; +} + +.breadcrumb.is-large { + font-size: 1.5rem; +} + +.breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; +} + +.breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; +} + +.breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; +} + +.breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; +} + +.card { + background-color: white; + border-radius: 0.25rem; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + color: #4a4a4a; + max-width: 100%; + position: relative; +} + +.card-header:first-child, .card-content:first-child, .card-footer:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card-header:last-child, .card-content:last-child, .card-footer:last-child { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); + display: flex; +} + +.card-header-title { + align-items: center; + color: #363636; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem 1rem; +} + +.card-header-title.is-centered { + justify-content: center; +} + +.card-header-icon { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + color: currentColor; + font-family: inherit; + font-size: 1em; + margin: 0; + padding: 0; + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem 1rem; +} + +.card-image { + display: block; + position: relative; +} + +.card-image:first-child img { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card-image:last-child img { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.card-content { + background-color: transparent; + padding: 1.5rem; +} + +.card-footer { + background-color: transparent; + border-top: 1px solid #ededed; + align-items: stretch; + display: flex; +} + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; +} + +.card-footer-item:not(:last-child) { + border-left: 1px solid #ededed; +} + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; +} + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; +} + +.dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; +} + +.dropdown.is-right .dropdown-menu { + left: auto; + right: 0; +} + +.dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; +} + +.dropdown-menu { + display: none; + right: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; +} + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; +} + +a.dropdown-item, +button.dropdown-item { + padding-left: 3rem; + text-align: inherit; + white-space: nowrap; + width: 100%; +} + +a.dropdown-item:hover, +button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; +} + +a.dropdown-item.is-active, +button.dropdown-item.is-active { + background-color: #485fc7; + color: #fff; +} + +.dropdown-divider { + background-color: #ededed; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; +} + +.level { + align-items: center; + justify-content: space-between; +} + +.level code { + border-radius: 4px; +} + +.level img { + display: inline-block; + vertical-align: top; +} + +.level.is-mobile { + display: flex; +} + +.level.is-mobile .level-left, +.level.is-mobile .level-right { + display: flex; +} + +.level.is-mobile .level-left + .level-right { + margin-top: 0; +} + +.level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-left: 0.75rem; +} + +.level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level { + display: flex; + } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; + } +} + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; +} + +.level-item .title, +.level-item .subtitle { + margin-bottom: 0; +} + +@media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.level-left .level-item.is-flexible, +.level-right .level-item.is-flexible { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-left: 0.75rem; + } +} + +.level-left { + align-items: center; + justify-content: flex-start; +} + +@media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .level-left { + display: flex; + } +} + +.level-right { + align-items: center; + justify-content: flex-end; +} + +@media screen and (min-width: 769px), print { + .level-right { + display: flex; + } +} + +.media { + align-items: flex-start; + display: flex; + text-align: inherit; +} + +.media .content:not(:last-child) { + margin-bottom: 0.75rem; +} + +.media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; +} + +.media .media .content:not(:last-child), +.media .media .control:not(:last-child) { + margin-bottom: 0.5rem; +} + +.media .media .media { + padding-top: 0.5rem; +} + +.media .media .media + .media { + margin-top: 0.5rem; +} + +.media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; +} + +.media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; +} + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.media-left { + margin-left: 1rem; +} + +.media-right { + margin-right: 1rem; +} + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: inherit; +} + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; + } +} + +.menu { + font-size: 1rem; +} + +.menu.is-small { + font-size: 0.75rem; +} + +.menu.is-medium { + font-size: 1.25rem; +} + +.menu.is-large { + font-size: 1.5rem; +} + +.menu-list { + line-height: 1.25; +} + +.menu-list a { + border-radius: 2px; + color: #4a4a4a; + display: block; + padding: 0.5em 0.75em; +} + +.menu-list a:hover { + background-color: whitesmoke; + color: #363636; +} + +.menu-list a.is-active { + background-color: #485fc7; + color: #fff; +} + +.menu-list li ul { + border-right: 1px solid #dbdbdb; + margin: 0.75em; + padding-right: 0.75em; +} + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.menu-label:not(:first-child) { + margin-top: 1em; +} + +.menu-label:not(:last-child) { + margin-bottom: 1em; +} + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; +} + +.message strong { + color: currentColor; +} + +.message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.message.is-small { + font-size: 0.75rem; +} + +.message.is-medium { + font-size: 1.25rem; +} + +.message.is-large { + font-size: 1.5rem; +} + +.message.is-white { + background-color: white; +} + +.message.is-white .message-header { + background-color: white; + color: #0a0a0a; +} + +.message.is-white .message-body { + border-color: white; +} + +.message.is-black { + background-color: #fafafa; +} + +.message.is-black .message-header { + background-color: #0a0a0a; + color: white; +} + +.message.is-black .message-body { + border-color: #0a0a0a; +} + +.message.is-light { + background-color: #fafafa; +} + +.message.is-light .message-header { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.message.is-light .message-body { + border-color: whitesmoke; +} + +.message.is-dark { + background-color: #fafafa; +} + +.message.is-dark .message-header { + background-color: #363636; + color: #fff; +} + +.message.is-dark .message-body { + border-color: #363636; +} + +.message.is-primary { + background-color: #ebfffc; +} + +.message.is-primary .message-header { + background-color: #00d1b2; + color: #fff; +} + +.message.is-primary .message-body { + border-color: #00d1b2; + color: #00947e; +} + +.message.is-link { + background-color: #eff1fa; +} + +.message.is-link .message-header { + background-color: #485fc7; + color: #fff; +} + +.message.is-link .message-body { + border-color: #485fc7; + color: #3850b7; +} + +.message.is-info { + background-color: #eff5fb; +} + +.message.is-info .message-header { + background-color: #3e8ed0; + color: #fff; +} + +.message.is-info .message-body { + border-color: #3e8ed0; + color: #296fa8; +} + +.message.is-success { + background-color: #effaf5; +} + +.message.is-success .message-header { + background-color: #48c78e; + color: #fff; +} + +.message.is-success .message-body { + border-color: #48c78e; + color: #257953; +} + +.message.is-warning { + background-color: #fffaeb; +} + +.message.is-warning .message-header { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.message.is-warning .message-body { + border-color: #ffe08a; + color: #946c00; +} + +.message.is-danger { + background-color: #feecf0; +} + +.message.is-danger .message-header { + background-color: #f14668; + color: #fff; +} + +.message.is-danger .message-body { + border-color: #f14668; + color: #cc0f35; +} + +.message-header { + align-items: center; + background-color: #4a4a4a; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; +} + +.message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-right: 0.75em; +} + +.message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #4a4a4a; + padding: 1.25em 1.5em; +} + +.message-body code, +.message-body pre { + background-color: white; +} + +.message-body pre code { + background-color: transparent; +} + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; +} + +.modal.is-active { + display: flex; +} + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); +} + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; +} + +@media screen and (min-width: 769px) { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; + } +} + +.modal-close { + background: none; + height: 40px; + position: fixed; + left: 20px; + top: 20px; + width: 40px; +} + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; +} + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; +} + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} + +.modal-card-title { + color: #363636; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; +} + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; +} + +.modal-card-foot .button:not(:last-child) { + margin-left: 0.5em; +} + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; +} + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; +} + +.navbar.is-white { + background-color: white; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > .navbar-item, +.navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, +.navbar.is-white .navbar-brand .navbar-link:focus, +.navbar.is-white .navbar-brand .navbar-link:hover, +.navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; +} + +.navbar.is-white .navbar-burger { + color: #0a0a0a; +} + +@media screen and (min-width: 1024px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; + } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; + } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; + } +} + +.navbar.is-black { + background-color: #0a0a0a; + color: white; +} + +.navbar.is-black .navbar-brand > .navbar-item, +.navbar.is-black .navbar-brand .navbar-link { + color: white; +} + +.navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, +.navbar.is-black .navbar-brand .navbar-link:focus, +.navbar.is-black .navbar-brand .navbar-link:hover, +.navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; +} + +.navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; +} + +.navbar.is-black .navbar-burger { + color: white; +} + +@media screen and (min-width: 1024px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; + } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; + } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; + } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; + } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; + } +} + +.navbar.is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-brand > .navbar-item, +.navbar.is-light .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, +.navbar.is-light .navbar-brand .navbar-link:focus, +.navbar.is-light .navbar-brand .navbar-link:hover, +.navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-burger { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (min-width: 1024px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); + } +} + +.navbar.is-dark { + background-color: #363636; + color: #fff; +} + +.navbar.is-dark .navbar-brand > .navbar-item, +.navbar.is-dark .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-dark .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, +.navbar.is-dark .navbar-brand .navbar-link:focus, +.navbar.is-dark .navbar-brand .navbar-link:hover, +.navbar.is-dark .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: #fff; +} + +.navbar.is-dark .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-dark .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-dark .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active { + background-color: #292929; + color: #fff; + } + .navbar.is-dark .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: #fff; + } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: #fff; + } +} + +.navbar.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.navbar.is-primary .navbar-brand > .navbar-item, +.navbar.is-primary .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-primary .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, +.navbar.is-primary .navbar-brand .navbar-link:focus, +.navbar.is-primary .navbar-brand .navbar-link:hover, +.navbar.is-primary .navbar-brand .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.navbar.is-primary .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-primary .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-primary .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active { + background-color: #00d1b2; + color: #fff; + } +} + +.navbar.is-link { + background-color: #485fc7; + color: #fff; +} + +.navbar.is-link .navbar-brand > .navbar-item, +.navbar.is-link .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, +.navbar.is-link .navbar-brand .navbar-link:focus, +.navbar.is-link .navbar-brand .navbar-link:hover, +.navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #3a51bb; + color: #fff; +} + +.navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-link .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #3a51bb; + color: #fff; + } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #3a51bb; + color: #fff; + } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #485fc7; + color: #fff; + } +} + +.navbar.is-info { + background-color: #3e8ed0; + color: #fff; +} + +.navbar.is-info .navbar-brand > .navbar-item, +.navbar.is-info .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, +.navbar.is-info .navbar-brand .navbar-link:focus, +.navbar.is-info .navbar-brand .navbar-link:hover, +.navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #3082c5; + color: #fff; +} + +.navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-info .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #3082c5; + color: #fff; + } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #3082c5; + color: #fff; + } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #3e8ed0; + color: #fff; + } +} + +.navbar.is-success { + background-color: #48c78e; + color: #fff; +} + +.navbar.is-success .navbar-brand > .navbar-item, +.navbar.is-success .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, +.navbar.is-success .navbar-brand .navbar-link:focus, +.navbar.is-success .navbar-brand .navbar-link:hover, +.navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #3abb81; + color: #fff; +} + +.navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-success .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #3abb81; + color: #fff; + } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #3abb81; + color: #fff; + } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #48c78e; + color: #fff; + } +} + +.navbar.is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > .navbar-item, +.navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, +.navbar.is-warning .navbar-brand .navbar-link:focus, +.navbar.is-warning .navbar-brand .navbar-link:hover, +.navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (min-width: 1024px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); + } +} + +.navbar.is-danger { + background-color: #f14668; + color: #fff; +} + +.navbar.is-danger .navbar-brand > .navbar-item, +.navbar.is-danger .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, +.navbar.is-danger .navbar-brand .navbar-link:focus, +.navbar.is-danger .navbar-brand .navbar-link:hover, +.navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #ef2e55; + color: #fff; +} + +.navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-danger .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #ef2e55; + color: #fff; + } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ef2e55; + color: #fff; + } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #f14668; + color: #fff; + } +} + +.navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; +} + +.navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; +} + +.navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; +} + +.navbar.is-fixed-bottom { + bottom: 0; +} + +.navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; +} + +.navbar.is-fixed-top { + top: 0; +} + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; +} + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; +} + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; +} + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; +} + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; +} + +.navbar-burger { + color: #4a4a4a; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-right: auto; +} + +.navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; +} + +.navbar-burger span:nth-child(1) { + top: calc(50% - 6px); +} + +.navbar-burger span:nth-child(2) { + top: calc(50% - 1px); +} + +.navbar-burger span:nth-child(3) { + top: calc(50% + 4px); +} + +.navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); +} + +.navbar-burger.is-active span:nth-child(2) { + opacity: 0; +} + +.navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); +} + +.navbar-menu { + display: none; +} + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; +} + +.navbar-item .icon:only-child, +.navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; +} + +a.navbar-item, +.navbar-link { + cursor: pointer; +} + +a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, +.navbar-link:focus, +.navbar-link:focus-within, +.navbar-link:hover, +.navbar-link.is-active { + background-color: #fafafa; + color: #485fc7; +} + +.navbar-item { + flex-grow: 0; + flex-shrink: 0; +} + +.navbar-item img { + max-height: 1.75rem; +} + +.navbar-item.has-dropdown { + padding: 0; +} + +.navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); +} + +.navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #485fc7; +} + +.navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #485fc7; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #485fc7; + padding-bottom: calc(0.5rem - 3px); +} + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-link:not(.is-arrowless) { + padding-left: 2.5em; +} + +.navbar-link:not(.is-arrowless)::after { + border-color: #485fc7; + margin-top: -0.375em; + left: 1.125em; +} + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; +} + +@media screen and (max-width: 1023px) { + .navbar > .container { + display: block; + } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; + } + .navbar-link::after { + display: none; + } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; + } + .navbar-menu.is-active { + display: block; + } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-touch { + bottom: 0; + } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-touch { + top: 0; + } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; + } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; + } +} + +@media screen and (min-width: 1024px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; + } + .navbar { + min-height: 3.25rem; + } + .navbar.is-spaced { + padding: 1rem 2rem; + } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; + } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; + } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #485fc7; + } + .navbar-burger { + display: none; + } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; + } + .navbar-item.has-dropdown { + align-items: stretch; + } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); + } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; + } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; + } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); + } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; + } + .navbar-start { + justify-content: flex-start; + margin-left: auto; + } + .navbar-end { + justify-content: flex-end; + margin-right: auto; + } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + right: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; + } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; + } + .navbar-dropdown a.navbar-item { + padding-left: 3rem; + } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #485fc7; + } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; + } + .navbar-dropdown.is-right { + left: auto; + right: 0; + } + .navbar-divider { + display: block; + } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-right: -0.75rem; + } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-left: -0.75rem; + } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-desktop { + bottom: 0; + } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-desktop { + top: 0; + } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; + } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; + } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; + } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; + } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; + } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; + } +} + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); +} + +.pagination { + font-size: 1rem; + margin: -0.25rem; +} + +.pagination.is-small { + font-size: 0.75rem; +} + +.pagination.is-medium { + font-size: 1.25rem; +} + +.pagination.is-large { + font-size: 1.5rem; +} + +.pagination.is-rounded .pagination-previous, +.pagination.is-rounded .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 9999px; +} + +.pagination.is-rounded .pagination-link { + border-radius: 9999px; +} + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.5em; +} + +.pagination-previous:hover, +.pagination-next:hover, +.pagination-link:hover { + border-color: #b5b5b5; + color: #363636; +} + +.pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus { + border-color: #485fc7; +} + +.pagination-previous:active, +.pagination-next:active, +.pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); +} + +.pagination-previous[disabled], .pagination-previous.is-disabled, +.pagination-next[disabled], +.pagination-next.is-disabled, +.pagination-link[disabled], +.pagination-link.is-disabled { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; +} + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.pagination-link.is-current { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; +} + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; +} + +.pagination-list { + flex-wrap: wrap; +} + +.pagination-list li { + list-style: none; +} + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; + } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; + } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; + } +} + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; + } + .pagination-previous, + .pagination-next, + .pagination-link, + .pagination-ellipsis { + margin-bottom: 0; + margin-top: 0; + } + .pagination-previous { + order: 2; + } + .pagination-next { + order: 3; + } + .pagination { + justify-content: space-between; + margin-bottom: 0; + margin-top: 0; + } + .pagination.is-centered .pagination-previous { + order: 1; + } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; + } + .pagination.is-centered .pagination-next { + order: 3; + } + .pagination.is-right .pagination-previous { + order: 1; + } + .pagination.is-right .pagination-next { + order: 2; + } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; + } +} + +.panel { + border-radius: 6px; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + font-size: 1rem; +} + +.panel:not(:last-child) { + margin-bottom: 1.5rem; +} + +.panel.is-white .panel-heading { + background-color: white; + color: #0a0a0a; +} + +.panel.is-white .panel-tabs a.is-active { + border-bottom-color: white; +} + +.panel.is-white .panel-block.is-active .panel-icon { + color: white; +} + +.panel.is-black .panel-heading { + background-color: #0a0a0a; + color: white; +} + +.panel.is-black .panel-tabs a.is-active { + border-bottom-color: #0a0a0a; +} + +.panel.is-black .panel-block.is-active .panel-icon { + color: #0a0a0a; +} + +.panel.is-light .panel-heading { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.panel.is-light .panel-tabs a.is-active { + border-bottom-color: whitesmoke; +} + +.panel.is-light .panel-block.is-active .panel-icon { + color: whitesmoke; +} + +.panel.is-dark .panel-heading { + background-color: #363636; + color: #fff; +} + +.panel.is-dark .panel-tabs a.is-active { + border-bottom-color: #363636; +} + +.panel.is-dark .panel-block.is-active .panel-icon { + color: #363636; +} + +.panel.is-primary .panel-heading { + background-color: #00d1b2; + color: #fff; +} + +.panel.is-primary .panel-tabs a.is-active { + border-bottom-color: #00d1b2; +} + +.panel.is-primary .panel-block.is-active .panel-icon { + color: #00d1b2; +} + +.panel.is-link .panel-heading { + background-color: #485fc7; + color: #fff; +} + +.panel.is-link .panel-tabs a.is-active { + border-bottom-color: #485fc7; +} + +.panel.is-link .panel-block.is-active .panel-icon { + color: #485fc7; +} + +.panel.is-info .panel-heading { + background-color: #3e8ed0; + color: #fff; +} + +.panel.is-info .panel-tabs a.is-active { + border-bottom-color: #3e8ed0; +} + +.panel.is-info .panel-block.is-active .panel-icon { + color: #3e8ed0; +} + +.panel.is-success .panel-heading { + background-color: #48c78e; + color: #fff; +} + +.panel.is-success .panel-tabs a.is-active { + border-bottom-color: #48c78e; +} + +.panel.is-success .panel-block.is-active .panel-icon { + color: #48c78e; +} + +.panel.is-warning .panel-heading { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.panel.is-warning .panel-tabs a.is-active { + border-bottom-color: #ffe08a; +} + +.panel.is-warning .panel-block.is-active .panel-icon { + color: #ffe08a; +} + +.panel.is-danger .panel-heading { + background-color: #f14668; + color: #fff; +} + +.panel.is-danger .panel-tabs a.is-active { + border-bottom-color: #f14668; +} + +.panel.is-danger .panel-block.is-active .panel-icon { + color: #f14668; +} + +.panel-tabs:not(:last-child), +.panel-block:not(:last-child) { + border-bottom: 1px solid #ededed; +} + +.panel-heading { + background-color: #ededed; + border-radius: 6px 6px 0 0; + color: #363636; + font-size: 1.25em; + font-weight: 700; + line-height: 1.25; + padding: 0.75em 1em; +} + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; +} + +.panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; +} + +.panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; +} + +.panel-list a { + color: #4a4a4a; +} + +.panel-list a:hover { + color: #485fc7; +} + +.panel-block { + align-items: center; + color: #363636; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; +} + +.panel-block input[type="checkbox"] { + margin-left: 0.75em; +} + +.panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; +} + +.panel-block.is-wrapped { + flex-wrap: wrap; +} + +.panel-block.is-active { + border-left-color: #485fc7; + color: #363636; +} + +.panel-block.is-active .panel-icon { + color: #485fc7; +} + +.panel-block:last-child { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; +} + +a.panel-block, +label.panel-block { + cursor: pointer; +} + +a.panel-block:hover, +label.panel-block:hover { + background-color: whitesmoke; +} + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-left: 0.75em; +} + +.panel-icon .fa { + font-size: inherit; + line-height: inherit; +} + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; +} + +.tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #4a4a4a; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; +} + +.tabs a:hover { + border-bottom-color: #363636; + color: #363636; +} + +.tabs li { + display: block; +} + +.tabs li.is-active a { + border-bottom-color: #485fc7; + color: #485fc7; +} + +.tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; +} + +.tabs ul.is-left { + padding-right: 0.75em; +} + +.tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; +} + +.tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; +} + +.tabs .icon:first-child { + margin-left: 0.5em; +} + +.tabs .icon:last-child { + margin-right: 0.5em; +} + +.tabs.is-centered ul { + justify-content: center; +} + +.tabs.is-right ul { + justify-content: flex-end; +} + +.tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0 0 4px 4px; +} + +.tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; +} + +.tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; +} + +.tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; +} + +.tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; +} + +.tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; +} + +.tabs.is-toggle li + li { + margin-right: -1px; +} + +.tabs.is-toggle li:first-child a { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.tabs.is-toggle li:last-child a { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.tabs.is-toggle li.is-active a { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; + z-index: 1; +} + +.tabs.is-toggle ul { + border-bottom: none; +} + +.tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-right-radius: 9999px; + border-top-right-radius: 9999px; + padding-right: 1.25em; +} + +.tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-left-radius: 9999px; + border-top-left-radius: 9999px; + padding-left: 1.25em; +} + +.tabs.is-small { + font-size: 0.75rem; +} + +.tabs.is-medium { + font-size: 1.25rem; +} + +.tabs.is-large { + font-size: 1.5rem; +} + +/* Bulma Grid */ +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; +} + +.columns.is-mobile > .column.is-narrow { + flex: none; + width: unset; +} + +.columns.is-mobile > .column.is-full { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; +} + +.columns.is-mobile > .column.is-half { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; +} + +.columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; +} + +.columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; +} + +.columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; +} + +.columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; +} + +.columns.is-mobile > .column.is-offset-three-quarters { + margin-right: 75%; +} + +.columns.is-mobile > .column.is-offset-two-thirds { + margin-right: 66.6666%; +} + +.columns.is-mobile > .column.is-offset-half { + margin-right: 50%; +} + +.columns.is-mobile > .column.is-offset-one-third { + margin-right: 33.3333%; +} + +.columns.is-mobile > .column.is-offset-one-quarter { + margin-right: 25%; +} + +.columns.is-mobile > .column.is-offset-one-fifth { + margin-right: 20%; +} + +.columns.is-mobile > .column.is-offset-two-fifths { + margin-right: 40%; +} + +.columns.is-mobile > .column.is-offset-three-fifths { + margin-right: 60%; +} + +.columns.is-mobile > .column.is-offset-four-fifths { + margin-right: 80%; +} + +.columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; +} + +.columns.is-mobile > .column.is-offset-0 { + margin-right: 0%; +} + +.columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; +} + +.columns.is-mobile > .column.is-offset-1 { + margin-right: 8.33333%; +} + +.columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; +} + +.columns.is-mobile > .column.is-offset-2 { + margin-right: 16.66667%; +} + +.columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-offset-3 { + margin-right: 25%; +} + +.columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; +} + +.columns.is-mobile > .column.is-offset-4 { + margin-right: 33.33333%; +} + +.columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; +} + +.columns.is-mobile > .column.is-offset-5 { + margin-right: 41.66667%; +} + +.columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-offset-6 { + margin-right: 50%; +} + +.columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; +} + +.columns.is-mobile > .column.is-offset-7 { + margin-right: 58.33333%; +} + +.columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; +} + +.columns.is-mobile > .column.is-offset-8 { + margin-right: 66.66667%; +} + +.columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-offset-9 { + margin-right: 75%; +} + +.columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; +} + +.columns.is-mobile > .column.is-offset-10 { + margin-right: 83.33333%; +} + +.columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; +} + +.columns.is-mobile > .column.is-offset-11 { + margin-right: 91.66667%; +} + +.columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-offset-12 { + margin-right: 100%; +} + +@media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; + width: unset; + } + .column.is-full-mobile { + flex: none; + width: 100%; + } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; + } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; + } + .column.is-half-mobile { + flex: none; + width: 50%; + } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; + } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; + } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; + } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; + } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-mobile { + margin-right: 75%; + } + .column.is-offset-two-thirds-mobile { + margin-right: 66.6666%; + } + .column.is-offset-half-mobile { + margin-right: 50%; + } + .column.is-offset-one-third-mobile { + margin-right: 33.3333%; + } + .column.is-offset-one-quarter-mobile { + margin-right: 25%; + } + .column.is-offset-one-fifth-mobile { + margin-right: 20%; + } + .column.is-offset-two-fifths-mobile { + margin-right: 40%; + } + .column.is-offset-three-fifths-mobile { + margin-right: 60%; + } + .column.is-offset-four-fifths-mobile { + margin-right: 80%; + } + .column.is-0-mobile { + flex: none; + width: 0%; + } + .column.is-offset-0-mobile { + margin-right: 0%; + } + .column.is-1-mobile { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-mobile { + margin-right: 8.33333%; + } + .column.is-2-mobile { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-mobile { + margin-right: 16.66667%; + } + .column.is-3-mobile { + flex: none; + width: 25%; + } + .column.is-offset-3-mobile { + margin-right: 25%; + } + .column.is-4-mobile { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-mobile { + margin-right: 33.33333%; + } + .column.is-5-mobile { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-mobile { + margin-right: 41.66667%; + } + .column.is-6-mobile { + flex: none; + width: 50%; + } + .column.is-offset-6-mobile { + margin-right: 50%; + } + .column.is-7-mobile { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-mobile { + margin-right: 58.33333%; + } + .column.is-8-mobile { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-mobile { + margin-right: 66.66667%; + } + .column.is-9-mobile { + flex: none; + width: 75%; + } + .column.is-offset-9-mobile { + margin-right: 75%; + } + .column.is-10-mobile { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-mobile { + margin-right: 83.33333%; + } + .column.is-11-mobile { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-mobile { + margin-right: 91.66667%; + } + .column.is-12-mobile { + flex: none; + width: 100%; + } + .column.is-offset-12-mobile { + margin-right: 100%; + } +} + +@media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; + width: unset; + } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; + } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; + } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; + } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; + } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; + } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; + } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; + } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; + } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-right: 75%; + } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-right: 66.6666%; + } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-right: 50%; + } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-right: 33.3333%; + } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-right: 25%; + } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-right: 20%; + } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-right: 40%; + } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-right: 60%; + } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-right: 80%; + } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; + } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-right: 0%; + } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; + } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-right: 8.33333%; + } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; + } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-right: 16.66667%; + } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; + } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-right: 25%; + } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; + } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-right: 33.33333%; + } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; + } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-right: 41.66667%; + } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; + } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-right: 50%; + } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; + } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-right: 58.33333%; + } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; + } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-right: 66.66667%; + } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; + } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-right: 75%; + } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; + } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-right: 83.33333%; + } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; + } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-right: 91.66667%; + } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; + } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-right: 100%; + } +} + +@media screen and (max-width: 1023px) { + .column.is-narrow-touch { + flex: none; + width: unset; + } + .column.is-full-touch { + flex: none; + width: 100%; + } + .column.is-three-quarters-touch { + flex: none; + width: 75%; + } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; + } + .column.is-half-touch { + flex: none; + width: 50%; + } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-touch { + flex: none; + width: 25%; + } + .column.is-one-fifth-touch { + flex: none; + width: 20%; + } + .column.is-two-fifths-touch { + flex: none; + width: 40%; + } + .column.is-three-fifths-touch { + flex: none; + width: 60%; + } + .column.is-four-fifths-touch { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-touch { + margin-right: 75%; + } + .column.is-offset-two-thirds-touch { + margin-right: 66.6666%; + } + .column.is-offset-half-touch { + margin-right: 50%; + } + .column.is-offset-one-third-touch { + margin-right: 33.3333%; + } + .column.is-offset-one-quarter-touch { + margin-right: 25%; + } + .column.is-offset-one-fifth-touch { + margin-right: 20%; + } + .column.is-offset-two-fifths-touch { + margin-right: 40%; + } + .column.is-offset-three-fifths-touch { + margin-right: 60%; + } + .column.is-offset-four-fifths-touch { + margin-right: 80%; + } + .column.is-0-touch { + flex: none; + width: 0%; + } + .column.is-offset-0-touch { + margin-right: 0%; + } + .column.is-1-touch { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-touch { + margin-right: 8.33333%; + } + .column.is-2-touch { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-touch { + margin-right: 16.66667%; + } + .column.is-3-touch { + flex: none; + width: 25%; + } + .column.is-offset-3-touch { + margin-right: 25%; + } + .column.is-4-touch { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-touch { + margin-right: 33.33333%; + } + .column.is-5-touch { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-touch { + margin-right: 41.66667%; + } + .column.is-6-touch { + flex: none; + width: 50%; + } + .column.is-offset-6-touch { + margin-right: 50%; + } + .column.is-7-touch { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-touch { + margin-right: 58.33333%; + } + .column.is-8-touch { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-touch { + margin-right: 66.66667%; + } + .column.is-9-touch { + flex: none; + width: 75%; + } + .column.is-offset-9-touch { + margin-right: 75%; + } + .column.is-10-touch { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-touch { + margin-right: 83.33333%; + } + .column.is-11-touch { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-touch { + margin-right: 91.66667%; + } + .column.is-12-touch { + flex: none; + width: 100%; + } + .column.is-offset-12-touch { + margin-right: 100%; + } +} + +@media screen and (min-width: 1024px) { + .column.is-narrow-desktop { + flex: none; + width: unset; + } + .column.is-full-desktop { + flex: none; + width: 100%; + } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; + } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; + } + .column.is-half-desktop { + flex: none; + width: 50%; + } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; + } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; + } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; + } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; + } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-desktop { + margin-right: 75%; + } + .column.is-offset-two-thirds-desktop { + margin-right: 66.6666%; + } + .column.is-offset-half-desktop { + margin-right: 50%; + } + .column.is-offset-one-third-desktop { + margin-right: 33.3333%; + } + .column.is-offset-one-quarter-desktop { + margin-right: 25%; + } + .column.is-offset-one-fifth-desktop { + margin-right: 20%; + } + .column.is-offset-two-fifths-desktop { + margin-right: 40%; + } + .column.is-offset-three-fifths-desktop { + margin-right: 60%; + } + .column.is-offset-four-fifths-desktop { + margin-right: 80%; + } + .column.is-0-desktop { + flex: none; + width: 0%; + } + .column.is-offset-0-desktop { + margin-right: 0%; + } + .column.is-1-desktop { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-desktop { + margin-right: 8.33333%; + } + .column.is-2-desktop { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-desktop { + margin-right: 16.66667%; + } + .column.is-3-desktop { + flex: none; + width: 25%; + } + .column.is-offset-3-desktop { + margin-right: 25%; + } + .column.is-4-desktop { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-desktop { + margin-right: 33.33333%; + } + .column.is-5-desktop { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-desktop { + margin-right: 41.66667%; + } + .column.is-6-desktop { + flex: none; + width: 50%; + } + .column.is-offset-6-desktop { + margin-right: 50%; + } + .column.is-7-desktop { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-desktop { + margin-right: 58.33333%; + } + .column.is-8-desktop { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-desktop { + margin-right: 66.66667%; + } + .column.is-9-desktop { + flex: none; + width: 75%; + } + .column.is-offset-9-desktop { + margin-right: 75%; + } + .column.is-10-desktop { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-desktop { + margin-right: 83.33333%; + } + .column.is-11-desktop { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-desktop { + margin-right: 91.66667%; + } + .column.is-12-desktop { + flex: none; + width: 100%; + } + .column.is-offset-12-desktop { + margin-right: 100%; + } +} + +@media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; + width: unset; + } + .column.is-full-widescreen { + flex: none; + width: 100%; + } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; + } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; + } + .column.is-half-widescreen { + flex: none; + width: 50%; + } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; + } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; + } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; + } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; + } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-widescreen { + margin-right: 75%; + } + .column.is-offset-two-thirds-widescreen { + margin-right: 66.6666%; + } + .column.is-offset-half-widescreen { + margin-right: 50%; + } + .column.is-offset-one-third-widescreen { + margin-right: 33.3333%; + } + .column.is-offset-one-quarter-widescreen { + margin-right: 25%; + } + .column.is-offset-one-fifth-widescreen { + margin-right: 20%; + } + .column.is-offset-two-fifths-widescreen { + margin-right: 40%; + } + .column.is-offset-three-fifths-widescreen { + margin-right: 60%; + } + .column.is-offset-four-fifths-widescreen { + margin-right: 80%; + } + .column.is-0-widescreen { + flex: none; + width: 0%; + } + .column.is-offset-0-widescreen { + margin-right: 0%; + } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-widescreen { + margin-right: 8.33333%; + } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-widescreen { + margin-right: 16.66667%; + } + .column.is-3-widescreen { + flex: none; + width: 25%; + } + .column.is-offset-3-widescreen { + margin-right: 25%; + } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-widescreen { + margin-right: 33.33333%; + } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-widescreen { + margin-right: 41.66667%; + } + .column.is-6-widescreen { + flex: none; + width: 50%; + } + .column.is-offset-6-widescreen { + margin-right: 50%; + } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-widescreen { + margin-right: 58.33333%; + } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-widescreen { + margin-right: 66.66667%; + } + .column.is-9-widescreen { + flex: none; + width: 75%; + } + .column.is-offset-9-widescreen { + margin-right: 75%; + } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-widescreen { + margin-right: 83.33333%; + } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-widescreen { + margin-right: 91.66667%; + } + .column.is-12-widescreen { + flex: none; + width: 100%; + } + .column.is-offset-12-widescreen { + margin-right: 100%; + } +} + +@media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; + width: unset; + } + .column.is-full-fullhd { + flex: none; + width: 100%; + } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; + } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; + } + .column.is-half-fullhd { + flex: none; + width: 50%; + } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; + } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; + } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; + } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; + } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-fullhd { + margin-right: 75%; + } + .column.is-offset-two-thirds-fullhd { + margin-right: 66.6666%; + } + .column.is-offset-half-fullhd { + margin-right: 50%; + } + .column.is-offset-one-third-fullhd { + margin-right: 33.3333%; + } + .column.is-offset-one-quarter-fullhd { + margin-right: 25%; + } + .column.is-offset-one-fifth-fullhd { + margin-right: 20%; + } + .column.is-offset-two-fifths-fullhd { + margin-right: 40%; + } + .column.is-offset-three-fifths-fullhd { + margin-right: 60%; + } + .column.is-offset-four-fifths-fullhd { + margin-right: 80%; + } + .column.is-0-fullhd { + flex: none; + width: 0%; + } + .column.is-offset-0-fullhd { + margin-right: 0%; + } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-fullhd { + margin-right: 8.33333%; + } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-fullhd { + margin-right: 16.66667%; + } + .column.is-3-fullhd { + flex: none; + width: 25%; + } + .column.is-offset-3-fullhd { + margin-right: 25%; + } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-fullhd { + margin-right: 33.33333%; + } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-fullhd { + margin-right: 41.66667%; + } + .column.is-6-fullhd { + flex: none; + width: 50%; + } + .column.is-offset-6-fullhd { + margin-right: 50%; + } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-fullhd { + margin-right: 58.33333%; + } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-fullhd { + margin-right: 66.66667%; + } + .column.is-9-fullhd { + flex: none; + width: 75%; + } + .column.is-offset-9-fullhd { + margin-right: 75%; + } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-fullhd { + margin-right: 83.33333%; + } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-fullhd { + margin-right: 91.66667%; + } + .column.is-12-fullhd { + flex: none; + width: 100%; + } + .column.is-offset-12-fullhd { + margin-right: 100%; + } +} + +.columns { + margin-right: -0.75rem; + margin-left: -0.75rem; + margin-top: -0.75rem; +} + +.columns:last-child { + margin-bottom: -0.75rem; +} + +.columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); +} + +.columns.is-centered { + justify-content: center; +} + +.columns.is-gapless { + margin-right: 0; + margin-left: 0; + margin-top: 0; +} + +.columns.is-gapless > .column { + margin: 0; + padding: 0 !important; +} + +.columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; +} + +.columns.is-gapless:last-child { + margin-bottom: 0; +} + +.columns.is-mobile { + display: flex; +} + +.columns.is-multiline { + flex-wrap: wrap; +} + +.columns.is-vcentered { + align-items: center; +} + +@media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-desktop { + display: flex; + } +} + +.columns.is-variable { + --columnGap: 0.75rem; + margin-right: calc(-1 * var(--columnGap)); + margin-left: calc(-1 * var(--columnGap)); +} + +.columns.is-variable > .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); +} + +.columns.is-variable.is-0 { + --columnGap: 0rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; + } +} + +.columns.is-variable.is-1 { + --columnGap: 0.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; + } +} + +.columns.is-variable.is-2 { + --columnGap: 0.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; + } +} + +.columns.is-variable.is-3 { + --columnGap: 0.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; + } +} + +.columns.is-variable.is-4 { + --columnGap: 1rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; + } +} + +.columns.is-variable.is-5 { + --columnGap: 1.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; + } +} + +.columns.is-variable.is-6 { + --columnGap: 1.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; + } +} + +.columns.is-variable.is-7 { + --columnGap: 1.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; + } +} + +.columns.is-variable.is-8 { + --columnGap: 2rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; + } +} + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: -webkit-min-content; + min-height: -moz-min-content; + min-height: min-content; +} + +.tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.tile.is-ancestor:last-child { + margin-bottom: -0.75rem; +} + +.tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; +} + +.tile.is-child { + margin: 0 !important; +} + +.tile.is-parent { + padding: 0.75rem; +} + +.tile.is-vertical { + flex-direction: column; +} + +.tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; +} + +@media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; + } + .tile.is-1 { + flex: none; + width: 8.33333%; + } + .tile.is-2 { + flex: none; + width: 16.66667%; + } + .tile.is-3 { + flex: none; + width: 25%; + } + .tile.is-4 { + flex: none; + width: 33.33333%; + } + .tile.is-5 { + flex: none; + width: 41.66667%; + } + .tile.is-6 { + flex: none; + width: 50%; + } + .tile.is-7 { + flex: none; + width: 58.33333%; + } + .tile.is-8 { + flex: none; + width: 66.66667%; + } + .tile.is-9 { + flex: none; + width: 75%; + } + .tile.is-10 { + flex: none; + width: 83.33333%; + } + .tile.is-11 { + flex: none; + width: 91.66667%; + } + .tile.is-12 { + flex: none; + width: 100%; + } +} + +/* Bulma Helpers */ +.has-text-white { + color: white !important; +} + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; +} + +.has-background-white { + background-color: white !important; +} + +.has-text-black { + color: #0a0a0a !important; +} + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; +} + +.has-background-black { + background-color: #0a0a0a !important; +} + +.has-text-light { + color: whitesmoke !important; +} + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; +} + +.has-background-light { + background-color: whitesmoke !important; +} + +.has-text-dark { + color: #363636 !important; +} + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; +} + +.has-background-dark { + background-color: #363636 !important; +} + +.has-text-primary { + color: #00d1b2 !important; +} + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #009e86 !important; +} + +.has-background-primary { + background-color: #00d1b2 !important; +} + +.has-text-primary-light { + color: #ebfffc !important; +} + +a.has-text-primary-light:hover, a.has-text-primary-light:focus { + color: #b8fff4 !important; +} + +.has-background-primary-light { + background-color: #ebfffc !important; +} + +.has-text-primary-dark { + color: #00947e !important; +} + +a.has-text-primary-dark:hover, a.has-text-primary-dark:focus { + color: #00c7a9 !important; +} + +.has-background-primary-dark { + background-color: #00947e !important; +} + +.has-text-link { + color: #485fc7 !important; +} + +a.has-text-link:hover, a.has-text-link:focus { + color: #3449a8 !important; +} + +.has-background-link { + background-color: #485fc7 !important; +} + +.has-text-link-light { + color: #eff1fa !important; +} + +a.has-text-link-light:hover, a.has-text-link-light:focus { + color: #c8cfee !important; +} + +.has-background-link-light { + background-color: #eff1fa !important; +} + +.has-text-link-dark { + color: #3850b7 !important; +} + +a.has-text-link-dark:hover, a.has-text-link-dark:focus { + color: #576dcb !important; +} + +.has-background-link-dark { + background-color: #3850b7 !important; +} + +.has-text-info { + color: #3e8ed0 !important; +} + +a.has-text-info:hover, a.has-text-info:focus { + color: #2b74b1 !important; +} + +.has-background-info { + background-color: #3e8ed0 !important; +} + +.has-text-info-light { + color: #eff5fb !important; +} + +a.has-text-info-light:hover, a.has-text-info-light:focus { + color: #c6ddf1 !important; +} + +.has-background-info-light { + background-color: #eff5fb !important; +} + +.has-text-info-dark { + color: #296fa8 !important; +} + +a.has-text-info-dark:hover, a.has-text-info-dark:focus { + color: #368ace !important; +} + +.has-background-info-dark { + background-color: #296fa8 !important; +} + +.has-text-success { + color: #48c78e !important; +} + +a.has-text-success:hover, a.has-text-success:focus { + color: #34a873 !important; +} + +.has-background-success { + background-color: #48c78e !important; +} + +.has-text-success-light { + color: #effaf5 !important; +} + +a.has-text-success-light:hover, a.has-text-success-light:focus { + color: #c8eedd !important; +} + +.has-background-success-light { + background-color: #effaf5 !important; +} + +.has-text-success-dark { + color: #257953 !important; +} + +a.has-text-success-dark:hover, a.has-text-success-dark:focus { + color: #31a06e !important; +} + +.has-background-success-dark { + background-color: #257953 !important; +} + +.has-text-warning { + color: #ffe08a !important; +} + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd257 !important; +} + +.has-background-warning { + background-color: #ffe08a !important; +} + +.has-text-warning-light { + color: #fffaeb !important; +} + +a.has-text-warning-light:hover, a.has-text-warning-light:focus { + color: #ffecb8 !important; +} + +.has-background-warning-light { + background-color: #fffaeb !important; +} + +.has-text-warning-dark { + color: #946c00 !important; +} + +a.has-text-warning-dark:hover, a.has-text-warning-dark:focus { + color: #c79200 !important; +} + +.has-background-warning-dark { + background-color: #946c00 !important; +} + +.has-text-danger { + color: #f14668 !important; +} + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #ee1742 !important; +} + +.has-background-danger { + background-color: #f14668 !important; +} + +.has-text-danger-light { + color: #feecf0 !important; +} + +a.has-text-danger-light:hover, a.has-text-danger-light:focus { + color: #fabdc9 !important; +} + +.has-background-danger-light { + background-color: #feecf0 !important; +} + +.has-text-danger-dark { + color: #cc0f35 !important; +} + +a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { + color: #ee2049 !important; +} + +.has-background-danger-dark { + background-color: #cc0f35 !important; +} + +.has-text-black-bis { + color: #121212 !important; +} + +.has-background-black-bis { + background-color: #121212 !important; +} + +.has-text-black-ter { + color: #242424 !important; +} + +.has-background-black-ter { + background-color: #242424 !important; +} + +.has-text-grey-darker { + color: #363636 !important; +} + +.has-background-grey-darker { + background-color: #363636 !important; +} + +.has-text-grey-dark { + color: #4a4a4a !important; +} + +.has-background-grey-dark { + background-color: #4a4a4a !important; +} + +.has-text-grey { + color: #7a7a7a !important; +} + +.has-background-grey { + background-color: #7a7a7a !important; +} + +.has-text-grey-light { + color: #b5b5b5 !important; +} + +.has-background-grey-light { + background-color: #b5b5b5 !important; +} + +.has-text-grey-lighter { + color: #dbdbdb !important; +} + +.has-background-grey-lighter { + background-color: #dbdbdb !important; +} + +.has-text-white-ter { + color: whitesmoke !important; +} + +.has-background-white-ter { + background-color: whitesmoke !important; +} + +.has-text-white-bis { + color: #fafafa !important; +} + +.has-background-white-bis { + background-color: #fafafa !important; +} + +.is-flex-direction-row { + flex-direction: row !important; +} + +.is-flex-direction-row-reverse { + flex-direction: row-reverse !important; +} + +.is-flex-direction-column { + flex-direction: column !important; +} + +.is-flex-direction-column-reverse { + flex-direction: column-reverse !important; +} + +.is-flex-wrap-nowrap { + flex-wrap: nowrap !important; +} + +.is-flex-wrap-wrap { + flex-wrap: wrap !important; +} + +.is-flex-wrap-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.is-justify-content-flex-start { + justify-content: flex-start !important; +} + +.is-justify-content-flex-end { + justify-content: flex-end !important; +} + +.is-justify-content-center { + justify-content: center !important; +} + +.is-justify-content-space-between { + justify-content: space-between !important; +} + +.is-justify-content-space-around { + justify-content: space-around !important; +} + +.is-justify-content-space-evenly { + justify-content: space-evenly !important; +} + +.is-justify-content-start { + justify-content: start !important; +} + +.is-justify-content-end { + justify-content: end !important; +} + +.is-justify-content-left { + justify-content: left !important; +} + +.is-justify-content-right { + justify-content: right !important; +} + +.is-align-content-flex-start { + align-content: flex-start !important; +} + +.is-align-content-flex-end { + align-content: flex-end !important; +} + +.is-align-content-center { + align-content: center !important; +} + +.is-align-content-space-between { + align-content: space-between !important; +} + +.is-align-content-space-around { + align-content: space-around !important; +} + +.is-align-content-space-evenly { + align-content: space-evenly !important; +} + +.is-align-content-stretch { + align-content: stretch !important; +} + +.is-align-content-start { + align-content: start !important; +} + +.is-align-content-end { + align-content: end !important; +} + +.is-align-content-baseline { + align-content: baseline !important; +} + +.is-align-items-stretch { + align-items: stretch !important; +} + +.is-align-items-flex-start { + align-items: flex-start !important; +} + +.is-align-items-flex-end { + align-items: flex-end !important; +} + +.is-align-items-center { + align-items: center !important; +} + +.is-align-items-baseline { + align-items: baseline !important; +} + +.is-align-items-start { + align-items: start !important; +} + +.is-align-items-end { + align-items: end !important; +} + +.is-align-items-self-start { + align-items: self-start !important; +} + +.is-align-items-self-end { + align-items: self-end !important; +} + +.is-align-self-auto { + align-self: auto !important; +} + +.is-align-self-flex-start { + align-self: flex-start !important; +} + +.is-align-self-flex-end { + align-self: flex-end !important; +} + +.is-align-self-center { + align-self: center !important; +} + +.is-align-self-baseline { + align-self: baseline !important; +} + +.is-align-self-stretch { + align-self: stretch !important; +} + +.is-flex-grow-0 { + flex-grow: 0 !important; +} + +.is-flex-grow-1 { + flex-grow: 1 !important; +} + +.is-flex-grow-2 { + flex-grow: 2 !important; +} + +.is-flex-grow-3 { + flex-grow: 3 !important; +} + +.is-flex-grow-4 { + flex-grow: 4 !important; +} + +.is-flex-grow-5 { + flex-grow: 5 !important; +} + +.is-flex-shrink-0 { + flex-shrink: 0 !important; +} + +.is-flex-shrink-1 { + flex-shrink: 1 !important; +} + +.is-flex-shrink-2 { + flex-shrink: 2 !important; +} + +.is-flex-shrink-3 { + flex-shrink: 3 !important; +} + +.is-flex-shrink-4 { + flex-shrink: 4 !important; +} + +.is-flex-shrink-5 { + flex-shrink: 5 !important; +} + +.is-clearfix::after { + clear: both; + content: " "; + display: table; +} + +.is-pulled-left { + float: left !important; +} + +.is-pulled-right { + float: right !important; +} + +.is-radiusless { + border-radius: 0 !important; +} + +.is-shadowless { + box-shadow: none !important; +} + +.is-clickable { + cursor: pointer !important; + pointer-events: all !important; +} + +.is-clipped { + overflow: hidden !important; +} + +.is-relative { + position: relative !important; +} + +.is-marginless { + margin: 0 !important; +} + +.is-paddingless { + padding: 0 !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-left: 0.75rem !important; + margin-right: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4 { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.m-6 { + margin: 3rem !important; +} + +.mt-6 { + margin-top: 3rem !important; +} + +.mr-6 { + margin-right: 3rem !important; +} + +.mb-6 { + margin-bottom: 3rem !important; +} + +.ml-6 { + margin-left: 3rem !important; +} + +.mx-6 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.my-6 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.mr-auto { + margin-right: auto !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ml-auto { + margin-left: auto !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-left: 0.75rem !important; + padding-right: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 3rem !important; +} + +.pt-6 { + padding-top: 3rem !important; +} + +.pr-6 { + padding-right: 3rem !important; +} + +.pb-6 { + padding-bottom: 3rem !important; +} + +.pl-6 { + padding-left: 3rem !important; +} + +.px-6 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-6 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-auto { + padding: auto !important; +} + +.pt-auto { + padding-top: auto !important; +} + +.pr-auto { + padding-right: auto !important; +} + +.pb-auto { + padding-bottom: auto !important; +} + +.pl-auto { + padding-left: auto !important; +} + +.px-auto { + padding-left: auto !important; + padding-right: auto !important; +} + +.py-auto { + padding-top: auto !important; + padding-bottom: auto !important; +} + +.is-size-1 { + font-size: 3rem !important; +} + +.is-size-2 { + font-size: 2.5rem !important; +} + +.is-size-3 { + font-size: 2rem !important; +} + +.is-size-4 { + font-size: 1.5rem !important; +} + +.is-size-5 { + font-size: 1.25rem !important; +} + +.is-size-6 { + font-size: 1rem !important; +} + +.is-size-7 { + font-size: 0.75rem !important; +} + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; + } + .is-size-2-mobile { + font-size: 2.5rem !important; + } + .is-size-3-mobile { + font-size: 2rem !important; + } + .is-size-4-mobile { + font-size: 1.5rem !important; + } + .is-size-5-mobile { + font-size: 1.25rem !important; + } + .is-size-6-mobile { + font-size: 1rem !important; + } + .is-size-7-mobile { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; + } + .is-size-2-tablet { + font-size: 2.5rem !important; + } + .is-size-3-tablet { + font-size: 2rem !important; + } + .is-size-4-tablet { + font-size: 1.5rem !important; + } + .is-size-5-tablet { + font-size: 1.25rem !important; + } + .is-size-6-tablet { + font-size: 1rem !important; + } + .is-size-7-tablet { + font-size: 0.75rem !important; + } +} + +@media screen and (max-width: 1023px) { + .is-size-1-touch { + font-size: 3rem !important; + } + .is-size-2-touch { + font-size: 2.5rem !important; + } + .is-size-3-touch { + font-size: 2rem !important; + } + .is-size-4-touch { + font-size: 1.5rem !important; + } + .is-size-5-touch { + font-size: 1.25rem !important; + } + .is-size-6-touch { + font-size: 1rem !important; + } + .is-size-7-touch { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1024px) { + .is-size-1-desktop { + font-size: 3rem !important; + } + .is-size-2-desktop { + font-size: 2.5rem !important; + } + .is-size-3-desktop { + font-size: 2rem !important; + } + .is-size-4-desktop { + font-size: 1.5rem !important; + } + .is-size-5-desktop { + font-size: 1.25rem !important; + } + .is-size-6-desktop { + font-size: 1rem !important; + } + .is-size-7-desktop { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; + } + .is-size-2-widescreen { + font-size: 2.5rem !important; + } + .is-size-3-widescreen { + font-size: 2rem !important; + } + .is-size-4-widescreen { + font-size: 1.5rem !important; + } + .is-size-5-widescreen { + font-size: 1.25rem !important; + } + .is-size-6-widescreen { + font-size: 1rem !important; + } + .is-size-7-widescreen { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; + } + .is-size-2-fullhd { + font-size: 2.5rem !important; + } + .is-size-3-fullhd { + font-size: 2rem !important; + } + .is-size-4-fullhd { + font-size: 1.5rem !important; + } + .is-size-5-fullhd { + font-size: 1.25rem !important; + } + .is-size-6-fullhd { + font-size: 1rem !important; + } + .is-size-7-fullhd { + font-size: 0.75rem !important; + } +} + +.has-text-centered { + text-align: center !important; +} + +.has-text-justified { + text-align: justify !important; +} + +.has-text-left { + text-align: left !important; +} + +.has-text-right { + text-align: right !important; +} + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-centered-tablet-only { + text-align: center !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-centered-touch { + text-align: center !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-centered-desktop { + text-align: center !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-justified-tablet-only { + text-align: justify !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-justified-touch { + text-align: justify !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-justified-desktop { + text-align: justify !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-left-tablet-only { + text-align: left !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-left-touch { + text-align: left !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-left-desktop { + text-align: left !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-right-tablet-only { + text-align: right !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-right-touch { + text-align: right !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-right-desktop { + text-align: right !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; + } +} + +.is-capitalized { + text-transform: capitalize !important; +} + +.is-lowercase { + text-transform: lowercase !important; +} + +.is-uppercase { + text-transform: uppercase !important; +} + +.is-italic { + font-style: italic !important; +} + +.is-underlined { + text-decoration: underline !important; +} + +.has-text-weight-light { + font-weight: 300 !important; +} + +.has-text-weight-normal { + font-weight: 400 !important; +} + +.has-text-weight-medium { + font-weight: 500 !important; +} + +.has-text-weight-semibold { + font-weight: 600 !important; +} + +.has-text-weight-bold { + font-weight: 700 !important; +} + +.is-family-primary { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-secondary { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-sans-serif { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-monospace { + font-family: monospace !important; +} + +.is-family-code { + font-family: monospace !important; +} + +.is-block { + display: block !important; +} + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-block-tablet-only { + display: block !important; + } +} + +@media screen and (max-width: 1023px) { + .is-block-touch { + display: block !important; + } +} + +@media screen and (min-width: 1024px) { + .is-block-desktop { + display: block !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; + } +} + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; + } +} + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; + } +} + +.is-flex { + display: flex !important; +} + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-flex-tablet-only { + display: flex !important; + } +} + +@media screen and (max-width: 1023px) { + .is-flex-touch { + display: flex !important; + } +} + +@media screen and (min-width: 1024px) { + .is-flex-desktop { + display: flex !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; + } +} + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; + } +} + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; + } +} + +.is-inline { + display: inline !important; +} + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-tablet-only { + display: inline !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-touch { + display: inline !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-desktop { + display: inline !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; + } +} + +.is-inline-block { + display: inline-block !important; +} + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-block-tablet-only { + display: inline-block !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-block-touch { + display: inline-block !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-block-desktop { + display: inline-block !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; + } +} + +.is-inline-flex { + display: inline-flex !important; +} + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-flex-touch { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-flex-desktop { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; + } +} + +.is-hidden { + display: none !important; +} + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; +} + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; + } +} + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-hidden-tablet-only { + display: none !important; + } +} + +@media screen and (max-width: 1023px) { + .is-hidden-touch { + display: none !important; + } +} + +@media screen and (min-width: 1024px) { + .is-hidden-desktop { + display: none !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; + } +} + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; + } +} + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; + } +} + +.is-invisible { + visibility: hidden !important; +} + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-invisible-tablet-only { + visibility: hidden !important; + } +} + +@media screen and (max-width: 1023px) { + .is-invisible-touch { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1024px) { + .is-invisible-desktop { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; + } +} + +/* Bulma Layout */ +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.hero .navbar { + background: none; +} + +.hero .tabs ul { + border-bottom: none; +} + +.hero.is-white { + background-color: white; + color: #0a0a0a; +} + +.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-white strong { + color: inherit; +} + +.hero.is-white .title { + color: #0a0a0a; +} + +.hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); +} + +.hero.is-white .subtitle a:not(.button), +.hero.is-white .subtitle strong { + color: #0a0a0a; +} + +@media screen and (max-width: 1023px) { + .hero.is-white .navbar-menu { + background-color: white; + } +} + +.hero.is-white .navbar-item, +.hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); +} + +.hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, +.hero.is-white .navbar-link:hover, +.hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; +} + +.hero.is-white .tabs a:hover { + opacity: 1; +} + +.hero.is-white .tabs li.is-active a { + color: white !important; + opacity: 1; +} + +.hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; +} + +.hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); + } +} + +.hero.is-black { + background-color: #0a0a0a; + color: white; +} + +.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-black strong { + color: inherit; +} + +.hero.is-black .title { + color: white; +} + +.hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-black .subtitle a:not(.button), +.hero.is-black .subtitle strong { + color: white; +} + +@media screen and (max-width: 1023px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; + } +} + +.hero.is-black .navbar-item, +.hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, +.hero.is-black .navbar-link:hover, +.hero.is-black .navbar-link.is-active { + background-color: black; + color: white; +} + +.hero.is-black .tabs a { + color: white; + opacity: 0.9; +} + +.hero.is-black .tabs a:hover { + opacity: 1; +} + +.hero.is-black .tabs li.is-active a { + color: #0a0a0a !important; + opacity: 1; +} + +.hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; +} + +.hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); + } +} + +.hero.is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-light strong { + color: inherit; +} + +.hero.is-light .title { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light .subtitle { + color: rgba(0, 0, 0, 0.9); +} + +.hero.is-light .subtitle a:not(.button), +.hero.is-light .subtitle strong { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (max-width: 1023px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; + } +} + +.hero.is-light .navbar-item, +.hero.is-light .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, +.hero.is-light .navbar-link:hover, +.hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; +} + +.hero.is-light .tabs a:hover { + opacity: 1; +} + +.hero.is-light .tabs li.is-active a { + color: whitesmoke !important; + opacity: 1; +} + +.hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: whitesmoke; +} + +.hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); + } +} + +.hero.is-dark { + background-color: #363636; + color: #fff; +} + +.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-dark strong { + color: inherit; +} + +.hero.is-dark .title { + color: #fff; +} + +.hero.is-dark .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-dark .subtitle a:not(.button), +.hero.is-dark .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-dark .navbar-menu { + background-color: #363636; + } +} + +.hero.is-dark .navbar-item, +.hero.is-dark .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-dark a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, +.hero.is-dark .navbar-link:hover, +.hero.is-dark .navbar-link.is-active { + background-color: #292929; + color: #fff; +} + +.hero.is-dark .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-dark .tabs a:hover { + opacity: 1; +} + +.hero.is-dark .tabs li.is-active a { + color: #363636 !important; + opacity: 1; +} + +.hero.is-dark .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a { + color: #fff; +} + +.hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #363636; +} + +.hero.is-dark.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); + } +} + +.hero.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-primary strong { + color: inherit; +} + +.hero.is-primary .title { + color: #fff; +} + +.hero.is-primary .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-primary .subtitle a:not(.button), +.hero.is-primary .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-primary .navbar-menu { + background-color: #00d1b2; + } +} + +.hero.is-primary .navbar-item, +.hero.is-primary .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-primary a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, +.hero.is-primary .navbar-link:hover, +.hero.is-primary .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.hero.is-primary .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-primary .tabs a:hover { + opacity: 1; +} + +.hero.is-primary .tabs li.is-active a { + color: #00d1b2 !important; + opacity: 1; +} + +.hero.is-primary .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a { + color: #fff; +} + +.hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #00d1b2; +} + +.hero.is-primary.is-bold { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); + } +} + +.hero.is-link { + background-color: #485fc7; + color: #fff; +} + +.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-link strong { + color: inherit; +} + +.hero.is-link .title { + color: #fff; +} + +.hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-link .subtitle a:not(.button), +.hero.is-link .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-link .navbar-menu { + background-color: #485fc7; + } +} + +.hero.is-link .navbar-item, +.hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, +.hero.is-link .navbar-link:hover, +.hero.is-link .navbar-link.is-active { + background-color: #3a51bb; + color: #fff; +} + +.hero.is-link .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-link .tabs a:hover { + opacity: 1; +} + +.hero.is-link .tabs li.is-active a { + color: #485fc7 !important; + opacity: 1; +} + +.hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; +} + +.hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #485fc7; +} + +.hero.is-link.is-bold { + background-image: linear-gradient(141deg, #2959b3 0%, #485fc7 71%, #5658d2 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #2959b3 0%, #485fc7 71%, #5658d2 100%); + } +} + +.hero.is-info { + background-color: #3e8ed0; + color: #fff; +} + +.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-info strong { + color: inherit; +} + +.hero.is-info .title { + color: #fff; +} + +.hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-info .subtitle a:not(.button), +.hero.is-info .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-info .navbar-menu { + background-color: #3e8ed0; + } +} + +.hero.is-info .navbar-item, +.hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, +.hero.is-info .navbar-link:hover, +.hero.is-info .navbar-link.is-active { + background-color: #3082c5; + color: #fff; +} + +.hero.is-info .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-info .tabs a:hover { + opacity: 1; +} + +.hero.is-info .tabs li.is-active a { + color: #3e8ed0 !important; + opacity: 1; +} + +.hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; +} + +.hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #3e8ed0; +} + +.hero.is-info.is-bold { + background-image: linear-gradient(141deg, #208fbc 0%, #3e8ed0 71%, #4d83db 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #208fbc 0%, #3e8ed0 71%, #4d83db 100%); + } +} + +.hero.is-success { + background-color: #48c78e; + color: #fff; +} + +.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-success strong { + color: inherit; +} + +.hero.is-success .title { + color: #fff; +} + +.hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-success .subtitle a:not(.button), +.hero.is-success .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-success .navbar-menu { + background-color: #48c78e; + } +} + +.hero.is-success .navbar-item, +.hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, +.hero.is-success .navbar-link:hover, +.hero.is-success .navbar-link.is-active { + background-color: #3abb81; + color: #fff; +} + +.hero.is-success .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-success .tabs a:hover { + opacity: 1; +} + +.hero.is-success .tabs li.is-active a { + color: #48c78e !important; + opacity: 1; +} + +.hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; +} + +.hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #48c78e; +} + +.hero.is-success.is-bold { + background-image: linear-gradient(141deg, #29b35e 0%, #48c78e 71%, #56d2af 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #29b35e 0%, #48c78e 71%, #56d2af 100%); + } +} + +.hero.is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-warning strong { + color: inherit; +} + +.hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); +} + +.hero.is-warning .subtitle a:not(.button), +.hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (max-width: 1023px) { + .hero.is-warning .navbar-menu { + background-color: #ffe08a; + } +} + +.hero.is-warning .navbar-item, +.hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, +.hero.is-warning .navbar-link:hover, +.hero.is-warning .navbar-link.is-active { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; +} + +.hero.is-warning .tabs a:hover { + opacity: 1; +} + +.hero.is-warning .tabs li.is-active a { + color: #ffe08a !important; + opacity: 1; +} + +.hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffe08a; +} + +.hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffb657 0%, #ffe08a 71%, #fff6a3 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffb657 0%, #ffe08a 71%, #fff6a3 100%); + } +} + +.hero.is-danger { + background-color: #f14668; + color: #fff; +} + +.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-danger strong { + color: inherit; +} + +.hero.is-danger .title { + color: #fff; +} + +.hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-danger .subtitle a:not(.button), +.hero.is-danger .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-danger .navbar-menu { + background-color: #f14668; + } +} + +.hero.is-danger .navbar-item, +.hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, +.hero.is-danger .navbar-link:hover, +.hero.is-danger .navbar-link.is-active { + background-color: #ef2e55; + color: #fff; +} + +.hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-danger .tabs a:hover { + opacity: 1; +} + +.hero.is-danger .tabs li.is-active a { + color: #f14668 !important; + opacity: 1; +} + +.hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; +} + +.hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #f14668; +} + +.hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); + } +} + +.hero.is-small .hero-body { + padding: 1.5rem; +} + +@media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding: 9rem 4.5rem; + } +} + +@media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding: 18rem 6rem; + } +} + +.hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; +} + +.hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; +} + +.hero.is-halfheight { + min-height: 50vh; +} + +.hero.is-fullheight { + min-height: 100vh; +} + +.hero-video { + overflow: hidden; +} + +.hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); +} + +.hero-video.is-transparent { + opacity: 0.3; +} + +@media screen and (max-width: 768px) { + .hero-video { + display: none; + } +} + +.hero-buttons { + margin-top: 1.5rem; +} + +@media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; + } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; + } + .hero-buttons .button:not(:last-child) { + margin-left: 1.5rem; + } +} + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; +} + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; +} + +@media screen and (min-width: 769px), print { + .hero-body { + padding: 3rem 3rem; + } +} + +.section { + padding: 3rem 1.5rem; +} + +@media screen and (min-width: 1024px) { + .section { + padding: 3rem 3rem; + } + .section.is-medium { + padding: 9rem 4.5rem; + } + .section.is-large { + padding: 18rem 6rem; + } +} + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; +} +/*# sourceMappingURL=bulma-rtl.css.map */ \ No newline at end of file diff --git a/node_modules/bulma/css/bulma-rtl.css.map b/node_modules/bulma/css/bulma-rtl.css.map new file mode 100644 index 0000000..726415e --- /dev/null +++ b/node_modules/bulma/css/bulma-rtl.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../bulma.sass","../sass/utilities/_all.sass","../sass/utilities/extends.sass","../sass/utilities/controls.sass","../sass/utilities/initial-variables.sass","bulma-rtl.css","../sass/utilities/mixins.sass","../sass/base/_all.sass","../sass/base/minireset.sass","../sass/base/generic.sass","../sass/utilities/derived-variables.sass","../sass/base/animations.sass","../sass/elements/_all.sass","../sass/elements/box.sass","../sass/elements/button.sass","../sass/utilities/functions.sass","../sass/elements/container.sass","../sass/elements/content.sass","../sass/elements/icon.sass","../sass/elements/image.sass","../sass/elements/notification.sass","../sass/elements/progress.sass","../sass/elements/table.sass","../sass/elements/tag.sass","../sass/elements/title.sass","../sass/elements/other.sass","../sass/form/_all.sass","../sass/form/shared.sass","../sass/form/input-textarea.sass","../sass/form/checkbox-radio.sass","../sass/form/select.sass","../sass/form/file.sass","../sass/form/tools.sass","../sass/components/_all.sass","../sass/components/breadcrumb.sass","../sass/components/card.sass","../sass/components/dropdown.sass","../sass/components/level.sass","../sass/components/media.sass","../sass/components/menu.sass","../sass/components/message.sass","../sass/components/modal.sass","../sass/components/navbar.sass","../sass/components/pagination.sass","../sass/components/panel.sass","../sass/components/tabs.sass","../sass/grid/_all.sass","../sass/grid/columns.sass","../sass/grid/tiles.sass","../sass/helpers/_all.sass","../sass/helpers/color.sass","../sass/helpers/flexbox.sass","../sass/helpers/float.sass","../sass/helpers/other.sass","../sass/helpers/overflow.sass","../sass/helpers/position.sass","../sass/helpers/spacing.sass","../sass/helpers/typography.sass","../sass/helpers/visibility.sass","../sass/layout/_all.sass","../sass/layout/hero.sass","../sass/layout/section.sass","../sass/layout/footer.sass"],"names":[],"mappings":"AACA,6DAAA;ACDA,oBAAA;ACEA;;;;;ECYE,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;EACnB,6BAA+C;EAC/C,kBCoDU;EDnDV,gBAAgB;EAChB,oBAAoB;EACpB,eCgBW;EDfX,aAfoB;EAgBpB,2BAA2B;EAC3B,gBAhBuB;EAiBvB,iCAf+D;EAgB/D,gCAfkE;EAgBlE,iCAhBkE;EAiBlE,8BAlB+D;EAmB/D,kBAAkB;EAClB,mBAAmB;AENrB;;AFQE;;;;;;;;;;;;;;;;;EAIE,aAAa;AEQjB;;AFPE;;;;;;;;;;;;;;;;EAEE,mBAAmB;AEwBvB;;AH1DA;;;;EI4LE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;AD3HnB;;AHlEA;EIgME,6BAD8B;EAE9B,kBAAkB;EAClB,eAAe;EACf,aAAa;EACb,YAAY;EACZ,cAAc;EACd,eAAe;EACf,qBAAqB;EACrB,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,yBAAyB;EACzB,wBAAwB;EACxB,cAAc;AD1HhB;;AC6HE;;EACE,qBFzKkB;ACgDtB;;AHlFA;EImLE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EAwBjB,qBAAqB;EACrB,wBAAwB;EACxB,uCF7N2B;EE8N3B,YAAY;EACZ,qBFzJqB;EE0JrB,eAAe;EACf,oBAAoB;EACpB,qBAAqB;EACrB,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,WAAW;ADpHb;;ACqHE;EAEE,uBFpO2B;EEqO3B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;ADnHnC;;ACoHE;EACE,WAAW;EACX,UAAU;ADjHd;;ACkHE;EACE,WAAW;EACX,UAAU;AD/Gd;;ACgHE;EAEE,uCFjQyB;ACmJ7B;;AC+GE;EACE,uCFnQyB;ACuJ7B;;AC8GE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;AD3Gf;;AC4GE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADzGf;;AC0GE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADvGf;;AHnKA;EI6QE,mDAA2C;UAA3C,2CAA2C;EAC3C,yBFrR4B;EEsR5B,qBFxNqB;EEyNrB,+BAA+B;EAC/B,6BAA6B;EAC7B,WAAW;EACX,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,UAAU;ADtGZ;;AH7KA;;;;;;;;;;;;;;;;;EIsRE,SADuB;EAEvB,OAFuB;EAGvB,kBAAkB;EAClB,QAJuB;EAKvB,MALuB;ADhFzB;;AHlMA;EIqDE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;ADiJZ;;AEtOA,eAAA;ACAA,0EAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;EAuBE,SAAS;EACT,UAAU;AHyOZ;;AGtOA;;;;;;EAME,eAAe;EACf,mBAAmB;AHyOrB;;AGtOA;EACE,gBAAgB;AHyOlB;;AGtOA;;;;EAIE,SAAS;AHyOX;;AGtOA;EACE,sBAAsB;AHyOxB;;AGvOA;EAII,mBAAmB;AHuOvB;;AGpOA;;EAEE,YAAY;EACZ,eAAe;AHuOjB;;AGpOA;EACE,SAAS;AHuOX;;AGpOA;EACE,yBAAyB;EACzB,iBAAiB;AHuOnB;;AGrOA;;EAEE,UAAU;AHwOZ;;AG1OA;;EAII,mBAAmB;AH2OvB;;AGvQA;EChBE,uBLnB6B;EKoB7B,eAhCc;EAiCd,kCAAkC;EAClC,mCAAmC;EACnC,gBAlCoB;EAmCpB,kBAhCsB;EAiCtB,kBAhCsB;EAiCtB,kCApCiC;EAqCjC,8BAAsB;KAAtB,2BAAsB;UAAtB,sBAAsB;AJ2RxB;;AIzRA;;;;;;;EAOE,cAAc;AJ4RhB;;AI1RA;;;;;;EAME,oLL/ByL;AC4T3L;;AI3RA;;EAEE,6BAA6B;EAC7B,4BAA4B;EAC5B,sBLpC0B;ACkU5B;;AI5RA;EACE,cL7D4B;EK8D5B,cA1DkB;EA2DlB,gBL7BiB;EK8BjB,gBA1DoB;AJyVtB;;AI3RA;EACE,cLtDgC;EKuDhC,eAAe;EACf,qBAAqB;AJ8RvB;;AIjSA;EAKI,mBAAmB;AJgSvB;;AIrSA;EAOI,cL5E0B;AC8W9B;;AIhSA;EACE,4BLxE4B;EKyE5B,cCnBsB;EDoBtB,kBArEiB;EAsEjB,mBAvEkB;EAwElB,4BAzEgC;AJ4WlC;;AIjSA;EACE,4BL/E4B;EKgF5B,YAAY;EACZ,cAAc;EACd,WAxEa;EAyEb,gBAxEkB;AJ4WpB;;AIlSA;EACE,YAAY;EACZ,eAAe;AJqSjB;;AInSA;;EAEE,wBAAwB;AJsS1B;;AIpSA;EACE,kBAvFuB;AJ8XzB;;AIrSA;EACE,mBAAmB;EACnB,oBAAoB;AJwStB;;AItSA;EACE,cL5G4B;EK6G5B,gBLvEe;ACgXjB;;AIrSA;EACE,YAAY;AJwSd;;AItSA;EHvDE,iCAAiC;EGyDjC,4BL/G4B;EKgH5B,cLtH4B;EKuH5B,kBAjGqB;EAkGrB,gBAAgB;EAChB,uBAlG0B;EAmG1B,gBAAgB;EAChB,iBAAiB;AJySnB;;AIjTA;EAUI,6BAA6B;EAC7B,mBAAmB;EACnB,cAvGoB;EAwGpB,UAAU;AJ2Sd;;AIzSA;;EAGI,mBAAmB;AJ2SvB;;AI9SA;;EAKM,mBAAmB;AJ8SzB;;AInTA;EAOI,cL1I0B;AC0b9B;;AMhcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AMzcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AOzcA,mBAAA;ACWA;EAEE,uBTE6B;ESD7B,kBTyDgB;ESxDhB,0FTb2B;ESc3B,cTT4B;ESU5B,cAAc;EACd,gBAZmB;AR6crB;;AQ/bA;EAGI,yETD8B;ACiclC;;AQncA;EAKI,oETH8B;ACqclC;;AS/ZA;EAGE,uBVhD6B;EUiD7B,qBVtD4B;EUuD5B,iBX5DwB;EW6DxB,cV5D4B;EU6D5B,eAAe;EAGf,uBAAuB;EACvB,iCA7D6D;EA8D7D,iBA7D6B;EA8D7B,kBA9D6B;EA+D7B,8BAhE6D;EAiE7D,kBAAkB;EAClB,mBAAmB;AT8ZrB;;AS9aA;EAkBI,cAAc;ATgalB;;ASlbA;EAwBM,aAAa;EACb,YAAY;AT8ZlB;;ASvbA;ERsHI,gCQ3FsG;ER2FtG,mBQ1FmE;ATgavE;;AS5bA;ERsHI,oBQxFmE;ERwFnE,+BQvFsG;ATka1G;;ASjcA;EAiCM,+BAAiF;EACjF,gCAAkF;AToaxF;;AStcA;EAsCI,qBVzF0B;EU0F1B,cV7F0B;ACigB9B;;AS3cA;EA0CI,qBVhF8B;EUiF9B,cVjG0B;ACsgB9B;;AShdA;EA6CM,iDVnF4B;AC0flC;;ASpdA;EAgDI,qBVrG0B;EUsG1B,cVvG0B;AC+gB9B;;ASzdA;EAoDI,6BAA6B;EAC7B,yBAAyB;EACzB,cV3G0B;EU4G1B,0BA1F8B;ATmgBlC;;ASheA;EA4DM,4BV3GwB;EU4GxB,cVnHwB;AC2hB9B;;ASreA;EAgEM,yBChB2B;EDiB3B,cVvHwB;ACgiB9B;;AS1eA;;EAoEM,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;AT2atB;;ASjfA;EAwEI,gBAvG0B;EAwG1B,yBAvGmC;EAwGnC,cVhH8B;EUiH9B,qBAvG0B;ATohB9B;;ASxfA;EA8EM,cVpH4B;EUqH5B,0BAzGmC;ATuhBzC;;AS7fA;EAoFM,uBVjIyB;EUkIzB,yBAAyB;EACzB,cVhJuB;AC6jB7B;;ASngBA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,cVrJqB;ACmkB7B;;ASzgBA;EA8FQ,yBAAyB;EACzB,cVzJqB;ACwkB7B;;AS9gBA;EAiGU,mDV9IqB;AC+jB/B;;ASlhBA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,cVhKqB;ACklB7B;;ASxhBA;;EAyGQ,uBVtJuB;EUuJvB,mBVvJuB;EUwJvB,gBAAgB;ATobxB;;AS/hBA;EA6GQ,yBVvKqB;EUwKrB,YV3JuB;ACilB/B;;ASpiBA;EAiHU,uBCjEuB;AVwfjC;;ASxiBA;;EAoHU,yBV9KmB;EU+KnB,yBAAyB;EACzB,gBAAgB;EAChB,YVpKqB;AC6lB/B;;AShjBA;EA0HU,gEAA4E;AT0btF;;ASpjBA;EA4HQ,6BAA6B;EAC7B,mBV1KuB;EU2KvB,YV3KuB;ACumB/B;;AS1jBA;EAmIU,uBVhLqB;EUiLrB,mBVjLqB;EUkLrB,cV/LmB;AC0nB7B;;AShkBA;EAwIY,4DAA8D;AT4b1E;;ASpkBA;EA8Ic,gEAA4E;AT0b1F;;ASxkBA;;EAiJU,6BAA6B;EAC7B,mBV/LqB;EUgMrB,gBAAgB;EAChB,YVjMqB;AC6nB/B;;AShlBA;EAsJQ,6BAA6B;EAC7B,qBVjNqB;EUkNrB,cVlNqB;ACgpB7B;;AStlBA;EA6JU,yBVvNmB;EUwNnB,YV3MqB;ACwoB/B;;AS3lBA;EAqKc,4DAA8D;AT0b5E;;AS/lBA;;EAwKU,6BAA6B;EAC7B,qBVnOmB;EUoOnB,gBAAgB;EAChB,cVrOmB;ACiqB7B;;ASvmBA;EAoFM,yBV9IuB;EU+IvB,yBAAyB;EACzB,YVnIyB;AC0pB/B;;AS7mBA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,YVxIuB;ACgqB/B;;ASnnBA;EA8FQ,yBAAyB;EACzB,YV5IuB;ACqqB/B;;ASxnBA;EAiGU,gDV3JmB;ACsrB7B;;AS5nBA;EAoGQ,uBCpDyB;EDqDzB,yBAAyB;EACzB,YVnJuB;AC+qB/B;;ASloBA;;EAyGQ,yBVnKqB;EUoKrB,qBVpKqB;EUqKrB,gBAAgB;AT8hBxB;;ASzoBA;EA6GQ,uBV1JuB;EU2JvB,cVxKqB;ACwsB7B;;AS9oBA;EAiHU,yBCjEuB;AVkmBjC;;ASlpBA;;EAoHU,uBVjKqB;EUkKrB,yBAAyB;EACzB,gBAAgB;EAChB,cVjLmB;ACotB7B;;AS1pBA;EA0HU,4DAA4E;AToiBtF;;AS9pBA;EA4HQ,6BAA6B;EAC7B,qBVvLqB;EUwLrB,cVxLqB;AC8tB7B;;ASpqBA;EAmIU,yBV7LmB;EU8LnB,qBV9LmB;EU+LnB,YVlLqB;ACutB/B;;AS1qBA;EAwIY,gEAA8D;ATsiB1E;;AS9qBA;EA8Ic,4DAA4E;AToiB1F;;ASlrBA;;EAiJU,6BAA6B;EAC7B,qBV5MmB;EU6MnB,gBAAgB;EAChB,cV9MmB;ACovB7B;;AS1rBA;EAsJQ,6BAA6B;EAC7B,mBVpMuB;EUqMvB,YVrMuB;AC6uB/B;;AShsBA;EA6JU,uBV1MqB;EU2MrB,cVxNmB;AC+vB7B;;ASrsBA;EAqKc,gEAA8D;AToiB5E;;ASzsBA;;EAwKU,6BAA6B;EAC7B,mBVtNqB;EUuNrB,gBAAgB;EAChB,YVxNqB;AC8vB/B;;ASjtBA;EAoFM,4BVnIwB;EUoIxB,yBAAyB;EACzB,yBClEe;AVmsBrB;;ASvtBA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,yBCvEa;AVysBrB;;AS7tBA;EA8FQ,yBAAyB;EACzB,yBC3Ea;AV8sBrB;;ASluBA;EAiGU,mDVhJoB;ACqxB9B;;AStuBA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,yBClFa;AVwtBrB;;AS5uBA;;EAyGQ,4BVxJsB;EUyJtB,wBVzJsB;EU0JtB,gBAAgB;ATwoBxB;;ASnvBA;EA6GQ,oCCzFa;ED0Fb,iBV7JsB;ACuyB9B;;ASxvBA;EAiHU,oCCjEuB;AV4sBjC;;AS5vBA;;EAoHU,oCChGW;EDiGX,yBAAyB;EACzB,gBAAgB;EAChB,iBVtKoB;ACmzB9B;;ASpwBA;EA0HU,sFAA4E;AT8oBtF;;ASxwBA;EA4HQ,6BAA6B;EAC7B,wBV5KsB;EU6KtB,iBV7KsB;AC6zB9B;;AS9wBA;EAmIU,4BVlLoB;EUmLpB,wBVnLoB;EUoLpB,yBCjHW;AVgwBrB;;ASpxBA;EAwIY,sEAA8D;ATgpB1E;;ASxxBA;EA8Ic,sFAA4E;AT8oB1F;;AS5xBA;;EAiJU,6BAA6B;EAC7B,wBVjMoB;EUkMpB,gBAAgB;EAChB,iBVnMoB;ACm1B9B;;ASpyBA;EAsJQ,6BAA6B;EAC7B,gCCnIa;EDoIb,yBCpIa;AVsxBrB;;AS1yBA;EA6JU,oCCzIW;ED0IX,iBV7MoB;AC81B9B;;AS/yBA;EAqKc,sEAA8D;AT8oB5E;;ASnzBA;;EAwKU,6BAA6B;EAC7B,gCCrJW;EDsJX,gBAAgB;EAChB,yBCvJW;AVuyBrB;;AS3zBA;EAoFM,yBV1IwB;EU2IxB,yBAAyB;EACzB,WChEU;AV2yBhB;;ASj0BA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVizBhB;;ASv0BA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVszBhB;;AS50BA;EAiGU,gDVvJoB;ACs4B9B;;ASh1BA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVg0BhB;;ASt1BA;;EAyGQ,yBV/JsB;EUgKtB,qBVhKsB;EUiKtB,gBAAgB;ATkvBxB;;AS71BA;EA6GQ,sBCvFQ;EDwFR,cVpKsB;ACw5B9B;;ASl2BA;EAiHU,yBCjEuB;AVszBjC;;ASt2BA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV7KoB;ACo6B9B;;AS92BA;EA0HU,0DAA4E;ATwvBtF;;ASl3BA;EA4HQ,6BAA6B;EAC7B,qBVnLsB;EUoLtB,cVpLsB;AC86B9B;;ASx3BA;EAmIU,yBVzLoB;EU0LpB,qBV1LoB;EU2LpB,WC/GM;AVw2BhB;;AS93BA;EAwIY,gEAA8D;AT0vB1E;;ASl4BA;EA8Ic,0DAA4E;ATwvB1F;;ASt4BA;;EAiJU,6BAA6B;EAC7B,qBVxMoB;EUyMpB,gBAAgB;EAChB,cV1MoB;ACo8B9B;;AS94BA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AV83BhB;;ASp5BA;EA6JU,sBCvIM;EDwIN,cVpNoB;AC+8B9B;;ASz5BA;EAqKc,gEAA8D;ATwvB5E;;AS75BA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AV+4BhB;;ASr6BA;EAoFM,yBV5H4B;EU6H5B,yBAAyB;EACzB,WChEU;AVq5BhB;;AS36BA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AV25BhB;;ASj7BA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVg6BhB;;ASt7BA;EAiGU,iDVzIwB;ACk+BlC;;AS17BA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AV06BhB;;ASh8BA;;EAyGQ,yBVjJ0B;EUkJ1B,qBVlJ0B;EUmJ1B,gBAAgB;AT41BxB;;ASv8BA;EA6GQ,sBCvFQ;EDwFR,cVtJ0B;ACo/BlC;;AS58BA;EAiHU,yBCjEuB;AVg6BjC;;ASh9BA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV/JwB;ACggClC;;ASx9BA;EA0HU,0DAA4E;ATk2BtF;;AS59BA;EA4HQ,6BAA6B;EAC7B,qBVrK0B;EUsK1B,cVtK0B;AC0gClC;;ASl+BA;EAmIU,yBV3KwB;EU4KxB,qBV5KwB;EU6KxB,WC/GM;AVk9BhB;;ASx+BA;EAwIY,gEAA8D;ATo2B1E;;AS5+BA;EA8Ic,0DAA4E;ATk2B1F;;ASh/BA;;EAiJU,6BAA6B;EAC7B,qBV1LwB;EU2LxB,gBAAgB;EAChB,cV5LwB;ACgiClC;;ASx/BA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AVw+BhB;;AS9/BA;EA6JU,sBCvIM;EDwIN,cVtMwB;AC2iClC;;ASngCA;EAqKc,gEAA8D;ATk2B5E;;ASvgCA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AVy/BhB;;AS/gCA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AV++BrE;;ASphCA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVq/BrE;;AS1hCA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AV2/BrE;;AShiCA;EAoFM,yBV1H4B;EU2H5B,yBAAyB;EACzB,WChEU;AVghChB;;AStiCA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVshChB;;AS5iCA;EA8FQ,yBAAyB;EACzB,WCzEQ;AV2hChB;;ASjjCA;EAiGU,iDVvIwB;AC2lClC;;ASrjCA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVqiChB;;AS3jCA;;EAyGQ,yBV/I0B;EUgJ1B,qBVhJ0B;EUiJ1B,gBAAgB;ATu9BxB;;ASlkCA;EA6GQ,sBCvFQ;EDwFR,cVpJ0B;AC6mClC;;ASvkCA;EAiHU,yBCjEuB;AV2hCjC;;AS3kCA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV7JwB;ACynClC;;ASnlCA;EA0HU,0DAA4E;AT69BtF;;ASvlCA;EA4HQ,6BAA6B;EAC7B,qBVnK0B;EUoK1B,cVpK0B;ACmoClC;;AS7lCA;EAmIU,yBVzKwB;EU0KxB,qBV1KwB;EU2KxB,WC/GM;AV6kChB;;ASnmCA;EAwIY,gEAA8D;AT+9B1E;;ASvmCA;EA8Ic,0DAA4E;AT69B1F;;AS3mCA;;EAiJU,6BAA6B;EAC7B,qBVxLwB;EUyLxB,gBAAgB;EAChB,cV1LwB;ACypClC;;ASnnCA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AVmmChB;;ASznCA;EA6JU,sBCvIM;EDwIN,cVpMwB;ACoqClC;;AS9nCA;EAqKc,gEAA8D;AT69B5E;;ASloCA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AVonChB;;AS1oCA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AV0mCrE;;AS/oCA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVgnCrE;;ASrpCA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVsnCrE;;AS3pCA;EAoFM,yBV3H4B;EU4H5B,yBAAyB;EACzB,WChEU;AV2oChB;;ASjqCA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVipChB;;ASvqCA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVspChB;;AS5qCA;EAiGU,kDVxIwB;ACutClC;;AShrCA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVgqChB;;AStrCA;;EAyGQ,yBVhJ0B;EUiJ1B,qBVjJ0B;EUkJ1B,gBAAgB;ATklCxB;;AS7rCA;EA6GQ,sBCvFQ;EDwFR,cVrJ0B;ACyuClC;;ASlsCA;EAiHU,yBCjEuB;AVspCjC;;AStsCA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV9JwB;ACqvClC;;AS9sCA;EA0HU,0DAA4E;ATwlCtF;;ASltCA;EA4HQ,6BAA6B;EAC7B,qBVpK0B;EUqK1B,cVrK0B;AC+vClC;;ASxtCA;EAmIU,yBV1KwB;EU2KxB,qBV3KwB;EU4KxB,WC/GM;AVwsChB;;AS9tCA;EAwIY,gEAA8D;AT0lC1E;;ASluCA;EA8Ic,0DAA4E;ATwlC1F;;AStuCA;;EAiJU,6BAA6B;EAC7B,qBVzLwB;EU0LxB,gBAAgB;EAChB,cV3LwB;ACqxClC;;AS9uCA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AV8tChB;;ASpvCA;EA6JU,sBCvIM;EDwIN,cVrMwB;ACgyClC;;ASzvCA;EAqKc,gEAA8D;ATwlC5E;;AS7vCA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AV+uChB;;ASrwCA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AVquCrE;;AS1wCA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AV2uCrE;;AShxCA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVivCrE;;AStxCA;EAoFM,yBV7H4B;EU8H5B,yBAAyB;EACzB,WChEU;AVswChB;;AS5xCA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AV4wChB;;ASlyCA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVixChB;;ASvyCA;EAiGU,kDV1IwB;ACo1ClC;;AS3yCA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AV2xChB;;ASjzCA;;EAyGQ,yBVlJ0B;EUmJ1B,qBVnJ0B;EUoJ1B,gBAAgB;AT6sCxB;;ASxzCA;EA6GQ,sBCvFQ;EDwFR,cVvJ0B;ACs2ClC;;AS7zCA;EAiHU,yBCjEuB;AVixCjC;;ASj0CA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cVhKwB;ACk3ClC;;ASz0CA;EA0HU,0DAA4E;ATmtCtF;;AS70CA;EA4HQ,6BAA6B;EAC7B,qBVtK0B;EUuK1B,cVvK0B;AC43ClC;;ASn1CA;EAmIU,yBV5KwB;EU6KxB,qBV7KwB;EU8KxB,WC/GM;AVm0ChB;;ASz1CA;EAwIY,gEAA8D;ATqtC1E;;AS71CA;EA8Ic,0DAA4E;ATmtC1F;;ASj2CA;;EAiJU,6BAA6B;EAC7B,qBV3LwB;EU4LxB,gBAAgB;EAChB,cV7LwB;ACk5ClC;;ASz2CA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AVy1ChB;;AS/2CA;EA6JU,sBCvIM;EDwIN,cVvMwB;AC65ClC;;ASp3CA;EAqKc,gEAA8D;ATmtC5E;;ASx3CA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AV02ChB;;ASh4CA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AVg2CrE;;ASr4CA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVs2CrE;;AS34CA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AV42CrE;;ASj5CA;EAoFM,yBV9H4B;EU+H5B,yBAAyB;EACzB,yBClEe;AVm4CrB;;ASv5CA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,yBCvEa;AVy4CrB;;AS75CA;EA8FQ,yBAAyB;EACzB,yBC3Ea;AV84CrB;;ASl6CA;EAiGU,mDV3IwB;ACg9ClC;;ASt6CA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,yBClFa;AVw5CrB;;AS56CA;;EAyGQ,yBVnJ0B;EUoJ1B,qBVpJ0B;EUqJ1B,gBAAgB;ATw0CxB;;ASn7CA;EA6GQ,oCCzFa;ED0Fb,cVxJ0B;ACk+ClC;;ASx7CA;EAiHU,oCCjEuB;AV44CjC;;AS57CA;;EAoHU,oCChGW;EDiGX,yBAAyB;EACzB,gBAAgB;EAChB,cVjKwB;AC8+ClC;;ASp8CA;EA0HU,sFAA4E;AT80CtF;;ASx8CA;EA4HQ,6BAA6B;EAC7B,qBVvK0B;EUwK1B,cVxK0B;ACw/ClC;;AS98CA;EAmIU,yBV7KwB;EU8KxB,qBV9KwB;EU+KxB,yBCjHW;AVg8CrB;;ASp9CA;EAwIY,gEAA8D;ATg1C1E;;ASx9CA;EA8Ic,sFAA4E;AT80C1F;;AS59CA;;EAiJU,6BAA6B;EAC7B,qBV5LwB;EU6LxB,gBAAgB;EAChB,cV9LwB;AC8gDlC;;ASp+CA;EAsJQ,6BAA6B;EAC7B,gCCnIa;EDoIb,yBCpIa;AVs9CrB;;AS1+CA;EA6JU,oCCzIW;ED0IX,cVxMwB;ACyhDlC;;AS/+CA;EAqKc,gEAA8D;AT80C5E;;ASn/CA;;EAwKU,6BAA6B;EAC7B,gCCrJW;EDsJX,gBAAgB;EAChB,yBCvJW;AVu+CrB;;AS3/CA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AV29CrE;;AShgDA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVi+CrE;;AStgDA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVu+CrE;;AS5gDA;EAoFM,yBVxH2B;EUyH3B,yBAAyB;EACzB,WChEU;AV4/ChB;;ASlhDA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVkgDhB;;ASxhDA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVugDhB;;AS7hDA;EAiGU,kDVrIuB;ACqkDjC;;ASjiDA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVihDhB;;ASviDA;;EAyGQ,yBV7IyB;EU8IzB,qBV9IyB;EU+IzB,gBAAgB;ATm8CxB;;AS9iDA;EA6GQ,sBCvFQ;EDwFR,cVlJyB;ACulDjC;;ASnjDA;EAiHU,yBCjEuB;AVugDjC;;ASvjDA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV3JuB;ACmmDjC;;AS/jDA;EA0HU,0DAA4E;ATy8CtF;;ASnkDA;EA4HQ,6BAA6B;EAC7B,qBVjKyB;EUkKzB,cVlKyB;AC6mDjC;;ASzkDA;EAmIU,yBVvKuB;EUwKvB,qBVxKuB;EUyKvB,WC/GM;AVyjDhB;;AS/kDA;EAwIY,gEAA8D;AT28C1E;;ASnlDA;EA8Ic,0DAA4E;ATy8C1F;;ASvlDA;;EAiJU,6BAA6B;EAC7B,qBVtLuB;EUuLvB,gBAAgB;EAChB,cVxLuB;ACmoDjC;;AS/lDA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AV+kDhB;;ASrmDA;EA6JU,sBCvIM;EDwIN,cVlMuB;AC8oDjC;;AS1mDA;EAqKc,gEAA8D;ATy8C5E;;AS9mDA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AVgmDhB;;AStnDA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AVslDrE;;AS3nDA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AV4lDrE;;ASjoDA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVkmDrE;;ASvoDA;EARE,kBVdc;ACiqDhB;;ASrpDE;EACE,kBVkBc;ACsoDlB;;AS/oDA;EANE,eVjBW;AC0qDb;;ASnpDA;EAJE,kBVpBc;AC+qDhB;;ASvpDA;EAFE,iBVvBa;ACorDf;;AS3pDA;;EAyMI,uBVtP2B;EUuP3B,qBV5P0B;EU6P1B,gBAjOyB;EAkOzB,YAjOyB;ATwrD7B;;ASnqDA;EA8MI,aAAa;EACb,WAAW;ATy9Cf;;ASxqDA;EAiNI,6BAA6B;EAC7B,oBAAoB;AT29CxB;;AS7qDA;ERnDE,kBAAkB;EAKhB,6BAAmC;EACnC,4BAAkC;EQmQhC,6BAA6B;AT89CnC;;ASprDA;EAwNI,4BVvQ0B;EUwQ1B,qBV3Q0B;EU4Q1B,cV9Q0B;EU+Q1B,gBAAgB;EAChB,oBAAoB;ATg+CxB;;AS5rDA;EA8NI,qBVlNmB;EUmNnB,gCAA0D;EAC1D,iCAA2D;ATk+C/D;;ASh+CA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;ATm+C7B;;ASv+CA;EAMI,qBAAqB;ATq+CzB;;AS3+CA;ER5GI,mBQoHwC;ATu+C5C;;AS/+CA;EAUI,sBAAsB;ATy+C1B;;ASn/CA;EAYI,mBAAmB;AT2+CvB;;ASv/CA;EA1OE,kBVdc;ACmvDhB;;ASvuDE;EACE,kBVkBc;ACwtDlB;;AS//CA;EAtOE,kBVpBc;AC6vDhB;;ASngDA;EApOE,iBVvBa;ACkwDf;;ASvgDA;EA0BQ,4BAA4B;EAC5B,yBAAyB;ATi/CjC;;AS5gDA;EA6BQ,6BAA6B;EAC7B,0BAA0B;ER1I9B,iBQ2IwC;ATm/C5C;;ASlhDA;ER5GI,cQ6IqC;ATq/CzC;;ASthDA;EAoCQ,UAAU;ATs/ClB;;AS1hDA;EA0CQ,UAAU;ATo/ClB;;AS9hDA;EA4CU,UAAU;ATs/CpB;;ASliDA;EA8CQ,YAAY;EACZ,cAAc;ATw/CtB;;ASviDA;EAiDI,uBAAuB;AT0/C3B;;AS3iDA;EAoDQ,oBAAoB;EACpB,qBAAqB;AT2/C7B;;AShjDA;EAuDI,yBAAyB;AT6/C7B;;ASpjDA;EA0DQ,oBAAoB;EACpB,qBAAqB;AT8/C7B;;ACzvDE;EQiQM;IACE,oBAlTyD;ET8yDjE;ES1/CM;;IAEE,qBAtT0F;ETkzDlG;ESjgDM;IACE,kBV1TM;EC6zDd;ESpgDM;IACE,eV3TG;ECi0DX;AACF;;ACrwDE;EQ6PM;IACE,qBAlTyL;ET8zDjM;ES1gDM;;IAEE,kBV9TM;EC00Dd;ESjhDM;IACE,eV3TG;EC80DX;ESphDM;IACE,kBV5TM;ECk1Dd;AACF;;AWl3DA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AXq3Db;;AWz3DA;EAMI,0BAA0B;EAC1B,kBZyCM;EYxCN,mBZwCM;EYvCN,WAAW;AXu3Df;;AC/wDE;EUjHF;IAWI,gBAAuC;EX03DzC;AACF;;AC3wDI;EU3HJ;IAcM,iBAAqE;EX63DzE;AACF;;AClwDI;EU1IJ;IAiBM,iBAAiE;EXg4DrE;AACF;;AClxDI;EUhIJ;IAoBM,iBAAqE;EXm4DzE;AACF;;ACzwDI;EU/IJ;IAuBM,iBAAiE;EXs4DrE;AACF;;AY34DA;EAII,kBAAkB;AZ24DtB;;AY/4DA;;;;;;;EAcM,kBAhC2B;AZ26DjC;;AYz5DA;;;;;;EAqBI,cbvC0B;EawC1B,gBbHiB;EaIjB,kBA3C+B;AZw7DnC;;AYp6DA;EAyBI,cAAc;EACd,oBAAoB;AZ+4DxB;;AYz6DA;EA4BM,eAAe;AZi5DrB;;AY76DA;EA8BI,iBAAiB;EACjB,uBAAuB;AZm5D3B;;AYl7DA;EAiCM,oBAAoB;AZq5D1B;;AYt7DA;EAmCI,gBAAgB;EAChB,uBAAuB;AZu5D3B;;AY37DA;EAsCM,oBAAoB;AZy5D1B;;AY/7DA;EAwCI,iBAAiB;EACjB,oBAAoB;AZ25DxB;;AYp8DA;EA2CI,kBAAkB;EAClB,uBAAuB;AZ65D3B;;AYz8DA;EA8CI,cAAc;EACd,kBAAkB;AZ+5DtB;;AY98DA;EAiDI,4Bb5D0B;EEqK1B,+BFxK0B;EaiE1B,qBAjEqC;AZk+DzC;;AYp9DA;EAqDI,4BAA4B;EXqG5B,iBWpGmC;EACnC,eAAe;AZm6DnB;;AY19DA;EAyDM,wBAAwB;AZq6D9B;;AY99DA;EA2DQ,4BAA4B;AZu6DpC;;AYl+DA;EA6DQ,4BAA4B;AZy6DpC;;AYt+DA;EA+DQ,4BAA4B;AZ26DpC;;AY1+DA;EAiEQ,4BAA4B;AZ66DpC;;AY9+DA;EAmEI,wBAAwB;EXuFxB,iBWtFmC;EACnC,eAAe;AZ+6DnB;;AYp/DA;EAuEM,uBAAuB;EACvB,iBAAiB;AZi7DvB;;AYz/DA;EA0EQ,uBAAuB;AZm7D/B;;AY7/DA;EX0JI,iBW9EmC;AZq7DvC;;AYjgEA;EA8EI,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;AZu7DtB;;AYvgEA;EAkFM,eAAe;AZy7DrB;;AY3gEA;EAoFM,kBAAkB;AZ27DxB;;AY/gEA;EAsFM,qBAAqB;AZ67D3B;;AYnhEA;EAwFM,kBAAkB;AZ+7DxB;;AYvhEA;EX2CE,iCAAiC;EWgD/B,gBAAgB;EAChB,qBAxG8B;EAyG9B,gBAAgB;EAChB,iBAAiB;AZi8DrB;;AY/hEA;;EAiGI,cAAc;AZm8DlB;;AYpiEA;EAmGI,WAAW;AZq8Df;;AYxiEA;;EAsGM,yBbpHwB;EaqHxB,qBAhHmC;EAiHnC,qBAhHmC;EAiHnC,mBAAmB;AZu8DzB;;AYhjEA;EA2GM,cb7HwB;ACskE9B;;AYpjEA;EA6GQ,mBAAmB;AZ28D3B;;AYxjEA;;EAiHQ,qBAvHsC;EAwHtC,cbpIsB;ACglE9B;;AY9jEA;;EAsHQ,qBAzHsC;EA0HtC,cbzIsB;ACslE9B;;AYpkEA;;EA6HY,sBAjI4C;AZ6kExD;;AYzkEA;EAgIM,aAAa;AZ68DnB;;AY7kEA;EAmII,kBbrHY;ACmkEhB;;AYjlEA;EAqII,ebxHS;ACwkEb;;AYrlEA;EAuII,kBb3HY;AC6kEhB;;AYzlEA;EAyII,iBb9HW;ACklEf;;Aa/mEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,cAVsB;EAWtB,aAXsB;Ab6nExB;;AavnEA;EAQI,YAbwB;EAcxB,WAdwB;AbioE5B;;Aa5nEA;EAWI,YAfyB;EAgBzB,WAhByB;AbqoE7B;;AajoEA;EAcI,YAjBwB;EAkBxB,WAlBwB;AbyoE5B;;AarnEA;EACE,uBAAuB;EACvB,cAAc;EACd,oBAAoB;EACpB,eAAe;EACf,mBA5BsB;EA6BtB,mBAAmB;AbwnErB;;Aa9nEA;EAQI,YAAY;EACZ,cAAc;Ab0nElB;;AanoEA;EAcQ,mBAjCkB;Ab0pE1B;;AavoEA;EAmBQ,oBAtCkB;Ab8pE1B;;AatnEA;EACE,aAAa;AbynEf;;AclqEA;EACE,cAAc;EACd,kBAAkB;AdqqEpB;;AcvqEA;EAII,cAAc;EACd,YAAY;EACZ,WAAW;AduqEf;;Ac7qEA;EAQM,qBf4DiB;AC6mEvB;;AcjrEA;EAUI,WAAW;Ad2qEf;;AcrrEA;;;;;;;;;;;;;;;;;EA+BM,YAAY;EACZ,WAAW;Ad0qEjB;;Ac1sEA;EAmCI,iBAAiB;Ad2qErB;;Ac9sEA;EAqCI,gBAAgB;Ad6qEpB;;AcltEA;EAuCI,gBAAgB;Ad+qEpB;;ActtEA;EAyCI,qBAAqB;AdirEzB;;Ac1tEA;EA2CI,gBAAgB;AdmrEpB;;Ac9tEA;EA6CI,mBAAmB;AdqrEvB;;AcluEA;EA+CI,gBAAgB;AdurEpB;;ActuEA;EAiDI,qBAAqB;AdyrEzB;;Ac1uEA;EAmDI,iBAAiB;Ad2rErB;;Ac9uEA;EAqDI,sBAAsB;Ad6rE1B;;AclvEA;EAuDI,iBAAiB;Ad+rErB;;ActvEA;EAyDI,sBAAsB;AdisE1B;;Ac1vEA;EA2DI,sBAAsB;AdmsE1B;;Ac9vEA;EA6DI,iBAAiB;AdqsErB;;AclwEA;EA+DI,iBAAiB;AdusErB;;ActwEA;EAmEM,YAAwB;EACxB,WAAuB;AdusE7B;;Ac3wEA;EAmEM,YAAwB;EACxB,WAAuB;Ad4sE7B;;AchxEA;EAmEM,YAAwB;EACxB,WAAuB;AditE7B;;AcrxEA;EAmEM,YAAwB;EACxB,WAAuB;AdstE7B;;Ac1xEA;EAmEM,YAAwB;EACxB,WAAuB;Ad2tE7B;;Ac/xEA;EAmEM,YAAwB;EACxB,WAAuB;AdguE7B;;AcpyEA;EAmEM,aAAwB;EACxB,YAAuB;AdquE7B;;AelyEA;EAEE,4BhBA4B;EgBC5B,kBhBwDU;EgBvDV,kBAAkB;EAIhB,sCAZoD;Af6yExD;;AezyEA;EAUI,mBAAmB;EACnB,0BAA0B;AfmyE9B;;Ae9yEA;EAaI,mBAAmB;AfqyEvB;;AelzEA;;EAgBI,iBhBZ2B;ACmzE/B;;AevzEA;EAkBI,uBAAuB;AfyyE3B;;Ae3zEA;Ed+KI,Yc3J4B;EAC5B,kBAAkB;EAClB,WAAW;Af2yEf;;Aej0EA;;;EA0BI,mBAAmB;Af6yEvB;;Aev0EA;EAgCM,uBhB5ByB;EgB6BzB,chB1CuB;ACq1E7B;;Ae50EA;EAgCM,yBhBzCuB;EgB0CvB,YhB7ByB;AC60E/B;;Aej1EA;EAgCM,4BhB9BwB;EgB+BxB,yBLoCe;AVixErB;;Aet1EA;EAgCM,yBhBrCwB;EgBsCxB,WLsCU;AVoxEhB;;Ae31EA;EAgCM,yBhBvB4B;EgBwB5B,WLsCU;AVyxEhB;;Aeh2EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AV+wErE;;Aer2EA;EAgCM,yBhBrB4B;EgBsB5B,WLsCU;AVmyEhB;;Ae12EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVyxErE;;Ae/2EA;EAgCM,yBhBtB4B;EgBuB5B,WLsCU;AV6yEhB;;Aep3EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVmyErE;;Aez3EA;EAgCM,yBhBxB4B;EgByB5B,WLsCU;AVuzEhB;;Ae93EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AV6yErE;;Aen4EA;EAgCM,yBhBzB4B;EgB0B5B,yBLoCe;AVm0ErB;;Aex4EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVuzErE;;Ae74EA;EAgCM,yBhBnB2B;EgBoB3B,WLsCU;AV20EhB;;Ael5EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVi0ErE;;AgBx5EA;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,YAAY;EACZ,qBjByDqB;EiBxDrB,cAAc;EACd,YjBoBW;EiBnBX,gBAAgB;EAChB,UAAU;EACV,WAAW;AhB05Eb;;AgBp6EA;EAYI,yBjBX2B;ACu6E/B;;AgBx6EA;EAcI,yBjBjB0B;AC+6E9B;;AgB56EA;EAgBI,yBjBnB0B;ACm7E9B;;AgBh7EA;EAkBI,yBjBrB0B;EiBsB1B,YAAY;AhBk6EhB;;AgBr7EA;EAyBQ,uBjBpBuB;ACo7E/B;;AgBz7EA;EA2BQ,uBjBtBuB;ACw7E/B;;AgB77EA;EA6BQ,uBjBxBuB;AC47E/B;;AgBj8EA;EA+BQ,mEAA2F;AhBs6EnG;;AgBr8EA;EAyBQ,yBjBjCqB;ACi9E7B;;AgBz8EA;EA2BQ,yBjBnCqB;ACq9E7B;;AgB78EA;EA6BQ,yBjBrCqB;ACy9E7B;;AgBj9EA;EA+BQ,qEAA2F;AhBs7EnG;;AgBr9EA;EAyBQ,4BjBtBsB;ACs9E9B;;AgBz9EA;EA2BQ,4BjBxBsB;AC09E9B;;AgB79EA;EA6BQ,4BjB1BsB;AC89E9B;;AgBj+EA;EA+BQ,wEAA2F;AhBs8EnG;;AgBr+EA;EAyBQ,yBjB7BsB;AC6+E9B;;AgBz+EA;EA2BQ,yBjB/BsB;ACi/E9B;;AgB7+EA;EA6BQ,yBjBjCsB;ACq/E9B;;AgBj/EA;EA+BQ,qEAA2F;AhBs9EnG;;AgBr/EA;EAyBQ,yBjBf0B;AC++ElC;;AgBz/EA;EA2BQ,yBjBjB0B;ACm/ElC;;AgB7/EA;EA6BQ,yBjBnB0B;ACu/ElC;;AgBjgFA;EA+BQ,qEAA2F;AhBs+EnG;;AgBrgFA;EAyBQ,yBjBb0B;AC6/ElC;;AgBzgFA;EA2BQ,yBjBf0B;ACigFlC;;AgB7gFA;EA6BQ,yBjBjB0B;ACqgFlC;;AgBjhFA;EA+BQ,qEAA2F;AhBs/EnG;;AgBrhFA;EAyBQ,yBjBd0B;AC8gFlC;;AgBzhFA;EA2BQ,yBjBhB0B;ACkhFlC;;AgB7hFA;EA6BQ,yBjBlB0B;ACshFlC;;AgBjiFA;EA+BQ,qEAA2F;AhBsgFnG;;AgBriFA;EAyBQ,yBjBhB0B;ACgiFlC;;AgBziFA;EA2BQ,yBjBlB0B;ACoiFlC;;AgB7iFA;EA6BQ,yBjBpB0B;ACwiFlC;;AgBjjFA;EA+BQ,qEAA2F;AhBshFnG;;AgBrjFA;EAyBQ,yBjBjB0B;ACijFlC;;AgBzjFA;EA2BQ,yBjBnB0B;ACqjFlC;;AgB7jFA;EA6BQ,yBjBrB0B;ACyjFlC;;AgBjkFA;EA+BQ,qEAA2F;AhBsiFnG;;AgBrkFA;EAyBQ,yBjBXyB;AC2jFjC;;AgBzkFA;EA2BQ,yBjBbyB;AC+jFjC;;AgB7kFA;EA6BQ,yBjBfyB;ACmkFjC;;AgBjlFA;EA+BQ,qEAA2F;AhBsjFnG;;AgBrlFA;EAkCI,gCAtCkC;UAsClC,wBAtCkC;EAuClC,2CAAmC;UAAnC,mCAAmC;EACnC,yCAAiC;UAAjC,iCAAiC;EACjC,yCAAiC;UAAjC,iCAAiC;EACjC,yBjBrC2B;EiBsC3B,qEAA0F;EAC1F,6BAA6B;EAC7B,4BAA4B;EAC5B,0BAA0B;AhBujF9B;;AgBjmFA;EA4CM,6BAA6B;AhByjFnC;;AgBrmFA;EA8CM,6BAA6B;AhB2jFnC;;AgBzmFA;EAgDM,oBAAoB;AhB6jF1B;;AgB7mFA;EAoDI,ejBxBY;ACqlFhB;;AgBjnFA;EAsDI,ejB5BY;AC2lFhB;;AgBrnFA;EAwDI,cjB/BW;ACgmFf;;AgB/jFA;EACE;IACE,2BAA2B;EhBkkF7B;EgBjkFA;IACE,4BAA4B;EhBmkF9B;AACF;;AgBxkFA;EACE;IACE,2BAA2B;EhBkkF7B;EgBjkFA;IACE,4BAA4B;EhBmkF9B;AACF;;AiB9mFA;EAEE,uBlBjB6B;EkBkB7B,clB3B4B;AC2oF9B;;AiBnnFA;;EAMI,yBlB1B0B;EkB2B1B,qBA/B6B;EAgC7B,qBA/B6B;EAgC7B,mBAAmB;AjBknFvB;;AiB3nFA;;EAeQ,uBlB9BuB;EkB+BvB,mBlB/BuB;EkBgCvB,clB7CqB;AC8pF7B;;AiBloFA;;EAeQ,yBlB3CqB;EkB4CrB,qBlB5CqB;EkB6CrB,YlBhCuB;ACwpF/B;;AiBzoFA;;EAeQ,4BlBhCsB;EkBiCtB,wBlBjCsB;EkBkCtB,yBPiCa;AV8lFrB;;AiBhpFA;;EAeQ,yBlBvCsB;EkBwCtB,qBlBxCsB;EkByCtB,WPmCQ;AVmmFhB;;AiBvpFA;;EAeQ,yBlBzB0B;EkB0B1B,qBlB1B0B;EkB2B1B,WPmCQ;AV0mFhB;;AiB9pFA;;EAeQ,yBlBvB0B;EkBwB1B,qBlBxB0B;EkByB1B,WPmCQ;AVinFhB;;AiBrqFA;;EAeQ,yBlBxB0B;EkByB1B,qBlBzB0B;EkB0B1B,WPmCQ;AVwnFhB;;AiB5qFA;;EAeQ,yBlB1B0B;EkB2B1B,qBlB3B0B;EkB4B1B,WPmCQ;AV+nFhB;;AiBnrFA;;EAeQ,yBlB3B0B;EkB4B1B,qBlB5B0B;EkB6B1B,yBPiCa;AVwoFrB;;AiB1rFA;;EAeQ,yBlBrByB;EkBsBzB,qBlBtByB;EkBuBzB,WPmCQ;AV6oFhB;;AiBjsFA;;EAoBM,mBAAmB;EACnB,SAAS;AjBkrFf;;AiBvsFA;;EAuBM,yBlBjC4B;EkBkC5B,WP4BU;AVypFhB;;AiB7sFA;;;;EA2BQ,mBAAmB;AjByrF3B;;AiBptFA;;EA6BM,sBAAsB;AjB4rF5B;;AiBztFA;EA+BI,clBvD0B;ACqvF9B;;AiB7tFA;EAiCM,gBAtDsB;AjBsvF5B;;AiBjuFA;EAoCM,yBlB9C4B;EkB+C5B,WPeU;AVkrFhB;;AiBtuFA;;EAwCQ,mBAAmB;AjBmsF3B;;AiB3uFA;;EA2CQ,kBPSQ;EORR,mBAAmB;AjBqsF3B;;AiBjvFA;EA8CI,6BA5DqC;AjBmwFzC;;AiBrvFA;;EAiDM,qBApEgC;EAqEhC,clB1EwB;ACmxF9B;;AiB3vFA;EAoDI,6BAhEqC;AjB2wFzC;;AiB/vFA;;EAuDM,qBAxEgC;EAyEhC,clBhFwB;AC6xF9B;;AiBrwFA;EA0DI,6BAvEqC;AjBsxFzC;;AiBzwFA;;EA+DU,sBAAsB;AjB+sFhC;;AiB9wFA;;EAoEM,iBAAiB;AjB+sFvB;;AiBnxFA;;EAyEU,wBAAwB;AjB+sFlC;;AiBxxFA;EA2EI,WAAW;AjBitFf;;AiB5xFA;EAgFU,yBlBhGoB;ACgzF9B;;AiBhyFA;EAqFY,yBlBrGkB;ACozF9B;;AiBpyFA;EAuFc,4BlBxGgB;ACyzF9B;;AiBxyFA;;EA2FM,qBAAqB;AjBktF3B;;AiB7yFA;EAgGU,yBlBhHoB;ACi0F9B;;AiB/sFA;EhB7DE,iCAAiC;EgBgEjC,cAAc;EACd,kBAAkB;EAClB,eAAe;AjBitFjB;;AkB70FA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AlBg1F7B;;AkBp1FA;EAMI,qBAAqB;AlBk1FzB;;AkBx1FA;EjByKI,mBiBjKwC;AlBo1F5C;;AkB51FA;EAUI,sBAAsB;AlBs1F1B;;AkBh2FA;EAYI,mBAAmB;AlBw1FvB;;AkBp2FA;EAgBM,enBYO;AC40Fb;;AkBx2FA;EAmBM,kBnBQU;ACi1FhB;;AkB52FA;EAqBI,uBAAuB;AlB21F3B;;AkBh3FA;EAuBM,qBAAqB;EACrB,oBAAoB;AlB61F1B;;AkBr3FA;EA0BI,yBAAyB;AlB+1F7B;;AkBz3FA;EA6BQ,mBAAmB;AlBg2F3B;;AkB73FA;EA+BQ,eAAe;AlBk2FvB;;AkBj4FA;EjByKI,ciBvImC;AlBm2FvC;;AkBr4FA;EjByKI,eiBrIqC;EAK/B,0BAA0B;EAC1B,6BAA6B;AlBi2FvC;;AkB34FA;EAgDU,yBAAyB;EACzB,4BAA4B;AlB+1FtC;;AkB71FA;EACE,mBAAmB;EACnB,4BnBjD4B;EmBkD5B,kBnBOU;EmBNV,cnBzD4B;EmB0D5B,oBAAoB;EACpB,kBnB5Bc;EmB6Bd,WAAW;EACX,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AlBg2FrB;;AkB52FA;EjBsHI,qBiBxGuC;EjBwGvC,sBiBvGyC;AlBk2F7C;;AkBj3FA;EAqBM,uBnBlEyB;EmBmEzB,cnBhFuB;ACg7F7B;;AkBt3FA;EAqBM,yBnB/EuB;EmBgFvB,YnBnEyB;ACw6F/B;;AkB33FA;EAqBM,4BnBpEwB;EmBqExB,yBRFe;AV42FrB;;AkBh4FA;EAqBM,yBnB3EwB;EmB4ExB,WRAU;AV+2FhB;;AkBr4FA;EAqBM,yBnB7D4B;EmB8D5B,WRAU;AVo3FhB;;AkB14FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AV02FrE;;AkB/4FA;EAqBM,yBnB3D4B;EmB4D5B,WRAU;AV83FhB;;AkBp5FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AVo3FrE;;AkBz5FA;EAqBM,yBnB5D4B;EmB6D5B,WRAU;AVw4FhB;;AkB95FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AV83FrE;;AkBn6FA;EAqBM,yBnB9D4B;EmB+D5B,WRAU;AVk5FhB;;AkBx6FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AVw4FrE;;AkB76FA;EAqBM,yBnB/D4B;EmBgE5B,yBRFe;AV85FrB;;AkBl7FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AVk5FrE;;AkBv7FA;EAqBM,yBnBzD2B;EmB0D3B,WRAU;AVs6FhB;;AkB57FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AV45FrE;;AkBj8FA;EAgCI,kBnBtDY;AC29FhB;;AkBr8FA;EAkCI,enBzDS;ACg+Fb;;AkBz8FA;EAoCI,kBnB5DY;ACq+FhB;;AkB78FA;EjBsHI,sBiB/E0C;EjB+E1C,qBiB9E0C;AlB06F9C;;AkBl9FA;EjBsHI,sBiB5E0C;EjB4E1C,qBiB3E0C;AlB46F9C;;AkBv9FA;EjBsHI,sBiBzE0C;EjByE1C,qBiBxE0C;AlB86F9C;;AkB59FA;EjBsHI,iBiB7KmB;EAyGnB,UAAU;EACV,kBAAkB;EAClB,UAAU;AlB+6Fd;;AkBn+FA;EAuDM,8BAA8B;EAC9B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AlBg7FrC;;AkB9+FA;EAgEM,WAAW;EACX,UAAU;AlBk7FhB;;AkBn/FA;EAmEM,WAAW;EACX,UAAU;AlBo7FhB;;AkBx/FA;EAuEM,yBAAmD;AlBq7FzD;;AkB5/FA;EAyEM,yBAAoD;AlBu7F1D;;AkBhgGA;EA2EI,qBnB/DmB;ACw/FvB;;AkBv7FA;EAEI,0BAA0B;AlBy7F9B;;AmB/iGA;;EAGE,sBAAsB;AnBijGxB;;AmBpjGA;;;;EAMI,oBAAoB;AnBqjGxB;;AmB3jGA;;EAQI,iBApBmB;AnB4kGvB;;AmBhkGA;;EAUI,iBArBmB;AnBglGvB;;AmBrkGA;;EAYI,sBAAsB;AnB8jG1B;;AmB5jGA;EACE,cpB9B4B;EoBiC5B,epBLW;EoBMX,gBpBGmB;EoBFnB,kBAnCuB;AnBgmGzB;;AmBnkGA;EAQI,cApCwB;EAqCxB,oBApCyB;AnBmmG7B;;AmBxkGA;EAWI,oBA3B+B;AnB4lGnC;;AmB5kGA;EAgBM,epBnBO;ACmlGb;;AmBhlGA;EAgBM,iBpBlBS;ACslGf;;AmBplGA;EAgBM,epBjBO;ACylGb;;AmBxlGA;EAgBM,iBpBhBS;AC4lGf;;AmB5lGA;EAgBM,kBpBfU;AC+lGhB;;AmBhmGA;EAgBM,epBdO;ACkmGb;;AmBpmGA;EAgBM,kBpBbU;ACqmGhB;;AmBtlGA;EACE,cpB/C4B;EoBkD5B,kBpBrBc;EoBsBd,gBpBjBiB;EoBkBjB,iBA3CyB;AnBkoG3B;;AmB7lGA;EAQI,cpBvD0B;EoBwD1B,gBpBnBiB;AC4mGrB;;AmBlmGA;EAWI,oBA7C+B;AnBwoGnC;;AmBtmGA;EAgBM,epBrCO;AC+nGb;;AmB1mGA;EAgBM,iBpBpCS;ACkoGf;;AmB9mGA;EAgBM,epBnCO;ACqoGb;;AmBlnGA;EAgBM,iBpBlCS;ACwoGf;;AmBtnGA;EAgBM,kBpBjCU;AC2oGhB;;AmB1nGA;EAgBM,epBhCO;AC8oGb;;AmB9nGA;EAgBM,kBpB/BU;ACipGhB;;AoB/qGA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,kBAAkB;EAClB,yBAAyB;ApBkrG3B;;AoB7qGA;EACE,mBAAmB;EACnB,4BrBP4B;EqBQ5B,qBrBmDqB;EqBlDrB,oBAAoB;EACpB,kBrBac;EqBZd,WAAW;EACX,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;ApBgrGrB;;AqB9sGA,eAAA;AC0DA;EAxBE,uBvBnB6B;EuBoB7B,qBvBzB4B;EuB0B5B,kBvBkCU;EuBjCV,cvB/B4B;ACgtG9B;;AC9oGI;EqBjCA,4BvBjC0B;ACotG9B;;AClpGI;EqBjCA,4BvBjC0B;ACwtG9B;;ACtpGI;EqBjCA,4BvBjC0B;AC4tG9B;;AC1pGI;EqBjCA,4BvBjC0B;ACguG9B;;AsB9rGE;EAEE,qBvBjC0B;ACiuG9B;;AsB/rGE;EAIE,qBvBzB8B;EuB0B9B,iDvB1B8B;ACytGlC;;AsB9rGE;;;;;EAEE,4BvBtC0B;EuBuC1B,wBvBvC0B;EuBwC1B,gBAAgB;EAChB,cvB9C0B;ACkvG9B;;AClrGI;;;;;EqBhBE,+BvBhDwB;AC0vG9B;;AC1rGI;;;;;EqBhBE,+BvBhDwB;ACkwG9B;;AClsGI;;;;;EqBhBE,+BvBhDwB;AC0wG9B;;AC1sGI;;;;;EqBhBE,+BvBhDwB;ACkxG9B;;AuBpxGA;EAEE,2DxBN2B;EwBO3B,eAAe;EACf,WAAW;AvBsxGb;;AuBrxGE;EACE,gBAAgB;AvBwxGpB;;AuBpxGI;EACE,mBxBFyB;ACyxG/B;;AuBxxGK;EAMG,mDxBPuB;AC6xG/B;;AuB5xGI;EACE,qBxBfuB;AC8yG7B;;AuBhyGK;EAMG,gDxBpBqB;ACkzG7B;;AuBpyGI;EACE,wBxBJwB;AC2yG9B;;AuBxyGK;EAMG,mDxBTsB;AC+yG9B;;AuB5yGI;EACE,qBxBXwB;AC0zG9B;;AuBhzGK;EAMG,gDxBhBsB;AC8zG9B;;AuBpzGI;EACE,qBxBG4B;ACozGlC;;AuBxzGK;EAMG,iDxBF0B;ACwzGlC;;AuB5zGI;EACE,qBxBK4B;AC0zGlC;;AuBh0GK;EAMG,iDxBA0B;AC8zGlC;;AuBp0GI;EACE,qBxBI4B;ACm0GlC;;AuBx0GK;EAMG,kDxBD0B;ACu0GlC;;AuB50GI;EACE,qBxBE4B;AC60GlC;;AuBh1GK;EAMG,kDxBH0B;ACi1GlC;;AuBp1GI;EACE,qBxBC4B;ACs1GlC;;AuBx1GK;EAMG,mDxBJ0B;AC01GlC;;AuB51GI;EACE,qBxBO2B;ACw1GjC;;AuBh2GK;EAMG,kDxBEyB;AC41GjC;;AuB51GE;EzBmBA,kBC0BgB;EDzBhB,kBCNc;ACm1GhB;;AuB/1GE;EzBoBA,kBCVc;ACy1GhB;;AuBj2GE;EzBoBA,iBCba;AC81Gf;;AuBl2GE;EACE,cAAc;EACd,WAAW;AvBq2Gf;;AuBp2GE;EACE,eAAe;EACf,WAAW;AvBu2Gf;;AuBr2GA;EAGI,qBxB+BmB;EwB9BnB,gDAA4D;EAC5D,iDAA6D;AvBs2GjE;;AuB32GA;EAOI,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AvBw2GpB;;AuBt2GA;EAEE,cAAc;EACd,eAAe;EACf,eAAe;EACf,2BzB7CkE;EyB8ClE,gBAAgB;AvBw2GlB;;AuB92GA;EAQI,gBA1DsB;EA2DtB,eA1DqB;AvBo6GzB;;AuBn3GA;EAWI,eAAe;AvB42GnB;;AuBv3GA;EAcI,YAAY;AvB62GhB;;AwB96GA;EACE,eAAe;EACf,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;AxBi7GpB;;AwBh7GE;EACE,eAAe;AxBm7GnB;;AwBl7GE;EACE,czBF0B;ACu7G9B;;AwBp7GE;;;;;EAGE,czBJ0B;EyBK1B,mBAAmB;AxBy7GvB;;AwBp7GA;EvBgKI,mBuB7JqC;AxBq7GzC;;AyBx8GA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,mBAAmB;AzB28GrB;;AyB/8GA;EAMI,a3BDkB;AE88GtB;;AyBn9GA;EAUM,qB1BU4B;EEoK9B,awB7K+B;EAC7B,UAAU;AzB68GhB;;AyBz9GA;EAeM,qB1BuDiB;EE0GnB,kBwBhKsC;AzB88G1C;;AyB99GA;EAmBI,eAAe;EACf,cAAc;EACd,cAAc;EACd,eAAe;EACf,aAAa;AzB+8GjB;;AyBt+GA;EAyBM,aAAa;AzBi9GnB;;AyB1+GA;;EA4BM,wB1BjBwB;ACo+G9B;;AyB/+GA;ExBgLI,mBwBlJwC;AzBq9G5C;;AyBn/GA;EAgCM,YAAY;EACZ,UAAU;AzBu9GhB;;AyBx/GA;EAmCQ,kBAAkB;AzBy9G1B;;AyB5/GA;EAuCM,qB1BnCwB;AC4/G9B;;AyBhgHA;EA6CQ,mB1BhCuB;ACu/G/B;;AyBpgHA;EA+CQ,mB1BlCuB;AC2/G/B;;AyBxgHA;EAkDU,qBfwDuB;AVk6GjC;;AyB5gHA;EAuDU,mD1B1CqB;ACmgH/B;;AyBhhHA;EA6CQ,qB1B7CqB;ACohH7B;;AyBphHA;EA+CQ,qB1B/CqB;ACwhH7B;;AyBxhHA;EAkDU,mBfwDuB;AVk7GjC;;AyB5hHA;EAuDU,gD1BvDmB;ACgiH7B;;AyBhiHA;EA6CQ,wB1BlCsB;ACyhH9B;;AyBpiHA;EA+CQ,wB1BpCsB;AC6hH9B;;AyBxiHA;EAkDU,qBfwDuB;AVk8GjC;;AyB5iHA;EAuDU,mD1B5CoB;ACqiH9B;;AyBhjHA;EA6CQ,qB1BzCsB;ACgjH9B;;AyBpjHA;EA+CQ,qB1B3CsB;ACojH9B;;AyBxjHA;EAkDU,qBfwDuB;AVk9GjC;;AyB5jHA;EAuDU,gD1BnDoB;AC4jH9B;;AyBhkHA;EA6CQ,qB1B3B0B;ACkjHlC;;AyBpkHA;EA+CQ,qB1B7B0B;ACsjHlC;;AyBxkHA;EAkDU,qBfwDuB;AVk+GjC;;AyB5kHA;EAuDU,iD1BrCwB;AC8jHlC;;AyBhlHA;EA6CQ,qB1BzB0B;ACgkHlC;;AyBplHA;EA+CQ,qB1B3B0B;ACokHlC;;AyBxlHA;EAkDU,qBfwDuB;AVk/GjC;;AyB5lHA;EAuDU,iD1BnCwB;AC4kHlC;;AyBhmHA;EA6CQ,qB1B1B0B;ACilHlC;;AyBpmHA;EA+CQ,qB1B5B0B;ACqlHlC;;AyBxmHA;EAkDU,qBfwDuB;AVkgHjC;;AyB5mHA;EAuDU,kD1BpCwB;AC6lHlC;;AyBhnHA;EA6CQ,qB1B5B0B;ACmmHlC;;AyBpnHA;EA+CQ,qB1B9B0B;ACumHlC;;AyBxnHA;EAkDU,qBfwDuB;AVkhHjC;;AyB5nHA;EAuDU,kD1BtCwB;AC+mHlC;;AyBhoHA;EA6CQ,qB1B7B0B;AConHlC;;AyBpoHA;EA+CQ,qB1B/B0B;ACwnHlC;;AyBxoHA;EAkDU,qBfwDuB;AVkiHjC;;AyB5oHA;EAuDU,mD1BvCwB;ACgoHlC;;AyBhpHA;EA6CQ,qB1BvByB;AC8nHjC;;AyBppHA;EA+CQ,qB1BzByB;ACkoHjC;;AyBxpHA;EAkDU,qBfwDuB;AVkjHjC;;AyB5pHA;EAuDU,kD1BjCuB;AC0oHjC;;AyBhqHA;E3ByCE,kBC0BgB;EDzBhB,kBCNc;ACioHhB;;AyBrqHA;E3B4CE,kBCVc;ACuoHhB;;AyBzqHA;E3B8CE,iBCba;AC4oHf;;AyB7qHA;EAkEM,gCAA8C;EAC9C,YAAY;AzB+mHlB;;AyBlrHA;EAqEI,WAAW;AzBinHf;;AyBtrHA;EAuEM,WAAW;AzBmnHjB;;AyB1rHA;EA2EM,aAAa;EACb,kBAAkB;ExB4GpB,awB3G+B;EAC7B,YAAY;EACZ,eAAe;AzBmnHrB;;AyBlsHA;EAiFM,kB1B7CU;ACkqHhB;;AyBtsHA;EAmFM,kB1BjDU;ACwqHhB;;AyB1sHA;EAqFM,iB1BpDS;AC6qHf;;A0BjsHA;EAEE,oBAAoB;EACpB,aAAa;EACb,2BAA2B;EAC3B,kBAAkB;A1BmsHpB;;A0BxsHA;EAYQ,uB3BZuB;E2BavB,yBAAyB;EACzB,c3B3BqB;AC2tH7B;;A0B9sHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,c3BjCmB;ACiuH7B;;A0BptHA;EAwBU,yBAAyB;EACzB,+C3BzBqB;E2B0BrB,c3BvCmB;ACuuH7B;;A0B1tHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,c3B7CmB;AC6uH7B;;A0BhuHA;EAYQ,yB3BzBqB;E2B0BrB,yBAAyB;EACzB,Y3BduB;ACsuH/B;;A0BtuHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,Y3BpBqB;AC4uH/B;;A0B5uHA;EAwBU,yBAAyB;EACzB,4C3BtCmB;E2BuCnB,Y3B1BqB;ACkvH/B;;A0BlvHA;EA8BU,uBhB+DuB;EgB9DvB,yBAAyB;EACzB,Y3BhCqB;ACwvH/B;;A0BxvHA;EAYQ,4B3BdsB;E2BetB,yBAAyB;EACzB,yBhBmDa;AV6rHrB;;A0B9vHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,yBhB6CW;AVmsHrB;;A0BpwHA;EAwBU,yBAAyB;EACzB,+C3B3BoB;E2B4BpB,yBhBuCW;AVysHrB;;A0B1wHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,yBhBiCW;AV+sHrB;;A0BhxHA;EAYQ,yB3BrBsB;E2BsBtB,yBAAyB;EACzB,WhBqDQ;AVmtHhB;;A0BtxHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVytHhB;;A0B5xHA;EAwBU,yBAAyB;EACzB,4C3BlCoB;E2BmCpB,WhByCM;AV+tHhB;;A0BlyHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVquHhB;;A0BxyHA;EAYQ,yB3BP0B;E2BQ1B,yBAAyB;EACzB,WhBqDQ;AV2uHhB;;A0B9yHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVivHhB;;A0BpzHA;EAwBU,yBAAyB;EACzB,6C3BpBwB;E2BqBxB,WhByCM;AVuvHhB;;A0B1zHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AV6vHhB;;A0Bh0HA;EAYQ,yB3BL0B;E2BM1B,yBAAyB;EACzB,WhBqDQ;AVmwHhB;;A0Bt0HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVywHhB;;A0B50HA;EAwBU,yBAAyB;EACzB,6C3BlBwB;E2BmBxB,WhByCM;AV+wHhB;;A0Bl1HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVqxHhB;;A0Bx1HA;EAYQ,yB3BN0B;E2BO1B,yBAAyB;EACzB,WhBqDQ;AV2xHhB;;A0B91HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AViyHhB;;A0Bp2HA;EAwBU,yBAAyB;EACzB,8C3BnBwB;E2BoBxB,WhByCM;AVuyHhB;;A0B12HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AV6yHhB;;A0Bh3HA;EAYQ,yB3BR0B;E2BS1B,yBAAyB;EACzB,WhBqDQ;AVmzHhB;;A0Bt3HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVyzHhB;;A0B53HA;EAwBU,yBAAyB;EACzB,8C3BrBwB;E2BsBxB,WhByCM;AV+zHhB;;A0Bl4HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVq0HhB;;A0Bx4HA;EAYQ,yB3BT0B;E2BU1B,yBAAyB;EACzB,yBhBmDa;AV60HrB;;A0B94HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,yBhB6CW;AVm1HrB;;A0Bp5HA;EAwBU,yBAAyB;EACzB,+C3BtBwB;E2BuBxB,yBhBuCW;AVy1HrB;;A0B15HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,yBhBiCW;AV+1HrB;;A0Bh6HA;EAYQ,yB3BHyB;E2BIzB,yBAAyB;EACzB,WhBqDQ;AVm2HhB;;A0Bt6HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVy2HhB;;A0B56HA;EAwBU,yBAAyB;EACzB,8C3BhBuB;E2BiBvB,WhByCM;AV+2HhB;;A0Bl7HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVq3HhB;;A0Bx7HA;EAmCI,kB3BZY;ACq6HhB;;A0B57HA;EAqCI,e3BfS;AC06Hb;;A0Bh8HA;EAuCI,kB3BlBY;AC+6HhB;;A0Bp8HA;EA0CQ,eAAe;A1B85HvB;;A0Bx8HA;EA4CI,iB3BxBW;ACw7Hf;;A0B58HA;EA+CQ,eAAe;A1Bi6HvB;;A0Bh9HA;EAmDM,6BAA6B;EAC7B,0BAA0B;A1Bi6HhC;;A0Br9HA;EAsDM,4BAA4B;EAC5B,yBAAyB;A1Bm6H/B;;A0B19HA;EA0DQ,kB3BHI;ACu6HZ;;A0B99HA;EA4DQ,aAAa;A1Bs6HrB;;A0Bl+HA;EA+DM,sBAAsB;A1Bu6H5B;;A0Bt+HA;EAiEM,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;A1By6HtB;;A0B5+HA;EAqEM,uBAAuB;A1B26H7B;;A0Bh/HA;EAuEM,aAAa;EACb,YAAY;A1B66HlB;;A0Br/HA;EA0EQ,eAAe;A1B+6HvB;;A0Bz/HA;EA6EQ,eAAe;A1Bg7HvB;;A0B7/HA;EAgFQ,eAAe;A1Bi7HvB;;A0BjgIA;EAmFQ,eAAe;A1Bk7HvB;;A0BrgIA;EAsFQ,0BAA4C;A1Bm7HpD;;A0BzgIA;EAwFQ,0B3BjCI;E2BkCJ,uBAAuB;A1Bq7H/B;;A0B9gIA;EA2FI,uBAAuB;A1Bu7H3B;;A0BlhIA;EA8FM,WAAW;A1Bw7HjB;;A0BthIA;EAgGM,YAAY;EACZ,eAAe;A1B07HrB;;A0B3hIA;EAmGI,yBAAyB;A1B47H7B;;A0B/hIA;EAqGM,0BAA4C;A1B87HlD;;A0BniIA;EAuGM,0B3BhDM;E2BiDN,2BAA2B;EAC3B,SAAS;A1Bg8Hf;;A0B97HA;EACE,oBAAoB;EACpB,aAAa;EACb,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,kBAAkB;A1Bi8HpB;;A0Bv8HA;EASM,yBhBvB2B;EgBwB3B,c3B9HwB;ACgkI9B;;A0B58HA;EAYM,qBhB1B2B;AV89HjC;;A0Bh9HA;EAeM,yBhB7B2B;EgB8B3B,c3BpIwB;ACykI9B;;A0Br9HA;EAkBM,qBhBhC2B;AVu+HjC;;A0Br8HA;EACE,YAAY;EACZ,OAAO;EACP,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,MAAM;EACN,WAAW;A1Bw8Hb;;A0Bt8HA;;EAGE,qB3BhJ4B;E2BiJ5B,kB3BrFU;E2BsFV,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;A1Bw8HrB;;A0Bt8HA;EACE,4B3BrJ4B;E2BsJ5B,c3B5J4B;ACqmI9B;;A0Bv8HA;EACE,qB3B5J4B;E2B6J5B,mBA9J4B;EA+J5B,2BA9JoC;EA+JpC,cAAc;EACd,eA/JwB;EAgKxB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;A1B08HzB;;A0Bx8HA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,uBAAuB;EzBDrB,kByBEmC;EACrC,UAAU;A1B28HZ;;A0Bj9HA;EAQI,eAAe;A1B68HnB;;A2B7nIA;EACE,c5BF4B;E4BG5B,cAAc;EACd,e5B2BW;E4B1BX,gB5BiCe;AC+lIjB;;A2BpoIA;EAMI,oBAAoB;A3BkoIxB;;A2BxoIA;EASI,kB5BsBY;AC6mIhB;;A2B5oIA;EAWI,kB5BkBY;ACmnIhB;;A2BhpIA;EAaI,iB5BeW;ACwnIf;;A2BroIA;EACE,cAAc;EACd,kB5Bcc;E4Bbd,mBAAmB;A3BwoIrB;;A2B3oIA;EAOM,Y5BdyB;ACspI/B;;A2B/oIA;EAOM,c5B3BuB;ACuqI7B;;A2BnpIA;EAOM,iB5BhBwB;ACgqI9B;;A2BvpIA;EAOM,c5BvBwB;AC2qI9B;;A2B3pIA;EAOM,c5BT4B;ACiqIlC;;A2B/pIA;EAOM,c5BP4B;ACmqIlC;;A2BnqIA;EAOM,c5BR4B;ACwqIlC;;A2BvqIA;EAOM,c5BV4B;AC8qIlC;;A2B3qIA;EAOM,c5BX4B;ACmrIlC;;A2B/qIA;EAOM,c5BL2B;ACirIjC;;A2BxqIA;EAEI,sBAAsB;A3B0qI1B;;A2B5qIA;EAKI,aAAa;EACb,2BAA2B;A3B2qI/B;;A2BjrIA;E1BiJI,iB0BxIwC;A3B4qI5C;;A2BrrIA;;;EAcU,gBAAgB;A3B6qI1B;;A2B3rIA;;;EAuBY,4BAA4B;EAC5B,yBAAyB;A3B0qIrC;;A2BlsIA;;;EAiCY,6BAA6B;EAC7B,0BAA0B;A3BuqItC;;A2BzsIA;;;;;EAyCY,UAAU;A3BwqItB;;A2BjtIA;;;;;;;;;EA8CY,UAAU;A3B+qItB;;A2B7tIA;;;;;;;;;EAgDc,UAAU;A3ByrIxB;;A2BzuIA;EAkDQ,YAAY;EACZ,cAAc;A3B2rItB;;A2B9uIA;EAqDM,uBAAuB;A3B6rI7B;;A2BlvIA;EAuDM,yBAAyB;A3B+rI/B;;A2BtvIA;EA0DQ,YAAY;EACZ,cAAc;A3BgsItB;;A2B3vIA;EA6DI,aAAa;EACb,2BAA2B;A3BksI/B;;A2BhwIA;EAgEM,cAAc;A3BosIpB;;A2BpwIA;EAkEQ,gBAAgB;E1B+EpB,oB0B9E2C;A3BssI/C;;A2BzwIA;EAqEQ,YAAY;EACZ,cAAc;A3BwsItB;;A2B9wIA;EAwEM,uBAAuB;A3B0sI7B;;A2BlxIA;EA0EM,yBAAyB;A3B4sI/B;;A2BtxIA;EA4EM,eAAe;A3B8sIrB;;A2B1xIA;EAgFU,sBAAsB;A3B8sIhC;;A2B9xIA;EAkFQ,uBAAuB;A3BgtI/B;;A2BlyIA;EAoFQ,gBAAgB;A3BktIxB;;AC7tIE;E0BzEF;IAuFM,aAAa;E3BotIjB;AACF;;A2BntIA;EAEI,kBAAkB;A3BqtItB;;AC3uIE;E0BoBF;IAII,qBAAqB;E3BwtIvB;AACF;;AC7uIE;E0BgBF;IAMI,aAAa;IACb,YAAY;IACZ,cAAc;I1BgDd,mB0B/CsC;IACtC,iBAAiB;E3B4tInB;E2BtuIF;IAYM,kB5BhGU;I4BiGV,oBAAoB;E3B6tIxB;E2B1uIF;IAeM,oBAAoB;E3B8tIxB;E2B7uIF;IAiBM,kB5BvGU;I4BwGV,oBAAoB;E3B+tIxB;E2BjvIF;IAoBM,iB5B3GS;I4B4GT,oBAAoB;E3BguIxB;AACF;;A2B/tIA;EAEI,gBAAgB;A3BiuIpB;;AC1wIE;E0BuCF;IAII,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;E3BouIhB;E2B3uIF;IASM,gBAAgB;E3BquIpB;E2B9uIF;IAWM,cAAc;E3BsuIlB;E2BjvIF;IAaQ,YAAY;E3BuuIlB;E2BpvIF;I1BiCI,oB0BlB2C;E3BwuI7C;AACF;;A2BvuIA;EACE,sBAAsB;EACtB,WAAW;EACX,e5BhIW;E4BiIX,kBAAkB;EAClB,mBAAmB;A3B0uIrB;;A2B/uIA;;;EAaU,c5BxKoB;ACg5I9B;;A2BrvIA;;;EAeQ,kB5B3IQ;ACu3IhB;;A2B3vIA;;;EAiBQ,kB5B/IQ;AC+3IhB;;A2BjwIA;;;EAmBQ,iB5BlJO;ACs4If;;A2BvwIA;EAqBM,c5B7KwB;E4B8KxB,a7BjLgB;E6BkLhB,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,Y7BrLgB;E6BsLhB,UAAU;A3BsvIhB;;A2BjxIA;;EA+BM,mB7B1LgB;AEi7ItB;;A2BtxIA;EAiCM,OAAO;A3ByvIb;;A2B1xIA;;EAqCM,oB7BhMgB;AE07ItB;;A2B/xIA;EAuCM,QAAQ;A3B4vId;;A2BnyIA;EA2CM,6BAA6B;E1BnB/B,a0BoB+B;EAC7B,YAAY;EACZ,UAAU;A3B4vIhB;;A2B1yIA;EAgDM,kB5B5KU;AC06IhB;;A2B9yIA;EAkDM,kB5BhLU;ACg7IhB;;A2BlzIA;EAoDM,iB5BnLS;ACq7If;;A4Bx9IA,qBAAA;ACWA;EAGE,e9BuBW;E8BtBX,mBAAmB;A7B+8IrB;;A6Bn9IA;EAMI,mBAAmB;EACnB,c9BI8B;E8BH9B,aAAa;EACb,uBAAuB;EACvB,iBAduC;A7B+9I3C;;A6B39IA;EAYM,c9BjBwB;ACo+I9B;;A6B/9IA;EAcI,mBAAmB;EACnB,aAAa;A7Bq9IjB;;A6Bp+IA;E5BuKI,gB4BtJoC;A7Bu9IxC;;A6Bx+IA;EAoBQ,c9BzBsB;E8B0BtB,eAAe;EACf,oBAAoB;A7Bw9I5B;;A6B9+IA;EAwBM,c9B1BwB;E8B2BxB,iBAAiB;A7B09IvB;;A6Bn/IA;;EA4BI,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,2BAA2B;A7B49I/B;;A6B3/IA;E5BuKI,kB4BrIuC;A7B69I3C;;A6B//IA;E5BuKI,mB4BnIuC;A7B+9I3C;;A6BngJA;;EAyCM,uBAAuB;A7B+9I7B;;A6BxgJA;;EA6CM,yBAAyB;A7Bg+I/B;;A6B7gJA;EAgDI,kB9BrBY;ACs/IhB;;A6BjhJA;EAkDI,kB9BzBY;AC4/IhB;;A6BrhJA;EAoDI,iB9B5BW;ACigJf;;A6BzhJA;EAwDM,iBAAiB;A7Bq+IvB;;A6B7hJA;EA2DM,iBAAiB;A7Bs+IvB;;A6BjiJA;EA8DM,iBAAiB;A7Bu+IvB;;A6BriJA;EAiEM,iBAAiB;A7Bw+IvB;;A8B9hJA;EACE,uB/BR6B;E+BS7B,sBAnBmB;EAoBnB,0F/BvB2B;E+BwB3B,c/BnB4B;E+BoB5B,eAAe;EACf,kBAAkB;A9BiiJpB;;A8B9hJE;EACE,+BA3BiB;EA4BjB,gCA5BiB;A9B6jJrB;;A8BhiJE;EACE,kCA9BiB;EA+BjB,mCA/BiB;A9BkkJrB;;A8BjiJA;EAEE,6BAjCwC;EAkCxC,oBAAoB;EACpB,kD/BxC2B;E+ByC3B,aAAa;A9BmiJf;;A8BjiJA;EACE,mBAAmB;EACnB,c/BzC4B;E+B0C5B,aAAa;EACb,YAAY;EACZ,gB/BNe;E+BOf,qBA1CgC;A9B8kJlC;;A8B1iJA;EAQI,uBAAuB;A9BsiJ3B;;A8BpiJA;E7BqBE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;E6B5BV,mBAAmB;EACnB,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,qBApDgC;A9BomJlC;;A8B9iJA;EACE,cAAc;EACd,kBAAkB;A9BijJpB;;A8BnjJA;EAKM,+BA/De;EAgEf,gCAhEe;A9BknJrB;;A8BxjJA;EASM,kCAnEe;EAoEf,mCApEe;A9BunJrB;;A8BjjJA;EAEE,6BAhEyC;EAiEzC,eAhE2B;A9BmnJ7B;;A8BjjJA;EAEE,6BAlEwC;EAmExC,6B/BxE6B;E+ByE7B,oBAAoB;EACpB,aAAa;A9BmjJf;;A8BjjJA;EACE,mBAAmB;EACnB,aAAa;EACb,aAAa;EACb,YAAY;EACZ,cAAc;EACd,uBAAuB;EACvB,gBA5E2B;A9BgoJ7B;;A8B3jJA;E7B2FI,8BFvK2B;AC2oJ/B;;A8BljJA;EAEI,qB/BtDkB;AC0mJtB;;A+BroJA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;A/BwoJrB;;A+B3oJA;EAOM,cAAc;A/BwoJpB;;A+B/oJA;EAUM,UAAU;EACV,QAAQ;A/ByoJd;;A+BppJA;EAcM,YAAY;EACZ,mBA9BuB;EA+BvB,oBAAoB;EACpB,SAAS;A/B0oJf;;A+BxoJA;EACE,aAAa;E9BiJX,Q8BhJqB;EACvB,gBAzC6B;EA0C7B,gBAtC2B;EAuC3B,kBAAkB;EAClB,SAAS;EACT,WApCqB;A/B+qJvB;;A+BzoJA;EACE,uBhCnC6B;EgCoC7B,kBhCmBU;EgClBV,0FhClD2B;EgCmD3B,sBA9CsC;EA+CtC,mBA9CmC;A/B0rJrC;;Ae9qJgB;EgBqCd,chClD4B;EgCmD5B,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;A/B6oJpB;;A+B3oJA;;E9BkHI,kB8BhHmC;EACrC,mBAAmB;EACnB,mBAAmB;EACnB,WAAW;A/B8oJb;;A+BnpJA;;EAOI,4BhC1D0B;EgC2D1B,chCtEyB;ACutJ7B;;A+BzpJA;;EAUI,yBhCpD8B;EgCqD9B,WrBOY;AV6oJhB;;A+BlpJA;EACE,yBhCnE6B;EgCoE7B,YAAY;EACZ,cAAc;EACd,WAAW;EACX,gBAAgB;A/BqpJlB;;AgCnuJA;EAEE,mBAAmB;EACnB,8BAA8B;AhCquJhC;;AgCxuJA;EAKI,kBjC6DQ;AC0qJZ;;AgC5uJA;EAOI,qBAAqB;EACrB,mBAAmB;AhCyuJvB;;AgCjvJA;EAWI,aAAa;AhC0uJjB;;AgCrvJA;;EAcM,aAAa;AhC4uJnB;;AgC1vJA;EAgBM,aAAa;AhC8uJnB;;AgC9vJA;EAmBQ,gBAAgB;E/B2JpB,oB+BhLuC;AhCqwJ3C;;AgCnwJA;EAsBQ,YAAY;AhCivJpB;;ACjqJE;E+BtGF;IAyBI,aAAa;EhCmvJf;EgC5wJF;IA4BQ,YAAY;EhCmvJlB;AACF;;AgClvJA;EACE,mBAAmB;EACnB,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,uBAAuB;AhCqvJzB;;AgC3vJA;;EASI,gBAAgB;AhCuvJpB;;AC5rJE;E+BpEF;IAaM,sBA7CqC;EhCqyJzC;AACF;;AgCvvJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AhC0vJhB;;AgC9vJA;;EAQM,YAAY;AhC2vJlB;;AC1sJE;E+BzDF;;I/BiII,oB+BhLuC;EhCwzJzC;AACF;;AgC5vJA;EACE,mBAAmB;EACnB,2BAA2B;AhC+vJ7B;;AC1tJE;E+BvCF;IAMM,kBAAkB;EhCgwJtB;AACF;;AC5tJE;E+B3CF;IAQI,aAAa;EhCowJf;AACF;;AgCnwJA;EACE,mBAAmB;EACnB,yBAAyB;AhCswJ3B;;ACvuJE;E+BjCF;IAKI,aAAa;EhCwwJf;AACF;;AiC50JA;EACE,uBAAuB;EACvB,aAAa;EACb,mBAAmB;AjC+0JrB;;AiCl1JA;EAKI,sBAV2B;AjC21J/B;;AiCt1JA;EAOI,8ClCR0B;EkCS1B,aAAa;EACb,oBAb2B;AjCg2J/B;;AiC51JA;;EAYM,qBAfgC;AjCo2JtC;;AiCj2JA;EAcM,mBAhBwB;AjCu2J9B;;AiCr2JA;EAgBQ,kBAlBsB;AjC22J9B;;AiCz2JA;EAkBI,8ClCnB0B;EkCoB1B,gBA1BgB;EA2BhB,iBA3BgB;AjCs3JpB;;AiC/2JA;EAwBM,kBA9BsB;EA+BtB,mBA/BsB;AjC03J5B;;AiCz1JA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AjC41JhB;;AiC11JA;EhCsII,iBgC9KgB;AjCs4JpB;;AiC31JA;EhCmII,kBgC9KgB;AjC04JpB;;AiC51JA;EACE,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,mBAAmB;AjC+1JrB;;AC/yJE;EgCpDF;IAQI,gBAAgB;EjCg2JlB;AACF;;AkCv4JA;EACE,enCgBW;AC03Jb;;AkC34JA;EAII,kBnCcY;AC63JhB;;AkC/4JA;EAMI,kBnCUY;ACm4JhB;;AkCn5JA;EAQI,iBnCOW;ACw4Jf;;AkC74JA;EACE,iBArB0B;AlCq6J5B;;AkCj5JA;EAGI,kBnCoCc;EmCnCd,cnC3B0B;EmC4B1B,cAAc;EACd,qBAzBiC;AlC26JrC;;AkCx5JA;EAQM,4BnCzBwB;EmC0BxB,cnCjCwB;ACq7J9B;;AkC75JA;EAYM,yBnCpB4B;EmCqB5B,WxBuCU;AV82JhB;;AkCl6JA;EjCoJI,+BFxK0B;EmCqCxB,cAnC0B;EjCsK5B,qBiCrKkC;AlCy7JtC;;AkCp5JA;EACE,cnC3C4B;EmC4C5B,iBApC2B;EAqC3B,qBApC+B;EAqC/B,yBAAyB;AlCu5J3B;;AkC35JA;EAMI,eAtCoB;AlC+7JxB;;AkC/5JA;EAQI,kBAxCoB;AlCm8JxB;;AmC97JA;EAEE,4BpCZ4B;EoCa5B,kBpC4CU;EoC3CV,epCUW;ACs7Jb;;AmCp8JA;EAMI,mBAAmB;AnCk8JvB;;AmCx8JA;EAQI,mBAAmB;EACnB,0BAA0B;AnCo8J9B;;AmC78JA;EAYI,kBpCGY;ACk8JhB;;AmCj9JA;EAcI,kBpCDY;ACw8JhB;;AmCr9JA;EAgBI,iBpCJW;AC68Jf;;AmCz9JA;EAsCM,uBAH+C;AnC07JrD;;AmC79JA;EAwCQ,uBpChDuB;EoCiDvB,cpC9DqB;ACu/J7B;;AmCl+JA;EA2CQ,mBpCnDuB;AC8+J/B;;AmCt+JA;EAsCM,yBAH+C;AnCu8JrD;;AmC1+JA;EAwCQ,yBpC7DqB;EoC8DrB,YpCjDuB;ACu/J/B;;AmC/+JA;EA2CQ,qBpChEqB;ACwgK7B;;AmCn/JA;EAsCM,yBAH+C;AnCo9JrD;;AmCv/JA;EAwCQ,4BpClDsB;EoCmDtB,yBzBgBa;AVm8JrB;;AmC5/JA;EA2CQ,wBpCrDsB;AC0gK9B;;AmChgKA;EAsCM,yBAH+C;AnCi+JrD;;AmCpgKA;EAwCQ,yBpCzDsB;EoC0DtB,WzBkBQ;AV88JhB;;AmCzgKA;EA2CQ,qBpC5DsB;AC8hK9B;;AmC7gKA;EAsCM,yBzB4B0C;AV+8JhD;;AmCjhKA;EAwCQ,yBpC3C0B;EoC4C1B,WzBkBQ;AV29JhB;;AmCthKA;EA2CQ,qBpC9C0B;EoC+C1B,czB8B6D;AVi9JrE;;AmC3hKA;EAsCM,yBzB4B0C;AV69JhD;;AmC/hKA;EAwCQ,yBpCzC0B;EoC0C1B,WzBkBQ;AVy+JhB;;AmCpiKA;EA2CQ,qBpC5C0B;EoC6C1B,czB8B6D;AV+9JrE;;AmCziKA;EAsCM,yBzB4B0C;AV2+JhD;;AmC7iKA;EAwCQ,yBpC1C0B;EoC2C1B,WzBkBQ;AVu/JhB;;AmCljKA;EA2CQ,qBpC7C0B;EoC8C1B,czB8B6D;AV6+JrE;;AmCvjKA;EAsCM,yBzB4B0C;AVy/JhD;;AmC3jKA;EAwCQ,yBpC5C0B;EoC6C1B,WzBkBQ;AVqgKhB;;AmChkKA;EA2CQ,qBpC/C0B;EoCgD1B,czB8B6D;AV2/JrE;;AmCrkKA;EAsCM,yBzB4B0C;AVugKhD;;AmCzkKA;EAwCQ,yBpC7C0B;EoC8C1B,yBzBgBa;AVqhKrB;;AmC9kKA;EA2CQ,qBpChD0B;EoCiD1B,czB8B6D;AVygKrE;;AmCnlKA;EAsCM,yBzB4B0C;AVqhKhD;;AmCvlKA;EAwCQ,yBpCvCyB;EoCwCzB,WzBkBQ;AViiKhB;;AmC5lKA;EA2CQ,qBpC1CyB;EoC2CzB,czB8B6D;AVuhKrE;;AmCnjKA;EACE,mBAAmB;EACnB,yBpChE4B;EoCiE5B,0BAAgE;EAChE,WzBSc;EyBRd,aAAa;EACb,gBpC/Be;EoCgCf,8BAA8B;EAC9B,iBAAiB;EACjB,mBAtEiC;EAuEjC,kBAAkB;AnCsjKpB;;AmChkKA;EAYI,YAAY;EACZ,cAAc;ElCgGd,oBkC/FsC;AnCwjK1C;;AmCtkKA;EAgBI,eAjEgC;EAkEhC,yBAAyB;EACzB,0BAA0B;AnC0jK9B;;AmCxjKA;EACE,qBpChF4B;EoCiF5B,kBpCrBU;EoCsBV,mBAAmB;EACnB,uBAjFmC;EAkFnC,cpCvF4B;EoCwF5B,qBAjFiC;AnC4oKnC;;AmCjkKA;;EASI,uBpCnF2B;ACgpK/B;;AmCtkKA;EAWI,6BAlFgD;AnCipKpD;;AoCjoKA;EAEE,mBAAmB;EACnB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,eAAe;EACf,WAxCU;ApC2qKZ;;AoC3oKA;EAWI,aAAa;ApCooKjB;;AoCloKA;EAEE,wCrC/C2B;ACmrK7B;;AoCloKA;;EAEE,cA9CgC;EA+ChC,+BAA0D;EAC1D,cAAc;EACd,kBAAkB;EAClB,WAAW;ApCqoKb;;ACpmKE;EmCvCF;;IASI,cAAc;IACd,8BAA0D;IAC1D,YAxDuB;EpCgsKzB;AACF;;AoCvoKA;EAEE,gBAAgB;EAChB,YAxD2B;EAyD3B,eAAe;EnCsHb,UmC9KoB;EA0DtB,SAzDoB;EA0DpB,WA5D2B;ApCqsK7B;;AoCvoKA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAAgD;EAChD,gBAAgB;EAChB,uBAAuB;ApC0oKzB;;AoCxoKA;;EAEE,mBAAmB;EACnB,4BrCtE4B;EqCuE5B,aAAa;EACb,cAAc;EACd,2BAA2B;EAC3B,aApE4B;EAqE5B,kBAAkB;ApC2oKpB;;AoCzoKA;EACE,gCrCjF4B;EqCkF5B,2BrCrBgB;EqCsBhB,4BrCtBgB;ACkqKlB;;AoC1oKA;EACE,crC1F4B;EqC2F5B,YAAY;EACZ,cAAc;EACd,iBrChEa;EqCiEb,cA7E8B;ApC0tKhC;;AoC3oKA;EACE,8BrChCgB;EqCiChB,+BrCjCgB;EqCkChB,6BrC/F4B;AC6uK9B;;AoCjpKA;EnC4EI,kBmCtEuC;ApC+oK3C;;AoC7oKA;EnC3CE,iCAAiC;EmC6CjC,uBrCjG6B;EqCkG7B,YAAY;EACZ,cAAc;EACd,cAAc;EACd,aAtF4B;ApCsuK9B;;AqC1sKA;EACE,uBtC5C6B;EsC6C7B,mBAvDqB;EAwDrB,kBAAkB;EAClB,WAtDW;ArCmwKb;;AqCjtKA;EASM,uBtCpDyB;EsCqDzB,ctClEuB;AC8wK7B;;AqCttKA;;EAcU,ctCtEmB;ACmxK7B;;AqC3tKA;;;;EAoBY,yB3B8BqB;E2B7BrB,ctC7EiB;AC2xK7B;;AqCnuKA;EAwBY,qBtChFiB;AC+xK7B;;AqCvuKA;EA0BQ,ctClFqB;ACmyK7B;;AC3sKE;EoChCF;;;;IAgCY,ctCxFiB;EC2yK3B;EqCnvKF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,ctC/Fe;ECwzK3B;EqChwKF;;IA0Cc,qBtClGe;EC4zK3B;EqCpwKF;;;IA8CU,yB3BIuB;I2BHvB,ctCvGmB;ECk0K3B;EqC1wKF;IAmDc,uBtC9FiB;IsC+FjB,ctC5Ge;ECs0K3B;AACF;;AqC/wKA;EASM,yBtCjEuB;EsCkEvB,YtCrDyB;AC+zK/B;;AqCpxKA;;EAcU,YtCzDqB;ACo0K/B;;AqCzxKA;;;;EAoBY,uB3B8BqB;E2B7BrB,YtChEmB;AC40K/B;;AqCjyKA;EAwBY,mBtCnEmB;ACg1K/B;;AqCryKA;EA0BQ,YtCrEuB;ACo1K/B;;ACzwKE;EoChCF;;;;IAgCY,YtC3EmB;EC41K7B;EqCjzKF;;;;;;;;;;IAsCc,uB3BYmB;I2BXnB,YtClFiB;ECy2K7B;EqC9zKF;;IA0Cc,mBtCrFiB;EC62K7B;EqCl0KF;;;IA8CU,uB3BIuB;I2BHvB,YtC1FqB;ECm3K7B;EqCx0KF;IAmDc,yBtC3Ge;IsC4Gf,YtC/FiB;ECu3K7B;AACF;;AqC70KA;EASM,4BtCtDwB;EsCuDxB,yB3BYe;AV4zKrB;;AqCl1KA;;EAcU,yB3BQW;AVi0KrB;;AqCv1KA;;;;EAoBY,yB3B8BqB;E2B7BrB,yB3BCS;AVy0KrB;;AqC/1KA;EAwBY,gC3BFS;AV60KrB;;AqCn2KA;EA0BQ,yB3BJa;AVi1KrB;;ACv0KE;EoChCF;;;;IAgCY,yB3BVS;EVy1KnB;EqC/2KF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,yB3BjBO;EVs2KnB;EqC53KF;;IA0Cc,gC3BpBO;EV02KnB;EqCh4KF;;;IA8CU,yB3BIuB;I2BHvB,yB3BzBW;EVg3KnB;EqCt4KF;IAmDc,4BtChGgB;IsCiGhB,yB3B9BO;EVo3KnB;AACF;;AqC34KA;EASM,yBtC7DwB;EsC8DxB,W3BcU;AVw3KhB;;AqCh5KA;;EAcU,W3BUM;AV63KhB;;AqCr5KA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVq4KhB;;AqC75KA;EAwBY,kB3BAI;AVy4KhB;;AqCj6KA;EA0BQ,W3BFQ;AV64KhB;;ACr4KE;EoChCF;;;;IAgCY,W3BRI;EVq5Kd;EqC76KF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EVk6Kd;EqC17KF;;IA0Cc,kB3BlBE;EVs6Kd;EqC97KF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EV46Kd;EqCp8KF;IAmDc,yBtCvGgB;IsCwGhB,W3B5BE;EVg7Kd;AACF;;AqCz8KA;EASM,yBtC/C4B;EsCgD5B,W3BcU;AVs7KhB;;AqC98KA;;EAcU,W3BUM;AV27KhB;;AqCn9KA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVm8KhB;;AqC39KA;EAwBY,kB3BAI;AVu8KhB;;AqC/9KA;EA0BQ,W3BFQ;AV28KhB;;ACn8KE;EoChCF;;;;IAgCY,W3BRI;EVm9Kd;EqC3+KF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EVg+Kd;EqCx/KF;;IA0Cc,kB3BlBE;EVo+Kd;EqC5/KF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EV0+Kd;EqClgLF;IAmDc,yBtCzFoB;IsC0FpB,W3B5BE;EV8+Kd;AACF;;AqCvgLA;EASM,yBtC7C4B;EsC8C5B,W3BcU;AVo/KhB;;AqC5gLA;;EAcU,W3BUM;AVy/KhB;;AqCjhLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVigLhB;;AqCzhLA;EAwBY,kB3BAI;AVqgLhB;;AqC7hLA;EA0BQ,W3BFQ;AVygLhB;;ACjgLE;EoChCF;;;;IAgCY,W3BRI;EVihLd;EqCziLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EV8hLd;EqCtjLF;;IA0Cc,kB3BlBE;EVkiLd;EqC1jLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVwiLd;EqChkLF;IAmDc,yBtCvFoB;IsCwFpB,W3B5BE;EV4iLd;AACF;;AqCrkLA;EASM,yBtC9C4B;EsC+C5B,W3BcU;AVkjLhB;;AqC1kLA;;EAcU,W3BUM;AVujLhB;;AqC/kLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AV+jLhB;;AqCvlLA;EAwBY,kB3BAI;AVmkLhB;;AqC3lLA;EA0BQ,W3BFQ;AVukLhB;;AC/jLE;EoChCF;;;;IAgCY,W3BRI;EV+kLd;EqCvmLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EV4lLd;EqCpnLF;;IA0Cc,kB3BlBE;EVgmLd;EqCxnLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVsmLd;EqC9nLF;IAmDc,yBtCxFoB;IsCyFpB,W3B5BE;EV0mLd;AACF;;AqCnoLA;EASM,yBtChD4B;EsCiD5B,W3BcU;AVgnLhB;;AqCxoLA;;EAcU,W3BUM;AVqnLhB;;AqC7oLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AV6nLhB;;AqCrpLA;EAwBY,kB3BAI;AVioLhB;;AqCzpLA;EA0BQ,W3BFQ;AVqoLhB;;AC7nLE;EoChCF;;;;IAgCY,W3BRI;EV6oLd;EqCrqLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EV0pLd;EqClrLF;;IA0Cc,kB3BlBE;EV8pLd;EqCtrLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVoqLd;EqC5rLF;IAmDc,yBtC1FoB;IsC2FpB,W3B5BE;EVwqLd;AACF;;AqCjsLA;EASM,yBtCjD4B;EsCkD5B,yB3BYe;AVgrLrB;;AqCtsLA;;EAcU,yB3BQW;AVqrLrB;;AqC3sLA;;;;EAoBY,yB3B8BqB;E2B7BrB,yB3BCS;AV6rLrB;;AqCntLA;EAwBY,gC3BFS;AVisLrB;;AqCvtLA;EA0BQ,yB3BJa;AVqsLrB;;AC3rLE;EoChCF;;;;IAgCY,yB3BVS;EV6sLnB;EqCnuLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,yB3BjBO;EV0tLnB;EqChvLF;;IA0Cc,gC3BpBO;EV8tLnB;EqCpvLF;;;IA8CU,yB3BIuB;I2BHvB,yB3BzBW;EVouLnB;EqC1vLF;IAmDc,yBtC3FoB;IsC4FpB,yB3B9BO;EVwuLnB;AACF;;AqC/vLA;EASM,yBtC3C2B;EsC4C3B,W3BcU;AV4uLhB;;AqCpwLA;;EAcU,W3BUM;AVivLhB;;AqCzwLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVyvLhB;;AqCjxLA;EAwBY,kB3BAI;AV6vLhB;;AqCrxLA;EA0BQ,W3BFQ;AViwLhB;;ACzvLE;EoChCF;;;;IAgCY,W3BRI;EVywLd;EqCjyLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EVsxLd;EqC9yLF;;IA0Cc,kB3BlBE;EV0xLd;EqClzLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVgyLd;EqCxzLF;IAmDc,yBtCrFmB;IsCsFnB,W3B5BE;EVoyLd;AACF;;AqC7zLA;EAsDI,oBAAoB;EACpB,aAAa;EACb,mBA7GmB;EA8GnB,WAAW;ArC2wLf;;AqCp0LA;EA2DI,gCtCxG0B;ACq3L9B;;AqCx0LA;EALE,OAAO;EACP,eAAe;EACf,QAAQ;EACR,WA/CiB;ArCg4LnB;;AqC/0LA;EAgEI,SAAS;ArCmxLb;;AqCn1LA;EAkEM,iCtC/GwB;ACo4L9B;;AqCv1LA;EAoEI,MAAM;ArCuxLV;;AqCrxLA;;EAGI,oBA9HmB;ArCq5LvB;;AqC1xLA;;EAKI,uBAhImB;ArC05LvB;;AqCxxLA;;EAEE,oBAAoB;EACpB,aAAa;EACb,cAAc;EACd,mBAvIqB;ArCk6LvB;;AqCzxLA;EAIM,6BAA6B;ArCyxLnC;;AqCvxLA;EpCjFE,iCAAiC;EoCmFjC,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;ArC0xLpB;;AqCxxLA;EAEE,ctCrJ4B;EEoB5B,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,eAAe;EACf,cAAc;EACd,eoC7BqB;EpC8BrB,kBAAkB;EAClB,coC/BqB;EpC6KnB,kBoCpBkC;ArCmyLtC;;AC55LE;EACE,8BAA8B;EAC9B,cAAc;EACd,WAAW;EACX,qBAAqB;EACrB,kBAAkB;EAClB,wBAAwB;EACxB,yBF6BQ;EE5BR,yDAAyD;EACzD,oCFsBa;EErBb,WAAW;AD+5Lf;;AC95LI;EACE,oBAAoB;ADi6L1B;;ACh6LI;EACE,oBAAoB;ADm6L1B;;ACl6LI;EACE,oBAAoB;ADq6L1B;;ACp6LE;EACE,qCAAiC;ADu6LrC;;ACn6LM;EACE,wCAAwC;ADs6LhD;;ACr6LM;EACE,UAAU;ADw6LlB;;ACv6LM;EACE,0CAA0C;AD06LlD;;AqC10LA;EACE,aAAa;ArC60Lf;;AqC30LA;;EAEE,ctC9J4B;EsC+J5B,cAAc;EACd,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;ArC80LpB;;AqCp1LA;;EASM,qBAAqB;EACrB,sBAAsB;ArCg1L5B;;AqC90LA;;EAEE,eAAe;ArCi1LjB;;AqCn1LA;;;;;EAOI,yBtCxK0B;EsCyK1B,ctCjK8B;ACq/LlC;;AqCl1LA;EACE,YAAY;EACZ,cAAc;ArCq1LhB;;AqCv1LA;EAII,mBA7KgC;ArCogMpC;;AqC31LA;EAMI,UAAU;ArCy1Ld;;AqC/1LA;EAQI,YAAY;EACZ,cAAc;ArC21LlB;;AqCp2LA;EAWI,oCAAoC;EACpC,mBAhMmB;EAiMnB,kCAAkC;ArC61LtC;;AqC12LA;EAgBM,6BArLyC;EAsLzC,4BtCpL4B;ACkhMlC;;AqC/2LA;EAmBM,6BArL0C;EAsL1C,4BtCvL4B;EsCwL5B,0BArLuC;EAsLvC,wBArLqC;EAsLrC,ctC1L4B;EsC2L5B,kCAAwE;ArCg2L9E;;AqC91LA;EACE,YAAY;EACZ,cAAc;ArCi2LhB;;AqC/1LA;EpCrCI,mBoCsCoC;ArCk2LxC;;AqCn2LA;EAII,qBtCrM8B;EsCsM9B,oBAAoB;EpClCpB,aoCmC6B;ArCm2LjC;;AqCj2LA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,mBAAmB;ArCo2LrB;;AqCv2LA;EAKI,oBAAoB;EACpB,qBAAqB;ArCs2LzB;;AqCp2LA;EACE,4BtC3N4B;EsC4N5B,YAAY;EACZ,aAAa;EACb,WA/LyB;EAgMzB,gBAAgB;ArCu2LlB;;ACr/LE;EoCpCF;IAsLI,cAAc;ErCw2LhB;EqCv2LA;;IAGI,mBAAmB;IACnB,aAAa;ErCw2LjB;EqCv2LA;IAEI,aAAa;ErCw2LjB;EqCh8LF;IA0FI,uBtC3O2B;IsC4O3B,4CtCzPyB;IsC0PzB,iBAAiB;ErCy2LnB;EqC52LA;IAKI,cAAc;ErC02LlB;EqCx2LA;IA3MA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErCqmMjB;EqC92LA;IAKI,SAAS;ErC42Lb;EqCj3LA;IAOM,4CtCrQqB;ECknM3B;EqCp3LA;IASI,MAAM;ErC82LV;EqCv3LA;IpC7LA,iCAAiC;IoC2M3B,iCAA2C;IAC3C,cAAc;ErC62LpB;EqC52LA;;IAGI,oBA9QiB;ErC2nMrB;EqCh3LA;;IAKI,uBAhRiB;ErC+nMrB;AACF;;AC3iME;EoC8LA;;;;IAIE,oBAAoB;IACpB,aAAa;ErCi3Lf;EqCplMF;IAqOI,mBA1RmB;ErC4oMrB;EqCn3LA;IAGI,kBA1R0B;ErC6oM9B;EqCt3LA;;IAMM,mBAAmB;ErCo3LzB;EqC13LA;;IASM,kBtCjOI;ECslMV;EqC93LA;;;;IAgBQ,wCAAwC;ErCo3LhD;EqCp4LA;IAuBU,wCAAwC;ErCg3LlD;EqCv4LA;IA4BU,4BtC7SkB;IsC8SlB,ctCzTiB;ECuqM3B;EqC34LA;IA+BU,4BtChTkB;IsCiTlB,ctCxSsB;ECupMhC;EqCnhMF;IAsKI,aAAa;ErCg3Lf;EqC7gMF;;IAgKI,mBAAmB;IACnB,aAAa;ErCi3Lf;EqC5/LF;IA8IM,oBAAoB;ErCi3LxB;EqCn3LA;IAKM,oDAAoD;ErCi3L1D;EqCt3LA;IAOM,gCtClUsB;IsCmUtB,0BAAkE;IAClE,gBAAgB;IAChB,YAAY;IACZ,4CtC9UqB;IsC+UrB,SAAS;ErCk3Lf;EqC93LA;IAkBM,cAAc;ErC+2LpB;EqC92LM;IAEE,UAAU;IACV,oBAAoB;IACpB,wBAAwB;ErC+2LhC;EqC3iMF;IA8LI,YAAY;IACZ,cAAc;ErCg3LhB;EqC/2LA;IACE,2BAA2B;IpC/K3B,iBoCgLoC;ErCi3LtC;EqCh3LA;IACE,yBAAyB;IpClLzB,kBoCmLoC;ErCk3LtC;EqCx/LF;IAwII,uBtCxV2B;IsCyV3B,8BtCjSc;IsCkSd,+BtClSc;IsCmSd,6BtChW0B;IsCiW1B,2CtCzWyB;IsC0WzB,aAAa;IACb,mBAAmB;IpCnLnB,QoCoLuB;IACvB,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,WAjVkB;ErCosMpB;EqCtgMF;IAqJM,sBAAsB;IACtB,mBAAmB;ErCo3LvB;EqCn4LA;IpCpLE,kBoCqMuC;ErCq3LzC;EqCt4LA;IAoBM,4BtC7WsB;IsC8WtB,ctCzXqB;EC8uM3B;EqC14LA;IAuBM,4BtChXsB;IsCiXtB,ctCxW0B;EC8tMhC;EqCr3LE;IAEE,kBtC1TY;IsC2TZ,gBAAgB;IAChB,4EtCjYuB;IsCkYvB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,wBAA8C;IAC9C,2BAA2B;IAC3B,yBtChUM;IsCiUN,uCAAuC;ErCs3L3C;EqC15LA;IAsCI,UAAU;IACV,QAAQ;ErCu3LZ;EqC7hMF;IAwKI,cAAc;ErCw3LhB;EqCv3LA;;IpC9NE,sBoCiOyC;ErCw3L3C;EqC33LA;;IpC9NE,qBoCmOyC;ErC03L3C;EqCx3LA;IAlWA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErC4wMjB;EqC93LA;IAKI,SAAS;ErC43Lb;EqCj4LA;IAOM,4CtC5ZqB;ECyxM3B;EqCp4LA;IASI,MAAM;ErC83LV;EqC73LA;;IAGI,oBA/ZiB;ErC6xMrB;EqCj4LA;;IAKI,uBAjaiB;ErCiyMrB;EqCr4LA;;IAOI,oBAA4D;ErCk4LhE;EqCz4LA;;IASI,uBAA+D;ErCo4LnE;EqCl4LA;;IAGI,ctC7auB;ECgzM3B;EqCt4LA;;IAKI,6BAla2C;ErCuyM/C;EqCp4LA;IAKM,yBtCzasB;EC2yM5B;AACF;;AqC/3LA;EAEI,iCAA2C;ArCi4L/C;;AsCzxMA;EAEE,evCFW;EuCGX,gBAnC0B;AtC8zM5B;;AsC9xMA;EAMI,kBvCLY;ACiyMhB;;AsClyMA;EAQI,kBvCTY;ACuyMhB;;AsCtyMA;EAUI,iBvCZW;AC4yMf;;AsC1yMA;;EAcM,iBAAiB;EACjB,kBAAkB;EAClB,qBvCmBiB;AC8wMvB;;AsCjzMA;EAkBM,qBvCiBiB;ACkxMvB;;AsCjyMA;;EAEE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;AtCoyMpB;;AsClyMA;;;;EAME,cA9D6B;EA+D7B,uBAAuB;EACvB,eA/D8B;EAgE9B,mBA/DkC;EAgElC,oBA/DmC;EAgEnC,kBAAkB;AtCmyMpB;;AsCjyMA;;;EAGE,qBvCtE4B;EuCuE5B,cvC3E4B;EuC4E5B,gBxC3EoB;AE+2MtB;;AsCzyMA;;;EAOI,qBvC3E0B;EuC4E1B,cvC/E0B;ACu3M9B;;AsChzMA;;;EAUI,qBvCjE8B;AC62MlC;;AsCtzMA;;;EAYI,iDvCvFyB;ACu4M7B;;AsC5zMA;;;;;EAeI,yBvClF0B;EuCmF1B,qBvCnF0B;EuCoF1B,gBAAgB;EAChB,cvCvF0B;EuCwF1B,YAAY;AtCqzMhB;;AsCnzMA;;EAEE,oBAvFkC;EAwFlC,qBAvFmC;EAwFnC,mBAAmB;AtCszMrB;;AsCpzMA;EAEI,yBvCpF8B;EuCqF9B,qBvCrF8B;EuCsF9B,W5B1BY;AVg1MhB;;AsCpzMA;EACE,cvCtG4B;EuCuG5B,oBAAoB;AtCuzMtB;;AsCrzMA;EACE,eAAe;AtCwzMjB;;AsCzzMA;EAGI,gBAAgB;AtC0zMpB;;ACz0ME;EqCjEF;IAoFI,eAAe;EtC2zMjB;EsCl1MF;;IA0BI,YAAY;IACZ,cAAc;EtC4zMhB;EsCv0MF;IAcM,YAAY;IACZ,cAAc;EtC4zMlB;AACF;;ACp1ME;EqCQF;IAmBI,YAAY;IACZ,cAAc;IACd,2BAA2B;IAC3B,QAAQ;EtC8zMV;EsCt4MF;;;;IA6EI,gBAAgB;IAChB,aAAa;EtC+zMf;EsC9zMA;IACE,QAAQ;EtCg0MV;EsC/zMA;IACE,QAAQ;EtCi0MV;EsC96MF;IA+GI,8BAA8B;IAC9B,gBAAgB;IAChB,aAAa;EtCk0Mf;EsCr0MA;IAMM,QAAQ;EtCk0Md;EsCx0MA;IAQM,uBAAuB;IACvB,QAAQ;EtCm0Md;EsC50MA;IAWM,QAAQ;EtCo0Md;EsC/0MA;IAcM,QAAQ;EtCo0Md;EsCl1MA;IAgBM,QAAQ;EtCq0Md;EsCr1MA;IAkBM,yBAAyB;IACzB,QAAQ;EtCs0Md;AACF;;AuC78MA;EACE,kBxCsCgB;EwCrChB,0FxChC2B;EwCiC3B,exCEW;AC88Mb;;AuCn9MA;EAKI,qBxCWkB;ACu8MtB;;AuCv9MA;EAYQ,uBxC7BuB;EwC8BvB,cxC3CqB;AC0/M7B;;AuC59MA;EAeQ,0BxChCuB;ACi/M/B;;AuCh+MA;EAiBQ,YxClCuB;ACq/M/B;;AuCp+MA;EAYQ,yBxC1CqB;EwC2CrB,YxC9BuB;AC0/M/B;;AuCz+MA;EAeQ,4BxC7CqB;AC2gN7B;;AuC7+MA;EAiBQ,cxC/CqB;AC+gN7B;;AuCj/MA;EAYQ,4BxC/BsB;EwCgCtB,yB7BmCa;AVs8MrB;;AuCt/MA;EAeQ,+BxClCsB;AC6gN9B;;AuC1/MA;EAiBQ,iBxCpCsB;ACihN9B;;AuC9/MA;EAYQ,yBxCtCsB;EwCuCtB,W7BqCQ;AVi9MhB;;AuCngNA;EAeQ,4BxCzCsB;ACiiN9B;;AuCvgNA;EAiBQ,cxC3CsB;ACqiN9B;;AuC3gNA;EAYQ,yBxCxB0B;EwCyB1B,W7BqCQ;AV89MhB;;AuChhNA;EAeQ,4BxC3B0B;ACgiNlC;;AuCphNA;EAiBQ,cxC7B0B;ACoiNlC;;AuCxhNA;EAYQ,yBxCtB0B;EwCuB1B,W7BqCQ;AV2+MhB;;AuC7hNA;EAeQ,4BxCzB0B;AC2iNlC;;AuCjiNA;EAiBQ,cxC3B0B;AC+iNlC;;AuCriNA;EAYQ,yBxCvB0B;EwCwB1B,W7BqCQ;AVw/MhB;;AuC1iNA;EAeQ,4BxC1B0B;ACyjNlC;;AuC9iNA;EAiBQ,cxC5B0B;AC6jNlC;;AuCljNA;EAYQ,yBxCzB0B;EwC0B1B,W7BqCQ;AVqgNhB;;AuCvjNA;EAeQ,4BxC5B0B;ACwkNlC;;AuC3jNA;EAiBQ,cxC9B0B;AC4kNlC;;AuC/jNA;EAYQ,yBxC1B0B;EwC2B1B,yB7BmCa;AVohNrB;;AuCpkNA;EAeQ,4BxC7B0B;ACslNlC;;AuCxkNA;EAiBQ,cxC/B0B;AC0lNlC;;AuC5kNA;EAYQ,yBxCpByB;EwCqBzB,W7BqCQ;AV+hNhB;;AuCjlNA;EAeQ,4BxCvByB;AC6lNjC;;AuCrlNA;EAiBQ,cxCzByB;ACimNjC;;AuCtkNA;;EAGI,gCxC3C2B;ACmnN/B;;AuCtkNA;EACE,yBxC9C6B;EwC+C7B,0BAA8C;EAC9C,cxCrD4B;EwCsD5B,iBAhDyB;EAiDzB,gBxCjBe;EwCkBf,iBArD8B;EAsD9B,mBArDgC;AvC8nNlC;;AuCvkNA;EACE,qBAAqB;EACrB,aAAa;EACb,kBArD4B;EAsD5B,uBAAuB;AvC0kNzB;;AuC9kNA;EAMI,gCxC7D0B;EwC8D1B,mBAAmB;EACnB,cAAc;AvC4kNlB;;AuCplNA;EAWM,4BxCrEwB;EwCsExB,cxCvEwB;ACopN9B;;AuC3kNA;EAEI,cxC1E0B;ACupN9B;;AuC/kNA;EAIM,cxC7D4B;AC4oNlC;;AuC7kNA;EACE,mBAAmB;EACnB,cxCjF4B;EwCkF5B,aAAa;EACb,2BAA2B;EAC3B,qBAAqB;AvCglNvB;;AuCrlNA;EtC6FI,mBsCtFsC;AvCklN1C;;AuCzlNA;EASI,YAAY;EACZ,cAAc;EACd,WAAW;AvColNf;;AuC/lNA;EAaI,eAAe;AvCslNnB;;AuCnmNA;EAeI,0BxC9E8B;EwC+E9B,cxC/F0B;ACurN9B;;AuCxmNA;EAkBM,cxCjF4B;AC2qNlC;;AuC5mNA;EAoBI,8BxClCc;EwCmCd,+BxCnCc;AC+nNlB;;AuC1lNA;;EAEE,eAAe;AvC6lNjB;;AuC/lNA;;EAII,4BxCnG0B;ACmsN9B;;AuC9lNA;EtChGE,qBAAqB;EACrB,esCgGgB;EtC/FhB,WsC+FqB;EtC9FrB,gBsC8FqB;EtC7FrB,kBAAkB;EAClB,mBAAmB;EACnB,UsC2FqB;EACrB,cxC5G4B;EE0K1B,mBsC7DoC;AvCumNxC;;AuC1mNA;EAKI,kBAAkB;EAClB,oBAAoB;AvCymNxB;;AwCnsNA;EvCqCE,iCAAiC;EuCjCjC,oBAAoB;EACpB,aAAa;EACb,ezCCW;EyCAX,8BAA8B;EAC9B,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;AxCosNrB;;AwC9sNA;EAYI,mBAAmB;EACnB,4BzCjC0B;EyCkC1B,0BAzC4B;EA0C5B,wBAzC0B;EA0C1B,czCvC0B;EyCwC1B,aAAa;EACb,uBAAuB;EACvB,mBAA6C;EAC7C,kBAxCyB;EAyCzB,mBAAmB;AxCssNvB;;AwC3tNA;EAuBM,4BzC/CwB;EyCgDxB,czChDwB;ACwvN9B;;AwChuNA;EA0BI,cAAc;AxC0sNlB;;AwCpuNA;EA6BQ,4BzCrC0B;EyCsC1B,czCtC0B;ACivNlC;;AwCzuNA;EAgCI,mBAAmB;EACnB,4BzCrD0B;EyCsD1B,0BA7D4B;EA8D5B,wBA7D0B;EA8D1B,aAAa;EACb,YAAY;EACZ,cAAc;EACd,2BAA2B;AxC6sN/B;;AwCpvNA;EAyCM,qBAAqB;AxC+sN3B;;AwCxvNA;EA2CM,UAAU;EACV,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;AxCitN3B;;AwC/vNA;EAgDM,yBAAyB;EACzB,oBAAoB;AxCmtN1B;;AwCpwNA;EvCoJI,kBuChGuC;AxCotN3C;;AwCxwNA;EvCoJI,mBuC9FuC;AxCstN3C;;AwC5wNA;EA0DM,uBAAuB;AxCstN7B;;AwChxNA;EA6DM,yBAAyB;AxCutN/B;;AwCpxNA;EAiEM,6BAA6B;EAI3B,0BzC7BI;ACivNZ;;AwCzxNA;EAuEQ,4BzCxFsB;EyCyFtB,4BzC5FsB;ACkzN9B;;AwC9xNA;EA4EU,uBzC3FqB;EyC4FrB,qBzCjGoB;EyCkGpB,2CAA2E;AxCstNrF;;AwCpyNA;EAiFM,YAAY;EACZ,cAAc;AxCutNpB;;AwCzyNA;EAqFM,qBzCzGwB;EyC0GxB,mBA/F+B;EAgG/B,iBA/F6B;EAgG7B,gBAAgB;EAChB,kBAAkB;AxCwtNxB;;AwCjzNA;EA2FQ,4BzC5GsB;EyC6GtB,qBzCjHsB;EyCkHtB,UAAU;AxC0tNlB;;AwCvzNA;EvCoJI,kBuCpDuE;AxC2tN3E;;AwC3zNA;EAsGU,4BzC9DE;EyC+DF,+BzC/DE;ACwxNZ;;AwCh0NA;EA6GU,2BzCrEE;EyCsEF,8BzCtEE;AC6xNZ;;AwCr0NA;EAiHU,yBzCzHwB;EyC0HxB,qBzC1HwB;EyC2HxB,W9B/DM;E8BgEN,UAAU;AxCwtNpB;;AwC50NA;EAsHM,mBAAmB;AxC0tNzB;;AwCh1NA;EA+HY,kCzCrFW;EyCsFX,+BzCtFW;EyCuFX,qBAAqB;AxCqtNjC;;AwCt1NA;EAwIY,iCzC9FW;EyC+FX,8BzC/FW;EyCgGX,oBAAoB;AxCktNhC;;AwC51NA;EA6II,kBzCrIY;ACw1NhB;;AwCh2NA;EA+II,kBzCzIY;AC81NhB;;AwCp2NA;EAiJI,iBzC5IW;ACm2Nf;;AyCt4NA,eAAA;ACIA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,gBAPkB;A1C64NpB;;A0Cr4NE;EACE,UAAU;EACV,YAAY;A1Cw4NhB;;A0Cv4NE;EACE,UAAU;EACV,WAAW;A1C04Nf;;A0Cz4NE;EACE,UAAU;EACV,UAAU;A1C44Nd;;A0C34NE;EACE,UAAU;EACV,eAAe;A1C84NnB;;A0C74NE;EACE,UAAU;EACV,UAAU;A1Cg5Nd;;A0C/4NE;EACE,UAAU;EACV,eAAe;A1Ck5NnB;;A0Cj5NE;EACE,UAAU;EACV,UAAU;A1Co5Nd;;A0Cn5NE;EACE,UAAU;EACV,UAAU;A1Cs5Nd;;A0Cr5NE;EACE,UAAU;EACV,UAAU;A1Cw5Nd;;A0Cv5NE;EACE,UAAU;EACV,UAAU;A1C05Nd;;A0Cz5NE;EACE,UAAU;EACV,UAAU;A1C45Nd;;A0C35NE;EzCuIE,iByCtImC;A1C85NvC;;A0C75NE;EzCqIE,sByCpIwC;A1Cg6N5C;;A0C/5NE;EzCmIE,iByClImC;A1Ck6NvC;;A0Cj6NE;EzCiIE,sByChIwC;A1Co6N5C;;A0Cn6NE;EzC+HE,iByC9HmC;A1Cs6NvC;;A0Cr6NE;EzC6HE,iByC5HmC;A1Cw6NvC;;A0Cv6NE;EzC2HE,iByC1HmC;A1C06NvC;;A0Cz6NE;EzCyHE,iByCxHmC;A1C46NvC;;A0C36NE;EzCuHE,iByCtHmC;A1C86NvC;;A0C56NI;EACE,UAAU;EACV,SAAiC;A1C+6NvC;;A0C96NI;EzCiHA,gByChH4D;A1Ci7NhE;;A0Cr7NI;EACE,UAAU;EACV,eAAiC;A1Cw7NvC;;A0Cv7NI;EzCiHA,sByChH4D;A1C07NhE;;A0C97NI;EACE,UAAU;EACV,gBAAiC;A1Ci8NvC;;A0Ch8NI;EzCiHA,uByChH4D;A1Cm8NhE;;A0Cv8NI;EACE,UAAU;EACV,UAAiC;A1C08NvC;;A0Cz8NI;EzCiHA,iByChH4D;A1C48NhE;;A0Ch9NI;EACE,UAAU;EACV,gBAAiC;A1Cm9NvC;;A0Cl9NI;EzCiHA,uByChH4D;A1Cq9NhE;;A0Cz9NI;EACE,UAAU;EACV,gBAAiC;A1C49NvC;;A0C39NI;EzCiHA,uByChH4D;A1C89NhE;;A0Cl+NI;EACE,UAAU;EACV,UAAiC;A1Cq+NvC;;A0Cp+NI;EzCiHA,iByChH4D;A1Cu+NhE;;A0C3+NI;EACE,UAAU;EACV,gBAAiC;A1C8+NvC;;A0C7+NI;EzCiHA,uByChH4D;A1Cg/NhE;;A0Cp/NI;EACE,UAAU;EACV,gBAAiC;A1Cu/NvC;;A0Ct/NI;EzCiHA,uByChH4D;A1Cy/NhE;;A0C7/NI;EACE,UAAU;EACV,UAAiC;A1CggOvC;;A0C//NI;EzCiHA,iByChH4D;A1CkgOhE;;A0CtgOI;EACE,UAAU;EACV,gBAAiC;A1CygOvC;;A0CxgOI;EzCiHA,uByChH4D;A1C2gOhE;;A0C/gOI;EACE,UAAU;EACV,gBAAiC;A1CkhOvC;;A0CjhOI;EzCiHA,uByChH4D;A1CohOhE;;A0CxhOI;EACE,UAAU;EACV,WAAiC;A1C2hOvC;;A0C1hOI;EzCiHA,kByChH4D;A1C6hOhE;;ACz/NE;EyClGF;IAiEM,UAAU;IACV,YAAY;E1C+hOhB;E0CjmOF;IAoEM,UAAU;IACV,WAAW;E1CgiOf;E0CrmOF;IAuEM,UAAU;IACV,UAAU;E1CiiOd;E0CzmOF;IA0EM,UAAU;IACV,eAAe;E1CkiOnB;E0C7mOF;IA6EM,UAAU;IACV,UAAU;E1CmiOd;E0CjnOF;IAgFM,UAAU;IACV,eAAe;E1CoiOnB;E0CrnOF;IAmFM,UAAU;IACV,UAAU;E1CqiOd;E0CznOF;IAsFM,UAAU;IACV,UAAU;E1CsiOd;E0C7nOF;IAyFM,UAAU;IACV,UAAU;E1CuiOd;E0CjoOF;IA4FM,UAAU;IACV,UAAU;E1CwiOd;E0CroOF;IA+FM,UAAU;IACV,UAAU;E1CyiOd;E0CzoOF;IzC8KI,iByC5EqC;E1C0iOvC;E0C5oOF;IzC8KI,sByC1E0C;E1C2iO5C;E0C/oOF;IzC8KI,iByCxEqC;E1C4iOvC;E0ClpOF;IzC8KI,sByCtE0C;E1C6iO5C;E0CrpOF;IzC8KI,iByCpEqC;E1C8iOvC;E0CxpOF;IzC8KI,iByClEqC;E1C+iOvC;E0C3pOF;IzC8KI,iByChEqC;E1CgjOvC;E0C9pOF;IzC8KI,iByC9DqC;E1CijOvC;E0CjqOF;IzC8KI,iByC5DqC;E1CkjOvC;E0CpqOF;IAqHQ,UAAU;IACV,SAAiC;E1CkjOvC;E0CxqOF;IzC8KI,gByCtD8D;E1CmjOhE;E0C3qOF;IAqHQ,UAAU;IACV,eAAiC;E1CyjOvC;E0C/qOF;IzC8KI,sByCtD8D;E1C0jOhE;E0ClrOF;IAqHQ,UAAU;IACV,gBAAiC;E1CgkOvC;E0CtrOF;IzC8KI,uByCtD8D;E1CikOhE;E0CzrOF;IAqHQ,UAAU;IACV,UAAiC;E1CukOvC;E0C7rOF;IzC8KI,iByCtD8D;E1CwkOhE;E0ChsOF;IAqHQ,UAAU;IACV,gBAAiC;E1C8kOvC;E0CpsOF;IzC8KI,uByCtD8D;E1C+kOhE;E0CvsOF;IAqHQ,UAAU;IACV,gBAAiC;E1CqlOvC;E0C3sOF;IzC8KI,uByCtD8D;E1CslOhE;E0C9sOF;IAqHQ,UAAU;IACV,UAAiC;E1C4lOvC;E0CltOF;IzC8KI,iByCtD8D;E1C6lOhE;E0CrtOF;IAqHQ,UAAU;IACV,gBAAiC;E1CmmOvC;E0CztOF;IzC8KI,uByCtD8D;E1ComOhE;E0C5tOF;IAqHQ,UAAU;IACV,gBAAiC;E1C0mOvC;E0ChuOF;IzC8KI,uByCtD8D;E1C2mOhE;E0CnuOF;IAqHQ,UAAU;IACV,UAAiC;E1CinOvC;E0CvuOF;IzC8KI,iByCtD8D;E1CknOhE;E0C1uOF;IAqHQ,UAAU;IACV,gBAAiC;E1CwnOvC;E0C9uOF;IzC8KI,uByCtD8D;E1CynOhE;E0CjvOF;IAqHQ,UAAU;IACV,gBAAiC;E1C+nOvC;E0CrvOF;IzC8KI,uByCtD8D;E1CgoOhE;E0CxvOF;IAqHQ,UAAU;IACV,WAAiC;E1CsoOvC;E0C5vOF;IzC8KI,kByCtD8D;E1CuoOhE;AACF;;AC1pOE;EyCtGF;IA4HM,UAAU;IACV,YAAY;E1CyoOhB;E0CtwOF;IAgIM,UAAU;IACV,WAAW;E1CyoOf;E0C1wOF;IAoIM,UAAU;IACV,UAAU;E1CyoOd;E0C9wOF;IAwIM,UAAU;IACV,eAAe;E1CyoOnB;E0ClxOF;IA4IM,UAAU;IACV,UAAU;E1CyoOd;E0CtxOF;IAgJM,UAAU;IACV,eAAe;E1CyoOnB;E0C1xOF;IAoJM,UAAU;IACV,UAAU;E1CyoOd;E0C9xOF;IAwJM,UAAU;IACV,UAAU;E1CyoOd;E0ClyOF;IA4JM,UAAU;IACV,UAAU;E1CyoOd;E0CtyOF;IAgKM,UAAU;IACV,UAAU;E1CyoOd;E0C1yOF;IAoKM,UAAU;IACV,UAAU;E1CyoOd;E0C9yOF;IzC8KI,iByCNqC;E1CyoOvC;E0CjzOF;IzC8KI,sByCH0C;E1CyoO5C;E0CpzOF;IzC8KI,iByCAqC;E1CyoOvC;E0CvzOF;IzC8KI,sByCG0C;E1CyoO5C;E0C1zOF;IzC8KI,iByCMqC;E1CyoOvC;E0C7zOF;IzC8KI,iByCSqC;E1CyoOvC;E0Ch0OF;IzC8KI,iByCYqC;E1CyoOvC;E0Cn0OF;IzC8KI,iByCeqC;E1CyoOvC;E0Ct0OF;IzC8KI,iByCkBqC;E1CyoOvC;E0Cz0OF;IAoMQ,UAAU;IACV,SAAiC;E1CwoOvC;E0C70OF;IzC8KI,gByC0B8D;E1CwoOhE;E0Ch1OF;IAoMQ,UAAU;IACV,eAAiC;E1C+oOvC;E0Cp1OF;IzC8KI,sByC0B8D;E1C+oOhE;E0Cv1OF;IAoMQ,UAAU;IACV,gBAAiC;E1CspOvC;E0C31OF;IzC8KI,uByC0B8D;E1CspOhE;E0C91OF;IAoMQ,UAAU;IACV,UAAiC;E1C6pOvC;E0Cl2OF;IzC8KI,iByC0B8D;E1C6pOhE;E0Cr2OF;IAoMQ,UAAU;IACV,gBAAiC;E1CoqOvC;E0Cz2OF;IzC8KI,uByC0B8D;E1CoqOhE;E0C52OF;IAoMQ,UAAU;IACV,gBAAiC;E1C2qOvC;E0Ch3OF;IzC8KI,uByC0B8D;E1C2qOhE;E0Cn3OF;IAoMQ,UAAU;IACV,UAAiC;E1CkrOvC;E0Cv3OF;IzC8KI,iByC0B8D;E1CkrOhE;E0C13OF;IAoMQ,UAAU;IACV,gBAAiC;E1CyrOvC;E0C93OF;IzC8KI,uByC0B8D;E1CyrOhE;E0Cj4OF;IAoMQ,UAAU;IACV,gBAAiC;E1CgsOvC;E0Cr4OF;IzC8KI,uByC0B8D;E1CgsOhE;E0Cx4OF;IAoMQ,UAAU;IACV,UAAiC;E1CusOvC;E0C54OF;IzC8KI,iByC0B8D;E1CusOhE;E0C/4OF;IAoMQ,UAAU;IACV,gBAAiC;E1C8sOvC;E0Cn5OF;IzC8KI,uByC0B8D;E1C8sOhE;E0Ct5OF;IAoMQ,UAAU;IACV,gBAAiC;E1CqtOvC;E0C15OF;IzC8KI,uByC0B8D;E1CqtOhE;E0C75OF;IAoMQ,UAAU;IACV,WAAiC;E1C4tOvC;E0Cj6OF;IzC8KI,kByC0B8D;E1C4tOhE;AACF;;ACvzOE;EyC9GF;IA2MM,UAAU;IACV,YAAY;E1C+tOhB;E0C36OF;IA8MM,UAAU;IACV,WAAW;E1CguOf;E0C/6OF;IAiNM,UAAU;IACV,UAAU;E1CiuOd;E0Cn7OF;IAoNM,UAAU;IACV,eAAe;E1CkuOnB;E0Cv7OF;IAuNM,UAAU;IACV,UAAU;E1CmuOd;E0C37OF;IA0NM,UAAU;IACV,eAAe;E1CouOnB;E0C/7OF;IA6NM,UAAU;IACV,UAAU;E1CquOd;E0Cn8OF;IAgOM,UAAU;IACV,UAAU;E1CsuOd;E0Cv8OF;IAmOM,UAAU;IACV,UAAU;E1CuuOd;E0C38OF;IAsOM,UAAU;IACV,UAAU;E1CwuOd;E0C/8OF;IAyOM,UAAU;IACV,UAAU;E1CyuOd;E0Cn9OF;IzC8KI,iByC8DqC;E1C0uOvC;E0Ct9OF;IzC8KI,sByCgE0C;E1C2uO5C;E0Cz9OF;IzC8KI,iByCkEqC;E1C4uOvC;E0C59OF;IzC8KI,sByCoE0C;E1C6uO5C;E0C/9OF;IzC8KI,iByCsEqC;E1C8uOvC;E0Cl+OF;IzC8KI,iByCwEqC;E1C+uOvC;E0Cr+OF;IzC8KI,iByC0EqC;E1CgvOvC;E0Cx+OF;IzC8KI,iByC4EqC;E1CivOvC;E0C3+OF;IzC8KI,iByC8EqC;E1CkvOvC;E0C9+OF;IA+PQ,UAAU;IACV,SAAiC;E1CkvOvC;E0Cl/OF;IzC8KI,gByCoF8D;E1CmvOhE;E0Cr/OF;IA+PQ,UAAU;IACV,eAAiC;E1CyvOvC;E0Cz/OF;IzC8KI,sByCoF8D;E1C0vOhE;E0C5/OF;IA+PQ,UAAU;IACV,gBAAiC;E1CgwOvC;E0ChgPF;IzC8KI,uByCoF8D;E1CiwOhE;E0CngPF;IA+PQ,UAAU;IACV,UAAiC;E1CuwOvC;E0CvgPF;IzC8KI,iByCoF8D;E1CwwOhE;E0C1gPF;IA+PQ,UAAU;IACV,gBAAiC;E1C8wOvC;E0C9gPF;IzC8KI,uByCoF8D;E1C+wOhE;E0CjhPF;IA+PQ,UAAU;IACV,gBAAiC;E1CqxOvC;E0CrhPF;IzC8KI,uByCoF8D;E1CsxOhE;E0CxhPF;IA+PQ,UAAU;IACV,UAAiC;E1C4xOvC;E0C5hPF;IzC8KI,iByCoF8D;E1C6xOhE;E0C/hPF;IA+PQ,UAAU;IACV,gBAAiC;E1CmyOvC;E0CniPF;IzC8KI,uByCoF8D;E1CoyOhE;E0CtiPF;IA+PQ,UAAU;IACV,gBAAiC;E1C0yOvC;E0C1iPF;IzC8KI,uByCoF8D;E1C2yOhE;E0C7iPF;IA+PQ,UAAU;IACV,UAAiC;E1CizOvC;E0CjjPF;IzC8KI,iByCoF8D;E1CkzOhE;E0CpjPF;IA+PQ,UAAU;IACV,gBAAiC;E1CwzOvC;E0CxjPF;IzC8KI,uByCoF8D;E1CyzOhE;E0C3jPF;IA+PQ,UAAU;IACV,gBAAiC;E1C+zOvC;E0C/jPF;IzC8KI,uByCoF8D;E1Cg0OhE;E0ClkPF;IA+PQ,UAAU;IACV,WAAiC;E1Cs0OvC;E0CtkPF;IzC8KI,kByCoF8D;E1Cu0OhE;AACF;;ACx9OE;EyClHF;IAqQM,UAAU;IACV,YAAY;E1C00OhB;E0ChlPF;IAwQM,UAAU;IACV,WAAW;E1C20Of;E0CplPF;IA2QM,UAAU;IACV,UAAU;E1C40Od;E0CxlPF;IA8QM,UAAU;IACV,eAAe;E1C60OnB;E0C5lPF;IAiRM,UAAU;IACV,UAAU;E1C80Od;E0ChmPF;IAoRM,UAAU;IACV,eAAe;E1C+0OnB;E0CpmPF;IAuRM,UAAU;IACV,UAAU;E1Cg1Od;E0CxmPF;IA0RM,UAAU;IACV,UAAU;E1Ci1Od;E0C5mPF;IA6RM,UAAU;IACV,UAAU;E1Ck1Od;E0ChnPF;IAgSM,UAAU;IACV,UAAU;E1Cm1Od;E0CpnPF;IAmSM,UAAU;IACV,UAAU;E1Co1Od;E0CxnPF;IzC8KI,iByCwHqC;E1Cq1OvC;E0C3nPF;IzC8KI,sByC0H0C;E1Cs1O5C;E0C9nPF;IzC8KI,iByC4HqC;E1Cu1OvC;E0CjoPF;IzC8KI,sByC8H0C;E1Cw1O5C;E0CpoPF;IzC8KI,iByCgIqC;E1Cy1OvC;E0CvoPF;IzC8KI,iByCkIqC;E1C01OvC;E0C1oPF;IzC8KI,iByCoIqC;E1C21OvC;E0C7oPF;IzC8KI,iByCsIqC;E1C41OvC;E0ChpPF;IzC8KI,iByCwIqC;E1C61OvC;E0CnpPF;IAyTQ,UAAU;IACV,SAAiC;E1C61OvC;E0CvpPF;IzC8KI,gByC8I8D;E1C81OhE;E0C1pPF;IAyTQ,UAAU;IACV,eAAiC;E1Co2OvC;E0C9pPF;IzC8KI,sByC8I8D;E1Cq2OhE;E0CjqPF;IAyTQ,UAAU;IACV,gBAAiC;E1C22OvC;E0CrqPF;IzC8KI,uByC8I8D;E1C42OhE;E0CxqPF;IAyTQ,UAAU;IACV,UAAiC;E1Ck3OvC;E0C5qPF;IzC8KI,iByC8I8D;E1Cm3OhE;E0C/qPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cy3OvC;E0CnrPF;IzC8KI,uByC8I8D;E1C03OhE;E0CtrPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cg4OvC;E0C1rPF;IzC8KI,uByC8I8D;E1Ci4OhE;E0C7rPF;IAyTQ,UAAU;IACV,UAAiC;E1Cu4OvC;E0CjsPF;IzC8KI,iByC8I8D;E1Cw4OhE;E0CpsPF;IAyTQ,UAAU;IACV,gBAAiC;E1C84OvC;E0CxsPF;IzC8KI,uByC8I8D;E1C+4OhE;E0C3sPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cq5OvC;E0C/sPF;IzC8KI,uByC8I8D;E1Cs5OhE;E0CltPF;IAyTQ,UAAU;IACV,UAAiC;E1C45OvC;E0CttPF;IzC8KI,iByC8I8D;E1C65OhE;E0CztPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cm6OvC;E0C7tPF;IzC8KI,uByC8I8D;E1Co6OhE;E0ChuPF;IAyTQ,UAAU;IACV,gBAAiC;E1C06OvC;E0CpuPF;IzC8KI,uByC8I8D;E1C26OhE;E0CvuPF;IAyTQ,UAAU;IACV,WAAiC;E1Ci7OvC;E0C3uPF;IzC8KI,kByC8I8D;E1Ck7OhE;AACF;;AC9mPI;EyCjIJ;IA+TM,UAAU;IACV,YAAY;E1Cq7OhB;E0CrvPF;IAkUM,UAAU;IACV,WAAW;E1Cs7Of;E0CzvPF;IAqUM,UAAU;IACV,UAAU;E1Cu7Od;E0C7vPF;IAwUM,UAAU;IACV,eAAe;E1Cw7OnB;E0CjwPF;IA2UM,UAAU;IACV,UAAU;E1Cy7Od;E0CrwPF;IA8UM,UAAU;IACV,eAAe;E1C07OnB;E0CzwPF;IAiVM,UAAU;IACV,UAAU;E1C27Od;E0C7wPF;IAoVM,UAAU;IACV,UAAU;E1C47Od;E0CjxPF;IAuVM,UAAU;IACV,UAAU;E1C67Od;E0CrxPF;IA0VM,UAAU;IACV,UAAU;E1C87Od;E0CzxPF;IA6VM,UAAU;IACV,UAAU;E1C+7Od;E0C7xPF;IzC8KI,iByCkLqC;E1Cg8OvC;E0ChyPF;IzC8KI,sByCoL0C;E1Ci8O5C;E0CnyPF;IzC8KI,iByCsLqC;E1Ck8OvC;E0CtyPF;IzC8KI,sByCwL0C;E1Cm8O5C;E0CzyPF;IzC8KI,iByC0LqC;E1Co8OvC;E0C5yPF;IzC8KI,iByC4LqC;E1Cq8OvC;E0C/yPF;IzC8KI,iByC8LqC;E1Cs8OvC;E0ClzPF;IzC8KI,iByCgMqC;E1Cu8OvC;E0CrzPF;IzC8KI,iByCkMqC;E1Cw8OvC;E0CxzPF;IAmXQ,UAAU;IACV,SAAiC;E1Cw8OvC;E0C5zPF;IzC8KI,gByCwM8D;E1Cy8OhE;E0C/zPF;IAmXQ,UAAU;IACV,eAAiC;E1C+8OvC;E0Cn0PF;IzC8KI,sByCwM8D;E1Cg9OhE;E0Ct0PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cs9OvC;E0C10PF;IzC8KI,uByCwM8D;E1Cu9OhE;E0C70PF;IAmXQ,UAAU;IACV,UAAiC;E1C69OvC;E0Cj1PF;IzC8KI,iByCwM8D;E1C89OhE;E0Cp1PF;IAmXQ,UAAU;IACV,gBAAiC;E1Co+OvC;E0Cx1PF;IzC8KI,uByCwM8D;E1Cq+OhE;E0C31PF;IAmXQ,UAAU;IACV,gBAAiC;E1C2+OvC;E0C/1PF;IzC8KI,uByCwM8D;E1C4+OhE;E0Cl2PF;IAmXQ,UAAU;IACV,UAAiC;E1Ck/OvC;E0Ct2PF;IzC8KI,iByCwM8D;E1Cm/OhE;E0Cz2PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cy/OvC;E0C72PF;IzC8KI,uByCwM8D;E1C0/OhE;E0Ch3PF;IAmXQ,UAAU;IACV,gBAAiC;E1CggPvC;E0Cp3PF;IzC8KI,uByCwM8D;E1CigPhE;E0Cv3PF;IAmXQ,UAAU;IACV,UAAiC;E1CugPvC;E0C33PF;IzC8KI,iByCwM8D;E1CwgPhE;E0C93PF;IAmXQ,UAAU;IACV,gBAAiC;E1C8gPvC;E0Cl4PF;IzC8KI,uByCwM8D;E1C+gPhE;E0Cr4PF;IAmXQ,UAAU;IACV,gBAAiC;E1CqhPvC;E0Cz4PF;IzC8KI,uByCwM8D;E1CshPhE;E0C54PF;IAmXQ,UAAU;IACV,WAAiC;E1C4hPvC;E0Ch5PF;IzC8KI,kByCwM8D;E1C6hPhE;AACF;;ACpwPI;EyChJJ;IAyXM,UAAU;IACV,YAAY;E1CgiPhB;E0C15PF;IA4XM,UAAU;IACV,WAAW;E1CiiPf;E0C95PF;IA+XM,UAAU;IACV,UAAU;E1CkiPd;E0Cl6PF;IAkYM,UAAU;IACV,eAAe;E1CmiPnB;E0Ct6PF;IAqYM,UAAU;IACV,UAAU;E1CoiPd;E0C16PF;IAwYM,UAAU;IACV,eAAe;E1CqiPnB;E0C96PF;IA2YM,UAAU;IACV,UAAU;E1CsiPd;E0Cl7PF;IA8YM,UAAU;IACV,UAAU;E1CuiPd;E0Ct7PF;IAiZM,UAAU;IACV,UAAU;E1CwiPd;E0C17PF;IAoZM,UAAU;IACV,UAAU;E1CyiPd;E0C97PF;IAuZM,UAAU;IACV,UAAU;E1C0iPd;E0Cl8PF;IzC8KI,iByC4OqC;E1C2iPvC;E0Cr8PF;IzC8KI,sByC8O0C;E1C4iP5C;E0Cx8PF;IzC8KI,iByCgPqC;E1C6iPvC;E0C38PF;IzC8KI,sByCkP0C;E1C8iP5C;E0C98PF;IzC8KI,iByCoPqC;E1C+iPvC;E0Cj9PF;IzC8KI,iByCsPqC;E1CgjPvC;E0Cp9PF;IzC8KI,iByCwPqC;E1CijPvC;E0Cv9PF;IzC8KI,iByC0PqC;E1CkjPvC;E0C19PF;IzC8KI,iByC4PqC;E1CmjPvC;E0C79PF;IA6aQ,UAAU;IACV,SAAiC;E1CmjPvC;E0Cj+PF;IzC8KI,gByCkQ8D;E1CojPhE;E0Cp+PF;IA6aQ,UAAU;IACV,eAAiC;E1C0jPvC;E0Cx+PF;IzC8KI,sByCkQ8D;E1C2jPhE;E0C3+PF;IA6aQ,UAAU;IACV,gBAAiC;E1CikPvC;E0C/+PF;IzC8KI,uByCkQ8D;E1CkkPhE;E0Cl/PF;IA6aQ,UAAU;IACV,UAAiC;E1CwkPvC;E0Ct/PF;IzC8KI,iByCkQ8D;E1CykPhE;E0Cz/PF;IA6aQ,UAAU;IACV,gBAAiC;E1C+kPvC;E0C7/PF;IzC8KI,uByCkQ8D;E1CglPhE;E0ChgQF;IA6aQ,UAAU;IACV,gBAAiC;E1CslPvC;E0CpgQF;IzC8KI,uByCkQ8D;E1CulPhE;E0CvgQF;IA6aQ,UAAU;IACV,UAAiC;E1C6lPvC;E0C3gQF;IzC8KI,iByCkQ8D;E1C8lPhE;E0C9gQF;IA6aQ,UAAU;IACV,gBAAiC;E1ComPvC;E0ClhQF;IzC8KI,uByCkQ8D;E1CqmPhE;E0CrhQF;IA6aQ,UAAU;IACV,gBAAiC;E1C2mPvC;E0CzhQF;IzC8KI,uByCkQ8D;E1C4mPhE;E0C5hQF;IA6aQ,UAAU;IACV,UAAiC;E1CknPvC;E0ChiQF;IzC8KI,iByCkQ8D;E1CmnPhE;E0CniQF;IA6aQ,UAAU;IACV,gBAAiC;E1CynPvC;E0CviQF;IzC8KI,uByCkQ8D;E1C0nPhE;E0C1iQF;IA6aQ,UAAU;IACV,gBAAiC;E1CgoPvC;E0C9iQF;IzC8KI,uByCkQ8D;E1CioPhE;E0CjjQF;IA6aQ,UAAU;IACV,WAAiC;E1CuoPvC;E0CrjQF;IzC8KI,kByCkQ8D;E1CwoPhE;AACF;;A0CvoPA;EzCpQI,sByChLgB;EzCgLhB,qByChLgB;EAublB,oBAvbkB;A1CikQpB;;A0C7oPA;EAKI,uBAzbgB;A1CqkQpB;;A0CjpPA;EAOI,qCAA4C;A1C8oPhD;;A0CrpPA;EAUI,uBAAuB;A1C+oP3B;;A0CzpPA;EzCpQI,eyCgRiC;EzChRjC,cyCiRiC;EACjC,aAAa;A1CipPjB;;A0C/pPA;EAgBM,SAAS;EACT,qBAAqB;A1CmpP3B;;A0CpqPA;EAmBM,qBAAqB;A1CqpP3B;;A0CxqPA;EAqBM,gBAAgB;A1CupPtB;;A0C5qPA;EAuBI,aAAa;A1CypPjB;;A0ChrPA;EAyBI,eAAe;A1C2pPnB;;A0CprPA;EA2BI,mBAAmB;A1C6pPvB;;ACpgQE;EyC4UF;IA+BM,aAAa;E1C8pPjB;AACF;;AC9/PE;EyCgUF;IAmCM,aAAa;E1CgqPjB;AACF;;A0C9pPE;EACE,oBAAY;EzC3SZ,yCyC4S2D;EzC5S3D,wCyC6S2D;A1CiqP/D;;A0CpqPE;EAKI,8BAA8B;EAC9B,+BAA+B;A1CmqPrC;;A0CzqPE;EASM,iBAAY;A1CoqPpB;;ACniQE;EyCsXA;IAYQ,iBAAY;E1CsqPpB;AACF;;ACriQE;EyCkXA;IAeQ,iBAAY;E1CyqPpB;AACF;;ACviQE;EyC8WA;IAkBQ,iBAAY;E1C4qPpB;AACF;;ACziQE;EyC0WA;IAqBQ,iBAAY;E1C+qPpB;AACF;;AC3iQE;EyCsWA;IAwBQ,iBAAY;E1CkrPpB;AACF;;AC5iQI;EyCiWF;IA2BQ,iBAAY;E1CqrPpB;AACF;;ACxiQI;EyCuVF;IA8BQ,iBAAY;E1CwrPpB;AACF;;ACziQI;EyCkVF;IAiCQ,iBAAY;E1C2rPpB;AACF;;ACriQI;EyCwUF;IAoCQ,iBAAY;E1C8rPpB;AACF;;A0CnuPE;EASM,oBAAY;A1C8tPpB;;AC7lQE;EyCsXA;IAYQ,oBAAY;E1CguPpB;AACF;;AC/lQE;EyCkXA;IAeQ,oBAAY;E1CmuPpB;AACF;;ACjmQE;EyC8WA;IAkBQ,oBAAY;E1CsuPpB;AACF;;ACnmQE;EyC0WA;IAqBQ,oBAAY;E1CyuPpB;AACF;;ACrmQE;EyCsWA;IAwBQ,oBAAY;E1C4uPpB;AACF;;ACtmQI;EyCiWF;IA2BQ,oBAAY;E1C+uPpB;AACF;;AClmQI;EyCuVF;IA8BQ,oBAAY;E1CkvPpB;AACF;;ACnmQI;EyCkVF;IAiCQ,oBAAY;E1CqvPpB;AACF;;AC/lQI;EyCwUF;IAoCQ,oBAAY;E1CwvPpB;AACF;;A0C7xPE;EASM,mBAAY;A1CwxPpB;;ACvpQE;EyCsXA;IAYQ,mBAAY;E1C0xPpB;AACF;;ACzpQE;EyCkXA;IAeQ,mBAAY;E1C6xPpB;AACF;;AC3pQE;EyC8WA;IAkBQ,mBAAY;E1CgyPpB;AACF;;AC7pQE;EyC0WA;IAqBQ,mBAAY;E1CmyPpB;AACF;;AC/pQE;EyCsWA;IAwBQ,mBAAY;E1CsyPpB;AACF;;AChqQI;EyCiWF;IA2BQ,mBAAY;E1CyyPpB;AACF;;AC5pQI;EyCuVF;IA8BQ,mBAAY;E1C4yPpB;AACF;;AC7pQI;EyCkVF;IAiCQ,mBAAY;E1C+yPpB;AACF;;ACzpQI;EyCwUF;IAoCQ,mBAAY;E1CkzPpB;AACF;;A0Cv1PE;EASM,oBAAY;A1Ck1PpB;;ACjtQE;EyCsXA;IAYQ,oBAAY;E1Co1PpB;AACF;;ACntQE;EyCkXA;IAeQ,oBAAY;E1Cu1PpB;AACF;;ACrtQE;EyC8WA;IAkBQ,oBAAY;E1C01PpB;AACF;;ACvtQE;EyC0WA;IAqBQ,oBAAY;E1C61PpB;AACF;;ACztQE;EyCsWA;IAwBQ,oBAAY;E1Cg2PpB;AACF;;AC1tQI;EyCiWF;IA2BQ,oBAAY;E1Cm2PpB;AACF;;ACttQI;EyCuVF;IA8BQ,oBAAY;E1Cs2PpB;AACF;;ACvtQI;EyCkVF;IAiCQ,oBAAY;E1Cy2PpB;AACF;;ACntQI;EyCwUF;IAoCQ,oBAAY;E1C42PpB;AACF;;A0Cj5PE;EASM,iBAAY;A1C44PpB;;AC3wQE;EyCsXA;IAYQ,iBAAY;E1C84PpB;AACF;;AC7wQE;EyCkXA;IAeQ,iBAAY;E1Ci5PpB;AACF;;AC/wQE;EyC8WA;IAkBQ,iBAAY;E1Co5PpB;AACF;;ACjxQE;EyC0WA;IAqBQ,iBAAY;E1Cu5PpB;AACF;;ACnxQE;EyCsWA;IAwBQ,iBAAY;E1C05PpB;AACF;;ACpxQI;EyCiWF;IA2BQ,iBAAY;E1C65PpB;AACF;;AChxQI;EyCuVF;IA8BQ,iBAAY;E1Cg6PpB;AACF;;ACjxQI;EyCkVF;IAiCQ,iBAAY;E1Cm6PpB;AACF;;AC7wQI;EyCwUF;IAoCQ,iBAAY;E1Cs6PpB;AACF;;A0C38PE;EASM,oBAAY;A1Cs8PpB;;ACr0QE;EyCsXA;IAYQ,oBAAY;E1Cw8PpB;AACF;;ACv0QE;EyCkXA;IAeQ,oBAAY;E1C28PpB;AACF;;ACz0QE;EyC8WA;IAkBQ,oBAAY;E1C88PpB;AACF;;AC30QE;EyC0WA;IAqBQ,oBAAY;E1Ci9PpB;AACF;;AC70QE;EyCsWA;IAwBQ,oBAAY;E1Co9PpB;AACF;;AC90QI;EyCiWF;IA2BQ,oBAAY;E1Cu9PpB;AACF;;AC10QI;EyCuVF;IA8BQ,oBAAY;E1C09PpB;AACF;;AC30QI;EyCkVF;IAiCQ,oBAAY;E1C69PpB;AACF;;ACv0QI;EyCwUF;IAoCQ,oBAAY;E1Cg+PpB;AACF;;A0CrgQE;EASM,mBAAY;A1CggQpB;;AC/3QE;EyCsXA;IAYQ,mBAAY;E1CkgQpB;AACF;;ACj4QE;EyCkXA;IAeQ,mBAAY;E1CqgQpB;AACF;;ACn4QE;EyC8WA;IAkBQ,mBAAY;E1CwgQpB;AACF;;ACr4QE;EyC0WA;IAqBQ,mBAAY;E1C2gQpB;AACF;;ACv4QE;EyCsWA;IAwBQ,mBAAY;E1C8gQpB;AACF;;ACx4QI;EyCiWF;IA2BQ,mBAAY;E1CihQpB;AACF;;ACp4QI;EyCuVF;IA8BQ,mBAAY;E1CohQpB;AACF;;ACr4QI;EyCkVF;IAiCQ,mBAAY;E1CuhQpB;AACF;;ACj4QI;EyCwUF;IAoCQ,mBAAY;E1C0hQpB;AACF;;A0C/jQE;EASM,oBAAY;A1C0jQpB;;ACz7QE;EyCsXA;IAYQ,oBAAY;E1C4jQpB;AACF;;AC37QE;EyCkXA;IAeQ,oBAAY;E1C+jQpB;AACF;;AC77QE;EyC8WA;IAkBQ,oBAAY;E1CkkQpB;AACF;;AC/7QE;EyC0WA;IAqBQ,oBAAY;E1CqkQpB;AACF;;ACj8QE;EyCsWA;IAwBQ,oBAAY;E1CwkQpB;AACF;;ACl8QI;EyCiWF;IA2BQ,oBAAY;E1C2kQpB;AACF;;AC97QI;EyCuVF;IA8BQ,oBAAY;E1C8kQpB;AACF;;AC/7QI;EyCkVF;IAiCQ,oBAAY;E1CilQpB;AACF;;AC37QI;EyCwUF;IAoCQ,oBAAY;E1ColQpB;AACF;;A0CznQE;EASM,iBAAY;A1ConQpB;;ACn/QE;EyCsXA;IAYQ,iBAAY;E1CsnQpB;AACF;;ACr/QE;EyCkXA;IAeQ,iBAAY;E1CynQpB;AACF;;ACv/QE;EyC8WA;IAkBQ,iBAAY;E1C4nQpB;AACF;;ACz/QE;EyC0WA;IAqBQ,iBAAY;E1C+nQpB;AACF;;AC3/QE;EyCsWA;IAwBQ,iBAAY;E1CkoQpB;AACF;;AC5/QI;EyCiWF;IA2BQ,iBAAY;E1CqoQpB;AACF;;ACx/QI;EyCuVF;IA8BQ,iBAAY;E1CwoQpB;AACF;;ACz/QI;EyCkVF;IAiCQ,iBAAY;E1C2oQpB;AACF;;ACr/QI;EyCwUF;IAoCQ,iBAAY;E1C8oQpB;AACF;;A2C3oRA;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,+BAAuB;EAAvB,4BAAuB;EAAvB,uBAAuB;A3C8oRzB;;A2CppRA;EASI,qBAA+B;EAC/B,sBAAgC;EAChC,oBAA8B;A3C+oRlC;;A2C1pRA;EAaM,uBAAiC;A3CipRvC;;A2C9pRA;EAeM,sBAjBgB;A3CoqRtB;;A2ClqRA;EAiBI,oBAAoB;A3CqpRxB;;A2CtqRA;EAmBI,gBArBkB;A3C4qRtB;;A2C1qRA;EAqBI,sBAAsB;A3CypR1B;;A2C9qRA;EAuBM,gCAAgC;A3C2pRtC;;AC5kRE;E0CtGF;IA2BM,aAAa;E3C4pRjB;E2CvrRF;IA8BQ,UAAU;IACV,eAA8B;E3C4pRpC;E2C3rRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgqRpC;E2C/rRF;IA8BQ,UAAU;IACV,UAA8B;E3CoqRpC;E2CnsRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwqRpC;E2CvsRF;IA8BQ,UAAU;IACV,gBAA8B;E3C4qRpC;E2C3sRF;IA8BQ,UAAU;IACV,UAA8B;E3CgrRpC;E2C/sRF;IA8BQ,UAAU;IACV,gBAA8B;E3CorRpC;E2CntRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwrRpC;E2CvtRF;IA8BQ,UAAU;IACV,UAA8B;E3C4rRpC;E2C3tRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgsRpC;E2C/tRF;IA8BQ,UAAU;IACV,gBAA8B;E3CosRpC;E2CnuRF;IA8BQ,UAAU;IACV,WAA8B;E3CwsRpC;AACF;;A4C5uRA,kBAAA;ACIE;EACE,uBAAwB;A7C4uR5B;;A6C3uRE;EAGI,yBAA0C;A7C4uRhD;;A6C3uRE;EACE,kCAAmC;A7C8uRvC;;A6CrvRE;EACE,yBAAwB;A7CwvR5B;;A6CvvRE;EAGI,uBAA0C;A7CwvRhD;;A6CvvRE;EACE,oCAAmC;A7C0vRvC;;A6CjwRE;EACE,4BAAwB;A7CowR5B;;A6CnwRE;EAGI,yBAA0C;A7CowRhD;;A6CnwRE;EACE,uCAAmC;A7CswRvC;;A6C7wRE;EACE,yBAAwB;A7CgxR5B;;A6C/wRE;EAGI,yBAA0C;A7CgxRhD;;A6C/wRE;EACE,oCAAmC;A7CkxRvC;;A6CzxRE;EACE,yBAAwB;A7C4xR5B;;A6C3xRE;EAGI,yBAA0C;A7C4xRhD;;A6C3xRE;EACE,oCAAmC;A7C8xRvC;;A6CzxRI;EACE,yBAA8B;A7C4xRpC;;A6C3xRI;EAGI,yBAAgD;A7C4xRxD;;A6C3xRI;EACE,oCAAyC;A7C8xR/C;;A6C5xRI;EACE,yBAA6B;A7C+xRnC;;A6C9xRI;EAGI,yBAAgD;A7C+xRxD;;A6C9xRI;EACE,oCAAwC;A7CiyR9C;;A6C7zRE;EACE,yBAAwB;A7Cg0R5B;;A6C/zRE;EAGI,yBAA0C;A7Cg0RhD;;A6C/zRE;EACE,oCAAmC;A7Ck0RvC;;A6C7zRI;EACE,yBAA8B;A7Cg0RpC;;A6C/zRI;EAGI,yBAAgD;A7Cg0RxD;;A6C/zRI;EACE,oCAAyC;A7Ck0R/C;;A6Ch0RI;EACE,yBAA6B;A7Cm0RnC;;A6Cl0RI;EAGI,yBAAgD;A7Cm0RxD;;A6Cl0RI;EACE,oCAAwC;A7Cq0R9C;;A6Cj2RE;EACE,yBAAwB;A7Co2R5B;;A6Cn2RE;EAGI,yBAA0C;A7Co2RhD;;A6Cn2RE;EACE,oCAAmC;A7Cs2RvC;;A6Cj2RI;EACE,yBAA8B;A7Co2RpC;;A6Cn2RI;EAGI,yBAAgD;A7Co2RxD;;A6Cn2RI;EACE,oCAAyC;A7Cs2R/C;;A6Cp2RI;EACE,yBAA6B;A7Cu2RnC;;A6Ct2RI;EAGI,yBAAgD;A7Cu2RxD;;A6Ct2RI;EACE,oCAAwC;A7Cy2R9C;;A6Cr4RE;EACE,yBAAwB;A7Cw4R5B;;A6Cv4RE;EAGI,yBAA0C;A7Cw4RhD;;A6Cv4RE;EACE,oCAAmC;A7C04RvC;;A6Cr4RI;EACE,yBAA8B;A7Cw4RpC;;A6Cv4RI;EAGI,yBAAgD;A7Cw4RxD;;A6Cv4RI;EACE,oCAAyC;A7C04R/C;;A6Cx4RI;EACE,yBAA6B;A7C24RnC;;A6C14RI;EAGI,yBAAgD;A7C24RxD;;A6C14RI;EACE,oCAAwC;A7C64R9C;;A6Cz6RE;EACE,yBAAwB;A7C46R5B;;A6C36RE;EAGI,yBAA0C;A7C46RhD;;A6C36RE;EACE,oCAAmC;A7C86RvC;;A6Cz6RI;EACE,yBAA8B;A7C46RpC;;A6C36RI;EAGI,yBAAgD;A7C46RxD;;A6C36RI;EACE,oCAAyC;A7C86R/C;;A6C56RI;EACE,yBAA6B;A7C+6RnC;;A6C96RI;EAGI,yBAAgD;A7C+6RxD;;A6C96RI;EACE,oCAAwC;A7Ci7R9C;;A6C78RE;EACE,yBAAwB;A7Cg9R5B;;A6C/8RE;EAGI,yBAA0C;A7Cg9RhD;;A6C/8RE;EACE,oCAAmC;A7Ck9RvC;;A6C78RI;EACE,yBAA8B;A7Cg9RpC;;A6C/8RI;EAGI,yBAAgD;A7Cg9RxD;;A6C/8RI;EACE,oCAAyC;A7Ck9R/C;;A6Ch9RI;EACE,yBAA6B;A7Cm9RnC;;A6Cl9RI;EAGI,yBAAgD;A7Cm9RxD;;A6Cl9RI;EACE,oCAAwC;A7Cq9R9C;;A6Cl9RE;EACE,yBAAwB;A7Cq9R5B;;A6Cp9RE;EACE,oCAAmC;A7Cu9RvC;;A6C19RE;EACE,yBAAwB;A7C69R5B;;A6C59RE;EACE,oCAAmC;A7C+9RvC;;A6Cl+RE;EACE,yBAAwB;A7Cq+R5B;;A6Cp+RE;EACE,oCAAmC;A7Cu+RvC;;A6C1+RE;EACE,yBAAwB;A7C6+R5B;;A6C5+RE;EACE,oCAAmC;A7C++RvC;;A6Cl/RE;EACE,yBAAwB;A7Cq/R5B;;A6Cp/RE;EACE,oCAAmC;A7Cu/RvC;;A6C1/RE;EACE,yBAAwB;A7C6/R5B;;A6C5/RE;EACE,oCAAmC;A7C+/RvC;;A6ClgSE;EACE,yBAAwB;A7CqgS5B;;A6CpgSE;EACE,oCAAmC;A7CugSvC;;A6C1gSE;EACE,4BAAwB;A7C6gS5B;;A6C5gSE;EACE,uCAAmC;A7C+gSvC;;A6ClhSE;EACE,yBAAwB;A7CqhS5B;;A6CphSE;EACE,oCAAmC;A7CuhSvC;;A8C3jSE;EACE,8BAAiC;A9C8jSrC;;A8C/jSE;EACE,sCAAiC;A9CkkSrC;;A8CnkSE;EACE,iCAAiC;A9CskSrC;;A8CvkSE;EACE,yCAAiC;A9C0kSrC;;A8CtkSE;EACE,4BAA4B;A9CykShC;;A8C1kSE;EACE,0BAA4B;A9C6kShC;;A8C9kSE;EACE,kCAA4B;A9CilShC;;A8C7kSE;EACE,sCAAkC;A9CglStC;;A8CjlSE;EACE,oCAAkC;A9ColStC;;A8CrlSE;EACE,kCAAkC;A9CwlStC;;A8CzlSE;EACE,yCAAkC;A9C4lStC;;A8C7lSE;EACE,wCAAkC;A9CgmStC;;A8CjmSE;EACE,wCAAkC;A9ComStC;;A8CrmSE;EACE,iCAAkC;A9CwmStC;;A8CzmSE;EACE,+BAAkC;A9C4mStC;;A8C7mSE;EACE,gCAAkC;A9CgnStC;;A8CjnSE;EACE,iCAAkC;A9ConStC;;A8ChnSE;EACE,oCAAgC;A9CmnSpC;;A8CpnSE;EACE,kCAAgC;A9CunSpC;;A8CxnSE;EACE,gCAAgC;A9C2nSpC;;A8C5nSE;EACE,uCAAgC;A9C+nSpC;;A8ChoSE;EACE,sCAAgC;A9CmoSpC;;A8CpoSE;EACE,sCAAgC;A9CuoSpC;;A8CxoSE;EACE,iCAAgC;A9C2oSpC;;A8C5oSE;EACE,+BAAgC;A9C+oSpC;;A8ChpSE;EACE,6BAAgC;A9CmpSpC;;A8CppSE;EACE,kCAAgC;A9CupSpC;;A8CnpSE;EACE,+BAA8B;A9CspSlC;;A8CvpSE;EACE,kCAA8B;A9C0pSlC;;A8C3pSE;EACE,gCAA8B;A9C8pSlC;;A8C/pSE;EACE,8BAA8B;A9CkqSlC;;A8CnqSE;EACE,gCAA8B;A9CsqSlC;;A8CvqSE;EACE,6BAA8B;A9C0qSlC;;A8C3qSE;EACE,2BAA8B;A9C8qSlC;;A8C/qSE;EACE,kCAA8B;A9CkrSlC;;A8CnrSE;EACE,gCAA8B;A9CsrSlC;;A8ClrSE;EACE,2BAA6B;A9CqrSjC;;A8CtrSE;EACE,iCAA6B;A9CyrSjC;;A8C1rSE;EACE,+BAA6B;A9C6rSjC;;A8C9rSE;EACE,6BAA6B;A9CisSjC;;A8ClsSE;EACE,+BAA6B;A9CqsSjC;;A8CtsSE;EACE,8BAA6B;A9CysSjC;;A8CpsSI;EACE,uBAAqC;A9CusS3C;;A8CxsSI;EACE,uBAAqC;A9C2sS3C;;A8C5sSI;EACE,uBAAqC;A9C+sS3C;;A8ChtSI;EACE,uBAAqC;A9CmtS3C;;A8CptSI;EACE,uBAAqC;A9CutS3C;;A8CxtSI;EACE,uBAAqC;A9C2tS3C;;A8C5tSI;EACE,yBAAqC;A9C+tS3C;;A8ChuSI;EACE,yBAAqC;A9CmuS3C;;A8CpuSI;EACE,yBAAqC;A9CuuS3C;;A8CxuSI;EACE,yBAAqC;A9C2uS3C;;A8C5uSI;EACE,yBAAqC;A9C+uS3C;;A8ChvSI;EACE,yBAAqC;A9CmvS3C;;AClxSE;EACE,WAAW;EACX,YAAY;EACZ,cAAc;ADqxSlB;;A+CtxSA;EACE,sBAAsB;A/CyxSxB;;A+CvxSA;EACE,uBAAuB;A/C0xSzB;;AgDjySA;EACE,2BAA2B;AhDoyS7B;;AgDlySA;EACE,2BAA2B;AhDqyS7B;;AgDnySA;EACE,0BAA0B;EAC1B,8BAA8B;AhDsyShC;;AiDhzSA;EACE,2BAA2B;AjDmzS7B;;AkD/ySA;EACE,6BAA6B;AlDkzS/B;;AmDxzSA;EACE,oBAAoB;AnD2zStB;;AmDzzSA;EACE,qBAAqB;AnD4zSvB;;AmDjzSI;EACE,oBAA+B;AnDozSrC;;AmDjzSM;EACE,wBAA8C;AnDozStD;;AmDrzSM;EACE,0BAA8C;AnDwzStD;;AmDzzSM;EACE,2BAA8C;AnD4zStD;;AmD7zSM;EACE,yBAA8C;AnDg0StD;;AmD7zSM;EACE,yBAAyC;EACzC,0BAA2C;AnDg0SnD;;AmD7zSM;EACE,wBAAuC;EACvC,2BAA6C;AnDg0SrD;;AmD/0SI;EACE,0BAA+B;AnDk1SrC;;AmD/0SM;EACE,8BAA8C;AnDk1StD;;AmDn1SM;EACE,gCAA8C;AnDs1StD;;AmDv1SM;EACE,iCAA8C;AnD01StD;;AmD31SM;EACE,+BAA8C;AnD81StD;;AmD31SM;EACE,+BAAyC;EACzC,gCAA2C;AnD81SnD;;AmD31SM;EACE,8BAAuC;EACvC,iCAA6C;AnD81SrD;;AmD72SI;EACE,yBAA+B;AnDg3SrC;;AmD72SM;EACE,6BAA8C;AnDg3StD;;AmDj3SM;EACE,+BAA8C;AnDo3StD;;AmDr3SM;EACE,gCAA8C;AnDw3StD;;AmDz3SM;EACE,8BAA8C;AnD43StD;;AmDz3SM;EACE,8BAAyC;EACzC,+BAA2C;AnD43SnD;;AmDz3SM;EACE,6BAAuC;EACvC,gCAA6C;AnD43SrD;;AmD34SI;EACE,0BAA+B;AnD84SrC;;AmD34SM;EACE,8BAA8C;AnD84StD;;AmD/4SM;EACE,gCAA8C;AnDk5StD;;AmDn5SM;EACE,iCAA8C;AnDs5StD;;AmDv5SM;EACE,+BAA8C;AnD05StD;;AmDv5SM;EACE,+BAAyC;EACzC,gCAA2C;AnD05SnD;;AmDv5SM;EACE,8BAAuC;EACvC,iCAA6C;AnD05SrD;;AmDz6SI;EACE,uBAA+B;AnD46SrC;;AmDz6SM;EACE,2BAA8C;AnD46StD;;AmD76SM;EACE,6BAA8C;AnDg7StD;;AmDj7SM;EACE,8BAA8C;AnDo7StD;;AmDr7SM;EACE,4BAA8C;AnDw7StD;;AmDr7SM;EACE,4BAAyC;EACzC,6BAA2C;AnDw7SnD;;AmDr7SM;EACE,2BAAuC;EACvC,8BAA6C;AnDw7SrD;;AmDv8SI;EACE,yBAA+B;AnD08SrC;;AmDv8SM;EACE,6BAA8C;AnD08StD;;AmD38SM;EACE,+BAA8C;AnD88StD;;AmD/8SM;EACE,gCAA8C;AnDk9StD;;AmDn9SM;EACE,8BAA8C;AnDs9StD;;AmDn9SM;EACE,8BAAyC;EACzC,+BAA2C;AnDs9SnD;;AmDn9SM;EACE,6BAAuC;EACvC,gCAA6C;AnDs9SrD;;AmDr+SI;EACE,uBAA+B;AnDw+SrC;;AmDr+SM;EACE,2BAA8C;AnDw+StD;;AmDz+SM;EACE,6BAA8C;AnD4+StD;;AmD7+SM;EACE,8BAA8C;AnDg/StD;;AmDj/SM;EACE,4BAA8C;AnDo/StD;;AmDj/SM;EACE,4BAAyC;EACzC,6BAA2C;AnDo/SnD;;AmDj/SM;EACE,2BAAuC;EACvC,8BAA6C;AnDo/SrD;;AmDngTI;EACE,uBAA+B;AnDsgTrC;;AmDngTM;EACE,2BAA8C;AnDsgTtD;;AmDvgTM;EACE,6BAA8C;AnD0gTtD;;AmD3gTM;EACE,8BAA8C;AnD8gTtD;;AmD/gTM;EACE,4BAA8C;AnDkhTtD;;AmD/gTM;EACE,4BAAyC;EACzC,6BAA2C;AnDkhTnD;;AmD/gTM;EACE,2BAAuC;EACvC,8BAA6C;AnDkhTrD;;AmDjiTI;EACE,qBAA+B;AnDoiTrC;;AmDjiTM;EACE,yBAA8C;AnDoiTtD;;AmDriTM;EACE,2BAA8C;AnDwiTtD;;AmDziTM;EACE,4BAA8C;AnD4iTtD;;AmD7iTM;EACE,0BAA8C;AnDgjTtD;;AmD7iTM;EACE,0BAAyC;EACzC,2BAA2C;AnDgjTnD;;AmD7iTM;EACE,yBAAuC;EACvC,4BAA6C;AnDgjTrD;;AmD/jTI;EACE,2BAA+B;AnDkkTrC;;AmD/jTM;EACE,+BAA8C;AnDkkTtD;;AmDnkTM;EACE,iCAA8C;AnDskTtD;;AmDvkTM;EACE,kCAA8C;AnD0kTtD;;AmD3kTM;EACE,gCAA8C;AnD8kTtD;;AmD3kTM;EACE,gCAAyC;EACzC,iCAA2C;AnD8kTnD;;AmD3kTM;EACE,+BAAuC;EACvC,kCAA6C;AnD8kTrD;;AmD7lTI;EACE,0BAA+B;AnDgmTrC;;AmD7lTM;EACE,8BAA8C;AnDgmTtD;;AmDjmTM;EACE,gCAA8C;AnDomTtD;;AmDrmTM;EACE,iCAA8C;AnDwmTtD;;AmDzmTM;EACE,+BAA8C;AnD4mTtD;;AmDzmTM;EACE,+BAAyC;EACzC,gCAA2C;AnD4mTnD;;AmDzmTM;EACE,8BAAuC;EACvC,iCAA6C;AnD4mTrD;;AmD3nTI;EACE,2BAA+B;AnD8nTrC;;AmD3nTM;EACE,+BAA8C;AnD8nTtD;;AmD/nTM;EACE,iCAA8C;AnDkoTtD;;AmDnoTM;EACE,kCAA8C;AnDsoTtD;;AmDvoTM;EACE,gCAA8C;AnD0oTtD;;AmDvoTM;EACE,gCAAyC;EACzC,iCAA2C;AnD0oTnD;;AmDvoTM;EACE,+BAAuC;EACvC,kCAA6C;AnD0oTrD;;AmDzpTI;EACE,wBAA+B;AnD4pTrC;;AmDzpTM;EACE,4BAA8C;AnD4pTtD;;AmD7pTM;EACE,8BAA8C;AnDgqTtD;;AmDjqTM;EACE,+BAA8C;AnDoqTtD;;AmDrqTM;EACE,6BAA8C;AnDwqTtD;;AmDrqTM;EACE,6BAAyC;EACzC,8BAA2C;AnDwqTnD;;AmDrqTM;EACE,4BAAuC;EACvC,+BAA6C;AnDwqTrD;;AmDvrTI;EACE,0BAA+B;AnD0rTrC;;AmDvrTM;EACE,8BAA8C;AnD0rTtD;;AmD3rTM;EACE,gCAA8C;AnD8rTtD;;AmD/rTM;EACE,iCAA8C;AnDksTtD;;AmDnsTM;EACE,+BAA8C;AnDssTtD;;AmDnsTM;EACE,+BAAyC;EACzC,gCAA2C;AnDssTnD;;AmDnsTM;EACE,8BAAuC;EACvC,iCAA6C;AnDssTrD;;AmDrtTI;EACE,wBAA+B;AnDwtTrC;;AmDrtTM;EACE,4BAA8C;AnDwtTtD;;AmDztTM;EACE,8BAA8C;AnD4tTtD;;AmD7tTM;EACE,+BAA8C;AnDguTtD;;AmDjuTM;EACE,6BAA8C;AnDouTtD;;AmDjuTM;EACE,6BAAyC;EACzC,8BAA2C;AnDouTnD;;AmDjuTM;EACE,4BAAuC;EACvC,+BAA6C;AnDouTrD;;AmDnvTI;EACE,wBAA+B;AnDsvTrC;;AmDnvTM;EACE,4BAA8C;AnDsvTtD;;AmDvvTM;EACE,8BAA8C;AnD0vTtD;;AmD3vTM;EACE,+BAA8C;AnD8vTtD;;AmD/vTM;EACE,6BAA8C;AnDkwTtD;;AmD/vTM;EACE,6BAAyC;EACzC,8BAA2C;AnDkwTnD;;AmD/vTM;EACE,4BAAuC;EACvC,+BAA6C;AnDkwTrD;;AoD3xTI;EACE,0BAA2B;ApD8xTjC;;AoD/xTI;EACE,4BAA2B;ApDkyTjC;;AoDnyTI;EACE,0BAA2B;ApDsyTjC;;AoDvyTI;EACE,4BAA2B;ApD0yTjC;;AoD3yTI;EACE,6BAA2B;ApD8yTjC;;AoD/yTI;EACE,0BAA2B;ApDkzTjC;;AoDnzTI;EACE,6BAA2B;ApDszTjC;;ACttTE;EmDjGE;IACE,0BAA2B;EpD2zT/B;EoD5zTE;IACE,4BAA2B;EpD8zT/B;EoD/zTE;IACE,0BAA2B;EpDi0T/B;EoDl0TE;IACE,4BAA2B;EpDo0T/B;EoDr0TE;IACE,6BAA2B;EpDu0T/B;EoDx0TE;IACE,0BAA2B;EpD00T/B;EoD30TE;IACE,6BAA2B;EpD60T/B;AACF;;AC1uTE;EmDrGE;IACE,0BAA2B;EpDm1T/B;EoDp1TE;IACE,4BAA2B;EpDs1T/B;EoDv1TE;IACE,0BAA2B;EpDy1T/B;EoD11TE;IACE,4BAA2B;EpD41T/B;EoD71TE;IACE,6BAA2B;EpD+1T/B;EoDh2TE;IACE,0BAA2B;EpDk2T/B;EoDn2TE;IACE,6BAA2B;EpDq2T/B;AACF;;AC1vTE;EmD7GE;IACE,0BAA2B;EpD22T/B;EoD52TE;IACE,4BAA2B;EpD82T/B;EoD/2TE;IACE,0BAA2B;EpDi3T/B;EoDl3TE;IACE,4BAA2B;EpDo3T/B;EoDr3TE;IACE,6BAA2B;EpDu3T/B;EoDx3TE;IACE,0BAA2B;EpD03T/B;EoD33TE;IACE,6BAA2B;EpD63T/B;AACF;;AC9wTE;EmDjHE;IACE,0BAA2B;EpDm4T/B;EoDp4TE;IACE,4BAA2B;EpDs4T/B;EoDv4TE;IACE,0BAA2B;EpDy4T/B;EoD14TE;IACE,4BAA2B;EpD44T/B;EoD74TE;IACE,6BAA2B;EpD+4T/B;EoDh5TE;IACE,0BAA2B;EpDk5T/B;EoDn5TE;IACE,6BAA2B;EpDq5T/B;AACF;;ACvxTI;EmDhIA;IACE,0BAA2B;EpD25T/B;EoD55TE;IACE,4BAA2B;EpD85T/B;EoD/5TE;IACE,0BAA2B;EpDi6T/B;EoDl6TE;IACE,4BAA2B;EpDo6T/B;EoDr6TE;IACE,6BAA2B;EpDu6T/B;EoDx6TE;IACE,0BAA2B;EpD06T/B;EoD36TE;IACE,6BAA2B;EpD66T/B;AACF;;AChyTI;EmD/IA;IACE,0BAA2B;EpDm7T/B;EoDp7TE;IACE,4BAA2B;EpDs7T/B;EoDv7TE;IACE,0BAA2B;EpDy7T/B;EoD17TE;IACE,4BAA2B;EpD47T/B;EoD77TE;IACE,6BAA2B;EpD+7T/B;EoDh8TE;IACE,0BAA2B;EpDk8T/B;EoDn8TE;IACE,6BAA2B;EpDq8T/B;AACF;;AoD76TE;EACE,6BAAqC;ApDg7TzC;;AoDj7TE;EACE,8BAAqC;ApDo7TzC;;AoDr7TE;EACE,2BAAqC;ApDw7TzC;;AoDz7TE;EACE,4BAAqC;ApD47TzC;;ACt3TE;EmDlEE;IACE,6BAAqC;EpD47TzC;AACF;;ACx3TE;EmDnEE;IACE,6BAAqC;EpD+7TzC;AACF;;AC13TE;EmDpEE;IACE,6BAAqC;EpDk8TzC;AACF;;AC53TE;EmDrEE;IACE,6BAAqC;EpDq8TzC;AACF;;AC93TE;EmDtEE;IACE,6BAAqC;EpDw8TzC;AACF;;AC/3TI;EmDxEA;IACE,6BAAqC;EpD28TzC;AACF;;AC33TI;EmD/EA;IACE,6BAAqC;EpD88TzC;AACF;;AC53TI;EmDjFA;IACE,6BAAqC;EpDi9TzC;AACF;;ACx3TI;EmDxFA;IACE,6BAAqC;EpDo9TzC;AACF;;AC56TE;EmDlEE;IACE,8BAAqC;EpDk/TzC;AACF;;AC96TE;EmDnEE;IACE,8BAAqC;EpDq/TzC;AACF;;ACh7TE;EmDpEE;IACE,8BAAqC;EpDw/TzC;AACF;;ACl7TE;EmDrEE;IACE,8BAAqC;EpD2/TzC;AACF;;ACp7TE;EmDtEE;IACE,8BAAqC;EpD8/TzC;AACF;;ACr7TI;EmDxEA;IACE,8BAAqC;EpDigUzC;AACF;;ACj7TI;EmD/EA;IACE,8BAAqC;EpDogUzC;AACF;;ACl7TI;EmDjFA;IACE,8BAAqC;EpDugUzC;AACF;;AC96TI;EmDxFA;IACE,8BAAqC;EpD0gUzC;AACF;;ACl+TE;EmDlEE;IACE,2BAAqC;EpDwiUzC;AACF;;ACp+TE;EmDnEE;IACE,2BAAqC;EpD2iUzC;AACF;;ACt+TE;EmDpEE;IACE,2BAAqC;EpD8iUzC;AACF;;ACx+TE;EmDrEE;IACE,2BAAqC;EpDijUzC;AACF;;AC1+TE;EmDtEE;IACE,2BAAqC;EpDojUzC;AACF;;AC3+TI;EmDxEA;IACE,2BAAqC;EpDujUzC;AACF;;ACv+TI;EmD/EA;IACE,2BAAqC;EpD0jUzC;AACF;;ACx+TI;EmDjFA;IACE,2BAAqC;EpD6jUzC;AACF;;ACp+TI;EmDxFA;IACE,2BAAqC;EpDgkUzC;AACF;;ACxhUE;EmDlEE;IACE,4BAAqC;EpD8lUzC;AACF;;AC1hUE;EmDnEE;IACE,4BAAqC;EpDimUzC;AACF;;AC5hUE;EmDpEE;IACE,4BAAqC;EpDomUzC;AACF;;AC9hUE;EmDrEE;IACE,4BAAqC;EpDumUzC;AACF;;AChiUE;EmDtEE;IACE,4BAAqC;EpD0mUzC;AACF;;ACjiUI;EmDxEA;IACE,4BAAqC;EpD6mUzC;AACF;;AC7hUI;EmD/EA;IACE,4BAAqC;EpDgnUzC;AACF;;AC9hUI;EmDjFA;IACE,4BAAqC;EpDmnUzC;AACF;;AC1hUI;EmDxFA;IACE,4BAAqC;EpDsnUzC;AACF;;AoDrnUA;EACE,qCAAqC;ApDwnUvC;;AoDtnUA;EACE,oCAAoC;ApDynUtC;;AoDvnUA;EACE,oCAAoC;ApD0nUtC;;AoDxnUA;EACE,6BAA6B;ApD2nU/B;;AoDznUA;EACE,qCAAqC;ApD4nUvC;;AoD1nUA;EACE,2BAAqC;ApD6nUvC;;AoD5nUA;EACE,2BAAsC;ApD+nUxC;;AoD9nUA;EACE,2BAAsC;ApDioUxC;;AoDhoUA;EACE,2BAAwC;ApDmoU1C;;AoDloUA;EACE,2BAAoC;ApDqoUtC;;AoDnoUA;EACE,+LAAuC;ApDsoUzC;;AoDpoUA;EACE,+LAAyC;ApDuoU3C;;AoDroUA;EACE,+LAA0C;ApDwoU5C;;AoDtoUA;EACE,iCAAyC;ApDyoU3C;;AoDvoUA;EACE,iCAAoC;ApD0oUtC;;AqD3uUE;EACE,yBAA+B;ArD8uUnC;;AC9oUE;EoD9FE;IACE,yBAA+B;ErDgvUnC;AACF;;AChpUE;EoD/FE;IACE,yBAA+B;ErDmvUnC;AACF;;AClpUE;EoDhGE;IACE,yBAA+B;ErDsvUnC;AACF;;ACppUE;EoDjGE;IACE,yBAA+B;ErDyvUnC;AACF;;ACtpUE;EoDlGE;IACE,yBAA+B;ErD4vUnC;AACF;;ACvpUI;EoDpGA;IACE,yBAA+B;ErD+vUnC;AACF;;ACnpUI;EoD3GA;IACE,yBAA+B;ErDkwUnC;AACF;;ACppUI;EoD7GA;IACE,yBAA+B;ErDqwUnC;AACF;;AChpUI;EoDpHA;IACE,yBAA+B;ErDwwUnC;AACF;;AqDryUE;EACE,wBAA+B;ArDwyUnC;;ACxsUE;EoD9FE;IACE,wBAA+B;ErD0yUnC;AACF;;AC1sUE;EoD/FE;IACE,wBAA+B;ErD6yUnC;AACF;;AC5sUE;EoDhGE;IACE,wBAA+B;ErDgzUnC;AACF;;AC9sUE;EoDjGE;IACE,wBAA+B;ErDmzUnC;AACF;;AChtUE;EoDlGE;IACE,wBAA+B;ErDszUnC;AACF;;ACjtUI;EoDpGA;IACE,wBAA+B;ErDyzUnC;AACF;;AC7sUI;EoD3GA;IACE,wBAA+B;ErD4zUnC;AACF;;AC9sUI;EoD7GA;IACE,wBAA+B;ErD+zUnC;AACF;;AC1sUI;EoDpHA;IACE,wBAA+B;ErDk0UnC;AACF;;AqD/1UE;EACE,0BAA+B;ArDk2UnC;;AClwUE;EoD9FE;IACE,0BAA+B;ErDo2UnC;AACF;;ACpwUE;EoD/FE;IACE,0BAA+B;ErDu2UnC;AACF;;ACtwUE;EoDhGE;IACE,0BAA+B;ErD02UnC;AACF;;ACxwUE;EoDjGE;IACE,0BAA+B;ErD62UnC;AACF;;AC1wUE;EoDlGE;IACE,0BAA+B;ErDg3UnC;AACF;;AC3wUI;EoDpGA;IACE,0BAA+B;ErDm3UnC;AACF;;ACvwUI;EoD3GA;IACE,0BAA+B;ErDs3UnC;AACF;;ACxwUI;EoD7GA;IACE,0BAA+B;ErDy3UnC;AACF;;ACpwUI;EoDpHA;IACE,0BAA+B;ErD43UnC;AACF;;AqDz5UE;EACE,gCAA+B;ArD45UnC;;AC5zUE;EoD9FE;IACE,gCAA+B;ErD85UnC;AACF;;AC9zUE;EoD/FE;IACE,gCAA+B;ErDi6UnC;AACF;;ACh0UE;EoDhGE;IACE,gCAA+B;ErDo6UnC;AACF;;ACl0UE;EoDjGE;IACE,gCAA+B;ErDu6UnC;AACF;;ACp0UE;EoDlGE;IACE,gCAA+B;ErD06UnC;AACF;;ACr0UI;EoDpGA;IACE,gCAA+B;ErD66UnC;AACF;;ACj0UI;EoD3GA;IACE,gCAA+B;ErDg7UnC;AACF;;ACl0UI;EoD7GA;IACE,gCAA+B;ErDm7UnC;AACF;;AC9zUI;EoDpHA;IACE,gCAA+B;ErDs7UnC;AACF;;AqDn9UE;EACE,+BAA+B;ArDs9UnC;;ACt3UE;EoD9FE;IACE,+BAA+B;ErDw9UnC;AACF;;ACx3UE;EoD/FE;IACE,+BAA+B;ErD29UnC;AACF;;AC13UE;EoDhGE;IACE,+BAA+B;ErD89UnC;AACF;;AC53UE;EoDjGE;IACE,+BAA+B;ErDi+UnC;AACF;;AC93UE;EoDlGE;IACE,+BAA+B;ErDo+UnC;AACF;;AC/3UI;EoDpGA;IACE,+BAA+B;ErDu+UnC;AACF;;AC33UI;EoD3GA;IACE,+BAA+B;ErD0+UnC;AACF;;AC53UI;EoD7GA;IACE,+BAA+B;ErD6+UnC;AACF;;ACx3UI;EoDpHA;IACE,+BAA+B;ErDg/UnC;AACF;;AqD/+UA;EACE,wBAAwB;ArDk/U1B;;AqDh/UA;EACE,uBAAuB;EACvB,iCAAiC;EACjC,yBAAyB;EACzB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,8BAA8B;EAC9B,wBAAwB;ArDm/U1B;;AC37UE;EoDrDA;IACE,wBAAwB;ErDo/U1B;AACF;;AC77UE;EoDrDA;IACE,wBAAwB;ErDs/U1B;AACF;;AC/7UE;EoDrDA;IACE,wBAAwB;ErDw/U1B;AACF;;ACj8UE;EoDrDA;IACE,wBAAwB;ErD0/U1B;AACF;;ACn8UE;EoDrDA;IACE,wBAAwB;ErD4/U1B;AACF;;ACp8UI;EoDtDF;IACE,wBAAwB;ErD8/U1B;AACF;;ACh8UI;EoD5DF;IACE,wBAAwB;ErDggV1B;AACF;;ACj8UI;EoD7DF;IACE,wBAAwB;ErDkgV1B;AACF;;AC77UI;EoDnEF;IACE,wBAAwB;ErDogV1B;AACF;;AqDngVA;EACE,6BAA6B;ArDsgV/B;;ACr/UE;EoDdA;IACE,6BAA6B;ErDugV/B;AACF;;ACv/UE;EoDdA;IACE,6BAA6B;ErDygV/B;AACF;;ACz/UE;EoDdA;IACE,6BAA6B;ErD2gV/B;AACF;;AC3/UE;EoDdA;IACE,6BAA6B;ErD6gV/B;AACF;;AC7/UE;EoDdA;IACE,6BAA6B;ErD+gV/B;AACF;;AC9/UI;EoDfF;IACE,6BAA6B;ErDihV/B;AACF;;AC1/UI;EoDrBF;IACE,6BAA6B;ErDmhV/B;AACF;;AC3/UI;EoDtBF;IACE,6BAA6B;ErDqhV/B;AACF;;ACv/UI;EoD5BF;IACE,6BAA6B;ErDuhV/B;AACF;;AsDjpVA,iBAAA;ACWA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AvD0oVhC;;AuD9oVA;EAMI,gBAAgB;AvD4oVpB;;AuDlpVA;EASM,mBAAmB;AvD6oVzB;;AuDtpVA;EAeM,uBxDXyB;EwDYzB,cxDzBuB;ACoqV7B;;AuD3pVA;;EAmBQ,cAAc;AvD6oVtB;;AuDhqVA;EAqBQ,cxD9BqB;AC6qV7B;;AuDpqVA;EAuBQ,4BxDhCqB;ACirV7B;;AuDxqVA;;EA0BU,cxDnCmB;ACsrV7B;;ACtkVE;EsDvGF;IA6BU,uBxDzBqB;EC8qV7B;AACF;;AuDnrVA;;EAgCQ,4BxDzCqB;ACisV7B;;AuDxrVA;;;EAqCU,yB7C4DuB;E6C3DvB,cxD/CmB;ACwsV7B;;AuD/rVA;EAyCU,cxDlDmB;EwDmDnB,YAAY;AvD0pVtB;;AuDpsVA;EA4CY,UAAU;AvD4pVtB;;AuDxsVA;EA+CY,uBAAwB;EACxB,UAAU;AvD6pVtB;;AuD7sVA;EAoDY,cxD7DiB;AC0tV7B;;AuDjtVA;EAsDc,uCxD/De;AC8tV7B;;AuDrtVA;EA0Dc,yBxDnEe;EwDoEf,qBxDpEe;EwDqEf,YxDxDiB;ACutV/B;;AuD3tVA;EAkEU,4EAAyG;AvD6pVnH;;ACpoVE;EsD3FF;IAqEc,4EAAyG;EvD+pVrH;AACF;;AuDruVA;EAeM,yBxDxBuB;EwDyBvB,YxDZyB;ACsuV/B;;AuD1uVA;;EAmBQ,cAAc;AvD4tVtB;;AuD/uVA;EAqBQ,YxDjBuB;AC+uV/B;;AuDnvVA;EAuBQ,+BxDnBuB;ACmvV/B;;AuDvvVA;;EA0BU,YxDtBqB;ACwvV/B;;ACrpVE;EsDvGF;IA6BU,yBxDtCmB;EC0wV3B;AACF;;AuDlwVA;;EAgCQ,+BxD5BuB;ACmwV/B;;AuDvwVA;;;EAqCU,uB7C4DuB;E6C3DvB,YxDlCqB;AC0wV/B;;AuD9wVA;EAyCU,YxDrCqB;EwDsCrB,YAAY;AvDyuVtB;;AuDnxVA;EA4CY,UAAU;AvD2uVtB;;AuDvxVA;EA+CY,yBAAwB;EACxB,UAAU;AvD4uVtB;;AuD5xVA;EAoDY,YxDhDmB;AC4xV/B;;AuDhyVA;EAsDc,uCxD/De;AC6yV7B;;AuDpyVA;EA0Dc,uBxDtDiB;EwDuDjB,mBxDvDiB;EwDwDjB,cxDrEe;ACmzV7B;;AuD1yVA;EAkEU,8EAAyG;AvD4uVnH;;ACntVE;EsD3FF;IAqEc,8EAAyG;EvD8uVrH;AACF;;AuDpzVA;EAeM,4BxDbwB;EwDcxB,yB7CqDe;AVovVrB;;AuDzzVA;;EAmBQ,cAAc;AvD2yVtB;;AuD9zVA;EAqBQ,yB7CgDa;AV6vVrB;;AuDl0VA;EAuBQ,yB7C8Ca;AViwVrB;;AuDt0VA;;EA0BU,yB7C2CW;AVswVrB;;ACpuVE;EsDvGF;IA6BU,4BxD3BoB;EC80V5B;AACF;;AuDj1VA;;EAgCQ,yB7CqCa;AVixVrB;;AuDt1VA;;;EAqCU,yB7C4DuB;E6C3DvB,yB7C+BW;AVwxVrB;;AuD71VA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvDwzVtB;;AuDl2VA;EA4CY,UAAU;AvD0zVtB;;AuDt2VA;EA+CY,4BAAwB;EACxB,UAAU;AvD2zVtB;;AuD32VA;EAoDY,yB7CiBS;AV0yVrB;;AuD/2VA;EAsDc,uCxD/De;AC43V7B;;AuDn3VA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,iBxD1DgB;ACu3V9B;;AuDz3VA;EAkEU,iFAAyG;AvD2zVnH;;AClyVE;EsD3FF;IAqEc,iFAAyG;EvD6zVrH;AACF;;AuDn4VA;EAeM,yBxDpBwB;EwDqBxB,W7CuDU;AVi0VhB;;AuDx4VA;;EAmBQ,cAAc;AvD03VtB;;AuD74VA;EAqBQ,W7CkDQ;AV00VhB;;AuDj5VA;EAuBQ,+B7CgDQ;AV80VhB;;AuDr5VA;;EA0BU,W7C6CM;AVm1VhB;;ACnzVE;EsDvGF;IA6BU,yBxDlCoB;ECo6V5B;AACF;;AuDh6VA;;EAgCQ,+B7CuCQ;AV81VhB;;AuDr6VA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVq2VhB;;AuD56VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDu4VtB;;AuDj7VA;EA4CY,UAAU;AvDy4VtB;;AuDr7VA;EA+CY,yBAAwB;EACxB,UAAU;AvD04VtB;;AuD17VA;EAoDY,W7CmBI;AVu3VhB;;AuD97VA;EAsDc,uCxD/De;AC28V7B;;AuDl8VA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjEgB;AC68V9B;;AuDx8VA;EAkEU,gFAAyG;AvD04VnH;;ACj3VE;EsD3FF;IAqEc,gFAAyG;EvD44VrH;AACF;;AuDl9VA;EAeM,yBxDN4B;EwDO5B,W7CuDU;AVg5VhB;;AuDv9VA;;EAmBQ,cAAc;AvDy8VtB;;AuD59VA;EAqBQ,W7CkDQ;AVy5VhB;;AuDh+VA;EAuBQ,+B7CgDQ;AV65VhB;;AuDp+VA;;EA0BU,W7C6CM;AVk6VhB;;ACl4VE;EsDvGF;IA6BU,yBxDpBwB;ECq+VhC;AACF;;AuD/+VA;;EAgCQ,+B7CuCQ;AV66VhB;;AuDp/VA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVo7VhB;;AuD3/VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDs9VtB;;AuDhgWA;EA4CY,UAAU;AvDw9VtB;;AuDpgWA;EA+CY,yBAAwB;EACxB,UAAU;AvDy9VtB;;AuDzgWA;EAoDY,W7CmBI;AVs8VhB;;AuD7gWA;EAsDc,uCxD/De;AC0hW7B;;AuDjhWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDnDoB;AC8gWlC;;AuDvhWA;EAkEU,gFAAyG;AvDy9VnH;;ACh8VE;EsD3FF;IAqEc,gFAAyG;EvD29VrH;AACF;;AuDjiWA;EAeM,yBxDJ4B;EwDK5B,W7CuDU;AV+9VhB;;AuDtiWA;;EAmBQ,cAAc;AvDwhWtB;;AuD3iWA;EAqBQ,W7CkDQ;AVw+VhB;;AuD/iWA;EAuBQ,+B7CgDQ;AV4+VhB;;AuDnjWA;;EA0BU,W7C6CM;AVi/VhB;;ACj9VE;EsDvGF;IA6BU,yBxDlBwB;ECkjWhC;AACF;;AuD9jWA;;EAgCQ,+B7CuCQ;AV4/VhB;;AuDnkWA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVmgWhB;;AuD1kWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDqiWtB;;AuD/kWA;EA4CY,UAAU;AvDuiWtB;;AuDnlWA;EA+CY,yBAAwB;EACxB,UAAU;AvDwiWtB;;AuDxlWA;EAoDY,W7CmBI;AVqhWhB;;AuD5lWA;EAsDc,uCxD/De;ACymW7B;;AuDhmWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjDoB;AC2lWlC;;AuDtmWA;EAkEU,gFAAyG;AvDwiWnH;;AC/gWE;EsD3FF;IAqEc,gFAAyG;EvD0iWrH;AACF;;AuDhnWA;EAeM,yBxDL4B;EwDM5B,W7CuDU;AV8iWhB;;AuDrnWA;;EAmBQ,cAAc;AvDumWtB;;AuD1nWA;EAqBQ,W7CkDQ;AVujWhB;;AuD9nWA;EAuBQ,+B7CgDQ;AV2jWhB;;AuDloWA;;EA0BU,W7C6CM;AVgkWhB;;AChiWE;EsDvGF;IA6BU,yBxDnBwB;ECkoWhC;AACF;;AuD7oWA;;EAgCQ,+B7CuCQ;AV2kWhB;;AuDlpWA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVklWhB;;AuDzpWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDonWtB;;AuD9pWA;EA4CY,UAAU;AvDsnWtB;;AuDlqWA;EA+CY,yBAAwB;EACxB,UAAU;AvDunWtB;;AuDvqWA;EAoDY,W7CmBI;AVomWhB;;AuD3qWA;EAsDc,uCxD/De;ACwrW7B;;AuD/qWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDlDoB;AC2qWlC;;AuDrrWA;EAkEU,gFAAyG;AvDunWnH;;AC9lWE;EsD3FF;IAqEc,gFAAyG;EvDynWrH;AACF;;AuD/rWA;EAeM,yBxDP4B;EwDQ5B,W7CuDU;AV6nWhB;;AuDpsWA;;EAmBQ,cAAc;AvDsrWtB;;AuDzsWA;EAqBQ,W7CkDQ;AVsoWhB;;AuD7sWA;EAuBQ,+B7CgDQ;AV0oWhB;;AuDjtWA;;EA0BU,W7C6CM;AV+oWhB;;AC/mWE;EsDvGF;IA6BU,yBxDrBwB;ECmtWhC;AACF;;AuD5tWA;;EAgCQ,+B7CuCQ;AV0pWhB;;AuDjuWA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AViqWhB;;AuDxuWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDmsWtB;;AuD7uWA;EA4CY,UAAU;AvDqsWtB;;AuDjvWA;EA+CY,yBAAwB;EACxB,UAAU;AvDssWtB;;AuDtvWA;EAoDY,W7CmBI;AVmrWhB;;AuD1vWA;EAsDc,uCxD/De;ACuwW7B;;AuD9vWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDpDoB;AC4vWlC;;AuDpwWA;EAkEU,gFAAyG;AvDssWnH;;AC7qWE;EsD3FF;IAqEc,gFAAyG;EvDwsWrH;AACF;;AuD9wWA;EAeM,yBxDR4B;EwDS5B,yB7CqDe;AV8sWrB;;AuDnxWA;;EAmBQ,cAAc;AvDqwWtB;;AuDxxWA;EAqBQ,yB7CgDa;AVutWrB;;AuD5xWA;EAuBQ,yB7C8Ca;AV2tWrB;;AuDhyWA;;EA0BU,yB7C2CW;AVguWrB;;AC9rWE;EsDvGF;IA6BU,yBxDtBwB;ECmyWhC;AACF;;AuD3yWA;;EAgCQ,yB7CqCa;AV2uWrB;;AuDhzWA;;;EAqCU,yB7C4DuB;E6C3DvB,yB7C+BW;AVkvWrB;;AuDvzWA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvDkxWtB;;AuD5zWA;EA4CY,UAAU;AvDoxWtB;;AuDh0WA;EA+CY,yBAAwB;EACxB,UAAU;AvDqxWtB;;AuDr0WA;EAoDY,yB7CiBS;AVowWrB;;AuDz0WA;EAsDc,uCxD/De;ACs1W7B;;AuD70WA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,cxDrDoB;AC40WlC;;AuDn1WA;EAkEU,gFAAyG;AvDqxWnH;;AC5vWE;EsD3FF;IAqEc,gFAAyG;EvDuxWrH;AACF;;AuD71WA;EAeM,yBxDF2B;EwDG3B,W7CuDU;AV2xWhB;;AuDl2WA;;EAmBQ,cAAc;AvDo1WtB;;AuDv2WA;EAqBQ,W7CkDQ;AVoyWhB;;AuD32WA;EAuBQ,+B7CgDQ;AVwyWhB;;AuD/2WA;;EA0BU,W7C6CM;AV6yWhB;;AC7wWE;EsDvGF;IA6BU,yBxDhBuB;EC42W/B;AACF;;AuD13WA;;EAgCQ,+B7CuCQ;AVwzWhB;;AuD/3WA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AV+zWhB;;AuDt4WA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDi2WtB;;AuD34WA;EA4CY,UAAU;AvDm2WtB;;AuD/4WA;EA+CY,yBAAwB;EACxB,UAAU;AvDo2WtB;;AuDp5WA;EAoDY,W7CmBI;AVi1WhB;;AuDx5WA;EAsDc,uCxD/De;ACq6W7B;;AuD55WA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxD/CmB;ACq5WjC;;AuDl6WA;EAkEU,gFAAyG;AvDo2WnH;;AC30WE;EsD3FF;IAqEc,gFAAyG;EvDs2WrH;AACF;;AuD56WA;EAyEM,eAhF0B;AvDu7WhC;;ACj1WE;EsD/FF;IA6EQ,oBAnF8B;EvD27WpC;AACF;;ACv1WE;EsD/FF;IAiFQ,mBAtF4B;EvDg8WlC;AACF;;AuD57WA;EAsFM,mBAAmB;EACnB,aAAa;AvD02WnB;;AuDj8WA;EAyFQ,YAAY;EACZ,cAAc;AvD42WtB;;AuDt8WA;EA4FI,gBAAgB;AvD82WpB;;AuD18WA;EA8FI,iBAAiB;AvDg3WrB;;AuD52WA;EAEE,gBAAgB;AvD82WlB;;AuDh3WA;EAII,SAAS;EACT,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,qCAAqC;AvDg3WzC;;AuDz3WA;EAYI,YAAY;AvDi3WhB;;ACp4WE;EsDOF;IAeI,aAAa;EvDm3Wf;AACF;;AuDl3WA;EACE,kBAAkB;AvDq3WpB;;AC94WE;EsDwBF;IAKM,aAAa;EvDs3WjB;EuD33WF;IAOQ,sBAAsB;EvDu3W5B;AACF;;ACn5WE;EsDoBF;IASI,aAAa;IACb,uBAAuB;EvD23WzB;EuDr4WF;ItDoDI,mBsDxCwC;EvD43W1C;AACF;;AuDz3WA;;EAEE,YAAY;EACZ,cAAc;AvD43WhB;;AuD13WA;EACE,YAAY;EACZ,cAAc;EACd,oBApJ6B;AvDihX/B;;ACz6WE;EsDyCF;IAKI,kBArJgC;EvDqhXlC;AACF;;AwDlhXA;EACE,oBAN2B;AxD2hX7B;;ACv6WE;EuD/GF;IAII,kBAR+B;ExD+hXjC;EwD3hXF;IAOM,oBAV8B;ExDiiXlC;EwD9hXF;IASM,mBAX4B;ExDmiXhC;AACF;;AyDniXA;EACE,yB1DO4B;E0DN5B,yBAJ+B;AzD0iXjC","file":"bulma-rtl.css"} \ No newline at end of file diff --git a/node_modules/bulma/css/bulma-rtl.min.css b/node_modules/bulma/css/bulma-rtl.min.css new file mode 100644 index 0000000..65f5406 --- /dev/null +++ b/node_modules/bulma/css/bulma-rtl.min.css @@ -0,0 +1 @@ +/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .button,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .input,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-previous,fieldset[disabled] .select select,fieldset[disabled] .textarea{cursor:not-allowed}.breadcrumb,.button,.file,.is-unselectable,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#485fc7;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #485fc7}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #485fc7}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-right:calc(-.5em - 1px);margin-left:.25em}.button .icon:last-child:not(:first-child){margin-right:.25em;margin-left:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#485fc7;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:0 0;border-color:transparent;color:#485fc7;text-decoration:none}.button.is-ghost.is-hovered,.button.is-ghost:hover{color:#485fc7;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-hovered,.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined.is-focused,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined.is-loading.is-focused::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined.is-focused,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-hovered,.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined.is-focused,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined.is-loading.is-focused::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined.is-focused,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-hovered,.button.is-light.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined.is-focused,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined.is-loading.is-focused::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-light.is-inverted.is-outlined.is-focused,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-dark{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#fff}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],fieldset[disabled] .button.is-dark{background-color:#363636;border-color:#363636;box-shadow:none}.button.is-dark.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-hovered,.button.is-dark.is-inverted:hover{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined.is-focused,.button.is-dark.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined.is-loading.is-focused::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined.is-focused,.button.is-dark.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#00d1b2;border-color:#00d1b2;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-hovered,.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined.is-focused,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined.is-loading.is-focused::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined.is-focused,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light.is-hovered,.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-link{background-color:#485fc7;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#3e56c4;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#3a51bb;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#485fc7;border-color:#485fc7;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-hovered,.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#485fc7}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;color:#485fc7}.button.is-link.is-outlined.is-focused,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#485fc7;border-color:#485fc7;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-outlined.is-loading.is-focused::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;box-shadow:none;color:#485fc7}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined.is-focused,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff1fa;color:#3850b7}.button.is-link.is-light.is-hovered,.button.is-link.is-light:hover{background-color:#e6e9f7;border-color:transparent;color:#3850b7}.button.is-link.is-light.is-active,.button.is-link.is-light:active{background-color:#dce0f4;border-color:transparent;color:#3850b7}.button.is-info{background-color:#3e8ed0;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#3488ce;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#3082c5;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3e8ed0;border-color:#3e8ed0;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-hovered,.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3e8ed0}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;color:#3e8ed0}.button.is-info.is-outlined.is-focused,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-outlined.is-loading.is-focused::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;box-shadow:none;color:#3e8ed0}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined.is-focused,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#eff5fb;color:#296fa8}.button.is-info.is-light.is-hovered,.button.is-info.is-light:hover{background-color:#e4eff9;border-color:transparent;color:#296fa8}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#dae9f6;border-color:transparent;color:#296fa8}.button.is-success{background-color:#48c78e;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#3ec487;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb81;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#48c78e;border-color:#48c78e;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-hovered,.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c78e}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;color:#48c78e}.button.is-success.is-outlined.is-focused,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#48c78e;border-color:#48c78e;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-outlined.is-loading.is-focused::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;box-shadow:none;color:#48c78e}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined.is-focused,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#effaf5;color:#257953}.button.is-success.is-light.is-hovered,.button.is-success.is-light:hover{background-color:#e6f7ef;border-color:transparent;color:#257953}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e9;border-color:transparent;color:#257953}.button.is-warning{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffe08a;border-color:#ffe08a;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-hovered,.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffe08a}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;color:#ffe08a}.button.is-warning.is-outlined.is-focused,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-outlined.is-loading.is-focused::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;box-shadow:none;color:#ffe08a}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined.is-focused,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-warning.is-light{background-color:#fffaeb;color:#946c00}.button.is-warning.is-light.is-hovered,.button.is-warning.is-light:hover{background-color:#fff6de;border-color:transparent;color:#946c00}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff3d1;border-color:transparent;color:#946c00}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#f14668;border-color:#f14668;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-hovered,.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.button.is-danger.is-outlined.is-focused,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-outlined.is-loading.is-focused::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined.is-focused,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light.is-hovered,.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{font-size:.75rem}.button.is-small:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * .5));top:calc(50% - (1em * .5));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:9999px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-left:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-left:-1px}.buttons.has-addons .button:last-child{margin-left:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}@media screen and (max-width:768px){.button.is-responsive.is-small{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.button.is-responsive.is-small{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (max-width:1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-right:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-right:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol:not([type]).is-lower-alpha{list-style-type:lower-alpha}.content ol:not([type]).is-lower-roman{list-style-type:lower-roman}.content ol:not([type]).is-upper-alpha{list-style-type:upper-alpha}.content ol:not([type]).is-upper-roman{list-style-type:upper-roman}.content ul{list-style:disc outside;margin-right:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-right:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-left:.25em}.icon-text .icon:not(:first-child){margin-right:.25em}div.icon-text{display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:9999px}.image.is-fullwidth{width:100%}.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 1.5rem 1.25rem 2.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{left:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-dark{background-color:#363636;color:#fff}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-link{background-color:#485fc7;color:#fff}.notification.is-link.is-light{background-color:#eff1fa;color:#3850b7}.notification.is-info{background-color:#3e8ed0;color:#fff}.notification.is-info.is-light{background-color:#eff5fb;color:#296fa8}.notification.is-success{background-color:#48c78e;color:#fff}.notification.is-success.is-light{background-color:#effaf5;color:#257953}.notification.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffaeb;color:#946c00}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#485fc7}.progress.is-link::-moz-progress-bar{background-color:#485fc7}.progress.is-link::-ms-fill{background-color:#485fc7}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#485fc7 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#3e8ed0}.progress.is-info::-moz-progress-bar{background-color:#3e8ed0}.progress.is-info::-ms-fill{background-color:#3e8ed0}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#3e8ed0 30%,#ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#48c78e}.progress.is-success::-moz-progress-bar{background-color:#48c78e}.progress.is-success::-ms-fill{background-color:#48c78e}.progress.is-success:indeterminate{background-image:linear-gradient(to right,#48c78e 30%,#ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffe08a}.progress.is-warning::-moz-progress-bar{background-color:#ffe08a}.progress.is-warning::-ms-fill{background-color:#ffe08a}.progress.is-warning:indeterminate{background-image:linear-gradient(to right,#ffe08a 30%,#ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#485fc7;border-color:#485fc7;color:#fff}.table td.is-info,.table th.is-info{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c78e;border-color:#48c78e;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#363636}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot{background-color:transparent}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(2n){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(2n){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-left:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tags.has-addons .tag{margin-left:0}.tags.has-addons .tag:not(:first-child){margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.tags.has-addons .tag:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-right:.25rem;margin-left:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-dark{background-color:#363636;color:#fff}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-link{background-color:#485fc7;color:#fff}.tag:not(body).is-link.is-light{background-color:#eff1fa;color:#3850b7}.tag:not(body).is-info{background-color:#3e8ed0;color:#fff}.tag:not(body).is-info.is-light{background-color:#eff5fb;color:#296fa8}.tag:not(body).is-success{background-color:#48c78e;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf5;color:#257953}.tag:not(body).is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffaeb;color:#946c00}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-normal{font-size:.75rem}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-right:-.375em;margin-left:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-right:.1875em;margin-left:-.375em}.tag:not(body) .icon:first-child:last-child{margin-right:-.375em;margin-left:-.375em}.tag:not(body).is-delete{margin-right:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:9999px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.is-hovered.input,.is-hovered.textarea,.select select.is-hovered,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.is-focused.input,.is-focused.textarea,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.input[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .input,fieldset[disabled] .select select,fieldset[disabled] .textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.input[readonly],.textarea[readonly]{box-shadow:none}.is-white.input,.is-white.textarea{border-color:#fff}.is-white.input:active,.is-white.input:focus,.is-white.is-active.input,.is-white.is-active.textarea,.is-white.is-focused.input,.is-white.is-focused.textarea,.is-white.textarea:active,.is-white.textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.is-black.input,.is-black.textarea{border-color:#0a0a0a}.is-black.input:active,.is-black.input:focus,.is-black.is-active.input,.is-black.is-active.textarea,.is-black.is-focused.input,.is-black.is-focused.textarea,.is-black.textarea:active,.is-black.textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.is-focused.input,.is-light.is-focused.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.is-dark.input,.is-dark.textarea{border-color:#363636}.is-dark.input:active,.is-dark.input:focus,.is-dark.is-active.input,.is-dark.is-active.textarea,.is-dark.is-focused.input,.is-dark.is-focused.textarea,.is-dark.textarea:active,.is-dark.textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-link.input,.is-link.textarea{border-color:#485fc7}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.is-info.input,.is-info.textarea{border-color:#3e8ed0}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.is-success.input,.is-success.textarea{border-color:#48c78e}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.is-focused.input,.is-success.is-focused.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffe08a}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.is-focused.input,.is-warning.is-focused.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.is-focused.input,.is-danger.is-focused.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:9999px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox input[disabled],.checkbox[disabled],.radio input[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .radio{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-right:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#485fc7;left:1.125em;z-index:4}.select.is-rounded select{border-radius:9999px;padding-right:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-left:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#485fc7}.select.is-link select{border-color:#485fc7}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#3a51bb}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.select.is-info:not(:hover)::after{border-color:#3e8ed0}.select.is-info select{border-color:#3e8ed0}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#3082c5}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.select.is-success:not(:hover)::after{border-color:#48c78e}.select.is-success select{border-color:#48c78e}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#3abb81}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.select.is-warning:not(:hover)::after{border-color:#ffe08a}.select.is-warning select{border-color:#ffe08a}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd970}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.select.is-danger:not(:hover)::after{border-color:#f14668}.select.is-danger select{border-color:#f14668}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a!important;opacity:.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;left:.625em;top:.625em;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#485fc7;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#3e56c4;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,95,199,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#3a51bb;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#3e8ed0;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#3488ce;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(62,142,208,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#3082c5;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#48c78e;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#3ec487;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,142,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#3abb81;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,224,138,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#f14668;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-left:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#485fc7}.help.is-info{color:#3e8ed0}.help.is-success{color:#48c78e}.help.is-warning{color:#ffe08a}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-left:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control .button:not([disabled]).is-hovered,.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]).is-hovered,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]).is-hovered,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]).is-focused,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]).is-focused,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]).is-focused,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]).is-focused:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]).is-focused:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]).is-focused:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-left:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-left:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-left:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;left:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#485fc7;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-right:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-left:.5em}.breadcrumb .icon:last-child{margin-right:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;position:relative}.card-content:first-child,.card-footer:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-content:last-child,.card-footer:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:transparent;padding:1.5rem}.card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-left:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;right:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-left:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#485fc7;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-left:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-left:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-left:1rem}.media-right{margin-right:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#485fc7;color:#fff}.menu-list li ul{border-right:1px solid #dbdbdb;margin:.75em;padding-right:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body{border-color:#363636}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-link{background-color:#eff1fa}.message.is-link .message-header{background-color:#485fc7;color:#fff}.message.is-link .message-body{border-color:#485fc7;color:#3850b7}.message.is-info{background-color:#eff5fb}.message.is-info .message-header{background-color:#3e8ed0;color:#fff}.message.is-info .message-body{border-color:#3e8ed0;color:#296fa8}.message.is-success{background-color:#effaf5}.message.is-success .message-header{background-color:#48c78e;color:#fff}.message.is-success .message-body{border-color:#48c78e;color:#257953}.message.is-warning{background-color:#fffaeb}.message.is-warning .message-header{background-color:#ffe08a;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffe08a;color:#946c00}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-right:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;left:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-left:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-dark{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#fff}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#fff}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#485fc7;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#485fc7;color:#fff}}.navbar.is-info{background-color:#3e8ed0;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3e8ed0;color:#fff}}.navbar.is-success{background-color:#48c78e;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c78e;color:#fff}}.navbar.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffe08a;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-right:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:first-child{top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:first-child{transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#485fc7}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#485fc7}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#485fc7;border-bottom-style:solid;border-bottom-width:3px;color:#485fc7;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-left:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#485fc7;margin-top:-.375em;left:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-left:auto}.navbar-end{justify-content:flex-end;margin-right:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;right:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-left:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-right:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-left:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#485fc7}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link.is-disabled,.pagination-link[disabled],.pagination-next.is-disabled,.pagination-next[disabled],.pagination-previous.is-disabled,.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#485fc7;border-color:#485fc7;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading{background-color:#00d1b2;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#00d1b2}.panel.is-primary .panel-block.is-active .panel-icon{color:#00d1b2}.panel.is-link .panel-heading{background-color:#485fc7;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#485fc7}.panel.is-link .panel-block.is-active .panel-icon{color:#485fc7}.panel.is-info .panel-heading{background-color:#3e8ed0;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3e8ed0}.panel.is-info .panel-block.is-active .panel-icon{color:#3e8ed0}.panel.is-success .panel-heading{background-color:#48c78e;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#48c78e}.panel.is-success .panel-block.is-active .panel-icon{color:#48c78e}.panel.is-warning .panel-heading{background-color:#ffe08a;color:rgba(0,0,0,.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffe08a}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffe08a}.panel.is-danger .panel-heading{background-color:#f14668;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f14668}.panel.is-danger .panel-block.is-active .panel-icon{color:#f14668}.panel-block:not(:last-child),.panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#485fc7}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-left:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#485fc7;color:#363636}.panel-block.is-active .panel-icon{color:#485fc7}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-left:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#485fc7;color:#485fc7}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-left:.5em}.tabs .icon:last-child{margin-right:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:0 0 4px 4px}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-right:-1px}.tabs.is-toggle li:first-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li:last-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li.is-active a{background-color:#485fc7;border-color:#485fc7;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-right:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-right:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-right:50%}.columns.is-mobile>.column.is-offset-one-third{margin-right:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-right:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-right:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-right:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-right:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-right:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-right:0}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-right:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-right:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-right:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-right:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-right:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-right:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-right:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-right:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-right:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-right:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-right:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-right:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-right:75%}.column.is-offset-two-thirds-mobile{margin-right:66.6666%}.column.is-offset-half-mobile{margin-right:50%}.column.is-offset-one-third-mobile{margin-right:33.3333%}.column.is-offset-one-quarter-mobile{margin-right:25%}.column.is-offset-one-fifth-mobile{margin-right:20%}.column.is-offset-two-fifths-mobile{margin-right:40%}.column.is-offset-three-fifths-mobile{margin-right:60%}.column.is-offset-four-fifths-mobile{margin-right:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-right:0}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-right:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-right:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-right:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-right:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-right:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-right:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-right:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-right:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-right:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-right:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-right:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-right:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-right:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-right:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-right:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-right:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-right:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-right:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-right:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-right:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-right:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-right:0}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-right:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-right:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-right:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-right:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-right:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-right:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-right:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-right:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-right:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-right:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-right:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-right:100%}}@media screen and (max-width:1023px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-right:75%}.column.is-offset-two-thirds-touch{margin-right:66.6666%}.column.is-offset-half-touch{margin-right:50%}.column.is-offset-one-third-touch{margin-right:33.3333%}.column.is-offset-one-quarter-touch{margin-right:25%}.column.is-offset-one-fifth-touch{margin-right:20%}.column.is-offset-two-fifths-touch{margin-right:40%}.column.is-offset-three-fifths-touch{margin-right:60%}.column.is-offset-four-fifths-touch{margin-right:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-right:0}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-right:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-right:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-right:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-right:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-right:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-right:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-right:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-right:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-right:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-right:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-right:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-right:100%}}@media screen and (min-width:1024px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-right:75%}.column.is-offset-two-thirds-desktop{margin-right:66.6666%}.column.is-offset-half-desktop{margin-right:50%}.column.is-offset-one-third-desktop{margin-right:33.3333%}.column.is-offset-one-quarter-desktop{margin-right:25%}.column.is-offset-one-fifth-desktop{margin-right:20%}.column.is-offset-two-fifths-desktop{margin-right:40%}.column.is-offset-three-fifths-desktop{margin-right:60%}.column.is-offset-four-fifths-desktop{margin-right:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-right:0}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-right:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-right:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-right:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-right:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-right:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-right:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-right:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-right:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-right:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-right:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-right:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-right:100%}}@media screen and (min-width:1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-right:75%}.column.is-offset-two-thirds-widescreen{margin-right:66.6666%}.column.is-offset-half-widescreen{margin-right:50%}.column.is-offset-one-third-widescreen{margin-right:33.3333%}.column.is-offset-one-quarter-widescreen{margin-right:25%}.column.is-offset-one-fifth-widescreen{margin-right:20%}.column.is-offset-two-fifths-widescreen{margin-right:40%}.column.is-offset-three-fifths-widescreen{margin-right:60%}.column.is-offset-four-fifths-widescreen{margin-right:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-right:0}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-right:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-right:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-right:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-right:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-right:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-right:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-right:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-right:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-right:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-right:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-right:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-right:100%}}@media screen and (min-width:1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-right:75%}.column.is-offset-two-thirds-fullhd{margin-right:66.6666%}.column.is-offset-half-fullhd{margin-right:50%}.column.is-offset-one-third-fullhd{margin-right:33.3333%}.column.is-offset-one-quarter-fullhd{margin-right:25%}.column.is-offset-one-fifth-fullhd{margin-right:20%}.column.is-offset-two-fifths-fullhd{margin-right:40%}.column.is-offset-three-fifths-fullhd{margin-right:60%}.column.is-offset-four-fifths-fullhd{margin-right:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-right:0}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-right:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-right:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-right:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-right:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-right:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-right:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-right:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-right:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-right:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-right:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-right:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-right:100%}}.columns{margin-right:-.75rem;margin-left:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-right:0;margin-left:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1024px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-right:calc(-1 * var(--columnGap));margin-left:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}@media screen and (max-width:768px){.columns.is-variable.is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.columns.is-variable.is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.columns.is-variable.is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.columns.is-variable.is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.columns.is-variable.is-0-fullhd{--columnGap:0rem}}.columns.is-variable.is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.columns.is-variable.is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-1-fullhd{--columnGap:0.25rem}}.columns.is-variable.is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.columns.is-variable.is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-2-fullhd{--columnGap:0.5rem}}.columns.is-variable.is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.columns.is-variable.is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-3-fullhd{--columnGap:0.75rem}}.columns.is-variable.is-4{--columnGap:1rem}@media screen and (max-width:768px){.columns.is-variable.is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.columns.is-variable.is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.columns.is-variable.is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.columns.is-variable.is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.columns.is-variable.is-4-fullhd{--columnGap:1rem}}.columns.is-variable.is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.columns.is-variable.is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-5-fullhd{--columnGap:1.25rem}}.columns.is-variable.is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.columns.is-variable.is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-6-fullhd{--columnGap:1.5rem}}.columns.is-variable.is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.columns.is-variable.is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-7-fullhd{--columnGap:1.75rem}}.columns.is-variable.is-8{--columnGap:2rem}@media screen and (max-width:768px){.columns.is-variable.is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.columns.is-variable.is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.columns.is-variable.is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.columns.is-variable.is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.columns.is-variable.is-8-fullhd{--columnGap:2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-primary-light{color:#ebfffc!important}a.has-text-primary-light:focus,a.has-text-primary-light:hover{color:#b8fff4!important}.has-background-primary-light{background-color:#ebfffc!important}.has-text-primary-dark{color:#00947e!important}a.has-text-primary-dark:focus,a.has-text-primary-dark:hover{color:#00c7a9!important}.has-background-primary-dark{background-color:#00947e!important}.has-text-link{color:#485fc7!important}a.has-text-link:focus,a.has-text-link:hover{color:#3449a8!important}.has-background-link{background-color:#485fc7!important}.has-text-link-light{color:#eff1fa!important}a.has-text-link-light:focus,a.has-text-link-light:hover{color:#c8cfee!important}.has-background-link-light{background-color:#eff1fa!important}.has-text-link-dark{color:#3850b7!important}a.has-text-link-dark:focus,a.has-text-link-dark:hover{color:#576dcb!important}.has-background-link-dark{background-color:#3850b7!important}.has-text-info{color:#3e8ed0!important}a.has-text-info:focus,a.has-text-info:hover{color:#2b74b1!important}.has-background-info{background-color:#3e8ed0!important}.has-text-info-light{color:#eff5fb!important}a.has-text-info-light:focus,a.has-text-info-light:hover{color:#c6ddf1!important}.has-background-info-light{background-color:#eff5fb!important}.has-text-info-dark{color:#296fa8!important}a.has-text-info-dark:focus,a.has-text-info-dark:hover{color:#368ace!important}.has-background-info-dark{background-color:#296fa8!important}.has-text-success{color:#48c78e!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a873!important}.has-background-success{background-color:#48c78e!important}.has-text-success-light{color:#effaf5!important}a.has-text-success-light:focus,a.has-text-success-light:hover{color:#c8eedd!important}.has-background-success-light{background-color:#effaf5!important}.has-text-success-dark{color:#257953!important}a.has-text-success-dark:focus,a.has-text-success-dark:hover{color:#31a06e!important}.has-background-success-dark{background-color:#257953!important}.has-text-warning{color:#ffe08a!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd257!important}.has-background-warning{background-color:#ffe08a!important}.has-text-warning-light{color:#fffaeb!important}a.has-text-warning-light:focus,a.has-text-warning-light:hover{color:#ffecb8!important}.has-background-warning-light{background-color:#fffaeb!important}.has-text-warning-dark{color:#946c00!important}a.has-text-warning-dark:focus,a.has-text-warning-dark:hover{color:#c79200!important}.has-background-warning-dark{background-color:#946c00!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-danger{background-color:#f14668!important}.has-text-danger-light{color:#feecf0!important}a.has-text-danger-light:focus,a.has-text-danger-light:hover{color:#fabdc9!important}.has-background-danger-light{background-color:#feecf0!important}.has-text-danger-dark{color:#cc0f35!important}a.has-text-danger-dark:focus,a.has-text-danger-dark:hover{color:#ee2049!important}.has-background-danger-dark{background-color:#cc0f35!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.is-flex-direction-row{flex-direction:row!important}.is-flex-direction-row-reverse{flex-direction:row-reverse!important}.is-flex-direction-column{flex-direction:column!important}.is-flex-direction-column-reverse{flex-direction:column-reverse!important}.is-flex-wrap-nowrap{flex-wrap:nowrap!important}.is-flex-wrap-wrap{flex-wrap:wrap!important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.is-justify-content-flex-start{justify-content:flex-start!important}.is-justify-content-flex-end{justify-content:flex-end!important}.is-justify-content-center{justify-content:center!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-space-around{justify-content:space-around!important}.is-justify-content-space-evenly{justify-content:space-evenly!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-end{justify-content:end!important}.is-justify-content-left{justify-content:left!important}.is-justify-content-right{justify-content:right!important}.is-align-content-flex-start{align-content:flex-start!important}.is-align-content-flex-end{align-content:flex-end!important}.is-align-content-center{align-content:center!important}.is-align-content-space-between{align-content:space-between!important}.is-align-content-space-around{align-content:space-around!important}.is-align-content-space-evenly{align-content:space-evenly!important}.is-align-content-stretch{align-content:stretch!important}.is-align-content-start{align-content:start!important}.is-align-content-end{align-content:end!important}.is-align-content-baseline{align-content:baseline!important}.is-align-items-stretch{align-items:stretch!important}.is-align-items-flex-start{align-items:flex-start!important}.is-align-items-flex-end{align-items:flex-end!important}.is-align-items-center{align-items:center!important}.is-align-items-baseline{align-items:baseline!important}.is-align-items-start{align-items:start!important}.is-align-items-end{align-items:end!important}.is-align-items-self-start{align-items:self-start!important}.is-align-items-self-end{align-items:self-end!important}.is-align-self-auto{align-self:auto!important}.is-align-self-flex-start{align-self:flex-start!important}.is-align-self-flex-end{align-self:flex-end!important}.is-align-self-center{align-self:center!important}.is-align-self-baseline{align-self:baseline!important}.is-align-self-stretch{align-self:stretch!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-grow-2{flex-grow:2!important}.is-flex-grow-3{flex-grow:3!important}.is-flex-grow-4{flex-grow:4!important}.is-flex-grow-5{flex-grow:5!important}.is-flex-shrink-0{flex-shrink:0!important}.is-flex-shrink-1{flex-shrink:1!important}.is-flex-shrink-2{flex-shrink:2!important}.is-flex-shrink-3{flex-shrink:3!important}.is-flex-shrink-4{flex-shrink:4!important}.is-flex-shrink-5{flex-shrink:5!important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.is-clickable{cursor:pointer!important;pointer-events:all!important}.is-clipped{overflow:hidden!important}.is-relative{position:relative!important}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3{margin-left:.75rem!important}.mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.m-4{margin:1rem!important}.mt-4{margin-top:1rem!important}.mr-4{margin-right:1rem!important}.mb-4{margin-bottom:1rem!important}.ml-4{margin-left:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5{margin-left:1.5rem!important}.mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-6{margin:3rem!important}.mt-6{margin-top:3rem!important}.mr-6{margin-right:3rem!important}.mb-6{margin-bottom:3rem!important}.ml-6{margin-left:3rem!important}.mx-6{margin-left:3rem!important;margin-right:3rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.m-auto{margin:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:.75rem!important}.pt-3{padding-top:.75rem!important}.pr-3{padding-right:.75rem!important}.pb-3{padding-bottom:.75rem!important}.pl-3{padding-left:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.p-4{padding:1rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.p-5{padding:1.5rem!important}.pt-5{padding-top:1.5rem!important}.pr-5{padding-right:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.pl-5{padding-left:1.5rem!important}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-6{padding:3rem!important}.pt-6{padding-top:3rem!important}.pr-6{padding-right:3rem!important}.pb-6{padding-bottom:3rem!important}.pl-6{padding-left:3rem!important}.px-6{padding-left:3rem!important;padding-right:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.p-auto{padding:auto!important}.pt-auto{padding-top:auto!important}.pr-auto{padding-right:auto!important}.pb-auto{padding-bottom:auto!important}.pl-auto{padding-left:auto!important}.px-auto{padding-left:auto!important;padding-right:auto!important}.py-auto{padding-top:auto!important;padding-bottom:auto!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.is-underlined{text-decoration:underline!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-medium{font-weight:500!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-monospace{font-family:monospace!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.is-block-touch{display:block!important}}@media screen and (min-width:1024px){.is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}.is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.is-invisible-fullhd{visibility:hidden!important}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff!important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a!important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,.7)}.hero.is-light .subtitle{color:rgba(0,0,0,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.hero.is-light .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5!important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#fff}.hero.is-dark .subtitle{color:rgba(255,255,255,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(255,255,255,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#fff}.hero.is-dark .tabs a{color:#fff;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{color:#363636!important;opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{color:#00d1b2!important;opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#485fc7;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#485fc7}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#3a51bb;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#485fc7!important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#485fc7}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}}.hero.is-info{background-color:#3e8ed0;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#3e8ed0}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#3082c5;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#3e8ed0!important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3e8ed0}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}}.hero.is-success{background-color:#48c78e;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-success .navbar-menu{background-color:#48c78e}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#3abb81;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#48c78e!important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#48c78e}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}}.hero.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-warning .navbar-menu{background-color:#ffe08a}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffe08a!important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffe08a}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}}.hero.is-danger{background-color:#f14668;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-danger .navbar-menu{background-color:#f14668}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ef2e55;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#f14668!important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.hero.is-small .hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-left:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width:769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem} \ No newline at end of file diff --git a/node_modules/bulma/css/bulma.css b/node_modules/bulma/css/bulma.css new file mode 100644 index 0000000..1dbfc86 --- /dev/null +++ b/node_modules/bulma/css/bulma.css @@ -0,0 +1,11851 @@ +/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */ +/* Bulma Utilities */ +.button, .input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.5em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.5em - 1px); + padding-left: calc(0.75em - 1px); + padding-right: calc(0.75em - 1px); + padding-top: calc(0.5em - 1px); + position: relative; + vertical-align: top; +} + +.button:focus, .input:focus, .textarea:focus, .select select:focus, .file-cta:focus, +.file-name:focus, .pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus, +.pagination-ellipsis:focus, .is-focused.button, .is-focused.input, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, +.is-focused.file-name, .is-focused.pagination-previous, +.is-focused.pagination-next, +.is-focused.pagination-link, +.is-focused.pagination-ellipsis, .button:active, .input:active, .textarea:active, .select select:active, .file-cta:active, +.file-name:active, .pagination-previous:active, +.pagination-next:active, +.pagination-link:active, +.pagination-ellipsis:active, .is-active.button, .is-active.input, .is-active.textarea, .select select.is-active, .is-active.file-cta, +.is-active.file-name, .is-active.pagination-previous, +.is-active.pagination-next, +.is-active.pagination-link, +.is-active.pagination-ellipsis { + outline: none; +} + +.button[disabled], .input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], +.file-name[disabled], .pagination-previous[disabled], +.pagination-next[disabled], +.pagination-link[disabled], +.pagination-ellipsis[disabled], +fieldset[disabled] .button, +fieldset[disabled] .input, +fieldset[disabled] .textarea, +fieldset[disabled] .select select, +.select fieldset[disabled] select, +fieldset[disabled] .file-cta, +fieldset[disabled] .file-name, +fieldset[disabled] .pagination-previous, +fieldset[disabled] .pagination-next, +fieldset[disabled] .pagination-link, +fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; +} + +.button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs, .is-unselectable { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; +} + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .message:not(:last-child), .pagination:not(:last-child), .tabs:not(:last-child) { + margin-bottom: 1.5rem; +} + +.delete, .modal-close { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 9999px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; +} + +.delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; +} + +.delete::before, .modal-close::before { + height: 2px; + width: 50%; +} + +.delete::after, .modal-close::after { + height: 50%; + width: 2px; +} + +.delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); +} + +.delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); +} + +.is-small.delete, .is-small.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; +} + +.is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; +} + +.is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; +} + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + -webkit-animation: spinAround 500ms infinite linear; + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 9999px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; +} + +.image.is-square img, +.image.is-square .has-ratio, .image.is-1by1 img, +.image.is-1by1 .has-ratio, .image.is-5by4 img, +.image.is-5by4 .has-ratio, .image.is-4by3 img, +.image.is-4by3 .has-ratio, .image.is-3by2 img, +.image.is-3by2 .has-ratio, .image.is-5by3 img, +.image.is-5by3 .has-ratio, .image.is-16by9 img, +.image.is-16by9 .has-ratio, .image.is-2by1 img, +.image.is-2by1 .has-ratio, .image.is-3by1 img, +.image.is-3by1 .has-ratio, .image.is-4by5 img, +.image.is-4by5 .has-ratio, .image.is-3by4 img, +.image.is-3by4 .has-ratio, .image.is-2by3 img, +.image.is-2by3 .has-ratio, .image.is-3by5 img, +.image.is-3by5 .has-ratio, .image.is-9by16 img, +.image.is-9by16 .has-ratio, .image.is-1by2 img, +.image.is-1by2 .has-ratio, .image.is-1by3 img, +.image.is-1by3 .has-ratio, .modal, .modal-background, .is-overlay, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.navbar-burger { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + color: currentColor; + font-family: inherit; + font-size: 1em; + margin: 0; + padding: 0; +} + +/* Bulma Base */ +/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; +} + +ul { + list-style: none; +} + +button, +input, +select, +textarea { + margin: 0; +} + +html { + box-sizing: border-box; +} + +*, *::before, *::after { + box-sizing: inherit; +} + +img, +video { + height: auto; + max-width: 100%; +} + +iframe { + border: 0; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +td:not([align]), +th:not([align]) { + text-align: inherit; +} + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: hidden; + overflow-y: scroll; + text-rendering: optimizeLegibility; + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; +} + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; +} + +body, +button, +input, +optgroup, +select, +textarea { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; +} + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: monospace; +} + +body { + color: #4a4a4a; + font-size: 1em; + font-weight: 400; + line-height: 1.5; +} + +a { + color: #485fc7; + cursor: pointer; + text-decoration: none; +} + +a strong { + color: currentColor; +} + +a:hover { + color: #363636; +} + +code { + background-color: whitesmoke; + color: #da1039; + font-size: 0.875em; + font-weight: normal; + padding: 0.25em 0.5em 0.25em; +} + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; +} + +img { + height: auto; + max-width: 100%; +} + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; +} + +small { + font-size: 0.875em; +} + +span { + font-style: inherit; + font-weight: inherit; +} + +strong { + color: #363636; + font-weight: 700; +} + +fieldset { + border: none; +} + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #4a4a4a; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; +} + +pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; +} + +table td, +table th { + vertical-align: top; +} + +table td:not([align]), +table th:not([align]) { + text-align: inherit; +} + +table th { + color: #363636; +} + +@-webkit-keyframes spinAround { + from { + transform: rotate(0deg); + } + to { + transform: rotate(359deg); + } +} + +@keyframes spinAround { + from { + transform: rotate(0deg); + } + to { + transform: rotate(359deg); + } +} + +/* Bulma Elements */ +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + color: #4a4a4a; + display: block; + padding: 1.25rem; +} + +a.box:hover, a.box:focus { + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #485fc7; +} + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #485fc7; +} + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.5em - 1px); + padding-left: 1em; + padding-right: 1em; + padding-top: calc(0.5em - 1px); + text-align: center; + white-space: nowrap; +} + +.button strong { + color: inherit; +} + +.button .icon, .button .icon.is-small, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; +} + +.button .icon:first-child:not(:last-child) { + margin-left: calc(-0.5em - 1px); + margin-right: 0.25em; +} + +.button .icon:last-child:not(:first-child) { + margin-left: 0.25em; + margin-right: calc(-0.5em - 1px); +} + +.button .icon:first-child:last-child { + margin-left: calc(-0.5em - 1px); + margin-right: calc(-0.5em - 1px); +} + +.button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; +} + +.button:focus, .button.is-focused { + border-color: #485fc7; + color: #363636; +} + +.button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; +} + +.button.is-text { + background-color: transparent; + border-color: transparent; + color: #4a4a4a; + text-decoration: underline; +} + +.button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #363636; +} + +.button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #363636; +} + +.button.is-text[disabled], +fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; +} + +.button.is-ghost { + background: none; + border-color: transparent; + color: #485fc7; + text-decoration: none; +} + +.button.is-ghost:hover, .button.is-ghost.is-hovered { + color: #485fc7; + text-decoration: underline; +} + +.button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.button.is-white[disabled], +fieldset[disabled] .button.is-white { + background-color: white; + border-color: white; + box-shadow: none; +} + +.button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; +} + +.button.is-white.is-inverted[disabled], +fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; +} + +.button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-white.is-outlined[disabled], +fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; +} + +.button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; +} + +.button.is-white.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; +} + +.button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; +} + +.button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; +} + +.button.is-black[disabled], +fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + box-shadow: none; +} + +.button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-black.is-inverted[disabled], +fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-loading::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; +} + +.button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; +} + +.button.is-black.is-outlined[disabled], +fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; +} + +.button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; +} + +.button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; +} + +.button.is-black.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; +} + +.button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light[disabled], +fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; +} + +.button.is-light.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: whitesmoke; +} + +.button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); +} + +.button.is-light.is-inverted[disabled], +fieldset[disabled] .button.is-light.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; +} + +.button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-light.is-outlined[disabled], +fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); +} + +.button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: whitesmoke; +} + +.button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; +} + +.button.is-light.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-dark { + background-color: #363636; + border-color: transparent; + color: #fff; +} + +.button.is-dark:hover, .button.is-dark.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: #fff; +} + +.button.is-dark:focus, .button.is-dark.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.button.is-dark:active, .button.is-dark.is-active { + background-color: #292929; + border-color: transparent; + color: #fff; +} + +.button.is-dark[disabled], +fieldset[disabled] .button.is-dark { + background-color: #363636; + border-color: #363636; + box-shadow: none; +} + +.button.is-dark.is-inverted { + background-color: #fff; + color: #363636; +} + +.button.is-dark.is-inverted:hover, .button.is-dark.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-dark.is-inverted[disabled], +fieldset[disabled] .button.is-dark.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; +} + +.button.is-dark.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .button.is-dark.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: #fff; +} + +.button.is-dark.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-dark.is-outlined[disabled], +fieldset[disabled] .button.is-dark.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-dark.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #363636; +} + +.button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; +} + +.button.is-dark.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-dark.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-primary { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.button.is-primary:hover, .button.is-primary.is-hovered { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus, .button.is-primary.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-primary:focus:not(:active), .button.is-primary.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.button.is-primary:active, .button.is-primary.is-active { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.button.is-primary[disabled], +fieldset[disabled] .button.is-primary { + background-color: #00d1b2; + border-color: #00d1b2; + box-shadow: none; +} + +.button.is-primary.is-inverted { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted:hover, .button.is-primary.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-primary.is-inverted[disabled], +fieldset[disabled] .button.is-primary.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + color: #00d1b2; +} + +.button.is-primary.is-outlined:hover, .button.is-primary.is-outlined.is-hovered, .button.is-primary.is-outlined:focus, .button.is-primary.is-outlined.is-focused { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.button.is-primary.is-outlined.is-loading::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-outlined.is-loading:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-outlined.is-loading:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-primary.is-outlined[disabled], +fieldset[disabled] .button.is-primary.is-outlined { + background-color: transparent; + border-color: #00d1b2; + box-shadow: none; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-primary.is-inverted.is-outlined:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .button.is-primary.is-inverted.is-outlined:focus, .button.is-primary.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #00d1b2; +} + +.button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #00d1b2 #00d1b2 !important; +} + +.button.is-primary.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-primary.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-primary.is-light { + background-color: #ebfffc; + color: #00947e; +} + +.button.is-primary.is-light:hover, .button.is-primary.is-light.is-hovered { + background-color: #defffa; + border-color: transparent; + color: #00947e; +} + +.button.is-primary.is-light:active, .button.is-primary.is-light.is-active { + background-color: #d1fff8; + border-color: transparent; + color: #00947e; +} + +.button.is-link { + background-color: #485fc7; + border-color: transparent; + color: #fff; +} + +.button.is-link:hover, .button.is-link.is-hovered { + background-color: #3e56c4; + border-color: transparent; + color: #fff; +} + +.button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.button.is-link:active, .button.is-link.is-active { + background-color: #3a51bb; + border-color: transparent; + color: #fff; +} + +.button.is-link[disabled], +fieldset[disabled] .button.is-link { + background-color: #485fc7; + border-color: #485fc7; + box-shadow: none; +} + +.button.is-link.is-inverted { + background-color: #fff; + color: #485fc7; +} + +.button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-link.is-inverted[disabled], +fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #485fc7; +} + +.button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined { + background-color: transparent; + border-color: #485fc7; + color: #485fc7; +} + +.button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; +} + +.button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #485fc7 #485fc7 !important; +} + +.button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-link.is-outlined[disabled], +fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #485fc7; + box-shadow: none; + color: #485fc7; +} + +.button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #485fc7; +} + +.button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #485fc7 #485fc7 !important; +} + +.button.is-link.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-link.is-light { + background-color: #eff1fa; + color: #3850b7; +} + +.button.is-link.is-light:hover, .button.is-link.is-light.is-hovered { + background-color: #e6e9f7; + border-color: transparent; + color: #3850b7; +} + +.button.is-link.is-light:active, .button.is-link.is-light.is-active { + background-color: #dce0f4; + border-color: transparent; + color: #3850b7; +} + +.button.is-info { + background-color: #3e8ed0; + border-color: transparent; + color: #fff; +} + +.button.is-info:hover, .button.is-info.is-hovered { + background-color: #3488ce; + border-color: transparent; + color: #fff; +} + +.button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25); +} + +.button.is-info:active, .button.is-info.is-active { + background-color: #3082c5; + border-color: transparent; + color: #fff; +} + +.button.is-info[disabled], +fieldset[disabled] .button.is-info { + background-color: #3e8ed0; + border-color: #3e8ed0; + box-shadow: none; +} + +.button.is-info.is-inverted { + background-color: #fff; + color: #3e8ed0; +} + +.button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-info.is-inverted[disabled], +fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #3e8ed0; +} + +.button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined { + background-color: transparent; + border-color: #3e8ed0; + color: #3e8ed0; +} + +.button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #3e8ed0; + border-color: #3e8ed0; + color: #fff; +} + +.button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #3e8ed0 #3e8ed0 !important; +} + +.button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-info.is-outlined[disabled], +fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #3e8ed0; + box-shadow: none; + color: #3e8ed0; +} + +.button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #3e8ed0; +} + +.button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #3e8ed0 #3e8ed0 !important; +} + +.button.is-info.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-info.is-light { + background-color: #eff5fb; + color: #296fa8; +} + +.button.is-info.is-light:hover, .button.is-info.is-light.is-hovered { + background-color: #e4eff9; + border-color: transparent; + color: #296fa8; +} + +.button.is-info.is-light:active, .button.is-info.is-light.is-active { + background-color: #dae9f6; + border-color: transparent; + color: #296fa8; +} + +.button.is-success { + background-color: #48c78e; + border-color: transparent; + color: #fff; +} + +.button.is-success:hover, .button.is-success.is-hovered { + background-color: #3ec487; + border-color: transparent; + color: #fff; +} + +.button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25); +} + +.button.is-success:active, .button.is-success.is-active { + background-color: #3abb81; + border-color: transparent; + color: #fff; +} + +.button.is-success[disabled], +fieldset[disabled] .button.is-success { + background-color: #48c78e; + border-color: #48c78e; + box-shadow: none; +} + +.button.is-success.is-inverted { + background-color: #fff; + color: #48c78e; +} + +.button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-success.is-inverted[disabled], +fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #48c78e; +} + +.button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined { + background-color: transparent; + border-color: #48c78e; + color: #48c78e; +} + +.button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #48c78e; + border-color: #48c78e; + color: #fff; +} + +.button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #48c78e #48c78e !important; +} + +.button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-success.is-outlined[disabled], +fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #48c78e; + box-shadow: none; + color: #48c78e; +} + +.button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #48c78e; +} + +.button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #48c78e #48c78e !important; +} + +.button.is-success.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-success.is-light { + background-color: #effaf5; + color: #257953; +} + +.button.is-success.is-light:hover, .button.is-success.is-light.is-hovered { + background-color: #e6f7ef; + border-color: transparent; + color: #257953; +} + +.button.is-success.is-light:active, .button.is-success.is-light.is-active { + background-color: #dcf4e9; + border-color: transparent; + color: #257953; +} + +.button.is-warning { + background-color: #ffe08a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdc7d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25); +} + +.button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd970; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning[disabled], +fieldset[disabled] .button.is-warning { + background-color: #ffe08a; + border-color: #ffe08a; + box-shadow: none; +} + +.button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffe08a; +} + +.button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted[disabled], +fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffe08a; +} + +.button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffe08a; + color: #ffe08a; +} + +.button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffe08a; + border-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffe08a #ffe08a !important; +} + +.button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; +} + +.button.is-warning.is-outlined[disabled], +fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffe08a; + box-shadow: none; + color: #ffe08a; +} + +.button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffe08a; +} + +.button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffe08a #ffe08a !important; +} + +.button.is-warning.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); +} + +.button.is-warning.is-light { + background-color: #fffaeb; + color: #946c00; +} + +.button.is-warning.is-light:hover, .button.is-warning.is-light.is-hovered { + background-color: #fff6de; + border-color: transparent; + color: #946c00; +} + +.button.is-warning.is-light:active, .button.is-warning.is-light.is-active { + background-color: #fff3d1; + border-color: transparent; + color: #946c00; +} + +.button.is-danger { + background-color: #f14668; + border-color: transparent; + color: #fff; +} + +.button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #f03a5f; + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; +} + +.button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); +} + +.button.is-danger:active, .button.is-danger.is-active { + background-color: #ef2e55; + border-color: transparent; + color: #fff; +} + +.button.is-danger[disabled], +fieldset[disabled] .button.is-danger { + background-color: #f14668; + border-color: #f14668; + box-shadow: none; +} + +.button.is-danger.is-inverted { + background-color: #fff; + color: #f14668; +} + +.button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; +} + +.button.is-danger.is-inverted[disabled], +fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #f14668; +} + +.button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined { + background-color: transparent; + border-color: #f14668; + color: #f14668; +} + +.button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #f14668; + border-color: #f14668; + color: #fff; +} + +.button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #f14668 #f14668 !important; +} + +.button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; +} + +.button.is-danger.is-outlined[disabled], +fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #f14668; + box-shadow: none; + color: #f14668; +} + +.button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; +} + +.button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #f14668; +} + +.button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #f14668 #f14668 !important; +} + +.button.is-danger.is-inverted.is-outlined[disabled], +fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; +} + +.button.is-danger.is-light { + background-color: #feecf0; + color: #cc0f35; +} + +.button.is-danger.is-light:hover, .button.is-danger.is-light.is-hovered { + background-color: #fde0e6; + border-color: transparent; + color: #cc0f35; +} + +.button.is-danger.is-light:active, .button.is-danger.is-light.is-active { + background-color: #fcd4dc; + border-color: transparent; + color: #cc0f35; +} + +.button.is-small { + font-size: 0.75rem; +} + +.button.is-small:not(.is-rounded) { + border-radius: 2px; +} + +.button.is-normal { + font-size: 1rem; +} + +.button.is-medium { + font-size: 1.25rem; +} + +.button.is-large { + font-size: 1.5rem; +} + +.button[disabled], +fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; +} + +.button.is-fullwidth { + display: flex; + width: 100%; +} + +.button.is-loading { + color: transparent !important; + pointer-events: none; +} + +.button.is-loading::after { + position: absolute; + left: calc(50% - (1em * 0.5)); + top: calc(50% - (1em * 0.5)); + position: absolute !important; +} + +.button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; +} + +.button.is-rounded { + border-radius: 9999px; + padding-left: calc(1em + 0.25em); + padding-right: calc(1em + 0.25em); +} + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.buttons .button { + margin-bottom: 0.5rem; +} + +.buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; +} + +.buttons:last-child { + margin-bottom: -0.5rem; +} + +.buttons:not(:last-child) { + margin-bottom: 1rem; +} + +.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + font-size: 0.75rem; +} + +.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded) { + border-radius: 2px; +} + +.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; +} + +.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; +} + +.buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; +} + +.buttons.has-addons .button:last-child { + margin-right: 0; +} + +.buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; +} + +.buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; +} + +.buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; +} + +.buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.buttons.is-centered { + justify-content: center; +} + +.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.buttons.is-right { + justify-content: flex-end; +} + +.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +@media screen and (max-width: 768px) { + .button.is-responsive.is-small { + font-size: 0.5625rem; + } + .button.is-responsive, + .button.is-responsive.is-normal { + font-size: 0.65625rem; + } + .button.is-responsive.is-medium { + font-size: 0.75rem; + } + .button.is-responsive.is-large { + font-size: 1rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .button.is-responsive.is-small { + font-size: 0.65625rem; + } + .button.is-responsive, + .button.is-responsive.is-normal { + font-size: 0.75rem; + } + .button.is-responsive.is-medium { + font-size: 1rem; + } + .button.is-responsive.is-large { + font-size: 1.25rem; + } +} + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; +} + +.container.is-fluid { + max-width: none !important; + padding-left: 32px; + padding-right: 32px; + width: 100%; +} + +@media screen and (min-width: 1024px) { + .container { + max-width: 960px; + } +} + +@media screen and (max-width: 1215px) { + .container.is-widescreen:not(.is-max-desktop) { + max-width: 1152px; + } +} + +@media screen and (max-width: 1407px) { + .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) { + max-width: 1344px; + } +} + +@media screen and (min-width: 1216px) { + .container:not(.is-max-desktop) { + max-width: 1152px; + } +} + +@media screen and (min-width: 1408px) { + .container:not(.is-max-desktop):not(.is-max-widescreen) { + max-width: 1344px; + } +} + +.content li + li { + margin-top: 0.25em; +} + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #363636; + font-weight: 600; + line-height: 1.125; +} + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; +} + +.content h1:not(:first-child) { + margin-top: 1em; +} + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; +} + +.content h2:not(:first-child) { + margin-top: 1.1428em; +} + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; +} + +.content h3:not(:first-child) { + margin-top: 1.3333em; +} + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; +} + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; +} + +.content h6 { + font-size: 1em; + margin-bottom: 1em; +} + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; +} + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; +} + +.content ol:not([type]) { + list-style-type: decimal; +} + +.content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; +} + +.content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; +} + +.content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; +} + +.content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; +} + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; +} + +.content ul ul { + list-style-type: circle; + margin-top: 0.5em; +} + +.content ul ul ul { + list-style-type: square; +} + +.content dd { + margin-left: 2em; +} + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; +} + +.content figure:not(:first-child) { + margin-top: 2em; +} + +.content figure:not(:last-child) { + margin-bottom: 2em; +} + +.content figure img { + display: inline-block; +} + +.content figure figcaption { + font-style: italic; +} + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 1.25em 1.5em; + white-space: pre; + word-wrap: normal; +} + +.content sup, +.content sub { + font-size: 75%; +} + +.content table { + width: 100%; +} + +.content table td, +.content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.content table th { + color: #363636; +} + +.content table th:not([align]) { + text-align: inherit; +} + +.content table thead td, +.content table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.content table tfoot td, +.content table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.content table tbody tr:last-child td, +.content table tbody tr:last-child th { + border-bottom-width: 0; +} + +.content .tabs li + li { + margin-top: 0; +} + +.content.is-small { + font-size: 0.75rem; +} + +.content.is-normal { + font-size: 1rem; +} + +.content.is-medium { + font-size: 1.25rem; +} + +.content.is-large { + font-size: 1.5rem; +} + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; +} + +.icon.is-small { + height: 1rem; + width: 1rem; +} + +.icon.is-medium { + height: 2rem; + width: 2rem; +} + +.icon.is-large { + height: 3rem; + width: 3rem; +} + +.icon-text { + align-items: flex-start; + color: inherit; + display: inline-flex; + flex-wrap: wrap; + line-height: 1.5rem; + vertical-align: top; +} + +.icon-text .icon { + flex-grow: 0; + flex-shrink: 0; +} + +.icon-text .icon:not(:last-child) { + margin-right: 0.25em; +} + +.icon-text .icon:not(:first-child) { + margin-left: 0.25em; +} + +div.icon-text { + display: flex; +} + +.image { + display: block; + position: relative; +} + +.image img { + display: block; + height: auto; + width: 100%; +} + +.image img.is-rounded { + border-radius: 9999px; +} + +.image.is-fullwidth { + width: 100%; +} + +.image.is-square img, +.image.is-square .has-ratio, .image.is-1by1 img, +.image.is-1by1 .has-ratio, .image.is-5by4 img, +.image.is-5by4 .has-ratio, .image.is-4by3 img, +.image.is-4by3 .has-ratio, .image.is-3by2 img, +.image.is-3by2 .has-ratio, .image.is-5by3 img, +.image.is-5by3 .has-ratio, .image.is-16by9 img, +.image.is-16by9 .has-ratio, .image.is-2by1 img, +.image.is-2by1 .has-ratio, .image.is-3by1 img, +.image.is-3by1 .has-ratio, .image.is-4by5 img, +.image.is-4by5 .has-ratio, .image.is-3by4 img, +.image.is-3by4 .has-ratio, .image.is-2by3 img, +.image.is-2by3 .has-ratio, .image.is-3by5 img, +.image.is-3by5 .has-ratio, .image.is-9by16 img, +.image.is-9by16 .has-ratio, .image.is-1by2 img, +.image.is-1by2 .has-ratio, .image.is-1by3 img, +.image.is-1by3 .has-ratio { + height: 100%; + width: 100%; +} + +.image.is-square, .image.is-1by1 { + padding-top: 100%; +} + +.image.is-5by4 { + padding-top: 80%; +} + +.image.is-4by3 { + padding-top: 75%; +} + +.image.is-3by2 { + padding-top: 66.6666%; +} + +.image.is-5by3 { + padding-top: 60%; +} + +.image.is-16by9 { + padding-top: 56.25%; +} + +.image.is-2by1 { + padding-top: 50%; +} + +.image.is-3by1 { + padding-top: 33.3333%; +} + +.image.is-4by5 { + padding-top: 125%; +} + +.image.is-3by4 { + padding-top: 133.3333%; +} + +.image.is-2by3 { + padding-top: 150%; +} + +.image.is-3by5 { + padding-top: 166.6666%; +} + +.image.is-9by16 { + padding-top: 177.7777%; +} + +.image.is-1by2 { + padding-top: 200%; +} + +.image.is-1by3 { + padding-top: 300%; +} + +.image.is-16x16 { + height: 16px; + width: 16px; +} + +.image.is-24x24 { + height: 24px; + width: 24px; +} + +.image.is-32x32 { + height: 32px; + width: 32px; +} + +.image.is-48x48 { + height: 48px; + width: 48px; +} + +.image.is-64x64 { + height: 64px; + width: 64px; +} + +.image.is-96x96 { + height: 96px; + width: 96px; +} + +.image.is-128x128 { + height: 128px; + width: 128px; +} + +.notification { + background-color: whitesmoke; + border-radius: 4px; + position: relative; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; +} + +.notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.notification strong { + color: currentColor; +} + +.notification code, +.notification pre { + background: white; +} + +.notification pre code { + background: transparent; +} + +.notification > .delete { + right: 0.5rem; + position: absolute; + top: 0.5rem; +} + +.notification .title, +.notification .subtitle, +.notification .content { + color: currentColor; +} + +.notification.is-white { + background-color: white; + color: #0a0a0a; +} + +.notification.is-black { + background-color: #0a0a0a; + color: white; +} + +.notification.is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.notification.is-dark { + background-color: #363636; + color: #fff; +} + +.notification.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.notification.is-primary.is-light { + background-color: #ebfffc; + color: #00947e; +} + +.notification.is-link { + background-color: #485fc7; + color: #fff; +} + +.notification.is-link.is-light { + background-color: #eff1fa; + color: #3850b7; +} + +.notification.is-info { + background-color: #3e8ed0; + color: #fff; +} + +.notification.is-info.is-light { + background-color: #eff5fb; + color: #296fa8; +} + +.notification.is-success { + background-color: #48c78e; + color: #fff; +} + +.notification.is-success.is-light { + background-color: #effaf5; + color: #257953; +} + +.notification.is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.notification.is-warning.is-light { + background-color: #fffaeb; + color: #946c00; +} + +.notification.is-danger { + background-color: #f14668; + color: #fff; +} + +.notification.is-danger.is-light { + background-color: #feecf0; + color: #cc0f35; +} + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 9999px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; +} + +.progress::-webkit-progress-bar { + background-color: #ededed; +} + +.progress::-webkit-progress-value { + background-color: #4a4a4a; +} + +.progress::-moz-progress-bar { + background-color: #4a4a4a; +} + +.progress::-ms-fill { + background-color: #4a4a4a; + border: none; +} + +.progress.is-white::-webkit-progress-value { + background-color: white; +} + +.progress.is-white::-moz-progress-bar { + background-color: white; +} + +.progress.is-white::-ms-fill { + background-color: white; +} + +.progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #ededed 30%); +} + +.progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; +} + +.progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; +} + +.progress.is-black::-ms-fill { + background-color: #0a0a0a; +} + +.progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #ededed 30%); +} + +.progress.is-light::-webkit-progress-value { + background-color: whitesmoke; +} + +.progress.is-light::-moz-progress-bar { + background-color: whitesmoke; +} + +.progress.is-light::-ms-fill { + background-color: whitesmoke; +} + +.progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #ededed 30%); +} + +.progress.is-dark::-webkit-progress-value { + background-color: #363636; +} + +.progress.is-dark::-moz-progress-bar { + background-color: #363636; +} + +.progress.is-dark::-ms-fill { + background-color: #363636; +} + +.progress.is-dark:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #ededed 30%); +} + +.progress.is-primary::-webkit-progress-value { + background-color: #00d1b2; +} + +.progress.is-primary::-moz-progress-bar { + background-color: #00d1b2; +} + +.progress.is-primary::-ms-fill { + background-color: #00d1b2; +} + +.progress.is-primary:indeterminate { + background-image: linear-gradient(to right, #00d1b2 30%, #ededed 30%); +} + +.progress.is-link::-webkit-progress-value { + background-color: #485fc7; +} + +.progress.is-link::-moz-progress-bar { + background-color: #485fc7; +} + +.progress.is-link::-ms-fill { + background-color: #485fc7; +} + +.progress.is-link:indeterminate { + background-image: linear-gradient(to right, #485fc7 30%, #ededed 30%); +} + +.progress.is-info::-webkit-progress-value { + background-color: #3e8ed0; +} + +.progress.is-info::-moz-progress-bar { + background-color: #3e8ed0; +} + +.progress.is-info::-ms-fill { + background-color: #3e8ed0; +} + +.progress.is-info:indeterminate { + background-image: linear-gradient(to right, #3e8ed0 30%, #ededed 30%); +} + +.progress.is-success::-webkit-progress-value { + background-color: #48c78e; +} + +.progress.is-success::-moz-progress-bar { + background-color: #48c78e; +} + +.progress.is-success::-ms-fill { + background-color: #48c78e; +} + +.progress.is-success:indeterminate { + background-image: linear-gradient(to right, #48c78e 30%, #ededed 30%); +} + +.progress.is-warning::-webkit-progress-value { + background-color: #ffe08a; +} + +.progress.is-warning::-moz-progress-bar { + background-color: #ffe08a; +} + +.progress.is-warning::-ms-fill { + background-color: #ffe08a; +} + +.progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffe08a 30%, #ededed 30%); +} + +.progress.is-danger::-webkit-progress-value { + background-color: #f14668; +} + +.progress.is-danger::-moz-progress-bar { + background-color: #f14668; +} + +.progress.is-danger::-ms-fill { + background-color: #f14668; +} + +.progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #f14668 30%, #ededed 30%); +} + +.progress:indeterminate { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-name: moveIndeterminate; + animation-name: moveIndeterminate; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + background-color: #ededed; + background-image: linear-gradient(to right, #4a4a4a 30%, #ededed 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; +} + +.progress:indeterminate::-webkit-progress-bar { + background-color: transparent; +} + +.progress:indeterminate::-moz-progress-bar { + background-color: transparent; +} + +.progress:indeterminate::-ms-fill { + animation-name: none; +} + +.progress.is-small { + height: 0.75rem; +} + +.progress.is-medium { + height: 1.25rem; +} + +.progress.is-large { + height: 1.5rem; +} + +@-webkit-keyframes moveIndeterminate { + from { + background-position: 200% 0; + } + to { + background-position: -200% 0; + } +} + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; + } + to { + background-position: -200% 0; + } +} + +.table { + background-color: white; + color: #363636; +} + +.table td, +.table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; +} + +.table td.is-white, +.table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.table td.is-black, +.table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.table td.is-light, +.table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.table td.is-dark, +.table th.is-dark { + background-color: #363636; + border-color: #363636; + color: #fff; +} + +.table td.is-primary, +.table th.is-primary { + background-color: #00d1b2; + border-color: #00d1b2; + color: #fff; +} + +.table td.is-link, +.table th.is-link { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; +} + +.table td.is-info, +.table th.is-info { + background-color: #3e8ed0; + border-color: #3e8ed0; + color: #fff; +} + +.table td.is-success, +.table th.is-success { + background-color: #48c78e; + border-color: #48c78e; + color: #fff; +} + +.table td.is-warning, +.table th.is-warning { + background-color: #ffe08a; + border-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.table td.is-danger, +.table th.is-danger { + background-color: #f14668; + border-color: #f14668; + color: #fff; +} + +.table td.is-narrow, +.table th.is-narrow { + white-space: nowrap; + width: 1%; +} + +.table td.is-selected, +.table th.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table td.is-selected a, +.table td.is-selected strong, +.table th.is-selected a, +.table th.is-selected strong { + color: currentColor; +} + +.table td.is-vcentered, +.table th.is-vcentered { + vertical-align: middle; +} + +.table th { + color: #363636; +} + +.table th:not([align]) { + text-align: left; +} + +.table tr.is-selected { + background-color: #00d1b2; + color: #fff; +} + +.table tr.is-selected a, +.table tr.is-selected strong { + color: currentColor; +} + +.table tr.is-selected td, +.table tr.is-selected th { + border-color: #fff; + color: currentColor; +} + +.table thead { + background-color: transparent; +} + +.table thead td, +.table thead th { + border-width: 0 0 2px; + color: #363636; +} + +.table tfoot { + background-color: transparent; +} + +.table tfoot td, +.table tfoot th { + border-width: 2px 0 0; + color: #363636; +} + +.table tbody { + background-color: transparent; +} + +.table tbody tr:last-child td, +.table tbody tr:last-child th { + border-bottom-width: 0; +} + +.table.is-bordered td, +.table.is-bordered th { + border-width: 1px; +} + +.table.is-bordered tr:last-child td, +.table.is-bordered tr:last-child th { + border-bottom-width: 1px; +} + +.table.is-fullwidth { + width: 100%; +} + +.table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; +} + +.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; +} + +.table.is-narrow td, +.table.is-narrow th { + padding: 0.25em 0.5em; +} + +.table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; +} + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; +} + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.tags .tag { + margin-bottom: 0.5rem; +} + +.tags .tag:not(:last-child) { + margin-right: 0.5rem; +} + +.tags:last-child { + margin-bottom: -0.5rem; +} + +.tags:not(:last-child) { + margin-bottom: 1rem; +} + +.tags.are-medium .tag:not(.is-normal):not(.is-large) { + font-size: 1rem; +} + +.tags.are-large .tag:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; +} + +.tags.is-centered { + justify-content: center; +} + +.tags.is-centered .tag { + margin-right: 0.25rem; + margin-left: 0.25rem; +} + +.tags.is-right { + justify-content: flex-end; +} + +.tags.is-right .tag:not(:first-child) { + margin-left: 0.5rem; +} + +.tags.is-right .tag:not(:last-child) { + margin-right: 0; +} + +.tags.has-addons .tag { + margin-right: 0; +} + +.tags.has-addons .tag:not(:first-child) { + margin-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.tags.has-addons .tag:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.tag:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #4a4a4a; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.tag:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; +} + +.tag:not(body).is-white { + background-color: white; + color: #0a0a0a; +} + +.tag:not(body).is-black { + background-color: #0a0a0a; + color: white; +} + +.tag:not(body).is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.tag:not(body).is-dark { + background-color: #363636; + color: #fff; +} + +.tag:not(body).is-primary { + background-color: #00d1b2; + color: #fff; +} + +.tag:not(body).is-primary.is-light { + background-color: #ebfffc; + color: #00947e; +} + +.tag:not(body).is-link { + background-color: #485fc7; + color: #fff; +} + +.tag:not(body).is-link.is-light { + background-color: #eff1fa; + color: #3850b7; +} + +.tag:not(body).is-info { + background-color: #3e8ed0; + color: #fff; +} + +.tag:not(body).is-info.is-light { + background-color: #eff5fb; + color: #296fa8; +} + +.tag:not(body).is-success { + background-color: #48c78e; + color: #fff; +} + +.tag:not(body).is-success.is-light { + background-color: #effaf5; + color: #257953; +} + +.tag:not(body).is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.tag:not(body).is-warning.is-light { + background-color: #fffaeb; + color: #946c00; +} + +.tag:not(body).is-danger { + background-color: #f14668; + color: #fff; +} + +.tag:not(body).is-danger.is-light { + background-color: #feecf0; + color: #cc0f35; +} + +.tag:not(body).is-normal { + font-size: 0.75rem; +} + +.tag:not(body).is-medium { + font-size: 1rem; +} + +.tag:not(body).is-large { + font-size: 1.25rem; +} + +.tag:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; +} + +.tag:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; +} + +.tag:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; +} + +.tag:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; +} + +.tag:not(body).is-delete::before, .tag:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; +} + +.tag:not(body).is-delete::before { + height: 1px; + width: 50%; +} + +.tag:not(body).is-delete::after { + height: 50%; + width: 1px; +} + +.tag:not(body).is-delete:hover, .tag:not(body).is-delete:focus { + background-color: #e8e8e8; +} + +.tag:not(body).is-delete:active { + background-color: #dbdbdb; +} + +.tag:not(body).is-rounded { + border-radius: 9999px; +} + +a.tag:hover { + text-decoration: underline; +} + +.title, +.subtitle { + word-break: break-word; +} + +.title em, +.title span, +.subtitle em, +.subtitle span { + font-weight: inherit; +} + +.title sub, +.subtitle sub { + font-size: 0.75em; +} + +.title sup, +.subtitle sup { + font-size: 0.75em; +} + +.title .tag, +.subtitle .tag { + vertical-align: middle; +} + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; +} + +.title strong { + color: inherit; + font-weight: inherit; +} + +.title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; +} + +.title.is-1 { + font-size: 3rem; +} + +.title.is-2 { + font-size: 2.5rem; +} + +.title.is-3 { + font-size: 2rem; +} + +.title.is-4 { + font-size: 1.5rem; +} + +.title.is-5 { + font-size: 1.25rem; +} + +.title.is-6 { + font-size: 1rem; +} + +.title.is-7 { + font-size: 0.75rem; +} + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; +} + +.subtitle strong { + color: #363636; + font-weight: 600; +} + +.subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; +} + +.subtitle.is-1 { + font-size: 3rem; +} + +.subtitle.is-2 { + font-size: 2.5rem; +} + +.subtitle.is-3 { + font-size: 2rem; +} + +.subtitle.is-4 { + font-size: 1.5rem; +} + +.subtitle.is-5 { + font-size: 1.25rem; +} + +.subtitle.is-6 { + font-size: 1rem; +} + +.subtitle.is-7 { + font-size: 0.75rem; +} + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; +} + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 9999px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; +} + +/* Bulma Form */ +.input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; +} + +.input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); +} + +.input:hover, .textarea:hover, .select select:hover, .is-hovered.input, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; +} + +.input:focus, .textarea:focus, .select select:focus, .is-focused.input, .is-focused.textarea, .select select.is-focused, .input:active, .textarea:active, .select select:active, .is-active.input, .is-active.textarea, .select select.is-active { + border-color: #485fc7; + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.input[disabled], .textarea[disabled], .select select[disabled], +fieldset[disabled] .input, +fieldset[disabled] .textarea, +fieldset[disabled] .select select, +.select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; +} + +.input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, +fieldset[disabled] .input::-moz-placeholder, +fieldset[disabled] .textarea::-moz-placeholder, +fieldset[disabled] .select select::-moz-placeholder, +.select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, +fieldset[disabled] .input::-webkit-input-placeholder, +fieldset[disabled] .textarea::-webkit-input-placeholder, +fieldset[disabled] .select select::-webkit-input-placeholder, +.select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, +fieldset[disabled] .input:-moz-placeholder, +fieldset[disabled] .textarea:-moz-placeholder, +fieldset[disabled] .select select:-moz-placeholder, +.select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, +fieldset[disabled] .input:-ms-input-placeholder, +fieldset[disabled] .textarea:-ms-input-placeholder, +fieldset[disabled] .select select:-ms-input-placeholder, +.select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); +} + +.input, .textarea { + box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); + max-width: 100%; + width: 100%; +} + +.input[readonly], .textarea[readonly] { + box-shadow: none; +} + +.is-white.input, .is-white.textarea { + border-color: white; +} + +.is-white.input:focus, .is-white.textarea:focus, .is-white.is-focused.input, .is-white.is-focused.textarea, .is-white.input:active, .is-white.textarea:active, .is-white.is-active.input, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.is-black.input, .is-black.textarea { + border-color: #0a0a0a; +} + +.is-black.input:focus, .is-black.textarea:focus, .is-black.is-focused.input, .is-black.is-focused.textarea, .is-black.input:active, .is-black.textarea:active, .is-black.is-active.input, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.is-light.input, .is-light.textarea { + border-color: whitesmoke; +} + +.is-light.input:focus, .is-light.textarea:focus, .is-light.is-focused.input, .is-light.is-focused.textarea, .is-light.input:active, .is-light.textarea:active, .is-light.is-active.input, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.is-dark.input, .is-dark.textarea { + border-color: #363636; +} + +.is-dark.input:focus, .is-dark.textarea:focus, .is-dark.is-focused.input, .is-dark.is-focused.textarea, .is-dark.input:active, .is-dark.textarea:active, .is-dark.is-active.input, .is-dark.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.is-primary.input, .is-primary.textarea { + border-color: #00d1b2; +} + +.is-primary.input:focus, .is-primary.textarea:focus, .is-primary.is-focused.input, .is-primary.is-focused.textarea, .is-primary.input:active, .is-primary.textarea:active, .is-primary.is-active.input, .is-primary.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.is-link.input, .is-link.textarea { + border-color: #485fc7; +} + +.is-link.input:focus, .is-link.textarea:focus, .is-link.is-focused.input, .is-link.is-focused.textarea, .is-link.input:active, .is-link.textarea:active, .is-link.is-active.input, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.is-info.input, .is-info.textarea { + border-color: #3e8ed0; +} + +.is-info.input:focus, .is-info.textarea:focus, .is-info.is-focused.input, .is-info.is-focused.textarea, .is-info.input:active, .is-info.textarea:active, .is-info.is-active.input, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25); +} + +.is-success.input, .is-success.textarea { + border-color: #48c78e; +} + +.is-success.input:focus, .is-success.textarea:focus, .is-success.is-focused.input, .is-success.is-focused.textarea, .is-success.input:active, .is-success.textarea:active, .is-success.is-active.input, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25); +} + +.is-warning.input, .is-warning.textarea { + border-color: #ffe08a; +} + +.is-warning.input:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, .is-warning.is-focused.textarea, .is-warning.input:active, .is-warning.textarea:active, .is-warning.is-active.input, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25); +} + +.is-danger.input, .is-danger.textarea { + border-color: #f14668; +} + +.is-danger.input:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, .is-danger.is-focused.textarea, .is-danger.input:active, .is-danger.textarea:active, .is-danger.is-active.input, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); +} + +.is-small.input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; +} + +.is-medium.input, .is-medium.textarea { + font-size: 1.25rem; +} + +.is-large.input, .is-large.textarea { + font-size: 1.5rem; +} + +.is-fullwidth.input, .is-fullwidth.textarea { + display: block; + width: 100%; +} + +.is-inline.input, .is-inline.textarea { + display: inline; + width: auto; +} + +.input.is-rounded { + border-radius: 9999px; + padding-left: calc(calc(0.75em - 1px) + 0.375em); + padding-right: calc(calc(0.75em - 1px) + 0.375em); +} + +.input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; +} + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: calc(0.75em - 1px); + resize: vertical; +} + +.textarea:not([rows]) { + max-height: 40em; + min-height: 8em; +} + +.textarea[rows] { + height: initial; +} + +.textarea.has-fixed-size { + resize: none; +} + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; +} + +.checkbox input, .radio input { + cursor: pointer; +} + +.checkbox:hover, .radio:hover { + color: #363636; +} + +.checkbox[disabled], .radio[disabled], +fieldset[disabled] .checkbox, +fieldset[disabled] .radio, +.checkbox input[disabled], +.radio input[disabled] { + color: #7a7a7a; + cursor: not-allowed; +} + +.radio + .radio { + margin-left: 0.5em; +} + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; +} + +.select:not(.is-multiple) { + height: 2.5em; +} + +.select:not(.is-multiple):not(.is-loading)::after { + border-color: #485fc7; + right: 1.125em; + z-index: 4; +} + +.select.is-rounded select { + border-radius: 9999px; + padding-left: 1em; +} + +.select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; +} + +.select select::-ms-expand { + display: none; +} + +.select select[disabled]:hover, +fieldset[disabled] .select select:hover { + border-color: whitesmoke; +} + +.select select:not([multiple]) { + padding-right: 2.5em; +} + +.select select[multiple] { + height: auto; + padding: 0; +} + +.select select[multiple] option { + padding: 0.5em 1em; +} + +.select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; +} + +.select.is-white:not(:hover)::after { + border-color: white; +} + +.select.is-white select { + border-color: white; +} + +.select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; +} + +.select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); +} + +.select.is-black:not(:hover)::after { + border-color: #0a0a0a; +} + +.select.is-black select { + border-color: #0a0a0a; +} + +.select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; +} + +.select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); +} + +.select.is-light:not(:hover)::after { + border-color: whitesmoke; +} + +.select.is-light select { + border-color: whitesmoke; +} + +.select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; +} + +.select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); +} + +.select.is-dark:not(:hover)::after { + border-color: #363636; +} + +.select.is-dark select { + border-color: #363636; +} + +.select.is-dark select:hover, .select.is-dark select.is-hovered { + border-color: #292929; +} + +.select.is-dark select:focus, .select.is-dark select.is-focused, .select.is-dark select:active, .select.is-dark select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); +} + +.select.is-primary:not(:hover)::after { + border-color: #00d1b2; +} + +.select.is-primary select { + border-color: #00d1b2; +} + +.select.is-primary select:hover, .select.is-primary select.is-hovered { + border-color: #00b89c; +} + +.select.is-primary select:focus, .select.is-primary select.is-focused, .select.is-primary select:active, .select.is-primary select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 209, 178, 0.25); +} + +.select.is-link:not(:hover)::after { + border-color: #485fc7; +} + +.select.is-link select { + border-color: #485fc7; +} + +.select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #3a51bb; +} + +.select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(72, 95, 199, 0.25); +} + +.select.is-info:not(:hover)::after { + border-color: #3e8ed0; +} + +.select.is-info select { + border-color: #3e8ed0; +} + +.select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #3082c5; +} + +.select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(62, 142, 208, 0.25); +} + +.select.is-success:not(:hover)::after { + border-color: #48c78e; +} + +.select.is-success select { + border-color: #48c78e; +} + +.select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #3abb81; +} + +.select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(72, 199, 142, 0.25); +} + +.select.is-warning:not(:hover)::after { + border-color: #ffe08a; +} + +.select.is-warning select { + border-color: #ffe08a; +} + +.select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd970; +} + +.select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 224, 138, 0.25); +} + +.select.is-danger:not(:hover)::after { + border-color: #f14668; +} + +.select.is-danger select { + border-color: #f14668; +} + +.select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #ef2e55; +} + +.select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); +} + +.select.is-small { + border-radius: 2px; + font-size: 0.75rem; +} + +.select.is-medium { + font-size: 1.25rem; +} + +.select.is-large { + font-size: 1.5rem; +} + +.select.is-disabled::after { + border-color: #7a7a7a !important; + opacity: 0.5; +} + +.select.is-fullwidth { + width: 100%; +} + +.select.is-fullwidth select { + width: 100%; +} + +.select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; +} + +.select.is-loading.is-small:after { + font-size: 0.75rem; +} + +.select.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.select.is-loading.is-large:after { + font-size: 1.5rem; +} + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; +} + +.file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; +} + +.file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; +} + +.file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; +} + +.file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; +} + +.file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; +} + +.file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; +} + +.file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: rgba(0, 0, 0, 0.7); +} + +.file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-dark .file-cta { + background-color: #363636; + border-color: transparent; + color: #fff; +} + +.file.is-dark:hover .file-cta, .file.is-dark.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: #fff; +} + +.file.is-dark:focus .file-cta, .file.is-dark.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: #fff; +} + +.file.is-dark:active .file-cta, .file.is-dark.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: #fff; +} + +.file.is-primary .file-cta { + background-color: #00d1b2; + border-color: transparent; + color: #fff; +} + +.file.is-primary:hover .file-cta, .file.is-primary.is-hovered .file-cta { + background-color: #00c4a7; + border-color: transparent; + color: #fff; +} + +.file.is-primary:focus .file-cta, .file.is-primary.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 209, 178, 0.25); + color: #fff; +} + +.file.is-primary:active .file-cta, .file.is-primary.is-active .file-cta { + background-color: #00b89c; + border-color: transparent; + color: #fff; +} + +.file.is-link .file-cta { + background-color: #485fc7; + border-color: transparent; + color: #fff; +} + +.file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #3e56c4; + border-color: transparent; + color: #fff; +} + +.file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(72, 95, 199, 0.25); + color: #fff; +} + +.file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #3a51bb; + border-color: transparent; + color: #fff; +} + +.file.is-info .file-cta { + background-color: #3e8ed0; + border-color: transparent; + color: #fff; +} + +.file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #3488ce; + border-color: transparent; + color: #fff; +} + +.file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(62, 142, 208, 0.25); + color: #fff; +} + +.file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #3082c5; + border-color: transparent; + color: #fff; +} + +.file.is-success .file-cta { + background-color: #48c78e; + border-color: transparent; + color: #fff; +} + +.file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #3ec487; + border-color: transparent; + color: #fff; +} + +.file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(72, 199, 142, 0.25); + color: #fff; +} + +.file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #3abb81; + border-color: transparent; + color: #fff; +} + +.file.is-warning .file-cta { + background-color: #ffe08a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdc7d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 224, 138, 0.25); + color: rgba(0, 0, 0, 0.7); +} + +.file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd970; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +.file.is-danger .file-cta { + background-color: #f14668; + border-color: transparent; + color: #fff; +} + +.file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #f03a5f; + border-color: transparent; + color: #fff; +} + +.file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25); + color: #fff; +} + +.file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #ef2e55; + border-color: transparent; + color: #fff; +} + +.file.is-small { + font-size: 0.75rem; +} + +.file.is-normal { + font-size: 1rem; +} + +.file.is-medium { + font-size: 1.25rem; +} + +.file.is-medium .file-icon .fa { + font-size: 21px; +} + +.file.is-large { + font-size: 1.5rem; +} + +.file.is-large .file-icon .fa { + font-size: 28px; +} + +.file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.file.has-name.is-empty .file-cta { + border-radius: 4px; +} + +.file.has-name.is-empty .file-name { + display: none; +} + +.file.is-boxed .file-label { + flex-direction: column; +} + +.file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; +} + +.file.is-boxed .file-name { + border-width: 0 1px 1px; +} + +.file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; +} + +.file.is-boxed .file-icon .fa { + font-size: 21px; +} + +.file.is-boxed.is-small .file-icon .fa { + font-size: 14px; +} + +.file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; +} + +.file.is-boxed.is-large .file-icon .fa { + font-size: 35px; +} + +.file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; +} + +.file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; +} + +.file.is-centered { + justify-content: center; +} + +.file.is-fullwidth .file-label { + width: 100%; +} + +.file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; +} + +.file.is-right { + justify-content: flex-end; +} + +.file.is-right .file-cta { + border-radius: 0 4px 4px 0; +} + +.file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; +} + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; +} + +.file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; +} + +.file-label:hover .file-name { + border-color: #d5d5d5; +} + +.file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; +} + +.file-label:active .file-name { + border-color: #cfcfcf; +} + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; +} + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; +} + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; +} + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: inherit; + text-overflow: ellipsis; +} + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; +} + +.file-icon .fa { + font-size: 14px; +} + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; +} + +.label:not(:last-child) { + margin-bottom: 0.5em; +} + +.label.is-small { + font-size: 0.75rem; +} + +.label.is-medium { + font-size: 1.25rem; +} + +.label.is-large { + font-size: 1.5rem; +} + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; +} + +.help.is-white { + color: white; +} + +.help.is-black { + color: #0a0a0a; +} + +.help.is-light { + color: whitesmoke; +} + +.help.is-dark { + color: #363636; +} + +.help.is-primary { + color: #00d1b2; +} + +.help.is-link { + color: #485fc7; +} + +.help.is-info { + color: #3e8ed0; +} + +.help.is-success { + color: #48c78e; +} + +.help.is-warning { + color: #ffe08a; +} + +.help.is-danger { + color: #f14668; +} + +.field:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.has-addons { + display: flex; + justify-content: flex-start; +} + +.field.has-addons .control:not(:last-child) { + margin-right: -1px; +} + +.field.has-addons .control:not(:first-child):not(:last-child) .button, +.field.has-addons .control:not(:first-child):not(:last-child) .input, +.field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; +} + +.field.has-addons .control:first-child:not(:only-child) .button, +.field.has-addons .control:first-child:not(:only-child) .input, +.field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.field.has-addons .control:last-child:not(:only-child) .button, +.field.has-addons .control:last-child:not(:only-child) .input, +.field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, +.field.has-addons .control .input:not([disabled]):hover, +.field.has-addons .control .input:not([disabled]).is-hovered, +.field.has-addons .control .select select:not([disabled]):hover, +.field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; +} + +.field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, +.field.has-addons .control .input:not([disabled]):focus, +.field.has-addons .control .input:not([disabled]).is-focused, +.field.has-addons .control .input:not([disabled]):active, +.field.has-addons .control .input:not([disabled]).is-active, +.field.has-addons .control .select select:not([disabled]):focus, +.field.has-addons .control .select select:not([disabled]).is-focused, +.field.has-addons .control .select select:not([disabled]):active, +.field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; +} + +.field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, +.field.has-addons .control .input:not([disabled]):focus:hover, +.field.has-addons .control .input:not([disabled]).is-focused:hover, +.field.has-addons .control .input:not([disabled]):active:hover, +.field.has-addons .control .input:not([disabled]).is-active:hover, +.field.has-addons .control .select select:not([disabled]):focus:hover, +.field.has-addons .control .select select:not([disabled]).is-focused:hover, +.field.has-addons .control .select select:not([disabled]):active:hover, +.field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; +} + +.field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.has-addons.has-addons-centered { + justify-content: center; +} + +.field.has-addons.has-addons-right { + justify-content: flex-end; +} + +.field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; +} + +.field.is-grouped { + display: flex; + justify-content: flex-start; +} + +.field.is-grouped > .control { + flex-shrink: 0; +} + +.field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; +} + +.field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.field.is-grouped.is-grouped-centered { + justify-content: center; +} + +.field.is-grouped.is-grouped-right { + justify-content: flex-end; +} + +.field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; +} + +.field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; +} + +.field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; +} + +.field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; + } +} + +.field-label .label { + font-size: inherit; +} + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; + } + .field-label.is-small { + font-size: 0.75rem; + padding-top: 0.375em; + } + .field-label.is-normal { + padding-top: 0.375em; + } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; + } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; + } +} + +.field-body .field .field { + margin-bottom: 0; +} + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; + } + .field-body .field { + margin-bottom: 0; + } + .field-body > .field { + flex-shrink: 1; + } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; + } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; + } +} + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: inherit; +} + +.control.has-icons-left .input:focus ~ .icon, +.control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, +.control.has-icons-right .select:focus ~ .icon { + color: #4a4a4a; +} + +.control.has-icons-left .input.is-small ~ .icon, +.control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, +.control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; +} + +.control.has-icons-left .input.is-medium ~ .icon, +.control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, +.control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; +} + +.control.has-icons-left .input.is-large ~ .icon, +.control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, +.control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; +} + +.control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.5em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.5em; + z-index: 4; +} + +.control.has-icons-left .input, +.control.has-icons-left .select select { + padding-left: 2.5em; +} + +.control.has-icons-left .icon.is-left { + left: 0; +} + +.control.has-icons-right .input, +.control.has-icons-right .select select { + padding-right: 2.5em; +} + +.control.has-icons-right .icon.is-right { + right: 0; +} + +.control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; +} + +.control.is-loading.is-small:after { + font-size: 0.75rem; +} + +.control.is-loading.is-medium:after { + font-size: 1.25rem; +} + +.control.is-loading.is-large:after { + font-size: 1.5rem; +} + +/* Bulma Components */ +.breadcrumb { + font-size: 1rem; + white-space: nowrap; +} + +.breadcrumb a { + align-items: center; + color: #485fc7; + display: flex; + justify-content: center; + padding: 0 0.75em; +} + +.breadcrumb a:hover { + color: #363636; +} + +.breadcrumb li { + align-items: center; + display: flex; +} + +.breadcrumb li:first-child a { + padding-left: 0; +} + +.breadcrumb li.is-active a { + color: #363636; + cursor: default; + pointer-events: none; +} + +.breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; +} + +.breadcrumb ul, +.breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.breadcrumb .icon:first-child { + margin-right: 0.5em; +} + +.breadcrumb .icon:last-child { + margin-left: 0.5em; +} + +.breadcrumb.is-centered ol, +.breadcrumb.is-centered ul { + justify-content: center; +} + +.breadcrumb.is-right ol, +.breadcrumb.is-right ul { + justify-content: flex-end; +} + +.breadcrumb.is-small { + font-size: 0.75rem; +} + +.breadcrumb.is-medium { + font-size: 1.25rem; +} + +.breadcrumb.is-large { + font-size: 1.5rem; +} + +.breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; +} + +.breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; +} + +.breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; +} + +.breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; +} + +.card { + background-color: white; + border-radius: 0.25rem; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + color: #4a4a4a; + max-width: 100%; + position: relative; +} + +.card-header:first-child, .card-content:first-child, .card-footer:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card-header:last-child, .card-content:last-child, .card-footer:last-child { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); + display: flex; +} + +.card-header-title { + align-items: center; + color: #363636; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem 1rem; +} + +.card-header-title.is-centered { + justify-content: center; +} + +.card-header-icon { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + color: currentColor; + font-family: inherit; + font-size: 1em; + margin: 0; + padding: 0; + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem 1rem; +} + +.card-image { + display: block; + position: relative; +} + +.card-image:first-child img { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card-image:last-child img { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.card-content { + background-color: transparent; + padding: 1.5rem; +} + +.card-footer { + background-color: transparent; + border-top: 1px solid #ededed; + align-items: stretch; + display: flex; +} + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; +} + +.card-footer-item:not(:last-child) { + border-right: 1px solid #ededed; +} + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; +} + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; +} + +.dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; +} + +.dropdown.is-right .dropdown-menu { + left: auto; + right: 0; +} + +.dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; +} + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; +} + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; +} + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: inherit; + white-space: nowrap; + width: 100%; +} + +a.dropdown-item:hover, +button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; +} + +a.dropdown-item.is-active, +button.dropdown-item.is-active { + background-color: #485fc7; + color: #fff; +} + +.dropdown-divider { + background-color: #ededed; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; +} + +.level { + align-items: center; + justify-content: space-between; +} + +.level code { + border-radius: 4px; +} + +.level img { + display: inline-block; + vertical-align: top; +} + +.level.is-mobile { + display: flex; +} + +.level.is-mobile .level-left, +.level.is-mobile .level-right { + display: flex; +} + +.level.is-mobile .level-left + .level-right { + margin-top: 0; +} + +.level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; +} + +.level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level { + display: flex; + } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; + } +} + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; +} + +.level-item .title, +.level-item .subtitle { + margin-bottom: 0; +} + +@media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.level-left .level-item.is-flexible, +.level-right .level-item.is-flexible { + flex-grow: 1; +} + +@media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; + } +} + +.level-left { + align-items: center; + justify-content: flex-start; +} + +@media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .level-left { + display: flex; + } +} + +.level-right { + align-items: center; + justify-content: flex-end; +} + +@media screen and (min-width: 769px), print { + .level-right { + display: flex; + } +} + +.media { + align-items: flex-start; + display: flex; + text-align: inherit; +} + +.media .content:not(:last-child) { + margin-bottom: 0.75rem; +} + +.media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; +} + +.media .media .content:not(:last-child), +.media .media .control:not(:last-child) { + margin-bottom: 0.5rem; +} + +.media .media .media { + padding-top: 0.5rem; +} + +.media .media .media + .media { + margin-top: 0.5rem; +} + +.media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; +} + +.media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; +} + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; +} + +.media-left { + margin-right: 1rem; +} + +.media-right { + margin-left: 1rem; +} + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: inherit; +} + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; + } +} + +.menu { + font-size: 1rem; +} + +.menu.is-small { + font-size: 0.75rem; +} + +.menu.is-medium { + font-size: 1.25rem; +} + +.menu.is-large { + font-size: 1.5rem; +} + +.menu-list { + line-height: 1.25; +} + +.menu-list a { + border-radius: 2px; + color: #4a4a4a; + display: block; + padding: 0.5em 0.75em; +} + +.menu-list a:hover { + background-color: whitesmoke; + color: #363636; +} + +.menu-list a.is-active { + background-color: #485fc7; + color: #fff; +} + +.menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; +} + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.menu-label:not(:first-child) { + margin-top: 1em; +} + +.menu-label:not(:last-child) { + margin-bottom: 1em; +} + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; +} + +.message strong { + color: currentColor; +} + +.message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; +} + +.message.is-small { + font-size: 0.75rem; +} + +.message.is-medium { + font-size: 1.25rem; +} + +.message.is-large { + font-size: 1.5rem; +} + +.message.is-white { + background-color: white; +} + +.message.is-white .message-header { + background-color: white; + color: #0a0a0a; +} + +.message.is-white .message-body { + border-color: white; +} + +.message.is-black { + background-color: #fafafa; +} + +.message.is-black .message-header { + background-color: #0a0a0a; + color: white; +} + +.message.is-black .message-body { + border-color: #0a0a0a; +} + +.message.is-light { + background-color: #fafafa; +} + +.message.is-light .message-header { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.message.is-light .message-body { + border-color: whitesmoke; +} + +.message.is-dark { + background-color: #fafafa; +} + +.message.is-dark .message-header { + background-color: #363636; + color: #fff; +} + +.message.is-dark .message-body { + border-color: #363636; +} + +.message.is-primary { + background-color: #ebfffc; +} + +.message.is-primary .message-header { + background-color: #00d1b2; + color: #fff; +} + +.message.is-primary .message-body { + border-color: #00d1b2; + color: #00947e; +} + +.message.is-link { + background-color: #eff1fa; +} + +.message.is-link .message-header { + background-color: #485fc7; + color: #fff; +} + +.message.is-link .message-body { + border-color: #485fc7; + color: #3850b7; +} + +.message.is-info { + background-color: #eff5fb; +} + +.message.is-info .message-header { + background-color: #3e8ed0; + color: #fff; +} + +.message.is-info .message-body { + border-color: #3e8ed0; + color: #296fa8; +} + +.message.is-success { + background-color: #effaf5; +} + +.message.is-success .message-header { + background-color: #48c78e; + color: #fff; +} + +.message.is-success .message-body { + border-color: #48c78e; + color: #257953; +} + +.message.is-warning { + background-color: #fffaeb; +} + +.message.is-warning .message-header { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.message.is-warning .message-body { + border-color: #ffe08a; + color: #946c00; +} + +.message.is-danger { + background-color: #feecf0; +} + +.message.is-danger .message-header { + background-color: #f14668; + color: #fff; +} + +.message.is-danger .message-body { + border-color: #f14668; + color: #cc0f35; +} + +.message-header { + align-items: center; + background-color: #4a4a4a; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; +} + +.message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; +} + +.message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #4a4a4a; + padding: 1.25em 1.5em; +} + +.message-body code, +.message-body pre { + background-color: white; +} + +.message-body pre code { + background-color: transparent; +} + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; +} + +.modal.is-active { + display: flex; +} + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); +} + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; +} + +@media screen and (min-width: 769px) { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; + } +} + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; +} + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; +} + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; +} + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} + +.modal-card-title { + color: #363636; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; +} + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; +} + +.modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; +} + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; +} + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; +} + +.navbar.is-white { + background-color: white; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > .navbar-item, +.navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, +.navbar.is-white .navbar-brand .navbar-link:focus, +.navbar.is-white .navbar-brand .navbar-link:hover, +.navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; +} + +.navbar.is-white .navbar-burger { + color: #0a0a0a; +} + +@media screen and (min-width: 1024px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; + } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; + } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; + } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; + } +} + +.navbar.is-black { + background-color: #0a0a0a; + color: white; +} + +.navbar.is-black .navbar-brand > .navbar-item, +.navbar.is-black .navbar-brand .navbar-link { + color: white; +} + +.navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, +.navbar.is-black .navbar-brand .navbar-link:focus, +.navbar.is-black .navbar-brand .navbar-link:hover, +.navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; +} + +.navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; +} + +.navbar.is-black .navbar-burger { + color: white; +} + +@media screen and (min-width: 1024px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; + } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; + } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; + } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; + } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; + } +} + +.navbar.is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-brand > .navbar-item, +.navbar.is-light .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, +.navbar.is-light .navbar-brand .navbar-link:focus, +.navbar.is-light .navbar-brand .navbar-link:hover, +.navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-light .navbar-burger { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (min-width: 1024px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); + } +} + +.navbar.is-dark { + background-color: #363636; + color: #fff; +} + +.navbar.is-dark .navbar-brand > .navbar-item, +.navbar.is-dark .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-dark .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, +.navbar.is-dark .navbar-brand .navbar-link:focus, +.navbar.is-dark .navbar-brand .navbar-link:hover, +.navbar.is-dark .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: #fff; +} + +.navbar.is-dark .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-dark .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-dark .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active { + background-color: #292929; + color: #fff; + } + .navbar.is-dark .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: #fff; + } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: #fff; + } +} + +.navbar.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.navbar.is-primary .navbar-brand > .navbar-item, +.navbar.is-primary .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-primary .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, +.navbar.is-primary .navbar-brand .navbar-link:focus, +.navbar.is-primary .navbar-brand .navbar-link:hover, +.navbar.is-primary .navbar-brand .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.navbar.is-primary .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-primary .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-primary .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #00b89c; + color: #fff; + } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active { + background-color: #00d1b2; + color: #fff; + } +} + +.navbar.is-link { + background-color: #485fc7; + color: #fff; +} + +.navbar.is-link .navbar-brand > .navbar-item, +.navbar.is-link .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, +.navbar.is-link .navbar-brand .navbar-link:focus, +.navbar.is-link .navbar-brand .navbar-link:hover, +.navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #3a51bb; + color: #fff; +} + +.navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-link .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #3a51bb; + color: #fff; + } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #3a51bb; + color: #fff; + } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #485fc7; + color: #fff; + } +} + +.navbar.is-info { + background-color: #3e8ed0; + color: #fff; +} + +.navbar.is-info .navbar-brand > .navbar-item, +.navbar.is-info .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, +.navbar.is-info .navbar-brand .navbar-link:focus, +.navbar.is-info .navbar-brand .navbar-link:hover, +.navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #3082c5; + color: #fff; +} + +.navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-info .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #3082c5; + color: #fff; + } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #3082c5; + color: #fff; + } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #3e8ed0; + color: #fff; + } +} + +.navbar.is-success { + background-color: #48c78e; + color: #fff; +} + +.navbar.is-success .navbar-brand > .navbar-item, +.navbar.is-success .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, +.navbar.is-success .navbar-brand .navbar-link:focus, +.navbar.is-success .navbar-brand .navbar-link:hover, +.navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #3abb81; + color: #fff; +} + +.navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-success .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #3abb81; + color: #fff; + } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #3abb81; + color: #fff; + } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #48c78e; + color: #fff; + } +} + +.navbar.is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > .navbar-item, +.navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, +.navbar.is-warning .navbar-brand .navbar-link:focus, +.navbar.is-warning .navbar-brand .navbar-link:hover, +.navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); +} + +.navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (min-width: 1024px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); + } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); + } +} + +.navbar.is-danger { + background-color: #f14668; + color: #fff; +} + +.navbar.is-danger .navbar-brand > .navbar-item, +.navbar.is-danger .navbar-brand .navbar-link { + color: #fff; +} + +.navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, +.navbar.is-danger .navbar-brand .navbar-link:focus, +.navbar.is-danger .navbar-brand .navbar-link:hover, +.navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #ef2e55; + color: #fff; +} + +.navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; +} + +.navbar.is-danger .navbar-burger { + color: #fff; +} + +@media screen and (min-width: 1024px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; + } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #ef2e55; + color: #fff; + } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; + } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ef2e55; + color: #fff; + } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #f14668; + color: #fff; + } +} + +.navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; +} + +.navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; +} + +.navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; +} + +.navbar.is-fixed-bottom { + bottom: 0; +} + +.navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; +} + +.navbar.is-fixed-top { + top: 0; +} + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; +} + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; +} + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; +} + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; +} + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; +} + +.navbar-burger { + color: #4a4a4a; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + background: none; + border: none; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; +} + +.navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; +} + +.navbar-burger span:nth-child(1) { + top: calc(50% - 6px); +} + +.navbar-burger span:nth-child(2) { + top: calc(50% - 1px); +} + +.navbar-burger span:nth-child(3) { + top: calc(50% + 4px); +} + +.navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); +} + +.navbar-burger.is-active span:nth-child(2) { + opacity: 0; +} + +.navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); +} + +.navbar-menu { + display: none; +} + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; +} + +.navbar-item .icon:only-child, +.navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; +} + +a.navbar-item, +.navbar-link { + cursor: pointer; +} + +a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, +.navbar-link:focus, +.navbar-link:focus-within, +.navbar-link:hover, +.navbar-link.is-active { + background-color: #fafafa; + color: #485fc7; +} + +.navbar-item { + flex-grow: 0; + flex-shrink: 0; +} + +.navbar-item img { + max-height: 1.75rem; +} + +.navbar-item.has-dropdown { + padding: 0; +} + +.navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); +} + +.navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #485fc7; +} + +.navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #485fc7; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #485fc7; + padding-bottom: calc(0.5rem - 3px); +} + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; +} + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; +} + +.navbar-link:not(.is-arrowless)::after { + border-color: #485fc7; + margin-top: -0.375em; + right: 1.125em; +} + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; +} + +.navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; +} + +@media screen and (max-width: 1023px) { + .navbar > .container { + display: block; + } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; + } + .navbar-link::after { + display: none; + } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; + } + .navbar-menu.is-active { + display: block; + } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-touch { + bottom: 0; + } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-touch { + top: 0; + } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; + } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; + } +} + +@media screen and (min-width: 1024px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; + } + .navbar { + min-height: 3.25rem; + } + .navbar.is-spaced { + padding: 1rem 2rem; + } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; + } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; + } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #485fc7; + } + .navbar-burger { + display: none; + } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; + } + .navbar-item.has-dropdown { + align-items: stretch; + } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); + } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; + } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; + } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); + } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; + } + .navbar-start { + justify-content: flex-start; + margin-right: auto; + } + .navbar-end { + justify-content: flex-end; + margin-left: auto; + } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; + } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; + } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; + } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; + } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #485fc7; + } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; + } + .navbar-dropdown.is-right { + left: auto; + right: 0; + } + .navbar-divider { + display: block; + } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -0.75rem; + } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -0.75rem; + } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; + } + .navbar.is-fixed-bottom-desktop { + bottom: 0; + } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); + } + .navbar.is-fixed-top-desktop { + top: 0; + } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; + } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; + } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; + } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; + } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; + } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; + } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; + } +} + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); +} + +.pagination { + font-size: 1rem; + margin: -0.25rem; +} + +.pagination.is-small { + font-size: 0.75rem; +} + +.pagination.is-medium { + font-size: 1.25rem; +} + +.pagination.is-large { + font-size: 1.5rem; +} + +.pagination.is-rounded .pagination-previous, +.pagination.is-rounded .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 9999px; +} + +.pagination.is-rounded .pagination-link { + border-radius: 9999px; +} + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; +} + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.5em; +} + +.pagination-previous:hover, +.pagination-next:hover, +.pagination-link:hover { + border-color: #b5b5b5; + color: #363636; +} + +.pagination-previous:focus, +.pagination-next:focus, +.pagination-link:focus { + border-color: #485fc7; +} + +.pagination-previous:active, +.pagination-next:active, +.pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); +} + +.pagination-previous[disabled], .pagination-previous.is-disabled, +.pagination-next[disabled], +.pagination-next.is-disabled, +.pagination-link[disabled], +.pagination-link.is-disabled { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; +} + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; +} + +.pagination-link.is-current { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; +} + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; +} + +.pagination-list { + flex-wrap: wrap; +} + +.pagination-list li { + list-style: none; +} + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; + } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; + } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; + } +} + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; + } + .pagination-previous, + .pagination-next, + .pagination-link, + .pagination-ellipsis { + margin-bottom: 0; + margin-top: 0; + } + .pagination-previous { + order: 2; + } + .pagination-next { + order: 3; + } + .pagination { + justify-content: space-between; + margin-bottom: 0; + margin-top: 0; + } + .pagination.is-centered .pagination-previous { + order: 1; + } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; + } + .pagination.is-centered .pagination-next { + order: 3; + } + .pagination.is-right .pagination-previous { + order: 1; + } + .pagination.is-right .pagination-next { + order: 2; + } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; + } +} + +.panel { + border-radius: 6px; + box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); + font-size: 1rem; +} + +.panel:not(:last-child) { + margin-bottom: 1.5rem; +} + +.panel.is-white .panel-heading { + background-color: white; + color: #0a0a0a; +} + +.panel.is-white .panel-tabs a.is-active { + border-bottom-color: white; +} + +.panel.is-white .panel-block.is-active .panel-icon { + color: white; +} + +.panel.is-black .panel-heading { + background-color: #0a0a0a; + color: white; +} + +.panel.is-black .panel-tabs a.is-active { + border-bottom-color: #0a0a0a; +} + +.panel.is-black .panel-block.is-active .panel-icon { + color: #0a0a0a; +} + +.panel.is-light .panel-heading { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.panel.is-light .panel-tabs a.is-active { + border-bottom-color: whitesmoke; +} + +.panel.is-light .panel-block.is-active .panel-icon { + color: whitesmoke; +} + +.panel.is-dark .panel-heading { + background-color: #363636; + color: #fff; +} + +.panel.is-dark .panel-tabs a.is-active { + border-bottom-color: #363636; +} + +.panel.is-dark .panel-block.is-active .panel-icon { + color: #363636; +} + +.panel.is-primary .panel-heading { + background-color: #00d1b2; + color: #fff; +} + +.panel.is-primary .panel-tabs a.is-active { + border-bottom-color: #00d1b2; +} + +.panel.is-primary .panel-block.is-active .panel-icon { + color: #00d1b2; +} + +.panel.is-link .panel-heading { + background-color: #485fc7; + color: #fff; +} + +.panel.is-link .panel-tabs a.is-active { + border-bottom-color: #485fc7; +} + +.panel.is-link .panel-block.is-active .panel-icon { + color: #485fc7; +} + +.panel.is-info .panel-heading { + background-color: #3e8ed0; + color: #fff; +} + +.panel.is-info .panel-tabs a.is-active { + border-bottom-color: #3e8ed0; +} + +.panel.is-info .panel-block.is-active .panel-icon { + color: #3e8ed0; +} + +.panel.is-success .panel-heading { + background-color: #48c78e; + color: #fff; +} + +.panel.is-success .panel-tabs a.is-active { + border-bottom-color: #48c78e; +} + +.panel.is-success .panel-block.is-active .panel-icon { + color: #48c78e; +} + +.panel.is-warning .panel-heading { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.panel.is-warning .panel-tabs a.is-active { + border-bottom-color: #ffe08a; +} + +.panel.is-warning .panel-block.is-active .panel-icon { + color: #ffe08a; +} + +.panel.is-danger .panel-heading { + background-color: #f14668; + color: #fff; +} + +.panel.is-danger .panel-tabs a.is-active { + border-bottom-color: #f14668; +} + +.panel.is-danger .panel-block.is-active .panel-icon { + color: #f14668; +} + +.panel-tabs:not(:last-child), +.panel-block:not(:last-child) { + border-bottom: 1px solid #ededed; +} + +.panel-heading { + background-color: #ededed; + border-radius: 6px 6px 0 0; + color: #363636; + font-size: 1.25em; + font-weight: 700; + line-height: 1.25; + padding: 0.75em 1em; +} + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; +} + +.panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; +} + +.panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; +} + +.panel-list a { + color: #4a4a4a; +} + +.panel-list a:hover { + color: #485fc7; +} + +.panel-block { + align-items: center; + color: #363636; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; +} + +.panel-block input[type="checkbox"] { + margin-right: 0.75em; +} + +.panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; +} + +.panel-block.is-wrapped { + flex-wrap: wrap; +} + +.panel-block.is-active { + border-left-color: #485fc7; + color: #363636; +} + +.panel-block.is-active .panel-icon { + color: #485fc7; +} + +.panel-block:last-child { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; +} + +a.panel-block, +label.panel-block { + cursor: pointer; +} + +a.panel-block:hover, +label.panel-block:hover { + background-color: whitesmoke; +} + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; +} + +.panel-icon .fa { + font-size: inherit; + line-height: inherit; +} + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; +} + +.tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #4a4a4a; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; +} + +.tabs a:hover { + border-bottom-color: #363636; + color: #363636; +} + +.tabs li { + display: block; +} + +.tabs li.is-active a { + border-bottom-color: #485fc7; + color: #485fc7; +} + +.tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; +} + +.tabs ul.is-left { + padding-right: 0.75em; +} + +.tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; +} + +.tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; +} + +.tabs .icon:first-child { + margin-right: 0.5em; +} + +.tabs .icon:last-child { + margin-left: 0.5em; +} + +.tabs.is-centered ul { + justify-content: center; +} + +.tabs.is-right ul { + justify-content: flex-end; +} + +.tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; +} + +.tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; +} + +.tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; +} + +.tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; +} + +.tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; +} + +.tabs.is-toggle li + li { + margin-left: -1px; +} + +.tabs.is-toggle li:first-child a { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.tabs.is-toggle li:last-child a { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.tabs.is-toggle li.is-active a { + background-color: #485fc7; + border-color: #485fc7; + color: #fff; + z-index: 1; +} + +.tabs.is-toggle ul { + border-bottom: none; +} + +.tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 9999px; + border-top-left-radius: 9999px; + padding-left: 1.25em; +} + +.tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 9999px; + border-top-right-radius: 9999px; + padding-right: 1.25em; +} + +.tabs.is-small { + font-size: 0.75rem; +} + +.tabs.is-medium { + font-size: 1.25rem; +} + +.tabs.is-large { + font-size: 1.5rem; +} + +/* Bulma Grid */ +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; +} + +.columns.is-mobile > .column.is-narrow { + flex: none; + width: unset; +} + +.columns.is-mobile > .column.is-full { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; +} + +.columns.is-mobile > .column.is-half { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; +} + +.columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; +} + +.columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; +} + +.columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; +} + +.columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; +} + +.columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; +} + +.columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; +} + +.columns.is-mobile > .column.is-offset-half { + margin-left: 50%; +} + +.columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; +} + +.columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; +} + +.columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; +} + +.columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; +} + +.columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; +} + +.columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; +} + +.columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; +} + +.columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; +} + +.columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; +} + +.columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; +} + +.columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; +} + +.columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; +} + +.columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; +} + +.columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; +} + +.columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; +} + +.columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; +} + +.columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; +} + +.columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; +} + +.columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; +} + +.columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; +} + +.columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; +} + +.columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; +} + +.columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; +} + +.columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; +} + +.columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; +} + +.columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; +} + +.columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; +} + +.columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; +} + +.columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; +} + +.columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; +} + +.columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; +} + +.columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; +} + +@media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; + width: unset; + } + .column.is-full-mobile { + flex: none; + width: 100%; + } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; + } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; + } + .column.is-half-mobile { + flex: none; + width: 50%; + } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; + } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; + } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; + } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; + } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; + } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; + } + .column.is-offset-half-mobile { + margin-left: 50%; + } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; + } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; + } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; + } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; + } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; + } + .column.is-0-mobile { + flex: none; + width: 0%; + } + .column.is-offset-0-mobile { + margin-left: 0%; + } + .column.is-1-mobile { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-mobile { + margin-left: 8.33333%; + } + .column.is-2-mobile { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-mobile { + margin-left: 16.66667%; + } + .column.is-3-mobile { + flex: none; + width: 25%; + } + .column.is-offset-3-mobile { + margin-left: 25%; + } + .column.is-4-mobile { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-mobile { + margin-left: 33.33333%; + } + .column.is-5-mobile { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-mobile { + margin-left: 41.66667%; + } + .column.is-6-mobile { + flex: none; + width: 50%; + } + .column.is-offset-6-mobile { + margin-left: 50%; + } + .column.is-7-mobile { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-mobile { + margin-left: 58.33333%; + } + .column.is-8-mobile { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-mobile { + margin-left: 66.66667%; + } + .column.is-9-mobile { + flex: none; + width: 75%; + } + .column.is-offset-9-mobile { + margin-left: 75%; + } + .column.is-10-mobile { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-mobile { + margin-left: 83.33333%; + } + .column.is-11-mobile { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-mobile { + margin-left: 91.66667%; + } + .column.is-12-mobile { + flex: none; + width: 100%; + } + .column.is-offset-12-mobile { + margin-left: 100%; + } +} + +@media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; + width: unset; + } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; + } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; + } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; + } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; + } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; + } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; + } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; + } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; + } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; + } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; + } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; + } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; + } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; + } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; + } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; + } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; + } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; + } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; + } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; + } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; + } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; + } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; + } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; + } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; + } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; + } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; + } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; + } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; + } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; + } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; + } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; + } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; + } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; + } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; + } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; + } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; + } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; + } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; + } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; + } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; + } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; + } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; + } +} + +@media screen and (max-width: 1023px) { + .column.is-narrow-touch { + flex: none; + width: unset; + } + .column.is-full-touch { + flex: none; + width: 100%; + } + .column.is-three-quarters-touch { + flex: none; + width: 75%; + } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; + } + .column.is-half-touch { + flex: none; + width: 50%; + } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-touch { + flex: none; + width: 25%; + } + .column.is-one-fifth-touch { + flex: none; + width: 20%; + } + .column.is-two-fifths-touch { + flex: none; + width: 40%; + } + .column.is-three-fifths-touch { + flex: none; + width: 60%; + } + .column.is-four-fifths-touch { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-touch { + margin-left: 75%; + } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; + } + .column.is-offset-half-touch { + margin-left: 50%; + } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-touch { + margin-left: 25%; + } + .column.is-offset-one-fifth-touch { + margin-left: 20%; + } + .column.is-offset-two-fifths-touch { + margin-left: 40%; + } + .column.is-offset-three-fifths-touch { + margin-left: 60%; + } + .column.is-offset-four-fifths-touch { + margin-left: 80%; + } + .column.is-0-touch { + flex: none; + width: 0%; + } + .column.is-offset-0-touch { + margin-left: 0%; + } + .column.is-1-touch { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-touch { + margin-left: 8.33333%; + } + .column.is-2-touch { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-touch { + margin-left: 16.66667%; + } + .column.is-3-touch { + flex: none; + width: 25%; + } + .column.is-offset-3-touch { + margin-left: 25%; + } + .column.is-4-touch { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-touch { + margin-left: 33.33333%; + } + .column.is-5-touch { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-touch { + margin-left: 41.66667%; + } + .column.is-6-touch { + flex: none; + width: 50%; + } + .column.is-offset-6-touch { + margin-left: 50%; + } + .column.is-7-touch { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-touch { + margin-left: 58.33333%; + } + .column.is-8-touch { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-touch { + margin-left: 66.66667%; + } + .column.is-9-touch { + flex: none; + width: 75%; + } + .column.is-offset-9-touch { + margin-left: 75%; + } + .column.is-10-touch { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-touch { + margin-left: 83.33333%; + } + .column.is-11-touch { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-touch { + margin-left: 91.66667%; + } + .column.is-12-touch { + flex: none; + width: 100%; + } + .column.is-offset-12-touch { + margin-left: 100%; + } +} + +@media screen and (min-width: 1024px) { + .column.is-narrow-desktop { + flex: none; + width: unset; + } + .column.is-full-desktop { + flex: none; + width: 100%; + } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; + } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; + } + .column.is-half-desktop { + flex: none; + width: 50%; + } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; + } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; + } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; + } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; + } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; + } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; + } + .column.is-offset-half-desktop { + margin-left: 50%; + } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; + } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; + } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; + } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; + } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; + } + .column.is-0-desktop { + flex: none; + width: 0%; + } + .column.is-offset-0-desktop { + margin-left: 0%; + } + .column.is-1-desktop { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-desktop { + margin-left: 8.33333%; + } + .column.is-2-desktop { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-desktop { + margin-left: 16.66667%; + } + .column.is-3-desktop { + flex: none; + width: 25%; + } + .column.is-offset-3-desktop { + margin-left: 25%; + } + .column.is-4-desktop { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-desktop { + margin-left: 33.33333%; + } + .column.is-5-desktop { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-desktop { + margin-left: 41.66667%; + } + .column.is-6-desktop { + flex: none; + width: 50%; + } + .column.is-offset-6-desktop { + margin-left: 50%; + } + .column.is-7-desktop { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-desktop { + margin-left: 58.33333%; + } + .column.is-8-desktop { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-desktop { + margin-left: 66.66667%; + } + .column.is-9-desktop { + flex: none; + width: 75%; + } + .column.is-offset-9-desktop { + margin-left: 75%; + } + .column.is-10-desktop { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-desktop { + margin-left: 83.33333%; + } + .column.is-11-desktop { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-desktop { + margin-left: 91.66667%; + } + .column.is-12-desktop { + flex: none; + width: 100%; + } + .column.is-offset-12-desktop { + margin-left: 100%; + } +} + +@media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; + width: unset; + } + .column.is-full-widescreen { + flex: none; + width: 100%; + } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; + } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; + } + .column.is-half-widescreen { + flex: none; + width: 50%; + } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; + } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; + } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; + } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; + } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; + } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; + } + .column.is-offset-half-widescreen { + margin-left: 50%; + } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; + } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; + } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; + } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; + } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; + } + .column.is-0-widescreen { + flex: none; + width: 0%; + } + .column.is-offset-0-widescreen { + margin-left: 0%; + } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; + } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; + } + .column.is-3-widescreen { + flex: none; + width: 25%; + } + .column.is-offset-3-widescreen { + margin-left: 25%; + } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; + } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; + } + .column.is-6-widescreen { + flex: none; + width: 50%; + } + .column.is-offset-6-widescreen { + margin-left: 50%; + } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; + } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; + } + .column.is-9-widescreen { + flex: none; + width: 75%; + } + .column.is-offset-9-widescreen { + margin-left: 75%; + } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; + } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; + } + .column.is-12-widescreen { + flex: none; + width: 100%; + } + .column.is-offset-12-widescreen { + margin-left: 100%; + } +} + +@media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; + width: unset; + } + .column.is-full-fullhd { + flex: none; + width: 100%; + } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; + } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; + } + .column.is-half-fullhd { + flex: none; + width: 50%; + } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; + } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; + } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; + } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; + } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; + } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; + } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; + } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; + } + .column.is-offset-half-fullhd { + margin-left: 50%; + } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; + } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; + } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; + } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; + } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; + } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; + } + .column.is-0-fullhd { + flex: none; + width: 0%; + } + .column.is-offset-0-fullhd { + margin-left: 0%; + } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; + } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; + } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; + } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; + } + .column.is-3-fullhd { + flex: none; + width: 25%; + } + .column.is-offset-3-fullhd { + margin-left: 25%; + } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; + } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; + } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; + } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; + } + .column.is-6-fullhd { + flex: none; + width: 50%; + } + .column.is-offset-6-fullhd { + margin-left: 50%; + } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; + } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; + } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; + } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; + } + .column.is-9-fullhd { + flex: none; + width: 75%; + } + .column.is-offset-9-fullhd { + margin-left: 75%; + } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; + } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; + } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; + } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; + } + .column.is-12-fullhd { + flex: none; + width: 100%; + } + .column.is-offset-12-fullhd { + margin-left: 100%; + } +} + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.columns:last-child { + margin-bottom: -0.75rem; +} + +.columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); +} + +.columns.is-centered { + justify-content: center; +} + +.columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; +} + +.columns.is-gapless > .column { + margin: 0; + padding: 0 !important; +} + +.columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; +} + +.columns.is-gapless:last-child { + margin-bottom: 0; +} + +.columns.is-mobile { + display: flex; +} + +.columns.is-multiline { + flex-wrap: wrap; +} + +.columns.is-vcentered { + align-items: center; +} + +@media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-desktop { + display: flex; + } +} + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); +} + +.columns.is-variable > .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); +} + +.columns.is-variable.is-0 { + --columnGap: 0rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; + } +} + +.columns.is-variable.is-1 { + --columnGap: 0.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; + } +} + +.columns.is-variable.is-2 { + --columnGap: 0.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; + } +} + +.columns.is-variable.is-3 { + --columnGap: 0.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; + } +} + +.columns.is-variable.is-4 { + --columnGap: 1rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; + } +} + +.columns.is-variable.is-5 { + --columnGap: 1.25rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; + } +} + +.columns.is-variable.is-6 { + --columnGap: 1.5rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; + } +} + +.columns.is-variable.is-7 { + --columnGap: 1.75rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; + } +} + +.columns.is-variable.is-8 { + --columnGap: 2rem; +} + +@media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; + } +} + +@media screen and (max-width: 1023px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1024px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; + } +} + +@media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; + } +} + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: -webkit-min-content; + min-height: -moz-min-content; + min-height: min-content; +} + +.tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; +} + +.tile.is-ancestor:last-child { + margin-bottom: -0.75rem; +} + +.tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; +} + +.tile.is-child { + margin: 0 !important; +} + +.tile.is-parent { + padding: 0.75rem; +} + +.tile.is-vertical { + flex-direction: column; +} + +.tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; +} + +@media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; + } + .tile.is-1 { + flex: none; + width: 8.33333%; + } + .tile.is-2 { + flex: none; + width: 16.66667%; + } + .tile.is-3 { + flex: none; + width: 25%; + } + .tile.is-4 { + flex: none; + width: 33.33333%; + } + .tile.is-5 { + flex: none; + width: 41.66667%; + } + .tile.is-6 { + flex: none; + width: 50%; + } + .tile.is-7 { + flex: none; + width: 58.33333%; + } + .tile.is-8 { + flex: none; + width: 66.66667%; + } + .tile.is-9 { + flex: none; + width: 75%; + } + .tile.is-10 { + flex: none; + width: 83.33333%; + } + .tile.is-11 { + flex: none; + width: 91.66667%; + } + .tile.is-12 { + flex: none; + width: 100%; + } +} + +/* Bulma Helpers */ +.has-text-white { + color: white !important; +} + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; +} + +.has-background-white { + background-color: white !important; +} + +.has-text-black { + color: #0a0a0a !important; +} + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; +} + +.has-background-black { + background-color: #0a0a0a !important; +} + +.has-text-light { + color: whitesmoke !important; +} + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; +} + +.has-background-light { + background-color: whitesmoke !important; +} + +.has-text-dark { + color: #363636 !important; +} + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; +} + +.has-background-dark { + background-color: #363636 !important; +} + +.has-text-primary { + color: #00d1b2 !important; +} + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #009e86 !important; +} + +.has-background-primary { + background-color: #00d1b2 !important; +} + +.has-text-primary-light { + color: #ebfffc !important; +} + +a.has-text-primary-light:hover, a.has-text-primary-light:focus { + color: #b8fff4 !important; +} + +.has-background-primary-light { + background-color: #ebfffc !important; +} + +.has-text-primary-dark { + color: #00947e !important; +} + +a.has-text-primary-dark:hover, a.has-text-primary-dark:focus { + color: #00c7a9 !important; +} + +.has-background-primary-dark { + background-color: #00947e !important; +} + +.has-text-link { + color: #485fc7 !important; +} + +a.has-text-link:hover, a.has-text-link:focus { + color: #3449a8 !important; +} + +.has-background-link { + background-color: #485fc7 !important; +} + +.has-text-link-light { + color: #eff1fa !important; +} + +a.has-text-link-light:hover, a.has-text-link-light:focus { + color: #c8cfee !important; +} + +.has-background-link-light { + background-color: #eff1fa !important; +} + +.has-text-link-dark { + color: #3850b7 !important; +} + +a.has-text-link-dark:hover, a.has-text-link-dark:focus { + color: #576dcb !important; +} + +.has-background-link-dark { + background-color: #3850b7 !important; +} + +.has-text-info { + color: #3e8ed0 !important; +} + +a.has-text-info:hover, a.has-text-info:focus { + color: #2b74b1 !important; +} + +.has-background-info { + background-color: #3e8ed0 !important; +} + +.has-text-info-light { + color: #eff5fb !important; +} + +a.has-text-info-light:hover, a.has-text-info-light:focus { + color: #c6ddf1 !important; +} + +.has-background-info-light { + background-color: #eff5fb !important; +} + +.has-text-info-dark { + color: #296fa8 !important; +} + +a.has-text-info-dark:hover, a.has-text-info-dark:focus { + color: #368ace !important; +} + +.has-background-info-dark { + background-color: #296fa8 !important; +} + +.has-text-success { + color: #48c78e !important; +} + +a.has-text-success:hover, a.has-text-success:focus { + color: #34a873 !important; +} + +.has-background-success { + background-color: #48c78e !important; +} + +.has-text-success-light { + color: #effaf5 !important; +} + +a.has-text-success-light:hover, a.has-text-success-light:focus { + color: #c8eedd !important; +} + +.has-background-success-light { + background-color: #effaf5 !important; +} + +.has-text-success-dark { + color: #257953 !important; +} + +a.has-text-success-dark:hover, a.has-text-success-dark:focus { + color: #31a06e !important; +} + +.has-background-success-dark { + background-color: #257953 !important; +} + +.has-text-warning { + color: #ffe08a !important; +} + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd257 !important; +} + +.has-background-warning { + background-color: #ffe08a !important; +} + +.has-text-warning-light { + color: #fffaeb !important; +} + +a.has-text-warning-light:hover, a.has-text-warning-light:focus { + color: #ffecb8 !important; +} + +.has-background-warning-light { + background-color: #fffaeb !important; +} + +.has-text-warning-dark { + color: #946c00 !important; +} + +a.has-text-warning-dark:hover, a.has-text-warning-dark:focus { + color: #c79200 !important; +} + +.has-background-warning-dark { + background-color: #946c00 !important; +} + +.has-text-danger { + color: #f14668 !important; +} + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #ee1742 !important; +} + +.has-background-danger { + background-color: #f14668 !important; +} + +.has-text-danger-light { + color: #feecf0 !important; +} + +a.has-text-danger-light:hover, a.has-text-danger-light:focus { + color: #fabdc9 !important; +} + +.has-background-danger-light { + background-color: #feecf0 !important; +} + +.has-text-danger-dark { + color: #cc0f35 !important; +} + +a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { + color: #ee2049 !important; +} + +.has-background-danger-dark { + background-color: #cc0f35 !important; +} + +.has-text-black-bis { + color: #121212 !important; +} + +.has-background-black-bis { + background-color: #121212 !important; +} + +.has-text-black-ter { + color: #242424 !important; +} + +.has-background-black-ter { + background-color: #242424 !important; +} + +.has-text-grey-darker { + color: #363636 !important; +} + +.has-background-grey-darker { + background-color: #363636 !important; +} + +.has-text-grey-dark { + color: #4a4a4a !important; +} + +.has-background-grey-dark { + background-color: #4a4a4a !important; +} + +.has-text-grey { + color: #7a7a7a !important; +} + +.has-background-grey { + background-color: #7a7a7a !important; +} + +.has-text-grey-light { + color: #b5b5b5 !important; +} + +.has-background-grey-light { + background-color: #b5b5b5 !important; +} + +.has-text-grey-lighter { + color: #dbdbdb !important; +} + +.has-background-grey-lighter { + background-color: #dbdbdb !important; +} + +.has-text-white-ter { + color: whitesmoke !important; +} + +.has-background-white-ter { + background-color: whitesmoke !important; +} + +.has-text-white-bis { + color: #fafafa !important; +} + +.has-background-white-bis { + background-color: #fafafa !important; +} + +.is-flex-direction-row { + flex-direction: row !important; +} + +.is-flex-direction-row-reverse { + flex-direction: row-reverse !important; +} + +.is-flex-direction-column { + flex-direction: column !important; +} + +.is-flex-direction-column-reverse { + flex-direction: column-reverse !important; +} + +.is-flex-wrap-nowrap { + flex-wrap: nowrap !important; +} + +.is-flex-wrap-wrap { + flex-wrap: wrap !important; +} + +.is-flex-wrap-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.is-justify-content-flex-start { + justify-content: flex-start !important; +} + +.is-justify-content-flex-end { + justify-content: flex-end !important; +} + +.is-justify-content-center { + justify-content: center !important; +} + +.is-justify-content-space-between { + justify-content: space-between !important; +} + +.is-justify-content-space-around { + justify-content: space-around !important; +} + +.is-justify-content-space-evenly { + justify-content: space-evenly !important; +} + +.is-justify-content-start { + justify-content: start !important; +} + +.is-justify-content-end { + justify-content: end !important; +} + +.is-justify-content-left { + justify-content: left !important; +} + +.is-justify-content-right { + justify-content: right !important; +} + +.is-align-content-flex-start { + align-content: flex-start !important; +} + +.is-align-content-flex-end { + align-content: flex-end !important; +} + +.is-align-content-center { + align-content: center !important; +} + +.is-align-content-space-between { + align-content: space-between !important; +} + +.is-align-content-space-around { + align-content: space-around !important; +} + +.is-align-content-space-evenly { + align-content: space-evenly !important; +} + +.is-align-content-stretch { + align-content: stretch !important; +} + +.is-align-content-start { + align-content: start !important; +} + +.is-align-content-end { + align-content: end !important; +} + +.is-align-content-baseline { + align-content: baseline !important; +} + +.is-align-items-stretch { + align-items: stretch !important; +} + +.is-align-items-flex-start { + align-items: flex-start !important; +} + +.is-align-items-flex-end { + align-items: flex-end !important; +} + +.is-align-items-center { + align-items: center !important; +} + +.is-align-items-baseline { + align-items: baseline !important; +} + +.is-align-items-start { + align-items: start !important; +} + +.is-align-items-end { + align-items: end !important; +} + +.is-align-items-self-start { + align-items: self-start !important; +} + +.is-align-items-self-end { + align-items: self-end !important; +} + +.is-align-self-auto { + align-self: auto !important; +} + +.is-align-self-flex-start { + align-self: flex-start !important; +} + +.is-align-self-flex-end { + align-self: flex-end !important; +} + +.is-align-self-center { + align-self: center !important; +} + +.is-align-self-baseline { + align-self: baseline !important; +} + +.is-align-self-stretch { + align-self: stretch !important; +} + +.is-flex-grow-0 { + flex-grow: 0 !important; +} + +.is-flex-grow-1 { + flex-grow: 1 !important; +} + +.is-flex-grow-2 { + flex-grow: 2 !important; +} + +.is-flex-grow-3 { + flex-grow: 3 !important; +} + +.is-flex-grow-4 { + flex-grow: 4 !important; +} + +.is-flex-grow-5 { + flex-grow: 5 !important; +} + +.is-flex-shrink-0 { + flex-shrink: 0 !important; +} + +.is-flex-shrink-1 { + flex-shrink: 1 !important; +} + +.is-flex-shrink-2 { + flex-shrink: 2 !important; +} + +.is-flex-shrink-3 { + flex-shrink: 3 !important; +} + +.is-flex-shrink-4 { + flex-shrink: 4 !important; +} + +.is-flex-shrink-5 { + flex-shrink: 5 !important; +} + +.is-clearfix::after { + clear: both; + content: " "; + display: table; +} + +.is-pulled-left { + float: left !important; +} + +.is-pulled-right { + float: right !important; +} + +.is-radiusless { + border-radius: 0 !important; +} + +.is-shadowless { + box-shadow: none !important; +} + +.is-clickable { + cursor: pointer !important; + pointer-events: all !important; +} + +.is-clipped { + overflow: hidden !important; +} + +.is-relative { + position: relative !important; +} + +.is-marginless { + margin: 0 !important; +} + +.is-paddingless { + padding: 0 !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-left: 0.75rem !important; + margin-right: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4 { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.m-6 { + margin: 3rem !important; +} + +.mt-6 { + margin-top: 3rem !important; +} + +.mr-6 { + margin-right: 3rem !important; +} + +.mb-6 { + margin-bottom: 3rem !important; +} + +.ml-6 { + margin-left: 3rem !important; +} + +.mx-6 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.my-6 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.mr-auto { + margin-right: auto !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ml-auto { + margin-left: auto !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-left: 0.75rem !important; + padding-right: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 3rem !important; +} + +.pt-6 { + padding-top: 3rem !important; +} + +.pr-6 { + padding-right: 3rem !important; +} + +.pb-6 { + padding-bottom: 3rem !important; +} + +.pl-6 { + padding-left: 3rem !important; +} + +.px-6 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-6 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-auto { + padding: auto !important; +} + +.pt-auto { + padding-top: auto !important; +} + +.pr-auto { + padding-right: auto !important; +} + +.pb-auto { + padding-bottom: auto !important; +} + +.pl-auto { + padding-left: auto !important; +} + +.px-auto { + padding-left: auto !important; + padding-right: auto !important; +} + +.py-auto { + padding-top: auto !important; + padding-bottom: auto !important; +} + +.is-size-1 { + font-size: 3rem !important; +} + +.is-size-2 { + font-size: 2.5rem !important; +} + +.is-size-3 { + font-size: 2rem !important; +} + +.is-size-4 { + font-size: 1.5rem !important; +} + +.is-size-5 { + font-size: 1.25rem !important; +} + +.is-size-6 { + font-size: 1rem !important; +} + +.is-size-7 { + font-size: 0.75rem !important; +} + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; + } + .is-size-2-mobile { + font-size: 2.5rem !important; + } + .is-size-3-mobile { + font-size: 2rem !important; + } + .is-size-4-mobile { + font-size: 1.5rem !important; + } + .is-size-5-mobile { + font-size: 1.25rem !important; + } + .is-size-6-mobile { + font-size: 1rem !important; + } + .is-size-7-mobile { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; + } + .is-size-2-tablet { + font-size: 2.5rem !important; + } + .is-size-3-tablet { + font-size: 2rem !important; + } + .is-size-4-tablet { + font-size: 1.5rem !important; + } + .is-size-5-tablet { + font-size: 1.25rem !important; + } + .is-size-6-tablet { + font-size: 1rem !important; + } + .is-size-7-tablet { + font-size: 0.75rem !important; + } +} + +@media screen and (max-width: 1023px) { + .is-size-1-touch { + font-size: 3rem !important; + } + .is-size-2-touch { + font-size: 2.5rem !important; + } + .is-size-3-touch { + font-size: 2rem !important; + } + .is-size-4-touch { + font-size: 1.5rem !important; + } + .is-size-5-touch { + font-size: 1.25rem !important; + } + .is-size-6-touch { + font-size: 1rem !important; + } + .is-size-7-touch { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1024px) { + .is-size-1-desktop { + font-size: 3rem !important; + } + .is-size-2-desktop { + font-size: 2.5rem !important; + } + .is-size-3-desktop { + font-size: 2rem !important; + } + .is-size-4-desktop { + font-size: 1.5rem !important; + } + .is-size-5-desktop { + font-size: 1.25rem !important; + } + .is-size-6-desktop { + font-size: 1rem !important; + } + .is-size-7-desktop { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; + } + .is-size-2-widescreen { + font-size: 2.5rem !important; + } + .is-size-3-widescreen { + font-size: 2rem !important; + } + .is-size-4-widescreen { + font-size: 1.5rem !important; + } + .is-size-5-widescreen { + font-size: 1.25rem !important; + } + .is-size-6-widescreen { + font-size: 1rem !important; + } + .is-size-7-widescreen { + font-size: 0.75rem !important; + } +} + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; + } + .is-size-2-fullhd { + font-size: 2.5rem !important; + } + .is-size-3-fullhd { + font-size: 2rem !important; + } + .is-size-4-fullhd { + font-size: 1.5rem !important; + } + .is-size-5-fullhd { + font-size: 1.25rem !important; + } + .is-size-6-fullhd { + font-size: 1rem !important; + } + .is-size-7-fullhd { + font-size: 0.75rem !important; + } +} + +.has-text-centered { + text-align: center !important; +} + +.has-text-justified { + text-align: justify !important; +} + +.has-text-left { + text-align: left !important; +} + +.has-text-right { + text-align: right !important; +} + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-centered-tablet-only { + text-align: center !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-centered-touch { + text-align: center !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-centered-desktop { + text-align: center !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-justified-tablet-only { + text-align: justify !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-justified-touch { + text-align: justify !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-justified-desktop { + text-align: justify !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-left-tablet-only { + text-align: left !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-left-touch { + text-align: left !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-left-desktop { + text-align: left !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; + } +} + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; + } +} + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .has-text-right-tablet-only { + text-align: right !important; + } +} + +@media screen and (max-width: 1023px) { + .has-text-right-touch { + text-align: right !important; + } +} + +@media screen and (min-width: 1024px) { + .has-text-right-desktop { + text-align: right !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; + } +} + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; + } +} + +.is-capitalized { + text-transform: capitalize !important; +} + +.is-lowercase { + text-transform: lowercase !important; +} + +.is-uppercase { + text-transform: uppercase !important; +} + +.is-italic { + font-style: italic !important; +} + +.is-underlined { + text-decoration: underline !important; +} + +.has-text-weight-light { + font-weight: 300 !important; +} + +.has-text-weight-normal { + font-weight: 400 !important; +} + +.has-text-weight-medium { + font-weight: 500 !important; +} + +.has-text-weight-semibold { + font-weight: 600 !important; +} + +.has-text-weight-bold { + font-weight: 700 !important; +} + +.is-family-primary { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-secondary { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-sans-serif { + font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; +} + +.is-family-monospace { + font-family: monospace !important; +} + +.is-family-code { + font-family: monospace !important; +} + +.is-block { + display: block !important; +} + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-block-tablet-only { + display: block !important; + } +} + +@media screen and (max-width: 1023px) { + .is-block-touch { + display: block !important; + } +} + +@media screen and (min-width: 1024px) { + .is-block-desktop { + display: block !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; + } +} + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; + } +} + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; + } +} + +.is-flex { + display: flex !important; +} + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-flex-tablet-only { + display: flex !important; + } +} + +@media screen and (max-width: 1023px) { + .is-flex-touch { + display: flex !important; + } +} + +@media screen and (min-width: 1024px) { + .is-flex-desktop { + display: flex !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; + } +} + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; + } +} + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; + } +} + +.is-inline { + display: inline !important; +} + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-tablet-only { + display: inline !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-touch { + display: inline !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-desktop { + display: inline !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; + } +} + +.is-inline-block { + display: inline-block !important; +} + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-block-tablet-only { + display: inline-block !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-block-touch { + display: inline-block !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-block-desktop { + display: inline-block !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; + } +} + +.is-inline-flex { + display: inline-flex !important; +} + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; + } +} + +@media screen and (max-width: 1023px) { + .is-inline-flex-touch { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1024px) { + .is-inline-flex-desktop { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; + } +} + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; + } +} + +.is-hidden { + display: none !important; +} + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; +} + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; + } +} + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-hidden-tablet-only { + display: none !important; + } +} + +@media screen and (max-width: 1023px) { + .is-hidden-touch { + display: none !important; + } +} + +@media screen and (min-width: 1024px) { + .is-hidden-desktop { + display: none !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; + } +} + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; + } +} + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; + } +} + +.is-invisible { + visibility: hidden !important; +} + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; + } +} + +@media screen and (min-width: 769px) and (max-width: 1023px) { + .is-invisible-tablet-only { + visibility: hidden !important; + } +} + +@media screen and (max-width: 1023px) { + .is-invisible-touch { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1024px) { + .is-invisible-desktop { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1024px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; + } +} + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; + } +} + +/* Bulma Layout */ +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.hero .navbar { + background: none; +} + +.hero .tabs ul { + border-bottom: none; +} + +.hero.is-white { + background-color: white; + color: #0a0a0a; +} + +.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-white strong { + color: inherit; +} + +.hero.is-white .title { + color: #0a0a0a; +} + +.hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); +} + +.hero.is-white .subtitle a:not(.button), +.hero.is-white .subtitle strong { + color: #0a0a0a; +} + +@media screen and (max-width: 1023px) { + .hero.is-white .navbar-menu { + background-color: white; + } +} + +.hero.is-white .navbar-item, +.hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); +} + +.hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, +.hero.is-white .navbar-link:hover, +.hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; +} + +.hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; +} + +.hero.is-white .tabs a:hover { + opacity: 1; +} + +.hero.is-white .tabs li.is-active a { + color: white !important; + opacity: 1; +} + +.hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; +} + +.hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; +} + +.hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); + } +} + +.hero.is-black { + background-color: #0a0a0a; + color: white; +} + +.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-black strong { + color: inherit; +} + +.hero.is-black .title { + color: white; +} + +.hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-black .subtitle a:not(.button), +.hero.is-black .subtitle strong { + color: white; +} + +@media screen and (max-width: 1023px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; + } +} + +.hero.is-black .navbar-item, +.hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, +.hero.is-black .navbar-link:hover, +.hero.is-black .navbar-link.is-active { + background-color: black; + color: white; +} + +.hero.is-black .tabs a { + color: white; + opacity: 0.9; +} + +.hero.is-black .tabs a:hover { + opacity: 1; +} + +.hero.is-black .tabs li.is-active a { + color: #0a0a0a !important; + opacity: 1; +} + +.hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; +} + +.hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; +} + +.hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); + } +} + +.hero.is-light { + background-color: whitesmoke; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-light strong { + color: inherit; +} + +.hero.is-light .title { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light .subtitle { + color: rgba(0, 0, 0, 0.9); +} + +.hero.is-light .subtitle a:not(.button), +.hero.is-light .subtitle strong { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (max-width: 1023px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; + } +} + +.hero.is-light .navbar-item, +.hero.is-light .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, +.hero.is-light .navbar-link:hover, +.hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; +} + +.hero.is-light .tabs a:hover { + opacity: 1; +} + +.hero.is-light .tabs li.is-active a { + color: whitesmoke !important; + opacity: 1; +} + +.hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: whitesmoke; +} + +.hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); + } +} + +.hero.is-dark { + background-color: #363636; + color: #fff; +} + +.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-dark strong { + color: inherit; +} + +.hero.is-dark .title { + color: #fff; +} + +.hero.is-dark .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-dark .subtitle a:not(.button), +.hero.is-dark .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-dark .navbar-menu { + background-color: #363636; + } +} + +.hero.is-dark .navbar-item, +.hero.is-dark .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-dark a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, +.hero.is-dark .navbar-link:hover, +.hero.is-dark .navbar-link.is-active { + background-color: #292929; + color: #fff; +} + +.hero.is-dark .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-dark .tabs a:hover { + opacity: 1; +} + +.hero.is-dark .tabs li.is-active a { + color: #363636 !important; + opacity: 1; +} + +.hero.is-dark .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a { + color: #fff; +} + +.hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #363636; +} + +.hero.is-dark.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); + } +} + +.hero.is-primary { + background-color: #00d1b2; + color: #fff; +} + +.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-primary strong { + color: inherit; +} + +.hero.is-primary .title { + color: #fff; +} + +.hero.is-primary .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-primary .subtitle a:not(.button), +.hero.is-primary .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-primary .navbar-menu { + background-color: #00d1b2; + } +} + +.hero.is-primary .navbar-item, +.hero.is-primary .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-primary a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, +.hero.is-primary .navbar-link:hover, +.hero.is-primary .navbar-link.is-active { + background-color: #00b89c; + color: #fff; +} + +.hero.is-primary .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-primary .tabs a:hover { + opacity: 1; +} + +.hero.is-primary .tabs li.is-active a { + color: #00d1b2 !important; + opacity: 1; +} + +.hero.is-primary .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a { + color: #fff; +} + +.hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #00d1b2; +} + +.hero.is-primary.is-bold { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #009e6c 0%, #00d1b2 71%, #00e7eb 100%); + } +} + +.hero.is-link { + background-color: #485fc7; + color: #fff; +} + +.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-link strong { + color: inherit; +} + +.hero.is-link .title { + color: #fff; +} + +.hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-link .subtitle a:not(.button), +.hero.is-link .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-link .navbar-menu { + background-color: #485fc7; + } +} + +.hero.is-link .navbar-item, +.hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, +.hero.is-link .navbar-link:hover, +.hero.is-link .navbar-link.is-active { + background-color: #3a51bb; + color: #fff; +} + +.hero.is-link .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-link .tabs a:hover { + opacity: 1; +} + +.hero.is-link .tabs li.is-active a { + color: #485fc7 !important; + opacity: 1; +} + +.hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; +} + +.hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #485fc7; +} + +.hero.is-link.is-bold { + background-image: linear-gradient(141deg, #2959b3 0%, #485fc7 71%, #5658d2 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #2959b3 0%, #485fc7 71%, #5658d2 100%); + } +} + +.hero.is-info { + background-color: #3e8ed0; + color: #fff; +} + +.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-info strong { + color: inherit; +} + +.hero.is-info .title { + color: #fff; +} + +.hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-info .subtitle a:not(.button), +.hero.is-info .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-info .navbar-menu { + background-color: #3e8ed0; + } +} + +.hero.is-info .navbar-item, +.hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, +.hero.is-info .navbar-link:hover, +.hero.is-info .navbar-link.is-active { + background-color: #3082c5; + color: #fff; +} + +.hero.is-info .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-info .tabs a:hover { + opacity: 1; +} + +.hero.is-info .tabs li.is-active a { + color: #3e8ed0 !important; + opacity: 1; +} + +.hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; +} + +.hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #3e8ed0; +} + +.hero.is-info.is-bold { + background-image: linear-gradient(141deg, #208fbc 0%, #3e8ed0 71%, #4d83db 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #208fbc 0%, #3e8ed0 71%, #4d83db 100%); + } +} + +.hero.is-success { + background-color: #48c78e; + color: #fff; +} + +.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-success strong { + color: inherit; +} + +.hero.is-success .title { + color: #fff; +} + +.hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-success .subtitle a:not(.button), +.hero.is-success .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-success .navbar-menu { + background-color: #48c78e; + } +} + +.hero.is-success .navbar-item, +.hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, +.hero.is-success .navbar-link:hover, +.hero.is-success .navbar-link.is-active { + background-color: #3abb81; + color: #fff; +} + +.hero.is-success .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-success .tabs a:hover { + opacity: 1; +} + +.hero.is-success .tabs li.is-active a { + color: #48c78e !important; + opacity: 1; +} + +.hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; +} + +.hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #48c78e; +} + +.hero.is-success.is-bold { + background-image: linear-gradient(141deg, #29b35e 0%, #48c78e 71%, #56d2af 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #29b35e 0%, #48c78e 71%, #56d2af 100%); + } +} + +.hero.is-warning { + background-color: #ffe08a; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-warning strong { + color: inherit; +} + +.hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); +} + +.hero.is-warning .subtitle a:not(.button), +.hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); +} + +@media screen and (max-width: 1023px) { + .hero.is-warning .navbar-menu { + background-color: #ffe08a; + } +} + +.hero.is-warning .navbar-item, +.hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, +.hero.is-warning .navbar-link:hover, +.hero.is-warning .navbar-link.is-active { + background-color: #ffd970; + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; +} + +.hero.is-warning .tabs a:hover { + opacity: 1; +} + +.hero.is-warning .tabs li.is-active a { + color: #ffe08a !important; + opacity: 1; +} + +.hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); +} + +.hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffe08a; +} + +.hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffb657 0%, #ffe08a 71%, #fff6a3 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffb657 0%, #ffe08a 71%, #fff6a3 100%); + } +} + +.hero.is-danger { + background-color: #f14668; + color: #fff; +} + +.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), +.hero.is-danger strong { + color: inherit; +} + +.hero.is-danger .title { + color: #fff; +} + +.hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); +} + +.hero.is-danger .subtitle a:not(.button), +.hero.is-danger .subtitle strong { + color: #fff; +} + +@media screen and (max-width: 1023px) { + .hero.is-danger .navbar-menu { + background-color: #f14668; + } +} + +.hero.is-danger .navbar-item, +.hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); +} + +.hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, +.hero.is-danger .navbar-link:hover, +.hero.is-danger .navbar-link.is-active { + background-color: #ef2e55; + color: #fff; +} + +.hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; +} + +.hero.is-danger .tabs a:hover { + opacity: 1; +} + +.hero.is-danger .tabs li.is-active a { + color: #f14668 !important; + opacity: 1; +} + +.hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; +} + +.hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); +} + +.hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #f14668; +} + +.hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); +} + +@media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); + } +} + +.hero.is-small .hero-body { + padding: 1.5rem; +} + +@media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding: 9rem 4.5rem; + } +} + +@media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding: 18rem 6rem; + } +} + +.hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; +} + +.hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; +} + +.hero.is-halfheight { + min-height: 50vh; +} + +.hero.is-fullheight { + min-height: 100vh; +} + +.hero-video { + overflow: hidden; +} + +.hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); +} + +.hero-video.is-transparent { + opacity: 0.3; +} + +@media screen and (max-width: 768px) { + .hero-video { + display: none; + } +} + +.hero-buttons { + margin-top: 1.5rem; +} + +@media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; + } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; + } +} + +@media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; + } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; + } +} + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; +} + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; +} + +@media screen and (min-width: 769px), print { + .hero-body { + padding: 3rem 3rem; + } +} + +.section { + padding: 3rem 1.5rem; +} + +@media screen and (min-width: 1024px) { + .section { + padding: 3rem 3rem; + } + .section.is-medium { + padding: 9rem 4.5rem; + } + .section.is-large { + padding: 18rem 6rem; + } +} + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; +} +/*# sourceMappingURL=bulma.css.map */ \ No newline at end of file diff --git a/node_modules/bulma/css/bulma.css.map b/node_modules/bulma/css/bulma.css.map new file mode 100644 index 0000000..dbe97a3 --- /dev/null +++ b/node_modules/bulma/css/bulma.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../bulma.sass","../sass/utilities/_all.sass","../sass/utilities/extends.sass","../sass/utilities/controls.sass","../sass/utilities/initial-variables.sass","bulma.css","../sass/utilities/mixins.sass","../sass/base/_all.sass","../sass/base/minireset.sass","../sass/base/generic.sass","../sass/utilities/derived-variables.sass","../sass/base/animations.sass","../sass/elements/_all.sass","../sass/elements/box.sass","../sass/elements/button.sass","../sass/utilities/functions.sass","../sass/elements/container.sass","../sass/elements/content.sass","../sass/elements/icon.sass","../sass/elements/image.sass","../sass/elements/notification.sass","../sass/elements/progress.sass","../sass/elements/table.sass","../sass/elements/tag.sass","../sass/elements/title.sass","../sass/elements/other.sass","../sass/form/_all.sass","../sass/form/shared.sass","../sass/form/input-textarea.sass","../sass/form/checkbox-radio.sass","../sass/form/select.sass","../sass/form/file.sass","../sass/form/tools.sass","../sass/components/_all.sass","../sass/components/breadcrumb.sass","../sass/components/card.sass","../sass/components/dropdown.sass","../sass/components/level.sass","../sass/components/media.sass","../sass/components/menu.sass","../sass/components/message.sass","../sass/components/modal.sass","../sass/components/navbar.sass","../sass/components/pagination.sass","../sass/components/panel.sass","../sass/components/tabs.sass","../sass/grid/_all.sass","../sass/grid/columns.sass","../sass/grid/tiles.sass","../sass/helpers/_all.sass","../sass/helpers/color.sass","../sass/helpers/flexbox.sass","../sass/helpers/float.sass","../sass/helpers/other.sass","../sass/helpers/overflow.sass","../sass/helpers/position.sass","../sass/helpers/spacing.sass","../sass/helpers/typography.sass","../sass/helpers/visibility.sass","../sass/layout/_all.sass","../sass/layout/hero.sass","../sass/layout/section.sass","../sass/layout/footer.sass"],"names":[],"mappings":"AACA,6DAAA;ACDA,oBAAA;ACEA;;;;;ECYE,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;EACnB,6BAA+C;EAC/C,kBCoDU;EDnDV,gBAAgB;EAChB,oBAAoB;EACpB,eCgBW;EDfX,aAfoB;EAgBpB,2BAA2B;EAC3B,gBAhBuB;EAiBvB,iCAf+D;EAgB/D,gCAfkE;EAgBlE,iCAhBkE;EAiBlE,8BAlB+D;EAmB/D,kBAAkB;EAClB,mBAAmB;AENrB;;AFQE;;;;;;;;;;;;;;;;;EAIE,aAAa;AEQjB;;AFPE;;;;;;;;;;;;;;;;EAEE,mBAAmB;AEwBvB;;AH1DA;;;;EI4LE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;AD3HnB;;AHlEA;EIgME,6BAD8B;EAE9B,kBAAkB;EAClB,eAAe;EACf,aAAa;EACb,YAAY;EACZ,cAAc;EACd,eAAe;EACf,qBAAqB;EACrB,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,yBAAyB;EACzB,wBAAwB;EACxB,cAAc;AD1HhB;;AC6HE;;EACE,qBFzKkB;ACgDtB;;AHlFA;EImLE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EAwBjB,qBAAqB;EACrB,wBAAwB;EACxB,uCF7N2B;EE8N3B,YAAY;EACZ,qBFzJqB;EE0JrB,eAAe;EACf,oBAAoB;EACpB,qBAAqB;EACrB,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,WAAW;ADpHb;;ACqHE;EAEE,uBFpO2B;EEqO3B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;ADnHnC;;ACoHE;EACE,WAAW;EACX,UAAU;ADjHd;;ACkHE;EACE,WAAW;EACX,UAAU;AD/Gd;;ACgHE;EAEE,uCFjQyB;ACmJ7B;;AC+GE;EACE,uCFnQyB;ACuJ7B;;AC8GE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;AD3Gf;;AC4GE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADzGf;;AC0GE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADvGf;;AHnKA;EI6QE,mDAA2C;UAA3C,2CAA2C;EAC3C,yBFrR4B;EEsR5B,qBFxNqB;EEyNrB,+BAA+B;EAC/B,6BAA6B;EAC7B,WAAW;EACX,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,UAAU;ADtGZ;;AH7KA;;;;;;;;;;;;;;;;;EIsRE,SADuB;EAEvB,OAFuB;EAGvB,kBAAkB;EAClB,QAJuB;EAKvB,MALuB;ADhFzB;;AHlMA;EIqDE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;ADiJZ;;AEtOA,eAAA;ACAA,0EAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;EAuBE,SAAS;EACT,UAAU;AHyOZ;;AGtOA;;;;;;EAME,eAAe;EACf,mBAAmB;AHyOrB;;AGtOA;EACE,gBAAgB;AHyOlB;;AGtOA;;;;EAIE,SAAS;AHyOX;;AGtOA;EACE,sBAAsB;AHyOxB;;AGvOA;EAII,mBAAmB;AHuOvB;;AGpOA;;EAEE,YAAY;EACZ,eAAe;AHuOjB;;AGpOA;EACE,SAAS;AHuOX;;AGpOA;EACE,yBAAyB;EACzB,iBAAiB;AHuOnB;;AGrOA;;EAEE,UAAU;AHwOZ;;AG1OA;;EAII,mBAAmB;AH2OvB;;AGvQA;EChBE,uBLnB6B;EKoB7B,eAhCc;EAiCd,kCAAkC;EAClC,mCAAmC;EACnC,gBAlCoB;EAmCpB,kBAhCsB;EAiCtB,kBAhCsB;EAiCtB,kCApCiC;EAqCjC,8BAAsB;KAAtB,2BAAsB;UAAtB,sBAAsB;AJ2RxB;;AIzRA;;;;;;;EAOE,cAAc;AJ4RhB;;AI1RA;;;;;;EAME,oLL/ByL;AC4T3L;;AI3RA;;EAEE,6BAA6B;EAC7B,4BAA4B;EAC5B,sBLpC0B;ACkU5B;;AI5RA;EACE,cL7D4B;EK8D5B,cA1DkB;EA2DlB,gBL7BiB;EK8BjB,gBA1DoB;AJyVtB;;AI3RA;EACE,cLtDgC;EKuDhC,eAAe;EACf,qBAAqB;AJ8RvB;;AIjSA;EAKI,mBAAmB;AJgSvB;;AIrSA;EAOI,cL5E0B;AC8W9B;;AIhSA;EACE,4BLxE4B;EKyE5B,cCnBsB;EDoBtB,kBArEiB;EAsEjB,mBAvEkB;EAwElB,4BAzEgC;AJ4WlC;;AIjSA;EACE,4BL/E4B;EKgF5B,YAAY;EACZ,cAAc;EACd,WAxEa;EAyEb,gBAxEkB;AJ4WpB;;AIlSA;EACE,YAAY;EACZ,eAAe;AJqSjB;;AInSA;;EAEE,wBAAwB;AJsS1B;;AIpSA;EACE,kBAvFuB;AJ8XzB;;AIrSA;EACE,mBAAmB;EACnB,oBAAoB;AJwStB;;AItSA;EACE,cL5G4B;EK6G5B,gBLvEe;ACgXjB;;AIrSA;EACE,YAAY;AJwSd;;AItSA;EHvDE,iCAAiC;EGyDjC,4BL/G4B;EKgH5B,cLtH4B;EKuH5B,kBAjGqB;EAkGrB,gBAAgB;EAChB,uBAlG0B;EAmG1B,gBAAgB;EAChB,iBAAiB;AJySnB;;AIjTA;EAUI,6BAA6B;EAC7B,mBAAmB;EACnB,cAvGoB;EAwGpB,UAAU;AJ2Sd;;AIzSA;;EAGI,mBAAmB;AJ2SvB;;AI9SA;;EAKM,mBAAmB;AJ8SzB;;AInTA;EAOI,cL1I0B;AC0b9B;;AMhcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AMzcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AOzcA,mBAAA;ACWA;EAEE,uBTE6B;ESD7B,kBTyDgB;ESxDhB,0FTb2B;ESc3B,cTT4B;ESU5B,cAAc;EACd,gBAZmB;AR6crB;;AQ/bA;EAGI,yETD8B;ACiclC;;AQncA;EAKI,oETH8B;ACqclC;;AS/ZA;EAGE,uBVhD6B;EUiD7B,qBVtD4B;EUuD5B,iBX5DwB;EW6DxB,cV5D4B;EU6D5B,eAAe;EAGf,uBAAuB;EACvB,iCA7D6D;EA8D7D,iBA7D6B;EA8D7B,kBA9D6B;EA+D7B,8BAhE6D;EAiE7D,kBAAkB;EAClB,mBAAmB;AT8ZrB;;AS9aA;EAkBI,cAAc;ATgalB;;ASlbA;EAwBM,aAAa;EACb,YAAY;AT8ZlB;;ASvbA;ERwHI,+BQ7FsG;ER6FtG,oBQ5FmE;ATgavE;;AS5bA;ERwHI,mBQ1FmE;ER0FnE,gCQzFsG;ATka1G;;ASjcA;EAiCM,+BAAiF;EACjF,gCAAkF;AToaxF;;AStcA;EAsCI,qBVzF0B;EU0F1B,cV7F0B;ACigB9B;;AS3cA;EA0CI,qBVhF8B;EUiF9B,cVjG0B;ACsgB9B;;AShdA;EA6CM,iDVnF4B;AC0flC;;ASpdA;EAgDI,qBVrG0B;EUsG1B,cVvG0B;AC+gB9B;;ASzdA;EAoDI,6BAA6B;EAC7B,yBAAyB;EACzB,cV3G0B;EU4G1B,0BA1F8B;ATmgBlC;;ASheA;EA4DM,4BV3GwB;EU4GxB,cVnHwB;AC2hB9B;;ASreA;EAgEM,yBChB2B;EDiB3B,cVvHwB;ACgiB9B;;AS1eA;;EAoEM,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;AT2atB;;ASjfA;EAwEI,gBAvG0B;EAwG1B,yBAvGmC;EAwGnC,cVhH8B;EUiH9B,qBAvG0B;ATohB9B;;ASxfA;EA8EM,cVpH4B;EUqH5B,0BAzGmC;ATuhBzC;;AS7fA;EAoFM,uBVjIyB;EUkIzB,yBAAyB;EACzB,cVhJuB;AC6jB7B;;ASngBA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,cVrJqB;ACmkB7B;;ASzgBA;EA8FQ,yBAAyB;EACzB,cVzJqB;ACwkB7B;;AS9gBA;EAiGU,mDV9IqB;AC+jB/B;;ASlhBA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,cVhKqB;ACklB7B;;ASxhBA;;EAyGQ,uBVtJuB;EUuJvB,mBVvJuB;EUwJvB,gBAAgB;ATobxB;;AS/hBA;EA6GQ,yBVvKqB;EUwKrB,YV3JuB;ACilB/B;;ASpiBA;EAiHU,uBCjEuB;AVwfjC;;ASxiBA;;EAoHU,yBV9KmB;EU+KnB,yBAAyB;EACzB,gBAAgB;EAChB,YVpKqB;AC6lB/B;;AShjBA;EA0HU,gEAA4E;AT0btF;;ASpjBA;EA4HQ,6BAA6B;EAC7B,mBV1KuB;EU2KvB,YV3KuB;ACumB/B;;AS1jBA;EAmIU,uBVhLqB;EUiLrB,mBVjLqB;EUkLrB,cV/LmB;AC0nB7B;;AShkBA;EAwIY,4DAA8D;AT4b1E;;ASpkBA;EA8Ic,gEAA4E;AT0b1F;;ASxkBA;;EAiJU,6BAA6B;EAC7B,mBV/LqB;EUgMrB,gBAAgB;EAChB,YVjMqB;AC6nB/B;;AShlBA;EAsJQ,6BAA6B;EAC7B,qBVjNqB;EUkNrB,cVlNqB;ACgpB7B;;AStlBA;EA6JU,yBVvNmB;EUwNnB,YV3MqB;ACwoB/B;;AS3lBA;EAqKc,4DAA8D;AT0b5E;;AS/lBA;;EAwKU,6BAA6B;EAC7B,qBVnOmB;EUoOnB,gBAAgB;EAChB,cVrOmB;ACiqB7B;;ASvmBA;EAoFM,yBV9IuB;EU+IvB,yBAAyB;EACzB,YVnIyB;AC0pB/B;;AS7mBA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,YVxIuB;ACgqB/B;;ASnnBA;EA8FQ,yBAAyB;EACzB,YV5IuB;ACqqB/B;;ASxnBA;EAiGU,gDV3JmB;ACsrB7B;;AS5nBA;EAoGQ,uBCpDyB;EDqDzB,yBAAyB;EACzB,YVnJuB;AC+qB/B;;ASloBA;;EAyGQ,yBVnKqB;EUoKrB,qBVpKqB;EUqKrB,gBAAgB;AT8hBxB;;ASzoBA;EA6GQ,uBV1JuB;EU2JvB,cVxKqB;ACwsB7B;;AS9oBA;EAiHU,yBCjEuB;AVkmBjC;;ASlpBA;;EAoHU,uBVjKqB;EUkKrB,yBAAyB;EACzB,gBAAgB;EAChB,cVjLmB;ACotB7B;;AS1pBA;EA0HU,4DAA4E;AToiBtF;;AS9pBA;EA4HQ,6BAA6B;EAC7B,qBVvLqB;EUwLrB,cVxLqB;AC8tB7B;;ASpqBA;EAmIU,yBV7LmB;EU8LnB,qBV9LmB;EU+LnB,YVlLqB;ACutB/B;;AS1qBA;EAwIY,gEAA8D;ATsiB1E;;AS9qBA;EA8Ic,4DAA4E;AToiB1F;;ASlrBA;;EAiJU,6BAA6B;EAC7B,qBV5MmB;EU6MnB,gBAAgB;EAChB,cV9MmB;ACovB7B;;AS1rBA;EAsJQ,6BAA6B;EAC7B,mBVpMuB;EUqMvB,YVrMuB;AC6uB/B;;AShsBA;EA6JU,uBV1MqB;EU2MrB,cVxNmB;AC+vB7B;;ASrsBA;EAqKc,gEAA8D;AToiB5E;;ASzsBA;;EAwKU,6BAA6B;EAC7B,mBVtNqB;EUuNrB,gBAAgB;EAChB,YVxNqB;AC8vB/B;;ASjtBA;EAoFM,4BVnIwB;EUoIxB,yBAAyB;EACzB,yBClEe;AVmsBrB;;ASvtBA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,yBCvEa;AVysBrB;;AS7tBA;EA8FQ,yBAAyB;EACzB,yBC3Ea;AV8sBrB;;ASluBA;EAiGU,mDVhJoB;ACqxB9B;;AStuBA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,yBClFa;AVwtBrB;;AS5uBA;;EAyGQ,4BVxJsB;EUyJtB,wBVzJsB;EU0JtB,gBAAgB;ATwoBxB;;ASnvBA;EA6GQ,oCCzFa;ED0Fb,iBV7JsB;ACuyB9B;;ASxvBA;EAiHU,oCCjEuB;AV4sBjC;;AS5vBA;;EAoHU,oCChGW;EDiGX,yBAAyB;EACzB,gBAAgB;EAChB,iBVtKoB;ACmzB9B;;ASpwBA;EA0HU,sFAA4E;AT8oBtF;;ASxwBA;EA4HQ,6BAA6B;EAC7B,wBV5KsB;EU6KtB,iBV7KsB;AC6zB9B;;AS9wBA;EAmIU,4BVlLoB;EUmLpB,wBVnLoB;EUoLpB,yBCjHW;AVgwBrB;;ASpxBA;EAwIY,sEAA8D;ATgpB1E;;ASxxBA;EA8Ic,sFAA4E;AT8oB1F;;AS5xBA;;EAiJU,6BAA6B;EAC7B,wBVjMoB;EUkMpB,gBAAgB;EAChB,iBVnMoB;ACm1B9B;;ASpyBA;EAsJQ,6BAA6B;EAC7B,gCCnIa;EDoIb,yBCpIa;AVsxBrB;;AS1yBA;EA6JU,oCCzIW;ED0IX,iBV7MoB;AC81B9B;;AS/yBA;EAqKc,sEAA8D;AT8oB5E;;ASnzBA;;EAwKU,6BAA6B;EAC7B,gCCrJW;EDsJX,gBAAgB;EAChB,yBCvJW;AVuyBrB;;AS3zBA;EAoFM,yBV1IwB;EU2IxB,yBAAyB;EACzB,WChEU;AV2yBhB;;ASj0BA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVizBhB;;ASv0BA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVszBhB;;AS50BA;EAiGU,gDVvJoB;ACs4B9B;;ASh1BA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVg0BhB;;ASt1BA;;EAyGQ,yBV/JsB;EUgKtB,qBVhKsB;EUiKtB,gBAAgB;ATkvBxB;;AS71BA;EA6GQ,sBCvFQ;EDwFR,cVpKsB;ACw5B9B;;ASl2BA;EAiHU,yBCjEuB;AVszBjC;;ASt2BA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV7KoB;ACo6B9B;;AS92BA;EA0HU,0DAA4E;ATwvBtF;;ASl3BA;EA4HQ,6BAA6B;EAC7B,qBVnLsB;EUoLtB,cVpLsB;AC86B9B;;ASx3BA;EAmIU,yBVzLoB;EU0LpB,qBV1LoB;EU2LpB,WC/GM;AVw2BhB;;AS93BA;EAwIY,gEAA8D;AT0vB1E;;ASl4BA;EA8Ic,0DAA4E;ATwvB1F;;ASt4BA;;EAiJU,6BAA6B;EAC7B,qBVxMoB;EUyMpB,gBAAgB;EAChB,cV1MoB;ACo8B9B;;AS94BA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AV83BhB;;ASp5BA;EA6JU,sBCvIM;EDwIN,cVpNoB;AC+8B9B;;ASz5BA;EAqKc,gEAA8D;ATwvB5E;;AS75BA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AV+4BhB;;ASr6BA;EAoFM,yBV5H4B;EU6H5B,yBAAyB;EACzB,WChEU;AVq5BhB;;AS36BA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AV25BhB;;ASj7BA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVg6BhB;;ASt7BA;EAiGU,iDVzIwB;ACk+BlC;;AS17BA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AV06BhB;;ASh8BA;;EAyGQ,yBVjJ0B;EUkJ1B,qBVlJ0B;EUmJ1B,gBAAgB;AT41BxB;;ASv8BA;EA6GQ,sBCvFQ;EDwFR,cVtJ0B;ACo/BlC;;AS58BA;EAiHU,yBCjEuB;AVg6BjC;;ASh9BA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV/JwB;ACggClC;;ASx9BA;EA0HU,0DAA4E;ATk2BtF;;AS59BA;EA4HQ,6BAA6B;EAC7B,qBVrK0B;EUsK1B,cVtK0B;AC0gClC;;ASl+BA;EAmIU,yBV3KwB;EU4KxB,qBV5KwB;EU6KxB,WC/GM;AVk9BhB;;ASx+BA;EAwIY,gEAA8D;ATo2B1E;;AS5+BA;EA8Ic,0DAA4E;ATk2B1F;;ASh/BA;;EAiJU,6BAA6B;EAC7B,qBV1LwB;EU2LxB,gBAAgB;EAChB,cV5LwB;ACgiClC;;ASx/BA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AVw+BhB;;AS9/BA;EA6JU,sBCvIM;EDwIN,cVtMwB;AC2iClC;;ASngCA;EAqKc,gEAA8D;ATk2B5E;;ASvgCA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AVy/BhB;;AS/gCA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AV++BrE;;ASphCA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVq/BrE;;AS1hCA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AV2/BrE;;AShiCA;EAoFM,yBV1H4B;EU2H5B,yBAAyB;EACzB,WChEU;AVghChB;;AStiCA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVshChB;;AS5iCA;EA8FQ,yBAAyB;EACzB,WCzEQ;AV2hChB;;ASjjCA;EAiGU,iDVvIwB;AC2lClC;;ASrjCA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVqiChB;;AS3jCA;;EAyGQ,yBV/I0B;EUgJ1B,qBVhJ0B;EUiJ1B,gBAAgB;ATu9BxB;;ASlkCA;EA6GQ,sBCvFQ;EDwFR,cVpJ0B;AC6mClC;;ASvkCA;EAiHU,yBCjEuB;AV2hCjC;;AS3kCA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV7JwB;ACynClC;;ASnlCA;EA0HU,0DAA4E;AT69BtF;;ASvlCA;EA4HQ,6BAA6B;EAC7B,qBVnK0B;EUoK1B,cVpK0B;ACmoClC;;AS7lCA;EAmIU,yBVzKwB;EU0KxB,qBV1KwB;EU2KxB,WC/GM;AV6kChB;;ASnmCA;EAwIY,gEAA8D;AT+9B1E;;ASvmCA;EA8Ic,0DAA4E;AT69B1F;;AS3mCA;;EAiJU,6BAA6B;EAC7B,qBVxLwB;EUyLxB,gBAAgB;EAChB,cV1LwB;ACypClC;;ASnnCA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AVmmChB;;ASznCA;EA6JU,sBCvIM;EDwIN,cVpMwB;ACoqClC;;AS9nCA;EAqKc,gEAA8D;AT69B5E;;ASloCA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AVonChB;;AS1oCA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AV0mCrE;;AS/oCA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVgnCrE;;ASrpCA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVsnCrE;;AS3pCA;EAoFM,yBV3H4B;EU4H5B,yBAAyB;EACzB,WChEU;AV2oChB;;ASjqCA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVipChB;;ASvqCA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVspChB;;AS5qCA;EAiGU,kDVxIwB;ACutClC;;AShrCA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVgqChB;;AStrCA;;EAyGQ,yBVhJ0B;EUiJ1B,qBVjJ0B;EUkJ1B,gBAAgB;ATklCxB;;AS7rCA;EA6GQ,sBCvFQ;EDwFR,cVrJ0B;ACyuClC;;ASlsCA;EAiHU,yBCjEuB;AVspCjC;;AStsCA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV9JwB;ACqvClC;;AS9sCA;EA0HU,0DAA4E;ATwlCtF;;ASltCA;EA4HQ,6BAA6B;EAC7B,qBVpK0B;EUqK1B,cVrK0B;AC+vClC;;ASxtCA;EAmIU,yBV1KwB;EU2KxB,qBV3KwB;EU4KxB,WC/GM;AVwsChB;;AS9tCA;EAwIY,gEAA8D;AT0lC1E;;ASluCA;EA8Ic,0DAA4E;ATwlC1F;;AStuCA;;EAiJU,6BAA6B;EAC7B,qBVzLwB;EU0LxB,gBAAgB;EAChB,cV3LwB;ACqxClC;;AS9uCA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AV8tChB;;ASpvCA;EA6JU,sBCvIM;EDwIN,cVrMwB;ACgyClC;;ASzvCA;EAqKc,gEAA8D;ATwlC5E;;AS7vCA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AV+uChB;;ASrwCA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AVquCrE;;AS1wCA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AV2uCrE;;AShxCA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVivCrE;;AStxCA;EAoFM,yBV7H4B;EU8H5B,yBAAyB;EACzB,WChEU;AVswChB;;AS5xCA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AV4wChB;;ASlyCA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVixChB;;ASvyCA;EAiGU,kDV1IwB;ACo1ClC;;AS3yCA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AV2xChB;;ASjzCA;;EAyGQ,yBVlJ0B;EUmJ1B,qBVnJ0B;EUoJ1B,gBAAgB;AT6sCxB;;ASxzCA;EA6GQ,sBCvFQ;EDwFR,cVvJ0B;ACs2ClC;;AS7zCA;EAiHU,yBCjEuB;AVixCjC;;ASj0CA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cVhKwB;ACk3ClC;;ASz0CA;EA0HU,0DAA4E;ATmtCtF;;AS70CA;EA4HQ,6BAA6B;EAC7B,qBVtK0B;EUuK1B,cVvK0B;AC43ClC;;ASn1CA;EAmIU,yBV5KwB;EU6KxB,qBV7KwB;EU8KxB,WC/GM;AVm0ChB;;ASz1CA;EAwIY,gEAA8D;ATqtC1E;;AS71CA;EA8Ic,0DAA4E;ATmtC1F;;ASj2CA;;EAiJU,6BAA6B;EAC7B,qBV3LwB;EU4LxB,gBAAgB;EAChB,cV7LwB;ACk5ClC;;ASz2CA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AVy1ChB;;AS/2CA;EA6JU,sBCvIM;EDwIN,cVvMwB;AC65ClC;;ASp3CA;EAqKc,gEAA8D;ATmtC5E;;ASx3CA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AV02ChB;;ASh4CA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AVg2CrE;;ASr4CA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVs2CrE;;AS34CA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AV42CrE;;ASj5CA;EAoFM,yBV9H4B;EU+H5B,yBAAyB;EACzB,yBClEe;AVm4CrB;;ASv5CA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,yBCvEa;AVy4CrB;;AS75CA;EA8FQ,yBAAyB;EACzB,yBC3Ea;AV84CrB;;ASl6CA;EAiGU,mDV3IwB;ACg9ClC;;ASt6CA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,yBClFa;AVw5CrB;;AS56CA;;EAyGQ,yBVnJ0B;EUoJ1B,qBVpJ0B;EUqJ1B,gBAAgB;ATw0CxB;;ASn7CA;EA6GQ,oCCzFa;ED0Fb,cVxJ0B;ACk+ClC;;ASx7CA;EAiHU,oCCjEuB;AV44CjC;;AS57CA;;EAoHU,oCChGW;EDiGX,yBAAyB;EACzB,gBAAgB;EAChB,cVjKwB;AC8+ClC;;ASp8CA;EA0HU,sFAA4E;AT80CtF;;ASx8CA;EA4HQ,6BAA6B;EAC7B,qBVvK0B;EUwK1B,cVxK0B;ACw/ClC;;AS98CA;EAmIU,yBV7KwB;EU8KxB,qBV9KwB;EU+KxB,yBCjHW;AVg8CrB;;ASp9CA;EAwIY,gEAA8D;ATg1C1E;;ASx9CA;EA8Ic,sFAA4E;AT80C1F;;AS59CA;;EAiJU,6BAA6B;EAC7B,qBV5LwB;EU6LxB,gBAAgB;EAChB,cV9LwB;AC8gDlC;;ASp+CA;EAsJQ,6BAA6B;EAC7B,gCCnIa;EDoIb,yBCpIa;AVs9CrB;;AS1+CA;EA6JU,oCCzIW;ED0IX,cVxMwB;ACyhDlC;;AS/+CA;EAqKc,gEAA8D;AT80C5E;;ASn/CA;;EAwKU,6BAA6B;EAC7B,gCCrJW;EDsJX,gBAAgB;EAChB,yBCvJW;AVu+CrB;;AS3/CA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AV29CrE;;AShgDA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AVi+CrE;;AStgDA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVu+CrE;;AS5gDA;EAoFM,yBVxH2B;EUyH3B,yBAAyB;EACzB,WChEU;AV4/ChB;;ASlhDA;EAyFQ,yBCzCyB;ED0CzB,yBAAyB;EACzB,WCrEQ;AVkgDhB;;ASxhDA;EA8FQ,yBAAyB;EACzB,WCzEQ;AVugDhB;;AS7hDA;EAiGU,kDVrIuB;ACqkDjC;;ASjiDA;EAoGQ,yBCpDyB;EDqDzB,yBAAyB;EACzB,WChFQ;AVihDhB;;ASviDA;;EAyGQ,yBV7IyB;EU8IzB,qBV9IyB;EU+IzB,gBAAgB;ATm8CxB;;AS9iDA;EA6GQ,sBCvFQ;EDwFR,cVlJyB;ACulDjC;;ASnjDA;EAiHU,yBCjEuB;AVugDjC;;ASvjDA;;EAoHU,sBC9FM;ED+FN,yBAAyB;EACzB,gBAAgB;EAChB,cV3JuB;ACmmDjC;;AS/jDA;EA0HU,0DAA4E;ATy8CtF;;ASnkDA;EA4HQ,6BAA6B;EAC7B,qBVjKyB;EUkKzB,cVlKyB;AC6mDjC;;ASzkDA;EAmIU,yBVvKuB;EUwKvB,qBVxKuB;EUyKvB,WC/GM;AVyjDhB;;AS/kDA;EAwIY,gEAA8D;AT28C1E;;ASnlDA;EA8Ic,0DAA4E;ATy8C1F;;ASvlDA;;EAiJU,6BAA6B;EAC7B,qBVtLuB;EUuLvB,gBAAgB;EAChB,cVxLuB;ACmoDjC;;AS/lDA;EAsJQ,6BAA6B;EAC7B,kBCjIQ;EDkIR,WClIQ;AV+kDhB;;ASrmDA;EA6JU,sBCvIM;EDwIN,cVlMuB;AC8oDjC;;AS1mDA;EAqKc,gEAA8D;ATy8C5E;;AS9mDA;;EAwKU,6BAA6B;EAC7B,kBCnJM;EDoJN,gBAAgB;EAChB,WCrJM;AVgmDhB;;AStnDA;EAiLU,yBCpJsC;EDqJtC,cC7I2D;AVslDrE;;AS3nDA;EAqLY,yBCrIqB;EDsIrB,yBAAyB;EACzB,cClJyD;AV4lDrE;;ASjoDA;EA0LY,yBC1IqB;ED2IrB,yBAAyB;EACzB,cCvJyD;AVkmDrE;;ASvoDA;EARE,kBVdc;ACiqDhB;;ASrpDE;EACE,kBVkBc;ACsoDlB;;AS/oDA;EANE,eVjBW;AC0qDb;;ASnpDA;EAJE,kBVpBc;AC+qDhB;;ASvpDA;EAFE,iBVvBa;ACorDf;;AS3pDA;;EAyMI,uBVtP2B;EUuP3B,qBV5P0B;EU6P1B,gBAjOyB;EAkOzB,YAjOyB;ATwrD7B;;ASnqDA;EA8MI,aAAa;EACb,WAAW;ATy9Cf;;ASxqDA;EAiNI,6BAA6B;EAC7B,oBAAoB;AT29CxB;;AS7qDA;ERnDE,kBAAkB;EAKhB,6BAAmC;EACnC,4BAAkC;EQmQhC,6BAA6B;AT89CnC;;ASprDA;EAwNI,4BVvQ0B;EUwQ1B,qBV3Q0B;EU4Q1B,cV9Q0B;EU+Q1B,gBAAgB;EAChB,oBAAoB;ATg+CxB;;AS5rDA;EA8NI,qBVlNmB;EUmNnB,gCAA0D;EAC1D,iCAA2D;ATk+C/D;;ASh+CA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;ATm+C7B;;ASv+CA;EAMI,qBAAqB;ATq+CzB;;AS3+CA;ER1GI,oBQkHwC;ATu+C5C;;AS/+CA;EAUI,sBAAsB;ATy+C1B;;ASn/CA;EAYI,mBAAmB;AT2+CvB;;ASv/CA;EA1OE,kBVdc;ACmvDhB;;ASvuDE;EACE,kBVkBc;ACwtDlB;;AS//CA;EAtOE,kBVpBc;AC6vDhB;;ASngDA;EApOE,iBVvBa;ACkwDf;;ASvgDA;EA0BQ,4BAA4B;EAC5B,yBAAyB;ATi/CjC;;AS5gDA;EA6BQ,6BAA6B;EAC7B,0BAA0B;ERxI9B,kBQyIwC;ATm/C5C;;ASlhDA;ER1GI,eQ2IqC;ATq/CzC;;ASthDA;EAoCQ,UAAU;ATs/ClB;;AS1hDA;EA0CQ,UAAU;ATo/ClB;;AS9hDA;EA4CU,UAAU;ATs/CpB;;ASliDA;EA8CQ,YAAY;EACZ,cAAc;ATw/CtB;;ASviDA;EAiDI,uBAAuB;AT0/C3B;;AS3iDA;EAoDQ,oBAAoB;EACpB,qBAAqB;AT2/C7B;;AShjDA;EAuDI,yBAAyB;AT6/C7B;;ASpjDA;EA0DQ,oBAAoB;EACpB,qBAAqB;AT8/C7B;;ACzvDE;EQiQM;IACE,oBAlTyD;ET8yDjE;ES1/CM;;IAEE,qBAtT0F;ETkzDlG;ESjgDM;IACE,kBV1TM;EC6zDd;ESpgDM;IACE,eV3TG;ECi0DX;AACF;;ACrwDE;EQ6PM;IACE,qBAlTyL;ET8zDjM;ES1gDM;;IAEE,kBV9TM;EC00Dd;ESjhDM;IACE,eV3TG;EC80DX;ESphDM;IACE,kBV5TM;ECk1Dd;AACF;;AWl3DA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AXq3Db;;AWz3DA;EAMI,0BAA0B;EAC1B,kBZyCM;EYxCN,mBZwCM;EYvCN,WAAW;AXu3Df;;AC/wDE;EUjHF;IAWI,gBAAuC;EX03DzC;AACF;;AC3wDI;EU3HJ;IAcM,iBAAqE;EX63DzE;AACF;;AClwDI;EU1IJ;IAiBM,iBAAiE;EXg4DrE;AACF;;AClxDI;EUhIJ;IAoBM,iBAAqE;EXm4DzE;AACF;;ACzwDI;EU/IJ;IAuBM,iBAAiE;EXs4DrE;AACF;;AY34DA;EAII,kBAAkB;AZ24DtB;;AY/4DA;;;;;;;EAcM,kBAhC2B;AZ26DjC;;AYz5DA;;;;;;EAqBI,cbvC0B;EawC1B,gBbHiB;EaIjB,kBA3C+B;AZw7DnC;;AYp6DA;EAyBI,cAAc;EACd,oBAAoB;AZ+4DxB;;AYz6DA;EA4BM,eAAe;AZi5DrB;;AY76DA;EA8BI,iBAAiB;EACjB,uBAAuB;AZm5D3B;;AYl7DA;EAiCM,oBAAoB;AZq5D1B;;AYt7DA;EAmCI,gBAAgB;EAChB,uBAAuB;AZu5D3B;;AY37DA;EAsCM,oBAAoB;AZy5D1B;;AY/7DA;EAwCI,iBAAiB;EACjB,oBAAoB;AZ25DxB;;AYp8DA;EA2CI,kBAAkB;EAClB,uBAAuB;AZ65D3B;;AYz8DA;EA8CI,cAAc;EACd,kBAAkB;AZ+5DtB;;AY98DA;EAiDI,4Bb5D0B;EEuK1B,8BF1K0B;EaiE1B,qBAjEqC;AZk+DzC;;AYp9DA;EAqDI,4BAA4B;EXuG5B,gBWtGmC;EACnC,eAAe;AZm6DnB;;AY19DA;EAyDM,wBAAwB;AZq6D9B;;AY99DA;EA2DQ,4BAA4B;AZu6DpC;;AYl+DA;EA6DQ,4BAA4B;AZy6DpC;;AYt+DA;EA+DQ,4BAA4B;AZ26DpC;;AY1+DA;EAiEQ,4BAA4B;AZ66DpC;;AY9+DA;EAmEI,wBAAwB;EXyFxB,gBWxFmC;EACnC,eAAe;AZ+6DnB;;AYp/DA;EAuEM,uBAAuB;EACvB,iBAAiB;AZi7DvB;;AYz/DA;EA0EQ,uBAAuB;AZm7D/B;;AY7/DA;EX4JI,gBWhFmC;AZq7DvC;;AYjgEA;EA8EI,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;AZu7DtB;;AYvgEA;EAkFM,eAAe;AZy7DrB;;AY3gEA;EAoFM,kBAAkB;AZ27DxB;;AY/gEA;EAsFM,qBAAqB;AZ67D3B;;AYnhEA;EAwFM,kBAAkB;AZ+7DxB;;AYvhEA;EX2CE,iCAAiC;EWgD/B,gBAAgB;EAChB,qBAxG8B;EAyG9B,gBAAgB;EAChB,iBAAiB;AZi8DrB;;AY/hEA;;EAiGI,cAAc;AZm8DlB;;AYpiEA;EAmGI,WAAW;AZq8Df;;AYxiEA;;EAsGM,yBbpHwB;EaqHxB,qBAhHmC;EAiHnC,qBAhHmC;EAiHnC,mBAAmB;AZu8DzB;;AYhjEA;EA2GM,cb7HwB;ACskE9B;;AYpjEA;EA6GQ,mBAAmB;AZ28D3B;;AYxjEA;;EAiHQ,qBAvHsC;EAwHtC,cbpIsB;ACglE9B;;AY9jEA;;EAsHQ,qBAzHsC;EA0HtC,cbzIsB;ACslE9B;;AYpkEA;;EA6HY,sBAjI4C;AZ6kExD;;AYzkEA;EAgIM,aAAa;AZ68DnB;;AY7kEA;EAmII,kBbrHY;ACmkEhB;;AYjlEA;EAqII,ebxHS;ACwkEb;;AYrlEA;EAuII,kBb3HY;AC6kEhB;;AYzlEA;EAyII,iBb9HW;ACklEf;;Aa/mEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,cAVsB;EAWtB,aAXsB;Ab6nExB;;AavnEA;EAQI,YAbwB;EAcxB,WAdwB;AbioE5B;;Aa5nEA;EAWI,YAfyB;EAgBzB,WAhByB;AbqoE7B;;AajoEA;EAcI,YAjBwB;EAkBxB,WAlBwB;AbyoE5B;;AarnEA;EACE,uBAAuB;EACvB,cAAc;EACd,oBAAoB;EACpB,eAAe;EACf,mBA5BsB;EA6BtB,mBAAmB;AbwnErB;;Aa9nEA;EAQI,YAAY;EACZ,cAAc;Ab0nElB;;AanoEA;EAYQ,oBA/BkB;Ab0pE1B;;AavoEA;EAiBQ,mBApCkB;Ab8pE1B;;AatnEA;EACE,aAAa;AbynEf;;AclqEA;EACE,cAAc;EACd,kBAAkB;AdqqEpB;;AcvqEA;EAII,cAAc;EACd,YAAY;EACZ,WAAW;AduqEf;;Ac7qEA;EAQM,qBf4DiB;AC6mEvB;;AcjrEA;EAUI,WAAW;Ad2qEf;;AcrrEA;;;;;;;;;;;;;;;;;EA+BM,YAAY;EACZ,WAAW;Ad0qEjB;;Ac1sEA;EAmCI,iBAAiB;Ad2qErB;;Ac9sEA;EAqCI,gBAAgB;Ad6qEpB;;AcltEA;EAuCI,gBAAgB;Ad+qEpB;;ActtEA;EAyCI,qBAAqB;AdirEzB;;Ac1tEA;EA2CI,gBAAgB;AdmrEpB;;Ac9tEA;EA6CI,mBAAmB;AdqrEvB;;AcluEA;EA+CI,gBAAgB;AdurEpB;;ActuEA;EAiDI,qBAAqB;AdyrEzB;;Ac1uEA;EAmDI,iBAAiB;Ad2rErB;;Ac9uEA;EAqDI,sBAAsB;Ad6rE1B;;AclvEA;EAuDI,iBAAiB;Ad+rErB;;ActvEA;EAyDI,sBAAsB;AdisE1B;;Ac1vEA;EA2DI,sBAAsB;AdmsE1B;;Ac9vEA;EA6DI,iBAAiB;AdqsErB;;AclwEA;EA+DI,iBAAiB;AdusErB;;ActwEA;EAmEM,YAAwB;EACxB,WAAuB;AdusE7B;;Ac3wEA;EAmEM,YAAwB;EACxB,WAAuB;Ad4sE7B;;AchxEA;EAmEM,YAAwB;EACxB,WAAuB;AditE7B;;AcrxEA;EAmEM,YAAwB;EACxB,WAAuB;AdstE7B;;Ac1xEA;EAmEM,YAAwB;EACxB,WAAuB;Ad2tE7B;;Ac/xEA;EAmEM,YAAwB;EACxB,WAAuB;AdguE7B;;AcpyEA;EAmEM,aAAwB;EACxB,YAAuB;AdquE7B;;AelyEA;EAEE,4BhBA4B;EgBC5B,kBhBwDU;EgBvDV,kBAAkB;EAEhB,sCAXoD;Af8yExD;;AezyEA;EAUI,mBAAmB;EACnB,0BAA0B;AfmyE9B;;Ae9yEA;EAaI,mBAAmB;AfqyEvB;;AelzEA;;EAgBI,iBhBZ2B;ACmzE/B;;AevzEA;EAkBI,uBAAuB;AfyyE3B;;Ae3zEA;EdiLI,ac7J4B;EAC5B,kBAAkB;EAClB,WAAW;Af2yEf;;Aej0EA;;;EA0BI,mBAAmB;Af6yEvB;;Aev0EA;EAgCM,uBhB5ByB;EgB6BzB,chB1CuB;ACq1E7B;;Ae50EA;EAgCM,yBhBzCuB;EgB0CvB,YhB7ByB;AC60E/B;;Aej1EA;EAgCM,4BhB9BwB;EgB+BxB,yBLoCe;AVixErB;;Aet1EA;EAgCM,yBhBrCwB;EgBsCxB,WLsCU;AVoxEhB;;Ae31EA;EAgCM,yBhBvB4B;EgBwB5B,WLsCU;AVyxEhB;;Aeh2EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AV+wErE;;Aer2EA;EAgCM,yBhBrB4B;EgBsB5B,WLsCU;AVmyEhB;;Ae12EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVyxErE;;Ae/2EA;EAgCM,yBhBtB4B;EgBuB5B,WLsCU;AV6yEhB;;Aep3EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVmyErE;;Aez3EA;EAgCM,yBhBxB4B;EgByB5B,WLsCU;AVuzEhB;;Ae93EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AV6yErE;;Aen4EA;EAgCM,yBhBzB4B;EgB0B5B,yBLoCe;AVm0ErB;;Aex4EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVuzErE;;Ae74EA;EAgCM,yBhBnB2B;EgBoB3B,WLsCU;AV20EhB;;Ael5EA;EAuCU,yBLuCsC;EKtCtC,cL8C2D;AVi0ErE;;AgBx5EA;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,YAAY;EACZ,qBjByDqB;EiBxDrB,cAAc;EACd,YjBoBW;EiBnBX,gBAAgB;EAChB,UAAU;EACV,WAAW;AhB05Eb;;AgBp6EA;EAYI,yBjBX2B;ACu6E/B;;AgBx6EA;EAcI,yBjBjB0B;AC+6E9B;;AgB56EA;EAgBI,yBjBnB0B;ACm7E9B;;AgBh7EA;EAkBI,yBjBrB0B;EiBsB1B,YAAY;AhBk6EhB;;AgBr7EA;EAyBQ,uBjBpBuB;ACo7E/B;;AgBz7EA;EA2BQ,uBjBtBuB;ACw7E/B;;AgB77EA;EA6BQ,uBjBxBuB;AC47E/B;;AgBj8EA;EA+BQ,mEAA2F;AhBs6EnG;;AgBr8EA;EAyBQ,yBjBjCqB;ACi9E7B;;AgBz8EA;EA2BQ,yBjBnCqB;ACq9E7B;;AgB78EA;EA6BQ,yBjBrCqB;ACy9E7B;;AgBj9EA;EA+BQ,qEAA2F;AhBs7EnG;;AgBr9EA;EAyBQ,4BjBtBsB;ACs9E9B;;AgBz9EA;EA2BQ,4BjBxBsB;AC09E9B;;AgB79EA;EA6BQ,4BjB1BsB;AC89E9B;;AgBj+EA;EA+BQ,wEAA2F;AhBs8EnG;;AgBr+EA;EAyBQ,yBjB7BsB;AC6+E9B;;AgBz+EA;EA2BQ,yBjB/BsB;ACi/E9B;;AgB7+EA;EA6BQ,yBjBjCsB;ACq/E9B;;AgBj/EA;EA+BQ,qEAA2F;AhBs9EnG;;AgBr/EA;EAyBQ,yBjBf0B;AC++ElC;;AgBz/EA;EA2BQ,yBjBjB0B;ACm/ElC;;AgB7/EA;EA6BQ,yBjBnB0B;ACu/ElC;;AgBjgFA;EA+BQ,qEAA2F;AhBs+EnG;;AgBrgFA;EAyBQ,yBjBb0B;AC6/ElC;;AgBzgFA;EA2BQ,yBjBf0B;ACigFlC;;AgB7gFA;EA6BQ,yBjBjB0B;ACqgFlC;;AgBjhFA;EA+BQ,qEAA2F;AhBs/EnG;;AgBrhFA;EAyBQ,yBjBd0B;AC8gFlC;;AgBzhFA;EA2BQ,yBjBhB0B;ACkhFlC;;AgB7hFA;EA6BQ,yBjBlB0B;ACshFlC;;AgBjiFA;EA+BQ,qEAA2F;AhBsgFnG;;AgBriFA;EAyBQ,yBjBhB0B;ACgiFlC;;AgBziFA;EA2BQ,yBjBlB0B;ACoiFlC;;AgB7iFA;EA6BQ,yBjBpB0B;ACwiFlC;;AgBjjFA;EA+BQ,qEAA2F;AhBshFnG;;AgBrjFA;EAyBQ,yBjBjB0B;ACijFlC;;AgBzjFA;EA2BQ,yBjBnB0B;ACqjFlC;;AgB7jFA;EA6BQ,yBjBrB0B;ACyjFlC;;AgBjkFA;EA+BQ,qEAA2F;AhBsiFnG;;AgBrkFA;EAyBQ,yBjBXyB;AC2jFjC;;AgBzkFA;EA2BQ,yBjBbyB;AC+jFjC;;AgB7kFA;EA6BQ,yBjBfyB;ACmkFjC;;AgBjlFA;EA+BQ,qEAA2F;AhBsjFnG;;AgBrlFA;EAkCI,gCAtCkC;UAsClC,wBAtCkC;EAuClC,2CAAmC;UAAnC,mCAAmC;EACnC,yCAAiC;UAAjC,iCAAiC;EACjC,yCAAiC;UAAjC,iCAAiC;EACjC,yBjBrC2B;EiBsC3B,qEAA0F;EAC1F,6BAA6B;EAC7B,4BAA4B;EAC5B,0BAA0B;AhBujF9B;;AgBjmFA;EA4CM,6BAA6B;AhByjFnC;;AgBrmFA;EA8CM,6BAA6B;AhB2jFnC;;AgBzmFA;EAgDM,oBAAoB;AhB6jF1B;;AgB7mFA;EAoDI,ejBxBY;ACqlFhB;;AgBjnFA;EAsDI,ejB5BY;AC2lFhB;;AgBrnFA;EAwDI,cjB/BW;ACgmFf;;AgB/jFA;EACE;IACE,2BAA2B;EhBkkF7B;EgBjkFA;IACE,4BAA4B;EhBmkF9B;AACF;;AgBxkFA;EACE;IACE,2BAA2B;EhBkkF7B;EgBjkFA;IACE,4BAA4B;EhBmkF9B;AACF;;AiB9mFA;EAEE,uBlBjB6B;EkBkB7B,clB3B4B;AC2oF9B;;AiBnnFA;;EAMI,yBlB1B0B;EkB2B1B,qBA/B6B;EAgC7B,qBA/B6B;EAgC7B,mBAAmB;AjBknFvB;;AiB3nFA;;EAeQ,uBlB9BuB;EkB+BvB,mBlB/BuB;EkBgCvB,clB7CqB;AC8pF7B;;AiBloFA;;EAeQ,yBlB3CqB;EkB4CrB,qBlB5CqB;EkB6CrB,YlBhCuB;ACwpF/B;;AiBzoFA;;EAeQ,4BlBhCsB;EkBiCtB,wBlBjCsB;EkBkCtB,yBPiCa;AV8lFrB;;AiBhpFA;;EAeQ,yBlBvCsB;EkBwCtB,qBlBxCsB;EkByCtB,WPmCQ;AVmmFhB;;AiBvpFA;;EAeQ,yBlBzB0B;EkB0B1B,qBlB1B0B;EkB2B1B,WPmCQ;AV0mFhB;;AiB9pFA;;EAeQ,yBlBvB0B;EkBwB1B,qBlBxB0B;EkByB1B,WPmCQ;AVinFhB;;AiBrqFA;;EAeQ,yBlBxB0B;EkByB1B,qBlBzB0B;EkB0B1B,WPmCQ;AVwnFhB;;AiB5qFA;;EAeQ,yBlB1B0B;EkB2B1B,qBlB3B0B;EkB4B1B,WPmCQ;AV+nFhB;;AiBnrFA;;EAeQ,yBlB3B0B;EkB4B1B,qBlB5B0B;EkB6B1B,yBPiCa;AVwoFrB;;AiB1rFA;;EAeQ,yBlBrByB;EkBsBzB,qBlBtByB;EkBuBzB,WPmCQ;AV6oFhB;;AiBjsFA;;EAoBM,mBAAmB;EACnB,SAAS;AjBkrFf;;AiBvsFA;;EAuBM,yBlBjC4B;EkBkC5B,WP4BU;AVypFhB;;AiB7sFA;;;;EA2BQ,mBAAmB;AjByrF3B;;AiBptFA;;EA6BM,sBAAsB;AjB4rF5B;;AiBztFA;EA+BI,clBvD0B;ACqvF9B;;AiB7tFA;EAiCM,gBAtDsB;AjBsvF5B;;AiBjuFA;EAoCM,yBlB9C4B;EkB+C5B,WPeU;AVkrFhB;;AiBtuFA;;EAwCQ,mBAAmB;AjBmsF3B;;AiB3uFA;;EA2CQ,kBPSQ;EORR,mBAAmB;AjBqsF3B;;AiBjvFA;EA8CI,6BA5DqC;AjBmwFzC;;AiBrvFA;;EAiDM,qBApEgC;EAqEhC,clB1EwB;ACmxF9B;;AiB3vFA;EAoDI,6BAhEqC;AjB2wFzC;;AiB/vFA;;EAuDM,qBAxEgC;EAyEhC,clBhFwB;AC6xF9B;;AiBrwFA;EA0DI,6BAvEqC;AjBsxFzC;;AiBzwFA;;EA+DU,sBAAsB;AjB+sFhC;;AiB9wFA;;EAoEM,iBAAiB;AjB+sFvB;;AiBnxFA;;EAyEU,wBAAwB;AjB+sFlC;;AiBxxFA;EA2EI,WAAW;AjBitFf;;AiB5xFA;EAgFU,yBlBhGoB;ACgzF9B;;AiBhyFA;EAqFY,yBlBrGkB;ACozF9B;;AiBpyFA;EAuFc,4BlBxGgB;ACyzF9B;;AiBxyFA;;EA2FM,qBAAqB;AjBktF3B;;AiB7yFA;EAgGU,yBlBhHoB;ACi0F9B;;AiB/sFA;EhB7DE,iCAAiC;EgBgEjC,cAAc;EACd,kBAAkB;EAClB,eAAe;AjBitFjB;;AkB70FA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AlBg1F7B;;AkBp1FA;EAMI,qBAAqB;AlBk1FzB;;AkBx1FA;EjB2KI,oBiBnKwC;AlBo1F5C;;AkB51FA;EAUI,sBAAsB;AlBs1F1B;;AkBh2FA;EAYI,mBAAmB;AlBw1FvB;;AkBp2FA;EAgBM,enBYO;AC40Fb;;AkBx2FA;EAmBM,kBnBQU;ACi1FhB;;AkB52FA;EAqBI,uBAAuB;AlB21F3B;;AkBh3FA;EAuBM,qBAAqB;EACrB,oBAAoB;AlB61F1B;;AkBr3FA;EA0BI,yBAAyB;AlB+1F7B;;AkBz3FA;EA6BQ,mBAAmB;AlBg2F3B;;AkB73FA;EA+BQ,eAAe;AlBk2FvB;;AkBj4FA;EjB2KI,eiBzImC;AlBm2FvC;;AkBr4FA;EjB2KI,ciBvIqC;EAE/B,yBAAyB;EACzB,4BAA4B;AlBo2FtC;;AkB34FA;EA6CU,0BAA0B;EAC1B,6BAA6B;AlBk2FvC;;AkB71FA;EACE,mBAAmB;EACnB,4BnBjD4B;EmBkD5B,kBnBOU;EmBNV,cnBzD4B;EmB0D5B,oBAAoB;EACpB,kBnB5Bc;EmB6Bd,WAAW;EACX,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AlBg2FrB;;AkB52FA;EjBwHI,oBiB1GuC;EjB0GvC,uBiBzGyC;AlBk2F7C;;AkBj3FA;EAqBM,uBnBlEyB;EmBmEzB,cnBhFuB;ACg7F7B;;AkBt3FA;EAqBM,yBnB/EuB;EmBgFvB,YnBnEyB;ACw6F/B;;AkB33FA;EAqBM,4BnBpEwB;EmBqExB,yBRFe;AV42FrB;;AkBh4FA;EAqBM,yBnB3EwB;EmB4ExB,WRAU;AV+2FhB;;AkBr4FA;EAqBM,yBnB7D4B;EmB8D5B,WRAU;AVo3FhB;;AkB14FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AV02FrE;;AkB/4FA;EAqBM,yBnB3D4B;EmB4D5B,WRAU;AV83FhB;;AkBp5FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AVo3FrE;;AkBz5FA;EAqBM,yBnB5D4B;EmB6D5B,WRAU;AVw4FhB;;AkB95FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AV83FrE;;AkBn6FA;EAqBM,yBnB9D4B;EmB+D5B,WRAU;AVk5FhB;;AkBx6FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AVw4FrE;;AkB76FA;EAqBM,yBnB/D4B;EmBgE5B,yBRFe;AV85FrB;;AkBl7FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AVk5FrE;;AkBv7FA;EAqBM,yBnBzD2B;EmB0D3B,WRAU;AVs6FhB;;AkB57FA;EA4BU,yBRCsC;EQAtC,cRQ2D;AV45FrE;;AkBj8FA;EAgCI,kBnBtDY;AC29FhB;;AkBr8FA;EAkCI,enBzDS;ACg+Fb;;AkBz8FA;EAoCI,kBnB5DY;ACq+FhB;;AkB78FA;EjBwHI,qBiBjF0C;EjBiF1C,sBiBhF0C;AlB06F9C;;AkBl9FA;EjBwHI,qBiB9E0C;EjB8E1C,sBiB7E0C;AlB46F9C;;AkBv9FA;EjBwHI,qBiB3E0C;EjB2E1C,sBiB1E0C;AlB86F9C;;AkB59FA;EjBwHI,gBiB/KmB;EAyGnB,UAAU;EACV,kBAAkB;EAClB,UAAU;AlB+6Fd;;AkBn+FA;EAuDM,8BAA8B;EAC9B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AlBg7FrC;;AkB9+FA;EAgEM,WAAW;EACX,UAAU;AlBk7FhB;;AkBn/FA;EAmEM,WAAW;EACX,UAAU;AlBo7FhB;;AkBx/FA;EAuEM,yBAAmD;AlBq7FzD;;AkB5/FA;EAyEM,yBAAoD;AlBu7F1D;;AkBhgGA;EA2EI,qBnB/DmB;ACw/FvB;;AkBv7FA;EAEI,0BAA0B;AlBy7F9B;;AmB/iGA;;EAGE,sBAAsB;AnBijGxB;;AmBpjGA;;;;EAMI,oBAAoB;AnBqjGxB;;AmB3jGA;;EAQI,iBApBmB;AnB4kGvB;;AmBhkGA;;EAUI,iBArBmB;AnBglGvB;;AmBrkGA;;EAYI,sBAAsB;AnB8jG1B;;AmB5jGA;EACE,cpB9B4B;EoBiC5B,epBLW;EoBMX,gBpBGmB;EoBFnB,kBAnCuB;AnBgmGzB;;AmBnkGA;EAQI,cApCwB;EAqCxB,oBApCyB;AnBmmG7B;;AmBxkGA;EAWI,oBA3B+B;AnB4lGnC;;AmB5kGA;EAgBM,epBnBO;ACmlGb;;AmBhlGA;EAgBM,iBpBlBS;ACslGf;;AmBplGA;EAgBM,epBjBO;ACylGb;;AmBxlGA;EAgBM,iBpBhBS;AC4lGf;;AmB5lGA;EAgBM,kBpBfU;AC+lGhB;;AmBhmGA;EAgBM,epBdO;ACkmGb;;AmBpmGA;EAgBM,kBpBbU;ACqmGhB;;AmBtlGA;EACE,cpB/C4B;EoBkD5B,kBpBrBc;EoBsBd,gBpBjBiB;EoBkBjB,iBA3CyB;AnBkoG3B;;AmB7lGA;EAQI,cpBvD0B;EoBwD1B,gBpBnBiB;AC4mGrB;;AmBlmGA;EAWI,oBA7C+B;AnBwoGnC;;AmBtmGA;EAgBM,epBrCO;AC+nGb;;AmB1mGA;EAgBM,iBpBpCS;ACkoGf;;AmB9mGA;EAgBM,epBnCO;ACqoGb;;AmBlnGA;EAgBM,iBpBlCS;ACwoGf;;AmBtnGA;EAgBM,kBpBjCU;AC2oGhB;;AmB1nGA;EAgBM,epBhCO;AC8oGb;;AmB9nGA;EAgBM,kBpB/BU;ACipGhB;;AoB/qGA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,kBAAkB;EAClB,yBAAyB;ApBkrG3B;;AoB7qGA;EACE,mBAAmB;EACnB,4BrBP4B;EqBQ5B,qBrBmDqB;EqBlDrB,oBAAoB;EACpB,kBrBac;EqBZd,WAAW;EACX,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;ApBgrGrB;;AqB9sGA,eAAA;AC0DA;EAxBE,uBvBnB6B;EuBoB7B,qBvBzB4B;EuB0B5B,kBvBkCU;EuBjCV,cvB/B4B;ACgtG9B;;AC9oGI;EqBjCA,4BvBjC0B;ACotG9B;;AClpGI;EqBjCA,4BvBjC0B;ACwtG9B;;ACtpGI;EqBjCA,4BvBjC0B;AC4tG9B;;AC1pGI;EqBjCA,4BvBjC0B;ACguG9B;;AsB9rGE;EAEE,qBvBjC0B;ACiuG9B;;AsB/rGE;EAIE,qBvBzB8B;EuB0B9B,iDvB1B8B;ACytGlC;;AsB9rGE;;;;;EAEE,4BvBtC0B;EuBuC1B,wBvBvC0B;EuBwC1B,gBAAgB;EAChB,cvB9C0B;ACkvG9B;;AClrGI;;;;;EqBhBE,+BvBhDwB;AC0vG9B;;AC1rGI;;;;;EqBhBE,+BvBhDwB;ACkwG9B;;AClsGI;;;;;EqBhBE,+BvBhDwB;AC0wG9B;;AC1sGI;;;;;EqBhBE,+BvBhDwB;ACkxG9B;;AuBpxGA;EAEE,2DxBN2B;EwBO3B,eAAe;EACf,WAAW;AvBsxGb;;AuBrxGE;EACE,gBAAgB;AvBwxGpB;;AuBpxGI;EACE,mBxBFyB;ACyxG/B;;AuBxxGK;EAMG,mDxBPuB;AC6xG/B;;AuB5xGI;EACE,qBxBfuB;AC8yG7B;;AuBhyGK;EAMG,gDxBpBqB;ACkzG7B;;AuBpyGI;EACE,wBxBJwB;AC2yG9B;;AuBxyGK;EAMG,mDxBTsB;AC+yG9B;;AuB5yGI;EACE,qBxBXwB;AC0zG9B;;AuBhzGK;EAMG,gDxBhBsB;AC8zG9B;;AuBpzGI;EACE,qBxBG4B;ACozGlC;;AuBxzGK;EAMG,iDxBF0B;ACwzGlC;;AuB5zGI;EACE,qBxBK4B;AC0zGlC;;AuBh0GK;EAMG,iDxBA0B;AC8zGlC;;AuBp0GI;EACE,qBxBI4B;ACm0GlC;;AuBx0GK;EAMG,kDxBD0B;ACu0GlC;;AuB50GI;EACE,qBxBE4B;AC60GlC;;AuBh1GK;EAMG,kDxBH0B;ACi1GlC;;AuBp1GI;EACE,qBxBC4B;ACs1GlC;;AuBx1GK;EAMG,mDxBJ0B;AC01GlC;;AuB51GI;EACE,qBxBO2B;ACw1GjC;;AuBh2GK;EAMG,kDxBEyB;AC41GjC;;AuB51GE;EzBmBA,kBC0BgB;EDzBhB,kBCNc;ACm1GhB;;AuB/1GE;EzBoBA,kBCVc;ACy1GhB;;AuBj2GE;EzBoBA,iBCba;AC81Gf;;AuBl2GE;EACE,cAAc;EACd,WAAW;AvBq2Gf;;AuBp2GE;EACE,eAAe;EACf,WAAW;AvBu2Gf;;AuBr2GA;EAGI,qBxB+BmB;EwB9BnB,gDAA4D;EAC5D,iDAA6D;AvBs2GjE;;AuB32GA;EAOI,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AvBw2GpB;;AuBt2GA;EAEE,cAAc;EACd,eAAe;EACf,eAAe;EACf,2BzB7CkE;EyB8ClE,gBAAgB;AvBw2GlB;;AuB92GA;EAQI,gBA1DsB;EA2DtB,eA1DqB;AvBo6GzB;;AuBn3GA;EAWI,eAAe;AvB42GnB;;AuBv3GA;EAcI,YAAY;AvB62GhB;;AwB96GA;EACE,eAAe;EACf,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;AxBi7GpB;;AwBh7GE;EACE,eAAe;AxBm7GnB;;AwBl7GE;EACE,czBF0B;ACu7G9B;;AwBp7GE;;;;;EAGE,czBJ0B;EyBK1B,mBAAmB;AxBy7GvB;;AwBp7GA;EvBkKI,kBuB/JqC;AxBq7GzC;;AyBx8GA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,mBAAmB;AzB28GrB;;AyB/8GA;EAMI,a3BDkB;AE88GtB;;AyBn9GA;EAUM,qB1BU4B;EEsK9B,cwB/K+B;EAC7B,UAAU;AzB68GhB;;AyBz9GA;EAeM,qB1BuDiB;EE4GnB,iBwBlKsC;AzB88G1C;;AyB99GA;EAmBI,eAAe;EACf,cAAc;EACd,cAAc;EACd,eAAe;EACf,aAAa;AzB+8GjB;;AyBt+GA;EAyBM,aAAa;AzBi9GnB;;AyB1+GA;;EA4BM,wB1BjBwB;ACo+G9B;;AyB/+GA;ExBkLI,oBwBpJwC;AzBq9G5C;;AyBn/GA;EAgCM,YAAY;EACZ,UAAU;AzBu9GhB;;AyBx/GA;EAmCQ,kBAAkB;AzBy9G1B;;AyB5/GA;EAuCM,qB1BnCwB;AC4/G9B;;AyBhgHA;EA6CQ,mB1BhCuB;ACu/G/B;;AyBpgHA;EA+CQ,mB1BlCuB;AC2/G/B;;AyBxgHA;EAkDU,qBfwDuB;AVk6GjC;;AyB5gHA;EAuDU,mD1B1CqB;ACmgH/B;;AyBhhHA;EA6CQ,qB1B7CqB;ACohH7B;;AyBphHA;EA+CQ,qB1B/CqB;ACwhH7B;;AyBxhHA;EAkDU,mBfwDuB;AVk7GjC;;AyB5hHA;EAuDU,gD1BvDmB;ACgiH7B;;AyBhiHA;EA6CQ,wB1BlCsB;ACyhH9B;;AyBpiHA;EA+CQ,wB1BpCsB;AC6hH9B;;AyBxiHA;EAkDU,qBfwDuB;AVk8GjC;;AyB5iHA;EAuDU,mD1B5CoB;ACqiH9B;;AyBhjHA;EA6CQ,qB1BzCsB;ACgjH9B;;AyBpjHA;EA+CQ,qB1B3CsB;ACojH9B;;AyBxjHA;EAkDU,qBfwDuB;AVk9GjC;;AyB5jHA;EAuDU,gD1BnDoB;AC4jH9B;;AyBhkHA;EA6CQ,qB1B3B0B;ACkjHlC;;AyBpkHA;EA+CQ,qB1B7B0B;ACsjHlC;;AyBxkHA;EAkDU,qBfwDuB;AVk+GjC;;AyB5kHA;EAuDU,iD1BrCwB;AC8jHlC;;AyBhlHA;EA6CQ,qB1BzB0B;ACgkHlC;;AyBplHA;EA+CQ,qB1B3B0B;ACokHlC;;AyBxlHA;EAkDU,qBfwDuB;AVk/GjC;;AyB5lHA;EAuDU,iD1BnCwB;AC4kHlC;;AyBhmHA;EA6CQ,qB1B1B0B;ACilHlC;;AyBpmHA;EA+CQ,qB1B5B0B;ACqlHlC;;AyBxmHA;EAkDU,qBfwDuB;AVkgHjC;;AyB5mHA;EAuDU,kD1BpCwB;AC6lHlC;;AyBhnHA;EA6CQ,qB1B5B0B;ACmmHlC;;AyBpnHA;EA+CQ,qB1B9B0B;ACumHlC;;AyBxnHA;EAkDU,qBfwDuB;AVkhHjC;;AyB5nHA;EAuDU,kD1BtCwB;AC+mHlC;;AyBhoHA;EA6CQ,qB1B7B0B;AConHlC;;AyBpoHA;EA+CQ,qB1B/B0B;ACwnHlC;;AyBxoHA;EAkDU,qBfwDuB;AVkiHjC;;AyB5oHA;EAuDU,mD1BvCwB;ACgoHlC;;AyBhpHA;EA6CQ,qB1BvByB;AC8nHjC;;AyBppHA;EA+CQ,qB1BzByB;ACkoHjC;;AyBxpHA;EAkDU,qBfwDuB;AVkjHjC;;AyB5pHA;EAuDU,kD1BjCuB;AC0oHjC;;AyBhqHA;E3ByCE,kBC0BgB;EDzBhB,kBCNc;ACioHhB;;AyBrqHA;E3B4CE,kBCVc;ACuoHhB;;AyBzqHA;E3B8CE,iBCba;AC4oHf;;AyB7qHA;EAkEM,gCAA8C;EAC9C,YAAY;AzB+mHlB;;AyBlrHA;EAqEI,WAAW;AzBinHf;;AyBtrHA;EAuEM,WAAW;AzBmnHjB;;AyB1rHA;EA2EM,aAAa;EACb,kBAAkB;ExB8GpB,cwB7G+B;EAC7B,YAAY;EACZ,eAAe;AzBmnHrB;;AyBlsHA;EAiFM,kB1B7CU;ACkqHhB;;AyBtsHA;EAmFM,kB1BjDU;ACwqHhB;;AyB1sHA;EAqFM,iB1BpDS;AC6qHf;;A0BjsHA;EAEE,oBAAoB;EACpB,aAAa;EACb,2BAA2B;EAC3B,kBAAkB;A1BmsHpB;;A0BxsHA;EAYQ,uB3BZuB;E2BavB,yBAAyB;EACzB,c3B3BqB;AC2tH7B;;A0B9sHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,c3BjCmB;ACiuH7B;;A0BptHA;EAwBU,yBAAyB;EACzB,+C3BzBqB;E2B0BrB,c3BvCmB;ACuuH7B;;A0B1tHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,c3B7CmB;AC6uH7B;;A0BhuHA;EAYQ,yB3BzBqB;E2B0BrB,yBAAyB;EACzB,Y3BduB;ACsuH/B;;A0BtuHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,Y3BpBqB;AC4uH/B;;A0B5uHA;EAwBU,yBAAyB;EACzB,4C3BtCmB;E2BuCnB,Y3B1BqB;ACkvH/B;;A0BlvHA;EA8BU,uBhB+DuB;EgB9DvB,yBAAyB;EACzB,Y3BhCqB;ACwvH/B;;A0BxvHA;EAYQ,4B3BdsB;E2BetB,yBAAyB;EACzB,yBhBmDa;AV6rHrB;;A0B9vHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,yBhB6CW;AVmsHrB;;A0BpwHA;EAwBU,yBAAyB;EACzB,+C3B3BoB;E2B4BpB,yBhBuCW;AVysHrB;;A0B1wHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,yBhBiCW;AV+sHrB;;A0BhxHA;EAYQ,yB3BrBsB;E2BsBtB,yBAAyB;EACzB,WhBqDQ;AVmtHhB;;A0BtxHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVytHhB;;A0B5xHA;EAwBU,yBAAyB;EACzB,4C3BlCoB;E2BmCpB,WhByCM;AV+tHhB;;A0BlyHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVquHhB;;A0BxyHA;EAYQ,yB3BP0B;E2BQ1B,yBAAyB;EACzB,WhBqDQ;AV2uHhB;;A0B9yHA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVivHhB;;A0BpzHA;EAwBU,yBAAyB;EACzB,6C3BpBwB;E2BqBxB,WhByCM;AVuvHhB;;A0B1zHA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AV6vHhB;;A0Bh0HA;EAYQ,yB3BL0B;E2BM1B,yBAAyB;EACzB,WhBqDQ;AVmwHhB;;A0Bt0HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVywHhB;;A0B50HA;EAwBU,yBAAyB;EACzB,6C3BlBwB;E2BmBxB,WhByCM;AV+wHhB;;A0Bl1HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVqxHhB;;A0Bx1HA;EAYQ,yB3BN0B;E2BO1B,yBAAyB;EACzB,WhBqDQ;AV2xHhB;;A0B91HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AViyHhB;;A0Bp2HA;EAwBU,yBAAyB;EACzB,8C3BnBwB;E2BoBxB,WhByCM;AVuyHhB;;A0B12HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AV6yHhB;;A0Bh3HA;EAYQ,yB3BR0B;E2BS1B,yBAAyB;EACzB,WhBqDQ;AVmzHhB;;A0Bt3HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVyzHhB;;A0B53HA;EAwBU,yBAAyB;EACzB,8C3BrBwB;E2BsBxB,WhByCM;AV+zHhB;;A0Bl4HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVq0HhB;;A0Bx4HA;EAYQ,yB3BT0B;E2BU1B,yBAAyB;EACzB,yBhBmDa;AV60HrB;;A0B94HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,yBhB6CW;AVm1HrB;;A0Bp5HA;EAwBU,yBAAyB;EACzB,+C3BtBwB;E2BuBxB,yBhBuCW;AVy1HrB;;A0B15HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,yBhBiCW;AV+1HrB;;A0Bh6HA;EAYQ,yB3BHyB;E2BIzB,yBAAyB;EACzB,WhBqDQ;AVm2HhB;;A0Bt6HA;EAkBU,yBhB2EuB;EgB1EvB,yBAAyB;EACzB,WhB+CM;AVy2HhB;;A0B56HA;EAwBU,yBAAyB;EACzB,8C3BhBuB;E2BiBvB,WhByCM;AV+2HhB;;A0Bl7HA;EA8BU,yBhB+DuB;EgB9DvB,yBAAyB;EACzB,WhBmCM;AVq3HhB;;A0Bx7HA;EAmCI,kB3BZY;ACq6HhB;;A0B57HA;EAqCI,e3BfS;AC06Hb;;A0Bh8HA;EAuCI,kB3BlBY;AC+6HhB;;A0Bp8HA;EA0CQ,eAAe;A1B85HvB;;A0Bx8HA;EA4CI,iB3BxBW;ACw7Hf;;A0B58HA;EA+CQ,eAAe;A1Bi6HvB;;A0Bh9HA;EAmDM,6BAA6B;EAC7B,0BAA0B;A1Bi6HhC;;A0Br9HA;EAsDM,4BAA4B;EAC5B,yBAAyB;A1Bm6H/B;;A0B19HA;EA0DQ,kB3BHI;ACu6HZ;;A0B99HA;EA4DQ,aAAa;A1Bs6HrB;;A0Bl+HA;EA+DM,sBAAsB;A1Bu6H5B;;A0Bt+HA;EAiEM,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;A1By6HtB;;A0B5+HA;EAqEM,uBAAuB;A1B26H7B;;A0Bh/HA;EAuEM,aAAa;EACb,YAAY;A1B66HlB;;A0Br/HA;EA0EQ,eAAe;A1B+6HvB;;A0Bz/HA;EA6EQ,eAAe;A1Bg7HvB;;A0B7/HA;EAgFQ,eAAe;A1Bi7HvB;;A0BjgIA;EAmFQ,eAAe;A1Bk7HvB;;A0BrgIA;EAsFQ,0BAA4C;A1Bm7HpD;;A0BzgIA;EAwFQ,0B3BjCI;E2BkCJ,uBAAuB;A1Bq7H/B;;A0B9gIA;EA2FI,uBAAuB;A1Bu7H3B;;A0BlhIA;EA8FM,WAAW;A1Bw7HjB;;A0BthIA;EAgGM,YAAY;EACZ,eAAe;A1B07HrB;;A0B3hIA;EAmGI,yBAAyB;A1B47H7B;;A0B/hIA;EAqGM,0BAA4C;A1B87HlD;;A0BniIA;EAuGM,0B3BhDM;E2BiDN,2BAA2B;EAC3B,SAAS;A1Bg8Hf;;A0B97HA;EACE,oBAAoB;EACpB,aAAa;EACb,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,kBAAkB;A1Bi8HpB;;A0Bv8HA;EASM,yBhBvB2B;EgBwB3B,c3B9HwB;ACgkI9B;;A0B58HA;EAYM,qBhB1B2B;AV89HjC;;A0Bh9HA;EAeM,yBhB7B2B;EgB8B3B,c3BpIwB;ACykI9B;;A0Br9HA;EAkBM,qBhBhC2B;AVu+HjC;;A0Br8HA;EACE,YAAY;EACZ,OAAO;EACP,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,MAAM;EACN,WAAW;A1Bw8Hb;;A0Bt8HA;;EAGE,qB3BhJ4B;E2BiJ5B,kB3BrFU;E2BsFV,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;A1Bw8HrB;;A0Bt8HA;EACE,4B3BrJ4B;E2BsJ5B,c3B5J4B;ACqmI9B;;A0Bv8HA;EACE,qB3B5J4B;E2B6J5B,mBA9J4B;EA+J5B,2BA9JoC;EA+JpC,cAAc;EACd,eA/JwB;EAgKxB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;A1B08HzB;;A0Bx8HA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,uBAAuB;EzBCrB,mByBAmC;EACrC,UAAU;A1B28HZ;;A0Bj9HA;EAQI,eAAe;A1B68HnB;;A2B7nIA;EACE,c5BF4B;E4BG5B,cAAc;EACd,e5B2BW;E4B1BX,gB5BiCe;AC+lIjB;;A2BpoIA;EAMI,oBAAoB;A3BkoIxB;;A2BxoIA;EASI,kB5BsBY;AC6mIhB;;A2B5oIA;EAWI,kB5BkBY;ACmnIhB;;A2BhpIA;EAaI,iB5BeW;ACwnIf;;A2BroIA;EACE,cAAc;EACd,kB5Bcc;E4Bbd,mBAAmB;A3BwoIrB;;A2B3oIA;EAOM,Y5BdyB;ACspI/B;;A2B/oIA;EAOM,c5B3BuB;ACuqI7B;;A2BnpIA;EAOM,iB5BhBwB;ACgqI9B;;A2BvpIA;EAOM,c5BvBwB;AC2qI9B;;A2B3pIA;EAOM,c5BT4B;ACiqIlC;;A2B/pIA;EAOM,c5BP4B;ACmqIlC;;A2BnqIA;EAOM,c5BR4B;ACwqIlC;;A2BvqIA;EAOM,c5BV4B;AC8qIlC;;A2B3qIA;EAOM,c5BX4B;ACmrIlC;;A2B/qIA;EAOM,c5BL2B;ACirIjC;;A2BxqIA;EAEI,sBAAsB;A3B0qI1B;;A2B5qIA;EAKI,aAAa;EACb,2BAA2B;A3B2qI/B;;A2BjrIA;E1BmJI,kB0B1IwC;A3B4qI5C;;A2BrrIA;;;EAcU,gBAAgB;A3B6qI1B;;A2B3rIA;;;EAoBY,6BAA6B;EAC7B,0BAA0B;A3B6qItC;;A2BlsIA;;;EA8BY,4BAA4B;EAC5B,yBAAyB;A3B0qIrC;;A2BzsIA;;;;;EAyCY,UAAU;A3BwqItB;;A2BjtIA;;;;;;;;;EA8CY,UAAU;A3B+qItB;;A2B7tIA;;;;;;;;;EAgDc,UAAU;A3ByrIxB;;A2BzuIA;EAkDQ,YAAY;EACZ,cAAc;A3B2rItB;;A2B9uIA;EAqDM,uBAAuB;A3B6rI7B;;A2BlvIA;EAuDM,yBAAyB;A3B+rI/B;;A2BtvIA;EA0DQ,YAAY;EACZ,cAAc;A3BgsItB;;A2B3vIA;EA6DI,aAAa;EACb,2BAA2B;A3BksI/B;;A2BhwIA;EAgEM,cAAc;A3BosIpB;;A2BpwIA;EAkEQ,gBAAgB;E1BiFpB,qB0BhF2C;A3BssI/C;;A2BzwIA;EAqEQ,YAAY;EACZ,cAAc;A3BwsItB;;A2B9wIA;EAwEM,uBAAuB;A3B0sI7B;;A2BlxIA;EA0EM,yBAAyB;A3B4sI/B;;A2BtxIA;EA4EM,eAAe;A3B8sIrB;;A2B1xIA;EAgFU,sBAAsB;A3B8sIhC;;A2B9xIA;EAkFQ,uBAAuB;A3BgtI/B;;A2BlyIA;EAoFQ,gBAAgB;A3BktIxB;;AC7tIE;E0BzEF;IAuFM,aAAa;E3BotIjB;AACF;;A2BntIA;EAEI,kBAAkB;A3BqtItB;;AC3uIE;E0BoBF;IAII,qBAAqB;E3BwtIvB;AACF;;AC7uIE;E0BgBF;IAMI,aAAa;IACb,YAAY;IACZ,cAAc;I1BkDd,oB0BjDsC;IACtC,iBAAiB;E3B4tInB;E2BtuIF;IAYM,kB5BhGU;I4BiGV,oBAAoB;E3B6tIxB;E2B1uIF;IAeM,oBAAoB;E3B8tIxB;E2B7uIF;IAiBM,kB5BvGU;I4BwGV,oBAAoB;E3B+tIxB;E2BjvIF;IAoBM,iB5B3GS;I4B4GT,oBAAoB;E3BguIxB;AACF;;A2B/tIA;EAEI,gBAAgB;A3BiuIpB;;AC1wIE;E0BuCF;IAII,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;E3BouIhB;E2B3uIF;IASM,gBAAgB;E3BquIpB;E2B9uIF;IAWM,cAAc;E3BsuIlB;E2BjvIF;IAaQ,YAAY;E3BuuIlB;E2BpvIF;I1BmCI,qB0BpB2C;E3BwuI7C;AACF;;A2BvuIA;EACE,sBAAsB;EACtB,WAAW;EACX,e5BhIW;E4BiIX,kBAAkB;EAClB,mBAAmB;A3B0uIrB;;A2B/uIA;;;EAaU,c5BxKoB;ACg5I9B;;A2BrvIA;;;EAeQ,kB5B3IQ;ACu3IhB;;A2B3vIA;;;EAiBQ,kB5B/IQ;AC+3IhB;;A2BjwIA;;;EAmBQ,iB5BlJO;ACs4If;;A2BvwIA;EAqBM,c5B7KwB;E4B8KxB,a7BjLgB;E6BkLhB,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,Y7BrLgB;E6BsLhB,UAAU;A3BsvIhB;;A2BjxIA;;EA+BM,mB7B1LgB;AEi7ItB;;A2BtxIA;EAiCM,OAAO;A3ByvIb;;A2B1xIA;;EAqCM,oB7BhMgB;AE07ItB;;A2B/xIA;EAuCM,QAAQ;A3B4vId;;A2BnyIA;EA2CM,6BAA6B;E1BjB/B,c0BkB+B;EAC7B,YAAY;EACZ,UAAU;A3B4vIhB;;A2B1yIA;EAgDM,kB5B5KU;AC06IhB;;A2B9yIA;EAkDM,kB5BhLU;ACg7IhB;;A2BlzIA;EAoDM,iB5BnLS;ACq7If;;A4Bx9IA,qBAAA;ACWA;EAGE,e9BuBW;E8BtBX,mBAAmB;A7B+8IrB;;A6Bn9IA;EAMI,mBAAmB;EACnB,c9BI8B;E8BH9B,aAAa;EACb,uBAAuB;EACvB,iBAduC;A7B+9I3C;;A6B39IA;EAYM,c9BjBwB;ACo+I9B;;A6B/9IA;EAcI,mBAAmB;EACnB,aAAa;A7Bq9IjB;;A6Bp+IA;E5ByKI,e4BxJoC;A7Bu9IxC;;A6Bx+IA;EAoBQ,c9BzBsB;E8B0BtB,eAAe;EACf,oBAAoB;A7Bw9I5B;;A6B9+IA;EAwBM,c9B1BwB;E8B2BxB,iBAAiB;A7B09IvB;;A6Bn/IA;;EA4BI,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,2BAA2B;A7B49I/B;;A6B3/IA;E5ByKI,mB4BvIuC;A7B69I3C;;A6B//IA;E5ByKI,kB4BrIuC;A7B+9I3C;;A6BngJA;;EAyCM,uBAAuB;A7B+9I7B;;A6BxgJA;;EA6CM,yBAAyB;A7Bg+I/B;;A6B7gJA;EAgDI,kB9BrBY;ACs/IhB;;A6BjhJA;EAkDI,kB9BzBY;AC4/IhB;;A6BrhJA;EAoDI,iB9B5BW;ACigJf;;A6BzhJA;EAwDM,iBAAiB;A7Bq+IvB;;A6B7hJA;EA2DM,iBAAiB;A7Bs+IvB;;A6BjiJA;EA8DM,iBAAiB;A7Bu+IvB;;A6BriJA;EAiEM,iBAAiB;A7Bw+IvB;;A8B9hJA;EACE,uB/BR6B;E+BS7B,sBAnBmB;EAoBnB,0F/BvB2B;E+BwB3B,c/BnB4B;E+BoB5B,eAAe;EACf,kBAAkB;A9BiiJpB;;A8B9hJE;EACE,+BA3BiB;EA4BjB,gCA5BiB;A9B6jJrB;;A8BhiJE;EACE,kCA9BiB;EA+BjB,mCA/BiB;A9BkkJrB;;A8BjiJA;EAEE,6BAjCwC;EAkCxC,oBAAoB;EACpB,kD/BxC2B;E+ByC3B,aAAa;A9BmiJf;;A8BjiJA;EACE,mBAAmB;EACnB,c/BzC4B;E+B0C5B,aAAa;EACb,YAAY;EACZ,gB/BNe;E+BOf,qBA1CgC;A9B8kJlC;;A8B1iJA;EAQI,uBAAuB;A9BsiJ3B;;A8BpiJA;E7BqBE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;E6B5BV,mBAAmB;EACnB,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,qBApDgC;A9BomJlC;;A8B9iJA;EACE,cAAc;EACd,kBAAkB;A9BijJpB;;A8BnjJA;EAKM,+BA/De;EAgEf,gCAhEe;A9BknJrB;;A8BxjJA;EASM,kCAnEe;EAoEf,mCApEe;A9BunJrB;;A8BjjJA;EAEE,6BAhEyC;EAiEzC,eAhE2B;A9BmnJ7B;;A8BjjJA;EAEE,6BAlEwC;EAmExC,6B/BxE6B;E+ByE7B,oBAAoB;EACpB,aAAa;A9BmjJf;;A8BjjJA;EACE,mBAAmB;EACnB,aAAa;EACb,aAAa;EACb,YAAY;EACZ,cAAc;EACd,uBAAuB;EACvB,gBA5E2B;A9BgoJ7B;;A8B3jJA;E7B6FI,+BFzK2B;AC2oJ/B;;A8BljJA;EAEI,qB/BtDkB;AC0mJtB;;A+BroJA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;A/BwoJrB;;A+B3oJA;EAOM,cAAc;A/BwoJpB;;A+B/oJA;EAUM,UAAU;EACV,QAAQ;A/ByoJd;;A+BppJA;EAcM,YAAY;EACZ,mBA9BuB;EA+BvB,oBAAoB;EACpB,SAAS;A/B0oJf;;A+BxoJA;EACE,aAAa;E9BmJX,O8BlJqB;EACvB,gBAzC6B;EA0C7B,gBAtC2B;EAuC3B,kBAAkB;EAClB,SAAS;EACT,WApCqB;A/B+qJvB;;A+BzoJA;EACE,uBhCnC6B;EgCoC7B,kBhCmBU;EgClBV,0FhClD2B;EgCmD3B,sBA9CsC;EA+CtC,mBA9CmC;A/B0rJrC;;Ae9qJgB;EgBqCd,chClD4B;EgCmD5B,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;A/B6oJpB;;A+B3oJA;;E9BoHI,mB8BlHmC;EACrC,mBAAmB;EACnB,mBAAmB;EACnB,WAAW;A/B8oJb;;A+BnpJA;;EAOI,4BhC1D0B;EgC2D1B,chCtEyB;ACutJ7B;;A+BzpJA;;EAUI,yBhCpD8B;EgCqD9B,WrBOY;AV6oJhB;;A+BlpJA;EACE,yBhCnE6B;EgCoE7B,YAAY;EACZ,cAAc;EACd,WAAW;EACX,gBAAgB;A/BqpJlB;;AgCnuJA;EAEE,mBAAmB;EACnB,8BAA8B;AhCquJhC;;AgCxuJA;EAKI,kBjC6DQ;AC0qJZ;;AgC5uJA;EAOI,qBAAqB;EACrB,mBAAmB;AhCyuJvB;;AgCjvJA;EAWI,aAAa;AhC0uJjB;;AgCrvJA;;EAcM,aAAa;AhC4uJnB;;AgC1vJA;EAgBM,aAAa;AhC8uJnB;;AgC9vJA;EAmBQ,gBAAgB;E/B6JpB,qB+BlLuC;AhCqwJ3C;;AgCnwJA;EAsBQ,YAAY;AhCivJpB;;ACjqJE;E+BtGF;IAyBI,aAAa;EhCmvJf;EgC5wJF;IA4BQ,YAAY;EhCmvJlB;AACF;;AgClvJA;EACE,mBAAmB;EACnB,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,uBAAuB;AhCqvJzB;;AgC3vJA;;EASI,gBAAgB;AhCuvJpB;;AC5rJE;E+BpEF;IAaM,sBA7CqC;EhCqyJzC;AACF;;AgCvvJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AhC0vJhB;;AgC9vJA;;EAQM,YAAY;AhC2vJlB;;AC1sJE;E+BzDF;;I/BmII,qB+BlLuC;EhCwzJzC;AACF;;AgC5vJA;EACE,mBAAmB;EACnB,2BAA2B;AhC+vJ7B;;AC1tJE;E+BvCF;IAMM,kBAAkB;EhCgwJtB;AACF;;AC5tJE;E+B3CF;IAQI,aAAa;EhCowJf;AACF;;AgCnwJA;EACE,mBAAmB;EACnB,yBAAyB;AhCswJ3B;;ACvuJE;E+BjCF;IAKI,aAAa;EhCwwJf;AACF;;AiC50JA;EACE,uBAAuB;EACvB,aAAa;EACb,mBAAmB;AjC+0JrB;;AiCl1JA;EAKI,sBAV2B;AjC21J/B;;AiCt1JA;EAOI,8ClCR0B;EkCS1B,aAAa;EACb,oBAb2B;AjCg2J/B;;AiC51JA;;EAYM,qBAfgC;AjCo2JtC;;AiCj2JA;EAcM,mBAhBwB;AjCu2J9B;;AiCr2JA;EAgBQ,kBAlBsB;AjC22J9B;;AiCz2JA;EAkBI,8ClCnB0B;EkCoB1B,gBA1BgB;EA2BhB,iBA3BgB;AjCs3JpB;;AiC/2JA;EAwBM,kBA9BsB;EA+BtB,mBA/BsB;AjC03J5B;;AiCz1JA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AjC41JhB;;AiC11JA;EhCwII,kBgChLgB;AjCs4JpB;;AiC31JA;EhCqII,iBgChLgB;AjC04JpB;;AiC51JA;EACE,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,mBAAmB;AjC+1JrB;;AC/yJE;EgCpDF;IAQI,gBAAgB;EjCg2JlB;AACF;;AkCv4JA;EACE,enCgBW;AC03Jb;;AkC34JA;EAII,kBnCcY;AC63JhB;;AkC/4JA;EAMI,kBnCUY;ACm4JhB;;AkCn5JA;EAQI,iBnCOW;ACw4Jf;;AkC74JA;EACE,iBArB0B;AlCq6J5B;;AkCj5JA;EAGI,kBnCoCc;EmCnCd,cnC3B0B;EmC4B1B,cAAc;EACd,qBAzBiC;AlC26JrC;;AkCx5JA;EAQM,4BnCzBwB;EmC0BxB,cnCjCwB;ACq7J9B;;AkC75JA;EAYM,yBnCpB4B;EmCqB5B,WxBuCU;AV82JhB;;AkCl6JA;EjCsJI,8BF1K0B;EmCqCxB,cAnC0B;EjCwK5B,oBiCvKkC;AlCy7JtC;;AkCp5JA;EACE,cnC3C4B;EmC4C5B,iBApC2B;EAqC3B,qBApC+B;EAqC/B,yBAAyB;AlCu5J3B;;AkC35JA;EAMI,eAtCoB;AlC+7JxB;;AkC/5JA;EAQI,kBAxCoB;AlCm8JxB;;AmC97JA;EAEE,4BpCZ4B;EoCa5B,kBpC4CU;EoC3CV,epCUW;ACs7Jb;;AmCp8JA;EAMI,mBAAmB;AnCk8JvB;;AmCx8JA;EAQI,mBAAmB;EACnB,0BAA0B;AnCo8J9B;;AmC78JA;EAYI,kBpCGY;ACk8JhB;;AmCj9JA;EAcI,kBpCDY;ACw8JhB;;AmCr9JA;EAgBI,iBpCJW;AC68Jf;;AmCz9JA;EAsCM,uBAH+C;AnC07JrD;;AmC79JA;EAwCQ,uBpChDuB;EoCiDvB,cpC9DqB;ACu/J7B;;AmCl+JA;EA2CQ,mBpCnDuB;AC8+J/B;;AmCt+JA;EAsCM,yBAH+C;AnCu8JrD;;AmC1+JA;EAwCQ,yBpC7DqB;EoC8DrB,YpCjDuB;ACu/J/B;;AmC/+JA;EA2CQ,qBpChEqB;ACwgK7B;;AmCn/JA;EAsCM,yBAH+C;AnCo9JrD;;AmCv/JA;EAwCQ,4BpClDsB;EoCmDtB,yBzBgBa;AVm8JrB;;AmC5/JA;EA2CQ,wBpCrDsB;AC0gK9B;;AmChgKA;EAsCM,yBAH+C;AnCi+JrD;;AmCpgKA;EAwCQ,yBpCzDsB;EoC0DtB,WzBkBQ;AV88JhB;;AmCzgKA;EA2CQ,qBpC5DsB;AC8hK9B;;AmC7gKA;EAsCM,yBzB4B0C;AV+8JhD;;AmCjhKA;EAwCQ,yBpC3C0B;EoC4C1B,WzBkBQ;AV29JhB;;AmCthKA;EA2CQ,qBpC9C0B;EoC+C1B,czB8B6D;AVi9JrE;;AmC3hKA;EAsCM,yBzB4B0C;AV69JhD;;AmC/hKA;EAwCQ,yBpCzC0B;EoC0C1B,WzBkBQ;AVy+JhB;;AmCpiKA;EA2CQ,qBpC5C0B;EoC6C1B,czB8B6D;AV+9JrE;;AmCziKA;EAsCM,yBzB4B0C;AV2+JhD;;AmC7iKA;EAwCQ,yBpC1C0B;EoC2C1B,WzBkBQ;AVu/JhB;;AmCljKA;EA2CQ,qBpC7C0B;EoC8C1B,czB8B6D;AV6+JrE;;AmCvjKA;EAsCM,yBzB4B0C;AVy/JhD;;AmC3jKA;EAwCQ,yBpC5C0B;EoC6C1B,WzBkBQ;AVqgKhB;;AmChkKA;EA2CQ,qBpC/C0B;EoCgD1B,czB8B6D;AV2/JrE;;AmCrkKA;EAsCM,yBzB4B0C;AVugKhD;;AmCzkKA;EAwCQ,yBpC7C0B;EoC8C1B,yBzBgBa;AVqhKrB;;AmC9kKA;EA2CQ,qBpChD0B;EoCiD1B,czB8B6D;AVygKrE;;AmCnlKA;EAsCM,yBzB4B0C;AVqhKhD;;AmCvlKA;EAwCQ,yBpCvCyB;EoCwCzB,WzBkBQ;AViiKhB;;AmC5lKA;EA2CQ,qBpC1CyB;EoC2CzB,czB8B6D;AVuhKrE;;AmCnjKA;EACE,mBAAmB;EACnB,yBpChE4B;EoCiE5B,0BAAgE;EAChE,WzBSc;EyBRd,aAAa;EACb,gBpC/Be;EoCgCf,8BAA8B;EAC9B,iBAAiB;EACjB,mBAtEiC;EAuEjC,kBAAkB;AnCsjKpB;;AmChkKA;EAYI,YAAY;EACZ,cAAc;ElCkGd,mBkCjGsC;AnCwjK1C;;AmCtkKA;EAgBI,eAjEgC;EAkEhC,yBAAyB;EACzB,0BAA0B;AnC0jK9B;;AmCxjKA;EACE,qBpChF4B;EoCiF5B,kBpCrBU;EoCsBV,mBAAmB;EACnB,uBAjFmC;EAkFnC,cpCvF4B;EoCwF5B,qBAjFiC;AnC4oKnC;;AmCjkKA;;EASI,uBpCnF2B;ACgpK/B;;AmCtkKA;EAWI,6BAlFgD;AnCipKpD;;AoCjoKA;EAEE,mBAAmB;EACnB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,eAAe;EACf,WAxCU;ApC2qKZ;;AoC3oKA;EAWI,aAAa;ApCooKjB;;AoCloKA;EAEE,wCrC/C2B;ACmrK7B;;AoCloKA;;EAEE,cA9CgC;EA+ChC,+BAA0D;EAC1D,cAAc;EACd,kBAAkB;EAClB,WAAW;ApCqoKb;;ACpmKE;EmCvCF;;IASI,cAAc;IACd,8BAA0D;IAC1D,YAxDuB;EpCgsKzB;AACF;;AoCvoKA;EAEE,gBAAgB;EAChB,YAxD2B;EAyD3B,eAAe;EnCwHb,WmChLoB;EA0DtB,SAzDoB;EA0DpB,WA5D2B;ApCqsK7B;;AoCvoKA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAAgD;EAChD,gBAAgB;EAChB,uBAAuB;ApC0oKzB;;AoCxoKA;;EAEE,mBAAmB;EACnB,4BrCtE4B;EqCuE5B,aAAa;EACb,cAAc;EACd,2BAA2B;EAC3B,aApE4B;EAqE5B,kBAAkB;ApC2oKpB;;AoCzoKA;EACE,gCrCjF4B;EqCkF5B,2BrCrBgB;EqCsBhB,4BrCtBgB;ACkqKlB;;AoC1oKA;EACE,crC1F4B;EqC2F5B,YAAY;EACZ,cAAc;EACd,iBrChEa;EqCiEb,cA7E8B;ApC0tKhC;;AoC3oKA;EACE,8BrChCgB;EqCiChB,+BrCjCgB;EqCkChB,6BrC/F4B;AC6uK9B;;AoCjpKA;EnC8EI,mBmCxEuC;ApC+oK3C;;AoC7oKA;EnC3CE,iCAAiC;EmC6CjC,uBrCjG6B;EqCkG7B,YAAY;EACZ,cAAc;EACd,cAAc;EACd,aAtF4B;ApCsuK9B;;AqC1sKA;EACE,uBtC5C6B;EsC6C7B,mBAvDqB;EAwDrB,kBAAkB;EAClB,WAtDW;ArCmwKb;;AqCjtKA;EASM,uBtCpDyB;EsCqDzB,ctClEuB;AC8wK7B;;AqCttKA;;EAcU,ctCtEmB;ACmxK7B;;AqC3tKA;;;;EAoBY,yB3B8BqB;E2B7BrB,ctC7EiB;AC2xK7B;;AqCnuKA;EAwBY,qBtChFiB;AC+xK7B;;AqCvuKA;EA0BQ,ctClFqB;ACmyK7B;;AC3sKE;EoChCF;;;;IAgCY,ctCxFiB;EC2yK3B;EqCnvKF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,ctC/Fe;ECwzK3B;EqChwKF;;IA0Cc,qBtClGe;EC4zK3B;EqCpwKF;;;IA8CU,yB3BIuB;I2BHvB,ctCvGmB;ECk0K3B;EqC1wKF;IAmDc,uBtC9FiB;IsC+FjB,ctC5Ge;ECs0K3B;AACF;;AqC/wKA;EASM,yBtCjEuB;EsCkEvB,YtCrDyB;AC+zK/B;;AqCpxKA;;EAcU,YtCzDqB;ACo0K/B;;AqCzxKA;;;;EAoBY,uB3B8BqB;E2B7BrB,YtChEmB;AC40K/B;;AqCjyKA;EAwBY,mBtCnEmB;ACg1K/B;;AqCryKA;EA0BQ,YtCrEuB;ACo1K/B;;ACzwKE;EoChCF;;;;IAgCY,YtC3EmB;EC41K7B;EqCjzKF;;;;;;;;;;IAsCc,uB3BYmB;I2BXnB,YtClFiB;ECy2K7B;EqC9zKF;;IA0Cc,mBtCrFiB;EC62K7B;EqCl0KF;;;IA8CU,uB3BIuB;I2BHvB,YtC1FqB;ECm3K7B;EqCx0KF;IAmDc,yBtC3Ge;IsC4Gf,YtC/FiB;ECu3K7B;AACF;;AqC70KA;EASM,4BtCtDwB;EsCuDxB,yB3BYe;AV4zKrB;;AqCl1KA;;EAcU,yB3BQW;AVi0KrB;;AqCv1KA;;;;EAoBY,yB3B8BqB;E2B7BrB,yB3BCS;AVy0KrB;;AqC/1KA;EAwBY,gC3BFS;AV60KrB;;AqCn2KA;EA0BQ,yB3BJa;AVi1KrB;;ACv0KE;EoChCF;;;;IAgCY,yB3BVS;EVy1KnB;EqC/2KF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,yB3BjBO;EVs2KnB;EqC53KF;;IA0Cc,gC3BpBO;EV02KnB;EqCh4KF;;;IA8CU,yB3BIuB;I2BHvB,yB3BzBW;EVg3KnB;EqCt4KF;IAmDc,4BtChGgB;IsCiGhB,yB3B9BO;EVo3KnB;AACF;;AqC34KA;EASM,yBtC7DwB;EsC8DxB,W3BcU;AVw3KhB;;AqCh5KA;;EAcU,W3BUM;AV63KhB;;AqCr5KA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVq4KhB;;AqC75KA;EAwBY,kB3BAI;AVy4KhB;;AqCj6KA;EA0BQ,W3BFQ;AV64KhB;;ACr4KE;EoChCF;;;;IAgCY,W3BRI;EVq5Kd;EqC76KF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EVk6Kd;EqC17KF;;IA0Cc,kB3BlBE;EVs6Kd;EqC97KF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EV46Kd;EqCp8KF;IAmDc,yBtCvGgB;IsCwGhB,W3B5BE;EVg7Kd;AACF;;AqCz8KA;EASM,yBtC/C4B;EsCgD5B,W3BcU;AVs7KhB;;AqC98KA;;EAcU,W3BUM;AV27KhB;;AqCn9KA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVm8KhB;;AqC39KA;EAwBY,kB3BAI;AVu8KhB;;AqC/9KA;EA0BQ,W3BFQ;AV28KhB;;ACn8KE;EoChCF;;;;IAgCY,W3BRI;EVm9Kd;EqC3+KF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EVg+Kd;EqCx/KF;;IA0Cc,kB3BlBE;EVo+Kd;EqC5/KF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EV0+Kd;EqClgLF;IAmDc,yBtCzFoB;IsC0FpB,W3B5BE;EV8+Kd;AACF;;AqCvgLA;EASM,yBtC7C4B;EsC8C5B,W3BcU;AVo/KhB;;AqC5gLA;;EAcU,W3BUM;AVy/KhB;;AqCjhLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVigLhB;;AqCzhLA;EAwBY,kB3BAI;AVqgLhB;;AqC7hLA;EA0BQ,W3BFQ;AVygLhB;;ACjgLE;EoChCF;;;;IAgCY,W3BRI;EVihLd;EqCziLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EV8hLd;EqCtjLF;;IA0Cc,kB3BlBE;EVkiLd;EqC1jLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVwiLd;EqChkLF;IAmDc,yBtCvFoB;IsCwFpB,W3B5BE;EV4iLd;AACF;;AqCrkLA;EASM,yBtC9C4B;EsC+C5B,W3BcU;AVkjLhB;;AqC1kLA;;EAcU,W3BUM;AVujLhB;;AqC/kLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AV+jLhB;;AqCvlLA;EAwBY,kB3BAI;AVmkLhB;;AqC3lLA;EA0BQ,W3BFQ;AVukLhB;;AC/jLE;EoChCF;;;;IAgCY,W3BRI;EV+kLd;EqCvmLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EV4lLd;EqCpnLF;;IA0Cc,kB3BlBE;EVgmLd;EqCxnLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVsmLd;EqC9nLF;IAmDc,yBtCxFoB;IsCyFpB,W3B5BE;EV0mLd;AACF;;AqCnoLA;EASM,yBtChD4B;EsCiD5B,W3BcU;AVgnLhB;;AqCxoLA;;EAcU,W3BUM;AVqnLhB;;AqC7oLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AV6nLhB;;AqCrpLA;EAwBY,kB3BAI;AVioLhB;;AqCzpLA;EA0BQ,W3BFQ;AVqoLhB;;AC7nLE;EoChCF;;;;IAgCY,W3BRI;EV6oLd;EqCrqLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EV0pLd;EqClrLF;;IA0Cc,kB3BlBE;EV8pLd;EqCtrLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVoqLd;EqC5rLF;IAmDc,yBtC1FoB;IsC2FpB,W3B5BE;EVwqLd;AACF;;AqCjsLA;EASM,yBtCjD4B;EsCkD5B,yB3BYe;AVgrLrB;;AqCtsLA;;EAcU,yB3BQW;AVqrLrB;;AqC3sLA;;;;EAoBY,yB3B8BqB;E2B7BrB,yB3BCS;AV6rLrB;;AqCntLA;EAwBY,gC3BFS;AVisLrB;;AqCvtLA;EA0BQ,yB3BJa;AVqsLrB;;AC3rLE;EoChCF;;;;IAgCY,yB3BVS;EV6sLnB;EqCnuLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,yB3BjBO;EV0tLnB;EqChvLF;;IA0Cc,gC3BpBO;EV8tLnB;EqCpvLF;;;IA8CU,yB3BIuB;I2BHvB,yB3BzBW;EVouLnB;EqC1vLF;IAmDc,yBtC3FoB;IsC4FpB,yB3B9BO;EVwuLnB;AACF;;AqC/vLA;EASM,yBtC3C2B;EsC4C3B,W3BcU;AV4uLhB;;AqCpwLA;;EAcU,W3BUM;AVivLhB;;AqCzwLA;;;;EAoBY,yB3B8BqB;E2B7BrB,W3BGI;AVyvLhB;;AqCjxLA;EAwBY,kB3BAI;AV6vLhB;;AqCrxLA;EA0BQ,W3BFQ;AViwLhB;;ACzvLE;EoChCF;;;;IAgCY,W3BRI;EVywLd;EqCjyLF;;;;;;;;;;IAsCc,yB3BYmB;I2BXnB,W3BfE;EVsxLd;EqC9yLF;;IA0Cc,kB3BlBE;EV0xLd;EqClzLF;;;IA8CU,yB3BIuB;I2BHvB,W3BvBM;EVgyLd;EqCxzLF;IAmDc,yBtCrFmB;IsCsFnB,W3B5BE;EVoyLd;AACF;;AqC7zLA;EAsDI,oBAAoB;EACpB,aAAa;EACb,mBA7GmB;EA8GnB,WAAW;ArC2wLf;;AqCp0LA;EA2DI,gCtCxG0B;ACq3L9B;;AqCx0LA;EALE,OAAO;EACP,eAAe;EACf,QAAQ;EACR,WA/CiB;ArCg4LnB;;AqC/0LA;EAgEI,SAAS;ArCmxLb;;AqCn1LA;EAkEM,iCtC/GwB;ACo4L9B;;AqCv1LA;EAoEI,MAAM;ArCuxLV;;AqCrxLA;;EAGI,oBA9HmB;ArCq5LvB;;AqC1xLA;;EAKI,uBAhImB;ArC05LvB;;AqCxxLA;;EAEE,oBAAoB;EACpB,aAAa;EACb,cAAc;EACd,mBAvIqB;ArCk6LvB;;AqCzxLA;EAIM,6BAA6B;ArCyxLnC;;AqCvxLA;EpCjFE,iCAAiC;EoCmFjC,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;ArC0xLpB;;AqCxxLA;EAEE,ctCrJ4B;EEoB5B,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,eAAe;EACf,cAAc;EACd,eoC7BqB;EpC8BrB,kBAAkB;EAClB,coC/BqB;EpC+KnB,iBoCtBkC;ArCmyLtC;;AC55LE;EACE,8BAA8B;EAC9B,cAAc;EACd,WAAW;EACX,qBAAqB;EACrB,kBAAkB;EAClB,wBAAwB;EACxB,yBF6BQ;EE5BR,yDAAyD;EACzD,oCFsBa;EErBb,WAAW;AD+5Lf;;AC95LI;EACE,oBAAoB;ADi6L1B;;ACh6LI;EACE,oBAAoB;ADm6L1B;;ACl6LI;EACE,oBAAoB;ADq6L1B;;ACp6LE;EACE,qCAAiC;ADu6LrC;;ACn6LM;EACE,wCAAwC;ADs6LhD;;ACr6LM;EACE,UAAU;ADw6LlB;;ACv6LM;EACE,0CAA0C;AD06LlD;;AqC10LA;EACE,aAAa;ArC60Lf;;AqC30LA;;EAEE,ctC9J4B;EsC+J5B,cAAc;EACd,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;ArC80LpB;;AqCp1LA;;EASM,qBAAqB;EACrB,sBAAsB;ArCg1L5B;;AqC90LA;;EAEE,eAAe;ArCi1LjB;;AqCn1LA;;;;;EAOI,yBtCxK0B;EsCyK1B,ctCjK8B;ACq/LlC;;AqCl1LA;EACE,YAAY;EACZ,cAAc;ArCq1LhB;;AqCv1LA;EAII,mBA7KgC;ArCogMpC;;AqC31LA;EAMI,UAAU;ArCy1Ld;;AqC/1LA;EAQI,YAAY;EACZ,cAAc;ArC21LlB;;AqCp2LA;EAWI,oCAAoC;EACpC,mBAhMmB;EAiMnB,kCAAkC;ArC61LtC;;AqC12LA;EAgBM,6BArLyC;EAsLzC,4BtCpL4B;ACkhMlC;;AqC/2LA;EAmBM,6BArL0C;EAsL1C,4BtCvL4B;EsCwL5B,0BArLuC;EAsLvC,wBArLqC;EAsLrC,ctC1L4B;EsC2L5B,kCAAwE;ArCg2L9E;;AqC91LA;EACE,YAAY;EACZ,cAAc;ArCi2LhB;;AqC/1LA;EpCnCI,oBoCoCoC;ArCk2LxC;;AqCn2LA;EAII,qBtCrM8B;EsCsM9B,oBAAoB;EpChCpB,coCiC6B;ArCm2LjC;;AqCj2LA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,mBAAmB;ArCo2LrB;;AqCv2LA;EAKI,oBAAoB;EACpB,qBAAqB;ArCs2LzB;;AqCp2LA;EACE,4BtC3N4B;EsC4N5B,YAAY;EACZ,aAAa;EACb,WA/LyB;EAgMzB,gBAAgB;ArCu2LlB;;ACr/LE;EoCpCF;IAsLI,cAAc;ErCw2LhB;EqCv2LA;;IAGI,mBAAmB;IACnB,aAAa;ErCw2LjB;EqCv2LA;IAEI,aAAa;ErCw2LjB;EqCh8LF;IA0FI,uBtC3O2B;IsC4O3B,4CtCzPyB;IsC0PzB,iBAAiB;ErCy2LnB;EqC52LA;IAKI,cAAc;ErC02LlB;EqCx2LA;IA3MA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErCqmMjB;EqC92LA;IAKI,SAAS;ErC42Lb;EqCj3LA;IAOM,4CtCrQqB;ECknM3B;EqCp3LA;IASI,MAAM;ErC82LV;EqCv3LA;IpC7LA,iCAAiC;IoC2M3B,iCAA2C;IAC3C,cAAc;ErC62LpB;EqC52LA;;IAGI,oBA9QiB;ErC2nMrB;EqCh3LA;;IAKI,uBAhRiB;ErC+nMrB;AACF;;AC3iME;EoC8LA;;;;IAIE,oBAAoB;IACpB,aAAa;ErCi3Lf;EqCplMF;IAqOI,mBA1RmB;ErC4oMrB;EqCn3LA;IAGI,kBA1R0B;ErC6oM9B;EqCt3LA;;IAMM,mBAAmB;ErCo3LzB;EqC13LA;;IASM,kBtCjOI;ECslMV;EqC93LA;;;;IAgBQ,wCAAwC;ErCo3LhD;EqCp4LA;IAuBU,wCAAwC;ErCg3LlD;EqCv4LA;IA4BU,4BtC7SkB;IsC8SlB,ctCzTiB;ECuqM3B;EqC34LA;IA+BU,4BtChTkB;IsCiTlB,ctCxSsB;ECupMhC;EqCnhMF;IAsKI,aAAa;ErCg3Lf;EqC7gMF;;IAgKI,mBAAmB;IACnB,aAAa;ErCi3Lf;EqC5/LF;IA8IM,oBAAoB;ErCi3LxB;EqCn3LA;IAKM,oDAAoD;ErCi3L1D;EqCt3LA;IAOM,gCtClUsB;IsCmUtB,0BAAkE;IAClE,gBAAgB;IAChB,YAAY;IACZ,4CtC9UqB;IsC+UrB,SAAS;ErCk3Lf;EqC93LA;IAkBM,cAAc;ErC+2LpB;EqC92LM;IAEE,UAAU;IACV,oBAAoB;IACpB,wBAAwB;ErC+2LhC;EqC3iMF;IA8LI,YAAY;IACZ,cAAc;ErCg3LhB;EqC/2LA;IACE,2BAA2B;IpC7K3B,kBoC8KoC;ErCi3LtC;EqCh3LA;IACE,yBAAyB;IpChLzB,iBoCiLoC;ErCk3LtC;EqCx/LF;IAwII,uBtCxV2B;IsCyV3B,8BtCjSc;IsCkSd,+BtClSc;IsCmSd,6BtChW0B;IsCiW1B,2CtCzWyB;IsC0WzB,aAAa;IACb,mBAAmB;IpCjLnB,OoCkLuB;IACvB,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,WAjVkB;ErCosMpB;EqCtgMF;IAqJM,sBAAsB;IACtB,mBAAmB;ErCo3LvB;EqCn4LA;IpClLE,mBoCmMuC;ErCq3LzC;EqCt4LA;IAoBM,4BtC7WsB;IsC8WtB,ctCzXqB;EC8uM3B;EqC14LA;IAuBM,4BtChXsB;IsCiXtB,ctCxW0B;EC8tMhC;EqCr3LE;IAEE,kBtC1TY;IsC2TZ,gBAAgB;IAChB,4EtCjYuB;IsCkYvB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,wBAA8C;IAC9C,2BAA2B;IAC3B,yBtChUM;IsCiUN,uCAAuC;ErCs3L3C;EqC15LA;IAsCI,UAAU;IACV,QAAQ;ErCu3LZ;EqC7hMF;IAwKI,cAAc;ErCw3LhB;EqCv3LA;;IpC5NE,qBoC+NyC;ErCw3L3C;EqC33LA;;IpC5NE,sBoCiOyC;ErC03L3C;EqCx3LA;IAlWA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErC4wMjB;EqC93LA;IAKI,SAAS;ErC43Lb;EqCj4LA;IAOM,4CtC5ZqB;ECyxM3B;EqCp4LA;IASI,MAAM;ErC83LV;EqC73LA;;IAGI,oBA/ZiB;ErC6xMrB;EqCj4LA;;IAKI,uBAjaiB;ErCiyMrB;EqCr4LA;;IAOI,oBAA4D;ErCk4LhE;EqCz4LA;;IASI,uBAA+D;ErCo4LnE;EqCl4LA;;IAGI,ctC7auB;ECgzM3B;EqCt4LA;;IAKI,6BAla2C;ErCuyM/C;EqCp4LA;IAKM,yBtCzasB;EC2yM5B;AACF;;AqC/3LA;EAEI,iCAA2C;ArCi4L/C;;AsCzxMA;EAEE,evCFW;EuCGX,gBAnC0B;AtC8zM5B;;AsC9xMA;EAMI,kBvCLY;ACiyMhB;;AsClyMA;EAQI,kBvCTY;ACuyMhB;;AsCtyMA;EAUI,iBvCZW;AC4yMf;;AsC1yMA;;EAcM,iBAAiB;EACjB,kBAAkB;EAClB,qBvCmBiB;AC8wMvB;;AsCjzMA;EAkBM,qBvCiBiB;ACkxMvB;;AsCjyMA;;EAEE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;AtCoyMpB;;AsClyMA;;;;EAME,cA9D6B;EA+D7B,uBAAuB;EACvB,eA/D8B;EAgE9B,mBA/DkC;EAgElC,oBA/DmC;EAgEnC,kBAAkB;AtCmyMpB;;AsCjyMA;;;EAGE,qBvCtE4B;EuCuE5B,cvC3E4B;EuC4E5B,gBxC3EoB;AE+2MtB;;AsCzyMA;;;EAOI,qBvC3E0B;EuC4E1B,cvC/E0B;ACu3M9B;;AsChzMA;;;EAUI,qBvCjE8B;AC62MlC;;AsCtzMA;;;EAYI,iDvCvFyB;ACu4M7B;;AsC5zMA;;;;;EAeI,yBvClF0B;EuCmF1B,qBvCnF0B;EuCoF1B,gBAAgB;EAChB,cvCvF0B;EuCwF1B,YAAY;AtCqzMhB;;AsCnzMA;;EAEE,oBAvFkC;EAwFlC,qBAvFmC;EAwFnC,mBAAmB;AtCszMrB;;AsCpzMA;EAEI,yBvCpF8B;EuCqF9B,qBvCrF8B;EuCsF9B,W5B1BY;AVg1MhB;;AsCpzMA;EACE,cvCtG4B;EuCuG5B,oBAAoB;AtCuzMtB;;AsCrzMA;EACE,eAAe;AtCwzMjB;;AsCzzMA;EAGI,gBAAgB;AtC0zMpB;;ACz0ME;EqCjEF;IAoFI,eAAe;EtC2zMjB;EsCl1MF;;IA0BI,YAAY;IACZ,cAAc;EtC4zMhB;EsCv0MF;IAcM,YAAY;IACZ,cAAc;EtC4zMlB;AACF;;ACp1ME;EqCQF;IAmBI,YAAY;IACZ,cAAc;IACd,2BAA2B;IAC3B,QAAQ;EtC8zMV;EsCt4MF;;;;IA6EI,gBAAgB;IAChB,aAAa;EtC+zMf;EsC9zMA;IACE,QAAQ;EtCg0MV;EsC/zMA;IACE,QAAQ;EtCi0MV;EsC96MF;IA+GI,8BAA8B;IAC9B,gBAAgB;IAChB,aAAa;EtCk0Mf;EsCr0MA;IAMM,QAAQ;EtCk0Md;EsCx0MA;IAQM,uBAAuB;IACvB,QAAQ;EtCm0Md;EsC50MA;IAWM,QAAQ;EtCo0Md;EsC/0MA;IAcM,QAAQ;EtCo0Md;EsCl1MA;IAgBM,QAAQ;EtCq0Md;EsCr1MA;IAkBM,yBAAyB;IACzB,QAAQ;EtCs0Md;AACF;;AuC78MA;EACE,kBxCsCgB;EwCrChB,0FxChC2B;EwCiC3B,exCEW;AC88Mb;;AuCn9MA;EAKI,qBxCWkB;ACu8MtB;;AuCv9MA;EAYQ,uBxC7BuB;EwC8BvB,cxC3CqB;AC0/M7B;;AuC59MA;EAeQ,0BxChCuB;ACi/M/B;;AuCh+MA;EAiBQ,YxClCuB;ACq/M/B;;AuCp+MA;EAYQ,yBxC1CqB;EwC2CrB,YxC9BuB;AC0/M/B;;AuCz+MA;EAeQ,4BxC7CqB;AC2gN7B;;AuC7+MA;EAiBQ,cxC/CqB;AC+gN7B;;AuCj/MA;EAYQ,4BxC/BsB;EwCgCtB,yB7BmCa;AVs8MrB;;AuCt/MA;EAeQ,+BxClCsB;AC6gN9B;;AuC1/MA;EAiBQ,iBxCpCsB;ACihN9B;;AuC9/MA;EAYQ,yBxCtCsB;EwCuCtB,W7BqCQ;AVi9MhB;;AuCngNA;EAeQ,4BxCzCsB;ACiiN9B;;AuCvgNA;EAiBQ,cxC3CsB;ACqiN9B;;AuC3gNA;EAYQ,yBxCxB0B;EwCyB1B,W7BqCQ;AV89MhB;;AuChhNA;EAeQ,4BxC3B0B;ACgiNlC;;AuCphNA;EAiBQ,cxC7B0B;ACoiNlC;;AuCxhNA;EAYQ,yBxCtB0B;EwCuB1B,W7BqCQ;AV2+MhB;;AuC7hNA;EAeQ,4BxCzB0B;AC2iNlC;;AuCjiNA;EAiBQ,cxC3B0B;AC+iNlC;;AuCriNA;EAYQ,yBxCvB0B;EwCwB1B,W7BqCQ;AVw/MhB;;AuC1iNA;EAeQ,4BxC1B0B;ACyjNlC;;AuC9iNA;EAiBQ,cxC5B0B;AC6jNlC;;AuCljNA;EAYQ,yBxCzB0B;EwC0B1B,W7BqCQ;AVqgNhB;;AuCvjNA;EAeQ,4BxC5B0B;ACwkNlC;;AuC3jNA;EAiBQ,cxC9B0B;AC4kNlC;;AuC/jNA;EAYQ,yBxC1B0B;EwC2B1B,yB7BmCa;AVohNrB;;AuCpkNA;EAeQ,4BxC7B0B;ACslNlC;;AuCxkNA;EAiBQ,cxC/B0B;AC0lNlC;;AuC5kNA;EAYQ,yBxCpByB;EwCqBzB,W7BqCQ;AV+hNhB;;AuCjlNA;EAeQ,4BxCvByB;AC6lNjC;;AuCrlNA;EAiBQ,cxCzByB;ACimNjC;;AuCtkNA;;EAGI,gCxC3C2B;ACmnN/B;;AuCtkNA;EACE,yBxC9C6B;EwC+C7B,0BAA8C;EAC9C,cxCrD4B;EwCsD5B,iBAhDyB;EAiDzB,gBxCjBe;EwCkBf,iBArD8B;EAsD9B,mBArDgC;AvC8nNlC;;AuCvkNA;EACE,qBAAqB;EACrB,aAAa;EACb,kBArD4B;EAsD5B,uBAAuB;AvC0kNzB;;AuC9kNA;EAMI,gCxC7D0B;EwC8D1B,mBAAmB;EACnB,cAAc;AvC4kNlB;;AuCplNA;EAWM,4BxCrEwB;EwCsExB,cxCvEwB;ACopN9B;;AuC3kNA;EAEI,cxC1E0B;ACupN9B;;AuC/kNA;EAIM,cxC7D4B;AC4oNlC;;AuC7kNA;EACE,mBAAmB;EACnB,cxCjF4B;EwCkF5B,aAAa;EACb,2BAA2B;EAC3B,qBAAqB;AvCglNvB;;AuCrlNA;EtC+FI,oBsCxFsC;AvCklN1C;;AuCzlNA;EASI,YAAY;EACZ,cAAc;EACd,WAAW;AvColNf;;AuC/lNA;EAaI,eAAe;AvCslNnB;;AuCnmNA;EAeI,0BxC9E8B;EwC+E9B,cxC/F0B;ACurN9B;;AuCxmNA;EAkBM,cxCjF4B;AC2qNlC;;AuC5mNA;EAoBI,8BxClCc;EwCmCd,+BxCnCc;AC+nNlB;;AuC1lNA;;EAEE,eAAe;AvC6lNjB;;AuC/lNA;;EAII,4BxCnG0B;ACmsN9B;;AuC9lNA;EtChGE,qBAAqB;EACrB,esCgGgB;EtC/FhB,WsC+FqB;EtC9FrB,gBsC8FqB;EtC7FrB,kBAAkB;EAClB,mBAAmB;EACnB,UsC2FqB;EACrB,cxC5G4B;EE4K1B,oBsC/DoC;AvCumNxC;;AuC1mNA;EAKI,kBAAkB;EAClB,oBAAoB;AvCymNxB;;AwCnsNA;EvCqCE,iCAAiC;EuCjCjC,oBAAoB;EACpB,aAAa;EACb,ezCCW;EyCAX,8BAA8B;EAC9B,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;AxCosNrB;;AwC9sNA;EAYI,mBAAmB;EACnB,4BzCjC0B;EyCkC1B,0BAzC4B;EA0C5B,wBAzC0B;EA0C1B,czCvC0B;EyCwC1B,aAAa;EACb,uBAAuB;EACvB,mBAA6C;EAC7C,kBAxCyB;EAyCzB,mBAAmB;AxCssNvB;;AwC3tNA;EAuBM,4BzC/CwB;EyCgDxB,czChDwB;ACwvN9B;;AwChuNA;EA0BI,cAAc;AxC0sNlB;;AwCpuNA;EA6BQ,4BzCrC0B;EyCsC1B,czCtC0B;ACivNlC;;AwCzuNA;EAgCI,mBAAmB;EACnB,4BzCrD0B;EyCsD1B,0BA7D4B;EA8D5B,wBA7D0B;EA8D1B,aAAa;EACb,YAAY;EACZ,cAAc;EACd,2BAA2B;AxC6sN/B;;AwCpvNA;EAyCM,qBAAqB;AxC+sN3B;;AwCxvNA;EA2CM,UAAU;EACV,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;AxCitN3B;;AwC/vNA;EAgDM,yBAAyB;EACzB,oBAAoB;AxCmtN1B;;AwCpwNA;EvCsJI,mBuClGuC;AxCotN3C;;AwCxwNA;EvCsJI,kBuChGuC;AxCstN3C;;AwC5wNA;EA0DM,uBAAuB;AxCstN7B;;AwChxNA;EA6DM,yBAAyB;AxCutN/B;;AwCpxNA;EAiEM,6BAA6B;EAE3B,0BAAkE;AxCstN1E;;AwCzxNA;EAuEQ,4BzCxFsB;EyCyFtB,4BzC5FsB;ACkzN9B;;AwC9xNA;EA4EU,uBzC3FqB;EyC4FrB,qBzCjGoB;EyCkGpB,2CAA2E;AxCstNrF;;AwCpyNA;EAiFM,YAAY;EACZ,cAAc;AxCutNpB;;AwCzyNA;EAqFM,qBzCzGwB;EyC0GxB,mBA/F+B;EAgG/B,iBA/F6B;EAgG7B,gBAAgB;EAChB,kBAAkB;AxCwtNxB;;AwCjzNA;EA2FQ,4BzC5GsB;EyC6GtB,qBzCjHsB;EyCkHtB,UAAU;AxC0tNlB;;AwCvzNA;EvCsJI,iBuCtDuE;AxC2tN3E;;AwC3zNA;EAmGU,2BzC3DE;EyC4DF,8BzC5DE;ACwxNZ;;AwCh0NA;EA0GU,4BzClEE;EyCmEF,+BzCnEE;AC6xNZ;;AwCr0NA;EAiHU,yBzCzHwB;EyC0HxB,qBzC1HwB;EyC2HxB,W9B/DM;E8BgEN,UAAU;AxCwtNpB;;AwC50NA;EAsHM,mBAAmB;AxC0tNzB;;AwCh1NA;EA2HY,iCzCjFW;EyCkFX,8BzClFW;EyCmFX,oBAAoB;AxCytNhC;;AwCt1NA;EAoIY,kCzC1FW;EyC2FX,+BzC3FW;EyC4FX,qBAAqB;AxCstNjC;;AwC51NA;EA6II,kBzCrIY;ACw1NhB;;AwCh2NA;EA+II,kBzCzIY;AC81NhB;;AwCp2NA;EAiJI,iBzC5IW;ACm2Nf;;AyCt4NA,eAAA;ACIA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,gBAPkB;A1C64NpB;;A0Cr4NE;EACE,UAAU;EACV,YAAY;A1Cw4NhB;;A0Cv4NE;EACE,UAAU;EACV,WAAW;A1C04Nf;;A0Cz4NE;EACE,UAAU;EACV,UAAU;A1C44Nd;;A0C34NE;EACE,UAAU;EACV,eAAe;A1C84NnB;;A0C74NE;EACE,UAAU;EACV,UAAU;A1Cg5Nd;;A0C/4NE;EACE,UAAU;EACV,eAAe;A1Ck5NnB;;A0Cj5NE;EACE,UAAU;EACV,UAAU;A1Co5Nd;;A0Cn5NE;EACE,UAAU;EACV,UAAU;A1Cs5Nd;;A0Cr5NE;EACE,UAAU;EACV,UAAU;A1Cw5Nd;;A0Cv5NE;EACE,UAAU;EACV,UAAU;A1C05Nd;;A0Cz5NE;EACE,UAAU;EACV,UAAU;A1C45Nd;;A0C35NE;EzCyIE,gByCxImC;A1C85NvC;;A0C75NE;EzCuIE,qByCtIwC;A1Cg6N5C;;A0C/5NE;EzCqIE,gByCpImC;A1Ck6NvC;;A0Cj6NE;EzCmIE,qByClIwC;A1Co6N5C;;A0Cn6NE;EzCiIE,gByChImC;A1Cs6NvC;;A0Cr6NE;EzC+HE,gByC9HmC;A1Cw6NvC;;A0Cv6NE;EzC6HE,gByC5HmC;A1C06NvC;;A0Cz6NE;EzC2HE,gByC1HmC;A1C46NvC;;A0C36NE;EzCyHE,gByCxHmC;A1C86NvC;;A0C56NI;EACE,UAAU;EACV,SAAiC;A1C+6NvC;;A0C96NI;EzCmHA,eyClH4D;A1Ci7NhE;;A0Cr7NI;EACE,UAAU;EACV,eAAiC;A1Cw7NvC;;A0Cv7NI;EzCmHA,qByClH4D;A1C07NhE;;A0C97NI;EACE,UAAU;EACV,gBAAiC;A1Ci8NvC;;A0Ch8NI;EzCmHA,sByClH4D;A1Cm8NhE;;A0Cv8NI;EACE,UAAU;EACV,UAAiC;A1C08NvC;;A0Cz8NI;EzCmHA,gByClH4D;A1C48NhE;;A0Ch9NI;EACE,UAAU;EACV,gBAAiC;A1Cm9NvC;;A0Cl9NI;EzCmHA,sByClH4D;A1Cq9NhE;;A0Cz9NI;EACE,UAAU;EACV,gBAAiC;A1C49NvC;;A0C39NI;EzCmHA,sByClH4D;A1C89NhE;;A0Cl+NI;EACE,UAAU;EACV,UAAiC;A1Cq+NvC;;A0Cp+NI;EzCmHA,gByClH4D;A1Cu+NhE;;A0C3+NI;EACE,UAAU;EACV,gBAAiC;A1C8+NvC;;A0C7+NI;EzCmHA,sByClH4D;A1Cg/NhE;;A0Cp/NI;EACE,UAAU;EACV,gBAAiC;A1Cu/NvC;;A0Ct/NI;EzCmHA,sByClH4D;A1Cy/NhE;;A0C7/NI;EACE,UAAU;EACV,UAAiC;A1CggOvC;;A0C//NI;EzCmHA,gByClH4D;A1CkgOhE;;A0CtgOI;EACE,UAAU;EACV,gBAAiC;A1CygOvC;;A0CxgOI;EzCmHA,sByClH4D;A1C2gOhE;;A0C/gOI;EACE,UAAU;EACV,gBAAiC;A1CkhOvC;;A0CjhOI;EzCmHA,sByClH4D;A1CohOhE;;A0CxhOI;EACE,UAAU;EACV,WAAiC;A1C2hOvC;;A0C1hOI;EzCmHA,iByClH4D;A1C6hOhE;;ACz/NE;EyClGF;IAiEM,UAAU;IACV,YAAY;E1C+hOhB;E0CjmOF;IAoEM,UAAU;IACV,WAAW;E1CgiOf;E0CrmOF;IAuEM,UAAU;IACV,UAAU;E1CiiOd;E0CzmOF;IA0EM,UAAU;IACV,eAAe;E1CkiOnB;E0C7mOF;IA6EM,UAAU;IACV,UAAU;E1CmiOd;E0CjnOF;IAgFM,UAAU;IACV,eAAe;E1CoiOnB;E0CrnOF;IAmFM,UAAU;IACV,UAAU;E1CqiOd;E0CznOF;IAsFM,UAAU;IACV,UAAU;E1CsiOd;E0C7nOF;IAyFM,UAAU;IACV,UAAU;E1CuiOd;E0CjoOF;IA4FM,UAAU;IACV,UAAU;E1CwiOd;E0CroOF;IA+FM,UAAU;IACV,UAAU;E1CyiOd;E0CzoOF;IzCgLI,gByC9EqC;E1C0iOvC;E0C5oOF;IzCgLI,qByC5E0C;E1C2iO5C;E0C/oOF;IzCgLI,gByC1EqC;E1C4iOvC;E0ClpOF;IzCgLI,qByCxE0C;E1C6iO5C;E0CrpOF;IzCgLI,gByCtEqC;E1C8iOvC;E0CxpOF;IzCgLI,gByCpEqC;E1C+iOvC;E0C3pOF;IzCgLI,gByClEqC;E1CgjOvC;E0C9pOF;IzCgLI,gByChEqC;E1CijOvC;E0CjqOF;IzCgLI,gByC9DqC;E1CkjOvC;E0CpqOF;IAqHQ,UAAU;IACV,SAAiC;E1CkjOvC;E0CxqOF;IzCgLI,eyCxD8D;E1CmjOhE;E0C3qOF;IAqHQ,UAAU;IACV,eAAiC;E1CyjOvC;E0C/qOF;IzCgLI,qByCxD8D;E1C0jOhE;E0ClrOF;IAqHQ,UAAU;IACV,gBAAiC;E1CgkOvC;E0CtrOF;IzCgLI,sByCxD8D;E1CikOhE;E0CzrOF;IAqHQ,UAAU;IACV,UAAiC;E1CukOvC;E0C7rOF;IzCgLI,gByCxD8D;E1CwkOhE;E0ChsOF;IAqHQ,UAAU;IACV,gBAAiC;E1C8kOvC;E0CpsOF;IzCgLI,sByCxD8D;E1C+kOhE;E0CvsOF;IAqHQ,UAAU;IACV,gBAAiC;E1CqlOvC;E0C3sOF;IzCgLI,sByCxD8D;E1CslOhE;E0C9sOF;IAqHQ,UAAU;IACV,UAAiC;E1C4lOvC;E0CltOF;IzCgLI,gByCxD8D;E1C6lOhE;E0CrtOF;IAqHQ,UAAU;IACV,gBAAiC;E1CmmOvC;E0CztOF;IzCgLI,sByCxD8D;E1ComOhE;E0C5tOF;IAqHQ,UAAU;IACV,gBAAiC;E1C0mOvC;E0ChuOF;IzCgLI,sByCxD8D;E1C2mOhE;E0CnuOF;IAqHQ,UAAU;IACV,UAAiC;E1CinOvC;E0CvuOF;IzCgLI,gByCxD8D;E1CknOhE;E0C1uOF;IAqHQ,UAAU;IACV,gBAAiC;E1CwnOvC;E0C9uOF;IzCgLI,sByCxD8D;E1CynOhE;E0CjvOF;IAqHQ,UAAU;IACV,gBAAiC;E1C+nOvC;E0CrvOF;IzCgLI,sByCxD8D;E1CgoOhE;E0CxvOF;IAqHQ,UAAU;IACV,WAAiC;E1CsoOvC;E0C5vOF;IzCgLI,iByCxD8D;E1CuoOhE;AACF;;AC1pOE;EyCtGF;IA4HM,UAAU;IACV,YAAY;E1CyoOhB;E0CtwOF;IAgIM,UAAU;IACV,WAAW;E1CyoOf;E0C1wOF;IAoIM,UAAU;IACV,UAAU;E1CyoOd;E0C9wOF;IAwIM,UAAU;IACV,eAAe;E1CyoOnB;E0ClxOF;IA4IM,UAAU;IACV,UAAU;E1CyoOd;E0CtxOF;IAgJM,UAAU;IACV,eAAe;E1CyoOnB;E0C1xOF;IAoJM,UAAU;IACV,UAAU;E1CyoOd;E0C9xOF;IAwJM,UAAU;IACV,UAAU;E1CyoOd;E0ClyOF;IA4JM,UAAU;IACV,UAAU;E1CyoOd;E0CtyOF;IAgKM,UAAU;IACV,UAAU;E1CyoOd;E0C1yOF;IAoKM,UAAU;IACV,UAAU;E1CyoOd;E0C9yOF;IzCgLI,gByCRqC;E1CyoOvC;E0CjzOF;IzCgLI,qByCL0C;E1CyoO5C;E0CpzOF;IzCgLI,gByCFqC;E1CyoOvC;E0CvzOF;IzCgLI,qByCC0C;E1CyoO5C;E0C1zOF;IzCgLI,gByCIqC;E1CyoOvC;E0C7zOF;IzCgLI,gByCOqC;E1CyoOvC;E0Ch0OF;IzCgLI,gByCUqC;E1CyoOvC;E0Cn0OF;IzCgLI,gByCaqC;E1CyoOvC;E0Ct0OF;IzCgLI,gByCgBqC;E1CyoOvC;E0Cz0OF;IAoMQ,UAAU;IACV,SAAiC;E1CwoOvC;E0C70OF;IzCgLI,eyCwB8D;E1CwoOhE;E0Ch1OF;IAoMQ,UAAU;IACV,eAAiC;E1C+oOvC;E0Cp1OF;IzCgLI,qByCwB8D;E1C+oOhE;E0Cv1OF;IAoMQ,UAAU;IACV,gBAAiC;E1CspOvC;E0C31OF;IzCgLI,sByCwB8D;E1CspOhE;E0C91OF;IAoMQ,UAAU;IACV,UAAiC;E1C6pOvC;E0Cl2OF;IzCgLI,gByCwB8D;E1C6pOhE;E0Cr2OF;IAoMQ,UAAU;IACV,gBAAiC;E1CoqOvC;E0Cz2OF;IzCgLI,sByCwB8D;E1CoqOhE;E0C52OF;IAoMQ,UAAU;IACV,gBAAiC;E1C2qOvC;E0Ch3OF;IzCgLI,sByCwB8D;E1C2qOhE;E0Cn3OF;IAoMQ,UAAU;IACV,UAAiC;E1CkrOvC;E0Cv3OF;IzCgLI,gByCwB8D;E1CkrOhE;E0C13OF;IAoMQ,UAAU;IACV,gBAAiC;E1CyrOvC;E0C93OF;IzCgLI,sByCwB8D;E1CyrOhE;E0Cj4OF;IAoMQ,UAAU;IACV,gBAAiC;E1CgsOvC;E0Cr4OF;IzCgLI,sByCwB8D;E1CgsOhE;E0Cx4OF;IAoMQ,UAAU;IACV,UAAiC;E1CusOvC;E0C54OF;IzCgLI,gByCwB8D;E1CusOhE;E0C/4OF;IAoMQ,UAAU;IACV,gBAAiC;E1C8sOvC;E0Cn5OF;IzCgLI,sByCwB8D;E1C8sOhE;E0Ct5OF;IAoMQ,UAAU;IACV,gBAAiC;E1CqtOvC;E0C15OF;IzCgLI,sByCwB8D;E1CqtOhE;E0C75OF;IAoMQ,UAAU;IACV,WAAiC;E1C4tOvC;E0Cj6OF;IzCgLI,iByCwB8D;E1C4tOhE;AACF;;ACvzOE;EyC9GF;IA2MM,UAAU;IACV,YAAY;E1C+tOhB;E0C36OF;IA8MM,UAAU;IACV,WAAW;E1CguOf;E0C/6OF;IAiNM,UAAU;IACV,UAAU;E1CiuOd;E0Cn7OF;IAoNM,UAAU;IACV,eAAe;E1CkuOnB;E0Cv7OF;IAuNM,UAAU;IACV,UAAU;E1CmuOd;E0C37OF;IA0NM,UAAU;IACV,eAAe;E1CouOnB;E0C/7OF;IA6NM,UAAU;IACV,UAAU;E1CquOd;E0Cn8OF;IAgOM,UAAU;IACV,UAAU;E1CsuOd;E0Cv8OF;IAmOM,UAAU;IACV,UAAU;E1CuuOd;E0C38OF;IAsOM,UAAU;IACV,UAAU;E1CwuOd;E0C/8OF;IAyOM,UAAU;IACV,UAAU;E1CyuOd;E0Cn9OF;IzCgLI,gByC4DqC;E1C0uOvC;E0Ct9OF;IzCgLI,qByC8D0C;E1C2uO5C;E0Cz9OF;IzCgLI,gByCgEqC;E1C4uOvC;E0C59OF;IzCgLI,qByCkE0C;E1C6uO5C;E0C/9OF;IzCgLI,gByCoEqC;E1C8uOvC;E0Cl+OF;IzCgLI,gByCsEqC;E1C+uOvC;E0Cr+OF;IzCgLI,gByCwEqC;E1CgvOvC;E0Cx+OF;IzCgLI,gByC0EqC;E1CivOvC;E0C3+OF;IzCgLI,gByC4EqC;E1CkvOvC;E0C9+OF;IA+PQ,UAAU;IACV,SAAiC;E1CkvOvC;E0Cl/OF;IzCgLI,eyCkF8D;E1CmvOhE;E0Cr/OF;IA+PQ,UAAU;IACV,eAAiC;E1CyvOvC;E0Cz/OF;IzCgLI,qByCkF8D;E1C0vOhE;E0C5/OF;IA+PQ,UAAU;IACV,gBAAiC;E1CgwOvC;E0ChgPF;IzCgLI,sByCkF8D;E1CiwOhE;E0CngPF;IA+PQ,UAAU;IACV,UAAiC;E1CuwOvC;E0CvgPF;IzCgLI,gByCkF8D;E1CwwOhE;E0C1gPF;IA+PQ,UAAU;IACV,gBAAiC;E1C8wOvC;E0C9gPF;IzCgLI,sByCkF8D;E1C+wOhE;E0CjhPF;IA+PQ,UAAU;IACV,gBAAiC;E1CqxOvC;E0CrhPF;IzCgLI,sByCkF8D;E1CsxOhE;E0CxhPF;IA+PQ,UAAU;IACV,UAAiC;E1C4xOvC;E0C5hPF;IzCgLI,gByCkF8D;E1C6xOhE;E0C/hPF;IA+PQ,UAAU;IACV,gBAAiC;E1CmyOvC;E0CniPF;IzCgLI,sByCkF8D;E1CoyOhE;E0CtiPF;IA+PQ,UAAU;IACV,gBAAiC;E1C0yOvC;E0C1iPF;IzCgLI,sByCkF8D;E1C2yOhE;E0C7iPF;IA+PQ,UAAU;IACV,UAAiC;E1CizOvC;E0CjjPF;IzCgLI,gByCkF8D;E1CkzOhE;E0CpjPF;IA+PQ,UAAU;IACV,gBAAiC;E1CwzOvC;E0CxjPF;IzCgLI,sByCkF8D;E1CyzOhE;E0C3jPF;IA+PQ,UAAU;IACV,gBAAiC;E1C+zOvC;E0C/jPF;IzCgLI,sByCkF8D;E1Cg0OhE;E0ClkPF;IA+PQ,UAAU;IACV,WAAiC;E1Cs0OvC;E0CtkPF;IzCgLI,iByCkF8D;E1Cu0OhE;AACF;;ACx9OE;EyClHF;IAqQM,UAAU;IACV,YAAY;E1C00OhB;E0ChlPF;IAwQM,UAAU;IACV,WAAW;E1C20Of;E0CplPF;IA2QM,UAAU;IACV,UAAU;E1C40Od;E0CxlPF;IA8QM,UAAU;IACV,eAAe;E1C60OnB;E0C5lPF;IAiRM,UAAU;IACV,UAAU;E1C80Od;E0ChmPF;IAoRM,UAAU;IACV,eAAe;E1C+0OnB;E0CpmPF;IAuRM,UAAU;IACV,UAAU;E1Cg1Od;E0CxmPF;IA0RM,UAAU;IACV,UAAU;E1Ci1Od;E0C5mPF;IA6RM,UAAU;IACV,UAAU;E1Ck1Od;E0ChnPF;IAgSM,UAAU;IACV,UAAU;E1Cm1Od;E0CpnPF;IAmSM,UAAU;IACV,UAAU;E1Co1Od;E0CxnPF;IzCgLI,gByCsHqC;E1Cq1OvC;E0C3nPF;IzCgLI,qByCwH0C;E1Cs1O5C;E0C9nPF;IzCgLI,gByC0HqC;E1Cu1OvC;E0CjoPF;IzCgLI,qByC4H0C;E1Cw1O5C;E0CpoPF;IzCgLI,gByC8HqC;E1Cy1OvC;E0CvoPF;IzCgLI,gByCgIqC;E1C01OvC;E0C1oPF;IzCgLI,gByCkIqC;E1C21OvC;E0C7oPF;IzCgLI,gByCoIqC;E1C41OvC;E0ChpPF;IzCgLI,gByCsIqC;E1C61OvC;E0CnpPF;IAyTQ,UAAU;IACV,SAAiC;E1C61OvC;E0CvpPF;IzCgLI,eyC4I8D;E1C81OhE;E0C1pPF;IAyTQ,UAAU;IACV,eAAiC;E1Co2OvC;E0C9pPF;IzCgLI,qByC4I8D;E1Cq2OhE;E0CjqPF;IAyTQ,UAAU;IACV,gBAAiC;E1C22OvC;E0CrqPF;IzCgLI,sByC4I8D;E1C42OhE;E0CxqPF;IAyTQ,UAAU;IACV,UAAiC;E1Ck3OvC;E0C5qPF;IzCgLI,gByC4I8D;E1Cm3OhE;E0C/qPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cy3OvC;E0CnrPF;IzCgLI,sByC4I8D;E1C03OhE;E0CtrPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cg4OvC;E0C1rPF;IzCgLI,sByC4I8D;E1Ci4OhE;E0C7rPF;IAyTQ,UAAU;IACV,UAAiC;E1Cu4OvC;E0CjsPF;IzCgLI,gByC4I8D;E1Cw4OhE;E0CpsPF;IAyTQ,UAAU;IACV,gBAAiC;E1C84OvC;E0CxsPF;IzCgLI,sByC4I8D;E1C+4OhE;E0C3sPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cq5OvC;E0C/sPF;IzCgLI,sByC4I8D;E1Cs5OhE;E0CltPF;IAyTQ,UAAU;IACV,UAAiC;E1C45OvC;E0CttPF;IzCgLI,gByC4I8D;E1C65OhE;E0CztPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cm6OvC;E0C7tPF;IzCgLI,sByC4I8D;E1Co6OhE;E0ChuPF;IAyTQ,UAAU;IACV,gBAAiC;E1C06OvC;E0CpuPF;IzCgLI,sByC4I8D;E1C26OhE;E0CvuPF;IAyTQ,UAAU;IACV,WAAiC;E1Ci7OvC;E0C3uPF;IzCgLI,iByC4I8D;E1Ck7OhE;AACF;;AC9mPI;EyCjIJ;IA+TM,UAAU;IACV,YAAY;E1Cq7OhB;E0CrvPF;IAkUM,UAAU;IACV,WAAW;E1Cs7Of;E0CzvPF;IAqUM,UAAU;IACV,UAAU;E1Cu7Od;E0C7vPF;IAwUM,UAAU;IACV,eAAe;E1Cw7OnB;E0CjwPF;IA2UM,UAAU;IACV,UAAU;E1Cy7Od;E0CrwPF;IA8UM,UAAU;IACV,eAAe;E1C07OnB;E0CzwPF;IAiVM,UAAU;IACV,UAAU;E1C27Od;E0C7wPF;IAoVM,UAAU;IACV,UAAU;E1C47Od;E0CjxPF;IAuVM,UAAU;IACV,UAAU;E1C67Od;E0CrxPF;IA0VM,UAAU;IACV,UAAU;E1C87Od;E0CzxPF;IA6VM,UAAU;IACV,UAAU;E1C+7Od;E0C7xPF;IzCgLI,gByCgLqC;E1Cg8OvC;E0ChyPF;IzCgLI,qByCkL0C;E1Ci8O5C;E0CnyPF;IzCgLI,gByCoLqC;E1Ck8OvC;E0CtyPF;IzCgLI,qByCsL0C;E1Cm8O5C;E0CzyPF;IzCgLI,gByCwLqC;E1Co8OvC;E0C5yPF;IzCgLI,gByC0LqC;E1Cq8OvC;E0C/yPF;IzCgLI,gByC4LqC;E1Cs8OvC;E0ClzPF;IzCgLI,gByC8LqC;E1Cu8OvC;E0CrzPF;IzCgLI,gByCgMqC;E1Cw8OvC;E0CxzPF;IAmXQ,UAAU;IACV,SAAiC;E1Cw8OvC;E0C5zPF;IzCgLI,eyCsM8D;E1Cy8OhE;E0C/zPF;IAmXQ,UAAU;IACV,eAAiC;E1C+8OvC;E0Cn0PF;IzCgLI,qByCsM8D;E1Cg9OhE;E0Ct0PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cs9OvC;E0C10PF;IzCgLI,sByCsM8D;E1Cu9OhE;E0C70PF;IAmXQ,UAAU;IACV,UAAiC;E1C69OvC;E0Cj1PF;IzCgLI,gByCsM8D;E1C89OhE;E0Cp1PF;IAmXQ,UAAU;IACV,gBAAiC;E1Co+OvC;E0Cx1PF;IzCgLI,sByCsM8D;E1Cq+OhE;E0C31PF;IAmXQ,UAAU;IACV,gBAAiC;E1C2+OvC;E0C/1PF;IzCgLI,sByCsM8D;E1C4+OhE;E0Cl2PF;IAmXQ,UAAU;IACV,UAAiC;E1Ck/OvC;E0Ct2PF;IzCgLI,gByCsM8D;E1Cm/OhE;E0Cz2PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cy/OvC;E0C72PF;IzCgLI,sByCsM8D;E1C0/OhE;E0Ch3PF;IAmXQ,UAAU;IACV,gBAAiC;E1CggPvC;E0Cp3PF;IzCgLI,sByCsM8D;E1CigPhE;E0Cv3PF;IAmXQ,UAAU;IACV,UAAiC;E1CugPvC;E0C33PF;IzCgLI,gByCsM8D;E1CwgPhE;E0C93PF;IAmXQ,UAAU;IACV,gBAAiC;E1C8gPvC;E0Cl4PF;IzCgLI,sByCsM8D;E1C+gPhE;E0Cr4PF;IAmXQ,UAAU;IACV,gBAAiC;E1CqhPvC;E0Cz4PF;IzCgLI,sByCsM8D;E1CshPhE;E0C54PF;IAmXQ,UAAU;IACV,WAAiC;E1C4hPvC;E0Ch5PF;IzCgLI,iByCsM8D;E1C6hPhE;AACF;;ACpwPI;EyChJJ;IAyXM,UAAU;IACV,YAAY;E1CgiPhB;E0C15PF;IA4XM,UAAU;IACV,WAAW;E1CiiPf;E0C95PF;IA+XM,UAAU;IACV,UAAU;E1CkiPd;E0Cl6PF;IAkYM,UAAU;IACV,eAAe;E1CmiPnB;E0Ct6PF;IAqYM,UAAU;IACV,UAAU;E1CoiPd;E0C16PF;IAwYM,UAAU;IACV,eAAe;E1CqiPnB;E0C96PF;IA2YM,UAAU;IACV,UAAU;E1CsiPd;E0Cl7PF;IA8YM,UAAU;IACV,UAAU;E1CuiPd;E0Ct7PF;IAiZM,UAAU;IACV,UAAU;E1CwiPd;E0C17PF;IAoZM,UAAU;IACV,UAAU;E1CyiPd;E0C97PF;IAuZM,UAAU;IACV,UAAU;E1C0iPd;E0Cl8PF;IzCgLI,gByC0OqC;E1C2iPvC;E0Cr8PF;IzCgLI,qByC4O0C;E1C4iP5C;E0Cx8PF;IzCgLI,gByC8OqC;E1C6iPvC;E0C38PF;IzCgLI,qByCgP0C;E1C8iP5C;E0C98PF;IzCgLI,gByCkPqC;E1C+iPvC;E0Cj9PF;IzCgLI,gByCoPqC;E1CgjPvC;E0Cp9PF;IzCgLI,gByCsPqC;E1CijPvC;E0Cv9PF;IzCgLI,gByCwPqC;E1CkjPvC;E0C19PF;IzCgLI,gByC0PqC;E1CmjPvC;E0C79PF;IA6aQ,UAAU;IACV,SAAiC;E1CmjPvC;E0Cj+PF;IzCgLI,eyCgQ8D;E1CojPhE;E0Cp+PF;IA6aQ,UAAU;IACV,eAAiC;E1C0jPvC;E0Cx+PF;IzCgLI,qByCgQ8D;E1C2jPhE;E0C3+PF;IA6aQ,UAAU;IACV,gBAAiC;E1CikPvC;E0C/+PF;IzCgLI,sByCgQ8D;E1CkkPhE;E0Cl/PF;IA6aQ,UAAU;IACV,UAAiC;E1CwkPvC;E0Ct/PF;IzCgLI,gByCgQ8D;E1CykPhE;E0Cz/PF;IA6aQ,UAAU;IACV,gBAAiC;E1C+kPvC;E0C7/PF;IzCgLI,sByCgQ8D;E1CglPhE;E0ChgQF;IA6aQ,UAAU;IACV,gBAAiC;E1CslPvC;E0CpgQF;IzCgLI,sByCgQ8D;E1CulPhE;E0CvgQF;IA6aQ,UAAU;IACV,UAAiC;E1C6lPvC;E0C3gQF;IzCgLI,gByCgQ8D;E1C8lPhE;E0C9gQF;IA6aQ,UAAU;IACV,gBAAiC;E1ComPvC;E0ClhQF;IzCgLI,sByCgQ8D;E1CqmPhE;E0CrhQF;IA6aQ,UAAU;IACV,gBAAiC;E1C2mPvC;E0CzhQF;IzCgLI,sByCgQ8D;E1C4mPhE;E0C5hQF;IA6aQ,UAAU;IACV,UAAiC;E1CknPvC;E0ChiQF;IzCgLI,gByCgQ8D;E1CmnPhE;E0CniQF;IA6aQ,UAAU;IACV,gBAAiC;E1CynPvC;E0CviQF;IzCgLI,sByCgQ8D;E1C0nPhE;E0C1iQF;IA6aQ,UAAU;IACV,gBAAiC;E1CgoPvC;E0C9iQF;IzCgLI,sByCgQ8D;E1CioPhE;E0CjjQF;IA6aQ,UAAU;IACV,WAAiC;E1CuoPvC;E0CrjQF;IzCgLI,iByCgQ8D;E1CwoPhE;AACF;;A0CvoPA;EzClQI,qByClLgB;EzCkLhB,sByClLgB;EAublB,oBAvbkB;A1CikQpB;;A0C7oPA;EAKI,uBAzbgB;A1CqkQpB;;A0CjpPA;EAOI,qCAA4C;A1C8oPhD;;A0CrpPA;EAUI,uBAAuB;A1C+oP3B;;A0CzpPA;EzClQI,cyC8QiC;EzC9QjC,eyC+QiC;EACjC,aAAa;A1CipPjB;;A0C/pPA;EAgBM,SAAS;EACT,qBAAqB;A1CmpP3B;;A0CpqPA;EAmBM,qBAAqB;A1CqpP3B;;A0CxqPA;EAqBM,gBAAgB;A1CupPtB;;A0C5qPA;EAuBI,aAAa;A1CypPjB;;A0ChrPA;EAyBI,eAAe;A1C2pPnB;;A0CprPA;EA2BI,mBAAmB;A1C6pPvB;;ACpgQE;EyC4UF;IA+BM,aAAa;E1C8pPjB;AACF;;AC9/PE;EyCgUF;IAmCM,aAAa;E1CgqPjB;AACF;;A0C9pPE;EACE,oBAAY;EzCzSZ,wCyC0S2D;EzC1S3D,yCyC2S2D;A1CiqP/D;;A0CpqPE;EAKI,8BAA8B;EAC9B,+BAA+B;A1CmqPrC;;A0CzqPE;EASM,iBAAY;A1CoqPpB;;ACniQE;EyCsXA;IAYQ,iBAAY;E1CsqPpB;AACF;;ACriQE;EyCkXA;IAeQ,iBAAY;E1CyqPpB;AACF;;ACviQE;EyC8WA;IAkBQ,iBAAY;E1C4qPpB;AACF;;ACziQE;EyC0WA;IAqBQ,iBAAY;E1C+qPpB;AACF;;AC3iQE;EyCsWA;IAwBQ,iBAAY;E1CkrPpB;AACF;;AC5iQI;EyCiWF;IA2BQ,iBAAY;E1CqrPpB;AACF;;ACxiQI;EyCuVF;IA8BQ,iBAAY;E1CwrPpB;AACF;;ACziQI;EyCkVF;IAiCQ,iBAAY;E1C2rPpB;AACF;;ACriQI;EyCwUF;IAoCQ,iBAAY;E1C8rPpB;AACF;;A0CnuPE;EASM,oBAAY;A1C8tPpB;;AC7lQE;EyCsXA;IAYQ,oBAAY;E1CguPpB;AACF;;AC/lQE;EyCkXA;IAeQ,oBAAY;E1CmuPpB;AACF;;ACjmQE;EyC8WA;IAkBQ,oBAAY;E1CsuPpB;AACF;;ACnmQE;EyC0WA;IAqBQ,oBAAY;E1CyuPpB;AACF;;ACrmQE;EyCsWA;IAwBQ,oBAAY;E1C4uPpB;AACF;;ACtmQI;EyCiWF;IA2BQ,oBAAY;E1C+uPpB;AACF;;AClmQI;EyCuVF;IA8BQ,oBAAY;E1CkvPpB;AACF;;ACnmQI;EyCkVF;IAiCQ,oBAAY;E1CqvPpB;AACF;;AC/lQI;EyCwUF;IAoCQ,oBAAY;E1CwvPpB;AACF;;A0C7xPE;EASM,mBAAY;A1CwxPpB;;ACvpQE;EyCsXA;IAYQ,mBAAY;E1C0xPpB;AACF;;ACzpQE;EyCkXA;IAeQ,mBAAY;E1C6xPpB;AACF;;AC3pQE;EyC8WA;IAkBQ,mBAAY;E1CgyPpB;AACF;;AC7pQE;EyC0WA;IAqBQ,mBAAY;E1CmyPpB;AACF;;AC/pQE;EyCsWA;IAwBQ,mBAAY;E1CsyPpB;AACF;;AChqQI;EyCiWF;IA2BQ,mBAAY;E1CyyPpB;AACF;;AC5pQI;EyCuVF;IA8BQ,mBAAY;E1C4yPpB;AACF;;AC7pQI;EyCkVF;IAiCQ,mBAAY;E1C+yPpB;AACF;;ACzpQI;EyCwUF;IAoCQ,mBAAY;E1CkzPpB;AACF;;A0Cv1PE;EASM,oBAAY;A1Ck1PpB;;ACjtQE;EyCsXA;IAYQ,oBAAY;E1Co1PpB;AACF;;ACntQE;EyCkXA;IAeQ,oBAAY;E1Cu1PpB;AACF;;ACrtQE;EyC8WA;IAkBQ,oBAAY;E1C01PpB;AACF;;ACvtQE;EyC0WA;IAqBQ,oBAAY;E1C61PpB;AACF;;ACztQE;EyCsWA;IAwBQ,oBAAY;E1Cg2PpB;AACF;;AC1tQI;EyCiWF;IA2BQ,oBAAY;E1Cm2PpB;AACF;;ACttQI;EyCuVF;IA8BQ,oBAAY;E1Cs2PpB;AACF;;ACvtQI;EyCkVF;IAiCQ,oBAAY;E1Cy2PpB;AACF;;ACntQI;EyCwUF;IAoCQ,oBAAY;E1C42PpB;AACF;;A0Cj5PE;EASM,iBAAY;A1C44PpB;;AC3wQE;EyCsXA;IAYQ,iBAAY;E1C84PpB;AACF;;AC7wQE;EyCkXA;IAeQ,iBAAY;E1Ci5PpB;AACF;;AC/wQE;EyC8WA;IAkBQ,iBAAY;E1Co5PpB;AACF;;ACjxQE;EyC0WA;IAqBQ,iBAAY;E1Cu5PpB;AACF;;ACnxQE;EyCsWA;IAwBQ,iBAAY;E1C05PpB;AACF;;ACpxQI;EyCiWF;IA2BQ,iBAAY;E1C65PpB;AACF;;AChxQI;EyCuVF;IA8BQ,iBAAY;E1Cg6PpB;AACF;;ACjxQI;EyCkVF;IAiCQ,iBAAY;E1Cm6PpB;AACF;;AC7wQI;EyCwUF;IAoCQ,iBAAY;E1Cs6PpB;AACF;;A0C38PE;EASM,oBAAY;A1Cs8PpB;;ACr0QE;EyCsXA;IAYQ,oBAAY;E1Cw8PpB;AACF;;ACv0QE;EyCkXA;IAeQ,oBAAY;E1C28PpB;AACF;;ACz0QE;EyC8WA;IAkBQ,oBAAY;E1C88PpB;AACF;;AC30QE;EyC0WA;IAqBQ,oBAAY;E1Ci9PpB;AACF;;AC70QE;EyCsWA;IAwBQ,oBAAY;E1Co9PpB;AACF;;AC90QI;EyCiWF;IA2BQ,oBAAY;E1Cu9PpB;AACF;;AC10QI;EyCuVF;IA8BQ,oBAAY;E1C09PpB;AACF;;AC30QI;EyCkVF;IAiCQ,oBAAY;E1C69PpB;AACF;;ACv0QI;EyCwUF;IAoCQ,oBAAY;E1Cg+PpB;AACF;;A0CrgQE;EASM,mBAAY;A1CggQpB;;AC/3QE;EyCsXA;IAYQ,mBAAY;E1CkgQpB;AACF;;ACj4QE;EyCkXA;IAeQ,mBAAY;E1CqgQpB;AACF;;ACn4QE;EyC8WA;IAkBQ,mBAAY;E1CwgQpB;AACF;;ACr4QE;EyC0WA;IAqBQ,mBAAY;E1C2gQpB;AACF;;ACv4QE;EyCsWA;IAwBQ,mBAAY;E1C8gQpB;AACF;;ACx4QI;EyCiWF;IA2BQ,mBAAY;E1CihQpB;AACF;;ACp4QI;EyCuVF;IA8BQ,mBAAY;E1CohQpB;AACF;;ACr4QI;EyCkVF;IAiCQ,mBAAY;E1CuhQpB;AACF;;ACj4QI;EyCwUF;IAoCQ,mBAAY;E1C0hQpB;AACF;;A0C/jQE;EASM,oBAAY;A1C0jQpB;;ACz7QE;EyCsXA;IAYQ,oBAAY;E1C4jQpB;AACF;;AC37QE;EyCkXA;IAeQ,oBAAY;E1C+jQpB;AACF;;AC77QE;EyC8WA;IAkBQ,oBAAY;E1CkkQpB;AACF;;AC/7QE;EyC0WA;IAqBQ,oBAAY;E1CqkQpB;AACF;;ACj8QE;EyCsWA;IAwBQ,oBAAY;E1CwkQpB;AACF;;ACl8QI;EyCiWF;IA2BQ,oBAAY;E1C2kQpB;AACF;;AC97QI;EyCuVF;IA8BQ,oBAAY;E1C8kQpB;AACF;;AC/7QI;EyCkVF;IAiCQ,oBAAY;E1CilQpB;AACF;;AC37QI;EyCwUF;IAoCQ,oBAAY;E1ColQpB;AACF;;A0CznQE;EASM,iBAAY;A1ConQpB;;ACn/QE;EyCsXA;IAYQ,iBAAY;E1CsnQpB;AACF;;ACr/QE;EyCkXA;IAeQ,iBAAY;E1CynQpB;AACF;;ACv/QE;EyC8WA;IAkBQ,iBAAY;E1C4nQpB;AACF;;ACz/QE;EyC0WA;IAqBQ,iBAAY;E1C+nQpB;AACF;;AC3/QE;EyCsWA;IAwBQ,iBAAY;E1CkoQpB;AACF;;AC5/QI;EyCiWF;IA2BQ,iBAAY;E1CqoQpB;AACF;;ACx/QI;EyCuVF;IA8BQ,iBAAY;E1CwoQpB;AACF;;ACz/QI;EyCkVF;IAiCQ,iBAAY;E1C2oQpB;AACF;;ACr/QI;EyCwUF;IAoCQ,iBAAY;E1C8oQpB;AACF;;A2C3oRA;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,+BAAuB;EAAvB,4BAAuB;EAAvB,uBAAuB;A3C8oRzB;;A2CppRA;EASI,qBAA+B;EAC/B,sBAAgC;EAChC,oBAA8B;A3C+oRlC;;A2C1pRA;EAaM,uBAAiC;A3CipRvC;;A2C9pRA;EAeM,sBAjBgB;A3CoqRtB;;A2ClqRA;EAiBI,oBAAoB;A3CqpRxB;;A2CtqRA;EAmBI,gBArBkB;A3C4qRtB;;A2C1qRA;EAqBI,sBAAsB;A3CypR1B;;A2C9qRA;EAuBM,gCAAgC;A3C2pRtC;;AC5kRE;E0CtGF;IA2BM,aAAa;E3C4pRjB;E2CvrRF;IA8BQ,UAAU;IACV,eAA8B;E3C4pRpC;E2C3rRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgqRpC;E2C/rRF;IA8BQ,UAAU;IACV,UAA8B;E3CoqRpC;E2CnsRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwqRpC;E2CvsRF;IA8BQ,UAAU;IACV,gBAA8B;E3C4qRpC;E2C3sRF;IA8BQ,UAAU;IACV,UAA8B;E3CgrRpC;E2C/sRF;IA8BQ,UAAU;IACV,gBAA8B;E3CorRpC;E2CntRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwrRpC;E2CvtRF;IA8BQ,UAAU;IACV,UAA8B;E3C4rRpC;E2C3tRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgsRpC;E2C/tRF;IA8BQ,UAAU;IACV,gBAA8B;E3CosRpC;E2CnuRF;IA8BQ,UAAU;IACV,WAA8B;E3CwsRpC;AACF;;A4C5uRA,kBAAA;ACIE;EACE,uBAAwB;A7C4uR5B;;A6C3uRE;EAGI,yBAA0C;A7C4uRhD;;A6C3uRE;EACE,kCAAmC;A7C8uRvC;;A6CrvRE;EACE,yBAAwB;A7CwvR5B;;A6CvvRE;EAGI,uBAA0C;A7CwvRhD;;A6CvvRE;EACE,oCAAmC;A7C0vRvC;;A6CjwRE;EACE,4BAAwB;A7CowR5B;;A6CnwRE;EAGI,yBAA0C;A7CowRhD;;A6CnwRE;EACE,uCAAmC;A7CswRvC;;A6C7wRE;EACE,yBAAwB;A7CgxR5B;;A6C/wRE;EAGI,yBAA0C;A7CgxRhD;;A6C/wRE;EACE,oCAAmC;A7CkxRvC;;A6CzxRE;EACE,yBAAwB;A7C4xR5B;;A6C3xRE;EAGI,yBAA0C;A7C4xRhD;;A6C3xRE;EACE,oCAAmC;A7C8xRvC;;A6CzxRI;EACE,yBAA8B;A7C4xRpC;;A6C3xRI;EAGI,yBAAgD;A7C4xRxD;;A6C3xRI;EACE,oCAAyC;A7C8xR/C;;A6C5xRI;EACE,yBAA6B;A7C+xRnC;;A6C9xRI;EAGI,yBAAgD;A7C+xRxD;;A6C9xRI;EACE,oCAAwC;A7CiyR9C;;A6C7zRE;EACE,yBAAwB;A7Cg0R5B;;A6C/zRE;EAGI,yBAA0C;A7Cg0RhD;;A6C/zRE;EACE,oCAAmC;A7Ck0RvC;;A6C7zRI;EACE,yBAA8B;A7Cg0RpC;;A6C/zRI;EAGI,yBAAgD;A7Cg0RxD;;A6C/zRI;EACE,oCAAyC;A7Ck0R/C;;A6Ch0RI;EACE,yBAA6B;A7Cm0RnC;;A6Cl0RI;EAGI,yBAAgD;A7Cm0RxD;;A6Cl0RI;EACE,oCAAwC;A7Cq0R9C;;A6Cj2RE;EACE,yBAAwB;A7Co2R5B;;A6Cn2RE;EAGI,yBAA0C;A7Co2RhD;;A6Cn2RE;EACE,oCAAmC;A7Cs2RvC;;A6Cj2RI;EACE,yBAA8B;A7Co2RpC;;A6Cn2RI;EAGI,yBAAgD;A7Co2RxD;;A6Cn2RI;EACE,oCAAyC;A7Cs2R/C;;A6Cp2RI;EACE,yBAA6B;A7Cu2RnC;;A6Ct2RI;EAGI,yBAAgD;A7Cu2RxD;;A6Ct2RI;EACE,oCAAwC;A7Cy2R9C;;A6Cr4RE;EACE,yBAAwB;A7Cw4R5B;;A6Cv4RE;EAGI,yBAA0C;A7Cw4RhD;;A6Cv4RE;EACE,oCAAmC;A7C04RvC;;A6Cr4RI;EACE,yBAA8B;A7Cw4RpC;;A6Cv4RI;EAGI,yBAAgD;A7Cw4RxD;;A6Cv4RI;EACE,oCAAyC;A7C04R/C;;A6Cx4RI;EACE,yBAA6B;A7C24RnC;;A6C14RI;EAGI,yBAAgD;A7C24RxD;;A6C14RI;EACE,oCAAwC;A7C64R9C;;A6Cz6RE;EACE,yBAAwB;A7C46R5B;;A6C36RE;EAGI,yBAA0C;A7C46RhD;;A6C36RE;EACE,oCAAmC;A7C86RvC;;A6Cz6RI;EACE,yBAA8B;A7C46RpC;;A6C36RI;EAGI,yBAAgD;A7C46RxD;;A6C36RI;EACE,oCAAyC;A7C86R/C;;A6C56RI;EACE,yBAA6B;A7C+6RnC;;A6C96RI;EAGI,yBAAgD;A7C+6RxD;;A6C96RI;EACE,oCAAwC;A7Ci7R9C;;A6C78RE;EACE,yBAAwB;A7Cg9R5B;;A6C/8RE;EAGI,yBAA0C;A7Cg9RhD;;A6C/8RE;EACE,oCAAmC;A7Ck9RvC;;A6C78RI;EACE,yBAA8B;A7Cg9RpC;;A6C/8RI;EAGI,yBAAgD;A7Cg9RxD;;A6C/8RI;EACE,oCAAyC;A7Ck9R/C;;A6Ch9RI;EACE,yBAA6B;A7Cm9RnC;;A6Cl9RI;EAGI,yBAAgD;A7Cm9RxD;;A6Cl9RI;EACE,oCAAwC;A7Cq9R9C;;A6Cl9RE;EACE,yBAAwB;A7Cq9R5B;;A6Cp9RE;EACE,oCAAmC;A7Cu9RvC;;A6C19RE;EACE,yBAAwB;A7C69R5B;;A6C59RE;EACE,oCAAmC;A7C+9RvC;;A6Cl+RE;EACE,yBAAwB;A7Cq+R5B;;A6Cp+RE;EACE,oCAAmC;A7Cu+RvC;;A6C1+RE;EACE,yBAAwB;A7C6+R5B;;A6C5+RE;EACE,oCAAmC;A7C++RvC;;A6Cl/RE;EACE,yBAAwB;A7Cq/R5B;;A6Cp/RE;EACE,oCAAmC;A7Cu/RvC;;A6C1/RE;EACE,yBAAwB;A7C6/R5B;;A6C5/RE;EACE,oCAAmC;A7C+/RvC;;A6ClgSE;EACE,yBAAwB;A7CqgS5B;;A6CpgSE;EACE,oCAAmC;A7CugSvC;;A6C1gSE;EACE,4BAAwB;A7C6gS5B;;A6C5gSE;EACE,uCAAmC;A7C+gSvC;;A6ClhSE;EACE,yBAAwB;A7CqhS5B;;A6CphSE;EACE,oCAAmC;A7CuhSvC;;A8C3jSE;EACE,8BAAiC;A9C8jSrC;;A8C/jSE;EACE,sCAAiC;A9CkkSrC;;A8CnkSE;EACE,iCAAiC;A9CskSrC;;A8CvkSE;EACE,yCAAiC;A9C0kSrC;;A8CtkSE;EACE,4BAA4B;A9CykShC;;A8C1kSE;EACE,0BAA4B;A9C6kShC;;A8C9kSE;EACE,kCAA4B;A9CilShC;;A8C7kSE;EACE,sCAAkC;A9CglStC;;A8CjlSE;EACE,oCAAkC;A9ColStC;;A8CrlSE;EACE,kCAAkC;A9CwlStC;;A8CzlSE;EACE,yCAAkC;A9C4lStC;;A8C7lSE;EACE,wCAAkC;A9CgmStC;;A8CjmSE;EACE,wCAAkC;A9ComStC;;A8CrmSE;EACE,iCAAkC;A9CwmStC;;A8CzmSE;EACE,+BAAkC;A9C4mStC;;A8C7mSE;EACE,gCAAkC;A9CgnStC;;A8CjnSE;EACE,iCAAkC;A9ConStC;;A8ChnSE;EACE,oCAAgC;A9CmnSpC;;A8CpnSE;EACE,kCAAgC;A9CunSpC;;A8CxnSE;EACE,gCAAgC;A9C2nSpC;;A8C5nSE;EACE,uCAAgC;A9C+nSpC;;A8ChoSE;EACE,sCAAgC;A9CmoSpC;;A8CpoSE;EACE,sCAAgC;A9CuoSpC;;A8CxoSE;EACE,iCAAgC;A9C2oSpC;;A8C5oSE;EACE,+BAAgC;A9C+oSpC;;A8ChpSE;EACE,6BAAgC;A9CmpSpC;;A8CppSE;EACE,kCAAgC;A9CupSpC;;A8CnpSE;EACE,+BAA8B;A9CspSlC;;A8CvpSE;EACE,kCAA8B;A9C0pSlC;;A8C3pSE;EACE,gCAA8B;A9C8pSlC;;A8C/pSE;EACE,8BAA8B;A9CkqSlC;;A8CnqSE;EACE,gCAA8B;A9CsqSlC;;A8CvqSE;EACE,6BAA8B;A9C0qSlC;;A8C3qSE;EACE,2BAA8B;A9C8qSlC;;A8C/qSE;EACE,kCAA8B;A9CkrSlC;;A8CnrSE;EACE,gCAA8B;A9CsrSlC;;A8ClrSE;EACE,2BAA6B;A9CqrSjC;;A8CtrSE;EACE,iCAA6B;A9CyrSjC;;A8C1rSE;EACE,+BAA6B;A9C6rSjC;;A8C9rSE;EACE,6BAA6B;A9CisSjC;;A8ClsSE;EACE,+BAA6B;A9CqsSjC;;A8CtsSE;EACE,8BAA6B;A9CysSjC;;A8CpsSI;EACE,uBAAqC;A9CusS3C;;A8CxsSI;EACE,uBAAqC;A9C2sS3C;;A8C5sSI;EACE,uBAAqC;A9C+sS3C;;A8ChtSI;EACE,uBAAqC;A9CmtS3C;;A8CptSI;EACE,uBAAqC;A9CutS3C;;A8CxtSI;EACE,uBAAqC;A9C2tS3C;;A8C5tSI;EACE,yBAAqC;A9C+tS3C;;A8ChuSI;EACE,yBAAqC;A9CmuS3C;;A8CpuSI;EACE,yBAAqC;A9CuuS3C;;A8CxuSI;EACE,yBAAqC;A9C2uS3C;;A8C5uSI;EACE,yBAAqC;A9C+uS3C;;A8ChvSI;EACE,yBAAqC;A9CmvS3C;;AClxSE;EACE,WAAW;EACX,YAAY;EACZ,cAAc;ADqxSlB;;A+CtxSA;EACE,sBAAsB;A/CyxSxB;;A+CvxSA;EACE,uBAAuB;A/C0xSzB;;AgDjySA;EACE,2BAA2B;AhDoyS7B;;AgDlySA;EACE,2BAA2B;AhDqyS7B;;AgDnySA;EACE,0BAA0B;EAC1B,8BAA8B;AhDsyShC;;AiDhzSA;EACE,2BAA2B;AjDmzS7B;;AkD/ySA;EACE,6BAA6B;AlDkzS/B;;AmDxzSA;EACE,oBAAoB;AnD2zStB;;AmDzzSA;EACE,qBAAqB;AnD4zSvB;;AmDjzSI;EACE,oBAA+B;AnDozSrC;;AmDjzSM;EACE,wBAA8C;AnDozStD;;AmDrzSM;EACE,0BAA8C;AnDwzStD;;AmDzzSM;EACE,2BAA8C;AnD4zStD;;AmD7zSM;EACE,yBAA8C;AnDg0StD;;AmD7zSM;EACE,yBAAyC;EACzC,0BAA2C;AnDg0SnD;;AmD7zSM;EACE,wBAAuC;EACvC,2BAA6C;AnDg0SrD;;AmD/0SI;EACE,0BAA+B;AnDk1SrC;;AmD/0SM;EACE,8BAA8C;AnDk1StD;;AmDn1SM;EACE,gCAA8C;AnDs1StD;;AmDv1SM;EACE,iCAA8C;AnD01StD;;AmD31SM;EACE,+BAA8C;AnD81StD;;AmD31SM;EACE,+BAAyC;EACzC,gCAA2C;AnD81SnD;;AmD31SM;EACE,8BAAuC;EACvC,iCAA6C;AnD81SrD;;AmD72SI;EACE,yBAA+B;AnDg3SrC;;AmD72SM;EACE,6BAA8C;AnDg3StD;;AmDj3SM;EACE,+BAA8C;AnDo3StD;;AmDr3SM;EACE,gCAA8C;AnDw3StD;;AmDz3SM;EACE,8BAA8C;AnD43StD;;AmDz3SM;EACE,8BAAyC;EACzC,+BAA2C;AnD43SnD;;AmDz3SM;EACE,6BAAuC;EACvC,gCAA6C;AnD43SrD;;AmD34SI;EACE,0BAA+B;AnD84SrC;;AmD34SM;EACE,8BAA8C;AnD84StD;;AmD/4SM;EACE,gCAA8C;AnDk5StD;;AmDn5SM;EACE,iCAA8C;AnDs5StD;;AmDv5SM;EACE,+BAA8C;AnD05StD;;AmDv5SM;EACE,+BAAyC;EACzC,gCAA2C;AnD05SnD;;AmDv5SM;EACE,8BAAuC;EACvC,iCAA6C;AnD05SrD;;AmDz6SI;EACE,uBAA+B;AnD46SrC;;AmDz6SM;EACE,2BAA8C;AnD46StD;;AmD76SM;EACE,6BAA8C;AnDg7StD;;AmDj7SM;EACE,8BAA8C;AnDo7StD;;AmDr7SM;EACE,4BAA8C;AnDw7StD;;AmDr7SM;EACE,4BAAyC;EACzC,6BAA2C;AnDw7SnD;;AmDr7SM;EACE,2BAAuC;EACvC,8BAA6C;AnDw7SrD;;AmDv8SI;EACE,yBAA+B;AnD08SrC;;AmDv8SM;EACE,6BAA8C;AnD08StD;;AmD38SM;EACE,+BAA8C;AnD88StD;;AmD/8SM;EACE,gCAA8C;AnDk9StD;;AmDn9SM;EACE,8BAA8C;AnDs9StD;;AmDn9SM;EACE,8BAAyC;EACzC,+BAA2C;AnDs9SnD;;AmDn9SM;EACE,6BAAuC;EACvC,gCAA6C;AnDs9SrD;;AmDr+SI;EACE,uBAA+B;AnDw+SrC;;AmDr+SM;EACE,2BAA8C;AnDw+StD;;AmDz+SM;EACE,6BAA8C;AnD4+StD;;AmD7+SM;EACE,8BAA8C;AnDg/StD;;AmDj/SM;EACE,4BAA8C;AnDo/StD;;AmDj/SM;EACE,4BAAyC;EACzC,6BAA2C;AnDo/SnD;;AmDj/SM;EACE,2BAAuC;EACvC,8BAA6C;AnDo/SrD;;AmDngTI;EACE,uBAA+B;AnDsgTrC;;AmDngTM;EACE,2BAA8C;AnDsgTtD;;AmDvgTM;EACE,6BAA8C;AnD0gTtD;;AmD3gTM;EACE,8BAA8C;AnD8gTtD;;AmD/gTM;EACE,4BAA8C;AnDkhTtD;;AmD/gTM;EACE,4BAAyC;EACzC,6BAA2C;AnDkhTnD;;AmD/gTM;EACE,2BAAuC;EACvC,8BAA6C;AnDkhTrD;;AmDjiTI;EACE,qBAA+B;AnDoiTrC;;AmDjiTM;EACE,yBAA8C;AnDoiTtD;;AmDriTM;EACE,2BAA8C;AnDwiTtD;;AmDziTM;EACE,4BAA8C;AnD4iTtD;;AmD7iTM;EACE,0BAA8C;AnDgjTtD;;AmD7iTM;EACE,0BAAyC;EACzC,2BAA2C;AnDgjTnD;;AmD7iTM;EACE,yBAAuC;EACvC,4BAA6C;AnDgjTrD;;AmD/jTI;EACE,2BAA+B;AnDkkTrC;;AmD/jTM;EACE,+BAA8C;AnDkkTtD;;AmDnkTM;EACE,iCAA8C;AnDskTtD;;AmDvkTM;EACE,kCAA8C;AnD0kTtD;;AmD3kTM;EACE,gCAA8C;AnD8kTtD;;AmD3kTM;EACE,gCAAyC;EACzC,iCAA2C;AnD8kTnD;;AmD3kTM;EACE,+BAAuC;EACvC,kCAA6C;AnD8kTrD;;AmD7lTI;EACE,0BAA+B;AnDgmTrC;;AmD7lTM;EACE,8BAA8C;AnDgmTtD;;AmDjmTM;EACE,gCAA8C;AnDomTtD;;AmDrmTM;EACE,iCAA8C;AnDwmTtD;;AmDzmTM;EACE,+BAA8C;AnD4mTtD;;AmDzmTM;EACE,+BAAyC;EACzC,gCAA2C;AnD4mTnD;;AmDzmTM;EACE,8BAAuC;EACvC,iCAA6C;AnD4mTrD;;AmD3nTI;EACE,2BAA+B;AnD8nTrC;;AmD3nTM;EACE,+BAA8C;AnD8nTtD;;AmD/nTM;EACE,iCAA8C;AnDkoTtD;;AmDnoTM;EACE,kCAA8C;AnDsoTtD;;AmDvoTM;EACE,gCAA8C;AnD0oTtD;;AmDvoTM;EACE,gCAAyC;EACzC,iCAA2C;AnD0oTnD;;AmDvoTM;EACE,+BAAuC;EACvC,kCAA6C;AnD0oTrD;;AmDzpTI;EACE,wBAA+B;AnD4pTrC;;AmDzpTM;EACE,4BAA8C;AnD4pTtD;;AmD7pTM;EACE,8BAA8C;AnDgqTtD;;AmDjqTM;EACE,+BAA8C;AnDoqTtD;;AmDrqTM;EACE,6BAA8C;AnDwqTtD;;AmDrqTM;EACE,6BAAyC;EACzC,8BAA2C;AnDwqTnD;;AmDrqTM;EACE,4BAAuC;EACvC,+BAA6C;AnDwqTrD;;AmDvrTI;EACE,0BAA+B;AnD0rTrC;;AmDvrTM;EACE,8BAA8C;AnD0rTtD;;AmD3rTM;EACE,gCAA8C;AnD8rTtD;;AmD/rTM;EACE,iCAA8C;AnDksTtD;;AmDnsTM;EACE,+BAA8C;AnDssTtD;;AmDnsTM;EACE,+BAAyC;EACzC,gCAA2C;AnDssTnD;;AmDnsTM;EACE,8BAAuC;EACvC,iCAA6C;AnDssTrD;;AmDrtTI;EACE,wBAA+B;AnDwtTrC;;AmDrtTM;EACE,4BAA8C;AnDwtTtD;;AmDztTM;EACE,8BAA8C;AnD4tTtD;;AmD7tTM;EACE,+BAA8C;AnDguTtD;;AmDjuTM;EACE,6BAA8C;AnDouTtD;;AmDjuTM;EACE,6BAAyC;EACzC,8BAA2C;AnDouTnD;;AmDjuTM;EACE,4BAAuC;EACvC,+BAA6C;AnDouTrD;;AmDnvTI;EACE,wBAA+B;AnDsvTrC;;AmDnvTM;EACE,4BAA8C;AnDsvTtD;;AmDvvTM;EACE,8BAA8C;AnD0vTtD;;AmD3vTM;EACE,+BAA8C;AnD8vTtD;;AmD/vTM;EACE,6BAA8C;AnDkwTtD;;AmD/vTM;EACE,6BAAyC;EACzC,8BAA2C;AnDkwTnD;;AmD/vTM;EACE,4BAAuC;EACvC,+BAA6C;AnDkwTrD;;AoD3xTI;EACE,0BAA2B;ApD8xTjC;;AoD/xTI;EACE,4BAA2B;ApDkyTjC;;AoDnyTI;EACE,0BAA2B;ApDsyTjC;;AoDvyTI;EACE,4BAA2B;ApD0yTjC;;AoD3yTI;EACE,6BAA2B;ApD8yTjC;;AoD/yTI;EACE,0BAA2B;ApDkzTjC;;AoDnzTI;EACE,6BAA2B;ApDszTjC;;ACttTE;EmDjGE;IACE,0BAA2B;EpD2zT/B;EoD5zTE;IACE,4BAA2B;EpD8zT/B;EoD/zTE;IACE,0BAA2B;EpDi0T/B;EoDl0TE;IACE,4BAA2B;EpDo0T/B;EoDr0TE;IACE,6BAA2B;EpDu0T/B;EoDx0TE;IACE,0BAA2B;EpD00T/B;EoD30TE;IACE,6BAA2B;EpD60T/B;AACF;;AC1uTE;EmDrGE;IACE,0BAA2B;EpDm1T/B;EoDp1TE;IACE,4BAA2B;EpDs1T/B;EoDv1TE;IACE,0BAA2B;EpDy1T/B;EoD11TE;IACE,4BAA2B;EpD41T/B;EoD71TE;IACE,6BAA2B;EpD+1T/B;EoDh2TE;IACE,0BAA2B;EpDk2T/B;EoDn2TE;IACE,6BAA2B;EpDq2T/B;AACF;;AC1vTE;EmD7GE;IACE,0BAA2B;EpD22T/B;EoD52TE;IACE,4BAA2B;EpD82T/B;EoD/2TE;IACE,0BAA2B;EpDi3T/B;EoDl3TE;IACE,4BAA2B;EpDo3T/B;EoDr3TE;IACE,6BAA2B;EpDu3T/B;EoDx3TE;IACE,0BAA2B;EpD03T/B;EoD33TE;IACE,6BAA2B;EpD63T/B;AACF;;AC9wTE;EmDjHE;IACE,0BAA2B;EpDm4T/B;EoDp4TE;IACE,4BAA2B;EpDs4T/B;EoDv4TE;IACE,0BAA2B;EpDy4T/B;EoD14TE;IACE,4BAA2B;EpD44T/B;EoD74TE;IACE,6BAA2B;EpD+4T/B;EoDh5TE;IACE,0BAA2B;EpDk5T/B;EoDn5TE;IACE,6BAA2B;EpDq5T/B;AACF;;ACvxTI;EmDhIA;IACE,0BAA2B;EpD25T/B;EoD55TE;IACE,4BAA2B;EpD85T/B;EoD/5TE;IACE,0BAA2B;EpDi6T/B;EoDl6TE;IACE,4BAA2B;EpDo6T/B;EoDr6TE;IACE,6BAA2B;EpDu6T/B;EoDx6TE;IACE,0BAA2B;EpD06T/B;EoD36TE;IACE,6BAA2B;EpD66T/B;AACF;;AChyTI;EmD/IA;IACE,0BAA2B;EpDm7T/B;EoDp7TE;IACE,4BAA2B;EpDs7T/B;EoDv7TE;IACE,0BAA2B;EpDy7T/B;EoD17TE;IACE,4BAA2B;EpD47T/B;EoD77TE;IACE,6BAA2B;EpD+7T/B;EoDh8TE;IACE,0BAA2B;EpDk8T/B;EoDn8TE;IACE,6BAA2B;EpDq8T/B;AACF;;AoD76TE;EACE,6BAAqC;ApDg7TzC;;AoDj7TE;EACE,8BAAqC;ApDo7TzC;;AoDr7TE;EACE,2BAAqC;ApDw7TzC;;AoDz7TE;EACE,4BAAqC;ApD47TzC;;ACt3TE;EmDlEE;IACE,6BAAqC;EpD47TzC;AACF;;ACx3TE;EmDnEE;IACE,6BAAqC;EpD+7TzC;AACF;;AC13TE;EmDpEE;IACE,6BAAqC;EpDk8TzC;AACF;;AC53TE;EmDrEE;IACE,6BAAqC;EpDq8TzC;AACF;;AC93TE;EmDtEE;IACE,6BAAqC;EpDw8TzC;AACF;;AC/3TI;EmDxEA;IACE,6BAAqC;EpD28TzC;AACF;;AC33TI;EmD/EA;IACE,6BAAqC;EpD88TzC;AACF;;AC53TI;EmDjFA;IACE,6BAAqC;EpDi9TzC;AACF;;ACx3TI;EmDxFA;IACE,6BAAqC;EpDo9TzC;AACF;;AC56TE;EmDlEE;IACE,8BAAqC;EpDk/TzC;AACF;;AC96TE;EmDnEE;IACE,8BAAqC;EpDq/TzC;AACF;;ACh7TE;EmDpEE;IACE,8BAAqC;EpDw/TzC;AACF;;ACl7TE;EmDrEE;IACE,8BAAqC;EpD2/TzC;AACF;;ACp7TE;EmDtEE;IACE,8BAAqC;EpD8/TzC;AACF;;ACr7TI;EmDxEA;IACE,8BAAqC;EpDigUzC;AACF;;ACj7TI;EmD/EA;IACE,8BAAqC;EpDogUzC;AACF;;ACl7TI;EmDjFA;IACE,8BAAqC;EpDugUzC;AACF;;AC96TI;EmDxFA;IACE,8BAAqC;EpD0gUzC;AACF;;ACl+TE;EmDlEE;IACE,2BAAqC;EpDwiUzC;AACF;;ACp+TE;EmDnEE;IACE,2BAAqC;EpD2iUzC;AACF;;ACt+TE;EmDpEE;IACE,2BAAqC;EpD8iUzC;AACF;;ACx+TE;EmDrEE;IACE,2BAAqC;EpDijUzC;AACF;;AC1+TE;EmDtEE;IACE,2BAAqC;EpDojUzC;AACF;;AC3+TI;EmDxEA;IACE,2BAAqC;EpDujUzC;AACF;;ACv+TI;EmD/EA;IACE,2BAAqC;EpD0jUzC;AACF;;ACx+TI;EmDjFA;IACE,2BAAqC;EpD6jUzC;AACF;;ACp+TI;EmDxFA;IACE,2BAAqC;EpDgkUzC;AACF;;ACxhUE;EmDlEE;IACE,4BAAqC;EpD8lUzC;AACF;;AC1hUE;EmDnEE;IACE,4BAAqC;EpDimUzC;AACF;;AC5hUE;EmDpEE;IACE,4BAAqC;EpDomUzC;AACF;;AC9hUE;EmDrEE;IACE,4BAAqC;EpDumUzC;AACF;;AChiUE;EmDtEE;IACE,4BAAqC;EpD0mUzC;AACF;;ACjiUI;EmDxEA;IACE,4BAAqC;EpD6mUzC;AACF;;AC7hUI;EmD/EA;IACE,4BAAqC;EpDgnUzC;AACF;;AC9hUI;EmDjFA;IACE,4BAAqC;EpDmnUzC;AACF;;AC1hUI;EmDxFA;IACE,4BAAqC;EpDsnUzC;AACF;;AoDrnUA;EACE,qCAAqC;ApDwnUvC;;AoDtnUA;EACE,oCAAoC;ApDynUtC;;AoDvnUA;EACE,oCAAoC;ApD0nUtC;;AoDxnUA;EACE,6BAA6B;ApD2nU/B;;AoDznUA;EACE,qCAAqC;ApD4nUvC;;AoD1nUA;EACE,2BAAqC;ApD6nUvC;;AoD5nUA;EACE,2BAAsC;ApD+nUxC;;AoD9nUA;EACE,2BAAsC;ApDioUxC;;AoDhoUA;EACE,2BAAwC;ApDmoU1C;;AoDloUA;EACE,2BAAoC;ApDqoUtC;;AoDnoUA;EACE,+LAAuC;ApDsoUzC;;AoDpoUA;EACE,+LAAyC;ApDuoU3C;;AoDroUA;EACE,+LAA0C;ApDwoU5C;;AoDtoUA;EACE,iCAAyC;ApDyoU3C;;AoDvoUA;EACE,iCAAoC;ApD0oUtC;;AqD3uUE;EACE,yBAA+B;ArD8uUnC;;AC9oUE;EoD9FE;IACE,yBAA+B;ErDgvUnC;AACF;;AChpUE;EoD/FE;IACE,yBAA+B;ErDmvUnC;AACF;;AClpUE;EoDhGE;IACE,yBAA+B;ErDsvUnC;AACF;;ACppUE;EoDjGE;IACE,yBAA+B;ErDyvUnC;AACF;;ACtpUE;EoDlGE;IACE,yBAA+B;ErD4vUnC;AACF;;ACvpUI;EoDpGA;IACE,yBAA+B;ErD+vUnC;AACF;;ACnpUI;EoD3GA;IACE,yBAA+B;ErDkwUnC;AACF;;ACppUI;EoD7GA;IACE,yBAA+B;ErDqwUnC;AACF;;AChpUI;EoDpHA;IACE,yBAA+B;ErDwwUnC;AACF;;AqDryUE;EACE,wBAA+B;ArDwyUnC;;ACxsUE;EoD9FE;IACE,wBAA+B;ErD0yUnC;AACF;;AC1sUE;EoD/FE;IACE,wBAA+B;ErD6yUnC;AACF;;AC5sUE;EoDhGE;IACE,wBAA+B;ErDgzUnC;AACF;;AC9sUE;EoDjGE;IACE,wBAA+B;ErDmzUnC;AACF;;AChtUE;EoDlGE;IACE,wBAA+B;ErDszUnC;AACF;;ACjtUI;EoDpGA;IACE,wBAA+B;ErDyzUnC;AACF;;AC7sUI;EoD3GA;IACE,wBAA+B;ErD4zUnC;AACF;;AC9sUI;EoD7GA;IACE,wBAA+B;ErD+zUnC;AACF;;AC1sUI;EoDpHA;IACE,wBAA+B;ErDk0UnC;AACF;;AqD/1UE;EACE,0BAA+B;ArDk2UnC;;AClwUE;EoD9FE;IACE,0BAA+B;ErDo2UnC;AACF;;ACpwUE;EoD/FE;IACE,0BAA+B;ErDu2UnC;AACF;;ACtwUE;EoDhGE;IACE,0BAA+B;ErD02UnC;AACF;;ACxwUE;EoDjGE;IACE,0BAA+B;ErD62UnC;AACF;;AC1wUE;EoDlGE;IACE,0BAA+B;ErDg3UnC;AACF;;AC3wUI;EoDpGA;IACE,0BAA+B;ErDm3UnC;AACF;;ACvwUI;EoD3GA;IACE,0BAA+B;ErDs3UnC;AACF;;ACxwUI;EoD7GA;IACE,0BAA+B;ErDy3UnC;AACF;;ACpwUI;EoDpHA;IACE,0BAA+B;ErD43UnC;AACF;;AqDz5UE;EACE,gCAA+B;ArD45UnC;;AC5zUE;EoD9FE;IACE,gCAA+B;ErD85UnC;AACF;;AC9zUE;EoD/FE;IACE,gCAA+B;ErDi6UnC;AACF;;ACh0UE;EoDhGE;IACE,gCAA+B;ErDo6UnC;AACF;;ACl0UE;EoDjGE;IACE,gCAA+B;ErDu6UnC;AACF;;ACp0UE;EoDlGE;IACE,gCAA+B;ErD06UnC;AACF;;ACr0UI;EoDpGA;IACE,gCAA+B;ErD66UnC;AACF;;ACj0UI;EoD3GA;IACE,gCAA+B;ErDg7UnC;AACF;;ACl0UI;EoD7GA;IACE,gCAA+B;ErDm7UnC;AACF;;AC9zUI;EoDpHA;IACE,gCAA+B;ErDs7UnC;AACF;;AqDn9UE;EACE,+BAA+B;ArDs9UnC;;ACt3UE;EoD9FE;IACE,+BAA+B;ErDw9UnC;AACF;;ACx3UE;EoD/FE;IACE,+BAA+B;ErD29UnC;AACF;;AC13UE;EoDhGE;IACE,+BAA+B;ErD89UnC;AACF;;AC53UE;EoDjGE;IACE,+BAA+B;ErDi+UnC;AACF;;AC93UE;EoDlGE;IACE,+BAA+B;ErDo+UnC;AACF;;AC/3UI;EoDpGA;IACE,+BAA+B;ErDu+UnC;AACF;;AC33UI;EoD3GA;IACE,+BAA+B;ErD0+UnC;AACF;;AC53UI;EoD7GA;IACE,+BAA+B;ErD6+UnC;AACF;;ACx3UI;EoDpHA;IACE,+BAA+B;ErDg/UnC;AACF;;AqD/+UA;EACE,wBAAwB;ArDk/U1B;;AqDh/UA;EACE,uBAAuB;EACvB,iCAAiC;EACjC,yBAAyB;EACzB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,8BAA8B;EAC9B,wBAAwB;ArDm/U1B;;AC37UE;EoDrDA;IACE,wBAAwB;ErDo/U1B;AACF;;AC77UE;EoDrDA;IACE,wBAAwB;ErDs/U1B;AACF;;AC/7UE;EoDrDA;IACE,wBAAwB;ErDw/U1B;AACF;;ACj8UE;EoDrDA;IACE,wBAAwB;ErD0/U1B;AACF;;ACn8UE;EoDrDA;IACE,wBAAwB;ErD4/U1B;AACF;;ACp8UI;EoDtDF;IACE,wBAAwB;ErD8/U1B;AACF;;ACh8UI;EoD5DF;IACE,wBAAwB;ErDggV1B;AACF;;ACj8UI;EoD7DF;IACE,wBAAwB;ErDkgV1B;AACF;;AC77UI;EoDnEF;IACE,wBAAwB;ErDogV1B;AACF;;AqDngVA;EACE,6BAA6B;ArDsgV/B;;ACr/UE;EoDdA;IACE,6BAA6B;ErDugV/B;AACF;;ACv/UE;EoDdA;IACE,6BAA6B;ErDygV/B;AACF;;ACz/UE;EoDdA;IACE,6BAA6B;ErD2gV/B;AACF;;AC3/UE;EoDdA;IACE,6BAA6B;ErD6gV/B;AACF;;AC7/UE;EoDdA;IACE,6BAA6B;ErD+gV/B;AACF;;AC9/UI;EoDfF;IACE,6BAA6B;ErDihV/B;AACF;;AC1/UI;EoDrBF;IACE,6BAA6B;ErDmhV/B;AACF;;AC3/UI;EoDtBF;IACE,6BAA6B;ErDqhV/B;AACF;;ACv/UI;EoD5BF;IACE,6BAA6B;ErDuhV/B;AACF;;AsDjpVA,iBAAA;ACWA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AvD0oVhC;;AuD9oVA;EAMI,gBAAgB;AvD4oVpB;;AuDlpVA;EASM,mBAAmB;AvD6oVzB;;AuDtpVA;EAeM,uBxDXyB;EwDYzB,cxDzBuB;ACoqV7B;;AuD3pVA;;EAmBQ,cAAc;AvD6oVtB;;AuDhqVA;EAqBQ,cxD9BqB;AC6qV7B;;AuDpqVA;EAuBQ,4BxDhCqB;ACirV7B;;AuDxqVA;;EA0BU,cxDnCmB;ACsrV7B;;ACtkVE;EsDvGF;IA6BU,uBxDzBqB;EC8qV7B;AACF;;AuDnrVA;;EAgCQ,4BxDzCqB;ACisV7B;;AuDxrVA;;;EAqCU,yB7C4DuB;E6C3DvB,cxD/CmB;ACwsV7B;;AuD/rVA;EAyCU,cxDlDmB;EwDmDnB,YAAY;AvD0pVtB;;AuDpsVA;EA4CY,UAAU;AvD4pVtB;;AuDxsVA;EA+CY,uBAAwB;EACxB,UAAU;AvD6pVtB;;AuD7sVA;EAoDY,cxD7DiB;AC0tV7B;;AuDjtVA;EAsDc,uCxD/De;AC8tV7B;;AuDrtVA;EA0Dc,yBxDnEe;EwDoEf,qBxDpEe;EwDqEf,YxDxDiB;ACutV/B;;AuD3tVA;EAkEU,4EAAyG;AvD6pVnH;;ACpoVE;EsD3FF;IAqEc,4EAAyG;EvD+pVrH;AACF;;AuDruVA;EAeM,yBxDxBuB;EwDyBvB,YxDZyB;ACsuV/B;;AuD1uVA;;EAmBQ,cAAc;AvD4tVtB;;AuD/uVA;EAqBQ,YxDjBuB;AC+uV/B;;AuDnvVA;EAuBQ,+BxDnBuB;ACmvV/B;;AuDvvVA;;EA0BU,YxDtBqB;ACwvV/B;;ACrpVE;EsDvGF;IA6BU,yBxDtCmB;EC0wV3B;AACF;;AuDlwVA;;EAgCQ,+BxD5BuB;ACmwV/B;;AuDvwVA;;;EAqCU,uB7C4DuB;E6C3DvB,YxDlCqB;AC0wV/B;;AuD9wVA;EAyCU,YxDrCqB;EwDsCrB,YAAY;AvDyuVtB;;AuDnxVA;EA4CY,UAAU;AvD2uVtB;;AuDvxVA;EA+CY,yBAAwB;EACxB,UAAU;AvD4uVtB;;AuD5xVA;EAoDY,YxDhDmB;AC4xV/B;;AuDhyVA;EAsDc,uCxD/De;AC6yV7B;;AuDpyVA;EA0Dc,uBxDtDiB;EwDuDjB,mBxDvDiB;EwDwDjB,cxDrEe;ACmzV7B;;AuD1yVA;EAkEU,8EAAyG;AvD4uVnH;;ACntVE;EsD3FF;IAqEc,8EAAyG;EvD8uVrH;AACF;;AuDpzVA;EAeM,4BxDbwB;EwDcxB,yB7CqDe;AVovVrB;;AuDzzVA;;EAmBQ,cAAc;AvD2yVtB;;AuD9zVA;EAqBQ,yB7CgDa;AV6vVrB;;AuDl0VA;EAuBQ,yB7C8Ca;AViwVrB;;AuDt0VA;;EA0BU,yB7C2CW;AVswVrB;;ACpuVE;EsDvGF;IA6BU,4BxD3BoB;EC80V5B;AACF;;AuDj1VA;;EAgCQ,yB7CqCa;AVixVrB;;AuDt1VA;;;EAqCU,yB7C4DuB;E6C3DvB,yB7C+BW;AVwxVrB;;AuD71VA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvDwzVtB;;AuDl2VA;EA4CY,UAAU;AvD0zVtB;;AuDt2VA;EA+CY,4BAAwB;EACxB,UAAU;AvD2zVtB;;AuD32VA;EAoDY,yB7CiBS;AV0yVrB;;AuD/2VA;EAsDc,uCxD/De;AC43V7B;;AuDn3VA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,iBxD1DgB;ACu3V9B;;AuDz3VA;EAkEU,iFAAyG;AvD2zVnH;;AClyVE;EsD3FF;IAqEc,iFAAyG;EvD6zVrH;AACF;;AuDn4VA;EAeM,yBxDpBwB;EwDqBxB,W7CuDU;AVi0VhB;;AuDx4VA;;EAmBQ,cAAc;AvD03VtB;;AuD74VA;EAqBQ,W7CkDQ;AV00VhB;;AuDj5VA;EAuBQ,+B7CgDQ;AV80VhB;;AuDr5VA;;EA0BU,W7C6CM;AVm1VhB;;ACnzVE;EsDvGF;IA6BU,yBxDlCoB;ECo6V5B;AACF;;AuDh6VA;;EAgCQ,+B7CuCQ;AV81VhB;;AuDr6VA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVq2VhB;;AuD56VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDu4VtB;;AuDj7VA;EA4CY,UAAU;AvDy4VtB;;AuDr7VA;EA+CY,yBAAwB;EACxB,UAAU;AvD04VtB;;AuD17VA;EAoDY,W7CmBI;AVu3VhB;;AuD97VA;EAsDc,uCxD/De;AC28V7B;;AuDl8VA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjEgB;AC68V9B;;AuDx8VA;EAkEU,gFAAyG;AvD04VnH;;ACj3VE;EsD3FF;IAqEc,gFAAyG;EvD44VrH;AACF;;AuDl9VA;EAeM,yBxDN4B;EwDO5B,W7CuDU;AVg5VhB;;AuDv9VA;;EAmBQ,cAAc;AvDy8VtB;;AuD59VA;EAqBQ,W7CkDQ;AVy5VhB;;AuDh+VA;EAuBQ,+B7CgDQ;AV65VhB;;AuDp+VA;;EA0BU,W7C6CM;AVk6VhB;;ACl4VE;EsDvGF;IA6BU,yBxDpBwB;ECq+VhC;AACF;;AuD/+VA;;EAgCQ,+B7CuCQ;AV66VhB;;AuDp/VA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVo7VhB;;AuD3/VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDs9VtB;;AuDhgWA;EA4CY,UAAU;AvDw9VtB;;AuDpgWA;EA+CY,yBAAwB;EACxB,UAAU;AvDy9VtB;;AuDzgWA;EAoDY,W7CmBI;AVs8VhB;;AuD7gWA;EAsDc,uCxD/De;AC0hW7B;;AuDjhWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDnDoB;AC8gWlC;;AuDvhWA;EAkEU,gFAAyG;AvDy9VnH;;ACh8VE;EsD3FF;IAqEc,gFAAyG;EvD29VrH;AACF;;AuDjiWA;EAeM,yBxDJ4B;EwDK5B,W7CuDU;AV+9VhB;;AuDtiWA;;EAmBQ,cAAc;AvDwhWtB;;AuD3iWA;EAqBQ,W7CkDQ;AVw+VhB;;AuD/iWA;EAuBQ,+B7CgDQ;AV4+VhB;;AuDnjWA;;EA0BU,W7C6CM;AVi/VhB;;ACj9VE;EsDvGF;IA6BU,yBxDlBwB;ECkjWhC;AACF;;AuD9jWA;;EAgCQ,+B7CuCQ;AV4/VhB;;AuDnkWA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVmgWhB;;AuD1kWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDqiWtB;;AuD/kWA;EA4CY,UAAU;AvDuiWtB;;AuDnlWA;EA+CY,yBAAwB;EACxB,UAAU;AvDwiWtB;;AuDxlWA;EAoDY,W7CmBI;AVqhWhB;;AuD5lWA;EAsDc,uCxD/De;ACymW7B;;AuDhmWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjDoB;AC2lWlC;;AuDtmWA;EAkEU,gFAAyG;AvDwiWnH;;AC/gWE;EsD3FF;IAqEc,gFAAyG;EvD0iWrH;AACF;;AuDhnWA;EAeM,yBxDL4B;EwDM5B,W7CuDU;AV8iWhB;;AuDrnWA;;EAmBQ,cAAc;AvDumWtB;;AuD1nWA;EAqBQ,W7CkDQ;AVujWhB;;AuD9nWA;EAuBQ,+B7CgDQ;AV2jWhB;;AuDloWA;;EA0BU,W7C6CM;AVgkWhB;;AChiWE;EsDvGF;IA6BU,yBxDnBwB;ECkoWhC;AACF;;AuD7oWA;;EAgCQ,+B7CuCQ;AV2kWhB;;AuDlpWA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AVklWhB;;AuDzpWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDonWtB;;AuD9pWA;EA4CY,UAAU;AvDsnWtB;;AuDlqWA;EA+CY,yBAAwB;EACxB,UAAU;AvDunWtB;;AuDvqWA;EAoDY,W7CmBI;AVomWhB;;AuD3qWA;EAsDc,uCxD/De;ACwrW7B;;AuD/qWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDlDoB;AC2qWlC;;AuDrrWA;EAkEU,gFAAyG;AvDunWnH;;AC9lWE;EsD3FF;IAqEc,gFAAyG;EvDynWrH;AACF;;AuD/rWA;EAeM,yBxDP4B;EwDQ5B,W7CuDU;AV6nWhB;;AuDpsWA;;EAmBQ,cAAc;AvDsrWtB;;AuDzsWA;EAqBQ,W7CkDQ;AVsoWhB;;AuD7sWA;EAuBQ,+B7CgDQ;AV0oWhB;;AuDjtWA;;EA0BU,W7C6CM;AV+oWhB;;AC/mWE;EsDvGF;IA6BU,yBxDrBwB;ECmtWhC;AACF;;AuD5tWA;;EAgCQ,+B7CuCQ;AV0pWhB;;AuDjuWA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AViqWhB;;AuDxuWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDmsWtB;;AuD7uWA;EA4CY,UAAU;AvDqsWtB;;AuDjvWA;EA+CY,yBAAwB;EACxB,UAAU;AvDssWtB;;AuDtvWA;EAoDY,W7CmBI;AVmrWhB;;AuD1vWA;EAsDc,uCxD/De;ACuwW7B;;AuD9vWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDpDoB;AC4vWlC;;AuDpwWA;EAkEU,gFAAyG;AvDssWnH;;AC7qWE;EsD3FF;IAqEc,gFAAyG;EvDwsWrH;AACF;;AuD9wWA;EAeM,yBxDR4B;EwDS5B,yB7CqDe;AV8sWrB;;AuDnxWA;;EAmBQ,cAAc;AvDqwWtB;;AuDxxWA;EAqBQ,yB7CgDa;AVutWrB;;AuD5xWA;EAuBQ,yB7C8Ca;AV2tWrB;;AuDhyWA;;EA0BU,yB7C2CW;AVguWrB;;AC9rWE;EsDvGF;IA6BU,yBxDtBwB;ECmyWhC;AACF;;AuD3yWA;;EAgCQ,yB7CqCa;AV2uWrB;;AuDhzWA;;;EAqCU,yB7C4DuB;E6C3DvB,yB7C+BW;AVkvWrB;;AuDvzWA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvDkxWtB;;AuD5zWA;EA4CY,UAAU;AvDoxWtB;;AuDh0WA;EA+CY,yBAAwB;EACxB,UAAU;AvDqxWtB;;AuDr0WA;EAoDY,yB7CiBS;AVowWrB;;AuDz0WA;EAsDc,uCxD/De;ACs1W7B;;AuD70WA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,cxDrDoB;AC40WlC;;AuDn1WA;EAkEU,gFAAyG;AvDqxWnH;;AC5vWE;EsD3FF;IAqEc,gFAAyG;EvDuxWrH;AACF;;AuD71WA;EAeM,yBxDF2B;EwDG3B,W7CuDU;AV2xWhB;;AuDl2WA;;EAmBQ,cAAc;AvDo1WtB;;AuDv2WA;EAqBQ,W7CkDQ;AVoyWhB;;AuD32WA;EAuBQ,+B7CgDQ;AVwyWhB;;AuD/2WA;;EA0BU,W7C6CM;AV6yWhB;;AC7wWE;EsDvGF;IA6BU,yBxDhBuB;EC42W/B;AACF;;AuD13WA;;EAgCQ,+B7CuCQ;AVwzWhB;;AuD/3WA;;;EAqCU,yB7C4DuB;E6C3DvB,W7CiCM;AV+zWhB;;AuDt4WA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDi2WtB;;AuD34WA;EA4CY,UAAU;AvDm2WtB;;AuD/4WA;EA+CY,yBAAwB;EACxB,UAAU;AvDo2WtB;;AuDp5WA;EAoDY,W7CmBI;AVi1WhB;;AuDx5WA;EAsDc,uCxD/De;ACq6W7B;;AuD55WA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxD/CmB;ACq5WjC;;AuDl6WA;EAkEU,gFAAyG;AvDo2WnH;;AC30WE;EsD3FF;IAqEc,gFAAyG;EvDs2WrH;AACF;;AuD56WA;EAyEM,eAhF0B;AvDu7WhC;;ACj1WE;EsD/FF;IA6EQ,oBAnF8B;EvD27WpC;AACF;;ACv1WE;EsD/FF;IAiFQ,mBAtF4B;EvDg8WlC;AACF;;AuD57WA;EAsFM,mBAAmB;EACnB,aAAa;AvD02WnB;;AuDj8WA;EAyFQ,YAAY;EACZ,cAAc;AvD42WtB;;AuDt8WA;EA4FI,gBAAgB;AvD82WpB;;AuD18WA;EA8FI,iBAAiB;AvDg3WrB;;AuD52WA;EAEE,gBAAgB;AvD82WlB;;AuDh3WA;EAII,SAAS;EACT,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,qCAAqC;AvDg3WzC;;AuDz3WA;EAYI,YAAY;AvDi3WhB;;ACp4WE;EsDOF;IAeI,aAAa;EvDm3Wf;AACF;;AuDl3WA;EACE,kBAAkB;AvDq3WpB;;AC94WE;EsDwBF;IAKM,aAAa;EvDs3WjB;EuD33WF;IAOQ,sBAAsB;EvDu3W5B;AACF;;ACn5WE;EsDoBF;IASI,aAAa;IACb,uBAAuB;EvD23WzB;EuDr4WF;ItDsDI,oBsD1CwC;EvD43W1C;AACF;;AuDz3WA;;EAEE,YAAY;EACZ,cAAc;AvD43WhB;;AuD13WA;EACE,YAAY;EACZ,cAAc;EACd,oBApJ6B;AvDihX/B;;ACz6WE;EsDyCF;IAKI,kBArJgC;EvDqhXlC;AACF;;AwDlhXA;EACE,oBAN2B;AxD2hX7B;;ACv6WE;EuD/GF;IAII,kBAR+B;ExD+hXjC;EwD3hXF;IAOM,oBAV8B;ExDiiXlC;EwD9hXF;IASM,mBAX4B;ExDmiXhC;AACF;;AyDniXA;EACE,yB1DO4B;E0DN5B,yBAJ+B;AzD0iXjC","file":"bulma.css"} \ No newline at end of file diff --git a/node_modules/bulma/css/bulma.min.css b/node_modules/bulma/css/bulma.min.css new file mode 100644 index 0000000..86ad2ff --- /dev/null +++ b/node_modules/bulma/css/bulma.min.css @@ -0,0 +1 @@ +/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .button,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .input,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-previous,fieldset[disabled] .select select,fieldset[disabled] .textarea{cursor:not-allowed}.breadcrumb,.button,.file,.is-unselectable,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#485fc7;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #485fc7}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #485fc7}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#485fc7;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:0 0;border-color:transparent;color:#485fc7;text-decoration:none}.button.is-ghost.is-hovered,.button.is-ghost:hover{color:#485fc7;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-hovered,.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined.is-focused,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined.is-loading.is-focused::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined.is-focused,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-hovered,.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined.is-focused,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined.is-loading.is-focused::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined.is-focused,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-hovered,.button.is-light.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined.is-focused,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined.is-loading.is-focused::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-light.is-inverted.is-outlined.is-focused,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-dark{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#fff}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],fieldset[disabled] .button.is-dark{background-color:#363636;border-color:#363636;box-shadow:none}.button.is-dark.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-hovered,.button.is-dark.is-inverted:hover{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined.is-focused,.button.is-dark.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined.is-loading.is-focused::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined.is-focused,.button.is-dark.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#00d1b2;border-color:#00d1b2;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-hovered,.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined.is-focused,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined.is-loading.is-focused::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined.is-focused,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light.is-hovered,.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-link{background-color:#485fc7;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#3e56c4;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#3a51bb;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#485fc7;border-color:#485fc7;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-hovered,.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#485fc7}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;color:#485fc7}.button.is-link.is-outlined.is-focused,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#485fc7;border-color:#485fc7;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-outlined.is-loading.is-focused::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;box-shadow:none;color:#485fc7}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined.is-focused,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff1fa;color:#3850b7}.button.is-link.is-light.is-hovered,.button.is-link.is-light:hover{background-color:#e6e9f7;border-color:transparent;color:#3850b7}.button.is-link.is-light.is-active,.button.is-link.is-light:active{background-color:#dce0f4;border-color:transparent;color:#3850b7}.button.is-info{background-color:#3e8ed0;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#3488ce;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#3082c5;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3e8ed0;border-color:#3e8ed0;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-hovered,.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3e8ed0}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;color:#3e8ed0}.button.is-info.is-outlined.is-focused,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-outlined.is-loading.is-focused::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;box-shadow:none;color:#3e8ed0}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined.is-focused,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#eff5fb;color:#296fa8}.button.is-info.is-light.is-hovered,.button.is-info.is-light:hover{background-color:#e4eff9;border-color:transparent;color:#296fa8}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#dae9f6;border-color:transparent;color:#296fa8}.button.is-success{background-color:#48c78e;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#3ec487;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb81;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#48c78e;border-color:#48c78e;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-hovered,.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c78e}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;color:#48c78e}.button.is-success.is-outlined.is-focused,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#48c78e;border-color:#48c78e;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-outlined.is-loading.is-focused::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;box-shadow:none;color:#48c78e}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined.is-focused,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#effaf5;color:#257953}.button.is-success.is-light.is-hovered,.button.is-success.is-light:hover{background-color:#e6f7ef;border-color:transparent;color:#257953}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e9;border-color:transparent;color:#257953}.button.is-warning{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffe08a;border-color:#ffe08a;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-hovered,.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffe08a}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;color:#ffe08a}.button.is-warning.is-outlined.is-focused,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-outlined.is-loading.is-focused::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;box-shadow:none;color:#ffe08a}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined.is-focused,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-warning.is-light{background-color:#fffaeb;color:#946c00}.button.is-warning.is-light.is-hovered,.button.is-warning.is-light:hover{background-color:#fff6de;border-color:transparent;color:#946c00}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff3d1;border-color:transparent;color:#946c00}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#f14668;border-color:#f14668;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-hovered,.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.button.is-danger.is-outlined.is-focused,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-outlined.is-loading.is-focused::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined.is-focused,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light.is-hovered,.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{font-size:.75rem}.button.is-small:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * .5));top:calc(50% - (1em * .5));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:9999px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}@media screen and (max-width:768px){.button.is-responsive.is-small{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.button.is-responsive.is-small{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (max-width:1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol:not([type]).is-lower-alpha{list-style-type:lower-alpha}.content ol:not([type]).is-lower-roman{list-style-type:lower-roman}.content ol:not([type]).is-upper-alpha{list-style-type:upper-alpha}.content ol:not([type]).is-upper-roman{list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:9999px}.image.is-fullwidth{width:100%}.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{right:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-dark{background-color:#363636;color:#fff}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-link{background-color:#485fc7;color:#fff}.notification.is-link.is-light{background-color:#eff1fa;color:#3850b7}.notification.is-info{background-color:#3e8ed0;color:#fff}.notification.is-info.is-light{background-color:#eff5fb;color:#296fa8}.notification.is-success{background-color:#48c78e;color:#fff}.notification.is-success.is-light{background-color:#effaf5;color:#257953}.notification.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffaeb;color:#946c00}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#485fc7}.progress.is-link::-moz-progress-bar{background-color:#485fc7}.progress.is-link::-ms-fill{background-color:#485fc7}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#485fc7 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#3e8ed0}.progress.is-info::-moz-progress-bar{background-color:#3e8ed0}.progress.is-info::-ms-fill{background-color:#3e8ed0}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#3e8ed0 30%,#ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#48c78e}.progress.is-success::-moz-progress-bar{background-color:#48c78e}.progress.is-success::-ms-fill{background-color:#48c78e}.progress.is-success:indeterminate{background-image:linear-gradient(to right,#48c78e 30%,#ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffe08a}.progress.is-warning::-moz-progress-bar{background-color:#ffe08a}.progress.is-warning::-ms-fill{background-color:#ffe08a}.progress.is-warning:indeterminate{background-image:linear-gradient(to right,#ffe08a 30%,#ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#485fc7;border-color:#485fc7;color:#fff}.table td.is-info,.table th.is-info{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c78e;border-color:#48c78e;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#363636}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot{background-color:transparent}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(2n){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(2n){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-dark{background-color:#363636;color:#fff}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-link{background-color:#485fc7;color:#fff}.tag:not(body).is-link.is-light{background-color:#eff1fa;color:#3850b7}.tag:not(body).is-info{background-color:#3e8ed0;color:#fff}.tag:not(body).is-info.is-light{background-color:#eff5fb;color:#296fa8}.tag:not(body).is-success{background-color:#48c78e;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf5;color:#257953}.tag:not(body).is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffaeb;color:#946c00}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-normal{font-size:.75rem}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:9999px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.is-hovered.input,.is-hovered.textarea,.select select.is-hovered,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.is-focused.input,.is-focused.textarea,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.input[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .input,fieldset[disabled] .select select,fieldset[disabled] .textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.input[readonly],.textarea[readonly]{box-shadow:none}.is-white.input,.is-white.textarea{border-color:#fff}.is-white.input:active,.is-white.input:focus,.is-white.is-active.input,.is-white.is-active.textarea,.is-white.is-focused.input,.is-white.is-focused.textarea,.is-white.textarea:active,.is-white.textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.is-black.input,.is-black.textarea{border-color:#0a0a0a}.is-black.input:active,.is-black.input:focus,.is-black.is-active.input,.is-black.is-active.textarea,.is-black.is-focused.input,.is-black.is-focused.textarea,.is-black.textarea:active,.is-black.textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.is-focused.input,.is-light.is-focused.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.is-dark.input,.is-dark.textarea{border-color:#363636}.is-dark.input:active,.is-dark.input:focus,.is-dark.is-active.input,.is-dark.is-active.textarea,.is-dark.is-focused.input,.is-dark.is-focused.textarea,.is-dark.textarea:active,.is-dark.textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-link.input,.is-link.textarea{border-color:#485fc7}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.is-info.input,.is-info.textarea{border-color:#3e8ed0}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.is-success.input,.is-success.textarea{border-color:#48c78e}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.is-focused.input,.is-success.is-focused.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffe08a}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.is-focused.input,.is-warning.is-focused.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.is-focused.input,.is-danger.is-focused.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:9999px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox input[disabled],.checkbox[disabled],.radio input[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .radio{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#485fc7;right:1.125em;z-index:4}.select.is-rounded select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#485fc7}.select.is-link select{border-color:#485fc7}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#3a51bb}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.select.is-info:not(:hover)::after{border-color:#3e8ed0}.select.is-info select{border-color:#3e8ed0}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#3082c5}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.select.is-success:not(:hover)::after{border-color:#48c78e}.select.is-success select{border-color:#48c78e}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#3abb81}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.select.is-warning:not(:hover)::after{border-color:#ffe08a}.select.is-warning select{border-color:#ffe08a}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd970}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.select.is-danger:not(:hover)::after{border-color:#f14668}.select.is-danger select{border-color:#f14668}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a!important;opacity:.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#485fc7;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#3e56c4;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,95,199,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#3a51bb;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#3e8ed0;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#3488ce;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(62,142,208,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#3082c5;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#48c78e;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#3ec487;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,142,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#3abb81;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,224,138,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#f14668;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#485fc7}.help.is-info{color:#3e8ed0}.help.is-success{color:#48c78e}.help.is-warning{color:#ffe08a}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]).is-hovered,.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]).is-hovered,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]).is-hovered,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]).is-focused,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]).is-focused,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]).is-focused,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]).is-focused:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]).is-focused:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]).is-focused:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#485fc7;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;position:relative}.card-content:first-child,.card-footer:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-content:last-child,.card-footer:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:transparent;padding:1.5rem}.card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#485fc7;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#485fc7;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body{border-color:#363636}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-link{background-color:#eff1fa}.message.is-link .message-header{background-color:#485fc7;color:#fff}.message.is-link .message-body{border-color:#485fc7;color:#3850b7}.message.is-info{background-color:#eff5fb}.message.is-info .message-header{background-color:#3e8ed0;color:#fff}.message.is-info .message-body{border-color:#3e8ed0;color:#296fa8}.message.is-success{background-color:#effaf5}.message.is-success .message-header{background-color:#48c78e;color:#fff}.message.is-success .message-body{border-color:#48c78e;color:#257953}.message.is-warning{background-color:#fffaeb}.message.is-warning .message-header{background-color:#ffe08a;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffe08a;color:#946c00}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-dark{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#fff}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#fff}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#485fc7;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#485fc7;color:#fff}}.navbar.is-info{background-color:#3e8ed0;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3e8ed0;color:#fff}}.navbar.is-success{background-color:#48c78e;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c78e;color:#fff}}.navbar.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffe08a;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:first-child{top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:first-child{transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#485fc7}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#485fc7}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#485fc7;border-bottom-style:solid;border-bottom-width:3px;color:#485fc7;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#485fc7;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#485fc7}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link.is-disabled,.pagination-link[disabled],.pagination-next.is-disabled,.pagination-next[disabled],.pagination-previous.is-disabled,.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#485fc7;border-color:#485fc7;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading{background-color:#00d1b2;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#00d1b2}.panel.is-primary .panel-block.is-active .panel-icon{color:#00d1b2}.panel.is-link .panel-heading{background-color:#485fc7;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#485fc7}.panel.is-link .panel-block.is-active .panel-icon{color:#485fc7}.panel.is-info .panel-heading{background-color:#3e8ed0;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3e8ed0}.panel.is-info .panel-block.is-active .panel-icon{color:#3e8ed0}.panel.is-success .panel-heading{background-color:#48c78e;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#48c78e}.panel.is-success .panel-block.is-active .panel-icon{color:#48c78e}.panel.is-warning .panel-heading{background-color:#ffe08a;color:rgba(0,0,0,.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffe08a}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffe08a}.panel.is-danger .panel-heading{background-color:#f14668;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f14668}.panel.is-danger .panel-block.is-active .panel-icon{color:#f14668}.panel-block:not(:last-child),.panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#485fc7}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#485fc7;color:#363636}.panel-block.is-active .panel-icon{color:#485fc7}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#485fc7;color:#485fc7}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#485fc7;border-color:#485fc7;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1023px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1024px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1024px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}@media screen and (max-width:768px){.columns.is-variable.is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.columns.is-variable.is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.columns.is-variable.is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.columns.is-variable.is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.columns.is-variable.is-0-fullhd{--columnGap:0rem}}.columns.is-variable.is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.columns.is-variable.is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-1-fullhd{--columnGap:0.25rem}}.columns.is-variable.is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.columns.is-variable.is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-2-fullhd{--columnGap:0.5rem}}.columns.is-variable.is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.columns.is-variable.is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-3-fullhd{--columnGap:0.75rem}}.columns.is-variable.is-4{--columnGap:1rem}@media screen and (max-width:768px){.columns.is-variable.is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.columns.is-variable.is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.columns.is-variable.is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.columns.is-variable.is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.columns.is-variable.is-4-fullhd{--columnGap:1rem}}.columns.is-variable.is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.columns.is-variable.is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-5-fullhd{--columnGap:1.25rem}}.columns.is-variable.is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.columns.is-variable.is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-6-fullhd{--columnGap:1.5rem}}.columns.is-variable.is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.columns.is-variable.is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-7-fullhd{--columnGap:1.75rem}}.columns.is-variable.is-8{--columnGap:2rem}@media screen and (max-width:768px){.columns.is-variable.is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.columns.is-variable.is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.columns.is-variable.is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.columns.is-variable.is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.columns.is-variable.is-8-fullhd{--columnGap:2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-primary-light{color:#ebfffc!important}a.has-text-primary-light:focus,a.has-text-primary-light:hover{color:#b8fff4!important}.has-background-primary-light{background-color:#ebfffc!important}.has-text-primary-dark{color:#00947e!important}a.has-text-primary-dark:focus,a.has-text-primary-dark:hover{color:#00c7a9!important}.has-background-primary-dark{background-color:#00947e!important}.has-text-link{color:#485fc7!important}a.has-text-link:focus,a.has-text-link:hover{color:#3449a8!important}.has-background-link{background-color:#485fc7!important}.has-text-link-light{color:#eff1fa!important}a.has-text-link-light:focus,a.has-text-link-light:hover{color:#c8cfee!important}.has-background-link-light{background-color:#eff1fa!important}.has-text-link-dark{color:#3850b7!important}a.has-text-link-dark:focus,a.has-text-link-dark:hover{color:#576dcb!important}.has-background-link-dark{background-color:#3850b7!important}.has-text-info{color:#3e8ed0!important}a.has-text-info:focus,a.has-text-info:hover{color:#2b74b1!important}.has-background-info{background-color:#3e8ed0!important}.has-text-info-light{color:#eff5fb!important}a.has-text-info-light:focus,a.has-text-info-light:hover{color:#c6ddf1!important}.has-background-info-light{background-color:#eff5fb!important}.has-text-info-dark{color:#296fa8!important}a.has-text-info-dark:focus,a.has-text-info-dark:hover{color:#368ace!important}.has-background-info-dark{background-color:#296fa8!important}.has-text-success{color:#48c78e!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a873!important}.has-background-success{background-color:#48c78e!important}.has-text-success-light{color:#effaf5!important}a.has-text-success-light:focus,a.has-text-success-light:hover{color:#c8eedd!important}.has-background-success-light{background-color:#effaf5!important}.has-text-success-dark{color:#257953!important}a.has-text-success-dark:focus,a.has-text-success-dark:hover{color:#31a06e!important}.has-background-success-dark{background-color:#257953!important}.has-text-warning{color:#ffe08a!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd257!important}.has-background-warning{background-color:#ffe08a!important}.has-text-warning-light{color:#fffaeb!important}a.has-text-warning-light:focus,a.has-text-warning-light:hover{color:#ffecb8!important}.has-background-warning-light{background-color:#fffaeb!important}.has-text-warning-dark{color:#946c00!important}a.has-text-warning-dark:focus,a.has-text-warning-dark:hover{color:#c79200!important}.has-background-warning-dark{background-color:#946c00!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-danger{background-color:#f14668!important}.has-text-danger-light{color:#feecf0!important}a.has-text-danger-light:focus,a.has-text-danger-light:hover{color:#fabdc9!important}.has-background-danger-light{background-color:#feecf0!important}.has-text-danger-dark{color:#cc0f35!important}a.has-text-danger-dark:focus,a.has-text-danger-dark:hover{color:#ee2049!important}.has-background-danger-dark{background-color:#cc0f35!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.is-flex-direction-row{flex-direction:row!important}.is-flex-direction-row-reverse{flex-direction:row-reverse!important}.is-flex-direction-column{flex-direction:column!important}.is-flex-direction-column-reverse{flex-direction:column-reverse!important}.is-flex-wrap-nowrap{flex-wrap:nowrap!important}.is-flex-wrap-wrap{flex-wrap:wrap!important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.is-justify-content-flex-start{justify-content:flex-start!important}.is-justify-content-flex-end{justify-content:flex-end!important}.is-justify-content-center{justify-content:center!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-space-around{justify-content:space-around!important}.is-justify-content-space-evenly{justify-content:space-evenly!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-end{justify-content:end!important}.is-justify-content-left{justify-content:left!important}.is-justify-content-right{justify-content:right!important}.is-align-content-flex-start{align-content:flex-start!important}.is-align-content-flex-end{align-content:flex-end!important}.is-align-content-center{align-content:center!important}.is-align-content-space-between{align-content:space-between!important}.is-align-content-space-around{align-content:space-around!important}.is-align-content-space-evenly{align-content:space-evenly!important}.is-align-content-stretch{align-content:stretch!important}.is-align-content-start{align-content:start!important}.is-align-content-end{align-content:end!important}.is-align-content-baseline{align-content:baseline!important}.is-align-items-stretch{align-items:stretch!important}.is-align-items-flex-start{align-items:flex-start!important}.is-align-items-flex-end{align-items:flex-end!important}.is-align-items-center{align-items:center!important}.is-align-items-baseline{align-items:baseline!important}.is-align-items-start{align-items:start!important}.is-align-items-end{align-items:end!important}.is-align-items-self-start{align-items:self-start!important}.is-align-items-self-end{align-items:self-end!important}.is-align-self-auto{align-self:auto!important}.is-align-self-flex-start{align-self:flex-start!important}.is-align-self-flex-end{align-self:flex-end!important}.is-align-self-center{align-self:center!important}.is-align-self-baseline{align-self:baseline!important}.is-align-self-stretch{align-self:stretch!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-grow-2{flex-grow:2!important}.is-flex-grow-3{flex-grow:3!important}.is-flex-grow-4{flex-grow:4!important}.is-flex-grow-5{flex-grow:5!important}.is-flex-shrink-0{flex-shrink:0!important}.is-flex-shrink-1{flex-shrink:1!important}.is-flex-shrink-2{flex-shrink:2!important}.is-flex-shrink-3{flex-shrink:3!important}.is-flex-shrink-4{flex-shrink:4!important}.is-flex-shrink-5{flex-shrink:5!important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.is-clickable{cursor:pointer!important;pointer-events:all!important}.is-clipped{overflow:hidden!important}.is-relative{position:relative!important}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3{margin-left:.75rem!important}.mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.m-4{margin:1rem!important}.mt-4{margin-top:1rem!important}.mr-4{margin-right:1rem!important}.mb-4{margin-bottom:1rem!important}.ml-4{margin-left:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5{margin-left:1.5rem!important}.mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-6{margin:3rem!important}.mt-6{margin-top:3rem!important}.mr-6{margin-right:3rem!important}.mb-6{margin-bottom:3rem!important}.ml-6{margin-left:3rem!important}.mx-6{margin-left:3rem!important;margin-right:3rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.m-auto{margin:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:.75rem!important}.pt-3{padding-top:.75rem!important}.pr-3{padding-right:.75rem!important}.pb-3{padding-bottom:.75rem!important}.pl-3{padding-left:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.p-4{padding:1rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.p-5{padding:1.5rem!important}.pt-5{padding-top:1.5rem!important}.pr-5{padding-right:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.pl-5{padding-left:1.5rem!important}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-6{padding:3rem!important}.pt-6{padding-top:3rem!important}.pr-6{padding-right:3rem!important}.pb-6{padding-bottom:3rem!important}.pl-6{padding-left:3rem!important}.px-6{padding-left:3rem!important;padding-right:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.p-auto{padding:auto!important}.pt-auto{padding-top:auto!important}.pr-auto{padding-right:auto!important}.pb-auto{padding-bottom:auto!important}.pl-auto{padding-left:auto!important}.px-auto{padding-left:auto!important;padding-right:auto!important}.py-auto{padding-top:auto!important;padding-bottom:auto!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.is-underlined{text-decoration:underline!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-medium{font-weight:500!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-monospace{font-family:monospace!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.is-block-touch{display:block!important}}@media screen and (min-width:1024px){.is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}.is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.is-invisible-fullhd{visibility:hidden!important}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff!important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a!important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,.7)}.hero.is-light .subtitle{color:rgba(0,0,0,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.hero.is-light .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5!important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#fff}.hero.is-dark .subtitle{color:rgba(255,255,255,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(255,255,255,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#fff}.hero.is-dark .tabs a{color:#fff;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{color:#363636!important;opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{color:#00d1b2!important;opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#485fc7;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#485fc7}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#3a51bb;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#485fc7!important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#485fc7}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}}.hero.is-info{background-color:#3e8ed0;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#3e8ed0}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#3082c5;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#3e8ed0!important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3e8ed0}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}}.hero.is-success{background-color:#48c78e;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-success .navbar-menu{background-color:#48c78e}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#3abb81;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#48c78e!important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#48c78e}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}}.hero.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-warning .navbar-menu{background-color:#ffe08a}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffe08a!important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffe08a}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}}.hero.is-danger{background-color:#f14668;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-danger .navbar-menu{background-color:#f14668}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ef2e55;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#f14668!important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.hero.is-small .hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width:769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem} \ No newline at end of file diff --git a/node_modules/bulma/package.json b/node_modules/bulma/package.json new file mode 100644 index 0000000..31681e6 --- /dev/null +++ b/node_modules/bulma/package.json @@ -0,0 +1,56 @@ +{ + "name": "bulma", + "version": "0.9.4", + "homepage": "https://bulma.io", + "author": { + "name": "Jeremy Thomas", + "email": "bbxdesign@gmail.com", + "url": "https://jgthms.com" + }, + "description": "Modern CSS framework based on Flexbox", + "main": "bulma.sass", + "unpkg": "css/bulma.css", + "style": "bulma/css/bulma.min.css", + "repository": { + "type": "git", + "url": "git+https://github.com/jgthms/bulma.git" + }, + "license": "MIT", + "keywords": [ + "css", + "sass", + "flexbox", + "responsive", + "framework" + ], + "bugs": { + "url": "https://github.com/jgthms/bulma/issues" + }, + "devDependencies": { + "autoprefixer": "^10.4.7", + "clean-css-cli": "^5.6.0", + "node-sass": "^7.0.1", + "postcss-cli": "^9.1.0", + "rimraf": "^3.0.2" + }, + "scripts": { + "build": "npm run build-sass && npm run build-autoprefix && npm run build-cleancss", + "build-autoprefix": "postcss --use autoprefixer --map false --output css/bulma.css css/bulma.css", + "build-cleancss": "cleancss -o css/bulma.min.css css/bulma.css", + "build-sass": "node-sass --output-style expanded --source-map true bulma.sass css/bulma.css", + "clean": "rimraf css", + "rtl": "npm run rtl-sass && npm run rtl-autoprefix && npm run rtl-cleancss", + "rtl-sass": "node-sass --output-style expanded --source-map true bulma-rtl.sass css/bulma-rtl.css", + "rtl-autoprefix": "postcss --use autoprefixer --map false --output css/bulma-rtl.css css/bulma-rtl.css", + "rtl-cleancss": "cleancss -o css/bulma-rtl.min.css css/bulma-rtl.css", + "deploy": "npm run clean && npm run build && npm run rtl", + "start": "npm run build-sass -- --watch" + }, + "files": [ + "css", + "sass", + "bulma.sass", + "LICENSE", + "README.md" + ] +} diff --git a/node_modules/bulma/sass/base/_all.sass b/node_modules/bulma/sass/base/_all.sass new file mode 100644 index 0000000..a5ae0a7 --- /dev/null +++ b/node_modules/bulma/sass/base/_all.sass @@ -0,0 +1,6 @@ +/* Bulma Base */ +@charset "utf-8" + +@import "minireset" +@import "generic" +@import "animations" diff --git a/node_modules/bulma/sass/base/animations.sass b/node_modules/bulma/sass/base/animations.sass new file mode 100644 index 0000000..a14525d --- /dev/null +++ b/node_modules/bulma/sass/base/animations.sass @@ -0,0 +1,5 @@ +@keyframes spinAround + from + transform: rotate(0deg) + to + transform: rotate(359deg) diff --git a/node_modules/bulma/sass/base/generic.sass b/node_modules/bulma/sass/base/generic.sass new file mode 100644 index 0000000..42c736a --- /dev/null +++ b/node_modules/bulma/sass/base/generic.sass @@ -0,0 +1,145 @@ +@import "../utilities/mixins" + +$body-background-color: $scheme-main !default +$body-size: 16px !default +$body-min-width: 300px !default +$body-rendering: optimizeLegibility !default +$body-family: $family-primary !default +$body-overflow-x: hidden !default +$body-overflow-y: scroll !default + +$body-color: $text !default +$body-font-size: 1em !default +$body-weight: $weight-normal !default +$body-line-height: 1.5 !default + +$code-family: $family-code !default +$code-padding: 0.25em 0.5em 0.25em !default +$code-weight: normal !default +$code-size: 0.875em !default + +$small-font-size: 0.875em !default + +$hr-background-color: $background !default +$hr-height: 2px !default +$hr-margin: 1.5rem 0 !default + +$strong-color: $text-strong !default +$strong-weight: $weight-bold !default + +$pre-font-size: 0.875em !default +$pre-padding: 1.25rem 1.5rem !default +$pre-code-font-size: 1em !default + +html + background-color: $body-background-color + font-size: $body-size + -moz-osx-font-smoothing: grayscale + -webkit-font-smoothing: antialiased + min-width: $body-min-width + overflow-x: $body-overflow-x + overflow-y: $body-overflow-y + text-rendering: $body-rendering + text-size-adjust: 100% + +article, +aside, +figure, +footer, +header, +hgroup, +section + display: block + +body, +button, +input, +optgroup, +select, +textarea + font-family: $body-family + +code, +pre + -moz-osx-font-smoothing: auto + -webkit-font-smoothing: auto + font-family: $code-family + +body + color: $body-color + font-size: $body-font-size + font-weight: $body-weight + line-height: $body-line-height + +// Inline + +a + color: $link + cursor: pointer + text-decoration: none + strong + color: currentColor + &:hover + color: $link-hover + +code + background-color: $code-background + color: $code + font-size: $code-size + font-weight: $code-weight + padding: $code-padding + +hr + background-color: $hr-background-color + border: none + display: block + height: $hr-height + margin: $hr-margin + +img + height: auto + max-width: 100% + +input[type="checkbox"], +input[type="radio"] + vertical-align: baseline + +small + font-size: $small-font-size + +span + font-style: inherit + font-weight: inherit + +strong + color: $strong-color + font-weight: $strong-weight + +// Block + +fieldset + border: none + +pre + +overflow-touch + background-color: $pre-background + color: $pre + font-size: $pre-font-size + overflow-x: auto + padding: $pre-padding + white-space: pre + word-wrap: normal + code + background-color: transparent + color: currentColor + font-size: $pre-code-font-size + padding: 0 + +table + td, + th + vertical-align: top + &:not([align]) + text-align: inherit + th + color: $text-strong diff --git a/node_modules/bulma/sass/base/helpers.sass b/node_modules/bulma/sass/base/helpers.sass new file mode 100644 index 0000000..e356830 --- /dev/null +++ b/node_modules/bulma/sass/base/helpers.sass @@ -0,0 +1 @@ +@warn "The helpers.sass file is DEPRECATED. It has moved into its own /helpers folder. Please import sass/helpers/_all instead." diff --git a/node_modules/bulma/sass/base/minireset.sass b/node_modules/bulma/sass/base/minireset.sass new file mode 100644 index 0000000..aa2b6f3 --- /dev/null +++ b/node_modules/bulma/sass/base/minireset.sass @@ -0,0 +1,79 @@ +/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */ +// Blocks +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 + margin: 0 + padding: 0 + +// Headings +h1, +h2, +h3, +h4, +h5, +h6 + font-size: 100% + font-weight: normal + +// List +ul + list-style: none + +// Form +button, +input, +select, +textarea + margin: 0 + +// Box sizing +html + box-sizing: border-box + +* + &, + &::before, + &::after + box-sizing: inherit + +// Media +img, +video + height: auto + max-width: 100% + +// Iframe +iframe + border: 0 + +// Table +table + border-collapse: collapse + border-spacing: 0 + +td, +th + padding: 0 + &:not([align]) + text-align: inherit diff --git a/node_modules/bulma/sass/components/_all.sass b/node_modules/bulma/sass/components/_all.sass new file mode 100644 index 0000000..a7062ec --- /dev/null +++ b/node_modules/bulma/sass/components/_all.sass @@ -0,0 +1,15 @@ +/* Bulma Components */ +@charset "utf-8" + +@import "breadcrumb" +@import "card" +@import "dropdown" +@import "level" +@import "media" +@import "menu" +@import "message" +@import "modal" +@import "navbar" +@import "pagination" +@import "panel" +@import "tabs" diff --git a/node_modules/bulma/sass/components/breadcrumb.sass b/node_modules/bulma/sass/components/breadcrumb.sass new file mode 100644 index 0000000..60bb17b --- /dev/null +++ b/node_modules/bulma/sass/components/breadcrumb.sass @@ -0,0 +1,77 @@ +@import "../utilities/mixins" + +$breadcrumb-item-color: $link !default +$breadcrumb-item-hover-color: $link-hover !default +$breadcrumb-item-active-color: $text-strong !default + +$breadcrumb-item-padding-vertical: 0 !default +$breadcrumb-item-padding-horizontal: 0.75em !default + +$breadcrumb-item-separator-color: $border-hover !default + +.breadcrumb + @extend %block + @extend %unselectable + font-size: $size-normal + white-space: nowrap + a + align-items: center + color: $breadcrumb-item-color + display: flex + justify-content: center + padding: $breadcrumb-item-padding-vertical $breadcrumb-item-padding-horizontal + &:hover + color: $breadcrumb-item-hover-color + li + align-items: center + display: flex + &:first-child a + +ltr-property("padding", 0, false) + &.is-active + a + color: $breadcrumb-item-active-color + cursor: default + pointer-events: none + & + li::before + color: $breadcrumb-item-separator-color + content: "\0002f" + ul, + ol + align-items: flex-start + display: flex + flex-wrap: wrap + justify-content: flex-start + .icon + &:first-child + +ltr-property("margin", 0.5em) + &:last-child + +ltr-property("margin", 0.5em, false) + // Alignment + &.is-centered + ol, + ul + justify-content: center + &.is-right + ol, + ul + justify-content: flex-end + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + // Styles + &.has-arrow-separator + li + li::before + content: "\02192" + &.has-bullet-separator + li + li::before + content: "\02022" + &.has-dot-separator + li + li::before + content: "\000b7" + &.has-succeeds-separator + li + li::before + content: "\0227B" diff --git a/node_modules/bulma/sass/components/card.sass b/node_modules/bulma/sass/components/card.sass new file mode 100644 index 0000000..73387f3 --- /dev/null +++ b/node_modules/bulma/sass/components/card.sass @@ -0,0 +1,103 @@ +@import "../utilities/mixins" + +$card-color: $text !default +$card-background-color: $scheme-main !default +$card-shadow: $shadow !default +$card-radius: 0.25rem !default + +$card-header-background-color: transparent !default +$card-header-color: $text-strong !default +$card-header-padding: 0.75rem 1rem !default +$card-header-shadow: 0 0.125em 0.25em rgba($scheme-invert, 0.1) !default +$card-header-weight: $weight-bold !default + +$card-content-background-color: transparent !default +$card-content-padding: 1.5rem !default + +$card-footer-background-color: transparent !default +$card-footer-border-top: 1px solid $border-light !default +$card-footer-padding: 0.75rem !default + +$card-media-margin: $block-spacing !default + +.card + background-color: $card-background-color + border-radius: $card-radius + box-shadow: $card-shadow + color: $card-color + max-width: 100% + position: relative + +%card-item + &:first-child + border-top-left-radius: $card-radius + border-top-right-radius: $card-radius + &:last-child + border-bottom-left-radius: $card-radius + border-bottom-right-radius: $card-radius + +.card-header + @extend %card-item + background-color: $card-header-background-color + align-items: stretch + box-shadow: $card-header-shadow + display: flex + +.card-header-title + align-items: center + color: $card-header-color + display: flex + flex-grow: 1 + font-weight: $card-header-weight + padding: $card-header-padding + &.is-centered + justify-content: center + +.card-header-icon + +reset + align-items: center + cursor: pointer + display: flex + justify-content: center + padding: $card-header-padding + +.card-image + display: block + position: relative + &:first-child + img + border-top-left-radius: $card-radius + border-top-right-radius: $card-radius + &:last-child + img + border-bottom-left-radius: $card-radius + border-bottom-right-radius: $card-radius + +.card-content + @extend %card-item + background-color: $card-content-background-color + padding: $card-content-padding + +.card-footer + @extend %card-item + background-color: $card-footer-background-color + border-top: $card-footer-border-top + align-items: stretch + display: flex + +.card-footer-item + align-items: center + display: flex + flex-basis: 0 + flex-grow: 1 + flex-shrink: 0 + justify-content: center + padding: $card-footer-padding + &:not(:last-child) + +ltr-property("border", $card-footer-border-top) + +// Combinations + +.card + .media:not(:last-child) + margin-bottom: $card-media-margin diff --git a/node_modules/bulma/sass/components/dropdown.sass b/node_modules/bulma/sass/components/dropdown.sass new file mode 100644 index 0000000..3743cb7 --- /dev/null +++ b/node_modules/bulma/sass/components/dropdown.sass @@ -0,0 +1,83 @@ +@import "../utilities/mixins" + +$dropdown-menu-min-width: 12rem !default + +$dropdown-content-background-color: $scheme-main !default +$dropdown-content-arrow: $link !default +$dropdown-content-offset: 4px !default +$dropdown-content-padding-bottom: 0.5rem !default +$dropdown-content-padding-top: 0.5rem !default +$dropdown-content-radius: $radius !default +$dropdown-content-shadow: $shadow !default +$dropdown-content-z: 20 !default + +$dropdown-item-color: $text !default +$dropdown-item-hover-color: $scheme-invert !default +$dropdown-item-hover-background-color: $background !default +$dropdown-item-active-color: $link-invert !default +$dropdown-item-active-background-color: $link !default + +$dropdown-divider-background-color: $border-light !default + +.dropdown + display: inline-flex + position: relative + vertical-align: top + &.is-active, + &.is-hoverable:hover + .dropdown-menu + display: block + &.is-right + .dropdown-menu + left: auto + right: 0 + &.is-up + .dropdown-menu + bottom: 100% + padding-bottom: $dropdown-content-offset + padding-top: initial + top: auto + +.dropdown-menu + display: none + +ltr-position(0, false) + min-width: $dropdown-menu-min-width + padding-top: $dropdown-content-offset + position: absolute + top: 100% + z-index: $dropdown-content-z + +.dropdown-content + background-color: $dropdown-content-background-color + border-radius: $dropdown-content-radius + box-shadow: $dropdown-content-shadow + padding-bottom: $dropdown-content-padding-bottom + padding-top: $dropdown-content-padding-top + +.dropdown-item + color: $dropdown-item-color + display: block + font-size: 0.875rem + line-height: 1.5 + padding: 0.375rem 1rem + position: relative + +a.dropdown-item, +button.dropdown-item + +ltr-property("padding", 3rem) + text-align: inherit + white-space: nowrap + width: 100% + &:hover + background-color: $dropdown-item-hover-background-color + color: $dropdown-item-hover-color + &.is-active + background-color: $dropdown-item-active-background-color + color: $dropdown-item-active-color + +.dropdown-divider + background-color: $dropdown-divider-background-color + border: none + display: block + height: 1px + margin: 0.5rem 0 diff --git a/node_modules/bulma/sass/components/level.sass b/node_modules/bulma/sass/components/level.sass new file mode 100644 index 0000000..6793ae0 --- /dev/null +++ b/node_modules/bulma/sass/components/level.sass @@ -0,0 +1,79 @@ +@import "../utilities/mixins" + +$level-item-spacing: ($block-spacing * 0.5) !default + +.level + @extend %block + align-items: center + justify-content: space-between + code + border-radius: $radius + img + display: inline-block + vertical-align: top + // Modifiers + &.is-mobile + display: flex + .level-left, + .level-right + display: flex + .level-left + .level-right + margin-top: 0 + .level-item + &:not(:last-child) + margin-bottom: 0 + +ltr-property("margin", $level-item-spacing) + &:not(.is-narrow) + flex-grow: 1 + // Responsiveness + +tablet + display: flex + & > .level-item + &:not(.is-narrow) + flex-grow: 1 + +.level-item + align-items: center + display: flex + flex-basis: auto + flex-grow: 0 + flex-shrink: 0 + justify-content: center + .title, + .subtitle + margin-bottom: 0 + // Responsiveness + +mobile + &:not(:last-child) + margin-bottom: $level-item-spacing + +.level-left, +.level-right + flex-basis: auto + flex-grow: 0 + flex-shrink: 0 + .level-item + // Modifiers + &.is-flexible + flex-grow: 1 + // Responsiveness + +tablet + &:not(:last-child) + +ltr-property("margin", $level-item-spacing) + +.level-left + align-items: center + justify-content: flex-start + // Responsiveness + +mobile + & + .level-right + margin-top: 1.5rem + +tablet + display: flex + +.level-right + align-items: center + justify-content: flex-end + // Responsiveness + +tablet + display: flex diff --git a/node_modules/bulma/sass/components/media.sass b/node_modules/bulma/sass/components/media.sass new file mode 100644 index 0000000..fc3f7d1 --- /dev/null +++ b/node_modules/bulma/sass/components/media.sass @@ -0,0 +1,59 @@ +@import "../utilities/mixins" + +$media-border-color: bulmaRgba($border, 0.5) !default +$media-border-size: 1px !default +$media-spacing: 1rem !default +$media-spacing-large: 1.5rem !default +$media-content-spacing: 0.75rem !default +$media-level-1-spacing: 0.75rem !default +$media-level-1-content-spacing: 0.5rem !default +$media-level-2-spacing: 0.5rem !default + +.media + align-items: flex-start + display: flex + text-align: inherit + .content:not(:last-child) + margin-bottom: $media-content-spacing + .media + border-top: $media-border-size solid $media-border-color + display: flex + padding-top: $media-level-1-spacing + .content:not(:last-child), + .control:not(:last-child) + margin-bottom: $media-level-1-content-spacing + .media + padding-top: $media-level-2-spacing + & + .media + margin-top: $media-level-2-spacing + & + .media + border-top: $media-border-size solid $media-border-color + margin-top: $media-spacing + padding-top: $media-spacing + // Sizes + &.is-large + & + .media + margin-top: $media-spacing-large + padding-top: $media-spacing-large + +.media-left, +.media-right + flex-basis: auto + flex-grow: 0 + flex-shrink: 0 + +.media-left + +ltr-property("margin", $media-spacing) + +.media-right + +ltr-property("margin", $media-spacing, false) + +.media-content + flex-basis: auto + flex-grow: 1 + flex-shrink: 1 + text-align: inherit + ++mobile + .media-content + overflow-x: auto diff --git a/node_modules/bulma/sass/components/menu.sass b/node_modules/bulma/sass/components/menu.sass new file mode 100644 index 0000000..31dc56f --- /dev/null +++ b/node_modules/bulma/sass/components/menu.sass @@ -0,0 +1,59 @@ +@import "../utilities/mixins" + +$menu-item-color: $text !default +$menu-item-radius: $radius-small !default +$menu-item-hover-color: $text-strong !default +$menu-item-hover-background-color: $background !default +$menu-item-active-color: $link-invert !default +$menu-item-active-background-color: $link !default + +$menu-list-border-left: 1px solid $border !default +$menu-list-line-height: 1.25 !default +$menu-list-link-padding: 0.5em 0.75em !default +$menu-nested-list-margin: 0.75em !default +$menu-nested-list-padding-left: 0.75em !default + +$menu-label-color: $text-light !default +$menu-label-font-size: 0.75em !default +$menu-label-letter-spacing: 0.1em !default +$menu-label-spacing: 1em !default + +.menu + font-size: $size-normal + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + +.menu-list + line-height: $menu-list-line-height + a + border-radius: $menu-item-radius + color: $menu-item-color + display: block + padding: $menu-list-link-padding + &:hover + background-color: $menu-item-hover-background-color + color: $menu-item-hover-color + // Modifiers + &.is-active + background-color: $menu-item-active-background-color + color: $menu-item-active-color + li + ul + +ltr-property("border", $menu-list-border-left, false) + margin: $menu-nested-list-margin + +ltr-property("padding", $menu-nested-list-padding-left, false) + +.menu-label + color: $menu-label-color + font-size: $menu-label-font-size + letter-spacing: $menu-label-letter-spacing + text-transform: uppercase + &:not(:first-child) + margin-top: $menu-label-spacing + &:not(:last-child) + margin-bottom: $menu-label-spacing diff --git a/node_modules/bulma/sass/components/message.sass b/node_modules/bulma/sass/components/message.sass new file mode 100644 index 0000000..ab83780 --- /dev/null +++ b/node_modules/bulma/sass/components/message.sass @@ -0,0 +1,101 @@ +@import "../utilities/mixins" + +$message-background-color: $background !default +$message-radius: $radius !default + +$message-header-background-color: $text !default +$message-header-color: $text-invert !default +$message-header-weight: $weight-bold !default +$message-header-padding: 0.75em 1em !default +$message-header-radius: $radius !default + +$message-body-border-color: $border !default +$message-body-border-width: 0 0 0 4px !default +$message-body-color: $text !default +$message-body-padding: 1.25em 1.5em !default +$message-body-radius: $radius !default + +$message-body-pre-background-color: $scheme-main !default +$message-body-pre-code-background-color: transparent !default + +$message-header-body-border-width: 0 !default +$message-colors: $colors !default + +.message + @extend %block + background-color: $message-background-color + border-radius: $message-radius + font-size: $size-normal + strong + color: currentColor + a:not(.button):not(.tag):not(.dropdown-item) + color: currentColor + text-decoration: underline + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + // Colors + @each $name, $components in $message-colors + $color: nth($components, 1) + $color-invert: nth($components, 2) + $color-light: null + $color-dark: null + + @if length($components) >= 3 + $color-light: nth($components, 3) + @if length($components) >= 4 + $color-dark: nth($components, 4) + @else + $color-luminance: colorLuminance($color) + $darken-percentage: $color-luminance * 70% + $desaturate-percentage: $color-luminance * 30% + $color-dark: desaturate(darken($color, $darken-percentage), $desaturate-percentage) + @else + $color-lightning: max((100% - lightness($color)) - 2%, 0%) + $color-light: lighten($color, $color-lightning) + + &.is-#{$name} + background-color: $color-light + .message-header + background-color: $color + color: $color-invert + .message-body + border-color: $color + color: $color-dark + +.message-header + align-items: center + background-color: $message-header-background-color + border-radius: $message-header-radius $message-header-radius 0 0 + color: $message-header-color + display: flex + font-weight: $message-header-weight + justify-content: space-between + line-height: 1.25 + padding: $message-header-padding + position: relative + .delete + flex-grow: 0 + flex-shrink: 0 + +ltr-property("margin", 0.75em, false) + & + .message-body + border-width: $message-header-body-border-width + border-top-left-radius: 0 + border-top-right-radius: 0 + +.message-body + border-color: $message-body-border-color + border-radius: $message-body-radius + border-style: solid + border-width: $message-body-border-width + color: $message-body-color + padding: $message-body-padding + code, + pre + background-color: $message-body-pre-background-color + pre code + background-color: $message-body-pre-code-background-color diff --git a/node_modules/bulma/sass/components/modal.sass b/node_modules/bulma/sass/components/modal.sass new file mode 100644 index 0000000..fdbddd6 --- /dev/null +++ b/node_modules/bulma/sass/components/modal.sass @@ -0,0 +1,117 @@ +@import "../utilities/mixins" + +$modal-z: 40 !default + +$modal-background-background-color: bulmaRgba($scheme-invert, 0.86) !default + +$modal-content-width: 640px !default +$modal-content-margin-mobile: 20px !default +$modal-content-spacing-mobile: 160px !default +$modal-content-spacing-tablet: 40px !default + +$modal-close-dimensions: 40px !default +$modal-close-right: 20px !default +$modal-close-top: 20px !default + +$modal-card-spacing: 40px !default + +$modal-card-head-background-color: $background !default +$modal-card-head-border-bottom: 1px solid $border !default +$modal-card-head-padding: 20px !default +$modal-card-head-radius: $radius-large !default + +$modal-card-title-color: $text-strong !default +$modal-card-title-line-height: 1 !default +$modal-card-title-size: $size-4 !default + +$modal-card-foot-radius: $radius-large !default +$modal-card-foot-border-top: 1px solid $border !default + +$modal-card-body-background-color: $scheme-main !default +$modal-card-body-padding: 20px !default + +$modal-breakpoint: $tablet !default + +.modal + @extend %overlay + align-items: center + display: none + flex-direction: column + justify-content: center + overflow: hidden + position: fixed + z-index: $modal-z + // Modifiers + &.is-active + display: flex + +.modal-background + @extend %overlay + background-color: $modal-background-background-color + +.modal-content, +.modal-card + margin: 0 $modal-content-margin-mobile + max-height: calc(100vh - #{$modal-content-spacing-mobile}) + overflow: auto + position: relative + width: 100% + // Responsiveness + +from($modal-breakpoint) + margin: 0 auto + max-height: calc(100vh - #{$modal-content-spacing-tablet}) + width: $modal-content-width + +.modal-close + @extend %delete + background: none + height: $modal-close-dimensions + position: fixed + +ltr-position($modal-close-right) + top: $modal-close-top + width: $modal-close-dimensions + +.modal-card + display: flex + flex-direction: column + max-height: calc(100vh - #{$modal-card-spacing}) + overflow: hidden + -ms-overflow-y: visible + +.modal-card-head, +.modal-card-foot + align-items: center + background-color: $modal-card-head-background-color + display: flex + flex-shrink: 0 + justify-content: flex-start + padding: $modal-card-head-padding + position: relative + +.modal-card-head + border-bottom: $modal-card-head-border-bottom + border-top-left-radius: $modal-card-head-radius + border-top-right-radius: $modal-card-head-radius + +.modal-card-title + color: $modal-card-title-color + flex-grow: 1 + flex-shrink: 0 + font-size: $modal-card-title-size + line-height: $modal-card-title-line-height + +.modal-card-foot + border-bottom-left-radius: $modal-card-foot-radius + border-bottom-right-radius: $modal-card-foot-radius + border-top: $modal-card-foot-border-top + .button + &:not(:last-child) + +ltr-property("margin", 0.5em) + +.modal-card-body + +overflow-touch + background-color: $modal-card-body-background-color + flex-grow: 1 + flex-shrink: 1 + overflow: auto + padding: $modal-card-body-padding diff --git a/node_modules/bulma/sass/components/navbar.sass b/node_modules/bulma/sass/components/navbar.sass new file mode 100644 index 0000000..f64c488 --- /dev/null +++ b/node_modules/bulma/sass/components/navbar.sass @@ -0,0 +1,446 @@ +@import "../utilities/mixins" + +$navbar-background-color: $scheme-main !default +$navbar-box-shadow-size: 0 2px 0 0 !default +$navbar-box-shadow-color: $background !default +$navbar-height: 3.25rem !default +$navbar-padding-vertical: 1rem !default +$navbar-padding-horizontal: 2rem !default +$navbar-z: 30 !default +$navbar-fixed-z: 30 !default + +$navbar-item-color: $text !default +$navbar-item-hover-color: $link !default +$navbar-item-hover-background-color: $scheme-main-bis !default +$navbar-item-active-color: $scheme-invert !default +$navbar-item-active-background-color: transparent !default +$navbar-item-img-max-height: 1.75rem !default + +$navbar-burger-color: $navbar-item-color !default + +$navbar-tab-hover-background-color: transparent !default +$navbar-tab-hover-border-bottom-color: $link !default +$navbar-tab-active-color: $link !default +$navbar-tab-active-background-color: transparent !default +$navbar-tab-active-border-bottom-color: $link !default +$navbar-tab-active-border-bottom-style: solid !default +$navbar-tab-active-border-bottom-width: 3px !default + +$navbar-dropdown-background-color: $scheme-main !default +$navbar-dropdown-border-top: 2px solid $border !default +$navbar-dropdown-offset: -4px !default +$navbar-dropdown-arrow: $link !default +$navbar-dropdown-radius: $radius-large !default +$navbar-dropdown-z: 20 !default + +$navbar-dropdown-boxed-radius: $radius-large !default +$navbar-dropdown-boxed-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1), 0 0 0 1px bulmaRgba($scheme-invert, 0.1) !default + +$navbar-dropdown-item-hover-color: $scheme-invert !default +$navbar-dropdown-item-hover-background-color: $background !default +$navbar-dropdown-item-active-color: $link !default +$navbar-dropdown-item-active-background-color: $background !default + +$navbar-divider-background-color: $background !default +$navbar-divider-height: 2px !default + +$navbar-bottom-box-shadow-size: 0 -2px 0 0 !default + +$navbar-breakpoint: $desktop !default + +$navbar-colors: $colors !default + +=navbar-fixed + left: 0 + position: fixed + right: 0 + z-index: $navbar-fixed-z + +.navbar + background-color: $navbar-background-color + min-height: $navbar-height + position: relative + z-index: $navbar-z + @each $name, $pair in $navbar-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + .navbar-brand + & > .navbar-item, + .navbar-link + color: $color-invert + & > a.navbar-item, + .navbar-link + &:focus, + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .navbar-link + &::after + border-color: $color-invert + .navbar-burger + color: $color-invert + +from($navbar-breakpoint) + .navbar-start, + .navbar-end + & > .navbar-item, + .navbar-link + color: $color-invert + & > a.navbar-item, + .navbar-link + &:focus, + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .navbar-link + &::after + border-color: $color-invert + .navbar-item.has-dropdown:focus .navbar-link, + .navbar-item.has-dropdown:hover .navbar-link, + .navbar-item.has-dropdown.is-active .navbar-link + background-color: bulmaDarken($color, 5%) + color: $color-invert + .navbar-dropdown + a.navbar-item + &.is-active + background-color: $color + color: $color-invert + & > .container + align-items: stretch + display: flex + min-height: $navbar-height + width: 100% + &.has-shadow + box-shadow: $navbar-box-shadow-size $navbar-box-shadow-color + &.is-fixed-bottom, + &.is-fixed-top + +navbar-fixed + &.is-fixed-bottom + bottom: 0 + &.has-shadow + box-shadow: $navbar-bottom-box-shadow-size $navbar-box-shadow-color + &.is-fixed-top + top: 0 + +html, +body + &.has-navbar-fixed-top + padding-top: $navbar-height + &.has-navbar-fixed-bottom + padding-bottom: $navbar-height + +.navbar-brand, +.navbar-tabs + align-items: stretch + display: flex + flex-shrink: 0 + min-height: $navbar-height + +.navbar-brand + a.navbar-item + &:focus, + &:hover + background-color: transparent + +.navbar-tabs + +overflow-touch + max-width: 100vw + overflow-x: auto + overflow-y: hidden + +.navbar-burger + @extend %reset + color: $navbar-burger-color + +hamburger($navbar-height) + +ltr-property("margin", auto, false) + +.navbar-menu + display: none + +.navbar-item, +.navbar-link + color: $navbar-item-color + display: block + line-height: 1.5 + padding: 0.5rem 0.75rem + position: relative + .icon + &:only-child + margin-left: -0.25rem + margin-right: -0.25rem + +a.navbar-item, +.navbar-link + cursor: pointer + &:focus, + &:focus-within, + &:hover, + &.is-active + background-color: $navbar-item-hover-background-color + color: $navbar-item-hover-color + +.navbar-item + flex-grow: 0 + flex-shrink: 0 + img + max-height: $navbar-item-img-max-height + &.has-dropdown + padding: 0 + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-tab + border-bottom: 1px solid transparent + min-height: $navbar-height + padding-bottom: calc(0.5rem - 1px) + &:focus, + &:hover + background-color: $navbar-tab-hover-background-color + border-bottom-color: $navbar-tab-hover-border-bottom-color + &.is-active + background-color: $navbar-tab-active-background-color + border-bottom-color: $navbar-tab-active-border-bottom-color + border-bottom-style: $navbar-tab-active-border-bottom-style + border-bottom-width: $navbar-tab-active-border-bottom-width + color: $navbar-tab-active-color + padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width}) + +.navbar-content + flex-grow: 1 + flex-shrink: 1 + +.navbar-link:not(.is-arrowless) + +ltr-property("padding", 2.5em) + &::after + @extend %arrow + border-color: $navbar-dropdown-arrow + margin-top: -0.375em + +ltr-position(1.125em) + +.navbar-dropdown + font-size: 0.875rem + padding-bottom: 0.5rem + padding-top: 0.5rem + .navbar-item + padding-left: 1.5rem + padding-right: 1.5rem + +.navbar-divider + background-color: $navbar-divider-background-color + border: none + display: none + height: $navbar-divider-height + margin: 0.5rem 0 + ++until($navbar-breakpoint) + .navbar > .container + display: block + .navbar-brand, + .navbar-tabs + .navbar-item + align-items: center + display: flex + .navbar-link + &::after + display: none + .navbar-menu + background-color: $navbar-background-color + box-shadow: 0 8px 16px bulmaRgba($scheme-invert, 0.1) + padding: 0.5rem 0 + &.is-active + display: block + // Fixed navbar + .navbar + &.is-fixed-bottom-touch, + &.is-fixed-top-touch + +navbar-fixed + &.is-fixed-bottom-touch + bottom: 0 + &.has-shadow + box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1) + &.is-fixed-top-touch + top: 0 + &.is-fixed-top, + &.is-fixed-top-touch + .navbar-menu + +overflow-touch + max-height: calc(100vh - #{$navbar-height}) + overflow: auto + html, + body + &.has-navbar-fixed-top-touch + padding-top: $navbar-height + &.has-navbar-fixed-bottom-touch + padding-bottom: $navbar-height + ++from($navbar-breakpoint) + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end + align-items: stretch + display: flex + .navbar + min-height: $navbar-height + &.is-spaced + padding: $navbar-padding-vertical $navbar-padding-horizontal + .navbar-start, + .navbar-end + align-items: center + a.navbar-item, + .navbar-link + border-radius: $radius + &.is-transparent + a.navbar-item, + .navbar-link + &:focus, + &:hover, + &.is-active + background-color: transparent !important + .navbar-item.has-dropdown + &.is-active, + &.is-hoverable:focus, + &.is-hoverable:focus-within, + &.is-hoverable:hover + .navbar-link + background-color: transparent !important + .navbar-dropdown + a.navbar-item + &:focus, + &:hover + background-color: $navbar-dropdown-item-hover-background-color + color: $navbar-dropdown-item-hover-color + &.is-active + background-color: $navbar-dropdown-item-active-background-color + color: $navbar-dropdown-item-active-color + .navbar-burger + display: none + .navbar-item, + .navbar-link + align-items: center + display: flex + .navbar-item + &.has-dropdown + align-items: stretch + &.has-dropdown-up + .navbar-link::after + transform: rotate(135deg) translate(0.25em, -0.25em) + .navbar-dropdown + border-bottom: $navbar-dropdown-border-top + border-radius: $navbar-dropdown-radius $navbar-dropdown-radius 0 0 + border-top: none + bottom: 100% + box-shadow: 0 -8px 8px bulmaRgba($scheme-invert, 0.1) + top: auto + &.is-active, + &.is-hoverable:focus, + &.is-hoverable:focus-within, + &.is-hoverable:hover + .navbar-dropdown + display: block + .navbar.is-spaced &, + &.is-boxed + opacity: 1 + pointer-events: auto + transform: translateY(0) + .navbar-menu + flex-grow: 1 + flex-shrink: 0 + .navbar-start + justify-content: flex-start + +ltr-property("margin", auto) + .navbar-end + justify-content: flex-end + +ltr-property("margin", auto, false) + .navbar-dropdown + background-color: $navbar-dropdown-background-color + border-bottom-left-radius: $navbar-dropdown-radius + border-bottom-right-radius: $navbar-dropdown-radius + border-top: $navbar-dropdown-border-top + box-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1) + display: none + font-size: 0.875rem + +ltr-position(0, false) + min-width: 100% + position: absolute + top: 100% + z-index: $navbar-dropdown-z + .navbar-item + padding: 0.375rem 1rem + white-space: nowrap + a.navbar-item + +ltr-property("padding", 3rem) + &:focus, + &:hover + background-color: $navbar-dropdown-item-hover-background-color + color: $navbar-dropdown-item-hover-color + &.is-active + background-color: $navbar-dropdown-item-active-background-color + color: $navbar-dropdown-item-active-color + .navbar.is-spaced &, + &.is-boxed + border-radius: $navbar-dropdown-boxed-radius + border-top: none + box-shadow: $navbar-dropdown-boxed-shadow + display: block + opacity: 0 + pointer-events: none + top: calc(100% + (#{$navbar-dropdown-offset})) + transform: translateY(-5px) + transition-duration: $speed + transition-property: opacity, transform + &.is-right + left: auto + right: 0 + .navbar-divider + display: block + .navbar > .container, + .container > .navbar + .navbar-brand + +ltr-property("margin", -.75rem, false) + .navbar-menu + +ltr-property("margin", -.75rem) + // Fixed navbar + .navbar + &.is-fixed-bottom-desktop, + &.is-fixed-top-desktop + +navbar-fixed + &.is-fixed-bottom-desktop + bottom: 0 + &.has-shadow + box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1) + &.is-fixed-top-desktop + top: 0 + html, + body + &.has-navbar-fixed-top-desktop + padding-top: $navbar-height + &.has-navbar-fixed-bottom-desktop + padding-bottom: $navbar-height + &.has-spaced-navbar-fixed-top + padding-top: $navbar-height + ($navbar-padding-vertical * 2) + &.has-spaced-navbar-fixed-bottom + padding-bottom: $navbar-height + ($navbar-padding-vertical * 2) + // Hover/Active states + a.navbar-item, + .navbar-link + &.is-active + color: $navbar-item-active-color + &.is-active:not(:focus):not(:hover) + background-color: $navbar-item-active-background-color + .navbar-item.has-dropdown + &:focus, + &:hover, + &.is-active + .navbar-link + background-color: $navbar-item-hover-background-color + +// Combination + +.hero + &.is-fullheight-with-navbar + min-height: calc(100vh - #{$navbar-height}) diff --git a/node_modules/bulma/sass/components/pagination.sass b/node_modules/bulma/sass/components/pagination.sass new file mode 100644 index 0000000..950949d --- /dev/null +++ b/node_modules/bulma/sass/components/pagination.sass @@ -0,0 +1,167 @@ +@import "../utilities/controls" +@import "../utilities/mixins" + +$pagination-color: $text-strong !default +$pagination-border-color: $border !default +$pagination-margin: -0.25rem !default +$pagination-min-width: $control-height !default + +$pagination-item-font-size: 1em !default +$pagination-item-margin: 0.25rem !default +$pagination-item-padding-left: 0.5em !default +$pagination-item-padding-right: 0.5em !default + +$pagination-nav-padding-left: 0.75em !default +$pagination-nav-padding-right: 0.75em !default + +$pagination-hover-color: $link-hover !default +$pagination-hover-border-color: $link-hover-border !default + +$pagination-focus-color: $link-focus !default +$pagination-focus-border-color: $link-focus-border !default + +$pagination-active-color: $link-active !default +$pagination-active-border-color: $link-active-border !default + +$pagination-disabled-color: $text-light !default +$pagination-disabled-background-color: $border !default +$pagination-disabled-border-color: $border !default + +$pagination-current-color: $link-invert !default +$pagination-current-background-color: $link !default +$pagination-current-border-color: $link !default + +$pagination-ellipsis-color: $grey-light !default + +$pagination-shadow-inset: inset 0 1px 2px rgba($scheme-invert, 0.2) !default + +.pagination + @extend %block + font-size: $size-normal + margin: $pagination-margin + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + &.is-rounded + .pagination-previous, + .pagination-next + padding-left: 1em + padding-right: 1em + border-radius: $radius-rounded + .pagination-link + border-radius: $radius-rounded + +.pagination, +.pagination-list + align-items: center + display: flex + justify-content: center + text-align: center + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis + @extend %control + @extend %unselectable + font-size: $pagination-item-font-size + justify-content: center + margin: $pagination-item-margin + padding-left: $pagination-item-padding-left + padding-right: $pagination-item-padding-right + text-align: center + +.pagination-previous, +.pagination-next, +.pagination-link + border-color: $pagination-border-color + color: $pagination-color + min-width: $pagination-min-width + &:hover + border-color: $pagination-hover-border-color + color: $pagination-hover-color + &:focus + border-color: $pagination-focus-border-color + &:active + box-shadow: $pagination-shadow-inset + &[disabled], + &.is-disabled + background-color: $pagination-disabled-background-color + border-color: $pagination-disabled-border-color + box-shadow: none + color: $pagination-disabled-color + opacity: 0.5 + +.pagination-previous, +.pagination-next + padding-left: $pagination-nav-padding-left + padding-right: $pagination-nav-padding-right + white-space: nowrap + +.pagination-link + &.is-current + background-color: $pagination-current-background-color + border-color: $pagination-current-border-color + color: $pagination-current-color + +.pagination-ellipsis + color: $pagination-ellipsis-color + pointer-events: none + +.pagination-list + flex-wrap: wrap + li + list-style: none + ++mobile + .pagination + flex-wrap: wrap + .pagination-previous, + .pagination-next + flex-grow: 1 + flex-shrink: 1 + .pagination-list + li + flex-grow: 1 + flex-shrink: 1 + ++tablet + .pagination-list + flex-grow: 1 + flex-shrink: 1 + justify-content: flex-start + order: 1 + .pagination-previous, + .pagination-next, + .pagination-link, + .pagination-ellipsis + margin-bottom: 0 + margin-top: 0 + .pagination-previous + order: 2 + .pagination-next + order: 3 + .pagination + justify-content: space-between + margin-bottom: 0 + margin-top: 0 + &.is-centered + .pagination-previous + order: 1 + .pagination-list + justify-content: center + order: 2 + .pagination-next + order: 3 + &.is-right + .pagination-previous + order: 1 + .pagination-next + order: 2 + .pagination-list + justify-content: flex-end + order: 3 diff --git a/node_modules/bulma/sass/components/panel.sass b/node_modules/bulma/sass/components/panel.sass new file mode 100644 index 0000000..afaffcd --- /dev/null +++ b/node_modules/bulma/sass/components/panel.sass @@ -0,0 +1,121 @@ +@import "../utilities/mixins" + +$panel-margin: $block-spacing !default +$panel-item-border: 1px solid $border-light !default +$panel-radius: $radius-large !default +$panel-shadow: $shadow !default + +$panel-heading-background-color: $border-light !default +$panel-heading-color: $text-strong !default +$panel-heading-line-height: 1.25 !default +$panel-heading-padding: 0.75em 1em !default +$panel-heading-radius: $radius !default +$panel-heading-size: 1.25em !default +$panel-heading-weight: $weight-bold !default + +$panel-tabs-font-size: 0.875em !default +$panel-tab-border-bottom: 1px solid $border !default +$panel-tab-active-border-bottom-color: $link-active-border !default +$panel-tab-active-color: $link-active !default + +$panel-list-item-color: $text !default +$panel-list-item-hover-color: $link !default + +$panel-block-color: $text-strong !default +$panel-block-hover-background-color: $background !default +$panel-block-active-border-left-color: $link !default +$panel-block-active-color: $link-active !default +$panel-block-active-icon-color: $link !default + +$panel-icon-color: $text-light !default +$panel-colors: $colors !default + +.panel + border-radius: $panel-radius + box-shadow: $panel-shadow + font-size: $size-normal + &:not(:last-child) + margin-bottom: $panel-margin + // Colors + @each $name, $components in $panel-colors + $color: nth($components, 1) + $color-invert: nth($components, 2) + &.is-#{$name} + .panel-heading + background-color: $color + color: $color-invert + .panel-tabs a.is-active + border-bottom-color: $color + .panel-block.is-active .panel-icon + color: $color + +.panel-tabs, +.panel-block + &:not(:last-child) + border-bottom: $panel-item-border + +.panel-heading + background-color: $panel-heading-background-color + border-radius: $panel-radius $panel-radius 0 0 + color: $panel-heading-color + font-size: $panel-heading-size + font-weight: $panel-heading-weight + line-height: $panel-heading-line-height + padding: $panel-heading-padding + +.panel-tabs + align-items: flex-end + display: flex + font-size: $panel-tabs-font-size + justify-content: center + a + border-bottom: $panel-tab-border-bottom + margin-bottom: -1px + padding: 0.5em + // Modifiers + &.is-active + border-bottom-color: $panel-tab-active-border-bottom-color + color: $panel-tab-active-color + +.panel-list + a + color: $panel-list-item-color + &:hover + color: $panel-list-item-hover-color + +.panel-block + align-items: center + color: $panel-block-color + display: flex + justify-content: flex-start + padding: 0.5em 0.75em + input[type="checkbox"] + +ltr-property("margin", 0.75em) + & > .control + flex-grow: 1 + flex-shrink: 1 + width: 100% + &.is-wrapped + flex-wrap: wrap + &.is-active + border-left-color: $panel-block-active-border-left-color + color: $panel-block-active-color + .panel-icon + color: $panel-block-active-icon-color + &:last-child + border-bottom-left-radius: $panel-radius + border-bottom-right-radius: $panel-radius + +a.panel-block, +label.panel-block + cursor: pointer + &:hover + background-color: $panel-block-hover-background-color + +.panel-icon + +fa(14px, 1em) + color: $panel-icon-color + +ltr-property("margin", 0.75em) + .fa + font-size: inherit + line-height: inherit diff --git a/node_modules/bulma/sass/components/tabs.sass b/node_modules/bulma/sass/components/tabs.sass new file mode 100644 index 0000000..2cb6a54 --- /dev/null +++ b/node_modules/bulma/sass/components/tabs.sass @@ -0,0 +1,176 @@ +@import "../utilities/mixins" + +$tabs-border-bottom-color: $border !default +$tabs-border-bottom-style: solid !default +$tabs-border-bottom-width: 1px !default +$tabs-link-color: $text !default +$tabs-link-hover-border-bottom-color: $text-strong !default +$tabs-link-hover-color: $text-strong !default +$tabs-link-active-border-bottom-color: $link !default +$tabs-link-active-color: $link !default +$tabs-link-padding: 0.5em 1em !default + +$tabs-boxed-link-radius: $radius !default +$tabs-boxed-link-hover-background-color: $background !default +$tabs-boxed-link-hover-border-bottom-color: $border !default + +$tabs-boxed-link-active-background-color: $scheme-main !default +$tabs-boxed-link-active-border-color: $border !default +$tabs-boxed-link-active-border-bottom-color: transparent !default + +$tabs-toggle-link-border-color: $border !default +$tabs-toggle-link-border-style: solid !default +$tabs-toggle-link-border-width: 1px !default +$tabs-toggle-link-hover-background-color: $background !default +$tabs-toggle-link-hover-border-color: $border-hover !default +$tabs-toggle-link-radius: $radius !default +$tabs-toggle-link-active-background-color: $link !default +$tabs-toggle-link-active-border-color: $link !default +$tabs-toggle-link-active-color: $link-invert !default + +.tabs + @extend %block + +overflow-touch + @extend %unselectable + align-items: stretch + display: flex + font-size: $size-normal + justify-content: space-between + overflow: hidden + overflow-x: auto + white-space: nowrap + a + align-items: center + border-bottom-color: $tabs-border-bottom-color + border-bottom-style: $tabs-border-bottom-style + border-bottom-width: $tabs-border-bottom-width + color: $tabs-link-color + display: flex + justify-content: center + margin-bottom: -#{$tabs-border-bottom-width} + padding: $tabs-link-padding + vertical-align: top + &:hover + border-bottom-color: $tabs-link-hover-border-bottom-color + color: $tabs-link-hover-color + li + display: block + &.is-active + a + border-bottom-color: $tabs-link-active-border-bottom-color + color: $tabs-link-active-color + ul + align-items: center + border-bottom-color: $tabs-border-bottom-color + border-bottom-style: $tabs-border-bottom-style + border-bottom-width: $tabs-border-bottom-width + display: flex + flex-grow: 1 + flex-shrink: 0 + justify-content: flex-start + &.is-left + padding-right: 0.75em + &.is-center + flex: none + justify-content: center + padding-left: 0.75em + padding-right: 0.75em + &.is-right + justify-content: flex-end + padding-left: 0.75em + .icon + &:first-child + +ltr-property("margin", 0.5em) + &:last-child + +ltr-property("margin", 0.5em, false) + // Alignment + &.is-centered + ul + justify-content: center + &.is-right + ul + justify-content: flex-end + // Styles + &.is-boxed + a + border: 1px solid transparent + +ltr + border-radius: $tabs-boxed-link-radius $tabs-boxed-link-radius 0 0 + +rtl + border-radius: 0 0 $tabs-boxed-link-radius $tabs-boxed-link-radius + &:hover + background-color: $tabs-boxed-link-hover-background-color + border-bottom-color: $tabs-boxed-link-hover-border-bottom-color + li + &.is-active + a + background-color: $tabs-boxed-link-active-background-color + border-color: $tabs-boxed-link-active-border-color + border-bottom-color: $tabs-boxed-link-active-border-bottom-color !important + &.is-fullwidth + li + flex-grow: 1 + flex-shrink: 0 + &.is-toggle + a + border-color: $tabs-toggle-link-border-color + border-style: $tabs-toggle-link-border-style + border-width: $tabs-toggle-link-border-width + margin-bottom: 0 + position: relative + &:hover + background-color: $tabs-toggle-link-hover-background-color + border-color: $tabs-toggle-link-hover-border-color + z-index: 2 + li + & + li + +ltr-property("margin", -#{$tabs-toggle-link-border-width}, false) + &:first-child a + +ltr + border-top-left-radius: $tabs-toggle-link-radius + border-bottom-left-radius: $tabs-toggle-link-radius + +rtl + border-top-right-radius: $tabs-toggle-link-radius + border-bottom-right-radius: $tabs-toggle-link-radius + &:last-child a + +ltr + border-top-right-radius: $tabs-toggle-link-radius + border-bottom-right-radius: $tabs-toggle-link-radius + +rtl + border-top-left-radius: $tabs-toggle-link-radius + border-bottom-left-radius: $tabs-toggle-link-radius + &.is-active + a + background-color: $tabs-toggle-link-active-background-color + border-color: $tabs-toggle-link-active-border-color + color: $tabs-toggle-link-active-color + z-index: 1 + ul + border-bottom: none + &.is-toggle-rounded + li + &:first-child a + +ltr + border-bottom-left-radius: $radius-rounded + border-top-left-radius: $radius-rounded + padding-left: 1.25em + +rtl + border-bottom-right-radius: $radius-rounded + border-top-right-radius: $radius-rounded + padding-right: 1.25em + &:last-child a + +ltr + border-bottom-right-radius: $radius-rounded + border-top-right-radius: $radius-rounded + padding-right: 1.25em + +rtl + border-bottom-left-radius: $radius-rounded + border-top-left-radius: $radius-rounded + padding-left: 1.25em + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large diff --git a/node_modules/bulma/sass/elements/_all.sass b/node_modules/bulma/sass/elements/_all.sass new file mode 100644 index 0000000..511047a --- /dev/null +++ b/node_modules/bulma/sass/elements/_all.sass @@ -0,0 +1,16 @@ +/* Bulma Elements */ +@charset "utf-8" + +@import "box" +@import "button" +@import "container" +@import "content" +@import "icon" +@import "image" +@import "notification" +@import "progress" +@import "table" +@import "tag" +@import "title" + +@import "other" diff --git a/node_modules/bulma/sass/elements/box.sass b/node_modules/bulma/sass/elements/box.sass new file mode 100644 index 0000000..8552430 --- /dev/null +++ b/node_modules/bulma/sass/elements/box.sass @@ -0,0 +1,26 @@ +@import "../utilities/mixins" + +$box-color: $text !default +$box-background-color: $scheme-main !default +$box-radius: $radius-large !default +$box-shadow: $shadow !default +$box-padding: 1.25rem !default + +$box-link-hover-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0 0 1px $link !default +$box-link-active-shadow: inset 0 1px 2px rgba($scheme-invert, 0.2), 0 0 0 1px $link !default + +.box + @extend %block + background-color: $box-background-color + border-radius: $box-radius + box-shadow: $box-shadow + color: $box-color + display: block + padding: $box-padding + +a.box + &:hover, + &:focus + box-shadow: $box-link-hover-shadow + &:active + box-shadow: $box-link-active-shadow diff --git a/node_modules/bulma/sass/elements/button.sass b/node_modules/bulma/sass/elements/button.sass new file mode 100644 index 0000000..6308064 --- /dev/null +++ b/node_modules/bulma/sass/elements/button.sass @@ -0,0 +1,357 @@ +@import "../utilities/controls" +@import "../utilities/mixins" + +$button-color: $text-strong !default +$button-background-color: $scheme-main !default +$button-family: false !default + +$button-border-color: $border !default +$button-border-width: $control-border-width !default + +$button-padding-vertical: calc(0.5em - #{$button-border-width}) !default +$button-padding-horizontal: 1em !default + +$button-hover-color: $link-hover !default +$button-hover-border-color: $link-hover-border !default + +$button-focus-color: $link-focus !default +$button-focus-border-color: $link-focus-border !default +$button-focus-box-shadow-size: 0 0 0 0.125em !default +$button-focus-box-shadow-color: bulmaRgba($link, 0.25) !default + +$button-active-color: $link-active !default +$button-active-border-color: $link-active-border !default + +$button-text-color: $text !default +$button-text-decoration: underline !default +$button-text-hover-background-color: $background !default +$button-text-hover-color: $text-strong !default + +$button-ghost-background: none !default +$button-ghost-border-color: transparent !default +$button-ghost-color: $link !default +$button-ghost-decoration: none !default +$button-ghost-hover-color: $link !default +$button-ghost-hover-decoration: underline !default + +$button-disabled-background-color: $scheme-main !default +$button-disabled-border-color: $border !default +$button-disabled-shadow: none !default +$button-disabled-opacity: 0.5 !default + +$button-static-color: $text-light !default +$button-static-background-color: $scheme-main-ter !default +$button-static-border-color: $border !default + +$button-colors: $colors !default +$button-responsive-sizes: ("mobile": ("small": ($size-small * 0.75), "normal": ($size-small * 0.875), "medium": $size-small, "large": $size-normal), "tablet-only": ("small": ($size-small * 0.875), "normal": ($size-small), "medium": $size-normal, "large": $size-medium)) !default + +// The button sizes use mixins so they can be used at different breakpoints +=button-small + &:not(.is-rounded) + border-radius: $radius-small + font-size: $size-small +=button-normal + font-size: $size-normal +=button-medium + font-size: $size-medium +=button-large + font-size: $size-large + +.button + @extend %control + @extend %unselectable + background-color: $button-background-color + border-color: $button-border-color + border-width: $button-border-width + color: $button-color + cursor: pointer + @if $button-family + font-family: $button-family + justify-content: center + padding-bottom: $button-padding-vertical + padding-left: $button-padding-horizontal + padding-right: $button-padding-horizontal + padding-top: $button-padding-vertical + text-align: center + white-space: nowrap + strong + color: inherit + .icon + &, + &.is-small, + &.is-medium, + &.is-large + height: 1.5em + width: 1.5em + &:first-child:not(:last-child) + +ltr-property("margin", calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width}), false) + +ltr-property("margin", $button-padding-horizontal * 0.25) + &:last-child:not(:first-child) + +ltr-property("margin", $button-padding-horizontal * 0.25, false) + +ltr-property("margin", calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width})) + &:first-child:last-child + margin-left: calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width}) + margin-right: calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width}) + // States + &:hover, + &.is-hovered + border-color: $button-hover-border-color + color: $button-hover-color + &:focus, + &.is-focused + border-color: $button-focus-border-color + color: $button-focus-color + &:not(:active) + box-shadow: $button-focus-box-shadow-size $button-focus-box-shadow-color + &:active, + &.is-active + border-color: $button-active-border-color + color: $button-active-color + // Colors + &.is-text + background-color: transparent + border-color: transparent + color: $button-text-color + text-decoration: $button-text-decoration + &:hover, + &.is-hovered, + &:focus, + &.is-focused + background-color: $button-text-hover-background-color + color: $button-text-hover-color + &:active, + &.is-active + background-color: bulmaDarken($button-text-hover-background-color, 5%) + color: $button-text-hover-color + &[disabled], + fieldset[disabled] & + background-color: transparent + border-color: transparent + box-shadow: none + &.is-ghost + background: $button-ghost-background + border-color: $button-ghost-border-color + color: $button-ghost-color + text-decoration: $button-ghost-decoration + &:hover, + &.is-hovered + color: $button-ghost-hover-color + text-decoration: $button-ghost-hover-decoration + @each $name, $pair in $button-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + border-color: transparent + color: $color-invert + &:hover, + &.is-hovered + background-color: bulmaDarken($color, 2.5%) + border-color: transparent + color: $color-invert + &:focus, + &.is-focused + border-color: transparent + color: $color-invert + &:not(:active) + box-shadow: $button-focus-box-shadow-size bulmaRgba($color, 0.25) + &:active, + &.is-active + background-color: bulmaDarken($color, 5%) + border-color: transparent + color: $color-invert + &[disabled], + fieldset[disabled] & + background-color: $color + border-color: $color + box-shadow: none + &.is-inverted + background-color: $color-invert + color: $color + &:hover, + &.is-hovered + background-color: bulmaDarken($color-invert, 5%) + &[disabled], + fieldset[disabled] & + background-color: $color-invert + border-color: transparent + box-shadow: none + color: $color + &.is-loading + &::after + border-color: transparent transparent $color-invert $color-invert !important + &.is-outlined + background-color: transparent + border-color: $color + color: $color + &:hover, + &.is-hovered, + &:focus, + &.is-focused + background-color: $color + border-color: $color + color: $color-invert + &.is-loading + &::after + border-color: transparent transparent $color $color !important + &:hover, + &.is-hovered, + &:focus, + &.is-focused + &::after + border-color: transparent transparent $color-invert $color-invert !important + &[disabled], + fieldset[disabled] & + background-color: transparent + border-color: $color + box-shadow: none + color: $color + &.is-inverted.is-outlined + background-color: transparent + border-color: $color-invert + color: $color-invert + &:hover, + &.is-hovered, + &:focus, + &.is-focused + background-color: $color-invert + color: $color + &.is-loading + &:hover, + &.is-hovered, + &:focus, + &.is-focused + &::after + border-color: transparent transparent $color $color !important + &[disabled], + fieldset[disabled] & + background-color: transparent + border-color: $color-invert + box-shadow: none + color: $color-invert + // If light and dark colors are provided + @if length($pair) >= 4 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + &.is-light + background-color: $color-light + color: $color-dark + &:hover, + &.is-hovered + background-color: bulmaDarken($color-light, 2.5%) + border-color: transparent + color: $color-dark + &:active, + &.is-active + background-color: bulmaDarken($color-light, 5%) + border-color: transparent + color: $color-dark + // Sizes + &.is-small + +button-small + &.is-normal + +button-normal + &.is-medium + +button-medium + &.is-large + +button-large + // Modifiers + &[disabled], + fieldset[disabled] & + background-color: $button-disabled-background-color + border-color: $button-disabled-border-color + box-shadow: $button-disabled-shadow + opacity: $button-disabled-opacity + &.is-fullwidth + display: flex + width: 100% + &.is-loading + color: transparent !important + pointer-events: none + &::after + @extend %loader + +center(1em) + position: absolute !important + &.is-static + background-color: $button-static-background-color + border-color: $button-static-border-color + color: $button-static-color + box-shadow: none + pointer-events: none + &.is-rounded + border-radius: $radius-rounded + padding-left: calc(#{$button-padding-horizontal} + 0.25em) + padding-right: calc(#{$button-padding-horizontal} + 0.25em) + +.buttons + align-items: center + display: flex + flex-wrap: wrap + justify-content: flex-start + .button + margin-bottom: 0.5rem + &:not(:last-child):not(.is-fullwidth) + +ltr-property("margin", 0.5rem) + &:last-child + margin-bottom: -0.5rem + &:not(:last-child) + margin-bottom: 1rem + // Sizes + &.are-small + .button:not(.is-normal):not(.is-medium):not(.is-large) + +button-small + &.are-medium + .button:not(.is-small):not(.is-normal):not(.is-large) + +button-medium + &.are-large + .button:not(.is-small):not(.is-normal):not(.is-medium) + +button-large + &.has-addons + .button + &:not(:first-child) + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &:not(:last-child) + border-bottom-right-radius: 0 + border-top-right-radius: 0 + +ltr-property("margin", -1px) + &:last-child + +ltr-property("margin", 0) + &:hover, + &.is-hovered + z-index: 2 + &:focus, + &.is-focused, + &:active, + &.is-active, + &.is-selected + z-index: 3 + &:hover + z-index: 4 + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-centered + justify-content: center + &:not(.has-addons) + .button:not(.is-fullwidth) + margin-left: 0.25rem + margin-right: 0.25rem + &.is-right + justify-content: flex-end + &:not(.has-addons) + .button:not(.is-fullwidth) + margin-left: 0.25rem + margin-right: 0.25rem + +@each $bp-name, $bp-sizes in $button-responsive-sizes + +breakpoint($bp-name) + @each $size, $value in $bp-sizes + @if $size != "normal" + .button.is-responsive.is-#{$size} + font-size: $value + @else + .button.is-responsive, + .button.is-responsive.is-normal + font-size: $value diff --git a/node_modules/bulma/sass/elements/container.sass b/node_modules/bulma/sass/elements/container.sass new file mode 100644 index 0000000..c13011e --- /dev/null +++ b/node_modules/bulma/sass/elements/container.sass @@ -0,0 +1,29 @@ +@import "../utilities/mixins" + +$container-offset: (2 * $gap) !default +$container-max-width: $fullhd !default + +.container + flex-grow: 1 + margin: 0 auto + position: relative + width: auto + &.is-fluid + max-width: none !important + padding-left: $gap + padding-right: $gap + width: 100% + +desktop + max-width: $desktop - $container-offset + +until-widescreen + &.is-widescreen:not(.is-max-desktop) + max-width: min($widescreen, $container-max-width) - $container-offset + +until-fullhd + &.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) + max-width: min($fullhd, $container-max-width) - $container-offset + +widescreen + &:not(.is-max-desktop) + max-width: min($widescreen, $container-max-width) - $container-offset + +fullhd + &:not(.is-max-desktop):not(.is-max-widescreen) + max-width: min($fullhd, $container-max-width) - $container-offset diff --git a/node_modules/bulma/sass/elements/content.sass b/node_modules/bulma/sass/elements/content.sass new file mode 100644 index 0000000..3f709ad --- /dev/null +++ b/node_modules/bulma/sass/elements/content.sass @@ -0,0 +1,162 @@ +@import "../utilities/mixins" + +$content-heading-color: $text-strong !default +$content-heading-weight: $weight-semibold !default +$content-heading-line-height: 1.125 !default + +$content-block-margin-bottom: 1em !default + +$content-blockquote-background-color: $background !default +$content-blockquote-border-left: 5px solid $border !default +$content-blockquote-padding: 1.25em 1.5em !default + +$content-pre-padding: 1.25em 1.5em !default + +$content-table-cell-border: 1px solid $border !default +$content-table-cell-border-width: 0 0 1px !default +$content-table-cell-padding: 0.5em 0.75em !default +$content-table-cell-heading-color: $text-strong !default +$content-table-head-cell-border-width: 0 0 2px !default +$content-table-head-cell-color: $text-strong !default +$content-table-body-last-row-cell-border-bottom-width: 0 !default +$content-table-foot-cell-border-width: 2px 0 0 !default +$content-table-foot-cell-color: $text-strong !default + +.content + @extend %block + // Inline + li + li + margin-top: 0.25em + // Block + p, + dl, + ol, + ul, + blockquote, + pre, + table + &:not(:last-child) + margin-bottom: $content-block-margin-bottom + h1, + h2, + h3, + h4, + h5, + h6 + color: $content-heading-color + font-weight: $content-heading-weight + line-height: $content-heading-line-height + h1 + font-size: 2em + margin-bottom: 0.5em + &:not(:first-child) + margin-top: 1em + h2 + font-size: 1.75em + margin-bottom: 0.5714em + &:not(:first-child) + margin-top: 1.1428em + h3 + font-size: 1.5em + margin-bottom: 0.6666em + &:not(:first-child) + margin-top: 1.3333em + h4 + font-size: 1.25em + margin-bottom: 0.8em + h5 + font-size: 1.125em + margin-bottom: 0.8888em + h6 + font-size: 1em + margin-bottom: 1em + blockquote + background-color: $content-blockquote-background-color + +ltr-property("border", $content-blockquote-border-left, false) + padding: $content-blockquote-padding + ol + list-style-position: outside + +ltr-property("margin", 2em, false) + margin-top: 1em + &:not([type]) + list-style-type: decimal + &.is-lower-alpha + list-style-type: lower-alpha + &.is-lower-roman + list-style-type: lower-roman + &.is-upper-alpha + list-style-type: upper-alpha + &.is-upper-roman + list-style-type: upper-roman + ul + list-style: disc outside + +ltr-property("margin", 2em, false) + margin-top: 1em + ul + list-style-type: circle + margin-top: 0.5em + ul + list-style-type: square + dd + +ltr-property("margin", 2em, false) + figure + margin-left: 2em + margin-right: 2em + text-align: center + &:not(:first-child) + margin-top: 2em + &:not(:last-child) + margin-bottom: 2em + img + display: inline-block + figcaption + font-style: italic + pre + +overflow-touch + overflow-x: auto + padding: $content-pre-padding + white-space: pre + word-wrap: normal + sup, + sub + font-size: 75% + table + width: 100% + td, + th + border: $content-table-cell-border + border-width: $content-table-cell-border-width + padding: $content-table-cell-padding + vertical-align: top + th + color: $content-table-cell-heading-color + &:not([align]) + text-align: inherit + thead + td, + th + border-width: $content-table-head-cell-border-width + color: $content-table-head-cell-color + tfoot + td, + th + border-width: $content-table-foot-cell-border-width + color: $content-table-foot-cell-color + tbody + tr + &:last-child + td, + th + border-bottom-width: $content-table-body-last-row-cell-border-bottom-width + .tabs + li + li + margin-top: 0 + // Sizes + &.is-small + font-size: $size-small + &.is-normal + font-size: $size-normal + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large diff --git a/node_modules/bulma/sass/elements/form.sass b/node_modules/bulma/sass/elements/form.sass new file mode 100644 index 0000000..3122dc4 --- /dev/null +++ b/node_modules/bulma/sass/elements/form.sass @@ -0,0 +1 @@ +@warn "The form.sass file is DEPRECATED. It has moved into its own /form folder. Please import sass/form/_all instead." diff --git a/node_modules/bulma/sass/elements/icon.sass b/node_modules/bulma/sass/elements/icon.sass new file mode 100644 index 0000000..0befe2b --- /dev/null +++ b/node_modules/bulma/sass/elements/icon.sass @@ -0,0 +1,46 @@ +$icon-dimensions: 1.5rem !default +$icon-dimensions-small: 1rem !default +$icon-dimensions-medium: 2rem !default +$icon-dimensions-large: 3rem !default +$icon-text-spacing: 0.25em !default + +.icon + align-items: center + display: inline-flex + justify-content: center + height: $icon-dimensions + width: $icon-dimensions + // Sizes + &.is-small + height: $icon-dimensions-small + width: $icon-dimensions-small + &.is-medium + height: $icon-dimensions-medium + width: $icon-dimensions-medium + &.is-large + height: $icon-dimensions-large + width: $icon-dimensions-large + +.icon-text + align-items: flex-start + color: inherit + display: inline-flex + flex-wrap: wrap + line-height: $icon-dimensions + vertical-align: top + .icon + flex-grow: 0 + flex-shrink: 0 + &:not(:last-child) + +ltr + margin-right: $icon-text-spacing + +rtl + margin-left: $icon-text-spacing + &:not(:first-child) + +ltr + margin-left: $icon-text-spacing + +rtl + margin-right: $icon-text-spacing + +div.icon-text + display: flex diff --git a/node_modules/bulma/sass/elements/image.sass b/node_modules/bulma/sass/elements/image.sass new file mode 100644 index 0000000..fc46541 --- /dev/null +++ b/node_modules/bulma/sass/elements/image.sass @@ -0,0 +1,73 @@ +@import "../utilities/mixins" + +$dimensions: 16 24 32 48 64 96 128 !default + +.image + display: block + position: relative + img + display: block + height: auto + width: 100% + &.is-rounded + border-radius: $radius-rounded + &.is-fullwidth + width: 100% + // Ratio + &.is-square, + &.is-1by1, + &.is-5by4, + &.is-4by3, + &.is-3by2, + &.is-5by3, + &.is-16by9, + &.is-2by1, + &.is-3by1, + &.is-4by5, + &.is-3by4, + &.is-2by3, + &.is-3by5, + &.is-9by16, + &.is-1by2, + &.is-1by3 + img, + .has-ratio + @extend %overlay + height: 100% + width: 100% + &.is-square, + &.is-1by1 + padding-top: 100% + &.is-5by4 + padding-top: 80% + &.is-4by3 + padding-top: 75% + &.is-3by2 + padding-top: 66.6666% + &.is-5by3 + padding-top: 60% + &.is-16by9 + padding-top: 56.25% + &.is-2by1 + padding-top: 50% + &.is-3by1 + padding-top: 33.3333% + &.is-4by5 + padding-top: 125% + &.is-3by4 + padding-top: 133.3333% + &.is-2by3 + padding-top: 150% + &.is-3by5 + padding-top: 166.6666% + &.is-9by16 + padding-top: 177.7777% + &.is-1by2 + padding-top: 200% + &.is-1by3 + padding-top: 300% + // Sizes + @each $dimension in $dimensions + &.is-#{$dimension}x#{$dimension} + height: $dimension * 1px + width: $dimension * 1px diff --git a/node_modules/bulma/sass/elements/notification.sass b/node_modules/bulma/sass/elements/notification.sass new file mode 100644 index 0000000..f5c6021 --- /dev/null +++ b/node_modules/bulma/sass/elements/notification.sass @@ -0,0 +1,52 @@ +@import "../utilities/mixins" + +$notification-background-color: $background !default +$notification-code-background-color: $scheme-main !default +$notification-radius: $radius !default +$notification-padding: 1.25rem 2.5rem 1.25rem 1.5rem !default +$notification-padding-ltr: 1.25rem 2.5rem 1.25rem 1.5rem !default +$notification-padding-rtl: 1.25rem 1.5rem 1.25rem 2.5rem !default + +$notification-colors: $colors !default + +.notification + @extend %block + background-color: $notification-background-color + border-radius: $notification-radius + position: relative + +ltr + padding: $notification-padding-ltr + +rtl + padding: $notification-padding-rtl + a:not(.button):not(.dropdown-item) + color: currentColor + text-decoration: underline + strong + color: currentColor + code, + pre + background: $notification-code-background-color + pre code + background: transparent + & > .delete + +ltr-position(0.5rem) + position: absolute + top: 0.5rem + .title, + .subtitle, + .content + color: currentColor + // Colors + @each $name, $pair in $notification-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + // If light and dark colors are provided + @if length($pair) >= 4 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + &.is-light + background-color: $color-light + color: $color-dark diff --git a/node_modules/bulma/sass/elements/other.sass b/node_modules/bulma/sass/elements/other.sass new file mode 100644 index 0000000..e83f361 --- /dev/null +++ b/node_modules/bulma/sass/elements/other.sass @@ -0,0 +1,31 @@ +@import "../utilities/mixins" + +.block + @extend %block + +.delete + @extend %delete + +.heading + display: block + font-size: 11px + letter-spacing: 1px + margin-bottom: 5px + text-transform: uppercase + +.loader + @extend %loader + +.number + align-items: center + background-color: $background + border-radius: $radius-rounded + display: inline-flex + font-size: $size-medium + height: 2em + justify-content: center + margin-right: 1.5rem + min-width: 2.5em + padding: 0.25rem 0.5rem + text-align: center + vertical-align: top diff --git a/node_modules/bulma/sass/elements/progress.sass b/node_modules/bulma/sass/elements/progress.sass new file mode 100644 index 0000000..4daeb80 --- /dev/null +++ b/node_modules/bulma/sass/elements/progress.sass @@ -0,0 +1,73 @@ +@import "../utilities/mixins" + +$progress-bar-background-color: $border-light !default +$progress-value-background-color: $text !default +$progress-border-radius: $radius-rounded !default + +$progress-indeterminate-duration: 1.5s !default + +$progress-colors: $colors !default + +.progress + @extend %block + -moz-appearance: none + -webkit-appearance: none + border: none + border-radius: $progress-border-radius + display: block + height: $size-normal + overflow: hidden + padding: 0 + width: 100% + &::-webkit-progress-bar + background-color: $progress-bar-background-color + &::-webkit-progress-value + background-color: $progress-value-background-color + &::-moz-progress-bar + background-color: $progress-value-background-color + &::-ms-fill + background-color: $progress-value-background-color + border: none + // Colors + @each $name, $pair in $progress-colors + $color: nth($pair, 1) + &.is-#{$name} + &::-webkit-progress-value + background-color: $color + &::-moz-progress-bar + background-color: $color + &::-ms-fill + background-color: $color + &:indeterminate + background-image: linear-gradient(to right, $color 30%, $progress-bar-background-color 30%) + + &:indeterminate + animation-duration: $progress-indeterminate-duration + animation-iteration-count: infinite + animation-name: moveIndeterminate + animation-timing-function: linear + background-color: $progress-bar-background-color + background-image: linear-gradient(to right, $text 30%, $progress-bar-background-color 30%) + background-position: top left + background-repeat: no-repeat + background-size: 150% 150% + &::-webkit-progress-bar + background-color: transparent + &::-moz-progress-bar + background-color: transparent + &::-ms-fill + animation-name: none + + // Sizes + &.is-small + height: $size-small + &.is-medium + height: $size-medium + &.is-large + height: $size-large + +@keyframes moveIndeterminate + from + background-position: 200% 0 + to + background-position: -200% 0 diff --git a/node_modules/bulma/sass/elements/table.sass b/node_modules/bulma/sass/elements/table.sass new file mode 100644 index 0000000..f47d212 --- /dev/null +++ b/node_modules/bulma/sass/elements/table.sass @@ -0,0 +1,134 @@ +@import "../utilities/mixins" + +$table-color: $text-strong !default +$table-background-color: $scheme-main !default + +$table-cell-border: 1px solid $border !default +$table-cell-border-width: 0 0 1px !default +$table-cell-padding: 0.5em 0.75em !default +$table-cell-heading-color: $text-strong !default +$table-cell-text-align: left !default + +$table-head-cell-border-width: 0 0 2px !default +$table-head-cell-color: $text-strong !default +$table-foot-cell-border-width: 2px 0 0 !default +$table-foot-cell-color: $text-strong !default + +$table-head-background-color: transparent !default +$table-body-background-color: transparent !default +$table-foot-background-color: transparent !default + +$table-row-hover-background-color: $scheme-main-bis !default + +$table-row-active-background-color: $primary !default +$table-row-active-color: $primary-invert !default + +$table-striped-row-even-background-color: $scheme-main-bis !default +$table-striped-row-even-hover-background-color: $scheme-main-ter !default + +$table-colors: $colors !default + +.table + @extend %block + background-color: $table-background-color + color: $table-color + td, + th + border: $table-cell-border + border-width: $table-cell-border-width + padding: $table-cell-padding + vertical-align: top + // Colors + @each $name, $pair in $table-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + border-color: $color + color: $color-invert + // Modifiers + &.is-narrow + white-space: nowrap + width: 1% + &.is-selected + background-color: $table-row-active-background-color + color: $table-row-active-color + a, + strong + color: currentColor + &.is-vcentered + vertical-align: middle + th + color: $table-cell-heading-color + &:not([align]) + text-align: $table-cell-text-align + tr + &.is-selected + background-color: $table-row-active-background-color + color: $table-row-active-color + a, + strong + color: currentColor + td, + th + border-color: $table-row-active-color + color: currentColor + thead + background-color: $table-head-background-color + td, + th + border-width: $table-head-cell-border-width + color: $table-head-cell-color + tfoot + background-color: $table-foot-background-color + td, + th + border-width: $table-foot-cell-border-width + color: $table-foot-cell-color + tbody + background-color: $table-body-background-color + tr + &:last-child + td, + th + border-bottom-width: 0 + // Modifiers + &.is-bordered + td, + th + border-width: 1px + tr + &:last-child + td, + th + border-bottom-width: 1px + &.is-fullwidth + width: 100% + &.is-hoverable + tbody + tr:not(.is-selected) + &:hover + background-color: $table-row-hover-background-color + &.is-striped + tbody + tr:not(.is-selected) + &:hover + background-color: $table-row-hover-background-color + &:nth-child(even) + background-color: $table-striped-row-even-hover-background-color + &.is-narrow + td, + th + padding: 0.25em 0.5em + &.is-striped + tbody + tr:not(.is-selected) + &:nth-child(even) + background-color: $table-striped-row-even-background-color + +.table-container + @extend %block + +overflow-touch + overflow: auto + overflow-y: hidden + max-width: 100% diff --git a/node_modules/bulma/sass/elements/tag.sass b/node_modules/bulma/sass/elements/tag.sass new file mode 100644 index 0000000..392daee --- /dev/null +++ b/node_modules/bulma/sass/elements/tag.sass @@ -0,0 +1,140 @@ +@import "../utilities/mixins" + +$tag-background-color: $background !default +$tag-color: $text !default +$tag-radius: $radius !default +$tag-delete-margin: 1px !default + +$tag-colors: $colors !default + +.tags + align-items: center + display: flex + flex-wrap: wrap + justify-content: flex-start + .tag + margin-bottom: 0.5rem + &:not(:last-child) + +ltr-property("margin", 0.5rem) + &:last-child + margin-bottom: -0.5rem + &:not(:last-child) + margin-bottom: 1rem + // Sizes + &.are-medium + .tag:not(.is-normal):not(.is-large) + font-size: $size-normal + &.are-large + .tag:not(.is-normal):not(.is-medium) + font-size: $size-medium + &.is-centered + justify-content: center + .tag + margin-right: 0.25rem + margin-left: 0.25rem + &.is-right + justify-content: flex-end + .tag + &:not(:first-child) + margin-left: 0.5rem + &:not(:last-child) + margin-right: 0 + &.has-addons + .tag + +ltr-property("margin", 0) + &:not(:first-child) + +ltr-property("margin", 0, false) + +ltr + border-top-left-radius: 0 + border-bottom-left-radius: 0 + +rtl + border-top-right-radius: 0 + border-bottom-right-radius: 0 + &:not(:last-child) + +ltr + border-top-right-radius: 0 + border-bottom-right-radius: 0 + +rtl + border-top-left-radius: 0 + border-bottom-left-radius: 0 + +.tag:not(body) + align-items: center + background-color: $tag-background-color + border-radius: $tag-radius + color: $tag-color + display: inline-flex + font-size: $size-small + height: 2em + justify-content: center + line-height: 1.5 + padding-left: 0.75em + padding-right: 0.75em + white-space: nowrap + .delete + +ltr-property("margin", 0.25rem, false) + +ltr-property("margin", -0.375rem) + // Colors + @each $name, $pair in $tag-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + // If a light and dark colors are provided + @if length($pair) > 3 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + &.is-light + background-color: $color-light + color: $color-dark + // Sizes + &.is-normal + font-size: $size-small + &.is-medium + font-size: $size-normal + &.is-large + font-size: $size-medium + .icon + &:first-child:not(:last-child) + +ltr-property("margin", -0.375em, false) + +ltr-property("margin", 0.1875em) + &:last-child:not(:first-child) + +ltr-property("margin", 0.1875em, false) + +ltr-property("margin", -0.375em) + &:first-child:last-child + +ltr-property("margin", -0.375em, false) + +ltr-property("margin", -0.375em) + // Modifiers + &.is-delete + +ltr-property("margin", $tag-delete-margin, false) + padding: 0 + position: relative + width: 2em + &::before, + &::after + background-color: currentColor + content: "" + display: block + left: 50% + position: absolute + top: 50% + transform: translateX(-50%) translateY(-50%) rotate(45deg) + transform-origin: center center + &::before + height: 1px + width: 50% + &::after + height: 50% + width: 1px + &:hover, + &:focus + background-color: darken($tag-background-color, 5%) + &:active + background-color: darken($tag-background-color, 10%) + &.is-rounded + border-radius: $radius-rounded + +a.tag + &:hover + text-decoration: underline diff --git a/node_modules/bulma/sass/elements/title.sass b/node_modules/bulma/sass/elements/title.sass new file mode 100644 index 0000000..022420c --- /dev/null +++ b/node_modules/bulma/sass/elements/title.sass @@ -0,0 +1,70 @@ +@import "../utilities/mixins" + +$title-color: $text-strong !default +$title-family: false !default +$title-size: $size-3 !default +$title-weight: $weight-semibold !default +$title-line-height: 1.125 !default +$title-strong-color: inherit !default +$title-strong-weight: inherit !default +$title-sub-size: 0.75em !default +$title-sup-size: 0.75em !default + +$subtitle-color: $text !default +$subtitle-family: false !default +$subtitle-size: $size-5 !default +$subtitle-weight: $weight-normal !default +$subtitle-line-height: 1.25 !default +$subtitle-strong-color: $text-strong !default +$subtitle-strong-weight: $weight-semibold !default +$subtitle-negative-margin: -1.25rem !default + +.title, +.subtitle + @extend %block + word-break: break-word + em, + span + font-weight: inherit + sub + font-size: $title-sub-size + sup + font-size: $title-sup-size + .tag + vertical-align: middle + +.title + color: $title-color + @if $title-family + font-family: $title-family + font-size: $title-size + font-weight: $title-weight + line-height: $title-line-height + strong + color: $title-strong-color + font-weight: $title-strong-weight + &:not(.is-spaced) + .subtitle + margin-top: $subtitle-negative-margin + // Sizes + @each $size in $sizes + $i: index($sizes, $size) + &.is-#{$i} + font-size: $size + +.subtitle + color: $subtitle-color + @if $subtitle-family + font-family: $subtitle-family + font-size: $subtitle-size + font-weight: $subtitle-weight + line-height: $subtitle-line-height + strong + color: $subtitle-strong-color + font-weight: $subtitle-strong-weight + &:not(.is-spaced) + .title + margin-top: $subtitle-negative-margin + // Sizes + @each $size in $sizes + $i: index($sizes, $size) + &.is-#{$i} + font-size: $size diff --git a/node_modules/bulma/sass/form/_all.sass b/node_modules/bulma/sass/form/_all.sass new file mode 100644 index 0000000..0a15f80 --- /dev/null +++ b/node_modules/bulma/sass/form/_all.sass @@ -0,0 +1,9 @@ +/* Bulma Form */ +@charset "utf-8" + +@import "shared" +@import "input-textarea" +@import "checkbox-radio" +@import "select" +@import "file" +@import "tools" diff --git a/node_modules/bulma/sass/form/checkbox-radio.sass b/node_modules/bulma/sass/form/checkbox-radio.sass new file mode 100644 index 0000000..f033d11 --- /dev/null +++ b/node_modules/bulma/sass/form/checkbox-radio.sass @@ -0,0 +1,22 @@ +%checkbox-radio + cursor: pointer + display: inline-block + line-height: 1.25 + position: relative + input + cursor: pointer + &:hover + color: $input-hover-color + &[disabled], + fieldset[disabled] &, + input[disabled] + color: $input-disabled-color + cursor: not-allowed + +.checkbox + @extend %checkbox-radio + +.radio + @extend %checkbox-radio + & + .radio + +ltr-property("margin", 0.5em, false) diff --git a/node_modules/bulma/sass/form/file.sass b/node_modules/bulma/sass/form/file.sass new file mode 100644 index 0000000..9b84c84 --- /dev/null +++ b/node_modules/bulma/sass/form/file.sass @@ -0,0 +1,184 @@ +$file-border-color: $border !default +$file-radius: $radius !default + +$file-cta-background-color: $scheme-main-ter !default +$file-cta-color: $text !default +$file-cta-hover-color: $text-strong !default +$file-cta-active-color: $text-strong !default + +$file-name-border-color: $border !default +$file-name-border-style: solid !default +$file-name-border-width: 1px 1px 1px 0 !default +$file-name-max-width: 16em !default + +$file-colors: $form-colors !default + +.file + @extend %unselectable + align-items: stretch + display: flex + justify-content: flex-start + position: relative + // Colors + @each $name, $pair in $file-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + .file-cta + background-color: $color + border-color: transparent + color: $color-invert + &:hover, + &.is-hovered + .file-cta + background-color: bulmaDarken($color, 2.5%) + border-color: transparent + color: $color-invert + &:focus, + &.is-focused + .file-cta + border-color: transparent + box-shadow: 0 0 0.5em bulmaRgba($color, 0.25) + color: $color-invert + &:active, + &.is-active + .file-cta + background-color: bulmaDarken($color, 5%) + border-color: transparent + color: $color-invert + // Sizes + &.is-small + font-size: $size-small + &.is-normal + font-size: $size-normal + &.is-medium + font-size: $size-medium + .file-icon + .fa + font-size: 21px + &.is-large + font-size: $size-large + .file-icon + .fa + font-size: 28px + // Modifiers + &.has-name + .file-cta + border-bottom-right-radius: 0 + border-top-right-radius: 0 + .file-name + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &.is-empty + .file-cta + border-radius: $file-radius + .file-name + display: none + &.is-boxed + .file-label + flex-direction: column + .file-cta + flex-direction: column + height: auto + padding: 1em 3em + .file-name + border-width: 0 1px 1px + .file-icon + height: 1.5em + width: 1.5em + .fa + font-size: 21px + &.is-small + .file-icon .fa + font-size: 14px + &.is-medium + .file-icon .fa + font-size: 28px + &.is-large + .file-icon .fa + font-size: 35px + &.has-name + .file-cta + border-radius: $file-radius $file-radius 0 0 + .file-name + border-radius: 0 0 $file-radius $file-radius + border-width: 0 1px 1px + &.is-centered + justify-content: center + &.is-fullwidth + .file-label + width: 100% + .file-name + flex-grow: 1 + max-width: none + &.is-right + justify-content: flex-end + .file-cta + border-radius: 0 $file-radius $file-radius 0 + .file-name + border-radius: $file-radius 0 0 $file-radius + border-width: 1px 0 1px 1px + order: -1 + +.file-label + align-items: stretch + display: flex + cursor: pointer + justify-content: flex-start + overflow: hidden + position: relative + &:hover + .file-cta + background-color: bulmaDarken($file-cta-background-color, 2.5%) + color: $file-cta-hover-color + .file-name + border-color: bulmaDarken($file-name-border-color, 2.5%) + &:active + .file-cta + background-color: bulmaDarken($file-cta-background-color, 5%) + color: $file-cta-active-color + .file-name + border-color: bulmaDarken($file-name-border-color, 5%) + +.file-input + height: 100% + left: 0 + opacity: 0 + outline: none + position: absolute + top: 0 + width: 100% + +.file-cta, +.file-name + @extend %control + border-color: $file-border-color + border-radius: $file-radius + font-size: 1em + padding-left: 1em + padding-right: 1em + white-space: nowrap + +.file-cta + background-color: $file-cta-background-color + color: $file-cta-color + +.file-name + border-color: $file-name-border-color + border-style: $file-name-border-style + border-width: $file-name-border-width + display: block + max-width: $file-name-max-width + overflow: hidden + text-align: inherit + text-overflow: ellipsis + +.file-icon + align-items: center + display: flex + height: 1em + justify-content: center + +ltr-property("margin", 0.5em) + width: 1em + .fa + font-size: 14px diff --git a/node_modules/bulma/sass/form/input-textarea.sass b/node_modules/bulma/sass/form/input-textarea.sass new file mode 100644 index 0000000..8d842a0 --- /dev/null +++ b/node_modules/bulma/sass/form/input-textarea.sass @@ -0,0 +1,66 @@ +$textarea-padding: $control-padding-horizontal !default +$textarea-max-height: 40em !default +$textarea-min-height: 8em !default + +$textarea-colors: $form-colors !default + +%input-textarea + @extend %input + box-shadow: $input-shadow + max-width: 100% + width: 100% + &[readonly] + box-shadow: none + // Colors + @each $name, $pair in $textarea-colors + $color: nth($pair, 1) + &.is-#{$name} + border-color: $color + &:focus, + &.is-focused, + &:active, + &.is-active + box-shadow: $input-focus-box-shadow-size bulmaRgba($color, 0.25) + // Sizes + &.is-small + +control-small + &.is-medium + +control-medium + &.is-large + +control-large + // Modifiers + &.is-fullwidth + display: block + width: 100% + &.is-inline + display: inline + width: auto + +.input + @extend %input-textarea + &.is-rounded + border-radius: $radius-rounded + padding-left: calc(#{$control-padding-horizontal} + 0.375em) + padding-right: calc(#{$control-padding-horizontal} + 0.375em) + &.is-static + background-color: transparent + border-color: transparent + box-shadow: none + padding-left: 0 + padding-right: 0 + +.textarea + @extend %input-textarea + display: block + max-width: 100% + min-width: 100% + padding: $textarea-padding + resize: vertical + &:not([rows]) + max-height: $textarea-max-height + min-height: $textarea-min-height + &[rows] + height: initial + // Modifiers + &.has-fixed-size + resize: none diff --git a/node_modules/bulma/sass/form/select.sass b/node_modules/bulma/sass/form/select.sass new file mode 100644 index 0000000..951b735 --- /dev/null +++ b/node_modules/bulma/sass/form/select.sass @@ -0,0 +1,88 @@ +$select-colors: $form-colors !default + +.select + display: inline-block + max-width: 100% + position: relative + vertical-align: top + &:not(.is-multiple) + height: $input-height + &:not(.is-multiple):not(.is-loading) + &::after + @extend %arrow + border-color: $input-arrow + +ltr-position(1.125em) + z-index: 4 + &.is-rounded + select + border-radius: $radius-rounded + +ltr-property("padding", 1em, false) + select + @extend %input + cursor: pointer + display: block + font-size: 1em + max-width: 100% + outline: none + &::-ms-expand + display: none + &[disabled]:hover, + fieldset[disabled] &:hover + border-color: $input-disabled-border-color + &:not([multiple]) + +ltr-property("padding", 2.5em) + &[multiple] + height: auto + padding: 0 + option + padding: 0.5em 1em + // States + &:not(.is-multiple):not(.is-loading):hover + &::after + border-color: $input-hover-color + // Colors + @each $name, $pair in $select-colors + $color: nth($pair, 1) + &.is-#{$name} + &:not(:hover)::after + border-color: $color + select + border-color: $color + &:hover, + &.is-hovered + border-color: bulmaDarken($color, 5%) + &:focus, + &.is-focused, + &:active, + &.is-active + box-shadow: $input-focus-box-shadow-size bulmaRgba($color, 0.25) + // Sizes + &.is-small + +control-small + &.is-medium + +control-medium + &.is-large + +control-large + // Modifiers + &.is-disabled + &::after + border-color: $input-disabled-color !important + opacity: 0.5 + &.is-fullwidth + width: 100% + select + width: 100% + &.is-loading + &::after + @extend %loader + margin-top: 0 + position: absolute + +ltr-position(0.625em) + top: 0.625em + transform: none + &.is-small:after + font-size: $size-small + &.is-medium:after + font-size: $size-medium + &.is-large:after + font-size: $size-large diff --git a/node_modules/bulma/sass/form/shared.sass b/node_modules/bulma/sass/form/shared.sass new file mode 100644 index 0000000..422d7aa --- /dev/null +++ b/node_modules/bulma/sass/form/shared.sass @@ -0,0 +1,60 @@ +@import "../utilities/controls" +@import "../utilities/mixins" + +$form-colors: $colors !default + +$input-color: $text-strong !default +$input-background-color: $scheme-main !default +$input-border-color: $border !default +$input-height: $control-height !default +$input-shadow: inset 0 0.0625em 0.125em rgba($scheme-invert, 0.05) !default +$input-placeholder-color: bulmaRgba($input-color, 0.3) !default + +$input-hover-color: $text-strong !default +$input-hover-border-color: $border-hover !default + +$input-focus-color: $text-strong !default +$input-focus-border-color: $link !default +$input-focus-box-shadow-size: 0 0 0 0.125em !default +$input-focus-box-shadow-color: bulmaRgba($link, 0.25) !default + +$input-disabled-color: $text-light !default +$input-disabled-background-color: $background !default +$input-disabled-border-color: $background !default +$input-disabled-placeholder-color: bulmaRgba($input-disabled-color, 0.3) !default + +$input-arrow: $link !default + +$input-icon-color: $border !default +$input-icon-active-color: $text !default + +$input-radius: $radius !default + +=input + @extend %control + background-color: $input-background-color + border-color: $input-border-color + border-radius: $input-radius + color: $input-color + +placeholder + color: $input-placeholder-color + &:hover, + &.is-hovered + border-color: $input-hover-border-color + &:focus, + &.is-focused, + &:active, + &.is-active + border-color: $input-focus-border-color + box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color + &[disabled], + fieldset[disabled] & + background-color: $input-disabled-background-color + border-color: $input-disabled-border-color + box-shadow: none + color: $input-disabled-color + +placeholder + color: $input-disabled-placeholder-color + +%input + +input diff --git a/node_modules/bulma/sass/form/tools.sass b/node_modules/bulma/sass/form/tools.sass new file mode 100644 index 0000000..73b09b6 --- /dev/null +++ b/node_modules/bulma/sass/form/tools.sass @@ -0,0 +1,215 @@ +$label-color: $text-strong !default +$label-weight: $weight-bold !default + +$help-size: $size-small !default + +$label-colors: $form-colors !default + +.label + color: $label-color + display: block + font-size: $size-normal + font-weight: $label-weight + &:not(:last-child) + margin-bottom: 0.5em + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + +.help + display: block + font-size: $help-size + margin-top: 0.25rem + @each $name, $pair in $label-colors + $color: nth($pair, 1) + &.is-#{$name} + color: $color + +// Containers + +.field + &:not(:last-child) + margin-bottom: 0.75rem + // Modifiers + &.has-addons + display: flex + justify-content: flex-start + .control + &:not(:last-child) + +ltr-property("margin", -1px) + &:not(:first-child):not(:last-child) + .button, + .input, + .select select + border-radius: 0 + &:first-child:not(:only-child) + .button, + .input, + .select select + +ltr + border-bottom-right-radius: 0 + border-top-right-radius: 0 + +rtl + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &:last-child:not(:only-child) + .button, + .input, + .select select + +ltr + border-bottom-left-radius: 0 + border-top-left-radius: 0 + +rtl + border-bottom-right-radius: 0 + border-top-right-radius: 0 + .button, + .input, + .select select + &:not([disabled]) + &:hover, + &.is-hovered + z-index: 2 + &:focus, + &.is-focused, + &:active, + &.is-active + z-index: 3 + &:hover + z-index: 4 + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.has-addons-centered + justify-content: center + &.has-addons-right + justify-content: flex-end + &.has-addons-fullwidth + .control + flex-grow: 1 + flex-shrink: 0 + &.is-grouped + display: flex + justify-content: flex-start + & > .control + flex-shrink: 0 + &:not(:last-child) + margin-bottom: 0 + +ltr-property("margin", 0.75rem) + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-grouped-centered + justify-content: center + &.is-grouped-right + justify-content: flex-end + &.is-grouped-multiline + flex-wrap: wrap + & > .control + &:last-child, + &:not(:last-child) + margin-bottom: 0.75rem + &:last-child + margin-bottom: -0.75rem + &:not(:last-child) + margin-bottom: 0 + &.is-horizontal + +tablet + display: flex + +.field-label + .label + font-size: inherit + +mobile + margin-bottom: 0.5rem + +tablet + flex-basis: 0 + flex-grow: 1 + flex-shrink: 0 + +ltr-property("margin", 1.5rem) + text-align: right + &.is-small + font-size: $size-small + padding-top: 0.375em + &.is-normal + padding-top: 0.375em + &.is-medium + font-size: $size-medium + padding-top: 0.375em + &.is-large + font-size: $size-large + padding-top: 0.375em + +.field-body + .field .field + margin-bottom: 0 + +tablet + display: flex + flex-basis: 0 + flex-grow: 5 + flex-shrink: 1 + .field + margin-bottom: 0 + & > .field + flex-shrink: 1 + &:not(.is-narrow) + flex-grow: 1 + &:not(:last-child) + +ltr-property("margin", 0.75rem) + +.control + box-sizing: border-box + clear: both + font-size: $size-normal + position: relative + text-align: inherit + // Modifiers + &.has-icons-left, + &.has-icons-right + .input, + .select + &:focus + & ~ .icon + color: $input-icon-active-color + &.is-small ~ .icon + font-size: $size-small + &.is-medium ~ .icon + font-size: $size-medium + &.is-large ~ .icon + font-size: $size-large + .icon + color: $input-icon-color + height: $input-height + pointer-events: none + position: absolute + top: 0 + width: $input-height + z-index: 4 + &.has-icons-left + .input, + .select select + padding-left: $input-height + .icon.is-left + left: 0 + &.has-icons-right + .input, + .select select + padding-right: $input-height + .icon.is-right + right: 0 + &.is-loading + &::after + @extend %loader + position: absolute !important + +ltr-position(0.625em) + top: 0.625em + z-index: 4 + &.is-small:after + font-size: $size-small + &.is-medium:after + font-size: $size-medium + &.is-large:after + font-size: $size-large diff --git a/node_modules/bulma/sass/grid/_all.sass b/node_modules/bulma/sass/grid/_all.sass new file mode 100644 index 0000000..0b5ed31 --- /dev/null +++ b/node_modules/bulma/sass/grid/_all.sass @@ -0,0 +1,5 @@ +/* Bulma Grid */ +@charset "utf-8" + +@import "columns" +@import "tiles" diff --git a/node_modules/bulma/sass/grid/columns.sass b/node_modules/bulma/sass/grid/columns.sass new file mode 100644 index 0000000..e66112b --- /dev/null +++ b/node_modules/bulma/sass/grid/columns.sass @@ -0,0 +1,513 @@ +@import "../utilities/mixins" + +$column-gap: 0.75rem !default + +.column + display: block + flex-basis: 0 + flex-grow: 1 + flex-shrink: 1 + padding: $column-gap + .columns.is-mobile > &.is-narrow + flex: none + width: unset + .columns.is-mobile > &.is-full + flex: none + width: 100% + .columns.is-mobile > &.is-three-quarters + flex: none + width: 75% + .columns.is-mobile > &.is-two-thirds + flex: none + width: 66.6666% + .columns.is-mobile > &.is-half + flex: none + width: 50% + .columns.is-mobile > &.is-one-third + flex: none + width: 33.3333% + .columns.is-mobile > &.is-one-quarter + flex: none + width: 25% + .columns.is-mobile > &.is-one-fifth + flex: none + width: 20% + .columns.is-mobile > &.is-two-fifths + flex: none + width: 40% + .columns.is-mobile > &.is-three-fifths + flex: none + width: 60% + .columns.is-mobile > &.is-four-fifths + flex: none + width: 80% + .columns.is-mobile > &.is-offset-three-quarters + +ltr-property("margin", 75%, false) + .columns.is-mobile > &.is-offset-two-thirds + +ltr-property("margin", 66.6666%, false) + .columns.is-mobile > &.is-offset-half + +ltr-property("margin", 50%, false) + .columns.is-mobile > &.is-offset-one-third + +ltr-property("margin", 33.3333%, false) + .columns.is-mobile > &.is-offset-one-quarter + +ltr-property("margin", 25%, false) + .columns.is-mobile > &.is-offset-one-fifth + +ltr-property("margin", 20%, false) + .columns.is-mobile > &.is-offset-two-fifths + +ltr-property("margin", 40%, false) + .columns.is-mobile > &.is-offset-three-fifths + +ltr-property("margin", 60%, false) + .columns.is-mobile > &.is-offset-four-fifths + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + .columns.is-mobile > &.is-#{$i} + flex: none + width: percentage(divide($i, 12)) + .columns.is-mobile > &.is-offset-#{$i} + +ltr-property("margin", percentage(divide($i, 12)), false) + +mobile + &.is-narrow-mobile + flex: none + width: unset + &.is-full-mobile + flex: none + width: 100% + &.is-three-quarters-mobile + flex: none + width: 75% + &.is-two-thirds-mobile + flex: none + width: 66.6666% + &.is-half-mobile + flex: none + width: 50% + &.is-one-third-mobile + flex: none + width: 33.3333% + &.is-one-quarter-mobile + flex: none + width: 25% + &.is-one-fifth-mobile + flex: none + width: 20% + &.is-two-fifths-mobile + flex: none + width: 40% + &.is-three-fifths-mobile + flex: none + width: 60% + &.is-four-fifths-mobile + flex: none + width: 80% + &.is-offset-three-quarters-mobile + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-mobile + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-mobile + +ltr-property("margin", 50%, false) + &.is-offset-one-third-mobile + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-mobile + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-mobile + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-mobile + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-mobile + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-mobile + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-mobile + flex: none + width: percentage(divide($i, 12)) + &.is-offset-#{$i}-mobile + +ltr-property("margin", percentage(divide($i, 12)), false) + +tablet + &.is-narrow, + &.is-narrow-tablet + flex: none + width: unset + &.is-full, + &.is-full-tablet + flex: none + width: 100% + &.is-three-quarters, + &.is-three-quarters-tablet + flex: none + width: 75% + &.is-two-thirds, + &.is-two-thirds-tablet + flex: none + width: 66.6666% + &.is-half, + &.is-half-tablet + flex: none + width: 50% + &.is-one-third, + &.is-one-third-tablet + flex: none + width: 33.3333% + &.is-one-quarter, + &.is-one-quarter-tablet + flex: none + width: 25% + &.is-one-fifth, + &.is-one-fifth-tablet + flex: none + width: 20% + &.is-two-fifths, + &.is-two-fifths-tablet + flex: none + width: 40% + &.is-three-fifths, + &.is-three-fifths-tablet + flex: none + width: 60% + &.is-four-fifths, + &.is-four-fifths-tablet + flex: none + width: 80% + &.is-offset-three-quarters, + &.is-offset-three-quarters-tablet + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds, + &.is-offset-two-thirds-tablet + +ltr-property("margin", 66.6666%, false) + &.is-offset-half, + &.is-offset-half-tablet + +ltr-property("margin", 50%, false) + &.is-offset-one-third, + &.is-offset-one-third-tablet + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter, + &.is-offset-one-quarter-tablet + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth, + &.is-offset-one-fifth-tablet + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths, + &.is-offset-two-fifths-tablet + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths, + &.is-offset-three-fifths-tablet + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths, + &.is-offset-four-fifths-tablet + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}, + &.is-#{$i}-tablet + flex: none + width: percentage(divide($i, 12)) + &.is-offset-#{$i}, + &.is-offset-#{$i}-tablet + +ltr-property("margin", percentage(divide($i, 12)), false) + +touch + &.is-narrow-touch + flex: none + width: unset + &.is-full-touch + flex: none + width: 100% + &.is-three-quarters-touch + flex: none + width: 75% + &.is-two-thirds-touch + flex: none + width: 66.6666% + &.is-half-touch + flex: none + width: 50% + &.is-one-third-touch + flex: none + width: 33.3333% + &.is-one-quarter-touch + flex: none + width: 25% + &.is-one-fifth-touch + flex: none + width: 20% + &.is-two-fifths-touch + flex: none + width: 40% + &.is-three-fifths-touch + flex: none + width: 60% + &.is-four-fifths-touch + flex: none + width: 80% + &.is-offset-three-quarters-touch + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-touch + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-touch + +ltr-property("margin", 50%, false) + &.is-offset-one-third-touch + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-touch + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-touch + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-touch + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-touch + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-touch + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-touch + flex: none + width: percentage(divide($i, 12)) + &.is-offset-#{$i}-touch + +ltr-property("margin", percentage(divide($i, 12)), false) + +desktop + &.is-narrow-desktop + flex: none + width: unset + &.is-full-desktop + flex: none + width: 100% + &.is-three-quarters-desktop + flex: none + width: 75% + &.is-two-thirds-desktop + flex: none + width: 66.6666% + &.is-half-desktop + flex: none + width: 50% + &.is-one-third-desktop + flex: none + width: 33.3333% + &.is-one-quarter-desktop + flex: none + width: 25% + &.is-one-fifth-desktop + flex: none + width: 20% + &.is-two-fifths-desktop + flex: none + width: 40% + &.is-three-fifths-desktop + flex: none + width: 60% + &.is-four-fifths-desktop + flex: none + width: 80% + &.is-offset-three-quarters-desktop + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-desktop + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-desktop + +ltr-property("margin", 50%, false) + &.is-offset-one-third-desktop + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-desktop + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-desktop + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-desktop + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-desktop + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-desktop + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-desktop + flex: none + width: percentage(divide($i, 12)) + &.is-offset-#{$i}-desktop + +ltr-property("margin", percentage(divide($i, 12)), false) + +widescreen + &.is-narrow-widescreen + flex: none + width: unset + &.is-full-widescreen + flex: none + width: 100% + &.is-three-quarters-widescreen + flex: none + width: 75% + &.is-two-thirds-widescreen + flex: none + width: 66.6666% + &.is-half-widescreen + flex: none + width: 50% + &.is-one-third-widescreen + flex: none + width: 33.3333% + &.is-one-quarter-widescreen + flex: none + width: 25% + &.is-one-fifth-widescreen + flex: none + width: 20% + &.is-two-fifths-widescreen + flex: none + width: 40% + &.is-three-fifths-widescreen + flex: none + width: 60% + &.is-four-fifths-widescreen + flex: none + width: 80% + &.is-offset-three-quarters-widescreen + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-widescreen + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-widescreen + +ltr-property("margin", 50%, false) + &.is-offset-one-third-widescreen + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-widescreen + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-widescreen + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-widescreen + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-widescreen + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-widescreen + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-widescreen + flex: none + width: percentage(divide($i, 12)) + &.is-offset-#{$i}-widescreen + +ltr-property("margin", percentage(divide($i, 12)), false) + +fullhd + &.is-narrow-fullhd + flex: none + width: unset + &.is-full-fullhd + flex: none + width: 100% + &.is-three-quarters-fullhd + flex: none + width: 75% + &.is-two-thirds-fullhd + flex: none + width: 66.6666% + &.is-half-fullhd + flex: none + width: 50% + &.is-one-third-fullhd + flex: none + width: 33.3333% + &.is-one-quarter-fullhd + flex: none + width: 25% + &.is-one-fifth-fullhd + flex: none + width: 20% + &.is-two-fifths-fullhd + flex: none + width: 40% + &.is-three-fifths-fullhd + flex: none + width: 60% + &.is-four-fifths-fullhd + flex: none + width: 80% + &.is-offset-three-quarters-fullhd + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-fullhd + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-fullhd + +ltr-property("margin", 50%, false) + &.is-offset-one-third-fullhd + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-fullhd + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-fullhd + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-fullhd + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-fullhd + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-fullhd + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-fullhd + flex: none + width: percentage(divide($i, 12)) + &.is-offset-#{$i}-fullhd + +ltr-property("margin", percentage(divide($i, 12)), false) + +.columns + +ltr-property("margin", (-$column-gap), false) + +ltr-property("margin", (-$column-gap)) + margin-top: (-$column-gap) + &:last-child + margin-bottom: (-$column-gap) + &:not(:last-child) + margin-bottom: calc(1.5rem - #{$column-gap}) + // Modifiers + &.is-centered + justify-content: center + &.is-gapless + +ltr-property("margin", 0, false) + +ltr-property("margin", 0) + margin-top: 0 + & > .column + margin: 0 + padding: 0 !important + &:not(:last-child) + margin-bottom: 1.5rem + &:last-child + margin-bottom: 0 + &.is-mobile + display: flex + &.is-multiline + flex-wrap: wrap + &.is-vcentered + align-items: center + // Responsiveness + +tablet + &:not(.is-desktop) + display: flex + +desktop + // Modifiers + &.is-desktop + display: flex + +@if $variable-columns + .columns.is-variable + --columnGap: 0.75rem + +ltr-property("margin", calc(-1 * var(--columnGap)), false) + +ltr-property("margin", calc(-1 * var(--columnGap))) + > .column + padding-left: var(--columnGap) + padding-right: var(--columnGap) + @for $i from 0 through 8 + &.is-#{$i} + --columnGap: #{$i * 0.25rem} + +mobile + &.is-#{$i}-mobile + --columnGap: #{$i * 0.25rem} + +tablet + &.is-#{$i}-tablet + --columnGap: #{$i * 0.25rem} + +tablet-only + &.is-#{$i}-tablet-only + --columnGap: #{$i * 0.25rem} + +touch + &.is-#{$i}-touch + --columnGap: #{$i * 0.25rem} + +desktop + &.is-#{$i}-desktop + --columnGap: #{$i * 0.25rem} + +desktop-only + &.is-#{$i}-desktop-only + --columnGap: #{$i * 0.25rem} + +widescreen + &.is-#{$i}-widescreen + --columnGap: #{$i * 0.25rem} + +widescreen-only + &.is-#{$i}-widescreen-only + --columnGap: #{$i * 0.25rem} + +fullhd + &.is-#{$i}-fullhd + --columnGap: #{$i * 0.25rem} diff --git a/node_modules/bulma/sass/grid/tiles.sass b/node_modules/bulma/sass/grid/tiles.sass new file mode 100644 index 0000000..d22d738 --- /dev/null +++ b/node_modules/bulma/sass/grid/tiles.sass @@ -0,0 +1,36 @@ +@import "../utilities/mixins" + +$tile-spacing: 0.75rem !default + +.tile + align-items: stretch + display: block + flex-basis: 0 + flex-grow: 1 + flex-shrink: 1 + min-height: min-content + // Modifiers + &.is-ancestor + margin-left: $tile-spacing * -1 + margin-right: $tile-spacing * -1 + margin-top: $tile-spacing * -1 + &:last-child + margin-bottom: $tile-spacing * -1 + &:not(:last-child) + margin-bottom: $tile-spacing + &.is-child + margin: 0 !important + &.is-parent + padding: $tile-spacing + &.is-vertical + flex-direction: column + & > .tile.is-child:not(:last-child) + margin-bottom: 1.5rem !important + // Responsiveness + +tablet + &:not(.is-child) + display: flex + @for $i from 1 through 12 + &.is-#{$i} + flex: none + width: (divide($i, 12)) * 100% diff --git a/node_modules/bulma/sass/helpers/_all.sass b/node_modules/bulma/sass/helpers/_all.sass new file mode 100644 index 0000000..d673da6 --- /dev/null +++ b/node_modules/bulma/sass/helpers/_all.sass @@ -0,0 +1,12 @@ +/* Bulma Helpers */ +@charset "utf-8" + +@import "color" +@import "flexbox" +@import "float" +@import "other" +@import "overflow" +@import "position" +@import "spacing" +@import "typography" +@import "visibility" diff --git a/node_modules/bulma/sass/helpers/color.sass b/node_modules/bulma/sass/helpers/color.sass new file mode 100644 index 0000000..b7a8a50 --- /dev/null +++ b/node_modules/bulma/sass/helpers/color.sass @@ -0,0 +1,39 @@ +@import "../utilities/derived-variables" + +@each $name, $pair in $colors + $color: nth($pair, 1) + .has-text-#{$name} + color: $color !important + a.has-text-#{$name} + &:hover, + &:focus + color: bulmaDarken($color, 10%) !important + .has-background-#{$name} + background-color: $color !important + @if length($pair) >= 4 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + // Light + .has-text-#{$name}-light + color: $color-light !important + a.has-text-#{$name}-light + &:hover, + &:focus + color: bulmaDarken($color-light, 10%) !important + .has-background-#{$name}-light + background-color: $color-light !important + // Dark + .has-text-#{$name}-dark + color: $color-dark !important + a.has-text-#{$name}-dark + &:hover, + &:focus + color: bulmaLighten($color-dark, 10%) !important + .has-background-#{$name}-dark + background-color: $color-dark !important + +@each $name, $shade in $shades + .has-text-#{$name} + color: $shade !important + .has-background-#{$name} + background-color: $shade !important diff --git a/node_modules/bulma/sass/helpers/flexbox.sass b/node_modules/bulma/sass/helpers/flexbox.sass new file mode 100644 index 0000000..2538a2d --- /dev/null +++ b/node_modules/bulma/sass/helpers/flexbox.sass @@ -0,0 +1,35 @@ +$flex-direction-values: row, row-reverse, column, column-reverse +@each $value in $flex-direction-values + .is-flex-direction-#{$value} + flex-direction: $value !important + +$flex-wrap-values: nowrap, wrap, wrap-reverse +@each $value in $flex-wrap-values + .is-flex-wrap-#{$value} + flex-wrap: $value !important + +$justify-content-values: flex-start, flex-end, center, space-between, space-around, space-evenly, start, end, left, right +@each $value in $justify-content-values + .is-justify-content-#{$value} + justify-content: $value !important + +$align-content-values: flex-start, flex-end, center, space-between, space-around, space-evenly, stretch, start, end, baseline +@each $value in $align-content-values + .is-align-content-#{$value} + align-content: $value !important + +$align-items-values: stretch, flex-start, flex-end, center, baseline, start, end, self-start, self-end +@each $value in $align-items-values + .is-align-items-#{$value} + align-items: $value !important + +$align-self-values: auto, flex-start, flex-end, center, baseline, stretch +@each $value in $align-self-values + .is-align-self-#{$value} + align-self: $value !important + +$flex-operators: grow, shrink +@each $operator in $flex-operators + @for $i from 0 through 5 + .is-flex-#{$operator}-#{$i} + flex-#{$operator}: $i !important diff --git a/node_modules/bulma/sass/helpers/float.sass b/node_modules/bulma/sass/helpers/float.sass new file mode 100644 index 0000000..f62f24e --- /dev/null +++ b/node_modules/bulma/sass/helpers/float.sass @@ -0,0 +1,10 @@ +@import "../utilities/mixins" + +.is-clearfix + +clearfix + +.is-pulled-left + float: left !important + +.is-pulled-right + float: right !important diff --git a/node_modules/bulma/sass/helpers/other.sass b/node_modules/bulma/sass/helpers/other.sass new file mode 100644 index 0000000..6e2e63c --- /dev/null +++ b/node_modules/bulma/sass/helpers/other.sass @@ -0,0 +1,14 @@ +@import "../utilities/mixins" + +.is-radiusless + border-radius: 0 !important + +.is-shadowless + box-shadow: none !important + +.is-clickable + cursor: pointer !important + pointer-events: all !important + +.is-unselectable + @extend %unselectable diff --git a/node_modules/bulma/sass/helpers/overflow.sass b/node_modules/bulma/sass/helpers/overflow.sass new file mode 100644 index 0000000..ef1e3ef --- /dev/null +++ b/node_modules/bulma/sass/helpers/overflow.sass @@ -0,0 +1,2 @@ +.is-clipped + overflow: hidden !important diff --git a/node_modules/bulma/sass/helpers/position.sass b/node_modules/bulma/sass/helpers/position.sass new file mode 100644 index 0000000..4b8fda4 --- /dev/null +++ b/node_modules/bulma/sass/helpers/position.sass @@ -0,0 +1,7 @@ +@import "../utilities/mixins" + +.is-overlay + @extend %overlay + +.is-relative + position: relative !important diff --git a/node_modules/bulma/sass/helpers/spacing.sass b/node_modules/bulma/sass/helpers/spacing.sass new file mode 100644 index 0000000..0237c73 --- /dev/null +++ b/node_modules/bulma/sass/helpers/spacing.sass @@ -0,0 +1,31 @@ +.is-marginless + margin: 0 !important + +.is-paddingless + padding: 0 !important + +$spacing-shortcuts: ("margin": "m", "padding": "p") !default +$spacing-directions: ("top": "t", "right": "r", "bottom": "b", "left": "l") !default +$spacing-horizontal: "x" !default +$spacing-vertical: "y" !default +$spacing-values: ("0": 0, "1": 0.25rem, "2": 0.5rem, "3": 0.75rem, "4": 1rem, "5": 1.5rem, "6": 3rem, "auto": auto) !default + +@each $property, $shortcut in $spacing-shortcuts + @each $name, $value in $spacing-values + // All directions + .#{$shortcut}-#{$name} + #{$property}: $value !important + // Cardinal directions + @each $direction, $suffix in $spacing-directions + .#{$shortcut}#{$suffix}-#{$name} + #{$property}-#{$direction}: $value !important + // Horizontal axis + @if $spacing-horizontal != null + .#{$shortcut}#{$spacing-horizontal}-#{$name} + #{$property}-left: $value !important + #{$property}-right: $value !important + // Vertical axis + @if $spacing-vertical != null + .#{$shortcut}#{$spacing-vertical}-#{$name} + #{$property}-top: $value !important + #{$property}-bottom: $value !important diff --git a/node_modules/bulma/sass/helpers/typography.sass b/node_modules/bulma/sass/helpers/typography.sass new file mode 100644 index 0000000..dceca77 --- /dev/null +++ b/node_modules/bulma/sass/helpers/typography.sass @@ -0,0 +1,103 @@ +@import "../utilities/mixins" + +=typography-size($target:'') + @each $size in $sizes + $i: index($sizes, $size) + .is-size-#{$i}#{if($target == '', '', '-' + $target)} + font-size: $size !important + ++typography-size() + ++mobile + +typography-size('mobile') + ++tablet + +typography-size('tablet') + ++touch + +typography-size('touch') + ++desktop + +typography-size('desktop') + ++widescreen + +typography-size('widescreen') + ++fullhd + +typography-size('fullhd') + +$alignments: ('centered': 'center', 'justified': 'justify', 'left': 'left', 'right': 'right') + +@each $alignment, $text-align in $alignments + .has-text-#{$alignment} + text-align: #{$text-align} !important + +@each $alignment, $text-align in $alignments + +mobile + .has-text-#{$alignment}-mobile + text-align: #{$text-align} !important + +tablet + .has-text-#{$alignment}-tablet + text-align: #{$text-align} !important + +tablet-only + .has-text-#{$alignment}-tablet-only + text-align: #{$text-align} !important + +touch + .has-text-#{$alignment}-touch + text-align: #{$text-align} !important + +desktop + .has-text-#{$alignment}-desktop + text-align: #{$text-align} !important + +desktop-only + .has-text-#{$alignment}-desktop-only + text-align: #{$text-align} !important + +widescreen + .has-text-#{$alignment}-widescreen + text-align: #{$text-align} !important + +widescreen-only + .has-text-#{$alignment}-widescreen-only + text-align: #{$text-align} !important + +fullhd + .has-text-#{$alignment}-fullhd + text-align: #{$text-align} !important + +.is-capitalized + text-transform: capitalize !important + +.is-lowercase + text-transform: lowercase !important + +.is-uppercase + text-transform: uppercase !important + +.is-italic + font-style: italic !important + +.is-underlined + text-decoration: underline !important + +.has-text-weight-light + font-weight: $weight-light !important +.has-text-weight-normal + font-weight: $weight-normal !important +.has-text-weight-medium + font-weight: $weight-medium !important +.has-text-weight-semibold + font-weight: $weight-semibold !important +.has-text-weight-bold + font-weight: $weight-bold !important + +.is-family-primary + font-family: $family-primary !important + +.is-family-secondary + font-family: $family-secondary !important + +.is-family-sans-serif + font-family: $family-sans-serif !important + +.is-family-monospace + font-family: $family-monospace !important + +.is-family-code + font-family: $family-code !important diff --git a/node_modules/bulma/sass/helpers/visibility.sass b/node_modules/bulma/sass/helpers/visibility.sass new file mode 100644 index 0000000..a1bb0d5 --- /dev/null +++ b/node_modules/bulma/sass/helpers/visibility.sass @@ -0,0 +1,122 @@ +@import "../utilities/mixins" + +$displays: 'block' 'flex' 'inline' 'inline-block' 'inline-flex' + +@each $display in $displays + .is-#{$display} + display: #{$display} !important + +mobile + .is-#{$display}-mobile + display: #{$display} !important + +tablet + .is-#{$display}-tablet + display: #{$display} !important + +tablet-only + .is-#{$display}-tablet-only + display: #{$display} !important + +touch + .is-#{$display}-touch + display: #{$display} !important + +desktop + .is-#{$display}-desktop + display: #{$display} !important + +desktop-only + .is-#{$display}-desktop-only + display: #{$display} !important + +widescreen + .is-#{$display}-widescreen + display: #{$display} !important + +widescreen-only + .is-#{$display}-widescreen-only + display: #{$display} !important + +fullhd + .is-#{$display}-fullhd + display: #{$display} !important + +.is-hidden + display: none !important + +.is-sr-only + border: none !important + clip: rect(0, 0, 0, 0) !important + height: 0.01em !important + overflow: hidden !important + padding: 0 !important + position: absolute !important + white-space: nowrap !important + width: 0.01em !important + ++mobile + .is-hidden-mobile + display: none !important + ++tablet + .is-hidden-tablet + display: none !important + ++tablet-only + .is-hidden-tablet-only + display: none !important + ++touch + .is-hidden-touch + display: none !important + ++desktop + .is-hidden-desktop + display: none !important + ++desktop-only + .is-hidden-desktop-only + display: none !important + ++widescreen + .is-hidden-widescreen + display: none !important + ++widescreen-only + .is-hidden-widescreen-only + display: none !important + ++fullhd + .is-hidden-fullhd + display: none !important + +.is-invisible + visibility: hidden !important + ++mobile + .is-invisible-mobile + visibility: hidden !important + ++tablet + .is-invisible-tablet + visibility: hidden !important + ++tablet-only + .is-invisible-tablet-only + visibility: hidden !important + ++touch + .is-invisible-touch + visibility: hidden !important + ++desktop + .is-invisible-desktop + visibility: hidden !important + ++desktop-only + .is-invisible-desktop-only + visibility: hidden !important + ++widescreen + .is-invisible-widescreen + visibility: hidden !important + ++widescreen-only + .is-invisible-widescreen-only + visibility: hidden !important + ++fullhd + .is-invisible-fullhd + visibility: hidden !important diff --git a/node_modules/bulma/sass/layout/_all.sass b/node_modules/bulma/sass/layout/_all.sass new file mode 100644 index 0000000..4d1df5b --- /dev/null +++ b/node_modules/bulma/sass/layout/_all.sass @@ -0,0 +1,6 @@ +/* Bulma Layout */ +@charset "utf-8" + +@import "hero" +@import "section" +@import "footer" diff --git a/node_modules/bulma/sass/layout/footer.sass b/node_modules/bulma/sass/layout/footer.sass new file mode 100644 index 0000000..4e9187e --- /dev/null +++ b/node_modules/bulma/sass/layout/footer.sass @@ -0,0 +1,11 @@ +@import "../utilities/derived-variables" + +$footer-background-color: $scheme-main-bis !default +$footer-color: false !default +$footer-padding: 3rem 1.5rem 6rem !default + +.footer + background-color: $footer-background-color + padding: $footer-padding + @if $footer-color + color: $footer-color diff --git a/node_modules/bulma/sass/layout/hero.sass b/node_modules/bulma/sass/layout/hero.sass new file mode 100644 index 0000000..bd2312c --- /dev/null +++ b/node_modules/bulma/sass/layout/hero.sass @@ -0,0 +1,153 @@ +@import "../utilities/mixins" + +$hero-body-padding: 3rem 1.5rem !default +$hero-body-padding-tablet: 3rem 3rem !default +$hero-body-padding-small: 1.5rem !default +$hero-body-padding-medium: 9rem 4.5rem !default +$hero-body-padding-large: 18rem 6rem !default + +$hero-colors: $colors !default + +// Main container +.hero + align-items: stretch + display: flex + flex-direction: column + justify-content: space-between + .navbar + background: none + .tabs + ul + border-bottom: none + // Colors + @each $name, $pair in $hero-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + strong + color: inherit + .title + color: $color-invert + .subtitle + color: bulmaRgba($color-invert, 0.9) + a:not(.button), + strong + color: $color-invert + .navbar-menu + +touch + background-color: $color + .navbar-item, + .navbar-link + color: bulmaRgba($color-invert, 0.7) + a.navbar-item, + .navbar-link + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .tabs + a + color: $color-invert + opacity: 0.9 + &:hover + opacity: 1 + li + &.is-active a + color: $color !important + opacity: 1 + &.is-boxed, + &.is-toggle + a + color: $color-invert + &:hover + background-color: bulmaRgba($scheme-invert, 0.1) + li.is-active a + &, + &:hover + background-color: $color-invert + border-color: $color-invert + color: $color + // Modifiers + @if type-of($color) == 'color' + &.is-bold + $gradient-top-left: darken(saturate(adjust-hue($color, -10deg), 10%), 10%) + $gradient-bottom-right: lighten(saturate(adjust-hue($color, 10deg), 5%), 5%) + background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%) + +mobile + .navbar-menu + background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%) + // Sizes + &.is-small + .hero-body + padding: $hero-body-padding-small + &.is-medium + +tablet + .hero-body + padding: $hero-body-padding-medium + &.is-large + +tablet + .hero-body + padding: $hero-body-padding-large + &.is-halfheight, + &.is-fullheight, + &.is-fullheight-with-navbar + .hero-body + align-items: center + display: flex + & > .container + flex-grow: 1 + flex-shrink: 1 + &.is-halfheight + min-height: 50vh + &.is-fullheight + min-height: 100vh + +// Components + +.hero-video + @extend %overlay + overflow: hidden + video + left: 50% + min-height: 100% + min-width: 100% + position: absolute + top: 50% + transform: translate3d(-50%, -50%, 0) + // Modifiers + &.is-transparent + opacity: 0.3 + // Responsiveness + +mobile + display: none + +.hero-buttons + margin-top: 1.5rem + // Responsiveness + +mobile + .button + display: flex + &:not(:last-child) + margin-bottom: 0.75rem + +tablet + display: flex + justify-content: center + .button:not(:last-child) + +ltr-property("margin", 1.5rem) + +// Containers + +.hero-head, +.hero-foot + flex-grow: 0 + flex-shrink: 0 + +.hero-body + flex-grow: 1 + flex-shrink: 0 + padding: $hero-body-padding + +tablet + padding: $hero-body-padding-tablet diff --git a/node_modules/bulma/sass/layout/section.sass b/node_modules/bulma/sass/layout/section.sass new file mode 100644 index 0000000..9c5a9f4 --- /dev/null +++ b/node_modules/bulma/sass/layout/section.sass @@ -0,0 +1,17 @@ +@import "../utilities/mixins" + +$section-padding: 3rem 1.5rem !default +$section-padding-desktop: 3rem 3rem !default +$section-padding-medium: 9rem 4.5rem !default +$section-padding-large: 18rem 6rem !default + +.section + padding: $section-padding + // Responsiveness + +desktop + padding: $section-padding-desktop + // Sizes + &.is-medium + padding: $section-padding-medium + &.is-large + padding: $section-padding-large diff --git a/node_modules/bulma/sass/utilities/_all.sass b/node_modules/bulma/sass/utilities/_all.sass new file mode 100644 index 0000000..51cf348 --- /dev/null +++ b/node_modules/bulma/sass/utilities/_all.sass @@ -0,0 +1,9 @@ +/* Bulma Utilities */ +@charset "utf-8" + +@import "initial-variables" +@import "functions" +@import "derived-variables" +@import "mixins" +@import "controls" +@import "extends" diff --git a/node_modules/bulma/sass/utilities/animations.sass b/node_modules/bulma/sass/utilities/animations.sass new file mode 100644 index 0000000..1872e08 --- /dev/null +++ b/node_modules/bulma/sass/utilities/animations.sass @@ -0,0 +1 @@ +@warn "The animations.sass file has MOVED. It is now in the /base folder. Please import sass/base/animations instead." diff --git a/node_modules/bulma/sass/utilities/controls.sass b/node_modules/bulma/sass/utilities/controls.sass new file mode 100644 index 0000000..4c738c7 --- /dev/null +++ b/node_modules/bulma/sass/utilities/controls.sass @@ -0,0 +1,49 @@ +@import "derived-variables" + +$control-radius: $radius !default +$control-radius-small: $radius-small !default + +$control-border-width: 1px !default + +$control-height: 2.5em !default +$control-line-height: 1.5 !default + +$control-padding-vertical: calc(0.5em - #{$control-border-width}) !default +$control-padding-horizontal: calc(0.75em - #{$control-border-width}) !default + +=control + -moz-appearance: none + -webkit-appearance: none + align-items: center + border: $control-border-width solid transparent + border-radius: $control-radius + box-shadow: none + display: inline-flex + font-size: $size-normal + height: $control-height + justify-content: flex-start + line-height: $control-line-height + padding-bottom: $control-padding-vertical + padding-left: $control-padding-horizontal + padding-right: $control-padding-horizontal + padding-top: $control-padding-vertical + position: relative + vertical-align: top + // States + &:focus, + &.is-focused, + &:active, + &.is-active + outline: none + &[disabled], + fieldset[disabled] & + cursor: not-allowed + +// The controls sizes use mixins so they can be used at different breakpoints +=control-small + border-radius: $control-radius-small + font-size: $size-small +=control-medium + font-size: $size-medium +=control-large + font-size: $size-large diff --git a/node_modules/bulma/sass/utilities/derived-variables.sass b/node_modules/bulma/sass/utilities/derived-variables.sass new file mode 100644 index 0000000..cefc8f1 --- /dev/null +++ b/node_modules/bulma/sass/utilities/derived-variables.sass @@ -0,0 +1,114 @@ +@import "initial-variables" +@import "functions" + +$primary: $turquoise !default + +$info: $cyan !default +$success: $green !default +$warning: $yellow !default +$danger: $red !default + +$light: $white-ter !default +$dark: $grey-darker !default + +// Invert colors + +$orange-invert: findColorInvert($orange) !default +$yellow-invert: findColorInvert($yellow) !default +$green-invert: findColorInvert($green) !default +$turquoise-invert: findColorInvert($turquoise) !default +$cyan-invert: findColorInvert($cyan) !default +$blue-invert: findColorInvert($blue) !default +$purple-invert: findColorInvert($purple) !default +$red-invert: findColorInvert($red) !default + +$primary-invert: findColorInvert($primary) !default +$primary-light: findLightColor($primary) !default +$primary-dark: findDarkColor($primary) !default +$info-invert: findColorInvert($info) !default +$info-light: findLightColor($info) !default +$info-dark: findDarkColor($info) !default +$success-invert: findColorInvert($success) !default +$success-light: findLightColor($success) !default +$success-dark: findDarkColor($success) !default +$warning-invert: findColorInvert($warning) !default +$warning-light: findLightColor($warning) !default +$warning-dark: findDarkColor($warning) !default +$danger-invert: findColorInvert($danger) !default +$danger-light: findLightColor($danger) !default +$danger-dark: findDarkColor($danger) !default +$light-invert: findColorInvert($light) !default +$dark-invert: findColorInvert($dark) !default + +// General colors + +$scheme-main: $white !default +$scheme-main-bis: $white-bis !default +$scheme-main-ter: $white-ter !default +$scheme-invert: $black !default +$scheme-invert-bis: $black-bis !default +$scheme-invert-ter: $black-ter !default + +$background: $white-ter !default + +$border: $grey-lighter !default +$border-hover: $grey-light !default +$border-light: $grey-lightest !default +$border-light-hover: $grey-light !default + +// Text colors + +$text: $grey-dark !default +$text-invert: findColorInvert($text) !default +$text-light: $grey !default +$text-strong: $grey-darker !default + +// Code colors + +$code: darken($red, 15%) !default +$code-background: $background !default + +$pre: $text !default +$pre-background: $background !default + +// Link colors + +$link: $blue !default +$link-invert: findColorInvert($link) !default +$link-light: findLightColor($link) !default +$link-dark: findDarkColor($link) !default +$link-visited: $purple !default + +$link-hover: $grey-darker !default +$link-hover-border: $grey-light !default + +$link-focus: $grey-darker !default +$link-focus-border: $blue !default + +$link-active: $grey-darker !default +$link-active-border: $grey-dark !default + +// Typography + +$family-primary: $family-sans-serif !default +$family-secondary: $family-sans-serif !default +$family-code: $family-monospace !default + +$size-small: $size-7 !default +$size-normal: $size-6 !default +$size-medium: $size-5 !default +$size-large: $size-4 !default + +// Effects + +$shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0px 0 1px rgba($scheme-invert, 0.02) !default + +// Lists and maps +$custom-colors: null !default +$custom-shades: null !default + +$colors: mergeColorMaps(("white": ($white, $black), "black": ($black, $white), "light": ($light, $light-invert), "dark": ($dark, $dark-invert), "primary": ($primary, $primary-invert, $primary-light, $primary-dark), "link": ($link, $link-invert, $link-light, $link-dark), "info": ($info, $info-invert, $info-light, $info-dark), "success": ($success, $success-invert, $success-light, $success-dark), "warning": ($warning, $warning-invert, $warning-light, $warning-dark), "danger": ($danger, $danger-invert, $danger-light, $danger-dark)), $custom-colors) !default + +$shades: mergeColorMaps(("black-bis": $black-bis, "black-ter": $black-ter, "grey-darker": $grey-darker, "grey-dark": $grey-dark, "grey": $grey, "grey-light": $grey-light, "grey-lighter": $grey-lighter, "white-ter": $white-ter, "white-bis": $white-bis), $custom-shades) !default + +$sizes: $size-1 $size-2 $size-3 $size-4 $size-5 $size-6 $size-7 !default diff --git a/node_modules/bulma/sass/utilities/extends.sass b/node_modules/bulma/sass/utilities/extends.sass new file mode 100644 index 0000000..c994fc1 --- /dev/null +++ b/node_modules/bulma/sass/utilities/extends.sass @@ -0,0 +1,25 @@ +@import "mixins" + +%control + +control + +%unselectable + +unselectable + +%arrow + +arrow + +%block + +block + +%delete + +delete + +%loader + +loader + +%overlay + +overlay + +%reset + +reset diff --git a/node_modules/bulma/sass/utilities/functions.sass b/node_modules/bulma/sass/utilities/functions.sass new file mode 100644 index 0000000..eeea6f2 --- /dev/null +++ b/node_modules/bulma/sass/utilities/functions.sass @@ -0,0 +1,135 @@ +@function mergeColorMaps($bulma-colors, $custom-colors) + // We return at least Bulma's hard-coded colors + $merged-colors: $bulma-colors + + // We want a map as input + @if type-of($custom-colors) == 'map' + @each $name, $components in $custom-colors + // The color name should be a string + // and the components either a single color + // or a colors list with at least one element + @if type-of($name) == 'string' and (type-of($components) == 'list' or type-of($components) == 'color') and length($components) >= 1 + $color-base: null + $color-invert: null + $color-light: null + $color-dark: null + $value: null + + // The param can either be a single color + // or a list of 2 colors + @if type-of($components) == 'color' + $color-base: $components + $color-invert: findColorInvert($color-base) + $color-light: findLightColor($color-base) + $color-dark: findDarkColor($color-base) + @else if type-of($components) == 'list' + $color-base: nth($components, 1) + // If Invert, Light and Dark are provided + @if length($components) > 3 + $color-invert: nth($components, 2) + $color-light: nth($components, 3) + $color-dark: nth($components, 4) + // If only Invert and Light are provided + @else if length($components) > 2 + $color-invert: nth($components, 2) + $color-light: nth($components, 3) + $color-dark: findDarkColor($color-base) + // If only Invert is provided + @else + $color-invert: nth($components, 2) + $color-light: findLightColor($color-base) + $color-dark: findDarkColor($color-base) + + $value: ($color-base, $color-invert, $color-light, $color-dark) + + // We only want to merge the map if the color base is an actual color + @if type-of($color-base) == 'color' + // We merge this colors elements as map with Bulma's colors map + // (we can override them this way, no multiple definition for the same name) + // $merged-colors: map_merge($merged-colors, ($name: ($color-base, $color-invert, $color-light, $color-dark))) + $merged-colors: map_merge($merged-colors, ($name: $value)) + + @return $merged-colors + +@function powerNumber($number, $exp) + $value: 1 + @if $exp > 0 + @for $i from 1 through $exp + $value: $value * $number + @else if $exp < 0 + @for $i from 1 through -$exp + $value: divide($value, $number) + @return $value + +@function colorLuminance($color) + @if type-of($color) != 'color' + @return 0.55 + $color-rgb: ('red': red($color),'green': green($color),'blue': blue($color)) + @each $name, $value in $color-rgb + $adjusted: 0 + $value: divide($value, 255) + @if $value < 0.03928 + $value: divide($value, 12.92) + @else + $value: divide(($value + .055), 1.055) + $value: powerNumber($value, 2) + $color-rgb: map-merge($color-rgb, ($name: $value)) + @return (map-get($color-rgb, 'red') * .2126) + (map-get($color-rgb, 'green') * .7152) + (map-get($color-rgb, 'blue') * .0722) + +@function findColorInvert($color) + @if (colorLuminance($color) > 0.55) + @return rgba(#000, 0.7) + @else + @return #fff + +@function findLightColor($color, $l: 96%) + @if type-of($color) == 'color' + $l: 96% + @if lightness($color) > 96% + $l: lightness($color) + @return change-color($color, $lightness: $l) + @return $background + +@function findDarkColor($color, $base-l: 29%) + @if type-of($color) == 'color' + $luminance: colorLuminance($color) + $luminance-delta: (0.53 - $luminance) + $target-l: round($base-l + ($luminance-delta * 53)) + @return change-color($color, $lightness: max($base-l, $target-l)) + @return $text-strong + +@function bulmaRgba($color, $alpha) + @if type-of($color) != 'color' + @return $color + @return rgba($color, $alpha) + +@function bulmaDarken($color, $amount) + @if type-of($color) != 'color' + @return $color + @return darken($color, $amount) + +@function bulmaLighten($color, $amount) + @if type-of($color) != 'color' + @return $color + @return lighten($color, $amount) + +// Custom divide function by @mdo from https://github.com/twbs/bootstrap/pull/34245 +// Replaces old slash division deprecated in Dart Sass +@function divide($dividend, $divisor, $precision: 10) + $sign: if($dividend > 0 and $divisor > 0, 1, -1) + $dividend: abs($dividend) + $divisor: abs($divisor) + $quotient: 0 + $remainder: $dividend + @if $dividend == 0 + @return 0 + @if $divisor == 0 + @error "Cannot divide by 0" + @if $divisor == 1 + @return $dividend + @while $remainder >= $divisor + $quotient: $quotient + 1 + $remainder: $remainder - $divisor + @if $remainder > 0 and $precision > 0 + $remainder: divide($remainder * 10, $divisor, $precision - 1) * .1 + @return ($quotient + $remainder) * $sign diff --git a/node_modules/bulma/sass/utilities/initial-variables.sass b/node_modules/bulma/sass/utilities/initial-variables.sass new file mode 100644 index 0000000..3c2d282 --- /dev/null +++ b/node_modules/bulma/sass/utilities/initial-variables.sass @@ -0,0 +1,79 @@ +// Colors + +$black: hsl(0, 0%, 4%) !default +$black-bis: hsl(0, 0%, 7%) !default +$black-ter: hsl(0, 0%, 14%) !default + +$grey-darker: hsl(0, 0%, 21%) !default +$grey-dark: hsl(0, 0%, 29%) !default +$grey: hsl(0, 0%, 48%) !default +$grey-light: hsl(0, 0%, 71%) !default +$grey-lighter: hsl(0, 0%, 86%) !default +$grey-lightest: hsl(0, 0%, 93%) !default + +$white-ter: hsl(0, 0%, 96%) !default +$white-bis: hsl(0, 0%, 98%) !default +$white: hsl(0, 0%, 100%) !default + +$orange: hsl(14, 100%, 53%) !default +$yellow: hsl(44, 100%, 77%) !default +$green: hsl(153, 53%, 53%) !default +$turquoise: hsl(171, 100%, 41%) !default +$cyan: hsl(207, 61%, 53%) !default +$blue: hsl(229, 53%, 53%) !default +$purple: hsl(271, 100%, 71%) !default +$red: hsl(348, 86%, 61%) !default + +// Typography + +$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default +$family-monospace: monospace !default +$render-mode: optimizeLegibility !default + +$size-1: 3rem !default +$size-2: 2.5rem !default +$size-3: 2rem !default +$size-4: 1.5rem !default +$size-5: 1.25rem !default +$size-6: 1rem !default +$size-7: 0.75rem !default + +$weight-light: 300 !default +$weight-normal: 400 !default +$weight-medium: 500 !default +$weight-semibold: 600 !default +$weight-bold: 700 !default + +// Spacing + +$block-spacing: 1.5rem !default + +// Responsiveness + +// The container horizontal gap, which acts as the offset for breakpoints +$gap: 32px !default +// 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16 +$tablet: 769px !default +// 960px container + 4rem +$desktop: 960px + (2 * $gap) !default +// 1152px container + 4rem +$widescreen: 1152px + (2 * $gap) !default +$widescreen-enabled: true !default +// 1344px container + 4rem +$fullhd: 1344px + (2 * $gap) !default +$fullhd-enabled: true !default +$breakpoints: ("mobile": ("until": $tablet), "tablet": ("from": $tablet), "tablet-only": ("from": $tablet, "until": $desktop), "touch": ("from": $desktop), "desktop": ("from": $desktop), "desktop-only": ("from": $desktop, "until": $widescreen), "until-widescreen": ("until": $widescreen), "widescreen": ("from": $widescreen), "widescreen-only": ("from": $widescreen, "until": $fullhd), "until-fullhd": ("until": $fullhd), "fullhd": ("from": $fullhd)) !default + +// Miscellaneous + +$easing: ease-out !default +$radius-small: 2px !default +$radius: 4px !default +$radius-large: 6px !default +$radius-rounded: 9999px !default +$speed: 86ms !default + +// Flags + +$variable-columns: true !default +$rtl: false !default diff --git a/node_modules/bulma/sass/utilities/mixins.sass b/node_modules/bulma/sass/utilities/mixins.sass new file mode 100644 index 0000000..10cbae3 --- /dev/null +++ b/node_modules/bulma/sass/utilities/mixins.sass @@ -0,0 +1,303 @@ +@import "derived-variables" + +=clearfix + &::after + clear: both + content: " " + display: table + +=center($width, $height: 0) + position: absolute + @if $height != 0 + left: calc(50% - (#{$width} * 0.5)) + top: calc(50% - (#{$height} * 0.5)) + @else + left: calc(50% - (#{$width} * 0.5)) + top: calc(50% - (#{$width} * 0.5)) + +=fa($size, $dimensions) + display: inline-block + font-size: $size + height: $dimensions + line-height: $dimensions + text-align: center + vertical-align: top + width: $dimensions + +=hamburger($dimensions) + -moz-appearance: none + -webkit-appearance: none + appearance: none + background: none + border: none + cursor: pointer + display: block + height: $dimensions + position: relative + width: $dimensions + span + background-color: currentColor + display: block + height: 1px + left: calc(50% - 8px) + position: absolute + transform-origin: center + transition-duration: $speed + transition-property: background-color, opacity, transform + transition-timing-function: $easing + width: 16px + &:nth-child(1) + top: calc(50% - 6px) + &:nth-child(2) + top: calc(50% - 1px) + &:nth-child(3) + top: calc(50% + 4px) + &:hover + background-color: bulmaRgba(black, 0.05) + // Modifers + &.is-active + span + &:nth-child(1) + transform: translateY(5px) rotate(45deg) + &:nth-child(2) + opacity: 0 + &:nth-child(3) + transform: translateY(-5px) rotate(-45deg) + +=overflow-touch + -webkit-overflow-scrolling: touch + +=placeholder + $placeholders: ':-moz' ':-webkit-input' '-moz' '-ms-input' + @each $placeholder in $placeholders + &:#{$placeholder}-placeholder + @content + +=reset + -moz-appearance: none + -webkit-appearance: none + appearance: none + background: none + border: none + color: currentColor + font-family: inherit + font-size: 1em + margin: 0 + padding: 0 + +// Responsiveness + +=from($device) + @media screen and (min-width: $device) + @content + +=until($device) + @media screen and (max-width: $device - 1px) + @content + +=between($from, $until) + @media screen and (min-width: $from) and (max-width: $until - 1px) + @content + +=mobile + @media screen and (max-width: $tablet - 1px) + @content + +=tablet + @media screen and (min-width: $tablet), print + @content + +=tablet-only + @media screen and (min-width: $tablet) and (max-width: $desktop - 1px) + @content + +=touch + @media screen and (max-width: $desktop - 1px) + @content + +=desktop + @media screen and (min-width: $desktop) + @content + +=desktop-only + @if $widescreen-enabled + @media screen and (min-width: $desktop) and (max-width: $widescreen - 1px) + @content + +=until-widescreen + @if $widescreen-enabled + @media screen and (max-width: $widescreen - 1px) + @content + +=widescreen + @if $widescreen-enabled + @media screen and (min-width: $widescreen) + @content + +=widescreen-only + @if $widescreen-enabled and $fullhd-enabled + @media screen and (min-width: $widescreen) and (max-width: $fullhd - 1px) + @content + +=until-fullhd + @if $fullhd-enabled + @media screen and (max-width: $fullhd - 1px) + @content + +=fullhd + @if $fullhd-enabled + @media screen and (min-width: $fullhd) + @content + +=breakpoint($name) + $breakpoint: map-get($breakpoints, $name) + @if $breakpoint + $from: map-get($breakpoint, "from") + $until: map-get($breakpoint, "until") + @if $from and $until + +between($from, $until) + @content + @else if $from + +from($from) + @content + @else if $until + +until($until) + @content + +=ltr + @if not $rtl + @content + +=rtl + @if $rtl + @content + +=ltr-property($property, $spacing, $right: true) + $normal: if($right, "right", "left") + $opposite: if($right, "left", "right") + @if $rtl + #{$property}-#{$opposite}: $spacing + @else + #{$property}-#{$normal}: $spacing + +=ltr-position($spacing, $right: true) + $normal: if($right, "right", "left") + $opposite: if($right, "left", "right") + @if $rtl + #{$opposite}: $spacing + @else + #{$normal}: $spacing + +// Placeholders + +=unselectable + -webkit-touch-callout: none + -webkit-user-select: none + -moz-user-select: none + -ms-user-select: none + user-select: none + +=arrow($color: transparent) + border: 3px solid $color + border-radius: 2px + border-right: 0 + border-top: 0 + content: " " + display: block + height: 0.625em + margin-top: -0.4375em + pointer-events: none + position: absolute + top: 50% + transform: rotate(-45deg) + transform-origin: center + width: 0.625em + +=block($spacing: $block-spacing) + &:not(:last-child) + margin-bottom: $spacing + +=delete + +unselectable + -moz-appearance: none + -webkit-appearance: none + background-color: bulmaRgba($scheme-invert, 0.2) + border: none + border-radius: $radius-rounded + cursor: pointer + pointer-events: auto + display: inline-block + flex-grow: 0 + flex-shrink: 0 + font-size: 0 + height: 20px + max-height: 20px + max-width: 20px + min-height: 20px + min-width: 20px + outline: none + position: relative + vertical-align: top + width: 20px + &::before, + &::after + background-color: $scheme-main + content: "" + display: block + left: 50% + position: absolute + top: 50% + transform: translateX(-50%) translateY(-50%) rotate(45deg) + transform-origin: center center + &::before + height: 2px + width: 50% + &::after + height: 50% + width: 2px + &:hover, + &:focus + background-color: bulmaRgba($scheme-invert, 0.3) + &:active + background-color: bulmaRgba($scheme-invert, 0.4) + // Sizes + &.is-small + height: 16px + max-height: 16px + max-width: 16px + min-height: 16px + min-width: 16px + width: 16px + &.is-medium + height: 24px + max-height: 24px + max-width: 24px + min-height: 24px + min-width: 24px + width: 24px + &.is-large + height: 32px + max-height: 32px + max-width: 32px + min-height: 32px + min-width: 32px + width: 32px + +=loader + animation: spinAround 500ms infinite linear + border: 2px solid $grey-lighter + border-radius: $radius-rounded + border-right-color: transparent + border-top-color: transparent + content: "" + display: block + height: 1em + position: relative + width: 1em + +=overlay($offset: 0) + bottom: $offset + left: $offset + position: absolute + right: $offset + top: $offset diff --git a/node_modules/csstype/LICENSE b/node_modules/csstype/LICENSE new file mode 100644 index 0000000..ac06f62 --- /dev/null +++ b/node_modules/csstype/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2017-2018 Fredrik Nicol + +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. diff --git a/node_modules/csstype/README.md b/node_modules/csstype/README.md new file mode 100644 index 0000000..9b3391a --- /dev/null +++ b/node_modules/csstype/README.md @@ -0,0 +1,291 @@ +# CSSType + +[![npm](https://img.shields.io/npm/v/csstype.svg)](https://www.npmjs.com/package/csstype) + +TypeScript and Flow definitions for CSS, generated by [data from MDN](https://github.com/mdn/data). It provides autocompletion and type checking for CSS properties and values. + +**TypeScript** + +```ts +import type * as CSS from 'csstype'; + +const style: CSS.Properties = { + colour: 'white', // Type error on property + textAlign: 'middle', // Type error on value +}; +``` + +**Flow** + +```js +// @flow strict +import * as CSS from 'csstype'; + +const style: CSS.Properties<> = { + colour: 'white', // Type error on property + textAlign: 'middle', // Type error on value +}; +``` + +_Further examples below will be in TypeScript!_ + +## Getting started + +```sh +$ npm install csstype +``` + +## Table of content + +- [Style types](#style-types) +- [At-rule types](#at-rule-types) +- [Pseudo types](#pseudo-types) +- [Generics](#generics) +- [Usage](#usage) +- [What should I do when I get type errors?](#what-should-i-do-when-i-get-type-errors) +- [Version 3.0](#version-30) +- [Contributing](#contributing) + +## Style types + +Properties are categorized in different uses and in several technical variations to provide typings that suits as many as possible. + +| | Default | `Hyphen` | `Fallback` | `HyphenFallback` | +| -------------- | -------------------- | -------------------------- | ---------------------------- | ---------------------------------- | +| **All** | `Properties` | `PropertiesHyphen` | `PropertiesFallback` | `PropertiesHyphenFallback` | +| **`Standard`** | `StandardProperties` | `StandardPropertiesHyphen` | `StandardPropertiesFallback` | `StandardPropertiesHyphenFallback` | +| **`Vendor`** | `VendorProperties` | `VendorPropertiesHyphen` | `VendorPropertiesFallback` | `VendorPropertiesHyphenFallback` | +| **`Obsolete`** | `ObsoleteProperties` | `ObsoletePropertiesHyphen` | `ObsoletePropertiesFallback` | `ObsoletePropertiesHyphenFallback` | +| **`Svg`** | `SvgProperties` | `SvgPropertiesHyphen` | `SvgPropertiesFallback` | `SvgPropertiesHyphenFallback` | + +Categories: + +- **All** - Includes `Standard`, `Vendor`, `Obsolete` and `Svg` +- **`Standard`** - Current properties and extends subcategories `StandardLonghand` and `StandardShorthand` _(e.g. `StandardShorthandProperties`)_ +- **`Vendor`** - Vendor prefixed properties and extends subcategories `VendorLonghand` and `VendorShorthand` _(e.g. `VendorShorthandProperties`)_ +- **`Obsolete`** - Removed or deprecated properties +- **`Svg`** - SVG-specific properties + +Variations: + +- **Default** - JavaScript (camel) cased property names +- **`Hyphen`** - CSS (kebab) cased property names +- **`Fallback`** - Also accepts array of values e.g. `string | string[]` + +## At-rule types + +At-rule interfaces with descriptors. + +**TypeScript**: These will be found in the `AtRule` namespace, e.g. `AtRule.Viewport`. +**Flow**: These will be prefixed with `AtRule$`, e.g. `AtRule$Viewport`. + +| | Default | `Hyphen` | `Fallback` | `HyphenFallback` | +| -------------------- | -------------- | -------------------- | ---------------------- | ---------------------------- | +| **`@counter-style`** | `CounterStyle` | `CounterStyleHyphen` | `CounterStyleFallback` | `CounterStyleHyphenFallback` | +| **`@font-face`** | `FontFace` | `FontFaceHyphen` | `FontFaceFallback` | `FontFaceHyphenFallback` | +| **`@viewport`** | `Viewport` | `ViewportHyphen` | `ViewportFallback` | `ViewportHyphenFallback` | + +## Pseudo types + +String literals of pseudo classes and pseudo elements + +- `Pseudos` + + Extends: + - `AdvancedPseudos` + + Function-like pseudos e.g. `:not(:first-child)`. The string literal contains the value excluding the parenthesis: `:not`. These are separated because they require an argument that results in infinite number of variations. + + - `SimplePseudos` + + Plain pseudos e.g. `:hover` that can only be **one** variation. + +## Generics + +All interfaces has two optional generic argument to define length and time: `CSS.Properties<TLength = string | 0, TTime = string>` + +- **Length** is the first generic parameter and defaults to `string | 0` because `0` is the only [length where the unit identifier is optional](https://drafts.csswg.org/css-values-3/#lengths). You can specify this, e.g. `string | number`, for platforms and libraries that accepts any numeric value as length with a specific unit. + ```tsx + const style: CSS.Properties<string | number> = { + width: 100, + }; + ``` +- **Time** is the second generic argument and defaults to `string`. You can specify this, e.g. `string | number`, for platforms and libraries that accepts any numeric value as length with a specific unit. + ```tsx + const style: CSS.Properties<string | number, number> = { + transitionDuration: 1000, + }; + ``` + +## Usage + +```ts +import type * as CSS from 'csstype'; + +const style: CSS.Properties = { + width: '10px', + margin: '1em', +}; +``` + +In some cases, like for CSS-in-JS libraries, an array of values is a way to provide fallback values in CSS. Using `CSS.PropertiesFallback` instead of `CSS.Properties` will add the possibility to use any property value as an array of values. + +```ts +import type * as CSS from 'csstype'; + +const style: CSS.PropertiesFallback = { + display: ['-webkit-flex', 'flex'], + color: 'white', +}; +``` + +There's even string literals for pseudo selectors and elements. + +```ts +import type * as CSS from 'csstype'; + +const pseudos: { [P in CSS.SimplePseudos]?: CSS.Properties } = { + ':hover': { + display: 'flex', + }, +}; +``` + +Hyphen cased (kebab cased) properties are provided in `CSS.PropertiesHyphen` and `CSS.PropertiesHyphenFallback`. It's not **not** added by default in `CSS.Properties`. To allow both of them, you can simply extend with `CSS.PropertiesHyphen` or/and `CSS.PropertiesHyphenFallback`. + +```ts +import type * as CSS from 'csstype'; + +interface Style extends CSS.Properties, CSS.PropertiesHyphen {} + +const style: Style = { + 'flex-grow': 1, + 'flex-shrink': 0, + 'font-weight': 'normal', + backgroundColor: 'white', +}; +``` + +Adding type checked CSS properties to a `HTMLElement`. + +```ts +import type * as CSS from 'csstype'; + +const style: CSS.Properties = { + color: 'red', + margin: '1em', +}; + +let button = document.createElement('button'); + +Object.assign(button.style, style); +``` + +## What should I do when I get type errors? + +The goal is to have as perfect types as possible and we're trying to do our best. But with CSS Custom Properties, the CSS specification changing frequently and vendors implementing their own specifications with new releases sometimes causes type errors even if it should work. Here's some steps you could take to get it fixed: + +_If you're using CSS Custom Properties you can step directly to step 3._ + +1. **First of all, make sure you're doing it right.** A type error could also indicate that you're not :wink: + - Some CSS specs that some vendors has implemented could have been officially rejected or haven't yet received any official acceptance and are therefor not included + - If you're using TypeScript, [type widening](https://blog.mariusschulz.com/2017/02/04/TypeScript-2-1-literal-type-widening) could be the reason you get `Type 'string' is not assignable to...` errors + +2. **Have a look in [issues](https://github.com/frenic/csstype/issues) to see if an issue already has been filed. If not, create a new one.** To help us out, please refer to any information you have found. +3. Fix the issue locally with **TypeScript** (Flow further down): + - The recommended way is to use **module augmentation**. Here's a few examples: + + ```ts + // My css.d.ts file + import type * as CSS from 'csstype'; + + declare module 'csstype' { + interface Properties { + // Add a missing property + WebkitRocketLauncher?: string; + + // Add a CSS Custom Property + '--theme-color'?: 'black' | 'white'; + + // Allow namespaced CSS Custom Properties + [index: `--theme-${string}`]: any; + + // Allow any CSS Custom Properties + [index: `--${string}`]: any; + + // ...or allow any other property + [index: string]: any; + } + } + ``` + + - The alternative way is to use **type assertion**. Here's a few examples: + + ```ts + const style: CSS.Properties = { + // Add a missing property + ['WebkitRocketLauncher' as any]: 'launching', + + // Add a CSS Custom Property + ['--theme-color' as any]: 'black', + }; + ``` + + Fix the issue locally with **Flow**: + - Use **type assertion**. Here's a few examples: + + ```js + const style: $Exact<CSS.Properties<*>> = { + // Add a missing property + [('WebkitRocketLauncher': any)]: 'launching', + + // Add a CSS Custom Property + [('--theme-color': any)]: 'black', + }; + ``` + +## Version 3.2 + +- **No longer compatible with version 2** + Conflicts may occur when both version ^3.2.0 and ^2.0.0 are installed. Potential fix for Npm would be to force resolution in `package.json`: + ```json + { + "overrides": { + "csstype": "^3.2.0" + } + } + ``` + +## Version 3.1 + +- **Data types are exposed** + TypeScript: `DataType.Color` + Flow: `DataType$Color` + +## Version 3.0 + +- **All property types are exposed with namespace** + TypeScript: `Property.AlignContent` (was `AlignContentProperty` before) + Flow: `Property$AlignContent` +- **All at-rules are exposed with namespace** + TypeScript: `AtRule.FontFace` (was `FontFace` before) + Flow: `AtRule$FontFace` +- **Data types are NOT exposed** + E.g. `Color` and `Box`. Because the generation of data types may suddenly be removed or renamed. +- **TypeScript hack for autocompletion** + Uses `(string & {})` for literal string unions and `(number & {})` for literal number unions ([related issue](https://github.com/microsoft/TypeScript/issues/29729)). Utilize `PropertyValue<T>` to unpack types from e.g. `(string & {})` to `string`. +- **New generic for time** + Read more on the ["Generics"](#generics) section. +- **Flow types improvements** + Flow Strict enabled and exact types are used. + +## Contributing + +**Never modify `index.d.ts` and `index.js.flow` directly. They are generated automatically and committed so that we can easily follow any change it results in.** Therefor it's important that you run `$ git config merge.ours.driver true` after you've forked and cloned. That setting prevents merge conflicts when doing rebase. + +### Commands + +- `npm run build` Generates typings and type checks them +- `npm run watch` Runs build on each save +- `npm run test` Runs the tests +- `npm run lazy` Type checks, lints and formats everything diff --git a/node_modules/csstype/index.d.ts b/node_modules/csstype/index.d.ts new file mode 100644 index 0000000..da0affd --- /dev/null +++ b/node_modules/csstype/index.d.ts @@ -0,0 +1,22569 @@ +export {}; + +export type PropertyValue<TValue> = + TValue extends Array<infer AValue> ? Array<AValue extends infer TUnpacked & {} ? TUnpacked : AValue> : TValue extends infer TUnpacked & {} ? TUnpacked : TValue; + +export type Fallback<T> = { [P in keyof T]: T[P] | readonly NonNullable<T[P]>[] }; + +export interface StandardLonghandProperties<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **93** | **92** | **15.4** | **93** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/accent-color + */ + accentColor?: Property.AccentColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **28** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-content + */ + alignContent?: Property.AlignContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-items + */ + alignItems?: Property.AlignItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **10** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-self + */ + alignSelf?: Property.AlignSelf | undefined; + /** + * **Syntax**: `[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#` + * + * **Initial value**: `normal` + */ + alignTracks?: Property.AlignTracks | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `baseline | alphabetic | ideographic | middle | central | mathematical | text-before-edge | text-after-edge` + * + * **Initial value**: `baseline` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **1** | No | **5.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/alignment-baseline + */ + alignmentBaseline?: Property.AlignmentBaseline | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <dashed-ident>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/anchor-name + */ + anchorName?: Property.AnchorName | undefined; + /** + * **Syntax**: `none | all | <dashed-ident>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **131** | **preview** | **26** | **131** | No | + */ + anchorScope?: Property.AnchorScope | undefined; + /** + * Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<single-animation-composition>#` + * + * **Initial value**: `replace` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **112** | **115** | **16** | **112** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-composition + */ + animationComposition?: Property.AnimationComposition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-delay + */ + animationDelay?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-direction + */ + animationDirection?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-duration + */ + animationDuration?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 5 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-fill-mode + */ + animationFillMode?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-iteration-count + */ + animationIterationCount?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-name + */ + animationName?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-play-state + */ + animationPlayState?: Property.AnimationPlayState | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-range-end + */ + animationRangeEnd?: Property.AnimationRangeEnd<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-range-start + */ + animationRangeStart?: Property.AnimationRangeStart<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<single-animation-timeline>#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-timeline + */ + animationTimeline?: Property.AnimationTimeline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-timing-function + */ + animationTimingFunction?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | auto | <compat-auto> | <compat-special>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :------: | :-: | + * | **84** | **80** | **15.4** | **84** | No | + * | 1 _-x-_ | 1 _-x-_ | 3 _-x-_ | 12 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/appearance + */ + appearance?: Property.Appearance | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto || <ratio>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **88** | **89** | **15** | **88** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/aspect-ratio + */ + aspectRatio?: Property.AspectRatio | undefined; + /** + * Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **76** | **103** | **18** | **79** | No | + * | | | 9 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/backdrop-filter + */ + backdropFilter?: Property.BackdropFilter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `visible | hidden` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-------: | :----: | :----: | + * | **36** | **16** | **15.4** | **12** | **10** | + * | 12 _-x-_ | 10 _-x-_ | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/backface-visibility + */ + backfaceVisibility?: Property.BackfaceVisibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<attachment>#` + * + * **Initial value**: `scroll` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-attachment + */ + backgroundAttachment?: Property.BackgroundAttachment | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<blend-mode>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **35** | **30** | **8** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-blend-mode + */ + backgroundBlendMode?: Property.BackgroundBlendMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-clip>#` + * + * **Initial value**: `border-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **4** | **5** | **12** | **9** | + * | | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-clip + */ + backgroundClip?: Property.BackgroundClip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `transparent` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-color + */ + backgroundColor?: Property.BackgroundColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-image>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-image + */ + backgroundImage?: Property.BackgroundImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<visual-box>#` + * + * **Initial value**: `padding-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **4** | **3** | **12** | **9** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-origin + */ + backgroundOrigin?: Property.BackgroundOrigin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#` + * + * **Initial value**: `0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **49** | **1** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-x + */ + backgroundPositionX?: Property.BackgroundPositionX<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#` + * + * **Initial value**: `0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **49** | **1** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-y + */ + backgroundPositionY?: Property.BackgroundPositionY<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<repeat-style>#` + * + * **Initial value**: `repeat` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-repeat + */ + backgroundRepeat?: Property.BackgroundRepeat | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **3** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-size + */ + backgroundSize?: Property.BackgroundSize<TLength> | undefined; + /** + * **Syntax**: `<length-percentage> | sub | super | baseline` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | No | **4** | **79** | No | + */ + baselineShift?: Property.BaselineShift<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------------: | :-----: | :----------------------------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * | 8 _(-webkit-logical-height)_ | | 5.1 _(-webkit-logical-height)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/block-size + */ + blockSize?: Property.BlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-color + */ + borderBlockEndColor?: Property.BorderBlockEndColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-style + */ + borderBlockEndStyle?: Property.BorderBlockEndStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-width + */ + borderBlockEndWidth?: Property.BorderBlockEndWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-color + */ + borderBlockStartColor?: Property.BorderBlockStartColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-style + */ + borderBlockStartStyle?: Property.BorderBlockStartStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-width + */ + borderBlockStartWidth?: Property.BorderBlockStartWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-color + */ + borderBottomColor?: Property.BorderBottomColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-left-radius + */ + borderBottomLeftRadius?: Property.BorderBottomLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-right-radius + */ + borderBottomRightRadius?: Property.BorderBottomRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-style + */ + borderBottomStyle?: Property.BorderBottomStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-width + */ + borderBottomWidth?: Property.BorderBottomWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `separate | collapse` + * + * **Initial value**: `separate` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-collapse + */ + borderCollapse?: Property.BorderCollapse | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-end-end-radius + */ + borderEndEndRadius?: Property.BorderEndEndRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-end-start-radius + */ + borderEndStartRadius?: Property.BorderEndStartRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <length [0,∞]> | <number [0,∞]> ]{1,4} ` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-outset + */ + borderImageOutset?: Property.BorderImageOutset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016. + * + * **Syntax**: `[ stretch | repeat | round | space ]{1,2}` + * + * **Initial value**: `stretch` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-repeat + */ + borderImageRepeat?: Property.BorderImageRepeat | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <number [0,∞]> | <percentage [0,∞]> ]{1,4} && fill?` + * + * **Initial value**: `100%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-slice + */ + borderImageSlice?: Property.BorderImageSlice | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <image>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-source + */ + borderImageSource?: Property.BorderImageSource | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **16** | **13** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-width + */ + borderImageWidth?: Property.BorderImageWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-end-color)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-color + */ + borderInlineEndColor?: Property.BorderInlineEndColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-end-style)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-style + */ + borderInlineEndStyle?: Property.BorderInlineEndStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-end-width)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-width + */ + borderInlineEndWidth?: Property.BorderInlineEndWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :---------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-start-color)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-color + */ + borderInlineStartColor?: Property.BorderInlineStartColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :---------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-start-style)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-style + */ + borderInlineStartStyle?: Property.BorderInlineStartStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-width + */ + borderInlineStartWidth?: Property.BorderInlineStartWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-color + */ + borderLeftColor?: Property.BorderLeftColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-style + */ + borderLeftStyle?: Property.BorderLeftStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-width + */ + borderLeftWidth?: Property.BorderLeftWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-color + */ + borderRightColor?: Property.BorderRightColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-style + */ + borderRightStyle?: Property.BorderRightStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-width + */ + borderRightWidth?: Property.BorderRightWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-spacing + */ + borderSpacing?: Property.BorderSpacing<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-start-end-radius + */ + borderStartEndRadius?: Property.BorderStartEndRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-start-start-radius + */ + borderStartStartRadius?: Property.BorderStartStartRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-color + */ + borderTopColor?: Property.BorderTopColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-left-radius + */ + borderTopLeftRadius?: Property.BorderTopLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-right-radius + */ + borderTopRightRadius?: Property.BorderTopRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-style + */ + borderTopStyle?: Property.BorderTopStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-width + */ + borderTopWidth?: Property.BorderTopWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/bottom + */ + bottom?: Property.Bottom<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `slice | clone` + * + * **Initial value**: `slice` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :---------: | :------: | :-: | + * | **130** | **32** | **7** _-x-_ | **130** | No | + * | 22 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-decoration-break + */ + boxDecorationBreak?: Property.BoxDecorationBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **10** | **4** | **5.1** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-shadow + */ + boxShadow?: Property.BoxShadow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `content-box | border-box` + * + * **Initial value**: `content-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **10** | **29** | **5.1** | **12** | **8** | + * | 1 _-x-_ | 1 _-x-_ | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-sizing + */ + boxSizing?: Property.BoxSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2019. + * + * **Syntax**: `auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **50** | **65** | **10** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-after + */ + breakAfter?: Property.BreakAfter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2019. + * + * **Syntax**: `auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **50** | **65** | **10** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-before + */ + breakBefore?: Property.BreakBefore | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2019. + * + * **Syntax**: `auto | avoid | avoid-page | avoid-column | avoid-region` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **50** | **65** | **10** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-inside + */ + breakInside?: Property.BreakInside | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `top | bottom` + * + * **Initial value**: `top` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caption-side + */ + captionSide?: Property.CaptionSide | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **53** | **11.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caret-color + */ + caretColor?: Property.CaretColor | undefined; + /** + * **Syntax**: `auto | bar | block | underscore` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :--: | :-: | + * | No | No | No | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caret-shape + */ + caretShape?: Property.CaretShape | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | left | right | both | inline-start | inline-end` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clear + */ + clear?: Property.Clear | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<clip-source> | [ <basic-shape> || <geometry-box> ] | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **55** | **3.5** | **9.1** | **79** | **10** | + * | 23 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-path + */ + clipPath?: Property.ClipPath | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `nonzero | evenodd` + * + * **Initial value**: `nonzero` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :----: | :-: | + * | **≤15** | **3.5** | **≤5** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-rule + */ + clipRule?: Property.ClipRule | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `canvastext` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color + */ + color?: Property.Color | undefined; + /** + * Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `economy | exact` + * + * **Initial value**: `economy` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----------------: | :------: | :------: | :-: | + * | **136** | **97** | **15.4** | **136** | No | + * | 17 _-x-_ | 48 _(color-adjust)_ | 6 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/print-color-adjust + */ + colorAdjust?: Property.PrintColorAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | sRGB | linearRGB` + * + * **Initial value**: `linearRGB` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **3** | **3** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color-interpolation-filters + */ + colorInterpolationFilters?: Property.ColorInterpolationFilters | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2022. + * + * **Syntax**: `normal | [ light | dark | <custom-ident> ]+ && only?` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **81** | **96** | **13** | **81** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color-scheme + */ + colorScheme?: Property.ColorScheme | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<integer> | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-count + */ + columnCount?: Property.ColumnCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `auto | balance` + * + * **Initial value**: `balance` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-fill + */ + columnFill?: Property.ColumnFill | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <length-percentage>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **1** | **1.5** | **3** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-gap + */ + columnGap?: Property.ColumnGap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-color + */ + columnRuleColor?: Property.ColumnRuleColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-style + */ + columnRuleStyle?: Property.ColumnRuleStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-width + */ + columnRuleWidth?: Property.ColumnRuleWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `none | all` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **50** | **71** | **9** | **12** | **10** | + * | 6 _-x-_ | | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-span + */ + columnSpan?: Property.ColumnSpan | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016. + * + * **Syntax**: `<length> | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **50** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-width + */ + columnWidth?: Property.ColumnWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | strict | content | [ [ size || inline-size ] || layout || style || paint ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **52** | **69** | **15.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain + */ + contain?: Property.Contain | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-block-size + */ + containIntrinsicBlockSize?: Property.ContainIntrinsicBlockSize<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-height + */ + containIntrinsicHeight?: Property.ContainIntrinsicHeight<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-inline-size + */ + containIntrinsicInlineSize?: Property.ContainIntrinsicInlineSize<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-width + */ + containIntrinsicWidth?: Property.ContainIntrinsicWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `none | <custom-ident>+` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **105** | **110** | **16** | **105** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container-name + */ + containerName?: Property.ContainerName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `normal | [ [ size | inline-size ] || scroll-state ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **105** | **110** | **16** | **105** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container-type + */ + containerType?: Property.ContainerType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | none | [ <content-replacement> | <content-list> ] [ / [ <string> | <counter> | <attr()> ]+ ]?` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content + */ + content?: Property.Content | undefined; + /** + * Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `visible | auto | hidden` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **85** | **125** | **18** | **85** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content-visibility + */ + contentVisibility?: Property.ContentVisibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <counter-name> <integer>? ]+ | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **2** | **1** | **3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-increment + */ + counterIncrement?: Property.CounterIncrement | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **2** | **1** | **3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-reset + */ + counterReset?: Property.CounterReset | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <counter-name> <integer>? ]+ | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **85** | **68** | **17.2** | **85** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-set + */ + counterSet?: Property.CounterSet | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021. + * + * **Syntax**: `[ [ <url> [ <x> <y> ]? , ]* <cursor-predefined> ]` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.2** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cursor + */ + cursor?: Property.Cursor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **43** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cx + */ + cx?: Property.Cx<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **43** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cy + */ + cy?: Property.Cy<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | path(<string>)` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **52** | **97** | No | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/d + */ + d?: Property.D | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `ltr | rtl` + * + * **Initial value**: `ltr` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **2** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/direction + */ + direction?: Property.Direction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>` + * + * **Initial value**: `inline` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/display + */ + display?: Property.Display | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **1** | **4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/dominant-baseline + */ + dominantBaseline?: Property.DominantBaseline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `show | hide` + * + * **Initial value**: `show` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/empty-cells + */ + emptyCells?: Property.EmptyCells | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `content | fixed` + * + * **Initial value**: `fixed` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :---------: | :-----: | :-: | + * | **123** | No | **preview** | **123** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/field-sizing + */ + fieldSizing?: Property.FieldSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<paint>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill + */ + fill?: Property.Fill | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill-opacity + */ + fillOpacity?: Property.FillOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `nonzero | evenodd` + * + * **Initial value**: `nonzero` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill-rule + */ + fillRule?: Property.FillRule | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :-: | + * | **53** | **35** | **9.1** | **12** | No | + * | 18 _-x-_ | | 6 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/filter + */ + filter?: Property.Filter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `content | <'width'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **22** | **9** | **12** | **11** | + * | 22 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-basis + */ + flexBasis?: Property.FlexBasis<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `row | row-reverse | column | column-reverse` + * + * **Initial value**: `row` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :------: | + * | **29** | **22** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-direction + */ + flexDirection?: Property.FlexDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----------------------: | + * | **29** | **20** | **9** | **12** | **11** | + * | 22 _-x-_ | | 7 _-x-_ | | 10 _(-ms-flex-positive)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-grow + */ + flexGrow?: Property.FlexGrow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **10** | + * | 22 _-x-_ | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-shrink + */ + flexShrink?: Property.FlexShrink | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `nowrap | wrap | wrap-reverse` + * + * **Initial value**: `nowrap` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **28** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-wrap + */ + flexWrap?: Property.FlexWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `left | right | none | inline-start | inline-end` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/float + */ + float?: Property.Float | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **5** | **3** | **6** | **12** | **≤11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flood-color + */ + floodColor?: Property.FloodColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **5** | **3** | **6** | **12** | **≤11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flood-opacity + */ + floodOpacity?: Property.FloodOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <family-name> | <generic-family> ]#` + * + * **Initial value**: depends on user agent + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-family + */ + fontFamily?: Property.FontFamily | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `normal | <feature-tag-value>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :----: | + * | **48** | **34** | **9.1** | **15** | **10** | + * | 16 _-x-_ | 15 _-x-_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-feature-settings + */ + fontFeatureSettings?: Property.FontFeatureSettings | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | normal | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **33** | **32** | **9** | **79** | No | + * | | | 6 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-kerning + */ + fontKerning?: Property.FontKerning | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <string>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **143** | **34** | No | **143** | No | + * | | 4 _-x-_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-language-override + */ + fontLanguageOverride?: Property.FontLanguageOverride | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2020. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **79** | **62** | **13.1** | **17** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-optical-sizing + */ + fontOpticalSizing?: Property.FontOpticalSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2022. + * + * **Syntax**: `normal | light | dark | <palette-identifier> | <palette-mix()>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **101** | **107** | **15.4** | **101** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-palette + */ + fontPalette?: Property.FontPalette | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<absolute-size> | <relative-size> | <length-percentage [0,∞]> | math` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-size + */ + fontSize?: Property.FontSize<TLength> | undefined; + /** + * Since July 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **127** | **3** | **16.4** | **127** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-size-adjust + */ + fontSizeAdjust?: Property.FontSizeAdjust | undefined; + /** + * The **`font-smooth`** CSS property controls the application of anti-aliasing when fonts are rendered. + * + * **Syntax**: `auto | never | always | <absolute-size> | <length>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------: | :--------------------------------: | :------------------------------: | :-------------------------------: | :-: | + * | **5** _(-webkit-font-smoothing)_ | **25** _(-moz-osx-font-smoothing)_ | **4** _(-webkit-font-smoothing)_ | **79** _(-webkit-font-smoothing)_ | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-smooth + */ + fontSmooth?: Property.FontSmooth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | italic | oblique <angle>?` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-style + */ + fontStyle?: Property.FontStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2022. + * + * **Syntax**: `none | [ weight || style || small-caps || position]` + * + * **Initial value**: `weight style small-caps position ` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **97** | **34** | **9** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis + */ + fontSynthesis?: Property.FontSynthesis | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :--: | :-: | + * | No | **118** | No | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-position + */ + fontSynthesisPosition?: Property.FontSynthesisPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **97** | **111** | **16.4** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-small-caps + */ + fontSynthesisSmallCaps?: Property.FontSynthesisSmallCaps | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **97** | **111** | **16.4** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-style + */ + fontSynthesisStyle?: Property.FontSynthesisStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **97** | **111** | **16.4** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-weight + */ + fontSynthesisWeight?: Property.FontSynthesisWeight | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant + */ + fontVariant?: Property.FontVariant | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :-----: | :-: | + * | **111** | **34** | **9.1** | **111** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-alternates + */ + fontVariantAlternates?: Property.FontVariantAlternates | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **52** | **34** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-caps + */ + fontVariantCaps?: Property.FontVariantCaps | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **63** | **34** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-east-asian + */ + fontVariantEastAsian?: Property.FontVariantEastAsian | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | text | emoji | unicode` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **131** | **141** | No | **131** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-emoji + */ + fontVariantEmoji?: Property.FontVariantEmoji | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :-: | + * | **34** | **34** | **9.1** | **79** | No | + * | 31 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-ligatures + */ + fontVariantLigatures?: Property.FontVariantLigatures | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **52** | **34** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-numeric + */ + fontVariantNumeric?: Property.FontVariantNumeric | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | sub | super` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :--: | :-: | + * | No | **34** | **9.1** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-position + */ + fontVariantPosition?: Property.FontVariantPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2018. + * + * **Syntax**: `normal | [ <string> <number> ]#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **62** | **62** | **11** | **17** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variation-settings + */ + fontVariationSettings?: Property.FontVariationSettings | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<font-weight-absolute> | bolder | lighter` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **2** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-weight + */ + fontWeight?: Property.FontWeight | undefined; + /** + * **Syntax**: `normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **18.4** | No | No | + */ + fontWidth?: Property.FontWidth | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | none | preserve-parent-color` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----------------------------: | :---------------------------------: | + * | **89** | **113** | No | **79** | **10** _(-ms-high-contrast-adjust)_ | + * | | | | 12 _(-ms-high-contrast-adjust)_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/forced-color-adjust + */ + forcedColorAdjust?: Property.ForcedColorAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<track-size>+` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-------------------------: | + * | **57** | **70** | **10.1** | **16** | **10** _(-ms-grid-columns)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-columns + */ + gridAutoColumns?: Property.GridAutoColumns<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `[ row | column ] || dense` + * + * **Initial value**: `row` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-flow + */ + gridAutoFlow?: Property.GridAutoFlow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<track-size>+` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :----------------------: | + * | **57** | **70** | **10.1** | **16** | **10** _(-ms-grid-rows)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-rows + */ + gridAutoRows?: Property.GridAutoRows<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column-end + */ + gridColumnEnd?: Property.GridColumnEnd | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column-start + */ + gridColumnStart?: Property.GridColumnStart | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row-end + */ + gridRowEnd?: Property.GridRowEnd | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row-start + */ + gridRowStart?: Property.GridRowStart | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | <string>+` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-areas + */ + gridTemplateAreas?: Property.GridTemplateAreas | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | <track-list> | <auto-track-list> | subgrid <line-name-list>?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-------------------------: | + * | **57** | **52** | **10.1** | **16** | **10** _(-ms-grid-columns)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-columns + */ + gridTemplateColumns?: Property.GridTemplateColumns<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | <track-list> | <auto-track-list> | subgrid <line-name-list>?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :----------------------: | + * | **57** | **52** | **10.1** | **16** | **10** _(-ms-grid-rows)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-rows + */ + gridTemplateRows?: Property.GridTemplateRows<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ first || [ force-end | allow-end ] || last ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :--: | :-: | + * | No | No | **10** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hanging-punctuation + */ + hangingPunctuation?: Property.HangingPunctuation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/height + */ + height?: Property.Height<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | <string>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :------: | :-: | + * | **106** | **98** | **17** | **106** | No | + * | 6 _-x-_ | | 5.1 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphenate-character + */ + hyphenateCharacter?: Property.HyphenateCharacter | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ auto | <integer> ]{1,3}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **109** | **137** | No | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphenate-limit-chars + */ + hyphenateLimitChars?: Property.HyphenateLimitChars | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-------: | :----: | :----------: | + * | **55** | **43** | **17** | **79** | **10** _-x-_ | + * | 13 _-x-_ | 6 _-x-_ | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphens + */ + hyphens?: Property.Hyphens | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2020. + * + * **Syntax**: `from-image | <angle> | [ <angle>? flip ]` + * + * **Initial value**: `from-image` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **81** | **26** | **13.1** | **81** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/image-orientation + */ + imageOrientation?: Property.ImageOrientation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | crisp-edges | pixelated | smooth` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **13** | **3.6** | **6** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/image-rendering + */ + imageRendering?: Property.ImageRendering | undefined; + /** + * The **`image-resolution`** CSS property specifies the intrinsic resolution of all raster images used in or on the element. It affects content images such as replaced elements and generated content, and decorative images such as `background-image` images. + * + * **Syntax**: `[ from-image || <resolution> ] && snap?` + * + * **Initial value**: `1dppx` + */ + imageResolution?: Property.ImageResolution | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | [ <number> <integer>? ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :---------: | :-----: | :-: | + * | **110** | No | **9** _-x-_ | **110** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/initial-letter + */ + initialLetter?: Property.InitialLetter | undefined; + /** + * **Syntax**: `[ auto | alphabetic | hanging | ideographic ]` + * + * **Initial value**: `auto` + */ + initialLetterAlign?: Property.InitialLetterAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------: | :-----: | :---------------------------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * | 8 _(-webkit-logical-width)_ | | 5.1 _(-webkit-logical-width)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inline-size + */ + inlineSize?: Property.InlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block-end + */ + insetBlockEnd?: Property.InsetBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block-start + */ + insetBlockStart?: Property.InsetBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline-end + */ + insetInlineEnd?: Property.InsetInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline-start + */ + insetInlineStart?: Property.InsetInlineStart<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `numeric-only | allow-keywords` + * + * **Initial value**: `numeric-only` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **129** | No | No | **129** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/interpolate-size + */ + interpolateSize?: Property.InterpolateSize | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | isolate` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **41** | **36** | **8** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/isolation + */ + isolation?: Property.Isolation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-content + */ + justifyContent?: Property.JustifyContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2016. + * + * **Syntax**: `normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center` + * + * **Initial value**: `legacy` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **52** | **20** | **9** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-items + */ + justifyItems?: Property.JustifyItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :----: | + * | **57** | **45** | **10.1** | **16** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-self + */ + justifySelf?: Property.JustifySelf | undefined; + /** + * **Syntax**: `[ normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ]#` + * + * **Initial value**: `normal` + */ + justifyTracks?: Property.JustifyTracks | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/left + */ + left?: Property.Left<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <length>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/letter-spacing + */ + letterSpacing?: Property.LetterSpacing<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `white` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **5** | **3** | **6** | **12** | **≤11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/lighting-color + */ + lightingColor?: Property.LightingColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :-----: | + * | **58** | **69** | **11** | **14** | **5.5** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-break + */ + lineBreak?: Property.LineBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <number> | <length> | <percentage>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-height + */ + lineHeight?: Property.LineHeight<TLength> | undefined; + /** + * The **`line-height-step`** CSS property sets the step unit for line box heights. When the property is set, line box heights are rounded up to the closest multiple of the unit. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + lineHeightStep?: Property.LineHeightStep<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<image> | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-image + */ + listStyleImage?: Property.ListStyleImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `inside | outside` + * + * **Initial value**: `outside` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-position + */ + listStylePosition?: Property.ListStylePosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<counter-style> | <string> | none` + * + * **Initial value**: `disc` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-type + */ + listStyleType?: Property.ListStyleType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block-end + */ + marginBlockEnd?: Property.MarginBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block-start + */ + marginBlockStart?: Property.MarginBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-bottom + */ + marginBottom?: Property.MarginBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----------------------: | :-------------------: | :----------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-margin-end)_ | 3 _(-moz-margin-end)_ | 3 _(-webkit-margin-end)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline-end + */ + marginInlineEnd?: Property.MarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------: | :---------------------: | :------------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-margin-start)_ | 3 _(-moz-margin-start)_ | 3 _(-webkit-margin-start)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline-start + */ + marginInlineStart?: Property.MarginInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-left + */ + marginLeft?: Property.MarginLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-right + */ + marginRight?: Property.MarginRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-top + */ + marginTop?: Property.MarginTop<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | in-flow | all` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **16.4** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-trim + */ + marginTrim?: Property.MarginTrim | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker + */ + marker?: Property.Marker | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-end + */ + markerEnd?: Property.MarkerEnd | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-mid + */ + markerMid?: Property.MarkerMid | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-start + */ + markerStart?: Property.MarkerStart | undefined; + /** + * The **`mask-border-mode`** CSS property specifies the blending mode used in a mask border. + * + * **Syntax**: `luminance | alpha` + * + * **Initial value**: `alpha` + */ + maskBorderMode?: Property.MaskBorderMode | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length> | <number> ]{1,4}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------------------: | :-----: | :-----------------------------------: | :--------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-outset)_ | No | **17.2** | **79** _(-webkit-mask-box-image-outset)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-outset)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-outset + */ + maskBorderOutset?: Property.MaskBorderOutset<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ stretch | repeat | round | space ]{1,2}` + * + * **Initial value**: `stretch` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------------------: | :-----: | :-----------------------------------: | :--------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-repeat)_ | No | **17.2** | **79** _(-webkit-mask-box-image-repeat)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-repeat)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-repeat + */ + maskBorderRepeat?: Property.MaskBorderRepeat | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<number-percentage>{1,4} fill?` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------------: | :-----: | :----------------------------------: | :-------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-slice)_ | No | **17.2** | **79** _(-webkit-mask-box-image-slice)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-slice)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-slice + */ + maskBorderSlice?: Property.MaskBorderSlice | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <image>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------------------: | :-----: | :-----------------------------------: | :--------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-source)_ | No | **17.2** | **79** _(-webkit-mask-box-image-source)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-source)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-source + */ + maskBorderSource?: Property.MaskBorderSource | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length-percentage> | <number> | auto ]{1,4}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------------: | :-----: | :----------------------------------: | :-------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-width)_ | No | **17.2** | **79** _(-webkit-mask-box-image-width)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-width)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-width + */ + maskBorderWidth?: Property.MaskBorderWidth<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <coord-box> | no-clip ]#` + * + * **Initial value**: `border-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :------: | :-: | + * | **120** | **53** | **15.4** | **120** | No | + * | 1 _-x-_ | | 4 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-clip + */ + maskClip?: Property.MaskClip | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<compositing-operator>#` + * + * **Initial value**: `add` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-composite + */ + maskComposite?: Property.MaskComposite | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<mask-reference>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **120** | **53** | **15.4** | 16-79 | No | + * | 1 _-x-_ | | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-image + */ + maskImage?: Property.MaskImage | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<masking-mode>#` + * + * **Initial value**: `match-source` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **120** | **53** | **15.4** | **120** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-mode + */ + maskMode?: Property.MaskMode | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<coord-box>#` + * + * **Initial value**: `border-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :------: | :-: | + * | **120** | **53** | **15.4** | **120** | No | + * | 1 _-x-_ | | 4 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-origin + */ + maskOrigin?: Property.MaskOrigin | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<position>#` + * + * **Initial value**: `0% 0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-position + */ + maskPosition?: Property.MaskPosition<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<repeat-style>#` + * + * **Initial value**: `repeat` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-repeat + */ + maskRepeat?: Property.MaskRepeat | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * | 4 _-x-_ | | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-size + */ + maskSize?: Property.MaskSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `luminance | alpha` + * + * **Initial value**: `luminance` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **24** | **35** | **7** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-type + */ + maskType?: Property.MaskType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `[ pack | next ] || [ definite-first | ordered ]` + * + * **Initial value**: `pack` + */ + masonryAutoFlow?: Property.MasonryAutoFlow | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto-add | add(<integer>) | <integer>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **109** | **117** | No | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-depth + */ + mathDepth?: Property.MathDepth | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | compact` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **109** | No | No | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-shift + */ + mathShift?: Property.MathShift | undefined; + /** + * Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | compact` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **109** | **117** | **14.1** | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-style + */ + mathStyle?: Property.MathStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'max-width'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-block-size + */ + maxBlockSize?: Property.MaxBlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.3** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-height + */ + maxHeight?: Property.MaxHeight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'max-width'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :--------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * | | | 10.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-inline-size + */ + maxInlineSize?: Property.MaxInlineSize<TLength> | undefined; + /** + * **Syntax**: `none | <integer>` + * + * **Initial value**: `none` + */ + maxLines?: Property.MaxLines | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-width + */ + maxWidth?: Property.MaxWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'min-width'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-block-size + */ + minBlockSize?: Property.MinBlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **3** | **1.3** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height + */ + minHeight?: Property.MinHeight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'min-width'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-inline-size + */ + minInlineSize?: Property.MinInlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-width + */ + minWidth?: Property.MinWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<blend-mode> | plus-darker | plus-lighter` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **41** | **32** | **8** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mix-blend-mode + */ + mixBlendMode?: Property.MixBlendMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion-distance)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-distance + */ + motionDistance?: Property.OffsetDistance<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | <offset-path> || <coord-box>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----------------: | :-----: | :------: | :----: | :-: | + * | **55** | **72** | **15.4** | **79** | No | + * | 46 _(motion-path)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-path + */ + motionPath?: Property.OffsetPath | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ auto | reverse ] || <angle>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **56** | **72** | **16** | **79** | No | + * | 46 _(motion-rotation)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate + */ + motionRotation?: Property.OffsetRotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `fill | contain | cover | none | scale-down` + * + * **Initial value**: `fill` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **32** | **36** | **10** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-fit + */ + objectFit?: Property.ObjectFit | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **32** | **36** | **10** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-position + */ + objectPosition?: Property.ObjectPosition<TLength> | undefined; + /** + * **Syntax**: `none | <basic-shape-rect>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **104** | No | No | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-view-box + */ + objectViewBox?: Property.ObjectViewBox | undefined; + /** + * Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | <position>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **116** | **72** | **16** | **116** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-anchor + */ + offsetAnchor?: Property.OffsetAnchor<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion-distance)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-distance + */ + offsetDistance?: Property.OffsetDistance<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | <offset-path> || <coord-box>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----------------: | :-----: | :------: | :----: | :-: | + * | **55** | **72** | **15.4** | **79** | No | + * | 46 _(motion-path)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-path + */ + offsetPath?: Property.OffsetPath | undefined; + /** + * Since January 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | auto | <position>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **116** | **122** | **16** | **116** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-position + */ + offsetPosition?: Property.OffsetPosition<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ auto | reverse ] || <angle>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **56** | **72** | **16** | **79** | No | + * | 46 _(motion-rotation)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate + */ + offsetRotate?: Property.OffsetRotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ auto | reverse ] || <angle>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **56** | **72** | **16** | **79** | No | + * | 46 _(motion-rotation)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate + */ + offsetRotation?: Property.OffsetRotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **2** | **12** | **9** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/opacity + */ + opacity?: Property.Opacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :------: | + * | **29** | **20** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/order + */ + order?: Property.Order | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `2` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **25** | No | **1.3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/orphans + */ + orphans?: Property.Orphans | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1.5** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-color + */ + outlineColor?: Property.OutlineColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **1** | **1.5** | **1.2** | **15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-offset + */ + outlineOffset?: Property.OutlineOffset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <outline-line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1.5** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-style + */ + outlineStyle?: Property.OutlineStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1.5** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-width + */ + outlineWidth?: Property.OutlineWidth<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :---------: | :----: | :-: | + * | **56** | **66** | **preview** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-anchor + */ + overflowAnchor?: Property.OverflowAnchor | undefined; + /** + * Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **135** | **69** | **26** | **135** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-block + */ + overflowBlock?: Property.OverflowBlock | undefined; + /** + * **Syntax**: `padding-box | content-box` + * + * **Initial value**: `padding-box` + */ + overflowClipBox?: Property.OverflowClipBox | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<visual-box> || <length [0,∞]>` + * + * **Initial value**: `0px` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **90** | **102** | No | **90** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-clip-margin + */ + overflowClipMargin?: Property.OverflowClipMargin<TLength> | undefined; + /** + * Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **135** | **69** | **26** | **135** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-inline + */ + overflowInline?: Property.OverflowInline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2018. + * + * **Syntax**: `normal | break-word | anywhere` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------: | :---------------: | :-------------: | :--------------: | :-------------------: | + * | **23** | **49** | **7** | **18** | **5.5** _(word-wrap)_ | + * | 1 _(word-wrap)_ | 3.5 _(word-wrap)_ | 1 _(word-wrap)_ | 12 _(word-wrap)_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap + */ + overflowWrap?: Property.OverflowWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **3.5** | **3** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-x + */ + overflowX?: Property.OverflowX | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **3.5** | **3** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-y + */ + overflowY?: Property.OverflowY | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **117** | No | No | **117** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overlay + */ + overlay?: Property.Overlay | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **77** | **73** | **16** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-block + */ + overscrollBehaviorBlock?: Property.OverscrollBehaviorBlock | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **77** | **73** | **16** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-inline + */ + overscrollBehaviorInline?: Property.OverscrollBehaviorInline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **63** | **59** | **16** | **18** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-x + */ + overscrollBehaviorX?: Property.OverscrollBehaviorX | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **63** | **59** | **16** | **18** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-y + */ + overscrollBehaviorY?: Property.OverscrollBehaviorY | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block-end + */ + paddingBlockEnd?: Property.PaddingBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block-start + */ + paddingBlockStart?: Property.PaddingBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-bottom + */ + paddingBottom?: Property.PaddingBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----------------------: | :--------------------: | :-----------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-padding-end)_ | 3 _(-moz-padding-end)_ | 3 _(-webkit-padding-end)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline-end + */ + paddingInlineEnd?: Property.PaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------: | :----------------------: | :-------------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-padding-start)_ | 3 _(-moz-padding-start)_ | 3 _(-webkit-padding-start)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline-start + */ + paddingInlineStart?: Property.PaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-left + */ + paddingLeft?: Property.PaddingLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-right + */ + paddingRight?: Property.PaddingRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-top + */ + paddingTop?: Property.PaddingTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `auto | <custom-ident>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **85** | **110** | **1** | **85** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/page + */ + page?: Property.Page | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | [ fill || stroke || markers ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **123** | **60** | **11** | **123** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/paint-order + */ + paintOrder?: Property.PaintOrder | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <length>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 12 _-x-_ | 10 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/perspective + */ + perspective?: Property.Perspective<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 12 _-x-_ | 10 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/perspective-origin + */ + perspectiveOrigin?: Property.PerspectiveOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **1** | **1.5** | **4** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/pointer-events + */ + pointerEvents?: Property.PointerEvents | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `static | relative | absolute | sticky | fixed` + * + * **Initial value**: `static` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position + */ + position?: Property.Position | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | <anchor-name>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-anchor + */ + positionAnchor?: Property.PositionAnchor | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <position-area>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **129** | **preview** | **26** | **129** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-area + */ + positionArea?: Property.PositionArea | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ [<dashed-ident> || <try-tactic>] | <'position-area'> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **128** | **preview** | **26** | **128** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try-fallbacks + */ + positionTryFallbacks?: Property.PositionTryFallbacks | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <try-size>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **125** | No | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try-order + */ + positionTryOrder?: Property.PositionTryOrder | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `always | [ anchors-valid || anchors-visible || no-overflow ]` + * + * **Initial value**: `anchors-visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | No | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-visibility + */ + positionVisibility?: Property.PositionVisibility | undefined; + /** + * Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `economy | exact` + * + * **Initial value**: `economy` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----------------: | :------: | :------: | :-: | + * | **136** | **97** | **15.4** | **136** | No | + * | 17 _-x-_ | 48 _(color-adjust)_ | 6 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/print-color-adjust + */ + printColorAdjust?: Property.PrintColorAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | auto | [ <string> <string> ]+` + * + * **Initial value**: depends on user agent + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **11** | **1.5** | **9** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/quotes + */ + quotes?: Property.Quotes | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **43** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/r + */ + r?: Property.R<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | both | horizontal | vertical | block | inline` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **4** | **3** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/resize + */ + resize?: Property.Resize | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/right + */ + right?: Property.Right<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022. + * + * **Syntax**: `none | <angle> | [ x | y | z | <number>{3} ] && <angle>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **104** | **72** | **14.1** | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/rotate + */ + rotate?: Property.Rotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `normal | <length-percentage>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **47** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/row-gap + */ + rowGap?: Property.RowGap<TLength> | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `start | center | space-between | space-around` + * + * **Initial value**: `space-around` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **128** | **38** | **18.2** | **128** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-align + */ + rubyAlign?: Property.RubyAlign | undefined; + /** + * **Syntax**: `separate | collapse | auto` + * + * **Initial value**: `separate` + */ + rubyMerge?: Property.RubyMerge | undefined; + /** + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **18.2** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-overhang + */ + rubyOverhang?: Property.RubyOverhang | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ alternate || [ over | under ] ] | inter-character` + * + * **Initial value**: `alternate` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **84** | **38** | **18.2** | 12-79 | No | + * | 1 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-position + */ + rubyPosition?: Property.RubyPosition | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **43** | **69** | **17.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/rx + */ + rx?: Property.Rx<TLength> | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **43** | **69** | **17.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ry + */ + ry?: Property.Ry<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022. + * + * **Syntax**: `none | [ <number> | <percentage> ]{1,3}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **104** | **72** | **14.1** | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scale + */ + scale?: Property.Scale | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | smooth` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **61** | **36** | **15.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-behavior + */ + scrollBehavior?: Property.ScrollBehavior | undefined; + /** + * **Syntax**: `none | nearest` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **133** | No | No | **133** | No | + */ + scrollInitialTarget?: Property.ScrollInitialTarget | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block-end + */ + scrollMarginBlockEnd?: Property.ScrollMarginBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block-start + */ + scrollMarginBlockStart?: Property.ScrollMarginBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-bottom)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-bottom + */ + scrollMarginBottom?: Property.ScrollMarginBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline-end + */ + scrollMarginInlineEnd?: Property.ScrollMarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline-start + */ + scrollMarginInlineStart?: Property.ScrollMarginInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-left)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-left + */ + scrollMarginLeft?: Property.ScrollMarginLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-right)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-right + */ + scrollMarginRight?: Property.ScrollMarginRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :---------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-top)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-top + */ + scrollMarginTop?: Property.ScrollMarginTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block-end + */ + scrollPaddingBlockEnd?: Property.ScrollPaddingBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block-start + */ + scrollPaddingBlockStart?: Property.ScrollPaddingBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-bottom + */ + scrollPaddingBottom?: Property.ScrollPaddingBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline-end + */ + scrollPaddingInlineEnd?: Property.ScrollPaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline-start + */ + scrollPaddingInlineStart?: Property.ScrollPaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-left + */ + scrollPaddingLeft?: Property.ScrollPaddingLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-right + */ + scrollPaddingRight?: Property.ScrollPaddingRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-top + */ + scrollPaddingTop?: Property.ScrollPaddingTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `[ none | start | end | center ]{1,2}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-align + */ + scrollSnapAlign?: Property.ScrollSnapAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-bottom)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-bottom + */ + scrollSnapMarginBottom?: Property.ScrollMarginBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-left)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-left + */ + scrollSnapMarginLeft?: Property.ScrollMarginLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-right)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-right + */ + scrollSnapMarginRight?: Property.ScrollMarginRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :---------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-top)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-top + */ + scrollSnapMarginTop?: Property.ScrollMarginTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2022. + * + * **Syntax**: `normal | always` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **75** | **103** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-stop + */ + scrollSnapStop?: Property.ScrollSnapStop | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2022. + * + * **Syntax**: `none | [ x | y | block | inline | both ] [ mandatory | proximity ]?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----------: | + * | **69** | 39-68 | **11** | **79** | **10** _-x-_ | + * | | | 9 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-type + */ + scrollSnapType?: Property.ScrollSnapType | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ block | inline | x | y ]#` + * + * **Initial value**: `block` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-timeline-axis + */ + scrollTimelineAxis?: Property.ScrollTimelineAxis | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ none | <dashed-ident> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-timeline-name + */ + scrollTimelineName?: Property.ScrollTimelineName | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | <color>{2}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **121** | **64** | No | **121** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-color + */ + scrollbarColor?: Property.ScrollbarColor | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | stable && both-edges?` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **94** | **97** | **18.2** | **94** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-gutter + */ + scrollbarGutter?: Property.ScrollbarGutter | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | thin | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **121** | **64** | **18.2** | **121** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-width + */ + scrollbarWidth?: Property.ScrollbarWidth | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `0.0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **37** | **62** | **10.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-image-threshold + */ + shapeImageThreshold?: Property.ShapeImageThreshold | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **37** | **62** | **10.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-margin + */ + shapeMargin?: Property.ShapeMargin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ <shape-box> || <basic-shape> ] | <image>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **37** | **62** | **10.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-outside + */ + shapeOutside?: Property.ShapeOutside | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | optimizeSpeed | crispEdges | geometricPrecision` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **3** | **4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-rendering + */ + shapeRendering?: Property.ShapeRendering | undefined; + /** + * **Syntax**: `normal | spell-out || digits || [ literal-punctuation | no-punctuation ]` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **11.1** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/speak-as + */ + speakAs?: Property.SpeakAs | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'color'>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stop-color + */ + stopColor?: Property.StopColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stop-opacity + */ + stopOpacity?: Property.StopOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<paint>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke + */ + stroke?: Property.Stroke | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `transparent` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **11.1** | No | No | + */ + strokeColor?: Property.StrokeColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <dasharray>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-dasharray + */ + strokeDasharray?: Property.StrokeDasharray<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length-percentage> | <number>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-dashoffset + */ + strokeDashoffset?: Property.StrokeDashoffset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `butt | round | square` + * + * **Initial value**: `butt` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-linecap + */ + strokeLinecap?: Property.StrokeLinecap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `miter | miter-clip | round | bevel | arcs` + * + * **Initial value**: `miter` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-linejoin + */ + strokeLinejoin?: Property.StrokeLinejoin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<number>` + * + * **Initial value**: `4` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-miterlimit + */ + strokeMiterlimit?: Property.StrokeMiterlimit | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-opacity + */ + strokeOpacity?: Property.StrokeOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length-percentage> | <number>` + * + * **Initial value**: `1px` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-width + */ + strokeWidth?: Property.StrokeWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2021. + * + * **Syntax**: `<integer> | <length>` + * + * **Initial value**: `8` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **21** | **91** | **7** | **79** | No | + * | | 4 _-x-_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/tab-size + */ + tabSize?: Property.TabSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | fixed` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **14** | **1** | **1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/table-layout + */ + tableLayout?: Property.TableLayout | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `start | end | left | right | center | justify | match-parent` + * + * **Initial value**: `start`, or a nameless value that acts as `left` if _direction_ is `ltr`, `right` if _direction_ is `rtl` if `start` is not supported by the browser. + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-align + */ + textAlign?: Property.TextAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `auto | start | end | left | right | center | justify` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **47** | **49** | **16** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-align-last + */ + textAlignLast?: Property.TextAlignLast | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016. + * + * **Syntax**: `start | middle | end` + * + * **Initial value**: `start` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤14** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-anchor + */ + textAnchor?: Property.TextAnchor | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <autospace> | auto` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **140** | **145** | **18.4** | **140** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-autospace + */ + textAutospace?: Property.TextAutospace | undefined; + /** + * **Syntax**: `normal | <'text-box-trim'> || <'text-box-edge'>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **133** | No | **18.2** | **133** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-box + */ + textBox?: Property.TextBox | undefined; + /** + * **Syntax**: `auto | <text-edge>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **133** | No | **18.2** | **133** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-box-edge + */ + textBoxEdge?: Property.TextBoxEdge | undefined; + /** + * **Syntax**: `none | trim-start | trim-end | trim-both` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **133** | No | **18.2** | **133** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-box-trim + */ + textBoxTrim?: Property.TextBoxTrim | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | all | [ digits <integer>? ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------: | :-----: | :--------------------------: | :----: | :------------------------------------: | + * | **48** | **48** | **15.4** | **79** | **11** _(-ms-text-combine-horizontal)_ | + * | 9 _(-webkit-text-combine)_ | | 5.1 _(-webkit-text-combine)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-combine-upright + */ + textCombineUpright?: Property.TextCombineUpright | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **36** | **12.1** | **79** | No | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-color + */ + textDecorationColor?: Property.TextDecorationColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **36** | **12.1** | **79** | No | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-line + */ + textDecorationLine?: Property.TextDecorationLine | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]` + * + * **Initial value**: `objects` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | 57-64 | No | **12.1** | No | No | + * | | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip + */ + textDecorationSkip?: Property.TextDecorationSkip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | all | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **64** | **70** | **15.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink + */ + textDecorationSkipInk?: Property.TextDecorationSkipInk | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `solid | double | dotted | dashed | wavy` + * + * **Initial value**: `solid` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **36** | **12.1** | **79** | No | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-style + */ + textDecorationStyle?: Property.TextDecorationStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2021. + * + * **Syntax**: `auto | from-font | <length> | <percentage> ` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **89** | **70** | **12.1** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-thickness + */ + textDecorationThickness?: Property.TextDecorationThickness<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-color + */ + textEmphasisColor?: Property.TextEmphasisColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | [ over | under ] && [ right | left ]?` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-position + */ + textEmphasisPosition?: Property.TextEmphasisPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-style + */ + textEmphasisStyle?: Property.TextEmphasisStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> && hanging? && each-line?` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-indent + */ + textIndent?: Property.TextIndent<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | inter-character | inter-word | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :---: | :----: | + * | No | **55** | No | 12-79 | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-justify + */ + textJustify?: Property.TextJustify | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020. + * + * **Syntax**: `mixed | upright | sideways` + * + * **Initial value**: `mixed` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-------: | :----: | :-: | + * | **48** | **41** | **14** | **79** | No | + * | 12 _-x-_ | | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-orientation + */ + textOrientation?: Property.TextOrientation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ clip | ellipsis | <string> ]{1,2}` + * + * **Initial value**: `clip` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **7** | **1.3** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-overflow + */ + textOverflow?: Property.TextOverflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | optimizeSpeed | optimizeLegibility | geometricPrecision` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **4** | **1** | **5** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-rendering + */ + textRendering?: Property.TextRendering | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow-t>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----: | + * | **2** | **3.5** | **1.1** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-shadow + */ + textShadow?: Property.TextShadow | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto | <percentage>` + * + * **Initial value**: `auto` for smartphone browsers supporting inflation, `none` in other cases (and then not modifiable). + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **54** | No | No | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-size-adjust + */ + textSizeAdjust?: Property.TextSizeAdjust | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `space-all | normal | space-first | trim-start` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **123** | No | No | **123** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-spacing-trim + */ + textSpacingTrim?: Property.TextSpacingTrim | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | [ capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-transform + */ + textTransform?: Property.TextTransform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2020. + * + * **Syntax**: `auto | <length> | <percentage> ` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **70** | **12.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-offset + */ + textUnderlineOffset?: Property.TextUnderlineOffset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | from-font | [ under || [ left | right ] ]` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :---: | + * | **33** | **74** | **12.1** | **12** | **6** | + * | | | 9 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-position + */ + textUnderlinePosition?: Property.TextUnderlinePosition | undefined; + /** + * Since October 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `wrap | nowrap` + * + * **Initial value**: `wrap` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **130** | **124** | **17.4** | **130** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-mode + */ + textWrapMode?: Property.TextWrapMode | undefined; + /** + * Since October 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | balance | stable | pretty` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **130** | **124** | **17.5** | **130** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-style + */ + textWrapStyle?: Property.TextWrapStyle | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <dashed-ident>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **116** | No | **26** | **116** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-scope + */ + timelineScope?: Property.TimelineScope | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/top + */ + top?: Property.Top<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2019. + * + * **Syntax**: `auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :------: | + * | **36** | **52** | **13** | **12** | **11** | + * | | | | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/touch-action + */ + touchAction?: Property.TouchAction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-------: | :-------: | :----: | :-----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | 3.5 _-x-_ | 3.1 _-x-_ | | 9 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform + */ + transform?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `content-box | border-box | fill-box | stroke-box | view-box` + * + * **Initial value**: `view-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **64** | **55** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-box + */ + transformBox?: Property.TransformBox | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-------: | :-----: | :----: | :-----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | 3.5 _-x-_ | 2 _-x-_ | | 9 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-origin + */ + transformOrigin?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `flat | preserve-3d` + * + * **Initial value**: `flat` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :-: | + * | **36** | **16** | **9** | **12** | No | + * | 12 _-x-_ | 10 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-style + */ + transformStyle?: Property.TransformStyle | undefined; + /** + * Since August 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<transition-behavior-value>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **117** | **129** | **17.4** | **117** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-behavior + */ + transitionBehavior?: Property.TransitionBehavior | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-delay + */ + transitionDelay?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-duration + */ + transitionDuration?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-property + */ + transitionProperty?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-timing-function + */ + transitionTimingFunction?: Property.TransitionTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022. + * + * **Syntax**: `none | <length-percentage> [ <length-percentage> <length>? ]?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **104** | **72** | **14.1** | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/translate + */ + translate?: Property.Translate<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | embed | isolate | bidi-override | isolate-override | plaintext` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-----: | + * | **2** | **1** | **1.3** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/unicode-bidi + */ + unicodeBidi?: Property.UnicodeBidi | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :---------: | :------: | :----------: | + * | **54** | **69** | **3** _-x-_ | **79** | **10** _-x-_ | + * | 1 _-x-_ | 1 _-x-_ | | 12 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/user-select + */ + userSelect?: Property.UserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **6** | **15** | **5.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vector-effect + */ + vectorEffect?: Property.VectorEffect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>` + * + * **Initial value**: `baseline` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vertical-align + */ + verticalAlign?: Property.VerticalAlign<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ block | inline | x | y ]#` + * + * **Initial value**: `block` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-axis + */ + viewTimelineAxis?: Property.ViewTimelineAxis | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ [ auto | <length-percentage> ]{1,2} ]#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-inset + */ + viewTimelineInset?: Property.ViewTimelineInset<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ none | <dashed-ident> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-name + */ + viewTimelineName?: Property.ViewTimelineName | undefined; + /** + * **Syntax**: `none | <custom-ident>+` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **125** | **144** | **18.2** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-class + */ + viewTransitionClass?: Property.ViewTransitionClass | undefined; + /** + * Since October 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | <custom-ident> | match-element` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **111** | **144** | **18** | **111** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-name + */ + viewTransitionName?: Property.ViewTransitionName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | collapse` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/visibility + */ + visibility?: Property.Visibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space + */ + whiteSpace?: Property.WhiteSpace | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `collapse | preserve | preserve-breaks | preserve-spaces | break-spaces` + * + * **Initial value**: `collapse` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **114** | **124** | **17.4** | **114** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space-collapse + */ + whiteSpaceCollapse?: Property.WhiteSpaceCollapse | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `2` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **25** | No | **1.3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/widows + */ + widows?: Property.Widows | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/width + */ + width?: Property.Width<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | <animateable-feature>#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **36** | **36** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/will-change + */ + willChange?: Property.WillChange | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | break-all | keep-all | break-word | auto-phrase` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **15** | **3** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/word-break + */ + wordBreak?: Property.WordBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <length>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/word-spacing + */ + wordSpacing?: Property.WordSpacing<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2018. + * + * **Syntax**: `normal | break-word` + * + * **Initial value**: `normal` + */ + wordWrap?: Property.WordWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr` + * + * **Initial value**: `horizontal-tb` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :---: | + * | **48** | **41** | **10.1** | **12** | **9** | + * | 8 _-x-_ | | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/writing-mode + */ + writingMode?: Property.WritingMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **42** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/x + */ + x?: Property.X<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **42** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/y + */ + y?: Property.Y<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <integer>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/z-index + */ + zIndex?: Property.ZIndex | undefined; + /** + * Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | reset | <number [0,∞]> || <percentage [0,∞]>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-----: | + * | **1** | **126** | **3.1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/zoom + */ + zoom?: Property.Zoom | undefined; +} + +export interface StandardShorthandProperties<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `initial | inherit | unset | revert | revert-layer` + * + * **Initial value**: There is no practical initial value for it. + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **37** | **27** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/all + */ + all?: Property.All | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation + */ + animation?: Property.Animation<TTime> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <'animation-range-start'> <'animation-range-end'>? ]#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-range + */ + animationRange?: Property.AnimationRange<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-layer>#? , <final-bg-layer>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background + */ + background?: Property.Background<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-position>#` + * + * **Initial value**: `0% 0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position + */ + backgroundPosition?: Property.BackgroundPosition<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border + */ + border?: Property.Border<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-block-start'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block + */ + borderBlock?: Property.BorderBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-color'>{1,2}` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-color + */ + borderBlockColor?: Property.BorderBlockColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end + */ + borderBlockEnd?: Property.BorderBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start + */ + borderBlockStart?: Property.BorderBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-style'>{1,2}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-style + */ + borderBlockStyle?: Property.BorderBlockStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-width'>{1,2}` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-width + */ + borderBlockWidth?: Property.BorderBlockWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom + */ + borderBottom?: Property.BorderBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-color + */ + borderColor?: Property.BorderColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-------: | :-----: | :----: | :----: | + * | **16** | **15** | **6** | **12** | **11** | + * | 7 _-x-_ | 3.5 _-x-_ | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image + */ + borderImage?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-block-start'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline + */ + borderInline?: Property.BorderInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-color'>{1,2}` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-color + */ + borderInlineColor?: Property.BorderInlineColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end + */ + borderInlineEnd?: Property.BorderInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start + */ + borderInlineStart?: Property.BorderInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-style'>{1,2}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-style + */ + borderInlineStyle?: Property.BorderInlineStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-width'>{1,2}` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-width + */ + borderInlineWidth?: Property.BorderInlineWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left + */ + borderLeft?: Property.BorderLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-radius + */ + borderRadius?: Property.BorderRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right + */ + borderRight?: Property.BorderRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-style + */ + borderStyle?: Property.BorderStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top + */ + borderTop?: Property.BorderTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-width + */ + borderWidth?: Property.BorderWidth<TLength> | undefined; + /** **Syntax**: `<'caret-color'> || <'caret-shape'>` */ + caret?: Property.Caret | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule + */ + columnRule?: Property.ColumnRule<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-width'> || <'column-count'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/columns + */ + columns?: Property.Columns<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ auto? [ none | <length> ] ]{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **83** | **107** | **17** | **83** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-size + */ + containIntrinsicSize?: Property.ContainIntrinsicSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `<'container-name'> [ / <'container-type'> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **105** | **110** | **16** | **105** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container + */ + container?: Property.Container | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :------: | + * | **29** | **22** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex + */ + flex?: Property.Flex<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<'flex-direction'> || <'flex-wrap'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **28** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-flow + */ + flexFlow?: Property.FlexFlow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font + */ + font?: Property.Font | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<'row-gap'> <'column-gap'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/gap + */ + gap?: Property.Gap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid + */ + grid?: Property.Grid | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line> [ / <grid-line> ]{0,3}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-area + */ + gridArea?: Property.GridArea | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line> [ / <grid-line> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column + */ + gridColumn?: Property.GridColumn | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line> [ / <grid-line> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row + */ + gridRow?: Property.GridRow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template + */ + gridTemplate?: Property.GridTemplate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset + */ + inset?: Property.Inset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block + */ + insetBlock?: Property.InsetBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline + */ + insetInline?: Property.InsetInline<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <integer>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :---------: | :----------: | :-------: | :----------: | :-: | + * | **6** _-x-_ | **68** _-x-_ | 18.2-18.4 | **17** _-x-_ | No | + * | | | 5 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-clamp + */ + lineClamp?: Property.LineClamp | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'list-style-type'> || <'list-style-position'> || <'list-style-image'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style + */ + listStyle?: Property.ListStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'margin-top'>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin + */ + margin?: Property.Margin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'margin-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block + */ + marginBlock?: Property.MarginBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'margin-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline + */ + marginInline?: Property.MarginInline<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<mask-layer>#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :---: | :-: | + * | **120** | **53** | **15.4** | 12-79 | No | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask + */ + mask?: Property.Mask<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------: | :-----: | :----------------------------: | :-------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image)_ | No | **17.2** | **79** _(-webkit-mask-box-image)_ | No | + * | | | 3.1 _(-webkit-mask-box-image)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border + */ + maskBorder?: Property.MaskBorder | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset + */ + motion?: Property.Offset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset + */ + offset?: Property.Offset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `<'outline-width'> || <'outline-style'> || <'outline-color'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :---: | + * | **94** | **88** | **16.4** | **94** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline + */ + outline?: Property.Outline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ visible | hidden | clip | scroll | auto ]{1,2}` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow + */ + overflow?: Property.Overflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ contain | none | auto ]{1,2}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **63** | **59** | **16** | **18** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior + */ + overscrollBehavior?: Property.OverscrollBehavior | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'padding-top'>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding + */ + padding?: Property.Padding<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'padding-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block + */ + paddingBlock?: Property.PaddingBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'padding-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline + */ + paddingInline?: Property.PaddingInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'align-content'> <'justify-content'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **59** | **45** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-content + */ + placeContent?: Property.PlaceContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'align-items'> <'justify-items'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **59** | **45** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-items + */ + placeItems?: Property.PlaceItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'align-self'> <'justify-self'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **59** | **45** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-self + */ + placeSelf?: Property.PlaceSelf | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<'position-try-order'>? <'position-try-fallbacks'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try + */ + positionTry?: Property.PositionTry | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2021. + * + * **Syntax**: `<length>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------: | :----: | :-: | + * | **69** | **90** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin + */ + scrollMargin?: Property.ScrollMargin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block + */ + scrollMarginBlock?: Property.ScrollMarginBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline + */ + scrollMarginInline?: Property.ScrollMarginInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `[ auto | <length-percentage> ]{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding + */ + scrollPadding?: Property.ScrollPadding<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `[ auto | <length-percentage> ]{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block + */ + scrollPaddingBlock?: Property.ScrollPaddingBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `[ auto | <length-percentage> ]{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline + */ + scrollPaddingInline?: Property.ScrollPaddingInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2021. + * + * **Syntax**: `<length>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------: | :----: | :-: | + * | **69** | 68-90 | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin + */ + scrollSnapMargin?: Property.ScrollMargin<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-timeline + */ + scrollTimeline?: Property.ScrollTimeline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration + */ + textDecoration?: Property.TextDecoration<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<'text-emphasis-style'> || <'text-emphasis-color'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis + */ + textEmphasis?: Property.TextEmphasis | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<'text-wrap-mode'> || <'text-wrap-style'>` + * + * **Initial value**: `wrap` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **114** | **121** | **17.4** | **114** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap + */ + textWrap?: Property.TextWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition + */ + transition?: Property.Transition<TTime> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline + */ + viewTimeline?: Property.ViewTimeline | undefined; +} + +export interface StandardProperties<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardLonghandProperties<TLength, TTime>, + StandardShorthandProperties<TLength, TTime> {} + +export interface VendorLonghandProperties<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + MozAnimationDelay?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + */ + MozAnimationDirection?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + */ + MozAnimationDuration?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + */ + MozAnimationFillMode?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + */ + MozAnimationIterationCount?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + */ + MozAnimationName?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + */ + MozAnimationPlayState?: Property.AnimationPlayState | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + MozAnimationTimingFunction?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized` + * + * **Initial value**: `none` (but this value is overridden in the user agent CSS) + */ + MozAppearance?: Property.MozAppearance | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `visible | hidden` + * + * **Initial value**: `visible` + */ + MozBackfaceVisibility?: Property.BackfaceVisibility | undefined; + /** + * **Syntax**: `<url> | none` + * + * **Initial value**: `none` + */ + MozBinding?: Property.MozBinding | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + MozBorderBottomColors?: Property.MozBorderBottomColors | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + */ + MozBorderEndColor?: Property.BorderInlineEndColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + */ + MozBorderEndStyle?: Property.BorderInlineEndStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + */ + MozBorderEndWidth?: Property.BorderInlineEndWidth<TLength> | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + MozBorderLeftColors?: Property.MozBorderLeftColors | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + MozBorderRightColors?: Property.MozBorderRightColors | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + */ + MozBorderStartColor?: Property.BorderInlineStartColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + */ + MozBorderStartStyle?: Property.BorderInlineStartStyle | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + MozBorderTopColors?: Property.MozBorderTopColors | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `content-box | border-box` + * + * **Initial value**: `content-box` + */ + MozBoxSizing?: Property.BoxSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + MozColumnRuleColor?: Property.ColumnRuleColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + */ + MozColumnRuleStyle?: Property.ColumnRuleStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + */ + MozColumnRuleWidth?: Property.ColumnRuleWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016. + * + * **Syntax**: `<length> | auto` + * + * **Initial value**: `auto` + */ + MozColumnWidth?: Property.ColumnWidth<TLength> | undefined; + /** + * **Syntax**: `none | [ fill | fill-opacity | stroke | stroke-opacity ]#` + * + * **Initial value**: `none` + */ + MozContextProperties?: Property.MozContextProperties | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `normal | <feature-tag-value>#` + * + * **Initial value**: `normal` + */ + MozFontFeatureSettings?: Property.FontFeatureSettings | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <string>` + * + * **Initial value**: `normal` + */ + MozFontLanguageOverride?: Property.FontLanguageOverride | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + */ + MozHyphens?: Property.Hyphens | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + MozMarginEnd?: Property.MarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + MozMarginStart?: Property.MarginInlineStart<TLength> | undefined; + /** + * The **`-moz-orient`** CSS property specifies the orientation of the element to which it's applied. + * + * **Syntax**: `inline | block | horizontal | vertical` + * + * **Initial value**: `inline` + */ + MozOrient?: Property.MozOrient | undefined; + /** + * The **`font-smooth`** CSS property controls the application of anti-aliasing when fonts are rendered. + * + * **Syntax**: `auto | never | always | <absolute-size> | <length>` + * + * **Initial value**: `auto` + */ + MozOsxFontSmoothing?: Property.FontSmooth<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + MozOutlineRadiusBottomleft?: Property.MozOutlineRadiusBottomleft<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + MozOutlineRadiusBottomright?: Property.MozOutlineRadiusBottomright<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + MozOutlineRadiusTopleft?: Property.MozOutlineRadiusTopleft<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + MozOutlineRadiusTopright?: Property.MozOutlineRadiusTopright<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + MozPaddingEnd?: Property.PaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + MozPaddingStart?: Property.PaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <length>` + * + * **Initial value**: `none` + */ + MozPerspective?: Property.Perspective<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + */ + MozPerspectiveOrigin?: Property.PerspectiveOrigin<TLength> | undefined; + /** + * **Syntax**: `ignore | stretch-to-fit` + * + * **Initial value**: `stretch-to-fit` + */ + MozStackSizing?: Property.MozStackSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2021. + * + * **Syntax**: `<integer> | <length>` + * + * **Initial value**: `8` + */ + MozTabSize?: Property.TabSize<TLength> | undefined; + /** + * **Syntax**: `none | blink` + * + * **Initial value**: `none` + */ + MozTextBlink?: Property.MozTextBlink | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto | <percentage>` + * + * **Initial value**: `auto` for smartphone browsers supporting inflation, `none` in other cases (and then not modifiable). + */ + MozTextSizeAdjust?: Property.TextSizeAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + */ + MozTransform?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + */ + MozTransformOrigin?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `flat | preserve-3d` + * + * **Initial value**: `flat` + */ + MozTransformStyle?: Property.TransformStyle | undefined; + /** + * The **`user-modify`** property has no effect in Firefox. It was originally planned to determine whether or not the content of an element can be edited by a user. + * + * **Syntax**: `read-only | read-write | write-only` + * + * **Initial value**: `read-only` + */ + MozUserModify?: Property.MozUserModify | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + */ + MozUserSelect?: Property.UserSelect | undefined; + /** + * **Syntax**: `drag | no-drag` + * + * **Initial value**: `drag` + */ + MozWindowDragging?: Property.MozWindowDragging | undefined; + /** + * **Syntax**: `default | menu | tooltip | sheet | none` + * + * **Initial value**: `default` + */ + MozWindowShadow?: Property.MozWindowShadow | undefined; + /** + * **Syntax**: `false | true` + * + * **Initial value**: `false` + */ + msAccelerator?: Property.MsAccelerator | undefined; + /** + * **Syntax**: `tb | rl | bt | lr` + * + * **Initial value**: `tb` + */ + msBlockProgression?: Property.MsBlockProgression | undefined; + /** + * **Syntax**: `none | chained` + * + * **Initial value**: `none` + */ + msContentZoomChaining?: Property.MsContentZoomChaining | undefined; + /** + * **Syntax**: `<percentage>` + * + * **Initial value**: `400%` + */ + msContentZoomLimitMax?: Property.MsContentZoomLimitMax | undefined; + /** + * **Syntax**: `<percentage>` + * + * **Initial value**: `100%` + */ + msContentZoomLimitMin?: Property.MsContentZoomLimitMin | undefined; + /** + * **Syntax**: `snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )` + * + * **Initial value**: `snapInterval(0%, 100%)` + */ + msContentZoomSnapPoints?: Property.MsContentZoomSnapPoints | undefined; + /** + * **Syntax**: `none | proximity | mandatory` + * + * **Initial value**: `none` + */ + msContentZoomSnapType?: Property.MsContentZoomSnapType | undefined; + /** + * **Syntax**: `none | zoom` + * + * **Initial value**: zoom for the top level element, none for all other elements + */ + msContentZooming?: Property.MsContentZooming | undefined; + /** + * **Syntax**: `<string>` + * + * **Initial value**: "" (the empty string) + */ + msFilter?: Property.MsFilter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `row | row-reverse | column | column-reverse` + * + * **Initial value**: `row` + */ + msFlexDirection?: Property.FlexDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + */ + msFlexPositive?: Property.FlexGrow | undefined; + /** + * **Syntax**: `[ none | <custom-ident> ]#` + * + * **Initial value**: `none` + */ + msFlowFrom?: Property.MsFlowFrom | undefined; + /** + * **Syntax**: `[ none | <custom-ident> ]#` + * + * **Initial value**: `none` + */ + msFlowInto?: Property.MsFlowInto | undefined; + /** + * **Syntax**: `none | <track-list> | <auto-track-list>` + * + * **Initial value**: `none` + */ + msGridColumns?: Property.MsGridColumns<TLength> | undefined; + /** + * **Syntax**: `none | <track-list> | <auto-track-list>` + * + * **Initial value**: `none` + */ + msGridRows?: Property.MsGridRows<TLength> | undefined; + /** + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + */ + msHighContrastAdjust?: Property.MsHighContrastAdjust | undefined; + /** + * **Syntax**: `auto | <integer>{1,3}` + * + * **Initial value**: `auto` + */ + msHyphenateLimitChars?: Property.MsHyphenateLimitChars | undefined; + /** + * **Syntax**: `no-limit | <integer>` + * + * **Initial value**: `no-limit` + */ + msHyphenateLimitLines?: Property.MsHyphenateLimitLines | undefined; + /** + * **Syntax**: `<percentage> | <length>` + * + * **Initial value**: `0` + */ + msHyphenateLimitZone?: Property.MsHyphenateLimitZone<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + */ + msHyphens?: Property.Hyphens | undefined; + /** + * **Syntax**: `auto | after` + * + * **Initial value**: `auto` + */ + msImeAlign?: Property.MsImeAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + */ + msLineBreak?: Property.LineBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `0` + */ + msOrder?: Property.Order | undefined; + /** + * **Syntax**: `auto | none | scrollbar | -ms-autohiding-scrollbar` + * + * **Initial value**: `auto` + */ + msOverflowStyle?: Property.MsOverflowStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + */ + msOverflowX?: Property.OverflowX | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + */ + msOverflowY?: Property.OverflowY | undefined; + /** + * **Syntax**: `chained | none` + * + * **Initial value**: `chained` + */ + msScrollChaining?: Property.MsScrollChaining | undefined; + /** + * **Syntax**: `auto | <length>` + * + * **Initial value**: `auto` + */ + msScrollLimitXMax?: Property.MsScrollLimitXMax<TLength> | undefined; + /** + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + msScrollLimitXMin?: Property.MsScrollLimitXMin<TLength> | undefined; + /** + * **Syntax**: `auto | <length>` + * + * **Initial value**: `auto` + */ + msScrollLimitYMax?: Property.MsScrollLimitYMax<TLength> | undefined; + /** + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + msScrollLimitYMin?: Property.MsScrollLimitYMin<TLength> | undefined; + /** + * **Syntax**: `none | railed` + * + * **Initial value**: `railed` + */ + msScrollRails?: Property.MsScrollRails | undefined; + /** + * **Syntax**: `snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )` + * + * **Initial value**: `snapInterval(0px, 100%)` + */ + msScrollSnapPointsX?: Property.MsScrollSnapPointsX | undefined; + /** + * **Syntax**: `snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )` + * + * **Initial value**: `snapInterval(0px, 100%)` + */ + msScrollSnapPointsY?: Property.MsScrollSnapPointsY | undefined; + /** + * **Syntax**: `none | proximity | mandatory` + * + * **Initial value**: `none` + */ + msScrollSnapType?: Property.MsScrollSnapType | undefined; + /** + * **Syntax**: `none | vertical-to-horizontal` + * + * **Initial value**: `none` + */ + msScrollTranslation?: Property.MsScrollTranslation | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: depends on user agent + */ + msScrollbar3dlightColor?: Property.MsScrollbar3dlightColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ButtonText` + */ + msScrollbarArrowColor?: Property.MsScrollbarArrowColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: depends on user agent + */ + msScrollbarBaseColor?: Property.MsScrollbarBaseColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDDarkShadow` + */ + msScrollbarDarkshadowColor?: Property.MsScrollbarDarkshadowColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDFace` + */ + msScrollbarFaceColor?: Property.MsScrollbarFaceColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDHighlight` + */ + msScrollbarHighlightColor?: Property.MsScrollbarHighlightColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDDarkShadow` + */ + msScrollbarShadowColor?: Property.MsScrollbarShadowColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `Scrollbar` + */ + msScrollbarTrackColor?: Property.MsScrollbarTrackColor | undefined; + /** + * **Syntax**: `none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space` + * + * **Initial value**: `none` + */ + msTextAutospace?: Property.MsTextAutospace | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | all | [ digits <integer>? ]` + * + * **Initial value**: `none` + */ + msTextCombineHorizontal?: Property.TextCombineUpright | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ clip | ellipsis | <string> ]{1,2}` + * + * **Initial value**: `clip` + */ + msTextOverflow?: Property.TextOverflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2019. + * + * **Syntax**: `auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation` + * + * **Initial value**: `auto` + */ + msTouchAction?: Property.TouchAction | undefined; + /** + * **Syntax**: `grippers | none` + * + * **Initial value**: `grippers` + */ + msTouchSelect?: Property.MsTouchSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + */ + msTransform?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + */ + msTransformOrigin?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + msTransitionDelay?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + msTransitionDuration?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + */ + msTransitionProperty?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + msTransitionTimingFunction?: Property.TransitionTimingFunction | undefined; + /** + * **Syntax**: `none | element | text` + * + * **Initial value**: `text` + */ + msUserSelect?: Property.MsUserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | break-all | keep-all | break-word | auto-phrase` + * + * **Initial value**: `normal` + */ + msWordBreak?: Property.WordBreak | undefined; + /** + * **Syntax**: `auto | both | start | end | maximum | clear` + * + * **Initial value**: `auto` + */ + msWrapFlow?: Property.MsWrapFlow | undefined; + /** + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + msWrapMargin?: Property.MsWrapMargin<TLength> | undefined; + /** + * **Syntax**: `wrap | none` + * + * **Initial value**: `wrap` + */ + msWrapThrough?: Property.MsWrapThrough | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr` + * + * **Initial value**: `horizontal-tb` + */ + msWritingMode?: Property.WritingMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>` + * + * **Initial value**: `normal` + */ + WebkitAlignContent?: Property.AlignContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center` + * + * **Initial value**: `normal` + */ + WebkitAlignItems?: Property.AlignItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center` + * + * **Initial value**: `auto` + */ + WebkitAlignSelf?: Property.AlignSelf | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + WebkitAnimationDelay?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + */ + WebkitAnimationDirection?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + */ + WebkitAnimationDuration?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + */ + WebkitAnimationFillMode?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + */ + WebkitAnimationIterationCount?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + */ + WebkitAnimationName?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + */ + WebkitAnimationPlayState?: Property.AnimationPlayState | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + WebkitAnimationTimingFunction?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button` + * + * **Initial value**: `none` (but this value is overridden in the user agent CSS) + */ + WebkitAppearance?: Property.WebkitAppearance | undefined; + /** + * Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + */ + WebkitBackdropFilter?: Property.BackdropFilter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `visible | hidden` + * + * **Initial value**: `visible` + */ + WebkitBackfaceVisibility?: Property.BackfaceVisibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-clip>#` + * + * **Initial value**: `border-box` + */ + WebkitBackgroundClip?: Property.BackgroundClip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<visual-box>#` + * + * **Initial value**: `padding-box` + */ + WebkitBackgroundOrigin?: Property.BackgroundOrigin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + */ + WebkitBackgroundSize?: Property.BackgroundSize<TLength> | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + WebkitBorderBeforeColor?: Property.WebkitBorderBeforeColor | undefined; + /** + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + */ + WebkitBorderBeforeStyle?: Property.WebkitBorderBeforeStyle | undefined; + /** + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + */ + WebkitBorderBeforeWidth?: Property.WebkitBorderBeforeWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + WebkitBorderBottomLeftRadius?: Property.BorderBottomLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + WebkitBorderBottomRightRadius?: Property.BorderBottomRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <number [0,∞]> | <percentage [0,∞]> ]{1,4} && fill?` + * + * **Initial value**: `100%` + */ + WebkitBorderImageSlice?: Property.BorderImageSlice | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + WebkitBorderTopLeftRadius?: Property.BorderTopLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + WebkitBorderTopRightRadius?: Property.BorderTopRightRadius<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `slice | clone` + * + * **Initial value**: `slice` + */ + WebkitBoxDecorationBreak?: Property.BoxDecorationBreak | undefined; + /** + * The **`-webkit-box-reflect`** CSS property lets you reflect the content of an element in one specific direction. + * + * **Syntax**: `[ above | below | right | left ]? <length>? <image>?` + * + * **Initial value**: `none` + */ + WebkitBoxReflect?: Property.WebkitBoxReflect<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow>#` + * + * **Initial value**: `none` + */ + WebkitBoxShadow?: Property.BoxShadow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `content-box | border-box` + * + * **Initial value**: `content-box` + */ + WebkitBoxSizing?: Property.BoxSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<clip-source> | [ <basic-shape> || <geometry-box> ] | none` + * + * **Initial value**: `none` + */ + WebkitClipPath?: Property.ClipPath | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<integer> | auto` + * + * **Initial value**: `auto` + */ + WebkitColumnCount?: Property.ColumnCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `auto | balance` + * + * **Initial value**: `balance` + */ + WebkitColumnFill?: Property.ColumnFill | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + WebkitColumnRuleColor?: Property.ColumnRuleColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + */ + WebkitColumnRuleStyle?: Property.ColumnRuleStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + */ + WebkitColumnRuleWidth?: Property.ColumnRuleWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `none | all` + * + * **Initial value**: `none` + */ + WebkitColumnSpan?: Property.ColumnSpan | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016. + * + * **Syntax**: `<length> | auto` + * + * **Initial value**: `auto` + */ + WebkitColumnWidth?: Property.ColumnWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + */ + WebkitFilter?: Property.Filter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `content | <'width'>` + * + * **Initial value**: `auto` + */ + WebkitFlexBasis?: Property.FlexBasis<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `row | row-reverse | column | column-reverse` + * + * **Initial value**: `row` + */ + WebkitFlexDirection?: Property.FlexDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + */ + WebkitFlexGrow?: Property.FlexGrow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `1` + */ + WebkitFlexShrink?: Property.FlexShrink | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `nowrap | wrap | wrap-reverse` + * + * **Initial value**: `nowrap` + */ + WebkitFlexWrap?: Property.FlexWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `normal | <feature-tag-value>#` + * + * **Initial value**: `normal` + */ + WebkitFontFeatureSettings?: Property.FontFeatureSettings | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | normal | none` + * + * **Initial value**: `auto` + */ + WebkitFontKerning?: Property.FontKerning | undefined; + /** + * The **`font-smooth`** CSS property controls the application of anti-aliasing when fonts are rendered. + * + * **Syntax**: `auto | never | always | <absolute-size> | <length>` + * + * **Initial value**: `auto` + */ + WebkitFontSmoothing?: Property.FontSmooth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]` + * + * **Initial value**: `normal` + */ + WebkitFontVariantLigatures?: Property.FontVariantLigatures | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | <string>` + * + * **Initial value**: `auto` + */ + WebkitHyphenateCharacter?: Property.HyphenateCharacter | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + */ + WebkitHyphens?: Property.Hyphens | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | [ <number> <integer>? ]` + * + * **Initial value**: `normal` + */ + WebkitInitialLetter?: Property.InitialLetter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]` + * + * **Initial value**: `normal` + */ + WebkitJustifyContent?: Property.JustifyContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + */ + WebkitLineBreak?: Property.LineBreak | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <integer>` + * + * **Initial value**: `none` + */ + WebkitLineClamp?: Property.WebkitLineClamp | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + */ + WebkitLogicalHeight?: Property.BlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + */ + WebkitLogicalWidth?: Property.InlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + WebkitMarginEnd?: Property.MarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + WebkitMarginStart?: Property.MarginInlineStart<TLength> | undefined; + /** + * **Syntax**: `<attachment>#` + * + * **Initial value**: `scroll` + */ + WebkitMaskAttachment?: Property.WebkitMaskAttachment | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length> | <number> ]{1,4}` + * + * **Initial value**: `0` + */ + WebkitMaskBoxImageOutset?: Property.MaskBorderOutset<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ stretch | repeat | round | space ]{1,2}` + * + * **Initial value**: `stretch` + */ + WebkitMaskBoxImageRepeat?: Property.MaskBorderRepeat | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<number-percentage>{1,4} fill?` + * + * **Initial value**: `0` + */ + WebkitMaskBoxImageSlice?: Property.MaskBorderSlice | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <image>` + * + * **Initial value**: `none` + */ + WebkitMaskBoxImageSource?: Property.MaskBorderSource | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length-percentage> | <number> | auto ]{1,4}` + * + * **Initial value**: `auto` + */ + WebkitMaskBoxImageWidth?: Property.MaskBorderWidth<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <coord-box> | no-clip | border | padding | content | text ]#` + * + * **Initial value**: `border` + */ + WebkitMaskClip?: Property.WebkitMaskClip | undefined; + /** + * The **`-webkit-mask-composite`** property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the `-webkit-mask-image` property. + * + * **Syntax**: `<composite-style>#` + * + * **Initial value**: `source-over` + */ + WebkitMaskComposite?: Property.WebkitMaskComposite | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<mask-reference>#` + * + * **Initial value**: `none` + */ + WebkitMaskImage?: Property.WebkitMaskImage | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <coord-box> | border | padding | content ]#` + * + * **Initial value**: `padding` + */ + WebkitMaskOrigin?: Property.WebkitMaskOrigin | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<position>#` + * + * **Initial value**: `0% 0%` + */ + WebkitMaskPosition?: Property.WebkitMaskPosition<TLength> | undefined; + /** + * The `-webkit-mask-position-x` CSS property sets the initial horizontal position of a mask image. + * + * **Syntax**: `[ <length-percentage> | left | center | right ]#` + * + * **Initial value**: `0%` + */ + WebkitMaskPositionX?: Property.WebkitMaskPositionX<TLength> | undefined; + /** + * The `-webkit-mask-position-y` CSS property sets the initial vertical position of a mask image. + * + * **Syntax**: `[ <length-percentage> | top | center | bottom ]#` + * + * **Initial value**: `0%` + */ + WebkitMaskPositionY?: Property.WebkitMaskPositionY<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<repeat-style>#` + * + * **Initial value**: `repeat` + */ + WebkitMaskRepeat?: Property.WebkitMaskRepeat | undefined; + /** + * The `-webkit-mask-repeat-x` property specifies whether and how a mask image is repeated (tiled) horizontally. + * + * **Syntax**: `repeat | no-repeat | space | round` + * + * **Initial value**: `repeat` + */ + WebkitMaskRepeatX?: Property.WebkitMaskRepeatX | undefined; + /** + * The `-webkit-mask-repeat-y` property sets whether and how a mask image is repeated (tiled) vertically. + * + * **Syntax**: `repeat | no-repeat | space | round` + * + * **Initial value**: `repeat` + */ + WebkitMaskRepeatY?: Property.WebkitMaskRepeatY | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + */ + WebkitMaskSize?: Property.WebkitMaskSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'max-width'>` + * + * **Initial value**: `none` + */ + WebkitMaxInlineSize?: Property.MaxInlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `0` + */ + WebkitOrder?: Property.Order | undefined; + /** + * **Syntax**: `auto | touch` + * + * **Initial value**: `auto` + */ + WebkitOverflowScrolling?: Property.WebkitOverflowScrolling | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + WebkitPaddingEnd?: Property.PaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + WebkitPaddingStart?: Property.PaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <length>` + * + * **Initial value**: `none` + */ + WebkitPerspective?: Property.Perspective<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + */ + WebkitPerspectiveOrigin?: Property.PerspectiveOrigin<TLength> | undefined; + /** + * Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `economy | exact` + * + * **Initial value**: `economy` + */ + WebkitPrintColorAdjust?: Property.PrintColorAdjust | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ alternate || [ over | under ] ] | inter-character` + * + * **Initial value**: `alternate` + */ + WebkitRubyPosition?: Property.RubyPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2022. + * + * **Syntax**: `none | [ x | y | block | inline | both ] [ mandatory | proximity ]?` + * + * **Initial value**: `none` + */ + WebkitScrollSnapType?: Property.ScrollSnapType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + */ + WebkitShapeMargin?: Property.ShapeMargin<TLength> | undefined; + /** + * **`-webkit-tap-highlight-color`** is a non-standard CSS property that sets the color of the highlight that appears over a link while it's being tapped. The highlighting indicates to the user that their tap is being successfully recognized, and indicates which element they're tapping on. + * + * **Syntax**: `<color>` + * + * **Initial value**: `black` + */ + WebkitTapHighlightColor?: Property.WebkitTapHighlightColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | all | [ digits <integer>? ]` + * + * **Initial value**: `none` + */ + WebkitTextCombine?: Property.TextCombineUpright | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + WebkitTextDecorationColor?: Property.TextDecorationColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error` + * + * **Initial value**: `none` + */ + WebkitTextDecorationLine?: Property.TextDecorationLine | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]` + * + * **Initial value**: `objects` + */ + WebkitTextDecorationSkip?: Property.TextDecorationSkip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `solid | double | dotted | dashed | wavy` + * + * **Initial value**: `solid` + */ + WebkitTextDecorationStyle?: Property.TextDecorationStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + WebkitTextEmphasisColor?: Property.TextEmphasisColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | [ over | under ] && [ right | left ]?` + * + * **Initial value**: `auto` + */ + WebkitTextEmphasisPosition?: Property.TextEmphasisPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>` + * + * **Initial value**: `none` + */ + WebkitTextEmphasisStyle?: Property.TextEmphasisStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + WebkitTextFillColor?: Property.WebkitTextFillColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020. + * + * **Syntax**: `mixed | upright | sideways` + * + * **Initial value**: `mixed` + */ + WebkitTextOrientation?: Property.TextOrientation | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto | <percentage>` + * + * **Initial value**: `auto` for smartphone browsers supporting inflation, `none` in other cases (and then not modifiable). + */ + WebkitTextSizeAdjust?: Property.TextSizeAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + WebkitTextStrokeColor?: Property.WebkitTextStrokeColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + WebkitTextStrokeWidth?: Property.WebkitTextStrokeWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | from-font | [ under || [ left | right ] ]` + * + * **Initial value**: `auto` + */ + WebkitTextUnderlinePosition?: Property.TextUnderlinePosition | undefined; + /** + * The `-webkit-touch-callout` CSS property controls the display of the default callout shown when you touch and hold a touch target. + * + * **Syntax**: `default | none` + * + * **Initial value**: `default` + */ + WebkitTouchCallout?: Property.WebkitTouchCallout | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + */ + WebkitTransform?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + */ + WebkitTransformOrigin?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `flat | preserve-3d` + * + * **Initial value**: `flat` + */ + WebkitTransformStyle?: Property.TransformStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + WebkitTransitionDelay?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + WebkitTransitionDuration?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + */ + WebkitTransitionProperty?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + WebkitTransitionTimingFunction?: Property.TransitionTimingFunction | undefined; + /** + * **Syntax**: `read-only | read-write | read-write-plaintext-only` + * + * **Initial value**: `read-only` + */ + WebkitUserModify?: Property.WebkitUserModify | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + */ + WebkitUserSelect?: Property.WebkitUserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr` + * + * **Initial value**: `horizontal-tb` + */ + WebkitWritingMode?: Property.WritingMode | undefined; +} + +export interface VendorShorthandProperties<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + */ + MozAnimation?: Property.Animation<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + */ + MozBorderImage?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>` + */ + MozColumnRule?: Property.ColumnRule<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-width'> || <'column-count'>` + */ + MozColumns?: Property.Columns<TLength> | undefined; + /** **Syntax**: `<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?` */ + MozOutlineRadius?: Property.MozOutlineRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + */ + MozTransition?: Property.Transition<TTime> | undefined; + /** **Syntax**: `<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>` */ + msContentZoomLimit?: Property.MsContentZoomLimit | undefined; + /** **Syntax**: `<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>` */ + msContentZoomSnap?: Property.MsContentZoomSnap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]` + */ + msFlex?: Property.Flex<TLength> | undefined; + /** **Syntax**: `<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>` */ + msScrollLimit?: Property.MsScrollLimit | undefined; + /** **Syntax**: `<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>` */ + msScrollSnapX?: Property.MsScrollSnapX | undefined; + /** **Syntax**: `<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>` */ + msScrollSnapY?: Property.MsScrollSnapY | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + */ + msTransition?: Property.Transition<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + */ + WebkitAnimation?: Property.Animation<TTime> | undefined; + /** + * The **`-webkit-border-before`** CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet. + * + * **Syntax**: `<'border-width'> || <'border-style'> || <color>` + */ + WebkitBorderBefore?: Property.WebkitBorderBefore<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + */ + WebkitBorderImage?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?` + */ + WebkitBorderRadius?: Property.BorderRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>` + */ + WebkitColumnRule?: Property.ColumnRule<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-width'> || <'column-count'>` + */ + WebkitColumns?: Property.Columns<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]` + */ + WebkitFlex?: Property.Flex<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<'flex-direction'> || <'flex-wrap'>` + */ + WebkitFlexFlow?: Property.FlexFlow | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <visual-box> | border | padding | content | text ] || [ <visual-box> | border | padding | content ] ]#` + */ + WebkitMask?: Property.WebkitMask<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>` + */ + WebkitMaskBoxImage?: Property.MaskBorder | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<'text-emphasis-style'> || <'text-emphasis-color'>` + */ + WebkitTextEmphasis?: Property.TextEmphasis | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length> || <color>` + */ + WebkitTextStroke?: Property.WebkitTextStroke<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + */ + WebkitTransition?: Property.Transition<TTime> | undefined; +} + +export interface VendorProperties<TLength = (string & {}) | 0, TTime = string & {}> extends VendorLonghandProperties<TLength, TTime>, VendorShorthandProperties<TLength, TTime> {} + +export interface ObsoleteProperties<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + boxAlign?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + boxDirection?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + boxFlex?: Property.BoxFlex | undefined; + /** + * The **`box-flex-group`** CSS property assigns the flexbox's child elements to a flex group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + boxFlexGroup?: Property.BoxFlexGroup | undefined; + /** + * The **`box-lines`** CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). + * + * **Syntax**: `single | multiple` + * + * **Initial value**: `single` + * + * @deprecated + */ + boxLines?: Property.BoxLines | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + boxOrdinalGroup?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + boxOrient?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + boxPack?: Property.BoxPack | undefined; + /** + * The **`clip`** CSS property defines a visible portion of an element. The `clip` property applies only to absolutely positioned elements — that is, elements with `position:absolute` or `position:fixed`. + * + * **Syntax**: `<shape> | auto` + * + * **Initial value**: `auto` + * + * @deprecated + */ + clip?: Property.Clip | undefined; + /** + * The **`font-stretch`** CSS property selects a normal, condensed, or expanded face from a font. + * + * **Syntax**: `<font-stretch-absolute>` + * + * **Initial value**: `normal` + * + * @deprecated + */ + fontStretch?: Property.FontStretch | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * @deprecated + */ + gridColumnGap?: Property.GridColumnGap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<'grid-row-gap'> <'grid-column-gap'>?` + * + * @deprecated + */ + gridGap?: Property.GridGap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * @deprecated + */ + gridRowGap?: Property.GridRowGap<TLength> | undefined; + /** + * **Syntax**: `auto | normal | active | inactive | disabled` + * + * **Initial value**: `auto` + * + * @deprecated + */ + imeMode?: Property.ImeMode | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <position-area>` + * + * **Initial value**: `none` + * + * @deprecated + */ + insetArea?: Property.PositionArea | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * @deprecated + */ + offsetBlock?: Property.InsetBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + offsetBlockEnd?: Property.InsetBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + offsetBlockStart?: Property.InsetBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * @deprecated + */ + offsetInline?: Property.InsetInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + offsetInlineEnd?: Property.InsetInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + offsetInlineStart?: Property.InsetInlineStart<TLength> | undefined; + /** + * The **`page-break-after`** CSS property adjusts page breaks _after_ the current element. + * + * **Syntax**: `auto | always | avoid | left | right | recto | verso` + * + * **Initial value**: `auto` + * + * @deprecated + */ + pageBreakAfter?: Property.PageBreakAfter | undefined; + /** + * The **`page-break-before`** CSS property adjusts page breaks _before_ the current element. + * + * **Syntax**: `auto | always | avoid | left | right | recto | verso` + * + * **Initial value**: `auto` + * + * @deprecated + */ + pageBreakBefore?: Property.PageBreakBefore | undefined; + /** + * The **`page-break-inside`** CSS property adjusts page breaks _inside_ the current element. + * + * **Syntax**: `auto | avoid` + * + * **Initial value**: `auto` + * + * @deprecated + */ + pageBreakInside?: Property.PageBreakInside | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ [<dashed-ident> || <try-tactic>] | <'position-area'> ]#` + * + * **Initial value**: `none` + * + * @deprecated + */ + positionTryOptions?: Property.PositionTryFallbacks | undefined; + /** + * **Syntax**: `none | <position>#` + * + * **Initial value**: `none` + * + * @deprecated + */ + scrollSnapCoordinate?: Property.ScrollSnapCoordinate<TLength> | undefined; + /** + * **Syntax**: `<position>` + * + * **Initial value**: `0px 0px` + * + * @deprecated + */ + scrollSnapDestination?: Property.ScrollSnapDestination<TLength> | undefined; + /** + * **Syntax**: `none | repeat( <length-percentage> )` + * + * **Initial value**: `none` + * + * @deprecated + */ + scrollSnapPointsX?: Property.ScrollSnapPointsX | undefined; + /** + * **Syntax**: `none | repeat( <length-percentage> )` + * + * **Initial value**: `none` + * + * @deprecated + */ + scrollSnapPointsY?: Property.ScrollSnapPointsY | undefined; + /** + * **Syntax**: `none | mandatory | proximity` + * + * **Initial value**: `none` + * + * @deprecated + */ + scrollSnapTypeX?: Property.ScrollSnapTypeX | undefined; + /** + * **Syntax**: `none | mandatory | proximity` + * + * **Initial value**: `none` + * + * @deprecated + */ + scrollSnapTypeY?: Property.ScrollSnapTypeY | undefined; + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + KhtmlBoxAlign?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + KhtmlBoxDirection?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + KhtmlBoxFlex?: Property.BoxFlex | undefined; + /** + * The **`box-flex-group`** CSS property assigns the flexbox's child elements to a flex group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + KhtmlBoxFlexGroup?: Property.BoxFlexGroup | undefined; + /** + * The **`box-lines`** CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). + * + * **Syntax**: `single | multiple` + * + * **Initial value**: `single` + * + * @deprecated + */ + KhtmlBoxLines?: Property.BoxLines | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + KhtmlBoxOrdinalGroup?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + KhtmlBoxOrient?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + KhtmlBoxPack?: Property.BoxPack | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + * + * @deprecated + */ + KhtmlLineBreak?: Property.LineBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `1` + * + * @deprecated + */ + KhtmlOpacity?: Property.Opacity | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + * + * @deprecated + */ + KhtmlUserSelect?: Property.UserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-clip>#` + * + * **Initial value**: `border-box` + * + * @deprecated + */ + MozBackgroundClip?: Property.BackgroundClip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<visual-box>#` + * + * **Initial value**: `padding-box` + * + * @deprecated + */ + MozBackgroundOrigin?: Property.BackgroundOrigin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + * + * @deprecated + */ + MozBackgroundSize?: Property.BackgroundSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?` + * + * @deprecated + */ + MozBorderRadius?: Property.BorderRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + MozBorderRadiusBottomleft?: Property.BorderBottomLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + MozBorderRadiusBottomright?: Property.BorderBottomRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + MozBorderRadiusTopleft?: Property.BorderTopLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + MozBorderRadiusTopright?: Property.BorderTopRightRadius<TLength> | undefined; + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + MozBoxAlign?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + MozBoxDirection?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + MozBoxFlex?: Property.BoxFlex | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + MozBoxOrdinalGroup?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + MozBoxOrient?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + MozBoxPack?: Property.BoxPack | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow>#` + * + * **Initial value**: `none` + * + * @deprecated + */ + MozBoxShadow?: Property.BoxShadow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<integer> | auto` + * + * **Initial value**: `auto` + * + * @deprecated + */ + MozColumnCount?: Property.ColumnCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `auto | balance` + * + * **Initial value**: `balance` + * + * @deprecated + */ + MozColumnFill?: Property.ColumnFill | undefined; + /** + * The non-standard **`-moz-float-edge`** CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness. + * + * **Syntax**: `border-box | content-box | margin-box | padding-box` + * + * **Initial value**: `content-box` + * + * @deprecated + */ + MozFloatEdge?: Property.MozFloatEdge | undefined; + /** + * The **`-moz-force-broken-image-icon`** extended CSS property can be used to force the broken image icon to be shown even when a broken image has an `alt` attribute. + * + * **Syntax**: `0 | 1` + * + * **Initial value**: `0` + * + * @deprecated + */ + MozForceBrokenImageIcon?: Property.MozForceBrokenImageIcon | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `1` + * + * @deprecated + */ + MozOpacity?: Property.Opacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `<'outline-width'> || <'outline-style'> || <'outline-color'>` + * + * @deprecated + */ + MozOutline?: Property.Outline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + MozOutlineColor?: Property.OutlineColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <outline-line-style>` + * + * **Initial value**: `none` + * + * @deprecated + */ + MozOutlineStyle?: Property.OutlineStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * @deprecated + */ + MozOutlineWidth?: Property.OutlineWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `auto | start | end | left | right | center | justify` + * + * **Initial value**: `auto` + * + * @deprecated + */ + MozTextAlignLast?: Property.TextAlignLast | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * @deprecated + */ + MozTextDecorationColor?: Property.TextDecorationColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error` + * + * **Initial value**: `none` + * + * @deprecated + */ + MozTextDecorationLine?: Property.TextDecorationLine | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `solid | double | dotted | dashed | wavy` + * + * **Initial value**: `solid` + * + * @deprecated + */ + MozTextDecorationStyle?: Property.TextDecorationStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + MozTransitionDelay?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + MozTransitionDuration?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + * + * @deprecated + */ + MozTransitionProperty?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * @deprecated + */ + MozTransitionTimingFunction?: Property.TransitionTimingFunction | undefined; + /** + * The **`-moz-user-focus`** CSS property is used to indicate whether an element can have the focus. + * + * **Syntax**: `ignore | normal | select-after | select-before | select-menu | select-same | select-all | none` + * + * **Initial value**: `none` + * + * @deprecated + */ + MozUserFocus?: Property.MozUserFocus | undefined; + /** + * In Mozilla applications, **`-moz-user-input`** determines if an element will accept user input. + * + * **Syntax**: `auto | none | enabled | disabled` + * + * **Initial value**: `auto` + * + * @deprecated + */ + MozUserInput?: Property.MozUserInput | undefined; + /** + * **Syntax**: `auto | normal | active | inactive | disabled` + * + * **Initial value**: `auto` + * + * @deprecated + */ + msImeMode?: Property.ImeMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + * + * @deprecated + */ + OAnimation?: Property.Animation<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + OAnimationDelay?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + * + * @deprecated + */ + OAnimationDirection?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + OAnimationDuration?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + * + * @deprecated + */ + OAnimationFillMode?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + * + * @deprecated + */ + OAnimationIterationCount?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + * + * @deprecated + */ + OAnimationName?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + * + * @deprecated + */ + OAnimationPlayState?: Property.AnimationPlayState | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * @deprecated + */ + OAnimationTimingFunction?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + * + * @deprecated + */ + OBackgroundSize?: Property.BackgroundSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + * + * @deprecated + */ + OBorderImage?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `fill | contain | cover | none | scale-down` + * + * **Initial value**: `fill` + * + * @deprecated + */ + OObjectFit?: Property.ObjectFit | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + * + * @deprecated + */ + OObjectPosition?: Property.ObjectPosition<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2021. + * + * **Syntax**: `<integer> | <length>` + * + * **Initial value**: `8` + * + * @deprecated + */ + OTabSize?: Property.TabSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ clip | ellipsis | <string> ]{1,2}` + * + * **Initial value**: `clip` + * + * @deprecated + */ + OTextOverflow?: Property.TextOverflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + * + * @deprecated + */ + OTransform?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + * + * @deprecated + */ + OTransformOrigin?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + * + * @deprecated + */ + OTransition?: Property.Transition<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + OTransitionDelay?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + OTransitionDuration?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + * + * @deprecated + */ + OTransitionProperty?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * @deprecated + */ + OTransitionTimingFunction?: Property.TransitionTimingFunction | undefined; + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + WebkitBoxAlign?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + WebkitBoxDirection?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + WebkitBoxFlex?: Property.BoxFlex | undefined; + /** + * The **`box-flex-group`** CSS property assigns the flexbox's child elements to a flex group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + WebkitBoxFlexGroup?: Property.BoxFlexGroup | undefined; + /** + * The **`box-lines`** CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). + * + * **Syntax**: `single | multiple` + * + * **Initial value**: `single` + * + * @deprecated + */ + WebkitBoxLines?: Property.BoxLines | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + WebkitBoxOrdinalGroup?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + WebkitBoxOrient?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + WebkitBoxPack?: Property.BoxPack | undefined; +} + +export interface SvgProperties<TLength = (string & {}) | 0, TTime = string & {}> { + alignmentBaseline?: Property.AlignmentBaseline | undefined; + baselineShift?: Property.BaselineShift<TLength> | undefined; + clip?: Property.Clip | undefined; + clipPath?: Property.ClipPath | undefined; + clipRule?: Property.ClipRule | undefined; + color?: Property.Color | undefined; + colorInterpolation?: Property.ColorInterpolation | undefined; + colorRendering?: Property.ColorRendering | undefined; + cursor?: Property.Cursor | undefined; + direction?: Property.Direction | undefined; + display?: Property.Display | undefined; + dominantBaseline?: Property.DominantBaseline | undefined; + fill?: Property.Fill | undefined; + fillOpacity?: Property.FillOpacity | undefined; + fillRule?: Property.FillRule | undefined; + filter?: Property.Filter | undefined; + floodColor?: Property.FloodColor | undefined; + floodOpacity?: Property.FloodOpacity | undefined; + font?: Property.Font | undefined; + fontFamily?: Property.FontFamily | undefined; + fontSize?: Property.FontSize<TLength> | undefined; + fontSizeAdjust?: Property.FontSizeAdjust | undefined; + fontStretch?: Property.FontStretch | undefined; + fontStyle?: Property.FontStyle | undefined; + fontVariant?: Property.FontVariant | undefined; + fontWeight?: Property.FontWeight | undefined; + glyphOrientationVertical?: Property.GlyphOrientationVertical | undefined; + imageRendering?: Property.ImageRendering | undefined; + letterSpacing?: Property.LetterSpacing<TLength> | undefined; + lightingColor?: Property.LightingColor | undefined; + lineHeight?: Property.LineHeight<TLength> | undefined; + marker?: Property.Marker | undefined; + markerEnd?: Property.MarkerEnd | undefined; + markerMid?: Property.MarkerMid | undefined; + markerStart?: Property.MarkerStart | undefined; + mask?: Property.Mask<TLength> | undefined; + opacity?: Property.Opacity | undefined; + overflow?: Property.Overflow | undefined; + paintOrder?: Property.PaintOrder | undefined; + pointerEvents?: Property.PointerEvents | undefined; + shapeRendering?: Property.ShapeRendering | undefined; + stopColor?: Property.StopColor | undefined; + stopOpacity?: Property.StopOpacity | undefined; + stroke?: Property.Stroke | undefined; + strokeDasharray?: Property.StrokeDasharray<TLength> | undefined; + strokeDashoffset?: Property.StrokeDashoffset<TLength> | undefined; + strokeLinecap?: Property.StrokeLinecap | undefined; + strokeLinejoin?: Property.StrokeLinejoin | undefined; + strokeMiterlimit?: Property.StrokeMiterlimit | undefined; + strokeOpacity?: Property.StrokeOpacity | undefined; + strokeWidth?: Property.StrokeWidth<TLength> | undefined; + textAnchor?: Property.TextAnchor | undefined; + textDecoration?: Property.TextDecoration<TLength> | undefined; + textRendering?: Property.TextRendering | undefined; + unicodeBidi?: Property.UnicodeBidi | undefined; + vectorEffect?: Property.VectorEffect | undefined; + visibility?: Property.Visibility | undefined; + whiteSpace?: Property.WhiteSpace | undefined; + wordSpacing?: Property.WordSpacing<TLength> | undefined; + writingMode?: Property.WritingMode | undefined; +} + +export interface Properties<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardProperties<TLength, TTime>, + VendorProperties<TLength, TTime>, + ObsoleteProperties<TLength, TTime>, + SvgProperties<TLength, TTime> {} + +export interface StandardLonghandPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **93** | **92** | **15.4** | **93** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/accent-color + */ + "accent-color"?: Property.AccentColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **28** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-content + */ + "align-content"?: Property.AlignContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-items + */ + "align-items"?: Property.AlignItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **10** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-self + */ + "align-self"?: Property.AlignSelf | undefined; + /** + * **Syntax**: `[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#` + * + * **Initial value**: `normal` + */ + "align-tracks"?: Property.AlignTracks | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `baseline | alphabetic | ideographic | middle | central | mathematical | text-before-edge | text-after-edge` + * + * **Initial value**: `baseline` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **1** | No | **5.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/alignment-baseline + */ + "alignment-baseline"?: Property.AlignmentBaseline | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <dashed-ident>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/anchor-name + */ + "anchor-name"?: Property.AnchorName | undefined; + /** + * **Syntax**: `none | all | <dashed-ident>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **131** | **preview** | **26** | **131** | No | + */ + "anchor-scope"?: Property.AnchorScope | undefined; + /** + * Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<single-animation-composition>#` + * + * **Initial value**: `replace` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **112** | **115** | **16** | **112** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-composition + */ + "animation-composition"?: Property.AnimationComposition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-delay + */ + "animation-delay"?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-direction + */ + "animation-direction"?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-duration + */ + "animation-duration"?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 5 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-fill-mode + */ + "animation-fill-mode"?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-iteration-count + */ + "animation-iteration-count"?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-name + */ + "animation-name"?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-play-state + */ + "animation-play-state"?: Property.AnimationPlayState | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-range-end + */ + "animation-range-end"?: Property.AnimationRangeEnd<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-range-start + */ + "animation-range-start"?: Property.AnimationRangeStart<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<single-animation-timeline>#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-timeline + */ + "animation-timeline"?: Property.AnimationTimeline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-timing-function + */ + "animation-timing-function"?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | auto | <compat-auto> | <compat-special>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :------: | :-: | + * | **84** | **80** | **15.4** | **84** | No | + * | 1 _-x-_ | 1 _-x-_ | 3 _-x-_ | 12 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/appearance + */ + appearance?: Property.Appearance | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto || <ratio>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **88** | **89** | **15** | **88** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/aspect-ratio + */ + "aspect-ratio"?: Property.AspectRatio | undefined; + /** + * Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **76** | **103** | **18** | **79** | No | + * | | | 9 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/backdrop-filter + */ + "backdrop-filter"?: Property.BackdropFilter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `visible | hidden` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-------: | :----: | :----: | + * | **36** | **16** | **15.4** | **12** | **10** | + * | 12 _-x-_ | 10 _-x-_ | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/backface-visibility + */ + "backface-visibility"?: Property.BackfaceVisibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<attachment>#` + * + * **Initial value**: `scroll` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-attachment + */ + "background-attachment"?: Property.BackgroundAttachment | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<blend-mode>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **35** | **30** | **8** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-blend-mode + */ + "background-blend-mode"?: Property.BackgroundBlendMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-clip>#` + * + * **Initial value**: `border-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **4** | **5** | **12** | **9** | + * | | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-clip + */ + "background-clip"?: Property.BackgroundClip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `transparent` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-color + */ + "background-color"?: Property.BackgroundColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-image>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-image + */ + "background-image"?: Property.BackgroundImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<visual-box>#` + * + * **Initial value**: `padding-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **4** | **3** | **12** | **9** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-origin + */ + "background-origin"?: Property.BackgroundOrigin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#` + * + * **Initial value**: `0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **49** | **1** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-x + */ + "background-position-x"?: Property.BackgroundPositionX<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#` + * + * **Initial value**: `0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **49** | **1** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-y + */ + "background-position-y"?: Property.BackgroundPositionY<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<repeat-style>#` + * + * **Initial value**: `repeat` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-repeat + */ + "background-repeat"?: Property.BackgroundRepeat | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **3** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-size + */ + "background-size"?: Property.BackgroundSize<TLength> | undefined; + /** + * **Syntax**: `<length-percentage> | sub | super | baseline` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | No | **4** | **79** | No | + */ + "baseline-shift"?: Property.BaselineShift<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------------: | :-----: | :----------------------------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * | 8 _(-webkit-logical-height)_ | | 5.1 _(-webkit-logical-height)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/block-size + */ + "block-size"?: Property.BlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-color + */ + "border-block-end-color"?: Property.BorderBlockEndColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-style + */ + "border-block-end-style"?: Property.BorderBlockEndStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-width + */ + "border-block-end-width"?: Property.BorderBlockEndWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-color + */ + "border-block-start-color"?: Property.BorderBlockStartColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-style + */ + "border-block-start-style"?: Property.BorderBlockStartStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-width + */ + "border-block-start-width"?: Property.BorderBlockStartWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-color + */ + "border-bottom-color"?: Property.BorderBottomColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-left-radius + */ + "border-bottom-left-radius"?: Property.BorderBottomLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-right-radius + */ + "border-bottom-right-radius"?: Property.BorderBottomRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-style + */ + "border-bottom-style"?: Property.BorderBottomStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-width + */ + "border-bottom-width"?: Property.BorderBottomWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `separate | collapse` + * + * **Initial value**: `separate` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-collapse + */ + "border-collapse"?: Property.BorderCollapse | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-end-end-radius + */ + "border-end-end-radius"?: Property.BorderEndEndRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-end-start-radius + */ + "border-end-start-radius"?: Property.BorderEndStartRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <length [0,∞]> | <number [0,∞]> ]{1,4} ` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-outset + */ + "border-image-outset"?: Property.BorderImageOutset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016. + * + * **Syntax**: `[ stretch | repeat | round | space ]{1,2}` + * + * **Initial value**: `stretch` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-repeat + */ + "border-image-repeat"?: Property.BorderImageRepeat | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <number [0,∞]> | <percentage [0,∞]> ]{1,4} && fill?` + * + * **Initial value**: `100%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-slice + */ + "border-image-slice"?: Property.BorderImageSlice | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <image>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **15** | **15** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-source + */ + "border-image-source"?: Property.BorderImageSource | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **16** | **13** | **6** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-width + */ + "border-image-width"?: Property.BorderImageWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-end-color)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-color + */ + "border-inline-end-color"?: Property.BorderInlineEndColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-end-style)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-style + */ + "border-inline-end-style"?: Property.BorderInlineEndStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-end-width)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-width + */ + "border-inline-end-width"?: Property.BorderInlineEndWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :---------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-start-color)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-color + */ + "border-inline-start-color"?: Property.BorderInlineStartColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :---------------------------: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | | 3 _(-moz-border-start-style)_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-style + */ + "border-inline-start-style"?: Property.BorderInlineStartStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-width + */ + "border-inline-start-width"?: Property.BorderInlineStartWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-color + */ + "border-left-color"?: Property.BorderLeftColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-style + */ + "border-left-style"?: Property.BorderLeftStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-width + */ + "border-left-width"?: Property.BorderLeftWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-color + */ + "border-right-color"?: Property.BorderRightColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-style + */ + "border-right-style"?: Property.BorderRightStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-width + */ + "border-right-width"?: Property.BorderRightWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-spacing + */ + "border-spacing"?: Property.BorderSpacing<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-start-end-radius + */ + "border-start-end-radius"?: Property.BorderStartEndRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<'border-top-left-radius'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **89** | **66** | **15** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-start-start-radius + */ + "border-start-start-radius"?: Property.BorderStartStartRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-color + */ + "border-top-color"?: Property.BorderTopColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-left-radius + */ + "border-top-left-radius"?: Property.BorderTopLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-right-radius + */ + "border-top-right-radius"?: Property.BorderTopRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-style + */ + "border-top-style"?: Property.BorderTopStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-width + */ + "border-top-width"?: Property.BorderTopWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/bottom + */ + bottom?: Property.Bottom<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `slice | clone` + * + * **Initial value**: `slice` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :---------: | :------: | :-: | + * | **130** | **32** | **7** _-x-_ | **130** | No | + * | 22 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-decoration-break + */ + "box-decoration-break"?: Property.BoxDecorationBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **10** | **4** | **5.1** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-shadow + */ + "box-shadow"?: Property.BoxShadow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `content-box | border-box` + * + * **Initial value**: `content-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **10** | **29** | **5.1** | **12** | **8** | + * | 1 _-x-_ | 1 _-x-_ | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-sizing + */ + "box-sizing"?: Property.BoxSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2019. + * + * **Syntax**: `auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **50** | **65** | **10** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-after + */ + "break-after"?: Property.BreakAfter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2019. + * + * **Syntax**: `auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **50** | **65** | **10** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-before + */ + "break-before"?: Property.BreakBefore | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2019. + * + * **Syntax**: `auto | avoid | avoid-page | avoid-column | avoid-region` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **50** | **65** | **10** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-inside + */ + "break-inside"?: Property.BreakInside | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `top | bottom` + * + * **Initial value**: `top` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caption-side + */ + "caption-side"?: Property.CaptionSide | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **53** | **11.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caret-color + */ + "caret-color"?: Property.CaretColor | undefined; + /** + * **Syntax**: `auto | bar | block | underscore` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :--: | :-: | + * | No | No | No | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caret-shape + */ + "caret-shape"?: Property.CaretShape | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | left | right | both | inline-start | inline-end` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clear + */ + clear?: Property.Clear | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<clip-source> | [ <basic-shape> || <geometry-box> ] | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **55** | **3.5** | **9.1** | **79** | **10** | + * | 23 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-path + */ + "clip-path"?: Property.ClipPath | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `nonzero | evenodd` + * + * **Initial value**: `nonzero` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :----: | :-: | + * | **≤15** | **3.5** | **≤5** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-rule + */ + "clip-rule"?: Property.ClipRule | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `canvastext` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color + */ + color?: Property.Color | undefined; + /** + * Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `economy | exact` + * + * **Initial value**: `economy` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----------------: | :------: | :------: | :-: | + * | **136** | **97** | **15.4** | **136** | No | + * | 17 _-x-_ | 48 _(color-adjust)_ | 6 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/print-color-adjust + */ + "color-adjust"?: Property.PrintColorAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | sRGB | linearRGB` + * + * **Initial value**: `linearRGB` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **3** | **3** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color-interpolation-filters + */ + "color-interpolation-filters"?: Property.ColorInterpolationFilters | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2022. + * + * **Syntax**: `normal | [ light | dark | <custom-ident> ]+ && only?` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **81** | **96** | **13** | **81** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color-scheme + */ + "color-scheme"?: Property.ColorScheme | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<integer> | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-count + */ + "column-count"?: Property.ColumnCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `auto | balance` + * + * **Initial value**: `balance` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-fill + */ + "column-fill"?: Property.ColumnFill | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <length-percentage>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **1** | **1.5** | **3** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-gap + */ + "column-gap"?: Property.ColumnGap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-color + */ + "column-rule-color"?: Property.ColumnRuleColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-style + */ + "column-rule-style"?: Property.ColumnRuleStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-width + */ + "column-rule-width"?: Property.ColumnRuleWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `none | all` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **50** | **71** | **9** | **12** | **10** | + * | 6 _-x-_ | | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-span + */ + "column-span"?: Property.ColumnSpan | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016. + * + * **Syntax**: `<length> | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **50** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-width + */ + "column-width"?: Property.ColumnWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | strict | content | [ [ size || inline-size ] || layout || style || paint ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **52** | **69** | **15.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain + */ + contain?: Property.Contain | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-block-size + */ + "contain-intrinsic-block-size"?: Property.ContainIntrinsicBlockSize<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-height + */ + "contain-intrinsic-height"?: Property.ContainIntrinsicHeight<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-inline-size + */ + "contain-intrinsic-inline-size"?: Property.ContainIntrinsicInlineSize<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto? [ none | <length> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **95** | **107** | **17** | **95** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-width + */ + "contain-intrinsic-width"?: Property.ContainIntrinsicWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `none | <custom-ident>+` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **105** | **110** | **16** | **105** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container-name + */ + "container-name"?: Property.ContainerName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `normal | [ [ size | inline-size ] || scroll-state ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **105** | **110** | **16** | **105** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container-type + */ + "container-type"?: Property.ContainerType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | none | [ <content-replacement> | <content-list> ] [ / [ <string> | <counter> | <attr()> ]+ ]?` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content + */ + content?: Property.Content | undefined; + /** + * Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `visible | auto | hidden` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **85** | **125** | **18** | **85** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content-visibility + */ + "content-visibility"?: Property.ContentVisibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <counter-name> <integer>? ]+ | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **2** | **1** | **3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-increment + */ + "counter-increment"?: Property.CounterIncrement | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **2** | **1** | **3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-reset + */ + "counter-reset"?: Property.CounterReset | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <counter-name> <integer>? ]+ | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **85** | **68** | **17.2** | **85** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-set + */ + "counter-set"?: Property.CounterSet | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021. + * + * **Syntax**: `[ [ <url> [ <x> <y> ]? , ]* <cursor-predefined> ]` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.2** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cursor + */ + cursor?: Property.Cursor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **43** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cx + */ + cx?: Property.Cx<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **43** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cy + */ + cy?: Property.Cy<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | path(<string>)` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **52** | **97** | No | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/d + */ + d?: Property.D | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `ltr | rtl` + * + * **Initial value**: `ltr` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **2** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/direction + */ + direction?: Property.Direction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>` + * + * **Initial value**: `inline` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/display + */ + display?: Property.Display | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **1** | **4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/dominant-baseline + */ + "dominant-baseline"?: Property.DominantBaseline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `show | hide` + * + * **Initial value**: `show` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/empty-cells + */ + "empty-cells"?: Property.EmptyCells | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `content | fixed` + * + * **Initial value**: `fixed` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :---------: | :-----: | :-: | + * | **123** | No | **preview** | **123** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/field-sizing + */ + "field-sizing"?: Property.FieldSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<paint>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill + */ + fill?: Property.Fill | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill-opacity + */ + "fill-opacity"?: Property.FillOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `nonzero | evenodd` + * + * **Initial value**: `nonzero` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill-rule + */ + "fill-rule"?: Property.FillRule | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :-: | + * | **53** | **35** | **9.1** | **12** | No | + * | 18 _-x-_ | | 6 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/filter + */ + filter?: Property.Filter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `content | <'width'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **22** | **9** | **12** | **11** | + * | 22 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-basis + */ + "flex-basis"?: Property.FlexBasis<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `row | row-reverse | column | column-reverse` + * + * **Initial value**: `row` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :------: | + * | **29** | **22** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-direction + */ + "flex-direction"?: Property.FlexDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----------------------: | + * | **29** | **20** | **9** | **12** | **11** | + * | 22 _-x-_ | | 7 _-x-_ | | 10 _(-ms-flex-positive)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-grow + */ + "flex-grow"?: Property.FlexGrow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **10** | + * | 22 _-x-_ | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-shrink + */ + "flex-shrink"?: Property.FlexShrink | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `nowrap | wrap | wrap-reverse` + * + * **Initial value**: `nowrap` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **28** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-wrap + */ + "flex-wrap"?: Property.FlexWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `left | right | none | inline-start | inline-end` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/float + */ + float?: Property.Float | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **5** | **3** | **6** | **12** | **≤11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flood-color + */ + "flood-color"?: Property.FloodColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **5** | **3** | **6** | **12** | **≤11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flood-opacity + */ + "flood-opacity"?: Property.FloodOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <family-name> | <generic-family> ]#` + * + * **Initial value**: depends on user agent + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-family + */ + "font-family"?: Property.FontFamily | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `normal | <feature-tag-value>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :----: | + * | **48** | **34** | **9.1** | **15** | **10** | + * | 16 _-x-_ | 15 _-x-_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-feature-settings + */ + "font-feature-settings"?: Property.FontFeatureSettings | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | normal | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **33** | **32** | **9** | **79** | No | + * | | | 6 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-kerning + */ + "font-kerning"?: Property.FontKerning | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <string>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **143** | **34** | No | **143** | No | + * | | 4 _-x-_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-language-override + */ + "font-language-override"?: Property.FontLanguageOverride | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2020. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **79** | **62** | **13.1** | **17** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-optical-sizing + */ + "font-optical-sizing"?: Property.FontOpticalSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2022. + * + * **Syntax**: `normal | light | dark | <palette-identifier> | <palette-mix()>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **101** | **107** | **15.4** | **101** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-palette + */ + "font-palette"?: Property.FontPalette | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<absolute-size> | <relative-size> | <length-percentage [0,∞]> | math` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-size + */ + "font-size"?: Property.FontSize<TLength> | undefined; + /** + * Since July 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number> ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **127** | **3** | **16.4** | **127** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-size-adjust + */ + "font-size-adjust"?: Property.FontSizeAdjust | undefined; + /** + * The **`font-smooth`** CSS property controls the application of anti-aliasing when fonts are rendered. + * + * **Syntax**: `auto | never | always | <absolute-size> | <length>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------: | :--------------------------------: | :------------------------------: | :-------------------------------: | :-: | + * | **5** _(-webkit-font-smoothing)_ | **25** _(-moz-osx-font-smoothing)_ | **4** _(-webkit-font-smoothing)_ | **79** _(-webkit-font-smoothing)_ | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-smooth + */ + "font-smooth"?: Property.FontSmooth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | italic | oblique <angle>?` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-style + */ + "font-style"?: Property.FontStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2022. + * + * **Syntax**: `none | [ weight || style || small-caps || position]` + * + * **Initial value**: `weight style small-caps position ` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **97** | **34** | **9** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis + */ + "font-synthesis"?: Property.FontSynthesis | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :--: | :-: | + * | No | **118** | No | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-position + */ + "font-synthesis-position"?: Property.FontSynthesisPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **97** | **111** | **16.4** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-small-caps + */ + "font-synthesis-small-caps"?: Property.FontSynthesisSmallCaps | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **97** | **111** | **16.4** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-style + */ + "font-synthesis-style"?: Property.FontSynthesisStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **97** | **111** | **16.4** | **97** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-weight + */ + "font-synthesis-weight"?: Property.FontSynthesisWeight | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant + */ + "font-variant"?: Property.FontVariant | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :-----: | :-: | + * | **111** | **34** | **9.1** | **111** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-alternates + */ + "font-variant-alternates"?: Property.FontVariantAlternates | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **52** | **34** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-caps + */ + "font-variant-caps"?: Property.FontVariantCaps | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **63** | **34** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-east-asian + */ + "font-variant-east-asian"?: Property.FontVariantEastAsian | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | text | emoji | unicode` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **131** | **141** | No | **131** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-emoji + */ + "font-variant-emoji"?: Property.FontVariantEmoji | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :-: | + * | **34** | **34** | **9.1** | **79** | No | + * | 31 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-ligatures + */ + "font-variant-ligatures"?: Property.FontVariantLigatures | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **52** | **34** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-numeric + */ + "font-variant-numeric"?: Property.FontVariantNumeric | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | sub | super` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :--: | :-: | + * | No | **34** | **9.1** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-position + */ + "font-variant-position"?: Property.FontVariantPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2018. + * + * **Syntax**: `normal | [ <string> <number> ]#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **62** | **62** | **11** | **17** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variation-settings + */ + "font-variation-settings"?: Property.FontVariationSettings | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<font-weight-absolute> | bolder | lighter` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **2** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-weight + */ + "font-weight"?: Property.FontWeight | undefined; + /** + * **Syntax**: `normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **18.4** | No | No | + */ + "font-width"?: Property.FontWidth | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | none | preserve-parent-color` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----------------------------: | :---------------------------------: | + * | **89** | **113** | No | **79** | **10** _(-ms-high-contrast-adjust)_ | + * | | | | 12 _(-ms-high-contrast-adjust)_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/forced-color-adjust + */ + "forced-color-adjust"?: Property.ForcedColorAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<track-size>+` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-------------------------: | + * | **57** | **70** | **10.1** | **16** | **10** _(-ms-grid-columns)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-columns + */ + "grid-auto-columns"?: Property.GridAutoColumns<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `[ row | column ] || dense` + * + * **Initial value**: `row` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-flow + */ + "grid-auto-flow"?: Property.GridAutoFlow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<track-size>+` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :----------------------: | + * | **57** | **70** | **10.1** | **16** | **10** _(-ms-grid-rows)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-rows + */ + "grid-auto-rows"?: Property.GridAutoRows<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column-end + */ + "grid-column-end"?: Property.GridColumnEnd | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column-start + */ + "grid-column-start"?: Property.GridColumnStart | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row-end + */ + "grid-row-end"?: Property.GridRowEnd | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row-start + */ + "grid-row-start"?: Property.GridRowStart | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | <string>+` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-areas + */ + "grid-template-areas"?: Property.GridTemplateAreas | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | <track-list> | <auto-track-list> | subgrid <line-name-list>?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-------------------------: | + * | **57** | **52** | **10.1** | **16** | **10** _(-ms-grid-columns)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-columns + */ + "grid-template-columns"?: Property.GridTemplateColumns<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | <track-list> | <auto-track-list> | subgrid <line-name-list>?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :----------------------: | + * | **57** | **52** | **10.1** | **16** | **10** _(-ms-grid-rows)_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-rows + */ + "grid-template-rows"?: Property.GridTemplateRows<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ first || [ force-end | allow-end ] || last ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :--: | :-: | + * | No | No | **10** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hanging-punctuation + */ + "hanging-punctuation"?: Property.HangingPunctuation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/height + */ + height?: Property.Height<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | <string>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :------: | :-: | + * | **106** | **98** | **17** | **106** | No | + * | 6 _-x-_ | | 5.1 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphenate-character + */ + "hyphenate-character"?: Property.HyphenateCharacter | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ auto | <integer> ]{1,3}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **109** | **137** | No | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphenate-limit-chars + */ + "hyphenate-limit-chars"?: Property.HyphenateLimitChars | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-------: | :----: | :----------: | + * | **55** | **43** | **17** | **79** | **10** _-x-_ | + * | 13 _-x-_ | 6 _-x-_ | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphens + */ + hyphens?: Property.Hyphens | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2020. + * + * **Syntax**: `from-image | <angle> | [ <angle>? flip ]` + * + * **Initial value**: `from-image` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **81** | **26** | **13.1** | **81** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/image-orientation + */ + "image-orientation"?: Property.ImageOrientation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | crisp-edges | pixelated | smooth` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **13** | **3.6** | **6** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/image-rendering + */ + "image-rendering"?: Property.ImageRendering | undefined; + /** + * The **`image-resolution`** CSS property specifies the intrinsic resolution of all raster images used in or on the element. It affects content images such as replaced elements and generated content, and decorative images such as `background-image` images. + * + * **Syntax**: `[ from-image || <resolution> ] && snap?` + * + * **Initial value**: `1dppx` + */ + "image-resolution"?: Property.ImageResolution | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | [ <number> <integer>? ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :---------: | :-----: | :-: | + * | **110** | No | **9** _-x-_ | **110** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/initial-letter + */ + "initial-letter"?: Property.InitialLetter | undefined; + /** + * **Syntax**: `[ auto | alphabetic | hanging | ideographic ]` + * + * **Initial value**: `auto` + */ + "initial-letter-align"?: Property.InitialLetterAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------: | :-----: | :---------------------------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * | 8 _(-webkit-logical-width)_ | | 5.1 _(-webkit-logical-width)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inline-size + */ + "inline-size"?: Property.InlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block-end + */ + "inset-block-end"?: Property.InsetBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block-start + */ + "inset-block-start"?: Property.InsetBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline-end + */ + "inset-inline-end"?: Property.InsetInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline-start + */ + "inset-inline-start"?: Property.InsetInlineStart<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `numeric-only | allow-keywords` + * + * **Initial value**: `numeric-only` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **129** | No | No | **129** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/interpolate-size + */ + "interpolate-size"?: Property.InterpolateSize | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | isolate` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **41** | **36** | **8** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/isolation + */ + isolation?: Property.Isolation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **20** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-content + */ + "justify-content"?: Property.JustifyContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2016. + * + * **Syntax**: `normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center` + * + * **Initial value**: `legacy` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **52** | **20** | **9** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-items + */ + "justify-items"?: Property.JustifyItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :----: | + * | **57** | **45** | **10.1** | **16** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-self + */ + "justify-self"?: Property.JustifySelf | undefined; + /** + * **Syntax**: `[ normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ]#` + * + * **Initial value**: `normal` + */ + "justify-tracks"?: Property.JustifyTracks | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/left + */ + left?: Property.Left<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <length>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/letter-spacing + */ + "letter-spacing"?: Property.LetterSpacing<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>` + * + * **Initial value**: `white` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **5** | **3** | **6** | **12** | **≤11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/lighting-color + */ + "lighting-color"?: Property.LightingColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :-----: | + * | **58** | **69** | **11** | **14** | **5.5** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-break + */ + "line-break"?: Property.LineBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <number> | <length> | <percentage>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-height + */ + "line-height"?: Property.LineHeight<TLength> | undefined; + /** + * The **`line-height-step`** CSS property sets the step unit for line box heights. When the property is set, line box heights are rounded up to the closest multiple of the unit. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + "line-height-step"?: Property.LineHeightStep<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<image> | none` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-image + */ + "list-style-image"?: Property.ListStyleImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `inside | outside` + * + * **Initial value**: `outside` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-position + */ + "list-style-position"?: Property.ListStylePosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<counter-style> | <string> | none` + * + * **Initial value**: `disc` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-type + */ + "list-style-type"?: Property.ListStyleType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block-end + */ + "margin-block-end"?: Property.MarginBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block-start + */ + "margin-block-start"?: Property.MarginBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-bottom + */ + "margin-bottom"?: Property.MarginBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----------------------: | :-------------------: | :----------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-margin-end)_ | 3 _(-moz-margin-end)_ | 3 _(-webkit-margin-end)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline-end + */ + "margin-inline-end"?: Property.MarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------: | :---------------------: | :------------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-margin-start)_ | 3 _(-moz-margin-start)_ | 3 _(-webkit-margin-start)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline-start + */ + "margin-inline-start"?: Property.MarginInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-left + */ + "margin-left"?: Property.MarginLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-right + */ + "margin-right"?: Property.MarginRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> | auto | <anchor-size()>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-top + */ + "margin-top"?: Property.MarginTop<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | in-flow | all` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **16.4** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-trim + */ + "margin-trim"?: Property.MarginTrim | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker + */ + marker?: Property.Marker | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-end + */ + "marker-end"?: Property.MarkerEnd | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-mid + */ + "marker-mid"?: Property.MarkerMid | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <url>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-start + */ + "marker-start"?: Property.MarkerStart | undefined; + /** + * The **`mask-border-mode`** CSS property specifies the blending mode used in a mask border. + * + * **Syntax**: `luminance | alpha` + * + * **Initial value**: `alpha` + */ + "mask-border-mode"?: Property.MaskBorderMode | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length> | <number> ]{1,4}` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------------------: | :-----: | :-----------------------------------: | :--------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-outset)_ | No | **17.2** | **79** _(-webkit-mask-box-image-outset)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-outset)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-outset + */ + "mask-border-outset"?: Property.MaskBorderOutset<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ stretch | repeat | round | space ]{1,2}` + * + * **Initial value**: `stretch` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------------------: | :-----: | :-----------------------------------: | :--------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-repeat)_ | No | **17.2** | **79** _(-webkit-mask-box-image-repeat)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-repeat)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-repeat + */ + "mask-border-repeat"?: Property.MaskBorderRepeat | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<number-percentage>{1,4} fill?` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------------: | :-----: | :----------------------------------: | :-------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-slice)_ | No | **17.2** | **79** _(-webkit-mask-box-image-slice)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-slice)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-slice + */ + "mask-border-slice"?: Property.MaskBorderSlice | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <image>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------------------: | :-----: | :-----------------------------------: | :--------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-source)_ | No | **17.2** | **79** _(-webkit-mask-box-image-source)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-source)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-source + */ + "mask-border-source"?: Property.MaskBorderSource | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length-percentage> | <number> | auto ]{1,4}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------------: | :-----: | :----------------------------------: | :-------------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image-width)_ | No | **17.2** | **79** _(-webkit-mask-box-image-width)_ | No | + * | | | 3.1 _(-webkit-mask-box-image-width)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-width + */ + "mask-border-width"?: Property.MaskBorderWidth<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <coord-box> | no-clip ]#` + * + * **Initial value**: `border-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :------: | :-: | + * | **120** | **53** | **15.4** | **120** | No | + * | 1 _-x-_ | | 4 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-clip + */ + "mask-clip"?: Property.MaskClip | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<compositing-operator>#` + * + * **Initial value**: `add` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-composite + */ + "mask-composite"?: Property.MaskComposite | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<mask-reference>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **120** | **53** | **15.4** | 16-79 | No | + * | 1 _-x-_ | | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-image + */ + "mask-image"?: Property.MaskImage | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<masking-mode>#` + * + * **Initial value**: `match-source` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **120** | **53** | **15.4** | **120** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-mode + */ + "mask-mode"?: Property.MaskMode | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<coord-box>#` + * + * **Initial value**: `border-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :------: | :-: | + * | **120** | **53** | **15.4** | **120** | No | + * | 1 _-x-_ | | 4 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-origin + */ + "mask-origin"?: Property.MaskOrigin | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<position>#` + * + * **Initial value**: `0% 0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-position + */ + "mask-position"?: Property.MaskPosition<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<repeat-style>#` + * + * **Initial value**: `repeat` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-repeat + */ + "mask-repeat"?: Property.MaskRepeat | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **120** | **53** | **15.4** | 18-79 | No | + * | 4 _-x-_ | | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-size + */ + "mask-size"?: Property.MaskSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `luminance | alpha` + * + * **Initial value**: `luminance` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **24** | **35** | **7** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-type + */ + "mask-type"?: Property.MaskType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `[ pack | next ] || [ definite-first | ordered ]` + * + * **Initial value**: `pack` + */ + "masonry-auto-flow"?: Property.MasonryAutoFlow | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto-add | add(<integer>) | <integer>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **109** | **117** | No | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-depth + */ + "math-depth"?: Property.MathDepth | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | compact` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **109** | No | No | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-shift + */ + "math-shift"?: Property.MathShift | undefined; + /** + * Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | compact` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **109** | **117** | **14.1** | **109** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-style + */ + "math-style"?: Property.MathStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'max-width'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-block-size + */ + "max-block-size"?: Property.MaxBlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1** | **1.3** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-height + */ + "max-height"?: Property.MaxHeight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'max-width'>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :--------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * | | | 10.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-inline-size + */ + "max-inline-size"?: Property.MaxInlineSize<TLength> | undefined; + /** + * **Syntax**: `none | <integer>` + * + * **Initial value**: `none` + */ + "max-lines"?: Property.MaxLines | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-width + */ + "max-width"?: Property.MaxWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'min-width'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-block-size + */ + "min-block-size"?: Property.MinBlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **3** | **1.3** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height + */ + "min-height"?: Property.MinHeight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'min-width'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-inline-size + */ + "min-inline-size"?: Property.MinInlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **7** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-width + */ + "min-width"?: Property.MinWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<blend-mode> | plus-darker | plus-lighter` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **41** | **32** | **8** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mix-blend-mode + */ + "mix-blend-mode"?: Property.MixBlendMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion-distance)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-distance + */ + "motion-distance"?: Property.OffsetDistance<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | <offset-path> || <coord-box>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----------------: | :-----: | :------: | :----: | :-: | + * | **55** | **72** | **15.4** | **79** | No | + * | 46 _(motion-path)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-path + */ + "motion-path"?: Property.OffsetPath | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ auto | reverse ] || <angle>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **56** | **72** | **16** | **79** | No | + * | 46 _(motion-rotation)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate + */ + "motion-rotation"?: Property.OffsetRotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `fill | contain | cover | none | scale-down` + * + * **Initial value**: `fill` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **32** | **36** | **10** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-fit + */ + "object-fit"?: Property.ObjectFit | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **32** | **36** | **10** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-position + */ + "object-position"?: Property.ObjectPosition<TLength> | undefined; + /** + * **Syntax**: `none | <basic-shape-rect>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **104** | No | No | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-view-box + */ + "object-view-box"?: Property.ObjectViewBox | undefined; + /** + * Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | <position>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **116** | **72** | **16** | **116** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-anchor + */ + "offset-anchor"?: Property.OffsetAnchor<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion-distance)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-distance + */ + "offset-distance"?: Property.OffsetDistance<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | <offset-path> || <coord-box>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----------------: | :-----: | :------: | :----: | :-: | + * | **55** | **72** | **15.4** | **79** | No | + * | 46 _(motion-path)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-path + */ + "offset-path"?: Property.OffsetPath | undefined; + /** + * Since January 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | auto | <position>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **116** | **122** | **16** | **116** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-position + */ + "offset-position"?: Property.OffsetPosition<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ auto | reverse ] || <angle>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **56** | **72** | **16** | **79** | No | + * | 46 _(motion-rotation)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate + */ + "offset-rotate"?: Property.OffsetRotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ auto | reverse ] || <angle>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :--------------------: | :-----: | :----: | :----: | :-: | + * | **56** | **72** | **16** | **79** | No | + * | 46 _(motion-rotation)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate + */ + "offset-rotation"?: Property.OffsetRotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **2** | **12** | **9** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/opacity + */ + opacity?: Property.Opacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :------: | + * | **29** | **20** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/order + */ + order?: Property.Order | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `2` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **25** | No | **1.3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/orphans + */ + orphans?: Property.Orphans | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1.5** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-color + */ + "outline-color"?: Property.OutlineColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **1** | **1.5** | **1.2** | **15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-offset + */ + "outline-offset"?: Property.OutlineOffset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <outline-line-style>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1.5** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-style + */ + "outline-style"?: Property.OutlineStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **1.5** | **1.2** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-width + */ + "outline-width"?: Property.OutlineWidth<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :---------: | :----: | :-: | + * | **56** | **66** | **preview** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-anchor + */ + "overflow-anchor"?: Property.OverflowAnchor | undefined; + /** + * Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **135** | **69** | **26** | **135** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-block + */ + "overflow-block"?: Property.OverflowBlock | undefined; + /** + * **Syntax**: `padding-box | content-box` + * + * **Initial value**: `padding-box` + */ + "overflow-clip-box"?: Property.OverflowClipBox | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<visual-box> || <length [0,∞]>` + * + * **Initial value**: `0px` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **90** | **102** | No | **90** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-clip-margin + */ + "overflow-clip-margin"?: Property.OverflowClipMargin<TLength> | undefined; + /** + * Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **135** | **69** | **26** | **135** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-inline + */ + "overflow-inline"?: Property.OverflowInline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2018. + * + * **Syntax**: `normal | break-word | anywhere` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------: | :---------------: | :-------------: | :--------------: | :-------------------: | + * | **23** | **49** | **7** | **18** | **5.5** _(word-wrap)_ | + * | 1 _(word-wrap)_ | 3.5 _(word-wrap)_ | 1 _(word-wrap)_ | 12 _(word-wrap)_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap + */ + "overflow-wrap"?: Property.OverflowWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **3.5** | **3** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-x + */ + "overflow-x"?: Property.OverflowX | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **3.5** | **3** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-y + */ + "overflow-y"?: Property.OverflowY | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **117** | No | No | **117** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overlay + */ + overlay?: Property.Overlay | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **77** | **73** | **16** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-block + */ + "overscroll-behavior-block"?: Property.OverscrollBehaviorBlock | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **77** | **73** | **16** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-inline + */ + "overscroll-behavior-inline"?: Property.OverscrollBehaviorInline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **63** | **59** | **16** | **18** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-x + */ + "overscroll-behavior-x"?: Property.OverscrollBehaviorX | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `contain | none | auto` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **63** | **59** | **16** | **18** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-y + */ + "overscroll-behavior-y"?: Property.OverscrollBehaviorY | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block-end + */ + "padding-block-end"?: Property.PaddingBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block-start + */ + "padding-block-start"?: Property.PaddingBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-bottom + */ + "padding-bottom"?: Property.PaddingBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----------------------: | :--------------------: | :-----------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-padding-end)_ | 3 _(-moz-padding-end)_ | 3 _(-webkit-padding-end)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline-end + */ + "padding-inline-end"?: Property.PaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-------------------------: | :----------------------: | :-------------------------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * | 2 _(-webkit-padding-start)_ | 3 _(-moz-padding-start)_ | 3 _(-webkit-padding-start)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline-start + */ + "padding-inline-start"?: Property.PaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-left + */ + "padding-left"?: Property.PaddingLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-right + */ + "padding-right"?: Property.PaddingRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-top + */ + "padding-top"?: Property.PaddingTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `auto | <custom-ident>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **85** | **110** | **1** | **85** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/page + */ + page?: Property.Page | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | [ fill || stroke || markers ]` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **123** | **60** | **11** | **123** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/paint-order + */ + "paint-order"?: Property.PaintOrder | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <length>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 12 _-x-_ | 10 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/perspective + */ + perspective?: Property.Perspective<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 12 _-x-_ | 10 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/perspective-origin + */ + "perspective-origin"?: Property.PerspectiveOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :----: | + * | **1** | **1.5** | **4** | **12** | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/pointer-events + */ + "pointer-events"?: Property.PointerEvents | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `static | relative | absolute | sticky | fixed` + * + * **Initial value**: `static` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position + */ + position?: Property.Position | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | <anchor-name>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-anchor + */ + "position-anchor"?: Property.PositionAnchor | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <position-area>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **129** | **preview** | **26** | **129** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-area + */ + "position-area"?: Property.PositionArea | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ [<dashed-ident> || <try-tactic>] | <'position-area'> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **128** | **preview** | **26** | **128** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try-fallbacks + */ + "position-try-fallbacks"?: Property.PositionTryFallbacks | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <try-size>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **125** | No | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try-order + */ + "position-try-order"?: Property.PositionTryOrder | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `always | [ anchors-valid || anchors-visible || no-overflow ]` + * + * **Initial value**: `anchors-visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | No | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-visibility + */ + "position-visibility"?: Property.PositionVisibility | undefined; + /** + * Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `economy | exact` + * + * **Initial value**: `economy` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----------------: | :------: | :------: | :-: | + * | **136** | **97** | **15.4** | **136** | No | + * | 17 _-x-_ | 48 _(color-adjust)_ | 6 _-x-_ | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/print-color-adjust + */ + "print-color-adjust"?: Property.PrintColorAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | auto | [ <string> <string> ]+` + * + * **Initial value**: depends on user agent + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **11** | **1.5** | **9** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/quotes + */ + quotes?: Property.Quotes | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **43** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/r + */ + r?: Property.R<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | both | horizontal | vertical | block | inline` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **4** | **3** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/resize + */ + resize?: Property.Resize | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/right + */ + right?: Property.Right<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022. + * + * **Syntax**: `none | <angle> | [ x | y | z | <number>{3} ] && <angle>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **104** | **72** | **14.1** | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/rotate + */ + rotate?: Property.Rotate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `normal | <length-percentage>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **47** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/row-gap + */ + "row-gap"?: Property.RowGap<TLength> | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `start | center | space-between | space-around` + * + * **Initial value**: `space-around` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **128** | **38** | **18.2** | **128** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-align + */ + "ruby-align"?: Property.RubyAlign | undefined; + /** + * **Syntax**: `separate | collapse | auto` + * + * **Initial value**: `separate` + */ + "ruby-merge"?: Property.RubyMerge | undefined; + /** + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **18.2** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-overhang + */ + "ruby-overhang"?: Property.RubyOverhang | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ alternate || [ over | under ] ] | inter-character` + * + * **Initial value**: `alternate` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :---: | :-: | + * | **84** | **38** | **18.2** | 12-79 | No | + * | 1 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-position + */ + "ruby-position"?: Property.RubyPosition | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **43** | **69** | **17.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/rx + */ + rx?: Property.Rx<TLength> | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **43** | **69** | **17.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ry + */ + ry?: Property.Ry<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022. + * + * **Syntax**: `none | [ <number> | <percentage> ]{1,3}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **104** | **72** | **14.1** | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scale + */ + scale?: Property.Scale | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | smooth` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **61** | **36** | **15.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-behavior + */ + "scroll-behavior"?: Property.ScrollBehavior | undefined; + /** + * **Syntax**: `none | nearest` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **133** | No | No | **133** | No | + */ + "scroll-initial-target"?: Property.ScrollInitialTarget | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block-end + */ + "scroll-margin-block-end"?: Property.ScrollMarginBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block-start + */ + "scroll-margin-block-start"?: Property.ScrollMarginBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-bottom)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-bottom + */ + "scroll-margin-bottom"?: Property.ScrollMarginBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline-end + */ + "scroll-margin-inline-end"?: Property.ScrollMarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline-start + */ + "scroll-margin-inline-start"?: Property.ScrollMarginInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-left)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-left + */ + "scroll-margin-left"?: Property.ScrollMarginLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-right)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-right + */ + "scroll-margin-right"?: Property.ScrollMarginRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :---------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-top)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-top + */ + "scroll-margin-top"?: Property.ScrollMarginTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block-end + */ + "scroll-padding-block-end"?: Property.ScrollPaddingBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block-start + */ + "scroll-padding-block-start"?: Property.ScrollPaddingBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-bottom + */ + "scroll-padding-bottom"?: Property.ScrollPaddingBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline-end + */ + "scroll-padding-inline-end"?: Property.ScrollPaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline-start + */ + "scroll-padding-inline-start"?: Property.ScrollPaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-left + */ + "scroll-padding-left"?: Property.ScrollPaddingLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-right + */ + "scroll-padding-right"?: Property.ScrollPaddingRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `auto | <length-percentage>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-top + */ + "scroll-padding-top"?: Property.ScrollPaddingTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `[ none | start | end | center ]{1,2}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-align + */ + "scroll-snap-align"?: Property.ScrollSnapAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-bottom)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-bottom + */ + "scroll-snap-margin-bottom"?: Property.ScrollMarginBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-left)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-left + */ + "scroll-snap-margin-left"?: Property.ScrollMarginLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-right)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-right + */ + "scroll-snap-margin-right"?: Property.ScrollMarginRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :---------------------------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin-top)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-top + */ + "scroll-snap-margin-top"?: Property.ScrollMarginTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2022. + * + * **Syntax**: `normal | always` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **75** | **103** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-stop + */ + "scroll-snap-stop"?: Property.ScrollSnapStop | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2022. + * + * **Syntax**: `none | [ x | y | block | inline | both ] [ mandatory | proximity ]?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----------: | + * | **69** | 39-68 | **11** | **79** | **10** _-x-_ | + * | | | 9 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-type + */ + "scroll-snap-type"?: Property.ScrollSnapType | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ block | inline | x | y ]#` + * + * **Initial value**: `block` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-timeline-axis + */ + "scroll-timeline-axis"?: Property.ScrollTimelineAxis | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ none | <dashed-ident> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-timeline-name + */ + "scroll-timeline-name"?: Property.ScrollTimelineName | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | <color>{2}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **121** | **64** | No | **121** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-color + */ + "scrollbar-color"?: Property.ScrollbarColor | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | stable && both-edges?` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **94** | **97** | **18.2** | **94** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-gutter + */ + "scrollbar-gutter"?: Property.ScrollbarGutter | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | thin | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **121** | **64** | **18.2** | **121** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-width + */ + "scrollbar-width"?: Property.ScrollbarWidth | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `0.0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **37** | **62** | **10.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-image-threshold + */ + "shape-image-threshold"?: Property.ShapeImageThreshold | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **37** | **62** | **10.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-margin + */ + "shape-margin"?: Property.ShapeMargin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ <shape-box> || <basic-shape> ] | <image>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **37** | **62** | **10.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-outside + */ + "shape-outside"?: Property.ShapeOutside | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | optimizeSpeed | crispEdges | geometricPrecision` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **1** | **3** | **4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-rendering + */ + "shape-rendering"?: Property.ShapeRendering | undefined; + /** + * **Syntax**: `normal | spell-out || digits || [ literal-punctuation | no-punctuation ]` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **11.1** | No | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/speak-as + */ + "speak-as"?: Property.SpeakAs | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'color'>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stop-color + */ + "stop-color"?: Property.StopColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `black` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stop-opacity + */ + "stop-opacity"?: Property.StopOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<paint>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke + */ + stroke?: Property.Stroke | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `transparent` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | No | No | **11.1** | No | No | + */ + "stroke-color"?: Property.StrokeColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `none | <dasharray>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-dasharray + */ + "stroke-dasharray"?: Property.StrokeDasharray<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length-percentage> | <number>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-dashoffset + */ + "stroke-dashoffset"?: Property.StrokeDashoffset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `butt | round | square` + * + * **Initial value**: `butt` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-linecap + */ + "stroke-linecap"?: Property.StrokeLinecap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `miter | miter-clip | round | bevel | arcs` + * + * **Initial value**: `miter` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-linejoin + */ + "stroke-linejoin"?: Property.StrokeLinejoin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<number>` + * + * **Initial value**: `4` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-miterlimit + */ + "stroke-miterlimit"?: Property.StrokeMiterlimit | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<'opacity'>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-opacity + */ + "stroke-opacity"?: Property.StrokeOpacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length-percentage> | <number>` + * + * **Initial value**: `1px` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **1.5** | **4** | **≤15** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-width + */ + "stroke-width"?: Property.StrokeWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2021. + * + * **Syntax**: `<integer> | <length>` + * + * **Initial value**: `8` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **21** | **91** | **7** | **79** | No | + * | | 4 _-x-_ | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/tab-size + */ + "tab-size"?: Property.TabSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | fixed` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **14** | **1** | **1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/table-layout + */ + "table-layout"?: Property.TableLayout | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `start | end | left | right | center | justify | match-parent` + * + * **Initial value**: `start`, or a nameless value that acts as `left` if _direction_ is `ltr`, `right` if _direction_ is `rtl` if `start` is not supported by the browser. + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-align + */ + "text-align"?: Property.TextAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `auto | start | end | left | right | center | justify` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **47** | **49** | **16** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-align-last + */ + "text-align-last"?: Property.TextAlignLast | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016. + * + * **Syntax**: `start | middle | end` + * + * **Initial value**: `start` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :-----: | :-: | + * | **1** | **3** | **4** | **≤14** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-anchor + */ + "text-anchor"?: Property.TextAnchor | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <autospace> | auto` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **140** | **145** | **18.4** | **140** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-autospace + */ + "text-autospace"?: Property.TextAutospace | undefined; + /** + * **Syntax**: `normal | <'text-box-trim'> || <'text-box-edge'>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **133** | No | **18.2** | **133** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-box + */ + "text-box"?: Property.TextBox | undefined; + /** + * **Syntax**: `auto | <text-edge>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **133** | No | **18.2** | **133** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-box-edge + */ + "text-box-edge"?: Property.TextBoxEdge | undefined; + /** + * **Syntax**: `none | trim-start | trim-end | trim-both` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **133** | No | **18.2** | **133** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-box-trim + */ + "text-box-trim"?: Property.TextBoxTrim | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | all | [ digits <integer>? ]` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------: | :-----: | :--------------------------: | :----: | :------------------------------------: | + * | **48** | **48** | **15.4** | **79** | **11** _(-ms-text-combine-horizontal)_ | + * | 9 _(-webkit-text-combine)_ | | 5.1 _(-webkit-text-combine)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-combine-upright + */ + "text-combine-upright"?: Property.TextCombineUpright | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **36** | **12.1** | **79** | No | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-color + */ + "text-decoration-color"?: Property.TextDecorationColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **36** | **12.1** | **79** | No | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-line + */ + "text-decoration-line"?: Property.TextDecorationLine | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]` + * + * **Initial value**: `objects` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :--: | :-: | + * | 57-64 | No | **12.1** | No | No | + * | | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip + */ + "text-decoration-skip"?: Property.TextDecorationSkip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | all | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **64** | **70** | **15.4** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink + */ + "text-decoration-skip-ink"?: Property.TextDecorationSkipInk | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `solid | double | dotted | dashed | wavy` + * + * **Initial value**: `solid` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **36** | **12.1** | **79** | No | + * | | | 8 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-style + */ + "text-decoration-style"?: Property.TextDecorationStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2021. + * + * **Syntax**: `auto | from-font | <length> | <percentage> ` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **89** | **70** | **12.1** | **89** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-thickness + */ + "text-decoration-thickness"?: Property.TextDecorationThickness<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-color + */ + "text-emphasis-color"?: Property.TextEmphasisColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | [ over | under ] && [ right | left ]?` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-position + */ + "text-emphasis-position"?: Property.TextEmphasisPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-style + */ + "text-emphasis-style"?: Property.TextEmphasisStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage> && hanging? && each-line?` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-indent + */ + "text-indent"?: Property.TextIndent<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | inter-character | inter-word | none` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :---: | :----: | + * | No | **55** | No | 12-79 | **11** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-justify + */ + "text-justify"?: Property.TextJustify | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020. + * + * **Syntax**: `mixed | upright | sideways` + * + * **Initial value**: `mixed` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-------: | :----: | :-: | + * | **48** | **41** | **14** | **79** | No | + * | 12 _-x-_ | | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-orientation + */ + "text-orientation"?: Property.TextOrientation | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ clip | ellipsis | <string> ]{1,2}` + * + * **Initial value**: `clip` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **1** | **7** | **1.3** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-overflow + */ + "text-overflow"?: Property.TextOverflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | optimizeSpeed | optimizeLegibility | geometricPrecision` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **4** | **1** | **5** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-rendering + */ + "text-rendering"?: Property.TextRendering | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow-t>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----: | + * | **2** | **3.5** | **1.1** | **12** | **10** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-shadow + */ + "text-shadow"?: Property.TextShadow | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto | <percentage>` + * + * **Initial value**: `auto` for smartphone browsers supporting inflation, `none` in other cases (and then not modifiable). + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **54** | No | No | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-size-adjust + */ + "text-size-adjust"?: Property.TextSizeAdjust | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `space-all | normal | space-first | trim-start` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **123** | No | No | **123** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-spacing-trim + */ + "text-spacing-trim"?: Property.TextSpacingTrim | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | [ capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-transform + */ + "text-transform"?: Property.TextTransform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2020. + * + * **Syntax**: `auto | <length> | <percentage> ` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **70** | **12.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-offset + */ + "text-underline-offset"?: Property.TextUnderlineOffset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | from-font | [ under || [ left | right ] ]` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :---: | + * | **33** | **74** | **12.1** | **12** | **6** | + * | | | 9 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-position + */ + "text-underline-position"?: Property.TextUnderlinePosition | undefined; + /** + * Since October 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `wrap | nowrap` + * + * **Initial value**: `wrap` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **130** | **124** | **17.4** | **130** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-mode + */ + "text-wrap-mode"?: Property.TextWrapMode | undefined; + /** + * Since October 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | balance | stable | pretty` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **130** | **124** | **17.5** | **130** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-style + */ + "text-wrap-style"?: Property.TextWrapStyle | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <dashed-ident>#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **116** | No | **26** | **116** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-scope + */ + "timeline-scope"?: Property.TimelineScope | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage> | <anchor()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/top + */ + top?: Property.Top<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2019. + * + * **Syntax**: `auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :------: | + * | **36** | **52** | **13** | **12** | **11** | + * | | | | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/touch-action + */ + "touch-action"?: Property.TouchAction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-------: | :-------: | :----: | :-----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | 3.5 _-x-_ | 3.1 _-x-_ | | 9 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform + */ + transform?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `content-box | border-box | fill-box | stroke-box | view-box` + * + * **Initial value**: `view-box` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **64** | **55** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-box + */ + "transform-box"?: Property.TransformBox | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-------: | :-----: | :----: | :-----: | + * | **36** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | 3.5 _-x-_ | 2 _-x-_ | | 9 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-origin + */ + "transform-origin"?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `flat | preserve-3d` + * + * **Initial value**: `flat` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :------: | :-----: | :----: | :-: | + * | **36** | **16** | **9** | **12** | No | + * | 12 _-x-_ | 10 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-style + */ + "transform-style"?: Property.TransformStyle | undefined; + /** + * Since August 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<transition-behavior-value>#` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **117** | **129** | **17.4** | **117** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-behavior + */ + "transition-behavior"?: Property.TransitionBehavior | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-delay + */ + "transition-delay"?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-duration + */ + "transition-duration"?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-property + */ + "transition-property"?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-timing-function + */ + "transition-timing-function"?: Property.TransitionTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022. + * + * **Syntax**: `none | <length-percentage> [ <length-percentage> <length>? ]?` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **104** | **72** | **14.1** | **104** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/translate + */ + translate?: Property.Translate<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | embed | isolate | bidi-override | isolate-override | plaintext` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-----: | + * | **2** | **1** | **1.3** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/unicode-bidi + */ + "unicode-bidi"?: Property.UnicodeBidi | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :---------: | :------: | :----------: | + * | **54** | **69** | **3** _-x-_ | **79** | **10** _-x-_ | + * | 1 _-x-_ | 1 _-x-_ | | 12 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/user-select + */ + "user-select"?: Property.UserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **6** | **15** | **5.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vector-effect + */ + "vector-effect"?: Property.VectorEffect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>` + * + * **Initial value**: `baseline` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vertical-align + */ + "vertical-align"?: Property.VerticalAlign<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ block | inline | x | y ]#` + * + * **Initial value**: `block` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-axis + */ + "view-timeline-axis"?: Property.ViewTimelineAxis | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ [ auto | <length-percentage> ]{1,2} ]#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-inset + */ + "view-timeline-inset"?: Property.ViewTimelineInset<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ none | <dashed-ident> ]#` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-name + */ + "view-timeline-name"?: Property.ViewTimelineName | undefined; + /** + * **Syntax**: `none | <custom-ident>+` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **125** | **144** | **18.2** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-class + */ + "view-transition-class"?: Property.ViewTransitionClass | undefined; + /** + * Since October 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | <custom-ident> | match-element` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **111** | **144** | **18** | **111** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-name + */ + "view-transition-name"?: Property.ViewTransitionName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | collapse` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/visibility + */ + visibility?: Property.Visibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space + */ + "white-space"?: Property.WhiteSpace | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `collapse | preserve | preserve-breaks | preserve-spaces | break-spaces` + * + * **Initial value**: `collapse` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **114** | **124** | **17.4** | **114** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space-collapse + */ + "white-space-collapse"?: Property.WhiteSpaceCollapse | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `2` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :---: | + * | **25** | No | **1.3** | **12** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/widows + */ + widows?: Property.Widows | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/width + */ + width?: Property.Width<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | <animateable-feature>#` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **36** | **36** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/will-change + */ + "will-change"?: Property.WillChange | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | break-all | keep-all | break-word | auto-phrase` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **15** | **3** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/word-break + */ + "word-break"?: Property.WordBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | <length>` + * + * **Initial value**: `normal` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **6** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/word-spacing + */ + "word-spacing"?: Property.WordSpacing<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2018. + * + * **Syntax**: `normal | break-word` + * + * **Initial value**: `normal` + */ + "word-wrap"?: Property.WordWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr` + * + * **Initial value**: `horizontal-tb` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :---: | + * | **48** | **41** | **10.1** | **12** | **9** | + * | 8 _-x-_ | | 5.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/writing-mode + */ + "writing-mode"?: Property.WritingMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **42** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/x + */ + x?: Property.X<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `<length> | <percentage>` + * + * **Initial value**: `0` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **42** | **69** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/y + */ + y?: Property.Y<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <integer>` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/z-index + */ + "z-index"?: Property.ZIndex | undefined; + /** + * Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `normal | reset | <number [0,∞]> || <percentage [0,∞]>` + * + * **Initial value**: `1` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-----: | + * | **1** | **126** | **3.1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/zoom + */ + zoom?: Property.Zoom | undefined; +} + +export interface StandardShorthandPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `initial | inherit | unset | revert | revert-layer` + * + * **Initial value**: There is no practical initial value for it. + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :-: | + * | **37** | **27** | **9.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/all + */ + all?: Property.All | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **43** | **16** | **9** | **12** | **10** | + * | 3 _-x-_ | 5 _-x-_ | 4 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation + */ + animation?: Property.Animation<TTime> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <'animation-range-start'> <'animation-range-end'>? ]#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-range + */ + "animation-range"?: Property.AnimationRange<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-layer>#? , <final-bg-layer>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background + */ + background?: Property.Background<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-position>#` + * + * **Initial value**: `0% 0%` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position + */ + "background-position"?: Property.BackgroundPosition<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border + */ + border?: Property.Border<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-block-start'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block + */ + "border-block"?: Property.BorderBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-color'>{1,2}` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-color + */ + "border-block-color"?: Property.BorderBlockColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end + */ + "border-block-end"?: Property.BorderBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start + */ + "border-block-start"?: Property.BorderBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-style'>{1,2}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-style + */ + "border-block-style"?: Property.BorderBlockStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-width'>{1,2}` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-width + */ + "border-block-width"?: Property.BorderBlockWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom + */ + "border-bottom"?: Property.BorderBottom<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<color>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-color + */ + "border-color"?: Property.BorderColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-------: | :-----: | :----: | :----: | + * | **16** | **15** | **6** | **12** | **11** | + * | 7 _-x-_ | 3.5 _-x-_ | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image + */ + "border-image"?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-block-start'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline + */ + "border-inline"?: Property.BorderInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-color'>{1,2}` + * + * **Initial value**: `currentcolor` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-color + */ + "border-inline-color"?: Property.BorderInlineColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end + */ + "border-inline-end"?: Property.BorderInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'> || <'border-top-style'> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **41** | **12.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start + */ + "border-inline-start"?: Property.BorderInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-style'>{1,2}` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-style + */ + "border-inline-style"?: Property.BorderInlineStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'border-top-width'>{1,2}` + * + * **Initial value**: `medium` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-width + */ + "border-inline-width"?: Property.BorderInlineWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left + */ + "border-left"?: Property.BorderLeft<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :---: | + * | **4** | **4** | **5** | **12** | **9** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-radius + */ + "border-radius"?: Property.BorderRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-----: | + * | **1** | **1** | **1** | **12** | **5.5** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right + */ + "border-right"?: Property.BorderRight<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-style>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-style + */ + "border-style"?: Property.BorderStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width> || <line-style> || <color>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top + */ + "border-top"?: Property.BorderTop<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-width + */ + "border-width"?: Property.BorderWidth<TLength> | undefined; + /** **Syntax**: `<'caret-color'> || <'caret-shape'>` */ + caret?: Property.Caret | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule + */ + "column-rule"?: Property.ColumnRule<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-width'> || <'column-count'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----: | :----: | :----: | + * | **50** | **52** | **9** | **12** | **10** | + * | | | 3 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/columns + */ + columns?: Property.Columns<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ auto? [ none | <length> ] ]{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **83** | **107** | **17** | **83** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-size + */ + "contain-intrinsic-size"?: Property.ContainIntrinsicSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. + * + * **Syntax**: `<'container-name'> [ / <'container-type'> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **105** | **110** | **16** | **105** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container + */ + container?: Property.Container | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :------: | + * | **29** | **22** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | 10 _-x-_ | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex + */ + flex?: Property.Flex<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<'flex-direction'> || <'flex-wrap'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :-----: | :----: | :----: | + * | **29** | **28** | **9** | **12** | **11** | + * | 21 _-x-_ | | 7 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-flow + */ + "flex-flow"?: Property.FlexFlow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font + */ + font?: Property.Font | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<'row-gap'> <'column-gap'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/gap + */ + gap?: Property.Gap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid + */ + grid?: Property.Grid | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line> [ / <grid-line> ]{0,3}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-area + */ + "grid-area"?: Property.GridArea | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line> [ / <grid-line> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column + */ + "grid-column"?: Property.GridColumn | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<grid-line> [ / <grid-line> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row + */ + "grid-row"?: Property.GridRow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **57** | **52** | **10.1** | **16** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template + */ + "grid-template"?: Property.GridTemplate | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset + */ + inset?: Property.Inset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block + */ + "inset-block"?: Property.InsetBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **63** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline + */ + "inset-inline"?: Property.InsetInline<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <integer>` + * + * **Initial value**: `none` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :---------: | :----------: | :-------: | :----------: | :-: | + * | **6** _-x-_ | **68** _-x-_ | 18.2-18.4 | **17** _-x-_ | No | + * | | | 5 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-clamp + */ + "line-clamp"?: Property.LineClamp | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'list-style-type'> || <'list-style-position'> || <'list-style-image'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style + */ + "list-style"?: Property.ListStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'margin-top'>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin + */ + margin?: Property.Margin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'margin-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block + */ + "margin-block"?: Property.MarginBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'margin-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline + */ + "margin-inline"?: Property.MarginInline<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<mask-layer>#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :---: | :-: | + * | **120** | **53** | **15.4** | 12-79 | No | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask + */ + mask?: Property.Mask<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------------------------------: | :-----: | :----------------------------: | :-------------------------------: | :-: | + * | **1** _(-webkit-mask-box-image)_ | No | **17.2** | **79** _(-webkit-mask-box-image)_ | No | + * | | | 3.1 _(-webkit-mask-box-image)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border + */ + "mask-border"?: Property.MaskBorder | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset + */ + motion?: Property.Offset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----------: | :-----: | :----: | :----: | :-: | + * | **55** | **72** | **16** | **79** | No | + * | 46 _(motion)_ | | | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset + */ + offset?: Property.Offset<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `<'outline-width'> || <'outline-style'> || <'outline-color'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :---: | + * | **94** | **88** | **16.4** | **94** | **8** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline + */ + outline?: Property.Outline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ visible | hidden | clip | scroll | auto ]{1,2}` + * + * **Initial value**: `visible` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow + */ + overflow?: Property.Overflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `[ contain | none | auto ]{1,2}` + * + * **Initial value**: `auto` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **63** | **59** | **16** | **18** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior + */ + "overscroll-behavior"?: Property.OverscrollBehavior | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'padding-top'>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **4** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding + */ + padding?: Property.Padding<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'padding-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block + */ + "padding-block"?: Property.PaddingBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'padding-top'>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **87** | **66** | **14.1** | **87** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline + */ + "padding-inline"?: Property.PaddingInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'align-content'> <'justify-content'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **59** | **45** | **9** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-content + */ + "place-content"?: Property.PlaceContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'align-items'> <'justify-items'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **59** | **45** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-items + */ + "place-items"?: Property.PlaceItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'align-self'> <'justify-self'>?` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **59** | **45** | **11** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-self + */ + "place-self"?: Property.PlaceSelf | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<'position-try-order'>? <'position-try-fallbacks'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :---------: | :----: | :-----: | :-: | + * | **125** | **preview** | **26** | **125** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try + */ + "position-try"?: Property.PositionTry | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2021. + * + * **Syntax**: `<length>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------: | :----: | :-: | + * | **69** | **90** | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin + */ + "scroll-margin"?: Property.ScrollMargin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block + */ + "scroll-margin-block"?: Property.ScrollMarginBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `<length>{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline + */ + "scroll-margin-inline"?: Property.ScrollMarginInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `[ auto | <length-percentage> ]{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :------: | :----: | :-: | + * | **69** | **68** | **14.1** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding + */ + "scroll-padding"?: Property.ScrollPadding<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `[ auto | <length-percentage> ]{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block + */ + "scroll-padding-block"?: Property.ScrollPaddingBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021. + * + * **Syntax**: `[ auto | <length-percentage> ]{1,2}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :-: | + * | **69** | **68** | **15** | **79** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline + */ + "scroll-padding-inline"?: Property.ScrollPaddingInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2021. + * + * **Syntax**: `<length>{1,4}` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :-----------------------: | :----: | :-: | + * | **69** | 68-90 | **14.1** | **79** | No | + * | | | 11 _(scroll-snap-margin)_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin + */ + "scroll-snap-margin"?: Property.ScrollMargin<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-timeline + */ + "scroll-timeline"?: Property.ScrollTimeline | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :----: | :-----: | :----: | :----: | :---: | + * | **1** | **1** | **1** | **12** | **3** | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration + */ + "text-decoration"?: Property.TextDecoration<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<'text-emphasis-style'> || <'text-emphasis-color'>` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :------: | :-----: | :----: | :------: | :-: | + * | **99** | **46** | **7** | **99** | No | + * | 25 _-x-_ | | | 79 _-x-_ | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis + */ + "text-emphasis"?: Property.TextEmphasis | undefined; + /** + * Since March 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<'text-wrap-mode'> || <'text-wrap-style'>` + * + * **Initial value**: `wrap` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :------: | :-----: | :-: | + * | **114** | **121** | **17.4** | **114** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap + */ + "text-wrap"?: Property.TextWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :-------: | :----: | :----: | + * | **26** | **16** | **9** | **12** | **10** | + * | 1 _-x-_ | | 3.1 _-x-_ | | | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition + */ + transition?: Property.Transition<TTime> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#` + * + * | Chrome | Firefox | Safari | Edge | IE | + * | :-----: | :-----: | :----: | :-----: | :-: | + * | **115** | No | **26** | **115** | No | + * + * @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline + */ + "view-timeline"?: Property.ViewTimeline | undefined; +} + +export interface StandardPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardLonghandPropertiesHyphen<TLength, TTime>, + StandardShorthandPropertiesHyphen<TLength, TTime> {} + +export interface VendorLonghandPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + "-moz-animation-delay"?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + */ + "-moz-animation-direction"?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + */ + "-moz-animation-duration"?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + */ + "-moz-animation-fill-mode"?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + */ + "-moz-animation-iteration-count"?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + */ + "-moz-animation-name"?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + */ + "-moz-animation-play-state"?: Property.AnimationPlayState | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + "-moz-animation-timing-function"?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized` + * + * **Initial value**: `none` (but this value is overridden in the user agent CSS) + */ + "-moz-appearance"?: Property.MozAppearance | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `visible | hidden` + * + * **Initial value**: `visible` + */ + "-moz-backface-visibility"?: Property.BackfaceVisibility | undefined; + /** + * **Syntax**: `<url> | none` + * + * **Initial value**: `none` + */ + "-moz-binding"?: Property.MozBinding | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + "-moz-border-bottom-colors"?: Property.MozBorderBottomColors | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + */ + "-moz-border-end-color"?: Property.BorderInlineEndColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + */ + "-moz-border-end-style"?: Property.BorderInlineEndStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-width'>` + * + * **Initial value**: `medium` + */ + "-moz-border-end-width"?: Property.BorderInlineEndWidth<TLength> | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + "-moz-border-left-colors"?: Property.MozBorderLeftColors | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + "-moz-border-right-colors"?: Property.MozBorderRightColors | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-color'>` + * + * **Initial value**: `currentcolor` + */ + "-moz-border-start-color"?: Property.BorderInlineStartColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'border-top-style'>` + * + * **Initial value**: `none` + */ + "-moz-border-start-style"?: Property.BorderInlineStartStyle | undefined; + /** + * **Syntax**: `<color>+ | none` + * + * **Initial value**: `none` + */ + "-moz-border-top-colors"?: Property.MozBorderTopColors | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `content-box | border-box` + * + * **Initial value**: `content-box` + */ + "-moz-box-sizing"?: Property.BoxSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-moz-column-rule-color"?: Property.ColumnRuleColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + */ + "-moz-column-rule-style"?: Property.ColumnRuleStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + */ + "-moz-column-rule-width"?: Property.ColumnRuleWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016. + * + * **Syntax**: `<length> | auto` + * + * **Initial value**: `auto` + */ + "-moz-column-width"?: Property.ColumnWidth<TLength> | undefined; + /** + * **Syntax**: `none | [ fill | fill-opacity | stroke | stroke-opacity ]#` + * + * **Initial value**: `none` + */ + "-moz-context-properties"?: Property.MozContextProperties | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `normal | <feature-tag-value>#` + * + * **Initial value**: `normal` + */ + "-moz-font-feature-settings"?: Property.FontFeatureSettings | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | <string>` + * + * **Initial value**: `normal` + */ + "-moz-font-language-override"?: Property.FontLanguageOverride | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + */ + "-moz-hyphens"?: Property.Hyphens | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + "-moz-margin-end"?: Property.MarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + "-moz-margin-start"?: Property.MarginInlineStart<TLength> | undefined; + /** + * The **`-moz-orient`** CSS property specifies the orientation of the element to which it's applied. + * + * **Syntax**: `inline | block | horizontal | vertical` + * + * **Initial value**: `inline` + */ + "-moz-orient"?: Property.MozOrient | undefined; + /** + * The **`font-smooth`** CSS property controls the application of anti-aliasing when fonts are rendered. + * + * **Syntax**: `auto | never | always | <absolute-size> | <length>` + * + * **Initial value**: `auto` + */ + "-moz-osx-font-smoothing"?: Property.FontSmooth<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + "-moz-outline-radius-bottomleft"?: Property.MozOutlineRadiusBottomleft<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + "-moz-outline-radius-bottomright"?: Property.MozOutlineRadiusBottomright<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + "-moz-outline-radius-topleft"?: Property.MozOutlineRadiusTopleft<TLength> | undefined; + /** + * **Syntax**: `<outline-radius>` + * + * **Initial value**: `0` + */ + "-moz-outline-radius-topright"?: Property.MozOutlineRadiusTopright<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + "-moz-padding-end"?: Property.PaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + "-moz-padding-start"?: Property.PaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <length>` + * + * **Initial value**: `none` + */ + "-moz-perspective"?: Property.Perspective<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + */ + "-moz-perspective-origin"?: Property.PerspectiveOrigin<TLength> | undefined; + /** + * **Syntax**: `ignore | stretch-to-fit` + * + * **Initial value**: `stretch-to-fit` + */ + "-moz-stack-sizing"?: Property.MozStackSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2021. + * + * **Syntax**: `<integer> | <length>` + * + * **Initial value**: `8` + */ + "-moz-tab-size"?: Property.TabSize<TLength> | undefined; + /** + * **Syntax**: `none | blink` + * + * **Initial value**: `none` + */ + "-moz-text-blink"?: Property.MozTextBlink | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto | <percentage>` + * + * **Initial value**: `auto` for smartphone browsers supporting inflation, `none` in other cases (and then not modifiable). + */ + "-moz-text-size-adjust"?: Property.TextSizeAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + */ + "-moz-transform"?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + */ + "-moz-transform-origin"?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `flat | preserve-3d` + * + * **Initial value**: `flat` + */ + "-moz-transform-style"?: Property.TransformStyle | undefined; + /** + * The **`user-modify`** property has no effect in Firefox. It was originally planned to determine whether or not the content of an element can be edited by a user. + * + * **Syntax**: `read-only | read-write | write-only` + * + * **Initial value**: `read-only` + */ + "-moz-user-modify"?: Property.MozUserModify | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + */ + "-moz-user-select"?: Property.UserSelect | undefined; + /** + * **Syntax**: `drag | no-drag` + * + * **Initial value**: `drag` + */ + "-moz-window-dragging"?: Property.MozWindowDragging | undefined; + /** + * **Syntax**: `default | menu | tooltip | sheet | none` + * + * **Initial value**: `default` + */ + "-moz-window-shadow"?: Property.MozWindowShadow | undefined; + /** + * **Syntax**: `false | true` + * + * **Initial value**: `false` + */ + "-ms-accelerator"?: Property.MsAccelerator | undefined; + /** + * **Syntax**: `tb | rl | bt | lr` + * + * **Initial value**: `tb` + */ + "-ms-block-progression"?: Property.MsBlockProgression | undefined; + /** + * **Syntax**: `none | chained` + * + * **Initial value**: `none` + */ + "-ms-content-zoom-chaining"?: Property.MsContentZoomChaining | undefined; + /** + * **Syntax**: `<percentage>` + * + * **Initial value**: `400%` + */ + "-ms-content-zoom-limit-max"?: Property.MsContentZoomLimitMax | undefined; + /** + * **Syntax**: `<percentage>` + * + * **Initial value**: `100%` + */ + "-ms-content-zoom-limit-min"?: Property.MsContentZoomLimitMin | undefined; + /** + * **Syntax**: `snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )` + * + * **Initial value**: `snapInterval(0%, 100%)` + */ + "-ms-content-zoom-snap-points"?: Property.MsContentZoomSnapPoints | undefined; + /** + * **Syntax**: `none | proximity | mandatory` + * + * **Initial value**: `none` + */ + "-ms-content-zoom-snap-type"?: Property.MsContentZoomSnapType | undefined; + /** + * **Syntax**: `none | zoom` + * + * **Initial value**: zoom for the top level element, none for all other elements + */ + "-ms-content-zooming"?: Property.MsContentZooming | undefined; + /** + * **Syntax**: `<string>` + * + * **Initial value**: "" (the empty string) + */ + "-ms-filter"?: Property.MsFilter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `row | row-reverse | column | column-reverse` + * + * **Initial value**: `row` + */ + "-ms-flex-direction"?: Property.FlexDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + */ + "-ms-flex-positive"?: Property.FlexGrow | undefined; + /** + * **Syntax**: `[ none | <custom-ident> ]#` + * + * **Initial value**: `none` + */ + "-ms-flow-from"?: Property.MsFlowFrom | undefined; + /** + * **Syntax**: `[ none | <custom-ident> ]#` + * + * **Initial value**: `none` + */ + "-ms-flow-into"?: Property.MsFlowInto | undefined; + /** + * **Syntax**: `none | <track-list> | <auto-track-list>` + * + * **Initial value**: `none` + */ + "-ms-grid-columns"?: Property.MsGridColumns<TLength> | undefined; + /** + * **Syntax**: `none | <track-list> | <auto-track-list>` + * + * **Initial value**: `none` + */ + "-ms-grid-rows"?: Property.MsGridRows<TLength> | undefined; + /** + * **Syntax**: `auto | none` + * + * **Initial value**: `auto` + */ + "-ms-high-contrast-adjust"?: Property.MsHighContrastAdjust | undefined; + /** + * **Syntax**: `auto | <integer>{1,3}` + * + * **Initial value**: `auto` + */ + "-ms-hyphenate-limit-chars"?: Property.MsHyphenateLimitChars | undefined; + /** + * **Syntax**: `no-limit | <integer>` + * + * **Initial value**: `no-limit` + */ + "-ms-hyphenate-limit-lines"?: Property.MsHyphenateLimitLines | undefined; + /** + * **Syntax**: `<percentage> | <length>` + * + * **Initial value**: `0` + */ + "-ms-hyphenate-limit-zone"?: Property.MsHyphenateLimitZone<TLength> | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + */ + "-ms-hyphens"?: Property.Hyphens | undefined; + /** + * **Syntax**: `auto | after` + * + * **Initial value**: `auto` + */ + "-ms-ime-align"?: Property.MsImeAlign | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + */ + "-ms-line-break"?: Property.LineBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `0` + */ + "-ms-order"?: Property.Order | undefined; + /** + * **Syntax**: `auto | none | scrollbar | -ms-autohiding-scrollbar` + * + * **Initial value**: `auto` + */ + "-ms-overflow-style"?: Property.MsOverflowStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + */ + "-ms-overflow-x"?: Property.OverflowX | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `visible | hidden | clip | scroll | auto` + * + * **Initial value**: `visible` + */ + "-ms-overflow-y"?: Property.OverflowY | undefined; + /** + * **Syntax**: `chained | none` + * + * **Initial value**: `chained` + */ + "-ms-scroll-chaining"?: Property.MsScrollChaining | undefined; + /** + * **Syntax**: `auto | <length>` + * + * **Initial value**: `auto` + */ + "-ms-scroll-limit-x-max"?: Property.MsScrollLimitXMax<TLength> | undefined; + /** + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + "-ms-scroll-limit-x-min"?: Property.MsScrollLimitXMin<TLength> | undefined; + /** + * **Syntax**: `auto | <length>` + * + * **Initial value**: `auto` + */ + "-ms-scroll-limit-y-max"?: Property.MsScrollLimitYMax<TLength> | undefined; + /** + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + "-ms-scroll-limit-y-min"?: Property.MsScrollLimitYMin<TLength> | undefined; + /** + * **Syntax**: `none | railed` + * + * **Initial value**: `railed` + */ + "-ms-scroll-rails"?: Property.MsScrollRails | undefined; + /** + * **Syntax**: `snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )` + * + * **Initial value**: `snapInterval(0px, 100%)` + */ + "-ms-scroll-snap-points-x"?: Property.MsScrollSnapPointsX | undefined; + /** + * **Syntax**: `snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )` + * + * **Initial value**: `snapInterval(0px, 100%)` + */ + "-ms-scroll-snap-points-y"?: Property.MsScrollSnapPointsY | undefined; + /** + * **Syntax**: `none | proximity | mandatory` + * + * **Initial value**: `none` + */ + "-ms-scroll-snap-type"?: Property.MsScrollSnapType | undefined; + /** + * **Syntax**: `none | vertical-to-horizontal` + * + * **Initial value**: `none` + */ + "-ms-scroll-translation"?: Property.MsScrollTranslation | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: depends on user agent + */ + "-ms-scrollbar-3dlight-color"?: Property.MsScrollbar3dlightColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ButtonText` + */ + "-ms-scrollbar-arrow-color"?: Property.MsScrollbarArrowColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: depends on user agent + */ + "-ms-scrollbar-base-color"?: Property.MsScrollbarBaseColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDDarkShadow` + */ + "-ms-scrollbar-darkshadow-color"?: Property.MsScrollbarDarkshadowColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDFace` + */ + "-ms-scrollbar-face-color"?: Property.MsScrollbarFaceColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDHighlight` + */ + "-ms-scrollbar-highlight-color"?: Property.MsScrollbarHighlightColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `ThreeDDarkShadow` + */ + "-ms-scrollbar-shadow-color"?: Property.MsScrollbarShadowColor | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `Scrollbar` + */ + "-ms-scrollbar-track-color"?: Property.MsScrollbarTrackColor | undefined; + /** + * **Syntax**: `none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space` + * + * **Initial value**: `none` + */ + "-ms-text-autospace"?: Property.MsTextAutospace | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | all | [ digits <integer>? ]` + * + * **Initial value**: `none` + */ + "-ms-text-combine-horizontal"?: Property.TextCombineUpright | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ clip | ellipsis | <string> ]{1,2}` + * + * **Initial value**: `clip` + */ + "-ms-text-overflow"?: Property.TextOverflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2019. + * + * **Syntax**: `auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation` + * + * **Initial value**: `auto` + */ + "-ms-touch-action"?: Property.TouchAction | undefined; + /** + * **Syntax**: `grippers | none` + * + * **Initial value**: `grippers` + */ + "-ms-touch-select"?: Property.MsTouchSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + */ + "-ms-transform"?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + */ + "-ms-transform-origin"?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + "-ms-transition-delay"?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + "-ms-transition-duration"?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + */ + "-ms-transition-property"?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + "-ms-transition-timing-function"?: Property.TransitionTimingFunction | undefined; + /** + * **Syntax**: `none | element | text` + * + * **Initial value**: `text` + */ + "-ms-user-select"?: Property.MsUserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `normal | break-all | keep-all | break-word | auto-phrase` + * + * **Initial value**: `normal` + */ + "-ms-word-break"?: Property.WordBreak | undefined; + /** + * **Syntax**: `auto | both | start | end | maximum | clear` + * + * **Initial value**: `auto` + */ + "-ms-wrap-flow"?: Property.MsWrapFlow | undefined; + /** + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + "-ms-wrap-margin"?: Property.MsWrapMargin<TLength> | undefined; + /** + * **Syntax**: `wrap | none` + * + * **Initial value**: `wrap` + */ + "-ms-wrap-through"?: Property.MsWrapThrough | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr` + * + * **Initial value**: `horizontal-tb` + */ + "-ms-writing-mode"?: Property.WritingMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>` + * + * **Initial value**: `normal` + */ + "-webkit-align-content"?: Property.AlignContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center` + * + * **Initial value**: `normal` + */ + "-webkit-align-items"?: Property.AlignItems | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center` + * + * **Initial value**: `auto` + */ + "-webkit-align-self"?: Property.AlignSelf | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + "-webkit-animation-delay"?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + */ + "-webkit-animation-direction"?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + */ + "-webkit-animation-duration"?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + */ + "-webkit-animation-fill-mode"?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + */ + "-webkit-animation-iteration-count"?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + */ + "-webkit-animation-name"?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + */ + "-webkit-animation-play-state"?: Property.AnimationPlayState | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + "-webkit-animation-timing-function"?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button` + * + * **Initial value**: `none` (but this value is overridden in the user agent CSS) + */ + "-webkit-appearance"?: Property.WebkitAppearance | undefined; + /** + * Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + */ + "-webkit-backdrop-filter"?: Property.BackdropFilter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `visible | hidden` + * + * **Initial value**: `visible` + */ + "-webkit-backface-visibility"?: Property.BackfaceVisibility | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-clip>#` + * + * **Initial value**: `border-box` + */ + "-webkit-background-clip"?: Property.BackgroundClip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<visual-box>#` + * + * **Initial value**: `padding-box` + */ + "-webkit-background-origin"?: Property.BackgroundOrigin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + */ + "-webkit-background-size"?: Property.BackgroundSize<TLength> | undefined; + /** + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-webkit-border-before-color"?: Property.WebkitBorderBeforeColor | undefined; + /** + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + */ + "-webkit-border-before-style"?: Property.WebkitBorderBeforeStyle | undefined; + /** + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + */ + "-webkit-border-before-width"?: Property.WebkitBorderBeforeWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + "-webkit-border-bottom-left-radius"?: Property.BorderBottomLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + "-webkit-border-bottom-right-radius"?: Property.BorderBottomRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ <number [0,∞]> | <percentage [0,∞]> ]{1,4} && fill?` + * + * **Initial value**: `100%` + */ + "-webkit-border-image-slice"?: Property.BorderImageSlice | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + "-webkit-border-top-left-radius"?: Property.BorderTopLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + */ + "-webkit-border-top-right-radius"?: Property.BorderTopRightRadius<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `slice | clone` + * + * **Initial value**: `slice` + */ + "-webkit-box-decoration-break"?: Property.BoxDecorationBreak | undefined; + /** + * The **`-webkit-box-reflect`** CSS property lets you reflect the content of an element in one specific direction. + * + * **Syntax**: `[ above | below | right | left ]? <length>? <image>?` + * + * **Initial value**: `none` + */ + "-webkit-box-reflect"?: Property.WebkitBoxReflect<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow>#` + * + * **Initial value**: `none` + */ + "-webkit-box-shadow"?: Property.BoxShadow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `content-box | border-box` + * + * **Initial value**: `content-box` + */ + "-webkit-box-sizing"?: Property.BoxSizing | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<clip-source> | [ <basic-shape> || <geometry-box> ] | none` + * + * **Initial value**: `none` + */ + "-webkit-clip-path"?: Property.ClipPath | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<integer> | auto` + * + * **Initial value**: `auto` + */ + "-webkit-column-count"?: Property.ColumnCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `auto | balance` + * + * **Initial value**: `balance` + */ + "-webkit-column-fill"?: Property.ColumnFill | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-webkit-column-rule-color"?: Property.ColumnRuleColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-style'>` + * + * **Initial value**: `none` + */ + "-webkit-column-rule-style"?: Property.ColumnRuleStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'border-width'>` + * + * **Initial value**: `medium` + */ + "-webkit-column-rule-width"?: Property.ColumnRuleWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `none | all` + * + * **Initial value**: `none` + */ + "-webkit-column-span"?: Property.ColumnSpan | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016. + * + * **Syntax**: `<length> | auto` + * + * **Initial value**: `auto` + */ + "-webkit-column-width"?: Property.ColumnWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `none | <filter-value-list>` + * + * **Initial value**: `none` + */ + "-webkit-filter"?: Property.Filter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `content | <'width'>` + * + * **Initial value**: `auto` + */ + "-webkit-flex-basis"?: Property.FlexBasis<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `row | row-reverse | column | column-reverse` + * + * **Initial value**: `row` + */ + "-webkit-flex-direction"?: Property.FlexDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + */ + "-webkit-flex-grow"?: Property.FlexGrow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<number>` + * + * **Initial value**: `1` + */ + "-webkit-flex-shrink"?: Property.FlexShrink | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `nowrap | wrap | wrap-reverse` + * + * **Initial value**: `nowrap` + */ + "-webkit-flex-wrap"?: Property.FlexWrap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `normal | <feature-tag-value>#` + * + * **Initial value**: `normal` + */ + "-webkit-font-feature-settings"?: Property.FontFeatureSettings | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `auto | normal | none` + * + * **Initial value**: `auto` + */ + "-webkit-font-kerning"?: Property.FontKerning | undefined; + /** + * The **`font-smooth`** CSS property controls the application of anti-aliasing when fonts are rendered. + * + * **Syntax**: `auto | never | always | <absolute-size> | <length>` + * + * **Initial value**: `auto` + */ + "-webkit-font-smoothing"?: Property.FontSmooth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]` + * + * **Initial value**: `normal` + */ + "-webkit-font-variant-ligatures"?: Property.FontVariantLigatures | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `auto | <string>` + * + * **Initial value**: `auto` + */ + "-webkit-hyphenate-character"?: Property.HyphenateCharacter | undefined; + /** + * Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `none | manual | auto` + * + * **Initial value**: `manual` + */ + "-webkit-hyphens"?: Property.Hyphens | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `normal | [ <number> <integer>? ]` + * + * **Initial value**: `normal` + */ + "-webkit-initial-letter"?: Property.InitialLetter | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]` + * + * **Initial value**: `normal` + */ + "-webkit-justify-content"?: Property.JustifyContent | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + */ + "-webkit-line-break"?: Property.LineBreak | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <integer>` + * + * **Initial value**: `none` + */ + "-webkit-line-clamp"?: Property.WebkitLineClamp | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + */ + "-webkit-logical-height"?: Property.BlockSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'width'>` + * + * **Initial value**: `auto` + */ + "-webkit-logical-width"?: Property.InlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + "-webkit-margin-end"?: Property.MarginInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'margin-top'>` + * + * **Initial value**: `0` + */ + "-webkit-margin-start"?: Property.MarginInlineStart<TLength> | undefined; + /** + * **Syntax**: `<attachment>#` + * + * **Initial value**: `scroll` + */ + "-webkit-mask-attachment"?: Property.WebkitMaskAttachment | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length> | <number> ]{1,4}` + * + * **Initial value**: `0` + */ + "-webkit-mask-box-image-outset"?: Property.MaskBorderOutset<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ stretch | repeat | round | space ]{1,2}` + * + * **Initial value**: `stretch` + */ + "-webkit-mask-box-image-repeat"?: Property.MaskBorderRepeat | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<number-percentage>{1,4} fill?` + * + * **Initial value**: `0` + */ + "-webkit-mask-box-image-slice"?: Property.MaskBorderSlice | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <image>` + * + * **Initial value**: `none` + */ + "-webkit-mask-box-image-source"?: Property.MaskBorderSource | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `[ <length-percentage> | <number> | auto ]{1,4}` + * + * **Initial value**: `auto` + */ + "-webkit-mask-box-image-width"?: Property.MaskBorderWidth<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <coord-box> | no-clip | border | padding | content | text ]#` + * + * **Initial value**: `border` + */ + "-webkit-mask-clip"?: Property.WebkitMaskClip | undefined; + /** + * The **`-webkit-mask-composite`** property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the `-webkit-mask-image` property. + * + * **Syntax**: `<composite-style>#` + * + * **Initial value**: `source-over` + */ + "-webkit-mask-composite"?: Property.WebkitMaskComposite | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<mask-reference>#` + * + * **Initial value**: `none` + */ + "-webkit-mask-image"?: Property.WebkitMaskImage | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <coord-box> | border | padding | content ]#` + * + * **Initial value**: `padding` + */ + "-webkit-mask-origin"?: Property.WebkitMaskOrigin | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<position>#` + * + * **Initial value**: `0% 0%` + */ + "-webkit-mask-position"?: Property.WebkitMaskPosition<TLength> | undefined; + /** + * The `-webkit-mask-position-x` CSS property sets the initial horizontal position of a mask image. + * + * **Syntax**: `[ <length-percentage> | left | center | right ]#` + * + * **Initial value**: `0%` + */ + "-webkit-mask-position-x"?: Property.WebkitMaskPositionX<TLength> | undefined; + /** + * The `-webkit-mask-position-y` CSS property sets the initial vertical position of a mask image. + * + * **Syntax**: `[ <length-percentage> | top | center | bottom ]#` + * + * **Initial value**: `0%` + */ + "-webkit-mask-position-y"?: Property.WebkitMaskPositionY<TLength> | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<repeat-style>#` + * + * **Initial value**: `repeat` + */ + "-webkit-mask-repeat"?: Property.WebkitMaskRepeat | undefined; + /** + * The `-webkit-mask-repeat-x` property specifies whether and how a mask image is repeated (tiled) horizontally. + * + * **Syntax**: `repeat | no-repeat | space | round` + * + * **Initial value**: `repeat` + */ + "-webkit-mask-repeat-x"?: Property.WebkitMaskRepeatX | undefined; + /** + * The `-webkit-mask-repeat-y` property sets whether and how a mask image is repeated (tiled) vertically. + * + * **Syntax**: `repeat | no-repeat | space | round` + * + * **Initial value**: `repeat` + */ + "-webkit-mask-repeat-y"?: Property.WebkitMaskRepeatY | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + */ + "-webkit-mask-size"?: Property.WebkitMaskSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'max-width'>` + * + * **Initial value**: `none` + */ + "-webkit-max-inline-size"?: Property.MaxInlineSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `0` + */ + "-webkit-order"?: Property.Order | undefined; + /** + * **Syntax**: `auto | touch` + * + * **Initial value**: `auto` + */ + "-webkit-overflow-scrolling"?: Property.WebkitOverflowScrolling | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + "-webkit-padding-end"?: Property.PaddingInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<'padding-top'>` + * + * **Initial value**: `0` + */ + "-webkit-padding-start"?: Property.PaddingInlineStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <length>` + * + * **Initial value**: `none` + */ + "-webkit-perspective"?: Property.Perspective<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + */ + "-webkit-perspective-origin"?: Property.PerspectiveOrigin<TLength> | undefined; + /** + * Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `economy | exact` + * + * **Initial value**: `economy` + */ + "-webkit-print-color-adjust"?: Property.PrintColorAdjust | undefined; + /** + * Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ alternate || [ over | under ] ] | inter-character` + * + * **Initial value**: `alternate` + */ + "-webkit-ruby-position"?: Property.RubyPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2022. + * + * **Syntax**: `none | [ x | y | block | inline | both ] [ mandatory | proximity ]?` + * + * **Initial value**: `none` + */ + "-webkit-scroll-snap-type"?: Property.ScrollSnapType | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + */ + "-webkit-shape-margin"?: Property.ShapeMargin<TLength> | undefined; + /** + * **`-webkit-tap-highlight-color`** is a non-standard CSS property that sets the color of the highlight that appears over a link while it's being tapped. The highlighting indicates to the user that their tap is being successfully recognized, and indicates which element they're tapping on. + * + * **Syntax**: `<color>` + * + * **Initial value**: `black` + */ + "-webkit-tap-highlight-color"?: Property.WebkitTapHighlightColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | all | [ digits <integer>? ]` + * + * **Initial value**: `none` + */ + "-webkit-text-combine"?: Property.TextCombineUpright | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-webkit-text-decoration-color"?: Property.TextDecorationColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error` + * + * **Initial value**: `none` + */ + "-webkit-text-decoration-line"?: Property.TextDecorationLine | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]` + * + * **Initial value**: `objects` + */ + "-webkit-text-decoration-skip"?: Property.TextDecorationSkip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `solid | double | dotted | dashed | wavy` + * + * **Initial value**: `solid` + */ + "-webkit-text-decoration-style"?: Property.TextDecorationStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-webkit-text-emphasis-color"?: Property.TextEmphasisColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `auto | [ over | under ] && [ right | left ]?` + * + * **Initial value**: `auto` + */ + "-webkit-text-emphasis-position"?: Property.TextEmphasisPosition | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>` + * + * **Initial value**: `none` + */ + "-webkit-text-emphasis-style"?: Property.TextEmphasisStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-webkit-text-fill-color"?: Property.WebkitTextFillColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020. + * + * **Syntax**: `mixed | upright | sideways` + * + * **Initial value**: `mixed` + */ + "-webkit-text-orientation"?: Property.TextOrientation | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | auto | <percentage>` + * + * **Initial value**: `auto` for smartphone browsers supporting inflation, `none` in other cases (and then not modifiable). + */ + "-webkit-text-size-adjust"?: Property.TextSizeAdjust | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + */ + "-webkit-text-stroke-color"?: Property.WebkitTextStrokeColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length>` + * + * **Initial value**: `0` + */ + "-webkit-text-stroke-width"?: Property.WebkitTextStrokeWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | from-font | [ under || [ left | right ] ]` + * + * **Initial value**: `auto` + */ + "-webkit-text-underline-position"?: Property.TextUnderlinePosition | undefined; + /** + * The `-webkit-touch-callout` CSS property controls the display of the default callout shown when you touch and hold a touch target. + * + * **Syntax**: `default | none` + * + * **Initial value**: `default` + */ + "-webkit-touch-callout"?: Property.WebkitTouchCallout | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + */ + "-webkit-transform"?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + */ + "-webkit-transform-origin"?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `flat | preserve-3d` + * + * **Initial value**: `flat` + */ + "-webkit-transform-style"?: Property.TransformStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + "-webkit-transition-delay"?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + */ + "-webkit-transition-duration"?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + */ + "-webkit-transition-property"?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + */ + "-webkit-transition-timing-function"?: Property.TransitionTimingFunction | undefined; + /** + * **Syntax**: `read-only | read-write | read-write-plaintext-only` + * + * **Initial value**: `read-only` + */ + "-webkit-user-modify"?: Property.WebkitUserModify | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + */ + "-webkit-user-select"?: Property.WebkitUserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr` + * + * **Initial value**: `horizontal-tb` + */ + "-webkit-writing-mode"?: Property.WritingMode | undefined; +} + +export interface VendorShorthandPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + */ + "-moz-animation"?: Property.Animation<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + */ + "-moz-border-image"?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>` + */ + "-moz-column-rule"?: Property.ColumnRule<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-width'> || <'column-count'>` + */ + "-moz-columns"?: Property.Columns<TLength> | undefined; + /** **Syntax**: `<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?` */ + "-moz-outline-radius"?: Property.MozOutlineRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + */ + "-moz-transition"?: Property.Transition<TTime> | undefined; + /** **Syntax**: `<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>` */ + "-ms-content-zoom-limit"?: Property.MsContentZoomLimit | undefined; + /** **Syntax**: `<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>` */ + "-ms-content-zoom-snap"?: Property.MsContentZoomSnap | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]` + */ + "-ms-flex"?: Property.Flex<TLength> | undefined; + /** **Syntax**: `<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>` */ + "-ms-scroll-limit"?: Property.MsScrollLimit | undefined; + /** **Syntax**: `<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>` */ + "-ms-scroll-snap-x"?: Property.MsScrollSnapX | undefined; + /** **Syntax**: `<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>` */ + "-ms-scroll-snap-y"?: Property.MsScrollSnapY | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + */ + "-ms-transition"?: Property.Transition<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + */ + "-webkit-animation"?: Property.Animation<TTime> | undefined; + /** + * The **`-webkit-border-before`** CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet. + * + * **Syntax**: `<'border-width'> || <'border-style'> || <color>` + */ + "-webkit-border-before"?: Property.WebkitBorderBefore<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + */ + "-webkit-border-image"?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?` + */ + "-webkit-border-radius"?: Property.BorderRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>` + */ + "-webkit-column-rule"?: Property.ColumnRule<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<'column-width'> || <'column-count'>` + */ + "-webkit-columns"?: Property.Columns<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]` + */ + "-webkit-flex"?: Property.Flex<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<'flex-direction'> || <'flex-wrap'>` + */ + "-webkit-flex-flow"?: Property.FlexFlow | undefined; + /** + * Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers. + * + * **Syntax**: `[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <visual-box> | border | padding | content | text ] || [ <visual-box> | border | padding | content ] ]#` + */ + "-webkit-mask"?: Property.WebkitMask<TLength> | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>` + */ + "-webkit-mask-box-image"?: Property.MaskBorder | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022. + * + * **Syntax**: `<'text-emphasis-style'> || <'text-emphasis-color'>` + */ + "-webkit-text-emphasis"?: Property.TextEmphasis | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. + * + * **Syntax**: `<length> || <color>` + */ + "-webkit-text-stroke"?: Property.WebkitTextStroke<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + */ + "-webkit-transition"?: Property.Transition<TTime> | undefined; +} + +export interface VendorPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> + extends VendorLonghandPropertiesHyphen<TLength, TTime>, + VendorShorthandPropertiesHyphen<TLength, TTime> {} + +export interface ObsoletePropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + "box-align"?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + "box-direction"?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + "box-flex"?: Property.BoxFlex | undefined; + /** + * The **`box-flex-group`** CSS property assigns the flexbox's child elements to a flex group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "box-flex-group"?: Property.BoxFlexGroup | undefined; + /** + * The **`box-lines`** CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). + * + * **Syntax**: `single | multiple` + * + * **Initial value**: `single` + * + * @deprecated + */ + "box-lines"?: Property.BoxLines | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "box-ordinal-group"?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + "box-orient"?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + "box-pack"?: Property.BoxPack | undefined; + /** + * The **`clip`** CSS property defines a visible portion of an element. The `clip` property applies only to absolutely positioned elements — that is, elements with `position:absolute` or `position:fixed`. + * + * **Syntax**: `<shape> | auto` + * + * **Initial value**: `auto` + * + * @deprecated + */ + clip?: Property.Clip | undefined; + /** + * The **`font-stretch`** CSS property selects a normal, condensed, or expanded face from a font. + * + * **Syntax**: `<font-stretch-absolute>` + * + * **Initial value**: `normal` + * + * @deprecated + */ + "font-stretch"?: Property.FontStretch | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * @deprecated + */ + "grid-column-gap"?: Property.GridColumnGap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<'grid-row-gap'> <'grid-column-gap'>?` + * + * @deprecated + */ + "grid-gap"?: Property.GridGap<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. + * + * **Syntax**: `<length-percentage>` + * + * **Initial value**: `0` + * + * @deprecated + */ + "grid-row-gap"?: Property.GridRowGap<TLength> | undefined; + /** + * **Syntax**: `auto | normal | active | inactive | disabled` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "ime-mode"?: Property.ImeMode | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | <position-area>` + * + * **Initial value**: `none` + * + * @deprecated + */ + "inset-area"?: Property.PositionArea | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * @deprecated + */ + "offset-block"?: Property.InsetBlock<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "offset-block-end"?: Property.InsetBlockEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "offset-block-start"?: Property.InsetBlockStart<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>{1,2}` + * + * @deprecated + */ + "offset-inline"?: Property.InsetInline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "offset-inline-end"?: Property.InsetInlineEnd<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021. + * + * **Syntax**: `<'top'>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "offset-inline-start"?: Property.InsetInlineStart<TLength> | undefined; + /** + * The **`page-break-after`** CSS property adjusts page breaks _after_ the current element. + * + * **Syntax**: `auto | always | avoid | left | right | recto | verso` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "page-break-after"?: Property.PageBreakAfter | undefined; + /** + * The **`page-break-before`** CSS property adjusts page breaks _before_ the current element. + * + * **Syntax**: `auto | always | avoid | left | right | recto | verso` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "page-break-before"?: Property.PageBreakBefore | undefined; + /** + * The **`page-break-inside`** CSS property adjusts page breaks _inside_ the current element. + * + * **Syntax**: `auto | avoid` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "page-break-inside"?: Property.PageBreakInside | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `none | [ [<dashed-ident> || <try-tactic>] | <'position-area'> ]#` + * + * **Initial value**: `none` + * + * @deprecated + */ + "position-try-options"?: Property.PositionTryFallbacks | undefined; + /** + * **Syntax**: `none | <position>#` + * + * **Initial value**: `none` + * + * @deprecated + */ + "scroll-snap-coordinate"?: Property.ScrollSnapCoordinate<TLength> | undefined; + /** + * **Syntax**: `<position>` + * + * **Initial value**: `0px 0px` + * + * @deprecated + */ + "scroll-snap-destination"?: Property.ScrollSnapDestination<TLength> | undefined; + /** + * **Syntax**: `none | repeat( <length-percentage> )` + * + * **Initial value**: `none` + * + * @deprecated + */ + "scroll-snap-points-x"?: Property.ScrollSnapPointsX | undefined; + /** + * **Syntax**: `none | repeat( <length-percentage> )` + * + * **Initial value**: `none` + * + * @deprecated + */ + "scroll-snap-points-y"?: Property.ScrollSnapPointsY | undefined; + /** + * **Syntax**: `none | mandatory | proximity` + * + * **Initial value**: `none` + * + * @deprecated + */ + "scroll-snap-type-x"?: Property.ScrollSnapTypeX | undefined; + /** + * **Syntax**: `none | mandatory | proximity` + * + * **Initial value**: `none` + * + * @deprecated + */ + "scroll-snap-type-y"?: Property.ScrollSnapTypeY | undefined; + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + "-khtml-box-align"?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + "-khtml-box-direction"?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-khtml-box-flex"?: Property.BoxFlex | undefined; + /** + * The **`box-flex-group`** CSS property assigns the flexbox's child elements to a flex group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-khtml-box-flex-group"?: Property.BoxFlexGroup | undefined; + /** + * The **`box-lines`** CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). + * + * **Syntax**: `single | multiple` + * + * **Initial value**: `single` + * + * @deprecated + */ + "-khtml-box-lines"?: Property.BoxLines | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-khtml-box-ordinal-group"?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + "-khtml-box-orient"?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + "-khtml-box-pack"?: Property.BoxPack | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020. + * + * **Syntax**: `auto | loose | normal | strict | anywhere` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-khtml-line-break"?: Property.LineBreak | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-khtml-opacity"?: Property.Opacity | undefined; + /** + * This feature is not Baseline because it does not work in some of the most widely-used browsers. + * + * **Syntax**: `auto | text | none | all` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-khtml-user-select"?: Property.UserSelect | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-clip>#` + * + * **Initial value**: `border-box` + * + * @deprecated + */ + "-moz-background-clip"?: Property.BackgroundClip | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<visual-box>#` + * + * **Initial value**: `padding-box` + * + * @deprecated + */ + "-moz-background-origin"?: Property.BackgroundOrigin | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + * + * @deprecated + */ + "-moz-background-size"?: Property.BackgroundSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?` + * + * @deprecated + */ + "-moz-border-radius"?: Property.BorderRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-moz-border-radius-bottomleft"?: Property.BorderBottomLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-moz-border-radius-bottomright"?: Property.BorderBottomRightRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-moz-border-radius-topleft"?: Property.BorderTopLeftRadius<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<length-percentage [0,∞]>{1,2}` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-moz-border-radius-topright"?: Property.BorderTopRightRadius<TLength> | undefined; + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + "-moz-box-align"?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + "-moz-box-direction"?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-moz-box-flex"?: Property.BoxFlex | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-moz-box-ordinal-group"?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + "-moz-box-orient"?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + "-moz-box-pack"?: Property.BoxPack | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `none | <shadow>#` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-moz-box-shadow"?: Property.BoxShadow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `<integer> | auto` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-moz-column-count"?: Property.ColumnCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017. + * + * **Syntax**: `auto | balance` + * + * **Initial value**: `balance` + * + * @deprecated + */ + "-moz-column-fill"?: Property.ColumnFill | undefined; + /** + * The non-standard **`-moz-float-edge`** CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness. + * + * **Syntax**: `border-box | content-box | margin-box | padding-box` + * + * **Initial value**: `content-box` + * + * @deprecated + */ + "-moz-float-edge"?: Property.MozFloatEdge | undefined; + /** + * The **`-moz-force-broken-image-icon`** extended CSS property can be used to force the broken image icon to be shown even when a broken image has an `alt` attribute. + * + * **Syntax**: `0 | 1` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-moz-force-broken-image-icon"?: Property.MozForceBrokenImageIcon | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<opacity-value>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-moz-opacity"?: Property.Opacity | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023. + * + * **Syntax**: `<'outline-width'> || <'outline-style'> || <'outline-color'>` + * + * @deprecated + */ + "-moz-outline"?: Property.Outline<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <color>` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-moz-outline-color"?: Property.OutlineColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `auto | <outline-line-style>` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-moz-outline-style"?: Property.OutlineStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<line-width>` + * + * **Initial value**: `medium` + * + * @deprecated + */ + "-moz-outline-width"?: Property.OutlineWidth<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022. + * + * **Syntax**: `auto | start | end | left | right | center | justify` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-moz-text-align-last"?: Property.TextAlignLast | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<color>` + * + * **Initial value**: `currentcolor` + * + * @deprecated + */ + "-moz-text-decoration-color"?: Property.TextDecorationColor | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-moz-text-decoration-line"?: Property.TextDecorationLine | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `solid | double | dotted | dashed | wavy` + * + * **Initial value**: `solid` + * + * @deprecated + */ + "-moz-text-decoration-style"?: Property.TextDecorationStyle | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + "-moz-transition-delay"?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + "-moz-transition-duration"?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + * + * @deprecated + */ + "-moz-transition-property"?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * @deprecated + */ + "-moz-transition-timing-function"?: Property.TransitionTimingFunction | undefined; + /** + * The **`-moz-user-focus`** CSS property is used to indicate whether an element can have the focus. + * + * **Syntax**: `ignore | normal | select-after | select-before | select-menu | select-same | select-all | none` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-moz-user-focus"?: Property.MozUserFocus | undefined; + /** + * In Mozilla applications, **`-moz-user-input`** determines if an element will accept user input. + * + * **Syntax**: `auto | none | enabled | disabled` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-moz-user-input"?: Property.MozUserInput | undefined; + /** + * **Syntax**: `auto | normal | active | inactive | disabled` + * + * **Initial value**: `auto` + * + * @deprecated + */ + "-ms-ime-mode"?: Property.ImeMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation>#` + * + * @deprecated + */ + "-o-animation"?: Property.Animation<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + "-o-animation-delay"?: Property.AnimationDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-direction>#` + * + * **Initial value**: `normal` + * + * @deprecated + */ + "-o-animation-direction"?: Property.AnimationDirection | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ auto | <time [0s,∞]> ]#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + "-o-animation-duration"?: Property.AnimationDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-fill-mode>#` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-o-animation-fill-mode"?: Property.AnimationFillMode | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-iteration-count>#` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-o-animation-iteration-count"?: Property.AnimationIterationCount | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ none | <keyframes-name> ]#` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-o-animation-name"?: Property.AnimationName | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-animation-play-state>#` + * + * **Initial value**: `running` + * + * @deprecated + */ + "-o-animation-play-state"?: Property.AnimationPlayState | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * @deprecated + */ + "-o-animation-timing-function"?: Property.AnimationTimingFunction | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<bg-size>#` + * + * **Initial value**: `auto auto` + * + * @deprecated + */ + "-o-background-size"?: Property.BackgroundSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>` + * + * @deprecated + */ + "-o-border-image"?: Property.BorderImage | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `fill | contain | cover | none | scale-down` + * + * **Initial value**: `fill` + * + * @deprecated + */ + "-o-object-fit"?: Property.ObjectFit | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020. + * + * **Syntax**: `<position>` + * + * **Initial value**: `50% 50%` + * + * @deprecated + */ + "-o-object-position"?: Property.ObjectPosition<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2021. + * + * **Syntax**: `<integer> | <length>` + * + * **Initial value**: `8` + * + * @deprecated + */ + "-o-tab-size"?: Property.TabSize<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. + * + * **Syntax**: `[ clip | ellipsis | <string> ]{1,2}` + * + * **Initial value**: `clip` + * + * @deprecated + */ + "-o-text-overflow"?: Property.TextOverflow | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <transform-list>` + * + * **Initial value**: `none` + * + * @deprecated + */ + "-o-transform"?: Property.Transform | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?` + * + * **Initial value**: `50% 50% 0` + * + * @deprecated + */ + "-o-transform-origin"?: Property.TransformOrigin<TLength> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<single-transition>#` + * + * @deprecated + */ + "-o-transition"?: Property.Transition<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + "-o-transition-delay"?: Property.TransitionDelay<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<time>#` + * + * **Initial value**: `0s` + * + * @deprecated + */ + "-o-transition-duration"?: Property.TransitionDuration<TTime> | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `none | <single-transition-property>#` + * + * **Initial value**: all + * + * @deprecated + */ + "-o-transition-property"?: Property.TransitionProperty | undefined; + /** + * This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. + * + * **Syntax**: `<easing-function>#` + * + * **Initial value**: `ease` + * + * @deprecated + */ + "-o-transition-timing-function"?: Property.TransitionTimingFunction | undefined; + /** + * The **`box-align`** CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | baseline | stretch` + * + * **Initial value**: `stretch` + * + * @deprecated + */ + "-webkit-box-align"?: Property.BoxAlign | undefined; + /** + * The **`box-direction`** CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge). + * + * **Syntax**: `normal | reverse | inherit` + * + * **Initial value**: `normal` + * + * @deprecated + */ + "-webkit-box-direction"?: Property.BoxDirection | undefined; + /** + * The **`-moz-box-flex`** and **`-webkit-box-flex`** CSS properties specify how a `-moz-box` or `-webkit-box` grows to fill the box that contains it, in the direction of the containing box's layout. + * + * **Syntax**: `<number>` + * + * **Initial value**: `0` + * + * @deprecated + */ + "-webkit-box-flex"?: Property.BoxFlex | undefined; + /** + * The **`box-flex-group`** CSS property assigns the flexbox's child elements to a flex group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-webkit-box-flex-group"?: Property.BoxFlexGroup | undefined; + /** + * The **`box-lines`** CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes). + * + * **Syntax**: `single | multiple` + * + * **Initial value**: `single` + * + * @deprecated + */ + "-webkit-box-lines"?: Property.BoxLines | undefined; + /** + * The **`box-ordinal-group`** CSS property assigns the flexbox's child elements to an ordinal group. + * + * **Syntax**: `<integer>` + * + * **Initial value**: `1` + * + * @deprecated + */ + "-webkit-box-ordinal-group"?: Property.BoxOrdinalGroup | undefined; + /** + * The **`box-orient`** CSS property sets whether an element lays out its contents horizontally or vertically. + * + * **Syntax**: `horizontal | vertical | inline-axis | block-axis | inherit` + * + * **Initial value**: `inline-axis` + * + * @deprecated + */ + "-webkit-box-orient"?: Property.BoxOrient | undefined; + /** + * The **`-moz-box-pack`** and **`-webkit-box-pack`** CSS properties specify how a `-moz-box` or `-webkit-box` packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box. + * + * **Syntax**: `start | center | end | justify` + * + * **Initial value**: `start` + * + * @deprecated + */ + "-webkit-box-pack"?: Property.BoxPack | undefined; +} + +export interface SvgPropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + "alignment-baseline"?: Property.AlignmentBaseline | undefined; + "baseline-shift"?: Property.BaselineShift<TLength> | undefined; + clip?: Property.Clip | undefined; + "clip-path"?: Property.ClipPath | undefined; + "clip-rule"?: Property.ClipRule | undefined; + color?: Property.Color | undefined; + "color-interpolation"?: Property.ColorInterpolation | undefined; + "color-rendering"?: Property.ColorRendering | undefined; + cursor?: Property.Cursor | undefined; + direction?: Property.Direction | undefined; + display?: Property.Display | undefined; + "dominant-baseline"?: Property.DominantBaseline | undefined; + fill?: Property.Fill | undefined; + "fill-opacity"?: Property.FillOpacity | undefined; + "fill-rule"?: Property.FillRule | undefined; + filter?: Property.Filter | undefined; + "flood-color"?: Property.FloodColor | undefined; + "flood-opacity"?: Property.FloodOpacity | undefined; + font?: Property.Font | undefined; + "font-family"?: Property.FontFamily | undefined; + "font-size"?: Property.FontSize<TLength> | undefined; + "font-size-adjust"?: Property.FontSizeAdjust | undefined; + "font-stretch"?: Property.FontStretch | undefined; + "font-style"?: Property.FontStyle | undefined; + "font-variant"?: Property.FontVariant | undefined; + "font-weight"?: Property.FontWeight | undefined; + "glyph-orientation-vertical"?: Property.GlyphOrientationVertical | undefined; + "image-rendering"?: Property.ImageRendering | undefined; + "letter-spacing"?: Property.LetterSpacing<TLength> | undefined; + "lighting-color"?: Property.LightingColor | undefined; + "line-height"?: Property.LineHeight<TLength> | undefined; + marker?: Property.Marker | undefined; + "marker-end"?: Property.MarkerEnd | undefined; + "marker-mid"?: Property.MarkerMid | undefined; + "marker-start"?: Property.MarkerStart | undefined; + mask?: Property.Mask<TLength> | undefined; + opacity?: Property.Opacity | undefined; + overflow?: Property.Overflow | undefined; + "paint-order"?: Property.PaintOrder | undefined; + "pointer-events"?: Property.PointerEvents | undefined; + "shape-rendering"?: Property.ShapeRendering | undefined; + "stop-color"?: Property.StopColor | undefined; + "stop-opacity"?: Property.StopOpacity | undefined; + stroke?: Property.Stroke | undefined; + "stroke-dasharray"?: Property.StrokeDasharray<TLength> | undefined; + "stroke-dashoffset"?: Property.StrokeDashoffset<TLength> | undefined; + "stroke-linecap"?: Property.StrokeLinecap | undefined; + "stroke-linejoin"?: Property.StrokeLinejoin | undefined; + "stroke-miterlimit"?: Property.StrokeMiterlimit | undefined; + "stroke-opacity"?: Property.StrokeOpacity | undefined; + "stroke-width"?: Property.StrokeWidth<TLength> | undefined; + "text-anchor"?: Property.TextAnchor | undefined; + "text-decoration"?: Property.TextDecoration<TLength> | undefined; + "text-rendering"?: Property.TextRendering | undefined; + "unicode-bidi"?: Property.UnicodeBidi | undefined; + "vector-effect"?: Property.VectorEffect | undefined; + visibility?: Property.Visibility | undefined; + "white-space"?: Property.WhiteSpace | undefined; + "word-spacing"?: Property.WordSpacing<TLength> | undefined; + "writing-mode"?: Property.WritingMode | undefined; +} + +export interface PropertiesHyphen<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardPropertiesHyphen<TLength, TTime>, + VendorPropertiesHyphen<TLength, TTime>, + ObsoletePropertiesHyphen<TLength, TTime>, + SvgPropertiesHyphen<TLength, TTime> {} + +export type StandardLonghandPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<StandardLonghandProperties<TLength, TTime>>; + +export type StandardShorthandPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<StandardShorthandProperties<TLength, TTime>>; + +export interface StandardPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardLonghandPropertiesFallback<TLength, TTime>, + StandardShorthandPropertiesFallback<TLength, TTime> {} + +export type VendorLonghandPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<VendorLonghandProperties<TLength, TTime>>; + +export type VendorShorthandPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<VendorShorthandProperties<TLength, TTime>>; + +export interface VendorPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> + extends VendorLonghandPropertiesFallback<TLength, TTime>, + VendorShorthandPropertiesFallback<TLength, TTime> {} + +export type ObsoletePropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<ObsoleteProperties<TLength, TTime>>; + +export type SvgPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<SvgProperties<TLength, TTime>>; + +export interface PropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardPropertiesFallback<TLength, TTime>, + VendorPropertiesFallback<TLength, TTime>, + ObsoletePropertiesFallback<TLength, TTime>, + SvgPropertiesFallback<TLength, TTime> {} + +export type StandardLonghandPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<StandardLonghandPropertiesHyphen<TLength, TTime>>; + +export type StandardShorthandPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<StandardShorthandPropertiesHyphen<TLength, TTime>>; + +export interface StandardPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardLonghandPropertiesHyphenFallback<TLength, TTime>, + StandardShorthandPropertiesHyphenFallback<TLength, TTime> {} + +export type VendorLonghandPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<VendorLonghandPropertiesHyphen<TLength, TTime>>; + +export type VendorShorthandPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<VendorShorthandPropertiesHyphen<TLength, TTime>>; + +export interface VendorPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> + extends VendorLonghandPropertiesHyphenFallback<TLength, TTime>, + VendorShorthandPropertiesHyphenFallback<TLength, TTime> {} + +export type ObsoletePropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<ObsoletePropertiesHyphen<TLength, TTime>>; + +export type SvgPropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<SvgPropertiesHyphen<TLength, TTime>>; + +export interface PropertiesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> + extends StandardPropertiesHyphenFallback<TLength, TTime>, + VendorPropertiesHyphenFallback<TLength, TTime>, + ObsoletePropertiesHyphenFallback<TLength, TTime>, + SvgPropertiesHyphenFallback<TLength, TTime> {} + +export type AtRules = + | "@charset" + | "@container" + | "@counter-style" + | "@document" + | "@font-face" + | "@font-feature-values" + | "@font-palette-values" + | "@import" + | "@keyframes" + | "@layer" + | "@media" + | "@namespace" + | "@page" + | "@position-try" + | "@property" + | "@scope" + | "@starting-style" + | "@supports" + | "@view-transition"; + +export type AdvancedPseudos = + | ":-moz-any()" + | ":-moz-dir" + | ":-webkit-any()" + | "::cue" + | "::cue-region" + | "::highlight" + | "::part" + | "::picker" + | "::slotted" + | "::view-transition-group" + | "::view-transition-image-pair" + | "::view-transition-new" + | "::view-transition-old" + | ":active-view-transition-type" + | ":dir" + | ":has" + | ":host" + | ":host-context" + | ":is" + | ":lang" + | ":matches()" + | ":not" + | ":nth-child" + | ":nth-last-child" + | ":nth-last-of-type" + | ":nth-of-type" + | ":state" + | ":where"; + +export type SimplePseudos = + | ":-khtml-any-link" + | ":-moz-any-link" + | ":-moz-focusring" + | ":-moz-full-screen" + | ":-moz-placeholder" + | ":-moz-read-only" + | ":-moz-read-write" + | ":-moz-ui-invalid" + | ":-moz-ui-valid" + | ":-ms-fullscreen" + | ":-ms-input-placeholder" + | ":-webkit-any-link" + | ":-webkit-autofill" + | ":-webkit-full-screen" + | "::-moz-placeholder" + | "::-moz-progress-bar" + | "::-moz-range-progress" + | "::-moz-range-thumb" + | "::-moz-range-track" + | "::-moz-selection" + | "::-ms-backdrop" + | "::-ms-browse" + | "::-ms-check" + | "::-ms-clear" + | "::-ms-expand" + | "::-ms-fill" + | "::-ms-fill-lower" + | "::-ms-fill-upper" + | "::-ms-input-placeholder" + | "::-ms-reveal" + | "::-ms-thumb" + | "::-ms-ticks-after" + | "::-ms-ticks-before" + | "::-ms-tooltip" + | "::-ms-track" + | "::-ms-value" + | "::-webkit-backdrop" + | "::-webkit-file-upload-button" + | "::-webkit-input-placeholder" + | "::-webkit-progress-bar" + | "::-webkit-progress-inner-value" + | "::-webkit-progress-value" + | "::-webkit-slider-runnable-track" + | "::-webkit-slider-thumb" + | "::after" + | "::backdrop" + | "::before" + | "::checkmark" + | "::cue" + | "::cue-region" + | "::details-content" + | "::file-selector-button" + | "::first-letter" + | "::first-line" + | "::grammar-error" + | "::marker" + | "::picker-icon" + | "::placeholder" + | "::scroll-marker" + | "::scroll-marker-group" + | "::selection" + | "::spelling-error" + | "::target-text" + | "::view-transition" + | ":active" + | ":active-view-transition" + | ":after" + | ":any-link" + | ":autofill" + | ":before" + | ":blank" + | ":buffering" + | ":checked" + | ":current" + | ":default" + | ":defined" + | ":disabled" + | ":empty" + | ":enabled" + | ":first" + | ":first-child" + | ":first-letter" + | ":first-line" + | ":first-of-type" + | ":focus" + | ":focus-visible" + | ":focus-within" + | ":fullscreen" + | ":future" + | ":has-slotted" + | ":host" + | ":hover" + | ":in-range" + | ":indeterminate" + | ":invalid" + | ":last-child" + | ":last-of-type" + | ":left" + | ":link" + | ":local-link" + | ":modal" + | ":muted" + | ":only-child" + | ":only-of-type" + | ":open" + | ":optional" + | ":out-of-range" + | ":past" + | ":paused" + | ":picture-in-picture" + | ":placeholder-shown" + | ":playing" + | ":popover-open" + | ":read-only" + | ":read-write" + | ":required" + | ":right" + | ":root" + | ":scope" + | ":seeking" + | ":stalled" + | ":target" + | ":target-current" + | ":target-within" + | ":user-invalid" + | ":user-valid" + | ":valid" + | ":visited" + | ":volume-locked" + | ":xr-overlay"; + +export type Pseudos = AdvancedPseudos | SimplePseudos; + +export type HtmlAttributes = + | "[abbr]" + | "[accept-charset]" + | "[accept]" + | "[accesskey]" + | "[action]" + | "[align]" + | "[alink]" + | "[allow]" + | "[allowfullscreen]" + | "[allowpaymentrequest]" + | "[alpha]" + | "[alt]" + | "[anchor]" + | "[archive]" + | "[as]" + | "[async]" + | "[attributionsourceid]" + | "[attributionsrc]" + | "[autobuffer]" + | "[autocapitalize]" + | "[autocomplete]" + | "[autocorrect]" + | "[autofocus]" + | "[autoplay]" + | "[axis]" + | "[background]" + | "[behavior]" + | "[bgcolor]" + | "[blocking]" + | "[border]" + | "[bottommargin]" + | "[browsingtopics]" + | "[capture]" + | "[cellpadding]" + | "[cellspacing]" + | "[char]" + | "[charoff]" + | "[charset]" + | "[checked]" + | "[cite]" + | "[class]" + | "[classid]" + | "[clear]" + | "[closedby]" + | "[codebase]" + | "[codetype]" + | "[color]" + | "[colorspace]" + | "[cols]" + | "[colspan]" + | "[command]" + | "[commandfor]" + | "[compact]" + | "[content]" + | "[contenteditable]" + | "[controls]" + | "[controlslist]" + | "[coords]" + | "[credentialless]" + | "[cross-origin-top-navigation-by-user-activation]" + | "[crossorigin]" + | "[csp]" + | "[data]" + | "[datetime]" + | "[declare]" + | "[decoding]" + | "[default]" + | "[defer]" + | "[dir]" + | "[direction]" + | "[dirname]" + | "[disabled]" + | "[disablepictureinpicture]" + | "[disableremoteplayback]" + | "[download]" + | "[draggable]" + | "[enctype]" + | "[enterkeyhint]" + | "[exportparts]" + | "[face]" + | "[fetchpriority]" + | "[for]" + | "[form]" + | "[formaction]" + | "[formenctype]" + | "[formmethod]" + | "[formnovalidate]" + | "[formtarget]" + | "[frame]" + | "[frameborder]" + | "[headers]" + | "[height]" + | "[hidden]" + | "[high]" + | "[href]" + | "[hreflang]" + | "[hreftranslate]" + | "[hspace]" + | "[http-equiv]" + | "[id]" + | "[imagesizes]" + | "[imagesrcset]" + | "[inert]" + | "[inputmode]" + | "[integrity]" + | "[is]" + | "[ismap]" + | "[kind]" + | "[label]" + | "[lang]" + | "[leftmargin]" + | "[link]" + | "[list]" + | "[loading]" + | "[longdesc]" + | "[loop]" + | "[low]" + | "[marginheight]" + | "[marginwidth]" + | "[max]" + | "[maxlength]" + | "[media]" + | "[method]" + | "[min]" + | "[minlength]" + | "[moz-opaque]" + | "[mozallowfullscreen]" + | "[msallowfullscreen]" + | "[multiple]" + | "[muted]" + | "[name]" + | "[nohref]" + | "[nomodule]" + | "[nonce]" + | "[noresize]" + | "[noshade]" + | "[novalidate]" + | "[open]" + | "[optimum]" + | "[part]" + | "[pattern]" + | "[ping]" + | "[placeholder]" + | "[playsinline]" + | "[popover]" + | "[popovertarget]" + | "[popovertargetaction]" + | "[poster]" + | "[preload]" + | "[privateToken]" + | "[readonly]" + | "[referrerpolicy]" + | "[rel]" + | "[required]" + | "[rev]" + | "[reversed]" + | "[rightmargin]" + | "[rows]" + | "[rowspan]" + | "[rules]" + | "[sandbox]" + | "[scheme]" + | "[scope]" + | "[scrollamount]" + | "[scrolldelay]" + | "[scrolling]" + | "[selected]" + | "[shadowroot]" + | "[shadowrootclonable]" + | "[shadowrootdelegatesfocus]" + | "[shadowrootmode]" + | "[shadowrootserializable]" + | "[shape]" + | "[size]" + | "[sizes]" + | "[slot]" + | "[span]" + | "[spellcheck]" + | "[src]" + | "[srcdoc]" + | "[srclang]" + | "[srcset]" + | "[standby]" + | "[start]" + | "[step]" + | "[style]" + | "[summary]" + | "[tabindex]" + | "[target]" + | "[text]" + | "[title]" + | "[topmargin]" + | "[translate]" + | "[truespeed]" + | "[type]" + | "[usemap]" + | "[valign]" + | "[value]" + | "[valuetype]" + | "[version]" + | "[virtualkeyboardpolicy]" + | "[vlink]" + | "[vspace]" + | "[webkit-playsinline]" + | "[webkitallowfullscreen]" + | "[webkitdirectory]" + | "[width]" + | "[wrap]" + | "[writingsuggestions]" + | "[xmlns]"; + +export type SvgAttributes = + | "[-khtml-opacity]" + | "[-moz-opacity]" + | "[-moz-transform]" + | "[-ms-text-overflow]" + | "[-ms-transform]" + | "[-ms-writing-mode]" + | "[-o-text-overflow]" + | "[-o-transform]" + | "[-webkit-mask]" + | "[-webkit-transform]" + | "[-webkit-writing-mode]" + | "[alignment-baseline]" + | "[async]" + | "[attributeName]" + | "[attributeType]" + | "[autofocus]" + | "[azimuth]" + | "[baseFrequency]" + | "[baseProfile]" + | "[baseline-shift]" + | "[bias]" + | "[by]" + | "[calcMode]" + | "[class]" + | "[clip-path]" + | "[clip-rule]" + | "[clipPathUnits]" + | "[clip]" + | "[color-interpolation-filters]" + | "[color-interpolation]" + | "[color]" + | "[crossorigin]" + | "[cursor]" + | "[cx]" + | "[cy]" + | "[d]" + | "[decoding]" + | "[defer]" + | "[diffuseConstant]" + | "[direction]" + | "[display]" + | "[divisor]" + | "[dominant-baseline]" + | "[download]" + | "[dur]" + | "[dx]" + | "[dy]" + | "[edgeMode]" + | "[elevation]" + | "[fetchpriority]" + | "[fill-opacity]" + | "[fill-rule]" + | "[fill]" + | "[filterUnits]" + | "[filter]" + | "[flood-color]" + | "[flood-opacity]" + | "[font-family]" + | "[font-size-adjust]" + | "[font-size]" + | "[font-stretch]" + | "[font-style]" + | "[font-variant]" + | "[font-weight]" + | "[font-width]" + | "[fr]" + | "[from]" + | "[fx]" + | "[fy]" + | "[glyph-orientation-horizontal]" + | "[glyph-orientation-vertical]" + | "[gradientTransform]" + | "[gradientUnits]" + | "[height]" + | "[href]" + | "[hreflang]" + | "[id]" + | "[image-rendering]" + | "[in2]" + | "[in]" + | "[k1]" + | "[k2]" + | "[k3]" + | "[k4]" + | "[kernelMatrix]" + | "[kernelUnitLength]" + | "[keyPoints]" + | "[lang]" + | "[lengthAdjust]" + | "[letter-spacing]" + | "[lighting-color]" + | "[limitingConeAngle]" + | "[marker-end]" + | "[marker-mid]" + | "[marker-start]" + | "[markerHeight]" + | "[markerUnits]" + | "[markerWidth]" + | "[maskContentUnits]" + | "[maskUnits]" + | "[mask]" + | "[media]" + | "[mode]" + | "[numOctaves]" + | "[offset]" + | "[opacity]" + | "[operator]" + | "[order]" + | "[orient]" + | "[origin]" + | "[overflow]" + | "[paint-order]" + | "[path]" + | "[patternContentUnits]" + | "[patternTransform]" + | "[patternUnits]" + | "[ping]" + | "[pointer-events]" + | "[pointsAtX]" + | "[pointsAtY]" + | "[pointsAtZ]" + | "[points]" + | "[preserveAlpha]" + | "[preserveAspectRatio]" + | "[primitiveUnits]" + | "[r]" + | "[radius]" + | "[refX]" + | "[refY]" + | "[referrerpolicy]" + | "[rel]" + | "[repeatCount]" + | "[requiredExtensions]" + | "[rotate]" + | "[rx]" + | "[ry]" + | "[scale]" + | "[seed]" + | "[shape-rendering]" + | "[side]" + | "[spacing]" + | "[specularConstant]" + | "[specularExponent]" + | "[spreadMethod]" + | "[startOffset]" + | "[stdDeviation]" + | "[stitchTiles]" + | "[stop-color]" + | "[stop-opacity]" + | "[stroke-dasharray]" + | "[stroke-dashoffset]" + | "[stroke-linecap]" + | "[stroke-linejoin]" + | "[stroke-miterlimit]" + | "[stroke-opacity]" + | "[stroke-width]" + | "[stroke]" + | "[style]" + | "[surfaceScale]" + | "[systemLanguage]" + | "[tabindex]" + | "[targetX]" + | "[targetY]" + | "[target]" + | "[text-anchor]" + | "[text-decoration]" + | "[text-overflow]" + | "[text-rendering]" + | "[textLength]" + | "[title]" + | "[to]" + | "[transform-origin]" + | "[transform]" + | "[type]" + | "[unicode-bidi]" + | "[values]" + | "[vector-effect]" + | "[version]" + | "[viewBox]" + | "[visibility]" + | "[white-space]" + | "[width]" + | "[word-spacing]" + | "[writing-mode]" + | "[x1]" + | "[x2]" + | "[xChannelSelector]" + | "[x]" + | "[y1]" + | "[y2]" + | "[yChannelSelector]" + | "[y]" + | "[z]" + | "[zoomAndPan]"; + +export type Globals = "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset"; + +export namespace Property { + export type AccentColor = Globals | DataType.Color | "auto"; + + export type AlignContent = Globals | DataType.ContentDistribution | DataType.ContentPosition | "baseline" | "normal" | (string & {}); + + export type AlignItems = Globals | DataType.SelfPosition | "anchor-center" | "baseline" | "normal" | "stretch" | (string & {}); + + export type AlignSelf = Globals | DataType.SelfPosition | "anchor-center" | "auto" | "baseline" | "normal" | "stretch" | (string & {}); + + export type AlignTracks = Globals | DataType.ContentDistribution | DataType.ContentPosition | "baseline" | "normal" | (string & {}); + + export type AlignmentBaseline = Globals | "alphabetic" | "baseline" | "central" | "ideographic" | "mathematical" | "middle" | "text-after-edge" | "text-before-edge"; + + export type All = Globals; + + export type AnchorName = Globals | "none" | (string & {}); + + export type AnchorScope = Globals | "all" | "none" | (string & {}); + + export type Animation<TTime = string & {}> = Globals | DataType.SingleAnimation<TTime> | (string & {}); + + export type AnimationComposition = Globals | DataType.SingleAnimationComposition | (string & {}); + + export type AnimationDelay<TTime = string & {}> = Globals | TTime | (string & {}); + + export type AnimationDirection = Globals | DataType.SingleAnimationDirection | (string & {}); + + export type AnimationDuration<TTime = string & {}> = Globals | TTime | "auto" | (string & {}); + + export type AnimationFillMode = Globals | DataType.SingleAnimationFillMode | (string & {}); + + export type AnimationIterationCount = Globals | "infinite" | (string & {}) | (number & {}); + + export type AnimationName = Globals | "none" | (string & {}); + + export type AnimationPlayState = Globals | "paused" | "running" | (string & {}); + + export type AnimationRange<TLength = (string & {}) | 0> = Globals | DataType.TimelineRangeName | TLength | "normal" | (string & {}); + + export type AnimationRangeEnd<TLength = (string & {}) | 0> = Globals | DataType.TimelineRangeName | TLength | "normal" | (string & {}); + + export type AnimationRangeStart<TLength = (string & {}) | 0> = Globals | DataType.TimelineRangeName | TLength | "normal" | (string & {}); + + export type AnimationTimeline = Globals | DataType.SingleAnimationTimeline | (string & {}); + + export type AnimationTimingFunction = Globals | DataType.EasingFunction | (string & {}); + + export type Appearance = Globals | DataType.CompatAuto | "auto" | "menulist-button" | "none" | "textfield"; + + export type AspectRatio = Globals | "auto" | (string & {}) | (number & {}); + + export type BackdropFilter = Globals | "none" | (string & {}); + + export type BackfaceVisibility = Globals | "hidden" | "visible"; + + export type Background<TLength = (string & {}) | 0> = Globals | DataType.BgLayer<TLength> | DataType.FinalBgLayer<TLength> | (string & {}); + + export type BackgroundAttachment = Globals | DataType.Attachment | (string & {}); + + export type BackgroundBlendMode = Globals | DataType.BlendMode | (string & {}); + + export type BackgroundClip = Globals | DataType.BgClip | (string & {}); + + export type BackgroundColor = Globals | DataType.Color; + + export type BackgroundImage = Globals | "none" | (string & {}); + + export type BackgroundOrigin = Globals | DataType.VisualBox | (string & {}); + + export type BackgroundPosition<TLength = (string & {}) | 0> = Globals | DataType.BgPosition<TLength> | (string & {}); + + export type BackgroundPositionX<TLength = (string & {}) | 0> = Globals | TLength | "center" | "left" | "right" | "x-end" | "x-start" | (string & {}); + + export type BackgroundPositionY<TLength = (string & {}) | 0> = Globals | TLength | "bottom" | "center" | "top" | "y-end" | "y-start" | (string & {}); + + export type BackgroundRepeat = Globals | DataType.RepeatStyle | (string & {}); + + export type BackgroundSize<TLength = (string & {}) | 0> = Globals | DataType.BgSize<TLength> | (string & {}); + + export type BaselineShift<TLength = (string & {}) | 0> = Globals | TLength | "baseline" | "sub" | "super" | (string & {}); + + export type BlockSize<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | (string & {}); + + export type Border<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderBlock<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderBlockColor = Globals | DataType.Color | (string & {}); + + export type BorderBlockEnd<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderBlockEndColor = Globals | DataType.Color; + + export type BorderBlockEndStyle = Globals | DataType.LineStyle; + + export type BorderBlockEndWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderBlockStart<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderBlockStartColor = Globals | DataType.Color; + + export type BorderBlockStartStyle = Globals | DataType.LineStyle; + + export type BorderBlockStartWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderBlockStyle = Globals | DataType.LineStyle | (string & {}); + + export type BorderBlockWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | (string & {}); + + export type BorderBottom<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderBottomColor = Globals | DataType.Color; + + export type BorderBottomLeftRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderBottomRightRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderBottomStyle = Globals | DataType.LineStyle; + + export type BorderBottomWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderCollapse = Globals | "collapse" | "separate"; + + export type BorderColor = Globals | DataType.Color | (string & {}); + + export type BorderEndEndRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderEndStartRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderImage = Globals | "none" | "repeat" | "round" | "space" | "stretch" | (string & {}) | (number & {}); + + export type BorderImageOutset<TLength = (string & {}) | 0> = Globals | TLength | (string & {}) | (number & {}); + + export type BorderImageRepeat = Globals | "repeat" | "round" | "space" | "stretch" | (string & {}); + + export type BorderImageSlice = Globals | (string & {}) | (number & {}); + + export type BorderImageSource = Globals | "none" | (string & {}); + + export type BorderImageWidth<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}) | (number & {}); + + export type BorderInline<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderInlineColor = Globals | DataType.Color | (string & {}); + + export type BorderInlineEnd<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderInlineEndColor = Globals | DataType.Color; + + export type BorderInlineEndStyle = Globals | DataType.LineStyle; + + export type BorderInlineEndWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderInlineStart<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderInlineStartColor = Globals | DataType.Color; + + export type BorderInlineStartStyle = Globals | DataType.LineStyle; + + export type BorderInlineStartWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderInlineStyle = Globals | DataType.LineStyle | (string & {}); + + export type BorderInlineWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | (string & {}); + + export type BorderLeft<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderLeftColor = Globals | DataType.Color; + + export type BorderLeftStyle = Globals | DataType.LineStyle; + + export type BorderLeftWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderRight<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderRightColor = Globals | DataType.Color; + + export type BorderRightStyle = Globals | DataType.LineStyle; + + export type BorderRightWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderSpacing<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderStartEndRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderStartStartRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderStyle = Globals | DataType.LineStyle | (string & {}); + + export type BorderTop<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type BorderTopColor = Globals | DataType.Color; + + export type BorderTopLeftRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderTopRightRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type BorderTopStyle = Globals | DataType.LineStyle; + + export type BorderTopWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type BorderWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | (string & {}); + + export type Bottom<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type BoxAlign = Globals | "baseline" | "center" | "end" | "start" | "stretch"; + + export type BoxDecorationBreak = Globals | "clone" | "slice"; + + export type BoxDirection = Globals | "inherit" | "normal" | "reverse"; + + export type BoxFlex = Globals | (number & {}) | (string & {}); + + export type BoxFlexGroup = Globals | (number & {}) | (string & {}); + + export type BoxLines = Globals | "multiple" | "single"; + + export type BoxOrdinalGroup = Globals | (number & {}) | (string & {}); + + export type BoxOrient = Globals | "block-axis" | "horizontal" | "inherit" | "inline-axis" | "vertical"; + + export type BoxPack = Globals | "center" | "end" | "justify" | "start"; + + export type BoxShadow = Globals | "none" | (string & {}); + + export type BoxSizing = Globals | "border-box" | "content-box"; + + export type BreakAfter = + | Globals + | "all" + | "always" + | "auto" + | "avoid" + | "avoid-column" + | "avoid-page" + | "avoid-region" + | "column" + | "left" + | "page" + | "recto" + | "region" + | "right" + | "verso"; + + export type BreakBefore = + | Globals + | "all" + | "always" + | "auto" + | "avoid" + | "avoid-column" + | "avoid-page" + | "avoid-region" + | "column" + | "left" + | "page" + | "recto" + | "region" + | "right" + | "verso"; + + export type BreakInside = Globals | "auto" | "avoid" | "avoid-column" | "avoid-page" | "avoid-region"; + + export type CaptionSide = Globals | "bottom" | "top"; + + export type Caret = Globals | DataType.Color | "auto" | "bar" | "block" | "underscore" | (string & {}); + + export type CaretColor = Globals | DataType.Color | "auto"; + + export type CaretShape = Globals | "auto" | "bar" | "block" | "underscore"; + + export type Clear = Globals | "both" | "inline-end" | "inline-start" | "left" | "none" | "right"; + + export type Clip = Globals | "auto" | (string & {}); + + export type ClipPath = Globals | DataType.GeometryBox | "none" | (string & {}); + + export type ClipRule = Globals | "evenodd" | "nonzero"; + + export type Color = Globals | DataType.Color; + + export type PrintColorAdjust = Globals | "economy" | "exact"; + + export type ColorInterpolationFilters = Globals | "auto" | "linearRGB" | "sRGB"; + + export type ColorScheme = Globals | "dark" | "light" | "normal" | (string & {}); + + export type ColumnCount = Globals | "auto" | (number & {}) | (string & {}); + + export type ColumnFill = Globals | "auto" | "balance"; + + export type ColumnGap<TLength = (string & {}) | 0> = Globals | TLength | "normal" | (string & {}); + + export type ColumnRule<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type ColumnRuleColor = Globals | DataType.Color; + + export type ColumnRuleStyle = Globals | DataType.LineStyle | (string & {}); + + export type ColumnRuleWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | (string & {}); + + export type ColumnSpan = Globals | "all" | "none"; + + export type ColumnWidth<TLength = (string & {}) | 0> = Globals | TLength | "auto"; + + export type Columns<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}) | (number & {}); + + export type Contain = Globals | "content" | "inline-size" | "layout" | "none" | "paint" | "size" | "strict" | "style" | (string & {}); + + export type ContainIntrinsicBlockSize<TLength = (string & {}) | 0> = Globals | TLength | "none" | (string & {}); + + export type ContainIntrinsicHeight<TLength = (string & {}) | 0> = Globals | TLength | "none" | (string & {}); + + export type ContainIntrinsicInlineSize<TLength = (string & {}) | 0> = Globals | TLength | "none" | (string & {}); + + export type ContainIntrinsicSize<TLength = (string & {}) | 0> = Globals | TLength | "none" | (string & {}); + + export type ContainIntrinsicWidth<TLength = (string & {}) | 0> = Globals | TLength | "none" | (string & {}); + + export type Container = Globals | "none" | (string & {}); + + export type ContainerName = Globals | "none" | (string & {}); + + export type ContainerType = Globals | "inline-size" | "normal" | "scroll-state" | "size" | (string & {}); + + export type Content = Globals | DataType.Quote | "none" | "normal" | (string & {}); + + export type ContentVisibility = Globals | "auto" | "hidden" | "visible"; + + export type CounterIncrement = Globals | "none" | (string & {}); + + export type CounterReset = Globals | "none" | (string & {}); + + export type CounterSet = Globals | "none" | (string & {}); + + export type Cursor = Globals | DataType.CursorPredefined | (string & {}); + + export type Cx<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type Cy<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type D = Globals | "none" | (string & {}); + + export type Direction = Globals | "ltr" | "rtl"; + + export type Display = + | Globals + | DataType.DisplayOutside + | DataType.DisplayInside + | DataType.DisplayInternal + | DataType.DisplayLegacy + | "contents" + | "list-item" + | "none" + | (string & {}); + + export type DominantBaseline = Globals | "alphabetic" | "auto" | "central" | "hanging" | "ideographic" | "mathematical" | "middle" | "text-bottom" | "text-top"; + + export type EmptyCells = Globals | "hide" | "show"; + + export type FieldSizing = Globals | "content" | "fixed"; + + export type Fill = Globals | DataType.Paint; + + export type FillOpacity = Globals | (string & {}) | (number & {}); + + export type FillRule = Globals | "evenodd" | "nonzero"; + + export type Filter = Globals | "none" | (string & {}); + + export type Flex<TLength = (string & {}) | 0> = Globals | TLength | "auto" | "content" | "fit-content" | "max-content" | "min-content" | "none" | (string & {}) | (number & {}); + + export type FlexBasis<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-auto" + | "auto" + | "content" + | "fit-content" + | "max-content" + | "min-content" + | (string & {}); + + export type FlexDirection = Globals | "column" | "column-reverse" | "row" | "row-reverse"; + + export type FlexFlow = Globals | "column" | "column-reverse" | "nowrap" | "row" | "row-reverse" | "wrap" | "wrap-reverse" | (string & {}); + + export type FlexGrow = Globals | (number & {}) | (string & {}); + + export type FlexShrink = Globals | (number & {}) | (string & {}); + + export type FlexWrap = Globals | "nowrap" | "wrap" | "wrap-reverse"; + + export type Float = Globals | "inline-end" | "inline-start" | "left" | "none" | "right"; + + export type FloodColor = Globals | DataType.Color; + + export type FloodOpacity = Globals | (string & {}) | (number & {}); + + export type Font = Globals | DataType.SystemFamilyName | (string & {}); + + export type FontFamily = Globals | DataType.GenericFamily | (string & {}); + + export type FontFeatureSettings = Globals | "normal" | (string & {}); + + export type FontKerning = Globals | "auto" | "none" | "normal"; + + export type FontLanguageOverride = Globals | "normal" | (string & {}); + + export type FontOpticalSizing = Globals | "auto" | "none"; + + export type FontPalette = Globals | "dark" | "light" | "normal" | (string & {}); + + export type FontSize<TLength = (string & {}) | 0> = Globals | DataType.AbsoluteSize | TLength | "larger" | "math" | "smaller" | (string & {}); + + export type FontSizeAdjust = Globals | "from-font" | "none" | (string & {}) | (number & {}); + + export type FontSmooth<TLength = (string & {}) | 0> = Globals | DataType.AbsoluteSize | TLength | "always" | "auto" | "never"; + + export type FontStretch = Globals | DataType.FontStretchAbsolute; + + export type FontStyle = Globals | "italic" | "normal" | "oblique" | (string & {}); + + export type FontSynthesis = Globals | "none" | "position" | "small-caps" | "style" | "weight" | (string & {}); + + export type FontSynthesisPosition = Globals | "auto" | "none"; + + export type FontSynthesisSmallCaps = Globals | "auto" | "none"; + + export type FontSynthesisStyle = Globals | "auto" | "none"; + + export type FontSynthesisWeight = Globals | "auto" | "none"; + + export type FontVariant = + | Globals + | DataType.EastAsianVariantValues + | "all-petite-caps" + | "all-small-caps" + | "common-ligatures" + | "contextual" + | "diagonal-fractions" + | "discretionary-ligatures" + | "full-width" + | "historical-forms" + | "historical-ligatures" + | "lining-nums" + | "no-common-ligatures" + | "no-contextual" + | "no-discretionary-ligatures" + | "no-historical-ligatures" + | "none" + | "normal" + | "oldstyle-nums" + | "ordinal" + | "petite-caps" + | "proportional-nums" + | "proportional-width" + | "ruby" + | "slashed-zero" + | "small-caps" + | "stacked-fractions" + | "tabular-nums" + | "titling-caps" + | "unicase" + | (string & {}); + + export type FontVariantAlternates = Globals | "historical-forms" | "normal" | (string & {}); + + export type FontVariantCaps = Globals | "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase"; + + export type FontVariantEastAsian = Globals | DataType.EastAsianVariantValues | "full-width" | "normal" | "proportional-width" | "ruby" | (string & {}); + + export type FontVariantEmoji = Globals | "emoji" | "normal" | "text" | "unicode"; + + export type FontVariantLigatures = + | Globals + | "common-ligatures" + | "contextual" + | "discretionary-ligatures" + | "historical-ligatures" + | "no-common-ligatures" + | "no-contextual" + | "no-discretionary-ligatures" + | "no-historical-ligatures" + | "none" + | "normal" + | (string & {}); + + export type FontVariantNumeric = + | Globals + | "diagonal-fractions" + | "lining-nums" + | "normal" + | "oldstyle-nums" + | "ordinal" + | "proportional-nums" + | "slashed-zero" + | "stacked-fractions" + | "tabular-nums" + | (string & {}); + + export type FontVariantPosition = Globals | "normal" | "sub" | "super"; + + export type FontVariationSettings = Globals | "normal" | (string & {}); + + export type FontWeight = Globals | DataType.FontWeightAbsolute | "bolder" | "lighter"; + + export type FontWidth = + | Globals + | "condensed" + | "expanded" + | "extra-condensed" + | "extra-expanded" + | "normal" + | "semi-condensed" + | "semi-expanded" + | "ultra-condensed" + | "ultra-expanded" + | (string & {}); + + export type ForcedColorAdjust = Globals | "auto" | "none" | "preserve-parent-color"; + + export type Gap<TLength = (string & {}) | 0> = Globals | TLength | "normal" | (string & {}); + + export type Grid = Globals | "none" | (string & {}); + + export type GridArea = Globals | DataType.GridLine | (string & {}); + + export type GridAutoColumns<TLength = (string & {}) | 0> = Globals | DataType.TrackBreadth<TLength> | (string & {}); + + export type GridAutoFlow = Globals | "column" | "dense" | "row" | (string & {}); + + export type GridAutoRows<TLength = (string & {}) | 0> = Globals | DataType.TrackBreadth<TLength> | (string & {}); + + export type GridColumn = Globals | DataType.GridLine | (string & {}); + + export type GridColumnEnd = Globals | DataType.GridLine; + + export type GridColumnGap<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type GridColumnStart = Globals | DataType.GridLine; + + export type GridGap<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type GridRow = Globals | DataType.GridLine | (string & {}); + + export type GridRowEnd = Globals | DataType.GridLine; + + export type GridRowGap<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type GridRowStart = Globals | DataType.GridLine; + + export type GridTemplate = Globals | "none" | (string & {}); + + export type GridTemplateAreas = Globals | "none" | (string & {}); + + export type GridTemplateColumns<TLength = (string & {}) | 0> = Globals | DataType.TrackBreadth<TLength> | "none" | "subgrid" | (string & {}); + + export type GridTemplateRows<TLength = (string & {}) | 0> = Globals | DataType.TrackBreadth<TLength> | "none" | "subgrid" | (string & {}); + + export type HangingPunctuation = Globals | "allow-end" | "first" | "force-end" | "last" | "none" | (string & {}); + + export type Height<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | (string & {}); + + export type HyphenateCharacter = Globals | "auto" | (string & {}); + + export type HyphenateLimitChars = Globals | "auto" | (string & {}) | (number & {}); + + export type Hyphens = Globals | "auto" | "manual" | "none"; + + export type ImageOrientation = Globals | "flip" | "from-image" | (string & {}); + + export type ImageRendering = Globals | "-moz-crisp-edges" | "-webkit-optimize-contrast" | "auto" | "crisp-edges" | "pixelated" | "smooth"; + + export type ImageResolution = Globals | "from-image" | (string & {}); + + export type ImeMode = Globals | "active" | "auto" | "disabled" | "inactive" | "normal"; + + export type InitialLetter = Globals | "normal" | (string & {}) | (number & {}); + + export type InitialLetterAlign = Globals | "alphabetic" | "auto" | "hanging" | "ideographic"; + + export type InlineSize<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | (string & {}); + + export type Inset<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type PositionArea = Globals | DataType.PositionArea | "none"; + + export type InsetBlock<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type InsetBlockEnd<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type InsetBlockStart<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type InsetInline<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type InsetInlineEnd<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type InsetInlineStart<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type InterpolateSize = Globals | "allow-keywords" | "numeric-only"; + + export type Isolation = Globals | "auto" | "isolate"; + + export type JustifyContent = Globals | DataType.ContentDistribution | DataType.ContentPosition | "left" | "normal" | "right" | (string & {}); + + export type JustifyItems = Globals | DataType.SelfPosition | "anchor-center" | "baseline" | "left" | "legacy" | "normal" | "right" | "stretch" | (string & {}); + + export type JustifySelf = Globals | DataType.SelfPosition | "anchor-center" | "auto" | "baseline" | "left" | "normal" | "right" | "stretch" | (string & {}); + + export type JustifyTracks = Globals | DataType.ContentDistribution | DataType.ContentPosition | "left" | "normal" | "right" | (string & {}); + + export type Left<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type LetterSpacing<TLength = (string & {}) | 0> = Globals | TLength | "normal"; + + export type LightingColor = Globals | DataType.Color; + + export type LineBreak = Globals | "anywhere" | "auto" | "loose" | "normal" | "strict"; + + export type LineClamp = Globals | "none" | (number & {}) | (string & {}); + + export type LineHeight<TLength = (string & {}) | 0> = Globals | TLength | "normal" | (string & {}) | (number & {}); + + export type LineHeightStep<TLength = (string & {}) | 0> = Globals | TLength; + + export type ListStyle = Globals | "inside" | "none" | "outside" | (string & {}); + + export type ListStyleImage = Globals | "none" | (string & {}); + + export type ListStylePosition = Globals | "inside" | "outside"; + + export type ListStyleType = Globals | "none" | (string & {}); + + export type Margin<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginBlock<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginBlockEnd<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginBlockStart<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginBottom<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginInline<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginInlineEnd<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginInlineStart<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginLeft<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginRight<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginTop<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type MarginTrim = Globals | "all" | "in-flow" | "none"; + + export type Marker = Globals | "none" | (string & {}); + + export type MarkerEnd = Globals | "none" | (string & {}); + + export type MarkerMid = Globals | "none" | (string & {}); + + export type MarkerStart = Globals | "none" | (string & {}); + + export type Mask<TLength = (string & {}) | 0> = Globals | DataType.MaskLayer<TLength> | (string & {}); + + export type MaskBorder = Globals | "alpha" | "luminance" | "none" | "repeat" | "round" | "space" | "stretch" | (string & {}) | (number & {}); + + export type MaskBorderMode = Globals | "alpha" | "luminance"; + + export type MaskBorderOutset<TLength = (string & {}) | 0> = Globals | TLength | (string & {}) | (number & {}); + + export type MaskBorderRepeat = Globals | "repeat" | "round" | "space" | "stretch" | (string & {}); + + export type MaskBorderSlice = Globals | (string & {}) | (number & {}); + + export type MaskBorderSource = Globals | "none" | (string & {}); + + export type MaskBorderWidth<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}) | (number & {}); + + export type MaskClip = Globals | DataType.PaintBox | "no-clip" | "view-box" | (string & {}); + + export type MaskComposite = Globals | DataType.CompositingOperator | (string & {}); + + export type MaskImage = Globals | "none" | (string & {}); + + export type MaskMode = Globals | DataType.MaskingMode | (string & {}); + + export type MaskOrigin = Globals | DataType.PaintBox | "view-box" | (string & {}); + + export type MaskPosition<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength> | (string & {}); + + export type MaskRepeat = Globals | DataType.RepeatStyle | (string & {}); + + export type MaskSize<TLength = (string & {}) | 0> = Globals | DataType.BgSize<TLength> | (string & {}); + + export type MaskType = Globals | "alpha" | "luminance"; + + export type MasonryAutoFlow = Globals | "definite-first" | "next" | "ordered" | "pack" | (string & {}); + + export type MathDepth = Globals | "auto-add" | (string & {}) | (number & {}); + + export type MathShift = Globals | "compact" | "normal"; + + export type MathStyle = Globals | "compact" | "normal"; + + export type MaxBlockSize<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "fit-content" + | "max-content" + | "min-content" + | "none" + | (string & {}); + + export type MaxHeight<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "none" + | (string & {}); + + export type MaxInlineSize<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "fit-content" + | "max-content" + | "min-content" + | "none" + | (string & {}); + + export type MaxLines = Globals | "none" | (number & {}) | (string & {}); + + export type MaxWidth<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "none" + | (string & {}); + + export type MinBlockSize<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | (string & {}); + + export type MinHeight<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "auto" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | (string & {}); + + export type MinInlineSize<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | (string & {}); + + export type MinWidth<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "auto" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "min-intrinsic" + | (string & {}); + + export type MixBlendMode = Globals | DataType.BlendMode | "plus-darker" | "plus-lighter"; + + export type Offset<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength> | DataType.PaintBox | "auto" | "none" | "normal" | "view-box" | (string & {}); + + export type OffsetDistance<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type OffsetPath = Globals | DataType.PaintBox | "none" | "view-box" | (string & {}); + + export type OffsetRotate = Globals | "auto" | "reverse" | (string & {}); + + export type ObjectFit = Globals | "contain" | "cover" | "fill" | "none" | "scale-down"; + + export type ObjectPosition<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength>; + + export type ObjectViewBox = Globals | "none" | (string & {}); + + export type OffsetAnchor<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength> | "auto"; + + export type OffsetPosition<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength> | "auto" | "normal"; + + export type Opacity = Globals | (string & {}) | (number & {}); + + export type Order = Globals | (number & {}) | (string & {}); + + export type Orphans = Globals | (number & {}) | (string & {}); + + export type Outline<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.OutlineLineStyle | DataType.Color | "auto" | (string & {}); + + export type OutlineColor = Globals | DataType.Color | "auto"; + + export type OutlineOffset<TLength = (string & {}) | 0> = Globals | TLength; + + export type OutlineStyle = Globals | DataType.OutlineLineStyle | "auto"; + + export type OutlineWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength>; + + export type Overflow = Globals | "-moz-hidden-unscrollable" | "auto" | "clip" | "hidden" | "overlay" | "scroll" | "visible" | (string & {}); + + export type OverflowAnchor = Globals | "auto" | "none"; + + export type OverflowBlock = Globals | "auto" | "clip" | "hidden" | "scroll" | "visible"; + + export type OverflowClipBox = Globals | "content-box" | "padding-box"; + + export type OverflowClipMargin<TLength = (string & {}) | 0> = Globals | DataType.VisualBox | TLength | (string & {}); + + export type OverflowInline = Globals | "auto" | "clip" | "hidden" | "scroll" | "visible"; + + export type OverflowWrap = Globals | "anywhere" | "break-word" | "normal"; + + export type OverflowX = Globals | "-moz-hidden-unscrollable" | "auto" | "clip" | "hidden" | "overlay" | "scroll" | "visible"; + + export type OverflowY = Globals | "-moz-hidden-unscrollable" | "auto" | "clip" | "hidden" | "overlay" | "scroll" | "visible"; + + export type Overlay = Globals | "auto" | "none"; + + export type OverscrollBehavior = Globals | "auto" | "contain" | "none" | (string & {}); + + export type OverscrollBehaviorBlock = Globals | "auto" | "contain" | "none"; + + export type OverscrollBehaviorInline = Globals | "auto" | "contain" | "none"; + + export type OverscrollBehaviorX = Globals | "auto" | "contain" | "none"; + + export type OverscrollBehaviorY = Globals | "auto" | "contain" | "none"; + + export type Padding<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingBlock<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingBlockEnd<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingBlockStart<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingBottom<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingInline<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingInlineEnd<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingInlineStart<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingLeft<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingRight<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type PaddingTop<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type Page = Globals | "auto" | (string & {}); + + export type PageBreakAfter = Globals | "always" | "auto" | "avoid" | "left" | "recto" | "right" | "verso"; + + export type PageBreakBefore = Globals | "always" | "auto" | "avoid" | "left" | "recto" | "right" | "verso"; + + export type PageBreakInside = Globals | "auto" | "avoid"; + + export type PaintOrder = Globals | "fill" | "markers" | "normal" | "stroke" | (string & {}); + + export type Perspective<TLength = (string & {}) | 0> = Globals | TLength | "none"; + + export type PerspectiveOrigin<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength>; + + export type PlaceContent = Globals | DataType.ContentDistribution | DataType.ContentPosition | "baseline" | "normal" | (string & {}); + + export type PlaceItems = Globals | DataType.SelfPosition | "anchor-center" | "baseline" | "normal" | "stretch" | (string & {}); + + export type PlaceSelf = Globals | DataType.SelfPosition | "anchor-center" | "auto" | "baseline" | "normal" | "stretch" | (string & {}); + + export type PointerEvents = Globals | "all" | "auto" | "fill" | "inherit" | "none" | "painted" | "stroke" | "visible" | "visibleFill" | "visiblePainted" | "visibleStroke"; + + export type Position = Globals | "-webkit-sticky" | "absolute" | "fixed" | "relative" | "static" | "sticky"; + + export type PositionAnchor = Globals | "auto" | (string & {}); + + export type PositionTry = Globals | DataType.TryTactic | DataType.PositionArea | "none" | (string & {}); + + export type PositionTryFallbacks = Globals | DataType.TryTactic | DataType.PositionArea | "none" | (string & {}); + + export type PositionTryOrder = Globals | DataType.TrySize | "normal"; + + export type PositionVisibility = Globals | "always" | "anchors-valid" | "anchors-visible" | "no-overflow" | (string & {}); + + export type Quotes = Globals | "auto" | "none" | (string & {}); + + export type R<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type Resize = Globals | "block" | "both" | "horizontal" | "inline" | "none" | "vertical"; + + export type Right<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type Rotate = Globals | "none" | (string & {}); + + export type RowGap<TLength = (string & {}) | 0> = Globals | TLength | "normal" | (string & {}); + + export type RubyAlign = Globals | "center" | "space-around" | "space-between" | "start"; + + export type RubyMerge = Globals | "auto" | "collapse" | "separate"; + + export type RubyOverhang = Globals | "auto" | "none"; + + export type RubyPosition = Globals | "alternate" | "inter-character" | "over" | "under" | (string & {}); + + export type Rx<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type Ry<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type Scale = Globals | "none" | (string & {}) | (number & {}); + + export type ScrollBehavior = Globals | "auto" | "smooth"; + + export type ScrollInitialTarget = Globals | "nearest" | "none"; + + export type ScrollMargin<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type ScrollMarginBlock<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type ScrollMarginBlockEnd<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginBlockStart<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginBottom<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginInline<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type ScrollMarginInlineEnd<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginInlineStart<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginLeft<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginRight<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollMarginTop<TLength = (string & {}) | 0> = Globals | TLength; + + export type ScrollPadding<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingBlock<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingBlockEnd<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingBlockStart<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingBottom<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingInline<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingInlineEnd<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingInlineStart<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingLeft<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingRight<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollPaddingTop<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ScrollSnapAlign = Globals | "center" | "end" | "none" | "start" | (string & {}); + + export type ScrollSnapCoordinate<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength> | "none" | (string & {}); + + export type ScrollSnapDestination<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength>; + + export type ScrollSnapPointsX = Globals | "none" | (string & {}); + + export type ScrollSnapPointsY = Globals | "none" | (string & {}); + + export type ScrollSnapStop = Globals | "always" | "normal"; + + export type ScrollSnapType = Globals | "block" | "both" | "inline" | "none" | "x" | "y" | (string & {}); + + export type ScrollSnapTypeX = Globals | "mandatory" | "none" | "proximity"; + + export type ScrollSnapTypeY = Globals | "mandatory" | "none" | "proximity"; + + export type ScrollTimeline = Globals | "none" | (string & {}); + + export type ScrollTimelineAxis = Globals | "block" | "inline" | "x" | "y" | (string & {}); + + export type ScrollTimelineName = Globals | "none" | (string & {}); + + export type ScrollbarColor = Globals | "auto" | (string & {}); + + export type ScrollbarGutter = Globals | "auto" | "stable" | (string & {}); + + export type ScrollbarWidth = Globals | "auto" | "none" | "thin"; + + export type ShapeImageThreshold = Globals | (string & {}) | (number & {}); + + export type ShapeMargin<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type ShapeOutside = Globals | DataType.VisualBox | "margin-box" | "none" | (string & {}); + + export type ShapeRendering = Globals | "auto" | "crispEdges" | "geometricPrecision" | "optimizeSpeed"; + + export type SpeakAs = Globals | "digits" | "literal-punctuation" | "no-punctuation" | "normal" | "spell-out" | (string & {}); + + export type StopColor = Globals | DataType.Color; + + export type StopOpacity = Globals | (string & {}) | (number & {}); + + export type Stroke = Globals | DataType.Paint; + + export type StrokeColor = Globals | DataType.Color; + + export type StrokeDasharray<TLength = (string & {}) | 0> = Globals | DataType.Dasharray<TLength> | "none"; + + export type StrokeDashoffset<TLength = (string & {}) | 0> = Globals | TLength | (string & {}) | (number & {}); + + export type StrokeLinecap = Globals | "butt" | "round" | "square"; + + export type StrokeLinejoin = Globals | "arcs" | "bevel" | "miter" | "miter-clip" | "round"; + + export type StrokeMiterlimit = Globals | (number & {}) | (string & {}); + + export type StrokeOpacity = Globals | (string & {}) | (number & {}); + + export type StrokeWidth<TLength = (string & {}) | 0> = Globals | TLength | (string & {}) | (number & {}); + + export type TabSize<TLength = (string & {}) | 0> = Globals | TLength | (number & {}) | (string & {}); + + export type TableLayout = Globals | "auto" | "fixed"; + + export type TextAlign = + | Globals + | "-khtml-center" + | "-khtml-left" + | "-khtml-right" + | "-moz-center" + | "-moz-left" + | "-moz-right" + | "-webkit-center" + | "-webkit-left" + | "-webkit-match-parent" + | "-webkit-right" + | "center" + | "end" + | "justify" + | "left" + | "match-parent" + | "right" + | "start"; + + export type TextAlignLast = Globals | "auto" | "center" | "end" | "justify" | "left" | "right" | "start"; + + export type TextAnchor = Globals | "end" | "middle" | "start"; + + export type TextAutospace = Globals | DataType.Autospace | "auto" | "normal"; + + export type TextBox = Globals | DataType.TextEdge | "auto" | "none" | "normal" | "trim-both" | "trim-end" | "trim-start" | (string & {}); + + export type TextBoxEdge = Globals | DataType.TextEdge | "auto"; + + export type TextBoxTrim = Globals | "none" | "trim-both" | "trim-end" | "trim-start"; + + export type TextCombineUpright = Globals | "all" | "digits" | "none" | (string & {}); + + export type TextDecoration<TLength = (string & {}) | 0> = + | Globals + | DataType.Color + | TLength + | "auto" + | "blink" + | "dashed" + | "dotted" + | "double" + | "from-font" + | "grammar-error" + | "line-through" + | "none" + | "overline" + | "solid" + | "spelling-error" + | "underline" + | "wavy" + | (string & {}); + + export type TextDecorationColor = Globals | DataType.Color; + + export type TextDecorationLine = Globals | "blink" | "grammar-error" | "line-through" | "none" | "overline" | "spelling-error" | "underline" | (string & {}); + + export type TextDecorationSkip = Globals | "box-decoration" | "edges" | "leading-spaces" | "none" | "objects" | "spaces" | "trailing-spaces" | (string & {}); + + export type TextDecorationSkipInk = Globals | "all" | "auto" | "none"; + + export type TextDecorationStyle = Globals | "dashed" | "dotted" | "double" | "solid" | "wavy"; + + export type TextDecorationThickness<TLength = (string & {}) | 0> = Globals | TLength | "auto" | "from-font" | (string & {}); + + export type TextEmphasis = Globals | DataType.Color | "circle" | "dot" | "double-circle" | "filled" | "none" | "open" | "sesame" | "triangle" | (string & {}); + + export type TextEmphasisColor = Globals | DataType.Color; + + export type TextEmphasisPosition = Globals | "auto" | "over" | "under" | (string & {}); + + export type TextEmphasisStyle = Globals | "circle" | "dot" | "double-circle" | "filled" | "none" | "open" | "sesame" | "triangle" | (string & {}); + + export type TextIndent<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type TextJustify = Globals | "auto" | "distribute" | "inter-character" | "inter-word" | "none"; + + export type TextOrientation = Globals | "mixed" | "sideways" | "sideways-right" | "upright"; + + export type TextOverflow = Globals | "clip" | "ellipsis" | (string & {}); + + export type TextRendering = Globals | "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed"; + + export type TextShadow = Globals | "none" | (string & {}); + + export type TextSizeAdjust = Globals | "auto" | "none" | (string & {}); + + export type TextSpacingTrim = Globals | "normal" | "space-all" | "space-first" | "trim-start"; + + export type TextTransform = Globals | "capitalize" | "full-size-kana" | "full-width" | "lowercase" | "math-auto" | "none" | "uppercase" | (string & {}); + + export type TextUnderlineOffset<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type TextUnderlinePosition = Globals | "auto" | "from-font" | "left" | "right" | "under" | (string & {}); + + export type TextWrap = Globals | "auto" | "balance" | "nowrap" | "pretty" | "stable" | "wrap" | (string & {}); + + export type TextWrapMode = Globals | "nowrap" | "wrap"; + + export type TextWrapStyle = Globals | "auto" | "balance" | "pretty" | "stable"; + + export type TimelineScope = Globals | "none" | (string & {}); + + export type Top<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type TouchAction = + | Globals + | "-ms-manipulation" + | "-ms-none" + | "-ms-pan-x" + | "-ms-pan-y" + | "-ms-pinch-zoom" + | "auto" + | "manipulation" + | "none" + | "pan-down" + | "pan-left" + | "pan-right" + | "pan-up" + | "pan-x" + | "pan-y" + | "pinch-zoom" + | (string & {}); + + export type Transform = Globals | "none" | (string & {}); + + export type TransformBox = Globals | "border-box" | "content-box" | "fill-box" | "stroke-box" | "view-box"; + + export type TransformOrigin<TLength = (string & {}) | 0> = Globals | TLength | "bottom" | "center" | "left" | "right" | "top" | (string & {}); + + export type TransformStyle = Globals | "flat" | "preserve-3d"; + + export type Transition<TTime = string & {}> = Globals | DataType.SingleTransition<TTime> | (string & {}); + + export type TransitionBehavior = Globals | "allow-discrete" | "normal" | (string & {}); + + export type TransitionDelay<TTime = string & {}> = Globals | TTime | (string & {}); + + export type TransitionDuration<TTime = string & {}> = Globals | TTime | (string & {}); + + export type TransitionProperty = Globals | "all" | "none" | (string & {}); + + export type TransitionTimingFunction = Globals | DataType.EasingFunction | (string & {}); + + export type Translate<TLength = (string & {}) | 0> = Globals | TLength | "none" | (string & {}); + + export type UnicodeBidi = + | Globals + | "-moz-isolate" + | "-moz-isolate-override" + | "-moz-plaintext" + | "-webkit-isolate" + | "-webkit-isolate-override" + | "-webkit-plaintext" + | "bidi-override" + | "embed" + | "isolate" + | "isolate-override" + | "normal" + | "plaintext"; + + export type UserSelect = Globals | "-moz-none" | "all" | "auto" | "none" | "text"; + + export type VectorEffect = Globals | "fixed-position" | "non-rotation" | "non-scaling-size" | "non-scaling-stroke" | "none"; + + export type VerticalAlign<TLength = (string & {}) | 0> = + | Globals + | TLength + | "baseline" + | "bottom" + | "middle" + | "sub" + | "super" + | "text-bottom" + | "text-top" + | "top" + | (string & {}); + + export type ViewTimeline = Globals | "none" | (string & {}); + + export type ViewTimelineAxis = Globals | "block" | "inline" | "x" | "y" | (string & {}); + + export type ViewTimelineInset<TLength = (string & {}) | 0> = Globals | TLength | "auto" | (string & {}); + + export type ViewTimelineName = Globals | "none" | (string & {}); + + export type ViewTransitionClass = Globals | "none" | (string & {}); + + export type ViewTransitionName = Globals | "match-element" | "none" | (string & {}); + + export type Visibility = Globals | "collapse" | "hidden" | "visible"; + + export type WhiteSpace = + | Globals + | "-moz-pre-wrap" + | "break-spaces" + | "collapse" + | "normal" + | "nowrap" + | "pre" + | "pre-line" + | "pre-wrap" + | "preserve" + | "preserve-breaks" + | "preserve-spaces" + | "wrap" + | (string & {}); + + export type WhiteSpaceCollapse = Globals | "break-spaces" | "collapse" | "preserve" | "preserve-breaks" | "preserve-spaces"; + + export type Widows = Globals | (number & {}) | (string & {}); + + export type Width<TLength = (string & {}) | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "auto" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "min-intrinsic" + | (string & {}); + + export type WillChange = Globals | DataType.AnimateableFeature | "auto" | (string & {}); + + export type WordBreak = Globals | "auto-phrase" | "break-all" | "break-word" | "keep-all" | "normal"; + + export type WordSpacing<TLength = (string & {}) | 0> = Globals | TLength | "normal"; + + export type WordWrap = Globals | "break-word" | "normal"; + + export type WritingMode = Globals | "horizontal-tb" | "sideways-lr" | "sideways-rl" | "vertical-lr" | "vertical-rl"; + + export type X<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type Y<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type ZIndex = Globals | "auto" | (number & {}) | (string & {}); + + export type Zoom = Globals | "normal" | "reset" | (string & {}) | (number & {}); + + export type MozAppearance = + | Globals + | "-moz-mac-unified-toolbar" + | "-moz-win-borderless-glass" + | "-moz-win-browsertabbar-toolbox" + | "-moz-win-communications-toolbox" + | "-moz-win-communicationstext" + | "-moz-win-exclude-glass" + | "-moz-win-glass" + | "-moz-win-media-toolbox" + | "-moz-win-mediatext" + | "-moz-window-button-box" + | "-moz-window-button-box-maximized" + | "-moz-window-button-close" + | "-moz-window-button-maximize" + | "-moz-window-button-minimize" + | "-moz-window-button-restore" + | "-moz-window-frame-bottom" + | "-moz-window-frame-left" + | "-moz-window-frame-right" + | "-moz-window-titlebar" + | "-moz-window-titlebar-maximized" + | "button" + | "button-arrow-down" + | "button-arrow-next" + | "button-arrow-previous" + | "button-arrow-up" + | "button-bevel" + | "button-focus" + | "caret" + | "checkbox" + | "checkbox-container" + | "checkbox-label" + | "checkmenuitem" + | "dualbutton" + | "groupbox" + | "listbox" + | "listitem" + | "menuarrow" + | "menubar" + | "menucheckbox" + | "menuimage" + | "menuitem" + | "menuitemtext" + | "menulist" + | "menulist-button" + | "menulist-text" + | "menulist-textfield" + | "menupopup" + | "menuradio" + | "menuseparator" + | "meterbar" + | "meterchunk" + | "none" + | "progressbar" + | "progressbar-vertical" + | "progresschunk" + | "progresschunk-vertical" + | "radio" + | "radio-container" + | "radio-label" + | "radiomenuitem" + | "range" + | "range-thumb" + | "resizer" + | "resizerpanel" + | "scale-horizontal" + | "scale-vertical" + | "scalethumb-horizontal" + | "scalethumb-vertical" + | "scalethumbend" + | "scalethumbstart" + | "scalethumbtick" + | "scrollbarbutton-down" + | "scrollbarbutton-left" + | "scrollbarbutton-right" + | "scrollbarbutton-up" + | "scrollbarthumb-horizontal" + | "scrollbarthumb-vertical" + | "scrollbartrack-horizontal" + | "scrollbartrack-vertical" + | "searchfield" + | "separator" + | "sheet" + | "spinner" + | "spinner-downbutton" + | "spinner-textfield" + | "spinner-upbutton" + | "splitter" + | "statusbar" + | "statusbarpanel" + | "tab" + | "tab-scroll-arrow-back" + | "tab-scroll-arrow-forward" + | "tabpanel" + | "tabpanels" + | "textfield" + | "textfield-multiline" + | "toolbar" + | "toolbarbutton" + | "toolbarbutton-dropdown" + | "toolbargripper" + | "toolbox" + | "tooltip" + | "treeheader" + | "treeheadercell" + | "treeheadersortarrow" + | "treeitem" + | "treeline" + | "treetwisty" + | "treetwistyopen" + | "treeview"; + + export type MozBinding = Globals | "none" | (string & {}); + + export type MozBorderBottomColors = Globals | DataType.Color | "none" | (string & {}); + + export type MozBorderLeftColors = Globals | DataType.Color | "none" | (string & {}); + + export type MozBorderRightColors = Globals | DataType.Color | "none" | (string & {}); + + export type MozBorderTopColors = Globals | DataType.Color | "none" | (string & {}); + + export type MozContextProperties = Globals | "fill" | "fill-opacity" | "none" | "stroke" | "stroke-opacity" | (string & {}); + + export type MozFloatEdge = Globals | "border-box" | "content-box" | "margin-box" | "padding-box"; + + export type MozForceBrokenImageIcon = Globals | 0 | (string & {}) | 1; + + export type MozOrient = Globals | "block" | "horizontal" | "inline" | "vertical"; + + export type MozOutlineRadius<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type MozOutlineRadiusBottomleft<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type MozOutlineRadiusBottomright<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type MozOutlineRadiusTopleft<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type MozOutlineRadiusTopright<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type MozStackSizing = Globals | "ignore" | "stretch-to-fit"; + + export type MozTextBlink = Globals | "blink" | "none"; + + export type MozUserFocus = Globals | "ignore" | "none" | "normal" | "select-after" | "select-all" | "select-before" | "select-menu" | "select-same"; + + export type MozUserInput = Globals | "auto" | "disabled" | "enabled" | "none"; + + export type MozUserModify = Globals | "read-only" | "read-write" | "write-only"; + + export type MozWindowDragging = Globals | "drag" | "no-drag"; + + export type MozWindowShadow = Globals | "default" | "menu" | "none" | "sheet" | "tooltip"; + + export type MsAccelerator = Globals | "false" | "true"; + + export type MsBlockProgression = Globals | "bt" | "lr" | "rl" | "tb"; + + export type MsContentZoomChaining = Globals | "chained" | "none"; + + export type MsContentZoomLimit = Globals | (string & {}); + + export type MsContentZoomLimitMax = Globals | (string & {}); + + export type MsContentZoomLimitMin = Globals | (string & {}); + + export type MsContentZoomSnap = Globals | "mandatory" | "none" | "proximity" | (string & {}); + + export type MsContentZoomSnapPoints = Globals | (string & {}); + + export type MsContentZoomSnapType = Globals | "mandatory" | "none" | "proximity"; + + export type MsContentZooming = Globals | "none" | "zoom"; + + export type MsFilter = Globals | (string & {}); + + export type MsFlowFrom = Globals | "none" | (string & {}); + + export type MsFlowInto = Globals | "none" | (string & {}); + + export type MsGridColumns<TLength = (string & {}) | 0> = Globals | DataType.TrackBreadth<TLength> | "none" | (string & {}); + + export type MsGridRows<TLength = (string & {}) | 0> = Globals | DataType.TrackBreadth<TLength> | "none" | (string & {}); + + export type MsHighContrastAdjust = Globals | "auto" | "none"; + + export type MsHyphenateLimitChars = Globals | "auto" | (string & {}) | (number & {}); + + export type MsHyphenateLimitLines = Globals | "no-limit" | (number & {}) | (string & {}); + + export type MsHyphenateLimitZone<TLength = (string & {}) | 0> = Globals | TLength | (string & {}); + + export type MsImeAlign = Globals | "after" | "auto"; + + export type MsOverflowStyle = Globals | "-ms-autohiding-scrollbar" | "auto" | "none" | "scrollbar"; + + export type MsScrollChaining = Globals | "chained" | "none"; + + export type MsScrollLimit = Globals | (string & {}); + + export type MsScrollLimitXMax<TLength = (string & {}) | 0> = Globals | TLength | "auto"; + + export type MsScrollLimitXMin<TLength = (string & {}) | 0> = Globals | TLength; + + export type MsScrollLimitYMax<TLength = (string & {}) | 0> = Globals | TLength | "auto"; + + export type MsScrollLimitYMin<TLength = (string & {}) | 0> = Globals | TLength; + + export type MsScrollRails = Globals | "none" | "railed"; + + export type MsScrollSnapPointsX = Globals | (string & {}); + + export type MsScrollSnapPointsY = Globals | (string & {}); + + export type MsScrollSnapType = Globals | "mandatory" | "none" | "proximity"; + + export type MsScrollSnapX = Globals | (string & {}); + + export type MsScrollSnapY = Globals | (string & {}); + + export type MsScrollTranslation = Globals | "none" | "vertical-to-horizontal"; + + export type MsScrollbar3dlightColor = Globals | DataType.Color; + + export type MsScrollbarArrowColor = Globals | DataType.Color; + + export type MsScrollbarBaseColor = Globals | DataType.Color; + + export type MsScrollbarDarkshadowColor = Globals | DataType.Color; + + export type MsScrollbarFaceColor = Globals | DataType.Color; + + export type MsScrollbarHighlightColor = Globals | DataType.Color; + + export type MsScrollbarShadowColor = Globals | DataType.Color; + + export type MsScrollbarTrackColor = Globals | DataType.Color; + + export type MsTextAutospace = Globals | "ideograph-alpha" | "ideograph-numeric" | "ideograph-parenthesis" | "ideograph-space" | "none"; + + export type MsTouchSelect = Globals | "grippers" | "none"; + + export type MsUserSelect = Globals | "element" | "none" | "text"; + + export type MsWrapFlow = Globals | "auto" | "both" | "clear" | "end" | "maximum" | "start"; + + export type MsWrapMargin<TLength = (string & {}) | 0> = Globals | TLength; + + export type MsWrapThrough = Globals | "none" | "wrap"; + + export type WebkitAppearance = + | Globals + | "-apple-pay-button" + | "button" + | "button-bevel" + | "caret" + | "checkbox" + | "default-button" + | "inner-spin-button" + | "listbox" + | "listitem" + | "media-controls-background" + | "media-controls-fullscreen-background" + | "media-current-time-display" + | "media-enter-fullscreen-button" + | "media-exit-fullscreen-button" + | "media-fullscreen-button" + | "media-mute-button" + | "media-overlay-play-button" + | "media-play-button" + | "media-seek-back-button" + | "media-seek-forward-button" + | "media-slider" + | "media-sliderthumb" + | "media-time-remaining-display" + | "media-toggle-closed-captions-button" + | "media-volume-slider" + | "media-volume-slider-container" + | "media-volume-sliderthumb" + | "menulist" + | "menulist-button" + | "menulist-text" + | "menulist-textfield" + | "meter" + | "none" + | "progress-bar" + | "progress-bar-value" + | "push-button" + | "radio" + | "searchfield" + | "searchfield-cancel-button" + | "searchfield-decoration" + | "searchfield-results-button" + | "searchfield-results-decoration" + | "slider-horizontal" + | "slider-vertical" + | "sliderthumb-horizontal" + | "sliderthumb-vertical" + | "square-button" + | "textarea" + | "textfield"; + + export type WebkitBorderBefore<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | DataType.LineStyle | DataType.Color | (string & {}); + + export type WebkitBorderBeforeColor = Globals | DataType.Color; + + export type WebkitBorderBeforeStyle = Globals | DataType.LineStyle | (string & {}); + + export type WebkitBorderBeforeWidth<TLength = (string & {}) | 0> = Globals | DataType.LineWidth<TLength> | (string & {}); + + export type WebkitBoxReflect<TLength = (string & {}) | 0> = Globals | TLength | "above" | "below" | "left" | "right" | (string & {}); + + export type WebkitLineClamp = Globals | "none" | (number & {}) | (string & {}); + + export type WebkitMask<TLength = (string & {}) | 0> = + | Globals + | DataType.Position<TLength> + | DataType.RepeatStyle + | DataType.VisualBox + | "border" + | "content" + | "none" + | "padding" + | "text" + | (string & {}); + + export type WebkitMaskAttachment = Globals | DataType.Attachment | (string & {}); + + export type WebkitMaskClip = Globals | DataType.PaintBox | "border" | "content" | "no-clip" | "padding" | "text" | "view-box" | (string & {}); + + export type WebkitMaskComposite = Globals | DataType.CompositeStyle | (string & {}); + + export type WebkitMaskImage = Globals | "none" | (string & {}); + + export type WebkitMaskOrigin = Globals | DataType.PaintBox | "border" | "content" | "padding" | "view-box" | (string & {}); + + export type WebkitMaskPosition<TLength = (string & {}) | 0> = Globals | DataType.Position<TLength> | (string & {}); + + export type WebkitMaskPositionX<TLength = (string & {}) | 0> = Globals | TLength | "center" | "left" | "right" | (string & {}); + + export type WebkitMaskPositionY<TLength = (string & {}) | 0> = Globals | TLength | "bottom" | "center" | "top" | (string & {}); + + export type WebkitMaskRepeat = Globals | DataType.RepeatStyle | (string & {}); + + export type WebkitMaskRepeatX = Globals | "no-repeat" | "repeat" | "round" | "space"; + + export type WebkitMaskRepeatY = Globals | "no-repeat" | "repeat" | "round" | "space"; + + export type WebkitMaskSize<TLength = (string & {}) | 0> = Globals | DataType.BgSize<TLength> | (string & {}); + + export type WebkitOverflowScrolling = Globals | "auto" | "touch"; + + export type WebkitTapHighlightColor = Globals | DataType.Color; + + export type WebkitTextFillColor = Globals | DataType.Color; + + export type WebkitTextStroke<TLength = (string & {}) | 0> = Globals | DataType.Color | TLength | (string & {}); + + export type WebkitTextStrokeColor = Globals | DataType.Color; + + export type WebkitTextStrokeWidth<TLength = (string & {}) | 0> = Globals | TLength; + + export type WebkitTouchCallout = Globals | "default" | "none"; + + export type WebkitUserModify = Globals | "read-only" | "read-write" | "read-write-plaintext-only"; + + export type WebkitUserSelect = Globals | "all" | "auto" | "none" | "text"; + + export type ColorInterpolation = Globals | "auto" | "linearRGB" | "sRGB"; + + export type ColorRendering = Globals | "auto" | "optimizeQuality" | "optimizeSpeed"; + + export type GlyphOrientationVertical = Globals | "auto" | (string & {}) | (number & {}); +} + +export namespace AtRule { + export interface CounterStyle<TLength = (string & {}) | 0, TTime = string & {}> { + additiveSymbols?: string | undefined; + fallback?: string | undefined; + negative?: string | undefined; + pad?: string | undefined; + prefix?: string | undefined; + range?: Range | undefined; + speakAs?: SpeakAs | undefined; + suffix?: string | undefined; + symbols?: string | undefined; + system?: System | undefined; + } + + export interface CounterStyleHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + "additive-symbols"?: string | undefined; + fallback?: string | undefined; + negative?: string | undefined; + pad?: string | undefined; + prefix?: string | undefined; + range?: Range | undefined; + "speak-as"?: SpeakAs | undefined; + suffix?: string | undefined; + symbols?: string | undefined; + system?: System | undefined; + } + + export type CounterStyleFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<CounterStyle<TLength, TTime>>; + + export type CounterStyleHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<CounterStyleHyphen<TLength, TTime>>; + + export interface FontFace<TLength = (string & {}) | 0, TTime = string & {}> { + MozFontFeatureSettings?: FontFeatureSettings | undefined; + ascentOverride?: AscentOverride | undefined; + descentOverride?: DescentOverride | undefined; + fontDisplay?: FontDisplay | undefined; + fontFamily?: string | undefined; + fontFeatureSettings?: FontFeatureSettings | undefined; + fontStretch?: FontStretch | undefined; + fontStyle?: FontStyle | undefined; + fontVariationSettings?: FontVariationSettings | undefined; + fontWeight?: FontWeight | undefined; + lineGapOverride?: LineGapOverride | undefined; + sizeAdjust?: string | undefined; + src?: string | undefined; + unicodeRange?: string | undefined; + } + + export interface FontFaceHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + "-moz-font-feature-settings"?: FontFeatureSettings | undefined; + "ascent-override"?: AscentOverride | undefined; + "descent-override"?: DescentOverride | undefined; + "font-display"?: FontDisplay | undefined; + "font-family"?: string | undefined; + "font-feature-settings"?: FontFeatureSettings | undefined; + "font-stretch"?: FontStretch | undefined; + "font-style"?: FontStyle | undefined; + "font-variation-settings"?: FontVariationSettings | undefined; + "font-weight"?: FontWeight | undefined; + "line-gap-override"?: LineGapOverride | undefined; + "size-adjust"?: string | undefined; + src?: string | undefined; + "unicode-range"?: string | undefined; + } + + export type FontFaceFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<FontFace<TLength, TTime>>; + + export type FontFaceHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<FontFaceHyphen<TLength, TTime>>; + + export interface FontPaletteValues<TLength = (string & {}) | 0, TTime = string & {}> { + basePalette?: BasePalette | undefined; + fontFamily?: string | undefined; + overrideColors?: string | undefined; + } + + export interface FontPaletteValuesHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + "base-palette"?: BasePalette | undefined; + "font-family"?: string | undefined; + "override-colors"?: string | undefined; + } + + export type FontPaletteValuesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<FontPaletteValues<TLength, TTime>>; + + export type FontPaletteValuesHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<FontPaletteValuesHyphen<TLength, TTime>>; + + export interface Page<TLength = (string & {}) | 0, TTime = string & {}> { + bleed?: Bleed<TLength> | undefined; + marks?: Marks | undefined; + pageOrientation?: PageOrientation | undefined; + size?: Size<TLength> | undefined; + } + + export interface PageHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + bleed?: Bleed<TLength> | undefined; + marks?: Marks | undefined; + "page-orientation"?: PageOrientation | undefined; + size?: Size<TLength> | undefined; + } + + export type PageFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<Page<TLength, TTime>>; + + export type PageHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<PageHyphen<TLength, TTime>>; + + export interface Property<TLength = (string & {}) | 0, TTime = string & {}> { + inherits?: Inherits | undefined; + initialValue?: string | undefined; + syntax?: string | undefined; + } + + export interface PropertyHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + inherits?: Inherits | undefined; + "initial-value"?: string | undefined; + syntax?: string | undefined; + } + + export type PropertyFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<Property<TLength, TTime>>; + + export type PropertyHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<PropertyHyphen<TLength, TTime>>; + + export interface ViewTransition<TLength = (string & {}) | 0, TTime = string & {}> { + navigation?: Navigation | undefined; + types?: Types | undefined; + } + + export interface ViewTransitionHyphen<TLength = (string & {}) | 0, TTime = string & {}> { + navigation?: Navigation | undefined; + types?: Types | undefined; + } + + export type ViewTransitionFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<ViewTransition<TLength, TTime>>; + + export type ViewTransitionHyphenFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<ViewTransitionHyphen<TLength, TTime>>; + + type Range = "auto" | (string & {}); + + type SpeakAs = "auto" | "bullets" | "numbers" | "spell-out" | "words" | (string & {}); + + type System = "additive" | "alphabetic" | "cyclic" | "fixed" | "numeric" | "symbolic" | (string & {}); + + type FontFeatureSettings = "normal" | (string & {}); + + type AscentOverride = "normal" | (string & {}); + + type DescentOverride = "normal" | (string & {}); + + type FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap"; + + type FontStretch = DataType.FontStretchAbsolute | (string & {}); + + type FontStyle = "italic" | "normal" | "oblique" | (string & {}); + + type FontVariationSettings = "normal" | (string & {}); + + type FontWeight = DataType.FontWeightAbsolute | (string & {}); + + type LineGapOverride = "normal" | (string & {}); + + type BasePalette = "dark" | "light" | (number & {}) | (string & {}); + + type Bleed<TLength> = TLength | "auto"; + + type Marks = "crop" | "cross" | "none" | (string & {}); + + type PageOrientation = "rotate-left" | "rotate-right" | "upright"; + + type Size<TLength> = DataType.PageSize | TLength | "auto" | "landscape" | "portrait" | (string & {}); + + type Inherits = "false" | "true"; + + type Navigation = "auto" | "none"; + + type Types = "none" | (string & {}); +} + +/** + * **Attention!** Data types receives its name from the spec. E.g. `<color>` becomes `DataType.Color` and + * `<content-distribution>` becomes `DataType.ContentDistribution`. It happens quite frequent that these data types + * are split into several data types or/and name changes as the spec develops. So there's a risk that a minor/patch + * update from `csstype` can break your typing if you're using the `DataType` namespace. + */ +export namespace DataType { + type AbsoluteSize = "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large"; + + type AnimateableFeature = "contents" | "scroll-position" | (string & {}); + + type Attachment = "fixed" | "local" | "scroll"; + + type Autospace = "ideograph-alpha" | "ideograph-numeric" | "insert" | "no-autospace" | "punctuation" | "replace" | (string & {}); + + type BgClip = VisualBox | "border-area" | "text"; + + type BgLayer<TLength> = BgPosition<TLength> | RepeatStyle | Attachment | VisualBox | "none" | (string & {}); + + type BgPosition<TLength> = TLength | "bottom" | "center" | "left" | "right" | "top" | (string & {}); + + type BgSize<TLength> = TLength | "auto" | "contain" | "cover" | (string & {}); + + type BlendMode = + | "color" + | "color-burn" + | "color-dodge" + | "darken" + | "difference" + | "exclusion" + | "hard-light" + | "hue" + | "lighten" + | "luminosity" + | "multiply" + | "normal" + | "overlay" + | "saturation" + | "screen" + | "soft-light"; + + type Color = ColorBase | SystemColor | DeprecatedSystemColor | "currentColor" | (string & {}); + + type ColorBase = NamedColor | "transparent" | (string & {}); + + type CompatAuto = "button" | "checkbox" | "listbox" | "menulist" | "meter" | "progress-bar" | "radio" | "searchfield" | "textarea"; + + type CompositeStyle = + | "clear" + | "copy" + | "destination-atop" + | "destination-in" + | "destination-out" + | "destination-over" + | "source-atop" + | "source-in" + | "source-out" + | "source-over" + | "xor"; + + type CompositingOperator = "add" | "exclude" | "intersect" | "subtract"; + + type ContentDistribution = "space-around" | "space-between" | "space-evenly" | "stretch"; + + type ContentPosition = "center" | "end" | "flex-end" | "flex-start" | "start"; + + type CubicBezierEasingFunction = "ease" | "ease-in" | "ease-in-out" | "ease-out" | (string & {}); + + type CursorPredefined = + | "-moz-grab" + | "-moz-zoom-in" + | "-moz-zoom-out" + | "-webkit-grab" + | "-webkit-grabbing" + | "-webkit-zoom-in" + | "-webkit-zoom-out" + | "alias" + | "all-scroll" + | "auto" + | "cell" + | "col-resize" + | "context-menu" + | "copy" + | "crosshair" + | "default" + | "e-resize" + | "ew-resize" + | "grab" + | "grabbing" + | "help" + | "move" + | "n-resize" + | "ne-resize" + | "nesw-resize" + | "no-drop" + | "none" + | "not-allowed" + | "ns-resize" + | "nw-resize" + | "nwse-resize" + | "pointer" + | "progress" + | "row-resize" + | "s-resize" + | "se-resize" + | "sw-resize" + | "text" + | "vertical-text" + | "w-resize" + | "wait" + | "zoom-in" + | "zoom-out"; + + type Dasharray<TLength> = TLength | (string & {}) | (number & {}); + + type DeprecatedSystemColor = + | "ActiveBorder" + | "ActiveCaption" + | "AppWorkspace" + | "Background" + | "ButtonHighlight" + | "ButtonShadow" + | "CaptionText" + | "InactiveBorder" + | "InactiveCaption" + | "InactiveCaptionText" + | "InfoBackground" + | "InfoText" + | "Menu" + | "MenuText" + | "Scrollbar" + | "ThreeDDarkShadow" + | "ThreeDFace" + | "ThreeDHighlight" + | "ThreeDLightShadow" + | "ThreeDShadow" + | "Window" + | "WindowFrame" + | "WindowText"; + + type DisplayInside = "-ms-flexbox" | "-ms-grid" | "-webkit-flex" | "flex" | "flow" | "flow-root" | "grid" | "ruby" | "table"; + + type DisplayInternal = + | "ruby-base" + | "ruby-base-container" + | "ruby-text" + | "ruby-text-container" + | "table-caption" + | "table-cell" + | "table-column" + | "table-column-group" + | "table-footer-group" + | "table-header-group" + | "table-row" + | "table-row-group"; + + type DisplayLegacy = "-ms-inline-flexbox" | "-ms-inline-grid" | "-webkit-inline-flex" | "inline-block" | "inline-flex" | "inline-grid" | "inline-list-item" | "inline-table"; + + type DisplayOutside = "block" | "inline" | "run-in"; + + type EasingFunction = CubicBezierEasingFunction | StepEasingFunction | "linear" | (string & {}); + + type EastAsianVariantValues = "jis04" | "jis78" | "jis83" | "jis90" | "simplified" | "traditional"; + + type FinalBgLayer<TLength> = BgPosition<TLength> | RepeatStyle | Attachment | VisualBox | Color | "none" | (string & {}); + + type FontStretchAbsolute = + | "condensed" + | "expanded" + | "extra-condensed" + | "extra-expanded" + | "normal" + | "semi-condensed" + | "semi-expanded" + | "ultra-condensed" + | "ultra-expanded" + | (string & {}); + + type FontWeightAbsolute = "bold" | "normal" | (number & {}) | (string & {}); + + type GenericComplete = "-apple-system" | "cursive" | "fantasy" | "math" | "monospace" | "sans-serif" | "serif" | "system-ui"; + + type GenericFamily = GenericComplete | GenericIncomplete | "emoji" | "fangsong"; + + type GenericIncomplete = "ui-monospace" | "ui-rounded" | "ui-sans-serif" | "ui-serif"; + + type GeometryBox = VisualBox | "fill-box" | "margin-box" | "stroke-box" | "view-box"; + + type GridLine = "auto" | (string & {}) | (number & {}); + + type LineStyle = "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid"; + + type LineWidth<TLength> = TLength | "medium" | "thick" | "thin"; + + type MaskLayer<TLength> = Position<TLength> | RepeatStyle | GeometryBox | CompositingOperator | MaskingMode | "no-clip" | "none" | (string & {}); + + type MaskingMode = "alpha" | "luminance" | "match-source"; + + type NamedColor = + | "aliceblue" + | "antiquewhite" + | "aqua" + | "aquamarine" + | "azure" + | "beige" + | "bisque" + | "black" + | "blanchedalmond" + | "blue" + | "blueviolet" + | "brown" + | "burlywood" + | "cadetblue" + | "chartreuse" + | "chocolate" + | "coral" + | "cornflowerblue" + | "cornsilk" + | "crimson" + | "cyan" + | "darkblue" + | "darkcyan" + | "darkgoldenrod" + | "darkgray" + | "darkgreen" + | "darkgrey" + | "darkkhaki" + | "darkmagenta" + | "darkolivegreen" + | "darkorange" + | "darkorchid" + | "darkred" + | "darksalmon" + | "darkseagreen" + | "darkslateblue" + | "darkslategray" + | "darkslategrey" + | "darkturquoise" + | "darkviolet" + | "deeppink" + | "deepskyblue" + | "dimgray" + | "dimgrey" + | "dodgerblue" + | "firebrick" + | "floralwhite" + | "forestgreen" + | "fuchsia" + | "gainsboro" + | "ghostwhite" + | "gold" + | "goldenrod" + | "gray" + | "green" + | "greenyellow" + | "grey" + | "honeydew" + | "hotpink" + | "indianred" + | "indigo" + | "ivory" + | "khaki" + | "lavender" + | "lavenderblush" + | "lawngreen" + | "lemonchiffon" + | "lightblue" + | "lightcoral" + | "lightcyan" + | "lightgoldenrodyellow" + | "lightgray" + | "lightgreen" + | "lightgrey" + | "lightpink" + | "lightsalmon" + | "lightseagreen" + | "lightskyblue" + | "lightslategray" + | "lightslategrey" + | "lightsteelblue" + | "lightyellow" + | "lime" + | "limegreen" + | "linen" + | "magenta" + | "maroon" + | "mediumaquamarine" + | "mediumblue" + | "mediumorchid" + | "mediumpurple" + | "mediumseagreen" + | "mediumslateblue" + | "mediumspringgreen" + | "mediumturquoise" + | "mediumvioletred" + | "midnightblue" + | "mintcream" + | "mistyrose" + | "moccasin" + | "navajowhite" + | "navy" + | "oldlace" + | "olive" + | "olivedrab" + | "orange" + | "orangered" + | "orchid" + | "palegoldenrod" + | "palegreen" + | "paleturquoise" + | "palevioletred" + | "papayawhip" + | "peachpuff" + | "peru" + | "pink" + | "plum" + | "powderblue" + | "purple" + | "rebeccapurple" + | "red" + | "rosybrown" + | "royalblue" + | "saddlebrown" + | "salmon" + | "sandybrown" + | "seagreen" + | "seashell" + | "sienna" + | "silver" + | "skyblue" + | "slateblue" + | "slategray" + | "slategrey" + | "snow" + | "springgreen" + | "steelblue" + | "tan" + | "teal" + | "thistle" + | "tomato" + | "turquoise" + | "violet" + | "wheat" + | "white" + | "whitesmoke" + | "yellow" + | "yellowgreen"; + + type OutlineLineStyle = "dashed" | "dotted" | "double" | "groove" | "inset" | "none" | "outset" | "ridge" | "solid"; + + type PageSize = "A3" | "A4" | "A5" | "B4" | "B5" | "JIS-B4" | "JIS-B5" | "ledger" | "legal" | "letter"; + + type Paint = Color | "context-fill" | "context-stroke" | "none" | (string & {}); + + type PaintBox = VisualBox | "fill-box" | "stroke-box"; + + type Position<TLength> = TLength | "bottom" | "center" | "left" | "right" | "top" | (string & {}); + + type PositionArea = + | "block-end" + | "block-start" + | "bottom" + | "center" + | "end" + | "inline-end" + | "inline-start" + | "left" + | "right" + | "self-block-end" + | "self-block-start" + | "self-end" + | "self-inline-end" + | "self-inline-start" + | "self-start" + | "span-all" + | "span-block-end" + | "span-block-start" + | "span-bottom" + | "span-end" + | "span-inline-end" + | "span-inline-start" + | "span-left" + | "span-right" + | "span-self-block-end" + | "span-self-block-start" + | "span-self-end" + | "span-self-inline-end" + | "span-self-inline-start" + | "span-self-start" + | "span-start" + | "span-top" + | "span-x-end" + | "span-x-self-end" + | "span-x-self-start" + | "span-x-start" + | "span-y-end" + | "span-y-self-end" + | "span-y-self-start" + | "span-y-start" + | "start" + | "top" + | "x-end" + | "x-self-end" + | "x-self-start" + | "x-start" + | "y-end" + | "y-self-end" + | "y-self-start" + | "y-start" + | (string & {}); + + type Quote = "close-quote" | "no-close-quote" | "no-open-quote" | "open-quote"; + + type RepeatStyle = "no-repeat" | "repeat" | "repeat-x" | "repeat-y" | "round" | "space" | (string & {}); + + type SelfPosition = "center" | "end" | "flex-end" | "flex-start" | "self-end" | "self-start" | "start"; + + type SingleAnimation<TTime> = + | EasingFunction + | SingleAnimationDirection + | SingleAnimationFillMode + | SingleAnimationTimeline + | TTime + | "auto" + | "infinite" + | "none" + | "paused" + | "running" + | (string & {}) + | (number & {}); + + type SingleAnimationComposition = "accumulate" | "add" | "replace"; + + type SingleAnimationDirection = "alternate" | "alternate-reverse" | "normal" | "reverse"; + + type SingleAnimationFillMode = "backwards" | "both" | "forwards" | "none"; + + type SingleAnimationTimeline = "auto" | "none" | (string & {}); + + type SingleTransition<TTime> = EasingFunction | TTime | "all" | "allow-discrete" | "none" | "normal" | (string & {}); + + type StepEasingFunction = "step-end" | "step-start" | (string & {}); + + type SystemColor = + | "AccentColor" + | "AccentColorText" + | "ActiveText" + | "ButtonBorder" + | "ButtonFace" + | "ButtonText" + | "Canvas" + | "CanvasText" + | "Field" + | "FieldText" + | "GrayText" + | "Highlight" + | "HighlightText" + | "LinkText" + | "Mark" + | "MarkText" + | "SelectedItem" + | "SelectedItemText" + | "VisitedText"; + + type SystemFamilyName = "caption" | "icon" | "menu" | "message-box" | "small-caption" | "status-bar"; + + type TextEdge = "cap" | "ex" | "ideographic" | "ideographic-ink" | "text" | (string & {}); + + type TimelineRangeName = "contain" | "cover" | "entry" | "entry-crossing" | "exit" | "exit-crossing"; + + type TrackBreadth<TLength> = TLength | "auto" | "max-content" | "min-content" | (string & {}); + + type TrySize = "most-block-size" | "most-height" | "most-inline-size" | "most-width"; + + type TryTactic = "flip-block" | "flip-inline" | "flip-start" | (string & {}); + + type VisualBox = "border-box" | "content-box" | "padding-box"; +} diff --git a/node_modules/csstype/index.js.flow b/node_modules/csstype/index.js.flow new file mode 100644 index 0000000..49c11d1 --- /dev/null +++ b/node_modules/csstype/index.js.flow @@ -0,0 +1,6863 @@ +// @flow strict + +export type StandardLonghandProperties<TLength = string | 0, TTime = string> = {| + accentColor?: Property$AccentColor, + alignContent?: Property$AlignContent, + alignItems?: Property$AlignItems, + alignSelf?: Property$AlignSelf, + alignTracks?: Property$AlignTracks, + alignmentBaseline?: Property$AlignmentBaseline, + anchorName?: Property$AnchorName, + anchorScope?: Property$AnchorScope, + animationComposition?: Property$AnimationComposition, + animationDelay?: Property$AnimationDelay<TTime>, + animationDirection?: Property$AnimationDirection, + animationDuration?: Property$AnimationDuration<TTime>, + animationFillMode?: Property$AnimationFillMode, + animationIterationCount?: Property$AnimationIterationCount, + animationName?: Property$AnimationName, + animationPlayState?: Property$AnimationPlayState, + animationRangeEnd?: Property$AnimationRangeEnd<TLength>, + animationRangeStart?: Property$AnimationRangeStart<TLength>, + animationTimeline?: Property$AnimationTimeline, + animationTimingFunction?: Property$AnimationTimingFunction, + appearance?: Property$Appearance, + aspectRatio?: Property$AspectRatio, + backdropFilter?: Property$BackdropFilter, + backfaceVisibility?: Property$BackfaceVisibility, + backgroundAttachment?: Property$BackgroundAttachment, + backgroundBlendMode?: Property$BackgroundBlendMode, + backgroundClip?: Property$BackgroundClip, + backgroundColor?: Property$BackgroundColor, + backgroundImage?: Property$BackgroundImage, + backgroundOrigin?: Property$BackgroundOrigin, + backgroundPositionX?: Property$BackgroundPositionX<TLength>, + backgroundPositionY?: Property$BackgroundPositionY<TLength>, + backgroundRepeat?: Property$BackgroundRepeat, + backgroundSize?: Property$BackgroundSize<TLength>, + baselineShift?: Property$BaselineShift<TLength>, + blockSize?: Property$BlockSize<TLength>, + borderBlockEndColor?: Property$BorderBlockEndColor, + borderBlockEndStyle?: Property$BorderBlockEndStyle, + borderBlockEndWidth?: Property$BorderBlockEndWidth<TLength>, + borderBlockStartColor?: Property$BorderBlockStartColor, + borderBlockStartStyle?: Property$BorderBlockStartStyle, + borderBlockStartWidth?: Property$BorderBlockStartWidth<TLength>, + borderBottomColor?: Property$BorderBottomColor, + borderBottomLeftRadius?: Property$BorderBottomLeftRadius<TLength>, + borderBottomRightRadius?: Property$BorderBottomRightRadius<TLength>, + borderBottomStyle?: Property$BorderBottomStyle, + borderBottomWidth?: Property$BorderBottomWidth<TLength>, + borderCollapse?: Property$BorderCollapse, + borderEndEndRadius?: Property$BorderEndEndRadius<TLength>, + borderEndStartRadius?: Property$BorderEndStartRadius<TLength>, + borderImageOutset?: Property$BorderImageOutset<TLength>, + borderImageRepeat?: Property$BorderImageRepeat, + borderImageSlice?: Property$BorderImageSlice, + borderImageSource?: Property$BorderImageSource, + borderImageWidth?: Property$BorderImageWidth<TLength>, + borderInlineEndColor?: Property$BorderInlineEndColor, + borderInlineEndStyle?: Property$BorderInlineEndStyle, + borderInlineEndWidth?: Property$BorderInlineEndWidth<TLength>, + borderInlineStartColor?: Property$BorderInlineStartColor, + borderInlineStartStyle?: Property$BorderInlineStartStyle, + borderInlineStartWidth?: Property$BorderInlineStartWidth<TLength>, + borderLeftColor?: Property$BorderLeftColor, + borderLeftStyle?: Property$BorderLeftStyle, + borderLeftWidth?: Property$BorderLeftWidth<TLength>, + borderRightColor?: Property$BorderRightColor, + borderRightStyle?: Property$BorderRightStyle, + borderRightWidth?: Property$BorderRightWidth<TLength>, + borderSpacing?: Property$BorderSpacing<TLength>, + borderStartEndRadius?: Property$BorderStartEndRadius<TLength>, + borderStartStartRadius?: Property$BorderStartStartRadius<TLength>, + borderTopColor?: Property$BorderTopColor, + borderTopLeftRadius?: Property$BorderTopLeftRadius<TLength>, + borderTopRightRadius?: Property$BorderTopRightRadius<TLength>, + borderTopStyle?: Property$BorderTopStyle, + borderTopWidth?: Property$BorderTopWidth<TLength>, + bottom?: Property$Bottom<TLength>, + boxDecorationBreak?: Property$BoxDecorationBreak, + boxShadow?: Property$BoxShadow, + boxSizing?: Property$BoxSizing, + breakAfter?: Property$BreakAfter, + breakBefore?: Property$BreakBefore, + breakInside?: Property$BreakInside, + captionSide?: Property$CaptionSide, + caretColor?: Property$CaretColor, + caretShape?: Property$CaretShape, + clear?: Property$Clear, + clipPath?: Property$ClipPath, + clipRule?: Property$ClipRule, + color?: Property$Color, + colorAdjust?: Property$PrintColorAdjust, + colorInterpolationFilters?: Property$ColorInterpolationFilters, + colorScheme?: Property$ColorScheme, + columnCount?: Property$ColumnCount, + columnFill?: Property$ColumnFill, + columnGap?: Property$ColumnGap<TLength>, + columnRuleColor?: Property$ColumnRuleColor, + columnRuleStyle?: Property$ColumnRuleStyle, + columnRuleWidth?: Property$ColumnRuleWidth<TLength>, + columnSpan?: Property$ColumnSpan, + columnWidth?: Property$ColumnWidth<TLength>, + contain?: Property$Contain, + containIntrinsicBlockSize?: Property$ContainIntrinsicBlockSize<TLength>, + containIntrinsicHeight?: Property$ContainIntrinsicHeight<TLength>, + containIntrinsicInlineSize?: Property$ContainIntrinsicInlineSize<TLength>, + containIntrinsicWidth?: Property$ContainIntrinsicWidth<TLength>, + containerName?: Property$ContainerName, + containerType?: Property$ContainerType, + content?: Property$Content, + contentVisibility?: Property$ContentVisibility, + counterIncrement?: Property$CounterIncrement, + counterReset?: Property$CounterReset, + counterSet?: Property$CounterSet, + cursor?: Property$Cursor, + cx?: Property$Cx<TLength>, + cy?: Property$Cy<TLength>, + d?: Property$D, + direction?: Property$Direction, + display?: Property$Display, + dominantBaseline?: Property$DominantBaseline, + emptyCells?: Property$EmptyCells, + fieldSizing?: Property$FieldSizing, + fill?: Property$Fill, + fillOpacity?: Property$FillOpacity, + fillRule?: Property$FillRule, + filter?: Property$Filter, + flexBasis?: Property$FlexBasis<TLength>, + flexDirection?: Property$FlexDirection, + flexGrow?: Property$FlexGrow, + flexShrink?: Property$FlexShrink, + flexWrap?: Property$FlexWrap, + float?: Property$Float, + floodColor?: Property$FloodColor, + floodOpacity?: Property$FloodOpacity, + fontFamily?: Property$FontFamily, + fontFeatureSettings?: Property$FontFeatureSettings, + fontKerning?: Property$FontKerning, + fontLanguageOverride?: Property$FontLanguageOverride, + fontOpticalSizing?: Property$FontOpticalSizing, + fontPalette?: Property$FontPalette, + fontSize?: Property$FontSize<TLength>, + fontSizeAdjust?: Property$FontSizeAdjust, + fontSmooth?: Property$FontSmooth<TLength>, + fontStyle?: Property$FontStyle, + fontSynthesis?: Property$FontSynthesis, + fontSynthesisPosition?: Property$FontSynthesisPosition, + fontSynthesisSmallCaps?: Property$FontSynthesisSmallCaps, + fontSynthesisStyle?: Property$FontSynthesisStyle, + fontSynthesisWeight?: Property$FontSynthesisWeight, + fontVariant?: Property$FontVariant, + fontVariantAlternates?: Property$FontVariantAlternates, + fontVariantCaps?: Property$FontVariantCaps, + fontVariantEastAsian?: Property$FontVariantEastAsian, + fontVariantEmoji?: Property$FontVariantEmoji, + fontVariantLigatures?: Property$FontVariantLigatures, + fontVariantNumeric?: Property$FontVariantNumeric, + fontVariantPosition?: Property$FontVariantPosition, + fontVariationSettings?: Property$FontVariationSettings, + fontWeight?: Property$FontWeight, + fontWidth?: Property$FontWidth, + forcedColorAdjust?: Property$ForcedColorAdjust, + gridAutoColumns?: Property$GridAutoColumns<TLength>, + gridAutoFlow?: Property$GridAutoFlow, + gridAutoRows?: Property$GridAutoRows<TLength>, + gridColumnEnd?: Property$GridColumnEnd, + gridColumnStart?: Property$GridColumnStart, + gridRowEnd?: Property$GridRowEnd, + gridRowStart?: Property$GridRowStart, + gridTemplateAreas?: Property$GridTemplateAreas, + gridTemplateColumns?: Property$GridTemplateColumns<TLength>, + gridTemplateRows?: Property$GridTemplateRows<TLength>, + hangingPunctuation?: Property$HangingPunctuation, + height?: Property$Height<TLength>, + hyphenateCharacter?: Property$HyphenateCharacter, + hyphenateLimitChars?: Property$HyphenateLimitChars, + hyphens?: Property$Hyphens, + imageOrientation?: Property$ImageOrientation, + imageRendering?: Property$ImageRendering, + imageResolution?: Property$ImageResolution, + initialLetter?: Property$InitialLetter, + initialLetterAlign?: Property$InitialLetterAlign, + inlineSize?: Property$InlineSize<TLength>, + insetBlockEnd?: Property$InsetBlockEnd<TLength>, + insetBlockStart?: Property$InsetBlockStart<TLength>, + insetInlineEnd?: Property$InsetInlineEnd<TLength>, + insetInlineStart?: Property$InsetInlineStart<TLength>, + interpolateSize?: Property$InterpolateSize, + isolation?: Property$Isolation, + justifyContent?: Property$JustifyContent, + justifyItems?: Property$JustifyItems, + justifySelf?: Property$JustifySelf, + justifyTracks?: Property$JustifyTracks, + left?: Property$Left<TLength>, + letterSpacing?: Property$LetterSpacing<TLength>, + lightingColor?: Property$LightingColor, + lineBreak?: Property$LineBreak, + lineHeight?: Property$LineHeight<TLength>, + lineHeightStep?: Property$LineHeightStep<TLength>, + listStyleImage?: Property$ListStyleImage, + listStylePosition?: Property$ListStylePosition, + listStyleType?: Property$ListStyleType, + marginBlockEnd?: Property$MarginBlockEnd<TLength>, + marginBlockStart?: Property$MarginBlockStart<TLength>, + marginBottom?: Property$MarginBottom<TLength>, + marginInlineEnd?: Property$MarginInlineEnd<TLength>, + marginInlineStart?: Property$MarginInlineStart<TLength>, + marginLeft?: Property$MarginLeft<TLength>, + marginRight?: Property$MarginRight<TLength>, + marginTop?: Property$MarginTop<TLength>, + marginTrim?: Property$MarginTrim, + marker?: Property$Marker, + markerEnd?: Property$MarkerEnd, + markerMid?: Property$MarkerMid, + markerStart?: Property$MarkerStart, + maskBorderMode?: Property$MaskBorderMode, + maskBorderOutset?: Property$MaskBorderOutset<TLength>, + maskBorderRepeat?: Property$MaskBorderRepeat, + maskBorderSlice?: Property$MaskBorderSlice, + maskBorderSource?: Property$MaskBorderSource, + maskBorderWidth?: Property$MaskBorderWidth<TLength>, + maskClip?: Property$MaskClip, + maskComposite?: Property$MaskComposite, + maskImage?: Property$MaskImage, + maskMode?: Property$MaskMode, + maskOrigin?: Property$MaskOrigin, + maskPosition?: Property$MaskPosition<TLength>, + maskRepeat?: Property$MaskRepeat, + maskSize?: Property$MaskSize<TLength>, + maskType?: Property$MaskType, + masonryAutoFlow?: Property$MasonryAutoFlow, + mathDepth?: Property$MathDepth, + mathShift?: Property$MathShift, + mathStyle?: Property$MathStyle, + maxBlockSize?: Property$MaxBlockSize<TLength>, + maxHeight?: Property$MaxHeight<TLength>, + maxInlineSize?: Property$MaxInlineSize<TLength>, + maxLines?: Property$MaxLines, + maxWidth?: Property$MaxWidth<TLength>, + minBlockSize?: Property$MinBlockSize<TLength>, + minHeight?: Property$MinHeight<TLength>, + minInlineSize?: Property$MinInlineSize<TLength>, + minWidth?: Property$MinWidth<TLength>, + mixBlendMode?: Property$MixBlendMode, + motionDistance?: Property$OffsetDistance<TLength>, + motionPath?: Property$OffsetPath, + motionRotation?: Property$OffsetRotate, + objectFit?: Property$ObjectFit, + objectPosition?: Property$ObjectPosition<TLength>, + objectViewBox?: Property$ObjectViewBox, + offsetAnchor?: Property$OffsetAnchor<TLength>, + offsetDistance?: Property$OffsetDistance<TLength>, + offsetPath?: Property$OffsetPath, + offsetPosition?: Property$OffsetPosition<TLength>, + offsetRotate?: Property$OffsetRotate, + offsetRotation?: Property$OffsetRotate, + opacity?: Property$Opacity, + order?: Property$Order, + orphans?: Property$Orphans, + outlineColor?: Property$OutlineColor, + outlineOffset?: Property$OutlineOffset<TLength>, + outlineStyle?: Property$OutlineStyle, + outlineWidth?: Property$OutlineWidth<TLength>, + overflowAnchor?: Property$OverflowAnchor, + overflowBlock?: Property$OverflowBlock, + overflowClipBox?: Property$OverflowClipBox, + overflowClipMargin?: Property$OverflowClipMargin<TLength>, + overflowInline?: Property$OverflowInline, + overflowWrap?: Property$OverflowWrap, + overflowX?: Property$OverflowX, + overflowY?: Property$OverflowY, + overlay?: Property$Overlay, + overscrollBehaviorBlock?: Property$OverscrollBehaviorBlock, + overscrollBehaviorInline?: Property$OverscrollBehaviorInline, + overscrollBehaviorX?: Property$OverscrollBehaviorX, + overscrollBehaviorY?: Property$OverscrollBehaviorY, + paddingBlockEnd?: Property$PaddingBlockEnd<TLength>, + paddingBlockStart?: Property$PaddingBlockStart<TLength>, + paddingBottom?: Property$PaddingBottom<TLength>, + paddingInlineEnd?: Property$PaddingInlineEnd<TLength>, + paddingInlineStart?: Property$PaddingInlineStart<TLength>, + paddingLeft?: Property$PaddingLeft<TLength>, + paddingRight?: Property$PaddingRight<TLength>, + paddingTop?: Property$PaddingTop<TLength>, + page?: Property$Page, + paintOrder?: Property$PaintOrder, + perspective?: Property$Perspective<TLength>, + perspectiveOrigin?: Property$PerspectiveOrigin<TLength>, + pointerEvents?: Property$PointerEvents, + position?: Property$Position, + positionAnchor?: Property$PositionAnchor, + positionArea?: Property$PositionArea, + positionTryFallbacks?: Property$PositionTryFallbacks, + positionTryOrder?: Property$PositionTryOrder, + positionVisibility?: Property$PositionVisibility, + printColorAdjust?: Property$PrintColorAdjust, + quotes?: Property$Quotes, + r?: Property$R<TLength>, + resize?: Property$Resize, + right?: Property$Right<TLength>, + rotate?: Property$Rotate, + rowGap?: Property$RowGap<TLength>, + rubyAlign?: Property$RubyAlign, + rubyMerge?: Property$RubyMerge, + rubyOverhang?: Property$RubyOverhang, + rubyPosition?: Property$RubyPosition, + rx?: Property$Rx<TLength>, + ry?: Property$Ry<TLength>, + scale?: Property$Scale, + scrollBehavior?: Property$ScrollBehavior, + scrollInitialTarget?: Property$ScrollInitialTarget, + scrollMarginBlockEnd?: Property$ScrollMarginBlockEnd<TLength>, + scrollMarginBlockStart?: Property$ScrollMarginBlockStart<TLength>, + scrollMarginBottom?: Property$ScrollMarginBottom<TLength>, + scrollMarginInlineEnd?: Property$ScrollMarginInlineEnd<TLength>, + scrollMarginInlineStart?: Property$ScrollMarginInlineStart<TLength>, + scrollMarginLeft?: Property$ScrollMarginLeft<TLength>, + scrollMarginRight?: Property$ScrollMarginRight<TLength>, + scrollMarginTop?: Property$ScrollMarginTop<TLength>, + scrollPaddingBlockEnd?: Property$ScrollPaddingBlockEnd<TLength>, + scrollPaddingBlockStart?: Property$ScrollPaddingBlockStart<TLength>, + scrollPaddingBottom?: Property$ScrollPaddingBottom<TLength>, + scrollPaddingInlineEnd?: Property$ScrollPaddingInlineEnd<TLength>, + scrollPaddingInlineStart?: Property$ScrollPaddingInlineStart<TLength>, + scrollPaddingLeft?: Property$ScrollPaddingLeft<TLength>, + scrollPaddingRight?: Property$ScrollPaddingRight<TLength>, + scrollPaddingTop?: Property$ScrollPaddingTop<TLength>, + scrollSnapAlign?: Property$ScrollSnapAlign, + scrollSnapMarginBottom?: Property$ScrollMarginBottom<TLength>, + scrollSnapMarginLeft?: Property$ScrollMarginLeft<TLength>, + scrollSnapMarginRight?: Property$ScrollMarginRight<TLength>, + scrollSnapMarginTop?: Property$ScrollMarginTop<TLength>, + scrollSnapStop?: Property$ScrollSnapStop, + scrollSnapType?: Property$ScrollSnapType, + scrollTimelineAxis?: Property$ScrollTimelineAxis, + scrollTimelineName?: Property$ScrollTimelineName, + scrollbarColor?: Property$ScrollbarColor, + scrollbarGutter?: Property$ScrollbarGutter, + scrollbarWidth?: Property$ScrollbarWidth, + shapeImageThreshold?: Property$ShapeImageThreshold, + shapeMargin?: Property$ShapeMargin<TLength>, + shapeOutside?: Property$ShapeOutside, + shapeRendering?: Property$ShapeRendering, + speakAs?: Property$SpeakAs, + stopColor?: Property$StopColor, + stopOpacity?: Property$StopOpacity, + stroke?: Property$Stroke, + strokeColor?: Property$StrokeColor, + strokeDasharray?: Property$StrokeDasharray<TLength>, + strokeDashoffset?: Property$StrokeDashoffset<TLength>, + strokeLinecap?: Property$StrokeLinecap, + strokeLinejoin?: Property$StrokeLinejoin, + strokeMiterlimit?: Property$StrokeMiterlimit, + strokeOpacity?: Property$StrokeOpacity, + strokeWidth?: Property$StrokeWidth<TLength>, + tabSize?: Property$TabSize<TLength>, + tableLayout?: Property$TableLayout, + textAlign?: Property$TextAlign, + textAlignLast?: Property$TextAlignLast, + textAnchor?: Property$TextAnchor, + textAutospace?: Property$TextAutospace, + textBox?: Property$TextBox, + textBoxEdge?: Property$TextBoxEdge, + textBoxTrim?: Property$TextBoxTrim, + textCombineUpright?: Property$TextCombineUpright, + textDecorationColor?: Property$TextDecorationColor, + textDecorationLine?: Property$TextDecorationLine, + textDecorationSkip?: Property$TextDecorationSkip, + textDecorationSkipInk?: Property$TextDecorationSkipInk, + textDecorationStyle?: Property$TextDecorationStyle, + textDecorationThickness?: Property$TextDecorationThickness<TLength>, + textEmphasisColor?: Property$TextEmphasisColor, + textEmphasisPosition?: Property$TextEmphasisPosition, + textEmphasisStyle?: Property$TextEmphasisStyle, + textIndent?: Property$TextIndent<TLength>, + textJustify?: Property$TextJustify, + textOrientation?: Property$TextOrientation, + textOverflow?: Property$TextOverflow, + textRendering?: Property$TextRendering, + textShadow?: Property$TextShadow, + textSizeAdjust?: Property$TextSizeAdjust, + textSpacingTrim?: Property$TextSpacingTrim, + textTransform?: Property$TextTransform, + textUnderlineOffset?: Property$TextUnderlineOffset<TLength>, + textUnderlinePosition?: Property$TextUnderlinePosition, + textWrapMode?: Property$TextWrapMode, + textWrapStyle?: Property$TextWrapStyle, + timelineScope?: Property$TimelineScope, + top?: Property$Top<TLength>, + touchAction?: Property$TouchAction, + transform?: Property$Transform, + transformBox?: Property$TransformBox, + transformOrigin?: Property$TransformOrigin<TLength>, + transformStyle?: Property$TransformStyle, + transitionBehavior?: Property$TransitionBehavior, + transitionDelay?: Property$TransitionDelay<TTime>, + transitionDuration?: Property$TransitionDuration<TTime>, + transitionProperty?: Property$TransitionProperty, + transitionTimingFunction?: Property$TransitionTimingFunction, + translate?: Property$Translate<TLength>, + unicodeBidi?: Property$UnicodeBidi, + userSelect?: Property$UserSelect, + vectorEffect?: Property$VectorEffect, + verticalAlign?: Property$VerticalAlign<TLength>, + viewTimelineAxis?: Property$ViewTimelineAxis, + viewTimelineInset?: Property$ViewTimelineInset<TLength>, + viewTimelineName?: Property$ViewTimelineName, + viewTransitionClass?: Property$ViewTransitionClass, + viewTransitionName?: Property$ViewTransitionName, + visibility?: Property$Visibility, + whiteSpace?: Property$WhiteSpace, + whiteSpaceCollapse?: Property$WhiteSpaceCollapse, + widows?: Property$Widows, + width?: Property$Width<TLength>, + willChange?: Property$WillChange, + wordBreak?: Property$WordBreak, + wordSpacing?: Property$WordSpacing<TLength>, + wordWrap?: Property$WordWrap, + writingMode?: Property$WritingMode, + x?: Property$X<TLength>, + y?: Property$Y<TLength>, + zIndex?: Property$ZIndex, + zoom?: Property$Zoom, +|}; + +export type StandardShorthandProperties<TLength = string | 0, TTime = string> = {| + all?: Property$All, + animation?: Property$Animation<TTime>, + animationRange?: Property$AnimationRange<TLength>, + background?: Property$Background<TLength>, + backgroundPosition?: Property$BackgroundPosition<TLength>, + border?: Property$Border<TLength>, + borderBlock?: Property$BorderBlock<TLength>, + borderBlockColor?: Property$BorderBlockColor, + borderBlockEnd?: Property$BorderBlockEnd<TLength>, + borderBlockStart?: Property$BorderBlockStart<TLength>, + borderBlockStyle?: Property$BorderBlockStyle, + borderBlockWidth?: Property$BorderBlockWidth<TLength>, + borderBottom?: Property$BorderBottom<TLength>, + borderColor?: Property$BorderColor, + borderImage?: Property$BorderImage, + borderInline?: Property$BorderInline<TLength>, + borderInlineColor?: Property$BorderInlineColor, + borderInlineEnd?: Property$BorderInlineEnd<TLength>, + borderInlineStart?: Property$BorderInlineStart<TLength>, + borderInlineStyle?: Property$BorderInlineStyle, + borderInlineWidth?: Property$BorderInlineWidth<TLength>, + borderLeft?: Property$BorderLeft<TLength>, + borderRadius?: Property$BorderRadius<TLength>, + borderRight?: Property$BorderRight<TLength>, + borderStyle?: Property$BorderStyle, + borderTop?: Property$BorderTop<TLength>, + borderWidth?: Property$BorderWidth<TLength>, + caret?: Property$Caret, + columnRule?: Property$ColumnRule<TLength>, + columns?: Property$Columns<TLength>, + containIntrinsicSize?: Property$ContainIntrinsicSize<TLength>, + container?: Property$Container, + flex?: Property$Flex<TLength>, + flexFlow?: Property$FlexFlow, + font?: Property$Font, + gap?: Property$Gap<TLength>, + grid?: Property$Grid, + gridArea?: Property$GridArea, + gridColumn?: Property$GridColumn, + gridRow?: Property$GridRow, + gridTemplate?: Property$GridTemplate, + inset?: Property$Inset<TLength>, + insetBlock?: Property$InsetBlock<TLength>, + insetInline?: Property$InsetInline<TLength>, + lineClamp?: Property$LineClamp, + listStyle?: Property$ListStyle, + margin?: Property$Margin<TLength>, + marginBlock?: Property$MarginBlock<TLength>, + marginInline?: Property$MarginInline<TLength>, + mask?: Property$Mask<TLength>, + maskBorder?: Property$MaskBorder, + motion?: Property$Offset<TLength>, + offset?: Property$Offset<TLength>, + outline?: Property$Outline<TLength>, + overflow?: Property$Overflow, + overscrollBehavior?: Property$OverscrollBehavior, + padding?: Property$Padding<TLength>, + paddingBlock?: Property$PaddingBlock<TLength>, + paddingInline?: Property$PaddingInline<TLength>, + placeContent?: Property$PlaceContent, + placeItems?: Property$PlaceItems, + placeSelf?: Property$PlaceSelf, + positionTry?: Property$PositionTry, + scrollMargin?: Property$ScrollMargin<TLength>, + scrollMarginBlock?: Property$ScrollMarginBlock<TLength>, + scrollMarginInline?: Property$ScrollMarginInline<TLength>, + scrollPadding?: Property$ScrollPadding<TLength>, + scrollPaddingBlock?: Property$ScrollPaddingBlock<TLength>, + scrollPaddingInline?: Property$ScrollPaddingInline<TLength>, + scrollSnapMargin?: Property$ScrollMargin<TLength>, + scrollTimeline?: Property$ScrollTimeline, + textDecoration?: Property$TextDecoration<TLength>, + textEmphasis?: Property$TextEmphasis, + textWrap?: Property$TextWrap, + transition?: Property$Transition<TTime>, + viewTimeline?: Property$ViewTimeline, +|}; + +export type StandardProperties<TLength = string | 0, TTime = string> = {| ...StandardLonghandProperties<TLength, TTime>, ...StandardShorthandProperties<TLength, TTime> |}; + +export type VendorLonghandProperties<TLength = string | 0, TTime = string> = {| + MozAnimationDelay?: Property$AnimationDelay<TTime>, + MozAnimationDirection?: Property$AnimationDirection, + MozAnimationDuration?: Property$AnimationDuration<TTime>, + MozAnimationFillMode?: Property$AnimationFillMode, + MozAnimationIterationCount?: Property$AnimationIterationCount, + MozAnimationName?: Property$AnimationName, + MozAnimationPlayState?: Property$AnimationPlayState, + MozAnimationTimingFunction?: Property$AnimationTimingFunction, + MozAppearance?: Property$MozAppearance, + MozBackfaceVisibility?: Property$BackfaceVisibility, + MozBinding?: Property$MozBinding, + MozBorderBottomColors?: Property$MozBorderBottomColors, + MozBorderEndColor?: Property$BorderInlineEndColor, + MozBorderEndStyle?: Property$BorderInlineEndStyle, + MozBorderEndWidth?: Property$BorderInlineEndWidth<TLength>, + MozBorderLeftColors?: Property$MozBorderLeftColors, + MozBorderRightColors?: Property$MozBorderRightColors, + MozBorderStartColor?: Property$BorderInlineStartColor, + MozBorderStartStyle?: Property$BorderInlineStartStyle, + MozBorderTopColors?: Property$MozBorderTopColors, + MozBoxSizing?: Property$BoxSizing, + MozColumnRuleColor?: Property$ColumnRuleColor, + MozColumnRuleStyle?: Property$ColumnRuleStyle, + MozColumnRuleWidth?: Property$ColumnRuleWidth<TLength>, + MozColumnWidth?: Property$ColumnWidth<TLength>, + MozContextProperties?: Property$MozContextProperties, + MozFontFeatureSettings?: Property$FontFeatureSettings, + MozFontLanguageOverride?: Property$FontLanguageOverride, + MozHyphens?: Property$Hyphens, + MozMarginEnd?: Property$MarginInlineEnd<TLength>, + MozMarginStart?: Property$MarginInlineStart<TLength>, + MozOrient?: Property$MozOrient, + MozOsxFontSmoothing?: Property$FontSmooth<TLength>, + MozOutlineRadiusBottomleft?: Property$MozOutlineRadiusBottomleft<TLength>, + MozOutlineRadiusBottomright?: Property$MozOutlineRadiusBottomright<TLength>, + MozOutlineRadiusTopleft?: Property$MozOutlineRadiusTopleft<TLength>, + MozOutlineRadiusTopright?: Property$MozOutlineRadiusTopright<TLength>, + MozPaddingEnd?: Property$PaddingInlineEnd<TLength>, + MozPaddingStart?: Property$PaddingInlineStart<TLength>, + MozPerspective?: Property$Perspective<TLength>, + MozPerspectiveOrigin?: Property$PerspectiveOrigin<TLength>, + MozStackSizing?: Property$MozStackSizing, + MozTabSize?: Property$TabSize<TLength>, + MozTextBlink?: Property$MozTextBlink, + MozTextSizeAdjust?: Property$TextSizeAdjust, + MozTransform?: Property$Transform, + MozTransformOrigin?: Property$TransformOrigin<TLength>, + MozTransformStyle?: Property$TransformStyle, + MozUserModify?: Property$MozUserModify, + MozUserSelect?: Property$UserSelect, + MozWindowDragging?: Property$MozWindowDragging, + MozWindowShadow?: Property$MozWindowShadow, + msAccelerator?: Property$MsAccelerator, + msBlockProgression?: Property$MsBlockProgression, + msContentZoomChaining?: Property$MsContentZoomChaining, + msContentZoomLimitMax?: Property$MsContentZoomLimitMax, + msContentZoomLimitMin?: Property$MsContentZoomLimitMin, + msContentZoomSnapPoints?: Property$MsContentZoomSnapPoints, + msContentZoomSnapType?: Property$MsContentZoomSnapType, + msContentZooming?: Property$MsContentZooming, + msFilter?: Property$MsFilter, + msFlexDirection?: Property$FlexDirection, + msFlexPositive?: Property$FlexGrow, + msFlowFrom?: Property$MsFlowFrom, + msFlowInto?: Property$MsFlowInto, + msGridColumns?: Property$MsGridColumns<TLength>, + msGridRows?: Property$MsGridRows<TLength>, + msHighContrastAdjust?: Property$MsHighContrastAdjust, + msHyphenateLimitChars?: Property$MsHyphenateLimitChars, + msHyphenateLimitLines?: Property$MsHyphenateLimitLines, + msHyphenateLimitZone?: Property$MsHyphenateLimitZone<TLength>, + msHyphens?: Property$Hyphens, + msImeAlign?: Property$MsImeAlign, + msLineBreak?: Property$LineBreak, + msOrder?: Property$Order, + msOverflowStyle?: Property$MsOverflowStyle, + msOverflowX?: Property$OverflowX, + msOverflowY?: Property$OverflowY, + msScrollChaining?: Property$MsScrollChaining, + msScrollLimitXMax?: Property$MsScrollLimitXMax<TLength>, + msScrollLimitXMin?: Property$MsScrollLimitXMin<TLength>, + msScrollLimitYMax?: Property$MsScrollLimitYMax<TLength>, + msScrollLimitYMin?: Property$MsScrollLimitYMin<TLength>, + msScrollRails?: Property$MsScrollRails, + msScrollSnapPointsX?: Property$MsScrollSnapPointsX, + msScrollSnapPointsY?: Property$MsScrollSnapPointsY, + msScrollSnapType?: Property$MsScrollSnapType, + msScrollTranslation?: Property$MsScrollTranslation, + msScrollbar3dlightColor?: Property$MsScrollbar3dlightColor, + msScrollbarArrowColor?: Property$MsScrollbarArrowColor, + msScrollbarBaseColor?: Property$MsScrollbarBaseColor, + msScrollbarDarkshadowColor?: Property$MsScrollbarDarkshadowColor, + msScrollbarFaceColor?: Property$MsScrollbarFaceColor, + msScrollbarHighlightColor?: Property$MsScrollbarHighlightColor, + msScrollbarShadowColor?: Property$MsScrollbarShadowColor, + msScrollbarTrackColor?: Property$MsScrollbarTrackColor, + msTextAutospace?: Property$MsTextAutospace, + msTextCombineHorizontal?: Property$TextCombineUpright, + msTextOverflow?: Property$TextOverflow, + msTouchAction?: Property$TouchAction, + msTouchSelect?: Property$MsTouchSelect, + msTransform?: Property$Transform, + msTransformOrigin?: Property$TransformOrigin<TLength>, + msTransitionDelay?: Property$TransitionDelay<TTime>, + msTransitionDuration?: Property$TransitionDuration<TTime>, + msTransitionProperty?: Property$TransitionProperty, + msTransitionTimingFunction?: Property$TransitionTimingFunction, + msUserSelect?: Property$MsUserSelect, + msWordBreak?: Property$WordBreak, + msWrapFlow?: Property$MsWrapFlow, + msWrapMargin?: Property$MsWrapMargin<TLength>, + msWrapThrough?: Property$MsWrapThrough, + msWritingMode?: Property$WritingMode, + WebkitAlignContent?: Property$AlignContent, + WebkitAlignItems?: Property$AlignItems, + WebkitAlignSelf?: Property$AlignSelf, + WebkitAnimationDelay?: Property$AnimationDelay<TTime>, + WebkitAnimationDirection?: Property$AnimationDirection, + WebkitAnimationDuration?: Property$AnimationDuration<TTime>, + WebkitAnimationFillMode?: Property$AnimationFillMode, + WebkitAnimationIterationCount?: Property$AnimationIterationCount, + WebkitAnimationName?: Property$AnimationName, + WebkitAnimationPlayState?: Property$AnimationPlayState, + WebkitAnimationTimingFunction?: Property$AnimationTimingFunction, + WebkitAppearance?: Property$WebkitAppearance, + WebkitBackdropFilter?: Property$BackdropFilter, + WebkitBackfaceVisibility?: Property$BackfaceVisibility, + WebkitBackgroundClip?: Property$BackgroundClip, + WebkitBackgroundOrigin?: Property$BackgroundOrigin, + WebkitBackgroundSize?: Property$BackgroundSize<TLength>, + WebkitBorderBeforeColor?: Property$WebkitBorderBeforeColor, + WebkitBorderBeforeStyle?: Property$WebkitBorderBeforeStyle, + WebkitBorderBeforeWidth?: Property$WebkitBorderBeforeWidth<TLength>, + WebkitBorderBottomLeftRadius?: Property$BorderBottomLeftRadius<TLength>, + WebkitBorderBottomRightRadius?: Property$BorderBottomRightRadius<TLength>, + WebkitBorderImageSlice?: Property$BorderImageSlice, + WebkitBorderTopLeftRadius?: Property$BorderTopLeftRadius<TLength>, + WebkitBorderTopRightRadius?: Property$BorderTopRightRadius<TLength>, + WebkitBoxDecorationBreak?: Property$BoxDecorationBreak, + WebkitBoxReflect?: Property$WebkitBoxReflect<TLength>, + WebkitBoxShadow?: Property$BoxShadow, + WebkitBoxSizing?: Property$BoxSizing, + WebkitClipPath?: Property$ClipPath, + WebkitColumnCount?: Property$ColumnCount, + WebkitColumnFill?: Property$ColumnFill, + WebkitColumnRuleColor?: Property$ColumnRuleColor, + WebkitColumnRuleStyle?: Property$ColumnRuleStyle, + WebkitColumnRuleWidth?: Property$ColumnRuleWidth<TLength>, + WebkitColumnSpan?: Property$ColumnSpan, + WebkitColumnWidth?: Property$ColumnWidth<TLength>, + WebkitFilter?: Property$Filter, + WebkitFlexBasis?: Property$FlexBasis<TLength>, + WebkitFlexDirection?: Property$FlexDirection, + WebkitFlexGrow?: Property$FlexGrow, + WebkitFlexShrink?: Property$FlexShrink, + WebkitFlexWrap?: Property$FlexWrap, + WebkitFontFeatureSettings?: Property$FontFeatureSettings, + WebkitFontKerning?: Property$FontKerning, + WebkitFontSmoothing?: Property$FontSmooth<TLength>, + WebkitFontVariantLigatures?: Property$FontVariantLigatures, + WebkitHyphenateCharacter?: Property$HyphenateCharacter, + WebkitHyphens?: Property$Hyphens, + WebkitInitialLetter?: Property$InitialLetter, + WebkitJustifyContent?: Property$JustifyContent, + WebkitLineBreak?: Property$LineBreak, + WebkitLineClamp?: Property$WebkitLineClamp, + WebkitLogicalHeight?: Property$BlockSize<TLength>, + WebkitLogicalWidth?: Property$InlineSize<TLength>, + WebkitMarginEnd?: Property$MarginInlineEnd<TLength>, + WebkitMarginStart?: Property$MarginInlineStart<TLength>, + WebkitMaskAttachment?: Property$WebkitMaskAttachment, + WebkitMaskBoxImageOutset?: Property$MaskBorderOutset<TLength>, + WebkitMaskBoxImageRepeat?: Property$MaskBorderRepeat, + WebkitMaskBoxImageSlice?: Property$MaskBorderSlice, + WebkitMaskBoxImageSource?: Property$MaskBorderSource, + WebkitMaskBoxImageWidth?: Property$MaskBorderWidth<TLength>, + WebkitMaskClip?: Property$WebkitMaskClip, + WebkitMaskComposite?: Property$WebkitMaskComposite, + WebkitMaskImage?: Property$WebkitMaskImage, + WebkitMaskOrigin?: Property$WebkitMaskOrigin, + WebkitMaskPosition?: Property$WebkitMaskPosition<TLength>, + WebkitMaskPositionX?: Property$WebkitMaskPositionX<TLength>, + WebkitMaskPositionY?: Property$WebkitMaskPositionY<TLength>, + WebkitMaskRepeat?: Property$WebkitMaskRepeat, + WebkitMaskRepeatX?: Property$WebkitMaskRepeatX, + WebkitMaskRepeatY?: Property$WebkitMaskRepeatY, + WebkitMaskSize?: Property$WebkitMaskSize<TLength>, + WebkitMaxInlineSize?: Property$MaxInlineSize<TLength>, + WebkitOrder?: Property$Order, + WebkitOverflowScrolling?: Property$WebkitOverflowScrolling, + WebkitPaddingEnd?: Property$PaddingInlineEnd<TLength>, + WebkitPaddingStart?: Property$PaddingInlineStart<TLength>, + WebkitPerspective?: Property$Perspective<TLength>, + WebkitPerspectiveOrigin?: Property$PerspectiveOrigin<TLength>, + WebkitPrintColorAdjust?: Property$PrintColorAdjust, + WebkitRubyPosition?: Property$RubyPosition, + WebkitScrollSnapType?: Property$ScrollSnapType, + WebkitShapeMargin?: Property$ShapeMargin<TLength>, + WebkitTapHighlightColor?: Property$WebkitTapHighlightColor, + WebkitTextCombine?: Property$TextCombineUpright, + WebkitTextDecorationColor?: Property$TextDecorationColor, + WebkitTextDecorationLine?: Property$TextDecorationLine, + WebkitTextDecorationSkip?: Property$TextDecorationSkip, + WebkitTextDecorationStyle?: Property$TextDecorationStyle, + WebkitTextEmphasisColor?: Property$TextEmphasisColor, + WebkitTextEmphasisPosition?: Property$TextEmphasisPosition, + WebkitTextEmphasisStyle?: Property$TextEmphasisStyle, + WebkitTextFillColor?: Property$WebkitTextFillColor, + WebkitTextOrientation?: Property$TextOrientation, + WebkitTextSizeAdjust?: Property$TextSizeAdjust, + WebkitTextStrokeColor?: Property$WebkitTextStrokeColor, + WebkitTextStrokeWidth?: Property$WebkitTextStrokeWidth<TLength>, + WebkitTextUnderlinePosition?: Property$TextUnderlinePosition, + WebkitTouchCallout?: Property$WebkitTouchCallout, + WebkitTransform?: Property$Transform, + WebkitTransformOrigin?: Property$TransformOrigin<TLength>, + WebkitTransformStyle?: Property$TransformStyle, + WebkitTransitionDelay?: Property$TransitionDelay<TTime>, + WebkitTransitionDuration?: Property$TransitionDuration<TTime>, + WebkitTransitionProperty?: Property$TransitionProperty, + WebkitTransitionTimingFunction?: Property$TransitionTimingFunction, + WebkitUserModify?: Property$WebkitUserModify, + WebkitUserSelect?: Property$WebkitUserSelect, + WebkitWritingMode?: Property$WritingMode, +|}; + +export type VendorShorthandProperties<TLength = string | 0, TTime = string> = {| + MozAnimation?: Property$Animation<TTime>, + MozBorderImage?: Property$BorderImage, + MozColumnRule?: Property$ColumnRule<TLength>, + MozColumns?: Property$Columns<TLength>, + MozOutlineRadius?: Property$MozOutlineRadius<TLength>, + MozTransition?: Property$Transition<TTime>, + msContentZoomLimit?: Property$MsContentZoomLimit, + msContentZoomSnap?: Property$MsContentZoomSnap, + msFlex?: Property$Flex<TLength>, + msScrollLimit?: Property$MsScrollLimit, + msScrollSnapX?: Property$MsScrollSnapX, + msScrollSnapY?: Property$MsScrollSnapY, + msTransition?: Property$Transition<TTime>, + WebkitAnimation?: Property$Animation<TTime>, + WebkitBorderBefore?: Property$WebkitBorderBefore<TLength>, + WebkitBorderImage?: Property$BorderImage, + WebkitBorderRadius?: Property$BorderRadius<TLength>, + WebkitColumnRule?: Property$ColumnRule<TLength>, + WebkitColumns?: Property$Columns<TLength>, + WebkitFlex?: Property$Flex<TLength>, + WebkitFlexFlow?: Property$FlexFlow, + WebkitMask?: Property$WebkitMask<TLength>, + WebkitMaskBoxImage?: Property$MaskBorder, + WebkitTextEmphasis?: Property$TextEmphasis, + WebkitTextStroke?: Property$WebkitTextStroke<TLength>, + WebkitTransition?: Property$Transition<TTime>, +|}; + +export type VendorProperties<TLength = string | 0, TTime = string> = {| ...VendorLonghandProperties<TLength, TTime>, ...VendorShorthandProperties<TLength, TTime> |}; + +export type ObsoleteProperties<TLength = string | 0, TTime = string> = {| + boxAlign?: Property$BoxAlign, + boxDirection?: Property$BoxDirection, + boxFlex?: Property$BoxFlex, + boxFlexGroup?: Property$BoxFlexGroup, + boxLines?: Property$BoxLines, + boxOrdinalGroup?: Property$BoxOrdinalGroup, + boxOrient?: Property$BoxOrient, + boxPack?: Property$BoxPack, + clip?: Property$Clip, + fontStretch?: Property$FontStretch, + gridColumnGap?: Property$GridColumnGap<TLength>, + gridGap?: Property$GridGap<TLength>, + gridRowGap?: Property$GridRowGap<TLength>, + imeMode?: Property$ImeMode, + insetArea?: Property$PositionArea, + offsetBlock?: Property$InsetBlock<TLength>, + offsetBlockEnd?: Property$InsetBlockEnd<TLength>, + offsetBlockStart?: Property$InsetBlockStart<TLength>, + offsetInline?: Property$InsetInline<TLength>, + offsetInlineEnd?: Property$InsetInlineEnd<TLength>, + offsetInlineStart?: Property$InsetInlineStart<TLength>, + pageBreakAfter?: Property$PageBreakAfter, + pageBreakBefore?: Property$PageBreakBefore, + pageBreakInside?: Property$PageBreakInside, + positionTryOptions?: Property$PositionTryFallbacks, + scrollSnapCoordinate?: Property$ScrollSnapCoordinate<TLength>, + scrollSnapDestination?: Property$ScrollSnapDestination<TLength>, + scrollSnapPointsX?: Property$ScrollSnapPointsX, + scrollSnapPointsY?: Property$ScrollSnapPointsY, + scrollSnapTypeX?: Property$ScrollSnapTypeX, + scrollSnapTypeY?: Property$ScrollSnapTypeY, + KhtmlBoxAlign?: Property$BoxAlign, + KhtmlBoxDirection?: Property$BoxDirection, + KhtmlBoxFlex?: Property$BoxFlex, + KhtmlBoxFlexGroup?: Property$BoxFlexGroup, + KhtmlBoxLines?: Property$BoxLines, + KhtmlBoxOrdinalGroup?: Property$BoxOrdinalGroup, + KhtmlBoxOrient?: Property$BoxOrient, + KhtmlBoxPack?: Property$BoxPack, + KhtmlLineBreak?: Property$LineBreak, + KhtmlOpacity?: Property$Opacity, + KhtmlUserSelect?: Property$UserSelect, + MozBackgroundClip?: Property$BackgroundClip, + MozBackgroundOrigin?: Property$BackgroundOrigin, + MozBackgroundSize?: Property$BackgroundSize<TLength>, + MozBorderRadius?: Property$BorderRadius<TLength>, + MozBorderRadiusBottomleft?: Property$BorderBottomLeftRadius<TLength>, + MozBorderRadiusBottomright?: Property$BorderBottomRightRadius<TLength>, + MozBorderRadiusTopleft?: Property$BorderTopLeftRadius<TLength>, + MozBorderRadiusTopright?: Property$BorderTopRightRadius<TLength>, + MozBoxAlign?: Property$BoxAlign, + MozBoxDirection?: Property$BoxDirection, + MozBoxFlex?: Property$BoxFlex, + MozBoxOrdinalGroup?: Property$BoxOrdinalGroup, + MozBoxOrient?: Property$BoxOrient, + MozBoxPack?: Property$BoxPack, + MozBoxShadow?: Property$BoxShadow, + MozColumnCount?: Property$ColumnCount, + MozColumnFill?: Property$ColumnFill, + MozFloatEdge?: Property$MozFloatEdge, + MozForceBrokenImageIcon?: Property$MozForceBrokenImageIcon, + MozOpacity?: Property$Opacity, + MozOutline?: Property$Outline<TLength>, + MozOutlineColor?: Property$OutlineColor, + MozOutlineStyle?: Property$OutlineStyle, + MozOutlineWidth?: Property$OutlineWidth<TLength>, + MozTextAlignLast?: Property$TextAlignLast, + MozTextDecorationColor?: Property$TextDecorationColor, + MozTextDecorationLine?: Property$TextDecorationLine, + MozTextDecorationStyle?: Property$TextDecorationStyle, + MozTransitionDelay?: Property$TransitionDelay<TTime>, + MozTransitionDuration?: Property$TransitionDuration<TTime>, + MozTransitionProperty?: Property$TransitionProperty, + MozTransitionTimingFunction?: Property$TransitionTimingFunction, + MozUserFocus?: Property$MozUserFocus, + MozUserInput?: Property$MozUserInput, + msImeMode?: Property$ImeMode, + OAnimation?: Property$Animation<TTime>, + OAnimationDelay?: Property$AnimationDelay<TTime>, + OAnimationDirection?: Property$AnimationDirection, + OAnimationDuration?: Property$AnimationDuration<TTime>, + OAnimationFillMode?: Property$AnimationFillMode, + OAnimationIterationCount?: Property$AnimationIterationCount, + OAnimationName?: Property$AnimationName, + OAnimationPlayState?: Property$AnimationPlayState, + OAnimationTimingFunction?: Property$AnimationTimingFunction, + OBackgroundSize?: Property$BackgroundSize<TLength>, + OBorderImage?: Property$BorderImage, + OObjectFit?: Property$ObjectFit, + OObjectPosition?: Property$ObjectPosition<TLength>, + OTabSize?: Property$TabSize<TLength>, + OTextOverflow?: Property$TextOverflow, + OTransform?: Property$Transform, + OTransformOrigin?: Property$TransformOrigin<TLength>, + OTransition?: Property$Transition<TTime>, + OTransitionDelay?: Property$TransitionDelay<TTime>, + OTransitionDuration?: Property$TransitionDuration<TTime>, + OTransitionProperty?: Property$TransitionProperty, + OTransitionTimingFunction?: Property$TransitionTimingFunction, + WebkitBoxAlign?: Property$BoxAlign, + WebkitBoxDirection?: Property$BoxDirection, + WebkitBoxFlex?: Property$BoxFlex, + WebkitBoxFlexGroup?: Property$BoxFlexGroup, + WebkitBoxLines?: Property$BoxLines, + WebkitBoxOrdinalGroup?: Property$BoxOrdinalGroup, + WebkitBoxOrient?: Property$BoxOrient, + WebkitBoxPack?: Property$BoxPack, +|}; + +export type SvgProperties<TLength = string | 0, TTime = string> = {| + alignmentBaseline?: Property$AlignmentBaseline, + baselineShift?: Property$BaselineShift<TLength>, + clip?: Property$Clip, + clipPath?: Property$ClipPath, + clipRule?: Property$ClipRule, + color?: Property$Color, + colorInterpolation?: Property$ColorInterpolation, + colorRendering?: Property$ColorRendering, + cursor?: Property$Cursor, + direction?: Property$Direction, + display?: Property$Display, + dominantBaseline?: Property$DominantBaseline, + fill?: Property$Fill, + fillOpacity?: Property$FillOpacity, + fillRule?: Property$FillRule, + filter?: Property$Filter, + floodColor?: Property$FloodColor, + floodOpacity?: Property$FloodOpacity, + font?: Property$Font, + fontFamily?: Property$FontFamily, + fontSize?: Property$FontSize<TLength>, + fontSizeAdjust?: Property$FontSizeAdjust, + fontStretch?: Property$FontStretch, + fontStyle?: Property$FontStyle, + fontVariant?: Property$FontVariant, + fontWeight?: Property$FontWeight, + glyphOrientationVertical?: Property$GlyphOrientationVertical, + imageRendering?: Property$ImageRendering, + letterSpacing?: Property$LetterSpacing<TLength>, + lightingColor?: Property$LightingColor, + lineHeight?: Property$LineHeight<TLength>, + marker?: Property$Marker, + markerEnd?: Property$MarkerEnd, + markerMid?: Property$MarkerMid, + markerStart?: Property$MarkerStart, + mask?: Property$Mask<TLength>, + opacity?: Property$Opacity, + overflow?: Property$Overflow, + paintOrder?: Property$PaintOrder, + pointerEvents?: Property$PointerEvents, + shapeRendering?: Property$ShapeRendering, + stopColor?: Property$StopColor, + stopOpacity?: Property$StopOpacity, + stroke?: Property$Stroke, + strokeDasharray?: Property$StrokeDasharray<TLength>, + strokeDashoffset?: Property$StrokeDashoffset<TLength>, + strokeLinecap?: Property$StrokeLinecap, + strokeLinejoin?: Property$StrokeLinejoin, + strokeMiterlimit?: Property$StrokeMiterlimit, + strokeOpacity?: Property$StrokeOpacity, + strokeWidth?: Property$StrokeWidth<TLength>, + textAnchor?: Property$TextAnchor, + textDecoration?: Property$TextDecoration<TLength>, + textRendering?: Property$TextRendering, + unicodeBidi?: Property$UnicodeBidi, + vectorEffect?: Property$VectorEffect, + visibility?: Property$Visibility, + whiteSpace?: Property$WhiteSpace, + wordSpacing?: Property$WordSpacing<TLength>, + writingMode?: Property$WritingMode, +|}; + +export type Properties<TLength = string | 0, TTime = string> = {| + ...StandardProperties<TLength, TTime>, + ...VendorProperties<TLength, TTime>, + ...ObsoleteProperties<TLength, TTime>, + ...SvgProperties<TLength, TTime>, +|}; + +export type StandardLonghandPropertiesHyphen<TLength = string | 0, TTime = string> = {| + "accent-color"?: Property$AccentColor, + "align-content"?: Property$AlignContent, + "align-items"?: Property$AlignItems, + "align-self"?: Property$AlignSelf, + "align-tracks"?: Property$AlignTracks, + "alignment-baseline"?: Property$AlignmentBaseline, + "anchor-name"?: Property$AnchorName, + "anchor-scope"?: Property$AnchorScope, + "animation-composition"?: Property$AnimationComposition, + "animation-delay"?: Property$AnimationDelay<TTime>, + "animation-direction"?: Property$AnimationDirection, + "animation-duration"?: Property$AnimationDuration<TTime>, + "animation-fill-mode"?: Property$AnimationFillMode, + "animation-iteration-count"?: Property$AnimationIterationCount, + "animation-name"?: Property$AnimationName, + "animation-play-state"?: Property$AnimationPlayState, + "animation-range-end"?: Property$AnimationRangeEnd<TLength>, + "animation-range-start"?: Property$AnimationRangeStart<TLength>, + "animation-timeline"?: Property$AnimationTimeline, + "animation-timing-function"?: Property$AnimationTimingFunction, + appearance?: Property$Appearance, + "aspect-ratio"?: Property$AspectRatio, + "backdrop-filter"?: Property$BackdropFilter, + "backface-visibility"?: Property$BackfaceVisibility, + "background-attachment"?: Property$BackgroundAttachment, + "background-blend-mode"?: Property$BackgroundBlendMode, + "background-clip"?: Property$BackgroundClip, + "background-color"?: Property$BackgroundColor, + "background-image"?: Property$BackgroundImage, + "background-origin"?: Property$BackgroundOrigin, + "background-position-x"?: Property$BackgroundPositionX<TLength>, + "background-position-y"?: Property$BackgroundPositionY<TLength>, + "background-repeat"?: Property$BackgroundRepeat, + "background-size"?: Property$BackgroundSize<TLength>, + "baseline-shift"?: Property$BaselineShift<TLength>, + "block-size"?: Property$BlockSize<TLength>, + "border-block-end-color"?: Property$BorderBlockEndColor, + "border-block-end-style"?: Property$BorderBlockEndStyle, + "border-block-end-width"?: Property$BorderBlockEndWidth<TLength>, + "border-block-start-color"?: Property$BorderBlockStartColor, + "border-block-start-style"?: Property$BorderBlockStartStyle, + "border-block-start-width"?: Property$BorderBlockStartWidth<TLength>, + "border-bottom-color"?: Property$BorderBottomColor, + "border-bottom-left-radius"?: Property$BorderBottomLeftRadius<TLength>, + "border-bottom-right-radius"?: Property$BorderBottomRightRadius<TLength>, + "border-bottom-style"?: Property$BorderBottomStyle, + "border-bottom-width"?: Property$BorderBottomWidth<TLength>, + "border-collapse"?: Property$BorderCollapse, + "border-end-end-radius"?: Property$BorderEndEndRadius<TLength>, + "border-end-start-radius"?: Property$BorderEndStartRadius<TLength>, + "border-image-outset"?: Property$BorderImageOutset<TLength>, + "border-image-repeat"?: Property$BorderImageRepeat, + "border-image-slice"?: Property$BorderImageSlice, + "border-image-source"?: Property$BorderImageSource, + "border-image-width"?: Property$BorderImageWidth<TLength>, + "border-inline-end-color"?: Property$BorderInlineEndColor, + "border-inline-end-style"?: Property$BorderInlineEndStyle, + "border-inline-end-width"?: Property$BorderInlineEndWidth<TLength>, + "border-inline-start-color"?: Property$BorderInlineStartColor, + "border-inline-start-style"?: Property$BorderInlineStartStyle, + "border-inline-start-width"?: Property$BorderInlineStartWidth<TLength>, + "border-left-color"?: Property$BorderLeftColor, + "border-left-style"?: Property$BorderLeftStyle, + "border-left-width"?: Property$BorderLeftWidth<TLength>, + "border-right-color"?: Property$BorderRightColor, + "border-right-style"?: Property$BorderRightStyle, + "border-right-width"?: Property$BorderRightWidth<TLength>, + "border-spacing"?: Property$BorderSpacing<TLength>, + "border-start-end-radius"?: Property$BorderStartEndRadius<TLength>, + "border-start-start-radius"?: Property$BorderStartStartRadius<TLength>, + "border-top-color"?: Property$BorderTopColor, + "border-top-left-radius"?: Property$BorderTopLeftRadius<TLength>, + "border-top-right-radius"?: Property$BorderTopRightRadius<TLength>, + "border-top-style"?: Property$BorderTopStyle, + "border-top-width"?: Property$BorderTopWidth<TLength>, + bottom?: Property$Bottom<TLength>, + "box-decoration-break"?: Property$BoxDecorationBreak, + "box-shadow"?: Property$BoxShadow, + "box-sizing"?: Property$BoxSizing, + "break-after"?: Property$BreakAfter, + "break-before"?: Property$BreakBefore, + "break-inside"?: Property$BreakInside, + "caption-side"?: Property$CaptionSide, + "caret-color"?: Property$CaretColor, + "caret-shape"?: Property$CaretShape, + clear?: Property$Clear, + "clip-path"?: Property$ClipPath, + "clip-rule"?: Property$ClipRule, + color?: Property$Color, + "color-adjust"?: Property$PrintColorAdjust, + "color-interpolation-filters"?: Property$ColorInterpolationFilters, + "color-scheme"?: Property$ColorScheme, + "column-count"?: Property$ColumnCount, + "column-fill"?: Property$ColumnFill, + "column-gap"?: Property$ColumnGap<TLength>, + "column-rule-color"?: Property$ColumnRuleColor, + "column-rule-style"?: Property$ColumnRuleStyle, + "column-rule-width"?: Property$ColumnRuleWidth<TLength>, + "column-span"?: Property$ColumnSpan, + "column-width"?: Property$ColumnWidth<TLength>, + contain?: Property$Contain, + "contain-intrinsic-block-size"?: Property$ContainIntrinsicBlockSize<TLength>, + "contain-intrinsic-height"?: Property$ContainIntrinsicHeight<TLength>, + "contain-intrinsic-inline-size"?: Property$ContainIntrinsicInlineSize<TLength>, + "contain-intrinsic-width"?: Property$ContainIntrinsicWidth<TLength>, + "container-name"?: Property$ContainerName, + "container-type"?: Property$ContainerType, + content?: Property$Content, + "content-visibility"?: Property$ContentVisibility, + "counter-increment"?: Property$CounterIncrement, + "counter-reset"?: Property$CounterReset, + "counter-set"?: Property$CounterSet, + cursor?: Property$Cursor, + cx?: Property$Cx<TLength>, + cy?: Property$Cy<TLength>, + d?: Property$D, + direction?: Property$Direction, + display?: Property$Display, + "dominant-baseline"?: Property$DominantBaseline, + "empty-cells"?: Property$EmptyCells, + "field-sizing"?: Property$FieldSizing, + fill?: Property$Fill, + "fill-opacity"?: Property$FillOpacity, + "fill-rule"?: Property$FillRule, + filter?: Property$Filter, + "flex-basis"?: Property$FlexBasis<TLength>, + "flex-direction"?: Property$FlexDirection, + "flex-grow"?: Property$FlexGrow, + "flex-shrink"?: Property$FlexShrink, + "flex-wrap"?: Property$FlexWrap, + float?: Property$Float, + "flood-color"?: Property$FloodColor, + "flood-opacity"?: Property$FloodOpacity, + "font-family"?: Property$FontFamily, + "font-feature-settings"?: Property$FontFeatureSettings, + "font-kerning"?: Property$FontKerning, + "font-language-override"?: Property$FontLanguageOverride, + "font-optical-sizing"?: Property$FontOpticalSizing, + "font-palette"?: Property$FontPalette, + "font-size"?: Property$FontSize<TLength>, + "font-size-adjust"?: Property$FontSizeAdjust, + "font-smooth"?: Property$FontSmooth<TLength>, + "font-style"?: Property$FontStyle, + "font-synthesis"?: Property$FontSynthesis, + "font-synthesis-position"?: Property$FontSynthesisPosition, + "font-synthesis-small-caps"?: Property$FontSynthesisSmallCaps, + "font-synthesis-style"?: Property$FontSynthesisStyle, + "font-synthesis-weight"?: Property$FontSynthesisWeight, + "font-variant"?: Property$FontVariant, + "font-variant-alternates"?: Property$FontVariantAlternates, + "font-variant-caps"?: Property$FontVariantCaps, + "font-variant-east-asian"?: Property$FontVariantEastAsian, + "font-variant-emoji"?: Property$FontVariantEmoji, + "font-variant-ligatures"?: Property$FontVariantLigatures, + "font-variant-numeric"?: Property$FontVariantNumeric, + "font-variant-position"?: Property$FontVariantPosition, + "font-variation-settings"?: Property$FontVariationSettings, + "font-weight"?: Property$FontWeight, + "font-width"?: Property$FontWidth, + "forced-color-adjust"?: Property$ForcedColorAdjust, + "grid-auto-columns"?: Property$GridAutoColumns<TLength>, + "grid-auto-flow"?: Property$GridAutoFlow, + "grid-auto-rows"?: Property$GridAutoRows<TLength>, + "grid-column-end"?: Property$GridColumnEnd, + "grid-column-start"?: Property$GridColumnStart, + "grid-row-end"?: Property$GridRowEnd, + "grid-row-start"?: Property$GridRowStart, + "grid-template-areas"?: Property$GridTemplateAreas, + "grid-template-columns"?: Property$GridTemplateColumns<TLength>, + "grid-template-rows"?: Property$GridTemplateRows<TLength>, + "hanging-punctuation"?: Property$HangingPunctuation, + height?: Property$Height<TLength>, + "hyphenate-character"?: Property$HyphenateCharacter, + "hyphenate-limit-chars"?: Property$HyphenateLimitChars, + hyphens?: Property$Hyphens, + "image-orientation"?: Property$ImageOrientation, + "image-rendering"?: Property$ImageRendering, + "image-resolution"?: Property$ImageResolution, + "initial-letter"?: Property$InitialLetter, + "initial-letter-align"?: Property$InitialLetterAlign, + "inline-size"?: Property$InlineSize<TLength>, + "inset-block-end"?: Property$InsetBlockEnd<TLength>, + "inset-block-start"?: Property$InsetBlockStart<TLength>, + "inset-inline-end"?: Property$InsetInlineEnd<TLength>, + "inset-inline-start"?: Property$InsetInlineStart<TLength>, + "interpolate-size"?: Property$InterpolateSize, + isolation?: Property$Isolation, + "justify-content"?: Property$JustifyContent, + "justify-items"?: Property$JustifyItems, + "justify-self"?: Property$JustifySelf, + "justify-tracks"?: Property$JustifyTracks, + left?: Property$Left<TLength>, + "letter-spacing"?: Property$LetterSpacing<TLength>, + "lighting-color"?: Property$LightingColor, + "line-break"?: Property$LineBreak, + "line-height"?: Property$LineHeight<TLength>, + "line-height-step"?: Property$LineHeightStep<TLength>, + "list-style-image"?: Property$ListStyleImage, + "list-style-position"?: Property$ListStylePosition, + "list-style-type"?: Property$ListStyleType, + "margin-block-end"?: Property$MarginBlockEnd<TLength>, + "margin-block-start"?: Property$MarginBlockStart<TLength>, + "margin-bottom"?: Property$MarginBottom<TLength>, + "margin-inline-end"?: Property$MarginInlineEnd<TLength>, + "margin-inline-start"?: Property$MarginInlineStart<TLength>, + "margin-left"?: Property$MarginLeft<TLength>, + "margin-right"?: Property$MarginRight<TLength>, + "margin-top"?: Property$MarginTop<TLength>, + "margin-trim"?: Property$MarginTrim, + marker?: Property$Marker, + "marker-end"?: Property$MarkerEnd, + "marker-mid"?: Property$MarkerMid, + "marker-start"?: Property$MarkerStart, + "mask-border-mode"?: Property$MaskBorderMode, + "mask-border-outset"?: Property$MaskBorderOutset<TLength>, + "mask-border-repeat"?: Property$MaskBorderRepeat, + "mask-border-slice"?: Property$MaskBorderSlice, + "mask-border-source"?: Property$MaskBorderSource, + "mask-border-width"?: Property$MaskBorderWidth<TLength>, + "mask-clip"?: Property$MaskClip, + "mask-composite"?: Property$MaskComposite, + "mask-image"?: Property$MaskImage, + "mask-mode"?: Property$MaskMode, + "mask-origin"?: Property$MaskOrigin, + "mask-position"?: Property$MaskPosition<TLength>, + "mask-repeat"?: Property$MaskRepeat, + "mask-size"?: Property$MaskSize<TLength>, + "mask-type"?: Property$MaskType, + "masonry-auto-flow"?: Property$MasonryAutoFlow, + "math-depth"?: Property$MathDepth, + "math-shift"?: Property$MathShift, + "math-style"?: Property$MathStyle, + "max-block-size"?: Property$MaxBlockSize<TLength>, + "max-height"?: Property$MaxHeight<TLength>, + "max-inline-size"?: Property$MaxInlineSize<TLength>, + "max-lines"?: Property$MaxLines, + "max-width"?: Property$MaxWidth<TLength>, + "min-block-size"?: Property$MinBlockSize<TLength>, + "min-height"?: Property$MinHeight<TLength>, + "min-inline-size"?: Property$MinInlineSize<TLength>, + "min-width"?: Property$MinWidth<TLength>, + "mix-blend-mode"?: Property$MixBlendMode, + "motion-distance"?: Property$OffsetDistance<TLength>, + "motion-path"?: Property$OffsetPath, + "motion-rotation"?: Property$OffsetRotate, + "object-fit"?: Property$ObjectFit, + "object-position"?: Property$ObjectPosition<TLength>, + "object-view-box"?: Property$ObjectViewBox, + "offset-anchor"?: Property$OffsetAnchor<TLength>, + "offset-distance"?: Property$OffsetDistance<TLength>, + "offset-path"?: Property$OffsetPath, + "offset-position"?: Property$OffsetPosition<TLength>, + "offset-rotate"?: Property$OffsetRotate, + "offset-rotation"?: Property$OffsetRotate, + opacity?: Property$Opacity, + order?: Property$Order, + orphans?: Property$Orphans, + "outline-color"?: Property$OutlineColor, + "outline-offset"?: Property$OutlineOffset<TLength>, + "outline-style"?: Property$OutlineStyle, + "outline-width"?: Property$OutlineWidth<TLength>, + "overflow-anchor"?: Property$OverflowAnchor, + "overflow-block"?: Property$OverflowBlock, + "overflow-clip-box"?: Property$OverflowClipBox, + "overflow-clip-margin"?: Property$OverflowClipMargin<TLength>, + "overflow-inline"?: Property$OverflowInline, + "overflow-wrap"?: Property$OverflowWrap, + "overflow-x"?: Property$OverflowX, + "overflow-y"?: Property$OverflowY, + overlay?: Property$Overlay, + "overscroll-behavior-block"?: Property$OverscrollBehaviorBlock, + "overscroll-behavior-inline"?: Property$OverscrollBehaviorInline, + "overscroll-behavior-x"?: Property$OverscrollBehaviorX, + "overscroll-behavior-y"?: Property$OverscrollBehaviorY, + "padding-block-end"?: Property$PaddingBlockEnd<TLength>, + "padding-block-start"?: Property$PaddingBlockStart<TLength>, + "padding-bottom"?: Property$PaddingBottom<TLength>, + "padding-inline-end"?: Property$PaddingInlineEnd<TLength>, + "padding-inline-start"?: Property$PaddingInlineStart<TLength>, + "padding-left"?: Property$PaddingLeft<TLength>, + "padding-right"?: Property$PaddingRight<TLength>, + "padding-top"?: Property$PaddingTop<TLength>, + page?: Property$Page, + "paint-order"?: Property$PaintOrder, + perspective?: Property$Perspective<TLength>, + "perspective-origin"?: Property$PerspectiveOrigin<TLength>, + "pointer-events"?: Property$PointerEvents, + position?: Property$Position, + "position-anchor"?: Property$PositionAnchor, + "position-area"?: Property$PositionArea, + "position-try-fallbacks"?: Property$PositionTryFallbacks, + "position-try-order"?: Property$PositionTryOrder, + "position-visibility"?: Property$PositionVisibility, + "print-color-adjust"?: Property$PrintColorAdjust, + quotes?: Property$Quotes, + r?: Property$R<TLength>, + resize?: Property$Resize, + right?: Property$Right<TLength>, + rotate?: Property$Rotate, + "row-gap"?: Property$RowGap<TLength>, + "ruby-align"?: Property$RubyAlign, + "ruby-merge"?: Property$RubyMerge, + "ruby-overhang"?: Property$RubyOverhang, + "ruby-position"?: Property$RubyPosition, + rx?: Property$Rx<TLength>, + ry?: Property$Ry<TLength>, + scale?: Property$Scale, + "scroll-behavior"?: Property$ScrollBehavior, + "scroll-initial-target"?: Property$ScrollInitialTarget, + "scroll-margin-block-end"?: Property$ScrollMarginBlockEnd<TLength>, + "scroll-margin-block-start"?: Property$ScrollMarginBlockStart<TLength>, + "scroll-margin-bottom"?: Property$ScrollMarginBottom<TLength>, + "scroll-margin-inline-end"?: Property$ScrollMarginInlineEnd<TLength>, + "scroll-margin-inline-start"?: Property$ScrollMarginInlineStart<TLength>, + "scroll-margin-left"?: Property$ScrollMarginLeft<TLength>, + "scroll-margin-right"?: Property$ScrollMarginRight<TLength>, + "scroll-margin-top"?: Property$ScrollMarginTop<TLength>, + "scroll-padding-block-end"?: Property$ScrollPaddingBlockEnd<TLength>, + "scroll-padding-block-start"?: Property$ScrollPaddingBlockStart<TLength>, + "scroll-padding-bottom"?: Property$ScrollPaddingBottom<TLength>, + "scroll-padding-inline-end"?: Property$ScrollPaddingInlineEnd<TLength>, + "scroll-padding-inline-start"?: Property$ScrollPaddingInlineStart<TLength>, + "scroll-padding-left"?: Property$ScrollPaddingLeft<TLength>, + "scroll-padding-right"?: Property$ScrollPaddingRight<TLength>, + "scroll-padding-top"?: Property$ScrollPaddingTop<TLength>, + "scroll-snap-align"?: Property$ScrollSnapAlign, + "scroll-snap-margin-bottom"?: Property$ScrollMarginBottom<TLength>, + "scroll-snap-margin-left"?: Property$ScrollMarginLeft<TLength>, + "scroll-snap-margin-right"?: Property$ScrollMarginRight<TLength>, + "scroll-snap-margin-top"?: Property$ScrollMarginTop<TLength>, + "scroll-snap-stop"?: Property$ScrollSnapStop, + "scroll-snap-type"?: Property$ScrollSnapType, + "scroll-timeline-axis"?: Property$ScrollTimelineAxis, + "scroll-timeline-name"?: Property$ScrollTimelineName, + "scrollbar-color"?: Property$ScrollbarColor, + "scrollbar-gutter"?: Property$ScrollbarGutter, + "scrollbar-width"?: Property$ScrollbarWidth, + "shape-image-threshold"?: Property$ShapeImageThreshold, + "shape-margin"?: Property$ShapeMargin<TLength>, + "shape-outside"?: Property$ShapeOutside, + "shape-rendering"?: Property$ShapeRendering, + "speak-as"?: Property$SpeakAs, + "stop-color"?: Property$StopColor, + "stop-opacity"?: Property$StopOpacity, + stroke?: Property$Stroke, + "stroke-color"?: Property$StrokeColor, + "stroke-dasharray"?: Property$StrokeDasharray<TLength>, + "stroke-dashoffset"?: Property$StrokeDashoffset<TLength>, + "stroke-linecap"?: Property$StrokeLinecap, + "stroke-linejoin"?: Property$StrokeLinejoin, + "stroke-miterlimit"?: Property$StrokeMiterlimit, + "stroke-opacity"?: Property$StrokeOpacity, + "stroke-width"?: Property$StrokeWidth<TLength>, + "tab-size"?: Property$TabSize<TLength>, + "table-layout"?: Property$TableLayout, + "text-align"?: Property$TextAlign, + "text-align-last"?: Property$TextAlignLast, + "text-anchor"?: Property$TextAnchor, + "text-autospace"?: Property$TextAutospace, + "text-box"?: Property$TextBox, + "text-box-edge"?: Property$TextBoxEdge, + "text-box-trim"?: Property$TextBoxTrim, + "text-combine-upright"?: Property$TextCombineUpright, + "text-decoration-color"?: Property$TextDecorationColor, + "text-decoration-line"?: Property$TextDecorationLine, + "text-decoration-skip"?: Property$TextDecorationSkip, + "text-decoration-skip-ink"?: Property$TextDecorationSkipInk, + "text-decoration-style"?: Property$TextDecorationStyle, + "text-decoration-thickness"?: Property$TextDecorationThickness<TLength>, + "text-emphasis-color"?: Property$TextEmphasisColor, + "text-emphasis-position"?: Property$TextEmphasisPosition, + "text-emphasis-style"?: Property$TextEmphasisStyle, + "text-indent"?: Property$TextIndent<TLength>, + "text-justify"?: Property$TextJustify, + "text-orientation"?: Property$TextOrientation, + "text-overflow"?: Property$TextOverflow, + "text-rendering"?: Property$TextRendering, + "text-shadow"?: Property$TextShadow, + "text-size-adjust"?: Property$TextSizeAdjust, + "text-spacing-trim"?: Property$TextSpacingTrim, + "text-transform"?: Property$TextTransform, + "text-underline-offset"?: Property$TextUnderlineOffset<TLength>, + "text-underline-position"?: Property$TextUnderlinePosition, + "text-wrap-mode"?: Property$TextWrapMode, + "text-wrap-style"?: Property$TextWrapStyle, + "timeline-scope"?: Property$TimelineScope, + top?: Property$Top<TLength>, + "touch-action"?: Property$TouchAction, + transform?: Property$Transform, + "transform-box"?: Property$TransformBox, + "transform-origin"?: Property$TransformOrigin<TLength>, + "transform-style"?: Property$TransformStyle, + "transition-behavior"?: Property$TransitionBehavior, + "transition-delay"?: Property$TransitionDelay<TTime>, + "transition-duration"?: Property$TransitionDuration<TTime>, + "transition-property"?: Property$TransitionProperty, + "transition-timing-function"?: Property$TransitionTimingFunction, + translate?: Property$Translate<TLength>, + "unicode-bidi"?: Property$UnicodeBidi, + "user-select"?: Property$UserSelect, + "vector-effect"?: Property$VectorEffect, + "vertical-align"?: Property$VerticalAlign<TLength>, + "view-timeline-axis"?: Property$ViewTimelineAxis, + "view-timeline-inset"?: Property$ViewTimelineInset<TLength>, + "view-timeline-name"?: Property$ViewTimelineName, + "view-transition-class"?: Property$ViewTransitionClass, + "view-transition-name"?: Property$ViewTransitionName, + visibility?: Property$Visibility, + "white-space"?: Property$WhiteSpace, + "white-space-collapse"?: Property$WhiteSpaceCollapse, + widows?: Property$Widows, + width?: Property$Width<TLength>, + "will-change"?: Property$WillChange, + "word-break"?: Property$WordBreak, + "word-spacing"?: Property$WordSpacing<TLength>, + "word-wrap"?: Property$WordWrap, + "writing-mode"?: Property$WritingMode, + x?: Property$X<TLength>, + y?: Property$Y<TLength>, + "z-index"?: Property$ZIndex, + zoom?: Property$Zoom, +|}; + +export type StandardShorthandPropertiesHyphen<TLength = string | 0, TTime = string> = {| + all?: Property$All, + animation?: Property$Animation<TTime>, + "animation-range"?: Property$AnimationRange<TLength>, + background?: Property$Background<TLength>, + "background-position"?: Property$BackgroundPosition<TLength>, + border?: Property$Border<TLength>, + "border-block"?: Property$BorderBlock<TLength>, + "border-block-color"?: Property$BorderBlockColor, + "border-block-end"?: Property$BorderBlockEnd<TLength>, + "border-block-start"?: Property$BorderBlockStart<TLength>, + "border-block-style"?: Property$BorderBlockStyle, + "border-block-width"?: Property$BorderBlockWidth<TLength>, + "border-bottom"?: Property$BorderBottom<TLength>, + "border-color"?: Property$BorderColor, + "border-image"?: Property$BorderImage, + "border-inline"?: Property$BorderInline<TLength>, + "border-inline-color"?: Property$BorderInlineColor, + "border-inline-end"?: Property$BorderInlineEnd<TLength>, + "border-inline-start"?: Property$BorderInlineStart<TLength>, + "border-inline-style"?: Property$BorderInlineStyle, + "border-inline-width"?: Property$BorderInlineWidth<TLength>, + "border-left"?: Property$BorderLeft<TLength>, + "border-radius"?: Property$BorderRadius<TLength>, + "border-right"?: Property$BorderRight<TLength>, + "border-style"?: Property$BorderStyle, + "border-top"?: Property$BorderTop<TLength>, + "border-width"?: Property$BorderWidth<TLength>, + caret?: Property$Caret, + "column-rule"?: Property$ColumnRule<TLength>, + columns?: Property$Columns<TLength>, + "contain-intrinsic-size"?: Property$ContainIntrinsicSize<TLength>, + container?: Property$Container, + flex?: Property$Flex<TLength>, + "flex-flow"?: Property$FlexFlow, + font?: Property$Font, + gap?: Property$Gap<TLength>, + grid?: Property$Grid, + "grid-area"?: Property$GridArea, + "grid-column"?: Property$GridColumn, + "grid-row"?: Property$GridRow, + "grid-template"?: Property$GridTemplate, + inset?: Property$Inset<TLength>, + "inset-block"?: Property$InsetBlock<TLength>, + "inset-inline"?: Property$InsetInline<TLength>, + "line-clamp"?: Property$LineClamp, + "list-style"?: Property$ListStyle, + margin?: Property$Margin<TLength>, + "margin-block"?: Property$MarginBlock<TLength>, + "margin-inline"?: Property$MarginInline<TLength>, + mask?: Property$Mask<TLength>, + "mask-border"?: Property$MaskBorder, + motion?: Property$Offset<TLength>, + offset?: Property$Offset<TLength>, + outline?: Property$Outline<TLength>, + overflow?: Property$Overflow, + "overscroll-behavior"?: Property$OverscrollBehavior, + padding?: Property$Padding<TLength>, + "padding-block"?: Property$PaddingBlock<TLength>, + "padding-inline"?: Property$PaddingInline<TLength>, + "place-content"?: Property$PlaceContent, + "place-items"?: Property$PlaceItems, + "place-self"?: Property$PlaceSelf, + "position-try"?: Property$PositionTry, + "scroll-margin"?: Property$ScrollMargin<TLength>, + "scroll-margin-block"?: Property$ScrollMarginBlock<TLength>, + "scroll-margin-inline"?: Property$ScrollMarginInline<TLength>, + "scroll-padding"?: Property$ScrollPadding<TLength>, + "scroll-padding-block"?: Property$ScrollPaddingBlock<TLength>, + "scroll-padding-inline"?: Property$ScrollPaddingInline<TLength>, + "scroll-snap-margin"?: Property$ScrollMargin<TLength>, + "scroll-timeline"?: Property$ScrollTimeline, + "text-decoration"?: Property$TextDecoration<TLength>, + "text-emphasis"?: Property$TextEmphasis, + "text-wrap"?: Property$TextWrap, + transition?: Property$Transition<TTime>, + "view-timeline"?: Property$ViewTimeline, +|}; + +export type StandardPropertiesHyphen<TLength = string | 0, TTime = string> = {| + ...StandardLonghandPropertiesHyphen<TLength, TTime>, + ...StandardShorthandPropertiesHyphen<TLength, TTime>, +|}; + +export type VendorLonghandPropertiesHyphen<TLength = string | 0, TTime = string> = {| + "-moz-animation-delay"?: Property$AnimationDelay<TTime>, + "-moz-animation-direction"?: Property$AnimationDirection, + "-moz-animation-duration"?: Property$AnimationDuration<TTime>, + "-moz-animation-fill-mode"?: Property$AnimationFillMode, + "-moz-animation-iteration-count"?: Property$AnimationIterationCount, + "-moz-animation-name"?: Property$AnimationName, + "-moz-animation-play-state"?: Property$AnimationPlayState, + "-moz-animation-timing-function"?: Property$AnimationTimingFunction, + "-moz-appearance"?: Property$MozAppearance, + "-moz-backface-visibility"?: Property$BackfaceVisibility, + "-moz-binding"?: Property$MozBinding, + "-moz-border-bottom-colors"?: Property$MozBorderBottomColors, + "-moz-border-end-color"?: Property$BorderInlineEndColor, + "-moz-border-end-style"?: Property$BorderInlineEndStyle, + "-moz-border-end-width"?: Property$BorderInlineEndWidth<TLength>, + "-moz-border-left-colors"?: Property$MozBorderLeftColors, + "-moz-border-right-colors"?: Property$MozBorderRightColors, + "-moz-border-start-color"?: Property$BorderInlineStartColor, + "-moz-border-start-style"?: Property$BorderInlineStartStyle, + "-moz-border-top-colors"?: Property$MozBorderTopColors, + "-moz-box-sizing"?: Property$BoxSizing, + "-moz-column-rule-color"?: Property$ColumnRuleColor, + "-moz-column-rule-style"?: Property$ColumnRuleStyle, + "-moz-column-rule-width"?: Property$ColumnRuleWidth<TLength>, + "-moz-column-width"?: Property$ColumnWidth<TLength>, + "-moz-context-properties"?: Property$MozContextProperties, + "-moz-font-feature-settings"?: Property$FontFeatureSettings, + "-moz-font-language-override"?: Property$FontLanguageOverride, + "-moz-hyphens"?: Property$Hyphens, + "-moz-margin-end"?: Property$MarginInlineEnd<TLength>, + "-moz-margin-start"?: Property$MarginInlineStart<TLength>, + "-moz-orient"?: Property$MozOrient, + "-moz-osx-font-smoothing"?: Property$FontSmooth<TLength>, + "-moz-outline-radius-bottomleft"?: Property$MozOutlineRadiusBottomleft<TLength>, + "-moz-outline-radius-bottomright"?: Property$MozOutlineRadiusBottomright<TLength>, + "-moz-outline-radius-topleft"?: Property$MozOutlineRadiusTopleft<TLength>, + "-moz-outline-radius-topright"?: Property$MozOutlineRadiusTopright<TLength>, + "-moz-padding-end"?: Property$PaddingInlineEnd<TLength>, + "-moz-padding-start"?: Property$PaddingInlineStart<TLength>, + "-moz-perspective"?: Property$Perspective<TLength>, + "-moz-perspective-origin"?: Property$PerspectiveOrigin<TLength>, + "-moz-stack-sizing"?: Property$MozStackSizing, + "-moz-tab-size"?: Property$TabSize<TLength>, + "-moz-text-blink"?: Property$MozTextBlink, + "-moz-text-size-adjust"?: Property$TextSizeAdjust, + "-moz-transform"?: Property$Transform, + "-moz-transform-origin"?: Property$TransformOrigin<TLength>, + "-moz-transform-style"?: Property$TransformStyle, + "-moz-user-modify"?: Property$MozUserModify, + "-moz-user-select"?: Property$UserSelect, + "-moz-window-dragging"?: Property$MozWindowDragging, + "-moz-window-shadow"?: Property$MozWindowShadow, + "-ms-accelerator"?: Property$MsAccelerator, + "-ms-block-progression"?: Property$MsBlockProgression, + "-ms-content-zoom-chaining"?: Property$MsContentZoomChaining, + "-ms-content-zoom-limit-max"?: Property$MsContentZoomLimitMax, + "-ms-content-zoom-limit-min"?: Property$MsContentZoomLimitMin, + "-ms-content-zoom-snap-points"?: Property$MsContentZoomSnapPoints, + "-ms-content-zoom-snap-type"?: Property$MsContentZoomSnapType, + "-ms-content-zooming"?: Property$MsContentZooming, + "-ms-filter"?: Property$MsFilter, + "-ms-flex-direction"?: Property$FlexDirection, + "-ms-flex-positive"?: Property$FlexGrow, + "-ms-flow-from"?: Property$MsFlowFrom, + "-ms-flow-into"?: Property$MsFlowInto, + "-ms-grid-columns"?: Property$MsGridColumns<TLength>, + "-ms-grid-rows"?: Property$MsGridRows<TLength>, + "-ms-high-contrast-adjust"?: Property$MsHighContrastAdjust, + "-ms-hyphenate-limit-chars"?: Property$MsHyphenateLimitChars, + "-ms-hyphenate-limit-lines"?: Property$MsHyphenateLimitLines, + "-ms-hyphenate-limit-zone"?: Property$MsHyphenateLimitZone<TLength>, + "-ms-hyphens"?: Property$Hyphens, + "-ms-ime-align"?: Property$MsImeAlign, + "-ms-line-break"?: Property$LineBreak, + "-ms-order"?: Property$Order, + "-ms-overflow-style"?: Property$MsOverflowStyle, + "-ms-overflow-x"?: Property$OverflowX, + "-ms-overflow-y"?: Property$OverflowY, + "-ms-scroll-chaining"?: Property$MsScrollChaining, + "-ms-scroll-limit-x-max"?: Property$MsScrollLimitXMax<TLength>, + "-ms-scroll-limit-x-min"?: Property$MsScrollLimitXMin<TLength>, + "-ms-scroll-limit-y-max"?: Property$MsScrollLimitYMax<TLength>, + "-ms-scroll-limit-y-min"?: Property$MsScrollLimitYMin<TLength>, + "-ms-scroll-rails"?: Property$MsScrollRails, + "-ms-scroll-snap-points-x"?: Property$MsScrollSnapPointsX, + "-ms-scroll-snap-points-y"?: Property$MsScrollSnapPointsY, + "-ms-scroll-snap-type"?: Property$MsScrollSnapType, + "-ms-scroll-translation"?: Property$MsScrollTranslation, + "-ms-scrollbar-3dlight-color"?: Property$MsScrollbar3dlightColor, + "-ms-scrollbar-arrow-color"?: Property$MsScrollbarArrowColor, + "-ms-scrollbar-base-color"?: Property$MsScrollbarBaseColor, + "-ms-scrollbar-darkshadow-color"?: Property$MsScrollbarDarkshadowColor, + "-ms-scrollbar-face-color"?: Property$MsScrollbarFaceColor, + "-ms-scrollbar-highlight-color"?: Property$MsScrollbarHighlightColor, + "-ms-scrollbar-shadow-color"?: Property$MsScrollbarShadowColor, + "-ms-scrollbar-track-color"?: Property$MsScrollbarTrackColor, + "-ms-text-autospace"?: Property$MsTextAutospace, + "-ms-text-combine-horizontal"?: Property$TextCombineUpright, + "-ms-text-overflow"?: Property$TextOverflow, + "-ms-touch-action"?: Property$TouchAction, + "-ms-touch-select"?: Property$MsTouchSelect, + "-ms-transform"?: Property$Transform, + "-ms-transform-origin"?: Property$TransformOrigin<TLength>, + "-ms-transition-delay"?: Property$TransitionDelay<TTime>, + "-ms-transition-duration"?: Property$TransitionDuration<TTime>, + "-ms-transition-property"?: Property$TransitionProperty, + "-ms-transition-timing-function"?: Property$TransitionTimingFunction, + "-ms-user-select"?: Property$MsUserSelect, + "-ms-word-break"?: Property$WordBreak, + "-ms-wrap-flow"?: Property$MsWrapFlow, + "-ms-wrap-margin"?: Property$MsWrapMargin<TLength>, + "-ms-wrap-through"?: Property$MsWrapThrough, + "-ms-writing-mode"?: Property$WritingMode, + "-webkit-align-content"?: Property$AlignContent, + "-webkit-align-items"?: Property$AlignItems, + "-webkit-align-self"?: Property$AlignSelf, + "-webkit-animation-delay"?: Property$AnimationDelay<TTime>, + "-webkit-animation-direction"?: Property$AnimationDirection, + "-webkit-animation-duration"?: Property$AnimationDuration<TTime>, + "-webkit-animation-fill-mode"?: Property$AnimationFillMode, + "-webkit-animation-iteration-count"?: Property$AnimationIterationCount, + "-webkit-animation-name"?: Property$AnimationName, + "-webkit-animation-play-state"?: Property$AnimationPlayState, + "-webkit-animation-timing-function"?: Property$AnimationTimingFunction, + "-webkit-appearance"?: Property$WebkitAppearance, + "-webkit-backdrop-filter"?: Property$BackdropFilter, + "-webkit-backface-visibility"?: Property$BackfaceVisibility, + "-webkit-background-clip"?: Property$BackgroundClip, + "-webkit-background-origin"?: Property$BackgroundOrigin, + "-webkit-background-size"?: Property$BackgroundSize<TLength>, + "-webkit-border-before-color"?: Property$WebkitBorderBeforeColor, + "-webkit-border-before-style"?: Property$WebkitBorderBeforeStyle, + "-webkit-border-before-width"?: Property$WebkitBorderBeforeWidth<TLength>, + "-webkit-border-bottom-left-radius"?: Property$BorderBottomLeftRadius<TLength>, + "-webkit-border-bottom-right-radius"?: Property$BorderBottomRightRadius<TLength>, + "-webkit-border-image-slice"?: Property$BorderImageSlice, + "-webkit-border-top-left-radius"?: Property$BorderTopLeftRadius<TLength>, + "-webkit-border-top-right-radius"?: Property$BorderTopRightRadius<TLength>, + "-webkit-box-decoration-break"?: Property$BoxDecorationBreak, + "-webkit-box-reflect"?: Property$WebkitBoxReflect<TLength>, + "-webkit-box-shadow"?: Property$BoxShadow, + "-webkit-box-sizing"?: Property$BoxSizing, + "-webkit-clip-path"?: Property$ClipPath, + "-webkit-column-count"?: Property$ColumnCount, + "-webkit-column-fill"?: Property$ColumnFill, + "-webkit-column-rule-color"?: Property$ColumnRuleColor, + "-webkit-column-rule-style"?: Property$ColumnRuleStyle, + "-webkit-column-rule-width"?: Property$ColumnRuleWidth<TLength>, + "-webkit-column-span"?: Property$ColumnSpan, + "-webkit-column-width"?: Property$ColumnWidth<TLength>, + "-webkit-filter"?: Property$Filter, + "-webkit-flex-basis"?: Property$FlexBasis<TLength>, + "-webkit-flex-direction"?: Property$FlexDirection, + "-webkit-flex-grow"?: Property$FlexGrow, + "-webkit-flex-shrink"?: Property$FlexShrink, + "-webkit-flex-wrap"?: Property$FlexWrap, + "-webkit-font-feature-settings"?: Property$FontFeatureSettings, + "-webkit-font-kerning"?: Property$FontKerning, + "-webkit-font-smoothing"?: Property$FontSmooth<TLength>, + "-webkit-font-variant-ligatures"?: Property$FontVariantLigatures, + "-webkit-hyphenate-character"?: Property$HyphenateCharacter, + "-webkit-hyphens"?: Property$Hyphens, + "-webkit-initial-letter"?: Property$InitialLetter, + "-webkit-justify-content"?: Property$JustifyContent, + "-webkit-line-break"?: Property$LineBreak, + "-webkit-line-clamp"?: Property$WebkitLineClamp, + "-webkit-logical-height"?: Property$BlockSize<TLength>, + "-webkit-logical-width"?: Property$InlineSize<TLength>, + "-webkit-margin-end"?: Property$MarginInlineEnd<TLength>, + "-webkit-margin-start"?: Property$MarginInlineStart<TLength>, + "-webkit-mask-attachment"?: Property$WebkitMaskAttachment, + "-webkit-mask-box-image-outset"?: Property$MaskBorderOutset<TLength>, + "-webkit-mask-box-image-repeat"?: Property$MaskBorderRepeat, + "-webkit-mask-box-image-slice"?: Property$MaskBorderSlice, + "-webkit-mask-box-image-source"?: Property$MaskBorderSource, + "-webkit-mask-box-image-width"?: Property$MaskBorderWidth<TLength>, + "-webkit-mask-clip"?: Property$WebkitMaskClip, + "-webkit-mask-composite"?: Property$WebkitMaskComposite, + "-webkit-mask-image"?: Property$WebkitMaskImage, + "-webkit-mask-origin"?: Property$WebkitMaskOrigin, + "-webkit-mask-position"?: Property$WebkitMaskPosition<TLength>, + "-webkit-mask-position-x"?: Property$WebkitMaskPositionX<TLength>, + "-webkit-mask-position-y"?: Property$WebkitMaskPositionY<TLength>, + "-webkit-mask-repeat"?: Property$WebkitMaskRepeat, + "-webkit-mask-repeat-x"?: Property$WebkitMaskRepeatX, + "-webkit-mask-repeat-y"?: Property$WebkitMaskRepeatY, + "-webkit-mask-size"?: Property$WebkitMaskSize<TLength>, + "-webkit-max-inline-size"?: Property$MaxInlineSize<TLength>, + "-webkit-order"?: Property$Order, + "-webkit-overflow-scrolling"?: Property$WebkitOverflowScrolling, + "-webkit-padding-end"?: Property$PaddingInlineEnd<TLength>, + "-webkit-padding-start"?: Property$PaddingInlineStart<TLength>, + "-webkit-perspective"?: Property$Perspective<TLength>, + "-webkit-perspective-origin"?: Property$PerspectiveOrigin<TLength>, + "-webkit-print-color-adjust"?: Property$PrintColorAdjust, + "-webkit-ruby-position"?: Property$RubyPosition, + "-webkit-scroll-snap-type"?: Property$ScrollSnapType, + "-webkit-shape-margin"?: Property$ShapeMargin<TLength>, + "-webkit-tap-highlight-color"?: Property$WebkitTapHighlightColor, + "-webkit-text-combine"?: Property$TextCombineUpright, + "-webkit-text-decoration-color"?: Property$TextDecorationColor, + "-webkit-text-decoration-line"?: Property$TextDecorationLine, + "-webkit-text-decoration-skip"?: Property$TextDecorationSkip, + "-webkit-text-decoration-style"?: Property$TextDecorationStyle, + "-webkit-text-emphasis-color"?: Property$TextEmphasisColor, + "-webkit-text-emphasis-position"?: Property$TextEmphasisPosition, + "-webkit-text-emphasis-style"?: Property$TextEmphasisStyle, + "-webkit-text-fill-color"?: Property$WebkitTextFillColor, + "-webkit-text-orientation"?: Property$TextOrientation, + "-webkit-text-size-adjust"?: Property$TextSizeAdjust, + "-webkit-text-stroke-color"?: Property$WebkitTextStrokeColor, + "-webkit-text-stroke-width"?: Property$WebkitTextStrokeWidth<TLength>, + "-webkit-text-underline-position"?: Property$TextUnderlinePosition, + "-webkit-touch-callout"?: Property$WebkitTouchCallout, + "-webkit-transform"?: Property$Transform, + "-webkit-transform-origin"?: Property$TransformOrigin<TLength>, + "-webkit-transform-style"?: Property$TransformStyle, + "-webkit-transition-delay"?: Property$TransitionDelay<TTime>, + "-webkit-transition-duration"?: Property$TransitionDuration<TTime>, + "-webkit-transition-property"?: Property$TransitionProperty, + "-webkit-transition-timing-function"?: Property$TransitionTimingFunction, + "-webkit-user-modify"?: Property$WebkitUserModify, + "-webkit-user-select"?: Property$WebkitUserSelect, + "-webkit-writing-mode"?: Property$WritingMode, +|}; + +export type VendorShorthandPropertiesHyphen<TLength = string | 0, TTime = string> = {| + "-moz-animation"?: Property$Animation<TTime>, + "-moz-border-image"?: Property$BorderImage, + "-moz-column-rule"?: Property$ColumnRule<TLength>, + "-moz-columns"?: Property$Columns<TLength>, + "-moz-outline-radius"?: Property$MozOutlineRadius<TLength>, + "-moz-transition"?: Property$Transition<TTime>, + "-ms-content-zoom-limit"?: Property$MsContentZoomLimit, + "-ms-content-zoom-snap"?: Property$MsContentZoomSnap, + "-ms-flex"?: Property$Flex<TLength>, + "-ms-scroll-limit"?: Property$MsScrollLimit, + "-ms-scroll-snap-x"?: Property$MsScrollSnapX, + "-ms-scroll-snap-y"?: Property$MsScrollSnapY, + "-ms-transition"?: Property$Transition<TTime>, + "-webkit-animation"?: Property$Animation<TTime>, + "-webkit-border-before"?: Property$WebkitBorderBefore<TLength>, + "-webkit-border-image"?: Property$BorderImage, + "-webkit-border-radius"?: Property$BorderRadius<TLength>, + "-webkit-column-rule"?: Property$ColumnRule<TLength>, + "-webkit-columns"?: Property$Columns<TLength>, + "-webkit-flex"?: Property$Flex<TLength>, + "-webkit-flex-flow"?: Property$FlexFlow, + "-webkit-mask"?: Property$WebkitMask<TLength>, + "-webkit-mask-box-image"?: Property$MaskBorder, + "-webkit-text-emphasis"?: Property$TextEmphasis, + "-webkit-text-stroke"?: Property$WebkitTextStroke<TLength>, + "-webkit-transition"?: Property$Transition<TTime>, +|}; + +export type VendorPropertiesHyphen<TLength = string | 0, TTime = string> = {| + ...VendorLonghandPropertiesHyphen<TLength, TTime>, + ...VendorShorthandPropertiesHyphen<TLength, TTime>, +|}; + +export type ObsoletePropertiesHyphen<TLength = string | 0, TTime = string> = {| + "box-align"?: Property$BoxAlign, + "box-direction"?: Property$BoxDirection, + "box-flex"?: Property$BoxFlex, + "box-flex-group"?: Property$BoxFlexGroup, + "box-lines"?: Property$BoxLines, + "box-ordinal-group"?: Property$BoxOrdinalGroup, + "box-orient"?: Property$BoxOrient, + "box-pack"?: Property$BoxPack, + clip?: Property$Clip, + "font-stretch"?: Property$FontStretch, + "grid-column-gap"?: Property$GridColumnGap<TLength>, + "grid-gap"?: Property$GridGap<TLength>, + "grid-row-gap"?: Property$GridRowGap<TLength>, + "ime-mode"?: Property$ImeMode, + "inset-area"?: Property$PositionArea, + "offset-block"?: Property$InsetBlock<TLength>, + "offset-block-end"?: Property$InsetBlockEnd<TLength>, + "offset-block-start"?: Property$InsetBlockStart<TLength>, + "offset-inline"?: Property$InsetInline<TLength>, + "offset-inline-end"?: Property$InsetInlineEnd<TLength>, + "offset-inline-start"?: Property$InsetInlineStart<TLength>, + "page-break-after"?: Property$PageBreakAfter, + "page-break-before"?: Property$PageBreakBefore, + "page-break-inside"?: Property$PageBreakInside, + "position-try-options"?: Property$PositionTryFallbacks, + "scroll-snap-coordinate"?: Property$ScrollSnapCoordinate<TLength>, + "scroll-snap-destination"?: Property$ScrollSnapDestination<TLength>, + "scroll-snap-points-x"?: Property$ScrollSnapPointsX, + "scroll-snap-points-y"?: Property$ScrollSnapPointsY, + "scroll-snap-type-x"?: Property$ScrollSnapTypeX, + "scroll-snap-type-y"?: Property$ScrollSnapTypeY, + "-khtml-box-align"?: Property$BoxAlign, + "-khtml-box-direction"?: Property$BoxDirection, + "-khtml-box-flex"?: Property$BoxFlex, + "-khtml-box-flex-group"?: Property$BoxFlexGroup, + "-khtml-box-lines"?: Property$BoxLines, + "-khtml-box-ordinal-group"?: Property$BoxOrdinalGroup, + "-khtml-box-orient"?: Property$BoxOrient, + "-khtml-box-pack"?: Property$BoxPack, + "-khtml-line-break"?: Property$LineBreak, + "-khtml-opacity"?: Property$Opacity, + "-khtml-user-select"?: Property$UserSelect, + "-moz-background-clip"?: Property$BackgroundClip, + "-moz-background-origin"?: Property$BackgroundOrigin, + "-moz-background-size"?: Property$BackgroundSize<TLength>, + "-moz-border-radius"?: Property$BorderRadius<TLength>, + "-moz-border-radius-bottomleft"?: Property$BorderBottomLeftRadius<TLength>, + "-moz-border-radius-bottomright"?: Property$BorderBottomRightRadius<TLength>, + "-moz-border-radius-topleft"?: Property$BorderTopLeftRadius<TLength>, + "-moz-border-radius-topright"?: Property$BorderTopRightRadius<TLength>, + "-moz-box-align"?: Property$BoxAlign, + "-moz-box-direction"?: Property$BoxDirection, + "-moz-box-flex"?: Property$BoxFlex, + "-moz-box-ordinal-group"?: Property$BoxOrdinalGroup, + "-moz-box-orient"?: Property$BoxOrient, + "-moz-box-pack"?: Property$BoxPack, + "-moz-box-shadow"?: Property$BoxShadow, + "-moz-column-count"?: Property$ColumnCount, + "-moz-column-fill"?: Property$ColumnFill, + "-moz-float-edge"?: Property$MozFloatEdge, + "-moz-force-broken-image-icon"?: Property$MozForceBrokenImageIcon, + "-moz-opacity"?: Property$Opacity, + "-moz-outline"?: Property$Outline<TLength>, + "-moz-outline-color"?: Property$OutlineColor, + "-moz-outline-style"?: Property$OutlineStyle, + "-moz-outline-width"?: Property$OutlineWidth<TLength>, + "-moz-text-align-last"?: Property$TextAlignLast, + "-moz-text-decoration-color"?: Property$TextDecorationColor, + "-moz-text-decoration-line"?: Property$TextDecorationLine, + "-moz-text-decoration-style"?: Property$TextDecorationStyle, + "-moz-transition-delay"?: Property$TransitionDelay<TTime>, + "-moz-transition-duration"?: Property$TransitionDuration<TTime>, + "-moz-transition-property"?: Property$TransitionProperty, + "-moz-transition-timing-function"?: Property$TransitionTimingFunction, + "-moz-user-focus"?: Property$MozUserFocus, + "-moz-user-input"?: Property$MozUserInput, + "-ms-ime-mode"?: Property$ImeMode, + "-o-animation"?: Property$Animation<TTime>, + "-o-animation-delay"?: Property$AnimationDelay<TTime>, + "-o-animation-direction"?: Property$AnimationDirection, + "-o-animation-duration"?: Property$AnimationDuration<TTime>, + "-o-animation-fill-mode"?: Property$AnimationFillMode, + "-o-animation-iteration-count"?: Property$AnimationIterationCount, + "-o-animation-name"?: Property$AnimationName, + "-o-animation-play-state"?: Property$AnimationPlayState, + "-o-animation-timing-function"?: Property$AnimationTimingFunction, + "-o-background-size"?: Property$BackgroundSize<TLength>, + "-o-border-image"?: Property$BorderImage, + "-o-object-fit"?: Property$ObjectFit, + "-o-object-position"?: Property$ObjectPosition<TLength>, + "-o-tab-size"?: Property$TabSize<TLength>, + "-o-text-overflow"?: Property$TextOverflow, + "-o-transform"?: Property$Transform, + "-o-transform-origin"?: Property$TransformOrigin<TLength>, + "-o-transition"?: Property$Transition<TTime>, + "-o-transition-delay"?: Property$TransitionDelay<TTime>, + "-o-transition-duration"?: Property$TransitionDuration<TTime>, + "-o-transition-property"?: Property$TransitionProperty, + "-o-transition-timing-function"?: Property$TransitionTimingFunction, + "-webkit-box-align"?: Property$BoxAlign, + "-webkit-box-direction"?: Property$BoxDirection, + "-webkit-box-flex"?: Property$BoxFlex, + "-webkit-box-flex-group"?: Property$BoxFlexGroup, + "-webkit-box-lines"?: Property$BoxLines, + "-webkit-box-ordinal-group"?: Property$BoxOrdinalGroup, + "-webkit-box-orient"?: Property$BoxOrient, + "-webkit-box-pack"?: Property$BoxPack, +|}; + +export type SvgPropertiesHyphen<TLength = string | 0, TTime = string> = {| + "alignment-baseline"?: Property$AlignmentBaseline, + "baseline-shift"?: Property$BaselineShift<TLength>, + clip?: Property$Clip, + "clip-path"?: Property$ClipPath, + "clip-rule"?: Property$ClipRule, + color?: Property$Color, + "color-interpolation"?: Property$ColorInterpolation, + "color-rendering"?: Property$ColorRendering, + cursor?: Property$Cursor, + direction?: Property$Direction, + display?: Property$Display, + "dominant-baseline"?: Property$DominantBaseline, + fill?: Property$Fill, + "fill-opacity"?: Property$FillOpacity, + "fill-rule"?: Property$FillRule, + filter?: Property$Filter, + "flood-color"?: Property$FloodColor, + "flood-opacity"?: Property$FloodOpacity, + font?: Property$Font, + "font-family"?: Property$FontFamily, + "font-size"?: Property$FontSize<TLength>, + "font-size-adjust"?: Property$FontSizeAdjust, + "font-stretch"?: Property$FontStretch, + "font-style"?: Property$FontStyle, + "font-variant"?: Property$FontVariant, + "font-weight"?: Property$FontWeight, + "glyph-orientation-vertical"?: Property$GlyphOrientationVertical, + "image-rendering"?: Property$ImageRendering, + "letter-spacing"?: Property$LetterSpacing<TLength>, + "lighting-color"?: Property$LightingColor, + "line-height"?: Property$LineHeight<TLength>, + marker?: Property$Marker, + "marker-end"?: Property$MarkerEnd, + "marker-mid"?: Property$MarkerMid, + "marker-start"?: Property$MarkerStart, + mask?: Property$Mask<TLength>, + opacity?: Property$Opacity, + overflow?: Property$Overflow, + "paint-order"?: Property$PaintOrder, + "pointer-events"?: Property$PointerEvents, + "shape-rendering"?: Property$ShapeRendering, + "stop-color"?: Property$StopColor, + "stop-opacity"?: Property$StopOpacity, + stroke?: Property$Stroke, + "stroke-dasharray"?: Property$StrokeDasharray<TLength>, + "stroke-dashoffset"?: Property$StrokeDashoffset<TLength>, + "stroke-linecap"?: Property$StrokeLinecap, + "stroke-linejoin"?: Property$StrokeLinejoin, + "stroke-miterlimit"?: Property$StrokeMiterlimit, + "stroke-opacity"?: Property$StrokeOpacity, + "stroke-width"?: Property$StrokeWidth<TLength>, + "text-anchor"?: Property$TextAnchor, + "text-decoration"?: Property$TextDecoration<TLength>, + "text-rendering"?: Property$TextRendering, + "unicode-bidi"?: Property$UnicodeBidi, + "vector-effect"?: Property$VectorEffect, + visibility?: Property$Visibility, + "white-space"?: Property$WhiteSpace, + "word-spacing"?: Property$WordSpacing<TLength>, + "writing-mode"?: Property$WritingMode, +|}; + +export type PropertiesHyphen<TLength = string | 0, TTime = string> = {| + ...StandardPropertiesHyphen<TLength, TTime>, + ...VendorPropertiesHyphen<TLength, TTime>, + ...ObsoletePropertiesHyphen<TLength, TTime>, + ...SvgPropertiesHyphen<TLength, TTime>, +|}; + +export type StandardLonghandPropertiesFallback<TLength = string | 0, TTime = string> = {| + accentColor?: Property$AccentColor | Array<Property$AccentColor>, + alignContent?: Property$AlignContent | Array<Property$AlignContent>, + alignItems?: Property$AlignItems | Array<Property$AlignItems>, + alignSelf?: Property$AlignSelf | Array<Property$AlignSelf>, + alignTracks?: Property$AlignTracks | Array<Property$AlignTracks>, + alignmentBaseline?: Property$AlignmentBaseline | Array<Property$AlignmentBaseline>, + anchorName?: Property$AnchorName | Array<Property$AnchorName>, + anchorScope?: Property$AnchorScope | Array<Property$AnchorScope>, + animationComposition?: Property$AnimationComposition | Array<Property$AnimationComposition>, + animationDelay?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + animationDirection?: Property$AnimationDirection | Array<Property$AnimationDirection>, + animationDuration?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + animationFillMode?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + animationIterationCount?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + animationName?: Property$AnimationName | Array<Property$AnimationName>, + animationPlayState?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + animationRangeEnd?: Property$AnimationRangeEnd<TLength> | Array<Property$AnimationRangeEnd<TLength>>, + animationRangeStart?: Property$AnimationRangeStart<TLength> | Array<Property$AnimationRangeStart<TLength>>, + animationTimeline?: Property$AnimationTimeline | Array<Property$AnimationTimeline>, + animationTimingFunction?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + appearance?: Property$Appearance | Array<Property$Appearance>, + aspectRatio?: Property$AspectRatio | Array<Property$AspectRatio>, + backdropFilter?: Property$BackdropFilter | Array<Property$BackdropFilter>, + backfaceVisibility?: Property$BackfaceVisibility | Array<Property$BackfaceVisibility>, + backgroundAttachment?: Property$BackgroundAttachment | Array<Property$BackgroundAttachment>, + backgroundBlendMode?: Property$BackgroundBlendMode | Array<Property$BackgroundBlendMode>, + backgroundClip?: Property$BackgroundClip | Array<Property$BackgroundClip>, + backgroundColor?: Property$BackgroundColor | Array<Property$BackgroundColor>, + backgroundImage?: Property$BackgroundImage | Array<Property$BackgroundImage>, + backgroundOrigin?: Property$BackgroundOrigin | Array<Property$BackgroundOrigin>, + backgroundPositionX?: Property$BackgroundPositionX<TLength> | Array<Property$BackgroundPositionX<TLength>>, + backgroundPositionY?: Property$BackgroundPositionY<TLength> | Array<Property$BackgroundPositionY<TLength>>, + backgroundRepeat?: Property$BackgroundRepeat | Array<Property$BackgroundRepeat>, + backgroundSize?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + baselineShift?: Property$BaselineShift<TLength> | Array<Property$BaselineShift<TLength>>, + blockSize?: Property$BlockSize<TLength> | Array<Property$BlockSize<TLength>>, + borderBlockEndColor?: Property$BorderBlockEndColor | Array<Property$BorderBlockEndColor>, + borderBlockEndStyle?: Property$BorderBlockEndStyle | Array<Property$BorderBlockEndStyle>, + borderBlockEndWidth?: Property$BorderBlockEndWidth<TLength> | Array<Property$BorderBlockEndWidth<TLength>>, + borderBlockStartColor?: Property$BorderBlockStartColor | Array<Property$BorderBlockStartColor>, + borderBlockStartStyle?: Property$BorderBlockStartStyle | Array<Property$BorderBlockStartStyle>, + borderBlockStartWidth?: Property$BorderBlockStartWidth<TLength> | Array<Property$BorderBlockStartWidth<TLength>>, + borderBottomColor?: Property$BorderBottomColor | Array<Property$BorderBottomColor>, + borderBottomLeftRadius?: Property$BorderBottomLeftRadius<TLength> | Array<Property$BorderBottomLeftRadius<TLength>>, + borderBottomRightRadius?: Property$BorderBottomRightRadius<TLength> | Array<Property$BorderBottomRightRadius<TLength>>, + borderBottomStyle?: Property$BorderBottomStyle | Array<Property$BorderBottomStyle>, + borderBottomWidth?: Property$BorderBottomWidth<TLength> | Array<Property$BorderBottomWidth<TLength>>, + borderCollapse?: Property$BorderCollapse | Array<Property$BorderCollapse>, + borderEndEndRadius?: Property$BorderEndEndRadius<TLength> | Array<Property$BorderEndEndRadius<TLength>>, + borderEndStartRadius?: Property$BorderEndStartRadius<TLength> | Array<Property$BorderEndStartRadius<TLength>>, + borderImageOutset?: Property$BorderImageOutset<TLength> | Array<Property$BorderImageOutset<TLength>>, + borderImageRepeat?: Property$BorderImageRepeat | Array<Property$BorderImageRepeat>, + borderImageSlice?: Property$BorderImageSlice | Array<Property$BorderImageSlice>, + borderImageSource?: Property$BorderImageSource | Array<Property$BorderImageSource>, + borderImageWidth?: Property$BorderImageWidth<TLength> | Array<Property$BorderImageWidth<TLength>>, + borderInlineEndColor?: Property$BorderInlineEndColor | Array<Property$BorderInlineEndColor>, + borderInlineEndStyle?: Property$BorderInlineEndStyle | Array<Property$BorderInlineEndStyle>, + borderInlineEndWidth?: Property$BorderInlineEndWidth<TLength> | Array<Property$BorderInlineEndWidth<TLength>>, + borderInlineStartColor?: Property$BorderInlineStartColor | Array<Property$BorderInlineStartColor>, + borderInlineStartStyle?: Property$BorderInlineStartStyle | Array<Property$BorderInlineStartStyle>, + borderInlineStartWidth?: Property$BorderInlineStartWidth<TLength> | Array<Property$BorderInlineStartWidth<TLength>>, + borderLeftColor?: Property$BorderLeftColor | Array<Property$BorderLeftColor>, + borderLeftStyle?: Property$BorderLeftStyle | Array<Property$BorderLeftStyle>, + borderLeftWidth?: Property$BorderLeftWidth<TLength> | Array<Property$BorderLeftWidth<TLength>>, + borderRightColor?: Property$BorderRightColor | Array<Property$BorderRightColor>, + borderRightStyle?: Property$BorderRightStyle | Array<Property$BorderRightStyle>, + borderRightWidth?: Property$BorderRightWidth<TLength> | Array<Property$BorderRightWidth<TLength>>, + borderSpacing?: Property$BorderSpacing<TLength> | Array<Property$BorderSpacing<TLength>>, + borderStartEndRadius?: Property$BorderStartEndRadius<TLength> | Array<Property$BorderStartEndRadius<TLength>>, + borderStartStartRadius?: Property$BorderStartStartRadius<TLength> | Array<Property$BorderStartStartRadius<TLength>>, + borderTopColor?: Property$BorderTopColor | Array<Property$BorderTopColor>, + borderTopLeftRadius?: Property$BorderTopLeftRadius<TLength> | Array<Property$BorderTopLeftRadius<TLength>>, + borderTopRightRadius?: Property$BorderTopRightRadius<TLength> | Array<Property$BorderTopRightRadius<TLength>>, + borderTopStyle?: Property$BorderTopStyle | Array<Property$BorderTopStyle>, + borderTopWidth?: Property$BorderTopWidth<TLength> | Array<Property$BorderTopWidth<TLength>>, + bottom?: Property$Bottom<TLength> | Array<Property$Bottom<TLength>>, + boxDecorationBreak?: Property$BoxDecorationBreak | Array<Property$BoxDecorationBreak>, + boxShadow?: Property$BoxShadow | Array<Property$BoxShadow>, + boxSizing?: Property$BoxSizing | Array<Property$BoxSizing>, + breakAfter?: Property$BreakAfter | Array<Property$BreakAfter>, + breakBefore?: Property$BreakBefore | Array<Property$BreakBefore>, + breakInside?: Property$BreakInside | Array<Property$BreakInside>, + captionSide?: Property$CaptionSide | Array<Property$CaptionSide>, + caretColor?: Property$CaretColor | Array<Property$CaretColor>, + caretShape?: Property$CaretShape | Array<Property$CaretShape>, + clear?: Property$Clear | Array<Property$Clear>, + clipPath?: Property$ClipPath | Array<Property$ClipPath>, + clipRule?: Property$ClipRule | Array<Property$ClipRule>, + color?: Property$Color | Array<Property$Color>, + colorAdjust?: Property$PrintColorAdjust | Array<Property$PrintColorAdjust>, + colorInterpolationFilters?: Property$ColorInterpolationFilters | Array<Property$ColorInterpolationFilters>, + colorScheme?: Property$ColorScheme | Array<Property$ColorScheme>, + columnCount?: Property$ColumnCount | Array<Property$ColumnCount>, + columnFill?: Property$ColumnFill | Array<Property$ColumnFill>, + columnGap?: Property$ColumnGap<TLength> | Array<Property$ColumnGap<TLength>>, + columnRuleColor?: Property$ColumnRuleColor | Array<Property$ColumnRuleColor>, + columnRuleStyle?: Property$ColumnRuleStyle | Array<Property$ColumnRuleStyle>, + columnRuleWidth?: Property$ColumnRuleWidth<TLength> | Array<Property$ColumnRuleWidth<TLength>>, + columnSpan?: Property$ColumnSpan | Array<Property$ColumnSpan>, + columnWidth?: Property$ColumnWidth<TLength> | Array<Property$ColumnWidth<TLength>>, + contain?: Property$Contain | Array<Property$Contain>, + containIntrinsicBlockSize?: Property$ContainIntrinsicBlockSize<TLength> | Array<Property$ContainIntrinsicBlockSize<TLength>>, + containIntrinsicHeight?: Property$ContainIntrinsicHeight<TLength> | Array<Property$ContainIntrinsicHeight<TLength>>, + containIntrinsicInlineSize?: Property$ContainIntrinsicInlineSize<TLength> | Array<Property$ContainIntrinsicInlineSize<TLength>>, + containIntrinsicWidth?: Property$ContainIntrinsicWidth<TLength> | Array<Property$ContainIntrinsicWidth<TLength>>, + containerName?: Property$ContainerName | Array<Property$ContainerName>, + containerType?: Property$ContainerType | Array<Property$ContainerType>, + content?: Property$Content | Array<Property$Content>, + contentVisibility?: Property$ContentVisibility | Array<Property$ContentVisibility>, + counterIncrement?: Property$CounterIncrement | Array<Property$CounterIncrement>, + counterReset?: Property$CounterReset | Array<Property$CounterReset>, + counterSet?: Property$CounterSet | Array<Property$CounterSet>, + cursor?: Property$Cursor | Array<Property$Cursor>, + cx?: Property$Cx<TLength> | Array<Property$Cx<TLength>>, + cy?: Property$Cy<TLength> | Array<Property$Cy<TLength>>, + d?: Property$D | Array<Property$D>, + direction?: Property$Direction | Array<Property$Direction>, + display?: Property$Display | Array<Property$Display>, + dominantBaseline?: Property$DominantBaseline | Array<Property$DominantBaseline>, + emptyCells?: Property$EmptyCells | Array<Property$EmptyCells>, + fieldSizing?: Property$FieldSizing | Array<Property$FieldSizing>, + fill?: Property$Fill | Array<Property$Fill>, + fillOpacity?: Property$FillOpacity | Array<Property$FillOpacity>, + fillRule?: Property$FillRule | Array<Property$FillRule>, + filter?: Property$Filter | Array<Property$Filter>, + flexBasis?: Property$FlexBasis<TLength> | Array<Property$FlexBasis<TLength>>, + flexDirection?: Property$FlexDirection | Array<Property$FlexDirection>, + flexGrow?: Property$FlexGrow | Array<Property$FlexGrow>, + flexShrink?: Property$FlexShrink | Array<Property$FlexShrink>, + flexWrap?: Property$FlexWrap | Array<Property$FlexWrap>, + float?: Property$Float | Array<Property$Float>, + floodColor?: Property$FloodColor | Array<Property$FloodColor>, + floodOpacity?: Property$FloodOpacity | Array<Property$FloodOpacity>, + fontFamily?: Property$FontFamily | Array<Property$FontFamily>, + fontFeatureSettings?: Property$FontFeatureSettings | Array<Property$FontFeatureSettings>, + fontKerning?: Property$FontKerning | Array<Property$FontKerning>, + fontLanguageOverride?: Property$FontLanguageOverride | Array<Property$FontLanguageOverride>, + fontOpticalSizing?: Property$FontOpticalSizing | Array<Property$FontOpticalSizing>, + fontPalette?: Property$FontPalette | Array<Property$FontPalette>, + fontSize?: Property$FontSize<TLength> | Array<Property$FontSize<TLength>>, + fontSizeAdjust?: Property$FontSizeAdjust | Array<Property$FontSizeAdjust>, + fontSmooth?: Property$FontSmooth<TLength> | Array<Property$FontSmooth<TLength>>, + fontStyle?: Property$FontStyle | Array<Property$FontStyle>, + fontSynthesis?: Property$FontSynthesis | Array<Property$FontSynthesis>, + fontSynthesisPosition?: Property$FontSynthesisPosition | Array<Property$FontSynthesisPosition>, + fontSynthesisSmallCaps?: Property$FontSynthesisSmallCaps | Array<Property$FontSynthesisSmallCaps>, + fontSynthesisStyle?: Property$FontSynthesisStyle | Array<Property$FontSynthesisStyle>, + fontSynthesisWeight?: Property$FontSynthesisWeight | Array<Property$FontSynthesisWeight>, + fontVariant?: Property$FontVariant | Array<Property$FontVariant>, + fontVariantAlternates?: Property$FontVariantAlternates | Array<Property$FontVariantAlternates>, + fontVariantCaps?: Property$FontVariantCaps | Array<Property$FontVariantCaps>, + fontVariantEastAsian?: Property$FontVariantEastAsian | Array<Property$FontVariantEastAsian>, + fontVariantEmoji?: Property$FontVariantEmoji | Array<Property$FontVariantEmoji>, + fontVariantLigatures?: Property$FontVariantLigatures | Array<Property$FontVariantLigatures>, + fontVariantNumeric?: Property$FontVariantNumeric | Array<Property$FontVariantNumeric>, + fontVariantPosition?: Property$FontVariantPosition | Array<Property$FontVariantPosition>, + fontVariationSettings?: Property$FontVariationSettings | Array<Property$FontVariationSettings>, + fontWeight?: Property$FontWeight | Array<Property$FontWeight>, + fontWidth?: Property$FontWidth | Array<Property$FontWidth>, + forcedColorAdjust?: Property$ForcedColorAdjust | Array<Property$ForcedColorAdjust>, + gridAutoColumns?: Property$GridAutoColumns<TLength> | Array<Property$GridAutoColumns<TLength>>, + gridAutoFlow?: Property$GridAutoFlow | Array<Property$GridAutoFlow>, + gridAutoRows?: Property$GridAutoRows<TLength> | Array<Property$GridAutoRows<TLength>>, + gridColumnEnd?: Property$GridColumnEnd | Array<Property$GridColumnEnd>, + gridColumnStart?: Property$GridColumnStart | Array<Property$GridColumnStart>, + gridRowEnd?: Property$GridRowEnd | Array<Property$GridRowEnd>, + gridRowStart?: Property$GridRowStart | Array<Property$GridRowStart>, + gridTemplateAreas?: Property$GridTemplateAreas | Array<Property$GridTemplateAreas>, + gridTemplateColumns?: Property$GridTemplateColumns<TLength> | Array<Property$GridTemplateColumns<TLength>>, + gridTemplateRows?: Property$GridTemplateRows<TLength> | Array<Property$GridTemplateRows<TLength>>, + hangingPunctuation?: Property$HangingPunctuation | Array<Property$HangingPunctuation>, + height?: Property$Height<TLength> | Array<Property$Height<TLength>>, + hyphenateCharacter?: Property$HyphenateCharacter | Array<Property$HyphenateCharacter>, + hyphenateLimitChars?: Property$HyphenateLimitChars | Array<Property$HyphenateLimitChars>, + hyphens?: Property$Hyphens | Array<Property$Hyphens>, + imageOrientation?: Property$ImageOrientation | Array<Property$ImageOrientation>, + imageRendering?: Property$ImageRendering | Array<Property$ImageRendering>, + imageResolution?: Property$ImageResolution | Array<Property$ImageResolution>, + initialLetter?: Property$InitialLetter | Array<Property$InitialLetter>, + initialLetterAlign?: Property$InitialLetterAlign | Array<Property$InitialLetterAlign>, + inlineSize?: Property$InlineSize<TLength> | Array<Property$InlineSize<TLength>>, + insetBlockEnd?: Property$InsetBlockEnd<TLength> | Array<Property$InsetBlockEnd<TLength>>, + insetBlockStart?: Property$InsetBlockStart<TLength> | Array<Property$InsetBlockStart<TLength>>, + insetInlineEnd?: Property$InsetInlineEnd<TLength> | Array<Property$InsetInlineEnd<TLength>>, + insetInlineStart?: Property$InsetInlineStart<TLength> | Array<Property$InsetInlineStart<TLength>>, + interpolateSize?: Property$InterpolateSize | Array<Property$InterpolateSize>, + isolation?: Property$Isolation | Array<Property$Isolation>, + justifyContent?: Property$JustifyContent | Array<Property$JustifyContent>, + justifyItems?: Property$JustifyItems | Array<Property$JustifyItems>, + justifySelf?: Property$JustifySelf | Array<Property$JustifySelf>, + justifyTracks?: Property$JustifyTracks | Array<Property$JustifyTracks>, + left?: Property$Left<TLength> | Array<Property$Left<TLength>>, + letterSpacing?: Property$LetterSpacing<TLength> | Array<Property$LetterSpacing<TLength>>, + lightingColor?: Property$LightingColor | Array<Property$LightingColor>, + lineBreak?: Property$LineBreak | Array<Property$LineBreak>, + lineHeight?: Property$LineHeight<TLength> | Array<Property$LineHeight<TLength>>, + lineHeightStep?: Property$LineHeightStep<TLength> | Array<Property$LineHeightStep<TLength>>, + listStyleImage?: Property$ListStyleImage | Array<Property$ListStyleImage>, + listStylePosition?: Property$ListStylePosition | Array<Property$ListStylePosition>, + listStyleType?: Property$ListStyleType | Array<Property$ListStyleType>, + marginBlockEnd?: Property$MarginBlockEnd<TLength> | Array<Property$MarginBlockEnd<TLength>>, + marginBlockStart?: Property$MarginBlockStart<TLength> | Array<Property$MarginBlockStart<TLength>>, + marginBottom?: Property$MarginBottom<TLength> | Array<Property$MarginBottom<TLength>>, + marginInlineEnd?: Property$MarginInlineEnd<TLength> | Array<Property$MarginInlineEnd<TLength>>, + marginInlineStart?: Property$MarginInlineStart<TLength> | Array<Property$MarginInlineStart<TLength>>, + marginLeft?: Property$MarginLeft<TLength> | Array<Property$MarginLeft<TLength>>, + marginRight?: Property$MarginRight<TLength> | Array<Property$MarginRight<TLength>>, + marginTop?: Property$MarginTop<TLength> | Array<Property$MarginTop<TLength>>, + marginTrim?: Property$MarginTrim | Array<Property$MarginTrim>, + marker?: Property$Marker | Array<Property$Marker>, + markerEnd?: Property$MarkerEnd | Array<Property$MarkerEnd>, + markerMid?: Property$MarkerMid | Array<Property$MarkerMid>, + markerStart?: Property$MarkerStart | Array<Property$MarkerStart>, + maskBorderMode?: Property$MaskBorderMode | Array<Property$MaskBorderMode>, + maskBorderOutset?: Property$MaskBorderOutset<TLength> | Array<Property$MaskBorderOutset<TLength>>, + maskBorderRepeat?: Property$MaskBorderRepeat | Array<Property$MaskBorderRepeat>, + maskBorderSlice?: Property$MaskBorderSlice | Array<Property$MaskBorderSlice>, + maskBorderSource?: Property$MaskBorderSource | Array<Property$MaskBorderSource>, + maskBorderWidth?: Property$MaskBorderWidth<TLength> | Array<Property$MaskBorderWidth<TLength>>, + maskClip?: Property$MaskClip | Array<Property$MaskClip>, + maskComposite?: Property$MaskComposite | Array<Property$MaskComposite>, + maskImage?: Property$MaskImage | Array<Property$MaskImage>, + maskMode?: Property$MaskMode | Array<Property$MaskMode>, + maskOrigin?: Property$MaskOrigin | Array<Property$MaskOrigin>, + maskPosition?: Property$MaskPosition<TLength> | Array<Property$MaskPosition<TLength>>, + maskRepeat?: Property$MaskRepeat | Array<Property$MaskRepeat>, + maskSize?: Property$MaskSize<TLength> | Array<Property$MaskSize<TLength>>, + maskType?: Property$MaskType | Array<Property$MaskType>, + masonryAutoFlow?: Property$MasonryAutoFlow | Array<Property$MasonryAutoFlow>, + mathDepth?: Property$MathDepth | Array<Property$MathDepth>, + mathShift?: Property$MathShift | Array<Property$MathShift>, + mathStyle?: Property$MathStyle | Array<Property$MathStyle>, + maxBlockSize?: Property$MaxBlockSize<TLength> | Array<Property$MaxBlockSize<TLength>>, + maxHeight?: Property$MaxHeight<TLength> | Array<Property$MaxHeight<TLength>>, + maxInlineSize?: Property$MaxInlineSize<TLength> | Array<Property$MaxInlineSize<TLength>>, + maxLines?: Property$MaxLines | Array<Property$MaxLines>, + maxWidth?: Property$MaxWidth<TLength> | Array<Property$MaxWidth<TLength>>, + minBlockSize?: Property$MinBlockSize<TLength> | Array<Property$MinBlockSize<TLength>>, + minHeight?: Property$MinHeight<TLength> | Array<Property$MinHeight<TLength>>, + minInlineSize?: Property$MinInlineSize<TLength> | Array<Property$MinInlineSize<TLength>>, + minWidth?: Property$MinWidth<TLength> | Array<Property$MinWidth<TLength>>, + mixBlendMode?: Property$MixBlendMode | Array<Property$MixBlendMode>, + motionDistance?: Property$OffsetDistance<TLength> | Array<Property$OffsetDistance<TLength>>, + motionPath?: Property$OffsetPath | Array<Property$OffsetPath>, + motionRotation?: Property$OffsetRotate | Array<Property$OffsetRotate>, + objectFit?: Property$ObjectFit | Array<Property$ObjectFit>, + objectPosition?: Property$ObjectPosition<TLength> | Array<Property$ObjectPosition<TLength>>, + objectViewBox?: Property$ObjectViewBox | Array<Property$ObjectViewBox>, + offsetAnchor?: Property$OffsetAnchor<TLength> | Array<Property$OffsetAnchor<TLength>>, + offsetDistance?: Property$OffsetDistance<TLength> | Array<Property$OffsetDistance<TLength>>, + offsetPath?: Property$OffsetPath | Array<Property$OffsetPath>, + offsetPosition?: Property$OffsetPosition<TLength> | Array<Property$OffsetPosition<TLength>>, + offsetRotate?: Property$OffsetRotate | Array<Property$OffsetRotate>, + offsetRotation?: Property$OffsetRotate | Array<Property$OffsetRotate>, + opacity?: Property$Opacity | Array<Property$Opacity>, + order?: Property$Order | Array<Property$Order>, + orphans?: Property$Orphans | Array<Property$Orphans>, + outlineColor?: Property$OutlineColor | Array<Property$OutlineColor>, + outlineOffset?: Property$OutlineOffset<TLength> | Array<Property$OutlineOffset<TLength>>, + outlineStyle?: Property$OutlineStyle | Array<Property$OutlineStyle>, + outlineWidth?: Property$OutlineWidth<TLength> | Array<Property$OutlineWidth<TLength>>, + overflowAnchor?: Property$OverflowAnchor | Array<Property$OverflowAnchor>, + overflowBlock?: Property$OverflowBlock | Array<Property$OverflowBlock>, + overflowClipBox?: Property$OverflowClipBox | Array<Property$OverflowClipBox>, + overflowClipMargin?: Property$OverflowClipMargin<TLength> | Array<Property$OverflowClipMargin<TLength>>, + overflowInline?: Property$OverflowInline | Array<Property$OverflowInline>, + overflowWrap?: Property$OverflowWrap | Array<Property$OverflowWrap>, + overflowX?: Property$OverflowX | Array<Property$OverflowX>, + overflowY?: Property$OverflowY | Array<Property$OverflowY>, + overlay?: Property$Overlay | Array<Property$Overlay>, + overscrollBehaviorBlock?: Property$OverscrollBehaviorBlock | Array<Property$OverscrollBehaviorBlock>, + overscrollBehaviorInline?: Property$OverscrollBehaviorInline | Array<Property$OverscrollBehaviorInline>, + overscrollBehaviorX?: Property$OverscrollBehaviorX | Array<Property$OverscrollBehaviorX>, + overscrollBehaviorY?: Property$OverscrollBehaviorY | Array<Property$OverscrollBehaviorY>, + paddingBlockEnd?: Property$PaddingBlockEnd<TLength> | Array<Property$PaddingBlockEnd<TLength>>, + paddingBlockStart?: Property$PaddingBlockStart<TLength> | Array<Property$PaddingBlockStart<TLength>>, + paddingBottom?: Property$PaddingBottom<TLength> | Array<Property$PaddingBottom<TLength>>, + paddingInlineEnd?: Property$PaddingInlineEnd<TLength> | Array<Property$PaddingInlineEnd<TLength>>, + paddingInlineStart?: Property$PaddingInlineStart<TLength> | Array<Property$PaddingInlineStart<TLength>>, + paddingLeft?: Property$PaddingLeft<TLength> | Array<Property$PaddingLeft<TLength>>, + paddingRight?: Property$PaddingRight<TLength> | Array<Property$PaddingRight<TLength>>, + paddingTop?: Property$PaddingTop<TLength> | Array<Property$PaddingTop<TLength>>, + page?: Property$Page | Array<Property$Page>, + paintOrder?: Property$PaintOrder | Array<Property$PaintOrder>, + perspective?: Property$Perspective<TLength> | Array<Property$Perspective<TLength>>, + perspectiveOrigin?: Property$PerspectiveOrigin<TLength> | Array<Property$PerspectiveOrigin<TLength>>, + pointerEvents?: Property$PointerEvents | Array<Property$PointerEvents>, + position?: Property$Position | Array<Property$Position>, + positionAnchor?: Property$PositionAnchor | Array<Property$PositionAnchor>, + positionArea?: Property$PositionArea | Array<Property$PositionArea>, + positionTryFallbacks?: Property$PositionTryFallbacks | Array<Property$PositionTryFallbacks>, + positionTryOrder?: Property$PositionTryOrder | Array<Property$PositionTryOrder>, + positionVisibility?: Property$PositionVisibility | Array<Property$PositionVisibility>, + printColorAdjust?: Property$PrintColorAdjust | Array<Property$PrintColorAdjust>, + quotes?: Property$Quotes | Array<Property$Quotes>, + r?: Property$R<TLength> | Array<Property$R<TLength>>, + resize?: Property$Resize | Array<Property$Resize>, + right?: Property$Right<TLength> | Array<Property$Right<TLength>>, + rotate?: Property$Rotate | Array<Property$Rotate>, + rowGap?: Property$RowGap<TLength> | Array<Property$RowGap<TLength>>, + rubyAlign?: Property$RubyAlign | Array<Property$RubyAlign>, + rubyMerge?: Property$RubyMerge | Array<Property$RubyMerge>, + rubyOverhang?: Property$RubyOverhang | Array<Property$RubyOverhang>, + rubyPosition?: Property$RubyPosition | Array<Property$RubyPosition>, + rx?: Property$Rx<TLength> | Array<Property$Rx<TLength>>, + ry?: Property$Ry<TLength> | Array<Property$Ry<TLength>>, + scale?: Property$Scale | Array<Property$Scale>, + scrollBehavior?: Property$ScrollBehavior | Array<Property$ScrollBehavior>, + scrollInitialTarget?: Property$ScrollInitialTarget | Array<Property$ScrollInitialTarget>, + scrollMarginBlockEnd?: Property$ScrollMarginBlockEnd<TLength> | Array<Property$ScrollMarginBlockEnd<TLength>>, + scrollMarginBlockStart?: Property$ScrollMarginBlockStart<TLength> | Array<Property$ScrollMarginBlockStart<TLength>>, + scrollMarginBottom?: Property$ScrollMarginBottom<TLength> | Array<Property$ScrollMarginBottom<TLength>>, + scrollMarginInlineEnd?: Property$ScrollMarginInlineEnd<TLength> | Array<Property$ScrollMarginInlineEnd<TLength>>, + scrollMarginInlineStart?: Property$ScrollMarginInlineStart<TLength> | Array<Property$ScrollMarginInlineStart<TLength>>, + scrollMarginLeft?: Property$ScrollMarginLeft<TLength> | Array<Property$ScrollMarginLeft<TLength>>, + scrollMarginRight?: Property$ScrollMarginRight<TLength> | Array<Property$ScrollMarginRight<TLength>>, + scrollMarginTop?: Property$ScrollMarginTop<TLength> | Array<Property$ScrollMarginTop<TLength>>, + scrollPaddingBlockEnd?: Property$ScrollPaddingBlockEnd<TLength> | Array<Property$ScrollPaddingBlockEnd<TLength>>, + scrollPaddingBlockStart?: Property$ScrollPaddingBlockStart<TLength> | Array<Property$ScrollPaddingBlockStart<TLength>>, + scrollPaddingBottom?: Property$ScrollPaddingBottom<TLength> | Array<Property$ScrollPaddingBottom<TLength>>, + scrollPaddingInlineEnd?: Property$ScrollPaddingInlineEnd<TLength> | Array<Property$ScrollPaddingInlineEnd<TLength>>, + scrollPaddingInlineStart?: Property$ScrollPaddingInlineStart<TLength> | Array<Property$ScrollPaddingInlineStart<TLength>>, + scrollPaddingLeft?: Property$ScrollPaddingLeft<TLength> | Array<Property$ScrollPaddingLeft<TLength>>, + scrollPaddingRight?: Property$ScrollPaddingRight<TLength> | Array<Property$ScrollPaddingRight<TLength>>, + scrollPaddingTop?: Property$ScrollPaddingTop<TLength> | Array<Property$ScrollPaddingTop<TLength>>, + scrollSnapAlign?: Property$ScrollSnapAlign | Array<Property$ScrollSnapAlign>, + scrollSnapMarginBottom?: Property$ScrollMarginBottom<TLength> | Array<Property$ScrollMarginBottom<TLength>>, + scrollSnapMarginLeft?: Property$ScrollMarginLeft<TLength> | Array<Property$ScrollMarginLeft<TLength>>, + scrollSnapMarginRight?: Property$ScrollMarginRight<TLength> | Array<Property$ScrollMarginRight<TLength>>, + scrollSnapMarginTop?: Property$ScrollMarginTop<TLength> | Array<Property$ScrollMarginTop<TLength>>, + scrollSnapStop?: Property$ScrollSnapStop | Array<Property$ScrollSnapStop>, + scrollSnapType?: Property$ScrollSnapType | Array<Property$ScrollSnapType>, + scrollTimelineAxis?: Property$ScrollTimelineAxis | Array<Property$ScrollTimelineAxis>, + scrollTimelineName?: Property$ScrollTimelineName | Array<Property$ScrollTimelineName>, + scrollbarColor?: Property$ScrollbarColor | Array<Property$ScrollbarColor>, + scrollbarGutter?: Property$ScrollbarGutter | Array<Property$ScrollbarGutter>, + scrollbarWidth?: Property$ScrollbarWidth | Array<Property$ScrollbarWidth>, + shapeImageThreshold?: Property$ShapeImageThreshold | Array<Property$ShapeImageThreshold>, + shapeMargin?: Property$ShapeMargin<TLength> | Array<Property$ShapeMargin<TLength>>, + shapeOutside?: Property$ShapeOutside | Array<Property$ShapeOutside>, + shapeRendering?: Property$ShapeRendering | Array<Property$ShapeRendering>, + speakAs?: Property$SpeakAs | Array<Property$SpeakAs>, + stopColor?: Property$StopColor | Array<Property$StopColor>, + stopOpacity?: Property$StopOpacity | Array<Property$StopOpacity>, + stroke?: Property$Stroke | Array<Property$Stroke>, + strokeColor?: Property$StrokeColor | Array<Property$StrokeColor>, + strokeDasharray?: Property$StrokeDasharray<TLength> | Array<Property$StrokeDasharray<TLength>>, + strokeDashoffset?: Property$StrokeDashoffset<TLength> | Array<Property$StrokeDashoffset<TLength>>, + strokeLinecap?: Property$StrokeLinecap | Array<Property$StrokeLinecap>, + strokeLinejoin?: Property$StrokeLinejoin | Array<Property$StrokeLinejoin>, + strokeMiterlimit?: Property$StrokeMiterlimit | Array<Property$StrokeMiterlimit>, + strokeOpacity?: Property$StrokeOpacity | Array<Property$StrokeOpacity>, + strokeWidth?: Property$StrokeWidth<TLength> | Array<Property$StrokeWidth<TLength>>, + tabSize?: Property$TabSize<TLength> | Array<Property$TabSize<TLength>>, + tableLayout?: Property$TableLayout | Array<Property$TableLayout>, + textAlign?: Property$TextAlign | Array<Property$TextAlign>, + textAlignLast?: Property$TextAlignLast | Array<Property$TextAlignLast>, + textAnchor?: Property$TextAnchor | Array<Property$TextAnchor>, + textAutospace?: Property$TextAutospace | Array<Property$TextAutospace>, + textBox?: Property$TextBox | Array<Property$TextBox>, + textBoxEdge?: Property$TextBoxEdge | Array<Property$TextBoxEdge>, + textBoxTrim?: Property$TextBoxTrim | Array<Property$TextBoxTrim>, + textCombineUpright?: Property$TextCombineUpright | Array<Property$TextCombineUpright>, + textDecorationColor?: Property$TextDecorationColor | Array<Property$TextDecorationColor>, + textDecorationLine?: Property$TextDecorationLine | Array<Property$TextDecorationLine>, + textDecorationSkip?: Property$TextDecorationSkip | Array<Property$TextDecorationSkip>, + textDecorationSkipInk?: Property$TextDecorationSkipInk | Array<Property$TextDecorationSkipInk>, + textDecorationStyle?: Property$TextDecorationStyle | Array<Property$TextDecorationStyle>, + textDecorationThickness?: Property$TextDecorationThickness<TLength> | Array<Property$TextDecorationThickness<TLength>>, + textEmphasisColor?: Property$TextEmphasisColor | Array<Property$TextEmphasisColor>, + textEmphasisPosition?: Property$TextEmphasisPosition | Array<Property$TextEmphasisPosition>, + textEmphasisStyle?: Property$TextEmphasisStyle | Array<Property$TextEmphasisStyle>, + textIndent?: Property$TextIndent<TLength> | Array<Property$TextIndent<TLength>>, + textJustify?: Property$TextJustify | Array<Property$TextJustify>, + textOrientation?: Property$TextOrientation | Array<Property$TextOrientation>, + textOverflow?: Property$TextOverflow | Array<Property$TextOverflow>, + textRendering?: Property$TextRendering | Array<Property$TextRendering>, + textShadow?: Property$TextShadow | Array<Property$TextShadow>, + textSizeAdjust?: Property$TextSizeAdjust | Array<Property$TextSizeAdjust>, + textSpacingTrim?: Property$TextSpacingTrim | Array<Property$TextSpacingTrim>, + textTransform?: Property$TextTransform | Array<Property$TextTransform>, + textUnderlineOffset?: Property$TextUnderlineOffset<TLength> | Array<Property$TextUnderlineOffset<TLength>>, + textUnderlinePosition?: Property$TextUnderlinePosition | Array<Property$TextUnderlinePosition>, + textWrapMode?: Property$TextWrapMode | Array<Property$TextWrapMode>, + textWrapStyle?: Property$TextWrapStyle | Array<Property$TextWrapStyle>, + timelineScope?: Property$TimelineScope | Array<Property$TimelineScope>, + top?: Property$Top<TLength> | Array<Property$Top<TLength>>, + touchAction?: Property$TouchAction | Array<Property$TouchAction>, + transform?: Property$Transform | Array<Property$Transform>, + transformBox?: Property$TransformBox | Array<Property$TransformBox>, + transformOrigin?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + transformStyle?: Property$TransformStyle | Array<Property$TransformStyle>, + transitionBehavior?: Property$TransitionBehavior | Array<Property$TransitionBehavior>, + transitionDelay?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + transitionDuration?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + transitionProperty?: Property$TransitionProperty | Array<Property$TransitionProperty>, + transitionTimingFunction?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + translate?: Property$Translate<TLength> | Array<Property$Translate<TLength>>, + unicodeBidi?: Property$UnicodeBidi | Array<Property$UnicodeBidi>, + userSelect?: Property$UserSelect | Array<Property$UserSelect>, + vectorEffect?: Property$VectorEffect | Array<Property$VectorEffect>, + verticalAlign?: Property$VerticalAlign<TLength> | Array<Property$VerticalAlign<TLength>>, + viewTimelineAxis?: Property$ViewTimelineAxis | Array<Property$ViewTimelineAxis>, + viewTimelineInset?: Property$ViewTimelineInset<TLength> | Array<Property$ViewTimelineInset<TLength>>, + viewTimelineName?: Property$ViewTimelineName | Array<Property$ViewTimelineName>, + viewTransitionClass?: Property$ViewTransitionClass | Array<Property$ViewTransitionClass>, + viewTransitionName?: Property$ViewTransitionName | Array<Property$ViewTransitionName>, + visibility?: Property$Visibility | Array<Property$Visibility>, + whiteSpace?: Property$WhiteSpace | Array<Property$WhiteSpace>, + whiteSpaceCollapse?: Property$WhiteSpaceCollapse | Array<Property$WhiteSpaceCollapse>, + widows?: Property$Widows | Array<Property$Widows>, + width?: Property$Width<TLength> | Array<Property$Width<TLength>>, + willChange?: Property$WillChange | Array<Property$WillChange>, + wordBreak?: Property$WordBreak | Array<Property$WordBreak>, + wordSpacing?: Property$WordSpacing<TLength> | Array<Property$WordSpacing<TLength>>, + wordWrap?: Property$WordWrap | Array<Property$WordWrap>, + writingMode?: Property$WritingMode | Array<Property$WritingMode>, + x?: Property$X<TLength> | Array<Property$X<TLength>>, + y?: Property$Y<TLength> | Array<Property$Y<TLength>>, + zIndex?: Property$ZIndex | Array<Property$ZIndex>, + zoom?: Property$Zoom | Array<Property$Zoom>, +|}; + +export type StandardShorthandPropertiesFallback<TLength = string | 0, TTime = string> = {| + all?: Property$All | Array<Property$All>, + animation?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + animationRange?: Property$AnimationRange<TLength> | Array<Property$AnimationRange<TLength>>, + background?: Property$Background<TLength> | Array<Property$Background<TLength>>, + backgroundPosition?: Property$BackgroundPosition<TLength> | Array<Property$BackgroundPosition<TLength>>, + border?: Property$Border<TLength> | Array<Property$Border<TLength>>, + borderBlock?: Property$BorderBlock<TLength> | Array<Property$BorderBlock<TLength>>, + borderBlockColor?: Property$BorderBlockColor | Array<Property$BorderBlockColor>, + borderBlockEnd?: Property$BorderBlockEnd<TLength> | Array<Property$BorderBlockEnd<TLength>>, + borderBlockStart?: Property$BorderBlockStart<TLength> | Array<Property$BorderBlockStart<TLength>>, + borderBlockStyle?: Property$BorderBlockStyle | Array<Property$BorderBlockStyle>, + borderBlockWidth?: Property$BorderBlockWidth<TLength> | Array<Property$BorderBlockWidth<TLength>>, + borderBottom?: Property$BorderBottom<TLength> | Array<Property$BorderBottom<TLength>>, + borderColor?: Property$BorderColor | Array<Property$BorderColor>, + borderImage?: Property$BorderImage | Array<Property$BorderImage>, + borderInline?: Property$BorderInline<TLength> | Array<Property$BorderInline<TLength>>, + borderInlineColor?: Property$BorderInlineColor | Array<Property$BorderInlineColor>, + borderInlineEnd?: Property$BorderInlineEnd<TLength> | Array<Property$BorderInlineEnd<TLength>>, + borderInlineStart?: Property$BorderInlineStart<TLength> | Array<Property$BorderInlineStart<TLength>>, + borderInlineStyle?: Property$BorderInlineStyle | Array<Property$BorderInlineStyle>, + borderInlineWidth?: Property$BorderInlineWidth<TLength> | Array<Property$BorderInlineWidth<TLength>>, + borderLeft?: Property$BorderLeft<TLength> | Array<Property$BorderLeft<TLength>>, + borderRadius?: Property$BorderRadius<TLength> | Array<Property$BorderRadius<TLength>>, + borderRight?: Property$BorderRight<TLength> | Array<Property$BorderRight<TLength>>, + borderStyle?: Property$BorderStyle | Array<Property$BorderStyle>, + borderTop?: Property$BorderTop<TLength> | Array<Property$BorderTop<TLength>>, + borderWidth?: Property$BorderWidth<TLength> | Array<Property$BorderWidth<TLength>>, + caret?: Property$Caret | Array<Property$Caret>, + columnRule?: Property$ColumnRule<TLength> | Array<Property$ColumnRule<TLength>>, + columns?: Property$Columns<TLength> | Array<Property$Columns<TLength>>, + containIntrinsicSize?: Property$ContainIntrinsicSize<TLength> | Array<Property$ContainIntrinsicSize<TLength>>, + container?: Property$Container | Array<Property$Container>, + flex?: Property$Flex<TLength> | Array<Property$Flex<TLength>>, + flexFlow?: Property$FlexFlow | Array<Property$FlexFlow>, + font?: Property$Font | Array<Property$Font>, + gap?: Property$Gap<TLength> | Array<Property$Gap<TLength>>, + grid?: Property$Grid | Array<Property$Grid>, + gridArea?: Property$GridArea | Array<Property$GridArea>, + gridColumn?: Property$GridColumn | Array<Property$GridColumn>, + gridRow?: Property$GridRow | Array<Property$GridRow>, + gridTemplate?: Property$GridTemplate | Array<Property$GridTemplate>, + inset?: Property$Inset<TLength> | Array<Property$Inset<TLength>>, + insetBlock?: Property$InsetBlock<TLength> | Array<Property$InsetBlock<TLength>>, + insetInline?: Property$InsetInline<TLength> | Array<Property$InsetInline<TLength>>, + lineClamp?: Property$LineClamp | Array<Property$LineClamp>, + listStyle?: Property$ListStyle | Array<Property$ListStyle>, + margin?: Property$Margin<TLength> | Array<Property$Margin<TLength>>, + marginBlock?: Property$MarginBlock<TLength> | Array<Property$MarginBlock<TLength>>, + marginInline?: Property$MarginInline<TLength> | Array<Property$MarginInline<TLength>>, + mask?: Property$Mask<TLength> | Array<Property$Mask<TLength>>, + maskBorder?: Property$MaskBorder | Array<Property$MaskBorder>, + motion?: Property$Offset<TLength> | Array<Property$Offset<TLength>>, + offset?: Property$Offset<TLength> | Array<Property$Offset<TLength>>, + outline?: Property$Outline<TLength> | Array<Property$Outline<TLength>>, + overflow?: Property$Overflow | Array<Property$Overflow>, + overscrollBehavior?: Property$OverscrollBehavior | Array<Property$OverscrollBehavior>, + padding?: Property$Padding<TLength> | Array<Property$Padding<TLength>>, + paddingBlock?: Property$PaddingBlock<TLength> | Array<Property$PaddingBlock<TLength>>, + paddingInline?: Property$PaddingInline<TLength> | Array<Property$PaddingInline<TLength>>, + placeContent?: Property$PlaceContent | Array<Property$PlaceContent>, + placeItems?: Property$PlaceItems | Array<Property$PlaceItems>, + placeSelf?: Property$PlaceSelf | Array<Property$PlaceSelf>, + positionTry?: Property$PositionTry | Array<Property$PositionTry>, + scrollMargin?: Property$ScrollMargin<TLength> | Array<Property$ScrollMargin<TLength>>, + scrollMarginBlock?: Property$ScrollMarginBlock<TLength> | Array<Property$ScrollMarginBlock<TLength>>, + scrollMarginInline?: Property$ScrollMarginInline<TLength> | Array<Property$ScrollMarginInline<TLength>>, + scrollPadding?: Property$ScrollPadding<TLength> | Array<Property$ScrollPadding<TLength>>, + scrollPaddingBlock?: Property$ScrollPaddingBlock<TLength> | Array<Property$ScrollPaddingBlock<TLength>>, + scrollPaddingInline?: Property$ScrollPaddingInline<TLength> | Array<Property$ScrollPaddingInline<TLength>>, + scrollSnapMargin?: Property$ScrollMargin<TLength> | Array<Property$ScrollMargin<TLength>>, + scrollTimeline?: Property$ScrollTimeline | Array<Property$ScrollTimeline>, + textDecoration?: Property$TextDecoration<TLength> | Array<Property$TextDecoration<TLength>>, + textEmphasis?: Property$TextEmphasis | Array<Property$TextEmphasis>, + textWrap?: Property$TextWrap | Array<Property$TextWrap>, + transition?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + viewTimeline?: Property$ViewTimeline | Array<Property$ViewTimeline>, +|}; + +export type StandardPropertiesFallback<TLength = string | 0, TTime = string> = {| + ...StandardLonghandPropertiesFallback<TLength, TTime>, + ...StandardShorthandPropertiesFallback<TLength, TTime>, +|}; + +export type VendorLonghandPropertiesFallback<TLength = string | 0, TTime = string> = {| + MozAnimationDelay?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + MozAnimationDirection?: Property$AnimationDirection | Array<Property$AnimationDirection>, + MozAnimationDuration?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + MozAnimationFillMode?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + MozAnimationIterationCount?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + MozAnimationName?: Property$AnimationName | Array<Property$AnimationName>, + MozAnimationPlayState?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + MozAnimationTimingFunction?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + MozAppearance?: Property$MozAppearance | Array<Property$MozAppearance>, + MozBackfaceVisibility?: Property$BackfaceVisibility | Array<Property$BackfaceVisibility>, + MozBinding?: Property$MozBinding | Array<Property$MozBinding>, + MozBorderBottomColors?: Property$MozBorderBottomColors | Array<Property$MozBorderBottomColors>, + MozBorderEndColor?: Property$BorderInlineEndColor | Array<Property$BorderInlineEndColor>, + MozBorderEndStyle?: Property$BorderInlineEndStyle | Array<Property$BorderInlineEndStyle>, + MozBorderEndWidth?: Property$BorderInlineEndWidth<TLength> | Array<Property$BorderInlineEndWidth<TLength>>, + MozBorderLeftColors?: Property$MozBorderLeftColors | Array<Property$MozBorderLeftColors>, + MozBorderRightColors?: Property$MozBorderRightColors | Array<Property$MozBorderRightColors>, + MozBorderStartColor?: Property$BorderInlineStartColor | Array<Property$BorderInlineStartColor>, + MozBorderStartStyle?: Property$BorderInlineStartStyle | Array<Property$BorderInlineStartStyle>, + MozBorderTopColors?: Property$MozBorderTopColors | Array<Property$MozBorderTopColors>, + MozBoxSizing?: Property$BoxSizing | Array<Property$BoxSizing>, + MozColumnRuleColor?: Property$ColumnRuleColor | Array<Property$ColumnRuleColor>, + MozColumnRuleStyle?: Property$ColumnRuleStyle | Array<Property$ColumnRuleStyle>, + MozColumnRuleWidth?: Property$ColumnRuleWidth<TLength> | Array<Property$ColumnRuleWidth<TLength>>, + MozColumnWidth?: Property$ColumnWidth<TLength> | Array<Property$ColumnWidth<TLength>>, + MozContextProperties?: Property$MozContextProperties | Array<Property$MozContextProperties>, + MozFontFeatureSettings?: Property$FontFeatureSettings | Array<Property$FontFeatureSettings>, + MozFontLanguageOverride?: Property$FontLanguageOverride | Array<Property$FontLanguageOverride>, + MozHyphens?: Property$Hyphens | Array<Property$Hyphens>, + MozMarginEnd?: Property$MarginInlineEnd<TLength> | Array<Property$MarginInlineEnd<TLength>>, + MozMarginStart?: Property$MarginInlineStart<TLength> | Array<Property$MarginInlineStart<TLength>>, + MozOrient?: Property$MozOrient | Array<Property$MozOrient>, + MozOsxFontSmoothing?: Property$FontSmooth<TLength> | Array<Property$FontSmooth<TLength>>, + MozOutlineRadiusBottomleft?: Property$MozOutlineRadiusBottomleft<TLength> | Array<Property$MozOutlineRadiusBottomleft<TLength>>, + MozOutlineRadiusBottomright?: Property$MozOutlineRadiusBottomright<TLength> | Array<Property$MozOutlineRadiusBottomright<TLength>>, + MozOutlineRadiusTopleft?: Property$MozOutlineRadiusTopleft<TLength> | Array<Property$MozOutlineRadiusTopleft<TLength>>, + MozOutlineRadiusTopright?: Property$MozOutlineRadiusTopright<TLength> | Array<Property$MozOutlineRadiusTopright<TLength>>, + MozPaddingEnd?: Property$PaddingInlineEnd<TLength> | Array<Property$PaddingInlineEnd<TLength>>, + MozPaddingStart?: Property$PaddingInlineStart<TLength> | Array<Property$PaddingInlineStart<TLength>>, + MozPerspective?: Property$Perspective<TLength> | Array<Property$Perspective<TLength>>, + MozPerspectiveOrigin?: Property$PerspectiveOrigin<TLength> | Array<Property$PerspectiveOrigin<TLength>>, + MozStackSizing?: Property$MozStackSizing | Array<Property$MozStackSizing>, + MozTabSize?: Property$TabSize<TLength> | Array<Property$TabSize<TLength>>, + MozTextBlink?: Property$MozTextBlink | Array<Property$MozTextBlink>, + MozTextSizeAdjust?: Property$TextSizeAdjust | Array<Property$TextSizeAdjust>, + MozTransform?: Property$Transform | Array<Property$Transform>, + MozTransformOrigin?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + MozTransformStyle?: Property$TransformStyle | Array<Property$TransformStyle>, + MozUserModify?: Property$MozUserModify | Array<Property$MozUserModify>, + MozUserSelect?: Property$UserSelect | Array<Property$UserSelect>, + MozWindowDragging?: Property$MozWindowDragging | Array<Property$MozWindowDragging>, + MozWindowShadow?: Property$MozWindowShadow | Array<Property$MozWindowShadow>, + msAccelerator?: Property$MsAccelerator | Array<Property$MsAccelerator>, + msBlockProgression?: Property$MsBlockProgression | Array<Property$MsBlockProgression>, + msContentZoomChaining?: Property$MsContentZoomChaining | Array<Property$MsContentZoomChaining>, + msContentZoomLimitMax?: Property$MsContentZoomLimitMax | Array<Property$MsContentZoomLimitMax>, + msContentZoomLimitMin?: Property$MsContentZoomLimitMin | Array<Property$MsContentZoomLimitMin>, + msContentZoomSnapPoints?: Property$MsContentZoomSnapPoints | Array<Property$MsContentZoomSnapPoints>, + msContentZoomSnapType?: Property$MsContentZoomSnapType | Array<Property$MsContentZoomSnapType>, + msContentZooming?: Property$MsContentZooming | Array<Property$MsContentZooming>, + msFilter?: Property$MsFilter | Array<Property$MsFilter>, + msFlexDirection?: Property$FlexDirection | Array<Property$FlexDirection>, + msFlexPositive?: Property$FlexGrow | Array<Property$FlexGrow>, + msFlowFrom?: Property$MsFlowFrom | Array<Property$MsFlowFrom>, + msFlowInto?: Property$MsFlowInto | Array<Property$MsFlowInto>, + msGridColumns?: Property$MsGridColumns<TLength> | Array<Property$MsGridColumns<TLength>>, + msGridRows?: Property$MsGridRows<TLength> | Array<Property$MsGridRows<TLength>>, + msHighContrastAdjust?: Property$MsHighContrastAdjust | Array<Property$MsHighContrastAdjust>, + msHyphenateLimitChars?: Property$MsHyphenateLimitChars | Array<Property$MsHyphenateLimitChars>, + msHyphenateLimitLines?: Property$MsHyphenateLimitLines | Array<Property$MsHyphenateLimitLines>, + msHyphenateLimitZone?: Property$MsHyphenateLimitZone<TLength> | Array<Property$MsHyphenateLimitZone<TLength>>, + msHyphens?: Property$Hyphens | Array<Property$Hyphens>, + msImeAlign?: Property$MsImeAlign | Array<Property$MsImeAlign>, + msLineBreak?: Property$LineBreak | Array<Property$LineBreak>, + msOrder?: Property$Order | Array<Property$Order>, + msOverflowStyle?: Property$MsOverflowStyle | Array<Property$MsOverflowStyle>, + msOverflowX?: Property$OverflowX | Array<Property$OverflowX>, + msOverflowY?: Property$OverflowY | Array<Property$OverflowY>, + msScrollChaining?: Property$MsScrollChaining | Array<Property$MsScrollChaining>, + msScrollLimitXMax?: Property$MsScrollLimitXMax<TLength> | Array<Property$MsScrollLimitXMax<TLength>>, + msScrollLimitXMin?: Property$MsScrollLimitXMin<TLength> | Array<Property$MsScrollLimitXMin<TLength>>, + msScrollLimitYMax?: Property$MsScrollLimitYMax<TLength> | Array<Property$MsScrollLimitYMax<TLength>>, + msScrollLimitYMin?: Property$MsScrollLimitYMin<TLength> | Array<Property$MsScrollLimitYMin<TLength>>, + msScrollRails?: Property$MsScrollRails | Array<Property$MsScrollRails>, + msScrollSnapPointsX?: Property$MsScrollSnapPointsX | Array<Property$MsScrollSnapPointsX>, + msScrollSnapPointsY?: Property$MsScrollSnapPointsY | Array<Property$MsScrollSnapPointsY>, + msScrollSnapType?: Property$MsScrollSnapType | Array<Property$MsScrollSnapType>, + msScrollTranslation?: Property$MsScrollTranslation | Array<Property$MsScrollTranslation>, + msScrollbar3dlightColor?: Property$MsScrollbar3dlightColor | Array<Property$MsScrollbar3dlightColor>, + msScrollbarArrowColor?: Property$MsScrollbarArrowColor | Array<Property$MsScrollbarArrowColor>, + msScrollbarBaseColor?: Property$MsScrollbarBaseColor | Array<Property$MsScrollbarBaseColor>, + msScrollbarDarkshadowColor?: Property$MsScrollbarDarkshadowColor | Array<Property$MsScrollbarDarkshadowColor>, + msScrollbarFaceColor?: Property$MsScrollbarFaceColor | Array<Property$MsScrollbarFaceColor>, + msScrollbarHighlightColor?: Property$MsScrollbarHighlightColor | Array<Property$MsScrollbarHighlightColor>, + msScrollbarShadowColor?: Property$MsScrollbarShadowColor | Array<Property$MsScrollbarShadowColor>, + msScrollbarTrackColor?: Property$MsScrollbarTrackColor | Array<Property$MsScrollbarTrackColor>, + msTextAutospace?: Property$MsTextAutospace | Array<Property$MsTextAutospace>, + msTextCombineHorizontal?: Property$TextCombineUpright | Array<Property$TextCombineUpright>, + msTextOverflow?: Property$TextOverflow | Array<Property$TextOverflow>, + msTouchAction?: Property$TouchAction | Array<Property$TouchAction>, + msTouchSelect?: Property$MsTouchSelect | Array<Property$MsTouchSelect>, + msTransform?: Property$Transform | Array<Property$Transform>, + msTransformOrigin?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + msTransitionDelay?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + msTransitionDuration?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + msTransitionProperty?: Property$TransitionProperty | Array<Property$TransitionProperty>, + msTransitionTimingFunction?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + msUserSelect?: Property$MsUserSelect | Array<Property$MsUserSelect>, + msWordBreak?: Property$WordBreak | Array<Property$WordBreak>, + msWrapFlow?: Property$MsWrapFlow | Array<Property$MsWrapFlow>, + msWrapMargin?: Property$MsWrapMargin<TLength> | Array<Property$MsWrapMargin<TLength>>, + msWrapThrough?: Property$MsWrapThrough | Array<Property$MsWrapThrough>, + msWritingMode?: Property$WritingMode | Array<Property$WritingMode>, + WebkitAlignContent?: Property$AlignContent | Array<Property$AlignContent>, + WebkitAlignItems?: Property$AlignItems | Array<Property$AlignItems>, + WebkitAlignSelf?: Property$AlignSelf | Array<Property$AlignSelf>, + WebkitAnimationDelay?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + WebkitAnimationDirection?: Property$AnimationDirection | Array<Property$AnimationDirection>, + WebkitAnimationDuration?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + WebkitAnimationFillMode?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + WebkitAnimationIterationCount?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + WebkitAnimationName?: Property$AnimationName | Array<Property$AnimationName>, + WebkitAnimationPlayState?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + WebkitAnimationTimingFunction?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + WebkitAppearance?: Property$WebkitAppearance | Array<Property$WebkitAppearance>, + WebkitBackdropFilter?: Property$BackdropFilter | Array<Property$BackdropFilter>, + WebkitBackfaceVisibility?: Property$BackfaceVisibility | Array<Property$BackfaceVisibility>, + WebkitBackgroundClip?: Property$BackgroundClip | Array<Property$BackgroundClip>, + WebkitBackgroundOrigin?: Property$BackgroundOrigin | Array<Property$BackgroundOrigin>, + WebkitBackgroundSize?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + WebkitBorderBeforeColor?: Property$WebkitBorderBeforeColor | Array<Property$WebkitBorderBeforeColor>, + WebkitBorderBeforeStyle?: Property$WebkitBorderBeforeStyle | Array<Property$WebkitBorderBeforeStyle>, + WebkitBorderBeforeWidth?: Property$WebkitBorderBeforeWidth<TLength> | Array<Property$WebkitBorderBeforeWidth<TLength>>, + WebkitBorderBottomLeftRadius?: Property$BorderBottomLeftRadius<TLength> | Array<Property$BorderBottomLeftRadius<TLength>>, + WebkitBorderBottomRightRadius?: Property$BorderBottomRightRadius<TLength> | Array<Property$BorderBottomRightRadius<TLength>>, + WebkitBorderImageSlice?: Property$BorderImageSlice | Array<Property$BorderImageSlice>, + WebkitBorderTopLeftRadius?: Property$BorderTopLeftRadius<TLength> | Array<Property$BorderTopLeftRadius<TLength>>, + WebkitBorderTopRightRadius?: Property$BorderTopRightRadius<TLength> | Array<Property$BorderTopRightRadius<TLength>>, + WebkitBoxDecorationBreak?: Property$BoxDecorationBreak | Array<Property$BoxDecorationBreak>, + WebkitBoxReflect?: Property$WebkitBoxReflect<TLength> | Array<Property$WebkitBoxReflect<TLength>>, + WebkitBoxShadow?: Property$BoxShadow | Array<Property$BoxShadow>, + WebkitBoxSizing?: Property$BoxSizing | Array<Property$BoxSizing>, + WebkitClipPath?: Property$ClipPath | Array<Property$ClipPath>, + WebkitColumnCount?: Property$ColumnCount | Array<Property$ColumnCount>, + WebkitColumnFill?: Property$ColumnFill | Array<Property$ColumnFill>, + WebkitColumnRuleColor?: Property$ColumnRuleColor | Array<Property$ColumnRuleColor>, + WebkitColumnRuleStyle?: Property$ColumnRuleStyle | Array<Property$ColumnRuleStyle>, + WebkitColumnRuleWidth?: Property$ColumnRuleWidth<TLength> | Array<Property$ColumnRuleWidth<TLength>>, + WebkitColumnSpan?: Property$ColumnSpan | Array<Property$ColumnSpan>, + WebkitColumnWidth?: Property$ColumnWidth<TLength> | Array<Property$ColumnWidth<TLength>>, + WebkitFilter?: Property$Filter | Array<Property$Filter>, + WebkitFlexBasis?: Property$FlexBasis<TLength> | Array<Property$FlexBasis<TLength>>, + WebkitFlexDirection?: Property$FlexDirection | Array<Property$FlexDirection>, + WebkitFlexGrow?: Property$FlexGrow | Array<Property$FlexGrow>, + WebkitFlexShrink?: Property$FlexShrink | Array<Property$FlexShrink>, + WebkitFlexWrap?: Property$FlexWrap | Array<Property$FlexWrap>, + WebkitFontFeatureSettings?: Property$FontFeatureSettings | Array<Property$FontFeatureSettings>, + WebkitFontKerning?: Property$FontKerning | Array<Property$FontKerning>, + WebkitFontSmoothing?: Property$FontSmooth<TLength> | Array<Property$FontSmooth<TLength>>, + WebkitFontVariantLigatures?: Property$FontVariantLigatures | Array<Property$FontVariantLigatures>, + WebkitHyphenateCharacter?: Property$HyphenateCharacter | Array<Property$HyphenateCharacter>, + WebkitHyphens?: Property$Hyphens | Array<Property$Hyphens>, + WebkitInitialLetter?: Property$InitialLetter | Array<Property$InitialLetter>, + WebkitJustifyContent?: Property$JustifyContent | Array<Property$JustifyContent>, + WebkitLineBreak?: Property$LineBreak | Array<Property$LineBreak>, + WebkitLineClamp?: Property$WebkitLineClamp | Array<Property$WebkitLineClamp>, + WebkitLogicalHeight?: Property$BlockSize<TLength> | Array<Property$BlockSize<TLength>>, + WebkitLogicalWidth?: Property$InlineSize<TLength> | Array<Property$InlineSize<TLength>>, + WebkitMarginEnd?: Property$MarginInlineEnd<TLength> | Array<Property$MarginInlineEnd<TLength>>, + WebkitMarginStart?: Property$MarginInlineStart<TLength> | Array<Property$MarginInlineStart<TLength>>, + WebkitMaskAttachment?: Property$WebkitMaskAttachment | Array<Property$WebkitMaskAttachment>, + WebkitMaskBoxImageOutset?: Property$MaskBorderOutset<TLength> | Array<Property$MaskBorderOutset<TLength>>, + WebkitMaskBoxImageRepeat?: Property$MaskBorderRepeat | Array<Property$MaskBorderRepeat>, + WebkitMaskBoxImageSlice?: Property$MaskBorderSlice | Array<Property$MaskBorderSlice>, + WebkitMaskBoxImageSource?: Property$MaskBorderSource | Array<Property$MaskBorderSource>, + WebkitMaskBoxImageWidth?: Property$MaskBorderWidth<TLength> | Array<Property$MaskBorderWidth<TLength>>, + WebkitMaskClip?: Property$WebkitMaskClip | Array<Property$WebkitMaskClip>, + WebkitMaskComposite?: Property$WebkitMaskComposite | Array<Property$WebkitMaskComposite>, + WebkitMaskImage?: Property$WebkitMaskImage | Array<Property$WebkitMaskImage>, + WebkitMaskOrigin?: Property$WebkitMaskOrigin | Array<Property$WebkitMaskOrigin>, + WebkitMaskPosition?: Property$WebkitMaskPosition<TLength> | Array<Property$WebkitMaskPosition<TLength>>, + WebkitMaskPositionX?: Property$WebkitMaskPositionX<TLength> | Array<Property$WebkitMaskPositionX<TLength>>, + WebkitMaskPositionY?: Property$WebkitMaskPositionY<TLength> | Array<Property$WebkitMaskPositionY<TLength>>, + WebkitMaskRepeat?: Property$WebkitMaskRepeat | Array<Property$WebkitMaskRepeat>, + WebkitMaskRepeatX?: Property$WebkitMaskRepeatX | Array<Property$WebkitMaskRepeatX>, + WebkitMaskRepeatY?: Property$WebkitMaskRepeatY | Array<Property$WebkitMaskRepeatY>, + WebkitMaskSize?: Property$WebkitMaskSize<TLength> | Array<Property$WebkitMaskSize<TLength>>, + WebkitMaxInlineSize?: Property$MaxInlineSize<TLength> | Array<Property$MaxInlineSize<TLength>>, + WebkitOrder?: Property$Order | Array<Property$Order>, + WebkitOverflowScrolling?: Property$WebkitOverflowScrolling | Array<Property$WebkitOverflowScrolling>, + WebkitPaddingEnd?: Property$PaddingInlineEnd<TLength> | Array<Property$PaddingInlineEnd<TLength>>, + WebkitPaddingStart?: Property$PaddingInlineStart<TLength> | Array<Property$PaddingInlineStart<TLength>>, + WebkitPerspective?: Property$Perspective<TLength> | Array<Property$Perspective<TLength>>, + WebkitPerspectiveOrigin?: Property$PerspectiveOrigin<TLength> | Array<Property$PerspectiveOrigin<TLength>>, + WebkitPrintColorAdjust?: Property$PrintColorAdjust | Array<Property$PrintColorAdjust>, + WebkitRubyPosition?: Property$RubyPosition | Array<Property$RubyPosition>, + WebkitScrollSnapType?: Property$ScrollSnapType | Array<Property$ScrollSnapType>, + WebkitShapeMargin?: Property$ShapeMargin<TLength> | Array<Property$ShapeMargin<TLength>>, + WebkitTapHighlightColor?: Property$WebkitTapHighlightColor | Array<Property$WebkitTapHighlightColor>, + WebkitTextCombine?: Property$TextCombineUpright | Array<Property$TextCombineUpright>, + WebkitTextDecorationColor?: Property$TextDecorationColor | Array<Property$TextDecorationColor>, + WebkitTextDecorationLine?: Property$TextDecorationLine | Array<Property$TextDecorationLine>, + WebkitTextDecorationSkip?: Property$TextDecorationSkip | Array<Property$TextDecorationSkip>, + WebkitTextDecorationStyle?: Property$TextDecorationStyle | Array<Property$TextDecorationStyle>, + WebkitTextEmphasisColor?: Property$TextEmphasisColor | Array<Property$TextEmphasisColor>, + WebkitTextEmphasisPosition?: Property$TextEmphasisPosition | Array<Property$TextEmphasisPosition>, + WebkitTextEmphasisStyle?: Property$TextEmphasisStyle | Array<Property$TextEmphasisStyle>, + WebkitTextFillColor?: Property$WebkitTextFillColor | Array<Property$WebkitTextFillColor>, + WebkitTextOrientation?: Property$TextOrientation | Array<Property$TextOrientation>, + WebkitTextSizeAdjust?: Property$TextSizeAdjust | Array<Property$TextSizeAdjust>, + WebkitTextStrokeColor?: Property$WebkitTextStrokeColor | Array<Property$WebkitTextStrokeColor>, + WebkitTextStrokeWidth?: Property$WebkitTextStrokeWidth<TLength> | Array<Property$WebkitTextStrokeWidth<TLength>>, + WebkitTextUnderlinePosition?: Property$TextUnderlinePosition | Array<Property$TextUnderlinePosition>, + WebkitTouchCallout?: Property$WebkitTouchCallout | Array<Property$WebkitTouchCallout>, + WebkitTransform?: Property$Transform | Array<Property$Transform>, + WebkitTransformOrigin?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + WebkitTransformStyle?: Property$TransformStyle | Array<Property$TransformStyle>, + WebkitTransitionDelay?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + WebkitTransitionDuration?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + WebkitTransitionProperty?: Property$TransitionProperty | Array<Property$TransitionProperty>, + WebkitTransitionTimingFunction?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + WebkitUserModify?: Property$WebkitUserModify | Array<Property$WebkitUserModify>, + WebkitUserSelect?: Property$WebkitUserSelect | Array<Property$WebkitUserSelect>, + WebkitWritingMode?: Property$WritingMode | Array<Property$WritingMode>, +|}; + +export type VendorShorthandPropertiesFallback<TLength = string | 0, TTime = string> = {| + MozAnimation?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + MozBorderImage?: Property$BorderImage | Array<Property$BorderImage>, + MozColumnRule?: Property$ColumnRule<TLength> | Array<Property$ColumnRule<TLength>>, + MozColumns?: Property$Columns<TLength> | Array<Property$Columns<TLength>>, + MozOutlineRadius?: Property$MozOutlineRadius<TLength> | Array<Property$MozOutlineRadius<TLength>>, + MozTransition?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + msContentZoomLimit?: Property$MsContentZoomLimit | Array<Property$MsContentZoomLimit>, + msContentZoomSnap?: Property$MsContentZoomSnap | Array<Property$MsContentZoomSnap>, + msFlex?: Property$Flex<TLength> | Array<Property$Flex<TLength>>, + msScrollLimit?: Property$MsScrollLimit | Array<Property$MsScrollLimit>, + msScrollSnapX?: Property$MsScrollSnapX | Array<Property$MsScrollSnapX>, + msScrollSnapY?: Property$MsScrollSnapY | Array<Property$MsScrollSnapY>, + msTransition?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + WebkitAnimation?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + WebkitBorderBefore?: Property$WebkitBorderBefore<TLength> | Array<Property$WebkitBorderBefore<TLength>>, + WebkitBorderImage?: Property$BorderImage | Array<Property$BorderImage>, + WebkitBorderRadius?: Property$BorderRadius<TLength> | Array<Property$BorderRadius<TLength>>, + WebkitColumnRule?: Property$ColumnRule<TLength> | Array<Property$ColumnRule<TLength>>, + WebkitColumns?: Property$Columns<TLength> | Array<Property$Columns<TLength>>, + WebkitFlex?: Property$Flex<TLength> | Array<Property$Flex<TLength>>, + WebkitFlexFlow?: Property$FlexFlow | Array<Property$FlexFlow>, + WebkitMask?: Property$WebkitMask<TLength> | Array<Property$WebkitMask<TLength>>, + WebkitMaskBoxImage?: Property$MaskBorder | Array<Property$MaskBorder>, + WebkitTextEmphasis?: Property$TextEmphasis | Array<Property$TextEmphasis>, + WebkitTextStroke?: Property$WebkitTextStroke<TLength> | Array<Property$WebkitTextStroke<TLength>>, + WebkitTransition?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, +|}; + +export type VendorPropertiesFallback<TLength = string | 0, TTime = string> = {| + ...VendorLonghandPropertiesFallback<TLength, TTime>, + ...VendorShorthandPropertiesFallback<TLength, TTime>, +|}; + +export type ObsoletePropertiesFallback<TLength = string | 0, TTime = string> = {| + boxAlign?: Property$BoxAlign | Array<Property$BoxAlign>, + boxDirection?: Property$BoxDirection | Array<Property$BoxDirection>, + boxFlex?: Property$BoxFlex | Array<Property$BoxFlex>, + boxFlexGroup?: Property$BoxFlexGroup | Array<Property$BoxFlexGroup>, + boxLines?: Property$BoxLines | Array<Property$BoxLines>, + boxOrdinalGroup?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + boxOrient?: Property$BoxOrient | Array<Property$BoxOrient>, + boxPack?: Property$BoxPack | Array<Property$BoxPack>, + clip?: Property$Clip | Array<Property$Clip>, + fontStretch?: Property$FontStretch | Array<Property$FontStretch>, + gridColumnGap?: Property$GridColumnGap<TLength> | Array<Property$GridColumnGap<TLength>>, + gridGap?: Property$GridGap<TLength> | Array<Property$GridGap<TLength>>, + gridRowGap?: Property$GridRowGap<TLength> | Array<Property$GridRowGap<TLength>>, + imeMode?: Property$ImeMode | Array<Property$ImeMode>, + insetArea?: Property$PositionArea | Array<Property$PositionArea>, + offsetBlock?: Property$InsetBlock<TLength> | Array<Property$InsetBlock<TLength>>, + offsetBlockEnd?: Property$InsetBlockEnd<TLength> | Array<Property$InsetBlockEnd<TLength>>, + offsetBlockStart?: Property$InsetBlockStart<TLength> | Array<Property$InsetBlockStart<TLength>>, + offsetInline?: Property$InsetInline<TLength> | Array<Property$InsetInline<TLength>>, + offsetInlineEnd?: Property$InsetInlineEnd<TLength> | Array<Property$InsetInlineEnd<TLength>>, + offsetInlineStart?: Property$InsetInlineStart<TLength> | Array<Property$InsetInlineStart<TLength>>, + pageBreakAfter?: Property$PageBreakAfter | Array<Property$PageBreakAfter>, + pageBreakBefore?: Property$PageBreakBefore | Array<Property$PageBreakBefore>, + pageBreakInside?: Property$PageBreakInside | Array<Property$PageBreakInside>, + positionTryOptions?: Property$PositionTryFallbacks | Array<Property$PositionTryFallbacks>, + scrollSnapCoordinate?: Property$ScrollSnapCoordinate<TLength> | Array<Property$ScrollSnapCoordinate<TLength>>, + scrollSnapDestination?: Property$ScrollSnapDestination<TLength> | Array<Property$ScrollSnapDestination<TLength>>, + scrollSnapPointsX?: Property$ScrollSnapPointsX | Array<Property$ScrollSnapPointsX>, + scrollSnapPointsY?: Property$ScrollSnapPointsY | Array<Property$ScrollSnapPointsY>, + scrollSnapTypeX?: Property$ScrollSnapTypeX | Array<Property$ScrollSnapTypeX>, + scrollSnapTypeY?: Property$ScrollSnapTypeY | Array<Property$ScrollSnapTypeY>, + KhtmlBoxAlign?: Property$BoxAlign | Array<Property$BoxAlign>, + KhtmlBoxDirection?: Property$BoxDirection | Array<Property$BoxDirection>, + KhtmlBoxFlex?: Property$BoxFlex | Array<Property$BoxFlex>, + KhtmlBoxFlexGroup?: Property$BoxFlexGroup | Array<Property$BoxFlexGroup>, + KhtmlBoxLines?: Property$BoxLines | Array<Property$BoxLines>, + KhtmlBoxOrdinalGroup?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + KhtmlBoxOrient?: Property$BoxOrient | Array<Property$BoxOrient>, + KhtmlBoxPack?: Property$BoxPack | Array<Property$BoxPack>, + KhtmlLineBreak?: Property$LineBreak | Array<Property$LineBreak>, + KhtmlOpacity?: Property$Opacity | Array<Property$Opacity>, + KhtmlUserSelect?: Property$UserSelect | Array<Property$UserSelect>, + MozBackgroundClip?: Property$BackgroundClip | Array<Property$BackgroundClip>, + MozBackgroundOrigin?: Property$BackgroundOrigin | Array<Property$BackgroundOrigin>, + MozBackgroundSize?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + MozBorderRadius?: Property$BorderRadius<TLength> | Array<Property$BorderRadius<TLength>>, + MozBorderRadiusBottomleft?: Property$BorderBottomLeftRadius<TLength> | Array<Property$BorderBottomLeftRadius<TLength>>, + MozBorderRadiusBottomright?: Property$BorderBottomRightRadius<TLength> | Array<Property$BorderBottomRightRadius<TLength>>, + MozBorderRadiusTopleft?: Property$BorderTopLeftRadius<TLength> | Array<Property$BorderTopLeftRadius<TLength>>, + MozBorderRadiusTopright?: Property$BorderTopRightRadius<TLength> | Array<Property$BorderTopRightRadius<TLength>>, + MozBoxAlign?: Property$BoxAlign | Array<Property$BoxAlign>, + MozBoxDirection?: Property$BoxDirection | Array<Property$BoxDirection>, + MozBoxFlex?: Property$BoxFlex | Array<Property$BoxFlex>, + MozBoxOrdinalGroup?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + MozBoxOrient?: Property$BoxOrient | Array<Property$BoxOrient>, + MozBoxPack?: Property$BoxPack | Array<Property$BoxPack>, + MozBoxShadow?: Property$BoxShadow | Array<Property$BoxShadow>, + MozColumnCount?: Property$ColumnCount | Array<Property$ColumnCount>, + MozColumnFill?: Property$ColumnFill | Array<Property$ColumnFill>, + MozFloatEdge?: Property$MozFloatEdge | Array<Property$MozFloatEdge>, + MozForceBrokenImageIcon?: Property$MozForceBrokenImageIcon | Array<Property$MozForceBrokenImageIcon>, + MozOpacity?: Property$Opacity | Array<Property$Opacity>, + MozOutline?: Property$Outline<TLength> | Array<Property$Outline<TLength>>, + MozOutlineColor?: Property$OutlineColor | Array<Property$OutlineColor>, + MozOutlineStyle?: Property$OutlineStyle | Array<Property$OutlineStyle>, + MozOutlineWidth?: Property$OutlineWidth<TLength> | Array<Property$OutlineWidth<TLength>>, + MozTextAlignLast?: Property$TextAlignLast | Array<Property$TextAlignLast>, + MozTextDecorationColor?: Property$TextDecorationColor | Array<Property$TextDecorationColor>, + MozTextDecorationLine?: Property$TextDecorationLine | Array<Property$TextDecorationLine>, + MozTextDecorationStyle?: Property$TextDecorationStyle | Array<Property$TextDecorationStyle>, + MozTransitionDelay?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + MozTransitionDuration?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + MozTransitionProperty?: Property$TransitionProperty | Array<Property$TransitionProperty>, + MozTransitionTimingFunction?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + MozUserFocus?: Property$MozUserFocus | Array<Property$MozUserFocus>, + MozUserInput?: Property$MozUserInput | Array<Property$MozUserInput>, + msImeMode?: Property$ImeMode | Array<Property$ImeMode>, + OAnimation?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + OAnimationDelay?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + OAnimationDirection?: Property$AnimationDirection | Array<Property$AnimationDirection>, + OAnimationDuration?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + OAnimationFillMode?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + OAnimationIterationCount?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + OAnimationName?: Property$AnimationName | Array<Property$AnimationName>, + OAnimationPlayState?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + OAnimationTimingFunction?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + OBackgroundSize?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + OBorderImage?: Property$BorderImage | Array<Property$BorderImage>, + OObjectFit?: Property$ObjectFit | Array<Property$ObjectFit>, + OObjectPosition?: Property$ObjectPosition<TLength> | Array<Property$ObjectPosition<TLength>>, + OTabSize?: Property$TabSize<TLength> | Array<Property$TabSize<TLength>>, + OTextOverflow?: Property$TextOverflow | Array<Property$TextOverflow>, + OTransform?: Property$Transform | Array<Property$Transform>, + OTransformOrigin?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + OTransition?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + OTransitionDelay?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + OTransitionDuration?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + OTransitionProperty?: Property$TransitionProperty | Array<Property$TransitionProperty>, + OTransitionTimingFunction?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + WebkitBoxAlign?: Property$BoxAlign | Array<Property$BoxAlign>, + WebkitBoxDirection?: Property$BoxDirection | Array<Property$BoxDirection>, + WebkitBoxFlex?: Property$BoxFlex | Array<Property$BoxFlex>, + WebkitBoxFlexGroup?: Property$BoxFlexGroup | Array<Property$BoxFlexGroup>, + WebkitBoxLines?: Property$BoxLines | Array<Property$BoxLines>, + WebkitBoxOrdinalGroup?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + WebkitBoxOrient?: Property$BoxOrient | Array<Property$BoxOrient>, + WebkitBoxPack?: Property$BoxPack | Array<Property$BoxPack>, +|}; + +export type SvgPropertiesFallback<TLength = string | 0, TTime = string> = {| + alignmentBaseline?: Property$AlignmentBaseline | Array<Property$AlignmentBaseline>, + baselineShift?: Property$BaselineShift<TLength> | Array<Property$BaselineShift<TLength>>, + clip?: Property$Clip | Array<Property$Clip>, + clipPath?: Property$ClipPath | Array<Property$ClipPath>, + clipRule?: Property$ClipRule | Array<Property$ClipRule>, + color?: Property$Color | Array<Property$Color>, + colorInterpolation?: Property$ColorInterpolation | Array<Property$ColorInterpolation>, + colorRendering?: Property$ColorRendering | Array<Property$ColorRendering>, + cursor?: Property$Cursor | Array<Property$Cursor>, + direction?: Property$Direction | Array<Property$Direction>, + display?: Property$Display | Array<Property$Display>, + dominantBaseline?: Property$DominantBaseline | Array<Property$DominantBaseline>, + fill?: Property$Fill | Array<Property$Fill>, + fillOpacity?: Property$FillOpacity | Array<Property$FillOpacity>, + fillRule?: Property$FillRule | Array<Property$FillRule>, + filter?: Property$Filter | Array<Property$Filter>, + floodColor?: Property$FloodColor | Array<Property$FloodColor>, + floodOpacity?: Property$FloodOpacity | Array<Property$FloodOpacity>, + font?: Property$Font | Array<Property$Font>, + fontFamily?: Property$FontFamily | Array<Property$FontFamily>, + fontSize?: Property$FontSize<TLength> | Array<Property$FontSize<TLength>>, + fontSizeAdjust?: Property$FontSizeAdjust | Array<Property$FontSizeAdjust>, + fontStretch?: Property$FontStretch | Array<Property$FontStretch>, + fontStyle?: Property$FontStyle | Array<Property$FontStyle>, + fontVariant?: Property$FontVariant | Array<Property$FontVariant>, + fontWeight?: Property$FontWeight | Array<Property$FontWeight>, + glyphOrientationVertical?: Property$GlyphOrientationVertical | Array<Property$GlyphOrientationVertical>, + imageRendering?: Property$ImageRendering | Array<Property$ImageRendering>, + letterSpacing?: Property$LetterSpacing<TLength> | Array<Property$LetterSpacing<TLength>>, + lightingColor?: Property$LightingColor | Array<Property$LightingColor>, + lineHeight?: Property$LineHeight<TLength> | Array<Property$LineHeight<TLength>>, + marker?: Property$Marker | Array<Property$Marker>, + markerEnd?: Property$MarkerEnd | Array<Property$MarkerEnd>, + markerMid?: Property$MarkerMid | Array<Property$MarkerMid>, + markerStart?: Property$MarkerStart | Array<Property$MarkerStart>, + mask?: Property$Mask<TLength> | Array<Property$Mask<TLength>>, + opacity?: Property$Opacity | Array<Property$Opacity>, + overflow?: Property$Overflow | Array<Property$Overflow>, + paintOrder?: Property$PaintOrder | Array<Property$PaintOrder>, + pointerEvents?: Property$PointerEvents | Array<Property$PointerEvents>, + shapeRendering?: Property$ShapeRendering | Array<Property$ShapeRendering>, + stopColor?: Property$StopColor | Array<Property$StopColor>, + stopOpacity?: Property$StopOpacity | Array<Property$StopOpacity>, + stroke?: Property$Stroke | Array<Property$Stroke>, + strokeDasharray?: Property$StrokeDasharray<TLength> | Array<Property$StrokeDasharray<TLength>>, + strokeDashoffset?: Property$StrokeDashoffset<TLength> | Array<Property$StrokeDashoffset<TLength>>, + strokeLinecap?: Property$StrokeLinecap | Array<Property$StrokeLinecap>, + strokeLinejoin?: Property$StrokeLinejoin | Array<Property$StrokeLinejoin>, + strokeMiterlimit?: Property$StrokeMiterlimit | Array<Property$StrokeMiterlimit>, + strokeOpacity?: Property$StrokeOpacity | Array<Property$StrokeOpacity>, + strokeWidth?: Property$StrokeWidth<TLength> | Array<Property$StrokeWidth<TLength>>, + textAnchor?: Property$TextAnchor | Array<Property$TextAnchor>, + textDecoration?: Property$TextDecoration<TLength> | Array<Property$TextDecoration<TLength>>, + textRendering?: Property$TextRendering | Array<Property$TextRendering>, + unicodeBidi?: Property$UnicodeBidi | Array<Property$UnicodeBidi>, + vectorEffect?: Property$VectorEffect | Array<Property$VectorEffect>, + visibility?: Property$Visibility | Array<Property$Visibility>, + whiteSpace?: Property$WhiteSpace | Array<Property$WhiteSpace>, + wordSpacing?: Property$WordSpacing<TLength> | Array<Property$WordSpacing<TLength>>, + writingMode?: Property$WritingMode | Array<Property$WritingMode>, +|}; + +export type PropertiesFallback<TLength = string | 0, TTime = string> = {| + ...StandardPropertiesFallback<TLength, TTime>, + ...VendorPropertiesFallback<TLength, TTime>, + ...ObsoletePropertiesFallback<TLength, TTime>, + ...SvgPropertiesFallback<TLength, TTime>, +|}; + +export type StandardLonghandPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + "accent-color"?: Property$AccentColor | Array<Property$AccentColor>, + "align-content"?: Property$AlignContent | Array<Property$AlignContent>, + "align-items"?: Property$AlignItems | Array<Property$AlignItems>, + "align-self"?: Property$AlignSelf | Array<Property$AlignSelf>, + "align-tracks"?: Property$AlignTracks | Array<Property$AlignTracks>, + "alignment-baseline"?: Property$AlignmentBaseline | Array<Property$AlignmentBaseline>, + "anchor-name"?: Property$AnchorName | Array<Property$AnchorName>, + "anchor-scope"?: Property$AnchorScope | Array<Property$AnchorScope>, + "animation-composition"?: Property$AnimationComposition | Array<Property$AnimationComposition>, + "animation-delay"?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + "animation-direction"?: Property$AnimationDirection | Array<Property$AnimationDirection>, + "animation-duration"?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + "animation-fill-mode"?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + "animation-iteration-count"?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + "animation-name"?: Property$AnimationName | Array<Property$AnimationName>, + "animation-play-state"?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + "animation-range-end"?: Property$AnimationRangeEnd<TLength> | Array<Property$AnimationRangeEnd<TLength>>, + "animation-range-start"?: Property$AnimationRangeStart<TLength> | Array<Property$AnimationRangeStart<TLength>>, + "animation-timeline"?: Property$AnimationTimeline | Array<Property$AnimationTimeline>, + "animation-timing-function"?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + appearance?: Property$Appearance | Array<Property$Appearance>, + "aspect-ratio"?: Property$AspectRatio | Array<Property$AspectRatio>, + "backdrop-filter"?: Property$BackdropFilter | Array<Property$BackdropFilter>, + "backface-visibility"?: Property$BackfaceVisibility | Array<Property$BackfaceVisibility>, + "background-attachment"?: Property$BackgroundAttachment | Array<Property$BackgroundAttachment>, + "background-blend-mode"?: Property$BackgroundBlendMode | Array<Property$BackgroundBlendMode>, + "background-clip"?: Property$BackgroundClip | Array<Property$BackgroundClip>, + "background-color"?: Property$BackgroundColor | Array<Property$BackgroundColor>, + "background-image"?: Property$BackgroundImage | Array<Property$BackgroundImage>, + "background-origin"?: Property$BackgroundOrigin | Array<Property$BackgroundOrigin>, + "background-position-x"?: Property$BackgroundPositionX<TLength> | Array<Property$BackgroundPositionX<TLength>>, + "background-position-y"?: Property$BackgroundPositionY<TLength> | Array<Property$BackgroundPositionY<TLength>>, + "background-repeat"?: Property$BackgroundRepeat | Array<Property$BackgroundRepeat>, + "background-size"?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + "baseline-shift"?: Property$BaselineShift<TLength> | Array<Property$BaselineShift<TLength>>, + "block-size"?: Property$BlockSize<TLength> | Array<Property$BlockSize<TLength>>, + "border-block-end-color"?: Property$BorderBlockEndColor | Array<Property$BorderBlockEndColor>, + "border-block-end-style"?: Property$BorderBlockEndStyle | Array<Property$BorderBlockEndStyle>, + "border-block-end-width"?: Property$BorderBlockEndWidth<TLength> | Array<Property$BorderBlockEndWidth<TLength>>, + "border-block-start-color"?: Property$BorderBlockStartColor | Array<Property$BorderBlockStartColor>, + "border-block-start-style"?: Property$BorderBlockStartStyle | Array<Property$BorderBlockStartStyle>, + "border-block-start-width"?: Property$BorderBlockStartWidth<TLength> | Array<Property$BorderBlockStartWidth<TLength>>, + "border-bottom-color"?: Property$BorderBottomColor | Array<Property$BorderBottomColor>, + "border-bottom-left-radius"?: Property$BorderBottomLeftRadius<TLength> | Array<Property$BorderBottomLeftRadius<TLength>>, + "border-bottom-right-radius"?: Property$BorderBottomRightRadius<TLength> | Array<Property$BorderBottomRightRadius<TLength>>, + "border-bottom-style"?: Property$BorderBottomStyle | Array<Property$BorderBottomStyle>, + "border-bottom-width"?: Property$BorderBottomWidth<TLength> | Array<Property$BorderBottomWidth<TLength>>, + "border-collapse"?: Property$BorderCollapse | Array<Property$BorderCollapse>, + "border-end-end-radius"?: Property$BorderEndEndRadius<TLength> | Array<Property$BorderEndEndRadius<TLength>>, + "border-end-start-radius"?: Property$BorderEndStartRadius<TLength> | Array<Property$BorderEndStartRadius<TLength>>, + "border-image-outset"?: Property$BorderImageOutset<TLength> | Array<Property$BorderImageOutset<TLength>>, + "border-image-repeat"?: Property$BorderImageRepeat | Array<Property$BorderImageRepeat>, + "border-image-slice"?: Property$BorderImageSlice | Array<Property$BorderImageSlice>, + "border-image-source"?: Property$BorderImageSource | Array<Property$BorderImageSource>, + "border-image-width"?: Property$BorderImageWidth<TLength> | Array<Property$BorderImageWidth<TLength>>, + "border-inline-end-color"?: Property$BorderInlineEndColor | Array<Property$BorderInlineEndColor>, + "border-inline-end-style"?: Property$BorderInlineEndStyle | Array<Property$BorderInlineEndStyle>, + "border-inline-end-width"?: Property$BorderInlineEndWidth<TLength> | Array<Property$BorderInlineEndWidth<TLength>>, + "border-inline-start-color"?: Property$BorderInlineStartColor | Array<Property$BorderInlineStartColor>, + "border-inline-start-style"?: Property$BorderInlineStartStyle | Array<Property$BorderInlineStartStyle>, + "border-inline-start-width"?: Property$BorderInlineStartWidth<TLength> | Array<Property$BorderInlineStartWidth<TLength>>, + "border-left-color"?: Property$BorderLeftColor | Array<Property$BorderLeftColor>, + "border-left-style"?: Property$BorderLeftStyle | Array<Property$BorderLeftStyle>, + "border-left-width"?: Property$BorderLeftWidth<TLength> | Array<Property$BorderLeftWidth<TLength>>, + "border-right-color"?: Property$BorderRightColor | Array<Property$BorderRightColor>, + "border-right-style"?: Property$BorderRightStyle | Array<Property$BorderRightStyle>, + "border-right-width"?: Property$BorderRightWidth<TLength> | Array<Property$BorderRightWidth<TLength>>, + "border-spacing"?: Property$BorderSpacing<TLength> | Array<Property$BorderSpacing<TLength>>, + "border-start-end-radius"?: Property$BorderStartEndRadius<TLength> | Array<Property$BorderStartEndRadius<TLength>>, + "border-start-start-radius"?: Property$BorderStartStartRadius<TLength> | Array<Property$BorderStartStartRadius<TLength>>, + "border-top-color"?: Property$BorderTopColor | Array<Property$BorderTopColor>, + "border-top-left-radius"?: Property$BorderTopLeftRadius<TLength> | Array<Property$BorderTopLeftRadius<TLength>>, + "border-top-right-radius"?: Property$BorderTopRightRadius<TLength> | Array<Property$BorderTopRightRadius<TLength>>, + "border-top-style"?: Property$BorderTopStyle | Array<Property$BorderTopStyle>, + "border-top-width"?: Property$BorderTopWidth<TLength> | Array<Property$BorderTopWidth<TLength>>, + bottom?: Property$Bottom<TLength> | Array<Property$Bottom<TLength>>, + "box-decoration-break"?: Property$BoxDecorationBreak | Array<Property$BoxDecorationBreak>, + "box-shadow"?: Property$BoxShadow | Array<Property$BoxShadow>, + "box-sizing"?: Property$BoxSizing | Array<Property$BoxSizing>, + "break-after"?: Property$BreakAfter | Array<Property$BreakAfter>, + "break-before"?: Property$BreakBefore | Array<Property$BreakBefore>, + "break-inside"?: Property$BreakInside | Array<Property$BreakInside>, + "caption-side"?: Property$CaptionSide | Array<Property$CaptionSide>, + "caret-color"?: Property$CaretColor | Array<Property$CaretColor>, + "caret-shape"?: Property$CaretShape | Array<Property$CaretShape>, + clear?: Property$Clear | Array<Property$Clear>, + "clip-path"?: Property$ClipPath | Array<Property$ClipPath>, + "clip-rule"?: Property$ClipRule | Array<Property$ClipRule>, + color?: Property$Color | Array<Property$Color>, + "color-adjust"?: Property$PrintColorAdjust | Array<Property$PrintColorAdjust>, + "color-interpolation-filters"?: Property$ColorInterpolationFilters | Array<Property$ColorInterpolationFilters>, + "color-scheme"?: Property$ColorScheme | Array<Property$ColorScheme>, + "column-count"?: Property$ColumnCount | Array<Property$ColumnCount>, + "column-fill"?: Property$ColumnFill | Array<Property$ColumnFill>, + "column-gap"?: Property$ColumnGap<TLength> | Array<Property$ColumnGap<TLength>>, + "column-rule-color"?: Property$ColumnRuleColor | Array<Property$ColumnRuleColor>, + "column-rule-style"?: Property$ColumnRuleStyle | Array<Property$ColumnRuleStyle>, + "column-rule-width"?: Property$ColumnRuleWidth<TLength> | Array<Property$ColumnRuleWidth<TLength>>, + "column-span"?: Property$ColumnSpan | Array<Property$ColumnSpan>, + "column-width"?: Property$ColumnWidth<TLength> | Array<Property$ColumnWidth<TLength>>, + contain?: Property$Contain | Array<Property$Contain>, + "contain-intrinsic-block-size"?: Property$ContainIntrinsicBlockSize<TLength> | Array<Property$ContainIntrinsicBlockSize<TLength>>, + "contain-intrinsic-height"?: Property$ContainIntrinsicHeight<TLength> | Array<Property$ContainIntrinsicHeight<TLength>>, + "contain-intrinsic-inline-size"?: Property$ContainIntrinsicInlineSize<TLength> | Array<Property$ContainIntrinsicInlineSize<TLength>>, + "contain-intrinsic-width"?: Property$ContainIntrinsicWidth<TLength> | Array<Property$ContainIntrinsicWidth<TLength>>, + "container-name"?: Property$ContainerName | Array<Property$ContainerName>, + "container-type"?: Property$ContainerType | Array<Property$ContainerType>, + content?: Property$Content | Array<Property$Content>, + "content-visibility"?: Property$ContentVisibility | Array<Property$ContentVisibility>, + "counter-increment"?: Property$CounterIncrement | Array<Property$CounterIncrement>, + "counter-reset"?: Property$CounterReset | Array<Property$CounterReset>, + "counter-set"?: Property$CounterSet | Array<Property$CounterSet>, + cursor?: Property$Cursor | Array<Property$Cursor>, + cx?: Property$Cx<TLength> | Array<Property$Cx<TLength>>, + cy?: Property$Cy<TLength> | Array<Property$Cy<TLength>>, + d?: Property$D | Array<Property$D>, + direction?: Property$Direction | Array<Property$Direction>, + display?: Property$Display | Array<Property$Display>, + "dominant-baseline"?: Property$DominantBaseline | Array<Property$DominantBaseline>, + "empty-cells"?: Property$EmptyCells | Array<Property$EmptyCells>, + "field-sizing"?: Property$FieldSizing | Array<Property$FieldSizing>, + fill?: Property$Fill | Array<Property$Fill>, + "fill-opacity"?: Property$FillOpacity | Array<Property$FillOpacity>, + "fill-rule"?: Property$FillRule | Array<Property$FillRule>, + filter?: Property$Filter | Array<Property$Filter>, + "flex-basis"?: Property$FlexBasis<TLength> | Array<Property$FlexBasis<TLength>>, + "flex-direction"?: Property$FlexDirection | Array<Property$FlexDirection>, + "flex-grow"?: Property$FlexGrow | Array<Property$FlexGrow>, + "flex-shrink"?: Property$FlexShrink | Array<Property$FlexShrink>, + "flex-wrap"?: Property$FlexWrap | Array<Property$FlexWrap>, + float?: Property$Float | Array<Property$Float>, + "flood-color"?: Property$FloodColor | Array<Property$FloodColor>, + "flood-opacity"?: Property$FloodOpacity | Array<Property$FloodOpacity>, + "font-family"?: Property$FontFamily | Array<Property$FontFamily>, + "font-feature-settings"?: Property$FontFeatureSettings | Array<Property$FontFeatureSettings>, + "font-kerning"?: Property$FontKerning | Array<Property$FontKerning>, + "font-language-override"?: Property$FontLanguageOverride | Array<Property$FontLanguageOverride>, + "font-optical-sizing"?: Property$FontOpticalSizing | Array<Property$FontOpticalSizing>, + "font-palette"?: Property$FontPalette | Array<Property$FontPalette>, + "font-size"?: Property$FontSize<TLength> | Array<Property$FontSize<TLength>>, + "font-size-adjust"?: Property$FontSizeAdjust | Array<Property$FontSizeAdjust>, + "font-smooth"?: Property$FontSmooth<TLength> | Array<Property$FontSmooth<TLength>>, + "font-style"?: Property$FontStyle | Array<Property$FontStyle>, + "font-synthesis"?: Property$FontSynthesis | Array<Property$FontSynthesis>, + "font-synthesis-position"?: Property$FontSynthesisPosition | Array<Property$FontSynthesisPosition>, + "font-synthesis-small-caps"?: Property$FontSynthesisSmallCaps | Array<Property$FontSynthesisSmallCaps>, + "font-synthesis-style"?: Property$FontSynthesisStyle | Array<Property$FontSynthesisStyle>, + "font-synthesis-weight"?: Property$FontSynthesisWeight | Array<Property$FontSynthesisWeight>, + "font-variant"?: Property$FontVariant | Array<Property$FontVariant>, + "font-variant-alternates"?: Property$FontVariantAlternates | Array<Property$FontVariantAlternates>, + "font-variant-caps"?: Property$FontVariantCaps | Array<Property$FontVariantCaps>, + "font-variant-east-asian"?: Property$FontVariantEastAsian | Array<Property$FontVariantEastAsian>, + "font-variant-emoji"?: Property$FontVariantEmoji | Array<Property$FontVariantEmoji>, + "font-variant-ligatures"?: Property$FontVariantLigatures | Array<Property$FontVariantLigatures>, + "font-variant-numeric"?: Property$FontVariantNumeric | Array<Property$FontVariantNumeric>, + "font-variant-position"?: Property$FontVariantPosition | Array<Property$FontVariantPosition>, + "font-variation-settings"?: Property$FontVariationSettings | Array<Property$FontVariationSettings>, + "font-weight"?: Property$FontWeight | Array<Property$FontWeight>, + "font-width"?: Property$FontWidth | Array<Property$FontWidth>, + "forced-color-adjust"?: Property$ForcedColorAdjust | Array<Property$ForcedColorAdjust>, + "grid-auto-columns"?: Property$GridAutoColumns<TLength> | Array<Property$GridAutoColumns<TLength>>, + "grid-auto-flow"?: Property$GridAutoFlow | Array<Property$GridAutoFlow>, + "grid-auto-rows"?: Property$GridAutoRows<TLength> | Array<Property$GridAutoRows<TLength>>, + "grid-column-end"?: Property$GridColumnEnd | Array<Property$GridColumnEnd>, + "grid-column-start"?: Property$GridColumnStart | Array<Property$GridColumnStart>, + "grid-row-end"?: Property$GridRowEnd | Array<Property$GridRowEnd>, + "grid-row-start"?: Property$GridRowStart | Array<Property$GridRowStart>, + "grid-template-areas"?: Property$GridTemplateAreas | Array<Property$GridTemplateAreas>, + "grid-template-columns"?: Property$GridTemplateColumns<TLength> | Array<Property$GridTemplateColumns<TLength>>, + "grid-template-rows"?: Property$GridTemplateRows<TLength> | Array<Property$GridTemplateRows<TLength>>, + "hanging-punctuation"?: Property$HangingPunctuation | Array<Property$HangingPunctuation>, + height?: Property$Height<TLength> | Array<Property$Height<TLength>>, + "hyphenate-character"?: Property$HyphenateCharacter | Array<Property$HyphenateCharacter>, + "hyphenate-limit-chars"?: Property$HyphenateLimitChars | Array<Property$HyphenateLimitChars>, + hyphens?: Property$Hyphens | Array<Property$Hyphens>, + "image-orientation"?: Property$ImageOrientation | Array<Property$ImageOrientation>, + "image-rendering"?: Property$ImageRendering | Array<Property$ImageRendering>, + "image-resolution"?: Property$ImageResolution | Array<Property$ImageResolution>, + "initial-letter"?: Property$InitialLetter | Array<Property$InitialLetter>, + "initial-letter-align"?: Property$InitialLetterAlign | Array<Property$InitialLetterAlign>, + "inline-size"?: Property$InlineSize<TLength> | Array<Property$InlineSize<TLength>>, + "inset-block-end"?: Property$InsetBlockEnd<TLength> | Array<Property$InsetBlockEnd<TLength>>, + "inset-block-start"?: Property$InsetBlockStart<TLength> | Array<Property$InsetBlockStart<TLength>>, + "inset-inline-end"?: Property$InsetInlineEnd<TLength> | Array<Property$InsetInlineEnd<TLength>>, + "inset-inline-start"?: Property$InsetInlineStart<TLength> | Array<Property$InsetInlineStart<TLength>>, + "interpolate-size"?: Property$InterpolateSize | Array<Property$InterpolateSize>, + isolation?: Property$Isolation | Array<Property$Isolation>, + "justify-content"?: Property$JustifyContent | Array<Property$JustifyContent>, + "justify-items"?: Property$JustifyItems | Array<Property$JustifyItems>, + "justify-self"?: Property$JustifySelf | Array<Property$JustifySelf>, + "justify-tracks"?: Property$JustifyTracks | Array<Property$JustifyTracks>, + left?: Property$Left<TLength> | Array<Property$Left<TLength>>, + "letter-spacing"?: Property$LetterSpacing<TLength> | Array<Property$LetterSpacing<TLength>>, + "lighting-color"?: Property$LightingColor | Array<Property$LightingColor>, + "line-break"?: Property$LineBreak | Array<Property$LineBreak>, + "line-height"?: Property$LineHeight<TLength> | Array<Property$LineHeight<TLength>>, + "line-height-step"?: Property$LineHeightStep<TLength> | Array<Property$LineHeightStep<TLength>>, + "list-style-image"?: Property$ListStyleImage | Array<Property$ListStyleImage>, + "list-style-position"?: Property$ListStylePosition | Array<Property$ListStylePosition>, + "list-style-type"?: Property$ListStyleType | Array<Property$ListStyleType>, + "margin-block-end"?: Property$MarginBlockEnd<TLength> | Array<Property$MarginBlockEnd<TLength>>, + "margin-block-start"?: Property$MarginBlockStart<TLength> | Array<Property$MarginBlockStart<TLength>>, + "margin-bottom"?: Property$MarginBottom<TLength> | Array<Property$MarginBottom<TLength>>, + "margin-inline-end"?: Property$MarginInlineEnd<TLength> | Array<Property$MarginInlineEnd<TLength>>, + "margin-inline-start"?: Property$MarginInlineStart<TLength> | Array<Property$MarginInlineStart<TLength>>, + "margin-left"?: Property$MarginLeft<TLength> | Array<Property$MarginLeft<TLength>>, + "margin-right"?: Property$MarginRight<TLength> | Array<Property$MarginRight<TLength>>, + "margin-top"?: Property$MarginTop<TLength> | Array<Property$MarginTop<TLength>>, + "margin-trim"?: Property$MarginTrim | Array<Property$MarginTrim>, + marker?: Property$Marker | Array<Property$Marker>, + "marker-end"?: Property$MarkerEnd | Array<Property$MarkerEnd>, + "marker-mid"?: Property$MarkerMid | Array<Property$MarkerMid>, + "marker-start"?: Property$MarkerStart | Array<Property$MarkerStart>, + "mask-border-mode"?: Property$MaskBorderMode | Array<Property$MaskBorderMode>, + "mask-border-outset"?: Property$MaskBorderOutset<TLength> | Array<Property$MaskBorderOutset<TLength>>, + "mask-border-repeat"?: Property$MaskBorderRepeat | Array<Property$MaskBorderRepeat>, + "mask-border-slice"?: Property$MaskBorderSlice | Array<Property$MaskBorderSlice>, + "mask-border-source"?: Property$MaskBorderSource | Array<Property$MaskBorderSource>, + "mask-border-width"?: Property$MaskBorderWidth<TLength> | Array<Property$MaskBorderWidth<TLength>>, + "mask-clip"?: Property$MaskClip | Array<Property$MaskClip>, + "mask-composite"?: Property$MaskComposite | Array<Property$MaskComposite>, + "mask-image"?: Property$MaskImage | Array<Property$MaskImage>, + "mask-mode"?: Property$MaskMode | Array<Property$MaskMode>, + "mask-origin"?: Property$MaskOrigin | Array<Property$MaskOrigin>, + "mask-position"?: Property$MaskPosition<TLength> | Array<Property$MaskPosition<TLength>>, + "mask-repeat"?: Property$MaskRepeat | Array<Property$MaskRepeat>, + "mask-size"?: Property$MaskSize<TLength> | Array<Property$MaskSize<TLength>>, + "mask-type"?: Property$MaskType | Array<Property$MaskType>, + "masonry-auto-flow"?: Property$MasonryAutoFlow | Array<Property$MasonryAutoFlow>, + "math-depth"?: Property$MathDepth | Array<Property$MathDepth>, + "math-shift"?: Property$MathShift | Array<Property$MathShift>, + "math-style"?: Property$MathStyle | Array<Property$MathStyle>, + "max-block-size"?: Property$MaxBlockSize<TLength> | Array<Property$MaxBlockSize<TLength>>, + "max-height"?: Property$MaxHeight<TLength> | Array<Property$MaxHeight<TLength>>, + "max-inline-size"?: Property$MaxInlineSize<TLength> | Array<Property$MaxInlineSize<TLength>>, + "max-lines"?: Property$MaxLines | Array<Property$MaxLines>, + "max-width"?: Property$MaxWidth<TLength> | Array<Property$MaxWidth<TLength>>, + "min-block-size"?: Property$MinBlockSize<TLength> | Array<Property$MinBlockSize<TLength>>, + "min-height"?: Property$MinHeight<TLength> | Array<Property$MinHeight<TLength>>, + "min-inline-size"?: Property$MinInlineSize<TLength> | Array<Property$MinInlineSize<TLength>>, + "min-width"?: Property$MinWidth<TLength> | Array<Property$MinWidth<TLength>>, + "mix-blend-mode"?: Property$MixBlendMode | Array<Property$MixBlendMode>, + "motion-distance"?: Property$OffsetDistance<TLength> | Array<Property$OffsetDistance<TLength>>, + "motion-path"?: Property$OffsetPath | Array<Property$OffsetPath>, + "motion-rotation"?: Property$OffsetRotate | Array<Property$OffsetRotate>, + "object-fit"?: Property$ObjectFit | Array<Property$ObjectFit>, + "object-position"?: Property$ObjectPosition<TLength> | Array<Property$ObjectPosition<TLength>>, + "object-view-box"?: Property$ObjectViewBox | Array<Property$ObjectViewBox>, + "offset-anchor"?: Property$OffsetAnchor<TLength> | Array<Property$OffsetAnchor<TLength>>, + "offset-distance"?: Property$OffsetDistance<TLength> | Array<Property$OffsetDistance<TLength>>, + "offset-path"?: Property$OffsetPath | Array<Property$OffsetPath>, + "offset-position"?: Property$OffsetPosition<TLength> | Array<Property$OffsetPosition<TLength>>, + "offset-rotate"?: Property$OffsetRotate | Array<Property$OffsetRotate>, + "offset-rotation"?: Property$OffsetRotate | Array<Property$OffsetRotate>, + opacity?: Property$Opacity | Array<Property$Opacity>, + order?: Property$Order | Array<Property$Order>, + orphans?: Property$Orphans | Array<Property$Orphans>, + "outline-color"?: Property$OutlineColor | Array<Property$OutlineColor>, + "outline-offset"?: Property$OutlineOffset<TLength> | Array<Property$OutlineOffset<TLength>>, + "outline-style"?: Property$OutlineStyle | Array<Property$OutlineStyle>, + "outline-width"?: Property$OutlineWidth<TLength> | Array<Property$OutlineWidth<TLength>>, + "overflow-anchor"?: Property$OverflowAnchor | Array<Property$OverflowAnchor>, + "overflow-block"?: Property$OverflowBlock | Array<Property$OverflowBlock>, + "overflow-clip-box"?: Property$OverflowClipBox | Array<Property$OverflowClipBox>, + "overflow-clip-margin"?: Property$OverflowClipMargin<TLength> | Array<Property$OverflowClipMargin<TLength>>, + "overflow-inline"?: Property$OverflowInline | Array<Property$OverflowInline>, + "overflow-wrap"?: Property$OverflowWrap | Array<Property$OverflowWrap>, + "overflow-x"?: Property$OverflowX | Array<Property$OverflowX>, + "overflow-y"?: Property$OverflowY | Array<Property$OverflowY>, + overlay?: Property$Overlay | Array<Property$Overlay>, + "overscroll-behavior-block"?: Property$OverscrollBehaviorBlock | Array<Property$OverscrollBehaviorBlock>, + "overscroll-behavior-inline"?: Property$OverscrollBehaviorInline | Array<Property$OverscrollBehaviorInline>, + "overscroll-behavior-x"?: Property$OverscrollBehaviorX | Array<Property$OverscrollBehaviorX>, + "overscroll-behavior-y"?: Property$OverscrollBehaviorY | Array<Property$OverscrollBehaviorY>, + "padding-block-end"?: Property$PaddingBlockEnd<TLength> | Array<Property$PaddingBlockEnd<TLength>>, + "padding-block-start"?: Property$PaddingBlockStart<TLength> | Array<Property$PaddingBlockStart<TLength>>, + "padding-bottom"?: Property$PaddingBottom<TLength> | Array<Property$PaddingBottom<TLength>>, + "padding-inline-end"?: Property$PaddingInlineEnd<TLength> | Array<Property$PaddingInlineEnd<TLength>>, + "padding-inline-start"?: Property$PaddingInlineStart<TLength> | Array<Property$PaddingInlineStart<TLength>>, + "padding-left"?: Property$PaddingLeft<TLength> | Array<Property$PaddingLeft<TLength>>, + "padding-right"?: Property$PaddingRight<TLength> | Array<Property$PaddingRight<TLength>>, + "padding-top"?: Property$PaddingTop<TLength> | Array<Property$PaddingTop<TLength>>, + page?: Property$Page | Array<Property$Page>, + "paint-order"?: Property$PaintOrder | Array<Property$PaintOrder>, + perspective?: Property$Perspective<TLength> | Array<Property$Perspective<TLength>>, + "perspective-origin"?: Property$PerspectiveOrigin<TLength> | Array<Property$PerspectiveOrigin<TLength>>, + "pointer-events"?: Property$PointerEvents | Array<Property$PointerEvents>, + position?: Property$Position | Array<Property$Position>, + "position-anchor"?: Property$PositionAnchor | Array<Property$PositionAnchor>, + "position-area"?: Property$PositionArea | Array<Property$PositionArea>, + "position-try-fallbacks"?: Property$PositionTryFallbacks | Array<Property$PositionTryFallbacks>, + "position-try-order"?: Property$PositionTryOrder | Array<Property$PositionTryOrder>, + "position-visibility"?: Property$PositionVisibility | Array<Property$PositionVisibility>, + "print-color-adjust"?: Property$PrintColorAdjust | Array<Property$PrintColorAdjust>, + quotes?: Property$Quotes | Array<Property$Quotes>, + r?: Property$R<TLength> | Array<Property$R<TLength>>, + resize?: Property$Resize | Array<Property$Resize>, + right?: Property$Right<TLength> | Array<Property$Right<TLength>>, + rotate?: Property$Rotate | Array<Property$Rotate>, + "row-gap"?: Property$RowGap<TLength> | Array<Property$RowGap<TLength>>, + "ruby-align"?: Property$RubyAlign | Array<Property$RubyAlign>, + "ruby-merge"?: Property$RubyMerge | Array<Property$RubyMerge>, + "ruby-overhang"?: Property$RubyOverhang | Array<Property$RubyOverhang>, + "ruby-position"?: Property$RubyPosition | Array<Property$RubyPosition>, + rx?: Property$Rx<TLength> | Array<Property$Rx<TLength>>, + ry?: Property$Ry<TLength> | Array<Property$Ry<TLength>>, + scale?: Property$Scale | Array<Property$Scale>, + "scroll-behavior"?: Property$ScrollBehavior | Array<Property$ScrollBehavior>, + "scroll-initial-target"?: Property$ScrollInitialTarget | Array<Property$ScrollInitialTarget>, + "scroll-margin-block-end"?: Property$ScrollMarginBlockEnd<TLength> | Array<Property$ScrollMarginBlockEnd<TLength>>, + "scroll-margin-block-start"?: Property$ScrollMarginBlockStart<TLength> | Array<Property$ScrollMarginBlockStart<TLength>>, + "scroll-margin-bottom"?: Property$ScrollMarginBottom<TLength> | Array<Property$ScrollMarginBottom<TLength>>, + "scroll-margin-inline-end"?: Property$ScrollMarginInlineEnd<TLength> | Array<Property$ScrollMarginInlineEnd<TLength>>, + "scroll-margin-inline-start"?: Property$ScrollMarginInlineStart<TLength> | Array<Property$ScrollMarginInlineStart<TLength>>, + "scroll-margin-left"?: Property$ScrollMarginLeft<TLength> | Array<Property$ScrollMarginLeft<TLength>>, + "scroll-margin-right"?: Property$ScrollMarginRight<TLength> | Array<Property$ScrollMarginRight<TLength>>, + "scroll-margin-top"?: Property$ScrollMarginTop<TLength> | Array<Property$ScrollMarginTop<TLength>>, + "scroll-padding-block-end"?: Property$ScrollPaddingBlockEnd<TLength> | Array<Property$ScrollPaddingBlockEnd<TLength>>, + "scroll-padding-block-start"?: Property$ScrollPaddingBlockStart<TLength> | Array<Property$ScrollPaddingBlockStart<TLength>>, + "scroll-padding-bottom"?: Property$ScrollPaddingBottom<TLength> | Array<Property$ScrollPaddingBottom<TLength>>, + "scroll-padding-inline-end"?: Property$ScrollPaddingInlineEnd<TLength> | Array<Property$ScrollPaddingInlineEnd<TLength>>, + "scroll-padding-inline-start"?: Property$ScrollPaddingInlineStart<TLength> | Array<Property$ScrollPaddingInlineStart<TLength>>, + "scroll-padding-left"?: Property$ScrollPaddingLeft<TLength> | Array<Property$ScrollPaddingLeft<TLength>>, + "scroll-padding-right"?: Property$ScrollPaddingRight<TLength> | Array<Property$ScrollPaddingRight<TLength>>, + "scroll-padding-top"?: Property$ScrollPaddingTop<TLength> | Array<Property$ScrollPaddingTop<TLength>>, + "scroll-snap-align"?: Property$ScrollSnapAlign | Array<Property$ScrollSnapAlign>, + "scroll-snap-margin-bottom"?: Property$ScrollMarginBottom<TLength> | Array<Property$ScrollMarginBottom<TLength>>, + "scroll-snap-margin-left"?: Property$ScrollMarginLeft<TLength> | Array<Property$ScrollMarginLeft<TLength>>, + "scroll-snap-margin-right"?: Property$ScrollMarginRight<TLength> | Array<Property$ScrollMarginRight<TLength>>, + "scroll-snap-margin-top"?: Property$ScrollMarginTop<TLength> | Array<Property$ScrollMarginTop<TLength>>, + "scroll-snap-stop"?: Property$ScrollSnapStop | Array<Property$ScrollSnapStop>, + "scroll-snap-type"?: Property$ScrollSnapType | Array<Property$ScrollSnapType>, + "scroll-timeline-axis"?: Property$ScrollTimelineAxis | Array<Property$ScrollTimelineAxis>, + "scroll-timeline-name"?: Property$ScrollTimelineName | Array<Property$ScrollTimelineName>, + "scrollbar-color"?: Property$ScrollbarColor | Array<Property$ScrollbarColor>, + "scrollbar-gutter"?: Property$ScrollbarGutter | Array<Property$ScrollbarGutter>, + "scrollbar-width"?: Property$ScrollbarWidth | Array<Property$ScrollbarWidth>, + "shape-image-threshold"?: Property$ShapeImageThreshold | Array<Property$ShapeImageThreshold>, + "shape-margin"?: Property$ShapeMargin<TLength> | Array<Property$ShapeMargin<TLength>>, + "shape-outside"?: Property$ShapeOutside | Array<Property$ShapeOutside>, + "shape-rendering"?: Property$ShapeRendering | Array<Property$ShapeRendering>, + "speak-as"?: Property$SpeakAs | Array<Property$SpeakAs>, + "stop-color"?: Property$StopColor | Array<Property$StopColor>, + "stop-opacity"?: Property$StopOpacity | Array<Property$StopOpacity>, + stroke?: Property$Stroke | Array<Property$Stroke>, + "stroke-color"?: Property$StrokeColor | Array<Property$StrokeColor>, + "stroke-dasharray"?: Property$StrokeDasharray<TLength> | Array<Property$StrokeDasharray<TLength>>, + "stroke-dashoffset"?: Property$StrokeDashoffset<TLength> | Array<Property$StrokeDashoffset<TLength>>, + "stroke-linecap"?: Property$StrokeLinecap | Array<Property$StrokeLinecap>, + "stroke-linejoin"?: Property$StrokeLinejoin | Array<Property$StrokeLinejoin>, + "stroke-miterlimit"?: Property$StrokeMiterlimit | Array<Property$StrokeMiterlimit>, + "stroke-opacity"?: Property$StrokeOpacity | Array<Property$StrokeOpacity>, + "stroke-width"?: Property$StrokeWidth<TLength> | Array<Property$StrokeWidth<TLength>>, + "tab-size"?: Property$TabSize<TLength> | Array<Property$TabSize<TLength>>, + "table-layout"?: Property$TableLayout | Array<Property$TableLayout>, + "text-align"?: Property$TextAlign | Array<Property$TextAlign>, + "text-align-last"?: Property$TextAlignLast | Array<Property$TextAlignLast>, + "text-anchor"?: Property$TextAnchor | Array<Property$TextAnchor>, + "text-autospace"?: Property$TextAutospace | Array<Property$TextAutospace>, + "text-box"?: Property$TextBox | Array<Property$TextBox>, + "text-box-edge"?: Property$TextBoxEdge | Array<Property$TextBoxEdge>, + "text-box-trim"?: Property$TextBoxTrim | Array<Property$TextBoxTrim>, + "text-combine-upright"?: Property$TextCombineUpright | Array<Property$TextCombineUpright>, + "text-decoration-color"?: Property$TextDecorationColor | Array<Property$TextDecorationColor>, + "text-decoration-line"?: Property$TextDecorationLine | Array<Property$TextDecorationLine>, + "text-decoration-skip"?: Property$TextDecorationSkip | Array<Property$TextDecorationSkip>, + "text-decoration-skip-ink"?: Property$TextDecorationSkipInk | Array<Property$TextDecorationSkipInk>, + "text-decoration-style"?: Property$TextDecorationStyle | Array<Property$TextDecorationStyle>, + "text-decoration-thickness"?: Property$TextDecorationThickness<TLength> | Array<Property$TextDecorationThickness<TLength>>, + "text-emphasis-color"?: Property$TextEmphasisColor | Array<Property$TextEmphasisColor>, + "text-emphasis-position"?: Property$TextEmphasisPosition | Array<Property$TextEmphasisPosition>, + "text-emphasis-style"?: Property$TextEmphasisStyle | Array<Property$TextEmphasisStyle>, + "text-indent"?: Property$TextIndent<TLength> | Array<Property$TextIndent<TLength>>, + "text-justify"?: Property$TextJustify | Array<Property$TextJustify>, + "text-orientation"?: Property$TextOrientation | Array<Property$TextOrientation>, + "text-overflow"?: Property$TextOverflow | Array<Property$TextOverflow>, + "text-rendering"?: Property$TextRendering | Array<Property$TextRendering>, + "text-shadow"?: Property$TextShadow | Array<Property$TextShadow>, + "text-size-adjust"?: Property$TextSizeAdjust | Array<Property$TextSizeAdjust>, + "text-spacing-trim"?: Property$TextSpacingTrim | Array<Property$TextSpacingTrim>, + "text-transform"?: Property$TextTransform | Array<Property$TextTransform>, + "text-underline-offset"?: Property$TextUnderlineOffset<TLength> | Array<Property$TextUnderlineOffset<TLength>>, + "text-underline-position"?: Property$TextUnderlinePosition | Array<Property$TextUnderlinePosition>, + "text-wrap-mode"?: Property$TextWrapMode | Array<Property$TextWrapMode>, + "text-wrap-style"?: Property$TextWrapStyle | Array<Property$TextWrapStyle>, + "timeline-scope"?: Property$TimelineScope | Array<Property$TimelineScope>, + top?: Property$Top<TLength> | Array<Property$Top<TLength>>, + "touch-action"?: Property$TouchAction | Array<Property$TouchAction>, + transform?: Property$Transform | Array<Property$Transform>, + "transform-box"?: Property$TransformBox | Array<Property$TransformBox>, + "transform-origin"?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + "transform-style"?: Property$TransformStyle | Array<Property$TransformStyle>, + "transition-behavior"?: Property$TransitionBehavior | Array<Property$TransitionBehavior>, + "transition-delay"?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + "transition-duration"?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + "transition-property"?: Property$TransitionProperty | Array<Property$TransitionProperty>, + "transition-timing-function"?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + translate?: Property$Translate<TLength> | Array<Property$Translate<TLength>>, + "unicode-bidi"?: Property$UnicodeBidi | Array<Property$UnicodeBidi>, + "user-select"?: Property$UserSelect | Array<Property$UserSelect>, + "vector-effect"?: Property$VectorEffect | Array<Property$VectorEffect>, + "vertical-align"?: Property$VerticalAlign<TLength> | Array<Property$VerticalAlign<TLength>>, + "view-timeline-axis"?: Property$ViewTimelineAxis | Array<Property$ViewTimelineAxis>, + "view-timeline-inset"?: Property$ViewTimelineInset<TLength> | Array<Property$ViewTimelineInset<TLength>>, + "view-timeline-name"?: Property$ViewTimelineName | Array<Property$ViewTimelineName>, + "view-transition-class"?: Property$ViewTransitionClass | Array<Property$ViewTransitionClass>, + "view-transition-name"?: Property$ViewTransitionName | Array<Property$ViewTransitionName>, + visibility?: Property$Visibility | Array<Property$Visibility>, + "white-space"?: Property$WhiteSpace | Array<Property$WhiteSpace>, + "white-space-collapse"?: Property$WhiteSpaceCollapse | Array<Property$WhiteSpaceCollapse>, + widows?: Property$Widows | Array<Property$Widows>, + width?: Property$Width<TLength> | Array<Property$Width<TLength>>, + "will-change"?: Property$WillChange | Array<Property$WillChange>, + "word-break"?: Property$WordBreak | Array<Property$WordBreak>, + "word-spacing"?: Property$WordSpacing<TLength> | Array<Property$WordSpacing<TLength>>, + "word-wrap"?: Property$WordWrap | Array<Property$WordWrap>, + "writing-mode"?: Property$WritingMode | Array<Property$WritingMode>, + x?: Property$X<TLength> | Array<Property$X<TLength>>, + y?: Property$Y<TLength> | Array<Property$Y<TLength>>, + "z-index"?: Property$ZIndex | Array<Property$ZIndex>, + zoom?: Property$Zoom | Array<Property$Zoom>, +|}; + +export type StandardShorthandPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + all?: Property$All | Array<Property$All>, + animation?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + "animation-range"?: Property$AnimationRange<TLength> | Array<Property$AnimationRange<TLength>>, + background?: Property$Background<TLength> | Array<Property$Background<TLength>>, + "background-position"?: Property$BackgroundPosition<TLength> | Array<Property$BackgroundPosition<TLength>>, + border?: Property$Border<TLength> | Array<Property$Border<TLength>>, + "border-block"?: Property$BorderBlock<TLength> | Array<Property$BorderBlock<TLength>>, + "border-block-color"?: Property$BorderBlockColor | Array<Property$BorderBlockColor>, + "border-block-end"?: Property$BorderBlockEnd<TLength> | Array<Property$BorderBlockEnd<TLength>>, + "border-block-start"?: Property$BorderBlockStart<TLength> | Array<Property$BorderBlockStart<TLength>>, + "border-block-style"?: Property$BorderBlockStyle | Array<Property$BorderBlockStyle>, + "border-block-width"?: Property$BorderBlockWidth<TLength> | Array<Property$BorderBlockWidth<TLength>>, + "border-bottom"?: Property$BorderBottom<TLength> | Array<Property$BorderBottom<TLength>>, + "border-color"?: Property$BorderColor | Array<Property$BorderColor>, + "border-image"?: Property$BorderImage | Array<Property$BorderImage>, + "border-inline"?: Property$BorderInline<TLength> | Array<Property$BorderInline<TLength>>, + "border-inline-color"?: Property$BorderInlineColor | Array<Property$BorderInlineColor>, + "border-inline-end"?: Property$BorderInlineEnd<TLength> | Array<Property$BorderInlineEnd<TLength>>, + "border-inline-start"?: Property$BorderInlineStart<TLength> | Array<Property$BorderInlineStart<TLength>>, + "border-inline-style"?: Property$BorderInlineStyle | Array<Property$BorderInlineStyle>, + "border-inline-width"?: Property$BorderInlineWidth<TLength> | Array<Property$BorderInlineWidth<TLength>>, + "border-left"?: Property$BorderLeft<TLength> | Array<Property$BorderLeft<TLength>>, + "border-radius"?: Property$BorderRadius<TLength> | Array<Property$BorderRadius<TLength>>, + "border-right"?: Property$BorderRight<TLength> | Array<Property$BorderRight<TLength>>, + "border-style"?: Property$BorderStyle | Array<Property$BorderStyle>, + "border-top"?: Property$BorderTop<TLength> | Array<Property$BorderTop<TLength>>, + "border-width"?: Property$BorderWidth<TLength> | Array<Property$BorderWidth<TLength>>, + caret?: Property$Caret | Array<Property$Caret>, + "column-rule"?: Property$ColumnRule<TLength> | Array<Property$ColumnRule<TLength>>, + columns?: Property$Columns<TLength> | Array<Property$Columns<TLength>>, + "contain-intrinsic-size"?: Property$ContainIntrinsicSize<TLength> | Array<Property$ContainIntrinsicSize<TLength>>, + container?: Property$Container | Array<Property$Container>, + flex?: Property$Flex<TLength> | Array<Property$Flex<TLength>>, + "flex-flow"?: Property$FlexFlow | Array<Property$FlexFlow>, + font?: Property$Font | Array<Property$Font>, + gap?: Property$Gap<TLength> | Array<Property$Gap<TLength>>, + grid?: Property$Grid | Array<Property$Grid>, + "grid-area"?: Property$GridArea | Array<Property$GridArea>, + "grid-column"?: Property$GridColumn | Array<Property$GridColumn>, + "grid-row"?: Property$GridRow | Array<Property$GridRow>, + "grid-template"?: Property$GridTemplate | Array<Property$GridTemplate>, + inset?: Property$Inset<TLength> | Array<Property$Inset<TLength>>, + "inset-block"?: Property$InsetBlock<TLength> | Array<Property$InsetBlock<TLength>>, + "inset-inline"?: Property$InsetInline<TLength> | Array<Property$InsetInline<TLength>>, + "line-clamp"?: Property$LineClamp | Array<Property$LineClamp>, + "list-style"?: Property$ListStyle | Array<Property$ListStyle>, + margin?: Property$Margin<TLength> | Array<Property$Margin<TLength>>, + "margin-block"?: Property$MarginBlock<TLength> | Array<Property$MarginBlock<TLength>>, + "margin-inline"?: Property$MarginInline<TLength> | Array<Property$MarginInline<TLength>>, + mask?: Property$Mask<TLength> | Array<Property$Mask<TLength>>, + "mask-border"?: Property$MaskBorder | Array<Property$MaskBorder>, + motion?: Property$Offset<TLength> | Array<Property$Offset<TLength>>, + offset?: Property$Offset<TLength> | Array<Property$Offset<TLength>>, + outline?: Property$Outline<TLength> | Array<Property$Outline<TLength>>, + overflow?: Property$Overflow | Array<Property$Overflow>, + "overscroll-behavior"?: Property$OverscrollBehavior | Array<Property$OverscrollBehavior>, + padding?: Property$Padding<TLength> | Array<Property$Padding<TLength>>, + "padding-block"?: Property$PaddingBlock<TLength> | Array<Property$PaddingBlock<TLength>>, + "padding-inline"?: Property$PaddingInline<TLength> | Array<Property$PaddingInline<TLength>>, + "place-content"?: Property$PlaceContent | Array<Property$PlaceContent>, + "place-items"?: Property$PlaceItems | Array<Property$PlaceItems>, + "place-self"?: Property$PlaceSelf | Array<Property$PlaceSelf>, + "position-try"?: Property$PositionTry | Array<Property$PositionTry>, + "scroll-margin"?: Property$ScrollMargin<TLength> | Array<Property$ScrollMargin<TLength>>, + "scroll-margin-block"?: Property$ScrollMarginBlock<TLength> | Array<Property$ScrollMarginBlock<TLength>>, + "scroll-margin-inline"?: Property$ScrollMarginInline<TLength> | Array<Property$ScrollMarginInline<TLength>>, + "scroll-padding"?: Property$ScrollPadding<TLength> | Array<Property$ScrollPadding<TLength>>, + "scroll-padding-block"?: Property$ScrollPaddingBlock<TLength> | Array<Property$ScrollPaddingBlock<TLength>>, + "scroll-padding-inline"?: Property$ScrollPaddingInline<TLength> | Array<Property$ScrollPaddingInline<TLength>>, + "scroll-snap-margin"?: Property$ScrollMargin<TLength> | Array<Property$ScrollMargin<TLength>>, + "scroll-timeline"?: Property$ScrollTimeline | Array<Property$ScrollTimeline>, + "text-decoration"?: Property$TextDecoration<TLength> | Array<Property$TextDecoration<TLength>>, + "text-emphasis"?: Property$TextEmphasis | Array<Property$TextEmphasis>, + "text-wrap"?: Property$TextWrap | Array<Property$TextWrap>, + transition?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + "view-timeline"?: Property$ViewTimeline | Array<Property$ViewTimeline>, +|}; + +export type StandardPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + ...StandardLonghandPropertiesHyphenFallback<TLength, TTime>, + ...StandardShorthandPropertiesHyphenFallback<TLength, TTime>, +|}; + +export type VendorLonghandPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + "-moz-animation-delay"?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + "-moz-animation-direction"?: Property$AnimationDirection | Array<Property$AnimationDirection>, + "-moz-animation-duration"?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + "-moz-animation-fill-mode"?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + "-moz-animation-iteration-count"?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + "-moz-animation-name"?: Property$AnimationName | Array<Property$AnimationName>, + "-moz-animation-play-state"?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + "-moz-animation-timing-function"?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + "-moz-appearance"?: Property$MozAppearance | Array<Property$MozAppearance>, + "-moz-backface-visibility"?: Property$BackfaceVisibility | Array<Property$BackfaceVisibility>, + "-moz-binding"?: Property$MozBinding | Array<Property$MozBinding>, + "-moz-border-bottom-colors"?: Property$MozBorderBottomColors | Array<Property$MozBorderBottomColors>, + "-moz-border-end-color"?: Property$BorderInlineEndColor | Array<Property$BorderInlineEndColor>, + "-moz-border-end-style"?: Property$BorderInlineEndStyle | Array<Property$BorderInlineEndStyle>, + "-moz-border-end-width"?: Property$BorderInlineEndWidth<TLength> | Array<Property$BorderInlineEndWidth<TLength>>, + "-moz-border-left-colors"?: Property$MozBorderLeftColors | Array<Property$MozBorderLeftColors>, + "-moz-border-right-colors"?: Property$MozBorderRightColors | Array<Property$MozBorderRightColors>, + "-moz-border-start-color"?: Property$BorderInlineStartColor | Array<Property$BorderInlineStartColor>, + "-moz-border-start-style"?: Property$BorderInlineStartStyle | Array<Property$BorderInlineStartStyle>, + "-moz-border-top-colors"?: Property$MozBorderTopColors | Array<Property$MozBorderTopColors>, + "-moz-box-sizing"?: Property$BoxSizing | Array<Property$BoxSizing>, + "-moz-column-rule-color"?: Property$ColumnRuleColor | Array<Property$ColumnRuleColor>, + "-moz-column-rule-style"?: Property$ColumnRuleStyle | Array<Property$ColumnRuleStyle>, + "-moz-column-rule-width"?: Property$ColumnRuleWidth<TLength> | Array<Property$ColumnRuleWidth<TLength>>, + "-moz-column-width"?: Property$ColumnWidth<TLength> | Array<Property$ColumnWidth<TLength>>, + "-moz-context-properties"?: Property$MozContextProperties | Array<Property$MozContextProperties>, + "-moz-font-feature-settings"?: Property$FontFeatureSettings | Array<Property$FontFeatureSettings>, + "-moz-font-language-override"?: Property$FontLanguageOverride | Array<Property$FontLanguageOverride>, + "-moz-hyphens"?: Property$Hyphens | Array<Property$Hyphens>, + "-moz-margin-end"?: Property$MarginInlineEnd<TLength> | Array<Property$MarginInlineEnd<TLength>>, + "-moz-margin-start"?: Property$MarginInlineStart<TLength> | Array<Property$MarginInlineStart<TLength>>, + "-moz-orient"?: Property$MozOrient | Array<Property$MozOrient>, + "-moz-osx-font-smoothing"?: Property$FontSmooth<TLength> | Array<Property$FontSmooth<TLength>>, + "-moz-outline-radius-bottomleft"?: Property$MozOutlineRadiusBottomleft<TLength> | Array<Property$MozOutlineRadiusBottomleft<TLength>>, + "-moz-outline-radius-bottomright"?: Property$MozOutlineRadiusBottomright<TLength> | Array<Property$MozOutlineRadiusBottomright<TLength>>, + "-moz-outline-radius-topleft"?: Property$MozOutlineRadiusTopleft<TLength> | Array<Property$MozOutlineRadiusTopleft<TLength>>, + "-moz-outline-radius-topright"?: Property$MozOutlineRadiusTopright<TLength> | Array<Property$MozOutlineRadiusTopright<TLength>>, + "-moz-padding-end"?: Property$PaddingInlineEnd<TLength> | Array<Property$PaddingInlineEnd<TLength>>, + "-moz-padding-start"?: Property$PaddingInlineStart<TLength> | Array<Property$PaddingInlineStart<TLength>>, + "-moz-perspective"?: Property$Perspective<TLength> | Array<Property$Perspective<TLength>>, + "-moz-perspective-origin"?: Property$PerspectiveOrigin<TLength> | Array<Property$PerspectiveOrigin<TLength>>, + "-moz-stack-sizing"?: Property$MozStackSizing | Array<Property$MozStackSizing>, + "-moz-tab-size"?: Property$TabSize<TLength> | Array<Property$TabSize<TLength>>, + "-moz-text-blink"?: Property$MozTextBlink | Array<Property$MozTextBlink>, + "-moz-text-size-adjust"?: Property$TextSizeAdjust | Array<Property$TextSizeAdjust>, + "-moz-transform"?: Property$Transform | Array<Property$Transform>, + "-moz-transform-origin"?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + "-moz-transform-style"?: Property$TransformStyle | Array<Property$TransformStyle>, + "-moz-user-modify"?: Property$MozUserModify | Array<Property$MozUserModify>, + "-moz-user-select"?: Property$UserSelect | Array<Property$UserSelect>, + "-moz-window-dragging"?: Property$MozWindowDragging | Array<Property$MozWindowDragging>, + "-moz-window-shadow"?: Property$MozWindowShadow | Array<Property$MozWindowShadow>, + "-ms-accelerator"?: Property$MsAccelerator | Array<Property$MsAccelerator>, + "-ms-block-progression"?: Property$MsBlockProgression | Array<Property$MsBlockProgression>, + "-ms-content-zoom-chaining"?: Property$MsContentZoomChaining | Array<Property$MsContentZoomChaining>, + "-ms-content-zoom-limit-max"?: Property$MsContentZoomLimitMax | Array<Property$MsContentZoomLimitMax>, + "-ms-content-zoom-limit-min"?: Property$MsContentZoomLimitMin | Array<Property$MsContentZoomLimitMin>, + "-ms-content-zoom-snap-points"?: Property$MsContentZoomSnapPoints | Array<Property$MsContentZoomSnapPoints>, + "-ms-content-zoom-snap-type"?: Property$MsContentZoomSnapType | Array<Property$MsContentZoomSnapType>, + "-ms-content-zooming"?: Property$MsContentZooming | Array<Property$MsContentZooming>, + "-ms-filter"?: Property$MsFilter | Array<Property$MsFilter>, + "-ms-flex-direction"?: Property$FlexDirection | Array<Property$FlexDirection>, + "-ms-flex-positive"?: Property$FlexGrow | Array<Property$FlexGrow>, + "-ms-flow-from"?: Property$MsFlowFrom | Array<Property$MsFlowFrom>, + "-ms-flow-into"?: Property$MsFlowInto | Array<Property$MsFlowInto>, + "-ms-grid-columns"?: Property$MsGridColumns<TLength> | Array<Property$MsGridColumns<TLength>>, + "-ms-grid-rows"?: Property$MsGridRows<TLength> | Array<Property$MsGridRows<TLength>>, + "-ms-high-contrast-adjust"?: Property$MsHighContrastAdjust | Array<Property$MsHighContrastAdjust>, + "-ms-hyphenate-limit-chars"?: Property$MsHyphenateLimitChars | Array<Property$MsHyphenateLimitChars>, + "-ms-hyphenate-limit-lines"?: Property$MsHyphenateLimitLines | Array<Property$MsHyphenateLimitLines>, + "-ms-hyphenate-limit-zone"?: Property$MsHyphenateLimitZone<TLength> | Array<Property$MsHyphenateLimitZone<TLength>>, + "-ms-hyphens"?: Property$Hyphens | Array<Property$Hyphens>, + "-ms-ime-align"?: Property$MsImeAlign | Array<Property$MsImeAlign>, + "-ms-line-break"?: Property$LineBreak | Array<Property$LineBreak>, + "-ms-order"?: Property$Order | Array<Property$Order>, + "-ms-overflow-style"?: Property$MsOverflowStyle | Array<Property$MsOverflowStyle>, + "-ms-overflow-x"?: Property$OverflowX | Array<Property$OverflowX>, + "-ms-overflow-y"?: Property$OverflowY | Array<Property$OverflowY>, + "-ms-scroll-chaining"?: Property$MsScrollChaining | Array<Property$MsScrollChaining>, + "-ms-scroll-limit-x-max"?: Property$MsScrollLimitXMax<TLength> | Array<Property$MsScrollLimitXMax<TLength>>, + "-ms-scroll-limit-x-min"?: Property$MsScrollLimitXMin<TLength> | Array<Property$MsScrollLimitXMin<TLength>>, + "-ms-scroll-limit-y-max"?: Property$MsScrollLimitYMax<TLength> | Array<Property$MsScrollLimitYMax<TLength>>, + "-ms-scroll-limit-y-min"?: Property$MsScrollLimitYMin<TLength> | Array<Property$MsScrollLimitYMin<TLength>>, + "-ms-scroll-rails"?: Property$MsScrollRails | Array<Property$MsScrollRails>, + "-ms-scroll-snap-points-x"?: Property$MsScrollSnapPointsX | Array<Property$MsScrollSnapPointsX>, + "-ms-scroll-snap-points-y"?: Property$MsScrollSnapPointsY | Array<Property$MsScrollSnapPointsY>, + "-ms-scroll-snap-type"?: Property$MsScrollSnapType | Array<Property$MsScrollSnapType>, + "-ms-scroll-translation"?: Property$MsScrollTranslation | Array<Property$MsScrollTranslation>, + "-ms-scrollbar-3dlight-color"?: Property$MsScrollbar3dlightColor | Array<Property$MsScrollbar3dlightColor>, + "-ms-scrollbar-arrow-color"?: Property$MsScrollbarArrowColor | Array<Property$MsScrollbarArrowColor>, + "-ms-scrollbar-base-color"?: Property$MsScrollbarBaseColor | Array<Property$MsScrollbarBaseColor>, + "-ms-scrollbar-darkshadow-color"?: Property$MsScrollbarDarkshadowColor | Array<Property$MsScrollbarDarkshadowColor>, + "-ms-scrollbar-face-color"?: Property$MsScrollbarFaceColor | Array<Property$MsScrollbarFaceColor>, + "-ms-scrollbar-highlight-color"?: Property$MsScrollbarHighlightColor | Array<Property$MsScrollbarHighlightColor>, + "-ms-scrollbar-shadow-color"?: Property$MsScrollbarShadowColor | Array<Property$MsScrollbarShadowColor>, + "-ms-scrollbar-track-color"?: Property$MsScrollbarTrackColor | Array<Property$MsScrollbarTrackColor>, + "-ms-text-autospace"?: Property$MsTextAutospace | Array<Property$MsTextAutospace>, + "-ms-text-combine-horizontal"?: Property$TextCombineUpright | Array<Property$TextCombineUpright>, + "-ms-text-overflow"?: Property$TextOverflow | Array<Property$TextOverflow>, + "-ms-touch-action"?: Property$TouchAction | Array<Property$TouchAction>, + "-ms-touch-select"?: Property$MsTouchSelect | Array<Property$MsTouchSelect>, + "-ms-transform"?: Property$Transform | Array<Property$Transform>, + "-ms-transform-origin"?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + "-ms-transition-delay"?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + "-ms-transition-duration"?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + "-ms-transition-property"?: Property$TransitionProperty | Array<Property$TransitionProperty>, + "-ms-transition-timing-function"?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + "-ms-user-select"?: Property$MsUserSelect | Array<Property$MsUserSelect>, + "-ms-word-break"?: Property$WordBreak | Array<Property$WordBreak>, + "-ms-wrap-flow"?: Property$MsWrapFlow | Array<Property$MsWrapFlow>, + "-ms-wrap-margin"?: Property$MsWrapMargin<TLength> | Array<Property$MsWrapMargin<TLength>>, + "-ms-wrap-through"?: Property$MsWrapThrough | Array<Property$MsWrapThrough>, + "-ms-writing-mode"?: Property$WritingMode | Array<Property$WritingMode>, + "-webkit-align-content"?: Property$AlignContent | Array<Property$AlignContent>, + "-webkit-align-items"?: Property$AlignItems | Array<Property$AlignItems>, + "-webkit-align-self"?: Property$AlignSelf | Array<Property$AlignSelf>, + "-webkit-animation-delay"?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + "-webkit-animation-direction"?: Property$AnimationDirection | Array<Property$AnimationDirection>, + "-webkit-animation-duration"?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + "-webkit-animation-fill-mode"?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + "-webkit-animation-iteration-count"?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + "-webkit-animation-name"?: Property$AnimationName | Array<Property$AnimationName>, + "-webkit-animation-play-state"?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + "-webkit-animation-timing-function"?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + "-webkit-appearance"?: Property$WebkitAppearance | Array<Property$WebkitAppearance>, + "-webkit-backdrop-filter"?: Property$BackdropFilter | Array<Property$BackdropFilter>, + "-webkit-backface-visibility"?: Property$BackfaceVisibility | Array<Property$BackfaceVisibility>, + "-webkit-background-clip"?: Property$BackgroundClip | Array<Property$BackgroundClip>, + "-webkit-background-origin"?: Property$BackgroundOrigin | Array<Property$BackgroundOrigin>, + "-webkit-background-size"?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + "-webkit-border-before-color"?: Property$WebkitBorderBeforeColor | Array<Property$WebkitBorderBeforeColor>, + "-webkit-border-before-style"?: Property$WebkitBorderBeforeStyle | Array<Property$WebkitBorderBeforeStyle>, + "-webkit-border-before-width"?: Property$WebkitBorderBeforeWidth<TLength> | Array<Property$WebkitBorderBeforeWidth<TLength>>, + "-webkit-border-bottom-left-radius"?: Property$BorderBottomLeftRadius<TLength> | Array<Property$BorderBottomLeftRadius<TLength>>, + "-webkit-border-bottom-right-radius"?: Property$BorderBottomRightRadius<TLength> | Array<Property$BorderBottomRightRadius<TLength>>, + "-webkit-border-image-slice"?: Property$BorderImageSlice | Array<Property$BorderImageSlice>, + "-webkit-border-top-left-radius"?: Property$BorderTopLeftRadius<TLength> | Array<Property$BorderTopLeftRadius<TLength>>, + "-webkit-border-top-right-radius"?: Property$BorderTopRightRadius<TLength> | Array<Property$BorderTopRightRadius<TLength>>, + "-webkit-box-decoration-break"?: Property$BoxDecorationBreak | Array<Property$BoxDecorationBreak>, + "-webkit-box-reflect"?: Property$WebkitBoxReflect<TLength> | Array<Property$WebkitBoxReflect<TLength>>, + "-webkit-box-shadow"?: Property$BoxShadow | Array<Property$BoxShadow>, + "-webkit-box-sizing"?: Property$BoxSizing | Array<Property$BoxSizing>, + "-webkit-clip-path"?: Property$ClipPath | Array<Property$ClipPath>, + "-webkit-column-count"?: Property$ColumnCount | Array<Property$ColumnCount>, + "-webkit-column-fill"?: Property$ColumnFill | Array<Property$ColumnFill>, + "-webkit-column-rule-color"?: Property$ColumnRuleColor | Array<Property$ColumnRuleColor>, + "-webkit-column-rule-style"?: Property$ColumnRuleStyle | Array<Property$ColumnRuleStyle>, + "-webkit-column-rule-width"?: Property$ColumnRuleWidth<TLength> | Array<Property$ColumnRuleWidth<TLength>>, + "-webkit-column-span"?: Property$ColumnSpan | Array<Property$ColumnSpan>, + "-webkit-column-width"?: Property$ColumnWidth<TLength> | Array<Property$ColumnWidth<TLength>>, + "-webkit-filter"?: Property$Filter | Array<Property$Filter>, + "-webkit-flex-basis"?: Property$FlexBasis<TLength> | Array<Property$FlexBasis<TLength>>, + "-webkit-flex-direction"?: Property$FlexDirection | Array<Property$FlexDirection>, + "-webkit-flex-grow"?: Property$FlexGrow | Array<Property$FlexGrow>, + "-webkit-flex-shrink"?: Property$FlexShrink | Array<Property$FlexShrink>, + "-webkit-flex-wrap"?: Property$FlexWrap | Array<Property$FlexWrap>, + "-webkit-font-feature-settings"?: Property$FontFeatureSettings | Array<Property$FontFeatureSettings>, + "-webkit-font-kerning"?: Property$FontKerning | Array<Property$FontKerning>, + "-webkit-font-smoothing"?: Property$FontSmooth<TLength> | Array<Property$FontSmooth<TLength>>, + "-webkit-font-variant-ligatures"?: Property$FontVariantLigatures | Array<Property$FontVariantLigatures>, + "-webkit-hyphenate-character"?: Property$HyphenateCharacter | Array<Property$HyphenateCharacter>, + "-webkit-hyphens"?: Property$Hyphens | Array<Property$Hyphens>, + "-webkit-initial-letter"?: Property$InitialLetter | Array<Property$InitialLetter>, + "-webkit-justify-content"?: Property$JustifyContent | Array<Property$JustifyContent>, + "-webkit-line-break"?: Property$LineBreak | Array<Property$LineBreak>, + "-webkit-line-clamp"?: Property$WebkitLineClamp | Array<Property$WebkitLineClamp>, + "-webkit-logical-height"?: Property$BlockSize<TLength> | Array<Property$BlockSize<TLength>>, + "-webkit-logical-width"?: Property$InlineSize<TLength> | Array<Property$InlineSize<TLength>>, + "-webkit-margin-end"?: Property$MarginInlineEnd<TLength> | Array<Property$MarginInlineEnd<TLength>>, + "-webkit-margin-start"?: Property$MarginInlineStart<TLength> | Array<Property$MarginInlineStart<TLength>>, + "-webkit-mask-attachment"?: Property$WebkitMaskAttachment | Array<Property$WebkitMaskAttachment>, + "-webkit-mask-box-image-outset"?: Property$MaskBorderOutset<TLength> | Array<Property$MaskBorderOutset<TLength>>, + "-webkit-mask-box-image-repeat"?: Property$MaskBorderRepeat | Array<Property$MaskBorderRepeat>, + "-webkit-mask-box-image-slice"?: Property$MaskBorderSlice | Array<Property$MaskBorderSlice>, + "-webkit-mask-box-image-source"?: Property$MaskBorderSource | Array<Property$MaskBorderSource>, + "-webkit-mask-box-image-width"?: Property$MaskBorderWidth<TLength> | Array<Property$MaskBorderWidth<TLength>>, + "-webkit-mask-clip"?: Property$WebkitMaskClip | Array<Property$WebkitMaskClip>, + "-webkit-mask-composite"?: Property$WebkitMaskComposite | Array<Property$WebkitMaskComposite>, + "-webkit-mask-image"?: Property$WebkitMaskImage | Array<Property$WebkitMaskImage>, + "-webkit-mask-origin"?: Property$WebkitMaskOrigin | Array<Property$WebkitMaskOrigin>, + "-webkit-mask-position"?: Property$WebkitMaskPosition<TLength> | Array<Property$WebkitMaskPosition<TLength>>, + "-webkit-mask-position-x"?: Property$WebkitMaskPositionX<TLength> | Array<Property$WebkitMaskPositionX<TLength>>, + "-webkit-mask-position-y"?: Property$WebkitMaskPositionY<TLength> | Array<Property$WebkitMaskPositionY<TLength>>, + "-webkit-mask-repeat"?: Property$WebkitMaskRepeat | Array<Property$WebkitMaskRepeat>, + "-webkit-mask-repeat-x"?: Property$WebkitMaskRepeatX | Array<Property$WebkitMaskRepeatX>, + "-webkit-mask-repeat-y"?: Property$WebkitMaskRepeatY | Array<Property$WebkitMaskRepeatY>, + "-webkit-mask-size"?: Property$WebkitMaskSize<TLength> | Array<Property$WebkitMaskSize<TLength>>, + "-webkit-max-inline-size"?: Property$MaxInlineSize<TLength> | Array<Property$MaxInlineSize<TLength>>, + "-webkit-order"?: Property$Order | Array<Property$Order>, + "-webkit-overflow-scrolling"?: Property$WebkitOverflowScrolling | Array<Property$WebkitOverflowScrolling>, + "-webkit-padding-end"?: Property$PaddingInlineEnd<TLength> | Array<Property$PaddingInlineEnd<TLength>>, + "-webkit-padding-start"?: Property$PaddingInlineStart<TLength> | Array<Property$PaddingInlineStart<TLength>>, + "-webkit-perspective"?: Property$Perspective<TLength> | Array<Property$Perspective<TLength>>, + "-webkit-perspective-origin"?: Property$PerspectiveOrigin<TLength> | Array<Property$PerspectiveOrigin<TLength>>, + "-webkit-print-color-adjust"?: Property$PrintColorAdjust | Array<Property$PrintColorAdjust>, + "-webkit-ruby-position"?: Property$RubyPosition | Array<Property$RubyPosition>, + "-webkit-scroll-snap-type"?: Property$ScrollSnapType | Array<Property$ScrollSnapType>, + "-webkit-shape-margin"?: Property$ShapeMargin<TLength> | Array<Property$ShapeMargin<TLength>>, + "-webkit-tap-highlight-color"?: Property$WebkitTapHighlightColor | Array<Property$WebkitTapHighlightColor>, + "-webkit-text-combine"?: Property$TextCombineUpright | Array<Property$TextCombineUpright>, + "-webkit-text-decoration-color"?: Property$TextDecorationColor | Array<Property$TextDecorationColor>, + "-webkit-text-decoration-line"?: Property$TextDecorationLine | Array<Property$TextDecorationLine>, + "-webkit-text-decoration-skip"?: Property$TextDecorationSkip | Array<Property$TextDecorationSkip>, + "-webkit-text-decoration-style"?: Property$TextDecorationStyle | Array<Property$TextDecorationStyle>, + "-webkit-text-emphasis-color"?: Property$TextEmphasisColor | Array<Property$TextEmphasisColor>, + "-webkit-text-emphasis-position"?: Property$TextEmphasisPosition | Array<Property$TextEmphasisPosition>, + "-webkit-text-emphasis-style"?: Property$TextEmphasisStyle | Array<Property$TextEmphasisStyle>, + "-webkit-text-fill-color"?: Property$WebkitTextFillColor | Array<Property$WebkitTextFillColor>, + "-webkit-text-orientation"?: Property$TextOrientation | Array<Property$TextOrientation>, + "-webkit-text-size-adjust"?: Property$TextSizeAdjust | Array<Property$TextSizeAdjust>, + "-webkit-text-stroke-color"?: Property$WebkitTextStrokeColor | Array<Property$WebkitTextStrokeColor>, + "-webkit-text-stroke-width"?: Property$WebkitTextStrokeWidth<TLength> | Array<Property$WebkitTextStrokeWidth<TLength>>, + "-webkit-text-underline-position"?: Property$TextUnderlinePosition | Array<Property$TextUnderlinePosition>, + "-webkit-touch-callout"?: Property$WebkitTouchCallout | Array<Property$WebkitTouchCallout>, + "-webkit-transform"?: Property$Transform | Array<Property$Transform>, + "-webkit-transform-origin"?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + "-webkit-transform-style"?: Property$TransformStyle | Array<Property$TransformStyle>, + "-webkit-transition-delay"?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + "-webkit-transition-duration"?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + "-webkit-transition-property"?: Property$TransitionProperty | Array<Property$TransitionProperty>, + "-webkit-transition-timing-function"?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + "-webkit-user-modify"?: Property$WebkitUserModify | Array<Property$WebkitUserModify>, + "-webkit-user-select"?: Property$WebkitUserSelect | Array<Property$WebkitUserSelect>, + "-webkit-writing-mode"?: Property$WritingMode | Array<Property$WritingMode>, +|}; + +export type VendorShorthandPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + "-moz-animation"?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + "-moz-border-image"?: Property$BorderImage | Array<Property$BorderImage>, + "-moz-column-rule"?: Property$ColumnRule<TLength> | Array<Property$ColumnRule<TLength>>, + "-moz-columns"?: Property$Columns<TLength> | Array<Property$Columns<TLength>>, + "-moz-outline-radius"?: Property$MozOutlineRadius<TLength> | Array<Property$MozOutlineRadius<TLength>>, + "-moz-transition"?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + "-ms-content-zoom-limit"?: Property$MsContentZoomLimit | Array<Property$MsContentZoomLimit>, + "-ms-content-zoom-snap"?: Property$MsContentZoomSnap | Array<Property$MsContentZoomSnap>, + "-ms-flex"?: Property$Flex<TLength> | Array<Property$Flex<TLength>>, + "-ms-scroll-limit"?: Property$MsScrollLimit | Array<Property$MsScrollLimit>, + "-ms-scroll-snap-x"?: Property$MsScrollSnapX | Array<Property$MsScrollSnapX>, + "-ms-scroll-snap-y"?: Property$MsScrollSnapY | Array<Property$MsScrollSnapY>, + "-ms-transition"?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + "-webkit-animation"?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + "-webkit-border-before"?: Property$WebkitBorderBefore<TLength> | Array<Property$WebkitBorderBefore<TLength>>, + "-webkit-border-image"?: Property$BorderImage | Array<Property$BorderImage>, + "-webkit-border-radius"?: Property$BorderRadius<TLength> | Array<Property$BorderRadius<TLength>>, + "-webkit-column-rule"?: Property$ColumnRule<TLength> | Array<Property$ColumnRule<TLength>>, + "-webkit-columns"?: Property$Columns<TLength> | Array<Property$Columns<TLength>>, + "-webkit-flex"?: Property$Flex<TLength> | Array<Property$Flex<TLength>>, + "-webkit-flex-flow"?: Property$FlexFlow | Array<Property$FlexFlow>, + "-webkit-mask"?: Property$WebkitMask<TLength> | Array<Property$WebkitMask<TLength>>, + "-webkit-mask-box-image"?: Property$MaskBorder | Array<Property$MaskBorder>, + "-webkit-text-emphasis"?: Property$TextEmphasis | Array<Property$TextEmphasis>, + "-webkit-text-stroke"?: Property$WebkitTextStroke<TLength> | Array<Property$WebkitTextStroke<TLength>>, + "-webkit-transition"?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, +|}; + +export type VendorPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + ...VendorLonghandPropertiesHyphenFallback<TLength, TTime>, + ...VendorShorthandPropertiesHyphenFallback<TLength, TTime>, +|}; + +export type ObsoletePropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + "box-align"?: Property$BoxAlign | Array<Property$BoxAlign>, + "box-direction"?: Property$BoxDirection | Array<Property$BoxDirection>, + "box-flex"?: Property$BoxFlex | Array<Property$BoxFlex>, + "box-flex-group"?: Property$BoxFlexGroup | Array<Property$BoxFlexGroup>, + "box-lines"?: Property$BoxLines | Array<Property$BoxLines>, + "box-ordinal-group"?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + "box-orient"?: Property$BoxOrient | Array<Property$BoxOrient>, + "box-pack"?: Property$BoxPack | Array<Property$BoxPack>, + clip?: Property$Clip | Array<Property$Clip>, + "font-stretch"?: Property$FontStretch | Array<Property$FontStretch>, + "grid-column-gap"?: Property$GridColumnGap<TLength> | Array<Property$GridColumnGap<TLength>>, + "grid-gap"?: Property$GridGap<TLength> | Array<Property$GridGap<TLength>>, + "grid-row-gap"?: Property$GridRowGap<TLength> | Array<Property$GridRowGap<TLength>>, + "ime-mode"?: Property$ImeMode | Array<Property$ImeMode>, + "inset-area"?: Property$PositionArea | Array<Property$PositionArea>, + "offset-block"?: Property$InsetBlock<TLength> | Array<Property$InsetBlock<TLength>>, + "offset-block-end"?: Property$InsetBlockEnd<TLength> | Array<Property$InsetBlockEnd<TLength>>, + "offset-block-start"?: Property$InsetBlockStart<TLength> | Array<Property$InsetBlockStart<TLength>>, + "offset-inline"?: Property$InsetInline<TLength> | Array<Property$InsetInline<TLength>>, + "offset-inline-end"?: Property$InsetInlineEnd<TLength> | Array<Property$InsetInlineEnd<TLength>>, + "offset-inline-start"?: Property$InsetInlineStart<TLength> | Array<Property$InsetInlineStart<TLength>>, + "page-break-after"?: Property$PageBreakAfter | Array<Property$PageBreakAfter>, + "page-break-before"?: Property$PageBreakBefore | Array<Property$PageBreakBefore>, + "page-break-inside"?: Property$PageBreakInside | Array<Property$PageBreakInside>, + "position-try-options"?: Property$PositionTryFallbacks | Array<Property$PositionTryFallbacks>, + "scroll-snap-coordinate"?: Property$ScrollSnapCoordinate<TLength> | Array<Property$ScrollSnapCoordinate<TLength>>, + "scroll-snap-destination"?: Property$ScrollSnapDestination<TLength> | Array<Property$ScrollSnapDestination<TLength>>, + "scroll-snap-points-x"?: Property$ScrollSnapPointsX | Array<Property$ScrollSnapPointsX>, + "scroll-snap-points-y"?: Property$ScrollSnapPointsY | Array<Property$ScrollSnapPointsY>, + "scroll-snap-type-x"?: Property$ScrollSnapTypeX | Array<Property$ScrollSnapTypeX>, + "scroll-snap-type-y"?: Property$ScrollSnapTypeY | Array<Property$ScrollSnapTypeY>, + "-khtml-box-align"?: Property$BoxAlign | Array<Property$BoxAlign>, + "-khtml-box-direction"?: Property$BoxDirection | Array<Property$BoxDirection>, + "-khtml-box-flex"?: Property$BoxFlex | Array<Property$BoxFlex>, + "-khtml-box-flex-group"?: Property$BoxFlexGroup | Array<Property$BoxFlexGroup>, + "-khtml-box-lines"?: Property$BoxLines | Array<Property$BoxLines>, + "-khtml-box-ordinal-group"?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + "-khtml-box-orient"?: Property$BoxOrient | Array<Property$BoxOrient>, + "-khtml-box-pack"?: Property$BoxPack | Array<Property$BoxPack>, + "-khtml-line-break"?: Property$LineBreak | Array<Property$LineBreak>, + "-khtml-opacity"?: Property$Opacity | Array<Property$Opacity>, + "-khtml-user-select"?: Property$UserSelect | Array<Property$UserSelect>, + "-moz-background-clip"?: Property$BackgroundClip | Array<Property$BackgroundClip>, + "-moz-background-origin"?: Property$BackgroundOrigin | Array<Property$BackgroundOrigin>, + "-moz-background-size"?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + "-moz-border-radius"?: Property$BorderRadius<TLength> | Array<Property$BorderRadius<TLength>>, + "-moz-border-radius-bottomleft"?: Property$BorderBottomLeftRadius<TLength> | Array<Property$BorderBottomLeftRadius<TLength>>, + "-moz-border-radius-bottomright"?: Property$BorderBottomRightRadius<TLength> | Array<Property$BorderBottomRightRadius<TLength>>, + "-moz-border-radius-topleft"?: Property$BorderTopLeftRadius<TLength> | Array<Property$BorderTopLeftRadius<TLength>>, + "-moz-border-radius-topright"?: Property$BorderTopRightRadius<TLength> | Array<Property$BorderTopRightRadius<TLength>>, + "-moz-box-align"?: Property$BoxAlign | Array<Property$BoxAlign>, + "-moz-box-direction"?: Property$BoxDirection | Array<Property$BoxDirection>, + "-moz-box-flex"?: Property$BoxFlex | Array<Property$BoxFlex>, + "-moz-box-ordinal-group"?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + "-moz-box-orient"?: Property$BoxOrient | Array<Property$BoxOrient>, + "-moz-box-pack"?: Property$BoxPack | Array<Property$BoxPack>, + "-moz-box-shadow"?: Property$BoxShadow | Array<Property$BoxShadow>, + "-moz-column-count"?: Property$ColumnCount | Array<Property$ColumnCount>, + "-moz-column-fill"?: Property$ColumnFill | Array<Property$ColumnFill>, + "-moz-float-edge"?: Property$MozFloatEdge | Array<Property$MozFloatEdge>, + "-moz-force-broken-image-icon"?: Property$MozForceBrokenImageIcon | Array<Property$MozForceBrokenImageIcon>, + "-moz-opacity"?: Property$Opacity | Array<Property$Opacity>, + "-moz-outline"?: Property$Outline<TLength> | Array<Property$Outline<TLength>>, + "-moz-outline-color"?: Property$OutlineColor | Array<Property$OutlineColor>, + "-moz-outline-style"?: Property$OutlineStyle | Array<Property$OutlineStyle>, + "-moz-outline-width"?: Property$OutlineWidth<TLength> | Array<Property$OutlineWidth<TLength>>, + "-moz-text-align-last"?: Property$TextAlignLast | Array<Property$TextAlignLast>, + "-moz-text-decoration-color"?: Property$TextDecorationColor | Array<Property$TextDecorationColor>, + "-moz-text-decoration-line"?: Property$TextDecorationLine | Array<Property$TextDecorationLine>, + "-moz-text-decoration-style"?: Property$TextDecorationStyle | Array<Property$TextDecorationStyle>, + "-moz-transition-delay"?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + "-moz-transition-duration"?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + "-moz-transition-property"?: Property$TransitionProperty | Array<Property$TransitionProperty>, + "-moz-transition-timing-function"?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + "-moz-user-focus"?: Property$MozUserFocus | Array<Property$MozUserFocus>, + "-moz-user-input"?: Property$MozUserInput | Array<Property$MozUserInput>, + "-ms-ime-mode"?: Property$ImeMode | Array<Property$ImeMode>, + "-o-animation"?: Property$Animation<TTime> | Array<Property$Animation<TTime>>, + "-o-animation-delay"?: Property$AnimationDelay<TTime> | Array<Property$AnimationDelay<TTime>>, + "-o-animation-direction"?: Property$AnimationDirection | Array<Property$AnimationDirection>, + "-o-animation-duration"?: Property$AnimationDuration<TTime> | Array<Property$AnimationDuration<TTime>>, + "-o-animation-fill-mode"?: Property$AnimationFillMode | Array<Property$AnimationFillMode>, + "-o-animation-iteration-count"?: Property$AnimationIterationCount | Array<Property$AnimationIterationCount>, + "-o-animation-name"?: Property$AnimationName | Array<Property$AnimationName>, + "-o-animation-play-state"?: Property$AnimationPlayState | Array<Property$AnimationPlayState>, + "-o-animation-timing-function"?: Property$AnimationTimingFunction | Array<Property$AnimationTimingFunction>, + "-o-background-size"?: Property$BackgroundSize<TLength> | Array<Property$BackgroundSize<TLength>>, + "-o-border-image"?: Property$BorderImage | Array<Property$BorderImage>, + "-o-object-fit"?: Property$ObjectFit | Array<Property$ObjectFit>, + "-o-object-position"?: Property$ObjectPosition<TLength> | Array<Property$ObjectPosition<TLength>>, + "-o-tab-size"?: Property$TabSize<TLength> | Array<Property$TabSize<TLength>>, + "-o-text-overflow"?: Property$TextOverflow | Array<Property$TextOverflow>, + "-o-transform"?: Property$Transform | Array<Property$Transform>, + "-o-transform-origin"?: Property$TransformOrigin<TLength> | Array<Property$TransformOrigin<TLength>>, + "-o-transition"?: Property$Transition<TTime> | Array<Property$Transition<TTime>>, + "-o-transition-delay"?: Property$TransitionDelay<TTime> | Array<Property$TransitionDelay<TTime>>, + "-o-transition-duration"?: Property$TransitionDuration<TTime> | Array<Property$TransitionDuration<TTime>>, + "-o-transition-property"?: Property$TransitionProperty | Array<Property$TransitionProperty>, + "-o-transition-timing-function"?: Property$TransitionTimingFunction | Array<Property$TransitionTimingFunction>, + "-webkit-box-align"?: Property$BoxAlign | Array<Property$BoxAlign>, + "-webkit-box-direction"?: Property$BoxDirection | Array<Property$BoxDirection>, + "-webkit-box-flex"?: Property$BoxFlex | Array<Property$BoxFlex>, + "-webkit-box-flex-group"?: Property$BoxFlexGroup | Array<Property$BoxFlexGroup>, + "-webkit-box-lines"?: Property$BoxLines | Array<Property$BoxLines>, + "-webkit-box-ordinal-group"?: Property$BoxOrdinalGroup | Array<Property$BoxOrdinalGroup>, + "-webkit-box-orient"?: Property$BoxOrient | Array<Property$BoxOrient>, + "-webkit-box-pack"?: Property$BoxPack | Array<Property$BoxPack>, +|}; + +export type SvgPropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + "alignment-baseline"?: Property$AlignmentBaseline | Array<Property$AlignmentBaseline>, + "baseline-shift"?: Property$BaselineShift<TLength> | Array<Property$BaselineShift<TLength>>, + clip?: Property$Clip | Array<Property$Clip>, + "clip-path"?: Property$ClipPath | Array<Property$ClipPath>, + "clip-rule"?: Property$ClipRule | Array<Property$ClipRule>, + color?: Property$Color | Array<Property$Color>, + "color-interpolation"?: Property$ColorInterpolation | Array<Property$ColorInterpolation>, + "color-rendering"?: Property$ColorRendering | Array<Property$ColorRendering>, + cursor?: Property$Cursor | Array<Property$Cursor>, + direction?: Property$Direction | Array<Property$Direction>, + display?: Property$Display | Array<Property$Display>, + "dominant-baseline"?: Property$DominantBaseline | Array<Property$DominantBaseline>, + fill?: Property$Fill | Array<Property$Fill>, + "fill-opacity"?: Property$FillOpacity | Array<Property$FillOpacity>, + "fill-rule"?: Property$FillRule | Array<Property$FillRule>, + filter?: Property$Filter | Array<Property$Filter>, + "flood-color"?: Property$FloodColor | Array<Property$FloodColor>, + "flood-opacity"?: Property$FloodOpacity | Array<Property$FloodOpacity>, + font?: Property$Font | Array<Property$Font>, + "font-family"?: Property$FontFamily | Array<Property$FontFamily>, + "font-size"?: Property$FontSize<TLength> | Array<Property$FontSize<TLength>>, + "font-size-adjust"?: Property$FontSizeAdjust | Array<Property$FontSizeAdjust>, + "font-stretch"?: Property$FontStretch | Array<Property$FontStretch>, + "font-style"?: Property$FontStyle | Array<Property$FontStyle>, + "font-variant"?: Property$FontVariant | Array<Property$FontVariant>, + "font-weight"?: Property$FontWeight | Array<Property$FontWeight>, + "glyph-orientation-vertical"?: Property$GlyphOrientationVertical | Array<Property$GlyphOrientationVertical>, + "image-rendering"?: Property$ImageRendering | Array<Property$ImageRendering>, + "letter-spacing"?: Property$LetterSpacing<TLength> | Array<Property$LetterSpacing<TLength>>, + "lighting-color"?: Property$LightingColor | Array<Property$LightingColor>, + "line-height"?: Property$LineHeight<TLength> | Array<Property$LineHeight<TLength>>, + marker?: Property$Marker | Array<Property$Marker>, + "marker-end"?: Property$MarkerEnd | Array<Property$MarkerEnd>, + "marker-mid"?: Property$MarkerMid | Array<Property$MarkerMid>, + "marker-start"?: Property$MarkerStart | Array<Property$MarkerStart>, + mask?: Property$Mask<TLength> | Array<Property$Mask<TLength>>, + opacity?: Property$Opacity | Array<Property$Opacity>, + overflow?: Property$Overflow | Array<Property$Overflow>, + "paint-order"?: Property$PaintOrder | Array<Property$PaintOrder>, + "pointer-events"?: Property$PointerEvents | Array<Property$PointerEvents>, + "shape-rendering"?: Property$ShapeRendering | Array<Property$ShapeRendering>, + "stop-color"?: Property$StopColor | Array<Property$StopColor>, + "stop-opacity"?: Property$StopOpacity | Array<Property$StopOpacity>, + stroke?: Property$Stroke | Array<Property$Stroke>, + "stroke-dasharray"?: Property$StrokeDasharray<TLength> | Array<Property$StrokeDasharray<TLength>>, + "stroke-dashoffset"?: Property$StrokeDashoffset<TLength> | Array<Property$StrokeDashoffset<TLength>>, + "stroke-linecap"?: Property$StrokeLinecap | Array<Property$StrokeLinecap>, + "stroke-linejoin"?: Property$StrokeLinejoin | Array<Property$StrokeLinejoin>, + "stroke-miterlimit"?: Property$StrokeMiterlimit | Array<Property$StrokeMiterlimit>, + "stroke-opacity"?: Property$StrokeOpacity | Array<Property$StrokeOpacity>, + "stroke-width"?: Property$StrokeWidth<TLength> | Array<Property$StrokeWidth<TLength>>, + "text-anchor"?: Property$TextAnchor | Array<Property$TextAnchor>, + "text-decoration"?: Property$TextDecoration<TLength> | Array<Property$TextDecoration<TLength>>, + "text-rendering"?: Property$TextRendering | Array<Property$TextRendering>, + "unicode-bidi"?: Property$UnicodeBidi | Array<Property$UnicodeBidi>, + "vector-effect"?: Property$VectorEffect | Array<Property$VectorEffect>, + visibility?: Property$Visibility | Array<Property$Visibility>, + "white-space"?: Property$WhiteSpace | Array<Property$WhiteSpace>, + "word-spacing"?: Property$WordSpacing<TLength> | Array<Property$WordSpacing<TLength>>, + "writing-mode"?: Property$WritingMode | Array<Property$WritingMode>, +|}; + +export type PropertiesHyphenFallback<TLength = string | 0, TTime = string> = {| + ...StandardPropertiesHyphenFallback<TLength, TTime>, + ...VendorPropertiesHyphenFallback<TLength, TTime>, + ...ObsoletePropertiesHyphenFallback<TLength, TTime>, + ...SvgPropertiesHyphenFallback<TLength, TTime>, +|}; + +export type AtRules = + | "@charset" + | "@container" + | "@counter-style" + | "@document" + | "@font-face" + | "@font-feature-values" + | "@font-palette-values" + | "@import" + | "@keyframes" + | "@layer" + | "@media" + | "@namespace" + | "@page" + | "@position-try" + | "@property" + | "@scope" + | "@starting-style" + | "@supports" + | "@view-transition"; + +export type AdvancedPseudos = + | ":-moz-any()" + | ":-moz-dir" + | ":-webkit-any()" + | "::cue" + | "::cue-region" + | "::highlight" + | "::part" + | "::picker" + | "::slotted" + | "::view-transition-group" + | "::view-transition-image-pair" + | "::view-transition-new" + | "::view-transition-old" + | ":active-view-transition-type" + | ":dir" + | ":has" + | ":host" + | ":host-context" + | ":is" + | ":lang" + | ":matches()" + | ":not" + | ":nth-child" + | ":nth-last-child" + | ":nth-last-of-type" + | ":nth-of-type" + | ":state" + | ":where"; + +export type SimplePseudos = + | ":-khtml-any-link" + | ":-moz-any-link" + | ":-moz-focusring" + | ":-moz-full-screen" + | ":-moz-placeholder" + | ":-moz-read-only" + | ":-moz-read-write" + | ":-moz-ui-invalid" + | ":-moz-ui-valid" + | ":-ms-fullscreen" + | ":-ms-input-placeholder" + | ":-webkit-any-link" + | ":-webkit-autofill" + | ":-webkit-full-screen" + | "::-moz-placeholder" + | "::-moz-progress-bar" + | "::-moz-range-progress" + | "::-moz-range-thumb" + | "::-moz-range-track" + | "::-moz-selection" + | "::-ms-backdrop" + | "::-ms-browse" + | "::-ms-check" + | "::-ms-clear" + | "::-ms-expand" + | "::-ms-fill" + | "::-ms-fill-lower" + | "::-ms-fill-upper" + | "::-ms-input-placeholder" + | "::-ms-reveal" + | "::-ms-thumb" + | "::-ms-ticks-after" + | "::-ms-ticks-before" + | "::-ms-tooltip" + | "::-ms-track" + | "::-ms-value" + | "::-webkit-backdrop" + | "::-webkit-file-upload-button" + | "::-webkit-input-placeholder" + | "::-webkit-progress-bar" + | "::-webkit-progress-inner-value" + | "::-webkit-progress-value" + | "::-webkit-slider-runnable-track" + | "::-webkit-slider-thumb" + | "::after" + | "::backdrop" + | "::before" + | "::checkmark" + | "::cue" + | "::cue-region" + | "::details-content" + | "::file-selector-button" + | "::first-letter" + | "::first-line" + | "::grammar-error" + | "::marker" + | "::picker-icon" + | "::placeholder" + | "::scroll-marker" + | "::scroll-marker-group" + | "::selection" + | "::spelling-error" + | "::target-text" + | "::view-transition" + | ":active" + | ":active-view-transition" + | ":after" + | ":any-link" + | ":autofill" + | ":before" + | ":blank" + | ":buffering" + | ":checked" + | ":current" + | ":default" + | ":defined" + | ":disabled" + | ":empty" + | ":enabled" + | ":first" + | ":first-child" + | ":first-letter" + | ":first-line" + | ":first-of-type" + | ":focus" + | ":focus-visible" + | ":focus-within" + | ":fullscreen" + | ":future" + | ":has-slotted" + | ":host" + | ":hover" + | ":in-range" + | ":indeterminate" + | ":invalid" + | ":last-child" + | ":last-of-type" + | ":left" + | ":link" + | ":local-link" + | ":modal" + | ":muted" + | ":only-child" + | ":only-of-type" + | ":open" + | ":optional" + | ":out-of-range" + | ":past" + | ":paused" + | ":picture-in-picture" + | ":placeholder-shown" + | ":playing" + | ":popover-open" + | ":read-only" + | ":read-write" + | ":required" + | ":right" + | ":root" + | ":scope" + | ":seeking" + | ":stalled" + | ":target" + | ":target-current" + | ":target-within" + | ":user-invalid" + | ":user-valid" + | ":valid" + | ":visited" + | ":volume-locked" + | ":xr-overlay"; + +export type Pseudos = AdvancedPseudos | SimplePseudos; + +export type HtmlAttributes = + | "[abbr]" + | "[accept-charset]" + | "[accept]" + | "[accesskey]" + | "[action]" + | "[align]" + | "[alink]" + | "[allow]" + | "[allowfullscreen]" + | "[allowpaymentrequest]" + | "[alpha]" + | "[alt]" + | "[anchor]" + | "[archive]" + | "[as]" + | "[async]" + | "[attributionsourceid]" + | "[attributionsrc]" + | "[autobuffer]" + | "[autocapitalize]" + | "[autocomplete]" + | "[autocorrect]" + | "[autofocus]" + | "[autoplay]" + | "[axis]" + | "[background]" + | "[behavior]" + | "[bgcolor]" + | "[blocking]" + | "[border]" + | "[bottommargin]" + | "[browsingtopics]" + | "[capture]" + | "[cellpadding]" + | "[cellspacing]" + | "[char]" + | "[charoff]" + | "[charset]" + | "[checked]" + | "[cite]" + | "[class]" + | "[classid]" + | "[clear]" + | "[closedby]" + | "[codebase]" + | "[codetype]" + | "[color]" + | "[colorspace]" + | "[cols]" + | "[colspan]" + | "[command]" + | "[commandfor]" + | "[compact]" + | "[content]" + | "[contenteditable]" + | "[controls]" + | "[controlslist]" + | "[coords]" + | "[credentialless]" + | "[cross-origin-top-navigation-by-user-activation]" + | "[crossorigin]" + | "[csp]" + | "[data]" + | "[datetime]" + | "[declare]" + | "[decoding]" + | "[default]" + | "[defer]" + | "[dir]" + | "[direction]" + | "[dirname]" + | "[disabled]" + | "[disablepictureinpicture]" + | "[disableremoteplayback]" + | "[download]" + | "[draggable]" + | "[enctype]" + | "[enterkeyhint]" + | "[exportparts]" + | "[face]" + | "[fetchpriority]" + | "[for]" + | "[form]" + | "[formaction]" + | "[formenctype]" + | "[formmethod]" + | "[formnovalidate]" + | "[formtarget]" + | "[frame]" + | "[frameborder]" + | "[headers]" + | "[height]" + | "[hidden]" + | "[high]" + | "[href]" + | "[hreflang]" + | "[hreftranslate]" + | "[hspace]" + | "[http-equiv]" + | "[id]" + | "[imagesizes]" + | "[imagesrcset]" + | "[inert]" + | "[inputmode]" + | "[integrity]" + | "[is]" + | "[ismap]" + | "[kind]" + | "[label]" + | "[lang]" + | "[leftmargin]" + | "[link]" + | "[list]" + | "[loading]" + | "[longdesc]" + | "[loop]" + | "[low]" + | "[marginheight]" + | "[marginwidth]" + | "[max]" + | "[maxlength]" + | "[media]" + | "[method]" + | "[min]" + | "[minlength]" + | "[moz-opaque]" + | "[mozallowfullscreen]" + | "[msallowfullscreen]" + | "[multiple]" + | "[muted]" + | "[name]" + | "[nohref]" + | "[nomodule]" + | "[nonce]" + | "[noresize]" + | "[noshade]" + | "[novalidate]" + | "[open]" + | "[optimum]" + | "[part]" + | "[pattern]" + | "[ping]" + | "[placeholder]" + | "[playsinline]" + | "[popover]" + | "[popovertarget]" + | "[popovertargetaction]" + | "[poster]" + | "[preload]" + | "[privateToken]" + | "[readonly]" + | "[referrerpolicy]" + | "[rel]" + | "[required]" + | "[rev]" + | "[reversed]" + | "[rightmargin]" + | "[rows]" + | "[rowspan]" + | "[rules]" + | "[sandbox]" + | "[scheme]" + | "[scope]" + | "[scrollamount]" + | "[scrolldelay]" + | "[scrolling]" + | "[selected]" + | "[shadowroot]" + | "[shadowrootclonable]" + | "[shadowrootdelegatesfocus]" + | "[shadowrootmode]" + | "[shadowrootserializable]" + | "[shape]" + | "[size]" + | "[sizes]" + | "[slot]" + | "[span]" + | "[spellcheck]" + | "[src]" + | "[srcdoc]" + | "[srclang]" + | "[srcset]" + | "[standby]" + | "[start]" + | "[step]" + | "[style]" + | "[summary]" + | "[tabindex]" + | "[target]" + | "[text]" + | "[title]" + | "[topmargin]" + | "[translate]" + | "[truespeed]" + | "[type]" + | "[usemap]" + | "[valign]" + | "[value]" + | "[valuetype]" + | "[version]" + | "[virtualkeyboardpolicy]" + | "[vlink]" + | "[vspace]" + | "[webkit-playsinline]" + | "[webkitallowfullscreen]" + | "[webkitdirectory]" + | "[width]" + | "[wrap]" + | "[writingsuggestions]" + | "[xmlns]"; + +export type SvgAttributes = + | "[-khtml-opacity]" + | "[-moz-opacity]" + | "[-moz-transform]" + | "[-ms-text-overflow]" + | "[-ms-transform]" + | "[-ms-writing-mode]" + | "[-o-text-overflow]" + | "[-o-transform]" + | "[-webkit-mask]" + | "[-webkit-transform]" + | "[-webkit-writing-mode]" + | "[alignment-baseline]" + | "[async]" + | "[attributeName]" + | "[attributeType]" + | "[autofocus]" + | "[azimuth]" + | "[baseFrequency]" + | "[baseProfile]" + | "[baseline-shift]" + | "[bias]" + | "[by]" + | "[calcMode]" + | "[class]" + | "[clip-path]" + | "[clip-rule]" + | "[clipPathUnits]" + | "[clip]" + | "[color-interpolation-filters]" + | "[color-interpolation]" + | "[color]" + | "[crossorigin]" + | "[cursor]" + | "[cx]" + | "[cy]" + | "[d]" + | "[decoding]" + | "[defer]" + | "[diffuseConstant]" + | "[direction]" + | "[display]" + | "[divisor]" + | "[dominant-baseline]" + | "[download]" + | "[dur]" + | "[dx]" + | "[dy]" + | "[edgeMode]" + | "[elevation]" + | "[fetchpriority]" + | "[fill-opacity]" + | "[fill-rule]" + | "[fill]" + | "[filterUnits]" + | "[filter]" + | "[flood-color]" + | "[flood-opacity]" + | "[font-family]" + | "[font-size-adjust]" + | "[font-size]" + | "[font-stretch]" + | "[font-style]" + | "[font-variant]" + | "[font-weight]" + | "[font-width]" + | "[fr]" + | "[from]" + | "[fx]" + | "[fy]" + | "[glyph-orientation-horizontal]" + | "[glyph-orientation-vertical]" + | "[gradientTransform]" + | "[gradientUnits]" + | "[height]" + | "[href]" + | "[hreflang]" + | "[id]" + | "[image-rendering]" + | "[in2]" + | "[in]" + | "[k1]" + | "[k2]" + | "[k3]" + | "[k4]" + | "[kernelMatrix]" + | "[kernelUnitLength]" + | "[keyPoints]" + | "[lang]" + | "[lengthAdjust]" + | "[letter-spacing]" + | "[lighting-color]" + | "[limitingConeAngle]" + | "[marker-end]" + | "[marker-mid]" + | "[marker-start]" + | "[markerHeight]" + | "[markerUnits]" + | "[markerWidth]" + | "[maskContentUnits]" + | "[maskUnits]" + | "[mask]" + | "[media]" + | "[mode]" + | "[numOctaves]" + | "[offset]" + | "[opacity]" + | "[operator]" + | "[order]" + | "[orient]" + | "[origin]" + | "[overflow]" + | "[paint-order]" + | "[path]" + | "[patternContentUnits]" + | "[patternTransform]" + | "[patternUnits]" + | "[ping]" + | "[pointer-events]" + | "[pointsAtX]" + | "[pointsAtY]" + | "[pointsAtZ]" + | "[points]" + | "[preserveAlpha]" + | "[preserveAspectRatio]" + | "[primitiveUnits]" + | "[r]" + | "[radius]" + | "[refX]" + | "[refY]" + | "[referrerpolicy]" + | "[rel]" + | "[repeatCount]" + | "[requiredExtensions]" + | "[rotate]" + | "[rx]" + | "[ry]" + | "[scale]" + | "[seed]" + | "[shape-rendering]" + | "[side]" + | "[spacing]" + | "[specularConstant]" + | "[specularExponent]" + | "[spreadMethod]" + | "[startOffset]" + | "[stdDeviation]" + | "[stitchTiles]" + | "[stop-color]" + | "[stop-opacity]" + | "[stroke-dasharray]" + | "[stroke-dashoffset]" + | "[stroke-linecap]" + | "[stroke-linejoin]" + | "[stroke-miterlimit]" + | "[stroke-opacity]" + | "[stroke-width]" + | "[stroke]" + | "[style]" + | "[surfaceScale]" + | "[systemLanguage]" + | "[tabindex]" + | "[targetX]" + | "[targetY]" + | "[target]" + | "[text-anchor]" + | "[text-decoration]" + | "[text-overflow]" + | "[text-rendering]" + | "[textLength]" + | "[title]" + | "[to]" + | "[transform-origin]" + | "[transform]" + | "[type]" + | "[unicode-bidi]" + | "[values]" + | "[vector-effect]" + | "[version]" + | "[viewBox]" + | "[visibility]" + | "[white-space]" + | "[width]" + | "[word-spacing]" + | "[writing-mode]" + | "[x1]" + | "[x2]" + | "[xChannelSelector]" + | "[x]" + | "[y1]" + | "[y2]" + | "[yChannelSelector]" + | "[y]" + | "[z]" + | "[zoomAndPan]"; + +export type Globals = "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset"; + +export type Property$AccentColor = Globals | DataType$Color | "auto"; + +export type Property$AlignContent = Globals | DataType$ContentDistribution | DataType$ContentPosition | "baseline" | "normal" | string; + +export type Property$AlignItems = Globals | DataType$SelfPosition | "anchor-center" | "baseline" | "normal" | "stretch" | string; + +export type Property$AlignSelf = Globals | DataType$SelfPosition | "anchor-center" | "auto" | "baseline" | "normal" | "stretch" | string; + +export type Property$AlignTracks = Globals | DataType$ContentDistribution | DataType$ContentPosition | "baseline" | "normal" | string; + +export type Property$AlignmentBaseline = Globals | "alphabetic" | "baseline" | "central" | "ideographic" | "mathematical" | "middle" | "text-after-edge" | "text-before-edge"; + +export type Property$All = Globals; + +export type Property$AnchorName = Globals | "none" | string; + +export type Property$AnchorScope = Globals | "all" | "none" | string; + +export type Property$Animation<TTime = string> = Globals | DataType$SingleAnimation<TTime> | string; + +export type Property$AnimationComposition = Globals | DataType$SingleAnimationComposition | string; + +export type Property$AnimationDelay<TTime = string> = Globals | TTime | string; + +export type Property$AnimationDirection = Globals | DataType$SingleAnimationDirection | string; + +export type Property$AnimationDuration<TTime = string> = Globals | TTime | "auto" | string; + +export type Property$AnimationFillMode = Globals | DataType$SingleAnimationFillMode | string; + +export type Property$AnimationIterationCount = Globals | "infinite" | string | number; + +export type Property$AnimationName = Globals | "none" | string; + +export type Property$AnimationPlayState = Globals | "paused" | "running" | string; + +export type Property$AnimationRange<TLength = string | 0> = Globals | DataType$TimelineRangeName | TLength | "normal" | string; + +export type Property$AnimationRangeEnd<TLength = string | 0> = Globals | DataType$TimelineRangeName | TLength | "normal" | string; + +export type Property$AnimationRangeStart<TLength = string | 0> = Globals | DataType$TimelineRangeName | TLength | "normal" | string; + +export type Property$AnimationTimeline = Globals | DataType$SingleAnimationTimeline | string; + +export type Property$AnimationTimingFunction = Globals | DataType$EasingFunction | string; + +export type Property$Appearance = Globals | DataType$CompatAuto | "auto" | "menulist-button" | "none" | "textfield"; + +export type Property$AspectRatio = Globals | "auto" | string | number; + +export type Property$BackdropFilter = Globals | "none" | string; + +export type Property$BackfaceVisibility = Globals | "hidden" | "visible"; + +export type Property$Background<TLength = string | 0> = Globals | DataType$BgLayer<TLength> | DataType$FinalBgLayer<TLength> | string; + +export type Property$BackgroundAttachment = Globals | DataType$Attachment | string; + +export type Property$BackgroundBlendMode = Globals | DataType$BlendMode | string; + +export type Property$BackgroundClip = Globals | DataType$BgClip | string; + +export type Property$BackgroundColor = Globals | DataType$Color; + +export type Property$BackgroundImage = Globals | "none" | string; + +export type Property$BackgroundOrigin = Globals | DataType$VisualBox | string; + +export type Property$BackgroundPosition<TLength = string | 0> = Globals | DataType$BgPosition<TLength> | string; + +export type Property$BackgroundPositionX<TLength = string | 0> = Globals | TLength | "center" | "left" | "right" | "x-end" | "x-start" | string; + +export type Property$BackgroundPositionY<TLength = string | 0> = Globals | TLength | "bottom" | "center" | "top" | "y-end" | "y-start" | string; + +export type Property$BackgroundRepeat = Globals | DataType$RepeatStyle | string; + +export type Property$BackgroundSize<TLength = string | 0> = Globals | DataType$BgSize<TLength> | string; + +export type Property$BaselineShift<TLength = string | 0> = Globals | TLength | "baseline" | "sub" | "super" | string; + +export type Property$BlockSize<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | string; + +export type Property$Border<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderBlock<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderBlockColor = Globals | DataType$Color | string; + +export type Property$BorderBlockEnd<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderBlockEndColor = Globals | DataType$Color; + +export type Property$BorderBlockEndStyle = Globals | DataType$LineStyle; + +export type Property$BorderBlockEndWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderBlockStart<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderBlockStartColor = Globals | DataType$Color; + +export type Property$BorderBlockStartStyle = Globals | DataType$LineStyle; + +export type Property$BorderBlockStartWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderBlockStyle = Globals | DataType$LineStyle | string; + +export type Property$BorderBlockWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | string; + +export type Property$BorderBottom<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderBottomColor = Globals | DataType$Color; + +export type Property$BorderBottomLeftRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderBottomRightRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderBottomStyle = Globals | DataType$LineStyle; + +export type Property$BorderBottomWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderCollapse = Globals | "collapse" | "separate"; + +export type Property$BorderColor = Globals | DataType$Color | string; + +export type Property$BorderEndEndRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderEndStartRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderImage = Globals | "none" | "repeat" | "round" | "space" | "stretch" | string | number; + +export type Property$BorderImageOutset<TLength = string | 0> = Globals | TLength | string | number; + +export type Property$BorderImageRepeat = Globals | "repeat" | "round" | "space" | "stretch" | string; + +export type Property$BorderImageSlice = Globals | string | number; + +export type Property$BorderImageSource = Globals | "none" | string; + +export type Property$BorderImageWidth<TLength = string | 0> = Globals | TLength | "auto" | string | number; + +export type Property$BorderInline<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderInlineColor = Globals | DataType$Color | string; + +export type Property$BorderInlineEnd<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderInlineEndColor = Globals | DataType$Color; + +export type Property$BorderInlineEndStyle = Globals | DataType$LineStyle; + +export type Property$BorderInlineEndWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderInlineStart<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderInlineStartColor = Globals | DataType$Color; + +export type Property$BorderInlineStartStyle = Globals | DataType$LineStyle; + +export type Property$BorderInlineStartWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderInlineStyle = Globals | DataType$LineStyle | string; + +export type Property$BorderInlineWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | string; + +export type Property$BorderLeft<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderLeftColor = Globals | DataType$Color; + +export type Property$BorderLeftStyle = Globals | DataType$LineStyle; + +export type Property$BorderLeftWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderRight<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderRightColor = Globals | DataType$Color; + +export type Property$BorderRightStyle = Globals | DataType$LineStyle; + +export type Property$BorderRightWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderSpacing<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderStartEndRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderStartStartRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderStyle = Globals | DataType$LineStyle | string; + +export type Property$BorderTop<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$BorderTopColor = Globals | DataType$Color; + +export type Property$BorderTopLeftRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderTopRightRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$BorderTopStyle = Globals | DataType$LineStyle; + +export type Property$BorderTopWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$BorderWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | string; + +export type Property$Bottom<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$BoxAlign = Globals | "baseline" | "center" | "end" | "start" | "stretch"; + +export type Property$BoxDecorationBreak = Globals | "clone" | "slice"; + +export type Property$BoxDirection = Globals | "inherit" | "normal" | "reverse"; + +export type Property$BoxFlex = Globals | number; + +export type Property$BoxFlexGroup = Globals | number; + +export type Property$BoxLines = Globals | "multiple" | "single"; + +export type Property$BoxOrdinalGroup = Globals | number; + +export type Property$BoxOrient = Globals | "block-axis" | "horizontal" | "inherit" | "inline-axis" | "vertical"; + +export type Property$BoxPack = Globals | "center" | "end" | "justify" | "start"; + +export type Property$BoxShadow = Globals | "none" | string; + +export type Property$BoxSizing = Globals | "border-box" | "content-box"; + +export type Property$BreakAfter = + | Globals + | "all" + | "always" + | "auto" + | "avoid" + | "avoid-column" + | "avoid-page" + | "avoid-region" + | "column" + | "left" + | "page" + | "recto" + | "region" + | "right" + | "verso"; + +export type Property$BreakBefore = + | Globals + | "all" + | "always" + | "auto" + | "avoid" + | "avoid-column" + | "avoid-page" + | "avoid-region" + | "column" + | "left" + | "page" + | "recto" + | "region" + | "right" + | "verso"; + +export type Property$BreakInside = Globals | "auto" | "avoid" | "avoid-column" | "avoid-page" | "avoid-region"; + +export type Property$CaptionSide = Globals | "bottom" | "top"; + +export type Property$Caret = Globals | DataType$Color | "auto" | "bar" | "block" | "underscore" | string; + +export type Property$CaretColor = Globals | DataType$Color | "auto"; + +export type Property$CaretShape = Globals | "auto" | "bar" | "block" | "underscore"; + +export type Property$Clear = Globals | "both" | "inline-end" | "inline-start" | "left" | "none" | "right"; + +export type Property$Clip = Globals | "auto" | string; + +export type Property$ClipPath = Globals | DataType$GeometryBox | "none" | string; + +export type Property$ClipRule = Globals | "evenodd" | "nonzero"; + +export type Property$Color = Globals | DataType$Color; + +export type Property$PrintColorAdjust = Globals | "economy" | "exact"; + +export type Property$ColorInterpolationFilters = Globals | "auto" | "linearRGB" | "sRGB"; + +export type Property$ColorScheme = Globals | "dark" | "light" | "normal" | string; + +export type Property$ColumnCount = Globals | "auto" | number; + +export type Property$ColumnFill = Globals | "auto" | "balance"; + +export type Property$ColumnGap<TLength = string | 0> = Globals | TLength | "normal" | string; + +export type Property$ColumnRule<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$ColumnRuleColor = Globals | DataType$Color; + +export type Property$ColumnRuleStyle = Globals | DataType$LineStyle | string; + +export type Property$ColumnRuleWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | string; + +export type Property$ColumnSpan = Globals | "all" | "none"; + +export type Property$ColumnWidth<TLength = string | 0> = Globals | TLength | "auto"; + +export type Property$Columns<TLength = string | 0> = Globals | TLength | "auto" | string | number; + +export type Property$Contain = Globals | "content" | "inline-size" | "layout" | "none" | "paint" | "size" | "strict" | "style" | string; + +export type Property$ContainIntrinsicBlockSize<TLength = string | 0> = Globals | TLength | "none" | string; + +export type Property$ContainIntrinsicHeight<TLength = string | 0> = Globals | TLength | "none" | string; + +export type Property$ContainIntrinsicInlineSize<TLength = string | 0> = Globals | TLength | "none" | string; + +export type Property$ContainIntrinsicSize<TLength = string | 0> = Globals | TLength | "none" | string; + +export type Property$ContainIntrinsicWidth<TLength = string | 0> = Globals | TLength | "none" | string; + +export type Property$Container = Globals | "none" | string; + +export type Property$ContainerName = Globals | "none" | string; + +export type Property$ContainerType = Globals | "inline-size" | "normal" | "scroll-state" | "size" | string; + +export type Property$Content = Globals | DataType$Quote | "none" | "normal" | string; + +export type Property$ContentVisibility = Globals | "auto" | "hidden" | "visible"; + +export type Property$CounterIncrement = Globals | "none" | string; + +export type Property$CounterReset = Globals | "none" | string; + +export type Property$CounterSet = Globals | "none" | string; + +export type Property$Cursor = Globals | DataType$CursorPredefined | string; + +export type Property$Cx<TLength = string | 0> = Globals | TLength | string; + +export type Property$Cy<TLength = string | 0> = Globals | TLength | string; + +export type Property$D = Globals | "none" | string; + +export type Property$Direction = Globals | "ltr" | "rtl"; + +export type Property$Display = + | Globals + | DataType$DisplayOutside + | DataType$DisplayInside + | DataType$DisplayInternal + | DataType$DisplayLegacy + | "contents" + | "list-item" + | "none" + | string; + +export type Property$DominantBaseline = Globals | "alphabetic" | "auto" | "central" | "hanging" | "ideographic" | "mathematical" | "middle" | "text-bottom" | "text-top"; + +export type Property$EmptyCells = Globals | "hide" | "show"; + +export type Property$FieldSizing = Globals | "content" | "fixed"; + +export type Property$Fill = Globals | DataType$Paint; + +export type Property$FillOpacity = Globals | string | number; + +export type Property$FillRule = Globals | "evenodd" | "nonzero"; + +export type Property$Filter = Globals | "none" | string; + +export type Property$Flex<TLength = string | 0> = Globals | TLength | "auto" | "content" | "fit-content" | "max-content" | "min-content" | "none" | string | number; + +export type Property$FlexBasis<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-auto" + | "auto" + | "content" + | "fit-content" + | "max-content" + | "min-content" + | string; + +export type Property$FlexDirection = Globals | "column" | "column-reverse" | "row" | "row-reverse"; + +export type Property$FlexFlow = Globals | "column" | "column-reverse" | "nowrap" | "row" | "row-reverse" | "wrap" | "wrap-reverse" | string; + +export type Property$FlexGrow = Globals | number; + +export type Property$FlexShrink = Globals | number; + +export type Property$FlexWrap = Globals | "nowrap" | "wrap" | "wrap-reverse"; + +export type Property$Float = Globals | "inline-end" | "inline-start" | "left" | "none" | "right"; + +export type Property$FloodColor = Globals | DataType$Color; + +export type Property$FloodOpacity = Globals | string | number; + +export type Property$Font = Globals | DataType$SystemFamilyName | string; + +export type Property$FontFamily = Globals | DataType$GenericFamily | string; + +export type Property$FontFeatureSettings = Globals | "normal" | string; + +export type Property$FontKerning = Globals | "auto" | "none" | "normal"; + +export type Property$FontLanguageOverride = Globals | "normal" | string; + +export type Property$FontOpticalSizing = Globals | "auto" | "none"; + +export type Property$FontPalette = Globals | "dark" | "light" | "normal" | string; + +export type Property$FontSize<TLength = string | 0> = Globals | DataType$AbsoluteSize | TLength | "larger" | "math" | "smaller" | string; + +export type Property$FontSizeAdjust = Globals | "from-font" | "none" | string | number; + +export type Property$FontSmooth<TLength = string | 0> = Globals | DataType$AbsoluteSize | TLength | "always" | "auto" | "never"; + +export type Property$FontStretch = Globals | DataType$FontStretchAbsolute; + +export type Property$FontStyle = Globals | "italic" | "normal" | "oblique" | string; + +export type Property$FontSynthesis = Globals | "none" | "position" | "small-caps" | "style" | "weight" | string; + +export type Property$FontSynthesisPosition = Globals | "auto" | "none"; + +export type Property$FontSynthesisSmallCaps = Globals | "auto" | "none"; + +export type Property$FontSynthesisStyle = Globals | "auto" | "none"; + +export type Property$FontSynthesisWeight = Globals | "auto" | "none"; + +export type Property$FontVariant = + | Globals + | DataType$EastAsianVariantValues + | "all-petite-caps" + | "all-small-caps" + | "common-ligatures" + | "contextual" + | "diagonal-fractions" + | "discretionary-ligatures" + | "full-width" + | "historical-forms" + | "historical-ligatures" + | "lining-nums" + | "no-common-ligatures" + | "no-contextual" + | "no-discretionary-ligatures" + | "no-historical-ligatures" + | "none" + | "normal" + | "oldstyle-nums" + | "ordinal" + | "petite-caps" + | "proportional-nums" + | "proportional-width" + | "ruby" + | "slashed-zero" + | "small-caps" + | "stacked-fractions" + | "tabular-nums" + | "titling-caps" + | "unicase" + | string; + +export type Property$FontVariantAlternates = Globals | "historical-forms" | "normal" | string; + +export type Property$FontVariantCaps = Globals | "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase"; + +export type Property$FontVariantEastAsian = Globals | DataType$EastAsianVariantValues | "full-width" | "normal" | "proportional-width" | "ruby" | string; + +export type Property$FontVariantEmoji = Globals | "emoji" | "normal" | "text" | "unicode"; + +export type Property$FontVariantLigatures = + | Globals + | "common-ligatures" + | "contextual" + | "discretionary-ligatures" + | "historical-ligatures" + | "no-common-ligatures" + | "no-contextual" + | "no-discretionary-ligatures" + | "no-historical-ligatures" + | "none" + | "normal" + | string; + +export type Property$FontVariantNumeric = + | Globals + | "diagonal-fractions" + | "lining-nums" + | "normal" + | "oldstyle-nums" + | "ordinal" + | "proportional-nums" + | "slashed-zero" + | "stacked-fractions" + | "tabular-nums" + | string; + +export type Property$FontVariantPosition = Globals | "normal" | "sub" | "super"; + +export type Property$FontVariationSettings = Globals | "normal" | string; + +export type Property$FontWeight = Globals | DataType$FontWeightAbsolute | "bolder" | "lighter"; + +export type Property$FontWidth = + | Globals + | "condensed" + | "expanded" + | "extra-condensed" + | "extra-expanded" + | "normal" + | "semi-condensed" + | "semi-expanded" + | "ultra-condensed" + | "ultra-expanded" + | string; + +export type Property$ForcedColorAdjust = Globals | "auto" | "none" | "preserve-parent-color"; + +export type Property$Gap<TLength = string | 0> = Globals | TLength | "normal" | string; + +export type Property$Grid = Globals | "none" | string; + +export type Property$GridArea = Globals | DataType$GridLine | string; + +export type Property$GridAutoColumns<TLength = string | 0> = Globals | DataType$TrackBreadth<TLength> | string; + +export type Property$GridAutoFlow = Globals | "column" | "dense" | "row" | string; + +export type Property$GridAutoRows<TLength = string | 0> = Globals | DataType$TrackBreadth<TLength> | string; + +export type Property$GridColumn = Globals | DataType$GridLine | string; + +export type Property$GridColumnEnd = Globals | DataType$GridLine; + +export type Property$GridColumnGap<TLength = string | 0> = Globals | TLength | string; + +export type Property$GridColumnStart = Globals | DataType$GridLine; + +export type Property$GridGap<TLength = string | 0> = Globals | TLength | string; + +export type Property$GridRow = Globals | DataType$GridLine | string; + +export type Property$GridRowEnd = Globals | DataType$GridLine; + +export type Property$GridRowGap<TLength = string | 0> = Globals | TLength | string; + +export type Property$GridRowStart = Globals | DataType$GridLine; + +export type Property$GridTemplate = Globals | "none" | string; + +export type Property$GridTemplateAreas = Globals | "none" | string; + +export type Property$GridTemplateColumns<TLength = string | 0> = Globals | DataType$TrackBreadth<TLength> | "none" | "subgrid" | string; + +export type Property$GridTemplateRows<TLength = string | 0> = Globals | DataType$TrackBreadth<TLength> | "none" | "subgrid" | string; + +export type Property$HangingPunctuation = Globals | "allow-end" | "first" | "force-end" | "last" | "none" | string; + +export type Property$Height<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | string; + +export type Property$HyphenateCharacter = Globals | "auto" | string; + +export type Property$HyphenateLimitChars = Globals | "auto" | string | number; + +export type Property$Hyphens = Globals | "auto" | "manual" | "none"; + +export type Property$ImageOrientation = Globals | "flip" | "from-image" | string; + +export type Property$ImageRendering = Globals | "-moz-crisp-edges" | "-webkit-optimize-contrast" | "auto" | "crisp-edges" | "pixelated" | "smooth"; + +export type Property$ImageResolution = Globals | "from-image" | string; + +export type Property$ImeMode = Globals | "active" | "auto" | "disabled" | "inactive" | "normal"; + +export type Property$InitialLetter = Globals | "normal" | string | number; + +export type Property$InitialLetterAlign = Globals | "alphabetic" | "auto" | "hanging" | "ideographic"; + +export type Property$InlineSize<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | string; + +export type Property$Inset<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$PositionArea = Globals | DataType$PositionArea | "none"; + +export type Property$InsetBlock<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$InsetBlockEnd<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$InsetBlockStart<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$InsetInline<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$InsetInlineEnd<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$InsetInlineStart<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$InterpolateSize = Globals | "allow-keywords" | "numeric-only"; + +export type Property$Isolation = Globals | "auto" | "isolate"; + +export type Property$JustifyContent = Globals | DataType$ContentDistribution | DataType$ContentPosition | "left" | "normal" | "right" | string; + +export type Property$JustifyItems = Globals | DataType$SelfPosition | "anchor-center" | "baseline" | "left" | "legacy" | "normal" | "right" | "stretch" | string; + +export type Property$JustifySelf = Globals | DataType$SelfPosition | "anchor-center" | "auto" | "baseline" | "left" | "normal" | "right" | "stretch" | string; + +export type Property$JustifyTracks = Globals | DataType$ContentDistribution | DataType$ContentPosition | "left" | "normal" | "right" | string; + +export type Property$Left<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$LetterSpacing<TLength = string | 0> = Globals | TLength | "normal"; + +export type Property$LightingColor = Globals | DataType$Color; + +export type Property$LineBreak = Globals | "anywhere" | "auto" | "loose" | "normal" | "strict"; + +export type Property$LineClamp = Globals | "none" | number; + +export type Property$LineHeight<TLength = string | 0> = Globals | TLength | "normal" | string | number; + +export type Property$LineHeightStep<TLength = string | 0> = Globals | TLength; + +export type Property$ListStyle = Globals | "inside" | "none" | "outside" | string; + +export type Property$ListStyleImage = Globals | "none" | string; + +export type Property$ListStylePosition = Globals | "inside" | "outside"; + +export type Property$ListStyleType = Globals | "none" | string; + +export type Property$Margin<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginBlock<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginBlockEnd<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginBlockStart<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginBottom<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginInline<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginInlineEnd<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginInlineStart<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginLeft<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginRight<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginTop<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$MarginTrim = Globals | "all" | "in-flow" | "none"; + +export type Property$Marker = Globals | "none" | string; + +export type Property$MarkerEnd = Globals | "none" | string; + +export type Property$MarkerMid = Globals | "none" | string; + +export type Property$MarkerStart = Globals | "none" | string; + +export type Property$Mask<TLength = string | 0> = Globals | DataType$MaskLayer<TLength> | string; + +export type Property$MaskBorder = Globals | "alpha" | "luminance" | "none" | "repeat" | "round" | "space" | "stretch" | string | number; + +export type Property$MaskBorderMode = Globals | "alpha" | "luminance"; + +export type Property$MaskBorderOutset<TLength = string | 0> = Globals | TLength | string | number; + +export type Property$MaskBorderRepeat = Globals | "repeat" | "round" | "space" | "stretch" | string; + +export type Property$MaskBorderSlice = Globals | string | number; + +export type Property$MaskBorderSource = Globals | "none" | string; + +export type Property$MaskBorderWidth<TLength = string | 0> = Globals | TLength | "auto" | string | number; + +export type Property$MaskClip = Globals | DataType$PaintBox | "no-clip" | "view-box" | string; + +export type Property$MaskComposite = Globals | DataType$CompositingOperator | string; + +export type Property$MaskImage = Globals | "none" | string; + +export type Property$MaskMode = Globals | DataType$MaskingMode | string; + +export type Property$MaskOrigin = Globals | DataType$PaintBox | "view-box" | string; + +export type Property$MaskPosition<TLength = string | 0> = Globals | DataType$Position<TLength> | string; + +export type Property$MaskRepeat = Globals | DataType$RepeatStyle | string; + +export type Property$MaskSize<TLength = string | 0> = Globals | DataType$BgSize<TLength> | string; + +export type Property$MaskType = Globals | "alpha" | "luminance"; + +export type Property$MasonryAutoFlow = Globals | "definite-first" | "next" | "ordered" | "pack" | string; + +export type Property$MathDepth = Globals | "auto-add" | string | number; + +export type Property$MathShift = Globals | "compact" | "normal"; + +export type Property$MathStyle = Globals | "compact" | "normal"; + +export type Property$MaxBlockSize<TLength = string | 0> = + | Globals + | TLength + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "fit-content" + | "max-content" + | "min-content" + | "none" + | string; + +export type Property$MaxHeight<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "none" + | string; + +export type Property$MaxInlineSize<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "fit-content" + | "max-content" + | "min-content" + | "none" + | string; + +export type Property$MaxLines = Globals | "none" | number; + +export type Property$MaxWidth<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "none" + | string; + +export type Property$MinBlockSize<TLength = string | 0> = + | Globals + | TLength + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | string; + +export type Property$MinHeight<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "auto" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | string; + +export type Property$MinInlineSize<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fill-available" + | "auto" + | "fit-content" + | "max-content" + | "min-content" + | string; + +export type Property$MinWidth<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "-webkit-min-content" + | "auto" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "min-intrinsic" + | string; + +export type Property$MixBlendMode = Globals | DataType$BlendMode | "plus-darker" | "plus-lighter"; + +export type Property$Offset<TLength = string | 0> = Globals | DataType$Position<TLength> | DataType$PaintBox | "auto" | "none" | "normal" | "view-box" | string; + +export type Property$OffsetDistance<TLength = string | 0> = Globals | TLength | string; + +export type Property$OffsetPath = Globals | DataType$PaintBox | "none" | "view-box" | string; + +export type Property$OffsetRotate = Globals | "auto" | "reverse" | string; + +export type Property$ObjectFit = Globals | "contain" | "cover" | "fill" | "none" | "scale-down"; + +export type Property$ObjectPosition<TLength = string | 0> = Globals | DataType$Position<TLength>; + +export type Property$ObjectViewBox = Globals | "none" | string; + +export type Property$OffsetAnchor<TLength = string | 0> = Globals | DataType$Position<TLength> | "auto"; + +export type Property$OffsetPosition<TLength = string | 0> = Globals | DataType$Position<TLength> | "auto" | "normal"; + +export type Property$Opacity = Globals | string | number; + +export type Property$Order = Globals | number; + +export type Property$Orphans = Globals | number; + +export type Property$Outline<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$OutlineLineStyle | DataType$Color | "auto" | string; + +export type Property$OutlineColor = Globals | DataType$Color | "auto"; + +export type Property$OutlineOffset<TLength = string | 0> = Globals | TLength; + +export type Property$OutlineStyle = Globals | DataType$OutlineLineStyle | "auto"; + +export type Property$OutlineWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength>; + +export type Property$Overflow = Globals | "-moz-hidden-unscrollable" | "auto" | "clip" | "hidden" | "overlay" | "scroll" | "visible" | string; + +export type Property$OverflowAnchor = Globals | "auto" | "none"; + +export type Property$OverflowBlock = Globals | "auto" | "clip" | "hidden" | "scroll" | "visible"; + +export type Property$OverflowClipBox = Globals | "content-box" | "padding-box"; + +export type Property$OverflowClipMargin<TLength = string | 0> = Globals | DataType$VisualBox | TLength | string; + +export type Property$OverflowInline = Globals | "auto" | "clip" | "hidden" | "scroll" | "visible"; + +export type Property$OverflowWrap = Globals | "anywhere" | "break-word" | "normal"; + +export type Property$OverflowX = Globals | "-moz-hidden-unscrollable" | "auto" | "clip" | "hidden" | "overlay" | "scroll" | "visible"; + +export type Property$OverflowY = Globals | "-moz-hidden-unscrollable" | "auto" | "clip" | "hidden" | "overlay" | "scroll" | "visible"; + +export type Property$Overlay = Globals | "auto" | "none"; + +export type Property$OverscrollBehavior = Globals | "auto" | "contain" | "none" | string; + +export type Property$OverscrollBehaviorBlock = Globals | "auto" | "contain" | "none"; + +export type Property$OverscrollBehaviorInline = Globals | "auto" | "contain" | "none"; + +export type Property$OverscrollBehaviorX = Globals | "auto" | "contain" | "none"; + +export type Property$OverscrollBehaviorY = Globals | "auto" | "contain" | "none"; + +export type Property$Padding<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingBlock<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingBlockEnd<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingBlockStart<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingBottom<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingInline<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingInlineEnd<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingInlineStart<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingLeft<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingRight<TLength = string | 0> = Globals | TLength | string; + +export type Property$PaddingTop<TLength = string | 0> = Globals | TLength | string; + +export type Property$Page = Globals | "auto" | string; + +export type Property$PageBreakAfter = Globals | "always" | "auto" | "avoid" | "left" | "recto" | "right" | "verso"; + +export type Property$PageBreakBefore = Globals | "always" | "auto" | "avoid" | "left" | "recto" | "right" | "verso"; + +export type Property$PageBreakInside = Globals | "auto" | "avoid"; + +export type Property$PaintOrder = Globals | "fill" | "markers" | "normal" | "stroke" | string; + +export type Property$Perspective<TLength = string | 0> = Globals | TLength | "none"; + +export type Property$PerspectiveOrigin<TLength = string | 0> = Globals | DataType$Position<TLength>; + +export type Property$PlaceContent = Globals | DataType$ContentDistribution | DataType$ContentPosition | "baseline" | "normal" | string; + +export type Property$PlaceItems = Globals | DataType$SelfPosition | "anchor-center" | "baseline" | "normal" | "stretch" | string; + +export type Property$PlaceSelf = Globals | DataType$SelfPosition | "anchor-center" | "auto" | "baseline" | "normal" | "stretch" | string; + +export type Property$PointerEvents = Globals | "all" | "auto" | "fill" | "inherit" | "none" | "painted" | "stroke" | "visible" | "visibleFill" | "visiblePainted" | "visibleStroke"; + +export type Property$Position = Globals | "-webkit-sticky" | "absolute" | "fixed" | "relative" | "static" | "sticky"; + +export type Property$PositionAnchor = Globals | "auto" | string; + +export type Property$PositionTry = Globals | DataType$TryTactic | DataType$PositionArea | "none" | string; + +export type Property$PositionTryFallbacks = Globals | DataType$TryTactic | DataType$PositionArea | "none" | string; + +export type Property$PositionTryOrder = Globals | DataType$TrySize | "normal"; + +export type Property$PositionVisibility = Globals | "always" | "anchors-valid" | "anchors-visible" | "no-overflow" | string; + +export type Property$Quotes = Globals | "auto" | "none" | string; + +export type Property$R<TLength = string | 0> = Globals | TLength | string; + +export type Property$Resize = Globals | "block" | "both" | "horizontal" | "inline" | "none" | "vertical"; + +export type Property$Right<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$Rotate = Globals | "none" | string; + +export type Property$RowGap<TLength = string | 0> = Globals | TLength | "normal" | string; + +export type Property$RubyAlign = Globals | "center" | "space-around" | "space-between" | "start"; + +export type Property$RubyMerge = Globals | "auto" | "collapse" | "separate"; + +export type Property$RubyOverhang = Globals | "auto" | "none"; + +export type Property$RubyPosition = Globals | "alternate" | "inter-character" | "over" | "under" | string; + +export type Property$Rx<TLength = string | 0> = Globals | TLength | string; + +export type Property$Ry<TLength = string | 0> = Globals | TLength | string; + +export type Property$Scale = Globals | "none" | string | number; + +export type Property$ScrollBehavior = Globals | "auto" | "smooth"; + +export type Property$ScrollInitialTarget = Globals | "nearest" | "none"; + +export type Property$ScrollMargin<TLength = string | 0> = Globals | TLength | string; + +export type Property$ScrollMarginBlock<TLength = string | 0> = Globals | TLength | string; + +export type Property$ScrollMarginBlockEnd<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginBlockStart<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginBottom<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginInline<TLength = string | 0> = Globals | TLength | string; + +export type Property$ScrollMarginInlineEnd<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginInlineStart<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginLeft<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginRight<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollMarginTop<TLength = string | 0> = Globals | TLength; + +export type Property$ScrollPadding<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingBlock<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingBlockEnd<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingBlockStart<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingBottom<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingInline<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingInlineEnd<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingInlineStart<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingLeft<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingRight<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollPaddingTop<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ScrollSnapAlign = Globals | "center" | "end" | "none" | "start" | string; + +export type Property$ScrollSnapCoordinate<TLength = string | 0> = Globals | DataType$Position<TLength> | "none" | string; + +export type Property$ScrollSnapDestination<TLength = string | 0> = Globals | DataType$Position<TLength>; + +export type Property$ScrollSnapPointsX = Globals | "none" | string; + +export type Property$ScrollSnapPointsY = Globals | "none" | string; + +export type Property$ScrollSnapStop = Globals | "always" | "normal"; + +export type Property$ScrollSnapType = Globals | "block" | "both" | "inline" | "none" | "x" | "y" | string; + +export type Property$ScrollSnapTypeX = Globals | "mandatory" | "none" | "proximity"; + +export type Property$ScrollSnapTypeY = Globals | "mandatory" | "none" | "proximity"; + +export type Property$ScrollTimeline = Globals | "none" | string; + +export type Property$ScrollTimelineAxis = Globals | "block" | "inline" | "x" | "y" | string; + +export type Property$ScrollTimelineName = Globals | "none" | string; + +export type Property$ScrollbarColor = Globals | "auto" | string; + +export type Property$ScrollbarGutter = Globals | "auto" | "stable" | string; + +export type Property$ScrollbarWidth = Globals | "auto" | "none" | "thin"; + +export type Property$ShapeImageThreshold = Globals | string | number; + +export type Property$ShapeMargin<TLength = string | 0> = Globals | TLength | string; + +export type Property$ShapeOutside = Globals | DataType$VisualBox | "margin-box" | "none" | string; + +export type Property$ShapeRendering = Globals | "auto" | "crispEdges" | "geometricPrecision" | "optimizeSpeed"; + +export type Property$SpeakAs = Globals | "digits" | "literal-punctuation" | "no-punctuation" | "normal" | "spell-out" | string; + +export type Property$StopColor = Globals | DataType$Color; + +export type Property$StopOpacity = Globals | string | number; + +export type Property$Stroke = Globals | DataType$Paint; + +export type Property$StrokeColor = Globals | DataType$Color; + +export type Property$StrokeDasharray<TLength = string | 0> = Globals | DataType$Dasharray<TLength> | "none"; + +export type Property$StrokeDashoffset<TLength = string | 0> = Globals | TLength | string | number; + +export type Property$StrokeLinecap = Globals | "butt" | "round" | "square"; + +export type Property$StrokeLinejoin = Globals | "arcs" | "bevel" | "miter" | "miter-clip" | "round"; + +export type Property$StrokeMiterlimit = Globals | number; + +export type Property$StrokeOpacity = Globals | string | number; + +export type Property$StrokeWidth<TLength = string | 0> = Globals | TLength | string | number; + +export type Property$TabSize<TLength = string | 0> = Globals | TLength | number; + +export type Property$TableLayout = Globals | "auto" | "fixed"; + +export type Property$TextAlign = + | Globals + | "-khtml-center" + | "-khtml-left" + | "-khtml-right" + | "-moz-center" + | "-moz-left" + | "-moz-right" + | "-webkit-center" + | "-webkit-left" + | "-webkit-match-parent" + | "-webkit-right" + | "center" + | "end" + | "justify" + | "left" + | "match-parent" + | "right" + | "start"; + +export type Property$TextAlignLast = Globals | "auto" | "center" | "end" | "justify" | "left" | "right" | "start"; + +export type Property$TextAnchor = Globals | "end" | "middle" | "start"; + +export type Property$TextAutospace = Globals | DataType$Autospace | "auto" | "normal"; + +export type Property$TextBox = Globals | DataType$TextEdge | "auto" | "none" | "normal" | "trim-both" | "trim-end" | "trim-start" | string; + +export type Property$TextBoxEdge = Globals | DataType$TextEdge | "auto"; + +export type Property$TextBoxTrim = Globals | "none" | "trim-both" | "trim-end" | "trim-start"; + +export type Property$TextCombineUpright = Globals | "all" | "digits" | "none" | string; + +export type Property$TextDecoration<TLength = string | 0> = + | Globals + | DataType$Color + | TLength + | "auto" + | "blink" + | "dashed" + | "dotted" + | "double" + | "from-font" + | "grammar-error" + | "line-through" + | "none" + | "overline" + | "solid" + | "spelling-error" + | "underline" + | "wavy" + | string; + +export type Property$TextDecorationColor = Globals | DataType$Color; + +export type Property$TextDecorationLine = Globals | "blink" | "grammar-error" | "line-through" | "none" | "overline" | "spelling-error" | "underline" | string; + +export type Property$TextDecorationSkip = Globals | "box-decoration" | "edges" | "leading-spaces" | "none" | "objects" | "spaces" | "trailing-spaces" | string; + +export type Property$TextDecorationSkipInk = Globals | "all" | "auto" | "none"; + +export type Property$TextDecorationStyle = Globals | "dashed" | "dotted" | "double" | "solid" | "wavy"; + +export type Property$TextDecorationThickness<TLength = string | 0> = Globals | TLength | "auto" | "from-font" | string; + +export type Property$TextEmphasis = Globals | DataType$Color | "circle" | "dot" | "double-circle" | "filled" | "none" | "open" | "sesame" | "triangle" | string; + +export type Property$TextEmphasisColor = Globals | DataType$Color; + +export type Property$TextEmphasisPosition = Globals | "auto" | "over" | "under" | string; + +export type Property$TextEmphasisStyle = Globals | "circle" | "dot" | "double-circle" | "filled" | "none" | "open" | "sesame" | "triangle" | string; + +export type Property$TextIndent<TLength = string | 0> = Globals | TLength | string; + +export type Property$TextJustify = Globals | "auto" | "distribute" | "inter-character" | "inter-word" | "none"; + +export type Property$TextOrientation = Globals | "mixed" | "sideways" | "sideways-right" | "upright"; + +export type Property$TextOverflow = Globals | "clip" | "ellipsis" | string; + +export type Property$TextRendering = Globals | "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed"; + +export type Property$TextShadow = Globals | "none" | string; + +export type Property$TextSizeAdjust = Globals | "auto" | "none" | string; + +export type Property$TextSpacingTrim = Globals | "normal" | "space-all" | "space-first" | "trim-start"; + +export type Property$TextTransform = Globals | "capitalize" | "full-size-kana" | "full-width" | "lowercase" | "math-auto" | "none" | "uppercase" | string; + +export type Property$TextUnderlineOffset<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$TextUnderlinePosition = Globals | "auto" | "from-font" | "left" | "right" | "under" | string; + +export type Property$TextWrap = Globals | "auto" | "balance" | "nowrap" | "pretty" | "stable" | "wrap" | string; + +export type Property$TextWrapMode = Globals | "nowrap" | "wrap"; + +export type Property$TextWrapStyle = Globals | "auto" | "balance" | "pretty" | "stable"; + +export type Property$TimelineScope = Globals | "none" | string; + +export type Property$Top<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$TouchAction = + | Globals + | "-ms-manipulation" + | "-ms-none" + | "-ms-pan-x" + | "-ms-pan-y" + | "-ms-pinch-zoom" + | "auto" + | "manipulation" + | "none" + | "pan-down" + | "pan-left" + | "pan-right" + | "pan-up" + | "pan-x" + | "pan-y" + | "pinch-zoom" + | string; + +export type Property$Transform = Globals | "none" | string; + +export type Property$TransformBox = Globals | "border-box" | "content-box" | "fill-box" | "stroke-box" | "view-box"; + +export type Property$TransformOrigin<TLength = string | 0> = Globals | TLength | "bottom" | "center" | "left" | "right" | "top" | string; + +export type Property$TransformStyle = Globals | "flat" | "preserve-3d"; + +export type Property$Transition<TTime = string> = Globals | DataType$SingleTransition<TTime> | string; + +export type Property$TransitionBehavior = Globals | "allow-discrete" | "normal" | string; + +export type Property$TransitionDelay<TTime = string> = Globals | TTime | string; + +export type Property$TransitionDuration<TTime = string> = Globals | TTime | string; + +export type Property$TransitionProperty = Globals | "all" | "none" | string; + +export type Property$TransitionTimingFunction = Globals | DataType$EasingFunction | string; + +export type Property$Translate<TLength = string | 0> = Globals | TLength | "none" | string; + +export type Property$UnicodeBidi = + | Globals + | "-moz-isolate" + | "-moz-isolate-override" + | "-moz-plaintext" + | "-webkit-isolate" + | "-webkit-isolate-override" + | "-webkit-plaintext" + | "bidi-override" + | "embed" + | "isolate" + | "isolate-override" + | "normal" + | "plaintext"; + +export type Property$UserSelect = Globals | "-moz-none" | "all" | "auto" | "none" | "text"; + +export type Property$VectorEffect = Globals | "fixed-position" | "non-rotation" | "non-scaling-size" | "non-scaling-stroke" | "none"; + +export type Property$VerticalAlign<TLength = string | 0> = Globals | TLength | "baseline" | "bottom" | "middle" | "sub" | "super" | "text-bottom" | "text-top" | "top" | string; + +export type Property$ViewTimeline = Globals | "none" | string; + +export type Property$ViewTimelineAxis = Globals | "block" | "inline" | "x" | "y" | string; + +export type Property$ViewTimelineInset<TLength = string | 0> = Globals | TLength | "auto" | string; + +export type Property$ViewTimelineName = Globals | "none" | string; + +export type Property$ViewTransitionClass = Globals | "none" | string; + +export type Property$ViewTransitionName = Globals | "match-element" | "none" | string; + +export type Property$Visibility = Globals | "collapse" | "hidden" | "visible"; + +export type Property$WhiteSpace = + | Globals + | "-moz-pre-wrap" + | "break-spaces" + | "collapse" + | "normal" + | "nowrap" + | "pre" + | "pre-line" + | "pre-wrap" + | "preserve" + | "preserve-breaks" + | "preserve-spaces" + | "wrap" + | string; + +export type Property$WhiteSpaceCollapse = Globals | "break-spaces" | "collapse" | "preserve" | "preserve-breaks" | "preserve-spaces"; + +export type Property$Widows = Globals | number; + +export type Property$Width<TLength = string | 0> = + | Globals + | TLength + | "-moz-fit-content" + | "-moz-max-content" + | "-moz-min-content" + | "-webkit-fit-content" + | "-webkit-max-content" + | "auto" + | "fit-content" + | "intrinsic" + | "max-content" + | "min-content" + | "min-intrinsic" + | string; + +export type Property$WillChange = Globals | DataType$AnimateableFeature | "auto" | string; + +export type Property$WordBreak = Globals | "auto-phrase" | "break-all" | "break-word" | "keep-all" | "normal"; + +export type Property$WordSpacing<TLength = string | 0> = Globals | TLength | "normal"; + +export type Property$WordWrap = Globals | "break-word" | "normal"; + +export type Property$WritingMode = Globals | "horizontal-tb" | "sideways-lr" | "sideways-rl" | "vertical-lr" | "vertical-rl"; + +export type Property$X<TLength = string | 0> = Globals | TLength | string; + +export type Property$Y<TLength = string | 0> = Globals | TLength | string; + +export type Property$ZIndex = Globals | "auto" | number; + +export type Property$Zoom = Globals | "normal" | "reset" | string | number; + +export type Property$MozAppearance = + | Globals + | "-moz-mac-unified-toolbar" + | "-moz-win-borderless-glass" + | "-moz-win-browsertabbar-toolbox" + | "-moz-win-communications-toolbox" + | "-moz-win-communicationstext" + | "-moz-win-exclude-glass" + | "-moz-win-glass" + | "-moz-win-media-toolbox" + | "-moz-win-mediatext" + | "-moz-window-button-box" + | "-moz-window-button-box-maximized" + | "-moz-window-button-close" + | "-moz-window-button-maximize" + | "-moz-window-button-minimize" + | "-moz-window-button-restore" + | "-moz-window-frame-bottom" + | "-moz-window-frame-left" + | "-moz-window-frame-right" + | "-moz-window-titlebar" + | "-moz-window-titlebar-maximized" + | "button" + | "button-arrow-down" + | "button-arrow-next" + | "button-arrow-previous" + | "button-arrow-up" + | "button-bevel" + | "button-focus" + | "caret" + | "checkbox" + | "checkbox-container" + | "checkbox-label" + | "checkmenuitem" + | "dualbutton" + | "groupbox" + | "listbox" + | "listitem" + | "menuarrow" + | "menubar" + | "menucheckbox" + | "menuimage" + | "menuitem" + | "menuitemtext" + | "menulist" + | "menulist-button" + | "menulist-text" + | "menulist-textfield" + | "menupopup" + | "menuradio" + | "menuseparator" + | "meterbar" + | "meterchunk" + | "none" + | "progressbar" + | "progressbar-vertical" + | "progresschunk" + | "progresschunk-vertical" + | "radio" + | "radio-container" + | "radio-label" + | "radiomenuitem" + | "range" + | "range-thumb" + | "resizer" + | "resizerpanel" + | "scale-horizontal" + | "scale-vertical" + | "scalethumb-horizontal" + | "scalethumb-vertical" + | "scalethumbend" + | "scalethumbstart" + | "scalethumbtick" + | "scrollbarbutton-down" + | "scrollbarbutton-left" + | "scrollbarbutton-right" + | "scrollbarbutton-up" + | "scrollbarthumb-horizontal" + | "scrollbarthumb-vertical" + | "scrollbartrack-horizontal" + | "scrollbartrack-vertical" + | "searchfield" + | "separator" + | "sheet" + | "spinner" + | "spinner-downbutton" + | "spinner-textfield" + | "spinner-upbutton" + | "splitter" + | "statusbar" + | "statusbarpanel" + | "tab" + | "tab-scroll-arrow-back" + | "tab-scroll-arrow-forward" + | "tabpanel" + | "tabpanels" + | "textfield" + | "textfield-multiline" + | "toolbar" + | "toolbarbutton" + | "toolbarbutton-dropdown" + | "toolbargripper" + | "toolbox" + | "tooltip" + | "treeheader" + | "treeheadercell" + | "treeheadersortarrow" + | "treeitem" + | "treeline" + | "treetwisty" + | "treetwistyopen" + | "treeview"; + +export type Property$MozBinding = Globals | "none" | string; + +export type Property$MozBorderBottomColors = Globals | DataType$Color | "none" | string; + +export type Property$MozBorderLeftColors = Globals | DataType$Color | "none" | string; + +export type Property$MozBorderRightColors = Globals | DataType$Color | "none" | string; + +export type Property$MozBorderTopColors = Globals | DataType$Color | "none" | string; + +export type Property$MozContextProperties = Globals | "fill" | "fill-opacity" | "none" | "stroke" | "stroke-opacity" | string; + +export type Property$MozFloatEdge = Globals | "border-box" | "content-box" | "margin-box" | "padding-box"; + +export type Property$MozForceBrokenImageIcon = Globals | 0 | 1; + +export type Property$MozOrient = Globals | "block" | "horizontal" | "inline" | "vertical"; + +export type Property$MozOutlineRadius<TLength = string | 0> = Globals | TLength | string; + +export type Property$MozOutlineRadiusBottomleft<TLength = string | 0> = Globals | TLength | string; + +export type Property$MozOutlineRadiusBottomright<TLength = string | 0> = Globals | TLength | string; + +export type Property$MozOutlineRadiusTopleft<TLength = string | 0> = Globals | TLength | string; + +export type Property$MozOutlineRadiusTopright<TLength = string | 0> = Globals | TLength | string; + +export type Property$MozStackSizing = Globals | "ignore" | "stretch-to-fit"; + +export type Property$MozTextBlink = Globals | "blink" | "none"; + +export type Property$MozUserFocus = Globals | "ignore" | "none" | "normal" | "select-after" | "select-all" | "select-before" | "select-menu" | "select-same"; + +export type Property$MozUserInput = Globals | "auto" | "disabled" | "enabled" | "none"; + +export type Property$MozUserModify = Globals | "read-only" | "read-write" | "write-only"; + +export type Property$MozWindowDragging = Globals | "drag" | "no-drag"; + +export type Property$MozWindowShadow = Globals | "default" | "menu" | "none" | "sheet" | "tooltip"; + +export type Property$MsAccelerator = Globals | "false" | "true"; + +export type Property$MsBlockProgression = Globals | "bt" | "lr" | "rl" | "tb"; + +export type Property$MsContentZoomChaining = Globals | "chained" | "none"; + +export type Property$MsContentZoomLimit = Globals | string; + +export type Property$MsContentZoomLimitMax = Globals | string; + +export type Property$MsContentZoomLimitMin = Globals | string; + +export type Property$MsContentZoomSnap = Globals | "mandatory" | "none" | "proximity" | string; + +export type Property$MsContentZoomSnapPoints = Globals | string; + +export type Property$MsContentZoomSnapType = Globals | "mandatory" | "none" | "proximity"; + +export type Property$MsContentZooming = Globals | "none" | "zoom"; + +export type Property$MsFilter = Globals | string; + +export type Property$MsFlowFrom = Globals | "none" | string; + +export type Property$MsFlowInto = Globals | "none" | string; + +export type Property$MsGridColumns<TLength = string | 0> = Globals | DataType$TrackBreadth<TLength> | "none" | string; + +export type Property$MsGridRows<TLength = string | 0> = Globals | DataType$TrackBreadth<TLength> | "none" | string; + +export type Property$MsHighContrastAdjust = Globals | "auto" | "none"; + +export type Property$MsHyphenateLimitChars = Globals | "auto" | string | number; + +export type Property$MsHyphenateLimitLines = Globals | "no-limit" | number; + +export type Property$MsHyphenateLimitZone<TLength = string | 0> = Globals | TLength | string; + +export type Property$MsImeAlign = Globals | "after" | "auto"; + +export type Property$MsOverflowStyle = Globals | "-ms-autohiding-scrollbar" | "auto" | "none" | "scrollbar"; + +export type Property$MsScrollChaining = Globals | "chained" | "none"; + +export type Property$MsScrollLimit = Globals | string; + +export type Property$MsScrollLimitXMax<TLength = string | 0> = Globals | TLength | "auto"; + +export type Property$MsScrollLimitXMin<TLength = string | 0> = Globals | TLength; + +export type Property$MsScrollLimitYMax<TLength = string | 0> = Globals | TLength | "auto"; + +export type Property$MsScrollLimitYMin<TLength = string | 0> = Globals | TLength; + +export type Property$MsScrollRails = Globals | "none" | "railed"; + +export type Property$MsScrollSnapPointsX = Globals | string; + +export type Property$MsScrollSnapPointsY = Globals | string; + +export type Property$MsScrollSnapType = Globals | "mandatory" | "none" | "proximity"; + +export type Property$MsScrollSnapX = Globals | string; + +export type Property$MsScrollSnapY = Globals | string; + +export type Property$MsScrollTranslation = Globals | "none" | "vertical-to-horizontal"; + +export type Property$MsScrollbar3dlightColor = Globals | DataType$Color; + +export type Property$MsScrollbarArrowColor = Globals | DataType$Color; + +export type Property$MsScrollbarBaseColor = Globals | DataType$Color; + +export type Property$MsScrollbarDarkshadowColor = Globals | DataType$Color; + +export type Property$MsScrollbarFaceColor = Globals | DataType$Color; + +export type Property$MsScrollbarHighlightColor = Globals | DataType$Color; + +export type Property$MsScrollbarShadowColor = Globals | DataType$Color; + +export type Property$MsScrollbarTrackColor = Globals | DataType$Color; + +export type Property$MsTextAutospace = Globals | "ideograph-alpha" | "ideograph-numeric" | "ideograph-parenthesis" | "ideograph-space" | "none"; + +export type Property$MsTouchSelect = Globals | "grippers" | "none"; + +export type Property$MsUserSelect = Globals | "element" | "none" | "text"; + +export type Property$MsWrapFlow = Globals | "auto" | "both" | "clear" | "end" | "maximum" | "start"; + +export type Property$MsWrapMargin<TLength = string | 0> = Globals | TLength; + +export type Property$MsWrapThrough = Globals | "none" | "wrap"; + +export type Property$WebkitAppearance = + | Globals + | "-apple-pay-button" + | "button" + | "button-bevel" + | "caret" + | "checkbox" + | "default-button" + | "inner-spin-button" + | "listbox" + | "listitem" + | "media-controls-background" + | "media-controls-fullscreen-background" + | "media-current-time-display" + | "media-enter-fullscreen-button" + | "media-exit-fullscreen-button" + | "media-fullscreen-button" + | "media-mute-button" + | "media-overlay-play-button" + | "media-play-button" + | "media-seek-back-button" + | "media-seek-forward-button" + | "media-slider" + | "media-sliderthumb" + | "media-time-remaining-display" + | "media-toggle-closed-captions-button" + | "media-volume-slider" + | "media-volume-slider-container" + | "media-volume-sliderthumb" + | "menulist" + | "menulist-button" + | "menulist-text" + | "menulist-textfield" + | "meter" + | "none" + | "progress-bar" + | "progress-bar-value" + | "push-button" + | "radio" + | "searchfield" + | "searchfield-cancel-button" + | "searchfield-decoration" + | "searchfield-results-button" + | "searchfield-results-decoration" + | "slider-horizontal" + | "slider-vertical" + | "sliderthumb-horizontal" + | "sliderthumb-vertical" + | "square-button" + | "textarea" + | "textfield"; + +export type Property$WebkitBorderBefore<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | DataType$LineStyle | DataType$Color | string; + +export type Property$WebkitBorderBeforeColor = Globals | DataType$Color; + +export type Property$WebkitBorderBeforeStyle = Globals | DataType$LineStyle | string; + +export type Property$WebkitBorderBeforeWidth<TLength = string | 0> = Globals | DataType$LineWidth<TLength> | string; + +export type Property$WebkitBoxReflect<TLength = string | 0> = Globals | TLength | "above" | "below" | "left" | "right" | string; + +export type Property$WebkitLineClamp = Globals | "none" | number; + +export type Property$WebkitMask<TLength = string | 0> = + | Globals + | DataType$Position<TLength> + | DataType$RepeatStyle + | DataType$VisualBox + | "border" + | "content" + | "none" + | "padding" + | "text" + | string; + +export type Property$WebkitMaskAttachment = Globals | DataType$Attachment | string; + +export type Property$WebkitMaskClip = Globals | DataType$PaintBox | "border" | "content" | "no-clip" | "padding" | "text" | "view-box" | string; + +export type Property$WebkitMaskComposite = Globals | DataType$CompositeStyle | string; + +export type Property$WebkitMaskImage = Globals | "none" | string; + +export type Property$WebkitMaskOrigin = Globals | DataType$PaintBox | "border" | "content" | "padding" | "view-box" | string; + +export type Property$WebkitMaskPosition<TLength = string | 0> = Globals | DataType$Position<TLength> | string; + +export type Property$WebkitMaskPositionX<TLength = string | 0> = Globals | TLength | "center" | "left" | "right" | string; + +export type Property$WebkitMaskPositionY<TLength = string | 0> = Globals | TLength | "bottom" | "center" | "top" | string; + +export type Property$WebkitMaskRepeat = Globals | DataType$RepeatStyle | string; + +export type Property$WebkitMaskRepeatX = Globals | "no-repeat" | "repeat" | "round" | "space"; + +export type Property$WebkitMaskRepeatY = Globals | "no-repeat" | "repeat" | "round" | "space"; + +export type Property$WebkitMaskSize<TLength = string | 0> = Globals | DataType$BgSize<TLength> | string; + +export type Property$WebkitOverflowScrolling = Globals | "auto" | "touch"; + +export type Property$WebkitTapHighlightColor = Globals | DataType$Color; + +export type Property$WebkitTextFillColor = Globals | DataType$Color; + +export type Property$WebkitTextStroke<TLength = string | 0> = Globals | DataType$Color | TLength | string; + +export type Property$WebkitTextStrokeColor = Globals | DataType$Color; + +export type Property$WebkitTextStrokeWidth<TLength = string | 0> = Globals | TLength; + +export type Property$WebkitTouchCallout = Globals | "default" | "none"; + +export type Property$WebkitUserModify = Globals | "read-only" | "read-write" | "read-write-plaintext-only"; + +export type Property$WebkitUserSelect = Globals | "all" | "auto" | "none" | "text"; + +export type Property$ColorInterpolation = Globals | "auto" | "linearRGB" | "sRGB"; + +export type Property$ColorRendering = Globals | "auto" | "optimizeQuality" | "optimizeSpeed"; + +export type Property$GlyphOrientationVertical = Globals | "auto" | string | number; + +export type AtRule$CounterStyle<TLength = string | 0, TTime = string> = {| + additiveSymbols?: string, + fallback?: string, + negative?: string, + pad?: string, + prefix?: string, + range?: AtRule$Range, + speakAs?: AtRule$SpeakAs, + suffix?: string, + symbols?: string, + system?: AtRule$System, +|}; + +export type AtRule$CounterStyleHyphen<TLength = string | 0, TTime = string> = {| + "additive-symbols"?: string, + fallback?: string, + negative?: string, + pad?: string, + prefix?: string, + range?: AtRule$Range, + "speak-as"?: AtRule$SpeakAs, + suffix?: string, + symbols?: string, + system?: AtRule$System, +|}; + +export type AtRule$CounterStyleFallback<TLength = string | 0, TTime = string> = {| + additiveSymbols?: string | Array<string>, + fallback?: string | Array<string>, + negative?: string | Array<string>, + pad?: string | Array<string>, + prefix?: string | Array<string>, + range?: AtRule$Range | Array<AtRule$Range>, + speakAs?: AtRule$SpeakAs | Array<AtRule$SpeakAs>, + suffix?: string | Array<string>, + symbols?: string | Array<string>, + system?: AtRule$System | Array<AtRule$System>, +|}; + +export type AtRule$CounterStyleHyphenFallback<TLength = string | 0, TTime = string> = {| + "additive-symbols"?: string | Array<string>, + fallback?: string | Array<string>, + negative?: string | Array<string>, + pad?: string | Array<string>, + prefix?: string | Array<string>, + range?: AtRule$Range | Array<AtRule$Range>, + "speak-as"?: AtRule$SpeakAs | Array<AtRule$SpeakAs>, + suffix?: string | Array<string>, + symbols?: string | Array<string>, + system?: AtRule$System | Array<AtRule$System>, +|}; + +export type AtRule$FontFace<TLength = string | 0, TTime = string> = {| + MozFontFeatureSettings?: AtRule$FontFeatureSettings, + ascentOverride?: AtRule$AscentOverride, + descentOverride?: AtRule$DescentOverride, + fontDisplay?: AtRule$FontDisplay, + fontFamily?: string, + fontFeatureSettings?: AtRule$FontFeatureSettings, + fontStretch?: AtRule$FontStretch, + fontStyle?: AtRule$FontStyle, + fontVariationSettings?: AtRule$FontVariationSettings, + fontWeight?: AtRule$FontWeight, + lineGapOverride?: AtRule$LineGapOverride, + sizeAdjust?: string, + src?: string, + unicodeRange?: string, +|}; + +export type AtRule$FontFaceHyphen<TLength = string | 0, TTime = string> = {| + "-moz-font-feature-settings"?: AtRule$FontFeatureSettings, + "ascent-override"?: AtRule$AscentOverride, + "descent-override"?: AtRule$DescentOverride, + "font-display"?: AtRule$FontDisplay, + "font-family"?: string, + "font-feature-settings"?: AtRule$FontFeatureSettings, + "font-stretch"?: AtRule$FontStretch, + "font-style"?: AtRule$FontStyle, + "font-variation-settings"?: AtRule$FontVariationSettings, + "font-weight"?: AtRule$FontWeight, + "line-gap-override"?: AtRule$LineGapOverride, + "size-adjust"?: string, + src?: string, + "unicode-range"?: string, +|}; + +export type AtRule$FontFaceFallback<TLength = string | 0, TTime = string> = {| + MozFontFeatureSettings?: AtRule$FontFeatureSettings | Array<AtRule$FontFeatureSettings>, + ascentOverride?: AtRule$AscentOverride | Array<AtRule$AscentOverride>, + descentOverride?: AtRule$DescentOverride | Array<AtRule$DescentOverride>, + fontDisplay?: AtRule$FontDisplay | Array<AtRule$FontDisplay>, + fontFamily?: string | Array<string>, + fontFeatureSettings?: AtRule$FontFeatureSettings | Array<AtRule$FontFeatureSettings>, + fontStretch?: AtRule$FontStretch | Array<AtRule$FontStretch>, + fontStyle?: AtRule$FontStyle | Array<AtRule$FontStyle>, + fontVariationSettings?: AtRule$FontVariationSettings | Array<AtRule$FontVariationSettings>, + fontWeight?: AtRule$FontWeight | Array<AtRule$FontWeight>, + lineGapOverride?: AtRule$LineGapOverride | Array<AtRule$LineGapOverride>, + sizeAdjust?: string | Array<string>, + src?: string | Array<string>, + unicodeRange?: string | Array<string>, +|}; + +export type AtRule$FontFaceHyphenFallback<TLength = string | 0, TTime = string> = {| + "-moz-font-feature-settings"?: AtRule$FontFeatureSettings | Array<AtRule$FontFeatureSettings>, + "ascent-override"?: AtRule$AscentOverride | Array<AtRule$AscentOverride>, + "descent-override"?: AtRule$DescentOverride | Array<AtRule$DescentOverride>, + "font-display"?: AtRule$FontDisplay | Array<AtRule$FontDisplay>, + "font-family"?: string | Array<string>, + "font-feature-settings"?: AtRule$FontFeatureSettings | Array<AtRule$FontFeatureSettings>, + "font-stretch"?: AtRule$FontStretch | Array<AtRule$FontStretch>, + "font-style"?: AtRule$FontStyle | Array<AtRule$FontStyle>, + "font-variation-settings"?: AtRule$FontVariationSettings | Array<AtRule$FontVariationSettings>, + "font-weight"?: AtRule$FontWeight | Array<AtRule$FontWeight>, + "line-gap-override"?: AtRule$LineGapOverride | Array<AtRule$LineGapOverride>, + "size-adjust"?: string | Array<string>, + src?: string | Array<string>, + "unicode-range"?: string | Array<string>, +|}; + +export type AtRule$FontPaletteValues<TLength = string | 0, TTime = string> = {| + basePalette?: AtRule$BasePalette, + fontFamily?: string, + overrideColors?: string, +|}; + +export type AtRule$FontPaletteValuesHyphen<TLength = string | 0, TTime = string> = {| + "base-palette"?: AtRule$BasePalette, + "font-family"?: string, + "override-colors"?: string, +|}; + +export type AtRule$FontPaletteValuesFallback<TLength = string | 0, TTime = string> = {| + basePalette?: AtRule$BasePalette | Array<AtRule$BasePalette>, + fontFamily?: string | Array<string>, + overrideColors?: string | Array<string>, +|}; + +export type AtRule$FontPaletteValuesHyphenFallback<TLength = string | 0, TTime = string> = {| + "base-palette"?: AtRule$BasePalette | Array<AtRule$BasePalette>, + "font-family"?: string | Array<string>, + "override-colors"?: string | Array<string>, +|}; + +export type AtRule$Page<TLength = string | 0, TTime = string> = {| + bleed?: AtRule$Bleed<TLength>, + marks?: AtRule$Marks, + pageOrientation?: AtRule$PageOrientation, + size?: AtRule$Size<TLength>, +|}; + +export type AtRule$PageHyphen<TLength = string | 0, TTime = string> = {| + bleed?: AtRule$Bleed<TLength>, + marks?: AtRule$Marks, + "page-orientation"?: AtRule$PageOrientation, + size?: AtRule$Size<TLength>, +|}; + +export type AtRule$PageFallback<TLength = string | 0, TTime = string> = {| + bleed?: AtRule$Bleed<TLength> | Array<AtRule$Bleed<TLength>>, + marks?: AtRule$Marks | Array<AtRule$Marks>, + pageOrientation?: AtRule$PageOrientation | Array<AtRule$PageOrientation>, + size?: AtRule$Size<TLength> | Array<AtRule$Size<TLength>>, +|}; + +export type AtRule$PageHyphenFallback<TLength = string | 0, TTime = string> = {| + bleed?: AtRule$Bleed<TLength> | Array<AtRule$Bleed<TLength>>, + marks?: AtRule$Marks | Array<AtRule$Marks>, + "page-orientation"?: AtRule$PageOrientation | Array<AtRule$PageOrientation>, + size?: AtRule$Size<TLength> | Array<AtRule$Size<TLength>>, +|}; + +export type AtRule$Property<TLength = string | 0, TTime = string> = {| + inherits?: AtRule$Inherits, + initialValue?: string, + syntax?: string, +|}; + +export type AtRule$PropertyHyphen<TLength = string | 0, TTime = string> = {| + inherits?: AtRule$Inherits, + "initial-value"?: string, + syntax?: string, +|}; + +export type AtRule$PropertyFallback<TLength = string | 0, TTime = string> = {| + inherits?: AtRule$Inherits | Array<AtRule$Inherits>, + initialValue?: string | Array<string>, + syntax?: string | Array<string>, +|}; + +export type AtRule$PropertyHyphenFallback<TLength = string | 0, TTime = string> = {| + inherits?: AtRule$Inherits | Array<AtRule$Inherits>, + "initial-value"?: string | Array<string>, + syntax?: string | Array<string>, +|}; + +export type AtRule$ViewTransition<TLength = string | 0, TTime = string> = {| + navigation?: AtRule$Navigation, + types?: AtRule$Types, +|}; + +export type AtRule$ViewTransitionHyphen<TLength = string | 0, TTime = string> = {| + navigation?: AtRule$Navigation, + types?: AtRule$Types, +|}; + +export type AtRule$ViewTransitionFallback<TLength = string | 0, TTime = string> = {| + navigation?: AtRule$Navigation | Array<AtRule$Navigation>, + types?: AtRule$Types | Array<AtRule$Types>, +|}; + +export type AtRule$ViewTransitionHyphenFallback<TLength = string | 0, TTime = string> = {| + navigation?: AtRule$Navigation | Array<AtRule$Navigation>, + types?: AtRule$Types | Array<AtRule$Types>, +|}; + +type AtRule$Range = "auto" | string; + +type AtRule$SpeakAs = "auto" | "bullets" | "numbers" | "spell-out" | "words" | string; + +type AtRule$System = "additive" | "alphabetic" | "cyclic" | "fixed" | "numeric" | "symbolic" | string; + +type AtRule$FontFeatureSettings = "normal" | string; + +type AtRule$AscentOverride = "normal" | string; + +type AtRule$DescentOverride = "normal" | string; + +type AtRule$FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap"; + +type AtRule$FontStretch = DataType$FontStretchAbsolute | string; + +type AtRule$FontStyle = "italic" | "normal" | "oblique" | string; + +type AtRule$FontVariationSettings = "normal" | string; + +type AtRule$FontWeight = DataType$FontWeightAbsolute | string; + +type AtRule$LineGapOverride = "normal" | string; + +type AtRule$BasePalette = "dark" | "light" | number; + +type AtRule$Bleed<TLength> = TLength | "auto"; + +type AtRule$Marks = "crop" | "cross" | "none" | string; + +type AtRule$PageOrientation = "rotate-left" | "rotate-right" | "upright"; + +type AtRule$Size<TLength> = DataType$PageSize | TLength | "auto" | "landscape" | "portrait" | string; + +type AtRule$Inherits = "false" | "true"; + +type AtRule$Navigation = "auto" | "none"; + +type AtRule$Types = "none" | string; + +type DataType$AbsoluteSize = "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large"; + +type DataType$AnimateableFeature = "contents" | "scroll-position" | string; + +type DataType$Attachment = "fixed" | "local" | "scroll"; + +type DataType$Autospace = "ideograph-alpha" | "ideograph-numeric" | "insert" | "no-autospace" | "punctuation" | "replace" | string; + +type DataType$BgClip = DataType$VisualBox | "border-area" | "text"; + +type DataType$BgLayer<TLength> = DataType$BgPosition<TLength> | DataType$RepeatStyle | DataType$Attachment | DataType$VisualBox | "none" | string; + +type DataType$BgPosition<TLength> = TLength | "bottom" | "center" | "left" | "right" | "top" | string; + +type DataType$BgSize<TLength> = TLength | "auto" | "contain" | "cover" | string; + +type DataType$BlendMode = + | "color" + | "color-burn" + | "color-dodge" + | "darken" + | "difference" + | "exclusion" + | "hard-light" + | "hue" + | "lighten" + | "luminosity" + | "multiply" + | "normal" + | "overlay" + | "saturation" + | "screen" + | "soft-light"; + +type DataType$Color = DataType$ColorBase | DataType$SystemColor | DataType$DeprecatedSystemColor | "currentColor" | string; + +type DataType$ColorBase = DataType$NamedColor | "transparent" | string; + +type DataType$CompatAuto = "button" | "checkbox" | "listbox" | "menulist" | "meter" | "progress-bar" | "radio" | "searchfield" | "textarea"; + +type DataType$CompositeStyle = + | "clear" + | "copy" + | "destination-atop" + | "destination-in" + | "destination-out" + | "destination-over" + | "source-atop" + | "source-in" + | "source-out" + | "source-over" + | "xor"; + +type DataType$CompositingOperator = "add" | "exclude" | "intersect" | "subtract"; + +type DataType$ContentDistribution = "space-around" | "space-between" | "space-evenly" | "stretch"; + +type DataType$ContentPosition = "center" | "end" | "flex-end" | "flex-start" | "start"; + +type DataType$CubicBezierEasingFunction = "ease" | "ease-in" | "ease-in-out" | "ease-out" | string; + +type DataType$CursorPredefined = + | "-moz-grab" + | "-moz-zoom-in" + | "-moz-zoom-out" + | "-webkit-grab" + | "-webkit-grabbing" + | "-webkit-zoom-in" + | "-webkit-zoom-out" + | "alias" + | "all-scroll" + | "auto" + | "cell" + | "col-resize" + | "context-menu" + | "copy" + | "crosshair" + | "default" + | "e-resize" + | "ew-resize" + | "grab" + | "grabbing" + | "help" + | "move" + | "n-resize" + | "ne-resize" + | "nesw-resize" + | "no-drop" + | "none" + | "not-allowed" + | "ns-resize" + | "nw-resize" + | "nwse-resize" + | "pointer" + | "progress" + | "row-resize" + | "s-resize" + | "se-resize" + | "sw-resize" + | "text" + | "vertical-text" + | "w-resize" + | "wait" + | "zoom-in" + | "zoom-out"; + +type DataType$Dasharray<TLength> = TLength | string | number; + +type DataType$DeprecatedSystemColor = + | "ActiveBorder" + | "ActiveCaption" + | "AppWorkspace" + | "Background" + | "ButtonHighlight" + | "ButtonShadow" + | "CaptionText" + | "InactiveBorder" + | "InactiveCaption" + | "InactiveCaptionText" + | "InfoBackground" + | "InfoText" + | "Menu" + | "MenuText" + | "Scrollbar" + | "ThreeDDarkShadow" + | "ThreeDFace" + | "ThreeDHighlight" + | "ThreeDLightShadow" + | "ThreeDShadow" + | "Window" + | "WindowFrame" + | "WindowText"; + +type DataType$DisplayInside = "-ms-flexbox" | "-ms-grid" | "-webkit-flex" | "flex" | "flow" | "flow-root" | "grid" | "ruby" | "table"; + +type DataType$DisplayInternal = + | "ruby-base" + | "ruby-base-container" + | "ruby-text" + | "ruby-text-container" + | "table-caption" + | "table-cell" + | "table-column" + | "table-column-group" + | "table-footer-group" + | "table-header-group" + | "table-row" + | "table-row-group"; + +type DataType$DisplayLegacy = + | "-ms-inline-flexbox" + | "-ms-inline-grid" + | "-webkit-inline-flex" + | "inline-block" + | "inline-flex" + | "inline-grid" + | "inline-list-item" + | "inline-table"; + +type DataType$DisplayOutside = "block" | "inline" | "run-in"; + +type DataType$EasingFunction = DataType$CubicBezierEasingFunction | DataType$StepEasingFunction | "linear" | string; + +type DataType$EastAsianVariantValues = "jis04" | "jis78" | "jis83" | "jis90" | "simplified" | "traditional"; + +type DataType$FinalBgLayer<TLength> = DataType$BgPosition<TLength> | DataType$RepeatStyle | DataType$Attachment | DataType$VisualBox | DataType$Color | "none" | string; + +type DataType$FontStretchAbsolute = + | "condensed" + | "expanded" + | "extra-condensed" + | "extra-expanded" + | "normal" + | "semi-condensed" + | "semi-expanded" + | "ultra-condensed" + | "ultra-expanded" + | string; + +type DataType$FontWeightAbsolute = "bold" | "normal" | number; + +type DataType$GenericComplete = "-apple-system" | "cursive" | "fantasy" | "math" | "monospace" | "sans-serif" | "serif" | "system-ui"; + +type DataType$GenericFamily = DataType$GenericComplete | DataType$GenericIncomplete | "emoji" | "fangsong"; + +type DataType$GenericIncomplete = "ui-monospace" | "ui-rounded" | "ui-sans-serif" | "ui-serif"; + +type DataType$GeometryBox = DataType$VisualBox | "fill-box" | "margin-box" | "stroke-box" | "view-box"; + +type DataType$GridLine = "auto" | string | number; + +type DataType$LineStyle = "dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid"; + +type DataType$LineWidth<TLength> = TLength | "medium" | "thick" | "thin"; + +type DataType$MaskLayer<TLength> = + | DataType$Position<TLength> + | DataType$RepeatStyle + | DataType$GeometryBox + | DataType$CompositingOperator + | DataType$MaskingMode + | "no-clip" + | "none" + | string; + +type DataType$MaskingMode = "alpha" | "luminance" | "match-source"; + +type DataType$NamedColor = + | "aliceblue" + | "antiquewhite" + | "aqua" + | "aquamarine" + | "azure" + | "beige" + | "bisque" + | "black" + | "blanchedalmond" + | "blue" + | "blueviolet" + | "brown" + | "burlywood" + | "cadetblue" + | "chartreuse" + | "chocolate" + | "coral" + | "cornflowerblue" + | "cornsilk" + | "crimson" + | "cyan" + | "darkblue" + | "darkcyan" + | "darkgoldenrod" + | "darkgray" + | "darkgreen" + | "darkgrey" + | "darkkhaki" + | "darkmagenta" + | "darkolivegreen" + | "darkorange" + | "darkorchid" + | "darkred" + | "darksalmon" + | "darkseagreen" + | "darkslateblue" + | "darkslategray" + | "darkslategrey" + | "darkturquoise" + | "darkviolet" + | "deeppink" + | "deepskyblue" + | "dimgray" + | "dimgrey" + | "dodgerblue" + | "firebrick" + | "floralwhite" + | "forestgreen" + | "fuchsia" + | "gainsboro" + | "ghostwhite" + | "gold" + | "goldenrod" + | "gray" + | "green" + | "greenyellow" + | "grey" + | "honeydew" + | "hotpink" + | "indianred" + | "indigo" + | "ivory" + | "khaki" + | "lavender" + | "lavenderblush" + | "lawngreen" + | "lemonchiffon" + | "lightblue" + | "lightcoral" + | "lightcyan" + | "lightgoldenrodyellow" + | "lightgray" + | "lightgreen" + | "lightgrey" + | "lightpink" + | "lightsalmon" + | "lightseagreen" + | "lightskyblue" + | "lightslategray" + | "lightslategrey" + | "lightsteelblue" + | "lightyellow" + | "lime" + | "limegreen" + | "linen" + | "magenta" + | "maroon" + | "mediumaquamarine" + | "mediumblue" + | "mediumorchid" + | "mediumpurple" + | "mediumseagreen" + | "mediumslateblue" + | "mediumspringgreen" + | "mediumturquoise" + | "mediumvioletred" + | "midnightblue" + | "mintcream" + | "mistyrose" + | "moccasin" + | "navajowhite" + | "navy" + | "oldlace" + | "olive" + | "olivedrab" + | "orange" + | "orangered" + | "orchid" + | "palegoldenrod" + | "palegreen" + | "paleturquoise" + | "palevioletred" + | "papayawhip" + | "peachpuff" + | "peru" + | "pink" + | "plum" + | "powderblue" + | "purple" + | "rebeccapurple" + | "red" + | "rosybrown" + | "royalblue" + | "saddlebrown" + | "salmon" + | "sandybrown" + | "seagreen" + | "seashell" + | "sienna" + | "silver" + | "skyblue" + | "slateblue" + | "slategray" + | "slategrey" + | "snow" + | "springgreen" + | "steelblue" + | "tan" + | "teal" + | "thistle" + | "tomato" + | "turquoise" + | "violet" + | "wheat" + | "white" + | "whitesmoke" + | "yellow" + | "yellowgreen"; + +type DataType$OutlineLineStyle = "dashed" | "dotted" | "double" | "groove" | "inset" | "none" | "outset" | "ridge" | "solid"; + +type DataType$PageSize = "A3" | "A4" | "A5" | "B4" | "B5" | "JIS-B4" | "JIS-B5" | "ledger" | "legal" | "letter"; + +type DataType$Paint = DataType$Color | "context-fill" | "context-stroke" | "none" | string; + +type DataType$PaintBox = DataType$VisualBox | "fill-box" | "stroke-box"; + +type DataType$Position<TLength> = TLength | "bottom" | "center" | "left" | "right" | "top" | string; + +type DataType$PositionArea = + | "block-end" + | "block-start" + | "bottom" + | "center" + | "end" + | "inline-end" + | "inline-start" + | "left" + | "right" + | "self-block-end" + | "self-block-start" + | "self-end" + | "self-inline-end" + | "self-inline-start" + | "self-start" + | "span-all" + | "span-block-end" + | "span-block-start" + | "span-bottom" + | "span-end" + | "span-inline-end" + | "span-inline-start" + | "span-left" + | "span-right" + | "span-self-block-end" + | "span-self-block-start" + | "span-self-end" + | "span-self-inline-end" + | "span-self-inline-start" + | "span-self-start" + | "span-start" + | "span-top" + | "span-x-end" + | "span-x-self-end" + | "span-x-self-start" + | "span-x-start" + | "span-y-end" + | "span-y-self-end" + | "span-y-self-start" + | "span-y-start" + | "start" + | "top" + | "x-end" + | "x-self-end" + | "x-self-start" + | "x-start" + | "y-end" + | "y-self-end" + | "y-self-start" + | "y-start" + | string; + +type DataType$Quote = "close-quote" | "no-close-quote" | "no-open-quote" | "open-quote"; + +type DataType$RepeatStyle = "no-repeat" | "repeat" | "repeat-x" | "repeat-y" | "round" | "space" | string; + +type DataType$SelfPosition = "center" | "end" | "flex-end" | "flex-start" | "self-end" | "self-start" | "start"; + +type DataType$SingleAnimation<TTime> = + | DataType$EasingFunction + | DataType$SingleAnimationDirection + | DataType$SingleAnimationFillMode + | DataType$SingleAnimationTimeline + | TTime + | "auto" + | "infinite" + | "none" + | "paused" + | "running" + | string + | number; + +type DataType$SingleAnimationComposition = "accumulate" | "add" | "replace"; + +type DataType$SingleAnimationDirection = "alternate" | "alternate-reverse" | "normal" | "reverse"; + +type DataType$SingleAnimationFillMode = "backwards" | "both" | "forwards" | "none"; + +type DataType$SingleAnimationTimeline = "auto" | "none" | string; + +type DataType$SingleTransition<TTime> = DataType$EasingFunction | TTime | "all" | "allow-discrete" | "none" | "normal" | string; + +type DataType$StepEasingFunction = "step-end" | "step-start" | string; + +type DataType$SystemColor = + | "AccentColor" + | "AccentColorText" + | "ActiveText" + | "ButtonBorder" + | "ButtonFace" + | "ButtonText" + | "Canvas" + | "CanvasText" + | "Field" + | "FieldText" + | "GrayText" + | "Highlight" + | "HighlightText" + | "LinkText" + | "Mark" + | "MarkText" + | "SelectedItem" + | "SelectedItemText" + | "VisitedText"; + +type DataType$SystemFamilyName = "caption" | "icon" | "menu" | "message-box" | "small-caption" | "status-bar"; + +type DataType$TextEdge = "cap" | "ex" | "ideographic" | "ideographic-ink" | "text" | string; + +type DataType$TimelineRangeName = "contain" | "cover" | "entry" | "entry-crossing" | "exit" | "exit-crossing"; + +type DataType$TrackBreadth<TLength> = TLength | "auto" | "max-content" | "min-content" | string; + +type DataType$TrySize = "most-block-size" | "most-height" | "most-inline-size" | "most-width"; + +type DataType$TryTactic = "flip-block" | "flip-inline" | "flip-start" | string; + +type DataType$VisualBox = "border-box" | "content-box" | "padding-box"; diff --git a/node_modules/csstype/package.json b/node_modules/csstype/package.json new file mode 100644 index 0000000..548b308 --- /dev/null +++ b/node_modules/csstype/package.json @@ -0,0 +1,70 @@ +{ + "name": "csstype", + "version": "3.2.3", + "main": "", + "types": "index.d.ts", + "description": "Strict TypeScript and Flow types for style based on MDN data", + "repository": "https://github.com/frenic/csstype", + "author": "Fredrik Nicol <fredrik.nicol@gmail.com>", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.28.5", + "@babel/preset-env": "^7.28.5", + "@babel/preset-typescript": "^7.28.5", + "@eslint/js": "^9.39.1", + "@mdn/browser-compat-data": "7.1.21", + "@tsconfig/node24": "^24.0.2", + "@types/chokidar": "^2.1.7", + "@types/css-tree": "^2.3.11", + "@types/jest": "^30.0.0", + "@types/jsdom": "^27.0.0", + "@types/node": "^24.10.1", + "@types/prettier": "^3.0.0", + "@types/turndown": "^5.0.6", + "babel-jest": "^30.2.0", + "chalk": "^5.6.2", + "chokidar": "^4.0.3", + "css-tree": "^3.1.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "flow-bin": "^0.291.0", + "jest": "^30.2.0", + "jsdom": "^27.2.0", + "mdn-data": "2.25.0", + "prettier": "^3.6.2", + "release-it": "^19.0.6", + "tsx": "^4.20.6", + "turndown": "^7.2.2", + "typescript": "~5.9.3", + "typescript-eslint": "^8.46.4" + }, + "overrides": { + "js-yaml": ">=4.1.1" + }, + "scripts": { + "prepublish": "npm install --no-save --prefix __tests__ && npm install --no-save --prefix __tests__/__fixtures__", + "release": "release-it", + "update": "tsx update.ts", + "build": "tsx --inspect build.ts --start", + "watch": "tsx build.ts --watch", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx --fix", + "pretty": "prettier --write build.ts **/*.{ts,js,json,md}", + "lazy": "tsc && npm run lint", + "test": "jest --runInBand", + "test:src": "jest src.*.ts", + "test:dist": "jest dist.*.ts --runInBand" + }, + "files": [ + "index.d.ts", + "index.js.flow" + ], + "keywords": [ + "css", + "style", + "typescript", + "flow", + "typings", + "types", + "definitions" + ] +} diff --git a/node_modules/entities/LICENSE b/node_modules/entities/LICENSE new file mode 100644 index 0000000..c464f86 --- /dev/null +++ b/node_modules/entities/LICENSE @@ -0,0 +1,11 @@ +Copyright (c) Felix Böhm +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/entities/decode.d.ts b/node_modules/entities/decode.d.ts new file mode 100644 index 0000000..946342d --- /dev/null +++ b/node_modules/entities/decode.d.ts @@ -0,0 +1,3 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +export * from "./dist/commonjs/decode.js"; diff --git a/node_modules/entities/decode.js b/node_modules/entities/decode.js new file mode 100644 index 0000000..c278895 --- /dev/null +++ b/node_modules/entities/decode.js @@ -0,0 +1,3 @@ +// Make exports work in Node < 12 +// eslint-disable-next-line no-undef, unicorn/prefer-module +module.exports = require("./dist/commonjs/decode.js"); diff --git a/node_modules/entities/dist/commonjs/decode-codepoint.d.ts b/node_modules/entities/dist/commonjs/decode-codepoint.d.ts new file mode 100644 index 0000000..32f77c9 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode-codepoint.d.ts @@ -0,0 +1,19 @@ +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +export declare const fromCodePoint: (...codePoints: number[]) => string; +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +export declare function replaceCodePoint(codePoint: number): number; +/** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ +export declare function decodeCodePoint(codePoint: number): string; +//# sourceMappingURL=decode-codepoint.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map b/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map new file mode 100644 index 0000000..1a26dc4 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-codepoint.d.ts","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,MAgBnD,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode-codepoint.js b/node_modules/entities/dist/commonjs/decode-codepoint.js new file mode 100644 index 0000000..ebb0d90 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode-codepoint.js @@ -0,0 +1,77 @@ +"use strict"; +// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromCodePoint = void 0; +exports.replaceCodePoint = replaceCodePoint; +exports.decodeCodePoint = decodeCodePoint; +const decodeMap = new Map([ + [0, 65533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376], +]); +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +exports.fromCodePoint = +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins +(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : ((codePoint) => { + let output = ""; + if (codePoint > 65535) { + codePoint -= 65536; + output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296); + codePoint = 56320 | (codePoint & 1023); + } + output += String.fromCharCode(codePoint); + return output; +}); +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +function replaceCodePoint(codePoint) { + var _a; + if ((codePoint >= 55296 && codePoint <= 57343) || + codePoint > 1114111) { + return 65533; + } + return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint; +} +/** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ +function decodeCodePoint(codePoint) { + return (0, exports.fromCodePoint)(replaceCodePoint(codePoint)); +} +//# sourceMappingURL=decode-codepoint.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode-codepoint.js.map b/node_modules/entities/dist/commonjs/decode-codepoint.js.map new file mode 100644 index 0000000..5708a32 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode-codepoint.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-codepoint.js","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;;AA4DrH,4CASC;AASD,0CAEC;AA9ED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC,CAAC,EAAE,KAAM,CAAC;IACX,sDAAsD;IACtD,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;CACb,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,aAAa;AACtB,8GAA8G;AAC9G,MAAA,MAAM,CAAC,aAAa,mCACpB,CAAC,CAAC,SAAiB,EAAU,EAAE;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,SAAS,GAAG,KAAO,EAAE,CAAC;QACtB,SAAS,IAAI,KAAS,CAAC;QACvB,MAAM,IAAI,MAAM,CAAC,YAAY,CACzB,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,IAAM,CAAC,GAAG,KAAO,CAC1C,CAAC;QACF,SAAS,GAAG,KAAO,GAAG,CAAC,SAAS,GAAG,IAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,CAAC;AAEP;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,SAAiB;;IAC9C,IACI,CAAC,SAAS,IAAI,KAAO,IAAI,SAAS,IAAI,KAAO,CAAC;QAC9C,SAAS,GAAG,OAAU,EACxB,CAAC;QACC,OAAO,KAAO,CAAC;IACnB,CAAC;IAED,OAAO,MAAA,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,SAAS,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC7C,OAAO,IAAA,qBAAa,EAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode.d.ts b/node_modules/entities/dist/commonjs/decode.d.ts new file mode 100644 index 0000000..a610644 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode.d.ts @@ -0,0 +1,205 @@ +export declare enum DecodingMode { + /** Entities in text nodes that can end with any character. */ + Legacy = 0, + /** Only allow entities terminated with a semicolon. */ + Strict = 1, + /** Entities in attributes have limitations on ending characters. */ + Attribute = 2 +} +/** + * Producers for character reference errors as defined in the HTML spec. + */ +export interface EntityErrorProducer { + missingSemicolonAfterCharacterReference(): void; + absenceOfDigitsInNumericCharacterReference(consumedCharacters: number): void; + validateNumericCharacterReference(code: number): void; +} +/** + * Token decoder with support of writing partial entities. + */ +export declare class EntityDecoder { + /** The tree used to decode entities. */ + private readonly decodeTree; + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + private readonly emitCodePoint; + /** An object that is used to produce errors. */ + private readonly errors?; + constructor( + /** The tree used to decode entities. */ + decodeTree: Uint16Array, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint: (cp: number, consumed: number) => void, + /** An object that is used to produce errors. */ + errors?: EntityErrorProducer | undefined); + /** The current state of the decoder. */ + private state; + /** Characters that were consumed while parsing an entity. */ + private consumed; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + private result; + /** The current index in the decode tree. */ + private treeIndex; + /** The number of characters that were consumed in excess. */ + private excess; + /** The mode in which the decoder is operating. */ + private decodeMode; + /** The number of characters that have been consumed in the current run. */ + private runConsumed; + /** Resets the instance to make it reusable. */ + startEntity(decodeMode: DecodingMode): void; + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + write(input: string, offset: number): number; + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericStart; + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericHex; + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericDecimal; + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + private emitNumericEntity; + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNamedEntity; + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + private emitNotTerminatedNamedEntity; + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + private emitNamedEntityData; + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + end(): number; +} +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +export declare function determineBranch(decodeTree: Uint16Array, current: number, nodeIndex: number, char: number): number; +/** + * Decodes an HTML string. + * + * @param htmlString The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +export declare function decodeHTML(htmlString: string, mode?: DecodingMode): string; +/** + * Decodes an HTML string in an attribute. + * + * @param htmlAttribute The string to decode. + * @returns The decoded string. + */ +export declare function decodeHTMLAttribute(htmlAttribute: string): string; +/** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param htmlString The string to decode. + * @returns The decoded string. + */ +export declare function decodeHTMLStrict(htmlString: string): string; +/** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param xmlString The string to decode. + * @returns The decoded string. + */ +export declare function decodeXML(xmlString: string): string; +export { decodeCodePoint, fromCodePoint, replaceCodePoint, } from "./decode-codepoint.js"; +export { htmlDecodeTree } from "./generated/decode-data-html.js"; +export { xmlDecodeTree } from "./generated/decode-data-xml.js"; +//# sourceMappingURL=decode.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode.d.ts.map b/node_modules/entities/dist/commonjs/decode.d.ts.map new file mode 100644 index 0000000..0cc9765 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"AA4DA,oBAAY,YAAY;IACpB,8DAA8D;IAC9D,MAAM,IAAI;IACV,uDAAuD;IACvD,MAAM,IAAI;IACV,oEAAoE;IACpE,SAAS,IAAI;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,uCAAuC,IAAI,IAAI,CAAC;IAChD,0CAA0C,CACtC,kBAAkB,EAAE,MAAM,GAC3B,IAAI,CAAC;IACR,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,aAAa;IAElB,wCAAwC;IAExC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IAdxB,wCAAwC;IAEvB,UAAU,EAAE,WAAW;IACxC;;;;;;;;OAQG;IACc,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;IACtE,gDAAgD;IAC/B,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS;IAG7D,wCAAwC;IACxC,OAAO,CAAC,KAAK,CAAkC;IAC/C,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAK;IACrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAK;IAEnB,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAK;IACnB,kDAAkD;IAClD,OAAO,CAAC,UAAU,CAAuB;IACzC,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAK;IAExB,+CAA+C;IAC/C,WAAW,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI;IAU3C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8B5C;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAoIxB;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;;OAMG;IACH,GAAG,IAAI,MAAM;CA6BhB;AAoDD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACb,MAAM,CA4CR;AAKD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACtB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAkC,GACzC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,OAAO,EACH,eAAe,EACf,aAAa,EACb,gBAAgB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode.js b/node_modules/entities/dist/commonjs/decode.js new file mode 100644 index 0000000..771ab7d --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode.js @@ -0,0 +1,568 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.xmlDecodeTree = exports.htmlDecodeTree = exports.replaceCodePoint = exports.fromCodePoint = exports.decodeCodePoint = exports.EntityDecoder = exports.DecodingMode = void 0; +exports.determineBranch = determineBranch; +exports.decodeHTML = decodeHTML; +exports.decodeHTMLAttribute = decodeHTMLAttribute; +exports.decodeHTMLStrict = decodeHTMLStrict; +exports.decodeXML = decodeXML; +const decode_codepoint_js_1 = require("./decode-codepoint.js"); +const decode_data_html_js_1 = require("./generated/decode-data-html.js"); +const decode_data_xml_js_1 = require("./generated/decode-data-xml.js"); +const bin_trie_flags_js_1 = require("./internal/bin-trie-flags.js"); +var CharCodes; +(function (CharCodes) { + CharCodes[CharCodes["NUM"] = 35] = "NUM"; + CharCodes[CharCodes["SEMI"] = 59] = "SEMI"; + CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS"; + CharCodes[CharCodes["ZERO"] = 48] = "ZERO"; + CharCodes[CharCodes["NINE"] = 57] = "NINE"; + CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A"; + CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F"; + CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X"; + CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A"; + CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F"; + CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z"; +})(CharCodes || (CharCodes = {})); +/** Bit that needs to be set to convert an upper case ASCII character to lower case */ +const TO_LOWER_BIT = 32; +function isNumber(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; +} +function isHexadecimalCharacter(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)); +} +function isAsciiAlphaNumeric(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) || + isNumber(code)); +} +/** + * Checks if the given character is a valid end character for an entity in an attribute. + * + * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error. + * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state + */ +function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); +} +var EntityDecoderState; +(function (EntityDecoderState) { + EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity"; +})(EntityDecoderState || (EntityDecoderState = {})); +var DecodingMode; +(function (DecodingMode) { + /** Entities in text nodes that can end with any character. */ + DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy"; + /** Only allow entities terminated with a semicolon. */ + DecodingMode[DecodingMode["Strict"] = 1] = "Strict"; + /** Entities in attributes have limitations on ending characters. */ + DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute"; +})(DecodingMode || (exports.DecodingMode = DecodingMode = {})); +/** + * Token decoder with support of writing partial entities. + */ +class EntityDecoder { + constructor( + /** The tree used to decode entities. */ + // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive + decodeTree, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint, + /** An object that is used to produce errors. */ + errors) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors; + /** The current state of the decoder. */ + this.state = EntityDecoderState.EntityStart; + /** Characters that were consumed while parsing an entity. */ + this.consumed = 1; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + this.result = 0; + /** The current index in the decode tree. */ + this.treeIndex = 0; + /** The number of characters that were consumed in excess. */ + this.excess = 1; + /** The mode in which the decoder is operating. */ + this.decodeMode = DecodingMode.Strict; + /** The number of characters that have been consumed in the current run. */ + this.runConsumed = 0; + } + /** Resets the instance to make it reusable. */ + startEntity(decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + this.runConsumed = 0; + } + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + write(input, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (input.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(input, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(input, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(input, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(input, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(input, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(input, offset); + } + } + } + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericStart(input, offset) { + if (offset >= input.length) { + return -1; + } + if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(input, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(input, offset); + } + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericHex(input, offset) { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + // Convert hex digit to value (0-15); 'a'/'A' -> 10. + const digit = char <= CharCodes.NINE + ? char - CharCodes.ZERO + : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10; + this.result = this.result * 16 + digit; + this.consumed++; + offset++; + } + else { + return this.emitNumericEntity(char, 3); + } + } + return -1; // Incomplete entity + } + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericDecimal(input, offset) { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber(char)) { + this.result = this.result * 10 + (char - CharCodes.ZERO); + this.consumed++; + offset++; + } + else { + return this.emitNumericEntity(char, 2); + } + } + return -1; // Incomplete entity + } + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + emitNumericEntity(lastCp, expectedLength) { + var _a; + // Ensure we consumed at least one digit. + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + // Figure out if this is a legit end of the entity + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } + else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + } + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNamedEntity(input, offset) { + const { decodeTree } = this; + let current = decodeTree[this.treeIndex]; + // The length is the number of bytes of the value, including the current byte. + let valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14; + while (offset < input.length) { + // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set. + if (valueLength === 0 && (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) { + const runLength = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */ + // If we are starting a run, check the first char. + if (this.runConsumed === 0) { + const firstChar = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE; + if (input.charCodeAt(offset) !== firstChar) { + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + // Check remaining characters in the run. + while (this.runConsumed < runLength) { + if (offset >= input.length) { + return -1; + } + const charIndexInPacked = this.runConsumed - 1; + const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)]; + const expectedChar = charIndexInPacked % 2 === 0 + ? packedWord & 0xff + : (packedWord >> 8) & 0xff; + if (input.charCodeAt(offset) !== expectedChar) { + this.runConsumed = 0; + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + this.runConsumed = 0; + this.treeIndex += 1 + (runLength >> 1); + current = decodeTree[this.treeIndex]; + valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14; + } + if (offset >= input.length) + break; + const char = input.charCodeAt(offset); + /* + * Implicit semicolon handling for nodes that require a semicolon but + * don't have an explicit ';' branch stored in the trie. If we have + * a value on the current node, it requires a semicolon, and the + * current input character is a semicolon, emit the entity using the + * current node (without descending further). + */ + if (char === CharCodes.SEMI && + valueLength !== 0 && + (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || + // If we are parsing an attribute + (this.decodeMode === DecodingMode.Attribute && + // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || + // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char))) + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + current = decodeTree[this.treeIndex]; + valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14; + // If the branch is a value, store it and continue + if (valueLength !== 0) { + // If the entity is terminated by a semicolon, we are done. + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it. + if (this.decodeMode !== DecodingMode.Strict && + (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) === 0) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + // Increment offset & excess for next iteration + offset++; + this.excess++; + } + return -1; + } + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + emitNotTerminatedNamedEntity() { + var _a; + const { result, decodeTree } = this; + const valueLength = (decodeTree[result] & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + } + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + emitNamedEntityData(result, valueLength, consumed) { + const { decodeTree } = this; + this.emitCodePoint(valueLength === 1 + ? decodeTree[result] & + ~(bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH | bin_trie_flags_js_1.BinTrieFlags.FLAG13) + : decodeTree[result + 1], consumed); + if (valueLength === 3) { + // For multi-byte values, we need to emit the second byte. + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + } + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + end() { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + // Emit a named entity if we have one. + return this.result !== 0 && + (this.decodeMode !== DecodingMode.Attribute || + this.result === this.treeIndex) + ? this.emitNotTerminatedNamedEntity() + : 0; + } + // Otherwise, emit a numeric entity if we have one. + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + // Return 0 if we have no entity. + return 0; + } + } + } +} +exports.EntityDecoder = EntityDecoder; +/** + * Creates a function that decodes entities in a string. + * + * @param decodeTree The decode tree. + * @returns A function that decodes entities in a string. + */ +function getDecoder(decodeTree) { + let returnValue = ""; + const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += (0, decode_codepoint_js_1.fromCodePoint)(data))); + return function decodeWithTrie(input, decodeMode) { + let lastIndex = 0; + let offset = 0; + while ((offset = input.indexOf("&", offset)) >= 0) { + returnValue += input.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + const length = decoder.write(input, + // Skip the "&" + offset + 1); + if (length < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + length; + // If `length` is 0, skip the current `&` and continue. + offset = length === 0 ? lastIndex + 1 : lastIndex; + } + const result = returnValue + input.slice(lastIndex); + // Make sure we don't keep a reference to the final string. + returnValue = ""; + return result; + }; +} +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +function determineBranch(decodeTree, current, nodeIndex, char) { + const branchCount = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7; + const jumpOffset = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE; + // Case 1: Single branch encoded in jump offset + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1; + } + // Case 2: Multiple branches encoded in jump table + if (jumpOffset) { + const value = char - jumpOffset; + return value < 0 || value >= branchCount + ? -1 + : decodeTree[nodeIndex + value] - 1; + } + // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16) + const packedKeySlots = (branchCount + 1) >> 1; + /* + * Treat packed keys as a virtual sorted array of length `branchCount`. + * Key(i) = low byte for even i, high byte for odd i in slot i>>1. + */ + let lo = 0; + let hi = branchCount - 1; + while (lo <= hi) { + const mid = (lo + hi) >>> 1; + const slot = mid >> 1; + const packed = decodeTree[nodeIndex + slot]; + const midKey = (packed >> ((mid & 1) * 8)) & 0xff; + if (midKey < char) { + lo = mid + 1; + } + else if (midKey > char) { + hi = mid - 1; + } + else { + return decodeTree[nodeIndex + packedKeySlots + mid]; + } + } + return -1; +} +const htmlDecoder = /* #__PURE__ */ getDecoder(decode_data_html_js_1.htmlDecodeTree); +const xmlDecoder = /* #__PURE__ */ getDecoder(decode_data_xml_js_1.xmlDecodeTree); +/** + * Decodes an HTML string. + * + * @param htmlString The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +function decodeHTML(htmlString, mode = DecodingMode.Legacy) { + return htmlDecoder(htmlString, mode); +} +/** + * Decodes an HTML string in an attribute. + * + * @param htmlAttribute The string to decode. + * @returns The decoded string. + */ +function decodeHTMLAttribute(htmlAttribute) { + return htmlDecoder(htmlAttribute, DecodingMode.Attribute); +} +/** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param htmlString The string to decode. + * @returns The decoded string. + */ +function decodeHTMLStrict(htmlString) { + return htmlDecoder(htmlString, DecodingMode.Strict); +} +/** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param xmlString The string to decode. + * @returns The decoded string. + */ +function decodeXML(xmlString) { + return xmlDecoder(xmlString, DecodingMode.Strict); +} +var decode_codepoint_js_2 = require("./decode-codepoint.js"); +Object.defineProperty(exports, "decodeCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.decodeCodePoint; } }); +Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } }); +Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } }); +// Re-export for use by eg. htmlparser2 +var decode_data_html_js_2 = require("./generated/decode-data-html.js"); +Object.defineProperty(exports, "htmlDecodeTree", { enumerable: true, get: function () { return decode_data_html_js_2.htmlDecodeTree; } }); +var decode_data_xml_js_2 = require("./generated/decode-data-xml.js"); +Object.defineProperty(exports, "xmlDecodeTree", { enumerable: true, get: function () { return decode_data_xml_js_2.xmlDecodeTree; } }); +//# sourceMappingURL=decode.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/decode.js.map b/node_modules/entities/dist/commonjs/decode.js.map new file mode 100644 index 0000000..6a73b45 --- /dev/null +++ b/node_modules/entities/dist/commonjs/decode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":";;;AAmkBA,0CAiDC;AAYD,gCAKC;AAQD,kDAEC;AAQD,4CAEC;AAQD,8BAEC;AAnqBD,+DAAwE;AACxE,yEAAiE;AACjE,uEAA+D;AAC/D,oEAA4D;AAE5D,IAAW,SAaV;AAbD,WAAW,SAAS;IAChB,wCAAQ,CAAA;IACR,0CAAS,CAAA;IACT,8CAAW,CAAA;IACX,0CAAS,CAAA;IACT,0CAAS,CAAA;IACT,gDAAY,CAAA;IACZ,iDAAa,CAAA;IACb,iDAAa,CAAA;IACb,iDAAa,CAAA;IACb,gDAAY,CAAA;IACZ,gDAAY,CAAA;IACZ,gDAAY,CAAA;AAChB,CAAC,EAbU,SAAS,KAAT,SAAS,QAanB;AAED,sFAAsF;AACtF,MAAM,YAAY,GAAG,EAAS,CAAC;AAE/B,SAAS,QAAQ,CAAC,IAAY;IAC1B,OAAO,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IACxC,OAAO,CACH,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QACxD,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,CAC3D,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,CACH,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QACxD,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,CACjB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAAC,IAAY;IAC/C,OAAO,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,IAAW,kBAMV;AAND,WAAW,kBAAkB;IACzB,yEAAW,CAAA;IACX,2EAAY,CAAA;IACZ,+EAAc,CAAA;IACd,uEAAU,CAAA;IACV,yEAAW,CAAA;AACf,CAAC,EANU,kBAAkB,KAAlB,kBAAkB,QAM5B;AAED,IAAY,YAOX;AAPD,WAAY,YAAY;IACpB,8DAA8D;IAC9D,mDAAU,CAAA;IACV,uDAAuD;IACvD,mDAAU,CAAA;IACV,oEAAoE;IACpE,yDAAa,CAAA;AACjB,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AAaD;;GAEG;AACH,MAAa,aAAa;IACtB;IACI,wCAAwC;IACxC,4EAA4E;IAC3D,UAAuB;IACxC;;;;;;;;OAQG;IACc,aAAqD;IACtE,gDAAgD;IAC/B,MAAwC;QAZxC,eAAU,GAAV,UAAU,CAAa;QAUvB,kBAAa,GAAb,aAAa,CAAwC;QAErD,WAAM,GAAN,MAAM,CAAkC;QAG7D,wCAAwC;QAChC,UAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC;QAC/C,6DAA6D;QACrD,aAAQ,GAAG,CAAC,CAAC;QACrB;;;;;WAKG;QACK,WAAM,GAAG,CAAC,CAAC;QAEnB,4CAA4C;QACpC,cAAS,GAAG,CAAC,CAAC;QACtB,6DAA6D;QACrD,WAAM,GAAG,CAAC,CAAC;QACnB,kDAAkD;QAC1C,eAAU,GAAG,YAAY,CAAC,MAAM,CAAC;QACzC,2EAA2E;QACnE,gBAAW,GAAG,CAAC,CAAC;IArBrB,CAAC;IAuBJ,+CAA+C;IAC/C,WAAW,CAAC,UAAwB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAa,EAAE,MAAc;QAC/B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;oBAC7C,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC;oBAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC;gBAC5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YAED,KAAK,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjD,CAAC;YAED,KAAK,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;YAED,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;YAED,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CAAC,KAAa,EAAE,MAAc;QACnD,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAClE,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC;YAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC;QAC/C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CAAC,KAAa,EAAE,MAAc;QACjD,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,oDAAoD;gBACpD,MAAM,KAAK,GACP,IAAI,IAAI,SAAS,CAAC,IAAI;oBAClB,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;oBACvB,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACnC,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CAAC,KAAa,EAAE,MAAc;QACrD,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,iBAAiB,CAAC,MAAc,EAAE,cAAsB;;QAC5D,yCAAyC;QACzC,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;YAClC,MAAA,IAAI,CAAC,MAAM,0CAAE,0CAA0C,CACnD,IAAI,CAAC,QAAQ,CAChB,CAAC;YACF,OAAO,CAAC,CAAC;QACb,CAAC;QAED,kDAAkD;QAClD,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAA,sCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,uCAAuC,EAAE,CAAC;YAC1D,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CAAC,KAAa,EAAE,MAAc;QAClD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,8EAA8E;QAC9E,IAAI,WAAW,GAAG,CAAC,OAAO,GAAG,gCAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAE9D,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,qFAAqF;YACrF,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,gCAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,SAAS,GACX,CAAC,OAAO,GAAG,gCAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;gBAE5D,kDAAkD;gBAClD,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,OAAO,GAAG,gCAAY,CAAC,UAAU,CAAC;oBACpD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;wBACzC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;4BACpB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;oBAC9C,CAAC;oBACD,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC;gBAED,yCAAyC;gBACzC,OAAO,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC;oBAClC,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACzB,OAAO,CAAC,CAAC,CAAC;oBACd,CAAC;oBAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBAC/C,MAAM,UAAU,GACZ,UAAU,CACN,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAChD,CAAC;oBACN,MAAM,YAAY,GACd,iBAAiB,GAAG,CAAC,KAAK,CAAC;wBACvB,CAAC,CAAC,UAAU,GAAG,IAAI;wBACnB,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;oBAEnC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,YAAY,EAAE,CAAC;wBAC5C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;4BACpB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;oBAC9C,CAAC;oBACD,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC;gBAED,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;gBACvC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,WAAW,GAAG,CAAC,OAAO,GAAG,gCAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC9D,CAAC;YAED,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM;YAElC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEtC;;;;;;eAMG;YACH,IACI,IAAI,KAAK,SAAS,CAAC,IAAI;gBACvB,WAAW,KAAK,CAAC;gBACjB,CAAC,OAAO,GAAG,gCAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,CAAC;gBACC,OAAO,IAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,SAAS,EACd,WAAW,EACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC;YACN,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,eAAe,CAC5B,UAAU,EACV,OAAO,EACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EACzC,IAAI,CACP,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;oBACpB,iCAAiC;oBACjC,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,SAAS;wBACvC,8DAA8D;wBAC9D,CAAC,WAAW,KAAK,CAAC;4BACd,6CAA6C;4BAC7C,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC9C,CAAC;YAED,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,WAAW,GAAG,CAAC,OAAO,GAAG,gCAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAE1D,kDAAkD;YAClD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACpB,2DAA2D;gBAC3D,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,SAAS,EACd,WAAW,EACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC;gBACN,CAAC;gBAED,2FAA2F;gBAC3F,IACI,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,MAAM;oBACvC,CAAC,OAAO,GAAG,gCAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,CAAC;oBACC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC7B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;oBAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,CAAC;YACL,CAAC;YACD,+CAA+C;YAC/C,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,4BAA4B;;QAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEpC,MAAM,WAAW,GACb,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,gCAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAE3D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAA,IAAI,CAAC,MAAM,0CAAE,uCAAuC,EAAE,CAAC;QAEvD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CACvB,MAAc,EACd,WAAmB,EACnB,QAAgB;QAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,aAAa,CACd,WAAW,KAAK,CAAC;YACb,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;gBACd,CAAC,CAAC,gCAAY,CAAC,YAAY,GAAG,gCAAY,CAAC,MAAM,CAAC;YACxD,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAC5B,QAAQ,CACX,CAAC;QACF,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACpB,0DAA0D;YAC1D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,GAAG;;QACC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,sCAAsC;gBACtC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;oBACpB,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,SAAS;wBACvC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE;oBACrC,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,mDAAmD;YACnD,KAAK,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnC,MAAA,IAAI,CAAC,MAAM,0CAAE,0CAA0C,CACnD,IAAI,CAAC,QAAQ,CAChB,CAAC;gBACF,OAAO,CAAC,CAAC;YACb,CAAC;YACD,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,iCAAiC;gBACjC,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAlbD,sCAkbC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,UAAuB;IACvC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,aAAa,CAC7B,UAAU,EACV,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,IAAA,mCAAa,EAAC,IAAI,CAAC,CAAC,CACjD,CAAC;IAEF,OAAO,SAAS,cAAc,CAC1B,KAAa,EACb,UAAwB;QAExB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAE9C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CACxB,KAAK;YACL,eAAe;YACf,MAAM,GAAG,CAAC,CACb,CAAC;YAEF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACb,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM;YACV,CAAC;YAED,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;YAC5B,uDAAuD;YACvD,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEpD,2DAA2D;QAC3D,WAAW,GAAG,EAAE,CAAC;QAEjB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAC3B,UAAuB,EACvB,OAAe,EACf,SAAiB,EACjB,IAAY;IAEZ,MAAM,WAAW,GAAG,CAAC,OAAO,GAAG,gCAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,GAAG,gCAAY,CAAC,UAAU,CAAC;IAErD,+CAA+C;IAC/C,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC;QAEhC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,WAAW;YACpC,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,+EAA+E;IAC/E,MAAM,cAAc,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC;IAEzB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAElD,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YAChB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YACvB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACJ,OAAO,UAAU,CAAC,SAAS,GAAG,cAAc,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACd,CAAC;AAED,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,oCAAc,CAAC,CAAC;AAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,kCAAa,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,SAAgB,UAAU,CACtB,UAAkB,EAClB,OAAqB,YAAY,CAAC,MAAM;IAExC,OAAO,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,aAAqB;IACrD,OAAO,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,UAAkB;IAC/C,OAAO,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,SAAiB;IACvC,OAAO,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,6DAI+B;AAH3B,sHAAA,eAAe,OAAA;AACf,oHAAA,aAAa,OAAA;AACb,uHAAA,gBAAgB,OAAA;AAEpB,uCAAuC;AACvC,uEAAiE;AAAxD,qHAAA,cAAc,OAAA;AACvB,qEAA+D;AAAtD,mHAAA,aAAa,OAAA"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/encode.d.ts b/node_modules/entities/dist/commonjs/encode.d.ts new file mode 100644 index 0000000..e110bea --- /dev/null +++ b/node_modules/entities/dist/commonjs/encode.d.ts @@ -0,0 +1,22 @@ +/** + * Encodes all characters in the input using HTML entities. This includes + * characters that are valid ASCII characters in HTML documents, such as `#`. + * + * To get a more compact output, consider using the `encodeNonAsciiHTML` + * function, which will only encode characters that are not valid in HTML + * documents, as well as non-ASCII characters. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export declare function encodeHTML(input: string): string; +/** + * Encodes all non-ASCII characters, as well as characters not valid in HTML + * documents using HTML entities. This function will not encode characters that + * are valid in HTML documents, such as `#`. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export declare function encodeNonAsciiHTML(input: string): string; +//# sourceMappingURL=encode.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/encode.d.ts.map b/node_modules/entities/dist/commonjs/encode.d.ts.map new file mode 100644 index 0000000..1a43ec3 --- /dev/null +++ b/node_modules/entities/dist/commonjs/encode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AACD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/encode.js b/node_modules/entities/dist/commonjs/encode.js new file mode 100644 index 0000000..c903548 --- /dev/null +++ b/node_modules/entities/dist/commonjs/encode.js @@ -0,0 +1,92 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.encodeHTML = encodeHTML; +exports.encodeNonAsciiHTML = encodeNonAsciiHTML; +const escape_js_1 = require("./escape.js"); +const encode_html_js_1 = require("./generated/encode-html.js"); +/** + * We store the characters to consider as a compact bitset for fast lookups. + */ +const HTML_BITSET = /* #__PURE__ */ new Uint32Array([ + 5632, // Bits for 09,0A,0C + 4227923966, // 32..63 -> 21-2D (minus space), 2E,2F,3A-3F + 4160749569, // 64..95 -> 40, 5B-5F + 939524097, // 96..127-> 60, 7B-7D +]); +const XML_BITSET = /* #__PURE__ */ new Uint32Array([0, escape_js_1.XML_BITSET_VALUE, 0, 0]); +/** + * Encodes all characters in the input using HTML entities. This includes + * characters that are valid ASCII characters in HTML documents, such as `#`. + * + * To get a more compact output, consider using the `encodeNonAsciiHTML` + * function, which will only encode characters that are not valid in HTML + * documents, as well as non-ASCII characters. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +function encodeHTML(input) { + return encodeHTMLTrieRe(HTML_BITSET, input); +} +/** + * Encodes all non-ASCII characters, as well as characters not valid in HTML + * documents using HTML entities. This function will not encode characters that + * are valid in HTML documents, such as `#`. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +function encodeNonAsciiHTML(input) { + return encodeHTMLTrieRe(XML_BITSET, input); +} +function encodeHTMLTrieRe(bitset, input) { + let out; + let last = 0; // Start of the next untouched slice. + const { length } = input; + for (let index = 0; index < length; index++) { + const char = input.charCodeAt(index); + // Skip ASCII characters that don't need encoding + if (char < 0x80 && !((bitset[char >>> 5] >>> char) & 1)) { + continue; + } + if (out === undefined) + out = input.substring(0, index); + else if (last !== index) + out += input.substring(last, index); + let node = encode_html_js_1.htmlTrie.get(char); + if (typeof node === "object") { + if (index + 1 < length) { + const nextChar = input.charCodeAt(index + 1); + const value = typeof node.next === "number" + ? node.next === nextChar + ? node.nextValue + : undefined + : node.next.get(nextChar); + if (value !== undefined) { + out += value; + index++; + last = index + 1; + continue; + } + } + node = node.value; + } + if (node === undefined) { + const cp = (0, escape_js_1.getCodePoint)(input, index); + out += `&#x${cp.toString(16)};`; + if (cp !== char) + index++; + last = index + 1; + } + else { + out += node; + last = index + 1; + } + } + if (out === undefined) + return input; + if (last < length) + out += input.substr(last); + return out; +} +//# sourceMappingURL=encode.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/encode.js.map b/node_modules/entities/dist/commonjs/encode.js.map new file mode 100644 index 0000000..57b8df5 --- /dev/null +++ b/node_modules/entities/dist/commonjs/encode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":";;AA0BA,gCAEC;AASD,gDAEC;AAvCD,2CAA6D;AAC7D,+DAAsD;AAEtD;;GAEG;AACH,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,WAAW,CAAC;IAChD,IAAO,EAAE,oBAAoB;IAC7B,UAAa,EAAE,6CAA6C;IAC5D,UAAa,EAAE,sBAAsB;IACrC,SAAa,EAAE,sBAAsB;CACxC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,4BAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,KAAa;IACpC,OAAO,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AACD;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC5C,OAAO,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB,EAAE,KAAa;IACxD,IAAI,GAAuB,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,qCAAqC;IACnD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,iDAAiD;QACjD,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,SAAS;QACb,CAAC;QAED,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAClD,IAAI,IAAI,KAAK,KAAK;YAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,IAAI,GAAG,yBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,KAAK,GACP,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBACzB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;wBACpB,CAAC,CAAC,IAAI,CAAC,SAAS;wBAChB,CAAC,CAAC,SAAS;oBACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,GAAG,IAAI,KAAK,CAAC;oBACb,KAAK,EAAE,CAAC;oBACR,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;oBACjB,SAAS;gBACb,CAAC;YACL,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,IAAA,wBAAY,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,GAAG,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;YAChC,IAAI,EAAE,KAAK,IAAI;gBAAE,KAAK,EAAE,CAAC;YACzB,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,GAAG,IAAI,IAAI,CAAC;YACZ,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM;QAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/escape.d.ts b/node_modules/entities/dist/commonjs/escape.d.ts new file mode 100644 index 0000000..5b99fdb --- /dev/null +++ b/node_modules/entities/dist/commonjs/escape.d.ts @@ -0,0 +1,46 @@ +export declare const getCodePoint: (c: string, index: number) => number; +/** + * Bitset for ASCII characters that need to be escaped in XML. + */ +export declare const XML_BITSET_VALUE = 1342177476; +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using XML entities. Uses a fast bitset scan instead of RegExp. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export declare function encodeXML(input: string): string; +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using numeric hexadecimal reference (eg. `ü`). + * + * Have a look at `escapeUTF8` if you want a more concise output at the expense + * of reduced transportability. + * + * @param data String to escape. + */ +export declare const escape: typeof encodeXML; +/** + * Encodes all characters not valid in XML documents using XML entities. + * + * Note that the output will be character-set dependent. + * + * @param data String to escape. + */ +export declare const escapeUTF8: (data: string) => string; +/** + * Encodes all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export declare const escapeAttribute: (data: string) => string; +/** + * Encodes all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export declare const escapeText: (data: string) => string; +//# sourceMappingURL=escape.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/escape.d.ts.map b/node_modules/entities/dist/commonjs/escape.d.ts.map new file mode 100644 index 0000000..e2ee8d0 --- /dev/null +++ b/node_modules/entities/dist/commonjs/escape.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAWoB,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoC/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,SAAqB,CAAC;AAqClD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAG1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAQ3C,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAQ1C,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/escape.js b/node_modules/entities/dist/commonjs/escape.js new file mode 100644 index 0000000..a6b4324 --- /dev/null +++ b/node_modules/entities/dist/commonjs/escape.js @@ -0,0 +1,138 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.XML_BITSET_VALUE = exports.getCodePoint = void 0; +exports.encodeXML = encodeXML; +const xmlCodeMap = new Map([ + [34, """], + [38, "&"], + [39, "'"], + [60, "<"], + [62, ">"], +]); +// For compatibility with node < 4, we wrap `codePointAt` +exports.getCodePoint = +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition +String.prototype.codePointAt == null + ? (c, index) => (c.charCodeAt(index) & 64512) === 55296 + ? (c.charCodeAt(index) - 55296) * 1024 + + c.charCodeAt(index + 1) - + 56320 + + 65536 + : c.charCodeAt(index) + : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + (input, index) => input.codePointAt(index); +/** + * Bitset for ASCII characters that need to be escaped in XML. + */ +exports.XML_BITSET_VALUE = 1342177476; // 32..63 -> 34 ("),38 (&),39 ('),60 (<),62 (>) +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using XML entities. Uses a fast bitset scan instead of RegExp. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +function encodeXML(input) { + let out; + let last = 0; + const { length } = input; + for (let index = 0; index < length; index++) { + const char = input.charCodeAt(index); + // Check for ASCII chars that don't need escaping + if (char < 0x80 && + (((exports.XML_BITSET_VALUE >>> char) & 1) === 0 || char >= 64 || char < 32)) { + continue; + } + if (out === undefined) + out = input.substring(0, index); + else if (last !== index) + out += input.substring(last, index); + if (char < 64) { + // Known replacement + out += xmlCodeMap.get(char); + last = index + 1; + continue; + } + // Non-ASCII: encode as numeric entity (handle surrogate pair) + const cp = (0, exports.getCodePoint)(input, index); + out += `&#x${cp.toString(16)};`; + if (cp !== char) + index++; // Skip trailing surrogate + last = index + 1; + } + if (out === undefined) + return input; + if (last < length) + out += input.substr(last); + return out; +} +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using numeric hexadecimal reference (eg. `ü`). + * + * Have a look at `escapeUTF8` if you want a more concise output at the expense + * of reduced transportability. + * + * @param data String to escape. + */ +exports.escape = encodeXML; +/** + * Creates a function that escapes all characters matched by the given regular + * expression using the given map of characters to escape to their entities. + * + * @param regex Regular expression to match characters to escape. + * @param map Map of characters to escape to their entities. + * + * @returns Function that escapes all characters matched by the given regular + * expression using the given map of characters to escape to their entities. + */ +function getEscaper(regex, map) { + return function escape(data) { + let match; + let lastIndex = 0; + let result = ""; + while ((match = regex.exec(data))) { + if (lastIndex !== match.index) { + result += data.substring(lastIndex, match.index); + } + // We know that this character will be in the map. + result += map.get(match[0].charCodeAt(0)); + // Every match will be of length 1 + lastIndex = match.index + 1; + } + return result + data.substring(lastIndex); + }; +} +/** + * Encodes all characters not valid in XML documents using XML entities. + * + * Note that the output will be character-set dependent. + * + * @param data String to escape. + */ +exports.escapeUTF8 = getEscaper(/["&'<>]/g, xmlCodeMap); +/** + * Encodes all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +exports.escapeAttribute = +/* #__PURE__ */ getEscaper(/["&\u00A0]/g, new Map([ + [34, """], + [38, "&"], + [160, " "], +])); +/** + * Encodes all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +exports.escapeText = getEscaper(/[&<>\u00A0]/g, new Map([ + [38, "&"], + [60, "<"], + [62, ">"], + [160, " "], +])); +//# sourceMappingURL=escape.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/escape.js.map b/node_modules/entities/dist/commonjs/escape.js.map new file mode 100644 index 0000000..abf44fd --- /dev/null +++ b/node_modules/entities/dist/commonjs/escape.js.map @@ -0,0 +1 @@ +{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":";;;AAkCA,8BAoCC;AAtED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACvB,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,EAAE,OAAO,CAAC;IACb,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,yDAAyD;AAC5C,QAAA,YAAY;AACrB,uEAAuE;AACvE,MAAM,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI;IAChC,CAAC,CAAC,CAAC,CAAS,EAAE,KAAa,EAAU,EAAE,CACjC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAO,CAAC,KAAK,KAAO;QACvC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAO,CAAC,GAAG,IAAM;YACxC,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;YACvB,KAAO;YACP,KAAS;QACX,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,uEAAuE;QACvE,CAAC,KAAa,EAAE,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC;AAE9E;;GAEG;AACU,QAAA,gBAAgB,GAAG,UAAa,CAAC,CAAC,+CAA+C;AAE9F;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,KAAa;IACnC,IAAI,GAAuB,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAErC,iDAAiD;QACjD,IACI,IAAI,GAAG,IAAI;YACX,CAAC,CAAC,CAAC,wBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,EACtE,CAAC;YACC,SAAS;QACb,CAAC;QAED,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAClD,IAAI,IAAI,KAAK,KAAK;YAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;YACZ,oBAAoB;YACpB,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;YACjB,SAAS;QACb,CAAC;QAED,8DAA8D;QAC9D,MAAM,EAAE,GAAG,IAAA,oBAAY,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,GAAG,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;QAChC,IAAI,EAAE,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC,CAAC,0BAA0B;QACpD,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM;QAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACU,QAAA,MAAM,GAAqB,SAAS,CAAC;AAElD;;;;;;;;;GASG;AACH,SAAS,UAAU,CACf,KAAa,EACb,GAAwB;IAExB,OAAO,SAAS,MAAM,CAAC,IAAY;QAC/B,IAAI,KAA6B,CAAC;QAClC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,kDAAkD;YAClD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAC;YAE3C,kCAAkC;YAClC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACU,QAAA,UAAU,GAA6C,UAAU,CAC1E,UAAU,EACV,UAAU,CACb,CAAC;AAEF;;;;;GAKG;AACU,QAAA,eAAe;AACxB,eAAe,CAAC,UAAU,CACtB,aAAa,EACb,IAAI,GAAG,CAAC;IACJ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,EAAE,OAAO,CAAC;IACb,CAAC,GAAG,EAAE,QAAQ,CAAC;CAClB,CAAC,CACL,CAAC;AAEN;;;;;GAKG;AACU,QAAA,UAAU,GAA6C,UAAU,CAC1E,cAAc,EACd,IAAI,GAAG,CAAC;IACJ,CAAC,EAAE,EAAE,OAAO,CAAC;IACb,CAAC,EAAE,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,QAAQ,CAAC;CAClB,CAAC,CACL,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts b/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts new file mode 100644 index 0000000..cd09535 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts @@ -0,0 +1,2 @@ +export declare const htmlDecodeTree: Uint16Array; +//# sourceMappingURL=decode-data-html.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map b/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map new file mode 100644 index 0000000..87a6dcc --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-html.d.ts","sourceRoot":"","sources":["../../../src/generated/decode-data-html.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,EAAE,WAE5B,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-html.js b/node_modules/entities/dist/commonjs/generated/decode-data-html.js new file mode 100644 index 0000000..c02d503 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-html.js @@ -0,0 +1,7 @@ +"use strict"; +// Generated using scripts/write-decode-map.ts +Object.defineProperty(exports, "__esModule", { value: true }); +exports.htmlDecodeTree = void 0; +const decode_shared_js_1 = require("../internal/decode-shared.js"); +exports.htmlDecodeTree = (0, decode_shared_js_1.decodeBase64)("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg"); +//# sourceMappingURL=decode-data-html.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map b/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map new file mode 100644 index 0000000..ad8de53 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-html.js","sourceRoot":"","sources":["../../../src/generated/decode-data-html.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,mEAA4D;AAC/C,QAAA,cAAc,GAAgC,IAAA,+BAAY,EACnE,08+BAA08+B,CAC78+B,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts b/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts new file mode 100644 index 0000000..6467acc --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts @@ -0,0 +1,2 @@ +export declare const xmlDecodeTree: Uint16Array; +//# sourceMappingURL=decode-data-xml.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map b/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map new file mode 100644 index 0000000..01c5240 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-xml.d.ts","sourceRoot":"","sources":["../../../src/generated/decode-data-xml.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,EAAE,WAE3B,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-xml.js b/node_modules/entities/dist/commonjs/generated/decode-data-xml.js new file mode 100644 index 0000000..9edfb90 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-xml.js @@ -0,0 +1,7 @@ +"use strict"; +// Generated using scripts/write-decode-map.ts +Object.defineProperty(exports, "__esModule", { value: true }); +exports.xmlDecodeTree = void 0; +const decode_shared_js_1 = require("../internal/decode-shared.js"); +exports.xmlDecodeTree = (0, decode_shared_js_1.decodeBase64)("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg"); +//# sourceMappingURL=decode-data-xml.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map b/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map new file mode 100644 index 0000000..f5e0bed --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-xml.js","sourceRoot":"","sources":["../../../src/generated/decode-data-xml.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,mEAA4D;AAC/C,QAAA,aAAa,GAAgC,IAAA,+BAAY,EAClE,kEAAkE,CACrE,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/encode-html.d.ts b/node_modules/entities/dist/commonjs/generated/encode-html.d.ts new file mode 100644 index 0000000..c593a76 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/encode-html.d.ts @@ -0,0 +1,3 @@ +import { type EncodeTrieNode } from "../internal/encode-shared.js"; +export declare const htmlTrie: Map<number, EncodeTrieNode>; +//# sourceMappingURL=encode-html.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map b/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map new file mode 100644 index 0000000..0755691 --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-html.d.ts","sourceRoot":"","sources":["../../../src/generated/encode-html.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,cAAc,EAEtB,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAG5C,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/encode-html.js b/node_modules/entities/dist/commonjs/generated/encode-html.js new file mode 100644 index 0000000..b5dedfc --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/encode-html.js @@ -0,0 +1,14 @@ +"use strict"; +// Generated using scripts/write-encode-map.ts +// This file contains a compact, single-string serialization of the HTML encode trie. +// Format per entry (sequence in ascending code point order using diff encoding): +// <diffBase36>[&name;][{<children>}] -- diff omitted when 0. +// "&name;" gives the entity value for the node. A following { starts a nested sub-map. +// Diffs use the same scheme as before: diff = currentKey - previousKey - 1, first entry stores key. +Object.defineProperty(exports, "__esModule", { value: true }); +exports.htmlTrie = void 0; +const encode_shared_js_1 = require("../internal/encode-shared.js"); +// Compact serialized trie (intended to stay small & JS engine friendly) +exports.htmlTrie = +/* #__PURE__ */ (0, encode_shared_js_1.parseEncodeTrie)("9 m!"#$%&'()*+,1./a:;<{6he<⃒}={6hx=⃥}>{6he>⃒}?@q[\]^_`5{2yfj}k{|}y ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒē2ĖėĘęĚěĜĝĞğĠġĢ1ĤĥĦħĨĩĪī2ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌō2ŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžjƒyƵ1rǵ1tȷ3yˆˇg˘˙˚˛˜˝1f̑3jΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ1ΣΤΥΦΧΨΩ7αβγδεζηθικλμνξοπρςστυφχψω7ϑϒ2ϕϖ5Ϝϝiϰϱ3ϵ϶aЁЂЃЄЅІЇЈЉЊЋЌ1ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя1ёђѓєѕіїјљњћќ1ўџ5gi    1    ​‌‍‎‏‐2–—―‖1‘’‚1“”„1†‡•2‥…9‰‱′″‴‵3‹›3‾2⁁1⁃⁄a⁏7⁗7 {6bu  }⁠⁡⁢⁣20€1a⃛⃜11ℂ2℅4ℊℋℌℍℎℏℐℑℒℓ1ℕ№℗℘ℙℚℛℜℝ℞3™1ℤ2℧ℨ℩2ℬℭ1ℯℰℱ1ℳℴℵℶℷℸcⅅⅆⅇⅈa⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞1d←↑→↓↔↕↖↗↘↙↚↛1↝{mw↝̸}↞↟↠↡↢↣↤↥↦↧1↩↪↫↬↭↮1↰↱↲↳1↵↶↷2↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛1⇝6⇤⇥f⇵7⇽⇾⇿∀∁∂{mw∂̸}∃∄∅1∇∈∉1∋∌2∏∐∑−∓∔1∖∗∘1√2∝∞∟∠{6he∠⃒}∡∢∣∤∥∦∧∨∩{1e68∩︀}∪{1e68∪︀}∫∬∭∮∯∰∱∲∳∴∵∶∷∸1∺∻∼{6he∼⃒}∽{mp∽̱}∾{mr∾̳}∿≀≁≂{mw≂̸}≃≄≅≆≇≈≉≊≋{mw≋̸}≌≍{6he≍⃒}≎{mw≎̸}≏{mw≏̸}≐{mw≐̸}≑≒≓≔≕≖≗1≙≚1≜2≟≠≡{6hx≡⃥}≢1≤{6he≤⃒}≥{6he≥⃒}≦{mw≦̸}≧{mw≧̸}≨{1e68≨︀}≩{1e68≩︀}≪{mw≪̸5uh≪⃒}≫{mw≫̸5uh≫⃒}≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿{mw≿̸}⊀⊁⊂{6he⊂⃒}⊃{6he⊃⃒}⊄⊅⊆⊇⊈⊉⊊{1e68⊊︀}⊋{1e68⊋︀}1⊍⊎⊏{mw⊏̸}⊐{mw⊐̸}⊑⊒⊓{1e68⊓︀}⊔{1e68⊔︀}⊕⊖⊗⊘⊙⊚⊛1⊝⊞⊟⊠⊡⊢⊣⊤⊥1⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰1⊲⊳⊴{6he⊴⃒}⊵{6he⊵⃒}⊶⊷⊸⊹⊺⊻1⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘{mw⋘̸}⋙{mw⋙̸}⋚{1e68⋚︀}⋛{1e68⋛︀}2⋞⋟⋠⋡⋢⋣2⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵{mw⋵̸}⋶⋷1⋹{mw⋹̸}⋺⋻⋼⋽⋾6⌅⌆1⌈⌉⌊⌋⌌⌍⌎⌏⌐1⌒⌓1⌕⌖5⌜⌝⌞⌟2⌢⌣9⌭⌮7⌶6⌽1⌿1o⍼1f⎰⎱2⎴⎵⎶11⏜⏝⏞⏟2⏢4⏧1n␣4kⓈ1j─1│9┌3┐3└3┘3├7┤7┬7┴7┼j═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬j▀3▄3█8░▒▓d□8▪▫1▭▮2▱1△▴▵2▸▹3▽▾▿2◂◃6◊○w◬2◯8◸◹◺◻◼8★☆7☎1d♀1♂t♠2♣1♥♦3♪2♭♮♯4j✓3✗8✠l✶x❘p❲❳2c⟈⟉s⟦⟧⟨⟩⟪⟫⟬⟭7⟵⟶⟷⟸⟹⟺1⟼2⟿76⤂⤃⤄⤅6⤌⤍⤎⤏⤐⤑⤒⤓2⤖2⤙⤚⤛⤜⤝⤞⤟⤠2⤣⤤⤥⤦⤧⤨⤩⤪8⤳{mw⤳̸}1⤵⤶⤷⤸⤹2⤼⤽7⥅2⥈⥉⥊⥋2⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶1⥸⥹1⥻⥼⥽⥾⥿5⦅⦆4⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖3⦚1⦜⦝6⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷1⦹1⦻⦼1⦾⦿⧀⧁⧂⧃⧄⧅3⧉3⧍⧎⧏{mw⧏̸}⧐{mw⧐̸}b⧜⧝⧞4⧣⧤⧥5⧫8⧴1⧶9⨀⨁⨂1⨄1⨆5⨌⨍2⨐⨑⨒⨓⨔⨕⨖⨗a⨢⨣⨤⨥⨦⨧1⨩⨪2⨭⨮⨯⨰⨱1⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼2⨿⩀1⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍2⩐2⩓⩔⩕⩖⩗⩘1⩚⩛⩜⩝1⩟6⩦3⩪2⩭{mw⩭̸}⩮⩯⩰{mw⩰̸}⩱⩲⩳⩴⩵1⩷⩸⩹⩺⩻⩼⩽{mw⩽̸}⩾{mw⩾̸}⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚2⪝⪞⪟⪠⪡{mw⪡̸}⪢{mw⪢̸}1⪤⪥⪦⪧⪨⪩⪪⪫⪬{1e68⪬︀}⪭{1e68⪭︀}⪮⪯{mw⪯̸}⪰{mw⪰̸}2⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅{mw⫅̸}⫆{mw⫆̸}⫇⫈2⫋{1e68⫋︀}⫌{1e68⫌︀}2⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛8⫤1⫦⫧⫨⫩1⫫⫬⫭⫮⫯⫰⫱⫲⫳9⫽{6hx⫽⃥}y7r{17ks𝒜1𝒞𝒟2𝒢2𝒥𝒦2𝒩𝒪𝒫𝒬1𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹1𝒻1𝒽𝒾𝒿𝓀𝓁𝓂𝓃1𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏1g𝔄𝔅1𝔇𝔈𝔉𝔊2𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔1𝔖𝔗𝔘𝔙𝔚𝔛𝔜1𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹1𝔻𝔼𝔽𝔾1𝕀𝕁𝕂𝕃𝕄1𝕆3𝕊𝕋𝕌𝕍𝕎𝕏𝕐1𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫}6vefffiflffiffl"); +//# sourceMappingURL=encode-html.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/generated/encode-html.js.map b/node_modules/entities/dist/commonjs/generated/encode-html.js.map new file mode 100644 index 0000000..cb27dbc --- /dev/null +++ b/node_modules/entities/dist/commonjs/generated/encode-html.js.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-html.js","sourceRoot":"","sources":["../../../src/generated/encode-html.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,qFAAqF;AACrF,iFAAiF;AACjF,gEAAgE;AAChE,uFAAuF;AACvF,oGAAoG;;;AAEpG,mEAGsC;AAEtC,wEAAwE;AAC3D,QAAA,QAAQ;AACjB,eAAe,CAAC,IAAA,kCAAe,EAC3B,u2YAAu2Y,CAC12Y,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/index.d.ts b/node_modules/entities/dist/commonjs/index.d.ts new file mode 100644 index 0000000..40e8a36 --- /dev/null +++ b/node_modules/entities/dist/commonjs/index.d.ts @@ -0,0 +1,96 @@ +import { DecodingMode } from "./decode.js"; +/** The level of entities to support. */ +export declare enum EntityLevel { + /** Support only XML entities. */ + XML = 0, + /** Support HTML entities, which are a superset of XML entities. */ + HTML = 1 +} +export declare enum EncodingMode { + /** + * The output is UTF-8 encoded. Only characters that need escaping within + * XML will be escaped. + */ + UTF8 = 0, + /** + * The output consists only of ASCII characters. Characters that need + * escaping within HTML, and characters that aren't ASCII characters will + * be escaped. + */ + ASCII = 1, + /** + * Encode all characters that have an equivalent entity, as well as all + * characters that are not ASCII characters. + */ + Extensive = 2, + /** + * Encode all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + Attribute = 3, + /** + * Encode all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + Text = 4 +} +export interface DecodingOptions { + /** + * The level of entities to support. + * @default {@link EntityLevel.XML} + */ + level?: EntityLevel; + /** + * Decoding mode. If `Legacy`, will support legacy entities not terminated + * with a semicolon (`;`). + * + * Always `Strict` for XML. For HTML, set this to `true` if you are parsing + * an attribute value. + * + * The deprecated `decodeStrict` function defaults this to `Strict`. + * + * @default {@link DecodingMode.Legacy} + */ + mode?: DecodingMode | undefined; +} +/** + * Decodes a string with entities. + * + * @param input String to decode. + * @param options Decoding options. + */ +export declare function decode(input: string, options?: DecodingOptions | EntityLevel): string; +/** + * Decodes a string with entities. Does not allow missing trailing semicolons for entities. + * + * @param input String to decode. + * @param options Decoding options. + * @deprecated Use `decode` with the `mode` set to `Strict`. + */ +export declare function decodeStrict(input: string, options?: DecodingOptions | EntityLevel): string; +/** + * Options for `encode`. + */ +export interface EncodingOptions { + /** + * The level of entities to support. + * @default {@link EntityLevel.XML} + */ + level?: EntityLevel; + /** + * Output format. + * @default {@link EncodingMode.Extensive} + */ + mode?: EncodingMode; +} +/** + * Encodes a string with entities. + * + * @param input String to encode. + * @param options Encoding options. + */ +export declare function encode(input: string, options?: EncodingOptions | EntityLevel): string; +export { DecodingMode, decodeHTML, decodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLAttribute, decodeHTMLStrict, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML, decodeXML as decodeXMLStrict, EntityDecoder, } from "./decode.js"; +export { encodeHTML, encodeHTML as encodeHTML4, encodeHTML as encodeHTML5, encodeNonAsciiHTML, } from "./encode.js"; +export { encodeXML, escape, escapeAttribute, escapeText, escapeUTF8, } from "./escape.js"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/index.d.ts.map b/node_modules/entities/dist/commonjs/index.d.ts.map new file mode 100644 index 0000000..ce1b4bb --- /dev/null +++ b/node_modules/entities/dist/commonjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AASlE,wCAAwC;AACxC,oBAAY,WAAW;IACnB,iCAAiC;IACjC,GAAG,IAAI;IACP,mEAAmE;IACnE,IAAI,IAAI;CACX;AAED,oBAAY,YAAY;IACpB;;;OAGG;IACH,IAAI,IAAA;IACJ;;;;OAIG;IACH,KAAK,IAAA;IACL;;;OAGG;IACH,SAAS,IAAA;IACT;;;OAGG;IACH,SAAS,IAAA;IACT;;;OAGG;IACH,IAAI,IAAA;CACP;AAED,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CAMR;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CA2BR;AAED,OAAO,EACH,YAAY,EACZ,UAAU,EAEV,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,IAAI,iBAAiB,EACrC,gBAAgB,IAAI,iBAAiB,EACrC,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,aAAa,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,UAAU,EAEV,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,SAAS,EACT,MAAM,EACN,eAAe,EACf,UAAU,EACV,UAAU,GACb,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/index.js b/node_modules/entities/dist/commonjs/index.js new file mode 100644 index 0000000..6d10755 --- /dev/null +++ b/node_modules/entities/dist/commonjs/index.js @@ -0,0 +1,131 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.escapeUTF8 = exports.escapeText = exports.escapeAttribute = exports.encodeXML = exports.encodeNonAsciiHTML = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeHTML = exports.EntityDecoder = exports.decodeXMLStrict = exports.decodeXML = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTML = exports.DecodingMode = exports.EncodingMode = exports.EntityLevel = void 0; +exports.decode = decode; +exports.decodeStrict = decodeStrict; +exports.encode = encode; +const decode_js_1 = require("./decode.js"); +const encode_js_1 = require("./encode.js"); +const escape_js_1 = require("./escape.js"); +/** The level of entities to support. */ +var EntityLevel; +(function (EntityLevel) { + /** Support only XML entities. */ + EntityLevel[EntityLevel["XML"] = 0] = "XML"; + /** Support HTML entities, which are a superset of XML entities. */ + EntityLevel[EntityLevel["HTML"] = 1] = "HTML"; +})(EntityLevel || (exports.EntityLevel = EntityLevel = {})); +var EncodingMode; +(function (EncodingMode) { + /** + * The output is UTF-8 encoded. Only characters that need escaping within + * XML will be escaped. + */ + EncodingMode[EncodingMode["UTF8"] = 0] = "UTF8"; + /** + * The output consists only of ASCII characters. Characters that need + * escaping within HTML, and characters that aren't ASCII characters will + * be escaped. + */ + EncodingMode[EncodingMode["ASCII"] = 1] = "ASCII"; + /** + * Encode all characters that have an equivalent entity, as well as all + * characters that are not ASCII characters. + */ + EncodingMode[EncodingMode["Extensive"] = 2] = "Extensive"; + /** + * Encode all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + EncodingMode[EncodingMode["Attribute"] = 3] = "Attribute"; + /** + * Encode all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + EncodingMode[EncodingMode["Text"] = 4] = "Text"; +})(EncodingMode || (exports.EncodingMode = EncodingMode = {})); +/** + * Decodes a string with entities. + * + * @param input String to decode. + * @param options Decoding options. + */ +function decode(input, options = EntityLevel.XML) { + const level = typeof options === "number" ? options : options.level; + if (level === EntityLevel.HTML) { + const mode = typeof options === "object" ? options.mode : undefined; + return (0, decode_js_1.decodeHTML)(input, mode); + } + return (0, decode_js_1.decodeXML)(input); +} +/** + * Decodes a string with entities. Does not allow missing trailing semicolons for entities. + * + * @param input String to decode. + * @param options Decoding options. + * @deprecated Use `decode` with the `mode` set to `Strict`. + */ +function decodeStrict(input, options = EntityLevel.XML) { + var _a; + const normalizedOptions = typeof options === "number" ? { level: options } : options; + (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = decode_js_1.DecodingMode.Strict); + return decode(input, normalizedOptions); +} +/** + * Encodes a string with entities. + * + * @param input String to encode. + * @param options Encoding options. + */ +function encode(input, options = EntityLevel.XML) { + const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === "number" ? { level: options } : options; + switch (mode) { + case EncodingMode.UTF8: { + return (0, escape_js_1.escapeUTF8)(input); + } + case EncodingMode.Attribute: { + return (0, escape_js_1.escapeAttribute)(input); + } + case EncodingMode.Text: { + return (0, escape_js_1.escapeText)(input); + } + case EncodingMode.ASCII: { + return level === EntityLevel.HTML + ? (0, encode_js_1.encodeNonAsciiHTML)(input) + : (0, escape_js_1.encodeXML)(input); + } + // biome-ignore lint/complexity/noUselessSwitchCase: we get an error for the switch not being exhaustive + case EncodingMode.Extensive: // eslint-disable-line unicorn/no-useless-switch-case + default: { + return level === EntityLevel.HTML + ? (0, encode_js_1.encodeHTML)(input) + : (0, escape_js_1.encodeXML)(input); + } + } +} +var decode_js_2 = require("./decode.js"); +Object.defineProperty(exports, "DecodingMode", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } }); +Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } }); +// Legacy aliases (deprecated) +Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } }); +Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } }); +Object.defineProperty(exports, "decodeHTMLAttribute", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } }); +Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } }); +Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } }); +Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } }); +Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_js_2.decodeXML; } }); +Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_js_2.decodeXML; } }); +Object.defineProperty(exports, "EntityDecoder", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } }); +var encode_js_2 = require("./encode.js"); +Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } }); +// Legacy aliases (deprecated) +Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } }); +Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } }); +Object.defineProperty(exports, "encodeNonAsciiHTML", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } }); +var escape_js_2 = require("./escape.js"); +Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return escape_js_2.encodeXML; } }); +Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return escape_js_2.escape; } }); +Object.defineProperty(exports, "escapeAttribute", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } }); +Object.defineProperty(exports, "escapeText", { enumerable: true, get: function () { return escape_js_2.escapeText; } }); +Object.defineProperty(exports, "escapeUTF8", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/index.js.map b/node_modules/entities/dist/commonjs/index.js.map new file mode 100644 index 0000000..0aef0fe --- /dev/null +++ b/node_modules/entities/dist/commonjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAwEA,wBAYC;AASD,oCASC;AAwBD,wBA8BC;AA5JD,2CAAkE;AAClE,2CAA6D;AAC7D,2CAKqB;AAErB,wCAAwC;AACxC,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,iCAAiC;IACjC,2CAAO,CAAA;IACP,mEAAmE;IACnE,6CAAQ,CAAA;AACZ,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,YA2BX;AA3BD,WAAY,YAAY;IACpB;;;OAGG;IACH,+CAAI,CAAA;IACJ;;;;OAIG;IACH,iDAAK,CAAA;IACL;;;OAGG;IACH,yDAAS,CAAA;IACT;;;OAGG;IACH,yDAAS,CAAA;IACT;;;OAGG;IACH,+CAAI,CAAA;AACR,CAAC,EA3BW,YAAY,4BAAZ,YAAY,QA2BvB;AAsBD;;;;;GAKG;AACH,SAAgB,MAAM,CAClB,KAAa,EACb,UAAyC,WAAW,CAAC,GAAG;IAExD,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpE,IAAI,KAAK,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,OAAO,IAAA,sBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CACxB,KAAa,EACb,UAAyC,WAAW,CAAC,GAAG;;IAExD,MAAM,iBAAiB,GACnB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,MAAA,iBAAiB,CAAC,IAAI,oCAAtB,iBAAiB,CAAC,IAAI,GAAK,wBAAY,CAAC,MAAM,EAAC;IAE/C,OAAO,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAkBD;;;;;GAKG;AACH,SAAgB,MAAM,CAClB,KAAa,EACb,UAAyC,WAAW,CAAC,GAAG;IAExD,MAAM,EAAE,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAC5D,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAE/D,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACrB,OAAO,IAAA,sBAAU,EAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACrB,OAAO,IAAA,sBAAU,EAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACtB,OAAO,KAAK,KAAK,WAAW,CAAC,IAAI;gBAC7B,CAAC,CAAC,IAAA,8BAAkB,EAAC,KAAK,CAAC;gBAC3B,CAAC,CAAC,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,wGAAwG;QACxG,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,qDAAqD;QAClF,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,KAAK,WAAW,CAAC,IAAI;gBAC7B,CAAC,CAAC,IAAA,sBAAU,EAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;AACL,CAAC;AAED,yCAaqB;AAZjB,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,8BAA8B;AAC9B,wGAAA,UAAU,OAAe;AACzB,wGAAA,UAAU,OAAe;AACzB,gHAAA,mBAAmB,OAAA;AACnB,6GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAqB;AACrC,8GAAA,gBAAgB,OAAqB;AACrC,sGAAA,SAAS,OAAA;AACT,4GAAA,SAAS,OAAmB;AAC5B,0GAAA,aAAa,OAAA;AAGjB,yCAMqB;AALjB,uGAAA,UAAU,OAAA;AACV,8BAA8B;AAC9B,wGAAA,UAAU,OAAe;AACzB,wGAAA,UAAU,OAAe;AACzB,+GAAA,kBAAkB,OAAA;AAEtB,yCAMqB;AALjB,sGAAA,SAAS,OAAA;AACT,mGAAA,MAAM,OAAA;AACN,4GAAA,eAAe,OAAA;AACf,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts new file mode 100644 index 0000000..12c0a72 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts @@ -0,0 +1,17 @@ +/** + * Bit flags & masks for the binary trie encoding used for entity decoding. + * + * Bit layout (16 bits total): + * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value) + * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';'). + * If valueLength==0: compact run flag. + * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run) + * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char + */ +export declare enum BinTrieFlags { + VALUE_LENGTH = 49152, + FLAG13 = 8192, + BRANCH_LENGTH = 8064, + JUMP_TABLE = 127 +} +//# sourceMappingURL=bin-trie-flags.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts.map b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts.map new file mode 100644 index 0000000..56b7f53 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bin-trie-flags.d.ts","sourceRoot":"","sources":["../../../src/internal/bin-trie-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,oBAAY,YAAY;IACpB,YAAY,QAAwB;IACpC,MAAM,OAAwB;IAC9B,aAAa,OAAwB;IACrC,UAAU,MAAwB;CACrC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js new file mode 100644 index 0000000..c649d6a --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BinTrieFlags = void 0; +/** + * Bit flags & masks for the binary trie encoding used for entity decoding. + * + * Bit layout (16 bits total): + * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value) + * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';'). + * If valueLength==0: compact run flag. + * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run) + * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char + */ +var BinTrieFlags; +(function (BinTrieFlags) { + BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags[BinTrieFlags["FLAG13"] = 8192] = "FLAG13"; + BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH"; + BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE"; +})(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {})); +//# sourceMappingURL=bin-trie-flags.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js.map b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js.map new file mode 100644 index 0000000..77d2cb5 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bin-trie-flags.js","sourceRoot":"","sources":["../../../src/internal/bin-trie-flags.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,mEAAoC,CAAA;IACpC,sDAA8B,CAAA;IAC9B,oEAAqC,CAAA;IACrC,6DAAkC,CAAA;AACtC,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts b/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts new file mode 100644 index 0000000..78e6c7b --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts @@ -0,0 +1,2 @@ +export declare function decodeBase64(input: string): Uint16Array; +//# sourceMappingURL=decode-shared.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts.map b/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts.map new file mode 100644 index 0000000..c6d9a7b --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-shared.d.ts","sourceRoot":"","sources":["../../../src/internal/decode-shared.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAyBvD"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/decode-shared.js b/node_modules/entities/dist/commonjs/internal/decode-shared.js new file mode 100644 index 0000000..36d50f5 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/decode-shared.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.decodeBase64 = decodeBase64; +/* + * Shared base64 decode helper for generated decode data. + * Assumes global atob is available. + */ +function decodeBase64(input) { + const binary = + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof atob === "function" + ? // Browser (and Node >=16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + atob(input) + : // Older Node versions (<16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof Buffer.from === "function" + ? // eslint-disable-next-line n/no-unsupported-features/node-builtins + Buffer.from(input, "base64").toString("binary") + : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api + new Buffer(input, "base64").toString("binary"); + const evenLength = binary.length & ~1; // Round down to even length + const out = new Uint16Array(evenLength / 2); + for (let index = 0, outIndex = 0; index < evenLength; index += 2) { + const lo = binary.charCodeAt(index); + const hi = binary.charCodeAt(index + 1); + out[outIndex++] = lo | (hi << 8); + } + return out; +} +//# sourceMappingURL=decode-shared.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/decode-shared.js.map b/node_modules/entities/dist/commonjs/internal/decode-shared.js.map new file mode 100644 index 0000000..a522583 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/decode-shared.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-shared.js","sourceRoot":"","sources":["../../../src/internal/decode-shared.ts"],"names":[],"mappings":";;AAIA,oCAyBC;AA7BD;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAa;IACtC,MAAM,MAAM;IACR,mEAAmE;IACnE,OAAO,IAAI,KAAK,UAAU;QACtB,CAAC,CAAC,0BAA0B;YAC1B,mEAAmE;YACnE,IAAI,CAAC,KAAK,CAAC;QACb,CAAC,CAAC,4BAA4B;YAC5B,mEAAmE;YACnE,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;gBACjC,CAAC,CAAC,mEAAmE;oBACnE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjD,CAAC,CAAC,sEAAsE;oBACtE,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;IACnE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAE5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts b/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts new file mode 100644 index 0000000..649fd50 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts @@ -0,0 +1,32 @@ +/** + * A node inside the encoding trie used by `encode.ts`. + * + * There are two physical shapes to minimize allocations and lookup cost: + * + * 1. Leaf node (string) + * - A plain string (already in the form `"&name;"`). + * - Represents a terminal match with no children. + * + * 2. Branch / value node (object) + */ +export type EncodeTrieNode = string | { + /** + * Entity value for the current code point sequence (wrapped: `&...;`). + * Present when the path to this node itself is a valid named entity. + */ + value: string | undefined; + /** If a number, the next code unit of the only next character. */ + next: number | Map<number, EncodeTrieNode>; + /** If next is a number, `nextValue` contains the entity value. */ + nextValue?: string; +}; +/** + * Parse a compact encode trie string into a Map structure used for encoding. + * + * Format per entry (ascending code points using delta encoding): + * <diffBase36>[&name;][{<children>}] -- diff omitted when 0 + * Where diff = currentKey - previousKey - 1 (first entry stores absolute key). + * `&name;` is the entity value (already wrapped); a following `{` denotes children. + */ +export declare function parseEncodeTrie(serialized: string): Map<number, EncodeTrieNode>; +//# sourceMappingURL=encode-shared.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts.map b/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts.map new file mode 100644 index 0000000..43a453d --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-shared.d.ts","sourceRoot":"","sources":["../../../src/internal/encode-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GACpB,MAAM,GACN;IACI;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAER;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,GACnB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAqF7B"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/encode-shared.js b/node_modules/entities/dist/commonjs/internal/encode-shared.js new file mode 100644 index 0000000..ca84a84 --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/encode-shared.js @@ -0,0 +1,94 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseEncodeTrie = parseEncodeTrie; +/** + * Parse a compact encode trie string into a Map structure used for encoding. + * + * Format per entry (ascending code points using delta encoding): + * <diffBase36>[&name;][{<children>}] -- diff omitted when 0 + * Where diff = currentKey - previousKey - 1 (first entry stores absolute key). + * `&name;` is the entity value (already wrapped); a following `{` denotes children. + */ +function parseEncodeTrie(serialized) { + const top = new Map(); + const totalLength = serialized.length; + let cursor = 0; + let lastTopKey = -1; + function readDiff() { + const start = cursor; + while (cursor < totalLength) { + const char = serialized.charAt(cursor); + if ((char < "0" || char > "9") && (char < "a" || char > "z")) { + break; + } + cursor++; + } + if (cursor === start) + return 0; + return Number.parseInt(serialized.slice(start, cursor), 36); + } + function readEntity() { + if (serialized[cursor] !== "&") { + throw new Error(`Child entry missing value near index ${cursor}`); + } + // Cursor currently points at '&' + const start = cursor; + const end = serialized.indexOf(";", cursor + 1); + if (end === -1) { + throw new Error(`Unterminated entity starting at index ${start}`); + } + cursor = end + 1; // Move past ';' + return serialized.slice(start, cursor); // Includes & ... ; + } + while (cursor < totalLength) { + const keyDiff = readDiff(); + const key = lastTopKey === -1 ? keyDiff : lastTopKey + keyDiff + 1; + let value; + if (serialized[cursor] === "&") + value = readEntity(); + if (serialized[cursor] === "{") { + cursor++; // Skip '{' + // Parse first child + let diff = readDiff(); + let childKey = diff; // First key (lastChildKey = -1) + const firstValue = readEntity(); + if (serialized[cursor] === "{") { + throw new Error("Unexpected nested '{' beyond depth 2"); + } + // If end of block -> single child optimization + if (serialized[cursor] === "}") { + top.set(key, { value, next: childKey, nextValue: firstValue }); + cursor++; // Skip '}' + } + else { + const childMap = new Map(); + childMap.set(childKey, firstValue); + let lastChildKey = childKey; + while (cursor < totalLength && serialized[cursor] !== "}") { + diff = readDiff(); + childKey = lastChildKey + diff + 1; + const childValue = readEntity(); + if (serialized[cursor] === "{") { + throw new Error("Unexpected nested '{' beyond depth 2"); + } + childMap.set(childKey, childValue); + lastChildKey = childKey; + } + if (serialized[cursor] !== "}") { + throw new Error("Unterminated child block"); + } + cursor++; // Skip '}' + top.set(key, { value, next: childMap }); + } + } + else if (value === undefined) { + throw new Error(`Malformed encode trie: missing value at index ${cursor}`); + } + else { + top.set(key, value); + } + lastTopKey = key; + } + return top; +} +//# sourceMappingURL=encode-shared.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/internal/encode-shared.js.map b/node_modules/entities/dist/commonjs/internal/encode-shared.js.map new file mode 100644 index 0000000..3a036ee --- /dev/null +++ b/node_modules/entities/dist/commonjs/internal/encode-shared.js.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-shared.js","sourceRoot":"","sources":["../../../src/internal/encode-shared.ts"],"names":[],"mappings":";;AAiCA,0CAuFC;AA/FD;;;;;;;GAOG;AACH,SAAgB,eAAe,CAC3B,UAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IAEpB,SAAS,QAAQ;QACb,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,OAAO,MAAM,GAAG,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM;YACV,CAAC;YACD,MAAM,EAAE,CAAC;QACb,CAAC;QACD,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,SAAS,UAAU;QACf,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB;QAClC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB;IAC/D,CAAC;IAED,OAAO,MAAM,GAAG,WAAW,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;QAEnE,IAAI,KAAyB,CAAC;QAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG;YAAE,KAAK,GAAG,UAAU,EAAE,CAAC;QAErD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,CAAC,WAAW;YACrB,oBAAoB;YACpB,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,gCAAgC;YACrD,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;YAChC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC5D,CAAC;YACD,+CAA+C;YAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC/D,MAAM,EAAE,CAAC,CAAC,WAAW;YACzB,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;gBACnD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACnC,IAAI,YAAY,GAAG,QAAQ,CAAC;gBAC5B,OAAO,MAAM,GAAG,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxD,IAAI,GAAG,QAAQ,EAAE,CAAC;oBAClB,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;oBACnC,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;oBAChC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBAC5D,CAAC;oBACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACnC,YAAY,GAAG,QAAQ,CAAC;gBAC5B,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,EAAE,CAAC,CAAC,WAAW;gBACrB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACX,iDAAiD,MAAM,EAAE,CAC5D,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,UAAU,GAAG,GAAG,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/commonjs/package.json b/node_modules/entities/dist/commonjs/package.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/node_modules/entities/dist/commonjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/node_modules/entities/dist/esm/decode-codepoint.d.ts b/node_modules/entities/dist/esm/decode-codepoint.d.ts new file mode 100644 index 0000000..32f77c9 --- /dev/null +++ b/node_modules/entities/dist/esm/decode-codepoint.d.ts @@ -0,0 +1,19 @@ +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +export declare const fromCodePoint: (...codePoints: number[]) => string; +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +export declare function replaceCodePoint(codePoint: number): number; +/** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ +export declare function decodeCodePoint(codePoint: number): string; +//# sourceMappingURL=decode-codepoint.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode-codepoint.d.ts.map b/node_modules/entities/dist/esm/decode-codepoint.d.ts.map new file mode 100644 index 0000000..1a26dc4 --- /dev/null +++ b/node_modules/entities/dist/esm/decode-codepoint.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-codepoint.d.ts","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,MAgBnD,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode-codepoint.js b/node_modules/entities/dist/esm/decode-codepoint.js new file mode 100644 index 0000000..b4abff2 --- /dev/null +++ b/node_modules/entities/dist/esm/decode-codepoint.js @@ -0,0 +1,72 @@ +// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 +var _a; +const decodeMap = new Map([ + [0, 65533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376], +]); +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +export const fromCodePoint = +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins +(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : ((codePoint) => { + let output = ""; + if (codePoint > 65535) { + codePoint -= 65536; + output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296); + codePoint = 56320 | (codePoint & 1023); + } + output += String.fromCharCode(codePoint); + return output; +}); +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +export function replaceCodePoint(codePoint) { + var _a; + if ((codePoint >= 55296 && codePoint <= 57343) || + codePoint > 1114111) { + return 65533; + } + return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint; +} +/** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ +export function decodeCodePoint(codePoint) { + return fromCodePoint(replaceCodePoint(codePoint)); +} +//# sourceMappingURL=decode-codepoint.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode-codepoint.js.map b/node_modules/entities/dist/esm/decode-codepoint.js.map new file mode 100644 index 0000000..1b74fb8 --- /dev/null +++ b/node_modules/entities/dist/esm/decode-codepoint.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-codepoint.js","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":"AAAA,qHAAqH;;AAErH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC,CAAC,EAAE,KAAM,CAAC;IACX,sDAAsD;IACtD,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa;AACtB,8GAA8G;AAC9G,MAAA,MAAM,CAAC,aAAa,mCACpB,CAAC,CAAC,SAAiB,EAAU,EAAE;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,SAAS,GAAG,KAAO,EAAE,CAAC;QACtB,SAAS,IAAI,KAAS,CAAC;QACvB,MAAM,IAAI,MAAM,CAAC,YAAY,CACzB,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,IAAM,CAAC,GAAG,KAAO,CAC1C,CAAC;QACF,SAAS,GAAG,KAAO,GAAG,CAAC,SAAS,GAAG,IAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,CAAC;AAEP;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;;IAC9C,IACI,CAAC,SAAS,IAAI,KAAO,IAAI,SAAS,IAAI,KAAO,CAAC;QAC9C,SAAS,GAAG,OAAU,EACxB,CAAC;QACC,OAAO,KAAO,CAAC;IACnB,CAAC;IAED,OAAO,MAAA,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,SAAS,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC7C,OAAO,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode.d.ts b/node_modules/entities/dist/esm/decode.d.ts new file mode 100644 index 0000000..a610644 --- /dev/null +++ b/node_modules/entities/dist/esm/decode.d.ts @@ -0,0 +1,205 @@ +export declare enum DecodingMode { + /** Entities in text nodes that can end with any character. */ + Legacy = 0, + /** Only allow entities terminated with a semicolon. */ + Strict = 1, + /** Entities in attributes have limitations on ending characters. */ + Attribute = 2 +} +/** + * Producers for character reference errors as defined in the HTML spec. + */ +export interface EntityErrorProducer { + missingSemicolonAfterCharacterReference(): void; + absenceOfDigitsInNumericCharacterReference(consumedCharacters: number): void; + validateNumericCharacterReference(code: number): void; +} +/** + * Token decoder with support of writing partial entities. + */ +export declare class EntityDecoder { + /** The tree used to decode entities. */ + private readonly decodeTree; + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + private readonly emitCodePoint; + /** An object that is used to produce errors. */ + private readonly errors?; + constructor( + /** The tree used to decode entities. */ + decodeTree: Uint16Array, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint: (cp: number, consumed: number) => void, + /** An object that is used to produce errors. */ + errors?: EntityErrorProducer | undefined); + /** The current state of the decoder. */ + private state; + /** Characters that were consumed while parsing an entity. */ + private consumed; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + private result; + /** The current index in the decode tree. */ + private treeIndex; + /** The number of characters that were consumed in excess. */ + private excess; + /** The mode in which the decoder is operating. */ + private decodeMode; + /** The number of characters that have been consumed in the current run. */ + private runConsumed; + /** Resets the instance to make it reusable. */ + startEntity(decodeMode: DecodingMode): void; + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + write(input: string, offset: number): number; + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericStart; + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericHex; + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericDecimal; + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + private emitNumericEntity; + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNamedEntity; + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + private emitNotTerminatedNamedEntity; + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + private emitNamedEntityData; + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + end(): number; +} +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +export declare function determineBranch(decodeTree: Uint16Array, current: number, nodeIndex: number, char: number): number; +/** + * Decodes an HTML string. + * + * @param htmlString The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +export declare function decodeHTML(htmlString: string, mode?: DecodingMode): string; +/** + * Decodes an HTML string in an attribute. + * + * @param htmlAttribute The string to decode. + * @returns The decoded string. + */ +export declare function decodeHTMLAttribute(htmlAttribute: string): string; +/** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param htmlString The string to decode. + * @returns The decoded string. + */ +export declare function decodeHTMLStrict(htmlString: string): string; +/** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param xmlString The string to decode. + * @returns The decoded string. + */ +export declare function decodeXML(xmlString: string): string; +export { decodeCodePoint, fromCodePoint, replaceCodePoint, } from "./decode-codepoint.js"; +export { htmlDecodeTree } from "./generated/decode-data-html.js"; +export { xmlDecodeTree } from "./generated/decode-data-xml.js"; +//# sourceMappingURL=decode.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode.d.ts.map b/node_modules/entities/dist/esm/decode.d.ts.map new file mode 100644 index 0000000..0cc9765 --- /dev/null +++ b/node_modules/entities/dist/esm/decode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"AA4DA,oBAAY,YAAY;IACpB,8DAA8D;IAC9D,MAAM,IAAI;IACV,uDAAuD;IACvD,MAAM,IAAI;IACV,oEAAoE;IACpE,SAAS,IAAI;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,uCAAuC,IAAI,IAAI,CAAC;IAChD,0CAA0C,CACtC,kBAAkB,EAAE,MAAM,GAC3B,IAAI,CAAC;IACR,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,aAAa;IAElB,wCAAwC;IAExC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IAdxB,wCAAwC;IAEvB,UAAU,EAAE,WAAW;IACxC;;;;;;;;OAQG;IACc,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;IACtE,gDAAgD;IAC/B,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS;IAG7D,wCAAwC;IACxC,OAAO,CAAC,KAAK,CAAkC;IAC/C,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAK;IACrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAK;IAEnB,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAK;IACnB,kDAAkD;IAClD,OAAO,CAAC,UAAU,CAAuB;IACzC,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAK;IAExB,+CAA+C;IAC/C,WAAW,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI;IAU3C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8B5C;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAoIxB;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;;OAMG;IACH,GAAG,IAAI,MAAM;CA6BhB;AAoDD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACb,MAAM,CA4CR;AAKD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACtB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAkC,GACzC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,OAAO,EACH,eAAe,EACf,aAAa,EACb,gBAAgB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode.js b/node_modules/entities/dist/esm/decode.js new file mode 100644 index 0000000..6d79b16 --- /dev/null +++ b/node_modules/entities/dist/esm/decode.js @@ -0,0 +1,554 @@ +import { fromCodePoint, replaceCodePoint } from "./decode-codepoint.js"; +import { htmlDecodeTree } from "./generated/decode-data-html.js"; +import { xmlDecodeTree } from "./generated/decode-data-xml.js"; +import { BinTrieFlags } from "./internal/bin-trie-flags.js"; +var CharCodes; +(function (CharCodes) { + CharCodes[CharCodes["NUM"] = 35] = "NUM"; + CharCodes[CharCodes["SEMI"] = 59] = "SEMI"; + CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS"; + CharCodes[CharCodes["ZERO"] = 48] = "ZERO"; + CharCodes[CharCodes["NINE"] = 57] = "NINE"; + CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A"; + CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F"; + CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X"; + CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A"; + CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F"; + CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z"; +})(CharCodes || (CharCodes = {})); +/** Bit that needs to be set to convert an upper case ASCII character to lower case */ +const TO_LOWER_BIT = 32; +function isNumber(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; +} +function isHexadecimalCharacter(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)); +} +function isAsciiAlphaNumeric(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) || + isNumber(code)); +} +/** + * Checks if the given character is a valid end character for an entity in an attribute. + * + * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error. + * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state + */ +function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); +} +var EntityDecoderState; +(function (EntityDecoderState) { + EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity"; +})(EntityDecoderState || (EntityDecoderState = {})); +export var DecodingMode; +(function (DecodingMode) { + /** Entities in text nodes that can end with any character. */ + DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy"; + /** Only allow entities terminated with a semicolon. */ + DecodingMode[DecodingMode["Strict"] = 1] = "Strict"; + /** Entities in attributes have limitations on ending characters. */ + DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute"; +})(DecodingMode || (DecodingMode = {})); +/** + * Token decoder with support of writing partial entities. + */ +export class EntityDecoder { + constructor( + /** The tree used to decode entities. */ + // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive + decodeTree, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint, + /** An object that is used to produce errors. */ + errors) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors; + /** The current state of the decoder. */ + this.state = EntityDecoderState.EntityStart; + /** Characters that were consumed while parsing an entity. */ + this.consumed = 1; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + this.result = 0; + /** The current index in the decode tree. */ + this.treeIndex = 0; + /** The number of characters that were consumed in excess. */ + this.excess = 1; + /** The mode in which the decoder is operating. */ + this.decodeMode = DecodingMode.Strict; + /** The number of characters that have been consumed in the current run. */ + this.runConsumed = 0; + } + /** Resets the instance to make it reusable. */ + startEntity(decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + this.runConsumed = 0; + } + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + write(input, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (input.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(input, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(input, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(input, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(input, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(input, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(input, offset); + } + } + } + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericStart(input, offset) { + if (offset >= input.length) { + return -1; + } + if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(input, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(input, offset); + } + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericHex(input, offset) { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + // Convert hex digit to value (0-15); 'a'/'A' -> 10. + const digit = char <= CharCodes.NINE + ? char - CharCodes.ZERO + : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10; + this.result = this.result * 16 + digit; + this.consumed++; + offset++; + } + else { + return this.emitNumericEntity(char, 3); + } + } + return -1; // Incomplete entity + } + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNumericDecimal(input, offset) { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber(char)) { + this.result = this.result * 10 + (char - CharCodes.ZERO); + this.consumed++; + offset++; + } + else { + return this.emitNumericEntity(char, 2); + } + } + return -1; // Incomplete entity + } + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + emitNumericEntity(lastCp, expectedLength) { + var _a; + // Ensure we consumed at least one digit. + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + // Figure out if this is a legit end of the entity + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } + else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint(replaceCodePoint(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + } + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + stateNamedEntity(input, offset) { + const { decodeTree } = this; + let current = decodeTree[this.treeIndex]; + // The length is the number of bytes of the value, including the current byte. + let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + while (offset < input.length) { + // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set. + if (valueLength === 0 && (current & BinTrieFlags.FLAG13) !== 0) { + const runLength = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */ + // If we are starting a run, check the first char. + if (this.runConsumed === 0) { + const firstChar = current & BinTrieFlags.JUMP_TABLE; + if (input.charCodeAt(offset) !== firstChar) { + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + // Check remaining characters in the run. + while (this.runConsumed < runLength) { + if (offset >= input.length) { + return -1; + } + const charIndexInPacked = this.runConsumed - 1; + const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)]; + const expectedChar = charIndexInPacked % 2 === 0 + ? packedWord & 0xff + : (packedWord >> 8) & 0xff; + if (input.charCodeAt(offset) !== expectedChar) { + this.runConsumed = 0; + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + this.runConsumed = 0; + this.treeIndex += 1 + (runLength >> 1); + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + } + if (offset >= input.length) + break; + const char = input.charCodeAt(offset); + /* + * Implicit semicolon handling for nodes that require a semicolon but + * don't have an explicit ';' branch stored in the trie. If we have + * a value on the current node, it requires a semicolon, and the + * current input character is a semicolon, emit the entity using the + * current node (without descending further). + */ + if (char === CharCodes.SEMI && + valueLength !== 0 && + (current & BinTrieFlags.FLAG13) !== 0) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || + // If we are parsing an attribute + (this.decodeMode === DecodingMode.Attribute && + // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || + // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char))) + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + // If the branch is a value, store it and continue + if (valueLength !== 0) { + // If the entity is terminated by a semicolon, we are done. + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it. + if (this.decodeMode !== DecodingMode.Strict && + (current & BinTrieFlags.FLAG13) === 0) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + // Increment offset & excess for next iteration + offset++; + this.excess++; + } + return -1; + } + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + emitNotTerminatedNamedEntity() { + var _a; + const { result, decodeTree } = this; + const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + } + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + emitNamedEntityData(result, valueLength, consumed) { + const { decodeTree } = this; + this.emitCodePoint(valueLength === 1 + ? decodeTree[result] & + ~(BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13) + : decodeTree[result + 1], consumed); + if (valueLength === 3) { + // For multi-byte values, we need to emit the second byte. + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + } + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + end() { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + // Emit a named entity if we have one. + return this.result !== 0 && + (this.decodeMode !== DecodingMode.Attribute || + this.result === this.treeIndex) + ? this.emitNotTerminatedNamedEntity() + : 0; + } + // Otherwise, emit a numeric entity if we have one. + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + // Return 0 if we have no entity. + return 0; + } + } + } +} +/** + * Creates a function that decodes entities in a string. + * + * @param decodeTree The decode tree. + * @returns A function that decodes entities in a string. + */ +function getDecoder(decodeTree) { + let returnValue = ""; + const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data))); + return function decodeWithTrie(input, decodeMode) { + let lastIndex = 0; + let offset = 0; + while ((offset = input.indexOf("&", offset)) >= 0) { + returnValue += input.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + const length = decoder.write(input, + // Skip the "&" + offset + 1); + if (length < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + length; + // If `length` is 0, skip the current `&` and continue. + offset = length === 0 ? lastIndex + 1 : lastIndex; + } + const result = returnValue + input.slice(lastIndex); + // Make sure we don't keep a reference to the final string. + returnValue = ""; + return result; + }; +} +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +export function determineBranch(decodeTree, current, nodeIndex, char) { + const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; + const jumpOffset = current & BinTrieFlags.JUMP_TABLE; + // Case 1: Single branch encoded in jump offset + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1; + } + // Case 2: Multiple branches encoded in jump table + if (jumpOffset) { + const value = char - jumpOffset; + return value < 0 || value >= branchCount + ? -1 + : decodeTree[nodeIndex + value] - 1; + } + // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16) + const packedKeySlots = (branchCount + 1) >> 1; + /* + * Treat packed keys as a virtual sorted array of length `branchCount`. + * Key(i) = low byte for even i, high byte for odd i in slot i>>1. + */ + let lo = 0; + let hi = branchCount - 1; + while (lo <= hi) { + const mid = (lo + hi) >>> 1; + const slot = mid >> 1; + const packed = decodeTree[nodeIndex + slot]; + const midKey = (packed >> ((mid & 1) * 8)) & 0xff; + if (midKey < char) { + lo = mid + 1; + } + else if (midKey > char) { + hi = mid - 1; + } + else { + return decodeTree[nodeIndex + packedKeySlots + mid]; + } + } + return -1; +} +const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree); +const xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree); +/** + * Decodes an HTML string. + * + * @param htmlString The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +export function decodeHTML(htmlString, mode = DecodingMode.Legacy) { + return htmlDecoder(htmlString, mode); +} +/** + * Decodes an HTML string in an attribute. + * + * @param htmlAttribute The string to decode. + * @returns The decoded string. + */ +export function decodeHTMLAttribute(htmlAttribute) { + return htmlDecoder(htmlAttribute, DecodingMode.Attribute); +} +/** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param htmlString The string to decode. + * @returns The decoded string. + */ +export function decodeHTMLStrict(htmlString) { + return htmlDecoder(htmlString, DecodingMode.Strict); +} +/** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param xmlString The string to decode. + * @returns The decoded string. + */ +export function decodeXML(xmlString) { + return xmlDecoder(xmlString, DecodingMode.Strict); +} +export { decodeCodePoint, fromCodePoint, replaceCodePoint, } from "./decode-codepoint.js"; +// Re-export for use by eg. htmlparser2 +export { htmlDecodeTree } from "./generated/decode-data-html.js"; +export { xmlDecodeTree } from "./generated/decode-data-xml.js"; +//# sourceMappingURL=decode.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/decode.js.map b/node_modules/entities/dist/esm/decode.js.map new file mode 100644 index 0000000..edba169 --- /dev/null +++ b/node_modules/entities/dist/esm/decode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,IAAW,SAaV;AAbD,WAAW,SAAS;IAChB,wCAAQ,CAAA;IACR,0CAAS,CAAA;IACT,8CAAW,CAAA;IACX,0CAAS,CAAA;IACT,0CAAS,CAAA;IACT,gDAAY,CAAA;IACZ,iDAAa,CAAA;IACb,iDAAa,CAAA;IACb,iDAAa,CAAA;IACb,gDAAY,CAAA;IACZ,gDAAY,CAAA;IACZ,gDAAY,CAAA;AAChB,CAAC,EAbU,SAAS,KAAT,SAAS,QAanB;AAED,sFAAsF;AACtF,MAAM,YAAY,GAAG,EAAS,CAAC;AAE/B,SAAS,QAAQ,CAAC,IAAY;IAC1B,OAAO,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IACxC,OAAO,CACH,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QACxD,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,CAC3D,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,CACH,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QACxD,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,CACjB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAAC,IAAY;IAC/C,OAAO,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,IAAW,kBAMV;AAND,WAAW,kBAAkB;IACzB,yEAAW,CAAA;IACX,2EAAY,CAAA;IACZ,+EAAc,CAAA;IACd,uEAAU,CAAA;IACV,yEAAW,CAAA;AACf,CAAC,EANU,kBAAkB,KAAlB,kBAAkB,QAM5B;AAED,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACpB,8DAA8D;IAC9D,mDAAU,CAAA;IACV,uDAAuD;IACvD,mDAAU,CAAA;IACV,oEAAoE;IACpE,yDAAa,CAAA;AACjB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAaD;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB;IACI,wCAAwC;IACxC,4EAA4E;IAC3D,UAAuB;IACxC;;;;;;;;OAQG;IACc,aAAqD;IACtE,gDAAgD;IAC/B,MAAwC;QAZxC,eAAU,GAAV,UAAU,CAAa;QAUvB,kBAAa,GAAb,aAAa,CAAwC;QAErD,WAAM,GAAN,MAAM,CAAkC;QAG7D,wCAAwC;QAChC,UAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC;QAC/C,6DAA6D;QACrD,aAAQ,GAAG,CAAC,CAAC;QACrB;;;;;WAKG;QACK,WAAM,GAAG,CAAC,CAAC;QAEnB,4CAA4C;QACpC,cAAS,GAAG,CAAC,CAAC;QACtB,6DAA6D;QACrD,WAAM,GAAG,CAAC,CAAC;QACnB,kDAAkD;QAC1C,eAAU,GAAG,YAAY,CAAC,MAAM,CAAC;QACzC,2EAA2E;QACnE,gBAAW,GAAG,CAAC,CAAC;IArBrB,CAAC;IAuBJ,+CAA+C;IAC/C,WAAW,CAAC,UAAwB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAa,EAAE,MAAc;QAC/B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;oBAC7C,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC;oBAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC;gBAC5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YAED,KAAK,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjD,CAAC;YAED,KAAK,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;YAED,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;YAED,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CAAC,KAAa,EAAE,MAAc;QACnD,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAClE,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC;YAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC;QAC/C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CAAC,KAAa,EAAE,MAAc;QACjD,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,oDAAoD;gBACpD,MAAM,KAAK,GACP,IAAI,IAAI,SAAS,CAAC,IAAI;oBAClB,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;oBACvB,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACnC,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CAAC,KAAa,EAAE,MAAc;QACrD,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,iBAAiB,CAAC,MAAc,EAAE,cAAsB;;QAC5D,yCAAyC;QACzC,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;YAClC,MAAA,IAAI,CAAC,MAAM,0CAAE,0CAA0C,CACnD,IAAI,CAAC,QAAQ,CAChB,CAAC;YACF,OAAO,CAAC,CAAC;QACb,CAAC;QAED,kDAAkD;QAClD,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,uCAAuC,EAAE,CAAC;YAC1D,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CAAC,KAAa,EAAE,MAAc;QAClD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,8EAA8E;QAC9E,IAAI,WAAW,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAE9D,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,qFAAqF;YACrF,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,SAAS,GACX,CAAC,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;gBAE5D,kDAAkD;gBAClD,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC;oBACpD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;wBACzC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;4BACpB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;oBAC9C,CAAC;oBACD,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC;gBAED,yCAAyC;gBACzC,OAAO,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC;oBAClC,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACzB,OAAO,CAAC,CAAC,CAAC;oBACd,CAAC;oBAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBAC/C,MAAM,UAAU,GACZ,UAAU,CACN,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAChD,CAAC;oBACN,MAAM,YAAY,GACd,iBAAiB,GAAG,CAAC,KAAK,CAAC;wBACvB,CAAC,CAAC,UAAU,GAAG,IAAI;wBACnB,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;oBAEnC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,YAAY,EAAE,CAAC;wBAC5C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;4BACpB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;oBAC9C,CAAC;oBACD,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC;gBAED,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;gBACvC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,WAAW,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC9D,CAAC;YAED,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM;YAElC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEtC;;;;;;eAMG;YACH,IACI,IAAI,KAAK,SAAS,CAAC,IAAI;gBACvB,WAAW,KAAK,CAAC;gBACjB,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,CAAC;gBACC,OAAO,IAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,SAAS,EACd,WAAW,EACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC;YACN,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,eAAe,CAC5B,UAAU,EACV,OAAO,EACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EACzC,IAAI,CACP,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;oBACpB,iCAAiC;oBACjC,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,SAAS;wBACvC,8DAA8D;wBAC9D,CAAC,WAAW,KAAK,CAAC;4BACd,6CAA6C;4BAC7C,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC9C,CAAC;YAED,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,WAAW,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAE1D,kDAAkD;YAClD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACpB,2DAA2D;gBAC3D,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,SAAS,EACd,WAAW,EACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC;gBACN,CAAC;gBAED,2FAA2F;gBAC3F,IACI,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,MAAM;oBACvC,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,CAAC;oBACC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC7B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;oBAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,CAAC;YACL,CAAC;YACD,+CAA+C;YAC/C,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,4BAA4B;;QAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEpC,MAAM,WAAW,GACb,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAE3D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAA,IAAI,CAAC,MAAM,0CAAE,uCAAuC,EAAE,CAAC;QAEvD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CACvB,MAAc,EACd,WAAmB,EACnB,QAAgB;QAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,aAAa,CACd,WAAW,KAAK,CAAC;YACb,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;gBACd,CAAC,CAAC,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;YACxD,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAC5B,QAAQ,CACX,CAAC;QACF,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACpB,0DAA0D;YAC1D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,GAAG;;QACC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,sCAAsC;gBACtC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;oBACpB,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,SAAS;wBACvC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE;oBACrC,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,mDAAmD;YACnD,KAAK,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnC,MAAA,IAAI,CAAC,MAAM,0CAAE,0CAA0C,CACnD,IAAI,CAAC,QAAQ,CAChB,CAAC;gBACF,OAAO,CAAC,CAAC;YACb,CAAC;YACD,KAAK,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClC,iCAAiC;gBACjC,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,UAAuB;IACvC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,aAAa,CAC7B,UAAU,EACV,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC;IAEF,OAAO,SAAS,cAAc,CAC1B,KAAa,EACb,UAAwB;QAExB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAE9C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CACxB,KAAK;YACL,eAAe;YACf,MAAM,GAAG,CAAC,CACb,CAAC;YAEF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACb,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM;YACV,CAAC;YAED,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;YAC5B,uDAAuD;YACvD,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEpD,2DAA2D;QAC3D,WAAW,GAAG,EAAE,CAAC;QAEjB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC3B,UAAuB,EACvB,OAAe,EACf,SAAiB,EACjB,IAAY;IAEZ,MAAM,WAAW,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC;IAErD,+CAA+C;IAC/C,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC;QAEhC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,WAAW;YACpC,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,+EAA+E;IAC/E,MAAM,cAAc,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC;IAEzB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAElD,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YAChB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YACvB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACJ,OAAO,UAAU,CAAC,SAAS,GAAG,cAAc,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACd,CAAC;AAED,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACtB,UAAkB,EAClB,OAAqB,YAAY,CAAC,MAAM;IAExC,OAAO,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACrD,OAAO,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IAC/C,OAAO,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IACvC,OAAO,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,OAAO,EACH,eAAe,EACf,aAAa,EACb,gBAAgB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,uCAAuC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/encode.d.ts b/node_modules/entities/dist/esm/encode.d.ts new file mode 100644 index 0000000..e110bea --- /dev/null +++ b/node_modules/entities/dist/esm/encode.d.ts @@ -0,0 +1,22 @@ +/** + * Encodes all characters in the input using HTML entities. This includes + * characters that are valid ASCII characters in HTML documents, such as `#`. + * + * To get a more compact output, consider using the `encodeNonAsciiHTML` + * function, which will only encode characters that are not valid in HTML + * documents, as well as non-ASCII characters. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export declare function encodeHTML(input: string): string; +/** + * Encodes all non-ASCII characters, as well as characters not valid in HTML + * documents using HTML entities. This function will not encode characters that + * are valid in HTML documents, such as `#`. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export declare function encodeNonAsciiHTML(input: string): string; +//# sourceMappingURL=encode.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/encode.d.ts.map b/node_modules/entities/dist/esm/encode.d.ts.map new file mode 100644 index 0000000..1a43ec3 --- /dev/null +++ b/node_modules/entities/dist/esm/encode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AACD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/encode.js b/node_modules/entities/dist/esm/encode.js new file mode 100644 index 0000000..88ccf3c --- /dev/null +++ b/node_modules/entities/dist/esm/encode.js @@ -0,0 +1,88 @@ +import { getCodePoint, XML_BITSET_VALUE } from "./escape.js"; +import { htmlTrie } from "./generated/encode-html.js"; +/** + * We store the characters to consider as a compact bitset for fast lookups. + */ +const HTML_BITSET = /* #__PURE__ */ new Uint32Array([ + 5632, // Bits for 09,0A,0C + 4227923966, // 32..63 -> 21-2D (minus space), 2E,2F,3A-3F + 4160749569, // 64..95 -> 40, 5B-5F + 939524097, // 96..127-> 60, 7B-7D +]); +const XML_BITSET = /* #__PURE__ */ new Uint32Array([0, XML_BITSET_VALUE, 0, 0]); +/** + * Encodes all characters in the input using HTML entities. This includes + * characters that are valid ASCII characters in HTML documents, such as `#`. + * + * To get a more compact output, consider using the `encodeNonAsciiHTML` + * function, which will only encode characters that are not valid in HTML + * documents, as well as non-ASCII characters. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export function encodeHTML(input) { + return encodeHTMLTrieRe(HTML_BITSET, input); +} +/** + * Encodes all non-ASCII characters, as well as characters not valid in HTML + * documents using HTML entities. This function will not encode characters that + * are valid in HTML documents, such as `#`. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export function encodeNonAsciiHTML(input) { + return encodeHTMLTrieRe(XML_BITSET, input); +} +function encodeHTMLTrieRe(bitset, input) { + let out; + let last = 0; // Start of the next untouched slice. + const { length } = input; + for (let index = 0; index < length; index++) { + const char = input.charCodeAt(index); + // Skip ASCII characters that don't need encoding + if (char < 0x80 && !((bitset[char >>> 5] >>> char) & 1)) { + continue; + } + if (out === undefined) + out = input.substring(0, index); + else if (last !== index) + out += input.substring(last, index); + let node = htmlTrie.get(char); + if (typeof node === "object") { + if (index + 1 < length) { + const nextChar = input.charCodeAt(index + 1); + const value = typeof node.next === "number" + ? node.next === nextChar + ? node.nextValue + : undefined + : node.next.get(nextChar); + if (value !== undefined) { + out += value; + index++; + last = index + 1; + continue; + } + } + node = node.value; + } + if (node === undefined) { + const cp = getCodePoint(input, index); + out += `&#x${cp.toString(16)};`; + if (cp !== char) + index++; + last = index + 1; + } + else { + out += node; + last = index + 1; + } + } + if (out === undefined) + return input; + if (last < length) + out += input.substr(last); + return out; +} +//# sourceMappingURL=encode.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/encode.js.map b/node_modules/entities/dist/esm/encode.js.map new file mode 100644 index 0000000..3c4e4e6 --- /dev/null +++ b/node_modules/entities/dist/esm/encode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,WAAW,CAAC;IAChD,IAAO,EAAE,oBAAoB;IAC7B,UAAa,EAAE,6CAA6C;IAC5D,UAAa,EAAE,sBAAsB;IACrC,SAAa,EAAE,sBAAsB;CACxC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC5C,OAAO,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB,EAAE,KAAa;IACxD,IAAI,GAAuB,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,qCAAqC;IACnD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,iDAAiD;QACjD,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,SAAS;QACb,CAAC;QAED,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAClD,IAAI,IAAI,KAAK,KAAK;YAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,KAAK,GACP,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBACzB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;wBACpB,CAAC,CAAC,IAAI,CAAC,SAAS;wBAChB,CAAC,CAAC,SAAS;oBACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,GAAG,IAAI,KAAK,CAAC;oBACb,KAAK,EAAE,CAAC;oBACR,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;oBACjB,SAAS;gBACb,CAAC;YACL,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,GAAG,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;YAChC,IAAI,EAAE,KAAK,IAAI;gBAAE,KAAK,EAAE,CAAC;YACzB,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,GAAG,IAAI,IAAI,CAAC;YACZ,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM;QAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/escape.d.ts b/node_modules/entities/dist/esm/escape.d.ts new file mode 100644 index 0000000..5b99fdb --- /dev/null +++ b/node_modules/entities/dist/esm/escape.d.ts @@ -0,0 +1,46 @@ +export declare const getCodePoint: (c: string, index: number) => number; +/** + * Bitset for ASCII characters that need to be escaped in XML. + */ +export declare const XML_BITSET_VALUE = 1342177476; +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using XML entities. Uses a fast bitset scan instead of RegExp. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export declare function encodeXML(input: string): string; +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using numeric hexadecimal reference (eg. `ü`). + * + * Have a look at `escapeUTF8` if you want a more concise output at the expense + * of reduced transportability. + * + * @param data String to escape. + */ +export declare const escape: typeof encodeXML; +/** + * Encodes all characters not valid in XML documents using XML entities. + * + * Note that the output will be character-set dependent. + * + * @param data String to escape. + */ +export declare const escapeUTF8: (data: string) => string; +/** + * Encodes all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export declare const escapeAttribute: (data: string) => string; +/** + * Encodes all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export declare const escapeText: (data: string) => string; +//# sourceMappingURL=escape.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/escape.d.ts.map b/node_modules/entities/dist/esm/escape.d.ts.map new file mode 100644 index 0000000..e2ee8d0 --- /dev/null +++ b/node_modules/entities/dist/esm/escape.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAWoB,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoC/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,SAAqB,CAAC;AAqClD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAG1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAQ3C,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAQ1C,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/escape.js b/node_modules/entities/dist/esm/escape.js new file mode 100644 index 0000000..c04f18b --- /dev/null +++ b/node_modules/entities/dist/esm/escape.js @@ -0,0 +1,134 @@ +const xmlCodeMap = new Map([ + [34, """], + [38, "&"], + [39, "'"], + [60, "<"], + [62, ">"], +]); +// For compatibility with node < 4, we wrap `codePointAt` +export const getCodePoint = +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition +String.prototype.codePointAt == null + ? (c, index) => (c.charCodeAt(index) & 64512) === 55296 + ? (c.charCodeAt(index) - 55296) * 1024 + + c.charCodeAt(index + 1) - + 56320 + + 65536 + : c.charCodeAt(index) + : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + (input, index) => input.codePointAt(index); +/** + * Bitset for ASCII characters that need to be escaped in XML. + */ +export const XML_BITSET_VALUE = 1342177476; // 32..63 -> 34 ("),38 (&),39 ('),60 (<),62 (>) +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using XML entities. Uses a fast bitset scan instead of RegExp. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export function encodeXML(input) { + let out; + let last = 0; + const { length } = input; + for (let index = 0; index < length; index++) { + const char = input.charCodeAt(index); + // Check for ASCII chars that don't need escaping + if (char < 0x80 && + (((XML_BITSET_VALUE >>> char) & 1) === 0 || char >= 64 || char < 32)) { + continue; + } + if (out === undefined) + out = input.substring(0, index); + else if (last !== index) + out += input.substring(last, index); + if (char < 64) { + // Known replacement + out += xmlCodeMap.get(char); + last = index + 1; + continue; + } + // Non-ASCII: encode as numeric entity (handle surrogate pair) + const cp = getCodePoint(input, index); + out += `&#x${cp.toString(16)};`; + if (cp !== char) + index++; // Skip trailing surrogate + last = index + 1; + } + if (out === undefined) + return input; + if (last < length) + out += input.substr(last); + return out; +} +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using numeric hexadecimal reference (eg. `ü`). + * + * Have a look at `escapeUTF8` if you want a more concise output at the expense + * of reduced transportability. + * + * @param data String to escape. + */ +export const escape = encodeXML; +/** + * Creates a function that escapes all characters matched by the given regular + * expression using the given map of characters to escape to their entities. + * + * @param regex Regular expression to match characters to escape. + * @param map Map of characters to escape to their entities. + * + * @returns Function that escapes all characters matched by the given regular + * expression using the given map of characters to escape to their entities. + */ +function getEscaper(regex, map) { + return function escape(data) { + let match; + let lastIndex = 0; + let result = ""; + while ((match = regex.exec(data))) { + if (lastIndex !== match.index) { + result += data.substring(lastIndex, match.index); + } + // We know that this character will be in the map. + result += map.get(match[0].charCodeAt(0)); + // Every match will be of length 1 + lastIndex = match.index + 1; + } + return result + data.substring(lastIndex); + }; +} +/** + * Encodes all characters not valid in XML documents using XML entities. + * + * Note that the output will be character-set dependent. + * + * @param data String to escape. + */ +export const escapeUTF8 = /* #__PURE__ */ getEscaper(/["&'<>]/g, xmlCodeMap); +/** + * Encodes all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export const escapeAttribute = +/* #__PURE__ */ getEscaper(/["&\u00A0]/g, new Map([ + [34, """], + [38, "&"], + [160, " "], +])); +/** + * Encodes all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export const escapeText = /* #__PURE__ */ getEscaper(/[&<>\u00A0]/g, new Map([ + [38, "&"], + [60, "<"], + [62, ">"], + [160, " "], +])); +//# sourceMappingURL=escape.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/escape.js.map b/node_modules/entities/dist/esm/escape.js.map new file mode 100644 index 0000000..3160c47 --- /dev/null +++ b/node_modules/entities/dist/esm/escape.js.map @@ -0,0 +1 @@ +{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACvB,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,EAAE,OAAO,CAAC;IACb,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY;AACrB,uEAAuE;AACvE,MAAM,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI;IAChC,CAAC,CAAC,CAAC,CAAS,EAAE,KAAa,EAAU,EAAE,CACjC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAO,CAAC,KAAK,KAAO;QACvC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAO,CAAC,GAAG,IAAM;YACxC,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;YACvB,KAAO;YACP,KAAS;QACX,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,uEAAuE;QACvE,CAAC,KAAa,EAAE,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAa,CAAC,CAAC,+CAA+C;AAE9F;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,IAAI,GAAuB,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAErC,iDAAiD;QACjD,IACI,IAAI,GAAG,IAAI;YACX,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,EACtE,CAAC;YACC,SAAS;QACb,CAAC;QAED,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAClD,IAAI,IAAI,KAAK,KAAK;YAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;YACZ,oBAAoB;YACpB,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;YACjB,SAAS;QACb,CAAC;QAED,8DAA8D;QAC9D,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,GAAG,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;QAChC,IAAI,EAAE,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC,CAAC,0BAA0B;QACpD,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,GAAG,MAAM;QAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAqB,SAAS,CAAC;AAElD;;;;;;;;;GASG;AACH,SAAS,UAAU,CACf,KAAa,EACb,GAAwB;IAExB,OAAO,SAAS,MAAM,CAAC,IAAY;QAC/B,IAAI,KAA6B,CAAC;QAClC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,kDAAkD;YAClD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAC;YAE3C,kCAAkC;YAClC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAA6B,eAAe,CAAC,UAAU,CAC1E,UAAU,EACV,UAAU,CACb,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe;AACxB,eAAe,CAAC,UAAU,CACtB,aAAa,EACb,IAAI,GAAG,CAAC;IACJ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,CAAC,EAAE,EAAE,OAAO,CAAC;IACb,CAAC,GAAG,EAAE,QAAQ,CAAC;CAClB,CAAC,CACL,CAAC;AAEN;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAA6B,eAAe,CAAC,UAAU,CAC1E,cAAc,EACd,IAAI,GAAG,CAAC;IACJ,CAAC,EAAE,EAAE,OAAO,CAAC;IACb,CAAC,EAAE,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,QAAQ,CAAC;CAClB,CAAC,CACL,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-html.d.ts b/node_modules/entities/dist/esm/generated/decode-data-html.d.ts new file mode 100644 index 0000000..cd09535 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-html.d.ts @@ -0,0 +1,2 @@ +export declare const htmlDecodeTree: Uint16Array; +//# sourceMappingURL=decode-data-html.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map b/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map new file mode 100644 index 0000000..87a6dcc --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-html.d.ts","sourceRoot":"","sources":["../../../src/generated/decode-data-html.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,EAAE,WAE5B,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-html.js b/node_modules/entities/dist/esm/generated/decode-data-html.js new file mode 100644 index 0000000..35e5fdd --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-html.js @@ -0,0 +1,4 @@ +// Generated using scripts/write-decode-map.ts +import { decodeBase64 } from "../internal/decode-shared.js"; +export const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg"); +//# sourceMappingURL=decode-data-html.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-html.js.map b/node_modules/entities/dist/esm/generated/decode-data-html.js.map new file mode 100644 index 0000000..142cfbb --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-html.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-html.js","sourceRoot":"","sources":["../../../src/generated/decode-data-html.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAgB,eAAe,CAAC,YAAY,CACnE,08+BAA08+B,CAC78+B,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts b/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts new file mode 100644 index 0000000..6467acc --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts @@ -0,0 +1,2 @@ +export declare const xmlDecodeTree: Uint16Array; +//# sourceMappingURL=decode-data-xml.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map b/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map new file mode 100644 index 0000000..01c5240 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-xml.d.ts","sourceRoot":"","sources":["../../../src/generated/decode-data-xml.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,EAAE,WAE3B,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-xml.js b/node_modules/entities/dist/esm/generated/decode-data-xml.js new file mode 100644 index 0000000..a2e6772 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-xml.js @@ -0,0 +1,4 @@ +// Generated using scripts/write-decode-map.ts +import { decodeBase64 } from "../internal/decode-shared.js"; +export const xmlDecodeTree = /* #__PURE__ */ decodeBase64("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg"); +//# sourceMappingURL=decode-data-xml.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/decode-data-xml.js.map b/node_modules/entities/dist/esm/generated/decode-data-xml.js.map new file mode 100644 index 0000000..476dfb5 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/decode-data-xml.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-data-xml.js","sourceRoot":"","sources":["../../../src/generated/decode-data-xml.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAgB,eAAe,CAAC,YAAY,CAClE,kEAAkE,CACrE,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/encode-html.d.ts b/node_modules/entities/dist/esm/generated/encode-html.d.ts new file mode 100644 index 0000000..c593a76 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/encode-html.d.ts @@ -0,0 +1,3 @@ +import { type EncodeTrieNode } from "../internal/encode-shared.js"; +export declare const htmlTrie: Map<number, EncodeTrieNode>; +//# sourceMappingURL=encode-html.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/encode-html.d.ts.map b/node_modules/entities/dist/esm/generated/encode-html.d.ts.map new file mode 100644 index 0000000..0755691 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/encode-html.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-html.d.ts","sourceRoot":"","sources":["../../../src/generated/encode-html.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,cAAc,EAEtB,MAAM,8BAA8B,CAAC;AAGtC,eAAO,MAAM,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAG5C,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/encode-html.js b/node_modules/entities/dist/esm/generated/encode-html.js new file mode 100644 index 0000000..9a0c310 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/encode-html.js @@ -0,0 +1,11 @@ +// Generated using scripts/write-encode-map.ts +// This file contains a compact, single-string serialization of the HTML encode trie. +// Format per entry (sequence in ascending code point order using diff encoding): +// <diffBase36>[&name;][{<children>}] -- diff omitted when 0. +// "&name;" gives the entity value for the node. A following { starts a nested sub-map. +// Diffs use the same scheme as before: diff = currentKey - previousKey - 1, first entry stores key. +import { parseEncodeTrie, } from "../internal/encode-shared.js"; +// Compact serialized trie (intended to stay small & JS engine friendly) +export const htmlTrie = +/* #__PURE__ */ parseEncodeTrie("9 m!"#$%&'()*+,1./a:;<{6he<⃒}={6hx=⃥}>{6he>⃒}?@q[\]^_`5{2yfj}k{|}y ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒē2ĖėĘęĚěĜĝĞğĠġĢ1ĤĥĦħĨĩĪī2ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌō2ŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžjƒyƵ1rǵ1tȷ3yˆˇg˘˙˚˛˜˝1f̑3jΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ1ΣΤΥΦΧΨΩ7αβγδεζηθικλμνξοπρςστυφχψω7ϑϒ2ϕϖ5Ϝϝiϰϱ3ϵ϶aЁЂЃЄЅІЇЈЉЊЋЌ1ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя1ёђѓєѕіїјљњћќ1ўџ5gi    1    ​‌‍‎‏‐2–—―‖1‘’‚1“”„1†‡•2‥…9‰‱′″‴‵3‹›3‾2⁁1⁃⁄a⁏7⁗7 {6bu  }⁠⁡⁢⁣20€1a⃛⃜11ℂ2℅4ℊℋℌℍℎℏℐℑℒℓ1ℕ№℗℘ℙℚℛℜℝ℞3™1ℤ2℧ℨ℩2ℬℭ1ℯℰℱ1ℳℴℵℶℷℸcⅅⅆⅇⅈa⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞1d←↑→↓↔↕↖↗↘↙↚↛1↝{mw↝̸}↞↟↠↡↢↣↤↥↦↧1↩↪↫↬↭↮1↰↱↲↳1↵↶↷2↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛1⇝6⇤⇥f⇵7⇽⇾⇿∀∁∂{mw∂̸}∃∄∅1∇∈∉1∋∌2∏∐∑−∓∔1∖∗∘1√2∝∞∟∠{6he∠⃒}∡∢∣∤∥∦∧∨∩{1e68∩︀}∪{1e68∪︀}∫∬∭∮∯∰∱∲∳∴∵∶∷∸1∺∻∼{6he∼⃒}∽{mp∽̱}∾{mr∾̳}∿≀≁≂{mw≂̸}≃≄≅≆≇≈≉≊≋{mw≋̸}≌≍{6he≍⃒}≎{mw≎̸}≏{mw≏̸}≐{mw≐̸}≑≒≓≔≕≖≗1≙≚1≜2≟≠≡{6hx≡⃥}≢1≤{6he≤⃒}≥{6he≥⃒}≦{mw≦̸}≧{mw≧̸}≨{1e68≨︀}≩{1e68≩︀}≪{mw≪̸5uh≪⃒}≫{mw≫̸5uh≫⃒}≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿{mw≿̸}⊀⊁⊂{6he⊂⃒}⊃{6he⊃⃒}⊄⊅⊆⊇⊈⊉⊊{1e68⊊︀}⊋{1e68⊋︀}1⊍⊎⊏{mw⊏̸}⊐{mw⊐̸}⊑⊒⊓{1e68⊓︀}⊔{1e68⊔︀}⊕⊖⊗⊘⊙⊚⊛1⊝⊞⊟⊠⊡⊢⊣⊤⊥1⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰1⊲⊳⊴{6he⊴⃒}⊵{6he⊵⃒}⊶⊷⊸⊹⊺⊻1⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘{mw⋘̸}⋙{mw⋙̸}⋚{1e68⋚︀}⋛{1e68⋛︀}2⋞⋟⋠⋡⋢⋣2⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵{mw⋵̸}⋶⋷1⋹{mw⋹̸}⋺⋻⋼⋽⋾6⌅⌆1⌈⌉⌊⌋⌌⌍⌎⌏⌐1⌒⌓1⌕⌖5⌜⌝⌞⌟2⌢⌣9⌭⌮7⌶6⌽1⌿1o⍼1f⎰⎱2⎴⎵⎶11⏜⏝⏞⏟2⏢4⏧1n␣4kⓈ1j─1│9┌3┐3└3┘3├7┤7┬7┴7┼j═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬j▀3▄3█8░▒▓d□8▪▫1▭▮2▱1△▴▵2▸▹3▽▾▿2◂◃6◊○w◬2◯8◸◹◺◻◼8★☆7☎1d♀1♂t♠2♣1♥♦3♪2♭♮♯4j✓3✗8✠l✶x❘p❲❳2c⟈⟉s⟦⟧⟨⟩⟪⟫⟬⟭7⟵⟶⟷⟸⟹⟺1⟼2⟿76⤂⤃⤄⤅6⤌⤍⤎⤏⤐⤑⤒⤓2⤖2⤙⤚⤛⤜⤝⤞⤟⤠2⤣⤤⤥⤦⤧⤨⤩⤪8⤳{mw⤳̸}1⤵⤶⤷⤸⤹2⤼⤽7⥅2⥈⥉⥊⥋2⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶1⥸⥹1⥻⥼⥽⥾⥿5⦅⦆4⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖3⦚1⦜⦝6⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷1⦹1⦻⦼1⦾⦿⧀⧁⧂⧃⧄⧅3⧉3⧍⧎⧏{mw⧏̸}⧐{mw⧐̸}b⧜⧝⧞4⧣⧤⧥5⧫8⧴1⧶9⨀⨁⨂1⨄1⨆5⨌⨍2⨐⨑⨒⨓⨔⨕⨖⨗a⨢⨣⨤⨥⨦⨧1⨩⨪2⨭⨮⨯⨰⨱1⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼2⨿⩀1⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍2⩐2⩓⩔⩕⩖⩗⩘1⩚⩛⩜⩝1⩟6⩦3⩪2⩭{mw⩭̸}⩮⩯⩰{mw⩰̸}⩱⩲⩳⩴⩵1⩷⩸⩹⩺⩻⩼⩽{mw⩽̸}⩾{mw⩾̸}⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚2⪝⪞⪟⪠⪡{mw⪡̸}⪢{mw⪢̸}1⪤⪥⪦⪧⪨⪩⪪⪫⪬{1e68⪬︀}⪭{1e68⪭︀}⪮⪯{mw⪯̸}⪰{mw⪰̸}2⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅{mw⫅̸}⫆{mw⫆̸}⫇⫈2⫋{1e68⫋︀}⫌{1e68⫌︀}2⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛8⫤1⫦⫧⫨⫩1⫫⫬⫭⫮⫯⫰⫱⫲⫳9⫽{6hx⫽⃥}y7r{17ks𝒜1𝒞𝒟2𝒢2𝒥𝒦2𝒩𝒪𝒫𝒬1𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹1𝒻1𝒽𝒾𝒿𝓀𝓁𝓂𝓃1𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏1g𝔄𝔅1𝔇𝔈𝔉𝔊2𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔1𝔖𝔗𝔘𝔙𝔚𝔛𝔜1𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹1𝔻𝔼𝔽𝔾1𝕀𝕁𝕂𝕃𝕄1𝕆3𝕊𝕋𝕌𝕍𝕎𝕏𝕐1𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫}6vefffiflffiffl"); +//# sourceMappingURL=encode-html.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/generated/encode-html.js.map b/node_modules/entities/dist/esm/generated/encode-html.js.map new file mode 100644 index 0000000..3c08b59 --- /dev/null +++ b/node_modules/entities/dist/esm/generated/encode-html.js.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-html.js","sourceRoot":"","sources":["../../../src/generated/encode-html.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,qFAAqF;AACrF,iFAAiF;AACjF,gEAAgE;AAChE,uFAAuF;AACvF,oGAAoG;AAEpG,OAAO,EAEH,eAAe,GAClB,MAAM,8BAA8B,CAAC;AAEtC,wEAAwE;AACxE,MAAM,CAAC,MAAM,QAAQ;AACjB,eAAe,CAAC,eAAe,CAC3B,u2YAAu2Y,CAC12Y,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/index.d.ts b/node_modules/entities/dist/esm/index.d.ts new file mode 100644 index 0000000..40e8a36 --- /dev/null +++ b/node_modules/entities/dist/esm/index.d.ts @@ -0,0 +1,96 @@ +import { DecodingMode } from "./decode.js"; +/** The level of entities to support. */ +export declare enum EntityLevel { + /** Support only XML entities. */ + XML = 0, + /** Support HTML entities, which are a superset of XML entities. */ + HTML = 1 +} +export declare enum EncodingMode { + /** + * The output is UTF-8 encoded. Only characters that need escaping within + * XML will be escaped. + */ + UTF8 = 0, + /** + * The output consists only of ASCII characters. Characters that need + * escaping within HTML, and characters that aren't ASCII characters will + * be escaped. + */ + ASCII = 1, + /** + * Encode all characters that have an equivalent entity, as well as all + * characters that are not ASCII characters. + */ + Extensive = 2, + /** + * Encode all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + Attribute = 3, + /** + * Encode all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + Text = 4 +} +export interface DecodingOptions { + /** + * The level of entities to support. + * @default {@link EntityLevel.XML} + */ + level?: EntityLevel; + /** + * Decoding mode. If `Legacy`, will support legacy entities not terminated + * with a semicolon (`;`). + * + * Always `Strict` for XML. For HTML, set this to `true` if you are parsing + * an attribute value. + * + * The deprecated `decodeStrict` function defaults this to `Strict`. + * + * @default {@link DecodingMode.Legacy} + */ + mode?: DecodingMode | undefined; +} +/** + * Decodes a string with entities. + * + * @param input String to decode. + * @param options Decoding options. + */ +export declare function decode(input: string, options?: DecodingOptions | EntityLevel): string; +/** + * Decodes a string with entities. Does not allow missing trailing semicolons for entities. + * + * @param input String to decode. + * @param options Decoding options. + * @deprecated Use `decode` with the `mode` set to `Strict`. + */ +export declare function decodeStrict(input: string, options?: DecodingOptions | EntityLevel): string; +/** + * Options for `encode`. + */ +export interface EncodingOptions { + /** + * The level of entities to support. + * @default {@link EntityLevel.XML} + */ + level?: EntityLevel; + /** + * Output format. + * @default {@link EncodingMode.Extensive} + */ + mode?: EncodingMode; +} +/** + * Encodes a string with entities. + * + * @param input String to encode. + * @param options Encoding options. + */ +export declare function encode(input: string, options?: EncodingOptions | EntityLevel): string; +export { DecodingMode, decodeHTML, decodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLAttribute, decodeHTMLStrict, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML, decodeXML as decodeXMLStrict, EntityDecoder, } from "./decode.js"; +export { encodeHTML, encodeHTML as encodeHTML4, encodeHTML as encodeHTML5, encodeNonAsciiHTML, } from "./encode.js"; +export { encodeXML, escape, escapeAttribute, escapeText, escapeUTF8, } from "./escape.js"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/index.d.ts.map b/node_modules/entities/dist/esm/index.d.ts.map new file mode 100644 index 0000000..ce1b4bb --- /dev/null +++ b/node_modules/entities/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AASlE,wCAAwC;AACxC,oBAAY,WAAW;IACnB,iCAAiC;IACjC,GAAG,IAAI;IACP,mEAAmE;IACnE,IAAI,IAAI;CACX;AAED,oBAAY,YAAY;IACpB;;;OAGG;IACH,IAAI,IAAA;IACJ;;;;OAIG;IACH,KAAK,IAAA;IACL;;;OAGG;IACH,SAAS,IAAA;IACT;;;OAGG;IACH,SAAS,IAAA;IACT;;;OAGG;IACH,IAAI,IAAA;CACP;AAED,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CAMR;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAe,GAAG,WAA6B,GACzD,MAAM,CA2BR;AAED,OAAO,EACH,YAAY,EACZ,UAAU,EAEV,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,IAAI,iBAAiB,EACrC,gBAAgB,IAAI,iBAAiB,EACrC,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,aAAa,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,UAAU,EAEV,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,SAAS,EACT,MAAM,EACN,eAAe,EACf,UAAU,EACV,UAAU,GACb,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/index.js b/node_modules/entities/dist/esm/index.js new file mode 100644 index 0000000..1c57ef9 --- /dev/null +++ b/node_modules/entities/dist/esm/index.js @@ -0,0 +1,107 @@ +import { DecodingMode, decodeHTML, decodeXML } from "./decode.js"; +import { encodeHTML, encodeNonAsciiHTML } from "./encode.js"; +import { encodeXML, escapeAttribute, escapeText, escapeUTF8, } from "./escape.js"; +/** The level of entities to support. */ +export var EntityLevel; +(function (EntityLevel) { + /** Support only XML entities. */ + EntityLevel[EntityLevel["XML"] = 0] = "XML"; + /** Support HTML entities, which are a superset of XML entities. */ + EntityLevel[EntityLevel["HTML"] = 1] = "HTML"; +})(EntityLevel || (EntityLevel = {})); +export var EncodingMode; +(function (EncodingMode) { + /** + * The output is UTF-8 encoded. Only characters that need escaping within + * XML will be escaped. + */ + EncodingMode[EncodingMode["UTF8"] = 0] = "UTF8"; + /** + * The output consists only of ASCII characters. Characters that need + * escaping within HTML, and characters that aren't ASCII characters will + * be escaped. + */ + EncodingMode[EncodingMode["ASCII"] = 1] = "ASCII"; + /** + * Encode all characters that have an equivalent entity, as well as all + * characters that are not ASCII characters. + */ + EncodingMode[EncodingMode["Extensive"] = 2] = "Extensive"; + /** + * Encode all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + EncodingMode[EncodingMode["Attribute"] = 3] = "Attribute"; + /** + * Encode all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + EncodingMode[EncodingMode["Text"] = 4] = "Text"; +})(EncodingMode || (EncodingMode = {})); +/** + * Decodes a string with entities. + * + * @param input String to decode. + * @param options Decoding options. + */ +export function decode(input, options = EntityLevel.XML) { + const level = typeof options === "number" ? options : options.level; + if (level === EntityLevel.HTML) { + const mode = typeof options === "object" ? options.mode : undefined; + return decodeHTML(input, mode); + } + return decodeXML(input); +} +/** + * Decodes a string with entities. Does not allow missing trailing semicolons for entities. + * + * @param input String to decode. + * @param options Decoding options. + * @deprecated Use `decode` with the `mode` set to `Strict`. + */ +export function decodeStrict(input, options = EntityLevel.XML) { + var _a; + const normalizedOptions = typeof options === "number" ? { level: options } : options; + (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = DecodingMode.Strict); + return decode(input, normalizedOptions); +} +/** + * Encodes a string with entities. + * + * @param input String to encode. + * @param options Encoding options. + */ +export function encode(input, options = EntityLevel.XML) { + const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === "number" ? { level: options } : options; + switch (mode) { + case EncodingMode.UTF8: { + return escapeUTF8(input); + } + case EncodingMode.Attribute: { + return escapeAttribute(input); + } + case EncodingMode.Text: { + return escapeText(input); + } + case EncodingMode.ASCII: { + return level === EntityLevel.HTML + ? encodeNonAsciiHTML(input) + : encodeXML(input); + } + // biome-ignore lint/complexity/noUselessSwitchCase: we get an error for the switch not being exhaustive + case EncodingMode.Extensive: // eslint-disable-line unicorn/no-useless-switch-case + default: { + return level === EntityLevel.HTML + ? encodeHTML(input) + : encodeXML(input); + } + } +} +export { DecodingMode, decodeHTML, +// Legacy aliases (deprecated) +decodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLAttribute, decodeHTMLStrict, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML, decodeXML as decodeXMLStrict, EntityDecoder, } from "./decode.js"; +export { encodeHTML, +// Legacy aliases (deprecated) +encodeHTML as encodeHTML4, encodeHTML as encodeHTML5, encodeNonAsciiHTML, } from "./encode.js"; +export { encodeXML, escape, escapeAttribute, escapeText, escapeUTF8, } from "./escape.js"; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/index.js.map b/node_modules/entities/dist/esm/index.js.map new file mode 100644 index 0000000..19c5b72 --- /dev/null +++ b/node_modules/entities/dist/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACH,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,GACb,MAAM,aAAa,CAAC;AAErB,wCAAwC;AACxC,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,iCAAiC;IACjC,2CAAO,CAAA;IACP,mEAAmE;IACnE,6CAAQ,CAAA;AACZ,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,YA2BX;AA3BD,WAAY,YAAY;IACpB;;;OAGG;IACH,+CAAI,CAAA;IACJ;;;;OAIG;IACH,iDAAK,CAAA;IACL;;;OAGG;IACH,yDAAS,CAAA;IACT;;;OAGG;IACH,yDAAS,CAAA;IACT;;;OAGG;IACH,+CAAI,CAAA;AACR,CAAC,EA3BW,YAAY,KAAZ,YAAY,QA2BvB;AAsBD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAClB,KAAa,EACb,UAAyC,WAAW,CAAC,GAAG;IAExD,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpE,IAAI,KAAK,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CACxB,KAAa,EACb,UAAyC,WAAW,CAAC,GAAG;;IAExD,MAAM,iBAAiB,GACnB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,MAAA,iBAAiB,CAAC,IAAI,oCAAtB,iBAAiB,CAAC,IAAI,GAAK,YAAY,CAAC,MAAM,EAAC;IAE/C,OAAO,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAClB,KAAa,EACb,UAAyC,WAAW,CAAC,GAAG;IAExD,MAAM,EAAE,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAC5D,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAE/D,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACrB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACrB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACtB,OAAO,KAAK,KAAK,WAAW,CAAC,IAAI;gBAC7B,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC3B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,wGAAwG;QACxG,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,qDAAqD;QAClF,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,KAAK,WAAW,CAAC,IAAI;gBAC7B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;AACL,CAAC;AAED,OAAO,EACH,YAAY,EACZ,UAAU;AACV,8BAA8B;AAC9B,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,IAAI,iBAAiB,EACrC,gBAAgB,IAAI,iBAAiB,EACrC,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,aAAa,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,UAAU;AACV,8BAA8B;AAC9B,UAAU,IAAI,WAAW,EACzB,UAAU,IAAI,WAAW,EACzB,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,SAAS,EACT,MAAM,EACN,eAAe,EACf,UAAU,EACV,UAAU,GACb,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts b/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts new file mode 100644 index 0000000..12c0a72 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts @@ -0,0 +1,17 @@ +/** + * Bit flags & masks for the binary trie encoding used for entity decoding. + * + * Bit layout (16 bits total): + * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value) + * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';'). + * If valueLength==0: compact run flag. + * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run) + * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char + */ +export declare enum BinTrieFlags { + VALUE_LENGTH = 49152, + FLAG13 = 8192, + BRANCH_LENGTH = 8064, + JUMP_TABLE = 127 +} +//# sourceMappingURL=bin-trie-flags.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts.map b/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts.map new file mode 100644 index 0000000..56b7f53 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bin-trie-flags.d.ts","sourceRoot":"","sources":["../../../src/internal/bin-trie-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,oBAAY,YAAY;IACpB,YAAY,QAAwB;IACpC,MAAM,OAAwB;IAC9B,aAAa,OAAwB;IACrC,UAAU,MAAwB;CACrC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/bin-trie-flags.js b/node_modules/entities/dist/esm/internal/bin-trie-flags.js new file mode 100644 index 0000000..b32b488 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/bin-trie-flags.js @@ -0,0 +1,18 @@ +/** + * Bit flags & masks for the binary trie encoding used for entity decoding. + * + * Bit layout (16 bits total): + * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value) + * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';'). + * If valueLength==0: compact run flag. + * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run) + * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char + */ +export var BinTrieFlags; +(function (BinTrieFlags) { + BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags[BinTrieFlags["FLAG13"] = 8192] = "FLAG13"; + BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH"; + BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE"; +})(BinTrieFlags || (BinTrieFlags = {})); +//# sourceMappingURL=bin-trie-flags.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/bin-trie-flags.js.map b/node_modules/entities/dist/esm/internal/bin-trie-flags.js.map new file mode 100644 index 0000000..1b72d43 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/bin-trie-flags.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bin-trie-flags.js","sourceRoot":"","sources":["../../../src/internal/bin-trie-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,mEAAoC,CAAA;IACpC,sDAA8B,CAAA;IAC9B,oEAAqC,CAAA;IACrC,6DAAkC,CAAA;AACtC,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/decode-shared.d.ts b/node_modules/entities/dist/esm/internal/decode-shared.d.ts new file mode 100644 index 0000000..78e6c7b --- /dev/null +++ b/node_modules/entities/dist/esm/internal/decode-shared.d.ts @@ -0,0 +1,2 @@ +export declare function decodeBase64(input: string): Uint16Array; +//# sourceMappingURL=decode-shared.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/decode-shared.d.ts.map b/node_modules/entities/dist/esm/internal/decode-shared.d.ts.map new file mode 100644 index 0000000..c6d9a7b --- /dev/null +++ b/node_modules/entities/dist/esm/internal/decode-shared.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-shared.d.ts","sourceRoot":"","sources":["../../../src/internal/decode-shared.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAyBvD"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/decode-shared.js b/node_modules/entities/dist/esm/internal/decode-shared.js new file mode 100644 index 0000000..7909279 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/decode-shared.js @@ -0,0 +1,28 @@ +/* + * Shared base64 decode helper for generated decode data. + * Assumes global atob is available. + */ +export function decodeBase64(input) { + const binary = + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof atob === "function" + ? // Browser (and Node >=16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + atob(input) + : // Older Node versions (<16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof Buffer.from === "function" + ? // eslint-disable-next-line n/no-unsupported-features/node-builtins + Buffer.from(input, "base64").toString("binary") + : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api + new Buffer(input, "base64").toString("binary"); + const evenLength = binary.length & ~1; // Round down to even length + const out = new Uint16Array(evenLength / 2); + for (let index = 0, outIndex = 0; index < evenLength; index += 2) { + const lo = binary.charCodeAt(index); + const hi = binary.charCodeAt(index + 1); + out[outIndex++] = lo | (hi << 8); + } + return out; +} +//# sourceMappingURL=decode-shared.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/decode-shared.js.map b/node_modules/entities/dist/esm/internal/decode-shared.js.map new file mode 100644 index 0000000..51192cd --- /dev/null +++ b/node_modules/entities/dist/esm/internal/decode-shared.js.map @@ -0,0 +1 @@ +{"version":3,"file":"decode-shared.js","sourceRoot":"","sources":["../../../src/internal/decode-shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,MAAM,MAAM;IACR,mEAAmE;IACnE,OAAO,IAAI,KAAK,UAAU;QACtB,CAAC,CAAC,0BAA0B;YAC1B,mEAAmE;YACnE,IAAI,CAAC,KAAK,CAAC;QACb,CAAC,CAAC,4BAA4B;YAC5B,mEAAmE;YACnE,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;gBACjC,CAAC,CAAC,mEAAmE;oBACnE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjD,CAAC,CAAC,sEAAsE;oBACtE,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;IACnE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAE5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/encode-shared.d.ts b/node_modules/entities/dist/esm/internal/encode-shared.d.ts new file mode 100644 index 0000000..649fd50 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/encode-shared.d.ts @@ -0,0 +1,32 @@ +/** + * A node inside the encoding trie used by `encode.ts`. + * + * There are two physical shapes to minimize allocations and lookup cost: + * + * 1. Leaf node (string) + * - A plain string (already in the form `"&name;"`). + * - Represents a terminal match with no children. + * + * 2. Branch / value node (object) + */ +export type EncodeTrieNode = string | { + /** + * Entity value for the current code point sequence (wrapped: `&...;`). + * Present when the path to this node itself is a valid named entity. + */ + value: string | undefined; + /** If a number, the next code unit of the only next character. */ + next: number | Map<number, EncodeTrieNode>; + /** If next is a number, `nextValue` contains the entity value. */ + nextValue?: string; +}; +/** + * Parse a compact encode trie string into a Map structure used for encoding. + * + * Format per entry (ascending code points using delta encoding): + * <diffBase36>[&name;][{<children>}] -- diff omitted when 0 + * Where diff = currentKey - previousKey - 1 (first entry stores absolute key). + * `&name;` is the entity value (already wrapped); a following `{` denotes children. + */ +export declare function parseEncodeTrie(serialized: string): Map<number, EncodeTrieNode>; +//# sourceMappingURL=encode-shared.d.ts.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/encode-shared.d.ts.map b/node_modules/entities/dist/esm/internal/encode-shared.d.ts.map new file mode 100644 index 0000000..43a453d --- /dev/null +++ b/node_modules/entities/dist/esm/internal/encode-shared.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-shared.d.ts","sourceRoot":"","sources":["../../../src/internal/encode-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GACpB,MAAM,GACN;IACI;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAER;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,GACnB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAqF7B"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/encode-shared.js b/node_modules/entities/dist/esm/internal/encode-shared.js new file mode 100644 index 0000000..4bdf332 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/encode-shared.js @@ -0,0 +1,91 @@ +/** + * Parse a compact encode trie string into a Map structure used for encoding. + * + * Format per entry (ascending code points using delta encoding): + * <diffBase36>[&name;][{<children>}] -- diff omitted when 0 + * Where diff = currentKey - previousKey - 1 (first entry stores absolute key). + * `&name;` is the entity value (already wrapped); a following `{` denotes children. + */ +export function parseEncodeTrie(serialized) { + const top = new Map(); + const totalLength = serialized.length; + let cursor = 0; + let lastTopKey = -1; + function readDiff() { + const start = cursor; + while (cursor < totalLength) { + const char = serialized.charAt(cursor); + if ((char < "0" || char > "9") && (char < "a" || char > "z")) { + break; + } + cursor++; + } + if (cursor === start) + return 0; + return Number.parseInt(serialized.slice(start, cursor), 36); + } + function readEntity() { + if (serialized[cursor] !== "&") { + throw new Error(`Child entry missing value near index ${cursor}`); + } + // Cursor currently points at '&' + const start = cursor; + const end = serialized.indexOf(";", cursor + 1); + if (end === -1) { + throw new Error(`Unterminated entity starting at index ${start}`); + } + cursor = end + 1; // Move past ';' + return serialized.slice(start, cursor); // Includes & ... ; + } + while (cursor < totalLength) { + const keyDiff = readDiff(); + const key = lastTopKey === -1 ? keyDiff : lastTopKey + keyDiff + 1; + let value; + if (serialized[cursor] === "&") + value = readEntity(); + if (serialized[cursor] === "{") { + cursor++; // Skip '{' + // Parse first child + let diff = readDiff(); + let childKey = diff; // First key (lastChildKey = -1) + const firstValue = readEntity(); + if (serialized[cursor] === "{") { + throw new Error("Unexpected nested '{' beyond depth 2"); + } + // If end of block -> single child optimization + if (serialized[cursor] === "}") { + top.set(key, { value, next: childKey, nextValue: firstValue }); + cursor++; // Skip '}' + } + else { + const childMap = new Map(); + childMap.set(childKey, firstValue); + let lastChildKey = childKey; + while (cursor < totalLength && serialized[cursor] !== "}") { + diff = readDiff(); + childKey = lastChildKey + diff + 1; + const childValue = readEntity(); + if (serialized[cursor] === "{") { + throw new Error("Unexpected nested '{' beyond depth 2"); + } + childMap.set(childKey, childValue); + lastChildKey = childKey; + } + if (serialized[cursor] !== "}") { + throw new Error("Unterminated child block"); + } + cursor++; // Skip '}' + top.set(key, { value, next: childMap }); + } + } + else if (value === undefined) { + throw new Error(`Malformed encode trie: missing value at index ${cursor}`); + } + else { + top.set(key, value); + } + lastTopKey = key; + } + return top; +} +//# sourceMappingURL=encode-shared.js.map \ No newline at end of file diff --git a/node_modules/entities/dist/esm/internal/encode-shared.js.map b/node_modules/entities/dist/esm/internal/encode-shared.js.map new file mode 100644 index 0000000..c5245f4 --- /dev/null +++ b/node_modules/entities/dist/esm/internal/encode-shared.js.map @@ -0,0 +1 @@ +{"version":3,"file":"encode-shared.js","sourceRoot":"","sources":["../../../src/internal/encode-shared.ts"],"names":[],"mappings":"AAyBA;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC3B,UAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IAEpB,SAAS,QAAQ;QACb,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,OAAO,MAAM,GAAG,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM;YACV,CAAC;YACD,MAAM,EAAE,CAAC;QACb,CAAC;QACD,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,SAAS,UAAU;QACf,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB;QAClC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB;IAC/D,CAAC;IAED,OAAO,MAAM,GAAG,WAAW,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;QAEnE,IAAI,KAAyB,CAAC;QAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG;YAAE,KAAK,GAAG,UAAU,EAAE,CAAC;QAErD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,CAAC,WAAW;YACrB,oBAAoB;YACpB,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,gCAAgC;YACrD,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;YAChC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC5D,CAAC;YACD,+CAA+C;YAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC/D,MAAM,EAAE,CAAC,CAAC,WAAW;YACzB,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;gBACnD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACnC,IAAI,YAAY,GAAG,QAAQ,CAAC;gBAC5B,OAAO,MAAM,GAAG,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxD,IAAI,GAAG,QAAQ,EAAE,CAAC;oBAClB,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC;oBACnC,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;oBAChC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBAC5D,CAAC;oBACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACnC,YAAY,GAAG,QAAQ,CAAC;gBAC5B,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,EAAE,CAAC,CAAC,WAAW;gBACrB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACX,iDAAiD,MAAM,EAAE,CAC5D,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,UAAU,GAAG,GAAG,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/entities/dist/esm/package.json b/node_modules/entities/dist/esm/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/node_modules/entities/dist/esm/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/node_modules/entities/escape.d.ts b/node_modules/entities/escape.d.ts new file mode 100644 index 0000000..668812c --- /dev/null +++ b/node_modules/entities/escape.d.ts @@ -0,0 +1,3 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +export * from "./dist/commonjs/escape.js"; diff --git a/node_modules/entities/escape.js b/node_modules/entities/escape.js new file mode 100644 index 0000000..5caf41a --- /dev/null +++ b/node_modules/entities/escape.js @@ -0,0 +1,3 @@ +// Make exports work in Node < 12 +// eslint-disable-next-line no-undef, unicorn/prefer-module +module.exports = require("./dist/commonjs/escape.js"); diff --git a/node_modules/entities/package.json b/node_modules/entities/package.json new file mode 100644 index 0000000..646220f --- /dev/null +++ b/node_modules/entities/package.json @@ -0,0 +1,120 @@ +{ + "name": "entities", + "version": "7.0.1", + "description": "Encode & decode XML and HTML entities with ease & speed", + "keywords": [ + "html entities", + "entity decoder", + "entity encoding", + "html decoding", + "html encoding", + "xml decoding", + "xml encoding" + ], + "repository": { + "type": "git", + "url": "https://github.com/fb55/entities.git" + }, + "funding": "https://github.com/fb55/entities?sponsor=1", + "license": "BSD-2-Clause", + "author": "Felix Boehm <me@feedic.com>", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": { + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" + }, + "require": { + "types": "./dist/commonjs/index.d.ts", + "default": "./dist/commonjs/index.js" + } + }, + "./decode": { + "import": { + "types": "./dist/esm/decode.d.ts", + "default": "./dist/esm/decode.js" + }, + "require": { + "types": "./dist/commonjs/decode.d.ts", + "default": "./dist/commonjs/decode.js" + } + }, + "./escape": { + "import": { + "types": "./dist/esm/escape.d.ts", + "default": "./dist/esm/escape.js" + }, + "require": { + "types": "./dist/commonjs/escape.d.ts", + "default": "./dist/commonjs/escape.js" + } + } + }, + "main": "./dist/commonjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/commonjs/index.d.ts", + "files": [ + "decode.js", + "decode.d.ts", + "escape.js", + "escape.d.ts", + "dist", + "src", + "!**/*.spec.ts" + ], + "scripts": { + "build:docs": "typedoc --hideGenerator src/index.ts", + "build:encode-trie": "node --import=tsx scripts/write-encode-map.ts", + "build:trie": "node --import=tsx scripts/write-decode-map.ts", + "benchmark": "node --import=tsx scripts/benchmark.ts", + "format": "npm run format:es && npm run format:biome", + "format:es": "npm run lint:es -- --fix", + "format:biome": "biome check --fix .", + "lint": "npm run lint:es && npm run lint:ts && npm run lint:biome", + "lint:es": "eslint . --ignore-path .gitignore", + "lint:biome": "biome check .", + "lint:ts": "tsc --noEmit", + "prepublishOnly": "tshy", + "test": "npm run test:vi && npm run lint", + "test:vi": "vitest run" + }, + "devDependencies": { + "@biomejs/biome": "^2.3.11", + "@types/node": "^25.0.9", + "@typescript-eslint/eslint-plugin": "^8.53.1", + "@typescript-eslint/parser": "^8.53.1", + "@vitest/coverage-v8": "^3.2.4", + "@types/he": "^1.2.3", + "eslint": "^8.57.1", + "eslint-config-biome": "^2.1.3", + "eslint-plugin-n": "^17.23.2", + "eslint-plugin-unicorn": "^56.0.1", + "he": "^1.2.0", + "html-entities": "^2.6.0", + "parse-entities": "^4.0.2", + "tinybench": "^5.1.0", + "tshy": "^3.1.0", + "tsx": "^4.21.0", + "typedoc": "^0.28.16", + "typescript": "^5.9.3", + "vitest": "^3.2.4" + }, + "engines": { + "node": ">=0.12" + }, + "tshy": { + "exclude": [ + "**/*.spec.ts", + "**/__fixtures__/*", + "**/__tests__/*", + "**/__snapshots__/*" + ], + "exports": { + ".": "./src/index.ts", + "./decode": "./src/decode.ts", + "./escape": "./src/escape.ts" + } + } +} diff --git a/node_modules/entities/readme.md b/node_modules/entities/readme.md new file mode 100644 index 0000000..8779612 --- /dev/null +++ b/node_modules/entities/readme.md @@ -0,0 +1,143 @@ +# entities [![NPM version](https://img.shields.io/npm/v/entities.svg)](https://npmjs.org/package/entities) [![Downloads](https://img.shields.io/npm/dm/entities.svg)](https://npmjs.org/package/entities) [![Node.js CI](https://github.com/fb55/entities/actions/workflows/nodejs-test.yml/badge.svg)](https://github.com/fb55/entities/actions/workflows/nodejs-test.yml) + +Encode & decode HTML & XML entities with ease & speed. + +## Features + +- 😇 Tried and true: `entities` is used by many popular libraries; eg. + [`htmlparser2`](https://github.com/fb55/htmlparser2), the official + [AWS SDK](https://github.com/aws/aws-sdk-js-v3) and + [`commonmark`](https://github.com/commonmark/commonmark.js) use it to process + HTML entities. +- ⚡️ Fast: `entities` is the fastest library for decoding HTML entities (as of + September 2025); see [performance](#performance). +- 🎛 Configurable: Get an output tailored for your needs. You are fine with + UTF8? That'll save you some bytes. Prefer to only have ASCII characters? We + can do that as well! + +## How to… + +### …install `entities` + + npm install entities + +### …use `entities` + +```javascript +const entities = require("entities"); + +// Encoding +entities.escapeUTF8("& ü"); // "&#38; ü" +entities.encodeXML("& ü"); // "&#38; ü" +entities.encodeHTML("& ü"); // "&#38; ü" + +// Decoding +entities.decodeXML("asdf & ÿ ü '"); // "asdf & ÿ ü '" +entities.decodeHTML("asdf & ÿ ü '"); // "asdf & ÿ ü '" +``` + +## Performance + +Benchmarked in September 2025 with Node v24.6.0 on Apple M2 using `tinybench`. +Higher ops/s is better; `avg (μs)` is the mean time per operation. +See `scripts/benchmark.ts` to reproduce. + +### Decoding + +| Library | Version | ops/s | avg (μs) | ±% | slower | +| -------------- | ------- | --------- | -------- | ---- | ------ | +| entities | 7.0.0 | 5,838,416 | 175.57 | 0.06 | — | +| html-entities | 2.6.0 | 2,919,637 | 347.77 | 0.33 | 50.0% | +| he | 1.2.0 | 2,318,438 | 446.48 | 0.70 | 60.3% | +| parse-entities | 4.0.2 | 852,855 | 1,199.51 | 0.36 | 85.4% | + +### Encoding + +| Library | Version | ops/s | avg (μs) | ±% | slower | +| -------------- | ------- | --------- | -------- | ---- | ------ | +| entities | 7.0.0 | 2,770,115 | 368.09 | 0.11 | — | +| html-entities | 2.6.0 | 1,491,963 | 679.96 | 0.58 | 46.2% | +| he | 1.2.0 | 481,278 | 2,118.25 | 0.61 | 82.6% | + +### Escaping + +| Library | Version | ops/s | avg (μs) | ±% | slower | +| -------------- | ------- | --------- | -------- | ---- | ------ | +| entities | 7.0.0 | 4,616,468 | 223.84 | 0.17 | — | +| he | 1.2.0 | 3,659,301 | 280.76 | 0.58 | 20.7% | +| html-entities | 2.6.0 | 3,555,301 | 296.63 | 0.84 | 23.0% | + +Note: Micro-benchmarks may vary across machines and Node versions. + +--- + +## FAQ + +> What methods should I actually use to encode my documents? + +If your target supports UTF-8, the `escapeUTF8` method is going to be your best +choice. Otherwise, use either `encodeHTML` or `encodeXML` based on whether +you're dealing with an HTML or an XML document. + +You can have a look at the options for the `encode` and `decode` methods to see +everything you can configure. + +> When should I use strict decoding? + +When strict decoding, entities not terminated with a semicolon will be ignored. +This is helpful for decoding entities in legacy environments. + +> Why should I use `entities` instead of alternative modules? + +As of September 2025, `entities` is faster than other modules. Still, this is +not a differentiated space and other modules can catch up. + +**More importantly**, you might already have `entities` in your dependency graph +(as a dependency of eg. `cheerio`, or `htmlparser2`), and including it directly +might not even increase your bundle size. The same is true for other entity +libraries, so have a look through your `node_modules` directory! + +> Does `entities` support tree shaking? + +Yes! `entities` ships as both a CommonJS and a ES module. Note that for best +results, you should not use the `encode` and `decode` functions, as they wrap +around a number of other functions, all of which will remain in the bundle. +Instead, use the functions that you need directly. + +--- + +## Acknowledgements + +This library wouldn't be possible without the work of these individuals. Thanks +to + +- [@mathiasbynens](https://github.com/mathiasbynens) for his explanations about + character encodings, and his library `he`, which was one of the inspirations + for `entities` +- [@inikulin](https://github.com/inikulin) for his work on optimized tries for + decoding HTML entities for the `parse5` project +- [@mdevils](https://github.com/mdevils) for taking on the challenge of + producing a quick entity library with his `html-entities` library. `entities` + would be quite a bit slower if there wasn't any competition. Right now + `entities` is on top, but we'll see how long that lasts! + +--- + +License: BSD-2-Clause + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). Tidelift will +coordinate the fix and disclosure. + +## `entities` for enterprise + +Available as part of the Tidelift Subscription + +The maintainers of `entities` and thousands of other packages are working with +Tidelift to deliver commercial support and maintenance for the open source +dependencies you use to build your applications. Save time, reduce risk, and +improve code health, while paying the maintainers of the exact dependencies you +use. +[Learn more.](https://tidelift.com/subscription/pkg/npm-entities?utm_source=npm-entities&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/entities/src/decode-codepoint.ts b/node_modules/entities/src/decode-codepoint.ts new file mode 100644 index 0000000..694f865 --- /dev/null +++ b/node_modules/entities/src/decode-codepoint.ts @@ -0,0 +1,81 @@ +// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 + +const decodeMap = new Map([ + [0, 65_533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376], +]); + +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +export const fromCodePoint: (...codePoints: number[]) => string = + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins + String.fromCodePoint ?? + ((codePoint: number): string => { + let output = ""; + + if (codePoint > 0xff_ff) { + codePoint -= 0x1_00_00; + output += String.fromCharCode( + ((codePoint >>> 10) & 0x3_ff) | 0xd8_00, + ); + codePoint = 0xdc_00 | (codePoint & 0x3_ff); + } + + output += String.fromCharCode(codePoint); + return output; + }); + +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +export function replaceCodePoint(codePoint: number): number { + if ( + (codePoint >= 0xd8_00 && codePoint <= 0xdf_ff) || + codePoint > 0x10_ff_ff + ) { + return 0xff_fd; + } + + return decodeMap.get(codePoint) ?? codePoint; +} + +/** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ +export function decodeCodePoint(codePoint: number): string { + return fromCodePoint(replaceCodePoint(codePoint)); +} diff --git a/node_modules/entities/src/decode.ts b/node_modules/entities/src/decode.ts new file mode 100644 index 0000000..9d0c8cb --- /dev/null +++ b/node_modules/entities/src/decode.ts @@ -0,0 +1,685 @@ +import { fromCodePoint, replaceCodePoint } from "./decode-codepoint.js"; +import { htmlDecodeTree } from "./generated/decode-data-html.js"; +import { xmlDecodeTree } from "./generated/decode-data-xml.js"; +import { BinTrieFlags } from "./internal/bin-trie-flags.js"; + +const enum CharCodes { + NUM = 35, // "#" + SEMI = 59, // ";" + EQUALS = 61, // "=" + ZERO = 48, // "0" + NINE = 57, // "9" + LOWER_A = 97, // "a" + LOWER_F = 102, // "f" + LOWER_X = 120, // "x" + LOWER_Z = 122, // "z" + UPPER_A = 65, // "A" + UPPER_F = 70, // "F" + UPPER_Z = 90, // "Z" +} + +/** Bit that needs to be set to convert an upper case ASCII character to lower case */ +const TO_LOWER_BIT = 0b10_0000; + +function isNumber(code: number): boolean { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; +} + +function isHexadecimalCharacter(code: number): boolean { + return ( + (code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F) + ); +} + +function isAsciiAlphaNumeric(code: number): boolean { + return ( + (code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) || + isNumber(code) + ); +} + +/** + * Checks if the given character is a valid end character for an entity in an attribute. + * + * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error. + * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state + */ +function isEntityInAttributeInvalidEnd(code: number): boolean { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); +} + +const enum EntityDecoderState { + EntityStart, + NumericStart, + NumericDecimal, + NumericHex, + NamedEntity, +} + +export enum DecodingMode { + /** Entities in text nodes that can end with any character. */ + Legacy = 0, + /** Only allow entities terminated with a semicolon. */ + Strict = 1, + /** Entities in attributes have limitations on ending characters. */ + Attribute = 2, +} + +/** + * Producers for character reference errors as defined in the HTML spec. + */ +export interface EntityErrorProducer { + missingSemicolonAfterCharacterReference(): void; + absenceOfDigitsInNumericCharacterReference( + consumedCharacters: number, + ): void; + validateNumericCharacterReference(code: number): void; +} + +/** + * Token decoder with support of writing partial entities. + */ +export class EntityDecoder { + constructor( + /** The tree used to decode entities. */ + // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive + private readonly decodeTree: Uint16Array, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + private readonly emitCodePoint: (cp: number, consumed: number) => void, + /** An object that is used to produce errors. */ + private readonly errors?: EntityErrorProducer | undefined, + ) {} + + /** The current state of the decoder. */ + private state = EntityDecoderState.EntityStart; + /** Characters that were consumed while parsing an entity. */ + private consumed = 1; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + private result = 0; + + /** The current index in the decode tree. */ + private treeIndex = 0; + /** The number of characters that were consumed in excess. */ + private excess = 1; + /** The mode in which the decoder is operating. */ + private decodeMode = DecodingMode.Strict; + /** The number of characters that have been consumed in the current run. */ + private runConsumed = 0; + + /** Resets the instance to make it reusable. */ + startEntity(decodeMode: DecodingMode): void { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + this.runConsumed = 0; + } + + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + write(input: string, offset: number): number { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (input.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(input, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(input, offset); + } + + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(input, offset); + } + + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(input, offset); + } + + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(input, offset); + } + + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(input, offset); + } + } + } + + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericStart(input: string, offset: number): number { + if (offset >= input.length) { + return -1; + } + + if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(input, offset + 1); + } + + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(input, offset); + } + + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericHex(input: string, offset: number): number { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + // Convert hex digit to value (0-15); 'a'/'A' -> 10. + const digit = + char <= CharCodes.NINE + ? char - CharCodes.ZERO + : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10; + this.result = this.result * 16 + digit; + this.consumed++; + offset++; + } else { + return this.emitNumericEntity(char, 3); + } + } + return -1; // Incomplete entity + } + + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNumericDecimal(input: string, offset: number): number { + while (offset < input.length) { + const char = input.charCodeAt(offset); + if (isNumber(char)) { + this.result = this.result * 10 + (char - CharCodes.ZERO); + this.consumed++; + offset++; + } else { + return this.emitNumericEntity(char, 2); + } + } + return -1; // Incomplete entity + } + + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + private emitNumericEntity(lastCp: number, expectedLength: number): number { + // Ensure we consumed at least one digit. + if (this.consumed <= expectedLength) { + this.errors?.absenceOfDigitsInNumericCharacterReference( + this.consumed, + ); + return 0; + } + + // Figure out if this is a legit end of the entity + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + + this.emitCodePoint(replaceCodePoint(this.result), this.consumed); + + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + + this.errors.validateNumericCharacterReference(this.result); + } + + return this.consumed; + } + + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param input The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + private stateNamedEntity(input: string, offset: number): number { + const { decodeTree } = this; + let current = decodeTree[this.treeIndex]; + // The length is the number of bytes of the value, including the current byte. + let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + + while (offset < input.length) { + // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set. + if (valueLength === 0 && (current & BinTrieFlags.FLAG13) !== 0) { + const runLength = + (current & BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */ + + // If we are starting a run, check the first char. + if (this.runConsumed === 0) { + const firstChar = current & BinTrieFlags.JUMP_TABLE; + if (input.charCodeAt(offset) !== firstChar) { + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + + // Check remaining characters in the run. + while (this.runConsumed < runLength) { + if (offset >= input.length) { + return -1; + } + + const charIndexInPacked = this.runConsumed - 1; + const packedWord = + decodeTree[ + this.treeIndex + 1 + (charIndexInPacked >> 1) + ]; + const expectedChar = + charIndexInPacked % 2 === 0 + ? packedWord & 0xff + : (packedWord >> 8) & 0xff; + + if (input.charCodeAt(offset) !== expectedChar) { + this.runConsumed = 0; + return this.result === 0 + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + offset++; + this.excess++; + this.runConsumed++; + } + + this.runConsumed = 0; + this.treeIndex += 1 + (runLength >> 1); + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + } + + if (offset >= input.length) break; + + const char = input.charCodeAt(offset); + + /* + * Implicit semicolon handling for nodes that require a semicolon but + * don't have an explicit ';' branch stored in the trie. If we have + * a value on the current node, it requires a semicolon, and the + * current input character is a semicolon, emit the entity using the + * current node (without descending further). + */ + if ( + char === CharCodes.SEMI && + valueLength !== 0 && + (current & BinTrieFlags.FLAG13) !== 0 + ) { + return this.emitNamedEntityData( + this.treeIndex, + valueLength, + this.consumed + this.excess, + ); + } + + this.treeIndex = determineBranch( + decodeTree, + current, + this.treeIndex + Math.max(1, valueLength), + char, + ); + + if (this.treeIndex < 0) { + return this.result === 0 || + // If we are parsing an attribute + (this.decodeMode === DecodingMode.Attribute && + // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || + // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char))) + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + + // If the branch is a value, store it and continue + if (valueLength !== 0) { + // If the entity is terminated by a semicolon, we are done. + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData( + this.treeIndex, + valueLength, + this.consumed + this.excess, + ); + } + + // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it. + if ( + this.decodeMode !== DecodingMode.Strict && + (current & BinTrieFlags.FLAG13) === 0 + ) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + // Increment offset & excess for next iteration + offset++; + this.excess++; + } + + return -1; + } + + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + private emitNotTerminatedNamedEntity(): number { + const { result, decodeTree } = this; + + const valueLength = + (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + + this.emitNamedEntityData(result, valueLength, this.consumed); + this.errors?.missingSemicolonAfterCharacterReference(); + + return this.consumed; + } + + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + private emitNamedEntityData( + result: number, + valueLength: number, + consumed: number, + ): number { + const { decodeTree } = this; + + this.emitCodePoint( + valueLength === 1 + ? decodeTree[result] & + ~(BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13) + : decodeTree[result + 1], + consumed, + ); + if (valueLength === 3) { + // For multi-byte values, we need to emit the second byte. + this.emitCodePoint(decodeTree[result + 2], consumed); + } + + return consumed; + } + + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + end(): number { + switch (this.state) { + case EntityDecoderState.NamedEntity: { + // Emit a named entity if we have one. + return this.result !== 0 && + (this.decodeMode !== DecodingMode.Attribute || + this.result === this.treeIndex) + ? this.emitNotTerminatedNamedEntity() + : 0; + } + // Otherwise, emit a numeric entity if we have one. + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + this.errors?.absenceOfDigitsInNumericCharacterReference( + this.consumed, + ); + return 0; + } + case EntityDecoderState.EntityStart: { + // Return 0 if we have no entity. + return 0; + } + } + } +} + +/** + * Creates a function that decodes entities in a string. + * + * @param decodeTree The decode tree. + * @returns A function that decodes entities in a string. + */ +function getDecoder(decodeTree: Uint16Array) { + let returnValue = ""; + const decoder = new EntityDecoder( + decodeTree, + (data) => (returnValue += fromCodePoint(data)), + ); + + return function decodeWithTrie( + input: string, + decodeMode: DecodingMode, + ): string { + let lastIndex = 0; + let offset = 0; + + while ((offset = input.indexOf("&", offset)) >= 0) { + returnValue += input.slice(lastIndex, offset); + + decoder.startEntity(decodeMode); + + const length = decoder.write( + input, + // Skip the "&" + offset + 1, + ); + + if (length < 0) { + lastIndex = offset + decoder.end(); + break; + } + + lastIndex = offset + length; + // If `length` is 0, skip the current `&` and continue. + offset = length === 0 ? lastIndex + 1 : lastIndex; + } + + const result = returnValue + input.slice(lastIndex); + + // Make sure we don't keep a reference to the final string. + returnValue = ""; + + return result; + }; +} + +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +export function determineBranch( + decodeTree: Uint16Array, + current: number, + nodeIndex: number, + char: number, +): number { + const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; + const jumpOffset = current & BinTrieFlags.JUMP_TABLE; + + // Case 1: Single branch encoded in jump offset + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1; + } + + // Case 2: Multiple branches encoded in jump table + if (jumpOffset) { + const value = char - jumpOffset; + + return value < 0 || value >= branchCount + ? -1 + : decodeTree[nodeIndex + value] - 1; + } + + // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16) + const packedKeySlots = (branchCount + 1) >> 1; + + /* + * Treat packed keys as a virtual sorted array of length `branchCount`. + * Key(i) = low byte for even i, high byte for odd i in slot i>>1. + */ + let lo = 0; + let hi = branchCount - 1; + + while (lo <= hi) { + const mid = (lo + hi) >>> 1; + const slot = mid >> 1; + const packed = decodeTree[nodeIndex + slot]; + const midKey = (packed >> ((mid & 1) * 8)) & 0xff; + + if (midKey < char) { + lo = mid + 1; + } else if (midKey > char) { + hi = mid - 1; + } else { + return decodeTree[nodeIndex + packedKeySlots + mid]; + } + } + + return -1; +} + +const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree); +const xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree); + +/** + * Decodes an HTML string. + * + * @param htmlString The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +export function decodeHTML( + htmlString: string, + mode: DecodingMode = DecodingMode.Legacy, +): string { + return htmlDecoder(htmlString, mode); +} + +/** + * Decodes an HTML string in an attribute. + * + * @param htmlAttribute The string to decode. + * @returns The decoded string. + */ +export function decodeHTMLAttribute(htmlAttribute: string): string { + return htmlDecoder(htmlAttribute, DecodingMode.Attribute); +} + +/** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param htmlString The string to decode. + * @returns The decoded string. + */ +export function decodeHTMLStrict(htmlString: string): string { + return htmlDecoder(htmlString, DecodingMode.Strict); +} + +/** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param xmlString The string to decode. + * @returns The decoded string. + */ +export function decodeXML(xmlString: string): string { + return xmlDecoder(xmlString, DecodingMode.Strict); +} + +export { + decodeCodePoint, + fromCodePoint, + replaceCodePoint, +} from "./decode-codepoint.js"; +// Re-export for use by eg. htmlparser2 +export { htmlDecodeTree } from "./generated/decode-data-html.js"; +export { xmlDecodeTree } from "./generated/decode-data-xml.js"; diff --git a/node_modules/entities/src/encode.ts b/node_modules/entities/src/encode.ts new file mode 100644 index 0000000..ed406fc --- /dev/null +++ b/node_modules/entities/src/encode.ts @@ -0,0 +1,93 @@ +import { getCodePoint, XML_BITSET_VALUE } from "./escape.js"; +import { htmlTrie } from "./generated/encode-html.js"; + +/** + * We store the characters to consider as a compact bitset for fast lookups. + */ +const HTML_BITSET = /* #__PURE__ */ new Uint32Array([ + 0x16_00, // Bits for 09,0A,0C + 0xfc_00_ff_fe, // 32..63 -> 21-2D (minus space), 2E,2F,3A-3F + 0xf8_00_00_01, // 64..95 -> 40, 5B-5F + 0x38_00_00_01, // 96..127-> 60, 7B-7D +]); + +const XML_BITSET = /* #__PURE__ */ new Uint32Array([0, XML_BITSET_VALUE, 0, 0]); + +/** + * Encodes all characters in the input using HTML entities. This includes + * characters that are valid ASCII characters in HTML documents, such as `#`. + * + * To get a more compact output, consider using the `encodeNonAsciiHTML` + * function, which will only encode characters that are not valid in HTML + * documents, as well as non-ASCII characters. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export function encodeHTML(input: string): string { + return encodeHTMLTrieRe(HTML_BITSET, input); +} +/** + * Encodes all non-ASCII characters, as well as characters not valid in HTML + * documents using HTML entities. This function will not encode characters that + * are valid in HTML documents, such as `#`. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export function encodeNonAsciiHTML(input: string): string { + return encodeHTMLTrieRe(XML_BITSET, input); +} + +function encodeHTMLTrieRe(bitset: Uint32Array, input: string): string { + let out: string | undefined; + let last = 0; // Start of the next untouched slice. + const { length } = input; + + for (let index = 0; index < length; index++) { + const char = input.charCodeAt(index); + // Skip ASCII characters that don't need encoding + if (char < 0x80 && !((bitset[char >>> 5] >>> char) & 1)) { + continue; + } + + if (out === undefined) out = input.substring(0, index); + else if (last !== index) out += input.substring(last, index); + + let node = htmlTrie.get(char); + + if (typeof node === "object") { + if (index + 1 < length) { + const nextChar = input.charCodeAt(index + 1); + const value = + typeof node.next === "number" + ? node.next === nextChar + ? node.nextValue + : undefined + : node.next.get(nextChar); + + if (value !== undefined) { + out += value; + index++; + last = index + 1; + continue; + } + } + node = node.value; + } + + if (node === undefined) { + const cp = getCodePoint(input, index); + out += `&#x${cp.toString(16)};`; + if (cp !== char) index++; + last = index + 1; + } else { + out += node; + last = index + 1; + } + } + + if (out === undefined) return input; + if (last < length) out += input.substr(last); + return out; +} diff --git a/node_modules/entities/src/escape.ts b/node_modules/entities/src/escape.ts new file mode 100644 index 0000000..a5ee774 --- /dev/null +++ b/node_modules/entities/src/escape.ts @@ -0,0 +1,161 @@ +const xmlCodeMap = new Map([ + [34, """], + [38, "&"], + [39, "'"], + [60, "<"], + [62, ">"], +]); + +// For compatibility with node < 4, we wrap `codePointAt` +export const getCodePoint: (c: string, index: number) => number = + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + String.prototype.codePointAt == null + ? (c: string, index: number): number => + (c.charCodeAt(index) & 0xfc_00) === 0xd8_00 + ? (c.charCodeAt(index) - 0xd8_00) * 0x4_00 + + c.charCodeAt(index + 1) - + 0xdc_00 + + 0x1_00_00 + : c.charCodeAt(index) + : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + (input: string, index: number): number => input.codePointAt(index)!; + +/** + * Bitset for ASCII characters that need to be escaped in XML. + */ +export const XML_BITSET_VALUE = 0x50_00_00_c4; // 32..63 -> 34 ("),38 (&),39 ('),60 (<),62 (>) + +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using XML entities. Uses a fast bitset scan instead of RegExp. + * + * If a character has no equivalent entity, a numeric hexadecimal reference + * (eg. `ü`) will be used. + */ +export function encodeXML(input: string): string { + let out: string | undefined; + let last = 0; + const { length } = input; + + for (let index = 0; index < length; index++) { + const char = input.charCodeAt(index); + + // Check for ASCII chars that don't need escaping + if ( + char < 0x80 && + (((XML_BITSET_VALUE >>> char) & 1) === 0 || char >= 64 || char < 32) + ) { + continue; + } + + if (out === undefined) out = input.substring(0, index); + else if (last !== index) out += input.substring(last, index); + + if (char < 64) { + // Known replacement + out += xmlCodeMap.get(char)!; + last = index + 1; + continue; + } + + // Non-ASCII: encode as numeric entity (handle surrogate pair) + const cp = getCodePoint(input, index); + out += `&#x${cp.toString(16)};`; + if (cp !== char) index++; // Skip trailing surrogate + last = index + 1; + } + + if (out === undefined) return input; + if (last < length) out += input.substr(last); + return out; +} + +/** + * Encodes all non-ASCII characters, as well as characters not valid in XML + * documents using numeric hexadecimal reference (eg. `ü`). + * + * Have a look at `escapeUTF8` if you want a more concise output at the expense + * of reduced transportability. + * + * @param data String to escape. + */ +export const escape: typeof encodeXML = encodeXML; + +/** + * Creates a function that escapes all characters matched by the given regular + * expression using the given map of characters to escape to their entities. + * + * @param regex Regular expression to match characters to escape. + * @param map Map of characters to escape to their entities. + * + * @returns Function that escapes all characters matched by the given regular + * expression using the given map of characters to escape to their entities. + */ +function getEscaper( + regex: RegExp, + map: Map<number, string>, +): (data: string) => string { + return function escape(data: string): string { + let match: RegExpExecArray | null; + let lastIndex = 0; + let result = ""; + + while ((match = regex.exec(data))) { + if (lastIndex !== match.index) { + result += data.substring(lastIndex, match.index); + } + + // We know that this character will be in the map. + result += map.get(match[0].charCodeAt(0))!; + + // Every match will be of length 1 + lastIndex = match.index + 1; + } + + return result + data.substring(lastIndex); + }; +} + +/** + * Encodes all characters not valid in XML documents using XML entities. + * + * Note that the output will be character-set dependent. + * + * @param data String to escape. + */ +export const escapeUTF8: (data: string) => string = /* #__PURE__ */ getEscaper( + /["&'<>]/g, + xmlCodeMap, +); + +/** + * Encodes all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export const escapeAttribute: (data: string) => string = + /* #__PURE__ */ getEscaper( + /["&\u00A0]/g, + new Map([ + [34, """], + [38, "&"], + [160, " "], + ]), + ); + +/** + * Encodes all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + * + * @param data String to escape. + */ +export const escapeText: (data: string) => string = /* #__PURE__ */ getEscaper( + /[&<>\u00A0]/g, + new Map([ + [38, "&"], + [60, "<"], + [62, ">"], + [160, " "], + ]), +); diff --git a/node_modules/entities/src/generated/.eslintrc.json b/node_modules/entities/src/generated/.eslintrc.json new file mode 100644 index 0000000..141a1c5 --- /dev/null +++ b/node_modules/entities/src/generated/.eslintrc.json @@ -0,0 +1,10 @@ +{ + "rules": { + "multiline-comment-style": 0, + "capitalized-comments": 0, + "unicorn/escape-case": 0, + "unicorn/no-hex-escape": 0, + "unicorn/numeric-separators-style": 0, + "unicorn/prefer-spread": 0 + } +} diff --git a/node_modules/entities/src/generated/decode-data-html.ts b/node_modules/entities/src/generated/decode-data-html.ts new file mode 100644 index 0000000..a9631e4 --- /dev/null +++ b/node_modules/entities/src/generated/decode-data-html.ts @@ -0,0 +1,6 @@ +// Generated using scripts/write-decode-map.ts + +import { decodeBase64 } from "../internal/decode-shared.js"; +export const htmlDecodeTree: Uint16Array = /* #__PURE__ */ decodeBase64( + "QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg", +); diff --git a/node_modules/entities/src/generated/decode-data-xml.ts b/node_modules/entities/src/generated/decode-data-xml.ts new file mode 100644 index 0000000..9871d1a --- /dev/null +++ b/node_modules/entities/src/generated/decode-data-xml.ts @@ -0,0 +1,6 @@ +// Generated using scripts/write-decode-map.ts + +import { decodeBase64 } from "../internal/decode-shared.js"; +export const xmlDecodeTree: Uint16Array = /* #__PURE__ */ decodeBase64( + "AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg", +); diff --git a/node_modules/entities/src/generated/encode-html.ts b/node_modules/entities/src/generated/encode-html.ts new file mode 100644 index 0000000..c16644e --- /dev/null +++ b/node_modules/entities/src/generated/encode-html.ts @@ -0,0 +1,17 @@ +// Generated using scripts/write-encode-map.ts +// This file contains a compact, single-string serialization of the HTML encode trie. +// Format per entry (sequence in ascending code point order using diff encoding): +// <diffBase36>[&name;][{<children>}] -- diff omitted when 0. +// "&name;" gives the entity value for the node. A following { starts a nested sub-map. +// Diffs use the same scheme as before: diff = currentKey - previousKey - 1, first entry stores key. + +import { + type EncodeTrieNode, + parseEncodeTrie, +} from "../internal/encode-shared.js"; + +// Compact serialized trie (intended to stay small & JS engine friendly) +export const htmlTrie: Map<number, EncodeTrieNode> = + /* #__PURE__ */ parseEncodeTrie( + "9 m!"#$%&'()*+,1./a:;<{6he<⃒}={6hx=⃥}>{6he>⃒}?@q[\]^_`5{2yfj}k{|}y ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒē2ĖėĘęĚěĜĝĞğĠġĢ1ĤĥĦħĨĩĪī2ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌō2ŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžjƒyƵ1rǵ1tȷ3yˆˇg˘˙˚˛˜˝1f̑3jΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ1ΣΤΥΦΧΨΩ7αβγδεζηθικλμνξοπρςστυφχψω7ϑϒ2ϕϖ5Ϝϝiϰϱ3ϵ϶aЁЂЃЄЅІЇЈЉЊЋЌ1ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя1ёђѓєѕіїјљњћќ1ўџ5gi    1    ​‌‍‎‏‐2–—―‖1‘’‚1“”„1†‡•2‥…9‰‱′″‴‵3‹›3‾2⁁1⁃⁄a⁏7⁗7 {6bu  }⁠⁡⁢⁣20€1a⃛⃜11ℂ2℅4ℊℋℌℍℎℏℐℑℒℓ1ℕ№℗℘ℙℚℛℜℝ℞3™1ℤ2℧ℨ℩2ℬℭ1ℯℰℱ1ℳℴℵℶℷℸcⅅⅆⅇⅈa⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞1d←↑→↓↔↕↖↗↘↙↚↛1↝{mw↝̸}↞↟↠↡↢↣↤↥↦↧1↩↪↫↬↭↮1↰↱↲↳1↵↶↷2↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛1⇝6⇤⇥f⇵7⇽⇾⇿∀∁∂{mw∂̸}∃∄∅1∇∈∉1∋∌2∏∐∑−∓∔1∖∗∘1√2∝∞∟∠{6he∠⃒}∡∢∣∤∥∦∧∨∩{1e68∩︀}∪{1e68∪︀}∫∬∭∮∯∰∱∲∳∴∵∶∷∸1∺∻∼{6he∼⃒}∽{mp∽̱}∾{mr∾̳}∿≀≁≂{mw≂̸}≃≄≅≆≇≈≉≊≋{mw≋̸}≌≍{6he≍⃒}≎{mw≎̸}≏{mw≏̸}≐{mw≐̸}≑≒≓≔≕≖≗1≙≚1≜2≟≠≡{6hx≡⃥}≢1≤{6he≤⃒}≥{6he≥⃒}≦{mw≦̸}≧{mw≧̸}≨{1e68≨︀}≩{1e68≩︀}≪{mw≪̸5uh≪⃒}≫{mw≫̸5uh≫⃒}≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿{mw≿̸}⊀⊁⊂{6he⊂⃒}⊃{6he⊃⃒}⊄⊅⊆⊇⊈⊉⊊{1e68⊊︀}⊋{1e68⊋︀}1⊍⊎⊏{mw⊏̸}⊐{mw⊐̸}⊑⊒⊓{1e68⊓︀}⊔{1e68⊔︀}⊕⊖⊗⊘⊙⊚⊛1⊝⊞⊟⊠⊡⊢⊣⊤⊥1⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰1⊲⊳⊴{6he⊴⃒}⊵{6he⊵⃒}⊶⊷⊸⊹⊺⊻1⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘{mw⋘̸}⋙{mw⋙̸}⋚{1e68⋚︀}⋛{1e68⋛︀}2⋞⋟⋠⋡⋢⋣2⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵{mw⋵̸}⋶⋷1⋹{mw⋹̸}⋺⋻⋼⋽⋾6⌅⌆1⌈⌉⌊⌋⌌⌍⌎⌏⌐1⌒⌓1⌕⌖5⌜⌝⌞⌟2⌢⌣9⌭⌮7⌶6⌽1⌿1o⍼1f⎰⎱2⎴⎵⎶11⏜⏝⏞⏟2⏢4⏧1n␣4kⓈ1j─1│9┌3┐3└3┘3├7┤7┬7┴7┼j═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬j▀3▄3█8░▒▓d□8▪▫1▭▮2▱1△▴▵2▸▹3▽▾▿2◂◃6◊○w◬2◯8◸◹◺◻◼8★☆7☎1d♀1♂t♠2♣1♥♦3♪2♭♮♯4j✓3✗8✠l✶x❘p❲❳2c⟈⟉s⟦⟧⟨⟩⟪⟫⟬⟭7⟵⟶⟷⟸⟹⟺1⟼2⟿76⤂⤃⤄⤅6⤌⤍⤎⤏⤐⤑⤒⤓2⤖2⤙⤚⤛⤜⤝⤞⤟⤠2⤣⤤⤥⤦⤧⤨⤩⤪8⤳{mw⤳̸}1⤵⤶⤷⤸⤹2⤼⤽7⥅2⥈⥉⥊⥋2⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶1⥸⥹1⥻⥼⥽⥾⥿5⦅⦆4⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖3⦚1⦜⦝6⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷1⦹1⦻⦼1⦾⦿⧀⧁⧂⧃⧄⧅3⧉3⧍⧎⧏{mw⧏̸}⧐{mw⧐̸}b⧜⧝⧞4⧣⧤⧥5⧫8⧴1⧶9⨀⨁⨂1⨄1⨆5⨌⨍2⨐⨑⨒⨓⨔⨕⨖⨗a⨢⨣⨤⨥⨦⨧1⨩⨪2⨭⨮⨯⨰⨱1⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼2⨿⩀1⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍2⩐2⩓⩔⩕⩖⩗⩘1⩚⩛⩜⩝1⩟6⩦3⩪2⩭{mw⩭̸}⩮⩯⩰{mw⩰̸}⩱⩲⩳⩴⩵1⩷⩸⩹⩺⩻⩼⩽{mw⩽̸}⩾{mw⩾̸}⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚2⪝⪞⪟⪠⪡{mw⪡̸}⪢{mw⪢̸}1⪤⪥⪦⪧⪨⪩⪪⪫⪬{1e68⪬︀}⪭{1e68⪭︀}⪮⪯{mw⪯̸}⪰{mw⪰̸}2⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅{mw⫅̸}⫆{mw⫆̸}⫇⫈2⫋{1e68⫋︀}⫌{1e68⫌︀}2⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛8⫤1⫦⫧⫨⫩1⫫⫬⫭⫮⫯⫰⫱⫲⫳9⫽{6hx⫽⃥}y7r{17ks𝒜1𝒞𝒟2𝒢2𝒥𝒦2𝒩𝒪𝒫𝒬1𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹1𝒻1𝒽𝒾𝒿𝓀𝓁𝓂𝓃1𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏1g𝔄𝔅1𝔇𝔈𝔉𝔊2𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔1𝔖𝔗𝔘𝔙𝔚𝔛𝔜1𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹1𝔻𝔼𝔽𝔾1𝕀𝕁𝕂𝕃𝕄1𝕆3𝕊𝕋𝕌𝕍𝕎𝕏𝕐1𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫}6vefffiflffiffl", + ); diff --git a/node_modules/entities/src/index.ts b/node_modules/entities/src/index.ts new file mode 100644 index 0000000..9b8fd0f --- /dev/null +++ b/node_modules/entities/src/index.ts @@ -0,0 +1,187 @@ +import { DecodingMode, decodeHTML, decodeXML } from "./decode.js"; +import { encodeHTML, encodeNonAsciiHTML } from "./encode.js"; +import { + encodeXML, + escapeAttribute, + escapeText, + escapeUTF8, +} from "./escape.js"; + +/** The level of entities to support. */ +export enum EntityLevel { + /** Support only XML entities. */ + XML = 0, + /** Support HTML entities, which are a superset of XML entities. */ + HTML = 1, +} + +export enum EncodingMode { + /** + * The output is UTF-8 encoded. Only characters that need escaping within + * XML will be escaped. + */ + UTF8, + /** + * The output consists only of ASCII characters. Characters that need + * escaping within HTML, and characters that aren't ASCII characters will + * be escaped. + */ + ASCII, + /** + * Encode all characters that have an equivalent entity, as well as all + * characters that are not ASCII characters. + */ + Extensive, + /** + * Encode all characters that have to be escaped in HTML attributes, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + Attribute, + /** + * Encode all characters that have to be escaped in HTML text, + * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. + */ + Text, +} + +export interface DecodingOptions { + /** + * The level of entities to support. + * @default {@link EntityLevel.XML} + */ + level?: EntityLevel; + /** + * Decoding mode. If `Legacy`, will support legacy entities not terminated + * with a semicolon (`;`). + * + * Always `Strict` for XML. For HTML, set this to `true` if you are parsing + * an attribute value. + * + * The deprecated `decodeStrict` function defaults this to `Strict`. + * + * @default {@link DecodingMode.Legacy} + */ + mode?: DecodingMode | undefined; +} + +/** + * Decodes a string with entities. + * + * @param input String to decode. + * @param options Decoding options. + */ +export function decode( + input: string, + options: DecodingOptions | EntityLevel = EntityLevel.XML, +): string { + const level = typeof options === "number" ? options : options.level; + + if (level === EntityLevel.HTML) { + const mode = typeof options === "object" ? options.mode : undefined; + return decodeHTML(input, mode); + } + + return decodeXML(input); +} + +/** + * Decodes a string with entities. Does not allow missing trailing semicolons for entities. + * + * @param input String to decode. + * @param options Decoding options. + * @deprecated Use `decode` with the `mode` set to `Strict`. + */ +export function decodeStrict( + input: string, + options: DecodingOptions | EntityLevel = EntityLevel.XML, +): string { + const normalizedOptions = + typeof options === "number" ? { level: options } : options; + normalizedOptions.mode ??= DecodingMode.Strict; + + return decode(input, normalizedOptions); +} + +/** + * Options for `encode`. + */ +export interface EncodingOptions { + /** + * The level of entities to support. + * @default {@link EntityLevel.XML} + */ + level?: EntityLevel; + /** + * Output format. + * @default {@link EncodingMode.Extensive} + */ + mode?: EncodingMode; +} + +/** + * Encodes a string with entities. + * + * @param input String to encode. + * @param options Encoding options. + */ +export function encode( + input: string, + options: EncodingOptions | EntityLevel = EntityLevel.XML, +): string { + const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = + typeof options === "number" ? { level: options } : options; + + switch (mode) { + case EncodingMode.UTF8: { + return escapeUTF8(input); + } + case EncodingMode.Attribute: { + return escapeAttribute(input); + } + case EncodingMode.Text: { + return escapeText(input); + } + case EncodingMode.ASCII: { + return level === EntityLevel.HTML + ? encodeNonAsciiHTML(input) + : encodeXML(input); + } + // biome-ignore lint/complexity/noUselessSwitchCase: we get an error for the switch not being exhaustive + case EncodingMode.Extensive: // eslint-disable-line unicorn/no-useless-switch-case + default: { + return level === EntityLevel.HTML + ? encodeHTML(input) + : encodeXML(input); + } + } +} + +export { + DecodingMode, + decodeHTML, + // Legacy aliases (deprecated) + decodeHTML as decodeHTML4, + decodeHTML as decodeHTML5, + decodeHTMLAttribute, + decodeHTMLStrict, + decodeHTMLStrict as decodeHTML4Strict, + decodeHTMLStrict as decodeHTML5Strict, + decodeXML, + decodeXML as decodeXMLStrict, + EntityDecoder, +} from "./decode.js"; + +export { + encodeHTML, + // Legacy aliases (deprecated) + encodeHTML as encodeHTML4, + encodeHTML as encodeHTML5, + encodeNonAsciiHTML, +} from "./encode.js"; +export { + encodeXML, + escape, + escapeAttribute, + escapeText, + escapeUTF8, +} from "./escape.js"; diff --git a/node_modules/entities/src/internal/bin-trie-flags.ts b/node_modules/entities/src/internal/bin-trie-flags.ts new file mode 100644 index 0000000..d8e2752 --- /dev/null +++ b/node_modules/entities/src/internal/bin-trie-flags.ts @@ -0,0 +1,16 @@ +/** + * Bit flags & masks for the binary trie encoding used for entity decoding. + * + * Bit layout (16 bits total): + * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value) + * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';'). + * If valueLength==0: compact run flag. + * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run) + * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char + */ +export enum BinTrieFlags { + VALUE_LENGTH = 0b1100_0000_0000_0000, + FLAG13 = 0b0010_0000_0000_0000, + BRANCH_LENGTH = 0b0001_1111_1000_0000, + JUMP_TABLE = 0b0000_0000_0111_1111, +} diff --git a/node_modules/entities/src/internal/decode-shared.ts b/node_modules/entities/src/internal/decode-shared.ts new file mode 100644 index 0000000..ddea0d3 --- /dev/null +++ b/node_modules/entities/src/internal/decode-shared.ts @@ -0,0 +1,30 @@ +/* + * Shared base64 decode helper for generated decode data. + * Assumes global atob is available. + */ +export function decodeBase64(input: string): Uint16Array { + const binary: string = + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof atob === "function" + ? // Browser (and Node >=16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + atob(input) + : // Older Node versions (<16) + // eslint-disable-next-line n/no-unsupported-features/node-builtins + typeof Buffer.from === "function" + ? // eslint-disable-next-line n/no-unsupported-features/node-builtins + Buffer.from(input, "base64").toString("binary") + : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api + new Buffer(input, "base64").toString("binary"); + + const evenLength = binary.length & ~1; // Round down to even length + const out = new Uint16Array(evenLength / 2); + + for (let index = 0, outIndex = 0; index < evenLength; index += 2) { + const lo = binary.charCodeAt(index); + const hi = binary.charCodeAt(index + 1); + out[outIndex++] = lo | (hi << 8); + } + + return out; +} diff --git a/node_modules/entities/src/internal/encode-shared.ts b/node_modules/entities/src/internal/encode-shared.ts new file mode 100644 index 0000000..0eaab00 --- /dev/null +++ b/node_modules/entities/src/internal/encode-shared.ts @@ -0,0 +1,121 @@ +/** + * A node inside the encoding trie used by `encode.ts`. + * + * There are two physical shapes to minimize allocations and lookup cost: + * + * 1. Leaf node (string) + * - A plain string (already in the form `"&name;"`). + * - Represents a terminal match with no children. + * + * 2. Branch / value node (object) + */ +export type EncodeTrieNode = + | string + | { + /** + * Entity value for the current code point sequence (wrapped: `&...;`). + * Present when the path to this node itself is a valid named entity. + */ + value: string | undefined; + /** If a number, the next code unit of the only next character. */ + next: number | Map<number, EncodeTrieNode>; + /** If next is a number, `nextValue` contains the entity value. */ + nextValue?: string; + }; + +/** + * Parse a compact encode trie string into a Map structure used for encoding. + * + * Format per entry (ascending code points using delta encoding): + * <diffBase36>[&name;][{<children>}] -- diff omitted when 0 + * Where diff = currentKey - previousKey - 1 (first entry stores absolute key). + * `&name;` is the entity value (already wrapped); a following `{` denotes children. + */ +export function parseEncodeTrie( + serialized: string, +): Map<number, EncodeTrieNode> { + const top = new Map<number, EncodeTrieNode>(); + const totalLength = serialized.length; + let cursor = 0; + let lastTopKey = -1; + + function readDiff(): number { + const start = cursor; + while (cursor < totalLength) { + const char = serialized.charAt(cursor); + + if ((char < "0" || char > "9") && (char < "a" || char > "z")) { + break; + } + cursor++; + } + if (cursor === start) return 0; + return Number.parseInt(serialized.slice(start, cursor), 36); + } + + function readEntity(): string { + if (serialized[cursor] !== "&") { + throw new Error(`Child entry missing value near index ${cursor}`); + } + + // Cursor currently points at '&' + const start = cursor; + const end = serialized.indexOf(";", cursor + 1); + if (end === -1) { + throw new Error(`Unterminated entity starting at index ${start}`); + } + cursor = end + 1; // Move past ';' + return serialized.slice(start, cursor); // Includes & ... ; + } + + while (cursor < totalLength) { + const keyDiff = readDiff(); + const key = lastTopKey === -1 ? keyDiff : lastTopKey + keyDiff + 1; + + let value: string | undefined; + if (serialized[cursor] === "&") value = readEntity(); + + if (serialized[cursor] === "{") { + cursor++; // Skip '{' + // Parse first child + let diff = readDiff(); + let childKey = diff; // First key (lastChildKey = -1) + const firstValue = readEntity(); + if (serialized[cursor] === "{") { + throw new Error("Unexpected nested '{' beyond depth 2"); + } + // If end of block -> single child optimization + if (serialized[cursor] === "}") { + top.set(key, { value, next: childKey, nextValue: firstValue }); + cursor++; // Skip '}' + } else { + const childMap = new Map<number, EncodeTrieNode>(); + childMap.set(childKey, firstValue); + let lastChildKey = childKey; + while (cursor < totalLength && serialized[cursor] !== "}") { + diff = readDiff(); + childKey = lastChildKey + diff + 1; + const childValue = readEntity(); + if (serialized[cursor] === "{") { + throw new Error("Unexpected nested '{' beyond depth 2"); + } + childMap.set(childKey, childValue); + lastChildKey = childKey; + } + if (serialized[cursor] !== "}") { + throw new Error("Unterminated child block"); + } + cursor++; // Skip '}' + top.set(key, { value, next: childMap }); + } + } else if (value === undefined) { + throw new Error( + `Malformed encode trie: missing value at index ${cursor}`, + ); + } else { + top.set(key, value); + } + lastTopKey = key; + } + return top; +} diff --git a/node_modules/estree-walker/CHANGELOG.md b/node_modules/estree-walker/CHANGELOG.md new file mode 100644 index 0000000..20e8c7e --- /dev/null +++ b/node_modules/estree-walker/CHANGELOG.md @@ -0,0 +1,92 @@ +# changelog + +## 2.0.2 + +* Internal tidying up (change test runner, convert to JS) + +## 2.0.1 + +* Robustify `this.remove()`, pass current index to walker functions ([#18](https://github.com/Rich-Harris/estree-walker/pull/18)) + +## 2.0.0 + +* Add an `asyncWalk` export ([#20](https://github.com/Rich-Harris/estree-walker/pull/20)) +* Internal rewrite + +## 1.0.1 + +* Relax node type to `BaseNode` ([#17](https://github.com/Rich-Harris/estree-walker/pull/17)) + +## 1.0.0 + +* Don't cache child keys + +## 0.9.0 + +* Add `this.remove()` method + +## 0.8.1 + +* Fix pkg.files + +## 0.8.0 + +* Adopt `estree` types + +## 0.7.0 + +* Add a `this.replace(node)` method + +## 0.6.1 + +* Only traverse nodes that exist and have a type ([#9](https://github.com/Rich-Harris/estree-walker/pull/9)) +* Only cache keys for nodes with a type ([#8](https://github.com/Rich-Harris/estree-walker/pull/8)) + +## 0.6.0 + +* Fix walker context type +* Update deps, remove unncessary Bublé transformation + +## 0.5.2 + +* Add types to package + +## 0.5.1 + +* Prevent context corruption when `walk()` is called during a walk + +## 0.5.0 + +* Export `childKeys`, for manually fixing in case of malformed ASTs + +## 0.4.0 + +* Add TypeScript typings ([#3](https://github.com/Rich-Harris/estree-walker/pull/3)) + +## 0.3.1 + +* Include `pkg.repository` ([#2](https://github.com/Rich-Harris/estree-walker/pull/2)) + +## 0.3.0 + +* More predictable ordering + +## 0.2.1 + +* Keep `context` shape + +## 0.2.0 + +* Add ES6 build + +## 0.1.3 + +* npm snafu + +## 0.1.2 + +* Pass current prop and index to `enter`/`leave` callbacks + +## 0.1.1 + +* First release diff --git a/node_modules/estree-walker/LICENSE b/node_modules/estree-walker/LICENSE new file mode 100644 index 0000000..63b6209 --- /dev/null +++ b/node_modules/estree-walker/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2015-20 [these people](https://github.com/Rich-Harris/estree-walker/graphs/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. \ No newline at end of file diff --git a/node_modules/estree-walker/README.md b/node_modules/estree-walker/README.md new file mode 100644 index 0000000..d877af3 --- /dev/null +++ b/node_modules/estree-walker/README.md @@ -0,0 +1,48 @@ +# estree-walker + +Simple utility for walking an [ESTree](https://github.com/estree/estree)-compliant AST, such as one generated by [acorn](https://github.com/marijnh/acorn). + + +## Installation + +```bash +npm i estree-walker +``` + + +## Usage + +```js +var walk = require( 'estree-walker' ).walk; +var acorn = require( 'acorn' ); + +ast = acorn.parse( sourceCode, options ); // https://github.com/acornjs/acorn + +walk( ast, { + enter: function ( node, parent, prop, index ) { + // some code happens + }, + leave: function ( node, parent, prop, index ) { + // some code happens + } +}); +``` + +Inside the `enter` function, calling `this.skip()` will prevent the node's children being walked, or the `leave` function (which is optional) being called. + +Call `this.replace(new_node)` in either `enter` or `leave` to replace the current node with a new one. + +Call `this.remove()` in either `enter` or `leave` to remove the current node. + +## Why not use estraverse? + +The ESTree spec is evolving to accommodate ES6/7. I've had a couple of experiences where [estraverse](https://github.com/estools/estraverse) was unable to handle an AST generated by recent versions of acorn, because it hard-codes visitor keys. + +estree-walker, by contrast, simply enumerates a node's properties to find child nodes (and child lists of nodes), and is therefore resistant to spec changes. It's also much smaller. (The performance, if you're wondering, is basically identical.) + +None of which should be taken as criticism of estraverse, which has more features and has been battle-tested in many more situations, and for which I'm very grateful. + + +## License + +MIT diff --git a/node_modules/estree-walker/dist/esm/estree-walker.js b/node_modules/estree-walker/dist/esm/estree-walker.js new file mode 100644 index 0000000..a0beeeb --- /dev/null +++ b/node_modules/estree-walker/dist/esm/estree-walker.js @@ -0,0 +1,333 @@ +// @ts-check +/** @typedef { import('estree').BaseNode} BaseNode */ + +/** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; +}} WalkerContext */ + +class WalkerBase { + constructor() { + /** @type {boolean} */ + this.should_skip = false; + + /** @type {boolean} */ + this.should_remove = false; + + /** @type {BaseNode | null} */ + this.replacement = null; + + /** @type {WalkerContext} */ + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } +} + +// @ts-check + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker.js').WalkerContext} WalkerContext */ + +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ + +class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {SyncHandler} */ + this.enter = enter; + + /** @type {SyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } +} + +// @ts-check + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker').WalkerContext} WalkerContext */ + +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => Promise<void>} AsyncHandler */ + +class AsyncWalker extends WalkerBase { + /** + * + * @param {AsyncHandler} enter + * @param {AsyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {AsyncHandler} */ + this.enter = enter; + + /** @type {AsyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {Promise<BaseNode>} + */ + async visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + await this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!(await this.visit(value[i], node, key, i))) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + await this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + await this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } +} + +// @ts-check + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./sync.js').SyncHandler} SyncHandler */ +/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ + +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ +function walk(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); +} + +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: AsyncHandler + * leave?: AsyncHandler + * }} walker + * @returns {Promise<BaseNode>} + */ +async function asyncWalk(ast, { enter, leave }) { + const instance = new AsyncWalker(enter, leave); + return await instance.visit(ast, null); +} + +export { asyncWalk, walk }; diff --git a/node_modules/estree-walker/dist/esm/package.json b/node_modules/estree-walker/dist/esm/package.json new file mode 100644 index 0000000..7c34deb --- /dev/null +++ b/node_modules/estree-walker/dist/esm/package.json @@ -0,0 +1 @@ +{"type":"module"} \ No newline at end of file diff --git a/node_modules/estree-walker/dist/umd/estree-walker.js b/node_modules/estree-walker/dist/umd/estree-walker.js new file mode 100644 index 0000000..46fed0f --- /dev/null +++ b/node_modules/estree-walker/dist/umd/estree-walker.js @@ -0,0 +1,344 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.estreeWalker = {})); +}(this, (function (exports) { 'use strict'; + + // @ts-check + /** @typedef { import('estree').BaseNode} BaseNode */ + + /** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; + }} WalkerContext */ + + class WalkerBase { + constructor() { + /** @type {boolean} */ + this.should_skip = false; + + /** @type {boolean} */ + this.should_remove = false; + + /** @type {BaseNode | null} */ + this.replacement = null; + + /** @type {WalkerContext} */ + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./walker.js').WalkerContext} WalkerContext */ + + /** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ + + class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {SyncHandler} */ + this.enter = enter; + + /** @type {SyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./walker').WalkerContext} WalkerContext */ + + /** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => Promise<void>} AsyncHandler */ + + class AsyncWalker extends WalkerBase { + /** + * + * @param {AsyncHandler} enter + * @param {AsyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {AsyncHandler} */ + this.enter = enter; + + /** @type {AsyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {Promise<BaseNode>} + */ + async visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + await this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!(await this.visit(value[i], node, key, i))) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + await this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + await this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./sync.js').SyncHandler} SyncHandler */ + /** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ + + /** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ + function walk(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); + } + + /** + * + * @param {BaseNode} ast + * @param {{ + * enter?: AsyncHandler + * leave?: AsyncHandler + * }} walker + * @returns {Promise<BaseNode>} + */ + async function asyncWalk(ast, { enter, leave }) { + const instance = new AsyncWalker(enter, leave); + return await instance.visit(ast, null); + } + + exports.asyncWalk = asyncWalk; + exports.walk = walk; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/estree-walker/package.json b/node_modules/estree-walker/package.json new file mode 100644 index 0000000..f646eb5 --- /dev/null +++ b/node_modules/estree-walker/package.json @@ -0,0 +1,37 @@ +{ + "name": "estree-walker", + "description": "Traverse an ESTree-compliant AST", + "version": "2.0.2", + "private": false, + "author": "Rich Harris", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/Rich-Harris/estree-walker" + }, + "type": "commonjs", + "main": "./dist/umd/estree-walker.js", + "module": "./dist/esm/estree-walker.js", + "exports": { + "require": "./dist/umd/estree-walker.js", + "import": "./dist/esm/estree-walker.js" + }, + "types": "types/index.d.ts", + "scripts": { + "prepublishOnly": "npm run build && npm test", + "build": "tsc && rollup -c", + "test": "uvu test" + }, + "devDependencies": { + "@types/estree": "0.0.42", + "rollup": "^2.10.9", + "typescript": "^3.7.5", + "uvu": "^0.5.1" + }, + "files": [ + "src", + "dist", + "types", + "README.md" + ] +} diff --git a/node_modules/estree-walker/src/async.js b/node_modules/estree-walker/src/async.js new file mode 100644 index 0000000..54276b5 --- /dev/null +++ b/node_modules/estree-walker/src/async.js @@ -0,0 +1,118 @@ +// @ts-check +import { WalkerBase } from './walker.js'; + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker').WalkerContext} WalkerContext */ + +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => Promise<void>} AsyncHandler */ + +export class AsyncWalker extends WalkerBase { + /** + * + * @param {AsyncHandler} enter + * @param {AsyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {AsyncHandler} */ + this.enter = enter; + + /** @type {AsyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {Promise<BaseNode>} + */ + async visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + await this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!(await this.visit(value[i], node, key, i))) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + await this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + await this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } +} diff --git a/node_modules/estree-walker/src/index.js b/node_modules/estree-walker/src/index.js new file mode 100644 index 0000000..dcf4c72 --- /dev/null +++ b/node_modules/estree-walker/src/index.js @@ -0,0 +1,35 @@ +// @ts-check +import { SyncWalker } from './sync.js'; +import { AsyncWalker } from './async.js'; + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./sync.js').SyncHandler} SyncHandler */ +/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ + +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ +export function walk(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); +} + +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: AsyncHandler + * leave?: AsyncHandler + * }} walker + * @returns {Promise<BaseNode>} + */ +export async function asyncWalk(ast, { enter, leave }) { + const instance = new AsyncWalker(enter, leave); + return await instance.visit(ast, null); +} diff --git a/node_modules/estree-walker/src/package.json b/node_modules/estree-walker/src/package.json new file mode 100644 index 0000000..1632c2c --- /dev/null +++ b/node_modules/estree-walker/src/package.json @@ -0,0 +1 @@ +{"type": "module"} \ No newline at end of file diff --git a/node_modules/estree-walker/src/sync.js b/node_modules/estree-walker/src/sync.js new file mode 100644 index 0000000..b3cea40 --- /dev/null +++ b/node_modules/estree-walker/src/sync.js @@ -0,0 +1,118 @@ +// @ts-check +import { WalkerBase } from './walker.js'; + +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker.js').WalkerContext} WalkerContext */ + +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ + +export class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {SyncHandler} */ + this.enter = enter; + + /** @type {SyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } +} diff --git a/node_modules/estree-walker/src/walker.js b/node_modules/estree-walker/src/walker.js new file mode 100644 index 0000000..3555d88 --- /dev/null +++ b/node_modules/estree-walker/src/walker.js @@ -0,0 +1,61 @@ +// @ts-check +/** @typedef { import('estree').BaseNode} BaseNode */ + +/** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; +}} WalkerContext */ + +export class WalkerBase { + constructor() { + /** @type {boolean} */ + this.should_skip = false; + + /** @type {boolean} */ + this.should_remove = false; + + /** @type {BaseNode | null} */ + this.replacement = null; + + /** @type {WalkerContext} */ + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } +} diff --git a/node_modules/estree-walker/types/async.d.ts b/node_modules/estree-walker/types/async.d.ts new file mode 100644 index 0000000..c85bfdc --- /dev/null +++ b/node_modules/estree-walker/types/async.d.ts @@ -0,0 +1,53 @@ +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker').WalkerContext} WalkerContext */ +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => Promise<void>} AsyncHandler */ +export class AsyncWalker extends WalkerBase { + /** + * + * @param {AsyncHandler} enter + * @param {AsyncHandler} leave + */ + constructor(enter: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>, leave: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>); + /** @type {AsyncHandler} */ + enter: AsyncHandler; + /** @type {AsyncHandler} */ + leave: AsyncHandler; + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {Promise<BaseNode>} + */ + visit(node: import("estree").BaseNode, parent: import("estree").BaseNode, prop?: string, index?: number): Promise<import("estree").BaseNode>; + should_skip: any; + should_remove: any; + replacement: any; +} +export type BaseNode = import("estree").BaseNode; +export type WalkerContext = { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}; +export type AsyncHandler = (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>; +import { WalkerBase } from "./walker.js"; diff --git a/node_modules/estree-walker/types/index.d.ts b/node_modules/estree-walker/types/index.d.ts new file mode 100644 index 0000000..dfc3277 --- /dev/null +++ b/node_modules/estree-walker/types/index.d.ts @@ -0,0 +1,56 @@ +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./sync.js').SyncHandler} SyncHandler */ +/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ +export function walk(ast: import("estree").BaseNode, { enter, leave }: { + enter?: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void; + leave?: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void; +}): import("estree").BaseNode; +/** + * + * @param {BaseNode} ast + * @param {{ + * enter?: AsyncHandler + * leave?: AsyncHandler + * }} walker + * @returns {Promise<BaseNode>} + */ +export function asyncWalk(ast: import("estree").BaseNode, { enter, leave }: { + enter?: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>; + leave?: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>; +}): Promise<import("estree").BaseNode>; +export type BaseNode = import("estree").BaseNode; +export type SyncHandler = (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void; +export type AsyncHandler = (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise<void>; diff --git a/node_modules/estree-walker/types/sync.d.ts b/node_modules/estree-walker/types/sync.d.ts new file mode 100644 index 0000000..e9e4cc1 --- /dev/null +++ b/node_modules/estree-walker/types/sync.d.ts @@ -0,0 +1,53 @@ +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef { import('./walker.js').WalkerContext} WalkerContext */ +/** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ +export class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void, leave: (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; + }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void); + /** @type {SyncHandler} */ + enter: SyncHandler; + /** @type {SyncHandler} */ + leave: SyncHandler; + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node: import("estree").BaseNode, parent: import("estree").BaseNode, prop?: string, index?: number): import("estree").BaseNode; + should_skip: any; + should_remove: any; + replacement: any; +} +export type BaseNode = import("estree").BaseNode; +export type WalkerContext = { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}; +export type SyncHandler = (this: { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void; +import { WalkerBase } from "./walker.js"; diff --git a/node_modules/estree-walker/types/tsconfig.tsbuildinfo b/node_modules/estree-walker/types/tsconfig.tsbuildinfo new file mode 100644 index 0000000..799022f --- /dev/null +++ b/node_modules/estree-walker/types/tsconfig.tsbuildinfo @@ -0,0 +1,345 @@ +{ + "program": { + "fileInfos": { + "../node_modules/typescript/lib/lib.es5.d.ts": { + "version": "fc43680ad3a1a4ec8c7b8d908af1ec9ddff87845346de5f02c735c9171fa98ea", + "signature": "fc43680ad3a1a4ec8c7b8d908af1ec9ddff87845346de5f02c735c9171fa98ea" + }, + "../node_modules/typescript/lib/lib.es2015.d.ts": { + "version": "7994d44005046d1413ea31d046577cdda33b8b2470f30281fd9c8b3c99fe2d96", + "signature": "7994d44005046d1413ea31d046577cdda33b8b2470f30281fd9c8b3c99fe2d96" + }, + "../node_modules/typescript/lib/lib.es2016.d.ts": { + "version": "5f217838d25704474d9ef93774f04164889169ca31475fe423a9de6758f058d1", + "signature": "5f217838d25704474d9ef93774f04164889169ca31475fe423a9de6758f058d1" + }, + "../node_modules/typescript/lib/lib.es2017.d.ts": { + "version": "459097c7bdd88fc5731367e56591e4f465f2c9de81a35427a7bd473165c34743", + "signature": "459097c7bdd88fc5731367e56591e4f465f2c9de81a35427a7bd473165c34743" + }, + "../node_modules/typescript/lib/lib.dom.d.ts": { + "version": "d93de5e8a7275cb9d47481410e13b3b1debb997e216490954b5d106e37e086de", + "signature": "d93de5e8a7275cb9d47481410e13b3b1debb997e216490954b5d106e37e086de" + }, + "../node_modules/typescript/lib/lib.dom.iterable.d.ts": { + "version": "8329c3401aa8708426c7760f14219170f69a2cb77e4519758cec6f5027270faf", + "signature": "8329c3401aa8708426c7760f14219170f69a2cb77e4519758cec6f5027270faf" + }, + "../node_modules/typescript/lib/lib.webworker.importscripts.d.ts": { + "version": "fe4e59403e34c7ff747abe4ff6abbc7718229556d7c1a5b93473fb53156c913b", + "signature": "fe4e59403e34c7ff747abe4ff6abbc7718229556d7c1a5b93473fb53156c913b" + }, + "../node_modules/typescript/lib/lib.scripthost.d.ts": { + "version": "b9faa17292f17d2ad75e34fac77dd63a6403af1dba02d39cd0cbb9ffdf3de8b9", + "signature": "b9faa17292f17d2ad75e34fac77dd63a6403af1dba02d39cd0cbb9ffdf3de8b9" + }, + "../node_modules/typescript/lib/lib.es2015.core.d.ts": { + "version": "734ddc145e147fbcd55f07d034f50ccff1086f5a880107665ec326fb368876f6", + "signature": "734ddc145e147fbcd55f07d034f50ccff1086f5a880107665ec326fb368876f6" + }, + "../node_modules/typescript/lib/lib.es2015.collection.d.ts": { + "version": "4a0862a21f4700de873db3b916f70e41570e2f558da77d2087c9490f5a0615d8", + "signature": "4a0862a21f4700de873db3b916f70e41570e2f558da77d2087c9490f5a0615d8" + }, + "../node_modules/typescript/lib/lib.es2015.generator.d.ts": { + "version": "765e0e9c9d74cf4d031ca8b0bdb269a853e7d81eda6354c8510218d03db12122", + "signature": "765e0e9c9d74cf4d031ca8b0bdb269a853e7d81eda6354c8510218d03db12122" + }, + "../node_modules/typescript/lib/lib.es2015.iterable.d.ts": { + "version": "285958e7699f1babd76d595830207f18d719662a0c30fac7baca7df7162a9210", + "signature": "285958e7699f1babd76d595830207f18d719662a0c30fac7baca7df7162a9210" + }, + "../node_modules/typescript/lib/lib.es2015.promise.d.ts": { + "version": "d4deaafbb18680e3143e8b471acd650ed6f72a408a33137f0a0dd104fbe7f8ca", + "signature": "d4deaafbb18680e3143e8b471acd650ed6f72a408a33137f0a0dd104fbe7f8ca" + }, + "../node_modules/typescript/lib/lib.es2015.proxy.d.ts": { + "version": "5e72f949a89717db444e3bd9433468890068bb21a5638d8ab15a1359e05e54fe", + "signature": "5e72f949a89717db444e3bd9433468890068bb21a5638d8ab15a1359e05e54fe" + }, + "../node_modules/typescript/lib/lib.es2015.reflect.d.ts": { + "version": "f5b242136ae9bfb1cc99a5971cccc44e99947ae6b5ef6fd8aa54b5ade553b976", + "signature": "f5b242136ae9bfb1cc99a5971cccc44e99947ae6b5ef6fd8aa54b5ade553b976" + }, + "../node_modules/typescript/lib/lib.es2015.symbol.d.ts": { + "version": "9ae2860252d6b5f16e2026d8a2c2069db7b2a3295e98b6031d01337b96437230", + "signature": "9ae2860252d6b5f16e2026d8a2c2069db7b2a3295e98b6031d01337b96437230" + }, + "../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": { + "version": "3e0a459888f32b42138d5a39f706ff2d55d500ab1031e0988b5568b0f67c2303", + "signature": "3e0a459888f32b42138d5a39f706ff2d55d500ab1031e0988b5568b0f67c2303" + }, + "../node_modules/typescript/lib/lib.es2016.array.include.d.ts": { + "version": "3f96f1e570aedbd97bf818c246727151e873125d0512e4ae904330286c721bc0", + "signature": "3f96f1e570aedbd97bf818c246727151e873125d0512e4ae904330286c721bc0" + }, + "../node_modules/typescript/lib/lib.es2017.object.d.ts": { + "version": "c2d60b2e558d44384e4704b00e6b3d154334721a911f094d3133c35f0917b408", + "signature": "c2d60b2e558d44384e4704b00e6b3d154334721a911f094d3133c35f0917b408" + }, + "../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": { + "version": "b8667586a618c5cf64523d4e500ae39e781428abfb28f3de441fc66b56144b6f", + "signature": "b8667586a618c5cf64523d4e500ae39e781428abfb28f3de441fc66b56144b6f" + }, + "../node_modules/typescript/lib/lib.es2017.string.d.ts": { + "version": "21df2e0059f14dcb4c3a0e125859f6b6ff01332ee24b0065a741d121250bc71c", + "signature": "21df2e0059f14dcb4c3a0e125859f6b6ff01332ee24b0065a741d121250bc71c" + }, + "../node_modules/typescript/lib/lib.es2017.intl.d.ts": { + "version": "c1759cb171c7619af0d2234f2f8fb2a871ee88e956e2ed91bb61778e41f272c6", + "signature": "c1759cb171c7619af0d2234f2f8fb2a871ee88e956e2ed91bb61778e41f272c6" + }, + "../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": { + "version": "28569d59e07d4378cb3d54979c4c60f9f06305c9bb6999ffe6cab758957adc46", + "signature": "28569d59e07d4378cb3d54979c4c60f9f06305c9bb6999ffe6cab758957adc46" + }, + "../node_modules/typescript/lib/lib.es2017.full.d.ts": { + "version": "873c09f1c309389742d98b7b67419a8e0a5fa6f10ce59fd5149ecd31a2818594", + "signature": "873c09f1c309389742d98b7b67419a8e0a5fa6f10ce59fd5149ecd31a2818594" + }, + "../node_modules/@types/estree/index.d.ts": { + "version": "c2efad8a2f2d7fb931ff15c7959fb45340e74684cd665ddf0cbf9b3977be1644", + "signature": "c2efad8a2f2d7fb931ff15c7959fb45340e74684cd665ddf0cbf9b3977be1644" + }, + "../src/walker.js": { + "version": "4cc9d0e334d83a4cebeeac502de37a1aeeb953f6d4145a886d9eecea1f2142a7", + "signature": "075872468ccc19c83b03fd717fc9305b5f8ec09592210cf60279cb13eca2bd70" + }, + "../src/async.js": { + "version": "904efd145090ac40c3c98f29cc928332898a62ab642dd5921db2ae249bfe014a", + "signature": "da428f781d6dc6dfd4f4afd0dd5f25a780897dc8b57e5b30462491b7d08f32c0" + }, + "../src/sync.js": { + "version": "85bb22b85042f0a3717d8fac2fc8f62af16894652be34d1e08eb3e63785535f5", + "signature": "5b131a727db18c956611a5e33d08217df96d0f2e0f26d98b804d1ec2407e59ae" + }, + "../src/index.js": { + "version": "99128f4c6cb79cb1e3abf3f2ba96faedd2b820aab4fd7f743aab0b8d710a73af", + "signature": "c52be5c79280bfcfcf359c084c6f2f70f405b0ad14dde96b6703dbc5ef2261f5" + } + }, + "options": { + "allowJs": true, + "target": 4, + "module": 99, + "types": [ + "estree" + ], + "declaration": true, + "declarationDir": "./", + "emitDeclarationOnly": true, + "outDir": "./", + "newLine": 1, + "noImplicitAny": true, + "noImplicitThis": true, + "incremental": true, + "configFilePath": "../tsconfig.json" + }, + "referencedMap": { + "../src/walker.js": [ + "../node_modules/@types/estree/index.d.ts" + ], + "../src/async.js": [ + "../src/walker.js", + "../node_modules/@types/estree/index.d.ts" + ], + "../src/sync.js": [ + "../src/walker.js", + "../node_modules/@types/estree/index.d.ts" + ], + "../src/index.js": [ + "../src/sync.js", + "../src/async.js", + "../node_modules/@types/estree/index.d.ts" + ] + }, + "exportedModulesMap": { + "../src/walker.js": [ + "../node_modules/@types/estree/index.d.ts" + ], + "../src/async.js": [ + "../node_modules/@types/estree/index.d.ts" + ], + "../src/sync.js": [ + "../node_modules/@types/estree/index.d.ts" + ], + "../src/index.js": [ + "../node_modules/@types/estree/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../node_modules/typescript/lib/lib.es5.d.ts", + "../node_modules/typescript/lib/lib.es2015.d.ts", + "../node_modules/typescript/lib/lib.es2016.d.ts", + "../node_modules/typescript/lib/lib.es2017.d.ts", + "../node_modules/typescript/lib/lib.dom.d.ts", + "../node_modules/typescript/lib/lib.dom.iterable.d.ts", + "../node_modules/typescript/lib/lib.webworker.importscripts.d.ts", + "../node_modules/typescript/lib/lib.scripthost.d.ts", + "../node_modules/typescript/lib/lib.es2015.core.d.ts", + "../node_modules/typescript/lib/lib.es2015.collection.d.ts", + "../node_modules/typescript/lib/lib.es2015.generator.d.ts", + "../node_modules/typescript/lib/lib.es2015.iterable.d.ts", + "../node_modules/typescript/lib/lib.es2015.promise.d.ts", + "../node_modules/typescript/lib/lib.es2015.proxy.d.ts", + "../node_modules/typescript/lib/lib.es2015.reflect.d.ts", + "../node_modules/typescript/lib/lib.es2015.symbol.d.ts", + "../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts", + "../node_modules/typescript/lib/lib.es2016.array.include.d.ts", + "../node_modules/typescript/lib/lib.es2017.object.d.ts", + "../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts", + "../node_modules/typescript/lib/lib.es2017.string.d.ts", + "../node_modules/typescript/lib/lib.es2017.intl.d.ts", + "../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts", + "../node_modules/typescript/lib/lib.es2017.full.d.ts", + "../node_modules/@types/estree/index.d.ts", + "../src/walker.js", + [ + "../src/async.js", + [ + { + "file": "../src/async.js", + "start": 864, + "length": 12, + "messageText": "'_should_skip' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/async.js", + "start": 907, + "length": 14, + "messageText": "'_should_remove' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/async.js", + "start": 954, + "length": 12, + "messageText": "'_replacement' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/async.js", + "start": 991, + "length": 24, + "messageText": "'should_skip' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/async.js", + "start": 1021, + "length": 26, + "messageText": "'should_remove' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/async.js", + "start": 1053, + "length": 23, + "messageText": "'replacement' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/async.js", + "start": 1643, + "length": 9, + "code": 7053, + "category": 1, + "messageText": { + "messageText": "Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'BaseNode'.", + "category": 1, + "code": 7053, + "next": [ + { + "messageText": "No index signature with a parameter of type 'string' was found on type 'BaseNode'.", + "category": 1, + "code": 7054 + } + ] + } + } + ] + ], + [ + "../src/sync.js", + [ + { + "file": "../src/sync.js", + "start": 837, + "length": 12, + "messageText": "'_should_skip' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/sync.js", + "start": 880, + "length": 14, + "messageText": "'_should_remove' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/sync.js", + "start": 927, + "length": 12, + "messageText": "'_replacement' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/sync.js", + "start": 964, + "length": 24, + "messageText": "'should_skip' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/sync.js", + "start": 994, + "length": 26, + "messageText": "'should_remove' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/sync.js", + "start": 1026, + "length": 23, + "messageText": "'replacement' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.", + "category": 1, + "code": 7022 + }, + { + "file": "../src/sync.js", + "start": 1610, + "length": 9, + "code": 7053, + "category": 1, + "messageText": { + "messageText": "Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'BaseNode'.", + "category": 1, + "code": 7053, + "next": [ + { + "messageText": "No index signature with a parameter of type 'string' was found on type 'BaseNode'.", + "category": 1, + "code": 7054 + } + ] + } + } + ] + ], + "../src/index.js" + ] + }, + "version": "3.7.5" +} \ No newline at end of file diff --git a/node_modules/estree-walker/types/walker.d.ts b/node_modules/estree-walker/types/walker.d.ts new file mode 100644 index 0000000..49d8441 --- /dev/null +++ b/node_modules/estree-walker/types/walker.d.ts @@ -0,0 +1,37 @@ +/** @typedef { import('estree').BaseNode} BaseNode */ +/** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; +}} WalkerContext */ +export class WalkerBase { + /** @type {boolean} */ + should_skip: boolean; + /** @type {boolean} */ + should_remove: boolean; + /** @type {BaseNode | null} */ + replacement: BaseNode | null; + /** @type {WalkerContext} */ + context: WalkerContext; + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent: any, prop: string, index: number, node: import("estree").BaseNode): void; + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent: any, prop: string, index: number): void; +} +export type BaseNode = import("estree").BaseNode; +export type WalkerContext = { + skip: () => void; + remove: () => void; + replace: (node: import("estree").BaseNode) => void; +}; diff --git a/node_modules/fp-ts-local-storage/CHANGELOG.md b/node_modules/fp-ts-local-storage/CHANGELOG.md new file mode 100644 index 0000000..7b24e76 --- /dev/null +++ b/node_modules/fp-ts-local-storage/CHANGELOG.md @@ -0,0 +1,38 @@ +# Changelog + +> **Tags:** +> +> - [New Feature] +> - [Bug Fix] +> - [Breaking Change] +> - [Documentation] +> - [Internal] +> - [Polish] +> - [Experimental] + +**Note**: Gaps between patch versions are faulty/broken releases. +**Note**: A feature tagged as Experimental is in a high state of flux, you're at risk of it changing without notice. + +# 1.0.3 + +- **Bug Fix** + - don't set `target: es6` in `tsconfig.build-es6.json` (@gcanti) + +# 1.0.2 + +- **New Feature** + - add build in ES6 format, #3 (@StefanoMagrassi) + +# 0.2.0 + +- **Breaking Change** + - upgrade to `fp-ts@2.x` (@gcanti) + +# 0.1.1 + +- **Polish** + - move `fp-ts` to peerDependencies (@gcanti) + +# 0.1.0 + +Initial release diff --git a/node_modules/fp-ts-local-storage/LICENSE b/node_modules/fp-ts-local-storage/LICENSE new file mode 100644 index 0000000..4e50eb9 --- /dev/null +++ b/node_modules/fp-ts-local-storage/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Giulio Canti + +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. diff --git a/node_modules/fp-ts-local-storage/README.md b/node_modules/fp-ts-local-storage/README.md new file mode 100644 index 0000000..1a2cbe7 --- /dev/null +++ b/node_modules/fp-ts-local-storage/README.md @@ -0,0 +1,15 @@ +[fp-ts](https://github.com/gcanti/fp-ts) bindings for LocalStorage + +# Documentation + +- [API Reference](https://gcanti.github.io/fp-ts-local-storage) + +# Example + +```ts +import { setItem, getItem } from 'fp-ts-local-storage' + +const program = setItem('foo', JSON.stringify({ bar: 'baz' })).chain(() => getItem('foo')) + +console.log(program.run()) // => some('{"bar":"baz"}') +``` diff --git a/node_modules/fp-ts-local-storage/es6/index.d.ts b/node_modules/fp-ts-local-storage/es6/index.d.ts new file mode 100644 index 0000000..2c7368a --- /dev/null +++ b/node_modules/fp-ts-local-storage/es6/index.d.ts @@ -0,0 +1,29 @@ +/** + * @since 0.2.0 + */ +import { IO } from 'fp-ts/es6/IO'; +import { Option } from 'fp-ts/es6/Option'; +/** + * @since 0.2.0 + */ +export declare const clear: IO<void>; +/** + * @since 0.2.0 + */ +export declare function getItem(key: string): IO<Option<string>>; +/** + * @since 0.2.0 + */ +export declare function key(index: number): IO<Option<string>>; +/** + * @since 0.2.0 + */ +export declare const length: IO<number>; +/** + * @since 0.2.0 + */ +export declare function removeItem(key: string): IO<void>; +/** + * @since 0.2.0 + */ +export declare function setItem(key: string, value: string): IO<void>; diff --git a/node_modules/fp-ts-local-storage/es6/index.js b/node_modules/fp-ts-local-storage/es6/index.js new file mode 100644 index 0000000..09f0749 --- /dev/null +++ b/node_modules/fp-ts-local-storage/es6/index.js @@ -0,0 +1,35 @@ +import { fromNullable } from 'fp-ts/es6/Option'; +var _clear = function () { return localStorage.clear(); }; +/** + * @since 0.2.0 + */ +export var clear = _clear; +/** + * @since 0.2.0 + */ +export function getItem(key) { + return function () { return fromNullable(localStorage.getItem(key)); }; +} +/** + * @since 0.2.0 + */ +export function key(index) { + return function () { return fromNullable(localStorage.key(index)); }; +} +var _length = function () { return localStorage.length; }; +/** + * @since 0.2.0 + */ +export var length = _length; +/** + * @since 0.2.0 + */ +export function removeItem(key) { + return function () { return localStorage.removeItem(key); }; +} +/** + * @since 0.2.0 + */ +export function setItem(key, value) { + return function () { return localStorage.setItem(key, value); }; +} diff --git a/node_modules/fp-ts-local-storage/lib/index.d.ts b/node_modules/fp-ts-local-storage/lib/index.d.ts new file mode 100644 index 0000000..57b9ccd --- /dev/null +++ b/node_modules/fp-ts-local-storage/lib/index.d.ts @@ -0,0 +1,29 @@ +/** + * @since 0.2.0 + */ +import { IO } from 'fp-ts/lib/IO'; +import { Option } from 'fp-ts/lib/Option'; +/** + * @since 0.2.0 + */ +export declare const clear: IO<void>; +/** + * @since 0.2.0 + */ +export declare function getItem(key: string): IO<Option<string>>; +/** + * @since 0.2.0 + */ +export declare function key(index: number): IO<Option<string>>; +/** + * @since 0.2.0 + */ +export declare const length: IO<number>; +/** + * @since 0.2.0 + */ +export declare function removeItem(key: string): IO<void>; +/** + * @since 0.2.0 + */ +export declare function setItem(key: string, value: string): IO<void>; diff --git a/node_modules/fp-ts-local-storage/lib/index.js b/node_modules/fp-ts-local-storage/lib/index.js new file mode 100644 index 0000000..9d44b23 --- /dev/null +++ b/node_modules/fp-ts-local-storage/lib/index.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Option_1 = require("fp-ts/lib/Option"); +var _clear = function () { return localStorage.clear(); }; +/** + * @since 0.2.0 + */ +exports.clear = _clear; +/** + * @since 0.2.0 + */ +function getItem(key) { + return function () { return Option_1.fromNullable(localStorage.getItem(key)); }; +} +exports.getItem = getItem; +/** + * @since 0.2.0 + */ +function key(index) { + return function () { return Option_1.fromNullable(localStorage.key(index)); }; +} +exports.key = key; +var _length = function () { return localStorage.length; }; +/** + * @since 0.2.0 + */ +exports.length = _length; +/** + * @since 0.2.0 + */ +function removeItem(key) { + return function () { return localStorage.removeItem(key); }; +} +exports.removeItem = removeItem; +/** + * @since 0.2.0 + */ +function setItem(key, value) { + return function () { return localStorage.setItem(key, value); }; +} +exports.setItem = setItem; diff --git a/node_modules/fp-ts-local-storage/package.json b/node_modules/fp-ts-local-storage/package.json new file mode 100644 index 0000000..fe8eb05 --- /dev/null +++ b/node_modules/fp-ts-local-storage/package.json @@ -0,0 +1,70 @@ +{ + "name": "fp-ts-local-storage", + "version": "1.0.3", + "description": "fp-ts bindings for LocalStorage", + "files": [ + "lib", + "es6" + ], + "main": "lib/index.js", + "module": "es6/index.js", + "typings": "lib/index.d.ts", + "sideEffects": false, + "scripts": { + "check": "tsc -p .", + "lint": "tslint -p .", + "jest": "jest --ci --coverage", + "prettier": "prettier --no-semi --single-quote --print-width 120 --parser typescript --list-different \"{src,test}/**/*.ts\"", + "fix-prettier": "prettier --no-semi --single-quote --print-width 120 --parser typescript --write \"{src,test}/**/*.ts\"", + "pretest": "npm run check && npm run lint && npm run prettier", + "test": "npm run jest", + "posttest": "npm run docs", + "clean": "rm -rf ./lib ./es6", + "prebuild": "npm run clean", + "build": "tsc -p ./tsconfig.build.json && tsc -p ./tsconfig.build-es6.json", + "prepublish": "npm run build", + "docs": "docs-ts", + "postbuild": "import-path-rewrite" + }, + "repository": { + "type": "git", + "url": "https://github.com/gcanti/fp-ts-local-storage.git" + }, + "author": "Giulio Canti <giulio.canti@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/gcanti/fp-ts-local-storage/issues" + }, + "homepage": "https://github.com/gcanti/fp-ts-local-storage", + "peerDependencies": { + "fp-ts": "^2.0.1" + }, + "devDependencies": { + "@types/jest": "^22.2.2", + "@types/node": "8.0.19", + "docs-ts": "^0.3.4", + "dtslint": "^0.3.0", + "fp-ts": "^2.0.1", + "import-path-rewrite": "github:gcanti/import-path-rewrite", + "jest": "^24.8.0", + "prettier": "^1.18.2", + "rimraf": "^2.6.2", + "ts-jest": "^24.0.2", + "ts-node": "3.3.0", + "tslint": "^5.9.1", + "tslint-config-standard": "^7.0.0", + "typescript": "^3.5.3" + }, + "tags": [ + "fp-ts", + "localstorage", + "functional-programming", + "typescript" + ], + "keywords": [ + "fp-ts", + "localstorage", + "functional-programming", + "typescript" + ] +} diff --git a/node_modules/fp-ts/Alt/package.json b/node_modules/fp-ts/Alt/package.json new file mode 100644 index 0000000..c6ce69c --- /dev/null +++ b/node_modules/fp-ts/Alt/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Alt.js", + "module": "../es6/Alt.js", + "typings": "../lib/Alt.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Alternative/package.json b/node_modules/fp-ts/Alternative/package.json new file mode 100644 index 0000000..5bb0fba --- /dev/null +++ b/node_modules/fp-ts/Alternative/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Alternative.js", + "module": "../es6/Alternative.js", + "typings": "../lib/Alternative.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Applicative/package.json b/node_modules/fp-ts/Applicative/package.json new file mode 100644 index 0000000..45b577c --- /dev/null +++ b/node_modules/fp-ts/Applicative/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Applicative.js", + "module": "../es6/Applicative.js", + "typings": "../lib/Applicative.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Apply/package.json b/node_modules/fp-ts/Apply/package.json new file mode 100644 index 0000000..99552e4 --- /dev/null +++ b/node_modules/fp-ts/Apply/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Apply.js", + "module": "../es6/Apply.js", + "typings": "../lib/Apply.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Array/package.json b/node_modules/fp-ts/Array/package.json new file mode 100644 index 0000000..b24a901 --- /dev/null +++ b/node_modules/fp-ts/Array/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Array.js", + "module": "../es6/Array.js", + "typings": "../lib/Array.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Bifunctor/package.json b/node_modules/fp-ts/Bifunctor/package.json new file mode 100644 index 0000000..48989a0 --- /dev/null +++ b/node_modules/fp-ts/Bifunctor/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Bifunctor.js", + "module": "../es6/Bifunctor.js", + "typings": "../lib/Bifunctor.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/BooleanAlgebra/package.json b/node_modules/fp-ts/BooleanAlgebra/package.json new file mode 100644 index 0000000..f04fb63 --- /dev/null +++ b/node_modules/fp-ts/BooleanAlgebra/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/BooleanAlgebra.js", + "module": "../es6/BooleanAlgebra.js", + "typings": "../lib/BooleanAlgebra.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Bounded/package.json b/node_modules/fp-ts/Bounded/package.json new file mode 100644 index 0000000..4e3028c --- /dev/null +++ b/node_modules/fp-ts/Bounded/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Bounded.js", + "module": "../es6/Bounded.js", + "typings": "../lib/Bounded.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/BoundedDistributiveLattice/package.json b/node_modules/fp-ts/BoundedDistributiveLattice/package.json new file mode 100644 index 0000000..498981b --- /dev/null +++ b/node_modules/fp-ts/BoundedDistributiveLattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/BoundedDistributiveLattice.js", + "module": "../es6/BoundedDistributiveLattice.js", + "typings": "../lib/BoundedDistributiveLattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/BoundedJoinSemilattice/package.json b/node_modules/fp-ts/BoundedJoinSemilattice/package.json new file mode 100644 index 0000000..519d7a2 --- /dev/null +++ b/node_modules/fp-ts/BoundedJoinSemilattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/BoundedJoinSemilattice.js", + "module": "../es6/BoundedJoinSemilattice.js", + "typings": "../lib/BoundedJoinSemilattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/BoundedLattice/package.json b/node_modules/fp-ts/BoundedLattice/package.json new file mode 100644 index 0000000..8dcd58f --- /dev/null +++ b/node_modules/fp-ts/BoundedLattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/BoundedLattice.js", + "module": "../es6/BoundedLattice.js", + "typings": "../lib/BoundedLattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/BoundedMeetSemilattice/package.json b/node_modules/fp-ts/BoundedMeetSemilattice/package.json new file mode 100644 index 0000000..53c6c3e --- /dev/null +++ b/node_modules/fp-ts/BoundedMeetSemilattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/BoundedMeetSemilattice.js", + "module": "../es6/BoundedMeetSemilattice.js", + "typings": "../lib/BoundedMeetSemilattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/CHANGELOG.md b/node_modules/fp-ts/CHANGELOG.md new file mode 100644 index 0000000..7de29f5 --- /dev/null +++ b/node_modules/fp-ts/CHANGELOG.md @@ -0,0 +1,3375 @@ +# Changelog + +> **Tags:** +> +> - [New Feature] +> - [Bug Fix] +> - [Breaking Change] +> - [Documentation] +> - [Internal] +> - [Polish] +> - [Experimental] +> - [Deprecation] + +**Note**: Gaps between patch versions are faulty/broken releases. + +**Note**: A feature tagged as Experimental is in a +high state of flux, you're at risk of it changing without notice. + +# 2.16.11 + +**Bug Fix** + +Fix Option.getOrd definition, #1963 + +# 2.16.10 + +**Polish** + +Add apFirstW and apSecondW to ReaderTask, #1958 + +# 2.16.9 + +**Polish** + +Support `strictBuiltinIteratorReturn`, #1949 + +# 2.16.8 + +**Polish** + +Remove useless pure comment, closes #1937 + +# 2.16.7 + +**Polish** + +Add tap for Identity #1943 + +# 2.16.6 + +**Polish** + +Allow dependencies to be widen when using orLeft #1938 + +# 2.16.5 + +**Polish** + +Resolved a RangeError where the maximum call stack size was exceeded when invoking `chainWithIndex`, #1931 + +# 2.16.4 + +**Polish** + +Fix `__PURE__` annotation placement, closes #1926 + +# 2.16.3 + +**Polish** + +`Either.ts`: `toError`: Don't fail when a value can't be converted to a primitive, #1924 + +# 2.16.2 + +**Polish** + +Fix `"__PURE__"` annotation placement #1919, closes #1916 + +# 2.16.1 + +**Bug Fix** + +- fix type signature of `ReaderTaskEither.tapReaderIO`, #1895 + +# 2.16.0 + +- `tapEither` (dual) (aka `chainFirstEitherK` / `chainFirstEitherKW`) https://github.com/gcanti/fp-ts/pull/1864 +- `tapIO` (dual) (aka `chainFirstIOK`) https://github.com/gcanti/fp-ts/pull/1865 +- `as` / `asUnit` https://github.com/gcanti/fp-ts/pull/1867 +- `tapTask` (dual) (aka `chainFirstTaskK`) https://github.com/gcanti/fp-ts/pull/1869 +- `mapError` (dual) (aka `mapLeft`) https://github.com/gcanti/fp-ts/pull/1870 +- `mapBoth` (dual) (aka `bimap`) https://github.com/gcanti/fp-ts/pull/1872 +- `tapReader` (dual) (aka `chainFirstReaderK` / `chainFirstIReaderKW`) https://github.com/gcanti/fp-ts/pull/1871 +- `tapReaderEither` (dual) (aka `chainFirstReaderEitherK` / `chainFirstEitherKW`) https://github.com/gcanti/fp-ts/pull/1873 +- `tapReaderIO` (dual) (aka `chainFirstReaderIOK`) https://github.com/gcanti/fp-ts/pull/1873 +- `tapReaderTask` (dual) (aka `chainFirstReaderTaskK`) https://github.com/gcanti/fp-ts/pull/1873 +- `tapTaskEither` (dual) (aka `chainFirstTaskEitherK` / `chainFirstTaskEitherKW`) https://github.com/gcanti/fp-ts/pull/1873 +- `flatMapReaderTask` (dual) (aka `chainReaderTaskK` / `chainReaderTaskKW`) https://github.com/gcanti/fp-ts/pull/1874 +- `flatMapTaskEither` (dual) (aka `chainTaskEitherK` / `chainTaskEitherKW`) https://github.com/gcanti/fp-ts/pull/1874 +- `flatMapIO` (dual) (aka `chainIOK`) https://github.com/gcanti/fp-ts/pull/1874 +- `Option.orElse` (dual) (aka `alt` / `altW`) https://github.com/gcanti/fp-ts/pull/1868 +- `flatMapTask` (dual) (aka `chainTaskK`) https://github.com/gcanti/fp-ts/pull/1876 +- `flatMapReader` (dual) (aka `chainReaderK` / `chainReaderKW`) https://github.com/gcanti/fp-ts/pull/1876 +- `flatMapReaderIO` (dual) (aka `chainReaderIOK` / `chainReaderIOKW`) https://github.com/gcanti/fp-ts/pull/1879 +- `flatMap*` (aka `chain*K` / `chain*KW`) https://github.com/gcanti/fp-ts/pull/1880 + +# 2.15.0 + +**New Feature** + +- `function` + - add `LazyArg` +- add `tap` to + - `Either` + - `IO` + - `IOEither` + - `IOOption` + - `Option` + - `Reader` + - `ReaderEither` + - `ReaderIO` + - `ReaderTask` + - `ReaderTaskEither` + - `State` + - `StateReaderTaskEither` + - `Task` + - `TaskEither` + - `TaskOption` +- add `flatMapNullable` (dual) to + - `Either` + - `IOEither` + - `ReaderEither` + - `ReaderTaskEither` + - `StateReaderTaskEither` + - `TaskEither` +- add `flatMapOption` (dual) to + - `Either` + - `IOEither` + - `ReaderEither` + - `ReaderTaskEither` + - `StateReaderTaskEither` + - `TaskEither` +- add `liftNullable` to + - `Either` + - `IOEither` + - `ReaderEither` + - `ReaderTaskEither` + - `StateReaderTaskEither` + - `TaskEither` +- add `liftOption` to + - `Either` + - `IOEither` + - `ReaderEither` + - `ReaderTaskEither` + - `StateReaderTaskEither` + - `TaskEither` +- add `flatMapEither` (dual) to + - `IOEither` + - `ReaderEither` + - `ReaderTaskEither` + - `TaskEither` +- `Array` + - add index to `flatMap` +- `NonEmptyArray` + - add index to `flatMap` +- `ReadonlyArray` + - add index to `flatMap` +- `ReadonlyNonEmptyArray` + - add index to `flatMap` + +# 2.14.0 + +**New Feature** + +- add `flatMap` to + - `Either` + - `IOEither` + - `Reader` + - `ReaderEither` + - `ReaderIO` + - `ReaderTask` + - `ReaderTaskEither` + - `StateReaderTaskEither` + - `TaskEither` + - `NonEmptyArray` + - `ReadonlyNonEmptyArray` + - `Tree` + - `Array` + - `Identity` + - `IO` + - `IOOption` + - `Option` + - `ReadonlyArray` + - `State` + - `Task` + - `TaskOption` + +# 2.13.2 + +- add `chainOptionKW`, #1846 (@DenisFrezzato) + +# 2.13.1 + +- **New Feature** + - new modules: + - `ReaderIO`, #1738 (@sukovanej) + - do notation: + - add `let` helpers, #1725 (@Punie) + - `Alternative` + - add `getAlternativeMonoid`, #1717 (@willheslam) + - `function` + - `flip` is now curried, #1748 (@thewilkybarkid) + - `pipeable` + - add pipeable helpers, #1764 (@gcanti) + - `alt` + - `ap` + - `bimap` + - `chain` + - `compose` + - `contramap` + - `extend` + - `filter` + - `filterMap` + - `filterMapWithIndex` + - `filterWithIndex` + - `foldMap` + - `foldMapWithIndex` + - `map` + - `mapLeft` + - `mapWithIndex` + - `partition` + - `partitionMap` + - `partitionMapWithIndex` + - `partitionWithIndex` + - `promap` + - `reduce` + - `reduceRight` + - `reduceRightWithIndex` + - `reduceWithIndex` + - `ReaderTask` + - add `ReaderIO` constructors/combinators, #1773 (@thewilkybarkid) + - `ReaderTaskEither` + - add `ReaderIO` constructors/combinators, #1774 (@thewilkybarkid) + - `TaskEither` + - add `chainTaskOptionKW`, #1744 (@AmirabbasJ) +- **Polish** + - backport from v3 some handy defaults defined in natural transformations/combinators/constructors (@gcanti) + - fix wrong type parameter order: + - `FromIO` + - `chainIOK` + - `FromTask` + - `chainTaskK` + - `chainFirstTaskK` + - `Whiterable` + - `FilterE1` + - `TheseT` + - `both` + - `Either` + - `apFirstW` + - `apSecondW` + - `IOEither` + - `apFirstW` + - `apSecondW` + - `Reader` + - `apFirstW` + - `apSecondW` + - `ReaderEither` + - `apFirstW` + - `apSecondW` + - `ReaderTaskEither` + - `apFirstW` + - `apSecondW` + - `StateReaderTaskEither` + - `apFirstW` + - `apSecondW` + - `TaskEither` + - `apFirstW` + - `apSecondW` + - `Apply` + - add `ap` overloadings, #1721 (@waynevanson) + - `Either` + - remove useless type parameter in `exists` (@gcanti) + - `ReadonlyRecord` + - fix `fromEntries` return type, closes #1745 (@gcanti) + - `TaskEither` + - fix `fromPredicate` signature (@gcanti) + - `These` + - add missing `fromPredicate` (@gcanti) + - remove useless type parameter in `exists` (@gcanti) + - `Traversable` + - add more overloadings to traverse / sequence helpers, #1758 (@gcanti) + - `Writer` + - `getChain` requires a `Semigroup` instead of a `Monoid` (@gcanti) +- **Deprecation** + - `function` + - deprecate uncurried `flip` function, #1748 (@thewilkybarkid) + +# 2.12.2 + +- **Polish** + - `ReadonlyRecord` / `Record` + - add `Applicative4` overloadings to `traverse` / `traverseWithIndex`, #1733 (@mlegenhausen) + +# 2.12.1 + +- **Bug Fix** + - `ReadonlyRecord` + - fix `traverseWithIndex` implementation, #1704 (@waynevanson) + +# 2.12.0 + +- **New Feature** + - add `IOOption` module (@gcanti) + - `Array` + - add `intercalate`, #1678 (@thewilkybarkid) + - `Bounded` + - add `clamp` (@gcanti) + - add `reverse` (@gcanti) + - `Either` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - `EitherT` + - add `chainNullableK`, #1619 (@cwstra) + - add `fromNullable`, #1619 (@cwstra) + - add `fromNullableK`, #1619 (@cwstra) + - `FromEither` + - add `chainFirstEitherK` (@gcanti) + - `IOEither` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - add `chainFirstEitherK` (@gcanti) + - add `chainFirstEitherKW` (@gcanti) + - add `orElseFirstIOK`, #1655 (@thewilkybarkid) + - add `bracketW`, #1627 (@thomasvargiu) + - `NonEmptyArray` + - add `intercalate`, #1678 (@thewilkybarkid) + - `Option` + - add `chainFirstEitherK` (@gcanti) + - `Ordering` + - add `matchW`, #1535 (@mlegenhausen) + - `Reader` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - `ReaderEither` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - add `chainFirstEitherK` (@gcanti) + - add `chainFirstEitherKW` (@gcanti) + - `ReaderTaskEither` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - add `chainFirstEitherK`, #1562 (@DenisFrezzato) + - add `chainFirstEitherKW`, #1562 (@DenisFrezzato) + - add `bracketW`, #1627 (@thomasvargiu) + - add `chainNullableK` (@gcanti) + - add `fromNullable` (@gcanti) + - add `fromNullableK` (@gcanti) + - `ReadonlyArray` + - add `intercalate`, #1678 (@thewilkybarkid) + - `ReadonlyNonEmptyArray` + - add `intercalate`, #1678 (@thewilkybarkid) + - `ReadonlyRecord` + - add `toEntries`, #1552 (@bravely) + - add `fromEntries`, #1552 (@bravely) + - `Record` + - add `toEntries`, #1552 (@bravely) + - add `fromEntries`, #1552 (@bravely) + - `StateReaderTaskEither` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - add `chainFirstEitherK` (@gcanti) + - add `chainFirstEitherKW` (@gcanti) + - `TaskEither` + - add `apFirstW`, #1564 (@DenisFrezzato) + - add `apSecondW`, #1564 (@DenisFrezzato) + - add `chainFirstEitherK`, #1659 (@vinassefranche) + - add `chainFirstEitherKW`, #1659 (@vinassefranche) + - add `orElseFirstIOK`, #1655 (@thewilkybarkid) + - add `orElseFirstTaskK`, #1655 (@thewilkybarkid) + - add `bracketW`, #1627 (@thomasvargiu) + - add `chainNullableK`, #1619 (@cwstra) + - add `fromNullable`, #1619 (@cwstra) + - add `fromNullableK`, #1619 (@cwstra) + - `TaskOption` + - add `fromEitherK` (@gcanti) + - add `chainEitherK` (@gcanti) + - add `chainFirstEitherK` (@gcanti) + +# 2.11.10 + +- **Polish** + - `TaskEither` / `TaskOption` + - now `tryCatch` / `tryCatchK` will catch synchronous errors too, #1676 (@thewilkybarkid) + +# 2.11.9 + +- **Polish** + - add `Refinement` overload to 'every' functions, #1681 (@mlegenhausen) + +# 2.11.8 + +- **Polish** + - Add missing pure annotations, #1658 (@OliverJAsh) + +# 2.11.7 + +- **Polish** + - more `Functor.map` overloadings, closes #1623 (@gcanti) + +# 2.11.6 + +- **Polish** + - `ReaderEither` + - `orElseFirstW`: intersect dependencies like `orElseW` (@gcanti) + - `ReaderTaskEither` + - `orElseFirstW`: intersect dependencies like `orElseW`, #1635 (@OliverJAsh) + +# 2.11.5 + +- **Polish** + - more curried `elem` overloads, #1602 (@ammut) + +# 2.11.4 + +- **Polish** + - fix `chainNullableK` signature, #1589 (@bwlt) + - stack safety for `Task` via microtasks suspension, #1591 (@mikearnaldi) + +# 2.11.3 + +- **Polish** + - pipe: fix v8 performance cliff for >10 case stmts, #1585 (@pbadenski) + +# 2.11.2 + +- **Polish** + - Add/fix pure comments, #1555 (@OliverJAsh) + +# 2.11.1 + +- **Deprecation** + - `Array` + - deprecate `range`, use `NonEmptyArray` module instead. + - `function` + - deprecate `Endomorphism`, use `Endomorphism` module instead. + - deprecate `getEndomorphismMonoid`, use `Endomorphism` module instead. + - deprecate `Predicate`, use `Predicate` module instead. + - deprecate `not`, use `Predicate` module instead. + - deprecate `Refinement`, use `Refinement` module instead. + - `Monoid` + - deprecate `monoidVoid`, use `void` module instead. + - `NonEmptyArray` + - deprecate `groupSort` (it's just `sort` followed by `group`) + - `Option` + - deprecate `getRefinement`, use `Refinement` module instead. + - deprecate `getFirstMonoid`, use `getMonoid` module instead. + - deprecate `getLastMonoid`, use `getMonoid` module instead. + - `ReadonlyArray` + - deprecate `range`, use `ReadonlyNonEmptyArray` module instead. + - `ReadonlyNonEmptyArray` + - deprecate `groupSort` (it's just `sort` followed by `group`) + - `Record` / `ReadonlyRecord`: deprecate overloads without `Ord` constraint (@anthonyjoeseph): + - `collect` + - `reduce` + - `foldMap` + - `reduceRight` + - `reduceWithIndex` + - `foldMapWithIndex` + - `reduceRightWithIndex` + - `getShow` + - deprecate `Foldable` in favour of `getFoldable` (@anthonyjoeseph) + - deprecate `FoldableWithIndex` in favour of `getFoldableWithIndex` (@anthonyjoeseph) + - deprecate `Traversable` in favour of `getTraversable` (@anthonyjoeseph) + - deprecate `TraversableWithIndex` in favour of `getTraversableWithIndex` (@anthonyjoeseph) + - deprecate `Witherable` in favour of `getWitherable` (@anthonyjoeseph) + - `Semigroup` + - deprecate `semigroupVoid`, use `void` module instead. +- **New Feature** + - add `Endomorphism` module + - add `Predicate` module + - add `Refinement` module + - add `FromState` module + - add `FromThese` module + - add `void` module + - add `FromReader` module + - add `NaturalTransformation` module + - add `Zero` module + - `Alt` + - add `altAll` + - `Alternative` + - add `altAll` + - `Array` + - add `prependW`, `appendW` (@thewilkybarkid) + - add `fromOption`, `fromPredicate` (@cdimitroulas) + - add `filterE` + - add `ChainRecDepthFirst` instance (@qlonik) + - add `chainRecDepthFirst` + - add `ChainRecBreadthFirst` instance (@qlonik) + - add `chainRecBreadthFirst` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `fromEither` + - add `FromEither` instance + - add `fromEitherK` + - make `isEmpty` a user defined guard + - add `concat` / `concatW` + - add `match`, `matchW`, `matchLeftW`, `matchRightW` + - add `fromOptionK` + - add `Zero` instance + - add `guard` constructor + - add `exists` alias + - `boolean` + - add `isBoolean` + - `Either` + - add `chainOptionK` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `EitherT` + - add `orElseFirst` + - add `orLeft` + - `function` + - add `SK` (@cdimitroulas) + - add `apply` + - `IO` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `IOEither` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `Magma` + - add `reverse` + - add `filterFirst` + - add `filterSecond` + - add `endo` + - add `concatAll` + - `Map` + - add `union` + - add `intersection` + - add `difference` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `getFoldable` + - add `foldMap` + - add `reduceRight` + - add `reduceWithIndex` + - add `foldMapWithIndex` + - add `reduceRightWithIndex` + - `NonEmptyArray` + - add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas) + - add `union` + - add `getUnionSemigroup` + - add `makeBy` + - add `range` + - make `concat` pipeable + - `number` + - add `MagmaSub` + - add `isNumber` + - `string` + - add `isString` + - `Option` + - add `FromEither` instance + - add `fromEitherK` + - add `chainEitherK` + - add `Zero` instance + - add `guard` constructor + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `Ord` + - add `trivial` instance + - add `equals` + - `Reader` + - add `asksReaderW`, `asksReader` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `ReaderEither` + - add `asksReaderEitherW`, `asksReaderEither` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `chainReaderKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `ReaderTask` + - add `asksReaderTaskW`, `asksReaderTask` + - add `chainReaderKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `ReaderTaskEither` + - add `asksReaderTaskEitherW`, `asksReaderTaskEither` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `fromReaderTaskK` + - add `fromReaderEitherK` + - add `chainReaderKW` + - add `chainReaderTaskK`, `chainReaderTaskKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `chainFirstReaderTaskK`, `chainFirstReaderTaskKW` + - add `chainReaderEitherK`, `chainReaderEitherKW` + - add `chainFirstReaderEitherK`, `chainFirstReaderEitherKW` + - add `chainFirstTaskEitherK`, `chainFirstTaskEitherKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `ReadonlyArray` + - add `prependW`, `appendW` (@thewilkybarkid) + - add `filterE` + - add `ChainRecDepthFirst` instance (@qlonik) + - add `chainRecDepthFirst` + - add `ChainRecBreadthFirst` instance (@qlonik) + - add `chainRecBreadthFirst` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `fromOption` + - add `fromPredicate` + - add `fromEither` + - add `FromEither` instance + - add `fromEitherK` + - make `isEmpty` a user defined guard + - add `concat` / `concatW` + - add `match`, `matchW`, `matchLeftW`, `matchRightW` + - add `fromOptionK` + - add `Zero` instance + - add `guard` constructor + - add `exists` alias + - `ReadonlyMap` + - add `union` + - add `intersection` + - add `difference` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `reduce` + - add `foldMap` + - add `reduceRight` + - add `reduceWithIndex` + - add `foldMapWithIndex` + - add `reduceRightWithIndex` + - `ReadonlyNonEmptyArray` + - add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas) + - add `union` + - add `getUnionSemigroup` + - add `makeBy` + - add `range` + - make `concat` pipeable + - `ReadonlyRecord` + - add `union` (@anthonyjoeseph) + - add `intersection` (@anthonyjoeseph) + - add `difference` (@anthonyjoeseph) + - add `getUnionSemigroup` (@anthonyjoeseph) + - add `getUnionMonoid` (@anthonyjoeseph) + - add `getIntersectionSemigroup` (@anthonyjoeseph) + - add `getDifferenceMagma` (@anthonyjoeseph) + - `ReadonlySet` + - add `getUnionSemigroup` + - add `getDifferenceMagma` + - `Record` + - add `union` + - add `intersection` + - add `difference` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - `Set` + - add `getUnionSemigroup` + - add `getDifferenceMagma` + - `State` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `StateReaderTaskEither` + - add `fromStateK` + - add `chainStateK` + - add `local` + - add `asksStateReaderTaskEitherW`, `asksStateReaderTaskEither` + - add `chainReaderKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `string` + - add `toUpperCase` + - add `toLowerCase` + - add `replace` + - add `split` + - add `trim` + - add `trimLeft` + - add `trimRight` + - add `includes` + - add `startsWith` + - add `endsWith` + - add `slice` + - `struct` + - add `evolve` + - `Task` + - add `ApT` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `TaskEither` + - add `fromTaskOption` (@thewilkybarkid) + - add `fromTaskOptionK` + - add `chainTaskOptionK` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `TaskOption` + - add `fromTaskEither` (@thewilkybarkid) + - add `Zero` instance + - add `guard` constructor + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - add missing `FromEither` instance + - `TaskThese` + - add `ApT` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `These` + - add `elem` + - add `exists` + - add `ApT` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `Tree` + - add `exists` + - `Witherable` + - add `filterE`, #1458 (@vinassefranche) + - add `wiltDefault` + - add `witherDefault` +- **Polish** + - remove unnecessary type parameters + - `Either` + - `isLeft` + - `isRight` + - `Option` + - `isNone` + - `These` + - `isLeft` + - `isRight` + +# 2.11.0-rc.2 + +- `string` + - `split` now returns a `ReadonlyNonEmptyArray` +- `TaskOption` + - add missing `FromEither` instance +- some signature changes in `2.11.0-rc.1` caused type inference issues + - `Array` / `ReadonlyArray` + - revert `isOutOfBound` signature change + - revert `isEmpty` signature change + - revert `size` signature change + - `Either` + - revert `exists` signature change + - revert `elem` signature change + - `These` + - revert `exists` signature change + - revert `elem` signature change + - `NonEmptyArray` / `ReadonlyNonEmptyArray` + - revert `isOutOfBound` signature change + - `Set` / `ReadonlySet` + - revert `isEmpty` signature change + - revert `size` signature change + - `Map` / `ReadonlyMap` + - revert `isEmpty` signature change + - revert `size` signature change + +# 2.11.0-rc.1 + +- **Deprecation** + - `Array` + - deprecate `range`, use `NonEmptyArray` module instead. + - `function` + - deprecate `Endomorphism`, use `Endomorphism` module instead. + - deprecate `getEndomorphismMonoid`, use `Endomorphism` module instead. + - deprecate `Predicate`, use `Predicate` module instead. + - deprecate `not`, use `Predicate` module instead. + - deprecate `Refinement`, use `Refinement` module instead. + - `Monoid` + - deprecate `monoidVoid`, use `void` module instead. + - `NonEmptyArray` + - deprecate `groupSort` (it's just `sort` followed by `group`) + - `Option` + - deprecate `getRefinement`, use `Refinement` module instead. + - deprecate `getFirstMonoid`, use `getMonoid` module instead. + - deprecate `getLastMonoid`, use `getMonoid` module instead. + - `ReadonlyArray` + - deprecate `range`, use `ReadonlyNonEmptyArray` module instead. + - `ReadonlyNonEmptyArray` + - deprecate `groupSort` (it's just `sort` followed by `group`) + - `Record` / `ReadonlyRecord`: deprecate overloads without `Ord` constraint (@anthonyjoeseph): + - `collect` + - `reduce` + - `foldMap` + - `reduceRight` + - `reduceWithIndex` + - `foldMapWithIndex` + - `reduceRightWithIndex` + - `getShow` + - deprecate `Foldable` in favour of `getFoldable` (@anthonyjoeseph) + - deprecate `FoldableWithIndex` in favour of `getFoldableWithIndex` (@anthonyjoeseph) + - deprecate `Traversable` in favour of `getTraversable` (@anthonyjoeseph) + - deprecate `TraversableWithIndex` in favour of `getTraversableWithIndex` (@anthonyjoeseph) + - deprecate `Witherable` in favour of `getWitherable` (@anthonyjoeseph) + - `Semigroup` + - deprecate `semigroupVoid`, use `void` module instead. +- **New Feature** + - add `Endomorphism` module + - add `Predicate` module + - add `Refinement` module + - add `FromState` module + - add `FromThese` module + - add `void` module + - add `FromReader` module + - add `NaturalTransformation` module + - add `Zero` module + - `Alt` + - add `altAll` + - `Alternative` + - add `altAll` + - `Array` + - add `prependW`, `appendW` (@thewilkybarkid) + - add `fromOption`, `fromPredicate` (@cdimitroulas) + - add `filterE` + - add `ChainRecDepthFirst` instance (@qlonik) + - add `chainRecDepthFirst` + - add `ChainRecBreadthFirst` instance (@qlonik) + - add `chainRecBreadthFirst` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `fromEither` + - add `FromEither` instance + - add `fromEitherK` + - make `isEmpty` a user defined guard + - add `concat` / `concatW` + - add `match`, `matchW`, `matchLeftW`, `matchRightW` + - add `fromOptionK` + - add `Zero` instance + - add `guard` constructor + - add `exists` alias + - `boolean` + - add `isBoolean` + - `Either` + - add `chainOptionK` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `EitherT` + - add `orElseFirst` + - add `orLeft` + - `function` + - add `SK` (@cdimitroulas) + - add `apply` + - `IO` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `IOEither` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `Magma` + - add `reverse` + - add `filterFirst` + - add `filterSecond` + - add `endo` + - add `concatAll` + - `Map` + - add `union` + - add `intersection` + - add `difference` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `getFoldable` + - add `foldMap` + - add `reduceRight` + - add `reduceWithIndex` + - add `foldMapWithIndex` + - add `reduceRightWithIndex` + - `NonEmptyArray` + - add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas) + - add `union` + - add `getUnionSemigroup` + - add `makeBy` + - add `range` + - make `concat` pipeable + - `number` + - add `MagmaSub` + - add `isNumber` + - `string` + - add `isString` + - `Option` + - add `FromEither` instance + - add `fromEitherK` + - add `chainEitherK` + - add `Zero` instance + - add `guard` constructor + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `Ord` + - add `trivial` instance + - add `equals` + - `Reader` + - add `asksReaderW`, `asksReader` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `ReaderEither` + - add `asksReaderEitherW`, `asksReaderEither` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `chainReaderKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `ReaderTask` + - add `asksReaderTaskW`, `asksReaderTask` + - add `chainReaderKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `ReaderTaskEither` + - add `asksReaderTaskEitherW`, `asksReaderTaskEither` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `fromReaderTaskK` + - add `fromReaderEitherK` + - add `chainReaderKW` + - add `chainReaderTaskK`, `chainReaderTaskKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `chainFirstReaderTaskK`, `chainFirstReaderTaskKW` + - add `chainReaderEitherK`, `chainReaderEitherKW` + - add `chainFirstReaderEitherK`, `chainFirstReaderEitherKW` + - add `chainFirstTaskEitherK`, `chainFirstTaskEitherKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `ReadonlyArray` + - add `prependW`, `appendW` (@thewilkybarkid) + - add `filterE` + - add `ChainRecDepthFirst` instance (@qlonik) + - add `chainRecDepthFirst` + - add `ChainRecBreadthFirst` instance (@qlonik) + - add `chainRecBreadthFirst` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `fromOption` + - add `fromPredicate` + - add `fromEither` + - add `FromEither` instance + - add `fromEitherK` + - make `isEmpty` a user defined guard + - add `concat` / `concatW` + - add `match`, `matchW`, `matchLeftW`, `matchRightW` + - add `fromOptionK` + - add `Zero` instance + - add `guard` constructor + - add `exists` alias + - `ReadonlyMap` + - add `union` + - add `intersection` + - add `difference` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - add `reduce` + - add `foldMap` + - add `reduceRight` + - add `reduceWithIndex` + - add `foldMapWithIndex` + - add `reduceRightWithIndex` + - `ReadonlyNonEmptyArray` + - add `matchLeft`, `matchRight`, `modifyHead`, `modifyLast` (@cdimitroulas) + - add `union` + - add `getUnionSemigroup` + - add `makeBy` + - add `range` + - make `concat` pipeable + - `ReadonlyRecord` + - add `union` (@anthonyjoeseph) + - add `intersection` (@anthonyjoeseph) + - add `difference` (@anthonyjoeseph) + - add `getUnionSemigroup` (@anthonyjoeseph) + - add `getUnionMonoid` (@anthonyjoeseph) + - add `getIntersectionSemigroup` (@anthonyjoeseph) + - add `getDifferenceMagma` (@anthonyjoeseph) + - `ReadonlySet` + - add `getUnionSemigroup` + - add `getDifferenceMagma` + - `Record` + - add `union` + - add `intersection` + - add `difference` + - add `getUnionSemigroup` + - add `getUnionMonoid` + - add `getIntersectionSemigroup` + - add `getDifferenceMagma` + - `Set` + - add `getUnionSemigroup` + - add `getDifferenceMagma` + - `State` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `StateReaderTaskEither` + - add `fromStateK` + - add `chainStateK` + - add `local` + - add `asksStateReaderTaskEitherW`, `asksStateReaderTaskEither` + - add `chainReaderKW` + - add `chainFirstReaderK`, `chainFirstReaderKW` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `string` + - add `toUpperCase` + - add `toLowerCase` + - add `replace` + - add `split` + - add `trim` + - add `trimLeft` + - add `trimRight` + - add `includes` + - add `startsWith` + - add `endsWith` + - add `slice` + - `struct` + - add `evolve` + - `Task` + - add `ApT` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `TaskEither` + - add `fromTaskOption` (@thewilkybarkid) + - add `fromTaskOptionK` + - add `chainTaskOptionK` + - add `orElseFirst` / `orElseFirstW` + - add `orLeft` + - add `flattenW` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `TaskOption` + - add `fromTaskEither` (@thewilkybarkid) + - add `Zero` instance + - add `guard` constructor + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `TaskThese` + - add `ApT` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - add `traverseReadonlyNonEmptyArrayWithIndexSeq` + - add `traverseReadonlyArrayWithIndexSeq` + - `These` + - add `elem` + - add `exists` + - add `ApT` + - add `traverseReadonlyNonEmptyArrayWithIndex` + - add `traverseReadonlyArrayWithIndex` + - `Tree` + - add `exists` + - `Witherable` + - add `filterE`, #1458 (@vinassefranche) + - add `wiltDefault` + - add `witherDefault` +- **Polish** + - remove unnecessary type parameters + - `Either` + - `exists` + - `isLeft` + - `isRight` + - `elem` + - `Option` + - `isNone` + - `These` + - `isLeft` + - `isRight` + - `Set` / `ReadonlySet` + - `isEmpty` + - `size` + - `Array` / `ReadonlyArray` + - `isEmpty` + - `isOutOfBound` + - `size` + - `Map` / `ReadonlyMap` + - `isEmpty` + - `size` + - `NonEmptyArray` / `ReadonlyNonEmptyArray` + - `isOutOfBound` + +# 2.10.5 + +- **Bug Fix** + - `StateT` + - fix typo in `fromF`, #1503 (@DKurilo) + +# 2.10.4 + +- **Bug Fix** + - `altW` left type is too wide in `Either`-based data types, #1488 (@wmaurer) + +# 2.10.3 + +- **Bug Fix** + - `StateReaderTaskEither` + - `traverseArrayWithIndex` does not pass the output state from each step to the subsequent step, #1486 + +# 2.10.2 + +- **Bug Fix** + - `Record` + - `hasOwnProperty` should be an alias of `ReadonlyRecord.hasOwnProperty` + +# 2.10.1 + +- **Bug Fix** + - rename `hasOwnProperty` in `internal` module, #1481 (@OliverJAsh) + +# 2.10.0 + +- **Deprecations** + - deprecate `pipeable` module, use the specific helpers instead + - deprecate `ValidationT` module, use `EitherT` instead + - deprecate "mega instances", use small, specific instances instead + - deprecate the old monad transformers, use the specific helpers instead + - `Applicative` + - deprecate `getApplicativeComposition`, use `ap` helper instead + - `Array` + - deprecate `prependToAll`, use `prependAll` instead + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - deprecate `empty` + - `BooleanAlgebra` + - deprecate `booleanAlgebraBoolean`, use `boolean.BooleanAlgebra` instead + - deprecate `getFunctionBooleanAlgebra`, use `function.getBooleanAlgebra` instead + - deprecate `getDualBooleanAlgebra`, use `reverse` instead + - `Bounded` + - deprecate `boundedNumber`, use `number.Bounded` instead + - `Choice` + - deprecate `splitChoice` in favour of `split` + - deprecate `fanin` in favour of `fanIn` + - `Compactable` + - deprecate `getCompactableComposition`, use `compact`, `separate` helpers instead + - deprecate `Separated`, use `Separated.Separated` instead + - `Either` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getValidationSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getValidationMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getValidation`, use `getApplicativeValidation` and `getAltValidation` instead + - deprecate `Json` type, use the `Json` module instead + - deprecate `parseJSON` type, use the `Json` module instead + - deprecate `stringifyJSON` type, use the `Json` module instead + - `Eq` + - deprecate `eqBoolean`, use `boolean.Eq` instead + - deprecate `eqString`, use `string.Eq` instead + - deprecate `eqNumber`, use `number.Eq` instead + - deprecate `eqDate`, use `Date.Eq` instead + - deprecate `getStructEq`, use `struct` instead + - deprecate `getTupleEq`, use `tuple` instead + - `Filterable` + - deprecate `getFilterableComposition`, use `filter`, `filterMap`, `partition`, `partitionMap` helpers instead + - `Foldable` + - deprecate `toArray` in favour of `toReadonlyArray` + - deprecate `getFoldableComposition`, use `reduce`, `foldMap`, `reduceRight` helpers instead + - `FoldableWithIndex` + - deprecate `getFoldableWithIndexComposition`, use `reduceWithIndex`, `foldMapWithIndex`, `reduceRightWithIndex` helpers instead + - `Functor` + - deprecate `getFunctorComposition`, use `map` helper instead + - `FunctorWithIndex` + - deprecate `getFunctorWithIndexComposition`, use `mapWithIndex` helper instead + - `IO` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `fromIO` + - `IOEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - daprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getIOValidation`, use `getApplicativeIOValidation` and `getAltIOValidation` instead + - `Map` + - deprecate `insertAt` in favour of `upsertAt` + - deprecate `empty` + - `Monoid` + - deprecate `monoidAll`, use `boolean.MonoidAll` instead + - deprecate `monoidAny`, use `boolean.MonoidAny` instead + - deprecate `getFunctionMonoid`, use `function.getMonoid` instead + - deprecate `getEndomorphismMonoid`, use `function.getEndomorphismMonoid` instead (**Note**. The execution order in + `function.getEndomorphismMonoid` is reversed) + - deprecate `monoidString`, use `string.Monoid` instead + - deprecate `monoidSum`, use `number.MonoidSum` instead + - deprecate `monoidProduct`, use `number.MonoidProduct` instead + - deprecate `fold`, use `concatAll` instead + - deprecate `getMeetMonoid`, use `min` instead + - deprecate `getJoinMonoid`, use `max` instead + - deprecate `getDualMonoid`, use `reverse` instead + - deprecate `getStructMonoid`, use `struct` instead + - deprecate `getTupleMonoid`, use `tuple` instead + - `NonEmptyArray` + - deprecate `fold`, use `concatAll` instead + - deprecate `prependToAll`, use `prependAll` instead + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - deprecate `uncons` in favour of `unprepend` + - deprecate `unsnoc` in favour of `unappend` + - deprecate `filter` in favour of `Array`'s `filter` + - deprecate `filterWithIndex` in favour of `Array`'s `filterWithIndex` + - `Option` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - `Ord` + - deprecate `ordBoolean`, use `boolean.Ord` instead + - deprecate `ordString`, use `string.Ord` instead + - deprecate `ordNumber`, use `number.Ord` instead + - deprecate `ordDate`, use `Date.Ord` instead + - deprecate `getDualOrd`, use `reverse` instead + - deprecate `getTupleOrd`, use `tuple` instead + - `Ordering` + - deprecate `eqOrdering`, use `Eq` instead + - deprecate `monoidOrdering`, use `Monoid` instead + - deprecate `invert` in favour of `reverse` + - `Ring` + - deprecate `getFunctionRing`, use `function.getRing` instead + - `Reader` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - `ReaderEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getReaderValidation`, use `getApplicativeReaderValidation` and `getAltReaderValidation` instead + - deprecate `local`, Use `Reader`'s `local` instead + - `ReaderTask` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `run` + - deprecate `local`, Use `Reader`'s `local` instead + - `ReaderTaskEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getReaderTaskValidation`, use `getApplicativeReaderTaskValidation` and `getAltReaderTaskValidation` instead + - deprecate `run` + - deprecate `local`, Use `Reader`'s `local` instead + - `ReaderTaskEither` + - deprecate `run` + - `ReadonlyArray` + - deprecate `prependToAll`, use `prependAll` instead + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - `ReadonlyNonEmptyArray` + - deprecate `fold`, use `concatAll` instead + - deprecate `prependToAll`, use `prependAll` instead + - deprecate `insertAt`, Use `ReadonlyArray`'s `insertAt` instead + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - deprecate `uncons` in favour of `unprepend` + - deprecate `unsnoc` in favour of `unappend` + - deprecate `filter` in favour of `ReadonlyArray`'s `filter` + - deprecate `filterWithIndex` in favour of `ReadonlyArray`'s `filterWithIndex` + - `ReadonlyMap` + - deprecate `insertAt` in favour of `upsertAt` + - `ReadonlyRecord` + - deprecate `hasOwnProperty`, use `has` instead + - deprecate `insertAt` in favour of `upsertAt` + - `ReadonlySet` + - deprecate `fromArray` in favour of `fromReadonlyArray` + - `ReadonlyTuple` + - deprecate `mapLeft` in favour of `mapSnd` + - deprecate `map` in favour of `mapFst` + - `Record` + - deprecate `hasOwnProperty`, use `has` instead + - deprecate `insertAt` in favour of `upsertAt` + - deprecate `empty` + - `Ring` + - deprecate `getTupleRing`, use `tuple` instead + - `Semigroup` + - deprecate `semigroupAll`, use `boolean.SemigroupAll` instead + - deprecate `semigroupAny`, use `boolean.SemigroupAny` instead + - deprecate `getFunctionSemigroup`, use `function.getSemigroup` instead + - deprecate `semigroupString`, use `string.Semigroup` instead + - deprecate `semigroupSum`, use `number.SemigroupSum` instead + - deprecate `semigroupProduct`, use `number.SemigroupProduct` instead + - deprecate `fold`, use `concatAll` instead + - deprecate `getIntercalateSemigroup`, use `intercalate` instead + - deprecate `getMeetSemigroup`, use `min` instead + - deprecate `getJoinSemigroup`, use `max` instead + - deprecate `getDualSemigroup`, use `reverse` instead + - deprecate `getStructSemigroup`, use `struct` instead + - deprecate `getTupleSemigroup`, use `tuple` instead + - deprecate `getFirstSemigroup`, use `first` instead + - deprecate `getLastSemigroup`, use `last` instead + - deprecate `getObjectSemigroup`, use `assign` instead + - `Set` + - deprecate `subset` in favour of `isSubset` + - `Show` + - deprecate `showBoolean`, use `boolean.Show` instead + - deprecate `showString`, use `string.Show` instead + - deprecate `showNumber`, use `number.Show` instead + - deprecate `getStructShow`, use `struct` instead + - deprecate `getTupleShow`, use `tuple` instead + - `Strong` + - deprecate `splitStrong` in favour of `split` + - deprecate `fanout` in favour of `fanOut` + - `Task` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `fromTask` + - `TaskEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getTaskValidation`, use `getApplicativeTaskValidation` and `getAltTaskValidation` instead + - `TaskThese` + - deprecate `functorTaskThese` instance in favour of `Functor` + - deprecate `bifunctorTaskThese` instance in favour of `Bifunctor` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `toTuple` in favour of `toTuple2` + - `These` + - deprecate `toTuple` in favour of `toTuple2` + - `Traversable` + - deprecate `getTraversableComposition`, use `traverse`, `sequence` helpers instead + - `Tuple` + - deprecate `mapLeft` in favour of `mapSnd` + - deprecate `map` in favour of `mapFst` +- **New Feature** + - add `Pointed` type class + - add `FromEither` type class + - add `FromIO` type class + - add `FromTask` type class + - add `TaskOption` module + - add `string` module + - add `number` module + - add `Separated` module (@YBogomolov) + - add `Json` module + - `Apply` + - add `ap` helper + - add `apS` helper + - add `apFirst` helper + - add `apSecond` helper + - add `getApplySemigroup` + - `Applicative` + - add `getApplicativeMonoid` + - `Array` + - add `Pointed` instance + - add `Apply` instance + - add `matchLeft` alias + - add `matchRight` alias + - add `size` + - better `unsafeInsertAt` signature + - better `chunksOf` signature + - add `getSemigroup` + - `boolean` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `Eq` instance + - add `BooleanAlgebra` instance + - add `SemigroupAll` instance + - add `SemigroupAny` instance + - add `MonoidAll` instance + - add `MonoidAny` instance + - add `Ord` instance + - add `Show` instance + - `BooleanAlgebra` + - add `reverse` + - `Chain` + - add `bind` helper + - add `chainFirst` helper + - `Compactable` + - add `compact` helper + - add `separate` helper + - add `separated` constructor + - `Date` + - add `Eq` instance + - add `Ord` instance + - `Filterable` + - add `filter` helper + - add `filterMap` helper + - add `partition` helper + - add `partitionMap` helper + - `Foldable` + - add `reduce` helper + - add `foldaMap` helper + - add `reduceRight` helper + - `FoldableWithIndex` + - add `reduceWithIndex` helper + - add `foldaMapWithIndex` helper + - add `reduceRightWithIndex` helper + - `function` + - add `getBooleanAlgebra` + - add `getSemigroup` + - add `getMonoid` + - add `getSemiring` + - add `getRing` + - add `getEndomorphismMonoid` + - `Functor` + - add `map` helper + - add `bindTo` helper + - add `flap` derivable, #1393 (@williamareynolds) + - `FunctorWithIndex` + - add `mapWithIndex` helper + - `Either` + - add `Pointed` instance + - add `Apply` instance + - add `getCompactable` + - add `getFilterable` + - add `FromEither` instance + - add `toUnion`, closes #1362 + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `tryCatchK` + - add `fromOptionK` + - add `chainOptionK` + - `EitherT` + - split `getEitherM` into separated functions + - `Eq` + - add `getSemigroup` + - add `struct` + - add `tuple` + - `Identity` + - add `Pointed` instance + - add `Apply` instance + - `IO` + - add `Pointed` instance + - add `Apply` instance + - add `FromIO` instance + - `IOEither` + - add `Pointed` instance + - add `getCompactable` + - add `FromIO` instance + - add `FromEither` instance + - add `tryCatchK` combinator + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - `Map` + - add `filterWithIndex` combinator + - add `filterMapWithIndex` combinator + - add `partitionWithIndex` combinator + - add `partitionMapWithIndex` combinator + - add `getTraversableWithIndex` instance + - add `getFoldableWithIndex` instance + - `Monoid` + - add `concatAll` + - add `min` + - add `max` + - add `reverse` + - add `struct` + - add `tuple` + - `NonEmptyArray` + - add `Pointed` instance + - add `Apply` instance + - add `concatAll` + - add `isNonEmpty` guard + - add `fromReadonlyNonEmptyArray` constructor + - add `chainWithIndex` combinator + - add `chop` + - add `splitAt` + - add `chunksOf` + - `Option` + - add `Pointed` instance + - add `Apply` instance + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `tryCatchK` + - `OptionT` + - split `getOptionM` into separated functions + - `Ord` + - add `equalsDefault` + - add `reverse` + - add `tuple` + - `Ordering` + - add `Eq` instance + - add `Semigroup` instance + - add `Monoid` instance + - add `match` + - `Random` + - add `randomElem` + - `Reader` + - add `Pointed` instance + - add `Apply` instance + - export `first`, `second`, `left`, `right` + - `ReaderT` + - split `getReaderM` into separated functions + - `ReaderEither` + - add `Pointed` instance + - add `Apply` instance + - add `FromEither` instance + - add `getCompactable` + - add `getFilterable` + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - `ReaderTask` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `FromIO` instance + - add `FromTask` instance + - add `traverseSeqArrayWithIndex` + - add `traverseSeqArray` + - add `sequenceSeqArray` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - `ReaderTaskEither` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `FromIO` instance + - add `FromTask` instance + - add `FromEither` instance + - add `getCompactable` + - add `getFilterable` + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - export `MonadThrow` instance + - `ReadonlyArray` + - add `Pointed` instance + - add `Apply` instance + - add `getSemigroup` + - add `matchLeft` instance + - add `matchRight` instance + - add `size` + - better `unsafeInsertAt` signature + - better `chunksOf` signature, closes #1407 + - `ReadonlyMap` + - add `filterWithIndex` combinator + - add `filterMapWithIndex` combinator + - add `partitionWithIndex` combinator + - add `partitionMapWithIndex` combinator + - add `getFunctorWithIndex` + - add `getFoldable` + - add `getFoldableWithIndex` + - add `getTraversable` + - add `getTraversableWithIndex` + - `ReadonlyNonEmptyArray` + - add `Pointed` instance + - add `Apply` instance + - add `concatAll` + - add `isNonEmpty` + - add `chainWithIndex` + - add `chop` + - add `splitAt` + - add `chunksOf` + - `ReadonlySet` + - add `isEmpty` + - add `size` + - add `toggle` + - `Ring` + - add `tuple` + - `Set` + - add `isEmpty` + - add `size` + - `Semigroup` + - add `constant` + - add `concatAll` + - add `intercalate` + - add `min` + - add `max` + - add `struct` + - add `tuple` + - add `first` + - add `last` + - add `assign` + - `Show` + - add `struct` + - add `tuple` + - `State` + - add `Pointed` instance + - add `Apply` instance + - `StateT` + - split `getStateM` into separated functions + - `StateReaderTaskEither` + - add `Pointed` instance + - add `Apply` instance + - add `Monad` instance + - add `FromIO` instance + - add `FromTask` instance + - add `FromEither` instance + - add `fromOptionK` + - add `chainOptionK` + - export `MonadIO` instance + - export `MonadTask` instance + - export `MonadThrow` instance + - `Task` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `FromIO` instance + - add `FromTask` instance + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - `TaskEither` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `getCompactable` + - add `FromIO` instance + - add `FromTask` instance + - add `FromEither` instance + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - export `MonadThrow` instance + - `TaskThese` + - add `Functor` instance + - add `Pointed` instance + - add `Bifunctor` instance + - add `toTuple2` + - add `getApply` + - add `FromIO` instance + - add `FromTask` instance + - add `fromEither` function + - add `FromEither` instance + - add `getChain` instance + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `fromOption` + - add `fromOptionK` + - add `fromPredicate` + - `These` + - add `Pointed` instance + - add `of` function + - add `getApply` + - add `toTuple2` + - add `FromEither` instance + - add `fromOption` constructor + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `fromOptionK` + - `TaskOption` + - export `Chain` instance + - export `Monad` instance + - `TheseT` + - split `getTheseM` into separated functions + - `Traversable` + - add `traverse` helper + - add `sequence` helper + - `Tree` + - add `Pointed` instance + - add `Apply` instance + - `Writer` + - add `getPointed` + - add `getApply` + - add `getApplicative` + - add `getChain` +- **Bug Fix** + - `ReadonlyRecord` / `Record`: remove `extends string` constraints in `singleton` / `insertAt`, closes #1413 + - `TaskOption` + - fix `getOrElseW` signature +- **Internal** + - add `internal` module +- **Polish** + - the scope in `bindTo`, `bind`, `bindW`, `apS`, `apSW` is now correctly `readonly` + - fix `FromEither` type parameter order + - `Array` / `ReadonlyArray` + - assert arrays as non-empty when using `some`, #1424 (@thewilkybarkid) + - fix `matchLeft`, `matchRight` type parameter order + - `EitherT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + - `OptionT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + - `ReaderT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + - `ReadonlyMap` + - sort keys in `getShow` + - `ReadonlySet` + - sort keys in `getShow` + - `StateT` + - add overloads for `Kind2`, `Kind3` + - `TheseT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + +# 2.10.0-rc.8 + +- **Polish** + - the scope in `bindTo`, `bind`, `bindW`, `apS`, `apSW` is now correctly `readonly` + - fix `FromEither` type parameter order + +# 2.10.0-rc.7 + +- **Breaking Change** (with respect to `2.10.0-rc`) + - rename module `object` to `struct` + +# 2.10.0-rc.6 + +- **Bug Fix** + - `ReadonlyNonEmptyArray` + - remove circular dependency on `NonEmptyArray`, closes #1443 +- **Breaking Change** (with respect to `2.10.0-rc`) + - `EitherT` + - rename `match` to `matchE` and add `match` + - `IOEither` + - rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW` + - `OptionT` + - rename `match` to `matchE` and add `match` + - `ReaderEither` + - rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW` + - `ReaderTaskEither` + - rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW` + - `TheseT` + - rename `match` to `matchE` and add `match` + - `TaskEither` + - rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW` + - `TaskOption` + - rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW` + - `TaskThese` + - rename `match` / `matchW` to `matchE` / `matchWE` and add `match` / `matchW` + +# 2.10.0-rc.5 + +- **Bug Fix** + - `TaskOption` + - fix `getOrElseW` signature +- **Breaking Change** (with respect to `2.10.0-rc`) + - `OptionT` + - rename `none` to `zero` and change signature + - `ReaderT` + - remove `ask`, `asks` (they will be derived from the `FromReader` type-class in `2.11`) + - `Semigroup` + - move `assign` to `object` module and rename to `getAssignSemigroup` + - `ReaderT` + - remove `get`, `put`, `modify`, `gets` (they will be derived from the `FromState` type-class in `2.11`) +- **Deprecation** + - `Tuple` + - deprecate `mapLeft` in favour of `mapSnd` + - deprecate `map` in favour of `mapFst` + - `ReadonlyTuple` + - deprecate `mapLeft` in favour of `mapSnd` + - deprecate `map` in favour of `mapFst` +- **Polish** + - `Array` / `ReadonlyArray` + - assert arrays as non-empty when using `some`, #1424 (@thewilkybarkid) + - fix `matchLeft`, `matchRight` type parameter order + - `EitherT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + - `OptionT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + - `ReaderT` + - add overloads for `Kind2`, `Kind3`, `Kind4` + - `ReadonlyMap` + - sort keys in `getShow` + - `ReadonlySet` + - sort keys in `getShow` + - `StateT` + - add overloads for `Kind2`, `Kind3` + - `TheseT` + - add overloads for `Kind2`, `Kind3`, `Kind4` +- **Internal** + - add `internal` module + +# 2.10.0-rc.4 + +- **Deprecations** + - `Array` + - deprecate `empty` + - `Map` + - deprecate `empty` + - `NonEmptyArray` + - deprecate `filter` in favour of `Array`'s `filter` + - deprecate `filterWithIndex` in favour of `Array`'s `filterWithIndex` + - `ReadonlyNonEmptyArray` + - deprecate `filter` in favour of `ReadonlyArray`'s `filter` + - deprecate `filterWithIndex` in favour of `ReadonlyArray`'s `filterWithIndex` + - `Record` + - deprecate `empty` +- **Polish** + - `NonEmptyArray` + - remove duplicated `append`, `prepend`, `isNonEmpty` + - `ReadonlyNonEmptyArray` + - remove duplicated `append`, `prepend`, `isNonEmpty` + +# 2.10.0-rc.3 + +- **Deprecations** + - `Array` + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - `Ordering` + - deprecate `invert` in favour of `reverse` + - `ReadonlyMap` + - deprecate `insertAt` in favour of `upsertAt` + - `ReadonlyRecord` + - deprecate `insertAt` in favour of `upsertAt` + - `Map` + - deprecate `insertAt` in favour of `upsertAt` + - `NonEmptyArray` + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - deprecate `uncons` in favour of `unprepend` + - deprecate `unsnoc` in favour of `unappend` + - `Record` + - deprecate `insertAt` in favour of `upsertAt` + - `ReadonlyArray` + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - `ReadonlyNonEmptyArray` + - deprecate `insertAt`, Use `ReadonlyArray`'s `insertAt` instead + - deprecate `cons` in favour of `prepend` + - deprecate `snoc` in favour of `append` + - deprecate `uncons` in favour of `unprepend` + - deprecate `unsnoc` in favour of `unappend` + - `ReadonlySet` + - deprecate `fromArray` in favour of `fromReadonlyArray` + - `Set` + - deprecate `subset` in favour of `isSubset` +- **New Feature** + - `Array` + - add `size` + - better `unsafeInsertAt` signature + - better `chunksOf` signature + - add `getSemigroup` + - `Map` + - add `filterWithIndex` combinator + - add `filterMapWithIndex` combinator + - add `partitionWithIndex` combinator + - add `partitionMapWithIndex` combinator + - add `getTraversableWithIndex` instance + - add `getFoldableWithIndex` instance + - `NonEmptyArray` + - add `isNonEmpty` guard + - add `fromReadonlyNonEmptyArray` constructor + - add `chainWithIndex` combinator + - add `chop` + - add `splitAt` + - add `chunksOf` + - `Ordering` + - add `match` + - `ReadonlyArray` + - add `size` + - better `unsafeInsertAt` signature + - better `chunksOf` signature, closes #1407 + - `ReadonlyNonEmptyArray` + - add `isNonEmpty` + - add `chainWithIndex` + - add `chop` + - add `splitAt` + - add `chunksOf` + - `ReadonlySet` + - add `isEmpty` + - add `size` + - add `toggle` + - `Set` + - add `isEmpty` + - add `size` + - `string` + - add `empty` + - add `isEmpty` + - add `size` +- **Bug Fix** + - `ReadonlyRecord` / `Record`: remove `extends string` constraints in `singleton` / `insertAt`, closes #1413 + +# 2.10.0-rc.2 + +- **Deprecations** + - `Choice` + - deprecate `splitChoice` in favour of `split` + - deprecate `fanin` in favour of `fanIn` + - `Strong` + - deprecate `splitStrong` in favour of `split` + - deprecate `fanout` in favour of `fanOut` +- **New Feature** + - `Reader` + - export `first`, `second`, `left`, `right` + - `ReaderTask` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - `ReaderTaskEither` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - export `MonadThrow` instance + - `StateReaderTaskEither` + - export `MonadIO` instance + - export `MonadTask` instance + - export `MonadThrow` instance + - `Task` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - `TaskEither` + - export `Chain` instance + - export `Monad` instance + - export `MonadIO` instance + - export `MonadTask` instance + - export `MonadThrow` instance + - `TaskOption` + - export `Chain` instance + - export `Monad` instance +- **Polish** + - `Compactable` + - split `compact` / `separate` constraints + +# 2.10.0-rc.1 + +- **Deprecations** + - deprecate `pipeable` module, use the specific helpers instead + - deprecate `ValidationT` module, use `EitherT` instead + - deprecate "mega instances", use small, specific instances instead + - deprecate the old monad transformers, use the specific helpers instead + - `Applicative` + - deprecate `getApplicativeComposition`, use `ap` helper instead + - `Array` + - deprecate `prependToAll`, use `prependAll` instead + - `BooleanAlgebra` + - deprecate `booleanAlgebraBoolean`, use `boolean.BooleanAlgebra` instead + - deprecate `getFunctionBooleanAlgebra`, use `function.getBooleanAlgebra` instead + - deprecate `getDualBooleanAlgebra`, use `reverse` instead + - `Bounded` + - deprecate `boundedNumber`, use `number.Bounded` instead + - `Compactable` + - deprecate `getCompactableComposition`, use `compact`, `separate` helpers instead + - deprecate `Separated`, use `Separated.Separated` instead + - `Either` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getValidationSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getValidationMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getValidation`, use `getApplicativeValidation` and `getAltValidation` instead + - deprecate `Json` type, use the `Json` module instead + - deprecate `parseJSON` type, use the `Json` module instead + - deprecate `stringifyJSON` type, use the `Json` module instead + - `Eq` + - deprecate `eqBoolean`, use `boolean.Eq` instead + - deprecate `eqString`, use `string.Eq` instead + - deprecate `eqNumber`, use `number.Eq` instead + - deprecate `eqDate`, use `Date.Eq` instead + - deprecate `getStructEq`, use `struct` instead + - deprecate `getTupleEq`, use `tuple` instead + - `Filterable` + - deprecate `getFilterableComposition`, use `filter`, `filterMap`, `partition`, `partitionMap` helpers instead + - `Foldable` + - deprecate `toArray` in favour of `toReadonlyArray` + - deprecate `getFoldableComposition`, use `reduce`, `foldMap`, `reduceRight` helpers instead + - `FoldableWithIndex` + - deprecate `getFoldableWithIndexComposition`, use `reduceWithIndex`, `foldMapWithIndex`, `reduceRightWithIndex` helpers instead + - `Functor` + - deprecate `getFunctorComposition`, use `map` helper instead + - `FunctorWithIndex` + - deprecate `getFunctorWithIndexComposition`, use `mapWithIndex` helper instead + - `IO` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `fromIO` + - `IOEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getIOValidation`, use `getApplicativeIOValidation` and `getAltIOValidation` instead + - `Monoid` + - deprecate `monoidAll`, use `boolean.MonoidAll` instead + - deprecate `monoidAny`, use `boolean.MonoidAny` instead + - deprecate `getFunctionMonoid`, use `function.getMonoid` instead + - deprecate `getEndomorphismMonoid`, use `function.getEndomorphismMonoid` instead (**Note**. The execution order in + `function.getEndomorphismMonoid` is reversed) + - deprecate `monoidString`, use `string.Monoid` instead + - deprecate `monoidSum`, use `number.MonoidSum` instead + - deprecate `monoidProduct`, use `number.MonoidProduct` instead + - deprecate `fold`, use `concatAll` instead + - deprecate `getMeetMonoid`, use `min` instead + - deprecate `getJoinMonoid`, use `max` instead + - deprecate `getDualMonoid`, use `reverse` instead + - deprecate `getStructMonoid`, use `struct` instead + - deprecate `getTupleMonoid`, use `tuple` instead + - `NonEmptyArray` + - deprecate `fold`, use `concatAll` instead + - deprecate `prependToAll`, use `prependAll` instead + - `Option` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - `Ord` + - deprecate `ordBoolean`, use `boolean.Ord` instead + - deprecate `ordString`, use `string.Ord` instead + - deprecate `ordNumber`, use `number.Ord` instead + - deprecate `ordDate`, use `Date.Ord` instead + - deprecate `getDualOrd`, use `reverse` instead + - deprecate `getTupleOrd`, use `tuple` instead + - `Ordering` + - deprecate `eqOrdering`, use `Eq` instead + - deprecate `monoidOrdering`, use `Monoid` instead + - `Ring` + - deprecate `getFunctionRing`, use `function.getRing` instead + - `Reader` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - `ReaderEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getReaderValidation`, use `getApplicativeReaderValidation` and `getAltReaderValidation` instead + - deprecate `local`, Use `Reader`'s `local` instead + - `ReaderTask` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `run` + - deprecate `local`, Use `Reader`'s `local` instead + - `ReaderTaskEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getReaderTaskValidation`, use `getApplicativeReaderTaskValidation` and `getAltReaderTaskValidation` instead + - deprecate `run` + - deprecate `local`, Use `Reader`'s `local` instead + - `ReaderTaskEither` + - deprecate `run` + - `ReadonlyArray` + - deprecate `prependToAll`, use `prependAll` instead + - `ReadonlyNonEmptyArray` + - deprecate `fold`, use `concatAll` instead + - deprecate `prependToAll`, use `prependAll` instead + - `ReadonlyRecord` + - deprecate `hasOwnProperty`, use `has` instead + - `Record` + - deprecate `hasOwnProperty`, use `has` instead + - `Ring` + - deprecate `getTupleRing`, use `tuple` instead + - `Semigroup` + - deprecate `semigroupAll`, use `boolean.SemigroupAll` instead + - deprecate `semigroupAny`, use `boolean.SemigroupAny` instead + - deprecate `getFunctionSemigroup`, use `function.getSemigroup` instead + - deprecate `semigroupString`, use `string.Semigroup` instead + - deprecate `semigroupSum`, use `number.SemigroupSum` instead + - deprecate `semigroupProduct`, use `number.SemigroupProduct` instead + - deprecate `fold`, use `concatAll` instead + - deprecate `getIntercalateSemigroup`, use `intercalate` instead + - deprecate `getMeetSemigroup`, use `min` instead + - deprecate `getJoinSemigroup`, use `max` instead + - deprecate `getDualSemigroup`, use `reverse` instead + - deprecate `getStructSemigroup`, use `struct` instead + - deprecate `getTupleSemigroup`, use `tuple` instead + - deprecate `getFirstSemigroup`, use `first` instead + - deprecate `getLastSemigroup`, use `last` instead + - deprecate `getObjectSemigroup`, use `assign` instead + - `Show` + - deprecate `showBoolean`, use `boolean.Show` instead + - deprecate `showString`, use `string.Show` instead + - deprecate `showNumber`, use `number.Show` instead + - deprecate `getStructShow`, use `struct` instead + - deprecate `getTupleShow`, use `tuple` instead + - `Task` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `fromTask` + - `TaskEither` + - deprecate `getApplySemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getApplyMonoid` in favour of `Applicative.getApplicativeMonoid` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `getTaskValidation`, use `getApplicativeTaskValidation` and `getAltTaskValidation` instead + - `TaskThese` + - deprecate `functorTaskThese` instance in favour of `Functor` + - deprecate `bifunctorTaskThese` instance in favour of `Bifunctor` + - deprecate `getSemigroup` in favour of `Apply.getApplySemigroup` + - deprecate `toTuple` in favour of `toTuple2` + - `These` + - deprecate `toTuple` in favour of `toTuple2` + - `Traversable` + - deprecate `getTraversableComposition`, use `traverse`, `sequence` helpers instead +- **New Feature** + - add `Pointed` type class + - add `FromEither` type class + - add `FromIO` type class + - add `FromTask` type class + - add `TaskOption` module + - add `string` module + - add `number` module + - add `Separated` module (@YBogomolov) + - add `Json` module + - `Apply` + - add `ap` helper + - add `apS` helper + - add `apFirst` helper + - add `apSecond` helper + - add `getApplySemigroup` + - `Applicative` + - add `getApplicativeMonoid` + - `Array` + - add `Pointed` instance + - add `Apply` instance + - add `matchLeft` alias + - add `matchRight` alias + - `boolean` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `Eq` instance + - add `BooleanAlgebra` instance + - add `SemigroupAll` instance + - add `SemigroupAny` instance + - add `MonoidAll` instance + - add `MonoidAny` instance + - add `Ord` instance + - add `Show` instance + - `BooleanAlgebra` + - add `reverse` + - `Chain` + - add `bind` helper + - add `chainFirst` helper + - `Compactable` + - add `compact` helper + - add `separate` helper + - add `separated` constructor + - `Date` + - add `Eq` instance + - add `Ord` instance + - `Filterable` + - add `filter` helper + - add `filterMap` helper + - add `partition` helper + - add `partitionMap` helper + - `Foldable` + - add `reduce` helper + - add `foldaMap` helper + - add `reduceRight` helper + - `FoldableWithIndex` + - add `reduceWithIndex` helper + - add `foldaMapWithIndex` helper + - add `reduceRightWithIndex` helper + - `function` + - add `getBooleanAlgebra` + - add `getSemigroup` + - add `getMonoid` + - add `getSemiring` + - add `getRing` + - add `getEndomorphismMonoid` + - `Functor` + - add `map` helper + - add `bindTo` helper + - add `flap` derivable, #1393 (@williamareynolds) + - `FunctorWithIndex` + - add `mapWithIndex` helper + - `Either` + - add `Pointed` instance + - add `Apply` instance + - add `getCompactable` + - add `getFilterable` + - add `FromEither` instance + - add `toUnion`, closes #1362 + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `tryCatchK` + - add `fromOptionK` + - add `chainOptionK` + - `EitherT` + - split `getEitherM` into separated functions + - `Eq` + - add `getSemigroup` + - add `struct` + - add `tuple` + - `Identity` + - add `Pointed` instance + - add `Apply` instance + - `IO` + - add `Pointed` instance + - add `Apply` instance + - add `FromIO` instance + - `IOEither` + - add `Pointed` instance + - add `getCompactable` + - add `FromIO` instance + - add `FromEither` instance + - add `tryCatchK` combinator + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - `Monoid` + - add `concatAll` + - add `min` + - add `max` + - add `reverse` + - add `struct` + - add `tuple` + - `NonEmptyArray` + - add `Pointed` instance + - add `Apply` instance + - add `concatAll` + - `Option` + - add `Pointed` instance + - add `Apply` instance + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `tryCatchK` + - `OptionT` + - split `getOptionM` into separated functions + - `Ord` + - add `equalsDefault` + - add `reverse` + - add `tuple` + - `Ordering` + - add `Eq` instance + - add `Semigroup` instance + - add `Monoid` instance + - `Random` + - add `randomElem` + - `Reader` + - add `Pointed` instance + - add `Apply` instance + - `ReaderT` + - split `getReaderM` into separated functions + - `ReaderEither` + - add `Pointed` instance + - add `Apply` instance + - add `FromEither` instance + - add `getCompactable` + - add `getFilterable` + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - `ReaderTask` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `FromIO` instance + - add `FromTask` instance + - add `traverseSeqArrayWithIndex` + - add `traverseSeqArray` + - add `sequenceSeqArray` + - `ReaderTaskEither` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `FromIO` instance + - add `FromTask` instance + - add `FromEither` instance + - add `getCompactable` + - add `getFilterable` + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - `ReadonlyArray` + - add `Pointed` instance + - add `Apply` instance + - add `getSemigroup` + - add `matchLeft` instance + - add `matchRight` instance + - `ReadonlyMap` + - add `filterWithIndex` combinator + - add `filterMapWithIndex` combinator + - add `partitionWithIndex` combinator + - add `partitionMapWithIndex` combinator + - add `getFunctorWithIndex` + - add `getFoldable` + - add `getFoldableWithIndex` + - add `getTraversable` + - add `getTraversableWithIndex` + - `ReadonlyNonEmptyArray` + - add `Pointed` instance + - add `Apply` instance + - add `concatAll` + - `Ring` + - add `tuple` + - `Semigroup` + - add `constant` + - add `concatAll` + - add `intercalate` + - add `min` + - add `max` + - add `struct` + - add `tuple` + - add `first` + - add `last` + - add `assign` + - `Show` + - add `struct` + - add `tuple` + - `State` + - add `Pointed` instance + - add `Apply` instance + - `StateT` + - split `getStateM` into separated functions + - `StateReaderTaskEither` + - add `Pointed` instance + - add `Apply` instance + - add `Monad` instance + - add `FromIO` instance + - add `FromTask` instance + - add `FromEither` instance + - add `fromOptionK` + - add `chainOptionK` + - `Task` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `FromIO` instance + - add `FromTask` instance + - `TaskEither` + - add `Pointed` instance + - add `ApplyPar` instance + - add `ApplySeq` instance + - add `getCompactable` + - add `FromIO` instance + - add `FromTask` instance + - add `FromEither` instance + - add `toUnion` + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `orElseW` + - add `fromOptionK` + - add `chainOptionK` + - `TaskThese` + - add `Functor` instance + - add `Pointed` instance + - add `Bifunctor` instance + - add `toTuple2` + - add `getApply` + - add `FromIO` instance + - add `FromTask` instance + - add `fromEither` function + - add `FromEither` instance + - add `getChain` instance + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `fromOption` + - add `fromOptionK` + - add `fromPredicate` + - `These` + - add `Pointed` instance + - add `of` function + - add `getApply` + - add `toTuple2` + - add `FromEither` instance + - add `fromOption` constructor + - add `foldW` + - add `match` alias + - add `matchW` alias + - add `fromOptionK` + - `TheseT` + - split `getTheseM` into separated functions + - `Traversable` + - add `traverse` helper + - add `sequence` helper + - `Tree` + - add `Pointed` instance + - add `Apply` instance + - `Writer` + - add `getPointed` + - add `getApply` + - add `getApplicative` + - add `getChain` + +# 2.9.5 + +- **Polish** + - `Array`, `ReadonlyArray`: change `scanLeft` and `scanRight` to return `NonEmptyArray`, `ReadonlyNonEmptyArray`, #1391 (@willheslam) + +# 2.9.4 + +- **Bug Fix** + - fix `filter` overloads in `NonEmptyArray` / `ReadonlyNonEmptyArray`, closes #1388 (@gcanti) + +# 2.9.3 + +- **Polish** + - add more `/*#__PURE__*/` comments to improve tree shaking, #1370 (@OliverJAsh) + +# 2.9.2 + +- **Polish** + - add more `/*#__PURE__*/` comments to improve tree shaking, #1368 (@OliverJAsh) + +# 2.9.1 + +- **Polish** + - `Array` / `ReadonlyArray` + - `sort`: return the input when length <= 1, closes #1357 (@gcanti) + - `uniq`: return the input when length <= 1 (@gcanti) + +# 2.9.0 + +- **New Feature** + + - `Array` + - add `altW` (@gcanti) + - add `intersperse` (@marcotoniut) + - add `prependToAll` (@marcotoniut) + - add `every` (@gcanti) + - add `some` (@gcanti) + - add `Do` (@gcanti) + - `Either` + - add `altW` (@gcanti) + - add `fromNullableK` (@gcanti) + - add `chainNullableK` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - add `filterOrElseW` (@gcanti) + - `Identity` + - add `altW` (@gcanti) + - add `Do` (@gcanti) + - `IO` + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - `IOEither` + - add `altW` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseSeqArray` (@mohaalak @iamomiid) + - add `sequenceSeqArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - add `filterOrElseW` (@gcanti) + - `NonEmptyArray` + - add `altW` (@gcanti) + - add `uncons` (@marcotoniut) + - add `unsnoc` (@marcotoniut) + - add `intersperse` (@marcotoniut) + - add `prependToAll` (@marcotoniut) + - add `Do` (@gcanti) + - `Option` + - add `altW` (@gcanti) + - add `fromNullableK` (@gcanti) + - add `chainNullableK` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - `Reader` + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - `ReaderEither` + - add `altW` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - add `filterOrElseW` (@gcanti) + - `ReaderTask` + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseSeqArray` (@mohaalak @iamomiid) + - add `sequenceSeqArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - `ReaderTaskEither` + - add `altW` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseSeqArray` (@mohaalak @iamomiid) + - add `sequenceSeqArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - add `filterOrElseW` (@gcanti) + - `ReadonlyArray` + - add `altW` (@gcanti) + - add `intersperse` (@marcotoniut) + - add `prependToAll` (@marcotoniut) + - add `every` (@gcanti) + - add `some` (@gcanti) + - add `Do` (@gcanti) + - `ReadonlyNonEmptyArray` + - add `altW` (@gcanti) + - add `uncons` (@marcotoniut) + - add `unsnoc` (@marcotoniut) + - add `intersperse` (@marcotoniut) + - add `prependToAll` (@marcotoniut) + - add `Do` (@gcanti) + - `State` + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - `StateReaderTaskEither` + - add `altW` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `filterOrElseW` (@gcanti) + - `Task` + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseSeqArray` (@mohaalak @iamomiid) + - add `sequenceSeqArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - `TaskEither` + - add `altW` (@gcanti) + - add `traverseArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseArray` (@mohaalak @iamomiid) + - add `sequenceArray` (@mohaalak @iamomiid) + - add `traverseSeqArrayWithIndex` (@mohaalak @iamomiid) + - add `traverseSeqArray` (@mohaalak @iamomiid) + - add `sequenceSeqArray` (@mohaalak @iamomiid) + - add `Do` (@gcanti) + - add `filterOrElseW` (@gcanti) + - `Tree` + - add `Do` (@gcanti) + +- **Deprecation** + - `Option` + - deprecate `mapNullable` in favour of `chainNullableK` (@gcanti) + - `StateReaderTaskEither` + - deprecate `stateReaderTaskEitherSeq` because is useless, `stateReaderTaskEither` is already sequential (@gcanti) + +# 2.8.6 + +- **Bug Fix** + - fix #1350 (@gcanti) + +# 2.8.5 + +- **Polish** + - `IOEither` + - export missing `of` function (@gcanti) + - `ReaderEither` + - export missing `of` function (@gcanti) + +# 2.8.4 + +- **Polish** + - `IOEither` + - add `ApplicativePar` instance (@gcanti) + - add `ApplicativeSeq` instance (@gcanti) +- **Deprecation** + - `IOEither` + - deprecate `Applicative` in favour of `ApplicativePar` (@gcanti) + +# 2.8.3 + +- **Polish** + - `Reader` + - export `Strong` instance (@urgent) + - export `Choice` instance (@gcanti) + +# 2.8.2 + +- **Polish** + - increase the supported number of arguments of pipe function (@heka1024) +- **Bug fix** + - revert `groupBy` change in #1286 (@gcanti) +- **Internal** + - define all non-pipeable internal functions in terms of the corresponding pipeable versions (@gcanti) + +# 2.8.1 + +- **Polish** + - fix `HKT` typings duplication (which might break module augmentation) + +# 2.8.0 + +- **New Feature** + - expose `fp-ts` modules without lib/es6 prefix, #1241 (@StefanoMagrassi) + - `Array` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `Either` + - add `apW` (@gcanti) + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - add `chainFirstW`, #1273 (@leemhenson) + - add `getFilterable` (@gcanti) + - `Foldable` + - add `toArray`, #1272 (@newswim) + - add `reduceM` (@gcanti) + - `Identity` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `IO` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `IOEither` + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - add `chainFirstW`, #1273 (@leemhenson) + - `NonEmptyArray` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - relax `group` signature (@gcanti) + - relax `groupBy` signature (@gcanti) + - relax `groupSort` signature (@gcanti) + - relax `sort` signature (@gcanti) + - `Option` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `Reader` + - add `apW` (@gcanti) + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - `ReaderEither` + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - add `chainFirstW`, #1273 (@leemhenson) + - `ReaderTask` + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - `ReaderTaskEither` + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - add `chainFirstW`, #1273 (@leemhenson) + - `ReadonlyArray` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `ReadonlyNonEmptyArray` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - relax `group` signature (@gcanti) + - relax `groupBy` signature (@gcanti) + - relax `groupSort` signature (@gcanti) + - relax `sort` signature (@gcanti) + - `State` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `evaluate` (@gcanti) + - add `execute` (@gcanti) + - `StateReaderTaskEither` + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - add `chainFirstW`, #1273 (@leemhenson) + - add `evaluate` (@gcanti) + - add `execute` (@gcanti) + - `Task` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `TaskEither` + - add `apS` (@gcanti) + - add `apSW` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - add `bindW` (@gcanti) + - add `chainFirstW`, #1273 (@leemhenson) + - `Tree` + - add `apS` (@gcanti) + - add `bind` (@gcanti) + - add `bindTo` (@gcanti) + - `Writer` + - add `evaluate` (@gcanti) + - add `execute` (@gcanti) +- **Deprecation** + - `Foldable` + - deprecate `foldM` in favour of `reduceM` (@gcanti) + - `State` + - deprecate `evalState` in favour of `evaluate` (@gcanti) + - deprecate `execState` in favour of `execute` (@gcanti) + - `StateReaderTaskEither` + - deprecate `evalState` in favour of `evaluate` (@gcanti) + - deprecate `execState` in favour of `execute` (@gcanti) + - `Writer` + - deprecate `evalWriter` in favour of `evaluate` (@gcanti) + - deprecate `execWriter` in favour of `execute` (@gcanti) + +# 2.7.1 + +- **Bug Fix** + - `ReadonlyArray` + - fix `FunctorWithIndex` instance name (@gcanti) + - fix `Functor` instance name (@gcanti) +- **Polish** + - `Array` + - relax `sort` signature (@gcanti) + - relax `sortBy` signature (@gcanti) + - `Map` + - export `mapWithIndex` (@gcanti) + - `ReadonlyArray` + - relax `sort` signature (@gcanti) + - relax `sortBy` signature (@gcanti) + - `ReadonlyMap` + - export `mapWithIndex` (@gcanti) + +# 2.7.0 + +- **Bug Fix** + - `These` + - fix `ap` implementation in `getMonad` function (@gcanti) +- **Polish** + - improve performance of sequenceT and sequenceS, fix #1255 (@gcanti) +- **New Feature** + - `function` + - add `hole` (type hole simulation) (@gcanti) + - `Array` + - add `chainWithIndex`, #1256 (@OliverJAsh) + - add `Functor` instance (@gcanti) + - add `FunctorWithIndex` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Unfoldable` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Alternative` instance (@gcanti) + - add `Extend` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - add `FilterableWithIndex` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `FoldableWithIndex` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `TraversableWithIndex` instance (@gcanti) + - add `Witherable` instance (@gcanti) + - `Const` + - add `Functor` instance (@gcanti) + - add `Contravariant` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - `Either` + - add `getApplicativeValidation` constrained instance (@gcanti) + - add `getAltValidation` constrained instance (@gcanti) + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Extend` instance (@gcanti) + - add `ChainRec` instance (@gcanti) + - add `MonadThrow` instance (@gcanti) + - `Eq` + - add `Contravariant` instance (@gcanti) + - `Identity` + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - add `ChainRec` instance (@gcanti) + - `IO` + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `MonadIO` instance (@gcanti) + - add `ChainRec` instance (@gcanti) + - `IOEither` + - add `getApplicativeIOValidation` constrained instance (@gcanti) + - add `getAltIOValidation` constrained instance (@gcanti) + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `MonadIO` instance (@gcanti) + - add `MonadThrow` instance (@gcanti) + - `Map` + - add `Functor` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - `NonEmptyArray` + - add `Functor` instance (@gcanti) + - add `FunctorWithIndex` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `FoldableWithIndex` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `TraversableWithIndex` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - `Option` + - add `Functor` instance (@gcanti) + - add `Applicativ` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Alternative` instance (@gcanti) + - add `Extend` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `Witherable` instance (@gcanti) + - add `MonadThrow` instance (@gcanti) + - `Ord` + - add `ContravariantOrd` instance (@gcanti) + - `Reader` + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Profunctor` instance (@gcanti) + - add `Category` instance (@gcanti) + - add `String` instance (@gcanti) + - add `Choice` instance (@gcanti) + - `ReaderEither` + - add `getApplicativeReaderValidation` constrained instance (@gcanti) + - add `getAltReaderValidation` constrained instance (@gcanti) + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `MonadThrow` instance (@gcanti) + - `ReaderTask` + - add `Functor` instance (@gcanti) + - add `ApplicativePar` instance (@gcanti) + - add `ApplicativeSeq` instance (@gcanti) + - `ReaderTaskEither` + - add `getApplicativeReaderTaskValidation` constrained instance (@gcanti) + - add `getAltReaderTaskValidation` constrained instance (@gcanti) + - add `Functor` instance (@gcanti) + - add `ApplicativePar` instance (@gcanti) + - add `ApplicativeSeq` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Alt` instance (@gcanti) + - `ReadonlyArray` + - add `chainWithIndex`, #1256 (@OliverJAsh) + - add `Functor` instance (@gcanti) + - add `FunctorWithIndex` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Unfoldable` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Alternative` instance (@gcanti) + - add `Extend` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - add `FilterableWithIndex` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `FoldableWithIndex` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `TraversableWithIndex` instance (@gcanti) + - add `Witherable` instance (@gcanti) + - `ReadonlyMap` + - add `Functor` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - `ReadonlyNonEmptyArray` + - add `Functor` instance (@gcanti) + - add `FunctorWithIndex` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `FoldableWithIndex` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `TraversableWithIndex` instance (@gcanti) + - add `Alt` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - `ReadonlyRecord` + - add `Functor` instance (@gcanti) + - add `FunctorWithIndex` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - add `FilterableWithIndex` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `TraversableWithIndex` instance (@gcanti) + - add `Witherable` instance (@gcanti) + - `ReadonlyTuple` + - add `Functor` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Semigroupoid` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - `Record` + - add `Functor` instance (@gcanti) + - add `FunctorWithIndex` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Compactable` instance (@gcanti) + - add `Filterable` instance (@gcanti) + - add `FilterableWithIndex` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `TraversableWithIndex` instance (@gcanti) + - add `Witherable` instance (@gcanti) + - `State` + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - `Store` + - add `Functor` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - `StateReaderTaskEither` + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Alt` instance (@gcanti) + - `Task` + - add `Functor` instance (@gcanti) + - add `ApplicativePar` instance (@gcanti) + - add `ApplicativeSeq` instance (@gcanti) + - `TaskEither` + - add `getApplicativeTaskValidation` constrained instance (@gcanti) + - add `getAltTaskValidation` constrained instance (@gcanti) + - add `Functor` instance (@gcanti) + - add `ApplicativePar` instance (@gcanti) + - add `ApplicativeSeq` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Alt` instance (@gcanti) + - `TaskThese` + - add `Functor` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - `These` + - add `getApplicative` constrained instance (@gcanti) + - add `Functor` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - `Traced` + - rename `traced` to `Functor` for consistency (@gcanti) + - `Tree` + - add `Functor` instance (@gcanti) + - add `Applicative` instance (@gcanti) + - add `Monad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - `Writer` + - add `Functor` instance (@gcanti) + - `Tuple` + - add `Functor` instance (@gcanti) + - add `Bifunctor` instance (@gcanti) + - add `Semigroupoid` instance (@gcanti) + - add `Comonad` instance (@gcanti) + - add `Foldable` instance (@gcanti) + - add `Traversable` instance (@gcanti) + +# 2.6.7 + +- **Polish** + - refine `Either.parseJSON` return type, #1252 (@OliverJAsh) + - add missing `chainW` to `ReaderTask`, #1254 (@adameier) + +# 2.6.6 + +- **Polish** + - `Array` + - export `unfold` (@gcanti) + - make `lookup` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - make `difference` data-last (@gcanti) + - make `intersection` data-last (@gcanti) + - make `union` data-last (@gcanti) + - make `zip` data-last (@gcanti) + - make `cons` data-last (@gcanti) + - `Map` + - make `member` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - make `lookup` data-last (@gcanti) + - make `lookupWithKey` data-last (@gcanti) + - make `isSubmap` data-last (@gcanti) + - `NonEmptyArray` + - make `zip` data-last (@gcanti) + - `ReadonlyArray` + - export `unfold` (@gcanti) + - make `lookup` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - make `difference` data-last (@gcanti) + - make `intersection` data-last (@gcanti) + - make `union` data-last (@gcanti) + - make `zip` data-last (@gcanti) + - make `cons` data-last (@gcanti) + - `ReadonlyMap` + - make `member` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - make `lookup` data-last (@gcanti) + - make `lookupWithKey` data-last (@gcanti) + - make `isSubmap` data-last (@gcanti) + - `ReadonlyNonEmptyArray` + - make `zip` data-last (@gcanti) + - `ReadonlyRecord` + - make `isSubrecord` data-last (@gcanti) + - make `lookup` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - `ReadonlySet` + - make `isSubset` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - make `union` data-last (@gcanti) + - make `intersection` data-last (@gcanti) + - make `difference` data-last (@gcanti) + - `Record` + - make `isSubrecord` data-last (@gcanti) + - make `lookup` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - `Set` + - make `subset` data-last (@gcanti) + - make `elem` data-last (@gcanti) + - make `union` data-last (@gcanti) + - make `intersection` data-last (@gcanti) + - make `difference` data-last (@gcanti) + - `Semigroup` + - make `fold` data-last (@gcanti) + +# 2.6.5 + +- **Polish** + - export a pipeable `wither` function from all modules which admit a `Witherable` instance (@gcanti) + - export a pipeable `wilt` function from all modules which admit a `Witherable` instance (@gcanti) + +# 2.6.4 + +- **Bug Fix** + - `ReadonlyMap` + - `traverseWithIndex` should sort the keys (@gcanti) + - `ReadonlyRecord` + - `traverseWithIndex` should sort the keys (@gcanti) + +# 2.6.3 + +- **Polish** + - change `ReadonlyNonEmptyArray` definition to get better type inference (@gcanti) + - move `pipe` to `function` module (@gcanti) + - export `sequence` from all modules which admit a `Traversable` instance (@gcanti) + - export a pipeable `traverse` function from all modules which admit a `Traversable` instance (@gcanti) + - export a pipeable `traverseWithIndex` function from all modules which admit a `TraversableWithIndex` instance (@gcanti) + - remove monad transformers imports from all modules (@gcanti) + +# 2.6.2 + +The goal of this release is to make `fp-ts` more "tree shaking" friendly. + +- **Polish** + - add `/*@__PURE__*/` comments to pipeables (@gcanti) + - add `/*@__PURE__*/` comments to transformers (@gcanti) + - remove `pipeable.ts` module imports (@gcanti) + +# 2.6.1 + +- **New Feature** + - add W variants, closes #904 (@gcanti) + - `Const` + - add missing instances, #1201 (@gcanti) + - `Date` + - add `eqDate`, `eqMonth`, `eqYear` (@gcanti) + - `Either` + - add `getOrElseW` (@gcanti) + - add `chainW` (@gcanti) + - `Eq` + - add `getMonoid` (@gcanti) + - `IOEither` + - add `getOrElseW` (@gcanti) + - add `chainW` (@gcanti) + - add `chainEitherKW` (@giogonzo) + - `Option` + - add `getOrElseW` (@gcanti) + - `Reader` + - add `chainW` (@gcanti) + - `ReaderEither` + - add `getOrElseW` (@gcanti) + - add `chainW` (@gcanti) + - add `chainEitherKW` (@giogonzo) + - `ReaderTaskEither` + - add `getOrElseW` (@gcanti) + - add `chainW` (@gcanti) + - add `chainEitherKW` (@giogonzo) + - add `chainTaskEitherKW` (@giogonzo) + - add `chainIOEitherKW` (@giogonzo) + - `StateReaderTaskEither` + - add `chainW` (@gcanti) + - add `chainEitherKW` (@giogonzo) + - add `chainTaskEitherKW` (@giogonzo) + - add `chainReaderTaskEitherKW` (@giogonzo) + - add `chainIOEitherKW` (@giogonzo) + - `TaskEither` + - add `getOrElseW` (@gcanti) + - add `chainW` (@gcanti) + - add `chainEitherKW` (@giogonzo) + - add `chainIOEitherKW` (@giogonzo) + - `Tree` + - add `fold` function (@gcanti) + +# 2.5.4 + +- **Polish** + - `StateT` + - add missing `StateM2C` and `StateM3C` (@qlonik) + +# 2.5.3 + +- **Polish** + - `Either` + - add missing instances to `getValidation` (@gcanti) + - `IOEither` + - relax `Bifunctor2C` to `Bifunctor2` in `getIOValidation` (@gcanti) + - `ReaderEither` + - relax `Bifunctor3C` to `Bifunctor3` in `getReaderValidation` (@gcanti) + - `ReaderTaskEither` + - relax `Bifunctor3C` to `Bifunctor3` in `getReaderTaskValidation` (@gcanti) + - `TaskEither` + - relax `Bifunctor2C` to `Bifunctor2` in `getTaskValidation` (@gcanti) + +# 2.5.1 + +- **New Feature** + - `Eq` + - add `eqStrict`, closes #965 (@gcanti) + - `NonEmptyArray` + - add `fold` (@vicrac) + - add `zip`, `zipWith` and `unzip`, closes #1109 (@gcanti) + - `Semigroup` + - add `getIntercalateSemigroup` (@gcanti) + - `Set` + - add `toggle` (@ryota-ka) + - `TaskEither` + - add `tryCatchK` (@DenisFrezzato) + - `These` + - add missing `MonadThrow` instance (@gcanti) + - `ReaderTaskEither` + - add missing `leftReaderTask`, `rightReaderTask` functions (@gcanti) + - `StateReaderTaskEither` + - add missing `Bifunctor`, `Alt` instances (@gcanti) +- **Experimental** + - add `ReadonlyArray` module (@gcanti) + - add `ReadonlyNonEmptyArray` module (@gcanti) + - add `ReadonlySet` module (@gcanti) + - add `ReadonlyMap` module (@gcanti) + - add `ReadonlyRecord` module (@gcanti) + - add `ReadonlyTuple` module (@gcanti) + +# 2.4.4 + +- **Polish** + - add missing `MonadIO4` (@mlegenhausen) + - add missing `MonadTask4` (@mlegenhausen) + - `StateReaderTaskEither` + - add missing `MonadTask4` instance (@mlegenhausen) + - add missing `filterOrElse`, `fromPredicate` combinators (@mlegenhausen) + +# 2.4.3 + +- **Bug Fix** + - don't set `target: es6` in `tsconfig.build-es6.json`, fix #1110 (@gcanti) + +# 2.4.2 + +- **Bug Fix** + - fix `Invariant` definition (@gcanti) + +# 2.4.1 + +- **Polish** + - `NonEmptyArray` + - add overloading to `group` managing non empty arrays, closes #831 (@gcanti) + - `foldMap` and `foldMapWithIndex` now require a `Semigroup` instead of a `Monoid` (@gcanti) + +# 2.4.0 + +- **New Feature** + - add `WriterT` module, closes #1050 (@gcanti) + - add `TheseT` module (@gcanti) + - add `TaskThese` module (@gcanti) + - `function` + - add `tupled`, `untupled` functions, closes #1062 (@gcanti) + - `IOEither` + - add `fromEitherK`, `chainEitherK` (@gcanti) + - `ReaderEither` + - add `fromEitherK`, `chainEitherK` (@gcanti) + - `ReaderTask` + - add `run` (@gcanti) + - add `fromIOK`, `chainIOK`, `fromTaskK`, `chainTaskK` (@gcanti) + - `ReaderTaskEither` + - add `fromEitherK`, `chainEitherK`, `fromIOEitherK`, `chainIOEitherK`, `fromTaskEitherK`, `chainTaskEitherK` (@gcanti) + - `These` + - add `swap` (@gcanti) + - `Ord` + - add `getMonoid` (@vicrac) + - `Ordering` + - add `monoidOrdering` (@gcanti) + - `StateReaderTaskEither` + - add `fromEitherK`, `chainEitherK`, `fromIOEitherK`, `chainIOEitherK`, `fromTaskEitherK`, `chainTaskEitherK`, `fromReaderTaskEitherK`, `chainReaderTaskEitherK` (@gcanti) + - `Task` + - add `fromIOK`, `chainIOK` (@gcanti) + - `TaskEither` + - add `fromEitherK`, `chainEitherK`, `fromIOEitherK`, `chainIOEitherK` (@gcanti) +- **Deprecation** + - `Ord` + - deprecate `getSemigroup` in favor of `getMonoid` (@gcanti) + - `Ordering` + - deprecate `semigroupOrdering` in favor of `monoidOrdering` (@gcanti) +- **Internal** + - use native `Promise.race` in `Task.getRaceMonoid` (@gcanti) + +# 2.3.1 + +- **Bug Fix** + - `Array.ts` + - fix `sortBy` failing on empty list of ords, #1046 (@vicrac) + +# 2.3.0 + +- **New Feature** + - add `ReaderTask` module (@sledorze) + - `ReaderTaskEither` + - add `getReaderTaskValidation` (@sledorze) + - `ReaderEither` + - add `getReaderValidation` (@gcanti) + - `TaskEither` + - improve `getTaskValidation` (@gcanti) + - `IOEither` + - improve `getIOValidation` (@gcanti) + +# 2.2.0 + +- **New Feature** + - add `boolean` module, closes #930 (@giogonzo) + - add `ChainRec` instance to `IO` (@gcanti) + - `NonEmptyArray` + - add `init` (@steida) + - add `Alt` instance (@gcanti) +- **Internal** + - add new 3C variants and related overloads (@sledorze) + +# 2.1.2 + +- **Bug Fix** + - `fromNullable` now uses `NonNullable` in its return type, fixes #1004 (@gcanti) + +# 2.1.1 + +- **Bug Fix** + - add `sequenceT` and `sequenceS` overload signatures for `Kind4`, fixes #969 (@pfgray) + +# 2.1.0 + +- **New Feature** + - add constrained `Filterable` instance to `IOEither`, `TaskEither`, #959 (@giogonzo) + +# 2.0.5 + +- **Bug Fix** + - fix `PipeableApply2C` definition (@gcanti) + +# 2.0.4 + +- **Polish** + - `ReaderTaskEither` + - add missing `bracket` function (@mlegenhausen) + +# 2.0.3 + +- **Bug Fix** + - fix `sequenceT`, `sequenceS` implementations, closes #914 (@gcanti) + +# 2.0.2 + +- **Bug Fix** + - add `reduce` to `FoldableComposition2C1` (@anilanar) + +# 2.0.1 + +- **Bug Fix** + - fix `PipeableBifunctor` definition (@gcanti) + - fix `chunksOf` implementation, #897 (@gcanti) + +# 2.0.0 + +- **Breaking Change** + - remove deprecated APIs (@gcanti) + - remove classes (@gcanti) + - remove all phantom fields (@gcanti) diff --git a/node_modules/fp-ts/Category/package.json b/node_modules/fp-ts/Category/package.json new file mode 100644 index 0000000..e00e4c5 --- /dev/null +++ b/node_modules/fp-ts/Category/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Category.js", + "module": "../es6/Category.js", + "typings": "../lib/Category.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Chain/package.json b/node_modules/fp-ts/Chain/package.json new file mode 100644 index 0000000..54ff759 --- /dev/null +++ b/node_modules/fp-ts/Chain/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Chain.js", + "module": "../es6/Chain.js", + "typings": "../lib/Chain.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ChainRec/package.json b/node_modules/fp-ts/ChainRec/package.json new file mode 100644 index 0000000..2c8730f --- /dev/null +++ b/node_modules/fp-ts/ChainRec/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ChainRec.js", + "module": "../es6/ChainRec.js", + "typings": "../lib/ChainRec.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Choice/package.json b/node_modules/fp-ts/Choice/package.json new file mode 100644 index 0000000..69cb507 --- /dev/null +++ b/node_modules/fp-ts/Choice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Choice.js", + "module": "../es6/Choice.js", + "typings": "../lib/Choice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Comonad/package.json b/node_modules/fp-ts/Comonad/package.json new file mode 100644 index 0000000..91eb077 --- /dev/null +++ b/node_modules/fp-ts/Comonad/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Comonad.js", + "module": "../es6/Comonad.js", + "typings": "../lib/Comonad.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Compactable/package.json b/node_modules/fp-ts/Compactable/package.json new file mode 100644 index 0000000..721a08c --- /dev/null +++ b/node_modules/fp-ts/Compactable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Compactable.js", + "module": "../es6/Compactable.js", + "typings": "../lib/Compactable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Console/package.json b/node_modules/fp-ts/Console/package.json new file mode 100644 index 0000000..02d1fed --- /dev/null +++ b/node_modules/fp-ts/Console/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Console.js", + "module": "../es6/Console.js", + "typings": "../lib/Console.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Const/package.json b/node_modules/fp-ts/Const/package.json new file mode 100644 index 0000000..43da46b --- /dev/null +++ b/node_modules/fp-ts/Const/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Const.js", + "module": "../es6/Const.js", + "typings": "../lib/Const.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Contravariant/package.json b/node_modules/fp-ts/Contravariant/package.json new file mode 100644 index 0000000..8c993c7 --- /dev/null +++ b/node_modules/fp-ts/Contravariant/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Contravariant.js", + "module": "../es6/Contravariant.js", + "typings": "../lib/Contravariant.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Date/package.json b/node_modules/fp-ts/Date/package.json new file mode 100644 index 0000000..9b88de7 --- /dev/null +++ b/node_modules/fp-ts/Date/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Date.js", + "module": "../es6/Date.js", + "typings": "../lib/Date.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/DistributiveLattice/package.json b/node_modules/fp-ts/DistributiveLattice/package.json new file mode 100644 index 0000000..e409aa0 --- /dev/null +++ b/node_modules/fp-ts/DistributiveLattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/DistributiveLattice.js", + "module": "../es6/DistributiveLattice.js", + "typings": "../lib/DistributiveLattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Either/package.json b/node_modules/fp-ts/Either/package.json new file mode 100644 index 0000000..fc9148c --- /dev/null +++ b/node_modules/fp-ts/Either/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Either.js", + "module": "../es6/Either.js", + "typings": "../lib/Either.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/EitherT/package.json b/node_modules/fp-ts/EitherT/package.json new file mode 100644 index 0000000..4135e33 --- /dev/null +++ b/node_modules/fp-ts/EitherT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/EitherT.js", + "module": "../es6/EitherT.js", + "typings": "../lib/EitherT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Endomorphism/package.json b/node_modules/fp-ts/Endomorphism/package.json new file mode 100644 index 0000000..8c3e98e --- /dev/null +++ b/node_modules/fp-ts/Endomorphism/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Endomorphism.js", + "module": "../es6/Endomorphism.js", + "typings": "../lib/Endomorphism.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Eq/package.json b/node_modules/fp-ts/Eq/package.json new file mode 100644 index 0000000..ac1ff9a --- /dev/null +++ b/node_modules/fp-ts/Eq/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Eq.js", + "module": "../es6/Eq.js", + "typings": "../lib/Eq.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Extend/package.json b/node_modules/fp-ts/Extend/package.json new file mode 100644 index 0000000..c3cd2f1 --- /dev/null +++ b/node_modules/fp-ts/Extend/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Extend.js", + "module": "../es6/Extend.js", + "typings": "../lib/Extend.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Field/package.json b/node_modules/fp-ts/Field/package.json new file mode 100644 index 0000000..8033c5e --- /dev/null +++ b/node_modules/fp-ts/Field/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Field.js", + "module": "../es6/Field.js", + "typings": "../lib/Field.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Filterable/package.json b/node_modules/fp-ts/Filterable/package.json new file mode 100644 index 0000000..c41df16 --- /dev/null +++ b/node_modules/fp-ts/Filterable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Filterable.js", + "module": "../es6/Filterable.js", + "typings": "../lib/Filterable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FilterableWithIndex/package.json b/node_modules/fp-ts/FilterableWithIndex/package.json new file mode 100644 index 0000000..02354cb --- /dev/null +++ b/node_modules/fp-ts/FilterableWithIndex/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FilterableWithIndex.js", + "module": "../es6/FilterableWithIndex.js", + "typings": "../lib/FilterableWithIndex.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Foldable/package.json b/node_modules/fp-ts/Foldable/package.json new file mode 100644 index 0000000..56a375c --- /dev/null +++ b/node_modules/fp-ts/Foldable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Foldable.js", + "module": "../es6/Foldable.js", + "typings": "../lib/Foldable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FoldableWithIndex/package.json b/node_modules/fp-ts/FoldableWithIndex/package.json new file mode 100644 index 0000000..2ed4ee7 --- /dev/null +++ b/node_modules/fp-ts/FoldableWithIndex/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FoldableWithIndex.js", + "module": "../es6/FoldableWithIndex.js", + "typings": "../lib/FoldableWithIndex.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FromEither/package.json b/node_modules/fp-ts/FromEither/package.json new file mode 100644 index 0000000..c6a2148 --- /dev/null +++ b/node_modules/fp-ts/FromEither/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FromEither.js", + "module": "../es6/FromEither.js", + "typings": "../lib/FromEither.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FromIO/package.json b/node_modules/fp-ts/FromIO/package.json new file mode 100644 index 0000000..da5110e --- /dev/null +++ b/node_modules/fp-ts/FromIO/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FromIO.js", + "module": "../es6/FromIO.js", + "typings": "../lib/FromIO.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FromReader/package.json b/node_modules/fp-ts/FromReader/package.json new file mode 100644 index 0000000..ba68eb6 --- /dev/null +++ b/node_modules/fp-ts/FromReader/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FromReader.js", + "module": "../es6/FromReader.js", + "typings": "../lib/FromReader.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FromState/package.json b/node_modules/fp-ts/FromState/package.json new file mode 100644 index 0000000..ce29935 --- /dev/null +++ b/node_modules/fp-ts/FromState/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FromState.js", + "module": "../es6/FromState.js", + "typings": "../lib/FromState.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FromTask/package.json b/node_modules/fp-ts/FromTask/package.json new file mode 100644 index 0000000..1c6bebf --- /dev/null +++ b/node_modules/fp-ts/FromTask/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FromTask.js", + "module": "../es6/FromTask.js", + "typings": "../lib/FromTask.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FromThese/package.json b/node_modules/fp-ts/FromThese/package.json new file mode 100644 index 0000000..e1c735a --- /dev/null +++ b/node_modules/fp-ts/FromThese/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FromThese.js", + "module": "../es6/FromThese.js", + "typings": "../lib/FromThese.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Functor/package.json b/node_modules/fp-ts/Functor/package.json new file mode 100644 index 0000000..2890cea --- /dev/null +++ b/node_modules/fp-ts/Functor/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Functor.js", + "module": "../es6/Functor.js", + "typings": "../lib/Functor.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/FunctorWithIndex/package.json b/node_modules/fp-ts/FunctorWithIndex/package.json new file mode 100644 index 0000000..7ec66ce --- /dev/null +++ b/node_modules/fp-ts/FunctorWithIndex/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/FunctorWithIndex.js", + "module": "../es6/FunctorWithIndex.js", + "typings": "../lib/FunctorWithIndex.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Group/package.json b/node_modules/fp-ts/Group/package.json new file mode 100644 index 0000000..05af5c0 --- /dev/null +++ b/node_modules/fp-ts/Group/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Group.js", + "module": "../es6/Group.js", + "typings": "../lib/Group.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/HKT.d.ts b/node_modules/fp-ts/HKT.d.ts new file mode 100644 index 0000000..7b48b50 --- /dev/null +++ b/node_modules/fp-ts/HKT.d.ts @@ -0,0 +1,94 @@ +/** + * Type defunctionalization (as describe in [Lightweight higher-kinded polymorphism](https://www.cl.cam.ac.uk/~jdy22/papers/lightweight-higher-kinded-polymorphism.pdf)) + * + * @since 2.0.0 + */ +/** + * `* -> *` constructors + * @since 2.0.0 + */ +export interface HKT<URI, A> { + readonly _URI: URI + readonly _A: A +} +/** + * `* -> * -> *` constructors + * @since 2.0.0 + */ +export interface HKT2<URI, E, A> extends HKT<URI, A> { + readonly _E: E +} +/** + * `* -> * -> * -> *` constructors + * @since 2.0.0 + */ +export interface HKT3<URI, R, E, A> extends HKT2<URI, E, A> { + readonly _R: R +} +/** + * `* -> * -> * -> * -> *` constructors + * @since 2.0.0 + */ +export interface HKT4<URI, S, R, E, A> extends HKT3<URI, R, E, A> { + readonly _S: S +} +/** + * `* -> *` constructors + * @since 2.0.0 + */ +export interface URItoKind<A> {} +/** + * `* -> * -> *` constructors + * @since 2.0.0 + */ +export interface URItoKind2<E, A> {} +/** + * `* -> * -> * -> *` constructors + * @since 2.0.0 + */ +export interface URItoKind3<R, E, A> {} +/** + * `* -> * -> * -> * -> *` constructors + * @since 2.0.0 + */ +export interface URItoKind4<S, R, E, A> {} +/** + * `* -> *` constructors + * @since 2.0.0 + */ +export type URIS = keyof URItoKind<any> +/** + * `* -> * -> *` constructors + * @since 2.0.0 + */ +export type URIS2 = keyof URItoKind2<any, any> +/** + * `* -> * -> * -> *` constructors + * @since 2.0.0 + */ +export type URIS3 = keyof URItoKind3<any, any, any> +/** + * `* -> * -> * -> * -> *` constructors + * @since 2.0.0 + */ +export type URIS4 = keyof URItoKind4<any, any, any, any> +/** + * `* -> *` constructors + * @since 2.0.0 + */ +export type Kind<URI extends URIS, A> = URI extends URIS ? URItoKind<A>[URI] : any +/** + * `* -> * -> *` constructors + * @since 2.0.0 + */ +export type Kind2<URI extends URIS2, E, A> = URI extends URIS2 ? URItoKind2<E, A>[URI] : any +/** + * `* -> * -> * -> *` constructors + * @since 2.0.0 + */ +export type Kind3<URI extends URIS3, R, E, A> = URI extends URIS3 ? URItoKind3<R, E, A>[URI] : any +/** + * `* -> * -> * -> * -> *` constructors + * @since 2.0.0 + */ +export type Kind4<URI extends URIS4, S, R, E, A> = URI extends URIS4 ? URItoKind4<S, R, E, A>[URI] : any diff --git a/node_modules/fp-ts/HKT/package.json b/node_modules/fp-ts/HKT/package.json new file mode 100644 index 0000000..32bf735 --- /dev/null +++ b/node_modules/fp-ts/HKT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/HKT.js", + "module": "../es6/HKT.js", + "typings": "../HKT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/HeytingAlgebra/package.json b/node_modules/fp-ts/HeytingAlgebra/package.json new file mode 100644 index 0000000..a5a74f3 --- /dev/null +++ b/node_modules/fp-ts/HeytingAlgebra/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/HeytingAlgebra.js", + "module": "../es6/HeytingAlgebra.js", + "typings": "../lib/HeytingAlgebra.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/IO/package.json b/node_modules/fp-ts/IO/package.json new file mode 100644 index 0000000..0fc81b7 --- /dev/null +++ b/node_modules/fp-ts/IO/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/IO.js", + "module": "../es6/IO.js", + "typings": "../lib/IO.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/IOEither/package.json b/node_modules/fp-ts/IOEither/package.json new file mode 100644 index 0000000..8023ebe --- /dev/null +++ b/node_modules/fp-ts/IOEither/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/IOEither.js", + "module": "../es6/IOEither.js", + "typings": "../lib/IOEither.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/IOOption/package.json b/node_modules/fp-ts/IOOption/package.json new file mode 100644 index 0000000..ea74d12 --- /dev/null +++ b/node_modules/fp-ts/IOOption/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/IOOption.js", + "module": "../es6/IOOption.js", + "typings": "../lib/IOOption.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/IORef/package.json b/node_modules/fp-ts/IORef/package.json new file mode 100644 index 0000000..9ab50db --- /dev/null +++ b/node_modules/fp-ts/IORef/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/IORef.js", + "module": "../es6/IORef.js", + "typings": "../lib/IORef.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Identity/package.json b/node_modules/fp-ts/Identity/package.json new file mode 100644 index 0000000..aa7a4f3 --- /dev/null +++ b/node_modules/fp-ts/Identity/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Identity.js", + "module": "../es6/Identity.js", + "typings": "../lib/Identity.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Invariant/package.json b/node_modules/fp-ts/Invariant/package.json new file mode 100644 index 0000000..a9cbf92 --- /dev/null +++ b/node_modules/fp-ts/Invariant/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Invariant.js", + "module": "../es6/Invariant.js", + "typings": "../lib/Invariant.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/JoinSemilattice/package.json b/node_modules/fp-ts/JoinSemilattice/package.json new file mode 100644 index 0000000..aa2eaa4 --- /dev/null +++ b/node_modules/fp-ts/JoinSemilattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/JoinSemilattice.js", + "module": "../es6/JoinSemilattice.js", + "typings": "../lib/JoinSemilattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Json/package.json b/node_modules/fp-ts/Json/package.json new file mode 100644 index 0000000..6f2aae5 --- /dev/null +++ b/node_modules/fp-ts/Json/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Json.js", + "module": "../es6/Json.js", + "typings": "../lib/Json.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/LICENSE b/node_modules/fp-ts/LICENSE new file mode 100644 index 0000000..e58b2fd --- /dev/null +++ b/node_modules/fp-ts/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017-present Giulio Canti + +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. diff --git a/node_modules/fp-ts/Lattice/package.json b/node_modules/fp-ts/Lattice/package.json new file mode 100644 index 0000000..5bae258 --- /dev/null +++ b/node_modules/fp-ts/Lattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Lattice.js", + "module": "../es6/Lattice.js", + "typings": "../lib/Lattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Magma/package.json b/node_modules/fp-ts/Magma/package.json new file mode 100644 index 0000000..7fc89a3 --- /dev/null +++ b/node_modules/fp-ts/Magma/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Magma.js", + "module": "../es6/Magma.js", + "typings": "../lib/Magma.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Map/package.json b/node_modules/fp-ts/Map/package.json new file mode 100644 index 0000000..826c4bc --- /dev/null +++ b/node_modules/fp-ts/Map/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Map.js", + "module": "../es6/Map.js", + "typings": "../lib/Map.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/MeetSemilattice/package.json b/node_modules/fp-ts/MeetSemilattice/package.json new file mode 100644 index 0000000..73d4469 --- /dev/null +++ b/node_modules/fp-ts/MeetSemilattice/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/MeetSemilattice.js", + "module": "../es6/MeetSemilattice.js", + "typings": "../lib/MeetSemilattice.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Monad/package.json b/node_modules/fp-ts/Monad/package.json new file mode 100644 index 0000000..08361ab --- /dev/null +++ b/node_modules/fp-ts/Monad/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Monad.js", + "module": "../es6/Monad.js", + "typings": "../lib/Monad.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/MonadIO/package.json b/node_modules/fp-ts/MonadIO/package.json new file mode 100644 index 0000000..152d9ce --- /dev/null +++ b/node_modules/fp-ts/MonadIO/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/MonadIO.js", + "module": "../es6/MonadIO.js", + "typings": "../lib/MonadIO.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/MonadTask/package.json b/node_modules/fp-ts/MonadTask/package.json new file mode 100644 index 0000000..e450381 --- /dev/null +++ b/node_modules/fp-ts/MonadTask/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/MonadTask.js", + "module": "../es6/MonadTask.js", + "typings": "../lib/MonadTask.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/MonadThrow/package.json b/node_modules/fp-ts/MonadThrow/package.json new file mode 100644 index 0000000..1c6a34a --- /dev/null +++ b/node_modules/fp-ts/MonadThrow/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/MonadThrow.js", + "module": "../es6/MonadThrow.js", + "typings": "../lib/MonadThrow.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Monoid/package.json b/node_modules/fp-ts/Monoid/package.json new file mode 100644 index 0000000..2b98d6d --- /dev/null +++ b/node_modules/fp-ts/Monoid/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Monoid.js", + "module": "../es6/Monoid.js", + "typings": "../lib/Monoid.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/NaturalTransformation/package.json b/node_modules/fp-ts/NaturalTransformation/package.json new file mode 100644 index 0000000..581acd2 --- /dev/null +++ b/node_modules/fp-ts/NaturalTransformation/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/NaturalTransformation.js", + "module": "../es6/NaturalTransformation.js", + "typings": "../lib/NaturalTransformation.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/NonEmptyArray/package.json b/node_modules/fp-ts/NonEmptyArray/package.json new file mode 100644 index 0000000..6a91df6 --- /dev/null +++ b/node_modules/fp-ts/NonEmptyArray/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/NonEmptyArray.js", + "module": "../es6/NonEmptyArray.js", + "typings": "../lib/NonEmptyArray.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Option/package.json b/node_modules/fp-ts/Option/package.json new file mode 100644 index 0000000..57b6f18 --- /dev/null +++ b/node_modules/fp-ts/Option/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Option.js", + "module": "../es6/Option.js", + "typings": "../lib/Option.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/OptionT/package.json b/node_modules/fp-ts/OptionT/package.json new file mode 100644 index 0000000..c26f6c9 --- /dev/null +++ b/node_modules/fp-ts/OptionT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/OptionT.js", + "module": "../es6/OptionT.js", + "typings": "../lib/OptionT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Ord/package.json b/node_modules/fp-ts/Ord/package.json new file mode 100644 index 0000000..e3f3008 --- /dev/null +++ b/node_modules/fp-ts/Ord/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Ord.js", + "module": "../es6/Ord.js", + "typings": "../lib/Ord.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Ordering/package.json b/node_modules/fp-ts/Ordering/package.json new file mode 100644 index 0000000..de60a66 --- /dev/null +++ b/node_modules/fp-ts/Ordering/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Ordering.js", + "module": "../es6/Ordering.js", + "typings": "../lib/Ordering.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Pointed/package.json b/node_modules/fp-ts/Pointed/package.json new file mode 100644 index 0000000..42e873a --- /dev/null +++ b/node_modules/fp-ts/Pointed/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Pointed.js", + "module": "../es6/Pointed.js", + "typings": "../lib/Pointed.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Predicate/package.json b/node_modules/fp-ts/Predicate/package.json new file mode 100644 index 0000000..92f6678 --- /dev/null +++ b/node_modules/fp-ts/Predicate/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Predicate.js", + "module": "../es6/Predicate.js", + "typings": "../lib/Predicate.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Profunctor/package.json b/node_modules/fp-ts/Profunctor/package.json new file mode 100644 index 0000000..5d5a67d --- /dev/null +++ b/node_modules/fp-ts/Profunctor/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Profunctor.js", + "module": "../es6/Profunctor.js", + "typings": "../lib/Profunctor.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/README.md b/node_modules/fp-ts/README.md new file mode 100644 index 0000000..49cf9bd --- /dev/null +++ b/node_modules/fp-ts/README.md @@ -0,0 +1,110 @@ +<h3 align="center"> + <a href="https://gcanti.github.io/fp-ts/"> + <img src="./docs/fp-ts-logo.png"> + </a> +</h3> + +<p align="center"> +Functional programming in TypeScript +</p> + +<p align="center"> + <a href="https://github.com/gcanti/fp-ts/actions"> + <img src="https://github.com/gcanti/fp-ts/actions/workflows/main.yml/badge.svg?branch=master" alt="build status" height="20"> + </a> + <a href="https://www.npmjs.com/package/fp-ts"> + <img src="https://img.shields.io/npm/dm/fp-ts.svg" alt="npm downloads" height="20"> + </a> +</p> + +**📢 Important Announcement: fp-ts is Joining the Effect-TS Ecosystem!** + +We are excited to announce that the `fp-ts` project is officially merging with the Effect-TS ecosystem. This is a significant step forward in the functional programming landscape, bringing together two powerful libraries under one roof. Giulio Canti, the author of `fp-ts`, is being welcomed into the Effect organization, promising an exciting future with enhanced capabilities and support. + +**What This Means for New Users:** + +Effect-TS can be regarded as the successor to `fp-ts v2` and embodies what would be considered `fp-ts v3`. This merger marks a significant evolution in the library's capabilities, integrating more features and functionalities tailored towards robust, type-safe, and scalable functional programming. + +For more details on this merger and what it entails, please refer to the official [announcement here](https://dev.to/effect/a-bright-future-for-effect-455m). Additionally, you can explore more about Effect-TS and its offerings on our [website and documentation](https://effect.website/). + +# Introduction + +`fp-ts` is a library for _typed functional programming_ in TypeScript. + +`fp-ts` aims to allow developers to use _popular patterns and abstractions_ that are available in most functional languages. For this, it includes the most popular data types, type classes and abstractions such as [Option](https://gcanti.github.io/fp-ts/modules/Option.ts), [Either](https://gcanti.github.io/fp-ts/modules/Either.ts), [IO](https://gcanti.github.io/fp-ts/modules/IO.ts), [Task](https://gcanti.github.io/fp-ts/modules/Task.ts), [Functor](https://gcanti.github.io/fp-ts/modules/Functor.ts), [Applicative](https://gcanti.github.io/fp-ts/modules/Applicative.ts), [Monad](https://gcanti.github.io/fp-ts/modules/Monad.ts) to empower users to write pure FP apps and libraries built atop higher order abstractions. + +A distinctive feature of `fp-ts` with respect to other functional libraries is its implementation of [Higher Kinded Types](<https://en.wikipedia.org/wiki/Kind_(type_theory)>), which TypeScript doesn't support natively. + +**Inspired by** + +- [Haskell](https://www.haskell.org) +- [PureScript](https://www.purescript.org) +- [Scala](https://www.scala-lang.org) + +# Sponsors + +<table> + <tr> + <td align="center"> + <a href="https://unsplash.com/"> + <img src="https://avatars.githubusercontent.com/u/9951955?s=200&v=4" width="200px;" alt="Unsplash" /> + </a> + <br /> + <b>Unsplash</b> + <br /> + <a href="https://unsplash.com/">https://unsplash.com/</a> + <br /> + <p width="200px"> + The internet’s source for visuals.<br/> + Powered by creators everywhere. + </td> + </tr> +</table> + +# Installation + +To install the stable version: + +``` +npm install fp-ts +``` + +Make sure to always have a single version of `fp-ts` installed in your project. Multiple versions are known to cause `tsc` to hang during compilation. You can check the versions currently installed using `npm ls fp-ts` (make sure there's a single version and all the others are marked as `deduped`). + +## TypeScript compatibility + +**Strictness** – This library is conceived, tested and is supposed to be consumed by TypeScript with the `strict` flag turned on. + +| `fp-ts` version | required `typescript` version | +| --------------- | ----------------------------- | +| 2.0.x+ | 3.5+ | +| 1.15.x+ | 3.1+ | +| <= 1.14.4 | 2.8+ (\*) | + +(\*) If you are running `< typescript@3.0.1` you have to polyfill the `unknown` type. You can use [unknown-ts](https://github.com/gcanti/unknown-ts) as a polyfill. + +# Documentation + +**Disclaimer**. Teaching functional programming is out of scope of this project, so the documentation assumes you already know what FP is. + +- [Docs](https://gcanti.github.io/fp-ts) +- [Learning Resources](https://gcanti.github.io/fp-ts/learning-resources/) +- [Ecosystem](https://gcanti.github.io/fp-ts/ecosystem/) +- API Reference + - [version 2.x (current)](https://gcanti.github.io/fp-ts/modules/) + - [version 1.x](https://github.com/gcanti/fp-ts/tree/1.x/docs/modules/) + +# Help + +If you need help with `fp-ts` check out: + +- this [Discord server](https://discord.gg/HVWmBBXM8A) +- the `#fp-ts` channel on [FP slack](https://fpslack.com/). + +# Development + +- [Code conventions](https://gcanti.github.io/fp-ts/guides/code-conventions) + +# License + +The MIT License (MIT) diff --git a/node_modules/fp-ts/Random/package.json b/node_modules/fp-ts/Random/package.json new file mode 100644 index 0000000..15a0c3c --- /dev/null +++ b/node_modules/fp-ts/Random/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Random.js", + "module": "../es6/Random.js", + "typings": "../lib/Random.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Reader/package.json b/node_modules/fp-ts/Reader/package.json new file mode 100644 index 0000000..1e090d9 --- /dev/null +++ b/node_modules/fp-ts/Reader/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Reader.js", + "module": "../es6/Reader.js", + "typings": "../lib/Reader.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReaderEither/package.json b/node_modules/fp-ts/ReaderEither/package.json new file mode 100644 index 0000000..a7812ba --- /dev/null +++ b/node_modules/fp-ts/ReaderEither/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReaderEither.js", + "module": "../es6/ReaderEither.js", + "typings": "../lib/ReaderEither.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReaderIO/package.json b/node_modules/fp-ts/ReaderIO/package.json new file mode 100644 index 0000000..d9787e0 --- /dev/null +++ b/node_modules/fp-ts/ReaderIO/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReaderIO.js", + "module": "../es6/ReaderIO.js", + "typings": "../lib/ReaderIO.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReaderT/package.json b/node_modules/fp-ts/ReaderT/package.json new file mode 100644 index 0000000..92b2fdb --- /dev/null +++ b/node_modules/fp-ts/ReaderT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReaderT.js", + "module": "../es6/ReaderT.js", + "typings": "../lib/ReaderT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReaderTask/package.json b/node_modules/fp-ts/ReaderTask/package.json new file mode 100644 index 0000000..fd3722d --- /dev/null +++ b/node_modules/fp-ts/ReaderTask/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReaderTask.js", + "module": "../es6/ReaderTask.js", + "typings": "../lib/ReaderTask.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReaderTaskEither/package.json b/node_modules/fp-ts/ReaderTaskEither/package.json new file mode 100644 index 0000000..6579f60 --- /dev/null +++ b/node_modules/fp-ts/ReaderTaskEither/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReaderTaskEither.js", + "module": "../es6/ReaderTaskEither.js", + "typings": "../lib/ReaderTaskEither.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReadonlyArray/package.json b/node_modules/fp-ts/ReadonlyArray/package.json new file mode 100644 index 0000000..f0cb201 --- /dev/null +++ b/node_modules/fp-ts/ReadonlyArray/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReadonlyArray.js", + "module": "../es6/ReadonlyArray.js", + "typings": "../lib/ReadonlyArray.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReadonlyMap/package.json b/node_modules/fp-ts/ReadonlyMap/package.json new file mode 100644 index 0000000..2643424 --- /dev/null +++ b/node_modules/fp-ts/ReadonlyMap/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReadonlyMap.js", + "module": "../es6/ReadonlyMap.js", + "typings": "../lib/ReadonlyMap.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReadonlyNonEmptyArray/package.json b/node_modules/fp-ts/ReadonlyNonEmptyArray/package.json new file mode 100644 index 0000000..6574709 --- /dev/null +++ b/node_modules/fp-ts/ReadonlyNonEmptyArray/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReadonlyNonEmptyArray.js", + "module": "../es6/ReadonlyNonEmptyArray.js", + "typings": "../lib/ReadonlyNonEmptyArray.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReadonlyRecord/package.json b/node_modules/fp-ts/ReadonlyRecord/package.json new file mode 100644 index 0000000..0b3c11a --- /dev/null +++ b/node_modules/fp-ts/ReadonlyRecord/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReadonlyRecord.js", + "module": "../es6/ReadonlyRecord.js", + "typings": "../lib/ReadonlyRecord.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReadonlySet/package.json b/node_modules/fp-ts/ReadonlySet/package.json new file mode 100644 index 0000000..e97b5da --- /dev/null +++ b/node_modules/fp-ts/ReadonlySet/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReadonlySet.js", + "module": "../es6/ReadonlySet.js", + "typings": "../lib/ReadonlySet.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ReadonlyTuple/package.json b/node_modules/fp-ts/ReadonlyTuple/package.json new file mode 100644 index 0000000..0fe5d84 --- /dev/null +++ b/node_modules/fp-ts/ReadonlyTuple/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ReadonlyTuple.js", + "module": "../es6/ReadonlyTuple.js", + "typings": "../lib/ReadonlyTuple.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Record/package.json b/node_modules/fp-ts/Record/package.json new file mode 100644 index 0000000..85499c3 --- /dev/null +++ b/node_modules/fp-ts/Record/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Record.js", + "module": "../es6/Record.js", + "typings": "../lib/Record.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Refinement/package.json b/node_modules/fp-ts/Refinement/package.json new file mode 100644 index 0000000..32ad98f --- /dev/null +++ b/node_modules/fp-ts/Refinement/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Refinement.js", + "module": "../es6/Refinement.js", + "typings": "../lib/Refinement.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Ring/package.json b/node_modules/fp-ts/Ring/package.json new file mode 100644 index 0000000..8a0c691 --- /dev/null +++ b/node_modules/fp-ts/Ring/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Ring.js", + "module": "../es6/Ring.js", + "typings": "../lib/Ring.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Semigroup/package.json b/node_modules/fp-ts/Semigroup/package.json new file mode 100644 index 0000000..96f5113 --- /dev/null +++ b/node_modules/fp-ts/Semigroup/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Semigroup.js", + "module": "../es6/Semigroup.js", + "typings": "../lib/Semigroup.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Semigroupoid/package.json b/node_modules/fp-ts/Semigroupoid/package.json new file mode 100644 index 0000000..4fa343d --- /dev/null +++ b/node_modules/fp-ts/Semigroupoid/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Semigroupoid.js", + "module": "../es6/Semigroupoid.js", + "typings": "../lib/Semigroupoid.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Semiring/package.json b/node_modules/fp-ts/Semiring/package.json new file mode 100644 index 0000000..1ce885a --- /dev/null +++ b/node_modules/fp-ts/Semiring/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Semiring.js", + "module": "../es6/Semiring.js", + "typings": "../lib/Semiring.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Separated/package.json b/node_modules/fp-ts/Separated/package.json new file mode 100644 index 0000000..f7c7f3f --- /dev/null +++ b/node_modules/fp-ts/Separated/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Separated.js", + "module": "../es6/Separated.js", + "typings": "../lib/Separated.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Set/package.json b/node_modules/fp-ts/Set/package.json new file mode 100644 index 0000000..ac3bf2e --- /dev/null +++ b/node_modules/fp-ts/Set/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Set.js", + "module": "../es6/Set.js", + "typings": "../lib/Set.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Show/package.json b/node_modules/fp-ts/Show/package.json new file mode 100644 index 0000000..99dbea5 --- /dev/null +++ b/node_modules/fp-ts/Show/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Show.js", + "module": "../es6/Show.js", + "typings": "../lib/Show.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/State/package.json b/node_modules/fp-ts/State/package.json new file mode 100644 index 0000000..0bae824 --- /dev/null +++ b/node_modules/fp-ts/State/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/State.js", + "module": "../es6/State.js", + "typings": "../lib/State.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/StateReaderTaskEither/package.json b/node_modules/fp-ts/StateReaderTaskEither/package.json new file mode 100644 index 0000000..82c1a68 --- /dev/null +++ b/node_modules/fp-ts/StateReaderTaskEither/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/StateReaderTaskEither.js", + "module": "../es6/StateReaderTaskEither.js", + "typings": "../lib/StateReaderTaskEither.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/StateT/package.json b/node_modules/fp-ts/StateT/package.json new file mode 100644 index 0000000..433ba51 --- /dev/null +++ b/node_modules/fp-ts/StateT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/StateT.js", + "module": "../es6/StateT.js", + "typings": "../lib/StateT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Store/package.json b/node_modules/fp-ts/Store/package.json new file mode 100644 index 0000000..75cc603 --- /dev/null +++ b/node_modules/fp-ts/Store/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Store.js", + "module": "../es6/Store.js", + "typings": "../lib/Store.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Strong/package.json b/node_modules/fp-ts/Strong/package.json new file mode 100644 index 0000000..424ad28 --- /dev/null +++ b/node_modules/fp-ts/Strong/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Strong.js", + "module": "../es6/Strong.js", + "typings": "../lib/Strong.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Task/package.json b/node_modules/fp-ts/Task/package.json new file mode 100644 index 0000000..8ee57af --- /dev/null +++ b/node_modules/fp-ts/Task/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Task.js", + "module": "../es6/Task.js", + "typings": "../lib/Task.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/TaskEither/package.json b/node_modules/fp-ts/TaskEither/package.json new file mode 100644 index 0000000..339f476 --- /dev/null +++ b/node_modules/fp-ts/TaskEither/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/TaskEither.js", + "module": "../es6/TaskEither.js", + "typings": "../lib/TaskEither.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/TaskOption/package.json b/node_modules/fp-ts/TaskOption/package.json new file mode 100644 index 0000000..bb1e942 --- /dev/null +++ b/node_modules/fp-ts/TaskOption/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/TaskOption.js", + "module": "../es6/TaskOption.js", + "typings": "../lib/TaskOption.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/TaskThese/package.json b/node_modules/fp-ts/TaskThese/package.json new file mode 100644 index 0000000..59a2644 --- /dev/null +++ b/node_modules/fp-ts/TaskThese/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/TaskThese.js", + "module": "../es6/TaskThese.js", + "typings": "../lib/TaskThese.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/These/package.json b/node_modules/fp-ts/These/package.json new file mode 100644 index 0000000..5b4d5a9 --- /dev/null +++ b/node_modules/fp-ts/These/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/These.js", + "module": "../es6/These.js", + "typings": "../lib/These.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/TheseT/package.json b/node_modules/fp-ts/TheseT/package.json new file mode 100644 index 0000000..85893e5 --- /dev/null +++ b/node_modules/fp-ts/TheseT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/TheseT.js", + "module": "../es6/TheseT.js", + "typings": "../lib/TheseT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Traced/package.json b/node_modules/fp-ts/Traced/package.json new file mode 100644 index 0000000..872e7fb --- /dev/null +++ b/node_modules/fp-ts/Traced/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Traced.js", + "module": "../es6/Traced.js", + "typings": "../lib/Traced.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Traversable/package.json b/node_modules/fp-ts/Traversable/package.json new file mode 100644 index 0000000..19b6374 --- /dev/null +++ b/node_modules/fp-ts/Traversable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Traversable.js", + "module": "../es6/Traversable.js", + "typings": "../lib/Traversable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/TraversableWithIndex/package.json b/node_modules/fp-ts/TraversableWithIndex/package.json new file mode 100644 index 0000000..3ebc8e9 --- /dev/null +++ b/node_modules/fp-ts/TraversableWithIndex/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/TraversableWithIndex.js", + "module": "../es6/TraversableWithIndex.js", + "typings": "../lib/TraversableWithIndex.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Tree/package.json b/node_modules/fp-ts/Tree/package.json new file mode 100644 index 0000000..c9722a9 --- /dev/null +++ b/node_modules/fp-ts/Tree/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Tree.js", + "module": "../es6/Tree.js", + "typings": "../lib/Tree.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Tuple/package.json b/node_modules/fp-ts/Tuple/package.json new file mode 100644 index 0000000..f11c5d8 --- /dev/null +++ b/node_modules/fp-ts/Tuple/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Tuple.js", + "module": "../es6/Tuple.js", + "typings": "../lib/Tuple.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Unfoldable/package.json b/node_modules/fp-ts/Unfoldable/package.json new file mode 100644 index 0000000..d991a26 --- /dev/null +++ b/node_modules/fp-ts/Unfoldable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Unfoldable.js", + "module": "../es6/Unfoldable.js", + "typings": "../lib/Unfoldable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/ValidationT/package.json b/node_modules/fp-ts/ValidationT/package.json new file mode 100644 index 0000000..4261bef --- /dev/null +++ b/node_modules/fp-ts/ValidationT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/ValidationT.js", + "module": "../es6/ValidationT.js", + "typings": "../lib/ValidationT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Witherable/package.json b/node_modules/fp-ts/Witherable/package.json new file mode 100644 index 0000000..f49d7eb --- /dev/null +++ b/node_modules/fp-ts/Witherable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Witherable.js", + "module": "../es6/Witherable.js", + "typings": "../lib/Witherable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Writer/package.json b/node_modules/fp-ts/Writer/package.json new file mode 100644 index 0000000..2e94b7c --- /dev/null +++ b/node_modules/fp-ts/Writer/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Writer.js", + "module": "../es6/Writer.js", + "typings": "../lib/Writer.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/WriterT/package.json b/node_modules/fp-ts/WriterT/package.json new file mode 100644 index 0000000..b6acc71 --- /dev/null +++ b/node_modules/fp-ts/WriterT/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/WriterT.js", + "module": "../es6/WriterT.js", + "typings": "../lib/WriterT.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/Zero/package.json b/node_modules/fp-ts/Zero/package.json new file mode 100644 index 0000000..57e11bc --- /dev/null +++ b/node_modules/fp-ts/Zero/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/Zero.js", + "module": "../es6/Zero.js", + "typings": "../lib/Zero.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/boolean/package.json b/node_modules/fp-ts/boolean/package.json new file mode 100644 index 0000000..fcd7492 --- /dev/null +++ b/node_modules/fp-ts/boolean/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/boolean.js", + "module": "../es6/boolean.js", + "typings": "../lib/boolean.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/es6/Alt.d.ts b/node_modules/fp-ts/es6/Alt.d.ts new file mode 100644 index 0000000..6481ffd --- /dev/null +++ b/node_modules/fp-ts/es6/Alt.d.ts @@ -0,0 +1,86 @@ +/** + * The `Alt` type class identifies an associative operation on a type constructor. It is similar to `Semigroup`, except + * that it applies to types of kind `* -> *`, like `Array` or `Option`, rather than concrete types like `string` or + * `number`. + * + * `Alt` instances are required to satisfy the following laws: + * + * 1. Associativity: `A.alt(A.alt(fa, ga), ha) <-> A.alt(fa, A.alt(ga, ha))` + * 2. Distributivity: `A.map(A.alt(fa, ga), ab) <-> A.alt(A.map(fa, ab), A.map(ga, ab))` + * + * @since 2.0.0 + */ +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Alt<F> extends Functor<F> { + readonly alt: <A>(fa: HKT<F, A>, that: LazyArg<HKT<F, A>>) => HKT<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt1<F extends URIS> extends Functor1<F> { + readonly alt: <A>(fa: Kind<F, A>, that: LazyArg<Kind<F, A>>) => Kind<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt2<F extends URIS2> extends Functor2<F> { + readonly alt: <E, A>(fa: Kind2<F, E, A>, that: LazyArg<Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt2C<F extends URIS2, E> extends Functor2C<F, E> { + readonly alt: <A>(fa: Kind2<F, E, A>, that: LazyArg<Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt3<F extends URIS3> extends Functor3<F> { + readonly alt: <R, E, A>(fa: Kind3<F, R, E, A>, that: LazyArg<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Alt3C<F extends URIS3, E> extends Functor3C<F, E> { + readonly alt: <R, A>(fa: Kind3<F, R, E, A>, that: LazyArg<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt4<F extends URIS4> extends Functor4<F> { + readonly alt: <S, R, E, A>(fa: Kind4<F, S, R, E, A>, that: LazyArg<Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export declare function altAll<F extends URIS4>( + F: Alt4<F> +): <S, R, E, A>(startWith: Kind4<F, S, R, E, A>) => (as: ReadonlyArray<Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +export declare function altAll<F extends URIS3>( + F: Alt3<F> +): <R, E, A>(startWith: Kind3<F, R, E, A>) => (as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS3, E>( + F: Alt3C<F, E> +): <R, A>(startWith: Kind3<F, R, E, A>) => (as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS2>( + F: Alt2<F> +): <E, A>(startWith: Kind2<F, E, A>) => (as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS2, E>( + F: Alt2C<F, E> +): <A>(startWith: Kind2<F, E, A>) => (as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS>( + F: Alt1<F> +): <A>(startWith: Kind<F, A>) => (as: ReadonlyArray<Kind<F, A>>) => Kind<F, A> +export declare function altAll<F>(F: Alt<F>): <A>(startWith: HKT<F, A>) => (as: ReadonlyArray<HKT<F, A>>) => HKT<F, A> diff --git a/node_modules/fp-ts/es6/Alt.js b/node_modules/fp-ts/es6/Alt.js new file mode 100644 index 0000000..a7a118b --- /dev/null +++ b/node_modules/fp-ts/es6/Alt.js @@ -0,0 +1,3 @@ +export function altAll(F) { + return function (startWith) { return function (as) { return as.reduce(function (acc, a) { return F.alt(acc, function () { return a; }); }, startWith); }; }; +} diff --git a/node_modules/fp-ts/es6/Alternative.d.ts b/node_modules/fp-ts/es6/Alternative.d.ts new file mode 100644 index 0000000..3c00b79 --- /dev/null +++ b/node_modules/fp-ts/es6/Alternative.d.ts @@ -0,0 +1,108 @@ +/** + * The `Alternative` type class extends the `Alt` type class with a value that should be the left and right identity for `alt`. + * + * It is similar to `Monoid`, except that it applies to types of kind `* -> *`, like `Array` or `Option`, rather than + * concrete types like `string` or `number`. + * + * `Alternative` instances should satisfy the following laws: + * + * 1. Left identity: `A.alt(zero, fa) <-> fa` + * 2. Right identity: `A.alt(fa, zero) <-> fa` + * 3. Annihilation: `A.map(zero, f) <-> zero` + * 4. Distributivity: `A.ap(A.alt(fab, gab), fa) <-> A.alt(A.ap(fab, fa), A.ap(gab, fa))` + * 5. Annihilation: `A.ap(zero, fa) <-> zero` + * + * @since 2.0.0 + */ +import { Alt, Alt1, Alt2, Alt2C, Alt3, Alt3C, Alt4 } from './Alt' +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +import { Zero, Zero1, Zero2, Zero2C, Zero3, Zero3C, Zero4 } from './Zero' +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative<F> extends Applicative<F>, Alt<F>, Zero<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative1<F extends URIS> extends Applicative1<F>, Alt1<F>, Zero1<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative2<F extends URIS2> extends Applicative2<F>, Alt2<F>, Zero2<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative2C<F extends URIS2, E> extends Applicative2C<F, E>, Alt2C<F, E>, Zero2C<F, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative3<F extends URIS3> extends Applicative3<F>, Alt3<F>, Zero3<F> {} +/** + * @category model + * @since 2.10.0 + */ +export interface Alternative3C<F extends URIS3, E> extends Applicative3C<F, E>, Alt3C<F, E>, Zero3C<F, E> {} +/** + * @category model + * @since 2.10.0 + */ +export interface Alternative4<F extends URIS4> extends Applicative4<F>, Alt4<F>, Zero4<F> {} +/** + * @since 2.11.0 + */ +export declare function altAll<F extends URIS4>( + F: Alternative4<F> +): <S, R, E, A>(as: ReadonlyArray<Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +export declare function altAll<F extends URIS3>( + F: Alternative3<F> +): <R, E, A>(as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS3, E>( + F: Alternative3C<F, E> +): <R, A>(as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS2>( + F: Alternative2<F> +): <E, A>(as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS2, E>( + F: Alternative2C<F, E> +): <A>(as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS>(F: Alternative1<F>): <A>(as: ReadonlyArray<Kind<F, A>>) => Kind<F, A> +export declare function altAll<F>(F: Alternative<F>): <A>(as: ReadonlyArray<HKT<F, A>>) => HKT<F, A> +/** + * Lift a semigroup into a monoid alternative 'F', the inner values are concatenated using the provided `Semigroup`. + * @since 2.13.0 + */ +export declare function getAlternativeMonoid<F extends URIS4>( + F: Alternative4<F> +): <A, S, R, E>(S: Semigroup<A>) => Monoid<Kind4<F, S, R, E, A>> +export declare function getAlternativeMonoid<F extends URIS3>( + F: Alternative3<F> +): <A, R, E>(S: Semigroup<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getAlternativeMonoid<F extends URIS3, E>( + F: Alternative3C<F, E> +): <A, R>(S: Semigroup<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getAlternativeMonoid<F extends URIS2>( + F: Alternative2<F> +): <A, E>(S: Semigroup<A>) => Monoid<Kind2<F, E, A>> +export declare function getAlternativeMonoid<F extends URIS2, E>( + F: Alternative2C<F, E> +): <A>(S: Semigroup<A>) => Monoid<Kind2<F, E, A>> +export declare function getAlternativeMonoid<F extends URIS>( + F: Alternative1<F> +): <A>(S: Semigroup<A>) => Monoid<Kind<F, A>> +export declare function getAlternativeMonoid<F>(F: Alternative<F>): <A>(S: Semigroup<A>) => Monoid<HKT<F, A>> diff --git a/node_modules/fp-ts/es6/Alternative.js b/node_modules/fp-ts/es6/Alternative.js new file mode 100644 index 0000000..2e05fcf --- /dev/null +++ b/node_modules/fp-ts/es6/Alternative.js @@ -0,0 +1,33 @@ +/** + * The `Alternative` type class extends the `Alt` type class with a value that should be the left and right identity for `alt`. + * + * It is similar to `Monoid`, except that it applies to types of kind `* -> *`, like `Array` or `Option`, rather than + * concrete types like `string` or `number`. + * + * `Alternative` instances should satisfy the following laws: + * + * 1. Left identity: `A.alt(zero, fa) <-> fa` + * 2. Right identity: `A.alt(fa, zero) <-> fa` + * 3. Annihilation: `A.map(zero, f) <-> zero` + * 4. Distributivity: `A.ap(A.alt(fab, gab), fa) <-> A.alt(A.ap(fab, fa), A.ap(gab, fa))` + * 5. Annihilation: `A.ap(zero, fa) <-> zero` + * + * @since 2.0.0 + */ +import { altAll as altAll_ } from './Alt'; +import { getApplySemigroup } from './Apply'; +export function altAll(F) { + return altAll_(F)(F.zero()); +} +export function getAlternativeMonoid(F) { + var f = getApplySemigroup(F); + return function (S) { + var SF = f(S); + return { + concat: function (first, second) { + return F.alt(SF.concat(first, second), function () { return F.alt(first, function () { return second; }); }); + }, + empty: F.zero() + }; + }; +} diff --git a/node_modules/fp-ts/es6/Applicative.d.ts b/node_modules/fp-ts/es6/Applicative.d.ts new file mode 100644 index 0000000..280e28d --- /dev/null +++ b/node_modules/fp-ts/es6/Applicative.d.ts @@ -0,0 +1,267 @@ +/** + * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values + * of type `f a` from values of type `a`. + * + * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are + * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the + * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for + * any number of function arguments. + * + * Instances must satisfy the following laws in addition to the `Apply` laws: + * + * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa` + * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))` + * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)` + * + * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)` + * + * @since 2.0.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { + FunctorComposition, + FunctorComposition2C1, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition22C, + FunctorCompositionHKT1, + FunctorCompositionHKT2, + FunctorCompositionHKT2C +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monoid } from './Monoid' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative<F> extends Apply<F>, Pointed<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative1<F extends URIS> extends Apply1<F>, Pointed1<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative2<F extends URIS2> extends Apply2<F>, Pointed2<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative2C<F extends URIS2, E> extends Apply2C<F, E>, Pointed2C<F, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative3<F extends URIS3> extends Apply3<F>, Pointed3<F> {} +/** + * @category model + * @since 2.2.0 + */ +export interface Applicative3C<F extends URIS3, E> extends Apply3C<F, E>, Pointed3C<F, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative4<F extends URIS4> extends Apply4<F>, Pointed4<F> {} +/** + * Lift a monoid into 'F', the inner values are concatenated using the provided `Monoid`. + * + * @since 2.10.0 + */ +export declare function getApplicativeMonoid<F extends URIS4>( + F: Applicative4<F> +): <A, S, R, E>(M: Monoid<A>) => Monoid<Kind4<F, S, R, E, A>> +export declare function getApplicativeMonoid<F extends URIS3>( + F: Applicative3<F> +): <A, R, E>(M: Monoid<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getApplicativeMonoid<F extends URIS3, E>( + F: Applicative3C<F, E> +): <A, R>(M: Monoid<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getApplicativeMonoid<F extends URIS2>( + F: Applicative2<F> +): <A, E>(M: Monoid<A>) => Monoid<Kind2<F, E, A>> +export declare function getApplicativeMonoid<F extends URIS2, E>( + F: Applicative2C<F, E> +): <A>(M: Monoid<A>) => Monoid<Kind2<F, E, A>> +export declare function getApplicativeMonoid<F extends URIS>( + F: Applicative1<F> +): <A>(M: Monoid<A>) => Monoid<Kind<F, A>> +export declare function getApplicativeMonoid<F>(F: Applicative<F>): <A>(M: Monoid<A>) => Monoid<HKT<F, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition<F, G> extends FunctorComposition<F, G> { + readonly of: <A>(a: A) => HKT<F, HKT<G, A>> + readonly ap: <A, B>(fgab: HKT<F, HKT<G, (a: A) => B>>, fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeCompositionHKT1<F, G extends URIS> extends FunctorCompositionHKT1<F, G> { + readonly of: <A>(a: A) => HKT<F, Kind<G, A>> + readonly ap: <A, B>(fgab: HKT<F, Kind<G, (a: A) => B>>, fga: HKT<F, Kind<G, A>>) => HKT<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeCompositionHKT2<F, G extends URIS2> extends FunctorCompositionHKT2<F, G> { + readonly of: <E, A>(a: A) => HKT<F, Kind2<G, E, A>> + readonly ap: <E, A, B>(fgab: HKT<F, Kind2<G, E, (a: A) => B>>, fga: HKT<F, Kind2<G, E, A>>) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeCompositionHKT2C<F, G extends URIS2, E> extends FunctorCompositionHKT2C<F, G, E> { + readonly of: <A>(a: A) => HKT<F, Kind2<G, E, A>> + readonly ap: <A, B>(fgab: HKT<F, Kind2<G, E, (a: A) => B>>, fga: HKT<F, Kind2<G, E, A>>) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition11<F extends URIS, G extends URIS> extends FunctorComposition11<F, G> { + readonly of: <A>(a: A) => Kind<F, Kind<G, A>> + readonly ap: <A, B>(fgab: Kind<F, Kind<G, (a: A) => B>>, fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition12<F extends URIS, G extends URIS2> extends FunctorComposition12<F, G> { + readonly of: <E, A>(a: A) => Kind<F, Kind2<G, E, A>> + readonly ap: <E, A, B>( + fgab: Kind<F, Kind2<G, E, (a: A) => B>>, + fga: Kind<F, Kind2<G, E, A>> + ) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition12C<F extends URIS, G extends URIS2, E> extends FunctorComposition12C<F, G, E> { + readonly of: <A>(a: A) => Kind<F, Kind2<G, E, A>> + readonly ap: <A, B>(fgab: Kind<F, Kind2<G, E, (a: A) => B>>, fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition21<F extends URIS2, G extends URIS> extends FunctorComposition21<F, G> { + readonly of: <E, A>(a: A) => Kind2<F, E, Kind<G, A>> + readonly ap: <E, A, B>( + fgab: Kind2<F, E, Kind<G, (a: A) => B>>, + fga: Kind2<F, E, Kind<G, A>> + ) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition2C1<F extends URIS2, G extends URIS, E> extends FunctorComposition2C1<F, G, E> { + readonly of: <A>(a: A) => Kind2<F, E, Kind<G, A>> + readonly ap: <A, B>(fgab: Kind2<F, E, Kind<G, (a: A) => B>>, fga: Kind2<F, E, Kind<G, A>>) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition22<F extends URIS2, G extends URIS2> extends FunctorComposition22<F, G> { + readonly of: <FE, GE, A>(a: A) => Kind2<F, FE, Kind2<G, GE, A>> + readonly ap: <FE, GE, A, B>( + fgab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>, + fga: Kind2<F, FE, Kind2<G, GE, A>> + ) => Kind2<F, FE, Kind2<G, GE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition22C<F extends URIS2, G extends URIS2, E> extends FunctorComposition22C<F, G, E> { + readonly of: <FE, A>(a: A) => Kind2<F, FE, Kind2<G, E, A>> + readonly ap: <FE, A, B>( + fgab: Kind2<F, FE, Kind2<G, E, (a: A) => B>>, + fga: Kind2<F, FE, Kind2<G, E, A>> + ) => Kind2<F, FE, Kind2<G, E, B>> +} +/** + * Use [`ap`](./Apply.ts.html#ap) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS2, E>( + F: Applicative2<F>, + G: Applicative2C<G, E> +): ApplicativeComposition22C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS2>( + F: Applicative2<F>, + G: Applicative2<G> +): ApplicativeComposition22<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS2, E>( + F: Applicative2<F>, + G: Applicative2C<G, E> +): ApplicativeComposition22C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS>( + F: Applicative2<F>, + G: Applicative1<G> +): ApplicativeComposition21<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS, G extends URIS2>( + F: Applicative1<F>, + G: Applicative2<G> +): ApplicativeComposition12<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS, G extends URIS2, E>( + F: Applicative1<F>, + G: Applicative2C<G, E> +): ApplicativeComposition12C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS, G extends URIS>( + F: Applicative1<F>, + G: Applicative1<G> +): ApplicativeComposition11<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F, G extends URIS2>( + F: Applicative<F>, + G: Applicative2<G> +): ApplicativeCompositionHKT2<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F, G extends URIS2, E>( + F: Applicative<F>, + G: Applicative2C<G, E> +): ApplicativeCompositionHKT2C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F, G extends URIS>( + F: Applicative<F>, + G: Applicative1<G> +): ApplicativeCompositionHKT1<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F, G>( + F: Applicative<F>, + G: Applicative<G> +): ApplicativeComposition<F, G> diff --git a/node_modules/fp-ts/es6/Applicative.js b/node_modules/fp-ts/es6/Applicative.js new file mode 100644 index 0000000..e8121ed --- /dev/null +++ b/node_modules/fp-ts/es6/Applicative.js @@ -0,0 +1,39 @@ +/** + * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values + * of type `f a` from values of type `a`. + * + * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are + * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the + * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for + * any number of function arguments. + * + * Instances must satisfy the following laws in addition to the `Apply` laws: + * + * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa` + * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))` + * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)` + * + * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)` + * + * @since 2.0.0 + */ +import { ap, getApplySemigroup } from './Apply'; +import { pipe } from './function'; +import { getFunctorComposition } from './Functor'; +export function getApplicativeMonoid(F) { + var f = getApplySemigroup(F); + return function (M) { return ({ + concat: f(M).concat, + empty: F.of(M.empty) + }); }; +} +/** @deprecated */ +export function getApplicativeComposition(F, G) { + var map = getFunctorComposition(F, G).map; + var _ap = ap(F, G); + return { + map: map, + of: function (a) { return F.of(G.of(a)); }, + ap: function (fgab, fga) { return pipe(fgab, _ap(fga)); } + }; +} diff --git a/node_modules/fp-ts/es6/Apply.d.ts b/node_modules/fp-ts/es6/Apply.d.ts new file mode 100644 index 0000000..8d5e26b --- /dev/null +++ b/node_modules/fp-ts/es6/Apply.d.ts @@ -0,0 +1,658 @@ +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Apply<F> extends Functor<F> { + readonly ap: <A, B>(fab: HKT<F, (a: A) => B>, fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply1<F extends URIS> extends Functor1<F> { + readonly ap: <A, B>(fab: Kind<F, (a: A) => B>, fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply2<F extends URIS2> extends Functor2<F> { + readonly ap: <E, A, B>(fab: Kind2<F, E, (a: A) => B>, fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply2C<F extends URIS2, E> extends Functor2C<F, E> { + readonly ap: <A, B>(fab: Kind2<F, E, (a: A) => B>, fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply3<F extends URIS3> extends Functor3<F> { + readonly ap: <R, E, A, B>(fab: Kind3<F, R, E, (a: A) => B>, fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Apply3C<F extends URIS3, E> extends Functor3C<F, E> { + readonly ap: <R, A, B>(fab: Kind3<F, R, E, (a: A) => B>, fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply4<F extends URIS4> extends Functor4<F> { + readonly ap: <S, R, E, A, B>(fab: Kind4<F, S, R, E, (a: A) => B>, fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * `ap` composition. + * + * @since 2.10.0 + */ +export declare function ap<F extends URIS4, G extends URIS4>( + F: Apply4<F>, + G: Apply4<G> +): <FS, FR, FE, GS, GR, GE, A>( + fa: Kind4<F, FS, FR, FE, Kind4<G, GS, GR, GE, A>> +) => <B>(fab: Kind4<F, FS, FR, FE, Kind4<G, GS, GR, GE, (a: A) => B>>) => Kind4<F, FS, FR, FE, Kind4<G, GS, GR, GE, B>> +export declare function ap<F extends URIS4, G extends URIS3>( + F: Apply4<F>, + G: Apply3<G> +): <S, FR, FE, GR, GE, A>( + fa: Kind4<F, S, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind4<F, S, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind4<F, S, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS4, G extends URIS3, GE>( + F: Apply4<F>, + G: Apply3C<G, GE> +): <S, FR, FE, GR, A>( + fa: Kind4<F, S, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind4<F, S, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind4<F, S, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS4, G extends URIS2>( + F: Apply4<F>, + G: Apply2<G> +): <S, R, FE, GE, A>( + fa: Kind4<F, S, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind4<F, S, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind4<F, S, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS4, G extends URIS2, GE>( + F: Apply4<F>, + G: Apply2C<G, GE> +): <S, R, FE, A>( + fa: Kind4<F, S, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind4<F, S, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind4<F, S, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS4, G extends URIS>( + F: Apply4<F>, + G: Apply1<G> +): <S, R, E, A>( + fa: Kind4<F, S, R, E, Kind<G, A>> +) => <B>(fab: Kind4<F, S, R, E, Kind<G, (a: A) => B>>) => Kind4<F, S, R, E, Kind<G, B>> +export declare function ap<F extends URIS3, FE, G extends URIS4>( + F: Apply3C<F, FE>, + G: Apply4<G> +): <FR, S, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind4<G, S, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind4<G, S, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind4<G, S, GR, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS3>( + F: Apply3C<F, FE>, + G: Apply3<G> +): <FR, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS3, GE>( + F: Apply3C<F, FE>, + G: Apply3C<G, GE> +): <FR, GR, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS2>( + F: Apply3C<F, FE>, + G: Apply2<G> +): <R, GE, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS2, GE>( + F: Apply3C<F, FE>, + G: Apply2C<G, GE> +): <R, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, E, G extends URIS>( + F: Apply3C<F, E>, + G: Apply1<G> +): <R, A>( + fa: Kind3<F, R, E, Kind<G, A>> +) => <B>(fab: Kind3<F, R, E, Kind<G, (a: A) => B>>) => Kind3<F, R, E, Kind<G, B>> +export declare function ap<F extends URIS3, G extends URIS4>( + F: Apply3<F>, + G: Apply4<G> +): <FR, FE, S, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind4<G, S, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind4<G, S, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind4<G, S, GR, GE, B>> +export declare function ap<F extends URIS3, G extends URIS3>( + F: Apply3<F>, + G: Apply3<G> +): <FR, FE, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, G extends URIS3, GE>( + F: Apply3<F>, + G: Apply3C<G, GE> +): <FR, FE, GR, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, G extends URIS2>( + F: Apply3<F>, + G: Apply2<G> +): <R, FE, GE, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, G extends URIS2, GE>( + F: Apply3<F>, + G: Apply2C<G, GE> +): <R, FE, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, G extends URIS>( + F: Apply3<F>, + G: Apply1<G> +): <R, E, A>( + fa: Kind3<F, R, E, Kind<G, A>> +) => <B>(fab: Kind3<F, R, E, Kind<G, (a: A) => B>>) => Kind3<F, R, E, Kind<G, B>> +export declare function ap<F extends URIS2, FE, G extends URIS4>( + F: Apply2C<F, FE>, + G: Apply4<G> +): <S, R, GE, A>( + fa: Kind2<F, FE, Kind4<G, S, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind4<G, S, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind4<G, S, R, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS3>( + F: Apply2C<F, FE>, + G: Apply3<G> +): <R, GE, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS3, GE>( + F: Apply2C<F, FE>, + G: Apply3C<G, GE> +): <R, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS2>( + F: Apply2C<F, FE>, + G: Apply2<G> +): <GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS2, GE>( + F: Apply2C<F, FE>, + G: Apply2C<G, GE> +): <A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, E, G extends URIS>( + F: Apply2C<F, E>, + G: Apply1<G> +): <A>(fa: Kind2<F, E, Kind<G, A>>) => <B>(fab: Kind2<F, E, Kind<G, (a: A) => B>>) => Kind2<F, E, Kind<G, B>> +export declare function ap<F extends URIS2, G extends URIS4>( + F: Apply2<F>, + G: Apply4<G> +): <FE, S, R, GE, A>( + fa: Kind2<F, FE, Kind4<G, S, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind4<G, S, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind4<G, S, R, GE, B>> +export declare function ap<F extends URIS2, G extends URIS3>( + F: Apply2<F>, + G: Apply3<G> +): <FE, R, GE, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, G extends URIS3, GE>( + F: Apply2<F>, + G: Apply3C<G, GE> +): <FE, R, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, G extends URIS2>( + F: Apply2<F>, + G: Apply2<G> +): <FE, GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, G extends URIS2, GE>( + F: Apply2<F>, + G: Apply2C<G, GE> +): <FE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, G extends URIS>( + F: Apply2<F>, + G: Apply1<G> +): <E, A>(fa: Kind2<F, E, Kind<G, A>>) => <B>(fab: Kind2<F, E, Kind<G, (a: A) => B>>) => Kind2<F, E, Kind<G, B>> +export declare function ap<F extends URIS, G extends URIS4>( + F: Apply1<F>, + G: Apply4<G> +): <S, R, E, A>( + fa: Kind<F, Kind4<G, S, R, E, A>> +) => <B>(fab: Kind<F, Kind4<G, S, R, E, (a: A) => B>>) => Kind<F, Kind4<G, S, R, E, B>> +export declare function ap<F extends URIS, G extends URIS3>( + F: Apply1<F>, + G: Apply3<G> +): <R, E, A>( + fa: Kind<F, Kind3<G, R, E, A>> +) => <B>(fab: Kind<F, Kind3<G, R, E, (a: A) => B>>) => Kind<F, Kind3<G, R, E, B>> +export declare function ap<F extends URIS, G extends URIS3, E>( + F: Apply1<F>, + G: Apply3C<G, E> +): <R, A>( + fa: Kind<F, Kind3<G, R, E, A>> +) => <B>(fab: Kind<F, Kind3<G, R, E, (a: A) => B>>) => Kind<F, Kind3<G, R, E, B>> +export declare function ap<F extends URIS, G extends URIS2>( + F: Apply1<F>, + G: Apply2<G> +): <E, A>(fa: Kind<F, Kind2<G, E, A>>) => <B>(fab: Kind<F, Kind2<G, E, (a: A) => B>>) => Kind<F, Kind2<G, E, B>> +export declare function ap<F extends URIS, G extends URIS2, E>( + F: Apply1<F>, + G: Apply2C<G, E> +): <A>(fa: Kind<F, Kind2<G, E, A>>) => <B>(fab: Kind<F, Kind2<G, E, (a: A) => B>>) => Kind<F, Kind2<G, E, B>> +export declare function ap<F extends URIS, G extends URIS>( + F: Apply1<F>, + G: Apply1<G> +): <A>(fa: Kind<F, Kind<G, A>>) => <B>(fab: Kind<F, Kind<G, (a: A) => B>>) => Kind<F, Kind<G, B>> +export declare function ap<F, G extends URIS4>( + F: Apply<F>, + G: Apply4<G> +): <S, R, E, A>( + fa: HKT<F, Kind4<G, S, R, E, A>> +) => <B>(fab: HKT<F, Kind4<G, S, R, E, (a: A) => B>>) => HKT<F, Kind4<G, S, R, E, B>> +export declare function ap<F, G extends URIS3>( + F: Apply<F>, + G: Apply3<G> +): <R, E, A>( + fa: HKT<F, Kind3<G, R, E, A>> +) => <B>(fab: HKT<F, Kind3<G, R, E, (a: A) => B>>) => HKT<F, Kind3<G, R, E, B>> +export declare function ap<F, G extends URIS3, E>( + F: Apply<F>, + G: Apply3C<G, E> +): <R, A>(fa: HKT<F, Kind3<G, R, E, A>>) => <B>(fab: HKT<F, Kind3<G, R, E, (a: A) => B>>) => HKT<F, Kind3<G, R, E, B>> +export declare function ap<F, G extends URIS2>( + F: Apply<F>, + G: Apply2<G> +): <E, A>(fa: HKT<F, Kind2<G, E, A>>) => <B>(fab: HKT<F, Kind2<G, E, (a: A) => B>>) => HKT<F, Kind2<G, E, B>> +export declare function ap<F, G extends URIS2, E>( + F: Apply<F>, + G: Apply2C<G, E> +): <A>(fa: HKT<F, Kind2<G, E, A>>) => <B>(fab: HKT<F, Kind2<G, E, (a: A) => B>>) => HKT<F, Kind2<G, E, B>> +export declare function ap<F, G extends URIS>( + F: Apply<F>, + G: Apply1<G> +): <A>(fa: HKT<F, Kind<G, A>>) => <B>(fab: HKT<F, Kind<G, (a: A) => B>>) => HKT<F, Kind<G, B>> +export declare function ap<F, G>( + F: Apply<F>, + G: Apply<G> +): <A>(fa: HKT<F, HKT<G, A>>) => <B>(fab: HKT<F, HKT<G, (a: A) => B>>) => HKT<F, HKT<G, B>> +/** + * @since 2.10.0 + */ +export declare function apFirst<F extends URIS4>( + A: Apply4<F> +): <S, R, E, B>(second: Kind4<F, S, R, E, B>) => <A>(first: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +export declare function apFirst<F extends URIS3>( + A: Apply3<F> +): <R, E, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function apFirst<F extends URIS3, E>( + A: Apply3C<F, E> +): <R, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function apFirst<F extends URIS2>( + A: Apply2<F> +): <E, B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function apFirst<F extends URIS2, E>( + A: Apply2C<F, E> +): <B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function apFirst<F extends URIS>( + A: Apply1<F> +): <B>(second: Kind<F, B>) => <A>(first: Kind<F, A>) => Kind<F, A> +export declare function apFirst<F>(A: Apply<F>): <B>(second: HKT<F, B>) => <A>(first: HKT<F, A>) => HKT<F, A> +/** + * @since 2.10.0 + */ +export declare function apSecond<F extends URIS4>( + A: Apply4<F> +): <S, R, E, B>(second: Kind4<F, S, R, E, B>) => <A>(first: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function apSecond<F extends URIS3>( + A: Apply3<F> +): <R, E, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function apSecond<F extends URIS3, E>( + A: Apply3C<F, E> +): <R, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function apSecond<F extends URIS2>( + A: Apply2<F> +): <E, B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function apSecond<F extends URIS2, E>( + A: Apply2C<F, E> +): <B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function apSecond<F extends URIS>( + A: Apply1<F> +): <B>(second: Kind<F, B>) => <A>(first: Kind<F, A>) => Kind<F, B> +export declare function apSecond<F>(A: Apply<F>): <B>(second: HKT<F, B>) => <A>(first: HKT<F, A>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function apS<F extends URIS4>( + F: Apply4<F> +): <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + fb: Kind4<F, S, R, E, B> +) => (fa: Kind4<F, S, R, E, A>) => Kind4< + F, + S, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS3>( + F: Apply3<F> +): <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + fb: Kind3<F, R, E, B> +) => (fa: Kind3<F, R, E, A>) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS3, E>( + F: Apply3C<F, E> +): <N extends string, A, R, B>( + name: Exclude<N, keyof A>, + fb: Kind3<F, R, E, B> +) => (fa: Kind3<F, R, E, A>) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS2>( + F: Apply2<F> +): <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: Kind2<F, E, B> +) => (fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS2, E>( + F: Apply2C<F, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Kind2<F, E, B> +) => (fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS>( + F: Apply1<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Kind<F, B> +) => (fa: Kind<F, A>) => Kind< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F>(F: Apply<F>): <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: HKT<F, B> +) => (fa: HKT<F, A>) => HKT< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * Lift a semigroup into 'F', the inner values are concatenated using the provided `Semigroup`. + * + * @since 2.10.0 + */ +export declare function getApplySemigroup<F extends URIS4>( + F: Apply4<F> +): <A, S, R, E>(S: Semigroup<A>) => Semigroup<Kind4<F, S, R, E, A>> +export declare function getApplySemigroup<F extends URIS3>( + F: Apply3<F> +): <A, R, E>(S: Semigroup<A>) => Semigroup<Kind3<F, R, E, A>> +export declare function getApplySemigroup<F extends URIS3, E>( + F: Apply3C<F, E> +): <A, R>(S: Semigroup<A>) => Semigroup<Kind3<F, R, E, A>> +export declare function getApplySemigroup<F extends URIS2>( + F: Apply2<F> +): <A, E>(S: Semigroup<A>) => Semigroup<Kind2<F, E, A>> +export declare function getApplySemigroup<F extends URIS2, E>( + F: Apply2C<F, E> +): <A>(S: Semigroup<A>) => Semigroup<Kind2<F, E, A>> +export declare function getApplySemigroup<F extends URIS>(F: Apply1<F>): <A>(S: Semigroup<A>) => Semigroup<Kind<F, A>> +export declare function getApplySemigroup<F>(F: Apply<F>): <A>(S: Semigroup<A>) => Semigroup<HKT<F, A>> +/** + * Tuple sequencing, i.e., take a tuple of monadic actions and does them from left-to-right, returning the resulting tuple. + * + * @example + * import { sequenceT } from 'fp-ts/Apply' + * import * as O from 'fp-ts/Option' + * + * const sequenceTOption = sequenceT(O.Apply) + * assert.deepStrictEqual(sequenceTOption(O.some(1)), O.some([1])) + * assert.deepStrictEqual(sequenceTOption(O.some(1), O.some('2')), O.some([1, '2'])) + * assert.deepStrictEqual(sequenceTOption(O.some(1), O.some('2'), O.none), O.none) + * + * @since 2.0.0 + */ +export declare function sequenceT<F extends URIS4>( + F: Apply4<F> +): <S, R, E, T extends Array<Kind4<F, S, R, E, any>>>( + ...t: T & { + readonly 0: Kind4<F, S, R, E, any> + } +) => Kind4< + F, + S, + R, + E, + { + [K in keyof T]: [T[K]] extends [Kind4<F, S, R, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS3>( + F: Apply3<F> +): <R, E, T extends Array<Kind3<F, R, E, any>>>( + ...t: T & { + readonly 0: Kind3<F, R, E, any> + } +) => Kind3< + F, + R, + E, + { + [K in keyof T]: [T[K]] extends [Kind3<F, R, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, T extends Array<Kind3<F, R, E, any>>>( + ...t: T & { + readonly 0: Kind3<F, R, E, any> + } +) => Kind3< + F, + R, + E, + { + [K in keyof T]: [T[K]] extends [Kind3<F, R, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS2>( + F: Apply2<F> +): <E, T extends Array<Kind2<F, E, any>>>( + ...t: T & { + readonly 0: Kind2<F, E, any> + } +) => Kind2< + F, + E, + { + [K in keyof T]: [T[K]] extends [Kind2<F, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS2, E>( + F: Apply2C<F, E> +): <T extends Array<Kind2<F, E, any>>>( + ...t: T & { + readonly 0: Kind2<F, E, any> + } +) => Kind2< + F, + E, + { + [K in keyof T]: [T[K]] extends [Kind2<F, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS>( + F: Apply1<F> +): <T extends Array<Kind<F, any>>>( + ...t: T & { + readonly 0: Kind<F, any> + } +) => Kind< + F, + { + [K in keyof T]: [T[K]] extends [Kind<F, infer A>] ? A : never + } +> +export declare function sequenceT<F>(F: Apply<F>): <T extends Array<HKT<F, any>>>( + ...t: T & { + readonly 0: HKT<F, any> + } +) => HKT< + F, + { + [K in keyof T]: [T[K]] extends [HKT<F, infer A>] ? A : never + } +> +type EnforceNonEmptyRecord<R> = keyof R extends never ? never : R +/** + * Like `Apply.sequenceT` but works with structs instead of tuples. + * + * @example + * import * as E from 'fp-ts/Either' + * import { sequenceS } from 'fp-ts/Apply' + * + * const ado = sequenceS(E.Apply) + * + * assert.deepStrictEqual( + * ado({ + * a: E.right(1), + * b: E.right(true) + * }), + * E.right({ a: 1, b: true }) + * ) + * assert.deepStrictEqual( + * ado({ + * a: E.right(1), + * b: E.left('error') + * }), + * E.left('error') + * ) + * + * @since 2.0.0 + */ +export declare function sequenceS<F extends URIS4>( + F: Apply4<F> +): <S, R, E, NER extends Record<string, Kind4<F, S, R, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind4<F, S, R, E, any>> +) => Kind4< + F, + S, + R, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind4<F, any, any, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS3>( + F: Apply3<F> +): <R, E, NER extends Record<string, Kind3<F, R, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind3<F, R, E, any>> +) => Kind3< + F, + R, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind3<F, any, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, NER extends Record<string, Kind3<F, R, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind3<F, R, E, any>> +) => Kind3< + F, + R, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind3<F, any, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS2>( + F: Apply2<F> +): <E, NER extends Record<string, Kind2<F, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind2<F, E, any>> +) => Kind2< + F, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind2<F, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS2, E>( + F: Apply2C<F, E> +): <NER extends Record<string, Kind2<F, E, any>>>( + r: EnforceNonEmptyRecord<NER> +) => Kind2< + F, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind2<F, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS>( + F: Apply1<F> +): <NER extends Record<string, Kind<F, any>>>( + r: EnforceNonEmptyRecord<NER> +) => Kind< + F, + { + [K in keyof NER]: [NER[K]] extends [Kind<F, infer A>] ? A : never + } +> +export declare function sequenceS<F>(F: Apply<F>): <NER extends Record<string, HKT<F, any>>>( + r: EnforceNonEmptyRecord<NER> +) => HKT< + F, + { + [K in keyof NER]: [NER[K]] extends [HKT<F, infer A>] ? A : never + } +> +export {} diff --git a/node_modules/fp-ts/es6/Apply.js b/node_modules/fp-ts/es6/Apply.js new file mode 100644 index 0000000..2f9b24b --- /dev/null +++ b/node_modules/fp-ts/es6/Apply.js @@ -0,0 +1,178 @@ +/** + * The `Apply` class provides the `ap` which is used to apply a function to an argument under a type constructor. + * + * `Apply` can be used to lift functions of two or more arguments to work on values wrapped with the type constructor + * `f`. + * + * Instances must satisfy the following law in addition to the `Functor` laws: + * + * 1. Associative composition: `F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))` + * + * Formally, `Apply` represents a strong lax semi-monoidal endofunctor. + * + * @example + * import * as O from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * const f = (a: string) => (b: number) => (c: boolean) => a + String(b) + String(c) + * const fa: O.Option<string> = O.some('s') + * const fb: O.Option<number> = O.some(1) + * const fc: O.Option<boolean> = O.some(true) + * + * assert.deepStrictEqual( + * pipe( + * // lift a function + * O.some(f), + * // apply the first argument + * O.ap(fa), + * // apply the second argument + * O.ap(fb), + * // apply the third argument + * O.ap(fc) + * ), + * O.some('s1true') + * ) + * + * @since 2.0.0 + */ +import { tuple } from './function'; +import * as _ from './internal'; +export function ap(F, G) { + return function (fa) { + return function (fab) { + return F.ap(F.map(fab, function (gab) { return function (ga) { return G.ap(gab, ga); }; }), fa); + }; + }; +} +export function apFirst(A) { + return function (second) { return function (first) { + return A.ap(A.map(first, function (a) { return function () { return a; }; }), second); + }; }; +} +export function apSecond(A) { + return function (second) { + return function (first) { + return A.ap(A.map(first, function () { return function (b) { return b; }; }), second); + }; + }; +} +export function apS(F) { + return function (name, fb) { + return function (fa) { + return F.ap(F.map(fa, function (a) { return function (b) { + var _a; + return Object.assign({}, a, (_a = {}, _a[name] = b, _a)); + }; }), fb); + }; + }; +} +export function getApplySemigroup(F) { + return function (S) { return ({ + concat: function (first, second) { + return F.ap(F.map(first, function (x) { return function (y) { return S.concat(x, y); }; }), second); + } + }); }; +} +function curried(f, n, acc) { + return function (x) { + var combined = Array(acc.length + 1); + for (var i = 0; i < acc.length; i++) { + combined[i] = acc[i]; + } + combined[acc.length] = x; + return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined); + }; +} +var tupleConstructors = { + 1: function (a) { return [a]; }, + 2: function (a) { return function (b) { return [a, b]; }; }, + 3: function (a) { return function (b) { return function (c) { return [a, b, c]; }; }; }, + 4: function (a) { return function (b) { return function (c) { return function (d) { return [a, b, c, d]; }; }; }; }, + 5: function (a) { return function (b) { return function (c) { return function (d) { return function (e) { return [a, b, c, d, e]; }; }; }; }; } +}; +function getTupleConstructor(len) { + if (!_.has.call(tupleConstructors, len)) { + tupleConstructors[len] = curried(tuple, len - 1, []); + } + return tupleConstructors[len]; +} +export function sequenceT(F) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var len = args.length; + var f = getTupleConstructor(len); + var fas = F.map(args[0], f); + for (var i = 1; i < len; i++) { + fas = F.ap(fas, args[i]); + } + return fas; + }; +} +function getRecordConstructor(keys) { + var len = keys.length; + switch (len) { + case 1: + return function (a) { + var _a; + return (_a = {}, _a[keys[0]] = a, _a); + }; + case 2: + return function (a) { return function (b) { + var _a; + return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a); + }; }; + case 3: + return function (a) { return function (b) { return function (c) { + var _a; + return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a); + }; }; }; + case 4: + return function (a) { return function (b) { return function (c) { return function (d) { + var _a; + return (_a = {}, + _a[keys[0]] = a, + _a[keys[1]] = b, + _a[keys[2]] = c, + _a[keys[3]] = d, + _a); + }; }; }; }; + case 5: + return function (a) { return function (b) { return function (c) { return function (d) { return function (e) { + var _a; + return (_a = {}, + _a[keys[0]] = a, + _a[keys[1]] = b, + _a[keys[2]] = c, + _a[keys[3]] = d, + _a[keys[4]] = e, + _a); + }; }; }; }; }; + default: + return curried(function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var r = {}; + for (var i = 0; i < len; i++) { + r[keys[i]] = args[i]; + } + return r; + }, len - 1, []); + } +} +export function sequenceS(F) { + return function (r) { + var keys = Object.keys(r); + var len = keys.length; + var f = getRecordConstructor(keys); + var fr = F.map(r[keys[0]], f); + for (var i = 1; i < len; i++) { + fr = F.ap(fr, r[keys[i]]); + } + return fr; + }; +} diff --git a/node_modules/fp-ts/es6/Array.d.ts b/node_modules/fp-ts/es6/Array.d.ts new file mode 100644 index 0000000..2e0a482 --- /dev/null +++ b/node_modules/fp-ts/es6/Array.d.ts @@ -0,0 +1,2215 @@ +/** + * The Array module provides tools for working with Typescript's Array<T> type in a functional way. + * + * In functional jargon, this module provides a monadic interface over Typescript's Array<T>. + * + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { ChainRec1 } from './ChainRec' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Extend1 } from './Extend' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { FromEither1 } from './FromEither' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Magma } from './Magma' +import { Monad1 } from './Monad' +import { Monoid } from './Monoid' +import * as NEA from './NonEmptyArray' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import { Zero1 } from './Zero' +import NonEmptyArray = NEA.NonEmptyArray +/** + * Test whether an array is empty + * + * @example + * import { isEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isEmpty([]), true) + * assert.strictEqual(isEmpty(['a']), false) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isEmpty: <A>(as: Array<A>) => as is [] +/** + * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>` + * + * @example + * import { isNonEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isNonEmpty([]), false) + * assert.strictEqual(isNonEmpty(['a']), true) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isNonEmpty: <A>(as: Array<A>) => as is NonEmptyArray<A> +/** + * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const prepend: <A>(head: A) => (tail: Array<A>) => NEA.NonEmptyArray<A> +/** + * Less strict version of [`prepend`](#prepend). + * + * @example + * import { prependW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prependW("a")), ["a", 2, 3, 4]); + * + * @since 2.11.0 + */ +export declare const prependW: <A, B>(head: B) => (tail: Array<A>) => NEA.NonEmptyArray<A | B> +/** + * Append an element to the end of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const append: <A>(end: A) => (init: Array<A>) => NEA.NonEmptyArray<A> +/** + * Less strict version of [`append`](#append). + * + * @example + * import { appendW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], appendW("d")), [1, 2, 3, "d"]); + * + * @since 2.11.0 + */ +export declare const appendW: <A, B>(end: B) => (init: Array<A>) => NEA.NonEmptyArray<A | B> +/** + * Return a `Array` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/Array' + * + * const double = (i: number): number => i * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * assert.deepStrictEqual(makeBy(-3, double), []) + * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6]) + * + * @category constructors + * @since 2.0.0 + */ +export declare const makeBy: <A>(n: number, f: (i: number) => A) => Array<A> +/** + * Create a `Array` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * assert.deepStrictEqual(replicate(-3, 'a'), []) + * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a']) + * + * @category constructors + * @since 2.0.0 + */ +export declare const replicate: <A>(n: number, a: A) => Array<A> +/** + * Create an array with one element, if the element satisfies the predicate, otherwise + * it returns an empty array. + * + * @example + * import { fromPredicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(pipe("a", fromPredicate(isString)), ["a"]); + * assert.deepStrictEqual(pipe(7, fromPredicate(isString)), []); + * + * assert.deepStrictEqual(pipe(7, fromPredicate((x)=> x > 0)), [7]); + * assert.deepStrictEqual(pipe(-3, fromPredicate((x)=> x > 0)), []); + * + * @category lifting + * @since 2.11.0 + */ +export declare function fromPredicate<A, B extends A>(refinement: Refinement<A, B>): (a: A) => Array<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): <B extends A>(b: B) => Array<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): (a: A) => Array<A> +/** + * Create an array from an `Option`. The resulting array will contain the content of the + * `Option` if it is `Some` and it will be empty if the `Option` is `None`. + * + * @example + * import { fromOption } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(option.some("a"), fromOption),["a"]) + * assert.deepStrictEqual(pipe(option.none, fromOption),[]) + * + * @category conversions + * @since 2.11.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => Array<A> +/** + * Create an array from an `Either`. The resulting array will contain the content of the + * `Either` if it is `Right` and it will be empty if the `Either` is `Left`. + * + * @example + * import { fromEither } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(either.right("r"), fromEither), ["r"]); + * assert.deepStrictEqual(pipe(either.left("l"), fromEither), []); + * + * @category conversions + * @since 2.11.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => Array<A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @example + * import { matchW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcherW = matchW( + * () => "No elements", + * (as) => as.length + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4); + * assert.deepStrictEqual(pipe([], matcherW), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (as: NonEmptyArray<A>) => C +) => (as: Array<A>) => B | C +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` and returns the result. + * + * @example + * import { match } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcher = match( + * () => "No elements", + * (as) => `Found ${as.length} element(s)` + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), "Found 4 element(s)"); + * assert.deepStrictEqual(pipe([], matcher), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const match: <B, A>(onEmpty: LazyArg<B>, onNonEmpty: (as: NonEmptyArray<A>) => B) => (as: Array<A>) => B +/** + * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchLeftW } from 'fp-ts/Array' + * + * const f = matchLeftW( + * () => 0, + * (head: string, tail: string[]) => `Found "${head}" followed by ${tail.length} elements` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found "a" followed by 2 elements'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeftW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: Array<A>) => C +) => (as: Array<A>) => B | C +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchLeft: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: Array<A>) => B +) => (as: Array<A>) => B +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const foldLeft: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: Array<A>) => B +) => (as: Array<A>) => B +/** + * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchRightW } from 'fp-ts/Array' + * + * const f = matchRightW( + * () => 0, + * (head: string[], tail: string) => `Found ${head.length} elements folllowed by "${tail}"` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found 2 elements folllowed by "c"'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRightW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: Array<A>, last: A) => C +) => (as: Array<A>) => B | C +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its initial elements and the last element. + * + * @example + * import { matchRight } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchRight( + * () => 0, + * (head, _) => 1 + len(head) + * ); + * assert.strictEqual(len([1, 2, 3]), 3); + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchRight: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: Array<A>, last: A) => B +) => (as: Array<A>) => B +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const foldRight: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: Array<A>, last: A) => B +) => (as: Array<A>) => B +/** + * Same as [`chain`](#chain), but passing also the index to the iterating function. + * + * @example + * import { chainWithIndex, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (index: number, x: string) => replicate(2, `${x}${index}`); + * assert.deepStrictEqual(pipe(["a", "b", "c"], chainWithIndex(f)), ["a0", "a0", "b1", "b1", "c2", "c2"]); + * + * @category sequencing + * @since 2.7.0 + */ +export declare const chainWithIndex: <A, B>(f: (i: number, a: A) => Array<B>) => (as: Array<A>) => Array<B> +/** + * Same as `reduce` but it carries over the intermediate steps + * + * @example + * import { scanLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.0.0 + */ +export declare const scanLeft: <A, B>(b: B, f: (b: B, a: A) => B) => (as: Array<A>) => NonEmptyArray<B> +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.0.0 + */ +export declare const scanRight: <A, B>(b: B, f: (a: A, b: B) => B) => (as: Array<A>) => NonEmptyArray<B> +/** + * Calculate the number of elements in a `Array`. + * + * @example + * import { size } from 'fp-ts/Array' + * + * assert.strictEqual(size(["a","b","c"]),3) + * + * @since 2.10.0 + */ +export declare const size: <A>(as: Array<A>) => number +/** + * Test whether an array contains a particular index + * + * @example + * import { isOutOfBound } from 'fp-ts/Array' + * + * assert.strictEqual(isOutOfBound(1,["a","b","c"]),false) + * assert.strictEqual(isOutOfBound(-1,["a","b","c"]),true) + * assert.strictEqual(isOutOfBound(3,["a","b","c"]),true) + * + * @since 2.0.0 + */ +export declare const isOutOfBound: <A>(i: number, as: Array<A>) => boolean +/** + * This function provides a safe way to read a value at a particular index from an array. + * It returns a `none` if the index is out of bounds, and a `some` of the element if the + * index is valid. + * + * @example + * import { lookup } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2)) + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none) + * + * @since 2.0.0 + */ +export declare const lookup: { + (i: number): <A>(as: Array<A>) => Option<A> + <A>(i: number, as: Array<A>): Option<A> +} +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.0.0 + */ +export declare const head: <A>(as: Array<A>) => Option<A> +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.0.0 + */ +export declare const last: <A>(as: Array<A>) => Option<A> +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.0.0 + */ +export declare const tail: <A>(as: Array<A>) => Option<Array<A>> +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.0.0 + */ +export declare const init: <A>(as: Array<A>) => Option<Array<A>> +/** + * Keep only a max number of elements from the start of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]); + * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +export declare const takeLeft: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Keep only a max number of elements from the end of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]); + * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +export declare const takeRight: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Calculate the longest initial subarray for which all element satisfy the specified predicate, creating a new array + * + * @example + * import { takeLeftWhile } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeLeftWhile((n: number) => n % 2 === 0)([2, 4, 3, 6]), [2, 4]) + * + * @since 2.0.0 + */ +export declare function takeLeftWhile<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Array<B> +export declare function takeLeftWhile<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B> +export declare function takeLeftWhile<A>(predicate: Predicate<A>): (as: Array<A>) => Array<A> +/** + * Type returned by [`spanLeft`](#spanLeft) composed of an `init` array and a `rest` array. + * + * @since 2.10.0 + */ +export interface Spanned<I, R> { + init: Array<I> + rest: Array<R> +} +/** + * Split an array into two parts: + * 1. the longest initial subarray for which all elements satisfy the specified predicate + * 2. the remaining elements + * + * @example + * import { spanLeft } from 'fp-ts/Array' + * + * const isOdd = (n: number) => n % 2 === 1; + * assert.deepStrictEqual(spanLeft(isOdd)([1, 3, 2, 4, 5]), { init: [1, 3], rest: [2, 4, 5] }); + * assert.deepStrictEqual(spanLeft(isOdd)([0, 2, 4, 5]), { init: [], rest: [0, 2, 4, 5] }); + * assert.deepStrictEqual(spanLeft(isOdd)([1, 3, 5]), { init: [1, 3, 5], rest: [] }); + * + * @since 2.0.0 + */ +export declare function spanLeft<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Spanned<B, A> +export declare function spanLeft<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Spanned<B, B> +export declare function spanLeft<A>(predicate: Predicate<A>): (as: Array<A>) => Spanned<A, A> +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]); + * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +export declare const dropLeft: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]); + * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +export declare const dropRight: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Creates a new `Array` which is a copy of the input dropping the longest initial subarray for + * which all element satisfy the specified predicate. + * + * @example + * import { dropLeftWhile } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropLeftWhile((n: number) => n % 2 === 1)([1, 3, 2, 4, 5]), [2, 4, 5]) + * + * @since 2.0.0 + */ +export declare function dropLeftWhile<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Array<B> +export declare function dropLeftWhile<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B> +export declare function dropLeftWhile<A>(predicate: Predicate<A>): (as: Array<A>) => Array<A> +/** + * `findIndex` returns an `Option` containing the first index for which a predicate holds. + * It returns `None` if no element satisfies the predicate. + * Similar to [`findFirst`](#findFirst) but returning the index instead of the element. + * + * @example + * import { findIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.0.0 + */ +export declare const findIndex: <A>(predicate: Predicate<A>) => (as: Array<A>) => Option<number> +/** + * Find the first element which satisfies a predicate (or a refinement) function. + * It returns an `Option` containing the element or `None` if not found. + * + * @example + * import { findFirst } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findFirst((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 1 })) + * + * @since 2.0.0 + */ +export declare function findFirst<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): (as: Array<A>) => Option<A> +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array and + * returns the first `Some` result. Otherwise it returns `None`. + * + * @example + * import { findFirstMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some("Mary")); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +export declare const findFirstMap: <A, B>(f: (a: A) => Option<B>) => (as: Array<A>) => Option<B> +/** + * Find the last element which satisfies a predicate function. + * It returns an `Option` containing the element or `None` if not found. + * + * @example + * import { findLast } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findLast((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 2 })) + * + * @since 2.0.0 + */ +export declare function findLast<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): (as: Array<A>) => Option<A> +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array starting from the + * end and returns the last `Some` result. Otherwise it returns `None`. + * + * @example + * import { findLastMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some("Joey")); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +export declare const findLastMap: <A, B>(f: (a: A) => Option<B>) => (as: Array<A>) => Option<B> +/** + * Returns the index of the last element of the list which matches the predicate. + * It returns an `Option` containing the index or `None` if not found. + * + * @example + * import { findLastIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * @since 2.0.0 + */ +export declare const findLastIndex: <A>(predicate: Predicate<A>) => (as: Array<A>) => Option<number> +/** + * This function takes an array and makes a new array containing the same elements. + * + * @since 2.0.0 + */ +export declare const copy: <A>(as: Array<A>) => Array<A> +/** + * Insert an element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { insertAt } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.0.0 + */ +export declare const insertAt: <A>(i: number, a: A) => (as: Array<A>) => Option<NonEmptyArray<A>> +/** + * Change the element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { updateAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.0.0 + */ +export declare const updateAt: <A>(i: number, a: A) => (as: Array<A>) => Option<Array<A>> +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds. + * + * @example + * import { deleteAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.0.0 + */ +export declare const deleteAt: (i: number) => <A>(as: Array<A>) => Option<Array<A>> +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds. + * + * @example + * import { modifyAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.0.0 + */ +export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: Array<A>) => Option<Array<A>> +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.0.0 + */ +export declare const reverse: <A>(as: Array<A>) => Array<A> +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Right` elements in the same order. + * + * @example + * import { rights } from 'fp-ts/Array' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.0.0 + */ +export declare const rights: <E, A>(as: Array<Either<E, A>>) => Array<A> +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Left` elements in the same order. + * + * @example + * import { lefts } from 'fp-ts/Array' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.0.0 + */ +export declare const lefts: <E, A>(as: Array<Either<E, A>>) => Array<E> +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.0.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: Array<A>) => Array<A> +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/Array' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.0.0 + */ +export declare const zipWith: <A, B, C>(fa: Array<A>, fb: Array<B>, f: (a: A, b: B) => C) => Array<C> +/** + * Takes two arrays and returns an array of corresponding pairs. If one input array is short, excess elements of the + * longer array are discarded + * + * @example + * import { zip } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], zip(['a', 'b', 'c', 'd'])), [[1, 'a'], [2, 'b'], [3, 'c']]) + * + * @since 2.0.0 + */ +export declare function zip<B>(bs: Array<B>): <A>(as: Array<A>) => Array<[A, B]> +export declare function zip<A, B>(as: Array<A>, bs: Array<B>): Array<[A, B]> +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/Array' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.0.0 + */ +export declare const unzip: <A, B>(as: Array<[A, B]>) => [Array<A>, Array<B>] +/** + * Creates a new `Array`, prepending an element to every member of the input `Array`. + * + * @example + * import { prependAll } from 'fp-ts/Array' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: Array<A>) => Array<A> +/** + * Creates a new `Array` placing an element in between members of the input `Array`. + * + * @example + * import { intersperse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: Array<A>) => Array<A> +/** + * Creates a new `Array` rotating the input `Array` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.0.0 + */ +export declare const rotate: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single + * argument which returns the function to use to search for a value of type `A` in + * an `Array<A>`. + * + * @example + * import { elem } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true) + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false) + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): (as: Array<A>) => boolean + (a: A, as: Array<A>): boolean +} +/** + * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element, + * based on a `Eq<A>`. + * + * @example + * import { uniq } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.0.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: Array<A>) => Array<A> +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/Array' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.0.0 + */ +export declare const sortBy: <B>(ords: Array<Ord<B>>) => <A extends B>(as: Array<A>) => Array<A> +/** + * A useful recursion pattern for processing an array to produce a new array, often used for "chopping" up the input + * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a + * value and the rest of the array. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as A from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => { + * return A.chop(as => { + * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.0.0 + */ +export declare const chop: <A, B>(f: (as: NonEmptyArray<A>) => [B, Array<A>]) => (as: Array<A>) => Array<B> +/** + * Splits an `Array` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/Array' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.0.0 + */ +export declare const splitAt: (n: number) => <A>(as: Array<A>) => [Array<A>, Array<A>] +/** + * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `xs`. + * + * @example + * import { chunksOf } from 'fp-ts/Array' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.0.0 + */ +export declare const chunksOf: (n: number) => <A>(as: Array<A>) => Array<NonEmptyArray<A>> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => Array<B> +/** + * `Array` comprehension. + * + * ``` + * [ f(x, y, ...) | x ← xs, y ← ys, ..., g(x, y, ...) ] + * ``` + * + * @example + * import { comprehension } from 'fp-ts/Array' + * import { tuple } from 'fp-ts/function' + * + * assert.deepStrictEqual(comprehension([[1, 2, 3], ['a', 'b']], tuple, (a, b) => (a + b.length) % 2 === 0), [ + * [1, 'a'], + * [1, 'b'], + * [3, 'a'], + * [3, 'b'] + * ]) + * + * @since 2.0.0 + */ +export declare function comprehension<A, B, C, D, R>( + input: [Array<A>, Array<B>, Array<C>, Array<D>], + f: (a: A, b: B, c: C, d: D) => R, + g?: (a: A, b: B, c: C, d: D) => boolean +): Array<R> +export declare function comprehension<A, B, C, R>( + input: [Array<A>, Array<B>, Array<C>], + f: (a: A, b: B, c: C) => R, + g?: (a: A, b: B, c: C) => boolean +): Array<R> +export declare function comprehension<A, B, R>( + input: [Array<A>, Array<B>], + f: (a: A, b: B) => R, + g?: (a: A, b: B) => boolean +): Array<R> +export declare function comprehension<A, R>(input: [Array<A>], f: (a: A) => R, g?: (a: A) => boolean): Array<R> +/** + * @since 2.11.0 + */ +export declare const concatW: <B>(second: Array<B>) => <A>(first: Array<A>) => Array<A | B> +/** + * @since 2.11.0 + */ +export declare const concat: <A>(second: Array<A>) => (first: Array<A>) => Array<A> +/** + * Creates an array of unique values, in order, from all given arrays using a `Eq` for equality comparisons + * + * @example + * import { union } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], union(N.Eq)([2, 3])), [1, 2, 3]) + * + * @since 2.0.0 + */ +export declare function union<A>(E: Eq<A>): { + (xs: Array<A>): (ys: Array<A>) => Array<A> + (xs: Array<A>, ys: Array<A>): Array<A> +} +/** + * Creates an array of unique values that are included in all given arrays using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { intersection } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], intersection(N.Eq)([2, 3])), [2]) + * + * @since 2.0.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (xs: Array<A>): (ys: Array<A>) => Array<A> + (xs: Array<A>, ys: Array<A>): Array<A> +} +/** + * Creates an array of array values not included in the other given array using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { difference } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], difference(N.Eq)([2, 3])), [1]) + * + * @since 2.0.0 + */ +export declare function difference<A>(E: Eq<A>): { + (xs: Array<A>): (ys: Array<A>) => Array<A> + (xs: Array<A>, ys: Array<A>): Array<A> +} +/** + * Given an element of the base type, `of` builds an `Array` containing just that + * element of the base type (this is useful for building a `Monad`). + * + * @example + * import { of } from 'fp-ts/Array' + * + * assert.deepStrictEqual(of("a"), ["a"]); + * + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => Array<A> +/** + * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid) + * + * @since 2.7.0 + */ +export declare const zero: <A>() => Array<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`. + * In practice it applies the base function to each element of the array and collects the + * results in a new array. + * + * @example + * import { map } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => n * 2; + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]); + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Array<A>) => Array<B> +/** + * @example + * import { ap, map, of } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * // a curried function with 3 input parameteres + * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2; + * + * // let's use `ap` to iterate `f` over an array for each input parameter + * assert.deepStrictEqual(pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])), [ + * "a1😀", "a1😫", "a1😎", + * "a2😀", "a2😫", "a2😎", + * "b1😀", "b1😫", "b1😎", + * "b2😀", "b2😫", "b2😎", + * ]); + * + * // given Array implements the Applicative interface with the `of` method, + * // we can write exactly the same thing in a more symmetric way + * // using `of` on `f` and `ap` on each array in input + * assert.deepStrictEqual( + * pipe(of(f), ap(["a", "b"]), ap([1, 2]), ap(["😀", "😫", "😎"])), + * pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])) + * ); + * + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Array<A>) => <B>(fab: Array<(a: A) => B>) => Array<B> +/** + * Composes computations in sequence, using the return value of one computation to + * determine the next computation. + * + * In other words it takes a function `f` that produces an array from a single element of + * the base type `A` and returns a new function which applies `f` to each element of the + * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the + * results into a single array (like [`flatten`](#flatten)). + * + * @example + * import { flatMap, map, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => replicate(n, `${n}`); + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [["1"], ["2", "2"], ["3", "3", "3"]]); + * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), ["1", "2", "2", "3", "3", "3"]); + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => Array<B>): (ma: Array<A>) => Array<B> + <A, B>(ma: Array<A>, f: (a: A, i: number) => Array<B>): Array<B> +} +/** + * Takes an array of arrays of `A` and flattens them into an array of `A` + * by concatenating the elements of each array in order. + * + * @example + * import { flatten } from 'fp-ts/Array' + * + * assert.deepStrictEqual(flatten([["a"], ["b", "c"], ["d", "e", "f"]]), ["a", "b", "c", "d", "e", "f"]); + * + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: Array<Array<A>>) => Array<A> +/** + * Same as [`map`](#map), but the iterating function takes both the index and the value + * of the element. + * + * @example + * import { mapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (i: number, s: string) => `${s} - ${i}`; + * assert.deepStrictEqual(pipe(["a", "b", "c"], mapWithIndex(f)), ["a - 0", "b - 1", "c - 2"]); + * + * @category mapping + * @since 2.0.0 + */ +export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (fa: Array<A>) => Array<B> +/** + * Maps an array with an iterating function that takes the index and the value of + * each element and returns an `Option`. It keeps only the `Some` values discarding + * the `None`s. + * + * Same as [`filterMap`](#filterMap), but with an iterating function which takes also + * the index as input. + * + * @example + * import { filterMapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none); + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMapWithIndex(f)), ["NO", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterMapWithIndex: <A, B>(f: (i: number, a: A) => Option<B>) => (fa: Array<A>) => Array<B> +/** + * Maps an array with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none; + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMap(f)), ["A", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Array<A>) => Array<B> +/** + * Compact an array of `Option`s discarding the `None` values and + * keeping the `Some` values. It returns a new array containing the values of + * the `Some` options. + * + * @example + * import { compact } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * + * assert.deepStrictEqual(compact([option.some("a"), option.none, option.some("b")]), ["a", "b"]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <A>(fa: Array<Option<A>>) => Array<A> +/** + * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays: + * one containing all the left values and one containing all the right values. + * + * @example + * import { separate } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * + * assert.deepStrictEqual(separate([either.right("r1"), either.left("l1"), either.right("r2")]), { + * left: ["l1"], + * right: ["r1", "r2"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <A, B>(fa: Array<Either<A, B>>) => Separated<Array<A>, Array<B>> +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `filter` creates a new `Array` containing the elements of the original + * `Array` for which the iterating function is `true`. + * + * @example + * import { filter } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(filter(isString)(["a", 1, {}, "b", 5]), ["a", "b"]); + * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Array<B> + <A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B> + <A>(predicate: Predicate<A>): (as: Array<A>) => Array<A> +} +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `partition` creates two new `Array`s: `right` containing the elements of the original + * `Array` for which the iterating function is `true`, `left` containing the elements + * for which it is false. + * + * @example + * import { partition } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(partition(isString)(["a", 1, {}, "b", 5]), { left: [1, {}, 5], right: ["a", "b"] }); + * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Separated<Array<A>, Array<B>> + <A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Separated<Array<B>, Array<B>> + <A>(predicate: Predicate<A>): (as: Array<A>) => Separated<Array<A>, Array<A>> +} +/** + * Same as [`partition`](#partition), but passing also the index to the iterating function. + * + * @example + * import { partitionWithIndex } from 'fp-ts/Array' + * + * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), { + * left: [-2, 7], + * right: [5, 6], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): ( + as: Array<A> + ) => Separated<Array<A>, Array<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>(bs: Array<B>) => Separated<Array<B>, Array<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): (as: Array<A>) => Separated<Array<A>, Array<A>> +} +/** + * Given an iterating function that returns an `Either`, + * `partitionMap` applies the iterating function to each element and it creates two `Array`s: + * `right` containing the values of `Right` results, `left` containing the values of `Left` results. + * + * @example + * import { partitionMap } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfString = <B>(x: B): Either<B, string> => + * typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMap(upperIfString)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7], + * right: [ 'HELLO', 'WORLD' ], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Array<A>) => Separated<Array<B>, Array<C>> +/** + * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function. + * + * @example + * import { partitionMapWithIndex } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> => + * index < 3 && typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7, "world"], + * right: ["HELLO"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMapWithIndex: <A, B, C>( + f: (i: number, a: A) => Either<B, C> +) => (fa: Array<A>) => Separated<Array<B>, Array<C>> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<Array<B>>) => <A>(fa: Array<A>) => Array<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Array` concatenates the inputs into a single array. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <A>(that: LazyArg<Array<A>>) => (fa: Array<A>) => Array<A> +/** + * Same as [`filter`](#filter), but passing also the index to the iterating function. + * + * @example + * import { filterWithIndex } from 'fp-ts/Array'; + * + * const f = (index: number, x: number) => x > 0 && index <= 2; + * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): (as: Array<A>) => Array<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>(bs: Array<B>) => Array<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): (as: Array<A>) => Array<A> +} +/** + * Given an iterating function that takes `Array<A>` as input, `extend` returns + * an array containing the results of the iterating function applied to the whole input + * `Array`, then to the input `Array` without the first element, then to the input + * `Array` without the first two elements, etc. + * + * @example + * import { extend } from 'fp-ts/Array' + * + * const f = (a: string[]) => a.join(","); + * assert.deepStrictEqual(extend(f)(["a", "b", "c"]), ["a,b,c", "b,c", "c"]); + * + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (as: Array<A>) => B) => (as: Array<A>) => Array<B> +/** + * `duplicate` returns an array containing the whole input `Array`, + * then to the input `Array` dropping the first element, then to the input + * `Array` dropping the first two elements, etc. + * + * @example + * import { duplicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(duplicate(["a", "b", "c"]), [["a", "b", "c"], ["b", "c"], ["c"]]); + * + * @since 2.0.0 + */ +export declare const duplicate: <A>(wa: Array<A>) => Array<Array<A>> +/** + * Map and fold an `Array`. + * Map the `Array` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (s: string) => s.toUpperCase() + * assert.deepStrictEqual(foldMap(monoid)(f)(["a", "b", "c"]), "ABC"); + * + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Array<A>) => M +/** + * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function. + * + * @example + * import { foldMapWithIndex } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})` + * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)(["a", "b", "c"]), "A(0)B(1)C(2)"); + * + * @category folding + * @since 2.0.0 + */ +export declare const foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: number, a: A) => M) => (fa: Array<A>) => M +/** + * Reduces an `Array`. + * + * `reduce` executes the supplied iterating function on each element of the array, + * in order, passing in the element and the return value from the calculation on the preceding element. + * + * The first time that the iterating function is called there is no "return value of the + * previous calculation", the initial value is used in its place. + * + * @example + * import { reduce } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Array<A>) => B +/** + * Same as [`reduce`](#reduce) but passing also the index to the iterating function. + * + * @example + * import { reduceWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, acc: string, cur: unknown) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceWithIndex("", f)([2, "a", "b", null]), "A1B2"); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: Array<A>) => B +/** + * Same as [`reduce`](#reduce) but applied from the end to the start. + * + * *Note*: the iterating function in this case takes the accumulator as the last argument. + * + * @example + * import { reduceRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduceRight("", (cur: string, acc: string) => acc + cur)(["a", "b", "c"]), "cba"); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Array<A>) => B +/** + * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function. + * + * @example + * import { reduceRightWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, cur: unknown, acc: string) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceRightWithIndex("", f)([2, "a", "b", null]), "B2A1"); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: Array<A>) => B +/** + * Given an iterating function that returns a `HKT` (higher kinded type), `traverse` + * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s + * the results using the provided `Applicative`. + * + * E.g. suppose you have an `Array` and you want to format each element with a function + * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse` + * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>` + * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results + * are `Error`s. + * + * @example + * import { traverse } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (x: unknown) => + * typeof x === "string" ? right(x.toUpperCase()) : left(new Error("not a string")); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", "b"]), right(["A", "B"])); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and, + * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`. + * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`. + * + * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an + * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an + * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`, + * it needs an `Applicative` for `Option`. + * + * @example + * import { sequence } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * assert.deepStrictEqual(sequence(Applicative)([right("a"), right("b")]), right(["a", "b"])); + * assert.deepStrictEqual( + * sequence(Applicative)([right("a"), left(new Error("not a string"))]), + * left(new Error("not a string")) + * ); + * + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * Same as [`traverse`](#traverse) but passing also the index to the iterating function. + * + * @example + * import { traverseWithIndex } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (index:number, x:unknown) => + * typeof x === "string" ? right(x.toUpperCase() + index) : left(new Error("not a string")); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", "b"]), right(["A0", "B1"])); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome + * value and an input for the following iteration. + * `unfold` applies `f` to the initial value `b` and then recursively to the second + * element of the tuple contained in the returned `option` of the previous + * calculation until `f` returns `Option.none`. + * + * @example + * import { unfold } from 'fp-ts/Array' + * import { option } from 'fp-ts' + * + * const f = (n: number) => { + * if (n <= 0) return option.none; + * const returnValue = n * 2; + * const inputForNextRound = n - 1; + * return option.some([returnValue, inputForNextRound] as const); + * }; + * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]); + * + * @since 2.6.6 + */ +export declare const unfold: <A, B>(b: B, f: (b: B) => Option<readonly [A, B]>) => Array<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Array' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Array<A> + } +} +/** + * `getShow` makes a `Show` for an `Array<A>` from a `Show` for + * an `A`. + * + * @example + * import { getShow } from 'fp-ts/Array' + * + * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) }; + * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), "[(2), (1), 0, 1]"); + * + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Array<A>> +/** + * Get a `Semigroup` based on the concatenation of `Array`s. + * See also [`getMonoid`](#getMonoid). + * + * @example + * import { getSemigroup } from 'fp-ts/Array' + * + * const S = getSemigroup<number>(); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]); + * + * @category instances + * @since 2.10.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<Array<A>> +/** + * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s. + * + * @example + * import { getMonoid } from 'fp-ts/Array' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.0.0 + */ +export declare const getMonoid: <A = never>() => Monoid<Array<A>> +/** + * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/Array' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Array<A>> +/** + * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/Array' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * @category instances + * @since 2.0.0 + */ +export declare const getOrd: <A>(O: Ord<A>) => Ord<Array<A>> +/** + * Get a `Semigroup` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * See also [`getUnionMonoid`](#getUnionMonoid). + * + * @example + * import { getUnionSemigroup } from 'fp-ts/Array'; + * import { Eq } from 'fp-ts/number'; + * + * const S = getUnionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<Array<A>> +/** + * Get a `Monoid` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * + * @example + * import { getUnionMonoid } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const M = getUnionMonoid<number>(Eq); + * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(M.empty,[]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<Array<A>> +/** + * Get a `Semigroup` based on the intersection of the elements of `Array`s. + * Only elements present in the two arrays which are equal according to the + * provided `Eq` are included in the result. + * + * @example + * import { getIntersectionSemigroup } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getIntersectionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<Array<A>> +/** + * Get a `Magma` for `Array` where the `concat` function is the differnce between + * the first and the second array, i.e. the result contains all the elements of the + * first array for which their is no equal element in the second array according + * to the `Eq` provided. + * + * + * @example + * import { getDifferenceMagma } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getDifferenceMagma<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<Array<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Given an input an `Array` of functions, `flap` returns an `Array` containing + * the results of applying each function to the given input. + * + * @example + * import { flap } from 'fp-ts/Array' + * + * const funs = [ + * (n: number) => `Double: ${n * 2}`, + * (n: number) => `Triple: ${n * 3}`, + * (n: number) => `Square: ${n * n}`, + * ]; + * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']); + * + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Array', (a: A) => B>) => import('./HKT').Kind<'Array', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: B[] +) => <A>(first: import('./HKT').Kind<'Array', A>) => import('./HKT').Kind<'Array', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: B[] +) => <A>(first: import('./HKT').Kind<'Array', A>) => import('./HKT').Kind<'Array', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Array<B>) => (first: Array<A>) => Array<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Unfoldable: Unfoldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'Array', void> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Witherable: Witherable1<URI> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecDepthFirst: <A, B>(f: (a: A) => Array<Either<A, B>>) => (a: A) => Array<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecDepthFirst: ChainRec1<URI> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecBreadthFirst: <A, B>(f: (a: A) => Array<Either<A, B>>) => (a: A) => Array<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecBreadthFirst: ChainRec1<URI> +/** + * Filter values inside a context. + * + * @since 2.11.0 + */ +export declare const filterE: import('./Witherable').FilterE1<'Array'> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => Array<B> +/** + * @category unsafe + * @since 2.0.0 + */ +export declare const unsafeInsertAt: <A>(i: number, a: A, as: Array<A>) => NonEmptyArray<A> +/** + * @category unsafe + * @since 2.0.0 + */ +export declare const unsafeUpdateAt: <A>(i: number, a: A, as: Array<A>) => Array<A> +/** + * @category unsafe + * @since 2.0.0 + */ +export declare const unsafeDeleteAt: <A>(i: number, as: Array<A>) => Array<A> +/** + * `every` tells if the provided predicate holds true for every element in the `Array`. + * + * @example + * import { every } from 'fp-ts/Array' + * + * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false); + * + * @since 2.9.0 + */ +export declare const every: { + <A, B extends A>(refinement: Refinement<A, B>): Refinement<Array<A>, Array<B>> + <A>(predicate: Predicate<A>): Predicate<Array<A>> +} +/** + * `some` tells if the provided predicate holds true at least for one element in the `Array`. + * + * @example + * import { some } from 'fp-ts/Array' + * + * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false); + * + * @since 2.9.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (as: Array<A>) => as is NonEmptyArray<A> +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (as: Array<A>) => as is NEA.NonEmptyArray<A> +/** + * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(M: Monoid<A>) => (middle: A) => (as: Array<A>) => A +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Array<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Array', A>) => import('./HKT').Kind<'Array', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Array', A> +) => import('./HKT').Kind<'Array', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Array', B> +) => ( + ma: import('./HKT').Kind<'Array', A> +) => import('./HKT').Kind<'Array', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: B[] +) => ( + fa: import('./HKT').Kind<'Array', A> +) => import('./HKT').Kind<'Array', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Array<B>) => (ma: Array<A>) => Array<B> +/** + * Use `NonEmptyArray` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const range: (start: number, end: number) => NonEmptyArray<number> +/** + * Use a new `[]` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const empty: Array<never> +/** + * Use `prepend` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const cons: typeof NEA.cons +/** + * Use `append` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const snoc: <A>(init: Array<A>, end: A) => NonEmptyArray<A> +/** + * Use `prependAll` instead + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: Array<A>) => Array<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array` + * (where `A` is from `import A from 'fp-ts/Array'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const array: FunctorWithIndex1<URI, number> & + Monad1<URI> & + Unfoldable1<URI> & + Alternative1<URI> & + Extend1<URI> & + FilterableWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + TraversableWithIndex1<URI, number> & + Witherable1<URI> diff --git a/node_modules/fp-ts/es6/Array.js b/node_modules/fp-ts/es6/Array.js new file mode 100644 index 0000000..4794dac --- /dev/null +++ b/node_modules/fp-ts/es6/Array.js @@ -0,0 +1,2517 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import { bind as bind_, chainFirst as chainFirst_ } from './Chain'; +import { fromEitherK as fromEitherK_ } from './FromEither'; +import { dual, identity, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as NEA from './NonEmptyArray'; +import * as RA from './ReadonlyArray'; +import { separated } from './Separated'; +import { filterE as filterE_, wiltDefault, witherDefault } from './Witherable'; +import { guard as guard_ } from './Zero'; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Test whether an array is empty + * + * @example + * import { isEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isEmpty([]), true) + * assert.strictEqual(isEmpty(['a']), false) + * + * @category refinements + * @since 2.0.0 + */ +export var isEmpty = function (as) { return as.length === 0; }; +/** + * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>` + * + * @example + * import { isNonEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isNonEmpty([]), false) + * assert.strictEqual(isNonEmpty(['a']), true) + * + * @category refinements + * @since 2.0.0 + */ +export var isNonEmpty = NEA.isNonEmpty; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export var prepend = NEA.prepend; +/** + * Less strict version of [`prepend`](#prepend). + * + * @example + * import { prependW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prependW("a")), ["a", 2, 3, 4]); + * + * @since 2.11.0 + */ +export var prependW = NEA.prependW; +/** + * Append an element to the end of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export var append = NEA.append; +/** + * Less strict version of [`append`](#append). + * + * @example + * import { appendW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], appendW("d")), [1, 2, 3, "d"]); + * + * @since 2.11.0 + */ +export var appendW = NEA.appendW; +/** + * Return a `Array` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/Array' + * + * const double = (i: number): number => i * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * assert.deepStrictEqual(makeBy(-3, double), []) + * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6]) + * + * @category constructors + * @since 2.0.0 + */ +export var makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); }; +/** + * Create a `Array` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * assert.deepStrictEqual(replicate(-3, 'a'), []) + * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a']) + * + * @category constructors + * @since 2.0.0 + */ +export var replicate = function (n, a) { return makeBy(n, function () { return a; }); }; +export function fromPredicate(predicate) { + return function (a) { return (predicate(a) ? [a] : []); }; +} +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * Create an array from an `Option`. The resulting array will contain the content of the + * `Option` if it is `Some` and it will be empty if the `Option` is `None`. + * + * @example + * import { fromOption } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(option.some("a"), fromOption),["a"]) + * assert.deepStrictEqual(pipe(option.none, fromOption),[]) + * + * @category conversions + * @since 2.11.0 + */ +export var fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); }; +/** + * Create an array from an `Either`. The resulting array will contain the content of the + * `Either` if it is `Right` and it will be empty if the `Either` is `Left`. + * + * @example + * import { fromEither } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(either.right("r"), fromEither), ["r"]); + * assert.deepStrictEqual(pipe(either.left("l"), fromEither), []); + * + * @category conversions + * @since 2.11.0 + */ +export var fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); }; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @example + * import { matchW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcherW = matchW( + * () => "No elements", + * (as) => as.length + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4); + * assert.deepStrictEqual(pipe([], matcherW), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchW = function (onEmpty, onNonEmpty) { + return function (as) { + return isNonEmpty(as) ? onNonEmpty(as) : onEmpty(); + }; +}; +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` and returns the result. + * + * @example + * import { match } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcher = match( + * () => "No elements", + * (as) => `Found ${as.length} element(s)` + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), "Found 4 element(s)"); + * assert.deepStrictEqual(pipe([], matcher), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +export var match = matchW; +/** + * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchLeftW } from 'fp-ts/Array' + * + * const f = matchLeftW( + * () => 0, + * (head: string, tail: string[]) => `Found "${head}" followed by ${tail.length} elements` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found "a" followed by 2 elements'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchLeftW = function (onEmpty, onNonEmpty) { + return function (as) { + return isNonEmpty(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty(); + }; +}; +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchLeft = matchLeftW; +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.0.0 + */ +export var foldLeft = matchLeft; +/** + * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchRightW } from 'fp-ts/Array' + * + * const f = matchRightW( + * () => 0, + * (head: string[], tail: string) => `Found ${head.length} elements folllowed by "${tail}"` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found 2 elements folllowed by "c"'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchRightW = function (onEmpty, onNonEmpty) { + return function (as) { + return isNonEmpty(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty(); + }; +}; +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its initial elements and the last element. + * + * @example + * import { matchRight } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchRight( + * () => 0, + * (head, _) => 1 + len(head) + * ); + * assert.strictEqual(len([1, 2, 3]), 3); + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchRight = matchRightW; +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.0.0 + */ +export var foldRight = matchRight; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Same as [`chain`](#chain), but passing also the index to the iterating function. + * + * @example + * import { chainWithIndex, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (index: number, x: string) => replicate(2, `${x}${index}`); + * assert.deepStrictEqual(pipe(["a", "b", "c"], chainWithIndex(f)), ["a0", "a0", "b1", "b1", "c2", "c2"]); + * + * @category sequencing + * @since 2.7.0 + */ +export var chainWithIndex = function (f) { + return function (as) { + var out = []; + for (var i = 0; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +/** + * Same as `reduce` but it carries over the intermediate steps + * + * @example + * import { scanLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.0.0 + */ +export var scanLeft = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[0] = b; + for (var i = 0; i < len; i++) { + out[i + 1] = f(out[i], as[i]); + } + return out; + }; +}; +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.0.0 + */ +export var scanRight = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[len] = b; + for (var i = len - 1; i >= 0; i--) { + out[i] = f(as[i], out[i + 1]); + } + return out; + }; +}; +/** + * Calculate the number of elements in a `Array`. + * + * @example + * import { size } from 'fp-ts/Array' + * + * assert.strictEqual(size(["a","b","c"]),3) + * + * @since 2.10.0 + */ +export var size = function (as) { return as.length; }; +/** + * Test whether an array contains a particular index + * + * @example + * import { isOutOfBound } from 'fp-ts/Array' + * + * assert.strictEqual(isOutOfBound(1,["a","b","c"]),false) + * assert.strictEqual(isOutOfBound(-1,["a","b","c"]),true) + * assert.strictEqual(isOutOfBound(3,["a","b","c"]),true) + * + * @since 2.0.0 + */ +export var isOutOfBound = NEA.isOutOfBound; +// TODO: remove non-curried overloading in v3 +/** + * This function provides a safe way to read a value at a particular index from an array. + * It returns a `none` if the index is out of bounds, and a `some` of the element if the + * index is valid. + * + * @example + * import { lookup } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2)) + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none) + * + * @since 2.0.0 + */ +export var lookup = RA.lookup; +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.0.0 + */ +export var head = RA.head; +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.0.0 + */ +export var last = RA.last; +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.0.0 + */ +export var tail = function (as) { return (isNonEmpty(as) ? _.some(NEA.tail(as)) : _.none); }; +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.0.0 + */ +export var init = function (as) { return (isNonEmpty(as) ? _.some(NEA.init(as)) : _.none); }; +/** + * Keep only a max number of elements from the start of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]); + * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +export var takeLeft = function (n) { + return function (as) { + return isOutOfBound(n, as) ? copy(as) : as.slice(0, n); + }; +}; +/** + * Keep only a max number of elements from the end of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]); + * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +export var takeRight = function (n) { + return function (as) { + return isOutOfBound(n, as) ? copy(as) : n === 0 ? [] : as.slice(-n); + }; +}; +export function takeLeftWhile(predicate) { + return function (as) { + var out = []; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + if (!predicate(a)) { + break; + } + out.push(a); + } + return out; + }; +} +var spanLeftIndex = function (as, predicate) { + var l = as.length; + var i = 0; + for (; i < l; i++) { + if (!predicate(as[i])) { + break; + } + } + return i; +}; +export function spanLeft(predicate) { + return function (as) { + var _a = splitAt(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1]; + return { init: init, rest: rest }; + }; +} +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]); + * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +export var dropLeft = function (n) { + return function (as) { + return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(n, as.length); + }; +}; +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]); + * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +export var dropRight = function (n) { + return function (as) { + return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(0, as.length - n); + }; +}; +export function dropLeftWhile(predicate) { + return function (as) { return as.slice(spanLeftIndex(as, predicate)); }; +} +/** + * `findIndex` returns an `Option` containing the first index for which a predicate holds. + * It returns `None` if no element satisfies the predicate. + * Similar to [`findFirst`](#findFirst) but returning the index instead of the element. + * + * @example + * import { findIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.0.0 + */ +export var findIndex = RA.findIndex; +export function findFirst(predicate) { + return RA.findFirst(predicate); +} +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array and + * returns the first `Some` result. Otherwise it returns `None`. + * + * @example + * import { findFirstMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some("Mary")); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +export var findFirstMap = RA.findFirstMap; +export function findLast(predicate) { + return RA.findLast(predicate); +} +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array starting from the + * end and returns the last `Some` result. Otherwise it returns `None`. + * + * @example + * import { findLastMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some("Joey")); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +export var findLastMap = RA.findLastMap; +/** + * Returns the index of the last element of the list which matches the predicate. + * It returns an `Option` containing the index or `None` if not found. + * + * @example + * import { findLastIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * @since 2.0.0 + */ +export var findLastIndex = RA.findLastIndex; +/** + * This function takes an array and makes a new array containing the same elements. + * + * @since 2.0.0 + */ +export var copy = function (as) { return as.slice(); }; +/** + * Insert an element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { insertAt } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.0.0 + */ +export var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as)); + }; +}; +/** + * Change the element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { updateAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.0.0 + */ +export var updateAt = function (i, a) { return modifyAt(i, function () { return a; }); }; +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds. + * + * @example + * import { deleteAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.0.0 + */ +export var deleteAt = function (i) { + return function (as) { + return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as)); + }; +}; +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds. + * + * @example + * import { modifyAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.0.0 + */ +export var modifyAt = function (i, f) { + return function (as) { + return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as)); + }; +}; +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.0.0 + */ +export var reverse = function (as) { return (isEmpty(as) ? [] : as.slice().reverse()); }; +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Right` elements in the same order. + * + * @example + * import { rights } from 'fp-ts/Array' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.0.0 + */ +export var rights = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Right') { + r.push(a.right); + } + } + return r; +}; +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Left` elements in the same order. + * + * @example + * import { lefts } from 'fp-ts/Array' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.0.0 + */ +export var lefts = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Left') { + r.push(a.left); + } + } + return r; +}; +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.0.0 + */ +export var sort = function (O) { + return function (as) { + return as.length <= 1 ? copy(as) : as.slice().sort(O.compare); + }; +}; +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/Array' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.0.0 + */ +export var zipWith = function (fa, fb, f) { + var fc = []; + var len = Math.min(fa.length, fb.length); + for (var i = 0; i < len; i++) { + fc[i] = f(fa[i], fb[i]); + } + return fc; +}; +export function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return zipWith(as, bs, function (a, b) { return [a, b]; }); +} +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/Array' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.0.0 + */ +export var unzip = function (as) { + var fa = []; + var fb = []; + for (var i = 0; i < as.length; i++) { + fa[i] = as[i][0]; + fb[i] = as[i][1]; + } + return [fa, fb]; +}; +/** + * Creates a new `Array`, prepending an element to every member of the input `Array`. + * + * @example + * import { prependAll } from 'fp-ts/Array' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export var prependAll = function (middle) { + var f = NEA.prependAll(middle); + return function (as) { return (isNonEmpty(as) ? f(as) : []); }; +}; +/** + * Creates a new `Array` placing an element in between members of the input `Array`. + * + * @example + * import { intersperse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export var intersperse = function (middle) { + var f = NEA.intersperse(middle); + return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); }; +}; +/** + * Creates a new `Array` rotating the input `Array` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.0.0 + */ +export var rotate = function (n) { + var f = NEA.rotate(n); + return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); }; +}; +// TODO: remove non-curried overloading in v3 +/** + * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single + * argument which returns the function to use to search for a value of type `A` in + * an `Array<A>`. + * + * @example + * import { elem } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true) + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false) + * + * @since 2.0.0 + */ +export var elem = RA.elem; +/** + * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element, + * based on a `Eq<A>`. + * + * @example + * import { uniq } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.0.0 + */ +export var uniq = function (E) { + var f = NEA.uniq(E); + return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); }; +}; +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/Array' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.0.0 + */ +export var sortBy = function (ords) { + var f = NEA.sortBy(ords); + return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); }; +}; +/** + * A useful recursion pattern for processing an array to produce a new array, often used for "chopping" up the input + * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a + * value and the rest of the array. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as A from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => { + * return A.chop(as => { + * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.0.0 + */ +export var chop = function (f) { + var g = NEA.chop(f); + return function (as) { return (isNonEmpty(as) ? g(as) : []); }; +}; +/** + * Splits an `Array` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/Array' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.0.0 + */ +export var splitAt = function (n) { + return function (as) { + return n >= 1 && isNonEmpty(as) ? NEA.splitAt(n)(as) : isEmpty(as) ? [copy(as), []] : [[], copy(as)]; + }; +}; +/** + * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `xs`. + * + * @example + * import { chunksOf } from 'fp-ts/Array' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.0.0 + */ +export var chunksOf = function (n) { + var f = NEA.chunksOf(n); + return function (as) { return (isNonEmpty(as) ? f(as) : []); }; +}; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromOptionK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return fromOption(f.apply(void 0, a)); + }; +}; +export function comprehension(input, f, g) { + if (g === void 0) { g = function () { return true; }; } + var go = function (scope, input) { + return isNonEmpty(input) + ? flatMap(NEA.head(input), function (a) { return go(pipe(scope, append(a)), NEA.tail(input)); }) + : g.apply(void 0, scope) ? [f.apply(void 0, scope)] + : []; + }; + return go([], input); +} +/** + * @since 2.11.0 + */ +export var concatW = function (second) { + return function (first) { + return isEmpty(first) ? copy(second) : isEmpty(second) ? copy(first) : first.concat(second); + }; +}; +/** + * @since 2.11.0 + */ +export var concat = concatW; +export function union(E) { + var unionE = NEA.union(E); + return function (first, second) { + if (second === undefined) { + var unionE_1 = union(E); + return function (second) { return unionE_1(second, first); }; + } + return isNonEmpty(first) && isNonEmpty(second) + ? unionE(second)(first) + : isNonEmpty(first) + ? copy(first) + : copy(second); + }; +} +export function intersection(E) { + var elemE = elem(E); + return function (xs, ys) { + if (ys === undefined) { + var intersectionE_1 = intersection(E); + return function (ys) { return intersectionE_1(ys, xs); }; + } + return xs.filter(function (a) { return elemE(a, ys); }); + }; +} +export function difference(E) { + var elemE = elem(E); + return function (xs, ys) { + if (ys === undefined) { + var differenceE_1 = difference(E); + return function (ys) { return differenceE_1(ys, xs); }; + } + return xs.filter(function (a) { return !elemE(a, ys); }); + }; +} +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); }; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return pipe(fa, partition(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); }; +/* istanbul ignore next */ +var _partitionWithIndex = function (fa, predicateWithIndex) { return pipe(fa, partitionWithIndex(predicateWithIndex)); }; +/* istanbul ignore next */ +var _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _reduceWithIndex = function (fa, b, f) { + return pipe(fa, reduceWithIndex(b, f)); +}; +/* istanbul ignore next */ +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = foldMapWithIndex(M); + return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRightWithIndex = function (fa, b, f) { + return pipe(fa, reduceRightWithIndex(b, f)); +}; +/* istanbul ignore next */ +var _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); }; +/* istanbul ignore next */ +var _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); }; +/* istanbul ignore next */ +var _extend = function (fa, f) { return pipe(fa, extend(f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); }; +}; +var _chainRecDepthFirst = RA._chainRecDepthFirst; +var _chainRecBreadthFirst = RA._chainRecBreadthFirst; +/** + * Given an element of the base type, `of` builds an `Array` containing just that + * element of the base type (this is useful for building a `Monad`). + * + * @example + * import { of } from 'fp-ts/Array' + * + * assert.deepStrictEqual(of("a"), ["a"]); + * + * @category constructors + * @since 2.0.0 + */ +export var of = NEA.of; +/** + * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid) + * + * @since 2.7.0 + */ +export var zero = function () { return []; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`. + * In practice it applies the base function to each element of the array and collects the + * results in a new array. + * + * @example + * import { map } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => n * 2; + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]); + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; }; +/** + * @example + * import { ap, map, of } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * // a curried function with 3 input parameteres + * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2; + * + * // let's use `ap` to iterate `f` over an array for each input parameter + * assert.deepStrictEqual(pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])), [ + * "a1😀", "a1😫", "a1😎", + * "a2😀", "a2😫", "a2😎", + * "b1😀", "b1😫", "b1😎", + * "b2😀", "b2😫", "b2😎", + * ]); + * + * // given Array implements the Applicative interface with the `of` method, + * // we can write exactly the same thing in a more symmetric way + * // using `of` on `f` and `ap` on each array in input + * assert.deepStrictEqual( + * pipe(of(f), ap(["a", "b"]), ap([1, 2]), ap(["😀", "😫", "😎"])), + * pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])) + * ); + * + * @since 2.0.0 + */ +export var ap = function (fa) { + return flatMap(function (f) { return pipe(fa, map(f)); }); +}; +/** + * Composes computations in sequence, using the return value of one computation to + * determine the next computation. + * + * In other words it takes a function `f` that produces an array from a single element of + * the base type `A` and returns a new function which applies `f` to each element of the + * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the + * results into a single array (like [`flatten`](#flatten)). + * + * @example + * import { flatMap, map, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => replicate(n, `${n}`); + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [["1"], ["2", "2"], ["3", "3", "3"]]); + * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), ["1", "2", "2", "3", "3", "3"]); + * + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); })); +}); +/** + * Takes an array of arrays of `A` and flattens them into an array of `A` + * by concatenating the elements of each array in order. + * + * @example + * import { flatten } from 'fp-ts/Array' + * + * assert.deepStrictEqual(flatten([["a"], ["b", "c"], ["d", "e", "f"]]), ["a", "b", "c", "d", "e", "f"]); + * + * @category sequencing + * @since 2.5.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * Same as [`map`](#map), but the iterating function takes both the index and the value + * of the element. + * + * @example + * import { mapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (i: number, s: string) => `${s} - ${i}`; + * assert.deepStrictEqual(pipe(["a", "b", "c"], mapWithIndex(f)), ["a - 0", "b - 1", "c - 2"]); + * + * @category mapping + * @since 2.0.0 + */ +export var mapWithIndex = function (f) { return function (fa) { + return fa.map(function (a, i) { return f(i, a); }); +}; }; +/** + * Maps an array with an iterating function that takes the index and the value of + * each element and returns an `Option`. It keeps only the `Some` values discarding + * the `None`s. + * + * Same as [`filterMap`](#filterMap), but with an iterating function which takes also + * the index as input. + * + * @example + * import { filterMapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none); + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMapWithIndex(f)), ["NO", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +export var filterMapWithIndex = function (f) { + return function (fa) { + var out = []; + for (var i = 0; i < fa.length; i++) { + var optionB = f(i, fa[i]); + if (_.isSome(optionB)) { + out.push(optionB.value); + } + } + return out; + }; +}; +/** + * Maps an array with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none; + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMap(f)), ["A", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +export var filterMap = function (f) { + return filterMapWithIndex(function (_, a) { return f(a); }); +}; +/** + * Compact an array of `Option`s discarding the `None` values and + * keeping the `Some` values. It returns a new array containing the values of + * the `Some` options. + * + * @example + * import { compact } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * + * assert.deepStrictEqual(compact([option.some("a"), option.none, option.some("b")]), ["a", "b"]); + * + * @category filtering + * @since 2.0.0 + */ +export var compact = /*#__PURE__*/ filterMap(identity); +/** + * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays: + * one containing all the left values and one containing all the right values. + * + * @example + * import { separate } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * + * assert.deepStrictEqual(separate([either.right("r1"), either.left("l1"), either.right("r2")]), { + * left: ["l1"], + * right: ["r1", "r2"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var separate = function (fa) { + var left = []; + var right = []; + for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) { + var e = fa_1[_i]; + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return separated(left, right); +}; +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `filter` creates a new `Array` containing the elements of the original + * `Array` for which the iterating function is `true`. + * + * @example + * import { filter } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(filter(isString)(["a", 1, {}, "b", 5]), ["a", "b"]); + * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]); + * + * @category filtering + * @since 2.0.0 + */ +export var filter = function (predicate) { + return function (as) { + return as.filter(predicate); + }; +}; +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `partition` creates two new `Array`s: `right` containing the elements of the original + * `Array` for which the iterating function is `true`, `left` containing the elements + * for which it is false. + * + * @example + * import { partition } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(partition(isString)(["a", 1, {}, "b", 5]), { left: [1, {}, 5], right: ["a", "b"] }); + * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] }); + * + * @category filtering + * @since 2.0.0 + */ +export var partition = function (predicate) { + return partitionWithIndex(function (_, a) { return predicate(a); }); +}; +/** + * Same as [`partition`](#partition), but passing also the index to the iterating function. + * + * @example + * import { partitionWithIndex } from 'fp-ts/Array' + * + * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), { + * left: [-2, 7], + * right: [5, 6], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var partitionWithIndex = function (predicateWithIndex) { + return function (as) { + var left = []; + var right = []; + for (var i = 0; i < as.length; i++) { + var b = as[i]; + if (predicateWithIndex(i, b)) { + right.push(b); + } + else { + left.push(b); + } + } + return separated(left, right); + }; +}; +/** + * Given an iterating function that returns an `Either`, + * `partitionMap` applies the iterating function to each element and it creates two `Array`s: + * `right` containing the values of `Right` results, `left` containing the values of `Left` results. + * + * @example + * import { partitionMap } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfString = <B>(x: B): Either<B, string> => + * typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMap(upperIfString)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7], + * right: [ 'HELLO', 'WORLD' ], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var partitionMap = function (f) { return partitionMapWithIndex(function (_, a) { return f(a); }); }; +/** + * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function. + * + * @example + * import { partitionMapWithIndex } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> => + * index < 3 && typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7, "world"], + * right: ["HELLO"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var partitionMapWithIndex = function (f) { + return function (fa) { + var left = []; + var right = []; + for (var i = 0; i < fa.length; i++) { + var e = f(i, fa[i]); + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return separated(left, right); + }; +}; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function (that) { + return function (fa) { + return fa.concat(that()); + }; +}; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Array` concatenates the inputs into a single array. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.0.0 + */ +export var alt = altW; +/** + * Same as [`filter`](#filter), but passing also the index to the iterating function. + * + * @example + * import { filterWithIndex } from 'fp-ts/Array'; + * + * const f = (index: number, x: number) => x > 0 && index <= 2; + * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]); + * + * @category filtering + * @since 2.0.0 + */ +export var filterWithIndex = function (predicateWithIndex) { + return function (as) { + return as.filter(function (b, i) { return predicateWithIndex(i, b); }); + }; +}; +/** + * Given an iterating function that takes `Array<A>` as input, `extend` returns + * an array containing the results of the iterating function applied to the whole input + * `Array`, then to the input `Array` without the first element, then to the input + * `Array` without the first two elements, etc. + * + * @example + * import { extend } from 'fp-ts/Array' + * + * const f = (a: string[]) => a.join(","); + * assert.deepStrictEqual(extend(f)(["a", "b", "c"]), ["a,b,c", "b,c", "c"]); + * + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { + return wa.map(function (_, i) { return f(wa.slice(i)); }); +}; }; +/** + * `duplicate` returns an array containing the whole input `Array`, + * then to the input `Array` dropping the first element, then to the input + * `Array` dropping the first two elements, etc. + * + * @example + * import { duplicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(duplicate(["a", "b", "c"]), [["a", "b", "c"], ["b", "c"], ["c"]]); + * + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * Map and fold an `Array`. + * Map the `Array` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (s: string) => s.toUpperCase() + * assert.deepStrictEqual(foldMap(monoid)(f)(["a", "b", "c"]), "ABC"); + * + * @category folding + * @since 2.0.0 + */ +export var foldMap = RA.foldMap; +/** + * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function. + * + * @example + * import { foldMapWithIndex } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})` + * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)(["a", "b", "c"]), "A(0)B(1)C(2)"); + * + * @category folding + * @since 2.0.0 + */ +export var foldMapWithIndex = RA.foldMapWithIndex; +/** + * Reduces an `Array`. + * + * `reduce` executes the supplied iterating function on each element of the array, + * in order, passing in the element and the return value from the calculation on the preceding element. + * + * The first time that the iterating function is called there is no "return value of the + * previous calculation", the initial value is used in its place. + * + * @example + * import { reduce } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3); + * + * @category folding + * @since 2.0.0 + */ +export var reduce = RA.reduce; +/** + * Same as [`reduce`](#reduce) but passing also the index to the iterating function. + * + * @example + * import { reduceWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, acc: string, cur: unknown) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceWithIndex("", f)([2, "a", "b", null]), "A1B2"); + * + * @category folding + * @since 2.0.0 + */ +export var reduceWithIndex = RA.reduceWithIndex; +/** + * Same as [`reduce`](#reduce) but applied from the end to the start. + * + * *Note*: the iterating function in this case takes the accumulator as the last argument. + * + * @example + * import { reduceRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduceRight("", (cur: string, acc: string) => acc + cur)(["a", "b", "c"]), "cba"); + * + * @category folding + * @since 2.0.0 + */ +export var reduceRight = RA.reduceRight; +/** + * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function. + * + * @example + * import { reduceRightWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, cur: unknown, acc: string) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceRightWithIndex("", f)([2, "a", "b", null]), "B2A1"); + * + * @category folding + * @since 2.0.0 + */ +export var reduceRightWithIndex = RA.reduceRightWithIndex; +/** + * Given an iterating function that returns a `HKT` (higher kinded type), `traverse` + * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s + * the results using the provided `Applicative`. + * + * E.g. suppose you have an `Array` and you want to format each element with a function + * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse` + * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>` + * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results + * are `Error`s. + * + * @example + * import { traverse } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (x: unknown) => + * typeof x === "string" ? right(x.toUpperCase()) : left(new Error("not a string")); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", "b"]), right(["A", "B"])); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +/** + * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and, + * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`. + * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`. + * + * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an + * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an + * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`, + * it needs an `Applicative` for `Option`. + * + * @example + * import { sequence } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * assert.deepStrictEqual(sequence(Applicative)([right("a"), right("b")]), right(["a", "b"])); + * assert.deepStrictEqual( + * sequence(Applicative)([right("a"), left(new Error("not a string"))]), + * left(new Error("not a string")) + * ); + * + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (ta) { + return _reduce(ta, F.of(zero()), function (fas, fa) { + return F.ap(F.map(fas, function (as) { return function (a) { return pipe(as, append(a)); }; }), fa); + }); + }; +}; +/** + * Same as [`traverse`](#traverse) but passing also the index to the iterating function. + * + * @example + * import { traverseWithIndex } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (index:number, x:unknown) => + * typeof x === "string" ? right(x.toUpperCase() + index) : left(new Error("not a string")); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", "b"]), right(["A0", "B1"])); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category sequencing + * @since 2.6.3 + */ +export var traverseWithIndex = function (F) { + return function (f) { + return reduceWithIndex(F.of(zero()), function (i, fbs, a) { + return F.ap(F.map(fbs, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, a)); + }); + }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wither = function (F) { + var _witherF = _wither(F); + return function (f) { return function (fa) { return _witherF(fa, f); }; }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wilt = function (F) { + var _wiltF = _wilt(F); + return function (f) { return function (fa) { return _wiltF(fa, f); }; }; +}; +/** + * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome + * value and an input for the following iteration. + * `unfold` applies `f` to the initial value `b` and then recursively to the second + * element of the tuple contained in the returned `option` of the previous + * calculation until `f` returns `Option.none`. + * + * @example + * import { unfold } from 'fp-ts/Array' + * import { option } from 'fp-ts' + * + * const f = (n: number) => { + * if (n <= 0) return option.none; + * const returnValue = n * 2; + * const inputForNextRound = n - 1; + * return option.some([returnValue, inputForNextRound] as const); + * }; + * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]); + * + * @since 2.6.6 + */ +export var unfold = function (b, f) { + var out = []; + var bb = b; + // eslint-disable-next-line no-constant-condition + while (true) { + var mt = f(bb); + if (_.isSome(mt)) { + var _a = mt.value, a = _a[0], b_1 = _a[1]; + out.push(a); + bb = b_1; + } + else { + break; + } + } + return out; +}; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Array'; +/** + * `getShow` makes a `Show` for an `Array<A>` from a `Show` for + * an `A`. + * + * @example + * import { getShow } from 'fp-ts/Array' + * + * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) }; + * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), "[(2), (1), 0, 1]"); + * + * @category instances + * @since 2.0.0 + */ +export var getShow = RA.getShow; +/** + * Get a `Semigroup` based on the concatenation of `Array`s. + * See also [`getMonoid`](#getMonoid). + * + * @example + * import { getSemigroup } from 'fp-ts/Array' + * + * const S = getSemigroup<number>(); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]); + * + * @category instances + * @since 2.10.0 + */ +export var getSemigroup = function () { return ({ + concat: function (first, second) { return first.concat(second); } +}); }; +/** + * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s. + * + * @example + * import { getMonoid } from 'fp-ts/Array' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.0.0 + */ +export var getMonoid = function () { return ({ + concat: getSemigroup().concat, + empty: [] +}); }; +/** + * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/Array' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.0.0 + */ +export var getEq = RA.getEq; +/** + * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/Array' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * @category instances + * @since 2.0.0 + */ +export var getOrd = RA.getOrd; +/** + * Get a `Semigroup` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * See also [`getUnionMonoid`](#getUnionMonoid). + * + * @example + * import { getUnionSemigroup } from 'fp-ts/Array'; + * import { Eq } from 'fp-ts/number'; + * + * const S = getUnionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]); + * + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E) { + var unionE = union(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +/** + * Get a `Monoid` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * + * @example + * import { getUnionMonoid } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const M = getUnionMonoid<number>(Eq); + * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(M.empty,[]); + * + * @category instances + * @since 2.11.0 + */ +export var getUnionMonoid = function (E) { return ({ + concat: getUnionSemigroup(E).concat, + empty: [] +}); }; +/** + * Get a `Semigroup` based on the intersection of the elements of `Array`s. + * Only elements present in the two arrays which are equal according to the + * provided `Eq` are included in the result. + * + * @example + * import { getIntersectionSemigroup } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getIntersectionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]); + * + * @category instances + * @since 2.11.0 + */ +export var getIntersectionSemigroup = function (E) { + var intersectionE = intersection(E); + return { + concat: function (first, second) { return intersectionE(second)(first); } + }; +}; +/** + * Get a `Magma` for `Array` where the `concat` function is the differnce between + * the first and the second array, i.e. the result contains all the elements of the + * first array for which their is no equal element in the second array according + * to the `Eq` provided. + * + * + * @example + * import { getDifferenceMagma } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getDifferenceMagma<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]); + * + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function (E) { + var differenceE = difference(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Given an input an `Array` of functions, `flap` returns an `Array` containing + * the results of applying each function to the given input. + * + * @example + * import { flap } from 'fp-ts/Array' + * + * const funs = [ + * (n: number) => `Double: ${n * 2}`, + * (n: number) => `Triple: ${n * 3}`, + * (n: number) => `Square: ${n * n}`, + * ]; + * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']); + * + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FunctorWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.0.0 + */ +export var chainFirst = +/*#__PURE__*/ chainFirst_(Chain); +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Unfoldable = { + URI: URI, + unfold: unfold +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.11.0 + */ +export var Zero = { + URI: URI, + zero: zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +export var guard = /*#__PURE__*/ guard_(Zero, Pointed); +/** + * @category instances + * @since 2.7.0 + */ +export var Alternative = { + URI: URI, + map: _map, + ap: _ap, + of: of, + alt: _alt, + zero: zero +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Extend = { + URI: URI, + map: _map, + extend: _extend +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FilterableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FoldableWithIndex = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +export var TraversableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverse: _traverse, + sequence: sequence, + traverseWithIndex: _traverseWithIndex +}; +var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable); +var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable); +/** + * @category instances + * @since 2.7.0 + */ +export var Witherable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + wither: _wither, + wilt: _wilt +}; +/** + * @category sequencing + * @since 2.11.0 + */ +export var chainRecDepthFirst = RA.chainRecDepthFirst; +/** + * @category instances + * @since 2.11.0 + */ +export var ChainRecDepthFirst = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRecDepthFirst +}; +/** + * @category sequencing + * @since 2.11.0 + */ +export var chainRecBreadthFirst = RA.chainRecBreadthFirst; +/** + * @category instances + * @since 2.11.0 + */ +export var ChainRecBreadthFirst = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRecBreadthFirst +}; +/** + * Filter values inside a context. + * + * @since 2.11.0 + */ +export var filterE = /*#__PURE__*/ filterE_(Witherable); +/** + * @category instances + * @since 2.11.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +// ------------------------------------------------------------------------------------- +// unsafe +// ------------------------------------------------------------------------------------- +/** + * @category unsafe + * @since 2.0.0 + */ +export var unsafeInsertAt = NEA.unsafeInsertAt; +/** + * @category unsafe + * @since 2.0.0 + */ +export var unsafeUpdateAt = function (i, a, as) { + return isNonEmpty(as) ? NEA.unsafeUpdateAt(i, a, as) : []; +}; +/** + * @category unsafe + * @since 2.0.0 + */ +export var unsafeDeleteAt = function (i, as) { + var xs = as.slice(); + xs.splice(i, 1); + return xs; +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * `every` tells if the provided predicate holds true for every element in the `Array`. + * + * @example + * import { every } from 'fp-ts/Array' + * + * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false); + * + * @since 2.9.0 + */ +export var every = RA.every; +/** + * `some` tells if the provided predicate holds true at least for one element in the `Array`. + * + * @example + * import { some } from 'fp-ts/Array' + * + * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false); + * + * @since 2.9.0 + */ +export var some = function (predicate) { + return function (as) { + return as.some(predicate); + }; +}; +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +export var exists = some; +/** + * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export var intercalate = RA.intercalate; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ bind_(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `NonEmptyArray` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var range = NEA.range; +/** + * Use a new `[]` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var empty = []; +/** + * Use `prepend` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var cons = NEA.cons; +/** + * Use `append` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var snoc = NEA.snoc; +/** + * Use `prependAll` instead + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export var prependToAll = prependAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array` + * (where `A` is from `import A from 'fp-ts/Array'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var array = { + URI: URI, + compact: compact, + separate: separate, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + alt: _alt, + zero: zero, + unfold: unfold, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + extend: _extend, + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/es6/Bifunctor.d.ts b/node_modules/fp-ts/es6/Bifunctor.d.ts new file mode 100644 index 0000000..286456c --- /dev/null +++ b/node_modules/fp-ts/es6/Bifunctor.d.ts @@ -0,0 +1,60 @@ +/** + * @since 2.0.0 + */ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor<F> { + readonly URI: F + readonly bimap: <E, A, G, B>(fea: HKT2<F, E, A>, f: (e: E) => G, g: (a: A) => B) => HKT2<F, G, B> + readonly mapLeft: <E, A, G>(fea: HKT2<F, E, A>, f: (e: E) => G) => HKT2<F, G, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor2<F extends URIS2> { + readonly URI: F + readonly bimap: <E, A, G, B>(fea: Kind2<F, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind2<F, G, B> + readonly mapLeft: <E, A, G>(fea: Kind2<F, E, A>, f: (e: E) => G) => Kind2<F, G, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly bimap: <A, G, B>(fea: Kind2<F, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind2<F, G, B> + readonly mapLeft: <A, M>(fea: Kind2<F, E, A>, f: (e: E) => M) => Kind2<F, M, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor3<F extends URIS3> { + readonly URI: F + readonly bimap: <R, E, A, G, B>(fea: Kind3<F, R, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind3<F, R, G, B> + readonly mapLeft: <R, E, A, G>(fea: Kind3<F, R, E, A>, f: (e: E) => G) => Kind3<F, R, G, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Bifunctor3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly bimap: <R, A, G, B>(fea: Kind3<F, R, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind3<F, R, G, B> + readonly mapLeft: <R, A, G>(fea: Kind3<F, R, E, A>, f: (e: E) => G) => Kind3<F, R, G, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor4<F extends URIS4> { + readonly URI: F + readonly bimap: <S, R, E, A, G, B>(fea: Kind4<F, S, R, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind4<F, S, R, G, B> + readonly mapLeft: <S, R, E, A, G>(fea: Kind4<F, S, R, E, A>, f: (e: E) => G) => Kind4<F, S, R, G, A> +} diff --git a/node_modules/fp-ts/es6/Bifunctor.js b/node_modules/fp-ts/es6/Bifunctor.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Bifunctor.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/BooleanAlgebra.d.ts b/node_modules/fp-ts/es6/BooleanAlgebra.d.ts new file mode 100644 index 0000000..ba9757e --- /dev/null +++ b/node_modules/fp-ts/es6/BooleanAlgebra.d.ts @@ -0,0 +1,43 @@ +import { HeytingAlgebra } from './HeytingAlgebra' +/** + * @category model + * @since 2.0.0 + */ +export interface BooleanAlgebra<A> extends HeytingAlgebra<A> {} +/** + * Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet. + * + * @since 2.10.0 + */ +export declare const reverse: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A> +/** + * @category instances + * @since 2.0.0 + */ +export declare const booleanAlgebraVoid: BooleanAlgebra<void> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualBooleanAlgebra: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A> +/** + * Use [`BooleanAlgebra`](./boolean.ts.html#booleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const booleanAlgebraBoolean: BooleanAlgebra<boolean> +/** + * Use [`getBooleanAlgebra`](./function.ts.html#getbooleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionBooleanAlgebra: <B>( + B: BooleanAlgebra<B> +) => <A = never>() => BooleanAlgebra<(a: A) => B> diff --git a/node_modules/fp-ts/es6/BooleanAlgebra.js b/node_modules/fp-ts/es6/BooleanAlgebra.js new file mode 100644 index 0000000..472fb4b --- /dev/null +++ b/node_modules/fp-ts/es6/BooleanAlgebra.js @@ -0,0 +1,78 @@ +/** + * Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true + * (equivalently, double-negation is true). + * + * Instances should satisfy the following laws in addition to the `HeytingAlgebra` laws: + * + * - Excluded middle: `a ∨ ¬a <-> 1` + * + * Boolean algebras generalize classical logic: one is equivalent to "true" and zero is equivalent to "false". + * + * @since 2.0.0 + */ +import { getBooleanAlgebra } from './function'; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet. + * + * @since 2.10.0 + */ +export var reverse = function (B) { return ({ + meet: function (x, y) { return B.join(x, y); }, + join: function (x, y) { return B.meet(x, y); }, + zero: B.one, + one: B.zero, + implies: function (x, y) { return B.join(B.not(x), y); }, + not: B.not +}); }; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.0.0 + */ +export var booleanAlgebraVoid = { + meet: function () { return undefined; }, + join: function () { return undefined; }, + zero: undefined, + one: undefined, + implies: function () { return undefined; }, + not: function () { return undefined; } +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getDualBooleanAlgebra = reverse; +/** + * Use [`BooleanAlgebra`](./boolean.ts.html#booleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var booleanAlgebraBoolean = { + meet: function (x, y) { return x && y; }, + join: function (x, y) { return x || y; }, + zero: false, + one: true, + implies: function (x, y) { return !x || y; }, + not: function (x) { return !x; } +}; +/** + * Use [`getBooleanAlgebra`](./function.ts.html#getbooleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFunctionBooleanAlgebra = getBooleanAlgebra; diff --git a/node_modules/fp-ts/es6/Bounded.d.ts b/node_modules/fp-ts/es6/Bounded.d.ts new file mode 100644 index 0000000..b325064 --- /dev/null +++ b/node_modules/fp-ts/es6/Bounded.d.ts @@ -0,0 +1,41 @@ +/** + * The `Bounded` type class represents totally ordered types that have an upper and lower boundary. + * + * Instances should satisfy the following law in addition to the `Ord` laws: + * + * - Bounded: `bottom <= a <= top` + * + * @since 2.0.0 + */ +import * as O from './Ord' +import Ord = O.Ord +/** + * @category model + * @since 2.0.0 + */ +export interface Bounded<A> extends Ord<A> { + readonly top: A + readonly bottom: A +} +/** + * Clamp a value between bottom and top values. + * + * @category utils + * @since 2.12.0 + */ +export declare const clamp: <A>(B: Bounded<A>) => (a: A) => A +/** + * Reverses the Ord of a bound and swaps top and bottom values. + * + * @category utils + * @since 2.12.0 + */ +export declare const reverse: <A>(B: Bounded<A>) => Bounded<A> +/** + * Use [`Bounded`](./number.ts.html#bounded) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const boundedNumber: Bounded<number> diff --git a/node_modules/fp-ts/es6/Bounded.js b/node_modules/fp-ts/es6/Bounded.js new file mode 100644 index 0000000..383bf03 --- /dev/null +++ b/node_modules/fp-ts/es6/Bounded.js @@ -0,0 +1,51 @@ +/** + * The `Bounded` type class represents totally ordered types that have an upper and lower boundary. + * + * Instances should satisfy the following law in addition to the `Ord` laws: + * + * - Bounded: `bottom <= a <= top` + * + * @since 2.0.0 + */ +import * as O from './Ord'; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Clamp a value between bottom and top values. + * + * @category utils + * @since 2.12.0 + */ +export var clamp = function (B) { return O.clamp(B)(B.bottom, B.top); }; +/** + * Reverses the Ord of a bound and swaps top and bottom values. + * + * @category utils + * @since 2.12.0 + */ +export var reverse = function (B) { + var R = O.reverse(B); + return { + equals: R.equals, + compare: R.compare, + top: B.bottom, + bottom: B.top + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Bounded`](./number.ts.html#bounded) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var boundedNumber = { + equals: O.ordNumber.equals, + compare: O.ordNumber.compare, + top: Infinity, + bottom: -Infinity +}; diff --git a/node_modules/fp-ts/es6/BoundedDistributiveLattice.d.ts b/node_modules/fp-ts/es6/BoundedDistributiveLattice.d.ts new file mode 100644 index 0000000..471b1df --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedDistributiveLattice.d.ts @@ -0,0 +1,20 @@ +/** + * A `BoundedDistributiveLattice` is a lattice that is both bounded and distributive + * + * @since 2.0.0 + */ +import { BoundedLattice } from './BoundedLattice' +import { DistributiveLattice } from './DistributiveLattice' +import { Ord } from './Ord' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedDistributiveLattice<A> extends BoundedLattice<A>, DistributiveLattice<A> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function getMinMaxBoundedDistributiveLattice<A>( + O: Ord<A> +): (min: A, max: A) => BoundedDistributiveLattice<A> diff --git a/node_modules/fp-ts/es6/BoundedDistributiveLattice.js b/node_modules/fp-ts/es6/BoundedDistributiveLattice.js new file mode 100644 index 0000000..b18ba06 --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedDistributiveLattice.js @@ -0,0 +1,17 @@ +import { getMinMaxDistributiveLattice } from './DistributiveLattice'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export function getMinMaxBoundedDistributiveLattice(O) { + var L = getMinMaxDistributiveLattice(O); + return function (min, max) { return ({ + join: L.join, + meet: L.meet, + zero: min, + one: max + }); }; +} diff --git a/node_modules/fp-ts/es6/BoundedJoinSemilattice.d.ts b/node_modules/fp-ts/es6/BoundedJoinSemilattice.d.ts new file mode 100644 index 0000000..133304a --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedJoinSemilattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `BoundedJoinSemilattice` must satisfy the following laws in addition to `JoinSemilattice` laws: + * + * - `a ∨ 0 <-> a` + * + * @since 2.0.0 + */ +import { JoinSemilattice } from './JoinSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedJoinSemilattice<A> extends JoinSemilattice<A> { + readonly zero: A +} diff --git a/node_modules/fp-ts/es6/BoundedJoinSemilattice.js b/node_modules/fp-ts/es6/BoundedJoinSemilattice.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedJoinSemilattice.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/BoundedLattice.d.ts b/node_modules/fp-ts/es6/BoundedLattice.d.ts new file mode 100644 index 0000000..6742733 --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedLattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `BoundedLattice` must satisfy the following in addition to `BoundedMeetSemilattice` and `BoundedJoinSemilattice` laws: + * + * - Absorption law for meet: `a ∧ (a ∨ b) <-> a` + * - Absorption law for join: `a ∨ (a ∧ b) <-> a` + * + * @since 2.0.0 + */ +import { BoundedJoinSemilattice } from './BoundedJoinSemilattice' +import { BoundedMeetSemilattice } from './BoundedMeetSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedLattice<A> extends BoundedJoinSemilattice<A>, BoundedMeetSemilattice<A> {} diff --git a/node_modules/fp-ts/es6/BoundedLattice.js b/node_modules/fp-ts/es6/BoundedLattice.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedLattice.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/BoundedMeetSemilattice.d.ts b/node_modules/fp-ts/es6/BoundedMeetSemilattice.d.ts new file mode 100644 index 0000000..38f6869 --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedMeetSemilattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `BoundedMeetSemilattice` must satisfy the following laws in addition to `MeetSemilattice` laws: + * + * - `a ∧ 1 <-> a` + * + * @since 2.0.0 + */ +import { MeetSemilattice } from './MeetSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedMeetSemilattice<A> extends MeetSemilattice<A> { + readonly one: A +} diff --git a/node_modules/fp-ts/es6/BoundedMeetSemilattice.js b/node_modules/fp-ts/es6/BoundedMeetSemilattice.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/BoundedMeetSemilattice.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Category.d.ts b/node_modules/fp-ts/es6/Category.d.ts new file mode 100644 index 0000000..9dd204f --- /dev/null +++ b/node_modules/fp-ts/es6/Category.d.ts @@ -0,0 +1,33 @@ +/** + * @since 2.0.0 + */ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { Semigroupoid, Semigroupoid2, Semigroupoid3, Semigroupoid4 } from './Semigroupoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Category<F> extends Semigroupoid<F> { + readonly id: <A>() => HKT2<F, A, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Category2<F extends URIS2> extends Semigroupoid2<F> { + readonly id: <A>() => Kind2<F, A, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Category3<F extends URIS3> extends Semigroupoid3<F> { + readonly id: <R, A>() => Kind3<F, R, A, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Category4<F extends URIS4> extends Semigroupoid4<F> { + readonly id: <S, R, A>() => Kind4<F, S, R, A, A> +} diff --git a/node_modules/fp-ts/es6/Category.js b/node_modules/fp-ts/es6/Category.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Category.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Chain.d.ts b/node_modules/fp-ts/es6/Chain.d.ts new file mode 100644 index 0000000..bfd98ba --- /dev/null +++ b/node_modules/fp-ts/es6/Chain.d.ts @@ -0,0 +1,172 @@ +/** + * The `Chain` type class extends the `Apply` type class with a `chain` operation which composes computations in + * sequence, using the return value of one computation to determine the next computation. + * + * Instances must satisfy the following law in addition to the `Apply` laws: + * + * 1. Associativity: `F.chain(F.chain(fa, afb), bfc) <-> F.chain(fa, a => F.chain(afb(a), bfc))` + * + * Note. `Apply`'s `ap` can be derived: `(fab, fa) => F.chain(fab, f => F.map(fa, f))` + * + * @since 2.0.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Chain<F> extends Apply<F> { + readonly chain: <A, B>(fa: HKT<F, A>, f: (a: A) => HKT<F, B>) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain1<F extends URIS> extends Apply1<F> { + readonly chain: <A, B>(fa: Kind<F, A>, f: (a: A) => Kind<F, B>) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain2<F extends URIS2> extends Apply2<F> { + readonly chain: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => Kind2<F, E, B>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain2C<F extends URIS2, E> extends Apply2C<F, E> { + readonly chain: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => Kind2<F, E, B>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain3<F extends URIS3> extends Apply3<F> { + readonly chain: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Kind3<F, R, E, B>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Chain3C<F extends URIS3, E> extends Apply3C<F, E> { + readonly chain: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Kind3<F, R, E, B>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain4<F extends URIS4> extends Apply4<F> { + readonly chain: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => Kind4<F, S, R, E, B>) => Kind4<F, S, R, E, B> +} +/** + * @since 2.10.0 + */ +export declare function chainFirst<M extends URIS4>( + M: Chain4<M> +): <A, S, R, E, _>(f: (a: A) => Kind4<M, S, R, E, _>) => (first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirst<M extends URIS3>( + M: Chain3<M> +): <A, R, E, _>(f: (a: A) => Kind3<M, R, E, _>) => (first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirst<M extends URIS3, E>( + M: Chain3C<M, E> +): <A, R, _>(f: (a: A) => Kind3<M, R, E, _>) => (first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirst<M extends URIS2>( + M: Chain2<M> +): <A, E, _>(f: (a: A) => Kind2<M, E, _>) => (first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirst<M extends URIS2, E>( + M: Chain2C<M, E> +): <A, _>(f: (a: A) => Kind2<M, E, _>) => (first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirst<M extends URIS>( + M: Chain1<M> +): <A, _>(f: (a: A) => Kind<M, _>) => (first: Kind<M, A>) => Kind<M, A> +export declare function chainFirst<M>(M: Chain<M>): <A, _>(f: (a: A) => HKT<M, _>) => (first: HKT<M, A>) => HKT<M, A> +/** + * @since 2.10.0 + */ +export declare function bind<M extends URIS4>( + M: Chain4<M> +): <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind4<M, S, R, E, B> +) => (ma: Kind4<M, S, R, E, A>) => Kind4< + M, + S, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS3>( + M: Chain3<M> +): <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, A>) => Kind3< + M, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS3, E>( + M: Chain3C<M, E> +): <N extends string, A, R, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, A>) => Kind3< + M, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS2>( + M: Chain2<M> +): <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, A>) => Kind2< + M, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS2, E>( + M: Chain2C<M, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, A>) => Kind2< + M, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS>( + M: Chain1<M> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind<M, B> +) => (ma: Kind<M, A>) => Kind< + M, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M>(M: Chain<M>): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => HKT<M, B> +) => (ma: HKT<M, A>) => HKT< + M, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> diff --git a/node_modules/fp-ts/es6/Chain.js b/node_modules/fp-ts/es6/Chain.js new file mode 100644 index 0000000..f9d47a2 --- /dev/null +++ b/node_modules/fp-ts/es6/Chain.js @@ -0,0 +1,14 @@ +export function chainFirst(M) { + var tapM = tap(M); + return function (f) { return function (first) { return tapM(first, f); }; }; +} +/** @internal */ +export function tap(M) { + return function (first, f) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); }; +} +export function bind(M) { + return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) { + var _a; + return Object.assign({}, a, (_a = {}, _a[name] = b, _a)); + }); }); }; }; +} diff --git a/node_modules/fp-ts/es6/ChainRec.d.ts b/node_modules/fp-ts/es6/ChainRec.d.ts new file mode 100644 index 0000000..156473e --- /dev/null +++ b/node_modules/fp-ts/es6/ChainRec.d.ts @@ -0,0 +1,59 @@ +/** + * @since 2.0.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Either } from './Either' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec<F> extends Chain<F> { + readonly chainRec: <A, B>(a: A, f: (a: A) => HKT<F, Either<A, B>>) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec1<F extends URIS> extends Chain1<F> { + readonly chainRec: <A, B>(a: A, f: (a: A) => Kind<F, Either<A, B>>) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec2<F extends URIS2> extends Chain2<F> { + readonly chainRec: <E, A, B>(a: A, f: (a: A) => Kind2<F, E, Either<A, B>>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec2C<F extends URIS2, E> extends Chain2C<F, E> { + readonly chainRec: <A, B>(a: A, f: (a: A) => Kind2<F, E, Either<A, B>>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec3<F extends URIS3> extends Chain3<F> { + readonly chainRec: <R, E, A, B>(a: A, f: (a: A) => Kind3<F, R, E, Either<A, B>>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.10.0 + */ +export interface ChainRec3C<F extends URIS3, E> extends Chain3C<F, E> { + readonly chainRec: <R, A, B>(a: A, f: (a: A) => Kind3<F, R, E, Either<A, B>>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.10.0 + */ +export interface ChainRec4<F extends URIS4> extends Chain4<F> { + readonly chainRec: <S, R, E, A, B>(a: A, f: (a: A) => Kind4<F, S, R, E, Either<A, B>>) => Kind4<F, S, R, E, B> +} +/** + * @since 2.0.0 + */ +export declare const tailRec: <A, B>(startWith: A, f: (a: A) => Either<A, B>) => B diff --git a/node_modules/fp-ts/es6/ChainRec.js b/node_modules/fp-ts/es6/ChainRec.js new file mode 100644 index 0000000..1af4041 --- /dev/null +++ b/node_modules/fp-ts/es6/ChainRec.js @@ -0,0 +1,10 @@ +/** + * @since 2.0.0 + */ +export var tailRec = function (startWith, f) { + var ab = f(startWith); + while (ab._tag === 'Left') { + ab = f(ab.left); + } + return ab.right; +}; diff --git a/node_modules/fp-ts/es6/Choice.d.ts b/node_modules/fp-ts/es6/Choice.d.ts new file mode 100644 index 0000000..2b5d888 --- /dev/null +++ b/node_modules/fp-ts/es6/Choice.d.ts @@ -0,0 +1,174 @@ +/** + * The `Choice` class extends `Profunctor` with combinators for working with + * sum types. + * + * `left` and `right` lift values in a `Profunctor` to act on the `Left` and + * `Right` components of a sum, respectively. + * + * Looking at `Choice` through the intuition of inputs and outputs + * yields the following type signature: + * + * ```purescript + * left :: forall input output a. p input output -> p (Either input a) (Either output a) + * right :: forall input output a. p input output -> p (Either a input) (Either a output) + * ``` + * + * If we specialize the profunctor `p` to the `function` arrow, we get the following type + * signatures: + * + * ```purescript + * left :: forall input output a. (input -> output) -> (Either input a) -> (Either output a) + * right :: forall input output a. (input -> output) -> (Either a input) -> (Either a output) + * ``` + * + * When the `profunctor` is `Function` application, `left` allows you to map a function over the + * left side of an `Either`, and `right` maps it over the right side (same as `map` would do). + * + * Adapted from https://github.com/purescript/purescript-profunctor/blob/master/src/Data/Profunctor/Choice.purs + * + * @since 2.0.0 + */ +import { Category, Category2, Category3, Category4 } from './Category' +import { Either } from './Either' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { Profunctor, Profunctor2, Profunctor3, Profunctor4 } from './Profunctor' +/** + * @category model + * @since 2.0.0 + */ +export interface Choice<F> extends Profunctor<F> { + readonly left: <A, B, C>(pab: HKT2<F, A, B>) => HKT2<F, Either<A, C>, Either<B, C>> + readonly right: <A, B, C>(pbc: HKT2<F, B, C>) => HKT2<F, Either<A, B>, Either<A, C>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Choice2<F extends URIS2> extends Profunctor2<F> { + readonly left: <A, B, C>(pab: Kind2<F, A, B>) => Kind2<F, Either<A, C>, Either<B, C>> + readonly right: <A, B, C>(pbc: Kind2<F, B, C>) => Kind2<F, Either<A, B>, Either<A, C>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Choice3<F extends URIS3> extends Profunctor3<F> { + readonly left: <R, A, B, C>(pab: Kind3<F, R, A, B>) => Kind3<F, R, Either<A, C>, Either<B, C>> + readonly right: <R, A, B, C>(pbc: Kind3<F, R, B, C>) => Kind3<F, R, Either<A, B>, Either<A, C>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Choice4<F extends URIS4> extends Profunctor4<F> { + readonly left: <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, Either<A, C>, Either<B, C>> + readonly right: <S, R, A, B, C>(pbc: Kind4<F, S, R, B, C>) => Kind4<F, S, R, Either<A, B>, Either<A, C>> +} +/** + * Compose a value acting on a sum from two values, each acting on one of + * the components of the sum. + * + * Specializing `split` to function application would look like this: + * + * ```purescript + * split :: forall a b c d. (a -> b) -> (c -> d) -> (Either a c) -> (Either b d) + * ``` + * + * We take two functions, `f` and `g`, and we transform them into a single function which + * takes an `Either`and maps `f` over the left side and `g` over the right side. Just like + * `bimap` would do for the `Bifunctor` instance of `Either`. + * + * @since 2.10.0 + */ +export declare function split<P extends URIS4>( + P: Choice4<P>, + C: Category4<P> +): <S, R, A, B, C, D>( + pab: Kind4<P, S, R, A, B>, + pcd: Kind4<P, S, R, C, D> +) => Kind4<P, S, R, Either<A, C>, Either<B, D>> +export declare function split<P extends URIS3>( + P: Choice3<P>, + C: Category3<P> +): <R, A, B, C, D>(pab: Kind3<P, R, A, B>, pcd: Kind3<P, R, C, D>) => Kind3<P, R, Either<A, C>, Either<B, D>> +export declare function split<P extends URIS2>( + P: Choice2<P>, + C: Category2<P> +): <A, B, C, D>(pab: Kind2<P, A, B>, pcd: Kind2<P, C, D>) => Kind2<P, Either<A, C>, Either<B, D>> +export declare function split<P>( + P: Choice<P>, + C: Category<P> +): <A, B, C, D>(pab: HKT2<P, A, B>, pcd: HKT2<P, C, D>) => HKT2<P, Either<A, C>, Either<B, D>> +/** + * Compose a value which eliminates a sum from two values, each eliminating + * one side of the sum. + * + * This combinator is useful when assembling values from smaller components, + * because it provides a way to support two different types of input. + * + * Specializing `fanIn` to function application would look like this: + * + * ```purescript + * fanIn :: forall a b c d. (a -> c) -> (b -> c) -> Either a b -> c + * ``` + * + * We take two functions, `f` and `g`, which both return the same type `c` and we transform them into a + * single function which takes an `Either` value with the parameter type of `f` on the left side and + * the parameter type of `g` on the right side. The function then runs either `f` or `g`, depending on + * whether the `Either` value is a `Left` or a `Right`. + * This allows us to bundle two different computations which both have the same result type into one + * function which will run the appropriate computation based on the parameter supplied in the `Either` value. + * + * @since 2.10.0 + */ +export declare function fanIn<P extends URIS4>( + P: Choice4<P>, + C: Category4<P> +): <S, R, A, B, C>(pac: Kind4<P, S, R, A, C>, pbc: Kind4<P, S, R, B, C>) => Kind4<P, S, R, Either<A, B>, C> +export declare function fanIn<P extends URIS3>( + P: Choice3<P>, + C: Category3<P> +): <R, A, B, C>(pac: Kind3<P, R, A, C>, pbc: Kind3<P, R, B, C>) => Kind3<P, R, Either<A, B>, C> +export declare function fanIn<P extends URIS2>( + P: Choice2<P>, + C: Category2<P> +): <A, B, C>(pac: Kind2<P, A, C>, pbc: Kind2<P, B, C>) => Kind2<P, Either<A, B>, C> +export declare function fanIn<P>( + P: Choice<P>, + C: Category<P> +): <A, B, C>(pac: HKT2<P, A, C>, pbc: HKT2<P, B, C>) => HKT2<P, Either<A, B>, C> +/** + * Use [`split`](#split) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function splitChoice<F extends URIS3>( + F: Category3<F> & Choice3<F> +): <R, A, B, C, D>(pab: Kind3<F, R, A, B>, pcd: Kind3<F, R, C, D>) => Kind3<F, R, Either<A, C>, Either<B, D>> +/** @deprecated */ +export declare function splitChoice<F extends URIS2>( + F: Category2<F> & Choice2<F> +): <A, B, C, D>(pab: Kind2<F, A, B>, pcd: Kind2<F, C, D>) => Kind2<F, Either<A, C>, Either<B, D>> +/** @deprecated */ +export declare function splitChoice<F>( + F: Category<F> & Choice<F> +): <A, B, C, D>(pab: HKT2<F, A, B>, pcd: HKT2<F, C, D>) => HKT2<F, Either<A, C>, Either<B, D>> +/** + * Use [`fanIn`](#fanIn) instead. + * + * @since 2.0.0 + * @deprecated + */ +export declare function fanin<F extends URIS3>( + F: Category3<F> & Choice3<F> +): <R, A, B, C>(pac: Kind3<F, R, A, C>, pbc: Kind3<F, R, B, C>) => Kind3<F, R, Either<A, B>, C> +/** @deprecated */ +export declare function fanin<F extends URIS2>( + F: Category2<F> & Choice2<F> +): <A, B, C>(pac: Kind2<F, A, C>, pbc: Kind2<F, B, C>) => Kind2<F, Either<A, B>, C> +/** @deprecated */ +export declare function fanin<F>( + F: Category<F> & Choice<F> +): <A, B, C>(pac: HKT2<F, A, C>, pbc: HKT2<F, B, C>) => HKT2<F, Either<A, B>, C> diff --git a/node_modules/fp-ts/es6/Choice.js b/node_modules/fp-ts/es6/Choice.js new file mode 100644 index 0000000..e3d0d1a --- /dev/null +++ b/node_modules/fp-ts/es6/Choice.js @@ -0,0 +1,16 @@ +import { identity } from './function'; +export function split(P, C) { + return function (pab, pcd) { return C.compose(P.right(pcd), P.left(pab)); }; +} +export function fanIn(P, C) { + var splitPC = split(P, C); + return function (pac, pbc) { + return C.compose(P.promap(C.id(), function (cc) { return (cc._tag === 'Left' ? cc.left : cc.right); }, identity), splitPC(pac, pbc)); + }; +} +export function splitChoice(F) { + return split(F, F); +} +export function fanin(F) { + return fanIn(F, F); +} diff --git a/node_modules/fp-ts/es6/Comonad.d.ts b/node_modules/fp-ts/es6/Comonad.d.ts new file mode 100644 index 0000000..0bd1218 --- /dev/null +++ b/node_modules/fp-ts/es6/Comonad.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.0.0 + */ +import { Extend, Extend1, Extend2, Extend2C, Extend3, Extend3C, Extend4 } from './Extend' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad<W> extends Extend<W> { + readonly extract: <A>(wa: HKT<W, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad1<W extends URIS> extends Extend1<W> { + readonly extract: <A>(wa: Kind<W, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad2<W extends URIS2> extends Extend2<W> { + readonly extract: <E, A>(wa: Kind2<W, E, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad2C<W extends URIS2, E> extends Extend2C<W, E> { + readonly extract: <A>(wa: Kind2<W, E, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad3<W extends URIS3> extends Extend3<W> { + readonly extract: <R, E, A>(wa: Kind3<W, R, E, A>) => A +} +/** + * @category model + * @since 2.10.0 + */ +export interface Comonad3C<W extends URIS3, E> extends Extend3C<W, E> { + readonly extract: <R, A>(wa: Kind3<W, R, E, A>) => A +} +/** + * @category model + * @since 2.10.0 + */ +export interface Comonad4<W extends URIS4> extends Extend4<W> { + readonly extract: <S, R, E, A>(wa: Kind4<W, S, R, E, A>) => A +} diff --git a/node_modules/fp-ts/es6/Comonad.js b/node_modules/fp-ts/es6/Comonad.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Comonad.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Compactable.d.ts b/node_modules/fp-ts/es6/Compactable.d.ts new file mode 100644 index 0000000..04284cf --- /dev/null +++ b/node_modules/fp-ts/es6/Compactable.d.ts @@ -0,0 +1,320 @@ +/** + * `Compactable` represents data structures which can be _compacted_/_filtered_. This is a generalization of + * `catOptions` as a new function `compact`. `compact` has relations with `Functor`, `Applicative`, + * `Monad`, `Alternative`, and `Traversable` in that we can use these classes to provide the ability to + * operate on a data type by eliminating intermediate `None`s. This is useful for representing the filtering out of + * values, or failure. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Compactable.purs + * + * @since 2.0.0 + */ +import { Either } from './Either' +import { + Functor, + Functor1, + Functor2, + Functor2C, + Functor3C, + FunctorComposition, + FunctorComposition2C1, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition22C, + FunctorComposition23, + FunctorComposition23C +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import * as S from './Separated' +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable<F> { + readonly URI: F + /** + * Compacts a data structure unwrapping inner Option + */ + readonly compact: <A>(fa: HKT<F, Option<A>>) => HKT<F, A> + /** + * Separates a data structure moving inner Left to the left side and inner Right to the right side of Separated + */ + readonly separate: <A, B>(fa: HKT<F, Either<A, B>>) => S.Separated<HKT<F, A>, HKT<F, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable1<F extends URIS> { + readonly URI: F + readonly compact: <A>(fa: Kind<F, Option<A>>) => Kind<F, A> + readonly separate: <A, B>(fa: Kind<F, Either<A, B>>) => S.Separated<Kind<F, A>, Kind<F, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable2<F extends URIS2> { + readonly URI: F + readonly compact: <E, A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <E, A, B>(fa: Kind2<F, E, Either<A, B>>) => S.Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly compact: <A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <A, B>(fa: Kind2<F, E, Either<A, B>>) => S.Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable3<F extends URIS3> { + readonly URI: F + readonly compact: <R, E, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, E, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => S.Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Compactable3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly compact: <R, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => S.Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable4<F extends URIS4> { + readonly URI: F + readonly compact: <S, R, E, A>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, A> + readonly separate: <S, R, E, A, B>( + fa: Kind4<F, S, R, E, Either<A, B>> + ) => S.Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> +} +/** + * `compact` composition. + * + * @since 2.10.0 + */ +export declare function compact<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Compactable2C<G, E> +): <FE, A>(fa: Kind2<F, FE, Kind2<G, E, Option<A>>>) => Kind2<F, FE, Kind2<G, E, A>> +export declare function compact<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Compactable2C<G, E> +): <A>(fa: Kind<F, Kind2<G, E, Option<A>>>) => Kind<F, Kind2<G, E, A>> +export declare function compact<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Compactable1<G> +): <A>(fa: Kind<F, Kind<G, Option<A>>>) => Kind<F, Kind<G, A>> +export declare function compact<F, G>( + F: Functor<F>, + G: Compactable<G> +): <A>(fa: HKT<F, HKT<G, Option<A>>>) => HKT<F, HKT<G, A>> +/** + * `separate` composition. + * + * @since 2.10.0 + */ +export declare function separate<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + C: Compactable2C<G, E>, + G: Functor2<G> +): <FE, A, B>( + fge: Kind2<F, FE, Kind2<G, E, Either<A, B>>> +) => S.Separated<Kind2<F, FE, Kind2<G, E, A>>, Kind2<F, FE, Kind2<G, E, B>>> +export declare function separate<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + C: Compactable2C<G, E>, + G: Functor2<G> +): <A, B>(fge: Kind<F, Kind2<G, E, Either<A, B>>>) => S.Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> +export declare function separate<F extends URIS, G extends URIS>( + F: Functor1<F>, + C: Compactable1<G>, + G: Functor1<G> +): <A, B>(fge: Kind<F, Kind<G, Either<A, B>>>) => S.Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, B>>> +export declare function separate<F, G>( + F: Functor<F>, + C: Compactable<G>, + G: Functor<G> +): <A, B>(fge: HKT<F, HKT<G, Either<A, B>>>) => S.Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, B>>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition<F, G> extends FunctorComposition<F, G> { + readonly compact: <A>(fga: HKT<F, HKT<G, Option<A>>>) => HKT<F, HKT<G, A>> + readonly separate: <A, B>(fge: HKT<F, HKT<G, Either<A, B>>>) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition11<F extends URIS, G extends URIS> extends FunctorComposition11<F, G> { + readonly compact: <A>(fga: Kind<F, Kind<G, Option<A>>>) => Kind<F, Kind<G, A>> + readonly separate: <A, B>(fge: Kind<F, Kind<G, Either<A, B>>>) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition12<F extends URIS, G extends URIS2> extends FunctorComposition12<F, G> { + readonly compact: <E, A>(fga: Kind<F, Kind2<G, E, Option<A>>>) => Kind<F, Kind2<G, E, A>> + readonly separate: <E, A, B>( + fge: Kind<F, Kind2<G, E, Either<A, B>>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition12C<F extends URIS, G extends URIS2, E> extends FunctorComposition12C<F, G, E> { + readonly compact: <A>(fga: Kind<F, Kind2<G, E, Option<A>>>) => Kind<F, Kind2<G, E, A>> + readonly separate: <A, B>( + fge: Kind<F, Kind2<G, E, Either<A, B>>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition21<F extends URIS2, G extends URIS> extends FunctorComposition21<F, G> { + readonly compact: <FE, A>(fga: Kind2<F, FE, Kind<G, Option<A>>>) => Kind2<F, FE, Kind<G, A>> + readonly separate: <FE, A, B>( + fge: Kind2<F, FE, Kind<G, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind<G, A>>, Kind2<F, FE, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition2C1<F extends URIS2, G extends URIS, E> extends FunctorComposition2C1<F, G, E> { + readonly compact: <A>(fga: Kind2<F, E, Kind<G, Option<A>>>) => Kind2<F, E, Kind<G, A>> + readonly separate: <A, B>( + fge: Kind2<F, E, Kind<G, Either<A, B>>> + ) => Separated<Kind2<F, E, Kind<G, A>>, Kind2<F, E, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition22<F extends URIS2, G extends URIS2> extends FunctorComposition22<F, G> { + readonly compact: <FE, GE, A>(fga: Kind2<F, FE, Kind2<G, GE, Option<A>>>) => Kind2<F, FE, Kind2<G, GE, A>> + readonly separate: <FE, GE, A, B>( + fge: Kind2<F, FE, Kind2<G, GE, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind2<G, GE, A>>, Kind2<F, FE, Kind2<G, GE, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition22C<F extends URIS2, G extends URIS2, E> extends FunctorComposition22C<F, G, E> { + readonly compact: <FE, A>(fga: Kind2<F, FE, Kind2<G, E, Option<A>>>) => Kind2<F, FE, Kind2<G, E, A>> + readonly separate: <FE, A, B>( + fge: Kind2<F, FE, Kind2<G, E, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind2<G, E, A>>, Kind2<F, FE, Kind2<G, E, B>>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface CompactableComposition23<F extends URIS2, G extends URIS3> extends FunctorComposition23<F, G> { + readonly compact: <R, FE, GE, A>(fga: Kind2<F, FE, Kind3<G, R, GE, Option<A>>>) => Kind2<F, FE, Kind3<G, R, GE, A>> + readonly separate: <R, FE, GE, A, B>( + fge: Kind2<F, FE, Kind3<G, R, GE, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind3<G, R, GE, A>>, Kind2<F, FE, Kind3<G, R, GE, B>>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface CompactableComposition23C<F extends URIS2, G extends URIS3, E> extends FunctorComposition23C<F, G, E> { + readonly compact: <FE, R, A>(fga: Kind2<F, FE, Kind3<G, R, E, Option<A>>>) => Kind2<F, FE, Kind3<G, R, E, A>> + readonly separate: <FE, R, A, B>( + fge: Kind2<F, FE, Kind3<G, R, E, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind3<G, R, E, A>>, Kind2<F, FE, Kind3<G, R, E, B>>> +} +/** + * Use [`compact`](#compact) and [`separate`](#separate) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS3, E>( + F: Functor2<F>, + G: Compactable3C<G, E> & Functor3C<G, E> +): CompactableComposition23C<F, G, E> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Compactable2C<G, E> & Functor2C<G, E> +): CompactableComposition22C<F, G, E> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Compactable2<G> & Functor2<G> +): CompactableComposition22<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS, E>( + F: Functor2C<F, E>, + G: Compactable1<G> & Functor1<G> +): CompactableComposition2C1<F, G, E> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Compactable1<G> & Functor1<G> +): CompactableComposition21<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Compactable2C<G, E> & Functor2C<G, E> +): CompactableComposition12<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Compactable2<G> & Functor2<G> +): CompactableComposition12<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Compactable1<G> & Functor1<G> +): CompactableComposition11<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F, G>( + F: Functor<F>, + G: Compactable<G> & Functor<G> +): CompactableComposition<F, G> +/** + * Use [`Separated`](./Separated.ts.html#separated) instead. + * + * @since 2.0.0 + * @deprecated + */ +export interface Separated<A, B> { + readonly left: A + readonly right: B +} diff --git a/node_modules/fp-ts/es6/Compactable.js b/node_modules/fp-ts/es6/Compactable.js new file mode 100644 index 0000000..4aa9839 --- /dev/null +++ b/node_modules/fp-ts/es6/Compactable.js @@ -0,0 +1,21 @@ +import { pipe } from './function'; +import { getFunctorComposition, map } from './Functor'; +import { getLeft, getRight } from './Option'; +import * as S from './Separated'; +export function compact(F, G) { + return function (fga) { return F.map(fga, G.compact); }; +} +export function separate(F, C, G) { + var _compact = compact(F, C); + var _map = map(F, G); + return function (fge) { return S.separated(_compact(pipe(fge, _map(getLeft))), _compact(pipe(fge, _map(getRight)))); }; +} +/** @deprecated */ +export function getCompactableComposition(F, G) { + var map = getFunctorComposition(F, G).map; + return { + map: map, + compact: compact(F, G), + separate: separate(F, G, G) + }; +} diff --git a/node_modules/fp-ts/es6/Console.d.ts b/node_modules/fp-ts/es6/Console.d.ts new file mode 100644 index 0000000..b9fe684 --- /dev/null +++ b/node_modules/fp-ts/es6/Console.d.ts @@ -0,0 +1,20 @@ +/** + * @since 2.0.0 + */ +import { IO } from './IO' +/** + * @since 2.0.0 + */ +export declare const log: <A>(a: A) => IO<void> +/** + * @since 2.0.0 + */ +export declare const warn: <A>(a: A) => IO<void> +/** + * @since 2.0.0 + */ +export declare const error: <A>(a: A) => IO<void> +/** + * @since 2.0.0 + */ +export declare const info: <A>(a: A) => IO<void> diff --git a/node_modules/fp-ts/es6/Console.js b/node_modules/fp-ts/es6/Console.js new file mode 100644 index 0000000..1013dd1 --- /dev/null +++ b/node_modules/fp-ts/es6/Console.js @@ -0,0 +1,32 @@ +/** + * @since 2.0.0 + */ +export var log = function (a) { + return function () { + return console.log(a); + }; +}; +/** + * @since 2.0.0 + */ +export var warn = function (a) { + return function () { + return console.warn(a); + }; +}; +/** + * @since 2.0.0 + */ +export var error = function (a) { + return function () { + return console.error(a); + }; +}; +/** + * @since 2.0.0 + */ +export var info = function (a) { + return function () { + return console.info(a); + }; +}; diff --git a/node_modules/fp-ts/es6/Const.d.ts b/node_modules/fp-ts/es6/Const.d.ts new file mode 100644 index 0000000..7867970 --- /dev/null +++ b/node_modules/fp-ts/es6/Const.d.ts @@ -0,0 +1,169 @@ +/** + * The `Const` type constructor, which wraps its first type argument and ignores its second. + * That is, `Const<E, A>` is isomorphic to `E` for any `A`. + * + * `Const` has some useful instances. For example, the `Applicative` instance allows us to collect results using a `Monoid` + * while ignoring return values. + * + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { BooleanAlgebra } from './BooleanAlgebra' +import { Bounded } from './Bounded' +import { Contravariant2 } from './Contravariant' +import { Eq } from './Eq' +import { Functor2 } from './Functor' +import { HeytingAlgebra } from './HeytingAlgebra' +import { Monoid } from './Monoid' +import { Ord } from './Ord' +import { Ring } from './Ring' +import { Semigroup } from './Semigroup' +import { Semiring } from './Semiring' +import { Show } from './Show' +/** + * @category model + * @since 2.0.0 + */ +export type Const<E, A> = E & { + readonly _A: A +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const make: <E, A = never>(e: E) => Const<E, A> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getShow<E, A>(S: Show<E>): Show<Const<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <E, A>(E: Eq<E>) => Eq<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getOrd: <E, A>(O: Ord<E>) => Ord<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getBounded: <E, A>(B: Bounded<E>) => Bounded<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getSemigroup: <E, A>(S: Semigroup<E>) => Semigroup<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getMonoid: <E, A>(M: Monoid<E>) => Monoid<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getSemiring: <E, A>(S: Semiring<E>) => Semiring<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getRing: <E, A>(S: Ring<E>) => Ring<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getHeytingAlgebra: <E, A>(H: HeytingAlgebra<E>) => HeytingAlgebra<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getBooleanAlgebra: <E, A>(H: BooleanAlgebra<E>) => BooleanAlgebra<Const<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApply<E>(S: Semigroup<E>): Apply2C<URI, E> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApplicative<E>(M: Monoid<E>): Applicative2C<URI, E> +/** + * @since 2.0.0 + */ +export declare const contramap: <A, B>(f: (b: B) => A) => <E>(fa: Const<E, A>) => Const<E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Const<E, A>) => Const<E, B> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Const<E, A>) => Const<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Const<E, A>) => Const<G, A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Const' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Const<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Const', E, (a: A) => B>) => import('./HKT').Kind2<'Const', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Contravariant: Contravariant2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `C.Functor` instead of `C.const_` + * (where `C` is from `import C from 'fp-ts/Const'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const const_: Functor2<URI> & Contravariant2<URI> & Bifunctor2<URI> diff --git a/node_modules/fp-ts/es6/Const.js b/node_modules/fp-ts/es6/Const.js new file mode 100644 index 0000000..af590e3 --- /dev/null +++ b/node_modules/fp-ts/es6/Const.js @@ -0,0 +1,176 @@ +import { identity, pipe, unsafeCoerce } from './function'; +import { flap as flap_ } from './Functor'; +/** + * @category constructors + * @since 2.0.0 + */ +export var make = unsafeCoerce; +/** + * @category instances + * @since 2.0.0 + */ +export function getShow(S) { + return { + show: function (c) { return "make(".concat(S.show(c), ")"); } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export var getEq = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getOrd = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getBounded = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getSemigroup = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getMonoid = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getSemiring = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getRing = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getHeytingAlgebra = identity; +/** + * @category instances + * @since 2.6.0 + */ +export var getBooleanAlgebra = identity; +/** + * @category instances + * @since 2.0.0 + */ +export function getApply(S) { + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return make(S.concat(fab, fa)); } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getApplicative(M) { + var A = getApply(M); + return { + URI: URI, + _E: undefined, + map: A.map, + ap: A.ap, + of: function () { return make(M.empty); } + }; +} +var _contramap = function (fa, f) { return pipe(fa, contramap(f)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); }; +/** + * @since 2.0.0 + */ +export var contramap = function () { return unsafeCoerce; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function () { return unsafeCoerce; }; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +export var bimap = function (f) { return function (fa) { + return make(f(fa)); +}; }; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +export var mapLeft = function (f) { return function (fa) { return make(f(fa)); }; }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Const'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.7.0 + */ +export var Contravariant = { + URI: URI, + contramap: _contramap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `C.Functor` instead of `C.const_` + * (where `C` is from `import C from 'fp-ts/Const'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var const_ = { + URI: URI, + map: _map, + contramap: _contramap, + bimap: _bimap, + mapLeft: _mapLeft +}; diff --git a/node_modules/fp-ts/es6/Contravariant.d.ts b/node_modules/fp-ts/es6/Contravariant.d.ts new file mode 100644 index 0000000..b71ae2a --- /dev/null +++ b/node_modules/fp-ts/es6/Contravariant.d.ts @@ -0,0 +1,62 @@ +/** + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant<F> { + readonly URI: F + readonly contramap: <A, B>(fa: HKT<F, A>, f: (b: B) => A) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant1<F extends URIS> { + readonly URI: F + readonly contramap: <A, B>(fa: Kind<F, A>, f: (b: B) => A) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant2<F extends URIS2> { + readonly URI: F + readonly contramap: <E, A, B>(fa: Kind2<F, E, A>, f: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly contramap: <A, B>(fa: Kind2<F, E, A>, f: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant3<F extends URIS3> { + readonly URI: F + readonly contramap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Contravariant3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly contramap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant4<F extends URIS4> { + readonly URI: F + readonly contramap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (b: B) => A) => Kind4<F, S, R, E, B> +} diff --git a/node_modules/fp-ts/es6/Contravariant.js b/node_modules/fp-ts/es6/Contravariant.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Contravariant.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Date.d.ts b/node_modules/fp-ts/es6/Date.d.ts new file mode 100644 index 0000000..4b5b630 --- /dev/null +++ b/node_modules/fp-ts/es6/Date.d.ts @@ -0,0 +1,49 @@ +/** + * @since 2.0.0 + */ +import * as E from './Eq' +import { IO } from './IO' +import * as O from './Ord' +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<Date> +/** + * @category instances + * @since 2.6.0 + */ +export declare const eqDate: E.Eq<Date> +/** + * @category instances + * @since 2.6.0 + */ +export declare const eqMonth: E.Eq<Date> +/** + * @category instances + * @since 2.6.0 + */ +export declare const eqYear: E.Eq<Date> +/** + * @example + * import { Ord } from 'fp-ts/Date' + * + * assert.deepStrictEqual(Ord.compare(new Date(1, 1, 2020), new Date(1, 1, 2021)), -1) + * + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<Date> +/** + * Returns the current `Date` + * + * @category constructors + * @since 2.0.0 + */ +export declare const create: IO<Date> +/** + * Returns the number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC + * + * @since 2.0.0 + */ +export declare const now: IO<number> diff --git a/node_modules/fp-ts/es6/Date.js b/node_modules/fp-ts/es6/Date.js new file mode 100644 index 0000000..dd09260 --- /dev/null +++ b/node_modules/fp-ts/es6/Date.js @@ -0,0 +1,61 @@ +import { pipe } from './function'; +import * as N from './number'; +import * as O from './Ord'; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +export var Eq = { + equals: function (first, second) { return first.valueOf() === second.valueOf(); } +}; +/** + * @category instances + * @since 2.6.0 + */ +export var eqDate = { + equals: function (x, y) { return x.getDate() === y.getDate(); } +}; +/** + * @category instances + * @since 2.6.0 + */ +export var eqMonth = { + equals: function (x, y) { return x.getMonth() === y.getMonth(); } +}; +/** + * @category instances + * @since 2.6.0 + */ +export var eqYear = { + equals: function (x, y) { return x.getFullYear() === y.getFullYear(); } +}; +/** + * @example + * import { Ord } from 'fp-ts/Date' + * + * assert.deepStrictEqual(Ord.compare(new Date(1, 1, 2020), new Date(1, 1, 2021)), -1) + * + * @category instances + * @since 2.10.0 + */ +export var Ord = /*#__PURE__*/ pipe(N.Ord, +/*#__PURE__*/ O.contramap(function (date) { return date.valueOf(); })); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Returns the current `Date` + * + * @category constructors + * @since 2.0.0 + */ +export var create = function () { return new Date(); }; +/** + * Returns the number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC + * + * @since 2.0.0 + */ +export var now = function () { return new Date().getTime(); }; diff --git a/node_modules/fp-ts/es6/DistributiveLattice.d.ts b/node_modules/fp-ts/es6/DistributiveLattice.d.ts new file mode 100644 index 0000000..58e70b8 --- /dev/null +++ b/node_modules/fp-ts/es6/DistributiveLattice.d.ts @@ -0,0 +1,20 @@ +/** + * A `DistributiveLattice` must satisfy the following laws in addition to `Lattice` laws: + * + * - Distributivity for meet: `a ∨ (b ∧ c) <-> (a ∨ b) ∧ (a ∨ c)` + * - Distributivity for join: `a ∧ (b ∨ c) <-> (a ∧ b) ∨ (a ∧ c)` + * + * @since 2.0.0 + */ +import { Lattice } from './Lattice' +import { Ord } from './Ord' +/** + * @category model + * @since 2.0.0 + */ +export interface DistributiveLattice<A> extends Lattice<A> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function getMinMaxDistributiveLattice<A>(O: Ord<A>): DistributiveLattice<A> diff --git a/node_modules/fp-ts/es6/DistributiveLattice.js b/node_modules/fp-ts/es6/DistributiveLattice.js new file mode 100644 index 0000000..233632a --- /dev/null +++ b/node_modules/fp-ts/es6/DistributiveLattice.js @@ -0,0 +1,14 @@ +import { max, min } from './Ord'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export function getMinMaxDistributiveLattice(O) { + return { + meet: min(O), + join: max(O) + }; +} diff --git a/node_modules/fp-ts/es6/Either.d.ts b/node_modules/fp-ts/es6/Either.d.ts new file mode 100644 index 0000000..850d9e7 --- /dev/null +++ b/node_modules/fp-ts/es6/Either.d.ts @@ -0,0 +1,1354 @@ +/** + * ```ts + * type Either<E, A> = Left<E> | Right<A> + * ``` + * + * Represents a value of one of two possible types (a disjoint union). + * + * An instance of `Either` is either an instance of `Left` or `Right`. + * + * A common use of `Either` is as an alternative to `Option` for dealing with possible missing values. In this usage, + * `None` is replaced with a `Left` which can contain useful information. `Right` takes the place of `Some`. Convention + * dictates that `Left` is used for failure and `Right` is used for success. + * + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * + * export const imperative = (as: ReadonlyArray<number>): string => { + * const head = (as: ReadonlyArray<number>): number => { + * if (as.length === 0) { + * throw new Error('empty array') + * } + * return as[0] + * } + * const inverse = (n: number): number => { + * if (n === 0) { + * throw new Error('cannot divide by zero') + * } + * return 1 / n + * } + * try { + * return `Result is ${inverse(double(head(as)))}` + * } catch (err: any) { + * return `Error is ${err.message}` + * } + * } + * + * export const functional = (as: ReadonlyArray<number>): string => { + * const head = <A>(as: ReadonlyArray<A>): E.Either<string, A> => + * as.length === 0 ? E.left('empty array') : E.right(as[0]) + * const inverse = (n: number): E.Either<string, number> => + * n === 0 ? E.left('cannot divide by zero') : E.right(1 / n) + * return pipe( + * as, + * head, + * E.map(double), + * E.flatMap(inverse), + * E.match( + * (err) => `Error is ${err}`, // onLeft handler + * (head) => `Result is ${head}` // onRight handler + * ) + * ) + * } + * + * assert.deepStrictEqual(imperative([1, 2, 3]), functional([1, 2, 3])) + * assert.deepStrictEqual(imperative([]), functional([])) + * assert.deepStrictEqual(imperative([0]), functional([0])) + * + * @since 2.0.0 + */ +import { Alt2, Alt2C } from './Alt' +import { Applicative2, Applicative2C } from './Applicative' +import { Apply2 } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import * as chainable from './Chain' +import { ChainRec2, ChainRec2C } from './ChainRec' +import { Compactable2C } from './Compactable' +import { Eq } from './Eq' +import { Extend2 } from './Extend' +import { Filterable2C } from './Filterable' +import { Foldable2 } from './Foldable' +import { FromEither2 } from './FromEither' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { Monad2, Monad2C } from './Monad' +import { MonadThrow2, MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse2, Traversable2 } from './Traversable' +import { Witherable2C } from './Witherable' +/** + * @category model + * @since 2.0.0 + */ +export interface Left<E> { + readonly _tag: 'Left' + readonly left: E +} +/** + * @category model + * @since 2.0.0 + */ +export interface Right<A> { + readonly _tag: 'Right' + readonly right: A +} +/** + * @category model + * @since 2.0.0 + */ +export type Either<E, A> = Left<E> | Right<A> +/** + * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this + * structure. + * + * @category constructors + * @since 2.0.0 + */ +export declare const left: <E = never, A = never>(e: E) => Either<E, A> +/** + * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias + * of this structure. + * + * @category constructors + * @since 2.0.0 + */ +export declare const right: <E = never, A = never>(a: A) => Either<E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, E2, B>(f: (a: A) => Either<E2, B>): <E1>(ma: Either<E1, A>) => Either<E1 | E2, B> + <E1, A, E2, B>(ma: Either<E1, A>, f: (a: A) => Either<E2, B>): Either<E1 | E2, B> +} +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Either' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Either<E, A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <E, A>(SE: Show<E>, SA: Show<A>) => Show<Either<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <E, A>(EL: Eq<E>, EA: Eq<A>) => Eq<Either<E, A>> +/** + * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are + * concatenated using the provided `Semigroup` + * + * @example + * import { getSemigroup, left, right } from 'fp-ts/Either' + * import { SemigroupSum } from 'fp-ts/number' + * + * const S = getSemigroup<string, number>(SemigroupSum) + * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a')) + * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2)) + * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1)) + * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3)) + * + * @category instances + * @since 2.0.0 + */ +export declare const getSemigroup: <E, A>(S: Semigroup<A>) => Semigroup<Either<E, A>> +/** + * Builds a `Compactable` instance for `Either` given `Monoid` for the left side. + * + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable2C<URI, E> +/** + * Builds a `Filterable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.10.0 + */ +export declare const getFilterable: <E>(M: Monoid<E>) => Filterable2C<URI, E> +/** + * Builds `Witherable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.0.0 + */ +export declare const getWitherable: <E>(M: Monoid<E>) => Witherable2C<URI, E> +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as A from 'fp-ts/Apply' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const parsePerson = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * E.apS('name', parseString(input.name)), + * E.apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error + * + * const Applicative = E.getApplicativeValidation( + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * const apS = A.apS(Applicative) + * + * const parsePersonAll = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * apS('name', parseString(input.name)), + * apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +export declare const getApplicativeValidation: <E>(SE: Semigroup<E>) => Applicative2C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * const parse = (u: unknown): E.Either<string, string | number> => + * pipe( + * parseString(u), + * E.alt<string, string | number>(() => parseNumber(u)) + * ) + * + * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error + * + * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', '))) + * + * const parseAll = (u: unknown): E.Either<string, string | number> => + * Alt.alt<string | number>(parseString(u), () => parseNumber(u)) + * + * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +export declare const getAltValidation: <E>(SE: Semigroup<E>) => Alt2C<URI, E> +/** + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Either<E, A>) => Either<E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the `Right` value of this `Either` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <E, _>(self: Either<E, _>) => Either<E, A> + <E, _, A>(self: Either<E, _>, a: A): Either<E, A> +} +/** + * Maps the `Right` value of this `Either` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <E, _>(self: Either<E, _>) => Either<E, void> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <E = never, A = never>(a: A) => Either<E, A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <E2, A>(fa: Either<E2, A>) => <E1, B>(fab: Either<E1, (a: A) => B>) => Either<E1 | E2, B> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: Either<E, A>) => <B>(fab: Either<E, (a: A) => B>) => Either<E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * Left-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'prefix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduce(startWith, concat)), + * 'prefix:a' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduce(startWith, concat)), + * 'prefix' + * ) + * + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: Either<E, A>) => B +/** + * Map each element of the structure to a monoid, and combine the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as S from 'fp-ts/string' + * + * const yell = (a: string) => `${a}!` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)), + * 'a!' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)), + * S.Monoid.empty + * ) + * + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: Either<E, A>) => M +/** + * Right-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'postfix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduceRight(startWith, concat)), + * 'a:postfix' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduceRight(startWith, concat)), + * 'postfix' + * ) + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: Either<E, A>) => B +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * Evaluate each monadic action in the structure from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(O.some('a')), E.sequence(O.Applicative)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right(O.none), E.sequence(O.Applicative)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Either<E, A>) => Either<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Either<E, A>) => Either<G, A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <E2, B>(that: LazyArg<Either<E2, B>>) => <E1, A>(fa: Either<E1, A>) => Either<E2, A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`). + * + * | x | y | pipe(x, alt(() => y) | + * | -------- | -------- | -------------------- | + * | left(a) | left(b) | left(b) | + * | left(a) | right(2) | right(2) | + * | right(1) | left(b) | right(1) | + * | right(1) | right(2) | right(1) | + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.left('b')) + * ), + * E.left('b') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.right(2)) + * ), + * E.right(2) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.left('b')) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.right(2)) + * ), + * E.right(1) + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <E, A>(that: LazyArg<Either<E, A>>) => (fa: Either<E, A>) => Either<E, A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt2<URI> +/** + * @since 2.0.0 + */ +export declare const extend: <E, A, B>(f: (wa: Either<E, A>) => B) => (wa: Either<E, A>) => Either<E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const ChainRec: ChainRec2<URI> +/** + * @since 2.6.3 + */ +export declare const throwError: MonadThrow2<URI>['throwError'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @example + * import { fromPredicate, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * 1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * -1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * left('error') + * ) + * + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Either<E, A> +} +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe( + * O.some(1), + * E.fromOption(() => 'error') + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * O.none, + * E.fromOption(() => 'error') + * ), + * E.left('error') + * ) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => Either<E, A> +/** + * Returns `true` if the either is an instance of `Left`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +export declare const isLeft: <E>(ma: Either<E, unknown>) => ma is Left<E> +/** + * Returns `true` if the either is an instance of `Right`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +export declare const isRight: <A>(ma: Either<unknown, A>) => ma is Right<A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>(onLeft: (e: E) => B, onRight: (a: A) => C) => (ma: Either<E, A>) => B | C +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C>(onLeft: (e: E) => B, onRight: (a: A) => C) => (ma: Either<E, A>) => B | C +/** + * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, + * if the value is a `Right` the inner value is applied to the second function. + * + * @example + * import { match, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * function onLeft(errors: Array<string>): string { + * return `Errors: ${errors.join(', ')}` + * } + * + * function onRight(value: number): string { + * return `Ok: ${value}` + * } + * + * assert.strictEqual( + * pipe( + * right(1), + * match(onLeft, onRight) + * ), + * 'Ok: 1' + * ) + * assert.strictEqual( + * pipe( + * left(['error 1', 'error 2']), + * match(onLeft, onRight) + * ), + * 'Errors: error 1, error 2' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, A, B>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Either<E, A>) => B +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Either<E, A>) => B +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <E, B>(onLeft: (e: E) => B) => <A>(ma: Either<E, A>) => A | B +/** + * Returns the wrapped value if it's a `Right` or a default value if is a `Left`. + * + * @example + * import { getOrElse, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * right(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.deepStrictEqual( + * pipe( + * left('error'), + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, A>(onLeft: (e: E) => A) => (ma: Either<E, A>) => A +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Either', E, (a: A) => B>) => import('./HKT').Kind2<'Either', E, B> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: Either<E, B> +) => <A>(first: import('./HKT').Kind2<'Either', E, A>) => import('./HKT').Kind2<'Either', E, A> +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <E2, B>(second: Either<E2, B>) => <E1, A>(first: Either<E1, A>) => Either<E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: Either<E, B> +) => <A>(first: import('./HKT').Kind2<'Either', E, A>) => import('./HKT').Kind2<'Either', E, B> +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <E2, B>(second: Either<E2, B>) => <E1, A>(first: Either<E1, A>) => Either<E1 | E2, B> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <E1, A, E2, _>(self: Either<E1, A>, f: (a: A) => Either<E2, _>): Either<E1 | E2, A> + <A, E2, _>(f: (a: A) => Either<E2, _>): <E1>(self: Either<E1, A>) => Either<E2 | E1, A> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <E1, E2, A>(mma: Either<E1, Either<E2, A>>) => Either<E1 | E2, A> +/** + * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level. + * + * @example + * import * as E from 'fp-ts/Either' + * + * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a')) + * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e')) + * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e')) + * + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: Either<E, Either<E, A>>) => Either<E, A> +/** + * @since 2.0.0 + */ +export declare const duplicate: <E, A>(ma: Either<E, A>) => Either<E, Either<E, A>> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Either<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => (ma: Either<E, A>) => Either<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <E1>(ma: Either<E1, A>) => Either<E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => (...a: A) => Either<E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => (...a: A) => Either<E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <E1>( + self: Either<E1, A> + ) => Either<E2 | E1, NonNullable<B>> + <E1, A, B, E2>(self: Either<E1, A>, f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): Either< + E1 | E2, + NonNullable<B> + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <E1>(self: Either<E1, A>) => Either<E2 | E1, B> + <E1, A, B, E2>(self: Either<E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): Either<E1 | E2, B> +} +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(-1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('error') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('a') + * ) + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (self: Either<E, A>) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(self: Either<E, B>) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (self: Either<E, A>) => Either<E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <E1>( + ma: Either<E1, A> + ) => Either<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1, B extends A>(mb: Either<E1, B>) => Either<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1>(ma: Either<E1, A>) => Either<E1 | E2, A> +} +/** + * Returns a `Right` if is a `Left` (and vice versa). + * + * @since 2.0.0 + */ +export declare const swap: <E, A>(ma: Either<E, A>) => Either<A, E> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, E2, B>( + onLeft: (e: E1) => Either<E2, B> +) => <A>(ma: Either<E1, A>) => Either<E2, A | B> +/** + * Useful for recovering from errors. + * + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, A, E2>(onLeft: (e: E1) => Either<E2, A>) => (ma: Either<E1, A>) => Either<E2, A> +/** + * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use + * the provided default as a `Left`. + * + * @example + * import { fromNullable, left, right } from 'fp-ts/Either' + * + * const parse = fromNullable('nully') + * + * assert.deepStrictEqual(parse(1), right(1)) + * assert.deepStrictEqual(parse(null), left('nully')) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromNullable: <E>(e: E) => <A>(a: A) => Either<E, NonNullable<A>> +/** + * Constructs a new `Either` from a function that might throw. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import * as E from 'fp-ts/Either' + * + * const unsafeHead = <A>(as: ReadonlyArray<A>): A => { + * if (as.length > 0) { + * return as[0] + * } else { + * throw new Error('empty array') + * } + * } + * + * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> => + * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error'))) + * + * assert.deepStrictEqual(head([]), E.left(new Error('empty array'))) + * assert.deepStrictEqual(head([1, 2, 3]), E.right(1)) + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <E, A>(f: LazyArg<A>, onThrow: (e: unknown) => E) => Either<E, A> +/** + * Converts a function that may throw to one returning a `Either`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B, + onThrow: (error: unknown) => E +) => (...a: A) => Either<E, B> +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.9.0 + */ +export declare const fromNullableK: <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Either<E, NonNullable<B>> +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.9.0 + */ +export declare const chainNullableK: <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: Either<E, A>) => Either<E, NonNullable<B>> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <E, A>(fa: Either<E, A>) => E | A +/** + * Default value for the `onError` argument of `tryCatch` + * + * @since 2.0.0 + */ +export declare function toError(e: unknown): Error +/** + * @since 2.0.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): <E>(ma: Either<E, A>) => boolean + <E>(a: A, ma: Either<E, A>): boolean +} +/** + * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value. + * + * @example + * import { exists, left, right } from 'fp-ts/Either' + * + * const gt2 = exists((n: number) => n > 2) + * + * assert.strictEqual(gt2(left('a')), false) + * assert.strictEqual(gt2(right(1)), false) + * assert.strictEqual(gt2(right(3)), true) + * + * @since 2.0.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: Either<unknown, A>) => boolean +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Either<never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>(fa: import('./HKT').Kind2<'Either', E, A>) => import('./HKT').Kind2<'Either', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'Either', E, A> +) => import('./HKT').Kind2<'Either', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'Either', E, B> +) => ( + ma: import('./HKT').Kind2<'Either', E, A> +) => import('./HKT').Kind2<'Either', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Either<E2, B> +) => <E1>(fa: Either<E1, A>) => Either< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: Either<E, B> +) => ( + fa: import('./HKT').Kind2<'Either', E, A> +) => import('./HKT').Kind2<'Either', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, E2, B>( + name: Exclude<N, keyof A>, + fb: Either<E2, B> +) => <E1>(fa: Either<E1, A>) => Either< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: Either<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => Either<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => Either<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => Either<E, B> +) => (as: ReadonlyArray<A>) => Either<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <E, A, B>( + f: (index: number, a: A) => Either<E, B> +) => (as: ReadonlyArray<A>) => Either<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <E, A, B>( + f: (a: A) => Either<E, B> +) => (as: ReadonlyArray<A>) => Either<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <E, A>(as: ReadonlyArray<Either<E, A>>) => Either<E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <E2, A, B>(f: (a: A) => Either<E2, B>) => <E1>(ma: Either<E1, A>) => Either<E2 | E1, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Either<E, A>) => Either<E, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Either<E, A>) => Either<E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <E1>(ma: Either<E1, A>) => Either<E1 | E2, A> +/** + * Use [`Json`](./Json.ts.html) module instead. + * + * @category zone of death + * @since 2.6.7 + * @deprecated + */ +export type Json = boolean | number | string | null | JsonArray | JsonRecord +/** + * Use [`Json`](./Json.ts.html) module instead. + * + * @category zone of death + * @since 2.6.7 + * @deprecated + */ +export interface JsonRecord { + readonly [key: string]: Json +} +/** + * Use [`Json`](./Json.ts.html) module instead. + * + * @category zone of death + * @since 2.6.7 + * @deprecated + */ +export interface JsonArray extends ReadonlyArray<Json> {} +/** + * Use [`parse`](./Json.ts.html#parse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function parseJSON<E>(s: string, onError: (reason: unknown) => E): Either<E, Json> +/** + * Use [`stringify`](./Json.ts.html#stringify) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const stringifyJSON: <E>(u: unknown, onError: (reason: unknown) => E) => Either<E, string> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either` + * (where `E` is from `import E from 'fp-ts/Either'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const either: Monad2<URI> & + Foldable2<URI> & + Traversable2<URI> & + Bifunctor2<URI> & + Alt2<URI> & + Extend2<URI> & + ChainRec2<URI> & + MonadThrow2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <E, A>(S: Semigroup<A>) => Semigroup<Either<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <E, A>(M: Monoid<A>) => Monoid<Either<E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getValidationSemigroup: <E, A>(SE: Semigroup<E>, SA: Semigroup<A>) => Semigroup<Either<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getValidationMonoid: <E, A>(SE: Semigroup<E>, MA: Monoid<A>) => Monoid<Either<E, A>> +/** + * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getValidation<E>( + SE: Semigroup<E> +): Monad2C<URI, E> & + Foldable2<URI> & + Traversable2<URI> & + Bifunctor2<URI> & + Alt2C<URI, E> & + Extend2<URI> & + ChainRec2C<URI, E> & + MonadThrow2C<URI, E> diff --git a/node_modules/fp-ts/es6/Either.js b/node_modules/fp-ts/es6/Either.js new file mode 100644 index 0000000..2da2978 --- /dev/null +++ b/node_modules/fp-ts/es6/Either.js @@ -0,0 +1,1480 @@ +import { getApplicativeMonoid } from './Applicative'; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { tailRec } from './ChainRec'; +import { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither'; +import { dual, flow, identity, pipe } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import { separated } from './Separated'; +import { wiltDefault, witherDefault } from './Witherable'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this + * structure. + * + * @category constructors + * @since 2.0.0 + */ +export var left = _.left; +/** + * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias + * of this structure. + * + * @category constructors + * @since 2.0.0 + */ +export var right = _.right; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isLeft(ma) ? ma : f(ma.right)); }); +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { return function (fa, f) { + var foldMapM = foldMap(M); + return pipe(fa, foldMapM(f)); +}; }; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); }; +var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +var _chainRec = function (a, f) { + return tailRec(f(a), function (e) { + return isLeft(e) ? right(left(e.left)) : isLeft(e.right) ? left(f(e.right.left)) : right(right(e.right.right)); + }); +}; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Either'; +/** + * @category instances + * @since 2.0.0 + */ +export var getShow = function (SE, SA) { return ({ + show: function (ma) { return (isLeft(ma) ? "left(".concat(SE.show(ma.left), ")") : "right(".concat(SA.show(ma.right), ")")); } +}); }; +/** + * @category instances + * @since 2.0.0 + */ +export var getEq = function (EL, EA) { return ({ + equals: function (x, y) { + return x === y || (isLeft(x) ? isLeft(y) && EL.equals(x.left, y.left) : isRight(y) && EA.equals(x.right, y.right)); + } +}); }; +/** + * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are + * concatenated using the provided `Semigroup` + * + * @example + * import { getSemigroup, left, right } from 'fp-ts/Either' + * import { SemigroupSum } from 'fp-ts/number' + * + * const S = getSemigroup<string, number>(SemigroupSum) + * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a')) + * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2)) + * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1)) + * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3)) + * + * @category instances + * @since 2.0.0 + */ +export var getSemigroup = function (S) { return ({ + concat: function (x, y) { return (isLeft(y) ? x : isLeft(x) ? y : right(S.concat(x.right, y.right))); } +}); }; +/** + * Builds a `Compactable` instance for `Either` given `Monoid` for the left side. + * + * @category filtering + * @since 2.10.0 + */ +export var getCompactable = function (M) { + var empty = left(M.empty); + return { + URI: URI, + _E: undefined, + compact: function (ma) { return (isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : right(ma.right.value)); }, + separate: function (ma) { + return isLeft(ma) + ? separated(ma, ma) + : isLeft(ma.right) + ? separated(right(ma.right.left), empty) + : separated(empty, right(ma.right.right)); + } + }; +}; +/** + * Builds a `Filterable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.10.0 + */ +export var getFilterable = function (M) { + var empty = left(M.empty); + var _a = getCompactable(M), compact = _a.compact, separate = _a.separate; + var filter = function (ma, predicate) { + return isLeft(ma) ? ma : predicate(ma.right) ? ma : empty; + }; + var partition = function (ma, p) { + return isLeft(ma) + ? separated(ma, ma) + : p(ma.right) + ? separated(empty, right(ma.right)) + : separated(right(ma.right), empty); + }; + return { + URI: URI, + _E: undefined, + map: _map, + compact: compact, + separate: separate, + filter: filter, + filterMap: function (ma, f) { + if (isLeft(ma)) { + return ma; + } + var ob = f(ma.right); + return ob._tag === 'None' ? empty : right(ob.value); + }, + partition: partition, + partitionMap: function (ma, f) { + if (isLeft(ma)) { + return separated(ma, ma); + } + var e = f(ma.right); + return isLeft(e) ? separated(right(e.left), empty) : separated(empty, right(e.right)); + } + }; +}; +/** + * Builds `Witherable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.0.0 + */ +export var getWitherable = function (M) { + var F_ = getFilterable(M); + var C = getCompactable(M); + return { + URI: URI, + _E: undefined, + map: _map, + compact: F_.compact, + separate: F_.separate, + filter: F_.filter, + filterMap: F_.filterMap, + partition: F_.partition, + partitionMap: F_.partitionMap, + traverse: _traverse, + sequence: sequence, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + wither: witherDefault(Traversable, C), + wilt: wiltDefault(Traversable, C) + }; +}; +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as A from 'fp-ts/Apply' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const parsePerson = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * E.apS('name', parseString(input.name)), + * E.apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error + * + * const Applicative = E.getApplicativeValidation( + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * const apS = A.apS(Applicative) + * + * const parsePersonAll = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * apS('name', parseString(input.name)), + * apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +export var getApplicativeValidation = function (SE) { return ({ + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { + return isLeft(fab) + ? isLeft(fa) + ? left(SE.concat(fab.left, fa.left)) + : fab + : isLeft(fa) + ? fa + : right(fab.right(fa.right)); + }, + of: of +}); }; +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * const parse = (u: unknown): E.Either<string, string | number> => + * pipe( + * parseString(u), + * E.alt<string, string | number>(() => parseNumber(u)) + * ) + * + * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error + * + * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', '))) + * + * const parseAll = (u: unknown): E.Either<string, string | number> => + * Alt.alt<string | number>(parseString(u), () => parseNumber(u)) + * + * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +export var getAltValidation = function (SE) { return ({ + URI: URI, + _E: undefined, + map: _map, + alt: function (me, that) { + if (isRight(me)) { + return me; + } + var ea = that(); + return isLeft(ea) ? left(SE.concat(me.left, ea.left)) : ea; + } +}); }; +/** + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { + return isLeft(fa) ? fa : right(f(fa.right)); +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Right` value of this `Either` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Right` value of this `Either` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category constructors + * @since 2.7.0 + */ +export var of = right; +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export var apW = function (fa) { return function (fab) { + return isLeft(fab) ? fab : isLeft(fa) ? fa : right(fab.right(fa.right)); +}; }; +/** + * @since 2.0.0 + */ +export var ap = apW; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * Left-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'prefix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduce(startWith, concat)), + * 'prefix:a' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduce(startWith, concat)), + * 'prefix' + * ) + * + * @category folding + * @since 2.0.0 + */ +export var reduce = function (b, f) { return function (fa) { + return isLeft(fa) ? b : f(b, fa.right); +}; }; +/** + * Map each element of the structure to a monoid, and combine the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as S from 'fp-ts/string' + * + * const yell = (a: string) => `${a}!` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)), + * 'a!' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)), + * S.Monoid.empty + * ) + * + * @category folding + * @since 2.0.0 + */ +export var foldMap = function (M) { return function (f) { return function (fa) { + return isLeft(fa) ? M.empty : f(fa.right); +}; }; }; +/** + * Right-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'postfix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduceRight(startWith, concat)), + * 'a:postfix' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduceRight(startWith, concat)), + * 'postfix' + * ) + * + * @category folding + * @since 2.0.0 + */ +export var reduceRight = function (b, f) { return function (fa) { + return isLeft(fa) ? b : f(fa.right, b); +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + return function (f) { + return function (ta) { + return isLeft(ta) ? F.of(left(ta.left)) : F.map(f(ta.right), right); + }; + }; +}; +/** + * Evaluate each monadic action in the structure from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(O.some('a')), E.sequence(O.Applicative)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right(O.none), E.sequence(O.Applicative)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (ma) { + return isLeft(ma) ? F.of(left(ma.left)) : F.map(ma.right, right); + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export var bimap = function (f, g) { return function (fa) { + return isLeft(fa) ? left(f(fa.left)) : right(g(fa.right)); +}; }; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +export var mapLeft = function (f) { return function (fa) { + return isLeft(fa) ? left(f(fa.left)) : fa; +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function (that) { return function (fa) { + return isLeft(fa) ? that() : fa; +}; }; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`). + * + * | x | y | pipe(x, alt(() => y) | + * | -------- | -------- | -------------------- | + * | left(a) | left(b) | left(b) | + * | left(a) | right(2) | right(2) | + * | right(1) | left(b) | right(1) | + * | right(1) | right(2) | right(1) | + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.left('b')) + * ), + * E.left('b') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.right(2)) + * ), + * E.right(2) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.left('b')) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.right(2)) + * ), + * E.right(1) + * ) + * + * @category error handling + * @since 2.0.0 + */ +export var alt = altW; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { + return isLeft(wa) ? wa : right(f(wa)); +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Extend = { + URI: URI, + map: _map, + extend: _extend +}; +/** + * @category instances + * @since 2.7.0 + */ +export var ChainRec = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRec +}; +/** + * @since 2.6.3 + */ +export var throwError = left; +/** + * @category instances + * @since 2.7.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + throwError: throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: identity +}; +/** + * @example + * import { fromPredicate, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * 1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * -1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * left('error') + * ) + * + * @category lifting + * @since 2.0.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe( + * O.some(1), + * E.fromOption(() => 'error') + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * O.none, + * E.fromOption(() => 'error') + * ), + * E.left('error') + * ) + * + * @category conversions + * @since 2.0.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Returns `true` if the either is an instance of `Left`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +export var isLeft = _.isLeft; +/** + * Returns `true` if the either is an instance of `Right`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +export var isRight = _.isRight; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = function (onLeft, onRight) { + return function (ma) { + return isLeft(ma) ? onLeft(ma.left) : onRight(ma.right); + }; +}; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchW; +/** + * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, + * if the value is a `Right` the inner value is applied to the second function. + * + * @example + * import { match, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * function onLeft(errors: Array<string>): string { + * return `Errors: ${errors.join(', ')}` + * } + * + * function onRight(value: number): string { + * return `Ok: ${value}` + * } + * + * assert.strictEqual( + * pipe( + * right(1), + * match(onLeft, onRight) + * ), + * 'Ok: 1' + * ) + * assert.strictEqual( + * pipe( + * left(['error 1', 'error 2']), + * match(onLeft, onRight) + * ), + * 'Errors: error 1, error 2' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export var match = matchW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = match; +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export var getOrElseW = function (onLeft) { + return function (ma) { + return isLeft(ma) ? onLeft(ma.left) : ma.right; + }; +}; +/** + * Returns the wrapped value if it's a `Right` or a default value if is a `Left`. + * + * @example + * import { getOrElse, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * right(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.deepStrictEqual( + * pipe( + * left('error'), + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +export var getOrElse = getOrElseW; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = +/*#__PURE__*/ flatMap(identity); +/** + * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level. + * + * @example + * import * as E from 'fp-ts/Either' + * + * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a')) + * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e')) + * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e')) + * + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var fromOptionK = +/*#__PURE__*/ fromOptionK_(FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export var chainOptionKW = chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: FromEither.fromEither +}; +/** + * @category lifting + * @since 2.15.0 + */ +export var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +export var liftOption = /*#__PURE__*/ _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap); +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(-1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('error') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('a') + * ) + * + * @category filtering + * @since 2.0.0 + */ +export var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export var filterOrElseW = filterOrElse; +/** + * Returns a `Right` if is a `Left` (and vice versa). + * + * @since 2.0.0 + */ +export var swap = function (ma) { return (isLeft(ma) ? right(ma.left) : left(ma.right)); }; +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var orElseW = function (onLeft) { + return function (ma) { + return isLeft(ma) ? onLeft(ma.left) : ma; + }; +}; +/** + * Useful for recovering from errors. + * + * @category error handling + * @since 2.0.0 + */ +export var orElse = orElseW; +/** + * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use + * the provided default as a `Left`. + * + * @example + * import { fromNullable, left, right } from 'fp-ts/Either' + * + * const parse = fromNullable('nully') + * + * assert.deepStrictEqual(parse(1), right(1)) + * assert.deepStrictEqual(parse(null), left('nully')) + * + * @category conversions + * @since 2.0.0 + */ +export var fromNullable = function (e) { + return function (a) { + return a == null ? left(e) : right(a); + }; +}; +/** + * Constructs a new `Either` from a function that might throw. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import * as E from 'fp-ts/Either' + * + * const unsafeHead = <A>(as: ReadonlyArray<A>): A => { + * if (as.length > 0) { + * return as[0] + * } else { + * throw new Error('empty array') + * } + * } + * + * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> => + * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error'))) + * + * assert.deepStrictEqual(head([]), E.left(new Error('empty array'))) + * assert.deepStrictEqual(head([1, 2, 3]), E.right(1)) + * + * @category interop + * @since 2.0.0 + */ +export var tryCatch = function (f, onThrow) { + try { + return right(f()); + } + catch (e) { + return left(onThrow(e)); + } +}; +/** + * Converts a function that may throw to one returning a `Either`. + * + * @category interop + * @since 2.10.0 + */ +export var tryCatchK = function (f, onThrow) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return tryCatch(function () { return f.apply(void 0, a); }, onThrow); + }; +}; +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.9.0 + */ +export var fromNullableK = function (e) { + var from = fromNullable(e); + return function (f) { return flow(f, from); }; +}; +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.9.0 + */ +export var chainNullableK = function (e) { + var from = fromNullableK(e); + return function (f) { return flatMap(from(f)); }; +}; +/** + * @category conversions + * @since 2.10.0 + */ +export var toUnion = /*#__PURE__*/ foldW(identity, identity); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Default value for the `onError` argument of `tryCatch` + * + * @since 2.0.0 + */ +export function toError(e) { + try { + return e instanceof Error ? e : new Error(String(e)); + } + catch (error) { + return new Error(); + } +} +export function elem(E) { + return function (a, ma) { + if (ma === undefined) { + var elemE_1 = elem(E); + return function (ma) { return elemE_1(a, ma); }; + } + return isLeft(ma) ? false : E.equals(a, ma.right); + }; +} +/** + * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value. + * + * @example + * import { exists, left, right } from 'fp-ts/Either' + * + * const gt2 = exists((n: number) => n > 2) + * + * assert.strictEqual(gt2(left('a')), false) + * assert.strictEqual(gt2(right(1)), false) + * assert.strictEqual(gt2(right(3)), true) + * + * @since 2.0.0 + */ +export var exists = function (predicate) { + return function (ma) { + return isLeft(ma) ? false : predicate(ma.right); + }; +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + var e = f(0, _.head(as)); + if (isLeft(e)) { + return e; + } + var out = [e.right]; + for (var i = 1; i < as.length; i++) { + var e_1 = f(i, as[i]); + if (isLeft(e_1)) { + return e_1; + } + out.push(e_1.right); + } + return right(out); + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export var chainFirstW = tap; +/** + * Use [`parse`](./Json.ts.html#parse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export function parseJSON(s, onError) { + return tryCatch(function () { return JSON.parse(s); }, onError); +} +/** + * Use [`stringify`](./Json.ts.html#stringify) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var stringifyJSON = function (u, onError) { + return tryCatch(function () { + var s = JSON.stringify(u); + if (typeof s !== 'string') { + throw new Error('Converting unsupported structure to JSON'); + } + return s; + }, onError); +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either` + * (where `E` is from `import E from 'fp-ts/Either'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var either = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + bimap: _bimap, + mapLeft: _mapLeft, + alt: _alt, + extend: _extend, + chainRec: _chainRec, + throwError: throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplySemigroup = +/*#__PURE__*/ getApplySemigroup_(Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplyMonoid = +/*#__PURE__*/ getApplicativeMonoid(Applicative); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getValidationSemigroup = function (SE, SA) { + return getApplySemigroup_(getApplicativeValidation(SE))(SA); +}; +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getValidationMonoid = function (SE, MA) { + return getApplicativeMonoid(getApplicativeValidation(SE))(MA); +}; +/** + * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export function getValidation(SE) { + var ap = getApplicativeValidation(SE).ap; + var alt = getAltValidation(SE).alt; + return { + URI: URI, + _E: undefined, + map: _map, + of: of, + chain: flatMap, + bimap: _bimap, + mapLeft: _mapLeft, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + extend: _extend, + traverse: _traverse, + sequence: sequence, + chainRec: _chainRec, + throwError: throwError, + ap: ap, + alt: alt + }; +} diff --git a/node_modules/fp-ts/es6/EitherT.d.ts b/node_modules/fp-ts/es6/EitherT.d.ts new file mode 100644 index 0000000..79314e9 --- /dev/null +++ b/node_modules/fp-ts/es6/EitherT.d.ts @@ -0,0 +1,669 @@ +/** + * The error monad transformer. It can be used to add error handling to other monads. + * + * The `of` function yields a successful computation, while `chain` sequences two subcomputations, failing on the first error. + * + * @since 2.0.0 + */ +import { ApplicativeComposition12, ApplicativeComposition22, ApplicativeCompositionHKT2 } from './Applicative' +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' +import * as E from './Either' +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' +import { Semigroup } from './Semigroup' +import Either = E.Either +/** + * @since 2.10.0 + */ +export declare function right<F extends URIS3>( + F: Pointed3<F> +): <A, R, FE, E = never>(a: A) => Kind3<F, R, FE, Either<E, A>> +export declare function right<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <A, R, E = never>(a: A) => Kind3<F, R, FE, Either<E, A>> +export declare function right<F extends URIS2>(F: Pointed2<F>): <A, FE, E = never>(a: A) => Kind2<F, FE, Either<E, A>> +export declare function right<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <A, E = never>(a: A) => Kind2<F, FE, Either<E, A>> +export declare function right<F extends URIS>(F: Pointed1<F>): <A, E = never>(a: A) => Kind<F, Either<E, A>> +export declare function right<F>(F: Pointed<F>): <A, E = never>(a: A) => HKT<F, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function left<F extends URIS3>( + F: Pointed3<F> +): <E, R, FE, A = never>(e: E) => Kind3<F, R, FE, Either<E, A>> +export declare function left<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <E, R, A = never>(e: E) => Kind3<F, R, FE, Either<E, A>> +export declare function left<F extends URIS2>(F: Pointed2<F>): <E, FE, A = never>(e: E) => Kind2<F, FE, Either<E, A>> +export declare function left<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <E, A = never>(e: E) => Kind2<F, FE, Either<E, A>> +export declare function left<F extends URIS>(F: Pointed1<F>): <E, A = never>(e: E) => Kind<F, Either<E, A>> +export declare function left<F>(F: Pointed<F>): <E, A = never>(e: E) => HKT<F, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function rightF<F extends URIS3>( + F: Functor3<F> +): <R, FE, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, Either<E, A>> +export declare function rightF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, Either<E, A>> +export declare function rightF<F extends URIS2>( + F: Functor2<F> +): <FE, A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, Either<E, A>> +export declare function rightF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, Either<E, A>> +export declare function rightF<F extends URIS>(F: Functor1<F>): <A, E = never>(fa: Kind<F, A>) => Kind<F, Either<E, A>> +export declare function rightF<F>(F: Functor<F>): <A, E = never>(fa: HKT<F, A>) => HKT<F, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function leftF<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, Either<E, A>> +export declare function leftF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, Either<E, A>> +export declare function leftF<F extends URIS2>( + F: Functor2<F> +): <FE, E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, Either<E, A>> +export declare function leftF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, Either<E, A>> +export declare function leftF<F extends URIS>(F: Functor1<F>): <E, A = never>(fe: Kind<F, E>) => Kind<F, Either<E, A>> +export declare function leftF<F>(F: Functor<F>): <E, A = never>(fe: HKT<F, E>) => HKT<F, Either<E, A>> +/** + * @since 2.12.0 + */ +export declare function fromNullable<F extends URIS3>( + F: Pointed3<F> +): <E>(e: E) => <A, S, R>(a: A) => Kind3<F, S, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS3, R>( + F: Pointed3C<F, R> +): <E>(e: E) => <A, S>(a: A) => Kind3<F, S, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS2>( + F: Pointed2<F> +): <E>(e: E) => <A, R>(a: A) => Kind2<F, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS2, R>( + F: Pointed2C<F, R> +): <E>(e: E) => <A>(a: A) => Kind2<F, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS>( + F: Pointed1<F> +): <E>(e: E) => <A>(a: A) => Kind<F, Either<E, NonNullable<A>>> +export declare function fromNullable<F>(F: Pointed<F>): <E>(e: E) => <A>(a: A) => HKT<F, Either<E, NonNullable<A>>> +/** + * @since 2.12.0 + */ +export declare function fromNullableK<F extends URIS3>( + F: Pointed3<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <S, R>(...a: A) => Kind3<F, S, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS3, R>( + F: Pointed3C<F, R> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <S>(...a: A) => Kind3<F, S, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS2>( + F: Pointed2<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R>(...a: A) => Kind2<F, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS2, R>( + F: Pointed2C<F, R> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind2<F, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS>( + F: Pointed1<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind<F, Either<E, NonNullable<B>>> +export declare function fromNullableK<F>( + F: Pointed<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => HKT<F, Either<E, NonNullable<B>>> +/** + * @since 2.12.0 + */ +export declare function chainNullableK<M extends URIS3>( + M: Monad3<M> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <S, R>(ma: Kind3<M, S, R, Either<E, A>>) => Kind3<M, S, R, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS3, R>( + M: Monad3C<M, R> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <S>(ma: Kind3<M, S, R, Either<E, A>>) => Kind3<M, S, R, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS2>( + M: Monad2<M> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <R>(ma: Kind2<M, R, Either<E, A>>) => Kind2<M, R, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS2, T>( + M: Monad2C<M, T> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => (ma: Kind2<M, T, Either<E, A>>) => Kind2<M, T, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS>( + M: Monad1<M> +): <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind<M, Either<E, A>>) => Kind<M, Either<E, NonNullable<B>>> +export declare function chainNullableK<M>( + M: Monad<M> +): <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: HKT<M, Either<E, A>>) => HKT<M, Either<E, NonNullable<B>>> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, FE, E>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<E, B>> +export declare function map<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<E, B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <FE, E>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<E, B>> +export declare function map<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<E, B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind<F, Either<E, A>>) => Kind<F, Either<E, B>> +export declare function map<F>( + F: Functor<F> +): <A, B>(f: (a: A) => B) => <E>(fa: HKT<F, Either<E, A>>) => HKT<F, Either<E, B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, FE, E, A>( + fa: Kind3<F, R, FE, Either<E, A>> +) => <B>(fab: Kind3<F, R, FE, Either<E, (a: A) => B>>) => Kind3<F, R, FE, Either<E, B>> +export declare function ap<F extends URIS3, FE>( + F: Apply3C<F, FE> +): <R, E, A>( + fa: Kind3<F, R, FE, Either<E, A>> +) => <B>(fab: Kind3<F, R, FE, Either<E, (a: A) => B>>) => Kind3<F, R, FE, Either<E, B>> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <FE, E, A>( + fa: Kind2<F, FE, Either<E, A>> +) => <B>(fab: Kind2<F, FE, Either<E, (a: A) => B>>) => Kind2<F, FE, Either<E, B>> +export declare function ap<F extends URIS2, FE>( + F: Apply2C<F, FE> +): <E, A>( + fa: Kind2<F, FE, Either<E, A>> +) => <B>(fab: Kind2<F, FE, Either<E, (a: A) => B>>) => Kind2<F, FE, Either<E, B>> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <E, A>(fa: Kind<F, Either<E, A>>) => <B>(fab: Kind<F, Either<E, (a: A) => B>>) => Kind<F, Either<E, B>> +export declare function ap<F>( + F: Apply<F> +): <E, A>(fa: HKT<F, Either<E, A>>) => <B>(fab: HKT<F, Either<E, (a: A) => B>>) => HKT<F, Either<E, B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS3>( + M: Monad3<M> +): <A, R, ME, E, B>( + f: (a: A) => Kind3<M, R, ME, Either<E, B>> +) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, B>> +export declare function chain<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <A, R, E, B>( + f: (a: A) => Kind3<M, R, ME, Either<E, B>> +) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, B>> +export declare function chain<M extends URIS2>( + M: Monad2<M> +): <A, ME, E, B>( + f: (a: A) => Kind2<M, ME, Either<E, B>> +) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, B>> +export declare function chain<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <A, E, B>(f: (a: A) => Kind2<M, ME, Either<E, B>>) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, B>> +export declare function chain<M extends URIS>( + M: Monad1<M> +): <A, E, B>(f: (a: A) => Kind<M, Either<E, B>>) => (ma: Kind<M, Either<E, A>>) => Kind<M, Either<E, B>> +export declare function chain<M>( + M: Monad<M> +): <A, E, B>(f: (a: A) => HKT<M, Either<E, B>>) => (ma: HKT<M, Either<E, A>>) => HKT<M, Either<E, B>> +/** + * @since 2.10.0 + */ +export declare function alt<M extends URIS3>( + M: Monad3<M> +): <R, ME, E, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function alt<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <R, E, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function alt<M extends URIS2>( + M: Monad2<M> +): <ME, E, A>( + second: LazyArg<Kind2<M, ME, Either<E, A>>> +) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function alt<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E, A>( + second: LazyArg<Kind2<M, ME, Either<E, A>>> +) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function alt<M extends URIS>( + M: Monad1<M> +): <E, A>(second: LazyArg<Kind<M, Either<E, A>>>) => (first: Kind<M, Either<E, A>>) => Kind<M, Either<E, A>> +export declare function alt<M>( + M: Monad<M> +): <E, A>(second: LazyArg<HKT<M, Either<E, A>>>) => (first: HKT<M, Either<E, A>>) => HKT<M, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function bimap<F extends URIS3>( + F: Functor3<F> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R, FE>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, B>> +export declare function bimap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, B>> +export declare function bimap<F extends URIS2>( + F: Functor2<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <FE>(self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, B>> +export declare function bimap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, B>> +export declare function bimap<F extends URIS>( + F: Functor1<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: Kind<F, Either<E, A>>) => Kind<F, Either<G, B>> +export declare function bimap<F>( + F: Functor<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: HKT<F, Either<E, A>>) => HKT<F, Either<G, B>> +/** + * @since 2.10.0 + */ +export declare function mapLeft<F extends URIS3>( + F: Functor3<F> +): <E, G>(f: (e: E) => G) => <R, FE, A>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, A>> +export declare function mapLeft<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G>(f: (e: E) => G) => <R, A>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, A>> +export declare function mapLeft<F extends URIS2>( + F: Functor2<F> +): <E, G>(f: (e: E) => G) => <FE, A>(self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, A>> +export declare function mapLeft<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G>(f: (e: E) => G) => <A>(self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, A>> +export declare function mapLeft<F extends URIS>( + F: Functor1<F> +): <E, G>(f: (e: E) => G) => <A>(self: Kind<F, Either<E, A>>) => Kind<F, Either<G, A>> +export declare function mapLeft<F>( + F: Functor<F> +): <E, G>(f: (e: E) => G) => <A>(self: HKT<F, Either<E, A>>) => HKT<F, Either<G, A>> +/** + * @category error handling + * @since 2.10.0 + */ +export declare function altValidation<M extends URIS3, E>( + M: Monad3<M>, + S: Semigroup<E> +): <R, ME, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function altValidation<M extends URIS3, ME, E>( + M: Monad3C<M, ME>, + S: Semigroup<E> +): <R, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function altValidation<M extends URIS2, E>( + M: Monad2<M>, + S: Semigroup<E> +): <ME, A>( + second: LazyArg<Kind2<M, ME, Either<E, A>>> +) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function altValidation<M extends URIS2, ME, E>( + M: Monad2C<M, ME>, + S: Semigroup<E> +): <A>(second: LazyArg<Kind2<M, ME, Either<E, A>>>) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function altValidation<M extends URIS, E>( + M: Monad1<M>, + S: Semigroup<E> +): <A>(second: LazyArg<Kind<M, Either<E, A>>>) => (first: Kind<M, Either<E, A>>) => Kind<M, Either<E, A>> +export declare function altValidation<M, E>( + M: Monad<M>, + S: Semigroup<E> +): <A>(second: LazyArg<HKT<M, Either<E, A>>>) => (first: HKT<M, Either<E, A>>) => HKT<M, Either<E, A>> +/** + * @category pattern matching + * @since 2.11.0 + */ +export declare function match<F extends URIS3>( + F: Functor3<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B +) => <R, ME>(ma: Kind3<F, R, ME, Either<E, A>>) => Kind3<F, R, ME, B> +export declare function match<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => <R>(ma: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, B> +export declare function match<F extends URIS2>( + F: Functor2<F> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => <FE>(ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, B> +export declare function match<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, B> +export declare function match<F extends URIS>( + F: Functor1<F> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind<F, Either<E, A>>) => Kind<F, B> +export declare function match<F>( + F: Functor<F> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: HKT<F, Either<E, A>>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function matchE<M extends URIS3>( + M: Chain3<M> +): <E, R, FE, B, A>( + onLeft: (e: E) => Kind3<M, R, FE, B>, + onRight: (a: A) => Kind3<M, R, FE, B> +) => (ma: Kind3<M, R, FE, Either<E, A>>) => Kind3<M, R, FE, B> +export declare function matchE<M extends URIS3, FE>( + M: Chain3C<M, FE> +): <E, R, B, A>( + onLeft: (e: E) => Kind3<M, R, FE, B>, + onRight: (a: A) => Kind3<M, R, FE, B> +) => (ma: Kind3<M, R, FE, Either<E, A>>) => Kind3<M, R, FE, B> +export declare function matchE<M extends URIS2>( + M: Chain2<M> +): <E, FE, B, A>( + onLeft: (e: E) => Kind2<M, FE, B>, + onRight: (a: A) => Kind2<M, FE, B> +) => (ma: Kind2<M, FE, Either<E, A>>) => Kind2<M, FE, B> +export declare function matchE<M extends URIS2, FE>( + M: Chain2C<M, FE> +): <E, B, A>( + onLeft: (e: E) => Kind2<M, FE, B>, + onRight: (a: A) => Kind2<M, FE, B> +) => (ma: Kind2<M, FE, Either<E, A>>) => Kind2<M, FE, B> +export declare function matchE<M extends URIS>( + M: Chain1<M> +): <E, B, A>(onLeft: (e: E) => Kind<M, B>, onRight: (a: A) => Kind<M, B>) => (ma: Kind<M, Either<E, A>>) => Kind<M, B> +export declare function matchE<M>( + M: Chain<M> +): <E, B, A>(onLeft: (e: E) => HKT<M, B>, onRight: (a: A) => HKT<M, B>) => (ma: HKT<M, Either<E, A>>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function getOrElse<M extends URIS3>( + M: Monad3<M> +): <E, R, ME, A>(onLeft: (e: E) => Kind3<M, R, ME, A>) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, A> +export declare function getOrElse<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E, R, A>(onLeft: (e: E) => Kind3<M, R, ME, A>) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, A> +export declare function getOrElse<M extends URIS2>( + M: Monad2<M> +): <E, ME, A>(onLeft: (e: E) => Kind2<M, ME, A>) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, A> +export declare function getOrElse<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E, A>(onLeft: (e: E) => Kind2<M, ME, A>) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, A> +export declare function getOrElse<M extends URIS>( + M: Monad1<M> +): <E, A>(onLeft: (e: E) => Kind<M, A>) => (ma: Kind<M, Either<E, A>>) => Kind<M, A> +export declare function getOrElse<M>( + M: Monad<M> +): <E, A>(onLeft: (e: E) => HKT<M, A>) => (ma: HKT<M, Either<E, A>>) => HKT<M, A> +/** + * @since 2.10.0 + */ +export declare function orElse<M extends URIS3>( + M: Monad3<M> +): <E1, R, ME, E2, A>( + onLeft: (e: E1) => Kind3<M, R, ME, Either<E2, A>> +) => (ma: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orElse<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E1, R, E2, A>( + onLeft: (e: E1) => Kind3<M, R, ME, Either<E2, A>> +) => (ma: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orElse<M extends URIS2>( + M: Monad2<M> +): <E1, ME, E2, A>( + onLeft: (e: E1) => Kind2<M, ME, Either<E2, A>> +) => (ma: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orElse<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E1, E2, A>( + onLeft: (e: E1) => Kind2<M, ME, Either<E2, A>> +) => (ma: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orElse<M extends URIS>( + M: Monad1<M> +): <E1, E2, A>(onLeft: (e: E1) => Kind<M, Either<E2, A>>) => (ma: Kind<M, Either<E1, A>>) => Kind<M, Either<E2, A>> +export declare function orElse<M>( + M: Monad<M> +): <E1, E2, A>(onLeft: (e: E1) => HKT<M, Either<E2, A>>) => (ma: HKT<M, Either<E1, A>>) => HKT<M, Either<E2, A>> +/** + * @category error handling + * @since 2.11.0 + */ +export declare function orElseFirst<M extends URIS3>( + M: Monad3<M> +): <E, R, ME, B>( + onLeft: (e: E) => Kind3<M, R, ME, Either<E, B>> +) => <A>(ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E, R, B>( + onLeft: (e: E) => Kind3<M, R, ME, Either<E, B>> +) => <A>(ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS2>( + M: Monad2<M> +): <E, ME, B>( + onLeft: (e: E) => Kind2<M, ME, Either<E, B>> +) => <A>(ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E, B>( + onLeft: (e: E) => Kind2<M, ME, Either<E, B>> +) => <A>(ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS>( + M: Monad1<M> +): <E, B>(onLeft: (e: E) => Kind<M, Either<E, B>>) => <A>(ma: Kind<M, Either<E, A>>) => Kind<M, Either<E, A>> +export declare function orElseFirst<M>( + M: Monad<M> +): <E, B>(onLeft: (e: E) => HKT<M, Either<E, B>>) => <A>(ma: HKT<M, Either<E, A>>) => HKT<M, Either<E, A>> +/** + * @category error handling + * @since 2.11.0 + */ +export declare function orLeft<M extends URIS3>( + M: Monad3<M> +): <E1, R, ME, E2>( + onLeft: (e: E1) => Kind3<M, R, ME, E2> +) => <A>(fa: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orLeft<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E1, R, E2>( + onLeft: (e: E1) => Kind3<M, R, ME, E2> +) => <A>(fa: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orLeft<M extends URIS2>( + M: Monad2<M> +): <E1, ME, E2>( + onLeft: (e: E1) => Kind2<M, ME, E2> +) => <A>(fa: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orLeft<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E1, E2>(onLeft: (e: E1) => Kind2<M, ME, E2>) => <A>(fa: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orLeft<M extends URIS>( + M: Monad1<M> +): <E1, E2>(onLeft: (e: E1) => Kind<M, E2>) => <A>(fa: Kind<M, Either<E1, A>>) => Kind<M, Either<E2, A>> +export declare function orLeft<M>( + M: Monad<M> +): <E1, E2>(onLeft: (e: E1) => HKT<M, E2>) => <A>(fa: HKT<M, Either<E1, A>>) => HKT<M, Either<E2, A>> +/** + * @since 2.10.0 + */ +export declare function swap<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A>(ma: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<A, E>> +export declare function swap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A>(ma: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<A, E>> +export declare function swap<F extends URIS2>( + F: Functor2<F> +): <FE, E, A>(ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<A, E>> +export declare function swap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<A, E>> +export declare function swap<F extends URIS>(F: Functor1<F>): <E, A>(ma: Kind<F, Either<E, A>>) => Kind<F, Either<A, E>> +export declare function swap<F>(F: Functor<F>): <E, A>(ma: HKT<F, Either<E, A>>) => HKT<F, Either<A, E>> +/** + * @since 2.10.0 + */ +export declare function toUnion<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, E | A> +export declare function toUnion<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, E | A> +export declare function toUnion<F extends URIS2>( + F: Functor2<F> +): <FE, E, A>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, E | A> +export declare function toUnion<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, E | A> +export declare function toUnion<F extends URIS>(F: Functor1<F>): <E, A>(fa: Kind<F, Either<E, A>>) => Kind<F, E | A> +export declare function toUnion<F>(F: Functor<F>): <E, A>(fa: HKT<F, Either<E, A>>) => HKT<F, E | A> +import URI = E.URI +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherT<M, E, A> extends HKT<M, Either<E, A>> {} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherM<M> extends ApplicativeCompositionHKT2<M, URI> { + readonly chain: <E, A, B>(ma: EitherT<M, E, A>, f: (a: A) => EitherT<M, E, B>) => EitherT<M, E, B> + readonly alt: <E, A>(fa: EitherT<M, E, A>, that: LazyArg<EitherT<M, E, A>>) => EitherT<M, E, A> + readonly bimap: <E, A, N, B>(ma: EitherT<M, E, A>, f: (e: E) => N, g: (a: A) => B) => EitherT<M, N, B> + readonly mapLeft: <E, A, N>(ma: EitherT<M, E, A>, f: (e: E) => N) => EitherT<M, N, A> + readonly fold: <E, A, R>(ma: EitherT<M, E, A>, onLeft: (e: E) => HKT<M, R>, onRight: (a: A) => HKT<M, R>) => HKT<M, R> + readonly getOrElse: <E, A>(ma: EitherT<M, E, A>, onLeft: (e: E) => HKT<M, A>) => HKT<M, A> + readonly orElse: <E, A, N>(ma: EitherT<M, E, A>, onLeft: (e: E) => EitherT<M, N, A>) => EitherT<M, N, A> + readonly swap: <E, A>(ma: EitherT<M, E, A>) => EitherT<M, A, E> + readonly rightM: <E, A>(ma: HKT<M, A>) => EitherT<M, E, A> + readonly leftM: <E, A>(me: HKT<M, E>) => EitherT<M, E, A> + readonly left: <E, A>(e: E) => EitherT<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type EitherT1<M extends URIS, E, A> = Kind<M, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherM1<M extends URIS> extends ApplicativeComposition12<M, URI> { + readonly chain: <E, A, B>(ma: EitherT1<M, E, A>, f: (a: A) => EitherT1<M, E, B>) => EitherT1<M, E, B> + readonly alt: <E, A>(fa: EitherT1<M, E, A>, that: LazyArg<EitherT1<M, E, A>>) => EitherT1<M, E, A> + readonly bimap: <E, A, N, B>(ma: EitherT1<M, E, A>, f: (e: E) => N, g: (a: A) => B) => EitherT1<M, N, B> + readonly mapLeft: <E, A, N>(ma: EitherT1<M, E, A>, f: (e: E) => N) => EitherT1<M, N, A> + readonly fold: <E, A, R>( + ma: EitherT1<M, E, A>, + onLeft: (e: E) => Kind<M, R>, + onRight: (a: A) => Kind<M, R> + ) => Kind<M, R> + readonly getOrElse: <E, A>(ma: EitherT1<M, E, A>, onLeft: (e: E) => Kind<M, A>) => Kind<M, A> + readonly orElse: <E, A, N>(ma: EitherT1<M, E, A>, onLeft: (e: E) => EitherT1<M, N, A>) => EitherT1<M, N, A> + readonly swap: <E, A>(ma: EitherT1<M, E, A>) => EitherT1<M, A, E> + readonly rightM: <E, A>(ma: Kind<M, A>) => EitherT1<M, E, A> + readonly leftM: <E, A>(me: Kind<M, E>) => EitherT1<M, E, A> + readonly left: <E, A>(e: E) => EitherT1<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type EitherT2<M extends URIS2, R, E, A> = Kind2<M, R, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherM2<M extends URIS2> extends ApplicativeComposition22<M, URI> { + readonly chain: <R, E, A, B>(ma: EitherT2<M, R, E, A>, f: (a: A) => EitherT2<M, R, E, B>) => EitherT2<M, R, E, B> + readonly alt: <R, E, A>(fa: EitherT2<M, R, E, A>, that: LazyArg<EitherT2<M, R, E, A>>) => EitherT2<M, R, E, A> + readonly bimap: <R, E, A, N, B>(ma: EitherT2<M, R, E, A>, f: (e: E) => N, g: (a: A) => B) => EitherT2<M, R, N, B> + readonly mapLeft: <R, E, A, N>(ma: EitherT2<M, R, E, A>, f: (e: E) => N) => EitherT2<M, R, N, A> + readonly fold: <R, E, A, B>( + ma: EitherT2<M, R, E, A>, + onLeft: (e: E) => Kind2<M, R, B>, + onRight: (a: A) => Kind2<M, R, B> + ) => Kind2<M, R, B> + readonly getOrElse: <R, E, A>(ma: EitherT2<M, R, E, A>, onLeft: (e: E) => Kind2<M, R, A>) => Kind2<M, R, A> + readonly orElse: <R, E, A, F>( + ma: EitherT2<M, R, E, A>, + onLeft: (e: E) => EitherT2<M, R, F, A> + ) => EitherT2<M, R, F, A> + readonly swap: <R, E, A>(ma: EitherT2<M, R, E, A>) => EitherT2<M, R, A, E> + readonly rightM: <R, E, A>(ma: Kind2<M, R, A>) => EitherT2<M, R, E, A> + readonly leftM: <R, E, A>(me: Kind2<M, R, E>) => EitherT2<M, R, E, A> + readonly left: <R, E, A>(e: E) => EitherT2<M, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getEitherM<M extends URIS2>(M: Monad2<M>): EitherM2<M> +/** @deprecated */ +export declare function getEitherM<M extends URIS>(M: Monad1<M>): EitherM1<M> +/** @deprecated */ +export declare function getEitherM<M>(M: Monad<M>): EitherM<M> diff --git a/node_modules/fp-ts/es6/EitherT.js b/node_modules/fp-ts/es6/EitherT.js new file mode 100644 index 0000000..18e1109 --- /dev/null +++ b/node_modules/fp-ts/es6/EitherT.js @@ -0,0 +1,137 @@ +import { ap as ap_ } from './Apply'; +import * as E from './Either'; +import { flow, pipe } from './function'; +import { map as map_ } from './Functor'; +export function right(F) { + return flow(E.right, F.of); +} +export function left(F) { + return flow(E.left, F.of); +} +export function rightF(F) { + return function (fa) { return F.map(fa, E.right); }; +} +export function leftF(F) { + return function (fe) { return F.map(fe, E.left); }; +} +export function fromNullable(F) { + return function (e) { return flow(E.fromNullable(e), F.of); }; +} +export function fromNullableK(F) { + var fromNullableF = fromNullable(F); + return function (e) { + var fromNullableFE = fromNullableF(e); + return function (f) { return flow(f, fromNullableFE); }; + }; +} +export function chainNullableK(M) { + var chainM = chain(M); + var fromNullableKM = fromNullableK(M); + return function (e) { + var fromNullableKMe = fromNullableKM(e); + return function (f) { return chainM(fromNullableKMe(f)); }; + }; +} +export function map(F) { + return map_(F, E.Functor); +} +export function ap(F) { + return ap_(F, E.Apply); +} +export function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +export function flatMap(M) { + return function (ma, f) { return M.chain(ma, function (e) { return (E.isLeft(e) ? M.of(e) : f(e.right)); }); }; +} +export function alt(M) { + return function (second) { return function (first) { return M.chain(first, function (e) { return (E.isLeft(e) ? second() : M.of(e)); }); }; }; +} +export function bimap(F) { + var mapBothF = mapBoth(F); + return function (f, g) { return function (self) { return mapBothF(self, f, g); }; }; +} +/** @internal */ +export function mapBoth(F) { + return function (self, f, g) { return F.map(self, E.bimap(f, g)); }; +} +export function mapLeft(F) { + var mapErrorF = mapError(F); + return function (f) { return function (self) { return mapErrorF(self, f); }; }; +} +/** @internal */ +export function mapError(F) { + return function (self, f) { return F.map(self, E.mapLeft(f)); }; +} +export function altValidation(M, S) { + return function (second) { return function (first) { + return M.chain(first, E.match(function (e1) { + return M.map(second(), E.mapLeft(function (e2) { return S.concat(e1, e2); })); + }, right(M))); + }; }; +} +export function match(F) { + return function (onLeft, onRight) { return function (ma) { return F.map(ma, E.match(onLeft, onRight)); }; }; +} +export function matchE(M) { + return function (onLeft, onRight) { return function (ma) { return M.chain(ma, E.match(onLeft, onRight)); }; }; +} +export function getOrElse(M) { + return function (onLeft) { return function (ma) { return M.chain(ma, E.match(onLeft, M.of)); }; }; +} +export function orElse(M) { + return function (onLeft) { return function (ma) { return M.chain(ma, function (e) { return (E.isLeft(e) ? onLeft(e.left) : M.of(e)); }); }; }; +} +export function orElseFirst(M) { + var tapErrorM = tapError(M); + return function (onLeft) { return function (ma) { return tapErrorM(ma, onLeft); }; }; +} +/** @internal */ +export function tapError(M) { + var orElseM = orElse(M); + return function (ma, onLeft) { + return pipe(ma, orElseM(function (e) { return M.map(onLeft(e), function (eb) { return (E.isLeft(eb) ? eb : E.left(e)); }); })); + }; +} +export function orLeft(M) { + return function (onLeft) { return function (ma) { + return M.chain(ma, E.match(function (e) { return M.map(onLeft(e), E.left); }, function (a) { return M.of(E.right(a)); })); + }; }; +} +export function swap(F) { + return function (ma) { return F.map(ma, E.swap); }; +} +export function toUnion(F) { + return function (fa) { return F.map(fa, E.toUnion); }; +} +/** @deprecated */ +/* istanbul ignore next */ +export function getEitherM(M) { + var _ap = ap(M); + var _map = map(M); + var _chain = chain(M); + var _alt = alt(M); + var _bimap = bimap(M); + var _mapLeft = mapLeft(M); + var _fold = matchE(M); + var _getOrElse = getOrElse(M); + var _orElse = orElse(M); + return { + map: function (fa, f) { return pipe(fa, _map(f)); }, + ap: function (fab, fa) { return pipe(fab, _ap(fa)); }, + of: right(M), + chain: function (ma, f) { return pipe(ma, _chain(f)); }, + alt: function (fa, that) { return pipe(fa, _alt(that)); }, + bimap: function (fea, f, g) { return pipe(fea, _bimap(f, g)); }, + mapLeft: function (fea, f) { return pipe(fea, _mapLeft(f)); }, + fold: function (fa, onLeft, onRight) { return pipe(fa, _fold(onLeft, onRight)); }, + getOrElse: function (fa, onLeft) { return pipe(fa, _getOrElse(onLeft)); }, + orElse: function (fa, f) { return pipe(fa, _orElse(f)); }, + swap: swap(M), + rightM: rightF(M), + leftM: leftF(M), + left: left(M) + }; +} diff --git a/node_modules/fp-ts/es6/Endomorphism.d.ts b/node_modules/fp-ts/es6/Endomorphism.d.ts new file mode 100644 index 0000000..73dfee3 --- /dev/null +++ b/node_modules/fp-ts/es6/Endomorphism.d.ts @@ -0,0 +1,40 @@ +/** + * @since 2.11.0 + */ +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +/** + * @since 2.11.0 + */ +export interface Endomorphism<A> { + (a: A): A +} +/** + * @category type lambdas + * @since 2.11.0 + */ +export declare const URI = 'Endomorphism' +/** + * @category type lambdas + * @since 2.11.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Endomorphism<A> + } +} +/** + * Endomorphism form a `Semigroup` where the `concat` operation is the usual function composition. + * + * @category instances + * @since 2.11.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<Endomorphism<A>> +/** + * Endomorphism form a `Monoid` where the `empty` value is the `identity` function. + * + * @category instances + * @since 2.11.0 + */ +export declare const getMonoid: <A = never>() => Monoid<Endomorphism<A>> diff --git a/node_modules/fp-ts/es6/Endomorphism.js b/node_modules/fp-ts/es6/Endomorphism.js new file mode 100644 index 0000000..20d3213 --- /dev/null +++ b/node_modules/fp-ts/es6/Endomorphism.js @@ -0,0 +1,28 @@ +/** + * @since 2.11.0 + */ +import { flow, identity } from './function'; +/** + * @category type lambdas + * @since 2.11.0 + */ +export var URI = 'Endomorphism'; +/** + * Endomorphism form a `Semigroup` where the `concat` operation is the usual function composition. + * + * @category instances + * @since 2.11.0 + */ +export var getSemigroup = function () { return ({ + concat: function (first, second) { return flow(first, second); } +}); }; +/** + * Endomorphism form a `Monoid` where the `empty` value is the `identity` function. + * + * @category instances + * @since 2.11.0 + */ +export var getMonoid = function () { return ({ + concat: getSemigroup().concat, + empty: identity +}); }; diff --git a/node_modules/fp-ts/es6/Eq.d.ts b/node_modules/fp-ts/es6/Eq.d.ts new file mode 100644 index 0000000..97033e7 --- /dev/null +++ b/node_modules/fp-ts/es6/Eq.d.ts @@ -0,0 +1,206 @@ +/** + * The `Eq` type class represents types which support decidable equality. + * + * Instances must satisfy the following laws: + * + * 1. Reflexivity: `E.equals(a, a) === true` + * 2. Symmetry: `E.equals(a, b) === E.equals(b, a)` + * 3. Transitivity: if `E.equals(a, b) === true` and `E.equals(b, c) === true`, then `E.equals(a, c) === true` + * + * @since 2.0.0 + */ +import { Contravariant1 } from './Contravariant' +import { Monoid } from './Monoid' +import { ReadonlyRecord } from './ReadonlyRecord' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Eq<A> { + readonly equals: (x: A, y: A) => boolean +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const fromEquals: <A>(equals: Eq<A>['equals']) => Eq<A> +/** + * @since 2.10.0 + */ +export declare const struct: <A>(eqs: { [K in keyof A]: Eq<A[K]> }) => Eq<{ readonly [K in keyof A]: A[K] }> +/** + * Given a tuple of `Eq`s returns a `Eq` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Eq' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import * as B from 'fp-ts/boolean' + * + * const E = tuple(S.Eq, N.Eq, B.Eq) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true) + * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>(...eqs: { [K in keyof A]: Eq<A[K]> }) => Eq<Readonly<A>> +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for equality (meaning we have an `Eq<X>`) + * + * For example, given the following `User` type, we want to construct an `Eq<User>` that just looks at the `key` field + * for each user (since it's known to be unique). + * + * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq<UUID>`) and we know how to go from `User -> UUID`, + * using `contramap` we can do this + * + * @example + * import { contramap, Eq } from 'fp-ts/Eq' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/string' + * + * type UUID = string + * + * interface User { + * readonly key: UUID + * readonly firstName: string + * readonly lastName: string + * } + * + * const eqUUID: Eq<UUID> = S.Eq + * + * const eqUserByKey: Eq<User> = pipe( + * eqUUID, + * contramap((user) => user.key) + * ) + * + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k2', firstName: 'a1', lastName: 'b1' } + * ), + * false + * ) + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k1', firstName: 'a2', lastName: 'b1' } + * ), + * true + * ) + * + * @since 2.0.0 + */ +export declare const contramap: <A, B>(f: (b: B) => A) => (fa: Eq<A>) => Eq<B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Eq' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Eq<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare const eqStrict: Eq<unknown> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getSemigroup: <A>() => Semigroup<Eq<A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getMonoid: <A>() => Monoid<Eq<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Contravariant: Contravariant1<URI> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleEq: <T extends ReadonlyArray<Eq<any>>>( + ...eqs: T +) => Eq<{ + [K in keyof T]: T[K] extends Eq<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructEq: <O extends ReadonlyRecord<string, any>>(eqs: { + [K in keyof O]: Eq<O[K]> +}) => Eq<O> +/** + * Use [`eqStrict`](#eqstrict) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const strictEqual: <A>(a: A, b: A) => boolean +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq` + * (where `E` is from `import E from 'fp-ts/Eq'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eq: Contravariant1<URI> +/** + * Use [`Eq`](./boolean.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqBoolean: Eq<boolean> +/** + * Use [`Eq`](./string.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqString: Eq<string> +/** + * Use [`Eq`](./number.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqNumber: Eq<number> +/** + * Use [`Eq`](./Date.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqDate: Eq<Date> diff --git a/node_modules/fp-ts/es6/Eq.js b/node_modules/fp-ts/es6/Eq.js new file mode 100644 index 0000000..4e9c865 --- /dev/null +++ b/node_modules/fp-ts/es6/Eq.js @@ -0,0 +1,214 @@ +import { pipe } from './function'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export var fromEquals = function (equals) { return ({ + equals: function (x, y) { return x === y || equals(x, y); } +}); }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +export var struct = function (eqs) { + return fromEquals(function (first, second) { + for (var key in eqs) { + if (!eqs[key].equals(first[key], second[key])) { + return false; + } + } + return true; + }); +}; +/** + * Given a tuple of `Eq`s returns a `Eq` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Eq' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import * as B from 'fp-ts/boolean' + * + * const E = tuple(S.Eq, N.Eq, B.Eq) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true) + * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false) + * + * @since 2.10.0 + */ +export var tuple = function () { + var eqs = []; + for (var _i = 0; _i < arguments.length; _i++) { + eqs[_i] = arguments[_i]; + } + return fromEquals(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); }); +}; +/* istanbul ignore next */ +var contramap_ = function (fa, f) { return pipe(fa, contramap(f)); }; +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for equality (meaning we have an `Eq<X>`) + * + * For example, given the following `User` type, we want to construct an `Eq<User>` that just looks at the `key` field + * for each user (since it's known to be unique). + * + * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq<UUID>`) and we know how to go from `User -> UUID`, + * using `contramap` we can do this + * + * @example + * import { contramap, Eq } from 'fp-ts/Eq' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/string' + * + * type UUID = string + * + * interface User { + * readonly key: UUID + * readonly firstName: string + * readonly lastName: string + * } + * + * const eqUUID: Eq<UUID> = S.Eq + * + * const eqUserByKey: Eq<User> = pipe( + * eqUUID, + * contramap((user) => user.key) + * ) + * + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k2', firstName: 'a1', lastName: 'b1' } + * ), + * false + * ) + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k1', firstName: 'a2', lastName: 'b1' } + * ), + * true + * ) + * + * @since 2.0.0 + */ +export var contramap = function (f) { return function (fa) { + return fromEquals(function (x, y) { return fa.equals(f(x), f(y)); }); +}; }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Eq'; +/** + * @category instances + * @since 2.5.0 + */ +export var eqStrict = { + equals: function (a, b) { return a === b; } +}; +var empty = { + equals: function () { return true; } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var getSemigroup = function () { return ({ + concat: function (x, y) { return fromEquals(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); } +}); }; +/** + * @category instances + * @since 2.6.0 + */ +export var getMonoid = function () { return ({ + concat: getSemigroup().concat, + empty: empty +}); }; +/** + * @category instances + * @since 2.7.0 + */ +export var Contravariant = { + URI: URI, + contramap: contramap_ +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getTupleEq = tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getStructEq = struct; +/** + * Use [`eqStrict`](#eqstrict) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var strictEqual = eqStrict.equals; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq` + * (where `E` is from `import E from 'fp-ts/Eq'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var eq = Contravariant; +/** + * Use [`Eq`](./boolean.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var eqBoolean = eqStrict; +/** + * Use [`Eq`](./string.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var eqString = eqStrict; +/** + * Use [`Eq`](./number.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var eqNumber = eqStrict; +/** + * Use [`Eq`](./Date.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var eqDate = { + equals: function (first, second) { return first.valueOf() === second.valueOf(); } +}; diff --git a/node_modules/fp-ts/es6/Extend.d.ts b/node_modules/fp-ts/es6/Extend.d.ts new file mode 100644 index 0000000..13fa782 --- /dev/null +++ b/node_modules/fp-ts/es6/Extend.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.0.0 + */ +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Extend<W> extends Functor<W> { + readonly extend: <A, B>(wa: HKT<W, A>, f: (wa: HKT<W, A>) => B) => HKT<W, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend1<W extends URIS> extends Functor1<W> { + readonly extend: <A, B>(wa: Kind<W, A>, f: (wa: Kind<W, A>) => B) => Kind<W, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend2<W extends URIS2> extends Functor2<W> { + readonly extend: <E, A, B>(wa: Kind2<W, E, A>, f: (wa: Kind2<W, E, A>) => B) => Kind2<W, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend2C<W extends URIS2, E> extends Functor2C<W, E> { + readonly extend: <A, B>(wa: Kind2<W, E, A>, f: (wa: Kind2<W, E, A>) => B) => Kind2<W, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend3<W extends URIS3> extends Functor3<W> { + readonly extend: <R, E, A, B>(wa: Kind3<W, R, E, A>, f: (wa: Kind3<W, R, E, A>) => B) => Kind3<W, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Extend3C<W extends URIS3, E> extends Functor3C<W, E> { + readonly extend: <R, A, B>(wa: Kind3<W, R, E, A>, f: (wa: Kind3<W, R, E, A>) => B) => Kind3<W, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend4<W extends URIS4> extends Functor4<W> { + readonly extend: <S, R, E, A, B>(wa: Kind4<W, S, R, E, A>, f: (wa: Kind4<W, S, R, E, A>) => B) => Kind4<W, S, R, E, B> +} diff --git a/node_modules/fp-ts/es6/Extend.js b/node_modules/fp-ts/es6/Extend.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Extend.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Field.d.ts b/node_modules/fp-ts/es6/Field.d.ts new file mode 100644 index 0000000..a440474 --- /dev/null +++ b/node_modules/fp-ts/es6/Field.d.ts @@ -0,0 +1,36 @@ +/** + * Adapted from https://github.com/purescript/purescript-prelude/blob/master/src/Data/Field.purs + * + * @since 2.0.0 + */ +import { Eq } from './Eq' +import { Ring } from './Ring' +/** + * @category model + * @since 2.0.0 + */ +export interface Field<A> extends Ring<A> { + readonly degree: (a: A) => number + readonly div: (x: A, y: A) => A + readonly mod: (x: A, y: A) => A +} +/** + * The *greatest common divisor* of two values + * + * @since 2.0.0 + */ +export declare function gcd<A>(E: Eq<A>, field: Field<A>): (x: A, y: A) => A +/** + * The *least common multiple* of two values + * + * @since 2.0.0 + */ +export declare function lcm<A>(E: Eq<A>, F: Field<A>): (x: A, y: A) => A +/** + * Use [`Field`](./number.ts.html#field) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const fieldNumber: Field<number> diff --git a/node_modules/fp-ts/es6/Field.js b/node_modules/fp-ts/es6/Field.js new file mode 100644 index 0000000..5c88ef2 --- /dev/null +++ b/node_modules/fp-ts/es6/Field.js @@ -0,0 +1,43 @@ +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * The *greatest common divisor* of two values + * + * @since 2.0.0 + */ +export function gcd(E, field) { + var zero = field.zero; + var f = function (x, y) { return (E.equals(y, zero) ? x : f(y, field.mod(x, y))); }; + return f; +} +/** + * The *least common multiple* of two values + * + * @since 2.0.0 + */ +export function lcm(E, F) { + var zero = F.zero; + var gcdSF = gcd(E, F); + return function (x, y) { return (E.equals(x, zero) || E.equals(y, zero) ? zero : F.div(F.mul(x, y), gcdSF(x, y))); }; +} +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Field`](./number.ts.html#field) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var fieldNumber = { + add: function (x, y) { return x + y; }, + zero: 0, + mul: function (x, y) { return x * y; }, + one: 1, + sub: function (x, y) { return x - y; }, + degree: function (_) { return 1; }, + div: function (x, y) { return x / y; }, + mod: function (x, y) { return x % y; } +}; diff --git a/node_modules/fp-ts/es6/Filterable.d.ts b/node_modules/fp-ts/es6/Filterable.d.ts new file mode 100644 index 0000000..b8ca7d3 --- /dev/null +++ b/node_modules/fp-ts/es6/Filterable.d.ts @@ -0,0 +1,628 @@ +/** + * `Filterable` represents data structures which can be _partitioned_/_filtered_. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs + * + * @since 2.0.0 + */ +import { + Compactable, + Compactable1, + Compactable2, + Compactable2C, + Compactable3, + Compactable3C, + Compactable4, + CompactableComposition, + CompactableComposition11, + CompactableComposition12, + CompactableComposition12C, + CompactableComposition21, + CompactableComposition22, + CompactableComposition23 +} from './Compactable' +import { Either } from './Either' +import { + Functor, + Functor1, + Functor2, + Functor2C, + Functor3, + Functor3C, + Functor4, + FunctorComposition, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition23 +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Separated } from './Separated' +/** + * @since 2.0.0 + */ +export interface Filter<F> { + <A, B extends A>(fa: HKT<F, A>, refinement: Refinement<A, B>): HKT<F, B> + <A>(fa: HKT<F, A>, predicate: Predicate<A>): HKT<F, A> +} +/** + * @since 2.0.0 + */ +export interface Partition<F> { + <A, B extends A>(fa: HKT<F, A>, refinement: Refinement<A, B>): Separated<HKT<F, A>, HKT<F, B>> + <A>(fa: HKT<F, A>, predicate: Predicate<A>): Separated<HKT<F, A>, HKT<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable<F> extends Functor<F>, Compactable<F> { + /** + * Partition a data structure based on an either predicate. + */ + readonly partitionMap: <A, B, C>(fa: HKT<F, A>, f: (a: A) => Either<B, C>) => Separated<HKT<F, B>, HKT<F, C>> + /** + * Partition a data structure based on a boolean predicate. + */ + readonly partition: Partition<F> + /** + * Map over a data structure and filter based on an option predicate. + */ + readonly filterMap: <A, B>(fa: HKT<F, A>, f: (a: A) => Option<B>) => HKT<F, B> + /** + * Filter a data structure based on a boolean predicate. + */ + readonly filter: Filter<F> +} +/** + * @since 2.0.0 + */ +export interface Filter1<F extends URIS> { + <A, B extends A>(fa: Kind<F, A>, refinement: Refinement<A, B>): Kind<F, B> + <A>(fa: Kind<F, A>, predicate: Predicate<A>): Kind<F, A> +} +/** + * @since 2.0.0 + */ +export interface Partition1<F extends URIS> { + <A, B extends A>(fa: Kind<F, A>, refinement: Refinement<A, B>): Separated<Kind<F, A>, Kind<F, B>> + <A>(fa: Kind<F, A>, predicate: Predicate<A>): Separated<Kind<F, A>, Kind<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable1<F extends URIS> extends Functor1<F>, Compactable1<F> { + readonly partitionMap: <A, B, C>(fa: Kind<F, A>, f: (a: A) => Either<B, C>) => Separated<Kind<F, B>, Kind<F, C>> + readonly partition: Partition1<F> + readonly filterMap: <A, B>(fa: Kind<F, A>, f: (a: A) => Option<B>) => Kind<F, B> + readonly filter: Filter1<F> +} +/** + * @since 2.0.0 + */ +export interface Filter2<F extends URIS2> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Kind2<F, E, B> + <E, A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition2<F extends URIS2> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <E, A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable2<F extends URIS2> extends Functor2<F>, Compactable2<F> { + readonly partitionMap: <E, A, B, C>( + fa: Kind2<F, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partition: Partition2<F> + readonly filterMap: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => Option<B>) => Kind2<F, E, B> + readonly filter: Filter2<F> +} +/** + * @since 2.0.0 + */ +export interface Filter2C<F extends URIS2, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Kind2<F, E, B> + <A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition2C<F extends URIS2, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable2C<F extends URIS2, E> extends Functor2C<F, E>, Compactable2C<F, E> { + readonly partitionMap: <A, B, C>( + fa: Kind2<F, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partition: Partition2C<F, E> + readonly filterMap: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => Option<B>) => Kind2<F, E, B> + readonly filter: Filter2C<F, E> +} +/** + * @since 2.0.0 + */ +export interface Filter3<F extends URIS3> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Kind3<F, R, E, B> + <R, E, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Kind3<F, R, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition3<F extends URIS3> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, E, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable3<F extends URIS3> extends Functor3<F>, Compactable3<F> { + readonly partitionMap: <R, E, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partition: Partition3<F> + readonly filterMap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filter: Filter3<F> +} +/** + * @since 2.2.0 + */ +export interface Filter3C<F extends URIS3, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Kind3<F, R, E, B> + <R, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + */ +export interface Partition3C<F extends URIS3, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Filterable3C<F extends URIS3, E> extends Functor3C<F, E>, Compactable3C<F, E> { + readonly partitionMap: <R, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partition: Partition3C<F, E> + readonly filterMap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filter: Filter3C<F, E> +} +/** + * @since 2.0.0 + */ +export interface Filter4<F extends URIS4> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinement: Refinement<A, B>): Kind4<F, S, R, E, B> + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicate: Predicate<A>): Kind4<F, S, R, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition4<F extends URIS4> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinement: Refinement<A, B>): Separated< + Kind4<F, S, R, E, A>, + Kind4<F, S, R, E, B> + > + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicate: Predicate<A>): Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable4<F extends URIS4> extends Functor4<F>, Compactable4<F> { + readonly partitionMap: <S, R, E, A, B, C>( + fa: Kind4<F, S, R, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> + readonly partition: Partition4<F> + readonly filterMap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => Option<B>) => Kind4<F, S, R, E, B> + readonly filter: Filter4<F> +} +/** + * `filter` composition. + * + * @since 2.10.0 + */ +export declare function filter<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>(fga: Kind2<F, R, Kind2<G, E, A>>) => Kind2<F, R, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): <R, B extends A>(fgb: Kind2<F, R, Kind2<G, E, B>>) => Kind2<F, R, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): <R>(fga: Kind2<F, R, Kind2<G, E, A>>) => Kind2<F, R, Kind2<G, E, A>> +} +export declare function filter<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: Kind<F, Kind2<G, E, B>>) => Kind<F, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): (fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, A>> +} +export declare function filter<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: Kind<F, Kind<G, B>>) => Kind<F, Kind<G, B>> + <A>(predicate: Predicate<A>): (fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, A>> +} +export declare function filter<F, G>( + F: Functor<F>, + G: Filterable<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: HKT<F, HKT<G, B>>) => HKT<F, HKT<G, B>> + <A>(predicate: Predicate<A>): (fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, A>> +} +/** + * `filterMap` composition. + * + * @since 2.10.0 + */ +export declare function filterMap<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): <A, B>(f: (a: A) => Option<B>) => <FE>(fga: Kind2<F, FE, Kind2<G, E, A>>) => Kind2<F, FE, Kind2<G, E, B>> +export declare function filterMap<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): <A, B>(f: (a: A) => Option<B>) => (fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> +export declare function filterMap<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): <A, B>(f: (a: A) => Option<B>) => (fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +export declare function filterMap<F, G>( + F: Functor<F>, + G: Filterable<G> +): <A, B>(f: (a: A) => Option<B>) => (fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +/** + * `partition` composition. + * + * @since 2.10.0 + */ +export declare function partition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>( + fga: Kind2<F, R, Kind2<G, E, A>> + ) => Separated<Kind2<F, R, Kind2<G, E, A>>, Kind2<F, R, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): <R, B extends A>( + fgb: Kind2<F, R, Kind2<G, E, B>> + ) => Separated<Kind2<F, R, Kind2<G, E, B>>, Kind2<F, R, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): <R>( + fga: Kind2<F, R, Kind2<G, E, A>> + ) => Separated<Kind2<F, R, Kind2<G, E, A>>, Kind2<F, R, Kind2<G, E, A>>> +} +export declare function partition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): ( + fga: Kind<F, Kind2<G, E, A>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): <B extends A>( + fgb: Kind<F, Kind2<G, E, B>> + ) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): ( + fga: Kind<F, Kind2<G, E, A>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, A>>> +} +export declare function partition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): ( + fga: Kind<F, Kind<G, A>> + ) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, B>>> + <A>(predicate: Predicate<A>): <B extends A>( + fgb: Kind<F, Kind<G, B>> + ) => Separated<Kind<F, Kind<G, B>>, Kind<F, Kind<G, B>>> + <A>(predicate: Predicate<A>): (fga: Kind<F, Kind<G, A>>) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, A>>> +} +export declare function partition<F, G>( + F: Functor<F>, + G: Filterable<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): ( + fga: HKT<F, HKT<G, A>> + ) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, B>>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: HKT<F, HKT<G, B>>) => Separated<HKT<F, HKT<G, B>>, HKT<F, HKT<G, B>>> + <A>(predicate: Predicate<A>): (fga: HKT<F, HKT<G, A>>) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, A>>> +} +/** + * `partitionMap` composition. + * + * @since 2.10.0 + */ +export declare function partitionMap<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => <FE>(fa: Kind2<F, FE, Kind2<G, E, A>>) => Separated<Kind2<F, FE, Kind2<G, E, B>>, Kind2<F, FE, Kind2<G, E, C>>> +export declare function partitionMap<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Kind<F, Kind2<G, E, A>>) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, C>>> +export declare function partitionMap<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Kind<F, Kind<G, A>>) => Separated<Kind<F, Kind<G, B>>, Kind<F, Kind<G, C>>> +export declare function partitionMap<F, G>( + F: Functor<F>, + G: Filterable<G> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: HKT<F, HKT<G, A>>) => Separated<HKT<F, HKT<G, B>>, HKT<F, HKT<G, C>>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition<F, G> extends FunctorComposition<F, G>, CompactableComposition<F, G> { + readonly partitionMap: <A, B, C>( + fa: HKT<F, HKT<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<HKT<F, HKT<G, B>>, HKT<F, HKT<G, C>>> + readonly partition: <A>( + fa: HKT<F, HKT<G, A>>, + predicate: Predicate<A> + ) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, A>>> + readonly filterMap: <A, B>(fa: HKT<F, HKT<G, A>>, f: (a: A) => Option<B>) => HKT<F, HKT<G, B>> + readonly filter: <A>(fa: HKT<F, HKT<G, A>>, predicate: Predicate<A>) => HKT<F, HKT<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition11<F extends URIS, G extends URIS> + extends FunctorComposition11<F, G>, + CompactableComposition11<F, G> { + readonly partitionMap: <A, B, C>( + fa: Kind<F, Kind<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind<F, Kind<G, B>>, Kind<F, Kind<G, C>>> + readonly partition: <A>( + fa: Kind<F, Kind<G, A>>, + predicate: Predicate<A> + ) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, A>>> + readonly filterMap: <A, B>(fa: Kind<F, Kind<G, A>>, f: (a: A) => Option<B>) => Kind<F, Kind<G, B>> + readonly filter: <A>(fa: Kind<F, Kind<G, A>>, predicate: Predicate<A>) => Kind<F, Kind<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition12<F extends URIS, G extends URIS2> + extends FunctorComposition12<F, G>, + CompactableComposition12<F, G> { + readonly partitionMap: <E, A, B, C>( + fa: Kind<F, Kind2<G, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, C>>> + readonly partition: <E, A>( + fa: Kind<F, Kind2<G, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, A>>> + readonly filterMap: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => Option<B>) => Kind<F, Kind2<G, E, B>> + readonly filter: <E, A>(fa: Kind<F, Kind2<G, E, A>>, predicate: Predicate<A>) => Kind<F, Kind2<G, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition12C<F extends URIS, G extends URIS2, E> + extends FunctorComposition12C<F, G, E>, + CompactableComposition12C<F, G, E> { + readonly partitionMap: <A, B, C>( + fa: Kind<F, Kind2<G, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, C>>> + readonly partition: <A>( + fa: Kind<F, Kind2<G, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, A>>> + readonly filterMap: <A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => Option<B>) => Kind<F, Kind2<G, E, B>> + readonly filter: <A>(fa: Kind<F, Kind2<G, E, A>>, predicate: Predicate<A>) => Kind<F, Kind2<G, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition21<F extends URIS2, G extends URIS> + extends FunctorComposition21<F, G>, + CompactableComposition21<F, G> { + readonly partitionMap: <E, A, B, C>( + fa: Kind2<F, E, Kind<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, Kind<G, B>>, Kind2<F, E, Kind<G, C>>> + readonly partition: <E, A>( + fa: Kind2<F, E, Kind<G, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, E, Kind<G, A>>, Kind2<F, E, Kind<G, A>>> + readonly filterMap: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => Option<B>) => Kind2<F, E, Kind<G, B>> + readonly filter: <E, A>(fa: Kind2<F, E, Kind<G, A>>, predicate: Predicate<A>) => Kind2<F, E, Kind<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition2C1<F extends URIS2, G extends URIS, E> + extends FunctorComposition21<F, G>, + CompactableComposition21<F, G> { + readonly partitionMap: <A, B, C>( + fa: Kind2<F, E, Kind<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, Kind<G, B>>, Kind2<F, E, Kind<G, C>>> + readonly partition: <A>( + fa: Kind2<F, E, Kind<G, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, E, Kind<G, A>>, Kind2<F, E, Kind<G, A>>> + readonly filterMap: <A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => Option<B>) => Kind2<F, E, Kind<G, B>> + readonly filter: <A>(fa: Kind2<F, E, Kind<G, A>>, predicate: Predicate<A>) => Kind2<F, E, Kind<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition22<F extends URIS2, G extends URIS2> + extends FunctorComposition22<F, G>, + CompactableComposition22<F, G> { + readonly partitionMap: <FE, GE, A, B, C>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, FE, Kind2<G, GE, B>>, Kind2<F, FE, Kind2<G, GE, C>>> + readonly partition: <FE, GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, FE, Kind2<G, GE, A>>, Kind2<F, FE, Kind2<G, GE, A>>> + readonly filterMap: <FE, GE, A, B>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + f: (a: A) => Option<B> + ) => Kind2<F, FE, Kind2<G, GE, B>> + readonly filter: <FE, GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + predicate: Predicate<A> + ) => Kind2<F, FE, Kind2<G, GE, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition22C<F extends URIS2, G extends URIS2, E> + extends FunctorComposition22<F, G>, + CompactableComposition22<F, G> { + readonly partitionMap: <FE, A, B, C>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, FE, Kind2<G, E, B>>, Kind2<F, FE, Kind2<G, E, C>>> + readonly partition: <FE, A>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, FE, Kind2<G, E, A>>, Kind2<F, FE, Kind2<G, E, A>>> + readonly filterMap: <FE, A, B>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + f: (a: A) => Option<B> + ) => Kind2<F, FE, Kind2<G, E, B>> + readonly filter: <FE, A>(fa: Kind2<F, FE, Kind2<G, E, A>>, predicate: Predicate<A>) => Kind2<F, FE, Kind2<G, E, A>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface FilterableComposition23C<F extends URIS2, G extends URIS3, E> + extends FunctorComposition23<F, G>, + CompactableComposition23<F, G> { + readonly partitionMap: <R, FE, A, B, C>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, FE, Kind3<G, R, E, B>>, Kind2<F, FE, Kind3<G, R, E, C>>> + readonly partition: <R, FE, A>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, FE, Kind3<G, R, E, A>>, Kind2<F, FE, Kind3<G, R, E, A>>> + readonly filterMap: <R, FE, A, B>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + f: (a: A) => Option<B> + ) => Kind2<F, FE, Kind3<G, R, E, B>> + readonly filter: <R, FE, A>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + predicate: Predicate<A> + ) => Kind2<F, FE, Kind3<G, R, E, A>> +} +/** + * Use + * + * - [`filter`](#filter) + * - [`filterMap`](#filtermap) + * - [`partition`](#partition) + * - [`partitionMap`](#partitionmap) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS3, E>( + F: Functor2<F>, + G: Filterable3C<G, E> +): FilterableComposition23C<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): FilterableComposition22C<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Filterable2<G> +): FilterableComposition22<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS, E>( + F: Functor2C<F, E>, + G: Filterable1<G> +): FilterableComposition2C1<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Filterable1<G> +): FilterableComposition21<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): FilterableComposition12C<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Filterable2<G> +): FilterableComposition12<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): FilterableComposition11<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F, G>(F: Functor<F>, G: Filterable<G>): FilterableComposition<F, G> diff --git a/node_modules/fp-ts/es6/Filterable.js b/node_modules/fp-ts/es6/Filterable.js new file mode 100644 index 0000000..28a2597 --- /dev/null +++ b/node_modules/fp-ts/es6/Filterable.js @@ -0,0 +1,52 @@ +/** + * `Filterable` represents data structures which can be _partitioned_/_filtered_. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs + * + * @since 2.0.0 + */ +import { compact, separate } from './Compactable'; +import { pipe } from './function'; +import { getFunctorComposition } from './Functor'; +import { getLeft, getRight } from './Option'; +import { not } from './Predicate'; +import { separated } from './Separated'; +export function filter(F, G) { + return function (predicate) { return function (fga) { return F.map(fga, function (ga) { return G.filter(ga, predicate); }); }; }; +} +export function filterMap(F, G) { + return function (f) { return function (fga) { return F.map(fga, function (ga) { return G.filterMap(ga, f); }); }; }; +} +export function partition(F, G) { + var _filter = filter(F, G); + return function (predicate) { + var left = _filter(not(predicate)); + var right = _filter(predicate); + return function (fgb) { return separated(left(fgb), right(fgb)); }; + }; +} +export function partitionMap(F, G) { + var _filterMap = filterMap(F, G); + return function (f) { return function (fga) { + return separated(pipe(fga, _filterMap(function (a) { return getLeft(f(a)); })), pipe(fga, _filterMap(function (a) { return getRight(f(a)); }))); + }; }; +} +/** @deprecated */ +export function getFilterableComposition(F, G) { + var map = getFunctorComposition(F, G).map; + var _compact = compact(F, G); + var _separate = separate(F, G, G); + var _filter = filter(F, G); + var _filterMap = filterMap(F, G); + var _partition = partition(F, G); + var _partitionMap = partitionMap(F, G); + return { + map: map, + compact: _compact, + separate: _separate, + filter: function (fga, f) { return pipe(fga, _filter(f)); }, + filterMap: function (fga, f) { return pipe(fga, _filterMap(f)); }, + partition: function (fga, p) { return pipe(fga, _partition(p)); }, + partitionMap: function (fga, f) { return pipe(fga, _partitionMap(f)); } + }; +} diff --git a/node_modules/fp-ts/es6/FilterableWithIndex.d.ts b/node_modules/fp-ts/es6/FilterableWithIndex.d.ts new file mode 100644 index 0000000..edb9b18 --- /dev/null +++ b/node_modules/fp-ts/es6/FilterableWithIndex.d.ts @@ -0,0 +1,255 @@ +/** + * @since 2.0.0 + */ +import { Either } from './Either' +import { + Filterable, + Filterable1, + Filterable2, + Filterable2C, + Filterable3, + Filterable3C, + Filterable4 +} from './Filterable' +import { + FunctorWithIndex, + FunctorWithIndex1, + FunctorWithIndex2, + FunctorWithIndex2C, + FunctorWithIndex3, + FunctorWithIndex3C, + FunctorWithIndex4 +} from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import { Separated } from './Separated' +/** + * @since 2.0.0 + */ +export type RefinementWithIndex<I, A, B extends A> = (i: I, a: A) => a is B +/** + * @since 2.0.0 + */ +export type PredicateWithIndex<I, A> = (i: I, a: A) => boolean +/** + * @since 2.0.0 + */ +export interface FilterWithIndex<F, I> { + <A, B extends A>(fa: HKT<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): HKT<F, B> + <A>(fa: HKT<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): HKT<F, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex<F, I> { + <A, B extends A>(fa: HKT<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated<HKT<F, A>, HKT<F, B>> + <A>(fa: HKT<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<HKT<F, A>, HKT<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex<F, I> extends FunctorWithIndex<F, I>, Filterable<F> { + readonly partitionMapWithIndex: <A, B, C>( + fa: HKT<F, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<HKT<F, B>, HKT<F, C>> + readonly partitionWithIndex: PartitionWithIndex<F, I> + readonly filterMapWithIndex: <A, B>(fa: HKT<F, A>, f: (i: I, a: A) => Option<B>) => HKT<F, B> + readonly filterWithIndex: FilterWithIndex<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex1<F extends URIS, I> { + <A, B extends A>(fa: Kind<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind<F, B> + <A>(fa: Kind<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind<F, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex1<F extends URIS, I> { + <A, B extends A>(fa: Kind<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated<Kind<F, A>, Kind<F, B>> + <A>(fa: Kind<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<Kind<F, A>, Kind<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex1<F extends URIS, I> extends FunctorWithIndex1<F, I>, Filterable1<F> { + readonly partitionMapWithIndex: <A, B, C>( + fa: Kind<F, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind<F, B>, Kind<F, C>> + readonly partitionWithIndex: PartitionWithIndex1<F, I> + readonly filterMapWithIndex: <A, B>(fa: Kind<F, A>, f: (i: I, a: A) => Option<B>) => Kind<F, B> + readonly filterWithIndex: FilterWithIndex1<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex2<F extends URIS2, I> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind2<F, E, B> + <E, A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex2<F extends URIS2, I> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind2<F, E, A>, + Kind2<F, E, B> + > + <E, A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex2<F extends URIS2, I> extends FunctorWithIndex2<F, I>, Filterable2<F> { + readonly partitionMapWithIndex: <E, A, B, C>( + fa: Kind2<F, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partitionWithIndex: PartitionWithIndex2<F, I> + readonly filterMapWithIndex: <E, A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => Option<B>) => Kind2<F, E, B> + readonly filterWithIndex: FilterWithIndex2<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex2C<F extends URIS2, I, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind2<F, E, B> + <A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex2C<F extends URIS2, I, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind2<F, E, A>, + Kind2<F, E, B> + > + <A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex2C<F extends URIS2, I, E> extends FunctorWithIndex2C<F, I, E>, Filterable2C<F, E> { + readonly partitionMapWithIndex: <A, B, C>( + fa: Kind2<F, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partitionWithIndex: PartitionWithIndex2C<F, I, E> + readonly filterMapWithIndex: <A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => Option<B>) => Kind2<F, E, B> + readonly filterWithIndex: FilterWithIndex2C<F, I, E> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex3<F extends URIS3, I> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind3<F, R, E, B> + <R, E, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + */ +export interface FilterWithIndex3C<F extends URIS3, I, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind3<F, R, E, B> + <R, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface FilterableWithIndex3C<F extends URIS3, I, E> extends FunctorWithIndex3C<F, I, E>, Filterable3C<F, E> { + readonly partitionMapWithIndex: <R, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partitionWithIndex: PartitionWithIndex3C<F, I, E> + readonly filterMapWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filterWithIndex: FilterWithIndex3C<F, I, E> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex3<F extends URIS3, I> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, E, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, A> + > +} +/** + * @since 2.2.0 + */ +export interface PartitionWithIndex3C<F extends URIS3, I, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, A> + > +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex3<F extends URIS3, I> extends FunctorWithIndex3<F, I>, Filterable3<F> { + readonly partitionMapWithIndex: <R, E, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partitionWithIndex: PartitionWithIndex3<F, I> + readonly filterMapWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filterWithIndex: FilterWithIndex3<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex4<F extends URIS4, I> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind4< + F, + S, + R, + E, + B + > + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind4<F, S, R, E, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex4<F extends URIS4, I> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind4<F, S, R, E, A>, + Kind4<F, S, R, E, B> + > + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated< + Kind4<F, S, R, E, A>, + Kind4<F, S, R, E, A> + > +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex4<F extends URIS4, I> extends FunctorWithIndex4<F, I>, Filterable4<F> { + readonly partitionMapWithIndex: <S, R, E, A, B, C>( + fa: Kind4<F, S, R, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> + readonly partitionWithIndex: PartitionWithIndex4<F, I> + readonly filterMapWithIndex: <S, R, E, A, B>( + fa: Kind4<F, S, R, E, A>, + f: (i: I, a: A) => Option<B> + ) => Kind4<F, S, R, E, B> + readonly filterWithIndex: FilterWithIndex4<F, I> +} diff --git a/node_modules/fp-ts/es6/FilterableWithIndex.js b/node_modules/fp-ts/es6/FilterableWithIndex.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/FilterableWithIndex.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Foldable.d.ts b/node_modules/fp-ts/es6/Foldable.d.ts new file mode 100644 index 0000000..95aadb7 --- /dev/null +++ b/node_modules/fp-ts/es6/Foldable.d.ts @@ -0,0 +1,423 @@ +/** + * @since 2.0.0 + */ +import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3 } from './Applicative' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable<F> { + readonly URI: F + readonly reduce: <A, B>(fa: HKT<F, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: HKT<F, A>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: HKT<F, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable1<F extends URIS> { + readonly URI: F + readonly reduce: <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, A>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind<F, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable2<F extends URIS2> { + readonly URI: F + readonly reduce: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, A>, f: (a: A) => M) => M + readonly reduceRight: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly reduce: <A, B>(fa: Kind2<F, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, A>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind2<F, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable3<F extends URIS3> { + readonly URI: F + readonly reduce: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => M) => M + readonly reduceRight: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.2.0 + */ +export interface Foldable3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly reduce: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <R, A>(fa: Kind3<F, R, E, A>, f: (a: A) => M) => M + readonly reduceRight: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable4<F extends URIS4> { + readonly URI: F + readonly reduce: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <S, R, E, A>(fa: Kind4<F, S, R, E, A>, f: (a: A) => M) => M + readonly reduceRight: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * `reduce` composition. + * + * @since 2.10.0 + */ +export declare function reduce<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): <B, A>(b: B, f: (b: B, a: A) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduce<F, G>( + F: Foldable<F>, + G: Foldable<G> +): <B, A>(b: B, f: (b: B, a: A) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * `foldMap` composition. + * + * @since 2.10.0 + */ +export declare function foldMap<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fga: Kind<F, Kind<G, A>>) => M +export declare function foldMap<F, G>( + F: Foldable<F>, + G: Foldable<G> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fga: HKT<F, HKT<G, A>>) => M +/** + * `reduceRight` composition. + * + * @since 2.10.0 + */ +export declare function reduceRight<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): <B, A>(b: B, f: (a: A, b: B) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduceRight<F, G>( + F: Foldable<F>, + G: Foldable<G> +): <B, A>(b: B, f: (a: A, b: B) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * Similar to 'reduce', but the result is encapsulated in a monad. + * + * Note: this function is not generally stack-safe, e.g., for monads which build up thunks a la `IO`. + * + * @example + * import { reduceM } from 'fp-ts/Foldable' + * import { Monad, some } from 'fp-ts/Option' + * import { make, Foldable } from 'fp-ts/Tree' + * import { pipe } from 'fp-ts/function' + * + * const t = make(1, [make(2, []), make(3, []), make(4, [])]) + * assert.deepStrictEqual(pipe(t, reduceM(Monad, Foldable)(0, (b, a) => (a > 2 ? some(b + a) : some(b)))), some(7)) + * + * @since 2.8.0 + */ +export declare function reduceM<M extends URIS3, F extends URIS>( + M: Monad3<M>, + F: Foldable1<F> +): <B, A, R, E>(b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => (fa: Kind<F, A>) => Kind3<M, R, E, B> +export declare function reduceM<M extends URIS3, F extends URIS, E>( + M: Monad3C<M, E>, + F: Foldable1<F> +): <B, A, R>(b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => (fa: Kind<F, A>) => Kind3<M, R, E, B> +export declare function reduceM<M extends URIS2, F extends URIS>( + M: Monad2<M>, + F: Foldable1<F> +): <B, A, E>(b: B, f: (b: B, a: A) => Kind2<M, E, B>) => (fa: Kind<F, A>) => Kind2<M, E, B> +export declare function reduceM<M extends URIS2, F extends URIS, E>( + M: Monad2C<M, E>, + F: Foldable1<F> +): <B, A>(b: B, f: (b: B, a: A) => Kind2<M, E, B>) => (fa: Kind<F, A>) => Kind2<M, E, B> +export declare function reduceM<M extends URIS, F extends URIS>( + M: Monad1<M>, + F: Foldable1<F> +): <B, A>(b: B, f: (b: B, a: A) => Kind<M, B>) => (fa: Kind<F, A>) => Kind<M, B> +export declare function reduceM<M, F>( + M: Monad<M>, + F: Foldable<F> +): <B, A>(b: B, f: (b: B, a: A) => HKT<M, B>) => (fa: HKT<F, A>) => HKT<M, B> +/** + * Fold a data structure, accumulating values in some `Monoid`, combining adjacent elements using the specified separator + * + * @example + * import { intercalate } from 'fp-ts/Foldable' + * import * as S from 'fp-ts/string' + * import { make, Foldable } from 'fp-ts/Tree' + * + * const t = make('a', [make('b', []), make('c', []), make('d', [])]) + * assert.strictEqual(intercalate(S.Monoid, Foldable)('|', t), 'a|b|c|d') + * + * @since 2.0.0 + */ +export declare function intercalate<M, F extends URIS3>( + M: Monoid<M>, + F: Foldable3<F> +): <R, E>(middle: M, fm: Kind3<F, R, E, M>) => M +export declare function intercalate<M, F extends URIS2>( + M: Monoid<M>, + F: Foldable2<F> +): <E>(middle: M, fm: Kind2<F, E, M>) => M +export declare function intercalate<M, F extends URIS2, E>( + M: Monoid<M>, + F: Foldable2C<F, E> +): (middle: M, fm: Kind2<F, E, M>) => M +export declare function intercalate<M, F extends URIS>(M: Monoid<M>, F: Foldable1<F>): (middle: M, fm: Kind<F, M>) => M +export declare function intercalate<M, F>(M: Monoid<M>, F: Foldable<F>): (middle: M, fm: HKT<F, M>) => M +/** + * Transforms a `Foldable` into a `toReadonlyArray`. + * + * @example + * import { toReadonlyArray } from 'fp-ts/Foldable' + * import { Foldable, make } from 'fp-ts/Tree' + * + * const t = make(1, [make(2, []), make(3, []), make(4, [])]) + * assert.deepStrictEqual(toReadonlyArray(Foldable)(t), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare function toReadonlyArray<F extends URIS4>( + F: Foldable4<F> +): <S, R, E, A>(fa: Kind4<F, S, R, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS3>( + F: Foldable3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS3, E>( + F: Foldable3C<F, E> +): <R, A>(fa: Kind3<F, R, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS2>( + F: Foldable2<F> +): <E, A>(fa: Kind2<F, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS2, E>( + F: Foldable2C<F, E> +): <A>(fa: Kind2<F, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS>(F: Foldable1<F>): <A>(fa: Kind<F, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F>(F: Foldable<F>): <A>(fa: HKT<F, A>) => ReadonlyArray<A> +/** + * Traverse a data structure, performing some effects encoded by an `Applicative` functor at each value, ignoring the + * final result. + * + * @example + * import { Foldable } from 'fp-ts/Array' + * import { traverse_ } from 'fp-ts/Foldable' + * import { Applicative } from 'fp-ts/IO' + * + * let log = '' + * const append = (s: string) => () => (log += s) + * traverse_(Applicative, Foldable)(['a', 'b', 'c'], append)() + * assert.strictEqual(log, 'abc') + * + * @since 2.0.0 + */ +export declare function traverse_<M extends URIS3, F extends URIS>( + M: Applicative3<M>, + F: Foldable1<F> +): <R, E, A, B>(fa: Kind<F, A>, f: (a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, void> +export declare function traverse_<M extends URIS2, F extends URIS>( + M: Applicative2<M>, + F: Foldable1<F> +): <E, A, B>(fa: Kind<F, A>, f: (a: A) => Kind2<M, E, B>) => Kind2<M, E, void> +export declare function traverse_<M extends URIS2, F extends URIS, E>( + M: Applicative2C<M, E>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, f: (a: A) => Kind2<M, E, B>) => Kind2<M, E, void> +export declare function traverse_<M extends URIS, F extends URIS>( + M: Applicative1<M>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, f: (a: A) => Kind<M, B>) => Kind<M, void> +export declare function traverse_<M, F>( + M: Applicative<M>, + F: Foldable<F> +): <A, B>(fa: HKT<F, A>, f: (a: A) => HKT<M, B>) => HKT<M, void> +/** + * Use [`reduceM`](#reducem) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function foldM<M extends URIS3, F extends URIS>( + M: Monad3<M>, + F: Foldable1<F> +): <R, E, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS3, F extends URIS, E>( + M: Monad3C<M, E>, + F: Foldable1<F> +): <R, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS2, F extends URIS>( + M: Monad2<M>, + F: Foldable1<F> +): <E, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind2<M, E, B>) => Kind2<M, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS2, F extends URIS, E>( + M: Monad2C<M, E>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind2<M, E, B>) => Kind2<M, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS, F extends URIS>( + M: Monad1<M>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind<M, B>) => Kind<M, B> +/** @deprecated */ +export declare function foldM<M, F>( + M: Monad<M>, + F: Foldable<F> +): <A, B>(fa: HKT<F, A>, b: B, f: (b: B, a: A) => HKT<M, B>) => HKT<M, B> +/** + * Use [`toReadonlyArray`](#toreadonlyarray) instead + * + * @category zone of death + * @since 2.8.0 + * @deprecated + */ +export declare const toArray: typeof toReadonlyArray +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition<F, G> { + readonly reduce: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: HKT<F, HKT<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: HKT<F, HKT<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition11<F extends URIS, G extends URIS> { + readonly reduce: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, Kind<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind<F, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition12<F extends URIS, G extends URIS2> { + readonly reduce: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => M) => M + readonly reduceRight: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition12C<F extends URIS, G extends URIS2, E> { + readonly reduce: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind<F, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition21<F extends URIS2, G extends URIS> { + readonly reduce: <E, A, B>(fga: Kind2<F, E, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition2C1<F extends URIS2, G extends URIS, E> { + readonly reduce: <A, B>(fga: Kind2<F, E, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind2<F, E, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition22<F extends URIS2, G extends URIS2> { + readonly reduce: <FE, GE, A, B>(fga: Kind2<F, FE, Kind2<G, GE, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <FE, GE, A>(fa: Kind2<F, FE, Kind2<G, GE, A>>, f: (a: A) => M) => M + readonly reduceRight: <FE, GE, A, B>(fa: Kind2<F, FE, Kind2<G, GE, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition22C<F extends URIS2, G extends URIS2, E> { + readonly reduce: <FE, A, B>(fga: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <FE, A>(fa: Kind2<F, FE, Kind2<G, E, A>>, f: (a: A) => M) => M + readonly reduceRight: <FE, A, B>(fa: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * Use + * + * - [reduce](#reduce) + * - [foldMap](#foldmap) + * - [reduceRight](#reduceright) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS2, E>( + F: Foldable2<F>, + G: Foldable2C<G, E> +): FoldableComposition22C<F, G, E> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS2>( + F: Foldable2<F>, + G: Foldable2<G> +): FoldableComposition22<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS, E>( + F: Foldable2C<F, E>, + G: Foldable1<G> +): FoldableComposition2C1<F, G, E> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS>( + F: Foldable2<F>, + G: Foldable1<G> +): FoldableComposition21<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS, G extends URIS2, E>( + F: Foldable1<F>, + G: Foldable2C<G, E> +): FoldableComposition12C<F, G, E> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS, G extends URIS2>( + F: Foldable1<F>, + G: Foldable2<G> +): FoldableComposition12<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): FoldableComposition11<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F, G>(F: Foldable<F>, G: Foldable<G>): FoldableComposition<F, G> diff --git a/node_modules/fp-ts/es6/Foldable.js b/node_modules/fp-ts/es6/Foldable.js new file mode 100644 index 0000000..e4e81ba --- /dev/null +++ b/node_modules/fp-ts/es6/Foldable.js @@ -0,0 +1,64 @@ +import { constant, pipe } from './function'; +export function reduce(F, G) { + return function (b, f) { return function (fga) { return F.reduce(fga, b, function (b, ga) { return G.reduce(ga, b, f); }); }; }; +} +export function foldMap(F, G) { + return function (M) { + var foldMapF = F.foldMap(M); + var foldMapG = G.foldMap(M); + return function (f) { return function (fga) { return foldMapF(fga, function (ga) { return foldMapG(ga, f); }); }; }; + }; +} +export function reduceRight(F, G) { + return function (b, f) { return function (fga) { return F.reduceRight(fga, b, function (ga, b) { return G.reduceRight(ga, b, f); }); }; }; +} +export function reduceM(M, F) { + return function (b, f) { return function (fa) { return F.reduce(fa, M.of(b), function (mb, a) { return M.chain(mb, function (b) { return f(b, a); }); }); }; }; +} +export function intercalate(M, F) { + return function (middle, fm) { + var go = function (_a, x) { + var init = _a.init, acc = _a.acc; + return init ? { init: false, acc: x } : { init: false, acc: M.concat(M.concat(acc, middle), x) }; + }; + return F.reduce(fm, { init: true, acc: M.empty }, go).acc; + }; +} +export function toReadonlyArray(F) { + return function (fa) { + return F.reduce(fa, [], function (acc, a) { + acc.push(a); + return acc; + }); + }; +} +export function traverse_(M, F) { + var applyFirst = function (mu, mb) { return M.ap(M.map(mu, constant), mb); }; + var mu = M.of(undefined); + return function (fa, f) { return F.reduce(fa, mu, function (mu, a) { return applyFirst(mu, f(a)); }); }; +} +export function foldM(M, F) { + return function (fa, b, f) { return F.reduce(fa, M.of(b), function (mb, a) { return M.chain(mb, function (b) { return f(b, a); }); }); }; +} +/** + * Use [`toReadonlyArray`](#toreadonlyarray) instead + * + * @category zone of death + * @since 2.8.0 + * @deprecated + */ +export var toArray = toReadonlyArray; +/** @deprecated */ +export function getFoldableComposition(F, G) { + var _reduce = reduce(F, G); + var _foldMap = foldMap(F, G); + var _reduceRight = reduceRight(F, G); + return { + reduce: function (fga, b, f) { return pipe(fga, _reduce(b, f)); }, + foldMap: function (M) { + var foldMapM = _foldMap(M); + return function (fga, f) { return pipe(fga, foldMapM(f)); }; + }, + reduceRight: function (fga, b, f) { return pipe(fga, _reduceRight(b, f)); } + }; +} diff --git a/node_modules/fp-ts/es6/FoldableWithIndex.d.ts b/node_modules/fp-ts/es6/FoldableWithIndex.d.ts new file mode 100644 index 0000000..ab561a2 --- /dev/null +++ b/node_modules/fp-ts/es6/FoldableWithIndex.d.ts @@ -0,0 +1,290 @@ +/** + * A `Foldable` with an additional index. + * A `FoldableWithIndex` instance must be compatible with its `Foldable` instance + * + * ```ts + * reduce(fa, b, f) = reduceWithIndex(fa, b, (_, b, a) => f(b, a)) + * foldMap(M)(fa, f) = foldMapWithIndex(M)(fa, (_, a) => f(a)) + * reduceRight(fa, b, f) = reduceRightWithIndex(fa, b, (_, a, b) => f(a, b)) + * ``` + * + * @since 2.0.0 + */ +import { + Foldable, + Foldable1, + Foldable2, + Foldable2C, + Foldable3, + Foldable3C, + Foldable4, + FoldableComposition, + FoldableComposition2C1, + FoldableComposition11, + FoldableComposition12, + FoldableComposition12C, + FoldableComposition21, + FoldableComposition22, + FoldableComposition22C +} from './Foldable' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex<F, I> extends Foldable<F> { + readonly reduceWithIndex: <A, B>(fa: HKT<F, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fa: HKT<F, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fa: HKT<F, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex1<F extends URIS, I> extends Foldable1<F> { + readonly reduceWithIndex: <A, B>(fa: Kind<F, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fa: Kind<F, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fa: Kind<F, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex2<F extends URIS2, I> extends Foldable2<F> { + readonly reduceWithIndex: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex2C<F extends URIS2, I, E> extends Foldable2C<F, E> { + readonly reduceWithIndex: <A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex3<F extends URIS3, I> extends Foldable3<F> { + readonly reduceWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <R, E, A>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.2.0 + */ +export interface FoldableWithIndex3C<F extends URIS3, I, E> extends Foldable3C<F, E> { + readonly reduceWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <R, A>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex4<F extends URIS4, I> extends Foldable4<F> { + readonly reduceWithIndex: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <S, R, E, A>(fa: Kind4<F, S, R, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * `reduceWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function reduceWithIndex<F extends URIS, I, G extends URIS, J>( + F: FoldableWithIndex1<F, I>, + G: FoldableWithIndex1<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], b: B, a: A) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduceWithIndex<F, I, G, J>( + F: FoldableWithIndex<F, I>, + G: FoldableWithIndex<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], b: B, a: A) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * `foldMapWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function foldMapWithIndex<F extends URIS, I, G extends URIS, J>( + F: FoldableWithIndex1<F, I>, + G: FoldableWithIndex1<G, J> +): <M>(M: Monoid<M>) => <A>(f: (ij: readonly [I, J], a: A) => M) => (fga: Kind<F, Kind<G, A>>) => M +export declare function foldMapWithIndex<F, I, G, J>( + F: FoldableWithIndex<F, I>, + G: FoldableWithIndex<G, J> +): <M>(M: Monoid<M>) => <A>(f: (ij: readonly [I, J], a: A) => M) => (fga: HKT<F, HKT<G, A>>) => M +/** + * `reduceRightWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function reduceRightWithIndex<F extends URIS, I, G extends URIS, J>( + F: FoldableWithIndex1<F, I>, + G: FoldableWithIndex1<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], a: A, b: B) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduceRightWithIndex<F, I, G, J>( + F: FoldableWithIndex<F, I>, + G: FoldableWithIndex<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], a: A, b: B) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition<F, FI, G, GI> extends FoldableComposition<F, G> { + readonly reduceWithIndex: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: HKT<F, HKT<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition11<F extends URIS, FI, G extends URIS, GI> + extends FoldableComposition11<F, G> { + readonly reduceWithIndex: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: Kind<F, Kind<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition12<F extends URIS, FI, G extends URIS2, GI> + extends FoldableComposition12<F, G> { + readonly reduceWithIndex: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <E, A>(fga: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition12C<F extends URIS, FI, G extends URIS2, GI, E> + extends FoldableComposition12C<F, G, E> { + readonly reduceWithIndex: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition21<F extends URIS2, FI, G extends URIS, GI> + extends FoldableComposition21<F, G> { + readonly reduceWithIndex: <FE, A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>( + M: Monoid<M> + ) => <FE, A>(fga: Kind2<F, FE, Kind<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <FE, A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition2C1<F extends URIS2, FI, G extends URIS, GI, FE> + extends FoldableComposition2C1<F, G, FE> { + readonly reduceWithIndex: <A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: Kind2<F, FE, Kind<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition22<F extends URIS2, FI, G extends URIS2, GI> + extends FoldableComposition22<F, G> { + readonly reduceWithIndex: <FE, GE, A, B>( + fga: Kind2<F, FE, Kind2<G, GE, A>>, + b: B, + f: (i: [FI, GI], b: B, a: A) => B + ) => B + readonly foldMapWithIndex: <M>( + M: Monoid<M> + ) => <FE, GE, A>(fga: Kind2<F, FE, Kind2<G, GE, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <FE, GE, A, B>( + fga: Kind2<F, FE, Kind2<G, GE, A>>, + b: B, + f: (i: [FI, GI], a: A, b: B) => B + ) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition22C<F extends URIS2, FI, G extends URIS2, GI, E> + extends FoldableComposition22C<F, G, E> { + readonly reduceWithIndex: <FE, A, B>(fga: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>( + M: Monoid<M> + ) => <FE, A>(fga: Kind2<F, FE, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <FE, A, B>( + fga: Kind2<F, FE, Kind2<G, E, A>>, + b: B, + f: (i: [FI, GI], a: A, b: B) => B + ) => B +} +/** + * Use + * + * - [reduceWithIndex](#reducewithindex) + * - [foldMapWithIndex](#foldmapwithindex) + * - [reduceRightWithIndex](#reducerightwithindex) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI, E>( + F: FoldableWithIndex2<F, FI>, + G: FoldableWithIndex2C<G, GI, E> +): FoldableWithIndexComposition22C<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI>( + F: FoldableWithIndex2<F, FI>, + G: FoldableWithIndex2<G, GI> +): FoldableWithIndexComposition22<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS, GI, E>( + F: FoldableWithIndex2C<F, FI, E>, + G: FoldableWithIndex1<G, GI> +): FoldableWithIndexComposition2C1<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS, GI>( + F: FoldableWithIndex2<F, FI>, + G: FoldableWithIndex1<G, GI> +): FoldableWithIndexComposition21<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS, FI, G extends URIS2, GI>( + F: FoldableWithIndex1<F, FI>, + G: FoldableWithIndex2<G, GI> +): FoldableWithIndexComposition12<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS, FI, G extends URIS2, GI>( + F: FoldableWithIndex1<F, FI>, + G: FoldableWithIndex2<G, GI> +): FoldableWithIndexComposition12<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS, FI, G extends URIS, GI>( + F: FoldableWithIndex1<F, FI>, + G: FoldableWithIndex1<G, GI> +): FoldableWithIndexComposition11<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F, FI, G, GI>( + F: FoldableWithIndex<F, FI>, + G: FoldableWithIndex<G, GI> +): FoldableWithIndexComposition<F, FI, G, GI> diff --git a/node_modules/fp-ts/es6/FoldableWithIndex.js b/node_modules/fp-ts/es6/FoldableWithIndex.js new file mode 100644 index 0000000..17bc67e --- /dev/null +++ b/node_modules/fp-ts/es6/FoldableWithIndex.js @@ -0,0 +1,49 @@ +/** + * A `Foldable` with an additional index. + * A `FoldableWithIndex` instance must be compatible with its `Foldable` instance + * + * ```ts + * reduce(fa, b, f) = reduceWithIndex(fa, b, (_, b, a) => f(b, a)) + * foldMap(M)(fa, f) = foldMapWithIndex(M)(fa, (_, a) => f(a)) + * reduceRight(fa, b, f) = reduceRightWithIndex(fa, b, (_, a, b) => f(a, b)) + * ``` + * + * @since 2.0.0 + */ +import { getFoldableComposition } from './Foldable'; +import { pipe } from './function'; +export function reduceWithIndex(F, G) { + return function (b, f) { return function (fga) { + return F.reduceWithIndex(fga, b, function (i, b, ga) { return G.reduceWithIndex(ga, b, function (j, b, a) { return f([i, j], b, a); }); }); + }; }; +} +export function foldMapWithIndex(F, G) { + return function (M) { + var foldMapWithIndexF = F.foldMapWithIndex(M); + var foldMapWithIndexG = G.foldMapWithIndex(M); + return function (f) { return function (fga) { return foldMapWithIndexF(fga, function (i, ga) { return foldMapWithIndexG(ga, function (j, a) { return f([i, j], a); }); }); }; }; + }; +} +export function reduceRightWithIndex(F, G) { + return function (b, f) { return function (fga) { + return F.reduceRightWithIndex(fga, b, function (i, ga, b) { return G.reduceRightWithIndex(ga, b, function (j, a, b) { return f([i, j], a, b); }); }); + }; }; +} +/** @deprecated */ +export function getFoldableWithIndexComposition(F, G) { + var FC = getFoldableComposition(F, G); + var _reduceWithIndex = reduceWithIndex(F, G); + var _foldMapWithIndex = foldMapWithIndex(F, G); + var _reduceRightWithIndex = reduceRightWithIndex(F, G); + return { + reduce: FC.reduce, + foldMap: FC.foldMap, + reduceRight: FC.reduceRight, + reduceWithIndex: function (fga, b, f) { return pipe(fga, _reduceWithIndex(b, f)); }, + foldMapWithIndex: function (M) { + var foldMapWithIndexM = _foldMapWithIndex(M); + return function (fga, f) { return pipe(fga, foldMapWithIndexM(f)); }; + }, + reduceRightWithIndex: function (fga, b, f) { return pipe(fga, _reduceRightWithIndex(b, f)); } + }; +} diff --git a/node_modules/fp-ts/es6/FromEither.d.ts b/node_modules/fp-ts/es6/FromEither.d.ts new file mode 100644 index 0000000..fc06a6a --- /dev/null +++ b/node_modules/fp-ts/es6/FromEither.d.ts @@ -0,0 +1,337 @@ +/** + * The `FromEither` type class represents those data types which support errors. + * + * @since 2.10.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Either } from './Either' +import { LazyArg } from './function' +import { HKT2, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither<F> { + readonly URI: F + readonly fromEither: <E, A>(e: Either<E, A>) => HKT2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromEither1<F extends URIS> { + readonly URI: F + readonly fromEither: <A>(fa: Either<unknown, A>) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither2<F extends URIS2> { + readonly URI: F + readonly fromEither: <E, A>(fa: Either<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly fromEither: <A>(fa: Either<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither3<F extends URIS3> { + readonly URI: F + readonly fromEither: <E, A, R>(fa: Either<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromEither: <A, R>(fa: Either<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither4<F extends URIS4> { + readonly URI: F + readonly fromEither: <E, A, S, R>(fa: Either<E, A>) => Kind4<F, S, R, E, A> +} +/** + * @category constructors + * @since 2.10.0 + */ +export declare function fromOption<F extends URIS4>( + F: FromEither4<F> +): <E>(onNone: LazyArg<E>) => <A, S, R>(fa: Option<A>) => Kind4<F, S, R, E, A> +export declare function fromOption<F extends URIS3>( + F: FromEither3<F> +): <E>(onNone: LazyArg<E>) => <A, R>(fa: Option<A>) => Kind3<F, R, E, A> +export declare function fromOption<F extends URIS3, E>( + F: FromEither3C<F, E> +): (onNone: LazyArg<E>) => <A, R>(fa: Option<A>) => Kind3<F, R, E, A> +export declare function fromOption<F extends URIS2>( + F: FromEither2<F> +): <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => Kind2<F, E, A> +export declare function fromOption<F extends URIS2, E>( + F: FromEither2C<F, E> +): (onNone: LazyArg<E>) => <A>(fa: Option<A>) => Kind2<F, E, A> +export declare function fromOption<F>(F: FromEither<F>): <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => HKT2<F, E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare function fromPredicate<F extends URIS4>( + F: FromEither4<F> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R, B extends A>(b: B) => Kind4<F, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, A> +} +export declare function fromPredicate<F extends URIS3>( + F: FromEither3<F> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(b: B) => Kind3<F, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> +} +export declare function fromPredicate<F extends URIS3, E>( + F: FromEither3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(b: B) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> +} +export declare function fromPredicate<F extends URIS2>( + F: FromEither2<F> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => Kind2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> +} +export declare function fromPredicate<F extends URIS2, E>( + F: FromEither2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> +} +export declare function fromPredicate<F>(F: FromEither<F>): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => HKT2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => HKT2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => HKT2<F, E, A> +} +/** + * @since 2.10.0 + */ +export declare function fromOptionK<F extends URIS4>( + F: FromEither4<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <S, R>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromOptionK<F extends URIS3>( + F: FromEither3<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromOptionK<F extends URIS3, E>( + F: FromEither3C<F, E> +): ( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromOptionK<F extends URIS2>( + F: FromEither2<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromOptionK<F extends URIS2, E>( + F: FromEither2C<F, E> +): ( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromOptionK<F>( + F: FromEither<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => HKT2<F, E, B> +/** + * @since 2.10.0 + */ +export declare function chainOptionK<F extends URIS4>( + F: FromEither4<F>, + M: Chain4<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => <S, R>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function chainOptionK<F extends URIS3>( + F: FromEither3<F>, + M: Chain3<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chainOptionK<F extends URIS3, E>( + F: FromEither3C<F, E>, + M: Chain3C<F, E> +): (onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chainOptionK<F extends URIS2>( + F: FromEither2<F>, + M: Chain2<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chainOptionK<F extends URIS2, E>( + F: FromEither2C<F, E>, + M: Chain2C<F, E> +): (onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chainOptionK<F>( + F: FromEither<F>, + M: Chain<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => (ma: HKT2<F, E, A>) => HKT2<F, E, B> +/** + * @since 2.10.0 + */ +export declare function fromEitherK<F extends URIS4>( + F: FromEither4<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => <S, R>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromEitherK<F extends URIS3>( + F: FromEither3<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromEitherK<F extends URIS3, E>( + F: FromEither3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Either<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromEitherK<F extends URIS2>( + F: FromEither2<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromEitherK<F extends URIS2, E>( + F: FromEither2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Either<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromEitherK<F extends URIS>( + F: FromEither1<F> +): <E, A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Either<E, B>) => (...a: A) => Kind<F, B> +export declare function fromEitherK<F>( + F: FromEither<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => (...a: A) => HKT2<F, E, B> +/** + * @since 2.10.0 + */ +export declare function chainEitherK<M extends URIS4>( + F: FromEither4<M>, + M: Chain4<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <S, R>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainEitherK<M extends URIS3>( + F: FromEither3<M>, + M: Chain3<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainEitherK<M extends URIS3, E>( + F: FromEither3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainEitherK<M extends URIS2>( + F: FromEither2<M>, + M: Chain2<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainEitherK<M extends URIS2, E>( + F: FromEither2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainEitherK<M extends URIS>( + F: FromEither1<M>, + M: Chain1<M> +): <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Kind<M, A>) => Kind<M, B> +export declare function chainEitherK<M>( + F: FromEither<M>, + M: Chain<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: HKT2<M, E, A>) => HKT2<M, E, B> +/** + * @since 2.12.0 + */ +export declare function chainFirstEitherK<M extends URIS4>( + F: FromEither4<M>, + M: Chain4<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <S, R>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstEitherK<M extends URIS3>( + F: FromEither3<M>, + M: Chain3<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstEitherK<M extends URIS3, E>( + F: FromEither3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstEitherK<M extends URIS2>( + F: FromEither2<M>, + M: Chain2<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstEitherK<M extends URIS2, E>( + F: FromEither2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstEitherK<M extends URIS>( + F: FromEither1<M>, + M: Chain1<M> +): <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Kind<M, A>) => Kind<M, A> +export declare function chainFirstEitherK<M>( + F: FromEither<M>, + M: Chain<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: HKT2<M, E, A>) => HKT2<M, E, A> +/** + * @since 2.10.0 + */ +export declare function filterOrElse<M extends URIS4>( + F: FromEither4<M>, + M: Chain4<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>( + ma: Kind4<M, S, R, E, A> + ) => Kind4<M, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R, B extends A>( + mb: Kind4<M, S, R, E, B> + ) => Kind4<M, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +} +export declare function filterOrElse<M extends URIS3>( + F: FromEither3<M>, + M: Chain3<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: Kind3<M, R, E, A> + ) => Kind3<M, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(mb: Kind3<M, R, E, B>) => Kind3<M, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +} +export declare function filterOrElse<M extends URIS3, E>( + F: FromEither3C<M, E>, + M: Chain3C<M, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(mb: Kind3<M, R, E, B>) => Kind3<M, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +} +export declare function filterOrElse<M extends URIS2>( + F: FromEither2<M>, + M: Chain2<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (self: Kind2<M, E, A>) => Kind2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(self: Kind2<M, E, B>) => Kind2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (self: Kind2<M, E, A>) => Kind2<M, E, A> +} +export declare function filterOrElse<M extends URIS2, E>( + F: FromEither2C<M, E>, + M: Chain2C<M, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind2<M, E, A>) => Kind2<M, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: Kind2<M, E, B>) => Kind2<M, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind2<M, E, A>) => Kind2<M, E, A> +} +export declare function filterOrElse<M extends URIS2>( + F: FromEither<M>, + M: Chain<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: HKT2<M, E, A>) => HKT2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: HKT2<M, E, B>) => HKT2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: HKT2<M, E, A>) => HKT2<M, E, A> +} diff --git a/node_modules/fp-ts/es6/FromEither.js b/node_modules/fp-ts/es6/FromEither.js new file mode 100644 index 0000000..9ef6249 --- /dev/null +++ b/node_modules/fp-ts/es6/FromEither.js @@ -0,0 +1,56 @@ +/** + * The `FromEither` type class represents those data types which support errors. + * + * @since 2.10.0 + */ +import { tap } from './Chain'; +import { flow } from './function'; +import * as _ from './internal'; +export function fromOption(F) { + return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; }; +} +export function fromPredicate(F) { + return function (predicate, onFalse) { + return function (a) { + return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); + }; + }; +} +export function fromOptionK(F) { + var fromOptionF = fromOption(F); + return function (onNone) { + var from = fromOptionF(onNone); + return function (f) { return flow(f, from); }; + }; +} +export function chainOptionK(F, M) { + var fromOptionKF = fromOptionK(F); + return function (onNone) { + var from = fromOptionKF(onNone); + return function (f) { return function (ma) { return M.chain(ma, from(f)); }; }; + }; +} +export function fromEitherK(F) { + return function (f) { return flow(f, F.fromEither); }; +} +export function chainEitherK(F, M) { + var fromEitherKF = fromEitherK(F); + return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; }; +} +export function chainFirstEitherK(F, M) { + var tapEitherM = tapEither(F, M); + return function (f) { return function (ma) { return tapEitherM(ma, f); }; }; +} +export function filterOrElse(F, M) { + return function (predicate, onFalse) { + return function (ma) { + return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); }); + }; + }; +} +/** @internal */ +export function tapEither(F, M) { + var fromEither = fromEitherK(F); + var tapM = tap(M); + return function (self, f) { return tapM(self, fromEither(f)); }; +} diff --git a/node_modules/fp-ts/es6/FromIO.d.ts b/node_modules/fp-ts/es6/FromIO.d.ts new file mode 100644 index 0000000..d51da7f --- /dev/null +++ b/node_modules/fp-ts/es6/FromIO.d.ts @@ -0,0 +1,152 @@ +/** + * Lift a computation from the `IO` monad + * + * @since 2.10.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { IO } from './IO' +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO<F> { + readonly URI: F + readonly fromIO: <A>(fa: IO<A>) => HKT<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO1<F extends URIS> { + readonly URI: F + readonly fromIO: <A>(fa: IO<A>) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO2<F extends URIS2> { + readonly URI: F + readonly fromIO: <A, E>(fa: IO<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly fromIO: <A>(fa: IO<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO3<F extends URIS3> { + readonly URI: F + readonly fromIO: <A, R, E>(fa: IO<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromIO: <A, R>(fa: IO<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO4<F extends URIS4> { + readonly URI: F + readonly fromIO: <A, S, R, E>(fa: IO<A>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.10.0 + */ +export declare function fromIOK<F extends URIS4>( + F: FromIO4<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <S, R, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromIOK<F extends URIS3>( + F: FromIO3<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <R, E>(...a: A) => Kind3<F, R, E, B> +export declare function fromIOK<F extends URIS3, E>( + F: FromIO3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromIOK<F extends URIS2>( + F: FromIO2<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <E>(...a: A) => Kind2<F, E, B> +export declare function fromIOK<F extends URIS2, E>( + F: FromIO2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromIOK<F extends URIS>( + F: FromIO1<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => Kind<F, B> +export declare function fromIOK<F>( + F: FromIO<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function chainIOK<M extends URIS4>( + F: FromIO4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => IO<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainIOK<M extends URIS3>( + F: FromIO3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => IO<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainIOK<M extends URIS3, E>( + F: FromIO3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => IO<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainIOK<M extends URIS2>( + F: FromIO2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => IO<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainIOK<M extends URIS2, E>( + F: FromIO2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => IO<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainIOK<M extends URIS>( + F: FromIO1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => IO<B>) => (first: Kind<M, A>) => Kind<M, B> +export declare function chainIOK<M>( + F: FromIO<M>, + M: Chain<M> +): <A, B>(f: (a: A) => IO<B>) => (first: HKT<M, A>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function chainFirstIOK<M extends URIS4>( + F: FromIO4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => IO<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstIOK<M extends URIS3>( + F: FromIO3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => IO<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstIOK<M extends URIS3, E>( + F: FromIO3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => IO<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstIOK<M extends URIS2>( + F: FromIO2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => IO<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstIOK<M extends URIS2, E>( + F: FromIO2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => IO<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstIOK<M extends URIS>( + F: FromIO1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => IO<B>) => (first: Kind<M, A>) => Kind<M, A> +export declare function chainFirstIOK<M>( + F: FromIO<M>, + M: Chain<M> +): <A, B>(f: (a: A) => IO<B>) => (first: HKT<M, A>) => HKT<M, A> diff --git a/node_modules/fp-ts/es6/FromIO.js b/node_modules/fp-ts/es6/FromIO.js new file mode 100644 index 0000000..1b177c2 --- /dev/null +++ b/node_modules/fp-ts/es6/FromIO.js @@ -0,0 +1,25 @@ +/** + * Lift a computation from the `IO` monad + * + * @since 2.10.0 + */ +import { tap } from './Chain'; +import { flow } from './function'; +export function fromIOK(F) { + return function (f) { return flow(f, F.fromIO); }; +} +export function chainIOK(F, M) { + return function (f) { + var g = flow(f, F.fromIO); + return function (first) { return M.chain(first, g); }; + }; +} +export function chainFirstIOK(F, M) { + var tapIOM = tapIO(F, M); + return function (f) { return function (first) { return tapIOM(first, f); }; }; +} +/** @internal */ +export function tapIO(F, M) { + var chainFirstM = tap(M); + return function (self, f) { return chainFirstM(self, flow(f, F.fromIO)); }; +} diff --git a/node_modules/fp-ts/es6/FromReader.d.ts b/node_modules/fp-ts/es6/FromReader.d.ts new file mode 100644 index 0000000..ff5d6c0 --- /dev/null +++ b/node_modules/fp-ts/es6/FromReader.d.ts @@ -0,0 +1,136 @@ +/** + * Lift a computation from the `Reader` monad. + * + * @since 2.11.0 + */ +import { Chain, Chain2, Chain3, Chain3C, Chain4 } from './Chain' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import * as R from './Reader' +import Reader = R.Reader +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader<F> { + readonly URI: F + readonly fromReader: <R, A>(fa: Reader<R, A>) => HKT2<F, R, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader2<F extends URIS2> { + readonly URI: F + readonly fromReader: <E, A>(fa: Reader<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader3<F extends URIS3> { + readonly URI: F + readonly fromReader: <R, A, E>(fa: Reader<R, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromReader: <R, A>(fa: Reader<R, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader4<F extends URIS4> { + readonly URI: F + readonly fromReader: <R, A, S, E>(fa: Reader<R, A>) => Kind4<F, S, R, E, A> +} +/** + * @category constructors + * @since 2.11.0 + */ +export declare function ask<F extends URIS4>(F: FromReader4<F>): <S, R, E>() => Kind4<F, S, R, E, R> +export declare function ask<F extends URIS3>(F: FromReader3<F>): <R, E>() => Kind3<F, R, E, R> +export declare function ask<F extends URIS3, E>(F: FromReader3C<F, E>): <R>() => Kind3<F, R, E, R> +export declare function ask<F extends URIS2>(F: FromReader2<F>): <R>() => Kind2<F, R, R> +export declare function ask<F>(F: FromReader<F>): <R>() => HKT2<F, R, R> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function asks<F extends URIS4>(F: FromReader4<F>): <R, A, S, E>(f: (r: R) => A) => Kind4<F, S, R, E, A> +export declare function asks<F extends URIS3>(F: FromReader3<F>): <R, A, E>(f: (r: R) => A) => Kind3<F, R, E, A> +export declare function asks<F extends URIS3, E>(F: FromReader3C<F, E>): <R, A>(f: (r: R) => A) => Kind3<F, R, E, A> +export declare function asks<F extends URIS2>(F: FromReader2<F>): <R, A>(f: (r: R) => A) => Kind2<F, R, A> +export declare function asks<F>(F: FromReader<F>): <R, A>(f: (r: R) => A) => HKT2<F, R, A> +/** + * @since 2.11.0 + */ +export declare function fromReaderK<F extends URIS4>( + F: FromReader4<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => <S, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromReaderK<F extends URIS3>( + F: FromReader3<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => <E>(...a: A) => Kind3<F, R, E, B> +export declare function fromReaderK<F extends URIS3, E>( + F: FromReader3C<F, E> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => (...a: A) => Kind3<F, R, E, B> +export declare function fromReaderK<F extends URIS2>( + F: FromReader2<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => (...a: A) => Kind2<F, R, B> +export declare function fromReaderK<F>( + F: FromReader<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => (...a: A) => HKT2<F, R, B> +/** + * @since 2.11.0 + */ +export declare function chainReaderK<M extends URIS4>( + F: FromReader4<M>, + M: Chain4<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <S, E>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainReaderK<M extends URIS3>( + F: FromReader3<M>, + M: Chain3<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <E>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainReaderK<M extends URIS3, E>( + F: FromReader3C<M, E>, + M: Chain3C<M, E> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainReaderK<M extends URIS2>( + F: FromReader2<M>, + M: Chain2<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind2<M, R, A>) => Kind2<M, R, B> +export declare function chainReaderK<M>( + F: FromReader<M>, + M: Chain<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: HKT2<M, R, A>) => HKT2<M, R, B> +/** + * @since 2.11.0 + */ +export declare function chainFirstReaderK<M extends URIS4>( + F: FromReader4<M>, + M: Chain4<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <S, E>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstReaderK<M extends URIS3>( + F: FromReader3<M>, + M: Chain3<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <E>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstReaderK<M extends URIS3, E>( + F: FromReader3C<M, E>, + M: Chain3C<M, E> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstReaderK<M extends URIS2>( + F: FromReader2<M>, + M: Chain2<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind2<M, R, A>) => Kind2<M, R, A> +export declare function chainFirstReaderK<M>( + F: FromReader<M>, + M: Chain<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: HKT2<M, R, A>) => HKT2<M, R, A> +export declare function tapReader<M extends URIS2>( + F: FromReader<M>, + M: Chain<M> +): <A, R, B>(self: HKT2<M, R, A>, f: (a: A) => Reader<R, B>) => HKT2<M, R, A> diff --git a/node_modules/fp-ts/es6/FromReader.js b/node_modules/fp-ts/es6/FromReader.js new file mode 100644 index 0000000..620ada2 --- /dev/null +++ b/node_modules/fp-ts/es6/FromReader.js @@ -0,0 +1,30 @@ +/** + * Lift a computation from the `Reader` monad. + * + * @since 2.11.0 + */ +import { tap } from './Chain'; +import { flow } from './function'; +import * as R from './Reader'; +export function ask(F) { + return function () { return F.fromReader(R.ask()); }; +} +export function asks(F) { + return F.fromReader; +} +export function fromReaderK(F) { + return function (f) { return flow(f, F.fromReader); }; +} +export function chainReaderK(F, M) { + var fromReaderKF = fromReaderK(F); + return function (f) { return function (ma) { return M.chain(ma, fromReaderKF(f)); }; }; +} +export function chainFirstReaderK(F, M) { + var tapM = tapReader(F, M); + return function (f) { return function (self) { return tapM(self, f); }; }; +} +/** @internal */ +export function tapReader(F, M) { + var tapM = tap(M); + return function (self, f) { return tapM(self, flow(f, F.fromReader)); }; +} diff --git a/node_modules/fp-ts/es6/FromState.d.ts b/node_modules/fp-ts/es6/FromState.d.ts new file mode 100644 index 0000000..2aba787 --- /dev/null +++ b/node_modules/fp-ts/es6/FromState.d.ts @@ -0,0 +1,128 @@ +/** + * Lift a computation from the `State` monad. + * + * @since 2.11.0 + */ +import { Chain, Chain2, Chain3, Chain4 } from './Chain' +import { Endomorphism } from './Endomorphism' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import * as S from './State' +import State = S.State +/** + * @category model + * @since 2.11.0 + */ +export interface FromState<F> { + readonly URI: F + readonly fromState: <S, A>(fa: State<S, A>) => HKT2<F, S, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState2<F extends URIS2> { + readonly URI: F + readonly fromState: <S, A>(fa: State<S, A>) => Kind2<F, S, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState3<F extends URIS3> { + readonly URI: F + readonly fromState: <S, A, E>(fa: State<S, A>) => Kind3<F, S, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromState: <S, A>(fa: State<S, A>) => Kind3<F, S, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState4<F extends URIS4> { + readonly URI: F + readonly fromState: <S, A, R, E>(fa: State<S, A>) => Kind4<F, S, R, E, A> +} +/** + * @category constructors + * @since 2.11.0 + */ +export declare function get<F extends URIS4>(F: FromState4<F>): <S, R, E>() => Kind4<F, S, R, E, S> +export declare function get<F extends URIS3>(F: FromState3<F>): <S, E>() => Kind3<F, S, E, S> +export declare function get<F extends URIS3, E>(F: FromState3C<F, E>): <S>() => Kind3<F, S, E, S> +export declare function get<F extends URIS2>(F: FromState2<F>): <S>() => Kind2<F, S, S> +export declare function get<F>(F: FromState<F>): <S>() => HKT2<F, S, S> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function put<F extends URIS4>(F: FromState4<F>): <S, R, E>(s: S) => Kind4<F, S, R, E, void> +export declare function put<F extends URIS3>(F: FromState3<F>): <S, E>(s: S) => Kind3<F, S, E, void> +export declare function put<F extends URIS3, E>(F: FromState3C<F, E>): <S>(s: S) => Kind3<F, S, E, void> +export declare function put<F extends URIS2>(F: FromState2<F>): <S>(s: S) => Kind2<F, S, void> +export declare function put<F>(F: FromState<F>): <S>(s: S) => HKT2<F, S, void> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function modify<F extends URIS4>( + F: FromState4<F> +): <S, R, E>(f: Endomorphism<S>) => Kind4<F, S, R, E, void> +export declare function modify<F extends URIS3>(F: FromState3<F>): <S, E>(f: Endomorphism<S>) => Kind3<F, S, E, void> +export declare function modify<F extends URIS3, E>( + F: FromState3C<F, E> +): <S>(f: Endomorphism<S>) => Kind3<F, S, E, void> +export declare function modify<F extends URIS2>(F: FromState2<F>): <S>(f: Endomorphism<S>) => Kind2<F, S, void> +export declare function modify<F>(F: FromState<F>): <S>(f: Endomorphism<S>) => HKT2<F, S, void> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function gets<F extends URIS4>(F: FromState4<F>): <S, R, E, A>(f: (s: S) => A) => Kind4<F, S, R, E, A> +export declare function gets<F extends URIS3>(F: FromState3<F>): <S, E, A>(f: (s: S) => A) => Kind3<F, S, E, A> +export declare function gets<F extends URIS3, E>(F: FromState3C<F, E>): <S, A>(f: (s: S) => A) => Kind3<F, S, E, A> +export declare function gets<F extends URIS2>(F: FromState2<F>): <S, A>(f: (s: S) => A) => Kind2<F, S, A> +export declare function gets<F>(F: FromState<F>): <S, A>(f: (s: S) => A) => HKT2<F, S, A> +/** + * @since 2.11.0 + */ +export declare function fromStateK<F extends URIS4>( + F: FromState4<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => <R, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromStateK<F extends URIS3>( + F: FromState3<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => <E>(...a: A) => Kind3<F, S, E, B> +export declare function fromStateK<F extends URIS3, E>( + F: FromState3C<F, E> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => (...a: A) => Kind3<F, S, E, B> +export declare function fromStateK<F extends URIS2>( + F: FromState2<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => (...a: A) => Kind2<F, S, B> +export declare function fromStateK<F>( + F: FromState<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => (...a: A) => HKT2<F, S, B> +/** + * @since 2.11.0 + */ +export declare function chainStateK<M extends URIS4>( + F: FromState4<M>, + M: Chain4<M> +): <A, S, B>(f: (a: A) => State<S, B>) => <R, E>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainStateK<M extends URIS3>( + F: FromState3<M>, + M: Chain3<M> +): <A, S, B>(f: (a: A) => State<S, B>) => <E>(ma: Kind3<M, S, E, A>) => Kind3<M, S, E, B> +export declare function chainStateK<M extends URIS2>( + F: FromState2<M>, + M: Chain2<M> +): <A, S, B>(f: (a: A) => State<S, B>) => (ma: Kind2<M, S, A>) => Kind2<M, S, B> +export declare function chainStateK<M>( + F: FromState<M>, + M: Chain<M> +): <A, S, B>(f: (a: A) => State<S, B>) => (ma: HKT2<M, S, A>) => HKT2<M, S, B> diff --git a/node_modules/fp-ts/es6/FromState.js b/node_modules/fp-ts/es6/FromState.js new file mode 100644 index 0000000..917faf8 --- /dev/null +++ b/node_modules/fp-ts/es6/FromState.js @@ -0,0 +1,21 @@ +import { flow } from './function'; +import * as S from './State'; +export function get(F) { + return function () { return F.fromState(S.get()); }; +} +export function put(F) { + return function (s) { return F.fromState(S.put(s)); }; +} +export function modify(F) { + return flow(S.modify, F.fromState); +} +export function gets(F) { + return flow(S.gets, F.fromState); +} +export function fromStateK(F) { + return function (f) { return flow(f, F.fromState); }; +} +export function chainStateK(F, M) { + var fromStateKF = fromStateK(F); + return function (f) { return function (ma) { return M.chain(ma, fromStateKF(f)); }; }; +} diff --git a/node_modules/fp-ts/es6/FromTask.d.ts b/node_modules/fp-ts/es6/FromTask.d.ts new file mode 100644 index 0000000..23900fe --- /dev/null +++ b/node_modules/fp-ts/es6/FromTask.d.ts @@ -0,0 +1,144 @@ +/** + * Lift a computation from the `Task` monad + * + * @since 2.10.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { FromIO, FromIO1, FromIO2, FromIO2C, FromIO3, FromIO3C, FromIO4 } from './FromIO' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Task } from './Task' +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask<F> extends FromIO<F> { + readonly fromTask: <A>(fa: Task<A>) => HKT<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask1<F extends URIS> extends FromIO1<F> { + readonly fromTask: <A>(fa: Task<A>) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask2<F extends URIS2> extends FromIO2<F> { + readonly fromTask: <A, E>(fa: Task<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask2C<F extends URIS2, E> extends FromIO2C<F, E> { + readonly fromTask: <A>(fa: Task<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask3<F extends URIS3> extends FromIO3<F> { + readonly fromTask: <A, R, E>(fa: Task<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask3C<F extends URIS3, E> extends FromIO3C<F, E> { + readonly fromTask: <A, R>(fa: Task<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask4<F extends URIS4> extends FromIO4<F> { + readonly fromTask: <A, S, R, E>(fa: Task<A>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.10.0 + */ +export declare function fromTaskK<F extends URIS4>( + F: FromTask4<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <S, R, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromTaskK<F extends URIS3>( + F: FromTask3<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <R, E>(...a: A) => Kind3<F, R, E, B> +export declare function fromTaskK<F extends URIS3, E>( + F: FromTask3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromTaskK<F extends URIS2>( + F: FromTask2<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <E>(...a: A) => Kind2<F, E, B> +export declare function fromTaskK<F extends URIS2, E>( + F: FromTask2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromTaskK<F extends URIS>( + F: FromTask1<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => Kind<F, B> +export declare function fromTaskK<F>( + F: FromTask<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function chainTaskK<M extends URIS4>( + F: FromTask4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => Task<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainTaskK<M extends URIS3>( + F: FromTask3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => Task<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainTaskK<M extends URIS3, E>( + F: FromTask3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Task<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainTaskK<M extends URIS2>( + F: FromTask2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => Task<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainTaskK<M extends URIS2, E>( + F: FromTask2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainTaskK<M extends URIS>( + F: FromTask1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind<M, A>) => Kind<M, B> +export declare function chainTaskK<M>( + F: FromTask<M>, + M: Chain<M> +): <A, B>(f: (a: A) => Task<B>) => (first: HKT<M, A>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function chainFirstTaskK<M extends URIS4>( + F: FromTask4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => Task<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstTaskK<M extends URIS3>( + F: FromTask3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => Task<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstTaskK<M extends URIS3, E>( + F: FromTask3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Task<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstTaskK<M extends URIS2>( + F: FromTask2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => Task<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstTaskK<M extends URIS2, E>( + F: FromTask2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstTaskK<M extends URIS>( + F: FromTask1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind<M, A>) => Kind<M, A> +export declare function chainFirstTaskK<M>( + F: FromTask<M>, + M: Chain<M> +): <A, B>(f: (a: A) => Task<B>) => (first: HKT<M, A>) => HKT<M, A> diff --git a/node_modules/fp-ts/es6/FromTask.js b/node_modules/fp-ts/es6/FromTask.js new file mode 100644 index 0000000..1736728 --- /dev/null +++ b/node_modules/fp-ts/es6/FromTask.js @@ -0,0 +1,25 @@ +/** + * Lift a computation from the `Task` monad + * + * @since 2.10.0 + */ +import { tap } from './Chain'; +import { flow } from './function'; +export function fromTaskK(F) { + return function (f) { return flow(f, F.fromTask); }; +} +export function chainTaskK(F, M) { + return function (f) { + var g = flow(f, F.fromTask); + return function (first) { return M.chain(first, g); }; + }; +} +export function chainFirstTaskK(F, M) { + var tapTaskM = tapTask(F, M); + return function (f) { return function (first) { return tapTaskM(first, f); }; }; +} +/** @internal */ +export function tapTask(F, M) { + var tapM = tap(M); + return function (self, f) { return tapM(self, flow(f, F.fromTask)); }; +} diff --git a/node_modules/fp-ts/es6/FromThese.d.ts b/node_modules/fp-ts/es6/FromThese.d.ts new file mode 100644 index 0000000..6399252 --- /dev/null +++ b/node_modules/fp-ts/es6/FromThese.d.ts @@ -0,0 +1,73 @@ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { These } from './These' +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese<F> { + readonly URI: F + readonly fromThese: <E, A>(e: These<E, A>) => HKT2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese2<F extends URIS2> { + readonly URI: F + readonly fromThese: <E, A>(fa: These<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly fromThese: <A>(fa: These<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese3<F extends URIS3> { + readonly URI: F + readonly fromThese: <E, A, R>(fa: These<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromThese: <A, R>(fa: These<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese4<F extends URIS4> { + readonly URI: F + readonly fromThese: <E, A, S, R>(fa: These<E, A>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export declare function fromTheseK<F extends URIS4>( + F: FromThese4<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => <S, R>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromTheseK<F extends URIS3>( + F: FromThese3<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromTheseK<F extends URIS3, E>( + F: FromThese3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => These<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromTheseK<F extends URIS2>( + F: FromThese2<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromTheseK<F extends URIS2, E>( + F: FromThese2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => These<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromTheseK<F>( + F: FromThese<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => (...a: A) => HKT2<F, E, B> diff --git a/node_modules/fp-ts/es6/FromThese.js b/node_modules/fp-ts/es6/FromThese.js new file mode 100644 index 0000000..b5247e2 --- /dev/null +++ b/node_modules/fp-ts/es6/FromThese.js @@ -0,0 +1,9 @@ +/** + * The `FromThese` type class represents those data types which support errors and warnings. + * + * @since 2.11.0 + */ +import { flow } from './function'; +export function fromTheseK(F) { + return function (f) { return flow(f, F.fromThese); }; +} diff --git a/node_modules/fp-ts/es6/Functor.d.ts b/node_modules/fp-ts/es6/Functor.d.ts new file mode 100644 index 0000000..f12f41b --- /dev/null +++ b/node_modules/fp-ts/es6/Functor.d.ts @@ -0,0 +1,452 @@ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Functor<F> { + readonly URI: F + readonly map: <A, B>(fa: HKT<F, A>, f: (a: A) => B) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor1<F extends URIS> { + readonly URI: F + readonly map: <A, B>(fa: Kind<F, A>, f: (a: A) => B) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor2<F extends URIS2> { + readonly URI: F + readonly map: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly map: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor3<F extends URIS3> { + readonly URI: F + readonly map: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Functor3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly map: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor4<F extends URIS4> { + readonly URI: F + readonly map: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => B) => Kind4<F, S, R, E, B> +} +/** + * `map` composition. + * + * @since 2.10.0 + */ +export declare function map<F extends URIS3, G extends URIS>( + F: Functor3<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, Kind<G, A>>) => Kind3<F, R, E, Kind<G, B>> +export declare function map<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Functor2<G> +): <A, B>(f: (a: A) => B) => <EF, EG>(fa: Kind2<F, EF, Kind2<G, EG, A>>) => Kind2<F, EF, Kind2<G, EG, B>> +export declare function map<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, Kind<G, A>>) => Kind2<F, E, Kind<G, B>> +export declare function map<F extends URIS, G extends URIS3>( + F: Functor1<F>, + G: Functor3<G> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind<F, Kind3<G, R, E, A>>) => Kind<F, Kind3<G, R, E, B>> +export declare function map<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Functor2<G> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> +export declare function map<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => (fa: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +export declare function map<F, G extends URIS2>( + F: Functor<F>, + G: Functor2<G> +): <A, B>(f: (a: A) => B) => <E>(fa: HKT<F, Kind2<G, E, A>>) => HKT<F, Kind2<G, E, B>> +export declare function map<F, G extends URIS>( + F: Functor<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => (fa: HKT<F, Kind<G, A>>) => HKT<F, Kind<G, B>> +export declare function map<F, G>( + F: Functor<F>, + G: Functor<G> +): <A, B>(f: (a: A) => B) => (fa: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +/** + * @category mapping + * @since 2.10.0 + */ +export declare function flap<F extends URIS4>( + F: Functor4<F> +): <A>(a: A) => <S, R, E, B>(fab: Kind4<F, S, R, E, (a: A) => B>) => Kind4<F, S, R, E, B> +export declare function flap<F extends URIS3>( + F: Functor3<F> +): <A>(a: A) => <R, E, B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> +export declare function flap<F extends URIS2>( + F: Functor2<F> +): <A>(a: A) => <E, B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> +export declare function flap<F extends URIS>(F: Functor1<F>): <A>(a: A) => <B>(fab: Kind<F, (a: A) => B>) => Kind<F, B> +export declare function flap<F>(F: Functor<F>): <A>(a: A) => <B>(fab: HKT<F, (a: A) => B>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function bindTo<F extends URIS4>( + F: Functor4<F> +): <N extends string>( + name: N +) => <S, R, E, A>( + fa: Kind4<F, S, R, E, A> +) => Kind4< + F, + S, + R, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS3>( + F: Functor3<F> +): <N extends string>( + name: N +) => <R, E, A>( + fa: Kind3<F, R, E, A> +) => Kind3< + F, + R, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS3, E>( + F: Functor3C<F, E> +): <N extends string>( + name: N +) => <R, A>( + fa: Kind3<F, R, E, A> +) => Kind3< + F, + R, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS2>( + F: Functor2<F> +): <N extends string>( + name: N +) => <E, A>( + fa: Kind2<F, E, A> +) => Kind2< + F, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS2, E>( + F: Functor2C<F, E> +): <N extends string>( + name: N +) => <A>(fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS>( + F: Functor1<F> +): <N extends string>( + name: N +) => <A>(fa: Kind<F, A>) => Kind< + F, + { + readonly [K in N]: A + } +> +export declare function bindTo<F>(F: Functor<F>): <N extends string>( + name: N +) => <A>(fa: HKT<F, A>) => HKT< + F, + { + readonly [K in N]: A + } +> +/** + * @since 2.13.0 + */ +declare function let_<F extends URIS4>( + F: Functor4<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <S, R, E>( + fa: Kind4<F, S, R, E, A> +) => Kind4< + F, + S, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS3>( + F: Functor3<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R, E>( + fa: Kind3<F, R, E, A> +) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS3, E>( + F: Functor3C<F, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R>(fa: Kind3<F, R, E, A>) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS2>( + F: Functor2<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>(fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS2, E>( + F: Functor2C<F, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS>( + F: Functor1<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: Kind<F, A>) => Kind< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F>(F: Functor<F>): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: HKT<F, A>) => HKT< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export { + /** + * @since 2.13.0 + */ + let_ as let +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition<F, G> { + readonly map: <A, B>(fa: HKT<F, HKT<G, A>>, f: (a: A) => B) => HKT<F, HKT<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorCompositionHKT1<F, G extends URIS> { + readonly map: <A, B>(fa: HKT<F, Kind<G, A>>, f: (a: A) => B) => HKT<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorCompositionHKT2<F, G extends URIS2> { + readonly map: <E, A, B>(fa: HKT<F, Kind2<G, E, A>>, f: (a: A) => B) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorCompositionHKT2C<F, G extends URIS2, E> { + readonly map: <A, B>(fa: HKT<F, Kind2<G, E, A>>, f: (a: A) => B) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition11<F extends URIS, G extends URIS> { + readonly map: <A, B>(fa: Kind<F, Kind<G, A>>, f: (a: A) => B) => Kind<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition12<F extends URIS, G extends URIS2> { + readonly map: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition12C<F extends URIS, G extends URIS2, E> { + readonly map: <A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition21<F extends URIS2, G extends URIS> { + readonly map: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition2C1<F extends URIS2, G extends URIS, E> { + readonly map: <A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition22<F extends URIS2, G extends URIS2> { + readonly map: <FE, GE, A, B>(fa: Kind2<F, FE, Kind2<G, GE, A>>, f: (a: A) => B) => Kind2<F, FE, Kind2<G, GE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition22C<F extends URIS2, G extends URIS2, E> { + readonly map: <FE, A, B>(fa: Kind2<F, FE, Kind2<G, E, A>>, f: (a: A) => B) => Kind2<F, FE, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface FunctorComposition23<F extends URIS2, G extends URIS3> { + readonly map: <FE, R, E, A, B>(fa: Kind2<F, FE, Kind3<G, R, E, A>>, f: (a: A) => B) => Kind2<F, FE, Kind3<G, R, E, B>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface FunctorComposition23C<F extends URIS2, G extends URIS3, E> { + readonly map: <FE, R, A, B>(fa: Kind2<F, FE, Kind3<G, R, E, A>>, f: (a: A) => B) => Kind2<F, FE, Kind3<G, R, E, B>> +} +/** + * Use [`map`](#map) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS3, E>( + F: Functor2<F>, + G: Functor3C<G, E> +): FunctorComposition23C<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Functor2C<G, E> +): FunctorComposition22C<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Functor2<G> +): FunctorComposition22<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS, E>( + F: Functor2C<F, E>, + G: Functor1<G> +): FunctorComposition2C1<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Functor1<G> +): FunctorComposition21<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Functor2C<G, E> +): FunctorComposition12C<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Functor2<G> +): FunctorComposition12<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Functor1<G> +): FunctorComposition11<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F, G>(F: Functor<F>, G: Functor<G>): FunctorComposition<F, G> diff --git a/node_modules/fp-ts/es6/Functor.js b/node_modules/fp-ts/es6/Functor.js new file mode 100644 index 0000000..8ceb6f3 --- /dev/null +++ b/node_modules/fp-ts/es6/Functor.js @@ -0,0 +1,53 @@ +/** + * A `Functor` is a type constructor which supports a mapping operation `map`. + * + * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type + * constructor `f` to represent some computational context. + * + * Instances must satisfy the following laws: + * + * 1. Identity: `F.map(fa, a => a) <-> fa` + * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)` + * + * @since 2.0.0 + */ +import { pipe } from './function'; +export function map(F, G) { + return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; }; +} +export function flap(F) { + return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; }; +} +export function bindTo(F) { + return function (name) { return function (fa) { return F.map(fa, function (a) { + var _a; + return (_a = {}, _a[name] = a, _a); + }); }; }; +} +function let_(F) { + return function (name, f) { return function (fa) { return F.map(fa, function (a) { + var _a; + return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a)); + }); }; }; +} +export { +/** + * @since 2.13.0 + */ +let_ as let }; +/** @deprecated */ +export function getFunctorComposition(F, G) { + var _map = map(F, G); + return { + map: function (fga, f) { return pipe(fga, _map(f)); } + }; +} +/** @internal */ +export function as(F) { + return function (self, b) { return F.map(self, function () { return b; }); }; +} +/** @internal */ +export function asUnit(F) { + var asM = as(F); + return function (self) { return asM(self, undefined); }; +} diff --git a/node_modules/fp-ts/es6/FunctorWithIndex.d.ts b/node_modules/fp-ts/es6/FunctorWithIndex.d.ts new file mode 100644 index 0000000..09340da --- /dev/null +++ b/node_modules/fp-ts/es6/FunctorWithIndex.d.ts @@ -0,0 +1,203 @@ +import { + Functor, + Functor1, + Functor2, + Functor2C, + Functor3, + Functor3C, + Functor4, + FunctorComposition, + FunctorComposition2C1, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition22C +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex<F, I> extends Functor<F> { + readonly mapWithIndex: <A, B>(fa: HKT<F, A>, f: (i: I, a: A) => B) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex1<F extends URIS, I> extends Functor1<F> { + readonly mapWithIndex: <A, B>(fa: Kind<F, A>, f: (i: I, a: A) => B) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex2<F extends URIS2, I> extends Functor2<F> { + readonly mapWithIndex: <E, A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex2C<F extends URIS2, I, E> extends Functor2C<F, E> { + readonly mapWithIndex: <A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex3<F extends URIS3, I> extends Functor3<F> { + readonly mapWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface FunctorWithIndex3C<F extends URIS3, I, E> extends Functor3C<F, E> { + readonly mapWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex4<F extends URIS4, I> extends Functor4<F> { + readonly mapWithIndex: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (i: I, a: A) => B) => Kind4<F, S, R, E, B> +} +/** + * `mapWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function mapWithIndex<F extends URIS, I, G extends URIS, J>( + F: FunctorWithIndex1<F, I>, + G: FunctorWithIndex1<G, J> +): <A, B>(f: (ij: readonly [I, J], a: A) => B) => (fa: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +export declare function mapWithIndex<F, I, G, J>( + F: FunctorWithIndex<F, I>, + G: FunctorWithIndex<G, J> +): <A, B>(f: (ij: readonly [I, J], a: A) => B) => (fa: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition<F, FI, G, GI> extends FunctorComposition<F, G> { + readonly mapWithIndex: <A, B>(fga: HKT<F, HKT<G, A>>, f: (i: [FI, GI], a: A) => B) => HKT<F, HKT<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition11<F extends URIS, FI, G extends URIS, GI> + extends FunctorComposition11<F, G> { + readonly mapWithIndex: <A, B>(fa: Kind<F, Kind<G, A>>, f: (i: [FI, GI], a: A) => B) => Kind<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition12<F extends URIS, FI, G extends URIS2, GI> + extends FunctorComposition12<F, G> { + readonly mapWithIndex: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition12C<F extends URIS, FI, G extends URIS2, GI, E> + extends FunctorComposition12C<F, G, E> { + readonly mapWithIndex: <A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition21<F extends URIS2, FI, G extends URIS, GI> + extends FunctorComposition21<F, G> { + readonly mapWithIndex: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (i: [FI, GI], a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition2C1<F extends URIS2, FI, G extends URIS, GI, E> + extends FunctorComposition2C1<F, G, E> { + readonly mapWithIndex: <A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (i: [FI, GI], a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition22<F extends URIS2, FI, G extends URIS2, GI> + extends FunctorComposition22<F, G> { + readonly mapWithIndex: <FE, GE, A, B>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + f: (i: [FI, GI], a: A) => B + ) => Kind2<F, FE, Kind2<G, GE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition22C<F extends URIS2, FI, G extends URIS2, GI, E> + extends FunctorComposition22C<F, G, E> { + readonly mapWithIndex: <FE, A, B>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + f: (i: [FI, GI], a: A) => B + ) => Kind2<F, FE, Kind2<G, E, B>> +} +/** + * Use [`mapWithIndex`](#mapwithindex) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI, E>( + F: FunctorWithIndex2<F, FI>, + G: FunctorWithIndex2C<G, FI, E> +): FunctorWithIndexComposition22C<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI>( + F: FunctorWithIndex2<F, FI>, + G: FunctorWithIndex2<G, FI> +): FunctorWithIndexComposition22<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS, GI, E>( + F: FunctorWithIndex2C<F, FI, E>, + G: FunctorWithIndex1<G, GI> +): FunctorWithIndexComposition2C1<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS, GI>( + F: FunctorWithIndex2<F, FI>, + G: FunctorWithIndex1<G, GI> +): FunctorWithIndexComposition21<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS, FI, G extends URIS2, GI, E>( + F: FunctorWithIndex1<F, FI>, + G: FunctorWithIndex2C<G, GI, E> +): FunctorWithIndexComposition12C<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS, FI, G extends URIS2, GI>( + F: FunctorWithIndex1<F, FI>, + G: FunctorWithIndex2<G, GI> +): FunctorWithIndexComposition12<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS, FI, G extends URIS, GI>( + F: FunctorWithIndex1<F, FI>, + G: FunctorWithIndex1<G, GI> +): FunctorWithIndexComposition11<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F, FI, G, GI>( + F: FunctorWithIndex<F, FI>, + G: FunctorWithIndex<G, GI> +): FunctorWithIndexComposition<F, FI, G, GI> diff --git a/node_modules/fp-ts/es6/FunctorWithIndex.js b/node_modules/fp-ts/es6/FunctorWithIndex.js new file mode 100644 index 0000000..6a0042a --- /dev/null +++ b/node_modules/fp-ts/es6/FunctorWithIndex.js @@ -0,0 +1,27 @@ +/** + * A `FunctorWithIndex` is a type constructor which supports a mapping operation `mapWithIndex`. + * + * `mapWithIndex` can be used to turn functions `i -> a -> b` into functions `f a -> f b` whose argument and return types use the type + * constructor `f` to represent some computational context. + * + * Instances must satisfy the following laws: + * + * 1. Identity: `F.mapWithIndex(fa, (_i, a) => a) <-> fa` + * 2. Composition: `F.mapWithIndex(fa, (_i, a) => bc(ab(a))) <-> F.mapWithIndex(F.mapWithIndex(fa, ab), bc)` + * + * @since 2.0.0 + */ +import { pipe } from './function'; +import { getFunctorComposition } from './Functor'; +export function mapWithIndex(F, G) { + return function (f) { return function (fa) { return F.mapWithIndex(fa, function (i, ga) { return G.mapWithIndex(ga, function (j, a) { return f([i, j], a); }); }); }; }; +} +/** @deprecated */ +export function getFunctorWithIndexComposition(F, G) { + var map = getFunctorComposition(F, G).map; + var _mapWithIndex = mapWithIndex(F, G); + return { + map: map, + mapWithIndex: function (fga, f) { return pipe(fga, _mapWithIndex(f)); } + }; +} diff --git a/node_modules/fp-ts/es6/Group.d.ts b/node_modules/fp-ts/es6/Group.d.ts new file mode 100644 index 0000000..a79671d --- /dev/null +++ b/node_modules/fp-ts/es6/Group.d.ts @@ -0,0 +1,15 @@ +/** + * A `Group` is a `Monoid` with inverses. Instances must satisfy the following law in addition to the monoid laws: + * + * - Inverse: `concat(inverse(a), a) <-> empty = concat(a, inverse(a))` + * + * @since 2.0.0 + */ +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Group<A> extends Monoid<A> { + readonly inverse: (a: A) => A +} diff --git a/node_modules/fp-ts/es6/Group.js b/node_modules/fp-ts/es6/Group.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Group.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/HKT/index.js b/node_modules/fp-ts/es6/HKT/index.js new file mode 100644 index 0000000..504e361 --- /dev/null +++ b/node_modules/fp-ts/es6/HKT/index.js @@ -0,0 +1,6 @@ +/** + * Type defunctionalization (as describe in [Lightweight higher-kinded polymorphism](https://www.cl.cam.ac.uk/~jdy22/papers/lightweight-higher-kinded-polymorphism.pdf)) + * + * @since 2.0.0 + */ +export {}; diff --git a/node_modules/fp-ts/es6/HKT/package.json b/node_modules/fp-ts/es6/HKT/package.json new file mode 100644 index 0000000..7498fc5 --- /dev/null +++ b/node_modules/fp-ts/es6/HKT/package.json @@ -0,0 +1,3 @@ +{ + "typings": "../../HKT.d.ts" +} \ No newline at end of file diff --git a/node_modules/fp-ts/es6/HeytingAlgebra.d.ts b/node_modules/fp-ts/es6/HeytingAlgebra.d.ts new file mode 100644 index 0000000..277a1c4 --- /dev/null +++ b/node_modules/fp-ts/es6/HeytingAlgebra.d.ts @@ -0,0 +1,32 @@ +/** + * Heyting algebras are bounded (distributive) lattices that are also equipped with an additional binary operation + * `implies` (also written as `→`). Heyting algebras also define a complement operation `not` (sometimes written as + * `¬a`) + * + * However, in Heyting algebras this operation is only a pseudo-complement, since Heyting algebras do not necessarily + * provide the law of the excluded middle. This means that there is no guarantee that `a ∨ ¬a = 1`. + * + * Heyting algebras model intuitionistic logic. For a model of classical logic, see the boolean algebra type class + * implemented as `BooleanAlgebra`. + * + * A `HeytingAlgebra` must satisfy the following laws in addition to `BoundedDistributiveLattice` laws: + * + * - Implication: + * - `a → a <-> 1` + * - `a ∧ (a → b) <-> a ∧ b` + * - `b ∧ (a → b) <-> b` + * - `a → (b ∧ c) <-> (a → b) ∧ (a → c)` + * - Complemented + * - `¬a <-> a → 0` + * + * @since 2.0.0 + */ +import { BoundedDistributiveLattice } from './BoundedDistributiveLattice' +/** + * @category model + * @since 2.0.0 + */ +export interface HeytingAlgebra<A> extends BoundedDistributiveLattice<A> { + readonly implies: (x: A, y: A) => A + readonly not: (x: A) => A +} diff --git a/node_modules/fp-ts/es6/HeytingAlgebra.js b/node_modules/fp-ts/es6/HeytingAlgebra.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/HeytingAlgebra.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/IO.d.ts b/node_modules/fp-ts/es6/IO.d.ts new file mode 100644 index 0000000..c0a71e9 --- /dev/null +++ b/node_modules/fp-ts/es6/IO.d.ts @@ -0,0 +1,311 @@ +/** + * ```ts + * interface IO<A> { + * (): A + * } + * ``` + * + * `IO<A>` represents a non-deterministic synchronous computation that can cause side effects, yields a value of + * type `A` and **never fails**. + * + * If you want to represent a synchronous computation that may fail, please see `IOEither`. + * If you want to represent a synchronous computation that may yield nothing, please see `IOOption`. + * + * @since 2.0.0 + */ +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { ChainRec1 } from './ChainRec' +import { FromIO1 } from './FromIO' +import { Functor1 } from './Functor' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface IO<A> { + (): A +} +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: IO<A>) => IO<B> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: IO<A>) => <B>(fab: IO<(a: A) => B>) => IO<B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => IO<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => IO<B>): (ma: IO<A>) => IO<B> + <A, B>(ma: IO<A>, f: (a: A) => IO<B>): IO<B> +} +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: IO<IO<A>>) => IO<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'IO' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: IO<A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: IO<_>) => IO<A> + <_, A>(self: IO<_>, a: A): IO<A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: IO<_>) => IO<void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'IO', (a: A) => B>) => import('./HKT').Kind<'IO', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: IO<B> +) => <A>(first: import('./HKT').Kind<'IO', A>) => import('./HKT').Kind<'IO', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: IO<B> +) => <A>(first: import('./HKT').Kind<'IO', A>) => import('./HKT').Kind<'IO', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: IO<A>, f: (a: A) => IO<_>): IO<A> + <A, _>(f: (a: A) => IO<_>): (self: IO<A>) => IO<A> +} +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const fromIO: <A>(fa: IO<A>) => IO<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const ChainRec: ChainRec1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: IO<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'IO', A>) => import('./HKT').Kind<'IO', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'IO', A> +) => import('./HKT').Kind<'IO', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'IO', B> +) => ( + ma: import('./HKT').Kind<'IO', A> +) => import('./HKT').Kind<'IO', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: IO<B> +) => ( + fa: import('./HKT').Kind<'IO', A> +) => import('./HKT').Kind<'IO', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: IO<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IO<B> +) => (as: ReadonlyNonEmptyArray<A>) => IO<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IO<B> +) => (as: ReadonlyArray<A>) => IO<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => IO<B> +) => (as: ReadonlyArray<A>) => IO<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B>(f: (a: A) => IO<B>) => (as: ReadonlyArray<A>) => IO<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A>(arr: ReadonlyArray<IO<A>>) => IO<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => IO<B>) => (ma: IO<A>) => IO<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => IO<B>) => (first: IO<A>) => IO<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IO.Functor` instead of `IO.io` + * (where `IO` is from `import IO from 'fp-ts/IO'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const io: Monad1<URI> & MonadIO1<URI> & ChainRec1<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <A>(S: Semigroup<A>) => Semigroup<IO<A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMonoid: <A>(M: Monoid<A>) => Monoid<IO<A>> diff --git a/node_modules/fp-ts/es6/IO.js b/node_modules/fp-ts/es6/IO.js new file mode 100644 index 0000000..1506c3a --- /dev/null +++ b/node_modules/fp-ts/es6/IO.js @@ -0,0 +1,340 @@ +/** + * ```ts + * interface IO<A> { + * (): A + * } + * ``` + * + * `IO<A>` represents a non-deterministic synchronous computation that can cause side effects, yields a value of + * type `A` and **never fails**. + * + * If you want to represent a synchronous computation that may fail, please see `IOEither`. + * If you want to represent a synchronous computation that may yield nothing, please see `IOOption`. + * + * @since 2.0.0 + */ +import { getApplicativeMonoid } from './Applicative'; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup } from './Apply'; +import * as chainable from './Chain'; +import { constant, dual, identity } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +var _map = function (ma, f) { return function () { return f(ma()); }; }; +var _ap = function (mab, ma) { return function () { return mab()(ma()); }; }; +var _chainRec = function (a, f) { return function () { + var e = f(a)(); + while (e._tag === 'Left') { + e = f(e.left)(); + } + return e.right; +}; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return _map(fa, f); }; }; +/** + * @since 2.0.0 + */ +export var ap = function (fa) { return function (fab) { return _ap(fab, fa); }; }; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = constant; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return function () { + return f(ma())(); + }; +}); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'IO'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var fromIO = identity; +/** + * @category instances + * @since 2.7.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.7.0 + */ +export var ChainRec = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRec +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: identity +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function () { + var out = [f(0, _.head(as))()]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])()); + } + return out; + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { + return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IO.Functor` instead of `IO.io` + * (where `IO` is from `import IO from 'fp-ts/IO'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var io = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + fromIO: fromIO, + chainRec: _chainRec +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = /*#__PURE__*/ getApplySemigroup(Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getMonoid = /*#__PURE__*/ getApplicativeMonoid(Applicative); diff --git a/node_modules/fp-ts/es6/IOEither.d.ts b/node_modules/fp-ts/es6/IOEither.d.ts new file mode 100644 index 0000000..c595837 --- /dev/null +++ b/node_modules/fp-ts/es6/IOEither.d.ts @@ -0,0 +1,1042 @@ +/** + * `IOEither<E, A>` represents a synchronous computation that either yields a value of type `A` or fails yielding an + * error of type `E`. + * + * If you want to represent a synchronous computation that never fails, please see `IO`. + * If you want to represent a synchronous computation that may yield nothing, please see `IOOption`. + * + * @since 2.0.0 + */ +import { Alt2, Alt2C } from './Alt' +import { Applicative2, Applicative2C } from './Applicative' +import { Apply2 } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable2C } from './Compactable' +import * as E from './Either' +import { Filterable2C } from './Filterable' +import { FromEither2 } from './FromEither' +import { FromIO2 } from './FromIO' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import * as I from './IO' +import { Monad2, Monad2C } from './Monad' +import { MonadIO2, MonadIO2C } from './MonadIO' +import { MonadThrow2, MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import Either = E.Either +import IO = I.IO +/** + * @category model + * @since 2.0.0 + */ +export interface IOEither<E, A> extends IO<Either<E, A>> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <E = never, A = never>(l: E) => IOEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <E = never, A = never>(a: A) => IOEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightIO: <E = never, A = never>(ma: IO<A>) => IOEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftIO: <E = never, A = never>(me: IO<E>) => IOEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A>(fa: Either<E, A>) => IOEither<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, E = never>(fa: IO<A>) => IOEither<E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: IOEither<E, A>) => IO<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => (ma: IOEither<E, A>) => IO<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <E, A, B>( + onLeft: (e: E) => IO<B>, + onRight: (a: A) => IO<B> +) => (ma: IOEither<E, A>) => IO<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>(onLeft: (e: E) => IO<B>, onRight: (a: A) => IO<B>) => (ma: IOEither<E, A>) => IO<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, B, A, C>( + onLeft: (e: E) => IO<B>, + onRight: (a: A) => IO<C> +) => (ma: IOEither<E, A>) => IO<B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C>( + onLeft: (e: E) => IO<B>, + onRight: (a: A) => IO<C> +) => (ma: IOEither<E, A>) => IO<B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, A>(onLeft: (e: E) => IO<A>) => (ma: IOEither<E, A>) => IO<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <E, B>(onLeft: (e: E) => IO<B>) => <A>(ma: IOEither<E, A>) => IO<A | B> +/** + * Constructs a new `IOEither` from a function that performs a side effect and might throw + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <E, A>(f: LazyArg<A>, onThrow: (reason: unknown) => E) => IOEither<E, A> +/** + * Converts a function that may throw to one returning a `IOEither`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B, + onThrow: (reason: unknown) => E +) => (...a: A) => IOEither<E, B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <E, A>(fa: IOEither<E, A>) => IO<E | A> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, A, E2>(onLeft: (e: E1) => IOEither<E2, A>) => (ma: IOEither<E1, A>) => IOEither<E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, E2, B>( + onLeft: (e: E1) => IOEither<E2, B> +) => <A>(ma: IOEither<E1, A>) => IOEither<E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, E2, _>(onLeft: (e: E1) => IOEither<E2, _>): <A>(self: IOEither<E1, A>) => IOEither<E1 | E2, A> + <E1, A, E2, _>(self: IOEither<E1, A>, onLeft: (e: E1) => IOEither<E2, _>): IOEither<E1 | E2, A> +} +/** + * @category error handling + * @since 2.12.0 + */ +export declare const orElseFirstIOK: <E, B>(onLeft: (e: E) => IO<B>) => <A>(ma: IOEither<E, A>) => IOEither<E, A> +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, E2>(onLeft: (e: E1) => IO<E2>) => <A>(fa: IOEither<E1, A>) => IOEither<E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <E, A>(ma: IOEither<E, A>) => IOEither<A, E> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: IOEither<E, A>) => IOEither<E, B> +/** + * Returns a `IOEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.left('err'), f, g)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): (self: IOEither<E, A>) => IOEither<G, B> + <E, A, G, B>(self: IOEither<E, A>, f: (e: E) => G, g: (a: A) => B): IOEither<G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: IOEither<E, A>) => IOEither<G, B> +/** + * Returns a `IOEither` with its error channel mapped using the specified function. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(IOEither.mapError(IOEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(IOEither.mapError(IOEither.left('err'), f)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <E, G>(f: (e: E) => G): <A>(self: IOEither<E, A>) => IOEither<G, A> + <E, A, G>(self: IOEither<E, A>, f: (e: E) => G): IOEither<G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: IOEither<E, A>) => IOEither<G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: IOEither<E, A>) => <B>(fab: IOEither<E, (a: A) => B>) => IOEither<E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <E2, A>( + fa: IOEither<E2, A> +) => <E1, B>(fab: IOEither<E1, (a: A) => B>) => IOEither<E1 | E2, B> +/** + * @category constructors + * @since 2.8.5 + */ +export declare const of: <E = never, A = never>(a: A) => IOEither<E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> + <E1, A, E2, B>(ma: IOEither<E1, A>, f: (a: A) => IOEither<E2, B>): IOEither<E1 | E2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <E1, E2, A>(mma: IOEither<E1, IOEither<E2, A>>) => IOEither<E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: IOEither<E, IOEither<E, A>>) => IOEither<E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <E, A>(that: LazyArg<IOEither<E, A>>) => (fa: IOEither<E, A>) => IOEither<E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <E2, B>( + that: LazyArg<IOEither<E2, B>> +) => <E1, A>(fa: IOEither<E1, A>) => IOEither<E2, A | B> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow2<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'IOEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: IOEither<E, A> + } +} +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeIOValidation<E>(S: Semigroup<E>): Applicative2C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltIOValidation<E>(S: Semigroup<E>): Alt2C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable2C<URI, E> +/** + * @category filtering + * @since 2.1.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the `Right` value of this `IOEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <E, _>(self: IOEither<E, _>) => IOEither<E, A> + <E, _, A>(self: IOEither<E, _>, a: A): IOEither<E, A> +} +/** + * Maps the `Right` value of this `IOEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <E, _>(self: IOEither<E, _>) => IOEither<E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'IOEither', E, (a: A) => B>) => import('./HKT').Kind2<'IOEither', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: IOEither<E, B> +) => <A>(first: import('./HKT').Kind2<'IOEither', E, A>) => import('./HKT').Kind2<'IOEither', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <E2, B>( + second: IOEither<E2, B> +) => <E1, A>(first: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: IOEither<E, B> +) => <A>(first: import('./HKT').Kind2<'IOEither', E, A>) => import('./HKT').Kind2<'IOEither', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <E2, B>( + second: IOEither<E2, B> +) => <E1, A>(first: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.8.4 + */ +export declare const ApplicativePar: Applicative2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.8.4 + */ +export declare const ApplicativeSeq: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <E1, A, E2, _>(self: IOEither<E1, A>, f: (a: A) => IOEither<E2, _>): IOEither<E1 | E2, A> + <A, E2, _>(f: (a: A) => IOEither<E2, _>): <E1>(self: IOEither<E1, A>) => IOEither<E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: string) => pipe( + * IOE.of(value), + * IOE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute('')(), E.left('error')) + * assert.deepStrictEqual(compute('fp-ts')(), E.right('fp-ts')) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <E1>(self: IOEither<E1, A>) => IOEither<E2 | E1, A> + <E1, A, E2, _>(self: IOEither<E1, A>, f: (a: A) => Either<E2, _>): IOEither<E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * const sayHello = (value: string) => Console.log(`Hello, ${value}`) + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = IOE.tapIO(IOE.of('fp-ts'), sayHello) + * + * // No output to the stdout + * const effectB = pipe(IOE.left<string>('error'), IOE.tapIO(sayHello)) + * + * assert.deepStrictEqual(effectA(), E.right('fp-ts')) + * assert.deepStrictEqual(effectB(), E.left('error')) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <E>(self: IOEither<E, A>) => IOEither<E, A> + <E, A, _>(self: IOEither<E, A>, f: (a: A) => IO<_>): IOEither<E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow2<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => I.IO<B> +) => <E = never>(...a: A) => IOEither<E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: IOEither<E, A>) => IOEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => IOEither<E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => IOEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => (ma: IOEither<E, A>) => IOEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => (...a: A) => IOEither<E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => (...a: A) => IOEither<E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <E1>( + self: IOEither<E1, A> + ) => IOEither<E2 | E1, NonNullable<B>> + <E1, A, B, E2>(self: IOEither<E1, A>, f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): IOEither< + E1 | E2, + NonNullable<B> + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <E1>(self: IOEither<E1, A>) => IOEither<E2 | E1, B> + <E1, A, B, E2>(self: IOEither<E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): IOEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <E1>(self: IOEither<E1, A>) => IOEither<E1 | E2, B> + <E1, A, E2, B>(self: IOEither<E1, A>, f: (a: A) => E.Either<E2, B>): IOEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <E>(self: IOEither<E, A>) => IOEither<E, B> + <E, A, B>(self: IOEither<E, A>, f: (a: A) => IO<B>): IOEither<E, B> +} +/** + * Alias of `flatMapIO`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: IOEither<E, A>) => IOEither<E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => E.Either<E, B>) => (ma: IOEither<E, A>) => IOEither<E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>(f: (a: A) => E.Either<E, B>) => (ma: IOEither<E, A>) => IOEither<E, A> +/** + * Alias of `tapEither`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => E.Either<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => IOEither<E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: IOEither<E, A>) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: IOEither<E, B>) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: IOEither<E, A>) => IOEither<E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <E1>( + ma: IOEither<E1, A> + ) => IOEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1, B extends A>( + mb: IOEither<E1, B> + ) => IOEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => (...a: A) => IOEither<E, B> +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +export declare const bracket: <E, A, B>( + acquire: IOEither<E, A>, + use: (a: A) => IOEither<E, B>, + release: (a: A, e: Either<E, B>) => IOEither<E, void> +) => IOEither<E, B> +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const bracketW: <E1, A, E2, B, E3>( + acquire: IOEither<E1, A>, + use: (a: A) => IOEither<E2, B>, + release: (a: A, e: E.Either<E2, B>) => IOEither<E3, void> +) => IOEither<E1 | E2 | E3, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: IOEither<never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'IOEither', E, B> +) => ( + ma: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => IOEither<E2, B> +) => <E1>(fa: IOEither<E1, A>) => IOEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: IOEither<E, B> +) => ( + fa: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, E2, B>( + name: Exclude<N, keyof A>, + fb: IOEither<E2, B> +) => <E1>(fa: IOEither<E1, A>) => IOEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: IOEither<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => IOEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => IOEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, E, B>( + f: (a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <E, A>(arr: ReadonlyArray<IOEither<E, A>>) => IOEither<E, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <A, E, B>( + f: (a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <E, A>(arr: ReadonlyArray<IOEither<E, A>>) => IOEither<E, ReadonlyArray<A>> +/** + * Use [`ApplicativePar`](#applicativepar) instead + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Applicative: Applicative2<URI> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <E, A, B>(f: (a: A) => IOEither<E, B>) => (ma: IOEither<E, A>) => IOEither<E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <E, A, B>(f: (a: A) => IOEither<E, B>) => (ma: IOEither<E, A>) => IOEither<E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, B>(onLeft: (e: E) => IOEither<E, B>) => <A>(ma: IOEither<E, A>) => IOEither<E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, E2, B>( + onLeft: (e: E1) => IOEither<E2, B> +) => <A>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IOE.Functor` instead of `IOE.ioEither` + * (where `IOE` is from `import IOE from 'fp-ts/IOEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ioEither: Monad2<URI> & Bifunctor2<URI> & Alt2<URI> & MonadIO2<URI> & MonadThrow2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <E, A>(S: Semigroup<A>) => Semigroup<IOEither<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <E, A>(M: Monoid<A>) => Monoid<IOEither<E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <E, A>(S: Semigroup<A>) => Semigroup<IOEither<E, A>> +/** + * Use [`getApplicativeIOValidation`](#getapplicativeiovalidation) and [`getAltIOValidation`](#getaltiovalidation). + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getIOValidation<E>( + SE: Semigroup<E> +): Monad2C<URI, E> & Bifunctor2<URI> & Alt2C<URI, E> & MonadIO2C<URI, E> & MonadThrow2C<URI, E> diff --git a/node_modules/fp-ts/es6/IOEither.js b/node_modules/fp-ts/es6/IOEither.js new file mode 100644 index 0000000..632a44b --- /dev/null +++ b/node_modules/fp-ts/es6/IOEither.js @@ -0,0 +1,1062 @@ +import { getApplicativeMonoid } from './Applicative'; +import { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { compact as compact_, separate as separate_ } from './Compactable'; +import * as E from './Either'; +import * as ET from './EitherT'; +import { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable'; +import { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_, tapEither as tapEither_ } from './FromEither'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as I from './IO'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export var left = /*#__PURE__*/ ET.left(I.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var right = /*#__PURE__*/ ET.right(I.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightIO = /*#__PURE__*/ ET.rightF(I.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +export var leftIO = /*#__PURE__*/ ET.leftF(I.Functor); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +export var fromEither = I.of; +/** + * @category conversions + * @since 2.7.0 + */ +export var fromIO = rightIO; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = +/*#__PURE__*/ ET.match(I.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchE = +/*#__PURE__*/ ET.matchE(I.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchEW = matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +export var getOrElse = /*#__PURE__*/ ET.getOrElse(I.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export var getOrElseW = getOrElse; +/** + * Constructs a new `IOEither` from a function that performs a side effect and might throw + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.0.0 + */ +export var tryCatch = function (f, onThrow) { + return function () { + return E.tryCatch(f, onThrow); + }; +}; +/** + * Converts a function that may throw to one returning a `IOEither`. + * + * @category interop + * @since 2.10.0 + */ +export var tryCatchK = function (f, onThrow) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return tryCatch(function () { return f.apply(void 0, a); }, onThrow); + }; +}; +/** + * @category conversions + * @since 2.10.0 + */ +export var toUnion = /*#__PURE__*/ ET.toUnion(I.Functor); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category error handling + * @since 2.0.0 + */ +export var orElse = +/*#__PURE__*/ ET.orElse(I.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var orElseW = orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export var tapError = /*#__PURE__*/ dual(2, ET.tapError(I.Monad)); +/** + * @category error handling + * @since 2.12.0 + */ +export var orElseFirstIOK = function (onLeft) { + return tapError(fromIOK(onLeft)); +}; +/** + * @category error handling + * @since 2.11.0 + */ +export var orLeft = +/*#__PURE__*/ ET.orLeft(I.Monad); +/** + * @since 2.0.0 + */ +export var swap = /*#__PURE__*/ ET.swap(I.Functor); +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = /*#__PURE__*/ ET.map(I.Functor); +/** + * Returns a `IOEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.left('err'), f, g)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export var mapBoth = /*#__PURE__*/ dual(3, ET.mapBoth(I.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export var bimap = mapBoth; +/** + * Returns a `IOEither` with its error channel mapped using the specified function. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(IOEither.mapError(IOEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(IOEither.mapError(IOEither.left('err'), f)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export var mapError = /*#__PURE__*/ dual(2, ET.mapError(I.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export var mapLeft = mapError; +/** + * @since 2.0.0 + */ +export var ap = +/*#__PURE__*/ ET.ap(I.Apply); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export var apW = ap; +/** + * @category constructors + * @since 2.8.5 + */ +export var of = right; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, ET.flatMap(I.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = +/*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export var alt = +/*#__PURE__*/ ET.alt(I.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = alt; +/** + * @since 2.7.0 + */ +export var throwError = left; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'IOEither'; +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getApplicativeIOValidation(S) { + var ap = ap_(I.Apply, E.getApplicativeValidation(S)); + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return pipe(fab, ap(fa)); }, + of: of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getAltIOValidation(S) { + var alt = ET.altValidation(I.Monad, S); + return { + URI: URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return pipe(fa, alt(that)); } + }; +} +/** + * @category filtering + * @since 2.10.0 + */ +export var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: URI, + _E: undefined, + compact: compact_(I.Functor, C), + separate: separate_(I.Functor, C, E.Functor) + }; +}; +/** + * @category filtering + * @since 2.1.0 + */ +export function getFilterable(M) { + var F = E.getFilterable(M); + var C = getCompactable(M); + var filter = filter_(I.Functor, F); + var filterMap = filterMap_(I.Functor, F); + var partition = partition_(I.Functor, F); + var partitionMap = partitionMap_(I.Functor, F); + return { + URI: URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return pipe(fa, filter(predicate)); }, + filterMap: function (fa, f) { return pipe(fa, filterMap(f)); }, + partition: function (fa, predicate) { return pipe(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return pipe(fa, partitionMap(f)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Right` value of this `IOEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Right` value of this `IOEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplyPar = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.8.4 + */ +export var ApplicativePar = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.8.4 + */ +export var ApplicativeSeq = { + URI: URI, + map: _map, + ap: _apSeq, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: string) => pipe( + * IOE.of(value), + * IOE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute('')(), E.left('error')) + * assert.deepStrictEqual(compute('fp-ts')(), E.right('fp-ts')) + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * const sayHello = (value: string) => Console.log(`Hello, ${value}`) + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = IOE.tapIO(IOE.of('fp-ts'), sayHello) + * + * // No output to the stdout + * const effectB = pipe(IOE.left<string>('error'), IOE.tapIO(sayHello)) + * + * assert.deepStrictEqual(effectA(), E.right('fp-ts')) + * assert.deepStrictEqual(effectB(), E.left('error')) + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.7.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + throwError: throwError +}; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var fromOptionK = +/*#__PURE__*/ fromOptionK_(FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export var chainOptionKW = chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: FromEither.fromEither +}; +/** @internal */ +var _FromIO = { + fromIO: fromIO +}; +/** + * @category lifting + * @since 2.15.0 + */ +export var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +export var liftOption = /*#__PURE__*/ _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapEither = /*#__PURE__*/ _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = /*#__PURE__*/ _.flatMapIO(_FromIO, _FlatMap); +/** + * Alias of `flatMapIO`. + * @category legacy + * @since 2.10.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainEitherK = flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export var chainEitherKW = flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Alias of `tapEither`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherKW = tapEither; +/** + * @category lifting + * @since 2.0.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +export var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export var filterOrElseW = filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +export var bracket = function (acquire, use, release) { return bracketW(acquire, use, release); }; +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var bracketW = function (acquire, use, release) { + return flatMap(acquire, function (a) { return I.flatMap(use(a), function (e) { return flatMap(release(a, e), function () { return I.of(e); }); }); }); +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(I.traverseReadonlyNonEmptyArrayWithIndex(f), I.map(E.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + var e = f(0, _.head(as))(); + if (_.isLeft(e)) { + return e; + } + var out = [e.right]; + for (var i = 1; i < as.length; i++) { + var e_1 = f(i, as[i])(); + if (_.isLeft(e_1)) { + return e_1; + } + out.push(e_1.right); + } + return _.right(out); + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArray = function (f) { return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceSeqArray = +/*#__PURE__*/ traverseSeqArray(identity); +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`ApplicativePar`](#applicativepar) instead + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Applicative = ApplicativePar; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export var chainFirstW = tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirst = tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirstW = tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IOE.Functor` instead of `IOE.ioEither` + * (where `IOE` is from `import IOE from 'fp-ts/IOEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var ioEither = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + alt: _alt, + fromIO: fromIO, + throwError: throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplySemigroup = +/*#__PURE__*/ getApplySemigroup_(ApplyPar); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplyMonoid = +/*#__PURE__*/ getApplicativeMonoid(ApplicativePar); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = function (S) { + return getApplySemigroup_(I.Apply)(E.getSemigroup(S)); +}; +/** + * Use [`getApplicativeIOValidation`](#getapplicativeiovalidation) and [`getAltIOValidation`](#getaltiovalidation). + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export function getIOValidation(SE) { + var applicativeIOValidation = getApplicativeIOValidation(SE); + var altIOValidation = getAltIOValidation(SE); + return { + URI: URI, + _E: undefined, + map: _map, + ap: applicativeIOValidation.ap, + of: of, + chain: flatMap, + bimap: mapBoth, + mapLeft: mapError, + alt: altIOValidation.alt, + fromIO: fromIO, + throwError: throwError + }; +} diff --git a/node_modules/fp-ts/es6/IOOption.d.ts b/node_modules/fp-ts/es6/IOOption.d.ts new file mode 100644 index 0000000..fd2cd77 --- /dev/null +++ b/node_modules/fp-ts/es6/IOOption.d.ts @@ -0,0 +1,616 @@ +/** + * `IOOption<A>` represents a synchronous computation that either yields a value of type `A` or nothing. + * + * If you want to represent a synchronous computation that never fails, please see `IO`. + * If you want to represent a synchronous computation that may fail, please see `IOEither`. + * + * @since 2.12.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Filterable1 } from './Filterable' +import { FromEither1 } from './FromEither' +import { FromIO1 } from './FromIO' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import * as I from './IO' +import { IOEither } from './IOEither' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import * as O from './Option' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Separated } from './Separated' +import { Zero1 } from './Zero' +import IO = I.IO +import Option = O.Option +/** + * @category model + * @since 2.12.0 + */ +export interface IOOption<A> extends IO<Option<A>> {} +/** + * @category constructors + * @since 2.12.0 + */ +export declare const some: <A>(a: A) => IOOption<A> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => IOOption<B> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => IOOption<B> + <A>(predicate: Predicate<A>): (a: A) => IOOption<A> +} +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => IOOption<A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => IOOption<A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromIO: <A>(fa: IO<A>) => IOOption<A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromIOEither: <A>(fa: IOEither<unknown, A>) => IOOption<A> +/** + * @category pattern matching + * @since 2.12.0 + */ +export declare const match: <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: IOOption<A>) => IO<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchW: <B, A, C>(onNone: () => B, onSome: (a: A) => C) => (ma: IOOption<A>) => IO<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchE: <B, A>(onNone: () => IO<B>, onSome: (a: A) => IO<B>) => (ma: IOOption<A>) => IO<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const fold: <B, A>(onNone: () => IO<B>, onSome: (a: A) => IO<B>) => (ma: IOOption<A>) => IO<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchEW: <B, C, A>(onNone: () => IO<B>, onSome: (a: A) => IO<C>) => (ma: IOOption<A>) => IO<B | C> +/** + * @category error handling + * @since 2.12.0 + */ +export declare const getOrElse: <A>(onNone: LazyArg<IO<A>>) => (fa: IOOption<A>) => IO<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.12.0 + */ +export declare const getOrElseW: <B>(onNone: LazyArg<IO<B>>) => <A>(ma: IOOption<A>) => IO<A | B> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const toUndefined: <A>(ma: IOOption<A>) => IO<A | undefined> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const toNullable: <A>(ma: IOOption<A>) => IO<A | null> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromNullable: <A>(a: A) => IOOption<NonNullable<A>> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromNullableK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => IOOption<NonNullable<B>> +/** + * Alias of `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainNullableK: <A, B>( + f: (a: A) => B | null | undefined +) => (ma: IOOption<A>) => IOOption<NonNullable<B>> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => IOOption<B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.12.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: IOOption<A>) => IOOption<B> +/** + * @since 2.12.0 + */ +export declare const ap: <A>(fa: IOOption<A>) => <B>(fab: IOOption<(a: A) => B>) => IOOption<B> +/** + * @category constructors + * @since 2.12.0 + */ +export declare const of: <A>(a: A) => IOOption<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => IOOption<B>): (ma: IOOption<A>) => IOOption<B> + <A, B>(ma: IOOption<A>, f: (a: A) => IOOption<B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.12.0 + */ +export declare const flatten: <A>(mma: IOOption<IOOption<A>>) => IOOption<A> +/** + * @category error handling + * @since 2.12.0 + */ +export declare const alt: <A>(second: LazyArg<IOOption<A>>) => (first: IOOption<A>) => IOOption<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.12.0 + */ +export declare const altW: <B>(second: LazyArg<IOOption<B>>) => <A>(first: IOOption<A>) => IOOption<A | B> +/** + * @since 2.12.0 + */ +export declare const zero: <A>() => IOOption<A> +/** + * @category constructors + * @since 2.12.0 + */ +export declare const none: IOOption<never> +/** + * @category filtering + * @since 2.12.0 + */ +export declare const compact: Compactable1<URI>['compact'] +/** + * @category filtering + * @since 2.12.0 + */ +export declare const separate: Compactable1<URI>['separate'] +/** + * @category filtering + * @since 2.12.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: IOOption<A>) => IOOption<B> + <A>(predicate: Predicate<A>): <B extends A>(fb: IOOption<B>) => IOOption<B> + <A>(predicate: Predicate<A>): (fa: IOOption<A>) => IOOption<A> +} +/** + * @category filtering + * @since 2.12.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fga: IOOption<A>) => IOOption<B> +/** + * @category filtering + * @since 2.12.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: IOOption<A>) => Separated<IOOption<A>, IOOption<B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: IOOption<B>) => Separated<IOOption<B>, IOOption<B>> + <A>(predicate: Predicate<A>): (fa: IOOption<A>) => Separated<IOOption<A>, IOOption<A>> +} +/** + * @category filtering + * @since 2.12.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: IOOption<A>) => Separated<IOOption<B>, IOOption<C>> +/** + * @category type lambdas + * @since 2.12.0 + */ +export declare const URI = 'IOOption' +/** + * @category type lambdas + * @since 2.12.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: IOOption<A> + } +} +/** + * @category instances + * @since 2.12.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the `Some` value of this `IOOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: IOOption<_>) => IOOption<A> + <_, A>(self: IOOption<_>, a: A): IOOption<A> +} +/** + * Maps the `Some` value of this `IOOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: IOOption<_>) => IOOption<void> +/** + * @category mapping + * @since 2.12.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'IOOption', (a: A) => B>) => import('./HKT').Kind<'IOOption', B> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.12.0 + */ +export declare const apFirst: <B>( + second: IOOption<B> +) => <A>(first: import('./HKT').Kind<'IOOption', A>) => import('./HKT').Kind<'IOOption', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.12.0 + */ +export declare const apSecond: <B>( + second: IOOption<B> +) => <A>(first: import('./HKT').Kind<'IOOption', A>) => import('./HKT').Kind<'IOOption', B> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: IOOption<A>, f: (a: A) => IOOption<_>): IOOption<A> + <A, _>(f: (a: A) => IOOption<_>): (self: IOOption<A>) => IOOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * IOO.of(value), + * IOO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1)(), O.of(1)) + * assert.deepStrictEqual(compute(-1)(), O.none) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E, _>(f: (a: A) => Either<E, _>): (self: IOOption<A>) => IOOption<A> + <A, E, _>(self: IOOption<A>, f: (a: A) => Either<E, _>): IOOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = pipe( + * IOO.of('fp-ts'), + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * // No output to the stdout + * const effectB = pipe( + * IOO.none as IOO.IOOption<string>, + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effectA(), O.of('fp-ts')) + * assert.deepStrictEqual(effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): (self: IOOption<A>) => IOOption<A> + <A, _>(self: IOOption<A>, f: (a: A) => IO<_>): IOOption<A> +} +/** + * @category instances + * @since 2.12.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'IOOption', void> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): (self: IOOption<A>) => IOOption<B> + <A, B>(self: IOOption<A>, f: (a: A) => IO<B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapOption: { + <A, B>(f: (a: A) => Option<B>): (self: IOOption<A>) => IOOption<B> + <A, B>(self: IOOption<A>, f: (a: A) => Option<B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapEither: { + <A, B, _>(f: (a: A) => Either<_, B>): (self: IOOption<A>) => IOOption<B> + <A, B, _>(self: IOOption<A>, f: (a: A) => Either<_, B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapNullable: { + <A, B>(f: (a: A) => B | null | undefined): (self: IOOption<A>) => IOOption<B> + <A, B>(self: IOOption<A>, f: (a: A) => B | null | undefined): IOOption<B> +} +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => I.IO<B>) => (...a: A) => IOOption<B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => I.IO<B>) => (first: IOOption<A>) => IOOption<B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => (first: IOOption<A>) => IOOption<A> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => IOOption<B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: IOOption<A>) => IOOption<B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: IOOption<A>) => IOOption<A> +/** + * Alias of `flatMapOption`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainOptionK: <A, B>(f: (a: A) => Option<B>) => (ma: IOOption<A>) => IOOption<B> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const Do: IOOption<{}> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'IOOption', A>) => import('./HKT').Kind<'IOOption', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'IOOption', A> +) => import('./HKT').Kind<'IOOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.12.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'IOOption', B> +) => ( + ma: import('./HKT').Kind<'IOOption', A> +) => import('./HKT').Kind<'IOOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: IOOption<B> +) => ( + fa: import('./HKT').Kind<'IOOption', A> +) => import('./HKT').Kind<'IOOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.12.0 + */ +export declare const ApT: IOOption<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IOOption<B> +) => (as: ReadonlyNonEmptyArray<A>) => IOOption<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IOOption<B> +) => (as: ReadonlyArray<A>) => IOOption<ReadonlyArray<B>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chain: <A, B>(f: (a: A) => IOOption<B>) => (ma: IOOption<A>) => IOOption<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => IOOption<B>) => (first: IOOption<A>) => IOOption<A> diff --git a/node_modules/fp-ts/es6/IOOption.js b/node_modules/fp-ts/es6/IOOption.js new file mode 100644 index 0000000..bca1a6a --- /dev/null +++ b/node_modules/fp-ts/es6/IOOption.js @@ -0,0 +1,626 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import * as chainable from './Chain'; +import { compact as compact_, separate as separate_ } from './Compactable'; +import { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable'; +import { fromEitherK as fromEitherK_, tapEither as tapEither_ } from './FromEither'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as I from './IO'; +import * as O from './Option'; +import * as OT from './OptionT'; +import { guard as guard_ } from './Zero'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.12.0 + */ +export var some = /*#__PURE__*/ OT.some(I.Pointed); +/** + * @category lifting + * @since 2.12.0 + */ +export var fromPredicate = /*#__PURE__*/ OT.fromPredicate(I.Pointed); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.12.0 + */ +export var fromOption = I.of; +/** + * @category conversions + * @since 2.12.0 + */ +export var fromEither = /*#__PURE__*/ OT.fromEither(I.Pointed); +/** + * @category conversions + * @since 2.12.0 + */ +export var fromIO = /*#__PURE__*/ OT.fromF(I.Functor); +/** + * @category conversions + * @since 2.12.0 + */ +export var fromIOEither = /*#__PURE__*/ I.map(O.fromEither); +/** + * @category pattern matching + * @since 2.12.0 + */ +export var match = /*#__PURE__*/ OT.match(I.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.12.0 + */ +export var matchE = +/*#__PURE__*/ OT.matchE(I.Chain); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.12.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export var matchEW = matchE; +/** + * @category error handling + * @since 2.12.0 + */ +export var getOrElse = /*#__PURE__*/ OT.getOrElse(I.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.12.0 + */ +export var getOrElseW = getOrElse; +/** + * @category conversions + * @since 2.12.0 + */ +export var toUndefined = I.map(O.toUndefined); +/** + * @category conversions + * @since 2.12.0 + */ +export var toNullable = I.map(O.toNullable); +/** + * @category conversions + * @since 2.12.0 + */ +export var fromNullable = /*#__PURE__*/ OT.fromNullable(I.Pointed); +/** + * @category lifting + * @since 2.12.0 + */ +export var fromNullableK = /*#__PURE__*/ OT.fromNullableK(I.Pointed); +/** + * Alias of `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainNullableK = /*#__PURE__*/ OT.chainNullableK(I.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category lifting + * @since 2.12.0 + */ +export var fromOptionK = +/*#__PURE__*/ OT.fromOptionK(I.Pointed); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.12.0 + */ +export var map = /*#__PURE__*/ OT.map(I.Functor); +/** + * @since 2.12.0 + */ +export var ap = /*#__PURE__*/ OT.ap(I.Apply); +/** + * @category constructors + * @since 2.12.0 + */ +export var of = some; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, OT.flatMap(I.Monad)); +/** + * @category sequencing + * @since 2.12.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * @category error handling + * @since 2.12.0 + */ +export var alt = /*#__PURE__*/ OT.alt(I.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.12.0 + */ +export var altW = alt; +/** + * @since 2.12.0 + */ +export var zero = /*#__PURE__*/ OT.zero(I.Pointed); +/** + * @category constructors + * @since 2.12.0 + */ +export var none = /*#__PURE__*/ zero(); +/** + * @category filtering + * @since 2.12.0 + */ +export var compact = /*#__PURE__*/ compact_(I.Functor, O.Compactable); +/** + * @category filtering + * @since 2.12.0 + */ +export var separate = /*#__PURE__*/ separate_(I.Functor, O.Compactable, O.Functor); +/** + * @category filtering + * @since 2.12.0 + */ +export var filter = /*#__PURE__*/ filter_(I.Functor, O.Filterable); +/** + * @category filtering + * @since 2.12.0 + */ +export var filterMap = /*#__PURE__*/ filterMap_(I.Functor, O.Filterable); +/** + * @category filtering + * @since 2.12.0 + */ +export var partition = /*#__PURE__*/ partition_(I.Functor, O.Filterable); +/** + * @category filtering + * @since 2.12.0 + */ +export var partitionMap = /*#__PURE__*/ partitionMap_(I.Functor, O.Filterable); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/* istanbul ignore next */ +var _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); }; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return pipe(fa, partition(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); }; +/** + * @category type lambdas + * @since 2.12.0 + */ +export var URI = 'IOOption'; +/** + * @category instances + * @since 2.12.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Some` value of this `IOOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Some` value of this `IOOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.12.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.12.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.12.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.12.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.12.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.12.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.12.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.12.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.12.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * IOO.of(value), + * IOO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1)(), O.of(1)) + * assert.deepStrictEqual(compute(-1)(), O.none) + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = pipe( + * IOO.of('fp-ts'), + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * // No output to the stdout + * const effectB = pipe( + * IOO.none as IOO.IOOption<string>, + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effectA(), O.of('fp-ts')) + * assert.deepStrictEqual(effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * @category instances + * @since 2.12.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.12.0 + */ +export var Zero = { + URI: URI, + zero: zero +}; +/** + * @category do notation + * @since 2.12.0 + */ +export var guard = /*#__PURE__*/ guard_(Zero, Pointed); +/** + * @category instances + * @since 2.12.0 + */ +export var Alternative = { + URI: URI, + map: _map, + ap: _ap, + of: of, + alt: _alt, + zero: zero +}; +/** + * @category instances + * @since 2.12.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.12.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.12.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.12.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: FromIO.fromIO +}; +/** @internal */ +var _FromEither = { + fromEither: fromEither +}; +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapOption = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, fromOptionK(f)); }); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapEither = /*#__PURE__*/ _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapNullable = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, fromNullableK(f)); }); +/** + * @category lifting + * @since 2.12.0 + */ +export var fromIOK = +/*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstIOK = tapIO; +/** + * @category lifting + * @since 2.12.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainEitherK = flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Alias of `flatMapOption`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainOptionK = flatMapOption; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.12.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.12.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.12.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * @category do notation + * @since 2.12.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * @since 2.12.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(I.traverseReadonlyNonEmptyArrayWithIndex(f), I.map(O.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.12.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirst = tap; diff --git a/node_modules/fp-ts/es6/IORef.d.ts b/node_modules/fp-ts/es6/IORef.d.ts new file mode 100644 index 0000000..1fa8931 --- /dev/null +++ b/node_modules/fp-ts/es6/IORef.d.ts @@ -0,0 +1,37 @@ +/** + * Mutable references in the `IO` monad + * + * @since 2.0.0 + */ +import { IO } from './IO' +/** + * @example + * import { flatMap } from 'fp-ts/IO' + * import { newIORef } from 'fp-ts/IORef' + * + * assert.strictEqual(flatMap(newIORef(1), ref => flatMap(ref.write(2), () => ref.read))(), 2) + * + * @category model + * @since 2.0.0 + */ +export declare class IORef<A> { + private value + /** + * @since 2.0.0 + */ + readonly read: IO<A> + constructor(value: A) + /** + * @since 2.0.0 + */ + write(a: A): IO<void> + /** + * @since 2.0.0 + */ + modify(f: (a: A) => A): IO<void> +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function newIORef<A>(a: A): IO<IORef<A>> diff --git a/node_modules/fp-ts/es6/IORef.js b/node_modules/fp-ts/es6/IORef.js new file mode 100644 index 0000000..bbf1fb8 --- /dev/null +++ b/node_modules/fp-ts/es6/IORef.js @@ -0,0 +1,46 @@ +/** + * @example + * import { flatMap } from 'fp-ts/IO' + * import { newIORef } from 'fp-ts/IORef' + * + * assert.strictEqual(flatMap(newIORef(1), ref => flatMap(ref.write(2), () => ref.read))(), 2) + * + * @category model + * @since 2.0.0 + */ +var IORef = /** @class */ (function () { + function IORef(value) { + var _this = this; + this.value = value; + this.read = function () { return _this.value; }; + this.write = this.write.bind(this); + this.modify = this.modify.bind(this); + } + /** + * @since 2.0.0 + */ + IORef.prototype.write = function (a) { + var _this = this; + return function () { + _this.value = a; + }; + }; + /** + * @since 2.0.0 + */ + IORef.prototype.modify = function (f) { + var _this = this; + return function () { + _this.value = f(_this.value); + }; + }; + return IORef; +}()); +export { IORef }; +/** + * @category constructors + * @since 2.0.0 + */ +export function newIORef(a) { + return function () { return new IORef(a); }; +} diff --git a/node_modules/fp-ts/es6/Identity.d.ts b/node_modules/fp-ts/es6/Identity.d.ts new file mode 100644 index 0000000..873f51b --- /dev/null +++ b/node_modules/fp-ts/es6/Identity.d.ts @@ -0,0 +1,295 @@ +/** + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { ChainRec1 } from './ChainRec' +import { Comonad1 } from './Comonad' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { Functor1 } from './Functor' +import { Monad1 } from './Monad' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export type Identity<A> = A +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Identity<A>) => Identity<B> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Identity<A>) => <B>(fab: Identity<(a: A) => B>) => Identity<B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => Identity<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Identity<B>): (ma: Identity<A>) => Identity<B> + <A, B>(ma: Identity<A>, f: (a: A) => Identity<B>): Identity<B> +} +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (wa: Identity<A>) => B) => (wa: Identity<A>) => Identity<B> +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <A>(wa: Identity<A>) => A +/** + * @since 2.0.0 + */ +export declare const duplicate: <A>(ma: Identity<A>) => Identity<Identity<A>> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Identity<Identity<A>>) => Identity<A> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Identity<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Identity<A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Identity<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: () => Identity<B>) => <A>(fa: Identity<A>) => Identity<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <A>(that: () => Identity<A>) => (fa: Identity<A>) => Identity<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Identity' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Identity<A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Identity<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Identity<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Identity', (a: A) => B>) => import('./HKT').Kind<'Identity', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: B +) => <A>(first: import('./HKT').Kind<'Identity', A>) => import('./HKT').Kind<'Identity', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: B +) => <A>(first: import('./HKT').Kind<'Identity', A>) => import('./HKT').Kind<'Identity', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.7 + */ +export declare const tap: { + <A, _>(self: Identity<A>, f: (a: A) => Identity<_>): Identity<A> + <A, _>(f: (a: A) => Identity<_>): (self: Identity<A>) => Identity<A> +} +/** + * Alias of `tap` + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => B) => (first: A) => A +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const ChainRec: ChainRec1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Identity<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Identity', A>) => import('./HKT').Kind<'Identity', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Identity', A> +) => import('./HKT').Kind<'Identity', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Identity', B> +) => ( + ma: import('./HKT').Kind<'Identity', A> +) => import('./HKT').Kind<'Identity', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: B +) => ( + fa: import('./HKT').Kind<'Identity', A> +) => import('./HKT').Kind<'Identity', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Identity<B>) => (ma: Identity<A>) => Identity<B> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `I.Functor` instead of `I.identity` + * (where `I` is from `import I from 'fp-ts/Identity'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const identity: Monad1<URI> & + Foldable1<URI> & + Traversable1<URI> & + Alt1<URI> & + Comonad1<URI> & + ChainRec1<URI> diff --git a/node_modules/fp-ts/es6/Identity.js b/node_modules/fp-ts/es6/Identity.js new file mode 100644 index 0000000..daeae17 --- /dev/null +++ b/node_modules/fp-ts/es6/Identity.js @@ -0,0 +1,340 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import { bind as bind_, tap as tap_ } from './Chain'; +import { tailRec } from './ChainRec'; +import { dual, identity as id, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { return function (fa, f) { return pipe(fa, foldMap(M)(f)); }; }; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +var _chainRec = tailRec; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return f(fa); }; }; +/** + * @since 2.0.0 + */ +export var ap = function (fa) { return function (fab) { return fab(fa); }; }; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = id; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return f(ma); }); +/** + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { return f(wa); }; }; +/** + * @category Extract + * @since 2.6.2 + */ +export var extract = id; +/** + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(id); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = /*#__PURE__*/ flatMap(id); +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = function (b, f) { return function (fa) { return f(b, fa); }; }; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = function () { return function (f) { return function (fa) { return f(fa); }; }; }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRight = function (b, f) { return function (fa) { return f(fa, b); }; }; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + return function (f) { + return function (ta) { + return F.map(f(ta), id); + }; + }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (ta) { + return F.map(ta, id); + }; +}; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function () { return id; }; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export var alt = altW; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Identity'; +/** + * @category instances + * @since 2.0.0 + */ +export var getShow = id; +/** + * @category instances + * @since 2.0.0 + */ +export var getEq = id; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.7 + */ +export var tap = /*#__PURE__*/ dual(2, tap_(Chain)); +/** + * Alias of `tap` + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +/** + * @category instances + * @since 2.7.0 + */ +export var ChainRec = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRec +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ bind_(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `I.Functor` instead of `I.identity` + * (where `I` is from `import I from 'fp-ts/Identity'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var identity = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + alt: _alt, + extract: extract, + extend: _extend, + chainRec: _chainRec +}; diff --git a/node_modules/fp-ts/es6/Invariant.d.ts b/node_modules/fp-ts/es6/Invariant.d.ts new file mode 100644 index 0000000..f400f01 --- /dev/null +++ b/node_modules/fp-ts/es6/Invariant.d.ts @@ -0,0 +1,62 @@ +/** + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant<F> { + readonly URI: F + readonly imap: <A, B>(fa: HKT<F, A>, f: (a: A) => B, g: (b: B) => A) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant1<F extends URIS> { + readonly URI: F + readonly imap: <A, B>(fa: Kind<F, A>, f: (a: A) => B, g: (b: B) => A) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant2<F extends URIS2> { + readonly URI: F + readonly imap: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly imap: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant3<F extends URIS3> { + readonly URI: F + readonly imap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.4.2 + */ +export interface Invariant3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly imap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.4.2 + */ +export interface Invariant4<F extends URIS4> { + readonly URI: F + readonly imap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind4<F, S, R, E, B> +} diff --git a/node_modules/fp-ts/es6/Invariant.js b/node_modules/fp-ts/es6/Invariant.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Invariant.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/JoinSemilattice.d.ts b/node_modules/fp-ts/es6/JoinSemilattice.d.ts new file mode 100644 index 0000000..894137c --- /dev/null +++ b/node_modules/fp-ts/es6/JoinSemilattice.d.ts @@ -0,0 +1,19 @@ +/** + * A join-semilattice (or upper semilattice) is a semilattice whose operation is called `join`, and which can be thought + * of as a least upper bound. + * + * A `JoinSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∨ (b ∨ c) <-> (a ∨ b) ∨ c` + * - Commutativity: `a ∨ b <-> b ∨ a` + * - Idempotency: `a ∨ a <-> a` + * + * @since 2.0.0 + */ +/** + * @category model + * @since 2.0.0 + */ +export interface JoinSemilattice<A> { + readonly join: (x: A, y: A) => A +} diff --git a/node_modules/fp-ts/es6/JoinSemilattice.js b/node_modules/fp-ts/es6/JoinSemilattice.js new file mode 100644 index 0000000..7b76649 --- /dev/null +++ b/node_modules/fp-ts/es6/JoinSemilattice.js @@ -0,0 +1,13 @@ +/** + * A join-semilattice (or upper semilattice) is a semilattice whose operation is called `join`, and which can be thought + * of as a least upper bound. + * + * A `JoinSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∨ (b ∨ c) <-> (a ∨ b) ∨ c` + * - Commutativity: `a ∨ b <-> b ∨ a` + * - Idempotency: `a ∨ a <-> a` + * + * @since 2.0.0 + */ +export {}; diff --git a/node_modules/fp-ts/es6/Json.d.ts b/node_modules/fp-ts/es6/Json.d.ts new file mode 100644 index 0000000..aa92870 --- /dev/null +++ b/node_modules/fp-ts/es6/Json.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.10.0 + */ +import { Either } from './Either' +/** + * @since 2.10.0 + */ +export type Json = boolean | number | string | null | JsonArray | JsonRecord +/** + * @since 2.10.0 + */ +export interface JsonRecord { + readonly [key: string]: Json +} +/** + * @since 2.10.0 + */ +export interface JsonArray extends ReadonlyArray<Json> {} +/** + * Converts a JavaScript Object Notation (JSON) string into a `Json` type. + * + * @example + * import * as J from 'fp-ts/Json' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('{"a":1}', J.parse), E.right({ a: 1 })) + * assert.deepStrictEqual(pipe('{"a":}', J.parse), E.left(new SyntaxError(`Unexpected token '}', "{"a":}" is not valid JSON`))) + * + * @since 2.10.0 + */ +export declare const parse: (s: string) => Either<unknown, Json> +/** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string. + * + * @example + * import * as E from 'fp-ts/Either' + * import * as J from 'fp-ts/Json' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(J.stringify({ a: 1 }), E.right('{"a":1}')) + * const circular: any = { ref: null } + * circular.ref = circular + * assert.deepStrictEqual( + * pipe( + * J.stringify(circular), + * E.mapLeft(e => e instanceof Error && e.message.includes('Converting circular structure to JSON')) + * ), + * E.left(true) + * ) + * + * @since 2.10.0 + */ +export declare const stringify: <A>(a: A) => Either<unknown, string> diff --git a/node_modules/fp-ts/es6/Json.js b/node_modules/fp-ts/es6/Json.js new file mode 100644 index 0000000..4599568 --- /dev/null +++ b/node_modules/fp-ts/es6/Json.js @@ -0,0 +1,49 @@ +/** + * @since 2.10.0 + */ +import { tryCatch } from './Either'; +import { identity } from './function'; +/** + * Converts a JavaScript Object Notation (JSON) string into a `Json` type. + * + * @example + * import * as J from 'fp-ts/Json' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('{"a":1}', J.parse), E.right({ a: 1 })) + * assert.deepStrictEqual(pipe('{"a":}', J.parse), E.left(new SyntaxError(`Unexpected token '}', "{"a":}" is not valid JSON`))) + * + * @since 2.10.0 + */ +export var parse = function (s) { return tryCatch(function () { return JSON.parse(s); }, identity); }; +/** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string. + * + * @example + * import * as E from 'fp-ts/Either' + * import * as J from 'fp-ts/Json' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(J.stringify({ a: 1 }), E.right('{"a":1}')) + * const circular: any = { ref: null } + * circular.ref = circular + * assert.deepStrictEqual( + * pipe( + * J.stringify(circular), + * E.mapLeft(e => e instanceof Error && e.message.includes('Converting circular structure to JSON')) + * ), + * E.left(true) + * ) + * + * @since 2.10.0 + */ +export var stringify = function (a) { + return tryCatch(function () { + var s = JSON.stringify(a); + if (typeof s !== 'string') { + throw new Error('Converting unsupported structure to JSON'); + } + return s; + }, identity); +}; diff --git a/node_modules/fp-ts/es6/Lattice.d.ts b/node_modules/fp-ts/es6/Lattice.d.ts new file mode 100644 index 0000000..ab8a9c6 --- /dev/null +++ b/node_modules/fp-ts/es6/Lattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `Lattice` must satisfy the following in addition to `JoinSemilattice` and `MeetSemilattice` laws: + * + * - Absorbtion law for meet: `a ∧ (a ∨ b) <-> a` + * - Absorbtion law for join: `a ∨ (a ∧ b) <-> a` + * + * @since 2.0.0 + */ +import { JoinSemilattice } from './JoinSemilattice' +import { MeetSemilattice } from './MeetSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface Lattice<A> extends JoinSemilattice<A>, MeetSemilattice<A> {} diff --git a/node_modules/fp-ts/es6/Lattice.js b/node_modules/fp-ts/es6/Lattice.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Lattice.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Magma.d.ts b/node_modules/fp-ts/es6/Magma.d.ts new file mode 100644 index 0000000..6b6edda --- /dev/null +++ b/node_modules/fp-ts/es6/Magma.d.ts @@ -0,0 +1,58 @@ +/** + * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A` + * + * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances. + * + * @since 2.0.0 + */ +import { Endomorphism } from './Endomorphism' +import { Predicate } from './Predicate' +/** + * @category model + * @since 2.0.0 + */ +export interface Magma<A> { + readonly concat: (x: A, y: A) => A +} +/** + * The dual of a `Magma`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse, concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(reverse(N.MagmaSub))(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), 2) + * + * @since 2.11.0 + */ +export declare const reverse: <A>(M: Magma<A>) => Magma<A> +/** + * @since 2.11.0 + */ +export declare const filterFirst: <A>(predicate: Predicate<A>) => (M: Magma<A>) => Magma<A> +/** + * @since 2.11.0 + */ +export declare const filterSecond: <A>(predicate: Predicate<A>) => (M: Magma<A>) => Magma<A> +/** + * @since 2.11.0 + */ +export declare const endo: <A>(f: Endomorphism<A>) => (M: Magma<A>) => Magma<A> +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(N.MagmaSub)(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), -6) + * + * @since 2.11.0 + */ +export declare const concatAll: <A>(M: Magma<A>) => (startWith: A) => (as: ReadonlyArray<A>) => A diff --git a/node_modules/fp-ts/es6/Magma.js b/node_modules/fp-ts/es6/Magma.js new file mode 100644 index 0000000..d2cbf0c --- /dev/null +++ b/node_modules/fp-ts/es6/Magma.js @@ -0,0 +1,75 @@ +/** + * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A` + * + * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances. + * + * @since 2.0.0 + */ +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * The dual of a `Magma`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse, concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(reverse(N.MagmaSub))(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), 2) + * + * @since 2.11.0 + */ +export var reverse = function (M) { return ({ + concat: function (first, second) { return M.concat(second, first); } +}); }; +/** + * @since 2.11.0 + */ +export var filterFirst = function (predicate) { + return function (M) { return ({ + concat: function (first, second) { return (predicate(first) ? M.concat(first, second) : second); } + }); }; +}; +/** + * @since 2.11.0 + */ +export var filterSecond = function (predicate) { + return function (M) { return ({ + concat: function (first, second) { return (predicate(second) ? M.concat(first, second) : first); } + }); }; +}; +/** + * @since 2.11.0 + */ +export var endo = function (f) { + return function (M) { return ({ + concat: function (first, second) { return M.concat(f(first), f(second)); } + }); }; +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(N.MagmaSub)(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), -6) + * + * @since 2.11.0 + */ +export var concatAll = function (M) { + return function (startWith) { + return function (as) { + return as.reduce(function (a, acc) { return M.concat(a, acc); }, startWith); + }; + }; +}; diff --git a/node_modules/fp-ts/es6/Map.d.ts b/node_modules/fp-ts/es6/Map.d.ts new file mode 100644 index 0000000..b3d856e --- /dev/null +++ b/node_modules/fp-ts/es6/Map.d.ts @@ -0,0 +1,421 @@ +import { Compactable2 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable2 } from './Filterable' +import { FilterableWithIndex2C } from './FilterableWithIndex' +import { Foldable, Foldable1, Foldable2, Foldable2C, Foldable3 } from './Foldable' +import { FoldableWithIndex2C } from './FoldableWithIndex' +import { Functor2 } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import * as O from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { TraversableWithIndex2C } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { Witherable2C } from './Witherable' +import Option = O.Option +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <K, A>(SK: Show<K>, SA: Show<A>) => Show<Map<K, A>> +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.0.0 + */ +export declare const size: <K, A>(m: Map<K, A>) => number +/** + * Test whether or not a map is empty + * + * @since 2.0.0 + */ +export declare const isEmpty: <K, A>(m: Map<K, A>) => boolean +/** + * Test whether or not a key exists in a map + * + * @since 2.0.0 + */ +export declare const member: <K>(E: Eq<K>) => { + (k: K): <A>(m: Map<K, A>) => boolean + <A>(k: K, m: Map<K, A>): boolean +} +/** + * Test whether or not a value is a member of a map + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): <K>(m: Map<K, A>) => boolean + <K>(a: A, m: Map<K, A>): boolean +} +/** + * Get a sorted `Array` of the keys contained in a `Map`. + * + * @since 2.0.0 + */ +export declare const keys: <K>(O: Ord<K>) => <A>(m: Map<K, A>) => Array<K> +/** + * Get a sorted `Array` of the values contained in a `Map`. + * + * @since 2.0.0 + */ +export declare const values: <A>(O: Ord<A>) => <K>(m: Map<K, A>) => Array<A> +/** + * @since 2.0.0 + */ +export declare function collect<K>(O: Ord<K>): <A, B>(f: (k: K, a: A) => B) => (m: Map<K, A>) => Array<B> +/** + * Get a sorted `Array` of the key/value pairs contained in a `Map`. + * + * @since 2.0.0 + */ +export declare function toArray<K>(O: Ord<K>): <A>(m: Map<K, A>) => Array<[K, A]> +/** + * Unfolds a map into a list of key/value pairs + * + * @since 2.0.0 + */ +export declare function toUnfoldable<K, F extends URIS>( + ord: Ord<K>, + U: Unfoldable1<F> +): <A>(d: Map<K, A>) => Kind<F, [K, A]> +export declare function toUnfoldable<K, F>(ord: Ord<K>, U: Unfoldable<F>): <A>(d: Map<K, A>) => HKT<F, [K, A]> +/** + * Insert or replace a key/value pair in a `Map`. + * + * @since 2.0.0 + */ +export declare const upsertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: Map<K, A>) => Map<K, A> +/** + * Delete a key and value from a map + * + * @since 2.0.0 + */ +export declare const deleteAt: <K>(E: Eq<K>) => (k: K) => <A>(m: Map<K, A>) => Map<K, A> +/** + * @since 2.0.0 + */ +export declare const updateAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: Map<K, A>) => Option<Map<K, A>> +/** + * @since 2.0.0 + */ +export declare const modifyAt: <K>(E: Eq<K>) => <A>(k: K, f: (a: A) => A) => (m: Map<K, A>) => Option<Map<K, A>> +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.0.0 + */ +export declare function pop<K>(E: Eq<K>): (k: K) => <A>(m: Map<K, A>) => Option<[A, Map<K, A>]> +/** + * Lookup the value for a key in a `Map`. + * If the result is a `Some`, the existing key is also returned. + * + * @since 2.0.0 + */ +export declare function lookupWithKey<K>(E: Eq<K>): { + (k: K): <A>(m: Map<K, A>) => Option<[K, A]> + <A>(k: K, m: Map<K, A>): Option<[K, A]> +} +/** + * Lookup the value for a key in a `Map`. + * + * @since 2.0.0 + */ +export declare const lookup: <K>(E: Eq<K>) => { + (k: K): <A>(m: Map<K, A>) => Option<A> + <A>(k: K, m: Map<K, A>): Option<A> +} +/** + * Test whether or not one `Map` contains all of the keys and values contained in another `Map` + * + * @since 2.0.0 + */ +export declare const isSubmap: <K, A>( + SK: Eq<K>, + SA: Eq<A> +) => { + (that: Map<K, A>): (me: Map<K, A>) => boolean + (me: Map<K, A>, that: Map<K, A>): boolean +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <K, A>(SK: Eq<K>, SA: Eq<A>) => Eq<Map<K, A>> +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.0.0 + */ +export declare function getMonoid<K, A>(SK: Eq<K>, SA: Semigroup<A>): Monoid<Map<K, A>> +/** + * Create a map with one key/value pair + * + * @since 2.0.0 + */ +export declare const singleton: <K, A>(k: K, a: A) => Map<K, A> +/** + * Create a map from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @category constructors + * @since 2.0.0 + */ +export declare function fromFoldable<F extends URIS3, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, [K, A]>) => Map<K, A> +export declare function fromFoldable<F extends URIS2, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, [K, A]>) => Map<K, A> +export declare function fromFoldable<F extends URIS, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, [K, A]>) => Map<K, A> +export declare function fromFoldable<F, K, A>(E: Eq<K>, M: Magma<A>, F: Foldable<F>): (fka: HKT<F, [K, A]>) => Map<K, A> +/** + * @since 2.10.0 + */ +export declare const partitionMapWithIndex: <K, A, B, C>( + f: (k: K, a: A) => Either<B, C> +) => (fa: Map<K, A>) => Separated<Map<K, B>, Map<K, C>> +/** + * @since 2.10.0 + */ +export declare function partitionWithIndex<K, A, B extends A>( + predicateWithIndex: (k: K, a: A) => a is B +): (fa: Map<K, A>) => Separated<Map<K, A>, Map<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): <B extends A>(fb: Map<K, B>) => Separated<Map<K, B>, Map<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): (fa: Map<K, A>) => Separated<Map<K, A>, Map<K, A>> +/** + * @since 2.10.0 + */ +export declare const filterMapWithIndex: <K, A, B>(f: (k: K, a: A) => Option<B>) => (fa: Map<K, A>) => Map<K, B> +/** + * @since 2.10.0 + */ +export declare function filterWithIndex<K, A, B extends A>(p: (k: K, a: A) => a is B): (m: Map<K, A>) => Map<K, B> +export declare function filterWithIndex<K, A>(p: (k: K, a: A) => boolean): <B extends A>(m: Map<K, B>) => Map<K, B> +export declare function filterWithIndex<K, A>(p: (k: K, a: A) => boolean): (m: Map<K, A>) => Map<K, A> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <K, A>(fa: Map<K, Option<A>>) => Map<K, A> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): <K>(fa: Map<K, A>) => Map<K, B> + <A>(predicate: Predicate<A>): <K, B extends A>(fb: Map<K, B>) => Map<K, B> + <A>(predicate: Predicate<A>): <K>(fa: Map<K, A>) => Map<K, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => <K>(fa: Map<K, A>) => Map<K, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <K>(fa: Map<K, A>) => Map<K, B> +/** + * @category mapping + * @since 2.7.1 + */ +export declare const mapWithIndex: <K, A, B>(f: (k: K, a: A) => B) => (fa: Map<K, A>) => Map<K, B> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): <K>(fa: Map<K, A>) => Separated<Map<K, A>, Map<K, B>> + <A>(predicate: Predicate<A>): <K, B extends A>(fb: Map<K, B>) => Separated<Map<K, B>, Map<K, B>> + <A>(predicate: Predicate<A>): <K>(fa: Map<K, A>) => Separated<Map<K, A>, Map<K, A>> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => <K>(fa: Map<K, A>) => Separated<Map<K, B>, Map<K, C>> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <K, A, B>(fa: Map<K, Either<A, B>>) => Separated<Map<K, A>, Map<K, B>> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Map' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Map<E, A> + } +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<Map<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <K, A>(E: Eq<K>, S: Semigroup<A>) => Monoid<Map<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<Map<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <K>(E: Eq<K>) => <A>() => Magma<Map<K, A>> +/** + * @category filtering + * @since 2.0.0 + */ +export declare function getFilterableWithIndex<K = never>(): FilterableWithIndex2C<URI, K, K> +/** + * @category filtering + * @since 2.0.0 + */ +export declare function getWitherable<K>(O: Ord<K>): Witherable2C<URI, K> & TraversableWithIndex2C<URI, K, K> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduce: <K>(O: Ord<K>) => <B, A>(b: B, f: (b: B, a: A) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMap: <K>(O: Ord<K>) => <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (m: Map<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <K>(O: Ord<K>) => <B, A>(b: B, f: (a: A, b: B) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const getFoldable: <K>(O: Ord<K>) => Foldable2C<URI, K> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceWithIndex: <K>(O: Ord<K>) => <B, A>(b: B, f: (k: K, b: B, a: A) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMapWithIndex: <K>( + O: Ord<K> +) => <M>(M: Monoid<M>) => <A>(f: (k: K, a: A) => M) => (m: Map<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRightWithIndex: <K>( + O: Ord<K> +) => <B, A>(b: B, f: (k: K, a: A, b: B) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.10.0 + */ +export declare const getFoldableWithIndex: <K>(O: Ord<K>) => FoldableWithIndex2C<URI, K, K> +/** + * @category traversing + * @since 2.10.0 + */ +export declare const getTraversableWithIndex: <K>(O: Ord<K>) => TraversableWithIndex2C<URI, K, K> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <E, B>(fab: Kind2<'Map', E, (a: A) => B>) => Kind2<'Map', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable2<URI> +/** + * @since 2.11.0 + */ +export declare const union: <K, A>(E: Eq<K>, M: Magma<A>) => (second: Map<K, A>) => (first: Map<K, A>) => Map<K, A> +/** + * @since 2.11.0 + */ +export declare const intersection: <K, A>( + E: Eq<K>, + M: Magma<A> +) => (second: Map<K, A>) => (first: Map<K, A>) => Map<K, A> +/** + * @since 2.11.0 + */ +export declare const difference: <K>(E: Eq<K>) => <A>(_second: Map<K, A>) => (first: Map<K, A>) => Map<K, A> +/** + * Use a `new Map()` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const empty: Map<never, never> +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const insertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: Map<K, A>) => Map<K, A> +/** + * Use [`Filterable`](#filterable) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const map_: Filterable2<URI> diff --git a/node_modules/fp-ts/es6/Map.js b/node_modules/fp-ts/es6/Map.js new file mode 100644 index 0000000..2e929a4 --- /dev/null +++ b/node_modules/fp-ts/es6/Map.js @@ -0,0 +1,750 @@ +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +import { pipe } from './function'; +import { flap as flap_ } from './Functor'; +import * as _ from './internal'; +import * as O from './Option'; +import * as RM from './ReadonlyMap'; +import { separated } from './Separated'; +import { wiltDefault, witherDefault } from './Witherable'; +/** + * @category instances + * @since 2.0.0 + */ +export var getShow = RM.getShow; +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.0.0 + */ +export var size = RM.size; +/** + * Test whether or not a map is empty + * + * @since 2.0.0 + */ +export var isEmpty = RM.isEmpty; +// TODO: remove non-curried overloading in v3 +/** + * Test whether or not a key exists in a map + * + * @since 2.0.0 + */ +export var member = RM.member; +// TODO: remove non-curried overloading in v3 +/** + * Test whether or not a value is a member of a map + * + * @since 2.0.0 + */ +export var elem = RM.elem; +/** + * Get a sorted `Array` of the keys contained in a `Map`. + * + * @since 2.0.0 + */ +export var keys = function (O) { + return function (m) { + return Array.from(m.keys()).sort(O.compare); + }; +}; +/** + * Get a sorted `Array` of the values contained in a `Map`. + * + * @since 2.0.0 + */ +export var values = function (O) { + return function (m) { + return Array.from(m.values()).sort(O.compare); + }; +}; +/** + * @since 2.0.0 + */ +export function collect(O) { + var keysO = keys(O); + return function (f) { + return function (m) { + var out = []; + var ks = keysO(m); + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + out.push(f(key, m.get(key))); + } + return out; + }; + }; +} +/** + * Get a sorted `Array` of the key/value pairs contained in a `Map`. + * + * @since 2.0.0 + */ +export function toArray(O) { + return collect(O)(function (k, a) { return [k, a]; }); +} +export function toUnfoldable(ord, U) { + var toArrayO = toArray(ord); + return function (d) { + var kas = toArrayO(d); + var len = kas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([kas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `Map`. + * + * @since 2.0.0 + */ +export var upsertAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, a) { + var lookupWithKeyEk = lookupWithKeyE(k); + return function (m) { + var found = lookupWithKeyEk(m); + if (_.isNone(found)) { + var out = new Map(m); + out.set(k, a); + return out; + } + else if (found.value[1] !== a) { + var out = new Map(m); + out.set(found.value[0], a); + return out; + } + return m; + }; + }; +}; +/** + * Delete a key and value from a map + * + * @since 2.0.0 + */ +export var deleteAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isSome(found)) { + var r = new Map(m); + r.delete(found.value[0]); + return r; + } + return m; + }; }; +}; +/** + * @since 2.0.0 + */ +export var updateAt = function (E) { + var modifyAtE = modifyAt(E); + return function (k, a) { return modifyAtE(k, function () { return a; }); }; +}; +/** + * @since 2.0.0 + */ +export var modifyAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, f) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isNone(found)) { + return _.none; + } + var r = new Map(m); + r.set(found.value[0], f(found.value[1])); + return _.some(r); + }; }; +}; +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.0.0 + */ +export function pop(E) { + var lookupE = lookup(E); + var deleteAtE = deleteAt(E); + return function (k) { + var deleteAtEk = deleteAtE(k); + return function (m) { + return pipe(lookupE(k, m), O.map(function (a) { return [a, deleteAtEk(m)]; })); + }; + }; +} +export function lookupWithKey(E) { + return function (k, m) { + if (m === undefined) { + var lookupWithKeyE_1 = lookupWithKey(E); + return function (m) { return lookupWithKeyE_1(k, m); }; + } + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, ka = _a[0], a = _a[1]; + if (E.equals(ka, k)) { + return _.some([ka, a]); + } + } + return _.none; + }; +} +// TODO: remove non-curried overloading in v3 +/** + * Lookup the value for a key in a `Map`. + * + * @since 2.0.0 + */ +export var lookup = RM.lookup; +// TODO: remove non-curried overloading in v3 +/** + * Test whether or not one `Map` contains all of the keys and values contained in another `Map` + * + * @since 2.0.0 + */ +export var isSubmap = RM.isSubmap; +/** + * @category instances + * @since 2.0.0 + */ +export var getEq = RM.getEq; +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.0.0 + */ +export function getMonoid(SK, SA) { + var lookupWithKeyS = lookupWithKey(SK); + return { + concat: function (mx, my) { + if (isEmpty(mx)) { + return my; + } + if (isEmpty(my)) { + return mx; + } + var r = new Map(mx); + var entries = my.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var mxOptA = lookupWithKeyS(k, mx); + if (_.isSome(mxOptA)) { + r.set(mxOptA.value[0], SA.concat(mxOptA.value[1], a)); + } + else { + r.set(k, a); + } + } + return r; + }, + empty: new Map() + }; +} +/** + * Create a map with one key/value pair + * + * @since 2.0.0 + */ +export var singleton = function (k, a) { return new Map([[k, a]]); }; +export function fromFoldable(E, M, F) { + return function (fka) { + var lookupWithKeyE = lookupWithKey(E); + return F.reduce(fka, new Map(), function (b, _a) { + var k = _a[0], a = _a[1]; + var bOpt = lookupWithKeyE(k, b); + if (_.isSome(bOpt)) { + b.set(bOpt.value[0], M.concat(bOpt.value[1], a)); + } + else { + b.set(k, a); + } + return b; + }); + }; +} +var _mapWithIndex = function (fa, f) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, key = _a[0], a = _a[1]; + m.set(key, f(key, a)); + } + return m; +}; +/** + * @since 2.10.0 + */ +export var partitionMapWithIndex = function (f) { + return function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var ei = f(k, a); + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return separated(left, right); + }; +}; +export function partitionWithIndex(predicateWithIndex) { + return function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (predicateWithIndex(k, a)) { + right.set(k, a); + } + else { + left.set(k, a); + } + } + return separated(left, right); + }; +} +/** + * @since 2.10.0 + */ +export var filterMapWithIndex = function (f) { + return function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var o = f(k, a); + if (_.isSome(o)) { + m.set(k, o.value); + } + } + return m; + }; +}; +export function filterWithIndex(p) { + return function (m) { + var out = new Map(); + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (p(k, a)) { + out.set(k, a); + } + } + return out; + }; +} +var _map = function (fa, f) { return _mapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filter = function (fa, p) { + return _filterWithIndex(fa, function (_, a) { return p(a); }); +}; +var _filterMap = function (fa, f) { return _filterMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _partition = function (fa, predicate) { + return _partitionWithIndex(fa, function (_, a) { return predicate(a); }); +}; +var _partitionMap = function (fa, f) { return _partitionMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filterWithIndex = function (fa, p) { return pipe(fa, filterWithIndex(p)); }; +var _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); }; +var _partitionWithIndex = function (fa, p) { return pipe(fa, partitionWithIndex(p)); }; +var _partitionMapWithIndex = function (fa, f) { + return pipe(fa, partitionMapWithIndex(f)); +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var compact = function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], oa = _a[1]; + if (_.isSome(oa)) { + m.set(k, oa.value); + } + } + return m; +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var filter = function (predicate) { + return function (fa) { + return _filter(fa, predicate); + }; +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var filterMap = function (f) { return function (fa) { + return _filterMap(fa, f); +}; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return _map(fa, f); }; }; +/** + * @category mapping + * @since 2.7.1 + */ +export var mapWithIndex = function (f) { return function (fa) { + return _mapWithIndex(fa, f); +}; }; +/** + * @category filtering + * @since 2.0.0 + */ +export var partition = function (predicate) { + return function (fa) { + return _partition(fa, predicate); + }; +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var partitionMap = function (f) { return function (fa) { return _partitionMap(fa, f); }; }; +/** + * @category filtering + * @since 2.0.0 + */ +export var separate = function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], ei = _a[1]; + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return separated(left, right); +}; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Map'; +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E, S) { + var unionES = union(E, S); + return { + concat: function (first, second) { return unionES(second)(first); } + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionMonoid = function (E, S) { return ({ + concat: getUnionSemigroup(E, S).concat, + empty: new Map() +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getIntersectionSemigroup = function (E, S) { + var intersectionES = intersection(E, S); + return { + concat: function (first, second) { return intersectionES(second)(first); } + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function (E) { + return function () { + var differenceE = difference(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; + }; +}; +/** + * @category filtering + * @since 2.0.0 + */ +export function getFilterableWithIndex() { + return { + URI: URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex + }; +} +/** + * @category filtering + * @since 2.0.0 + */ +export function getWitherable(O) { + var TWI = getTraversableWithIndex(O); + return { + URI: URI, + _E: undefined, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: TWI.reduce, + foldMap: TWI.foldMap, + reduceRight: TWI.reduceRight, + traverse: TWI.traverse, + sequence: TWI.sequence, + mapWithIndex: _mapWithIndex, + reduceWithIndex: TWI.reduceWithIndex, + foldMapWithIndex: TWI.foldMapWithIndex, + reduceRightWithIndex: TWI.reduceRightWithIndex, + traverseWithIndex: TWI.traverseWithIndex, + wilt: wiltDefault(TWI, Compactable), + wither: witherDefault(TWI, Compactable) + }; +} +/** + * @category folding + * @since 2.11.0 + */ +export var reduce = RM.reduce; +/** + * @category folding + * @since 2.11.0 + */ +export var foldMap = RM.foldMap; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceRight = RM.reduceRight; +/** + * @category folding + * @since 2.11.0 + */ +export var getFoldable = function (O) { + return __assign(__assign({}, RM.getFoldable(O)), { URI: URI }); +}; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceWithIndex = RM.reduceWithIndex; +/** + * @category folding + * @since 2.11.0 + */ +export var foldMapWithIndex = RM.foldMapWithIndex; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceRightWithIndex = RM.reduceRightWithIndex; +/** + * @category folding + * @since 2.10.0 + */ +export var getFoldableWithIndex = function (O) { + return __assign(__assign({}, RM.getFoldableWithIndex(O)), { URI: URI }); +}; +/** + * @category traversing + * @since 2.10.0 + */ +export var getTraversableWithIndex = function (O) { + var FWI = getFoldableWithIndex(O); + var keysO = keys(O); + var traverseWithIndex = function (F) { + return function (ta, f) { + var fm = F.of(new Map()); + var ks = keysO(ta); + var len = ks.length; + var _loop_1 = function (i) { + var key = ks[i]; + var a = ta.get(key); + fm = F.ap(F.map(fm, function (m) { return function (b) { return m.set(key, b); }; }), f(key, a)); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + return fm; + }; + }; + var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return traverseWithIndexF(ta, function (_, a) { return f(a); }); }; + }; + var sequence = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta) { return traverseWithIndexF(ta, function (_, a) { return a; }); }; + }; + return { + URI: URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: FWI.reduce, + foldMap: FWI.foldMap, + reduceRight: FWI.reduceRight, + reduceWithIndex: FWI.reduceWithIndex, + foldMapWithIndex: FWI.foldMapWithIndex, + reduceRightWithIndex: FWI.reduceRightWithIndex, + traverse: traverse, + sequence: sequence, + traverseWithIndex: traverseWithIndex + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +var copy = function (m) { return new Map(m); }; +/** + * @since 2.11.0 + */ +export var union = function (E, M) { + var unionEM = RM.union(E, M); + return function (second) { return function (first) { + if (isEmpty(first)) { + return copy(second); + } + if (isEmpty(second)) { + return copy(first); + } + return unionEM(second)(first); + }; }; +}; +/** + * @since 2.11.0 + */ +export var intersection = function (E, M) { + var intersectionEM = RM.intersection(E, M); + return function (second) { return function (first) { + if (isEmpty(first) || isEmpty(second)) { + return new Map(); + } + return intersectionEM(second)(first); + }; }; +}; +/** + * @since 2.11.0 + */ +export var difference = function (E) { + var differenceE = RM.difference(E); + return function (second) { + return function (first) { + if (isEmpty(first)) { + return copy(second); + } + if (isEmpty(second)) { + return copy(first); + } + return differenceE(second)(first); + }; + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use a `new Map()` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var empty = new Map(); +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var insertAt = upsertAt; +/** + * Use [`Filterable`](#filterable) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var map_ = Filterable; diff --git a/node_modules/fp-ts/es6/MeetSemilattice.d.ts b/node_modules/fp-ts/es6/MeetSemilattice.d.ts new file mode 100644 index 0000000..8baa2b2 --- /dev/null +++ b/node_modules/fp-ts/es6/MeetSemilattice.d.ts @@ -0,0 +1,19 @@ +/** + * A meet-semilattice (or lower semilattice) is a semilattice whose operation is called `meet`, and which can be thought + * of as a greatest lower bound. + * + * A `MeetSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∧ (b ∧ c) <-> (a ∧ b) ∧ c` + * - Commutativity: `a ∧ b <-> b ∧ a` + * - Idempotency: `a ∧ a <-> a` + * + * @since 2.0.0 + */ +/** + * @category model + * @since 2.0.0 + */ +export interface MeetSemilattice<A> { + readonly meet: (x: A, y: A) => A +} diff --git a/node_modules/fp-ts/es6/MeetSemilattice.js b/node_modules/fp-ts/es6/MeetSemilattice.js new file mode 100644 index 0000000..1977173 --- /dev/null +++ b/node_modules/fp-ts/es6/MeetSemilattice.js @@ -0,0 +1,13 @@ +/** + * A meet-semilattice (or lower semilattice) is a semilattice whose operation is called `meet`, and which can be thought + * of as a greatest lower bound. + * + * A `MeetSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∧ (b ∧ c) <-> (a ∧ b) ∧ c` + * - Commutativity: `a ∧ b <-> b ∧ a` + * - Idempotency: `a ∧ a <-> a` + * + * @since 2.0.0 + */ +export {}; diff --git a/node_modules/fp-ts/es6/Monad.d.ts b/node_modules/fp-ts/es6/Monad.d.ts new file mode 100644 index 0000000..4121ed5 --- /dev/null +++ b/node_modules/fp-ts/es6/Monad.d.ts @@ -0,0 +1,61 @@ +/** + * The `Monad` type class combines the operations of the `Chain` and + * `Applicative` type classes. Therefore, `Monad` instances represent type + * constructors which support sequential composition, and also lifting of + * functions of arbitrary arity. + * + * Instances must satisfy the following laws in addition to the `Applicative` and `Chain` laws: + * + * 1. Left identity: `M.chain(M.of(a), f) <-> f(a)` + * 2. Right identity: `M.chain(fa, M.of) <-> fa` + * + * Note. `Functor`'s `map` can be derived: `A.map = (fa, f) => A.chain(fa, a => A.of(f(a)))` + * + * @since 2.0.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Monad<F> extends Applicative<F>, Chain<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad1<F extends URIS> extends Applicative1<F>, Chain1<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad2<M extends URIS2> extends Applicative2<M>, Chain2<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad2C<M extends URIS2, L> extends Applicative2C<M, L>, Chain2C<M, L> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad3<M extends URIS3> extends Applicative3<M>, Chain3<M> {} +/** + * @category model + * @since 2.2.0 + */ +export interface Monad3C<M extends URIS3, E> extends Applicative3C<M, E>, Chain3C<M, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad4<M extends URIS4> extends Applicative4<M>, Chain4<M> {} diff --git a/node_modules/fp-ts/es6/Monad.js b/node_modules/fp-ts/es6/Monad.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Monad.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/MonadIO.d.ts b/node_modules/fp-ts/es6/MonadIO.d.ts new file mode 100644 index 0000000..e1f2a2d --- /dev/null +++ b/node_modules/fp-ts/es6/MonadIO.d.ts @@ -0,0 +1,43 @@ +/** + * Lift a computation from the `IO` monad + * + * @since 2.0.0 + */ +import { FromIO, FromIO1, FromIO2, FromIO2C, FromIO3, FromIO3C, FromIO4 } from './FromIO' +import { URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO<M> extends Monad<M>, FromIO<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO1<M extends URIS> extends Monad1<M>, FromIO1<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO2<M extends URIS2> extends Monad2<M>, FromIO2<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO2C<M extends URIS2, E> extends Monad2C<M, E>, FromIO2C<M, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO3<M extends URIS3> extends Monad3<M>, FromIO3<M> {} +/** + * @category model + * @since 2.2.0 + */ +export interface MonadIO3C<M extends URIS3, E> extends Monad3C<M, E>, FromIO3C<M, E> {} +/** + * @category model + * @since 2.4.4 + */ +export interface MonadIO4<M extends URIS4> extends Monad4<M>, FromIO4<M> {} diff --git a/node_modules/fp-ts/es6/MonadIO.js b/node_modules/fp-ts/es6/MonadIO.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/MonadIO.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/MonadTask.d.ts b/node_modules/fp-ts/es6/MonadTask.d.ts new file mode 100644 index 0000000..6021eaf --- /dev/null +++ b/node_modules/fp-ts/es6/MonadTask.d.ts @@ -0,0 +1,43 @@ +/** + * Lift a computation from the `Task` monad + * + * @since 2.0.0 + */ +import { FromTask, FromTask1, FromTask2, FromTask2C, FromTask3, FromTask3C, FromTask4 } from './FromTask' +import { URIS, URIS2, URIS3, URIS4 } from './HKT' +import { MonadIO, MonadIO1, MonadIO2, MonadIO2C, MonadIO3, MonadIO3C, MonadIO4 } from './MonadIO' +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask<M> extends MonadIO<M>, FromTask<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask1<M extends URIS> extends MonadIO1<M>, FromTask1<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask2<M extends URIS2> extends MonadIO2<M>, FromTask2<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask2C<M extends URIS2, E> extends MonadIO2C<M, E>, FromTask2C<M, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask3<M extends URIS3> extends MonadIO3<M>, FromTask3<M> {} +/** + * @category model + * @since 2.2.0 + */ +export interface MonadTask3C<M extends URIS3, E> extends MonadIO3C<M, E>, FromTask3C<M, E> {} +/** + * @category model + * @since 2.4.4 + */ +export interface MonadTask4<M extends URIS4> extends MonadIO4<M>, FromTask4<M> {} diff --git a/node_modules/fp-ts/es6/MonadTask.js b/node_modules/fp-ts/es6/MonadTask.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/MonadTask.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/MonadThrow.d.ts b/node_modules/fp-ts/es6/MonadThrow.d.ts new file mode 100644 index 0000000..e921e16 --- /dev/null +++ b/node_modules/fp-ts/es6/MonadThrow.d.ts @@ -0,0 +1,61 @@ +/** + * The `MonadThrow` type class represents those monads which support errors via + * `throwError`, where `throwError(e)` halts, yielding the error `e`. + * + * Laws: + * + * - Left zero: `M.chain(M.throwError(e), f) = M.throwError(e)` + * + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow<M> extends Monad<M> { + readonly throwError: <E, A>(e: E) => HKT<M, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow1<M extends URIS> extends Monad1<M> { + readonly throwError: <E, A>(e: E) => Kind<M, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow2<M extends URIS2> extends Monad2<M> { + readonly throwError: <E, A>(e: E) => Kind2<M, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow2C<M extends URIS2, E> extends Monad2C<M, E> { + readonly throwError: <A>(e: E) => Kind2<M, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow3<M extends URIS3> extends Monad3<M> { + readonly throwError: <R, E, A>(e: E) => Kind3<M, R, E, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface MonadThrow3C<M extends URIS3, E> extends Monad3C<M, E> { + readonly throwError: <R, A>(e: E) => Kind3<M, R, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow4<M extends URIS4> extends Monad4<M> { + readonly throwError: <S, R, E, A>(e: E) => Kind4<M, S, R, E, A> +} diff --git a/node_modules/fp-ts/es6/MonadThrow.js b/node_modules/fp-ts/es6/MonadThrow.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/MonadThrow.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Monoid.d.ts b/node_modules/fp-ts/es6/Monoid.d.ts new file mode 100644 index 0000000..b555ebc --- /dev/null +++ b/node_modules/fp-ts/es6/Monoid.d.ts @@ -0,0 +1,268 @@ +/** + * `Monoid` extends the power of `Semigroup` by providing an additional `empty` value. + * + * ```ts + * interface Semigroup<A> { + * readonly concat: (x: A, y: A) => A + * } + * + * interface Monoid<A> extends Semigroup<A> { + * readonly empty: A + * } + * ``` + * + * This `empty` value should be an identity for the `concat` operation, which means the following equalities hold for any choice of `x`. + * + * ```ts + * concat(x, empty) = concat(empty, x) = x + * ``` + * + * Many types that form a `Semigroup` also form a `Monoid`, such as `number`s (with `0`) and `string`s (with `''`). + * + * ```ts + * import { Monoid } from 'fp-ts/Monoid' + * + * const monoidString: Monoid<string> = { + * concat: (x, y) => x + y, + * empty: '' + * } + * ``` + * + * *Adapted from https://typelevel.org/cats* + * + * @since 2.0.0 + */ +import { Bounded } from './Bounded' +import { Endomorphism } from './Endomorphism' +import { ReadonlyRecord } from './ReadonlyRecord' +import * as Se from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Monoid<A> extends Se.Semigroup<A> { + readonly empty: A +} +/** + * Get a monoid where `concat` will return the minimum, based on the provided bounded order. + * + * The `empty` value is the `top` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.min(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +export declare const min: <A>(B: Bounded<A>) => Monoid<A> +/** + * Get a monoid where `concat` will return the maximum, based on the provided bounded order. + * + * The `empty` value is the `bottom` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.max(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +export declare const max: <A>(B: Bounded<A>) => Monoid<A> +/** + * The dual of a `Monoid`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Monoid' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Monoid).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +export declare const reverse: <A>(M: Monoid<A>) => Monoid<A> +/** + * Given a struct of monoids returns a monoid for the struct. + * + * @example + * import { struct } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const M = struct<Point>({ + * x: N.MonoidSum, + * y: N.MonoidSum + * }) + * + * assert.deepStrictEqual(M.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +export declare const struct: <A>(monoids: { [K in keyof A]: Monoid<A[K]> }) => Monoid<{ readonly [K in keyof A]: A[K] }> +/** + * Given a tuple of monoids returns a monoid for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Monoid' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const M1 = tuple(S.Monoid, N.MonoidSum) + * assert.deepStrictEqual(M1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const M2 = tuple(S.Monoid, N.MonoidSum, B.MonoidAll) + * assert.deepStrictEqual(M2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...monoids: { [K in keyof A]: Monoid<A[K]> } +) => Monoid<Readonly<A>> +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the monoid `empty` value. + * + * @example + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) + * assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) + * + * @since 2.10.0 + */ +export declare const concatAll: <A>(M: Monoid<A>) => (as: ReadonlyArray<A>) => A +/** + * Use [`Monoid`](./void.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidVoid: Monoid<void> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleMonoid: <T extends ReadonlyArray<Monoid<any>>>( + ...monoids: T +) => Monoid<{ + [K in keyof T]: T[K] extends Se.Semigroup<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructMonoid: <O extends ReadonlyRecord<string, any>>(monoids: { + [K in keyof O]: Monoid<O[K]> +}) => Monoid<O> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualMonoid: <A>(M: Monoid<A>) => Monoid<A> +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getJoinMonoid: <A>(B: Bounded<A>) => Monoid<A> +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMeetMonoid: <A>(B: Bounded<A>) => Monoid<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const fold: <A>(M: Monoid<A>) => (as: ReadonlyArray<A>) => A +/** + * Use [`MonoidAll`](./boolean.ts.html#monoidall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidAll: Monoid<boolean> +/** + * Use [`MonoidAny`](./boolean.ts.html#monoidany) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidAny: Monoid<boolean> +/** + * Use [`getMonoid`](./function.ts.html#getmonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionMonoid: <M>(M: Monoid<M>) => <A = never>() => Monoid<(a: A) => M> +/** + * Use [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) instead. + * + * **Note**. The execution order in [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) is reversed. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getEndomorphismMonoid: <A = never>() => Monoid<Endomorphism<A>> +/** + * Use [`Monoid`](./string.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidString: Monoid<string> +/** + * Use [`MonoidSum`](./number.ts.html#monoidsum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidSum: Monoid<number> +/** + * Use [`MonoidProduct`](./number.ts.html#monoidproduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidProduct: Monoid<number> diff --git a/node_modules/fp-ts/es6/Monoid.js b/node_modules/fp-ts/es6/Monoid.js new file mode 100644 index 0000000..b672e8c --- /dev/null +++ b/node_modules/fp-ts/es6/Monoid.js @@ -0,0 +1,278 @@ +import { getMonoid as getEM } from './Endomorphism'; +import { getMonoid as getFM } from './function'; +import * as _ from './internal'; +import * as Se from './Semigroup'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Get a monoid where `concat` will return the minimum, based on the provided bounded order. + * + * The `empty` value is the `top` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.min(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +export var min = function (B) { return ({ + concat: Se.min(B).concat, + empty: B.top +}); }; +/** + * Get a monoid where `concat` will return the maximum, based on the provided bounded order. + * + * The `empty` value is the `bottom` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.max(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +export var max = function (B) { return ({ + concat: Se.max(B).concat, + empty: B.bottom +}); }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * The dual of a `Monoid`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Monoid' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Monoid).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +export var reverse = function (M) { return ({ + concat: Se.reverse(M).concat, + empty: M.empty +}); }; +/** + * Given a struct of monoids returns a monoid for the struct. + * + * @example + * import { struct } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const M = struct<Point>({ + * x: N.MonoidSum, + * y: N.MonoidSum + * }) + * + * assert.deepStrictEqual(M.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +export var struct = function (monoids) { + var empty = {}; + for (var k in monoids) { + if (_.has.call(monoids, k)) { + empty[k] = monoids[k].empty; + } + } + return { + concat: Se.struct(monoids).concat, + empty: empty + }; +}; +/** + * Given a tuple of monoids returns a monoid for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Monoid' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const M1 = tuple(S.Monoid, N.MonoidSum) + * assert.deepStrictEqual(M1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const M2 = tuple(S.Monoid, N.MonoidSum, B.MonoidAll) + * assert.deepStrictEqual(M2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +export var tuple = function () { + var monoids = []; + for (var _i = 0; _i < arguments.length; _i++) { + monoids[_i] = arguments[_i]; + } + return ({ + concat: Se.tuple.apply(Se, monoids).concat, + empty: monoids.map(function (m) { return m.empty; }) + }); +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the monoid `empty` value. + * + * @example + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) + * assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) + * + * @since 2.10.0 + */ +export var concatAll = function (M) { return Se.concatAll(M)(M.empty); }; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Monoid`](./void.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var monoidVoid = { + concat: Se.semigroupVoid.concat, + empty: undefined +}; +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getTupleMonoid = tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getStructMonoid = struct; +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getDualMonoid = reverse; +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getJoinMonoid = max; +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getMeetMonoid = min; +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var fold = concatAll; +/** + * Use [`MonoidAll`](./boolean.ts.html#monoidall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var monoidAll = { + concat: Se.semigroupAll.concat, + empty: true +}; +/** + * Use [`MonoidAny`](./boolean.ts.html#monoidany) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var monoidAny = { + concat: Se.semigroupAny.concat, + empty: false +}; +/** + * Use [`getMonoid`](./function.ts.html#getmonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFunctionMonoid = getFM; +/** + * Use [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) instead. + * + * **Note**. The execution order in [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) is reversed. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getEndomorphismMonoid = function () { return reverse(getEM()); }; +/** + * Use [`Monoid`](./string.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var monoidString = { + concat: Se.semigroupString.concat, + empty: '' +}; +/** + * Use [`MonoidSum`](./number.ts.html#monoidsum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var monoidSum = { + concat: Se.semigroupSum.concat, + empty: 0 +}; +/** + * Use [`MonoidProduct`](./number.ts.html#monoidproduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var monoidProduct = { + concat: Se.semigroupProduct.concat, + empty: 1 +}; diff --git a/node_modules/fp-ts/es6/NaturalTransformation.d.ts b/node_modules/fp-ts/es6/NaturalTransformation.d.ts new file mode 100644 index 0000000..da3e6bc --- /dev/null +++ b/node_modules/fp-ts/es6/NaturalTransformation.d.ts @@ -0,0 +1,132 @@ +/** + * A type for natural transformations. + * + * A natural transformation is a mapping between type constructors of kind `* -> *` where the mapping + * operation has no ability to manipulate the inner values. + * + * The definition of a natural transformation in category theory states that `F` and `G` should be functors, + * but the `Functor` constraint is not enforced here; that the types are of kind `* -> *` is enough for our purposes. + * + * @since 2.11.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @since 2.11.0 + */ +export interface NaturalTransformation<F, G> { + <A>(fa: HKT<F, A>): HKT<G, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation11<F extends URIS, G extends URIS> { + <A>(fa: Kind<F, A>): Kind<G, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation12<F extends URIS, G extends URIS2> { + <A, E>(fa: Kind<F, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation12C<F extends URIS, G extends URIS2, E> { + <A>(fa: Kind<F, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation13<F extends URIS, G extends URIS3> { + <A, R, E>(fa: Kind<F, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation13C<F extends URIS, G extends URIS3, E> { + <A, R>(fa: Kind<F, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation14<F extends URIS, G extends URIS4> { + <A, S, R, E>(fa: Kind<F, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation14C<F extends URIS, G extends URIS4, E> { + <A, S, R>(fa: Kind<F, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation21<F extends URIS2, G extends URIS> { + <A>(fa: Kind2<F, unknown, A>): Kind<G, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation22<F extends URIS2, G extends URIS2> { + <E, A>(fa: Kind2<F, E, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation22C<F extends URIS2, G extends URIS2, E> { + <A>(fa: Kind2<F, E, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23<F extends URIS2, G extends URIS3> { + <E, A, R>(fa: Kind2<F, E, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23C<F extends URIS2, G extends URIS3, E> { + <A, R>(fa: Kind2<F, E, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation24<F extends URIS2, G extends URIS4> { + <E, A, S, R>(fa: Kind2<F, E, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23R<F extends URIS2, G extends URIS3> { + <R, A, E>(fa: Kind2<F, R, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23RC<F extends URIS2, G extends URIS3, E> { + <R, A>(fa: Kind2<F, R, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation24R<F extends URIS2, G extends URIS4> { + <R, A, S, E>(fa: Kind2<F, R, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation24S<F extends URIS2, G extends URIS4> { + <S, A, R, E>(fa: Kind2<F, S, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation33<F extends URIS3, G extends URIS3> { + <R, E, A>(fa: Kind3<F, R, E, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation34<F extends URIS3, G extends URIS4> { + <R, E, A, S>(fa: Kind3<F, R, E, A>): Kind4<G, S, R, E, A> +} diff --git a/node_modules/fp-ts/es6/NaturalTransformation.js b/node_modules/fp-ts/es6/NaturalTransformation.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/NaturalTransformation.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/NonEmptyArray.d.ts b/node_modules/fp-ts/es6/NonEmptyArray.d.ts new file mode 100644 index 0000000..64812bb --- /dev/null +++ b/node_modules/fp-ts/es6/NonEmptyArray.d.ts @@ -0,0 +1,855 @@ +/** + * Data structure which represents non-empty arrays. + * + * ```ts + * export type NonEmptyArray<A> = Array<A> & { + * 0: A + * } + * ``` + * + * Note that you don't need any conversion, a `NonEmptyArray` is an `Array`, + * so all `Array`'s APIs can be used with a `NonEmptyArray` without further ado. + * + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { Comonad1 } from './Comonad' +import { Endomorphism } from './Endomorphism' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Monad1 } from './Monad' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import * as RNEA from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import Semigroup = Se.Semigroup +import ReadonlyNonEmptyArray = RNEA.ReadonlyNonEmptyArray +/** + * @category model + * @since 2.0.0 + */ +export interface NonEmptyArray<A> extends Array<A> { + 0: A +} +/** + * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = NEA.sortBy([byName, byAge]) + * + * const persons: NEA.NonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +export declare const sortBy: <B>(ords: Array<Ord<B>>) => <A extends B>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @since 2.11.0 + */ +export declare const union: <A>(E: Eq<A>) => (second: NonEmptyArray<A>) => (first: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Rotate a `NonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +export declare const rotate: (n: number) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromReadonlyNonEmptyArray: <A>(as: ReadonlyNonEmptyArray<A>) => NonEmptyArray<A> +/** + * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromArray: <A>(as: Array<A>) => Option<NonEmptyArray<A>> +/** + * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const makeBy: <A>(f: (i: number) => A) => (n: number) => NonEmptyArray<A> +/** + * Create a `NonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +export declare const replicate: <A>(a: A) => (n: number) => ReadonlyNonEmptyArray<A> +/** + * Create a `NonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const range: (start: number, end: number) => NonEmptyArray<number> +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]]) + * + * @since 2.9.0 + */ +export declare const unprepend: <A>(as: NonEmptyArray<A>) => [A, Array<A>] +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +export declare const unappend: <A>(as: NonEmptyArray<A>) => [Array<A>, A] +/** + * @since 2.11.0 + */ +export declare function concatW<B>(second: NonEmptyArray<B>): <A>(first: Array<A>) => NonEmptyArray<A | B> +export declare function concatW<B>(second: Array<B>): <A>(first: NonEmptyArray<A>) => NonEmptyArray<A | B> +/** + * @since 2.2.0 + */ +export declare function concat<A>(second: NonEmptyArray<A>): (first: Array<A>) => NonEmptyArray<A> +export declare function concat<A>(second: Array<A>): (first: NonEmptyArray<A>) => NonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: Array<A>, second: NonEmptyArray<A>): NonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: NonEmptyArray<A>, second: Array<A>): NonEmptyArray<A> +/** + * @since 2.0.0 + */ +export declare const reverse: <A>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Group equal, consecutive elements of an array into non empty arrays. + * + * @example + * import { group } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(group(N.Ord)([1, 2, 1, 1]), [ + * [1], + * [2], + * [1, 1] + * ]) + * + * @since 2.0.0 + */ +export declare function group<B>(E: Eq<B>): { + <A extends B>(as: NonEmptyArray<A>): NonEmptyArray<NonEmptyArray<A>> + <A extends B>(as: Array<A>): Array<NonEmptyArray<A>> +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.0.0 + */ +export declare const groupBy: <A>(f: (a: A) => string) => (as: Array<A>) => Record<string, NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @since 2.0.0 + */ +export declare const insertAt: <A>(i: number, a: A) => (as: Array<A>) => Option<NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const updateAt: <A>(i: number, a: A) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const copy: <A>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => NonEmptyArray<A> +/** + * @since 2.5.1 + */ +export declare const zipWith: <A, B, C>( + as: NonEmptyArray<A>, + bs: NonEmptyArray<B>, + f: (a: A, b: B) => C +) => NonEmptyArray<C> +/** + * @since 2.5.1 + */ +export declare function zip<B>(bs: NonEmptyArray<B>): <A>(as: NonEmptyArray<A>) => NonEmptyArray<[A, B]> +export declare function zip<A, B>(as: NonEmptyArray<A>, bs: NonEmptyArray<B>): NonEmptyArray<[A, B]> +/** + * @since 2.5.1 + */ +export declare const unzip: <A, B>(abs: NonEmptyArray<[A, B]>) => [NonEmptyArray<A>, NonEmptyArray<B>] +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMapWithIndex: <S>( + S: Semigroup<S> +) => <A>(f: (i: number, a: A) => S) => (fa: NonEmptyArray<A>) => S +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <S>(S: Semigroup<S>) => <A>(f: (a: A) => S) => (fa: NonEmptyArray<A>) => S +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainWithIndex: <A, B>( + f: (i: number, a: A) => NonEmptyArray<B> +) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @since 2.10.0 + */ +export declare const chop: <A, B>( + f: (as: NonEmptyArray<A>) => [B, Array<A>] +) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +export declare const splitAt: (n: number) => <A>(as: NonEmptyArray<A>) => [NonEmptyArray<A>, Array<A>] +/** + * @since 2.10.0 + */ +export declare const chunksOf: (n: number) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<NonEmptyArray<A>> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as NEA.NonEmptyArray<number>, + * NEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<NonEmptyArray<B>>) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `NonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +export declare const alt: <A>(that: LazyArg<NonEmptyArray<A>>) => (fa: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Apply a function to an argument under a type constructor. + * + * @since 2.0.0 + */ +export declare const ap: <A>(as: NonEmptyArray<A>) => <B>(fab: NonEmptyArray<(a: A) => B>) => NonEmptyArray<B> +/** + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => NonEmptyArray<B>): (ma: NonEmptyArray<A>) => NonEmptyArray<B> + <A, B>(ma: NonEmptyArray<A>, f: (a: A, i: number) => NonEmptyArray<B>): NonEmptyArray<B> +} +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (as: NonEmptyArray<A>) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @since 2.5.0 + */ +export declare const duplicate: <A>(ma: NonEmptyArray<A>) => NonEmptyArray<NonEmptyArray<A>> +/** + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: NonEmptyArray<NonEmptyArray<A>>) => NonEmptyArray<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @category mapping + * @since 2.0.0 + */ +export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @since 2.7.0 + */ +export declare const extract: Comonad1<URI>['extract'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'NonEmptyArray' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: NonEmptyArray<A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<NonEmptyArray<A>> +/** + * Builds a `Semigroup` instance for `NonEmptyArray` + * + * @category instances + * @since 2.0.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<NonEmptyArray<A>> +/** + * @example + * import { getEq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<NonEmptyArray<A>> +/** + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<NonEmptyArray<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'NonEmptyArray', (a: A) => B>) => import('./HKT').Kind<'NonEmptyArray', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: NonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'NonEmptyArray', A>) => import('./HKT').Kind<'NonEmptyArray', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: NonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'NonEmptyArray', A>) => import('./HKT').Kind<'NonEmptyArray', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category sequencing + * @since 2.5.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => NonEmptyArray<B>) => (first: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: NonEmptyArray<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>( + fa: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'NonEmptyArray', B> +) => ( + ma: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: NonEmptyArray<B> +) => ( + fa: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.0.0 + */ +export declare const head: <A>(nea: NonEmptyArray<A>) => A +/** + * @since 2.0.0 + */ +export declare const tail: <A>(as: NonEmptyArray<A>) => Array<A> +/** + * @since 2.0.0 + */ +export declare const last: <A>(nea: NonEmptyArray<A>) => A +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.2.0 + */ +export declare const init: <A>(as: NonEmptyArray<A>) => Array<A> +/** + * @since 2.0.0 + */ +export declare const min: <A>(ord: Ord<A>) => (nea: NonEmptyArray<A>) => A +/** + * @since 2.0.0 + */ +export declare const max: <A>(ord: Ord<A>) => (nea: NonEmptyArray<A>) => A +/** + * @since 2.10.0 + */ +export declare const concatAll: <A>(S: Semigroup<A>) => (as: NonEmptyArray<A>) => A +/** + * Break an `Array` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeft: <A, B>(f: (head: A, tail: Array<A>) => B) => (as: NonEmptyArray<A>) => B +/** + * Break an `Array` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRight: <A, B>(f: (init: Array<A>, last: A) => B) => (as: NonEmptyArray<A>) => B +/** + * Apply a function to the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyHead: <A>(f: Endomorphism<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Change the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateHead: <A>(a: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Apply a function to the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyLast: <A>(f: Endomorphism<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Change the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateLast: <A>(a: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(S: Semigroup<A>) => (middle: A) => (as: NonEmptyArray<A>) => A +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => NonEmptyArray<B>) => (ma: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * This is just `sort` followed by `group`. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function groupSort<B>(O: Ord<B>): { + <A extends B>(as: NonEmptyArray<A>): NonEmptyArray<NonEmptyArray<A>> + <A extends B>(as: Array<A>): Array<NonEmptyArray<A>> +} +/** + * Use [`filter`](./Array.ts.html#filter) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function filter<A, B extends A>( + refinement: Refinement<A, B> +): (as: NonEmptyArray<A>) => Option<NonEmptyArray<B>> +export declare function filter<A>( + predicate: Predicate<A> +): <B extends A>(bs: NonEmptyArray<B>) => Option<NonEmptyArray<B>> +export declare function filter<A>(predicate: Predicate<A>): (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const filterWithIndex: <A>( + predicate: (i: number, a: A) => boolean +) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const uncons: <A>(as: NonEmptyArray<A>) => [A, Array<A>] +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const unsnoc: <A>(as: NonEmptyArray<A>) => [Array<A>, A] +/** + * Use [`prepend`](./Array.ts.html#prepend) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function cons<A>(head: A): (tail: Array<A>) => NonEmptyArray<A> +/** @deprecated */ +export declare function cons<A>(head: A, tail: Array<A>): NonEmptyArray<A> +/** + * Use [`append`](./Array.ts.html#append) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const snoc: <A>(init: Array<A>, end: A) => NonEmptyArray<A> +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const fold: <A>(S: Semigroup<A>) => (fa: NonEmptyArray<A>) => A +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray` + * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const nonEmptyArray: Monad1<URI> & + Comonad1<URI> & + TraversableWithIndex1<URI, number> & + FunctorWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + Alt1<URI> diff --git a/node_modules/fp-ts/es6/NonEmptyArray.js b/node_modules/fp-ts/es6/NonEmptyArray.js new file mode 100644 index 0000000..1d350a7 --- /dev/null +++ b/node_modules/fp-ts/es6/NonEmptyArray.js @@ -0,0 +1,1152 @@ +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import { bind as bind_, chainFirst as chainFirst_ } from './Chain'; +import { dual, identity, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import { getMonoid } from './Ord'; +import * as RNEA from './ReadonlyNonEmptyArray'; +// ------------------------------------------------------------------------------------- +// internal +// ------------------------------------------------------------------------------------- +/** + * @internal + */ +export var isNonEmpty = function (as) { return as.length > 0; }; +/** + * @internal + */ +export var isOutOfBound = function (i, as) { return i < 0 || i >= as.length; }; +/** + * @internal + */ +export var prependW = function (head) { + return function (tail) { + return __spreadArray([head], tail, true); + }; +}; +/** + * @internal + */ +export var prepend = prependW; +/** + * @internal + */ +export var appendW = function (end) { + return function (init) { + return __spreadArray(__spreadArray([], init, true), [end], false); + }; +}; +/** + * @internal + */ +export var append = appendW; +/** + * @internal + */ +export var unsafeInsertAt = function (i, a, as) { + if (isNonEmpty(as)) { + var xs = fromReadonlyNonEmptyArray(as); + xs.splice(i, 0, a); + return xs; + } + return [a]; +}; +/** + * @internal + */ +export var unsafeUpdateAt = function (i, a, as) { + var xs = fromReadonlyNonEmptyArray(as); + xs[i] = a; + return xs; +}; +/** + * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +export var uniq = function (E) { + return function (as) { + if (as.length === 1) { + return copy(as); + } + var out = [head(as)]; + var rest = tail(as); + var _loop_1 = function (a) { + if (out.every(function (o) { return !E.equals(o, a); })) { + out.push(a); + } + }; + for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) { + var a = rest_1[_i]; + _loop_1(a); + } + return out; + }; +}; +/** + * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = NEA.sortBy([byName, byAge]) + * + * const persons: NEA.NonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +export var sortBy = function (ords) { + if (isNonEmpty(ords)) { + var M = getMonoid(); + return sort(ords.reduce(M.concat, M.empty)); + } + return copy; +}; +/** + * @since 2.11.0 + */ +export var union = function (E) { + var uniqE = uniq(E); + return function (second) { return function (first) { return uniqE(pipe(first, concat(second))); }; }; +}; +/** + * Rotate a `NonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +export var rotate = function (n) { + return function (as) { + var len = as.length; + var m = Math.round(n) % len; + if (isOutOfBound(Math.abs(m), as) || m === 0) { + return copy(as); + } + if (m < 0) { + var _a = splitAt(-m)(as), f = _a[0], s = _a[1]; + return pipe(s, concat(f)); + } + else { + return rotate(m - len)(as); + } + }; +}; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.10.0 + */ +export var fromReadonlyNonEmptyArray = _.fromReadonlyNonEmptyArray; +/** + * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array + * + * @category conversions + * @since 2.0.0 + */ +export var fromArray = function (as) { return (isNonEmpty(as) ? _.some(as) : _.none); }; +/** + * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +export var makeBy = function (f) { + return function (n) { + var j = Math.max(0, Math.floor(n)); + var out = [f(0)]; + for (var i = 1; i < j; i++) { + out.push(f(i)); + } + return out; + }; +}; +/** + * Create a `NonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +export var replicate = function (a) { return makeBy(function () { return a; }); }; +/** + * Create a `NonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +export var range = function (start, end) { + return start <= end ? makeBy(function (i) { return start + i; })(end - start + 1) : [start]; +}; +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]]) + * + * @since 2.9.0 + */ +export var unprepend = function (as) { return [head(as), tail(as)]; }; +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +export var unappend = function (as) { return [init(as), last(as)]; }; +export function concatW(second) { + return function (first) { return first.concat(second); }; +} +export function concat(x, y) { + return y ? x.concat(y) : function (y) { return y.concat(x); }; +} +/** + * @since 2.0.0 + */ +export var reverse = function (as) { return __spreadArray([last(as)], as.slice(0, -1).reverse(), true); }; +export function group(E) { + return function (as) { + var len = as.length; + if (len === 0) { + return []; + } + var out = []; + var head = as[0]; + var nea = [head]; + for (var i = 1; i < len; i++) { + var a = as[i]; + if (E.equals(a, head)) { + nea.push(a); + } + else { + out.push(nea); + head = a; + nea = [head]; + } + } + out.push(nea); + return out; + }; +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.0.0 + */ +export var groupBy = function (f) { + return function (as) { + var out = {}; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + var k = f(a); + if (_.has.call(out, k)) { + out[k].push(a); + } + else { + out[k] = [a]; + } + } + return out; + }; +}; +/** + * @since 2.0.0 + */ +export var sort = function (O) { + return function (as) { + return as.slice().sort(O.compare); + }; +}; +/** + * @since 2.0.0 + */ +export var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as)); + }; +}; +/** + * @since 2.0.0 + */ +export var updateAt = function (i, a) { + return modifyAt(i, function () { return a; }); +}; +/** + * @since 2.0.0 + */ +export var modifyAt = function (i, f) { + return function (as) { + return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as)); + }; +}; +/** + * @since 2.0.0 + */ +export var copy = fromReadonlyNonEmptyArray; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = function (a) { return [a]; }; +/** + * @since 2.5.1 + */ +export var zipWith = function (as, bs, f) { + var cs = [f(as[0], bs[0])]; + var len = Math.min(as.length, bs.length); + for (var i = 1; i < len; i++) { + cs[i] = f(as[i], bs[i]); + } + return cs; +}; +export function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return zipWith(as, bs, function (a, b) { return [a, b]; }); +} +/** + * @since 2.5.1 + */ +export var unzip = function (abs) { + var fa = [abs[0][0]]; + var fb = [abs[0][1]]; + for (var i = 1; i < abs.length; i++) { + fa[i] = abs[i][0]; + fb[i] = abs[i][1]; + } + return [fa, fb]; +}; +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export var prependAll = function (middle) { + return function (as) { + var out = [middle, as[0]]; + for (var i = 1; i < as.length; i++) { + out.push(middle, as[i]); + } + return out; + }; +}; +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export var intersperse = function (middle) { + return function (as) { + var rest = tail(as); + return isNonEmpty(rest) ? pipe(rest, prependAll(middle), prepend(head(as))) : copy(as); + }; +}; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMapWithIndex = RNEA.foldMapWithIndex; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = RNEA.foldMap; +/** + * @category sequencing + * @since 2.10.0 + */ +export var chainWithIndex = function (f) { + return function (as) { + var out = fromReadonlyNonEmptyArray(f(0, head(as))); + for (var i = 1; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +/** + * @since 2.10.0 + */ +export var chop = function (f) { + return function (as) { + var _a = f(as), b = _a[0], rest = _a[1]; + var out = [b]; + var next = rest; + while (isNonEmpty(next)) { + var _b = f(next), b_1 = _b[0], rest_2 = _b[1]; + out.push(b_1); + next = rest_2; + } + return out; + }; +}; +/** + * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +export var splitAt = function (n) { + return function (as) { + var m = Math.max(1, n); + return m >= as.length ? [copy(as), []] : [pipe(as.slice(1, m), prepend(head(as))), as.slice(m)]; + }; +}; +/** + * @since 2.10.0 + */ +export var chunksOf = function (n) { return chop(splitAt(n)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/* istanbul ignore next */ +var _reduceWithIndex = function (fa, b, f) { + return pipe(fa, reduceWithIndex(b, f)); +}; +/* istanbul ignore next */ +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = foldMapWithIndex(M); + return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRightWithIndex = function (fa, b, f) { + return pipe(fa, reduceRightWithIndex(b, f)); +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); }; +}; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as NEA.NonEmptyArray<number>, + * NEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function (that) { + return function (as) { + return pipe(as, concatW(that())); + }; +}; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `NonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +export var alt = altW; +/** + * Apply a function to an argument under a type constructor. + * + * @since 2.0.0 + */ +export var ap = function (as) { + return flatMap(function (f) { return pipe(as, map(f)); }); +}; +/** + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); })); +}); +/** + * @since 2.0.0 + */ +export var extend = function (f) { + return function (as) { + var next = tail(as); + var out = [f(as)]; + while (isNonEmpty(next)) { + out.push(f(next)); + next = tail(next); + } + return out; + }; +}; +/** + * @since 2.5.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * @category sequencing + * @since 2.5.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return mapWithIndex(function (_, a) { return f(a); }); }; +/** + * @category mapping + * @since 2.0.0 + */ +export var mapWithIndex = function (f) { + return function (as) { + var out = [f(0, head(as))]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])); + } + return out; + }; +}; +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = RNEA.reduce; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceWithIndex = RNEA.reduceWithIndex; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRight = RNEA.reduceRight; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRightWithIndex = RNEA.reduceRightWithIndex; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { return traverseWithIndex(F)(function (_, a) { return a; }); }; +/** + * @category sequencing + * @since 2.6.3 + */ +export var traverseWithIndex = function (F) { + return function (f) { + return function (as) { + var out = F.map(f(0, head(as)), of); + for (var i = 1; i < as.length; i++) { + out = F.ap(F.map(out, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, as[i])); + } + return out; + }; + }; +}; +/** + * @since 2.7.0 + */ +export var extract = RNEA.head; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'NonEmptyArray'; +/** + * @category instances + * @since 2.0.0 + */ +export var getShow = RNEA.getShow; +/** + * Builds a `Semigroup` instance for `NonEmptyArray` + * + * @category instances + * @since 2.0.0 + */ +export var getSemigroup = function () { return ({ + concat: concat +}); }; +/** + * @example + * import { getEq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.0.0 + */ +export var getEq = RNEA.getEq; +/** + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E) { + var unionE = union(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FunctorWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category sequencing + * @since 2.5.0 + */ +export var chainFirst = +/*#__PURE__*/ chainFirst_(Chain); +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FoldableWithIndex = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +export var TraversableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ bind_(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +export var head = RNEA.head; +/** + * @since 2.0.0 + */ +export var tail = function (as) { return as.slice(1); }; +/** + * @since 2.0.0 + */ +export var last = RNEA.last; +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.2.0 + */ +export var init = function (as) { return as.slice(0, -1); }; +/** + * @since 2.0.0 + */ +export var min = RNEA.min; +/** + * @since 2.0.0 + */ +export var max = RNEA.max; +/** + * @since 2.10.0 + */ +export var concatAll = function (S) { + return function (as) { + return as.reduce(S.concat); + }; +}; +/** + * Break an `Array` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchLeft = function (f) { + return function (as) { + return f(head(as), tail(as)); + }; +}; +/** + * Break an `Array` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchRight = function (f) { + return function (as) { + return f(init(as), last(as)); + }; +}; +/** + * Apply a function to the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export var modifyHead = function (f) { + return function (as) { + return __spreadArray([f(head(as))], tail(as), true); + }; +}; +/** + * Change the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export var updateHead = function (a) { return modifyHead(function () { return a; }); }; +/** + * Apply a function to the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export var modifyLast = function (f) { + return function (as) { + return pipe(init(as), append(f(last(as)))); + }; +}; +/** + * Change the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export var updateLast = function (a) { return modifyLast(function () { return a; }); }; +/** + * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export var intercalate = RNEA.intercalate; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +export function groupSort(O) { + var sortO = sort(O); + var groupO = group(O); + return function (as) { return (isNonEmpty(as) ? groupO(sortO(as)) : []); }; +} +export function filter(predicate) { + return filterWithIndex(function (_, a) { return predicate(a); }); +} +/** + * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var filterWithIndex = function (predicate) { + return function (as) { + return fromArray(as.filter(function (a, i) { return predicate(i, a); })); + }; +}; +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export var uncons = unprepend; +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export var unsnoc = unappend; +export function cons(head, tail) { + return tail === undefined ? prepend(head) : pipe(tail, prepend(head)); +} +/** + * Use [`append`](./Array.ts.html#append) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var snoc = function (init, end) { return pipe(init, append(end)); }; +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export var prependToAll = prependAll; +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var fold = RNEA.concatAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray` + * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var nonEmptyArray = { + URI: URI, + of: of, + map: _map, + mapWithIndex: _mapWithIndex, + ap: _ap, + chain: flatMap, + extend: _extend, + extract: extract, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + alt: _alt +}; diff --git a/node_modules/fp-ts/es6/Option.d.ts b/node_modules/fp-ts/es6/Option.d.ts new file mode 100644 index 0000000..ccc31c2 --- /dev/null +++ b/node_modules/fp-ts/es6/Option.d.ts @@ -0,0 +1,1150 @@ +/** + * ```ts + * type Option<A> = None | Some<A> + * ``` + * + * `Option<A>` is a container for an optional value of type `A`. If the value of type `A` is present, the `Option<A>` is + * an instance of `Some<A>`, containing the present value of type `A`. If the value is absent, the `Option<A>` is an + * instance of `None`. + * + * An option could be looked at as a collection or foldable structure with either one or zero elements. + * Another way to look at `Option` is: it represents the effect of a possibly failing computation. + * + * + * @example + * import * as O from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * + * export const imperative = (as: ReadonlyArray<number>): string => { + * const head = (as: ReadonlyArray<number>): number => { + * if (as.length === 0) { + * throw new Error() + * } + * return as[0] + * } + * const inverse = (n: number): number => { + * if (n === 0) { + * throw new Error() + * } + * return 1 / n + * } + * try { + * return `Result is ${inverse(double(head(as)))}` + * } catch (e) { + * return 'no result' + * } + * } + * + * export const functional = (as: ReadonlyArray<number>): string => { + * const head = <A>(as: ReadonlyArray<A>): O.Option<A> => + * as.length === 0 ? O.none : O.some(as[0]) + * const inverse = (n: number): O.Option<number> => + * n === 0 ? O.none : O.some(1 / n) + * return pipe( + * as, + * head, + * O.map(double), + * O.flatMap(inverse), + * O.match( + * () => 'no result', // onNone handler + * (head) => `Result is ${head}` // onSome handler + * ) + * ) + * } + * + * assert.deepStrictEqual(imperative([1, 2, 3]), functional([1, 2, 3])) + * assert.deepStrictEqual(imperative([]), functional([])) + * assert.deepStrictEqual(imperative([0]), functional([0])) + * + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Extend1 } from './Extend' +import { Filterable1 } from './Filterable' +import { Foldable1 } from './Foldable' +import { FromEither1 } from './FromEither' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { Monad1 } from './Monad' +import { MonadThrow1 } from './MonadThrow' +import { Monoid } from './Monoid' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import { Zero1 } from './Zero' +/** + * @category model + * @since 2.0.0 + */ +export interface None { + readonly _tag: 'None' +} +/** + * @category model + * @since 2.0.0 + */ +export interface Some<A> { + readonly _tag: 'Some' + readonly value: A +} +/** + * @category model + * @since 2.0.0 + */ +export type Option<A> = None | Some<A> +/** + * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value. + * + * @category constructors + * @since 2.0.0 + */ +export declare const none: Option<never> +/** + * Constructs a `Some`. Represents an optional value that exists. + * + * @category constructors + * @since 2.0.0 + */ +export declare const some: <A>(a: A) => Option<A> +/** + * Returns a *smart constructor* based on the given predicate. + * + * @example + * import { none, some, fromPredicate } from 'fp-ts/Option' + * + * const getOption = fromPredicate((n: number) => n >= 0) + * + * assert.deepStrictEqual(getOption(-1), none) + * assert.deepStrictEqual(getOption(1), some(1)) + * + * @category lifting + * @since 2.0.0 + */ +export declare function fromPredicate<A, B extends A>(refinement: Refinement<A, B>): (a: A) => Option<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): <B extends A>(b: B) => Option<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): (a: A) => Option<A> +/** + * Returns the `Left` value of an `Either` if possible. + * + * @example + * import { getLeft, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * + * @category constructors + * @since 2.0.0 + */ +export declare const getLeft: <E, A>(ma: Either<E, A>) => Option<E> +/** + * Returns the `Right` value of an `Either` if possible. + * + * @example + * import { getRight, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(left('a')), none) + * + * @category constructors + * @since 2.0.0 + */ +export declare const getRight: <E, A>(ma: Either<E, A>) => Option<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Option' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Option<A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Option<A>> +/** + * @example + * import { none, some, getEq } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals(none, none), true) + * assert.strictEqual(E.equals(none, some(1)), false) + * assert.strictEqual(E.equals(some(1), none), false) + * assert.strictEqual(E.equals(some(1), some(2)), false) + * assert.strictEqual(E.equals(some(1), some(1)), true) + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Option<A>> +/** + * The `Ord` instance allows `Option` values to be compared with + * `compare`, whenever there is an `Ord` instance for + * the type the `Option` contains. + * + * `None` is considered to be less than any `Some` value. + * + * + * @example + * import { none, some, getOrd } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const O = getOrd(N.Ord) + * assert.strictEqual(O.compare(none, none), 0) + * assert.strictEqual(O.compare(none, some(1)), -1) + * assert.strictEqual(O.compare(some(1), none), 1) + * assert.strictEqual(O.compare(some(1), some(2)), -1) + * assert.strictEqual(O.compare(some(1), some(1)), 0) + * + * @category instances + * @since 2.0.0 + */ +export declare const getOrd: <A>(O: Ord<A>) => Ord<Option<A>> +/** + * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are + * concatenated using the provided `Semigroup` + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(concat(a, b)) | + * + * @example + * import { getMonoid, some, none } from 'fp-ts/Option' + * import { SemigroupSum } from 'fp-ts/number' + * + * const M = getMonoid(SemigroupSum) + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(1)), some(1)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3)) + * + * @category instances + * @since 2.0.0 + */ +export declare const getMonoid: <A>(S: Semigroup<A>) => Monoid<Option<A>> +/** + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Option<A>) => Option<B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the `Some` value of this `Option` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: Option<_>) => Option<A> + <_, A>(self: Option<_>, a: A): Option<A> +} +/** + * Maps the `Some` value of this `Option` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: Option<_>) => Option<void> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <A>(a: A) => Option<A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Option<A>) => <B>(fab: Option<(a: A) => B>) => Option<B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Option<B>): (ma: Option<A>) => Option<B> + <A, B>(ma: Option<A>, f: (a: A) => Option<B>): Option<B> +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Option<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Option<A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Option<A>) => B +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`. + * + * @param self - The first `Option` to be checked. + * @param that - The `Option` to return if `self` is `None`. + * + * @example + * import * as O from "fp-ts/Option" + * + * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1)) + * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b')) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1)) + * + * @category error handling + * @since 2.16.0 + */ +export declare const orElse: { + <B>(that: LazyArg<Option<B>>): <A>(self: Option<A>) => Option<A | B> + <A, B>(self: Option<A>, that: LazyArg<Option<B>>): Option<A | B> +} +/** + * Alias of `orElse`. + * + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category legacy + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<Option<B>>) => <A>(fa: Option<A>) => Option<A | B> +/** + * Alias of `orElse`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const alt: <A>(that: LazyArg<Option<A>>) => (fa: Option<A>) => Option<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @since 2.7.0 + */ +export declare const zero: <A>() => Option<A> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'Option', void> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (wa: Option<A>) => B) => (wa: Option<A>) => Option<B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend1<URI> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <A>(fa: Option<Option<A>>) => Option<A> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <A, B>(ma: Option<Either<A, B>>) => Separated<Option<A>, Option<B>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Option<A>) => Option<B> + <A>(predicate: Predicate<A>): <B extends A>(fb: Option<B>) => Option<B> + <A>(predicate: Predicate<A>): (fa: Option<A>) => Option<A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Option<A>) => Option<B> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Option<A>) => Separated<Option<A>, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: Option<B>) => Separated<Option<B>, Option<B>> + <A>(predicate: Predicate<A>): (fa: Option<A>) => Separated<Option<A>, Option<A>> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Option<A>) => Separated<Option<B>, Option<C>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Witherable: Witherable1<URI> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow1<URI>['throwError'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow1<URI> +/** + * Transforms an `Either` to an `Option` discarding the error. + * + * Alias of [getRight](#getright) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => Option<A> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * Returns `true` if the option is an instance of `Some`, `false` otherwise. + * + * @example + * import { some, none, isSome } from 'fp-ts/Option' + * + * assert.strictEqual(isSome(some(1)), true) + * assert.strictEqual(isSome(none), false) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isSome: <A>(fa: Option<A>) => fa is Some<A> +/** + * Returns `true` if the option is `None`, `false` otherwise. + * + * @example + * import { some, none, isNone } from 'fp-ts/Option' + * + * assert.strictEqual(isNone(some(1)), false) + * assert.strictEqual(isNone(none), true) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isNone: (fa: Option<unknown>) => fa is None +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <B, A, C>(onNone: LazyArg<B>, onSome: (a: A) => C) => (ma: Option<A>) => B | C +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <B, A, C>(onNone: LazyArg<B>, onSome: (a: A) => C) => (ma: Option<A>) => B | C +/** + * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is + * returned, otherwise the function is applied to the value inside the `Some` and the result is returned. + * + * @example + * import { some, none, match } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a some containing 1' + * ) + * + * assert.strictEqual( + * pipe( + * none, + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a none' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <A, B>(onNone: LazyArg<B>, onSome: (a: A) => B) => (ma: Option<A>) => B +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <A, B>(onNone: LazyArg<B>, onSome: (a: A) => B) => (ma: Option<A>) => B +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <B>(onNone: LazyArg<B>) => <A>(ma: Option<A>) => A | B +/** + * Extracts the value out of the structure, if it exists. Otherwise returns the given default value + * + * @example + * import { some, none, getOrElse } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <A>(onNone: LazyArg<A>) => (ma: Option<A>) => A +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Option', (a: A) => B>) => import('./HKT').Kind<'Option', B> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: Option<B> +) => <A>(first: import('./HKT').Kind<'Option', A>) => import('./HKT').Kind<'Option', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: Option<B> +) => <A>(first: import('./HKT').Kind<'Option', A>) => import('./HKT').Kind<'Option', B> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Option<Option<A>>) => Option<A> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: Option<A>, f: (a: A) => Option<_>): Option<A> + <A, _>(f: (a: A) => Option<_>): (self: Option<A>) => Option<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * O.of(value), + * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1), O.of(1)) + * assert.deepStrictEqual(compute(-42), O.none) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E, _>(f: (a: A) => Either<E, _>): (self: Option<A>) => Option<A> + <A, E, _>(self: Option<A>, f: (a: A) => Either<E, _>): Option<A> +} +/** + * @since 2.0.0 + */ +export declare const duplicate: <A>(ma: Option<A>) => Option<Option<A>> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => Option<B> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Option<A>) => Option<B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Option<A>) => Option<A> +/** + * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise + * returns the value wrapped in a `Some`. + * + * @example + * import { none, some, fromNullable } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromNullable(undefined), none) + * assert.deepStrictEqual(fromNullable(null), none) + * assert.deepStrictEqual(fromNullable(1), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromNullable: <A>(a: A) => Option<NonNullable<A>> +/** + * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a + * `Some`. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { none, some, tryCatch } from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * tryCatch(() => { + * throw new Error() + * }), + * none + * ) + * assert.deepStrictEqual(tryCatch(() => 1), some(1)) + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <A>(f: LazyArg<A>) => Option<A> +/** + * Converts a function that may throw to one returning a `Option`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B) => (...a: A) => Option<B> +/** + * Returns a *smart constructor* from a function that returns a nullable value. + * + * @example + * import { fromNullableK, none, some } from 'fp-ts/Option' + * + * const f = (s: string): number | undefined => { + * const n = parseFloat(s) + * return isNaN(n) ? undefined : n + * } + * + * const g = fromNullableK(f) + * + * assert.deepStrictEqual(g('1'), some(1)) + * assert.deepStrictEqual(g('a'), none) + * + * @category lifting + * @since 2.9.0 + */ +export declare const fromNullableK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Option<NonNullable<B>> +/** + * This is `chain` + `fromNullable`, useful when working with optional values. + * + * @example + * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * interface Employee { + * readonly company?: { + * readonly address?: { + * readonly street?: { + * readonly name?: string + * } + * } + * } + * } + * + * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee1.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * some('high street') + * ) + * + * const employee2: Employee = { company: { address: { street: {} } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee2.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * none + * ) + * + * @category sequencing + * @since 2.9.0 + */ +export declare const chainNullableK: <A, B>( + f: (a: A) => B | null | undefined +) => (ma: Option<A>) => Option<NonNullable<B>> +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `null`. + * + * @example + * import { some, none, toNullable } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toNullable + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toNullable + * ), + * null + * ) + * + * @category conversions + * @since 2.0.0 + */ +export declare const toNullable: <A>(ma: Option<A>) => A | null +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`. + * + * @example + * import { some, none, toUndefined } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toUndefined + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toUndefined + * ), + * undefined + * ) + * + * @category conversions + * @since 2.0.0 + */ +export declare const toUndefined: <A>(ma: Option<A>) => A | undefined +/** + * Returns `true` if `ma` contains `a` + * + * @example + * import { some, none, elem } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * import * as N from 'fp-ts/number' + * + * assert.strictEqual(pipe(some(1), elem(N.Eq)(1)), true) + * assert.strictEqual(pipe(some(1), elem(N.Eq)(2)), false) + * assert.strictEqual(pipe(none, elem(N.Eq)(1)), false) + * + * @since 2.0.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (ma: Option<A>) => boolean + (a: A, ma: Option<A>): boolean +} +/** + * Returns `true` if the predicate is satisfied by the wrapped value + * + * @example + * import { some, none, exists } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 0) + * ), + * true + * ) + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 1) + * ), + * false + * ) + * assert.strictEqual( + * pipe( + * none, + * exists(n => n > 0) + * ), + * false + * ) + * + * @since 2.0.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: Option<A>) => boolean +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Option<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Option', A>) => import('./HKT').Kind<'Option', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Option', A> +) => import('./HKT').Kind<'Option', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Option', B> +) => ( + ma: import('./HKT').Kind<'Option', A> +) => import('./HKT').Kind<'Option', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Option<B> +) => ( + fa: import('./HKT').Kind<'Option', A> +) => import('./HKT').Kind<'Option', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: Option<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Option<B> +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Option<B> +) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => Option<B> +) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B>(f: (a: A) => Option<B>) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A>(arr: ReadonlyArray<Option<A>>) => Option<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Option<B>) => (ma: Option<A>) => Option<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Option<B>) => (first: Option<A>) => Option<A> +/** + * Use `Refinement` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getRefinement<A, B extends A>(getOption: (a: A) => Option<B>): Refinement<A, B> +/** + * Use [`chainNullableK`](#chainnullablek) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const mapNullable: <A, B>(f: (a: A) => B | null | undefined) => (ma: Option<A>) => Option<NonNullable<B>> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option` + * (where `O` is from `import O from 'fp-ts/Option'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const option: Monad1<URI> & + Foldable1<URI> & + Alternative1<URI> & + Extend1<URI> & + Witherable1<URI> & + MonadThrow1<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <A>(S: Semigroup<A>) => Semigroup<Option<A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <A>(M: Monoid<A>) => Monoid<Option<A>> +/** + * Use + * + * ```ts + * import { first } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(first()) + * ``` + * + * instead. + * + * Monoid returning the left-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(a) | + * + * @example + * import { getFirstMonoid, some, none } from 'fp-ts/Option' + * + * const M = getFirstMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFirstMonoid: <A = never>() => Monoid<Option<A>> +/** + * Use + * + * ```ts + * import { last } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(last()) + * ``` + * + * instead. + * + * Monoid returning the right-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(b) | + * + * @example + * import { getLastMonoid, some, none } from 'fp-ts/Option' + * + * const M = getLastMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getLastMonoid: <A = never>() => Monoid<Option<A>> diff --git a/node_modules/fp-ts/es6/Option.js b/node_modules/fp-ts/es6/Option.js new file mode 100644 index 0000000..a0740b8 --- /dev/null +++ b/node_modules/fp-ts/es6/Option.js @@ -0,0 +1,1224 @@ +import { getApplicativeMonoid } from './Applicative'; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { chainEitherK as chainEitherK_, fromEitherK as fromEitherK_, tapEither as tapEither_ } from './FromEither'; +import { constNull, constUndefined, dual, flow, identity, pipe } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import { not } from './Predicate'; +import { first, last } from './Semigroup'; +import { separated } from './Separated'; +import { wiltDefault, witherDefault } from './Witherable'; +import { guard as guard_ } from './Zero'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value. + * + * @category constructors + * @since 2.0.0 + */ +export var none = _.none; +/** + * Constructs a `Some`. Represents an optional value that exists. + * + * @category constructors + * @since 2.0.0 + */ +export var some = _.some; +export function fromPredicate(predicate) { + return function (a) { return (predicate(a) ? some(a) : none); }; +} +/** + * Returns the `Left` value of an `Either` if possible. + * + * @example + * import { getLeft, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * + * @category constructors + * @since 2.0.0 + */ +export var getLeft = function (ma) { return (ma._tag === 'Right' ? none : some(ma.left)); }; +/** + * Returns the `Right` value of an `Either` if possible. + * + * @example + * import { getRight, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(left('a')), none) + * + * @category constructors + * @since 2.0.0 + */ +export var getRight = function (ma) { return (ma._tag === 'Left' ? none : some(ma.right)); }; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +var _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); }; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return pipe(fa, partition(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Option'; +/** + * @category instances + * @since 2.0.0 + */ +export var getShow = function (S) { return ({ + show: function (ma) { return (isNone(ma) ? 'none' : "some(".concat(S.show(ma.value), ")")); } +}); }; +/** + * @example + * import { none, some, getEq } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals(none, none), true) + * assert.strictEqual(E.equals(none, some(1)), false) + * assert.strictEqual(E.equals(some(1), none), false) + * assert.strictEqual(E.equals(some(1), some(2)), false) + * assert.strictEqual(E.equals(some(1), some(1)), true) + * + * @category instances + * @since 2.0.0 + */ +export var getEq = function (E) { return ({ + equals: function (x, y) { return x === y || (isNone(x) ? isNone(y) : isNone(y) ? false : E.equals(x.value, y.value)); } +}); }; +/** + * The `Ord` instance allows `Option` values to be compared with + * `compare`, whenever there is an `Ord` instance for + * the type the `Option` contains. + * + * `None` is considered to be less than any `Some` value. + * + * + * @example + * import { none, some, getOrd } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const O = getOrd(N.Ord) + * assert.strictEqual(O.compare(none, none), 0) + * assert.strictEqual(O.compare(none, some(1)), -1) + * assert.strictEqual(O.compare(some(1), none), 1) + * assert.strictEqual(O.compare(some(1), some(2)), -1) + * assert.strictEqual(O.compare(some(1), some(1)), 0) + * + * @category instances + * @since 2.0.0 + */ +export var getOrd = function (O) { return ({ + equals: getEq(O).equals, + compare: function (x, y) { return (x === y ? 0 : isSome(x) ? (isSome(y) ? O.compare(x.value, y.value) : 1) : isSome(y) ? -1 : 0); } +}); }; +/** + * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are + * concatenated using the provided `Semigroup` + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(concat(a, b)) | + * + * @example + * import { getMonoid, some, none } from 'fp-ts/Option' + * import { SemigroupSum } from 'fp-ts/number' + * + * const M = getMonoid(SemigroupSum) + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(1)), some(1)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3)) + * + * @category instances + * @since 2.0.0 + */ +export var getMonoid = function (S) { return ({ + concat: function (x, y) { return (isNone(x) ? y : isNone(y) ? x : some(S.concat(x.value, y.value))); }, + empty: none +}); }; +/** + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { + return isNone(fa) ? none : some(f(fa.value)); +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Some` value of this `Option` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Some` value of this `Option` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category constructors + * @since 2.7.0 + */ +export var of = some; +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @since 2.0.0 + */ +export var ap = function (fa) { return function (fab) { + return isNone(fab) ? none : isNone(fa) ? none : some(fab.value(fa.value)); +}; }; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isNone(ma) ? none : f(ma.value)); }); +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = function (b, f) { return function (fa) { + return isNone(fa) ? b : f(b, fa.value); +}; }; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = function (M) { return function (f) { return function (fa) { + return isNone(fa) ? M.empty : f(fa.value); +}; }; }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRight = function (b, f) { return function (fa) { + return isNone(fa) ? b : f(fa.value, b); +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`. + * + * @param self - The first `Option` to be checked. + * @param that - The `Option` to return if `self` is `None`. + * + * @example + * import * as O from "fp-ts/Option" + * + * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1)) + * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b')) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1)) + * + * @category error handling + * @since 2.16.0 + */ +export var orElse = dual(2, function (self, that) { return (isNone(self) ? that() : self); }); +/** + * Alias of `orElse`. + * + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category legacy + * @since 2.9.0 + */ +export var altW = orElse; +/** + * Alias of `orElse`. + * + * @category legacy + * @since 2.0.0 + */ +export var alt = orElse; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @since 2.7.0 + */ +export var zero = function () { return none; }; +/** + * @category instances + * @since 2.11.0 + */ +export var Zero = { + URI: URI, + zero: zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +export var guard = /*#__PURE__*/ guard_(Zero, Pointed); +/** + * @category instances + * @since 2.7.0 + */ +export var Alternative = { + URI: URI, + map: _map, + ap: _ap, + of: of, + alt: _alt, + zero: zero +}; +/** + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { + return isNone(wa) ? none : some(f(wa)); +}; }; +/** + * @category instances + * @since 2.7.0 + */ +export var Extend = { + URI: URI, + map: _map, + extend: _extend +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var compact = /*#__PURE__*/ flatMap(identity); +var defaultSeparated = /*#__PURE__*/ separated(none, none); +/** + * @category filtering + * @since 2.0.0 + */ +export var separate = function (ma) { + return isNone(ma) ? defaultSeparated : separated(getLeft(ma.value), getRight(ma.value)); +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var filter = function (predicate) { + return function (fa) { + return isNone(fa) ? none : predicate(fa.value) ? fa : none; + }; +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var filterMap = function (f) { return function (fa) { + return isNone(fa) ? none : f(fa.value); +}; }; +/** + * @category filtering + * @since 2.0.0 + */ +export var partition = function (predicate) { + return function (fa) { + return separated(_filter(fa, not(predicate)), _filter(fa, predicate)); + }; +}; +/** + * @category filtering + * @since 2.0.0 + */ +export var partitionMap = function (f) { return flow(map(f), separate); }; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + return function (f) { + return function (ta) { + return isNone(ta) ? F.of(none) : F.map(f(ta.value), some); + }; + }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (ta) { + return isNone(ta) ? F.of(none) : F.map(ta.value, some); + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable); +var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable); +/** + * @category filtering + * @since 2.6.5 + */ +export var wither = function (F) { + var _witherF = _wither(F); + return function (f) { return function (fa) { return _witherF(fa, f); }; }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wilt = function (F) { + var _wiltF = _wilt(F); + return function (f) { return function (fa) { return _wiltF(fa, f); }; }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Witherable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt +}; +/** + * @since 2.7.0 + */ +export var throwError = function () { return none; }; +/** + * @category instances + * @since 2.7.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + throwError: throwError +}; +/** + * Transforms an `Either` to an `Option` discarding the error. + * + * Alias of [getRight](#getright) + * + * @category conversions + * @since 2.0.0 + */ +export var fromEither = getRight; +/** + * @category instances + * @since 2.11.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Returns `true` if the option is an instance of `Some`, `false` otherwise. + * + * @example + * import { some, none, isSome } from 'fp-ts/Option' + * + * assert.strictEqual(isSome(some(1)), true) + * assert.strictEqual(isSome(none), false) + * + * @category refinements + * @since 2.0.0 + */ +export var isSome = _.isSome; +/** + * Returns `true` if the option is `None`, `false` otherwise. + * + * @example + * import { some, none, isNone } from 'fp-ts/Option' + * + * assert.strictEqual(isNone(some(1)), false) + * assert.strictEqual(isNone(none), true) + * + * @category refinements + * @since 2.0.0 + */ +export var isNone = function (fa) { return fa._tag === 'None'; }; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = function (onNone, onSome) { + return function (ma) { + return isNone(ma) ? onNone() : onSome(ma.value); + }; +}; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchW; +/** + * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is + * returned, otherwise the function is applied to the value inside the `Some` and the result is returned. + * + * @example + * import { some, none, match } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a some containing 1' + * ) + * + * assert.strictEqual( + * pipe( + * none, + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a none' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export var match = matchW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = match; +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export var getOrElseW = function (onNone) { + return function (ma) { + return isNone(ma) ? onNone() : ma.value; + }; +}; +/** + * Extracts the value out of the structure, if it exists. Otherwise returns the given default value + * + * @example + * import { some, none, getOrElse } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +export var getOrElse = getOrElseW; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = compact; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * O.of(value), + * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1), O.of(1)) + * assert.deepStrictEqual(compute(-42), O.none) + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +/** + * @category sequencing + * @since 2.11.0 + */ +export var chainEitherK = +/*#__PURE__*/ chainEitherK_(FromEither, Chain); +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise + * returns the value wrapped in a `Some`. + * + * @example + * import { none, some, fromNullable } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromNullable(undefined), none) + * assert.deepStrictEqual(fromNullable(null), none) + * assert.deepStrictEqual(fromNullable(1), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +export var fromNullable = function (a) { return (a == null ? none : some(a)); }; +/** + * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a + * `Some`. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { none, some, tryCatch } from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * tryCatch(() => { + * throw new Error() + * }), + * none + * ) + * assert.deepStrictEqual(tryCatch(() => 1), some(1)) + * + * @category interop + * @since 2.0.0 + */ +export var tryCatch = function (f) { + try { + return some(f()); + } + catch (e) { + return none; + } +}; +/** + * Converts a function that may throw to one returning a `Option`. + * + * @category interop + * @since 2.10.0 + */ +export var tryCatchK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return tryCatch(function () { return f.apply(void 0, a); }); + }; +}; +/** + * Returns a *smart constructor* from a function that returns a nullable value. + * + * @example + * import { fromNullableK, none, some } from 'fp-ts/Option' + * + * const f = (s: string): number | undefined => { + * const n = parseFloat(s) + * return isNaN(n) ? undefined : n + * } + * + * const g = fromNullableK(f) + * + * assert.deepStrictEqual(g('1'), some(1)) + * assert.deepStrictEqual(g('a'), none) + * + * @category lifting + * @since 2.9.0 + */ +export var fromNullableK = function (f) { return flow(f, fromNullable); }; +/** + * This is `chain` + `fromNullable`, useful when working with optional values. + * + * @example + * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * interface Employee { + * readonly company?: { + * readonly address?: { + * readonly street?: { + * readonly name?: string + * } + * } + * } + * } + * + * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee1.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * some('high street') + * ) + * + * const employee2: Employee = { company: { address: { street: {} } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee2.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * none + * ) + * + * @category sequencing + * @since 2.9.0 + */ +export var chainNullableK = function (f) { + return function (ma) { + return isNone(ma) ? none : fromNullable(f(ma.value)); + }; +}; +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `null`. + * + * @example + * import { some, none, toNullable } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toNullable + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toNullable + * ), + * null + * ) + * + * @category conversions + * @since 2.0.0 + */ +export var toNullable = /*#__PURE__*/ match(constNull, identity); +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`. + * + * @example + * import { some, none, toUndefined } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toUndefined + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toUndefined + * ), + * undefined + * ) + * + * @category conversions + * @since 2.0.0 + */ +export var toUndefined = /*#__PURE__*/ match(constUndefined, identity); +export function elem(E) { + return function (a, ma) { + if (ma === undefined) { + var elemE_1 = elem(E); + return function (ma) { return elemE_1(a, ma); }; + } + return isNone(ma) ? false : E.equals(a, ma.value); + }; +} +/** + * Returns `true` if the predicate is satisfied by the wrapped value + * + * @example + * import { some, none, exists } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 0) + * ), + * true + * ) + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 1) + * ), + * false + * ) + * assert.strictEqual( + * pipe( + * none, + * exists(n => n > 0) + * ), + * false + * ) + * + * @since 2.0.0 + */ +export var exists = function (predicate) { + return function (ma) { + return isNone(ma) ? false : predicate(ma.value); + }; +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + var o = f(0, _.head(as)); + if (isNone(o)) { + return none; + } + var out = [o.value]; + for (var i = 1; i < as.length; i++) { + var o_1 = f(i, as[i]); + if (isNone(o_1)) { + return none; + } + out.push(o_1.value); + } + return some(out); + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { + return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `Refinement` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export function getRefinement(getOption) { + return function (a) { return isSome(getOption(a)); }; +} +/** + * Use [`chainNullableK`](#chainnullablek) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var mapNullable = chainNullableK; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option` + * (where `O` is from `import O from 'fp-ts/Option'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var option = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + zero: zero, + alt: _alt, + extend: _extend, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt, + throwError: throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplySemigroup = /*#__PURE__*/ getApplySemigroup_(Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplyMonoid = /*#__PURE__*/ getApplicativeMonoid(Applicative); +/** + * Use + * + * ```ts + * import { first } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(first()) + * ``` + * + * instead. + * + * Monoid returning the left-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(a) | + * + * @example + * import { getFirstMonoid, some, none } from 'fp-ts/Option' + * + * const M = getFirstMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFirstMonoid = function () { return getMonoid(first()); }; +/** + * Use + * + * ```ts + * import { last } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(last()) + * ``` + * + * instead. + * + * Monoid returning the right-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(b) | + * + * @example + * import { getLastMonoid, some, none } from 'fp-ts/Option' + * + * const M = getLastMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getLastMonoid = function () { return getMonoid(last()); }; diff --git a/node_modules/fp-ts/es6/OptionT.d.ts b/node_modules/fp-ts/es6/OptionT.d.ts new file mode 100644 index 0000000..f2b7378 --- /dev/null +++ b/node_modules/fp-ts/es6/OptionT.d.ts @@ -0,0 +1,551 @@ +/** + * @since 2.0.0 + */ +import { + ApplicativeComposition2C1, + ApplicativeComposition11, + ApplicativeComposition21, + ApplicativeCompositionHKT1 +} from './Applicative' +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Either } from './Either' +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +import * as O from './Option' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import Option = O.Option +/** + * @since 2.10.0 + */ +export declare function some<F extends URIS4>(F: Pointed4<F>): <A, S, R, E>(a: A) => Kind4<F, S, R, E, Option<A>> +export declare function some<F extends URIS3>(F: Pointed3<F>): <A, R, E>(a: A) => Kind3<F, R, E, Option<A>> +export declare function some<F extends URIS3, E>(F: Pointed3C<F, E>): <A, R>(a: A) => Kind3<F, R, E, Option<A>> +export declare function some<F extends URIS2>(F: Pointed2<F>): <A, E>(a: A) => Kind2<F, E, Option<A>> +export declare function some<F extends URIS2, E>(F: Pointed2C<F, E>): <A>(a: A) => Kind2<F, E, Option<A>> +export declare function some<F extends URIS>(F: Pointed1<F>): <A>(a: A) => Kind<F, Option<A>> +export declare function some<F>(F: Pointed<F>): <A>(a: A) => HKT<F, Option<A>> +/** + * @since 2.10.0 + */ +export declare function zero<F extends URIS4>(F: Pointed4<F>): <S, R, E, A>() => Kind4<F, S, R, E, Option<A>> +export declare function zero<F extends URIS3>(F: Pointed3<F>): <R, E, A>() => Kind3<F, R, E, Option<A>> +export declare function zero<F extends URIS3, E>(F: Pointed3C<F, E>): <R, A>() => Kind3<F, R, E, Option<A>> +export declare function zero<F extends URIS2>(F: Pointed2<F>): <E, A>() => Kind2<F, E, Option<A>> +export declare function zero<F extends URIS2, E>(F: Pointed2C<F, E>): <A>() => Kind2<F, E, Option<A>> +export declare function zero<F extends URIS>(F: Pointed1<F>): <A>() => Kind<F, Option<A>> +export declare function zero<F>(F: Pointed<F>): <A>() => HKT<F, Option<A>> +/** + * @since 2.10.0 + */ +export declare function fromF<F extends URIS4>( + F: Functor4<F> +): <S, R, E, A>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, Option<A>> +export declare function fromF<F extends URIS3>( + F: Functor3<F> +): <R, E, A>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, Option<A>> +export declare function fromF<F extends URIS3, E>( + F: Functor3C<F, E> +): <R, A>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, Option<A>> +export declare function fromF<F extends URIS2>(F: Functor2<F>): <E, A>(ma: Kind2<F, E, A>) => Kind2<F, E, Option<A>> +export declare function fromF<F extends URIS2, E>(F: Functor2C<F, E>): <A>(ma: Kind2<F, E, A>) => Kind2<F, E, Option<A>> +export declare function fromF<F extends URIS>(F: Functor1<F>): <A>(ma: Kind<F, A>) => Kind<F, Option<A>> +export declare function fromF<F>(F: Functor<F>): <A>(ma: HKT<F, A>) => HKT<F, Option<A>> +/** + * @since 2.10.0 + */ +export declare function fromNullable<F extends URIS4>( + F: Pointed4<F> +): <A, S, R, E>(a: A) => Kind4<F, S, R, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS3>( + F: Pointed3<F> +): <A, R, E>(a: A) => Kind3<F, R, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A, R>(a: A) => Kind3<F, R, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS2>( + F: Pointed2<F> +): <A, E>(a: A) => Kind2<F, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A>(a: A) => Kind2<F, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS>(F: Pointed1<F>): <A>(a: A) => Kind<F, Option<NonNullable<A>>> +export declare function fromNullable<F>(F: Pointed<F>): <A>(a: A) => HKT<F, Option<NonNullable<A>>> +/** + * @since 2.10.0 + */ +export declare function fromNullableK<F extends URIS4>( + F: Pointed4<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <S, R, E>(...a: A) => Kind4<F, S, R, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS3>( + F: Pointed3<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R, E>(...a: A) => Kind3<F, R, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R>(...a: A) => Kind3<F, R, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS2>( + F: Pointed2<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <E>(...a: A) => Kind2<F, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind2<F, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS>( + F: Pointed1<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind<F, Option<NonNullable<B>>> +export declare function fromNullableK<F>( + F: Pointed<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => HKT<F, Option<NonNullable<B>>> +/** + * @since 2.10.0 + */ +export declare function chainNullableK<M extends URIS4>( + M: Monad4<M> +): <A, B>( + f: (a: A) => B | null | undefined +) => <S, R, E>(ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS3>( + M: Monad3<M> +): <A, B>( + f: (a: A) => B | null | undefined +) => <R, E>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS3, E>( + M: Monad3C<M, E> +): <A, B>( + f: (a: A) => B | null | undefined +) => <R>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS2>( + M: Monad2<M> +): <A, B>(f: (a: A) => B | null | undefined) => <E>(ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS>( + M: Monad1<M> +): <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind<M, Option<A>>) => Kind<M, Option<NonNullable<B>>> +export declare function chainNullableK<M>( + M: Monad<M> +): <A, B>(f: (a: A) => B | null | undefined) => (ma: HKT<M, Option<A>>) => HKT<M, Option<NonNullable<B>>> +/** + * @since 2.10.0 + */ +export declare function fromOptionK<F extends URIS4>( + F: Pointed4<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => <S, R, E>(...a: A) => Kind4<F, S, R, E, Option<B>> +export declare function fromOptionK<F extends URIS3>( + F: Pointed3<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R, E>(...a: A) => Kind3<F, R, E, Option<B>> +export declare function fromOptionK<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, Option<B>> +export declare function fromOptionK<F extends URIS2>( + F: Pointed2<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <E>(...a: A) => Kind2<F, E, Option<B>> +export declare function fromOptionK<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, Option<B>> +export declare function fromOptionK<F extends URIS>( + F: Pointed1<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind<F, Option<B>> +export declare function fromOptionK<F>( + F: Pointed<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => HKT<F, Option<B>> +/** + * @since 2.10.0 + */ +export declare function chainOptionK<M extends URIS4>( + M: Monad4<M> +): <A, B>(f: (a: A) => Option<B>) => <S, R, E>(ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<B>> +export declare function chainOptionK<M extends URIS3>( + M: Monad3<M> +): <A, B>(f: (a: A) => Option<B>) => <R, E>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chainOptionK<M extends URIS3, E>( + M: Monad3C<M, E> +): <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chainOptionK<M extends URIS2>( + M: Monad2<M> +): <A, B>(f: (a: A) => Option<B>) => <E>(ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chainOptionK<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chainOptionK<M extends URIS>( + M: Monad1<M> +): <A, B>(f: (a: A) => Option<B>) => (ma: Kind<M, Option<A>>) => Kind<M, Option<B>> +export declare function chainOptionK<M>( + M: Monad<M> +): <A, B>(f: (a: A) => Option<B>) => (ma: HKT<M, Option<A>>) => HKT<M, Option<B>> +/** + * @category lifting + * @since 2.10.0 + */ +export declare function fromPredicate<F extends URIS4>( + F: Pointed4<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(a: A) => Kind4<F, S, R, E, Option<B>> + <A>(predicate: Predicate<A>): <S, R, E, B extends A>(b: B) => Kind4<F, S, R, E, Option<B>> + <A>(predicate: Predicate<A>): <S, R, E>(a: A) => Kind4<F, S, R, E, Option<A>> +} +export declare function fromPredicate<F extends URIS3>( + F: Pointed3<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>(a: A) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R, E, B extends A>(b: B) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R, E>(a: A) => Kind3<F, R, E, Option<A>> +} +export declare function fromPredicate<F extends URIS3, E>( + F: Pointed3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>(a: A) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R, B extends A>(b: B) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R>(a: A) => Kind3<F, R, E, Option<A>> +} +export declare function fromPredicate<F extends URIS2>( + F: Pointed2<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <E>(a: A) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): <E, B extends A>(b: B) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): <E>(a: A) => Kind2<F, E, Option<A>> +} +export declare function fromPredicate<F extends URIS2, E>( + F: Pointed2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): (a: A) => Kind2<F, E, Option<A>> +} +export declare function fromPredicate<F extends URIS>( + F: Pointed1<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => Kind<F, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => Kind<F, Option<B>> + <A>(predicate: Predicate<A>): (a: A) => Kind<F, Option<A>> +} +export declare function fromPredicate<F>(F: Pointed<F>): { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => HKT<F, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => HKT<F, Option<B>> + <A>(predicate: Predicate<A>): (a: A) => HKT<F, Option<A>> +} +/** + * @since 2.10.0 + */ +export declare function fromEither<F extends URIS4>( + F: Pointed4<F> +): <A, S, R, E>(e: Either<unknown, A>) => Kind4<F, S, R, E, Option<A>> +export declare function fromEither<F extends URIS3>( + F: Pointed3<F> +): <A, R, E>(e: Either<unknown, A>) => Kind3<F, R, E, Option<A>> +export declare function fromEither<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A, R>(e: Either<unknown, A>) => Kind3<F, R, E, Option<A>> +export declare function fromEither<F extends URIS2>( + F: Pointed2<F> +): <A, E>(e: Either<unknown, A>) => Kind2<F, E, Option<A>> +export declare function fromEither<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A>(e: Either<unknown, A>) => Kind2<F, E, Option<A>> +export declare function fromEither<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A>(e: Either<unknown, A>) => Kind2<F, E, Option<A>> +export declare function fromEither<F extends URIS>(F: Pointed1<F>): <A>(e: Either<unknown, A>) => Kind<F, Option<A>> +export declare function fromEither<F>(F: Pointed<F>): <A>(e: Either<unknown, A>) => HKT<F, Option<A>> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare function match<F extends URIS4>( + F: Functor4<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <S, R, E>(ma: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, B> +export declare function match<F extends URIS3>( + F: Functor3<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <R, E>(ma: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, B> +export declare function match<F extends URIS3, E>( + F: Functor3C<F, E> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <R>(ma: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, B> +export declare function match<F extends URIS2>( + F: Functor2<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <E>(ma: Kind2<F, E, Option<A>>) => Kind2<F, E, B> +export declare function match<F extends URIS2, E>( + F: Functor2C<F, E> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Kind2<F, E, Option<A>>) => Kind2<F, E, B> +export declare function match<F extends URIS>( + F: Functor1<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Kind<F, Option<A>>) => Kind<F, B> +export declare function match<F>( + F: Functor<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: HKT<F, Option<A>>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function matchE<M extends URIS4>( + M: Chain4<M> +): <S, R, E, B, A>( + onNone: () => Kind4<M, S, R, E, B>, + onSome: (a: A) => Kind4<M, S, R, E, B> +) => (ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, B> +export declare function matchE<M extends URIS3>( + M: Chain3<M> +): <R, E, B, A>( + onNone: () => Kind3<M, R, E, B>, + onSome: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, B> +export declare function matchE<M extends URIS3, E>( + M: Chain3C<M, E> +): <R, B, A>( + onNone: () => Kind3<M, R, E, B>, + onSome: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, B> +export declare function matchE<M extends URIS2>( + M: Chain2<M> +): <E, B, A>( + onNone: () => Kind2<M, E, B>, + onSome: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, B> +export declare function matchE<M extends URIS2, E>( + M: Chain2C<M, E> +): <B, A>( + onNone: () => Kind2<M, E, B>, + onSome: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, B> +export declare function matchE<M extends URIS>( + M: Chain1<M> +): <B, A>(onNone: () => Kind<M, B>, onSome: (a: A) => Kind<M, B>) => (ma: Kind<M, Option<A>>) => Kind<M, B> +export declare function matchE<M>( + M: Chain<M> +): <B, A>(onNone: () => HKT<M, B>, onSome: (a: A) => HKT<M, B>) => (ma: HKT<M, Option<A>>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function getOrElse<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A>(onNone: LazyArg<Kind4<M, S, R, E, A>>) => (fa: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, A> +export declare function getOrElse<M extends URIS3>( + M: Monad3<M> +): <R, E, A>(onNone: LazyArg<Kind3<M, R, E, A>>) => (fa: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, A> +export declare function getOrElse<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A>(onNone: LazyArg<Kind3<M, R, E, A>>) => (fa: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, A> +export declare function getOrElse<M extends URIS2>( + M: Monad2<M> +): <E, A>(onNone: LazyArg<Kind2<M, E, A>>) => (fa: Kind2<M, E, Option<A>>) => Kind2<M, E, A> +export declare function getOrElse<M extends URIS2, E>( + M: Monad2C<M, E> +): <A>(onNone: LazyArg<Kind2<M, E, A>>) => (fa: Kind2<M, E, Option<A>>) => Kind2<M, E, A> +export declare function getOrElse<M extends URIS>( + M: Monad1<M> +): <A>(onNone: LazyArg<Kind<M, A>>) => (fa: Kind<M, Option<A>>) => Kind<M, A> +export declare function getOrElse<M>( + M: Monad<M> +): <A>(onNone: LazyArg<HKT<M, A>>) => (fa: HKT<M, Option<A>>) => HKT<M, A> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS4>( + F: Functor4<F> +): <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, Option<B>> +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, Option<B>> +export declare function map<F extends URIS3, E>( + F: Functor3C<F, E> +): <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, Option<B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, Option<B>> +export declare function map<F extends URIS2, E>( + F: Functor2C<F, E> +): <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, Option<A>>) => Kind2<F, E, Option<B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => (fa: Kind<F, Option<A>>) => Kind<F, Option<B>> +export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => (fa: HKT<F, Option<A>>) => HKT<F, Option<B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS4>( + F: Apply4<F> +): <S, R, E, A>( + fa: Kind4<F, S, R, E, Option<A>> +) => <B>(fab: Kind4<F, S, R, E, Option<(a: A) => B>>) => Kind4<F, S, R, E, Option<B>> +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, E, A>( + fa: Kind3<F, R, E, Option<A>> +) => <B>(fab: Kind3<F, R, E, Option<(a: A) => B>>) => Kind3<F, R, E, Option<B>> +export declare function ap<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, A>(fa: Kind3<F, R, E, Option<A>>) => <B>(fab: Kind3<F, R, E, Option<(a: A) => B>>) => Kind3<F, R, E, Option<B>> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <E, A>(fa: Kind2<F, E, Option<A>>) => <B>(fab: Kind2<F, E, Option<(a: A) => B>>) => Kind2<F, E, Option<B>> +export declare function ap<F extends URIS2, E>( + F: Apply2C<F, E> +): <A>(fa: Kind2<F, E, Option<A>>) => <B>(fab: Kind2<F, E, Option<(a: A) => B>>) => Kind2<F, E, Option<B>> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <A>(fa: Kind<F, Option<A>>) => <B>(fab: Kind<F, Option<(a: A) => B>>) => Kind<F, Option<B>> +export declare function ap<F>( + F: Apply<F> +): <A>(fa: HKT<F, Option<A>>) => <B>(fab: HKT<F, Option<(a: A) => B>>) => HKT<F, Option<B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS4>( + M: Monad4<M> +): <A, S, R, E, B>( + f: (a: A) => Kind4<M, S, R, E, Option<B>> +) => (ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<B>> +export declare function chain<M extends URIS3>( + M: Monad3<M> +): <A, R, E, B>(f: (a: A) => Kind3<M, R, E, Option<B>>) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chain<M extends URIS3, E>( + M: Monad3C<M, E> +): <A, R, B>(f: (a: A) => Kind3<M, R, E, Option<B>>) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chain<M extends URIS2>( + M: Monad2<M> +): <A, E, B>(f: (a: A) => Kind2<M, E, Option<B>>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chain<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(f: (a: A) => Kind2<M, E, Option<B>>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chain<M extends URIS>( + M: Monad1<M> +): <A, B>(f: (a: A) => Kind<M, Option<B>>) => (ma: Kind<M, Option<A>>) => Kind<M, Option<B>> +export declare function chain<M>( + M: Monad<M> +): <A, B>(f: (a: A) => HKT<M, Option<B>>) => (ma: HKT<M, Option<A>>) => HKT<M, Option<B>> +/** + * @since 2.10.0 + */ +export declare function alt<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A>( + second: LazyArg<Kind4<M, S, R, E, Option<A>>> +) => (first: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<A>> +export declare function alt<M extends URIS3>( + M: Monad3<M> +): <R, E, A>( + second: LazyArg<Kind3<M, R, E, Option<A>>> +) => (first: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<A>> +export declare function alt<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A>(second: LazyArg<Kind3<M, R, E, Option<A>>>) => (first: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<A>> +export declare function alt<M extends URIS2>( + M: Monad2<M> +): <E, A>(second: LazyArg<Kind2<M, E, Option<A>>>) => (first: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<A>> +export declare function alt<M extends URIS2, E>( + M: Monad2C<M, E> +): <A>(second: LazyArg<Kind2<M, E, Option<A>>>) => (first: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<A>> +export declare function alt<M extends URIS>( + M: Monad1<M> +): <A>(second: LazyArg<Kind<M, Option<A>>>) => (first: Kind<M, Option<A>>) => Kind<M, Option<A>> +export declare function alt<M>( + M: Monad<M> +): <A>(second: LazyArg<HKT<M, Option<A>>>) => (first: HKT<M, Option<A>>) => HKT<M, Option<A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionT<M, A> extends HKT<M, Option<A>> {} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionM<M> extends ApplicativeCompositionHKT1<M, O.URI> { + readonly chain: <A, B>(ma: OptionT<M, A>, f: (a: A) => OptionT<M, B>) => OptionT<M, B> + readonly alt: <A>(fa: OptionT<M, A>, that: LazyArg<OptionT<M, A>>) => OptionT<M, A> + readonly fold: <A, R>(ma: OptionT<M, A>, onNone: LazyArg<HKT<M, R>>, onSome: (a: A) => HKT<M, R>) => HKT<M, R> + readonly getOrElse: <A>(ma: OptionT<M, A>, onNone: LazyArg<HKT<M, A>>) => HKT<M, A> + readonly fromM: <A>(ma: HKT<M, A>) => OptionT<M, A> + readonly none: <A = never>() => OptionT<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type OptionT1<M extends URIS, A> = Kind<M, Option<A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionM1<M extends URIS> extends ApplicativeComposition11<M, O.URI> { + readonly chain: <A, B>(ma: OptionT1<M, A>, f: (a: A) => OptionT1<M, B>) => OptionT1<M, B> + readonly alt: <A>(fa: OptionT1<M, A>, that: LazyArg<OptionT1<M, A>>) => OptionT1<M, A> + readonly fold: <A, R>(ma: OptionT1<M, A>, onNone: LazyArg<Kind<M, R>>, onSome: (a: A) => Kind<M, R>) => Kind<M, R> + readonly getOrElse: <A>(ma: OptionT1<M, A>, onNone: LazyArg<Kind<M, A>>) => Kind<M, A> + readonly fromM: <A>(ma: Kind<M, A>) => OptionT1<M, A> + readonly none: <A = never>() => OptionT1<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type OptionT2<M extends URIS2, E, A> = Kind2<M, E, Option<A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionM2<M extends URIS2> extends ApplicativeComposition21<M, O.URI> { + readonly chain: <E, A, B>(ma: OptionT2<M, E, A>, f: (a: A) => OptionT2<M, E, B>) => OptionT2<M, E, B> + readonly alt: <E, A>(fa: OptionT2<M, E, A>, that: LazyArg<OptionT2<M, E, A>>) => OptionT2<M, E, A> + readonly fold: <E, A, R>( + ma: OptionT2<M, E, A>, + onNone: LazyArg<Kind2<M, E, R>>, + onSome: (a: A) => Kind2<M, E, R> + ) => Kind2<M, E, R> + readonly getOrElse: <E, A>(ma: OptionT2<M, E, A>, onNone: LazyArg<Kind2<M, E, A>>) => Kind2<M, E, A> + readonly fromM: <E, A>(ma: Kind2<M, E, A>) => OptionT2<M, E, A> + readonly none: <E = never, A = never>() => OptionT2<M, E, A> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface OptionM2C<M extends URIS2, E> extends ApplicativeComposition2C1<M, O.URI, E> { + readonly chain: <A, B>(ma: OptionT2<M, E, A>, f: (a: A) => OptionT2<M, E, B>) => OptionT2<M, E, B> + readonly alt: <A>(fa: OptionT2<M, E, A>, that: LazyArg<OptionT2<M, E, A>>) => OptionT2<M, E, A> + readonly fold: <A, R>( + ma: OptionT2<M, E, A>, + onNone: LazyArg<Kind2<M, E, R>>, + onSome: (a: A) => Kind2<M, E, R> + ) => Kind2<M, E, R> + readonly getOrElse: <A>(ma: OptionT2<M, E, A>, onNone: LazyArg<Kind2<M, E, A>>) => Kind2<M, E, A> + readonly fromM: <A>(ma: Kind2<M, E, A>) => OptionT2<M, E, A> + readonly none: <A = never>() => OptionT2<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getOptionM<M extends URIS2>(M: Monad2<M>): OptionM2<M> +/** @deprecated */ +export declare function getOptionM<M extends URIS2, E>(M: Monad2C<M, E>): OptionM2C<M, E> +/** @deprecated */ +export declare function getOptionM<M extends URIS>(M: Monad1<M>): OptionM1<M> +/** @deprecated */ +export declare function getOptionM<M>(M: Monad<M>): OptionM<M> diff --git a/node_modules/fp-ts/es6/OptionT.js b/node_modules/fp-ts/es6/OptionT.js new file mode 100644 index 0000000..e2c616d --- /dev/null +++ b/node_modules/fp-ts/es6/OptionT.js @@ -0,0 +1,94 @@ +import { ap as ap_ } from './Apply'; +import { constant, flow, pipe } from './function'; +import { map as map_ } from './Functor'; +import * as O from './Option'; +export function some(F) { + return flow(O.some, F.of); +} +export function zero(F) { + return constant(F.of(O.none)); +} +export function fromF(F) { + return function (ma) { return F.map(ma, O.some); }; +} +export function fromNullable(F) { + return flow(O.fromNullable, F.of); +} +export function fromNullableK(F) { + var fromNullableF = fromNullable(F); + return function (f) { return flow(f, fromNullableF); }; +} +export function chainNullableK(M) { + var chainM = chain(M); + var fromNullableKM = fromNullableK(M); + return function (f) { return chainM(fromNullableKM(f)); }; +} +export function fromOptionK(F) { + return function (f) { return flow(f, F.of); }; +} +export function chainOptionK(M) { + var chainM = chain(M); + var fromOptionKM = fromOptionK(M); + return function (f) { return chainM(fromOptionKM(f)); }; +} +export function fromPredicate(F) { + return function (predicate) { + return function (a) { + return F.of(O.fromPredicate(predicate)(a)); + }; + }; +} +export function fromEither(F) { + return flow(O.fromEither, F.of); +} +export function match(F) { + return function (onNone, onSome) { return function (ma) { return F.map(ma, O.match(onNone, onSome)); }; }; +} +export function matchE(M) { + return function (onNone, onSome) { return function (ma) { return M.chain(ma, O.match(onNone, onSome)); }; }; +} +export function getOrElse(M) { + return function (onNone) { return function (fa) { return M.chain(fa, O.match(onNone, M.of)); }; }; +} +export function map(F) { + return map_(F, O.Functor); +} +export function ap(F) { + return ap_(F, O.Apply); +} +export function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +export function flatMap(M) { + var zeroM = zero(M); + return function (ma, f) { + return M.chain(ma, O.match(function () { return zeroM(); }, f)); + }; +} +export function alt(M) { + var _some = some(M); + return function (second) { return function (first) { return M.chain(first, O.match(second, _some)); }; }; +} +/** @deprecated */ +export function getOptionM(M) { + var apM = ap(M); + var mapM = map(M); + var chainM = chain(M); + var altM = alt(M); + var foldM = matchE(M); + var getOrElseM = getOrElse(M); + var zeroM = zero(M); + return { + map: function (fa, f) { return pipe(fa, mapM(f)); }, + ap: function (fab, fa) { return pipe(fab, apM(fa)); }, + of: some(M), + chain: function (ma, f) { return pipe(ma, chainM(f)); }, + alt: function (fa, that) { return pipe(fa, altM(that)); }, + fold: function (fa, onNone, onSome) { return pipe(fa, foldM(onNone, onSome)); }, + getOrElse: function (fa, onNone) { return pipe(fa, getOrElseM(onNone)); }, + fromM: fromF(M), + none: function () { return zeroM(); } + }; +} diff --git a/node_modules/fp-ts/es6/Ord.d.ts b/node_modules/fp-ts/es6/Ord.d.ts new file mode 100644 index 0000000..47b299a --- /dev/null +++ b/node_modules/fp-ts/es6/Ord.d.ts @@ -0,0 +1,355 @@ +/** + * The `Ord` type class represents types which support comparisons with a _total order_. + * + * Instances should satisfy the laws of total orderings: + * + * 1. Reflexivity: `S.compare(a, a) <= 0` + * 2. Antisymmetry: if `S.compare(a, b) <= 0` and `S.compare(b, a) <= 0` then `a <-> b` + * 3. Transitivity: if `S.compare(a, b) <= 0` and `S.compare(b, c) <= 0` then `S.compare(a, c) <= 0` + * + * @since 2.0.0 + */ +import { Contravariant1 } from './Contravariant' +import { Eq } from './Eq' +import { Monoid } from './Monoid' +import { Ordering } from './Ordering' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Ord<A> extends Eq<A> { + readonly compare: (first: A, second: A) => Ordering +} +/** + * @category defaults + * @since 2.10.0 + */ +export declare const equalsDefault: <A>(compare: Ord<A>['compare']) => Eq<A>['equals'] +/** + * @category constructors + * @since 2.0.0 + */ +export declare const fromCompare: <A>(compare: Ord<A>['compare']) => Ord<A> +/** + * Given a tuple of `Ord`s returns an `Ord` for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Ord' + * import * as B from 'fp-ts/boolean' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * + * const O = tuple(S.Ord, N.Ord, B.Ord) + * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...ords: { [K in keyof A]: Ord<A[K]> } +) => Ord<Readonly<A>> +/** + * @since 2.10.0 + */ +export declare const reverse: <A>(O: Ord<A>) => Ord<A> +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for ordering (meaning we have an `Ord<X>`) + * + * For example, given the following `User` type, there are lots of possible choices for `X`, + * but let's say we want to sort a list of users by `lastName`. + * + * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord<string>`) and we know how to go from `User -> string`, + * using `contramap` we can do this + * + * @example + * import { pipe } from 'fp-ts/function' + * import { contramap, Ord } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly firstName: string + * readonly lastName: string + * } + * + * const ordLastName: Ord<string> = S.Ord + * + * const ordByLastName: Ord<User> = pipe( + * ordLastName, + * contramap((user) => user.lastName) + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordByLastName)([ + * { firstName: 'a', lastName: 'd' }, + * { firstName: 'c', lastName: 'b' } + * ]), + * [ + * { firstName: 'c', lastName: 'b' }, + * { firstName: 'a', lastName: 'd' } + * ] + * ) + * + * @since 2.0.0 + */ +export declare const contramap: <A, B>(f: (b: B) => A) => (fa: Ord<A>) => Ord<B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Ord' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Ord<A> + } +} +/** + * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings. + * + * For example the following snippet builds an `Ord` for a type `User` which + * sorts by `created` date descending, and **then** `lastName` + * + * @example + * import * as D from 'fp-ts/Date' + * import { pipe } from 'fp-ts/function' + * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly id: string + * readonly lastName: string + * readonly created: Date + * } + * + * const ordByLastName: Ord<User> = pipe( + * S.Ord, + * contramap((user) => user.lastName) + * ) + * + * const ordByCreated: Ord<User> = pipe( + * D.Ord, + * contramap((user) => user.created) + * ) + * + * const ordUserByCreatedDescThenLastName = getSemigroup<User>().concat( + * reverse(ordByCreated), + * ordByLastName + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordUserByCreatedDescThenLastName)([ + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) } + * ]), + * [ + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) } + * ] + * ) + * + * @category instances + * @since 2.0.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<Ord<A>> +/** + * Returns a `Monoid` such that: + * + * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2` + * - its `empty` value is an `Ord` that always considers compared elements equal + * + * @example + * import { sort } from 'fp-ts/Array' + * import { contramap, reverse, getMonoid } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as B from 'fp-ts/boolean' + * import { pipe } from 'fp-ts/function' + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface User { + * readonly id: number + * readonly name: string + * readonly age: number + * readonly rememberMe: boolean + * } + * + * const byName = pipe( + * S.Ord, + * contramap((p: User) => p.name) + * ) + * + * const byAge = pipe( + * N.Ord, + * contramap((p: User) => p.age) + * ) + * + * const byRememberMe = pipe( + * B.Ord, + * contramap((p: User) => p.rememberMe) + * ) + * + * const M = getMonoid<User>() + * + * const users: Array<User> = [ + * { id: 1, name: 'Guido', age: 47, rememberMe: false }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true } + * ] + * + * // sort by name, then by age, then by `rememberMe` + * const O1 = concatAll(M)([byName, byAge, byRememberMe]) + * assert.deepStrictEqual(sort(O1)(users), [ + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * // now `rememberMe = true` first, then by name, then by age + * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) + * assert.deepStrictEqual(sort(O2)(users), [ + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * @category instances + * @since 2.4.0 + */ +export declare const getMonoid: <A = never>() => Monoid<Ord<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Contravariant: Contravariant1<URI> +/** + * @since 2.11.0 + */ +export declare const trivial: Ord<unknown> +/** + * @since 2.11.0 + */ +export declare const equals: <A>(O: Ord<A>) => (second: A) => (first: A) => boolean +/** + * Test whether one value is _strictly less than_ another + * + * @since 2.0.0 + */ +export declare const lt: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Test whether one value is _strictly greater than_ another + * + * @since 2.0.0 + */ +export declare const gt: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Test whether one value is _non-strictly less than_ another + * + * @since 2.0.0 + */ +export declare const leq: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Test whether one value is _non-strictly greater than_ another + * + * @since 2.0.0 + */ +export declare const geq: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Take the minimum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +export declare const min: <A>(O: Ord<A>) => (first: A, second: A) => A +/** + * Take the maximum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +export declare const max: <A>(O: Ord<A>) => (first: A, second: A) => A +/** + * Clamp a value between a minimum and a maximum + * + * @since 2.0.0 + */ +export declare const clamp: <A>(O: Ord<A>) => (low: A, hi: A) => (a: A) => A +/** + * Test whether a value is between a minimum and a maximum (inclusive) + * + * @since 2.0.0 + */ +export declare const between: <A>(O: Ord<A>) => (low: A, hi: A) => (a: A) => boolean +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleOrd: <T extends ReadonlyArray<Ord<any>>>( + ...ords: T +) => Ord<{ + [K in keyof T]: T[K] extends Ord<infer A> ? A : never +}> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualOrd: <A>(O: Ord<A>) => Ord<A> +/** + * Use [`Contravariant`](#contravariant) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ord: Contravariant1<URI> +/** + * Use [`Ord`](./boolean.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordBoolean: Ord<boolean> +/** + * Use [`Ord`](./string.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordString: Ord<string> +/** + * Use [`Ord`](./number.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordNumber: Ord<number> +/** + * Use [`Ord`](./Date.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordDate: Ord<Date> diff --git a/node_modules/fp-ts/es6/Ord.js b/node_modules/fp-ts/es6/Ord.js new file mode 100644 index 0000000..2eb3ec0 --- /dev/null +++ b/node_modules/fp-ts/es6/Ord.js @@ -0,0 +1,429 @@ +import { eqStrict } from './Eq'; +import { constant, constTrue, pipe } from './function'; +// ------------------------------------------------------------------------------------- +// defaults +// ------------------------------------------------------------------------------------- +/** + * @category defaults + * @since 2.10.0 + */ +export var equalsDefault = function (compare) { + return function (first, second) { + return first === second || compare(first, second) === 0; + }; +}; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export var fromCompare = function (compare) { return ({ + equals: equalsDefault(compare), + compare: function (first, second) { return (first === second ? 0 : compare(first, second)); } +}); }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Given a tuple of `Ord`s returns an `Ord` for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Ord' + * import * as B from 'fp-ts/boolean' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * + * const O = tuple(S.Ord, N.Ord, B.Ord) + * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1) + * + * @since 2.10.0 + */ +export var tuple = function () { + var ords = []; + for (var _i = 0; _i < arguments.length; _i++) { + ords[_i] = arguments[_i]; + } + return fromCompare(function (first, second) { + var i = 0; + for (; i < ords.length - 1; i++) { + var r = ords[i].compare(first[i], second[i]); + if (r !== 0) { + return r; + } + } + return ords[i].compare(first[i], second[i]); + }); +}; +/** + * @since 2.10.0 + */ +export var reverse = function (O) { return fromCompare(function (first, second) { return O.compare(second, first); }); }; +/* istanbul ignore next */ +var contramap_ = function (fa, f) { return pipe(fa, contramap(f)); }; +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for ordering (meaning we have an `Ord<X>`) + * + * For example, given the following `User` type, there are lots of possible choices for `X`, + * but let's say we want to sort a list of users by `lastName`. + * + * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord<string>`) and we know how to go from `User -> string`, + * using `contramap` we can do this + * + * @example + * import { pipe } from 'fp-ts/function' + * import { contramap, Ord } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly firstName: string + * readonly lastName: string + * } + * + * const ordLastName: Ord<string> = S.Ord + * + * const ordByLastName: Ord<User> = pipe( + * ordLastName, + * contramap((user) => user.lastName) + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordByLastName)([ + * { firstName: 'a', lastName: 'd' }, + * { firstName: 'c', lastName: 'b' } + * ]), + * [ + * { firstName: 'c', lastName: 'b' }, + * { firstName: 'a', lastName: 'd' } + * ] + * ) + * + * @since 2.0.0 + */ +export var contramap = function (f) { return function (fa) { + return fromCompare(function (first, second) { return fa.compare(f(first), f(second)); }); +}; }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Ord'; +/** + * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings. + * + * For example the following snippet builds an `Ord` for a type `User` which + * sorts by `created` date descending, and **then** `lastName` + * + * @example + * import * as D from 'fp-ts/Date' + * import { pipe } from 'fp-ts/function' + * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly id: string + * readonly lastName: string + * readonly created: Date + * } + * + * const ordByLastName: Ord<User> = pipe( + * S.Ord, + * contramap((user) => user.lastName) + * ) + * + * const ordByCreated: Ord<User> = pipe( + * D.Ord, + * contramap((user) => user.created) + * ) + * + * const ordUserByCreatedDescThenLastName = getSemigroup<User>().concat( + * reverse(ordByCreated), + * ordByLastName + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordUserByCreatedDescThenLastName)([ + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) } + * ]), + * [ + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) } + * ] + * ) + * + * @category instances + * @since 2.0.0 + */ +export var getSemigroup = function () { return ({ + concat: function (first, second) { + return fromCompare(function (a, b) { + var ox = first.compare(a, b); + return ox !== 0 ? ox : second.compare(a, b); + }); + } +}); }; +/** + * Returns a `Monoid` such that: + * + * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2` + * - its `empty` value is an `Ord` that always considers compared elements equal + * + * @example + * import { sort } from 'fp-ts/Array' + * import { contramap, reverse, getMonoid } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as B from 'fp-ts/boolean' + * import { pipe } from 'fp-ts/function' + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface User { + * readonly id: number + * readonly name: string + * readonly age: number + * readonly rememberMe: boolean + * } + * + * const byName = pipe( + * S.Ord, + * contramap((p: User) => p.name) + * ) + * + * const byAge = pipe( + * N.Ord, + * contramap((p: User) => p.age) + * ) + * + * const byRememberMe = pipe( + * B.Ord, + * contramap((p: User) => p.rememberMe) + * ) + * + * const M = getMonoid<User>() + * + * const users: Array<User> = [ + * { id: 1, name: 'Guido', age: 47, rememberMe: false }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true } + * ] + * + * // sort by name, then by age, then by `rememberMe` + * const O1 = concatAll(M)([byName, byAge, byRememberMe]) + * assert.deepStrictEqual(sort(O1)(users), [ + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * // now `rememberMe = true` first, then by name, then by age + * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) + * assert.deepStrictEqual(sort(O2)(users), [ + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * @category instances + * @since 2.4.0 + */ +export var getMonoid = function () { return ({ + concat: getSemigroup().concat, + empty: fromCompare(function () { return 0; }) +}); }; +/** + * @category instances + * @since 2.7.0 + */ +export var Contravariant = { + URI: URI, + contramap: contramap_ +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +export var trivial = { + equals: constTrue, + compare: /*#__PURE__*/ constant(0) +}; +/** + * @since 2.11.0 + */ +export var equals = function (O) { + return function (second) { + return function (first) { + return first === second || O.compare(first, second) === 0; + }; + }; +}; +// TODO: curry in v3 +/** + * Test whether one value is _strictly less than_ another + * + * @since 2.0.0 + */ +export var lt = function (O) { + return function (first, second) { + return O.compare(first, second) === -1; + }; +}; +// TODO: curry in v3 +/** + * Test whether one value is _strictly greater than_ another + * + * @since 2.0.0 + */ +export var gt = function (O) { + return function (first, second) { + return O.compare(first, second) === 1; + }; +}; +// TODO: curry in v3 +/** + * Test whether one value is _non-strictly less than_ another + * + * @since 2.0.0 + */ +export var leq = function (O) { + return function (first, second) { + return O.compare(first, second) !== 1; + }; +}; +// TODO: curry in v3 +/** + * Test whether one value is _non-strictly greater than_ another + * + * @since 2.0.0 + */ +export var geq = function (O) { + return function (first, second) { + return O.compare(first, second) !== -1; + }; +}; +// TODO: curry in v3 +/** + * Take the minimum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +export var min = function (O) { + return function (first, second) { + return first === second || O.compare(first, second) < 1 ? first : second; + }; +}; +// TODO: curry in v3 +/** + * Take the maximum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +export var max = function (O) { + return function (first, second) { + return first === second || O.compare(first, second) > -1 ? first : second; + }; +}; +/** + * Clamp a value between a minimum and a maximum + * + * @since 2.0.0 + */ +export var clamp = function (O) { + var minO = min(O); + var maxO = max(O); + return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; }; +}; +/** + * Test whether a value is between a minimum and a maximum (inclusive) + * + * @since 2.0.0 + */ +export var between = function (O) { + var ltO = lt(O); + var gtO = gt(O); + return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getTupleOrd = tuple; +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getDualOrd = reverse; +/** + * Use [`Contravariant`](#contravariant) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var ord = Contravariant; +// default compare for primitive types +function compare(first, second) { + return first < second ? -1 : first > second ? 1 : 0; +} +var strictOrd = { + equals: eqStrict.equals, + compare: compare +}; +/** + * Use [`Ord`](./boolean.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var ordBoolean = strictOrd; +/** + * Use [`Ord`](./string.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var ordString = strictOrd; +/** + * Use [`Ord`](./number.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var ordNumber = strictOrd; +/** + * Use [`Ord`](./Date.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var ordDate = /*#__PURE__*/ pipe(ordNumber, +/*#__PURE__*/ +contramap(function (date) { return date.valueOf(); })); diff --git a/node_modules/fp-ts/es6/Ordering.d.ts b/node_modules/fp-ts/es6/Ordering.d.ts new file mode 100644 index 0000000..ed8603f --- /dev/null +++ b/node_modules/fp-ts/es6/Ordering.d.ts @@ -0,0 +1,84 @@ +/** + * @since 2.0.0 + */ +import * as E from './Eq' +import * as M from './Monoid' +import * as S from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export type Ordering = -1 | 0 | 1 +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchW: <A, B, C>( + onLessThan: () => A, + onEqual: () => B, + onGreaterThan: () => C +) => (o: Ordering) => A | B | C +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <A>(onLessThan: () => A, onEqual: () => A, onGreaterThan: () => A) => (o: Ordering) => A +/** + * @since 2.10.0 + */ +export declare const reverse: (o: Ordering) => Ordering +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<Ordering> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Semigroup: S.Semigroup<Ordering> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monoid: M.Monoid<Ordering> +/** + * @since 2.0.0 + */ +export declare const sign: (n: number) => Ordering +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const invert: (o: Ordering) => Ordering +/** + * Use [`Semigroup`](#semigroup) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupOrdering: S.Semigroup<Ordering> +/** + * Use [`Eq`](#eq) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqOrdering: E.Eq<Ordering> +/** + * Use [`Monoid`](#monoid) instead + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const monoidOrdering: M.Monoid<Ordering> diff --git a/node_modules/fp-ts/es6/Ordering.js b/node_modules/fp-ts/es6/Ordering.js new file mode 100644 index 0000000..906ffc9 --- /dev/null +++ b/node_modules/fp-ts/es6/Ordering.js @@ -0,0 +1,92 @@ +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export var matchW = function (onLessThan, onEqual, onGreaterThan) { + return function (o) { + return o === -1 ? onLessThan() : o === 0 ? onEqual() : onGreaterThan(); + }; +}; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = matchW; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +export var reverse = function (o) { return (o === -1 ? 1 : o === 1 ? -1 : 0); }; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +export var Eq = { + equals: function (x, y) { return x === y; } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Semigroup = { + concat: function (x, y) { return (x !== 0 ? x : y); } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Monoid = { + concat: Semigroup.concat, + empty: 0 +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +export var sign = function (n) { return (n <= -1 ? -1 : n >= 1 ? 1 : 0); }; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var invert = reverse; +/** + * Use [`Semigroup`](#semigroup) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupOrdering = Semigroup; +/** + * Use [`Eq`](#eq) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var eqOrdering = Eq; +/** + * Use [`Monoid`](#monoid) instead + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export var monoidOrdering = Monoid; diff --git a/node_modules/fp-ts/es6/Pointed.d.ts b/node_modules/fp-ts/es6/Pointed.d.ts new file mode 100644 index 0000000..dfce145 --- /dev/null +++ b/node_modules/fp-ts/es6/Pointed.d.ts @@ -0,0 +1,62 @@ +/** + * @since 2.10.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed<F> { + readonly URI: F + readonly of: <A>(a: A) => HKT<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed1<F extends URIS> { + readonly URI: F + readonly of: <A>(a: A) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed2<F extends URIS2> { + readonly URI: F + readonly of: <E, A>(a: A) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly of: <A>(a: A) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed3<F extends URIS3> { + readonly URI: F + readonly of: <R, E, A>(a: A) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly of: <R, A>(a: A) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed4<F extends URIS4> { + readonly URI: F + readonly of: <S, R, E, A>(a: A) => Kind4<F, S, R, E, A> +} diff --git a/node_modules/fp-ts/es6/Pointed.js b/node_modules/fp-ts/es6/Pointed.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Pointed.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Predicate.d.ts b/node_modules/fp-ts/es6/Predicate.d.ts new file mode 100644 index 0000000..32f9fd2 --- /dev/null +++ b/node_modules/fp-ts/es6/Predicate.d.ts @@ -0,0 +1,68 @@ +/** + * @since 2.11.0 + */ +import { Contravariant1 } from './Contravariant' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +/** + * @since 2.11.0 + */ +export interface Predicate<A> { + (a: A): boolean +} +/** + * @since 2.11.0 + */ +export declare const contramap: <B, A>(f: (b: B) => A) => (predicate: Predicate<A>) => Predicate<B> +/** + * @category type lambdas + * @since 2.11.0 + */ +export declare const URI = 'Predicate' +/** + * @category type lambdas + * @since 2.11.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Predicate<A> + } +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getSemigroupAny: <A = never>() => Semigroup<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getMonoidAny: <A = never>() => Monoid<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getSemigroupAll: <A = never>() => Semigroup<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getMonoidAll: <A = never>() => Monoid<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Contravariant: Contravariant1<URI> +/** + * @since 2.11.0 + */ +export declare const not: <A>(predicate: Predicate<A>) => Predicate<A> +/** + * @since 2.11.0 + */ +export declare const or: <A>(second: Predicate<A>) => (first: Predicate<A>) => Predicate<A> +/** + * @since 2.11.0 + */ +export declare const and: <A>(second: Predicate<A>) => (first: Predicate<A>) => Predicate<A> diff --git a/node_modules/fp-ts/es6/Predicate.js b/node_modules/fp-ts/es6/Predicate.js new file mode 100644 index 0000000..8be1934 --- /dev/null +++ b/node_modules/fp-ts/es6/Predicate.js @@ -0,0 +1,84 @@ +import { constFalse, constTrue, flow, pipe } from './function'; +var contramap_ = function (predicate, f) { return pipe(predicate, contramap(f)); }; +/** + * @since 2.11.0 + */ +export var contramap = function (f) { + return function (predicate) { + return flow(f, predicate); + }; +}; +/** + * @category type lambdas + * @since 2.11.0 + */ +export var URI = 'Predicate'; +/** + * @category instances + * @since 2.11.0 + */ +export var getSemigroupAny = function () { return ({ + concat: function (first, second) { return pipe(first, or(second)); } +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getMonoidAny = function () { return ({ + concat: getSemigroupAny().concat, + empty: constFalse +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getSemigroupAll = function () { return ({ + concat: function (first, second) { return pipe(first, and(second)); } +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getMonoidAll = function () { return ({ + concat: getSemigroupAll().concat, + empty: constTrue +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var Contravariant = { + URI: URI, + contramap: contramap_ +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +export var not = function (predicate) { + return function (a) { + return !predicate(a); + }; +}; +/** + * @since 2.11.0 + */ +export var or = function (second) { + return function (first) { + return function (a) { + return first(a) || second(a); + }; + }; +}; +/** + * @since 2.11.0 + */ +export var and = function (second) { + return function (first) { + return function (a) { + return first(a) && second(a); + }; + }; +}; diff --git a/node_modules/fp-ts/es6/Profunctor.d.ts b/node_modules/fp-ts/es6/Profunctor.d.ts new file mode 100644 index 0000000..1cc2633 --- /dev/null +++ b/node_modules/fp-ts/es6/Profunctor.d.ts @@ -0,0 +1,49 @@ +/** + * @since 2.0.0 + */ +import { Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor<F> { + readonly URI: F + readonly map: <E, A, B>(fa: HKT2<F, E, A>, f: (a: A) => B) => HKT<F, B> + readonly promap: <E, A, D, B>(fea: HKT2<F, E, A>, f: (d: D) => E, g: (a: A) => B) => HKT2<F, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor2<F extends URIS2> extends Functor2<F> { + readonly promap: <E, A, D, B>(fea: Kind2<F, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind2<F, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor2C<F extends URIS2, E> extends Functor2C<F, E> { + readonly promap: <A, D, B>(fea: Kind2<F, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind2<F, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor3<F extends URIS3> extends Functor3<F> { + readonly promap: <R, E, A, D, B>(fea: Kind3<F, R, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind3<F, R, D, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Profunctor3C<F extends URIS3, E> extends Functor3C<F, E> { + readonly promap: <R, A, D, B>(fea: Kind3<F, R, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind3<F, R, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor4<F extends URIS4> extends Functor4<F> { + readonly promap: <S, R, E, A, D, B>(fea: Kind4<F, S, R, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind4<F, S, R, D, B> +} diff --git a/node_modules/fp-ts/es6/Profunctor.js b/node_modules/fp-ts/es6/Profunctor.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Profunctor.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Random.d.ts b/node_modules/fp-ts/es6/Random.d.ts new file mode 100644 index 0000000..3938b92 --- /dev/null +++ b/node_modules/fp-ts/es6/Random.d.ts @@ -0,0 +1,36 @@ +import { IO } from './IO' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +/** + * Returns a random number between 0 (inclusive) and 1 (exclusive). This is a direct wrapper around JavaScript's + * `Math.random()`. + * + * @since 2.0.0 + */ +export declare const random: IO<number> +/** + * Takes a range specified by `low` (the first argument) and `high` (the second), and returns a random integer uniformly + * distributed in the closed interval `[low, high]`. It is unspecified what happens if `low > high`, or if either of + * `low` or `high` is not an integer. + * + * @since 2.0.0 + */ +export declare function randomInt(low: number, high: number): IO<number> +/** + * Returns a random number between a minimum value (inclusive) and a maximum value (exclusive). It is unspecified what + * happens if `maximum < minimum`. + * + * @since 2.0.0 + */ +export declare function randomRange(min: number, max: number): IO<number> +/** + * Returns a random boolean value with an equal chance of being `true` or `false` + * + * @since 2.0.0 + */ +export declare const randomBool: IO<boolean> +/** + * Returns a random element of a `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export declare const randomElem: <A>(as: ReadonlyNonEmptyArray<A>) => IO<A> diff --git a/node_modules/fp-ts/es6/Random.js b/node_modules/fp-ts/es6/Random.js new file mode 100644 index 0000000..2547233 --- /dev/null +++ b/node_modules/fp-ts/es6/Random.js @@ -0,0 +1,45 @@ +/** + * @since 2.0.0 + */ +import { pipe } from './function'; +import { map } from './IO'; +/** + * Returns a random number between 0 (inclusive) and 1 (exclusive). This is a direct wrapper around JavaScript's + * `Math.random()`. + * + * @since 2.0.0 + */ +export var random = function () { return Math.random(); }; +/** + * Takes a range specified by `low` (the first argument) and `high` (the second), and returns a random integer uniformly + * distributed in the closed interval `[low, high]`. It is unspecified what happens if `low > high`, or if either of + * `low` or `high` is not an integer. + * + * @since 2.0.0 + */ +export function randomInt(low, high) { + return pipe(random, map(function (n) { return Math.floor((high - low + 1) * n + low); })); +} +/** + * Returns a random number between a minimum value (inclusive) and a maximum value (exclusive). It is unspecified what + * happens if `maximum < minimum`. + * + * @since 2.0.0 + */ +export function randomRange(min, max) { + return pipe(random, map(function (n) { return (max - min) * n + min; })); +} +/** + * Returns a random boolean value with an equal chance of being `true` or `false` + * + * @since 2.0.0 + */ +export var randomBool = /*#__PURE__*/ pipe(random, map(function (n) { return n < 0.5; })); +/** + * Returns a random element of a `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export var randomElem = function (as) { + return pipe(randomInt(0, as.length - 1), map(function (i) { return as[i]; })); +}; diff --git a/node_modules/fp-ts/es6/Reader.d.ts b/node_modules/fp-ts/es6/Reader.d.ts new file mode 100644 index 0000000..580e4f7 --- /dev/null +++ b/node_modules/fp-ts/es6/Reader.d.ts @@ -0,0 +1,492 @@ +/** + * The `Reader` monad (also called the Environment monad). Represents a computation, which can read values from a shared environment, + * pass values from function to function, and execute sub-computations in a modified environment. + * Using `Reader` monad for such computations is often clearer and easier than using the `State` monad. + * + * In this example the `Reader` monad provides access to variable bindings. `Bindings` are a map of `number` variables. + * The variable count contains number of variables in the bindings. You can see how to run a `Reader` monad and retrieve + * data from it, how to access the `Reader` data with `ask` and `asks`. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as R from 'fp-ts/Reader' + * import * as RR from 'fp-ts/ReadonlyRecord' + * + * interface Bindings extends RR.ReadonlyRecord<string, number> {} + * + * // The Reader monad, which implements this complicated check. + * const isCountCorrect: R.Reader<Bindings, boolean> = pipe( + * R.Do, + * R.bind('count', () => R.asks(lookupVar('count'))), + * R.bind('bindings', () => R.ask()), + * R.map(({ count, bindings }) => count === RR.size(bindings)) + * ) + * + * // The selector function to use with 'asks'. + * // Returns value of the variable with specified name. + * const lookupVar = (name: string) => (bindings: Bindings): number => + * pipe( + * bindings, + * RR.lookup(name), + * O.getOrElse(() => 0) + * ) + * + * const sampleBindings: Bindings = { count: 3, a: 1, b: 2 } + * + * assert.deepStrictEqual(isCountCorrect(sampleBindings), true) + * + * @since 2.0.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import { Category2 } from './Category' +import * as chainable from './Chain' +import { Choice2 } from './Choice' +import { Functor2 } from './Functor' +import { Monad2 } from './Monad' +import { Monoid } from './Monoid' +import { Pointed2 } from './Pointed' +import { Profunctor2 } from './Profunctor' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +import { Strong2 } from './Strong' +/** + * @category model + * @since 2.0.0 + */ +export interface Reader<R, A> { + (r: R): A +} +/** + * Reads the current context + * + * @category constructors + * @since 2.0.0 + */ +export declare const ask: <R>() => Reader<R, R> +/** + * Projects a value from the global context in a Reader + * + * @category constructors + * @since 2.0.0 + */ +export declare const asks: <R, A>(f: (r: R) => A) => Reader<R, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as R from 'fp-ts/Reader' + * import * as string from 'fp-ts/string' + * + * const calculateContentLen: R.Reader<string, number> = pipe( + * R.Do, + * R.bind('content', () => R.ask<string>()), + * R.map(({ content }) => string.size(content)) + * ) + * + * // Calls calculateContentLen after adding a prefix to the Reader content. + * const calculateModifiedContentLen: R.Reader<string, number> = pipe( + * calculateContentLen, + * R.local((s) => 'Prefix ' + s) + * ) + * + * const s = '12345' + * + * assert.deepStrictEqual( + * "Modified 's' length: " + calculateModifiedContentLen(s) + '\n' + "Original 's' length: " + calculateContentLen(s), + * "Modified 's' length: 12\nOriginal 's' length: 5" + * ) + * + * @since 2.0.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <A>(ma: Reader<R1, A>) => Reader<R2, A> +/** + * Less strict version of [`asksReader`](#asksreader). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderW: <R1, R2, A>(f: (r1: R1) => Reader<R2, A>) => Reader<R1 & R2, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReader: <R, A>(f: (r: R) => Reader<R, A>) => Reader<R, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, A>) => Reader<R, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, A>(fa: Reader<R2, A>) => <R1, B>(fab: Reader<R1, (a: A) => B>) => Reader<R1 & R2, B> +/** + * @since 2.0.0 + */ +export declare const ap: <R, A>(fa: Reader<R, A>) => <B>(fab: Reader<R, (a: A) => B>) => Reader<R, B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <R = unknown, A = never>(a: A) => Reader<R, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1>(ma: Reader<R1, A>) => Reader<R1 & R2, B> + <R1, A, R2, B>(ma: Reader<R1, A>, f: (a: A) => Reader<R2, B>): Reader<R1 & R2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, R2, A>(mma: Reader<R1, Reader<R2, A>>) => Reader<R1 & R2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <R, A>(mma: Reader<R, Reader<R, A>>) => Reader<R, A> +/** + * @since 2.0.0 + */ +export declare const compose: <A, B>(ab: Reader<A, B>) => <C>(bc: Reader<B, C>) => Reader<A, C> +/** + * @since 2.0.0 + */ +export declare const promap: <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fea: Reader<E, A>) => Reader<D, B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const id: Category2<URI>['id'] +/** + * @since 2.10.0 + */ +export declare const first: Strong2<URI>['first'] +/** + * @since 2.10.0 + */ +export declare const second: Strong2<URI>['second'] +/** + * @since 2.10.0 + */ +export declare const left: Choice2<URI>['left'] +/** + * @since 2.10.0 + */ +export declare const right: Choice2<URI>['right'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Reader' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Reader<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Reader', E, (a: A) => B>) => import('./HKT').Kind2<'Reader', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: Reader<E, B> +) => <A>(first: import('./HKT').Kind2<'Reader', E, A>) => import('./HKT').Kind2<'Reader', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <R2, B>(second: Reader<R2, B>) => <R1, A>(first: Reader<R1, A>) => Reader<R1 & R2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: Reader<E, B> +) => <A>(first: import('./HKT').Kind2<'Reader', E, A>) => import('./HKT').Kind2<'Reader', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <R2, B>(second: Reader<R2, B>) => <R1, A>(first: Reader<R1, A>) => Reader<R1 & R2, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, A, R2, _>(self: Reader<R1, A>, f: (a: A) => Reader<R2, _>): Reader<R1 & R2, A> + <A, R2, _>(f: (a: A) => Reader<R2, _>): <R1>(self: Reader<R1, A>) => Reader<R2 & R1, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Profunctor: Profunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Category: Category2<URI> +/** + * @category instances + * @since 2.8.3 + */ +export declare const Strong: Strong2<URI> +/** + * @category instances + * @since 2.8.3 + */ +export declare const Choice: Choice2<URI> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>(fa: import('./HKT').Kind2<'Reader', E, A>) => import('./HKT').Kind2<'Reader', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'Reader', E, A> +) => import('./HKT').Kind2<'Reader', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'Reader', E, B> +) => ( + ma: import('./HKT').Kind2<'Reader', E, A> +) => import('./HKT').Kind2<'Reader', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Reader<R2, B> +) => <R1>(fa: Reader<R1, A>) => Reader< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Reader<unknown, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: Reader<E, B> +) => ( + fa: import('./HKT').Kind2<'Reader', E, A> +) => import('./HKT').Kind2<'Reader', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, B>( + name: Exclude<N, keyof A>, + fb: Reader<R2, B> +) => <R1>(fa: Reader<R1, A>) => Reader< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: Reader<unknown, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => Reader<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => Reader<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => Reader<R, B> +) => (as: ReadonlyArray<A>) => Reader<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, A, B>( + f: (index: number, a: A) => Reader<R, B> +) => (as: ReadonlyArray<A>) => Reader<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, A, B>( + f: (a: A) => Reader<R, B> +) => (as: ReadonlyArray<A>) => Reader<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, A>(arr: ReadonlyArray<Reader<R, A>>) => Reader<R, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <R2, A, B>(f: (a: A) => Reader<R2, B>) => <R1>(ma: Reader<R1, A>) => Reader<R1 & R2, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Reader<R, A>) => Reader<R, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, R, B>(f: (a: A) => Reader<R, B>) => (first: Reader<R, A>) => Reader<R, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstW: <R2, A, B>( + f: (a: A) => Reader<R2, B> +) => <R1>(ma: Reader<R1, A>) => Reader<R1 & R2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.reader` + * (where `R` is from `import R from 'fp-ts/Reader'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const reader: Monad2<URI> & Profunctor2<URI> & Category2<URI> & Strong2<URI> & Choice2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <R, A>(S: Semigroup<A>) => Semigroup<Reader<R, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMonoid: <R, A>(M: Monoid<A>) => Monoid<Reader<R, A>> diff --git a/node_modules/fp-ts/es6/Reader.js b/node_modules/fp-ts/es6/Reader.js new file mode 100644 index 0000000..c46d7d7 --- /dev/null +++ b/node_modules/fp-ts/es6/Reader.js @@ -0,0 +1,535 @@ +/** + * The `Reader` monad (also called the Environment monad). Represents a computation, which can read values from a shared environment, + * pass values from function to function, and execute sub-computations in a modified environment. + * Using `Reader` monad for such computations is often clearer and easier than using the `State` monad. + * + * In this example the `Reader` monad provides access to variable bindings. `Bindings` are a map of `number` variables. + * The variable count contains number of variables in the bindings. You can see how to run a `Reader` monad and retrieve + * data from it, how to access the `Reader` data with `ask` and `asks`. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as R from 'fp-ts/Reader' + * import * as RR from 'fp-ts/ReadonlyRecord' + * + * interface Bindings extends RR.ReadonlyRecord<string, number> {} + * + * // The Reader monad, which implements this complicated check. + * const isCountCorrect: R.Reader<Bindings, boolean> = pipe( + * R.Do, + * R.bind('count', () => R.asks(lookupVar('count'))), + * R.bind('bindings', () => R.ask()), + * R.map(({ count, bindings }) => count === RR.size(bindings)) + * ) + * + * // The selector function to use with 'asks'. + * // Returns value of the variable with specified name. + * const lookupVar = (name: string) => (bindings: Bindings): number => + * pipe( + * bindings, + * RR.lookup(name), + * O.getOrElse(() => 0) + * ) + * + * const sampleBindings: Bindings = { count: 3, a: 1, b: 2 } + * + * assert.deepStrictEqual(isCountCorrect(sampleBindings), true) + * + * @since 2.0.0 + */ +import { getApplicativeMonoid } from './Applicative'; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup } from './Apply'; +import * as chainable from './Chain'; +import * as E from './Either'; +import { constant, dual, flow, identity, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Reads the current context + * + * @category constructors + * @since 2.0.0 + */ +export var ask = function () { return identity; }; +/** + * Projects a value from the global context in a Reader + * + * @category constructors + * @since 2.0.0 + */ +export var asks = identity; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as R from 'fp-ts/Reader' + * import * as string from 'fp-ts/string' + * + * const calculateContentLen: R.Reader<string, number> = pipe( + * R.Do, + * R.bind('content', () => R.ask<string>()), + * R.map(({ content }) => string.size(content)) + * ) + * + * // Calls calculateContentLen after adding a prefix to the Reader content. + * const calculateModifiedContentLen: R.Reader<string, number> = pipe( + * calculateContentLen, + * R.local((s) => 'Prefix ' + s) + * ) + * + * const s = '12345' + * + * assert.deepStrictEqual( + * "Modified 's' length: " + calculateModifiedContentLen(s) + '\n' + "Original 's' length: " + calculateContentLen(s), + * "Modified 's' length: 12\nOriginal 's' length: 5" + * ) + * + * @since 2.0.0 + */ +export var local = function (f) { return function (ma) { return function (r2) { + return ma(f(r2)); +}; }; }; +/** + * Less strict version of [`asksReader`](#asksreader). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderW = function (f) { + return function (r) { + return f(r)(r); + }; +}; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReader = asksReaderW; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _compose = function (bc, ab) { return pipe(bc, compose(ab)); }; +var _promap = function (fea, f, g) { return pipe(fea, promap(f, g)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return function (r) { return f(fa(r)); }; }; }; +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +export var apW = function (fa) { return function (fab) { return function (r) { + return fab(r)(fa(r)); +}; }; }; +/** + * @since 2.0.0 + */ +export var ap = apW; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = constant; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return function (r) { + return f(ma(r))(r); + }; +}); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = +/*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * @since 2.0.0 + */ +export var compose = function (ab) { return function (bc) { return flow(ab, bc); }; }; +/** + * @since 2.0.0 + */ +export var promap = function (f, g) { return function (fea) { return function (a) { + return g(fea(f(a))); +}; }; }; +/** + * @category constructors + * @since 2.0.0 + */ +export var id = function () { return identity; }; +/** + * @since 2.10.0 + */ +export var first = function (pab) { + return function (_a) { + var a = _a[0], c = _a[1]; + return [pab(a), c]; + }; +}; +/** + * @since 2.10.0 + */ +export var second = function (pbc) { + return function (_a) { + var a = _a[0], b = _a[1]; + return [a, pbc(b)]; + }; +}; +/** + * @since 2.10.0 + */ +export var left = function (pab) { return E.fold(function (a) { return _.left(pab(a)); }, E.right); }; +/** + * @since 2.10.0 + */ +export var right = function (pbc) { return E.fold(E.left, function (b) { return _.right(pbc(b)); }); }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Reader'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * @category instances + * @since 2.7.0 + */ +export var Profunctor = { + URI: URI, + map: _map, + promap: _promap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Category = { + URI: URI, + compose: _compose, + id: id +}; +/** + * @category instances + * @since 2.8.3 + */ +export var Strong = { + URI: URI, + map: _map, + promap: _promap, + first: first, + second: second +}; +/** + * @category instances + * @since 2.8.3 + */ +export var Choice = { + URI: URI, + map: _map, + promap: _promap, + left: left, + right: right +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function (r) { + var out = [f(0, _.head(as))(r)]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])(r)); + } + return out; + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstW = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.reader` + * (where `R` is from `import R from 'fp-ts/Reader'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var reader = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + promap: _promap, + compose: _compose, + id: id, + first: first, + second: second, + left: left, + right: right +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = /*#__PURE__*/ getApplySemigroup(Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getMonoid = /*#__PURE__*/ getApplicativeMonoid(Applicative); diff --git a/node_modules/fp-ts/es6/ReaderEither.d.ts b/node_modules/fp-ts/es6/ReaderEither.d.ts new file mode 100644 index 0000000..fef3fe9 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderEither.d.ts @@ -0,0 +1,1057 @@ +/** + * @since 2.0.0 + */ +import { Alt3, Alt3C } from './Alt' +import { Applicative3, Applicative3C } from './Applicative' +import { Apply3 } from './Apply' +import { Bifunctor3 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable3C } from './Compactable' +import * as E from './Either' +import { Filterable3C } from './Filterable' +import { FromEither3 } from './FromEither' +import { FromReader3 } from './FromReader' +import { LazyArg } from './function' +import { Functor3 } from './Functor' +import { Monad3, Monad3C } from './Monad' +import { MonadThrow3, MonadThrow3C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed3 } from './Pointed' +import { Predicate } from './Predicate' +import * as R from './Reader' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import Reader = R.Reader +import Either = E.Either +/** + * @category model + * @since 2.0.0 + */ +export interface ReaderEither<R, E, A> extends Reader<R, Either<E, A>> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <R, E = never, A = never>(e: E) => ReaderEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <R, E = never, A = never>(a: A) => ReaderEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightReader: <R, E = never, A = never>(ma: Reader<R, A>) => ReaderEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftReader: <R, E = never, A = never>(me: Reader<R, E>) => ReaderEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A, R = unknown>(fa: Either<E, A>) => ReaderEither<R, E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromReader: <R, A, E = never>(fa: Reader<R, A>) => ReaderEither<R, E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B +) => <R>(ma: ReaderEither<R, E, A>) => Reader<R, B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => <R>(ma: Reader<R, Either<E, A>>) => Reader<R, B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Reader`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <R, E, A, B>( + onLeft: (e: E) => Reader<R, B>, + onRight: (a: A) => Reader<R, B> +) => (ma: ReaderEither<R, E, A>) => Reader<R, B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <R, E, A, B>( + onLeft: (e: E) => Reader<R, B>, + onRight: (a: A) => Reader<R, B> +) => (ma: ReaderEither<R, E, A>) => Reader<R, B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => Reader<R2, B>, + onRight: (a: A) => Reader<R3, C> +) => <R1>(ma: ReaderEither<R1, E, A>) => Reader<R1 & R2 & R3, B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => Reader<R2, B>, + onRight: (a: A) => Reader<R3, C> +) => <R1>(ma: ReaderEither<R1, E, A>) => Reader<R1 & R2 & R3, B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, R, A>(onLeft: (e: E) => Reader<R, A>) => (ma: ReaderEither<R, E, A>) => Reader<R, A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <R2, E, B>( + onLeft: (e: E) => Reader<R2, B> +) => <R1, A>(ma: ReaderEither<R1, E, A>) => Reader<R1 & R2, A | B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <R, E, A>(fa: ReaderEither<R, E, A>) => Reader<R, E | A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <E, A>(ma: ReaderEither<R1, E, A>) => ReaderEither<R2, E, A> +/** + * Less strict version of [`asksReaderEither`](#asksreadereither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderEitherW: <R1, R2, E, A>( + f: (r1: R1) => ReaderEither<R2, E, A> +) => ReaderEither<R1 & R2, E, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderEither: <R, E, A>(f: (r: R) => ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, R, E2, A>( + onLeft: (e: E1) => ReaderEither<R, E2, A> +) => (ma: ReaderEither<R, E1, A>) => ReaderEither<R, E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, R1, E2, B>( + onLeft: (e: E1) => ReaderEither<R1, E2, B> +) => <R2, A>(ma: ReaderEither<R2, E1, A>) => ReaderEither<R1 & R2, E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, R2, E2, _>(onLeft: (e: E1) => ReaderEither<R2, E2, _>): <R1, A>( + self: ReaderEither<R1, E1, A> + ) => ReaderEither<R1 & R2, E1 | E2, A> + <R1, E1, A, R2, E2, _>(self: ReaderEither<R1, E1, A>, onLeft: (e: E1) => ReaderEither<R2, E2, _>): ReaderEither< + R1 & R2, + E1 | E2, + A + > +} +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, R, E2>( + onLeft: (e: E1) => Reader<R, E2> +) => <A>(fa: ReaderEither<R, E1, A>) => ReaderEither<R, E2, A> +/** + * @category error handling + * @since 2.16.6 + */ +export declare const orLeftW: <E1, R2, E2>( + onLeft: (e: E1) => Reader<R2, E2> +) => <R1, A>(fa: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <R, E, A>(ma: ReaderEither<R, E, A>) => ReaderEither<R, A, E> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R, E>(fa: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Returns a `ReaderEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.right(1), f, g)({}), Either.right(2)) + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.left('err'), f, g)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): <R>(self: ReaderEither<R, E, A>) => ReaderEither<R, G, B> + <R, E, A, G, B>(self: ReaderEither<R, E, A>, f: (e: E) => G, g: (a: A) => B): ReaderEither<R, G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(fa: ReaderEither<R, E, A>) => ReaderEither<R, G, B> +/** + * Returns a `ReaderEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.right(1), f)({}), Either.right(1)) + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.left('err'), f)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <R, E, G>(f: (e: E) => G): <A>(self: ReaderEither<R, E, A>) => ReaderEither<R, G, A> + <R, E, A, G>(self: ReaderEither<R, E, A>, f: (e: E) => G): ReaderEither<R, G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <R, A>(fa: ReaderEither<R, E, A>) => ReaderEither<R, G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <R, E, A>( + fa: ReaderEither<R, E, A> +) => <B>(fab: ReaderEither<R, E, (a: A) => B>) => ReaderEither<R, E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, E2, A>( + fa: ReaderEither<R2, E2, A> +) => <R1, E1, B>(fab: ReaderEither<R1, E1, (a: A) => B>) => ReaderEither<R1 & R2, E1 | E2, B> +/** + * @category constructors + * @since 2.8.5 + */ +export declare const of: <R = unknown, E = never, A = never>(a: A) => ReaderEither<R, E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, E2, B>(f: (a: A) => ReaderEither<R2, E2, B>): <R1, E1>( + ma: ReaderEither<R1, E1, A> + ) => ReaderEither<R1 & R2, E1 | E2, B> + <R1, E1, A, R2, E2, B>(ma: ReaderEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, B>): ReaderEither< + R1 & R2, + E1 | E2, + B + > +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, R2, E1, E2, A>( + mma: ReaderEither<R1, E1, ReaderEither<R2, E2, A>> +) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <R, E, A>(mma: ReaderEither<R, E, ReaderEither<R, E, A>>) => ReaderEither<R, E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <R, E, A>( + that: () => ReaderEither<R, E, A> +) => (fa: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <R2, E2, B>( + that: () => ReaderEither<R2, E2, B> +) => <R1, E1, A>(fa: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E2, A | B> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow3<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'ReaderEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind3<R, E, A> { + readonly [URI]: ReaderEither<R, E, A> + } +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable3C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable3C<URI, E> +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeReaderValidation<E>(S: Semigroup<E>): Applicative3C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltReaderValidation<E>(S: Semigroup<E>): Alt3C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor3<URI> +/** + * Maps the `Right` value of this `ReaderEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, E, _>(self: ReaderEither<R, E, _>) => ReaderEither<R, E, A> + <R, E, _, A>(self: ReaderEither<R, E, _>, a: A): ReaderEither<R, E, A> +} +/** + * Maps the `Right` value of this `ReaderEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, E, _>(self: ReaderEither<R, E, _>) => ReaderEither<R, E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <R, E, B>( + fab: import('./HKT').Kind3<'ReaderEither', R, E, (a: A) => B> +) => import('./HKT').Kind3<'ReaderEither', R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply3<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <R, E, B>( + second: ReaderEither<R, E, B> +) => <A>(first: import('./HKT').Kind3<'ReaderEither', R, E, A>) => import('./HKT').Kind3<'ReaderEither', R, E, A> +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <R2, E2, B>( + second: ReaderEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <R, E, B>( + second: ReaderEither<R, E, B> +) => <A>(first: import('./HKT').Kind3<'ReaderEither', R, E, A>) => import('./HKT').Kind3<'ReaderEither', R, E, B> +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <R2, E2, B>( + second: ReaderEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain3<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither3<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader3<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, E1, A, R2, E2, _>(self: ReaderEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, _>): ReaderEither< + R1 & R2, + E1 | E2, + A + > + <A, R2, E2, _>(f: (a: A) => ReaderEither<R2, E2, _>): <R1, E1>( + self: ReaderEither<R1, E1, A> + ) => ReaderEither<R1 & R2, E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RE from 'fp-ts/ReaderEither' + * + * const checkString = (value: string) => pipe( + * RE.ask<number>(), + * RE.tapEither( + * (minLength) => value.length > minLength + * ? E.right('ok') + * : E.left('error') + * ) + * ) + * + * assert.deepStrictEqual(checkString('')(1), E.left('error')) + * assert.deepStrictEqual(checkString('fp-ts')(2), E.right(2)) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <R1, E1>(self: ReaderEither<R1, E1, A>) => ReaderEither<R1, E1 | E2, A> + <R1, E1, A, E2, _>(self: ReaderEither<R1, E1, A>, f: (a: A) => Either<E2, _>): ReaderEither<R1, E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <R2, A, E, _>(f: (a: A) => Reader<R2, _>): <R1>(self: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, A> + <R1, R2, E, A, _>(self: ReaderEither<R1, E, A>, f: (a: A) => Reader<R2, _>): ReaderEither<R1 & R2, E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor3<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt3<URI> +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +export declare const ask: <R, E = never>() => ReaderEither<R, E, R> +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +export declare const asks: <R, A, E = never>(f: (r: R) => A) => ReaderEither<R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => Reader<R, B> +) => <E = never>(...a: A) => ReaderEither<R, E, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <E>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => Reader<R1, B> +) => <R2, E>(ma: ReaderEither<R2, E, A>) => ReaderEither<R1 & R2, E, A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow3<URI> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A, R = unknown>(fa: Option<A>) => ReaderEither<R, E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R = unknown>(...a: A) => ReaderEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <R, E1>(ma: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => <R>(...a: A) => ReaderEither<R, E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => <R>(...a: A) => ReaderEither<R, E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <R, E1>( + self: ReaderEither<R, E1, A> + ) => ReaderEither<R, E2 | E1, NonNullable<B>> + <R, E1, A, B, E2>( + self: ReaderEither<R, E1, A>, + f: (a: A) => B | null | undefined, + onNullable: (a: A) => E2 + ): ReaderEither<R, E1 | E2, NonNullable<B>> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <R, E1>( + self: ReaderEither<R, E1, A> + ) => ReaderEither<R, E2 | E1, B> + <R, E1, A, B, E2>(self: ReaderEither<R, E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): ReaderEither< + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <R, E1>(self: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderEither<R, E1, A>, f: (a: A) => E.Either<E2, B>): ReaderEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1, E>(self: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderEither<R1, E, A>, f: (a: A) => Reader<R2, B>): ReaderEither<R1 & R2, E, B> +} +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, A> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <E>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R2, B>( + f: (a: A) => Reader<R2, B> +) => <R1, E>(ma: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, B> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R = unknown>(a: A) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown, B extends A = A>(b: B) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown>(a: A) => ReaderEither<R, E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: ReaderEither<R, E, A> + ) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>( + mb: ReaderEither<R, E, B> + ) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderEither<R, E1, A> + ) => ReaderEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1, B extends A>( + mb: ReaderEither<R, E1, B> + ) => ReaderEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderEither<R, E1, A> + ) => ReaderEither<R, E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => <R = unknown>(...a: A) => ReaderEither<R, E, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReaderEither<unknown, never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <R, E, A>( + fa: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R, E>( + fa: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind3<'ReaderEither', R, E, B> +) => ( + ma: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderEither<R1, E1, A> +) => ReaderEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderEither<R, E, B> +) => ( + fa: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, E2, B>( + name: Exclude<N, keyof A>, + fb: ReaderEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderEither<R1, E1, A> +) => ReaderEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: ReaderEither<unknown, never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderEither<R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, E, A, B>( + f: (index: number, a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, E, A>( + arr: ReadonlyArray<ReaderEither<R, E, A>> +) => ReaderEither<R, E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, R, B>( + onLeft: (e: E) => ReaderEither<R, E, B> +) => <A>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, R2, E2, B>( + onLeft: (e: E1) => ReaderEither<R2, E2, B> +) => <R1, A>(ma: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RE.Functor` instead of `RE.readerEither` + * (where `R` is from `import R from 'fp-ts/ReaderEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const readerEither: Monad3<URI> & Bifunctor3<URI> & Alt3<URI> & MonadThrow3<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderEither<R, E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <R, E, A>(M: Monoid<A>) => Monoid<ReaderEither<R, E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderEither<R, E, A>> +/** + * Use [`getApplicativeReaderValidation`](#getapplicativereadervalidation) and [`getAltReaderValidation`](#getaltreadervalidation) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare function getReaderValidation<E>( + SE: Semigroup<E> +): Monad3C<URI, E> & Bifunctor3<URI> & Alt3C<URI, E> & MonadThrow3C<URI, E> diff --git a/node_modules/fp-ts/es6/ReaderEither.js b/node_modules/fp-ts/es6/ReaderEither.js new file mode 100644 index 0000000..cd4c407 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderEither.js @@ -0,0 +1,956 @@ +import { getApplicativeMonoid } from './Applicative'; +import { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { compact as compact_, separate as separate_ } from './Compactable'; +import * as E from './Either'; +import * as ET from './EitherT'; +import { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable'; +import { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_, tapEither as tapEither_ } from './FromEither'; +import { ask as ask_, asks as asks_, fromReaderK as fromReaderK_, tapReader as tapReader_ } from './FromReader'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as R from './Reader'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export var left = /*#__PURE__*/ ET.left(R.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var right = /*#__PURE__*/ ET.right(R.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightReader = +/*#__PURE__*/ ET.rightF(R.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +export var leftReader = /*#__PURE__*/ ET.leftF(R.Functor); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +export var fromEither = R.of; +/** + * @category conversions + * @since 2.11.0 + */ +export var fromReader = rightReader; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = /*#__PURE__*/ ET.match(R.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Reader`). + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchE = /*#__PURE__*/ ET.matchE(R.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchEW = matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +export var getOrElse = +/*#__PURE__*/ ET.getOrElse(R.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export var getOrElseW = getOrElse; +/** + * @category conversions + * @since 2.10.0 + */ +export var toUnion = /*#__PURE__*/ ET.toUnion(R.Functor); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +export var local = R.local; +/** + * Less strict version of [`asksReaderEither`](#asksreadereither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderEitherW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderEither = asksReaderEitherW; +/** + * @category error handling + * @since 2.0.0 + */ +export var orElse = /*#__PURE__*/ ET.orElse(R.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var orElseW = orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export var tapError = /*#__PURE__*/ dual(2, ET.tapError(R.Monad)); +/** + * @category error handling + * @since 2.11.0 + */ +export var orLeft = /*#__PURE__*/ ET.orLeft(R.Monad); +/** + * @category error handling + * @since 2.16.6 + */ +export var orLeftW = orLeft; +/** + * @since 2.0.0 + */ +export var swap = /*#__PURE__*/ ET.swap(R.Functor); +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = +/*#__PURE__*/ ET.map(R.Functor); +/** + * Returns a `ReaderEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.right(1), f, g)({}), Either.right(2)) + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.left('err'), f, g)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export var mapBoth = /*#__PURE__*/ dual(3, ET.mapBoth(R.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export var bimap = mapBoth; +/** + * Returns a `ReaderEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.right(1), f)({}), Either.right(1)) + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.left('err'), f)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export var mapError = /*#__PURE__*/ dual(2, ET.mapError(R.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export var mapLeft = mapError; +/** + * @since 2.0.0 + */ +export var ap = /*#__PURE__*/ ET.ap(R.Apply); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export var apW = ap; +/** + * @category constructors + * @since 2.8.5 + */ +export var of = right; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, ET.flatMap(R.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = /*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export var alt = +/*#__PURE__*/ ET.alt(R.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = alt; +/** + * @since 2.7.0 + */ +export var throwError = left; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'ReaderEither'; +/** + * @category filtering + * @since 2.10.0 + */ +export var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: URI, + _E: undefined, + compact: compact_(R.Functor, C), + separate: separate_(R.Functor, C, E.Functor) + }; +}; +/** + * @category filtering + * @since 2.10.0 + */ +export function getFilterable(M) { + var F = E.getFilterable(M); + var C = getCompactable(M); + var filter = filter_(R.Functor, F); + var filterMap = filterMap_(R.Functor, F); + var partition = partition_(R.Functor, F); + var partitionMap = partitionMap_(R.Functor, F); + return { + URI: URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return pipe(fa, filter(predicate)); }, + filterMap: function (fa, f) { return pipe(fa, filterMap(f)); }, + partition: function (fa, predicate) { return pipe(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return pipe(fa, partitionMap(f)); } + }; +} +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getApplicativeReaderValidation(S) { + var ap = ap_(R.Apply, E.getApplicativeValidation(S)); + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return pipe(fab, ap(fa)); }, + of: of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getAltReaderValidation(S) { + var alt = ET.altValidation(R.Monad, S); + return { + URI: URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return pipe(fa, alt(that)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Right` value of this `ReaderEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Right` value of this `ReaderEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromReader = { + URI: URI, + fromReader: fromReader +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RE from 'fp-ts/ReaderEither' + * + * const checkString = (value: string) => pipe( + * RE.ask<number>(), + * RE.tapEither( + * (minLength) => value.length > minLength + * ? E.right('ok') + * : E.left('error') + * ) + * ) + * + * assert.deepStrictEqual(checkString('')(1), E.left('error')) + * assert.deepStrictEqual(checkString('fp-ts')(2), E.right(2)) + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReader = /*#__PURE__*/ dual(2, tapReader_(FromReader, Chain)); +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +export var ask = /*#__PURE__*/ ask_(FromReader); +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +export var asks = /*#__PURE__*/ asks_(FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromReaderK = /*#__PURE__*/ fromReaderK_(FromReader); +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderK = tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderKW = tapReader; +/** + * @category instances + * @since 2.7.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + throwError: throwError +}; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var fromOptionK = /*#__PURE__*/ fromOptionK_(FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainOptionK = +/*#__PURE__*/ chainOptionK_(FromEither, Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export var chainOptionKW = chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: FromEither.fromEither +}; +/** @internal */ +var _FromReader = { + fromReader: FromReader.fromReader +}; +/** + * @category lifting + * @since 2.15.0 + */ +export var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +export var liftOption = /*#__PURE__*/ _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapEither = /*#__PURE__*/ _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReader = /*#__PURE__*/ _.flatMapReader(_FromReader, _FlatMap); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainEitherK = flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export var chainEitherKW = flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherKW = tapEither; +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderK = flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderKW = flatMapReader; +/** + * @category lifting + * @since 2.0.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +export var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export var filterOrElseW = filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(E.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = /*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export var chainFirstW = tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirst = tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirstW = tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RE.Functor` instead of `RE.readerEither` + * (where `R` is from `import R from 'fp-ts/ReaderEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var readerEither = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + alt: _alt, + throwError: left +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplySemigroup = +/*#__PURE__*/ getApplySemigroup_(Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplyMonoid = +/*#__PURE__*/ getApplicativeMonoid(Applicative); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = function (S) { + return getApplySemigroup_(R.Apply)(E.getSemigroup(S)); +}; +/** + * Use [`getApplicativeReaderValidation`](#getapplicativereadervalidation) and [`getAltReaderValidation`](#getaltreadervalidation) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export function getReaderValidation(SE) { + var applicativeReaderValidation = getApplicativeReaderValidation(SE); + var altReaderValidation = getAltReaderValidation(SE); + return { + URI: URI, + _E: undefined, + map: _map, + ap: applicativeReaderValidation.ap, + of: of, + chain: flatMap, + bimap: mapBoth, + mapLeft: mapError, + alt: altReaderValidation.alt, + throwError: throwError + }; +} diff --git a/node_modules/fp-ts/es6/ReaderIO.d.ts b/node_modules/fp-ts/es6/ReaderIO.d.ts new file mode 100644 index 0000000..48f2a74 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderIO.d.ts @@ -0,0 +1,499 @@ +/** + * @since 2.13.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import * as chainable from './Chain' +import { FromIO2 } from './FromIO' +import { FromReader2 } from './FromReader' +import { Functor2 } from './Functor' +import * as I from './IO' +import { IO } from './IO' +import { Monad2 } from './Monad' +import { MonadIO2 } from './MonadIO' +import { Pointed2 } from './Pointed' +import * as R from './Reader' +import { Reader } from './Reader' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +/** + * @category model + * @since 2.13.0 + */ +export interface ReaderIO<R, A> { + (r: R): I.IO<A> +} +/** + * @category conversions + * @since 2.13.0 + */ +export declare const fromReader: <R, A>(fa: Reader<R, A>) => ReaderIO<R, A> +/** + * @category conversions + * @since 2.13.0 + */ +export declare const fromIO: <A, R = unknown>(fa: IO<A>) => ReaderIO<R, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.13.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <A>(ma: ReaderIO<R1, A>) => ReaderIO<R2, A> +/** + * Less strict version of [`asksReaderIO`](#asksreaderio). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.13.0 + */ +export declare const asksReaderIOW: <R1, R2, A>(f: (r1: R1) => ReaderIO<R2, A>) => ReaderIO<R1 & R2, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.13.0 + */ +export declare const asksReaderIO: <R, A>(f: (r: R) => ReaderIO<R, A>) => ReaderIO<R, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.13.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R>(fa: ReaderIO<R, A>) => ReaderIO<R, B> +/** + * @since 2.13.0 + */ +export declare const ap: <R, A>(fa: ReaderIO<R, A>) => <B>(fab: ReaderIO<R, (a: A) => B>) => ReaderIO<R, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.13.0 + */ +export declare const apW: <R2, A>( + fa: ReaderIO<R2, A> +) => <R1, B>(fab: ReaderIO<R1, (a: A) => B>) => ReaderIO<R1 & R2, B> +/** + * @category constructors + * @since 2.13.0 + */ +export declare const of: <R = unknown, A = never>(a: A) => ReaderIO<R, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, B>(f: (a: A) => ReaderIO<R2, B>): <R1>(ma: ReaderIO<R1, A>) => ReaderIO<R1 & R2, B> + <R1, A, R2, B>(ma: ReaderIO<R1, A>, f: (a: A) => ReaderIO<R2, B>): ReaderIO<R1 & R2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.13.0 + */ +export declare const flattenW: <R1, R2, A>(mma: ReaderIO<R1, ReaderIO<R2, A>>) => ReaderIO<R1 & R2, A> +/** + * @category sequencing + * @since 2.13.0 + */ +export declare const flatten: <R, A>(mma: ReaderIO<R, ReaderIO<R, A>>) => ReaderIO<R, A> +/** + * @category type lambdas + * @since 2.13.0 + */ +export declare const URI = 'ReaderIO' +/** + * @category type lambdas + * @since 2.13.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: ReaderIO<E, A> + } +} +/** + * @category instances + * @since 2.13.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, _>(self: ReaderIO<R, _>) => ReaderIO<R, A> + <R, _, A>(self: ReaderIO<R, _>, a: A): ReaderIO<R, A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, _>(self: ReaderIO<R, _>) => ReaderIO<R, void> +/** + * @category mapping + * @since 2.13.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'ReaderIO', E, (a: A) => B>) => import('./HKT').Kind2<'ReaderIO', E, B> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Apply: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.13.0 + */ +export declare const apFirst: <E, B>( + second: ReaderIO<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderIO', E, A>) => import('./HKT').Kind2<'ReaderIO', E, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.13.0 + */ +export declare const apSecond: <E, B>( + second: ReaderIO<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderIO', E, A>) => import('./HKT').Kind2<'ReaderIO', E, B> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const FromReader: FromReader2<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <R>(self: ReaderIO<R, A>) => ReaderIO<R, B> + <R, A, B>(self: ReaderIO<R, A>, f: (a: A) => IO<B>): ReaderIO<R, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R1 & R2, B> + <R1, A, R2, B>(self: ReaderIO<R1, A>, f: (a: A) => Reader<R2, B>): ReaderIO<R1 & R2, B> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, A, R2, _>(self: ReaderIO<R1, A>, f: (a: A) => ReaderIO<R2, _>): ReaderIO<R1 & R2, A> + <A, R2, _>(f: (a: A) => ReaderIO<R2, _>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R2 & R1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RIO from 'fp-ts/ReaderIO' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RIO.ask<string>(), + * RIO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <R>(self: ReaderIO<R, A>) => ReaderIO<R, A> + <R, A, _>(self: ReaderIO<R, A>, f: (a: A) => IO<_>): ReaderIO<R, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <R2, A, _>(f: (a: A) => Reader<R2, _>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R1 & R2, A> + <R1, A, R2, _>(self: ReaderIO<R1, A>, f: (a: A) => Reader<R2, _>): ReaderIO<R1 & R2, A> +} +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => I.IO<B> +) => <R = unknown>(...a: A) => ReaderIO<R, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: ReaderIO<E, A>) => ReaderIO<E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: ReaderIO<E, A>) => ReaderIO<E, A> +/** + * Reads the current context. + * + * @category constructors + * @since 2.13.0 + */ +export declare const ask: <R>() => import('./HKT').Kind2<'ReaderIO', R, R> +/** + * Projects a value from the global context in a `ReaderIO`. + * + * @category constructors + * @since 2.13.0 + */ +export declare const asks: <R, A>(f: (r: R) => A) => import('./HKT').Kind2<'ReaderIO', R, A> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => R.Reader<R, B> +) => (...a: A) => ReaderIO<R, B> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderIO<R2, A>) => ReaderIO<R1 & R2, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderIO<R2, A>) => ReaderIO<R1 & R2, A> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const Do: ReaderIO<unknown, {}> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'ReaderIO', E, A> +) => import('./HKT').Kind2<'ReaderIO', E, { readonly [K in N]: A }> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'ReaderIO', E, B> +) => ( + ma: import('./HKT').Kind2<'ReaderIO', E, A> +) => import('./HKT').Kind2<'ReaderIO', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +export declare const bindW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderIO<R2, B> +) => <R1>(fa: ReaderIO<R1, A>) => ReaderIO< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderIO<E, B> +) => ( + fa: import('./HKT').Kind2<'ReaderIO', E, A> +) => import('./HKT').Kind2<'ReaderIO', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +export declare const apSW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + fb: ReaderIO<R2, B> +) => <R1>(fa: ReaderIO<R1, A>) => ReaderIO< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.13.0 + */ +export declare const ApT: ReaderIO<unknown, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderIO<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderIO<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderIO<R, B> +) => (as: ReadonlyArray<A>) => ReaderIO<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderIO<R, B> +) => (as: ReadonlyArray<A>) => ReaderIO<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseArray: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => (as: ReadonlyArray<A>) => ReaderIO<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const sequenceArray: <R, A>(arr: ReadonlyArray<ReaderIO<R, A>>) => ReaderIO<R, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chain: <A, R, B>(f: (a: A) => ReaderIO<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderIO<R1, A>) => ReaderIO<R1 & R2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirst: <A, R, B>(f: (a: A) => ReaderIO<R, B>) => (first: ReaderIO<R, A>) => ReaderIO<R, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderIO<R1, A>) => ReaderIO<R1 & R2, A> diff --git a/node_modules/fp-ts/es6/ReaderIO.js b/node_modules/fp-ts/es6/ReaderIO.js new file mode 100644 index 0000000..fdef01d --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderIO.js @@ -0,0 +1,472 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import * as chainable from './Chain'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { ask as ask_, asks as asks_, fromReaderK as fromReaderK_, tapReader as tapReader_ } from './FromReader'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_ } from './Functor'; +import * as _ from './internal'; +import * as I from './IO'; +import * as R from './Reader'; +import * as RT from './ReaderT'; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.13.0 + */ +export var fromReader = /*#__PURE__*/ RT.fromReader(I.Pointed); +/** + * @category conversions + * @since 2.13.0 + */ +export var fromIO = R.of; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.13.0 + */ +export var local = R.local; +/** + * Less strict version of [`asksReaderIO`](#asksreaderio). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.13.0 + */ +export var asksReaderIOW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.13.0 + */ +export var asksReaderIO = asksReaderIOW; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.13.0 + */ +export var map = /*#__PURE__*/ RT.map(I.Functor); +/** + * @since 2.13.0 + */ +export var ap = +/*#__PURE__*/ RT.ap(I.Apply); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.13.0 + */ +export var apW = ap; +/** + * @category constructors + * @since 2.13.0 + */ +export var of = /*#__PURE__*/ RT.of(I.Pointed); +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, RT.flatMap(I.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.13.0 + */ +export var flattenW = +/*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.13.0 + */ +export var flatten = flattenW; +/** + * @category type lambdas + * @since 2.13.0 + */ +export var URI = 'ReaderIO'; +/** + * @category instances + * @since 2.13.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.13.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.13.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.13.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.13.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.13.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.13.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.13.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.13.0 + */ +export var Monad = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.13.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.13.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.13.0 + */ +export var FromReader = { + URI: URI, + fromReader: fromReader +}; +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: FromIO.fromIO +}; +/** @internal */ +var _FromReader = { + fromReader: fromReader +}; +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReader = /*#__PURE__*/ _.flatMapReader(_FromReader, _FlatMap); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RIO from 'fp-ts/ReaderIO' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RIO.ask<string>(), + * RIO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReader = /*#__PURE__*/ dual(2, tapReader_(FromReader, Chain)); +/** + * @category lifting + * @since 2.13.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstIOK = tapIO; +/** + * Reads the current context. + * + * @category constructors + * @since 2.13.0 + */ +export var ask = /*#__PURE__*/ ask_(FromReader); +/** + * Projects a value from the global context in a `ReaderIO`. + * + * @category constructors + * @since 2.13.0 + */ +export var asks = /*#__PURE__*/ asks_(FromReader); +/** + * @category lifting + * @since 2.13.0 + */ +export var fromReaderK = /*#__PURE__*/ fromReaderK_(FromReader); +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainReaderK = flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +export var chainReaderKW = flatMapReader; +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstReaderK = tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstReaderKW = tapReader; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.13.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.13.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +/** + * @category do notation + * @since 2.13.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.13.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +export var apSW = apS; +/** + * @since 2.13.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(I.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstW = tap; diff --git a/node_modules/fp-ts/es6/ReaderT.d.ts b/node_modules/fp-ts/es6/ReaderT.d.ts new file mode 100644 index 0000000..ff0e058 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderT.d.ts @@ -0,0 +1,298 @@ +/** + * The reader monad transformer, which adds a read-only environment to the given monad. + * + * The `of` function ignores the environment, while `chain` passes the inherited environment to both subcomputations. + * + * @since 2.0.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3 } from './Monad' +import { + NaturalTransformation, + NaturalTransformation11, + NaturalTransformation12, + NaturalTransformation22, + NaturalTransformation23R, + NaturalTransformation24S +} from './NaturalTransformation' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +import { Reader } from './Reader' +/** + * @since 2.10.0 + */ +export declare function of<F extends URIS4>( + F: Pointed4<F> +): <A, R, S, FR, FE>(a: A) => Reader<R, Kind4<F, S, FR, FE, A>> +export declare function of<F extends URIS3>(F: Pointed3<F>): <A, R, FR, FE>(a: A) => Reader<R, Kind3<F, FR, FE, A>> +export declare function of<F extends URIS3, FE>(F: Pointed3C<F, FE>): <A, R, FR>(a: A) => Reader<R, Kind3<F, FR, FE, A>> +export declare function of<F extends URIS2>(F: Pointed2<F>): <A, R, FE>(a: A) => Reader<R, Kind2<F, FE, A>> +export declare function of<F extends URIS2, FE>(F: Pointed2C<F, FE>): <A, R>(a: A) => Reader<R, Kind2<F, FE, A>> +export declare function of<F extends URIS>(F: Pointed1<F>): <A, R>(a: A) => Reader<R, Kind<F, A>> +export declare function of<F>(F: Pointed<F>): <A, R>(a: A) => Reader<R, HKT<F, A>> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS4>( + F: Functor4<F> +): <A, B>(f: (a: A) => B) => <R, S, FR, FE>(fa: Reader<R, Kind4<F, S, FR, FE, A>>) => Reader<R, Kind4<F, S, FR, FE, B>> +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, FR, FE>(fa: Reader<R, Kind3<F, FR, FE, A>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function map<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <A, B>(f: (a: A) => B) => <R, FR>(fa: Reader<R, Kind3<F, FR, FE, A>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <R, FE>(fa: Reader<R, Kind2<F, FE, A>>) => Reader<R, Kind2<F, FE, B>> +export declare function map<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, Kind2<F, FE, A>>) => Reader<R, Kind2<F, FE, B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, Kind<F, A>>) => Reader<R, Kind<F, B>> +export declare function map<F>( + F: Functor<F> +): <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, HKT<F, A>>) => Reader<R, HKT<F, B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS4>( + F: Apply4<F> +): <R, S, FR, FE, A>( + fa: Reader<R, Kind4<F, S, FR, FE, A>> +) => <B>(fab: Reader<R, Kind4<F, S, FR, FE, (a: A) => B>>) => Reader<R, Kind4<F, S, FR, FE, B>> +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, FR, FE, A>( + fa: Reader<R, Kind3<F, FR, FE, A>> +) => <B>(fab: Reader<R, Kind3<F, FR, FE, (a: A) => B>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function ap<F extends URIS3, FE>( + F: Apply3C<F, FE> +): <R, FR, A>( + fa: Reader<R, Kind3<F, FR, FE, A>> +) => <B>(fab: Reader<R, Kind3<F, FR, FE, (a: A) => B>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <R, FE, A>( + fa: Reader<R, Kind2<F, FE, A>> +) => <B>(fab: Reader<R, Kind2<F, FE, (a: A) => B>>) => Reader<R, Kind2<F, FE, B>> +export declare function ap<F extends URIS2, FE>( + F: Apply2C<F, FE> +): <R, A>( + fa: Reader<R, Kind2<F, FE, A>> +) => <B>(fab: Reader<R, Kind2<F, FE, (a: A) => B>>) => Reader<R, Kind2<F, FE, B>> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <R, A>(fa: Reader<R, Kind<F, A>>) => <B>(fab: Reader<R, Kind<F, (a: A) => B>>) => Reader<R, Kind<F, B>> +export declare function ap<F>( + F: Apply<F> +): <R, A>(fa: Reader<R, HKT<F, A>>) => <B>(fab: Reader<R, HKT<F, (a: A) => B>>) => Reader<R, HKT<F, B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS4>( + M: Chain4<M> +): <A, R, S, FR, FE, B>( + f: (a: A) => Reader<R, Kind4<M, S, FR, FE, B>> +) => (ma: Reader<R, Kind4<M, S, FR, FE, A>>) => Reader<R, Kind4<M, S, FR, FE, B>> +export declare function chain<M extends URIS3>( + M: Chain3<M> +): <A, R, FR, FE, B>( + f: (a: A) => Reader<R, Kind3<M, FR, FE, B>> +) => (ma: Reader<R, Kind3<M, FR, FE, A>>) => Reader<R, Kind3<M, FR, FE, B>> +export declare function chain<M extends URIS3, FE>( + M: Chain3C<M, FE> +): <A, R, FR, B>( + f: (a: A) => Reader<R, Kind3<M, FR, FE, B>> +) => (ma: Reader<R, Kind3<M, FR, FE, A>>) => Reader<R, Kind3<M, FR, FE, B>> +export declare function chain<M extends URIS2>( + M: Chain2<M> +): <A, R, FE, B>( + f: (a: A) => Reader<R, Kind2<M, FE, B>> +) => (ma: Reader<R, Kind2<M, FE, A>>) => Reader<R, Kind2<M, FE, B>> +export declare function chain<M extends URIS2, FE>( + M: Chain2C<M, FE> +): <A, R, B>(f: (a: A) => Reader<R, Kind2<M, FE, B>>) => (ma: Reader<R, Kind2<M, FE, A>>) => Reader<R, Kind2<M, FE, B>> +export declare function chain<M extends URIS>( + M: Chain1<M> +): <A, R, B>(f: (a: A) => Reader<R, Kind<M, B>>) => (ma: Reader<R, Kind<M, A>>) => Reader<R, Kind<M, B>> +export declare function chain<M>( + M: Chain<M> +): <A, R, B>(f: (a: A) => Reader<R, HKT<M, B>>) => (ma: Reader<R, HKT<M, A>>) => Reader<R, HKT<M, B>> +/** + * @since 2.10.0 + */ +export declare function fromReader<F extends URIS4>( + F: Pointed4<F> +): <R, A, S, FR, FE>(ma: Reader<R, A>) => Reader<R, Kind4<F, S, FR, FE, A>> +export declare function fromReader<F extends URIS3>( + F: Pointed3<F> +): <R, A, FR, FE>(ma: Reader<R, A>) => Reader<R, Kind3<F, FR, FE, A>> +export declare function fromReader<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <R, A, FR>(ma: Reader<R, A>) => Reader<R, Kind3<F, FR, FE, A>> +export declare function fromReader<F extends URIS2>( + F: Pointed2<F> +): <R, A, FE>(ma: Reader<R, A>) => Reader<R, Kind2<F, FE, A>> +export declare function fromReader<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <R, A>(ma: Reader<R, A>) => Reader<R, Kind2<F, FE, A>> +export declare function fromReader<F extends URIS>(F: Pointed1<F>): <R, A>(ma: Reader<R, A>) => Reader<R, Kind<F, A>> +export declare function fromReader<F>(F: Pointed<F>): <R, A>(ma: Reader<R, A>) => Reader<R, HKT<F, A>> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function fromNaturalTransformation<F extends URIS2, G extends URIS4>( + nt: NaturalTransformation24S<F, G> +): <R, S, A, E>(f: (r: R) => Kind2<F, S, A>) => Reader<R, Kind4<G, S, R, E, A>> +export declare function fromNaturalTransformation<F extends URIS2, G extends URIS3>( + nt: NaturalTransformation23R<F, G> +): <R, A, E>(f: (r: R) => Kind2<F, R, A>) => Reader<R, Kind3<G, R, E, A>> +export declare function fromNaturalTransformation<F extends URIS2, G extends URIS2>( + nt: NaturalTransformation22<F, G> +): <R, E, A>(f: (r: R) => Kind2<F, E, A>) => Reader<R, Kind2<G, E, A>> +export declare function fromNaturalTransformation<F extends URIS, G extends URIS2>( + nt: NaturalTransformation12<F, G> +): <R, A, E>(f: (r: R) => Kind<F, A>) => Reader<R, Kind2<G, E, A>> +export declare function fromNaturalTransformation<F extends URIS, G extends URIS>( + nt: NaturalTransformation11<F, G> +): <R, A>(f: (r: R) => Kind<F, A>) => Reader<R, Kind<G, A>> +export declare function fromNaturalTransformation<F, G>( + nt: NaturalTransformation<F, G> +): <R, A>(f: (r: R) => HKT<F, A>) => Reader<R, HKT<G, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT<M, R, A> { + (r: R): HKT<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM<M> { + readonly map: <R, A, B>(ma: ReaderT<M, R, A>, f: (a: A) => B) => ReaderT<M, R, B> + readonly of: <R, A>(a: A) => ReaderT<M, R, A> + readonly ap: <R, A, B>(mab: ReaderT<M, R, (a: A) => B>, ma: ReaderT<M, R, A>) => ReaderT<M, R, B> + readonly chain: <R, A, B>(ma: ReaderT<M, R, A>, f: (a: A) => ReaderT<M, R, B>) => ReaderT<M, R, B> + readonly ask: <R>() => ReaderT<M, R, R> + readonly asks: <R, A>(f: (r: R) => A) => ReaderT<M, R, A> + readonly local: <R1, A, R2>(ma: ReaderT<M, R1, A>, f: (d: R2) => R1) => ReaderT<M, R2, A> + readonly fromReader: <R, A>(ma: Reader<R, A>) => ReaderT<M, R, A> + readonly fromM: <R, A>(ma: HKT<M, A>) => ReaderT<M, R, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT1<M extends URIS, R, A> { + (r: R): Kind<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM1<M extends URIS> { + readonly map: <R, A, B>(ma: ReaderT1<M, R, A>, f: (a: A) => B) => ReaderT1<M, R, B> + readonly of: <R, A>(a: A) => ReaderT1<M, R, A> + readonly ap: <R, A, B>(mab: ReaderT1<M, R, (a: A) => B>, ma: ReaderT1<M, R, A>) => ReaderT1<M, R, B> + readonly chain: <R, A, B>(ma: ReaderT1<M, R, A>, f: (a: A) => ReaderT1<M, R, B>) => ReaderT1<M, R, B> + readonly ask: <R>() => ReaderT1<M, R, R> + readonly asks: <R, A>(f: (r: R) => A) => ReaderT1<M, R, A> + readonly local: <R1, A, R2>(ma: ReaderT1<M, R1, A>, f: (d: R2) => R1) => ReaderT1<M, R2, A> + readonly fromReader: <R, A>(ma: Reader<R, A>) => ReaderT1<M, R, A> + readonly fromM: <R, A>(ma: Kind<M, A>) => ReaderT1<M, R, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT2<M extends URIS2, R, E, A> { + (r: R): Kind2<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM2<M extends URIS2> { + readonly map: <R, E, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => B) => ReaderT2<M, R, E, B> + readonly of: <R, E, A>(a: A) => ReaderT2<M, R, E, A> + readonly ap: <R, E, A, B>(mab: ReaderT2<M, R, E, (a: A) => B>, ma: ReaderT2<M, R, E, A>) => ReaderT2<M, R, E, B> + readonly chain: <R, E, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => ReaderT2<M, R, E, B>) => ReaderT2<M, R, E, B> + readonly ask: <R, E>() => ReaderT2<M, R, E, R> + readonly asks: <R, E, A>(f: (r: R) => A) => ReaderT2<M, R, E, A> + readonly local: <R1, E, A, R2>(ma: ReaderT2<M, R1, E, A>, f: (d: R2) => R1) => ReaderT2<M, R2, E, A> + readonly fromReader: <R, E, A>(ma: Reader<R, A>) => ReaderT2<M, R, E, A> + readonly fromM: <R, E, A>(ma: Kind2<M, E, A>) => ReaderT2<M, R, E, A> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface ReaderM2C<M extends URIS2, E> { + readonly map: <R, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => B) => ReaderT2<M, R, E, B> + readonly of: <R, A>(a: A) => ReaderT2<M, R, E, A> + readonly ap: <R, A, B>(mab: ReaderT2<M, R, E, (a: A) => B>, ma: ReaderT2<M, R, E, A>) => ReaderT2<M, R, E, B> + readonly chain: <R, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => ReaderT2<M, R, E, B>) => ReaderT2<M, R, E, B> + readonly ask: <R>() => ReaderT2<M, R, E, R> + readonly asks: <R, A>(f: (r: R) => A) => ReaderT2<M, R, E, A> + readonly local: <R1, A, R2>(ma: ReaderT2<M, R1, E, A>, f: (d: R2) => R1) => ReaderT2<M, R2, E, A> + readonly fromReader: <R, A>(ma: Reader<R, A>) => ReaderT2<M, R, E, A> + readonly fromM: <R, A>(ma: Kind2<M, E, A>) => ReaderT2<M, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT3<M extends URIS3, R, U, E, A> { + (r: R): Kind3<M, U, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM3<M extends URIS3> { + readonly map: <R, U, E, A, B>(ma: ReaderT3<M, R, U, E, A>, f: (a: A) => B) => ReaderT3<M, R, U, E, B> + readonly of: <R, U, E, A>(a: A) => ReaderT3<M, R, U, E, A> + readonly ap: <R, U, E, A, B>( + mab: ReaderT3<M, R, U, E, (a: A) => B>, + ma: ReaderT3<M, R, U, E, A> + ) => ReaderT3<M, R, U, E, B> + readonly chain: <R, U, E, A, B>( + ma: ReaderT3<M, R, U, E, A>, + f: (a: A) => ReaderT3<M, R, U, E, B> + ) => ReaderT3<M, R, U, E, B> + readonly ask: <R, U, E>() => ReaderT3<M, R, U, E, R> + readonly asks: <R, U, E, A>(f: (r: R) => A) => ReaderT3<M, R, U, E, A> + readonly local: <R1, U, E, A, R2>(ma: ReaderT3<M, R1, U, E, A>, f: (d: R2) => R1) => ReaderT3<M, R2, U, E, A> + readonly fromReader: <R, U, E, A>(ma: Reader<R, A>) => ReaderT3<M, R, U, E, A> + readonly fromM: <R, U, E, A>(ma: Kind3<M, U, E, A>) => ReaderT3<M, R, U, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getReaderM<M extends URIS3>(M: Monad3<M>): ReaderM3<M> +/** @deprecated */ +export declare function getReaderM<M extends URIS2>(M: Monad2<M>): ReaderM2<M> +/** @deprecated */ +export declare function getReaderM<M extends URIS2, E>(M: Monad2C<M, E>): ReaderM2C<M, E> +/** @deprecated */ +export declare function getReaderM<M extends URIS>(M: Monad1<M>): ReaderM1<M> +/** @deprecated */ +export declare function getReaderM<M>(M: Monad<M>): ReaderM<M> diff --git a/node_modules/fp-ts/es6/ReaderT.js b/node_modules/fp-ts/es6/ReaderT.js new file mode 100644 index 0000000..cef37de --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderT.js @@ -0,0 +1,42 @@ +import { flow, pipe } from './function'; +export function of(F) { + return function (a) { return function () { return F.of(a); }; }; +} +export function map(F) { + return function (f) { return function (fa) { return function (r) { return F.map(fa(r), f); }; }; }; +} +export function ap(F) { + return function (fa) { return function (fab) { return function (r) { return F.ap(fab(r), fa(r)); }; }; }; +} +export function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +export function flatMap(M) { + return function (ma, f) { return function (r) { return M.chain(ma(r), function (a) { return f(a)(r); }); }; }; +} +export function fromReader(F) { + return function (ma) { return flow(ma, F.of); }; +} +export function fromNaturalTransformation(nt) { + return function (f) { return flow(f, nt); }; +} +/** @deprecated */ +/* istanbul ignore next */ +export function getReaderM(M) { + var _ap = ap(M); + var _map = map(M); + var _chain = chain(M); + return { + map: function (fa, f) { return pipe(fa, _map(f)); }, + ap: function (fab, fa) { return pipe(fab, _ap(fa)); }, + of: of(M), + chain: function (ma, f) { return pipe(ma, _chain(f)); }, + ask: function () { return M.of; }, + asks: function (f) { return flow(f, M.of); }, + local: function (ma, f) { return function (q) { return ma(f(q)); }; }, + fromReader: fromReader(M), + fromM: function (ma) { return function () { return ma; }; } + }; +} diff --git a/node_modules/fp-ts/es6/ReaderTask.d.ts b/node_modules/fp-ts/es6/ReaderTask.d.ts new file mode 100644 index 0000000..decd532 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderTask.d.ts @@ -0,0 +1,787 @@ +/** + * @since 2.3.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import * as chainable from './Chain' +import { FromIO2 } from './FromIO' +import { FromReader2 } from './FromReader' +import { FromTask2 } from './FromTask' +import { Functor2 } from './Functor' +import { IO } from './IO' +import { Monad2 } from './Monad' +import { MonadIO2 } from './MonadIO' +import { MonadTask2 } from './MonadTask' +import { Monoid } from './Monoid' +import { Pointed2 } from './Pointed' +import * as R from './Reader' +import * as RIO from './ReaderIO' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import ReaderIO = RIO.ReaderIO +import Task = T.Task +/** + * @category model + * @since 2.3.0 + */ +export interface ReaderTask<R, A> { + (r: R): Task<A> +} +/** + * @category conversions + * @since 2.3.0 + */ +export declare const fromReader: <R, A>(fa: R.Reader<R, A>) => ReaderTask<R, A> +/** + * @category conversions + * @since 2.3.0 + */ +export declare const fromTask: <A, R = unknown>(fa: Task<A>) => ReaderTask<R, A> +/** + * @category conversions + * @since 2.3.0 + */ +export declare const fromIO: <A, R = unknown>(fa: IO<A>) => ReaderTask<R, A> +/** + * @category conversions + * @since 2.13.0 + */ +export declare const fromReaderIO: <R, A>(fa: ReaderIO<R, A>) => ReaderTask<R, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.3.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <A>(ma: ReaderTask<R1, A>) => ReaderTask<R2, A> +/** + * Less strict version of [`asksReaderTask`](#asksreadertask). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTaskW: <R1, R2, A>(f: (r1: R1) => ReaderTask<R2, A>) => ReaderTask<R1 & R2, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTask: <R, A>(f: (r: R) => ReaderTask<R, A>) => ReaderTask<R, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.3.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R>(fa: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * @since 2.3.0 + */ +export declare const ap: <R, A>(fa: ReaderTask<R, A>) => <B>(fab: ReaderTask<R, (a: A) => B>) => ReaderTask<R, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, A>( + fa: ReaderTask<R2, A> +) => <R1, B>(fab: ReaderTask<R1, (a: A) => B>) => ReaderTask<R1 & R2, B> +/** + * @category constructors + * @since 2.3.0 + */ +export declare const of: <R = unknown, A = never>(a: A) => ReaderTask<R, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, B>(f: (a: A) => ReaderTask<R2, B>): <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> + <R1, A, R2, B>(ma: ReaderTask<R1, A>, f: (a: A) => ReaderTask<R2, B>): ReaderTask<R1 & R2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, R2, A>(mma: ReaderTask<R1, ReaderTask<R2, A>>) => ReaderTask<R1 & R2, A> +/** + * @category sequencing + * @since 2.3.0 + */ +export declare const flatten: <R, A>(mma: ReaderTask<R, ReaderTask<R, A>>) => ReaderTask<R, A> +/** + * @category type lambdas + * @since 2.3.0 + */ +export declare const URI = 'ReaderTask' +/** + * @category type lambdas + * @since 2.3.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: ReaderTask<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, _>(self: ReaderTask<R, _>) => ReaderTask<R, A> + <R, _, A>(self: ReaderTask<R, _>, a: A): ReaderTask<R, A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, _>(self: ReaderTask<R, _>) => ReaderTask<R, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'ReaderTask', E, (a: A) => B>) => import('./HKT').Kind2<'ReaderTask', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.3.0 + */ +export declare const apFirst: <E, B>( + second: ReaderTask<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderTask', E, A>) => import('./HKT').Kind2<'ReaderTask', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +export declare const apFirstW: <R2, B>( + second: ReaderTask<R2, B> +) => <R1, A>(first: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.3.0 + */ +export declare const apSecond: <E, B>( + second: ReaderTask<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderTask', E, A>) => import('./HKT').Kind2<'ReaderTask', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +export declare const apSecondW: <R2, B>( + second: ReaderTask<R2, B> +) => <R1, A>(first: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask2<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader2<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, B> + <R, A, B>(self: ReaderTask<R, A>, f: (a: A) => IO<B>): ReaderTask<R, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, B> + <R, A, B>(self: ReaderTask<R, A>, f: (a: A) => Task<B>): ReaderTask<R, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => R.Reader<R2, B>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> + <R1, A, R2, B>(self: ReaderTask<R1, A>, f: (a: A) => R.Reader<R2, B>): ReaderTask<R1 & R2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderIO: { + <A, R2, B>(f: (a: A) => ReaderIO<R2, B>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> + <R1, A, R2, B>(self: ReaderTask<R1, A>, f: (a: A) => ReaderIO<R2, B>): ReaderTask<R1 & R2, B> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, A, R2, _>(self: ReaderTask<R1, A>, f: (a: A) => ReaderTask<R2, _>): ReaderTask<R1 & R2, A> + <A, R2, _>(f: (a: A) => ReaderTask<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R2 & R1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RT.ask<string>(), + * RT.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, A> + <R, A, _>(self: ReaderTask<R, A>, f: (a: A) => IO<_>): ReaderTask<R, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <R2, A, _>(f: (a: A) => R.Reader<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> + <R1, R2, A, _>(self: ReaderTask<R1, A>, f: (a: A) => R.Reader<R2, _>): ReaderTask<R1 & R2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as T from 'fp-ts/Task' + * + * const effect = pipe( + * RT.ask<number>(), + * RT.tapTask((value) => T.of(value + 1)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), 1) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, A> + <R, A, _>(self: ReaderTask<R, A>, f: (a: A) => Task<_>): ReaderTask<R, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderIO: { + <R2, A, _>(f: (a: A) => ReaderIO<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> + <R1, R2, A, _>(self: ReaderTask<R1, A>, f: (a: A) => ReaderIO<R2, _>): ReaderTask<R1 & R2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <R = unknown>(...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * Reads the current context. + * + * @category constructors + * @since 2.3.0 + */ +export declare const ask: <R>() => import('./HKT').Kind2<'ReaderTask', R, R> +/** + * Projects a value from the global context in a `ReaderTask`. + * + * @category constructors + * @since 2.3.0 + */ +export declare const asks: <R, A>(f: (r: R) => A) => import('./HKT').Kind2<'ReaderTask', R, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => R.Reader<R, B> +) => (...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderTask<R2, A>) => ReaderTask<R1 & R2, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => R.Reader<R, B> +) => (ma: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderTask<R2, A>) => ReaderTask<R1 & R2, A> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromReaderIOK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => ReaderIO<R, B> +) => (...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => (ma: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => (ma: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <R = unknown>(...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReaderTask<unknown, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'ReaderTask', E, B> +) => ( + ma: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderTask<R2, B> +) => <R1>(fa: ReaderTask<R1, A>) => ReaderTask< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderTask<E, B> +) => ( + fa: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, B>( + name: Exclude<N, keyof A>, + fb: ReaderTask<R2, B> +) => <R1>(fa: ReaderTask<R1, A>) => ReaderTask< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: ReaderTask<unknown, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTask<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTask<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, A, B>( + f: (a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, A>(arr: ReadonlyArray<ReaderTask<R, A>>) => ReaderTask<R, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArrayWithIndex: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArray: <R, A, B>( + f: (a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.3.0 + */ +export declare const chain: <A, R, B>(f: (a: A) => ReaderTask<R, B>) => (ma: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.7 + */ +export declare const chainW: <R2, A, B>( + f: (a: A) => ReaderTask<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.3.0 + */ +export declare const chainFirst: <A, R, B>( + f: (a: A) => ReaderTask<R, B> +) => (first: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstW: <R2, A, B>( + f: (a: A) => ReaderTask<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> +/** + * Use `traverseReadonlyArrayWithIndexSeq` instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const sequenceSeqArray: <R, A>(arr: ReadonlyArray<ReaderTask<R, A>>) => ReaderTask<R, ReadonlyArray<A>> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTask` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const readerTask: MonadTask2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTaskSeq` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const readerTaskSeq: typeof readerTask +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const getSemigroup: <R, A>(S: Semigroup<A>) => Semigroup<ReaderTask<R, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const getMonoid: <R, A>(M: Monoid<A>) => Monoid<ReaderTask<R, A>> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare function run<R, A>(ma: ReaderTask<R, A>, r: R): Promise<A> diff --git a/node_modules/fp-ts/es6/ReaderTask.js b/node_modules/fp-ts/es6/ReaderTask.js new file mode 100644 index 0000000..bf9a19d --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderTask.js @@ -0,0 +1,781 @@ +/** + * @since 2.3.0 + */ +import { getApplicativeMonoid } from './Applicative'; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { ask as ask_, asks as asks_, fromReaderK as fromReaderK_, tapReader as tapReader_ } from './FromReader'; +import { fromTaskK as fromTaskK_, tapTask as tapTask_ } from './FromTask'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as R from './Reader'; +import * as RT from './ReaderT'; +import * as T from './Task'; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.3.0 + */ +export var fromReader = /*#__PURE__*/ RT.fromReader(T.Pointed); +/** + * @category conversions + * @since 2.3.0 + */ +export var fromTask = R.of; +/** + * @category conversions + * @since 2.3.0 + */ +export var fromIO = /*#__PURE__*/ flow(T.fromIO, fromTask); +/** + * @category conversions + * @since 2.13.0 + */ +export var fromReaderIO = R.map(T.fromIO); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.3.0 + */ +export var local = R.local; +/** + * Less strict version of [`asksReaderTask`](#asksreadertask). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderTaskW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderTask = asksReaderTaskW; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _apPar = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.3.0 + */ +export var map = /*#__PURE__*/ RT.map(T.Functor); +/** + * @since 2.3.0 + */ +export var ap = +/*#__PURE__*/ RT.ap(T.ApplyPar); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +export var apW = ap; +/** + * @category constructors + * @since 2.3.0 + */ +export var of = /*#__PURE__*/ RT.of(T.Pointed); +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, RT.flatMap(T.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = +/*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.3.0 + */ +export var flatten = flattenW; +/** + * @category type lambdas + * @since 2.3.0 + */ +export var URI = 'ReaderTask'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplyPar = { + URI: URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.3.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.3.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +export var apSecondW = apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativePar = { + URI: URI, + map: _map, + ap: _apPar, + of: of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export var ApplySeq = { + URI: URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativeSeq = { + URI: URI, + map: _map, + ap: _apSeq, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Monad = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadTask = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromReader = { + URI: URI, + fromReader: fromReader +}; +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: FromIO.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: fromTask +}; +/** @internal */ +var _FromReader = { + fromReader: fromReader +}; +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTask = _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReader = _.flatMapReader(_FromReader, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReaderIO = /*#__PURE__*/ dual(2, function (self, f) { + return flatMap(self, fromReaderIOK(f)); +}); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RT.ask<string>(), + * RT.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReader = /*#__PURE__*/ dual(2, tapReader_(FromReader, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as T from 'fp-ts/Task' + * + * const effect = pipe( + * RT.ask<number>(), + * RT.tapTask((value) => T.of(value + 1)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), 1) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapTask = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReaderIO = /*#__PURE__*/ dual(2, function (self, f) { + return tap(self, fromReaderIOK(f)); +}); +/** + * @category lifting + * @since 2.4.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * Reads the current context. + * + * @category constructors + * @since 2.3.0 + */ +export var ask = /*#__PURE__*/ ask_(FromReader); +/** + * Projects a value from the global context in a `ReaderTask`. + * + * @category constructors + * @since 2.3.0 + */ +export var asks = /*#__PURE__*/ asks_(FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromReaderK = /*#__PURE__*/ fromReaderK_(FromReader); +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderK = flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderKW = flatMapReader; +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderK = tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderKW = tapReader; +/** + * @category lifting + * @since 2.13.0 + */ +export var fromReaderIOK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return fromReaderIO(f.apply(void 0, a)); + }; +}; +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export var chainReaderIOKW = flatMapReaderIO; +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainReaderIOK = flatMapReaderIO; +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstReaderIOKW = tapReaderIO; +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstReaderIOK = tapReaderIO; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromTaskK = /*#__PURE__*/ fromTaskK_(FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainTaskK = flatMapTask; +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export var chainFirstTaskK = tapTask; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(T.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(T.traverseReadonlyNonEmptyArrayWithIndexSeq(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export var traverseSeqArray = function (f) { return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); }; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.3.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.7 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.3.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstW = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `traverseReadonlyArrayWithIndexSeq` instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export var sequenceSeqArray = +/*#__PURE__*/ traverseSeqArray(identity); +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTask` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export var readerTask = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTaskSeq` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export var readerTaskSeq = { + URI: URI, + map: _map, + of: of, + ap: _apSeq, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export var getSemigroup = +/*#__PURE__*/ getApplySemigroup_(ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export var getMonoid = +/*#__PURE__*/ getApplicativeMonoid(ApplicativeSeq); +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +/* istanbul ignore next */ +export function run(ma, r) { + return ma(r)(); +} diff --git a/node_modules/fp-ts/es6/ReaderTaskEither.d.ts b/node_modules/fp-ts/es6/ReaderTaskEither.d.ts new file mode 100644 index 0000000..7da4256 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderTaskEither.d.ts @@ -0,0 +1,1773 @@ +/** + * @since 2.0.0 + */ +import { Alt3, Alt3C } from './Alt' +import { Applicative3, Applicative3C } from './Applicative' +import { Apply1, Apply3 } from './Apply' +import { Bifunctor3 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable3C } from './Compactable' +import * as E from './Either' +import { Filterable3C } from './Filterable' +import { FromEither3 } from './FromEither' +import { FromIO3 } from './FromIO' +import { FromReader3 } from './FromReader' +import { FromTask3 } from './FromTask' +import { LazyArg } from './function' +import { Functor3 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad3, Monad3C } from './Monad' +import { MonadIO3 } from './MonadIO' +import { MonadTask3, MonadTask3C } from './MonadTask' +import { MonadThrow3, MonadThrow3C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed3 } from './Pointed' +import { Predicate } from './Predicate' +import * as R from './Reader' +import { ReaderEither } from './ReaderEither' +import * as RIO from './ReaderIO' +import * as RT from './ReaderTask' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import * as TE from './TaskEither' +import Either = E.Either +import Task = T.Task +import TaskEither = TE.TaskEither +import Reader = R.Reader +import ReaderIO = RIO.ReaderIO +import ReaderTask = RT.ReaderTask +/** + * @category model + * @since 2.0.0 + */ +export interface ReaderTaskEither<R, E, A> { + (r: R): TaskEither<E, A> +} +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromTaskEither: <E, A, R = unknown>(fa: TaskEither<E, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <R, E = never, A = never>(e: E) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <R, E = never, A = never>(a: A) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightTask: <R, E = never, A = never>(ma: Task<A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftTask: <R, E = never, A = never>(me: Task<E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightReader: <R, E = never, A = never>(ma: Reader<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftReader: <R, E = never, A = never>(me: Reader<R, E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.5.0 + */ +export declare const rightReaderTask: <R, E = never, A = never>(ma: ReaderTask<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.5.0 + */ +export declare const leftReaderTask: <R, E = never, A = never>(me: ReaderTask<R, E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightIO: <R, E = never, A = never>(ma: IO<A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftIO: <R, E = never, A = never>(me: IO<E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.13.0 + */ +export declare const rightReaderIO: <R, E = never, A = never>(ma: ReaderIO<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.13.0 + */ +export declare const leftReaderIO: <R, E = never, A = never>(me: ReaderIO<R, E>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A, R = unknown>(fa: Either<E, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromReader: <R, A, E = never>(fa: Reader<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIO: <A, R = unknown, E = never>(fa: IO<A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromTask: <A, R = unknown, E = never>(fa: Task<A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIOEither: <E, A, R = unknown>(fa: IOEither<E, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromReaderEither: <R, E, A>(fa: ReaderEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`ReaderTask`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <R, E, A, B>( + onLeft: (e: E) => ReaderTask<R, B>, + onRight: (a: A) => ReaderTask<R, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <R, E, A, B>( + onLeft: (e: E) => ReaderTask<R, B>, + onRight: (a: A) => ReaderTask<R, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => ReaderTask<R2, B>, + onRight: (a: A) => ReaderTask<R3, C> +) => <R1>(ma: ReaderTaskEither<R1, E, A>) => ReaderTask<R1 & R2 & R3, B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => ReaderTask<R2, B>, + onRight: (a: A) => ReaderTask<R3, C> +) => <R1>(ma: ReaderTaskEither<R1, E, A>) => ReaderTask<R1 & R2 & R3, B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <R, E, A>( + onLeft: (e: E) => ReaderTask<R, A> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <R2, E, B>( + onLeft: (e: E) => ReaderTask<R2, B> +) => <R1, A>(ma: ReaderTaskEither<R1, E, A>) => ReaderTask<R1 & R2, A | B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <R, E, A>(fa: ReaderTaskEither<R, E, A>) => ReaderTask<R, E | A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromNullable: <E>(e: E) => <R, A>(a: A) => ReaderTaskEither<R, E, NonNullable<A>> +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const fromNullableK: <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, NonNullable<B>> +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainNullableK: <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, NonNullable<B>> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +export declare const local: <R2, R1>( + f: (r2: R2) => R1 +) => <E, A>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R2, E, A> +/** + * Less strict version of [`asksReaderTaskEither`](#asksreadertaskeither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTaskEitherW: <R1, R2, E, A>( + f: (r1: R1) => ReaderTaskEither<R2, E, A> +) => ReaderTaskEither<R1 & R2, E, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTaskEither: <R, E, A>( + f: (r: R) => ReaderTaskEither<R, E, A> +) => ReaderTaskEither<R, E, A> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <R, E1, A, E2>( + onLeft: (e: E1) => ReaderTaskEither<R, E2, A> +) => (ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, R1, E2, B>( + onLeft: (e: E1) => ReaderTaskEither<R1, E2, B> +) => <R2, A>(ma: ReaderTaskEither<R2, E1, A>) => ReaderTaskEither<R1 & R2, E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, R2, E2, _>(onLeft: (e: E1) => ReaderTaskEither<R2, E2, _>): <R1, A>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, A> + <R1, E1, A, R2, E2, _>( + self: ReaderTaskEither<R1, E1, A>, + onLeft: (e: E1) => ReaderTaskEither<R2, E2, _> + ): ReaderTaskEither<R1 & R2, E1 | E2, A> +} +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, R, E2>( + onLeft: (e: E1) => ReaderTask<R, E2> +) => <A>(fa: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E2, A> +/** + * @category error handling + * @since 2.16.6 + */ +export declare const orLeftW: <E1, R2, E2>( + onLeft: (e: E1) => ReaderTask<R2, E2> +) => <R1, A>(fa: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <R, E, A>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, A, E> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IOEither<E, B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromTaskEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => TaskEither<E, B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderEitherK: <R, E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => ReaderEither<R, E, B> +) => (...a: A) => ReaderTaskEither<R, E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R, E>(fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Returns a `ReaderTaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.right(1), f, g)({})(), Either.right(2)) + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.left('err'), f, g)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): <R>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, B> + <R, E, A, G, B>(self: ReaderTaskEither<R, E, A>, f: (e: E) => G, g: (a: A) => B): ReaderTaskEither<R, G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, B> +/** + * Returns a `ReaderTaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.right(1), f)({})(), Either.right(1)) + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.left('err'), f)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <R, E, G>(f: (e: E) => G): <A>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, A> + <R, E, A, G>(self: ReaderTaskEither<R, E, A>, f: (e: E) => G): ReaderTaskEither<R, G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>( + f: (e: E) => G +) => <R, A>(fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <R, E, A>( + fa: ReaderTaskEither<R, E, A> +) => <B>(fab: ReaderTaskEither<R, E, (a: A) => B>) => ReaderTaskEither<R, E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, E2, A>( + fa: ReaderTaskEither<R2, E2, A> +) => <R1, E1, B>(fab: ReaderTaskEither<R1, E1, (a: A) => B>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <R = unknown, E = never, A = never>(a: A) => ReaderTaskEither<R, E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, E2, B>(f: (a: A) => ReaderTaskEither<R2, E2, B>): <R1, E1>( + ma: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, B> + <R1, E1, A, R2, E2, B>(ma: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderTaskEither<R2, E2, B>): ReaderTaskEither< + R1 & R2, + E1 | E2, + B + > +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, E1, R2, E2, A>( + mma: ReaderTaskEither<R1, E1, ReaderTaskEither<R2, E2, A>> +) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <R, E, A>( + mma: ReaderTaskEither<R, E, ReaderTaskEither<R, E, A>> +) => ReaderTaskEither<R, E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <R, E, A>( + that: () => ReaderTaskEither<R, E, A> +) => (fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <R2, E2, B>( + that: () => ReaderTaskEither<R2, E2, B> +) => <R1, E1, A>(fa: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E2, A | B> +/** + * @since 2.0.0 + */ +export declare const throwError: MonadThrow3<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'ReaderTaskEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind3<R, E, A> { + readonly [URI]: ReaderTaskEither<R, E, A> + } +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable3C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable3C<URI, E> +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeReaderTaskValidation<E>(A: Apply1<T.URI>, S: Semigroup<E>): Applicative3C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltReaderTaskValidation<E>(S: Semigroup<E>): Alt3C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor3<URI> +/** + * Maps the `Right` value of this `ReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, E, _>(self: ReaderTaskEither<R, E, _>) => ReaderTaskEither<R, E, A> + <R, E, _, A>(self: ReaderTaskEither<R, E, _>, a: A): ReaderTaskEither<R, E, A> +} +/** + * Maps the `Right` value of this `ReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, E, _>(self: ReaderTaskEither<R, E, _>) => ReaderTaskEither<R, E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <R, E, B>( + fab: import('./HKT').Kind3<'ReaderTaskEither', R, E, (a: A) => B> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed3<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply3<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <R, E, B>( + second: ReaderTaskEither<R, E, B> +) => <A>( + first: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <R2, E2, B>( + second: ReaderTaskEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <R, E, B>( + second: ReaderTaskEither<R, E, B> +) => <A>( + first: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <R2, E2, B>( + second: ReaderTaskEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative3<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply3<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadThrow: MonadThrow3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask3<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader3<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, E1, A, R2, E2, _>(self: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderTaskEither<R2, E2, _>): ReaderTaskEither< + R1 & R2, + E1 | E2, + A + > + <A, R2, E2, _>(f: (a: A) => ReaderTaskEither<R2, E2, _>): <R1, E1>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RTE from 'fp-ts/ReaderTaskEither' + * + * const checkString = (value: string) => pipe( + * RTE.ask<number>(), + * RTE.tapEither((minLength) => value.length > minLength ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(2)(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(2)(), E.right(2)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <R, E1>(self: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, A> + <R, E1, A, E2, _>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => Either<E2, _>): ReaderTaskEither<R, E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = RTE.tapIO( + * RTE.ask<string>(), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), E.of('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> + <R, E, A, _>(self: ReaderTaskEither<R, E, A>, f: (a: A) => IO<_>): ReaderTaskEither<R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as T from 'fp-ts/Task' + * + * + * const effect = RTE.tapTask( + * RTE.ask<number>(), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> + <R, E, A, _>(self: ReaderTaskEither<R, E, A>, f: (a: A) => Task<_>): ReaderTaskEither<R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <A, R2, _>(f: (a: A) => Reader<R2, _>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> + <R1, E, A, R2, _>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => Reader<R2, _>): ReaderTaskEither<R1 & R2, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderEither: { + <A, R2, E2, _>(f: (a: A) => ReaderEither<R2, E2, _>): <R1, E1>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, A> + <R1, E1, A, R2, E2, _>(self: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, _>): ReaderTaskEither< + R1 & R2, + E1 | E2, + A + > +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTaskEither: { + <A, E2, _>(f: (a: A) => TaskEither<E2, _>): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, A> + <R, E1, A, E2, _>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => TaskEither<E2, _>): ReaderTaskEither<R, E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderTask: { + <A, R2, _>(f: (a: A) => ReaderTask<R2, _>): <R1, E>( + self: ReaderTaskEither<R1, E, A> + ) => ReaderTaskEither<R1 & R2, E, A> + <R1, E, A, R2, _>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderTask<R2, _>): ReaderTaskEither<R1 & R2, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderIO: { + <A, R2, _>(f: (a: A) => ReaderIO<R2, _>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> + <R1, E, A, R2, _>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderIO<R2, _>): ReaderTaskEither<R1 & R2, E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor3<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt3<URI> +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +export declare const ask: <R, E = never>() => ReaderTaskEither<R, E, R> +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +export declare const asks: <R, A, E = never>(f: (r: R) => A) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => Reader<R, B> +) => <E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => R.Reader<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2, E>(ma: ReaderTaskEither<R2, E, A>) => ReaderTaskEither<R1 & R2, E, A> +/** + * Alias of `tapReaderEither`. + * + * Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderEitherKW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * Alias of `tapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderEitherK: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapTaskEither`. + * + * Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstTaskEitherKW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, A> +/** + * Alias of `tapTaskEither`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstTaskEitherK: <E, A, B>( + f: (a: A) => TaskEither<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderTaskK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => ReaderTask<R, B> +) => <E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapReaderTask`. + * + * Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderTaskKW: <A, R2, B>( + f: (a: A) => RT.ReaderTask<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> +/** + * Alias of `tapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderTaskK: <A, R, B>( + f: (a: A) => RT.ReaderTask<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromReaderIOK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => ReaderIO<R, B> +) => <E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A, R = unknown>(fa: Option<A>) => ReaderTaskEither<R, E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => <R>(...a: A) => ReaderTaskEither<R, E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => <R>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E2 | E1, NonNullable<B>> + <R, E1, A, B, E2>( + self: ReaderTaskEither<R, E1, A>, + f: (a: A) => B | null | undefined, + onNullable: (a: A) => E2 + ): ReaderTaskEither<R, E1 | E2, NonNullable<B>> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E2 | E1, B> + <R, E1, A, B, E2>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): ReaderTaskEither< + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <R, E1>(self: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => E.Either<E2, B>): ReaderTaskEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTaskEither: { + <A, E2, B>(f: (a: A) => TaskEither<E2, B>): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => TaskEither<E2, B>): ReaderTaskEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderTask: { + <A, R2, B>(f: (a: A) => ReaderTask<R2, B>): <R1, E>( + self: ReaderTaskEither<R1, E, A> + ) => ReaderTaskEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderTask<R2, B>): ReaderTaskEither<R1 & R2, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> + <R, E, A, B>(self: ReaderTaskEither<R, E, A>, f: (a: A) => IO<B>): ReaderTaskEither<R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> + <R, E, A, B>(self: ReaderTaskEither<R, E, A>, f: (a: A) => Task<B>): ReaderTaskEither<R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => Reader<R2, B>): ReaderTaskEither<R1 & R2, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderIO: { + <A, R2, B>(f: (a: A) => ReaderIO<R2, B>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderIO<R2, B>): ReaderTaskEither<R1 & R2, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIOEither: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <R, E1>(self: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => IOEither<E2, B>): ReaderTaskEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderEither: { + <A, R2, E2, B>(f: (a: A) => ReaderEither<R2, E2, B>): <R1, E1>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, B> + <R1, E1, A, R2, E2, B>(self: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, B>): ReaderTaskEither< + R1 & R2, + E1 | E2, + B + > +} +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, A> +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainTaskEitherKW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainTaskEitherK: <E, A, B>( + f: (a: A) => TaskEither<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapReaderTask`. + * + * Less strict version of [`chainReaderTaskK`](#chainreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderTaskKW: <A, R2, B>( + f: (a: A) => RT.ReaderTask<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> +/** + * Alias of `flatMapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderTaskK: <A, R, B>( + f: (a: A) => RT.ReaderTask<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R = unknown>( + a: A + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown, B extends A = A>( + b: B + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown>(a: A) => ReaderTaskEither<R, E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: ReaderTaskEither<R, E, A> + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>( + mb: ReaderTaskEither<R, E, B> + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1, B extends A>( + mb: ReaderTaskEither<R, E1, B> + ) => ReaderTaskEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <R = unknown, E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>( + f: (a: A) => IO<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>( + f: (a: A) => IO<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <R = unknown, E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>( + f: (a: A) => T.Task<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>( + f: (a: A) => T.Task<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2, E>(ma: ReaderTaskEither<R2, E, A>) => ReaderTaskEither<R1 & R2, E, B> +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainIOEitherKW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOEitherK: <E, A, B>( + f: (a: A) => IOEither<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapReaderEither`. + * + * Less strict version of [`chainReaderEitherK`](#chainreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderEitherKW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * Alias of `flatMapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderEitherK: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.4 + */ +export declare function bracket<R, E, A, B>( + acquire: ReaderTaskEither<R, E, A>, + use: (a: A) => ReaderTaskEither<R, E, B>, + release: (a: A, e: Either<E, B>) => ReaderTaskEither<R, E, void> +): ReaderTaskEither<R, E, B> +/** + * Less strict version of [`bracket`](#bracket). + * + * @since 2.12.0 + */ +export declare function bracketW<R1, E1, A, R2, E2, B, R3, E3>( + acquire: ReaderTaskEither<R1, E1, A>, + use: (a: A) => ReaderTaskEither<R2, E2, B>, + release: (a: A, e: Either<E2, B>) => ReaderTaskEither<R3, E3, void> +): ReaderTaskEither<R1 & R2 & R3, E1 | E2 | E3, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReaderTaskEither<unknown, never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <R, E, A>( + fa: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R, E>( + fa: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind3<'ReaderTaskEither', R, E, B> +) => ( + ma: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderTaskEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderTaskEither<R1, E1, A> +) => ReaderTaskEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderTaskEither<R, E, B> +) => ( + fa: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, E2, B>( + name: Exclude<N, keyof A>, + fb: ReaderTaskEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderTaskEither<R1, E1, A> +) => ReaderTaskEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: ReaderTaskEither<unknown, never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTaskEither<R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTaskEither<R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, E, A, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, E, A>( + arr: ReadonlyArray<ReaderTaskEither<R, E, A>> +) => ReaderTaskEither<R, E, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <R, E, A, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <R, E, A>( + arr: ReadonlyArray<ReaderTaskEither<R, E, A>> +) => ReaderTaskEither<R, E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <R2, E2, A, B>( + f: (a: A) => ReaderTaskEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <R2, E2, A, B>( + f: (a: A) => ReaderTaskEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, R, B>( + onLeft: (e: E) => ReaderTaskEither<R, E, B> +) => <A>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, R2, E2, B>( + onLeft: (e: E1) => ReaderTaskEither<R2, E2, B> +) => <R1, A>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEither` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const readerTaskEither: Monad3<URI> & Bifunctor3<URI> & Alt3<URI> & MonadTask3<URI> & MonadThrow3<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEitherSeq` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const readerTaskEitherSeq: typeof readerTaskEither +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderTaskEither<R, E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <R, E, A>(M: Monoid<A>) => Monoid<ReaderTaskEither<R, E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderTaskEither<R, E, A>> +/** + * Use [`getApplicativeReaderTaskValidation`](#getapplicativereadertaskvalidation) and [`getAltReaderTaskValidation`](#getaltreadertaskvalidation) instead. + * + * @category instances + * @since 2.3.0 + * @deprecated + */ +export declare function getReaderTaskValidation<E>( + SE: Semigroup<E> +): Monad3C<URI, E> & Bifunctor3<URI> & Alt3C<URI, E> & MonadTask3C<URI, E> & MonadThrow3C<URI, E> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function run<R, E, A>(ma: ReaderTaskEither<R, E, A>, r: R): Promise<Either<E, A>> diff --git a/node_modules/fp-ts/es6/ReaderTaskEither.js b/node_modules/fp-ts/es6/ReaderTaskEither.js new file mode 100644 index 0000000..19ca112 --- /dev/null +++ b/node_modules/fp-ts/es6/ReaderTaskEither.js @@ -0,0 +1,1605 @@ +import { getApplicativeMonoid } from './Applicative'; +import { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { compact as compact_, separate as separate_ } from './Compactable'; +import * as E from './Either'; +import * as ET from './EitherT'; +import { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable'; +import { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_, tapEither as tapEither_ } from './FromEither'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { ask as ask_, asks as asks_, fromReaderK as fromReaderK_, tapReader as tapReader_ } from './FromReader'; +import { fromTaskK as fromTaskK_, tapTask as tapTask_ } from './FromTask'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as R from './Reader'; +import * as RT from './ReaderTask'; +import * as T from './Task'; +import * as TE from './TaskEither'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +export var fromTaskEither = R.of; +/** + * @category constructors + * @since 2.0.0 + */ +export var left = /*#__PURE__*/ ET.left(RT.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var right = /*#__PURE__*/ ET.right(RT.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightTask = /*#__PURE__*/ flow(TE.rightTask, fromTaskEither); +/** + * @category constructors + * @since 2.0.0 + */ +export var leftTask = /*#__PURE__*/ flow(TE.leftTask, fromTaskEither); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightReader = function (ma) { + return flow(ma, TE.right); +}; +/** + * @category constructors + * @since 2.0.0 + */ +export var leftReader = function (me) { + return flow(me, TE.left); +}; +/** + * @category constructors + * @since 2.5.0 + */ +export var rightReaderTask = +/*#__PURE__*/ ET.rightF(RT.Functor); +/** + * @category constructors + * @since 2.5.0 + */ +export var leftReaderTask = +/*#__PURE__*/ ET.leftF(RT.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightIO = /*#__PURE__*/ flow(TE.rightIO, fromTaskEither); +/** + * @category constructors + * @since 2.0.0 + */ +export var leftIO = /*#__PURE__*/ flow(TE.leftIO, fromTaskEither); +/** + * @category constructors + * @since 2.13.0 + */ +export var rightReaderIO = function (ma) { + return flow(ma, TE.rightIO); +}; +/** + * @category constructors + * @since 2.13.0 + */ +export var leftReaderIO = function (me) { + return flow(me, TE.leftIO); +}; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +export var fromEither = RT.of; +/** + * @category conversions + * @since 2.11.0 + */ +export var fromReader = rightReader; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromIO = rightIO; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromTask = rightTask; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromIOEither = /*#__PURE__*/ flow(TE.fromIOEither, fromTaskEither); +/** + * @category conversions + * @since 2.0.0 + */ +export var fromReaderEither = function (ma) { + return flow(ma, TE.fromEither); +}; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = /*#__PURE__*/ ET.match(RT.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`ReaderTask`). + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchE = /*#__PURE__*/ ET.matchE(RT.Chain); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchEW = matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +export var getOrElse = /*#__PURE__*/ ET.getOrElse(RT.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export var getOrElseW = getOrElse; +/** + * @category conversions + * @since 2.10.0 + */ +export var toUnion = /*#__PURE__*/ ET.toUnion(RT.Functor); +/** + * @category conversions + * @since 2.12.0 + */ +export var fromNullable = +/*#__PURE__*/ ET.fromNullable(RT.Pointed); +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export var fromNullableK = /*#__PURE__*/ ET.fromNullableK(RT.Pointed); +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainNullableK = /*#__PURE__*/ ET.chainNullableK(RT.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +export var local = R.local; +/** + * Less strict version of [`asksReaderTaskEither`](#asksreadertaskeither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderTaskEitherW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export var asksReaderTaskEither = asksReaderTaskEitherW; +/** + * @category error handling + * @since 2.0.0 + */ +export var orElse = /*#__PURE__*/ ET.orElse(RT.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var orElseW = orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export var tapError = /*#__PURE__*/ dual(2, ET.tapError(RT.Monad)); +/** + * @category error handling + * @since 2.11.0 + */ +export var orLeft = /*#__PURE__*/ ET.orLeft(RT.Monad); +/** + * @category error handling + * @since 2.16.6 + */ +export var orLeftW = orLeft; +/** + * @since 2.0.0 + */ +export var swap = /*#__PURE__*/ ET.swap(RT.Functor); +/** + * @category lifting + * @since 2.4.0 + */ +export var fromIOEitherK = function (f) { return flow(f, fromIOEither); }; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromTaskEitherK = function (f) { return flow(f, fromTaskEither); }; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromReaderEitherK = function (f) { return flow(f, fromReaderEither); }; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _apPar = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = +/*#__PURE__*/ ET.map(RT.Functor); +/** + * Returns a `ReaderTaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.right(1), f, g)({})(), Either.right(2)) + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.left('err'), f, g)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export var mapBoth = /*#__PURE__*/ dual(3, ET.mapBoth(RT.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export var bimap = mapBoth; +/** + * Returns a `ReaderTaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.right(1), f)({})(), Either.right(1)) + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.left('err'), f)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export var mapError = /*#__PURE__*/ dual(2, ET.mapError(RT.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export var mapLeft = mapError; +/** + * @since 2.0.0 + */ +export var ap = /*#__PURE__*/ ET.ap(RT.ApplyPar); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export var apW = ap; +/** + * @category constructors + * @since 2.7.0 + */ +export var of = right; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, ET.flatMap(RT.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = /*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export var alt = /*#__PURE__*/ ET.alt(RT.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = alt; +/** + * @since 2.0.0 + */ +export var throwError = left; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'ReaderTaskEither'; +/** + * @category filtering + * @since 2.10.0 + */ +export var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: URI, + _E: undefined, + compact: compact_(RT.Functor, C), + separate: separate_(RT.Functor, C, E.Functor) + }; +}; +/** + * @category filtering + * @since 2.10.0 + */ +export function getFilterable(M) { + var F = E.getFilterable(M); + var C = getCompactable(M); + var filter = filter_(RT.Functor, F); + var filterMap = filterMap_(RT.Functor, F); + var partition = partition_(RT.Functor, F); + var partitionMap = partitionMap_(RT.Functor, F); + return { + URI: URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return pipe(fa, filter(predicate)); }, + filterMap: function (fa, f) { return pipe(fa, filterMap(f)); }, + partition: function (fa, predicate) { return pipe(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return pipe(fa, partitionMap(f)); } + }; +} +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getApplicativeReaderTaskValidation(A, S) { + var ap = ap_(R.Apply, TE.getApplicativeTaskValidation(A, S)); + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return pipe(fab, ap(fa)); }, + of: of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getAltReaderTaskValidation(S) { + var alt = ET.altValidation(RT.Monad, S); + return { + URI: URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return pipe(fa, alt(that)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Right` value of this `ReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Right` value of this `ReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplyPar = { + URI: URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativePar = { + URI: URI, + map: _map, + ap: _apPar, + of: of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export var ApplySeq = { + URI: URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativeSeq = { + URI: URI, + map: _map, + ap: _apSeq, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadTask = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of, + throwError: throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromReader = { + URI: URI, + fromReader: fromReader +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RTE from 'fp-ts/ReaderTaskEither' + * + * const checkString = (value: string) => pipe( + * RTE.ask<number>(), + * RTE.tapEither((minLength) => value.length > minLength ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(2)(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(2)(), E.right(2)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = RTE.tapIO( + * RTE.ask<string>(), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), E.of('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as T from 'fp-ts/Task' + * + * + * const effect = RTE.tapTask( + * RTE.ask<number>(), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapTask = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReader = /*#__PURE__*/ dual(2, tapReader_(FromReader, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReaderEither = /*#__PURE__*/ dual(2, function (self, f) { return tap(self, fromReaderEitherK(f)); }); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapTaskEither = /*#__PURE__*/ dual(2, function (self, f) { return tap(self, fromTaskEitherK(f)); }); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReaderTask = /*#__PURE__*/ dual(2, function (self, f) { return tap(self, fromReaderTaskK(f)); }); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReaderIO = /*#__PURE__*/ dual(2, function (self, f) { + return tap(self, fromReaderIOK(f)); +}); +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +export var ask = /*#__PURE__*/ ask_(FromReader); +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +export var asks = /*#__PURE__*/ asks_(FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromReaderK = /*#__PURE__*/ fromReaderK_(FromReader); +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderK = tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderKW = tapReader; +/** + * Alias of `tapReaderEither`. + * + * Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderEitherKW = tapReaderEither; +/** + * Alias of `tapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderEitherK = tapReaderEither; +/** + * Alias of `tapTaskEither`. + * + * Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstTaskEitherKW = tapTaskEither; +/** + * Alias of `tapTaskEither`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstTaskEitherK = tapTaskEither; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromReaderTaskK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return rightReaderTask(f.apply(void 0, a)); + }; +}; +/** + * Alias of `tapReaderTask`. + * + * Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderTaskKW = tapReaderTask; +/** + * Alias of `tapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderTaskK = tapReaderTask; +/** + * @category lifting + * @since 2.13.0 + */ +export var fromReaderIOK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return rightReaderIO(f.apply(void 0, a)); + }; +}; +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstReaderIOKW = tapReaderIO; +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainFirstReaderIOK = tapReaderIO; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var fromOptionK = /*#__PURE__*/ fromOptionK_(FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainOptionK = +/*#__PURE__*/ chainOptionK_(FromEither, Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export var chainOptionKW = chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: FromEither.fromEither +}; +/** + * @category lifting + * @since 2.15.0 + */ +export var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +export var liftOption = /*#__PURE__*/ _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: fromTask +}; +/** @internal */ +var _FromReader = { + fromReader: fromReader +}; +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapEither = /*#__PURE__*/ _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTaskEither = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, fromTaskEitherK(f)); }); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReaderTask = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, fromReaderTaskK(f)); }); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = /*#__PURE__*/ _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTask = /*#__PURE__*/ _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReader = /*#__PURE__*/ _.flatMapReader(_FromReader, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReaderIO = /*#__PURE__*/ dual(2, function (self, f) { + return flatMap(self, fromReaderIOK(f)); +}); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIOEither = /*#__PURE__*/ dual(2, function (self, f) { + return flatMap(self, fromIOEitherK(f)); +}); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReaderEither = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, fromReaderEitherK(f)); }); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainEitherK = flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export var chainEitherKW = flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherKW = tapEither; +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export var chainTaskEitherKW = flatMapTaskEither; +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainTaskEitherK = flatMapTaskEither; +/** + * Alias of `flatMapReaderTask`. + * + * Less strict version of [`chainReaderTaskK`](#chainreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderTaskKW = flatMapReaderTask; +/** + * Alias of `flatMapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderTaskK = flatMapReaderTask; +/** + * @category lifting + * @since 2.0.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +export var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export var filterOrElseW = filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromTaskK = /*#__PURE__*/ fromTaskK_(FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainTaskK = flatMapTask; +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export var chainFirstTaskK = tapTask; +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderK = flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderKW = flatMapReader; +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export var chainReaderIOKW = flatMapReaderIO; +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export var chainReaderIOK = flatMapReaderIO; +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export var chainIOEitherKW = flatMapIOEither; +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainIOEitherK = flatMapIOEither; +/** + * Alias of `flatMapReaderEither`. + * + * Less strict version of [`chainReaderEitherK`](#chainreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderEitherKW = flatMapReaderEither; +/** + * Alias of `flatMapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderEitherK = flatMapReaderEither; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.4 + */ +export function bracket(acquire, use, release) { + return bracketW(acquire, use, release); +} +/** + * Less strict version of [`bracket`](#bracket). + * + * @since 2.12.0 + */ +export function bracketW(acquire, use, release) { + return function (r) { + return TE.bracketW(acquire(r), function (a) { return use(a)(r); }, function (a, e) { return release(a, e)(r); }); + }; +} +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(TE.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(TE.traverseReadonlyNonEmptyArrayWithIndexSeq(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { + return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = /*#__PURE__*/ traverseArray(identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArray = function (f) { + return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceSeqArray = /*#__PURE__*/ traverseSeqArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export var chainFirstW = tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirst = tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirstW = tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEither` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var readerTaskEither = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + alt: _alt, + bimap: mapBoth, + mapLeft: mapError, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEitherSeq` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var readerTaskEitherSeq = { + URI: URI, + map: _map, + of: of, + ap: _apSeq, + chain: flatMap, + alt: _alt, + bimap: mapBoth, + mapLeft: mapError, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplySemigroup = +/*#__PURE__*/ getApplySemigroup_(ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplyMonoid = +/*#__PURE__*/ getApplicativeMonoid(ApplicativeSeq); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = function (S) { + return getApplySemigroup_(RT.ApplySeq)(E.getSemigroup(S)); +}; +/** + * Use [`getApplicativeReaderTaskValidation`](#getapplicativereadertaskvalidation) and [`getAltReaderTaskValidation`](#getaltreadertaskvalidation) instead. + * + * @category instances + * @since 2.3.0 + * @deprecated + */ +export function getReaderTaskValidation(SE) { + var applicativeReaderTaskValidation = getApplicativeReaderTaskValidation(T.ApplicativePar, SE); + var altReaderTaskValidation = getAltReaderTaskValidation(SE); + return { + URI: URI, + _E: undefined, + map: _map, + of: of, + chain: flatMap, + bimap: mapBoth, + mapLeft: mapError, + ap: applicativeReaderTaskValidation.ap, + alt: altReaderTaskValidation.alt, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError + }; +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +export function run(ma, r) { + return ma(r)(); +} diff --git a/node_modules/fp-ts/es6/ReadonlyArray.d.ts b/node_modules/fp-ts/es6/ReadonlyArray.d.ts new file mode 100644 index 0000000..8eff497 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyArray.d.ts @@ -0,0 +1,1716 @@ +/** + * @since 2.5.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { ChainRec1 } from './ChainRec' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Extend1 } from './Extend' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { FromEither1 } from './FromEither' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Magma } from './Magma' +import { Monad1 } from './Monad' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import * as RNEA from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import { Zero1 } from './Zero' +import ReadonlyNonEmptyArray = RNEA.ReadonlyNonEmptyArray +/** + * Test whether a `ReadonlyArray` is empty. + * + * @example + * import { isEmpty } from 'fp-ts/ReadonlyArray' + * + * assert.strictEqual(isEmpty([]), true) + * + * @category refinements + * @since 2.5.0 + */ +export declare const isEmpty: <A>(as: ReadonlyArray<A>) => as is readonly [] +/** + * Test whether a `ReadonlyArray` is non empty. + * + * @category refinements + * @since 2.5.0 + */ +export declare const isNonEmpty: <A>(as: ReadonlyArray<A>) => as is ReadonlyNonEmptyArray<A> +/** + * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const prepend: <A>(head: A) => (tail: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Less strict version of [`prepend`](#prepend). + * + * @since 2.11.0 + */ +export declare const prependW: <B>(head: B) => <A>(tail: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const append: <A>(end: A) => (init: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Less strict version of [`append`](#append). + * + * @since 2.11.0 + */ +export declare const appendW: <B>(end: B) => <A>(init: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyArray' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.5.0 + */ +export declare const makeBy: <A>(n: number, f: (i: number) => A) => ReadonlyArray<A> +/** + * Create a `ReadonlyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.5.0 + */ +export declare const replicate: <A>(n: number, a: A) => ReadonlyArray<A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare function fromPredicate<A, B extends A>(refinement: Refinement<A, B>): (a: A) => ReadonlyArray<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): <B extends A>(b: B) => ReadonlyArray<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): (a: A) => ReadonlyArray<A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => ReadonlyArray<A> +/** + * Transforms an `Either` to a `ReadonlyArray`. + * + * @category conversions + * @since 2.11.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => ReadonlyArray<A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (as: ReadonlyNonEmptyArray<A>) => C +) => (as: ReadonlyArray<A>) => B | C +/** + * @category pattern matching + * @since 2.11.0 + */ +export declare const match: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (as: ReadonlyNonEmptyArray<A>) => B +) => (as: ReadonlyArray<A>) => B +/** + * Less strict version of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeftW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: ReadonlyArray<A>) => C +) => (as: ReadonlyArray<A>) => B | C +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/ReadonlyArray' + * + * const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchLeft: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: ReadonlyArray<A>) => B +) => (as: ReadonlyArray<A>) => B +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.5.0 + */ +export declare const foldLeft: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: ReadonlyArray<A>) => B +) => (as: ReadonlyArray<A>) => B +/** + * Less strict version of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRightW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: ReadonlyArray<A>, last: A) => C +) => (as: ReadonlyArray<A>) => B | C +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchRight: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: ReadonlyArray<A>, last: A) => B +) => (as: ReadonlyArray<A>) => B +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.5.0 + */ +export declare const foldRight: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: ReadonlyArray<A>, last: A) => B +) => (as: ReadonlyArray<A>) => B +/** + * @category sequencing + * @since 2.7.0 + */ +export declare const chainWithIndex: <A, B>( + f: (i: number, a: A) => ReadonlyArray<B> +) => (as: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * Same as `reduce` but it carries over the intermediate steps. + * + * @example + * import { scanLeft } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.5.0 + */ +export declare const scanLeft: <A, B>(b: B, f: (b: B, a: A) => B) => (as: ReadonlyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.5.0 + */ +export declare const scanRight: <A, B>(b: B, f: (a: A, b: B) => B) => (as: ReadonlyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * Calculate the number of elements in a `ReadonlyArray`. + * + * @since 2.10.0 + */ +export declare const size: <A>(as: ReadonlyArray<A>) => number +/** + * Test whether an array contains a particular index + * + * @since 2.5.0 + */ +export declare const isOutOfBound: <A>(i: number, as: ReadonlyArray<A>) => boolean +/** + * This function provides a safe way to read a value at a particular index from an array + * + * @example + * import { lookup } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2)) + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none) + * + * @since 2.5.0 + */ +export declare function lookup(i: number): <A>(as: ReadonlyArray<A>) => Option<A> +export declare function lookup<A>(i: number, as: ReadonlyArray<A>): Option<A> +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.5.0 + */ +export declare const head: <A>(as: ReadonlyArray<A>) => Option<A> +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.5.0 + */ +export declare const last: <A>(as: ReadonlyArray<A>) => Option<A> +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.5.0 + */ +export declare const tail: <A>(as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.5.0 + */ +export declare const init: <A>(as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeLeft(4)), input) + * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input) + * + * @since 2.5.0 + */ +export declare const takeLeft: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeRight(4)), input) + * assert.strictEqual(pipe(input, RA.takeRight(-1)), input) + * + * @since 2.5.0 + */ +export declare const takeRight: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Calculate the longest initial subarray for which all element satisfy the specified predicate, creating a new array + * + * @example + * import { takeLeftWhile } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(takeLeftWhile((n: number) => n % 2 === 0)([2, 4, 3, 6]), [2, 4]) + * + * @since 2.5.0 + */ +export declare function takeLeftWhile<A, B extends A>( + refinement: Refinement<A, B> +): (as: ReadonlyArray<A>) => ReadonlyArray<B> +export declare function takeLeftWhile<A>( + predicate: Predicate<A> +): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> +export declare function takeLeftWhile<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export interface Spanned<I, R> { + readonly init: ReadonlyArray<I> + readonly rest: ReadonlyArray<R> +} +/** + * Split an array into two parts: + * 1. the longest initial subarray for which all elements satisfy the specified predicate + * 2. the remaining elements + * + * @example + * import { spanLeft } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(spanLeft((n: number) => n % 2 === 1)([1, 3, 2, 4, 5]), { init: [1, 3], rest: [2, 4, 5] }) + * + * @since 2.5.0 + */ +export declare function spanLeft<A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => Spanned<B, A> +export declare function spanLeft<A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Spanned<B, B> +export declare function spanLeft<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Spanned<A, A> +/** + * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3]) + * assert.strictEqual(pipe(input, RA.dropLeft(0)), input) + * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input) + * + * @since 2.5.0 + */ +export declare const dropLeft: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1]) + * assert.strictEqual(pipe(input, RA.dropRight(0)), input) + * assert.strictEqual(pipe(input, RA.dropRight(-1)), input) + * + * @since 2.5.0 + */ +export declare const dropRight: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Remove the longest initial subarray for which all element satisfy the specified predicate, creating a new array + * + * @example + * import { dropLeftWhile } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(dropLeftWhile((n: number) => n % 2 === 1)([1, 3, 2, 4, 5]), [2, 4, 5]) + * + * @since 2.5.0 + */ +export declare function dropLeftWhile<A, B extends A>( + refinement: Refinement<A, B> +): (as: ReadonlyArray<A>) => ReadonlyArray<B> +export declare function dropLeftWhile<A>( + predicate: Predicate<A> +): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> +export declare function dropLeftWhile<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Find the first index for which a predicate holds + * + * @example + * import { findIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.5.0 + */ +export declare const findIndex: <A>(predicate: Predicate<A>) => (as: ReadonlyArray<A>) => Option<number> +/** + * Find the first element which satisfies a predicate (or a refinement) function + * + * @example + * import { findFirst } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findFirst((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 1 })) + * + * @since 2.5.0 + */ +export declare function findFirst<A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Option<A> +/** + * Find the first element returned by an option based selector function + * + * @example + * import { findFirstMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the first person that has an age + * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary')) + * + * @since 2.5.0 + */ +export declare const findFirstMap: <A, B>(f: (a: A) => Option<B>) => (as: ReadonlyArray<A>) => Option<B> +/** + * Find the last element which satisfies a predicate function + * + * @example + * import { findLast } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findLast((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 2 })) + * + * @since 2.5.0 + */ +export declare function findLast<A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Option<A> +/** + * Find the last element returned by an option based selector function + * + * @example + * import { findLastMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the last person that has an age + * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey')) + * + * @since 2.5.0 + */ +export declare const findLastMap: <A, B>(f: (a: A) => Option<B>) => (as: ReadonlyArray<A>) => Option<B> +/** + * Returns the index of the last element of the list which matches the predicate + * + * @example + * import { findLastIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: ReadonlyArray<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * + * @since 2.5.0 + */ +export declare const findLastIndex: <A>(predicate: Predicate<A>) => (as: ReadonlyArray<A>) => Option<number> +/** + * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { insertAt } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.5.0 + */ +export declare const insertAt: <A>(i: number, a: A) => (as: ReadonlyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.5.0 + */ +export declare const updateAt: <A>(i: number, a: A) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { deleteAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.5.0 + */ +export declare const deleteAt: (i: number) => <A>(as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.5.0 + */ +export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.5.0 + */ +export declare const reverse: <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order + * + * @example + * import { rights } from 'fp-ts/ReadonlyArray' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.5.0 + */ +export declare const rights: <E, A>(as: ReadonlyArray<Either<E, A>>) => ReadonlyArray<A> +/** + * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order + * + * @example + * import { lefts } from 'fp-ts/ReadonlyArray' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.5.0 + */ +export declare const lefts: <E, A>(as: ReadonlyArray<Either<E, A>>) => ReadonlyArray<E> +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.5.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.5.0 + */ +export declare const zipWith: <A, B, C>( + fa: ReadonlyArray<A>, + fb: ReadonlyArray<B>, + f: (a: A, b: B) => C +) => ReadonlyArray<C> +/** + * Takes two arrays and returns an array of corresponding pairs. If one input array is short, excess elements of the + * longer array are discarded + * + * @example + * import { zip } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], zip(['a', 'b', 'c', 'd'])), [[1, 'a'], [2, 'b'], [3, 'c']]) + * + * @since 2.5.0 + */ +export declare function zip<B>(bs: ReadonlyArray<B>): <A>(as: ReadonlyArray<A>) => ReadonlyArray<readonly [A, B]> +export declare function zip<A, B>(as: ReadonlyArray<A>, bs: ReadonlyArray<B>): ReadonlyArray<readonly [A, B]> +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.5.0 + */ +export declare const unzip: <A, B>(as: ReadonlyArray<readonly [A, B]>) => readonly [ReadonlyArray<A>, ReadonlyArray<B>] +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Rotate a `ReadonlyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.5.0 + */ +export declare const rotate: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Test if a value is a member of an array. Takes a `Eq<A>` as a single + * argument which returns the function to use to search for a value of type `A` in + * an array of type `ReadonlyArray<A>`. + * + * @example + * import { elem } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true) + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false) + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (as: ReadonlyArray<A>) => boolean + (a: A, as: ReadonlyArray<A>): boolean +} +/** + * Remove duplicates from an array, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.5.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/ReadonlyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.5.0 + */ +export declare const sortBy: <B>(ords: ReadonlyArray<Ord<B>>) => <A extends B>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for "chopping" up the input + * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a + * value and the tail of the `ReadonlyArray`. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>>) => { + * return RA.chop(as => { + * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.5.0 + */ +export declare const chop: <A, B>( + f: (as: ReadonlyNonEmptyArray<A>) => readonly [B, ReadonlyArray<A>] +) => (as: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.5.0 + */ +export declare const splitAt: (n: number) => <A>(as: ReadonlyArray<A>) => readonly [ReadonlyArray<A>, ReadonlyArray<A>] +/** + * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that: + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `as`. + * + * @example + * import { chunksOf } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.5.0 + */ +export declare const chunksOf: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyNonEmptyArray<A>> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => ReadonlyArray<B> +/** + * `ReadonlyArray` comprehension. + * + * ``` + * [ f(x, y, ...) | x ← xs, y ← ys, ..., g(x, y, ...) ] + * ``` + * + * @example + * import { comprehension } from 'fp-ts/ReadonlyArray' + * import { tuple } from 'fp-ts/function' + * + * assert.deepStrictEqual(comprehension([[1, 2, 3], ['a', 'b']], tuple, (a, b) => (a + b.length) % 2 === 0), [ + * [1, 'a'], + * [1, 'b'], + * [3, 'a'], + * [3, 'b'] + * ]) + * + * @since 2.5.0 + */ +export declare function comprehension<A, B, C, D, R>( + input: readonly [ReadonlyArray<A>, ReadonlyArray<B>, ReadonlyArray<C>, ReadonlyArray<D>], + f: (a: A, b: B, c: C, d: D) => R, + g?: (a: A, b: B, c: C, d: D) => boolean +): ReadonlyArray<R> +export declare function comprehension<A, B, C, R>( + input: readonly [ReadonlyArray<A>, ReadonlyArray<B>, ReadonlyArray<C>], + f: (a: A, b: B, c: C) => R, + g?: (a: A, b: B, c: C) => boolean +): ReadonlyArray<R> +export declare function comprehension<A, B, R>( + input: readonly [ReadonlyArray<A>, ReadonlyArray<B>], + f: (a: A, b: B) => R, + g?: (a: A, b: B) => boolean +): ReadonlyArray<R> +export declare function comprehension<A, R>( + input: readonly [ReadonlyArray<A>], + f: (a: A) => R, + g?: (a: A) => boolean +): ReadonlyArray<R> +/** + * @since 2.11.0 + */ +export declare const concatW: <B>(second: ReadonlyArray<B>) => <A>(first: ReadonlyArray<A>) => ReadonlyArray<A | B> +/** + * @since 2.11.0 + */ +export declare const concat: <A>(second: ReadonlyArray<A>) => (first: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Creates an array of unique values, in order, from all given arrays using a `Eq` for equality comparisons + * + * @example + * import { union } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], union(N.Eq)([2, 3])), [1, 2, 3]) + * + * @since 2.5.0 + */ +export declare function union<A>(E: Eq<A>): { + (xs: ReadonlyArray<A>): (ys: ReadonlyArray<A>) => ReadonlyArray<A> + (xs: ReadonlyArray<A>, ys: ReadonlyArray<A>): ReadonlyArray<A> +} +/** + * Creates an array of unique values that are included in all given arrays using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { intersection } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], intersection(N.Eq)([2, 3])), [2]) + * + * @since 2.5.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (xs: ReadonlyArray<A>): (ys: ReadonlyArray<A>) => ReadonlyArray<A> + (xs: ReadonlyArray<A>, ys: ReadonlyArray<A>): ReadonlyArray<A> +} +/** + * Creates an array of array values not included in the other given array using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { difference } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], difference(N.Eq)([2, 3])), [1]) + * + * @since 2.5.0 + */ +export declare function difference<A>(E: Eq<A>): { + (xs: ReadonlyArray<A>): (ys: ReadonlyArray<A>) => ReadonlyArray<A> + (xs: ReadonlyArray<A>, ys: ReadonlyArray<A>): ReadonlyArray<A> +} +/** + * @category constructors + * @since 2.5.0 + */ +export declare const of: <A>(a: A) => ReadonlyArray<A> +/** + * @since 2.7.0 + */ +export declare const zero: <A>() => ReadonlyArray<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<ReadonlyArray<B>>) => <A>(fa: ReadonlyArray<A>) => ReadonlyArray<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyArray` concatenates the inputs into a single array. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.5.0 + */ +export declare const alt: <A>(that: LazyArg<ReadonlyArray<A>>) => (fa: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare const ap: <A>(fa: ReadonlyArray<A>) => <B>(fab: ReadonlyArray<(a: A) => B>) => ReadonlyArray<B> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => ReadonlyArray<B>): (ma: ReadonlyArray<A>) => ReadonlyArray<B> + <A, B>(ma: ReadonlyArray<A>, f: (a: A, i: number) => ReadonlyArray<B>): ReadonlyArray<B> +} +/** + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: ReadonlyArray<ReadonlyArray<A>>) => ReadonlyArray<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category mapping + * @since 2.5.0 + */ +export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const separate: <A, B>(fa: ReadonlyArray<Either<A, B>>) => Separated<ReadonlyArray<A>, ReadonlyArray<B>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => ReadonlyArray<B> + <A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> + <A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterMapWithIndex: <A, B>( + f: (i: number, a: A) => Option<B> +) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const compact: <A>(fa: ReadonlyArray<Option<A>>) => ReadonlyArray<A> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): ( + as: ReadonlyArray<A> + ) => Separated<ReadonlyArray<A>, ReadonlyArray<B>> + <A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Separated<ReadonlyArray<B>, ReadonlyArray<B>> + <A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Separated<ReadonlyArray<A>, ReadonlyArray<A>> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): ( + as: ReadonlyArray<A> + ) => Separated<ReadonlyArray<A>, ReadonlyArray<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>( + bs: ReadonlyArray<B> + ) => Separated<ReadonlyArray<B>, ReadonlyArray<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): ( + as: ReadonlyArray<A> + ) => Separated<ReadonlyArray<A>, ReadonlyArray<A>> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: ReadonlyArray<A>) => Separated<ReadonlyArray<B>, ReadonlyArray<C>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMapWithIndex: <A, B, C>( + f: (i: number, a: A) => Either<B, C> +) => (fa: ReadonlyArray<A>) => Separated<ReadonlyArray<B>, ReadonlyArray<C>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): (as: ReadonlyArray<A>) => ReadonlyArray<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +} +/** + * @since 2.5.0 + */ +export declare const extend: <A, B>(f: (fa: ReadonlyArray<A>) => B) => (wa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @since 2.5.0 + */ +export declare const duplicate: <A>(wa: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>> +/** + * @category folding + * @since 2.5.0 + */ +export declare const foldMapWithIndex: <M>( + M: Monoid<M> +) => <A>(f: (i: number, a: A) => M) => (fa: ReadonlyArray<A>) => M +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: ReadonlyArray<A>) => M +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * @since 2.6.6 + */ +export declare const unfold: <A, B>(b: B, f: (b: B) => Option<readonly [A, B]>) => ReadonlyArray<A> +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyArray' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlyArray<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<ReadonlyArray<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<ReadonlyArray<A>> +/** + * Returns a `Monoid` for `ReadonlyArray<A>`. + * + * @example + * import { getMonoid } from 'fp-ts/ReadonlyArray' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.5.0 + */ +export declare const getMonoid: <A = never>() => Monoid<ReadonlyArray<A>> +/** + * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/ReadonlyArray' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.5.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<ReadonlyArray<A>> +/** + * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * + * @category instances + * @since 2.5.0 + */ +export declare const getOrd: <A>(O: Ord<A>) => Ord<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<ReadonlyArray<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'ReadonlyArray', (a: A) => B>) => import('./HKT').Kind<'ReadonlyArray', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: readonly B[] +) => <A>(first: import('./HKT').Kind<'ReadonlyArray', A>) => import('./HKT').Kind<'ReadonlyArray', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: readonly B[] +) => <A>(first: import('./HKT').Kind<'ReadonlyArray', A>) => import('./HKT').Kind<'ReadonlyArray', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => ReadonlyArray<B>) => (first: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Unfoldable: Unfoldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'ReadonlyArray', void> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecDepthFirst: <A, B>(f: (a: A) => ReadonlyArray<Either<A, B>>) => (a: A) => ReadonlyArray<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecDepthFirst: ChainRec1<URI> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecBreadthFirst: <A, B>( + f: (a: A) => ReadonlyArray<Either<A, B>> +) => (a: A) => ReadonlyArray<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecBreadthFirst: ChainRec1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Witherable: Witherable1<URI> +/** + * Filter values inside a context. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as T from 'fp-ts/Task' + * + * const filterE = RA.filterE(T.ApplicativePar) + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * [-1, 2, 3], + * filterE((n) => T.of(n > 0)) + * )(), + * [2, 3] + * ) + * } + * test() + * + * @since 2.11.0 + */ +export declare const filterE: import('./Witherable').FilterE1<'ReadonlyArray'> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => ReadonlyArray<B> +/** + * @category unsafe + * @since 2.5.0 + */ +export declare const unsafeInsertAt: <A>(i: number, a: A, as: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @category unsafe + * @since 2.5.0 + */ +export declare const unsafeUpdateAt: <A>(i: number, a: A, as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @category unsafe + * @since 2.5.0 + */ +export declare const unsafeDeleteAt: <A>(i: number, as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare const toArray: <A>(as: ReadonlyArray<A>) => Array<A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromArray: <A>(as: Array<A>) => ReadonlyArray<A> +/** + * An empty array + * + * @since 2.5.0 + */ +export declare const empty: ReadonlyArray<never> +/** + * Check if a predicate holds true for every array member. + * + * @example + * import { every } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const isPositive = (n: number): boolean => n > 0 + * + * assert.deepStrictEqual(pipe([1, 2, 3], every(isPositive)), true) + * assert.deepStrictEqual(pipe([1, 2, -3], every(isPositive)), false) + * + * @since 2.9.0 + */ +export declare function every<A, B extends A>( + refinement: Refinement<A, B> +): Refinement<ReadonlyArray<A>, ReadonlyArray<B>> +export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlyArray<A>> +/** + * Check if a predicate holds true for any array member. + * + * @example + * import { some } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const isPositive = (n: number): boolean => n > 0 + * + * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true) + * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false) + * + * @since 2.9.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (as: ReadonlyArray<A>) => as is ReadonlyNonEmptyArray<A> +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +export declare const exists: <A>( + predicate: Predicate<A> +) => (as: ReadonlyArray<A>) => as is RNEA.ReadonlyNonEmptyArray<A> +/** + * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(M: Monoid<A>) => (middle: A) => (as: ReadonlyArray<A>) => A +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReadonlyArray<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>( + fa: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'ReadonlyArray', B> +) => ( + ma: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: readonly B[] +) => ( + fa: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +export declare const chain: <A, B>(f: (a: A) => ReadonlyArray<B>) => (ma: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * Use `ReadonlyNonEmptyArray` module instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const range: (start: number, end: number) => ReadonlyNonEmptyArray<number> +/** + * Use [`prepend`](#prepend) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const cons: typeof RNEA.cons +/** + * Use [`append`](#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const snoc: <A>(init: ReadonlyArray<A>, end: A) => ReadonlyNonEmptyArray<A> +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray` + * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyArray: FunctorWithIndex1<URI, number> & + Monad1<URI> & + Unfoldable1<URI> & + Alternative1<URI> & + Extend1<URI> & + FilterableWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + TraversableWithIndex1<URI, number> & + Witherable1<URI> diff --git a/node_modules/fp-ts/es6/ReadonlyArray.js b/node_modules/fp-ts/es6/ReadonlyArray.js new file mode 100644 index 0000000..329a615 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyArray.js @@ -0,0 +1,2125 @@ +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import { bind as bind_, chainFirst as chainFirst_ } from './Chain'; +import { fromEquals } from './Eq'; +import { fromEitherK as fromEitherK_ } from './FromEither'; +import { dual, identity, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as N from './number'; +import { fromCompare } from './Ord'; +import * as RNEA from './ReadonlyNonEmptyArray'; +import { separated } from './Separated'; +import { filterE as filterE_, wiltDefault, witherDefault } from './Witherable'; +import { guard as guard_ } from './Zero'; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Test whether a `ReadonlyArray` is empty. + * + * @example + * import { isEmpty } from 'fp-ts/ReadonlyArray' + * + * assert.strictEqual(isEmpty([]), true) + * + * @category refinements + * @since 2.5.0 + */ +export var isEmpty = function (as) { return as.length === 0; }; +/** + * Test whether a `ReadonlyArray` is non empty. + * + * @category refinements + * @since 2.5.0 + */ +export var isNonEmpty = RNEA.isNonEmpty; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export var prepend = RNEA.prepend; +/** + * Less strict version of [`prepend`](#prepend). + * + * @since 2.11.0 + */ +export var prependW = RNEA.prependW; +/** + * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export var append = RNEA.append; +/** + * Less strict version of [`append`](#append). + * + * @since 2.11.0 + */ +export var appendW = RNEA.appendW; +/** + * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyArray' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.5.0 + */ +export var makeBy = function (n, f) { return (n <= 0 ? empty : RNEA.makeBy(f)(n)); }; +/** + * Create a `ReadonlyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.5.0 + */ +export var replicate = function (n, a) { return makeBy(n, function () { return a; }); }; +export function fromPredicate(predicate) { + return function (a) { return (predicate(a) ? [a] : empty); }; +} +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.11.0 + */ +export var fromOption = function (ma) { return (_.isNone(ma) ? empty : [ma.value]); }; +/** + * Transforms an `Either` to a `ReadonlyArray`. + * + * @category conversions + * @since 2.11.0 + */ +export var fromEither = function (e) { return (_.isLeft(e) ? empty : [e.right]); }; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchW = function (onEmpty, onNonEmpty) { + return function (as) { + return isNonEmpty(as) ? onNonEmpty(as) : onEmpty(); + }; +}; +/** + * @category pattern matching + * @since 2.11.0 + */ +export var match = matchW; +/** + * Less strict version of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchLeftW = function (onEmpty, onNonEmpty) { + return function (as) { + return isNonEmpty(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty(); + }; +}; +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/ReadonlyArray' + * + * const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchLeft = matchLeftW; +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.5.0 + */ +export var foldLeft = matchLeft; +/** + * Less strict version of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchRightW = function (onEmpty, onNonEmpty) { + return function (as) { + return isNonEmpty(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty(); + }; +}; +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchRight = matchRightW; +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.5.0 + */ +export var foldRight = matchRight; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category sequencing + * @since 2.7.0 + */ +export var chainWithIndex = function (f) { + return function (as) { + if (isEmpty(as)) { + return empty; + } + var out = []; + for (var i = 0; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +/** + * Same as `reduce` but it carries over the intermediate steps. + * + * @example + * import { scanLeft } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.5.0 + */ +export var scanLeft = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[0] = b; + for (var i = 0; i < len; i++) { + out[i + 1] = f(out[i], as[i]); + } + return out; + }; +}; +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.5.0 + */ +export var scanRight = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[len] = b; + for (var i = len - 1; i >= 0; i--) { + out[i] = f(as[i], out[i + 1]); + } + return out; + }; +}; +/** + * Calculate the number of elements in a `ReadonlyArray`. + * + * @since 2.10.0 + */ +export var size = function (as) { return as.length; }; +/** + * Test whether an array contains a particular index + * + * @since 2.5.0 + */ +export var isOutOfBound = RNEA.isOutOfBound; +export function lookup(i, as) { + return as === undefined ? function (as) { return lookup(i, as); } : isOutOfBound(i, as) ? _.none : _.some(as[i]); +} +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.5.0 + */ +export var head = function (as) { return (isNonEmpty(as) ? _.some(RNEA.head(as)) : _.none); }; +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.5.0 + */ +export var last = function (as) { return (isNonEmpty(as) ? _.some(RNEA.last(as)) : _.none); }; +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.5.0 + */ +export var tail = function (as) { + return isNonEmpty(as) ? _.some(RNEA.tail(as)) : _.none; +}; +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.5.0 + */ +export var init = function (as) { + return isNonEmpty(as) ? _.some(RNEA.init(as)) : _.none; +}; +/** + * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeLeft(4)), input) + * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input) + * + * @since 2.5.0 + */ +export var takeLeft = function (n) { + return function (as) { + return isOutOfBound(n, as) ? as : n === 0 ? empty : as.slice(0, n); + }; +}; +/** + * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeRight(4)), input) + * assert.strictEqual(pipe(input, RA.takeRight(-1)), input) + * + * @since 2.5.0 + */ +export var takeRight = function (n) { + return function (as) { + return isOutOfBound(n, as) ? as : n === 0 ? empty : as.slice(-n); + }; +}; +export function takeLeftWhile(predicate) { + return function (as) { + var out = []; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + if (!predicate(a)) { + break; + } + out.push(a); + } + var len = out.length; + return len === as.length ? as : len === 0 ? empty : out; + }; +} +var spanLeftIndex = function (as, predicate) { + var l = as.length; + var i = 0; + for (; i < l; i++) { + if (!predicate(as[i])) { + break; + } + } + return i; +}; +export function spanLeft(predicate) { + return function (as) { + var _a = splitAt(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1]; + return { init: init, rest: rest }; + }; +} +/** + * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3]) + * assert.strictEqual(pipe(input, RA.dropLeft(0)), input) + * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input) + * + * @since 2.5.0 + */ +export var dropLeft = function (n) { + return function (as) { + return n <= 0 || isEmpty(as) ? as : n >= as.length ? empty : as.slice(n, as.length); + }; +}; +/** + * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1]) + * assert.strictEqual(pipe(input, RA.dropRight(0)), input) + * assert.strictEqual(pipe(input, RA.dropRight(-1)), input) + * + * @since 2.5.0 + */ +export var dropRight = function (n) { + return function (as) { + return n <= 0 || isEmpty(as) ? as : n >= as.length ? empty : as.slice(0, as.length - n); + }; +}; +export function dropLeftWhile(predicate) { + return function (as) { + var i = spanLeftIndex(as, predicate); + return i === 0 ? as : i === as.length ? empty : as.slice(i); + }; +} +/** + * Find the first index for which a predicate holds + * + * @example + * import { findIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.5.0 + */ +export var findIndex = function (predicate) { + return function (as) { + for (var i = 0; i < as.length; i++) { + if (predicate(as[i])) { + return _.some(i); + } + } + return _.none; + }; +}; +export function findFirst(predicate) { + return function (as) { + for (var i = 0; i < as.length; i++) { + if (predicate(as[i])) { + return _.some(as[i]); + } + } + return _.none; + }; +} +/** + * Find the first element returned by an option based selector function + * + * @example + * import { findFirstMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the first person that has an age + * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary')) + * + * @since 2.5.0 + */ +export var findFirstMap = function (f) { + return function (as) { + for (var i = 0; i < as.length; i++) { + var out = f(as[i]); + if (_.isSome(out)) { + return out; + } + } + return _.none; + }; +}; +export function findLast(predicate) { + return function (as) { + for (var i = as.length - 1; i >= 0; i--) { + if (predicate(as[i])) { + return _.some(as[i]); + } + } + return _.none; + }; +} +/** + * Find the last element returned by an option based selector function + * + * @example + * import { findLastMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the last person that has an age + * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey')) + * + * @since 2.5.0 + */ +export var findLastMap = function (f) { + return function (as) { + for (var i = as.length - 1; i >= 0; i--) { + var out = f(as[i]); + if (_.isSome(out)) { + return out; + } + } + return _.none; + }; +}; +/** + * Returns the index of the last element of the list which matches the predicate + * + * @example + * import { findLastIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: ReadonlyArray<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * + * @since 2.5.0 + */ +export var findLastIndex = function (predicate) { + return function (as) { + for (var i = as.length - 1; i >= 0; i--) { + if (predicate(as[i])) { + return _.some(i); + } + } + return _.none; + }; +}; +/** + * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { insertAt } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.5.0 + */ +export var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as)); + }; +}; +/** + * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.5.0 + */ +export var updateAt = function (i, a) { + return modifyAt(i, function () { return a; }); +}; +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { deleteAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.5.0 + */ +export var deleteAt = function (i) { + return function (as) { + return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as)); + }; +}; +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.5.0 + */ +export var modifyAt = function (i, f) { + return function (as) { + return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as)); + }; +}; +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.5.0 + */ +export var reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); }; +/** + * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order + * + * @example + * import { rights } from 'fp-ts/ReadonlyArray' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.5.0 + */ +export var rights = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Right') { + r.push(a.right); + } + } + return r; +}; +/** + * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order + * + * @example + * import { lefts } from 'fp-ts/ReadonlyArray' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.5.0 + */ +export var lefts = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Left') { + r.push(a.left); + } + } + return r; +}; +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.5.0 + */ +export var sort = function (O) { + return function (as) { + return as.length <= 1 ? as : as.slice().sort(O.compare); + }; +}; +// TODO: curry and make data-last in v3 +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.5.0 + */ +export var zipWith = function (fa, fb, f) { + var fc = []; + var len = Math.min(fa.length, fb.length); + for (var i = 0; i < len; i++) { + fc[i] = f(fa[i], fb[i]); + } + return fc; +}; +export function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return zipWith(as, bs, function (a, b) { return [a, b]; }); +} +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.5.0 + */ +export var unzip = function (as) { + var fa = []; + var fb = []; + for (var i = 0; i < as.length; i++) { + fa[i] = as[i][0]; + fb[i] = as[i][1]; + } + return [fa, fb]; +}; +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export var prependAll = function (middle) { + var f = RNEA.prependAll(middle); + return function (as) { return (isNonEmpty(as) ? f(as) : as); }; +}; +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export var intersperse = function (middle) { + var f = RNEA.intersperse(middle); + return function (as) { return (isNonEmpty(as) ? f(as) : as); }; +}; +/** + * Rotate a `ReadonlyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.5.0 + */ +export var rotate = function (n) { + var f = RNEA.rotate(n); + return function (as) { return (isNonEmpty(as) ? f(as) : as); }; +}; +export function elem(E) { + return function (a, as) { + if (as === undefined) { + var elemE_1 = elem(E); + return function (as) { return elemE_1(a, as); }; + } + var predicate = function (element) { return E.equals(element, a); }; + var i = 0; + for (; i < as.length; i++) { + if (predicate(as[i])) { + return true; + } + } + return false; + }; +} +/** + * Remove duplicates from an array, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.5.0 + */ +export var uniq = function (E) { + var f = RNEA.uniq(E); + return function (as) { return (isNonEmpty(as) ? f(as) : as); }; +}; +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/ReadonlyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.5.0 + */ +export var sortBy = function (ords) { + var f = RNEA.sortBy(ords); + return function (as) { return (isNonEmpty(as) ? f(as) : as); }; +}; +/** + * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for "chopping" up the input + * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a + * value and the tail of the `ReadonlyArray`. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>>) => { + * return RA.chop(as => { + * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.5.0 + */ +export var chop = function (f) { + var g = RNEA.chop(f); + return function (as) { return (isNonEmpty(as) ? g(as) : empty); }; +}; +/** + * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.5.0 + */ +export var splitAt = function (n) { + return function (as) { + return n >= 1 && isNonEmpty(as) ? RNEA.splitAt(n)(as) : isEmpty(as) ? [as, empty] : [empty, as]; + }; +}; +/** + * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that: + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `as`. + * + * @example + * import { chunksOf } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.5.0 + */ +export var chunksOf = function (n) { + var f = RNEA.chunksOf(n); + return function (as) { return (isNonEmpty(as) ? f(as) : empty); }; +}; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromOptionK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return fromOption(f.apply(void 0, a)); + }; +}; +export function comprehension(input, f, g) { + if (g === void 0) { g = function () { return true; }; } + var go = function (scope, input) { + return isNonEmpty(input) + ? flatMap(RNEA.head(input), function (a) { return go(pipe(scope, append(a)), RNEA.tail(input)); }) + : g.apply(void 0, scope) ? [f.apply(void 0, scope)] + : empty; + }; + return go(empty, input); +} +/** + * @since 2.11.0 + */ +export var concatW = function (second) { + return function (first) { + return isEmpty(first) ? second : isEmpty(second) ? first : first.concat(second); + }; +}; +/** + * @since 2.11.0 + */ +export var concat = concatW; +export function union(E) { + var unionE = RNEA.union(E); + return function (first, second) { + if (second === undefined) { + var unionE_1 = union(E); + return function (second) { return unionE_1(second, first); }; + } + return isNonEmpty(first) && isNonEmpty(second) ? unionE(second)(first) : isNonEmpty(first) ? first : second; + }; +} +export function intersection(E) { + var elemE = elem(E); + return function (xs, ys) { + if (ys === undefined) { + var intersectionE_1 = intersection(E); + return function (ys) { return intersectionE_1(ys, xs); }; + } + return xs.filter(function (a) { return elemE(a, ys); }); + }; +} +export function difference(E) { + var elemE = elem(E); + return function (xs, ys) { + if (ys === undefined) { + var differenceE_1 = difference(E); + return function (ys) { return differenceE_1(ys, xs); }; + } + return xs.filter(function (a) { return !elemE(a, ys); }); + }; +} +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _filter = function (fa, predicate) { + return pipe(fa, filter(predicate)); +}; +var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); }; +var _partition = function (fa, predicate) { + return pipe(fa, partition(predicate)); +}; +var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); }; +var _partitionWithIndex = function (fa, predicateWithIndex) { return pipe(fa, partitionWithIndex(predicateWithIndex)); }; +var _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); }; +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +var _reduceWithIndex = function (fa, b, f) { + return pipe(fa, reduceWithIndex(b, f)); +}; +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = foldMapWithIndex(M); + return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); }; +}; +var _reduceRightWithIndex = function (fa, b, f) { + return pipe(fa, reduceRightWithIndex(b, f)); +}; +var _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); }; +var _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); }; +var _extend = function (fa, f) { return pipe(fa, extend(f)); }; +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); }; +}; +/** @internal */ +export var _chainRecDepthFirst = function (a, f) { return pipe(a, chainRecDepthFirst(f)); }; +/** @internal */ +export var _chainRecBreadthFirst = function (a, f) { return pipe(a, chainRecBreadthFirst(f)); }; +/** + * @category constructors + * @since 2.5.0 + */ +export var of = RNEA.of; +/** + * @since 2.7.0 + */ +export var zero = function () { return empty; }; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function (that) { + return function (fa) { + return fa.concat(that()); + }; +}; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyArray` concatenates the inputs into a single array. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.5.0 + */ +export var alt = altW; +/** + * @since 2.5.0 + */ +export var ap = function (fa) { + return flatMap(function (f) { return pipe(fa, map(f)); }); +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); })); +}); +/** + * @category sequencing + * @since 2.5.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export var map = function (f) { return function (fa) { + return fa.map(function (a) { return f(a); }); +}; }; +/** + * @category mapping + * @since 2.5.0 + */ +export var mapWithIndex = function (f) { return function (fa) { + return fa.map(function (a, i) { return f(i, a); }); +}; }; +/** + * @category filtering + * @since 2.5.0 + */ +export var separate = function (fa) { + var left = []; + var right = []; + for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) { + var e = fa_1[_i]; + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return separated(left, right); +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var filter = function (predicate) { + return function (as) { + return as.filter(predicate); + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var filterMapWithIndex = function (f) { + return function (fa) { + var out = []; + for (var i = 0; i < fa.length; i++) { + var optionB = f(i, fa[i]); + if (_.isSome(optionB)) { + out.push(optionB.value); + } + } + return out; + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var filterMap = function (f) { + return filterMapWithIndex(function (_, a) { return f(a); }); +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var compact = /*#__PURE__*/ filterMap(identity); +/** + * @category filtering + * @since 2.5.0 + */ +export var partition = function (predicate) { + return partitionWithIndex(function (_, a) { return predicate(a); }); +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var partitionWithIndex = function (predicateWithIndex) { + return function (as) { + var left = []; + var right = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (predicateWithIndex(i, a)) { + right.push(a); + } + else { + left.push(a); + } + } + return separated(left, right); + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var partitionMap = function (f) { + return partitionMapWithIndex(function (_, a) { return f(a); }); +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var partitionMapWithIndex = function (f) { + return function (fa) { + var left = []; + var right = []; + for (var i = 0; i < fa.length; i++) { + var e = f(i, fa[i]); + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return separated(left, right); + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var filterWithIndex = function (predicateWithIndex) { + return function (as) { + return as.filter(function (a, i) { return predicateWithIndex(i, a); }); + }; +}; +/** + * @since 2.5.0 + */ +export var extend = function (f) { return function (wa) { + return wa.map(function (_, i) { return f(wa.slice(i)); }); +}; }; +/** + * @since 2.5.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * @category folding + * @since 2.5.0 + */ +export var foldMapWithIndex = function (M) { + return function (f) { + return function (fa) { + return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty); + }; + }; +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduce = function (b, f) { + return reduceWithIndex(b, function (_, b, a) { return f(b, a); }); +}; +/** + * @category folding + * @since 2.5.0 + */ +export var foldMap = function (M) { + var foldMapWithIndexM = foldMapWithIndex(M); + return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); }; +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceWithIndex = function (b, f) { return function (fa) { + var len = fa.length; + var out = b; + for (var i = 0; i < len; i++) { + out = f(i, out, fa[i]); + } + return out; +}; }; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceRight = function (b, f) { + return reduceRightWithIndex(b, function (_, a, b) { return f(a, b); }); +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceRightWithIndex = function (b, f) { return function (fa) { + return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b); +}; }; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (ta) { + return _reduce(ta, F.of(zero()), function (fas, fa) { + return F.ap(F.map(fas, function (as) { return function (a) { return pipe(as, append(a)); }; }), fa); + }); + }; +}; +/** + * @category sequencing + * @since 2.6.3 + */ +export var traverseWithIndex = function (F) { + return function (f) { + return reduceWithIndex(F.of(zero()), function (i, fbs, a) { + return F.ap(F.map(fbs, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, a)); + }); + }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wither = function (F) { + var _witherF = _wither(F); + return function (f) { return function (fa) { return _witherF(fa, f); }; }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wilt = function (F) { + var _wiltF = _wilt(F); + return function (f) { return function (fa) { return _wiltF(fa, f); }; }; +}; +/** + * @since 2.6.6 + */ +export var unfold = function (b, f) { + var out = []; + var bb = b; + // eslint-disable-next-line no-constant-condition + while (true) { + var mt = f(bb); + if (_.isSome(mt)) { + var _a = mt.value, a = _a[0], b_1 = _a[1]; + out.push(a); + bb = b_1; + } + else { + break; + } + } + return out; +}; +/** + * @category type lambdas + * @since 2.5.0 + */ +export var URI = 'ReadonlyArray'; +/** + * @category instances + * @since 2.5.0 + */ +export var getShow = function (S) { return ({ + show: function (as) { return "[".concat(as.map(S.show).join(', '), "]"); } +}); }; +/** + * @category instances + * @since 2.5.0 + */ +export var getSemigroup = function () { return ({ + concat: function (first, second) { return (isEmpty(first) ? second : isEmpty(second) ? first : first.concat(second)); } +}); }; +/** + * Returns a `Monoid` for `ReadonlyArray<A>`. + * + * @example + * import { getMonoid } from 'fp-ts/ReadonlyArray' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.5.0 + */ +export var getMonoid = function () { return ({ + concat: getSemigroup().concat, + empty: empty +}); }; +/** + * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/ReadonlyArray' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.5.0 + */ +export var getEq = function (E) { + return fromEquals(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); }); +}; +/** + * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * + * @category instances + * @since 2.5.0 + */ +export var getOrd = function (O) { + return fromCompare(function (a, b) { + var aLen = a.length; + var bLen = b.length; + var len = Math.min(aLen, bLen); + for (var i = 0; i < len; i++) { + var ordering = O.compare(a[i], b[i]); + if (ordering !== 0) { + return ordering; + } + } + return N.Ord.compare(aLen, bLen); + }); +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E) { + var unionE = union(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionMonoid = function (E) { return ({ + concat: getUnionSemigroup(E).concat, + empty: empty +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getIntersectionSemigroup = function (E) { + var intersectionE = intersection(E); + return { + concat: function (first, second) { return intersectionE(second)(first); } + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function (E) { + var differenceE = difference(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FunctorWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +export var chainFirst = +/*#__PURE__*/ chainFirst_(Chain); +/** + * @category instances + * @since 2.7.0 + */ +export var Unfoldable = { + URI: URI, + unfold: unfold +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.11.0 + */ +export var Zero = { + URI: URI, + zero: zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +export var guard = /*#__PURE__*/ guard_(Zero, Pointed); +/** + * @category instances + * @since 2.7.0 + */ +export var Alternative = { + URI: URI, + map: _map, + ap: _ap, + of: of, + alt: _alt, + zero: zero +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Extend = { + URI: URI, + map: _map, + extend: _extend +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FilterableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FoldableWithIndex = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +export var TraversableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverse: _traverse, + sequence: sequence, + traverseWithIndex: _traverseWithIndex +}; +/** + * @category sequencing + * @since 2.11.0 + */ +export var chainRecDepthFirst = function (f) { + return function (a) { + var todo = __spreadArray([], f(a), true); + var out = []; + while (todo.length > 0) { + var e = todo.shift(); + if (_.isLeft(e)) { + todo.unshift.apply(todo, f(e.left)); + } + else { + out.push(e.right); + } + } + return out; + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var ChainRecDepthFirst = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRecDepthFirst +}; +/** + * @category sequencing + * @since 2.11.0 + */ +export var chainRecBreadthFirst = function (f) { + return function (a) { + var initial = f(a); + var todo = []; + var out = []; + function go(e) { + if (_.isLeft(e)) { + f(e.left).forEach(function (v) { return todo.push(v); }); + } + else { + out.push(e.right); + } + } + for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) { + var e = initial_1[_i]; + go(e); + } + while (todo.length > 0) { + go(todo.shift()); + } + return out; + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var ChainRecBreadthFirst = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap, + chainRec: _chainRecBreadthFirst +}; +var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable); +var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable); +/** + * @category instances + * @since 2.7.0 + */ +export var Witherable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + wither: _wither, + wilt: _wilt +}; +/** + * Filter values inside a context. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as T from 'fp-ts/Task' + * + * const filterE = RA.filterE(T.ApplicativePar) + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * [-1, 2, 3], + * filterE((n) => T.of(n > 0)) + * )(), + * [2, 3] + * ) + * } + * test() + * + * @since 2.11.0 + */ +export var filterE = /*#__PURE__*/ filterE_(Witherable); +/** + * @category instances + * @since 2.11.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +// ------------------------------------------------------------------------------------- +// unsafe +// ------------------------------------------------------------------------------------- +/** + * @category unsafe + * @since 2.5.0 + */ +export var unsafeInsertAt = RNEA.unsafeInsertAt; +/** + * @category unsafe + * @since 2.5.0 + */ +export var unsafeUpdateAt = function (i, a, as) { + return isNonEmpty(as) ? RNEA.unsafeUpdateAt(i, a, as) : as; +}; +/** + * @category unsafe + * @since 2.5.0 + */ +export var unsafeDeleteAt = function (i, as) { + var xs = as.slice(); + xs.splice(i, 1); + return xs; +}; +/** + * @category conversions + * @since 2.5.0 + */ +export var toArray = function (as) { return as.slice(); }; +/** + * @category conversions + * @since 2.5.0 + */ +export var fromArray = function (as) { return (isEmpty(as) ? empty : as.slice()); }; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * An empty array + * + * @since 2.5.0 + */ +export var empty = RNEA.empty; +export function every(predicate) { + return function (as) { return as.every(predicate); }; +} +/** + * Check if a predicate holds true for any array member. + * + * @example + * import { some } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const isPositive = (n: number): boolean => n > 0 + * + * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true) + * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false) + * + * @since 2.9.0 + */ +export var some = function (predicate) { + return function (as) { + return as.some(predicate); + }; +}; +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +export var exists = some; +/** + * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export var intercalate = function (M) { + var intercalateM = RNEA.intercalate(M); + return function (middle) { return match(function () { return M.empty; }, intercalateM(middle)); }; +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ bind_(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +export var chain = flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `ReadonlyNonEmptyArray` module instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var range = RNEA.range; +/** + * Use [`prepend`](#prepend) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var cons = RNEA.cons; +/** + * Use [`append`](#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var snoc = RNEA.snoc; +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export var prependToAll = prependAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray` + * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var readonlyArray = { + URI: URI, + compact: compact, + separate: separate, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + alt: _alt, + zero: zero, + unfold: unfold, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + extend: _extend, + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/es6/ReadonlyMap.d.ts b/node_modules/fp-ts/es6/ReadonlyMap.d.ts new file mode 100644 index 0000000..a284121 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyMap.d.ts @@ -0,0 +1,476 @@ +import { Compactable2 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable2 } from './Filterable' +import { FilterableWithIndex2C } from './FilterableWithIndex' +import { Foldable, Foldable1, Foldable2, Foldable2C, Foldable3 } from './Foldable' +import { FoldableWithIndex2C } from './FoldableWithIndex' +import { Functor2 } from './Functor' +import { FunctorWithIndex2C } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import * as O from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { Traversable2C } from './Traversable' +import { TraversableWithIndex2C } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { Witherable2C } from './Witherable' +import Option = O.Option +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromMap: <K, A>(m: Map<K, A>) => ReadonlyMap<K, A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare function toMap<K, A>(m: ReadonlyMap<K, A>): Map<K, A> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getShow<K, A>(SK: Show<K>, SA: Show<A>): Show<ReadonlyMap<K, A>> +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.5.0 + */ +export declare const size: <K, A>(m: ReadonlyMap<K, A>) => number +/** + * Test whether or not a map is empty + * + * @since 2.5.0 + */ +export declare const isEmpty: <K, A>(m: ReadonlyMap<K, A>) => boolean +/** + * Test whether or not a key exists in a map + * + * @since 2.5.0 + */ +export declare function member<K>(E: Eq<K>): { + (k: K): <A>(m: ReadonlyMap<K, A>) => boolean + <A>(k: K, m: ReadonlyMap<K, A>): boolean +} +/** + * Test whether or not a value is a member of a map + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): <K>(m: ReadonlyMap<K, A>) => boolean + <K>(a: A, m: ReadonlyMap<K, A>): boolean +} +/** + * Get a sorted `ReadonlyArray` of the keys contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +export declare const keys: <K>(O: Ord<K>) => <A>(m: ReadonlyMap<K, A>) => ReadonlyArray<K> +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +export declare const values: <A>(O: Ord<A>) => <K>(m: ReadonlyMap<K, A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare function collect<K>( + O: Ord<K> +): <A, B>(f: (k: K, a: A) => B) => (m: ReadonlyMap<K, A>) => ReadonlyArray<B> +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyMap`. + * + * @category conversions + * @since 2.5.0 + */ +export declare const toReadonlyArray: <K>(O: Ord<K>) => <A>(m: ReadonlyMap<K, A>) => ReadonlyArray<readonly [K, A]> +/** + * Unfolds a map into a list of key/value pairs + * + * @category conversions + * @since 2.5.0 + */ +export declare function toUnfoldable<K, F extends URIS>( + ord: Ord<K>, + U: Unfoldable1<F> +): <A>(d: ReadonlyMap<K, A>) => Kind<F, readonly [K, A]> +export declare function toUnfoldable<K, F>( + ord: Ord<K>, + U: Unfoldable<F> +): <A>(d: ReadonlyMap<K, A>) => HKT<F, readonly [K, A]> +/** + * Insert or replace a key/value pair in a `ReadonlyMap`. + * + * @since 2.10.0 + */ +export declare const upsertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * Delete a key and value from a map + * + * @since 2.5.0 + */ +export declare const deleteAt: <K>(E: Eq<K>) => (k: K) => <A>(m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @since 2.5.0 + */ +export declare const updateAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: ReadonlyMap<K, A>) => Option<ReadonlyMap<K, A>> +/** + * @since 2.5.0 + */ +export declare const modifyAt: <K>( + E: Eq<K> +) => <A>(k: K, f: (a: A) => A) => (m: ReadonlyMap<K, A>) => Option<ReadonlyMap<K, A>> +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.5.0 + */ +export declare function pop<K>(E: Eq<K>): (k: K) => <A>(m: ReadonlyMap<K, A>) => Option<readonly [A, ReadonlyMap<K, A>]> +/** + * Lookup the value for a key in a `Map`. + * If the result is a `Some`, the existing key is also returned. + * + * @since 2.5.0 + */ +export declare function lookupWithKey<K>(E: Eq<K>): { + (k: K): <A>(m: ReadonlyMap<K, A>) => Option<readonly [K, A]> + <A>(k: K, m: ReadonlyMap<K, A>): Option<readonly [K, A]> +} +/** + * Lookup the value for a key in a `Map`. + * + * @since 2.5.0 + */ +export declare function lookup<K>(E: Eq<K>): { + (k: K): <A>(m: ReadonlyMap<K, A>) => Option<A> + <A>(k: K, m: ReadonlyMap<K, A>): Option<A> +} +/** + * Test whether or not one `Map` contains all of the keys and values contained in another `Map` + * + * @since 2.5.0 + */ +export declare function isSubmap<K, A>( + SK: Eq<K>, + SA: Eq<A> +): { + (that: ReadonlyMap<K, A>): (me: ReadonlyMap<K, A>) => boolean + (me: ReadonlyMap<K, A>, that: ReadonlyMap<K, A>): boolean +} +/** + * @since 2.5.0 + */ +export declare const empty: ReadonlyMap<never, never> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getEq<K, A>(SK: Eq<K>, SA: Eq<A>): Eq<ReadonlyMap<K, A>> +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.5.0 + */ +export declare function getMonoid<K, A>(SK: Eq<K>, SA: Semigroup<A>): Monoid<ReadonlyMap<K, A>> +/** + * Create a map with one key/value pair + * + * @category constructors + * @since 2.5.0 + */ +export declare const singleton: <K, A>(k: K, a: A) => ReadonlyMap<K, A> +/** + * Create a map from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @category constructors + * @since 2.5.0 + */ +export declare function fromFoldable<F extends URIS3, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, readonly [K, A]>) => ReadonlyMap<K, A> +export declare function fromFoldable<F extends URIS2, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, readonly [K, A]>) => ReadonlyMap<K, A> +export declare function fromFoldable<F extends URIS, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, readonly [K, A]>) => ReadonlyMap<K, A> +export declare function fromFoldable<F, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable<F> +): (fka: HKT<F, readonly [K, A]>) => ReadonlyMap<K, A> +/** + * @since 2.10.0 + */ +export declare const partitionMapWithIndex: <K, A, B, C>( + f: (k: K, a: A) => Either<B, C> +) => (fa: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, C>> +/** + * @since 2.10.0 + */ +export declare function partitionWithIndex<K, A, B extends A>( + predicateWithIndex: (k: K, a: A) => a is B +): (m: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): <B extends A>(m: ReadonlyMap<K, B>) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): (m: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, A>> +/** + * @since 2.10.0 + */ +export declare const filterMapWithIndex: <K, A, B>( + f: (k: K, a: A) => Option<B> +) => (fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * @since 2.10.0 + */ +export declare function filterWithIndex<K, A, B extends A>( + predicateWithIndex: (k: K, a: A) => a is B +): (m: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +export declare function filterWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): <B extends A>(m: ReadonlyMap<K, B>) => ReadonlyMap<K, B> +export declare function filterWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): (m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const compact: <K, A>(fa: ReadonlyMap<K, Option<A>>) => ReadonlyMap<K, A> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> + <A>(predicate: Predicate<A>): <K, B extends A>(fb: ReadonlyMap<K, B>) => ReadonlyMap<K, B> + <A>(predicate: Predicate<A>): <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * @category mapping + * @since 2.7.1 + */ +export declare const mapWithIndex: <K, A, B>(f: (k: K, a: A) => B) => (fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): <K>( + fa: ReadonlyMap<K, A> + ) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, B>> + <A>(predicate: Predicate<A>): <K, B extends A>( + fb: ReadonlyMap<K, B> + ) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, B>> + <A>(predicate: Predicate<A>): <K>(fa: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, A>> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => <K>(fa: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, C>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const separate: <K, A, B>( + fa: ReadonlyMap<K, Either<A, B>> +) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, B>> +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyMap' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: ReadonlyMap<E, A> + } +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<ReadonlyMap<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <K, A>(E: Eq<K>, S: Semigroup<A>) => Monoid<ReadonlyMap<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<ReadonlyMap<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <K>(E: Eq<K>) => <A>() => Magma<ReadonlyMap<K, A>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare function getFilterableWithIndex<K = never>(): FilterableWithIndex2C<URI, K, K> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <E, B>(fab: Kind2<'ReadonlyMap', E, (a: A) => B>) => Kind2<'ReadonlyMap', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getFunctorWithIndex: <K = never>() => FunctorWithIndex2C<URI, K, K> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable2<URI> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduce: <K>(O: Ord<K>) => <B, A>(b: B, f: (b: B, a: A) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMap: <K>(O: Ord<K>) => <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (m: ReadonlyMap<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <K>(O: Ord<K>) => <B, A>(b: B, f: (a: A, b: B) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.10.0 + */ +export declare const getFoldable: <K>(O: Ord<K>) => Foldable2C<URI, K> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceWithIndex: <K>( + O: Ord<K> +) => <B, A>(b: B, f: (k: K, b: B, a: A) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMapWithIndex: <K>( + O: Ord<K> +) => <M>(M: Monoid<M>) => <A>(f: (k: K, a: A) => M) => (m: ReadonlyMap<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRightWithIndex: <K>( + O: Ord<K> +) => <B, A>(b: B, f: (k: K, a: A, b: B) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.10.0 + */ +export declare const getFoldableWithIndex: <K>(O: Ord<K>) => FoldableWithIndex2C<URI, K, K> +/** + * @category traversing + * @since 2.10.0 + */ +export declare const getTraversable: <K>(O: Ord<K>) => Traversable2C<URI, K> +/** + * @category traversing + * @since 2.10.0 + */ +export declare const getTraversableWithIndex: <K>(O: Ord<K>) => TraversableWithIndex2C<URI, K, K> +/** + * @category filtering + * @since 2.5.0 + */ +export declare function getWitherable<K>(O: Ord<K>): Witherable2C<URI, K> & TraversableWithIndex2C<URI, K, K> +/** + * @since 2.11.0 + */ +export declare const union: <K, A>( + E: Eq<K>, + M: Magma<A> +) => (second: ReadonlyMap<K, A>) => (first: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @since 2.11.0 + */ +export declare const intersection: <K, A>( + E: Eq<K>, + M: Magma<A> +) => (second: ReadonlyMap<K, A>) => (first: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @since 2.11.0 + */ +export declare const difference: <K>( + E: Eq<K> +) => <A>(_second: ReadonlyMap<K, A>) => (first: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * Use [`upsertAt`](#upsertat) instead. + * + @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const insertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RM.Functor` instead of `RM.readonlyMap` + * (where `RM` is from `import RM from 'fp-ts/ReadonlyMap'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyMap: Filterable2<URI> diff --git a/node_modules/fp-ts/es6/ReadonlyMap.js b/node_modules/fp-ts/es6/ReadonlyMap.js new file mode 100644 index 0000000..b9e85fd --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyMap.js @@ -0,0 +1,959 @@ +import { fromEquals } from './Eq'; +import { pipe, SK } from './function'; +import { flap as flap_ } from './Functor'; +import * as _ from './internal'; +import * as O from './Option'; +import { separated } from './Separated'; +import { wiltDefault, witherDefault } from './Witherable'; +/** + * @category conversions + * @since 2.5.0 + */ +export var fromMap = function (m) { return new Map(m); }; +/** + * @category conversions + * @since 2.5.0 + */ +export function toMap(m) { + return new Map(m); +} +/** + * @category instances + * @since 2.5.0 + */ +export function getShow(SK, SA) { + return { + show: function (m) { + var entries = []; + m.forEach(function (a, k) { + entries.push("[".concat(SK.show(k), ", ").concat(SA.show(a), "]")); + }); + return "new Map([".concat(entries.sort().join(', '), "])"); + } + }; +} +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.5.0 + */ +export var size = function (m) { return m.size; }; +/** + * Test whether or not a map is empty + * + * @since 2.5.0 + */ +export var isEmpty = function (m) { return m.size === 0; }; +export function member(E) { + var lookupE = lookup(E); + return function (k, m) { + if (m === undefined) { + var memberE_1 = member(E); + return function (m) { return memberE_1(k, m); }; + } + return _.isSome(lookupE(k, m)); + }; +} +export function elem(E) { + return function (a, m) { + if (m === undefined) { + var elemE_1 = elem(E); + return function (m) { return elemE_1(a, m); }; + } + var values = m.values(); + var e; + while (!(e = values.next()).done) { + var v = e.value; + if (E.equals(a, v)) { + return true; + } + } + return false; + }; +} +/** + * Get a sorted `ReadonlyArray` of the keys contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +export var keys = function (O) { + return function (m) { + return Array.from(m.keys()).sort(O.compare); + }; +}; +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +export var values = function (O) { + return function (m) { + return Array.from(m.values()).sort(O.compare); + }; +}; +/** + * @since 2.5.0 + */ +export function collect(O) { + var keysO = keys(O); + return function (f) { + return function (m) { + var out = []; + var ks = keysO(m); + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + out.push(f(key, m.get(key))); + } + return out; + }; + }; +} +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyMap`. + * + * @category conversions + * @since 2.5.0 + */ +export var toReadonlyArray = function (O) { + return collect(O)(function (k, a) { return [k, a]; }); +}; +export function toUnfoldable(ord, U) { + var toReadonlyArrayO = toReadonlyArray(ord); + return function (d) { + var kas = toReadonlyArrayO(d); + var len = kas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([kas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `ReadonlyMap`. + * + * @since 2.10.0 + */ +export var upsertAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, a) { + var lookupWithKeyEk = lookupWithKeyE(k); + return function (m) { + var found = lookupWithKeyEk(m); + if (_.isNone(found)) { + var out = new Map(m); + out.set(k, a); + return out; + } + else if (found.value[1] !== a) { + var out = new Map(m); + out.set(found.value[0], a); + return out; + } + return m; + }; + }; +}; +/** + * Delete a key and value from a map + * + * @since 2.5.0 + */ +export var deleteAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isSome(found)) { + var r = new Map(m); + r.delete(found.value[0]); + return r; + } + return m; + }; }; +}; +/** + * @since 2.5.0 + */ +export var updateAt = function (E) { + var modifyAtE = modifyAt(E); + return function (k, a) { return modifyAtE(k, function () { return a; }); }; +}; +/** + * @since 2.5.0 + */ +export var modifyAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, f) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isNone(found)) { + return _.none; + } + var _a = found.value, fk = _a[0], fv = _a[1]; + var next = f(fv); + if (next === fv) { + return _.some(m); + } + var r = new Map(m); + r.set(fk, next); + return _.some(r); + }; }; +}; +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.5.0 + */ +export function pop(E) { + var lookupE = lookup(E); + var deleteAtE = deleteAt(E); + return function (k) { + var deleteAtEk = deleteAtE(k); + return function (m) { + return pipe(lookupE(k, m), O.map(function (a) { return [a, deleteAtEk(m)]; })); + }; + }; +} +export function lookupWithKey(E) { + return function (k, m) { + if (m === undefined) { + var lookupWithKeyE_1 = lookupWithKey(E); + return function (m) { return lookupWithKeyE_1(k, m); }; + } + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, ka = _a[0], a = _a[1]; + if (E.equals(ka, k)) { + return _.some([ka, a]); + } + } + return _.none; + }; +} +export function lookup(E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, m) { + if (m === undefined) { + var lookupE_1 = lookup(E); + return function (m) { return lookupE_1(k, m); }; + } + return pipe(lookupWithKeyE(k, m), O.map(function (_a) { + var _ = _a[0], a = _a[1]; + return a; + })); + }; +} +export function isSubmap(SK, SA) { + var lookupWithKeyS = lookupWithKey(SK); + return function (me, that) { + if (that === undefined) { + var isSubmapSKSA_1 = isSubmap(SK, SA); + return function (that) { return isSubmapSKSA_1(that, me); }; + } + var entries = me.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var d2OptA = lookupWithKeyS(k, that); + if (_.isNone(d2OptA) || !SK.equals(k, d2OptA.value[0]) || !SA.equals(a, d2OptA.value[1])) { + return false; + } + } + return true; + }; +} +/** + * @since 2.5.0 + */ +export var empty = +// the type annotation here is intended (otherwise it doesn't type-check) +new Map(); +/** + * @category instances + * @since 2.5.0 + */ +export function getEq(SK, SA) { + var isSubmapSKSA = isSubmap(SK, SA); + return fromEquals(function (x, y) { return isSubmapSKSA(x, y) && isSubmapSKSA(y, x); }); +} +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.5.0 + */ +export function getMonoid(SK, SA) { + var lookupWithKeyS = lookupWithKey(SK); + return { + concat: function (mx, my) { + if (isEmpty(mx)) { + return my; + } + if (isEmpty(my)) { + return mx; + } + var r = new Map(mx); + var entries = my.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var mxOptA = lookupWithKeyS(k, mx); + if (_.isSome(mxOptA)) { + r.set(mxOptA.value[0], SA.concat(mxOptA.value[1], a)); + } + else { + r.set(k, a); + } + } + return r; + }, + empty: empty + }; +} +/** + * Create a map with one key/value pair + * + * @category constructors + * @since 2.5.0 + */ +export var singleton = function (k, a) { return new Map([[k, a]]); }; +export function fromFoldable(E, M, F) { + return function (fka) { + var lookupWithKeyE = lookupWithKey(E); + return F.reduce(fka, new Map(), function (b, _a) { + var k = _a[0], a = _a[1]; + var bOpt = lookupWithKeyE(k, b); + if (_.isSome(bOpt)) { + b.set(bOpt.value[0], M.concat(bOpt.value[1], a)); + } + else { + b.set(k, a); + } + return b; + }); + }; +} +var _mapWithIndex = function (fa, f) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, key = _a[0], a = _a[1]; + m.set(key, f(key, a)); + } + return m; +}; +/** + * @since 2.10.0 + */ +export var partitionMapWithIndex = function (f) { + return function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var ei = f(k, a); + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return separated(left, right); + }; +}; +export function partitionWithIndex(predicateWithIndex) { + return function (m) { + var left = new Map(); + var right = new Map(); + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (predicateWithIndex(k, a)) { + right.set(k, a); + } + else { + left.set(k, a); + } + } + return separated(left, right); + }; +} +/** + * @since 2.10.0 + */ +export var filterMapWithIndex = function (f) { + return function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var o = f(k, a); + if (_.isSome(o)) { + m.set(k, o.value); + } + } + return m; + }; +}; +export function filterWithIndex(predicateWithIndex) { + return function (m) { + var out = new Map(); + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (predicateWithIndex(k, a)) { + out.set(k, a); + } + } + return out; + }; +} +var _map = function (fa, f) { return _mapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filter = function (fa, p) { + return _filterWithIndex(fa, function (_, a) { return p(a); }); +}; +var _filterMap = function (fa, f) { return _filterMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _partition = function (fa, predicate) { + return _partitionWithIndex(fa, function (_, a) { return predicate(a); }); +}; +var _partitionMap = function (fa, f) { return _partitionMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filterWithIndex = function (fa, p) { return pipe(fa, filterWithIndex(p)); }; +var _filterMapWithIndex = function (fa, f) { + return pipe(fa, filterMapWithIndex(f)); +}; +var _partitionWithIndex = function (fa, p) { return pipe(fa, partitionWithIndex(p)); }; +var _partitionMapWithIndex = function (fa, f) { + return pipe(fa, partitionMapWithIndex(f)); +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var compact = function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], oa = _a[1]; + if (_.isSome(oa)) { + m.set(k, oa.value); + } + } + return m; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var filter = function (predicate) { + return function (fa) { + return _filter(fa, predicate); + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var filterMap = function (f) { return function (fa) { + return _filterMap(fa, f); +}; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export var map = function (f) { return function (fa) { return _map(fa, f); }; }; +/** + * @category mapping + * @since 2.7.1 + */ +export var mapWithIndex = function (f) { return function (fa) { + return _mapWithIndex(fa, f); +}; }; +/** + * @category filtering + * @since 2.5.0 + */ +export var partition = function (predicate) { + return function (fa) { + return _partition(fa, predicate); + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export var partitionMap = function (f) { return function (fa) { return _partitionMap(fa, f); }; }; +/** + * @category filtering + * @since 2.5.0 + */ +export var separate = function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], ei = _a[1]; + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return separated(left, right); +}; +/** + * @category type lambdas + * @since 2.5.0 + */ +export var URI = 'ReadonlyMap'; +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E, S) { + var unionES = union(E, S); + return { + concat: function (first, second) { return unionES(second)(first); } + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionMonoid = function (E, S) { return ({ + concat: getUnionSemigroup(E, S).concat, + empty: empty +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getIntersectionSemigroup = function (E, S) { + var intersectionES = intersection(E, S); + return { + concat: function (first, second) { return intersectionES(second)(first); } + }; +}; +/** + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function (E) { + return function () { + var differenceE = difference(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export function getFilterableWithIndex() { + return { + URI: URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var getFunctorWithIndex = function () { return ({ + URI: URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex +}); }; +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category folding + * @since 2.11.0 + */ +export var reduce = function (O) { + var reduceWithIndexO = reduceWithIndex(O); + return function (b, f) { return reduceWithIndexO(b, function (_, b, a) { return f(b, a); }); }; +}; +/** + * @category folding + * @since 2.11.0 + */ +export var foldMap = function (O) { + var foldMapWithIndexO = foldMapWithIndex(O); + return function (M) { + var foldMapWithIndexOM = foldMapWithIndexO(M); + return function (f) { return foldMapWithIndexOM(function (_, a) { return f(a); }); }; + }; +}; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceRight = function (O) { + var reduceRightWithIndexO = reduceRightWithIndex(O); + return function (b, f) { return reduceRightWithIndexO(b, function (_, b, a) { return f(b, a); }); }; +}; +/** + * @category folding + * @since 2.10.0 + */ +export var getFoldable = function (O) { + var reduceO = reduce(O); + var foldMapO = foldMap(O); + var reduceRightO = reduceRight(O); + return { + URI: URI, + _E: undefined, + reduce: function (fa, b, f) { return pipe(fa, reduceO(b, f)); }, + foldMap: function (M) { + var foldMapOM = foldMapO(M); + return function (fa, f) { return pipe(fa, foldMapOM(f)); }; + }, + reduceRight: function (fa, b, f) { return pipe(fa, reduceRightO(b, f)); } + }; +}; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceWithIndex = function (O) { + var keysO = keys(O); + return function (b, f) { return function (m) { + var out = b; + for (var _i = 0, _a = keysO(m); _i < _a.length; _i++) { + var k = _a[_i]; + out = f(k, out, m.get(k)); + } + return out; + }; }; +}; +/** + * @category folding + * @since 2.11.0 + */ +export var foldMapWithIndex = function (O) { + var keysO = keys(O); + return function (M) { return function (f) { return function (m) { + var out = M.empty; + for (var _i = 0, _a = keysO(m); _i < _a.length; _i++) { + var k = _a[_i]; + out = M.concat(out, f(k, m.get(k))); + } + return out; + }; }; }; +}; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceRightWithIndex = function (O) { + var keysO = keys(O); + return function (b, f) { return function (m) { + var out = b; + var ks = keysO(m); + var len = ks.length; + for (var i = len - 1; i >= 0; i--) { + var k = ks[i]; + out = f(k, m.get(k), out); + } + return out; + }; }; +}; +/** + * @category folding + * @since 2.10.0 + */ +export var getFoldableWithIndex = function (O) { + var F = getFoldable(O); + var reduceWithIndexO = reduceWithIndex(O); + var foldMapWithIndexO = foldMapWithIndex(O); + var reduceRightWithIndexO = reduceRightWithIndex(O); + return { + URI: URI, + _E: undefined, + reduce: F.reduce, + foldMap: F.foldMap, + reduceRight: F.reduceRight, + reduceWithIndex: function (fa, b, f) { return pipe(fa, reduceWithIndexO(b, f)); }, + foldMapWithIndex: function (M) { + var foldMapWithIndexOM = foldMapWithIndexO(M); + return function (fa, f) { return pipe(fa, foldMapWithIndexOM(f)); }; + }, + reduceRightWithIndex: function (fa, b, f) { return pipe(fa, reduceRightWithIndexO(b, f)); } + }; +}; +/** + * @category traversing + * @since 2.10.0 + */ +export var getTraversable = function (O) { + var TWI = getTraversableWithIndex(O); + var F = getFoldable(O); + return { + URI: URI, + _E: undefined, + map: _map, + reduce: F.reduce, + foldMap: F.foldMap, + reduceRight: F.reduceRight, + traverse: TWI.traverse, + sequence: TWI.sequence + }; +}; +/** + * @category traversing + * @since 2.10.0 + */ +export var getTraversableWithIndex = function (O) { + var FWI = getFoldableWithIndex(O); + var keysO = keys(O); + var traverseWithIndex = function (F) { + return function (ta, f) { + var fm = F.of(new Map()); + var ks = keysO(ta); + var len = ks.length; + var _loop_1 = function (i) { + var key = ks[i]; + var a = ta.get(key); + fm = F.ap(F.map(fm, function (m) { return function (b) { return m.set(key, b); }; }), f(key, a)); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + return fm; + }; + }; + var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return traverseWithIndexF(ta, function (_, a) { return f(a); }); }; + }; + var sequence = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta) { return traverseWithIndexF(ta, SK); }; + }; + return { + URI: URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: FWI.reduce, + foldMap: FWI.foldMap, + reduceRight: FWI.reduceRight, + reduceWithIndex: FWI.reduceWithIndex, + foldMapWithIndex: FWI.foldMapWithIndex, + reduceRightWithIndex: FWI.reduceRightWithIndex, + traverse: traverse, + sequence: sequence, + traverseWithIndex: traverseWithIndex + }; +}; +/** + * @category filtering + * @since 2.5.0 + */ +export function getWitherable(O) { + var TWI = getTraversableWithIndex(O); + return { + URI: URI, + _E: undefined, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: TWI.reduce, + foldMap: TWI.foldMap, + reduceRight: TWI.reduceRight, + traverse: TWI.traverse, + sequence: TWI.sequence, + mapWithIndex: _mapWithIndex, + reduceWithIndex: TWI.reduceWithIndex, + foldMapWithIndex: TWI.foldMapWithIndex, + reduceRightWithIndex: TWI.reduceRightWithIndex, + traverseWithIndex: TWI.traverseWithIndex, + wilt: wiltDefault(TWI, Compactable), + wither: witherDefault(TWI, Compactable) + }; +} +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +export var union = function (E, M) { + var lookupE = lookup(E); + return function (second) { return function (first) { + if (isEmpty(first)) { + return second; + } + if (isEmpty(second)) { + return first; + } + var out = new Map(); + var firstEntries = first.entries(); + var e; + while (!(e = firstEntries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var oka = lookupE(k)(second); + if (_.isSome(oka)) { + out.set(k, M.concat(a, oka.value)); + } + else { + out.set(k, a); + } + } + var secondEntries = second.entries(); + while (!(e = secondEntries.next()).done) { + var _b = e.value, k = _b[0], a = _b[1]; + var oka = lookupE(k)(out); + if (_.isNone(oka)) { + out.set(k, a); + } + } + return out; + }; }; +}; +/** + * @since 2.11.0 + */ +export var intersection = function (E, M) { + var lookupE = lookup(E); + return function (second) { return function (first) { + if (isEmpty(first) || isEmpty(second)) { + return empty; + } + var out = new Map(); + var entries = first.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var oka = lookupE(k)(second); + if (_.isSome(oka)) { + out.set(k, M.concat(a, oka.value)); + } + } + return out; + }; }; +}; +/** + * @since 2.11.0 + */ +export var difference = function (E) { + var memberE = member(E); + return function (second) { + return function (first) { + if (isEmpty(first)) { + return second; + } + if (isEmpty(second)) { + return first; + } + var out = new Map(); + var firstEntries = first.entries(); + var e; + while (!(e = firstEntries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (!memberE(k)(second)) { + out.set(k, a); + } + } + var secondEntries = second.entries(); + while (!(e = secondEntries.next()).done) { + var _b = e.value, k = _b[0], a = _b[1]; + if (!memberE(k)(first)) { + out.set(k, a); + } + } + return out; + }; + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`upsertAt`](#upsertat) instead. + * + @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var insertAt = upsertAt; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RM.Functor` instead of `RM.readonlyMap` + * (where `RM` is from `import RM from 'fp-ts/ReadonlyMap'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var readonlyMap = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; diff --git a/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.d.ts b/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.d.ts new file mode 100644 index 0000000..67e0fdc --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.d.ts @@ -0,0 +1,933 @@ +/** + * Data structure which represents non-empty readonly arrays. + * + * ```ts + * export type ReadonlyNonEmptyArray<A> = ReadonlyArray<A> & { + * readonly 0: A + * } + * ``` + * + * Note that you don't need any conversion, a `ReadonlyNonEmptyArray` is a `ReadonlyArray`, + * so all `ReadonlyArray`'s APIs can be used with a `ReadonlyNonEmptyArray` without further ado. + * + * @since 2.5.0 + */ +import { Alt1 } from './Alt' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { Comonad1 } from './Comonad' +import { Endomorphism } from './Endomorphism' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Monad1 } from './Monad' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyRecord } from './ReadonlyRecord' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import Semigroup = Se.Semigroup +/** + * @category model + * @since 2.5.0 + */ +export type ReadonlyNonEmptyArray<A> = ReadonlyArray<A> & { + readonly 0: A +} +/** + * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = RNEA.sortBy([byName, byAge]) + * + * const persons: RNEA.ReadonlyNonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +export declare const sortBy: <B>( + ords: ReadonlyArray<Ord<B>> +) => <A extends B>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @since 2.11.0 + */ +export declare const union: <A>( + E: Eq<A> +) => (second: ReadonlyNonEmptyArray<A>) => (first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Rotate a `ReadonlyNonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +export declare const rotate: (n: number) => <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty. + * + * @category conversions + * @since 2.5.0 + */ +export declare const fromReadonlyArray: <A>(as: ReadonlyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const makeBy: <A>(f: (i: number) => A) => (n: number) => ReadonlyNonEmptyArray<A> +/** + * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +export declare const replicate: <A>(a: A) => (n: number) => ReadonlyNonEmptyArray<A> +/** + * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const range: (start: number, end: number) => ReadonlyNonEmptyArray<number> +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]]) + * + * @since 2.9.0 + */ +export declare const unprepend: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [A, ReadonlyArray<A>] +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +export declare const unappend: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [ReadonlyArray<A>, A] +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromArray: <A>(as: Array<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * @since 2.11.0 + */ +export declare function concatW<B>( + second: ReadonlyNonEmptyArray<B> +): <A>(first: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A | B> +export declare function concatW<B>( + second: ReadonlyArray<B> +): <A>(first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * @since 2.5.0 + */ +export declare function concat<A>( + second: ReadonlyNonEmptyArray<A> +): (first: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +export declare function concat<A>( + second: ReadonlyArray<A> +): (first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: ReadonlyArray<A>, second: ReadonlyNonEmptyArray<A>): ReadonlyNonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: ReadonlyNonEmptyArray<A>, second: ReadonlyArray<A>): ReadonlyNonEmptyArray<A> +/** + * @since 2.5.0 + */ +export declare const reverse: <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Group equal, consecutive elements of a `ReadonlyArray` into `ReadonlyNonEmptyArray`s. + * + * @example + * import { group } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(group(N.Eq)([1, 2, 1, 1]), [ + * [1], + * [2], + * [1, 1] + * ]) + * + * @since 2.5.0 + */ +export declare function group<B>(E: Eq<B>): { + <A extends B>(as: ReadonlyNonEmptyArray<A>): ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> + <A extends B>(as: ReadonlyArray<A>): ReadonlyArray<ReadonlyNonEmptyArray<A>> +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.5.0 + */ +export declare const groupBy: <A>( + f: (a: A) => string +) => (as: ReadonlyArray<A>) => ReadonlyRecord<string, ReadonlyNonEmptyArray<A>> +/** + * @since 2.5.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @since 2.5.0 + */ +export declare const updateAt: <A>( + i: number, + a: A +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * @since 2.5.0 + */ +export declare const modifyAt: <A>( + i: number, + f: (a: A) => A +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * @since 2.5.1 + */ +export declare const zipWith: <A, B, C>( + as: ReadonlyNonEmptyArray<A>, + bs: ReadonlyNonEmptyArray<B>, + f: (a: A, b: B) => C +) => ReadonlyNonEmptyArray<C> +/** + * @since 2.5.1 + */ +export declare function zip<B>( + bs: ReadonlyNonEmptyArray<B> +): <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<readonly [A, B]> +export declare function zip<A, B>( + as: ReadonlyNonEmptyArray<A>, + bs: ReadonlyNonEmptyArray<B> +): ReadonlyNonEmptyArray<readonly [A, B]> +/** + * @since 2.5.1 + */ +export declare const unzip: <A, B>( + abs: ReadonlyNonEmptyArray<readonly [A, B]> +) => readonly [ReadonlyNonEmptyArray<A>, ReadonlyNonEmptyArray<B>] +/** + * Prepend an element to every member of a `ReadonlyNonEmptyArray`. + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`. + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainWithIndex: <A, B>( + f: (i: number, a: A) => ReadonlyNonEmptyArray<B> +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for "chopping" up the input + * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a + * value and the tail of the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export declare const chop: <A, B>( + f: (as: ReadonlyNonEmptyArray<A>) => readonly [B, ReadonlyArray<A>] +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +export declare const splitAt: ( + n: number +) => <A>(as: ReadonlyNonEmptyArray<A>) => readonly [ReadonlyNonEmptyArray<A>, ReadonlyArray<A>] +/** + * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export declare const chunksOf: ( + n: number +) => <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> +/** + * @category constructors + * @since 2.5.0 + */ +export declare const of: <A>(a: A) => ReadonlyNonEmptyArray<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray<number>, + * RNEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>( + that: LazyArg<ReadonlyNonEmptyArray<B>> +) => <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +export declare const alt: <A>( + that: LazyArg<ReadonlyNonEmptyArray<A>> +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @since 2.5.0 + */ +export declare const ap: <A>( + as: ReadonlyNonEmptyArray<A> +) => <B>(fab: ReadonlyNonEmptyArray<(a: A) => B>) => ReadonlyNonEmptyArray<B> +/** + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => ReadonlyNonEmptyArray<B>): (ma: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> + <A, B>(ma: ReadonlyNonEmptyArray<A>, f: (a: A, i: number) => ReadonlyNonEmptyArray<B>): ReadonlyNonEmptyArray<B> +} +/** + * @since 2.5.0 + */ +export declare const extend: <A, B>( + f: (as: ReadonlyNonEmptyArray<A>) => B +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * @since 2.5.0 + */ +export declare const duplicate: <A>(ma: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> +/** + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>>) => ReadonlyNonEmptyArray<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * @category mapping + * @since 2.5.0 + */ +export declare const mapWithIndex: <A, B>( + f: (i: number, a: A) => B +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +export declare const foldMap: <S>(S: Semigroup<S>) => <A>(f: (a: A) => S) => (as: ReadonlyNonEmptyArray<A>) => S +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceWithIndex: <A, B>( + b: B, + f: (i: number, b: B, a: A) => B +) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +export declare const foldMapWithIndex: <S>( + S: Semigroup<S> +) => <A>(f: (i: number, a: A) => S) => (as: ReadonlyNonEmptyArray<A>) => S +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRightWithIndex: <A, B>( + b: B, + f: (i: number, a: A, b: B) => B +) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @category Comonad + * @since 2.6.3 + */ +export declare const extract: Comonad1<URI>['extract'] +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyNonEmptyArray' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlyNonEmptyArray<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<ReadonlyNonEmptyArray<A>> +/** + * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray` + * + * @category instances + * @since 2.5.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<ReadonlyNonEmptyArray<A>> +/** + * @example + * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.5.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<ReadonlyNonEmptyArray<A>> +/** + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlyNonEmptyArray<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>( + fab: import('./HKT').Kind<'ReadonlyNonEmptyArray', (a: A) => B> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: ReadonlyNonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'ReadonlyNonEmptyArray', A>) => import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: ReadonlyNonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'ReadonlyNonEmptyArray', A>) => import('./HKT').Kind<'ReadonlyNonEmptyArray', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +export declare const chainFirst: <A, B>( + f: (a: A) => ReadonlyNonEmptyArray<B> +) => (first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReadonlyNonEmptyArray<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>( + fa: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'ReadonlyNonEmptyArray', B> +) => ( + ma: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: ReadonlyNonEmptyArray<B> +) => ( + fa: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.5.0 + */ +export declare const head: <A>(as: ReadonlyNonEmptyArray<A>) => A +/** + * @since 2.5.0 + */ +export declare const tail: <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare const last: <A>(as: ReadonlyNonEmptyArray<A>) => A +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.5.0 + */ +export declare const init: <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare const min: <A>(O: Ord<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * @since 2.5.0 + */ +export declare const max: <A>(O: Ord<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * @since 2.10.0 + */ +export declare const concatAll: <A>(S: Semigroup<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeft: <A, B>(f: (head: A, tail: ReadonlyArray<A>) => B) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRight: <A, B>( + f: (init: ReadonlyArray<A>, last: A) => B +) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyHead: <A>(f: Endomorphism<A>) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Change the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateHead: <A>(a: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyLast: <A>(f: Endomorphism<A>) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Change the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateLast: <A>(a: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(S: Semigroup<A>) => (middle: A) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +export declare const chain: <A, B>( + f: (a: A) => ReadonlyNonEmptyArray<B> +) => (ma: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * This is just `sort` followed by `group`. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function groupSort<B>(O: Ord<B>): { + <A extends B>(as: ReadonlyNonEmptyArray<A>): ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> + <A extends B>(as: ReadonlyArray<A>): ReadonlyArray<ReadonlyNonEmptyArray<A>> +} +/** + * Use [`filter`](./ReadonlyArray.ts.html#filter) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function filter<A, B extends A>( + refinement: Refinement<A, B> +): (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<B>> +export declare function filter<A>( + predicate: Predicate<A> +): <B extends A>(bs: ReadonlyNonEmptyArray<B>) => Option<ReadonlyNonEmptyArray<B>> +export declare function filter<A>( + predicate: Predicate<A> +): (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const filterWithIndex: <A>( + predicate: (i: number, a: A) => boolean +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const uncons: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [A, ReadonlyArray<A>] +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const unsnoc: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [ReadonlyArray<A>, A] +/** + * Use [`prepend`](./ReadonlyArray.ts.html#prepend) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function cons<A>(head: A): (tail: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** @deprecated */ +export declare function cons<A>(head: A, tail: ReadonlyArray<A>): ReadonlyNonEmptyArray<A> +/** + * Use [`append`](./ReadonlyArray.ts.html#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const snoc: <A>(init: ReadonlyArray<A>, end: A) => ReadonlyNonEmptyArray<A> +/** + * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const insertAt: <A>(i: number, a: A) => (as: ReadonlyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const fold: <A>(S: Semigroup<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray` + * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyNonEmptyArray: Monad1<URI> & + Comonad1<URI> & + TraversableWithIndex1<URI, number> & + FunctorWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + Alt1<URI> diff --git a/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.js b/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.js new file mode 100644 index 0000000..ad1d894 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.js @@ -0,0 +1,1224 @@ +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import { bind as bind_, chainFirst as chainFirst_ } from './Chain'; +import { fromEquals } from './Eq'; +import { dual, flow, identity, pipe, SK } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import { getMonoid } from './Ord'; +import * as Se from './Semigroup'; +// ------------------------------------------------------------------------------------- +// internal +// ------------------------------------------------------------------------------------- +/** + * @internal + */ +export var empty = _.emptyReadonlyArray; +/** + * @internal + */ +export var isNonEmpty = _.isNonEmpty; +/** + * @internal + */ +export var isOutOfBound = function (i, as) { return i < 0 || i >= as.length; }; +/** + * @internal + */ +export var prependW = function (head) { + return function (tail) { + return __spreadArray([head], tail, true); + }; +}; +/** + * @internal + */ +export var prepend = prependW; +/** + * @internal + */ +export var appendW = function (end) { + return function (init) { + return __spreadArray(__spreadArray([], init, true), [end], false); + }; +}; +/** + * @internal + */ +export var append = appendW; +/** + * @internal + */ +export var unsafeInsertAt = function (i, a, as) { + if (isNonEmpty(as)) { + var xs = _.fromReadonlyNonEmptyArray(as); + xs.splice(i, 0, a); + return xs; + } + return [a]; +}; +/** + * @internal + */ +export var unsafeUpdateAt = function (i, a, as) { + if (as[i] === a) { + return as; + } + else { + var xs = _.fromReadonlyNonEmptyArray(as); + xs[i] = a; + return xs; + } +}; +/** + * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +export var uniq = function (E) { + return function (as) { + if (as.length === 1) { + return as; + } + var out = [head(as)]; + var rest = tail(as); + var _loop_1 = function (a) { + if (out.every(function (o) { return !E.equals(o, a); })) { + out.push(a); + } + }; + for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) { + var a = rest_1[_i]; + _loop_1(a); + } + return out; + }; +}; +/** + * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = RNEA.sortBy([byName, byAge]) + * + * const persons: RNEA.ReadonlyNonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +export var sortBy = function (ords) { + if (isNonEmpty(ords)) { + var M = getMonoid(); + return sort(ords.reduce(M.concat, M.empty)); + } + return identity; +}; +/** + * @since 2.11.0 + */ +export var union = function (E) { + var uniqE = uniq(E); + return function (second) { return function (first) { return uniqE(pipe(first, concat(second))); }; }; +}; +/** + * Rotate a `ReadonlyNonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +export var rotate = function (n) { + return function (as) { + var len = as.length; + var m = Math.round(n) % len; + if (isOutOfBound(Math.abs(m), as) || m === 0) { + return as; + } + if (m < 0) { + var _a = splitAt(-m)(as), f = _a[0], s = _a[1]; + return pipe(s, concat(f)); + } + else { + return rotate(m - len)(as); + } + }; +}; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty. + * + * @category conversions + * @since 2.5.0 + */ +export var fromReadonlyArray = function (as) { + return isNonEmpty(as) ? _.some(as) : _.none; +}; +/** + * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +export var makeBy = function (f) { + return function (n) { + var j = Math.max(0, Math.floor(n)); + var out = [f(0)]; + for (var i = 1; i < j; i++) { + out.push(f(i)); + } + return out; + }; +}; +/** + * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +export var replicate = function (a) { return makeBy(function () { return a; }); }; +/** + * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +export var range = function (start, end) { + return start <= end ? makeBy(function (i) { return start + i; })(end - start + 1) : [start]; +}; +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]]) + * + * @since 2.9.0 + */ +export var unprepend = function (as) { return [head(as), tail(as)]; }; +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +export var unappend = function (as) { return [init(as), last(as)]; }; +/** + * @category conversions + * @since 2.5.0 + */ +export var fromArray = function (as) { return fromReadonlyArray(as.slice()); }; +export function concatW(second) { + return function (first) { return first.concat(second); }; +} +export function concat(x, y) { + return y ? x.concat(y) : function (y) { return y.concat(x); }; +} +/** + * @since 2.5.0 + */ +export var reverse = function (as) { + return as.length === 1 ? as : __spreadArray([last(as)], as.slice(0, -1).reverse(), true); +}; +export function group(E) { + return function (as) { + var len = as.length; + if (len === 0) { + return empty; + } + var out = []; + var head = as[0]; + var nea = [head]; + for (var i = 1; i < len; i++) { + var a = as[i]; + if (E.equals(a, head)) { + nea.push(a); + } + else { + out.push(nea); + head = a; + nea = [head]; + } + } + out.push(nea); + return out; + }; +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.5.0 + */ +export var groupBy = function (f) { + return function (as) { + var out = {}; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + var k = f(a); + if (_.has.call(out, k)) { + out[k].push(a); + } + else { + out[k] = [a]; + } + } + return out; + }; +}; +/** + * @since 2.5.0 + */ +export var sort = function (O) { + return function (as) { + return as.length === 1 ? as : as.slice().sort(O.compare); + }; +}; +/** + * @since 2.5.0 + */ +export var updateAt = function (i, a) { + return modifyAt(i, function () { return a; }); +}; +/** + * @since 2.5.0 + */ +export var modifyAt = function (i, f) { + return function (as) { + return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as)); + }; +}; +/** + * @since 2.5.1 + */ +export var zipWith = function (as, bs, f) { + var cs = [f(as[0], bs[0])]; + var len = Math.min(as.length, bs.length); + for (var i = 1; i < len; i++) { + cs[i] = f(as[i], bs[i]); + } + return cs; +}; +export function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return zipWith(as, bs, function (a, b) { return [a, b]; }); +} +/** + * @since 2.5.1 + */ +export var unzip = function (abs) { + var fa = [abs[0][0]]; + var fb = [abs[0][1]]; + for (var i = 1; i < abs.length; i++) { + fa[i] = abs[i][0]; + fb[i] = abs[i][1]; + } + return [fa, fb]; +}; +/** + * Prepend an element to every member of a `ReadonlyNonEmptyArray`. + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export var prependAll = function (middle) { + return function (as) { + var out = [middle, as[0]]; + for (var i = 1; i < as.length; i++) { + out.push(middle, as[i]); + } + return out; + }; +}; +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`. + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export var intersperse = function (middle) { + return function (as) { + var rest = tail(as); + return isNonEmpty(rest) ? pipe(rest, prependAll(middle), prepend(head(as))) : as; + }; +}; +/** + * @category sequencing + * @since 2.10.0 + */ +export var chainWithIndex = function (f) { + return function (as) { + var out = _.fromReadonlyNonEmptyArray(f(0, head(as))); + for (var i = 1; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +/** + * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for "chopping" up the input + * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a + * value and the tail of the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export var chop = function (f) { + return function (as) { + var _a = f(as), b = _a[0], rest = _a[1]; + var out = [b]; + var next = rest; + while (isNonEmpty(next)) { + var _b = f(next), b_1 = _b[0], rest_2 = _b[1]; + out.push(b_1); + next = rest_2; + } + return out; + }; +}; +/** + * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +export var splitAt = function (n) { + return function (as) { + var m = Math.max(1, n); + return m >= as.length ? [as, empty] : [pipe(as.slice(1, m), prepend(head(as))), as.slice(m)]; + }; +}; +/** + * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export var chunksOf = function (n) { return chop(splitAt(n)); }; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/* istanbul ignore next */ +var _reduceWithIndex = function (fa, b, f) { + return pipe(fa, reduceWithIndex(b, f)); +}; +/* istanbul ignore next */ +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = foldMapWithIndex(M); + return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRightWithIndex = function (fa, b, f) { + return pipe(fa, reduceRightWithIndex(b, f)); +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); }; +}; +/** + * @category constructors + * @since 2.5.0 + */ +export var of = _.singleton; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray<number>, + * RNEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function (that) { + return function (as) { + return pipe(as, concatW(that())); + }; +}; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +export var alt = altW; +/** + * @since 2.5.0 + */ +export var ap = function (as) { return flatMap(function (f) { return pipe(as, map(f)); }); }; +/** + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); })); +}); +/** + * @since 2.5.0 + */ +export var extend = function (f) { + return function (as) { + var next = tail(as); + var out = [f(as)]; + while (isNonEmpty(next)) { + out.push(f(next)); + next = tail(next); + } + return out; + }; +}; +/** + * @since 2.5.0 + */ +export var duplicate = +/*#__PURE__*/ extend(identity); +/** + * @category sequencing + * @since 2.5.0 + */ +export var flatten = +/*#__PURE__*/ flatMap(identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export var map = function (f) { + return mapWithIndex(function (_, a) { return f(a); }); +}; +/** + * @category mapping + * @since 2.5.0 + */ +export var mapWithIndex = function (f) { + return function (as) { + var out = [f(0, head(as))]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])); + } + return out; + }; +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduce = function (b, f) { + return reduceWithIndex(b, function (_, b, a) { return f(b, a); }); +}; +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +export var foldMap = function (S) { + return function (f) { + return function (as) { + return as.slice(1).reduce(function (s, a) { return S.concat(s, f(a)); }, f(as[0])); + }; + }; +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceRight = function (b, f) { + return reduceRightWithIndex(b, function (_, b, a) { return f(b, a); }); +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceWithIndex = function (b, f) { + return function (as) { + return as.reduce(function (b, a, i) { return f(i, b, a); }, b); + }; +}; +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +export var foldMapWithIndex = function (S) { + return function (f) { + return function (as) { + return as.slice(1).reduce(function (s, a, i) { return S.concat(s, f(i + 1, a)); }, f(0, as[0])); + }; + }; +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceRightWithIndex = function (b, f) { + return function (as) { + return as.reduceRight(function (b, a, i) { return f(i, a, b); }, b); + }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { return traverseWithIndex(F)(SK); }; +/** + * @category sequencing + * @since 2.6.3 + */ +export var traverseWithIndex = function (F) { + return function (f) { + return function (as) { + var out = F.map(f(0, head(as)), of); + for (var i = 1; i < as.length; i++) { + out = F.ap(F.map(out, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, as[i])); + } + return out; + }; + }; +}; +/** + * @category Comonad + * @since 2.6.3 + */ +export var extract = _.head; +/** + * @category type lambdas + * @since 2.5.0 + */ +export var URI = 'ReadonlyNonEmptyArray'; +/** + * @category instances + * @since 2.5.0 + */ +export var getShow = function (S) { return ({ + show: function (as) { return "[".concat(as.map(S.show).join(', '), "]"); } +}); }; +/** + * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray` + * + * @category instances + * @since 2.5.0 + */ +export var getSemigroup = function () { return ({ + concat: concat +}); }; +/** + * @example + * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.5.0 + */ +export var getEq = function (E) { + return fromEquals(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); }); +}; +/** + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E) { + var unionE = union(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FunctorWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +export var chainFirst = /*#__PURE__*/ chainFirst_(Chain); +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FoldableWithIndex = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +export var TraversableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ bind_(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.5.0 + */ +export var head = extract; +/** + * @since 2.5.0 + */ +export var tail = _.tail; +/** + * @since 2.5.0 + */ +export var last = function (as) { return as[as.length - 1]; }; +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.5.0 + */ +export var init = function (as) { return as.slice(0, -1); }; +/** + * @since 2.5.0 + */ +export var min = function (O) { + var S = Se.min(O); + return function (as) { return as.reduce(S.concat); }; +}; +/** + * @since 2.5.0 + */ +export var max = function (O) { + var S = Se.max(O); + return function (as) { return as.reduce(S.concat); }; +}; +/** + * @since 2.10.0 + */ +export var concatAll = function (S) { + return function (as) { + return as.reduce(S.concat); + }; +}; +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchLeft = function (f) { + return function (as) { + return f(head(as), tail(as)); + }; +}; +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +export var matchRight = function (f) { + return function (as) { + return f(init(as), last(as)); + }; +}; +/** + * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export var modifyHead = function (f) { + return function (as) { + return __spreadArray([f(head(as))], tail(as), true); + }; +}; +/** + * Change the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export var updateHead = function (a) { return modifyHead(function () { return a; }); }; +/** + * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export var modifyLast = function (f) { + return function (as) { + return pipe(init(as), append(f(last(as)))); + }; +}; +/** + * Change the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export var updateLast = function (a) { return modifyLast(function () { return a; }); }; +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export var intercalate = function (S) { + var concatAllS = concatAll(S); + return function (middle) { return flow(intersperse(middle), concatAllS); }; +}; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +export var chain = flatMap; +export function groupSort(O) { + var sortO = sort(O); + var groupO = group(O); + return function (as) { return (isNonEmpty(as) ? groupO(sortO(as)) : empty); }; +} +export function filter(predicate) { + return filterWithIndex(function (_, a) { return predicate(a); }); +} +/** + * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var filterWithIndex = function (predicate) { + return function (as) { + return fromReadonlyArray(as.filter(function (a, i) { return predicate(i, a); })); + }; +}; +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export var uncons = unprepend; +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export var unsnoc = unappend; +export function cons(head, tail) { + return tail === undefined ? prepend(head) : pipe(tail, prepend(head)); +} +/** + * Use [`append`](./ReadonlyArray.ts.html#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var snoc = function (init, end) { return pipe(init, concat([end])); }; +/** + * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as)); + }; +}; +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export var prependToAll = prependAll; +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var fold = concatAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray` + * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var readonlyNonEmptyArray = { + URI: URI, + of: of, + map: _map, + mapWithIndex: _mapWithIndex, + ap: _ap, + chain: flatMap, + extend: _extend, + extract: extract, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + alt: _alt +}; diff --git a/node_modules/fp-ts/es6/ReadonlyRecord.d.ts b/node_modules/fp-ts/es6/ReadonlyRecord.d.ts new file mode 100644 index 0000000..60cf5c4 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyRecord.d.ts @@ -0,0 +1,1385 @@ +/** + * The `ReadonlyRecord.ts` module enables dealing in a functional way with + * Typescript's `Readonly<Record<K, T>>` type. That is similar to the + * `Record.ts` module, but for a record with all properties + * declared as `readonly`. + * + * @since 2.5.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable as FoldableHKT, Foldable1, Foldable2, Foldable3 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { Traversable1 } from './Traversable' +import { TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import Semigroup = Se.Semigroup +/** + * @category model + * @since 2.5.0 + */ +export type ReadonlyRecord<K extends string, T> = Readonly<Record<K, T>> +/** + * Builds a `ReadonlyRecord` by copying a `Record`. + * + * @example + * import { ReadonlyRecord, fromRecord } from "fp-ts/ReadonlyRecord" + * + * const x: Record<string, number> = { a: 1, b: 2 }; + * const y: ReadonlyRecord<string, number> = fromRecord(x); + * assert.deepStrictEqual(x,y); + * // `y.a = 5` gives compiler error + * + * @category conversions + * @since 2.5.0 + */ +export declare const fromRecord: <K extends string, A>(r: Record<K, A>) => ReadonlyRecord<K, A> +/** + * Builds a mutable `Record` from a `ReadonlyRecord`. + * + * @example + * import { ReadonlyRecord, toRecord } from "fp-ts/ReadonlyRecord" + * + * const x: ReadonlyRecord<string, number> = { a: 1, b: 2 }; + * const y: Record<string, number> = toRecord(x); + * assert.deepStrictEqual(x,y); + * y.a = 5; // it's ok, y is mutable + * + * @category conversions + * @since 2.5.0 + */ +export declare const toRecord: <K extends string, A>(r: ReadonlyRecord<K, A>) => Record<K, A> +/** + * Calculate the number of key/value pairs in a `ReadonlyRecord`, + * + * @example + * import { size } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.5.0 + */ +export declare const size: <A>(r: ReadonlyRecord<string, A>) => number +/** + * Test whether a `ReadonlyRecord` is empty. + * + * @example + * import { isEmpty } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * @since 2.5.0 + */ +export declare const isEmpty: <A>(r: ReadonlyRecord<string, A>) => boolean +/** + * @since 2.5.0 + */ +export declare const keys: <K extends string>(r: ReadonlyRecord<K, unknown>) => ReadonlyArray<K> +/** + * Map a `ReadonlyRecord` into an `ReadonlyArray`. + * + * @example + * import { collect } from 'fp-ts/ReadonlyRecord' + * import { Ord } from 'fp-ts/string' + * + * const f = <A>(k: string, a: A) => `${k.toUpperCase()}-${a}`; + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(collect(Ord)(f)(x), ["A-foo", "B-false", "C-3"]); + * + * @since 2.5.0 + */ +export declare function collect( + O: Ord<string> +): <K extends string, A, B>(f: (k: K, a: A) => B) => (r: ReadonlyRecord<K, A>) => ReadonlyArray<B> +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function collect<K extends string, A, B>( + f: (k: K, a: A) => B +): (r: ReadonlyRecord<K, A>) => ReadonlyArray<B> +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`. + * + * @example + * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toReadonlyArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.5.0 + */ +export declare const toReadonlyArray: <K extends string, A>(r: ReadonlyRecord<K, A>) => ReadonlyArray<readonly [K, A]> +/** + * Unfolds a `ReadonlyRecord` into a list of key/value pairs. + * + * Given an `Unfoldable` class type `U` such as `array` or `readonlyArray`, + * it uses the `unfold` function to create an instance of `U`, + * providing an iterating function that iterates over each + * key/value pair in the record sorted alphabetically by key. + * + * @example + * import { array, readonlyArray } from 'fp-ts' + * import { toUnfoldable } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(toUnfoldable(array)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * assert.deepStrictEqual(toUnfoldable(readonlyArray)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * + * @category conversions + * @since 2.5.0 + */ +export declare function toUnfoldable<F extends URIS>( + U: Unfoldable1<F> +): <K extends string, A>(r: ReadonlyRecord<K, A>) => Kind<F, readonly [K, A]> +export declare function toUnfoldable<F>( + U: Unfoldable<F> +): <K extends string, A>(r: ReadonlyRecord<K, A>) => HKT<F, readonly [K, A]> +/** + * Insert or replace a key/value pair in a `ReadonlyRecord`. + * + * @example + * import { upsertAt } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +export declare const upsertAt: <A>(k: string, a: A) => (r: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Test whether or not a key exists in a `ReadonlyRecord`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +export declare const has: <K extends string>(k: string, r: ReadonlyRecord<K, unknown>) => k is K +/** + * Delete a key and value from a `ReadonlyRecord`. + * + * @example + * import { deleteAt } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(deleteAt("a")({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(deleteAt("c")({ a: 1, b: 2 }), { a: 1, b: 2 }); + * + * @since 2.5.0 + */ +export declare function deleteAt<K extends string>( + k: K +): <KS extends string, A>(r: ReadonlyRecord<KS, A>) => ReadonlyRecord<string extends K ? string : Exclude<KS, K>, A> +/** + * Replace a key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +export declare const updateAt: <A>( + k: string, + a: A +) => <K extends string>(r: ReadonlyRecord<K, A>) => Option<ReadonlyRecord<K, A>> +/** + * Applies a mapping function to one specific key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +export declare const modifyAt: <A>( + k: string, + f: (a: A) => A +) => <K extends string>(r: ReadonlyRecord<K, A>) => Option<ReadonlyRecord<K, A>> +/** + * Delete a key and value from a `ReadonlyRecord`, returning the value as well as the subsequent `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `ReadonlyRecord` + * with the entry removed, otherwise it returns `None` + * + * @example + * import { pop } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(pop("a")({ a: 1, b: 2, c: 3 }), option.some([1, { b: 2, c: 3 }])); + * assert.deepStrictEqual(pop("x")({ a: 1, b: 2, c: 3 }), option.none); + * + * @since 2.5.0 + */ +export declare function pop<K extends string>( + k: K +): <KS extends string, A>( + r: ReadonlyRecord<KS, A> +) => Option<readonly [A, ReadonlyRecord<string extends K ? string : Exclude<KS, K>, A>]> +/** + * Test whether one `ReadonlyRecord` contains all of the keys and values + * contained in another `ReadonlyRecord`. + * + * @example + * import { isSubrecord } from 'fp-ts/ReadonlyRecord' + * import { string } from 'fp-ts' + * + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "bar", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "not-bar", c: "baz" }), + * false + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar" })({ a: "foo", b: "bar", c: "baz" }), + * false + * ); + * + * @since 2.5.0 + */ +export declare function isSubrecord<A>(E: Eq<A>): { + (that: ReadonlyRecord<string, A>): (me: ReadonlyRecord<string, A>) => boolean + (me: ReadonlyRecord<string, A>, that: ReadonlyRecord<string, A>): boolean +} +/** + * Lookup the value for a key in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing the value, + * otherwise it returns `None` + * + * @example + * import { lookup } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(lookup("b")({ a: "foo", b: "bar" }), option.some("bar")); + * assert.deepStrictEqual(lookup("c")({ a: "foo", b: "bar" }), option.none); + * + * @since 2.5.0 + */ +export declare function lookup(k: string): <A>(r: ReadonlyRecord<string, A>) => Option<A> +export declare function lookup<A>(k: string, r: ReadonlyRecord<string, A>): Option<A> +/** + * @since 2.5.0 + */ +export declare const empty: ReadonlyRecord<string, never> +/** + * Map a `ReadonlyRecord` passing the keys to the iterating function. + * + * @example + * import { mapWithIndex } from "fp-ts/ReadonlyRecord"; + * + * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`; + * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: "A-3", b: "B-5" }); + * + * @since 2.5.0 + */ +export declare function mapWithIndex<K extends string, A, B>( + f: (k: K, a: A) => B +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<K, B> +/** + * Map a `ReadonlyRecord` passing the values to the iterating function. + * + * @example + * import { map } from "fp-ts/ReadonlyRecord"; + * + * const f = (n: number) => `-${n}-`; + * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: "-3-", b: "-5-" }); + * + * @since 2.5.0 + */ +export declare function map<A, B>(f: (a: A) => B): <K extends string>(fa: ReadonlyRecord<K, A>) => ReadonlyRecord<K, B> +/** + * Reduces a `ReadonlyRecord` passing each key/value pair to the iterating function. + * Entries are processed in the order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduceWithIndex } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceWithIndex(Ord)([] as string[], (k, b, a) => [...b, `${k}-${a}`])(x), [ + * "a-foo", + * "b-false", + * "c-3", + * ]); + * + * @since 2.5.0 + */ +export declare function reduceWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, b: B, a: A) => B) => (fa: ReadonlyRecord<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceWithIndex<K extends string, A, B>( + b: B, + f: (k: K, b: B, a: A) => B +): (fa: ReadonlyRecord<K, A>) => B +/** + * Map and fold a `ReadonlyRecord`. + * Map the `ReadonlyRecord` passing each key/value pair to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMapWithIndex } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (k:string, a: number) => `${k}-${a}` + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMapWithIndex(Ord)(m)(f)(x), "a-1 -> b-2 -> c-3"); + * + * @since 2.5.0 + */ +export declare function foldMapWithIndex( + O: Ord<string> +): <M>(M: Monoid<M>) => <K extends string, A>(f: (k: K, a: A) => M) => (fa: ReadonlyRecord<K, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMapWithIndex<M>( + M: Monoid<M> +): <K extends string, A>(f: (k: K, a: A) => M) => (fa: ReadonlyRecord<K, A>) => M +/** + * Same as `reduceWithIndex`, but reduce starting from the right + * (i.e. in reverse order, from the last to the first entry according to + * the given `Ord`). + * + * @example + * import { reduceRightWithIndex } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRightWithIndex(Ord)([] as string[], (k, a, b) => [...b, `${k}-${a}`])(x), [ + * "c-3", + * "b-false", + * "a-foo", + * ]); + * + * @since 2.5.0 + */ +export declare function reduceRightWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, a: A, b: B) => B) => (fa: ReadonlyRecord<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRightWithIndex<K extends string, A, B>( + b: B, + f: (k: K, a: A, b: B) => B +): (fa: ReadonlyRecord<K, A>) => B +/** + * Create a `ReadonlyRecord` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @category constructors + * @since 2.5.0 + */ +export declare const singleton: <A>(k: string, a: A) => ReadonlyRecord<string, A> +/** + * @since 2.5.0 + */ +export declare function traverseWithIndex<F extends URIS4>( + F: Applicative4<F> +): <K extends string, S, R, E, A, B>( + f: (k: K, a: A) => Kind4<F, S, R, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind4<F, S, R, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A, B>( + f: (k: K, a: A) => Kind2<F, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A, B>( + f: (k: K, a: A) => Kind2<F, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS>( + F: Applicative1<F> +): <K extends string, A, B>( + f: (k: K, a: A) => Kind<F, B> +) => (ta: ReadonlyRecord<K, A>) => Kind<F, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F>( + F: Applicative<F> +): <K extends string, A, B>(f: (k: K, a: A) => HKT<F, B>) => (ta: ReadonlyRecord<K, A>) => HKT<F, ReadonlyRecord<K, B>> +/** + * @since 2.5.0 + */ +export declare function traverse<F extends URIS4>( + F: Applicative4<F> +): <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind4<F, S, R, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS3>( + F: Applicative3<F> +): <R, E, A, B>( + f: (a: A) => Kind3<F, R, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS3, E>( + F: Applicative3C<F, E> +): <R, A, B>( + f: (a: A) => Kind3<F, R, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS2>( + F: Applicative2<F> +): <E, A, B>( + f: (a: A) => Kind2<F, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS2, E>( + F: Applicative2C<F, E> +): <A, B>( + f: (a: A) => Kind2<F, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS>( + F: Applicative1<F> +): <A, B>(f: (a: A) => Kind<F, B>) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind<F, ReadonlyRecord<K, B>> +export declare function traverse<F>( + F: Applicative<F> +): <A, B>(f: (a: A) => HKT<F, B>) => <K extends string>(ta: ReadonlyRecord<K, A>) => HKT<F, ReadonlyRecord<K, B>> +/** + * `ReadonlyRecord` sequencing, + * i.e., take a `ReadonlyRecord` in which elements are monads + * and return a monad of a `ReadonlyRecord` of the base types. + * The following example for instance shows sequencing + * a `ReadonlyRecord<string, Option<number>>` + * into an `Option<ReadonlyRecord<string, number>>`. + * + * `sequence` in `ReadonlyRecord` is equivalent to `sequenceS` in `Apply.ts`. + * + * @example + * import { sequence } from "fp-ts/ReadonlyRecord"; + * import { option } from "fp-ts"; + * import { sequenceS } from "fp-ts/Apply"; + * + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * option.some({ a: 1, b: 2 }) + * ); + * assert.deepStrictEqual(sequence(option.Applicative)({ a: option.some(1), b: option.none }), option.none); + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * sequenceS(option.Applicative)({ a: option.some(1), b: option.some(2) }) + * ); + * + * @since 2.5.0 + */ +export declare function sequence<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A>(ta: ReadonlyRecord<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A>(ta: ReadonlyRecord<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A>(ta: ReadonlyRecord<K, Kind2<F, E, A>>) => Kind2<F, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A>(ta: ReadonlyRecord<K, Kind2<F, E, A>>) => Kind2<F, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS>( + F: Applicative1<F> +): <K extends string, A>(ta: ReadonlyRecord<K, Kind<F, A>>) => Kind<F, ReadonlyRecord<K, A>> +export declare function sequence<F>( + F: Applicative<F> +): <K extends string, A>(ta: ReadonlyRecord<K, HKT<F, A>>) => HKT<F, ReadonlyRecord<K, A>> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * Maps a `ReadonlyRecord` with a function returning an `Either` and + * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s. + * + * @example + * import { partitionMapWithIndex } from "fp-ts/ReadonlyRecord" + * import { either } from "fp-ts" + * + * const f = (key: string, a: number) => + * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`); + * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), { + * left: { + * a: "a is < 0 (-1)", + * }, + * right: { + * b: "b is >= 0 (2)", + * c: "c is >= 0 (123)", + * }, + * }); + * + * @since 2.5.0 + */ +export declare function partitionMapWithIndex<K extends string, A, B, C>( + f: (key: K, a: A) => Either<B, C> +): (fa: ReadonlyRecord<K, A>) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, C>> +/** + * Partition a `ReadonlyRecord` into two parts according to a predicate + * that takes a key and a value. + * + * @example + * import { partitionWithIndex } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual( + * partitionWithIndex((key: string, a: number) => key.length <= 1 && a > 0)({ a: -1, b: 2, ccc: 7 }), + * { + * left: { + * a: -1, + * ccc: 7, + * }, + * right: { + * b: 2, + * }, + * } + * ); + * + * @since 2.5.0 + */ +export declare function partitionWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: ReadonlyRecord<K, A>) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: ReadonlyRecord<K, B>) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: ReadonlyRecord<K, A>) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, A>> +/** + * Maps a `ReadonlyRecord` with an iterating function that takes key and value and + * returns an `Option`, keeping only the `Some` values and discarding `None`s. + * + * @example + * import { filterMapWithIndex } from "fp-ts/ReadonlyRecord" + * import { option } from "fp-ts" + * + * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none); + * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), { + * b: "b2", + * c: "c3", + * }); + * + * @since 2.5.0 + */ +export declare function filterMapWithIndex<K extends string, A, B>( + f: (key: K, a: A) => Option<B> +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<string, B> +/** + * Produce a new `ReadonlyRecord` keeping only the entries that satisfy + * a predicate taking key and value as input. + * + * @example + * import { filterWithIndex } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual( + * filterWithIndex((s: string, v: number) => s.length <= 1 && v > 0)({ a: 1, b: -2, ccc: 3 }), + * { + * a: 1, + * } + * ); + * + * @since 2.5.0 + */ +export declare function filterWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: ReadonlyRecord<K, B>) => ReadonlyRecord<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<string, A> +/** + * Create a `ReadonlyRecord` from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @since 2.5.0 + */ +export declare function fromFoldable<F extends URIS3, A>( + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, readonly [string, A]>) => ReadonlyRecord<string, A> +export declare function fromFoldable<F extends URIS2, A>( + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, readonly [string, A]>) => ReadonlyRecord<string, A> +export declare function fromFoldable<F extends URIS, A>( + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, readonly [string, A]>) => ReadonlyRecord<string, A> +export declare function fromFoldable<F, A>( + M: Magma<A>, + F: FoldableHKT<F> +): (fka: HKT<F, readonly [string, A]>) => ReadonlyRecord<string, A> +/** + * Create a `ReadonlyRecord` from a foldable collection using the specified functions to: + * + * - map to key/value pairs + * - combine values for duplicate keys. + * + * @example + * import { last } from 'fp-ts/Semigroup' + * import { Foldable, zip } from 'fp-ts/ReadonlyArray' + * import { identity } from 'fp-ts/function' + * import { ReadonlyRecord, fromFoldableMap } from 'fp-ts/ReadonlyRecord' + * + * export const zipObject = <K extends string, A>(keys: ReadonlyArray<K>, values: ReadonlyArray<A>): ReadonlyRecord<K, A> => + * fromFoldableMap(last<A>(), Foldable)(zip(keys, values), identity) + * + * assert.deepStrictEqual(zipObject(['a', 'b'], [1, 2, 3]), { a: 1, b: 2 }) + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const users: ReadonlyArray<User> = [ + * { id: 'id1', name: 'name1' }, + * { id: 'id2', name: 'name2' }, + * { id: 'id1', name: 'name3' } + * ] + * + * assert.deepStrictEqual(fromFoldableMap(last<User>(), Foldable)(users, user => [user.id, user]), { + * id1: { id: 'id1', name: 'name3' }, + * id2: { id: 'id2', name: 'name2' } + * }) + * + * @since 2.5.0 + */ +export declare function fromFoldableMap<F extends URIS3, B>( + M: Magma<B>, + F: Foldable3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +export declare function fromFoldableMap<F extends URIS2, B>( + M: Magma<B>, + F: Foldable2<F> +): <E, A>(fa: Kind2<F, E, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +export declare function fromFoldableMap<F extends URIS, B>( + M: Magma<B>, + F: Foldable1<F> +): <A>(fa: Kind<F, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +export declare function fromFoldableMap<F, B>( + M: Magma<B>, + F: FoldableHKT<F> +): <A>(fa: HKT<F, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +/** + * Alias of [`toReadonlyArray`](#toreadonlyarray). + * + * @example + * import { toEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @category conversions + * @since 2.12.0 + */ +export declare const toEntries: <K extends string, A>(r: ReadonlyRecord<K, A>) => ReadonlyArray<readonly [K, A]> +/** + * Converts a `ReadonlyArray` of `[key, value]` tuples into a `ReadonlyRecord`. + * + * @example + * import { fromEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +export declare const fromEntries: <A>(fa: ReadonlyArray<readonly [string, A]>) => ReadonlyRecord<string, A> +/** + * Test if every value in a `ReadonlyRecord` satisfies the predicate. + * + * @example + * import { every } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true); + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false); + * + * @since 2.5.0 + */ +export declare function every<A, B extends A>( + refinement: Refinement<A, B> +): Refinement<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> +export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlyRecord<string, A>> +/** + * Test if at least one value in a `ReadonlyRecord` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.5.0 + */ +export declare function some<A>(predicate: (a: A) => boolean): (r: ReadonlyRecord<string, A>) => boolean +/** + * Given an `Eq` checks if a `ReadonlyRecord` contains an entry with + * value equal to a provided value. + * + * @example + * import { elem } from "fp-ts/ReadonlyRecord" + * import { number } from "fp-ts" + * + * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true); + * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false); + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (fa: ReadonlyRecord<string, A>) => boolean + (a: A, fa: ReadonlyRecord<string, A>): boolean +} +/** + * Union of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const union: <A>( + M: Magma<A> +) => (second: ReadonlyRecord<string, A>) => (first: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Intersection of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +export declare const intersection: <A>( + M: Magma<A> +) => (second: ReadonlyRecord<string, A>) => (first: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Difference between two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const difference: <A>( + second: ReadonlyRecord<string, A> +) => (first: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: ReadonlyRecord<string, A>) => ReadonlyRecord<string, B> + <A>(predicate: Predicate<A>): <B extends A>(fb: ReadonlyRecord<string, B>) => ReadonlyRecord<string, B> + <A>(predicate: Predicate<A>): (fa: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +} +/** + * Maps a `ReadonlyRecord` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/ReadonlyRecord" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const filterMap: <A, B>( + f: (a: A) => Option<B> +) => (fa: ReadonlyRecord<string, A>) => ReadonlyRecord<string, B> +/** + * Partition a `ReadonlyRecord` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): ( + fa: ReadonlyRecord<string, A> + ) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> + <A>(predicate: Predicate<A>): <B extends A>( + fb: ReadonlyRecord<string, B> + ) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, B>> + <A>(predicate: Predicate<A>): ( + fa: ReadonlyRecord<string, A> + ) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, A>> +} +/** + * Maps a `ReadonlyRecord` with a function returning an `Either` and + * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/ReadonlyRecord" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: ReadonlyRecord<string, A>) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, C>> +/** + * Reduces a `ReadonlyRecord` passing each value to the iterating function. + * Entries are processed in order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduce } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduce(Ord)([] as string[], (b, a) => [...b, `-${a}-`])(x), [ + * "-foo-", + * "-false-", + * "-3-", + * ]); + * + * @category folding + * @since 2.5.0 + */ +export declare function reduce( + O: Ord<string> +): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlyRecord<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduce<A, B>(b: B, f: (b: B, a: A) => B): (fa: ReadonlyRecord<string, A>) => B +/** + * Map and fold a `ReadonlyRecord`. + * Map the `ReadonlyRecord` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (a: number) => `-${a}-`; + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMap(Ord)(m)(f)(x), "-1- -> -2- -> -3-"); + * + * @category folding + * @since 2.5.0 + */ +export declare function foldMap( + O: Ord<string> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: ReadonlyRecord<string, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMap<M>(M: Monoid<M>): <A>(f: (a: A) => M) => (fa: ReadonlyRecord<string, A>) => M +/** + * Same as `reduce` but entries are processed _from the right_, + * i.e. in reverse order, from the last to the first entry, according to + * the given `Ord`. + * + * @example + * import { reduceRight } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRight(Ord)([] as string[], (a, b) => [...b, `-${a}-`])(x), [ + * "-3-", + * "-false-", + * "-foo-", + * ]); + * + * @category folding + * @since 2.5.0 + */ +export declare function reduceRight( + O: Ord<string> +): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlyRecord<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRight<A, B>(b: B, f: (a: A, b: B) => B): (fa: ReadonlyRecord<string, A>) => B +/** + * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const compact: <A>(r: ReadonlyRecord<string, Option<A>>) => ReadonlyRecord<string, A> +/** + * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/ReadonlyRecord' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.5.0 + */ +export declare const separate: <A, B>( + r: ReadonlyRecord<string, Either<A, B>> +) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyRecord' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlyRecord<string, A> + } +} +/** + * Produces a `Show` for a `ReadonlyRecord`, given a `Show` for the base type + * (a `Show` produces a human-readable representation of an instance). + * `ReadonlyRecord` entries are sorted by key with the provided `Ord`. + * + * @example + * import { getShow, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Show } from "fp-ts/Show" + * import { Ord } from "fp-ts/string" + * + * const sNumber: Show<number> = { show: (n: number) => `${n}` }; + * const sRecord: Show<ReadonlyRecord<string, number>> = getShow(Ord)(sNumber); + * assert.deepStrictEqual(sRecord.show({ b: 2, a: 1 }), '{ "a": 1, "b": 2 }'); + * + * @category instances + * @since 2.5.0 + */ +export declare function getShow(O: Ord<string>): <A>(S: Show<A>) => Show<ReadonlyRecord<string, A>> +/** + * Use the overload constrained by `Ord` instead. + * + * @category zone of death + * @deprecated + */ +export declare function getShow<A>(S: Show<A>): Show<ReadonlyRecord<string, A>> +/** + * Given an `Eq` for the base type, it produces an `Eq` + * for a `ReadonlyRecord` of that base type. + * + * @example + * import { getEq, ReadonlyRecord } from "fp-ts/ReadonlyRecord"; + * import { string } from "fp-ts"; + * import { Eq } from "fp-ts/Eq"; + * + * const eq: Eq<ReadonlyRecord<string, string>> = getEq(string.Eq); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { b: "bar" }), false); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { a: "foo" }), true); + * + * @category instances + * @since 2.5.0 + */ +export declare function getEq<K extends string, A>(E: Eq<A>): Eq<ReadonlyRecord<K, A>> +/** + * Returns a `Monoid` instance for `ReadonlyRecord`s, given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `ReadonlyRecord`s comining the + * overlapping entries with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getMonoid } from 'fp-ts/ReadonlyRecord' + * + * const M = getMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.5.0 + */ +export declare function getMonoid<K extends string, A>(S: Semigroup<A>): Monoid<ReadonlyRecord<K, A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Takes a value and a `ReadonlyRecord` of functions and returns a + * `ReadonlyRecord` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/ReadonlyRecord" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <B>(fab: Kind<'ReadonlyRecord', (a: A) => B>) => Kind<'ReadonlyRecord', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, string> +/** + * Produces a `Foldable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldable: (O: Ord<string>) => Foldable1<URI> +/** + * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldableWithIndex: (O: Ord<string>) => FoldableWithIndex1<URI, string> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, string> +/** + * Produces a `Traversable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversable: (O: Ord<string>) => Traversable1<URI> +/** + * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversableWithIndex: (O: Ord<string>) => TraversableWithIndex1<URI, string> +/** + * @category filtering + * @since 2.11.0 + */ +export declare const getWitherable: (O: Ord<string>) => Witherable1<URI> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `union`. + * + * @example + * import { getUnionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(S: Semigroup<A>) => Semigroup<ReadonlyRecord<string, A>> +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `ReadonlyRecord`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(S: Semigroup<A>) => Monoid<ReadonlyRecord<string, A>> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(S: Semigroup<A>) => Semigroup<ReadonlyRecord<string, A>> +/** + * Produces a `Magma` with a `concat` function that combines + * two `ReadonlyRecord`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<ReadonlyRecord<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>() => Magma<ReadonlyRecord<string, A>> +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Foldable: Foldable1<URI> +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, string> +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Traversable: Traversable1<URI> +/** + * Use `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, string> +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Witherable: Witherable1<URI> +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const insertAt: <A>(k: string, a: A) => (r: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Use [`has`](#has) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function hasOwnProperty<K extends string>(k: string, r: ReadonlyRecord<K, unknown>): k is K +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RR.Functor` instead of `RR.readonlyRecord` + * (where `RR` is from `import RR from 'fp-ts/ReadonlyRecord'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyRecord: FunctorWithIndex1<URI, string> & + FoldableWithIndex1<URI, string> & + FilterableWithIndex1<URI, string> & + TraversableWithIndex1<URI, string> & + Witherable1<URI> diff --git a/node_modules/fp-ts/es6/ReadonlyRecord.js b/node_modules/fp-ts/es6/ReadonlyRecord.js new file mode 100644 index 0000000..31cb15b --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyRecord.js @@ -0,0 +1,1365 @@ +import { fromEquals } from './Eq'; +import { flow, identity, pipe, SK } from './function'; +import { flap as flap_ } from './Functor'; +import * as _ from './internal'; +import { separated } from './Separated'; +import * as S from './string'; +import { wiltDefault, witherDefault } from './Witherable'; +/** + * Builds a `ReadonlyRecord` by copying a `Record`. + * + * @example + * import { ReadonlyRecord, fromRecord } from "fp-ts/ReadonlyRecord" + * + * const x: Record<string, number> = { a: 1, b: 2 }; + * const y: ReadonlyRecord<string, number> = fromRecord(x); + * assert.deepStrictEqual(x,y); + * // `y.a = 5` gives compiler error + * + * @category conversions + * @since 2.5.0 + */ +export var fromRecord = function (r) { return Object.assign({}, r); }; +/** + * Builds a mutable `Record` from a `ReadonlyRecord`. + * + * @example + * import { ReadonlyRecord, toRecord } from "fp-ts/ReadonlyRecord" + * + * const x: ReadonlyRecord<string, number> = { a: 1, b: 2 }; + * const y: Record<string, number> = toRecord(x); + * assert.deepStrictEqual(x,y); + * y.a = 5; // it's ok, y is mutable + * + * @category conversions + * @since 2.5.0 + */ +export var toRecord = function (r) { return Object.assign({}, r); }; +/** + * Calculate the number of key/value pairs in a `ReadonlyRecord`, + * + * @example + * import { size } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.5.0 + */ +export var size = function (r) { return Object.keys(r).length; }; +/** + * Test whether a `ReadonlyRecord` is empty. + * + * @example + * import { isEmpty } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * @since 2.5.0 + */ +export var isEmpty = function (r) { + for (var k in r) { + if (_.has.call(r, k)) { + return false; + } + } + return true; +}; +var keys_ = function (O) { + return function (r) { + return Object.keys(r).sort(O.compare); + }; +}; +/** + * @since 2.5.0 + */ +export var keys = /*#__PURE__*/ keys_(S.Ord); +export function collect(O) { + if (typeof O === 'function') { + return collect(S.Ord)(O); + } + var keysO = keys_(O); + return function (f) { + return function (r) { + var out = []; + for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) { + var key = _a[_i]; + out.push(f(key, r[key])); + } + return out; + }; + }; +} +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`. + * + * @example + * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toReadonlyArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.5.0 + */ +export var toReadonlyArray = +/*#__PURE__*/ collect(S.Ord)(function (k, a) { return [k, a]; }); +export function toUnfoldable(U) { + return function (r) { + var sas = toReadonlyArray(r); + var len = sas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `ReadonlyRecord`. + * + * @example + * import { upsertAt } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +export var upsertAt = function (k, a) { + return function (r) { + if (_.has.call(r, k) && r[k] === a) { + return r; + } + var out = Object.assign({}, r); + out[k] = a; + return out; + }; +}; +/** + * Test whether or not a key exists in a `ReadonlyRecord`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +export var has = function (k, r) { return _.has.call(r, k); }; +export function deleteAt(k) { + return function (r) { + if (!_.has.call(r, k)) { + return r; + } + var out = Object.assign({}, r); + delete out[k]; + return out; + }; +} +/** + * Replace a key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +export var updateAt = function (k, a) { + return function (r) { + if (!has(k, r)) { + return _.none; + } + if (r[k] === a) { + return _.some(r); + } + var out = Object.assign({}, r); + out[k] = a; + return _.some(out); + }; +}; +/** + * Applies a mapping function to one specific key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +export var modifyAt = function (k, f) { + return function (r) { + if (!has(k, r)) { + return _.none; + } + var next = f(r[k]); + if (next === r[k]) { + return _.some(r); + } + var out = Object.assign({}, r); + out[k] = next; + return _.some(out); + }; +}; +export function pop(k) { + var deleteAtk = deleteAt(k); + return function (r) { + var oa = lookup(k, r); + return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]); + }; +} +export function isSubrecord(E) { + return function (me, that) { + if (that === undefined) { + var isSubrecordE_1 = isSubrecord(E); + return function (that) { return isSubrecordE_1(that, me); }; + } + for (var k in me) { + if (!_.has.call(that, k) || !E.equals(me[k], that[k])) { + return false; + } + } + return true; + }; +} +export function lookup(k, r) { + if (r === undefined) { + return function (r) { return lookup(k, r); }; + } + return _.has.call(r, k) ? _.some(r[k]) : _.none; +} +/** + * @since 2.5.0 + */ +export var empty = {}; +export function mapWithIndex(f) { + return function (r) { + var out = {}; + for (var k in r) { + if (_.has.call(r, k)) { + out[k] = f(k, r[k]); + } + } + return out; + }; +} +export function map(f) { + return mapWithIndex(function (_, a) { return f(a); }); +} +export function reduceWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 2) { + return reduceWithIndex(S.Ord).apply(void 0, args); + } + var keysO = keys_(args[0]); + return function (b, f) { return function (fa) { + var out = b; + var ks = keysO(fa); + var len = ks.length; + for (var i = 0; i < len; i++) { + var k = ks[i]; + out = f(k, out, fa[k]); + } + return out; + }; }; +} +export function foldMapWithIndex(O) { + if ('compare' in O) { + var keysO_1 = keys_(O); + return function (M) { + return function (f) { + return function (fa) { + var out = M.empty; + var ks = keysO_1(fa); + var len = ks.length; + for (var i = 0; i < len; i++) { + var k = ks[i]; + out = M.concat(out, f(k, fa[k])); + } + return out; + }; + }; + }; + } + return foldMapWithIndex(S.Ord)(O); +} +export function reduceRightWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 2) { + return reduceRightWithIndex(S.Ord).apply(void 0, args); + } + var keysO = keys_(args[0]); + return function (b, f) { return function (fa) { + var out = b; + var ks = keysO(fa); + var len = ks.length; + for (var i = len - 1; i >= 0; i--) { + var k = ks[i]; + out = f(k, fa[k], out); + } + return out; + }; }; +} +/** + * Create a `ReadonlyRecord` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @category constructors + * @since 2.5.0 + */ +export var singleton = function (k, a) { + var _a; + return (_a = {}, _a[k] = a, _a); +}; +export function traverseWithIndex(F) { + var traverseWithIndexOF = _traverseWithIndex(S.Ord)(F); + return function (f) { return function (ta) { return traverseWithIndexOF(ta, f); }; }; +} +export function traverse(F) { + var traverseOF = _traverse(S.Ord)(F); + return function (f) { return function (ta) { return traverseOF(ta, f); }; }; +} +export function sequence(F) { + return _sequence(S.Ord)(F); +} +/** + * @category filtering + * @since 2.6.5 + */ +export var wither = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map(pipe(fa, traverseF(f)), compact); }; }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wilt = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map(pipe(fa, traverseF(f)), separate); }; }; +}; +export function partitionMapWithIndex(f) { + return function (r) { + var left = {}; + var right = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var e = f(k, r[k]); + switch (e._tag) { + case 'Left': + left[k] = e.left; + break; + case 'Right': + right[k] = e.right; + break; + } + } + } + return separated(left, right); + }; +} +export function partitionWithIndex(predicateWithIndex) { + return function (r) { + var left = {}; + var right = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var a = r[k]; + if (predicateWithIndex(k, a)) { + right[k] = a; + } + else { + left[k] = a; + } + } + } + return separated(left, right); + }; +} +export function filterMapWithIndex(f) { + return function (r) { + var out = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var ob = f(k, r[k]); + if (_.isSome(ob)) { + out[k] = ob.value; + } + } + } + return out; + }; +} +export function filterWithIndex(predicateWithIndex) { + return function (fa) { + var out = {}; + var changed = false; + for (var key in fa) { + if (_.has.call(fa, key)) { + var a = fa[key]; + if (predicateWithIndex(key, a)) { + out[key] = a; + } + else { + changed = true; + } + } + } + return changed ? out : fa; + }; +} +export function fromFoldable(M, F) { + var fromFoldableMapM = fromFoldableMap(M, F); + return function (fka) { return fromFoldableMapM(fka, identity); }; +} +export function fromFoldableMap(M, F) { + return function (ta, f) { + return F.reduce(ta, {}, function (r, a) { + var _a = f(a), k = _a[0], b = _a[1]; + r[k] = _.has.call(r, k) ? M.concat(r[k], b) : b; + return r; + }); + }; +} +/** + * Alias of [`toReadonlyArray`](#toreadonlyarray). + * + * @example + * import { toEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @category conversions + * @since 2.12.0 + */ +export var toEntries = toReadonlyArray; +/** + * Converts a `ReadonlyArray` of `[key, value]` tuples into a `ReadonlyRecord`. + * + * @example + * import { fromEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +export var fromEntries = function (fa) { + var out = {}; + for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) { + var a = fa_1[_i]; + out[a[0]] = a[1]; + } + return out; +}; +export function every(predicate) { + return function (r) { + for (var k in r) { + if (!predicate(r[k])) { + return false; + } + } + return true; + }; +} +/** + * Test if at least one value in a `ReadonlyRecord` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.5.0 + */ +export function some(predicate) { + return function (r) { + for (var k in r) { + if (predicate(r[k])) { + return true; + } + } + return false; + }; +} +export function elem(E) { + return function (a, fa) { + if (fa === undefined) { + var elemE_1 = elem(E); + return function (fa) { return elemE_1(a, fa); }; + } + for (var k in fa) { + if (E.equals(fa[k], a)) { + return true; + } + } + return false; + }; +} +/** + * Union of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export var union = function (M) { + return function (second) { + return function (first) { + if (isEmpty(first)) { + return second; + } + if (isEmpty(second)) { + return first; + } + var out = {}; + for (var k in first) { + if (has(k, second)) { + out[k] = M.concat(first[k], second[k]); + } + else { + out[k] = first[k]; + } + } + for (var k in second) { + if (!has(k, out)) { + out[k] = second[k]; + } + } + return out; + }; + }; +}; +/** + * Intersection of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +export var intersection = function (M) { + return function (second) { + return function (first) { + if (isEmpty(first) || isEmpty(second)) { + return empty; + } + var out = {}; + for (var k in first) { + if (has(k, second)) { + out[k] = M.concat(first[k], second[k]); + } + } + return out; + }; + }; +}; +/** + * Difference between two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export var difference = function (second) { + return function (first) { + if (isEmpty(first)) { + return second; + } + if (isEmpty(second)) { + return first; + } + var out = {}; + for (var k in first) { + if (!has(k, second)) { + out[k] = first[k]; + } + } + for (var k in second) { + if (!has(k, first)) { + out[k] = second[k]; + } + } + return out; + }; +}; +/** @internal */ +export var _map = function (fa, f) { return pipe(fa, map(f)); }; +/** @internal */ +/* istanbul ignore next */ +export var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); }; +/** @internal */ +/* istanbul ignore next */ +export var _reduce = function (O) { + var reduceO = reduce(O); + return function (fa, b, f) { return pipe(fa, reduceO(b, f)); }; +}; +/** @internal */ +export var _foldMap = function (O) { return function (M) { + var foldMapM = foldMap(O)(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; }; +/** @internal */ +/* istanbul ignore next */ +export var _reduceRight = function (O) { + var reduceRightO = reduceRight(O); + return function (fa, b, f) { return pipe(fa, reduceRightO(b, f)); }; +}; +/** @internal */ +/* istanbul ignore next */ +export var _filter = function (fa, predicate) { + return pipe(fa, filter(predicate)); +}; +/** @internal */ +/* istanbul ignore next */ +export var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); }; +/** @internal */ +/* istanbul ignore next */ +export var _partition = function (fa, predicate) { return pipe(fa, partition(predicate)); }; +/** @internal */ +/* istanbul ignore next */ +export var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); }; +/** @internal */ +/* istanbul ignore next */ +export var _reduceWithIndex = function (O) { + var reduceWithIndexO = reduceWithIndex(O); + return function (fa, b, f) { return pipe(fa, reduceWithIndexO(b, f)); }; +}; +/** @internal */ +export var _foldMapWithIndex = function (O) { + var foldMapWithIndexO = foldMapWithIndex(O); + return function (M) { + var foldMapWithIndexM = foldMapWithIndexO(M); + return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); }; + }; +}; +/** @internal */ +/* istanbul ignore next */ +export var _reduceRightWithIndex = function (O) { + var reduceRightWithIndexO = reduceRightWithIndex(O); + return function (fa, b, f) { return pipe(fa, reduceRightWithIndexO(b, f)); }; +}; +/** @internal */ +/* istanbul ignore next */ +export var _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); }; +/** @internal */ +/* istanbul ignore next */ +export var _partitionWithIndex = function (fa, predicateWithIndex) { + return pipe(fa, partitionWithIndex(predicateWithIndex)); +}; +/** @internal */ +/* istanbul ignore next */ +export var _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); }; +/** @internal */ +/* istanbul ignore next */ +export var _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); }; +/** @internal */ +export var _traverse = function (O) { + var traverseWithIndexO = _traverseWithIndex(O); + return function (F) { + var traverseWithIndexOF = traverseWithIndexO(F); + return function (ta, f) { return traverseWithIndexOF(ta, flow(SK, f)); }; + }; +}; +/** @internal */ +export var _sequence = function (O) { + var traverseO = _traverse(O); + return function (F) { + var traverseOF = traverseO(F); + return function (ta) { return traverseOF(ta, identity); }; + }; +}; +var _traverseWithIndex = function (O) { + return function (F) { + var keysO = keys_(O); + return function (ta, f) { + var ks = keysO(ta); + if (ks.length === 0) { + return F.of(empty); + } + var fr = F.of({}); + var _loop_1 = function (key) { + fr = F.ap(F.map(fr, function (r) { return function (b) { + var _a; + return Object.assign({}, r, (_a = {}, _a[key] = b, _a)); + }; }), f(key, ta[key])); + }; + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + _loop_1(key); + } + return fr; + }; + }; +}; +/** + * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export var filter = function (predicate) { + return filterWithIndex(function (_, a) { return predicate(a); }); +}; +/** + * Maps a `ReadonlyRecord` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/ReadonlyRecord" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export var filterMap = function (f) { return filterMapWithIndex(function (_, a) { return f(a); }); }; +/** + * Partition a `ReadonlyRecord` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +export var partition = function (predicate) { + return partitionWithIndex(function (_, a) { return predicate(a); }); +}; +/** + * Maps a `ReadonlyRecord` with a function returning an `Either` and + * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/ReadonlyRecord" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +export var partitionMap = function (f) { + return partitionMapWithIndex(function (_, a) { return f(a); }); +}; +export function reduce() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 1) { + var reduceWithIndexO_1 = reduceWithIndex(args[0]); + return function (b, f) { return reduceWithIndexO_1(b, function (_, b, a) { return f(b, a); }); }; + } + return reduce(S.Ord).apply(void 0, args); +} +export function foldMap(O) { + if ('compare' in O) { + var foldMapWithIndexO_1 = foldMapWithIndex(O); + return function (M) { + var foldMapWithIndexM = foldMapWithIndexO_1(M); + return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); }; + }; + } + return foldMap(S.Ord)(O); +} +export function reduceRight() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 1) { + var reduceRightWithIndexO_1 = reduceRightWithIndex(args[0]); + return function (b, f) { return reduceRightWithIndexO_1(b, function (_, b, a) { return f(b, a); }); }; + } + return reduceRight(S.Ord).apply(void 0, args); +} +/** + * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export var compact = function (r) { + var out = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var oa = r[k]; + if (_.isSome(oa)) { + out[k] = oa.value; + } + } + } + return out; +}; +/** + * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/ReadonlyRecord' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.5.0 + */ +export var separate = function (r) { + var left = {}; + var right = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var e = r[k]; + if (_.isLeft(e)) { + left[k] = e.left; + } + else { + right[k] = e.right; + } + } + } + return separated(left, right); +}; +/** + * @category type lambdas + * @since 2.5.0 + */ +export var URI = 'ReadonlyRecord'; +export function getShow(O) { + if ('compare' in O) { + return function (S) { return ({ + show: function (r) { + var elements = collect(O)(function (k, a) { return "".concat(JSON.stringify(k), ": ").concat(S.show(a)); })(r).join(', '); + return elements === '' ? '{}' : "{ ".concat(elements, " }"); + } + }); }; + } + return getShow(S.Ord)(O); +} +export function getEq(E) { + var isSubrecordE = isSubrecord(E); + return fromEquals(function (x, y) { return isSubrecordE(x)(y) && isSubrecordE(y)(x); }); +} +export function getMonoid(S) { + return { + concat: function (first, second) { + if (isEmpty(first)) { + return second; + } + if (isEmpty(second)) { + return first; + } + var r = Object.assign({}, first); + for (var k in second) { + if (_.has.call(second, k)) { + r[k] = _.has.call(first, k) ? S.concat(first[k], second[k]) : second[k]; + } + } + return r; + }, + empty: empty + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Takes a value and a `ReadonlyRecord` of functions and returns a + * `ReadonlyRecord` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/ReadonlyRecord" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.7.0 + */ +export var FunctorWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * Produces a `Foldable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export var getFoldable = function (O) { return ({ + URI: URI, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O) +}); }; +/** + * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export var getFoldableWithIndex = function (O) { return ({ + URI: URI, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + reduceWithIndex: _reduceWithIndex(O), + foldMapWithIndex: _foldMapWithIndex(O), + reduceRightWithIndex: _reduceRightWithIndex(O) +}); }; +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FilterableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex +}; +/** + * Produces a `Traversable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export var getTraversable = function (O) { return ({ + URI: URI, + map: _map, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + traverse: _traverse(O), + sequence: _sequence(O) +}); }; +/** + * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export var getTraversableWithIndex = function (O) { return ({ + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + reduceWithIndex: _reduceWithIndex(O), + foldMapWithIndex: _foldMapWithIndex(O), + reduceRightWithIndex: _reduceRightWithIndex(O), + traverse: _traverse(O), + sequence: _sequence(O), + traverseWithIndex: _traverseWithIndex(O) +}); }; +/** + * @category filtering + * @since 2.11.0 + */ +export var getWitherable = function (O) { + var T = getTraversable(O); + return { + URI: URI, + map: _map, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + traverse: T.traverse, + sequence: T.sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: witherDefault(T, Compactable), + wilt: wiltDefault(T, Compactable) + }; +}; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `union`. + * + * @example + * import { getUnionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (S) { + var unionS = union(S); + return { + concat: function (first, second) { return unionS(second)(first); } + }; +}; +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `ReadonlyRecord`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +export var getUnionMonoid = function (S) { return ({ + concat: getUnionSemigroup(S).concat, + empty: empty +}); }; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +export var getIntersectionSemigroup = function (S) { + var intersectionS = intersection(S); + return { + concat: function (first, second) { return intersectionS(second)(first); } + }; +}; +/** + * Produces a `Magma` with a `concat` function that combines + * two `ReadonlyRecord`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<ReadonlyRecord<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function () { return ({ + concat: function (first, second) { return difference(second)(first); } +}); }; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Foldable = { + URI: URI, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord) +}; +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var FoldableWithIndex = { + URI: URI, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord) +}; +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence +}; +/** + * Use `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var TraversableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord) +}; +var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable); +var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable); +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Witherable = { + URI: URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt +}; +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var insertAt = upsertAt; +export function hasOwnProperty(k, r) { + return _.has.call(r === undefined ? this : r, k); +} +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RR.Functor` instead of `RR.readonlyRecord` + * (where `RR` is from `import RR from 'fp-ts/ReadonlyRecord'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var readonlyRecord = { + URI: URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord), + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord), + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/es6/ReadonlySet.d.ts b/node_modules/fp-ts/es6/ReadonlySet.d.ts new file mode 100644 index 0000000..41c7169 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlySet.d.ts @@ -0,0 +1,258 @@ +/** + * @since 2.5.0 + */ +import { Either } from './Either' +import { Eq } from './Eq' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromSet: <A>(s: Set<A>) => ReadonlySet<A> +/** + * Create a set with one element + * + * @category constructors + * @since 2.5.0 + */ +export declare const singleton: <A>(a: A) => ReadonlySet<A> +/** + * Create a `ReadonlySet` from a `ReadonlyArray` + * + * @category conversions + * @since 2.10.0 + */ +export declare const fromReadonlyArray: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlySet<A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare function toSet<A>(s: ReadonlySet<A>): Set<A> +/** + * Projects a Set through a function + * + * @since 2.5.0 + */ +export declare function map<B>(E: Eq<B>): <A>(f: (x: A) => B) => (set: ReadonlySet<A>) => ReadonlySet<B> +/** + * @since 2.5.0 + */ +export declare function chain<B>(E: Eq<B>): <A>(f: (x: A) => ReadonlySet<B>) => (set: ReadonlySet<A>) => ReadonlySet<B> +/** + * @since 2.5.0 + */ +export declare function filter<A, B extends A>(refinement: Refinement<A, B>): (set: ReadonlySet<A>) => ReadonlySet<B> +export declare function filter<A>(predicate: Predicate<A>): <B extends A>(set: ReadonlySet<B>) => ReadonlySet<B> +export declare function filter<A>(predicate: Predicate<A>): (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * @since 2.5.0 + */ +export declare function partition<A, B extends A>( + refinement: Refinement<A, B> +): (set: ReadonlySet<A>) => Separated<ReadonlySet<A>, ReadonlySet<B>> +export declare function partition<A>( + predicate: Predicate<A> +): <B extends A>(set: ReadonlySet<B>) => Separated<ReadonlySet<B>, ReadonlySet<B>> +export declare function partition<A>( + predicate: Predicate<A> +): (set: ReadonlySet<A>) => Separated<ReadonlySet<A>, ReadonlySet<A>> +/** + * Form the union of two sets + * + * @since 2.5.0 + */ +export declare function union<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A> + (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A> +} +/** + * The set of elements which are in both the first and second set + * + * @since 2.5.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A> + (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A> +} +/** + * @since 2.5.0 + */ +export declare function partitionMap<B, C>( + EB: Eq<B>, + EC: Eq<C> +): <A>(f: (a: A) => Either<B, C>) => (set: ReadonlySet<A>) => Separated<ReadonlySet<B>, ReadonlySet<C>> +/** + * Form the set difference (`x` - `y`) + * + * @example + * import { difference } from 'fp-ts/ReadonlySet' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(new Set([1, 2]), difference(N.Eq)(new Set([1, 3]))), new Set([2])) + * + * @since 2.5.0 + */ +export declare function difference<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A> + (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A> +} +/** + * @since 2.5.0 + */ +export declare function reduce<A>(O: Ord<A>): <B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlySet<A>) => B +/** + * @since 2.5.0 + */ +export declare function foldMap<A, M>(O: Ord<A>, M: Monoid<M>): (f: (a: A) => M) => (fa: ReadonlySet<A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <A>(O: Ord<A>) => <B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlySet<A>) => B +/** + * Insert a value into a set + * + * @since 2.5.0 + */ +export declare function insert<A>(E: Eq<A>): (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * Delete a value from a set + * + * @since 2.5.0 + */ +export declare const remove: <A>(E: Eq<A>) => (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.10.0 + */ +export declare const toggle: <A>(E: Eq<A>) => (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * @since 2.5.0 + */ +export declare const compact: <A>(E: Eq<A>) => (fa: ReadonlySet<Option<A>>) => ReadonlySet<A> +/** + * @since 2.5.0 + */ +export declare function separate<E, A>( + EE: Eq<E>, + EA: Eq<A> +): (fa: ReadonlySet<Either<E, A>>) => Separated<ReadonlySet<E>, ReadonlySet<A>> +/** + * @since 2.5.0 + */ +export declare function filterMap<B>(E: Eq<B>): <A>(f: (a: A) => Option<B>) => (fa: ReadonlySet<A>) => ReadonlySet<B> +/** + * @since 2.5.0 + */ +export declare const empty: ReadonlySet<never> +/** + * Test whether a `ReadonlySet` is empty. + * + * @since 2.10.0 + */ +export declare const isEmpty: <A>(set: ReadonlySet<A>) => boolean +/** + * Calculate the number of elements in a `ReadonlySet`. + * + * @since 2.10.0 + */ +export declare const size: <A>(set: ReadonlySet<A>) => number +/** + * @since 2.5.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (set: ReadonlySet<A>) => boolean +/** + * @since 2.5.0 + */ +export declare function every<A, B extends A>(refinement: Refinement<A, B>): Refinement<ReadonlySet<A>, ReadonlySet<B>> +export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlySet<A>> +/** + * `true` if and only if every element in the first set is an element of the second set + * + * @since 2.5.0 + */ +export declare function isSubset<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => boolean + (me: ReadonlySet<A>, that: ReadonlySet<A>): boolean +} +/** + * Test if a value is a member of a set + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (set: ReadonlySet<A>) => boolean + (a: A, set: ReadonlySet<A>): boolean +} +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlySet`. + * + * @category conversions + * @since 2.5.0 + */ +export declare const toReadonlyArray: <A>(O: Ord<A>) => (set: ReadonlySet<A>) => ReadonlyArray<A> +/** + * @category type lambdas + * @since 2.11.0 + */ +export declare const URI = 'ReadonlySet' +/** + * @category type lambdas + * @since 2.11.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlySet<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare function getShow<A>(S: Show<A>): Show<ReadonlySet<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getEq<A>(E: Eq<A>): Eq<ReadonlySet<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlySet<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<ReadonlySet<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlySet<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<ReadonlySet<A>> +/** + * Use [`fromReadonlyArray`](#fromreadonlyarray) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const fromArray: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlySet<A> diff --git a/node_modules/fp-ts/es6/ReadonlySet.js b/node_modules/fp-ts/es6/ReadonlySet.js new file mode 100644 index 0000000..a279aa4 --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlySet.js @@ -0,0 +1,448 @@ +import { fromEquals } from './Eq'; +import { identity } from './function'; +import { not } from './Predicate'; +import { separated } from './Separated'; +/** + * @category conversions + * @since 2.5.0 + */ +export var fromSet = function (s) { return new Set(s); }; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Create a set with one element + * + * @category constructors + * @since 2.5.0 + */ +export var singleton = function (a) { return new Set([a]); }; +/** + * Create a `ReadonlySet` from a `ReadonlyArray` + * + * @category conversions + * @since 2.10.0 + */ +export var fromReadonlyArray = function (E) { + return function (as) { + var len = as.length; + var out = new Set(); + var has = elem(E); + for (var i = 0; i < len; i++) { + var a = as[i]; + if (!has(a, out)) { + out.add(a); + } + } + return out; + }; +}; +/** + * @category conversions + * @since 2.5.0 + */ +export function toSet(s) { + return new Set(s); +} +/** + * Projects a Set through a function + * + * @since 2.5.0 + */ +export function map(E) { + var elemE = elem(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + var v = f(e); + if (!elemE(v, r)) { + r.add(v); + } + }); + return r; + }; }; +} +/** + * @since 2.5.0 + */ +export function chain(E) { + var elemE = elem(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + f(e).forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + }); + return r; + }; }; +} +export function filter(predicate) { + return function (set) { + var values = set.values(); + var e; + var r = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + r.add(a); + } + } + return r; + }; +} +export function partition(predicate) { + return function (set) { + var values = set.values(); + var e; + var right = new Set(); + var left = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + right.add(a); + } + else { + left.add(a); + } + } + return separated(left, right); + }; +} +export function union(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var unionE_1 = union(E); + return function (that) { return unionE_1(me, that); }; + } + if (isEmpty(me)) { + return that; + } + if (isEmpty(that)) { + return me; + } + var r = new Set(me); + that.forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + return r; + }; +} +export function intersection(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var intersectionE_1 = intersection(E); + return function (that) { return intersectionE_1(that, me); }; + } + if (isEmpty(me) || isEmpty(that)) { + return empty; + } + var r = new Set(); + me.forEach(function (e) { + if (elemE(e, that)) { + r.add(e); + } + }); + return r; + }; +} +/** + * @since 2.5.0 + */ +export function partitionMap(EB, EC) { + return function (f) { + return function (set) { + var values = set.values(); + var e; + var left = new Set(); + var right = new Set(); + var hasB = elem(EB); + var hasC = elem(EC); + while (!(e = values.next()).done) { + var v = f(e.value); + switch (v._tag) { + case 'Left': + if (!hasB(v.left, left)) { + left.add(v.left); + } + break; + case 'Right': + if (!hasC(v.right, right)) { + right.add(v.right); + } + break; + } + } + return separated(left, right); + }; + }; +} +export function difference(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var differenceE_1 = difference(E); + return function (that) { return differenceE_1(that, me); }; + } + return filter(function (a) { return !elemE(a, that); })(me); + }; +} +/** + * @since 2.5.0 + */ +export function reduce(O) { + var toReadonlyArrayO = toReadonlyArray(O); + return function (b, f) { return function (fa) { return toReadonlyArrayO(fa).reduce(f, b); }; }; +} +/** + * @since 2.5.0 + */ +export function foldMap(O, M) { + var toReadonlyArrayO = toReadonlyArray(O); + return function (f) { return function (fa) { return toReadonlyArrayO(fa).reduce(function (b, a) { return M.concat(b, f(a)); }, M.empty); }; }; +} +/** + * @category folding + * @since 2.11.0 + */ +export var reduceRight = function (O) { + var toReadonlyArrayO = toReadonlyArray(O); + return function (b, f) { return function (fa) { return toReadonlyArrayO(fa).reduceRight(function (b, a) { return f(a, b); }, b); }; }; +}; +/** + * Insert a value into a set + * + * @since 2.5.0 + */ +export function insert(E) { + var elemE = elem(E); + return function (a) { return function (set) { + if (!elemE(a)(set)) { + var r = new Set(set); + r.add(a); + return r; + } + else { + return set; + } + }; }; +} +/** + * Delete a value from a set + * + * @since 2.5.0 + */ +export var remove = function (E) { + return function (a) { + return function (set) { + return filter(function (ax) { return !E.equals(a, ax); })(set); + }; + }; +}; +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.10.0 + */ +export var toggle = function (E) { + var elemE = elem(E); + var removeE = remove(E); + var insertE = insert(E); + return function (a) { return function (set) { return (elemE(a, set) ? removeE : insertE)(a)(set); }; }; +}; +/** + * @since 2.5.0 + */ +export var compact = function (E) { return filterMap(E)(identity); }; +/** + * @since 2.5.0 + */ +export function separate(EE, EA) { + return function (fa) { + var elemEE = elem(EE); + var elemEA = elem(EA); + var left = new Set(); + var right = new Set(); + fa.forEach(function (e) { + switch (e._tag) { + case 'Left': + if (!elemEE(e.left, left)) { + left.add(e.left); + } + break; + case 'Right': + if (!elemEA(e.right, right)) { + right.add(e.right); + } + break; + } + }); + return separated(left, right); + }; +} +/** + * @since 2.5.0 + */ +export function filterMap(E) { + var elemE = elem(E); + return function (f) { return function (fa) { + var r = new Set(); + fa.forEach(function (a) { + var ob = f(a); + if (ob._tag === 'Some' && !elemE(ob.value, r)) { + r.add(ob.value); + } + }); + return r; + }; }; +} +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.5.0 + */ +export var empty = new Set(); +/** + * Test whether a `ReadonlySet` is empty. + * + * @since 2.10.0 + */ +export var isEmpty = function (set) { return set.size === 0; }; +/** + * Calculate the number of elements in a `ReadonlySet`. + * + * @since 2.10.0 + */ +export var size = function (set) { return set.size; }; +/** + * @since 2.5.0 + */ +export var some = function (predicate) { + return function (set) { + var values = set.values(); + var e; + var found = false; + while (!found && !(e = values.next()).done) { + found = predicate(e.value); + } + return found; + }; +}; +export function every(predicate) { + return not(some(not(predicate))); +} +export function isSubset(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var isSubsetE_1 = isSubset(E); + return function (that) { return isSubsetE_1(that, me); }; + } + return every(function (a) { return elemE(a, that); })(me); + }; +} +export function elem(E) { + return function (a, set) { + if (set === undefined) { + var elemE_1 = elem(E); + return function (set) { return elemE_1(a, set); }; + } + var values = set.values(); + var e; + var found = false; + while (!found && !(e = values.next()).done) { + found = E.equals(a, e.value); + } + return found; + }; +} +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlySet`. + * + * @category conversions + * @since 2.5.0 + */ +export var toReadonlyArray = function (O) { + return function (set) { + var out = []; + set.forEach(function (e) { return out.push(e); }); + return out.sort(O.compare); + }; +}; +/** + * @category type lambdas + * @since 2.11.0 + */ +export var URI = 'ReadonlySet'; +/** + * @category instances + * @since 2.5.0 + */ +export function getShow(S) { + return { + show: function (s) { + var entries = []; + s.forEach(function (a) { + entries.push(S.show(a)); + }); + return "new Set([".concat(entries.sort().join(', '), "])"); + } + }; +} +/** + * @category instances + * @since 2.5.0 + */ +export function getEq(E) { + var subsetE = isSubset(E); + return fromEquals(function (x, y) { return subsetE(x, y) && subsetE(y, x); }); +} +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E) { return ({ + concat: union(E) +}); }; +/** + * @category instances + * @since 2.5.0 + */ +export var getUnionMonoid = function (E) { return ({ + concat: getUnionSemigroup(E).concat, + empty: empty +}); }; +/** + * @category instances + * @since 2.5.0 + */ +export var getIntersectionSemigroup = function (E) { return ({ + concat: intersection(E) +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function (E) { return ({ + concat: difference(E) +}); }; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`fromReadonlyArray`](#fromreadonlyarray) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var fromArray = fromReadonlyArray; diff --git a/node_modules/fp-ts/es6/ReadonlyTuple.d.ts b/node_modules/fp-ts/es6/ReadonlyTuple.d.ts new file mode 100644 index 0000000..945a1fa --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyTuple.d.ts @@ -0,0 +1,203 @@ +/** + * @since 2.5.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { ChainRec2C } from './ChainRec' +import { Comonad2 } from './Comonad' +import { Foldable2 } from './Foldable' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +import { Semigroupoid2 } from './Semigroupoid' +import { PipeableTraverse2, Traversable2 } from './Traversable' +/** + * @since 2.5.0 + */ +export declare function fst<A, E>(ea: readonly [A, E]): A +/** + * @since 2.5.0 + */ +export declare function snd<A, E>(ea: readonly [A, E]): E +/** + * @since 2.5.0 + */ +export declare const swap: <A, E>(ea: readonly [A, E]) => readonly [E, A] +/** + * @category instances + * @since 2.5.0 + */ +export declare function getApply<S>(S: Semigroup<S>): Apply2C<URI, S> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getApplicative<M>(M: Monoid<M>): Applicative2C<URI, M> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getChain<S>(S: Semigroup<S>): Chain2C<URI, S> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getMonad<M>(M: Monoid<M>): Monad2C<URI, M> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getChainRec<M>(M: Monoid<M>): ChainRec2C<URI, M> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.5.0 + */ +export declare const bimap: <E, G, A, B>( + mapSnd: (e: E) => G, + mapFst: (a: A) => B +) => (fa: readonly [A, E]) => readonly [B, G] +/** + * Map a function over the first component of a `ReadonlyTuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export declare const mapFst: <A, B>(f: (a: A) => B) => <E>(fa: readonly [A, E]) => readonly [B, E] +/** + * Map a function over the second component of a `ReadonlyTuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export declare const mapSnd: <E, G>(f: (e: E) => G) => <A>(fa: readonly [A, E]) => readonly [A, G] +/** + * @since 2.5.0 + */ +export declare const compose: <A, B>(ab: readonly [B, A]) => <C>(bc: readonly [C, B]) => readonly [C, A] +/** + * @since 2.5.0 + */ +export declare const extend: <E, A, B>(f: (wa: readonly [A, E]) => B) => (wa: readonly [A, E]) => readonly [B, E] +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <E, A>(wa: readonly [A, E]) => A +/** + * @since 2.5.0 + */ +export declare const duplicate: <E, A>(wa: readonly [A, E]) => readonly [readonly [A, E], E] +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: readonly [A, E]) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: readonly [A, E]) => M +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: readonly [A, E]) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyTuple' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: readonly [A, E] + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'ReadonlyTuple', E, (a: A) => B>) => import('./HKT').Kind2<'ReadonlyTuple', E, B> +/** + * Alias of [`mapFst`](#mapfst). + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: readonly [A, E]) => readonly [B, E] +/** + * Alias of [`mapSnd`](#mapsnd). + * + * @category error handling + * @since 2.5.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: readonly [A, E]) => readonly [A, G] +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Semigroupoid: Semigroupoid2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readonlyTuple` + * (where `RT` is from `import RT from 'fp-ts/ReadonlyTuple'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyTuple: Semigroupoid2<URI> & + Bifunctor2<URI> & + Comonad2<URI> & + Foldable2<URI> & + Traversable2<URI> diff --git a/node_modules/fp-ts/es6/ReadonlyTuple.js b/node_modules/fp-ts/es6/ReadonlyTuple.js new file mode 100644 index 0000000..c044ccf --- /dev/null +++ b/node_modules/fp-ts/es6/ReadonlyTuple.js @@ -0,0 +1,329 @@ +import { identity, pipe } from './function'; +import { flap as flap_ } from './Functor'; +// ------------------------------------------------------------------------------------- +// model +// ------------------------------------------------------------------------------------- +/** + * @since 2.5.0 + */ +export function fst(ea) { + return ea[0]; +} +/** + * @since 2.5.0 + */ +export function snd(ea) { + return ea[1]; +} +/** + * @since 2.5.0 + */ +export var swap = function (ea) { return [snd(ea), fst(ea)]; }; +/** + * @category instances + * @since 2.5.0 + */ +export function getApply(S) { + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return [fst(fab)(fst(fa)), S.concat(snd(fab), snd(fa))]; } + }; +} +var of = function (M) { + return function (a) { + return [a, M.empty]; + }; +}; +/** + * @category instances + * @since 2.5.0 + */ +export function getApplicative(M) { + var A = getApply(M); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + of: of(M) + }; +} +/** + * @category instances + * @since 2.5.0 + */ +export function getChain(S) { + var A = getApply(S); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: function (ma, f) { + var _a = f(fst(ma)), b = _a[0], s = _a[1]; + return [b, S.concat(snd(ma), s)]; + } + }; +} +/** + * @category instances + * @since 2.5.0 + */ +export function getMonad(M) { + var C = getChain(M); + return { + URI: URI, + _E: undefined, + map: _map, + ap: C.ap, + chain: C.chain, + of: of(M) + }; +} +/** + * @category instances + * @since 2.5.0 + */ +export function getChainRec(M) { + var chainRec = function (a, f) { + var result = f(a); + var acc = M.empty; + var s = fst(result); + while (s._tag === 'Left') { + acc = M.concat(acc, snd(result)); + result = f(s.left); + s = fst(result); + } + return [s.right, M.concat(acc, snd(result))]; + }; + var C = getChain(M); + return { + URI: URI, + _E: undefined, + map: _map, + ap: C.ap, + chain: C.chain, + chainRec: chainRec + }; +} +/* istanbul ignore next */ +var _compose = function (bc, ab) { return pipe(bc, compose(ab)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, mapFst(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return pipe(fa, mapSnd(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.5.0 + */ +export var bimap = function (f, g) { return function (fa) { return [g(fst(fa)), f(snd(fa))]; }; }; +/** + * Map a function over the first component of a `ReadonlyTuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export var mapFst = function (f) { return function (fa) { + return [f(fst(fa)), snd(fa)]; +}; }; +/** + * Map a function over the second component of a `ReadonlyTuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export var mapSnd = function (f) { return function (fa) { + return [fst(fa), f(snd(fa))]; +}; }; +/** + * @since 2.5.0 + */ +export var compose = function (ab) { return function (bc) { + return [fst(bc), snd(ab)]; +}; }; +/** + * @since 2.5.0 + */ +export var extend = function (f) { return function (wa) { + return [f(wa), snd(wa)]; +}; }; +/** + * @category Extract + * @since 2.6.2 + */ +export var extract = fst; +/** + * @since 2.5.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * @category folding + * @since 2.5.0 + */ +export var reduce = function (b, f) { return function (fa) { + return f(b, fst(fa)); +}; }; +/** + * @category folding + * @since 2.5.0 + */ +export var foldMap = function () { + return function (f) { return function (fa) { return f(fst(fa)); }; }; +}; +/** + * @category folding + * @since 2.5.0 + */ +export var reduceRight = function (b, f) { return function (fa) { + return f(fst(fa), b); +}; }; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + return function (f) { return function (ta) { return F.map(f(fst(ta)), function (b) { return [b, snd(ta)]; }); }; }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (fas) { + return F.map(fst(fas), function (a) { return [a, snd(fas)]; }); + }; +}; +/** + * @category type lambdas + * @since 2.5.0 + */ +export var URI = 'ReadonlyTuple'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * Alias of [`mapFst`](#mapfst). + * + * @category mapping + * @since 2.5.0 + */ +export var map = mapFst; +/** + * Alias of [`mapSnd`](#mapsnd). + * + * @category error handling + * @since 2.5.0 + */ +export var mapLeft = mapSnd; +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Semigroupoid = { + URI: URI, + compose: _compose +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readonlyTuple` + * (where `RT` is from `import RT from 'fp-ts/ReadonlyTuple'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var readonlyTuple = { + URI: URI, + compose: _compose, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft, + extract: extract, + extend: _extend, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; diff --git a/node_modules/fp-ts/es6/Record.d.ts b/node_modules/fp-ts/es6/Record.d.ts new file mode 100644 index 0000000..51933a9 --- /dev/null +++ b/node_modules/fp-ts/es6/Record.d.ts @@ -0,0 +1,1334 @@ +/** + * The `Record` module enables dealing with Typescript's `Record<K, T>` + * type in a functional way, basically treating it as a `Functor` in `T`. + * + * @since 2.0.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable as FoldableHKT, Foldable1, Foldable2, Foldable3 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { Traversable1 } from './Traversable' +import { TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import Semigroup = Se.Semigroup +/** + * Calculate the number of key/value pairs in a `Record`. + * + * @example + * import { size } from "fp-ts/Record"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.0.0 + */ +export declare const size: <A>(r: Record<string, A>) => number +/** + * Test whether a `Record` is empty. + * + * @example + * import { isEmpty } from "fp-ts/Record"; + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * + * @since 2.0.0 + */ +export declare const isEmpty: <A>(r: Record<string, A>) => boolean +/** + * The keys of a `Record`, sorted alphabetically. + * + * @example + * import { keys } from "fp-ts/Record"; + * + * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), ["a", "b", "c"]); + * + * @since 2.0.0 + */ +export declare const keys: <K extends string>(r: Record<K, unknown>) => Array<K> +/** + * Map a `Record` into an `Array`. + * It passes each key/value pair to the iterating function and collects + * the results in an array, sorted alphabetically by the original key. + * + * @example + * import { collect } from 'fp-ts/Record' + * import { Ord } from 'fp-ts/string' + * + * const f = <A>(k: string, a: A) => `${k.toUpperCase()}-${a}`; + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual( + * collect(Ord)(f)(x), + * [ + * "A-foo", + * "B-false", + * "C-3", + * ] + * ); + * + * @since 2.0.0 + */ +export declare function collect( + O: Ord<string> +): <K extends string, A, B>(f: (k: K, a: A) => B) => (r: Record<K, A>) => Array<B> +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function collect<K extends string, A, B>(f: (k: K, a: A) => B): (r: Record<K, A>) => Array<B> +/** + * Get a sorted `Array` of the key/value pairs contained in a `Record`. + * Sorted alphabetically by key. + * + * @example + * import { toArray } from 'fp-ts/Record' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.0.0 + */ +export declare const toArray: <K extends string, A>(r: Record<K, A>) => Array<[K, A]> +/** + * Unfolds a `Record` into a list of key/value pairs. + * + * Given an `Unfoldable` class type `U` such as `array` or `readonlyArray`, + * it uses the `unfold` function to create an instance of `U`, + * providing an iterating function that iterates over each + * key/value pair in the record sorted alphabetically by key. + * + * @example + * import { array, readonlyArray } from 'fp-ts' + * import { toUnfoldable } from 'fp-ts/Record' + * + * assert.deepStrictEqual(toUnfoldable(array)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * assert.deepStrictEqual(toUnfoldable(readonlyArray)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * + * @since 2.0.0 + */ +export declare function toUnfoldable<F extends URIS>( + U: Unfoldable1<F> +): <K extends string, A>(r: Record<K, A>) => Kind<F, [K, A]> +export declare function toUnfoldable<F>(U: Unfoldable<F>): <K extends string, A>(r: Record<K, A>) => HKT<F, [K, A]> +/** + * Insert or replace a key/value pair in a `Record`. + * + * @example + * import { upsertAt } from 'fp-ts/Record' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +export declare const upsertAt: <A>(k: string, a: A) => (r: Record<string, A>) => Record<string, A> +/** + * Test whether or not a key exists in a `Record`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/Record' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +export declare const has: <K extends string>(k: string, r: Record<K, unknown>) => k is K +/** + * Delete a key and value from a `Record`. + * + * @example + * import { deleteAt } from 'fp-ts/Record' + * + * assert.deepStrictEqual(deleteAt("a")({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(deleteAt("c")({ a: 1, b: 2 }), { a: 1, b: 2 }); + * + * @since 2.0.0 + */ +export declare function deleteAt<K extends string>( + k: K +): <KS extends string, A>(r: Record<KS, A>) => Record<string extends K ? string : Exclude<KS, K>, A> +/** + * Replace a key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +export declare const updateAt: <A>(k: string, a: A) => <K extends string>(r: Record<K, A>) => Option<Record<K, A>> +/** + * Applies a mapping function to one spcific key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +export declare const modifyAt: <A>( + k: string, + f: (a: A) => A +) => <K extends string>(r: Record<K, A>) => Option<Record<K, A>> +/** + * Delete a key and value from a `Record`, returning the value as well as the subsequent `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry removed, otherwise it returns `None` + * + * @example + * import { pop } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(pop("a")({ a: 1, b: 2, c: 3 }), option.some([1, { b: 2, c: 3 }])); + * assert.deepStrictEqual(pop("x")({ a: 1, b: 2, c: 3 }), option.none); + * + * @since 2.0.0 + */ +export declare function pop<K extends string>( + k: K +): <KS extends string, A>(r: Record<KS, A>) => Option<[A, Record<string extends K ? string : Exclude<KS, K>, A>]> +/** + * Test whether one `Record` contains all of the keys and values + * contained in another `Record`. + * + * @example + * import { isSubrecord } from 'fp-ts/Record' + * import { string } from 'fp-ts' + * + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "bar", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "not-bar", c: "baz" }), + * false + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar" })({ a: "foo", b: "bar", c: "baz" }), + * false + * ); + * + * @since 2.0.0 + */ +export declare const isSubrecord: <A>(E: Eq<A>) => { + (that: Record<string, A>): (me: Record<string, A>) => boolean + (me: Record<string, A>, that: Record<string, A>): boolean +} +/** + * Lookup the value for a key in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing the value, + * otherwise it returns `None` + * + * @example + * import { lookup } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(lookup("b")({ a: "foo", b: "bar" }), option.some("bar")); + * assert.deepStrictEqual(lookup("c")({ a: "foo", b: "bar" }), option.none); + * + * @since 2.0.0 + */ +export declare const lookup: { + (k: string): <A>(r: Record<string, A>) => Option<A> + <A>(k: string, r: Record<string, A>): Option<A> +} +/** + * Map a `Record` passing the key/value pairs to the iterating function. + * + * @example + * import { mapWithIndex } from "fp-ts/Record"; + * + * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`; + * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: "A-3", b: "B-5" }); + * + * @since 2.0.0 + */ +export declare const mapWithIndex: <K extends string, A, B>(f: (k: K, a: A) => B) => (fa: Record<K, A>) => Record<K, B> +/** + * Map a `Record` passing the values to the iterating function. + * + * @example + * import { map } from "fp-ts/Record"; + * + * const f = (n: number) => `-${n}-`; + * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: "-3-", b: "-5-" }); + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <K extends string>(fa: Record<K, A>) => Record<K, B> +/** + * Reduces a `Record` passing each key/value pair to the iterating function. + * Entries are processed in the order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduceWithIndex } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceWithIndex(Ord)([] as string[], (k, b, a) => [...b, `${k}-${a}`])(x), [ + * "a-foo", + * "b-false", + * "c-3", + * ]); + * + * @since 2.0.0 + */ +export declare function reduceWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, b: B, a: A) => B) => (fa: Record<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceWithIndex<K extends string, A, B>( + b: B, + f: (k: K, b: B, a: A) => B +): (fa: Record<K, A>) => B +/** + * Map and fold a `Record`. + * Map the `Record` passing each key/value pair to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMapWithIndex } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (k:string, a: number) => `${k}-${a}` + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMapWithIndex(Ord)(m)(f)(x), "a-1 -> b-2 -> c-3"); + * + * @since 2.0.0 + */ +export declare function foldMapWithIndex( + O: Ord<string> +): <M>(M: Monoid<M>) => <K extends string, A>(f: (k: K, a: A) => M) => (fa: Record<K, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMapWithIndex<M>( + M: Monoid<M> +): <K extends string, A>(f: (k: K, a: A) => M) => (fa: Record<K, A>) => M +/** + * Same as `reduceWithIndex`, but reduce starting from the right + * (i.e. in reverse order, from the last to the first entry according to + * the given `Ord`). + * + * @example + * import { reduceRightWithIndex } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRightWithIndex(Ord)([] as string[], (k, a, b) => [...b, `${k}-${a}`])(x), [ + * "c-3", + * "b-false", + * "a-foo", + * ]); + * + * @since 2.0.0 + */ +export declare function reduceRightWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, a: A, b: B) => B) => (fa: Record<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRightWithIndex<K extends string, A, B>( + b: B, + f: (k: K, a: A, b: B) => B +): (fa: Record<K, A>) => B +/** + * Create a `Record` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/Record"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @since 2.0.0 + */ +export declare const singleton: <A>(k: string, a: A) => Record<string, A> +/** + * @since 2.0.0 + */ +export declare function traverseWithIndex<F extends URIS4>( + F: Applicative4<F> +): <K extends string, S, R, E, A, B>( + f: (k: K, a: A) => Kind4<F, S, R, E, B> +) => (ta: Record<K, A>) => Kind4<F, S, R, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A, B>(f: (k: K, a: A) => Kind2<F, E, B>) => (ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A, B>(f: (k: K, a: A) => Kind2<F, E, B>) => (ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS>( + F: Applicative1<F> +): <K extends string, A, B>(f: (k: K, a: A) => Kind<F, B>) => (ta: Record<K, A>) => Kind<F, Record<K, B>> +export declare function traverseWithIndex<F>( + F: Applicative<F> +): <K extends string, A, B>(f: (k: K, a: A) => HKT<F, B>) => (ta: Record<K, A>) => HKT<F, Record<K, B>> +/** + * @since 2.0.0 + */ +export declare function traverse<F extends URIS4>( + F: Applicative4<F> +): <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> +) => <K extends string>(ta: Record<K, A>) => Kind4<F, S, R, E, Record<K, B>> +export declare function traverse<F extends URIS3>( + F: Applicative3<F> +): <R, E, A, B>(f: (a: A) => Kind3<F, R, E, B>) => <K extends string>(ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverse<F extends URIS3, E>( + F: Applicative3C<F, E> +): <R, A, B>(f: (a: A) => Kind3<F, R, E, B>) => <K extends string>(ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverse<F extends URIS2>( + F: Applicative2<F> +): <E, A, B>(f: (a: A) => Kind2<F, E, B>) => <K extends string>(ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverse<F extends URIS2, E>( + F: Applicative2C<F, E> +): <A, B>(f: (a: A) => Kind2<F, E, B>) => <K extends string>(ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverse<F extends URIS>( + F: Applicative1<F> +): <A, B>(f: (a: A) => Kind<F, B>) => <K extends string>(ta: Record<K, A>) => Kind<F, Record<K, B>> +export declare function traverse<F>( + F: Applicative<F> +): <A, B>(f: (a: A) => HKT<F, B>) => <K extends string>(ta: Record<K, A>) => HKT<F, Record<K, B>> +/** + * `Record` sequencing, + * i.e., take a `Record` in which elements are monads + * and return a monad of a `Record` of the base types. + * The following example for instance shows sequencing + * a `Record<string, Option<number>>` + * into an `Option<Record<string, number>>`. + * + * `sequence` in `Record` is equivalent to `sequenceS` in `Apply.ts`. + * + * @example + * import { sequence } from "fp-ts/Record"; + * import { option } from "fp-ts"; + * import { sequenceS } from "fp-ts/Apply"; + * + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * option.some({ a: 1, b: 2 }) + * ); + * assert.deepStrictEqual(sequence(option.Applicative)({ a: option.some(1), b: option.none }), option.none); + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * sequenceS(option.Applicative)({ a: option.some(1), b: option.some(2) }) + * ); + * + * @since 2.0.0 + */ +export declare function sequence<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A>(ta: Record<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, Record<K, A>> +export declare function sequence<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A>(ta: Record<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, Record<K, A>> +export declare function sequence<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A>(ta: Record<K, Kind2<F, E, A>>) => Kind2<F, E, Record<K, A>> +export declare function sequence<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A>(ta: Record<K, Kind2<F, E, A>>) => Kind2<F, E, Record<K, A>> +export declare function sequence<F extends URIS>( + F: Applicative1<F> +): <K extends string, A>(ta: Record<K, Kind<F, A>>) => Kind<F, Record<K, A>> +export declare function sequence<F>( + F: Applicative<F> +): <K extends string, A>(ta: Record<K, HKT<F, A>>) => HKT<F, Record<K, A>> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMapWithIndex } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (key: string, a: number) => + * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`); + * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), { + * left: { + * a: "a is < 0 (-1)", + * }, + * right: { + * b: "b is >= 0 (2)", + * c: "c is >= 0 (123)", + * }, + * }); + * + * @since 2.0.0 + */ +export declare const partitionMapWithIndex: <K extends string, A, B, C>( + f: (key: K, a: A) => Either<B, C> +) => (fa: Record<K, A>) => Separated<Record<string, B>, Record<string, C>> +/** + * Partition a `Record` into two parts according to a predicate + * that takes a key and a value. + * + * @example + * import { partitionWithIndex } from "fp-ts/Record" + * + * assert.deepStrictEqual( + * partitionWithIndex((key: string, a: number) => key.length <= 1 && a > 0)({ a: -1, b: 2, ccc: 7 }), + * { + * left: { + * a: -1, + * ccc: 7, + * }, + * right: { + * b: 2, + * }, + * } + * ); + * + * @since 2.0.0 + */ +export declare function partitionWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: Record<K, A>) => Separated<Record<string, A>, Record<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: Record<K, B>) => Separated<Record<string, B>, Record<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: Record<K, A>) => Separated<Record<string, A>, Record<string, A>> +/** + * Maps a `Record` with an iterating function that takes key and value and + * returns an `Option`, keeping only the `Some` values and discarding `None`s. + * + * @example + * import { filterMapWithIndex } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none); + * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), { + * b: "b2", + * c: "c3", + * }); + * + * @since 2.0.0 + */ +export declare const filterMapWithIndex: <K extends string, A, B>( + f: (key: K, a: A) => Option<B> +) => (fa: Record<K, A>) => Record<string, B> +/** + * Produce a new `Record` keeping only the entries that satisfy + * a predicate taking key and value as input. + * + * @example + * import { filterWithIndex } from "fp-ts/Record" + * + * assert.deepStrictEqual( + * filterWithIndex((s: string, v: number) => s.length <= 1 && v > 0)({ a: 1, b: -2, ccc: 3 }), + * { + * a: 1, + * } + * ); + * + * @since 2.0.0 + */ +export declare function filterWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: Record<K, A>) => Record<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: Record<K, B>) => Record<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: Record<K, A>) => Record<string, A> +/** + * Create a `Record` from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @since 2.0.0 + */ +export declare function fromFoldable<F extends URIS3, A>( + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, [string, A]>) => Record<string, A> +export declare function fromFoldable<F extends URIS2, A>( + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, [string, A]>) => Record<string, A> +export declare function fromFoldable<F extends URIS, A>( + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, [string, A]>) => Record<string, A> +export declare function fromFoldable<F, A>( + M: Magma<A>, + F: FoldableHKT<F> +): (fka: HKT<F, [string, A]>) => Record<string, A> +/** + * Alias of [`toArray`](#toArray). + * + * @example + * import { toEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @since 2.12.0 + * @category conversions + */ +export declare const toEntries: <K extends string, A>(r: Record<K, A>) => Array<[K, A]> +/** + * Converts an `Array` of `[key, value]` tuples into a `Record`. + * + * @example + * import { fromEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +export declare const fromEntries: <A>(fa: Array<[string, A]>) => Record<string, A> +/** + * Create a `Record` from a foldable collection using the specified functions to + * + * - map to key/value pairs + * - combine values for duplicate keys. + * + * @example + * import { last } from 'fp-ts/Semigroup' + * import { Foldable, zip } from 'fp-ts/Array' + * import { identity } from 'fp-ts/function' + * import { fromFoldableMap } from 'fp-ts/Record' + * + * export const zipObject = <K extends string, A>(keys: Array<K>, values: Array<A>): Record<K, A> => + * fromFoldableMap(last<A>(), Foldable)(zip(keys, values), identity) + * + * assert.deepStrictEqual(zipObject(['a', 'b'], [1, 2, 3]), { a: 1, b: 2 }) + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const users: Array<User> = [ + * { id: 'id1', name: 'name1' }, + * { id: 'id2', name: 'name2' }, + * { id: 'id1', name: 'name3' } + * ] + * + * assert.deepStrictEqual(fromFoldableMap(last<User>(), Foldable)(users, user => [user.id, user]), { + * id1: { id: 'id1', name: 'name3' }, + * id2: { id: 'id2', name: 'name2' } + * }) + * + * @since 2.0.0 + */ +export declare function fromFoldableMap<F extends URIS3, B>( + M: Magma<B>, + F: Foldable3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => [string, B]) => Record<string, B> +export declare function fromFoldableMap<F extends URIS2, B>( + M: Magma<B>, + F: Foldable2<F> +): <E, A>(fa: Kind2<F, E, A>, f: (a: A) => [string, B]) => Record<string, B> +export declare function fromFoldableMap<F extends URIS, B>( + M: Magma<B>, + F: Foldable1<F> +): <A>(fa: Kind<F, A>, f: (a: A) => [string, B]) => Record<string, B> +export declare function fromFoldableMap<F, B>( + M: Magma<B>, + F: FoldableHKT<F> +): <A>(fa: HKT<F, A>, f: (a: A) => [string, B]) => Record<string, B> +/** + * Test if every value in a `Record` satisfies the predicate. + * + * @example + * import { every } from "fp-ts/Record" + * + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true); + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false); + * + * @since 2.0.0 + */ +export declare const every: { + <A, B extends A>(refinement: Refinement<A, B>): Refinement<Record<string, A>, Record<string, B>> + <A>(predicate: Predicate<A>): Predicate<Record<string, A>> +} +/** + * Test if at least one value in a `Record` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/Record" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.0.0 + */ +export declare const some: <A>(predicate: (a: A) => boolean) => (r: Record<string, A>) => boolean +/** + * Given an `Eq` checks if a `Record` contains an entry with + * value equal to a provided value. + * + * @example + * import { elem } from "fp-ts/Record" + * import { number } from "fp-ts" + * + * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true); + * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false); + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): (fa: Record<string, A>) => boolean + (a: A, fa: Record<string, A>): boolean +} +/** + * Union of two `Record`s. + * Takes two `Record`s and produces a `Record` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const union: <A>( + M: Magma<A> +) => (second: Record<string, A>) => (first: Record<string, A>) => Record<string, A> +/** + * Intersection of two `Record`s. + * Takes two `Record`s and produces a `Record` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +export declare const intersection: <A>( + M: Magma<A> +) => (second: Record<string, A>) => (first: Record<string, A>) => Record<string, A> +/** + * Difference between two `Record`s. + * Takes two `Record`s and produces a `Record` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/Record"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const difference: <A>(second: Record<string, A>) => (first: Record<string, A>) => Record<string, A> +/** + * Given a `Predicate`, it produces a new `Record` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/Record" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Record<string, A>) => Record<string, B> + <A>(predicate: Predicate<A>): <B extends A>(fb: Record<string, B>) => Record<string, B> + <A>(predicate: Predicate<A>): (fa: Record<string, A>) => Record<string, A> +} +/** + * Maps a `Record` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Record<string, A>) => Record<string, B> +/** + * Partition a `Record` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/Record" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): ( + fa: Record<string, A> + ) => Separated<Record<string, A>, Record<string, B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: Record<string, B>) => Separated<Record<string, B>, Record<string, B>> + <A>(predicate: Predicate<A>): (fa: Record<string, A>) => Separated<Record<string, A>, Record<string, A>> +} +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Record<string, A>) => Separated<Record<string, B>, Record<string, C>> +/** + * Reduces a `Record` passing each value to the iterating function. + * Entries are processed in order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduce } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduce(Ord)([] as string[], (b, a) => [...b, `-${a}-`])(x), [ + * "-foo-", + * "-false-", + * "-3-", + * ]); + * + * @category folding + * @since 2.0.0 + */ +export declare function reduce(O: Ord<string>): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Record<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduce<A, B>(b: B, f: (b: B, a: A) => B): (fa: Record<string, A>) => B +/** + * Map and fold a `Record`. + * Map the `Record` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (a: number) => `-${a}-`; + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMap(Ord)(m)(f)(x), "-1- -> -2- -> -3-"); + * + * @category folding + * @since 2.0.0 + */ +export declare function foldMap( + O: Ord<string> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Record<string, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMap<M>(M: Monoid<M>): <A>(f: (a: A) => M) => (fa: Record<string, A>) => M +/** + * Same as `reduce` but entries are processed _from the right_, + * i.e. in reverse order, from the last to the first entry, according to + * the given `Ord`. + * + * @example + * import { reduceRight } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRight(Ord)([] as string[], (a, b) => [...b, `-${a}-`])(x), [ + * "-3-", + * "-false-", + * "-foo-", + * ]); + * + * @category folding + * @since 2.0.0 + */ +export declare function reduceRight(O: Ord<string>): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Record<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRight<A, B>(b: B, f: (a: A, b: B) => B): (fa: Record<string, A>) => B +/** + * Compact a `Record` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <A>(fa: Record<string, Option<A>>) => Record<string, A> +/** + * Separate a `Record` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/Record' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <A, B>( + fa: Record<string, Either<A, B>> +) => Separated<Record<string, A>, Record<string, B>> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Record' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Record<string, A> + } +} +/** + * Produces a `Show` for a `Record`, given a `Show` for the base type + * (a `Show` produces a human-readable representation of an instance). + * `Record` entries are sorted by key with the provided `Ord`. + * + * @example + * import { getShow } from "fp-ts/Record" + * import { Show } from "fp-ts/Show" + * import { Ord } from "fp-ts/string" + * + * const sNumber: Show<number> = { show: (n: number) => `${n}` }; + * const sRecord: Show<Record<string, number>> = getShow(Ord)(sNumber); + * assert.deepStrictEqual(sRecord.show({ b: 2, a: 1 }), '{ "a": 1, "b": 2 }'); + * + * @category instances + * @since 2.0.0 + */ +export declare function getShow(O: Ord<string>): <A>(S: Show<A>) => Show<Record<string, A>> +/** + * Use the overload constrained by `Ord` instead. + * + * @category zone of death + * @deprecated + */ +export declare function getShow<A>(S: Show<A>): Show<Record<string, A>> +/** + * Given an `Eq` for the base type, it produces an `Eq` + * for a `Record` of that base type. + * + * @example + * import { getEq } from "fp-ts/Record"; + * import { string } from "fp-ts"; + * import { Eq } from "fp-ts/Eq"; + * + * const eq: Eq<Record<string, string>> = getEq(string.Eq); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { b: "bar" }), false); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { a: "foo" }), true); + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <K extends string, A>(E: Eq<A>) => Eq<Record<K, A>> +/** + * Returns a `Monoid` instance for `Record`s, given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s comining the + * overlapping entries with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getMonoid } from 'fp-ts/Record' + * + * const M = getMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.0.0 + */ +export declare const getMonoid: <K extends string, A>(S: Semigroup<A>) => Monoid<Record<K, A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Takes a value and a `Record` of functions and returns a + * `Record` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/Record" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <B>(fab: Kind<'Record', (a: A) => B>) => Kind<'Record', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, string> +/** + * Produces a `Foldable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldable: (O: Ord<string>) => Foldable1<URI> +/** + * Produces a `FoldableWithIndex1` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldableWithIndex: (O: Ord<string>) => FoldableWithIndex1<URI, string> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, string> +/** + * Produces a `Traversable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversable: (O: Ord<string>) => Traversable1<URI> +/** + * Produces a `TraversableWithIndex` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversableWithIndex: (O: Ord<string>) => TraversableWithIndex1<URI, string> +/** + * @category filtering + * @since 2.11.0 + */ +export declare const getWitherable: (O: Ord<string>) => Witherable1<URI> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `union`. + * + * @example + * import { getUnionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(S: Semigroup<A>) => Semigroup<Record<string, A>> +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `Record`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/Record' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(S: Semigroup<A>) => Monoid<Record<string, A>> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(S: Semigroup<A>) => Semigroup<Record<string, A>> +/** + * Produces a `Magma` with a `concat` function that combines + * two `Record`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference } from "fp-ts/Record" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<Record<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>() => Magma<Record<string, A>> +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Foldable: Foldable1<URI> +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, string> +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Traversable: Traversable1<URI> +/** + * Use the `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, string> +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Witherable: Witherable1<URI> +/** + * Use a new `{}` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const empty: Record<string, never> +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const insertAt: <A>(k: string, a: A) => (r: Record<string, A>) => Record<string, A> +/** + * Use [`has`](#has) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const hasOwnProperty: <K extends string>(k: string, r: Record<K, unknown>) => k is K +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.record` + * (where `R` is from `import R from 'fp-ts/Record'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const record: FunctorWithIndex1<URI, string> & + FoldableWithIndex1<URI, string> & + FilterableWithIndex1<URI, string> & + TraversableWithIndex1<URI, string> & + Witherable1<URI> diff --git a/node_modules/fp-ts/es6/Record.js b/node_modules/fp-ts/es6/Record.js new file mode 100644 index 0000000..b4b7719 --- /dev/null +++ b/node_modules/fp-ts/es6/Record.js @@ -0,0 +1,1139 @@ +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +import * as A from './Array'; +import { pipe } from './function'; +import { flap as flap_ } from './Functor'; +import * as _ from './internal'; +import * as RR from './ReadonlyRecord'; +import * as Se from './Semigroup'; +import * as S from './string'; +import { wiltDefault, witherDefault } from './Witherable'; +// ------------------------------------------------------------------------------------- +// model +// ------------------------------------------------------------------------------------- +/** + * Calculate the number of key/value pairs in a `Record`. + * + * @example + * import { size } from "fp-ts/Record"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.0.0 + */ +export var size = RR.size; +/** + * Test whether a `Record` is empty. + * + * @example + * import { isEmpty } from "fp-ts/Record"; + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * + * @since 2.0.0 + */ +export var isEmpty = RR.isEmpty; +var keys_ = function (O) { + return function (r) { + return Object.keys(r).sort(O.compare); + }; +}; +/** + * The keys of a `Record`, sorted alphabetically. + * + * @example + * import { keys } from "fp-ts/Record"; + * + * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), ["a", "b", "c"]); + * + * @since 2.0.0 + */ +export var keys = /*#__PURE__*/ keys_(S.Ord); +export function collect(O) { + if (typeof O === 'function') { + return collect(S.Ord)(O); + } + var keysO = keys_(O); + return function (f) { + return function (r) { + var out = []; + for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) { + var key = _a[_i]; + out.push(f(key, r[key])); + } + return out; + }; + }; +} +/** + * Get a sorted `Array` of the key/value pairs contained in a `Record`. + * Sorted alphabetically by key. + * + * @example + * import { toArray } from 'fp-ts/Record' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.0.0 + */ +export var toArray = /*#__PURE__*/ collect(S.Ord)(function (k, a) { return [ + k, + a +]; }); +export function toUnfoldable(U) { + return function (r) { + var sas = toArray(r); + var len = sas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `Record`. + * + * @example + * import { upsertAt } from 'fp-ts/Record' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +export var upsertAt = RR.upsertAt; +/** + * Test whether or not a key exists in a `Record`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/Record' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +export var has = RR.has; +export function deleteAt(k) { + return function (r) { + if (!_.has.call(r, k)) { + return r; + } + var out = Object.assign({}, r); + delete out[k]; + return out; + }; +} +/** + * Replace a key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +export var updateAt = function (k, a) { + return modifyAt(k, function () { return a; }); +}; +/** + * Applies a mapping function to one spcific key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +export var modifyAt = function (k, f) { + return function (r) { + if (!has(k, r)) { + return _.none; + } + var out = Object.assign({}, r); + out[k] = f(r[k]); + return _.some(out); + }; +}; +export function pop(k) { + var deleteAtk = deleteAt(k); + return function (r) { + var oa = lookup(k, r); + return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]); + }; +} +// TODO: remove non-curried overloading in v3 +/** + * Test whether one `Record` contains all of the keys and values + * contained in another `Record`. + * + * @example + * import { isSubrecord } from 'fp-ts/Record' + * import { string } from 'fp-ts' + * + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "bar", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "not-bar", c: "baz" }), + * false + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar" })({ a: "foo", b: "bar", c: "baz" }), + * false + * ); + * + * @since 2.0.0 + */ +export var isSubrecord = RR.isSubrecord; +// TODO: remove non-curried overloading in v3 +/** + * Lookup the value for a key in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing the value, + * otherwise it returns `None` + * + * @example + * import { lookup } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(lookup("b")({ a: "foo", b: "bar" }), option.some("bar")); + * assert.deepStrictEqual(lookup("c")({ a: "foo", b: "bar" }), option.none); + * + * @since 2.0.0 + */ +export var lookup = RR.lookup; +/** + * Map a `Record` passing the key/value pairs to the iterating function. + * + * @example + * import { mapWithIndex } from "fp-ts/Record"; + * + * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`; + * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: "A-3", b: "B-5" }); + * + * @since 2.0.0 + */ +export var mapWithIndex = RR.mapWithIndex; +/** + * Map a `Record` passing the values to the iterating function. + * + * @example + * import { map } from "fp-ts/Record"; + * + * const f = (n: number) => `-${n}-`; + * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: "-3-", b: "-5-" }); + * + * @category mapping + * @since 2.0.0 + */ +export var map = RR.map; +export function reduceWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduceWithIndex(args[0]) : RR.reduceWithIndex(S.Ord).apply(void 0, args); +} +export function foldMapWithIndex(O) { + return 'compare' in O ? RR.foldMapWithIndex(O) : RR.foldMapWithIndex(S.Ord)(O); +} +export function reduceRightWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduceRightWithIndex(args[0]) : RR.reduceRightWithIndex(S.Ord).apply(void 0, args); +} +/** + * Create a `Record` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/Record"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @since 2.0.0 + */ +export var singleton = RR.singleton; +export function traverseWithIndex(F) { + return RR.traverseWithIndex(F); +} +export function traverse(F) { + return RR.traverse(F); +} +export function sequence(F) { + return RR.sequence(F); +} +/** + * @category filtering + * @since 2.6.5 + */ +export var wither = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map(pipe(fa, traverseF(f)), compact); }; }; +}; +/** + * @category filtering + * @since 2.6.5 + */ +export var wilt = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map(pipe(fa, traverseF(f)), separate); }; }; +}; +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMapWithIndex } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (key: string, a: number) => + * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`); + * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), { + * left: { + * a: "a is < 0 (-1)", + * }, + * right: { + * b: "b is >= 0 (2)", + * c: "c is >= 0 (123)", + * }, + * }); + * + * @since 2.0.0 + */ +export var partitionMapWithIndex = RR.partitionMapWithIndex; +export function partitionWithIndex(predicateWithIndex) { + return RR.partitionWithIndex(predicateWithIndex); +} +/** + * Maps a `Record` with an iterating function that takes key and value and + * returns an `Option`, keeping only the `Some` values and discarding `None`s. + * + * @example + * import { filterMapWithIndex } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none); + * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), { + * b: "b2", + * c: "c3", + * }); + * + * @since 2.0.0 + */ +export var filterMapWithIndex = RR.filterMapWithIndex; +export function filterWithIndex(predicateWithIndex) { + return RR.filterWithIndex(predicateWithIndex); +} +export function fromFoldable(M, F) { + return RR.fromFoldable(M, F); +} +/** + * Alias of [`toArray`](#toArray). + * + * @example + * import { toEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @since 2.12.0 + * @category conversions + */ +export var toEntries = toArray; +/** + * Converts an `Array` of `[key, value]` tuples into a `Record`. + * + * @example + * import { fromEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +export var fromEntries = function (fa) { return fromFoldable(Se.last(), A.Foldable)(fa); }; +export function fromFoldableMap(M, F) { + return RR.fromFoldableMap(M, F); +} +/** + * Test if every value in a `Record` satisfies the predicate. + * + * @example + * import { every } from "fp-ts/Record" + * + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true); + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false); + * + * @since 2.0.0 + */ +export var every = RR.every; +/** + * Test if at least one value in a `Record` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/Record" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.0.0 + */ +export var some = RR.some; +// TODO: remove non-curried overloading in v3 +/** + * Given an `Eq` checks if a `Record` contains an entry with + * value equal to a provided value. + * + * @example + * import { elem } from "fp-ts/Record" + * import { number } from "fp-ts" + * + * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true); + * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false); + * + * @since 2.0.0 + */ +export var elem = RR.elem; +/** + * Union of two `Record`s. + * Takes two `Record`s and produces a `Record` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export var union = function (M) { + var unionM = RR.union(M); + return function (second) { return function (first) { + if (isEmpty(first)) { + return __assign({}, second); + } + if (isEmpty(second)) { + return __assign({}, first); + } + return unionM(second)(first); + }; }; +}; +/** + * Intersection of two `Record`s. + * Takes two `Record`s and produces a `Record` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +export var intersection = function (M) { + return function (second) { + return function (first) { + if (isEmpty(first) || isEmpty(second)) { + return {}; + } + return RR.intersection(M)(second)(first); + }; + }; +}; +/** + * Difference between two `Record`s. + * Takes two `Record`s and produces a `Record` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/Record"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export var difference = function (second) { + return function (first) { + if (isEmpty(first)) { + return __assign({}, second); + } + if (isEmpty(second)) { + return __assign({}, first); + } + return RR.difference(second)(first); + }; +}; +var _map = RR._map; +var _mapWithIndex = RR._mapWithIndex; +var _reduce = RR._reduce; +var _foldMap = RR._foldMap; +var _reduceRight = RR._reduceRight; +var _filter = RR._filter; +var _filterMap = RR._filterMap; +var _partition = RR._partition; +var _partitionMap = RR._partitionMap; +var _reduceWithIndex = RR._reduceWithIndex; +var _foldMapWithIndex = RR._foldMapWithIndex; +var _reduceRightWithIndex = RR._reduceRightWithIndex; +var _partitionMapWithIndex = RR._partitionMapWithIndex; +var _partitionWithIndex = RR._partitionWithIndex; +var _filterMapWithIndex = RR._filterMapWithIndex; +var _filterWithIndex = RR._filterWithIndex; +var _traverse = RR._traverse; +var _sequence = RR._sequence; +var _traverseWithIndex = function (O) { + return function (F) { + var keysO = keys_(O); + return function (ta, f) { + var ks = keysO(ta); + if (ks.length === 0) { + return F.of({}); + } + var fr = F.of({}); + var _loop_1 = function (key) { + fr = F.ap(F.map(fr, function (r) { return function (b) { + r[key] = b; + return r; + }; }), f(key, ta[key])); + }; + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + _loop_1(key); + } + return fr; + }; + }; +}; +/** + * Given a `Predicate`, it produces a new `Record` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/Record" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var filter = RR.filter; +/** + * Maps a `Record` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var filterMap = RR.filterMap; +/** + * Partition a `Record` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/Record" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var partition = RR.partition; +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var partitionMap = RR.partitionMap; +export function reduce() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduce(args[0]) : RR.reduce(S.Ord).apply(void 0, args); +} +export function foldMap(O) { + return 'compare' in O ? RR.foldMap(O) : RR.foldMap(S.Ord)(O); +} +export function reduceRight() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduceRight(args[0]) : RR.reduceRight(S.Ord).apply(void 0, args); +} +/** + * Compact a `Record` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export var compact = RR.compact; +/** + * Separate a `Record` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/Record' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.0.0 + */ +export var separate = RR.separate; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Record'; +export function getShow(O) { + return 'compare' in O ? RR.getShow(O) : RR.getShow(S.Ord)(O); +} +/** + * Given an `Eq` for the base type, it produces an `Eq` + * for a `Record` of that base type. + * + * @example + * import { getEq } from "fp-ts/Record"; + * import { string } from "fp-ts"; + * import { Eq } from "fp-ts/Eq"; + * + * const eq: Eq<Record<string, string>> = getEq(string.Eq); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { b: "bar" }), false); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { a: "foo" }), true); + * + * @category instances + * @since 2.0.0 + */ +export var getEq = RR.getEq; +/** + * Returns a `Monoid` instance for `Record`s, given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s comining the + * overlapping entries with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getMonoid } from 'fp-ts/Record' + * + * const M = getMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.0.0 + */ +export var getMonoid = RR.getMonoid; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Takes a value and a `Record` of functions and returns a + * `Record` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/Record" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.7.0 + */ +export var FunctorWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * Produces a `Foldable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export var getFoldable = function (O) { return ({ + URI: URI, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O) +}); }; +/** + * Produces a `FoldableWithIndex1` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export var getFoldableWithIndex = function (O) { return ({ + URI: URI, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + reduceWithIndex: _reduceWithIndex(O), + foldMapWithIndex: _foldMapWithIndex(O), + reduceRightWithIndex: _reduceRightWithIndex(O) +}); }; +/** + * @category instances + * @since 2.7.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var FilterableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex +}; +/** + * Produces a `Traversable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export var getTraversable = function (O) { return ({ + URI: URI, + map: _map, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + traverse: _traverse(O), + sequence: _sequence(O) +}); }; +/** + * Produces a `TraversableWithIndex` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export var getTraversableWithIndex = function (O) { return ({ + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + reduceWithIndex: _reduceWithIndex(O), + foldMapWithIndex: _foldMapWithIndex(O), + reduceRightWithIndex: _reduceRightWithIndex(O), + traverse: _traverse(O), + sequence: _sequence(O), + traverseWithIndex: _traverseWithIndex(O) +}); }; +/** + * @category filtering + * @since 2.11.0 + */ +export var getWitherable = function (O) { + var T = getTraversable(O); + return { + URI: URI, + map: _map, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + traverse: T.traverse, + sequence: T.sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: witherDefault(T, Compactable), + wilt: wiltDefault(T, Compactable) + }; +}; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `union`. + * + * @example + * import { getUnionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (S) { + var unionS = union(S); + return { + concat: function (first, second) { return unionS(second)(first); } + }; +}; +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `Record`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/Record' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +export var getUnionMonoid = function (S) { return ({ + concat: getUnionSemigroup(S).concat, + empty: {} +}); }; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +export var getIntersectionSemigroup = function (S) { + var intersectionS = intersection(S); + return { + concat: function (first, second) { return intersectionS(second)(first); } + }; +}; +/** + * Produces a `Magma` with a `concat` function that combines + * two `Record`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference } from "fp-ts/Record" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<Record<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function () { return ({ + concat: function (first, second) { return difference(second)(first); } +}); }; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Foldable = { + URI: URI, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord) +}; +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var FoldableWithIndex = { + URI: URI, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord) +}; +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence +}; +/** + * Use the `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var TraversableWithIndex = { + URI: URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord) +}; +var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable); +var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable); +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var Witherable = { + URI: URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt +}; +/** + * Use a new `{}` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var empty = {}; +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var insertAt = upsertAt; +/** + * Use [`has`](#has) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var hasOwnProperty = RR.hasOwnProperty; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.record` + * (where `R` is from `import R from 'fp-ts/Record'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var record = { + URI: URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord), + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord), + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/es6/Refinement.d.ts b/node_modules/fp-ts/es6/Refinement.d.ts new file mode 100644 index 0000000..fb84f6b --- /dev/null +++ b/node_modules/fp-ts/es6/Refinement.d.ts @@ -0,0 +1,55 @@ +/** + * @since 2.11.0 + */ +import { Either } from './Either' +import { Option } from './Option' +/** + * @since 2.11.0 + */ +export interface Refinement<A, B extends A> { + (a: A): a is B +} +/** + * Returns a `Refinement` from a `Option` returning function. + * This function ensures that a `Refinement` definition is type-safe. + * + * @category lifting + * @since 2.11.0 + */ +export declare const fromOptionK: <A, B extends A>(getOption: (a: A) => Option<B>) => Refinement<A, B> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <A, B extends A>(getEither: (a: A) => Either<unknown, B>) => Refinement<A, B> +/** + * @category constructors + * @since 2.11.0 + */ +export declare const id: <A>() => Refinement<A, A> +/** + * @since 2.11.0 + */ +export declare const not: <A, B extends A>(refinement: Refinement<A, B>) => Refinement<A, Exclude<A, B>> +/** + * @since 2.11.0 + */ +export declare const or: <A, C extends A>( + second: Refinement<A, C> +) => <B extends A>(first: Refinement<A, B>) => Refinement<A, B | C> +/** + * @since 2.11.0 + */ +export declare const and: <A, C extends A>( + second: Refinement<A, C> +) => <B extends A>(first: Refinement<A, B>) => Refinement<A, B & C> +/** + * @since 2.11.0 + */ +export declare const zero: <A, B extends A>() => Refinement<A, B> +/** + * @since 2.11.0 + */ +export declare const compose: <A, B extends A, C extends B>( + bc: Refinement<B, C> +) => (ab: Refinement<A, B>) => Refinement<A, C> diff --git a/node_modules/fp-ts/es6/Refinement.js b/node_modules/fp-ts/es6/Refinement.js new file mode 100644 index 0000000..b7aefcc --- /dev/null +++ b/node_modules/fp-ts/es6/Refinement.js @@ -0,0 +1,73 @@ +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Returns a `Refinement` from a `Option` returning function. + * This function ensures that a `Refinement` definition is type-safe. + * + * @category lifting + * @since 2.11.0 + */ +export var fromOptionK = function (getOption) { + return function (a) { return _.isSome(getOption(a)); }; +}; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromEitherK = function (getEither) { + return function (a) { return _.isRight(getEither(a)); }; +}; +/** + * @category constructors + * @since 2.11.0 + */ +export var id = function () { + return function (_) { return true; }; +}; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +export var not = function (refinement) { + return function (a) { + return !refinement(a); + }; +}; +/** + * @since 2.11.0 + */ +export var or = function (second) { + return function (first) { + return function (a) { + return first(a) || second(a); + }; + }; +}; +/** + * @since 2.11.0 + */ +export var and = function (second) { + return function (first) { + return function (a) { + return first(a) && second(a); + }; + }; +}; +/** + * @since 2.11.0 + */ +export var zero = function () { + return function (_) { return false; }; +}; +/** + * @since 2.11.0 + */ +export var compose = function (bc) { + return function (ab) { + return function (i) { return ab(i) && bc(i); }; + }; +}; diff --git a/node_modules/fp-ts/es6/Ring.d.ts b/node_modules/fp-ts/es6/Ring.d.ts new file mode 100644 index 0000000..7dd1000 --- /dev/null +++ b/node_modules/fp-ts/es6/Ring.d.ts @@ -0,0 +1,53 @@ +import { Semiring } from './Semiring' +/** + * @category model + * @since 2.0.0 + */ +export interface Ring<A> extends Semiring<A> { + readonly sub: (x: A, y: A) => A +} +/** + * Given a tuple of `Ring`s returns a `Ring` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Ring' + * import * as N from 'fp-ts/number' + * + * const R = tuple(N.Field, N.Field, N.Field) + * assert.deepStrictEqual(R.add([1, 2, 3], [4, 5, 6]), [5, 7, 9]) + * assert.deepStrictEqual(R.mul([1, 2, 3], [4, 5, 6]), [4, 10, 18]) + * assert.deepStrictEqual(R.one, [1, 1, 1]) + * assert.deepStrictEqual(R.sub([1, 2, 3], [4, 5, 6]), [-3, -3, -3]) + * assert.deepStrictEqual(R.zero, [0, 0, 0]) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...rings: { [K in keyof A]: Ring<A[K]> } +) => Ring<Readonly<A>> +/** + * `negate x` can be used as a shorthand for `zero - x` + * + * @since 2.0.0 + */ +export declare const negate: <A>(R: Ring<A>) => (a: A) => A +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleRing: <T extends ReadonlyArray<Ring<any>>>( + ...rings: T +) => Ring<{ + [K in keyof T]: T[K] extends Ring<infer A> ? A : never +}> +/** + * Use [`getRing`](./function.ts.html#getring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionRing: <A, B>(R: Ring<B>) => Ring<(a: A) => B> diff --git a/node_modules/fp-ts/es6/Ring.js b/node_modules/fp-ts/es6/Ring.js new file mode 100644 index 0000000..81f688e --- /dev/null +++ b/node_modules/fp-ts/es6/Ring.js @@ -0,0 +1,76 @@ +/** + * The `Ring` class is for types that support addition, multiplication, and subtraction operations. + * + * Instances must satisfy the following law in addition to the `Semiring` laws: + * + * - Additive inverse: `a - a <-> (zero - a) + a <-> zero` + * + * Adapted from https://github.com/purescript/purescript-prelude/blob/master/src/Data/Ring.purs + * + * @since 2.0.0 + */ +import { getRing } from './function'; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Given a tuple of `Ring`s returns a `Ring` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Ring' + * import * as N from 'fp-ts/number' + * + * const R = tuple(N.Field, N.Field, N.Field) + * assert.deepStrictEqual(R.add([1, 2, 3], [4, 5, 6]), [5, 7, 9]) + * assert.deepStrictEqual(R.mul([1, 2, 3], [4, 5, 6]), [4, 10, 18]) + * assert.deepStrictEqual(R.one, [1, 1, 1]) + * assert.deepStrictEqual(R.sub([1, 2, 3], [4, 5, 6]), [-3, -3, -3]) + * assert.deepStrictEqual(R.zero, [0, 0, 0]) + * + * @since 2.10.0 + */ +export var tuple = function () { + var rings = []; + for (var _i = 0; _i < arguments.length; _i++) { + rings[_i] = arguments[_i]; + } + return ({ + add: function (x, y) { return rings.map(function (R, i) { return R.add(x[i], y[i]); }); }, + zero: rings.map(function (R) { return R.zero; }), + mul: function (x, y) { return rings.map(function (R, i) { return R.mul(x[i], y[i]); }); }, + one: rings.map(function (R) { return R.one; }), + sub: function (x, y) { return rings.map(function (R, i) { return R.sub(x[i], y[i]); }); } + }); +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * `negate x` can be used as a shorthand for `zero - x` + * + * @since 2.0.0 + */ +export var negate = function (R) { + return function (a) { + return R.sub(R.zero, a); + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getTupleRing = tuple; +/** + * Use [`getRing`](./function.ts.html#getring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFunctionRing = getRing; diff --git a/node_modules/fp-ts/es6/Semigroup.d.ts b/node_modules/fp-ts/es6/Semigroup.d.ts new file mode 100644 index 0000000..922073f --- /dev/null +++ b/node_modules/fp-ts/es6/Semigroup.d.ts @@ -0,0 +1,302 @@ +import * as M from './Magma' +import * as Or from './Ord' +import { ReadonlyRecord } from './ReadonlyRecord' +import Ord = Or.Ord +import Magma = M.Magma +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroup<A> extends Magma<A> {} +/** + * Get a semigroup where `concat` will return the minimum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.min(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +export declare const min: <A>(O: Ord<A>) => Semigroup<A> +/** + * Get a semigroup where `concat` will return the maximum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.max(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +export declare const max: <A>(O: Ord<A>) => Semigroup<A> +/** + * @category constructors + * @since 2.10.0 + */ +export declare const constant: <A>(a: A) => Semigroup<A> +/** + * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +export declare const reverse: <A>(S: Semigroup<A>) => Semigroup<A> +/** + * Given a struct of semigroups returns a semigroup for the struct. + * + * @example + * import { struct } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const S = struct<Point>({ + * x: N.SemigroupSum, + * y: N.SemigroupSum + * }) + * + * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +export declare const struct: <A>(semigroups: { [K in keyof A]: Semigroup<A[K]> }) => Semigroup<{ + readonly [K in keyof A]: A[K] +}> +/** + * Given a tuple of semigroups returns a semigroup for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Semigroup' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const S1 = tuple(S.Semigroup, N.SemigroupSum) + * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll) + * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...semigroups: { [K in keyof A]: Semigroup<A[K]> } +) => Semigroup<Readonly<A>> +/** + * Between each pair of elements insert `middle`. + * + * @example + * import { intercalate } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * const S1 = pipe(S.Semigroup, intercalate(' + ')) + * + * assert.strictEqual(S1.concat('a', 'b'), 'a + b') + * + * @since 2.10.0 + */ +export declare const intercalate: <A>(middle: A) => (S: Semigroup<A>) => Semigroup<A> +/** + * Always return the first argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.first<number>().concat(1, 2), 1) + * + * @category instances + * @since 2.10.0 + */ +export declare const first: <A = never>() => Semigroup<A> +/** + * Always return the last argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.last<number>().concat(1, 2), 2) + * + * @category instances + * @since 2.10.0 + */ +export declare const last: <A = never>() => Semigroup<A> +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * const sum = concatAll(N.SemigroupSum)(0) + * + * assert.deepStrictEqual(sum([1, 2, 3]), 6) + * assert.deepStrictEqual(sum([]), 0) + * + * @since 2.10.0 + */ +export declare const concatAll: <A>(S: Semigroup<A>) => (startWith: A) => (as: ReadonlyArray<A>) => A +/** + * Use `void` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupVoid: Semigroup<void> +/** + * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getObjectSemigroup: <A extends object = never>() => Semigroup<A> +/** + * Use [`last`](#last) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getLastSemigroup: <A = never>() => Semigroup<A> +/** + * Use [`first`](#first) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFirstSemigroup: <A = never>() => Semigroup<A> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleSemigroup: <T extends ReadonlyArray<Semigroup<any>>>( + ...semigroups: T +) => Semigroup<{ + [K in keyof T]: T[K] extends Semigroup<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructSemigroup: <O extends ReadonlyRecord<string, any>>(semigroups: { + [K in keyof O]: Semigroup<O[K]> +}) => Semigroup<O> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualSemigroup: <A>(S: Semigroup<A>) => Semigroup<A> +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getJoinSemigroup: <A>(O: Ord<A>) => Semigroup<A> +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMeetSemigroup: <A>(O: Ord<A>) => Semigroup<A> +/** + * Use [`intercalate`](#intercalate) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const getIntercalateSemigroup: <A>(middle: A) => (S: Semigroup<A>) => Semigroup<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function fold<A>(S: Semigroup<A>): { + (startWith: A): (as: ReadonlyArray<A>) => A + (startWith: A, as: ReadonlyArray<A>): A +} +/** + * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupAll: Semigroup<boolean> +/** + * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupAny: Semigroup<boolean> +/** + * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionSemigroup: <S>(S: Semigroup<S>) => <A = never>() => Semigroup<(a: A) => S> +/** + * Use [`Semigroup`](./string.ts.html#Semigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupString: Semigroup<string> +/** + * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupSum: Semigroup<number> +/** + * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupProduct: Semigroup<number> diff --git a/node_modules/fp-ts/es6/Semigroup.js b/node_modules/fp-ts/es6/Semigroup.js new file mode 100644 index 0000000..b1df8f8 --- /dev/null +++ b/node_modules/fp-ts/es6/Semigroup.js @@ -0,0 +1,373 @@ +/** + * If a type `A` can form a `Semigroup` it has an **associative** binary operation. + * + * ```ts + * interface Semigroup<A> { + * readonly concat: (x: A, y: A) => A + * } + * ``` + * + * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`. + * + * ```ts + * concat(x, concat(y, z)) = concat(concat(x, y), z) + * ``` + * + * A common example of a semigroup is the type `string` with the operation `+`. + * + * ```ts + * import { Semigroup } from 'fp-ts/Semigroup' + * + * const semigroupString: Semigroup<string> = { + * concat: (x, y) => x + y + * } + * + * const x = 'x' + * const y = 'y' + * const z = 'z' + * + * semigroupString.concat(x, y) // 'xy' + * + * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz' + * + * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz' + * ``` + * + * *Adapted from https://typelevel.org/cats* + * + * @since 2.0.0 + */ +import { getSemigroup, identity } from './function'; +import * as _ from './internal'; +import * as M from './Magma'; +import * as Or from './Ord'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Get a semigroup where `concat` will return the minimum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.min(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +export var min = function (O) { return ({ + concat: Or.min(O) +}); }; +/** + * Get a semigroup where `concat` will return the maximum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.max(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +export var max = function (O) { return ({ + concat: Or.max(O) +}); }; +/** + * @category constructors + * @since 2.10.0 + */ +export var constant = function (a) { return ({ + concat: function () { return a; } +}); }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +export var reverse = M.reverse; +/** + * Given a struct of semigroups returns a semigroup for the struct. + * + * @example + * import { struct } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const S = struct<Point>({ + * x: N.SemigroupSum, + * y: N.SemigroupSum + * }) + * + * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +export var struct = function (semigroups) { return ({ + concat: function (first, second) { + var r = {}; + for (var k in semigroups) { + if (_.has.call(semigroups, k)) { + r[k] = semigroups[k].concat(first[k], second[k]); + } + } + return r; + } +}); }; +/** + * Given a tuple of semigroups returns a semigroup for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Semigroup' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const S1 = tuple(S.Semigroup, N.SemigroupSum) + * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll) + * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +export var tuple = function () { + var semigroups = []; + for (var _i = 0; _i < arguments.length; _i++) { + semigroups[_i] = arguments[_i]; + } + return ({ + concat: function (first, second) { return semigroups.map(function (s, i) { return s.concat(first[i], second[i]); }); } + }); +}; +/** + * Between each pair of elements insert `middle`. + * + * @example + * import { intercalate } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * const S1 = pipe(S.Semigroup, intercalate(' + ')) + * + * assert.strictEqual(S1.concat('a', 'b'), 'a + b') + * + * @since 2.10.0 + */ +export var intercalate = function (middle) { + return function (S) { return ({ + concat: function (x, y) { return S.concat(x, S.concat(middle, y)); } + }); }; +}; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * Always return the first argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.first<number>().concat(1, 2), 1) + * + * @category instances + * @since 2.10.0 + */ +export var first = function () { return ({ concat: identity }); }; +/** + * Always return the last argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.last<number>().concat(1, 2), 2) + * + * @category instances + * @since 2.10.0 + */ +export var last = function () { return ({ concat: function (_, y) { return y; } }); }; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * const sum = concatAll(N.SemigroupSum)(0) + * + * assert.deepStrictEqual(sum([1, 2, 3]), 6) + * assert.deepStrictEqual(sum([]), 0) + * + * @since 2.10.0 + */ +export var concatAll = M.concatAll; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `void` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupVoid = constant(undefined); +/** + * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getObjectSemigroup = function () { return ({ + concat: function (first, second) { return Object.assign({}, first, second); } +}); }; +/** + * Use [`last`](#last) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getLastSemigroup = last; +/** + * Use [`first`](#first) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFirstSemigroup = first; +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getTupleSemigroup = tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getStructSemigroup = struct; +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getDualSemigroup = reverse; +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getJoinSemigroup = max; +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getMeetSemigroup = min; +/** + * Use [`intercalate`](#intercalate) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export var getIntercalateSemigroup = intercalate; +export function fold(S) { + var concatAllS = concatAll(S); + return function (startWith, as) { return (as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as)); }; +} +/** + * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupAll = { + concat: function (x, y) { return x && y; } +}; +/** + * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupAny = { + concat: function (x, y) { return x || y; } +}; +/** + * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFunctionSemigroup = getSemigroup; +/** + * Use [`Semigroup`](./string.ts.html#Semigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupString = { + concat: function (x, y) { return x + y; } +}; +/** + * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupSum = { + concat: function (x, y) { return x + y; } +}; +/** + * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var semigroupProduct = { + concat: function (x, y) { return x * y; } +}; diff --git a/node_modules/fp-ts/es6/Semigroupoid.d.ts b/node_modules/fp-ts/es6/Semigroupoid.d.ts new file mode 100644 index 0000000..3aa5d68 --- /dev/null +++ b/node_modules/fp-ts/es6/Semigroupoid.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.0.0 + */ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid<F> { + readonly URI: F + readonly compose: <A, B, C>(bc: HKT2<F, B, C>, ab: HKT2<F, A, B>) => HKT2<F, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid2<F extends URIS2> { + readonly URI: F + readonly compose: <A, B, C>(ab: Kind2<F, B, C>, la: Kind2<F, A, B>) => Kind2<F, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid2C<F extends URIS2, A> { + readonly URI: F + readonly _E: A + readonly compose: <B, C>(ab: Kind2<F, B, C>, la: Kind2<F, A, B>) => Kind2<F, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid3<F extends URIS3> { + readonly URI: F + readonly compose: <R, A, B, C>(ab: Kind3<F, R, B, C>, la: Kind3<F, R, A, B>) => Kind3<F, R, A, C> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Semigroupoid3C<F extends URIS3, A> { + readonly URI: F + readonly _E: A + readonly compose: <R, B, C>(ab: Kind3<F, R, B, C>, la: Kind3<F, R, A, B>) => Kind3<F, R, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid4<F extends URIS4> { + readonly URI: F + readonly compose: <S, R, A, B, C>(ab: Kind4<F, S, R, B, C>, la: Kind4<F, S, R, A, B>) => Kind4<F, S, R, A, C> +} diff --git a/node_modules/fp-ts/es6/Semigroupoid.js b/node_modules/fp-ts/es6/Semigroupoid.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Semigroupoid.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Semiring.d.ts b/node_modules/fp-ts/es6/Semiring.d.ts new file mode 100644 index 0000000..1b55baa --- /dev/null +++ b/node_modules/fp-ts/es6/Semiring.d.ts @@ -0,0 +1,18 @@ +/** + * @category model + * @since 2.0.0 + */ +export interface Semiring<A> { + readonly add: (x: A, y: A) => A + readonly zero: A + readonly mul: (x: A, y: A) => A + readonly one: A +} +/** + * Use [`getSemiring`](./function.ts.html#getsemiring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionSemiring: <A, B>(S: Semiring<B>) => Semiring<(a: A) => B> diff --git a/node_modules/fp-ts/es6/Semiring.js b/node_modules/fp-ts/es6/Semiring.js new file mode 100644 index 0000000..86e91ed --- /dev/null +++ b/node_modules/fp-ts/es6/Semiring.js @@ -0,0 +1,35 @@ +/** + * The `Semiring` class is for types that support an addition and multiplication operation. + * + * Instances must satisfy the following laws: + * + * - Commutative monoid under addition: + * - Associativity: `(a + b) + c <-> a + (b + c)` + * - Identity: `zero + a = a + zero <-> a` + * - Commutative: `a + b <-> b + a` + * - Monoid under multiplication: + * - Associativity: `(a * b) * c <-> a * (b * c)` + * - Identity: `one * a <-> a * one <-> a` + * - Multiplication distributes over addition: + * - Left distributivity: `a * (b + c) <-> (a * b) + (a * c)` + * - Right distributivity: `(a + b) * c <-> (a * c) + (b * c)` + * - Annihilation: `zero * a <-> a * zero <-> zero` + * + * **Note:** The `number` type is not fully law abiding members of this class hierarchy due to the potential + * for arithmetic overflows, and the presence of `NaN` and `Infinity` values. The behaviour is + * unspecified in these cases. + * + * @since 2.0.0 + */ +import { getSemiring } from './function'; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`getSemiring`](./function.ts.html#getsemiring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getFunctionSemiring = getSemiring; diff --git a/node_modules/fp-ts/es6/Separated.d.ts b/node_modules/fp-ts/es6/Separated.d.ts new file mode 100644 index 0000000..3e8e112 --- /dev/null +++ b/node_modules/fp-ts/es6/Separated.d.ts @@ -0,0 +1,91 @@ +/** + * ```ts + * interface Separated<E, A> { + * readonly left: E + * readonly right: A + * } + * ``` + * + * Represents a result of separating a whole into two parts. + * + * @since 2.10.0 + */ +import { Bifunctor2 } from './Bifunctor' +import { Functor2 } from './Functor' +/** + * A `Separated` type which holds `left` and `right` parts. + * + * @category model + * @since 2.10.0 + */ +export interface Separated<E, A> { + readonly left: E + readonly right: A +} +/** + * @category constructors + * @since 2.10.0 + */ +export declare const separated: <E, A>(left: E, right: A) => Separated<E, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Separated<E, A>) => Separated<E, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.10.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Separated<E, A>) => Separated<G, A> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.10.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Separated<E, A>) => Separated<G, B> +/** + * @category type lambdas + * @since 2.10.0 + */ +export declare const URI = 'Separated' +/** + * @category type lambdas + * @since 2.10.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Separated<E, A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Separated', E, (a: A) => B>) => import('./HKT').Kind2<'Separated', E, B> +/** + * @since 2.10.0 + */ +export declare const left: <E, A>(s: Separated<E, A>) => E +/** + * @since 2.10.0 + */ +export declare const right: <E, A>(s: Separated<E, A>) => A diff --git a/node_modules/fp-ts/es6/Separated.js b/node_modules/fp-ts/es6/Separated.js new file mode 100644 index 0000000..0ff5255 --- /dev/null +++ b/node_modules/fp-ts/es6/Separated.js @@ -0,0 +1,97 @@ +/** + * ```ts + * interface Separated<E, A> { + * readonly left: E + * readonly right: A + * } + * ``` + * + * Represents a result of separating a whole into two parts. + * + * @since 2.10.0 + */ +import { pipe } from './function'; +import { flap as flap_ } from './Functor'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.10.0 + */ +export var separated = function (left, right) { return ({ left: left, right: right }); }; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); }; +var _bimap = function (fa, g, f) { return pipe(fa, bimap(g, f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +export var map = function (f) { + return function (fa) { + return separated(left(fa), f(right(fa))); + }; +}; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.10.0 + */ +export var mapLeft = function (f) { + return function (fa) { + return separated(f(left(fa)), right(fa)); + }; +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.10.0 + */ +export var bimap = function (f, g) { + return function (fa) { + return separated(f(left(fa)), g(right(fa))); + }; +}; +/** + * @category type lambdas + * @since 2.10.0 + */ +export var URI = 'Separated'; +/** + * @category instances + * @since 2.10.0 + */ +export var Bifunctor = { + URI: URI, + mapLeft: _mapLeft, + bimap: _bimap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +export var left = function (s) { return s.left; }; +/** + * @since 2.10.0 + */ +export var right = function (s) { return s.right; }; diff --git a/node_modules/fp-ts/es6/Set.d.ts b/node_modules/fp-ts/es6/Set.d.ts new file mode 100644 index 0000000..b4f865a --- /dev/null +++ b/node_modules/fp-ts/es6/Set.d.ts @@ -0,0 +1,231 @@ +/** + * @since 2.0.0 + */ +import { Either } from './Either' +import { Eq } from './Eq' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Set<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Set<A>> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @since 2.0.0 + */ +export declare function map<B>(E: Eq<B>): <A>(f: (x: A) => B) => (set: Set<A>) => Set<B> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @since 2.0.0 + */ +export declare function chain<B>(E: Eq<B>): <A>(f: (x: A) => Set<B>) => (set: Set<A>) => Set<B> +/** + * @since 2.0.0 + */ +export declare function filter<A, B extends A>(refinement: Refinement<A, B>): (set: Set<A>) => Set<B> +export declare function filter<A>(predicate: Predicate<A>): <B extends A>(set: Set<B>) => Set<B> +export declare function filter<A>(predicate: Predicate<A>): (set: Set<A>) => Set<A> +/** + * @since 2.0.0 + */ +export declare function partition<A, B extends A>( + refinement: Refinement<A, B> +): (set: Set<A>) => Separated<Set<A>, Set<B>> +export declare function partition<A>(predicate: Predicate<A>): <B extends A>(set: Set<B>) => Separated<Set<B>, Set<B>> +export declare function partition<A>(predicate: Predicate<A>): (set: Set<A>) => Separated<Set<A>, Set<A>> +/** + * Form the union of two sets + * + * @since 2.0.0 + */ +export declare function union<A>(E: Eq<A>): { + (that: Set<A>): (me: Set<A>) => Set<A> + (me: Set<A>, that: Set<A>): Set<A> +} +/** + * The set of elements which are in both the first and second set + * + * @since 2.0.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (that: Set<A>): (me: Set<A>) => Set<A> + (me: Set<A>, that: Set<A>): Set<A> +} +/** + * @since 2.0.0 + */ +export declare function partitionMap<B, C>( + EB: Eq<B>, + EC: Eq<C> +): <A>(f: (a: A) => Either<B, C>) => (set: Set<A>) => Separated<Set<B>, Set<C>> +/** + * Form the set difference (`x` - `y`) + * + * @example + * import { difference } from 'fp-ts/Set' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(new Set([1, 2]), difference(N.Eq)(new Set([1, 3]))), new Set([2])) + * + * @since 2.0.0 + */ +export declare function difference<A>(E: Eq<A>): { + (that: Set<A>): (me: Set<A>) => Set<A> + (me: Set<A>, that: Set<A>): Set<A> +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<Set<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<Set<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<Set<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<Set<A>> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A>(O: Ord<A>) => <B>(b: B, f: (b: B, a: A) => B) => (fa: Set<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <A, M>(O: Ord<A>, M: Monoid<M>) => (f: (a: A) => M) => (fa: Set<A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <A>(O: Ord<A>) => <B>(b: B, f: (a: A, b: B) => B) => (fa: Set<A>) => B +/** + * Create a set with one element + * + * @category constructors + * @since 2.0.0 + */ +export declare const singleton: <A>(a: A) => Set<A> +/** + * Insert a value into a set + * + * @since 2.0.0 + */ +export declare function insert<A>(E: Eq<A>): (a: A) => (set: Set<A>) => Set<A> +/** + * Delete a value from a set + * + * @since 2.0.0 + */ +export declare const remove: <A>(E: Eq<A>) => (a: A) => (set: Set<A>) => Set<A> +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.5.0 + */ +export declare const toggle: <A>(E: Eq<A>) => (a: A) => (set: Set<A>) => Set<A> +/** + * Create a set from an array + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromArray: <A>(E: Eq<A>) => (as: Array<A>) => Set<A> +/** + * @since 2.0.0 + */ +export declare const compact: <A>(E: Eq<A>) => (fa: Set<Option<A>>) => Set<A> +/** + * @since 2.0.0 + */ +export declare function separate<E, A>(EE: Eq<E>, EA: Eq<A>): (fa: Set<Either<E, A>>) => Separated<Set<E>, Set<A>> +/** + * @since 2.0.0 + */ +export declare function filterMap<B>(E: Eq<B>): <A>(f: (a: A) => Option<B>) => (fa: Set<A>) => Set<B> +/** + * @since 2.0.0 + */ +export declare const empty: Set<never> +/** + * Test whether a `Set` is empty. + * + * @since 2.10.0 + */ +export declare const isEmpty: <A>(set: Set<A>) => boolean +/** + * Calculate the number of elements in a `Set`. + * + * @since 2.10.0 + */ +export declare const size: <A>(set: Set<A>) => number +/** + * @since 2.0.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (set: Set<A>) => boolean +/** + * @since 2.0.0 + */ +export declare const every: { + <A, B extends A>(refinement: Refinement<A, B>): Refinement<Set<A>, Set<B>> + <A>(predicate: Predicate<A>): Predicate<Set<A>> +} +/** + * @since 2.10.0 + */ +export declare const isSubset: <A>(E: Eq<A>) => (that: Set<A>) => (me: Set<A>) => boolean +/** + * Test if a value is a member of a set + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): (set: Set<A>) => boolean + (a: A, set: Set<A>): boolean +} +/** + * Get a sorted `Array` of the values contained in a `Set`. + * + * @category conversions + * @since 2.0.0 + */ +export declare const toArray: <A>(O: Ord<A>) => (set: Set<A>) => Array<A> +/** + * Use [`isSubset`](#issubset) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const subset: <A>(E: Eq<A>) => { + (that: Set<A>): (me: Set<A>) => boolean + (me: Set<A>, that: Set<A>): boolean +} diff --git a/node_modules/fp-ts/es6/Set.js b/node_modules/fp-ts/es6/Set.js new file mode 100644 index 0000000..032bed1 --- /dev/null +++ b/node_modules/fp-ts/es6/Set.js @@ -0,0 +1,387 @@ +import { identity } from './function'; +import * as RS from './ReadonlySet'; +import { separated } from './Separated'; +/** + * @category instances + * @since 2.0.0 + */ +export var getShow = RS.getShow; +/** + * @category instances + * @since 2.0.0 + */ +export var getEq = RS.getEq; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @since 2.0.0 + */ +export function map(E) { + var elemE = elem(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + var v = f(e); + if (!elemE(v, r)) { + r.add(v); + } + }); + return r; + }; }; +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @since 2.0.0 + */ +export function chain(E) { + var elemE = elem(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + f(e).forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + }); + return r; + }; }; +} +export function filter(predicate) { + return function (set) { + var values = set.values(); + var e; + var r = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + r.add(a); + } + } + return r; + }; +} +export function partition(predicate) { + return function (set) { + var values = set.values(); + var e; + var right = new Set(); + var left = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + right.add(a); + } + else { + left.add(a); + } + } + return separated(left, right); + }; +} +export function union(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var unionE_1 = union(E); + return function (that) { return unionE_1(me, that); }; + } + if (isEmpty(me)) { + return that; + } + if (isEmpty(that)) { + return me; + } + var r = new Set(me); + that.forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + return r; + }; +} +export function intersection(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var intersectionE_1 = intersection(E); + return function (that) { return intersectionE_1(that, me); }; + } + if (isEmpty(me) || isEmpty(that)) { + return new Set(); + } + var r = new Set(); + me.forEach(function (e) { + if (elemE(e, that)) { + r.add(e); + } + }); + return r; + }; +} +/** + * @since 2.0.0 + */ +export function partitionMap(EB, EC) { + return function (f) { + return function (set) { + var values = set.values(); + var e; + var left = new Set(); + var right = new Set(); + var hasB = elem(EB); + var hasC = elem(EC); + while (!(e = values.next()).done) { + var v = f(e.value); + switch (v._tag) { + case 'Left': + if (!hasB(v.left, left)) { + left.add(v.left); + } + break; + case 'Right': + if (!hasC(v.right, right)) { + right.add(v.right); + } + break; + } + } + return separated(left, right); + }; + }; +} +export function difference(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var differenceE_1 = difference(E); + return function (that) { return differenceE_1(that, me); }; + } + return filter(function (a) { return !elemE(a, that); })(me); + }; +} +/** + * @category instances + * @since 2.11.0 + */ +export var getUnionSemigroup = function (E) { return ({ + concat: union(E) +}); }; +/** + * @category instances + * @since 2.0.0 + */ +export var getUnionMonoid = function (E) { return ({ + concat: getUnionSemigroup(E).concat, + empty: new Set() +}); }; +/** + * @category instances + * @since 2.0.0 + */ +export var getIntersectionSemigroup = function (E) { return ({ + concat: intersection(E) +}); }; +/** + * @category instances + * @since 2.11.0 + */ +export var getDifferenceMagma = function (E) { return ({ + concat: difference(E) +}); }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = RS.reduce; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = RS.foldMap; +/** + * @category folding + * @since 2.11.0 + */ +export var reduceRight = RS.reduceRight; +/** + * Create a set with one element + * + * @category constructors + * @since 2.0.0 + */ +export var singleton = function (a) { return new Set([a]); }; +/** + * Insert a value into a set + * + * @since 2.0.0 + */ +export function insert(E) { + var elemE = elem(E); + return function (a) { return function (set) { + if (!elemE(a)(set)) { + var r = new Set(set); + r.add(a); + return r; + } + else { + return set; + } + }; }; +} +/** + * Delete a value from a set + * + * @since 2.0.0 + */ +export var remove = function (E) { + return function (a) { + return function (set) { + return filter(function (ax) { return !E.equals(a, ax); })(set); + }; + }; +}; +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.5.0 + */ +export var toggle = function (E) { + var elemE = elem(E); + var removeE = remove(E); + var insertE = insert(E); + return function (a) { return function (set) { return (elemE(a, set) ? removeE : insertE)(a)(set); }; }; +}; +/** + * Create a set from an array + * + * @category conversions + * @since 2.0.0 + */ +export var fromArray = function (E) { + return function (as) { + var len = as.length; + var out = new Set(); + var has = elem(E); + for (var i = 0; i < len; i++) { + var a = as[i]; + if (!has(a, out)) { + out.add(a); + } + } + return out; + }; +}; +/** + * @since 2.0.0 + */ +export var compact = function (E) { return filterMap(E)(identity); }; +/** + * @since 2.0.0 + */ +export function separate(EE, EA) { + return function (fa) { + var elemEE = elem(EE); + var elemEA = elem(EA); + var left = new Set(); + var right = new Set(); + fa.forEach(function (e) { + switch (e._tag) { + case 'Left': + if (!elemEE(e.left, left)) { + left.add(e.left); + } + break; + case 'Right': + if (!elemEA(e.right, right)) { + right.add(e.right); + } + break; + } + }); + return separated(left, right); + }; +} +/** + * @since 2.0.0 + */ +export function filterMap(E) { + var elemE = elem(E); + return function (f) { return function (fa) { + var r = new Set(); + fa.forEach(function (a) { + var ob = f(a); + if (ob._tag === 'Some' && !elemE(ob.value, r)) { + r.add(ob.value); + } + }); + return r; + }; }; +} +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +export var empty = new Set(); +/** + * Test whether a `Set` is empty. + * + * @since 2.10.0 + */ +export var isEmpty = function (set) { return set.size === 0; }; +/** + * Calculate the number of elements in a `Set`. + * + * @since 2.10.0 + */ +export var size = function (set) { return set.size; }; +/** + * @since 2.0.0 + */ +export var some = RS.some; +/** + * @since 2.0.0 + */ +export var every = RS.every; +/** + * @since 2.10.0 + */ +export var isSubset = RS.isSubset; +// TODO: remove non-curried overloading in v3 +/** + * Test if a value is a member of a set + * + * @since 2.0.0 + */ +export var elem = RS.elem; +/** + * Get a sorted `Array` of the values contained in a `Set`. + * + * @category conversions + * @since 2.0.0 + */ +export var toArray = function (O) { + return function (set) { + var out = []; + set.forEach(function (e) { return out.push(e); }); + return out.sort(O.compare); + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`isSubset`](#issubset) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var subset = RS.isSubset; diff --git a/node_modules/fp-ts/es6/Show.d.ts b/node_modules/fp-ts/es6/Show.d.ts new file mode 100644 index 0000000..8af6b64 --- /dev/null +++ b/node_modules/fp-ts/es6/Show.d.ts @@ -0,0 +1,64 @@ +import { ReadonlyRecord } from './ReadonlyRecord' +/** + * @category model + * @since 2.0.0 + */ +export interface Show<A> { + readonly show: (a: A) => string +} +/** + * @since 2.10.0 + */ +export declare const struct: <A>(shows: { [K in keyof A]: Show<A[K]> }) => Show<{ readonly [K in keyof A]: A[K] }> +/** + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...shows: { [K in keyof A]: Show<A[K]> } +) => Show<Readonly<A>> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleShow: <T extends ReadonlyArray<Show<any>>>( + ...shows: T +) => Show<{ + [K in keyof T]: T[K] extends Show<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructShow: <O extends ReadonlyRecord<string, any>>(shows: { + [K in keyof O]: Show<O[K]> +}) => Show<O> +/** + * Use [`Show`](./boolean.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const showBoolean: Show<boolean> +/** + * Use [`Show`](./string.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const showString: Show<string> +/** + * Use [`Show`](./number.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const showNumber: Show<number> diff --git a/node_modules/fp-ts/es6/Show.js b/node_modules/fp-ts/es6/Show.js new file mode 100644 index 0000000..0d730d0 --- /dev/null +++ b/node_modules/fp-ts/es6/Show.js @@ -0,0 +1,93 @@ +/** + * The `Show` type class represents those types which can be converted into + * a human-readable `string` representation. + * + * While not required, it is recommended that for any expression `x`, the + * string `show(x)` be executable TypeScript code which evaluates to the same + * value as the expression `x`. + * + * @since 2.0.0 + */ +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +export var struct = function (shows) { return ({ + show: function (a) { + var s = '{'; + for (var k in shows) { + if (_.has.call(shows, k)) { + s += " ".concat(k, ": ").concat(shows[k].show(a[k]), ","); + } + } + if (s.length > 1) { + s = s.slice(0, -1) + ' '; + } + s += '}'; + return s; + } +}); }; +/** + * @since 2.10.0 + */ +export var tuple = function () { + var shows = []; + for (var _i = 0; _i < arguments.length; _i++) { + shows[_i] = arguments[_i]; + } + return ({ + show: function (t) { return "[".concat(t.map(function (a, i) { return shows[i].show(a); }).join(', '), "]"); } + }); +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getTupleShow = tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getStructShow = struct; +/** + * Use [`Show`](./boolean.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var showBoolean = { + show: function (a) { return JSON.stringify(a); } +}; +/** + * Use [`Show`](./string.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var showString = { + show: function (a) { return JSON.stringify(a); } +}; +/** + * Use [`Show`](./number.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var showNumber = { + show: function (a) { return JSON.stringify(a); } +}; diff --git a/node_modules/fp-ts/es6/State.d.ts b/node_modules/fp-ts/es6/State.d.ts new file mode 100644 index 0000000..9d76671 --- /dev/null +++ b/node_modules/fp-ts/es6/State.d.ts @@ -0,0 +1,291 @@ +/** + * @since 2.0.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import * as chainable from './Chain' +import { FromState2 } from './FromState' +import { Functor2 } from './Functor' +import { Monad2 } from './Monad' +import { Pointed2 } from './Pointed' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +/** + * @category model + * @since 2.0.0 + */ +export interface State<S, A> { + (s: S): [A, S] +} +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const get: <S>() => State<S, S> +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +export declare const put: <S>(s: S) => State<S, void> +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const modify: <S>(f: (s: S) => S) => State<S, void> +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const gets: <S, A>(f: (s: S) => A) => State<S, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: State<E, A>) => State<E, B> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: State<E, A>) => <B>(fab: State<E, (a: A) => B>) => State<E, B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <S, A>(a: A) => State<S, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, S, B>(f: (a: A) => State<S, B>): (ma: State<S, A>) => State<S, B> + <S, A, B>(ma: State<S, A>, f: (a: A) => State<S, B>): State<S, B> +} +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: State<E, State<E, A>>) => State<E, A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'State' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: State<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'State', E, (a: A) => B>) => import('./HKT').Kind2<'State', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: State<E, B> +) => <A>(first: import('./HKT').Kind2<'State', E, A>) => import('./HKT').Kind2<'State', E, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: State<E, B> +) => <A>(first: import('./HKT').Kind2<'State', E, A>) => import('./HKT').Kind2<'State', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <S, A, _>(self: State<S, A>, f: (a: A) => State<S, _>): State<S, A> + <A, S, _>(f: (a: A) => State<S, _>): (self: State<S, A>) => State<S, A> +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromState: FromState2<URI> +/** + * Run a computation in the `State` monad, discarding the final state + * + * @since 2.8.0 + */ +export declare const evaluate: <S>(s: S) => <A>(ma: State<S, A>) => A +/** + * Run a computation in the `State` monad discarding the result + * + * @since 2.8.0 + */ +export declare const execute: <S>(s: S) => <A>(ma: State<S, A>) => S +/** + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>(fa: import('./HKT').Kind2<'State', E, A>) => import('./HKT').Kind2<'State', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'State', E, A> +) => import('./HKT').Kind2<'State', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @since 2.13.0 + */ + let_ as let +} +/** + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'State', E, B> +) => ( + ma: import('./HKT').Kind2<'State', E, A> +) => import('./HKT').Kind2<'State', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: State<E, B> +) => ( + fa: import('./HKT').Kind2<'State', E, A> +) => import('./HKT').Kind2<'State', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, S, B>( + f: (index: number, a: A) => State<S, B> +) => (as: ReadonlyNonEmptyArray<A>) => State<S, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, S, B>( + f: (index: number, a: A) => State<S, B> +) => (as: ReadonlyArray<A>) => State<S, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, S, B>( + f: (index: number, a: A) => State<S, B> +) => (as: ReadonlyArray<A>) => State<S, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, S, B>( + f: (a: A) => State<S, B> +) => (as: ReadonlyArray<A>) => State<S, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <S, A>(arr: ReadonlyArray<State<S, A>>) => State<S, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <S, A, B>(f: (a: A) => State<S, B>) => (ma: State<S, A>) => State<S, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <S, A, B>(f: (a: A) => State<S, B>) => (ma: State<S, A>) => State<S, A> +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const evalState: <S, A>(ma: State<S, A>, s: S) => A +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const execState: <S, A>(ma: State<S, A>, s: S) => S +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `S.Functor` instead of `S.state` + * (where `S` is from `import S from 'fp-ts/State'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const state: Monad2<URI> diff --git a/node_modules/fp-ts/es6/State.js b/node_modules/fp-ts/es6/State.js new file mode 100644 index 0000000..a95a774 --- /dev/null +++ b/node_modules/fp-ts/es6/State.js @@ -0,0 +1,322 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import * as chainable from './Chain'; +import { dual, identity, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +export var get = function () { return function (s) { return [s, s]; }; }; +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +export var put = function (s) { return function () { return [undefined, s]; }; }; +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +export var modify = function (f) { return function (s) { return [undefined, f(s)]; }; }; +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +export var gets = function (f) { return function (s) { return [f(s), s]; }; }; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return function (s1) { + var _a = fa(s1), a = _a[0], s2 = _a[1]; + return [f(a), s2]; +}; }; }; +/** + * @since 2.0.0 + */ +export var ap = function (fa) { return function (fab) { return function (s1) { + var _a = fab(s1), f = _a[0], s2 = _a[1]; + var _b = fa(s2), a = _b[0], s3 = _b[1]; + return [f(a), s3]; +}; }; }; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = function (a) { return function (s) { return [a, s]; }; }; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return function (s1) { + var _a = ma(s1), a = _a[0], s2 = _a[1]; + return f(a)(s2); + }; +}); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'State'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * @category instances + * @since 2.11.0 + */ +export var FromState = { + URI: URI, + fromState: identity +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Run a computation in the `State` monad, discarding the final state + * + * @since 2.8.0 + */ +export var evaluate = function (s) { + return function (ma) { + return ma(s)[0]; + }; +}; +/** + * Run a computation in the `State` monad discarding the result + * + * @since 2.8.0 + */ +export var execute = function (s) { + return function (ma) { + return ma(s)[1]; + }; +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @since 2.13.0 + */ +let_ as let }; +/** + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +// ------------------------------------------------------------------------------------- +// pipeable sequence S +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function (s) { + var _a = f(0, _.head(as))(s), b = _a[0], s2 = _a[1]; + var bs = [b]; + var out = s2; + for (var i = 1; i < as.length; i++) { + var _b = f(i, as[i])(out), b_1 = _b[0], s2_1 = _b[1]; + bs.push(b_1); + out = s2_1; + } + return [bs, out]; + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : of(_.emptyReadonlyArray)); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var evalState = function (ma, s) { return ma(s)[0]; }; +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var execState = function (ma, s) { return ma(s)[1]; }; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `S.Functor` instead of `S.state` + * (where `S` is from `import S from 'fp-ts/State'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var state = Monad; diff --git a/node_modules/fp-ts/es6/StateReaderTaskEither.d.ts b/node_modules/fp-ts/es6/StateReaderTaskEither.d.ts new file mode 100644 index 0000000..0acb9be --- /dev/null +++ b/node_modules/fp-ts/es6/StateReaderTaskEither.d.ts @@ -0,0 +1,1241 @@ +/** + * @since 2.0.0 + */ +import { Alt4 } from './Alt' +import { Applicative4 } from './Applicative' +import { Apply4 } from './Apply' +import { Bifunctor4 } from './Bifunctor' +import * as chainable from './Chain' +import * as E from './Either' +import { Endomorphism } from './Endomorphism' +import { FromEither4 } from './FromEither' +import { FromIO4 } from './FromIO' +import { FromReader4 } from './FromReader' +import { FromState4 } from './FromState' +import { FromTask4 } from './FromTask' +import { LazyArg } from './function' +import { Functor4 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad4 } from './Monad' +import { MonadIO4 } from './MonadIO' +import { MonadTask4 } from './MonadTask' +import { MonadThrow4 } from './MonadThrow' +import { Option } from './Option' +import { Pointed4 } from './Pointed' +import { Predicate } from './Predicate' +import * as R from './Reader' +import { ReaderEither } from './ReaderEither' +import * as RTE from './ReaderTaskEither' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { State } from './State' +import { Task } from './Task' +import { TaskEither } from './TaskEither' +import ReaderTaskEither = RTE.ReaderTaskEither +import Either = E.Either +import Reader = R.Reader +/** + * @category model + * @since 2.0.0 + */ +export interface StateReaderTaskEither<S, R, E, A> { + (s: S): ReaderTaskEither<R, E, [A, S]> +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <S, R, E, A = never>(e: E) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <S, R, E = never, A = never>(a: A) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function rightTask<S, R, E = never, A = never>(ma: Task<A>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function leftTask<S, R, E, A = never>(me: Task<E>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function rightReader<S, R, E = never, A = never>(ma: Reader<R, A>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function leftReader<S, R, E, A = never>(me: Reader<R, E>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function rightIO<S, R, E = never, A = never>(ma: IO<A>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function leftIO<S, R, E, A = never>(me: IO<E>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightState: <S, R, E = never, A = never>(ma: State<S, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftState: <S, R, E, A = never>(me: State<S, E>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A, S, R = unknown>(fa: Either<E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromReader: <R, A, S, E = never>(fa: Reader<R, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, S, R = unknown, E = never>(fa: IO<A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromTask: <A, S, R = unknown, E = never>(fa: Task<A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromState: <S, A, R = unknown, E = never>(fa: State<S, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromTaskEither: <E, A, S, R = unknown>(fa: TaskEither<E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIOEither: <E, A, S, R = unknown>(fa: IOEither<E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromReaderEither: <R, E, A, S>(fa: ReaderEither<R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const fromReaderTaskEither: <R, E, A, S>( + fa: ReaderTaskEither<R, E, A> +) => StateReaderTaskEither<S, R, E, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.11.0 + */ +export declare const local: <R2, R1>( + f: (r2: R2) => R1 +) => <S, E, A>(ma: StateReaderTaskEither<S, R1, E, A>) => StateReaderTaskEither<S, R2, E, A> +/** + * Less strict version of [`asksStateReaderTaskEither`](#asksstatereadertaskeither). + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksStateReaderTaskEitherW: <R1, S, R2, E, A>( + f: (r1: R1) => StateReaderTaskEither<S, R2, E, A> +) => StateReaderTaskEither<S, R1 & R2, E, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksStateReaderTaskEither: <R, S, E, A>( + f: (r: R) => StateReaderTaskEither<S, R, E, A> +) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IOEither<E, B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromTaskEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => TaskEither<E, B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromReaderTaskEitherK: <R, E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => ReaderTaskEither<R, E, B> +) => <S>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapReaderTaskEither`. + * + * Less strict version of [`chainReaderTaskEitherK`](#chainreadertaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainReaderTaskEitherKW: <R, E2, A, B>( + f: (a: A) => ReaderTaskEither<R, E2, B> +) => <S, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapReaderTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainReaderTaskEitherK: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => <S>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>( + f: (a: A) => B +) => <S, R, E>(fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Map a pair of functions over the two last type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +export declare const bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <S, R>(fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, G, B> +/** + * Map a function over the third type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +export declare const mapLeft: <E, G>( + f: (e: E) => G +) => <S, R, A>(fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <S, R, E, A>( + fa: StateReaderTaskEither<S, R, E, A> +) => <B>(fab: StateReaderTaskEither<S, R, E, (a: A) => B>) => StateReaderTaskEither<S, R, E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <S, R2, E2, A>( + fa: StateReaderTaskEither<S, R2, E2, A> +) => <R1, E1, B>(fab: StateReaderTaskEither<S, R1, E1, (a: A) => B>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <S, R = unknown, E = never, A = never>(a: A) => StateReaderTaskEither<S, R, E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, S, R2, E2, B>(f: (a: A) => StateReaderTaskEither<S, R2, E2, B>): <R1, E1>( + ma: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> + <S, R1, E1, A, R2, E2, B>( + ma: StateReaderTaskEither<S, R1, E1, A>, + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> + ): StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTaskEither: { + <A, E2, B>(f: (a: A) => TaskEither<E2, B>): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>(self: StateReaderTaskEither<S, R, E1, A>, f: (a: A) => TaskEither<E2, B>): StateReaderTaskEither< + S, + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> + <S, R, E, A, B>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => IO<B>): StateReaderTaskEither<S, R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> + <S, R, E, A, B>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => Task<B>): StateReaderTaskEither<S, R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <S, R1, E>( + self: StateReaderTaskEither<S, R1, E, A> + ) => StateReaderTaskEither<S, R1 & R2, E, B> + <S, R1, E, A, R2, B>(self: StateReaderTaskEither<S, R1, E, A>, f: (a: A) => Reader<R2, B>): StateReaderTaskEither< + S, + R1 & R2, + E, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIOEither: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>(self: StateReaderTaskEither<S, R, E1, A>, f: (a: A) => IOEither<E2, B>): StateReaderTaskEither< + S, + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => Either<E2, B>): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>(self: StateReaderTaskEither<S, R, E1, A>, f: (a: A) => Either<E2, B>): StateReaderTaskEither< + S, + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapOption: { + <A, E2, B>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>( + self: StateReaderTaskEither<S, R, E1, A>, + f: (a: A) => Option<B>, + onNone: (a: A) => E2 + ): StateReaderTaskEither<S, R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderTaskEither: { + <A, R2, E2, B>(f: (a: A) => ReaderTaskEither<R2, E2, B>): <S, R1, E1>( + self: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> + <S, R1, E1, A, R2, E2, B>( + self: StateReaderTaskEither<S, R1, E1, A>, + f: (a: A) => ReaderTaskEither<R2, E2, B> + ): StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapState: { + <S, A, B>(f: (a: A) => State<S, B>): <R, E>( + self: StateReaderTaskEither<S, R, E, A> + ) => StateReaderTaskEither<S, R, E, B> + <S, R, E, A, B>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => State<S, B>): StateReaderTaskEither<S, R, E, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <S, R1, E1, R2, E2, A>( + mma: StateReaderTaskEither<S, R1, E1, StateReaderTaskEither<S, R2, E2, A>> +) => StateReaderTaskEither<S, R1 & R2, E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <S, R, E, A>( + mma: StateReaderTaskEither<S, R, E, StateReaderTaskEither<S, R, E, A>> +) => StateReaderTaskEither<S, R, E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <S, R2, E2, B>( + that: () => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1, A>(fa: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E2, A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.6.2 + */ +export declare const alt: <S, R, E, A>( + that: LazyArg<StateReaderTaskEither<S, R, E, A>> +) => (fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow4<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'StateReaderTaskEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind4<S, R, E, A> { + readonly [URI]: StateReaderTaskEither<S, R, E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor4<URI> +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <S, R, E, _>(self: StateReaderTaskEither<S, R, E, _>) => StateReaderTaskEither<S, R, E, A> + <S, R, E, _, A>(self: StateReaderTaskEither<S, R, E, _>, a: A): StateReaderTaskEither<S, R, E, A> +} +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <S, R, E, _>( + self: StateReaderTaskEither<S, R, E, _> +) => StateReaderTaskEither<S, R, E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <S, R, E, B>( + fab: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, (a: A) => B> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply4<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <S, R, E, B>( + second: StateReaderTaskEither<S, R, E, B> +) => <A>( + first: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <S, R2, E2, A, B>( + second: StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(first: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <S, R, E, B>( + second: StateReaderTaskEither<S, R, E, B> +) => <A>( + first: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <S, R2, E2, A, B>( + second: StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(first: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain4<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromState: FromState4<URI> +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const get: <S, R, E = never>() => StateReaderTaskEither<S, R, E, S> +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +export declare const put: <S, R, E = never>(s: S) => StateReaderTaskEither<S, R, E, void> +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const modify: <S, R, E = never>(f: Endomorphism<S>) => StateReaderTaskEither<S, R, E, void> +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const gets: <S, R, E = never, A = never>(f: (s: S) => A) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromStateK: <A extends ReadonlyArray<unknown>, S, B>( + f: (...a: A) => State<S, B> +) => <R = unknown, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapState`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainStateK: <A, S, B>( + f: (a: A) => State<S, B> +) => <R, E>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadThrow: MonadThrow4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask4<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader4<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <S, R1, E1, A, R2, E2, _>( + self: StateReaderTaskEither<S, R1, E1, A>, + f: (a: A) => StateReaderTaskEither<S, R2, E2, _> + ): StateReaderTaskEither<S, R1 & R2, E1 | E2, A> + <A, S, R2, E2, _>(f: (a: A) => StateReaderTaskEither<S, R2, E2, _>): <R1, E1>( + self: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1 & R2, E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <S, R1, E1>( + self: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1, E2 | E1, A> + <S, R1, E1, A, E2, _>(self: StateReaderTaskEither<S, R1, E1, A>, f: (a: A) => Either<E2, _>): StateReaderTaskEither< + S, + R1, + E1 | E2, + A + > +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> + <S, R, E, A, _>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => IO<_>): StateReaderTaskEither<S, R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> + <S, R, E, A, _>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => Task<_>): StateReaderTaskEither<S, R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <A, R2, _>(f: (a: A) => Reader<R2, _>): <S, R1, E>( + self: StateReaderTaskEither<S, R1, E, A> + ) => StateReaderTaskEither<S, R1 & R2, E, A> + <S, R1, E, A, R2, _>(self: StateReaderTaskEither<S, R1, E, A>, f: (a: A) => Reader<R2, _>): StateReaderTaskEither< + S, + R1 & R2, + E, + A + > +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor4<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt4<URI> +/** + * Reads the current context. + * + * @category constructors + * @since 2.11.0 + */ +export declare const ask: <S, R, E = never>() => StateReaderTaskEither<S, R, E, R> +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asks: <S, R, A, E = never>(f: (r: R) => A) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => Reader<R, B> +) => <S, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <S, E>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => Reader<R1, B> +) => <S, R2, E>(ma: StateReaderTaskEither<S, R2, E, A>) => StateReaderTaskEither<S, R1 & R2, E, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <S, E>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainFirstReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => Reader<R1, B> +) => <S, R2, E>(ma: StateReaderTaskEither<S, R2, E, A>) => StateReaderTaskEither<S, R1 & R2, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>( + onNone: LazyArg<E> +) => <A, S, R = unknown>(fa: Option<A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>( + f: (a: A) => Option<B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Use `flatMapOption`. + * + * Less strict version of [`chainOptionK`](#chainoptionk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>( + f: (a: A) => Option<B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>( + f: (a: A) => E.Either<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapEither`. + * + * Less strict version of [`chainEitherK`](#chaineitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => Either<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, A> +/** + * @category lifting + * @since 2.4.4 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R = unknown>( + a: A + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R = unknown, B extends A = A>( + b: B + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R = unknown>(a: A) => StateReaderTaskEither<S, R, E, A> +} +/** + * @category filtering + * @since 2.4.4 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>( + ma: StateReaderTaskEither<S, R, E, A> + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R, B extends A>( + mb: StateReaderTaskEither<S, R, E, B> + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>( + ma: StateReaderTaskEither<S, R, E, A> + ) => StateReaderTaskEither<S, R, E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <S, R, E1>( + ma: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <S, R, E1, B extends A>( + mb: StateReaderTaskEither<S, R, E1, B> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <S, R, E1>( + ma: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <S, R = unknown, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>( + f: (a: A) => IO<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>( + f: (a: A) => IO<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainTaskEitherKW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainTaskEitherK: <E, A, B>( + f: (a: A) => TaskEither<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainIOEitherKW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOEitherK: <E, A, B>( + f: (a: A) => IOEither<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Task<B> +) => <S, R = unknown, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>( + f: (a: A) => Task<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>( + f: (a: A) => Task<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Run a computation in the `StateReaderTaskEither` monad, discarding the final state + * + * @since 2.8.0 + */ +export declare const evaluate: <S>( + s: S +) => <R, E, A>(ma: StateReaderTaskEither<S, R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Run a computation in the `StateReaderTaskEither` monad discarding the result + * + * @since 2.8.0 + */ +export declare const execute: <S>(s: S) => <R, E, A>(ma: StateReaderTaskEither<S, R, E, A>) => ReaderTaskEither<R, E, S> +/** + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <S, R, E, A>( + fa: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <S, R, E>( + fa: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4< + 'StateReaderTaskEither', + S, + R, + E, + { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B } +> +export { + /** + * @since 2.13.0 + */ + let_ as let +} +/** + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, B> +) => ( + ma: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4< + 'StateReaderTaskEither', + S, + R, + E, + { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B } +> +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, S, R2, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>( + fa: StateReaderTaskEither<S, R1, E1, A> +) => StateReaderTaskEither< + S, + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + fb: StateReaderTaskEither<S, R, E, B> +) => ( + fa: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4< + 'StateReaderTaskEither', + S, + R, + E, + { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B } +> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, S, R2, E2, B>( + name: Exclude<N, keyof A>, + fb: StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>( + fa: StateReaderTaskEither<S, R1, E1, A> +) => StateReaderTaskEither< + S, + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, S, R, E, B>( + f: (index: number, a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, S, R, E, B>( + f: (index: number, a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <S, R, E, A, B>( + f: (index: number, a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <S, R, E, A, B>( + f: (a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <S, R, E, A>( + arr: ReadonlyArray<StateReaderTaskEither<S, R, E, A>> +) => StateReaderTaskEither<S, R, E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <S, R, E, A, B>( + f: (a: A) => StateReaderTaskEither<S, R, E, B> +) => (ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <S, R2, E2, A, B>( + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(ma: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <S, R, E, A, B>( + f: (a: A) => StateReaderTaskEither<S, R, E, B> +) => (ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <S, R2, E2, A, B>( + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(ma: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEither` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const stateReaderTaskEither: Monad4<URI> & + Bifunctor4<URI> & + Alt4<URI> & + MonadTask4<URI> & + MonadThrow4<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEitherSeq` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const stateReaderTaskEitherSeq: typeof stateReaderTaskEither +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const evalState: <S, R, E, A>(ma: StateReaderTaskEither<S, R, E, A>, s: S) => ReaderTaskEither<R, E, A> +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const execState: <S, R, E, A>(ma: StateReaderTaskEither<S, R, E, A>, s: S) => ReaderTaskEither<R, E, S> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function run<S, R, E, A>(ma: StateReaderTaskEither<S, R, E, A>, s: S, r: R): Promise<Either<E, [A, S]>> diff --git a/node_modules/fp-ts/es6/StateReaderTaskEither.js b/node_modules/fp-ts/es6/StateReaderTaskEither.js new file mode 100644 index 0000000..ab7f66b --- /dev/null +++ b/node_modules/fp-ts/es6/StateReaderTaskEither.js @@ -0,0 +1,1144 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import * as chainable from './Chain'; +import * as E from './Either'; +import { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_, tapEither as tapEither_ } from './FromEither'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { ask as ask_, asks as asks_, fromReaderK as fromReaderK_, tapReader as tapReader_ } from './FromReader'; +import { chainStateK as chainStateK_, fromStateK as fromStateK_, get as get_, gets as gets_, modify as modify_, put as put_ } from './FromState'; +import { fromTaskK as fromTaskK_, tapTask as tapTask_ } from './FromTask'; +import { dual, flow, identity, pipe } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as R from './Reader'; +import * as RTE from './ReaderTaskEither'; +import * as ST from './StateT'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export var left = function (e) { return function () { return RTE.left(e); }; }; +/** + * @category constructors + * @since 2.0.0 + */ +export var right = /*#__PURE__*/ ST.of(RTE.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export function rightTask(ma) { + return fromReaderTaskEither(RTE.rightTask(ma)); +} +/** + * @category constructors + * @since 2.0.0 + */ +export function leftTask(me) { + return fromReaderTaskEither(RTE.leftTask(me)); +} +/** + * @category constructors + * @since 2.0.0 + */ +export function rightReader(ma) { + return fromReaderTaskEither(RTE.rightReader(ma)); +} +/** + * @category constructors + * @since 2.0.0 + */ +export function leftReader(me) { + return fromReaderTaskEither(RTE.leftReader(me)); +} +/** + * @category constructors + * @since 2.0.0 + */ +export function rightIO(ma) { + return fromReaderTaskEither(RTE.rightIO(ma)); +} +/** + * @category constructors + * @since 2.0.0 + */ +export function leftIO(me) { + return fromReaderTaskEither(RTE.leftIO(me)); +} +/** + * @category constructors + * @since 2.0.0 + */ +export var rightState = function (sa) { + return flow(sa, RTE.right); +}; +/** + * @category constructors + * @since 2.0.0 + */ +export var leftState = function (me) { return function (s) { + return RTE.left(me(s)[0]); +}; }; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +export var fromEither = +/*#__PURE__*/ E.match(function (e) { return left(e); }, right); +/** + * @category conversions + * @since 2.11.0 + */ +export var fromReader = rightReader; +/** + * @category conversions + * @since 2.7.0 + */ +export var fromIO = rightIO; +/** + * @category conversions + * @since 2.7.0 + */ +export var fromTask = rightTask; +/** + * @category conversions + * @since 2.10.0 + */ +export var fromState = +/*#__PURE__*/ ST.fromState(RTE.Pointed); +/** + * @category conversions + * @since 2.0.0 + */ +export var fromTaskEither = function (ma) { + return fromReaderTaskEither(RTE.fromTaskEither(ma)); +}; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromIOEither = function (ma) { + return fromReaderTaskEither(RTE.fromIOEither(ma)); +}; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromReaderEither = function (ma) { + return fromReaderTaskEither(RTE.fromReaderEither(ma)); +}; +/** + * @category constructors + * @since 2.0.0 + */ +export var fromReaderTaskEither = +/*#__PURE__*/ ST.fromF(RTE.Functor); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.11.0 + */ +export var local = function (f) { + return function (ma) { + return flow(ma, R.local(f)); + }; +}; +/** + * Less strict version of [`asksStateReaderTaskEither`](#asksstatereadertaskeither). + * + * @category constructors + * @since 2.11.0 + */ +export var asksStateReaderTaskEitherW = function (f) { + return function (s) { + return function (r) { + return f(r)(s)(r); + }; + }; +}; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export var asksStateReaderTaskEither = asksStateReaderTaskEitherW; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromIOEitherK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return fromIOEither(f.apply(void 0, a)); + }; +}; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromTaskEitherK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return fromTaskEither(f.apply(void 0, a)); + }; +}; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromReaderTaskEitherK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return fromReaderTaskEither(f.apply(void 0, a)); + }; +}; +/** + * Alias of `flatMapReaderTaskEither`. + * + * Less strict version of [`chainReaderTaskEitherK`](#chainreadertaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export var chainReaderTaskEitherKW = function (f) { + return function (ma) { + return flatMap(ma, fromReaderTaskEitherK(f)); + }; +}; +/** + * Alias of `flatMapReaderTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainReaderTaskEitherK = chainReaderTaskEitherKW; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return function (s) { + return pipe(fa(s), RTE.alt(function () { return that()(s); })); +}; }; +var _bimap = function (fea, f, g) { return function (s) { + return pipe(fea(s), RTE.bimap(f, function (_a) { + var a = _a[0], s = _a[1]; + return [g(a), s]; + })); +}; }; +var _mapLeft = function (fea, f) { return function (s) { return pipe(fea(s), RTE.mapLeft(f)); }; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = /*#__PURE__*/ ST.map(RTE.Functor); +/** + * Map a pair of functions over the two last type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +export var bimap = function (f, g) { return function (fa) { + return _bimap(fa, f, g); +}; }; +/** + * Map a function over the third type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +export var mapLeft = function (f) { return function (fa) { + return _mapLeft(fa, f); +}; }; +/** + * @since 2.0.0 + */ +export var ap = /*#__PURE__*/ ST.ap(RTE.Chain); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export var apW = ap; +/** + * @category constructors + * @since 2.7.0 + */ +export var of = right; +/** @internal */ +var _FromIO = { + fromIO: fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: fromTask +}; +/** @internal */ +var _FromReader = { + fromReader: fromReader +}; +/** @internal */ +var _FromEither = { + fromEither: fromEither +}; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, ST.flatMap(RTE.Monad)); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTaskEither = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, function (a) { return fromTaskEitherK(f)(a); }); }); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = /*#__PURE__*/ _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTask = /*#__PURE__*/ _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReader = /*#__PURE__*/ _.flatMapReader(_FromReader, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIOEither = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, function (a) { return fromIOEitherK(f)(a); }); }); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapEither = /*#__PURE__*/ dual(2, _.flatMapEither(_FromEither, _FlatMap)); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapReaderTaskEither = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, function (a) { return fromReaderTaskEitherK(f)(a); }); }); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapState = /*#__PURE__*/ dual(2, function (self, f) { return flatMap(self, fromStateK(f)); }); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = /*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = function (that) { + return function (fa) { + return function (r) { + return pipe(fa(r), RTE.altW(function () { return that()(r); })); + }; + }; +}; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.6.2 + */ +export var alt = altW; +/** + * @since 2.7.0 + */ +export var throwError = left; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'StateReaderTaskEither'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromState = { + URI: URI, + fromState: fromState +}; +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +export var get = /*#__PURE__*/ get_(FromState); +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +export var put = /*#__PURE__*/ put_(FromState); +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +export var modify = +/*#__PURE__*/ modify_(FromState); +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +export var gets = +/*#__PURE__*/ gets_(FromState); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromStateK = /*#__PURE__*/ fromStateK_(FromState); +/** + * Alias of `flatMapState`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainStateK = /*#__PURE__*/ chainStateK_(FromState, Chain); +/** + * @category instances + * @since 2.10.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadTask = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + throwError: throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromReader = { + URI: URI, + fromReader: fromReader +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapTask = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export var tapReader = /*#__PURE__*/ dual(2, tapReader_(FromReader, Chain)); +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * Reads the current context. + * + * @category constructors + * @since 2.11.0 + */ +export var ask = /*#__PURE__*/ ask_(FromReader); +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.11.0 + */ +export var asks = +/*#__PURE__*/ asks_(FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromReaderK = /*#__PURE__*/ fromReaderK_(FromReader); +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderK = flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainReaderKW = flatMapReader; +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderK = tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainFirstReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export var chainFirstReaderKW = tapReader; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromOption = /*#__PURE__*/ fromOption_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromOptionK = /*#__PURE__*/ fromOptionK_(FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain); +/** + * Use `flatMapOption`. + * + * Less strict version of [`chainOptionK`](#chainoptionk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.13.2 + */ +export var chainOptionKW = chainOptionK; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainEitherK = flatMapEither; +/** + * Alias of `flatMapEither`. + * + * Less strict version of [`chainEitherK`](#chaineitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export var chainEitherKW = flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherKW = tapEither; +/** + * @category lifting + * @since 2.4.4 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category filtering + * @since 2.4.4 + */ +export var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export var filterOrElseW = filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export var chainTaskEitherKW = flatMapTaskEither; +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainTaskEitherK = flatMapTaskEither; +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export var chainIOEitherKW = flatMapIOEither; +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainIOEitherK = flatMapIOEither; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromTaskK = /*#__PURE__*/ fromTaskK_(FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainTaskK = flatMapTask; +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export var chainFirstTaskK = tapTask; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Run a computation in the `StateReaderTaskEither` monad, discarding the final state + * + * @since 2.8.0 + */ +export var evaluate = +/*#__PURE__*/ ST.evaluate(RTE.Functor); +/** + * Run a computation in the `StateReaderTaskEither` monad discarding the result + * + * @since 2.8.0 + */ +export var execute = +/*#__PURE__*/ ST.execute(RTE.Functor); +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @since 2.13.0 + */ +let_ as let }; +/** + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export var bindW = bind; +// ------------------------------------------------------------------------------------- +// pipeable sequence S +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function (s) { + return function (r) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (ebs) { + return _.isLeft(ebs) + ? acc + : f(i + 1, a)(ebs.right[1])(r)().then(function (eb) { + if (_.isLeft(eb)) { + return eb; + } + var _a = eb.right, b = _a[0], s = _a[1]; + ebs.right[0].push(b); + ebs.right[1] = s; + return ebs; + }); + }); + }, f(0, _.head(as))(s)(r)().then(E.map(function (_a) { + var b = _a[0], s = _a[1]; + return [[b], s]; + }))); + }; + }; + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : of(_.emptyReadonlyArray)); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { + return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = /*#__PURE__*/ traverseArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export var chainFirstW = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEither` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var stateReaderTaskEither = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + bimap: _bimap, + mapLeft: _mapLeft, + alt: _alt, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEitherSeq` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var stateReaderTaskEitherSeq = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + bimap: _bimap, + mapLeft: _mapLeft, + alt: _alt, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError +}; +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +export var evalState = function (fsa, s) { + return pipe(fsa(s), RTE.map(function (_a) { + var a = _a[0]; + return a; + })); +}; +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +export var execState = function (fsa, s) { + return pipe(fsa(s), RTE.map(function (_a) { + var _ = _a[0], s = _a[1]; + return s; + })); +}; +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +export function run(ma, s, r) { + return ma(s)(r)(); +} diff --git a/node_modules/fp-ts/es6/StateT.d.ts b/node_modules/fp-ts/es6/StateT.d.ts new file mode 100644 index 0000000..4c2e5ee --- /dev/null +++ b/node_modules/fp-ts/es6/StateT.d.ts @@ -0,0 +1,313 @@ +/** + * The state monad transformer. It can be used to add state to other monads. + * + * The `of` function leaves the state unchanged, while `chain` uses the final state of the first computation + * as the initial state of the second. + * + * @since 2.0.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' +import { State } from './State' +/** + * @category model + * @since 2.0.0 + */ +export interface StateT<M, S, A> { + (s: S): HKT<M, [A, S]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface StateT1<M extends URIS, S, A> { + (s: S): Kind<M, [A, S]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface StateT2<M extends URIS2, S, E, A> { + (s: S): Kind2<M, E, [A, S]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface StateT3<M extends URIS3, S, R, E, A> { + (s: S): Kind3<M, R, E, [A, S]> +} +/** + * @since 2.10.0 + */ +export declare function of<F extends URIS3>(F: Pointed3<F>): <A, S, R, E>(a: A) => StateT3<F, S, R, E, A> +export declare function of<F extends URIS3, E>(F: Pointed3C<F, E>): <A, S, R>(a: A) => StateT3<F, S, R, E, A> +export declare function of<F extends URIS2>(F: Pointed2<F>): <A, S, E>(a: A) => StateT2<F, S, E, A> +export declare function of<F extends URIS2, E>(F: Pointed2C<F, E>): <A, S>(a: A) => StateT2<F, S, E, A> +export declare function of<F extends URIS>(F: Pointed1<F>): <A, S>(a: A) => StateT1<F, S, A> +export declare function of<F>(F: Pointed<F>): <A, S>(a: A) => StateT<F, S, A> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <S, R, E>(fa: StateT3<F, S, R, E, A>) => StateT3<F, S, R, E, B> +export declare function map<F extends URIS3, E>( + F: Functor3C<F, E> +): <A, B>(f: (a: A) => B) => <S, R>(fa: StateT3<F, S, R, E, A>) => StateT3<F, S, R, E, B> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <S, E>(fa: StateT2<F, S, E, A>) => StateT2<F, S, E, B> +export declare function map<F extends URIS2, E>( + F: Functor2C<F, E> +): <A, B>(f: (a: A) => B) => <S>(fa: StateT2<F, S, E, A>) => StateT2<F, S, E, B> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <S>(fa: StateT1<F, S, A>) => StateT1<F, S, B> +export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => <S>(fa: StateT<F, S, A>) => StateT<F, S, B> +/** + * @since 2.10.0 + */ +export declare function ap<M extends URIS3>( + M: Chain3<M> +): <S, R, E, A>(fa: StateT3<M, S, R, E, A>) => <B>(fab: StateT3<M, S, R, E, (a: A) => B>) => StateT3<M, S, R, E, B> +export declare function ap<M extends URIS3, E>( + M: Chain3C<M, E> +): <S, R, A>(fa: StateT3<M, S, R, E, A>) => <B>(fab: StateT3<M, S, R, E, (a: A) => B>) => StateT3<M, S, R, E, B> +export declare function ap<M extends URIS2>( + M: Chain2<M> +): <S, E, A>(fa: StateT2<M, S, E, A>) => <B>(fab: StateT2<M, S, E, (a: A) => B>) => StateT2<M, S, E, B> +export declare function ap<M extends URIS2, E>( + M: Chain2C<M, E> +): <S, A>(fa: StateT2<M, S, E, A>) => <B>(fab: StateT2<M, S, E, (a: A) => B>) => StateT2<M, S, E, B> +export declare function ap<M extends URIS>( + M: Chain1<M> +): <S, A>(fa: StateT1<M, S, A>) => <B>(fab: StateT1<M, S, (a: A) => B>) => StateT1<M, S, B> +export declare function ap<M>( + M: Chain<M> +): <S, A>(fa: StateT<M, S, A>) => <B>(fab: StateT<M, S, (a: A) => B>) => StateT<M, S, B> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS3>( + M: Chain3<M> +): <A, S, R, E, B>(f: (a: A) => StateT3<M, S, R, E, B>) => (ma: StateT3<M, S, R, E, A>) => StateT3<M, S, R, E, B> +export declare function chain<M extends URIS3, E>( + M: Chain3C<M, E> +): <A, S, R, B>(f: (a: A) => StateT3<M, S, R, E, B>) => (ma: StateT3<M, S, R, E, A>) => StateT3<M, S, R, E, B> +export declare function chain<M extends URIS2>( + M: Chain2<M> +): <A, S, E, B>(f: (a: A) => StateT2<M, S, E, B>) => (ma: StateT2<M, S, E, A>) => StateT2<M, S, E, B> +export declare function chain<M extends URIS2, E>( + M: Chain2C<M, E> +): <A, S, B>(f: (a: A) => StateT2<M, S, E, B>) => (ma: StateT2<M, S, E, A>) => StateT2<M, S, E, B> +export declare function chain<M extends URIS>( + M: Chain1<M> +): <A, S, B>(f: (a: A) => StateT1<M, S, B>) => (ma: StateT1<M, S, A>) => StateT1<M, S, B> +export declare function chain<M>( + M: Chain<M> +): <A, S, B>(f: (a: A) => StateT<M, S, B>) => (ma: StateT<M, S, A>) => StateT<M, S, B> +/** + * @since 2.10.0 + */ +export declare function fromState<F extends URIS3>( + F: Pointed3<F> +): <S, A, R, E>(sa: State<S, A>) => StateT3<F, S, R, E, A> +export declare function fromState<F extends URIS3, E>( + F: Pointed3C<F, E> +): <S, A, R>(sa: State<S, A>) => StateT3<F, S, R, E, A> +export declare function fromState<F extends URIS2>(F: Pointed2<F>): <S, A, E>(sa: State<S, A>) => StateT2<F, S, E, A> +export declare function fromState<F extends URIS2, E>( + F: Pointed2C<F, E> +): <S, A>(sa: State<S, A>) => StateT2<F, S, E, A> +export declare function fromState<F extends URIS>(F: Pointed1<F>): <S, A>(sa: State<S, A>) => StateT1<F, S, A> +export declare function fromState<F>(F: Pointed<F>): <S, A>(sa: State<S, A>) => StateT<F, S, A> +/** + * @since 2.10.0 + */ +export declare function fromF<F extends URIS3>( + F: Functor3<F> +): <R, E, A, S>(ma: Kind3<F, R, E, A>) => StateT3<F, S, R, E, A> +export declare function fromF<F extends URIS3, E>( + F: Functor3C<F, E> +): <R, A, S>(ma: Kind3<F, R, E, A>) => StateT3<F, S, R, E, A> +export declare function fromF<F extends URIS2>(F: Functor2<F>): <E, A, S>(ma: Kind2<F, E, A>) => StateT2<F, S, E, A> +export declare function fromF<F extends URIS2, E>(F: Functor2C<F, E>): <A, S>(ma: Kind2<F, E, A>) => StateT2<F, S, E, A> +export declare function fromF<F extends URIS>(F: Functor1<F>): <A, S>(ma: Kind<F, A>) => StateT1<F, S, A> +export declare function fromF<F>(F: Functor<F>): <A, S>(ma: HKT<F, A>) => StateT<F, S, A> +/** + * @since 2.10.0 + */ +export declare function evaluate<F extends URIS3>( + F: Functor3<F> +): <S>(s: S) => <R, E, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, A> +export declare function evaluate<F extends URIS3, E>( + F: Functor3C<F, E> +): <S>(s: S) => <R, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, A> +export declare function evaluate<F extends URIS2>( + F: Functor2<F> +): <S>(s: S) => <E, A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, A> +export declare function evaluate<F extends URIS2, E>( + F: Functor2C<F, E> +): <S>(s: S) => <A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, A> +export declare function evaluate<F extends URIS>(F: Functor1<F>): <S>(s: S) => <A>(ma: StateT1<F, S, A>) => Kind<F, A> +export declare function evaluate<F>(F: Functor<F>): <S>(s: S) => <A>(ma: StateT<F, S, A>) => HKT<F, A> +/** + * @since 2.10.0 + */ +export declare function execute<F extends URIS3>( + F: Functor3<F> +): <S>(s: S) => <R, E, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, S> +export declare function execute<F extends URIS3, E>( + F: Functor3C<F, E> +): <S>(s: S) => <R, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, S> +export declare function execute<F extends URIS2>( + F: Functor2<F> +): <S>(s: S) => <E, A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, S> +export declare function execute<F extends URIS2, E>( + F: Functor2C<F, E> +): <S>(s: S) => <A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, S> +export declare function execute<F extends URIS>(F: Functor1<F>): <S>(s: S) => <A>(ma: StateT1<F, S, A>) => Kind<F, S> +export declare function execute<F>(F: Functor<F>): <S>(s: S) => <A>(ma: StateT<F, S, A>) => HKT<F, S> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM<M> { + readonly map: <S, A, B>(fa: StateT<M, S, A>, f: (a: A) => B) => StateT<M, S, B> + readonly of: <S, A>(a: A) => StateT<M, S, A> + readonly ap: <S, A, B>(fab: StateT<M, S, (a: A) => B>, fa: StateT<M, S, A>) => StateT<M, S, B> + readonly chain: <S, A, B>(fa: StateT<M, S, A>, f: (a: A) => StateT<M, S, B>) => StateT<M, S, B> + readonly get: <S>() => StateT<M, S, S> + readonly put: <S>(s: S) => StateT<M, S, void> + readonly modify: <S>(f: (s: S) => S) => StateT<M, S, void> + readonly gets: <S, A>(f: (s: S) => A) => StateT<M, S, A> + readonly fromState: <S, A>(fa: State<S, A>) => StateT<M, S, A> + readonly fromM: <S, A>(ma: HKT<M, A>) => StateT<M, S, A> + readonly evalState: <S, A>(ma: StateT<M, S, A>, s: S) => HKT<M, A> + readonly execState: <S, A>(ma: StateT<M, S, A>, s: S) => HKT<M, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM1<M extends URIS> { + readonly map: <S, A, B>(fa: StateT1<M, S, A>, f: (a: A) => B) => StateT1<M, S, B> + readonly of: <S, A>(a: A) => StateT1<M, S, A> + readonly ap: <S, A, B>(fab: StateT1<M, S, (a: A) => B>, fa: StateT1<M, S, A>) => StateT1<M, S, B> + readonly chain: <S, A, B>(fa: StateT1<M, S, A>, f: (a: A) => StateT1<M, S, B>) => StateT1<M, S, B> + readonly get: <S>() => StateT1<M, S, S> + readonly put: <S>(s: S) => StateT1<M, S, void> + readonly modify: <S>(f: (s: S) => S) => StateT1<M, S, void> + readonly gets: <S, A>(f: (s: S) => A) => StateT1<M, S, A> + readonly fromState: <S, A>(fa: State<S, A>) => StateT1<M, S, A> + readonly fromM: <S, A>(ma: Kind<M, A>) => StateT1<M, S, A> + readonly evalState: <S, A>(ma: StateT1<M, S, A>, s: S) => Kind<M, A> + readonly execState: <S, A>(ma: StateT1<M, S, A>, s: S) => Kind<M, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM2<M extends URIS2> { + readonly map: <S, E, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => B) => StateT2<M, S, E, B> + readonly of: <S, E, A>(a: A) => StateT2<M, S, E, A> + readonly ap: <S, E, A, B>(fab: StateT2<M, S, E, (a: A) => B>, fa: StateT2<M, S, E, A>) => StateT2<M, S, E, B> + readonly chain: <S, E, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => StateT2<M, S, E, B>) => StateT2<M, S, E, B> + readonly get: <E, S>() => StateT2<M, S, E, S> + readonly put: <E, S>(s: S) => StateT2<M, S, E, void> + readonly modify: <E, S>(f: (s: S) => S) => StateT2<M, S, E, void> + readonly gets: <S, E, A>(f: (s: S) => A) => StateT2<M, S, E, A> + readonly fromState: <S, E, A>(fa: State<S, A>) => StateT2<M, S, E, A> + readonly fromM: <S, E, A>(ma: Kind2<M, E, A>) => StateT2<M, S, E, A> + readonly evalState: <S, E, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, A> + readonly execState: <S, E, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, S> +} +/** + * @category zone of death + * @since 2.5.4 + * @deprecated + */ +export interface StateM2C<M extends URIS2, E> { + readonly map: <S, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => B) => StateT2<M, S, E, B> + readonly of: <S, A>(a: A) => StateT2<M, S, E, A> + readonly ap: <S, A, B>(fab: StateT2<M, S, E, (a: A) => B>, fa: StateT2<M, S, E, A>) => StateT2<M, S, E, B> + readonly chain: <S, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => StateT2<M, S, E, B>) => StateT2<M, S, E, B> + readonly get: <S>() => StateT2<M, S, E, S> + readonly put: <S>(s: S) => StateT2<M, S, E, void> + readonly modify: <S>(f: (s: S) => S) => StateT2<M, S, E, void> + readonly gets: <S, A>(f: (s: S) => A) => StateT2<M, S, E, A> + readonly fromState: <S, A>(fa: State<S, A>) => StateT2<M, S, E, A> + readonly fromM: <S, A>(ma: Kind2<M, E, A>) => StateT2<M, S, E, A> + readonly evalState: <S, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, A> + readonly execState: <S, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM3<M extends URIS3> { + readonly map: <S, R, E, A, B>(fa: StateT3<M, S, R, E, A>, f: (a: A) => B) => StateT3<M, S, R, E, B> + readonly of: <S, R, E, A>(a: A) => StateT3<M, S, R, E, A> + readonly ap: <S, R, E, A, B>( + fab: StateT3<M, S, R, E, (a: A) => B>, + fa: StateT3<M, S, R, E, A> + ) => StateT3<M, S, R, E, B> + readonly chain: <S, R, E, A, B>( + fa: StateT3<M, S, R, E, A>, + f: (a: A) => StateT3<M, S, R, E, B> + ) => StateT3<M, S, R, E, B> + readonly get: <R, E, S>() => StateT3<M, S, R, E, S> + readonly put: <R, E, S>(s: S) => StateT3<M, S, R, E, void> + readonly modify: <R, E, S>(f: (s: S) => S) => StateT3<M, S, R, E, void> + readonly gets: <S, R, E, A>(f: (s: S) => A) => StateT3<M, S, R, E, A> + readonly fromState: <S, R, E, A>(fa: State<S, A>) => StateT3<M, S, R, E, A> + readonly fromM: <S, R, E, A>(ma: Kind3<M, R, E, A>) => StateT3<M, S, R, E, A> + readonly evalState: <S, R, E, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, A> + readonly execState: <S, R, E, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, S> +} +/** + * @category zone of death + * @since 2.5.4 + * @deprecated + */ +export interface StateM3C<M extends URIS3, E> { + readonly map: <S, R, A, B>(fa: StateT3<M, S, R, E, A>, f: (a: A) => B) => StateT3<M, S, R, E, B> + readonly of: <S, R, A>(a: A) => StateT3<M, S, R, E, A> + readonly ap: <S, R, A, B>(fab: StateT3<M, S, R, E, (a: A) => B>, fa: StateT3<M, S, R, E, A>) => StateT3<M, S, R, E, B> + readonly chain: <S, R, A, B>( + fa: StateT3<M, S, R, E, A>, + f: (a: A) => StateT3<M, S, R, E, B> + ) => StateT3<M, S, R, E, B> + readonly get: <R, S>() => StateT3<M, S, R, E, S> + readonly put: <R, S>(s: S) => StateT3<M, S, R, E, void> + readonly modify: <R, S>(f: (s: S) => S) => StateT3<M, S, R, E, void> + readonly gets: <S, R, A>(f: (s: S) => A) => StateT3<M, S, R, E, A> + readonly fromState: <S, R, A>(fa: State<S, A>) => StateT3<M, S, R, E, A> + readonly fromM: <S, R, A>(ma: Kind3<M, R, E, A>) => StateT3<M, S, R, E, A> + readonly evalState: <S, R, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, A> + readonly execState: <S, R, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getStateM<M extends URIS3>(M: Monad3<M>): StateM3<M> +/** @deprecated */ +export declare function getStateM<M extends URIS3, E>(M: Monad3C<M, E>): StateM3C<M, E> +/** @deprecated */ +export declare function getStateM<M extends URIS2>(M: Monad2<M>): StateM2<M> +/** @deprecated */ +export declare function getStateM<M extends URIS2, E>(M: Monad2C<M, E>): StateM2C<M, E> +/** @deprecated */ +export declare function getStateM<M extends URIS>(M: Monad1<M>): StateM1<M> +/** @deprecated */ +export declare function getStateM<M>(M: Monad<M>): StateM<M> diff --git a/node_modules/fp-ts/es6/StateT.js b/node_modules/fp-ts/es6/StateT.js new file mode 100644 index 0000000..e262734 --- /dev/null +++ b/node_modules/fp-ts/es6/StateT.js @@ -0,0 +1,69 @@ +import { pipe } from './function'; +import { snd } from './ReadonlyTuple'; +export function of(F) { + return function (a) { return function (s) { return F.of([a, s]); }; }; +} +export function map(F) { + return function (f) { return function (fa) { return function (s) { return F.map(fa(s), function (_a) { + var a = _a[0], s1 = _a[1]; + return [f(a), s1]; + }); }; }; }; +} +export function ap(M) { + return function (fa) { return function (fab) { return function (s) { return M.chain(fab(s), function (_a) { + var f = _a[0], s = _a[1]; + return M.map(fa(s), function (_a) { + var a = _a[0], s = _a[1]; + return [f(a), s]; + }); + }); }; }; }; +} +export function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +export function flatMap(M) { + return function (ma, f) { return function (s) { return M.chain(ma(s), function (_a) { + var a = _a[0], s1 = _a[1]; + return f(a)(s1); + }); }; }; +} +export function fromState(F) { + return function (sa) { return function (s) { return F.of(sa(s)); }; }; +} +export function fromF(F) { + return function (ma) { return function (s) { return F.map(ma, function (a) { return [a, s]; }); }; }; +} +export function evaluate(F) { + return function (s) { return function (ma) { return F.map(ma(s), function (_a) { + var a = _a[0]; + return a; + }); }; }; +} +export function execute(F) { + return function (s) { return function (ma) { return F.map(ma(s), snd); }; }; +} +/** @deprecated */ +/* istanbul ignore next */ +export function getStateM(M) { + var _ap = ap(M); + var _map = map(M); + var _chain = chain(M); + var _evaluate = evaluate(M); + var _execute = execute(M); + return { + map: function (fa, f) { return pipe(fa, _map(f)); }, + ap: function (fab, fa) { return pipe(fab, _ap(fa)); }, + of: of(M), + chain: function (ma, f) { return pipe(ma, _chain(f)); }, + get: function () { return function (s) { return M.of([s, s]); }; }, + put: function (s) { return function () { return M.of([undefined, s]); }; }, + modify: function (f) { return function (s) { return M.of([undefined, f(s)]); }; }, + gets: function (f) { return function (s) { return M.of([f(s), s]); }; }, + fromState: fromState(M), + fromM: fromF(M), + evalState: function (fa, s) { return pipe(fa, _evaluate(s)); }, + execState: function (fa, s) { return pipe(fa, _execute(s)); } + }; +} diff --git a/node_modules/fp-ts/es6/Store.d.ts b/node_modules/fp-ts/es6/Store.d.ts new file mode 100644 index 0000000..8b94a05 --- /dev/null +++ b/node_modules/fp-ts/es6/Store.d.ts @@ -0,0 +1,117 @@ +/** + * @since 2.0.0 + */ +import { Comonad2 } from './Comonad' +import { Endomorphism } from './Endomorphism' +import { Functor as FunctorHKT, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Store<S, A> { + readonly peek: (s: S) => A + readonly pos: S +} +/** + * Reposition the focus at the specified position + * + * @since 2.0.0 + */ +export declare function seek<S>(s: S): <A>(wa: Store<S, A>) => Store<S, A> +/** + * Reposition the focus at the specified position, which depends on the current position + * + * @since 2.0.0 + */ +export declare function seeks<S>(f: Endomorphism<S>): <A>(wa: Store<S, A>) => Store<S, A> +/** + * Extract a value from a position which depends on the current position + * + * @since 2.0.0 + */ +export declare function peeks<S>(f: Endomorphism<S>): <A>(wa: Store<S, A>) => A +/** + * Extract a collection of values from positions which depend on the current position + * + * @since 2.0.0 + */ +export declare function experiment<F extends URIS3>( + F: Functor3<F> +): <R, E, S>(f: (s: S) => Kind3<F, R, E, S>) => <A>(wa: Store<S, A>) => Kind3<F, R, E, A> +export declare function experiment<F extends URIS3, E>( + F: Functor3C<F, E> +): <R, S>(f: (s: S) => Kind3<F, R, E, S>) => <A>(wa: Store<S, A>) => Kind3<F, R, E, A> +export declare function experiment<F extends URIS2>( + F: Functor2<F> +): <E, S>(f: (s: S) => Kind2<F, E, S>) => <A>(wa: Store<S, A>) => Kind2<F, E, A> +export declare function experiment<F extends URIS2, E>( + F: Functor2C<F, E> +): <S>(f: (s: S) => Kind2<F, E, S>) => <A>(wa: Store<S, A>) => Kind2<F, E, A> +export declare function experiment<F extends URIS>( + F: Functor1<F> +): <S>(f: (s: S) => Kind<F, S>) => <A>(wa: Store<S, A>) => Kind<F, A> +export declare function experiment<F>( + F: FunctorHKT<F> +): <S>(f: (s: S) => HKT<F, S>) => <A>(wa: Store<S, A>) => HKT<F, A> +/** + * @since 2.0.0 + */ +export declare const extend: <E, A, B>(f: (wa: Store<E, A>) => B) => (wa: Store<E, A>) => Store<E, B> +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <E, A>(wa: Store<E, A>) => A +/** + * @since 2.0.0 + */ +export declare const duplicate: <E, A>(wa: Store<E, A>) => Store<E, Store<E, A>> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Store<E, A>) => Store<E, B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Store' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Store<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <E, B>(fab: Kind2<'Store', E, (a: A) => B>) => Kind2<'Store', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Comonad` instance, pass `S.Comonad` instead of `S.store` + * (where `S` is from `import S from 'fp-ts/Store'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const store: Comonad2<URI> diff --git a/node_modules/fp-ts/es6/Store.js b/node_modules/fp-ts/es6/Store.js new file mode 100644 index 0000000..7cfc143 --- /dev/null +++ b/node_modules/fp-ts/es6/Store.js @@ -0,0 +1,101 @@ +import { identity, pipe } from './function'; +import { flap as flap_ } from './Functor'; +/** + * Reposition the focus at the specified position + * + * @since 2.0.0 + */ +export function seek(s) { + return function (wa) { return ({ peek: wa.peek, pos: s }); }; +} +/** + * Reposition the focus at the specified position, which depends on the current position + * + * @since 2.0.0 + */ +export function seeks(f) { + return function (wa) { return ({ peek: wa.peek, pos: f(wa.pos) }); }; +} +/** + * Extract a value from a position which depends on the current position + * + * @since 2.0.0 + */ +export function peeks(f) { + return function (wa) { return wa.peek(f(wa.pos)); }; +} +export function experiment(F) { + return function (f) { return function (wa) { return F.map(f(wa.pos), function (s) { return wa.peek(s); }); }; }; +} +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/** + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { return ({ + peek: function (s) { return f({ peek: wa.peek, pos: s }); }, + pos: wa.pos +}); }; }; +/** + * @category Extract + * @since 2.6.2 + */ +export var extract = function (wa) { return wa.peek(wa.pos); }; +/** + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return ({ + peek: function (s) { return f(fa.peek(s)); }, + pos: fa.pos +}); }; }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Store'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Comonad` instance, pass `S.Comonad` instead of `S.store` + * (where `S` is from `import S from 'fp-ts/Store'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var store = Comonad; diff --git a/node_modules/fp-ts/es6/Strong.d.ts b/node_modules/fp-ts/es6/Strong.d.ts new file mode 100644 index 0000000..005132a --- /dev/null +++ b/node_modules/fp-ts/es6/Strong.d.ts @@ -0,0 +1,172 @@ +/** + * The `Strong` class extends `Profunctor` with combinators for working with product types. + * + * `first` and `second` lift values in a `Profunctor` to act on the first and second components of a tuple, + * respectively. + * + * Another way to think about Strong is to piggyback on the intuition of + * inputs and outputs. Rewriting the type signature in this light then yields: + * + * ```purescript + * first :: forall input output a. p input output -> p (Tuple input a) (Tuple output a) + * second :: forall input output a. p input output -> p (Tuple a input) (Tuple a output) + * ``` + * + * If we specialize the profunctor p to the function arrow, we get the following type + * signatures, which may look a bit more familiar: + * + * ```purescript + * first :: forall input output a. (input -> output) -> (Tuple input a) -> (Tuple output a) + * second :: forall input output a. (input -> output) -> (Tuple a input) -> (Tuple a output) + * ``` + * + * So, when the `profunctor` is `Function` application, `first` essentially applies your function + * to the first element of a tuple, and `second` applies it to the second element (same as `map` would do). + * + * Adapted from https://github.com/purescript/purescript-profunctor/blob/master/src/Data/Profunctor/Strong.purs + * + * @since 2.0.0 + */ +import { Category, Category2, Category3, Category4 } from './Category' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { Profunctor, Profunctor2, Profunctor3, Profunctor4 } from './Profunctor' +/** + * @category model + * @since 2.0.0 + */ +export interface Strong<F> extends Profunctor<F> { + readonly first: <A, B, C>(pab: HKT2<F, A, B>) => HKT2<F, [A, C], [B, C]> + readonly second: <A, B, C>(pab: HKT2<F, B, C>) => HKT2<F, [A, B], [A, C]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Strong2<F extends URIS2> extends Profunctor2<F> { + readonly first: <A, B, C>(pab: Kind2<F, A, B>) => Kind2<F, [A, C], [B, C]> + readonly second: <A, B, C>(pab: Kind2<F, B, C>) => Kind2<F, [A, B], [A, C]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Strong3<F extends URIS3> extends Profunctor3<F> { + readonly first: <R, A, B, C>(pab: Kind3<F, R, A, B>) => Kind3<F, R, [A, C], [B, C]> + readonly second: <R, A, B, C>(pab: Kind3<F, R, B, C>) => Kind3<F, R, [A, B], [A, C]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Strong4<F extends URIS4> extends Profunctor4<F> { + readonly first: <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, [A, C], [B, C]> + readonly second: <S, R, A, B, C>(pab: Kind4<F, S, R, B, C>) => Kind4<F, S, R, [A, B], [A, C]> +} +/** + * Compose a value acting on a tuple from two values, each acting on one of the components of the tuple. + * + * Specializing `split` to function application would look like this: + * + * ```purescript + * split :: forall a b c d. (a -> b) -> (c -> d) -> (Tuple a c) -> (Tuple b d) + * ``` + * + * We take two functions, `f` and `g`, and we transform them into a single function which takes a tuple and maps `f` + * over the first element and `g` over the second. Just like `bi-map` would do for the `bi-functor` instance of tuple. + * + * @since 2.10.0 + */ +export declare function split<F extends URIS4>( + S: Strong4<F>, + C: Category4<F> +): <S, R, A, B, C, D>(pab: Kind4<F, S, R, A, B>, pcd: Kind4<F, S, R, C, D>) => Kind4<F, S, R, [A, C], [B, D]> +export declare function split<F extends URIS3>( + S: Strong3<F>, + C: Category3<F> +): <R, A, B, C, D>(pab: Kind3<F, R, A, B>, pcd: Kind3<F, R, C, D>) => Kind3<F, R, [A, C], [B, D]> +export declare function split<F extends URIS2>( + S: Strong2<F>, + C: Category2<F> +): <A, B, C, D>(pab: Kind2<F, A, B>, pcd: Kind2<F, C, D>) => Kind2<F, [A, C], [B, D]> +export declare function split<F>( + S: Strong<F>, + C: Category<F> +): <A, B, C, D>(pab: HKT2<F, A, B>, pcd: HKT2<F, C, D>) => HKT2<F, [A, C], [B, D]> +/** + * Compose a value which introduces a tuple from two values, each introducing one side of the tuple. + * + * This combinator is useful when assembling values from smaller components, because it provides a way to support two + * different types of output. + * + * Specializing `fanOut` to function application would look like this: + * + * ```purescript + * fanOut :: forall a b c. (a -> b) -> (a -> c) -> (a -> (Tuple b c)) + * ``` + * + * We take two functions, `f` and `g`, with the same parameter type and we transform them into a single function which + * takes one parameter and returns a tuple of the results of running `f` and `g` on the parameter, respectively. This + * allows us to run two parallel computations on the same input and return both results in a tuple. + * + * @since 2.10.0 + */ +export declare function fanOut<F extends URIS4>( + S: Strong4<F>, + C: Category4<F> +): <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>, pac: Kind4<F, S, R, A, C>) => Kind4<F, S, R, A, [B, C]> +export declare function fanOut<F extends URIS3>( + S: Strong3<F>, + C: Category3<F> +): <R, A, B, C>(pab: Kind3<F, R, A, B>, pac: Kind3<F, R, A, C>) => Kind3<F, R, A, [B, C]> +export declare function fanOut<F extends URIS2>( + S: Strong2<F>, + C: Category2<F> +): <A, B, C>(pab: Kind2<F, A, B>, pac: Kind2<F, A, C>) => Kind2<F, A, [B, C]> +export declare function fanOut<F>( + S: Strong<F>, + C: Category<F> +): <A, B, C>(pab: HKT2<F, A, B>, pac: HKT2<F, A, C>) => HKT2<F, A, [B, C]> +/** + * Use [`split`](#split) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function splitStrong<F extends URIS4>( + F: Category4<F> & Strong4<F> +): <S, R, A, B, C, D>(pab: Kind4<F, S, R, A, B>, pcd: Kind4<F, S, R, C, D>) => Kind4<F, S, R, [A, C], [B, D]> +/** @deprecated */ +export declare function splitStrong<F extends URIS3>( + F: Category3<F> & Strong3<F> +): <R, A, B, C, D>(pab: Kind3<F, R, A, B>, pcd: Kind3<F, R, C, D>) => Kind3<F, R, [A, C], [B, D]> +/** @deprecated */ +export declare function splitStrong<F extends URIS2>( + F: Category2<F> & Strong2<F> +): <A, B, C, D>(pab: Kind2<F, A, B>, pcd: Kind2<F, C, D>) => Kind2<F, [A, C], [B, D]> +/** @deprecated */ +export declare function splitStrong<F>( + F: Category<F> & Strong<F> +): <A, B, C, D>(pab: HKT2<F, A, B>, pcd: HKT2<F, C, D>) => HKT2<F, [A, C], [B, D]> +/** + * Use [`fanOut`](#fanout) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function fanout<F extends URIS4>( + F: Category4<F> & Strong4<F> +): <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>, pac: Kind4<F, S, R, A, C>) => Kind4<F, S, R, A, [B, C]> +/** @deprecated */ +export declare function fanout<F extends URIS3>( + F: Category3<F> & Strong3<F> +): <R, A, B, C>(pab: Kind3<F, R, A, B>, pac: Kind3<F, R, A, C>) => Kind3<F, R, A, [B, C]> +/** @deprecated */ +export declare function fanout<F extends URIS2>( + F: Category2<F> & Strong2<F> +): <A, B, C>(pab: Kind2<F, A, B>, pac: Kind2<F, A, C>) => Kind2<F, A, [B, C]> +/** @deprecated */ +export declare function fanout<F>( + F: Category<F> & Strong<F> +): <A, B, C>(pab: HKT2<F, A, B>, pac: HKT2<F, A, C>) => HKT2<F, A, [B, C]> diff --git a/node_modules/fp-ts/es6/Strong.js b/node_modules/fp-ts/es6/Strong.js new file mode 100644 index 0000000..4ced160 --- /dev/null +++ b/node_modules/fp-ts/es6/Strong.js @@ -0,0 +1,18 @@ +import { identity } from './function'; +export function split(S, C) { + return function (pab, pcd) { + return C.compose(S.second(pcd), S.first(pab)); + }; +} +export function fanOut(S, C) { + var splitSC = split(S, C); + return function (pab, pac) { + return C.compose(splitSC(pab, pac), S.promap(C.id(), identity, function (a) { return [a, a]; })); + }; +} +export function splitStrong(F) { + return split(F, F); +} +export function fanout(F) { + return fanOut(F, F); +} diff --git a/node_modules/fp-ts/es6/Task.d.ts b/node_modules/fp-ts/es6/Task.d.ts new file mode 100644 index 0000000..18fc10a --- /dev/null +++ b/node_modules/fp-ts/es6/Task.d.ts @@ -0,0 +1,500 @@ +/** + * ```ts + * interface Task<A> { + * (): Promise<A> + * } + * ``` + * + * `Task<A>` represents an asynchronous computation that yields a value of type `A` and **never fails**. + * If you want to represent an asynchronous computation that may fail, please see `TaskEither`. + * + * @since 2.0.0 + */ +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { FromIO1 } from './FromIO' +import { FromTask1 } from './FromTask' +import { Functor1 } from './Functor' +import { IO } from './IO' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import { MonadTask1 } from './MonadTask' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Task<A> { + (): Promise<A> +} +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIO: <A>(fa: IO<A>) => Task<A> +/** + * Creates a task that will complete after a time delay + * + * @example + * import { sequenceT } from 'fp-ts/Apply' + * import * as T from 'fp-ts/Task' + * import { takeRight } from 'fp-ts/Array' + * + * async function test() { + * const log: Array<string> = [] + * const append = (message: string): T.Task<void> => + * T.fromIO(() => { + * log.push(message) + * }) + * const fa = append('a') + * const fb = T.delay(20)(append('b')) + * const fc = T.delay(10)(append('c')) + * const fd = append('d') + * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)() + * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b']) + * } + * + * test() + * + * @since 2.0.0 + */ +export declare function delay(millis: number): <A>(ma: Task<A>) => Task<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Task<A>) => Task<B> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Task<A>) => <B>(fab: Task<(a: A) => B>) => Task<B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => Task<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Task<B>): (ma: Task<A>) => Task<B> + <A, B>(ma: Task<A>, f: (a: A) => Task<B>): Task<B> +} +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Task<Task<A>>) => Task<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Task' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Task<A> + } +} +/** + * Monoid returning the first completed task. + * + * Note: uses `Promise.race` internally. + * + * @example + * import * as T from 'fp-ts/Task' + * + * async function test() { + * const S = T.getRaceMonoid<string>() + * const fa = T.delay(20)(T.of('a')) + * const fb = T.delay(10)(T.of('b')) + * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b') + * } + * + * test() + * + * @category instances + * @since 2.0.0 + */ +export declare function getRaceMonoid<A = never>(): Monoid<Task<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: Task<_>) => Task<A> + <_, A>(self: Task<_>, a: A): Task<A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: Task<_>) => Task<void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Task', (a: A) => B>) => import('./HKT').Kind<'Task', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: Task<B> +) => <A>(first: import('./HKT').Kind<'Task', A>) => import('./HKT').Kind<'Task', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: Task<B> +) => <A>(first: import('./HKT').Kind<'Task', A>) => import('./HKT').Kind<'Task', B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const fromTask: <A>(fa: Task<A>) => Task<A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): (self: Task<A>) => Task<B> + <A, B>(self: Task<A>, f: (a: A) => IO<B>): Task<B> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: Task<A>, f: (a: A) => Task<_>): Task<A> + <A, _>(f: (a: A) => Task<_>): (self: Task<A>) => Task<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as T from 'fp-ts/Task' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * T.of('fp-ts'), + * T.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): (self: Task<A>) => Task<A> + <A, _>(self: Task<A>, f: (a: A) => IO<_>): Task<A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => Task<B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => (first: Task<A>) => Task<B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => (first: Task<A>) => Task<A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask1<URI> +/** + * A `Task` that never completes. + * + * @since 2.0.0 + */ +export declare const never: Task<never> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Task<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Task', A>) => import('./HKT').Kind<'Task', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Task', A> +) => import('./HKT').Kind<'Task', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Task', B> +) => ( + ma: import('./HKT').Kind<'Task', A> +) => import('./HKT').Kind<'Task', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Task<B> +) => ( + fa: import('./HKT').Kind<'Task', A> +) => import('./HKT').Kind<'Task', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: Task<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyNonEmptyArray<A>) => Task<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyNonEmptyArray<A>) => Task<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B>(f: (a: A) => Task<B>) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A>(arr: ReadonlyArray<Task<A>>) => Task<ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <A, B>(f: (a: A) => Task<B>) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <A>(arr: ReadonlyArray<Task<A>>) => Task<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Task<B>) => (ma: Task<A>) => Task<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Task<B>) => (first: Task<A>) => Task<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.task` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const task: Monad1<URI> & MonadTask1<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.taskSeq` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const taskSeq: Monad1<URI> & MonadTask1<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <A>(S: Semigroup<A>) => Semigroup<Task<A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMonoid: <A>(M: Monoid<A>) => Monoid<Task<A>> diff --git a/node_modules/fp-ts/es6/Task.js b/node_modules/fp-ts/es6/Task.js new file mode 100644 index 0000000..04dbb2c --- /dev/null +++ b/node_modules/fp-ts/es6/Task.js @@ -0,0 +1,592 @@ +/** + * ```ts + * interface Task<A> { + * (): Promise<A> + * } + * ``` + * + * `Task<A>` represents an asynchronous computation that yields a value of type `A` and **never fails**. + * If you want to represent an asynchronous computation that may fail, please see `TaskEither`. + * + * @since 2.0.0 + */ +import { getApplicativeMonoid } from './Applicative'; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { dual, identity, pipe } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +export var fromIO = function (ma) { return function () { return Promise.resolve().then(ma); }; }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Creates a task that will complete after a time delay + * + * @example + * import { sequenceT } from 'fp-ts/Apply' + * import * as T from 'fp-ts/Task' + * import { takeRight } from 'fp-ts/Array' + * + * async function test() { + * const log: Array<string> = [] + * const append = (message: string): T.Task<void> => + * T.fromIO(() => { + * log.push(message) + * }) + * const fa = append('a') + * const fb = T.delay(20)(append('b')) + * const fc = T.delay(10)(append('c')) + * const fd = append('d') + * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)() + * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b']) + * } + * + * test() + * + * @since 2.0.0 + */ +export function delay(millis) { + return function (ma) { return function () { + return new Promise(function (resolve) { + setTimeout(function () { + Promise.resolve().then(ma).then(resolve); + }, millis); + }); + }; }; +} +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _apPar = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return function () { + return Promise.resolve().then(fa).then(f); +}; }; }; +/** + * @since 2.0.0 + */ +export var ap = function (fa) { return function (fab) { return function () { + return Promise.all([Promise.resolve().then(fab), Promise.resolve().then(fa)]).then(function (_a) { + var f = _a[0], a = _a[1]; + return f(a); + }); +}; }; }; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = function (a) { return function () { return Promise.resolve(a); }; }; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + return function () { + return Promise.resolve() + .then(ma) + .then(function (a) { return f(a)(); }); + }; +}); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Task'; +/** + * Monoid returning the first completed task. + * + * Note: uses `Promise.race` internally. + * + * @example + * import * as T from 'fp-ts/Task' + * + * async function test() { + * const S = T.getRaceMonoid<string>() + * const fa = T.delay(20)(T.of('a')) + * const fb = T.delay(10)(T.of('b')) + * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b') + * } + * + * test() + * + * @category instances + * @since 2.0.0 + */ +export function getRaceMonoid() { + return { + concat: function (x, y) { return function () { return Promise.race([Promise.resolve().then(x), Promise.resolve().then(y)]); }; }, + empty: never + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplyPar = { + URI: URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(ApplyPar); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(ApplyPar); +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativePar = { + URI: URI, + map: _map, + ap: _apPar, + of: of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export var ApplySeq = { + URI: URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativeSeq = { + URI: URI, + map: _map, + ap: _apSeq, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Monad = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var fromTask = identity; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadTask = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: FromIO.fromIO +}; +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as T from 'fp-ts/Task' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * T.of('fp-ts'), + * T.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * @category lifting + * @since 2.4.0 + */ +export var fromIOK = +/*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * A `Task` that never completes. + * + * @since 2.0.0 + */ +export var never = function () { return new Promise(function (_) { return undefined; }); }; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(ApplyPar); +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function () { + return Promise.all(as.map(function (a, i) { return Promise.resolve().then(function () { return f(i, a)(); }); })); + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (bs) { + return Promise.resolve() + .then(f(i + 1, a)) + .then(function (b) { + bs.push(b); + return bs; + }); + }); + }, Promise.resolve() + .then(f(0, _.head(as))) + .then(_.singleton)); + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { + return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArray = function (f) { + return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); +}; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceSeqArray = +/*#__PURE__*/ traverseSeqArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.task` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var task = { + URI: URI, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.taskSeq` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var taskSeq = { + URI: URI, + map: _map, + of: of, + ap: _apSeq, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = /*#__PURE__*/ getApplySemigroup_(ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getMonoid = /*#__PURE__*/ getApplicativeMonoid(ApplicativeSeq); diff --git a/node_modules/fp-ts/es6/TaskEither.d.ts b/node_modules/fp-ts/es6/TaskEither.d.ts new file mode 100644 index 0000000..33e9809 --- /dev/null +++ b/node_modules/fp-ts/es6/TaskEither.d.ts @@ -0,0 +1,1437 @@ +/** + * ```ts + * interface TaskEither<E, A> extends Task<Either<E, A>> {} + * ``` + * + * `TaskEither<E, A>` represents an asynchronous computation that either yields a value of type `A` or fails yielding an + * error of type `E`. If you want to represent an asynchronous computation that never fails, please see `Task`. + * + * @since 2.0.0 + */ +import { Alt2, Alt2C } from './Alt' +import { Applicative2, Applicative2C } from './Applicative' +import { Apply1, Apply2 } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable2C } from './Compactable' +import * as E from './Either' +import { Filterable2C } from './Filterable' +import { FromEither2 } from './FromEither' +import { FromIO2 } from './FromIO' +import { FromTask2 } from './FromTask' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad2, Monad2C } from './Monad' +import { MonadIO2 } from './MonadIO' +import { MonadTask2, MonadTask2C } from './MonadTask' +import { MonadThrow2, MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import { TaskOption } from './TaskOption' +import Either = E.Either +import Task = T.Task +/** + * @category model + * @since 2.0.0 + */ +export interface TaskEither<E, A> extends Task<Either<E, A>> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <E = never, A = never>(e: E) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <E = never, A = never>(a: A) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightTask: <E = never, A = never>(ma: Task<A>) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftTask: <E = never, A = never>(me: Task<E>) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightIO: <E = never, A = never>(ma: IO<A>) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftIO: <E = never, A = never>(me: IO<E>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, E = never>(fa: IO<A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromTask: <A, E = never>(fa: Task<A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A>(fa: Either<E, A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIOEither: <E, A>(fa: IOEither<E, A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromTaskOption: <E>(onNone: LazyArg<E>) => <A>(fa: TaskOption<A>) => TaskEither<E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: TaskEither<E, A>) => Task<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => (ma: TaskEither<E, A>) => Task<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <E, A, B>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B> +) => (ma: TaskEither<E, A>) => Task<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B> +) => (ma: TaskEither<E, A>) => Task<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, B, A, C>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C> +) => (ma: TaskEither<E, A>) => Task<B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C> +) => (ma: TaskEither<E, A>) => Task<B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, A>(onLeft: (e: E) => Task<A>) => (ma: TaskEither<E, A>) => Task<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <E, B>(onLeft: (e: E) => Task<B>) => <A>(ma: TaskEither<E, A>) => Task<A | B> +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { left, right } from 'fp-ts/Either' + * import { tryCatch } from 'fp-ts/TaskEither' + * + * tryCatch(() => Promise.resolve(1), String)().then(result => { + * assert.deepStrictEqual(result, right(1)) + * }) + * tryCatch(() => Promise.reject('error'), String)().then(result => { + * assert.deepStrictEqual(result, left('error')) + * }) + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <E, A>(f: LazyArg<Promise<A>>, onRejected: (reason: unknown) => E) => TaskEither<E, A> +/** + * Converts a function returning a `Promise` to one returning a `TaskEither`. + * + * @category interop + * @since 2.5.0 + */ +export declare const tryCatchK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Promise<B>, + onRejected: (reason: unknown) => E +) => (...a: A) => TaskEither<E, B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <E, A>(fa: TaskEither<E, A>) => Task<E | A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromNullable: <E>(e: E) => <A>(a: A) => TaskEither<E, NonNullable<A>> +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const fromNullableK: <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => TaskEither<E, NonNullable<B>> +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainNullableK: <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: TaskEither<E, A>) => TaskEither<E, NonNullable<B>> +/** + * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise. + * + * See also [alt](#alt). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`)) + * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok')) + * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...')) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, A, E2>( + onLeft: (e: E1) => TaskEither<E2, A> +) => (ma: TaskEither<E1, A>) => TaskEither<E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, E2, B>( + onLeft: (e: E1) => TaskEither<E2, B> +) => <A>(ma: TaskEither<E1, A>) => TaskEither<E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, E2, _>(onLeft: (e: E1) => TaskEither<E2, _>): <A>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, A> + <E1, A, E2, _>(self: TaskEither<E1, A>, onLeft: (e: E1) => TaskEither<E2, _>): TaskEither<E1 | E2, A> +} +/** + * @category error handling + * @since 2.12.0 + */ +export declare const orElseFirstIOK: <E, B>(onLeft: (e: E) => IO<B>) => <A>(ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * @category error handling + * @since 2.12.0 + */ +export declare const orElseFirstTaskK: <E, B>( + onLeft: (e: E) => Task<B> +) => <A>(ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, E2>(onLeft: (e: E1) => Task<E2>) => <A>(fa: TaskEither<E1, A>) => TaskEither<E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <E, A>(ma: TaskEither<E, A>) => TaskEither<A, E> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromTaskOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => TaskOption<B>) => (...a: A) => TaskEither<E, B> +/** + * Use `flatMapTaskOption`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.3 + */ +export declare const chainTaskOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => TaskOption<B>) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Use `flatMapTaskOption`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainTaskOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => TaskOption<B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IOEither<E, B> +) => (...a: A) => TaskEither<E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: TaskEither<E, A>) => TaskEither<E, B> +/** + * Returns a `TaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.left('err'), f, g)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): (self: TaskEither<E, A>) => TaskEither<G, B> + <E, A, G, B>(self: TaskEither<E, A>, f: (e: E) => G, g: (a: A) => B): TaskEither<G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: TaskEither<E, A>) => TaskEither<G, B> +/** + * Returns a `TaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.left('err'), f)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <E, G>(f: (e: E) => G): <A>(self: TaskEither<E, A>) => TaskEither<G, A> + <E, A, G>(self: TaskEither<E, A>, f: (e: E) => G): TaskEither<G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: TaskEither<E, A>) => TaskEither<G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: TaskEither<E, A>) => <B>(fab: TaskEither<E, (a: A) => B>) => TaskEither<E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <E2, A>( + fa: TaskEither<E2, A> +) => <E1, B>(fab: TaskEither<E1, (a: A) => B>) => TaskEither<E1 | E2, B> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, E2, B>(f: (a: A) => TaskEither<E2, B>): <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(ma: TaskEither<E1, A>, f: (a: A) => TaskEither<E2, B>): TaskEither<E1 | E2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <E1, E2, A>(mma: TaskEither<E1, TaskEither<E2, A>>) => TaskEither<E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: TaskEither<E, TaskEither<E, A>>) => TaskEither<E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise. + * + * See also [orElse](#orelse). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * TE.right(1), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(1) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(2) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.left('b')) + * )(), + * E.left('b') + * ) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <E, A>(that: LazyArg<TaskEither<E, A>>) => (fa: TaskEither<E, A>) => TaskEither<E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <E2, B>( + that: LazyArg<TaskEither<E2, B>> +) => <E1, A>(fa: TaskEither<E1, A>) => TaskEither<E2, A | B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <E = never, A = never>(a: A) => TaskEither<E, A> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow2<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'TaskEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: TaskEither<E, A> + } +} +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * import * as T from 'fp-ts/Task' + * import * as TE from 'fp-ts/TaskEither' + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const remoteDatabase: ReadonlyArray<User> = [ + * { id: 'id1', name: 'John' }, + * { id: 'id2', name: 'Mary' }, + * { id: 'id3', name: 'Joey' } + * ] + * + * const fetchUser = (id: string): TE.TaskEither<string, User> => + * pipe( + * remoteDatabase, + * RA.findFirst((user) => user.id === id), + * TE.fromOption(() => `${id} not found`) + * ) + * + * async function test() { + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(TE.ApplicativePar)(fetchUser))(), + * E.left('id4 not found') // <= first error + * ) + * + * const Applicative = TE.getApplicativeTaskValidation( + * T.ApplyPar, + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(Applicative)(fetchUser))(), + * E.left('id4 not found, id5 not found') // <= all errors + * ) + * } + * + * test() + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeTaskValidation<E>(A: Apply1<T.URI>, S: Semigroup<E>): Applicative2C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltTaskValidation<E>(S: Semigroup<E>): Alt2C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable2C<URI, E> +/** + * @category filtering + * @since 2.1.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the `Right` value of this `TaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <E, _>(self: TaskEither<E, _>) => TaskEither<E, A> + <E, _, A>(self: TaskEither<E, _>, a: A): TaskEither<E, A> +} +/** + * Maps the `Right` value of this `TaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <E, _>(self: TaskEither<E, _>) => TaskEither<E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'TaskEither', E, (a: A) => B>) => import('./HKT').Kind2<'TaskEither', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: TaskEither<E, B> +) => <A>(first: import('./HKT').Kind2<'TaskEither', E, A>) => import('./HKT').Kind2<'TaskEither', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <E2, B>( + second: TaskEither<E2, B> +) => <E1, A>(first: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: TaskEither<E, B> +) => <A>(first: import('./HKT').Kind2<'TaskEither', E, A>) => import('./HKT').Kind2<'TaskEither', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <E2, B>( + second: TaskEither<E2, B> +) => <E1, A>(first: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadThrow: MonadThrow2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <E1, A, E2, _>(self: TaskEither<E1, A>, f: (a: A) => TaskEither<E2, _>): TaskEither<E1 | E2, A> + <A, E2, _>(f: (a: A) => TaskEither<E2, _>): <E1>(self: TaskEither<E1, A>) => TaskEither<E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * const checkString = (value: string) => pipe( + * TE.of(value), + * TE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(), E.right('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <E1>(self: TaskEither<E1, A>) => TaskEither<E2 | E1, A> + <E1, A, E2, _>(self: TaskEither<E1, A>, f: (a: A) => Either<E2, _>): TaskEither<E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TE.tapIO( + * TE.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TE.left('error'), + * TE.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), E.of(1)) + * assert.deepStrictEqual(await effectB(), E.left('error')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <E>(self: TaskEither<E, A>) => TaskEither<E, A> + <E, A, _>(self: TaskEither<E, A>, f: (a: A) => IO<_>): TaskEither<E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TE from 'fp-ts/TaskEither' + * import * as T from 'fp-ts/Task' + * import * as E from 'fp-ts/Either' + * + * + * const effect = TE.tapIO( + * TE.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <E>(self: TaskEither<E, A>) => TaskEither<E, A> + <E, A, _>(self: TaskEither<E, A>, f: (a: A) => Task<_>): TaskEither<E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt2<URI> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => TaskEither<E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => TaskEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => (...a: A) => TaskEither<E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => (...a: A) => TaskEither<E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <E1>( + self: TaskEither<E1, A> + ) => TaskEither<E2 | E1, NonNullable<B>> + <E1, A, B, E2>(self: TaskEither<E1, A>, f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): TaskEither< + E1 | E2, + NonNullable<B> + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <E1>(self: TaskEither<E1, A>) => TaskEither<E2 | E1, B> + <E1, A, B, E2>(self: TaskEither<E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): TaskEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <E1>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(self: TaskEither<E1, A>, f: (a: A) => E.Either<E2, B>): TaskEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <E>(self: TaskEither<E, A>) => TaskEither<E, B> + <E, A, B>(self: TaskEither<E, A>, f: (a: A) => IO<B>): TaskEither<E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <E>(self: TaskEither<E, A>) => TaskEither<E, B> + <E, A, B>(self: TaskEither<E, A>, f: (a: A) => Task<B>): TaskEither<E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIOEither: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <E1>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(self: TaskEither<E1, A>, f: (a: A) => IOEither<E2, B>): TaskEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTaskOption: { + <A, E2, B>(f: (a: A) => TaskOption<B>, onNone: (a: A) => E2): <E1>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(self: TaskEither<E1, A>, f: (a: A) => TaskOption<B>, onNone: (a: A) => E2): TaskEither<E1 | E2, B> +} +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => E.Either<E, B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => (ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => E.Either<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => TaskEither<E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: TaskEither<E, A>) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: TaskEither<E, B>) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: TaskEither<E, A>) => TaskEither<E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <E1>( + ma: TaskEither<E1, A> + ) => TaskEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1, B extends A>( + mb: TaskEither<E1, B> + ) => TaskEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => (...a: A) => TaskEither<E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <E = never>(...a: A) => TaskEither<E, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <E = never>(...a: A) => TaskEither<E, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainIOEitherKW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOEitherK: <E, A, B>( + f: (a: A) => IOEither<E, B> +) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Convert a node style callback function to one returning a `TaskEither` + * + * **Note**. If the function `f` admits multiple overloadings, `taskify` will pick last one. If you want a different + * behaviour, add an explicit type annotation + * + * ```ts + * // readFile admits multiple overloadings + * + * // const readFile: (a: string) => TaskEither<NodeJS.ErrnoException, Buffer> + * const readFile = taskify(fs.readFile) + * + * const readFile2: (filename: string, encoding: string) => TaskEither<NodeJS.ErrnoException, Buffer> = taskify( + * fs.readFile + * ) + * ``` + * + * @example + * import { taskify } from 'fp-ts/TaskEither' + * import * as fs from 'fs' + * + * // const stat: (a: string | Buffer) => TaskEither<NodeJS.ErrnoException, fs.Stats> + * const stat = taskify(fs.stat) + * assert.strictEqual(stat.length, 0) + * + * @category interop + * @since 2.0.0 + */ +export declare function taskify<L, R>(f: (cb: (e: L | null | undefined, r?: R) => void) => void): () => TaskEither<L, R> +export declare function taskify<A, L, R>( + f: (a: A, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A) => TaskEither<L, R> +export declare function taskify<A, B, L, R>( + f: (a: A, b: B, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B) => TaskEither<L, R> +export declare function taskify<A, B, C, L, R>( + f: (a: A, b: B, c: C, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B, c: C) => TaskEither<L, R> +export declare function taskify<A, B, C, D, L, R>( + f: (a: A, b: B, c: C, d: D, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B, c: C, d: D) => TaskEither<L, R> +export declare function taskify<A, B, C, D, E, L, R>( + f: (a: A, b: B, c: C, d: D, e: E, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B, c: C, d: D, e: E) => TaskEither<L, R> +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +export declare const bracket: <E, A, B>( + acquire: TaskEither<E, A>, + use: (a: A) => TaskEither<E, B>, + release: (a: A, e: Either<E, B>) => TaskEither<E, void> +) => TaskEither<E, B> +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const bracketW: <E1, A, E2, B, E3>( + acquire: TaskEither<E1, A>, + use: (a: A) => TaskEither<E2, B>, + release: (a: A, e: E.Either<E2, B>) => TaskEither<E3, void> +) => TaskEither<E1 | E2 | E3, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: TaskEither<never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'TaskEither', E, B> +) => ( + ma: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => TaskEither<E2, B> +) => <E1>(fa: TaskEither<E1, A>) => TaskEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: TaskEither<E, B> +) => ( + fa: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, E2, B>( + name: Exclude<N, keyof A>, + fb: TaskEither<E2, B> +) => <E1>(fa: TaskEither<E1, A>) => TaskEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: TaskEither<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B, E>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B, E>( + f: (a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A, E>(arr: ReadonlyArray<TaskEither<E, A>>) => TaskEither<E, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <A, B, E>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <A, B, E>( + f: (a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <A, E>(arr: ReadonlyArray<TaskEither<E, A>>) => TaskEither<E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <E, A, B>(f: (a: A) => TaskEither<E, B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <E, A, B>(f: (a: A) => TaskEither<E, B>) => (ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, B>( + onLeft: (e: E) => TaskEither<E, B> +) => <A>(ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, E2, B>( + onLeft: (e: E1) => TaskEither<E2, B> +) => <A>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEither` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const taskEither: Monad2<URI> & Bifunctor2<URI> & Alt2<URI> & MonadTask2<URI> & MonadThrow2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEitherSeq` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const taskEitherSeq: typeof taskEither +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <E, A>(S: Semigroup<A>) => Semigroup<TaskEither<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <E, A>(M: Monoid<A>) => Monoid<TaskEither<E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <E, A>(S: Semigroup<A>) => Semigroup<TaskEither<E, A>> +/** + * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getTaskValidation<E>( + SE: Semigroup<E> +): Monad2C<URI, E> & Bifunctor2<URI> & Alt2C<URI, E> & MonadTask2C<URI, E> & MonadThrow2C<URI, E> diff --git a/node_modules/fp-ts/es6/TaskEither.js b/node_modules/fp-ts/es6/TaskEither.js new file mode 100644 index 0000000..51570bf --- /dev/null +++ b/node_modules/fp-ts/es6/TaskEither.js @@ -0,0 +1,1464 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +import { getApplicativeMonoid } from './Applicative'; +import { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply'; +import * as chainable from './Chain'; +import { compact as compact_, separate as separate_ } from './Compactable'; +import * as E from './Either'; +import * as ET from './EitherT'; +import { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable'; +import { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_, tapEither as tapEither_ } from './FromEither'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { fromTaskK as fromTaskK_, tapTask as tapTask_ } from './FromTask'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as T from './Task'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export var left = /*#__PURE__*/ ET.left(T.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var right = /*#__PURE__*/ ET.right(T.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightTask = /*#__PURE__*/ ET.rightF(T.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +export var leftTask = /*#__PURE__*/ ET.leftF(T.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +export var rightIO = /*#__PURE__*/ flow(T.fromIO, rightTask); +/** + * @category constructors + * @since 2.0.0 + */ +export var leftIO = /*#__PURE__*/ flow(T.fromIO, leftTask); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.7.0 + */ +export var fromIO = rightIO; +/** + * @category conversions + * @since 2.7.0 + */ +export var fromTask = rightTask; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromEither = T.of; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromIOEither = T.fromIO; +/** + * @category conversions + * @since 2.11.0 + */ +export var fromTaskOption = function (onNone) { + return T.map(E.fromOption(onNone)); +}; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = +/*#__PURE__*/ ET.match(T.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchE = /*#__PURE__*/ ET.matchE(T.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchEW = matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +export var getOrElse = +/*#__PURE__*/ ET.getOrElse(T.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export var getOrElseW = getOrElse; +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { left, right } from 'fp-ts/Either' + * import { tryCatch } from 'fp-ts/TaskEither' + * + * tryCatch(() => Promise.resolve(1), String)().then(result => { + * assert.deepStrictEqual(result, right(1)) + * }) + * tryCatch(() => Promise.reject('error'), String)().then(result => { + * assert.deepStrictEqual(result, left('error')) + * }) + * + * @category interop + * @since 2.0.0 + */ +export var tryCatch = function (f, onRejected) { + return function () { return __awaiter(void 0, void 0, void 0, function () { + var reason_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, f().then(_.right)]; + case 1: return [2 /*return*/, _a.sent()]; + case 2: + reason_1 = _a.sent(); + return [2 /*return*/, _.left(onRejected(reason_1))]; + case 3: return [2 /*return*/]; + } + }); + }); }; +}; +/** + * Converts a function returning a `Promise` to one returning a `TaskEither`. + * + * @category interop + * @since 2.5.0 + */ +export var tryCatchK = function (f, onRejected) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return tryCatch(function () { return f.apply(void 0, a); }, onRejected); + }; +}; +/** + * @category conversions + * @since 2.10.0 + */ +export var toUnion = /*#__PURE__*/ ET.toUnion(T.Functor); +/** + * @category conversions + * @since 2.12.0 + */ +export var fromNullable = /*#__PURE__*/ ET.fromNullable(T.Pointed); +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export var fromNullableK = /*#__PURE__*/ ET.fromNullableK(T.Pointed); +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainNullableK = +/*#__PURE__*/ ET.chainNullableK(T.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise. + * + * See also [alt](#alt). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`)) + * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok')) + * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...')) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +export var orElse = +/*#__PURE__*/ ET.orElse(T.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var orElseW = orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export var tapError = /*#__PURE__*/ dual(2, ET.tapError(T.Monad)); +/** + * @category error handling + * @since 2.12.0 + */ +export var orElseFirstIOK = function (onLeft) { return tapError(fromIOK(onLeft)); }; +/** + * @category error handling + * @since 2.12.0 + */ +export var orElseFirstTaskK = function (onLeft) { return tapError(fromTaskK(onLeft)); }; +/** + * @category error handling + * @since 2.11.0 + */ +export var orLeft = +/*#__PURE__*/ ET.orLeft(T.Monad); +/** + * @since 2.0.0 + */ +export var swap = /*#__PURE__*/ ET.swap(T.Functor); +/** + * @category lifting + * @since 2.11.0 + */ +export var fromTaskOptionK = function (onNone) { + var from = fromTaskOption(onNone); + return function (f) { return flow(f, from); }; +}; +/** + * Use `flatMapTaskOption`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.3 + */ +export var chainTaskOptionKW = function (onNone) { + return function (f) { + return function (ma) { + return flatMap(ma, fromTaskOptionK(onNone)(f)); + }; + }; +}; +/** + * Use `flatMapTaskOption`. + * + * @category legacy + * @since 2.11.0 + */ +export var chainTaskOptionK = chainTaskOptionKW; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromIOEitherK = function (f) { return flow(f, fromIOEither); }; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _apPar = function (fab, fa) { return pipe(fab, ap(fa)); }; +var _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = /*#__PURE__*/ ET.map(T.Functor); +/** + * Returns a `TaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.left('err'), f, g)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export var mapBoth = /*#__PURE__*/ dual(3, ET.mapBoth(T.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export var bimap = mapBoth; +/** + * Returns a `TaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.left('err'), f)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export var mapError = /*#__PURE__*/ dual(2, ET.mapError(T.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export var mapLeft = mapError; +/** + * @since 2.0.0 + */ +export var ap = +/*#__PURE__*/ ET.ap(T.ApplyPar); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export var apW = ap; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, ET.flatMap(T.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export var flattenW = +/*#__PURE__*/ flatMap(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise. + * + * See also [orElse](#orelse). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * TE.right(1), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(1) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(2) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.left('b')) + * )(), + * E.left('b') + * ) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +export var alt = +/*#__PURE__*/ ET.alt(T.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export var altW = alt; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = right; +/** + * @since 2.7.0 + */ +export var throwError = left; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'TaskEither'; +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * import * as T from 'fp-ts/Task' + * import * as TE from 'fp-ts/TaskEither' + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const remoteDatabase: ReadonlyArray<User> = [ + * { id: 'id1', name: 'John' }, + * { id: 'id2', name: 'Mary' }, + * { id: 'id3', name: 'Joey' } + * ] + * + * const fetchUser = (id: string): TE.TaskEither<string, User> => + * pipe( + * remoteDatabase, + * RA.findFirst((user) => user.id === id), + * TE.fromOption(() => `${id} not found`) + * ) + * + * async function test() { + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(TE.ApplicativePar)(fetchUser))(), + * E.left('id4 not found') // <= first error + * ) + * + * const Applicative = TE.getApplicativeTaskValidation( + * T.ApplyPar, + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(Applicative)(fetchUser))(), + * E.left('id4 not found, id5 not found') // <= all errors + * ) + * } + * + * test() + * + * @category error handling + * @since 2.7.0 + */ +export function getApplicativeTaskValidation(A, S) { + var ap = ap_(A, E.getApplicativeValidation(S)); + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return pipe(fab, ap(fa)); }, + of: of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export function getAltTaskValidation(S) { + var alt = ET.altValidation(T.Monad, S); + return { + URI: URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return pipe(fa, alt(that)); } + }; +} +/** + * @category filtering + * @since 2.10.0 + */ +export var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: URI, + _E: undefined, + compact: compact_(T.Functor, C), + separate: separate_(T.Functor, C, E.Functor) + }; +}; +/** + * @category filtering + * @since 2.1.0 + */ +export function getFilterable(M) { + var F = E.getFilterable(M); + var C = getCompactable(M); + var filter = filter_(T.Functor, F); + var filterMap = filterMap_(T.Functor, F); + var partition = partition_(T.Functor, F); + var partitionMap = partitionMap_(T.Functor, F); + return { + URI: URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return pipe(fa, filter(predicate)); }, + filterMap: function (fa, f) { return pipe(fa, filterMap(f)); }, + partition: function (fa, predicate) { return pipe(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return pipe(fa, partitionMap(f)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Right` value of this `TaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Right` value of this `TaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplyPar = { + URI: URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var apFirstW = apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var apSecondW = apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativePar = { + URI: URI, + map: _map, + ap: _apPar, + of: of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export var ApplySeq = { + URI: URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export var ApplicativeSeq = { + URI: URI, + map: _map, + ap: _apSeq, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadTask = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadThrow = { + URI: URI, + map: _map, + ap: _apPar, + chain: flatMap, + of: of, + throwError: throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * const checkString = (value: string) => pipe( + * TE.of(value), + * TE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(), E.right('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TE.tapIO( + * TE.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TE.left('error'), + * TE.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), E.of(1)) + * assert.deepStrictEqual(await effectB(), E.left('error')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TE from 'fp-ts/TaskEither' + * import * as T from 'fp-ts/Task' + * import * as E from 'fp-ts/Either' + * + * + * const effect = TE.tapIO( + * TE.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapTask = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain)); +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category conversions + * @since 2.0.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var fromOptionK = +/*#__PURE__*/ fromOptionK_(FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export var chainOptionKW = chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: FromEither.fromEither +}; +/** + * @category lifting + * @since 2.15.0 + */ +export var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +export var liftOption = /*#__PURE__*/ _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: FromIO.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: fromTask +}; +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapEither = /*#__PURE__*/ _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +export var flatMapIO = /*#__PURE__*/ _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTask = /*#__PURE__*/ _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIOEither = /*#__PURE__*/ dual(2, function (self, f) { + return flatMap(self, fromIOEitherK(f)); +}); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTaskOption = /*#__PURE__*/ dual(3, function (self, f, onNone) { + return flatMap(self, function (a) { return fromTaskOption(function () { return onNone(a); })(f(a)); }); +}); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainEitherK = flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export var chainEitherKW = flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherKW = tapEither; +/** + * @category lifting + * @since 2.0.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +export var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export var filterOrElseW = filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromTaskK = /*#__PURE__*/ fromTaskK_(FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainTaskK = flatMapTask; +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstTaskK = tapTask; +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export var chainIOEitherKW = flatMapIOEither; +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export var chainIOEitherK = flatMapIOEither; +export function taskify(f) { + return function () { + var args = Array.prototype.slice.call(arguments); + return function () { + return new Promise(function (resolve) { + var cbResolver = function (e, r) { return (e != null ? resolve(_.left(e)) : resolve(_.right(r))); }; + f.apply(null, args.concat(cbResolver)); + }); + }; + }; +} +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +export var bracket = function (acquire, use, release) { return bracketW(acquire, use, release); }; +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export var bracketW = function (acquire, use, release) { + return flatMap(acquire, function (a) { return T.flatMap(use(a), function (e) { return flatMap(release(a, e), function () { return T.of(e); }); }); }); +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var bindW = bind; +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export var apSW = apS; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(E.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (ebs) { + return _.isLeft(ebs) + ? acc + : f(i + 1, a)().then(function (eb) { + if (_.isLeft(eb)) { + return eb; + } + ebs.right.push(eb.right); + return ebs; + }); + }); + }, f(0, _.head(as))().then(E.map(_.singleton))); + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var traverseSeqArray = function (f) { return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export var sequenceSeqArray = +/*#__PURE__*/ traverseSeqArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export var chainW = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chainFirst = tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export var chainFirstW = tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirst = tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export var orElseFirstW = tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEither` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var taskEither = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError, + map: _map, + of: of, + ap: _apPar, + chain: flatMap, + alt: _alt, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEitherSeq` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var taskEitherSeq = { + URI: URI, + bimap: mapBoth, + mapLeft: mapError, + map: _map, + of: of, + ap: _apSeq, + chain: flatMap, + alt: _alt, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplySemigroup = +/*#__PURE__*/ getApplySemigroup_(ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getApplyMonoid = +/*#__PURE__*/ getApplicativeMonoid(ApplicativeSeq); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var getSemigroup = function (S) { + return getApplySemigroup_(T.ApplySeq)(E.getSemigroup(S)); +}; +/** + * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export function getTaskValidation(SE) { + var applicativeTaskValidation = getApplicativeTaskValidation(T.ApplicativePar, SE); + var altTaskValidation = getAltTaskValidation(SE); + return { + URI: URI, + _E: undefined, + map: _map, + ap: applicativeTaskValidation.ap, + of: of, + chain: flatMap, + bimap: mapBoth, + mapLeft: mapError, + alt: altTaskValidation.alt, + fromIO: fromIO, + fromTask: fromTask, + throwError: throwError + }; +} diff --git a/node_modules/fp-ts/es6/TaskOption.d.ts b/node_modules/fp-ts/es6/TaskOption.d.ts new file mode 100644 index 0000000..09ec64a --- /dev/null +++ b/node_modules/fp-ts/es6/TaskOption.d.ts @@ -0,0 +1,767 @@ +/** + * @since 2.10.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Filterable1 } from './Filterable' +import { FromEither1 } from './FromEither' +import { FromIO1 } from './FromIO' +import { FromTask1 } from './FromTask' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { IO } from './IO' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import { MonadTask1 } from './MonadTask' +import * as O from './Option' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Separated } from './Separated' +import * as T from './Task' +import { TaskEither } from './TaskEither' +import { Zero1 } from './Zero' +import Task = T.Task +import Option = O.Option +/** + * @category model + * @since 2.10.0 + */ +export interface TaskOption<A> extends Task<Option<A>> {} +/** + * @category constructors + * @since 2.10.0 + */ +export declare const some: <A>(a: A) => TaskOption<A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => TaskOption<B> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => TaskOption<B> + <A>(predicate: Predicate<A>): (a: A) => TaskOption<A> +} +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => TaskOption<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => TaskOption<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromIO: <A>(fa: IO<A>) => TaskOption<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromTask: <A>(fa: Task<A>) => TaskOption<A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromTaskEither: <A>(fa: TaskEither<unknown, A>) => TaskOption<A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: TaskOption<A>) => Task<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <B, A, C>(onNone: () => B, onSome: (a: A) => C) => (ma: TaskOption<A>) => Task<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <B, A>(onNone: () => Task<B>, onSome: (a: A) => Task<B>) => (ma: TaskOption<A>) => Task<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const fold: <B, A>(onNone: () => Task<B>, onSome: (a: A) => Task<B>) => (ma: TaskOption<A>) => Task<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <B, C, A>( + onNone: () => Task<B>, + onSome: (a: A) => Task<C> +) => (ma: TaskOption<A>) => Task<B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <B, C, A>( + onNone: () => Task<B>, + onSome: (a: A) => Task<C> +) => (ma: TaskOption<A>) => Task<B | C> +/** + * @category error handling + * @since 2.10.0 + */ +export declare const getOrElse: <A>(onNone: LazyArg<Task<A>>) => (fa: TaskOption<A>) => Task<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const getOrElseW: <B>(onNone: LazyArg<Task<B>>) => <A>(ma: TaskOption<A>) => Task<A | B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromNullable: <A>(a: A) => TaskOption<NonNullable<A>> +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Option` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatch: <A>(f: LazyArg<Promise<A>>) => TaskOption<A> +/** + * Converts a function returning a `Promise` to one returning a `TaskOption`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Promise<B> +) => (...a: A) => TaskOption<B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromNullableK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => TaskOption<NonNullable<B>> +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainNullableK: <A, B>( + f: (a: A) => B | null | undefined +) => (ma: TaskOption<A>) => TaskOption<NonNullable<B>> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => TaskOption<B> +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainOptionK: <A, B>(f: (a: A) => Option<B>) => (ma: TaskOption<A>) => TaskOption<B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: TaskOption<A>) => TaskOption<B> +/** + * @since 2.10.0 + */ +export declare const ap: <A>(fa: TaskOption<A>) => <B>(fab: TaskOption<(a: A) => B>) => TaskOption<B> +/** + * @category constructors + * @since 2.10.0 + */ +export declare const of: <A>(a: A) => TaskOption<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => TaskOption<B>): (ma: TaskOption<A>) => TaskOption<B> + <A, B>(ma: TaskOption<A>, f: (a: A) => TaskOption<B>): TaskOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): (self: TaskOption<A>) => TaskOption<B> + <A, B>(self: TaskOption<A>, f: (a: A) => IO<B>): TaskOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): (self: TaskOption<A>) => TaskOption<B> + <A, B>(self: TaskOption<A>, f: (a: A) => Task<B>): TaskOption<B> +} +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const flatten: <A>(mma: TaskOption<TaskOption<A>>) => TaskOption<A> +/** + * @category error handling + * @since 2.10.0 + */ +export declare const alt: <A>(second: LazyArg<TaskOption<A>>) => (first: TaskOption<A>) => TaskOption<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const altW: <B>(second: LazyArg<TaskOption<B>>) => <A>(first: TaskOption<A>) => TaskOption<A | B> +/** + * @since 2.10.0 + */ +export declare const zero: <A>() => TaskOption<A> +/** + * @category constructors + * @since 2.10.0 + */ +export declare const none: TaskOption<never> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const compact: Compactable1<URI>['compact'] +/** + * @category filtering + * @since 2.10.0 + */ +export declare const separate: Compactable1<URI>['separate'] +/** + * @category filtering + * @since 2.10.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: TaskOption<A>) => TaskOption<B> + <A>(predicate: Predicate<A>): <B extends A>(fb: TaskOption<B>) => TaskOption<B> + <A>(predicate: Predicate<A>): (fa: TaskOption<A>) => TaskOption<A> +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fga: TaskOption<A>) => TaskOption<B> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: TaskOption<A>) => Separated<TaskOption<A>, TaskOption<B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: TaskOption<B>) => Separated<TaskOption<B>, TaskOption<B>> + <A>(predicate: Predicate<A>): (fa: TaskOption<A>) => Separated<TaskOption<A>, TaskOption<A>> +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: TaskOption<A>) => Separated<TaskOption<B>, TaskOption<C>> +/** + * @category type lambdas + * @since 2.10.0 + */ +export declare const URI = 'TaskOption' +/** + * @category type lambdas + * @since 2.10.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: TaskOption<A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the `Some` value of this `TaskOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: TaskOption<_>) => TaskOption<A> + <_, A>(self: TaskOption<_>, a: A): TaskOption<A> +} +/** + * Maps the `Some` value of this `TaskOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: TaskOption<_>) => TaskOption<void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'TaskOption', (a: A) => B>) => import('./HKT').Kind<'TaskOption', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.10.0 + */ +export declare const apFirst: <B>( + second: TaskOption<B> +) => <A>(first: import('./HKT').Kind<'TaskOption', A>) => import('./HKT').Kind<'TaskOption', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.10.0 + */ +export declare const apSecond: <B>( + second: TaskOption<B> +) => <A>(first: import('./HKT').Kind<'TaskOption', A>) => import('./HKT').Kind<'TaskOption', B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplicativePar: Applicative1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplicativeSeq: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: TaskOption<A>, f: (a: A) => TaskOption<_>): TaskOption<A> + <A, _>(f: (a: A) => TaskOption<_>): (self: TaskOption<A>) => TaskOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * TO.of(value), + * TO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * async function test() { + * assert.deepStrictEqual(await compute(1)(), O.of(1)) + * assert.deepStrictEqual(await compute(-1)(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E, _>(f: (a: A) => Either<E, _>): (self: TaskOption<A>) => TaskOption<A> + <A, E, _>(self: TaskOption<A>, f: (a: A) => Either<E, _>): TaskOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TO.tapIO( + * TO.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TO.none as TO.TaskOption<string>, + * TO.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), O.of(1)) + * assert.deepStrictEqual(await effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): (self: TaskOption<A>) => TaskOption<A> + <A, _>(self: TaskOption<A>, f: (a: A) => IO<_>): TaskOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as T from 'fp-ts/Task' + * + * const effect = TO.tapIO( + * TO.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), O.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): (self: TaskOption<A>) => TaskOption<A> + <A, _>(self: TaskOption<A>, f: (a: A) => Task<_>): TaskOption<A> +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'TaskOption', void> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => TaskOption<B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => (first: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => (first: TaskOption<A>) => TaskOption<A> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => TaskOption<B> +/** + * @category sequencing + * @since 2.12.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: TaskOption<A>) => TaskOption<A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => (...a: A) => TaskOption<B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => (first: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => (first: TaskOption<A>) => TaskOption<A> +/** + * @category do notation + * @since 2.10.0 + */ +export declare const Do: TaskOption<{}> +/** + * @category do notation + * @since 2.10.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'TaskOption', A>) => import('./HKT').Kind<'TaskOption', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'TaskOption', A> +) => import('./HKT').Kind<'TaskOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.10.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'TaskOption', B> +) => ( + ma: import('./HKT').Kind<'TaskOption', A> +) => import('./HKT').Kind<'TaskOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.10.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: TaskOption<B> +) => ( + fa: import('./HKT').Kind<'TaskOption', A> +) => import('./HKT').Kind<'TaskOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: TaskOption<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskOption<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskOption<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseArray: <A, B>( + f: (a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const sequenceArray: <A>(as: ReadonlyArray<TaskOption<A>>) => TaskOption<ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArray: <A, B>( + f: (a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const sequenceSeqArray: <A>(as: ReadonlyArray<TaskOption<A>>) => TaskOption<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chain: <A, B>(f: (a: A) => TaskOption<B>) => (ma: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => TaskOption<B>) => (first: TaskOption<A>) => TaskOption<A> diff --git a/node_modules/fp-ts/es6/TaskOption.js b/node_modules/fp-ts/es6/TaskOption.js new file mode 100644 index 0000000..975107f --- /dev/null +++ b/node_modules/fp-ts/es6/TaskOption.js @@ -0,0 +1,871 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import * as chainable from './Chain'; +import { compact as compact_, separate as separate_ } from './Compactable'; +import { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable'; +import { chainEitherK as chainEitherK_, fromEitherK as fromEitherK_, tapEither as tapEither_ } from './FromEither'; +import { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO'; +import { fromTaskK as fromTaskK_, tapTask as tapTask_ } from './FromTask'; +import { dual, flow, identity, pipe, SK } from './function'; +import { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +import * as O from './Option'; +import * as OT from './OptionT'; +import * as T from './Task'; +import { guard as guard_ } from './Zero'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.10.0 + */ +export var some = /*#__PURE__*/ OT.some(T.Pointed); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromPredicate = /*#__PURE__*/ OT.fromPredicate(T.Pointed); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.10.0 + */ +export var fromOption = T.of; +/** + * @category conversions + * @since 2.10.0 + */ +export var fromEither = /*#__PURE__*/ OT.fromEither(T.Pointed); +/** + * @category conversions + * @since 2.10.0 + */ +export var fromIO = function (ma) { return fromTask(T.fromIO(ma)); }; +/** + * @category conversions + * @since 2.10.0 + */ +export var fromTask = /*#__PURE__*/ OT.fromF(T.Functor); +/** + * @category conversions + * @since 2.11.0 + */ +export var fromTaskEither = /*#__PURE__*/ T.map(O.fromEither); +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = +/*#__PURE__*/ OT.match(T.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchE = +/*#__PURE__*/ OT.matchE(T.Chain); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.10.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchEW = matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchEW; +/** + * @category error handling + * @since 2.10.0 + */ +export var getOrElse = /*#__PURE__*/ OT.getOrElse(T.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var getOrElseW = getOrElse; +/** + * @category conversions + * @since 2.10.0 + */ +export var fromNullable = /*#__PURE__*/ OT.fromNullable(T.Pointed); +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Option` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.10.0 + */ +export var tryCatch = function (f) { + return function () { return __awaiter(void 0, void 0, void 0, function () { + var reason_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, f().then(_.some)]; + case 1: return [2 /*return*/, _a.sent()]; + case 2: + reason_1 = _a.sent(); + return [2 /*return*/, _.none]; + case 3: return [2 /*return*/]; + } + }); + }); }; +}; +/** + * Converts a function returning a `Promise` to one returning a `TaskOption`. + * + * @category interop + * @since 2.10.0 + */ +export var tryCatchK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return tryCatch(function () { return f.apply(void 0, a); }); + }; +}; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromNullableK = /*#__PURE__*/ OT.fromNullableK(T.Pointed); +/** + * @category sequencing + * @since 2.10.0 + */ +export var chainNullableK = /*#__PURE__*/ OT.chainNullableK(T.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category lifting + * @since 2.10.0 + */ +export var fromOptionK = /*#__PURE__*/ OT.fromOptionK(T.Pointed); +/** + * @category sequencing + * @since 2.10.0 + */ +export var chainOptionK = +/*#__PURE__*/ OT.chainOptionK(T.Monad); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +export var map = /*#__PURE__*/ OT.map(T.Functor); +/** + * @since 2.10.0 + */ +export var ap = /*#__PURE__*/ OT.ap(T.ApplyPar); +/** + * @category constructors + * @since 2.10.0 + */ +export var of = some; +/** @internal */ +var _FromIO = { + fromIO: fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: fromTask +}; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, OT.flatMap(T.Monad)); +/** @internal */ +var _FlatMap = { + flatMap: flatMap +}; +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapIO = /*#__PURE__*/ _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +export var flatMapTask = /*#__PURE__*/ _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.10.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * @category error handling + * @since 2.10.0 + */ +export var alt = /*#__PURE__*/ OT.alt(T.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export var altW = alt; +/** + * @since 2.10.0 + */ +export var zero = /*#__PURE__*/ OT.zero(T.Pointed); +/** + * @category constructors + * @since 2.10.0 + */ +export var none = /*#__PURE__*/ zero(); +/** + * @category filtering + * @since 2.10.0 + */ +export var compact = /*#__PURE__*/ compact_(T.Functor, O.Compactable); +/** + * @category filtering + * @since 2.10.0 + */ +export var separate = /*#__PURE__*/ separate_(T.Functor, O.Compactable, O.Functor); +/** + * @category filtering + * @since 2.10.0 + */ +export var filter = /*#__PURE__*/ filter_(T.Functor, O.Filterable); +/** + * @category filtering + * @since 2.10.0 + */ +export var filterMap = +/*#__PURE__*/ filterMap_(T.Functor, O.Filterable); +/** + * @category filtering + * @since 2.10.0 + */ +export var partition = /*#__PURE__*/ partition_(T.Functor, O.Filterable); +/** + * @category filtering + * @since 2.10.0 + */ +export var partitionMap = /*#__PURE__*/ partitionMap_(T.Functor, O.Filterable); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _ap = function (fab, fa) { return pipe(fab, ap(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return pipe(fa, alt(that)); }; +/* istanbul ignore next */ +var _filter = function (fa, predicate) { + return pipe(fa, filter(predicate)); +}; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return pipe(fa, partition(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); }; +/** + * @category type lambdas + * @since 2.10.0 + */ +export var URI = 'TaskOption'; +/** + * @category instances + * @since 2.10.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * Maps the `Some` value of this `TaskOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var as = dual(2, as_(Functor)); +/** + * Maps the `Some` value of this `TaskOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export var asUnit = asUnit_(Functor); +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplyPar = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.10.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(ApplyPar); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.10.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(ApplyPar); +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export var ApplicativePar = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +var _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export var ApplySeq = { + URI: URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export var ApplicativeSeq = { + URI: URI, + map: _map, + ap: _apSeq, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * TO.of(value), + * TO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * async function test() { + * assert.deepStrictEqual(await compute(1)(), O.of(1)) + * assert.deepStrictEqual(await compute(-1)(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TO.tapIO( + * TO.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TO.none as TO.TaskOption<string>, + * TO.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), O.of(1)) + * assert.deepStrictEqual(await effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as T from 'fp-ts/Task' + * + * const effect = TO.tapIO( + * TO.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), O.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export var tapTask = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain)); +/** + * @category instances + * @since 2.10.0 + */ +export var Alt = { + URI: URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.11.0 + */ +export var Zero = { + URI: URI, + zero: zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +export var guard = /*#__PURE__*/ guard_(Zero, Pointed); +/** + * @category instances + * @since 2.10.0 + */ +export var Alternative = { + URI: URI, + map: _map, + ap: _ap, + of: of, + alt: _alt, + zero: zero +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadIO = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +export var MonadTask = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Compactable = { + URI: URI, + compact: compact, + separate: separate +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Filterable = { + URI: URI, + map: _map, + compact: compact, + separate: separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromIOK = +/*#__PURE__*/ fromIOK_(FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainIOK = flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstIOK = tapIO; +/** + * @category lifting + * @since 2.12.0 + */ +export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither); +/** + * @category sequencing + * @since 2.12.0 + */ +export var chainEitherK = +/*#__PURE__*/ chainEitherK_(FromEither, Chain); +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export var chainFirstEitherK = tapEither; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromTaskK = +/*#__PURE__*/ fromTaskK_(FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainTaskK = flatMapTask; +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirstTaskK = tapTask; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.10.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.10.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.10.0 + */ +export var bind = /*#__PURE__*/ chainable.bind(Chain); +/** + * @category do notation + * @since 2.10.0 + */ +export var apS = /*#__PURE__*/ apS_(ApplyPar); +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return flow(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(O.traverseReadonlyNonEmptyArrayWithIndex(SK))); +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (obs) { + return _.isNone(obs) + ? acc + : f(i + 1, a)().then(function (ob) { + if (_.isNone(ob)) { + return ob; + } + obs.value.push(ob.value); + return obs; + }); + }); + }, f(0, _.head(as))().then(O.map(_.singleton))); + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export var traverseArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export var sequenceArray = +/*#__PURE__*/ traverseArray(identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export var traverseSeqArray = function (f) { return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); }; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export var sequenceSeqArray = +/*#__PURE__*/ traverseSeqArray(identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.10.0 + */ +export var chain = flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.10.0 + */ +export var chainFirst = tap; diff --git a/node_modules/fp-ts/es6/TaskThese.d.ts b/node_modules/fp-ts/es6/TaskThese.d.ts new file mode 100644 index 0000000..fcd0953 --- /dev/null +++ b/node_modules/fp-ts/es6/TaskThese.d.ts @@ -0,0 +1,401 @@ +/** + * @since 2.4.0 + */ +import { Applicative2C } from './Applicative' +import { Apply1, Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { Either } from './Either' +import { FromEither2 } from './FromEither' +import { FromIO2 } from './FromIO' +import { FromTask2 } from './FromTask' +import { FromThese2 } from './FromThese' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad2C } from './Monad' +import { MonadTask2C } from './MonadTask' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import * as TH from './These' +import These = TH.These +import Task = T.Task +/** + * @category model + * @since 2.4.0 + */ +export interface TaskThese<E, A> extends Task<These<E, A>> {} +/** + * @category constructors + * @since 2.4.0 + */ +export declare const left: <E = never, A = never>(e: E) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const right: <E = never, A = never>(a: A) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const both: <E, A>(e: E, a: A) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const rightTask: <E = never, A = never>(ma: Task<A>) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const leftTask: <E = never, A = never>(me: Task<E>) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const rightIO: <E = never, A = never>(ma: IO<A>) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const leftIO: <E = never, A = never>(me: IO<E>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromEither: <E, A>(fa: Either<E, A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromThese: <E, A>(fa: These<E, A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, E = never>(fa: IO<A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.4.0 + */ +export declare const fromIOEither: <E, A>(fa: IOEither<E, A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromTask: <A, E = never>(fa: Task<A>) => TaskThese<E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (fa: TaskThese<E, A>) => Task<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C, D>( + onLeft: (e: E) => B, + onRight: (a: A) => C, + onBoth: (e: E, a: A) => D +) => (ma: TaskThese<E, A>) => T.Task<B | C | D> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <E, B, A>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B>, + onBoth: (e: E, a: A) => Task<B> +) => (fa: TaskThese<E, A>) => Task<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.4.0 + */ +export declare const fold: <E, B, A>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B>, + onBoth: (e: E, a: A) => Task<B> +) => (fa: TaskThese<E, A>) => Task<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, B, A, C, D>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C>, + onBoth: (e: E, a: A) => Task<D> +) => (fa: TaskThese<E, A>) => Task<B | C | D> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C, D>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C>, + onBoth: (e: E, a: A) => Task<D> +) => (fa: TaskThese<E, A>) => Task<B | C | D> +/** + * @since 2.4.0 + */ +export declare const swap: <E, A>(fa: TaskThese<E, A>) => TaskThese<A, E> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.4.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: TaskThese<E, A>) => TaskThese<E, B> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.4.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: TaskThese<E, A>) => TaskThese<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.4.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: TaskThese<E, A>) => TaskThese<G, A> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <E = never, A = never>(a: A) => TaskThese<E, A> +/** + * @category type lambdas + * @since 2.4.0 + */ +export declare const URI = 'TaskThese' +/** + * @category type lambdas + * @since 2.4.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: TaskThese<E, A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApply: <E>(A: Apply1<T.URI>, S: Semigroup<E>) => Apply2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare function getApplicative<E>(A: Apply1<T.URI>, S: Semigroup<E>): Applicative2C<URI, E> +/** + * @category instances + * @since 2.10.0 + */ +export declare function getChain<E>(S: Semigroup<E>): Chain2C<URI, E> +/** + * @category instances + * @since 2.4.0 + */ +export declare function getMonad<E>(S: Semigroup<E>): Monad2C<URI, E> & MonadTask2C<URI, E> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'TaskThese', E, (a: A) => B>) => import('./HKT').Kind2<'TaskThese', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => TaskThese<E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => TaskThese<E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromPredicate: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => TaskThese<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => TaskThese<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => TaskThese<E, A> +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromThese: FromThese2<URI> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromTheseK: <A extends ReadonlyArray<unknown>, E, B>( + f: (...a: A) => TH.These<E, B> +) => (...a: A) => TaskThese<E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <E = never>(...a: A) => TaskThese<E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask2<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <E = never>(...a: A) => TaskThese<E, B> +/** + * @since 2.10.0 + */ +export declare const toTuple2: <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: TaskThese<E, A>) => Task<readonly [E, A]> +/** + * @since 2.11.0 + */ +export declare const ApT: TaskThese<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>( + f: (index: number, a: A) => TaskThese<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskThese<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>(f: (index: number, a: A) => TaskThese<E, B>) => (as: ReadonlyArray<A>) => TaskThese<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <E>( + S: Semigroup<E> +) => <A, B>( + f: (index: number, a: A) => TaskThese<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskThese<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <E>( + S: Semigroup<E> +) => <A, B>(f: (index: number, a: A) => TaskThese<E, B>) => (as: ReadonlyArray<A>) => TaskThese<E, ReadonlyArray<B>> +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const functorTaskThese: Functor2<URI> +/** + * Use [`Bifunctor`](#bifunctor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const bifunctorTaskThese: Bifunctor2<URI> +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const toTuple: <E, A>(e: E, a: A) => (fa: TaskThese<E, A>) => Task<[E, A]> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TT.Functor` instead of `TT.taskThese` + * (where `TT` is from `import TT from 'fp-ts/TaskThese'`) + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const taskThese: Functor2<URI> & Bifunctor2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const getSemigroup: <E, A>(SE: Semigroup<E>, SA: Semigroup<A>) => Semigroup<TaskThese<E, A>> diff --git a/node_modules/fp-ts/es6/TaskThese.js b/node_modules/fp-ts/es6/TaskThese.js new file mode 100644 index 0000000..1724d73 --- /dev/null +++ b/node_modules/fp-ts/es6/TaskThese.js @@ -0,0 +1,457 @@ +import { getApplySemigroup } from './Apply'; +import { fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither'; +import { fromIOK as fromIOK_ } from './FromIO'; +import { fromTaskK as fromTaskK_ } from './FromTask'; +import { fromTheseK as fromTheseK_ } from './FromThese'; +import { flow, pipe, SK } from './function'; +import { flap as flap_ } from './Functor'; +import * as _ from './internal'; +import * as T from './Task'; +import * as TH from './These'; +import * as TT from './TheseT'; +/** + * @category constructors + * @since 2.4.0 + */ +export var left = /*#__PURE__*/ TT.left(T.Pointed); +/** + * @category constructors + * @since 2.4.0 + */ +export var right = /*#__PURE__*/ TT.right(T.Pointed); +/** + * @category constructors + * @since 2.4.0 + */ +export var both = /*#__PURE__*/ TT.both(T.Pointed); +/** + * @category constructors + * @since 2.4.0 + */ +export var rightTask = /*#__PURE__*/ TT.rightF(T.Functor); +/** + * @category constructors + * @since 2.4.0 + */ +export var leftTask = /*#__PURE__*/ TT.leftF(T.Functor); +/** + * @category constructors + * @since 2.4.0 + */ +export var rightIO = /*#__PURE__*/ flow(T.fromIO, rightTask); +/** + * @category constructors + * @since 2.4.0 + */ +export var leftIO = /*#__PURE__*/ flow(T.fromIO, leftTask); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.10.0 + */ +export var fromEither = T.of; +/** + * @category conversions + * @since 2.11.0 + */ +export var fromThese = T.of; +/** + * @category conversions + * @since 2.7.0 + */ +export var fromIO = rightIO; +/** + * @category conversions + * @since 2.4.0 + */ +export var fromIOEither = T.fromIO; +/** + * @category conversions + * @since 2.7.0 + */ +export var fromTask = rightTask; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = /*#__PURE__*/ TT.match(T.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchE = /*#__PURE__*/ TT.matchE(T.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.4.0 + */ +export var fold = matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchEW = fold; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchEW; +/** + * @since 2.4.0 + */ +export var swap = /*#__PURE__*/ TT.swap(T.Functor); +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.4.0 + */ +export var map = /*#__PURE__*/ TT.map(T.Functor); +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.4.0 + */ +export var bimap = +/*#__PURE__*/ TT.bimap(T.Functor); +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.4.0 + */ +export var mapLeft = /*#__PURE__*/ TT.mapLeft(T.Functor); +/** + * @category constructors + * @since 2.7.0 + */ +export var of = right; +/** + * @category type lambdas + * @since 2.4.0 + */ +export var URI = 'TaskThese'; +/** + * @category instances + * @since 2.10.0 + */ +export var getApply = function (A, S) { + var ap = TT.ap(A, S); + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return pipe(fab, ap(fa)); } + }; +}; +/** + * @category instances + * @since 2.7.0 + */ +export function getApplicative(A, S) { + var ap = getApply(A, S).ap; + return { + URI: URI, + _E: undefined, + map: _map, + ap: ap, + of: of + }; +} +/** + * @category instances + * @since 2.10.0 + */ +export function getChain(S) { + var A = getApply(T.ApplicativePar, S); + var chain = TT.chain(T.Monad, S); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: function (ma, f) { return pipe(ma, chain(f)); } + }; +} +/** + * @category instances + * @since 2.4.0 + */ +export function getMonad(S) { + var A = getApplicative(T.ApplicativePar, S); + var C = getChain(S); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + of: of, + chain: C.chain, + fromIO: fromIO, + fromTask: fromTask + }; +} +/** + * @category instances + * @since 2.10.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: fromEither +}; +/** + * @category conversions + * @since 2.10.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromOptionK = +/*#__PURE__*/ fromOptionK_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category instances + * @since 2.11.0 + */ +export var FromThese = { + URI: URI, + fromThese: fromThese +}; +/** + * @category lifting + * @since 2.11.0 + */ +export var fromTheseK = /*#__PURE__*/ fromTheseK_(FromThese); +/** + * @category instances + * @since 2.10.0 + */ +export var FromIO = { + URI: URI, + fromIO: fromIO +}; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromIOK = /*#__PURE__*/ fromIOK_(FromIO); +/** + * @category instances + * @since 2.10.0 + */ +export var FromTask = { + URI: URI, + fromIO: fromIO, + fromTask: fromTask +}; +/** + * @category lifting + * @since 2.10.0 + */ +export var fromTaskK = /*#__PURE__*/ fromTaskK_(FromTask); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +export var toTuple2 = +/*#__PURE__*/ TT.toTuple2(T.Functor); +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (S) { + var g = TH.traverseReadonlyNonEmptyArrayWithIndex(S); + return function (f) { return flow(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(g(SK))); }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (S) { + return function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(S)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; + }; +}; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndexSeq = function (S) { + return function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (ebs) { + return TH.isLeft(ebs) + ? acc + : f(i + 1, a)().then(function (eb) { + if (TH.isLeft(eb)) { + return eb; + } + if (TH.isBoth(eb)) { + var right_1 = ebs.right; + right_1.push(eb.right); + return TH.isBoth(ebs) ? TH.both(S.concat(ebs.left, eb.left), right_1) : TH.both(eb.left, right_1); + } + ebs.right.push(eb.right); + return ebs; + }); + }); + }, f(0, _.head(as))().then(TH.map(_.singleton))); + }; + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndexSeq = function (S) { + return function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndexSeq(S)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var functorTaskThese = { + URI: URI, + map: _map +}; +/** + * Use [`Bifunctor`](#bifunctor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export var bifunctorTaskThese = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export var toTuple = function (e, a) { + return toTuple2(function () { return e; }, function () { return a; }); +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TT.Functor` instead of `TT.taskThese` + * (where `TT` is from `import TT from 'fp-ts/TaskThese'`) + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export var taskThese = { + URI: URI, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export var getSemigroup = function (SE, SA) { + return getApplySemigroup(T.ApplySeq)(TH.getSemigroup(SE, SA)); +}; diff --git a/node_modules/fp-ts/es6/These.d.ts b/node_modules/fp-ts/es6/These.d.ts new file mode 100644 index 0000000..2021400 --- /dev/null +++ b/node_modules/fp-ts/es6/These.d.ts @@ -0,0 +1,468 @@ +/** + * A data structure providing "inclusive-or" as opposed to `Either`'s "exclusive-or". + * + * If you interpret `Either<E, A>` as suggesting the computation may either fail or succeed (exclusively), then + * `These<E, A>` may fail, succeed, or do both at the same time. + * + * There are a few ways to interpret the both case: + * + * - You can think of a computation that has a non-fatal error. + * - You can think of a computation that went as far as it could before erroring. + * - You can think of a computation that keeps track of errors as it completes. + * + * Another way you can think of `These<E, A>` is saying that we want to handle `E` kind of data, `A` kind of data, or + * both `E` and `A` kind of data at the same time. This is particularly useful when it comes to displaying UI's. + * + * (description adapted from https://package.elm-lang.org/packages/joneshf/elm-these) + * + * Adapted from https://github.com/purescript-contrib/purescript-these + * + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { Either, Left, Right } from './Either' +import { Eq } from './Eq' +import { Foldable2 } from './Foldable' +import { FromEither2 } from './FromEither' +import { FromThese2 } from './FromThese' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse2, Traversable2 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export interface Both<E, A> { + readonly _tag: 'Both' + readonly left: E + readonly right: A +} +/** + * @category model + * @since 2.0.0 + */ +export type These<E, A> = Either<E, A> | Both<E, A> +/** + * Returns `true` if the these is an instance of `Left`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export declare const isLeft: <E>(fa: These<E, unknown>) => fa is Left<E> +/** + * Returns `true` if the these is an instance of `Right`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export declare const isRight: <A>(fa: These<unknown, A>) => fa is Right<A> +/** + * Returns `true` if the these is an instance of `Both`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export declare function isBoth<E, A>(fa: These<E, A>): fa is Both<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function left<E = never, A = never>(left: E): These<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function right<E = never, A = never>(right: A): These<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function both<E, A>(left: E, right: A): These<E, A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C, D>( + onLeft: (e: E) => B, + onRight: (a: A) => C, + onBoth: (e: E, a: A) => D +) => (fa: These<E, A>) => B | C | D +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C, D>( + onLeft: (e: E) => B, + onRight: (a: A) => C, + onBoth: (e: E, a: A) => D +) => (fa: These<E, A>) => B | C | D +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, A, B>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (fa: These<E, A>) => B +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (fa: These<E, A>) => B +/** + * @since 2.4.0 + */ +export declare const swap: <E, A>(fa: These<E, A>) => These<A, E> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getShow<E, A>(SE: Show<E>, SA: Show<A>): Show<These<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getEq<E, A>(EE: Eq<E>, EA: Eq<A>): Eq<These<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getSemigroup<E, A>(SE: Semigroup<E>, SA: Semigroup<A>): Semigroup<These<E, A>> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApply: <E>(S: Semigroup<E>) => Apply2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare function getApplicative<E>(S: Semigroup<E>): Applicative2C<URI, E> +/** + * @category instances + * @since 2.10.0 + */ +export declare function getChain<E>(S: Semigroup<E>): Chain2C<URI, E> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getMonad<E>(S: Semigroup<E>): Monad2C<URI, E> & MonadThrow2C<URI, E> +/** + * Returns an `E` value if possible + * + * @example + * import { getLeft, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(both('a', 1)), some('a')) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getLeft<E, A>(fa: These<E, A>): Option<E> +/** + * Returns an `A` value if possible + * + * @example + * import { getRight, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRight(left('a')), none) + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(both('a', 1)), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getRight<E, A>(fa: These<E, A>): Option<A> +/** + * @example + * import { leftOrBoth, left, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(leftOrBoth('a')(none), left('a')) + * assert.deepStrictEqual(leftOrBoth('a')(some(1)), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +export declare function leftOrBoth<E>(e: E): <A>(ma: Option<A>) => These<E, A> +/** + * @example + * import { rightOrBoth, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(rightOrBoth(1)(none), right(1)) + * assert.deepStrictEqual(rightOrBoth(1)(some('a')), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +export declare function rightOrBoth<A>(a: A): <E>(me: Option<E>) => These<E, A> +/** + * Returns the `E` value if and only if the value is constructed with `Left` + * + * @example + * import { getLeftOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeftOnly(left('a')), some('a')) + * assert.deepStrictEqual(getLeftOnly(right(1)), none) + * assert.deepStrictEqual(getLeftOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getLeftOnly<E, A>(fa: These<E, A>): Option<E> +/** + * Returns the `A` value if and only if the value is constructed with `Right` + * + * @example + * import { getRightOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRightOnly(left('a')), none) + * assert.deepStrictEqual(getRightOnly(right(1)), some(1)) + * assert.deepStrictEqual(getRightOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getRightOnly<E, A>(fa: These<E, A>): Option<A> +/** + * Takes a pair of `Option`s and attempts to create a `These` from them + * + * @example + * import { fromOptions, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromOptions(none, none), none) + * assert.deepStrictEqual(fromOptions(some('a'), none), some(left('a'))) + * assert.deepStrictEqual(fromOptions(none, some(1)), some(right(1))) + * assert.deepStrictEqual(fromOptions(some('a'), some(1)), some(both('a', 1))) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromOptions: <E, A>(fe: Option<E>, fa: Option<A>) => Option<These<E, A>> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: These<E, A>) => These<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: These<E, A>) => These<G, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: These<E, A>) => These<E, B> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: These<E, A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: These<E, A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: These<E, A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <E = never, A = never>(right: A) => These<E, A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'These' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: These<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'These', E, (a: A) => B>) => import('./HKT').Kind2<'These', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromThese: FromThese2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromPredicate: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => These<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => These<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => These<E, A> +} +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => These<E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => These<E, B> +/** + * @since 2.11.0 + */ +export declare const elem: <A>(E: Eq<A>) => (a: A) => <E>(ma: These<E, A>) => boolean +/** + * @since 2.11.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: These<unknown, A>) => boolean +/** + * @example + * import { toTuple2, left, right, both } from 'fp-ts/These' + * + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(left('b')), ['b', 1]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(right(2)), ['a', 2]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(both('b', 2)), ['b', 2]) + * + * @category conversions + * @since 2.10.0 + */ +export declare const toTuple2: <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: These<E, A>) => readonly [E, A] +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const toTuple: <E, A>(e: E, a: A) => (fa: These<E, A>) => [E, A] +/** + * @since 2.11.0 + */ +export declare const ApT: These<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>( + f: (index: number, a: A) => These<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => These<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>(f: (index: number, a: A) => These<E, B>) => (as: ReadonlyArray<A>) => These<E, ReadonlyArray<B>> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.these` + * (where `T` is from `import T from 'fp-ts/These'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const these: Functor2<URI> & Bifunctor2<URI> & Foldable2<URI> & Traversable2<URI> diff --git a/node_modules/fp-ts/es6/These.js b/node_modules/fp-ts/es6/These.js new file mode 100644 index 0000000..c50d3fe --- /dev/null +++ b/node_modules/fp-ts/es6/These.js @@ -0,0 +1,663 @@ +import { fromEquals } from './Eq'; +import { fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither'; +import { identity, pipe } from './function'; +import { flap as flap_ } from './Functor'; +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Returns `true` if the these is an instance of `Left`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export var isLeft = function (fa) { return fa._tag === 'Left'; }; +/** + * Returns `true` if the these is an instance of `Right`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export var isRight = function (fa) { return fa._tag === 'Right'; }; +/** + * Returns `true` if the these is an instance of `Both`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export function isBoth(fa) { + return fa._tag === 'Both'; +} +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +export function left(left) { + return { _tag: 'Left', left: left }; +} +/** + * @category constructors + * @since 2.0.0 + */ +export function right(right) { + return { _tag: 'Right', right: right }; +} +/** + * @category constructors + * @since 2.0.0 + */ +export function both(left, right) { + return { _tag: 'Both', left: left, right: right }; +} +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = function (onLeft, onRight, onBoth) { + return function (fa) { + switch (fa._tag) { + case 'Left': + return onLeft(fa.left); + case 'Right': + return onRight(fa.right); + case 'Both': + return onBoth(fa.left, fa.right); + } + }; +}; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchW; +/** + * @category pattern matching + * @since 2.10.0 + */ +export var match = matchW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export var fold = match; +/** + * @since 2.4.0 + */ +export var swap = match(right, left, function (e, a) { return both(a, e); }); +/** + * @category instances + * @since 2.0.0 + */ +export function getShow(SE, SA) { + return { + show: match(function (l) { return "left(".concat(SE.show(l), ")"); }, function (a) { return "right(".concat(SA.show(a), ")"); }, function (l, a) { return "both(".concat(SE.show(l), ", ").concat(SA.show(a), ")"); }) + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getEq(EE, EA) { + return fromEquals(function (x, y) { + return isLeft(x) + ? isLeft(y) && EE.equals(x.left, y.left) + : isRight(x) + ? isRight(y) && EA.equals(x.right, y.right) + : isBoth(y) && EE.equals(x.left, y.left) && EA.equals(x.right, y.right); + }); +} +/** + * @category instances + * @since 2.0.0 + */ +export function getSemigroup(SE, SA) { + return { + concat: function (x, y) { + return isLeft(x) + ? isLeft(y) + ? left(SE.concat(x.left, y.left)) + : isRight(y) + ? both(x.left, y.right) + : both(SE.concat(x.left, y.left), y.right) + : isRight(x) + ? isLeft(y) + ? both(y.left, x.right) + : isRight(y) + ? right(SA.concat(x.right, y.right)) + : both(y.left, SA.concat(x.right, y.right)) + : isLeft(y) + ? both(SE.concat(x.left, y.left), x.right) + : isRight(y) + ? both(x.left, SA.concat(x.right, y.right)) + : both(SE.concat(x.left, y.left), SA.concat(x.right, y.right)); + } + }; +} +/** + * @category instances + * @since 2.10.0 + */ +export var getApply = function (S) { return ({ + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { + return isLeft(fab) + ? isLeft(fa) + ? left(S.concat(fab.left, fa.left)) + : isRight(fa) + ? left(fab.left) + : left(S.concat(fab.left, fa.left)) + : isRight(fab) + ? isLeft(fa) + ? left(fa.left) + : isRight(fa) + ? right(fab.right(fa.right)) + : both(fa.left, fab.right(fa.right)) + : isLeft(fa) + ? left(S.concat(fab.left, fa.left)) + : isRight(fa) + ? both(fab.left, fab.right(fa.right)) + : both(S.concat(fab.left, fa.left), fab.right(fa.right)); + } +}); }; +/** + * @category instances + * @since 2.7.0 + */ +export function getApplicative(S) { + var A = getApply(S); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + of: of + }; +} +/** + * @category instances + * @since 2.10.0 + */ +export function getChain(S) { + var A = getApply(S); + var chain = function (ma, f) { + if (isLeft(ma)) { + return ma; + } + if (isRight(ma)) { + return f(ma.right); + } + var fb = f(ma.right); + return isLeft(fb) + ? left(S.concat(ma.left, fb.left)) + : isRight(fb) + ? both(ma.left, fb.right) + : both(S.concat(ma.left, fb.left), fb.right); + }; + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: chain + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getMonad(S) { + var C = getChain(S); + return { + URI: URI, + _E: undefined, + map: _map, + of: of, + ap: C.ap, + chain: C.chain, + throwError: left + }; +} +/** + * Returns an `E` value if possible + * + * @example + * import { getLeft, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(both('a', 1)), some('a')) + * + * @category conversions + * @since 2.0.0 + */ +export function getLeft(fa) { + return isLeft(fa) ? _.some(fa.left) : isRight(fa) ? _.none : _.some(fa.left); +} +/** + * Returns an `A` value if possible + * + * @example + * import { getRight, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRight(left('a')), none) + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(both('a', 1)), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +export function getRight(fa) { + return isLeft(fa) ? _.none : isRight(fa) ? _.some(fa.right) : _.some(fa.right); +} +// TODO: make lazy in v3 +/** + * @example + * import { leftOrBoth, left, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(leftOrBoth('a')(none), left('a')) + * assert.deepStrictEqual(leftOrBoth('a')(some(1)), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +export function leftOrBoth(e) { + return function (ma) { return (_.isNone(ma) ? left(e) : both(e, ma.value)); }; +} +// TODO: make lazy in v3 +/** + * @example + * import { rightOrBoth, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(rightOrBoth(1)(none), right(1)) + * assert.deepStrictEqual(rightOrBoth(1)(some('a')), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +export function rightOrBoth(a) { + return function (me) { return (_.isNone(me) ? right(a) : both(me.value, a)); }; +} +/** + * Returns the `E` value if and only if the value is constructed with `Left` + * + * @example + * import { getLeftOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeftOnly(left('a')), some('a')) + * assert.deepStrictEqual(getLeftOnly(right(1)), none) + * assert.deepStrictEqual(getLeftOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +export function getLeftOnly(fa) { + return isLeft(fa) ? _.some(fa.left) : _.none; +} +/** + * Returns the `A` value if and only if the value is constructed with `Right` + * + * @example + * import { getRightOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRightOnly(left('a')), none) + * assert.deepStrictEqual(getRightOnly(right(1)), some(1)) + * assert.deepStrictEqual(getRightOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +export function getRightOnly(fa) { + return isRight(fa) ? _.some(fa.right) : _.none; +} +/** + * Takes a pair of `Option`s and attempts to create a `These` from them + * + * @example + * import { fromOptions, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromOptions(none, none), none) + * assert.deepStrictEqual(fromOptions(some('a'), none), some(left('a'))) + * assert.deepStrictEqual(fromOptions(none, some(1)), some(right(1))) + * assert.deepStrictEqual(fromOptions(some('a'), some(1)), some(both('a', 1))) + * + * @category conversions + * @since 2.0.0 + */ +export var fromOptions = function (fe, fa) { + return _.isNone(fe) + ? _.isNone(fa) + ? _.none + : _.some(right(fa.value)) + : _.isNone(fa) + ? _.some(left(fe.value)) + : _.some(both(fe.value, fa.value)); +}; +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export var bimap = function (f, g) { return function (fa) { + return isLeft(fa) ? left(f(fa.left)) : isRight(fa) ? right(g(fa.right)) : both(f(fa.left), g(fa.right)); +}; }; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +export var mapLeft = function (f) { return function (fa) { + return isLeft(fa) ? left(f(fa.left)) : isBoth(fa) ? both(f(fa.left), fa.right) : fa; +}; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { + return isLeft(fa) ? fa : isRight(fa) ? right(f(fa.right)) : both(fa.left, f(fa.right)); +}; }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = function (b, f) { return function (fa) { + return isLeft(fa) ? b : f(b, fa.right); +}; }; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = function (M) { return function (f) { return function (fa) { + return isLeft(fa) ? M.empty : f(fa.right); +}; }; }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRight = function (b, f) { return function (fa) { + return isLeft(fa) ? b : f(fa.right, b); +}; }; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + return function (f) { + return function (ta) { + return isLeft(ta) ? F.of(ta) : isRight(ta) ? F.map(f(ta.right), right) : F.map(f(ta.right), function (b) { return both(ta.left, b); }); + }; + }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (ta) { + return isLeft(ta) ? F.of(ta) : isRight(ta) ? F.map(ta.right, right) : F.map(ta.right, function (b) { return both(ta.left, b); }); + }; +}; +/** + * @category constructors + * @since 2.0.0 + */ +export var of = right; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'These'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.11.0 + */ +export var FromThese = { + URI: URI, + fromThese: identity +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.10.0 + */ +export var FromEither = { + URI: URI, + fromEither: identity +}; +/** + * @category lifting + * @since 2.13.0 + */ +export var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither); +/** + * @category conversions + * @since 2.10.0 + */ +export var fromOption = +/*#__PURE__*/ fromOption_(FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +export var fromOptionK = +/*#__PURE__*/ fromOptionK_(FromEither); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +export var elem = function (E) { + return function (a) { + return function (ma) { + return isLeft(ma) ? false : E.equals(a, ma.right); + }; + }; +}; +/** + * @since 2.11.0 + */ +export var exists = function (predicate) { + return function (ma) { + return isLeft(ma) ? false : predicate(ma.right); + }; +}; +/** + * @example + * import { toTuple2, left, right, both } from 'fp-ts/These' + * + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(left('b')), ['b', 1]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(right(2)), ['a', 2]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(both('b', 2)), ['b', 2]) + * + * @category conversions + * @since 2.10.0 + */ +export var toTuple2 = function (e, a) { + return function (fa) { + return isLeft(fa) ? [fa.left, a()] : isRight(fa) ? [e(), fa.right] : [fa.left, fa.right]; + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var toTuple = function (e, a) { + return toTuple2(function () { return e; }, function () { return a; }); +}; +/** + * @since 2.11.0 + */ +export var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyNonEmptyArrayWithIndex = function (S) { + return function (f) { + return function (as) { + var e = _.none; + var t = f(0, _.head(as)); + if (isLeft(t)) { + return t; + } + if (isBoth(t)) { + e = _.some(t.left); + } + var out = [t.right]; + for (var i = 1; i < as.length; i++) { + var t_1 = f(i, as[i]); + if (isLeft(t_1)) { + return t_1; + } + if (isBoth(t_1)) { + e = _.isNone(e) ? _.some(t_1.left) : _.some(S.concat(e.value, t_1.left)); + } + out.push(t_1.right); + } + return _.isNone(e) ? right(out) : both(e.value, out); + }; + }; +}; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +export var traverseReadonlyArrayWithIndex = function (S) { + return function (f) { + var g = traverseReadonlyNonEmptyArrayWithIndex(S)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); }; + }; +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.these` + * (where `T` is from `import T from 'fp-ts/These'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var these = { + URI: URI, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; diff --git a/node_modules/fp-ts/es6/TheseT.d.ts b/node_modules/fp-ts/es6/TheseT.d.ts new file mode 100644 index 0000000..a67a073 --- /dev/null +++ b/node_modules/fp-ts/es6/TheseT.d.ts @@ -0,0 +1,463 @@ +/** + * @since 2.4.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' +import { Semigroup } from './Semigroup' +import * as T from './These' +import These = T.These +/** + * @since 2.10.0 + */ +export declare function right<F extends URIS3>( + F: Pointed3<F> +): <A, R, FE, E = never>(a: A) => Kind3<F, R, FE, These<E, A>> +export declare function right<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <A, R, E = never>(a: A) => Kind3<F, R, FE, These<E, A>> +export declare function right<F extends URIS2>(F: Pointed2<F>): <A, FE, E = never>(a: A) => Kind2<F, FE, These<E, A>> +export declare function right<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <A, E = never>(a: A) => Kind2<F, FE, These<E, A>> +export declare function right<F extends URIS>(F: Pointed1<F>): <A, E = never>(a: A) => Kind<F, These<E, A>> +export declare function right<F>(F: Pointed<F>): <A, E = never>(a: A) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function left<F extends URIS3>( + F: Pointed3<F> +): <E, R, FE, A = never>(e: E) => Kind3<F, R, FE, These<E, A>> +export declare function left<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <E, R, A = never>(e: E) => Kind3<F, R, FE, These<E, A>> +export declare function left<F extends URIS2>(F: Pointed2<F>): <E, FE, A = never>(e: E) => Kind2<F, FE, These<E, A>> +export declare function left<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <E, A = never>(e: E) => Kind2<F, FE, These<E, A>> +export declare function left<F extends URIS>(F: Pointed1<F>): <E, A = never>(e: E) => Kind<F, These<E, A>> +export declare function left<F>(F: Pointed<F>): <E, A = never>(e: E) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function both<F extends URIS3>(F: Pointed3<F>): <E, A, S, R>(e: E, a: A) => Kind3<F, S, R, These<E, A>> +export declare function both<F extends URIS3, R>(F: Pointed3C<F, R>): <E, A>(e: E, a: A) => Kind3<F, R, R, These<E, A>> +export declare function both<F extends URIS2>(F: Pointed2<F>): <E, A, R>(e: E, a: A) => Kind2<F, R, These<E, A>> +export declare function both<F extends URIS2, R>(F: Pointed2C<F, R>): <E, A>(e: E, a: A) => Kind2<F, R, These<E, A>> +export declare function both<F extends URIS>(F: Pointed1<F>): <E, A>(e: E, a: A) => Kind<F, These<E, A>> +export declare function both<F>(F: Pointed<F>): <E, A = never>(e: E, a: A) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function rightF<F extends URIS3>( + F: Functor3<F> +): <R, FE, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, These<E, A>> +export declare function rightF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, These<E, A>> +export declare function rightF<F extends URIS2>( + F: Functor2<F> +): <FE, A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, These<E, A>> +export declare function rightF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, These<E, A>> +export declare function rightF<F extends URIS>(F: Functor1<F>): <A, E = never>(fa: Kind<F, A>) => Kind<F, These<E, A>> +export declare function rightF<F>(F: Functor<F>): <A, E = never>(fa: HKT<F, A>) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function leftF<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, These<E, A>> +export declare function leftF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, These<E, A>> +export declare function leftF<F extends URIS2>( + F: Functor2<F> +): <FE, E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, These<E, A>> +export declare function leftF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, These<E, A>> +export declare function leftF<F extends URIS>(F: Functor1<F>): <E, A = never>(fe: Kind<F, E>) => Kind<F, These<E, A>> +export declare function leftF<F>(F: Functor<F>): <E, A = never>(fe: HKT<F, E>) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, FE, E>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<E, B>> +export declare function map<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<E, B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <FE, E>(fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<E, B>> +export declare function map<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<E, B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind<F, These<E, A>>) => Kind<F, These<E, B>> +export declare function map<F>( + F: Functor<F> +): <A, B>(f: (a: A) => B) => <E>(fa: HKT<F, These<E, A>>) => HKT<F, These<E, B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS3, E>( + F: Apply3<F>, + S: Semigroup<E> +): <R, FE, A>( + fa: Kind3<F, R, FE, These<E, A>> +) => <B>(fab: Kind3<F, R, FE, These<E, (a: A) => B>>) => Kind3<F, R, FE, These<E, B>> +export declare function ap<F extends URIS3, FE, E>( + F: Apply3C<F, FE>, + S: Semigroup<E> +): <R, A>( + fa: Kind3<F, R, FE, These<E, A>> +) => <B>(fab: Kind3<F, R, FE, These<E, (a: A) => B>>) => Kind3<F, R, FE, These<E, B>> +export declare function ap<F extends URIS2, E>( + F: Apply2<F>, + S: Semigroup<E> +): <FE, A>(fa: Kind2<F, FE, These<E, A>>) => <B>(fab: Kind2<F, FE, These<E, (a: A) => B>>) => Kind2<F, FE, These<E, B>> +export declare function ap<F extends URIS2, FE, E>( + F: Apply2C<F, FE>, + S: Semigroup<E> +): <A>(fa: Kind2<F, FE, These<E, A>>) => <B>(fab: Kind2<F, FE, These<E, (a: A) => B>>) => Kind2<F, FE, These<E, B>> +export declare function ap<F extends URIS, E>( + F: Apply1<F>, + S: Semigroup<E> +): <A>(fa: Kind<F, These<E, A>>) => <B>(fab: Kind<F, These<E, (a: A) => B>>) => Kind<F, These<E, B>> +export declare function ap<F, E>( + F: Apply<F>, + S: Semigroup<E> +): <A>(fa: HKT<F, These<E, A>>) => <B>(fab: HKT<F, These<E, (a: A) => B>>) => HKT<F, These<E, B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS3, E>( + M: Monad3<M>, + S: Semigroup<E> +): <A, R, ME, B>( + f: (a: A) => Kind3<M, R, ME, These<E, B>> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, These<E, B>> +export declare function chain<M extends URIS3, ME, E>( + M: Monad3C<M, ME>, + S: Semigroup<E> +): <A, R, B>( + f: (a: A) => Kind3<M, R, ME, These<E, B>> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, These<E, B>> +export declare function chain<M extends URIS2, E>( + M: Monad2<M>, + S: Semigroup<E> +): <A, ME, B>(f: (a: A) => Kind2<M, ME, These<E, B>>) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, These<E, B>> +export declare function chain<M extends URIS2, ME, E>( + M: Monad2C<M, ME>, + S: Semigroup<E> +): <A, B>(f: (a: A) => Kind2<M, ME, These<E, B>>) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, These<E, B>> +export declare function chain<M extends URIS, E>( + M: Monad1<M>, + S: Semigroup<E> +): <A, B>(f: (a: A) => Kind<M, These<E, B>>) => (ma: Kind<M, These<E, A>>) => Kind<M, These<E, B>> +export declare function chain<M, E>( + M: Monad<M>, + S: Semigroup<E> +): <A, B>(f: (a: A) => HKT<M, These<E, B>>) => (ma: HKT<M, These<E, A>>) => HKT<M, These<E, B>> +/** + * @since 2.10.0 + */ +export declare function bimap<F extends URIS3>( + F: Functor3<F> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R, FE>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, B>> +export declare function bimap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, B>> +export declare function bimap<F extends URIS2>( + F: Functor2<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <FE>(fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, B>> +export declare function bimap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, B>> +export declare function bimap<F extends URIS>( + F: Functor1<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind<F, These<E, A>>) => Kind<F, These<G, B>> +export declare function bimap<F>( + F: Functor<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: HKT<F, These<E, A>>) => HKT<F, These<G, B>> +/** + * @since 2.10.0 + */ +export declare function mapLeft<F extends URIS3>( + F: Functor3<F> +): <E, G>(f: (e: E) => G) => <R, FE, A>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, A>> +export declare function mapLeft<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G>(f: (e: E) => G) => <R, A>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, A>> +export declare function mapLeft<F extends URIS2>( + F: Functor2<F> +): <E, G>(f: (e: E) => G) => <FE, A>(fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, A>> +export declare function mapLeft<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, A>> +export declare function mapLeft<F extends URIS>( + F: Functor1<F> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind<F, These<E, A>>) => Kind<F, These<G, A>> +export declare function mapLeft<F>( + F: Functor<F> +): <E, G>(f: (e: E) => G) => <A>(fea: HKT<F, These<E, A>>) => HKT<F, These<G, A>> +/** + * @since 2.10.0 + */ +export declare function match<F extends URIS3>( + F: Functor3<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => <S, R>(ma: Kind3<F, S, R, These<E, A>>) => Kind3<F, S, R, B> +export declare function match<F extends URIS3, R>( + F: Functor3C<F, R> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => <S>(ma: Kind3<F, S, R, These<E, A>>) => Kind3<F, S, R, B> +export declare function match<F extends URIS2>( + F: Functor2<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => <R>(ma: Kind2<F, R, These<E, A>>) => Kind2<F, R, B> +export declare function match<M extends URIS2, R>( + F: Functor2C<M, R> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (ma: Kind2<M, R, These<E, A>>) => Kind2<M, R, B> +export declare function match<F extends URIS>( + F: Functor1<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (ma: Kind<F, These<E, A>>) => Kind<F, B> +export declare function match<F>( + F: Functor<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (ma: HKT<F, These<E, A>>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function matchE<M extends URIS3>( + M: Chain3<M> +): <E, R, ME, B, A>( + onLeft: (e: E) => Kind3<M, R, ME, B>, + onRight: (a: A) => Kind3<M, R, ME, B>, + onBoth: (e: E, a: A) => Kind3<M, R, ME, B> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, B> +export declare function matchE<M extends URIS3, ME>( + M: Chain3C<M, ME> +): <E, R, B, A>( + onLeft: (e: E) => Kind3<M, R, ME, B>, + onRight: (a: A) => Kind3<M, R, ME, B>, + onBoth: (e: E, a: A) => Kind3<M, R, ME, B> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, B> +export declare function matchE<M extends URIS2>( + M: Chain2<M> +): <E, ME, B, A>( + onLeft: (e: E) => Kind2<M, ME, B>, + onRight: (a: A) => Kind2<M, ME, B>, + onBoth: (e: E, a: A) => Kind2<M, ME, B> +) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, B> +export declare function matchE<M extends URIS2, ME>( + M: Chain2C<M, ME> +): <E, B, A>( + onLeft: (e: E) => Kind2<M, ME, B>, + onRight: (a: A) => Kind2<M, ME, B>, + onBoth: (e: E, a: A) => Kind2<M, ME, B> +) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, B> +export declare function matchE<M extends URIS>( + M: Chain1<M> +): <E, B, A>( + onLeft: (e: E) => Kind<M, B>, + onRight: (a: A) => Kind<M, B>, + onBoth: (e: E, a: A) => Kind<M, B> +) => (ma: Kind<M, These<E, A>>) => Kind<M, B> +export declare function matchE<M>( + M: Chain<M> +): <E, B, A>( + onLeft: (e: E) => HKT<M, B>, + onRight: (a: A) => HKT<M, B>, + onBoth: (e: E, a: A) => HKT<M, B> +) => (ma: HKT<M, These<E, A>>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function swap<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A>(ma: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<A, E>> +export declare function swap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A>(ma: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<A, E>> +export declare function swap<F extends URIS2>( + F: Functor2<F> +): <FE, E, A>(ma: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<A, E>> +export declare function swap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(ma: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<A, E>> +export declare function swap<F extends URIS>(F: Functor1<F>): <E, A>(ma: Kind<F, These<E, A>>) => Kind<F, These<A, E>> +export declare function swap<F>(F: Functor<F>): <E, A>(ma: HKT<F, These<E, A>>) => HKT<F, These<A, E>> +/** + * @since 2.10.0 + */ +export declare function toTuple2<F extends URIS3>( + F: Functor3<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => <R, FE>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => <R>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS2>( + F: Functor2<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => <FE>(fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS>( + F: Functor1<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: Kind<F, These<E, A>>) => Kind<F, readonly [E, A]> +export declare function toTuple2<F>( + F: Functor<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: HKT<F, These<E, A>>) => HKT<F, readonly [E, A]> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseT<M, E, A> extends HKT<M, These<E, A>> {} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseM<M> { + readonly map: <E, A, B>(fa: TheseT<M, E, A>, f: (a: A) => B) => TheseT<M, E, B> + readonly bimap: <E, A, N, B>(fa: TheseT<M, E, A>, f: (e: E) => N, g: (a: A) => B) => TheseT<M, N, B> + readonly mapLeft: <E, A, N>(fa: TheseT<M, E, A>, f: (e: E) => N) => TheseT<M, N, A> + readonly fold: <E, A, R>( + fa: TheseT<M, E, A>, + onLeft: (e: E) => HKT<M, R>, + onRight: (a: A) => HKT<M, R>, + onBoth: (e: E, a: A) => HKT<M, R> + ) => HKT<M, R> + readonly swap: <E, A>(fa: TheseT<M, E, A>) => TheseT<M, A, E> + readonly rightM: <E, A>(ma: HKT<M, A>) => TheseT<M, E, A> + readonly leftM: <E, A>(me: HKT<M, E>) => TheseT<M, E, A> + readonly left: <E, A>(e: E) => TheseT<M, E, A> + readonly right: <E, A>(a: A) => TheseT<M, E, A> + readonly both: <E, A>(e: E, a: A) => TheseT<M, E, A> + readonly toTuple: <E, A>(fa: TheseT<M, E, A>, e: E, a: A) => HKT<M, [E, A]> + readonly getMonad: <E>(S: Semigroup<E>) => { + readonly _E: E + readonly map: <A, B>(ma: TheseT<M, E, A>, f: (a: A) => B) => TheseT<M, E, B> + readonly of: <A>(a: A) => TheseT<M, E, A> + readonly ap: <A, B>(mab: TheseT<M, E, (a: A) => B>, ma: TheseT<M, E, A>) => TheseT<M, E, B> + readonly chain: <A, B>(ma: TheseT<M, E, A>, f: (a: A) => TheseT<M, E, B>) => TheseT<M, E, B> + } +} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export type TheseT1<M extends URIS, E, A> = Kind<M, These<E, A>> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseM1<M extends URIS> { + readonly map: <E, A, B>(fa: TheseT1<M, E, A>, f: (a: A) => B) => TheseT1<M, E, B> + readonly bimap: <E, A, N, B>(fa: TheseT1<M, E, A>, f: (e: E) => N, g: (a: A) => B) => TheseT1<M, N, B> + readonly mapLeft: <E, A, N>(fa: TheseT1<M, E, A>, f: (e: E) => N) => TheseT1<M, N, A> + readonly fold: <E, A, R>( + fa: TheseT1<M, E, A>, + onLeft: (e: E) => Kind<M, R>, + onRight: (a: A) => Kind<M, R>, + onBoth: (e: E, a: A) => Kind<M, R> + ) => Kind<M, R> + readonly swap: <E, A>(fa: TheseT1<M, E, A>) => TheseT1<M, A, E> + readonly rightM: <E, A>(ma: Kind<M, A>) => TheseT1<M, E, A> + readonly leftM: <E, A>(me: Kind<M, E>) => TheseT1<M, E, A> + readonly left: <E, A>(e: E) => TheseT1<M, E, A> + readonly right: <E, A>(a: A) => TheseT1<M, E, A> + readonly both: <E, A>(e: E, a: A) => TheseT1<M, E, A> + readonly toTuple: <E, A>(fa: TheseT1<M, E, A>, e: E, a: A) => Kind<M, [E, A]> + readonly getMonad: <E>(S: Semigroup<E>) => { + readonly _E: E + readonly map: <A, B>(ma: TheseT1<M, E, A>, f: (a: A) => B) => TheseT1<M, E, B> + readonly of: <A>(a: A) => TheseT1<M, E, A> + readonly ap: <A, B>(mab: TheseT1<M, E, (a: A) => B>, ma: TheseT1<M, E, A>) => TheseT1<M, E, B> + readonly chain: <A, B>(ma: TheseT1<M, E, A>, f: (a: A) => TheseT1<M, E, B>) => TheseT1<M, E, B> + } +} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export type TheseT2<M extends URIS2, R, E, A> = Kind2<M, R, These<E, A>> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseM2<M extends URIS2> { + readonly map: <R, E, A, B>(fa: TheseT2<M, R, E, A>, f: (a: A) => B) => TheseT2<M, R, E, B> + readonly bimap: <R, E, A, N, B>(fa: TheseT2<M, R, E, A>, f: (e: E) => N, g: (a: A) => B) => TheseT2<M, R, N, B> + readonly mapLeft: <R, E, A, N>(fa: TheseT2<M, R, E, A>, f: (e: E) => N) => TheseT2<M, R, N, A> + readonly fold: <R, E, A, B>( + fa: TheseT2<M, R, E, A>, + onLeft: (e: E) => Kind2<M, R, B>, + onRight: (a: A) => Kind2<M, R, B>, + onBoth: (e: E, a: A) => Kind2<M, R, B> + ) => Kind2<M, R, B> + readonly swap: <R, E, A>(fa: TheseT2<M, R, E, A>) => TheseT2<M, R, A, E> + readonly rightM: <R, E, A>(ma: Kind2<M, R, A>) => TheseT2<M, R, E, A> + readonly leftM: <R, E, A>(me: Kind2<M, R, E>) => TheseT2<M, R, E, A> + readonly left: <R, E, A>(e: E) => TheseT2<M, R, E, A> + readonly right: <R, E, A>(a: A) => TheseT2<M, R, E, A> + readonly both: <R, E, A>(e: E, a: A) => TheseT2<M, R, E, A> + readonly toTuple: <R, E, A>(fa: TheseT2<M, R, E, A>, e: E, a: A) => Kind2<M, R, [E, A]> + readonly getMonad: <E>(S: Semigroup<E>) => { + readonly _E: E + readonly map: <R, A, B>(ma: TheseT2<M, R, E, A>, f: (a: A) => B) => TheseT2<M, R, E, B> + readonly of: <R, A>(a: A) => TheseT2<M, R, E, A> + readonly ap: <R, A, B>(mab: TheseT2<M, R, E, (a: A) => B>, ma: TheseT2<M, R, E, A>) => TheseT2<M, R, E, B> + readonly chain: <R, A, B>(ma: TheseT2<M, R, E, A>, f: (a: A) => TheseT2<M, R, E, B>) => TheseT2<M, R, E, B> + } +} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare function getTheseM<M extends URIS2>(M: Monad2<M>): TheseM2<M> +/** @deprecated */ +export declare function getTheseM<M extends URIS>(M: Monad1<M>): TheseM1<M> +/** @deprecated */ +export declare function getTheseM<M>(M: Monad<M>): TheseM<M> diff --git a/node_modules/fp-ts/es6/TheseT.js b/node_modules/fp-ts/es6/TheseT.js new file mode 100644 index 0000000..8737417 --- /dev/null +++ b/node_modules/fp-ts/es6/TheseT.js @@ -0,0 +1,91 @@ +/** + * @since 2.4.0 + */ +import { ap as ap_ } from './Apply'; +import { flow, pipe } from './function'; +import { map as map_ } from './Functor'; +import * as T from './These'; +export function right(F) { + return flow(T.right, F.of); +} +export function left(F) { + return flow(T.left, F.of); +} +export function both(F) { + return flow(T.both, F.of); +} +export function rightF(F) { + return function (fa) { return F.map(fa, T.right); }; +} +export function leftF(F) { + return function (fe) { return F.map(fe, T.left); }; +} +export function map(F) { + return map_(F, T.Functor); +} +export function ap(F, S) { + return ap_(F, T.getApply(S)); +} +export function chain(M, S) { + var _left = left(M); + return function (f) { return function (ma) { + return M.chain(ma, T.match(_left, f, function (e1, a) { + return M.map(f(a), T.match(function (e2) { return T.left(S.concat(e1, e2)); }, function (b) { return T.both(e1, b); }, function (e2, b) { return T.both(S.concat(e1, e2), b); })); + })); + }; }; +} +export function bimap(F) { + return function (f, g) { return function (fea) { return F.map(fea, T.bimap(f, g)); }; }; +} +export function mapLeft(F) { + return function (f) { return function (fea) { return F.map(fea, T.mapLeft(f)); }; }; +} +export function match(F) { + return function (onLeft, onRight, onBoth) { return function (ma) { return F.map(ma, T.match(onLeft, onRight, onBoth)); }; }; +} +export function matchE(M) { + return function (onLeft, onRight, onBoth) { return function (ma) { return M.chain(ma, T.match(onLeft, onRight, onBoth)); }; }; +} +export function swap(F) { + return function (ma) { return F.map(ma, T.swap); }; +} +export function toTuple2(F) { + return function (e, a) { return function (fa) { return F.map(fa, T.toTuple2(e, a)); }; }; +} +/** @deprecated */ +/* istanbul ignore next */ +export function getTheseM(M) { + var _map = map(M); + var _bimap = bimap(M); + var _mapLeft = mapLeft(M); + var _fold = matchE(M); + var _toTuple2 = toTuple2(M); + var of = right(M); + var mapT = function (fa, f) { return pipe(fa, _map(f)); }; + return { + map: mapT, + bimap: function (fea, f, g) { return pipe(fea, _bimap(f, g)); }, + mapLeft: function (fea, f) { return pipe(fea, _mapLeft(f)); }, + fold: function (fa, onLeft, onRight, onBoth) { return pipe(fa, _fold(onLeft, onRight, onBoth)); }, + swap: swap(M), + rightM: rightF(M), + leftM: leftF(M), + left: left(M), + right: right(M), + both: both(M), + toTuple: function (fa, e, a) { + return pipe(fa, _toTuple2(function () { return e; }, function () { return a; })); + }, + getMonad: function (S) { + var _ap = ap(M, S); + var _chain = chain(M, S); + return { + _E: undefined, + map: mapT, + of: of, + ap: function (fab, fa) { return pipe(fab, _ap(fa)); }, + chain: function (ma, f) { return pipe(ma, _chain(f)); } + }; + } + }; +} diff --git a/node_modules/fp-ts/es6/Traced.d.ts b/node_modules/fp-ts/es6/Traced.d.ts new file mode 100644 index 0000000..8d3f3fa --- /dev/null +++ b/node_modules/fp-ts/es6/Traced.d.ts @@ -0,0 +1,85 @@ +/** + * @since 2.0.0 + */ +import { Comonad2C } from './Comonad' +import { Functor2 } from './Functor' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Traced<P, A> { + (p: P): A +} +/** + * Extracts a value at a relative position which depends on the current value. + * + * @since 2.0.0 + */ +export declare function tracks<P, A>(M: Monoid<P>, f: (a: A) => P): (wa: Traced<P, A>) => A +/** + * Get the current position + * + * @since 2.0.0 + */ +export declare function listen<P, A>(wa: Traced<P, A>): Traced<P, [A, P]> +/** + * Get a value which depends on the current position + * + * @since 2.0.0 + */ +export declare function listens<P, B>(f: (p: P) => B): <A>(wa: Traced<P, A>) => Traced<P, [A, B]> +/** + * Apply a function to the current position + * + * @since 2.0.0 + */ +export declare function censor<P>(f: (p: P) => P): <A>(wa: Traced<P, A>) => Traced<P, A> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getComonad<P>(monoid: Monoid<P>): Comonad2C<URI, P> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Traced<E, A>) => Traced<E, B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Traced' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Traced<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Traced', E, (a: A) => B>) => import('./HKT').Kind2<'Traced', E, B> +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const traced: Functor2<URI> diff --git a/node_modules/fp-ts/es6/Traced.js b/node_modules/fp-ts/es6/Traced.js new file mode 100644 index 0000000..e7a4e8d --- /dev/null +++ b/node_modules/fp-ts/es6/Traced.js @@ -0,0 +1,93 @@ +import { pipe } from './function'; +import { flap as flap_ } from './Functor'; +// TODO: curry in v3 +/** + * Extracts a value at a relative position which depends on the current value. + * + * @since 2.0.0 + */ +export function tracks(M, f) { + return function (wa) { return wa(f(wa(M.empty))); }; +} +/** + * Get the current position + * + * @since 2.0.0 + */ +export function listen(wa) { + return function (e) { return [wa(e), e]; }; +} +/** + * Get a value which depends on the current position + * + * @since 2.0.0 + */ +export function listens(f) { + return function (wa) { return function (e) { return [wa(e), f(e)]; }; }; +} +/** + * Apply a function to the current position + * + * @since 2.0.0 + */ +export function censor(f) { + return function (wa) { return function (e) { return wa(f(e)); }; }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getComonad(monoid) { + function extend(wa, f) { + return function (p1) { return f(function (p2) { return wa(monoid.concat(p1, p2)); }); }; + } + function extract(wa) { + return wa(monoid.empty); + } + return { + URI: URI, + _E: undefined, + map: _map, + extend: extend, + extract: extract + }; +} +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return function (p) { return f(fa(p)); }; }; }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Traced'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var traced = Functor; diff --git a/node_modules/fp-ts/es6/Traversable.d.ts b/node_modules/fp-ts/es6/Traversable.d.ts new file mode 100644 index 0000000..e78307d --- /dev/null +++ b/node_modules/fp-ts/es6/Traversable.d.ts @@ -0,0 +1,550 @@ +/** + * `Traversable` represents data structures which can be _traversed_ accumulating results and effects in some + * `Applicative` functor. + * + * - `traverse` runs an action for every element in a data structure, and accumulates the results. + * - `sequence` runs the actions _contained_ in a data structure, and accumulates the results. + * + * The `traverse` and `sequence` functions should be compatible in the following sense: + * + * - `traverse(A)(xs, f) <-> sequence(A)(A.map(xs, f))` + * - `sequence(A)(xs) <-> traverse(A)(xs, identity)` + * + * where `A` is an `Applicative` instance + * + * `Traversable` instances should also be compatible with the corresponding `Foldable` instances, in the following sense: + * + * ```ts + * import { getApplicative, make } from 'fp-ts/Const' + * + * const A = getApplicative(M) + * + * foldMap(M)(xs, f) = traverse(A)(xs, a => make(f(a))) + * ``` + * + * where `M` is a `Monoid` instance + * + * @since 2.0.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { + Foldable, + Foldable1, + Foldable2, + Foldable2C, + Foldable3, + FoldableComposition, + FoldableComposition11 +} from './Foldable' +import { Functor, Functor1, Functor2, Functor2C, Functor3, FunctorComposition, FunctorComposition11 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable<T> extends Functor<T>, Foldable<T> { + /** + * Runs an action for every element in a data structure and accumulates the results + */ + readonly traverse: Traverse<T> + readonly sequence: Sequence<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable1<T extends URIS> extends Functor1<T>, Foldable1<T> { + readonly traverse: Traverse1<T> + readonly sequence: Sequence1<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable2<T extends URIS2> extends Functor2<T>, Foldable2<T> { + readonly traverse: Traverse2<T> + readonly sequence: Sequence2<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable2C<T extends URIS2, TL> extends Functor2C<T, TL>, Foldable2C<T, TL> { + readonly traverse: Traverse2C<T, TL> + readonly sequence: Sequence2C<T, TL> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable3<T extends URIS3> extends Functor3<T>, Foldable3<T> { + readonly traverse: Traverse3<T> + readonly sequence: Sequence3<T> +} +/** + * @since 2.0.0 + */ +export interface Traverse<T> { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, E, B>( + ta: HKT<T, A>, + f: (a: A) => Kind4<F, S, R, E, B> + ) => Kind4<F, S, R, E, HKT<T, B>> + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: HKT<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: HKT<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>(ta: HKT<T, A>, f: (a: A) => Kind2<F, E, B>) => Kind2<F, E, HKT<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: HKT<T, A>, + f: (a: A) => Kind2<F, E, B> + ) => Kind2<F, E, HKT<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: HKT<T, A>, f: (a: A) => Kind<F, B>) => Kind<F, HKT<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: HKT<T, A>, f: (a: A) => HKT<F, B>) => HKT<F, HKT<T, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse1<T extends URIS> { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, E, B>( + ta: Kind<T, A>, + f: (a: A) => Kind4<F, S, R, E, B> + ) => Kind4<F, S, R, E, Kind<T, B>> + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: Kind<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: Kind<T, A>, + f: (a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: Kind<T, A>, + f: (a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind<T, A>, f: (a: A) => Kind<F, B>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind<T, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse2<T extends URIS2> { + <F extends URIS4>(F: Applicative4<F>): <TE, A, S, R, FE, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind4<F, S, R, FE, B> + ) => Kind4<F, S, R, FE, Kind2<T, TE, B>> + <F extends URIS3>(F: Applicative3<F>): <TE, A, R, FE, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TE, A, R, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <TE, A, FE, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <TE, A, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <E, A, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind<F, B> + ) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <E, A, B>(ta: Kind2<T, E, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse2C<T extends URIS2, E> { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, FE, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind4<F, S, R, FE, B> + ) => Kind4<F, S, R, FE, Kind2<T, E, B>> + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, E, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <A, R, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, E, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, E, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, E, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind2<T, E, A>, f: (a: A) => Kind<F, B>) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind2<T, E, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse3<T extends URIS3> { + <F extends URIS4>(F: Applicative4<F>): <TR, TE, A, S, FR, FE, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind4<F, S, FR, FE, B> + ) => Kind4<F, S, FR, FE, Kind3<T, TR, TE, B>> + <F extends URIS3>(F: Applicative3<F>): <TR, TE, A, FR, FE, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind3<F, FR, FE, B> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TR, TE, A, FR, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind3<F, FR, FE, B> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <TR, A, TE, FE, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind3<T, TR, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, TE, A, B>( + ta: Kind3<T, R, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind3<T, R, TE, B>> + <F extends URIS>(F: Applicative1<F>): <R, E, A, B>( + ta: Kind3<T, R, E, A>, + f: (a: A) => Kind<F, B> + ) => Kind<F, Kind3<T, R, E, B>> + <F>(F: Applicative<F>): <R, E, A, B>(ta: Kind3<T, R, E, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind3<T, R, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Sequence<T> { + <F extends URIS4>(F: Applicative4<F>): <S, R, E, A>(ta: HKT<T, Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, HKT<T, A>> + <F extends URIS3>(F: Applicative3<F>): <R, E, A>(ta: HKT<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, HKT<T, A>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <R, A>(ta: HKT<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, HKT<T, A>> + <F extends URIS2>(F: Applicative2<F>): <E, A>(ta: HKT<T, Kind2<F, E, A>>) => Kind2<F, E, HKT<T, A>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>(ta: HKT<T, Kind2<F, E, A>>) => Kind2<F, E, HKT<T, A>> + <F extends URIS>(F: Applicative1<F>): <A>(ta: HKT<T, Kind<F, A>>) => Kind<F, HKT<T, A>> + <F>(F: Applicative<F>): <A>(ta: HKT<T, HKT<F, A>>) => HKT<F, HKT<T, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence1<T extends URIS> { + <F extends URIS4>(F: Applicative4<F>): <S, R, E, A>( + ta: Kind<T, Kind4<F, S, R, E, A>> + ) => Kind4<F, S, R, E, Kind<T, A>> + <F extends URIS3>(F: Applicative3<F>): <R, E, A>(ta: Kind<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, Kind<T, A>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <R, A>(ta: Kind<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, Kind<T, A>> + <F extends URIS2>(F: Applicative2<F>): <E, A>(ta: Kind<T, Kind2<F, E, A>>) => Kind2<F, E, Kind<T, A>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>(ta: Kind<T, Kind2<F, E, A>>) => Kind2<F, E, Kind<T, A>> + <F extends URIS>(F: Applicative1<F>): <A>(ta: Kind<T, Kind<F, A>>) => Kind<F, Kind<T, A>> + <F>(F: Applicative<F>): <A>(ta: Kind<T, HKT<F, A>>) => HKT<F, Kind<T, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence2<T extends URIS2> { + <F extends URIS4>(F: Applicative4<F>): <TE, S, R, FE, A>( + ta: Kind2<T, TE, Kind4<F, S, R, FE, A>> + ) => Kind4<F, S, R, FE, Kind2<T, TE, A>> + <F extends URIS3>(F: Applicative3<F>): <TE, R, FE, A>( + ta: Kind2<T, TE, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, TE, A>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TE, R, A>( + ta: Kind2<T, TE, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, TE, A>> + <F extends URIS2>(F: Applicative2<F>): <TE, FE, A>(ta: Kind2<T, TE, Kind2<F, FE, A>>) => Kind2<F, FE, Kind2<T, TE, A>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <TE, A>( + ta: Kind2<T, TE, Kind2<F, FE, A>> + ) => Kind2<F, FE, Kind2<T, TE, A>> + <F extends URIS>(F: Applicative1<F>): <E, A>(ta: Kind2<T, E, Kind<F, A>>) => Kind<F, Kind2<T, E, A>> + <F>(F: Applicative<F>): <E, A>(ta: Kind2<T, E, HKT<F, A>>) => HKT<F, Kind2<T, E, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence2C<T extends URIS2, E> { + <F extends URIS4>(F: Applicative4<F>): <S, R, FE, A>( + ta: Kind2<T, E, Kind4<F, S, R, FE, A>> + ) => Kind4<F, S, R, FE, Kind2<T, E, A>> + <F extends URIS3>(F: Applicative3<F>): <R, FE, A>( + ta: Kind2<T, E, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, E, A>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <R, A>( + ta: Kind2<T, E, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, E, A>> + <F extends URIS2>(F: Applicative2<F>): <FE, A>(ta: Kind2<T, E, Kind2<F, FE, A>>) => Kind2<F, FE, Kind2<T, E, A>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A>(ta: Kind2<T, E, Kind2<F, FE, A>>) => Kind2<F, FE, Kind2<T, E, A>> + <F extends URIS>(F: Applicative1<F>): <A>(ta: Kind2<T, E, Kind<F, A>>) => Kind<F, Kind2<T, E, A>> + <F>(F: Applicative<F>): <A>(ta: Kind2<T, E, HKT<F, A>>) => HKT<F, Kind2<T, E, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence3<T extends URIS3> { + <F extends URIS4>(F: Applicative4<F>): <TR, TE, S, FR, FE, A>( + ta: Kind3<T, TR, TE, Kind4<F, S, FR, FE, A>> + ) => Kind4<F, S, FR, FE, Kind3<T, TR, TE, A>> + <F extends URIS3>(F: Applicative3<F>): <TR, TE, FR, FE, A>( + ta: Kind3<T, TR, TE, Kind3<F, FR, FE, A>> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, A>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TR, TE, FR, A>( + ta: Kind3<T, TR, TE, Kind3<F, FR, FE, A>> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, A>> + <F extends URIS2>(F: Applicative2<F>): <R, TE, FE, A>( + ta: Kind3<T, R, TE, Kind2<F, FE, A>> + ) => Kind2<F, FE, Kind3<T, R, TE, A>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, TE, A>( + ta: Kind3<T, R, TE, Kind2<F, FE, A>> + ) => Kind2<F, FE, Kind3<T, R, TE, A>> + <F extends URIS>(F: Applicative1<F>): <R, E, A>(ta: Kind3<T, R, E, Kind<F, A>>) => Kind<F, Kind3<T, R, E, A>> + <F>(F: Applicative<F>): <R, E, A>(ta: Kind3<T, R, E, HKT<F, A>>) => HKT<F, Kind3<T, R, E, A>> +} +/** + * `traverse` composition. + * + * @since 2.10.0 + */ +export declare function traverse<T extends URIS, G extends URIS2>( + T: Traversable1<T>, + G: Traversable2<G> +): { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, FE, B>( + f: (a: A) => Kind4<F, S, R, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind4<F, S, R, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (a: A) => Kind3<F, R, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <A, R, B>( + f: (a: A) => Kind3<F, R, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind2<F, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind2<F, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind<F, Kind<T, Kind2<G, GE, B>>> + <F>(F: Applicative<F>): <A, B>( + f: (a: A) => HKT<F, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => HKT<F, Kind<T, Kind2<G, GE, B>>> +} +export declare function traverse<T extends URIS, G extends URIS>( + T: Traversable1<T>, + G: Traversable1<G> +): { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, E, B>( + f: (a: A) => Kind4<F, S, R, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind4<F, S, R, E, Kind<T, Kind<G, B>>> + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (a: A) => Kind3<F, R, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind3<F, R, E, Kind<T, Kind<G, B>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (a: A) => Kind3<F, R, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind3<F, R, E, Kind<T, Kind<G, B>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (a: A) => Kind2<F, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind2<F, E, Kind<T, Kind<G, B>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (a: A) => Kind2<F, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind2<F, E, Kind<T, Kind<G, B>>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind<F, Kind<T, Kind<G, B>>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, B>) => (tga: Kind<T, Kind<G, A>>) => HKT<F, Kind<T, Kind<G, B>>> +} +export declare function traverse<T, G>( + T: Traversable<T>, + G: Traversable<G> +): <F>(F: Applicative<F>) => <A, B>(f: (a: A) => HKT<F, B>) => (tga: HKT<T, HKT<G, A>>) => HKT<F, HKT<T, HKT<G, B>>> +/** + * `sequence` composition. + * + * @since 2.10.0 + */ +export declare function sequence<T extends URIS, G extends URIS2>( + T: Traversable1<T>, + G: Traversable2<G> +): { + <F extends URIS4>(F: Applicative4<F>): <GE, S, R, FE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind4<F, S, R, FE, A>>> + ) => Kind4<F, S, R, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS3>(F: Applicative3<F>): <GE, R, FE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind3<F, R, FE, A>>> + ) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <GE, R, A>( + tgfa: Kind<T, Kind2<G, GE, Kind3<F, R, FE, A>>> + ) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS2>(F: Applicative2<F>): <GE, FE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind2<F, FE, A>>> + ) => Kind2<F, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <GE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind2<F, FE, A>>> + ) => Kind2<F, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS>(F: Applicative1<F>): <GE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind<F, A>>> + ) => Kind<F, Kind<T, Kind2<G, GE, A>>> + <F>(F: Applicative<F>): <A>(tgfa: HKT<T, HKT<G, HKT<F, A>>>) => HKT<F, HKT<T, HKT<G, A>>> +} +export declare function sequence<T extends URIS, G extends URIS>( + T: Traversable1<T>, + G: Traversable1<G> +): { + <F extends URIS4>(F: Applicative4<F>): <S, R, E, A>( + tgfa: Kind<T, Kind<G, Kind4<F, S, R, E, A>>> + ) => Kind4<F, S, R, E, Kind<T, Kind<G, A>>> + <F extends URIS3>(F: Applicative3<F>): <R, E, A>( + tgfa: Kind<T, Kind<G, Kind3<F, R, E, A>>> + ) => Kind3<F, R, E, Kind<T, Kind<G, A>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <R, A>( + tgfa: Kind<T, Kind<G, Kind3<F, R, E, A>>> + ) => Kind3<F, R, E, Kind<T, Kind<G, A>>> + <F extends URIS2>(F: Applicative2<F>): <E, A>( + tgfa: Kind<T, Kind<G, Kind2<F, E, A>>> + ) => Kind2<F, E, Kind<T, Kind<G, A>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>( + tgfa: Kind<T, Kind<G, Kind2<F, E, A>>> + ) => Kind2<F, E, Kind<T, Kind<G, A>>> + <F extends URIS>(F: Applicative1<F>): <A>(tgfa: Kind<T, Kind<G, Kind<F, A>>>) => Kind<F, Kind<T, Kind<G, A>>> + <F>(F: Applicative<F>): <A>(tgfa: HKT<T, HKT<G, HKT<F, A>>>) => HKT<F, HKT<T, HKT<G, A>>> +} +export declare function sequence<T, G>( + T: Traversable<T>, + G: Traversable<G> +): <F>(F: Applicative<F>) => <A>(tgfa: HKT<T, HKT<G, HKT<F, A>>>) => HKT<F, HKT<T, HKT<G, A>>> +/** + * @since 2.6.3 + */ +export interface PipeableTraverse1<T extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B>( + f: (a: A) => Kind3<F, FR, FE, B> + ) => (ta: Kind<T, A>) => Kind3<F, FR, FE, Kind<T, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <A, FR, B>( + f: (a: A) => Kind3<F, FR, FE, B> + ) => (ta: Kind<T, A>) => Kind3<F, FR, FE, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, B> + ) => (ta: Kind<T, A>) => Kind2<F, FE, Kind<T, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, B> + ) => (ta: Kind<T, A>) => Kind2<F, FE, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(f: (a: A) => Kind<F, B>) => (ta: Kind<T, A>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, B>) => (ta: Kind<T, A>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.6.3 + */ +export interface PipeableTraverse2<T extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B>( + f: (a: A) => Kind3<F, FR, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind3<F, FR, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind<F, Kind2<T, TE, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, B>) => <TE>(ta: Kind2<T, TE, A>) => HKT<F, Kind2<T, TE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface TraversableComposition<F, G> extends FoldableComposition<F, G>, FunctorComposition<F, G> { + readonly traverse: <H>( + H: Applicative<H> + ) => <A, B>(fga: HKT<F, HKT<G, A>>, f: (a: A) => HKT<H, B>) => HKT<H, HKT<F, HKT<G, B>>> + readonly sequence: <H>(H: Applicative<H>) => <A>(fga: HKT<F, HKT<G, HKT<H, A>>>) => HKT<H, HKT<F, HKT<G, A>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface TraverseComposition11<F extends URIS, G extends URIS> { + <H extends URIS3>(H: Applicative3<H>): <R, E, A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind3<H, R, E, B> + ) => Kind3<H, R, E, Kind<F, Kind<G, B>>> + <H extends URIS2>(H: Applicative2<H>): <E, A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind2<H, E, B> + ) => Kind2<H, E, Kind<F, Kind<G, B>>> + <H extends URIS2, E>(H: Applicative2C<H, E>): <A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind2<H, E, B> + ) => Kind2<H, E, Kind<F, Kind<G, B>>> + <H extends URIS>(H: Applicative1<H>): <A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind<H, B> + ) => Kind<H, Kind<F, Kind<G, B>>> + <H>(H: Applicative<H>): <A, B>(fga: Kind<F, Kind<G, A>>, f: (a: A) => HKT<H, B>) => HKT<H, Kind<F, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface SequenceComposition11<F extends URIS, G extends URIS> { + <H extends URIS3>(H: Applicative3<H>): <R, E, A>( + fga: Kind<F, Kind<G, Kind3<H, R, E, A>>> + ) => Kind3<H, R, E, Kind<F, Kind<G, A>>> + <H extends URIS2>(H: Applicative2<H>): <E, A>( + fga: Kind<F, Kind<G, Kind2<H, E, A>>> + ) => Kind2<H, E, Kind<F, Kind<G, A>>> + <H extends URIS2, E>(H: Applicative2C<H, E>): <A>( + fga: Kind<F, Kind<G, Kind2<H, E, A>>> + ) => Kind2<H, E, Kind<F, Kind<G, A>>> + <H extends URIS>(H: Applicative1<H>): <A>(fga: Kind<F, Kind<G, Kind<H, A>>>) => Kind<H, Kind<F, Kind<G, A>>> + <H>(H: Applicative<H>): <A>(fga: Kind<F, Kind<G, HKT<H, A>>>) => HKT<H, Kind<F, Kind<G, A>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface TraversableComposition11<F extends URIS, G extends URIS> + extends FoldableComposition11<F, G>, + FunctorComposition11<F, G> { + readonly traverse: TraverseComposition11<F, G> + readonly sequence: SequenceComposition11<F, G> +} +/** + * Use + * - [`traverse`](#traverse) + * - [`sequence`](#sequence) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getTraversableComposition<F extends URIS, G extends URIS>( + F: Traversable1<F>, + G: Traversable1<G> +): TraversableComposition11<F, G> +/** @deprecated */ +export declare function getTraversableComposition<F, G>( + F: Traversable<F>, + G: Traversable<G> +): TraversableComposition<F, G> diff --git a/node_modules/fp-ts/es6/Traversable.js b/node_modules/fp-ts/es6/Traversable.js new file mode 100644 index 0000000..c4d8291 --- /dev/null +++ b/node_modules/fp-ts/es6/Traversable.js @@ -0,0 +1,38 @@ +import { getFoldableComposition } from './Foldable'; +import { pipe } from './function'; +import { getFunctorComposition } from './Functor'; +export function traverse(T, G) { + return function (F) { + var traverseT = T.traverse(F); + var traverseG = G.traverse(F); + return function (f) { return function (fga) { return traverseT(fga, function (ga) { return traverseG(ga, f); }); }; }; + }; +} +export function sequence(T, G) { + return function (F) { + var sequenceT = T.sequence(F); + var sequenceG = G.sequence(F); + return function (fgha) { return sequenceT(T.map(fgha, sequenceG)); }; + }; +} +/** @deprecated */ +export function getTraversableComposition(F, G) { + var map = getFunctorComposition(F, G).map; + var FC = getFoldableComposition(F, G); + var _traverse = traverse(F, G); + var _sequence = sequence(F, G); + return { + map: map, + reduce: FC.reduce, + foldMap: FC.foldMap, + reduceRight: FC.reduceRight, + traverse: function (H) { + var traverseH = _traverse(H); + return function (fga, f) { return pipe(fga, traverseH(f)); }; + }, + sequence: function (H) { + var sequenceH = _sequence(H); + return function (fgha) { return pipe(fgha, sequenceH); }; + } + }; +} diff --git a/node_modules/fp-ts/es6/TraversableWithIndex.d.ts b/node_modules/fp-ts/es6/TraversableWithIndex.d.ts new file mode 100644 index 0000000..5872a03 --- /dev/null +++ b/node_modules/fp-ts/es6/TraversableWithIndex.d.ts @@ -0,0 +1,191 @@ +/** + * A `Traversable` with an additional index. + * A `TraversableWithIndex` instance must be compatible with its `Traversable` instance + * + * ```ts + * traverse(F)(ta, f) = traverseWithIndex(F)(ta, (_, a) => f(a)) + * ``` + * + * with its `FoldableWithIndex` instance + * + * ```ts + * foldMapWithIndex(M)(ta, f) = traverseWithIndex(getApplicative(M))(ta, (i, a) => new Const(f(i, a))).value + * ``` + * + * and with its `FunctorWithIndex` instance + * + * ```purescript + * mapWithIndex(ta, f) = traverseWithIndex(identity)(ta, (i, a) => new Identity(f(i, a))).value + * ``` + * + * @since 2.0.0 + */ +import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3, Applicative3C } from './Applicative' +import { FoldableWithIndex, FoldableWithIndex1, FoldableWithIndex2, FoldableWithIndex2C } from './FoldableWithIndex' +import { FunctorWithIndex, FunctorWithIndex1, FunctorWithIndex2, FunctorWithIndex2C } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Traversable, Traversable1, Traversable2, Traversable2C } from './Traversable' +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex<T, I> extends FunctorWithIndex<T, I>, FoldableWithIndex<T, I>, Traversable<T> { + readonly traverseWithIndex: TraverseWithIndex<T, I> +} +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex1<T extends URIS, I> + extends FunctorWithIndex1<T, I>, + FoldableWithIndex1<T, I>, + Traversable1<T> { + readonly traverseWithIndex: TraverseWithIndex1<T, I> +} +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex2<T extends URIS2, I> + extends FunctorWithIndex2<T, I>, + FoldableWithIndex2<T, I>, + Traversable2<T> { + readonly traverseWithIndex: TraverseWithIndex2<T, I> +} +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex2C<T extends URIS2, I, E> + extends FunctorWithIndex2C<T, I, E>, + FoldableWithIndex2C<T, I, E>, + Traversable2C<T, E> { + readonly traverseWithIndex: TraverseWithIndex2C<T, I, E> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex<T, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, HKT<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, HKT<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: HKT<T, A>, f: (i: I, a: A) => Kind<F, B>) => Kind<F, HKT<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: HKT<T, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, HKT<T, B>> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex1<T extends URIS, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind<T, A>, f: (i: I, a: A) => Kind<F, B>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind<T, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex2<T extends URIS2, I> { + <F extends URIS3>(F: Applicative3<F>): <TE, A, R, FE, B>( + ta: Kind2<T, TE, A>, + f: (i: I, a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <TE, A, FE, B>( + ta: Kind2<T, TE, A>, + f: (i: I, a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <TE, A, B>( + ta: Kind2<T, TE, A>, + f: (i: I, a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <E, A, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind<F, B> + ) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <E, A, B>(ta: Kind2<T, E, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex2C<T extends URIS2, I, E> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, E, B>> + <F extends URIS3>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind2<T, E, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, E, B>> + <F extends URIS2>(F: Applicative2C<F, E>): <A, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind2<T, E, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind<F, B> + ) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind2<T, E, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.6.3 + */ +export interface PipeableTraverseWithIndex1<T extends URIS, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => (ta: Kind<T, A>) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => (ta: Kind<T, A>) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (i: I, a: A) => Kind2<F, E, B> + ) => (ta: Kind<T, A>) => Kind2<F, E, Kind<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (i: I, a: A) => Kind2<F, E, B> + ) => (ta: Kind<T, A>) => Kind2<F, E, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(f: (i: I, a: A) => Kind<F, B>) => (ta: Kind<T, A>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(f: (i: I, a: A) => HKT<F, B>) => (ta: Kind<T, A>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.6.3 + */ +export interface PipeableTraverseWithIndex2<T extends URIS2, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (i: I, a: A) => Kind3<F, R, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (i: I, a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (i: I, a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (i: I, a: A) => Kind<F, B> + ) => <E>(ta: Kind2<T, E, A>) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <A, B>(f: (i: I, a: A) => HKT<F, B>) => <E>(ta: Kind2<T, E, A>) => HKT<F, Kind2<T, E, B>> +} diff --git a/node_modules/fp-ts/es6/TraversableWithIndex.js b/node_modules/fp-ts/es6/TraversableWithIndex.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/TraversableWithIndex.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/Tree.d.ts b/node_modules/fp-ts/es6/Tree.d.ts new file mode 100644 index 0000000..89a709c --- /dev/null +++ b/node_modules/fp-ts/es6/Tree.d.ts @@ -0,0 +1,393 @@ +/** + * Multi-way trees (aka rose trees) and forests, where a forest is + * + * ```ts + * type Forest<A> = Array<Tree<A>> + * ``` + * + * @since 2.0.0 + */ +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { Comonad1 } from './Comonad' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { Functor1 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad as MonadHKT, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export type Forest<A> = Array<Tree<A>> +/** + * @category model + * @since 2.0.0 + */ +export interface Tree<A> { + readonly value: A + readonly forest: Forest<A> +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function make<A>(value: A, forest?: Forest<A>): Tree<A> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getShow<A>(S: Show<A>): Show<Tree<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getEq<A>(E: Eq<A>): Eq<Tree<A>> +/** + * Neat 2-dimensional drawing of a forest + * + * @since 2.0.0 + */ +export declare function drawForest(forest: Forest<string>): string +/** + * Neat 2-dimensional drawing of a tree + * + * @example + * import { make, drawTree } from 'fp-ts/Tree' + * + * const fa = make('a', [ + * make('b'), + * make('c'), + * make('d', [make('e'), make('f')]) + * ]) + * + * assert.strictEqual(drawTree(fa), `a + * ├─ b + * ├─ c + * └─ d + * ├─ e + * └─ f`) + * + * + * @since 2.0.0 + */ +export declare function drawTree(tree: Tree<string>): string +/** + * Build a (possibly infinite) tree from a seed value in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldTree<A, B>(b: B, f: (b: B) => [A, Array<B>]): Tree<A> +/** + * Build a (possibly infinite) forest from a list of seed values in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldForest<A, B>(bs: Array<B>, f: (b: B) => [A, Array<B>]): Forest<A> +/** + * Monadic tree builder, in depth-first order + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldTreeM<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A, B>(b: B, f: (b: B) => Kind4<M, S, R, E, [A, Array<B>]>) => Kind4<M, S, R, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS3>( + M: Monad3<M> +): <R, E, A, B>(b: B, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A, B>(b: B, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS2>( + M: Monad2<M> +): <E, A, B>(b: B, f: (b: B) => Kind2<M, E, [A, Array<B>]>) => Kind2<M, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(b: B, f: (b: B) => Kind2<M, E, [A, Array<B>]>) => Kind2<M, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS>( + M: Monad1<M> +): <A, B>(b: B, f: (b: B) => Kind<M, [A, Array<B>]>) => Kind<M, Tree<A>> +export declare function unfoldTreeM<M>( + M: MonadHKT<M> +): <A, B>(b: B, f: (b: B) => HKT<M, [A, Array<B>]>) => HKT<M, Tree<A>> +/** + * Monadic forest builder, in depth-first order + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldForestM<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A, B>(bs: Array<B>, f: (b: B) => Kind4<M, S, R, E, [A, Array<B>]>) => Kind4<M, S, R, E, Forest<A>> +export declare function unfoldForestM<M extends URIS3>( + M: Monad3<M> +): <R, E, A, B>(bs: Array<B>, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Forest<A>> +export declare function unfoldForestM<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A, B>(bs: Array<B>, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Forest<A>> +export declare function unfoldForestM<M extends URIS2>( + M: Monad2<M> +): <R, E, B>(bs: Array<B>, f: (b: B) => Kind2<M, R, [E, Array<B>]>) => Kind2<M, R, Forest<E>> +export declare function unfoldForestM<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(bs: Array<B>, f: (b: B) => Kind2<M, E, [A, Array<B>]>) => Kind2<M, E, Forest<A>> +export declare function unfoldForestM<M extends URIS>( + M: Monad1<M> +): <A, B>(bs: Array<B>, f: (b: B) => Kind<M, [A, Array<B>]>) => Kind<M, Forest<A>> +export declare function unfoldForestM<M>( + M: MonadHKT<M> +): <A, B>(bs: Array<B>, f: (b: B) => HKT<M, [A, Array<B>]>) => HKT<M, Forest<A>> +/** + * Fold a tree into a "summary" value in depth-first order. + * + * For each node in the tree, apply `f` to the `value` and the result of applying `f` to each `forest`. + * + * This is also known as the catamorphism on trees. + * + * @example + * import { fold, make } from 'fp-ts/Tree' + * import { concatAll } from 'fp-ts/Monoid' + * import { MonoidSum } from 'fp-ts/number' + * + * const t = make(1, [make(2), make(3)]) + * + * const sum = concatAll(MonoidSum) + * + * // Sum the values in a tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => a + sum(bs))(t), 6) + * + * // Find the maximum value in the tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => bs.reduce((b, acc) => Math.max(b, acc), a))(t), 3) + * + * // Count the number of leaves in the tree: + * assert.deepStrictEqual(fold((_: number, bs: Array<number>) => (bs.length === 0 ? 1 : sum(bs)))(t), 2) + * + * @category folding + * @since 2.6.0 + */ +export declare function fold<A, B>(f: (a: A, bs: Array<B>) => B): (tree: Tree<A>) => B +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Tree<A>) => <B>(fab: Tree<(a: A) => B>) => Tree<B> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Tree<B>): (ma: Tree<A>) => Tree<B> + <A, B>(ma: Tree<A>, f: (a: A) => Tree<B>): Tree<B> +} +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (wa: Tree<A>) => B) => (wa: Tree<A>) => Tree<B> +/** + * @since 2.0.0 + */ +export declare const duplicate: <A>(wa: Tree<A>) => Tree<Tree<A>> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Tree<Tree<A>>) => Tree<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Tree<A>) => Tree<B> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Tree<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Tree<A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Tree<A>) => B +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <A>(wa: Tree<A>) => A +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <A>(a: A) => Tree<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Tree' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Tree<A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <B>(fab: Kind<'Tree', (a: A) => B>) => Kind<'Tree', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>(second: Tree<B>) => <A>(first: Kind<'Tree', A>) => Kind<'Tree', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>(second: Tree<B>) => <A>(first: Kind<'Tree', A>) => Kind<'Tree', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Tree<B>) => (first: Tree<A>) => Tree<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Tree<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind<'Tree', B> +) => (ma: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Tree<B> +) => (fa: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.0.0 + */ +export declare function elem<A>(E: Eq<A>): (a: A, fa: Tree<A>) => boolean +/** + * @since 2.11.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: Tree<A>) => boolean +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Tree<B>) => (ma: Tree<A>) => Tree<B> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tree` + * (where `T` is from `import T from 'fp-ts/Tree'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const tree: Monad1<URI> & Foldable1<URI> & Traversable1<URI> & Comonad1<URI> diff --git a/node_modules/fp-ts/es6/Tree.js b/node_modules/fp-ts/es6/Tree.js new file mode 100644 index 0000000..e1dcbf6 --- /dev/null +++ b/node_modules/fp-ts/es6/Tree.js @@ -0,0 +1,482 @@ +import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply'; +import * as A from './Array'; +import { bind as bind_, chainFirst as chainFirst_ } from './Chain'; +import { fromEquals } from './Eq'; +import { dual, identity, pipe } from './function'; +import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor'; +import * as _ from './internal'; +/** + * @category constructors + * @since 2.0.0 + */ +export function make(value, forest) { + if (forest === void 0) { forest = []; } + return { + value: value, + forest: forest + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getShow(S) { + var show = function (t) { + return A.isEmpty(t.forest) + ? "make(".concat(S.show(t.value), ")") + : "make(".concat(S.show(t.value), ", [").concat(t.forest.map(show).join(', '), "])"); + }; + return { + show: show + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getEq(E) { + // eslint-disable-next-line prefer-const + var SA; + var R = fromEquals(function (x, y) { return E.equals(x.value, y.value) && SA.equals(x.forest, y.forest); }); + SA = A.getEq(R); + return R; +} +var draw = function (indentation, forest) { + var r = ''; + var len = forest.length; + var tree; + for (var i = 0; i < len; i++) { + tree = forest[i]; + var isLast = i === len - 1; + r += indentation + (isLast ? '└' : '├') + '─ ' + tree.value; + r += draw(indentation + (len > 1 && !isLast ? '│ ' : ' '), tree.forest); + } + return r; +}; +/** + * Neat 2-dimensional drawing of a forest + * + * @since 2.0.0 + */ +export function drawForest(forest) { + return draw('\n', forest); +} +/** + * Neat 2-dimensional drawing of a tree + * + * @example + * import { make, drawTree } from 'fp-ts/Tree' + * + * const fa = make('a', [ + * make('b'), + * make('c'), + * make('d', [make('e'), make('f')]) + * ]) + * + * assert.strictEqual(drawTree(fa), `a + * ├─ b + * ├─ c + * └─ d + * ├─ e + * └─ f`) + * + * + * @since 2.0.0 + */ +export function drawTree(tree) { + return tree.value + drawForest(tree.forest); +} +/** + * Build a (possibly infinite) tree from a seed value in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +export function unfoldTree(b, f) { + var _a = f(b), a = _a[0], bs = _a[1]; + return { value: a, forest: unfoldForest(bs, f) }; +} +/** + * Build a (possibly infinite) forest from a list of seed values in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +export function unfoldForest(bs, f) { + return bs.map(function (b) { return unfoldTree(b, f); }); +} +export function unfoldTreeM(M) { + var unfoldForestMM = unfoldForestM(M); + return function (b, f) { return M.chain(f(b), function (_a) { + var a = _a[0], bs = _a[1]; + return M.map(unfoldForestMM(bs, f), function (ts) { return ({ value: a, forest: ts }); }); + }); }; +} +export function unfoldForestM(M) { + var traverseM = A.traverse(M); + return function (bs, f) { + return pipe(bs, traverseM(function (b) { return unfoldTreeM(M)(b, f); })); + }; +} +/** + * Fold a tree into a "summary" value in depth-first order. + * + * For each node in the tree, apply `f` to the `value` and the result of applying `f` to each `forest`. + * + * This is also known as the catamorphism on trees. + * + * @example + * import { fold, make } from 'fp-ts/Tree' + * import { concatAll } from 'fp-ts/Monoid' + * import { MonoidSum } from 'fp-ts/number' + * + * const t = make(1, [make(2), make(3)]) + * + * const sum = concatAll(MonoidSum) + * + * // Sum the values in a tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => a + sum(bs))(t), 6) + * + * // Find the maximum value in the tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => bs.reduce((b, acc) => Math.max(b, acc), a))(t), 3) + * + * // Count the number of leaves in the tree: + * assert.deepStrictEqual(fold((_: number, bs: Array<number>) => (bs.length === 0 ? 1 : sum(bs)))(t), 2) + * + * @category folding + * @since 2.6.0 + */ +export function fold(f) { + var go = function (tree) { return f(tree.value, tree.forest.map(go)); }; + return go; +} +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +var _ap = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +}; +/** + * @since 2.0.0 + */ +export var ap = function (fa) { return function (fab) { return _ap(fab, fa); }; }; +/** + * @category sequencing + * @since 2.14.0 + */ +export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { + var _a = f(ma.value), value = _a.value, forest = _a.forest; + var concat = A.getMonoid().concat; + return { + value: value, + forest: concat(forest, ma.forest.map(flatMap(f))) + }; +}); +/** + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { return ({ + value: f(wa), + forest: wa.forest.map(extend(f)) +}); }; }; +/** + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * @category sequencing + * @since 2.0.0 + */ +export var flatten = /*#__PURE__*/ flatMap(identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return ({ + value: f(fa.value), + forest: fa.forest.map(map(f)) +}); }; }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = function (b, f) { + return function (fa) { + var r = f(b, fa.value); + var len = fa.forest.length; + for (var i = 0; i < len; i++) { + r = pipe(fa.forest[i], reduce(r, f)); + } + return r; + }; +}; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = function (M) { return function (f) { + return reduce(M.empty, function (acc, a) { return M.concat(acc, f(a)); }); +}; }; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRight = function (b, f) { + return function (fa) { + var r = b; + var len = fa.forest.length; + for (var i = len - 1; i >= 0; i--) { + r = pipe(fa.forest[i], reduceRight(r, f)); + } + return f(fa.value, r); + }; +}; +/** + * @category Extract + * @since 2.6.2 + */ +export var extract = function (wa) { return wa.value; }; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + var traverseF = A.traverse(F); + var out = function (f) { + return function (ta) { + return F.ap(F.map(f(ta.value), function (value) { return function (forest) { return ({ + value: value, + forest: forest + }); }; }), pipe(ta.forest, traverseF(out(f)))); + }; + }; + return out; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { return traverse(F)(identity); }; +/** + * @category constructors + * @since 2.7.0 + */ +export var of = function (a) { return make(a); }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Tree'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.10.0 + */ +export var Pointed = { + URI: URI, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Apply = { + URI: URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export var apFirst = /*#__PURE__*/ apFirst_(Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export var apSecond = /*#__PURE__*/ apSecond_(Apply); +/** + * @category instances + * @since 2.7.0 + */ +export var Applicative = { + URI: URI, + map: _map, + ap: _ap, + of: of +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Chain = { + URI: URI, + map: _map, + ap: _ap, + chain: flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Monad = { + URI: URI, + map: _map, + ap: _ap, + of: of, + chain: flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @since 2.0.0 + */ +export var chainFirst = /*#__PURE__*/ chainFirst_(Chain); +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +export var Do = /*#__PURE__*/ of(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +export var bindTo = /*#__PURE__*/ bindTo_(Functor); +var let_ = /*#__PURE__*/ let__(Functor); +export { +/** + * @category do notation + * @since 2.13.0 + */ +let_ as let }; +/** + * @category do notation + * @since 2.8.0 + */ +export var bind = /*#__PURE__*/ bind_(Chain); +/** + * @category do notation + * @since 2.8.0 + */ +export var apS = /*#__PURE__*/ apS_(Apply); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +export function elem(E) { + var go = function (a, fa) { return E.equals(a, fa.value) || fa.forest.some(function (tree) { return go(a, tree); }); }; + return go; +} +/** + * @since 2.11.0 + */ +export var exists = function (predicate) { + return function (ma) { + return predicate(ma.value) || ma.forest.some(exists(predicate)); + }; +}; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export var chain = flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tree` + * (where `T` is from `import T from 'fp-ts/Tree'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var tree = { + URI: URI, + map: _map, + of: of, + ap: _ap, + chain: flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence, + extract: extract, + extend: _extend +}; diff --git a/node_modules/fp-ts/es6/Tuple.d.ts b/node_modules/fp-ts/es6/Tuple.d.ts new file mode 100644 index 0000000..f5ccdfe --- /dev/null +++ b/node_modules/fp-ts/es6/Tuple.d.ts @@ -0,0 +1,198 @@ +/** + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { ChainRec2C } from './ChainRec' +import { Comonad2 } from './Comonad' +import { Foldable2 } from './Foldable' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +import { Semigroupoid2 } from './Semigroupoid' +import { PipeableTraverse2, Traversable2 } from './Traversable' +/** + * @since 2.0.0 + */ +export declare const fst: <A, E>(ea: [A, E]) => A +/** + * @since 2.0.0 + */ +export declare const snd: <A, E>(ea: [A, E]) => E +/** + * @since 2.0.0 + */ +export declare const swap: <A, E>(ea: [A, E]) => [E, A] +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApply<S>(S: Semigroup<S>): Apply2C<URI, S> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApplicative<M>(M: Monoid<M>): Applicative2C<URI, M> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getChain<S>(S: Semigroup<S>): Chain2C<URI, S> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getMonad<M>(M: Monoid<M>): Monad2C<URI, M> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getChainRec<M>(M: Monoid<M>): ChainRec2C<URI, M> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(mapSnd: (e: E) => G, mapFst: (a: A) => B) => (fa: [A, E]) => [B, G] +/** + * Map a function over the first component of a `Tuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.0.0 + */ +export declare const mapFst: <A, B>(f: (a: A) => B) => <E>(fa: [A, E]) => [B, E] +/** + * Map a function over the second component of a `Tuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export declare const mapSnd: <E, G>(f: (e: E) => G) => <A>(fa: [A, E]) => [A, G] +/** + * @since 2.0.0 + */ +export declare const compose: <A, B>(ab: [B, A]) => <C>(bc: [C, B]) => [C, A] +/** + * @since 2.0.0 + */ +export declare const extend: <E, A, B>(f: (wa: [A, E]) => B) => (wa: [A, E]) => [B, E] +/** + * @since 2.0.0 + */ +export declare const duplicate: <E, A>(wa: [A, E]) => [[A, E], E] +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <E, A>(wa: [A, E]) => A +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: [A, E]) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: [A, E]) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: [A, E]) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Tuple' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: [A, E] + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Tuple', E, (a: A) => B>) => import('./HKT').Kind2<'Tuple', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Semigroupoid: Semigroupoid2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * Use [`mapFst`](#mapfst) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: [A, E]) => [B, E] +/** + * Use [`mapSnd`](#mapsnd) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: [A, E]) => [A, G] +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tuple` + * (where `T` is from `import T from 'fp-ts/Tuple'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const tuple: Semigroupoid2<URI> & Bifunctor2<URI> & Comonad2<URI> & Foldable2<URI> & Traversable2<URI> diff --git a/node_modules/fp-ts/es6/Tuple.js b/node_modules/fp-ts/es6/Tuple.js new file mode 100644 index 0000000..faaf3c6 --- /dev/null +++ b/node_modules/fp-ts/es6/Tuple.js @@ -0,0 +1,316 @@ +import { identity, pipe } from './function'; +import { flap as flap_ } from './Functor'; +import * as RT from './ReadonlyTuple'; +// ------------------------------------------------------------------------------------- +// model +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +export var fst = RT.fst; +/** + * @since 2.0.0 + */ +export var snd = RT.snd; +/** + * @since 2.0.0 + */ +export var swap = function (ea) { return [snd(ea), fst(ea)]; }; +/** + * @category instances + * @since 2.0.0 + */ +export function getApply(S) { + return { + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return [fst(fab)(fst(fa)), S.concat(snd(fab), snd(fa))]; } + }; +} +var of = function (M) { + return function (a) { + return [a, M.empty]; + }; +}; +/** + * @category instances + * @since 2.0.0 + */ +export function getApplicative(M) { + var A = getApply(M); + return { + URI: URI, + _E: undefined, + map: A.map, + ap: A.ap, + of: of(M) + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getChain(S) { + var A = getApply(S); + return { + URI: URI, + _E: undefined, + map: A.map, + ap: A.ap, + chain: function (ma, f) { + var _a = f(fst(ma)), b = _a[0], s = _a[1]; + return [b, S.concat(snd(ma), s)]; + } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getMonad(M) { + var C = getChain(M); + return { + URI: URI, + _E: undefined, + map: C.map, + ap: C.ap, + chain: C.chain, + of: of(M) + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getChainRec(M) { + var chainRec = function (a, f) { + var result = f(a); + var acc = M.empty; + var s = fst(result); + while (s._tag === 'Left') { + acc = M.concat(acc, snd(result)); + result = f(s.left); + s = fst(result); + } + return [s.right, M.concat(acc, snd(result))]; + }; + var C = getChain(M); + return { + URI: URI, + _E: undefined, + map: C.map, + ap: C.ap, + chain: C.chain, + chainRec: chainRec + }; +} +/* istanbul ignore next */ +var _compose = function (bc, ab) { return pipe(bc, compose(ab)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, mapFst(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return pipe(fa, mapSnd(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return pipe(wa, extend(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = foldMap(M); + return function (fa, f) { return pipe(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); }; +/* istanbul ignore next */ +function _traverse(F) { + var traverseF = traverse(F); + return function (ta, f) { return pipe(ta, traverseF(f)); }; +} +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export var bimap = function (f, g) { return function (fa) { + return [g(fst(fa)), f(snd(fa))]; +}; }; +/** + * Map a function over the first component of a `Tuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.0.0 + */ +export var mapFst = function (f) { return function (fa) { return [f(fst(fa)), snd(fa)]; }; }; +/** + * Map a function over the second component of a `Tuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export var mapSnd = function (f) { return function (fa) { return [fst(fa), f(snd(fa))]; }; }; +/** + * @since 2.0.0 + */ +export var compose = function (ab) { return function (bc) { return [fst(bc), snd(ab)]; }; }; +/** + * @since 2.0.0 + */ +export var extend = function (f) { return function (wa) { return [f(wa), snd(wa)]; }; }; +/** + * @since 2.0.0 + */ +export var duplicate = /*#__PURE__*/ extend(identity); +/** + * @category Extract + * @since 2.6.2 + */ +export var extract = RT.extract; +/** + * @category folding + * @since 2.0.0 + */ +export var foldMap = RT.foldMap; +/** + * @category folding + * @since 2.0.0 + */ +export var reduce = RT.reduce; +/** + * @category folding + * @since 2.0.0 + */ +export var reduceRight = RT.reduceRight; +/** + * @category traversing + * @since 2.6.3 + */ +export var traverse = function (F) { + return function (f) { return function (ta) { return F.map(f(fst(ta)), function (b) { return [b, snd(ta)]; }); }; }; +}; +/** + * @category traversing + * @since 2.6.3 + */ +export var sequence = function (F) { + return function (fas) { + return F.map(fst(fas), function (a) { return [a, snd(fas)]; }); + }; +}; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Tuple'; +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +/** + * @category instances + * @since 2.7.0 + */ +export var Bifunctor = { + URI: URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Semigroupoid = { + URI: URI, + compose: _compose +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Comonad = { + URI: URI, + map: _map, + extend: _extend, + extract: extract +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Foldable = { + URI: URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +export var Traversable = { + URI: URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`mapFst`](#mapfst) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var map = mapFst; +/** + * Use [`mapSnd`](#mapsnd) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var mapLeft = mapSnd; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tuple` + * (where `T` is from `import T from 'fp-ts/Tuple'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var tuple = { + URI: URI, + compose: _compose, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft, + extract: extract, + extend: _extend, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: sequence +}; diff --git a/node_modules/fp-ts/es6/Unfoldable.d.ts b/node_modules/fp-ts/es6/Unfoldable.d.ts new file mode 100644 index 0000000..44719d4 --- /dev/null +++ b/node_modules/fp-ts/es6/Unfoldable.d.ts @@ -0,0 +1,65 @@ +/** + * This class identifies data structures which can be _unfolded_, generalizing `unfold` on arrays. + * + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable<F> { + readonly URI: F + readonly unfold: <A, B>(b: B, f: (b: B) => Option<[A, B]>) => HKT<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable1<F extends URIS> { + readonly URI: F + readonly unfold: <A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable2<F extends URIS2> { + readonly URI: F + readonly unfold: <E, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly unfold: <A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable3<F extends URIS3> { + readonly URI: F + readonly unfold: <R, E, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Unfoldable3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly unfold: <R, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable4<F extends URIS4> { + readonly URI: F + readonly unfold: <S, R, E, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind4<F, S, R, E, A> +} diff --git a/node_modules/fp-ts/es6/Unfoldable.js b/node_modules/fp-ts/es6/Unfoldable.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/fp-ts/es6/Unfoldable.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/fp-ts/es6/ValidationT.d.ts b/node_modules/fp-ts/es6/ValidationT.d.ts new file mode 100644 index 0000000..2649525 --- /dev/null +++ b/node_modules/fp-ts/es6/ValidationT.d.ts @@ -0,0 +1,73 @@ +/** + * @since 2.0.0 + */ +import { ApplicativeComposition12C, ApplicativeComposition22C, ApplicativeCompositionHKT2C } from './Applicative' +import * as E from './Either' +import { LazyArg } from './function' +import { HKT, Kind, Kind2, URIS, URIS2 } from './HKT' +import { Monad, Monad1, Monad2 } from './Monad' +import { Semigroup } from './Semigroup' +import Either = E.Either +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationT<M, E, A> extends HKT<M, Either<E, A>> {} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationM<M, E> extends ApplicativeCompositionHKT2C<M, E.URI, E> { + readonly chain: <A, B>(ma: ValidationT<M, E, A>, f: (a: A) => ValidationT<M, E, B>) => ValidationT<M, E, B> + readonly alt: <A>(fa: ValidationT<M, E, A>, that: LazyArg<ValidationT<M, E, A>>) => ValidationT<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type ValidationT1<M extends URIS, E, A> = Kind<M, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationM1<M extends URIS, E> extends ApplicativeComposition12C<M, E.URI, E> { + readonly chain: <A, B>(ma: ValidationT1<M, E, A>, f: (a: A) => ValidationT1<M, E, B>) => ValidationT1<M, E, B> + readonly alt: <A>(fa: ValidationT1<M, E, A>, that: LazyArg<ValidationT1<M, E, A>>) => ValidationT1<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type ValidationT2<M extends URIS2, R, E, A> = Kind2<M, R, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationM2<M extends URIS2, E> extends ApplicativeComposition22C<M, E.URI, E> { + readonly chain: <R, A, B>( + ma: ValidationT2<M, R, E, A>, + f: (a: A) => ValidationT2<M, R, E, B> + ) => ValidationT2<M, R, E, B> + readonly alt: <R, A>( + fa: ValidationT2<M, R, E, A>, + that: LazyArg<ValidationT2<M, R, E, A>> + ) => ValidationT2<M, R, E, A> +} +/** + * Use `EitherT` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getValidationM<E, M extends URIS2>(S: Semigroup<E>, M: Monad2<M>): ValidationM2<M, E> +/** @deprecated */ +export declare function getValidationM<E, M extends URIS>(S: Semigroup<E>, M: Monad1<M>): ValidationM1<M, E> +/** @deprecated */ +export declare function getValidationM<E, M>(S: Semigroup<E>, M: Monad<M>): ValidationM<M, E> diff --git a/node_modules/fp-ts/es6/ValidationT.js b/node_modules/fp-ts/es6/ValidationT.js new file mode 100644 index 0000000..697376f --- /dev/null +++ b/node_modules/fp-ts/es6/ValidationT.js @@ -0,0 +1,21 @@ +/** + * @since 2.0.0 + */ +import { getApplicativeComposition } from './Applicative'; +import * as E from './Either'; +import * as _ from './internal'; +/** @deprecated */ +export function getValidationM(S, M) { + var A = getApplicativeComposition(M, E.getApplicativeValidation(S)); + return { + map: A.map, + ap: A.ap, + of: A.of, + chain: function (ma, f) { return M.chain(ma, function (e) { return (_.isLeft(e) ? M.of(_.left(e.left)) : f(e.right)); }); }, + alt: function (me, that) { + return M.chain(me, function (e1) { + return _.isRight(e1) ? M.of(e1) : M.map(that(), function (e2) { return (_.isLeft(e2) ? _.left(S.concat(e1.left, e2.left)) : e2); }); + }); + } + }; +} diff --git a/node_modules/fp-ts/es6/Witherable.d.ts b/node_modules/fp-ts/es6/Witherable.d.ts new file mode 100644 index 0000000..c2bcf1e --- /dev/null +++ b/node_modules/fp-ts/es6/Witherable.d.ts @@ -0,0 +1,575 @@ +/** + * `Witherable` represents data structures which can be _partitioned_ with effects in some `Applicative` functor. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Witherable.purs + * + * @since 2.0.0 + */ +import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3, Applicative3C } from './Applicative' +import { Compactable, Compactable1, Compactable2, Compactable2C } from './Compactable' +import { Either } from './Either' +import { Filterable, Filterable1, Filterable2, Filterable2C, Filterable3 } from './Filterable' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Option } from './Option' +import { Separated } from './Separated' +import { Traversable, Traversable1, Traversable2, Traversable2C, Traversable3 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable<T> extends Traversable<T>, Filterable<T> { + /** + * Partition a structure with effects + */ + readonly wilt: Wilt<T> + /** + * Filter a structure with effects + */ + readonly wither: Wither<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable1<T extends URIS> extends Traversable1<T>, Filterable1<T> { + readonly wilt: Wilt1<T> + readonly wither: Wither1<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable2<T extends URIS2> extends Traversable2<T>, Filterable2<T> { + readonly wilt: Wilt2<T> + readonly wither: Wither2<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable2C<T extends URIS2, TL> extends Traversable2C<T, TL>, Filterable2C<T, TL> { + readonly wilt: Wilt2C<T, TL> + readonly wither: Wither2C<T, TL> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable3<T extends URIS3> extends Traversable3<T>, Filterable3<T> { + readonly wilt: Wilt3<T> + readonly wither: Wither3<T> +} +/** + * @since 2.0.0 + */ +export interface Wither<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: HKT<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, HKT<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: HKT<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, HKT<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: HKT<W, A>, f: (a: A) => Kind<F, Option<B>>) => Kind<F, HKT<W, B>> + <F>(F: Applicative<F>): <A, B>(ta: HKT<W, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, HKT<W, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: Kind<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, Kind<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: Kind<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, Kind<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind<W, A>, f: (a: A) => Kind<F, Option<B>>) => Kind<F, Kind<W, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind<W, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, Kind<W, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <WE, A, R, FE, B>( + ta: Kind2<W, WE, A>, + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => Kind3<F, R, FE, Kind2<W, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <WE, A, FE, B>( + ta: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <WE, A, B>( + ta: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS>(F: Applicative1<F>): <E, A, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind<F, Option<B>> + ) => Kind<F, Kind2<W, E, B>> + <F>(F: Applicative<F>): <E, A, B>(ta: Kind2<W, E, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, Kind2<W, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither2C<W extends URIS2, E> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => Kind3<F, R, FE, Kind2<W, E, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, E, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, E, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind<F, Option<B>> + ) => Kind<F, Kind2<W, E, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind2<W, E, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, Kind2<W, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <WR, WE, A, FR, FE, B>( + ta: Kind3<W, WR, WE, A>, + f: (a: A) => Kind3<F, FR, FE, Option<B>> + ) => Kind3<F, FR, FE, Kind3<W, WR, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <WR, WE, A, FE, B>( + ta: Kind3<W, WR, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind3<W, WR, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, WE, A, B>( + ta: Kind3<W, R, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind3<W, R, WE, B>> + <F extends URIS>(F: Applicative1<F>): <R, E, A, B>( + ta: Kind3<W, R, E, A>, + f: (a: A) => Kind<F, Option<B>> + ) => Kind<F, Kind3<W, R, E, B>> + <F>(F: Applicative<F>): <R, E, A, B>( + ta: Kind3<W, R, E, A>, + f: (a: A) => HKT<F, Option<B>> + ) => HKT<F, Kind3<W, R, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Wilt<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<HKT<W, B>, HKT<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + wa: HKT<W, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<HKT<W, B>, HKT<W, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind<W, B>, Kind<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + wa: Kind<W, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind<W, B>, Kind<W, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <WE, A, R, FE, B, C>( + wa: Kind2<W, WE, A>, + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => Kind3<F, R, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <WE, A, FE, B, C>( + wa: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <WE, A, B, C>( + wa: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <E, A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F>(F: Applicative<F>): <E, A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt2C<W extends URIS2, E> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => Kind3<F, R, FE, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F>(F: Applicative<F>): <A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <WR, WE, A, FR, FE, B, C>( + wa: Kind3<W, WR, WE, A>, + f: (a: A) => Kind3<F, FR, FE, Either<B, C>> + ) => Kind3<F, FR, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <R, WE, A, FE, B, C>( + wa: Kind3<W, R, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind3<W, R, WE, B>, Kind3<W, R, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, WE, A, B, C>( + wa: Kind3<W, R, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind3<W, R, WE, B>, Kind3<W, R, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <R, E, A, B, C>( + wa: Kind3<W, R, E, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind3<W, R, E, B>, Kind3<W, R, E, C>>> + <F>(F: Applicative<F>): <R, E, A, B, C>( + wa: Kind3<W, R, E, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind3<W, R, E, B>, Kind3<W, R, E, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind2<F, E, HKT<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind2<F, E, HKT<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(f: (a: A) => Kind<F, Option<B>>) => (ta: HKT<W, A>) => Kind<F, HKT<W, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => (ta: HKT<W, A>) => HKT<F, HKT<W, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind2<F, E, Kind<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind2<F, E, Kind<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => (ta: Kind<W, A>) => Kind<F, Kind<W, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => (ta: Kind<W, A>) => HKT<F, Kind<W, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind3<F, R, FE, Kind2<W, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind<F, Kind2<W, WE, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => <WE>(ta: Kind2<W, WE, A>) => HKT<F, Kind2<W, WE, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither2C<W extends URIS2, WE> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind3<F, R, FE, Kind2<W, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind<F, Kind2<W, WE, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => (ta: Kind2<W, WE, A>) => HKT<F, Kind2<W, WE, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B>( + f: (a: A) => Kind3<F, FR, FE, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind3<F, FR, FE, Kind3<W, WR, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind2<F, FE, Kind3<W, WR, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind2<F, FE, Kind3<W, WR, WE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind<F, Kind3<W, WR, WE, B>> + <F>(F: Applicative<F>): <A, B>( + f: (a: A) => HKT<F, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => HKT<F, Kind3<W, WR, WE, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind<F, Separated<HKT<W, B>, HKT<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => (wa: HKT<W, A>) => HKT<F, Separated<HKT<W, B>, HKT<W, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind<F, Separated<Kind<W, B>, Kind<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => (wa: Kind<W, A>) => HKT<F, Separated<Kind<W, B>, Kind<W, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B, C>( + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind3<F, R, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => HKT<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt2C<W extends URIS2, WE> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B, C>( + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind3<F, R, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => HKT<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B, C>( + f: (a: A) => Kind3<F, FR, FE, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind3<F, FR, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind2<F, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind2<F, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind<F, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => HKT<F, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> +} +/** + * Return a `wilt` implementation from `Traversable` and `Compactable`. + * + * @category defaults + * @since 2.11.0 + */ +export declare function wiltDefault<W extends URIS2, E>( + T: Traversable2C<W, E>, + C: Compactable2<W> +): Witherable2C<W, E>['wilt'] +export declare function wiltDefault<W extends URIS2, E>( + T: Traversable2<W>, + C: Compactable2C<W, E> +): Witherable2C<W, E>['wilt'] +export declare function wiltDefault<W extends URIS>(T: Traversable1<W>, C: Compactable1<W>): Witherable1<W>['wilt'] +export declare function wiltDefault<W>(T: Traversable<W>, C: Compactable<W>): Witherable<W>['wilt'] +/** + * Return a `wither` implementation from `Traversable` and `Compactable`. + * + * @category defaults + * @since 2.11.0 + */ +export declare function witherDefault<W extends URIS2, E>( + T: Traversable2C<W, E>, + C: Compactable2<W> +): Witherable2C<W, E>['wither'] +export declare function witherDefault<W extends URIS2, E>( + T: Traversable2<W>, + C: Compactable2C<W, E> +): Witherable2C<W, E>['wither'] +export declare function witherDefault<W extends URIS>(T: Traversable1<W>, C: Compactable1<W>): Witherable1<W>['wither'] +export declare function witherDefault<W>(T: Traversable<W>, C: Compactable<W>): Witherable<W>['wither'] +/** + * @since 2.11.0 + */ +export interface FilterE1<G extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E>( + predicate: (a: A) => Kind3<F, R, E, boolean> + ) => (ga: Kind<G, A>) => Kind3<F, R, E, Kind<G, A>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R>( + predicate: (a: A) => Kind3<F, R, E, boolean> + ) => (ga: Kind<G, A>) => Kind3<F, R, E, Kind<G, A>> + <F extends URIS2>(F: Applicative2<F>): <A, E>( + predicate: (a: A) => Kind2<F, E, boolean> + ) => (ga: Kind<G, A>) => Kind2<F, E, Kind<G, A>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>( + predicate: (a: A) => Kind2<F, E, boolean> + ) => (ga: Kind<G, A>) => Kind2<F, E, Kind<G, A>> + <F extends URIS>(F: Applicative1<F>): <A>( + predicate: (a: A) => Kind<F, boolean> + ) => (ga: Kind<G, A>) => Kind<F, Kind<G, A>> + <F>(F: Applicative<F>): <A>(predicate: (a: A) => HKT<F, boolean>) => (ga: Kind<G, A>) => HKT<F, Kind<G, A>> +} +/** + * Filter values inside a `F` context. + * + * See `ReadonlyArray`'s `filterE` for an example of usage. + * + * @since 2.11.0 + */ +export declare function filterE<G extends URIS>(W: Witherable1<G>): FilterE1<G> +export declare function filterE<G>( + W: Witherable<G> +): <F>(F: Applicative<F>) => <A>(predicate: (a: A) => HKT<F, boolean>) => (ga: HKT<G, A>) => HKT<F, HKT<G, A>> diff --git a/node_modules/fp-ts/es6/Witherable.js b/node_modules/fp-ts/es6/Witherable.js new file mode 100644 index 0000000..de28566 --- /dev/null +++ b/node_modules/fp-ts/es6/Witherable.js @@ -0,0 +1,19 @@ +import * as _ from './internal'; +export function wiltDefault(T, C) { + return function (F) { + var traverseF = T.traverse(F); + return function (wa, f) { return F.map(traverseF(wa, f), C.separate); }; + }; +} +export function witherDefault(T, C) { + return function (F) { + var traverseF = T.traverse(F); + return function (wa, f) { return F.map(traverseF(wa, f), C.compact); }; + }; +} +export function filterE(W) { + return function (F) { + var witherF = W.wither(F); + return function (predicate) { return function (ga) { return witherF(ga, function (a) { return F.map(predicate(a), function (b) { return (b ? _.some(a) : _.none); }); }); }; }; + }; +} diff --git a/node_modules/fp-ts/es6/Writer.d.ts b/node_modules/fp-ts/es6/Writer.d.ts new file mode 100644 index 0000000..620561a --- /dev/null +++ b/node_modules/fp-ts/es6/Writer.d.ts @@ -0,0 +1,141 @@ +/** + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Chain2C } from './Chain' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { Monoid } from './Monoid' +import { Pointed2C } from './Pointed' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Writer<W, A> { + (): [A, W] +} +/** + * Appends a value to the accumulator + * + * @category constructors + * @since 2.0.0 + */ +export declare const tell: <W>(w: W) => Writer<W, void> +/** + * Modifies the result to include the changes to the accumulator + * + * @since 2.0.0 + */ +export declare const listen: <W, A>(fa: Writer<W, A>) => Writer<W, [A, W]> +/** + * Applies the returned function to the accumulator + * + * @since 2.0.0 + */ +export declare const pass: <W, A>(fa: Writer<W, [A, (w: W) => W]>) => Writer<W, A> +/** + * Projects a value from modifications made to the accumulator during an action + * + * @since 2.0.0 + */ +export declare const listens: <W, B>(f: (w: W) => B) => <A>(fa: Writer<W, A>) => Writer<W, [A, B]> +/** + * Modify the final accumulator value by applying a function + * + * @since 2.0.0 + */ +export declare const censor: <W>(f: (w: W) => W) => <A>(fa: Writer<W, A>) => Writer<W, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Writer<E, A>) => Writer<E, B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Writer' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Writer<E, A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const getPointed: <W>(M: Monoid<W>) => Pointed2C<URI, W> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApply: <W>(S: Semigroup<W>) => Apply2C<URI, W> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApplicative: <W>(M: Monoid<W>) => Applicative2C<URI, W> +/** + * @category instances + * @since 2.10.0 + */ +export declare function getChain<W>(S: Semigroup<W>): Chain2C<URI, W> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getMonad<W>(M: Monoid<W>): Monad2C<URI, W> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Writer', E, (a: A) => B>) => import('./HKT').Kind2<'Writer', E, B> +/** + * @since 2.8.0 + */ +export declare const evaluate: <W, A>(fa: Writer<W, A>) => A +/** + * @since 2.8.0 + */ +export declare const execute: <W, A>(fa: Writer<W, A>) => W +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const evalWriter: <W, A>(fa: Writer<W, A>) => A +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const execWriter: <W, A>(fa: Writer<W, A>) => W +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const writer: Functor2<URI> diff --git a/node_modules/fp-ts/es6/Writer.js b/node_modules/fp-ts/es6/Writer.js new file mode 100644 index 0000000..5aebf90 --- /dev/null +++ b/node_modules/fp-ts/es6/Writer.js @@ -0,0 +1,192 @@ +import { pipe } from './function'; +import { flap as flap_ } from './Functor'; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Appends a value to the accumulator + * + * @category constructors + * @since 2.0.0 + */ +export var tell = function (w) { return function () { return [undefined, w]; }; }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Modifies the result to include the changes to the accumulator + * + * @since 2.0.0 + */ +export var listen = function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [[a, w], w]; +}; }; +/** + * Applies the returned function to the accumulator + * + * @since 2.0.0 + */ +export var pass = function (fa) { return function () { + var _a = fa(), _b = _a[0], a = _b[0], f = _b[1], w = _a[1]; + return [a, f(w)]; +}; }; +/** + * Projects a value from modifications made to the accumulator during an action + * + * @since 2.0.0 + */ +export var listens = function (f) { return function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [[a, f(w)], w]; +}; }; }; +/** + * Modify the final accumulator value by applying a function + * + * @since 2.0.0 + */ +export var censor = function (f) { return function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [a, f(w)]; +}; }; }; +/* istanbul ignore next */ +var _map = function (fa, f) { return pipe(fa, map(f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export var map = function (f) { return function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [f(a), w]; +}; }; }; +/** + * @category type lambdas + * @since 2.0.0 + */ +export var URI = 'Writer'; +/** + * @category instances + * @since 2.10.0 + */ +export var getPointed = function (M) { return ({ + URI: URI, + _E: undefined, + of: function (a) { return function () { return [a, M.empty]; }; } +}); }; +/** + * @category instances + * @since 2.10.0 + */ +export var getApply = function (S) { return ({ + URI: URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return function () { + var _a = fab(), f = _a[0], w1 = _a[1]; + var _b = fa(), a = _b[0], w2 = _b[1]; + return [f(a), S.concat(w1, w2)]; + }; } +}); }; +/** + * @category instances + * @since 2.10.0 + */ +export var getApplicative = function (M) { + var A = getApply(M); + var P = getPointed(M); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + of: P.of + }; +}; +/** + * @category instances + * @since 2.10.0 + */ +export function getChain(S) { + var A = getApply(S); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: function (fa, f) { return function () { + var _a = fa(), a = _a[0], w1 = _a[1]; + var _b = f(a)(), b = _b[0], w2 = _b[1]; + return [b, S.concat(w1, w2)]; + }; } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +export function getMonad(M) { + var A = getApplicative(M); + var C = getChain(M); + return { + URI: URI, + _E: undefined, + map: _map, + ap: A.ap, + of: A.of, + chain: C.chain + }; +} +/** + * @category instances + * @since 2.7.0 + */ +export var Functor = { + URI: URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +export var flap = /*#__PURE__*/ flap_(Functor); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +export var evaluate = function (fa) { return fa()[0]; }; +/** + * @since 2.8.0 + */ +export var execute = function (fa) { return fa()[1]; }; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var evalWriter = function (fa) { return fa()[0]; }; +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var execWriter = function (fa) { return fa()[1]; }; +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export var writer = Functor; diff --git a/node_modules/fp-ts/es6/WriterT.d.ts b/node_modules/fp-ts/es6/WriterT.d.ts new file mode 100644 index 0000000..d883ecb --- /dev/null +++ b/node_modules/fp-ts/es6/WriterT.d.ts @@ -0,0 +1,147 @@ +/** + * @since 2.4.0 + */ +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3 } from './Monad' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.4.0 + */ +export interface WriterT<M, W, A> { + (): HKT<M, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM<M> { + readonly map: <W, A, B>(fa: WriterT<M, W, A>, f: (a: A) => B) => WriterT<M, W, B> + readonly evalWriter: <W, A>(fa: WriterT<M, W, A>) => HKT<M, A> + readonly execWriter: <W, A>(fa: WriterT<M, W, A>) => HKT<M, W> + readonly tell: <W>(w: W) => WriterT<M, W, void> + readonly listen: <W, A>(fa: WriterT<M, W, A>) => WriterT<M, W, [A, W]> + readonly pass: <W, A>(fa: WriterT<M, W, [A, (w: W) => W]>) => WriterT<M, W, A> + readonly listens: <W, A, B>(fa: WriterT<M, W, A>, f: (w: W) => B) => WriterT<M, W, [A, B]> + readonly censor: <W, A>(fa: WriterT<M, W, A>, f: (w: W) => W) => WriterT<M, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <A, B>(ma: WriterT<M, W, A>, f: (a: A) => B) => WriterT<M, W, B> + readonly of: <A>(a: A) => WriterT<M, W, A> + readonly ap: <A, B>(mab: WriterT<M, W, (a: A) => B>, ma: WriterT<M, W, A>) => WriterT<M, W, B> + readonly chain: <A, B>(ma: WriterT<M, W, A>, f: (a: A) => WriterT<M, W, B>) => WriterT<M, W, B> + } +} +/** + * @category model + * @since 2.4.0 + */ +export interface WriterT1<M extends URIS, W, A> { + (): Kind<M, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM1<M extends URIS> { + readonly map: <W, A, B>(fa: WriterT1<M, W, A>, f: (a: A) => B) => WriterT1<M, W, B> + readonly evalWriter: <W, A>(fa: WriterT1<M, W, A>) => Kind<M, A> + readonly execWriter: <W, A>(fa: WriterT1<M, W, A>) => Kind<M, W> + readonly tell: <W>(w: W) => WriterT1<M, W, void> + readonly listen: <W, A>(fa: WriterT1<M, W, A>) => WriterT1<M, W, [A, W]> + readonly pass: <W, A>(fa: WriterT1<M, W, [A, (w: W) => W]>) => WriterT1<M, W, A> + readonly listens: <W, A, B>(fa: WriterT1<M, W, A>, f: (w: W) => B) => WriterT1<M, W, [A, B]> + readonly censor: <W, A>(fa: WriterT1<M, W, A>, f: (w: W) => W) => WriterT1<M, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <A, B>(ma: WriterT1<M, W, A>, f: (a: A) => B) => WriterT1<M, W, B> + readonly of: <A>(a: A) => WriterT1<M, W, A> + readonly ap: <A, B>(mab: WriterT1<M, W, (a: A) => B>, ma: WriterT1<M, W, A>) => WriterT1<M, W, B> + readonly chain: <A, B>(ma: WriterT1<M, W, A>, f: (a: A) => WriterT1<M, W, B>) => WriterT1<M, W, B> + } +} +/** + * @category model + * @since 2.4.0 + */ +export interface WriterT2<M extends URIS2, E, W, A> { + (): Kind2<M, E, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM2<M extends URIS2> { + readonly map: <E, W, A, B>(fa: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly evalWriter: <E, W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, A> + readonly execWriter: <E, W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, W> + readonly tell: <E, W>(w: W) => WriterT2<M, E, W, void> + readonly listen: <E, W, A>(fa: WriterT2<M, E, W, A>) => WriterT2<M, E, W, [A, W]> + readonly pass: <E, W, A>(fa: WriterT2<M, E, W, [A, (w: W) => W]>) => WriterT2<M, E, W, A> + readonly listens: <E, W, A, B>(fa: WriterT2<M, E, W, A>, f: (w: W) => B) => WriterT2<M, E, W, [A, B]> + readonly censor: <E, W, A>(fa: WriterT2<M, E, W, A>, f: (w: W) => W) => WriterT2<M, E, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <E, A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly of: <E, A>(a: A) => WriterT2<M, E, W, A> + readonly ap: <E, A, B>(mab: WriterT2<M, E, W, (a: A) => B>, ma: WriterT2<M, E, W, A>) => WriterT2<M, E, W, B> + readonly chain: <E, A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => WriterT2<M, E, W, B>) => WriterT2<M, E, W, B> + } +} +/** + * @since 2.4.0 + */ +export interface WriterM2C<M extends URIS2, E> { + readonly map: <W, A, B>(fa: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly evalWriter: <W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, A> + readonly execWriter: <W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, W> + readonly tell: <W>(w: W) => WriterT2<M, E, W, void> + readonly listen: <W, A>(fa: WriterT2<M, E, W, A>) => WriterT2<M, E, W, [A, W]> + readonly pass: <W, A>(fa: WriterT2<M, E, W, [A, (w: W) => W]>) => WriterT2<M, E, W, A> + readonly listens: <W, A, B>(fa: WriterT2<M, E, W, A>, f: (w: W) => B) => WriterT2<M, E, W, [A, B]> + readonly censor: <W, A>(fa: WriterT2<M, E, W, A>, f: (w: W) => W) => WriterT2<M, E, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly of: <A>(a: A) => WriterT2<M, E, W, A> + readonly ap: <A, B>(mab: WriterT2<M, E, W, (a: A) => B>, ma: WriterT2<M, E, W, A>) => WriterT2<M, E, W, B> + readonly chain: <A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => WriterT2<M, E, W, B>) => WriterT2<M, E, W, B> + } +} +/** + * @since 2.4.0 + */ +export interface WriterT3<M extends URIS3, R, E, W, A> { + (): Kind3<M, R, E, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM3<M extends URIS3> { + readonly map: <R, E, W, A, B>(fa: WriterT3<M, R, E, W, A>, f: (a: A) => B) => WriterT3<M, R, E, W, B> + readonly evalWriter: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>) => Kind3<M, R, E, A> + readonly execWriter: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>) => Kind3<M, R, E, W> + readonly tell: <R, E, W>(w: W) => WriterT3<M, R, E, W, void> + readonly listen: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>) => WriterT3<M, R, E, W, [A, W]> + readonly pass: <R, E, W, A>(fa: WriterT3<M, R, E, W, [A, (w: W) => W]>) => WriterT3<M, R, E, W, A> + readonly listens: <R, E, W, A, B>(fa: WriterT3<M, R, E, W, A>, f: (w: W) => B) => WriterT3<M, R, E, W, [A, B]> + readonly censor: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>, f: (w: W) => W) => WriterT3<M, R, E, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <R, E, A, B>(ma: WriterT3<M, R, E, W, A>, f: (a: A) => B) => WriterT3<M, R, E, W, B> + readonly of: <R, E, A>(a: A) => WriterT3<M, R, E, W, A> + readonly ap: <R, E, A, B>( + mab: WriterT3<M, R, E, W, (a: A) => B>, + ma: WriterT3<M, R, E, W, A> + ) => WriterT3<M, R, E, W, B> + readonly chain: <R, E, A, B>( + ma: WriterT3<M, R, E, W, A>, + f: (a: A) => WriterT3<M, R, E, W, B> + ) => WriterT3<M, R, E, W, B> + } +} +/** + * @since 2.4.0 + */ +export declare function getWriterM<M extends URIS3>(M: Monad3<M>): WriterM3<M> +export declare function getWriterM<M extends URIS2>(M: Monad2<M>): WriterM2<M> +export declare function getWriterM<M extends URIS2, E>(M: Monad2C<M, E>): WriterM2C<M, E> +export declare function getWriterM<M extends URIS>(M: Monad1<M>): WriterM1<M> +export declare function getWriterM<M>(M: Monad<M>): WriterM<M> diff --git a/node_modules/fp-ts/es6/WriterT.js b/node_modules/fp-ts/es6/WriterT.js new file mode 100644 index 0000000..1083687 --- /dev/null +++ b/node_modules/fp-ts/es6/WriterT.js @@ -0,0 +1,59 @@ +export function getWriterM(M) { + var map = function (fa, f) { + return function () { + return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [f(a), w]; + }); + }; + }; + return { + map: map, + evalWriter: function (fa) { return M.map(fa(), function (_a) { + var a = _a[0]; + return a; + }); }, + execWriter: function (fa) { return M.map(fa(), function (_a) { + var _ = _a[0], w = _a[1]; + return w; + }); }, + tell: function (w) { return function () { return M.of([undefined, w]); }; }, + listen: function (fa) { return function () { return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [[a, w], w]; + }); }; }, + pass: function (fa) { return function () { return M.map(fa(), function (_a) { + var _b = _a[0], a = _b[0], f = _b[1], w = _a[1]; + return [a, f(w)]; + }); }; }, + listens: function (fa, f) { return function () { return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [[a, f(w)], w]; + }); }; }, + censor: function (fa, f) { return function () { return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [a, f(w)]; + }); }; }, + getMonad: function (W) { + return { + _E: undefined, + map: map, + of: function (a) { return function () { return M.of([a, W.empty]); }; }, + ap: function (mab, ma) { return function () { return M.chain(mab(), function (_a) { + var f = _a[0], w1 = _a[1]; + return M.map(ma(), function (_a) { + var a = _a[0], w2 = _a[1]; + return [f(a), W.concat(w1, w2)]; + }); + }); }; }, + chain: function (ma, f) { return function () { return M.chain(ma(), function (_a) { + var a = _a[0], w1 = _a[1]; + return M.map(f(a)(), function (_a) { + var b = _a[0], w2 = _a[1]; + return [b, W.concat(w1, w2)]; + }); + }); }; } + }; + } + }; +} diff --git a/node_modules/fp-ts/es6/Zero.d.ts b/node_modules/fp-ts/es6/Zero.d.ts new file mode 100644 index 0000000..2d30d7b --- /dev/null +++ b/node_modules/fp-ts/es6/Zero.d.ts @@ -0,0 +1,83 @@ +/** + * @since 2.11.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +/** + * @category model + * @since 2.11.0 + */ +export interface Zero<F> { + readonly URI: F + readonly zero: <A>() => HKT<F, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero1<F extends URIS> { + readonly URI: F + readonly zero: <A>() => Kind<F, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero2<F extends URIS2> { + readonly URI: F + readonly zero: <E, A>() => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly zero: <A>() => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero3<F extends URIS3> { + readonly URI: F + readonly zero: <R, E, A>() => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly zero: <R, A>() => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero4<F extends URIS4> { + readonly URI: F + readonly zero: <S, R, E, A>() => Kind4<F, S, R, E, A> +} +/** + * @category do notation + * @since 2.11.0 + */ +export declare function guard<F extends URIS4>( + F: Zero4<F>, + P: Pointed4<F> +): <S, R, E>(b: boolean) => Kind4<F, S, R, E, void> +export declare function guard<F extends URIS3>(F: Zero3<F>, P: Pointed3<F>): <R, E>(b: boolean) => Kind3<F, R, E, void> +export declare function guard<F extends URIS3, E>( + F: Zero3C<F, E>, + P: Pointed3C<F, E> +): <R>(b: boolean) => Kind3<F, R, E, void> +export declare function guard<F extends URIS2>(F: Zero2<F>, P: Pointed2<F>): <E>(b: boolean) => Kind2<F, E, void> +export declare function guard<F extends URIS2, E>( + F: Zero2C<F, E>, + P: Pointed2C<F, E> +): (b: boolean) => Kind2<F, E, void> +export declare function guard<F extends URIS>(F: Zero1<F>, P: Pointed1<F>): (b: boolean) => Kind<F, void> +export declare function guard<F>(F: Zero<F>, P: Pointed<F>): (b: boolean) => HKT<F, void> diff --git a/node_modules/fp-ts/es6/Zero.js b/node_modules/fp-ts/es6/Zero.js new file mode 100644 index 0000000..2f04359 --- /dev/null +++ b/node_modules/fp-ts/es6/Zero.js @@ -0,0 +1,3 @@ +export function guard(F, P) { + return function (b) { return (b ? P.of(undefined) : F.zero()); }; +} diff --git a/node_modules/fp-ts/es6/boolean.d.ts b/node_modules/fp-ts/es6/boolean.d.ts new file mode 100644 index 0000000..cb1ae13 --- /dev/null +++ b/node_modules/fp-ts/es6/boolean.d.ts @@ -0,0 +1,139 @@ +/** + * @since 2.2.0 + */ +import * as BA from './BooleanAlgebra' +import * as E from './Eq' +import { LazyArg } from './function' +import { Monoid } from './Monoid' +import * as O from './Ord' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as S from './Show' +/** + * @category refinements + * @since 2.11.0 + */ +export declare const isBoolean: Refinement<unknown, boolean> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <A, B>(onFalse: LazyArg<A>, onTrue: LazyArg<B>) => (value: boolean) => A | B +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <A, B>(onFalse: LazyArg<A>, onTrue: LazyArg<B>) => (value: boolean) => A | B +/** + * Defines the fold over a boolean value. + * Takes two thunks `onTrue`, `onFalse` and a `boolean` value. + * If `value` is false, `onFalse()` is returned, otherwise `onTrue()`. + * + * @example + * import { some, map } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * import { match } from 'fp-ts/boolean' + * + * assert.deepStrictEqual( + * pipe( + * some(true), + * map(match(() => 'false', () => 'true')) + * ), + * some('true') + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <A>(onFalse: LazyArg<A>, onTrue: LazyArg<A>) => (value: boolean) => A +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.2.0 + */ +export declare const fold: <A>(onFalse: LazyArg<A>, onTrue: LazyArg<A>) => (value: boolean) => A +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<boolean> +/** + * @category instances + * @since 2.10.0 + */ +export declare const BooleanAlgebra: BA.BooleanAlgebra<boolean> +/** + * `boolean` semigroup under conjunction. + * + * @example + * import { SemigroupAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAll.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupAll: Semigroup<boolean> +/** + * `boolean` semigroup under disjunction. + * + * @example + * import { SemigroupAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAny.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAny.concat(true, false), true) + * assert.deepStrictEqual(SemigroupAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupAny: Semigroup<boolean> +/** + * `boolean` monoid under conjunction. + * + * The `empty` value is `true`. + * + * @example + * import { MonoidAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAll.concat(true, true), true) + * assert.deepStrictEqual(MonoidAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidAll: Monoid<boolean> +/** + * `boolean` monoid under disjunction. + * + * The `empty` value is `false`. + * + * @example + * import { MonoidAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAny.concat(true, true), true) + * assert.deepStrictEqual(MonoidAny.concat(true, false), true) + * assert.deepStrictEqual(MonoidAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidAny: Monoid<boolean> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<boolean> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Show: S.Show<boolean> diff --git a/node_modules/fp-ts/es6/boolean.js b/node_modules/fp-ts/es6/boolean.js new file mode 100644 index 0000000..31a06b6 --- /dev/null +++ b/node_modules/fp-ts/es6/boolean.js @@ -0,0 +1,162 @@ +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * @category refinements + * @since 2.11.0 + */ +export var isBoolean = function (u) { return typeof u === 'boolean'; }; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export var matchW = function (onFalse, onTrue) { + return function (value) { + return value ? onTrue() : onFalse(); + }; +}; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export var foldW = matchW; +/** + * Defines the fold over a boolean value. + * Takes two thunks `onTrue`, `onFalse` and a `boolean` value. + * If `value` is false, `onFalse()` is returned, otherwise `onTrue()`. + * + * @example + * import { some, map } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * import { match } from 'fp-ts/boolean' + * + * assert.deepStrictEqual( + * pipe( + * some(true), + * map(match(() => 'false', () => 'true')) + * ), + * some('true') + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export var match = foldW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.2.0 + */ +export var fold = match; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +export var Eq = { + equals: function (first, second) { return first === second; } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var BooleanAlgebra = { + meet: function (first, second) { return first && second; }, + join: function (first, second) { return first || second; }, + zero: false, + one: true, + implies: function (first, second) { return !first || second; }, + not: function (b) { return !b; } +}; +/** + * `boolean` semigroup under conjunction. + * + * @example + * import { SemigroupAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAll.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +export var SemigroupAll = { + concat: function (first, second) { return first && second; } +}; +/** + * `boolean` semigroup under disjunction. + * + * @example + * import { SemigroupAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAny.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAny.concat(true, false), true) + * assert.deepStrictEqual(SemigroupAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +export var SemigroupAny = { + concat: function (first, second) { return first || second; } +}; +/** + * `boolean` monoid under conjunction. + * + * The `empty` value is `true`. + * + * @example + * import { MonoidAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAll.concat(true, true), true) + * assert.deepStrictEqual(MonoidAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +export var MonoidAll = { + concat: SemigroupAll.concat, + empty: true +}; +/** + * `boolean` monoid under disjunction. + * + * The `empty` value is `false`. + * + * @example + * import { MonoidAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAny.concat(true, true), true) + * assert.deepStrictEqual(MonoidAny.concat(true, false), true) + * assert.deepStrictEqual(MonoidAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +export var MonoidAny = { + concat: SemigroupAny.concat, + empty: false +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Ord = { + equals: Eq.equals, + compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Show = { + show: function (b) { return JSON.stringify(b); } +}; diff --git a/node_modules/fp-ts/es6/function.d.ts b/node_modules/fp-ts/es6/function.d.ts new file mode 100644 index 0000000..ed5ca44 --- /dev/null +++ b/node_modules/fp-ts/es6/function.d.ts @@ -0,0 +1,579 @@ +/** + * @since 2.0.0 + */ +import { BooleanAlgebra } from './BooleanAlgebra' +import { Monoid } from './Monoid' +import { Ring } from './Ring' +import { Semigroup } from './Semigroup' +import { Semiring } from './Semiring' +/** + * @category instances + * @since 2.10.0 + */ +export declare const getBooleanAlgebra: <B>(B: BooleanAlgebra<B>) => <A = never>() => BooleanAlgebra<(a: A) => B> +/** + * Unary functions form a semigroup as long as you can provide a semigroup for the codomain. + * + * @example + * import { Predicate, getSemigroup } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const S1 = getSemigroup(B.SemigroupAll)<number>() + * + * assert.deepStrictEqual(S1.concat(f, g)(1), true) + * assert.deepStrictEqual(S1.concat(f, g)(3), false) + * + * const S2 = getSemigroup(B.SemigroupAny)<number>() + * + * assert.deepStrictEqual(S2.concat(f, g)(1), true) + * assert.deepStrictEqual(S2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +export declare const getSemigroup: <S>(S: Semigroup<S>) => <A = never>() => Semigroup<(a: A) => S> +/** + * Unary functions form a monoid as long as you can provide a monoid for the codomain. + * + * @example + * import { Predicate } from 'fp-ts/Predicate' + * import { getMonoid } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const M1 = getMonoid(B.MonoidAll)<number>() + * + * assert.deepStrictEqual(M1.concat(f, g)(1), true) + * assert.deepStrictEqual(M1.concat(f, g)(3), false) + * + * const M2 = getMonoid(B.MonoidAny)<number>() + * + * assert.deepStrictEqual(M2.concat(f, g)(1), true) + * assert.deepStrictEqual(M2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +export declare const getMonoid: <M>(M: Monoid<M>) => <A = never>() => Monoid<(a: A) => M> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getSemiring: <A, B>(S: Semiring<B>) => Semiring<(a: A) => B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getRing: <A, B>(R: Ring<B>) => Ring<(a: A) => B> +/** + * @since 2.11.0 + */ +export declare const apply: <A>(a: A) => <B>(f: (a: A) => B) => B +/** + * @example + * import { FunctionN } from 'fp-ts/function' + * + * export const sum: FunctionN<[number, number], number> = (a, b) => a + b + * + * @since 2.0.0 + */ +export interface FunctionN<A extends ReadonlyArray<unknown>, B> { + (...args: A): B +} +/** + * @since 2.0.0 + */ +export declare function identity<A>(a: A): A +/** + * @since 2.0.0 + */ +export declare const unsafeCoerce: <A, B>(a: A) => B +/** + * @since 2.0.0 + */ +export declare function constant<A>(a: A): LazyArg<A> +/** + * A thunk that returns always `true`. + * + * @since 2.0.0 + */ +export declare const constTrue: LazyArg<boolean> +/** + * A thunk that returns always `false`. + * + * @since 2.0.0 + */ +export declare const constFalse: LazyArg<boolean> +/** + * A thunk that returns always `null`. + * + * @since 2.0.0 + */ +export declare const constNull: LazyArg<null> +/** + * A thunk that returns always `undefined`. + * + * @since 2.0.0 + */ +export declare const constUndefined: LazyArg<undefined> +/** + * A thunk that returns always `void`. + * + * @since 2.0.0 + */ +export declare const constVoid: LazyArg<void> +/** + * Flips the arguments of a curried function. + * + * @example + * import { flip } from 'fp-ts/function' + * + * const f = (a: number) => (b: string) => a - b.length + * + * assert.strictEqual(flip(f)('aaa')(2), -1) + * + * @since 2.0.0 + */ +export declare function flip<A, B, C>(f: (a: A) => (b: B) => C): (b: B) => (a: A) => C +/** @deprecated */ +export declare function flip<A, B, C>(f: (a: A, b: B) => C): (b: B, a: A) => C +/** + * Performs left-to-right function composition. The first argument may have any arity, the remaining arguments must be unary. + * + * See also [`pipe`](#pipe). + * + * @example + * import { flow } from 'fp-ts/function' + * + * const len = (s: string): number => s.length + * const double = (n: number): number => n * 2 + * + * const f = flow(len, double) + * + * assert.strictEqual(f('aaa'), 6) + * + * @since 2.0.0 + */ +export declare function flow<A extends ReadonlyArray<unknown>, B>(ab: (...a: A) => B): (...a: A) => B +export declare function flow<A extends ReadonlyArray<unknown>, B, C>( + ab: (...a: A) => B, + bc: (b: B) => C +): (...a: A) => C +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D +): (...a: A) => D +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E +): (...a: A) => E +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F +): (...a: A) => F +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G +): (...a: A) => G +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H +): (...a: A) => H +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I +): (...a: A) => I +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I, J>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J +): (...a: A) => J +/** + * @since 2.0.0 + */ +export declare function tuple<T extends ReadonlyArray<any>>(...t: T): T +/** + * @since 2.0.0 + */ +export declare function increment(n: number): number +/** + * @since 2.0.0 + */ +export declare function decrement(n: number): number +/** + * @since 2.0.0 + */ +export declare function absurd<A>(_: never): A +/** + * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument. + * + * @example + * import { tupled } from 'fp-ts/function' + * + * const add = tupled((x: number, y: number): number => x + y) + * + * assert.strictEqual(add([1, 2]), 3) + * + * @since 2.4.0 + */ +export declare function tupled<A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (a: A) => B +/** + * Inverse function of `tupled` + * + * @since 2.4.0 + */ +export declare function untupled<A extends ReadonlyArray<unknown>, B>(f: (a: A) => B): (...a: A) => B +/** + * Pipes the value of an expression into a pipeline of functions. + * + * See also [`flow`](#flow). + * + * @example + * import { pipe } from 'fp-ts/function' + * + * const len = (s: string): number => s.length + * const double = (n: number): number => n * 2 + * + * // without pipe + * assert.strictEqual(double(len('aaa')), 6) + * + * // with pipe + * assert.strictEqual(pipe('aaa', len, double), 6) + * + * @since 2.6.3 + */ +export declare function pipe<A>(a: A): A +export declare function pipe<A, B>(a: A, ab: (a: A) => B): B +export declare function pipe<A, B, C>(a: A, ab: (a: A) => B, bc: (b: B) => C): C +export declare function pipe<A, B, C, D>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D +export declare function pipe<A, B, C, D, E>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E +export declare function pipe<A, B, C, D, E, F>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F +): F +export declare function pipe<A, B, C, D, E, F, G>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G +): G +export declare function pipe<A, B, C, D, E, F, G, H>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H +): H +export declare function pipe<A, B, C, D, E, F, G, H, I>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I +): I +export declare function pipe<A, B, C, D, E, F, G, H, I, J>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J +): J +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K +): K +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L +): L +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M +): M +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N +): N +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O +): O +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P +): P +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q +): Q +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q, + qr: (q: Q) => R +): R +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q, + qr: (q: Q) => R, + rs: (r: R) => S +): S +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q, + qr: (q: Q) => R, + rs: (r: R) => S, + st: (s: S) => T +): T +/** + * Type hole simulation + * + * @since 2.7.0 + */ +export declare const hole: <T>() => T +/** + * @since 2.11.0 + */ +export declare const SK: <A, B>(_: A, b: B) => B +/** + * Use `Refinement` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface Refinement<A, B extends A> { + (a: A): a is B +} +/** + * Use `Predicate` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface Predicate<A> { + (a: A): boolean +} +/** + * Use `Predicate` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function not<A>(predicate: Predicate<A>): Predicate<A> +/** + * Use `Endomorphism` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface Endomorphism<A> { + (a: A): A +} +/** + * Use `Endomorphism` module instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const getEndomorphismMonoid: <A = never>() => Monoid<Endomorphism<A>> +/** + * A lazy argument. + * + * @since 2.15.0 + */ +export interface LazyArg<A> { + (): A +} +/** + * Use `LazyArg` instead. + * + * @category lagacy + * @since 2.0.0 + */ +export interface Lazy<A> { + (): A +} diff --git a/node_modules/fp-ts/es6/function.js b/node_modules/fp-ts/es6/function.js new file mode 100644 index 0000000..e5d98f0 --- /dev/null +++ b/node_modules/fp-ts/es6/function.js @@ -0,0 +1,345 @@ +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +export var getBooleanAlgebra = function (B) { + return function () { return ({ + meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; }, + join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; }, + zero: function () { return B.zero; }, + one: function () { return B.one; }, + implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; }, + not: function (x) { return function (a) { return B.not(x(a)); }; } + }); }; +}; +/** + * Unary functions form a semigroup as long as you can provide a semigroup for the codomain. + * + * @example + * import { Predicate, getSemigroup } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const S1 = getSemigroup(B.SemigroupAll)<number>() + * + * assert.deepStrictEqual(S1.concat(f, g)(1), true) + * assert.deepStrictEqual(S1.concat(f, g)(3), false) + * + * const S2 = getSemigroup(B.SemigroupAny)<number>() + * + * assert.deepStrictEqual(S2.concat(f, g)(1), true) + * assert.deepStrictEqual(S2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +export var getSemigroup = function (S) { + return function () { return ({ + concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; } + }); }; +}; +/** + * Unary functions form a monoid as long as you can provide a monoid for the codomain. + * + * @example + * import { Predicate } from 'fp-ts/Predicate' + * import { getMonoid } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const M1 = getMonoid(B.MonoidAll)<number>() + * + * assert.deepStrictEqual(M1.concat(f, g)(1), true) + * assert.deepStrictEqual(M1.concat(f, g)(3), false) + * + * const M2 = getMonoid(B.MonoidAny)<number>() + * + * assert.deepStrictEqual(M2.concat(f, g)(1), true) + * assert.deepStrictEqual(M2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +export var getMonoid = function (M) { + var getSemigroupM = getSemigroup(M); + return function () { return ({ + concat: getSemigroupM().concat, + empty: function () { return M.empty; } + }); }; +}; +/** + * @category instances + * @since 2.10.0 + */ +export var getSemiring = function (S) { return ({ + add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; }, + zero: function () { return S.zero; }, + mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; }, + one: function () { return S.one; } +}); }; +/** + * @category instances + * @since 2.10.0 + */ +export var getRing = function (R) { + var S = getSemiring(R); + return { + add: S.add, + mul: S.mul, + one: S.one, + zero: S.zero, + sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; } + }; +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +export var apply = function (a) { + return function (f) { + return f(a); + }; +}; +/** + * @since 2.0.0 + */ +export function identity(a) { + return a; +} +/** + * @since 2.0.0 + */ +export var unsafeCoerce = identity; +/** + * @since 2.0.0 + */ +export function constant(a) { + return function () { return a; }; +} +/** + * A thunk that returns always `true`. + * + * @since 2.0.0 + */ +export var constTrue = /*#__PURE__*/ constant(true); +/** + * A thunk that returns always `false`. + * + * @since 2.0.0 + */ +export var constFalse = /*#__PURE__*/ constant(false); +/** + * A thunk that returns always `null`. + * + * @since 2.0.0 + */ +export var constNull = /*#__PURE__*/ constant(null); +/** + * A thunk that returns always `undefined`. + * + * @since 2.0.0 + */ +export var constUndefined = /*#__PURE__*/ constant(undefined); +/** + * A thunk that returns always `void`. + * + * @since 2.0.0 + */ +export var constVoid = constUndefined; +export function flip(f) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length > 1) { + return f(args[1], args[0]); + } + return function (a) { return f(a)(args[0]); }; + }; +} +export function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) { + switch (arguments.length) { + case 1: + return ab; + case 2: + return function () { + return bc(ab.apply(this, arguments)); + }; + case 3: + return function () { + return cd(bc(ab.apply(this, arguments))); + }; + case 4: + return function () { + return de(cd(bc(ab.apply(this, arguments)))); + }; + case 5: + return function () { + return ef(de(cd(bc(ab.apply(this, arguments))))); + }; + case 6: + return function () { + return fg(ef(de(cd(bc(ab.apply(this, arguments)))))); + }; + case 7: + return function () { + return gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))); + }; + case 8: + return function () { + return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))); + }; + case 9: + return function () { + return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))))); + }; + } + return; +} +/** + * @since 2.0.0 + */ +export function tuple() { + var t = []; + for (var _i = 0; _i < arguments.length; _i++) { + t[_i] = arguments[_i]; + } + return t; +} +/** + * @since 2.0.0 + */ +export function increment(n) { + return n + 1; +} +/** + * @since 2.0.0 + */ +export function decrement(n) { + return n - 1; +} +/** + * @since 2.0.0 + */ +export function absurd(_) { + throw new Error('Called `absurd` function which should be uncallable'); +} +/** + * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument. + * + * @example + * import { tupled } from 'fp-ts/function' + * + * const add = tupled((x: number, y: number): number => x + y) + * + * assert.strictEqual(add([1, 2]), 3) + * + * @since 2.4.0 + */ +export function tupled(f) { + return function (a) { return f.apply(void 0, a); }; +} +/** + * Inverse function of `tupled` + * + * @since 2.4.0 + */ +export function untupled(f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return f(a); + }; +} +export function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) { + switch (arguments.length) { + case 1: + return a; + case 2: + return ab(a); + case 3: + return bc(ab(a)); + case 4: + return cd(bc(ab(a))); + case 5: + return de(cd(bc(ab(a)))); + case 6: + return ef(de(cd(bc(ab(a))))); + case 7: + return fg(ef(de(cd(bc(ab(a)))))); + case 8: + return gh(fg(ef(de(cd(bc(ab(a))))))); + case 9: + return hi(gh(fg(ef(de(cd(bc(ab(a)))))))); + default: { + var ret = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + ret = arguments[i](ret); + } + return ret; + } + } +} +/** + * Type hole simulation + * + * @since 2.7.0 + */ +export var hole = absurd; +/** + * @since 2.11.0 + */ +export var SK = function (_, b) { return b; }; +/** + * Use `Predicate` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export function not(predicate) { + return function (a) { return !predicate(a); }; +} +/** + * Use `Endomorphism` module instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export var getEndomorphismMonoid = function () { return ({ + concat: function (first, second) { return flow(first, second); }, + empty: identity +}); }; +/** @internal */ +export var dual = function (arity, body) { + var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity; + return function () { + var args = Array.from(arguments); + if (isDataFirst(arguments)) { + return body.apply(this, args); + } + return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); }; + }; +}; diff --git a/node_modules/fp-ts/es6/index.d.ts b/node_modules/fp-ts/es6/index.d.ts new file mode 100644 index 0000000..b498a78 --- /dev/null +++ b/node_modules/fp-ts/es6/index.d.ts @@ -0,0 +1,718 @@ +/** + * @since 2.0.0 + */ +import * as alt from './Alt' +import * as alternative from './Alternative' +import * as applicative from './Applicative' +import * as apply from './Apply' +import * as array from './Array' +import * as bifunctor from './Bifunctor' +import * as boolean from './boolean' +import * as booleanAlgebra from './BooleanAlgebra' +import * as bounded from './Bounded' +import * as boundedDistributiveLattice from './BoundedDistributiveLattice' +import * as boundedJoinSemilattice from './BoundedJoinSemilattice' +import * as boundedLattice from './BoundedLattice' +import * as boundedMeetSemilattice from './BoundedMeetSemilattice' +import * as category from './Category' +import * as chain from './Chain' +import * as chainRec from './ChainRec' +import * as choice from './Choice' +import * as comonad from './Comonad' +import * as compactable from './Compactable' +import * as console from './Console' +import * as const_ from './Const' +import * as contravariant from './Contravariant' +import * as date from './Date' +import * as distributiveLattice from './DistributiveLattice' +import * as either from './Either' +import * as eitherT from './EitherT' +import * as endomorphism from './Endomorphism' +import * as eq from './Eq' +import * as extend from './Extend' +import * as field from './Field' +import * as filterable from './Filterable' +import * as filterableWithIndex from './FilterableWithIndex' +import * as foldable from './Foldable' +import * as foldableWithIndex from './FoldableWithIndex' +import * as fromEither from './FromEither' +import * as fromIO from './FromIO' +import * as fromReader from './FromReader' +import * as fromState from './FromState' +import * as fromTask from './FromTask' +import * as fromThese from './FromThese' +import * as function_ from './function' +import * as functor from './Functor' +import * as functorWithIndex from './FunctorWithIndex' +import * as group from './Group' +import * as heytingAlgebra from './HeytingAlgebra' +import * as hkt from './HKT' +import * as identity from './Identity' +import * as invariant from './Invariant' +import * as io from './IO' +import * as ioEither from './IOEither' +import * as ioOption from './IOOption' +import * as ioRef from './IORef' +import * as joinSemilattice from './JoinSemilattice' +import * as json from './Json' +import * as lattice from './Lattice' +import * as magma from './Magma' +import * as map from './Map' +import * as meetSemilattice from './MeetSemilattice' +import * as monad from './Monad' +import * as monadIO from './MonadIO' +import * as monadTask from './MonadTask' +import * as monadThrow from './MonadThrow' +import * as monoid from './Monoid' +import * as naturalTransformation from './NaturalTransformation' +import * as nonEmptyArray from './NonEmptyArray' +import * as number from './number' +import * as option from './Option' +import * as optionT from './OptionT' +import * as ord from './Ord' +import * as ordering from './Ordering' +import * as pipeable from './pipeable' +import * as pointed from './Pointed' +import * as predicate from './Predicate' +import * as profunctor from './Profunctor' +import * as random from './Random' +import * as reader from './Reader' +import * as readerEither from './ReaderEither' +import * as readerIO from './ReaderIO' +import * as readerT from './ReaderT' +import * as readerTask from './ReaderTask' +import * as readerTaskEither from './ReaderTaskEither' +import * as readonlyArray from './ReadonlyArray' +import * as readonlyMap from './ReadonlyMap' +import * as readonlyNonEmptyArray from './ReadonlyNonEmptyArray' +import * as readonlyRecord from './ReadonlyRecord' +import * as readonlySet from './ReadonlySet' +import * as readonlyTuple from './ReadonlyTuple' +import * as record from './Record' +import * as refinement from './Refinement' +import * as ring from './Ring' +import * as semigroup from './Semigroup' +import * as semigroupoid from './Semigroupoid' +import * as semiring from './Semiring' +import * as separated from './Separated' +import * as set from './Set' +import * as show from './Show' +import * as state from './State' +import * as stateReaderTaskEither from './StateReaderTaskEither' +import * as stateT from './StateT' +import * as store from './Store' +import * as string from './string' +import * as strong from './Strong' +import * as struct from './struct' +import * as task from './Task' +import * as taskEither from './TaskEither' +import * as taskOption from './TaskOption' +import * as taskThese from './TaskThese' +import * as these from './These' +import * as theseT from './TheseT' +import * as traced from './Traced' +import * as traversable from './Traversable' +import * as traversableWithIndex from './TraversableWithIndex' +import * as tree from './Tree' +import * as tuple from './Tuple' +import * as unfoldable from './Unfoldable' +import * as validationT from './ValidationT' +import * as void_ from './void' +import * as witherable from './Witherable' +import * as writer from './Writer' +import * as writerT from './WriterT' +import * as zero from './Zero' +export { + /** + * @category model + * @since 2.0.0 + */ + alt, + /** + * @category model + * @since 2.0.0 + */ + alternative, + /** + * @category model + * @since 2.0.0 + */ + applicative, + /** + * @category model + * @since 2.0.0 + */ + apply, + /** + * @category data types + * @since 2.0.0 + */ + array, + /** + * @category model + * @since 2.0.0 + */ + bifunctor, + /** + * @since 2.2.0 + */ + boolean, + /** + * @category model + * @since 2.0.0 + */ + booleanAlgebra, + /** + * @category model + * @since 2.0.0 + */ + bounded, + /** + * @category model + * @since 2.0.0 + */ + boundedDistributiveLattice, + /** + * @category model + * @since 2.0.0 + */ + boundedJoinSemilattice, + /** + * @category model + * @since 2.0.0 + */ + boundedLattice, + /** + * @category model + * @since 2.0.0 + */ + boundedMeetSemilattice, + /** + * @category model + * @since 2.0.0 + */ + category, + /** + * @category model + * @since 2.0.0 + */ + chain, + /** + * @category model + * @since 2.0.0 + */ + chainRec, + /** + * @category model + * @since 2.0.0 + */ + choice, + /** + * @category model + * @since 2.0.0 + */ + comonad, + /** + * @category model + * @since 2.0.0 + */ + compactable, + /** + * @since 2.0.0 + */ + console, + /** + * @category data types + * @since 2.0.0 + */ + const_ as const, + /** + * @category model + * @since 2.0.0 + */ + contravariant, + /** + * @since 2.0.0 + */ + date, + /** + * @category model + * @since 2.0.0 + */ + distributiveLattice, + /** + * @category data types + * @since 2.0.0 + */ + either, + /** + * @category monad transformers + * @since 2.0.0 + */ + eitherT, + /** + * @category data types + * @since 2.11.0 + */ + endomorphism, + /** + * @category model + * @since 2.0.0 + */ + extend, + /** + * @category model + * @since 2.0.0 + */ + field, + /** + * @category model + * @since 2.0.0 + */ + filterable, + /** + * @category model + * @since 2.0.0 + */ + filterableWithIndex, + /** + * @category model + * @since 2.0.0 + */ + foldable, + /** + * @category model + * @since 2.0.0 + */ + foldableWithIndex, + /** + * @category model + * @since 2.10.0 + */ + fromEither, + /** + * @category model + * @since 2.10.0 + */ + fromIO, + /** + * @category model + * @since 2.11.0 + */ + fromReader, + /** + * @category model + * @since 2.11.0 + */ + fromState, + /** + * @category model + * @since 2.10.0 + */ + fromTask, + /** + * @category model + * @since 2.11.0 + */ + fromThese, + /** + * @since 2.0.0 + */ + function_ as function, + /** + * @category model + * @since 2.0.0 + */ + functor, + /** + * @category model + * @since 2.0.0 + */ + functorWithIndex, + /** + * @category model + * @since 2.0.0 + */ + group, + /** + * @category model + * @since 2.0.0 + */ + heytingAlgebra, + /** + * @since 2.0.0 + */ + hkt, + /** + * @category data types + * @since 2.0.0 + */ + identity, + /** + * @category model + * @since 2.0.0 + */ + invariant, + /** + * @category data types + * @since 2.0.0 + */ + io, + /** + * @category data types + * @since 2.0.0 + */ + ioEither, + /** + * @category data types + * @since 2.12.0 + */ + ioOption, + /** + * @since 2.0.0 + */ + ioRef, + /** + * @category model + * @since 2.0.0 + */ + joinSemilattice, + /** + * @since 2.10.0 + */ + json, + /** + * @category model + * @since 2.0.0 + */ + lattice, + /** + * @category model + * @since 2.0.0 + */ + magma, + /** + * @category data types + * @since 2.0.0 + */ + map, + /** + * @category model + * @since 2.0.0 + */ + meetSemilattice, + /** + * @category model + * @since 2.0.0 + */ + monad, + /** + * @category model + * @since 2.0.0 + */ + monadIO, + /** + * @category model + * @since 2.0.0 + */ + monadTask, + /** + * @category model + * @since 2.0.0 + */ + monadThrow, + /** + * @category model + * @since 2.0.0 + */ + monoid, + /** + * @since 2.11.0 + */ + naturalTransformation, + /** + * @category data types + * @since 2.0.0 + */ + nonEmptyArray, + /** + * @since 2.10.0 + */ + number, + /** + * @category data types + * @since 2.0.0 + */ + option, + /** + * @category monad transformers + * @since 2.0.0 + */ + optionT, + /** + * @category model + * @since 2.0.0 + */ + ord, + /** + * @since 2.0.0 + */ + ordering, + /** + * @since 2.0.0 + */ + pipeable, + /** + * @category model + * @since 2.10.0 + */ + pointed, + /** + * @category data types + * @since 2.11.0 + */ + predicate, + /** + * @category model + * @since 2.0.0 + */ + profunctor, + /** + * @since 2.0.0 + */ + random, + /** + * @category data types + * @since 2.0.0 + */ + reader, + /** + * @category data types + * @since 2.0.0 + */ + readerEither, + /** + * @category data types + * @since 2.0.0 + */ + readerIO, + /** + * @category monad transformers + * @since 2.0.0 + */ + readerT, + /** + * @category data types + * @since 2.0.0 + */ + readerTaskEither, + /** + * @category data types + * @since 2.5.0 + */ + readonlyArray, + /** + * @category data types + * @since 2.5.0 + */ + readonlyMap, + /** + * @category data types + * @since 2.5.0 + */ + readonlyNonEmptyArray, + /** + * @category data types + * @since 2.5.0 + */ + readonlyRecord, + /** + * @category data types + * @since 2.5.0 + */ + readonlySet, + /** + * @category data types + * @since 2.5.0 + */ + readonlyTuple, + /** + * @category data types + * @since 2.3.0 + */ + readerTask, + /** + * @category data types + * @since 2.0.0 + */ + record, + /** + * @category data types + * @since 2.11.0 + */ + refinement, + /** + * @category model + * @since 2.0.0 + */ + ring, + /** + * @category model + * @since 2.0.0 + */ + semigroup, + /** + * @category model + * @since 2.0.0 + */ + semigroupoid, + /** + * @category model + * @since 2.0.0 + */ + semiring, + /** + * @category data types + * @since 2.10.0 + */ + separated, + /** + * @category data types + * @since 2.0.0 + */ + set, + /** + * @category model + * @since 2.0.0 + */ + eq, + /** + * @category model + * @since 2.0.0 + */ + show, + /** + * @category data types + * @since 2.0.0 + */ + state, + /** + * @category data types + * @since 2.0.0 + */ + stateReaderTaskEither, + /** + * @category monad transformers + * @since 2.0.0 + */ + stateT, + /** + * @category data types + * @since 2.0.0 + */ + store, + /** + * @since 2.10.0 + */ + string, + /** + * @category model + * @since 2.0.0 + */ + strong, + /** + * @since 2.10.0 + */ + struct, + /** + * @category data types + * @since 2.0.0 + */ + task, + /** + * @category data types + * @since 2.0.0 + */ + taskEither, + /** + * @category data types + * @since 2.10.0 + */ + taskOption, + /** + * @category data types + * @since 2.4.0 + */ + taskThese, + /** + * @category data types + * @since 2.0.0 + */ + these, + /** + * @category monad transformers + * @since 2.4.0 + */ + theseT, + /** + * @category data types + * @since 2.0.0 + */ + traced, + /** + * @category model + * @since 2.0.0 + */ + traversable, + /** + * @category model + * @since 2.0.0 + */ + traversableWithIndex, + /** + * @category data types + * @since 2.0.0 + */ + tree, + /** + * @category data types + * @since 2.0.0 + */ + tuple, + /** + * @category model + * @since 2.0.0 + */ + unfoldable, + /** + * @category data types + * @since 2.0.0 + */ + validationT, + /** + * @category zone of death + * @since 2.11.0 + * @deprecated + */ + void_ as void, + /** + * @category model + * @since 2.0.0 + */ + witherable, + /** + * @category data types + * @since 2.0.0 + */ + writer, + /** + * @category monad transformers + * @since 2.4.0 + */ + writerT, + /** + * @category model + * @since 2.11.0 + */ + zero +} diff --git a/node_modules/fp-ts/es6/index.js b/node_modules/fp-ts/es6/index.js new file mode 100644 index 0000000..6ce69ea --- /dev/null +++ b/node_modules/fp-ts/es6/index.js @@ -0,0 +1,717 @@ +/** + * @since 2.0.0 + */ +import * as alt from './Alt'; +import * as alternative from './Alternative'; +import * as applicative from './Applicative'; +import * as apply from './Apply'; +import * as array from './Array'; +import * as bifunctor from './Bifunctor'; +import * as boolean from './boolean'; +import * as booleanAlgebra from './BooleanAlgebra'; +import * as bounded from './Bounded'; +import * as boundedDistributiveLattice from './BoundedDistributiveLattice'; +import * as boundedJoinSemilattice from './BoundedJoinSemilattice'; +import * as boundedLattice from './BoundedLattice'; +import * as boundedMeetSemilattice from './BoundedMeetSemilattice'; +import * as category from './Category'; +import * as chain from './Chain'; +import * as chainRec from './ChainRec'; +import * as choice from './Choice'; +import * as comonad from './Comonad'; +import * as compactable from './Compactable'; +import * as console from './Console'; +import * as const_ from './Const'; +import * as contravariant from './Contravariant'; +import * as date from './Date'; +import * as distributiveLattice from './DistributiveLattice'; +import * as either from './Either'; +import * as eitherT from './EitherT'; +import * as endomorphism from './Endomorphism'; +import * as eq from './Eq'; +import * as extend from './Extend'; +import * as field from './Field'; +import * as filterable from './Filterable'; +import * as filterableWithIndex from './FilterableWithIndex'; +import * as foldable from './Foldable'; +import * as foldableWithIndex from './FoldableWithIndex'; +import * as fromEither from './FromEither'; +import * as fromIO from './FromIO'; +import * as fromReader from './FromReader'; +import * as fromState from './FromState'; +import * as fromTask from './FromTask'; +import * as fromThese from './FromThese'; +import * as function_ from './function'; +import * as functor from './Functor'; +import * as functorWithIndex from './FunctorWithIndex'; +import * as group from './Group'; +import * as heytingAlgebra from './HeytingAlgebra'; +import * as hkt from './HKT'; +import * as identity from './Identity'; +import * as invariant from './Invariant'; +import * as io from './IO'; +import * as ioEither from './IOEither'; +import * as ioOption from './IOOption'; +import * as ioRef from './IORef'; +import * as joinSemilattice from './JoinSemilattice'; +import * as json from './Json'; +import * as lattice from './Lattice'; +import * as magma from './Magma'; +import * as map from './Map'; +import * as meetSemilattice from './MeetSemilattice'; +import * as monad from './Monad'; +import * as monadIO from './MonadIO'; +import * as monadTask from './MonadTask'; +import * as monadThrow from './MonadThrow'; +import * as monoid from './Monoid'; +import * as naturalTransformation from './NaturalTransformation'; +import * as nonEmptyArray from './NonEmptyArray'; +import * as number from './number'; +import * as option from './Option'; +import * as optionT from './OptionT'; +import * as ord from './Ord'; +import * as ordering from './Ordering'; +import * as pipeable from './pipeable'; +import * as pointed from './Pointed'; +import * as predicate from './Predicate'; +import * as profunctor from './Profunctor'; +import * as random from './Random'; +import * as reader from './Reader'; +import * as readerEither from './ReaderEither'; +import * as readerIO from './ReaderIO'; +import * as readerT from './ReaderT'; +import * as readerTask from './ReaderTask'; +import * as readerTaskEither from './ReaderTaskEither'; +import * as readonlyArray from './ReadonlyArray'; +import * as readonlyMap from './ReadonlyMap'; +import * as readonlyNonEmptyArray from './ReadonlyNonEmptyArray'; +import * as readonlyRecord from './ReadonlyRecord'; +import * as readonlySet from './ReadonlySet'; +import * as readonlyTuple from './ReadonlyTuple'; +import * as record from './Record'; +import * as refinement from './Refinement'; +import * as ring from './Ring'; +import * as semigroup from './Semigroup'; +import * as semigroupoid from './Semigroupoid'; +import * as semiring from './Semiring'; +import * as separated from './Separated'; +import * as set from './Set'; +import * as show from './Show'; +import * as state from './State'; +import * as stateReaderTaskEither from './StateReaderTaskEither'; +import * as stateT from './StateT'; +import * as store from './Store'; +import * as string from './string'; +import * as strong from './Strong'; +import * as struct from './struct'; +import * as task from './Task'; +import * as taskEither from './TaskEither'; +import * as taskOption from './TaskOption'; +import * as taskThese from './TaskThese'; +import * as these from './These'; +import * as theseT from './TheseT'; +import * as traced from './Traced'; +import * as traversable from './Traversable'; +import * as traversableWithIndex from './TraversableWithIndex'; +import * as tree from './Tree'; +import * as tuple from './Tuple'; +import * as unfoldable from './Unfoldable'; +import * as validationT from './ValidationT'; +import * as void_ from './void'; +import * as witherable from './Witherable'; +import * as writer from './Writer'; +import * as writerT from './WriterT'; +import * as zero from './Zero'; +export { +/** + * @category model + * @since 2.0.0 + */ +alt, +/** + * @category model + * @since 2.0.0 + */ +alternative, +/** + * @category model + * @since 2.0.0 + */ +applicative, +/** + * @category model + * @since 2.0.0 + */ +apply, +/** + * @category data types + * @since 2.0.0 + */ +array, +/** + * @category model + * @since 2.0.0 + */ +bifunctor, +/** + * @since 2.2.0 + */ +boolean, +/** + * @category model + * @since 2.0.0 + */ +booleanAlgebra, +/** + * @category model + * @since 2.0.0 + */ +bounded, +/** + * @category model + * @since 2.0.0 + */ +boundedDistributiveLattice, +/** + * @category model + * @since 2.0.0 + */ +boundedJoinSemilattice, +/** + * @category model + * @since 2.0.0 + */ +boundedLattice, +/** + * @category model + * @since 2.0.0 + */ +boundedMeetSemilattice, +/** + * @category model + * @since 2.0.0 + */ +category, +/** + * @category model + * @since 2.0.0 + */ +chain, +/** + * @category model + * @since 2.0.0 + */ +chainRec, +/** + * @category model + * @since 2.0.0 + */ +choice, +/** + * @category model + * @since 2.0.0 + */ +comonad, +/** + * @category model + * @since 2.0.0 + */ +compactable, +/** + * @since 2.0.0 + */ +console, +/** + * @category data types + * @since 2.0.0 + */ +const_ as const, +/** + * @category model + * @since 2.0.0 + */ +contravariant, +/** + * @since 2.0.0 + */ +date, +/** + * @category model + * @since 2.0.0 + */ +distributiveLattice, +/** + * @category data types + * @since 2.0.0 + */ +either, +/** + * @category monad transformers + * @since 2.0.0 + */ +eitherT, +/** + * @category data types + * @since 2.11.0 + */ +endomorphism, +/** + * @category model + * @since 2.0.0 + */ +extend, +/** + * @category model + * @since 2.0.0 + */ +field, +/** + * @category model + * @since 2.0.0 + */ +filterable, +/** + * @category model + * @since 2.0.0 + */ +filterableWithIndex, +/** + * @category model + * @since 2.0.0 + */ +foldable, +/** + * @category model + * @since 2.0.0 + */ +foldableWithIndex, +/** + * @category model + * @since 2.10.0 + */ +fromEither, +/** + * @category model + * @since 2.10.0 + */ +fromIO, +/** + * @category model + * @since 2.11.0 + */ +fromReader, +/** + * @category model + * @since 2.11.0 + */ +fromState, +/** + * @category model + * @since 2.10.0 + */ +fromTask, +/** + * @category model + * @since 2.11.0 + */ +fromThese, +/** + * @since 2.0.0 + */ +function_ as function, +/** + * @category model + * @since 2.0.0 + */ +functor, +/** + * @category model + * @since 2.0.0 + */ +functorWithIndex, +/** + * @category model + * @since 2.0.0 + */ +group, +/** + * @category model + * @since 2.0.0 + */ +heytingAlgebra, +/** + * @since 2.0.0 + */ +hkt, +/** + * @category data types + * @since 2.0.0 + */ +identity, +/** + * @category model + * @since 2.0.0 + */ +invariant, +/** + * @category data types + * @since 2.0.0 + */ +io, +/** + * @category data types + * @since 2.0.0 + */ +ioEither, +/** + * @category data types + * @since 2.12.0 + */ +ioOption, +/** + * @since 2.0.0 + */ +ioRef, +/** + * @category model + * @since 2.0.0 + */ +joinSemilattice, +/** + * @since 2.10.0 + */ +json, +/** + * @category model + * @since 2.0.0 + */ +lattice, +/** + * @category model + * @since 2.0.0 + */ +magma, +/** + * @category data types + * @since 2.0.0 + */ +map, +/** + * @category model + * @since 2.0.0 + */ +meetSemilattice, +/** + * @category model + * @since 2.0.0 + */ +monad, +/** + * @category model + * @since 2.0.0 + */ +monadIO, +/** + * @category model + * @since 2.0.0 + */ +monadTask, +/** + * @category model + * @since 2.0.0 + */ +monadThrow, +/** + * @category model + * @since 2.0.0 + */ +monoid, +/** + * @since 2.11.0 + */ +naturalTransformation, +/** + * @category data types + * @since 2.0.0 + */ +nonEmptyArray, +/** + * @since 2.10.0 + */ +number, +/** + * @category data types + * @since 2.0.0 + */ +option, +/** + * @category monad transformers + * @since 2.0.0 + */ +optionT, +/** + * @category model + * @since 2.0.0 + */ +ord, +/** + * @since 2.0.0 + */ +ordering, +/** + * @since 2.0.0 + */ +pipeable, +/** + * @category model + * @since 2.10.0 + */ +pointed, +/** + * @category data types + * @since 2.11.0 + */ +predicate, +/** + * @category model + * @since 2.0.0 + */ +profunctor, +/** + * @since 2.0.0 + */ +random, +/** + * @category data types + * @since 2.0.0 + */ +reader, +/** + * @category data types + * @since 2.0.0 + */ +readerEither, +/** + * @category data types + * @since 2.0.0 + */ +readerIO, +/** + * @category monad transformers + * @since 2.0.0 + */ +readerT, +/** + * @category data types + * @since 2.0.0 + */ +readerTaskEither, +/** + * @category data types + * @since 2.5.0 + */ +readonlyArray, +/** + * @category data types + * @since 2.5.0 + */ +readonlyMap, +/** + * @category data types + * @since 2.5.0 + */ +readonlyNonEmptyArray, +/** + * @category data types + * @since 2.5.0 + */ +readonlyRecord, +/** + * @category data types + * @since 2.5.0 + */ +readonlySet, +/** + * @category data types + * @since 2.5.0 + */ +readonlyTuple, +/** + * @category data types + * @since 2.3.0 + */ +readerTask, +/** + * @category data types + * @since 2.0.0 + */ +record, +/** + * @category data types + * @since 2.11.0 + */ +refinement, +/** + * @category model + * @since 2.0.0 + */ +ring, +/** + * @category model + * @since 2.0.0 + */ +semigroup, +/** + * @category model + * @since 2.0.0 + */ +semigroupoid, +/** + * @category model + * @since 2.0.0 + */ +semiring, +/** + * @category data types + * @since 2.10.0 + */ +separated, +/** + * @category data types + * @since 2.0.0 + */ +set, +/** + * @category model + * @since 2.0.0 + */ +eq, +/** + * @category model + * @since 2.0.0 + */ +show, +/** + * @category data types + * @since 2.0.0 + */ +state, +/** + * @category data types + * @since 2.0.0 + */ +stateReaderTaskEither, +/** + * @category monad transformers + * @since 2.0.0 + */ +stateT, +/** + * @category data types + * @since 2.0.0 + */ +store, +/** + * @since 2.10.0 + */ +string, +/** + * @category model + * @since 2.0.0 + */ +strong, +/** + * @since 2.10.0 + */ +struct, +/** + * @category data types + * @since 2.0.0 + */ +task, +/** + * @category data types + * @since 2.0.0 + */ +taskEither, +/** + * @category data types + * @since 2.10.0 + */ +taskOption, +/** + * @category data types + * @since 2.4.0 + */ +taskThese, +/** + * @category data types + * @since 2.0.0 + */ +these, +/** + * @category monad transformers + * @since 2.4.0 + */ +theseT, +/** + * @category data types + * @since 2.0.0 + */ +traced, +/** + * @category model + * @since 2.0.0 + */ +traversable, +/** + * @category model + * @since 2.0.0 + */ +traversableWithIndex, +/** + * @category data types + * @since 2.0.0 + */ +tree, +/** + * @category data types + * @since 2.0.0 + */ +tuple, +/** + * @category model + * @since 2.0.0 + */ +unfoldable, +/** + * @category data types + * @since 2.0.0 + */ +validationT, +/** + * @category zone of death + * @since 2.11.0 + * @deprecated + */ +void_ as void, +/** + * @category model + * @since 2.0.0 + */ +witherable, +/** + * @category data types + * @since 2.0.0 + */ +writer, +/** + * @category monad transformers + * @since 2.4.0 + */ +writerT, +/** + * @category model + * @since 2.11.0 + */ +zero }; diff --git a/node_modules/fp-ts/es6/internal.d.ts b/node_modules/fp-ts/es6/internal.d.ts new file mode 100644 index 0000000..336ce12 --- /dev/null +++ b/node_modules/fp-ts/es6/internal.d.ts @@ -0,0 +1 @@ +export {} diff --git a/node_modules/fp-ts/es6/internal.js b/node_modules/fp-ts/es6/internal.js new file mode 100644 index 0000000..947d6ba --- /dev/null +++ b/node_modules/fp-ts/es6/internal.js @@ -0,0 +1,120 @@ +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +import { dual } from './function'; +// ------------------------------------------------------------------------------------- +// Option +// ------------------------------------------------------------------------------------- +/** @internal */ +export var isNone = function (fa) { return fa._tag === 'None'; }; +/** @internal */ +export var isSome = function (fa) { return fa._tag === 'Some'; }; +/** @internal */ +export var none = { _tag: 'None' }; +/** @internal */ +export var some = function (a) { return ({ _tag: 'Some', value: a }); }; +// ------------------------------------------------------------------------------------- +// Either +// ------------------------------------------------------------------------------------- +/** @internal */ +export var isLeft = function (ma) { return ma._tag === 'Left'; }; +/** @internal */ +export var isRight = function (ma) { return ma._tag === 'Right'; }; +/** @internal */ +export var left = function (e) { return ({ _tag: 'Left', left: e }); }; +/** @internal */ +export var right = function (a) { return ({ _tag: 'Right', right: a }); }; +// ------------------------------------------------------------------------------------- +// ReadonlyNonEmptyArray +// ------------------------------------------------------------------------------------- +/** @internal */ +export var singleton = function (a) { return [a]; }; +/** @internal */ +export var isNonEmpty = function (as) { return as.length > 0; }; +/** @internal */ +export var head = function (as) { return as[0]; }; +/** @internal */ +export var tail = function (as) { return as.slice(1); }; +// ------------------------------------------------------------------------------------- +// empty +// ------------------------------------------------------------------------------------- +/** @internal */ +export var emptyReadonlyArray = []; +/** @internal */ +export var emptyRecord = {}; +// ------------------------------------------------------------------------------------- +// Record +// ------------------------------------------------------------------------------------- +/** @internal */ +export var has = Object.prototype.hasOwnProperty; +// ------------------------------------------------------------------------------------- +// NonEmptyArray +// ------------------------------------------------------------------------------------- +/** @internal */ +export var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); }; +/** @internal */ +export var liftNullable = function (F) { + return function (f, onNullable) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + var o = f.apply(void 0, a); + return F.fromEither(o == null ? left(onNullable.apply(void 0, a)) : right(o)); + }; + }; +}; +/** @internal */ +export var liftOption = function (F) { + return function (f, onNone) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + var o = f.apply(void 0, a); + return F.fromEither(isNone(o) ? left(onNone.apply(void 0, a)) : right(o.value)); + }; + }; +}; +/** @internal */ +export var flatMapNullable = function (F, M) { + return /*#__PURE__*/ dual(3, function (self, f, onNullable) { + return M.flatMap(self, liftNullable(F)(f, onNullable)); + }); +}; +/** @internal */ +export var flatMapOption = function (F, M) { + return /*#__PURE__*/ dual(3, function (self, f, onNone) { return M.flatMap(self, liftOption(F)(f, onNone)); }); +}; +/** @internal */ +export var flatMapEither = function (F, M) { + return /*#__PURE__*/ dual(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromEither(f(a)); }); + }); +}; +/** @internal */ +export var flatMapIO = function (F, M) { + return /*#__PURE__*/ dual(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromIO(f(a)); }); + }); +}; +/** @internal */ +export var flatMapTask = function (F, M) { + return /*#__PURE__*/ dual(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromTask(f(a)); }); + }); +}; +/** @internal */ +export var flatMapReader = function (F, M) { + return /*#__PURE__*/ dual(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromReader(f(a)); }); + }); +}; diff --git a/node_modules/fp-ts/es6/number.d.ts b/node_modules/fp-ts/es6/number.d.ts new file mode 100644 index 0000000..766667d --- /dev/null +++ b/node_modules/fp-ts/es6/number.d.ts @@ -0,0 +1,99 @@ +/** + * @since 2.10.0 + */ +import * as B from './Bounded' +import * as E from './Eq' +import * as F from './Field' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import * as O from './Ord' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as S from './Show' +/** + * @category refinements + * @since 2.11.0 + */ +export declare const isNumber: Refinement<unknown, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Bounded: B.Bounded<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Show: S.Show<number> +/** + * @category instances + * @since 2.11.0 + */ +export declare const MagmaSub: Magma<number> +/** + * `number` semigroup under addition. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupSum: Semigroup<number> +/** + * `number` semigroup under multiplication. + * + * @example + * import { SemigroupProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupProduct: Semigroup<number> +/** + * `number` monoid under addition. + * + * The `empty` value is `0`. + * + * @example + * import { MonoidSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidSum: Monoid<number> +/** + * `number` monoid under multiplication. + * + * The `empty` value is `1`. + * + * @example + * import { MonoidProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidProduct: Monoid<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Field: F.Field<number> diff --git a/node_modules/fp-ts/es6/number.js b/node_modules/fp-ts/es6/number.js new file mode 100644 index 0000000..2aff1c5 --- /dev/null +++ b/node_modules/fp-ts/es6/number.js @@ -0,0 +1,126 @@ +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * @category refinements + * @since 2.11.0 + */ +export var isNumber = function (u) { return typeof u === 'number'; }; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +export var Eq = { + equals: function (first, second) { return first === second; } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Ord = { + equals: Eq.equals, + compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); } +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Bounded = { + equals: Eq.equals, + compare: Ord.compare, + top: Infinity, + bottom: -Infinity +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Show = { + show: function (n) { return JSON.stringify(n); } +}; +/** + * @category instances + * @since 2.11.0 + */ +export var MagmaSub = { + concat: function (first, second) { return first - second; } +}; +/** + * `number` semigroup under addition. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5) + * + * @category instances + * @since 2.10.0 + */ +export var SemigroupSum = { + concat: function (first, second) { return first + second; } +}; +/** + * `number` semigroup under multiplication. + * + * @example + * import { SemigroupProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6) + * + * @category instances + * @since 2.10.0 + */ +export var SemigroupProduct = { + concat: function (first, second) { return first * second; } +}; +/** + * `number` monoid under addition. + * + * The `empty` value is `0`. + * + * @example + * import { MonoidSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +export var MonoidSum = { + concat: SemigroupSum.concat, + empty: 0 +}; +/** + * `number` monoid under multiplication. + * + * The `empty` value is `1`. + * + * @example + * import { MonoidProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +export var MonoidProduct = { + concat: SemigroupProduct.concat, + empty: 1 +}; +/** + * @category instances + * @since 2.10.0 + */ +export var Field = { + add: SemigroupSum.concat, + zero: 0, + mul: SemigroupProduct.concat, + one: 1, + sub: MagmaSub.concat, + degree: function (_) { return 1; }, + div: function (first, second) { return first / second; }, + mod: function (first, second) { return first % second; } +}; diff --git a/node_modules/fp-ts/es6/pipeable.d.ts b/node_modules/fp-ts/es6/pipeable.d.ts new file mode 100644 index 0000000..40e84bc --- /dev/null +++ b/node_modules/fp-ts/es6/pipeable.d.ts @@ -0,0 +1,2275 @@ +/** + * @since 2.0.0 + */ +import { Alt, Alt1, Alt2, Alt2C, Alt3, Alt3C, Alt4 } from './Alt' +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { Bifunctor, Bifunctor2, Bifunctor2C, Bifunctor3, Bifunctor3C, Bifunctor4 } from './Bifunctor' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { + Compactable, + Compactable1, + Compactable2, + Compactable2C, + Compactable3, + Compactable3C, + Compactable4 +} from './Compactable' +import { + Contravariant, + Contravariant1, + Contravariant2, + Contravariant2C, + Contravariant3, + Contravariant3C, + Contravariant4 +} from './Contravariant' +import { Either } from './Either' +import { Extend, Extend1, Extend2, Extend2C, Extend3, Extend3C, Extend4 } from './Extend' +import { + Filterable, + Filterable1, + Filterable2, + Filterable2C, + Filterable3, + Filterable3C, + Filterable4 +} from './Filterable' +import { + FilterableWithIndex, + FilterableWithIndex1, + FilterableWithIndex2, + FilterableWithIndex2C, + FilterableWithIndex3, + FilterableWithIndex3C, + FilterableWithIndex4, + PredicateWithIndex, + RefinementWithIndex +} from './FilterableWithIndex' +import { Foldable, Foldable1, Foldable2, Foldable2C, Foldable3, Foldable3C, Foldable4 } from './Foldable' +import { + FoldableWithIndex, + FoldableWithIndex1, + FoldableWithIndex2, + FoldableWithIndex2C, + FoldableWithIndex3, + FoldableWithIndex3C, + FoldableWithIndex4 +} from './FoldableWithIndex' +import { LazyArg, pipe as pipeFromFunctionModule } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { + FunctorWithIndex, + FunctorWithIndex1, + FunctorWithIndex2, + FunctorWithIndex2C, + FunctorWithIndex3, + FunctorWithIndex3C, + FunctorWithIndex4 +} from './FunctorWithIndex' +import { HKT, HKT2, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { + MonadThrow, + MonadThrow1, + MonadThrow2, + MonadThrow2C, + MonadThrow3, + MonadThrow3C, + MonadThrow4 +} from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Predicate } from './Predicate' +import { Profunctor, Profunctor2, Profunctor2C, Profunctor3, Profunctor3C, Profunctor4 } from './Profunctor' +import { Refinement } from './Refinement' +import { + Semigroupoid, + Semigroupoid2, + Semigroupoid2C, + Semigroupoid3, + Semigroupoid3C, + Semigroupoid4 +} from './Semigroupoid' +import { Separated } from './Separated' +/** + * Returns a pipeable `map` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function map<F extends URIS4>( + F: Functor4<F> +): <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function map<F extends URIS3, E>( + F: Functor3C<F, E> +): <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function map<F extends URIS2, E>( + F: Functor2C<F, E> +): <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function map<F extends URIS>(F: Functor1<F>): <A, B>(f: (a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `contramap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function contramap<F extends URIS4>( + F: Contravariant4<F> +): <A, B>(f: (b: B) => A) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function contramap<F extends URIS3>( + F: Contravariant3<F> +): <A, B>(f: (b: B) => A) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function contramap<F extends URIS3, E>( + F: Contravariant3C<F, E> +): <A, B>(f: (b: B) => A) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function contramap<F extends URIS2>( + F: Contravariant2<F> +): <A, B>(f: (b: B) => A) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function contramap<F extends URIS2, E>( + F: Contravariant2C<F, E> +): <A, B>(f: (b: B) => A) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function contramap<F extends URIS>( + F: Contravariant1<F> +): <A, B>(f: (b: B) => A) => (fa: Kind<F, A>) => Kind<F, B> +export declare function contramap<F>(F: Contravariant<F>): <A, B>(f: (b: B) => A) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `mapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function mapWithIndex<F extends URIS4, I>( + F: FunctorWithIndex4<F, I> +): <A, B>(f: (i: I, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function mapWithIndex<F extends URIS3, I>( + F: FunctorWithIndex3<F, I> +): <A, B>(f: (i: I, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function mapWithIndex<F extends URIS3, I, E>( + F: FunctorWithIndex3C<F, I, E> +): <A, B>(f: (i: I, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function mapWithIndex<F extends URIS2, I>( + F: FunctorWithIndex2<F, I> +): <A, B>(f: (i: I, a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function mapWithIndex<F extends URIS2, I, E>( + F: FunctorWithIndex2C<F, I, E> +): <A, B>(f: (i: I, a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function mapWithIndex<F extends URIS, I>( + F: FunctorWithIndex1<F, I> +): <A, B>(f: (i: I, a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +export declare function mapWithIndex<F, I>( + F: FunctorWithIndex<F, I> +): <A, B>(f: (i: I, a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `ap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function ap<F extends URIS4>( + F: Apply4<F> +): <S, R, E, A>(fa: Kind4<F, S, R, E, A>) => <B>(fab: Kind4<F, S, R, E, (a: A) => B>) => Kind4<F, S, R, E, B> +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> +export declare function ap<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <E, A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> +export declare function ap<F extends URIS2, E>( + F: Apply2C<F, E> +): <A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <A>(fa: Kind<F, A>) => <B>(fab: Kind<F, (a: A) => B>) => Kind<F, B> +export declare function ap<F>(F: Apply<F>): <A>(fa: HKT<F, A>) => <B>(fab: HKT<F, (a: A) => B>) => HKT<F, B> +/** + * Returns a pipeable `chain` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function chain<F extends URIS4>( + F: Chain4<F> +): <A, S, R, E, B>(f: (a: A) => Kind4<F, S, R, E, B>) => (fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function chain<F extends URIS3>( + F: Chain3<F> +): <A, R, E, B>(f: (a: A) => Kind3<F, R, E, B>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chain<F extends URIS3, E>( + F: Chain3C<F, E> +): <A, R, B>(f: (a: A) => Kind3<F, R, E, B>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chain<F extends URIS2>( + F: Chain2<F> +): <A, E, B>(f: (a: A) => Kind2<F, E, B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chain<F extends URIS2, E>( + F: Chain2C<F, E> +): <A, B>(f: (a: A) => Kind2<F, E, B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chain<F extends URIS>( + F: Chain1<F> +): <A, B>(f: (a: A) => Kind<F, B>) => (fa: Kind<F, A>) => Kind<F, B> +export declare function chain<F>(F: Chain<F>): <A, B>(f: (a: A) => HKT<F, B>) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `bimap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function bimap<F extends URIS4>( + F: Bifunctor4<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <S, R>(fea: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, B> +export declare function bimap<F extends URIS3>( + F: Bifunctor3<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, B> +export declare function bimap<F extends URIS3, E>( + F: Bifunctor3C<F, E> +): <G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, B> +export declare function bimap<F extends URIS2>( + F: Bifunctor2<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind2<F, E, A>) => Kind2<F, G, B> +export declare function bimap<F extends URIS2, E>( + F: Bifunctor2C<F, E> +): <G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind2<F, E, A>) => Kind2<F, G, B> +export declare function bimap<F>( + F: Bifunctor<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: HKT2<F, E, A>) => HKT2<F, G, B> +/** + * Returns a pipeable `mapLeft` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function mapLeft<F extends URIS4>( + F: Bifunctor4<F> +): <E, G>(f: (e: E) => G) => <S, R, A>(fea: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, A> +export declare function mapLeft<F extends URIS3>( + F: Bifunctor3<F> +): <E, G>(f: (e: E) => G) => <R, A>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +export declare function mapLeft<F extends URIS3, E>( + F: Bifunctor3C<F, E> +): <E, G>(f: (e: E) => G) => <R, A>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +export declare function mapLeft<F extends URIS2>( + F: Bifunctor2<F> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind2<F, E, A>) => Kind2<F, G, A> +export declare function mapLeft<F extends URIS2, E>( + F: Bifunctor2C<F, E> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind2<F, E, A>) => Kind2<F, G, A> +export declare function mapLeft<F>(F: Bifunctor<F>): <E, G>(f: (e: E) => G) => <A>(fea: HKT2<F, E, A>) => HKT2<F, G, A> +/** + * Returns a pipeable `extend` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function extend<F extends URIS4>( + F: Extend4<F> +): <S, R, E, A, B>(f: (wa: Kind4<F, S, R, E, A>) => B) => (wa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function extend<F extends URIS3>( + F: Extend3<F> +): <R, E, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function extend<F extends URIS3, E>( + F: Extend3C<F, E> +): <R, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function extend<F extends URIS2>( + F: Extend2<F> +): <E, A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function extend<F extends URIS2, E>( + F: Extend2C<F, E> +): <A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function extend<F extends URIS>( + F: Extend1<F> +): <A, B>(f: (wa: Kind<F, A>) => B) => (wa: Kind<F, A>) => Kind<F, B> +export declare function extend<F>(F: Extend<F>): <A, B>(f: (wa: HKT<F, A>) => B) => (wa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `reduce` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduce<F extends URIS4>( + F: Foldable4<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduce<F extends URIS3>( + F: Foldable3<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduce<F extends URIS3, E>( + F: Foldable3C<F, E> +): <A, B>(b: B, f: (b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduce<F extends URIS2>( + F: Foldable2<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduce<F extends URIS2, E>( + F: Foldable2C<F, E> +): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduce<F extends URIS>( + F: Foldable1<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind<F, A>) => B +export declare function reduce<F>(F: Foldable<F>): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `foldMap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function foldMap<F extends URIS4>( + F: Foldable4<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M +export declare function foldMap<F extends URIS3>( + F: Foldable3<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M +export declare function foldMap<F extends URIS3, E>( + F: Foldable3C<F, E> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M +export declare function foldMap<F extends URIS2>( + F: Foldable2<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: Kind2<F, E, A>) => M +export declare function foldMap<F extends URIS2, E>( + F: Foldable2C<F, E> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind2<F, E, A>) => M +export declare function foldMap<F extends URIS>( + F: Foldable1<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind<F, A>) => M +export declare function foldMap<F>(F: Foldable<F>): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: HKT<F, A>) => M +/** + * Returns a pipeable `reduceRight` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduceRight<F extends URIS4>( + F: Foldable4<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduceRight<F extends URIS3>( + F: Foldable3<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRight<F extends URIS3, E>( + F: Foldable3C<F, E> +): <A, B>(b: B, f: (a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRight<F extends URIS2>( + F: Foldable2<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduceRight<F extends URIS2, E>( + F: Foldable2C<F, E> +): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduceRight<F extends URIS>( + F: Foldable1<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind<F, A>) => B +export declare function reduceRight<F>(F: Foldable<F>): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `reduceWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduceWithIndex<F extends URIS4, I>( + F: FoldableWithIndex4<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduceWithIndex<F extends URIS3, I>( + F: FoldableWithIndex3<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduceWithIndex<F extends URIS3, I, E>( + F: FoldableWithIndex3C<F, I, E> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduceWithIndex<F extends URIS2, I>( + F: FoldableWithIndex2<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduceWithIndex<F extends URIS2, I, E>( + F: FoldableWithIndex2C<F, I, E> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduceWithIndex<F extends URIS, I>( + F: FoldableWithIndex1<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind<F, A>) => B +export declare function reduceWithIndex<F, I>( + F: FoldableWithIndex<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `foldMapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function foldMapWithIndex<F extends URIS4, I>( + F: FoldableWithIndex4<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M +export declare function foldMapWithIndex<F extends URIS3, I>( + F: FoldableWithIndex3<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M +export declare function foldMapWithIndex<F extends URIS3, I, E>( + F: FoldableWithIndex3C<F, I, E> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M +export declare function foldMapWithIndex<F extends URIS2, I>( + F: FoldableWithIndex2<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <E>(fa: Kind2<F, E, A>) => M +export declare function foldMapWithIndex<F extends URIS2, I, E>( + F: FoldableWithIndex2C<F, I, E> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind2<F, E, A>) => M +export declare function foldMapWithIndex<F extends URIS, I>( + F: FoldableWithIndex1<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind<F, A>) => M +export declare function foldMapWithIndex<F, I>( + F: FoldableWithIndex<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: HKT<F, A>) => M +/** + * Returns a pipeable `reduceRightWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduceRightWithIndex<F extends URIS4, I>( + F: FoldableWithIndex4<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS3, I>( + F: FoldableWithIndex3<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS3, I, E>( + F: FoldableWithIndex3C<F, I, E> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS2, I>( + F: FoldableWithIndex2<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS2, I, E>( + F: FoldableWithIndex2C<F, I, E> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS, I>( + F: FoldableWithIndex1<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind<F, A>) => B +export declare function reduceRightWithIndex<F, I>( + F: FoldableWithIndex<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `alt` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function alt<F extends URIS4>( + F: Alt4<F> +): <S, R, E, A>(that: LazyArg<Kind4<F, S, R, E, A>>) => (fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +export declare function alt<F extends URIS3>( + F: Alt3<F> +): <R, E, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function alt<F extends URIS3, E>( + F: Alt3C<F, E> +): <R, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function alt<F extends URIS2>( + F: Alt2<F> +): <E, A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function alt<F extends URIS2, E>( + F: Alt2C<F, E> +): <A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function alt<F extends URIS>( + F: Alt1<F> +): <A>(that: LazyArg<Kind<F, A>>) => (fa: Kind<F, A>) => Kind<F, A> +export declare function alt<F>(F: Alt<F>): <A>(that: LazyArg<HKT<F, A>>) => (fa: HKT<F, A>) => HKT<F, A> +/** + * Returns a pipeable `filter` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filter<F extends URIS4>( + F: Filterable4<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + <A>(predicate: Predicate<A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +} +export declare function filter<F extends URIS3>( + F: Filterable3<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filter<F extends URIS3, E>( + F: Filterable3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filter<F extends URIS2>( + F: Filterable2<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filter<F extends URIS2, E>( + F: Filterable2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filter<F extends URIS>( + F: Filterable1<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Kind<F, A> +} +export declare function filter<F>(F: Filterable<F>): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => HKT<F, A> +} +/** + * Returns a pipeable `filterMap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filterMap<F extends URIS4>( + F: Filterable4<F> +): <A, B>(f: (a: A) => Option<B>) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function filterMap<F extends URIS3>( + F: Filterable3<F> +): <A, B>(f: (a: A) => Option<B>) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMap<F extends URIS3, E>( + F: Filterable3C<F, E> +): <A, B>(f: (a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMap<F extends URIS2>( + F: Filterable2<F> +): <A, B>(f: (a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMap<F extends URIS2, E>( + F: Filterable2C<F, E> +): <A, B>(f: (a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMap<F extends URIS>( + F: Filterable1<F> +): <A, B>(f: (a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> +export declare function filterMap<F>(F: Filterable<F>): <A, B>(f: (a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `partition` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partition<F extends URIS4>( + F: Filterable4<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicate: Predicate<A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> +} +export declare function partition<F extends URIS3>( + F: Filterable3<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partition<F extends URIS3, E>( + F: Filterable3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partition<F extends URIS2>( + F: Filterable2<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partition<F extends URIS2, E>( + F: Filterable2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partition<F extends URIS>( + F: Filterable1<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> +} +export declare function partition<F>(F: Filterable<F>): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> +} +/** + * Returns a pipeable `partitionMap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partitionMap<F extends URIS4>( + F: Filterable4<F> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +export declare function partitionMap<F extends URIS3>( + F: Filterable3<F> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMap<F extends URIS3, E>( + F: Filterable3C<F, E> +): <A, B, C>(f: (a: A) => Either<B, C>) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMap<F extends URIS2>( + F: Filterable2<F> +): <A, B, C>(f: (a: A) => Either<B, C>) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMap<F extends URIS2, E>( + F: Filterable2C<F, E> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMap<F extends URIS>( + F: Filterable1<F> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +export declare function partitionMap<F>( + F: Filterable<F> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +/** + * Returns a pipeable `filterWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filterWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Kind4<F, S, R, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +} +export declare function filterWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filterWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filterWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filterWithIndex<F extends URIS2, E, I>( + F: FilterableWithIndex2C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filterWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Kind<F, A> +} +export declare function filterWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicate: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => HKT<F, A> +} +/** + * Returns a pipeable `filterMapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filterMapWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function filterMapWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMapWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): <A, B>(f: (i: I, a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMapWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMapWithIndex<F extends URIS2, I, E>( + F: FilterableWithIndex2C<F, I, E> +): <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMapWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> +export declare function filterMapWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `partitionWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partitionWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> +} +export declare function partitionWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partitionWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partitionWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <E>( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partitionWithIndex<F extends URIS2, I, E>( + F: FilterableWithIndex2C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): ( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partitionWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> +} +export declare function partitionWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicate: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> +} +/** + * Returns a pipeable `partitionMapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partitionMapWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): <A, B, C>( + f: (i: I, a: A) => Either<B, C> +) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +export declare function partitionMapWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): <A, B, C>( + f: (i: I, a: A) => Either<B, C> +) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMapWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): <A, B, C>( + f: (i: I, a: A) => Either<B, C> +) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMapWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMapWithIndex<F extends URIS2, I, E>( + F: FilterableWithIndex2C<F, I, E> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMapWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +export declare function partitionMapWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +/** + * Returns a pipeable `promap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function promap<F extends URIS4>( + F: Profunctor4<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => <S, R>(fbc: Kind4<F, S, R, E, A>) => Kind4<F, S, R, D, B> +export declare function promap<F extends URIS3>( + F: Profunctor3<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => <R>(fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +export declare function promap<F extends URIS3, E>( + F: Profunctor3C<F, E> +): <A, D, B>(f: (d: D) => E, g: (a: A) => B) => <R>(fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +export declare function promap<F extends URIS2>( + F: Profunctor2<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +export declare function promap<F extends URIS2, E>( + F: Profunctor2C<F, E> +): <A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +export declare function promap<F>( + F: Profunctor<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: HKT2<F, E, A>) => HKT2<F, D, B> +/** + * Returns a pipeable `compose` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function compose<F extends URIS4>( + F: Semigroupoid4<F> +): <S, R, E, A>(ea: Kind4<F, S, R, E, A>) => <B>(ab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, E, B> +export declare function compose<F extends URIS3>( + F: Semigroupoid3<F> +): <R, E, A>(ea: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +export declare function compose<F extends URIS3, E>( + F: Semigroupoid3C<F, E> +): <R, A>(ea: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +export declare function compose<F extends URIS2>( + F: Semigroupoid2<F> +): <E, A>(ea: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +export declare function compose<F extends URIS2, E>( + F: Semigroupoid2C<F, E> +): <A>(ea: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +export declare function compose<F>( + F: Semigroupoid<F> +): <E, A>(ea: HKT2<F, E, A>) => <B>(ab: HKT2<F, A, B>) => HKT2<F, E, B> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor<F> { + readonly map: <A, B>(f: (a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor1<F extends URIS> { + readonly map: <A, B>(f: (a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor2<F extends URIS2> { + readonly map: <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor2C<F extends URIS2, E> { + readonly map: <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor3<F extends URIS3> { + readonly map: <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFunctor3C<F extends URIS3, E> { + readonly map: <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor4<F extends URIS4> { + readonly map: <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant<F> { + readonly contramap: <A, B>(f: (b: B) => A) => (fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant1<F extends URIS> { + readonly contramap: <A, B>(f: (b: B) => A) => (fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant2<F extends URIS2> { + readonly contramap: <A, B>(f: (b: B) => A) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant2C<F extends URIS2, E> { + readonly contramap: <A, B>(f: (b: B) => A) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant3<F extends URIS3> { + readonly contramap: <A, B>(f: (b: B) => A) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableContravariant3C<F extends URIS3, E> { + readonly contramap: <A, B>(f: (b: B) => A) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant4<F extends URIS4> { + readonly contramap: <A, B>(f: (b: B) => A) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex<F, I> extends PipeableFunctor<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex1<F extends URIS, I> extends PipeableFunctor1<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex2<F extends URIS2, I> extends PipeableFunctor2<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex2C<F extends URIS2, I, E> extends PipeableFunctor2C<F, E> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex3<F extends URIS3, I> extends PipeableFunctor3<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex3C<F extends URIS3, I, E> extends PipeableFunctor3C<F, E> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex4<F extends URIS4, I> extends PipeableFunctor4<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply<F> extends PipeableFunctor<F> { + readonly ap: <A>(fa: HKT<F, A>) => <B>(fab: HKT<F, (a: A) => B>) => HKT<F, B> + readonly apFirst: <B>(fb: HKT<F, B>) => <A>(fa: HKT<F, A>) => HKT<F, A> + readonly apSecond: <B>(fb: HKT<F, B>) => <A>(fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply1<F extends URIS> extends PipeableFunctor1<F> { + readonly ap: <A>(fa: Kind<F, A>) => <B>(fab: Kind<F, (a: A) => B>) => Kind<F, B> + readonly apFirst: <B>(fb: Kind<F, B>) => <A>(fa: Kind<F, A>) => Kind<F, A> + readonly apSecond: <B>(fb: Kind<F, B>) => <A>(fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply2<F extends URIS2> extends PipeableFunctor2<F> { + readonly ap: <E, A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> + readonly apFirst: <E, B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + readonly apSecond: <E, B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply2C<F extends URIS2, E> extends PipeableFunctor2C<F, E> { + readonly ap: <A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> + readonly apFirst: <B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + readonly apSecond: <B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply3<F extends URIS3> extends PipeableFunctor3<F> { + readonly ap: <R, E, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> + readonly apFirst: <R, E, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly apSecond: <R, E, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableApply3C<F extends URIS3, E> extends PipeableFunctor3C<F, E> { + readonly ap: <R, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> + readonly apFirst: <R, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly apSecond: <R, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply4<F extends URIS4> extends PipeableFunctor4<F> { + readonly ap: <S, R, E, A>( + fa: Kind4<F, S, R, E, A> + ) => <B>(fab: Kind4<F, S, R, E, (a: A) => B>) => Kind4<F, S, R, E, B> + readonly apFirst: <S, R, E, B>(fb: Kind4<F, S, R, E, B>) => <A>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly apSecond: <S, R, E, B>(fb: Kind4<F, S, R, E, B>) => <A>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain<F> extends PipeableApply<F> { + readonly chain: <A, B>(f: (a: A) => HKT<F, B>) => (ma: HKT<F, A>) => HKT<F, B> + readonly chainFirst: <A, B>(f: (a: A) => HKT<F, B>) => (ma: HKT<F, A>) => HKT<F, A> + readonly flatten: <A>(mma: HKT<F, HKT<F, A>>) => HKT<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain1<F extends URIS> extends PipeableApply1<F> { + readonly chain: <A, B>(f: (a: A) => Kind<F, B>) => (ma: Kind<F, A>) => Kind<F, B> + readonly chainFirst: <A, B>(f: (a: A) => Kind<F, B>) => (ma: Kind<F, A>) => Kind<F, A> + readonly flatten: <A>(mma: Kind<F, Kind<F, A>>) => Kind<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain2<F extends URIS2> extends PipeableApply2<F> { + readonly chain: <E, A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> + readonly chainFirst: <E, A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, A> + readonly flatten: <E, A>(mma: Kind2<F, E, Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain2C<F extends URIS2, E> extends PipeableApply2C<F, E> { + readonly chain: <A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> + readonly chainFirst: <A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, A> + readonly flatten: <A>(mma: Kind2<F, E, Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain3<F extends URIS3> extends PipeableApply3<F> { + readonly chain: <R, E, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly chainFirst: <R, E, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly flatten: <R, E, A>(mma: Kind3<F, R, E, Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableChain3C<F extends URIS3, E> extends PipeableApply3C<F, E> { + readonly chain: <R, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly chainFirst: <R, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly flatten: <R, A>(mma: Kind3<F, R, E, Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain4<F extends URIS4> extends PipeableApply4<F> { + readonly chain: <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> + ) => (ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + readonly chainFirst: <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> + ) => (ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly flatten: <S, R, E, A>(mma: Kind4<F, S, R, E, Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend<F> extends PipeableFunctor<F> { + readonly extend: <A, B>(f: (wa: HKT<F, A>) => B) => (wa: HKT<F, A>) => HKT<F, B> + readonly duplicate: <A>(wa: HKT<F, A>) => HKT<F, HKT<F, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend1<F extends URIS> extends PipeableFunctor1<F> { + readonly extend: <A, B>(f: (wa: Kind<F, A>) => B) => (wa: Kind<F, A>) => Kind<F, B> + readonly duplicate: <A>(wa: Kind<F, A>) => Kind<F, Kind<F, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend2<F extends URIS2> extends PipeableFunctor2<F> { + readonly extend: <E, A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly duplicate: <E, A>(wa: Kind2<F, E, A>) => Kind2<F, E, Kind2<F, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend2C<F extends URIS2, E> extends PipeableFunctor2C<F, E> { + readonly extend: <A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly duplicate: <A>(wa: Kind2<F, E, A>) => Kind2<F, E, Kind2<F, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend3<F extends URIS3> extends PipeableFunctor3<F> { + readonly extend: <R, E, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly duplicate: <R, E, A>(wa: Kind3<F, R, E, A>) => Kind3<F, R, E, Kind3<F, R, E, A>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableExtend3C<F extends URIS3, E> extends PipeableFunctor3C<F, E> { + readonly extend: <R, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly duplicate: <R, A>(wa: Kind3<F, R, E, A>) => Kind3<F, R, E, Kind3<F, R, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend4<F extends URIS4> extends PipeableFunctor4<F> { + readonly extend: <S, R, E, A, B>( + f: (wa: Kind4<F, S, R, E, A>) => B + ) => (wa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + readonly duplicate: <S, R, E, A>(wa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, Kind4<F, S, R, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor<F> { + readonly bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: HKT2<F, E, A>) => HKT2<F, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: HKT2<F, E, A>) => HKT2<F, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor2<F extends URIS2> { + readonly bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Kind2<F, E, A>) => Kind2<F, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor3<F extends URIS3> { + readonly bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <R, A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableBifunctor3C<F extends URIS3, E> { + readonly bimap: <G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, B> + readonly mapLeft: <G>(f: (e: E) => G) => <R, A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor4<F extends URIS4> { + readonly bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B + ) => <S, R>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <S, R, A>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable<F> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: HKT<F, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: HKT<F, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: HKT<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable1<F extends URIS> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind<F, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind<F, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable2<F extends URIS2> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: Kind2<F, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable2C<F extends URIS2, E> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind2<F, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable3<F extends URIS3> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFoldable3C<F extends URIS3, E> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable4<F extends URIS4> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex<F, I> extends PipeableFoldable<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: HKT<F, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: HKT<F, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: HKT<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex1<F extends URIS, I> extends PipeableFoldable1<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind<F, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind<F, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex2<F extends URIS2, I> extends PipeableFoldable2<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <E>(fa: Kind2<F, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex2C<F extends URIS2, I, E> extends PipeableFoldable2C<F, E> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind2<F, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex3<F extends URIS3, I> extends PipeableFoldable3<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex3C<F extends URIS3, I, E> extends PipeableFoldable3C<F, E> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex4<F extends URIS4, I> extends PipeableFoldable4<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt<F> { + readonly alt: <A>(that: LazyArg<HKT<F, A>>) => (fa: HKT<F, A>) => HKT<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt1<F extends URIS> { + readonly alt: <A>(that: LazyArg<Kind<F, A>>) => (fa: Kind<F, A>) => Kind<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt2<F extends URIS2> { + readonly alt: <E, A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt2C<F extends URIS2, E> { + readonly alt: <A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt3<F extends URIS3> { + readonly alt: <R, E, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableAlt3C<F extends URIS3, E> { + readonly alt: <R, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt4<F extends URIS4> { + readonly alt: <S, R, E, A>(that: LazyArg<Kind4<F, S, R, E, A>>) => (fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable<F> { + readonly compact: <A>(fa: HKT<F, Option<A>>) => HKT<F, A> + readonly separate: <A, B>(fa: HKT<F, Either<A, B>>) => Separated<HKT<F, A>, HKT<F, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable1<F extends URIS> { + readonly compact: <A>(fa: Kind<F, Option<A>>) => Kind<F, A> + readonly separate: <A, B>(fa: Kind<F, Either<A, B>>) => Separated<Kind<F, A>, Kind<F, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable2<F extends URIS2> { + readonly compact: <E, A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <E, A, B>(fa: Kind2<F, E, Either<A, B>>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable2C<F extends URIS2, E> { + readonly compact: <A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <A, B>(fa: Kind2<F, E, Either<A, B>>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable3<F extends URIS3> { + readonly compact: <R, E, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, E, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableCompactable3C<F extends URIS3, E> { + readonly compact: <R, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable4<F extends URIS4> { + readonly compact: <S, R, E, A>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, A> + readonly separate: <S, R, E, A, B>( + fa: Kind4<F, S, R, E, Either<A, B>> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable<F> extends PipeableCompactable<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => HKT<F, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> + } + readonly partitionMap: <A, B, C>(f: (a: A) => Either<B, C>) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable1<F extends URIS> extends PipeableCompactable1<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Kind<F, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> + } + readonly partitionMap: <A, B, C>(f: (a: A) => Either<B, C>) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable2<F extends URIS2> extends PipeableCompactable2<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable2C<F extends URIS2, E> extends PipeableCompactable2C<F, E> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable3<F extends URIS3> extends PipeableCompactable3<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFilterable3C<F extends URIS3, E> extends PipeableCompactable3C<F, E> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable4<F extends URIS4> extends PipeableCompactable4<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + <A>(predicate: Predicate<A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicate: Predicate<A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex<F, I> extends PipeableFilterable<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => HKT<F, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): ( + fa: HKT<F, A> + ) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex1<F extends URIS, I> extends PipeableFilterable1<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Kind<F, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): ( + fa: Kind<F, A> + ) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex2<F extends URIS2, I> extends PipeableFilterable2<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <E>( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <E>( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex2C<F extends URIS2, I, E> extends PipeableFilterable2C<F, E> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): ( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex3<F extends URIS3, I> extends PipeableFilterable3<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Kind3<F, R, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMapWithIndex: <A, B>( + f: (i: I, a: A) => Option<B> + ) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex3C<F extends URIS3, I, E> extends PipeableFilterable3C<F, E> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex4<F extends URIS4, I> extends PipeableFilterable4<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Kind4<F, S, R, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + } + readonly filterMapWithIndex: <A, B>( + f: (i: I, a: A) => Option<B> + ) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor<F> { + readonly promap: <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: HKT2<F, E, A>) => HKT2<F, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor2<F extends URIS2> extends PipeableFunctor2<F> { + readonly promap: <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor2C<F extends URIS2, E> extends PipeableFunctor2C<F, E> { + readonly promap: <A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor3<F extends URIS3> extends PipeableFunctor3<F> { + readonly promap: <R, E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableProfunctor3C<F extends URIS3, E> extends PipeableFunctor3C<F, E> { + readonly promap: <R, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor4<F extends URIS4> extends PipeableFunctor4<F> { + readonly promap: <S, R, E, A, D, B>( + f: (d: D) => E, + g: (a: A) => B + ) => (fbc: Kind4<F, S, R, E, A>) => Kind4<F, S, R, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid<F> { + readonly compose: <E, A>(la: HKT2<F, E, A>) => <B>(ab: HKT2<F, A, B>) => HKT2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid2<F extends URIS2> { + readonly compose: <E, A>(la: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid2C<F extends URIS2, E> { + readonly compose: <A>(la: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid3<F extends URIS3> { + readonly compose: <R, E, A>(la: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableSemigroupoid3C<F extends URIS3, E> { + readonly compose: <R, A>(la: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid4<F extends URIS4> { + readonly compose: <S, R, E, A>(la: Kind4<F, S, R, E, A>) => <B>(ab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow<F> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => HKT<F, A> + readonly fromEither: <E, A>(ma: Either<E, A>) => HKT<F, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => HKT<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => HKT<F, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: HKT<F, A>) => HKT<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: HKT<F, A>) => HKT<F, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow1<F extends URIS> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => Kind<F, A> + readonly fromEither: <E, A>(ma: Either<E, A>) => Kind<F, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind<F, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind<F, A>) => Kind<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind<F, A>) => Kind<F, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow2<F extends URIS2> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => Kind2<F, E, A> + readonly fromEither: <E, A>(ma: Either<E, A>) => Kind2<F, E, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow2C<F extends URIS2, E> { + readonly fromOption: (onNone: LazyArg<E>) => <A>(ma: Option<A>) => Kind2<F, E, A> + readonly fromEither: <A>(ma: Either<E, A>) => Kind2<F, E, A> + readonly fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> + } + readonly filterOrElse: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow3<F extends URIS3> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <R, A>(ma: Option<A>) => Kind3<F, R, E, A> + readonly fromEither: <R, E, A>(ma: Either<E, A>) => Kind3<F, R, E, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <U>(a: A) => Kind3<F, U, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: Kind3<F, R, E, A> + ) => Kind3<F, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableMonadThrow3C<F extends URIS3, E> { + readonly fromOption: (onNone: LazyArg<E>) => <R, A>(ma: Option<A>) => Kind3<F, R, E, A> + readonly fromEither: <R, A>(ma: Either<E, A>) => Kind3<F, R, E, A> + readonly fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <U>(a: A) => Kind3<F, U, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> + } + readonly filterOrElse: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: Kind3<F, R, E, A> + ) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow4<F extends URIS4> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <S, R, A>(ma: Option<A>) => Kind4<F, S, R, E, A> + readonly fromEither: <S, R, E, A>(ma: Either<E, A>) => Kind4<F, S, R, E, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>( + ma: Kind4<F, S, R, E, A> + ) => Kind4<F, S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function pipeable<F extends URIS4, I>( + I: { + readonly URI: F + } & I +): (I extends Chain4<F> + ? PipeableChain4<F> + : I extends Apply4<F> + ? PipeableApply4<F> + : I extends Functor4<F> + ? PipeableFunctor4<F> + : {}) & + (I extends Contravariant4<F> ? PipeableContravariant4<F> : {}) & + (I extends FunctorWithIndex4<F, infer Ix> ? PipeableFunctorWithIndex4<F, Ix> : {}) & + (I extends Bifunctor4<F> ? PipeableBifunctor4<F> : {}) & + (I extends Extend4<F> ? PipeableExtend4<F> : {}) & + (I extends FoldableWithIndex4<F, infer Ix> + ? PipeableFoldableWithIndex4<F, Ix> + : I extends Foldable4<F> + ? PipeableFoldable4<F> + : {}) & + (I extends Alt4<F> ? PipeableAlt4<F> : {}) & + (I extends FilterableWithIndex4<F, infer Ix> + ? PipeableFilterableWithIndex4<F, Ix> + : I extends Filterable4<F> + ? PipeableFilterable4<F> + : I extends Compactable4<F> + ? PipeableCompactable4<F> + : {}) & + (I extends Profunctor4<F> ? PipeableProfunctor4<F> : {}) & + (I extends Semigroupoid4<F> ? PipeableSemigroupoid4<F> : {}) & + (I extends MonadThrow4<F> ? PipeableMonadThrow4<F> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS3, I>( + I: { + readonly URI: F + } & I +): (I extends Chain3<F> + ? PipeableChain3<F> + : I extends Apply3<F> + ? PipeableApply3<F> + : I extends Functor3<F> + ? PipeableFunctor3<F> + : {}) & + (I extends Contravariant3<F> ? PipeableContravariant3<F> : {}) & + (I extends FunctorWithIndex3<F, infer Ix> ? PipeableFunctorWithIndex3<F, Ix> : {}) & + (I extends Bifunctor3<F> ? PipeableBifunctor3<F> : {}) & + (I extends Extend3<F> ? PipeableExtend3<F> : {}) & + (I extends FoldableWithIndex3<F, infer Ix> + ? PipeableFoldableWithIndex3<F, Ix> + : I extends Foldable3<F> + ? PipeableFoldable3<F> + : {}) & + (I extends Alt3<F> ? PipeableAlt3<F> : {}) & + (I extends FilterableWithIndex3<F, infer Ix> + ? PipeableFilterableWithIndex3<F, Ix> + : I extends Filterable3<F> + ? PipeableFilterable3<F> + : I extends Compactable3<F> + ? PipeableCompactable3<F> + : {}) & + (I extends Profunctor3<F> ? PipeableProfunctor3<F> : {}) & + (I extends Semigroupoid3<F> ? PipeableSemigroupoid3<F> : {}) & + (I extends MonadThrow3<F> ? PipeableMonadThrow3<F> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS3, I, E>( + I: { + readonly URI: F + } & I +): (I extends Chain3C<F, E> + ? PipeableChain3C<F, E> + : I extends Apply3C<F, E> + ? PipeableApply3C<F, E> + : I extends Functor3C<F, E> + ? PipeableFunctor3C<F, E> + : {}) & + (I extends Contravariant3C<F, E> ? PipeableContravariant3C<F, E> : {}) & + (I extends FunctorWithIndex3C<F, infer Ix, E> ? PipeableFunctorWithIndex3C<F, Ix, E> : {}) & + (I extends Bifunctor3C<F, E> ? PipeableBifunctor3C<F, E> : {}) & + (I extends Extend3C<F, E> ? PipeableExtend3C<F, E> : {}) & + (I extends FoldableWithIndex3C<F, infer Ix, E> + ? PipeableFoldableWithIndex3C<F, Ix, E> + : I extends Foldable3C<F, E> + ? PipeableFoldable3C<F, E> + : {}) & + (I extends Alt3C<F, E> ? PipeableAlt3C<F, E> : {}) & + (I extends FilterableWithIndex3C<F, infer Ix, E> + ? PipeableFilterableWithIndex3C<F, Ix, E> + : I extends Filterable3C<F, E> + ? PipeableFilterable3C<F, E> + : I extends Compactable3C<F, E> + ? PipeableCompactable3C<F, E> + : {}) & + (I extends Profunctor3C<F, E> ? PipeableProfunctor3C<F, E> : {}) & + (I extends Semigroupoid3C<F, E> ? PipeableSemigroupoid3C<F, E> : {}) & + (I extends MonadThrow3C<F, E> ? PipeableMonadThrow3C<F, E> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS2, I, E>( + I: { + readonly URI: F + readonly _E: E + } & I +): (I extends Chain2C<F, E> + ? PipeableChain2C<F, E> + : I extends Apply2C<F, E> + ? PipeableApply2C<F, E> + : I extends Functor2C<F, E> + ? PipeableFunctor2C<F, E> + : {}) & + (I extends Contravariant2C<F, E> ? PipeableContravariant2C<F, E> : {}) & + (I extends FunctorWithIndex2C<F, infer Ix, E> ? PipeableFunctorWithIndex2C<F, Ix, E> : {}) & + (I extends Extend2C<F, E> ? PipeableExtend2C<F, E> : {}) & + (I extends FoldableWithIndex2C<F, infer Ix, E> + ? PipeableFoldableWithIndex2C<F, Ix, E> + : I extends Foldable2C<F, E> + ? PipeableFoldable2C<F, E> + : {}) & + (I extends Alt2C<F, E> ? PipeableAlt2C<F, E> : {}) & + (I extends FilterableWithIndex2C<F, infer Ix, E> + ? PipeableFilterableWithIndex2C<F, Ix, E> + : I extends Filterable2C<F, E> + ? PipeableFilterable2C<F, E> + : I extends Compactable2C<F, E> + ? PipeableCompactable2C<F, E> + : {}) & + (I extends Profunctor2C<F, E> ? PipeableProfunctor2C<F, E> : {}) & + (I extends Semigroupoid2C<F, E> ? PipeableSemigroupoid2C<F, E> : {}) & + (I extends MonadThrow2C<F, E> ? PipeableMonadThrow2C<F, E> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS2, I>( + I: { + readonly URI: F + } & I +): (I extends Chain2<F> + ? PipeableChain2<F> + : I extends Apply2<F> + ? PipeableApply2<F> + : I extends Functor2<F> + ? PipeableFunctor2<F> + : {}) & + (I extends Contravariant2<F> ? PipeableContravariant2<F> : {}) & + (I extends FunctorWithIndex2<F, infer Ix> ? PipeableFunctorWithIndex2<F, Ix> : {}) & + (I extends Bifunctor2<F> ? PipeableBifunctor2<F> : {}) & + (I extends Extend2<F> ? PipeableExtend2<F> : {}) & + (I extends FoldableWithIndex2<F, infer Ix> + ? PipeableFoldableWithIndex2<F, Ix> + : I extends Foldable2<F> + ? PipeableFoldable2<F> + : {}) & + (I extends Alt2<F> ? PipeableAlt2<F> : {}) & + (I extends FilterableWithIndex2<F, infer Ix> + ? PipeableFilterableWithIndex2<F, Ix> + : I extends Filterable2<F> + ? PipeableFilterable2<F> + : I extends Compactable2<F> + ? PipeableCompactable2<F> + : {}) & + (I extends Profunctor2<F> ? PipeableProfunctor2<F> : {}) & + (I extends Semigroupoid2<F> ? PipeableSemigroupoid2<F> : {}) & + (I extends MonadThrow2<F> ? PipeableMonadThrow2<F> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS, I>( + I: { + readonly URI: F + } & I +): (I extends Chain1<F> + ? PipeableChain1<F> + : I extends Apply1<F> + ? PipeableApply1<F> + : I extends Functor1<F> + ? PipeableFunctor1<F> + : {}) & + (I extends Contravariant1<F> ? PipeableContravariant1<F> : {}) & + (I extends FunctorWithIndex1<F, infer Ix> ? PipeableFunctorWithIndex1<F, Ix> : {}) & + (I extends Extend1<F> ? PipeableExtend1<F> : {}) & + (I extends FoldableWithIndex1<F, infer Ix> + ? PipeableFoldableWithIndex1<F, Ix> + : I extends Foldable1<F> + ? PipeableFoldable1<F> + : {}) & + (I extends Alt1<F> ? PipeableAlt1<F> : {}) & + (I extends FilterableWithIndex1<F, infer Ix> + ? PipeableFilterableWithIndex1<F, Ix> + : I extends Filterable1<F> + ? PipeableFilterable1<F> + : I extends Compactable1<F> + ? PipeableCompactable1<F> + : {}) & + (I extends MonadThrow1<F> ? PipeableMonadThrow1<F> : {}) +/** @deprecated */ +export declare function pipeable<F, I>( + I: { + readonly URI: F + } & I +): (I extends Chain<F> + ? PipeableChain<F> + : I extends Apply<F> + ? PipeableApply<F> + : I extends Functor<F> + ? PipeableFunctor<F> + : {}) & + (I extends Contravariant<F> ? PipeableContravariant<F> : {}) & + (I extends FunctorWithIndex<F, infer Ix> ? PipeableFunctorWithIndex<F, Ix> : {}) & + (I extends Bifunctor<F> ? PipeableBifunctor<F> : {}) & + (I extends Extend<F> ? PipeableExtend<F> : {}) & + (I extends FoldableWithIndex<F, infer Ix> + ? PipeableFoldableWithIndex<F, Ix> + : I extends Foldable<F> + ? PipeableFoldable<F> + : {}) & + (I extends Alt<F> ? PipeableAlt<F> : {}) & + (I extends FilterableWithIndex<F, infer Ix> + ? PipeableFilterableWithIndex<F, Ix> + : I extends Filterable<F> + ? PipeableFilterable<F> + : I extends Compactable<F> + ? PipeableCompactable<F> + : {}) & + (I extends Profunctor<F> ? PipeableProfunctor<F> : {}) & + (I extends Semigroupoid<F> ? PipeableSemigroupoid<F> : {}) & + (I extends MonadThrow<F> ? PipeableMonadThrow<F> : {}) +/** + * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#pipe) from `function` module instead. + * + * @since 2.0.0 + * @deprecated + */ +export declare const pipe: typeof pipeFromFunctionModule diff --git a/node_modules/fp-ts/es6/pipeable.js b/node_modules/fp-ts/es6/pipeable.js new file mode 100644 index 0000000..2a5384b --- /dev/null +++ b/node_modules/fp-ts/es6/pipeable.js @@ -0,0 +1,198 @@ +import { apFirst as apFirst_, apSecond as apSecond_ } from './Apply'; +import { chainFirst as chainFirst_ } from './Chain'; +import { identity, pipe as pipeFromFunctionModule } from './function'; +export function map(F) { + return function (f) { return function (fa) { return F.map(fa, f); }; }; +} +export function contramap(F) { + return function (f) { return function (fa) { return F.contramap(fa, f); }; }; +} +export function mapWithIndex(F) { + return function (f) { return function (fa) { return F.mapWithIndex(fa, f); }; }; +} +export function ap(F) { + return function (fa) { return function (fab) { return F.ap(fab, fa); }; }; +} +export function chain(F) { + return function (f) { return function (fa) { return F.chain(fa, f); }; }; +} +export function bimap(F) { + return function (f, g) { return function (fea) { return F.bimap(fea, f, g); }; }; +} +export function mapLeft(F) { + return function (f) { return function (fea) { return F.mapLeft(fea, f); }; }; +} +export function extend(F) { + return function (f) { return function (wa) { return F.extend(wa, f); }; }; +} +export function reduce(F) { + return function (b, f) { return function (fa) { return F.reduce(fa, b, f); }; }; +} +export function foldMap(F) { + return function (M) { + var foldMapM = F.foldMap(M); + return function (f) { return function (fa) { return foldMapM(fa, f); }; }; + }; +} +export function reduceRight(F) { + return function (b, f) { return function (fa) { return F.reduceRight(fa, b, f); }; }; +} +export function reduceWithIndex(F) { + return function (b, f) { return function (fa) { return F.reduceWithIndex(fa, b, f); }; }; +} +export function foldMapWithIndex(F) { + return function (M) { + var foldMapWithIndexM = F.foldMapWithIndex(M); + return function (f) { return function (fa) { return foldMapWithIndexM(fa, f); }; }; + }; +} +export function reduceRightWithIndex(F) { + return function (b, f) { return function (fa) { return F.reduceRightWithIndex(fa, b, f); }; }; +} +export function alt(F) { + return function (that) { return function (fa) { return F.alt(fa, that); }; }; +} +export function filter(F) { + return function (predicate) { return function (fa) { return F.filter(fa, predicate); }; }; +} +export function filterMap(F) { + return function (f) { return function (fa) { return F.filterMap(fa, f); }; }; +} +export function partition(F) { + return function (f) { return function (fa) { return F.partition(fa, f); }; }; +} +export function partitionMap(F) { + return function (f) { return function (fa) { return F.partitionMap(fa, f); }; }; +} +export function filterWithIndex(F) { + return function (predicate) { return function (fa) { return F.filterWithIndex(fa, predicate); }; }; +} +export function filterMapWithIndex(F) { + return function (f) { return function (fa) { return F.filterMapWithIndex(fa, f); }; }; +} +export function partitionWithIndex(F) { + return function (f) { return function (fa) { return F.partitionWithIndex(fa, f); }; }; +} +export function partitionMapWithIndex(F) { + return function (f) { return function (fa) { return F.partitionMapWithIndex(fa, f); }; }; +} +export function promap(F) { + return function (f, g) { return function (fbc) { return F.promap(fbc, f, g); }; }; +} +export function compose(F) { + return function (ea) { return function (ab) { return F.compose(ab, ea); }; }; +} +var isFunctor = function (I) { return typeof I.map === 'function'; }; +var isContravariant = function (I) { return typeof I.contramap === 'function'; }; +var isFunctorWithIndex = function (I) { return typeof I.mapWithIndex === 'function'; }; +var isApply = function (I) { return typeof I.ap === 'function'; }; +var isChain = function (I) { return typeof I.chain === 'function'; }; +var isBifunctor = function (I) { return typeof I.bimap === 'function'; }; +var isExtend = function (I) { return typeof I.extend === 'function'; }; +var isFoldable = function (I) { return typeof I.reduce === 'function'; }; +var isFoldableWithIndex = function (I) { return typeof I.reduceWithIndex === 'function'; }; +var isAlt = function (I) { return typeof I.alt === 'function'; }; +var isCompactable = function (I) { return typeof I.compact === 'function'; }; +var isFilterable = function (I) { return typeof I.filter === 'function'; }; +var isFilterableWithIndex = function (I) { + return typeof I.filterWithIndex === 'function'; +}; +var isProfunctor = function (I) { return typeof I.promap === 'function'; }; +var isSemigroupoid = function (I) { return typeof I.compose === 'function'; }; +var isMonadThrow = function (I) { return typeof I.throwError === 'function'; }; +/** @deprecated */ +export function pipeable(I) { + var r = {}; + if (isFunctor(I)) { + r.map = map(I); + } + if (isContravariant(I)) { + r.contramap = contramap(I); + } + if (isFunctorWithIndex(I)) { + r.mapWithIndex = mapWithIndex(I); + } + if (isApply(I)) { + r.ap = ap(I); + r.apFirst = apFirst_(I); + r.apSecond = apSecond_(I); + } + if (isChain(I)) { + r.chain = chain(I); + r.chainFirst = chainFirst_(I); + r.flatten = r.chain(identity); + } + if (isBifunctor(I)) { + r.bimap = bimap(I); + r.mapLeft = mapLeft(I); + } + if (isExtend(I)) { + r.extend = extend(I); + r.duplicate = r.extend(identity); + } + if (isFoldable(I)) { + r.reduce = reduce(I); + r.foldMap = foldMap(I); + r.reduceRight = reduceRight(I); + } + if (isFoldableWithIndex(I)) { + r.reduceWithIndex = reduceWithIndex(I); + r.foldMapWithIndex = foldMapWithIndex(I); + r.reduceRightWithIndex = reduceRightWithIndex(I); + } + if (isAlt(I)) { + r.alt = alt(I); + } + if (isCompactable(I)) { + r.compact = I.compact; + r.separate = I.separate; + } + if (isFilterable(I)) { + r.filter = filter(I); + r.filterMap = filterMap(I); + r.partition = partition(I); + r.partitionMap = partitionMap(I); + } + if (isFilterableWithIndex(I)) { + r.filterWithIndex = filterWithIndex(I); + r.filterMapWithIndex = filterMapWithIndex(I); + r.partitionWithIndex = partitionWithIndex(I); + r.partitionMapWithIndex = partitionMapWithIndex(I); + } + if (isProfunctor(I)) { + r.promap = promap(I); + } + if (isSemigroupoid(I)) { + r.compose = compose(I); + } + if (isMonadThrow(I)) { + var fromOption = function (onNone) { return function (ma) { + return ma._tag === 'None' ? I.throwError(onNone()) : I.of(ma.value); + }; }; + var fromEither = function (ma) { + return ma._tag === 'Left' ? I.throwError(ma.left) : I.of(ma.right); + }; + var fromPredicate = function (predicate, onFalse) { + return function (a) { + return predicate(a) ? I.of(a) : I.throwError(onFalse(a)); + }; + }; + var filterOrElse = function (predicate, onFalse) { + return function (ma) { + return I.chain(ma, function (a) { return (predicate(a) ? I.of(a) : I.throwError(onFalse(a))); }); + }; + }; + r.fromOption = fromOption; + r.fromEither = fromEither; + r.fromPredicate = fromPredicate; + r.filterOrElse = filterOrElse; + } + return r; +} +/** + * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#pipe) from `function` module instead. + * + * @since 2.0.0 + * @deprecated + */ +export var pipe = pipeFromFunctionModule; diff --git a/node_modules/fp-ts/es6/string.d.ts b/node_modules/fp-ts/es6/string.d.ts new file mode 100644 index 0000000..18930d2 --- /dev/null +++ b/node_modules/fp-ts/es6/string.d.ts @@ -0,0 +1,226 @@ +/** + * @since 2.10.0 + */ +import * as E from './Eq' +import * as M from './Monoid' +import * as O from './Ord' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import * as S from './Semigroup' +import * as Sh from './Show' +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true) + * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<string> +/** + * `string` semigroup under concatenation. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab') + * + * @category instances + * @since 2.10.0 + */ +export declare const Semigroup: S.Semigroup<string> +/** + * An empty `string`. + * + * @since 2.10.0 + */ +export declare const empty = '' +/** + * `string` monoid under concatenation. + * + * The `empty` value is `''`. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab') + * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a') + * + * @category instances + * @since 2.10.0 + */ +export declare const Monoid: M.Monoid<string> +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0) + * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1) + * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1) + * + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<string> +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Show.show('a'), '"a"') + * + * @category instances + * @since 2.10.0 + */ +export declare const Show: Sh.Show<string> +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.isString('a'), true) + * assert.deepStrictEqual(S.isString(1), false) + * + * @category refinements + * @since 2.11.0 + */ +export declare const isString: Refinement<unknown, string> +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A') + * + * @since 2.11.0 + */ +export declare const toUpperCase: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a') + * + * @since 2.11.0 + */ +export declare const toLowerCase: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc') + * + * @since 2.11.0 + */ +export declare const replace: (searchValue: string | RegExp, replaceValue: string) => (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trim), 'a') + * + * @since 2.11.0 + */ +export declare const trim: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ') + * + * @since 2.11.0 + */ +export declare const trimLeft: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a') + * + * @since 2.11.0 + */ +export declare const trimRight: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc') + * + * @since 2.11.0 + */ +export declare const slice: (start: number, end: number) => (s: string) => string +/** + * Test whether a `string` is empty. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('', S.isEmpty), true) + * assert.deepStrictEqual(pipe('a', S.isEmpty), false) + * + * @since 2.10.0 + */ +export declare const isEmpty: (s: string) => boolean +/** + * Calculate the number of characters in a `string`. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.size), 3) + * + * @since 2.10.0 + */ +export declare const size: (s: string) => number +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c']) + * assert.deepStrictEqual(pipe('', S.split('')), ['']) + * + * @since 2.11.0 + */ +export declare const split: (separator: string | RegExp) => (s: string) => ReadonlyNonEmptyArray<string> +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.includes('b')), true) + * assert.deepStrictEqual(pipe('abc', S.includes('d')), false) + * + * @since 2.11.0 + */ +export declare const includes: (searchString: string, position?: number) => (s: string) => boolean +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true) + * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false) + * + * @since 2.11.0 + */ +export declare const startsWith: (searchString: string, position?: number) => (s: string) => boolean +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true) + * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false) + * + * @since 2.11.0 + */ +export declare const endsWith: (searchString: string, position?: number) => (s: string) => boolean diff --git a/node_modules/fp-ts/es6/string.js b/node_modules/fp-ts/es6/string.js new file mode 100644 index 0000000..eea86fc --- /dev/null +++ b/node_modules/fp-ts/es6/string.js @@ -0,0 +1,266 @@ +import { isNonEmpty } from './ReadonlyNonEmptyArray'; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true) + * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false) + * + * @category instances + * @since 2.10.0 + */ +export var Eq = { + equals: function (first, second) { return first === second; } +}; +/** + * `string` semigroup under concatenation. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab') + * + * @category instances + * @since 2.10.0 + */ +export var Semigroup = { + concat: function (first, second) { return first + second; } +}; +/** + * An empty `string`. + * + * @since 2.10.0 + */ +export var empty = ''; +/** + * `string` monoid under concatenation. + * + * The `empty` value is `''`. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab') + * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a') + * + * @category instances + * @since 2.10.0 + */ +export var Monoid = { + concat: Semigroup.concat, + empty: empty +}; +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0) + * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1) + * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1) + * + * @category instances + * @since 2.10.0 + */ +export var Ord = { + equals: Eq.equals, + compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); } +}; +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Show.show('a'), '"a"') + * + * @category instances + * @since 2.10.0 + */ +export var Show = { + show: function (s) { return JSON.stringify(s); } +}; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.isString('a'), true) + * assert.deepStrictEqual(S.isString(1), false) + * + * @category refinements + * @since 2.11.0 + */ +export var isString = function (u) { return typeof u === 'string'; }; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A') + * + * @since 2.11.0 + */ +export var toUpperCase = function (s) { return s.toUpperCase(); }; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a') + * + * @since 2.11.0 + */ +export var toLowerCase = function (s) { return s.toLowerCase(); }; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc') + * + * @since 2.11.0 + */ +export var replace = function (searchValue, replaceValue) { + return function (s) { + return s.replace(searchValue, replaceValue); + }; +}; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trim), 'a') + * + * @since 2.11.0 + */ +export var trim = function (s) { return s.trim(); }; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ') + * + * @since 2.11.0 + */ +export var trimLeft = function (s) { return s.trimLeft(); }; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a') + * + * @since 2.11.0 + */ +export var trimRight = function (s) { return s.trimRight(); }; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc') + * + * @since 2.11.0 + */ +export var slice = function (start, end) { + return function (s) { + return s.slice(start, end); + }; +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Test whether a `string` is empty. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('', S.isEmpty), true) + * assert.deepStrictEqual(pipe('a', S.isEmpty), false) + * + * @since 2.10.0 + */ +export var isEmpty = function (s) { return s.length === 0; }; +/** + * Calculate the number of characters in a `string`. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.size), 3) + * + * @since 2.10.0 + */ +export var size = function (s) { return s.length; }; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c']) + * assert.deepStrictEqual(pipe('', S.split('')), ['']) + * + * @since 2.11.0 + */ +export var split = function (separator) { + return function (s) { + var out = s.split(separator); + return isNonEmpty(out) ? out : [s]; + }; +}; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.includes('b')), true) + * assert.deepStrictEqual(pipe('abc', S.includes('d')), false) + * + * @since 2.11.0 + */ +export var includes = function (searchString, position) { + return function (s) { + return s.includes(searchString, position); + }; +}; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true) + * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false) + * + * @since 2.11.0 + */ +export var startsWith = function (searchString, position) { + return function (s) { + return s.startsWith(searchString, position); + }; +}; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true) + * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false) + * + * @since 2.11.0 + */ +export var endsWith = function (searchString, position) { + return function (s) { + return s.endsWith(searchString, position); + }; +}; diff --git a/node_modules/fp-ts/es6/struct.d.ts b/node_modules/fp-ts/es6/struct.d.ts new file mode 100644 index 0000000..5cb62e9 --- /dev/null +++ b/node_modules/fp-ts/es6/struct.d.ts @@ -0,0 +1,42 @@ +import { Semigroup } from './Semigroup' +/** + * Return a semigroup which works like `Object.assign`. + * + * @example + * import { getAssignSemigroup } from 'fp-ts/struct' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const S = getAssignSemigroup<Person>() + * assert.deepStrictEqual(S.concat({ name: 'name', age: 23 }, { name: 'name', age: 24 }), { name: 'name', age: 24 }) + * + * @category instances + * @since 2.10.0 + */ +export declare const getAssignSemigroup: <A extends object = never>() => Semigroup<A> +/** + * Creates a new object by recursively evolving a shallow copy of `a`, according to the `transformation` functions. + * + * @example + * import { pipe } from 'fp-ts/function' + * import { evolve } from 'fp-ts/struct' + * + * assert.deepStrictEqual( + * pipe( + * { a: 'a', b: 1 }, + * evolve({ + * a: (a) => a.length, + * b: (b) => b * 2 + * }) + * ), + * { a: 1, b: 2 } + * ) + * + * @since 2.11.0 + */ +export declare const evolve: <A, F extends { [K in keyof A]: (a: A[K]) => unknown }>( + transformations: F +) => (a: A) => { [K in keyof F]: ReturnType<F[K]> } diff --git a/node_modules/fp-ts/es6/struct.js b/node_modules/fp-ts/es6/struct.js new file mode 100644 index 0000000..1870971 --- /dev/null +++ b/node_modules/fp-ts/es6/struct.js @@ -0,0 +1,61 @@ +/** + * @since 2.10.0 + */ +import * as _ from './internal'; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * Return a semigroup which works like `Object.assign`. + * + * @example + * import { getAssignSemigroup } from 'fp-ts/struct' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const S = getAssignSemigroup<Person>() + * assert.deepStrictEqual(S.concat({ name: 'name', age: 23 }, { name: 'name', age: 24 }), { name: 'name', age: 24 }) + * + * @category instances + * @since 2.10.0 + */ +export var getAssignSemigroup = function () { return ({ + concat: function (first, second) { return Object.assign({}, first, second); } +}); }; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Creates a new object by recursively evolving a shallow copy of `a`, according to the `transformation` functions. + * + * @example + * import { pipe } from 'fp-ts/function' + * import { evolve } from 'fp-ts/struct' + * + * assert.deepStrictEqual( + * pipe( + * { a: 'a', b: 1 }, + * evolve({ + * a: (a) => a.length, + * b: (b) => b * 2 + * }) + * ), + * { a: 1, b: 2 } + * ) + * + * @since 2.11.0 + */ +export var evolve = function (transformations) { + return function (a) { + var out = {}; + for (var k in a) { + if (_.has.call(a, k)) { + out[k] = transformations[k](a[k]); + } + } + return out; + }; +}; diff --git a/node_modules/fp-ts/es6/void.d.ts b/node_modules/fp-ts/es6/void.d.ts new file mode 100644 index 0000000..1be270f --- /dev/null +++ b/node_modules/fp-ts/es6/void.d.ts @@ -0,0 +1,15 @@ +/** + * @since 2.11.0 + */ +import * as M from './Monoid' +import * as Se from './Semigroup' +/** + * @category instances + * @since 2.11.0 + */ +export declare const Semigroup: Se.Semigroup<void> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Monoid: M.Monoid<void> diff --git a/node_modules/fp-ts/es6/void.js b/node_modules/fp-ts/es6/void.js new file mode 100644 index 0000000..e3367cc --- /dev/null +++ b/node_modules/fp-ts/es6/void.js @@ -0,0 +1,17 @@ +import * as Se from './Semigroup'; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.11.0 + */ +export var Semigroup = Se.constant(undefined); +/** + * @category instances + * @since 2.11.0 + */ +export var Monoid = { + concat: Semigroup.concat, + empty: undefined +}; diff --git a/node_modules/fp-ts/function/package.json b/node_modules/fp-ts/function/package.json new file mode 100644 index 0000000..00a64b5 --- /dev/null +++ b/node_modules/fp-ts/function/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/function.js", + "module": "../es6/function.js", + "typings": "../lib/function.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/internal/package.json b/node_modules/fp-ts/internal/package.json new file mode 100644 index 0000000..d57a958 --- /dev/null +++ b/node_modules/fp-ts/internal/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/internal.js", + "module": "../es6/internal.js", + "typings": "../lib/internal.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/lib/Alt.d.ts b/node_modules/fp-ts/lib/Alt.d.ts new file mode 100644 index 0000000..6481ffd --- /dev/null +++ b/node_modules/fp-ts/lib/Alt.d.ts @@ -0,0 +1,86 @@ +/** + * The `Alt` type class identifies an associative operation on a type constructor. It is similar to `Semigroup`, except + * that it applies to types of kind `* -> *`, like `Array` or `Option`, rather than concrete types like `string` or + * `number`. + * + * `Alt` instances are required to satisfy the following laws: + * + * 1. Associativity: `A.alt(A.alt(fa, ga), ha) <-> A.alt(fa, A.alt(ga, ha))` + * 2. Distributivity: `A.map(A.alt(fa, ga), ab) <-> A.alt(A.map(fa, ab), A.map(ga, ab))` + * + * @since 2.0.0 + */ +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Alt<F> extends Functor<F> { + readonly alt: <A>(fa: HKT<F, A>, that: LazyArg<HKT<F, A>>) => HKT<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt1<F extends URIS> extends Functor1<F> { + readonly alt: <A>(fa: Kind<F, A>, that: LazyArg<Kind<F, A>>) => Kind<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt2<F extends URIS2> extends Functor2<F> { + readonly alt: <E, A>(fa: Kind2<F, E, A>, that: LazyArg<Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt2C<F extends URIS2, E> extends Functor2C<F, E> { + readonly alt: <A>(fa: Kind2<F, E, A>, that: LazyArg<Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt3<F extends URIS3> extends Functor3<F> { + readonly alt: <R, E, A>(fa: Kind3<F, R, E, A>, that: LazyArg<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Alt3C<F extends URIS3, E> extends Functor3C<F, E> { + readonly alt: <R, A>(fa: Kind3<F, R, E, A>, that: LazyArg<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Alt4<F extends URIS4> extends Functor4<F> { + readonly alt: <S, R, E, A>(fa: Kind4<F, S, R, E, A>, that: LazyArg<Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export declare function altAll<F extends URIS4>( + F: Alt4<F> +): <S, R, E, A>(startWith: Kind4<F, S, R, E, A>) => (as: ReadonlyArray<Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +export declare function altAll<F extends URIS3>( + F: Alt3<F> +): <R, E, A>(startWith: Kind3<F, R, E, A>) => (as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS3, E>( + F: Alt3C<F, E> +): <R, A>(startWith: Kind3<F, R, E, A>) => (as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS2>( + F: Alt2<F> +): <E, A>(startWith: Kind2<F, E, A>) => (as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS2, E>( + F: Alt2C<F, E> +): <A>(startWith: Kind2<F, E, A>) => (as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS>( + F: Alt1<F> +): <A>(startWith: Kind<F, A>) => (as: ReadonlyArray<Kind<F, A>>) => Kind<F, A> +export declare function altAll<F>(F: Alt<F>): <A>(startWith: HKT<F, A>) => (as: ReadonlyArray<HKT<F, A>>) => HKT<F, A> diff --git a/node_modules/fp-ts/lib/Alt.js b/node_modules/fp-ts/lib/Alt.js new file mode 100644 index 0000000..e485ebf --- /dev/null +++ b/node_modules/fp-ts/lib/Alt.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.altAll = altAll; +function altAll(F) { + return function (startWith) { return function (as) { return as.reduce(function (acc, a) { return F.alt(acc, function () { return a; }); }, startWith); }; }; +} diff --git a/node_modules/fp-ts/lib/Alternative.d.ts b/node_modules/fp-ts/lib/Alternative.d.ts new file mode 100644 index 0000000..3c00b79 --- /dev/null +++ b/node_modules/fp-ts/lib/Alternative.d.ts @@ -0,0 +1,108 @@ +/** + * The `Alternative` type class extends the `Alt` type class with a value that should be the left and right identity for `alt`. + * + * It is similar to `Monoid`, except that it applies to types of kind `* -> *`, like `Array` or `Option`, rather than + * concrete types like `string` or `number`. + * + * `Alternative` instances should satisfy the following laws: + * + * 1. Left identity: `A.alt(zero, fa) <-> fa` + * 2. Right identity: `A.alt(fa, zero) <-> fa` + * 3. Annihilation: `A.map(zero, f) <-> zero` + * 4. Distributivity: `A.ap(A.alt(fab, gab), fa) <-> A.alt(A.ap(fab, fa), A.ap(gab, fa))` + * 5. Annihilation: `A.ap(zero, fa) <-> zero` + * + * @since 2.0.0 + */ +import { Alt, Alt1, Alt2, Alt2C, Alt3, Alt3C, Alt4 } from './Alt' +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +import { Zero, Zero1, Zero2, Zero2C, Zero3, Zero3C, Zero4 } from './Zero' +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative<F> extends Applicative<F>, Alt<F>, Zero<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative1<F extends URIS> extends Applicative1<F>, Alt1<F>, Zero1<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative2<F extends URIS2> extends Applicative2<F>, Alt2<F>, Zero2<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative2C<F extends URIS2, E> extends Applicative2C<F, E>, Alt2C<F, E>, Zero2C<F, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Alternative3<F extends URIS3> extends Applicative3<F>, Alt3<F>, Zero3<F> {} +/** + * @category model + * @since 2.10.0 + */ +export interface Alternative3C<F extends URIS3, E> extends Applicative3C<F, E>, Alt3C<F, E>, Zero3C<F, E> {} +/** + * @category model + * @since 2.10.0 + */ +export interface Alternative4<F extends URIS4> extends Applicative4<F>, Alt4<F>, Zero4<F> {} +/** + * @since 2.11.0 + */ +export declare function altAll<F extends URIS4>( + F: Alternative4<F> +): <S, R, E, A>(as: ReadonlyArray<Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +export declare function altAll<F extends URIS3>( + F: Alternative3<F> +): <R, E, A>(as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS3, E>( + F: Alternative3C<F, E> +): <R, A>(as: ReadonlyArray<Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +export declare function altAll<F extends URIS2>( + F: Alternative2<F> +): <E, A>(as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS2, E>( + F: Alternative2C<F, E> +): <A>(as: ReadonlyArray<Kind2<F, E, A>>) => Kind2<F, E, A> +export declare function altAll<F extends URIS>(F: Alternative1<F>): <A>(as: ReadonlyArray<Kind<F, A>>) => Kind<F, A> +export declare function altAll<F>(F: Alternative<F>): <A>(as: ReadonlyArray<HKT<F, A>>) => HKT<F, A> +/** + * Lift a semigroup into a monoid alternative 'F', the inner values are concatenated using the provided `Semigroup`. + * @since 2.13.0 + */ +export declare function getAlternativeMonoid<F extends URIS4>( + F: Alternative4<F> +): <A, S, R, E>(S: Semigroup<A>) => Monoid<Kind4<F, S, R, E, A>> +export declare function getAlternativeMonoid<F extends URIS3>( + F: Alternative3<F> +): <A, R, E>(S: Semigroup<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getAlternativeMonoid<F extends URIS3, E>( + F: Alternative3C<F, E> +): <A, R>(S: Semigroup<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getAlternativeMonoid<F extends URIS2>( + F: Alternative2<F> +): <A, E>(S: Semigroup<A>) => Monoid<Kind2<F, E, A>> +export declare function getAlternativeMonoid<F extends URIS2, E>( + F: Alternative2C<F, E> +): <A>(S: Semigroup<A>) => Monoid<Kind2<F, E, A>> +export declare function getAlternativeMonoid<F extends URIS>( + F: Alternative1<F> +): <A>(S: Semigroup<A>) => Monoid<Kind<F, A>> +export declare function getAlternativeMonoid<F>(F: Alternative<F>): <A>(S: Semigroup<A>) => Monoid<HKT<F, A>> diff --git a/node_modules/fp-ts/lib/Alternative.js b/node_modules/fp-ts/lib/Alternative.js new file mode 100644 index 0000000..8f03037 --- /dev/null +++ b/node_modules/fp-ts/lib/Alternative.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.altAll = altAll; +exports.getAlternativeMonoid = getAlternativeMonoid; +/** + * The `Alternative` type class extends the `Alt` type class with a value that should be the left and right identity for `alt`. + * + * It is similar to `Monoid`, except that it applies to types of kind `* -> *`, like `Array` or `Option`, rather than + * concrete types like `string` or `number`. + * + * `Alternative` instances should satisfy the following laws: + * + * 1. Left identity: `A.alt(zero, fa) <-> fa` + * 2. Right identity: `A.alt(fa, zero) <-> fa` + * 3. Annihilation: `A.map(zero, f) <-> zero` + * 4. Distributivity: `A.ap(A.alt(fab, gab), fa) <-> A.alt(A.ap(fab, fa), A.ap(gab, fa))` + * 5. Annihilation: `A.ap(zero, fa) <-> zero` + * + * @since 2.0.0 + */ +var Alt_1 = require("./Alt"); +var Apply_1 = require("./Apply"); +function altAll(F) { + return (0, Alt_1.altAll)(F)(F.zero()); +} +function getAlternativeMonoid(F) { + var f = (0, Apply_1.getApplySemigroup)(F); + return function (S) { + var SF = f(S); + return { + concat: function (first, second) { + return F.alt(SF.concat(first, second), function () { return F.alt(first, function () { return second; }); }); + }, + empty: F.zero() + }; + }; +} diff --git a/node_modules/fp-ts/lib/Applicative.d.ts b/node_modules/fp-ts/lib/Applicative.d.ts new file mode 100644 index 0000000..280e28d --- /dev/null +++ b/node_modules/fp-ts/lib/Applicative.d.ts @@ -0,0 +1,267 @@ +/** + * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values + * of type `f a` from values of type `a`. + * + * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are + * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the + * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for + * any number of function arguments. + * + * Instances must satisfy the following laws in addition to the `Apply` laws: + * + * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa` + * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))` + * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)` + * + * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)` + * + * @since 2.0.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { + FunctorComposition, + FunctorComposition2C1, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition22C, + FunctorCompositionHKT1, + FunctorCompositionHKT2, + FunctorCompositionHKT2C +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monoid } from './Monoid' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative<F> extends Apply<F>, Pointed<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative1<F extends URIS> extends Apply1<F>, Pointed1<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative2<F extends URIS2> extends Apply2<F>, Pointed2<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative2C<F extends URIS2, E> extends Apply2C<F, E>, Pointed2C<F, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative3<F extends URIS3> extends Apply3<F>, Pointed3<F> {} +/** + * @category model + * @since 2.2.0 + */ +export interface Applicative3C<F extends URIS3, E> extends Apply3C<F, E>, Pointed3C<F, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Applicative4<F extends URIS4> extends Apply4<F>, Pointed4<F> {} +/** + * Lift a monoid into 'F', the inner values are concatenated using the provided `Monoid`. + * + * @since 2.10.0 + */ +export declare function getApplicativeMonoid<F extends URIS4>( + F: Applicative4<F> +): <A, S, R, E>(M: Monoid<A>) => Monoid<Kind4<F, S, R, E, A>> +export declare function getApplicativeMonoid<F extends URIS3>( + F: Applicative3<F> +): <A, R, E>(M: Monoid<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getApplicativeMonoid<F extends URIS3, E>( + F: Applicative3C<F, E> +): <A, R>(M: Monoid<A>) => Monoid<Kind3<F, R, E, A>> +export declare function getApplicativeMonoid<F extends URIS2>( + F: Applicative2<F> +): <A, E>(M: Monoid<A>) => Monoid<Kind2<F, E, A>> +export declare function getApplicativeMonoid<F extends URIS2, E>( + F: Applicative2C<F, E> +): <A>(M: Monoid<A>) => Monoid<Kind2<F, E, A>> +export declare function getApplicativeMonoid<F extends URIS>( + F: Applicative1<F> +): <A>(M: Monoid<A>) => Monoid<Kind<F, A>> +export declare function getApplicativeMonoid<F>(F: Applicative<F>): <A>(M: Monoid<A>) => Monoid<HKT<F, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition<F, G> extends FunctorComposition<F, G> { + readonly of: <A>(a: A) => HKT<F, HKT<G, A>> + readonly ap: <A, B>(fgab: HKT<F, HKT<G, (a: A) => B>>, fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeCompositionHKT1<F, G extends URIS> extends FunctorCompositionHKT1<F, G> { + readonly of: <A>(a: A) => HKT<F, Kind<G, A>> + readonly ap: <A, B>(fgab: HKT<F, Kind<G, (a: A) => B>>, fga: HKT<F, Kind<G, A>>) => HKT<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeCompositionHKT2<F, G extends URIS2> extends FunctorCompositionHKT2<F, G> { + readonly of: <E, A>(a: A) => HKT<F, Kind2<G, E, A>> + readonly ap: <E, A, B>(fgab: HKT<F, Kind2<G, E, (a: A) => B>>, fga: HKT<F, Kind2<G, E, A>>) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeCompositionHKT2C<F, G extends URIS2, E> extends FunctorCompositionHKT2C<F, G, E> { + readonly of: <A>(a: A) => HKT<F, Kind2<G, E, A>> + readonly ap: <A, B>(fgab: HKT<F, Kind2<G, E, (a: A) => B>>, fga: HKT<F, Kind2<G, E, A>>) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition11<F extends URIS, G extends URIS> extends FunctorComposition11<F, G> { + readonly of: <A>(a: A) => Kind<F, Kind<G, A>> + readonly ap: <A, B>(fgab: Kind<F, Kind<G, (a: A) => B>>, fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition12<F extends URIS, G extends URIS2> extends FunctorComposition12<F, G> { + readonly of: <E, A>(a: A) => Kind<F, Kind2<G, E, A>> + readonly ap: <E, A, B>( + fgab: Kind<F, Kind2<G, E, (a: A) => B>>, + fga: Kind<F, Kind2<G, E, A>> + ) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition12C<F extends URIS, G extends URIS2, E> extends FunctorComposition12C<F, G, E> { + readonly of: <A>(a: A) => Kind<F, Kind2<G, E, A>> + readonly ap: <A, B>(fgab: Kind<F, Kind2<G, E, (a: A) => B>>, fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition21<F extends URIS2, G extends URIS> extends FunctorComposition21<F, G> { + readonly of: <E, A>(a: A) => Kind2<F, E, Kind<G, A>> + readonly ap: <E, A, B>( + fgab: Kind2<F, E, Kind<G, (a: A) => B>>, + fga: Kind2<F, E, Kind<G, A>> + ) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition2C1<F extends URIS2, G extends URIS, E> extends FunctorComposition2C1<F, G, E> { + readonly of: <A>(a: A) => Kind2<F, E, Kind<G, A>> + readonly ap: <A, B>(fgab: Kind2<F, E, Kind<G, (a: A) => B>>, fga: Kind2<F, E, Kind<G, A>>) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition22<F extends URIS2, G extends URIS2> extends FunctorComposition22<F, G> { + readonly of: <FE, GE, A>(a: A) => Kind2<F, FE, Kind2<G, GE, A>> + readonly ap: <FE, GE, A, B>( + fgab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>, + fga: Kind2<F, FE, Kind2<G, GE, A>> + ) => Kind2<F, FE, Kind2<G, GE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ApplicativeComposition22C<F extends URIS2, G extends URIS2, E> extends FunctorComposition22C<F, G, E> { + readonly of: <FE, A>(a: A) => Kind2<F, FE, Kind2<G, E, A>> + readonly ap: <FE, A, B>( + fgab: Kind2<F, FE, Kind2<G, E, (a: A) => B>>, + fga: Kind2<F, FE, Kind2<G, E, A>> + ) => Kind2<F, FE, Kind2<G, E, B>> +} +/** + * Use [`ap`](./Apply.ts.html#ap) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS2, E>( + F: Applicative2<F>, + G: Applicative2C<G, E> +): ApplicativeComposition22C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS2>( + F: Applicative2<F>, + G: Applicative2<G> +): ApplicativeComposition22<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS2, E>( + F: Applicative2<F>, + G: Applicative2C<G, E> +): ApplicativeComposition22C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS2, G extends URIS>( + F: Applicative2<F>, + G: Applicative1<G> +): ApplicativeComposition21<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS, G extends URIS2>( + F: Applicative1<F>, + G: Applicative2<G> +): ApplicativeComposition12<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS, G extends URIS2, E>( + F: Applicative1<F>, + G: Applicative2C<G, E> +): ApplicativeComposition12C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F extends URIS, G extends URIS>( + F: Applicative1<F>, + G: Applicative1<G> +): ApplicativeComposition11<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F, G extends URIS2>( + F: Applicative<F>, + G: Applicative2<G> +): ApplicativeCompositionHKT2<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F, G extends URIS2, E>( + F: Applicative<F>, + G: Applicative2C<G, E> +): ApplicativeCompositionHKT2C<F, G, E> +/** @deprecated */ +export declare function getApplicativeComposition<F, G extends URIS>( + F: Applicative<F>, + G: Applicative1<G> +): ApplicativeCompositionHKT1<F, G> +/** @deprecated */ +export declare function getApplicativeComposition<F, G>( + F: Applicative<F>, + G: Applicative<G> +): ApplicativeComposition<F, G> diff --git a/node_modules/fp-ts/lib/Applicative.js b/node_modules/fp-ts/lib/Applicative.js new file mode 100644 index 0000000..9ac43bc --- /dev/null +++ b/node_modules/fp-ts/lib/Applicative.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getApplicativeMonoid = getApplicativeMonoid; +exports.getApplicativeComposition = getApplicativeComposition; +/** + * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values + * of type `f a` from values of type `a`. + * + * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are + * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the + * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for + * any number of function arguments. + * + * Instances must satisfy the following laws in addition to the `Apply` laws: + * + * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa` + * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))` + * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)` + * + * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)` + * + * @since 2.0.0 + */ +var Apply_1 = require("./Apply"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +function getApplicativeMonoid(F) { + var f = (0, Apply_1.getApplySemigroup)(F); + return function (M) { return ({ + concat: f(M).concat, + empty: F.of(M.empty) + }); }; +} +/** @deprecated */ +function getApplicativeComposition(F, G) { + var map = (0, Functor_1.getFunctorComposition)(F, G).map; + var _ap = (0, Apply_1.ap)(F, G); + return { + map: map, + of: function (a) { return F.of(G.of(a)); }, + ap: function (fgab, fga) { return (0, function_1.pipe)(fgab, _ap(fga)); } + }; +} diff --git a/node_modules/fp-ts/lib/Apply.d.ts b/node_modules/fp-ts/lib/Apply.d.ts new file mode 100644 index 0000000..8d5e26b --- /dev/null +++ b/node_modules/fp-ts/lib/Apply.d.ts @@ -0,0 +1,658 @@ +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Apply<F> extends Functor<F> { + readonly ap: <A, B>(fab: HKT<F, (a: A) => B>, fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply1<F extends URIS> extends Functor1<F> { + readonly ap: <A, B>(fab: Kind<F, (a: A) => B>, fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply2<F extends URIS2> extends Functor2<F> { + readonly ap: <E, A, B>(fab: Kind2<F, E, (a: A) => B>, fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply2C<F extends URIS2, E> extends Functor2C<F, E> { + readonly ap: <A, B>(fab: Kind2<F, E, (a: A) => B>, fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply3<F extends URIS3> extends Functor3<F> { + readonly ap: <R, E, A, B>(fab: Kind3<F, R, E, (a: A) => B>, fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Apply3C<F extends URIS3, E> extends Functor3C<F, E> { + readonly ap: <R, A, B>(fab: Kind3<F, R, E, (a: A) => B>, fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Apply4<F extends URIS4> extends Functor4<F> { + readonly ap: <S, R, E, A, B>(fab: Kind4<F, S, R, E, (a: A) => B>, fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * `ap` composition. + * + * @since 2.10.0 + */ +export declare function ap<F extends URIS4, G extends URIS4>( + F: Apply4<F>, + G: Apply4<G> +): <FS, FR, FE, GS, GR, GE, A>( + fa: Kind4<F, FS, FR, FE, Kind4<G, GS, GR, GE, A>> +) => <B>(fab: Kind4<F, FS, FR, FE, Kind4<G, GS, GR, GE, (a: A) => B>>) => Kind4<F, FS, FR, FE, Kind4<G, GS, GR, GE, B>> +export declare function ap<F extends URIS4, G extends URIS3>( + F: Apply4<F>, + G: Apply3<G> +): <S, FR, FE, GR, GE, A>( + fa: Kind4<F, S, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind4<F, S, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind4<F, S, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS4, G extends URIS3, GE>( + F: Apply4<F>, + G: Apply3C<G, GE> +): <S, FR, FE, GR, A>( + fa: Kind4<F, S, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind4<F, S, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind4<F, S, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS4, G extends URIS2>( + F: Apply4<F>, + G: Apply2<G> +): <S, R, FE, GE, A>( + fa: Kind4<F, S, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind4<F, S, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind4<F, S, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS4, G extends URIS2, GE>( + F: Apply4<F>, + G: Apply2C<G, GE> +): <S, R, FE, A>( + fa: Kind4<F, S, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind4<F, S, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind4<F, S, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS4, G extends URIS>( + F: Apply4<F>, + G: Apply1<G> +): <S, R, E, A>( + fa: Kind4<F, S, R, E, Kind<G, A>> +) => <B>(fab: Kind4<F, S, R, E, Kind<G, (a: A) => B>>) => Kind4<F, S, R, E, Kind<G, B>> +export declare function ap<F extends URIS3, FE, G extends URIS4>( + F: Apply3C<F, FE>, + G: Apply4<G> +): <FR, S, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind4<G, S, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind4<G, S, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind4<G, S, GR, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS3>( + F: Apply3C<F, FE>, + G: Apply3<G> +): <FR, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS3, GE>( + F: Apply3C<F, FE>, + G: Apply3C<G, GE> +): <FR, GR, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS2>( + F: Apply3C<F, FE>, + G: Apply2<G> +): <R, GE, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, FE, G extends URIS2, GE>( + F: Apply3C<F, FE>, + G: Apply2C<G, GE> +): <R, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, E, G extends URIS>( + F: Apply3C<F, E>, + G: Apply1<G> +): <R, A>( + fa: Kind3<F, R, E, Kind<G, A>> +) => <B>(fab: Kind3<F, R, E, Kind<G, (a: A) => B>>) => Kind3<F, R, E, Kind<G, B>> +export declare function ap<F extends URIS3, G extends URIS4>( + F: Apply3<F>, + G: Apply4<G> +): <FR, FE, S, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind4<G, S, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind4<G, S, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind4<G, S, GR, GE, B>> +export declare function ap<F extends URIS3, G extends URIS3>( + F: Apply3<F>, + G: Apply3<G> +): <FR, FE, GR, GE, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, G extends URIS3, GE>( + F: Apply3<F>, + G: Apply3C<G, GE> +): <FR, FE, GR, A>( + fa: Kind3<F, FR, FE, Kind3<G, GR, GE, A>> +) => <B>(fab: Kind3<F, FR, FE, Kind3<G, GR, GE, (a: A) => B>>) => Kind3<F, FR, FE, Kind3<G, GR, GE, B>> +export declare function ap<F extends URIS3, G extends URIS2>( + F: Apply3<F>, + G: Apply2<G> +): <R, FE, GE, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, G extends URIS2, GE>( + F: Apply3<F>, + G: Apply2C<G, GE> +): <R, FE, A>( + fa: Kind3<F, R, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind3<F, R, FE, Kind2<G, GE, (a: A) => B>>) => Kind3<F, R, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS3, G extends URIS>( + F: Apply3<F>, + G: Apply1<G> +): <R, E, A>( + fa: Kind3<F, R, E, Kind<G, A>> +) => <B>(fab: Kind3<F, R, E, Kind<G, (a: A) => B>>) => Kind3<F, R, E, Kind<G, B>> +export declare function ap<F extends URIS2, FE, G extends URIS4>( + F: Apply2C<F, FE>, + G: Apply4<G> +): <S, R, GE, A>( + fa: Kind2<F, FE, Kind4<G, S, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind4<G, S, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind4<G, S, R, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS3>( + F: Apply2C<F, FE>, + G: Apply3<G> +): <R, GE, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS3, GE>( + F: Apply2C<F, FE>, + G: Apply3C<G, GE> +): <R, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS2>( + F: Apply2C<F, FE>, + G: Apply2<G> +): <GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, FE, G extends URIS2, GE>( + F: Apply2C<F, FE>, + G: Apply2C<G, GE> +): <A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, E, G extends URIS>( + F: Apply2C<F, E>, + G: Apply1<G> +): <A>(fa: Kind2<F, E, Kind<G, A>>) => <B>(fab: Kind2<F, E, Kind<G, (a: A) => B>>) => Kind2<F, E, Kind<G, B>> +export declare function ap<F extends URIS2, G extends URIS4>( + F: Apply2<F>, + G: Apply4<G> +): <FE, S, R, GE, A>( + fa: Kind2<F, FE, Kind4<G, S, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind4<G, S, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind4<G, S, R, GE, B>> +export declare function ap<F extends URIS2, G extends URIS3>( + F: Apply2<F>, + G: Apply3<G> +): <FE, R, GE, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, G extends URIS3, GE>( + F: Apply2<F>, + G: Apply3C<G, GE> +): <FE, R, A>( + fa: Kind2<F, FE, Kind3<G, R, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind3<G, R, GE, (a: A) => B>>) => Kind2<F, FE, Kind3<G, R, GE, B>> +export declare function ap<F extends URIS2, G extends URIS2>( + F: Apply2<F>, + G: Apply2<G> +): <FE, GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, G extends URIS2, GE>( + F: Apply2<F>, + G: Apply2C<G, GE> +): <FE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>> +) => <B>(fab: Kind2<F, FE, Kind2<G, GE, (a: A) => B>>) => Kind2<F, FE, Kind2<G, GE, B>> +export declare function ap<F extends URIS2, G extends URIS>( + F: Apply2<F>, + G: Apply1<G> +): <E, A>(fa: Kind2<F, E, Kind<G, A>>) => <B>(fab: Kind2<F, E, Kind<G, (a: A) => B>>) => Kind2<F, E, Kind<G, B>> +export declare function ap<F extends URIS, G extends URIS4>( + F: Apply1<F>, + G: Apply4<G> +): <S, R, E, A>( + fa: Kind<F, Kind4<G, S, R, E, A>> +) => <B>(fab: Kind<F, Kind4<G, S, R, E, (a: A) => B>>) => Kind<F, Kind4<G, S, R, E, B>> +export declare function ap<F extends URIS, G extends URIS3>( + F: Apply1<F>, + G: Apply3<G> +): <R, E, A>( + fa: Kind<F, Kind3<G, R, E, A>> +) => <B>(fab: Kind<F, Kind3<G, R, E, (a: A) => B>>) => Kind<F, Kind3<G, R, E, B>> +export declare function ap<F extends URIS, G extends URIS3, E>( + F: Apply1<F>, + G: Apply3C<G, E> +): <R, A>( + fa: Kind<F, Kind3<G, R, E, A>> +) => <B>(fab: Kind<F, Kind3<G, R, E, (a: A) => B>>) => Kind<F, Kind3<G, R, E, B>> +export declare function ap<F extends URIS, G extends URIS2>( + F: Apply1<F>, + G: Apply2<G> +): <E, A>(fa: Kind<F, Kind2<G, E, A>>) => <B>(fab: Kind<F, Kind2<G, E, (a: A) => B>>) => Kind<F, Kind2<G, E, B>> +export declare function ap<F extends URIS, G extends URIS2, E>( + F: Apply1<F>, + G: Apply2C<G, E> +): <A>(fa: Kind<F, Kind2<G, E, A>>) => <B>(fab: Kind<F, Kind2<G, E, (a: A) => B>>) => Kind<F, Kind2<G, E, B>> +export declare function ap<F extends URIS, G extends URIS>( + F: Apply1<F>, + G: Apply1<G> +): <A>(fa: Kind<F, Kind<G, A>>) => <B>(fab: Kind<F, Kind<G, (a: A) => B>>) => Kind<F, Kind<G, B>> +export declare function ap<F, G extends URIS4>( + F: Apply<F>, + G: Apply4<G> +): <S, R, E, A>( + fa: HKT<F, Kind4<G, S, R, E, A>> +) => <B>(fab: HKT<F, Kind4<G, S, R, E, (a: A) => B>>) => HKT<F, Kind4<G, S, R, E, B>> +export declare function ap<F, G extends URIS3>( + F: Apply<F>, + G: Apply3<G> +): <R, E, A>( + fa: HKT<F, Kind3<G, R, E, A>> +) => <B>(fab: HKT<F, Kind3<G, R, E, (a: A) => B>>) => HKT<F, Kind3<G, R, E, B>> +export declare function ap<F, G extends URIS3, E>( + F: Apply<F>, + G: Apply3C<G, E> +): <R, A>(fa: HKT<F, Kind3<G, R, E, A>>) => <B>(fab: HKT<F, Kind3<G, R, E, (a: A) => B>>) => HKT<F, Kind3<G, R, E, B>> +export declare function ap<F, G extends URIS2>( + F: Apply<F>, + G: Apply2<G> +): <E, A>(fa: HKT<F, Kind2<G, E, A>>) => <B>(fab: HKT<F, Kind2<G, E, (a: A) => B>>) => HKT<F, Kind2<G, E, B>> +export declare function ap<F, G extends URIS2, E>( + F: Apply<F>, + G: Apply2C<G, E> +): <A>(fa: HKT<F, Kind2<G, E, A>>) => <B>(fab: HKT<F, Kind2<G, E, (a: A) => B>>) => HKT<F, Kind2<G, E, B>> +export declare function ap<F, G extends URIS>( + F: Apply<F>, + G: Apply1<G> +): <A>(fa: HKT<F, Kind<G, A>>) => <B>(fab: HKT<F, Kind<G, (a: A) => B>>) => HKT<F, Kind<G, B>> +export declare function ap<F, G>( + F: Apply<F>, + G: Apply<G> +): <A>(fa: HKT<F, HKT<G, A>>) => <B>(fab: HKT<F, HKT<G, (a: A) => B>>) => HKT<F, HKT<G, B>> +/** + * @since 2.10.0 + */ +export declare function apFirst<F extends URIS4>( + A: Apply4<F> +): <S, R, E, B>(second: Kind4<F, S, R, E, B>) => <A>(first: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +export declare function apFirst<F extends URIS3>( + A: Apply3<F> +): <R, E, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function apFirst<F extends URIS3, E>( + A: Apply3C<F, E> +): <R, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function apFirst<F extends URIS2>( + A: Apply2<F> +): <E, B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function apFirst<F extends URIS2, E>( + A: Apply2C<F, E> +): <B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function apFirst<F extends URIS>( + A: Apply1<F> +): <B>(second: Kind<F, B>) => <A>(first: Kind<F, A>) => Kind<F, A> +export declare function apFirst<F>(A: Apply<F>): <B>(second: HKT<F, B>) => <A>(first: HKT<F, A>) => HKT<F, A> +/** + * @since 2.10.0 + */ +export declare function apSecond<F extends URIS4>( + A: Apply4<F> +): <S, R, E, B>(second: Kind4<F, S, R, E, B>) => <A>(first: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function apSecond<F extends URIS3>( + A: Apply3<F> +): <R, E, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function apSecond<F extends URIS3, E>( + A: Apply3C<F, E> +): <R, B>(second: Kind3<F, R, E, B>) => <A>(first: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function apSecond<F extends URIS2>( + A: Apply2<F> +): <E, B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function apSecond<F extends URIS2, E>( + A: Apply2C<F, E> +): <B>(second: Kind2<F, E, B>) => <A>(first: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function apSecond<F extends URIS>( + A: Apply1<F> +): <B>(second: Kind<F, B>) => <A>(first: Kind<F, A>) => Kind<F, B> +export declare function apSecond<F>(A: Apply<F>): <B>(second: HKT<F, B>) => <A>(first: HKT<F, A>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function apS<F extends URIS4>( + F: Apply4<F> +): <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + fb: Kind4<F, S, R, E, B> +) => (fa: Kind4<F, S, R, E, A>) => Kind4< + F, + S, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS3>( + F: Apply3<F> +): <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + fb: Kind3<F, R, E, B> +) => (fa: Kind3<F, R, E, A>) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS3, E>( + F: Apply3C<F, E> +): <N extends string, A, R, B>( + name: Exclude<N, keyof A>, + fb: Kind3<F, R, E, B> +) => (fa: Kind3<F, R, E, A>) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS2>( + F: Apply2<F> +): <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: Kind2<F, E, B> +) => (fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS2, E>( + F: Apply2C<F, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Kind2<F, E, B> +) => (fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F extends URIS>( + F: Apply1<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Kind<F, B> +) => (fa: Kind<F, A>) => Kind< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function apS<F>(F: Apply<F>): <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: HKT<F, B> +) => (fa: HKT<F, A>) => HKT< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * Lift a semigroup into 'F', the inner values are concatenated using the provided `Semigroup`. + * + * @since 2.10.0 + */ +export declare function getApplySemigroup<F extends URIS4>( + F: Apply4<F> +): <A, S, R, E>(S: Semigroup<A>) => Semigroup<Kind4<F, S, R, E, A>> +export declare function getApplySemigroup<F extends URIS3>( + F: Apply3<F> +): <A, R, E>(S: Semigroup<A>) => Semigroup<Kind3<F, R, E, A>> +export declare function getApplySemigroup<F extends URIS3, E>( + F: Apply3C<F, E> +): <A, R>(S: Semigroup<A>) => Semigroup<Kind3<F, R, E, A>> +export declare function getApplySemigroup<F extends URIS2>( + F: Apply2<F> +): <A, E>(S: Semigroup<A>) => Semigroup<Kind2<F, E, A>> +export declare function getApplySemigroup<F extends URIS2, E>( + F: Apply2C<F, E> +): <A>(S: Semigroup<A>) => Semigroup<Kind2<F, E, A>> +export declare function getApplySemigroup<F extends URIS>(F: Apply1<F>): <A>(S: Semigroup<A>) => Semigroup<Kind<F, A>> +export declare function getApplySemigroup<F>(F: Apply<F>): <A>(S: Semigroup<A>) => Semigroup<HKT<F, A>> +/** + * Tuple sequencing, i.e., take a tuple of monadic actions and does them from left-to-right, returning the resulting tuple. + * + * @example + * import { sequenceT } from 'fp-ts/Apply' + * import * as O from 'fp-ts/Option' + * + * const sequenceTOption = sequenceT(O.Apply) + * assert.deepStrictEqual(sequenceTOption(O.some(1)), O.some([1])) + * assert.deepStrictEqual(sequenceTOption(O.some(1), O.some('2')), O.some([1, '2'])) + * assert.deepStrictEqual(sequenceTOption(O.some(1), O.some('2'), O.none), O.none) + * + * @since 2.0.0 + */ +export declare function sequenceT<F extends URIS4>( + F: Apply4<F> +): <S, R, E, T extends Array<Kind4<F, S, R, E, any>>>( + ...t: T & { + readonly 0: Kind4<F, S, R, E, any> + } +) => Kind4< + F, + S, + R, + E, + { + [K in keyof T]: [T[K]] extends [Kind4<F, S, R, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS3>( + F: Apply3<F> +): <R, E, T extends Array<Kind3<F, R, E, any>>>( + ...t: T & { + readonly 0: Kind3<F, R, E, any> + } +) => Kind3< + F, + R, + E, + { + [K in keyof T]: [T[K]] extends [Kind3<F, R, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, T extends Array<Kind3<F, R, E, any>>>( + ...t: T & { + readonly 0: Kind3<F, R, E, any> + } +) => Kind3< + F, + R, + E, + { + [K in keyof T]: [T[K]] extends [Kind3<F, R, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS2>( + F: Apply2<F> +): <E, T extends Array<Kind2<F, E, any>>>( + ...t: T & { + readonly 0: Kind2<F, E, any> + } +) => Kind2< + F, + E, + { + [K in keyof T]: [T[K]] extends [Kind2<F, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS2, E>( + F: Apply2C<F, E> +): <T extends Array<Kind2<F, E, any>>>( + ...t: T & { + readonly 0: Kind2<F, E, any> + } +) => Kind2< + F, + E, + { + [K in keyof T]: [T[K]] extends [Kind2<F, E, infer A>] ? A : never + } +> +export declare function sequenceT<F extends URIS>( + F: Apply1<F> +): <T extends Array<Kind<F, any>>>( + ...t: T & { + readonly 0: Kind<F, any> + } +) => Kind< + F, + { + [K in keyof T]: [T[K]] extends [Kind<F, infer A>] ? A : never + } +> +export declare function sequenceT<F>(F: Apply<F>): <T extends Array<HKT<F, any>>>( + ...t: T & { + readonly 0: HKT<F, any> + } +) => HKT< + F, + { + [K in keyof T]: [T[K]] extends [HKT<F, infer A>] ? A : never + } +> +type EnforceNonEmptyRecord<R> = keyof R extends never ? never : R +/** + * Like `Apply.sequenceT` but works with structs instead of tuples. + * + * @example + * import * as E from 'fp-ts/Either' + * import { sequenceS } from 'fp-ts/Apply' + * + * const ado = sequenceS(E.Apply) + * + * assert.deepStrictEqual( + * ado({ + * a: E.right(1), + * b: E.right(true) + * }), + * E.right({ a: 1, b: true }) + * ) + * assert.deepStrictEqual( + * ado({ + * a: E.right(1), + * b: E.left('error') + * }), + * E.left('error') + * ) + * + * @since 2.0.0 + */ +export declare function sequenceS<F extends URIS4>( + F: Apply4<F> +): <S, R, E, NER extends Record<string, Kind4<F, S, R, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind4<F, S, R, E, any>> +) => Kind4< + F, + S, + R, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind4<F, any, any, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS3>( + F: Apply3<F> +): <R, E, NER extends Record<string, Kind3<F, R, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind3<F, R, E, any>> +) => Kind3< + F, + R, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind3<F, any, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, NER extends Record<string, Kind3<F, R, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind3<F, R, E, any>> +) => Kind3< + F, + R, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind3<F, any, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS2>( + F: Apply2<F> +): <E, NER extends Record<string, Kind2<F, E, any>>>( + r: EnforceNonEmptyRecord<NER> & Record<string, Kind2<F, E, any>> +) => Kind2< + F, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind2<F, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS2, E>( + F: Apply2C<F, E> +): <NER extends Record<string, Kind2<F, E, any>>>( + r: EnforceNonEmptyRecord<NER> +) => Kind2< + F, + E, + { + [K in keyof NER]: [NER[K]] extends [Kind2<F, any, infer A>] ? A : never + } +> +export declare function sequenceS<F extends URIS>( + F: Apply1<F> +): <NER extends Record<string, Kind<F, any>>>( + r: EnforceNonEmptyRecord<NER> +) => Kind< + F, + { + [K in keyof NER]: [NER[K]] extends [Kind<F, infer A>] ? A : never + } +> +export declare function sequenceS<F>(F: Apply<F>): <NER extends Record<string, HKT<F, any>>>( + r: EnforceNonEmptyRecord<NER> +) => HKT< + F, + { + [K in keyof NER]: [NER[K]] extends [HKT<F, infer A>] ? A : never + } +> +export {} diff --git a/node_modules/fp-ts/lib/Apply.js b/node_modules/fp-ts/lib/Apply.js new file mode 100644 index 0000000..ab8ac9d --- /dev/null +++ b/node_modules/fp-ts/lib/Apply.js @@ -0,0 +1,210 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ap = ap; +exports.apFirst = apFirst; +exports.apSecond = apSecond; +exports.apS = apS; +exports.getApplySemigroup = getApplySemigroup; +exports.sequenceT = sequenceT; +exports.sequenceS = sequenceS; +/** + * The `Apply` class provides the `ap` which is used to apply a function to an argument under a type constructor. + * + * `Apply` can be used to lift functions of two or more arguments to work on values wrapped with the type constructor + * `f`. + * + * Instances must satisfy the following law in addition to the `Functor` laws: + * + * 1. Associative composition: `F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))` + * + * Formally, `Apply` represents a strong lax semi-monoidal endofunctor. + * + * @example + * import * as O from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * const f = (a: string) => (b: number) => (c: boolean) => a + String(b) + String(c) + * const fa: O.Option<string> = O.some('s') + * const fb: O.Option<number> = O.some(1) + * const fc: O.Option<boolean> = O.some(true) + * + * assert.deepStrictEqual( + * pipe( + * // lift a function + * O.some(f), + * // apply the first argument + * O.ap(fa), + * // apply the second argument + * O.ap(fb), + * // apply the third argument + * O.ap(fc) + * ), + * O.some('s1true') + * ) + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +var _ = __importStar(require("./internal")); +function ap(F, G) { + return function (fa) { + return function (fab) { + return F.ap(F.map(fab, function (gab) { return function (ga) { return G.ap(gab, ga); }; }), fa); + }; + }; +} +function apFirst(A) { + return function (second) { return function (first) { + return A.ap(A.map(first, function (a) { return function () { return a; }; }), second); + }; }; +} +function apSecond(A) { + return function (second) { + return function (first) { + return A.ap(A.map(first, function () { return function (b) { return b; }; }), second); + }; + }; +} +function apS(F) { + return function (name, fb) { + return function (fa) { + return F.ap(F.map(fa, function (a) { return function (b) { + var _a; + return Object.assign({}, a, (_a = {}, _a[name] = b, _a)); + }; }), fb); + }; + }; +} +function getApplySemigroup(F) { + return function (S) { return ({ + concat: function (first, second) { + return F.ap(F.map(first, function (x) { return function (y) { return S.concat(x, y); }; }), second); + } + }); }; +} +function curried(f, n, acc) { + return function (x) { + var combined = Array(acc.length + 1); + for (var i = 0; i < acc.length; i++) { + combined[i] = acc[i]; + } + combined[acc.length] = x; + return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined); + }; +} +var tupleConstructors = { + 1: function (a) { return [a]; }, + 2: function (a) { return function (b) { return [a, b]; }; }, + 3: function (a) { return function (b) { return function (c) { return [a, b, c]; }; }; }, + 4: function (a) { return function (b) { return function (c) { return function (d) { return [a, b, c, d]; }; }; }; }, + 5: function (a) { return function (b) { return function (c) { return function (d) { return function (e) { return [a, b, c, d, e]; }; }; }; }; } +}; +function getTupleConstructor(len) { + if (!_.has.call(tupleConstructors, len)) { + tupleConstructors[len] = curried(function_1.tuple, len - 1, []); + } + return tupleConstructors[len]; +} +function sequenceT(F) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var len = args.length; + var f = getTupleConstructor(len); + var fas = F.map(args[0], f); + for (var i = 1; i < len; i++) { + fas = F.ap(fas, args[i]); + } + return fas; + }; +} +function getRecordConstructor(keys) { + var len = keys.length; + switch (len) { + case 1: + return function (a) { + var _a; + return (_a = {}, _a[keys[0]] = a, _a); + }; + case 2: + return function (a) { return function (b) { + var _a; + return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a); + }; }; + case 3: + return function (a) { return function (b) { return function (c) { + var _a; + return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a); + }; }; }; + case 4: + return function (a) { return function (b) { return function (c) { return function (d) { + var _a; + return (_a = {}, + _a[keys[0]] = a, + _a[keys[1]] = b, + _a[keys[2]] = c, + _a[keys[3]] = d, + _a); + }; }; }; }; + case 5: + return function (a) { return function (b) { return function (c) { return function (d) { return function (e) { + var _a; + return (_a = {}, + _a[keys[0]] = a, + _a[keys[1]] = b, + _a[keys[2]] = c, + _a[keys[3]] = d, + _a[keys[4]] = e, + _a); + }; }; }; }; }; + default: + return curried(function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var r = {}; + for (var i = 0; i < len; i++) { + r[keys[i]] = args[i]; + } + return r; + }, len - 1, []); + } +} +function sequenceS(F) { + return function (r) { + var keys = Object.keys(r); + var len = keys.length; + var f = getRecordConstructor(keys); + var fr = F.map(r[keys[0]], f); + for (var i = 1; i < len; i++) { + fr = F.ap(fr, r[keys[i]]); + } + return fr; + }; +} diff --git a/node_modules/fp-ts/lib/Array.d.ts b/node_modules/fp-ts/lib/Array.d.ts new file mode 100644 index 0000000..2e0a482 --- /dev/null +++ b/node_modules/fp-ts/lib/Array.d.ts @@ -0,0 +1,2215 @@ +/** + * The Array module provides tools for working with Typescript's Array<T> type in a functional way. + * + * In functional jargon, this module provides a monadic interface over Typescript's Array<T>. + * + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { ChainRec1 } from './ChainRec' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Extend1 } from './Extend' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { FromEither1 } from './FromEither' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Magma } from './Magma' +import { Monad1 } from './Monad' +import { Monoid } from './Monoid' +import * as NEA from './NonEmptyArray' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import { Zero1 } from './Zero' +import NonEmptyArray = NEA.NonEmptyArray +/** + * Test whether an array is empty + * + * @example + * import { isEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isEmpty([]), true) + * assert.strictEqual(isEmpty(['a']), false) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isEmpty: <A>(as: Array<A>) => as is [] +/** + * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>` + * + * @example + * import { isNonEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isNonEmpty([]), false) + * assert.strictEqual(isNonEmpty(['a']), true) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isNonEmpty: <A>(as: Array<A>) => as is NonEmptyArray<A> +/** + * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const prepend: <A>(head: A) => (tail: Array<A>) => NEA.NonEmptyArray<A> +/** + * Less strict version of [`prepend`](#prepend). + * + * @example + * import { prependW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prependW("a")), ["a", 2, 3, 4]); + * + * @since 2.11.0 + */ +export declare const prependW: <A, B>(head: B) => (tail: Array<A>) => NEA.NonEmptyArray<A | B> +/** + * Append an element to the end of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const append: <A>(end: A) => (init: Array<A>) => NEA.NonEmptyArray<A> +/** + * Less strict version of [`append`](#append). + * + * @example + * import { appendW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], appendW("d")), [1, 2, 3, "d"]); + * + * @since 2.11.0 + */ +export declare const appendW: <A, B>(end: B) => (init: Array<A>) => NEA.NonEmptyArray<A | B> +/** + * Return a `Array` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/Array' + * + * const double = (i: number): number => i * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * assert.deepStrictEqual(makeBy(-3, double), []) + * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6]) + * + * @category constructors + * @since 2.0.0 + */ +export declare const makeBy: <A>(n: number, f: (i: number) => A) => Array<A> +/** + * Create a `Array` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * assert.deepStrictEqual(replicate(-3, 'a'), []) + * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a']) + * + * @category constructors + * @since 2.0.0 + */ +export declare const replicate: <A>(n: number, a: A) => Array<A> +/** + * Create an array with one element, if the element satisfies the predicate, otherwise + * it returns an empty array. + * + * @example + * import { fromPredicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(pipe("a", fromPredicate(isString)), ["a"]); + * assert.deepStrictEqual(pipe(7, fromPredicate(isString)), []); + * + * assert.deepStrictEqual(pipe(7, fromPredicate((x)=> x > 0)), [7]); + * assert.deepStrictEqual(pipe(-3, fromPredicate((x)=> x > 0)), []); + * + * @category lifting + * @since 2.11.0 + */ +export declare function fromPredicate<A, B extends A>(refinement: Refinement<A, B>): (a: A) => Array<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): <B extends A>(b: B) => Array<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): (a: A) => Array<A> +/** + * Create an array from an `Option`. The resulting array will contain the content of the + * `Option` if it is `Some` and it will be empty if the `Option` is `None`. + * + * @example + * import { fromOption } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(option.some("a"), fromOption),["a"]) + * assert.deepStrictEqual(pipe(option.none, fromOption),[]) + * + * @category conversions + * @since 2.11.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => Array<A> +/** + * Create an array from an `Either`. The resulting array will contain the content of the + * `Either` if it is `Right` and it will be empty if the `Either` is `Left`. + * + * @example + * import { fromEither } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(either.right("r"), fromEither), ["r"]); + * assert.deepStrictEqual(pipe(either.left("l"), fromEither), []); + * + * @category conversions + * @since 2.11.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => Array<A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @example + * import { matchW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcherW = matchW( + * () => "No elements", + * (as) => as.length + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4); + * assert.deepStrictEqual(pipe([], matcherW), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (as: NonEmptyArray<A>) => C +) => (as: Array<A>) => B | C +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` and returns the result. + * + * @example + * import { match } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcher = match( + * () => "No elements", + * (as) => `Found ${as.length} element(s)` + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), "Found 4 element(s)"); + * assert.deepStrictEqual(pipe([], matcher), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const match: <B, A>(onEmpty: LazyArg<B>, onNonEmpty: (as: NonEmptyArray<A>) => B) => (as: Array<A>) => B +/** + * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchLeftW } from 'fp-ts/Array' + * + * const f = matchLeftW( + * () => 0, + * (head: string, tail: string[]) => `Found "${head}" followed by ${tail.length} elements` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found "a" followed by 2 elements'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeftW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: Array<A>) => C +) => (as: Array<A>) => B | C +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchLeft: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: Array<A>) => B +) => (as: Array<A>) => B +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const foldLeft: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: Array<A>) => B +) => (as: Array<A>) => B +/** + * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchRightW } from 'fp-ts/Array' + * + * const f = matchRightW( + * () => 0, + * (head: string[], tail: string) => `Found ${head.length} elements folllowed by "${tail}"` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found 2 elements folllowed by "c"'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRightW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: Array<A>, last: A) => C +) => (as: Array<A>) => B | C +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its initial elements and the last element. + * + * @example + * import { matchRight } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchRight( + * () => 0, + * (head, _) => 1 + len(head) + * ); + * assert.strictEqual(len([1, 2, 3]), 3); + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchRight: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: Array<A>, last: A) => B +) => (as: Array<A>) => B +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const foldRight: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: Array<A>, last: A) => B +) => (as: Array<A>) => B +/** + * Same as [`chain`](#chain), but passing also the index to the iterating function. + * + * @example + * import { chainWithIndex, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (index: number, x: string) => replicate(2, `${x}${index}`); + * assert.deepStrictEqual(pipe(["a", "b", "c"], chainWithIndex(f)), ["a0", "a0", "b1", "b1", "c2", "c2"]); + * + * @category sequencing + * @since 2.7.0 + */ +export declare const chainWithIndex: <A, B>(f: (i: number, a: A) => Array<B>) => (as: Array<A>) => Array<B> +/** + * Same as `reduce` but it carries over the intermediate steps + * + * @example + * import { scanLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.0.0 + */ +export declare const scanLeft: <A, B>(b: B, f: (b: B, a: A) => B) => (as: Array<A>) => NonEmptyArray<B> +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.0.0 + */ +export declare const scanRight: <A, B>(b: B, f: (a: A, b: B) => B) => (as: Array<A>) => NonEmptyArray<B> +/** + * Calculate the number of elements in a `Array`. + * + * @example + * import { size } from 'fp-ts/Array' + * + * assert.strictEqual(size(["a","b","c"]),3) + * + * @since 2.10.0 + */ +export declare const size: <A>(as: Array<A>) => number +/** + * Test whether an array contains a particular index + * + * @example + * import { isOutOfBound } from 'fp-ts/Array' + * + * assert.strictEqual(isOutOfBound(1,["a","b","c"]),false) + * assert.strictEqual(isOutOfBound(-1,["a","b","c"]),true) + * assert.strictEqual(isOutOfBound(3,["a","b","c"]),true) + * + * @since 2.0.0 + */ +export declare const isOutOfBound: <A>(i: number, as: Array<A>) => boolean +/** + * This function provides a safe way to read a value at a particular index from an array. + * It returns a `none` if the index is out of bounds, and a `some` of the element if the + * index is valid. + * + * @example + * import { lookup } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2)) + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none) + * + * @since 2.0.0 + */ +export declare const lookup: { + (i: number): <A>(as: Array<A>) => Option<A> + <A>(i: number, as: Array<A>): Option<A> +} +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.0.0 + */ +export declare const head: <A>(as: Array<A>) => Option<A> +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.0.0 + */ +export declare const last: <A>(as: Array<A>) => Option<A> +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.0.0 + */ +export declare const tail: <A>(as: Array<A>) => Option<Array<A>> +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.0.0 + */ +export declare const init: <A>(as: Array<A>) => Option<Array<A>> +/** + * Keep only a max number of elements from the start of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]); + * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +export declare const takeLeft: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Keep only a max number of elements from the end of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]); + * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +export declare const takeRight: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Calculate the longest initial subarray for which all element satisfy the specified predicate, creating a new array + * + * @example + * import { takeLeftWhile } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeLeftWhile((n: number) => n % 2 === 0)([2, 4, 3, 6]), [2, 4]) + * + * @since 2.0.0 + */ +export declare function takeLeftWhile<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Array<B> +export declare function takeLeftWhile<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B> +export declare function takeLeftWhile<A>(predicate: Predicate<A>): (as: Array<A>) => Array<A> +/** + * Type returned by [`spanLeft`](#spanLeft) composed of an `init` array and a `rest` array. + * + * @since 2.10.0 + */ +export interface Spanned<I, R> { + init: Array<I> + rest: Array<R> +} +/** + * Split an array into two parts: + * 1. the longest initial subarray for which all elements satisfy the specified predicate + * 2. the remaining elements + * + * @example + * import { spanLeft } from 'fp-ts/Array' + * + * const isOdd = (n: number) => n % 2 === 1; + * assert.deepStrictEqual(spanLeft(isOdd)([1, 3, 2, 4, 5]), { init: [1, 3], rest: [2, 4, 5] }); + * assert.deepStrictEqual(spanLeft(isOdd)([0, 2, 4, 5]), { init: [], rest: [0, 2, 4, 5] }); + * assert.deepStrictEqual(spanLeft(isOdd)([1, 3, 5]), { init: [1, 3, 5], rest: [] }); + * + * @since 2.0.0 + */ +export declare function spanLeft<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Spanned<B, A> +export declare function spanLeft<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Spanned<B, B> +export declare function spanLeft<A>(predicate: Predicate<A>): (as: Array<A>) => Spanned<A, A> +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]); + * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +export declare const dropLeft: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]); + * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +export declare const dropRight: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Creates a new `Array` which is a copy of the input dropping the longest initial subarray for + * which all element satisfy the specified predicate. + * + * @example + * import { dropLeftWhile } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropLeftWhile((n: number) => n % 2 === 1)([1, 3, 2, 4, 5]), [2, 4, 5]) + * + * @since 2.0.0 + */ +export declare function dropLeftWhile<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Array<B> +export declare function dropLeftWhile<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B> +export declare function dropLeftWhile<A>(predicate: Predicate<A>): (as: Array<A>) => Array<A> +/** + * `findIndex` returns an `Option` containing the first index for which a predicate holds. + * It returns `None` if no element satisfies the predicate. + * Similar to [`findFirst`](#findFirst) but returning the index instead of the element. + * + * @example + * import { findIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.0.0 + */ +export declare const findIndex: <A>(predicate: Predicate<A>) => (as: Array<A>) => Option<number> +/** + * Find the first element which satisfies a predicate (or a refinement) function. + * It returns an `Option` containing the element or `None` if not found. + * + * @example + * import { findFirst } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findFirst((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 1 })) + * + * @since 2.0.0 + */ +export declare function findFirst<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): (as: Array<A>) => Option<A> +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array and + * returns the first `Some` result. Otherwise it returns `None`. + * + * @example + * import { findFirstMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some("Mary")); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +export declare const findFirstMap: <A, B>(f: (a: A) => Option<B>) => (as: Array<A>) => Option<B> +/** + * Find the last element which satisfies a predicate function. + * It returns an `Option` containing the element or `None` if not found. + * + * @example + * import { findLast } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findLast((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 2 })) + * + * @since 2.0.0 + */ +export declare function findLast<A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): (as: Array<A>) => Option<A> +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array starting from the + * end and returns the last `Some` result. Otherwise it returns `None`. + * + * @example + * import { findLastMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some("Joey")); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +export declare const findLastMap: <A, B>(f: (a: A) => Option<B>) => (as: Array<A>) => Option<B> +/** + * Returns the index of the last element of the list which matches the predicate. + * It returns an `Option` containing the index or `None` if not found. + * + * @example + * import { findLastIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * @since 2.0.0 + */ +export declare const findLastIndex: <A>(predicate: Predicate<A>) => (as: Array<A>) => Option<number> +/** + * This function takes an array and makes a new array containing the same elements. + * + * @since 2.0.0 + */ +export declare const copy: <A>(as: Array<A>) => Array<A> +/** + * Insert an element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { insertAt } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.0.0 + */ +export declare const insertAt: <A>(i: number, a: A) => (as: Array<A>) => Option<NonEmptyArray<A>> +/** + * Change the element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { updateAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.0.0 + */ +export declare const updateAt: <A>(i: number, a: A) => (as: Array<A>) => Option<Array<A>> +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds. + * + * @example + * import { deleteAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.0.0 + */ +export declare const deleteAt: (i: number) => <A>(as: Array<A>) => Option<Array<A>> +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds. + * + * @example + * import { modifyAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.0.0 + */ +export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: Array<A>) => Option<Array<A>> +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.0.0 + */ +export declare const reverse: <A>(as: Array<A>) => Array<A> +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Right` elements in the same order. + * + * @example + * import { rights } from 'fp-ts/Array' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.0.0 + */ +export declare const rights: <E, A>(as: Array<Either<E, A>>) => Array<A> +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Left` elements in the same order. + * + * @example + * import { lefts } from 'fp-ts/Array' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.0.0 + */ +export declare const lefts: <E, A>(as: Array<Either<E, A>>) => Array<E> +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.0.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: Array<A>) => Array<A> +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/Array' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.0.0 + */ +export declare const zipWith: <A, B, C>(fa: Array<A>, fb: Array<B>, f: (a: A, b: B) => C) => Array<C> +/** + * Takes two arrays and returns an array of corresponding pairs. If one input array is short, excess elements of the + * longer array are discarded + * + * @example + * import { zip } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], zip(['a', 'b', 'c', 'd'])), [[1, 'a'], [2, 'b'], [3, 'c']]) + * + * @since 2.0.0 + */ +export declare function zip<B>(bs: Array<B>): <A>(as: Array<A>) => Array<[A, B]> +export declare function zip<A, B>(as: Array<A>, bs: Array<B>): Array<[A, B]> +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/Array' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.0.0 + */ +export declare const unzip: <A, B>(as: Array<[A, B]>) => [Array<A>, Array<B>] +/** + * Creates a new `Array`, prepending an element to every member of the input `Array`. + * + * @example + * import { prependAll } from 'fp-ts/Array' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: Array<A>) => Array<A> +/** + * Creates a new `Array` placing an element in between members of the input `Array`. + * + * @example + * import { intersperse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: Array<A>) => Array<A> +/** + * Creates a new `Array` rotating the input `Array` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.0.0 + */ +export declare const rotate: (n: number) => <A>(as: Array<A>) => Array<A> +/** + * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single + * argument which returns the function to use to search for a value of type `A` in + * an `Array<A>`. + * + * @example + * import { elem } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true) + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false) + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): (as: Array<A>) => boolean + (a: A, as: Array<A>): boolean +} +/** + * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element, + * based on a `Eq<A>`. + * + * @example + * import { uniq } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.0.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: Array<A>) => Array<A> +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/Array' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.0.0 + */ +export declare const sortBy: <B>(ords: Array<Ord<B>>) => <A extends B>(as: Array<A>) => Array<A> +/** + * A useful recursion pattern for processing an array to produce a new array, often used for "chopping" up the input + * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a + * value and the rest of the array. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as A from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => { + * return A.chop(as => { + * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.0.0 + */ +export declare const chop: <A, B>(f: (as: NonEmptyArray<A>) => [B, Array<A>]) => (as: Array<A>) => Array<B> +/** + * Splits an `Array` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/Array' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.0.0 + */ +export declare const splitAt: (n: number) => <A>(as: Array<A>) => [Array<A>, Array<A>] +/** + * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `xs`. + * + * @example + * import { chunksOf } from 'fp-ts/Array' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.0.0 + */ +export declare const chunksOf: (n: number) => <A>(as: Array<A>) => Array<NonEmptyArray<A>> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => Array<B> +/** + * `Array` comprehension. + * + * ``` + * [ f(x, y, ...) | x ← xs, y ← ys, ..., g(x, y, ...) ] + * ``` + * + * @example + * import { comprehension } from 'fp-ts/Array' + * import { tuple } from 'fp-ts/function' + * + * assert.deepStrictEqual(comprehension([[1, 2, 3], ['a', 'b']], tuple, (a, b) => (a + b.length) % 2 === 0), [ + * [1, 'a'], + * [1, 'b'], + * [3, 'a'], + * [3, 'b'] + * ]) + * + * @since 2.0.0 + */ +export declare function comprehension<A, B, C, D, R>( + input: [Array<A>, Array<B>, Array<C>, Array<D>], + f: (a: A, b: B, c: C, d: D) => R, + g?: (a: A, b: B, c: C, d: D) => boolean +): Array<R> +export declare function comprehension<A, B, C, R>( + input: [Array<A>, Array<B>, Array<C>], + f: (a: A, b: B, c: C) => R, + g?: (a: A, b: B, c: C) => boolean +): Array<R> +export declare function comprehension<A, B, R>( + input: [Array<A>, Array<B>], + f: (a: A, b: B) => R, + g?: (a: A, b: B) => boolean +): Array<R> +export declare function comprehension<A, R>(input: [Array<A>], f: (a: A) => R, g?: (a: A) => boolean): Array<R> +/** + * @since 2.11.0 + */ +export declare const concatW: <B>(second: Array<B>) => <A>(first: Array<A>) => Array<A | B> +/** + * @since 2.11.0 + */ +export declare const concat: <A>(second: Array<A>) => (first: Array<A>) => Array<A> +/** + * Creates an array of unique values, in order, from all given arrays using a `Eq` for equality comparisons + * + * @example + * import { union } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], union(N.Eq)([2, 3])), [1, 2, 3]) + * + * @since 2.0.0 + */ +export declare function union<A>(E: Eq<A>): { + (xs: Array<A>): (ys: Array<A>) => Array<A> + (xs: Array<A>, ys: Array<A>): Array<A> +} +/** + * Creates an array of unique values that are included in all given arrays using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { intersection } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], intersection(N.Eq)([2, 3])), [2]) + * + * @since 2.0.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (xs: Array<A>): (ys: Array<A>) => Array<A> + (xs: Array<A>, ys: Array<A>): Array<A> +} +/** + * Creates an array of array values not included in the other given array using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { difference } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], difference(N.Eq)([2, 3])), [1]) + * + * @since 2.0.0 + */ +export declare function difference<A>(E: Eq<A>): { + (xs: Array<A>): (ys: Array<A>) => Array<A> + (xs: Array<A>, ys: Array<A>): Array<A> +} +/** + * Given an element of the base type, `of` builds an `Array` containing just that + * element of the base type (this is useful for building a `Monad`). + * + * @example + * import { of } from 'fp-ts/Array' + * + * assert.deepStrictEqual(of("a"), ["a"]); + * + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => Array<A> +/** + * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid) + * + * @since 2.7.0 + */ +export declare const zero: <A>() => Array<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`. + * In practice it applies the base function to each element of the array and collects the + * results in a new array. + * + * @example + * import { map } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => n * 2; + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]); + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Array<A>) => Array<B> +/** + * @example + * import { ap, map, of } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * // a curried function with 3 input parameteres + * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2; + * + * // let's use `ap` to iterate `f` over an array for each input parameter + * assert.deepStrictEqual(pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])), [ + * "a1😀", "a1😫", "a1😎", + * "a2😀", "a2😫", "a2😎", + * "b1😀", "b1😫", "b1😎", + * "b2😀", "b2😫", "b2😎", + * ]); + * + * // given Array implements the Applicative interface with the `of` method, + * // we can write exactly the same thing in a more symmetric way + * // using `of` on `f` and `ap` on each array in input + * assert.deepStrictEqual( + * pipe(of(f), ap(["a", "b"]), ap([1, 2]), ap(["😀", "😫", "😎"])), + * pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])) + * ); + * + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Array<A>) => <B>(fab: Array<(a: A) => B>) => Array<B> +/** + * Composes computations in sequence, using the return value of one computation to + * determine the next computation. + * + * In other words it takes a function `f` that produces an array from a single element of + * the base type `A` and returns a new function which applies `f` to each element of the + * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the + * results into a single array (like [`flatten`](#flatten)). + * + * @example + * import { flatMap, map, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => replicate(n, `${n}`); + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [["1"], ["2", "2"], ["3", "3", "3"]]); + * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), ["1", "2", "2", "3", "3", "3"]); + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => Array<B>): (ma: Array<A>) => Array<B> + <A, B>(ma: Array<A>, f: (a: A, i: number) => Array<B>): Array<B> +} +/** + * Takes an array of arrays of `A` and flattens them into an array of `A` + * by concatenating the elements of each array in order. + * + * @example + * import { flatten } from 'fp-ts/Array' + * + * assert.deepStrictEqual(flatten([["a"], ["b", "c"], ["d", "e", "f"]]), ["a", "b", "c", "d", "e", "f"]); + * + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: Array<Array<A>>) => Array<A> +/** + * Same as [`map`](#map), but the iterating function takes both the index and the value + * of the element. + * + * @example + * import { mapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (i: number, s: string) => `${s} - ${i}`; + * assert.deepStrictEqual(pipe(["a", "b", "c"], mapWithIndex(f)), ["a - 0", "b - 1", "c - 2"]); + * + * @category mapping + * @since 2.0.0 + */ +export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (fa: Array<A>) => Array<B> +/** + * Maps an array with an iterating function that takes the index and the value of + * each element and returns an `Option`. It keeps only the `Some` values discarding + * the `None`s. + * + * Same as [`filterMap`](#filterMap), but with an iterating function which takes also + * the index as input. + * + * @example + * import { filterMapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none); + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMapWithIndex(f)), ["NO", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterMapWithIndex: <A, B>(f: (i: number, a: A) => Option<B>) => (fa: Array<A>) => Array<B> +/** + * Maps an array with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none; + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMap(f)), ["A", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Array<A>) => Array<B> +/** + * Compact an array of `Option`s discarding the `None` values and + * keeping the `Some` values. It returns a new array containing the values of + * the `Some` options. + * + * @example + * import { compact } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * + * assert.deepStrictEqual(compact([option.some("a"), option.none, option.some("b")]), ["a", "b"]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <A>(fa: Array<Option<A>>) => Array<A> +/** + * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays: + * one containing all the left values and one containing all the right values. + * + * @example + * import { separate } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * + * assert.deepStrictEqual(separate([either.right("r1"), either.left("l1"), either.right("r2")]), { + * left: ["l1"], + * right: ["r1", "r2"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <A, B>(fa: Array<Either<A, B>>) => Separated<Array<A>, Array<B>> +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `filter` creates a new `Array` containing the elements of the original + * `Array` for which the iterating function is `true`. + * + * @example + * import { filter } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(filter(isString)(["a", 1, {}, "b", 5]), ["a", "b"]); + * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Array<B> + <A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B> + <A>(predicate: Predicate<A>): (as: Array<A>) => Array<A> +} +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `partition` creates two new `Array`s: `right` containing the elements of the original + * `Array` for which the iterating function is `true`, `left` containing the elements + * for which it is false. + * + * @example + * import { partition } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(partition(isString)(["a", 1, {}, "b", 5]), { left: [1, {}, 5], right: ["a", "b"] }); + * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (as: Array<A>) => Separated<Array<A>, Array<B>> + <A>(predicate: Predicate<A>): <B extends A>(bs: Array<B>) => Separated<Array<B>, Array<B>> + <A>(predicate: Predicate<A>): (as: Array<A>) => Separated<Array<A>, Array<A>> +} +/** + * Same as [`partition`](#partition), but passing also the index to the iterating function. + * + * @example + * import { partitionWithIndex } from 'fp-ts/Array' + * + * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), { + * left: [-2, 7], + * right: [5, 6], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): ( + as: Array<A> + ) => Separated<Array<A>, Array<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>(bs: Array<B>) => Separated<Array<B>, Array<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): (as: Array<A>) => Separated<Array<A>, Array<A>> +} +/** + * Given an iterating function that returns an `Either`, + * `partitionMap` applies the iterating function to each element and it creates two `Array`s: + * `right` containing the values of `Right` results, `left` containing the values of `Left` results. + * + * @example + * import { partitionMap } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfString = <B>(x: B): Either<B, string> => + * typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMap(upperIfString)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7], + * right: [ 'HELLO', 'WORLD' ], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Array<A>) => Separated<Array<B>, Array<C>> +/** + * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function. + * + * @example + * import { partitionMapWithIndex } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> => + * index < 3 && typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7, "world"], + * right: ["HELLO"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMapWithIndex: <A, B, C>( + f: (i: number, a: A) => Either<B, C> +) => (fa: Array<A>) => Separated<Array<B>, Array<C>> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<Array<B>>) => <A>(fa: Array<A>) => Array<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Array` concatenates the inputs into a single array. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <A>(that: LazyArg<Array<A>>) => (fa: Array<A>) => Array<A> +/** + * Same as [`filter`](#filter), but passing also the index to the iterating function. + * + * @example + * import { filterWithIndex } from 'fp-ts/Array'; + * + * const f = (index: number, x: number) => x > 0 && index <= 2; + * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): (as: Array<A>) => Array<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>(bs: Array<B>) => Array<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): (as: Array<A>) => Array<A> +} +/** + * Given an iterating function that takes `Array<A>` as input, `extend` returns + * an array containing the results of the iterating function applied to the whole input + * `Array`, then to the input `Array` without the first element, then to the input + * `Array` without the first two elements, etc. + * + * @example + * import { extend } from 'fp-ts/Array' + * + * const f = (a: string[]) => a.join(","); + * assert.deepStrictEqual(extend(f)(["a", "b", "c"]), ["a,b,c", "b,c", "c"]); + * + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (as: Array<A>) => B) => (as: Array<A>) => Array<B> +/** + * `duplicate` returns an array containing the whole input `Array`, + * then to the input `Array` dropping the first element, then to the input + * `Array` dropping the first two elements, etc. + * + * @example + * import { duplicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(duplicate(["a", "b", "c"]), [["a", "b", "c"], ["b", "c"], ["c"]]); + * + * @since 2.0.0 + */ +export declare const duplicate: <A>(wa: Array<A>) => Array<Array<A>> +/** + * Map and fold an `Array`. + * Map the `Array` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (s: string) => s.toUpperCase() + * assert.deepStrictEqual(foldMap(monoid)(f)(["a", "b", "c"]), "ABC"); + * + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Array<A>) => M +/** + * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function. + * + * @example + * import { foldMapWithIndex } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})` + * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)(["a", "b", "c"]), "A(0)B(1)C(2)"); + * + * @category folding + * @since 2.0.0 + */ +export declare const foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: number, a: A) => M) => (fa: Array<A>) => M +/** + * Reduces an `Array`. + * + * `reduce` executes the supplied iterating function on each element of the array, + * in order, passing in the element and the return value from the calculation on the preceding element. + * + * The first time that the iterating function is called there is no "return value of the + * previous calculation", the initial value is used in its place. + * + * @example + * import { reduce } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Array<A>) => B +/** + * Same as [`reduce`](#reduce) but passing also the index to the iterating function. + * + * @example + * import { reduceWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, acc: string, cur: unknown) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceWithIndex("", f)([2, "a", "b", null]), "A1B2"); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: Array<A>) => B +/** + * Same as [`reduce`](#reduce) but applied from the end to the start. + * + * *Note*: the iterating function in this case takes the accumulator as the last argument. + * + * @example + * import { reduceRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduceRight("", (cur: string, acc: string) => acc + cur)(["a", "b", "c"]), "cba"); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Array<A>) => B +/** + * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function. + * + * @example + * import { reduceRightWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, cur: unknown, acc: string) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceRightWithIndex("", f)([2, "a", "b", null]), "B2A1"); + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: Array<A>) => B +/** + * Given an iterating function that returns a `HKT` (higher kinded type), `traverse` + * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s + * the results using the provided `Applicative`. + * + * E.g. suppose you have an `Array` and you want to format each element with a function + * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse` + * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>` + * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results + * are `Error`s. + * + * @example + * import { traverse } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (x: unknown) => + * typeof x === "string" ? right(x.toUpperCase()) : left(new Error("not a string")); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", "b"]), right(["A", "B"])); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and, + * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`. + * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`. + * + * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an + * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an + * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`, + * it needs an `Applicative` for `Option`. + * + * @example + * import { sequence } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * assert.deepStrictEqual(sequence(Applicative)([right("a"), right("b")]), right(["a", "b"])); + * assert.deepStrictEqual( + * sequence(Applicative)([right("a"), left(new Error("not a string"))]), + * left(new Error("not a string")) + * ); + * + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * Same as [`traverse`](#traverse) but passing also the index to the iterating function. + * + * @example + * import { traverseWithIndex } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (index:number, x:unknown) => + * typeof x === "string" ? right(x.toUpperCase() + index) : left(new Error("not a string")); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", "b"]), right(["A0", "B1"])); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome + * value and an input for the following iteration. + * `unfold` applies `f` to the initial value `b` and then recursively to the second + * element of the tuple contained in the returned `option` of the previous + * calculation until `f` returns `Option.none`. + * + * @example + * import { unfold } from 'fp-ts/Array' + * import { option } from 'fp-ts' + * + * const f = (n: number) => { + * if (n <= 0) return option.none; + * const returnValue = n * 2; + * const inputForNextRound = n - 1; + * return option.some([returnValue, inputForNextRound] as const); + * }; + * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]); + * + * @since 2.6.6 + */ +export declare const unfold: <A, B>(b: B, f: (b: B) => Option<readonly [A, B]>) => Array<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Array' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Array<A> + } +} +/** + * `getShow` makes a `Show` for an `Array<A>` from a `Show` for + * an `A`. + * + * @example + * import { getShow } from 'fp-ts/Array' + * + * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) }; + * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), "[(2), (1), 0, 1]"); + * + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Array<A>> +/** + * Get a `Semigroup` based on the concatenation of `Array`s. + * See also [`getMonoid`](#getMonoid). + * + * @example + * import { getSemigroup } from 'fp-ts/Array' + * + * const S = getSemigroup<number>(); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]); + * + * @category instances + * @since 2.10.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<Array<A>> +/** + * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s. + * + * @example + * import { getMonoid } from 'fp-ts/Array' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.0.0 + */ +export declare const getMonoid: <A = never>() => Monoid<Array<A>> +/** + * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/Array' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Array<A>> +/** + * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/Array' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * @category instances + * @since 2.0.0 + */ +export declare const getOrd: <A>(O: Ord<A>) => Ord<Array<A>> +/** + * Get a `Semigroup` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * See also [`getUnionMonoid`](#getUnionMonoid). + * + * @example + * import { getUnionSemigroup } from 'fp-ts/Array'; + * import { Eq } from 'fp-ts/number'; + * + * const S = getUnionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<Array<A>> +/** + * Get a `Monoid` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * + * @example + * import { getUnionMonoid } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const M = getUnionMonoid<number>(Eq); + * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(M.empty,[]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<Array<A>> +/** + * Get a `Semigroup` based on the intersection of the elements of `Array`s. + * Only elements present in the two arrays which are equal according to the + * provided `Eq` are included in the result. + * + * @example + * import { getIntersectionSemigroup } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getIntersectionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<Array<A>> +/** + * Get a `Magma` for `Array` where the `concat` function is the differnce between + * the first and the second array, i.e. the result contains all the elements of the + * first array for which their is no equal element in the second array according + * to the `Eq` provided. + * + * + * @example + * import { getDifferenceMagma } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getDifferenceMagma<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]); + * + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<Array<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Given an input an `Array` of functions, `flap` returns an `Array` containing + * the results of applying each function to the given input. + * + * @example + * import { flap } from 'fp-ts/Array' + * + * const funs = [ + * (n: number) => `Double: ${n * 2}`, + * (n: number) => `Triple: ${n * 3}`, + * (n: number) => `Square: ${n * n}`, + * ]; + * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']); + * + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Array', (a: A) => B>) => import('./HKT').Kind<'Array', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: B[] +) => <A>(first: import('./HKT').Kind<'Array', A>) => import('./HKT').Kind<'Array', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: B[] +) => <A>(first: import('./HKT').Kind<'Array', A>) => import('./HKT').Kind<'Array', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Array<B>) => (first: Array<A>) => Array<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Unfoldable: Unfoldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'Array', void> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Witherable: Witherable1<URI> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecDepthFirst: <A, B>(f: (a: A) => Array<Either<A, B>>) => (a: A) => Array<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecDepthFirst: ChainRec1<URI> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecBreadthFirst: <A, B>(f: (a: A) => Array<Either<A, B>>) => (a: A) => Array<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecBreadthFirst: ChainRec1<URI> +/** + * Filter values inside a context. + * + * @since 2.11.0 + */ +export declare const filterE: import('./Witherable').FilterE1<'Array'> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => Array<B> +/** + * @category unsafe + * @since 2.0.0 + */ +export declare const unsafeInsertAt: <A>(i: number, a: A, as: Array<A>) => NonEmptyArray<A> +/** + * @category unsafe + * @since 2.0.0 + */ +export declare const unsafeUpdateAt: <A>(i: number, a: A, as: Array<A>) => Array<A> +/** + * @category unsafe + * @since 2.0.0 + */ +export declare const unsafeDeleteAt: <A>(i: number, as: Array<A>) => Array<A> +/** + * `every` tells if the provided predicate holds true for every element in the `Array`. + * + * @example + * import { every } from 'fp-ts/Array' + * + * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false); + * + * @since 2.9.0 + */ +export declare const every: { + <A, B extends A>(refinement: Refinement<A, B>): Refinement<Array<A>, Array<B>> + <A>(predicate: Predicate<A>): Predicate<Array<A>> +} +/** + * `some` tells if the provided predicate holds true at least for one element in the `Array`. + * + * @example + * import { some } from 'fp-ts/Array' + * + * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false); + * + * @since 2.9.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (as: Array<A>) => as is NonEmptyArray<A> +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (as: Array<A>) => as is NEA.NonEmptyArray<A> +/** + * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(M: Monoid<A>) => (middle: A) => (as: Array<A>) => A +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Array<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Array', A>) => import('./HKT').Kind<'Array', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Array', A> +) => import('./HKT').Kind<'Array', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Array', B> +) => ( + ma: import('./HKT').Kind<'Array', A> +) => import('./HKT').Kind<'Array', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: B[] +) => ( + fa: import('./HKT').Kind<'Array', A> +) => import('./HKT').Kind<'Array', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Array<B>) => (ma: Array<A>) => Array<B> +/** + * Use `NonEmptyArray` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const range: (start: number, end: number) => NonEmptyArray<number> +/** + * Use a new `[]` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const empty: Array<never> +/** + * Use `prepend` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const cons: typeof NEA.cons +/** + * Use `append` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const snoc: <A>(init: Array<A>, end: A) => NonEmptyArray<A> +/** + * Use `prependAll` instead + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: Array<A>) => Array<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array` + * (where `A` is from `import A from 'fp-ts/Array'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const array: FunctorWithIndex1<URI, number> & + Monad1<URI> & + Unfoldable1<URI> & + Alternative1<URI> & + Extend1<URI> & + FilterableWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + TraversableWithIndex1<URI, number> & + Witherable1<URI> diff --git a/node_modules/fp-ts/lib/Array.js b/node_modules/fp-ts/lib/Array.js new file mode 100644 index 0000000..c5ddc43 --- /dev/null +++ b/node_modules/fp-ts/lib/Array.js @@ -0,0 +1,2621 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zipWith = exports.sort = exports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.copy = exports.findLastIndex = exports.findLastMap = exports.findFirstMap = exports.findIndex = exports.dropRight = exports.dropLeft = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0; +exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.foldMapWithIndex = exports.foldMap = exports.duplicate = exports.extend = exports.filterWithIndex = exports.alt = exports.altW = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.filter = exports.separate = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.mapWithIndex = exports.flatten = exports.flatMap = exports.ap = exports.map = exports.zero = exports.of = exports.concat = exports.concatW = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = void 0; +exports.cons = exports.empty = exports.range = exports.chain = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = exports.some = exports.every = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = void 0; +exports.array = exports.prependToAll = exports.snoc = void 0; +exports.fromPredicate = fromPredicate; +exports.takeLeftWhile = takeLeftWhile; +exports.spanLeft = spanLeft; +exports.dropLeftWhile = dropLeftWhile; +exports.findFirst = findFirst; +exports.findLast = findLast; +exports.zip = zip; +exports.comprehension = comprehension; +exports.union = union; +exports.intersection = intersection; +exports.difference = difference; +var Apply_1 = require("./Apply"); +var Chain_1 = require("./Chain"); +var FromEither_1 = require("./FromEither"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var NEA = __importStar(require("./NonEmptyArray")); +var RA = __importStar(require("./ReadonlyArray")); +var Separated_1 = require("./Separated"); +var Witherable_1 = require("./Witherable"); +var Zero_1 = require("./Zero"); +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Test whether an array is empty + * + * @example + * import { isEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isEmpty([]), true) + * assert.strictEqual(isEmpty(['a']), false) + * + * @category refinements + * @since 2.0.0 + */ +var isEmpty = function (as) { return as.length === 0; }; +exports.isEmpty = isEmpty; +/** + * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>` + * + * @example + * import { isNonEmpty } from 'fp-ts/Array' + * + * assert.strictEqual(isNonEmpty([]), false) + * assert.strictEqual(isNonEmpty(['a']), true) + * + * @category refinements + * @since 2.0.0 + */ +exports.isNonEmpty = NEA.isNonEmpty; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +exports.prepend = NEA.prepend; +/** + * Less strict version of [`prepend`](#prepend). + * + * @example + * import { prependW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prependW("a")), ["a", 2, 3, 4]); + * + * @since 2.11.0 + */ +exports.prependW = NEA.prependW; +/** + * Append an element to the end of a `Array`, creating a new `NonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +exports.append = NEA.append; +/** + * Less strict version of [`append`](#append). + * + * @example + * import { appendW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], appendW("d")), [1, 2, 3, "d"]); + * + * @since 2.11.0 + */ +exports.appendW = NEA.appendW; +/** + * Return a `Array` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/Array' + * + * const double = (i: number): number => i * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * assert.deepStrictEqual(makeBy(-3, double), []) + * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6]) + * + * @category constructors + * @since 2.0.0 + */ +var makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); }; +exports.makeBy = makeBy; +/** + * Create a `Array` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * assert.deepStrictEqual(replicate(-3, 'a'), []) + * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a']) + * + * @category constructors + * @since 2.0.0 + */ +var replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); }; +exports.replicate = replicate; +function fromPredicate(predicate) { + return function (a) { return (predicate(a) ? [a] : []); }; +} +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * Create an array from an `Option`. The resulting array will contain the content of the + * `Option` if it is `Some` and it will be empty if the `Option` is `None`. + * + * @example + * import { fromOption } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(option.some("a"), fromOption),["a"]) + * assert.deepStrictEqual(pipe(option.none, fromOption),[]) + * + * @category conversions + * @since 2.11.0 + */ +var fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); }; +exports.fromOption = fromOption; +/** + * Create an array from an `Either`. The resulting array will contain the content of the + * `Either` if it is `Right` and it will be empty if the `Either` is `Left`. + * + * @example + * import { fromEither } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(either.right("r"), fromEither), ["r"]); + * assert.deepStrictEqual(pipe(either.left("l"), fromEither), []); + * + * @category conversions + * @since 2.11.0 + */ +var fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); }; +exports.fromEither = fromEither; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @example + * import { matchW } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcherW = matchW( + * () => "No elements", + * (as) => as.length + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4); + * assert.deepStrictEqual(pipe([], matcherW), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +var matchW = function (onEmpty, onNonEmpty) { + return function (as) { + return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty(); + }; +}; +exports.matchW = matchW; +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` and returns the result. + * + * @example + * import { match } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const matcher = match( + * () => "No elements", + * (as) => `Found ${as.length} element(s)` + * ); + * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), "Found 4 element(s)"); + * assert.deepStrictEqual(pipe([], matcher), "No elements"); + * + * @category pattern matching + * @since 2.11.0 + */ +exports.match = exports.matchW; +/** + * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchLeftW } from 'fp-ts/Array' + * + * const f = matchLeftW( + * () => 0, + * (head: string, tail: string[]) => `Found "${head}" followed by ${tail.length} elements` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found "a" followed by 2 elements'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +var matchLeftW = function (onEmpty, onNonEmpty) { + return function (as) { + return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty(); + }; +}; +exports.matchLeftW = matchLeftW; +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchLeft = exports.matchLeftW; +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.foldLeft = exports.matchLeft; +/** + * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and + * `onNonEmpty` have different return types. + * + * @example + * import { matchRightW } from 'fp-ts/Array' + * + * const f = matchRightW( + * () => 0, + * (head: string[], tail: string) => `Found ${head.length} elements folllowed by "${tail}"` + * ); + * assert.strictEqual(f(["a", "b", "c"]), 'Found 2 elements folllowed by "c"'); + * assert.strictEqual(f([]), 0); + * + * @category pattern matching + * @since 2.11.0 + */ +var matchRightW = function (onEmpty, onNonEmpty) { + return function (as) { + return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty(); + }; +}; +exports.matchRightW = matchRightW; +/** + * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise + * it passes the array to `onNonEmpty` broken into its initial elements and the last element. + * + * @example + * import { matchRight } from 'fp-ts/Array' + * + * const len: <A>(as: Array<A>) => number = matchRight( + * () => 0, + * (head, _) => 1 + len(head) + * ); + * assert.strictEqual(len([1, 2, 3]), 3); + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchRight = exports.matchRightW; +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.foldRight = exports.matchRight; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Same as [`chain`](#chain), but passing also the index to the iterating function. + * + * @example + * import { chainWithIndex, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (index: number, x: string) => replicate(2, `${x}${index}`); + * assert.deepStrictEqual(pipe(["a", "b", "c"], chainWithIndex(f)), ["a0", "a0", "b1", "b1", "c2", "c2"]); + * + * @category sequencing + * @since 2.7.0 + */ +var chainWithIndex = function (f) { + return function (as) { + var out = []; + for (var i = 0; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +exports.chainWithIndex = chainWithIndex; +/** + * Same as `reduce` but it carries over the intermediate steps + * + * @example + * import { scanLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.0.0 + */ +var scanLeft = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[0] = b; + for (var i = 0; i < len; i++) { + out[i + 1] = f(out[i], as[i]); + } + return out; + }; +}; +exports.scanLeft = scanLeft; +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.0.0 + */ +var scanRight = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[len] = b; + for (var i = len - 1; i >= 0; i--) { + out[i] = f(as[i], out[i + 1]); + } + return out; + }; +}; +exports.scanRight = scanRight; +/** + * Calculate the number of elements in a `Array`. + * + * @example + * import { size } from 'fp-ts/Array' + * + * assert.strictEqual(size(["a","b","c"]),3) + * + * @since 2.10.0 + */ +var size = function (as) { return as.length; }; +exports.size = size; +/** + * Test whether an array contains a particular index + * + * @example + * import { isOutOfBound } from 'fp-ts/Array' + * + * assert.strictEqual(isOutOfBound(1,["a","b","c"]),false) + * assert.strictEqual(isOutOfBound(-1,["a","b","c"]),true) + * assert.strictEqual(isOutOfBound(3,["a","b","c"]),true) + * + * @since 2.0.0 + */ +exports.isOutOfBound = NEA.isOutOfBound; +// TODO: remove non-curried overloading in v3 +/** + * This function provides a safe way to read a value at a particular index from an array. + * It returns a `none` if the index is out of bounds, and a `some` of the element if the + * index is valid. + * + * @example + * import { lookup } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2)) + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none) + * + * @since 2.0.0 + */ +exports.lookup = RA.lookup; +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.0.0 + */ +exports.head = RA.head; +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.0.0 + */ +exports.last = RA.last; +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.0.0 + */ +var tail = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.tail(as)) : _.none); }; +exports.tail = tail; +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.0.0 + */ +var init = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.init(as)) : _.none); }; +exports.init = init; +/** + * Keep only a max number of elements from the start of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]); + * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +var takeLeft = function (n) { + return function (as) { + return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : as.slice(0, n); + }; +}; +exports.takeLeft = takeLeft; +/** + * Keep only a max number of elements from the end of an `Array`, creating a new `Array`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { takeRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]); + * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []); + * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]); + * + * @since 2.0.0 + */ +var takeRight = function (n) { + return function (as) { + return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : n === 0 ? [] : as.slice(-n); + }; +}; +exports.takeRight = takeRight; +function takeLeftWhile(predicate) { + return function (as) { + var out = []; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + if (!predicate(a)) { + break; + } + out.push(a); + } + return out; + }; +} +var spanLeftIndex = function (as, predicate) { + var l = as.length; + var i = 0; + for (; i < l; i++) { + if (!predicate(as[i])) { + break; + } + } + return i; +}; +function spanLeft(predicate) { + return function (as) { + var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1]; + return { init: init, rest: rest }; + }; +} +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropLeft } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]); + * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +var dropLeft = function (n) { + return function (as) { + return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(n, as.length); + }; +}; +exports.dropLeft = dropLeft; +/** + * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { dropRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]); + * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []); + * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]); + * + * @since 2.0.0 + */ +var dropRight = function (n) { + return function (as) { + return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(0, as.length - n); + }; +}; +exports.dropRight = dropRight; +function dropLeftWhile(predicate) { + return function (as) { return as.slice(spanLeftIndex(as, predicate)); }; +} +/** + * `findIndex` returns an `Option` containing the first index for which a predicate holds. + * It returns `None` if no element satisfies the predicate. + * Similar to [`findFirst`](#findFirst) but returning the index instead of the element. + * + * @example + * import { findIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.0.0 + */ +exports.findIndex = RA.findIndex; +function findFirst(predicate) { + return RA.findFirst(predicate); +} +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array and + * returns the first `Some` result. Otherwise it returns `None`. + * + * @example + * import { findFirstMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some("Mary")); + * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +exports.findFirstMap = RA.findFirstMap; +function findLast(predicate) { + return RA.findLast(predicate); +} +/** + * Given a selector function which takes an element and returns an option, + * this function applies the selector to each element of the array starting from the + * end and returns the last `Some` result. Otherwise it returns `None`. + * + * @example + * import { findLastMap } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string; + * readonly age: number; + * } + * + * const persons: Array<Person> = [ + * { name: "John", age: 16 }, + * { name: "Mary", age: 45 }, + * { name: "Joey", age: 28 }, + * ]; + * + * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name)); + * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name)); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some("Joey")); + * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none); + * + * @since 2.0.0 + */ +exports.findLastMap = RA.findLastMap; +/** + * Returns the index of the last element of the list which matches the predicate. + * It returns an `Option` containing the index or `None` if not found. + * + * @example + * import { findLastIndex } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * @since 2.0.0 + */ +exports.findLastIndex = RA.findLastIndex; +/** + * This function takes an array and makes a new array containing the same elements. + * + * @since 2.0.0 + */ +var copy = function (as) { return as.slice(); }; +exports.copy = copy; +/** + * Insert an element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { insertAt } from 'fp-ts/Array' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.0.0 + */ +var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as)); + }; +}; +exports.insertAt = insertAt; +/** + * Change the element at the specified index, creating a new array, + * or returning `None` if the index is out of bounds. + * + * @example + * import { updateAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.0.0 + */ +var updateAt = function (i, a) { return (0, exports.modifyAt)(i, function () { return a; }); }; +exports.updateAt = updateAt; +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds. + * + * @example + * import { deleteAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.0.0 + */ +var deleteAt = function (i) { + return function (as) { + return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as)); + }; +}; +exports.deleteAt = deleteAt; +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds. + * + * @example + * import { modifyAt } from 'fp-ts/Array' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.0.0 + */ +var modifyAt = function (i, f) { + return function (as) { + return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as)); + }; +}; +exports.modifyAt = modifyAt; +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.0.0 + */ +var reverse = function (as) { return ((0, exports.isEmpty)(as) ? [] : as.slice().reverse()); }; +exports.reverse = reverse; +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Right` elements in the same order. + * + * @example + * import { rights } from 'fp-ts/Array' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.0.0 + */ +var rights = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Right') { + r.push(a.right); + } + } + return r; +}; +exports.rights = rights; +/** + * Takes an `Array` of `Either` and produces a new `Array` containing + * the values of all the `Left` elements in the same order. + * + * @example + * import { lefts } from 'fp-ts/Array' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.0.0 + */ +var lefts = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Left') { + r.push(a.left); + } + } + return r; +}; +exports.lefts = lefts; +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.0.0 + */ +var sort = function (O) { + return function (as) { + return as.length <= 1 ? (0, exports.copy)(as) : as.slice().sort(O.compare); + }; +}; +exports.sort = sort; +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/Array' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.0.0 + */ +var zipWith = function (fa, fb, f) { + var fc = []; + var len = Math.min(fa.length, fb.length); + for (var i = 0; i < len; i++) { + fc[i] = f(fa[i], fb[i]); + } + return fc; +}; +exports.zipWith = zipWith; +function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; }); +} +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/Array' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.0.0 + */ +var unzip = function (as) { + var fa = []; + var fb = []; + for (var i = 0; i < as.length; i++) { + fa[i] = as[i][0]; + fb[i] = as[i][1]; + } + return [fa, fb]; +}; +exports.unzip = unzip; +/** + * Creates a new `Array`, prepending an element to every member of the input `Array`. + * + * @example + * import { prependAll } from 'fp-ts/Array' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +var prependAll = function (middle) { + var f = NEA.prependAll(middle); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); }; +}; +exports.prependAll = prependAll; +/** + * Creates a new `Array` placing an element in between members of the input `Array`. + * + * @example + * import { intersperse } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +var intersperse = function (middle) { + var f = NEA.intersperse(middle); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); }; +}; +exports.intersperse = intersperse; +/** + * Creates a new `Array` rotating the input `Array` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.0.0 + */ +var rotate = function (n) { + var f = NEA.rotate(n); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); }; +}; +exports.rotate = rotate; +// TODO: remove non-curried overloading in v3 +/** + * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single + * argument which returns the function to use to search for a value of type `A` in + * an `Array<A>`. + * + * @example + * import { elem } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true) + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false) + * + * @since 2.0.0 + */ +exports.elem = RA.elem; +/** + * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element, + * based on a `Eq<A>`. + * + * @example + * import { uniq } from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.0.0 + */ +var uniq = function (E) { + var f = NEA.uniq(E); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); }; +}; +exports.uniq = uniq; +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/Array' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.0.0 + */ +var sortBy = function (ords) { + var f = NEA.sortBy(ords); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); }; +}; +exports.sortBy = sortBy; +/** + * A useful recursion pattern for processing an array to produce a new array, often used for "chopping" up the input + * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a + * value and the rest of the array. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as A from 'fp-ts/Array' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => { + * return A.chop(as => { + * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.0.0 + */ +var chop = function (f) { + var g = NEA.chop(f); + return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : []); }; +}; +exports.chop = chop; +/** + * Splits an `Array` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/Array' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.0.0 + */ +var splitAt = function (n) { + return function (as) { + return n >= 1 && (0, exports.isNonEmpty)(as) ? NEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [(0, exports.copy)(as), []] : [[], (0, exports.copy)(as)]; + }; +}; +exports.splitAt = splitAt; +/** + * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `xs`. + * + * @example + * import { chunksOf } from 'fp-ts/Array' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.0.0 + */ +var chunksOf = function (n) { + var f = NEA.chunksOf(n); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); }; +}; +exports.chunksOf = chunksOf; +/** + * @category lifting + * @since 2.11.0 + */ +var fromOptionK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.fromOption)(f.apply(void 0, a)); + }; +}; +exports.fromOptionK = fromOptionK; +function comprehension(input, f, g) { + if (g === void 0) { g = function () { return true; }; } + var go = function (scope, input) { + return (0, exports.isNonEmpty)(input) + ? (0, exports.flatMap)(NEA.head(input), function (a) { return go((0, function_1.pipe)(scope, (0, exports.append)(a)), NEA.tail(input)); }) + : g.apply(void 0, scope) ? [f.apply(void 0, scope)] + : []; + }; + return go([], input); +} +/** + * @since 2.11.0 + */ +var concatW = function (second) { + return function (first) { + return (0, exports.isEmpty)(first) ? (0, exports.copy)(second) : (0, exports.isEmpty)(second) ? (0, exports.copy)(first) : first.concat(second); + }; +}; +exports.concatW = concatW; +/** + * @since 2.11.0 + */ +exports.concat = exports.concatW; +function union(E) { + var unionE = NEA.union(E); + return function (first, second) { + if (second === undefined) { + var unionE_1 = union(E); + return function (second) { return unionE_1(second, first); }; + } + return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second) + ? unionE(second)(first) + : (0, exports.isNonEmpty)(first) + ? (0, exports.copy)(first) + : (0, exports.copy)(second); + }; +} +function intersection(E) { + var elemE = (0, exports.elem)(E); + return function (xs, ys) { + if (ys === undefined) { + var intersectionE_1 = intersection(E); + return function (ys) { return intersectionE_1(ys, xs); }; + } + return xs.filter(function (a) { return elemE(a, ys); }); + }; +} +function difference(E) { + var elemE = (0, exports.elem)(E); + return function (xs, ys) { + if (ys === undefined) { + var differenceE_1 = difference(E); + return function (ys) { return differenceE_1(ys, xs); }; + } + return xs.filter(function (a) { return !elemE(a, ys); }); + }; +} +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); }; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); }; +/* istanbul ignore next */ +var _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); }; +/* istanbul ignore next */ +var _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _reduceWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f)); +}; +/* istanbul ignore next */ +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRightWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f)); +}; +/* istanbul ignore next */ +var _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); }; +/* istanbul ignore next */ +var _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); }; +/* istanbul ignore next */ +var _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); }; +}; +var _chainRecDepthFirst = RA._chainRecDepthFirst; +var _chainRecBreadthFirst = RA._chainRecBreadthFirst; +/** + * Given an element of the base type, `of` builds an `Array` containing just that + * element of the base type (this is useful for building a `Monad`). + * + * @example + * import { of } from 'fp-ts/Array' + * + * assert.deepStrictEqual(of("a"), ["a"]); + * + * @category constructors + * @since 2.0.0 + */ +exports.of = NEA.of; +/** + * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid) + * + * @since 2.7.0 + */ +var zero = function () { return []; }; +exports.zero = zero; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`. + * In practice it applies the base function to each element of the array and collects the + * results in a new array. + * + * @example + * import { map } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => n * 2; + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]); + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; }; +exports.map = map; +/** + * @example + * import { ap, map, of } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * // a curried function with 3 input parameteres + * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2; + * + * // let's use `ap` to iterate `f` over an array for each input parameter + * assert.deepStrictEqual(pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])), [ + * "a1😀", "a1😫", "a1😎", + * "a2😀", "a2😫", "a2😎", + * "b1😀", "b1😫", "b1😎", + * "b2😀", "b2😫", "b2😎", + * ]); + * + * // given Array implements the Applicative interface with the `of` method, + * // we can write exactly the same thing in a more symmetric way + * // using `of` on `f` and `ap` on each array in input + * assert.deepStrictEqual( + * pipe(of(f), ap(["a", "b"]), ap([1, 2]), ap(["😀", "😫", "😎"])), + * pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])) + * ); + * + * @since 2.0.0 + */ +var ap = function (fa) { + return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); +}; +exports.ap = ap; +/** + * Composes computations in sequence, using the return value of one computation to + * determine the next computation. + * + * In other words it takes a function `f` that produces an array from a single element of + * the base type `A` and returns a new function which applies `f` to each element of the + * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the + * results into a single array (like [`flatten`](#flatten)). + * + * @example + * import { flatMap, map, replicate } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (n: number) => replicate(n, `${n}`); + * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [["1"], ["2", "2"], ["3", "3", "3"]]); + * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), ["1", "2", "2", "3", "3", "3"]); + * + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); })); +}); +/** + * Takes an array of arrays of `A` and flattens them into an array of `A` + * by concatenating the elements of each array in order. + * + * @example + * import { flatten } from 'fp-ts/Array' + * + * assert.deepStrictEqual(flatten([["a"], ["b", "c"], ["d", "e", "f"]]), ["a", "b", "c", "d", "e", "f"]); + * + * @category sequencing + * @since 2.5.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * Same as [`map`](#map), but the iterating function takes both the index and the value + * of the element. + * + * @example + * import { mapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * const f = (i: number, s: string) => `${s} - ${i}`; + * assert.deepStrictEqual(pipe(["a", "b", "c"], mapWithIndex(f)), ["a - 0", "b - 1", "c - 2"]); + * + * @category mapping + * @since 2.0.0 + */ +var mapWithIndex = function (f) { return function (fa) { + return fa.map(function (a, i) { return f(i, a); }); +}; }; +exports.mapWithIndex = mapWithIndex; +/** + * Maps an array with an iterating function that takes the index and the value of + * each element and returns an `Option`. It keeps only the `Some` values discarding + * the `None`s. + * + * Same as [`filterMap`](#filterMap), but with an iterating function which takes also + * the index as input. + * + * @example + * import { filterMapWithIndex } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none); + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMapWithIndex(f)), ["NO", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +var filterMapWithIndex = function (f) { + return function (fa) { + var out = []; + for (var i = 0; i < fa.length; i++) { + var optionB = f(i, fa[i]); + if (_.isSome(optionB)) { + out.push(optionB.value); + } + } + return out; + }; +}; +exports.filterMapWithIndex = filterMapWithIndex; +/** + * Maps an array with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * import { option } from "fp-ts"; + * + * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none; + * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMap(f)), ["A", "B"]); + * + * @category filtering + * @since 2.0.0 + */ +var filterMap = function (f) { + return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); }); +}; +exports.filterMap = filterMap; +/** + * Compact an array of `Option`s discarding the `None` values and + * keeping the `Some` values. It returns a new array containing the values of + * the `Some` options. + * + * @example + * import { compact } from 'fp-ts/Array' + * import { option } from "fp-ts"; + * + * assert.deepStrictEqual(compact([option.some("a"), option.none, option.some("b")]), ["a", "b"]); + * + * @category filtering + * @since 2.0.0 + */ +exports.compact = (0, exports.filterMap)(function_1.identity); +/** + * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays: + * one containing all the left values and one containing all the right values. + * + * @example + * import { separate } from 'fp-ts/Array' + * import { either } from "fp-ts"; + * + * assert.deepStrictEqual(separate([either.right("r1"), either.left("l1"), either.right("r2")]), { + * left: ["l1"], + * right: ["r1", "r2"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +var separate = function (fa) { + var left = []; + var right = []; + for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) { + var e = fa_1[_i]; + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return (0, Separated_1.separated)(left, right); +}; +exports.separate = separate; +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `filter` creates a new `Array` containing the elements of the original + * `Array` for which the iterating function is `true`. + * + * @example + * import { filter } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(filter(isString)(["a", 1, {}, "b", 5]), ["a", "b"]); + * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]); + * + * @category filtering + * @since 2.0.0 + */ +var filter = function (predicate) { + return function (as) { + return as.filter(predicate); + }; +}; +exports.filter = filter; +/** + * Given an iterating function that is a `Predicate` or a `Refinement`, + * `partition` creates two new `Array`s: `right` containing the elements of the original + * `Array` for which the iterating function is `true`, `left` containing the elements + * for which it is false. + * + * @example + * import { partition } from 'fp-ts/Array' + * import { isString } from "fp-ts/string"; + * + * assert.deepStrictEqual(partition(isString)(["a", 1, {}, "b", 5]), { left: [1, {}, 5], right: ["a", "b"] }); + * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] }); + * + * @category filtering + * @since 2.0.0 + */ +var partition = function (predicate) { + return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); }); +}; +exports.partition = partition; +/** + * Same as [`partition`](#partition), but passing also the index to the iterating function. + * + * @example + * import { partitionWithIndex } from 'fp-ts/Array' + * + * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), { + * left: [-2, 7], + * right: [5, 6], + * }); + * + * @category filtering + * @since 2.0.0 + */ +var partitionWithIndex = function (predicateWithIndex) { + return function (as) { + var left = []; + var right = []; + for (var i = 0; i < as.length; i++) { + var b = as[i]; + if (predicateWithIndex(i, b)) { + right.push(b); + } + else { + left.push(b); + } + } + return (0, Separated_1.separated)(left, right); + }; +}; +exports.partitionWithIndex = partitionWithIndex; +/** + * Given an iterating function that returns an `Either`, + * `partitionMap` applies the iterating function to each element and it creates two `Array`s: + * `right` containing the values of `Right` results, `left` containing the values of `Left` results. + * + * @example + * import { partitionMap } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfString = <B>(x: B): Either<B, string> => + * typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMap(upperIfString)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7], + * right: [ 'HELLO', 'WORLD' ], + * }); + * + * @category filtering + * @since 2.0.0 + */ +var partitionMap = function (f) { return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); }); }; +exports.partitionMap = partitionMap; +/** + * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function. + * + * @example + * import { partitionMapWithIndex } from 'fp-ts/Array' + * import { Either, left, right } from "fp-ts/Either"; + * + * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> => + * index < 3 && typeof x === "string" ? right(x.toUpperCase()) : left(x); + * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, "hello", 6, 7, "world"]), { + * left: [-2, 6, 7, "world"], + * right: ["HELLO"], + * }); + * + * @category filtering + * @since 2.0.0 + */ +var partitionMapWithIndex = function (f) { + return function (fa) { + var left = []; + var right = []; + for (var i = 0; i < fa.length; i++) { + var e = f(i, fa[i]); + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return (0, Separated_1.separated)(left, right); + }; +}; +exports.partitionMapWithIndex = partitionMapWithIndex; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +var altW = function (that) { + return function (fa) { + return fa.concat(that()); + }; +}; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Array` concatenates the inputs into a single array. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = exports.altW; +/** + * Same as [`filter`](#filter), but passing also the index to the iterating function. + * + * @example + * import { filterWithIndex } from 'fp-ts/Array'; + * + * const f = (index: number, x: number) => x > 0 && index <= 2; + * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]); + * + * @category filtering + * @since 2.0.0 + */ +var filterWithIndex = function (predicateWithIndex) { + return function (as) { + return as.filter(function (b, i) { return predicateWithIndex(i, b); }); + }; +}; +exports.filterWithIndex = filterWithIndex; +/** + * Given an iterating function that takes `Array<A>` as input, `extend` returns + * an array containing the results of the iterating function applied to the whole input + * `Array`, then to the input `Array` without the first element, then to the input + * `Array` without the first two elements, etc. + * + * @example + * import { extend } from 'fp-ts/Array' + * + * const f = (a: string[]) => a.join(","); + * assert.deepStrictEqual(extend(f)(["a", "b", "c"]), ["a,b,c", "b,c", "c"]); + * + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { + return wa.map(function (_, i) { return f(wa.slice(i)); }); +}; }; +exports.extend = extend; +/** + * `duplicate` returns an array containing the whole input `Array`, + * then to the input `Array` dropping the first element, then to the input + * `Array` dropping the first two elements, etc. + * + * @example + * import { duplicate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(duplicate(["a", "b", "c"]), [["a", "b", "c"], ["b", "c"], ["c"]]); + * + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * Map and fold an `Array`. + * Map the `Array` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (s: string) => s.toUpperCase() + * assert.deepStrictEqual(foldMap(monoid)(f)(["a", "b", "c"]), "ABC"); + * + * @category folding + * @since 2.0.0 + */ +exports.foldMap = RA.foldMap; +/** + * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function. + * + * @example + * import { foldMapWithIndex } from 'fp-ts/Array' + * + * const monoid = { concat: (a: string, b: string) => a + b, empty: "" }; + * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})` + * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)(["a", "b", "c"]), "A(0)B(1)C(2)"); + * + * @category folding + * @since 2.0.0 + */ +exports.foldMapWithIndex = RA.foldMapWithIndex; +/** + * Reduces an `Array`. + * + * `reduce` executes the supplied iterating function on each element of the array, + * in order, passing in the element and the return value from the calculation on the preceding element. + * + * The first time that the iterating function is called there is no "return value of the + * previous calculation", the initial value is used in its place. + * + * @example + * import { reduce } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3); + * + * @category folding + * @since 2.0.0 + */ +exports.reduce = RA.reduce; +/** + * Same as [`reduce`](#reduce) but passing also the index to the iterating function. + * + * @example + * import { reduceWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, acc: string, cur: unknown) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceWithIndex("", f)([2, "a", "b", null]), "A1B2"); + * + * @category folding + * @since 2.0.0 + */ +exports.reduceWithIndex = RA.reduceWithIndex; +/** + * Same as [`reduce`](#reduce) but applied from the end to the start. + * + * *Note*: the iterating function in this case takes the accumulator as the last argument. + * + * @example + * import { reduceRight } from 'fp-ts/Array' + * + * assert.deepStrictEqual(reduceRight("", (cur: string, acc: string) => acc + cur)(["a", "b", "c"]), "cba"); + * + * @category folding + * @since 2.0.0 + */ +exports.reduceRight = RA.reduceRight; +/** + * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function. + * + * @example + * import { reduceRightWithIndex } from 'fp-ts/Array' + * + * const f = (index: number, cur: unknown, acc: string) => + * acc + (typeof cur === "string" ? cur.toUpperCase() + index : ""); + * assert.deepStrictEqual(reduceRightWithIndex("", f)([2, "a", "b", null]), "B2A1"); + * + * @category folding + * @since 2.0.0 + */ +exports.reduceRightWithIndex = RA.reduceRightWithIndex; +/** + * Given an iterating function that returns a `HKT` (higher kinded type), `traverse` + * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s + * the results using the provided `Applicative`. + * + * E.g. suppose you have an `Array` and you want to format each element with a function + * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse` + * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>` + * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results + * are `Error`s. + * + * @example + * import { traverse } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (x: unknown) => + * typeof x === "string" ? right(x.toUpperCase()) : left(new Error("not a string")); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", "b"]), right(["A", "B"])); + * assert.deepStrictEqual(traverse(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +exports.traverse = traverse; +/** + * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and, + * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`. + * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`. + * + * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an + * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an + * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`, + * it needs an `Applicative` for `Option`. + * + * @example + * import { sequence } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * assert.deepStrictEqual(sequence(Applicative)([right("a"), right("b")]), right(["a", "b"])); + * assert.deepStrictEqual( + * sequence(Applicative)([right("a"), left(new Error("not a string"))]), + * left(new Error("not a string")) + * ); + * + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (ta) { + return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) { + return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa); + }); + }; +}; +exports.sequence = sequence; +/** + * Same as [`traverse`](#traverse) but passing also the index to the iterating function. + * + * @example + * import { traverseWithIndex } from 'fp-ts/Array' + * import { Applicative, left, right } from "fp-ts/Either"; + * + * const f = (index:number, x:unknown) => + * typeof x === "string" ? right(x.toUpperCase() + index) : left(new Error("not a string")); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", "b"]), right(["A0", "B1"])); + * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", 5]), left(new Error("not a string"))); + * + * @category sequencing + * @since 2.6.3 + */ +var traverseWithIndex = function (F) { + return function (f) { + return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) { + return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a)); + }); + }; +}; +exports.traverseWithIndex = traverseWithIndex; +/** + * @category filtering + * @since 2.6.5 + */ +var wither = function (F) { + var _witherF = _wither(F); + return function (f) { return function (fa) { return _witherF(fa, f); }; }; +}; +exports.wither = wither; +/** + * @category filtering + * @since 2.6.5 + */ +var wilt = function (F) { + var _wiltF = _wilt(F); + return function (f) { return function (fa) { return _wiltF(fa, f); }; }; +}; +exports.wilt = wilt; +/** + * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome + * value and an input for the following iteration. + * `unfold` applies `f` to the initial value `b` and then recursively to the second + * element of the tuple contained in the returned `option` of the previous + * calculation until `f` returns `Option.none`. + * + * @example + * import { unfold } from 'fp-ts/Array' + * import { option } from 'fp-ts' + * + * const f = (n: number) => { + * if (n <= 0) return option.none; + * const returnValue = n * 2; + * const inputForNextRound = n - 1; + * return option.some([returnValue, inputForNextRound] as const); + * }; + * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]); + * + * @since 2.6.6 + */ +var unfold = function (b, f) { + var out = []; + var bb = b; + // eslint-disable-next-line no-constant-condition + while (true) { + var mt = f(bb); + if (_.isSome(mt)) { + var _a = mt.value, a = _a[0], b_1 = _a[1]; + out.push(a); + bb = b_1; + } + else { + break; + } + } + return out; +}; +exports.unfold = unfold; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Array'; +/** + * `getShow` makes a `Show` for an `Array<A>` from a `Show` for + * an `A`. + * + * @example + * import { getShow } from 'fp-ts/Array' + * + * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) }; + * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), "[(2), (1), 0, 1]"); + * + * @category instances + * @since 2.0.0 + */ +exports.getShow = RA.getShow; +/** + * Get a `Semigroup` based on the concatenation of `Array`s. + * See also [`getMonoid`](#getMonoid). + * + * @example + * import { getSemigroup } from 'fp-ts/Array' + * + * const S = getSemigroup<number>(); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]); + * + * @category instances + * @since 2.10.0 + */ +var getSemigroup = function () { return ({ + concat: function (first, second) { return first.concat(second); } +}); }; +exports.getSemigroup = getSemigroup; +/** + * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s. + * + * @example + * import { getMonoid } from 'fp-ts/Array' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.0.0 + */ +var getMonoid = function () { return ({ + concat: (0, exports.getSemigroup)().concat, + empty: [] +}); }; +exports.getMonoid = getMonoid; +/** + * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/Array' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.0.0 + */ +exports.getEq = RA.getEq; +/** + * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/Array' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * @category instances + * @since 2.0.0 + */ +exports.getOrd = RA.getOrd; +/** + * Get a `Semigroup` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * See also [`getUnionMonoid`](#getUnionMonoid). + * + * @example + * import { getUnionSemigroup } from 'fp-ts/Array'; + * import { Eq } from 'fp-ts/number'; + * + * const S = getUnionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]); + * + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (E) { + var unionE = union(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * Get a `Monoid` based on the union of the elements of `Array`s. + * Elements which equal according to the provided `Eq` are included + * only once in the result. + * + * @example + * import { getUnionMonoid } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const M = getUnionMonoid<number>(Eq); + * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]); + * assert.deepStrictEqual(M.empty,[]); + * + * @category instances + * @since 2.11.0 + */ +var getUnionMonoid = function (E) { return ({ + concat: (0, exports.getUnionSemigroup)(E).concat, + empty: [] +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * Get a `Semigroup` based on the intersection of the elements of `Array`s. + * Only elements present in the two arrays which are equal according to the + * provided `Eq` are included in the result. + * + * @example + * import { getIntersectionSemigroup } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getIntersectionSemigroup<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]); + * + * @category instances + * @since 2.11.0 + */ +var getIntersectionSemigroup = function (E) { + var intersectionE = intersection(E); + return { + concat: function (first, second) { return intersectionE(second)(first); } + }; +}; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * Get a `Magma` for `Array` where the `concat` function is the differnce between + * the first and the second array, i.e. the result contains all the elements of the + * first array for which their is no equal element in the second array according + * to the `Eq` provided. + * + * + * @example + * import { getDifferenceMagma } from 'fp-ts/Array' + * import { Eq } from 'fp-ts/number'; + * + * const S = getDifferenceMagma<number>(Eq); + * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]); + * + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function (E) { + var differenceE = difference(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; +}; +exports.getDifferenceMagma = getDifferenceMagma; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Given an input an `Array` of functions, `flap` returns an `Array` containing + * the results of applying each function to the given input. + * + * @example + * import { flap } from 'fp-ts/Array' + * + * const funs = [ + * (n: number) => `Double: ${n * 2}`, + * (n: number) => `Triple: ${n * 3}`, + * (n: number) => `Square: ${n * n}`, + * ]; + * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']); + * + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FunctorWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as A from 'fp-ts/Array' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * A.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.0.0 + */ +exports.chainFirst = +/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain); +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Unfoldable = { + URI: exports.URI, + unfold: exports.unfold +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.Zero = { + URI: exports.URI, + zero: exports.zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +exports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed); +/** + * @category instances + * @since 2.7.0 + */ +exports.Alternative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + alt: _alt, + zero: exports.zero +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Extend = { + URI: exports.URI, + map: _map, + extend: _extend +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FilterableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FoldableWithIndex = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.TraversableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverse: _traverse, + sequence: exports.sequence, + traverseWithIndex: _traverseWithIndex +}; +var _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable); +var _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable); +/** + * @category instances + * @since 2.7.0 + */ +exports.Witherable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + wither: _wither, + wilt: _wilt +}; +/** + * @category sequencing + * @since 2.11.0 + */ +exports.chainRecDepthFirst = RA.chainRecDepthFirst; +/** + * @category instances + * @since 2.11.0 + */ +exports.ChainRecDepthFirst = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: _chainRecDepthFirst +}; +/** + * @category sequencing + * @since 2.11.0 + */ +exports.chainRecBreadthFirst = RA.chainRecBreadthFirst; +/** + * @category instances + * @since 2.11.0 + */ +exports.ChainRecBreadthFirst = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: _chainRecBreadthFirst +}; +/** + * Filter values inside a context. + * + * @since 2.11.0 + */ +exports.filterE = (0, Witherable_1.filterE)(exports.Witherable); +/** + * @category instances + * @since 2.11.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// unsafe +// ------------------------------------------------------------------------------------- +/** + * @category unsafe + * @since 2.0.0 + */ +exports.unsafeInsertAt = NEA.unsafeInsertAt; +/** + * @category unsafe + * @since 2.0.0 + */ +var unsafeUpdateAt = function (i, a, as) { + return (0, exports.isNonEmpty)(as) ? NEA.unsafeUpdateAt(i, a, as) : []; +}; +exports.unsafeUpdateAt = unsafeUpdateAt; +/** + * @category unsafe + * @since 2.0.0 + */ +var unsafeDeleteAt = function (i, as) { + var xs = as.slice(); + xs.splice(i, 1); + return xs; +}; +exports.unsafeDeleteAt = unsafeDeleteAt; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * `every` tells if the provided predicate holds true for every element in the `Array`. + * + * @example + * import { every } from 'fp-ts/Array' + * + * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false); + * + * @since 2.9.0 + */ +exports.every = RA.every; +/** + * `some` tells if the provided predicate holds true at least for one element in the `Array`. + * + * @example + * import { some } from 'fp-ts/Array' + * + * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true); + * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false); + * + * @since 2.9.0 + */ +var some = function (predicate) { + return function (as) { + return as.some(predicate); + }; +}; +exports.some = some; +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +exports.exists = exports.some; +/** + * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/Array' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +exports.intercalate = RA.intercalate; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = (0, Chain_1.bind)(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `NonEmptyArray` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.range = NEA.range; +/** + * Use a new `[]` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.empty = []; +/** + * Use `prepend` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.cons = NEA.cons; +/** + * Use `append` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.snoc = NEA.snoc; +/** + * Use `prependAll` instead + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +exports.prependToAll = exports.prependAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array` + * (where `A` is from `import A from 'fp-ts/Array'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.array = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + alt: _alt, + zero: exports.zero, + unfold: exports.unfold, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + extend: _extend, + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/lib/Bifunctor.d.ts b/node_modules/fp-ts/lib/Bifunctor.d.ts new file mode 100644 index 0000000..286456c --- /dev/null +++ b/node_modules/fp-ts/lib/Bifunctor.d.ts @@ -0,0 +1,60 @@ +/** + * @since 2.0.0 + */ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor<F> { + readonly URI: F + readonly bimap: <E, A, G, B>(fea: HKT2<F, E, A>, f: (e: E) => G, g: (a: A) => B) => HKT2<F, G, B> + readonly mapLeft: <E, A, G>(fea: HKT2<F, E, A>, f: (e: E) => G) => HKT2<F, G, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor2<F extends URIS2> { + readonly URI: F + readonly bimap: <E, A, G, B>(fea: Kind2<F, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind2<F, G, B> + readonly mapLeft: <E, A, G>(fea: Kind2<F, E, A>, f: (e: E) => G) => Kind2<F, G, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly bimap: <A, G, B>(fea: Kind2<F, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind2<F, G, B> + readonly mapLeft: <A, M>(fea: Kind2<F, E, A>, f: (e: E) => M) => Kind2<F, M, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor3<F extends URIS3> { + readonly URI: F + readonly bimap: <R, E, A, G, B>(fea: Kind3<F, R, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind3<F, R, G, B> + readonly mapLeft: <R, E, A, G>(fea: Kind3<F, R, E, A>, f: (e: E) => G) => Kind3<F, R, G, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Bifunctor3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly bimap: <R, A, G, B>(fea: Kind3<F, R, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind3<F, R, G, B> + readonly mapLeft: <R, A, G>(fea: Kind3<F, R, E, A>, f: (e: E) => G) => Kind3<F, R, G, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Bifunctor4<F extends URIS4> { + readonly URI: F + readonly bimap: <S, R, E, A, G, B>(fea: Kind4<F, S, R, E, A>, f: (e: E) => G, g: (a: A) => B) => Kind4<F, S, R, G, B> + readonly mapLeft: <S, R, E, A, G>(fea: Kind4<F, S, R, E, A>, f: (e: E) => G) => Kind4<F, S, R, G, A> +} diff --git a/node_modules/fp-ts/lib/Bifunctor.js b/node_modules/fp-ts/lib/Bifunctor.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Bifunctor.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/BooleanAlgebra.d.ts b/node_modules/fp-ts/lib/BooleanAlgebra.d.ts new file mode 100644 index 0000000..ba9757e --- /dev/null +++ b/node_modules/fp-ts/lib/BooleanAlgebra.d.ts @@ -0,0 +1,43 @@ +import { HeytingAlgebra } from './HeytingAlgebra' +/** + * @category model + * @since 2.0.0 + */ +export interface BooleanAlgebra<A> extends HeytingAlgebra<A> {} +/** + * Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet. + * + * @since 2.10.0 + */ +export declare const reverse: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A> +/** + * @category instances + * @since 2.0.0 + */ +export declare const booleanAlgebraVoid: BooleanAlgebra<void> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualBooleanAlgebra: <A>(B: BooleanAlgebra<A>) => BooleanAlgebra<A> +/** + * Use [`BooleanAlgebra`](./boolean.ts.html#booleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const booleanAlgebraBoolean: BooleanAlgebra<boolean> +/** + * Use [`getBooleanAlgebra`](./function.ts.html#getbooleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionBooleanAlgebra: <B>( + B: BooleanAlgebra<B> +) => <A = never>() => BooleanAlgebra<(a: A) => B> diff --git a/node_modules/fp-ts/lib/BooleanAlgebra.js b/node_modules/fp-ts/lib/BooleanAlgebra.js new file mode 100644 index 0000000..dbf5ee7 --- /dev/null +++ b/node_modules/fp-ts/lib/BooleanAlgebra.js @@ -0,0 +1,82 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getFunctionBooleanAlgebra = exports.booleanAlgebraBoolean = exports.getDualBooleanAlgebra = exports.booleanAlgebraVoid = exports.reverse = void 0; +/** + * Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true + * (equivalently, double-negation is true). + * + * Instances should satisfy the following laws in addition to the `HeytingAlgebra` laws: + * + * - Excluded middle: `a ∨ ¬a <-> 1` + * + * Boolean algebras generalize classical logic: one is equivalent to "true" and zero is equivalent to "false". + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet. + * + * @since 2.10.0 + */ +var reverse = function (B) { return ({ + meet: function (x, y) { return B.join(x, y); }, + join: function (x, y) { return B.meet(x, y); }, + zero: B.one, + one: B.zero, + implies: function (x, y) { return B.join(B.not(x), y); }, + not: B.not +}); }; +exports.reverse = reverse; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.0.0 + */ +exports.booleanAlgebraVoid = { + meet: function () { return undefined; }, + join: function () { return undefined; }, + zero: undefined, + one: undefined, + implies: function () { return undefined; }, + not: function () { return undefined; } +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getDualBooleanAlgebra = exports.reverse; +/** + * Use [`BooleanAlgebra`](./boolean.ts.html#booleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.booleanAlgebraBoolean = { + meet: function (x, y) { return x && y; }, + join: function (x, y) { return x || y; }, + zero: false, + one: true, + implies: function (x, y) { return !x || y; }, + not: function (x) { return !x; } +}; +/** + * Use [`getBooleanAlgebra`](./function.ts.html#getbooleanalgebra) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getFunctionBooleanAlgebra = function_1.getBooleanAlgebra; diff --git a/node_modules/fp-ts/lib/Bounded.d.ts b/node_modules/fp-ts/lib/Bounded.d.ts new file mode 100644 index 0000000..b325064 --- /dev/null +++ b/node_modules/fp-ts/lib/Bounded.d.ts @@ -0,0 +1,41 @@ +/** + * The `Bounded` type class represents totally ordered types that have an upper and lower boundary. + * + * Instances should satisfy the following law in addition to the `Ord` laws: + * + * - Bounded: `bottom <= a <= top` + * + * @since 2.0.0 + */ +import * as O from './Ord' +import Ord = O.Ord +/** + * @category model + * @since 2.0.0 + */ +export interface Bounded<A> extends Ord<A> { + readonly top: A + readonly bottom: A +} +/** + * Clamp a value between bottom and top values. + * + * @category utils + * @since 2.12.0 + */ +export declare const clamp: <A>(B: Bounded<A>) => (a: A) => A +/** + * Reverses the Ord of a bound and swaps top and bottom values. + * + * @category utils + * @since 2.12.0 + */ +export declare const reverse: <A>(B: Bounded<A>) => Bounded<A> +/** + * Use [`Bounded`](./number.ts.html#bounded) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const boundedNumber: Bounded<number> diff --git a/node_modules/fp-ts/lib/Bounded.js b/node_modules/fp-ts/lib/Bounded.js new file mode 100644 index 0000000..e102edc --- /dev/null +++ b/node_modules/fp-ts/lib/Bounded.js @@ -0,0 +1,79 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.boundedNumber = exports.reverse = exports.clamp = void 0; +/** + * The `Bounded` type class represents totally ordered types that have an upper and lower boundary. + * + * Instances should satisfy the following law in addition to the `Ord` laws: + * + * - Bounded: `bottom <= a <= top` + * + * @since 2.0.0 + */ +var O = __importStar(require("./Ord")); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Clamp a value between bottom and top values. + * + * @category utils + * @since 2.12.0 + */ +var clamp = function (B) { return O.clamp(B)(B.bottom, B.top); }; +exports.clamp = clamp; +/** + * Reverses the Ord of a bound and swaps top and bottom values. + * + * @category utils + * @since 2.12.0 + */ +var reverse = function (B) { + var R = O.reverse(B); + return { + equals: R.equals, + compare: R.compare, + top: B.bottom, + bottom: B.top + }; +}; +exports.reverse = reverse; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Bounded`](./number.ts.html#bounded) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.boundedNumber = { + equals: O.ordNumber.equals, + compare: O.ordNumber.compare, + top: Infinity, + bottom: -Infinity +}; diff --git a/node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts b/node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts new file mode 100644 index 0000000..471b1df --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts @@ -0,0 +1,20 @@ +/** + * A `BoundedDistributiveLattice` is a lattice that is both bounded and distributive + * + * @since 2.0.0 + */ +import { BoundedLattice } from './BoundedLattice' +import { DistributiveLattice } from './DistributiveLattice' +import { Ord } from './Ord' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedDistributiveLattice<A> extends BoundedLattice<A>, DistributiveLattice<A> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function getMinMaxBoundedDistributiveLattice<A>( + O: Ord<A> +): (min: A, max: A) => BoundedDistributiveLattice<A> diff --git a/node_modules/fp-ts/lib/BoundedDistributiveLattice.js b/node_modules/fp-ts/lib/BoundedDistributiveLattice.js new file mode 100644 index 0000000..1374232 --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedDistributiveLattice.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMinMaxBoundedDistributiveLattice = getMinMaxBoundedDistributiveLattice; +var DistributiveLattice_1 = require("./DistributiveLattice"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +function getMinMaxBoundedDistributiveLattice(O) { + var L = (0, DistributiveLattice_1.getMinMaxDistributiveLattice)(O); + return function (min, max) { return ({ + join: L.join, + meet: L.meet, + zero: min, + one: max + }); }; +} diff --git a/node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts b/node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts new file mode 100644 index 0000000..133304a --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `BoundedJoinSemilattice` must satisfy the following laws in addition to `JoinSemilattice` laws: + * + * - `a ∨ 0 <-> a` + * + * @since 2.0.0 + */ +import { JoinSemilattice } from './JoinSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedJoinSemilattice<A> extends JoinSemilattice<A> { + readonly zero: A +} diff --git a/node_modules/fp-ts/lib/BoundedJoinSemilattice.js b/node_modules/fp-ts/lib/BoundedJoinSemilattice.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedJoinSemilattice.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/BoundedLattice.d.ts b/node_modules/fp-ts/lib/BoundedLattice.d.ts new file mode 100644 index 0000000..6742733 --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedLattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `BoundedLattice` must satisfy the following in addition to `BoundedMeetSemilattice` and `BoundedJoinSemilattice` laws: + * + * - Absorption law for meet: `a ∧ (a ∨ b) <-> a` + * - Absorption law for join: `a ∨ (a ∧ b) <-> a` + * + * @since 2.0.0 + */ +import { BoundedJoinSemilattice } from './BoundedJoinSemilattice' +import { BoundedMeetSemilattice } from './BoundedMeetSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedLattice<A> extends BoundedJoinSemilattice<A>, BoundedMeetSemilattice<A> {} diff --git a/node_modules/fp-ts/lib/BoundedLattice.js b/node_modules/fp-ts/lib/BoundedLattice.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedLattice.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts b/node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts new file mode 100644 index 0000000..38f6869 --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `BoundedMeetSemilattice` must satisfy the following laws in addition to `MeetSemilattice` laws: + * + * - `a ∧ 1 <-> a` + * + * @since 2.0.0 + */ +import { MeetSemilattice } from './MeetSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface BoundedMeetSemilattice<A> extends MeetSemilattice<A> { + readonly one: A +} diff --git a/node_modules/fp-ts/lib/BoundedMeetSemilattice.js b/node_modules/fp-ts/lib/BoundedMeetSemilattice.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/BoundedMeetSemilattice.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Category.d.ts b/node_modules/fp-ts/lib/Category.d.ts new file mode 100644 index 0000000..9dd204f --- /dev/null +++ b/node_modules/fp-ts/lib/Category.d.ts @@ -0,0 +1,33 @@ +/** + * @since 2.0.0 + */ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { Semigroupoid, Semigroupoid2, Semigroupoid3, Semigroupoid4 } from './Semigroupoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Category<F> extends Semigroupoid<F> { + readonly id: <A>() => HKT2<F, A, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Category2<F extends URIS2> extends Semigroupoid2<F> { + readonly id: <A>() => Kind2<F, A, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Category3<F extends URIS3> extends Semigroupoid3<F> { + readonly id: <R, A>() => Kind3<F, R, A, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Category4<F extends URIS4> extends Semigroupoid4<F> { + readonly id: <S, R, A>() => Kind4<F, S, R, A, A> +} diff --git a/node_modules/fp-ts/lib/Category.js b/node_modules/fp-ts/lib/Category.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Category.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Chain.d.ts b/node_modules/fp-ts/lib/Chain.d.ts new file mode 100644 index 0000000..bfd98ba --- /dev/null +++ b/node_modules/fp-ts/lib/Chain.d.ts @@ -0,0 +1,172 @@ +/** + * The `Chain` type class extends the `Apply` type class with a `chain` operation which composes computations in + * sequence, using the return value of one computation to determine the next computation. + * + * Instances must satisfy the following law in addition to the `Apply` laws: + * + * 1. Associativity: `F.chain(F.chain(fa, afb), bfc) <-> F.chain(fa, a => F.chain(afb(a), bfc))` + * + * Note. `Apply`'s `ap` can be derived: `(fab, fa) => F.chain(fab, f => F.map(fa, f))` + * + * @since 2.0.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Chain<F> extends Apply<F> { + readonly chain: <A, B>(fa: HKT<F, A>, f: (a: A) => HKT<F, B>) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain1<F extends URIS> extends Apply1<F> { + readonly chain: <A, B>(fa: Kind<F, A>, f: (a: A) => Kind<F, B>) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain2<F extends URIS2> extends Apply2<F> { + readonly chain: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => Kind2<F, E, B>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain2C<F extends URIS2, E> extends Apply2C<F, E> { + readonly chain: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => Kind2<F, E, B>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain3<F extends URIS3> extends Apply3<F> { + readonly chain: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Kind3<F, R, E, B>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Chain3C<F extends URIS3, E> extends Apply3C<F, E> { + readonly chain: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Kind3<F, R, E, B>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Chain4<F extends URIS4> extends Apply4<F> { + readonly chain: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => Kind4<F, S, R, E, B>) => Kind4<F, S, R, E, B> +} +/** + * @since 2.10.0 + */ +export declare function chainFirst<M extends URIS4>( + M: Chain4<M> +): <A, S, R, E, _>(f: (a: A) => Kind4<M, S, R, E, _>) => (first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirst<M extends URIS3>( + M: Chain3<M> +): <A, R, E, _>(f: (a: A) => Kind3<M, R, E, _>) => (first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirst<M extends URIS3, E>( + M: Chain3C<M, E> +): <A, R, _>(f: (a: A) => Kind3<M, R, E, _>) => (first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirst<M extends URIS2>( + M: Chain2<M> +): <A, E, _>(f: (a: A) => Kind2<M, E, _>) => (first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirst<M extends URIS2, E>( + M: Chain2C<M, E> +): <A, _>(f: (a: A) => Kind2<M, E, _>) => (first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirst<M extends URIS>( + M: Chain1<M> +): <A, _>(f: (a: A) => Kind<M, _>) => (first: Kind<M, A>) => Kind<M, A> +export declare function chainFirst<M>(M: Chain<M>): <A, _>(f: (a: A) => HKT<M, _>) => (first: HKT<M, A>) => HKT<M, A> +/** + * @since 2.10.0 + */ +export declare function bind<M extends URIS4>( + M: Chain4<M> +): <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind4<M, S, R, E, B> +) => (ma: Kind4<M, S, R, E, A>) => Kind4< + M, + S, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS3>( + M: Chain3<M> +): <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, A>) => Kind3< + M, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS3, E>( + M: Chain3C<M, E> +): <N extends string, A, R, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, A>) => Kind3< + M, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS2>( + M: Chain2<M> +): <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, A>) => Kind2< + M, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS2, E>( + M: Chain2C<M, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, A>) => Kind2< + M, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M extends URIS>( + M: Chain1<M> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind<M, B> +) => (ma: Kind<M, A>) => Kind< + M, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export declare function bind<M>(M: Chain<M>): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => HKT<M, B> +) => (ma: HKT<M, A>) => HKT< + M, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> diff --git a/node_modules/fp-ts/lib/Chain.js b/node_modules/fp-ts/lib/Chain.js new file mode 100644 index 0000000..83d0306 --- /dev/null +++ b/node_modules/fp-ts/lib/Chain.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.chainFirst = chainFirst; +exports.tap = tap; +exports.bind = bind; +function chainFirst(M) { + var tapM = tap(M); + return function (f) { return function (first) { return tapM(first, f); }; }; +} +/** @internal */ +function tap(M) { + return function (first, f) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); }; +} +function bind(M) { + return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) { + var _a; + return Object.assign({}, a, (_a = {}, _a[name] = b, _a)); + }); }); }; }; +} diff --git a/node_modules/fp-ts/lib/ChainRec.d.ts b/node_modules/fp-ts/lib/ChainRec.d.ts new file mode 100644 index 0000000..156473e --- /dev/null +++ b/node_modules/fp-ts/lib/ChainRec.d.ts @@ -0,0 +1,59 @@ +/** + * @since 2.0.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Either } from './Either' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec<F> extends Chain<F> { + readonly chainRec: <A, B>(a: A, f: (a: A) => HKT<F, Either<A, B>>) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec1<F extends URIS> extends Chain1<F> { + readonly chainRec: <A, B>(a: A, f: (a: A) => Kind<F, Either<A, B>>) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec2<F extends URIS2> extends Chain2<F> { + readonly chainRec: <E, A, B>(a: A, f: (a: A) => Kind2<F, E, Either<A, B>>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec2C<F extends URIS2, E> extends Chain2C<F, E> { + readonly chainRec: <A, B>(a: A, f: (a: A) => Kind2<F, E, Either<A, B>>) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface ChainRec3<F extends URIS3> extends Chain3<F> { + readonly chainRec: <R, E, A, B>(a: A, f: (a: A) => Kind3<F, R, E, Either<A, B>>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.10.0 + */ +export interface ChainRec3C<F extends URIS3, E> extends Chain3C<F, E> { + readonly chainRec: <R, A, B>(a: A, f: (a: A) => Kind3<F, R, E, Either<A, B>>) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.10.0 + */ +export interface ChainRec4<F extends URIS4> extends Chain4<F> { + readonly chainRec: <S, R, E, A, B>(a: A, f: (a: A) => Kind4<F, S, R, E, Either<A, B>>) => Kind4<F, S, R, E, B> +} +/** + * @since 2.0.0 + */ +export declare const tailRec: <A, B>(startWith: A, f: (a: A) => Either<A, B>) => B diff --git a/node_modules/fp-ts/lib/ChainRec.js b/node_modules/fp-ts/lib/ChainRec.js new file mode 100644 index 0000000..d9a21e8 --- /dev/null +++ b/node_modules/fp-ts/lib/ChainRec.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tailRec = void 0; +/** + * @since 2.0.0 + */ +var tailRec = function (startWith, f) { + var ab = f(startWith); + while (ab._tag === 'Left') { + ab = f(ab.left); + } + return ab.right; +}; +exports.tailRec = tailRec; diff --git a/node_modules/fp-ts/lib/Choice.d.ts b/node_modules/fp-ts/lib/Choice.d.ts new file mode 100644 index 0000000..2b5d888 --- /dev/null +++ b/node_modules/fp-ts/lib/Choice.d.ts @@ -0,0 +1,174 @@ +/** + * The `Choice` class extends `Profunctor` with combinators for working with + * sum types. + * + * `left` and `right` lift values in a `Profunctor` to act on the `Left` and + * `Right` components of a sum, respectively. + * + * Looking at `Choice` through the intuition of inputs and outputs + * yields the following type signature: + * + * ```purescript + * left :: forall input output a. p input output -> p (Either input a) (Either output a) + * right :: forall input output a. p input output -> p (Either a input) (Either a output) + * ``` + * + * If we specialize the profunctor `p` to the `function` arrow, we get the following type + * signatures: + * + * ```purescript + * left :: forall input output a. (input -> output) -> (Either input a) -> (Either output a) + * right :: forall input output a. (input -> output) -> (Either a input) -> (Either a output) + * ``` + * + * When the `profunctor` is `Function` application, `left` allows you to map a function over the + * left side of an `Either`, and `right` maps it over the right side (same as `map` would do). + * + * Adapted from https://github.com/purescript/purescript-profunctor/blob/master/src/Data/Profunctor/Choice.purs + * + * @since 2.0.0 + */ +import { Category, Category2, Category3, Category4 } from './Category' +import { Either } from './Either' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { Profunctor, Profunctor2, Profunctor3, Profunctor4 } from './Profunctor' +/** + * @category model + * @since 2.0.0 + */ +export interface Choice<F> extends Profunctor<F> { + readonly left: <A, B, C>(pab: HKT2<F, A, B>) => HKT2<F, Either<A, C>, Either<B, C>> + readonly right: <A, B, C>(pbc: HKT2<F, B, C>) => HKT2<F, Either<A, B>, Either<A, C>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Choice2<F extends URIS2> extends Profunctor2<F> { + readonly left: <A, B, C>(pab: Kind2<F, A, B>) => Kind2<F, Either<A, C>, Either<B, C>> + readonly right: <A, B, C>(pbc: Kind2<F, B, C>) => Kind2<F, Either<A, B>, Either<A, C>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Choice3<F extends URIS3> extends Profunctor3<F> { + readonly left: <R, A, B, C>(pab: Kind3<F, R, A, B>) => Kind3<F, R, Either<A, C>, Either<B, C>> + readonly right: <R, A, B, C>(pbc: Kind3<F, R, B, C>) => Kind3<F, R, Either<A, B>, Either<A, C>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Choice4<F extends URIS4> extends Profunctor4<F> { + readonly left: <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, Either<A, C>, Either<B, C>> + readonly right: <S, R, A, B, C>(pbc: Kind4<F, S, R, B, C>) => Kind4<F, S, R, Either<A, B>, Either<A, C>> +} +/** + * Compose a value acting on a sum from two values, each acting on one of + * the components of the sum. + * + * Specializing `split` to function application would look like this: + * + * ```purescript + * split :: forall a b c d. (a -> b) -> (c -> d) -> (Either a c) -> (Either b d) + * ``` + * + * We take two functions, `f` and `g`, and we transform them into a single function which + * takes an `Either`and maps `f` over the left side and `g` over the right side. Just like + * `bimap` would do for the `Bifunctor` instance of `Either`. + * + * @since 2.10.0 + */ +export declare function split<P extends URIS4>( + P: Choice4<P>, + C: Category4<P> +): <S, R, A, B, C, D>( + pab: Kind4<P, S, R, A, B>, + pcd: Kind4<P, S, R, C, D> +) => Kind4<P, S, R, Either<A, C>, Either<B, D>> +export declare function split<P extends URIS3>( + P: Choice3<P>, + C: Category3<P> +): <R, A, B, C, D>(pab: Kind3<P, R, A, B>, pcd: Kind3<P, R, C, D>) => Kind3<P, R, Either<A, C>, Either<B, D>> +export declare function split<P extends URIS2>( + P: Choice2<P>, + C: Category2<P> +): <A, B, C, D>(pab: Kind2<P, A, B>, pcd: Kind2<P, C, D>) => Kind2<P, Either<A, C>, Either<B, D>> +export declare function split<P>( + P: Choice<P>, + C: Category<P> +): <A, B, C, D>(pab: HKT2<P, A, B>, pcd: HKT2<P, C, D>) => HKT2<P, Either<A, C>, Either<B, D>> +/** + * Compose a value which eliminates a sum from two values, each eliminating + * one side of the sum. + * + * This combinator is useful when assembling values from smaller components, + * because it provides a way to support two different types of input. + * + * Specializing `fanIn` to function application would look like this: + * + * ```purescript + * fanIn :: forall a b c d. (a -> c) -> (b -> c) -> Either a b -> c + * ``` + * + * We take two functions, `f` and `g`, which both return the same type `c` and we transform them into a + * single function which takes an `Either` value with the parameter type of `f` on the left side and + * the parameter type of `g` on the right side. The function then runs either `f` or `g`, depending on + * whether the `Either` value is a `Left` or a `Right`. + * This allows us to bundle two different computations which both have the same result type into one + * function which will run the appropriate computation based on the parameter supplied in the `Either` value. + * + * @since 2.10.0 + */ +export declare function fanIn<P extends URIS4>( + P: Choice4<P>, + C: Category4<P> +): <S, R, A, B, C>(pac: Kind4<P, S, R, A, C>, pbc: Kind4<P, S, R, B, C>) => Kind4<P, S, R, Either<A, B>, C> +export declare function fanIn<P extends URIS3>( + P: Choice3<P>, + C: Category3<P> +): <R, A, B, C>(pac: Kind3<P, R, A, C>, pbc: Kind3<P, R, B, C>) => Kind3<P, R, Either<A, B>, C> +export declare function fanIn<P extends URIS2>( + P: Choice2<P>, + C: Category2<P> +): <A, B, C>(pac: Kind2<P, A, C>, pbc: Kind2<P, B, C>) => Kind2<P, Either<A, B>, C> +export declare function fanIn<P>( + P: Choice<P>, + C: Category<P> +): <A, B, C>(pac: HKT2<P, A, C>, pbc: HKT2<P, B, C>) => HKT2<P, Either<A, B>, C> +/** + * Use [`split`](#split) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function splitChoice<F extends URIS3>( + F: Category3<F> & Choice3<F> +): <R, A, B, C, D>(pab: Kind3<F, R, A, B>, pcd: Kind3<F, R, C, D>) => Kind3<F, R, Either<A, C>, Either<B, D>> +/** @deprecated */ +export declare function splitChoice<F extends URIS2>( + F: Category2<F> & Choice2<F> +): <A, B, C, D>(pab: Kind2<F, A, B>, pcd: Kind2<F, C, D>) => Kind2<F, Either<A, C>, Either<B, D>> +/** @deprecated */ +export declare function splitChoice<F>( + F: Category<F> & Choice<F> +): <A, B, C, D>(pab: HKT2<F, A, B>, pcd: HKT2<F, C, D>) => HKT2<F, Either<A, C>, Either<B, D>> +/** + * Use [`fanIn`](#fanIn) instead. + * + * @since 2.0.0 + * @deprecated + */ +export declare function fanin<F extends URIS3>( + F: Category3<F> & Choice3<F> +): <R, A, B, C>(pac: Kind3<F, R, A, C>, pbc: Kind3<F, R, B, C>) => Kind3<F, R, Either<A, B>, C> +/** @deprecated */ +export declare function fanin<F extends URIS2>( + F: Category2<F> & Choice2<F> +): <A, B, C>(pac: Kind2<F, A, C>, pbc: Kind2<F, B, C>) => Kind2<F, Either<A, B>, C> +/** @deprecated */ +export declare function fanin<F>( + F: Category<F> & Choice<F> +): <A, B, C>(pac: HKT2<F, A, C>, pbc: HKT2<F, B, C>) => HKT2<F, Either<A, B>, C> diff --git a/node_modules/fp-ts/lib/Choice.js b/node_modules/fp-ts/lib/Choice.js new file mode 100644 index 0000000..f364403 --- /dev/null +++ b/node_modules/fp-ts/lib/Choice.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.split = split; +exports.fanIn = fanIn; +exports.splitChoice = splitChoice; +exports.fanin = fanin; +var function_1 = require("./function"); +function split(P, C) { + return function (pab, pcd) { return C.compose(P.right(pcd), P.left(pab)); }; +} +function fanIn(P, C) { + var splitPC = split(P, C); + return function (pac, pbc) { + return C.compose(P.promap(C.id(), function (cc) { return (cc._tag === 'Left' ? cc.left : cc.right); }, function_1.identity), splitPC(pac, pbc)); + }; +} +function splitChoice(F) { + return split(F, F); +} +function fanin(F) { + return fanIn(F, F); +} diff --git a/node_modules/fp-ts/lib/Comonad.d.ts b/node_modules/fp-ts/lib/Comonad.d.ts new file mode 100644 index 0000000..0bd1218 --- /dev/null +++ b/node_modules/fp-ts/lib/Comonad.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.0.0 + */ +import { Extend, Extend1, Extend2, Extend2C, Extend3, Extend3C, Extend4 } from './Extend' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad<W> extends Extend<W> { + readonly extract: <A>(wa: HKT<W, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad1<W extends URIS> extends Extend1<W> { + readonly extract: <A>(wa: Kind<W, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad2<W extends URIS2> extends Extend2<W> { + readonly extract: <E, A>(wa: Kind2<W, E, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad2C<W extends URIS2, E> extends Extend2C<W, E> { + readonly extract: <A>(wa: Kind2<W, E, A>) => A +} +/** + * @category model + * @since 2.0.0 + */ +export interface Comonad3<W extends URIS3> extends Extend3<W> { + readonly extract: <R, E, A>(wa: Kind3<W, R, E, A>) => A +} +/** + * @category model + * @since 2.10.0 + */ +export interface Comonad3C<W extends URIS3, E> extends Extend3C<W, E> { + readonly extract: <R, A>(wa: Kind3<W, R, E, A>) => A +} +/** + * @category model + * @since 2.10.0 + */ +export interface Comonad4<W extends URIS4> extends Extend4<W> { + readonly extract: <S, R, E, A>(wa: Kind4<W, S, R, E, A>) => A +} diff --git a/node_modules/fp-ts/lib/Comonad.js b/node_modules/fp-ts/lib/Comonad.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Comonad.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Compactable.d.ts b/node_modules/fp-ts/lib/Compactable.d.ts new file mode 100644 index 0000000..04284cf --- /dev/null +++ b/node_modules/fp-ts/lib/Compactable.d.ts @@ -0,0 +1,320 @@ +/** + * `Compactable` represents data structures which can be _compacted_/_filtered_. This is a generalization of + * `catOptions` as a new function `compact`. `compact` has relations with `Functor`, `Applicative`, + * `Monad`, `Alternative`, and `Traversable` in that we can use these classes to provide the ability to + * operate on a data type by eliminating intermediate `None`s. This is useful for representing the filtering out of + * values, or failure. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Compactable.purs + * + * @since 2.0.0 + */ +import { Either } from './Either' +import { + Functor, + Functor1, + Functor2, + Functor2C, + Functor3C, + FunctorComposition, + FunctorComposition2C1, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition22C, + FunctorComposition23, + FunctorComposition23C +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import * as S from './Separated' +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable<F> { + readonly URI: F + /** + * Compacts a data structure unwrapping inner Option + */ + readonly compact: <A>(fa: HKT<F, Option<A>>) => HKT<F, A> + /** + * Separates a data structure moving inner Left to the left side and inner Right to the right side of Separated + */ + readonly separate: <A, B>(fa: HKT<F, Either<A, B>>) => S.Separated<HKT<F, A>, HKT<F, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable1<F extends URIS> { + readonly URI: F + readonly compact: <A>(fa: Kind<F, Option<A>>) => Kind<F, A> + readonly separate: <A, B>(fa: Kind<F, Either<A, B>>) => S.Separated<Kind<F, A>, Kind<F, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable2<F extends URIS2> { + readonly URI: F + readonly compact: <E, A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <E, A, B>(fa: Kind2<F, E, Either<A, B>>) => S.Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly compact: <A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <A, B>(fa: Kind2<F, E, Either<A, B>>) => S.Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable3<F extends URIS3> { + readonly URI: F + readonly compact: <R, E, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, E, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => S.Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Compactable3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly compact: <R, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => S.Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Compactable4<F extends URIS4> { + readonly URI: F + readonly compact: <S, R, E, A>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, A> + readonly separate: <S, R, E, A, B>( + fa: Kind4<F, S, R, E, Either<A, B>> + ) => S.Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> +} +/** + * `compact` composition. + * + * @since 2.10.0 + */ +export declare function compact<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Compactable2C<G, E> +): <FE, A>(fa: Kind2<F, FE, Kind2<G, E, Option<A>>>) => Kind2<F, FE, Kind2<G, E, A>> +export declare function compact<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Compactable2C<G, E> +): <A>(fa: Kind<F, Kind2<G, E, Option<A>>>) => Kind<F, Kind2<G, E, A>> +export declare function compact<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Compactable1<G> +): <A>(fa: Kind<F, Kind<G, Option<A>>>) => Kind<F, Kind<G, A>> +export declare function compact<F, G>( + F: Functor<F>, + G: Compactable<G> +): <A>(fa: HKT<F, HKT<G, Option<A>>>) => HKT<F, HKT<G, A>> +/** + * `separate` composition. + * + * @since 2.10.0 + */ +export declare function separate<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + C: Compactable2C<G, E>, + G: Functor2<G> +): <FE, A, B>( + fge: Kind2<F, FE, Kind2<G, E, Either<A, B>>> +) => S.Separated<Kind2<F, FE, Kind2<G, E, A>>, Kind2<F, FE, Kind2<G, E, B>>> +export declare function separate<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + C: Compactable2C<G, E>, + G: Functor2<G> +): <A, B>(fge: Kind<F, Kind2<G, E, Either<A, B>>>) => S.Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> +export declare function separate<F extends URIS, G extends URIS>( + F: Functor1<F>, + C: Compactable1<G>, + G: Functor1<G> +): <A, B>(fge: Kind<F, Kind<G, Either<A, B>>>) => S.Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, B>>> +export declare function separate<F, G>( + F: Functor<F>, + C: Compactable<G>, + G: Functor<G> +): <A, B>(fge: HKT<F, HKT<G, Either<A, B>>>) => S.Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, B>>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition<F, G> extends FunctorComposition<F, G> { + readonly compact: <A>(fga: HKT<F, HKT<G, Option<A>>>) => HKT<F, HKT<G, A>> + readonly separate: <A, B>(fge: HKT<F, HKT<G, Either<A, B>>>) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition11<F extends URIS, G extends URIS> extends FunctorComposition11<F, G> { + readonly compact: <A>(fga: Kind<F, Kind<G, Option<A>>>) => Kind<F, Kind<G, A>> + readonly separate: <A, B>(fge: Kind<F, Kind<G, Either<A, B>>>) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition12<F extends URIS, G extends URIS2> extends FunctorComposition12<F, G> { + readonly compact: <E, A>(fga: Kind<F, Kind2<G, E, Option<A>>>) => Kind<F, Kind2<G, E, A>> + readonly separate: <E, A, B>( + fge: Kind<F, Kind2<G, E, Either<A, B>>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition12C<F extends URIS, G extends URIS2, E> extends FunctorComposition12C<F, G, E> { + readonly compact: <A>(fga: Kind<F, Kind2<G, E, Option<A>>>) => Kind<F, Kind2<G, E, A>> + readonly separate: <A, B>( + fge: Kind<F, Kind2<G, E, Either<A, B>>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition21<F extends URIS2, G extends URIS> extends FunctorComposition21<F, G> { + readonly compact: <FE, A>(fga: Kind2<F, FE, Kind<G, Option<A>>>) => Kind2<F, FE, Kind<G, A>> + readonly separate: <FE, A, B>( + fge: Kind2<F, FE, Kind<G, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind<G, A>>, Kind2<F, FE, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition2C1<F extends URIS2, G extends URIS, E> extends FunctorComposition2C1<F, G, E> { + readonly compact: <A>(fga: Kind2<F, E, Kind<G, Option<A>>>) => Kind2<F, E, Kind<G, A>> + readonly separate: <A, B>( + fge: Kind2<F, E, Kind<G, Either<A, B>>> + ) => Separated<Kind2<F, E, Kind<G, A>>, Kind2<F, E, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition22<F extends URIS2, G extends URIS2> extends FunctorComposition22<F, G> { + readonly compact: <FE, GE, A>(fga: Kind2<F, FE, Kind2<G, GE, Option<A>>>) => Kind2<F, FE, Kind2<G, GE, A>> + readonly separate: <FE, GE, A, B>( + fge: Kind2<F, FE, Kind2<G, GE, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind2<G, GE, A>>, Kind2<F, FE, Kind2<G, GE, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface CompactableComposition22C<F extends URIS2, G extends URIS2, E> extends FunctorComposition22C<F, G, E> { + readonly compact: <FE, A>(fga: Kind2<F, FE, Kind2<G, E, Option<A>>>) => Kind2<F, FE, Kind2<G, E, A>> + readonly separate: <FE, A, B>( + fge: Kind2<F, FE, Kind2<G, E, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind2<G, E, A>>, Kind2<F, FE, Kind2<G, E, B>>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface CompactableComposition23<F extends URIS2, G extends URIS3> extends FunctorComposition23<F, G> { + readonly compact: <R, FE, GE, A>(fga: Kind2<F, FE, Kind3<G, R, GE, Option<A>>>) => Kind2<F, FE, Kind3<G, R, GE, A>> + readonly separate: <R, FE, GE, A, B>( + fge: Kind2<F, FE, Kind3<G, R, GE, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind3<G, R, GE, A>>, Kind2<F, FE, Kind3<G, R, GE, B>>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface CompactableComposition23C<F extends URIS2, G extends URIS3, E> extends FunctorComposition23C<F, G, E> { + readonly compact: <FE, R, A>(fga: Kind2<F, FE, Kind3<G, R, E, Option<A>>>) => Kind2<F, FE, Kind3<G, R, E, A>> + readonly separate: <FE, R, A, B>( + fge: Kind2<F, FE, Kind3<G, R, E, Either<A, B>>> + ) => Separated<Kind2<F, FE, Kind3<G, R, E, A>>, Kind2<F, FE, Kind3<G, R, E, B>>> +} +/** + * Use [`compact`](#compact) and [`separate`](#separate) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS3, E>( + F: Functor2<F>, + G: Compactable3C<G, E> & Functor3C<G, E> +): CompactableComposition23C<F, G, E> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Compactable2C<G, E> & Functor2C<G, E> +): CompactableComposition22C<F, G, E> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Compactable2<G> & Functor2<G> +): CompactableComposition22<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS, E>( + F: Functor2C<F, E>, + G: Compactable1<G> & Functor1<G> +): CompactableComposition2C1<F, G, E> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Compactable1<G> & Functor1<G> +): CompactableComposition21<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Compactable2C<G, E> & Functor2C<G, E> +): CompactableComposition12<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Compactable2<G> & Functor2<G> +): CompactableComposition12<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Compactable1<G> & Functor1<G> +): CompactableComposition11<F, G> +/** @deprecated */ +export declare function getCompactableComposition<F, G>( + F: Functor<F>, + G: Compactable<G> & Functor<G> +): CompactableComposition<F, G> +/** + * Use [`Separated`](./Separated.ts.html#separated) instead. + * + * @since 2.0.0 + * @deprecated + */ +export interface Separated<A, B> { + readonly left: A + readonly right: B +} diff --git a/node_modules/fp-ts/lib/Compactable.js b/node_modules/fp-ts/lib/Compactable.js new file mode 100644 index 0000000..e133ec1 --- /dev/null +++ b/node_modules/fp-ts/lib/Compactable.js @@ -0,0 +1,49 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.compact = compact; +exports.separate = separate; +exports.getCompactableComposition = getCompactableComposition; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var Option_1 = require("./Option"); +var S = __importStar(require("./Separated")); +function compact(F, G) { + return function (fga) { return F.map(fga, G.compact); }; +} +function separate(F, C, G) { + var _compact = compact(F, C); + var _map = (0, Functor_1.map)(F, G); + return function (fge) { return S.separated(_compact((0, function_1.pipe)(fge, _map(Option_1.getLeft))), _compact((0, function_1.pipe)(fge, _map(Option_1.getRight)))); }; +} +/** @deprecated */ +function getCompactableComposition(F, G) { + var map = (0, Functor_1.getFunctorComposition)(F, G).map; + return { + map: map, + compact: compact(F, G), + separate: separate(F, G, G) + }; +} diff --git a/node_modules/fp-ts/lib/Console.d.ts b/node_modules/fp-ts/lib/Console.d.ts new file mode 100644 index 0000000..b9fe684 --- /dev/null +++ b/node_modules/fp-ts/lib/Console.d.ts @@ -0,0 +1,20 @@ +/** + * @since 2.0.0 + */ +import { IO } from './IO' +/** + * @since 2.0.0 + */ +export declare const log: <A>(a: A) => IO<void> +/** + * @since 2.0.0 + */ +export declare const warn: <A>(a: A) => IO<void> +/** + * @since 2.0.0 + */ +export declare const error: <A>(a: A) => IO<void> +/** + * @since 2.0.0 + */ +export declare const info: <A>(a: A) => IO<void> diff --git a/node_modules/fp-ts/lib/Console.js b/node_modules/fp-ts/lib/Console.js new file mode 100644 index 0000000..4c579ef --- /dev/null +++ b/node_modules/fp-ts/lib/Console.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.info = exports.error = exports.warn = exports.log = void 0; +/** + * @since 2.0.0 + */ +var log = function (a) { + return function () { + return console.log(a); + }; +}; +exports.log = log; +/** + * @since 2.0.0 + */ +var warn = function (a) { + return function () { + return console.warn(a); + }; +}; +exports.warn = warn; +/** + * @since 2.0.0 + */ +var error = function (a) { + return function () { + return console.error(a); + }; +}; +exports.error = error; +/** + * @since 2.0.0 + */ +var info = function (a) { + return function () { + return console.info(a); + }; +}; +exports.info = info; diff --git a/node_modules/fp-ts/lib/Const.d.ts b/node_modules/fp-ts/lib/Const.d.ts new file mode 100644 index 0000000..7867970 --- /dev/null +++ b/node_modules/fp-ts/lib/Const.d.ts @@ -0,0 +1,169 @@ +/** + * The `Const` type constructor, which wraps its first type argument and ignores its second. + * That is, `Const<E, A>` is isomorphic to `E` for any `A`. + * + * `Const` has some useful instances. For example, the `Applicative` instance allows us to collect results using a `Monoid` + * while ignoring return values. + * + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { BooleanAlgebra } from './BooleanAlgebra' +import { Bounded } from './Bounded' +import { Contravariant2 } from './Contravariant' +import { Eq } from './Eq' +import { Functor2 } from './Functor' +import { HeytingAlgebra } from './HeytingAlgebra' +import { Monoid } from './Monoid' +import { Ord } from './Ord' +import { Ring } from './Ring' +import { Semigroup } from './Semigroup' +import { Semiring } from './Semiring' +import { Show } from './Show' +/** + * @category model + * @since 2.0.0 + */ +export type Const<E, A> = E & { + readonly _A: A +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const make: <E, A = never>(e: E) => Const<E, A> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getShow<E, A>(S: Show<E>): Show<Const<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <E, A>(E: Eq<E>) => Eq<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getOrd: <E, A>(O: Ord<E>) => Ord<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getBounded: <E, A>(B: Bounded<E>) => Bounded<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getSemigroup: <E, A>(S: Semigroup<E>) => Semigroup<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getMonoid: <E, A>(M: Monoid<E>) => Monoid<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getSemiring: <E, A>(S: Semiring<E>) => Semiring<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getRing: <E, A>(S: Ring<E>) => Ring<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getHeytingAlgebra: <E, A>(H: HeytingAlgebra<E>) => HeytingAlgebra<Const<E, A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getBooleanAlgebra: <E, A>(H: BooleanAlgebra<E>) => BooleanAlgebra<Const<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApply<E>(S: Semigroup<E>): Apply2C<URI, E> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApplicative<E>(M: Monoid<E>): Applicative2C<URI, E> +/** + * @since 2.0.0 + */ +export declare const contramap: <A, B>(f: (b: B) => A) => <E>(fa: Const<E, A>) => Const<E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Const<E, A>) => Const<E, B> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Const<E, A>) => Const<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Const<E, A>) => Const<G, A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Const' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Const<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Const', E, (a: A) => B>) => import('./HKT').Kind2<'Const', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Contravariant: Contravariant2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `C.Functor` instead of `C.const_` + * (where `C` is from `import C from 'fp-ts/Const'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const const_: Functor2<URI> & Contravariant2<URI> & Bifunctor2<URI> diff --git a/node_modules/fp-ts/lib/Const.js b/node_modules/fp-ts/lib/Const.js new file mode 100644 index 0000000..92ca526 --- /dev/null +++ b/node_modules/fp-ts/lib/Const.js @@ -0,0 +1,186 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.const_ = exports.Bifunctor = exports.Contravariant = exports.flap = exports.Functor = exports.URI = exports.mapLeft = exports.bimap = exports.map = exports.contramap = exports.getBooleanAlgebra = exports.getHeytingAlgebra = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBounded = exports.getOrd = exports.getEq = exports.make = void 0; +exports.getShow = getShow; +exports.getApply = getApply; +exports.getApplicative = getApplicative; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +/** + * @category constructors + * @since 2.0.0 + */ +exports.make = function_1.unsafeCoerce; +/** + * @category instances + * @since 2.0.0 + */ +function getShow(S) { + return { + show: function (c) { return "make(".concat(S.show(c), ")"); } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +exports.getEq = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getOrd = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getBounded = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getSemigroup = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getMonoid = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getSemiring = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getRing = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getHeytingAlgebra = function_1.identity; +/** + * @category instances + * @since 2.6.0 + */ +exports.getBooleanAlgebra = function_1.identity; +/** + * @category instances + * @since 2.0.0 + */ +function getApply(S) { + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return (0, exports.make)(S.concat(fab, fa)); } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getApplicative(M) { + var A = getApply(M); + return { + URI: exports.URI, + _E: undefined, + map: A.map, + ap: A.ap, + of: function () { return (0, exports.make)(M.empty); } + }; +} +var _contramap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); }; +/** + * @since 2.0.0 + */ +var contramap = function () { return function_1.unsafeCoerce; }; +exports.contramap = contramap; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function () { return function_1.unsafeCoerce; }; +exports.map = map; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +var bimap = function (f) { return function (fa) { + return (0, exports.make)(f(fa)); +}; }; +exports.bimap = bimap; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +var mapLeft = function (f) { return function (fa) { return (0, exports.make)(f(fa)); }; }; +exports.mapLeft = mapLeft; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Const'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.7.0 + */ +exports.Contravariant = { + URI: exports.URI, + contramap: _contramap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `C.Functor` instead of `C.const_` + * (where `C` is from `import C from 'fp-ts/Const'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.const_ = { + URI: exports.URI, + map: _map, + contramap: _contramap, + bimap: _bimap, + mapLeft: _mapLeft +}; diff --git a/node_modules/fp-ts/lib/Contravariant.d.ts b/node_modules/fp-ts/lib/Contravariant.d.ts new file mode 100644 index 0000000..b71ae2a --- /dev/null +++ b/node_modules/fp-ts/lib/Contravariant.d.ts @@ -0,0 +1,62 @@ +/** + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant<F> { + readonly URI: F + readonly contramap: <A, B>(fa: HKT<F, A>, f: (b: B) => A) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant1<F extends URIS> { + readonly URI: F + readonly contramap: <A, B>(fa: Kind<F, A>, f: (b: B) => A) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant2<F extends URIS2> { + readonly URI: F + readonly contramap: <E, A, B>(fa: Kind2<F, E, A>, f: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly contramap: <A, B>(fa: Kind2<F, E, A>, f: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant3<F extends URIS3> { + readonly URI: F + readonly contramap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Contravariant3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly contramap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Contravariant4<F extends URIS4> { + readonly URI: F + readonly contramap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (b: B) => A) => Kind4<F, S, R, E, B> +} diff --git a/node_modules/fp-ts/lib/Contravariant.js b/node_modules/fp-ts/lib/Contravariant.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Contravariant.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Date.d.ts b/node_modules/fp-ts/lib/Date.d.ts new file mode 100644 index 0000000..4b5b630 --- /dev/null +++ b/node_modules/fp-ts/lib/Date.d.ts @@ -0,0 +1,49 @@ +/** + * @since 2.0.0 + */ +import * as E from './Eq' +import { IO } from './IO' +import * as O from './Ord' +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<Date> +/** + * @category instances + * @since 2.6.0 + */ +export declare const eqDate: E.Eq<Date> +/** + * @category instances + * @since 2.6.0 + */ +export declare const eqMonth: E.Eq<Date> +/** + * @category instances + * @since 2.6.0 + */ +export declare const eqYear: E.Eq<Date> +/** + * @example + * import { Ord } from 'fp-ts/Date' + * + * assert.deepStrictEqual(Ord.compare(new Date(1, 1, 2020), new Date(1, 1, 2021)), -1) + * + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<Date> +/** + * Returns the current `Date` + * + * @category constructors + * @since 2.0.0 + */ +export declare const create: IO<Date> +/** + * Returns the number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC + * + * @since 2.0.0 + */ +export declare const now: IO<number> diff --git a/node_modules/fp-ts/lib/Date.js b/node_modules/fp-ts/lib/Date.js new file mode 100644 index 0000000..687d000 --- /dev/null +++ b/node_modules/fp-ts/lib/Date.js @@ -0,0 +1,89 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.now = exports.create = exports.Ord = exports.eqYear = exports.eqMonth = exports.eqDate = exports.Eq = void 0; +var function_1 = require("./function"); +var N = __importStar(require("./number")); +var O = __importStar(require("./Ord")); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +exports.Eq = { + equals: function (first, second) { return first.valueOf() === second.valueOf(); } +}; +/** + * @category instances + * @since 2.6.0 + */ +exports.eqDate = { + equals: function (x, y) { return x.getDate() === y.getDate(); } +}; +/** + * @category instances + * @since 2.6.0 + */ +exports.eqMonth = { + equals: function (x, y) { return x.getMonth() === y.getMonth(); } +}; +/** + * @category instances + * @since 2.6.0 + */ +exports.eqYear = { + equals: function (x, y) { return x.getFullYear() === y.getFullYear(); } +}; +/** + * @example + * import { Ord } from 'fp-ts/Date' + * + * assert.deepStrictEqual(Ord.compare(new Date(1, 1, 2020), new Date(1, 1, 2021)), -1) + * + * @category instances + * @since 2.10.0 + */ +exports.Ord = (0, function_1.pipe)(N.Ord, +/*#__PURE__*/ O.contramap(function (date) { return date.valueOf(); })); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Returns the current `Date` + * + * @category constructors + * @since 2.0.0 + */ +var create = function () { return new Date(); }; +exports.create = create; +/** + * Returns the number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC + * + * @since 2.0.0 + */ +var now = function () { return new Date().getTime(); }; +exports.now = now; diff --git a/node_modules/fp-ts/lib/DistributiveLattice.d.ts b/node_modules/fp-ts/lib/DistributiveLattice.d.ts new file mode 100644 index 0000000..58e70b8 --- /dev/null +++ b/node_modules/fp-ts/lib/DistributiveLattice.d.ts @@ -0,0 +1,20 @@ +/** + * A `DistributiveLattice` must satisfy the following laws in addition to `Lattice` laws: + * + * - Distributivity for meet: `a ∨ (b ∧ c) <-> (a ∨ b) ∧ (a ∨ c)` + * - Distributivity for join: `a ∧ (b ∨ c) <-> (a ∧ b) ∨ (a ∧ c)` + * + * @since 2.0.0 + */ +import { Lattice } from './Lattice' +import { Ord } from './Ord' +/** + * @category model + * @since 2.0.0 + */ +export interface DistributiveLattice<A> extends Lattice<A> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function getMinMaxDistributiveLattice<A>(O: Ord<A>): DistributiveLattice<A> diff --git a/node_modules/fp-ts/lib/DistributiveLattice.js b/node_modules/fp-ts/lib/DistributiveLattice.js new file mode 100644 index 0000000..6d580f7 --- /dev/null +++ b/node_modules/fp-ts/lib/DistributiveLattice.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMinMaxDistributiveLattice = getMinMaxDistributiveLattice; +var Ord_1 = require("./Ord"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +function getMinMaxDistributiveLattice(O) { + return { + meet: (0, Ord_1.min)(O), + join: (0, Ord_1.max)(O) + }; +} diff --git a/node_modules/fp-ts/lib/Either.d.ts b/node_modules/fp-ts/lib/Either.d.ts new file mode 100644 index 0000000..850d9e7 --- /dev/null +++ b/node_modules/fp-ts/lib/Either.d.ts @@ -0,0 +1,1354 @@ +/** + * ```ts + * type Either<E, A> = Left<E> | Right<A> + * ``` + * + * Represents a value of one of two possible types (a disjoint union). + * + * An instance of `Either` is either an instance of `Left` or `Right`. + * + * A common use of `Either` is as an alternative to `Option` for dealing with possible missing values. In this usage, + * `None` is replaced with a `Left` which can contain useful information. `Right` takes the place of `Some`. Convention + * dictates that `Left` is used for failure and `Right` is used for success. + * + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * + * export const imperative = (as: ReadonlyArray<number>): string => { + * const head = (as: ReadonlyArray<number>): number => { + * if (as.length === 0) { + * throw new Error('empty array') + * } + * return as[0] + * } + * const inverse = (n: number): number => { + * if (n === 0) { + * throw new Error('cannot divide by zero') + * } + * return 1 / n + * } + * try { + * return `Result is ${inverse(double(head(as)))}` + * } catch (err: any) { + * return `Error is ${err.message}` + * } + * } + * + * export const functional = (as: ReadonlyArray<number>): string => { + * const head = <A>(as: ReadonlyArray<A>): E.Either<string, A> => + * as.length === 0 ? E.left('empty array') : E.right(as[0]) + * const inverse = (n: number): E.Either<string, number> => + * n === 0 ? E.left('cannot divide by zero') : E.right(1 / n) + * return pipe( + * as, + * head, + * E.map(double), + * E.flatMap(inverse), + * E.match( + * (err) => `Error is ${err}`, // onLeft handler + * (head) => `Result is ${head}` // onRight handler + * ) + * ) + * } + * + * assert.deepStrictEqual(imperative([1, 2, 3]), functional([1, 2, 3])) + * assert.deepStrictEqual(imperative([]), functional([])) + * assert.deepStrictEqual(imperative([0]), functional([0])) + * + * @since 2.0.0 + */ +import { Alt2, Alt2C } from './Alt' +import { Applicative2, Applicative2C } from './Applicative' +import { Apply2 } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import * as chainable from './Chain' +import { ChainRec2, ChainRec2C } from './ChainRec' +import { Compactable2C } from './Compactable' +import { Eq } from './Eq' +import { Extend2 } from './Extend' +import { Filterable2C } from './Filterable' +import { Foldable2 } from './Foldable' +import { FromEither2 } from './FromEither' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { Monad2, Monad2C } from './Monad' +import { MonadThrow2, MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse2, Traversable2 } from './Traversable' +import { Witherable2C } from './Witherable' +/** + * @category model + * @since 2.0.0 + */ +export interface Left<E> { + readonly _tag: 'Left' + readonly left: E +} +/** + * @category model + * @since 2.0.0 + */ +export interface Right<A> { + readonly _tag: 'Right' + readonly right: A +} +/** + * @category model + * @since 2.0.0 + */ +export type Either<E, A> = Left<E> | Right<A> +/** + * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this + * structure. + * + * @category constructors + * @since 2.0.0 + */ +export declare const left: <E = never, A = never>(e: E) => Either<E, A> +/** + * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias + * of this structure. + * + * @category constructors + * @since 2.0.0 + */ +export declare const right: <E = never, A = never>(a: A) => Either<E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, E2, B>(f: (a: A) => Either<E2, B>): <E1>(ma: Either<E1, A>) => Either<E1 | E2, B> + <E1, A, E2, B>(ma: Either<E1, A>, f: (a: A) => Either<E2, B>): Either<E1 | E2, B> +} +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Either' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Either<E, A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <E, A>(SE: Show<E>, SA: Show<A>) => Show<Either<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <E, A>(EL: Eq<E>, EA: Eq<A>) => Eq<Either<E, A>> +/** + * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are + * concatenated using the provided `Semigroup` + * + * @example + * import { getSemigroup, left, right } from 'fp-ts/Either' + * import { SemigroupSum } from 'fp-ts/number' + * + * const S = getSemigroup<string, number>(SemigroupSum) + * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a')) + * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2)) + * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1)) + * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3)) + * + * @category instances + * @since 2.0.0 + */ +export declare const getSemigroup: <E, A>(S: Semigroup<A>) => Semigroup<Either<E, A>> +/** + * Builds a `Compactable` instance for `Either` given `Monoid` for the left side. + * + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable2C<URI, E> +/** + * Builds a `Filterable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.10.0 + */ +export declare const getFilterable: <E>(M: Monoid<E>) => Filterable2C<URI, E> +/** + * Builds `Witherable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.0.0 + */ +export declare const getWitherable: <E>(M: Monoid<E>) => Witherable2C<URI, E> +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as A from 'fp-ts/Apply' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const parsePerson = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * E.apS('name', parseString(input.name)), + * E.apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error + * + * const Applicative = E.getApplicativeValidation( + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * const apS = A.apS(Applicative) + * + * const parsePersonAll = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * apS('name', parseString(input.name)), + * apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +export declare const getApplicativeValidation: <E>(SE: Semigroup<E>) => Applicative2C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * const parse = (u: unknown): E.Either<string, string | number> => + * pipe( + * parseString(u), + * E.alt<string, string | number>(() => parseNumber(u)) + * ) + * + * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error + * + * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', '))) + * + * const parseAll = (u: unknown): E.Either<string, string | number> => + * Alt.alt<string | number>(parseString(u), () => parseNumber(u)) + * + * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +export declare const getAltValidation: <E>(SE: Semigroup<E>) => Alt2C<URI, E> +/** + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Either<E, A>) => Either<E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the `Right` value of this `Either` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <E, _>(self: Either<E, _>) => Either<E, A> + <E, _, A>(self: Either<E, _>, a: A): Either<E, A> +} +/** + * Maps the `Right` value of this `Either` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <E, _>(self: Either<E, _>) => Either<E, void> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <E = never, A = never>(a: A) => Either<E, A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <E2, A>(fa: Either<E2, A>) => <E1, B>(fab: Either<E1, (a: A) => B>) => Either<E1 | E2, B> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: Either<E, A>) => <B>(fab: Either<E, (a: A) => B>) => Either<E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * Left-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'prefix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduce(startWith, concat)), + * 'prefix:a' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduce(startWith, concat)), + * 'prefix' + * ) + * + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: Either<E, A>) => B +/** + * Map each element of the structure to a monoid, and combine the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as S from 'fp-ts/string' + * + * const yell = (a: string) => `${a}!` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)), + * 'a!' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)), + * S.Monoid.empty + * ) + * + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: Either<E, A>) => M +/** + * Right-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'postfix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduceRight(startWith, concat)), + * 'a:postfix' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduceRight(startWith, concat)), + * 'postfix' + * ) + * + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: Either<E, A>) => B +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * Evaluate each monadic action in the structure from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(O.some('a')), E.sequence(O.Applicative)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right(O.none), E.sequence(O.Applicative)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Either<E, A>) => Either<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Either<E, A>) => Either<G, A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <E2, B>(that: LazyArg<Either<E2, B>>) => <E1, A>(fa: Either<E1, A>) => Either<E2, A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`). + * + * | x | y | pipe(x, alt(() => y) | + * | -------- | -------- | -------------------- | + * | left(a) | left(b) | left(b) | + * | left(a) | right(2) | right(2) | + * | right(1) | left(b) | right(1) | + * | right(1) | right(2) | right(1) | + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.left('b')) + * ), + * E.left('b') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.right(2)) + * ), + * E.right(2) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.left('b')) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.right(2)) + * ), + * E.right(1) + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <E, A>(that: LazyArg<Either<E, A>>) => (fa: Either<E, A>) => Either<E, A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt2<URI> +/** + * @since 2.0.0 + */ +export declare const extend: <E, A, B>(f: (wa: Either<E, A>) => B) => (wa: Either<E, A>) => Either<E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const ChainRec: ChainRec2<URI> +/** + * @since 2.6.3 + */ +export declare const throwError: MonadThrow2<URI>['throwError'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @example + * import { fromPredicate, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * 1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * -1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * left('error') + * ) + * + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Either<E, A> +} +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe( + * O.some(1), + * E.fromOption(() => 'error') + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * O.none, + * E.fromOption(() => 'error') + * ), + * E.left('error') + * ) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => Either<E, A> +/** + * Returns `true` if the either is an instance of `Left`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +export declare const isLeft: <E>(ma: Either<E, unknown>) => ma is Left<E> +/** + * Returns `true` if the either is an instance of `Right`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +export declare const isRight: <A>(ma: Either<unknown, A>) => ma is Right<A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>(onLeft: (e: E) => B, onRight: (a: A) => C) => (ma: Either<E, A>) => B | C +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C>(onLeft: (e: E) => B, onRight: (a: A) => C) => (ma: Either<E, A>) => B | C +/** + * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, + * if the value is a `Right` the inner value is applied to the second function. + * + * @example + * import { match, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * function onLeft(errors: Array<string>): string { + * return `Errors: ${errors.join(', ')}` + * } + * + * function onRight(value: number): string { + * return `Ok: ${value}` + * } + * + * assert.strictEqual( + * pipe( + * right(1), + * match(onLeft, onRight) + * ), + * 'Ok: 1' + * ) + * assert.strictEqual( + * pipe( + * left(['error 1', 'error 2']), + * match(onLeft, onRight) + * ), + * 'Errors: error 1, error 2' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, A, B>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Either<E, A>) => B +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Either<E, A>) => B +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <E, B>(onLeft: (e: E) => B) => <A>(ma: Either<E, A>) => A | B +/** + * Returns the wrapped value if it's a `Right` or a default value if is a `Left`. + * + * @example + * import { getOrElse, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * right(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.deepStrictEqual( + * pipe( + * left('error'), + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, A>(onLeft: (e: E) => A) => (ma: Either<E, A>) => A +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Either', E, (a: A) => B>) => import('./HKT').Kind2<'Either', E, B> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: Either<E, B> +) => <A>(first: import('./HKT').Kind2<'Either', E, A>) => import('./HKT').Kind2<'Either', E, A> +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <E2, B>(second: Either<E2, B>) => <E1, A>(first: Either<E1, A>) => Either<E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: Either<E, B> +) => <A>(first: import('./HKT').Kind2<'Either', E, A>) => import('./HKT').Kind2<'Either', E, B> +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <E2, B>(second: Either<E2, B>) => <E1, A>(first: Either<E1, A>) => Either<E1 | E2, B> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <E1, A, E2, _>(self: Either<E1, A>, f: (a: A) => Either<E2, _>): Either<E1 | E2, A> + <A, E2, _>(f: (a: A) => Either<E2, _>): <E1>(self: Either<E1, A>) => Either<E2 | E1, A> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <E1, E2, A>(mma: Either<E1, Either<E2, A>>) => Either<E1 | E2, A> +/** + * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level. + * + * @example + * import * as E from 'fp-ts/Either' + * + * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a')) + * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e')) + * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e')) + * + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: Either<E, Either<E, A>>) => Either<E, A> +/** + * @since 2.0.0 + */ +export declare const duplicate: <E, A>(ma: Either<E, A>) => Either<E, Either<E, A>> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Either<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => (ma: Either<E, A>) => Either<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <E1>(ma: Either<E1, A>) => Either<E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => (...a: A) => Either<E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => (...a: A) => Either<E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <E1>( + self: Either<E1, A> + ) => Either<E2 | E1, NonNullable<B>> + <E1, A, B, E2>(self: Either<E1, A>, f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): Either< + E1 | E2, + NonNullable<B> + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <E1>(self: Either<E1, A>) => Either<E2 | E1, B> + <E1, A, B, E2>(self: Either<E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): Either<E1 | E2, B> +} +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(-1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('error') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('a') + * ) + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (self: Either<E, A>) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(self: Either<E, B>) => Either<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (self: Either<E, A>) => Either<E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <E1>( + ma: Either<E1, A> + ) => Either<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1, B extends A>(mb: Either<E1, B>) => Either<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1>(ma: Either<E1, A>) => Either<E1 | E2, A> +} +/** + * Returns a `Right` if is a `Left` (and vice versa). + * + * @since 2.0.0 + */ +export declare const swap: <E, A>(ma: Either<E, A>) => Either<A, E> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, E2, B>( + onLeft: (e: E1) => Either<E2, B> +) => <A>(ma: Either<E1, A>) => Either<E2, A | B> +/** + * Useful for recovering from errors. + * + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, A, E2>(onLeft: (e: E1) => Either<E2, A>) => (ma: Either<E1, A>) => Either<E2, A> +/** + * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use + * the provided default as a `Left`. + * + * @example + * import { fromNullable, left, right } from 'fp-ts/Either' + * + * const parse = fromNullable('nully') + * + * assert.deepStrictEqual(parse(1), right(1)) + * assert.deepStrictEqual(parse(null), left('nully')) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromNullable: <E>(e: E) => <A>(a: A) => Either<E, NonNullable<A>> +/** + * Constructs a new `Either` from a function that might throw. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import * as E from 'fp-ts/Either' + * + * const unsafeHead = <A>(as: ReadonlyArray<A>): A => { + * if (as.length > 0) { + * return as[0] + * } else { + * throw new Error('empty array') + * } + * } + * + * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> => + * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error'))) + * + * assert.deepStrictEqual(head([]), E.left(new Error('empty array'))) + * assert.deepStrictEqual(head([1, 2, 3]), E.right(1)) + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <E, A>(f: LazyArg<A>, onThrow: (e: unknown) => E) => Either<E, A> +/** + * Converts a function that may throw to one returning a `Either`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B, + onThrow: (error: unknown) => E +) => (...a: A) => Either<E, B> +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.9.0 + */ +export declare const fromNullableK: <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Either<E, NonNullable<B>> +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.9.0 + */ +export declare const chainNullableK: <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: Either<E, A>) => Either<E, NonNullable<B>> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <E, A>(fa: Either<E, A>) => E | A +/** + * Default value for the `onError` argument of `tryCatch` + * + * @since 2.0.0 + */ +export declare function toError(e: unknown): Error +/** + * @since 2.0.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): <E>(ma: Either<E, A>) => boolean + <E>(a: A, ma: Either<E, A>): boolean +} +/** + * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value. + * + * @example + * import { exists, left, right } from 'fp-ts/Either' + * + * const gt2 = exists((n: number) => n > 2) + * + * assert.strictEqual(gt2(left('a')), false) + * assert.strictEqual(gt2(right(1)), false) + * assert.strictEqual(gt2(right(3)), true) + * + * @since 2.0.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: Either<unknown, A>) => boolean +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Either<never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>(fa: import('./HKT').Kind2<'Either', E, A>) => import('./HKT').Kind2<'Either', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'Either', E, A> +) => import('./HKT').Kind2<'Either', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'Either', E, B> +) => ( + ma: import('./HKT').Kind2<'Either', E, A> +) => import('./HKT').Kind2<'Either', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Either<E2, B> +) => <E1>(fa: Either<E1, A>) => Either< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: Either<E, B> +) => ( + fa: import('./HKT').Kind2<'Either', E, A> +) => import('./HKT').Kind2<'Either', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, E2, B>( + name: Exclude<N, keyof A>, + fb: Either<E2, B> +) => <E1>(fa: Either<E1, A>) => Either< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: Either<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => Either<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => Either<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => Either<E, B> +) => (as: ReadonlyArray<A>) => Either<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <E, A, B>( + f: (index: number, a: A) => Either<E, B> +) => (as: ReadonlyArray<A>) => Either<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <E, A, B>( + f: (a: A) => Either<E, B> +) => (as: ReadonlyArray<A>) => Either<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <E, A>(as: ReadonlyArray<Either<E, A>>) => Either<E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <E2, A, B>(f: (a: A) => Either<E2, B>) => <E1>(ma: Either<E1, A>) => Either<E2 | E1, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Either<E, A>) => Either<E, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Either<E, A>) => Either<E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <E1>(ma: Either<E1, A>) => Either<E1 | E2, A> +/** + * Use [`Json`](./Json.ts.html) module instead. + * + * @category zone of death + * @since 2.6.7 + * @deprecated + */ +export type Json = boolean | number | string | null | JsonArray | JsonRecord +/** + * Use [`Json`](./Json.ts.html) module instead. + * + * @category zone of death + * @since 2.6.7 + * @deprecated + */ +export interface JsonRecord { + readonly [key: string]: Json +} +/** + * Use [`Json`](./Json.ts.html) module instead. + * + * @category zone of death + * @since 2.6.7 + * @deprecated + */ +export interface JsonArray extends ReadonlyArray<Json> {} +/** + * Use [`parse`](./Json.ts.html#parse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function parseJSON<E>(s: string, onError: (reason: unknown) => E): Either<E, Json> +/** + * Use [`stringify`](./Json.ts.html#stringify) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const stringifyJSON: <E>(u: unknown, onError: (reason: unknown) => E) => Either<E, string> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either` + * (where `E` is from `import E from 'fp-ts/Either'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const either: Monad2<URI> & + Foldable2<URI> & + Traversable2<URI> & + Bifunctor2<URI> & + Alt2<URI> & + Extend2<URI> & + ChainRec2<URI> & + MonadThrow2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <E, A>(S: Semigroup<A>) => Semigroup<Either<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <E, A>(M: Monoid<A>) => Monoid<Either<E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getValidationSemigroup: <E, A>(SE: Semigroup<E>, SA: Semigroup<A>) => Semigroup<Either<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getValidationMonoid: <E, A>(SE: Semigroup<E>, MA: Monoid<A>) => Monoid<Either<E, A>> +/** + * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getValidation<E>( + SE: Semigroup<E> +): Monad2C<URI, E> & + Foldable2<URI> & + Traversable2<URI> & + Bifunctor2<URI> & + Alt2C<URI, E> & + Extend2<URI> & + ChainRec2C<URI, E> & + MonadThrow2C<URI, E> diff --git a/node_modules/fp-ts/lib/Either.js b/node_modules/fp-ts/lib/Either.js new file mode 100644 index 0000000..0598dcb --- /dev/null +++ b/node_modules/fp-ts/lib/Either.js @@ -0,0 +1,1542 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.match = exports.foldW = exports.matchW = exports.isRight = exports.isLeft = exports.fromOption = exports.fromPredicate = exports.FromEither = exports.MonadThrow = exports.throwError = exports.ChainRec = exports.Extend = exports.extend = exports.Alt = exports.alt = exports.altW = exports.Bifunctor = exports.mapLeft = exports.bimap = exports.Traversable = exports.sequence = exports.traverse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.Applicative = exports.Apply = exports.ap = exports.apW = exports.Pointed = exports.of = exports.asUnit = exports.as = exports.Functor = exports.map = exports.getAltValidation = exports.getApplicativeValidation = exports.getWitherable = exports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.URI = exports.flatMap = exports.right = exports.left = void 0; +exports.either = exports.stringifyJSON = exports.chainFirstW = exports.chainFirst = exports.chain = exports.chainW = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.toUnion = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.orElse = exports.orElseW = exports.swap = exports.filterOrElseW = exports.filterOrElse = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.duplicate = exports.flatten = exports.flattenW = exports.tap = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = void 0; +exports.getValidationMonoid = exports.getValidationSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = void 0; +exports.toError = toError; +exports.elem = elem; +exports.parseJSON = parseJSON; +exports.getValidation = getValidation; +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var ChainRec_1 = require("./ChainRec"); +var FromEither_1 = require("./FromEither"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var Separated_1 = require("./Separated"); +var Witherable_1 = require("./Witherable"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this + * structure. + * + * @category constructors + * @since 2.0.0 + */ +exports.left = _.left; +/** + * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias + * of this structure. + * + * @category constructors + * @since 2.0.0 + */ +exports.right = _.right; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { return ((0, exports.isLeft)(ma) ? ma : f(ma.right)); }); +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { return function (fa, f) { + var foldMapM = (0, exports.foldMap)(M); + return (0, function_1.pipe)(fa, foldMapM(f)); +}; }; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +var _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); }; +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +var _chainRec = function (a, f) { + return (0, ChainRec_1.tailRec)(f(a), function (e) { + return (0, exports.isLeft)(e) ? (0, exports.right)((0, exports.left)(e.left)) : (0, exports.isLeft)(e.right) ? (0, exports.left)(f(e.right.left)) : (0, exports.right)((0, exports.right)(e.right.right)); + }); +}; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Either'; +/** + * @category instances + * @since 2.0.0 + */ +var getShow = function (SE, SA) { return ({ + show: function (ma) { return ((0, exports.isLeft)(ma) ? "left(".concat(SE.show(ma.left), ")") : "right(".concat(SA.show(ma.right), ")")); } +}); }; +exports.getShow = getShow; +/** + * @category instances + * @since 2.0.0 + */ +var getEq = function (EL, EA) { return ({ + equals: function (x, y) { + return x === y || ((0, exports.isLeft)(x) ? (0, exports.isLeft)(y) && EL.equals(x.left, y.left) : (0, exports.isRight)(y) && EA.equals(x.right, y.right)); + } +}); }; +exports.getEq = getEq; +/** + * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are + * concatenated using the provided `Semigroup` + * + * @example + * import { getSemigroup, left, right } from 'fp-ts/Either' + * import { SemigroupSum } from 'fp-ts/number' + * + * const S = getSemigroup<string, number>(SemigroupSum) + * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a')) + * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2)) + * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1)) + * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3)) + * + * @category instances + * @since 2.0.0 + */ +var getSemigroup = function (S) { return ({ + concat: function (x, y) { return ((0, exports.isLeft)(y) ? x : (0, exports.isLeft)(x) ? y : (0, exports.right)(S.concat(x.right, y.right))); } +}); }; +exports.getSemigroup = getSemigroup; +/** + * Builds a `Compactable` instance for `Either` given `Monoid` for the left side. + * + * @category filtering + * @since 2.10.0 + */ +var getCompactable = function (M) { + var empty = (0, exports.left)(M.empty); + return { + URI: exports.URI, + _E: undefined, + compact: function (ma) { return ((0, exports.isLeft)(ma) ? ma : ma.right._tag === 'None' ? empty : (0, exports.right)(ma.right.value)); }, + separate: function (ma) { + return (0, exports.isLeft)(ma) + ? (0, Separated_1.separated)(ma, ma) + : (0, exports.isLeft)(ma.right) + ? (0, Separated_1.separated)((0, exports.right)(ma.right.left), empty) + : (0, Separated_1.separated)(empty, (0, exports.right)(ma.right.right)); + } + }; +}; +exports.getCompactable = getCompactable; +/** + * Builds a `Filterable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.10.0 + */ +var getFilterable = function (M) { + var empty = (0, exports.left)(M.empty); + var _a = (0, exports.getCompactable)(M), compact = _a.compact, separate = _a.separate; + var filter = function (ma, predicate) { + return (0, exports.isLeft)(ma) ? ma : predicate(ma.right) ? ma : empty; + }; + var partition = function (ma, p) { + return (0, exports.isLeft)(ma) + ? (0, Separated_1.separated)(ma, ma) + : p(ma.right) + ? (0, Separated_1.separated)(empty, (0, exports.right)(ma.right)) + : (0, Separated_1.separated)((0, exports.right)(ma.right), empty); + }; + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: compact, + separate: separate, + filter: filter, + filterMap: function (ma, f) { + if ((0, exports.isLeft)(ma)) { + return ma; + } + var ob = f(ma.right); + return ob._tag === 'None' ? empty : (0, exports.right)(ob.value); + }, + partition: partition, + partitionMap: function (ma, f) { + if ((0, exports.isLeft)(ma)) { + return (0, Separated_1.separated)(ma, ma); + } + var e = f(ma.right); + return (0, exports.isLeft)(e) ? (0, Separated_1.separated)((0, exports.right)(e.left), empty) : (0, Separated_1.separated)(empty, (0, exports.right)(e.right)); + } + }; +}; +exports.getFilterable = getFilterable; +/** + * Builds `Witherable` instance for `Either` given `Monoid` for the left side + * + * @category filtering + * @since 2.0.0 + */ +var getWitherable = function (M) { + var F_ = (0, exports.getFilterable)(M); + var C = (0, exports.getCompactable)(M); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: F_.compact, + separate: F_.separate, + filter: F_.filter, + filterMap: F_.filterMap, + partition: F_.partition, + partitionMap: F_.partitionMap, + traverse: _traverse, + sequence: exports.sequence, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + wither: (0, Witherable_1.witherDefault)(exports.Traversable, C), + wilt: (0, Witherable_1.wiltDefault)(exports.Traversable, C) + }; +}; +exports.getWitherable = getWitherable; +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as A from 'fp-ts/Apply' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const parsePerson = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * E.apS('name', parseString(input.name)), + * E.apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error + * + * const Applicative = E.getApplicativeValidation( + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * const apS = A.apS(Applicative) + * + * const parsePersonAll = ( + * input: Record<string, unknown> + * ): E.Either<string, Person> => + * pipe( + * E.Do, + * apS('name', parseString(input.name)), + * apS('age', parseNumber(input.age)) + * ) + * + * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +var getApplicativeValidation = function (SE) { return ({ + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { + return (0, exports.isLeft)(fab) + ? (0, exports.isLeft)(fa) + ? (0, exports.left)(SE.concat(fab.left, fa.left)) + : fab + : (0, exports.isLeft)(fa) + ? fa + : (0, exports.right)(fab.right(fa.right)); + }, + of: exports.of +}); }; +exports.getApplicativeValidation = getApplicativeValidation; +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * + * const parseString = (u: unknown): E.Either<string, string> => + * typeof u === 'string' ? E.right(u) : E.left('not a string') + * + * const parseNumber = (u: unknown): E.Either<string, number> => + * typeof u === 'number' ? E.right(u) : E.left('not a number') + * + * const parse = (u: unknown): E.Either<string, string | number> => + * pipe( + * parseString(u), + * E.alt<string, string | number>(() => parseNumber(u)) + * ) + * + * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error + * + * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', '))) + * + * const parseAll = (u: unknown): E.Either<string, string | number> => + * Alt.alt<string | number>(parseString(u), () => parseNumber(u)) + * + * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors + * + * @category error handling + * @since 2.7.0 + */ +var getAltValidation = function (SE) { return ({ + URI: exports.URI, + _E: undefined, + map: _map, + alt: function (me, that) { + if ((0, exports.isRight)(me)) { + return me; + } + var ea = that(); + return (0, exports.isLeft)(ea) ? (0, exports.left)(SE.concat(me.left, ea.left)) : ea; + } +}); }; +exports.getAltValidation = getAltValidation; +/** + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { + return (0, exports.isLeft)(fa) ? fa : (0, exports.right)(f(fa.right)); +}; }; +exports.map = map; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Right` value of this `Either` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Right` value of this `Either` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category constructors + * @since 2.7.0 + */ +exports.of = exports.right; +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +var apW = function (fa) { return function (fab) { + return (0, exports.isLeft)(fab) ? fab : (0, exports.isLeft)(fa) ? fa : (0, exports.right)(fab.right(fa.right)); +}; }; +exports.apW = apW; +/** + * @since 2.0.0 + */ +exports.ap = exports.apW; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * Left-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'prefix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduce(startWith, concat)), + * 'prefix:a' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduce(startWith, concat)), + * 'prefix' + * ) + * + * @category folding + * @since 2.0.0 + */ +var reduce = function (b, f) { return function (fa) { + return (0, exports.isLeft)(fa) ? b : f(b, fa.right); +}; }; +exports.reduce = reduce; +/** + * Map each element of the structure to a monoid, and combine the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as S from 'fp-ts/string' + * + * const yell = (a: string) => `${a}!` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)), + * 'a!' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)), + * S.Monoid.empty + * ) + * + * @category folding + * @since 2.0.0 + */ +var foldMap = function (M) { return function (f) { return function (fa) { + return (0, exports.isLeft)(fa) ? M.empty : f(fa.right); +}; }; }; +exports.foldMap = foldMap; +/** + * Right-associative fold of a structure. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * + * const startWith = 'postfix' + * const concat = (a: string, b: string) => `${a}:${b}` + * + * assert.deepStrictEqual( + * pipe(E.right('a'), E.reduceRight(startWith, concat)), + * 'a:postfix' + * ) + * + * assert.deepStrictEqual( + * pipe(E.left('e'), E.reduceRight(startWith, concat)), + * 'postfix' + * ) + * + * @category folding + * @since 2.0.0 + */ +var reduceRight = function (b, f) { return function (fa) { + return (0, exports.isLeft)(fa) ? b : f(fa.right, b); +}; }; +exports.reduceRight = reduceRight; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + return function (f) { + return function (ta) { + return (0, exports.isLeft)(ta) ? F.of((0, exports.left)(ta.left)) : F.map(f(ta.right), exports.right); + }; + }; +}; +exports.traverse = traverse; +/** + * Evaluate each monadic action in the structure from left to right, and collect the results. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as E from 'fp-ts/Either' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe(E.right(O.some('a')), E.sequence(O.Applicative)), + * O.some(E.right('a')) + * ) + * + * assert.deepStrictEqual( + * pipe(E.right(O.none), E.sequence(O.Applicative)), + * O.none + * ) + * + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (ma) { + return (0, exports.isLeft)(ma) ? F.of((0, exports.left)(ma.left)) : F.map(ma.right, exports.right); + }; +}; +exports.sequence = sequence; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +var bimap = function (f, g) { return function (fa) { + return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : (0, exports.right)(g(fa.right)); +}; }; +exports.bimap = bimap; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +var mapLeft = function (f) { return function (fa) { + return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : fa; +}; }; +exports.mapLeft = mapLeft; +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +var altW = function (that) { return function (fa) { + return (0, exports.isLeft)(fa) ? that() : fa; +}; }; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`). + * + * | x | y | pipe(x, alt(() => y) | + * | -------- | -------- | -------------------- | + * | left(a) | left(b) | left(b) | + * | left(a) | right(2) | right(2) | + * | right(1) | left(b) | right(1) | + * | right(1) | right(2) | right(1) | + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.left('b')) + * ), + * E.left('b') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.alt(() => E.right(2)) + * ), + * E.right(2) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.left('b')) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.alt(() => E.right(2)) + * ), + * E.right(1) + * ) + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = exports.altW; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { + return (0, exports.isLeft)(wa) ? wa : (0, exports.right)(f(wa)); +}; }; +exports.extend = extend; +/** + * @category instances + * @since 2.7.0 + */ +exports.Extend = { + URI: exports.URI, + map: _map, + extend: _extend +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.ChainRec = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: _chainRec +}; +/** + * @since 2.6.3 + */ +exports.throwError = exports.left; +/** + * @category instances + * @since 2.7.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + throwError: exports.throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: function_1.identity +}; +/** + * @example + * import { fromPredicate, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * 1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * -1, + * fromPredicate( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * left('error') + * ) + * + * @category lifting + * @since 2.0.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * pipe( + * O.some(1), + * E.fromOption(() => 'error') + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * O.none, + * E.fromOption(() => 'error') + * ), + * E.left('error') + * ) + * + * @category conversions + * @since 2.0.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Returns `true` if the either is an instance of `Left`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +exports.isLeft = _.isLeft; +/** + * Returns `true` if the either is an instance of `Right`, `false` otherwise. + * + * @category refinements + * @since 2.0.0 + */ +exports.isRight = _.isRight; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +var matchW = function (onLeft, onRight) { + return function (ma) { + return (0, exports.isLeft)(ma) ? onLeft(ma.left) : onRight(ma.right); + }; +}; +exports.matchW = matchW; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchW; +/** + * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function, + * if the value is a `Right` the inner value is applied to the second function. + * + * @example + * import { match, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * function onLeft(errors: Array<string>): string { + * return `Errors: ${errors.join(', ')}` + * } + * + * function onRight(value: number): string { + * return `Ok: ${value}` + * } + * + * assert.strictEqual( + * pipe( + * right(1), + * match(onLeft, onRight) + * ), + * 'Ok: 1' + * ) + * assert.strictEqual( + * pipe( + * left(['error 1', 'error 2']), + * match(onLeft, onRight) + * ), + * 'Errors: error 1, error 2' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +exports.match = exports.matchW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.match; +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +var getOrElseW = function (onLeft) { + return function (ma) { + return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma.right; + }; +}; +exports.getOrElseW = getOrElseW; +/** + * Returns the wrapped value if it's a `Right` or a default value if is a `Left`. + * + * @example + * import { getOrElse, left, right } from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * right(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.deepStrictEqual( + * pipe( + * left('error'), + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +exports.getOrElse = exports.getOrElseW; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level. + * + * @example + * import * as E from 'fp-ts/Either' + * + * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a')) + * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e')) + * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e')) + * + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.fromOptionK = +/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +exports.chainOptionKW = exports.chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: exports.FromEither.fromEither +}; +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftNullable = _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftOption = _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap); +/** + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * E.right(1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.right(1) + * ) + * assert.deepStrictEqual( + * pipe( + * E.right(-1), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('error') + * ) + * assert.deepStrictEqual( + * pipe( + * E.left('a'), + * E.filterOrElse( + * (n) => n > 0, + * () => 'error' + * ) + * ), + * E.left('a') + * ) + * + * @category filtering + * @since 2.0.0 + */ +exports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +exports.filterOrElseW = exports.filterOrElse; +/** + * Returns a `Right` if is a `Left` (and vice versa). + * + * @since 2.0.0 + */ +var swap = function (ma) { return ((0, exports.isLeft)(ma) ? (0, exports.right)(ma.left) : (0, exports.left)(ma.right)); }; +exports.swap = swap; +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +var orElseW = function (onLeft) { + return function (ma) { + return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma; + }; +}; +exports.orElseW = orElseW; +/** + * Useful for recovering from errors. + * + * @category error handling + * @since 2.0.0 + */ +exports.orElse = exports.orElseW; +/** + * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use + * the provided default as a `Left`. + * + * @example + * import { fromNullable, left, right } from 'fp-ts/Either' + * + * const parse = fromNullable('nully') + * + * assert.deepStrictEqual(parse(1), right(1)) + * assert.deepStrictEqual(parse(null), left('nully')) + * + * @category conversions + * @since 2.0.0 + */ +var fromNullable = function (e) { + return function (a) { + return a == null ? (0, exports.left)(e) : (0, exports.right)(a); + }; +}; +exports.fromNullable = fromNullable; +/** + * Constructs a new `Either` from a function that might throw. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import * as E from 'fp-ts/Either' + * + * const unsafeHead = <A>(as: ReadonlyArray<A>): A => { + * if (as.length > 0) { + * return as[0] + * } else { + * throw new Error('empty array') + * } + * } + * + * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> => + * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error'))) + * + * assert.deepStrictEqual(head([]), E.left(new Error('empty array'))) + * assert.deepStrictEqual(head([1, 2, 3]), E.right(1)) + * + * @category interop + * @since 2.0.0 + */ +var tryCatch = function (f, onThrow) { + try { + return (0, exports.right)(f()); + } + catch (e) { + return (0, exports.left)(onThrow(e)); + } +}; +exports.tryCatch = tryCatch; +/** + * Converts a function that may throw to one returning a `Either`. + * + * @category interop + * @since 2.10.0 + */ +var tryCatchK = function (f, onThrow) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onThrow); + }; +}; +exports.tryCatchK = tryCatchK; +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.9.0 + */ +var fromNullableK = function (e) { + var from = (0, exports.fromNullable)(e); + return function (f) { return (0, function_1.flow)(f, from); }; +}; +exports.fromNullableK = fromNullableK; +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.9.0 + */ +var chainNullableK = function (e) { + var from = (0, exports.fromNullableK)(e); + return function (f) { return (0, exports.flatMap)(from(f)); }; +}; +exports.chainNullableK = chainNullableK; +/** + * @category conversions + * @since 2.10.0 + */ +exports.toUnion = (0, exports.foldW)(function_1.identity, function_1.identity); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Default value for the `onError` argument of `tryCatch` + * + * @since 2.0.0 + */ +function toError(e) { + try { + return e instanceof Error ? e : new Error(String(e)); + } + catch (error) { + return new Error(); + } +} +function elem(E) { + return function (a, ma) { + if (ma === undefined) { + var elemE_1 = elem(E); + return function (ma) { return elemE_1(a, ma); }; + } + return (0, exports.isLeft)(ma) ? false : E.equals(a, ma.right); + }; +} +/** + * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value. + * + * @example + * import { exists, left, right } from 'fp-ts/Either' + * + * const gt2 = exists((n: number) => n > 2) + * + * assert.strictEqual(gt2(left('a')), false) + * assert.strictEqual(gt2(right(1)), false) + * assert.strictEqual(gt2(right(3)), true) + * + * @since 2.0.0 + */ +var exists = function (predicate) { + return function (ma) { + return (0, exports.isLeft)(ma) ? false : predicate(ma.right); + }; +}; +exports.exists = exists; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + var e = f(0, _.head(as)); + if ((0, exports.isLeft)(e)) { + return e; + } + var out = [e.right]; + for (var i = 1; i < as.length; i++) { + var e_1 = f(i, as[i]); + if ((0, exports.isLeft)(e_1)) { + return e_1; + } + out.push(e_1.right); + } + return (0, exports.right)(out); + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +exports.chainFirstW = exports.tap; +/** + * Use [`parse`](./Json.ts.html#parse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +function parseJSON(s, onError) { + return (0, exports.tryCatch)(function () { return JSON.parse(s); }, onError); +} +/** + * Use [`stringify`](./Json.ts.html#stringify) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var stringifyJSON = function (u, onError) { + return (0, exports.tryCatch)(function () { + var s = JSON.stringify(u); + if (typeof s !== 'string') { + throw new Error('Converting unsupported structure to JSON'); + } + return s; + }, onError); +}; +exports.stringifyJSON = stringifyJSON; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either` + * (where `E` is from `import E from 'fp-ts/Either'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.either = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + bimap: _bimap, + mapLeft: _mapLeft, + alt: _alt, + extend: _extend, + chainRec: _chainRec, + throwError: exports.throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplySemigroup = +/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplyMonoid = +/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.Applicative); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getValidationSemigroup = function (SE, SA) { + return (0, Apply_1.getApplySemigroup)((0, exports.getApplicativeValidation)(SE))(SA); +}; +exports.getValidationSemigroup = getValidationSemigroup; +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getValidationMonoid = function (SE, MA) { + return (0, Applicative_1.getApplicativeMonoid)((0, exports.getApplicativeValidation)(SE))(MA); +}; +exports.getValidationMonoid = getValidationMonoid; +/** + * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +function getValidation(SE) { + var ap = (0, exports.getApplicativeValidation)(SE).ap; + var alt = (0, exports.getAltValidation)(SE).alt; + return { + URI: exports.URI, + _E: undefined, + map: _map, + of: exports.of, + chain: exports.flatMap, + bimap: _bimap, + mapLeft: _mapLeft, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + extend: _extend, + traverse: _traverse, + sequence: exports.sequence, + chainRec: _chainRec, + throwError: exports.throwError, + ap: ap, + alt: alt + }; +} diff --git a/node_modules/fp-ts/lib/EitherT.d.ts b/node_modules/fp-ts/lib/EitherT.d.ts new file mode 100644 index 0000000..79314e9 --- /dev/null +++ b/node_modules/fp-ts/lib/EitherT.d.ts @@ -0,0 +1,669 @@ +/** + * The error monad transformer. It can be used to add error handling to other monads. + * + * The `of` function yields a successful computation, while `chain` sequences two subcomputations, failing on the first error. + * + * @since 2.0.0 + */ +import { ApplicativeComposition12, ApplicativeComposition22, ApplicativeCompositionHKT2 } from './Applicative' +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' +import * as E from './Either' +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' +import { Semigroup } from './Semigroup' +import Either = E.Either +/** + * @since 2.10.0 + */ +export declare function right<F extends URIS3>( + F: Pointed3<F> +): <A, R, FE, E = never>(a: A) => Kind3<F, R, FE, Either<E, A>> +export declare function right<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <A, R, E = never>(a: A) => Kind3<F, R, FE, Either<E, A>> +export declare function right<F extends URIS2>(F: Pointed2<F>): <A, FE, E = never>(a: A) => Kind2<F, FE, Either<E, A>> +export declare function right<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <A, E = never>(a: A) => Kind2<F, FE, Either<E, A>> +export declare function right<F extends URIS>(F: Pointed1<F>): <A, E = never>(a: A) => Kind<F, Either<E, A>> +export declare function right<F>(F: Pointed<F>): <A, E = never>(a: A) => HKT<F, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function left<F extends URIS3>( + F: Pointed3<F> +): <E, R, FE, A = never>(e: E) => Kind3<F, R, FE, Either<E, A>> +export declare function left<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <E, R, A = never>(e: E) => Kind3<F, R, FE, Either<E, A>> +export declare function left<F extends URIS2>(F: Pointed2<F>): <E, FE, A = never>(e: E) => Kind2<F, FE, Either<E, A>> +export declare function left<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <E, A = never>(e: E) => Kind2<F, FE, Either<E, A>> +export declare function left<F extends URIS>(F: Pointed1<F>): <E, A = never>(e: E) => Kind<F, Either<E, A>> +export declare function left<F>(F: Pointed<F>): <E, A = never>(e: E) => HKT<F, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function rightF<F extends URIS3>( + F: Functor3<F> +): <R, FE, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, Either<E, A>> +export declare function rightF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, Either<E, A>> +export declare function rightF<F extends URIS2>( + F: Functor2<F> +): <FE, A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, Either<E, A>> +export declare function rightF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, Either<E, A>> +export declare function rightF<F extends URIS>(F: Functor1<F>): <A, E = never>(fa: Kind<F, A>) => Kind<F, Either<E, A>> +export declare function rightF<F>(F: Functor<F>): <A, E = never>(fa: HKT<F, A>) => HKT<F, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function leftF<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, Either<E, A>> +export declare function leftF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, Either<E, A>> +export declare function leftF<F extends URIS2>( + F: Functor2<F> +): <FE, E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, Either<E, A>> +export declare function leftF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, Either<E, A>> +export declare function leftF<F extends URIS>(F: Functor1<F>): <E, A = never>(fe: Kind<F, E>) => Kind<F, Either<E, A>> +export declare function leftF<F>(F: Functor<F>): <E, A = never>(fe: HKT<F, E>) => HKT<F, Either<E, A>> +/** + * @since 2.12.0 + */ +export declare function fromNullable<F extends URIS3>( + F: Pointed3<F> +): <E>(e: E) => <A, S, R>(a: A) => Kind3<F, S, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS3, R>( + F: Pointed3C<F, R> +): <E>(e: E) => <A, S>(a: A) => Kind3<F, S, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS2>( + F: Pointed2<F> +): <E>(e: E) => <A, R>(a: A) => Kind2<F, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS2, R>( + F: Pointed2C<F, R> +): <E>(e: E) => <A>(a: A) => Kind2<F, R, Either<E, NonNullable<A>>> +export declare function fromNullable<F extends URIS>( + F: Pointed1<F> +): <E>(e: E) => <A>(a: A) => Kind<F, Either<E, NonNullable<A>>> +export declare function fromNullable<F>(F: Pointed<F>): <E>(e: E) => <A>(a: A) => HKT<F, Either<E, NonNullable<A>>> +/** + * @since 2.12.0 + */ +export declare function fromNullableK<F extends URIS3>( + F: Pointed3<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <S, R>(...a: A) => Kind3<F, S, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS3, R>( + F: Pointed3C<F, R> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <S>(...a: A) => Kind3<F, S, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS2>( + F: Pointed2<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R>(...a: A) => Kind2<F, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS2, R>( + F: Pointed2C<F, R> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind2<F, R, Either<E, NonNullable<B>>> +export declare function fromNullableK<F extends URIS>( + F: Pointed1<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind<F, Either<E, NonNullable<B>>> +export declare function fromNullableK<F>( + F: Pointed<F> +): <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => HKT<F, Either<E, NonNullable<B>>> +/** + * @since 2.12.0 + */ +export declare function chainNullableK<M extends URIS3>( + M: Monad3<M> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <S, R>(ma: Kind3<M, S, R, Either<E, A>>) => Kind3<M, S, R, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS3, R>( + M: Monad3C<M, R> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <S>(ma: Kind3<M, S, R, Either<E, A>>) => Kind3<M, S, R, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS2>( + M: Monad2<M> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <R>(ma: Kind2<M, R, Either<E, A>>) => Kind2<M, R, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS2, T>( + M: Monad2C<M, T> +): <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => (ma: Kind2<M, T, Either<E, A>>) => Kind2<M, T, Either<E, NonNullable<B>>> +export declare function chainNullableK<M extends URIS>( + M: Monad1<M> +): <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind<M, Either<E, A>>) => Kind<M, Either<E, NonNullable<B>>> +export declare function chainNullableK<M>( + M: Monad<M> +): <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: HKT<M, Either<E, A>>) => HKT<M, Either<E, NonNullable<B>>> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, FE, E>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<E, B>> +export declare function map<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<E, B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <FE, E>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<E, B>> +export declare function map<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<E, B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind<F, Either<E, A>>) => Kind<F, Either<E, B>> +export declare function map<F>( + F: Functor<F> +): <A, B>(f: (a: A) => B) => <E>(fa: HKT<F, Either<E, A>>) => HKT<F, Either<E, B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, FE, E, A>( + fa: Kind3<F, R, FE, Either<E, A>> +) => <B>(fab: Kind3<F, R, FE, Either<E, (a: A) => B>>) => Kind3<F, R, FE, Either<E, B>> +export declare function ap<F extends URIS3, FE>( + F: Apply3C<F, FE> +): <R, E, A>( + fa: Kind3<F, R, FE, Either<E, A>> +) => <B>(fab: Kind3<F, R, FE, Either<E, (a: A) => B>>) => Kind3<F, R, FE, Either<E, B>> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <FE, E, A>( + fa: Kind2<F, FE, Either<E, A>> +) => <B>(fab: Kind2<F, FE, Either<E, (a: A) => B>>) => Kind2<F, FE, Either<E, B>> +export declare function ap<F extends URIS2, FE>( + F: Apply2C<F, FE> +): <E, A>( + fa: Kind2<F, FE, Either<E, A>> +) => <B>(fab: Kind2<F, FE, Either<E, (a: A) => B>>) => Kind2<F, FE, Either<E, B>> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <E, A>(fa: Kind<F, Either<E, A>>) => <B>(fab: Kind<F, Either<E, (a: A) => B>>) => Kind<F, Either<E, B>> +export declare function ap<F>( + F: Apply<F> +): <E, A>(fa: HKT<F, Either<E, A>>) => <B>(fab: HKT<F, Either<E, (a: A) => B>>) => HKT<F, Either<E, B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS3>( + M: Monad3<M> +): <A, R, ME, E, B>( + f: (a: A) => Kind3<M, R, ME, Either<E, B>> +) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, B>> +export declare function chain<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <A, R, E, B>( + f: (a: A) => Kind3<M, R, ME, Either<E, B>> +) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, B>> +export declare function chain<M extends URIS2>( + M: Monad2<M> +): <A, ME, E, B>( + f: (a: A) => Kind2<M, ME, Either<E, B>> +) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, B>> +export declare function chain<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <A, E, B>(f: (a: A) => Kind2<M, ME, Either<E, B>>) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, B>> +export declare function chain<M extends URIS>( + M: Monad1<M> +): <A, E, B>(f: (a: A) => Kind<M, Either<E, B>>) => (ma: Kind<M, Either<E, A>>) => Kind<M, Either<E, B>> +export declare function chain<M>( + M: Monad<M> +): <A, E, B>(f: (a: A) => HKT<M, Either<E, B>>) => (ma: HKT<M, Either<E, A>>) => HKT<M, Either<E, B>> +/** + * @since 2.10.0 + */ +export declare function alt<M extends URIS3>( + M: Monad3<M> +): <R, ME, E, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function alt<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <R, E, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function alt<M extends URIS2>( + M: Monad2<M> +): <ME, E, A>( + second: LazyArg<Kind2<M, ME, Either<E, A>>> +) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function alt<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E, A>( + second: LazyArg<Kind2<M, ME, Either<E, A>>> +) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function alt<M extends URIS>( + M: Monad1<M> +): <E, A>(second: LazyArg<Kind<M, Either<E, A>>>) => (first: Kind<M, Either<E, A>>) => Kind<M, Either<E, A>> +export declare function alt<M>( + M: Monad<M> +): <E, A>(second: LazyArg<HKT<M, Either<E, A>>>) => (first: HKT<M, Either<E, A>>) => HKT<M, Either<E, A>> +/** + * @since 2.10.0 + */ +export declare function bimap<F extends URIS3>( + F: Functor3<F> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R, FE>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, B>> +export declare function bimap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, B>> +export declare function bimap<F extends URIS2>( + F: Functor2<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <FE>(self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, B>> +export declare function bimap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, B>> +export declare function bimap<F extends URIS>( + F: Functor1<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: Kind<F, Either<E, A>>) => Kind<F, Either<G, B>> +export declare function bimap<F>( + F: Functor<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: HKT<F, Either<E, A>>) => HKT<F, Either<G, B>> +/** + * @since 2.10.0 + */ +export declare function mapLeft<F extends URIS3>( + F: Functor3<F> +): <E, G>(f: (e: E) => G) => <R, FE, A>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, A>> +export declare function mapLeft<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G>(f: (e: E) => G) => <R, A>(self: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<G, A>> +export declare function mapLeft<F extends URIS2>( + F: Functor2<F> +): <E, G>(f: (e: E) => G) => <FE, A>(self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, A>> +export declare function mapLeft<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G>(f: (e: E) => G) => <A>(self: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<G, A>> +export declare function mapLeft<F extends URIS>( + F: Functor1<F> +): <E, G>(f: (e: E) => G) => <A>(self: Kind<F, Either<E, A>>) => Kind<F, Either<G, A>> +export declare function mapLeft<F>( + F: Functor<F> +): <E, G>(f: (e: E) => G) => <A>(self: HKT<F, Either<E, A>>) => HKT<F, Either<G, A>> +/** + * @category error handling + * @since 2.10.0 + */ +export declare function altValidation<M extends URIS3, E>( + M: Monad3<M>, + S: Semigroup<E> +): <R, ME, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function altValidation<M extends URIS3, ME, E>( + M: Monad3C<M, ME>, + S: Semigroup<E> +): <R, A>( + second: LazyArg<Kind3<M, R, ME, Either<E, A>>> +) => (first: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function altValidation<M extends URIS2, E>( + M: Monad2<M>, + S: Semigroup<E> +): <ME, A>( + second: LazyArg<Kind2<M, ME, Either<E, A>>> +) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function altValidation<M extends URIS2, ME, E>( + M: Monad2C<M, ME>, + S: Semigroup<E> +): <A>(second: LazyArg<Kind2<M, ME, Either<E, A>>>) => (first: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function altValidation<M extends URIS, E>( + M: Monad1<M>, + S: Semigroup<E> +): <A>(second: LazyArg<Kind<M, Either<E, A>>>) => (first: Kind<M, Either<E, A>>) => Kind<M, Either<E, A>> +export declare function altValidation<M, E>( + M: Monad<M>, + S: Semigroup<E> +): <A>(second: LazyArg<HKT<M, Either<E, A>>>) => (first: HKT<M, Either<E, A>>) => HKT<M, Either<E, A>> +/** + * @category pattern matching + * @since 2.11.0 + */ +export declare function match<F extends URIS3>( + F: Functor3<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B +) => <R, ME>(ma: Kind3<F, R, ME, Either<E, A>>) => Kind3<F, R, ME, B> +export declare function match<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => <R>(ma: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, B> +export declare function match<F extends URIS2>( + F: Functor2<F> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => <FE>(ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, B> +export declare function match<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, B> +export declare function match<F extends URIS>( + F: Functor1<F> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Kind<F, Either<E, A>>) => Kind<F, B> +export declare function match<F>( + F: Functor<F> +): <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: HKT<F, Either<E, A>>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function matchE<M extends URIS3>( + M: Chain3<M> +): <E, R, FE, B, A>( + onLeft: (e: E) => Kind3<M, R, FE, B>, + onRight: (a: A) => Kind3<M, R, FE, B> +) => (ma: Kind3<M, R, FE, Either<E, A>>) => Kind3<M, R, FE, B> +export declare function matchE<M extends URIS3, FE>( + M: Chain3C<M, FE> +): <E, R, B, A>( + onLeft: (e: E) => Kind3<M, R, FE, B>, + onRight: (a: A) => Kind3<M, R, FE, B> +) => (ma: Kind3<M, R, FE, Either<E, A>>) => Kind3<M, R, FE, B> +export declare function matchE<M extends URIS2>( + M: Chain2<M> +): <E, FE, B, A>( + onLeft: (e: E) => Kind2<M, FE, B>, + onRight: (a: A) => Kind2<M, FE, B> +) => (ma: Kind2<M, FE, Either<E, A>>) => Kind2<M, FE, B> +export declare function matchE<M extends URIS2, FE>( + M: Chain2C<M, FE> +): <E, B, A>( + onLeft: (e: E) => Kind2<M, FE, B>, + onRight: (a: A) => Kind2<M, FE, B> +) => (ma: Kind2<M, FE, Either<E, A>>) => Kind2<M, FE, B> +export declare function matchE<M extends URIS>( + M: Chain1<M> +): <E, B, A>(onLeft: (e: E) => Kind<M, B>, onRight: (a: A) => Kind<M, B>) => (ma: Kind<M, Either<E, A>>) => Kind<M, B> +export declare function matchE<M>( + M: Chain<M> +): <E, B, A>(onLeft: (e: E) => HKT<M, B>, onRight: (a: A) => HKT<M, B>) => (ma: HKT<M, Either<E, A>>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function getOrElse<M extends URIS3>( + M: Monad3<M> +): <E, R, ME, A>(onLeft: (e: E) => Kind3<M, R, ME, A>) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, A> +export declare function getOrElse<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E, R, A>(onLeft: (e: E) => Kind3<M, R, ME, A>) => (ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, A> +export declare function getOrElse<M extends URIS2>( + M: Monad2<M> +): <E, ME, A>(onLeft: (e: E) => Kind2<M, ME, A>) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, A> +export declare function getOrElse<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E, A>(onLeft: (e: E) => Kind2<M, ME, A>) => (ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, A> +export declare function getOrElse<M extends URIS>( + M: Monad1<M> +): <E, A>(onLeft: (e: E) => Kind<M, A>) => (ma: Kind<M, Either<E, A>>) => Kind<M, A> +export declare function getOrElse<M>( + M: Monad<M> +): <E, A>(onLeft: (e: E) => HKT<M, A>) => (ma: HKT<M, Either<E, A>>) => HKT<M, A> +/** + * @since 2.10.0 + */ +export declare function orElse<M extends URIS3>( + M: Monad3<M> +): <E1, R, ME, E2, A>( + onLeft: (e: E1) => Kind3<M, R, ME, Either<E2, A>> +) => (ma: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orElse<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E1, R, E2, A>( + onLeft: (e: E1) => Kind3<M, R, ME, Either<E2, A>> +) => (ma: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orElse<M extends URIS2>( + M: Monad2<M> +): <E1, ME, E2, A>( + onLeft: (e: E1) => Kind2<M, ME, Either<E2, A>> +) => (ma: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orElse<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E1, E2, A>( + onLeft: (e: E1) => Kind2<M, ME, Either<E2, A>> +) => (ma: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orElse<M extends URIS>( + M: Monad1<M> +): <E1, E2, A>(onLeft: (e: E1) => Kind<M, Either<E2, A>>) => (ma: Kind<M, Either<E1, A>>) => Kind<M, Either<E2, A>> +export declare function orElse<M>( + M: Monad<M> +): <E1, E2, A>(onLeft: (e: E1) => HKT<M, Either<E2, A>>) => (ma: HKT<M, Either<E1, A>>) => HKT<M, Either<E2, A>> +/** + * @category error handling + * @since 2.11.0 + */ +export declare function orElseFirst<M extends URIS3>( + M: Monad3<M> +): <E, R, ME, B>( + onLeft: (e: E) => Kind3<M, R, ME, Either<E, B>> +) => <A>(ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E, R, B>( + onLeft: (e: E) => Kind3<M, R, ME, Either<E, B>> +) => <A>(ma: Kind3<M, R, ME, Either<E, A>>) => Kind3<M, R, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS2>( + M: Monad2<M> +): <E, ME, B>( + onLeft: (e: E) => Kind2<M, ME, Either<E, B>> +) => <A>(ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E, B>( + onLeft: (e: E) => Kind2<M, ME, Either<E, B>> +) => <A>(ma: Kind2<M, ME, Either<E, A>>) => Kind2<M, ME, Either<E, A>> +export declare function orElseFirst<M extends URIS>( + M: Monad1<M> +): <E, B>(onLeft: (e: E) => Kind<M, Either<E, B>>) => <A>(ma: Kind<M, Either<E, A>>) => Kind<M, Either<E, A>> +export declare function orElseFirst<M>( + M: Monad<M> +): <E, B>(onLeft: (e: E) => HKT<M, Either<E, B>>) => <A>(ma: HKT<M, Either<E, A>>) => HKT<M, Either<E, A>> +/** + * @category error handling + * @since 2.11.0 + */ +export declare function orLeft<M extends URIS3>( + M: Monad3<M> +): <E1, R, ME, E2>( + onLeft: (e: E1) => Kind3<M, R, ME, E2> +) => <A>(fa: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orLeft<M extends URIS3, ME>( + M: Monad3C<M, ME> +): <E1, R, E2>( + onLeft: (e: E1) => Kind3<M, R, ME, E2> +) => <A>(fa: Kind3<M, R, ME, Either<E1, A>>) => Kind3<M, R, ME, Either<E2, A>> +export declare function orLeft<M extends URIS2>( + M: Monad2<M> +): <E1, ME, E2>( + onLeft: (e: E1) => Kind2<M, ME, E2> +) => <A>(fa: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orLeft<M extends URIS2, ME>( + M: Monad2C<M, ME> +): <E1, E2>(onLeft: (e: E1) => Kind2<M, ME, E2>) => <A>(fa: Kind2<M, ME, Either<E1, A>>) => Kind2<M, ME, Either<E2, A>> +export declare function orLeft<M extends URIS>( + M: Monad1<M> +): <E1, E2>(onLeft: (e: E1) => Kind<M, E2>) => <A>(fa: Kind<M, Either<E1, A>>) => Kind<M, Either<E2, A>> +export declare function orLeft<M>( + M: Monad<M> +): <E1, E2>(onLeft: (e: E1) => HKT<M, E2>) => <A>(fa: HKT<M, Either<E1, A>>) => HKT<M, Either<E2, A>> +/** + * @since 2.10.0 + */ +export declare function swap<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A>(ma: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<A, E>> +export declare function swap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A>(ma: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, Either<A, E>> +export declare function swap<F extends URIS2>( + F: Functor2<F> +): <FE, E, A>(ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<A, E>> +export declare function swap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(ma: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, Either<A, E>> +export declare function swap<F extends URIS>(F: Functor1<F>): <E, A>(ma: Kind<F, Either<E, A>>) => Kind<F, Either<A, E>> +export declare function swap<F>(F: Functor<F>): <E, A>(ma: HKT<F, Either<E, A>>) => HKT<F, Either<A, E>> +/** + * @since 2.10.0 + */ +export declare function toUnion<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, E | A> +export declare function toUnion<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A>(fa: Kind3<F, R, FE, Either<E, A>>) => Kind3<F, R, FE, E | A> +export declare function toUnion<F extends URIS2>( + F: Functor2<F> +): <FE, E, A>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, E | A> +export declare function toUnion<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(fa: Kind2<F, FE, Either<E, A>>) => Kind2<F, FE, E | A> +export declare function toUnion<F extends URIS>(F: Functor1<F>): <E, A>(fa: Kind<F, Either<E, A>>) => Kind<F, E | A> +export declare function toUnion<F>(F: Functor<F>): <E, A>(fa: HKT<F, Either<E, A>>) => HKT<F, E | A> +import URI = E.URI +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherT<M, E, A> extends HKT<M, Either<E, A>> {} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherM<M> extends ApplicativeCompositionHKT2<M, URI> { + readonly chain: <E, A, B>(ma: EitherT<M, E, A>, f: (a: A) => EitherT<M, E, B>) => EitherT<M, E, B> + readonly alt: <E, A>(fa: EitherT<M, E, A>, that: LazyArg<EitherT<M, E, A>>) => EitherT<M, E, A> + readonly bimap: <E, A, N, B>(ma: EitherT<M, E, A>, f: (e: E) => N, g: (a: A) => B) => EitherT<M, N, B> + readonly mapLeft: <E, A, N>(ma: EitherT<M, E, A>, f: (e: E) => N) => EitherT<M, N, A> + readonly fold: <E, A, R>(ma: EitherT<M, E, A>, onLeft: (e: E) => HKT<M, R>, onRight: (a: A) => HKT<M, R>) => HKT<M, R> + readonly getOrElse: <E, A>(ma: EitherT<M, E, A>, onLeft: (e: E) => HKT<M, A>) => HKT<M, A> + readonly orElse: <E, A, N>(ma: EitherT<M, E, A>, onLeft: (e: E) => EitherT<M, N, A>) => EitherT<M, N, A> + readonly swap: <E, A>(ma: EitherT<M, E, A>) => EitherT<M, A, E> + readonly rightM: <E, A>(ma: HKT<M, A>) => EitherT<M, E, A> + readonly leftM: <E, A>(me: HKT<M, E>) => EitherT<M, E, A> + readonly left: <E, A>(e: E) => EitherT<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type EitherT1<M extends URIS, E, A> = Kind<M, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherM1<M extends URIS> extends ApplicativeComposition12<M, URI> { + readonly chain: <E, A, B>(ma: EitherT1<M, E, A>, f: (a: A) => EitherT1<M, E, B>) => EitherT1<M, E, B> + readonly alt: <E, A>(fa: EitherT1<M, E, A>, that: LazyArg<EitherT1<M, E, A>>) => EitherT1<M, E, A> + readonly bimap: <E, A, N, B>(ma: EitherT1<M, E, A>, f: (e: E) => N, g: (a: A) => B) => EitherT1<M, N, B> + readonly mapLeft: <E, A, N>(ma: EitherT1<M, E, A>, f: (e: E) => N) => EitherT1<M, N, A> + readonly fold: <E, A, R>( + ma: EitherT1<M, E, A>, + onLeft: (e: E) => Kind<M, R>, + onRight: (a: A) => Kind<M, R> + ) => Kind<M, R> + readonly getOrElse: <E, A>(ma: EitherT1<M, E, A>, onLeft: (e: E) => Kind<M, A>) => Kind<M, A> + readonly orElse: <E, A, N>(ma: EitherT1<M, E, A>, onLeft: (e: E) => EitherT1<M, N, A>) => EitherT1<M, N, A> + readonly swap: <E, A>(ma: EitherT1<M, E, A>) => EitherT1<M, A, E> + readonly rightM: <E, A>(ma: Kind<M, A>) => EitherT1<M, E, A> + readonly leftM: <E, A>(me: Kind<M, E>) => EitherT1<M, E, A> + readonly left: <E, A>(e: E) => EitherT1<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type EitherT2<M extends URIS2, R, E, A> = Kind2<M, R, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface EitherM2<M extends URIS2> extends ApplicativeComposition22<M, URI> { + readonly chain: <R, E, A, B>(ma: EitherT2<M, R, E, A>, f: (a: A) => EitherT2<M, R, E, B>) => EitherT2<M, R, E, B> + readonly alt: <R, E, A>(fa: EitherT2<M, R, E, A>, that: LazyArg<EitherT2<M, R, E, A>>) => EitherT2<M, R, E, A> + readonly bimap: <R, E, A, N, B>(ma: EitherT2<M, R, E, A>, f: (e: E) => N, g: (a: A) => B) => EitherT2<M, R, N, B> + readonly mapLeft: <R, E, A, N>(ma: EitherT2<M, R, E, A>, f: (e: E) => N) => EitherT2<M, R, N, A> + readonly fold: <R, E, A, B>( + ma: EitherT2<M, R, E, A>, + onLeft: (e: E) => Kind2<M, R, B>, + onRight: (a: A) => Kind2<M, R, B> + ) => Kind2<M, R, B> + readonly getOrElse: <R, E, A>(ma: EitherT2<M, R, E, A>, onLeft: (e: E) => Kind2<M, R, A>) => Kind2<M, R, A> + readonly orElse: <R, E, A, F>( + ma: EitherT2<M, R, E, A>, + onLeft: (e: E) => EitherT2<M, R, F, A> + ) => EitherT2<M, R, F, A> + readonly swap: <R, E, A>(ma: EitherT2<M, R, E, A>) => EitherT2<M, R, A, E> + readonly rightM: <R, E, A>(ma: Kind2<M, R, A>) => EitherT2<M, R, E, A> + readonly leftM: <R, E, A>(me: Kind2<M, R, E>) => EitherT2<M, R, E, A> + readonly left: <R, E, A>(e: E) => EitherT2<M, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getEitherM<M extends URIS2>(M: Monad2<M>): EitherM2<M> +/** @deprecated */ +export declare function getEitherM<M extends URIS>(M: Monad1<M>): EitherM1<M> +/** @deprecated */ +export declare function getEitherM<M>(M: Monad<M>): EitherM<M> diff --git a/node_modules/fp-ts/lib/EitherT.js b/node_modules/fp-ts/lib/EitherT.js new file mode 100644 index 0000000..3590819 --- /dev/null +++ b/node_modules/fp-ts/lib/EitherT.js @@ -0,0 +1,189 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.right = right; +exports.left = left; +exports.rightF = rightF; +exports.leftF = leftF; +exports.fromNullable = fromNullable; +exports.fromNullableK = fromNullableK; +exports.chainNullableK = chainNullableK; +exports.map = map; +exports.ap = ap; +exports.chain = chain; +exports.flatMap = flatMap; +exports.alt = alt; +exports.bimap = bimap; +exports.mapBoth = mapBoth; +exports.mapLeft = mapLeft; +exports.mapError = mapError; +exports.altValidation = altValidation; +exports.match = match; +exports.matchE = matchE; +exports.getOrElse = getOrElse; +exports.orElse = orElse; +exports.orElseFirst = orElseFirst; +exports.tapError = tapError; +exports.orLeft = orLeft; +exports.swap = swap; +exports.toUnion = toUnion; +exports.getEitherM = getEitherM; +var Apply_1 = require("./Apply"); +var E = __importStar(require("./Either")); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +function right(F) { + return (0, function_1.flow)(E.right, F.of); +} +function left(F) { + return (0, function_1.flow)(E.left, F.of); +} +function rightF(F) { + return function (fa) { return F.map(fa, E.right); }; +} +function leftF(F) { + return function (fe) { return F.map(fe, E.left); }; +} +function fromNullable(F) { + return function (e) { return (0, function_1.flow)(E.fromNullable(e), F.of); }; +} +function fromNullableK(F) { + var fromNullableF = fromNullable(F); + return function (e) { + var fromNullableFE = fromNullableF(e); + return function (f) { return (0, function_1.flow)(f, fromNullableFE); }; + }; +} +function chainNullableK(M) { + var chainM = chain(M); + var fromNullableKM = fromNullableK(M); + return function (e) { + var fromNullableKMe = fromNullableKM(e); + return function (f) { return chainM(fromNullableKMe(f)); }; + }; +} +function map(F) { + return (0, Functor_1.map)(F, E.Functor); +} +function ap(F) { + return (0, Apply_1.ap)(F, E.Apply); +} +function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +function flatMap(M) { + return function (ma, f) { return M.chain(ma, function (e) { return (E.isLeft(e) ? M.of(e) : f(e.right)); }); }; +} +function alt(M) { + return function (second) { return function (first) { return M.chain(first, function (e) { return (E.isLeft(e) ? second() : M.of(e)); }); }; }; +} +function bimap(F) { + var mapBothF = mapBoth(F); + return function (f, g) { return function (self) { return mapBothF(self, f, g); }; }; +} +/** @internal */ +function mapBoth(F) { + return function (self, f, g) { return F.map(self, E.bimap(f, g)); }; +} +function mapLeft(F) { + var mapErrorF = mapError(F); + return function (f) { return function (self) { return mapErrorF(self, f); }; }; +} +/** @internal */ +function mapError(F) { + return function (self, f) { return F.map(self, E.mapLeft(f)); }; +} +function altValidation(M, S) { + return function (second) { return function (first) { + return M.chain(first, E.match(function (e1) { + return M.map(second(), E.mapLeft(function (e2) { return S.concat(e1, e2); })); + }, right(M))); + }; }; +} +function match(F) { + return function (onLeft, onRight) { return function (ma) { return F.map(ma, E.match(onLeft, onRight)); }; }; +} +function matchE(M) { + return function (onLeft, onRight) { return function (ma) { return M.chain(ma, E.match(onLeft, onRight)); }; }; +} +function getOrElse(M) { + return function (onLeft) { return function (ma) { return M.chain(ma, E.match(onLeft, M.of)); }; }; +} +function orElse(M) { + return function (onLeft) { return function (ma) { return M.chain(ma, function (e) { return (E.isLeft(e) ? onLeft(e.left) : M.of(e)); }); }; }; +} +function orElseFirst(M) { + var tapErrorM = tapError(M); + return function (onLeft) { return function (ma) { return tapErrorM(ma, onLeft); }; }; +} +/** @internal */ +function tapError(M) { + var orElseM = orElse(M); + return function (ma, onLeft) { + return (0, function_1.pipe)(ma, orElseM(function (e) { return M.map(onLeft(e), function (eb) { return (E.isLeft(eb) ? eb : E.left(e)); }); })); + }; +} +function orLeft(M) { + return function (onLeft) { return function (ma) { + return M.chain(ma, E.match(function (e) { return M.map(onLeft(e), E.left); }, function (a) { return M.of(E.right(a)); })); + }; }; +} +function swap(F) { + return function (ma) { return F.map(ma, E.swap); }; +} +function toUnion(F) { + return function (fa) { return F.map(fa, E.toUnion); }; +} +/** @deprecated */ +/* istanbul ignore next */ +function getEitherM(M) { + var _ap = ap(M); + var _map = map(M); + var _chain = chain(M); + var _alt = alt(M); + var _bimap = bimap(M); + var _mapLeft = mapLeft(M); + var _fold = matchE(M); + var _getOrElse = getOrElse(M); + var _orElse = orElse(M); + return { + map: function (fa, f) { return (0, function_1.pipe)(fa, _map(f)); }, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, _ap(fa)); }, + of: right(M), + chain: function (ma, f) { return (0, function_1.pipe)(ma, _chain(f)); }, + alt: function (fa, that) { return (0, function_1.pipe)(fa, _alt(that)); }, + bimap: function (fea, f, g) { return (0, function_1.pipe)(fea, _bimap(f, g)); }, + mapLeft: function (fea, f) { return (0, function_1.pipe)(fea, _mapLeft(f)); }, + fold: function (fa, onLeft, onRight) { return (0, function_1.pipe)(fa, _fold(onLeft, onRight)); }, + getOrElse: function (fa, onLeft) { return (0, function_1.pipe)(fa, _getOrElse(onLeft)); }, + orElse: function (fa, f) { return (0, function_1.pipe)(fa, _orElse(f)); }, + swap: swap(M), + rightM: rightF(M), + leftM: leftF(M), + left: left(M) + }; +} diff --git a/node_modules/fp-ts/lib/Endomorphism.d.ts b/node_modules/fp-ts/lib/Endomorphism.d.ts new file mode 100644 index 0000000..73dfee3 --- /dev/null +++ b/node_modules/fp-ts/lib/Endomorphism.d.ts @@ -0,0 +1,40 @@ +/** + * @since 2.11.0 + */ +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +/** + * @since 2.11.0 + */ +export interface Endomorphism<A> { + (a: A): A +} +/** + * @category type lambdas + * @since 2.11.0 + */ +export declare const URI = 'Endomorphism' +/** + * @category type lambdas + * @since 2.11.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Endomorphism<A> + } +} +/** + * Endomorphism form a `Semigroup` where the `concat` operation is the usual function composition. + * + * @category instances + * @since 2.11.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<Endomorphism<A>> +/** + * Endomorphism form a `Monoid` where the `empty` value is the `identity` function. + * + * @category instances + * @since 2.11.0 + */ +export declare const getMonoid: <A = never>() => Monoid<Endomorphism<A>> diff --git a/node_modules/fp-ts/lib/Endomorphism.js b/node_modules/fp-ts/lib/Endomorphism.js new file mode 100644 index 0000000..235ef96 --- /dev/null +++ b/node_modules/fp-ts/lib/Endomorphism.js @@ -0,0 +1,33 @@ +"use strict"; +/** + * @since 2.11.0 + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMonoid = exports.getSemigroup = exports.URI = void 0; +var function_1 = require("./function"); +/** + * @category type lambdas + * @since 2.11.0 + */ +exports.URI = 'Endomorphism'; +/** + * Endomorphism form a `Semigroup` where the `concat` operation is the usual function composition. + * + * @category instances + * @since 2.11.0 + */ +var getSemigroup = function () { return ({ + concat: function (first, second) { return (0, function_1.flow)(first, second); } +}); }; +exports.getSemigroup = getSemigroup; +/** + * Endomorphism form a `Monoid` where the `empty` value is the `identity` function. + * + * @category instances + * @since 2.11.0 + */ +var getMonoid = function () { return ({ + concat: (0, exports.getSemigroup)().concat, + empty: function_1.identity +}); }; +exports.getMonoid = getMonoid; diff --git a/node_modules/fp-ts/lib/Eq.d.ts b/node_modules/fp-ts/lib/Eq.d.ts new file mode 100644 index 0000000..97033e7 --- /dev/null +++ b/node_modules/fp-ts/lib/Eq.d.ts @@ -0,0 +1,206 @@ +/** + * The `Eq` type class represents types which support decidable equality. + * + * Instances must satisfy the following laws: + * + * 1. Reflexivity: `E.equals(a, a) === true` + * 2. Symmetry: `E.equals(a, b) === E.equals(b, a)` + * 3. Transitivity: if `E.equals(a, b) === true` and `E.equals(b, c) === true`, then `E.equals(a, c) === true` + * + * @since 2.0.0 + */ +import { Contravariant1 } from './Contravariant' +import { Monoid } from './Monoid' +import { ReadonlyRecord } from './ReadonlyRecord' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Eq<A> { + readonly equals: (x: A, y: A) => boolean +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const fromEquals: <A>(equals: Eq<A>['equals']) => Eq<A> +/** + * @since 2.10.0 + */ +export declare const struct: <A>(eqs: { [K in keyof A]: Eq<A[K]> }) => Eq<{ readonly [K in keyof A]: A[K] }> +/** + * Given a tuple of `Eq`s returns a `Eq` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Eq' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import * as B from 'fp-ts/boolean' + * + * const E = tuple(S.Eq, N.Eq, B.Eq) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true) + * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>(...eqs: { [K in keyof A]: Eq<A[K]> }) => Eq<Readonly<A>> +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for equality (meaning we have an `Eq<X>`) + * + * For example, given the following `User` type, we want to construct an `Eq<User>` that just looks at the `key` field + * for each user (since it's known to be unique). + * + * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq<UUID>`) and we know how to go from `User -> UUID`, + * using `contramap` we can do this + * + * @example + * import { contramap, Eq } from 'fp-ts/Eq' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/string' + * + * type UUID = string + * + * interface User { + * readonly key: UUID + * readonly firstName: string + * readonly lastName: string + * } + * + * const eqUUID: Eq<UUID> = S.Eq + * + * const eqUserByKey: Eq<User> = pipe( + * eqUUID, + * contramap((user) => user.key) + * ) + * + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k2', firstName: 'a1', lastName: 'b1' } + * ), + * false + * ) + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k1', firstName: 'a2', lastName: 'b1' } + * ), + * true + * ) + * + * @since 2.0.0 + */ +export declare const contramap: <A, B>(f: (b: B) => A) => (fa: Eq<A>) => Eq<B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Eq' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Eq<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare const eqStrict: Eq<unknown> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getSemigroup: <A>() => Semigroup<Eq<A>> +/** + * @category instances + * @since 2.6.0 + */ +export declare const getMonoid: <A>() => Monoid<Eq<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Contravariant: Contravariant1<URI> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleEq: <T extends ReadonlyArray<Eq<any>>>( + ...eqs: T +) => Eq<{ + [K in keyof T]: T[K] extends Eq<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructEq: <O extends ReadonlyRecord<string, any>>(eqs: { + [K in keyof O]: Eq<O[K]> +}) => Eq<O> +/** + * Use [`eqStrict`](#eqstrict) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const strictEqual: <A>(a: A, b: A) => boolean +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq` + * (where `E` is from `import E from 'fp-ts/Eq'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eq: Contravariant1<URI> +/** + * Use [`Eq`](./boolean.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqBoolean: Eq<boolean> +/** + * Use [`Eq`](./string.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqString: Eq<string> +/** + * Use [`Eq`](./number.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqNumber: Eq<number> +/** + * Use [`Eq`](./Date.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqDate: Eq<Date> diff --git a/node_modules/fp-ts/lib/Eq.js b/node_modules/fp-ts/lib/Eq.js new file mode 100644 index 0000000..cffbae2 --- /dev/null +++ b/node_modules/fp-ts/lib/Eq.js @@ -0,0 +1,223 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.eqDate = exports.eqNumber = exports.eqString = exports.eqBoolean = exports.eq = exports.strictEqual = exports.getStructEq = exports.getTupleEq = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.eqStrict = exports.URI = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0; +var function_1 = require("./function"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +var fromEquals = function (equals) { return ({ + equals: function (x, y) { return x === y || equals(x, y); } +}); }; +exports.fromEquals = fromEquals; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +var struct = function (eqs) { + return (0, exports.fromEquals)(function (first, second) { + for (var key in eqs) { + if (!eqs[key].equals(first[key], second[key])) { + return false; + } + } + return true; + }); +}; +exports.struct = struct; +/** + * Given a tuple of `Eq`s returns a `Eq` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Eq' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import * as B from 'fp-ts/boolean' + * + * const E = tuple(S.Eq, N.Eq, B.Eq) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true) + * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false) + * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false) + * + * @since 2.10.0 + */ +var tuple = function () { + var eqs = []; + for (var _i = 0; _i < arguments.length; _i++) { + eqs[_i] = arguments[_i]; + } + return (0, exports.fromEquals)(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); }); +}; +exports.tuple = tuple; +/* istanbul ignore next */ +var contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); }; +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for equality (meaning we have an `Eq<X>`) + * + * For example, given the following `User` type, we want to construct an `Eq<User>` that just looks at the `key` field + * for each user (since it's known to be unique). + * + * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq<UUID>`) and we know how to go from `User -> UUID`, + * using `contramap` we can do this + * + * @example + * import { contramap, Eq } from 'fp-ts/Eq' + * import { pipe } from 'fp-ts/function' + * import * as S from 'fp-ts/string' + * + * type UUID = string + * + * interface User { + * readonly key: UUID + * readonly firstName: string + * readonly lastName: string + * } + * + * const eqUUID: Eq<UUID> = S.Eq + * + * const eqUserByKey: Eq<User> = pipe( + * eqUUID, + * contramap((user) => user.key) + * ) + * + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k2', firstName: 'a1', lastName: 'b1' } + * ), + * false + * ) + * assert.deepStrictEqual( + * eqUserByKey.equals( + * { key: 'k1', firstName: 'a1', lastName: 'b1' }, + * { key: 'k1', firstName: 'a2', lastName: 'b1' } + * ), + * true + * ) + * + * @since 2.0.0 + */ +var contramap = function (f) { return function (fa) { + return (0, exports.fromEquals)(function (x, y) { return fa.equals(f(x), f(y)); }); +}; }; +exports.contramap = contramap; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Eq'; +/** + * @category instances + * @since 2.5.0 + */ +exports.eqStrict = { + equals: function (a, b) { return a === b; } +}; +var empty = { + equals: function () { return true; } +}; +/** + * @category instances + * @since 2.10.0 + */ +var getSemigroup = function () { return ({ + concat: function (x, y) { return (0, exports.fromEquals)(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); } +}); }; +exports.getSemigroup = getSemigroup; +/** + * @category instances + * @since 2.6.0 + */ +var getMonoid = function () { return ({ + concat: (0, exports.getSemigroup)().concat, + empty: empty +}); }; +exports.getMonoid = getMonoid; +/** + * @category instances + * @since 2.7.0 + */ +exports.Contravariant = { + URI: exports.URI, + contramap: contramap_ +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getTupleEq = exports.tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getStructEq = exports.struct; +/** + * Use [`eqStrict`](#eqstrict) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.strictEqual = exports.eqStrict.equals; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq` + * (where `E` is from `import E from 'fp-ts/Eq'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.eq = exports.Contravariant; +/** + * Use [`Eq`](./boolean.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.eqBoolean = exports.eqStrict; +/** + * Use [`Eq`](./string.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.eqString = exports.eqStrict; +/** + * Use [`Eq`](./number.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.eqNumber = exports.eqStrict; +/** + * Use [`Eq`](./Date.ts.html#eq) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.eqDate = { + equals: function (first, second) { return first.valueOf() === second.valueOf(); } +}; diff --git a/node_modules/fp-ts/lib/Extend.d.ts b/node_modules/fp-ts/lib/Extend.d.ts new file mode 100644 index 0000000..13fa782 --- /dev/null +++ b/node_modules/fp-ts/lib/Extend.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.0.0 + */ +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Extend<W> extends Functor<W> { + readonly extend: <A, B>(wa: HKT<W, A>, f: (wa: HKT<W, A>) => B) => HKT<W, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend1<W extends URIS> extends Functor1<W> { + readonly extend: <A, B>(wa: Kind<W, A>, f: (wa: Kind<W, A>) => B) => Kind<W, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend2<W extends URIS2> extends Functor2<W> { + readonly extend: <E, A, B>(wa: Kind2<W, E, A>, f: (wa: Kind2<W, E, A>) => B) => Kind2<W, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend2C<W extends URIS2, E> extends Functor2C<W, E> { + readonly extend: <A, B>(wa: Kind2<W, E, A>, f: (wa: Kind2<W, E, A>) => B) => Kind2<W, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend3<W extends URIS3> extends Functor3<W> { + readonly extend: <R, E, A, B>(wa: Kind3<W, R, E, A>, f: (wa: Kind3<W, R, E, A>) => B) => Kind3<W, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Extend3C<W extends URIS3, E> extends Functor3C<W, E> { + readonly extend: <R, A, B>(wa: Kind3<W, R, E, A>, f: (wa: Kind3<W, R, E, A>) => B) => Kind3<W, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Extend4<W extends URIS4> extends Functor4<W> { + readonly extend: <S, R, E, A, B>(wa: Kind4<W, S, R, E, A>, f: (wa: Kind4<W, S, R, E, A>) => B) => Kind4<W, S, R, E, B> +} diff --git a/node_modules/fp-ts/lib/Extend.js b/node_modules/fp-ts/lib/Extend.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Extend.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Field.d.ts b/node_modules/fp-ts/lib/Field.d.ts new file mode 100644 index 0000000..a440474 --- /dev/null +++ b/node_modules/fp-ts/lib/Field.d.ts @@ -0,0 +1,36 @@ +/** + * Adapted from https://github.com/purescript/purescript-prelude/blob/master/src/Data/Field.purs + * + * @since 2.0.0 + */ +import { Eq } from './Eq' +import { Ring } from './Ring' +/** + * @category model + * @since 2.0.0 + */ +export interface Field<A> extends Ring<A> { + readonly degree: (a: A) => number + readonly div: (x: A, y: A) => A + readonly mod: (x: A, y: A) => A +} +/** + * The *greatest common divisor* of two values + * + * @since 2.0.0 + */ +export declare function gcd<A>(E: Eq<A>, field: Field<A>): (x: A, y: A) => A +/** + * The *least common multiple* of two values + * + * @since 2.0.0 + */ +export declare function lcm<A>(E: Eq<A>, F: Field<A>): (x: A, y: A) => A +/** + * Use [`Field`](./number.ts.html#field) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const fieldNumber: Field<number> diff --git a/node_modules/fp-ts/lib/Field.js b/node_modules/fp-ts/lib/Field.js new file mode 100644 index 0000000..1c3ce31 --- /dev/null +++ b/node_modules/fp-ts/lib/Field.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fieldNumber = void 0; +exports.gcd = gcd; +exports.lcm = lcm; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * The *greatest common divisor* of two values + * + * @since 2.0.0 + */ +function gcd(E, field) { + var zero = field.zero; + var f = function (x, y) { return (E.equals(y, zero) ? x : f(y, field.mod(x, y))); }; + return f; +} +/** + * The *least common multiple* of two values + * + * @since 2.0.0 + */ +function lcm(E, F) { + var zero = F.zero; + var gcdSF = gcd(E, F); + return function (x, y) { return (E.equals(x, zero) || E.equals(y, zero) ? zero : F.div(F.mul(x, y), gcdSF(x, y))); }; +} +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Field`](./number.ts.html#field) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.fieldNumber = { + add: function (x, y) { return x + y; }, + zero: 0, + mul: function (x, y) { return x * y; }, + one: 1, + sub: function (x, y) { return x - y; }, + degree: function (_) { return 1; }, + div: function (x, y) { return x / y; }, + mod: function (x, y) { return x % y; } +}; diff --git a/node_modules/fp-ts/lib/Filterable.d.ts b/node_modules/fp-ts/lib/Filterable.d.ts new file mode 100644 index 0000000..b8ca7d3 --- /dev/null +++ b/node_modules/fp-ts/lib/Filterable.d.ts @@ -0,0 +1,628 @@ +/** + * `Filterable` represents data structures which can be _partitioned_/_filtered_. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs + * + * @since 2.0.0 + */ +import { + Compactable, + Compactable1, + Compactable2, + Compactable2C, + Compactable3, + Compactable3C, + Compactable4, + CompactableComposition, + CompactableComposition11, + CompactableComposition12, + CompactableComposition12C, + CompactableComposition21, + CompactableComposition22, + CompactableComposition23 +} from './Compactable' +import { Either } from './Either' +import { + Functor, + Functor1, + Functor2, + Functor2C, + Functor3, + Functor3C, + Functor4, + FunctorComposition, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition23 +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Separated } from './Separated' +/** + * @since 2.0.0 + */ +export interface Filter<F> { + <A, B extends A>(fa: HKT<F, A>, refinement: Refinement<A, B>): HKT<F, B> + <A>(fa: HKT<F, A>, predicate: Predicate<A>): HKT<F, A> +} +/** + * @since 2.0.0 + */ +export interface Partition<F> { + <A, B extends A>(fa: HKT<F, A>, refinement: Refinement<A, B>): Separated<HKT<F, A>, HKT<F, B>> + <A>(fa: HKT<F, A>, predicate: Predicate<A>): Separated<HKT<F, A>, HKT<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable<F> extends Functor<F>, Compactable<F> { + /** + * Partition a data structure based on an either predicate. + */ + readonly partitionMap: <A, B, C>(fa: HKT<F, A>, f: (a: A) => Either<B, C>) => Separated<HKT<F, B>, HKT<F, C>> + /** + * Partition a data structure based on a boolean predicate. + */ + readonly partition: Partition<F> + /** + * Map over a data structure and filter based on an option predicate. + */ + readonly filterMap: <A, B>(fa: HKT<F, A>, f: (a: A) => Option<B>) => HKT<F, B> + /** + * Filter a data structure based on a boolean predicate. + */ + readonly filter: Filter<F> +} +/** + * @since 2.0.0 + */ +export interface Filter1<F extends URIS> { + <A, B extends A>(fa: Kind<F, A>, refinement: Refinement<A, B>): Kind<F, B> + <A>(fa: Kind<F, A>, predicate: Predicate<A>): Kind<F, A> +} +/** + * @since 2.0.0 + */ +export interface Partition1<F extends URIS> { + <A, B extends A>(fa: Kind<F, A>, refinement: Refinement<A, B>): Separated<Kind<F, A>, Kind<F, B>> + <A>(fa: Kind<F, A>, predicate: Predicate<A>): Separated<Kind<F, A>, Kind<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable1<F extends URIS> extends Functor1<F>, Compactable1<F> { + readonly partitionMap: <A, B, C>(fa: Kind<F, A>, f: (a: A) => Either<B, C>) => Separated<Kind<F, B>, Kind<F, C>> + readonly partition: Partition1<F> + readonly filterMap: <A, B>(fa: Kind<F, A>, f: (a: A) => Option<B>) => Kind<F, B> + readonly filter: Filter1<F> +} +/** + * @since 2.0.0 + */ +export interface Filter2<F extends URIS2> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Kind2<F, E, B> + <E, A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition2<F extends URIS2> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <E, A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable2<F extends URIS2> extends Functor2<F>, Compactable2<F> { + readonly partitionMap: <E, A, B, C>( + fa: Kind2<F, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partition: Partition2<F> + readonly filterMap: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => Option<B>) => Kind2<F, E, B> + readonly filter: Filter2<F> +} +/** + * @since 2.0.0 + */ +export interface Filter2C<F extends URIS2, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Kind2<F, E, B> + <A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition2C<F extends URIS2, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinement: Refinement<A, B>): Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(fa: Kind2<F, E, A>, predicate: Predicate<A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable2C<F extends URIS2, E> extends Functor2C<F, E>, Compactable2C<F, E> { + readonly partitionMap: <A, B, C>( + fa: Kind2<F, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partition: Partition2C<F, E> + readonly filterMap: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => Option<B>) => Kind2<F, E, B> + readonly filter: Filter2C<F, E> +} +/** + * @since 2.0.0 + */ +export interface Filter3<F extends URIS3> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Kind3<F, R, E, B> + <R, E, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Kind3<F, R, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition3<F extends URIS3> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, E, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable3<F extends URIS3> extends Functor3<F>, Compactable3<F> { + readonly partitionMap: <R, E, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partition: Partition3<F> + readonly filterMap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filter: Filter3<F> +} +/** + * @since 2.2.0 + */ +export interface Filter3C<F extends URIS3, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Kind3<F, R, E, B> + <R, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + */ +export interface Partition3C<F extends URIS3, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinement: Refinement<A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, A>(fa: Kind3<F, R, E, A>, predicate: Predicate<A>): Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Filterable3C<F extends URIS3, E> extends Functor3C<F, E>, Compactable3C<F, E> { + readonly partitionMap: <R, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partition: Partition3C<F, E> + readonly filterMap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filter: Filter3C<F, E> +} +/** + * @since 2.0.0 + */ +export interface Filter4<F extends URIS4> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinement: Refinement<A, B>): Kind4<F, S, R, E, B> + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicate: Predicate<A>): Kind4<F, S, R, E, A> +} +/** + * @since 2.0.0 + */ +export interface Partition4<F extends URIS4> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinement: Refinement<A, B>): Separated< + Kind4<F, S, R, E, A>, + Kind4<F, S, R, E, B> + > + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicate: Predicate<A>): Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Filterable4<F extends URIS4> extends Functor4<F>, Compactable4<F> { + readonly partitionMap: <S, R, E, A, B, C>( + fa: Kind4<F, S, R, E, A>, + f: (a: A) => Either<B, C> + ) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> + readonly partition: Partition4<F> + readonly filterMap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => Option<B>) => Kind4<F, S, R, E, B> + readonly filter: Filter4<F> +} +/** + * `filter` composition. + * + * @since 2.10.0 + */ +export declare function filter<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>(fga: Kind2<F, R, Kind2<G, E, A>>) => Kind2<F, R, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): <R, B extends A>(fgb: Kind2<F, R, Kind2<G, E, B>>) => Kind2<F, R, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): <R>(fga: Kind2<F, R, Kind2<G, E, A>>) => Kind2<F, R, Kind2<G, E, A>> +} +export declare function filter<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: Kind<F, Kind2<G, E, B>>) => Kind<F, Kind2<G, E, B>> + <A>(predicate: Predicate<A>): (fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, A>> +} +export declare function filter<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: Kind<F, Kind<G, B>>) => Kind<F, Kind<G, B>> + <A>(predicate: Predicate<A>): (fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, A>> +} +export declare function filter<F, G>( + F: Functor<F>, + G: Filterable<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: HKT<F, HKT<G, B>>) => HKT<F, HKT<G, B>> + <A>(predicate: Predicate<A>): (fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, A>> +} +/** + * `filterMap` composition. + * + * @since 2.10.0 + */ +export declare function filterMap<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): <A, B>(f: (a: A) => Option<B>) => <FE>(fga: Kind2<F, FE, Kind2<G, E, A>>) => Kind2<F, FE, Kind2<G, E, B>> +export declare function filterMap<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): <A, B>(f: (a: A) => Option<B>) => (fga: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> +export declare function filterMap<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): <A, B>(f: (a: A) => Option<B>) => (fga: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +export declare function filterMap<F, G>( + F: Functor<F>, + G: Filterable<G> +): <A, B>(f: (a: A) => Option<B>) => (fga: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +/** + * `partition` composition. + * + * @since 2.10.0 + */ +export declare function partition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>( + fga: Kind2<F, R, Kind2<G, E, A>> + ) => Separated<Kind2<F, R, Kind2<G, E, A>>, Kind2<F, R, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): <R, B extends A>( + fgb: Kind2<F, R, Kind2<G, E, B>> + ) => Separated<Kind2<F, R, Kind2<G, E, B>>, Kind2<F, R, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): <R>( + fga: Kind2<F, R, Kind2<G, E, A>> + ) => Separated<Kind2<F, R, Kind2<G, E, A>>, Kind2<F, R, Kind2<G, E, A>>> +} +export declare function partition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): ( + fga: Kind<F, Kind2<G, E, A>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): <B extends A>( + fgb: Kind<F, Kind2<G, E, B>> + ) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, B>>> + <A>(predicate: Predicate<A>): ( + fga: Kind<F, Kind2<G, E, A>> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, A>>> +} +export declare function partition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): ( + fga: Kind<F, Kind<G, A>> + ) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, B>>> + <A>(predicate: Predicate<A>): <B extends A>( + fgb: Kind<F, Kind<G, B>> + ) => Separated<Kind<F, Kind<G, B>>, Kind<F, Kind<G, B>>> + <A>(predicate: Predicate<A>): (fga: Kind<F, Kind<G, A>>) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, A>>> +} +export declare function partition<F, G>( + F: Functor<F>, + G: Filterable<G> +): { + <A, B extends A>(refinement: Refinement<A, B>): ( + fga: HKT<F, HKT<G, A>> + ) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, B>>> + <A>(predicate: Predicate<A>): <B extends A>(fgb: HKT<F, HKT<G, B>>) => Separated<HKT<F, HKT<G, B>>, HKT<F, HKT<G, B>>> + <A>(predicate: Predicate<A>): (fga: HKT<F, HKT<G, A>>) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, A>>> +} +/** + * `partitionMap` composition. + * + * @since 2.10.0 + */ +export declare function partitionMap<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => <FE>(fa: Kind2<F, FE, Kind2<G, E, A>>) => Separated<Kind2<F, FE, Kind2<G, E, B>>, Kind2<F, FE, Kind2<G, E, C>>> +export declare function partitionMap<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Kind<F, Kind2<G, E, A>>) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, C>>> +export declare function partitionMap<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Kind<F, Kind<G, A>>) => Separated<Kind<F, Kind<G, B>>, Kind<F, Kind<G, C>>> +export declare function partitionMap<F, G>( + F: Functor<F>, + G: Filterable<G> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: HKT<F, HKT<G, A>>) => Separated<HKT<F, HKT<G, B>>, HKT<F, HKT<G, C>>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition<F, G> extends FunctorComposition<F, G>, CompactableComposition<F, G> { + readonly partitionMap: <A, B, C>( + fa: HKT<F, HKT<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<HKT<F, HKT<G, B>>, HKT<F, HKT<G, C>>> + readonly partition: <A>( + fa: HKT<F, HKT<G, A>>, + predicate: Predicate<A> + ) => Separated<HKT<F, HKT<G, A>>, HKT<F, HKT<G, A>>> + readonly filterMap: <A, B>(fa: HKT<F, HKT<G, A>>, f: (a: A) => Option<B>) => HKT<F, HKT<G, B>> + readonly filter: <A>(fa: HKT<F, HKT<G, A>>, predicate: Predicate<A>) => HKT<F, HKT<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition11<F extends URIS, G extends URIS> + extends FunctorComposition11<F, G>, + CompactableComposition11<F, G> { + readonly partitionMap: <A, B, C>( + fa: Kind<F, Kind<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind<F, Kind<G, B>>, Kind<F, Kind<G, C>>> + readonly partition: <A>( + fa: Kind<F, Kind<G, A>>, + predicate: Predicate<A> + ) => Separated<Kind<F, Kind<G, A>>, Kind<F, Kind<G, A>>> + readonly filterMap: <A, B>(fa: Kind<F, Kind<G, A>>, f: (a: A) => Option<B>) => Kind<F, Kind<G, B>> + readonly filter: <A>(fa: Kind<F, Kind<G, A>>, predicate: Predicate<A>) => Kind<F, Kind<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition12<F extends URIS, G extends URIS2> + extends FunctorComposition12<F, G>, + CompactableComposition12<F, G> { + readonly partitionMap: <E, A, B, C>( + fa: Kind<F, Kind2<G, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, C>>> + readonly partition: <E, A>( + fa: Kind<F, Kind2<G, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, A>>> + readonly filterMap: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => Option<B>) => Kind<F, Kind2<G, E, B>> + readonly filter: <E, A>(fa: Kind<F, Kind2<G, E, A>>, predicate: Predicate<A>) => Kind<F, Kind2<G, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition12C<F extends URIS, G extends URIS2, E> + extends FunctorComposition12C<F, G, E>, + CompactableComposition12C<F, G, E> { + readonly partitionMap: <A, B, C>( + fa: Kind<F, Kind2<G, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind<F, Kind2<G, E, B>>, Kind<F, Kind2<G, E, C>>> + readonly partition: <A>( + fa: Kind<F, Kind2<G, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind<F, Kind2<G, E, A>>, Kind<F, Kind2<G, E, A>>> + readonly filterMap: <A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => Option<B>) => Kind<F, Kind2<G, E, B>> + readonly filter: <A>(fa: Kind<F, Kind2<G, E, A>>, predicate: Predicate<A>) => Kind<F, Kind2<G, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition21<F extends URIS2, G extends URIS> + extends FunctorComposition21<F, G>, + CompactableComposition21<F, G> { + readonly partitionMap: <E, A, B, C>( + fa: Kind2<F, E, Kind<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, Kind<G, B>>, Kind2<F, E, Kind<G, C>>> + readonly partition: <E, A>( + fa: Kind2<F, E, Kind<G, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, E, Kind<G, A>>, Kind2<F, E, Kind<G, A>>> + readonly filterMap: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => Option<B>) => Kind2<F, E, Kind<G, B>> + readonly filter: <E, A>(fa: Kind2<F, E, Kind<G, A>>, predicate: Predicate<A>) => Kind2<F, E, Kind<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition2C1<F extends URIS2, G extends URIS, E> + extends FunctorComposition21<F, G>, + CompactableComposition21<F, G> { + readonly partitionMap: <A, B, C>( + fa: Kind2<F, E, Kind<G, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, E, Kind<G, B>>, Kind2<F, E, Kind<G, C>>> + readonly partition: <A>( + fa: Kind2<F, E, Kind<G, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, E, Kind<G, A>>, Kind2<F, E, Kind<G, A>>> + readonly filterMap: <A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => Option<B>) => Kind2<F, E, Kind<G, B>> + readonly filter: <A>(fa: Kind2<F, E, Kind<G, A>>, predicate: Predicate<A>) => Kind2<F, E, Kind<G, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition22<F extends URIS2, G extends URIS2> + extends FunctorComposition22<F, G>, + CompactableComposition22<F, G> { + readonly partitionMap: <FE, GE, A, B, C>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, FE, Kind2<G, GE, B>>, Kind2<F, FE, Kind2<G, GE, C>>> + readonly partition: <FE, GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, FE, Kind2<G, GE, A>>, Kind2<F, FE, Kind2<G, GE, A>>> + readonly filterMap: <FE, GE, A, B>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + f: (a: A) => Option<B> + ) => Kind2<F, FE, Kind2<G, GE, B>> + readonly filter: <FE, GE, A>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + predicate: Predicate<A> + ) => Kind2<F, FE, Kind2<G, GE, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FilterableComposition22C<F extends URIS2, G extends URIS2, E> + extends FunctorComposition22<F, G>, + CompactableComposition22<F, G> { + readonly partitionMap: <FE, A, B, C>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, FE, Kind2<G, E, B>>, Kind2<F, FE, Kind2<G, E, C>>> + readonly partition: <FE, A>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, FE, Kind2<G, E, A>>, Kind2<F, FE, Kind2<G, E, A>>> + readonly filterMap: <FE, A, B>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + f: (a: A) => Option<B> + ) => Kind2<F, FE, Kind2<G, E, B>> + readonly filter: <FE, A>(fa: Kind2<F, FE, Kind2<G, E, A>>, predicate: Predicate<A>) => Kind2<F, FE, Kind2<G, E, A>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface FilterableComposition23C<F extends URIS2, G extends URIS3, E> + extends FunctorComposition23<F, G>, + CompactableComposition23<F, G> { + readonly partitionMap: <R, FE, A, B, C>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + f: (a: A) => Either<B, C> + ) => Separated<Kind2<F, FE, Kind3<G, R, E, B>>, Kind2<F, FE, Kind3<G, R, E, C>>> + readonly partition: <R, FE, A>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + predicate: Predicate<A> + ) => Separated<Kind2<F, FE, Kind3<G, R, E, A>>, Kind2<F, FE, Kind3<G, R, E, A>>> + readonly filterMap: <R, FE, A, B>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + f: (a: A) => Option<B> + ) => Kind2<F, FE, Kind3<G, R, E, B>> + readonly filter: <R, FE, A>( + fa: Kind2<F, FE, Kind3<G, R, E, A>>, + predicate: Predicate<A> + ) => Kind2<F, FE, Kind3<G, R, E, A>> +} +/** + * Use + * + * - [`filter`](#filter) + * - [`filterMap`](#filtermap) + * - [`partition`](#partition) + * - [`partitionMap`](#partitionmap) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS3, E>( + F: Functor2<F>, + G: Filterable3C<G, E> +): FilterableComposition23C<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Filterable2C<G, E> +): FilterableComposition22C<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Filterable2<G> +): FilterableComposition22<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS, E>( + F: Functor2C<F, E>, + G: Filterable1<G> +): FilterableComposition2C1<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Filterable1<G> +): FilterableComposition21<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Filterable2C<G, E> +): FilterableComposition12C<F, G, E> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Filterable2<G> +): FilterableComposition12<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Filterable1<G> +): FilterableComposition11<F, G> +/** @deprecated */ +export declare function getFilterableComposition<F, G>(F: Functor<F>, G: Filterable<G>): FilterableComposition<F, G> diff --git a/node_modules/fp-ts/lib/Filterable.js b/node_modules/fp-ts/lib/Filterable.js new file mode 100644 index 0000000..2e998db --- /dev/null +++ b/node_modules/fp-ts/lib/Filterable.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.filter = filter; +exports.filterMap = filterMap; +exports.partition = partition; +exports.partitionMap = partitionMap; +exports.getFilterableComposition = getFilterableComposition; +/** + * `Filterable` represents data structures which can be _partitioned_/_filtered_. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs + * + * @since 2.0.0 + */ +var Compactable_1 = require("./Compactable"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var Option_1 = require("./Option"); +var Predicate_1 = require("./Predicate"); +var Separated_1 = require("./Separated"); +function filter(F, G) { + return function (predicate) { return function (fga) { return F.map(fga, function (ga) { return G.filter(ga, predicate); }); }; }; +} +function filterMap(F, G) { + return function (f) { return function (fga) { return F.map(fga, function (ga) { return G.filterMap(ga, f); }); }; }; +} +function partition(F, G) { + var _filter = filter(F, G); + return function (predicate) { + var left = _filter((0, Predicate_1.not)(predicate)); + var right = _filter(predicate); + return function (fgb) { return (0, Separated_1.separated)(left(fgb), right(fgb)); }; + }; +} +function partitionMap(F, G) { + var _filterMap = filterMap(F, G); + return function (f) { return function (fga) { + return (0, Separated_1.separated)((0, function_1.pipe)(fga, _filterMap(function (a) { return (0, Option_1.getLeft)(f(a)); })), (0, function_1.pipe)(fga, _filterMap(function (a) { return (0, Option_1.getRight)(f(a)); }))); + }; }; +} +/** @deprecated */ +function getFilterableComposition(F, G) { + var map = (0, Functor_1.getFunctorComposition)(F, G).map; + var _compact = (0, Compactable_1.compact)(F, G); + var _separate = (0, Compactable_1.separate)(F, G, G); + var _filter = filter(F, G); + var _filterMap = filterMap(F, G); + var _partition = partition(F, G); + var _partitionMap = partitionMap(F, G); + return { + map: map, + compact: _compact, + separate: _separate, + filter: function (fga, f) { return (0, function_1.pipe)(fga, _filter(f)); }, + filterMap: function (fga, f) { return (0, function_1.pipe)(fga, _filterMap(f)); }, + partition: function (fga, p) { return (0, function_1.pipe)(fga, _partition(p)); }, + partitionMap: function (fga, f) { return (0, function_1.pipe)(fga, _partitionMap(f)); } + }; +} diff --git a/node_modules/fp-ts/lib/FilterableWithIndex.d.ts b/node_modules/fp-ts/lib/FilterableWithIndex.d.ts new file mode 100644 index 0000000..edb9b18 --- /dev/null +++ b/node_modules/fp-ts/lib/FilterableWithIndex.d.ts @@ -0,0 +1,255 @@ +/** + * @since 2.0.0 + */ +import { Either } from './Either' +import { + Filterable, + Filterable1, + Filterable2, + Filterable2C, + Filterable3, + Filterable3C, + Filterable4 +} from './Filterable' +import { + FunctorWithIndex, + FunctorWithIndex1, + FunctorWithIndex2, + FunctorWithIndex2C, + FunctorWithIndex3, + FunctorWithIndex3C, + FunctorWithIndex4 +} from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import { Separated } from './Separated' +/** + * @since 2.0.0 + */ +export type RefinementWithIndex<I, A, B extends A> = (i: I, a: A) => a is B +/** + * @since 2.0.0 + */ +export type PredicateWithIndex<I, A> = (i: I, a: A) => boolean +/** + * @since 2.0.0 + */ +export interface FilterWithIndex<F, I> { + <A, B extends A>(fa: HKT<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): HKT<F, B> + <A>(fa: HKT<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): HKT<F, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex<F, I> { + <A, B extends A>(fa: HKT<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated<HKT<F, A>, HKT<F, B>> + <A>(fa: HKT<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<HKT<F, A>, HKT<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex<F, I> extends FunctorWithIndex<F, I>, Filterable<F> { + readonly partitionMapWithIndex: <A, B, C>( + fa: HKT<F, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<HKT<F, B>, HKT<F, C>> + readonly partitionWithIndex: PartitionWithIndex<F, I> + readonly filterMapWithIndex: <A, B>(fa: HKT<F, A>, f: (i: I, a: A) => Option<B>) => HKT<F, B> + readonly filterWithIndex: FilterWithIndex<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex1<F extends URIS, I> { + <A, B extends A>(fa: Kind<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind<F, B> + <A>(fa: Kind<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind<F, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex1<F extends URIS, I> { + <A, B extends A>(fa: Kind<F, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated<Kind<F, A>, Kind<F, B>> + <A>(fa: Kind<F, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<Kind<F, A>, Kind<F, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex1<F extends URIS, I> extends FunctorWithIndex1<F, I>, Filterable1<F> { + readonly partitionMapWithIndex: <A, B, C>( + fa: Kind<F, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind<F, B>, Kind<F, C>> + readonly partitionWithIndex: PartitionWithIndex1<F, I> + readonly filterMapWithIndex: <A, B>(fa: Kind<F, A>, f: (i: I, a: A) => Option<B>) => Kind<F, B> + readonly filterWithIndex: FilterWithIndex1<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex2<F extends URIS2, I> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind2<F, E, B> + <E, A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex2<F extends URIS2, I> { + <E, A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind2<F, E, A>, + Kind2<F, E, B> + > + <E, A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex2<F extends URIS2, I> extends FunctorWithIndex2<F, I>, Filterable2<F> { + readonly partitionMapWithIndex: <E, A, B, C>( + fa: Kind2<F, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partitionWithIndex: PartitionWithIndex2<F, I> + readonly filterMapWithIndex: <E, A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => Option<B>) => Kind2<F, E, B> + readonly filterWithIndex: FilterWithIndex2<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex2C<F extends URIS2, I, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind2<F, E, B> + <A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind2<F, E, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex2C<F extends URIS2, I, E> { + <A, B extends A>(fa: Kind2<F, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind2<F, E, A>, + Kind2<F, E, B> + > + <A>(fa: Kind2<F, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex2C<F extends URIS2, I, E> extends FunctorWithIndex2C<F, I, E>, Filterable2C<F, E> { + readonly partitionMapWithIndex: <A, B, C>( + fa: Kind2<F, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> + readonly partitionWithIndex: PartitionWithIndex2C<F, I, E> + readonly filterMapWithIndex: <A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => Option<B>) => Kind2<F, E, B> + readonly filterWithIndex: FilterWithIndex2C<F, I, E> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex3<F extends URIS3, I> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind3<F, R, E, B> + <R, E, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + */ +export interface FilterWithIndex3C<F extends URIS3, I, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind3<F, R, E, B> + <R, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface FilterableWithIndex3C<F extends URIS3, I, E> extends FunctorWithIndex3C<F, I, E>, Filterable3C<F, E> { + readonly partitionMapWithIndex: <R, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partitionWithIndex: PartitionWithIndex3C<F, I, E> + readonly filterMapWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filterWithIndex: FilterWithIndex3C<F, I, E> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex3<F extends URIS3, I> { + <R, E, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, E, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, A> + > +} +/** + * @since 2.2.0 + */ +export interface PartitionWithIndex3C<F extends URIS3, I, E> { + <R, A, B extends A>(fa: Kind3<F, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, B> + > + <R, A>(fa: Kind3<F, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated< + Kind3<F, R, E, A>, + Kind3<F, R, E, A> + > +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex3<F extends URIS3, I> extends FunctorWithIndex3<F, I>, Filterable3<F> { + readonly partitionMapWithIndex: <R, E, A, B, C>( + fa: Kind3<F, R, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> + readonly partitionWithIndex: PartitionWithIndex3<F, I> + readonly filterMapWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => Option<B>) => Kind3<F, R, E, B> + readonly filterWithIndex: FilterWithIndex3<F, I> +} +/** + * @since 2.0.0 + */ +export interface FilterWithIndex4<F extends URIS4, I> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Kind4< + F, + S, + R, + E, + B + > + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Kind4<F, S, R, E, A> +} +/** + * @since 2.0.0 + */ +export interface PartitionWithIndex4<F extends URIS4, I> { + <S, R, E, A, B extends A>(fa: Kind4<F, S, R, E, A>, refinementWithIndex: RefinementWithIndex<I, A, B>): Separated< + Kind4<F, S, R, E, A>, + Kind4<F, S, R, E, B> + > + <S, R, E, A>(fa: Kind4<F, S, R, E, A>, predicateWithIndex: PredicateWithIndex<I, A>): Separated< + Kind4<F, S, R, E, A>, + Kind4<F, S, R, E, A> + > +} +/** + * @category model + * @since 2.0.0 + */ +export interface FilterableWithIndex4<F extends URIS4, I> extends FunctorWithIndex4<F, I>, Filterable4<F> { + readonly partitionMapWithIndex: <S, R, E, A, B, C>( + fa: Kind4<F, S, R, E, A>, + f: (i: I, a: A) => Either<B, C> + ) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> + readonly partitionWithIndex: PartitionWithIndex4<F, I> + readonly filterMapWithIndex: <S, R, E, A, B>( + fa: Kind4<F, S, R, E, A>, + f: (i: I, a: A) => Option<B> + ) => Kind4<F, S, R, E, B> + readonly filterWithIndex: FilterWithIndex4<F, I> +} diff --git a/node_modules/fp-ts/lib/FilterableWithIndex.js b/node_modules/fp-ts/lib/FilterableWithIndex.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/FilterableWithIndex.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Foldable.d.ts b/node_modules/fp-ts/lib/Foldable.d.ts new file mode 100644 index 0000000..95aadb7 --- /dev/null +++ b/node_modules/fp-ts/lib/Foldable.d.ts @@ -0,0 +1,423 @@ +/** + * @since 2.0.0 + */ +import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3 } from './Applicative' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable<F> { + readonly URI: F + readonly reduce: <A, B>(fa: HKT<F, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: HKT<F, A>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: HKT<F, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable1<F extends URIS> { + readonly URI: F + readonly reduce: <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, A>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind<F, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable2<F extends URIS2> { + readonly URI: F + readonly reduce: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, A>, f: (a: A) => M) => M + readonly reduceRight: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly reduce: <A, B>(fa: Kind2<F, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, A>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind2<F, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable3<F extends URIS3> { + readonly URI: F + readonly reduce: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => M) => M + readonly reduceRight: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.2.0 + */ +export interface Foldable3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly reduce: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <R, A>(fa: Kind3<F, R, E, A>, f: (a: A) => M) => M + readonly reduceRight: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface Foldable4<F extends URIS4> { + readonly URI: F + readonly reduce: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <S, R, E, A>(fa: Kind4<F, S, R, E, A>, f: (a: A) => M) => M + readonly reduceRight: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (a: A, b: B) => B) => B +} +/** + * `reduce` composition. + * + * @since 2.10.0 + */ +export declare function reduce<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): <B, A>(b: B, f: (b: B, a: A) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduce<F, G>( + F: Foldable<F>, + G: Foldable<G> +): <B, A>(b: B, f: (b: B, a: A) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * `foldMap` composition. + * + * @since 2.10.0 + */ +export declare function foldMap<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fga: Kind<F, Kind<G, A>>) => M +export declare function foldMap<F, G>( + F: Foldable<F>, + G: Foldable<G> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fga: HKT<F, HKT<G, A>>) => M +/** + * `reduceRight` composition. + * + * @since 2.10.0 + */ +export declare function reduceRight<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): <B, A>(b: B, f: (a: A, b: B) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduceRight<F, G>( + F: Foldable<F>, + G: Foldable<G> +): <B, A>(b: B, f: (a: A, b: B) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * Similar to 'reduce', but the result is encapsulated in a monad. + * + * Note: this function is not generally stack-safe, e.g., for monads which build up thunks a la `IO`. + * + * @example + * import { reduceM } from 'fp-ts/Foldable' + * import { Monad, some } from 'fp-ts/Option' + * import { make, Foldable } from 'fp-ts/Tree' + * import { pipe } from 'fp-ts/function' + * + * const t = make(1, [make(2, []), make(3, []), make(4, [])]) + * assert.deepStrictEqual(pipe(t, reduceM(Monad, Foldable)(0, (b, a) => (a > 2 ? some(b + a) : some(b)))), some(7)) + * + * @since 2.8.0 + */ +export declare function reduceM<M extends URIS3, F extends URIS>( + M: Monad3<M>, + F: Foldable1<F> +): <B, A, R, E>(b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => (fa: Kind<F, A>) => Kind3<M, R, E, B> +export declare function reduceM<M extends URIS3, F extends URIS, E>( + M: Monad3C<M, E>, + F: Foldable1<F> +): <B, A, R>(b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => (fa: Kind<F, A>) => Kind3<M, R, E, B> +export declare function reduceM<M extends URIS2, F extends URIS>( + M: Monad2<M>, + F: Foldable1<F> +): <B, A, E>(b: B, f: (b: B, a: A) => Kind2<M, E, B>) => (fa: Kind<F, A>) => Kind2<M, E, B> +export declare function reduceM<M extends URIS2, F extends URIS, E>( + M: Monad2C<M, E>, + F: Foldable1<F> +): <B, A>(b: B, f: (b: B, a: A) => Kind2<M, E, B>) => (fa: Kind<F, A>) => Kind2<M, E, B> +export declare function reduceM<M extends URIS, F extends URIS>( + M: Monad1<M>, + F: Foldable1<F> +): <B, A>(b: B, f: (b: B, a: A) => Kind<M, B>) => (fa: Kind<F, A>) => Kind<M, B> +export declare function reduceM<M, F>( + M: Monad<M>, + F: Foldable<F> +): <B, A>(b: B, f: (b: B, a: A) => HKT<M, B>) => (fa: HKT<F, A>) => HKT<M, B> +/** + * Fold a data structure, accumulating values in some `Monoid`, combining adjacent elements using the specified separator + * + * @example + * import { intercalate } from 'fp-ts/Foldable' + * import * as S from 'fp-ts/string' + * import { make, Foldable } from 'fp-ts/Tree' + * + * const t = make('a', [make('b', []), make('c', []), make('d', [])]) + * assert.strictEqual(intercalate(S.Monoid, Foldable)('|', t), 'a|b|c|d') + * + * @since 2.0.0 + */ +export declare function intercalate<M, F extends URIS3>( + M: Monoid<M>, + F: Foldable3<F> +): <R, E>(middle: M, fm: Kind3<F, R, E, M>) => M +export declare function intercalate<M, F extends URIS2>( + M: Monoid<M>, + F: Foldable2<F> +): <E>(middle: M, fm: Kind2<F, E, M>) => M +export declare function intercalate<M, F extends URIS2, E>( + M: Monoid<M>, + F: Foldable2C<F, E> +): (middle: M, fm: Kind2<F, E, M>) => M +export declare function intercalate<M, F extends URIS>(M: Monoid<M>, F: Foldable1<F>): (middle: M, fm: Kind<F, M>) => M +export declare function intercalate<M, F>(M: Monoid<M>, F: Foldable<F>): (middle: M, fm: HKT<F, M>) => M +/** + * Transforms a `Foldable` into a `toReadonlyArray`. + * + * @example + * import { toReadonlyArray } from 'fp-ts/Foldable' + * import { Foldable, make } from 'fp-ts/Tree' + * + * const t = make(1, [make(2, []), make(3, []), make(4, [])]) + * assert.deepStrictEqual(toReadonlyArray(Foldable)(t), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare function toReadonlyArray<F extends URIS4>( + F: Foldable4<F> +): <S, R, E, A>(fa: Kind4<F, S, R, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS3>( + F: Foldable3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS3, E>( + F: Foldable3C<F, E> +): <R, A>(fa: Kind3<F, R, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS2>( + F: Foldable2<F> +): <E, A>(fa: Kind2<F, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS2, E>( + F: Foldable2C<F, E> +): <A>(fa: Kind2<F, E, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F extends URIS>(F: Foldable1<F>): <A>(fa: Kind<F, A>) => ReadonlyArray<A> +export declare function toReadonlyArray<F>(F: Foldable<F>): <A>(fa: HKT<F, A>) => ReadonlyArray<A> +/** + * Traverse a data structure, performing some effects encoded by an `Applicative` functor at each value, ignoring the + * final result. + * + * @example + * import { Foldable } from 'fp-ts/Array' + * import { traverse_ } from 'fp-ts/Foldable' + * import { Applicative } from 'fp-ts/IO' + * + * let log = '' + * const append = (s: string) => () => (log += s) + * traverse_(Applicative, Foldable)(['a', 'b', 'c'], append)() + * assert.strictEqual(log, 'abc') + * + * @since 2.0.0 + */ +export declare function traverse_<M extends URIS3, F extends URIS>( + M: Applicative3<M>, + F: Foldable1<F> +): <R, E, A, B>(fa: Kind<F, A>, f: (a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, void> +export declare function traverse_<M extends URIS2, F extends URIS>( + M: Applicative2<M>, + F: Foldable1<F> +): <E, A, B>(fa: Kind<F, A>, f: (a: A) => Kind2<M, E, B>) => Kind2<M, E, void> +export declare function traverse_<M extends URIS2, F extends URIS, E>( + M: Applicative2C<M, E>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, f: (a: A) => Kind2<M, E, B>) => Kind2<M, E, void> +export declare function traverse_<M extends URIS, F extends URIS>( + M: Applicative1<M>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, f: (a: A) => Kind<M, B>) => Kind<M, void> +export declare function traverse_<M, F>( + M: Applicative<M>, + F: Foldable<F> +): <A, B>(fa: HKT<F, A>, f: (a: A) => HKT<M, B>) => HKT<M, void> +/** + * Use [`reduceM`](#reducem) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function foldM<M extends URIS3, F extends URIS>( + M: Monad3<M>, + F: Foldable1<F> +): <R, E, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS3, F extends URIS, E>( + M: Monad3C<M, E>, + F: Foldable1<F> +): <R, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS2, F extends URIS>( + M: Monad2<M>, + F: Foldable1<F> +): <E, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind2<M, E, B>) => Kind2<M, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS2, F extends URIS, E>( + M: Monad2C<M, E>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind2<M, E, B>) => Kind2<M, E, B> +/** @deprecated */ +export declare function foldM<M extends URIS, F extends URIS>( + M: Monad1<M>, + F: Foldable1<F> +): <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind<M, B>) => Kind<M, B> +/** @deprecated */ +export declare function foldM<M, F>( + M: Monad<M>, + F: Foldable<F> +): <A, B>(fa: HKT<F, A>, b: B, f: (b: B, a: A) => HKT<M, B>) => HKT<M, B> +/** + * Use [`toReadonlyArray`](#toreadonlyarray) instead + * + * @category zone of death + * @since 2.8.0 + * @deprecated + */ +export declare const toArray: typeof toReadonlyArray +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition<F, G> { + readonly reduce: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: HKT<F, HKT<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: HKT<F, HKT<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition11<F extends URIS, G extends URIS> { + readonly reduce: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, Kind<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind<F, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition12<F extends URIS, G extends URIS2> { + readonly reduce: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => M) => M + readonly reduceRight: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition12C<F extends URIS, G extends URIS2, E> { + readonly reduce: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind<F, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition21<F extends URIS2, G extends URIS> { + readonly reduce: <E, A, B>(fga: Kind2<F, E, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition2C1<F extends URIS2, G extends URIS, E> { + readonly reduce: <A, B>(fga: Kind2<F, E, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => M) => M + readonly reduceRight: <A, B>(fa: Kind2<F, E, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition22<F extends URIS2, G extends URIS2> { + readonly reduce: <FE, GE, A, B>(fga: Kind2<F, FE, Kind2<G, GE, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <FE, GE, A>(fa: Kind2<F, FE, Kind2<G, GE, A>>, f: (a: A) => M) => M + readonly reduceRight: <FE, GE, A, B>(fa: Kind2<F, FE, Kind2<G, GE, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableComposition22C<F extends URIS2, G extends URIS2, E> { + readonly reduce: <FE, A, B>(fga: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B + readonly foldMap: <M>(M: Monoid<M>) => <FE, A>(fa: Kind2<F, FE, Kind2<G, E, A>>, f: (a: A) => M) => M + readonly reduceRight: <FE, A, B>(fa: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B +} +/** + * Use + * + * - [reduce](#reduce) + * - [foldMap](#foldmap) + * - [reduceRight](#reduceright) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS2, E>( + F: Foldable2<F>, + G: Foldable2C<G, E> +): FoldableComposition22C<F, G, E> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS2>( + F: Foldable2<F>, + G: Foldable2<G> +): FoldableComposition22<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS, E>( + F: Foldable2C<F, E>, + G: Foldable1<G> +): FoldableComposition2C1<F, G, E> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS2, G extends URIS>( + F: Foldable2<F>, + G: Foldable1<G> +): FoldableComposition21<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS, G extends URIS2, E>( + F: Foldable1<F>, + G: Foldable2C<G, E> +): FoldableComposition12C<F, G, E> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS, G extends URIS2>( + F: Foldable1<F>, + G: Foldable2<G> +): FoldableComposition12<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F extends URIS, G extends URIS>( + F: Foldable1<F>, + G: Foldable1<G> +): FoldableComposition11<F, G> +/** @deprecated */ +export declare function getFoldableComposition<F, G>(F: Foldable<F>, G: Foldable<G>): FoldableComposition<F, G> diff --git a/node_modules/fp-ts/lib/Foldable.js b/node_modules/fp-ts/lib/Foldable.js new file mode 100644 index 0000000..db23bf5 --- /dev/null +++ b/node_modules/fp-ts/lib/Foldable.js @@ -0,0 +1,76 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toArray = void 0; +exports.reduce = reduce; +exports.foldMap = foldMap; +exports.reduceRight = reduceRight; +exports.reduceM = reduceM; +exports.intercalate = intercalate; +exports.toReadonlyArray = toReadonlyArray; +exports.traverse_ = traverse_; +exports.foldM = foldM; +exports.getFoldableComposition = getFoldableComposition; +var function_1 = require("./function"); +function reduce(F, G) { + return function (b, f) { return function (fga) { return F.reduce(fga, b, function (b, ga) { return G.reduce(ga, b, f); }); }; }; +} +function foldMap(F, G) { + return function (M) { + var foldMapF = F.foldMap(M); + var foldMapG = G.foldMap(M); + return function (f) { return function (fga) { return foldMapF(fga, function (ga) { return foldMapG(ga, f); }); }; }; + }; +} +function reduceRight(F, G) { + return function (b, f) { return function (fga) { return F.reduceRight(fga, b, function (ga, b) { return G.reduceRight(ga, b, f); }); }; }; +} +function reduceM(M, F) { + return function (b, f) { return function (fa) { return F.reduce(fa, M.of(b), function (mb, a) { return M.chain(mb, function (b) { return f(b, a); }); }); }; }; +} +function intercalate(M, F) { + return function (middle, fm) { + var go = function (_a, x) { + var init = _a.init, acc = _a.acc; + return init ? { init: false, acc: x } : { init: false, acc: M.concat(M.concat(acc, middle), x) }; + }; + return F.reduce(fm, { init: true, acc: M.empty }, go).acc; + }; +} +function toReadonlyArray(F) { + return function (fa) { + return F.reduce(fa, [], function (acc, a) { + acc.push(a); + return acc; + }); + }; +} +function traverse_(M, F) { + var applyFirst = function (mu, mb) { return M.ap(M.map(mu, function_1.constant), mb); }; + var mu = M.of(undefined); + return function (fa, f) { return F.reduce(fa, mu, function (mu, a) { return applyFirst(mu, f(a)); }); }; +} +function foldM(M, F) { + return function (fa, b, f) { return F.reduce(fa, M.of(b), function (mb, a) { return M.chain(mb, function (b) { return f(b, a); }); }); }; +} +/** + * Use [`toReadonlyArray`](#toreadonlyarray) instead + * + * @category zone of death + * @since 2.8.0 + * @deprecated + */ +exports.toArray = toReadonlyArray; +/** @deprecated */ +function getFoldableComposition(F, G) { + var _reduce = reduce(F, G); + var _foldMap = foldMap(F, G); + var _reduceRight = reduceRight(F, G); + return { + reduce: function (fga, b, f) { return (0, function_1.pipe)(fga, _reduce(b, f)); }, + foldMap: function (M) { + var foldMapM = _foldMap(M); + return function (fga, f) { return (0, function_1.pipe)(fga, foldMapM(f)); }; + }, + reduceRight: function (fga, b, f) { return (0, function_1.pipe)(fga, _reduceRight(b, f)); } + }; +} diff --git a/node_modules/fp-ts/lib/FoldableWithIndex.d.ts b/node_modules/fp-ts/lib/FoldableWithIndex.d.ts new file mode 100644 index 0000000..ab561a2 --- /dev/null +++ b/node_modules/fp-ts/lib/FoldableWithIndex.d.ts @@ -0,0 +1,290 @@ +/** + * A `Foldable` with an additional index. + * A `FoldableWithIndex` instance must be compatible with its `Foldable` instance + * + * ```ts + * reduce(fa, b, f) = reduceWithIndex(fa, b, (_, b, a) => f(b, a)) + * foldMap(M)(fa, f) = foldMapWithIndex(M)(fa, (_, a) => f(a)) + * reduceRight(fa, b, f) = reduceRightWithIndex(fa, b, (_, a, b) => f(a, b)) + * ``` + * + * @since 2.0.0 + */ +import { + Foldable, + Foldable1, + Foldable2, + Foldable2C, + Foldable3, + Foldable3C, + Foldable4, + FoldableComposition, + FoldableComposition2C1, + FoldableComposition11, + FoldableComposition12, + FoldableComposition12C, + FoldableComposition21, + FoldableComposition22, + FoldableComposition22C +} from './Foldable' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex<F, I> extends Foldable<F> { + readonly reduceWithIndex: <A, B>(fa: HKT<F, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fa: HKT<F, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fa: HKT<F, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex1<F extends URIS, I> extends Foldable1<F> { + readonly reduceWithIndex: <A, B>(fa: Kind<F, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fa: Kind<F, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fa: Kind<F, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex2<F extends URIS2, I> extends Foldable2<F> { + readonly reduceWithIndex: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex2C<F extends URIS2, I, E> extends Foldable2C<F, E> { + readonly reduceWithIndex: <A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fa: Kind2<F, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex3<F extends URIS3, I> extends Foldable3<F> { + readonly reduceWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <R, E, A>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.2.0 + */ +export interface FoldableWithIndex3C<F extends URIS3, I, E> extends Foldable3C<F, E> { + readonly reduceWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <R, A>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * @category model + * @since 2.0.0 + */ +export interface FoldableWithIndex4<F extends URIS4, I> extends Foldable4<F> { + readonly reduceWithIndex: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (i: I, b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <S, R, E, A>(fa: Kind4<F, S, R, E, A>, f: (i: I, a: A) => M) => M + readonly reduceRightWithIndex: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (i: I, a: A, b: B) => B) => B +} +/** + * `reduceWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function reduceWithIndex<F extends URIS, I, G extends URIS, J>( + F: FoldableWithIndex1<F, I>, + G: FoldableWithIndex1<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], b: B, a: A) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduceWithIndex<F, I, G, J>( + F: FoldableWithIndex<F, I>, + G: FoldableWithIndex<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], b: B, a: A) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * `foldMapWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function foldMapWithIndex<F extends URIS, I, G extends URIS, J>( + F: FoldableWithIndex1<F, I>, + G: FoldableWithIndex1<G, J> +): <M>(M: Monoid<M>) => <A>(f: (ij: readonly [I, J], a: A) => M) => (fga: Kind<F, Kind<G, A>>) => M +export declare function foldMapWithIndex<F, I, G, J>( + F: FoldableWithIndex<F, I>, + G: FoldableWithIndex<G, J> +): <M>(M: Monoid<M>) => <A>(f: (ij: readonly [I, J], a: A) => M) => (fga: HKT<F, HKT<G, A>>) => M +/** + * `reduceRightWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function reduceRightWithIndex<F extends URIS, I, G extends URIS, J>( + F: FoldableWithIndex1<F, I>, + G: FoldableWithIndex1<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], a: A, b: B) => B) => (fga: Kind<F, Kind<G, A>>) => B +export declare function reduceRightWithIndex<F, I, G, J>( + F: FoldableWithIndex<F, I>, + G: FoldableWithIndex<G, J> +): <B, A>(b: B, f: (ij: readonly [I, J], a: A, b: B) => B) => (fga: HKT<F, HKT<G, A>>) => B +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition<F, FI, G, GI> extends FoldableComposition<F, G> { + readonly reduceWithIndex: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: HKT<F, HKT<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition11<F extends URIS, FI, G extends URIS, GI> + extends FoldableComposition11<F, G> { + readonly reduceWithIndex: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: Kind<F, Kind<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition12<F extends URIS, FI, G extends URIS2, GI> + extends FoldableComposition12<F, G> { + readonly reduceWithIndex: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <E, A>(fga: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition12C<F extends URIS, FI, G extends URIS2, GI, E> + extends FoldableComposition12C<F, G, E> { + readonly reduceWithIndex: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition21<F extends URIS2, FI, G extends URIS, GI> + extends FoldableComposition21<F, G> { + readonly reduceWithIndex: <FE, A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>( + M: Monoid<M> + ) => <FE, A>(fga: Kind2<F, FE, Kind<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <FE, A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition2C1<F extends URIS2, FI, G extends URIS, GI, FE> + extends FoldableComposition2C1<F, G, FE> { + readonly reduceWithIndex: <A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(fga: Kind2<F, FE, Kind<G, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <A, B>(fga: Kind2<F, FE, Kind<G, A>>, b: B, f: (i: [FI, GI], a: A, b: B) => B) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition22<F extends URIS2, FI, G extends URIS2, GI> + extends FoldableComposition22<F, G> { + readonly reduceWithIndex: <FE, GE, A, B>( + fga: Kind2<F, FE, Kind2<G, GE, A>>, + b: B, + f: (i: [FI, GI], b: B, a: A) => B + ) => B + readonly foldMapWithIndex: <M>( + M: Monoid<M> + ) => <FE, GE, A>(fga: Kind2<F, FE, Kind2<G, GE, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <FE, GE, A, B>( + fga: Kind2<F, FE, Kind2<G, GE, A>>, + b: B, + f: (i: [FI, GI], a: A, b: B) => B + ) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FoldableWithIndexComposition22C<F extends URIS2, FI, G extends URIS2, GI, E> + extends FoldableComposition22C<F, G, E> { + readonly reduceWithIndex: <FE, A, B>(fga: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (i: [FI, GI], b: B, a: A) => B) => B + readonly foldMapWithIndex: <M>( + M: Monoid<M> + ) => <FE, A>(fga: Kind2<F, FE, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => M) => M + readonly reduceRightWithIndex: <FE, A, B>( + fga: Kind2<F, FE, Kind2<G, E, A>>, + b: B, + f: (i: [FI, GI], a: A, b: B) => B + ) => B +} +/** + * Use + * + * - [reduceWithIndex](#reducewithindex) + * - [foldMapWithIndex](#foldmapwithindex) + * - [reduceRightWithIndex](#reducerightwithindex) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI, E>( + F: FoldableWithIndex2<F, FI>, + G: FoldableWithIndex2C<G, GI, E> +): FoldableWithIndexComposition22C<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI>( + F: FoldableWithIndex2<F, FI>, + G: FoldableWithIndex2<G, GI> +): FoldableWithIndexComposition22<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS, GI, E>( + F: FoldableWithIndex2C<F, FI, E>, + G: FoldableWithIndex1<G, GI> +): FoldableWithIndexComposition2C1<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS2, FI, G extends URIS, GI>( + F: FoldableWithIndex2<F, FI>, + G: FoldableWithIndex1<G, GI> +): FoldableWithIndexComposition21<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS, FI, G extends URIS2, GI>( + F: FoldableWithIndex1<F, FI>, + G: FoldableWithIndex2<G, GI> +): FoldableWithIndexComposition12<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS, FI, G extends URIS2, GI>( + F: FoldableWithIndex1<F, FI>, + G: FoldableWithIndex2<G, GI> +): FoldableWithIndexComposition12<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F extends URIS, FI, G extends URIS, GI>( + F: FoldableWithIndex1<F, FI>, + G: FoldableWithIndex1<G, GI> +): FoldableWithIndexComposition11<F, FI, G, GI> +/** @deprecated */ +export declare function getFoldableWithIndexComposition<F, FI, G, GI>( + F: FoldableWithIndex<F, FI>, + G: FoldableWithIndex<G, GI> +): FoldableWithIndexComposition<F, FI, G, GI> diff --git a/node_modules/fp-ts/lib/FoldableWithIndex.js b/node_modules/fp-ts/lib/FoldableWithIndex.js new file mode 100644 index 0000000..72f537d --- /dev/null +++ b/node_modules/fp-ts/lib/FoldableWithIndex.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.reduceWithIndex = reduceWithIndex; +exports.foldMapWithIndex = foldMapWithIndex; +exports.reduceRightWithIndex = reduceRightWithIndex; +exports.getFoldableWithIndexComposition = getFoldableWithIndexComposition; +/** + * A `Foldable` with an additional index. + * A `FoldableWithIndex` instance must be compatible with its `Foldable` instance + * + * ```ts + * reduce(fa, b, f) = reduceWithIndex(fa, b, (_, b, a) => f(b, a)) + * foldMap(M)(fa, f) = foldMapWithIndex(M)(fa, (_, a) => f(a)) + * reduceRight(fa, b, f) = reduceRightWithIndex(fa, b, (_, a, b) => f(a, b)) + * ``` + * + * @since 2.0.0 + */ +var Foldable_1 = require("./Foldable"); +var function_1 = require("./function"); +function reduceWithIndex(F, G) { + return function (b, f) { return function (fga) { + return F.reduceWithIndex(fga, b, function (i, b, ga) { return G.reduceWithIndex(ga, b, function (j, b, a) { return f([i, j], b, a); }); }); + }; }; +} +function foldMapWithIndex(F, G) { + return function (M) { + var foldMapWithIndexF = F.foldMapWithIndex(M); + var foldMapWithIndexG = G.foldMapWithIndex(M); + return function (f) { return function (fga) { return foldMapWithIndexF(fga, function (i, ga) { return foldMapWithIndexG(ga, function (j, a) { return f([i, j], a); }); }); }; }; + }; +} +function reduceRightWithIndex(F, G) { + return function (b, f) { return function (fga) { + return F.reduceRightWithIndex(fga, b, function (i, ga, b) { return G.reduceRightWithIndex(ga, b, function (j, a, b) { return f([i, j], a, b); }); }); + }; }; +} +/** @deprecated */ +function getFoldableWithIndexComposition(F, G) { + var FC = (0, Foldable_1.getFoldableComposition)(F, G); + var _reduceWithIndex = reduceWithIndex(F, G); + var _foldMapWithIndex = foldMapWithIndex(F, G); + var _reduceRightWithIndex = reduceRightWithIndex(F, G); + return { + reduce: FC.reduce, + foldMap: FC.foldMap, + reduceRight: FC.reduceRight, + reduceWithIndex: function (fga, b, f) { return (0, function_1.pipe)(fga, _reduceWithIndex(b, f)); }, + foldMapWithIndex: function (M) { + var foldMapWithIndexM = _foldMapWithIndex(M); + return function (fga, f) { return (0, function_1.pipe)(fga, foldMapWithIndexM(f)); }; + }, + reduceRightWithIndex: function (fga, b, f) { return (0, function_1.pipe)(fga, _reduceRightWithIndex(b, f)); } + }; +} diff --git a/node_modules/fp-ts/lib/FromEither.d.ts b/node_modules/fp-ts/lib/FromEither.d.ts new file mode 100644 index 0000000..fc06a6a --- /dev/null +++ b/node_modules/fp-ts/lib/FromEither.d.ts @@ -0,0 +1,337 @@ +/** + * The `FromEither` type class represents those data types which support errors. + * + * @since 2.10.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Either } from './Either' +import { LazyArg } from './function' +import { HKT2, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither<F> { + readonly URI: F + readonly fromEither: <E, A>(e: Either<E, A>) => HKT2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromEither1<F extends URIS> { + readonly URI: F + readonly fromEither: <A>(fa: Either<unknown, A>) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither2<F extends URIS2> { + readonly URI: F + readonly fromEither: <E, A>(fa: Either<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly fromEither: <A>(fa: Either<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither3<F extends URIS3> { + readonly URI: F + readonly fromEither: <E, A, R>(fa: Either<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromEither: <A, R>(fa: Either<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromEither4<F extends URIS4> { + readonly URI: F + readonly fromEither: <E, A, S, R>(fa: Either<E, A>) => Kind4<F, S, R, E, A> +} +/** + * @category constructors + * @since 2.10.0 + */ +export declare function fromOption<F extends URIS4>( + F: FromEither4<F> +): <E>(onNone: LazyArg<E>) => <A, S, R>(fa: Option<A>) => Kind4<F, S, R, E, A> +export declare function fromOption<F extends URIS3>( + F: FromEither3<F> +): <E>(onNone: LazyArg<E>) => <A, R>(fa: Option<A>) => Kind3<F, R, E, A> +export declare function fromOption<F extends URIS3, E>( + F: FromEither3C<F, E> +): (onNone: LazyArg<E>) => <A, R>(fa: Option<A>) => Kind3<F, R, E, A> +export declare function fromOption<F extends URIS2>( + F: FromEither2<F> +): <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => Kind2<F, E, A> +export declare function fromOption<F extends URIS2, E>( + F: FromEither2C<F, E> +): (onNone: LazyArg<E>) => <A>(fa: Option<A>) => Kind2<F, E, A> +export declare function fromOption<F>(F: FromEither<F>): <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => HKT2<F, E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare function fromPredicate<F extends URIS4>( + F: FromEither4<F> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R, B extends A>(b: B) => Kind4<F, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, A> +} +export declare function fromPredicate<F extends URIS3>( + F: FromEither3<F> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(b: B) => Kind3<F, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> +} +export declare function fromPredicate<F extends URIS3, E>( + F: FromEither3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(b: B) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> +} +export declare function fromPredicate<F extends URIS2>( + F: FromEither2<F> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => Kind2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> +} +export declare function fromPredicate<F extends URIS2, E>( + F: FromEither2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> +} +export declare function fromPredicate<F>(F: FromEither<F>): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => HKT2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => HKT2<F, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => HKT2<F, E, A> +} +/** + * @since 2.10.0 + */ +export declare function fromOptionK<F extends URIS4>( + F: FromEither4<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <S, R>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromOptionK<F extends URIS3>( + F: FromEither3<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromOptionK<F extends URIS3, E>( + F: FromEither3C<F, E> +): ( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromOptionK<F extends URIS2>( + F: FromEither2<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromOptionK<F extends URIS2, E>( + F: FromEither2C<F, E> +): ( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromOptionK<F>( + F: FromEither<F> +): <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => HKT2<F, E, B> +/** + * @since 2.10.0 + */ +export declare function chainOptionK<F extends URIS4>( + F: FromEither4<F>, + M: Chain4<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => <S, R>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function chainOptionK<F extends URIS3>( + F: FromEither3<F>, + M: Chain3<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chainOptionK<F extends URIS3, E>( + F: FromEither3C<F, E>, + M: Chain3C<F, E> +): (onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chainOptionK<F extends URIS2>( + F: FromEither2<F>, + M: Chain2<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chainOptionK<F extends URIS2, E>( + F: FromEither2C<F, E>, + M: Chain2C<F, E> +): (onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chainOptionK<F>( + F: FromEither<F>, + M: Chain<F> +): <E>(onNone: LazyArg<E>) => <A, B>(f: (a: A) => Option<B>) => (ma: HKT2<F, E, A>) => HKT2<F, E, B> +/** + * @since 2.10.0 + */ +export declare function fromEitherK<F extends URIS4>( + F: FromEither4<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => <S, R>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromEitherK<F extends URIS3>( + F: FromEither3<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromEitherK<F extends URIS3, E>( + F: FromEither3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Either<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromEitherK<F extends URIS2>( + F: FromEither2<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromEitherK<F extends URIS2, E>( + F: FromEither2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Either<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromEitherK<F extends URIS>( + F: FromEither1<F> +): <E, A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Either<E, B>) => (...a: A) => Kind<F, B> +export declare function fromEitherK<F>( + F: FromEither<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => Either<E, B>) => (...a: A) => HKT2<F, E, B> +/** + * @since 2.10.0 + */ +export declare function chainEitherK<M extends URIS4>( + F: FromEither4<M>, + M: Chain4<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <S, R>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainEitherK<M extends URIS3>( + F: FromEither3<M>, + M: Chain3<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainEitherK<M extends URIS3, E>( + F: FromEither3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainEitherK<M extends URIS2>( + F: FromEither2<M>, + M: Chain2<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainEitherK<M extends URIS2, E>( + F: FromEither2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainEitherK<M extends URIS>( + F: FromEither1<M>, + M: Chain1<M> +): <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Kind<M, A>) => Kind<M, B> +export declare function chainEitherK<M>( + F: FromEither<M>, + M: Chain<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: HKT2<M, E, A>) => HKT2<M, E, B> +/** + * @since 2.12.0 + */ +export declare function chainFirstEitherK<M extends URIS4>( + F: FromEither4<M>, + M: Chain4<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <S, R>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstEitherK<M extends URIS3>( + F: FromEither3<M>, + M: Chain3<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstEitherK<M extends URIS3, E>( + F: FromEither3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstEitherK<M extends URIS2>( + F: FromEither2<M>, + M: Chain2<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstEitherK<M extends URIS2, E>( + F: FromEither2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Either<E, B>) => (ma: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstEitherK<M extends URIS>( + F: FromEither1<M>, + M: Chain1<M> +): <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Kind<M, A>) => Kind<M, A> +export declare function chainFirstEitherK<M>( + F: FromEither<M>, + M: Chain<M> +): <A, E, B>(f: (a: A) => Either<E, B>) => (ma: HKT2<M, E, A>) => HKT2<M, E, A> +/** + * @since 2.10.0 + */ +export declare function filterOrElse<M extends URIS4>( + F: FromEither4<M>, + M: Chain4<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>( + ma: Kind4<M, S, R, E, A> + ) => Kind4<M, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R, B extends A>( + mb: Kind4<M, S, R, E, B> + ) => Kind4<M, S, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +} +export declare function filterOrElse<M extends URIS3>( + F: FromEither3<M>, + M: Chain3<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: Kind3<M, R, E, A> + ) => Kind3<M, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(mb: Kind3<M, R, E, B>) => Kind3<M, R, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +} +export declare function filterOrElse<M extends URIS3, E>( + F: FromEither3C<M, E>, + M: Chain3C<M, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>(mb: Kind3<M, R, E, B>) => Kind3<M, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +} +export declare function filterOrElse<M extends URIS2>( + F: FromEither2<M>, + M: Chain2<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (self: Kind2<M, E, A>) => Kind2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(self: Kind2<M, E, B>) => Kind2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (self: Kind2<M, E, A>) => Kind2<M, E, A> +} +export declare function filterOrElse<M extends URIS2, E>( + F: FromEither2C<M, E>, + M: Chain2C<M, E> +): { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind2<M, E, A>) => Kind2<M, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: Kind2<M, E, B>) => Kind2<M, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind2<M, E, A>) => Kind2<M, E, A> +} +export declare function filterOrElse<M extends URIS2>( + F: FromEither<M>, + M: Chain<M> +): { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: HKT2<M, E, A>) => HKT2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: HKT2<M, E, B>) => HKT2<M, E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: HKT2<M, E, A>) => HKT2<M, E, A> +} diff --git a/node_modules/fp-ts/lib/FromEither.js b/node_modules/fp-ts/lib/FromEither.js new file mode 100644 index 0000000..1a78ead --- /dev/null +++ b/node_modules/fp-ts/lib/FromEither.js @@ -0,0 +1,90 @@ +"use strict"; +/** + * The `FromEither` type class represents those data types which support errors. + * + * @since 2.10.0 + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromOption = fromOption; +exports.fromPredicate = fromPredicate; +exports.fromOptionK = fromOptionK; +exports.chainOptionK = chainOptionK; +exports.fromEitherK = fromEitherK; +exports.chainEitherK = chainEitherK; +exports.chainFirstEitherK = chainFirstEitherK; +exports.filterOrElse = filterOrElse; +exports.tapEither = tapEither; +var Chain_1 = require("./Chain"); +var function_1 = require("./function"); +var _ = __importStar(require("./internal")); +function fromOption(F) { + return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; }; +} +function fromPredicate(F) { + return function (predicate, onFalse) { + return function (a) { + return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); + }; + }; +} +function fromOptionK(F) { + var fromOptionF = fromOption(F); + return function (onNone) { + var from = fromOptionF(onNone); + return function (f) { return (0, function_1.flow)(f, from); }; + }; +} +function chainOptionK(F, M) { + var fromOptionKF = fromOptionK(F); + return function (onNone) { + var from = fromOptionKF(onNone); + return function (f) { return function (ma) { return M.chain(ma, from(f)); }; }; + }; +} +function fromEitherK(F) { + return function (f) { return (0, function_1.flow)(f, F.fromEither); }; +} +function chainEitherK(F, M) { + var fromEitherKF = fromEitherK(F); + return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; }; +} +function chainFirstEitherK(F, M) { + var tapEitherM = tapEither(F, M); + return function (f) { return function (ma) { return tapEitherM(ma, f); }; }; +} +function filterOrElse(F, M) { + return function (predicate, onFalse) { + return function (ma) { + return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); }); + }; + }; +} +/** @internal */ +function tapEither(F, M) { + var fromEither = fromEitherK(F); + var tapM = (0, Chain_1.tap)(M); + return function (self, f) { return tapM(self, fromEither(f)); }; +} diff --git a/node_modules/fp-ts/lib/FromIO.d.ts b/node_modules/fp-ts/lib/FromIO.d.ts new file mode 100644 index 0000000..d51da7f --- /dev/null +++ b/node_modules/fp-ts/lib/FromIO.d.ts @@ -0,0 +1,152 @@ +/** + * Lift a computation from the `IO` monad + * + * @since 2.10.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { IO } from './IO' +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO<F> { + readonly URI: F + readonly fromIO: <A>(fa: IO<A>) => HKT<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO1<F extends URIS> { + readonly URI: F + readonly fromIO: <A>(fa: IO<A>) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO2<F extends URIS2> { + readonly URI: F + readonly fromIO: <A, E>(fa: IO<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly fromIO: <A>(fa: IO<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO3<F extends URIS3> { + readonly URI: F + readonly fromIO: <A, R, E>(fa: IO<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromIO: <A, R>(fa: IO<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromIO4<F extends URIS4> { + readonly URI: F + readonly fromIO: <A, S, R, E>(fa: IO<A>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.10.0 + */ +export declare function fromIOK<F extends URIS4>( + F: FromIO4<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <S, R, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromIOK<F extends URIS3>( + F: FromIO3<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <R, E>(...a: A) => Kind3<F, R, E, B> +export declare function fromIOK<F extends URIS3, E>( + F: FromIO3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromIOK<F extends URIS2>( + F: FromIO2<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => <E>(...a: A) => Kind2<F, E, B> +export declare function fromIOK<F extends URIS2, E>( + F: FromIO2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromIOK<F extends URIS>( + F: FromIO1<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => Kind<F, B> +export declare function fromIOK<F>( + F: FromIO<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function chainIOK<M extends URIS4>( + F: FromIO4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => IO<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainIOK<M extends URIS3>( + F: FromIO3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => IO<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainIOK<M extends URIS3, E>( + F: FromIO3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => IO<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainIOK<M extends URIS2>( + F: FromIO2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => IO<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainIOK<M extends URIS2, E>( + F: FromIO2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => IO<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainIOK<M extends URIS>( + F: FromIO1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => IO<B>) => (first: Kind<M, A>) => Kind<M, B> +export declare function chainIOK<M>( + F: FromIO<M>, + M: Chain<M> +): <A, B>(f: (a: A) => IO<B>) => (first: HKT<M, A>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function chainFirstIOK<M extends URIS4>( + F: FromIO4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => IO<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstIOK<M extends URIS3>( + F: FromIO3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => IO<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstIOK<M extends URIS3, E>( + F: FromIO3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => IO<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstIOK<M extends URIS2>( + F: FromIO2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => IO<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstIOK<M extends URIS2, E>( + F: FromIO2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => IO<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstIOK<M extends URIS>( + F: FromIO1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => IO<B>) => (first: Kind<M, A>) => Kind<M, A> +export declare function chainFirstIOK<M>( + F: FromIO<M>, + M: Chain<M> +): <A, B>(f: (a: A) => IO<B>) => (first: HKT<M, A>) => HKT<M, A> diff --git a/node_modules/fp-ts/lib/FromIO.js b/node_modules/fp-ts/lib/FromIO.js new file mode 100644 index 0000000..000b8df --- /dev/null +++ b/node_modules/fp-ts/lib/FromIO.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromIOK = fromIOK; +exports.chainIOK = chainIOK; +exports.chainFirstIOK = chainFirstIOK; +exports.tapIO = tapIO; +/** + * Lift a computation from the `IO` monad + * + * @since 2.10.0 + */ +var Chain_1 = require("./Chain"); +var function_1 = require("./function"); +function fromIOK(F) { + return function (f) { return (0, function_1.flow)(f, F.fromIO); }; +} +function chainIOK(F, M) { + return function (f) { + var g = (0, function_1.flow)(f, F.fromIO); + return function (first) { return M.chain(first, g); }; + }; +} +function chainFirstIOK(F, M) { + var tapIOM = tapIO(F, M); + return function (f) { return function (first) { return tapIOM(first, f); }; }; +} +/** @internal */ +function tapIO(F, M) { + var chainFirstM = (0, Chain_1.tap)(M); + return function (self, f) { return chainFirstM(self, (0, function_1.flow)(f, F.fromIO)); }; +} diff --git a/node_modules/fp-ts/lib/FromReader.d.ts b/node_modules/fp-ts/lib/FromReader.d.ts new file mode 100644 index 0000000..ff5d6c0 --- /dev/null +++ b/node_modules/fp-ts/lib/FromReader.d.ts @@ -0,0 +1,136 @@ +/** + * Lift a computation from the `Reader` monad. + * + * @since 2.11.0 + */ +import { Chain, Chain2, Chain3, Chain3C, Chain4 } from './Chain' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import * as R from './Reader' +import Reader = R.Reader +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader<F> { + readonly URI: F + readonly fromReader: <R, A>(fa: Reader<R, A>) => HKT2<F, R, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader2<F extends URIS2> { + readonly URI: F + readonly fromReader: <E, A>(fa: Reader<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader3<F extends URIS3> { + readonly URI: F + readonly fromReader: <R, A, E>(fa: Reader<R, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromReader: <R, A>(fa: Reader<R, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromReader4<F extends URIS4> { + readonly URI: F + readonly fromReader: <R, A, S, E>(fa: Reader<R, A>) => Kind4<F, S, R, E, A> +} +/** + * @category constructors + * @since 2.11.0 + */ +export declare function ask<F extends URIS4>(F: FromReader4<F>): <S, R, E>() => Kind4<F, S, R, E, R> +export declare function ask<F extends URIS3>(F: FromReader3<F>): <R, E>() => Kind3<F, R, E, R> +export declare function ask<F extends URIS3, E>(F: FromReader3C<F, E>): <R>() => Kind3<F, R, E, R> +export declare function ask<F extends URIS2>(F: FromReader2<F>): <R>() => Kind2<F, R, R> +export declare function ask<F>(F: FromReader<F>): <R>() => HKT2<F, R, R> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function asks<F extends URIS4>(F: FromReader4<F>): <R, A, S, E>(f: (r: R) => A) => Kind4<F, S, R, E, A> +export declare function asks<F extends URIS3>(F: FromReader3<F>): <R, A, E>(f: (r: R) => A) => Kind3<F, R, E, A> +export declare function asks<F extends URIS3, E>(F: FromReader3C<F, E>): <R, A>(f: (r: R) => A) => Kind3<F, R, E, A> +export declare function asks<F extends URIS2>(F: FromReader2<F>): <R, A>(f: (r: R) => A) => Kind2<F, R, A> +export declare function asks<F>(F: FromReader<F>): <R, A>(f: (r: R) => A) => HKT2<F, R, A> +/** + * @since 2.11.0 + */ +export declare function fromReaderK<F extends URIS4>( + F: FromReader4<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => <S, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromReaderK<F extends URIS3>( + F: FromReader3<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => <E>(...a: A) => Kind3<F, R, E, B> +export declare function fromReaderK<F extends URIS3, E>( + F: FromReader3C<F, E> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => (...a: A) => Kind3<F, R, E, B> +export declare function fromReaderK<F extends URIS2>( + F: FromReader2<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => (...a: A) => Kind2<F, R, B> +export declare function fromReaderK<F>( + F: FromReader<F> +): <A extends ReadonlyArray<unknown>, R, B>(f: (...a: A) => Reader<R, B>) => (...a: A) => HKT2<F, R, B> +/** + * @since 2.11.0 + */ +export declare function chainReaderK<M extends URIS4>( + F: FromReader4<M>, + M: Chain4<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <S, E>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainReaderK<M extends URIS3>( + F: FromReader3<M>, + M: Chain3<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <E>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainReaderK<M extends URIS3, E>( + F: FromReader3C<M, E>, + M: Chain3C<M, E> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainReaderK<M extends URIS2>( + F: FromReader2<M>, + M: Chain2<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind2<M, R, A>) => Kind2<M, R, B> +export declare function chainReaderK<M>( + F: FromReader<M>, + M: Chain<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: HKT2<M, R, A>) => HKT2<M, R, B> +/** + * @since 2.11.0 + */ +export declare function chainFirstReaderK<M extends URIS4>( + F: FromReader4<M>, + M: Chain4<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <S, E>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstReaderK<M extends URIS3>( + F: FromReader3<M>, + M: Chain3<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => <E>(ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstReaderK<M extends URIS3, E>( + F: FromReader3C<M, E>, + M: Chain3C<M, E> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstReaderK<M extends URIS2>( + F: FromReader2<M>, + M: Chain2<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Kind2<M, R, A>) => Kind2<M, R, A> +export declare function chainFirstReaderK<M>( + F: FromReader<M>, + M: Chain<M> +): <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: HKT2<M, R, A>) => HKT2<M, R, A> +export declare function tapReader<M extends URIS2>( + F: FromReader<M>, + M: Chain<M> +): <A, R, B>(self: HKT2<M, R, A>, f: (a: A) => Reader<R, B>) => HKT2<M, R, A> diff --git a/node_modules/fp-ts/lib/FromReader.js b/node_modules/fp-ts/lib/FromReader.js new file mode 100644 index 0000000..807cd53 --- /dev/null +++ b/node_modules/fp-ts/lib/FromReader.js @@ -0,0 +1,61 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ask = ask; +exports.asks = asks; +exports.fromReaderK = fromReaderK; +exports.chainReaderK = chainReaderK; +exports.chainFirstReaderK = chainFirstReaderK; +exports.tapReader = tapReader; +/** + * Lift a computation from the `Reader` monad. + * + * @since 2.11.0 + */ +var Chain_1 = require("./Chain"); +var function_1 = require("./function"); +var R = __importStar(require("./Reader")); +function ask(F) { + return function () { return F.fromReader(R.ask()); }; +} +function asks(F) { + return F.fromReader; +} +function fromReaderK(F) { + return function (f) { return (0, function_1.flow)(f, F.fromReader); }; +} +function chainReaderK(F, M) { + var fromReaderKF = fromReaderK(F); + return function (f) { return function (ma) { return M.chain(ma, fromReaderKF(f)); }; }; +} +function chainFirstReaderK(F, M) { + var tapM = tapReader(F, M); + return function (f) { return function (self) { return tapM(self, f); }; }; +} +/** @internal */ +function tapReader(F, M) { + var tapM = (0, Chain_1.tap)(M); + return function (self, f) { return tapM(self, (0, function_1.flow)(f, F.fromReader)); }; +} diff --git a/node_modules/fp-ts/lib/FromState.d.ts b/node_modules/fp-ts/lib/FromState.d.ts new file mode 100644 index 0000000..2aba787 --- /dev/null +++ b/node_modules/fp-ts/lib/FromState.d.ts @@ -0,0 +1,128 @@ +/** + * Lift a computation from the `State` monad. + * + * @since 2.11.0 + */ +import { Chain, Chain2, Chain3, Chain4 } from './Chain' +import { Endomorphism } from './Endomorphism' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import * as S from './State' +import State = S.State +/** + * @category model + * @since 2.11.0 + */ +export interface FromState<F> { + readonly URI: F + readonly fromState: <S, A>(fa: State<S, A>) => HKT2<F, S, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState2<F extends URIS2> { + readonly URI: F + readonly fromState: <S, A>(fa: State<S, A>) => Kind2<F, S, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState3<F extends URIS3> { + readonly URI: F + readonly fromState: <S, A, E>(fa: State<S, A>) => Kind3<F, S, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromState: <S, A>(fa: State<S, A>) => Kind3<F, S, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromState4<F extends URIS4> { + readonly URI: F + readonly fromState: <S, A, R, E>(fa: State<S, A>) => Kind4<F, S, R, E, A> +} +/** + * @category constructors + * @since 2.11.0 + */ +export declare function get<F extends URIS4>(F: FromState4<F>): <S, R, E>() => Kind4<F, S, R, E, S> +export declare function get<F extends URIS3>(F: FromState3<F>): <S, E>() => Kind3<F, S, E, S> +export declare function get<F extends URIS3, E>(F: FromState3C<F, E>): <S>() => Kind3<F, S, E, S> +export declare function get<F extends URIS2>(F: FromState2<F>): <S>() => Kind2<F, S, S> +export declare function get<F>(F: FromState<F>): <S>() => HKT2<F, S, S> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function put<F extends URIS4>(F: FromState4<F>): <S, R, E>(s: S) => Kind4<F, S, R, E, void> +export declare function put<F extends URIS3>(F: FromState3<F>): <S, E>(s: S) => Kind3<F, S, E, void> +export declare function put<F extends URIS3, E>(F: FromState3C<F, E>): <S>(s: S) => Kind3<F, S, E, void> +export declare function put<F extends URIS2>(F: FromState2<F>): <S>(s: S) => Kind2<F, S, void> +export declare function put<F>(F: FromState<F>): <S>(s: S) => HKT2<F, S, void> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function modify<F extends URIS4>( + F: FromState4<F> +): <S, R, E>(f: Endomorphism<S>) => Kind4<F, S, R, E, void> +export declare function modify<F extends URIS3>(F: FromState3<F>): <S, E>(f: Endomorphism<S>) => Kind3<F, S, E, void> +export declare function modify<F extends URIS3, E>( + F: FromState3C<F, E> +): <S>(f: Endomorphism<S>) => Kind3<F, S, E, void> +export declare function modify<F extends URIS2>(F: FromState2<F>): <S>(f: Endomorphism<S>) => Kind2<F, S, void> +export declare function modify<F>(F: FromState<F>): <S>(f: Endomorphism<S>) => HKT2<F, S, void> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function gets<F extends URIS4>(F: FromState4<F>): <S, R, E, A>(f: (s: S) => A) => Kind4<F, S, R, E, A> +export declare function gets<F extends URIS3>(F: FromState3<F>): <S, E, A>(f: (s: S) => A) => Kind3<F, S, E, A> +export declare function gets<F extends URIS3, E>(F: FromState3C<F, E>): <S, A>(f: (s: S) => A) => Kind3<F, S, E, A> +export declare function gets<F extends URIS2>(F: FromState2<F>): <S, A>(f: (s: S) => A) => Kind2<F, S, A> +export declare function gets<F>(F: FromState<F>): <S, A>(f: (s: S) => A) => HKT2<F, S, A> +/** + * @since 2.11.0 + */ +export declare function fromStateK<F extends URIS4>( + F: FromState4<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => <R, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromStateK<F extends URIS3>( + F: FromState3<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => <E>(...a: A) => Kind3<F, S, E, B> +export declare function fromStateK<F extends URIS3, E>( + F: FromState3C<F, E> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => (...a: A) => Kind3<F, S, E, B> +export declare function fromStateK<F extends URIS2>( + F: FromState2<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => (...a: A) => Kind2<F, S, B> +export declare function fromStateK<F>( + F: FromState<F> +): <A extends ReadonlyArray<unknown>, S, B>(f: (...a: A) => State<S, B>) => (...a: A) => HKT2<F, S, B> +/** + * @since 2.11.0 + */ +export declare function chainStateK<M extends URIS4>( + F: FromState4<M>, + M: Chain4<M> +): <A, S, B>(f: (a: A) => State<S, B>) => <R, E>(ma: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainStateK<M extends URIS3>( + F: FromState3<M>, + M: Chain3<M> +): <A, S, B>(f: (a: A) => State<S, B>) => <E>(ma: Kind3<M, S, E, A>) => Kind3<M, S, E, B> +export declare function chainStateK<M extends URIS2>( + F: FromState2<M>, + M: Chain2<M> +): <A, S, B>(f: (a: A) => State<S, B>) => (ma: Kind2<M, S, A>) => Kind2<M, S, B> +export declare function chainStateK<M>( + F: FromState<M>, + M: Chain<M> +): <A, S, B>(f: (a: A) => State<S, B>) => (ma: HKT2<M, S, A>) => HKT2<M, S, B> diff --git a/node_modules/fp-ts/lib/FromState.js b/node_modules/fp-ts/lib/FromState.js new file mode 100644 index 0000000..28715bf --- /dev/null +++ b/node_modules/fp-ts/lib/FromState.js @@ -0,0 +1,52 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.get = get; +exports.put = put; +exports.modify = modify; +exports.gets = gets; +exports.fromStateK = fromStateK; +exports.chainStateK = chainStateK; +var function_1 = require("./function"); +var S = __importStar(require("./State")); +function get(F) { + return function () { return F.fromState(S.get()); }; +} +function put(F) { + return function (s) { return F.fromState(S.put(s)); }; +} +function modify(F) { + return (0, function_1.flow)(S.modify, F.fromState); +} +function gets(F) { + return (0, function_1.flow)(S.gets, F.fromState); +} +function fromStateK(F) { + return function (f) { return (0, function_1.flow)(f, F.fromState); }; +} +function chainStateK(F, M) { + var fromStateKF = fromStateK(F); + return function (f) { return function (ma) { return M.chain(ma, fromStateKF(f)); }; }; +} diff --git a/node_modules/fp-ts/lib/FromTask.d.ts b/node_modules/fp-ts/lib/FromTask.d.ts new file mode 100644 index 0000000..23900fe --- /dev/null +++ b/node_modules/fp-ts/lib/FromTask.d.ts @@ -0,0 +1,144 @@ +/** + * Lift a computation from the `Task` monad + * + * @since 2.10.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { FromIO, FromIO1, FromIO2, FromIO2C, FromIO3, FromIO3C, FromIO4 } from './FromIO' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Task } from './Task' +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask<F> extends FromIO<F> { + readonly fromTask: <A>(fa: Task<A>) => HKT<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask1<F extends URIS> extends FromIO1<F> { + readonly fromTask: <A>(fa: Task<A>) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask2<F extends URIS2> extends FromIO2<F> { + readonly fromTask: <A, E>(fa: Task<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask2C<F extends URIS2, E> extends FromIO2C<F, E> { + readonly fromTask: <A>(fa: Task<A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask3<F extends URIS3> extends FromIO3<F> { + readonly fromTask: <A, R, E>(fa: Task<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask3C<F extends URIS3, E> extends FromIO3C<F, E> { + readonly fromTask: <A, R>(fa: Task<A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface FromTask4<F extends URIS4> extends FromIO4<F> { + readonly fromTask: <A, S, R, E>(fa: Task<A>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.10.0 + */ +export declare function fromTaskK<F extends URIS4>( + F: FromTask4<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <S, R, E>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromTaskK<F extends URIS3>( + F: FromTask3<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <R, E>(...a: A) => Kind3<F, R, E, B> +export declare function fromTaskK<F extends URIS3, E>( + F: FromTask3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromTaskK<F extends URIS2>( + F: FromTask2<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <E>(...a: A) => Kind2<F, E, B> +export declare function fromTaskK<F extends URIS2, E>( + F: FromTask2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => Kind2<F, E, B> +export declare function fromTaskK<F extends URIS>( + F: FromTask1<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => Kind<F, B> +export declare function fromTaskK<F>( + F: FromTask<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function chainTaskK<M extends URIS4>( + F: FromTask4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => Task<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B> +export declare function chainTaskK<M extends URIS3>( + F: FromTask3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => Task<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainTaskK<M extends URIS3, E>( + F: FromTask3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Task<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B> +export declare function chainTaskK<M extends URIS2>( + F: FromTask2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => Task<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainTaskK<M extends URIS2, E>( + F: FromTask2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, B> +export declare function chainTaskK<M extends URIS>( + F: FromTask1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind<M, A>) => Kind<M, B> +export declare function chainTaskK<M>( + F: FromTask<M>, + M: Chain<M> +): <A, B>(f: (a: A) => Task<B>) => (first: HKT<M, A>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function chainFirstTaskK<M extends URIS4>( + F: FromTask4<M>, + M: Chain4<M> +): <A, B>(f: (a: A) => Task<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A> +export declare function chainFirstTaskK<M extends URIS3>( + F: FromTask3<M>, + M: Chain3<M> +): <A, B>(f: (a: A) => Task<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstTaskK<M extends URIS3, E>( + F: FromTask3C<M, E>, + M: Chain3C<M, E> +): <A, B>(f: (a: A) => Task<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A> +export declare function chainFirstTaskK<M extends URIS2>( + F: FromTask2<M>, + M: Chain2<M> +): <A, B>(f: (a: A) => Task<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstTaskK<M extends URIS2, E>( + F: FromTask2C<M, E>, + M: Chain2C<M, E> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, A> +export declare function chainFirstTaskK<M extends URIS>( + F: FromTask1<M>, + M: Chain1<M> +): <A, B>(f: (a: A) => Task<B>) => (first: Kind<M, A>) => Kind<M, A> +export declare function chainFirstTaskK<M>( + F: FromTask<M>, + M: Chain<M> +): <A, B>(f: (a: A) => Task<B>) => (first: HKT<M, A>) => HKT<M, A> diff --git a/node_modules/fp-ts/lib/FromTask.js b/node_modules/fp-ts/lib/FromTask.js new file mode 100644 index 0000000..7b774e7 --- /dev/null +++ b/node_modules/fp-ts/lib/FromTask.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromTaskK = fromTaskK; +exports.chainTaskK = chainTaskK; +exports.chainFirstTaskK = chainFirstTaskK; +exports.tapTask = tapTask; +/** + * Lift a computation from the `Task` monad + * + * @since 2.10.0 + */ +var Chain_1 = require("./Chain"); +var function_1 = require("./function"); +function fromTaskK(F) { + return function (f) { return (0, function_1.flow)(f, F.fromTask); }; +} +function chainTaskK(F, M) { + return function (f) { + var g = (0, function_1.flow)(f, F.fromTask); + return function (first) { return M.chain(first, g); }; + }; +} +function chainFirstTaskK(F, M) { + var tapTaskM = tapTask(F, M); + return function (f) { return function (first) { return tapTaskM(first, f); }; }; +} +/** @internal */ +function tapTask(F, M) { + var tapM = (0, Chain_1.tap)(M); + return function (self, f) { return tapM(self, (0, function_1.flow)(f, F.fromTask)); }; +} diff --git a/node_modules/fp-ts/lib/FromThese.d.ts b/node_modules/fp-ts/lib/FromThese.d.ts new file mode 100644 index 0000000..6399252 --- /dev/null +++ b/node_modules/fp-ts/lib/FromThese.d.ts @@ -0,0 +1,73 @@ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { These } from './These' +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese<F> { + readonly URI: F + readonly fromThese: <E, A>(e: These<E, A>) => HKT2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese2<F extends URIS2> { + readonly URI: F + readonly fromThese: <E, A>(fa: These<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly fromThese: <A>(fa: These<E, A>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese3<F extends URIS3> { + readonly URI: F + readonly fromThese: <E, A, R>(fa: These<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly fromThese: <A, R>(fa: These<E, A>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface FromThese4<F extends URIS4> { + readonly URI: F + readonly fromThese: <E, A, S, R>(fa: These<E, A>) => Kind4<F, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export declare function fromTheseK<F extends URIS4>( + F: FromThese4<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => <S, R>(...a: A) => Kind4<F, S, R, E, B> +export declare function fromTheseK<F extends URIS3>( + F: FromThese3<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromTheseK<F extends URIS3, E>( + F: FromThese3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => These<E, B>) => <R>(...a: A) => Kind3<F, R, E, B> +export declare function fromTheseK<F extends URIS2>( + F: FromThese2<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromTheseK<F extends URIS2, E>( + F: FromThese2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => These<E, B>) => (...a: A) => Kind2<F, E, B> +export declare function fromTheseK<F>( + F: FromThese<F> +): <A extends ReadonlyArray<unknown>, E, B>(f: (...a: A) => These<E, B>) => (...a: A) => HKT2<F, E, B> diff --git a/node_modules/fp-ts/lib/FromThese.js b/node_modules/fp-ts/lib/FromThese.js new file mode 100644 index 0000000..b48063a --- /dev/null +++ b/node_modules/fp-ts/lib/FromThese.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromTheseK = fromTheseK; +/** + * The `FromThese` type class represents those data types which support errors and warnings. + * + * @since 2.11.0 + */ +var function_1 = require("./function"); +function fromTheseK(F) { + return function (f) { return (0, function_1.flow)(f, F.fromThese); }; +} diff --git a/node_modules/fp-ts/lib/Functor.d.ts b/node_modules/fp-ts/lib/Functor.d.ts new file mode 100644 index 0000000..f12f41b --- /dev/null +++ b/node_modules/fp-ts/lib/Functor.d.ts @@ -0,0 +1,452 @@ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Functor<F> { + readonly URI: F + readonly map: <A, B>(fa: HKT<F, A>, f: (a: A) => B) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor1<F extends URIS> { + readonly URI: F + readonly map: <A, B>(fa: Kind<F, A>, f: (a: A) => B) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor2<F extends URIS2> { + readonly URI: F + readonly map: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly map: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor3<F extends URIS3> { + readonly URI: F + readonly map: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Functor3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly map: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Functor4<F extends URIS4> { + readonly URI: F + readonly map: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => B) => Kind4<F, S, R, E, B> +} +/** + * `map` composition. + * + * @since 2.10.0 + */ +export declare function map<F extends URIS3, G extends URIS>( + F: Functor3<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, Kind<G, A>>) => Kind3<F, R, E, Kind<G, B>> +export declare function map<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Functor2<G> +): <A, B>(f: (a: A) => B) => <EF, EG>(fa: Kind2<F, EF, Kind2<G, EG, A>>) => Kind2<F, EF, Kind2<G, EG, B>> +export declare function map<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, Kind<G, A>>) => Kind2<F, E, Kind<G, B>> +export declare function map<F extends URIS, G extends URIS3>( + F: Functor1<F>, + G: Functor3<G> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind<F, Kind3<G, R, E, A>>) => Kind<F, Kind3<G, R, E, B>> +export declare function map<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Functor2<G> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind<F, Kind2<G, E, A>>) => Kind<F, Kind2<G, E, B>> +export declare function map<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => (fa: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +export declare function map<F, G extends URIS2>( + F: Functor<F>, + G: Functor2<G> +): <A, B>(f: (a: A) => B) => <E>(fa: HKT<F, Kind2<G, E, A>>) => HKT<F, Kind2<G, E, B>> +export declare function map<F, G extends URIS>( + F: Functor<F>, + G: Functor1<G> +): <A, B>(f: (a: A) => B) => (fa: HKT<F, Kind<G, A>>) => HKT<F, Kind<G, B>> +export declare function map<F, G>( + F: Functor<F>, + G: Functor<G> +): <A, B>(f: (a: A) => B) => (fa: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +/** + * @category mapping + * @since 2.10.0 + */ +export declare function flap<F extends URIS4>( + F: Functor4<F> +): <A>(a: A) => <S, R, E, B>(fab: Kind4<F, S, R, E, (a: A) => B>) => Kind4<F, S, R, E, B> +export declare function flap<F extends URIS3>( + F: Functor3<F> +): <A>(a: A) => <R, E, B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> +export declare function flap<F extends URIS2>( + F: Functor2<F> +): <A>(a: A) => <E, B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> +export declare function flap<F extends URIS>(F: Functor1<F>): <A>(a: A) => <B>(fab: Kind<F, (a: A) => B>) => Kind<F, B> +export declare function flap<F>(F: Functor<F>): <A>(a: A) => <B>(fab: HKT<F, (a: A) => B>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function bindTo<F extends URIS4>( + F: Functor4<F> +): <N extends string>( + name: N +) => <S, R, E, A>( + fa: Kind4<F, S, R, E, A> +) => Kind4< + F, + S, + R, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS3>( + F: Functor3<F> +): <N extends string>( + name: N +) => <R, E, A>( + fa: Kind3<F, R, E, A> +) => Kind3< + F, + R, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS3, E>( + F: Functor3C<F, E> +): <N extends string>( + name: N +) => <R, A>( + fa: Kind3<F, R, E, A> +) => Kind3< + F, + R, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS2>( + F: Functor2<F> +): <N extends string>( + name: N +) => <E, A>( + fa: Kind2<F, E, A> +) => Kind2< + F, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS2, E>( + F: Functor2C<F, E> +): <N extends string>( + name: N +) => <A>(fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in N]: A + } +> +export declare function bindTo<F extends URIS>( + F: Functor1<F> +): <N extends string>( + name: N +) => <A>(fa: Kind<F, A>) => Kind< + F, + { + readonly [K in N]: A + } +> +export declare function bindTo<F>(F: Functor<F>): <N extends string>( + name: N +) => <A>(fa: HKT<F, A>) => HKT< + F, + { + readonly [K in N]: A + } +> +/** + * @since 2.13.0 + */ +declare function let_<F extends URIS4>( + F: Functor4<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <S, R, E>( + fa: Kind4<F, S, R, E, A> +) => Kind4< + F, + S, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS3>( + F: Functor3<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R, E>( + fa: Kind3<F, R, E, A> +) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS3, E>( + F: Functor3C<F, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R>(fa: Kind3<F, R, E, A>) => Kind3< + F, + R, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS2>( + F: Functor2<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>(fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS2, E>( + F: Functor2C<F, E> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: Kind2<F, E, A>) => Kind2< + F, + E, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F extends URIS>( + F: Functor1<F> +): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: Kind<F, A>) => Kind< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +declare function let_<F>(F: Functor<F>): <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: HKT<F, A>) => HKT< + F, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +export { + /** + * @since 2.13.0 + */ + let_ as let +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition<F, G> { + readonly map: <A, B>(fa: HKT<F, HKT<G, A>>, f: (a: A) => B) => HKT<F, HKT<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorCompositionHKT1<F, G extends URIS> { + readonly map: <A, B>(fa: HKT<F, Kind<G, A>>, f: (a: A) => B) => HKT<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorCompositionHKT2<F, G extends URIS2> { + readonly map: <E, A, B>(fa: HKT<F, Kind2<G, E, A>>, f: (a: A) => B) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorCompositionHKT2C<F, G extends URIS2, E> { + readonly map: <A, B>(fa: HKT<F, Kind2<G, E, A>>, f: (a: A) => B) => HKT<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition11<F extends URIS, G extends URIS> { + readonly map: <A, B>(fa: Kind<F, Kind<G, A>>, f: (a: A) => B) => Kind<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition12<F extends URIS, G extends URIS2> { + readonly map: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition12C<F extends URIS, G extends URIS2, E> { + readonly map: <A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition21<F extends URIS2, G extends URIS> { + readonly map: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition2C1<F extends URIS2, G extends URIS, E> { + readonly map: <A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition22<F extends URIS2, G extends URIS2> { + readonly map: <FE, GE, A, B>(fa: Kind2<F, FE, Kind2<G, GE, A>>, f: (a: A) => B) => Kind2<F, FE, Kind2<G, GE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorComposition22C<F extends URIS2, G extends URIS2, E> { + readonly map: <FE, A, B>(fa: Kind2<F, FE, Kind2<G, E, A>>, f: (a: A) => B) => Kind2<F, FE, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface FunctorComposition23<F extends URIS2, G extends URIS3> { + readonly map: <FE, R, E, A, B>(fa: Kind2<F, FE, Kind3<G, R, E, A>>, f: (a: A) => B) => Kind2<F, FE, Kind3<G, R, E, B>> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface FunctorComposition23C<F extends URIS2, G extends URIS3, E> { + readonly map: <FE, R, A, B>(fa: Kind2<F, FE, Kind3<G, R, E, A>>, f: (a: A) => B) => Kind2<F, FE, Kind3<G, R, E, B>> +} +/** + * Use [`map`](#map) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS3, E>( + F: Functor2<F>, + G: Functor3C<G, E> +): FunctorComposition23C<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS2, E>( + F: Functor2<F>, + G: Functor2C<G, E> +): FunctorComposition22C<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS2>( + F: Functor2<F>, + G: Functor2<G> +): FunctorComposition22<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS, E>( + F: Functor2C<F, E>, + G: Functor1<G> +): FunctorComposition2C1<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS2, G extends URIS>( + F: Functor2<F>, + G: Functor1<G> +): FunctorComposition21<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS, G extends URIS2, E>( + F: Functor1<F>, + G: Functor2C<G, E> +): FunctorComposition12C<F, G, E> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS, G extends URIS2>( + F: Functor1<F>, + G: Functor2<G> +): FunctorComposition12<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F extends URIS, G extends URIS>( + F: Functor1<F>, + G: Functor1<G> +): FunctorComposition11<F, G> +/** @deprecated */ +export declare function getFunctorComposition<F, G>(F: Functor<F>, G: Functor<G>): FunctorComposition<F, G> diff --git a/node_modules/fp-ts/lib/Functor.js b/node_modules/fp-ts/lib/Functor.js new file mode 100644 index 0000000..871c4a6 --- /dev/null +++ b/node_modules/fp-ts/lib/Functor.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.map = map; +exports.flap = flap; +exports.bindTo = bindTo; +exports.let = let_; +exports.getFunctorComposition = getFunctorComposition; +exports.as = as; +exports.asUnit = asUnit; +/** + * A `Functor` is a type constructor which supports a mapping operation `map`. + * + * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type + * constructor `f` to represent some computational context. + * + * Instances must satisfy the following laws: + * + * 1. Identity: `F.map(fa, a => a) <-> fa` + * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)` + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +function map(F, G) { + return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; }; +} +function flap(F) { + return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; }; +} +function bindTo(F) { + return function (name) { return function (fa) { return F.map(fa, function (a) { + var _a; + return (_a = {}, _a[name] = a, _a); + }); }; }; +} +function let_(F) { + return function (name, f) { return function (fa) { return F.map(fa, function (a) { + var _a; + return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a)); + }); }; }; +} +/** @deprecated */ +function getFunctorComposition(F, G) { + var _map = map(F, G); + return { + map: function (fga, f) { return (0, function_1.pipe)(fga, _map(f)); } + }; +} +/** @internal */ +function as(F) { + return function (self, b) { return F.map(self, function () { return b; }); }; +} +/** @internal */ +function asUnit(F) { + var asM = as(F); + return function (self) { return asM(self, undefined); }; +} diff --git a/node_modules/fp-ts/lib/FunctorWithIndex.d.ts b/node_modules/fp-ts/lib/FunctorWithIndex.d.ts new file mode 100644 index 0000000..09340da --- /dev/null +++ b/node_modules/fp-ts/lib/FunctorWithIndex.d.ts @@ -0,0 +1,203 @@ +import { + Functor, + Functor1, + Functor2, + Functor2C, + Functor3, + Functor3C, + Functor4, + FunctorComposition, + FunctorComposition2C1, + FunctorComposition11, + FunctorComposition12, + FunctorComposition12C, + FunctorComposition21, + FunctorComposition22, + FunctorComposition22C +} from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex<F, I> extends Functor<F> { + readonly mapWithIndex: <A, B>(fa: HKT<F, A>, f: (i: I, a: A) => B) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex1<F extends URIS, I> extends Functor1<F> { + readonly mapWithIndex: <A, B>(fa: Kind<F, A>, f: (i: I, a: A) => B) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex2<F extends URIS2, I> extends Functor2<F> { + readonly mapWithIndex: <E, A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex2C<F extends URIS2, I, E> extends Functor2C<F, E> { + readonly mapWithIndex: <A, B>(fa: Kind2<F, E, A>, f: (i: I, a: A) => B) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex3<F extends URIS3, I> extends Functor3<F> { + readonly mapWithIndex: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface FunctorWithIndex3C<F extends URIS3, I, E> extends Functor3C<F, E> { + readonly mapWithIndex: <R, A, B>(fa: Kind3<F, R, E, A>, f: (i: I, a: A) => B) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface FunctorWithIndex4<F extends URIS4, I> extends Functor4<F> { + readonly mapWithIndex: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (i: I, a: A) => B) => Kind4<F, S, R, E, B> +} +/** + * `mapWithIndex` composition. + * + * @since 2.10.0 + */ +export declare function mapWithIndex<F extends URIS, I, G extends URIS, J>( + F: FunctorWithIndex1<F, I>, + G: FunctorWithIndex1<G, J> +): <A, B>(f: (ij: readonly [I, J], a: A) => B) => (fa: Kind<F, Kind<G, A>>) => Kind<F, Kind<G, B>> +export declare function mapWithIndex<F, I, G, J>( + F: FunctorWithIndex<F, I>, + G: FunctorWithIndex<G, J> +): <A, B>(f: (ij: readonly [I, J], a: A) => B) => (fa: HKT<F, HKT<G, A>>) => HKT<F, HKT<G, B>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition<F, FI, G, GI> extends FunctorComposition<F, G> { + readonly mapWithIndex: <A, B>(fga: HKT<F, HKT<G, A>>, f: (i: [FI, GI], a: A) => B) => HKT<F, HKT<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition11<F extends URIS, FI, G extends URIS, GI> + extends FunctorComposition11<F, G> { + readonly mapWithIndex: <A, B>(fa: Kind<F, Kind<G, A>>, f: (i: [FI, GI], a: A) => B) => Kind<F, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition12<F extends URIS, FI, G extends URIS2, GI> + extends FunctorComposition12<F, G> { + readonly mapWithIndex: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition12C<F extends URIS, FI, G extends URIS2, GI, E> + extends FunctorComposition12C<F, G, E> { + readonly mapWithIndex: <A, B>(fa: Kind<F, Kind2<G, E, A>>, f: (i: [FI, GI], a: A) => B) => Kind<F, Kind2<G, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition21<F extends URIS2, FI, G extends URIS, GI> + extends FunctorComposition21<F, G> { + readonly mapWithIndex: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (i: [FI, GI], a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition2C1<F extends URIS2, FI, G extends URIS, GI, E> + extends FunctorComposition2C1<F, G, E> { + readonly mapWithIndex: <A, B>(fa: Kind2<F, E, Kind<G, A>>, f: (i: [FI, GI], a: A) => B) => Kind2<F, E, Kind<G, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition22<F extends URIS2, FI, G extends URIS2, GI> + extends FunctorComposition22<F, G> { + readonly mapWithIndex: <FE, GE, A, B>( + fa: Kind2<F, FE, Kind2<G, GE, A>>, + f: (i: [FI, GI], a: A) => B + ) => Kind2<F, FE, Kind2<G, GE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface FunctorWithIndexComposition22C<F extends URIS2, FI, G extends URIS2, GI, E> + extends FunctorComposition22C<F, G, E> { + readonly mapWithIndex: <FE, A, B>( + fa: Kind2<F, FE, Kind2<G, E, A>>, + f: (i: [FI, GI], a: A) => B + ) => Kind2<F, FE, Kind2<G, E, B>> +} +/** + * Use [`mapWithIndex`](#mapwithindex) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI, E>( + F: FunctorWithIndex2<F, FI>, + G: FunctorWithIndex2C<G, FI, E> +): FunctorWithIndexComposition22C<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS2, GI>( + F: FunctorWithIndex2<F, FI>, + G: FunctorWithIndex2<G, FI> +): FunctorWithIndexComposition22<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS, GI, E>( + F: FunctorWithIndex2C<F, FI, E>, + G: FunctorWithIndex1<G, GI> +): FunctorWithIndexComposition2C1<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS2, FI, G extends URIS, GI>( + F: FunctorWithIndex2<F, FI>, + G: FunctorWithIndex1<G, GI> +): FunctorWithIndexComposition21<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS, FI, G extends URIS2, GI, E>( + F: FunctorWithIndex1<F, FI>, + G: FunctorWithIndex2C<G, GI, E> +): FunctorWithIndexComposition12C<F, FI, G, GI, E> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS, FI, G extends URIS2, GI>( + F: FunctorWithIndex1<F, FI>, + G: FunctorWithIndex2<G, GI> +): FunctorWithIndexComposition12<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F extends URIS, FI, G extends URIS, GI>( + F: FunctorWithIndex1<F, FI>, + G: FunctorWithIndex1<G, GI> +): FunctorWithIndexComposition11<F, FI, G, GI> +/** @deprecated */ +export declare function getFunctorWithIndexComposition<F, FI, G, GI>( + F: FunctorWithIndex<F, FI>, + G: FunctorWithIndex<G, GI> +): FunctorWithIndexComposition<F, FI, G, GI> diff --git a/node_modules/fp-ts/lib/FunctorWithIndex.js b/node_modules/fp-ts/lib/FunctorWithIndex.js new file mode 100644 index 0000000..44cf0ed --- /dev/null +++ b/node_modules/fp-ts/lib/FunctorWithIndex.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.mapWithIndex = mapWithIndex; +exports.getFunctorWithIndexComposition = getFunctorWithIndexComposition; +/** + * A `FunctorWithIndex` is a type constructor which supports a mapping operation `mapWithIndex`. + * + * `mapWithIndex` can be used to turn functions `i -> a -> b` into functions `f a -> f b` whose argument and return types use the type + * constructor `f` to represent some computational context. + * + * Instances must satisfy the following laws: + * + * 1. Identity: `F.mapWithIndex(fa, (_i, a) => a) <-> fa` + * 2. Composition: `F.mapWithIndex(fa, (_i, a) => bc(ab(a))) <-> F.mapWithIndex(F.mapWithIndex(fa, ab), bc)` + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +function mapWithIndex(F, G) { + return function (f) { return function (fa) { return F.mapWithIndex(fa, function (i, ga) { return G.mapWithIndex(ga, function (j, a) { return f([i, j], a); }); }); }; }; +} +/** @deprecated */ +function getFunctorWithIndexComposition(F, G) { + var map = (0, Functor_1.getFunctorComposition)(F, G).map; + var _mapWithIndex = mapWithIndex(F, G); + return { + map: map, + mapWithIndex: function (fga, f) { return (0, function_1.pipe)(fga, _mapWithIndex(f)); } + }; +} diff --git a/node_modules/fp-ts/lib/Group.d.ts b/node_modules/fp-ts/lib/Group.d.ts new file mode 100644 index 0000000..a79671d --- /dev/null +++ b/node_modules/fp-ts/lib/Group.d.ts @@ -0,0 +1,15 @@ +/** + * A `Group` is a `Monoid` with inverses. Instances must satisfy the following law in addition to the monoid laws: + * + * - Inverse: `concat(inverse(a), a) <-> empty = concat(a, inverse(a))` + * + * @since 2.0.0 + */ +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Group<A> extends Monoid<A> { + readonly inverse: (a: A) => A +} diff --git a/node_modules/fp-ts/lib/Group.js b/node_modules/fp-ts/lib/Group.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Group.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/HKT/index.js b/node_modules/fp-ts/lib/HKT/index.js new file mode 100644 index 0000000..21ff541 --- /dev/null +++ b/node_modules/fp-ts/lib/HKT/index.js @@ -0,0 +1,7 @@ +"use strict"; +/** + * Type defunctionalization (as describe in [Lightweight higher-kinded polymorphism](https://www.cl.cam.ac.uk/~jdy22/papers/lightweight-higher-kinded-polymorphism.pdf)) + * + * @since 2.0.0 + */ +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/HKT/package.json b/node_modules/fp-ts/lib/HKT/package.json new file mode 100644 index 0000000..7498fc5 --- /dev/null +++ b/node_modules/fp-ts/lib/HKT/package.json @@ -0,0 +1,3 @@ +{ + "typings": "../../HKT.d.ts" +} \ No newline at end of file diff --git a/node_modules/fp-ts/lib/HeytingAlgebra.d.ts b/node_modules/fp-ts/lib/HeytingAlgebra.d.ts new file mode 100644 index 0000000..277a1c4 --- /dev/null +++ b/node_modules/fp-ts/lib/HeytingAlgebra.d.ts @@ -0,0 +1,32 @@ +/** + * Heyting algebras are bounded (distributive) lattices that are also equipped with an additional binary operation + * `implies` (also written as `→`). Heyting algebras also define a complement operation `not` (sometimes written as + * `¬a`) + * + * However, in Heyting algebras this operation is only a pseudo-complement, since Heyting algebras do not necessarily + * provide the law of the excluded middle. This means that there is no guarantee that `a ∨ ¬a = 1`. + * + * Heyting algebras model intuitionistic logic. For a model of classical logic, see the boolean algebra type class + * implemented as `BooleanAlgebra`. + * + * A `HeytingAlgebra` must satisfy the following laws in addition to `BoundedDistributiveLattice` laws: + * + * - Implication: + * - `a → a <-> 1` + * - `a ∧ (a → b) <-> a ∧ b` + * - `b ∧ (a → b) <-> b` + * - `a → (b ∧ c) <-> (a → b) ∧ (a → c)` + * - Complemented + * - `¬a <-> a → 0` + * + * @since 2.0.0 + */ +import { BoundedDistributiveLattice } from './BoundedDistributiveLattice' +/** + * @category model + * @since 2.0.0 + */ +export interface HeytingAlgebra<A> extends BoundedDistributiveLattice<A> { + readonly implies: (x: A, y: A) => A + readonly not: (x: A) => A +} diff --git a/node_modules/fp-ts/lib/HeytingAlgebra.js b/node_modules/fp-ts/lib/HeytingAlgebra.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/HeytingAlgebra.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/IO.d.ts b/node_modules/fp-ts/lib/IO.d.ts new file mode 100644 index 0000000..c0a71e9 --- /dev/null +++ b/node_modules/fp-ts/lib/IO.d.ts @@ -0,0 +1,311 @@ +/** + * ```ts + * interface IO<A> { + * (): A + * } + * ``` + * + * `IO<A>` represents a non-deterministic synchronous computation that can cause side effects, yields a value of + * type `A` and **never fails**. + * + * If you want to represent a synchronous computation that may fail, please see `IOEither`. + * If you want to represent a synchronous computation that may yield nothing, please see `IOOption`. + * + * @since 2.0.0 + */ +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { ChainRec1 } from './ChainRec' +import { FromIO1 } from './FromIO' +import { Functor1 } from './Functor' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface IO<A> { + (): A +} +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: IO<A>) => IO<B> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: IO<A>) => <B>(fab: IO<(a: A) => B>) => IO<B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => IO<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => IO<B>): (ma: IO<A>) => IO<B> + <A, B>(ma: IO<A>, f: (a: A) => IO<B>): IO<B> +} +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: IO<IO<A>>) => IO<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'IO' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: IO<A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: IO<_>) => IO<A> + <_, A>(self: IO<_>, a: A): IO<A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: IO<_>) => IO<void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'IO', (a: A) => B>) => import('./HKT').Kind<'IO', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: IO<B> +) => <A>(first: import('./HKT').Kind<'IO', A>) => import('./HKT').Kind<'IO', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: IO<B> +) => <A>(first: import('./HKT').Kind<'IO', A>) => import('./HKT').Kind<'IO', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: IO<A>, f: (a: A) => IO<_>): IO<A> + <A, _>(f: (a: A) => IO<_>): (self: IO<A>) => IO<A> +} +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const fromIO: <A>(fa: IO<A>) => IO<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const ChainRec: ChainRec1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: IO<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'IO', A>) => import('./HKT').Kind<'IO', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'IO', A> +) => import('./HKT').Kind<'IO', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'IO', B> +) => ( + ma: import('./HKT').Kind<'IO', A> +) => import('./HKT').Kind<'IO', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: IO<B> +) => ( + fa: import('./HKT').Kind<'IO', A> +) => import('./HKT').Kind<'IO', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: IO<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IO<B> +) => (as: ReadonlyNonEmptyArray<A>) => IO<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IO<B> +) => (as: ReadonlyArray<A>) => IO<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => IO<B> +) => (as: ReadonlyArray<A>) => IO<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B>(f: (a: A) => IO<B>) => (as: ReadonlyArray<A>) => IO<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A>(arr: ReadonlyArray<IO<A>>) => IO<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => IO<B>) => (ma: IO<A>) => IO<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => IO<B>) => (first: IO<A>) => IO<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IO.Functor` instead of `IO.io` + * (where `IO` is from `import IO from 'fp-ts/IO'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const io: Monad1<URI> & MonadIO1<URI> & ChainRec1<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <A>(S: Semigroup<A>) => Semigroup<IO<A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMonoid: <A>(M: Monoid<A>) => Monoid<IO<A>> diff --git a/node_modules/fp-ts/lib/IO.js b/node_modules/fp-ts/lib/IO.js new file mode 100644 index 0000000..ea14d63 --- /dev/null +++ b/node_modules/fp-ts/lib/IO.js @@ -0,0 +1,366 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMonoid = exports.getSemigroup = exports.io = exports.chainFirst = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.FromIO = exports.ChainRec = exports.MonadIO = exports.fromIO = exports.tap = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.flatten = exports.flatMap = exports.of = exports.ap = exports.map = void 0; +/** + * ```ts + * interface IO<A> { + * (): A + * } + * ``` + * + * `IO<A>` represents a non-deterministic synchronous computation that can cause side effects, yields a value of + * type `A` and **never fails**. + * + * If you want to represent a synchronous computation that may fail, please see `IOEither`. + * If you want to represent a synchronous computation that may yield nothing, please see `IOOption`. + * + * @since 2.0.0 + */ +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var _map = function (ma, f) { return function () { return f(ma()); }; }; +var _ap = function (mab, ma) { return function () { return mab()(ma()); }; }; +var _chainRec = function (a, f) { return function () { + var e = f(a)(); + while (e._tag === 'Left') { + e = f(e.left)(); + } + return e.right; +}; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return _map(fa, f); }; }; +exports.map = map; +/** + * @since 2.0.0 + */ +var ap = function (fa) { return function (fab) { return _ap(fab, fa); }; }; +exports.ap = ap; +/** + * @category constructors + * @since 2.0.0 + */ +exports.of = function_1.constant; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return function () { + return f(ma())(); + }; +}); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'IO'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.fromIO = function_1.identity; +/** + * @category instances + * @since 2.7.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.ChainRec = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: _chainRec +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: function_1.identity +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function () { + var out = [f(0, _.head(as))()]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])()); + } + return out; + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); +}; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IO.Functor` instead of `IO.io` + * (where `IO` is from `import IO from 'fp-ts/IO'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.io = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + fromIO: exports.fromIO, + chainRec: _chainRec +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getSemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative); diff --git a/node_modules/fp-ts/lib/IOEither.d.ts b/node_modules/fp-ts/lib/IOEither.d.ts new file mode 100644 index 0000000..c595837 --- /dev/null +++ b/node_modules/fp-ts/lib/IOEither.d.ts @@ -0,0 +1,1042 @@ +/** + * `IOEither<E, A>` represents a synchronous computation that either yields a value of type `A` or fails yielding an + * error of type `E`. + * + * If you want to represent a synchronous computation that never fails, please see `IO`. + * If you want to represent a synchronous computation that may yield nothing, please see `IOOption`. + * + * @since 2.0.0 + */ +import { Alt2, Alt2C } from './Alt' +import { Applicative2, Applicative2C } from './Applicative' +import { Apply2 } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable2C } from './Compactable' +import * as E from './Either' +import { Filterable2C } from './Filterable' +import { FromEither2 } from './FromEither' +import { FromIO2 } from './FromIO' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import * as I from './IO' +import { Monad2, Monad2C } from './Monad' +import { MonadIO2, MonadIO2C } from './MonadIO' +import { MonadThrow2, MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import Either = E.Either +import IO = I.IO +/** + * @category model + * @since 2.0.0 + */ +export interface IOEither<E, A> extends IO<Either<E, A>> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <E = never, A = never>(l: E) => IOEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <E = never, A = never>(a: A) => IOEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightIO: <E = never, A = never>(ma: IO<A>) => IOEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftIO: <E = never, A = never>(me: IO<E>) => IOEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A>(fa: Either<E, A>) => IOEither<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, E = never>(fa: IO<A>) => IOEither<E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: IOEither<E, A>) => IO<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => (ma: IOEither<E, A>) => IO<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <E, A, B>( + onLeft: (e: E) => IO<B>, + onRight: (a: A) => IO<B> +) => (ma: IOEither<E, A>) => IO<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>(onLeft: (e: E) => IO<B>, onRight: (a: A) => IO<B>) => (ma: IOEither<E, A>) => IO<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, B, A, C>( + onLeft: (e: E) => IO<B>, + onRight: (a: A) => IO<C> +) => (ma: IOEither<E, A>) => IO<B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C>( + onLeft: (e: E) => IO<B>, + onRight: (a: A) => IO<C> +) => (ma: IOEither<E, A>) => IO<B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, A>(onLeft: (e: E) => IO<A>) => (ma: IOEither<E, A>) => IO<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <E, B>(onLeft: (e: E) => IO<B>) => <A>(ma: IOEither<E, A>) => IO<A | B> +/** + * Constructs a new `IOEither` from a function that performs a side effect and might throw + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <E, A>(f: LazyArg<A>, onThrow: (reason: unknown) => E) => IOEither<E, A> +/** + * Converts a function that may throw to one returning a `IOEither`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B, + onThrow: (reason: unknown) => E +) => (...a: A) => IOEither<E, B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <E, A>(fa: IOEither<E, A>) => IO<E | A> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, A, E2>(onLeft: (e: E1) => IOEither<E2, A>) => (ma: IOEither<E1, A>) => IOEither<E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, E2, B>( + onLeft: (e: E1) => IOEither<E2, B> +) => <A>(ma: IOEither<E1, A>) => IOEither<E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, E2, _>(onLeft: (e: E1) => IOEither<E2, _>): <A>(self: IOEither<E1, A>) => IOEither<E1 | E2, A> + <E1, A, E2, _>(self: IOEither<E1, A>, onLeft: (e: E1) => IOEither<E2, _>): IOEither<E1 | E2, A> +} +/** + * @category error handling + * @since 2.12.0 + */ +export declare const orElseFirstIOK: <E, B>(onLeft: (e: E) => IO<B>) => <A>(ma: IOEither<E, A>) => IOEither<E, A> +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, E2>(onLeft: (e: E1) => IO<E2>) => <A>(fa: IOEither<E1, A>) => IOEither<E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <E, A>(ma: IOEither<E, A>) => IOEither<A, E> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: IOEither<E, A>) => IOEither<E, B> +/** + * Returns a `IOEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.left('err'), f, g)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): (self: IOEither<E, A>) => IOEither<G, B> + <E, A, G, B>(self: IOEither<E, A>, f: (e: E) => G, g: (a: A) => B): IOEither<G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: IOEither<E, A>) => IOEither<G, B> +/** + * Returns a `IOEither` with its error channel mapped using the specified function. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(IOEither.mapError(IOEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(IOEither.mapError(IOEither.left('err'), f)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <E, G>(f: (e: E) => G): <A>(self: IOEither<E, A>) => IOEither<G, A> + <E, A, G>(self: IOEither<E, A>, f: (e: E) => G): IOEither<G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: IOEither<E, A>) => IOEither<G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: IOEither<E, A>) => <B>(fab: IOEither<E, (a: A) => B>) => IOEither<E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <E2, A>( + fa: IOEither<E2, A> +) => <E1, B>(fab: IOEither<E1, (a: A) => B>) => IOEither<E1 | E2, B> +/** + * @category constructors + * @since 2.8.5 + */ +export declare const of: <E = never, A = never>(a: A) => IOEither<E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> + <E1, A, E2, B>(ma: IOEither<E1, A>, f: (a: A) => IOEither<E2, B>): IOEither<E1 | E2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <E1, E2, A>(mma: IOEither<E1, IOEither<E2, A>>) => IOEither<E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: IOEither<E, IOEither<E, A>>) => IOEither<E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <E, A>(that: LazyArg<IOEither<E, A>>) => (fa: IOEither<E, A>) => IOEither<E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <E2, B>( + that: LazyArg<IOEither<E2, B>> +) => <E1, A>(fa: IOEither<E1, A>) => IOEither<E2, A | B> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow2<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'IOEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: IOEither<E, A> + } +} +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeIOValidation<E>(S: Semigroup<E>): Applicative2C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltIOValidation<E>(S: Semigroup<E>): Alt2C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable2C<URI, E> +/** + * @category filtering + * @since 2.1.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the `Right` value of this `IOEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <E, _>(self: IOEither<E, _>) => IOEither<E, A> + <E, _, A>(self: IOEither<E, _>, a: A): IOEither<E, A> +} +/** + * Maps the `Right` value of this `IOEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <E, _>(self: IOEither<E, _>) => IOEither<E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'IOEither', E, (a: A) => B>) => import('./HKT').Kind2<'IOEither', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: IOEither<E, B> +) => <A>(first: import('./HKT').Kind2<'IOEither', E, A>) => import('./HKT').Kind2<'IOEither', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <E2, B>( + second: IOEither<E2, B> +) => <E1, A>(first: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: IOEither<E, B> +) => <A>(first: import('./HKT').Kind2<'IOEither', E, A>) => import('./HKT').Kind2<'IOEither', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <E2, B>( + second: IOEither<E2, B> +) => <E1, A>(first: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.8.4 + */ +export declare const ApplicativePar: Applicative2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.8.4 + */ +export declare const ApplicativeSeq: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <E1, A, E2, _>(self: IOEither<E1, A>, f: (a: A) => IOEither<E2, _>): IOEither<E1 | E2, A> + <A, E2, _>(f: (a: A) => IOEither<E2, _>): <E1>(self: IOEither<E1, A>) => IOEither<E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: string) => pipe( + * IOE.of(value), + * IOE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute('')(), E.left('error')) + * assert.deepStrictEqual(compute('fp-ts')(), E.right('fp-ts')) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <E1>(self: IOEither<E1, A>) => IOEither<E2 | E1, A> + <E1, A, E2, _>(self: IOEither<E1, A>, f: (a: A) => Either<E2, _>): IOEither<E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * const sayHello = (value: string) => Console.log(`Hello, ${value}`) + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = IOE.tapIO(IOE.of('fp-ts'), sayHello) + * + * // No output to the stdout + * const effectB = pipe(IOE.left<string>('error'), IOE.tapIO(sayHello)) + * + * assert.deepStrictEqual(effectA(), E.right('fp-ts')) + * assert.deepStrictEqual(effectB(), E.left('error')) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <E>(self: IOEither<E, A>) => IOEither<E, A> + <E, A, _>(self: IOEither<E, A>, f: (a: A) => IO<_>): IOEither<E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow2<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => I.IO<B> +) => <E = never>(...a: A) => IOEither<E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: IOEither<E, A>) => IOEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => IOEither<E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => IOEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => (ma: IOEither<E, A>) => IOEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => (...a: A) => IOEither<E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => (...a: A) => IOEither<E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <E1>( + self: IOEither<E1, A> + ) => IOEither<E2 | E1, NonNullable<B>> + <E1, A, B, E2>(self: IOEither<E1, A>, f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): IOEither< + E1 | E2, + NonNullable<B> + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <E1>(self: IOEither<E1, A>) => IOEither<E2 | E1, B> + <E1, A, B, E2>(self: IOEither<E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): IOEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <E1>(self: IOEither<E1, A>) => IOEither<E1 | E2, B> + <E1, A, E2, B>(self: IOEither<E1, A>, f: (a: A) => E.Either<E2, B>): IOEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <E>(self: IOEither<E, A>) => IOEither<E, B> + <E, A, B>(self: IOEither<E, A>, f: (a: A) => IO<B>): IOEither<E, B> +} +/** + * Alias of `flatMapIO`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: IOEither<E, A>) => IOEither<E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => E.Either<E, B>) => (ma: IOEither<E, A>) => IOEither<E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>(f: (a: A) => E.Either<E, B>) => (ma: IOEither<E, A>) => IOEither<E, A> +/** + * Alias of `tapEither`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => E.Either<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => IOEither<E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: IOEither<E, A>) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: IOEither<E, B>) => IOEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: IOEither<E, A>) => IOEither<E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <E1>( + ma: IOEither<E1, A> + ) => IOEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1, B extends A>( + mb: IOEither<E1, B> + ) => IOEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => (...a: A) => IOEither<E, B> +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +export declare const bracket: <E, A, B>( + acquire: IOEither<E, A>, + use: (a: A) => IOEither<E, B>, + release: (a: A, e: Either<E, B>) => IOEither<E, void> +) => IOEither<E, B> +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const bracketW: <E1, A, E2, B, E3>( + acquire: IOEither<E1, A>, + use: (a: A) => IOEither<E2, B>, + release: (a: A, e: E.Either<E2, B>) => IOEither<E3, void> +) => IOEither<E1 | E2 | E3, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: IOEither<never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'IOEither', E, B> +) => ( + ma: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => IOEither<E2, B> +) => <E1>(fa: IOEither<E1, A>) => IOEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: IOEither<E, B> +) => ( + fa: import('./HKT').Kind2<'IOEither', E, A> +) => import('./HKT').Kind2<'IOEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, E2, B>( + name: Exclude<N, keyof A>, + fb: IOEither<E2, B> +) => <E1>(fa: IOEither<E1, A>) => IOEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: IOEither<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => IOEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => IOEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, E, B>( + f: (a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <E, A>(arr: ReadonlyArray<IOEither<E, A>>) => IOEither<E, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <A, E, B>( + f: (a: A) => IOEither<E, B> +) => (as: ReadonlyArray<A>) => IOEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <E, A>(arr: ReadonlyArray<IOEither<E, A>>) => IOEither<E, ReadonlyArray<A>> +/** + * Use [`ApplicativePar`](#applicativepar) instead + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Applicative: Applicative2<URI> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <E, A, B>(f: (a: A) => IOEither<E, B>) => (ma: IOEither<E, A>) => IOEither<E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <E, A, B>(f: (a: A) => IOEither<E, B>) => (ma: IOEither<E, A>) => IOEither<E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <E1>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, B>(onLeft: (e: E) => IOEither<E, B>) => <A>(ma: IOEither<E, A>) => IOEither<E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, E2, B>( + onLeft: (e: E1) => IOEither<E2, B> +) => <A>(ma: IOEither<E1, A>) => IOEither<E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IOE.Functor` instead of `IOE.ioEither` + * (where `IOE` is from `import IOE from 'fp-ts/IOEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ioEither: Monad2<URI> & Bifunctor2<URI> & Alt2<URI> & MonadIO2<URI> & MonadThrow2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <E, A>(S: Semigroup<A>) => Semigroup<IOEither<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <E, A>(M: Monoid<A>) => Monoid<IOEither<E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <E, A>(S: Semigroup<A>) => Semigroup<IOEither<E, A>> +/** + * Use [`getApplicativeIOValidation`](#getapplicativeiovalidation) and [`getAltIOValidation`](#getaltiovalidation). + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getIOValidation<E>( + SE: Semigroup<E> +): Monad2C<URI, E> & Bifunctor2<URI> & Alt2C<URI, E> & MonadIO2C<URI, E> & MonadThrow2C<URI, E> diff --git a/node_modules/fp-ts/lib/IOEither.js b/node_modules/fp-ts/lib/IOEither.js new file mode 100644 index 0000000..a5526b9 --- /dev/null +++ b/node_modules/fp-ts/lib/IOEither.js @@ -0,0 +1,1102 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.ApplyPar = exports.Bifunctor = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.getCompactable = exports.URI = exports.throwError = exports.altW = exports.alt = exports.flatten = exports.flattenW = exports.flatMap = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.mapError = exports.bimap = exports.mapBoth = exports.map = exports.swap = exports.orLeft = exports.orElseFirstIOK = exports.tapError = exports.orElseW = exports.orElse = exports.toUnion = exports.tryCatchK = exports.tryCatch = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromIO = exports.fromEither = exports.leftIO = exports.rightIO = exports.right = exports.left = void 0; +exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.bracketW = exports.bracket = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainFirstEitherKW = exports.chainFirstEitherK = exports.chainEitherKW = exports.chainEitherK = exports.chainIOK = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.chainFirstIOK = exports.fromIOK = exports.MonadThrow = exports.MonadIO = exports.Alt = exports.tapIO = exports.tapEither = exports.tap = exports.FromIO = exports.FromEither = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplicativePar = void 0; +exports.getSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.ioEither = exports.orElseFirstW = exports.orElseFirst = exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.Applicative = exports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = void 0; +exports.getApplicativeIOValidation = getApplicativeIOValidation; +exports.getAltIOValidation = getAltIOValidation; +exports.getFilterable = getFilterable; +exports.getIOValidation = getIOValidation; +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var Compactable_1 = require("./Compactable"); +var E = __importStar(require("./Either")); +var ET = __importStar(require("./EitherT")); +var Filterable_1 = require("./Filterable"); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var I = __importStar(require("./IO")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +exports.left = ET.left(I.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.right = ET.right(I.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.rightIO = ET.rightF(I.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +exports.leftIO = ET.leftF(I.Functor); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromEither = I.of; +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromIO = exports.rightIO; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = +/*#__PURE__*/ ET.match(I.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchE = +/*#__PURE__*/ ET.matchE(I.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchEW = exports.matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +exports.getOrElse = ET.getOrElse(I.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +exports.getOrElseW = exports.getOrElse; +/** + * Constructs a new `IOEither` from a function that performs a side effect and might throw + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.0.0 + */ +var tryCatch = function (f, onThrow) { + return function () { + return E.tryCatch(f, onThrow); + }; +}; +exports.tryCatch = tryCatch; +/** + * Converts a function that may throw to one returning a `IOEither`. + * + * @category interop + * @since 2.10.0 + */ +var tryCatchK = function (f, onThrow) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onThrow); + }; +}; +exports.tryCatchK = tryCatchK; +/** + * @category conversions + * @since 2.10.0 + */ +exports.toUnion = ET.toUnion(I.Functor); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category error handling + * @since 2.0.0 + */ +exports.orElse = +/*#__PURE__*/ ET.orElse(I.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +exports.orElseW = exports.orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +exports.tapError = (0, function_1.dual)(2, ET.tapError(I.Monad)); +/** + * @category error handling + * @since 2.12.0 + */ +var orElseFirstIOK = function (onLeft) { + return (0, exports.tapError)((0, exports.fromIOK)(onLeft)); +}; +exports.orElseFirstIOK = orElseFirstIOK; +/** + * @category error handling + * @since 2.11.0 + */ +exports.orLeft = +/*#__PURE__*/ ET.orLeft(I.Monad); +/** + * @since 2.0.0 + */ +exports.swap = ET.swap(I.Functor); +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +exports.map = ET.map(I.Functor); +/** + * Returns a `IOEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(IOEither.mapBoth(IOEither.left('err'), f, g)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +exports.mapBoth = (0, function_1.dual)(3, ET.mapBoth(I.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +exports.bimap = exports.mapBoth; +/** + * Returns a `IOEither` with its error channel mapped using the specified function. + * + * @example + * import * as IOEither from 'fp-ts/IOEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(IOEither.mapError(IOEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(IOEither.mapError(IOEither.left('err'), f)(), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +exports.mapError = (0, function_1.dual)(2, ET.mapError(I.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +exports.mapLeft = exports.mapError; +/** + * @since 2.0.0 + */ +exports.ap = +/*#__PURE__*/ ET.ap(I.Apply); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +exports.apW = exports.ap; +/** + * @category constructors + * @since 2.8.5 + */ +exports.of = exports.right; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, ET.flatMap(I.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = +/*#__PURE__*/ ET.alt(I.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +exports.altW = exports.alt; +/** + * @since 2.7.0 + */ +exports.throwError = exports.left; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'IOEither'; +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getApplicativeIOValidation(S) { + var ap = (0, Apply_1.ap)(I.Apply, E.getApplicativeValidation(S)); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, ap(fa)); }, + of: exports.of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getAltIOValidation(S) { + var alt = ET.altValidation(I.Monad, S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return (0, function_1.pipe)(fa, alt(that)); } + }; +} +/** + * @category filtering + * @since 2.10.0 + */ +var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: exports.URI, + _E: undefined, + compact: (0, Compactable_1.compact)(I.Functor, C), + separate: (0, Compactable_1.separate)(I.Functor, C, E.Functor) + }; +}; +exports.getCompactable = getCompactable; +/** + * @category filtering + * @since 2.1.0 + */ +function getFilterable(M) { + var F = E.getFilterable(M); + var C = (0, exports.getCompactable)(M); + var filter = (0, Filterable_1.filter)(I.Functor, F); + var filterMap = (0, Filterable_1.filterMap)(I.Functor, F); + var partition = (0, Filterable_1.partition)(I.Functor, F); + var partitionMap = (0, Filterable_1.partitionMap)(I.Functor, F); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return (0, function_1.pipe)(fa, filter(predicate)); }, + filterMap: function (fa, f) { return (0, function_1.pipe)(fa, filterMap(f)); }, + partition: function (fa, predicate) { return (0, function_1.pipe)(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return (0, function_1.pipe)(fa, partitionMap(f)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Right` value of this `IOEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Right` value of this `IOEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplyPar = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.8.4 + */ +exports.ApplicativePar = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.8.4 + */ +exports.ApplicativeSeq = { + URI: exports.URI, + map: _map, + ap: _apSeq, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: string) => pipe( + * IOE.of(value), + * IOE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute('')(), E.left('error')) + * assert.deepStrictEqual(compute('fp-ts')(), E.right('fp-ts')) + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOE from 'fp-ts/IOEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * const sayHello = (value: string) => Console.log(`Hello, ${value}`) + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = IOE.tapIO(IOE.of('fp-ts'), sayHello) + * + * // No output to the stdout + * const effectB = pipe(IOE.left<string>('error'), IOE.tapIO(sayHello)) + * + * assert.deepStrictEqual(effectA(), E.right('fp-ts')) + * assert.deepStrictEqual(effectB(), E.left('error')) + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + throwError: exports.throwError +}; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.fromOptionK = +/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +exports.chainOptionKW = exports.chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: exports.FromEither.fromEither +}; +/** @internal */ +var _FromIO = { + fromIO: exports.fromIO +}; +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftNullable = _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftOption = _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapEither = _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * Alias of `flatMapIO`. + * @category legacy + * @since 2.10.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainEitherK = exports.flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainEitherKW = exports.flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Alias of `tapEither`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherKW = exports.tapEither; +/** + * @category lifting + * @since 2.0.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +exports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +exports.filterOrElseW = exports.filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +var bracket = function (acquire, use, release) { return (0, exports.bracketW)(acquire, use, release); }; +exports.bracket = bracket; +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +var bracketW = function (acquire, use, release) { + return (0, exports.flatMap)(acquire, function (a) { return I.flatMap(use(a), function (e) { return (0, exports.flatMap)(release(a, e), function () { return I.of(e); }); }); }); +}; +exports.bracketW = bracketW; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(I.traverseReadonlyNonEmptyArrayWithIndex(f), I.map(E.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + var e = f(0, _.head(as))(); + if (_.isLeft(e)) { + return e; + } + var out = [e.right]; + for (var i = 1; i < as.length; i++) { + var e_1 = f(i, as[i])(); + if (_.isLeft(e_1)) { + return e_1; + } + out.push(e_1.right); + } + return _.right(out); + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseSeqArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); }; +exports.traverseSeqArray = traverseSeqArray; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceSeqArray = +/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`ApplicativePar`](#applicativepar) instead + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Applicative = exports.ApplicativePar; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +exports.chainFirstW = exports.tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirst = exports.tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirstW = exports.tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `IOE.Functor` instead of `IOE.ioEither` + * (where `IOE` is from `import IOE from 'fp-ts/IOEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.ioEither = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + alt: _alt, + fromIO: exports.fromIO, + throwError: exports.throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplySemigroup = +/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.ApplyPar); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplyMonoid = +/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativePar); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getSemigroup = function (S) { + return (0, Apply_1.getApplySemigroup)(I.Apply)(E.getSemigroup(S)); +}; +exports.getSemigroup = getSemigroup; +/** + * Use [`getApplicativeIOValidation`](#getapplicativeiovalidation) and [`getAltIOValidation`](#getaltiovalidation). + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +function getIOValidation(SE) { + var applicativeIOValidation = getApplicativeIOValidation(SE); + var altIOValidation = getAltIOValidation(SE); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: applicativeIOValidation.ap, + of: exports.of, + chain: exports.flatMap, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + alt: altIOValidation.alt, + fromIO: exports.fromIO, + throwError: exports.throwError + }; +} diff --git a/node_modules/fp-ts/lib/IOOption.d.ts b/node_modules/fp-ts/lib/IOOption.d.ts new file mode 100644 index 0000000..fd2cd77 --- /dev/null +++ b/node_modules/fp-ts/lib/IOOption.d.ts @@ -0,0 +1,616 @@ +/** + * `IOOption<A>` represents a synchronous computation that either yields a value of type `A` or nothing. + * + * If you want to represent a synchronous computation that never fails, please see `IO`. + * If you want to represent a synchronous computation that may fail, please see `IOEither`. + * + * @since 2.12.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Filterable1 } from './Filterable' +import { FromEither1 } from './FromEither' +import { FromIO1 } from './FromIO' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import * as I from './IO' +import { IOEither } from './IOEither' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import * as O from './Option' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Separated } from './Separated' +import { Zero1 } from './Zero' +import IO = I.IO +import Option = O.Option +/** + * @category model + * @since 2.12.0 + */ +export interface IOOption<A> extends IO<Option<A>> {} +/** + * @category constructors + * @since 2.12.0 + */ +export declare const some: <A>(a: A) => IOOption<A> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => IOOption<B> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => IOOption<B> + <A>(predicate: Predicate<A>): (a: A) => IOOption<A> +} +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => IOOption<A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => IOOption<A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromIO: <A>(fa: IO<A>) => IOOption<A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromIOEither: <A>(fa: IOEither<unknown, A>) => IOOption<A> +/** + * @category pattern matching + * @since 2.12.0 + */ +export declare const match: <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: IOOption<A>) => IO<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchW: <B, A, C>(onNone: () => B, onSome: (a: A) => C) => (ma: IOOption<A>) => IO<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchE: <B, A>(onNone: () => IO<B>, onSome: (a: A) => IO<B>) => (ma: IOOption<A>) => IO<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const fold: <B, A>(onNone: () => IO<B>, onSome: (a: A) => IO<B>) => (ma: IOOption<A>) => IO<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchEW: <B, C, A>(onNone: () => IO<B>, onSome: (a: A) => IO<C>) => (ma: IOOption<A>) => IO<B | C> +/** + * @category error handling + * @since 2.12.0 + */ +export declare const getOrElse: <A>(onNone: LazyArg<IO<A>>) => (fa: IOOption<A>) => IO<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.12.0 + */ +export declare const getOrElseW: <B>(onNone: LazyArg<IO<B>>) => <A>(ma: IOOption<A>) => IO<A | B> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const toUndefined: <A>(ma: IOOption<A>) => IO<A | undefined> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const toNullable: <A>(ma: IOOption<A>) => IO<A | null> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromNullable: <A>(a: A) => IOOption<NonNullable<A>> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromNullableK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => IOOption<NonNullable<B>> +/** + * Alias of `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainNullableK: <A, B>( + f: (a: A) => B | null | undefined +) => (ma: IOOption<A>) => IOOption<NonNullable<B>> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => IOOption<B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.12.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: IOOption<A>) => IOOption<B> +/** + * @since 2.12.0 + */ +export declare const ap: <A>(fa: IOOption<A>) => <B>(fab: IOOption<(a: A) => B>) => IOOption<B> +/** + * @category constructors + * @since 2.12.0 + */ +export declare const of: <A>(a: A) => IOOption<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => IOOption<B>): (ma: IOOption<A>) => IOOption<B> + <A, B>(ma: IOOption<A>, f: (a: A) => IOOption<B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.12.0 + */ +export declare const flatten: <A>(mma: IOOption<IOOption<A>>) => IOOption<A> +/** + * @category error handling + * @since 2.12.0 + */ +export declare const alt: <A>(second: LazyArg<IOOption<A>>) => (first: IOOption<A>) => IOOption<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.12.0 + */ +export declare const altW: <B>(second: LazyArg<IOOption<B>>) => <A>(first: IOOption<A>) => IOOption<A | B> +/** + * @since 2.12.0 + */ +export declare const zero: <A>() => IOOption<A> +/** + * @category constructors + * @since 2.12.0 + */ +export declare const none: IOOption<never> +/** + * @category filtering + * @since 2.12.0 + */ +export declare const compact: Compactable1<URI>['compact'] +/** + * @category filtering + * @since 2.12.0 + */ +export declare const separate: Compactable1<URI>['separate'] +/** + * @category filtering + * @since 2.12.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: IOOption<A>) => IOOption<B> + <A>(predicate: Predicate<A>): <B extends A>(fb: IOOption<B>) => IOOption<B> + <A>(predicate: Predicate<A>): (fa: IOOption<A>) => IOOption<A> +} +/** + * @category filtering + * @since 2.12.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fga: IOOption<A>) => IOOption<B> +/** + * @category filtering + * @since 2.12.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: IOOption<A>) => Separated<IOOption<A>, IOOption<B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: IOOption<B>) => Separated<IOOption<B>, IOOption<B>> + <A>(predicate: Predicate<A>): (fa: IOOption<A>) => Separated<IOOption<A>, IOOption<A>> +} +/** + * @category filtering + * @since 2.12.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: IOOption<A>) => Separated<IOOption<B>, IOOption<C>> +/** + * @category type lambdas + * @since 2.12.0 + */ +export declare const URI = 'IOOption' +/** + * @category type lambdas + * @since 2.12.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: IOOption<A> + } +} +/** + * @category instances + * @since 2.12.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the `Some` value of this `IOOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: IOOption<_>) => IOOption<A> + <_, A>(self: IOOption<_>, a: A): IOOption<A> +} +/** + * Maps the `Some` value of this `IOOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: IOOption<_>) => IOOption<void> +/** + * @category mapping + * @since 2.12.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'IOOption', (a: A) => B>) => import('./HKT').Kind<'IOOption', B> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.12.0 + */ +export declare const apFirst: <B>( + second: IOOption<B> +) => <A>(first: import('./HKT').Kind<'IOOption', A>) => import('./HKT').Kind<'IOOption', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.12.0 + */ +export declare const apSecond: <B>( + second: IOOption<B> +) => <A>(first: import('./HKT').Kind<'IOOption', A>) => import('./HKT').Kind<'IOOption', B> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: IOOption<A>, f: (a: A) => IOOption<_>): IOOption<A> + <A, _>(f: (a: A) => IOOption<_>): (self: IOOption<A>) => IOOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * IOO.of(value), + * IOO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1)(), O.of(1)) + * assert.deepStrictEqual(compute(-1)(), O.none) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E, _>(f: (a: A) => Either<E, _>): (self: IOOption<A>) => IOOption<A> + <A, E, _>(self: IOOption<A>, f: (a: A) => Either<E, _>): IOOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = pipe( + * IOO.of('fp-ts'), + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * // No output to the stdout + * const effectB = pipe( + * IOO.none as IOO.IOOption<string>, + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effectA(), O.of('fp-ts')) + * assert.deepStrictEqual(effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): (self: IOOption<A>) => IOOption<A> + <A, _>(self: IOOption<A>, f: (a: A) => IO<_>): IOOption<A> +} +/** + * @category instances + * @since 2.12.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'IOOption', void> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.12.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): (self: IOOption<A>) => IOOption<B> + <A, B>(self: IOOption<A>, f: (a: A) => IO<B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapOption: { + <A, B>(f: (a: A) => Option<B>): (self: IOOption<A>) => IOOption<B> + <A, B>(self: IOOption<A>, f: (a: A) => Option<B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapEither: { + <A, B, _>(f: (a: A) => Either<_, B>): (self: IOOption<A>) => IOOption<B> + <A, B, _>(self: IOOption<A>, f: (a: A) => Either<_, B>): IOOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapNullable: { + <A, B>(f: (a: A) => B | null | undefined): (self: IOOption<A>) => IOOption<B> + <A, B>(self: IOOption<A>, f: (a: A) => B | null | undefined): IOOption<B> +} +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => I.IO<B>) => (...a: A) => IOOption<B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => I.IO<B>) => (first: IOOption<A>) => IOOption<B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => (first: IOOption<A>) => IOOption<A> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => IOOption<B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: IOOption<A>) => IOOption<B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: IOOption<A>) => IOOption<A> +/** + * Alias of `flatMapOption`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainOptionK: <A, B>(f: (a: A) => Option<B>) => (ma: IOOption<A>) => IOOption<B> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const Do: IOOption<{}> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'IOOption', A>) => import('./HKT').Kind<'IOOption', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'IOOption', A> +) => import('./HKT').Kind<'IOOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.12.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'IOOption', B> +) => ( + ma: import('./HKT').Kind<'IOOption', A> +) => import('./HKT').Kind<'IOOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.12.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: IOOption<B> +) => ( + fa: import('./HKT').Kind<'IOOption', A> +) => import('./HKT').Kind<'IOOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.12.0 + */ +export declare const ApT: IOOption<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IOOption<B> +) => (as: ReadonlyNonEmptyArray<A>) => IOOption<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => IOOption<B> +) => (as: ReadonlyArray<A>) => IOOption<ReadonlyArray<B>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chain: <A, B>(f: (a: A) => IOOption<B>) => (ma: IOOption<A>) => IOOption<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => IOOption<B>) => (first: IOOption<A>) => IOOption<A> diff --git a/node_modules/fp-ts/lib/IOOption.js b/node_modules/fp-ts/lib/IOOption.js new file mode 100644 index 0000000..7307493 --- /dev/null +++ b/node_modules/fp-ts/lib/IOOption.js @@ -0,0 +1,650 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tapIO = exports.tapEither = exports.tap = exports.FromIO = exports.FromEither = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.separate = exports.compact = exports.none = exports.zero = exports.altW = exports.alt = exports.flatten = exports.flatMap = exports.of = exports.ap = exports.map = exports.fromOptionK = exports.chainNullableK = exports.fromNullableK = exports.fromNullable = exports.toNullable = exports.toUndefined = exports.getOrElseW = exports.getOrElse = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromIOEither = exports.fromIO = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.some = void 0; +exports.chainFirst = exports.chain = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.chainOptionK = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.flatMapNullable = exports.flatMapEither = exports.flatMapOption = exports.flatMapIO = exports.Filterable = exports.Compactable = exports.MonadIO = exports.Monad = exports.Alternative = exports.guard = exports.Zero = exports.Alt = void 0; +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var Compactable_1 = require("./Compactable"); +var Filterable_1 = require("./Filterable"); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var I = __importStar(require("./IO")); +var O = __importStar(require("./Option")); +var OT = __importStar(require("./OptionT")); +var Zero_1 = require("./Zero"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.12.0 + */ +exports.some = OT.some(I.Pointed); +/** + * @category lifting + * @since 2.12.0 + */ +exports.fromPredicate = OT.fromPredicate(I.Pointed); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromOption = I.of; +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromEither = OT.fromEither(I.Pointed); +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromIO = OT.fromF(I.Functor); +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromIOEither = I.map(O.fromEither); +/** + * @category pattern matching + * @since 2.12.0 + */ +exports.match = OT.match(I.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`IO`). + * + * @category pattern matching + * @since 2.12.0 + */ +exports.matchE = +/*#__PURE__*/ OT.matchE(I.Chain); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.12.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +exports.matchEW = exports.matchE; +/** + * @category error handling + * @since 2.12.0 + */ +exports.getOrElse = OT.getOrElse(I.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.12.0 + */ +exports.getOrElseW = exports.getOrElse; +/** + * @category conversions + * @since 2.12.0 + */ +exports.toUndefined = I.map(O.toUndefined); +/** + * @category conversions + * @since 2.12.0 + */ +exports.toNullable = I.map(O.toNullable); +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromNullable = OT.fromNullable(I.Pointed); +/** + * @category lifting + * @since 2.12.0 + */ +exports.fromNullableK = OT.fromNullableK(I.Pointed); +/** + * Alias of `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainNullableK = OT.chainNullableK(I.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category lifting + * @since 2.12.0 + */ +exports.fromOptionK = +/*#__PURE__*/ OT.fromOptionK(I.Pointed); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.12.0 + */ +exports.map = OT.map(I.Functor); +/** + * @since 2.12.0 + */ +exports.ap = OT.ap(I.Apply); +/** + * @category constructors + * @since 2.12.0 + */ +exports.of = exports.some; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, OT.flatMap(I.Monad)); +/** + * @category sequencing + * @since 2.12.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * @category error handling + * @since 2.12.0 + */ +exports.alt = OT.alt(I.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.12.0 + */ +exports.altW = exports.alt; +/** + * @since 2.12.0 + */ +exports.zero = OT.zero(I.Pointed); +/** + * @category constructors + * @since 2.12.0 + */ +exports.none = (0, exports.zero)(); +/** + * @category filtering + * @since 2.12.0 + */ +exports.compact = (0, Compactable_1.compact)(I.Functor, O.Compactable); +/** + * @category filtering + * @since 2.12.0 + */ +exports.separate = (0, Compactable_1.separate)(I.Functor, O.Compactable, O.Functor); +/** + * @category filtering + * @since 2.12.0 + */ +exports.filter = (0, Filterable_1.filter)(I.Functor, O.Filterable); +/** + * @category filtering + * @since 2.12.0 + */ +exports.filterMap = (0, Filterable_1.filterMap)(I.Functor, O.Filterable); +/** + * @category filtering + * @since 2.12.0 + */ +exports.partition = (0, Filterable_1.partition)(I.Functor, O.Filterable); +/** + * @category filtering + * @since 2.12.0 + */ +exports.partitionMap = (0, Filterable_1.partitionMap)(I.Functor, O.Filterable); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/* istanbul ignore next */ +var _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); }; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); }; +/** + * @category type lambdas + * @since 2.12.0 + */ +exports.URI = 'IOOption'; +/** + * @category instances + * @since 2.12.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Some` value of this `IOOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Some` value of this `IOOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.12.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.12.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.12.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.12.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.12.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * IOO.of(value), + * IOO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1)(), O.of(1)) + * assert.deepStrictEqual(compute(-1)(), O.none) + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as IOO from 'fp-ts/IOOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = pipe( + * IOO.of('fp-ts'), + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * // No output to the stdout + * const effectB = pipe( + * IOO.none as IOO.IOOption<string>, + * IOO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effectA(), O.of('fp-ts')) + * assert.deepStrictEqual(effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * @category instances + * @since 2.12.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.Zero = { + URI: exports.URI, + zero: exports.zero +}; +/** + * @category do notation + * @since 2.12.0 + */ +exports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed); +/** + * @category instances + * @since 2.12.0 + */ +exports.Alternative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + alt: _alt, + zero: exports.zero +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.12.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: exports.FromIO.fromIO +}; +/** @internal */ +var _FromEither = { + fromEither: exports.fromEither +}; +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapOption = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, (0, exports.fromOptionK)(f)); }); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapEither = _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapNullable = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, (0, exports.fromNullableK)(f)); }); +/** + * @category lifting + * @since 2.12.0 + */ +exports.fromIOK = +/*#__PURE__*/ (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * @category lifting + * @since 2.12.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainEitherK = exports.flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Alias of `flatMapOption`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainOptionK = exports.flatMapOption; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.12.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.12.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.12.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * @category do notation + * @since 2.12.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * @since 2.12.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(I.traverseReadonlyNonEmptyArrayWithIndex(f), I.map(O.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.12.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirst = exports.tap; diff --git a/node_modules/fp-ts/lib/IORef.d.ts b/node_modules/fp-ts/lib/IORef.d.ts new file mode 100644 index 0000000..1fa8931 --- /dev/null +++ b/node_modules/fp-ts/lib/IORef.d.ts @@ -0,0 +1,37 @@ +/** + * Mutable references in the `IO` monad + * + * @since 2.0.0 + */ +import { IO } from './IO' +/** + * @example + * import { flatMap } from 'fp-ts/IO' + * import { newIORef } from 'fp-ts/IORef' + * + * assert.strictEqual(flatMap(newIORef(1), ref => flatMap(ref.write(2), () => ref.read))(), 2) + * + * @category model + * @since 2.0.0 + */ +export declare class IORef<A> { + private value + /** + * @since 2.0.0 + */ + readonly read: IO<A> + constructor(value: A) + /** + * @since 2.0.0 + */ + write(a: A): IO<void> + /** + * @since 2.0.0 + */ + modify(f: (a: A) => A): IO<void> +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function newIORef<A>(a: A): IO<IORef<A>> diff --git a/node_modules/fp-ts/lib/IORef.js b/node_modules/fp-ts/lib/IORef.js new file mode 100644 index 0000000..2fb23b9 --- /dev/null +++ b/node_modules/fp-ts/lib/IORef.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IORef = void 0; +exports.newIORef = newIORef; +/** + * @example + * import { flatMap } from 'fp-ts/IO' + * import { newIORef } from 'fp-ts/IORef' + * + * assert.strictEqual(flatMap(newIORef(1), ref => flatMap(ref.write(2), () => ref.read))(), 2) + * + * @category model + * @since 2.0.0 + */ +var IORef = /** @class */ (function () { + function IORef(value) { + var _this = this; + this.value = value; + this.read = function () { return _this.value; }; + this.write = this.write.bind(this); + this.modify = this.modify.bind(this); + } + /** + * @since 2.0.0 + */ + IORef.prototype.write = function (a) { + var _this = this; + return function () { + _this.value = a; + }; + }; + /** + * @since 2.0.0 + */ + IORef.prototype.modify = function (f) { + var _this = this; + return function () { + _this.value = f(_this.value); + }; + }; + return IORef; +}()); +exports.IORef = IORef; +/** + * @category constructors + * @since 2.0.0 + */ +function newIORef(a) { + return function () { return new IORef(a); }; +} diff --git a/node_modules/fp-ts/lib/Identity.d.ts b/node_modules/fp-ts/lib/Identity.d.ts new file mode 100644 index 0000000..873f51b --- /dev/null +++ b/node_modules/fp-ts/lib/Identity.d.ts @@ -0,0 +1,295 @@ +/** + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { ChainRec1 } from './ChainRec' +import { Comonad1 } from './Comonad' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { Functor1 } from './Functor' +import { Monad1 } from './Monad' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export type Identity<A> = A +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Identity<A>) => Identity<B> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Identity<A>) => <B>(fab: Identity<(a: A) => B>) => Identity<B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => Identity<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Identity<B>): (ma: Identity<A>) => Identity<B> + <A, B>(ma: Identity<A>, f: (a: A) => Identity<B>): Identity<B> +} +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (wa: Identity<A>) => B) => (wa: Identity<A>) => Identity<B> +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <A>(wa: Identity<A>) => A +/** + * @since 2.0.0 + */ +export declare const duplicate: <A>(ma: Identity<A>) => Identity<Identity<A>> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Identity<Identity<A>>) => Identity<A> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Identity<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Identity<A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Identity<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: () => Identity<B>) => <A>(fa: Identity<A>) => Identity<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <A>(that: () => Identity<A>) => (fa: Identity<A>) => Identity<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Identity' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Identity<A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Identity<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Identity<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Identity', (a: A) => B>) => import('./HKT').Kind<'Identity', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: B +) => <A>(first: import('./HKT').Kind<'Identity', A>) => import('./HKT').Kind<'Identity', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: B +) => <A>(first: import('./HKT').Kind<'Identity', A>) => import('./HKT').Kind<'Identity', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.7 + */ +export declare const tap: { + <A, _>(self: Identity<A>, f: (a: A) => Identity<_>): Identity<A> + <A, _>(f: (a: A) => Identity<_>): (self: Identity<A>) => Identity<A> +} +/** + * Alias of `tap` + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => B) => (first: A) => A +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const ChainRec: ChainRec1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Identity<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Identity', A>) => import('./HKT').Kind<'Identity', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Identity', A> +) => import('./HKT').Kind<'Identity', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Identity', B> +) => ( + ma: import('./HKT').Kind<'Identity', A> +) => import('./HKT').Kind<'Identity', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: B +) => ( + fa: import('./HKT').Kind<'Identity', A> +) => import('./HKT').Kind<'Identity', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Identity<B>) => (ma: Identity<A>) => Identity<B> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `I.Functor` instead of `I.identity` + * (where `I` is from `import I from 'fp-ts/Identity'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const identity: Monad1<URI> & + Foldable1<URI> & + Traversable1<URI> & + Alt1<URI> & + Comonad1<URI> & + ChainRec1<URI> diff --git a/node_modules/fp-ts/lib/Identity.js b/node_modules/fp-ts/lib/Identity.js new file mode 100644 index 0000000..167b379 --- /dev/null +++ b/node_modules/fp-ts/lib/Identity.js @@ -0,0 +1,370 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.identity = exports.chain = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.ChainRec = exports.Comonad = exports.Alt = exports.Traversable = exports.Foldable = exports.chainFirst = exports.tap = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.Functor = exports.getEq = exports.getShow = exports.URI = exports.alt = exports.altW = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.flatten = exports.duplicate = exports.extract = exports.extend = exports.flatMap = exports.of = exports.ap = exports.map = void 0; +var Apply_1 = require("./Apply"); +var Chain_1 = require("./Chain"); +var ChainRec_1 = require("./ChainRec"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { return function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.foldMap)(M)(f)); }; }; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +var _chainRec = ChainRec_1.tailRec; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return f(fa); }; }; +exports.map = map; +/** + * @since 2.0.0 + */ +var ap = function (fa) { return function (fab) { return fab(fa); }; }; +exports.ap = ap; +/** + * @category constructors + * @since 2.0.0 + */ +exports.of = function_1.identity; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { return f(ma); }); +/** + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { return f(wa); }; }; +exports.extend = extend; +/** + * @category Extract + * @since 2.6.2 + */ +exports.extract = function_1.identity; +/** + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * @category folding + * @since 2.0.0 + */ +var reduce = function (b, f) { return function (fa) { return f(b, fa); }; }; +exports.reduce = reduce; +/** + * @category folding + * @since 2.0.0 + */ +var foldMap = function () { return function (f) { return function (fa) { return f(fa); }; }; }; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.0.0 + */ +var reduceRight = function (b, f) { return function (fa) { return f(fa, b); }; }; +exports.reduceRight = reduceRight; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + return function (f) { + return function (ta) { + return F.map(f(ta), function_1.identity); + }; + }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (ta) { + return F.map(ta, function_1.identity); + }; +}; +exports.sequence = sequence; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +var altW = function () { return function_1.identity; }; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = exports.altW; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Identity'; +/** + * @category instances + * @since 2.0.0 + */ +exports.getShow = function_1.identity; +/** + * @category instances + * @since 2.0.0 + */ +exports.getEq = function_1.identity; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.7 + */ +exports.tap = (0, function_1.dual)(2, (0, Chain_1.tap)(exports.Chain)); +/** + * Alias of `tap` + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.ChainRec = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: _chainRec +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = (0, Chain_1.bind)(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `I.Functor` instead of `I.identity` + * (where `I` is from `import I from 'fp-ts/Identity'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.identity = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + alt: _alt, + extract: exports.extract, + extend: _extend, + chainRec: _chainRec +}; diff --git a/node_modules/fp-ts/lib/Invariant.d.ts b/node_modules/fp-ts/lib/Invariant.d.ts new file mode 100644 index 0000000..f400f01 --- /dev/null +++ b/node_modules/fp-ts/lib/Invariant.d.ts @@ -0,0 +1,62 @@ +/** + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant<F> { + readonly URI: F + readonly imap: <A, B>(fa: HKT<F, A>, f: (a: A) => B, g: (b: B) => A) => HKT<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant1<F extends URIS> { + readonly URI: F + readonly imap: <A, B>(fa: Kind<F, A>, f: (a: A) => B, g: (b: B) => A) => Kind<F, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant2<F extends URIS2> { + readonly URI: F + readonly imap: <E, A, B>(fa: Kind2<F, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly imap: <A, B>(fa: Kind2<F, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind2<F, E, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Invariant3<F extends URIS3> { + readonly URI: F + readonly imap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.4.2 + */ +export interface Invariant3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly imap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind3<F, R, E, B> +} +/** + * @category model + * @since 2.4.2 + */ +export interface Invariant4<F extends URIS4> { + readonly URI: F + readonly imap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (a: A) => B, g: (b: B) => A) => Kind4<F, S, R, E, B> +} diff --git a/node_modules/fp-ts/lib/Invariant.js b/node_modules/fp-ts/lib/Invariant.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Invariant.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/JoinSemilattice.d.ts b/node_modules/fp-ts/lib/JoinSemilattice.d.ts new file mode 100644 index 0000000..894137c --- /dev/null +++ b/node_modules/fp-ts/lib/JoinSemilattice.d.ts @@ -0,0 +1,19 @@ +/** + * A join-semilattice (or upper semilattice) is a semilattice whose operation is called `join`, and which can be thought + * of as a least upper bound. + * + * A `JoinSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∨ (b ∨ c) <-> (a ∨ b) ∨ c` + * - Commutativity: `a ∨ b <-> b ∨ a` + * - Idempotency: `a ∨ a <-> a` + * + * @since 2.0.0 + */ +/** + * @category model + * @since 2.0.0 + */ +export interface JoinSemilattice<A> { + readonly join: (x: A, y: A) => A +} diff --git a/node_modules/fp-ts/lib/JoinSemilattice.js b/node_modules/fp-ts/lib/JoinSemilattice.js new file mode 100644 index 0000000..d5838f5 --- /dev/null +++ b/node_modules/fp-ts/lib/JoinSemilattice.js @@ -0,0 +1,14 @@ +"use strict"; +/** + * A join-semilattice (or upper semilattice) is a semilattice whose operation is called `join`, and which can be thought + * of as a least upper bound. + * + * A `JoinSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∨ (b ∨ c) <-> (a ∨ b) ∨ c` + * - Commutativity: `a ∨ b <-> b ∨ a` + * - Idempotency: `a ∨ a <-> a` + * + * @since 2.0.0 + */ +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Json.d.ts b/node_modules/fp-ts/lib/Json.d.ts new file mode 100644 index 0000000..aa92870 --- /dev/null +++ b/node_modules/fp-ts/lib/Json.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.10.0 + */ +import { Either } from './Either' +/** + * @since 2.10.0 + */ +export type Json = boolean | number | string | null | JsonArray | JsonRecord +/** + * @since 2.10.0 + */ +export interface JsonRecord { + readonly [key: string]: Json +} +/** + * @since 2.10.0 + */ +export interface JsonArray extends ReadonlyArray<Json> {} +/** + * Converts a JavaScript Object Notation (JSON) string into a `Json` type. + * + * @example + * import * as J from 'fp-ts/Json' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('{"a":1}', J.parse), E.right({ a: 1 })) + * assert.deepStrictEqual(pipe('{"a":}', J.parse), E.left(new SyntaxError(`Unexpected token '}', "{"a":}" is not valid JSON`))) + * + * @since 2.10.0 + */ +export declare const parse: (s: string) => Either<unknown, Json> +/** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string. + * + * @example + * import * as E from 'fp-ts/Either' + * import * as J from 'fp-ts/Json' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(J.stringify({ a: 1 }), E.right('{"a":1}')) + * const circular: any = { ref: null } + * circular.ref = circular + * assert.deepStrictEqual( + * pipe( + * J.stringify(circular), + * E.mapLeft(e => e instanceof Error && e.message.includes('Converting circular structure to JSON')) + * ), + * E.left(true) + * ) + * + * @since 2.10.0 + */ +export declare const stringify: <A>(a: A) => Either<unknown, string> diff --git a/node_modules/fp-ts/lib/Json.js b/node_modules/fp-ts/lib/Json.js new file mode 100644 index 0000000..0d08b65 --- /dev/null +++ b/node_modules/fp-ts/lib/Json.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.stringify = exports.parse = void 0; +/** + * @since 2.10.0 + */ +var Either_1 = require("./Either"); +var function_1 = require("./function"); +/** + * Converts a JavaScript Object Notation (JSON) string into a `Json` type. + * + * @example + * import * as J from 'fp-ts/Json' + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('{"a":1}', J.parse), E.right({ a: 1 })) + * assert.deepStrictEqual(pipe('{"a":}', J.parse), E.left(new SyntaxError(`Unexpected token '}', "{"a":}" is not valid JSON`))) + * + * @since 2.10.0 + */ +var parse = function (s) { return (0, Either_1.tryCatch)(function () { return JSON.parse(s); }, function_1.identity); }; +exports.parse = parse; +/** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string. + * + * @example + * import * as E from 'fp-ts/Either' + * import * as J from 'fp-ts/Json' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(J.stringify({ a: 1 }), E.right('{"a":1}')) + * const circular: any = { ref: null } + * circular.ref = circular + * assert.deepStrictEqual( + * pipe( + * J.stringify(circular), + * E.mapLeft(e => e instanceof Error && e.message.includes('Converting circular structure to JSON')) + * ), + * E.left(true) + * ) + * + * @since 2.10.0 + */ +var stringify = function (a) { + return (0, Either_1.tryCatch)(function () { + var s = JSON.stringify(a); + if (typeof s !== 'string') { + throw new Error('Converting unsupported structure to JSON'); + } + return s; + }, function_1.identity); +}; +exports.stringify = stringify; diff --git a/node_modules/fp-ts/lib/Lattice.d.ts b/node_modules/fp-ts/lib/Lattice.d.ts new file mode 100644 index 0000000..ab8a9c6 --- /dev/null +++ b/node_modules/fp-ts/lib/Lattice.d.ts @@ -0,0 +1,15 @@ +/** + * A `Lattice` must satisfy the following in addition to `JoinSemilattice` and `MeetSemilattice` laws: + * + * - Absorbtion law for meet: `a ∧ (a ∨ b) <-> a` + * - Absorbtion law for join: `a ∨ (a ∧ b) <-> a` + * + * @since 2.0.0 + */ +import { JoinSemilattice } from './JoinSemilattice' +import { MeetSemilattice } from './MeetSemilattice' +/** + * @category model + * @since 2.0.0 + */ +export interface Lattice<A> extends JoinSemilattice<A>, MeetSemilattice<A> {} diff --git a/node_modules/fp-ts/lib/Lattice.js b/node_modules/fp-ts/lib/Lattice.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Lattice.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Magma.d.ts b/node_modules/fp-ts/lib/Magma.d.ts new file mode 100644 index 0000000..6b6edda --- /dev/null +++ b/node_modules/fp-ts/lib/Magma.d.ts @@ -0,0 +1,58 @@ +/** + * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A` + * + * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances. + * + * @since 2.0.0 + */ +import { Endomorphism } from './Endomorphism' +import { Predicate } from './Predicate' +/** + * @category model + * @since 2.0.0 + */ +export interface Magma<A> { + readonly concat: (x: A, y: A) => A +} +/** + * The dual of a `Magma`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse, concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(reverse(N.MagmaSub))(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), 2) + * + * @since 2.11.0 + */ +export declare const reverse: <A>(M: Magma<A>) => Magma<A> +/** + * @since 2.11.0 + */ +export declare const filterFirst: <A>(predicate: Predicate<A>) => (M: Magma<A>) => Magma<A> +/** + * @since 2.11.0 + */ +export declare const filterSecond: <A>(predicate: Predicate<A>) => (M: Magma<A>) => Magma<A> +/** + * @since 2.11.0 + */ +export declare const endo: <A>(f: Endomorphism<A>) => (M: Magma<A>) => Magma<A> +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(N.MagmaSub)(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), -6) + * + * @since 2.11.0 + */ +export declare const concatAll: <A>(M: Magma<A>) => (startWith: A) => (as: ReadonlyArray<A>) => A diff --git a/node_modules/fp-ts/lib/Magma.js b/node_modules/fp-ts/lib/Magma.js new file mode 100644 index 0000000..c266628 --- /dev/null +++ b/node_modules/fp-ts/lib/Magma.js @@ -0,0 +1,83 @@ +"use strict"; +/** + * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A` + * + * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances. + * + * @since 2.0.0 + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.concatAll = exports.endo = exports.filterSecond = exports.filterFirst = exports.reverse = void 0; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * The dual of a `Magma`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse, concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(reverse(N.MagmaSub))(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), 2) + * + * @since 2.11.0 + */ +var reverse = function (M) { return ({ + concat: function (first, second) { return M.concat(second, first); } +}); }; +exports.reverse = reverse; +/** + * @since 2.11.0 + */ +var filterFirst = function (predicate) { + return function (M) { return ({ + concat: function (first, second) { return (predicate(first) ? M.concat(first, second) : second); } + }); }; +}; +exports.filterFirst = filterFirst; +/** + * @since 2.11.0 + */ +var filterSecond = function (predicate) { + return function (M) { return ({ + concat: function (first, second) { return (predicate(second) ? M.concat(first, second) : first); } + }); }; +}; +exports.filterSecond = filterSecond; +/** + * @since 2.11.0 + */ +var endo = function (f) { + return function (M) { return ({ + concat: function (first, second) { return M.concat(f(first), f(second)); } + }); }; +}; +exports.endo = endo; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Magma' + * import * as N from 'fp-ts/number' + * + * const subAll = concatAll(N.MagmaSub)(0) + * + * assert.deepStrictEqual(subAll([1, 2, 3]), -6) + * + * @since 2.11.0 + */ +var concatAll = function (M) { + return function (startWith) { + return function (as) { + return as.reduce(function (a, acc) { return M.concat(a, acc); }, startWith); + }; + }; +}; +exports.concatAll = concatAll; diff --git a/node_modules/fp-ts/lib/Map.d.ts b/node_modules/fp-ts/lib/Map.d.ts new file mode 100644 index 0000000..b3d856e --- /dev/null +++ b/node_modules/fp-ts/lib/Map.d.ts @@ -0,0 +1,421 @@ +import { Compactable2 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable2 } from './Filterable' +import { FilterableWithIndex2C } from './FilterableWithIndex' +import { Foldable, Foldable1, Foldable2, Foldable2C, Foldable3 } from './Foldable' +import { FoldableWithIndex2C } from './FoldableWithIndex' +import { Functor2 } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import * as O from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { TraversableWithIndex2C } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { Witherable2C } from './Witherable' +import Option = O.Option +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <K, A>(SK: Show<K>, SA: Show<A>) => Show<Map<K, A>> +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.0.0 + */ +export declare const size: <K, A>(m: Map<K, A>) => number +/** + * Test whether or not a map is empty + * + * @since 2.0.0 + */ +export declare const isEmpty: <K, A>(m: Map<K, A>) => boolean +/** + * Test whether or not a key exists in a map + * + * @since 2.0.0 + */ +export declare const member: <K>(E: Eq<K>) => { + (k: K): <A>(m: Map<K, A>) => boolean + <A>(k: K, m: Map<K, A>): boolean +} +/** + * Test whether or not a value is a member of a map + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): <K>(m: Map<K, A>) => boolean + <K>(a: A, m: Map<K, A>): boolean +} +/** + * Get a sorted `Array` of the keys contained in a `Map`. + * + * @since 2.0.0 + */ +export declare const keys: <K>(O: Ord<K>) => <A>(m: Map<K, A>) => Array<K> +/** + * Get a sorted `Array` of the values contained in a `Map`. + * + * @since 2.0.0 + */ +export declare const values: <A>(O: Ord<A>) => <K>(m: Map<K, A>) => Array<A> +/** + * @since 2.0.0 + */ +export declare function collect<K>(O: Ord<K>): <A, B>(f: (k: K, a: A) => B) => (m: Map<K, A>) => Array<B> +/** + * Get a sorted `Array` of the key/value pairs contained in a `Map`. + * + * @since 2.0.0 + */ +export declare function toArray<K>(O: Ord<K>): <A>(m: Map<K, A>) => Array<[K, A]> +/** + * Unfolds a map into a list of key/value pairs + * + * @since 2.0.0 + */ +export declare function toUnfoldable<K, F extends URIS>( + ord: Ord<K>, + U: Unfoldable1<F> +): <A>(d: Map<K, A>) => Kind<F, [K, A]> +export declare function toUnfoldable<K, F>(ord: Ord<K>, U: Unfoldable<F>): <A>(d: Map<K, A>) => HKT<F, [K, A]> +/** + * Insert or replace a key/value pair in a `Map`. + * + * @since 2.0.0 + */ +export declare const upsertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: Map<K, A>) => Map<K, A> +/** + * Delete a key and value from a map + * + * @since 2.0.0 + */ +export declare const deleteAt: <K>(E: Eq<K>) => (k: K) => <A>(m: Map<K, A>) => Map<K, A> +/** + * @since 2.0.0 + */ +export declare const updateAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: Map<K, A>) => Option<Map<K, A>> +/** + * @since 2.0.0 + */ +export declare const modifyAt: <K>(E: Eq<K>) => <A>(k: K, f: (a: A) => A) => (m: Map<K, A>) => Option<Map<K, A>> +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.0.0 + */ +export declare function pop<K>(E: Eq<K>): (k: K) => <A>(m: Map<K, A>) => Option<[A, Map<K, A>]> +/** + * Lookup the value for a key in a `Map`. + * If the result is a `Some`, the existing key is also returned. + * + * @since 2.0.0 + */ +export declare function lookupWithKey<K>(E: Eq<K>): { + (k: K): <A>(m: Map<K, A>) => Option<[K, A]> + <A>(k: K, m: Map<K, A>): Option<[K, A]> +} +/** + * Lookup the value for a key in a `Map`. + * + * @since 2.0.0 + */ +export declare const lookup: <K>(E: Eq<K>) => { + (k: K): <A>(m: Map<K, A>) => Option<A> + <A>(k: K, m: Map<K, A>): Option<A> +} +/** + * Test whether or not one `Map` contains all of the keys and values contained in another `Map` + * + * @since 2.0.0 + */ +export declare const isSubmap: <K, A>( + SK: Eq<K>, + SA: Eq<A> +) => { + (that: Map<K, A>): (me: Map<K, A>) => boolean + (me: Map<K, A>, that: Map<K, A>): boolean +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <K, A>(SK: Eq<K>, SA: Eq<A>) => Eq<Map<K, A>> +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.0.0 + */ +export declare function getMonoid<K, A>(SK: Eq<K>, SA: Semigroup<A>): Monoid<Map<K, A>> +/** + * Create a map with one key/value pair + * + * @since 2.0.0 + */ +export declare const singleton: <K, A>(k: K, a: A) => Map<K, A> +/** + * Create a map from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @category constructors + * @since 2.0.0 + */ +export declare function fromFoldable<F extends URIS3, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, [K, A]>) => Map<K, A> +export declare function fromFoldable<F extends URIS2, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, [K, A]>) => Map<K, A> +export declare function fromFoldable<F extends URIS, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, [K, A]>) => Map<K, A> +export declare function fromFoldable<F, K, A>(E: Eq<K>, M: Magma<A>, F: Foldable<F>): (fka: HKT<F, [K, A]>) => Map<K, A> +/** + * @since 2.10.0 + */ +export declare const partitionMapWithIndex: <K, A, B, C>( + f: (k: K, a: A) => Either<B, C> +) => (fa: Map<K, A>) => Separated<Map<K, B>, Map<K, C>> +/** + * @since 2.10.0 + */ +export declare function partitionWithIndex<K, A, B extends A>( + predicateWithIndex: (k: K, a: A) => a is B +): (fa: Map<K, A>) => Separated<Map<K, A>, Map<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): <B extends A>(fb: Map<K, B>) => Separated<Map<K, B>, Map<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): (fa: Map<K, A>) => Separated<Map<K, A>, Map<K, A>> +/** + * @since 2.10.0 + */ +export declare const filterMapWithIndex: <K, A, B>(f: (k: K, a: A) => Option<B>) => (fa: Map<K, A>) => Map<K, B> +/** + * @since 2.10.0 + */ +export declare function filterWithIndex<K, A, B extends A>(p: (k: K, a: A) => a is B): (m: Map<K, A>) => Map<K, B> +export declare function filterWithIndex<K, A>(p: (k: K, a: A) => boolean): <B extends A>(m: Map<K, B>) => Map<K, B> +export declare function filterWithIndex<K, A>(p: (k: K, a: A) => boolean): (m: Map<K, A>) => Map<K, A> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <K, A>(fa: Map<K, Option<A>>) => Map<K, A> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): <K>(fa: Map<K, A>) => Map<K, B> + <A>(predicate: Predicate<A>): <K, B extends A>(fb: Map<K, B>) => Map<K, B> + <A>(predicate: Predicate<A>): <K>(fa: Map<K, A>) => Map<K, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => <K>(fa: Map<K, A>) => Map<K, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <K>(fa: Map<K, A>) => Map<K, B> +/** + * @category mapping + * @since 2.7.1 + */ +export declare const mapWithIndex: <K, A, B>(f: (k: K, a: A) => B) => (fa: Map<K, A>) => Map<K, B> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): <K>(fa: Map<K, A>) => Separated<Map<K, A>, Map<K, B>> + <A>(predicate: Predicate<A>): <K, B extends A>(fb: Map<K, B>) => Separated<Map<K, B>, Map<K, B>> + <A>(predicate: Predicate<A>): <K>(fa: Map<K, A>) => Separated<Map<K, A>, Map<K, A>> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => <K>(fa: Map<K, A>) => Separated<Map<K, B>, Map<K, C>> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <K, A, B>(fa: Map<K, Either<A, B>>) => Separated<Map<K, A>, Map<K, B>> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Map' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Map<E, A> + } +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<Map<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <K, A>(E: Eq<K>, S: Semigroup<A>) => Monoid<Map<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<Map<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <K>(E: Eq<K>) => <A>() => Magma<Map<K, A>> +/** + * @category filtering + * @since 2.0.0 + */ +export declare function getFilterableWithIndex<K = never>(): FilterableWithIndex2C<URI, K, K> +/** + * @category filtering + * @since 2.0.0 + */ +export declare function getWitherable<K>(O: Ord<K>): Witherable2C<URI, K> & TraversableWithIndex2C<URI, K, K> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduce: <K>(O: Ord<K>) => <B, A>(b: B, f: (b: B, a: A) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMap: <K>(O: Ord<K>) => <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (m: Map<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <K>(O: Ord<K>) => <B, A>(b: B, f: (a: A, b: B) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const getFoldable: <K>(O: Ord<K>) => Foldable2C<URI, K> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceWithIndex: <K>(O: Ord<K>) => <B, A>(b: B, f: (k: K, b: B, a: A) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMapWithIndex: <K>( + O: Ord<K> +) => <M>(M: Monoid<M>) => <A>(f: (k: K, a: A) => M) => (m: Map<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRightWithIndex: <K>( + O: Ord<K> +) => <B, A>(b: B, f: (k: K, a: A, b: B) => B) => (m: Map<K, A>) => B +/** + * @category folding + * @since 2.10.0 + */ +export declare const getFoldableWithIndex: <K>(O: Ord<K>) => FoldableWithIndex2C<URI, K, K> +/** + * @category traversing + * @since 2.10.0 + */ +export declare const getTraversableWithIndex: <K>(O: Ord<K>) => TraversableWithIndex2C<URI, K, K> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <E, B>(fab: Kind2<'Map', E, (a: A) => B>) => Kind2<'Map', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable2<URI> +/** + * @since 2.11.0 + */ +export declare const union: <K, A>(E: Eq<K>, M: Magma<A>) => (second: Map<K, A>) => (first: Map<K, A>) => Map<K, A> +/** + * @since 2.11.0 + */ +export declare const intersection: <K, A>( + E: Eq<K>, + M: Magma<A> +) => (second: Map<K, A>) => (first: Map<K, A>) => Map<K, A> +/** + * @since 2.11.0 + */ +export declare const difference: <K>(E: Eq<K>) => <A>(_second: Map<K, A>) => (first: Map<K, A>) => Map<K, A> +/** + * Use a `new Map()` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const empty: Map<never, never> +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const insertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: Map<K, A>) => Map<K, A> +/** + * Use [`Filterable`](#filterable) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const map_: Filterable2<URI> diff --git a/node_modules/fp-ts/lib/Map.js b/node_modules/fp-ts/lib/Map.js new file mode 100644 index 0000000..b1c761d --- /dev/null +++ b/node_modules/fp-ts/lib/Map.js @@ -0,0 +1,814 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.map_ = exports.insertAt = exports.empty = exports.difference = exports.intersection = exports.union = exports.Filterable = exports.Compactable = exports.flap = exports.Functor = exports.getTraversableWithIndex = exports.getFoldableWithIndex = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.getFoldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.URI = exports.separate = exports.partitionMap = exports.partition = exports.mapWithIndex = exports.map = exports.filterMap = exports.filter = exports.compact = exports.filterMapWithIndex = exports.partitionMapWithIndex = exports.singleton = exports.getEq = exports.isSubmap = exports.lookup = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.upsertAt = exports.values = exports.keys = exports.elem = exports.member = exports.isEmpty = exports.size = exports.getShow = void 0; +exports.collect = collect; +exports.toArray = toArray; +exports.toUnfoldable = toUnfoldable; +exports.pop = pop; +exports.lookupWithKey = lookupWithKey; +exports.getMonoid = getMonoid; +exports.fromFoldable = fromFoldable; +exports.partitionWithIndex = partitionWithIndex; +exports.filterWithIndex = filterWithIndex; +exports.getFilterableWithIndex = getFilterableWithIndex; +exports.getWitherable = getWitherable; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var O = __importStar(require("./Option")); +var RM = __importStar(require("./ReadonlyMap")); +var Separated_1 = require("./Separated"); +var Witherable_1 = require("./Witherable"); +/** + * @category instances + * @since 2.0.0 + */ +exports.getShow = RM.getShow; +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.0.0 + */ +exports.size = RM.size; +/** + * Test whether or not a map is empty + * + * @since 2.0.0 + */ +exports.isEmpty = RM.isEmpty; +// TODO: remove non-curried overloading in v3 +/** + * Test whether or not a key exists in a map + * + * @since 2.0.0 + */ +exports.member = RM.member; +// TODO: remove non-curried overloading in v3 +/** + * Test whether or not a value is a member of a map + * + * @since 2.0.0 + */ +exports.elem = RM.elem; +/** + * Get a sorted `Array` of the keys contained in a `Map`. + * + * @since 2.0.0 + */ +var keys = function (O) { + return function (m) { + return Array.from(m.keys()).sort(O.compare); + }; +}; +exports.keys = keys; +/** + * Get a sorted `Array` of the values contained in a `Map`. + * + * @since 2.0.0 + */ +var values = function (O) { + return function (m) { + return Array.from(m.values()).sort(O.compare); + }; +}; +exports.values = values; +/** + * @since 2.0.0 + */ +function collect(O) { + var keysO = (0, exports.keys)(O); + return function (f) { + return function (m) { + var out = []; + var ks = keysO(m); + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + out.push(f(key, m.get(key))); + } + return out; + }; + }; +} +/** + * Get a sorted `Array` of the key/value pairs contained in a `Map`. + * + * @since 2.0.0 + */ +function toArray(O) { + return collect(O)(function (k, a) { return [k, a]; }); +} +function toUnfoldable(ord, U) { + var toArrayO = toArray(ord); + return function (d) { + var kas = toArrayO(d); + var len = kas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([kas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `Map`. + * + * @since 2.0.0 + */ +var upsertAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, a) { + var lookupWithKeyEk = lookupWithKeyE(k); + return function (m) { + var found = lookupWithKeyEk(m); + if (_.isNone(found)) { + var out = new Map(m); + out.set(k, a); + return out; + } + else if (found.value[1] !== a) { + var out = new Map(m); + out.set(found.value[0], a); + return out; + } + return m; + }; + }; +}; +exports.upsertAt = upsertAt; +/** + * Delete a key and value from a map + * + * @since 2.0.0 + */ +var deleteAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isSome(found)) { + var r = new Map(m); + r.delete(found.value[0]); + return r; + } + return m; + }; }; +}; +exports.deleteAt = deleteAt; +/** + * @since 2.0.0 + */ +var updateAt = function (E) { + var modifyAtE = (0, exports.modifyAt)(E); + return function (k, a) { return modifyAtE(k, function () { return a; }); }; +}; +exports.updateAt = updateAt; +/** + * @since 2.0.0 + */ +var modifyAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, f) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isNone(found)) { + return _.none; + } + var r = new Map(m); + r.set(found.value[0], f(found.value[1])); + return _.some(r); + }; }; +}; +exports.modifyAt = modifyAt; +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.0.0 + */ +function pop(E) { + var lookupE = (0, exports.lookup)(E); + var deleteAtE = (0, exports.deleteAt)(E); + return function (k) { + var deleteAtEk = deleteAtE(k); + return function (m) { + return (0, function_1.pipe)(lookupE(k, m), O.map(function (a) { return [a, deleteAtEk(m)]; })); + }; + }; +} +function lookupWithKey(E) { + return function (k, m) { + if (m === undefined) { + var lookupWithKeyE_1 = lookupWithKey(E); + return function (m) { return lookupWithKeyE_1(k, m); }; + } + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, ka = _a[0], a = _a[1]; + if (E.equals(ka, k)) { + return _.some([ka, a]); + } + } + return _.none; + }; +} +// TODO: remove non-curried overloading in v3 +/** + * Lookup the value for a key in a `Map`. + * + * @since 2.0.0 + */ +exports.lookup = RM.lookup; +// TODO: remove non-curried overloading in v3 +/** + * Test whether or not one `Map` contains all of the keys and values contained in another `Map` + * + * @since 2.0.0 + */ +exports.isSubmap = RM.isSubmap; +/** + * @category instances + * @since 2.0.0 + */ +exports.getEq = RM.getEq; +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.0.0 + */ +function getMonoid(SK, SA) { + var lookupWithKeyS = lookupWithKey(SK); + return { + concat: function (mx, my) { + if ((0, exports.isEmpty)(mx)) { + return my; + } + if ((0, exports.isEmpty)(my)) { + return mx; + } + var r = new Map(mx); + var entries = my.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var mxOptA = lookupWithKeyS(k, mx); + if (_.isSome(mxOptA)) { + r.set(mxOptA.value[0], SA.concat(mxOptA.value[1], a)); + } + else { + r.set(k, a); + } + } + return r; + }, + empty: new Map() + }; +} +/** + * Create a map with one key/value pair + * + * @since 2.0.0 + */ +var singleton = function (k, a) { return new Map([[k, a]]); }; +exports.singleton = singleton; +function fromFoldable(E, M, F) { + return function (fka) { + var lookupWithKeyE = lookupWithKey(E); + return F.reduce(fka, new Map(), function (b, _a) { + var k = _a[0], a = _a[1]; + var bOpt = lookupWithKeyE(k, b); + if (_.isSome(bOpt)) { + b.set(bOpt.value[0], M.concat(bOpt.value[1], a)); + } + else { + b.set(k, a); + } + return b; + }); + }; +} +var _mapWithIndex = function (fa, f) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, key = _a[0], a = _a[1]; + m.set(key, f(key, a)); + } + return m; +}; +/** + * @since 2.10.0 + */ +var partitionMapWithIndex = function (f) { + return function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var ei = f(k, a); + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return (0, Separated_1.separated)(left, right); + }; +}; +exports.partitionMapWithIndex = partitionMapWithIndex; +function partitionWithIndex(predicateWithIndex) { + return function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (predicateWithIndex(k, a)) { + right.set(k, a); + } + else { + left.set(k, a); + } + } + return (0, Separated_1.separated)(left, right); + }; +} +/** + * @since 2.10.0 + */ +var filterMapWithIndex = function (f) { + return function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var o = f(k, a); + if (_.isSome(o)) { + m.set(k, o.value); + } + } + return m; + }; +}; +exports.filterMapWithIndex = filterMapWithIndex; +function filterWithIndex(p) { + return function (m) { + var out = new Map(); + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (p(k, a)) { + out.set(k, a); + } + } + return out; + }; +} +var _map = function (fa, f) { return _mapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filter = function (fa, p) { + return _filterWithIndex(fa, function (_, a) { return p(a); }); +}; +var _filterMap = function (fa, f) { return _filterMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _partition = function (fa, predicate) { + return _partitionWithIndex(fa, function (_, a) { return predicate(a); }); +}; +var _partitionMap = function (fa, f) { return _partitionMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filterWithIndex = function (fa, p) { return (0, function_1.pipe)(fa, filterWithIndex(p)); }; +var _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); }; +var _partitionWithIndex = function (fa, p) { return (0, function_1.pipe)(fa, partitionWithIndex(p)); }; +var _partitionMapWithIndex = function (fa, f) { + return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); +}; +/** + * @category filtering + * @since 2.0.0 + */ +var compact = function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], oa = _a[1]; + if (_.isSome(oa)) { + m.set(k, oa.value); + } + } + return m; +}; +exports.compact = compact; +/** + * @category filtering + * @since 2.0.0 + */ +var filter = function (predicate) { + return function (fa) { + return _filter(fa, predicate); + }; +}; +exports.filter = filter; +/** + * @category filtering + * @since 2.0.0 + */ +var filterMap = function (f) { return function (fa) { + return _filterMap(fa, f); +}; }; +exports.filterMap = filterMap; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return _map(fa, f); }; }; +exports.map = map; +/** + * @category mapping + * @since 2.7.1 + */ +var mapWithIndex = function (f) { return function (fa) { + return _mapWithIndex(fa, f); +}; }; +exports.mapWithIndex = mapWithIndex; +/** + * @category filtering + * @since 2.0.0 + */ +var partition = function (predicate) { + return function (fa) { + return _partition(fa, predicate); + }; +}; +exports.partition = partition; +/** + * @category filtering + * @since 2.0.0 + */ +var partitionMap = function (f) { return function (fa) { return _partitionMap(fa, f); }; }; +exports.partitionMap = partitionMap; +/** + * @category filtering + * @since 2.0.0 + */ +var separate = function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], ei = _a[1]; + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return (0, Separated_1.separated)(left, right); +}; +exports.separate = separate; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Map'; +/** + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (E, S) { + var unionES = (0, exports.union)(E, S); + return { + concat: function (first, second) { return unionES(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getUnionMonoid = function (E, S) { return ({ + concat: (0, exports.getUnionSemigroup)(E, S).concat, + empty: new Map() +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * @category instances + * @since 2.11.0 + */ +var getIntersectionSemigroup = function (E, S) { + var intersectionES = (0, exports.intersection)(E, S); + return { + concat: function (first, second) { return intersectionES(second)(first); } + }; +}; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function (E) { + return function () { + var differenceE = (0, exports.difference)(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; + }; +}; +exports.getDifferenceMagma = getDifferenceMagma; +/** + * @category filtering + * @since 2.0.0 + */ +function getFilterableWithIndex() { + return { + URI: exports.URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex + }; +} +/** + * @category filtering + * @since 2.0.0 + */ +function getWitherable(O) { + var TWI = (0, exports.getTraversableWithIndex)(O); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: TWI.reduce, + foldMap: TWI.foldMap, + reduceRight: TWI.reduceRight, + traverse: TWI.traverse, + sequence: TWI.sequence, + mapWithIndex: _mapWithIndex, + reduceWithIndex: TWI.reduceWithIndex, + foldMapWithIndex: TWI.foldMapWithIndex, + reduceRightWithIndex: TWI.reduceRightWithIndex, + traverseWithIndex: TWI.traverseWithIndex, + wilt: (0, Witherable_1.wiltDefault)(TWI, exports.Compactable), + wither: (0, Witherable_1.witherDefault)(TWI, exports.Compactable) + }; +} +/** + * @category folding + * @since 2.11.0 + */ +exports.reduce = RM.reduce; +/** + * @category folding + * @since 2.11.0 + */ +exports.foldMap = RM.foldMap; +/** + * @category folding + * @since 2.11.0 + */ +exports.reduceRight = RM.reduceRight; +/** + * @category folding + * @since 2.11.0 + */ +var getFoldable = function (O) { + return __assign(__assign({}, RM.getFoldable(O)), { URI: exports.URI }); +}; +exports.getFoldable = getFoldable; +/** + * @category folding + * @since 2.11.0 + */ +exports.reduceWithIndex = RM.reduceWithIndex; +/** + * @category folding + * @since 2.11.0 + */ +exports.foldMapWithIndex = RM.foldMapWithIndex; +/** + * @category folding + * @since 2.11.0 + */ +exports.reduceRightWithIndex = RM.reduceRightWithIndex; +/** + * @category folding + * @since 2.10.0 + */ +var getFoldableWithIndex = function (O) { + return __assign(__assign({}, RM.getFoldableWithIndex(O)), { URI: exports.URI }); +}; +exports.getFoldableWithIndex = getFoldableWithIndex; +/** + * @category traversing + * @since 2.10.0 + */ +var getTraversableWithIndex = function (O) { + var FWI = (0, exports.getFoldableWithIndex)(O); + var keysO = (0, exports.keys)(O); + var traverseWithIndex = function (F) { + return function (ta, f) { + var fm = F.of(new Map()); + var ks = keysO(ta); + var len = ks.length; + var _loop_1 = function (i) { + var key = ks[i]; + var a = ta.get(key); + fm = F.ap(F.map(fm, function (m) { return function (b) { return m.set(key, b); }; }), f(key, a)); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + return fm; + }; + }; + var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return traverseWithIndexF(ta, function (_, a) { return f(a); }); }; + }; + var sequence = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta) { return traverseWithIndexF(ta, function (_, a) { return a; }); }; + }; + return { + URI: exports.URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: FWI.reduce, + foldMap: FWI.foldMap, + reduceRight: FWI.reduceRight, + reduceWithIndex: FWI.reduceWithIndex, + foldMapWithIndex: FWI.foldMapWithIndex, + reduceRightWithIndex: FWI.reduceRightWithIndex, + traverse: traverse, + sequence: sequence, + traverseWithIndex: traverseWithIndex + }; +}; +exports.getTraversableWithIndex = getTraversableWithIndex; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +var copy = function (m) { return new Map(m); }; +/** + * @since 2.11.0 + */ +var union = function (E, M) { + var unionEM = RM.union(E, M); + return function (second) { return function (first) { + if ((0, exports.isEmpty)(first)) { + return copy(second); + } + if ((0, exports.isEmpty)(second)) { + return copy(first); + } + return unionEM(second)(first); + }; }; +}; +exports.union = union; +/** + * @since 2.11.0 + */ +var intersection = function (E, M) { + var intersectionEM = RM.intersection(E, M); + return function (second) { return function (first) { + if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) { + return new Map(); + } + return intersectionEM(second)(first); + }; }; +}; +exports.intersection = intersection; +/** + * @since 2.11.0 + */ +var difference = function (E) { + var differenceE = RM.difference(E); + return function (second) { + return function (first) { + if ((0, exports.isEmpty)(first)) { + return copy(second); + } + if ((0, exports.isEmpty)(second)) { + return copy(first); + } + return differenceE(second)(first); + }; + }; +}; +exports.difference = difference; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use a `new Map()` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.empty = new Map(); +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.insertAt = exports.upsertAt; +/** + * Use [`Filterable`](#filterable) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.map_ = exports.Filterable; diff --git a/node_modules/fp-ts/lib/MeetSemilattice.d.ts b/node_modules/fp-ts/lib/MeetSemilattice.d.ts new file mode 100644 index 0000000..8baa2b2 --- /dev/null +++ b/node_modules/fp-ts/lib/MeetSemilattice.d.ts @@ -0,0 +1,19 @@ +/** + * A meet-semilattice (or lower semilattice) is a semilattice whose operation is called `meet`, and which can be thought + * of as a greatest lower bound. + * + * A `MeetSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∧ (b ∧ c) <-> (a ∧ b) ∧ c` + * - Commutativity: `a ∧ b <-> b ∧ a` + * - Idempotency: `a ∧ a <-> a` + * + * @since 2.0.0 + */ +/** + * @category model + * @since 2.0.0 + */ +export interface MeetSemilattice<A> { + readonly meet: (x: A, y: A) => A +} diff --git a/node_modules/fp-ts/lib/MeetSemilattice.js b/node_modules/fp-ts/lib/MeetSemilattice.js new file mode 100644 index 0000000..cfb7e23 --- /dev/null +++ b/node_modules/fp-ts/lib/MeetSemilattice.js @@ -0,0 +1,14 @@ +"use strict"; +/** + * A meet-semilattice (or lower semilattice) is a semilattice whose operation is called `meet`, and which can be thought + * of as a greatest lower bound. + * + * A `MeetSemilattice` must satisfy the following laws: + * + * - Associativity: `a ∧ (b ∧ c) <-> (a ∧ b) ∧ c` + * - Commutativity: `a ∧ b <-> b ∧ a` + * - Idempotency: `a ∧ a <-> a` + * + * @since 2.0.0 + */ +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Monad.d.ts b/node_modules/fp-ts/lib/Monad.d.ts new file mode 100644 index 0000000..4121ed5 --- /dev/null +++ b/node_modules/fp-ts/lib/Monad.d.ts @@ -0,0 +1,61 @@ +/** + * The `Monad` type class combines the operations of the `Chain` and + * `Applicative` type classes. Therefore, `Monad` instances represent type + * constructors which support sequential composition, and also lifting of + * functions of arbitrary arity. + * + * Instances must satisfy the following laws in addition to the `Applicative` and `Chain` laws: + * + * 1. Left identity: `M.chain(M.of(a), f) <-> f(a)` + * 2. Right identity: `M.chain(fa, M.of) <-> fa` + * + * Note. `Functor`'s `map` can be derived: `A.map = (fa, f) => A.chain(fa, a => A.of(f(a)))` + * + * @since 2.0.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Monad<F> extends Applicative<F>, Chain<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad1<F extends URIS> extends Applicative1<F>, Chain1<F> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad2<M extends URIS2> extends Applicative2<M>, Chain2<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad2C<M extends URIS2, L> extends Applicative2C<M, L>, Chain2C<M, L> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad3<M extends URIS3> extends Applicative3<M>, Chain3<M> {} +/** + * @category model + * @since 2.2.0 + */ +export interface Monad3C<M extends URIS3, E> extends Applicative3C<M, E>, Chain3C<M, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface Monad4<M extends URIS4> extends Applicative4<M>, Chain4<M> {} diff --git a/node_modules/fp-ts/lib/Monad.js b/node_modules/fp-ts/lib/Monad.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Monad.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/MonadIO.d.ts b/node_modules/fp-ts/lib/MonadIO.d.ts new file mode 100644 index 0000000..e1f2a2d --- /dev/null +++ b/node_modules/fp-ts/lib/MonadIO.d.ts @@ -0,0 +1,43 @@ +/** + * Lift a computation from the `IO` monad + * + * @since 2.0.0 + */ +import { FromIO, FromIO1, FromIO2, FromIO2C, FromIO3, FromIO3C, FromIO4 } from './FromIO' +import { URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO<M> extends Monad<M>, FromIO<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO1<M extends URIS> extends Monad1<M>, FromIO1<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO2<M extends URIS2> extends Monad2<M>, FromIO2<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO2C<M extends URIS2, E> extends Monad2C<M, E>, FromIO2C<M, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadIO3<M extends URIS3> extends Monad3<M>, FromIO3<M> {} +/** + * @category model + * @since 2.2.0 + */ +export interface MonadIO3C<M extends URIS3, E> extends Monad3C<M, E>, FromIO3C<M, E> {} +/** + * @category model + * @since 2.4.4 + */ +export interface MonadIO4<M extends URIS4> extends Monad4<M>, FromIO4<M> {} diff --git a/node_modules/fp-ts/lib/MonadIO.js b/node_modules/fp-ts/lib/MonadIO.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/MonadIO.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/MonadTask.d.ts b/node_modules/fp-ts/lib/MonadTask.d.ts new file mode 100644 index 0000000..6021eaf --- /dev/null +++ b/node_modules/fp-ts/lib/MonadTask.d.ts @@ -0,0 +1,43 @@ +/** + * Lift a computation from the `Task` monad + * + * @since 2.0.0 + */ +import { FromTask, FromTask1, FromTask2, FromTask2C, FromTask3, FromTask3C, FromTask4 } from './FromTask' +import { URIS, URIS2, URIS3, URIS4 } from './HKT' +import { MonadIO, MonadIO1, MonadIO2, MonadIO2C, MonadIO3, MonadIO3C, MonadIO4 } from './MonadIO' +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask<M> extends MonadIO<M>, FromTask<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask1<M extends URIS> extends MonadIO1<M>, FromTask1<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask2<M extends URIS2> extends MonadIO2<M>, FromTask2<M> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask2C<M extends URIS2, E> extends MonadIO2C<M, E>, FromTask2C<M, E> {} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadTask3<M extends URIS3> extends MonadIO3<M>, FromTask3<M> {} +/** + * @category model + * @since 2.2.0 + */ +export interface MonadTask3C<M extends URIS3, E> extends MonadIO3C<M, E>, FromTask3C<M, E> {} +/** + * @category model + * @since 2.4.4 + */ +export interface MonadTask4<M extends URIS4> extends MonadIO4<M>, FromTask4<M> {} diff --git a/node_modules/fp-ts/lib/MonadTask.js b/node_modules/fp-ts/lib/MonadTask.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/MonadTask.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/MonadThrow.d.ts b/node_modules/fp-ts/lib/MonadThrow.d.ts new file mode 100644 index 0000000..e921e16 --- /dev/null +++ b/node_modules/fp-ts/lib/MonadThrow.d.ts @@ -0,0 +1,61 @@ +/** + * The `MonadThrow` type class represents those monads which support errors via + * `throwError`, where `throwError(e)` halts, yielding the error `e`. + * + * Laws: + * + * - Left zero: `M.chain(M.throwError(e), f) = M.throwError(e)` + * + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow<M> extends Monad<M> { + readonly throwError: <E, A>(e: E) => HKT<M, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow1<M extends URIS> extends Monad1<M> { + readonly throwError: <E, A>(e: E) => Kind<M, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow2<M extends URIS2> extends Monad2<M> { + readonly throwError: <E, A>(e: E) => Kind2<M, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow2C<M extends URIS2, E> extends Monad2C<M, E> { + readonly throwError: <A>(e: E) => Kind2<M, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow3<M extends URIS3> extends Monad3<M> { + readonly throwError: <R, E, A>(e: E) => Kind3<M, R, E, A> +} +/** + * @category model + * @since 2.2.0 + */ +export interface MonadThrow3C<M extends URIS3, E> extends Monad3C<M, E> { + readonly throwError: <R, A>(e: E) => Kind3<M, R, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface MonadThrow4<M extends URIS4> extends Monad4<M> { + readonly throwError: <S, R, E, A>(e: E) => Kind4<M, S, R, E, A> +} diff --git a/node_modules/fp-ts/lib/MonadThrow.js b/node_modules/fp-ts/lib/MonadThrow.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/MonadThrow.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Monoid.d.ts b/node_modules/fp-ts/lib/Monoid.d.ts new file mode 100644 index 0000000..b555ebc --- /dev/null +++ b/node_modules/fp-ts/lib/Monoid.d.ts @@ -0,0 +1,268 @@ +/** + * `Monoid` extends the power of `Semigroup` by providing an additional `empty` value. + * + * ```ts + * interface Semigroup<A> { + * readonly concat: (x: A, y: A) => A + * } + * + * interface Monoid<A> extends Semigroup<A> { + * readonly empty: A + * } + * ``` + * + * This `empty` value should be an identity for the `concat` operation, which means the following equalities hold for any choice of `x`. + * + * ```ts + * concat(x, empty) = concat(empty, x) = x + * ``` + * + * Many types that form a `Semigroup` also form a `Monoid`, such as `number`s (with `0`) and `string`s (with `''`). + * + * ```ts + * import { Monoid } from 'fp-ts/Monoid' + * + * const monoidString: Monoid<string> = { + * concat: (x, y) => x + y, + * empty: '' + * } + * ``` + * + * *Adapted from https://typelevel.org/cats* + * + * @since 2.0.0 + */ +import { Bounded } from './Bounded' +import { Endomorphism } from './Endomorphism' +import { ReadonlyRecord } from './ReadonlyRecord' +import * as Se from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Monoid<A> extends Se.Semigroup<A> { + readonly empty: A +} +/** + * Get a monoid where `concat` will return the minimum, based on the provided bounded order. + * + * The `empty` value is the `top` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.min(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +export declare const min: <A>(B: Bounded<A>) => Monoid<A> +/** + * Get a monoid where `concat` will return the maximum, based on the provided bounded order. + * + * The `empty` value is the `bottom` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.max(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +export declare const max: <A>(B: Bounded<A>) => Monoid<A> +/** + * The dual of a `Monoid`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Monoid' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Monoid).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +export declare const reverse: <A>(M: Monoid<A>) => Monoid<A> +/** + * Given a struct of monoids returns a monoid for the struct. + * + * @example + * import { struct } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const M = struct<Point>({ + * x: N.MonoidSum, + * y: N.MonoidSum + * }) + * + * assert.deepStrictEqual(M.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +export declare const struct: <A>(monoids: { [K in keyof A]: Monoid<A[K]> }) => Monoid<{ readonly [K in keyof A]: A[K] }> +/** + * Given a tuple of monoids returns a monoid for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Monoid' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const M1 = tuple(S.Monoid, N.MonoidSum) + * assert.deepStrictEqual(M1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const M2 = tuple(S.Monoid, N.MonoidSum, B.MonoidAll) + * assert.deepStrictEqual(M2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...monoids: { [K in keyof A]: Monoid<A[K]> } +) => Monoid<Readonly<A>> +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the monoid `empty` value. + * + * @example + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) + * assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) + * + * @since 2.10.0 + */ +export declare const concatAll: <A>(M: Monoid<A>) => (as: ReadonlyArray<A>) => A +/** + * Use [`Monoid`](./void.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidVoid: Monoid<void> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleMonoid: <T extends ReadonlyArray<Monoid<any>>>( + ...monoids: T +) => Monoid<{ + [K in keyof T]: T[K] extends Se.Semigroup<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructMonoid: <O extends ReadonlyRecord<string, any>>(monoids: { + [K in keyof O]: Monoid<O[K]> +}) => Monoid<O> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualMonoid: <A>(M: Monoid<A>) => Monoid<A> +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getJoinMonoid: <A>(B: Bounded<A>) => Monoid<A> +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMeetMonoid: <A>(B: Bounded<A>) => Monoid<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const fold: <A>(M: Monoid<A>) => (as: ReadonlyArray<A>) => A +/** + * Use [`MonoidAll`](./boolean.ts.html#monoidall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidAll: Monoid<boolean> +/** + * Use [`MonoidAny`](./boolean.ts.html#monoidany) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidAny: Monoid<boolean> +/** + * Use [`getMonoid`](./function.ts.html#getmonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionMonoid: <M>(M: Monoid<M>) => <A = never>() => Monoid<(a: A) => M> +/** + * Use [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) instead. + * + * **Note**. The execution order in [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) is reversed. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getEndomorphismMonoid: <A = never>() => Monoid<Endomorphism<A>> +/** + * Use [`Monoid`](./string.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidString: Monoid<string> +/** + * Use [`MonoidSum`](./number.ts.html#monoidsum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidSum: Monoid<number> +/** + * Use [`MonoidProduct`](./number.ts.html#monoidproduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const monoidProduct: Monoid<number> diff --git a/node_modules/fp-ts/lib/Monoid.js b/node_modules/fp-ts/lib/Monoid.js new file mode 100644 index 0000000..1cb802d --- /dev/null +++ b/node_modules/fp-ts/lib/Monoid.js @@ -0,0 +1,311 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.monoidProduct = exports.monoidSum = exports.monoidString = exports.getEndomorphismMonoid = exports.getFunctionMonoid = exports.monoidAny = exports.monoidAll = exports.fold = exports.getMeetMonoid = exports.getJoinMonoid = exports.getDualMonoid = exports.getStructMonoid = exports.getTupleMonoid = exports.monoidVoid = exports.concatAll = exports.tuple = exports.struct = exports.reverse = exports.max = exports.min = void 0; +var Endomorphism_1 = require("./Endomorphism"); +var function_1 = require("./function"); +var _ = __importStar(require("./internal")); +var Se = __importStar(require("./Semigroup")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Get a monoid where `concat` will return the minimum, based on the provided bounded order. + * + * The `empty` value is the `top` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.min(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +var min = function (B) { return ({ + concat: Se.min(B).concat, + empty: B.top +}); }; +exports.min = min; +/** + * Get a monoid where `concat` will return the maximum, based on the provided bounded order. + * + * The `empty` value is the `bottom` value. + * + * @example + * import * as N from 'fp-ts/number' + * import * as M from 'fp-ts/Monoid' + * + * const M1 = M.max(N.Bounded) + * + * assert.deepStrictEqual(M1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +var max = function (B) { return ({ + concat: Se.max(B).concat, + empty: B.bottom +}); }; +exports.max = max; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * The dual of a `Monoid`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Monoid' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Monoid).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +var reverse = function (M) { return ({ + concat: Se.reverse(M).concat, + empty: M.empty +}); }; +exports.reverse = reverse; +/** + * Given a struct of monoids returns a monoid for the struct. + * + * @example + * import { struct } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const M = struct<Point>({ + * x: N.MonoidSum, + * y: N.MonoidSum + * }) + * + * assert.deepStrictEqual(M.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +var struct = function (monoids) { + var empty = {}; + for (var k in monoids) { + if (_.has.call(monoids, k)) { + empty[k] = monoids[k].empty; + } + } + return { + concat: Se.struct(monoids).concat, + empty: empty + }; +}; +exports.struct = struct; +/** + * Given a tuple of monoids returns a monoid for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Monoid' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const M1 = tuple(S.Monoid, N.MonoidSum) + * assert.deepStrictEqual(M1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const M2 = tuple(S.Monoid, N.MonoidSum, B.MonoidAll) + * assert.deepStrictEqual(M2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +var tuple = function () { + var monoids = []; + for (var _i = 0; _i < arguments.length; _i++) { + monoids[_i] = arguments[_i]; + } + return ({ + concat: Se.tuple.apply(Se, monoids).concat, + empty: monoids.map(function (m) { return m.empty; }) + }); +}; +exports.tuple = tuple; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the monoid `empty` value. + * + * @example + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(concatAll(N.MonoidSum)([1, 2, 3]), 6) + * assert.deepStrictEqual(concatAll(N.MonoidSum)([]), 0) + * + * @since 2.10.0 + */ +var concatAll = function (M) { return Se.concatAll(M)(M.empty); }; +exports.concatAll = concatAll; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Monoid`](./void.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.monoidVoid = { + concat: Se.semigroupVoid.concat, + empty: undefined +}; +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getTupleMonoid = exports.tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getStructMonoid = exports.struct; +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getDualMonoid = exports.reverse; +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getJoinMonoid = exports.max; +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getMeetMonoid = exports.min; +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.fold = exports.concatAll; +/** + * Use [`MonoidAll`](./boolean.ts.html#monoidall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.monoidAll = { + concat: Se.semigroupAll.concat, + empty: true +}; +/** + * Use [`MonoidAny`](./boolean.ts.html#monoidany) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.monoidAny = { + concat: Se.semigroupAny.concat, + empty: false +}; +/** + * Use [`getMonoid`](./function.ts.html#getmonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getFunctionMonoid = function_1.getMonoid; +/** + * Use [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) instead. + * + * **Note**. The execution order in [`getEndomorphismMonoid`](./function.ts.html#getendomorphismmonoid) is reversed. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getEndomorphismMonoid = function () { return (0, exports.reverse)((0, Endomorphism_1.getMonoid)()); }; +exports.getEndomorphismMonoid = getEndomorphismMonoid; +/** + * Use [`Monoid`](./string.ts.html#monoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.monoidString = { + concat: Se.semigroupString.concat, + empty: '' +}; +/** + * Use [`MonoidSum`](./number.ts.html#monoidsum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.monoidSum = { + concat: Se.semigroupSum.concat, + empty: 0 +}; +/** + * Use [`MonoidProduct`](./number.ts.html#monoidproduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.monoidProduct = { + concat: Se.semigroupProduct.concat, + empty: 1 +}; diff --git a/node_modules/fp-ts/lib/NaturalTransformation.d.ts b/node_modules/fp-ts/lib/NaturalTransformation.d.ts new file mode 100644 index 0000000..da3e6bc --- /dev/null +++ b/node_modules/fp-ts/lib/NaturalTransformation.d.ts @@ -0,0 +1,132 @@ +/** + * A type for natural transformations. + * + * A natural transformation is a mapping between type constructors of kind `* -> *` where the mapping + * operation has no ability to manipulate the inner values. + * + * The definition of a natural transformation in category theory states that `F` and `G` should be functors, + * but the `Functor` constraint is not enforced here; that the types are of kind `* -> *` is enough for our purposes. + * + * @since 2.11.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @since 2.11.0 + */ +export interface NaturalTransformation<F, G> { + <A>(fa: HKT<F, A>): HKT<G, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation11<F extends URIS, G extends URIS> { + <A>(fa: Kind<F, A>): Kind<G, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation12<F extends URIS, G extends URIS2> { + <A, E>(fa: Kind<F, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation12C<F extends URIS, G extends URIS2, E> { + <A>(fa: Kind<F, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation13<F extends URIS, G extends URIS3> { + <A, R, E>(fa: Kind<F, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation13C<F extends URIS, G extends URIS3, E> { + <A, R>(fa: Kind<F, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation14<F extends URIS, G extends URIS4> { + <A, S, R, E>(fa: Kind<F, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation14C<F extends URIS, G extends URIS4, E> { + <A, S, R>(fa: Kind<F, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation21<F extends URIS2, G extends URIS> { + <A>(fa: Kind2<F, unknown, A>): Kind<G, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation22<F extends URIS2, G extends URIS2> { + <E, A>(fa: Kind2<F, E, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation22C<F extends URIS2, G extends URIS2, E> { + <A>(fa: Kind2<F, E, A>): Kind2<G, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23<F extends URIS2, G extends URIS3> { + <E, A, R>(fa: Kind2<F, E, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23C<F extends URIS2, G extends URIS3, E> { + <A, R>(fa: Kind2<F, E, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation24<F extends URIS2, G extends URIS4> { + <E, A, S, R>(fa: Kind2<F, E, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23R<F extends URIS2, G extends URIS3> { + <R, A, E>(fa: Kind2<F, R, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation23RC<F extends URIS2, G extends URIS3, E> { + <R, A>(fa: Kind2<F, R, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation24R<F extends URIS2, G extends URIS4> { + <R, A, S, E>(fa: Kind2<F, R, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation24S<F extends URIS2, G extends URIS4> { + <S, A, R, E>(fa: Kind2<F, S, A>): Kind4<G, S, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation33<F extends URIS3, G extends URIS3> { + <R, E, A>(fa: Kind3<F, R, E, A>): Kind3<G, R, E, A> +} +/** + * @since 2.11.0 + */ +export interface NaturalTransformation34<F extends URIS3, G extends URIS4> { + <R, E, A, S>(fa: Kind3<F, R, E, A>): Kind4<G, S, R, E, A> +} diff --git a/node_modules/fp-ts/lib/NaturalTransformation.js b/node_modules/fp-ts/lib/NaturalTransformation.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/NaturalTransformation.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/NonEmptyArray.d.ts b/node_modules/fp-ts/lib/NonEmptyArray.d.ts new file mode 100644 index 0000000..64812bb --- /dev/null +++ b/node_modules/fp-ts/lib/NonEmptyArray.d.ts @@ -0,0 +1,855 @@ +/** + * Data structure which represents non-empty arrays. + * + * ```ts + * export type NonEmptyArray<A> = Array<A> & { + * 0: A + * } + * ``` + * + * Note that you don't need any conversion, a `NonEmptyArray` is an `Array`, + * so all `Array`'s APIs can be used with a `NonEmptyArray` without further ado. + * + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { Comonad1 } from './Comonad' +import { Endomorphism } from './Endomorphism' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Monad1 } from './Monad' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import * as RNEA from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import Semigroup = Se.Semigroup +import ReadonlyNonEmptyArray = RNEA.ReadonlyNonEmptyArray +/** + * @category model + * @since 2.0.0 + */ +export interface NonEmptyArray<A> extends Array<A> { + 0: A +} +/** + * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = NEA.sortBy([byName, byAge]) + * + * const persons: NEA.NonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +export declare const sortBy: <B>(ords: Array<Ord<B>>) => <A extends B>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @since 2.11.0 + */ +export declare const union: <A>(E: Eq<A>) => (second: NonEmptyArray<A>) => (first: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Rotate a `NonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +export declare const rotate: (n: number) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromReadonlyNonEmptyArray: <A>(as: ReadonlyNonEmptyArray<A>) => NonEmptyArray<A> +/** + * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromArray: <A>(as: Array<A>) => Option<NonEmptyArray<A>> +/** + * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const makeBy: <A>(f: (i: number) => A) => (n: number) => NonEmptyArray<A> +/** + * Create a `NonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +export declare const replicate: <A>(a: A) => (n: number) => ReadonlyNonEmptyArray<A> +/** + * Create a `NonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const range: (start: number, end: number) => NonEmptyArray<number> +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]]) + * + * @since 2.9.0 + */ +export declare const unprepend: <A>(as: NonEmptyArray<A>) => [A, Array<A>] +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +export declare const unappend: <A>(as: NonEmptyArray<A>) => [Array<A>, A] +/** + * @since 2.11.0 + */ +export declare function concatW<B>(second: NonEmptyArray<B>): <A>(first: Array<A>) => NonEmptyArray<A | B> +export declare function concatW<B>(second: Array<B>): <A>(first: NonEmptyArray<A>) => NonEmptyArray<A | B> +/** + * @since 2.2.0 + */ +export declare function concat<A>(second: NonEmptyArray<A>): (first: Array<A>) => NonEmptyArray<A> +export declare function concat<A>(second: Array<A>): (first: NonEmptyArray<A>) => NonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: Array<A>, second: NonEmptyArray<A>): NonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: NonEmptyArray<A>, second: Array<A>): NonEmptyArray<A> +/** + * @since 2.0.0 + */ +export declare const reverse: <A>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Group equal, consecutive elements of an array into non empty arrays. + * + * @example + * import { group } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(group(N.Ord)([1, 2, 1, 1]), [ + * [1], + * [2], + * [1, 1] + * ]) + * + * @since 2.0.0 + */ +export declare function group<B>(E: Eq<B>): { + <A extends B>(as: NonEmptyArray<A>): NonEmptyArray<NonEmptyArray<A>> + <A extends B>(as: Array<A>): Array<NonEmptyArray<A>> +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.0.0 + */ +export declare const groupBy: <A>(f: (a: A) => string) => (as: Array<A>) => Record<string, NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @since 2.0.0 + */ +export declare const insertAt: <A>(i: number, a: A) => (as: Array<A>) => Option<NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const updateAt: <A>(i: number, a: A) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * @since 2.0.0 + */ +export declare const copy: <A>(as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => NonEmptyArray<A> +/** + * @since 2.5.1 + */ +export declare const zipWith: <A, B, C>( + as: NonEmptyArray<A>, + bs: NonEmptyArray<B>, + f: (a: A, b: B) => C +) => NonEmptyArray<C> +/** + * @since 2.5.1 + */ +export declare function zip<B>(bs: NonEmptyArray<B>): <A>(as: NonEmptyArray<A>) => NonEmptyArray<[A, B]> +export declare function zip<A, B>(as: NonEmptyArray<A>, bs: NonEmptyArray<B>): NonEmptyArray<[A, B]> +/** + * @since 2.5.1 + */ +export declare const unzip: <A, B>(abs: NonEmptyArray<[A, B]>) => [NonEmptyArray<A>, NonEmptyArray<B>] +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMapWithIndex: <S>( + S: Semigroup<S> +) => <A>(f: (i: number, a: A) => S) => (fa: NonEmptyArray<A>) => S +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <S>(S: Semigroup<S>) => <A>(f: (a: A) => S) => (fa: NonEmptyArray<A>) => S +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainWithIndex: <A, B>( + f: (i: number, a: A) => NonEmptyArray<B> +) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @since 2.10.0 + */ +export declare const chop: <A, B>( + f: (as: NonEmptyArray<A>) => [B, Array<A>] +) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +export declare const splitAt: (n: number) => <A>(as: NonEmptyArray<A>) => [NonEmptyArray<A>, Array<A>] +/** + * @since 2.10.0 + */ +export declare const chunksOf: (n: number) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<NonEmptyArray<A>> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as NEA.NonEmptyArray<number>, + * NEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<NonEmptyArray<B>>) => <A>(as: NonEmptyArray<A>) => NonEmptyArray<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `NonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +export declare const alt: <A>(that: LazyArg<NonEmptyArray<A>>) => (fa: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Apply a function to an argument under a type constructor. + * + * @since 2.0.0 + */ +export declare const ap: <A>(as: NonEmptyArray<A>) => <B>(fab: NonEmptyArray<(a: A) => B>) => NonEmptyArray<B> +/** + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => NonEmptyArray<B>): (ma: NonEmptyArray<A>) => NonEmptyArray<B> + <A, B>(ma: NonEmptyArray<A>, f: (a: A, i: number) => NonEmptyArray<B>): NonEmptyArray<B> +} +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (as: NonEmptyArray<A>) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @since 2.5.0 + */ +export declare const duplicate: <A>(ma: NonEmptyArray<A>) => NonEmptyArray<NonEmptyArray<A>> +/** + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: NonEmptyArray<NonEmptyArray<A>>) => NonEmptyArray<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @category mapping + * @since 2.0.0 + */ +export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (as: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: NonEmptyArray<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @since 2.7.0 + */ +export declare const extract: Comonad1<URI>['extract'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'NonEmptyArray' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: NonEmptyArray<A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<NonEmptyArray<A>> +/** + * Builds a `Semigroup` instance for `NonEmptyArray` + * + * @category instances + * @since 2.0.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<NonEmptyArray<A>> +/** + * @example + * import { getEq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<NonEmptyArray<A>> +/** + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<NonEmptyArray<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'NonEmptyArray', (a: A) => B>) => import('./HKT').Kind<'NonEmptyArray', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: NonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'NonEmptyArray', A>) => import('./HKT').Kind<'NonEmptyArray', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: NonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'NonEmptyArray', A>) => import('./HKT').Kind<'NonEmptyArray', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category sequencing + * @since 2.5.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => NonEmptyArray<B>) => (first: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: NonEmptyArray<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>( + fa: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'NonEmptyArray', B> +) => ( + ma: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: NonEmptyArray<B> +) => ( + fa: import('./HKT').Kind<'NonEmptyArray', A> +) => import('./HKT').Kind<'NonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.0.0 + */ +export declare const head: <A>(nea: NonEmptyArray<A>) => A +/** + * @since 2.0.0 + */ +export declare const tail: <A>(as: NonEmptyArray<A>) => Array<A> +/** + * @since 2.0.0 + */ +export declare const last: <A>(nea: NonEmptyArray<A>) => A +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.2.0 + */ +export declare const init: <A>(as: NonEmptyArray<A>) => Array<A> +/** + * @since 2.0.0 + */ +export declare const min: <A>(ord: Ord<A>) => (nea: NonEmptyArray<A>) => A +/** + * @since 2.0.0 + */ +export declare const max: <A>(ord: Ord<A>) => (nea: NonEmptyArray<A>) => A +/** + * @since 2.10.0 + */ +export declare const concatAll: <A>(S: Semigroup<A>) => (as: NonEmptyArray<A>) => A +/** + * Break an `Array` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeft: <A, B>(f: (head: A, tail: Array<A>) => B) => (as: NonEmptyArray<A>) => B +/** + * Break an `Array` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRight: <A, B>(f: (init: Array<A>, last: A) => B) => (as: NonEmptyArray<A>) => B +/** + * Apply a function to the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyHead: <A>(f: Endomorphism<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Change the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateHead: <A>(a: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Apply a function to the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyLast: <A>(f: Endomorphism<A>) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Change the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateLast: <A>(a: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(S: Semigroup<A>) => (middle: A) => (as: NonEmptyArray<A>) => A +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => NonEmptyArray<B>) => (ma: NonEmptyArray<A>) => NonEmptyArray<B> +/** + * This is just `sort` followed by `group`. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function groupSort<B>(O: Ord<B>): { + <A extends B>(as: NonEmptyArray<A>): NonEmptyArray<NonEmptyArray<A>> + <A extends B>(as: Array<A>): Array<NonEmptyArray<A>> +} +/** + * Use [`filter`](./Array.ts.html#filter) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function filter<A, B extends A>( + refinement: Refinement<A, B> +): (as: NonEmptyArray<A>) => Option<NonEmptyArray<B>> +export declare function filter<A>( + predicate: Predicate<A> +): <B extends A>(bs: NonEmptyArray<B>) => Option<NonEmptyArray<B>> +export declare function filter<A>(predicate: Predicate<A>): (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const filterWithIndex: <A>( + predicate: (i: number, a: A) => boolean +) => (as: NonEmptyArray<A>) => Option<NonEmptyArray<A>> +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const uncons: <A>(as: NonEmptyArray<A>) => [A, Array<A>] +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const unsnoc: <A>(as: NonEmptyArray<A>) => [Array<A>, A] +/** + * Use [`prepend`](./Array.ts.html#prepend) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function cons<A>(head: A): (tail: Array<A>) => NonEmptyArray<A> +/** @deprecated */ +export declare function cons<A>(head: A, tail: Array<A>): NonEmptyArray<A> +/** + * Use [`append`](./Array.ts.html#append) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const snoc: <A>(init: Array<A>, end: A) => NonEmptyArray<A> +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: NonEmptyArray<A>) => NonEmptyArray<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const fold: <A>(S: Semigroup<A>) => (fa: NonEmptyArray<A>) => A +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray` + * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const nonEmptyArray: Monad1<URI> & + Comonad1<URI> & + TraversableWithIndex1<URI, number> & + FunctorWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + Alt1<URI> diff --git a/node_modules/fp-ts/lib/NonEmptyArray.js b/node_modules/fp-ts/lib/NonEmptyArray.js new file mode 100644 index 0000000..c44c3c0 --- /dev/null +++ b/node_modules/fp-ts/lib/NonEmptyArray.js @@ -0,0 +1,1234 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.foldMap = exports.foldMapWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zipWith = exports.of = exports.copy = exports.modifyAt = exports.updateAt = exports.insertAt = exports.sort = exports.groupBy = exports.reverse = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromArray = exports.fromReadonlyNonEmptyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = void 0; +exports.snoc = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.chain = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = void 0; +exports.nonEmptyArray = exports.fold = exports.prependToAll = void 0; +exports.concatW = concatW; +exports.concat = concat; +exports.group = group; +exports.zip = zip; +exports.groupSort = groupSort; +exports.filter = filter; +exports.cons = cons; +var Apply_1 = require("./Apply"); +var Chain_1 = require("./Chain"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var Ord_1 = require("./Ord"); +var RNEA = __importStar(require("./ReadonlyNonEmptyArray")); +// ------------------------------------------------------------------------------------- +// internal +// ------------------------------------------------------------------------------------- +/** + * @internal + */ +var isNonEmpty = function (as) { return as.length > 0; }; +exports.isNonEmpty = isNonEmpty; +/** + * @internal + */ +var isOutOfBound = function (i, as) { return i < 0 || i >= as.length; }; +exports.isOutOfBound = isOutOfBound; +/** + * @internal + */ +var prependW = function (head) { + return function (tail) { + return __spreadArray([head], tail, true); + }; +}; +exports.prependW = prependW; +/** + * @internal + */ +exports.prepend = exports.prependW; +/** + * @internal + */ +var appendW = function (end) { + return function (init) { + return __spreadArray(__spreadArray([], init, true), [end], false); + }; +}; +exports.appendW = appendW; +/** + * @internal + */ +exports.append = exports.appendW; +/** + * @internal + */ +var unsafeInsertAt = function (i, a, as) { + if ((0, exports.isNonEmpty)(as)) { + var xs = (0, exports.fromReadonlyNonEmptyArray)(as); + xs.splice(i, 0, a); + return xs; + } + return [a]; +}; +exports.unsafeInsertAt = unsafeInsertAt; +/** + * @internal + */ +var unsafeUpdateAt = function (i, a, as) { + var xs = (0, exports.fromReadonlyNonEmptyArray)(as); + xs[i] = a; + return xs; +}; +exports.unsafeUpdateAt = unsafeUpdateAt; +/** + * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +var uniq = function (E) { + return function (as) { + if (as.length === 1) { + return (0, exports.copy)(as); + } + var out = [(0, exports.head)(as)]; + var rest = (0, exports.tail)(as); + var _loop_1 = function (a) { + if (out.every(function (o) { return !E.equals(o, a); })) { + out.push(a); + } + }; + for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) { + var a = rest_1[_i]; + _loop_1(a); + } + return out; + }; +}; +exports.uniq = uniq; +/** + * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = NEA.sortBy([byName, byAge]) + * + * const persons: NEA.NonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +var sortBy = function (ords) { + if ((0, exports.isNonEmpty)(ords)) { + var M = (0, Ord_1.getMonoid)(); + return (0, exports.sort)(ords.reduce(M.concat, M.empty)); + } + return exports.copy; +}; +exports.sortBy = sortBy; +/** + * @since 2.11.0 + */ +var union = function (E) { + var uniqE = (0, exports.uniq)(E); + return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; }; +}; +exports.union = union; +/** + * Rotate a `NonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +var rotate = function (n) { + return function (as) { + var len = as.length; + var m = Math.round(n) % len; + if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) { + return (0, exports.copy)(as); + } + if (m < 0) { + var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1]; + return (0, function_1.pipe)(s, concat(f)); + } + else { + return (0, exports.rotate)(m - len)(as); + } + }; +}; +exports.rotate = rotate; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromReadonlyNonEmptyArray = _.fromReadonlyNonEmptyArray; +/** + * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array + * + * @category conversions + * @since 2.0.0 + */ +var fromArray = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(as) : _.none); }; +exports.fromArray = fromArray; +/** + * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +var makeBy = function (f) { + return function (n) { + var j = Math.max(0, Math.floor(n)); + var out = [f(0)]; + for (var i = 1; i < j; i++) { + out.push(f(i)); + } + return out; + }; +}; +exports.makeBy = makeBy; +/** + * Create a `NonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +var replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); }; +exports.replicate = replicate; +/** + * Create a `NonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +var range = function (start, end) { + return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start]; +}; +exports.range = range; +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]]) + * + * @since 2.9.0 + */ +var unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; }; +exports.unprepend = unprepend; +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +var unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; }; +exports.unappend = unappend; +function concatW(second) { + return function (first) { return first.concat(second); }; +} +function concat(x, y) { + return y ? x.concat(y) : function (y) { return y.concat(x); }; +} +/** + * @since 2.0.0 + */ +var reverse = function (as) { return __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true); }; +exports.reverse = reverse; +function group(E) { + return function (as) { + var len = as.length; + if (len === 0) { + return []; + } + var out = []; + var head = as[0]; + var nea = [head]; + for (var i = 1; i < len; i++) { + var a = as[i]; + if (E.equals(a, head)) { + nea.push(a); + } + else { + out.push(nea); + head = a; + nea = [head]; + } + } + out.push(nea); + return out; + }; +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.0.0 + */ +var groupBy = function (f) { + return function (as) { + var out = {}; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + var k = f(a); + if (_.has.call(out, k)) { + out[k].push(a); + } + else { + out[k] = [a]; + } + } + return out; + }; +}; +exports.groupBy = groupBy; +/** + * @since 2.0.0 + */ +var sort = function (O) { + return function (as) { + return as.slice().sort(O.compare); + }; +}; +exports.sort = sort; +/** + * @since 2.0.0 + */ +var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as)); + }; +}; +exports.insertAt = insertAt; +/** + * @since 2.0.0 + */ +var updateAt = function (i, a) { + return (0, exports.modifyAt)(i, function () { return a; }); +}; +exports.updateAt = updateAt; +/** + * @since 2.0.0 + */ +var modifyAt = function (i, f) { + return function (as) { + return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as)); + }; +}; +exports.modifyAt = modifyAt; +/** + * @since 2.0.0 + */ +exports.copy = exports.fromReadonlyNonEmptyArray; +/** + * @category constructors + * @since 2.0.0 + */ +var of = function (a) { return [a]; }; +exports.of = of; +/** + * @since 2.5.1 + */ +var zipWith = function (as, bs, f) { + var cs = [f(as[0], bs[0])]; + var len = Math.min(as.length, bs.length); + for (var i = 1; i < len; i++) { + cs[i] = f(as[i], bs[i]); + } + return cs; +}; +exports.zipWith = zipWith; +function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; }); +} +/** + * @since 2.5.1 + */ +var unzip = function (abs) { + var fa = [abs[0][0]]; + var fb = [abs[0][1]]; + for (var i = 1; i < abs.length; i++) { + fa[i] = abs[i][0]; + fb[i] = abs[i][1]; + } + return [fa, fb]; +}; +exports.unzip = unzip; +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +var prependAll = function (middle) { + return function (as) { + var out = [middle, as[0]]; + for (var i = 1; i < as.length; i++) { + out.push(middle, as[i]); + } + return out; + }; +}; +exports.prependAll = prependAll; +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +var intersperse = function (middle) { + return function (as) { + var rest = (0, exports.tail)(as); + return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : (0, exports.copy)(as); + }; +}; +exports.intersperse = intersperse; +/** + * @category folding + * @since 2.0.0 + */ +exports.foldMapWithIndex = RNEA.foldMapWithIndex; +/** + * @category folding + * @since 2.0.0 + */ +exports.foldMap = RNEA.foldMap; +/** + * @category sequencing + * @since 2.10.0 + */ +var chainWithIndex = function (f) { + return function (as) { + var out = (0, exports.fromReadonlyNonEmptyArray)(f(0, (0, exports.head)(as))); + for (var i = 1; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +exports.chainWithIndex = chainWithIndex; +/** + * @since 2.10.0 + */ +var chop = function (f) { + return function (as) { + var _a = f(as), b = _a[0], rest = _a[1]; + var out = [b]; + var next = rest; + while ((0, exports.isNonEmpty)(next)) { + var _b = f(next), b_1 = _b[0], rest_2 = _b[1]; + out.push(b_1); + next = rest_2; + } + return out; + }; +}; +exports.chop = chop; +/** + * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +var splitAt = function (n) { + return function (as) { + var m = Math.max(1, n); + return m >= as.length ? [(0, exports.copy)(as), []] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)]; + }; +}; +exports.splitAt = splitAt; +/** + * @since 2.10.0 + */ +var chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); }; +exports.chunksOf = chunksOf; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/* istanbul ignore next */ +var _reduceWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f)); +}; +/* istanbul ignore next */ +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRightWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f)); +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); }; +}; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as NEA.NonEmptyArray<number>, + * NEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +var altW = function (that) { + return function (as) { + return (0, function_1.pipe)(as, concatW(that())); + }; +}; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `NonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +exports.alt = exports.altW; +/** + * Apply a function to an argument under a type constructor. + * + * @since 2.0.0 + */ +var ap = function (as) { + return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); }); +}; +exports.ap = ap; +/** + * @example + * import * as NEA from 'fp-ts/NonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * NEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); })); +}); +/** + * @since 2.0.0 + */ +var extend = function (f) { + return function (as) { + var next = (0, exports.tail)(as); + var out = [f(as)]; + while ((0, exports.isNonEmpty)(next)) { + out.push(f(next)); + next = (0, exports.tail)(next); + } + return out; + }; +}; +exports.extend = extend; +/** + * @since 2.5.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category sequencing + * @since 2.5.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return (0, exports.mapWithIndex)(function (_, a) { return f(a); }); }; +exports.map = map; +/** + * @category mapping + * @since 2.0.0 + */ +var mapWithIndex = function (f) { + return function (as) { + var out = [f(0, (0, exports.head)(as))]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])); + } + return out; + }; +}; +exports.mapWithIndex = mapWithIndex; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduce = RNEA.reduce; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduceWithIndex = RNEA.reduceWithIndex; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduceRight = RNEA.reduceRight; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduceRightWithIndex = RNEA.reduceRightWithIndex; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function (_, a) { return a; }); }; +exports.sequence = sequence; +/** + * @category sequencing + * @since 2.6.3 + */ +var traverseWithIndex = function (F) { + return function (f) { + return function (as) { + var out = F.map(f(0, (0, exports.head)(as)), exports.of); + for (var i = 1; i < as.length; i++) { + out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i])); + } + return out; + }; + }; +}; +exports.traverseWithIndex = traverseWithIndex; +/** + * @since 2.7.0 + */ +exports.extract = RNEA.head; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'NonEmptyArray'; +/** + * @category instances + * @since 2.0.0 + */ +exports.getShow = RNEA.getShow; +/** + * Builds a `Semigroup` instance for `NonEmptyArray` + * + * @category instances + * @since 2.0.0 + */ +var getSemigroup = function () { return ({ + concat: concat +}); }; +exports.getSemigroup = getSemigroup; +/** + * @example + * import { getEq } from 'fp-ts/NonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.0.0 + */ +exports.getEq = RNEA.getEq; +/** + * @since 2.11.0 + */ +var getUnionSemigroup = function (E) { + var unionE = (0, exports.union)(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FunctorWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category sequencing + * @since 2.5.0 + */ +exports.chainFirst = +/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain); +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FoldableWithIndex = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.TraversableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = (0, Chain_1.bind)(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +exports.head = RNEA.head; +/** + * @since 2.0.0 + */ +var tail = function (as) { return as.slice(1); }; +exports.tail = tail; +/** + * @since 2.0.0 + */ +exports.last = RNEA.last; +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.2.0 + */ +var init = function (as) { return as.slice(0, -1); }; +exports.init = init; +/** + * @since 2.0.0 + */ +exports.min = RNEA.min; +/** + * @since 2.0.0 + */ +exports.max = RNEA.max; +/** + * @since 2.10.0 + */ +var concatAll = function (S) { + return function (as) { + return as.reduce(S.concat); + }; +}; +exports.concatAll = concatAll; +/** + * Break an `Array` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +var matchLeft = function (f) { + return function (as) { + return f((0, exports.head)(as), (0, exports.tail)(as)); + }; +}; +exports.matchLeft = matchLeft; +/** + * Break an `Array` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +var matchRight = function (f) { + return function (as) { + return f((0, exports.init)(as), (0, exports.last)(as)); + }; +}; +exports.matchRight = matchRight; +/** + * Apply a function to the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +var modifyHead = function (f) { + return function (as) { + return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true); + }; +}; +exports.modifyHead = modifyHead; +/** + * Change the head, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +var updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); }; +exports.updateHead = updateHead; +/** + * Apply a function to the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +var modifyLast = function (f) { + return function (as) { + return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as)))); + }; +}; +exports.modifyLast = modifyLast; +/** + * Change the last element, creating a new `NonEmptyArray`. + * + * @since 2.11.0 + */ +var updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); }; +exports.updateLast = updateLast; +/** + * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/NonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +exports.intercalate = RNEA.intercalate; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +function groupSort(O) { + var sortO = (0, exports.sort)(O); + var groupO = group(O); + return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : []); }; +} +function filter(predicate) { + return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); }); +} +/** + * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var filterWithIndex = function (predicate) { + return function (as) { + return (0, exports.fromArray)(as.filter(function (a, i) { return predicate(i, a); })); + }; +}; +exports.filterWithIndex = filterWithIndex; +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +exports.uncons = exports.unprepend; +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +exports.unsnoc = exports.unappend; +function cons(head, tail) { + return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head)); +} +/** + * Use [`append`](./Array.ts.html#append) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var snoc = function (init, end) { return (0, function_1.pipe)(init, (0, exports.append)(end)); }; +exports.snoc = snoc; +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +exports.prependToAll = exports.prependAll; +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.fold = RNEA.concatAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray` + * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.nonEmptyArray = { + URI: exports.URI, + of: exports.of, + map: _map, + mapWithIndex: _mapWithIndex, + ap: _ap, + chain: exports.flatMap, + extend: _extend, + extract: exports.extract, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + alt: _alt +}; diff --git a/node_modules/fp-ts/lib/Option.d.ts b/node_modules/fp-ts/lib/Option.d.ts new file mode 100644 index 0000000..ccc31c2 --- /dev/null +++ b/node_modules/fp-ts/lib/Option.d.ts @@ -0,0 +1,1150 @@ +/** + * ```ts + * type Option<A> = None | Some<A> + * ``` + * + * `Option<A>` is a container for an optional value of type `A`. If the value of type `A` is present, the `Option<A>` is + * an instance of `Some<A>`, containing the present value of type `A`. If the value is absent, the `Option<A>` is an + * instance of `None`. + * + * An option could be looked at as a collection or foldable structure with either one or zero elements. + * Another way to look at `Option` is: it represents the effect of a possibly failing computation. + * + * + * @example + * import * as O from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * + * export const imperative = (as: ReadonlyArray<number>): string => { + * const head = (as: ReadonlyArray<number>): number => { + * if (as.length === 0) { + * throw new Error() + * } + * return as[0] + * } + * const inverse = (n: number): number => { + * if (n === 0) { + * throw new Error() + * } + * return 1 / n + * } + * try { + * return `Result is ${inverse(double(head(as)))}` + * } catch (e) { + * return 'no result' + * } + * } + * + * export const functional = (as: ReadonlyArray<number>): string => { + * const head = <A>(as: ReadonlyArray<A>): O.Option<A> => + * as.length === 0 ? O.none : O.some(as[0]) + * const inverse = (n: number): O.Option<number> => + * n === 0 ? O.none : O.some(1 / n) + * return pipe( + * as, + * head, + * O.map(double), + * O.flatMap(inverse), + * O.match( + * () => 'no result', // onNone handler + * (head) => `Result is ${head}` // onSome handler + * ) + * ) + * } + * + * assert.deepStrictEqual(imperative([1, 2, 3]), functional([1, 2, 3])) + * assert.deepStrictEqual(imperative([]), functional([])) + * assert.deepStrictEqual(imperative([0]), functional([0])) + * + * @since 2.0.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Extend1 } from './Extend' +import { Filterable1 } from './Filterable' +import { Foldable1 } from './Foldable' +import { FromEither1 } from './FromEither' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { Monad1 } from './Monad' +import { MonadThrow1 } from './MonadThrow' +import { Monoid } from './Monoid' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import { Zero1 } from './Zero' +/** + * @category model + * @since 2.0.0 + */ +export interface None { + readonly _tag: 'None' +} +/** + * @category model + * @since 2.0.0 + */ +export interface Some<A> { + readonly _tag: 'Some' + readonly value: A +} +/** + * @category model + * @since 2.0.0 + */ +export type Option<A> = None | Some<A> +/** + * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value. + * + * @category constructors + * @since 2.0.0 + */ +export declare const none: Option<never> +/** + * Constructs a `Some`. Represents an optional value that exists. + * + * @category constructors + * @since 2.0.0 + */ +export declare const some: <A>(a: A) => Option<A> +/** + * Returns a *smart constructor* based on the given predicate. + * + * @example + * import { none, some, fromPredicate } from 'fp-ts/Option' + * + * const getOption = fromPredicate((n: number) => n >= 0) + * + * assert.deepStrictEqual(getOption(-1), none) + * assert.deepStrictEqual(getOption(1), some(1)) + * + * @category lifting + * @since 2.0.0 + */ +export declare function fromPredicate<A, B extends A>(refinement: Refinement<A, B>): (a: A) => Option<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): <B extends A>(b: B) => Option<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): (a: A) => Option<A> +/** + * Returns the `Left` value of an `Either` if possible. + * + * @example + * import { getLeft, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * + * @category constructors + * @since 2.0.0 + */ +export declare const getLeft: <E, A>(ma: Either<E, A>) => Option<E> +/** + * Returns the `Right` value of an `Either` if possible. + * + * @example + * import { getRight, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(left('a')), none) + * + * @category constructors + * @since 2.0.0 + */ +export declare const getRight: <E, A>(ma: Either<E, A>) => Option<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Option' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Option<A> + } +} +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Option<A>> +/** + * @example + * import { none, some, getEq } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals(none, none), true) + * assert.strictEqual(E.equals(none, some(1)), false) + * assert.strictEqual(E.equals(some(1), none), false) + * assert.strictEqual(E.equals(some(1), some(2)), false) + * assert.strictEqual(E.equals(some(1), some(1)), true) + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Option<A>> +/** + * The `Ord` instance allows `Option` values to be compared with + * `compare`, whenever there is an `Ord` instance for + * the type the `Option` contains. + * + * `None` is considered to be less than any `Some` value. + * + * + * @example + * import { none, some, getOrd } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const O = getOrd(N.Ord) + * assert.strictEqual(O.compare(none, none), 0) + * assert.strictEqual(O.compare(none, some(1)), -1) + * assert.strictEqual(O.compare(some(1), none), 1) + * assert.strictEqual(O.compare(some(1), some(2)), -1) + * assert.strictEqual(O.compare(some(1), some(1)), 0) + * + * @category instances + * @since 2.0.0 + */ +export declare const getOrd: <A>(O: Ord<A>) => Ord<Option<A>> +/** + * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are + * concatenated using the provided `Semigroup` + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(concat(a, b)) | + * + * @example + * import { getMonoid, some, none } from 'fp-ts/Option' + * import { SemigroupSum } from 'fp-ts/number' + * + * const M = getMonoid(SemigroupSum) + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(1)), some(1)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3)) + * + * @category instances + * @since 2.0.0 + */ +export declare const getMonoid: <A>(S: Semigroup<A>) => Monoid<Option<A>> +/** + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Option<A>) => Option<B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the `Some` value of this `Option` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: Option<_>) => Option<A> + <_, A>(self: Option<_>, a: A): Option<A> +} +/** + * Maps the `Some` value of this `Option` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: Option<_>) => Option<void> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <A>(a: A) => Option<A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Option<A>) => <B>(fab: Option<(a: A) => B>) => Option<B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Option<B>): (ma: Option<A>) => Option<B> + <A, B>(ma: Option<A>, f: (a: A) => Option<B>): Option<B> +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Option<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Option<A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Option<A>) => B +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`. + * + * @param self - The first `Option` to be checked. + * @param that - The `Option` to return if `self` is `None`. + * + * @example + * import * as O from "fp-ts/Option" + * + * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1)) + * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b')) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1)) + * + * @category error handling + * @since 2.16.0 + */ +export declare const orElse: { + <B>(that: LazyArg<Option<B>>): <A>(self: Option<A>) => Option<A | B> + <A, B>(self: Option<A>, that: LazyArg<Option<B>>): Option<A | B> +} +/** + * Alias of `orElse`. + * + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category legacy + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<Option<B>>) => <A>(fa: Option<A>) => Option<A | B> +/** + * Alias of `orElse`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const alt: <A>(that: LazyArg<Option<A>>) => (fa: Option<A>) => Option<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @since 2.7.0 + */ +export declare const zero: <A>() => Option<A> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'Option', void> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (wa: Option<A>) => B) => (wa: Option<A>) => Option<B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend1<URI> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <A>(fa: Option<Option<A>>) => Option<A> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <A, B>(ma: Option<Either<A, B>>) => Separated<Option<A>, Option<B>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Option<A>) => Option<B> + <A>(predicate: Predicate<A>): <B extends A>(fb: Option<B>) => Option<B> + <A>(predicate: Predicate<A>): (fa: Option<A>) => Option<A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Option<A>) => Option<B> +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Option<A>) => Separated<Option<A>, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: Option<B>) => Separated<Option<B>, Option<B>> + <A>(predicate: Predicate<A>): (fa: Option<A>) => Separated<Option<A>, Option<A>> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Option<A>) => Separated<Option<B>, Option<C>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Witherable: Witherable1<URI> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow1<URI>['throwError'] +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow1<URI> +/** + * Transforms an `Either` to an `Option` discarding the error. + * + * Alias of [getRight](#getright) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => Option<A> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * Returns `true` if the option is an instance of `Some`, `false` otherwise. + * + * @example + * import { some, none, isSome } from 'fp-ts/Option' + * + * assert.strictEqual(isSome(some(1)), true) + * assert.strictEqual(isSome(none), false) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isSome: <A>(fa: Option<A>) => fa is Some<A> +/** + * Returns `true` if the option is `None`, `false` otherwise. + * + * @example + * import { some, none, isNone } from 'fp-ts/Option' + * + * assert.strictEqual(isNone(some(1)), false) + * assert.strictEqual(isNone(none), true) + * + * @category refinements + * @since 2.0.0 + */ +export declare const isNone: (fa: Option<unknown>) => fa is None +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <B, A, C>(onNone: LazyArg<B>, onSome: (a: A) => C) => (ma: Option<A>) => B | C +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <B, A, C>(onNone: LazyArg<B>, onSome: (a: A) => C) => (ma: Option<A>) => B | C +/** + * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is + * returned, otherwise the function is applied to the value inside the `Some` and the result is returned. + * + * @example + * import { some, none, match } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a some containing 1' + * ) + * + * assert.strictEqual( + * pipe( + * none, + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a none' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <A, B>(onNone: LazyArg<B>, onSome: (a: A) => B) => (ma: Option<A>) => B +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <A, B>(onNone: LazyArg<B>, onSome: (a: A) => B) => (ma: Option<A>) => B +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <B>(onNone: LazyArg<B>) => <A>(ma: Option<A>) => A | B +/** + * Extracts the value out of the structure, if it exists. Otherwise returns the given default value + * + * @example + * import { some, none, getOrElse } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <A>(onNone: LazyArg<A>) => (ma: Option<A>) => A +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Option', (a: A) => B>) => import('./HKT').Kind<'Option', B> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: Option<B> +) => <A>(first: import('./HKT').Kind<'Option', A>) => import('./HKT').Kind<'Option', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: Option<B> +) => <A>(first: import('./HKT').Kind<'Option', A>) => import('./HKT').Kind<'Option', B> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Option<Option<A>>) => Option<A> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: Option<A>, f: (a: A) => Option<_>): Option<A> + <A, _>(f: (a: A) => Option<_>): (self: Option<A>) => Option<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * O.of(value), + * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1), O.of(1)) + * assert.deepStrictEqual(compute(-42), O.none) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E, _>(f: (a: A) => Either<E, _>): (self: Option<A>) => Option<A> + <A, E, _>(self: Option<A>, f: (a: A) => Either<E, _>): Option<A> +} +/** + * @since 2.0.0 + */ +export declare const duplicate: <A>(ma: Option<A>) => Option<Option<A>> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => Option<B> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Option<A>) => Option<B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: Option<A>) => Option<A> +/** + * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise + * returns the value wrapped in a `Some`. + * + * @example + * import { none, some, fromNullable } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromNullable(undefined), none) + * assert.deepStrictEqual(fromNullable(null), none) + * assert.deepStrictEqual(fromNullable(1), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromNullable: <A>(a: A) => Option<NonNullable<A>> +/** + * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a + * `Some`. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { none, some, tryCatch } from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * tryCatch(() => { + * throw new Error() + * }), + * none + * ) + * assert.deepStrictEqual(tryCatch(() => 1), some(1)) + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <A>(f: LazyArg<A>) => Option<A> +/** + * Converts a function that may throw to one returning a `Option`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B) => (...a: A) => Option<B> +/** + * Returns a *smart constructor* from a function that returns a nullable value. + * + * @example + * import { fromNullableK, none, some } from 'fp-ts/Option' + * + * const f = (s: string): number | undefined => { + * const n = parseFloat(s) + * return isNaN(n) ? undefined : n + * } + * + * const g = fromNullableK(f) + * + * assert.deepStrictEqual(g('1'), some(1)) + * assert.deepStrictEqual(g('a'), none) + * + * @category lifting + * @since 2.9.0 + */ +export declare const fromNullableK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Option<NonNullable<B>> +/** + * This is `chain` + `fromNullable`, useful when working with optional values. + * + * @example + * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * interface Employee { + * readonly company?: { + * readonly address?: { + * readonly street?: { + * readonly name?: string + * } + * } + * } + * } + * + * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee1.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * some('high street') + * ) + * + * const employee2: Employee = { company: { address: { street: {} } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee2.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * none + * ) + * + * @category sequencing + * @since 2.9.0 + */ +export declare const chainNullableK: <A, B>( + f: (a: A) => B | null | undefined +) => (ma: Option<A>) => Option<NonNullable<B>> +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `null`. + * + * @example + * import { some, none, toNullable } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toNullable + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toNullable + * ), + * null + * ) + * + * @category conversions + * @since 2.0.0 + */ +export declare const toNullable: <A>(ma: Option<A>) => A | null +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`. + * + * @example + * import { some, none, toUndefined } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toUndefined + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toUndefined + * ), + * undefined + * ) + * + * @category conversions + * @since 2.0.0 + */ +export declare const toUndefined: <A>(ma: Option<A>) => A | undefined +/** + * Returns `true` if `ma` contains `a` + * + * @example + * import { some, none, elem } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * import * as N from 'fp-ts/number' + * + * assert.strictEqual(pipe(some(1), elem(N.Eq)(1)), true) + * assert.strictEqual(pipe(some(1), elem(N.Eq)(2)), false) + * assert.strictEqual(pipe(none, elem(N.Eq)(1)), false) + * + * @since 2.0.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (ma: Option<A>) => boolean + (a: A, ma: Option<A>): boolean +} +/** + * Returns `true` if the predicate is satisfied by the wrapped value + * + * @example + * import { some, none, exists } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 0) + * ), + * true + * ) + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 1) + * ), + * false + * ) + * assert.strictEqual( + * pipe( + * none, + * exists(n => n > 0) + * ), + * false + * ) + * + * @since 2.0.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: Option<A>) => boolean +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Option<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Option', A>) => import('./HKT').Kind<'Option', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Option', A> +) => import('./HKT').Kind<'Option', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Option', B> +) => ( + ma: import('./HKT').Kind<'Option', A> +) => import('./HKT').Kind<'Option', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Option<B> +) => ( + fa: import('./HKT').Kind<'Option', A> +) => import('./HKT').Kind<'Option', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: Option<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Option<B> +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Option<B> +) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => Option<B> +) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B>(f: (a: A) => Option<B>) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A>(arr: ReadonlyArray<Option<A>>) => Option<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Option<B>) => (ma: Option<A>) => Option<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Option<B>) => (first: Option<A>) => Option<A> +/** + * Use `Refinement` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getRefinement<A, B extends A>(getOption: (a: A) => Option<B>): Refinement<A, B> +/** + * Use [`chainNullableK`](#chainnullablek) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const mapNullable: <A, B>(f: (a: A) => B | null | undefined) => (ma: Option<A>) => Option<NonNullable<B>> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option` + * (where `O` is from `import O from 'fp-ts/Option'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const option: Monad1<URI> & + Foldable1<URI> & + Alternative1<URI> & + Extend1<URI> & + Witherable1<URI> & + MonadThrow1<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <A>(S: Semigroup<A>) => Semigroup<Option<A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <A>(M: Monoid<A>) => Monoid<Option<A>> +/** + * Use + * + * ```ts + * import { first } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(first()) + * ``` + * + * instead. + * + * Monoid returning the left-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(a) | + * + * @example + * import { getFirstMonoid, some, none } from 'fp-ts/Option' + * + * const M = getFirstMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFirstMonoid: <A = never>() => Monoid<Option<A>> +/** + * Use + * + * ```ts + * import { last } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(last()) + * ``` + * + * instead. + * + * Monoid returning the right-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(b) | + * + * @example + * import { getLastMonoid, some, none } from 'fp-ts/Option' + * + * const M = getLastMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getLastMonoid: <A = never>() => Monoid<Option<A>> diff --git a/node_modules/fp-ts/lib/Option.js b/node_modules/fp-ts/lib/Option.js new file mode 100644 index 0000000..1f15ba5 --- /dev/null +++ b/node_modules/fp-ts/lib/Option.js @@ -0,0 +1,1286 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.throwError = exports.Witherable = exports.wilt = exports.wither = exports.Traversable = exports.sequence = exports.traverse = exports.Filterable = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.Compactable = exports.separate = exports.compact = exports.Extend = exports.extend = exports.Alternative = exports.guard = exports.Zero = exports.zero = exports.Alt = exports.alt = exports.altW = exports.orElse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.flatMap = exports.Applicative = exports.Apply = exports.ap = exports.Pointed = exports.of = exports.asUnit = exports.as = exports.Functor = exports.map = exports.getMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.URI = exports.getRight = exports.getLeft = exports.some = exports.none = void 0; +exports.getLastMonoid = exports.getFirstMonoid = exports.getApplyMonoid = exports.getApplySemigroup = exports.option = exports.mapNullable = exports.chainFirst = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.toUndefined = exports.toNullable = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.duplicate = exports.tapEither = exports.tap = exports.flatten = exports.apSecond = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isNone = exports.isSome = exports.FromEither = exports.fromEither = exports.MonadThrow = void 0; +exports.fromPredicate = fromPredicate; +exports.elem = elem; +exports.getRefinement = getRefinement; +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var FromEither_1 = require("./FromEither"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var Predicate_1 = require("./Predicate"); +var Semigroup_1 = require("./Semigroup"); +var Separated_1 = require("./Separated"); +var Witherable_1 = require("./Witherable"); +var Zero_1 = require("./Zero"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value. + * + * @category constructors + * @since 2.0.0 + */ +exports.none = _.none; +/** + * Constructs a `Some`. Represents an optional value that exists. + * + * @category constructors + * @since 2.0.0 + */ +exports.some = _.some; +function fromPredicate(predicate) { + return function (a) { return (predicate(a) ? (0, exports.some)(a) : exports.none); }; +} +/** + * Returns the `Left` value of an `Either` if possible. + * + * @example + * import { getLeft, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * + * @category constructors + * @since 2.0.0 + */ +var getLeft = function (ma) { return (ma._tag === 'Right' ? exports.none : (0, exports.some)(ma.left)); }; +exports.getLeft = getLeft; +/** + * Returns the `Right` value of an `Either` if possible. + * + * @example + * import { getRight, none, some } from 'fp-ts/Option' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(left('a')), none) + * + * @category constructors + * @since 2.0.0 + */ +var getRight = function (ma) { return (ma._tag === 'Left' ? exports.none : (0, exports.some)(ma.right)); }; +exports.getRight = getRight; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +var _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); }; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); }; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Option'; +/** + * @category instances + * @since 2.0.0 + */ +var getShow = function (S) { return ({ + show: function (ma) { return ((0, exports.isNone)(ma) ? 'none' : "some(".concat(S.show(ma.value), ")")); } +}); }; +exports.getShow = getShow; +/** + * @example + * import { none, some, getEq } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals(none, none), true) + * assert.strictEqual(E.equals(none, some(1)), false) + * assert.strictEqual(E.equals(some(1), none), false) + * assert.strictEqual(E.equals(some(1), some(2)), false) + * assert.strictEqual(E.equals(some(1), some(1)), true) + * + * @category instances + * @since 2.0.0 + */ +var getEq = function (E) { return ({ + equals: function (x, y) { return x === y || ((0, exports.isNone)(x) ? (0, exports.isNone)(y) : (0, exports.isNone)(y) ? false : E.equals(x.value, y.value)); } +}); }; +exports.getEq = getEq; +/** + * The `Ord` instance allows `Option` values to be compared with + * `compare`, whenever there is an `Ord` instance for + * the type the `Option` contains. + * + * `None` is considered to be less than any `Some` value. + * + * + * @example + * import { none, some, getOrd } from 'fp-ts/Option' + * import * as N from 'fp-ts/number' + * + * const O = getOrd(N.Ord) + * assert.strictEqual(O.compare(none, none), 0) + * assert.strictEqual(O.compare(none, some(1)), -1) + * assert.strictEqual(O.compare(some(1), none), 1) + * assert.strictEqual(O.compare(some(1), some(2)), -1) + * assert.strictEqual(O.compare(some(1), some(1)), 0) + * + * @category instances + * @since 2.0.0 + */ +var getOrd = function (O) { return ({ + equals: (0, exports.getEq)(O).equals, + compare: function (x, y) { return (x === y ? 0 : (0, exports.isSome)(x) ? ((0, exports.isSome)(y) ? O.compare(x.value, y.value) : 1) : (0, exports.isSome)(y) ? -1 : 0); } +}); }; +exports.getOrd = getOrd; +/** + * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are + * concatenated using the provided `Semigroup` + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(concat(a, b)) | + * + * @example + * import { getMonoid, some, none } from 'fp-ts/Option' + * import { SemigroupSum } from 'fp-ts/number' + * + * const M = getMonoid(SemigroupSum) + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(1)), some(1)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3)) + * + * @category instances + * @since 2.0.0 + */ +var getMonoid = function (S) { return ({ + concat: function (x, y) { return ((0, exports.isNone)(x) ? y : (0, exports.isNone)(y) ? x : (0, exports.some)(S.concat(x.value, y.value))); }, + empty: exports.none +}); }; +exports.getMonoid = getMonoid; +/** + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { + return (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(f(fa.value)); +}; }; +exports.map = map; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Some` value of this `Option` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Some` value of this `Option` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category constructors + * @since 2.7.0 + */ +exports.of = exports.some; +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @since 2.0.0 + */ +var ap = function (fa) { return function (fab) { + return (0, exports.isNone)(fab) ? exports.none : (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(fab.value(fa.value)); +}; }; +exports.ap = ap; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { return ((0, exports.isNone)(ma) ? exports.none : f(ma.value)); }); +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category folding + * @since 2.0.0 + */ +var reduce = function (b, f) { return function (fa) { + return (0, exports.isNone)(fa) ? b : f(b, fa.value); +}; }; +exports.reduce = reduce; +/** + * @category folding + * @since 2.0.0 + */ +var foldMap = function (M) { return function (f) { return function (fa) { + return (0, exports.isNone)(fa) ? M.empty : f(fa.value); +}; }; }; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.0.0 + */ +var reduceRight = function (b, f) { return function (fa) { + return (0, exports.isNone)(fa) ? b : f(fa.value, b); +}; }; +exports.reduceRight = reduceRight; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`. + * + * @param self - The first `Option` to be checked. + * @param that - The `Option` to return if `self` is `None`. + * + * @example + * import * as O from "fp-ts/Option" + * + * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1)) + * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b')) + * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1)) + * + * @category error handling + * @since 2.16.0 + */ +exports.orElse = (0, function_1.dual)(2, function (self, that) { return ((0, exports.isNone)(self) ? that() : self); }); +/** + * Alias of `orElse`. + * + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category legacy + * @since 2.9.0 + */ +exports.altW = exports.orElse; +/** + * Alias of `orElse`. + * + * @category legacy + * @since 2.0.0 + */ +exports.alt = exports.orElse; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @since 2.7.0 + */ +var zero = function () { return exports.none; }; +exports.zero = zero; +/** + * @category instances + * @since 2.11.0 + */ +exports.Zero = { + URI: exports.URI, + zero: exports.zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +exports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed); +/** + * @category instances + * @since 2.7.0 + */ +exports.Alternative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + alt: _alt, + zero: exports.zero +}; +/** + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { + return (0, exports.isNone)(wa) ? exports.none : (0, exports.some)(f(wa)); +}; }; +exports.extend = extend; +/** + * @category instances + * @since 2.7.0 + */ +exports.Extend = { + URI: exports.URI, + map: _map, + extend: _extend +}; +/** + * @category filtering + * @since 2.0.0 + */ +exports.compact = (0, exports.flatMap)(function_1.identity); +var defaultSeparated = /*#__PURE__*/ (0, Separated_1.separated)(exports.none, exports.none); +/** + * @category filtering + * @since 2.0.0 + */ +var separate = function (ma) { + return (0, exports.isNone)(ma) ? defaultSeparated : (0, Separated_1.separated)((0, exports.getLeft)(ma.value), (0, exports.getRight)(ma.value)); +}; +exports.separate = separate; +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category filtering + * @since 2.0.0 + */ +var filter = function (predicate) { + return function (fa) { + return (0, exports.isNone)(fa) ? exports.none : predicate(fa.value) ? fa : exports.none; + }; +}; +exports.filter = filter; +/** + * @category filtering + * @since 2.0.0 + */ +var filterMap = function (f) { return function (fa) { + return (0, exports.isNone)(fa) ? exports.none : f(fa.value); +}; }; +exports.filterMap = filterMap; +/** + * @category filtering + * @since 2.0.0 + */ +var partition = function (predicate) { + return function (fa) { + return (0, Separated_1.separated)(_filter(fa, (0, Predicate_1.not)(predicate)), _filter(fa, predicate)); + }; +}; +exports.partition = partition; +/** + * @category filtering + * @since 2.0.0 + */ +var partitionMap = function (f) { return (0, function_1.flow)((0, exports.map)(f), exports.separate); }; +exports.partitionMap = partitionMap; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + return function (f) { + return function (ta) { + return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(f(ta.value), exports.some); + }; + }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (ta) { + return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(ta.value, exports.some); + }; +}; +exports.sequence = sequence; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +var _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable); +var _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable); +/** + * @category filtering + * @since 2.6.5 + */ +var wither = function (F) { + var _witherF = _wither(F); + return function (f) { return function (fa) { return _witherF(fa, f); }; }; +}; +exports.wither = wither; +/** + * @category filtering + * @since 2.6.5 + */ +var wilt = function (F) { + var _wiltF = _wilt(F); + return function (f) { return function (fa) { return _wiltF(fa, f); }; }; +}; +exports.wilt = wilt; +/** + * @category instances + * @since 2.7.0 + */ +exports.Witherable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt +}; +/** + * @since 2.7.0 + */ +var throwError = function () { return exports.none; }; +exports.throwError = throwError; +/** + * @category instances + * @since 2.7.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + throwError: exports.throwError +}; +/** + * Transforms an `Either` to an `Option` discarding the error. + * + * Alias of [getRight](#getright) + * + * @category conversions + * @since 2.0.0 + */ +exports.fromEither = exports.getRight; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Returns `true` if the option is an instance of `Some`, `false` otherwise. + * + * @example + * import { some, none, isSome } from 'fp-ts/Option' + * + * assert.strictEqual(isSome(some(1)), true) + * assert.strictEqual(isSome(none), false) + * + * @category refinements + * @since 2.0.0 + */ +exports.isSome = _.isSome; +/** + * Returns `true` if the option is `None`, `false` otherwise. + * + * @example + * import { some, none, isNone } from 'fp-ts/Option' + * + * assert.strictEqual(isNone(some(1)), false) + * assert.strictEqual(isNone(none), true) + * + * @category refinements + * @since 2.0.0 + */ +var isNone = function (fa) { return fa._tag === 'None'; }; +exports.isNone = isNone; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +var matchW = function (onNone, onSome) { + return function (ma) { + return (0, exports.isNone)(ma) ? onNone() : onSome(ma.value); + }; +}; +exports.matchW = matchW; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchW; +/** + * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is + * returned, otherwise the function is applied to the value inside the `Some` and the result is returned. + * + * @example + * import { some, none, match } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a some containing 1' + * ) + * + * assert.strictEqual( + * pipe( + * none, + * match(() => 'a none', a => `a some containing ${a}`) + * ), + * 'a none' + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +exports.match = exports.matchW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.match; +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +var getOrElseW = function (onNone) { + return function (ma) { + return (0, exports.isNone)(ma) ? onNone() : ma.value; + }; +}; +exports.getOrElseW = getOrElseW; +/** + * Extracts the value out of the structure, if it exists. Otherwise returns the given default value + * + * @example + * import { some, none, getOrElse } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * getOrElse(() => 0) + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * getOrElse(() => 0) + * ), + * 0 + * ) + * + * @category error handling + * @since 2.0.0 + */ +exports.getOrElse = exports.getOrElseW; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.compact; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * O.of(value), + * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * assert.deepStrictEqual(compute(1), O.of(1)) + * assert.deepStrictEqual(compute(-42), O.none) + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +/** + * @category sequencing + * @since 2.11.0 + */ +exports.chainEitherK = +/*#__PURE__*/ (0, FromEither_1.chainEitherK)(exports.FromEither, exports.Chain); +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise + * returns the value wrapped in a `Some`. + * + * @example + * import { none, some, fromNullable } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromNullable(undefined), none) + * assert.deepStrictEqual(fromNullable(null), none) + * assert.deepStrictEqual(fromNullable(1), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +var fromNullable = function (a) { return (a == null ? exports.none : (0, exports.some)(a)); }; +exports.fromNullable = fromNullable; +/** + * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a + * `Some`. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { none, some, tryCatch } from 'fp-ts/Option' + * + * assert.deepStrictEqual( + * tryCatch(() => { + * throw new Error() + * }), + * none + * ) + * assert.deepStrictEqual(tryCatch(() => 1), some(1)) + * + * @category interop + * @since 2.0.0 + */ +var tryCatch = function (f) { + try { + return (0, exports.some)(f()); + } + catch (e) { + return exports.none; + } +}; +exports.tryCatch = tryCatch; +/** + * Converts a function that may throw to one returning a `Option`. + * + * @category interop + * @since 2.10.0 + */ +var tryCatchK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }); + }; +}; +exports.tryCatchK = tryCatchK; +/** + * Returns a *smart constructor* from a function that returns a nullable value. + * + * @example + * import { fromNullableK, none, some } from 'fp-ts/Option' + * + * const f = (s: string): number | undefined => { + * const n = parseFloat(s) + * return isNaN(n) ? undefined : n + * } + * + * const g = fromNullableK(f) + * + * assert.deepStrictEqual(g('1'), some(1)) + * assert.deepStrictEqual(g('a'), none) + * + * @category lifting + * @since 2.9.0 + */ +var fromNullableK = function (f) { return (0, function_1.flow)(f, exports.fromNullable); }; +exports.fromNullableK = fromNullableK; +/** + * This is `chain` + `fromNullable`, useful when working with optional values. + * + * @example + * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * interface Employee { + * readonly company?: { + * readonly address?: { + * readonly street?: { + * readonly name?: string + * } + * } + * } + * } + * + * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee1.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * some('high street') + * ) + * + * const employee2: Employee = { company: { address: { street: {} } } } + * + * assert.deepStrictEqual( + * pipe( + * fromNullable(employee2.company), + * chainNullableK(company => company.address), + * chainNullableK(address => address.street), + * chainNullableK(street => street.name) + * ), + * none + * ) + * + * @category sequencing + * @since 2.9.0 + */ +var chainNullableK = function (f) { + return function (ma) { + return (0, exports.isNone)(ma) ? exports.none : (0, exports.fromNullable)(f(ma.value)); + }; +}; +exports.chainNullableK = chainNullableK; +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `null`. + * + * @example + * import { some, none, toNullable } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toNullable + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toNullable + * ), + * null + * ) + * + * @category conversions + * @since 2.0.0 + */ +exports.toNullable = (0, exports.match)(function_1.constNull, function_1.identity); +/** + * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`. + * + * @example + * import { some, none, toUndefined } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * toUndefined + * ), + * 1 + * ) + * assert.strictEqual( + * pipe( + * none, + * toUndefined + * ), + * undefined + * ) + * + * @category conversions + * @since 2.0.0 + */ +exports.toUndefined = (0, exports.match)(function_1.constUndefined, function_1.identity); +function elem(E) { + return function (a, ma) { + if (ma === undefined) { + var elemE_1 = elem(E); + return function (ma) { return elemE_1(a, ma); }; + } + return (0, exports.isNone)(ma) ? false : E.equals(a, ma.value); + }; +} +/** + * Returns `true` if the predicate is satisfied by the wrapped value + * + * @example + * import { some, none, exists } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 0) + * ), + * true + * ) + * assert.strictEqual( + * pipe( + * some(1), + * exists(n => n > 1) + * ), + * false + * ) + * assert.strictEqual( + * pipe( + * none, + * exists(n => n > 0) + * ), + * false + * ) + * + * @since 2.0.0 + */ +var exists = function (predicate) { + return function (ma) { + return (0, exports.isNone)(ma) ? false : predicate(ma.value); + }; +}; +exports.exists = exists; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + var o = f(0, _.head(as)); + if ((0, exports.isNone)(o)) { + return exports.none; + } + var out = [o.value]; + for (var i = 1; i < as.length; i++) { + var o_1 = f(i, as[i]); + if ((0, exports.isNone)(o_1)) { + return exports.none; + } + out.push(o_1.value); + } + return (0, exports.some)(out); + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); +}; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `Refinement` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +function getRefinement(getOption) { + return function (a) { return (0, exports.isSome)(getOption(a)); }; +} +/** + * Use [`chainNullableK`](#chainnullablek) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.mapNullable = exports.chainNullableK; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option` + * (where `O` is from `import O from 'fp-ts/Option'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.option = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + zero: exports.zero, + alt: _alt, + extend: _extend, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt, + throwError: exports.throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplySemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplyMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative); +/** + * Use + * + * ```ts + * import { first } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(first()) + * ``` + * + * instead. + * + * Monoid returning the left-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(a) | + * + * @example + * import { getFirstMonoid, some, none } from 'fp-ts/Option' + * + * const M = getFirstMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getFirstMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.first)()); }; +exports.getFirstMonoid = getFirstMonoid; +/** + * Use + * + * ```ts + * import { last } from 'fp-ts/Semigroup' + * import { getMonoid } from 'fp-ts/Option' + * + * getMonoid(last()) + * ``` + * + * instead. + * + * Monoid returning the right-most non-`None` value + * + * | x | y | concat(x, y) | + * | ------- | ------- | ------------ | + * | none | none | none | + * | some(a) | none | some(a) | + * | none | some(b) | some(b) | + * | some(a) | some(b) | some(b) | + * + * @example + * import { getLastMonoid, some, none } from 'fp-ts/Option' + * + * const M = getLastMonoid<number>() + * assert.deepStrictEqual(M.concat(none, none), none) + * assert.deepStrictEqual(M.concat(some(1), none), some(1)) + * assert.deepStrictEqual(M.concat(none, some(2)), some(2)) + * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2)) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getLastMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.last)()); }; +exports.getLastMonoid = getLastMonoid; diff --git a/node_modules/fp-ts/lib/OptionT.d.ts b/node_modules/fp-ts/lib/OptionT.d.ts new file mode 100644 index 0000000..f2b7378 --- /dev/null +++ b/node_modules/fp-ts/lib/OptionT.d.ts @@ -0,0 +1,551 @@ +/** + * @since 2.0.0 + */ +import { + ApplicativeComposition2C1, + ApplicativeComposition11, + ApplicativeComposition21, + ApplicativeCompositionHKT1 +} from './Applicative' +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Either } from './Either' +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +import * as O from './Option' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import Option = O.Option +/** + * @since 2.10.0 + */ +export declare function some<F extends URIS4>(F: Pointed4<F>): <A, S, R, E>(a: A) => Kind4<F, S, R, E, Option<A>> +export declare function some<F extends URIS3>(F: Pointed3<F>): <A, R, E>(a: A) => Kind3<F, R, E, Option<A>> +export declare function some<F extends URIS3, E>(F: Pointed3C<F, E>): <A, R>(a: A) => Kind3<F, R, E, Option<A>> +export declare function some<F extends URIS2>(F: Pointed2<F>): <A, E>(a: A) => Kind2<F, E, Option<A>> +export declare function some<F extends URIS2, E>(F: Pointed2C<F, E>): <A>(a: A) => Kind2<F, E, Option<A>> +export declare function some<F extends URIS>(F: Pointed1<F>): <A>(a: A) => Kind<F, Option<A>> +export declare function some<F>(F: Pointed<F>): <A>(a: A) => HKT<F, Option<A>> +/** + * @since 2.10.0 + */ +export declare function zero<F extends URIS4>(F: Pointed4<F>): <S, R, E, A>() => Kind4<F, S, R, E, Option<A>> +export declare function zero<F extends URIS3>(F: Pointed3<F>): <R, E, A>() => Kind3<F, R, E, Option<A>> +export declare function zero<F extends URIS3, E>(F: Pointed3C<F, E>): <R, A>() => Kind3<F, R, E, Option<A>> +export declare function zero<F extends URIS2>(F: Pointed2<F>): <E, A>() => Kind2<F, E, Option<A>> +export declare function zero<F extends URIS2, E>(F: Pointed2C<F, E>): <A>() => Kind2<F, E, Option<A>> +export declare function zero<F extends URIS>(F: Pointed1<F>): <A>() => Kind<F, Option<A>> +export declare function zero<F>(F: Pointed<F>): <A>() => HKT<F, Option<A>> +/** + * @since 2.10.0 + */ +export declare function fromF<F extends URIS4>( + F: Functor4<F> +): <S, R, E, A>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, Option<A>> +export declare function fromF<F extends URIS3>( + F: Functor3<F> +): <R, E, A>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, Option<A>> +export declare function fromF<F extends URIS3, E>( + F: Functor3C<F, E> +): <R, A>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, Option<A>> +export declare function fromF<F extends URIS2>(F: Functor2<F>): <E, A>(ma: Kind2<F, E, A>) => Kind2<F, E, Option<A>> +export declare function fromF<F extends URIS2, E>(F: Functor2C<F, E>): <A>(ma: Kind2<F, E, A>) => Kind2<F, E, Option<A>> +export declare function fromF<F extends URIS>(F: Functor1<F>): <A>(ma: Kind<F, A>) => Kind<F, Option<A>> +export declare function fromF<F>(F: Functor<F>): <A>(ma: HKT<F, A>) => HKT<F, Option<A>> +/** + * @since 2.10.0 + */ +export declare function fromNullable<F extends URIS4>( + F: Pointed4<F> +): <A, S, R, E>(a: A) => Kind4<F, S, R, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS3>( + F: Pointed3<F> +): <A, R, E>(a: A) => Kind3<F, R, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A, R>(a: A) => Kind3<F, R, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS2>( + F: Pointed2<F> +): <A, E>(a: A) => Kind2<F, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A>(a: A) => Kind2<F, E, Option<NonNullable<A>>> +export declare function fromNullable<F extends URIS>(F: Pointed1<F>): <A>(a: A) => Kind<F, Option<NonNullable<A>>> +export declare function fromNullable<F>(F: Pointed<F>): <A>(a: A) => HKT<F, Option<NonNullable<A>>> +/** + * @since 2.10.0 + */ +export declare function fromNullableK<F extends URIS4>( + F: Pointed4<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <S, R, E>(...a: A) => Kind4<F, S, R, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS3>( + F: Pointed3<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R, E>(...a: A) => Kind3<F, R, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R>(...a: A) => Kind3<F, R, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS2>( + F: Pointed2<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <E>(...a: A) => Kind2<F, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind2<F, E, Option<NonNullable<B>>> +export declare function fromNullableK<F extends URIS>( + F: Pointed1<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => Kind<F, Option<NonNullable<B>>> +export declare function fromNullableK<F>( + F: Pointed<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => HKT<F, Option<NonNullable<B>>> +/** + * @since 2.10.0 + */ +export declare function chainNullableK<M extends URIS4>( + M: Monad4<M> +): <A, B>( + f: (a: A) => B | null | undefined +) => <S, R, E>(ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS3>( + M: Monad3<M> +): <A, B>( + f: (a: A) => B | null | undefined +) => <R, E>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS3, E>( + M: Monad3C<M, E> +): <A, B>( + f: (a: A) => B | null | undefined +) => <R>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS2>( + M: Monad2<M> +): <A, B>(f: (a: A) => B | null | undefined) => <E>(ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<NonNullable<B>>> +export declare function chainNullableK<M extends URIS>( + M: Monad1<M> +): <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind<M, Option<A>>) => Kind<M, Option<NonNullable<B>>> +export declare function chainNullableK<M>( + M: Monad<M> +): <A, B>(f: (a: A) => B | null | undefined) => (ma: HKT<M, Option<A>>) => HKT<M, Option<NonNullable<B>>> +/** + * @since 2.10.0 + */ +export declare function fromOptionK<F extends URIS4>( + F: Pointed4<F> +): <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => <S, R, E>(...a: A) => Kind4<F, S, R, E, Option<B>> +export declare function fromOptionK<F extends URIS3>( + F: Pointed3<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R, E>(...a: A) => Kind3<F, R, E, Option<B>> +export declare function fromOptionK<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, Option<B>> +export declare function fromOptionK<F extends URIS2>( + F: Pointed2<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <E>(...a: A) => Kind2<F, E, Option<B>> +export declare function fromOptionK<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, Option<B>> +export declare function fromOptionK<F extends URIS>( + F: Pointed1<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind<F, Option<B>> +export declare function fromOptionK<F>( + F: Pointed<F> +): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => HKT<F, Option<B>> +/** + * @since 2.10.0 + */ +export declare function chainOptionK<M extends URIS4>( + M: Monad4<M> +): <A, B>(f: (a: A) => Option<B>) => <S, R, E>(ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<B>> +export declare function chainOptionK<M extends URIS3>( + M: Monad3<M> +): <A, B>(f: (a: A) => Option<B>) => <R, E>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chainOptionK<M extends URIS3, E>( + M: Monad3C<M, E> +): <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chainOptionK<M extends URIS2>( + M: Monad2<M> +): <A, B>(f: (a: A) => Option<B>) => <E>(ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chainOptionK<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chainOptionK<M extends URIS>( + M: Monad1<M> +): <A, B>(f: (a: A) => Option<B>) => (ma: Kind<M, Option<A>>) => Kind<M, Option<B>> +export declare function chainOptionK<M>( + M: Monad<M> +): <A, B>(f: (a: A) => Option<B>) => (ma: HKT<M, Option<A>>) => HKT<M, Option<B>> +/** + * @category lifting + * @since 2.10.0 + */ +export declare function fromPredicate<F extends URIS4>( + F: Pointed4<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(a: A) => Kind4<F, S, R, E, Option<B>> + <A>(predicate: Predicate<A>): <S, R, E, B extends A>(b: B) => Kind4<F, S, R, E, Option<B>> + <A>(predicate: Predicate<A>): <S, R, E>(a: A) => Kind4<F, S, R, E, Option<A>> +} +export declare function fromPredicate<F extends URIS3>( + F: Pointed3<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>(a: A) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R, E, B extends A>(b: B) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R, E>(a: A) => Kind3<F, R, E, Option<A>> +} +export declare function fromPredicate<F extends URIS3, E>( + F: Pointed3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>(a: A) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R, B extends A>(b: B) => Kind3<F, R, E, Option<B>> + <A>(predicate: Predicate<A>): <R>(a: A) => Kind3<F, R, E, Option<A>> +} +export declare function fromPredicate<F extends URIS2>( + F: Pointed2<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <E>(a: A) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): <E, B extends A>(b: B) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): <E>(a: A) => Kind2<F, E, Option<A>> +} +export declare function fromPredicate<F extends URIS2, E>( + F: Pointed2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => Kind2<F, E, Option<B>> + <A>(predicate: Predicate<A>): (a: A) => Kind2<F, E, Option<A>> +} +export declare function fromPredicate<F extends URIS>( + F: Pointed1<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => Kind<F, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => Kind<F, Option<B>> + <A>(predicate: Predicate<A>): (a: A) => Kind<F, Option<A>> +} +export declare function fromPredicate<F>(F: Pointed<F>): { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => HKT<F, Option<B>> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => HKT<F, Option<B>> + <A>(predicate: Predicate<A>): (a: A) => HKT<F, Option<A>> +} +/** + * @since 2.10.0 + */ +export declare function fromEither<F extends URIS4>( + F: Pointed4<F> +): <A, S, R, E>(e: Either<unknown, A>) => Kind4<F, S, R, E, Option<A>> +export declare function fromEither<F extends URIS3>( + F: Pointed3<F> +): <A, R, E>(e: Either<unknown, A>) => Kind3<F, R, E, Option<A>> +export declare function fromEither<F extends URIS3, E>( + F: Pointed3C<F, E> +): <A, R>(e: Either<unknown, A>) => Kind3<F, R, E, Option<A>> +export declare function fromEither<F extends URIS2>( + F: Pointed2<F> +): <A, E>(e: Either<unknown, A>) => Kind2<F, E, Option<A>> +export declare function fromEither<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A>(e: Either<unknown, A>) => Kind2<F, E, Option<A>> +export declare function fromEither<F extends URIS2, E>( + F: Pointed2C<F, E> +): <A>(e: Either<unknown, A>) => Kind2<F, E, Option<A>> +export declare function fromEither<F extends URIS>(F: Pointed1<F>): <A>(e: Either<unknown, A>) => Kind<F, Option<A>> +export declare function fromEither<F>(F: Pointed<F>): <A>(e: Either<unknown, A>) => HKT<F, Option<A>> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare function match<F extends URIS4>( + F: Functor4<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <S, R, E>(ma: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, B> +export declare function match<F extends URIS3>( + F: Functor3<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <R, E>(ma: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, B> +export declare function match<F extends URIS3, E>( + F: Functor3C<F, E> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <R>(ma: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, B> +export declare function match<F extends URIS2>( + F: Functor2<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => <E>(ma: Kind2<F, E, Option<A>>) => Kind2<F, E, B> +export declare function match<F extends URIS2, E>( + F: Functor2C<F, E> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Kind2<F, E, Option<A>>) => Kind2<F, E, B> +export declare function match<F extends URIS>( + F: Functor1<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Kind<F, Option<A>>) => Kind<F, B> +export declare function match<F>( + F: Functor<F> +): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: HKT<F, Option<A>>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function matchE<M extends URIS4>( + M: Chain4<M> +): <S, R, E, B, A>( + onNone: () => Kind4<M, S, R, E, B>, + onSome: (a: A) => Kind4<M, S, R, E, B> +) => (ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, B> +export declare function matchE<M extends URIS3>( + M: Chain3<M> +): <R, E, B, A>( + onNone: () => Kind3<M, R, E, B>, + onSome: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, B> +export declare function matchE<M extends URIS3, E>( + M: Chain3C<M, E> +): <R, B, A>( + onNone: () => Kind3<M, R, E, B>, + onSome: (a: A) => Kind3<M, R, E, B> +) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, B> +export declare function matchE<M extends URIS2>( + M: Chain2<M> +): <E, B, A>( + onNone: () => Kind2<M, E, B>, + onSome: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, B> +export declare function matchE<M extends URIS2, E>( + M: Chain2C<M, E> +): <B, A>( + onNone: () => Kind2<M, E, B>, + onSome: (a: A) => Kind2<M, E, B> +) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, B> +export declare function matchE<M extends URIS>( + M: Chain1<M> +): <B, A>(onNone: () => Kind<M, B>, onSome: (a: A) => Kind<M, B>) => (ma: Kind<M, Option<A>>) => Kind<M, B> +export declare function matchE<M>( + M: Chain<M> +): <B, A>(onNone: () => HKT<M, B>, onSome: (a: A) => HKT<M, B>) => (ma: HKT<M, Option<A>>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function getOrElse<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A>(onNone: LazyArg<Kind4<M, S, R, E, A>>) => (fa: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, A> +export declare function getOrElse<M extends URIS3>( + M: Monad3<M> +): <R, E, A>(onNone: LazyArg<Kind3<M, R, E, A>>) => (fa: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, A> +export declare function getOrElse<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A>(onNone: LazyArg<Kind3<M, R, E, A>>) => (fa: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, A> +export declare function getOrElse<M extends URIS2>( + M: Monad2<M> +): <E, A>(onNone: LazyArg<Kind2<M, E, A>>) => (fa: Kind2<M, E, Option<A>>) => Kind2<M, E, A> +export declare function getOrElse<M extends URIS2, E>( + M: Monad2C<M, E> +): <A>(onNone: LazyArg<Kind2<M, E, A>>) => (fa: Kind2<M, E, Option<A>>) => Kind2<M, E, A> +export declare function getOrElse<M extends URIS>( + M: Monad1<M> +): <A>(onNone: LazyArg<Kind<M, A>>) => (fa: Kind<M, Option<A>>) => Kind<M, A> +export declare function getOrElse<M>( + M: Monad<M> +): <A>(onNone: LazyArg<HKT<M, A>>) => (fa: HKT<M, Option<A>>) => HKT<M, A> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS4>( + F: Functor4<F> +): <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, Option<B>> +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, Option<B>> +export declare function map<F extends URIS3, E>( + F: Functor3C<F, E> +): <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, Option<B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, Option<B>> +export declare function map<F extends URIS2, E>( + F: Functor2C<F, E> +): <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, Option<A>>) => Kind2<F, E, Option<B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => (fa: Kind<F, Option<A>>) => Kind<F, Option<B>> +export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => (fa: HKT<F, Option<A>>) => HKT<F, Option<B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS4>( + F: Apply4<F> +): <S, R, E, A>( + fa: Kind4<F, S, R, E, Option<A>> +) => <B>(fab: Kind4<F, S, R, E, Option<(a: A) => B>>) => Kind4<F, S, R, E, Option<B>> +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, E, A>( + fa: Kind3<F, R, E, Option<A>> +) => <B>(fab: Kind3<F, R, E, Option<(a: A) => B>>) => Kind3<F, R, E, Option<B>> +export declare function ap<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, A>(fa: Kind3<F, R, E, Option<A>>) => <B>(fab: Kind3<F, R, E, Option<(a: A) => B>>) => Kind3<F, R, E, Option<B>> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <E, A>(fa: Kind2<F, E, Option<A>>) => <B>(fab: Kind2<F, E, Option<(a: A) => B>>) => Kind2<F, E, Option<B>> +export declare function ap<F extends URIS2, E>( + F: Apply2C<F, E> +): <A>(fa: Kind2<F, E, Option<A>>) => <B>(fab: Kind2<F, E, Option<(a: A) => B>>) => Kind2<F, E, Option<B>> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <A>(fa: Kind<F, Option<A>>) => <B>(fab: Kind<F, Option<(a: A) => B>>) => Kind<F, Option<B>> +export declare function ap<F>( + F: Apply<F> +): <A>(fa: HKT<F, Option<A>>) => <B>(fab: HKT<F, Option<(a: A) => B>>) => HKT<F, Option<B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS4>( + M: Monad4<M> +): <A, S, R, E, B>( + f: (a: A) => Kind4<M, S, R, E, Option<B>> +) => (ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<B>> +export declare function chain<M extends URIS3>( + M: Monad3<M> +): <A, R, E, B>(f: (a: A) => Kind3<M, R, E, Option<B>>) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chain<M extends URIS3, E>( + M: Monad3C<M, E> +): <A, R, B>(f: (a: A) => Kind3<M, R, E, Option<B>>) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>> +export declare function chain<M extends URIS2>( + M: Monad2<M> +): <A, E, B>(f: (a: A) => Kind2<M, E, Option<B>>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chain<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(f: (a: A) => Kind2<M, E, Option<B>>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>> +export declare function chain<M extends URIS>( + M: Monad1<M> +): <A, B>(f: (a: A) => Kind<M, Option<B>>) => (ma: Kind<M, Option<A>>) => Kind<M, Option<B>> +export declare function chain<M>( + M: Monad<M> +): <A, B>(f: (a: A) => HKT<M, Option<B>>) => (ma: HKT<M, Option<A>>) => HKT<M, Option<B>> +/** + * @since 2.10.0 + */ +export declare function alt<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A>( + second: LazyArg<Kind4<M, S, R, E, Option<A>>> +) => (first: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<A>> +export declare function alt<M extends URIS3>( + M: Monad3<M> +): <R, E, A>( + second: LazyArg<Kind3<M, R, E, Option<A>>> +) => (first: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<A>> +export declare function alt<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A>(second: LazyArg<Kind3<M, R, E, Option<A>>>) => (first: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<A>> +export declare function alt<M extends URIS2>( + M: Monad2<M> +): <E, A>(second: LazyArg<Kind2<M, E, Option<A>>>) => (first: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<A>> +export declare function alt<M extends URIS2, E>( + M: Monad2C<M, E> +): <A>(second: LazyArg<Kind2<M, E, Option<A>>>) => (first: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<A>> +export declare function alt<M extends URIS>( + M: Monad1<M> +): <A>(second: LazyArg<Kind<M, Option<A>>>) => (first: Kind<M, Option<A>>) => Kind<M, Option<A>> +export declare function alt<M>( + M: Monad<M> +): <A>(second: LazyArg<HKT<M, Option<A>>>) => (first: HKT<M, Option<A>>) => HKT<M, Option<A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionT<M, A> extends HKT<M, Option<A>> {} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionM<M> extends ApplicativeCompositionHKT1<M, O.URI> { + readonly chain: <A, B>(ma: OptionT<M, A>, f: (a: A) => OptionT<M, B>) => OptionT<M, B> + readonly alt: <A>(fa: OptionT<M, A>, that: LazyArg<OptionT<M, A>>) => OptionT<M, A> + readonly fold: <A, R>(ma: OptionT<M, A>, onNone: LazyArg<HKT<M, R>>, onSome: (a: A) => HKT<M, R>) => HKT<M, R> + readonly getOrElse: <A>(ma: OptionT<M, A>, onNone: LazyArg<HKT<M, A>>) => HKT<M, A> + readonly fromM: <A>(ma: HKT<M, A>) => OptionT<M, A> + readonly none: <A = never>() => OptionT<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type OptionT1<M extends URIS, A> = Kind<M, Option<A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionM1<M extends URIS> extends ApplicativeComposition11<M, O.URI> { + readonly chain: <A, B>(ma: OptionT1<M, A>, f: (a: A) => OptionT1<M, B>) => OptionT1<M, B> + readonly alt: <A>(fa: OptionT1<M, A>, that: LazyArg<OptionT1<M, A>>) => OptionT1<M, A> + readonly fold: <A, R>(ma: OptionT1<M, A>, onNone: LazyArg<Kind<M, R>>, onSome: (a: A) => Kind<M, R>) => Kind<M, R> + readonly getOrElse: <A>(ma: OptionT1<M, A>, onNone: LazyArg<Kind<M, A>>) => Kind<M, A> + readonly fromM: <A>(ma: Kind<M, A>) => OptionT1<M, A> + readonly none: <A = never>() => OptionT1<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type OptionT2<M extends URIS2, E, A> = Kind2<M, E, Option<A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface OptionM2<M extends URIS2> extends ApplicativeComposition21<M, O.URI> { + readonly chain: <E, A, B>(ma: OptionT2<M, E, A>, f: (a: A) => OptionT2<M, E, B>) => OptionT2<M, E, B> + readonly alt: <E, A>(fa: OptionT2<M, E, A>, that: LazyArg<OptionT2<M, E, A>>) => OptionT2<M, E, A> + readonly fold: <E, A, R>( + ma: OptionT2<M, E, A>, + onNone: LazyArg<Kind2<M, E, R>>, + onSome: (a: A) => Kind2<M, E, R> + ) => Kind2<M, E, R> + readonly getOrElse: <E, A>(ma: OptionT2<M, E, A>, onNone: LazyArg<Kind2<M, E, A>>) => Kind2<M, E, A> + readonly fromM: <E, A>(ma: Kind2<M, E, A>) => OptionT2<M, E, A> + readonly none: <E = never, A = never>() => OptionT2<M, E, A> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface OptionM2C<M extends URIS2, E> extends ApplicativeComposition2C1<M, O.URI, E> { + readonly chain: <A, B>(ma: OptionT2<M, E, A>, f: (a: A) => OptionT2<M, E, B>) => OptionT2<M, E, B> + readonly alt: <A>(fa: OptionT2<M, E, A>, that: LazyArg<OptionT2<M, E, A>>) => OptionT2<M, E, A> + readonly fold: <A, R>( + ma: OptionT2<M, E, A>, + onNone: LazyArg<Kind2<M, E, R>>, + onSome: (a: A) => Kind2<M, E, R> + ) => Kind2<M, E, R> + readonly getOrElse: <A>(ma: OptionT2<M, E, A>, onNone: LazyArg<Kind2<M, E, A>>) => Kind2<M, E, A> + readonly fromM: <A>(ma: Kind2<M, E, A>) => OptionT2<M, E, A> + readonly none: <A = never>() => OptionT2<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getOptionM<M extends URIS2>(M: Monad2<M>): OptionM2<M> +/** @deprecated */ +export declare function getOptionM<M extends URIS2, E>(M: Monad2C<M, E>): OptionM2C<M, E> +/** @deprecated */ +export declare function getOptionM<M extends URIS>(M: Monad1<M>): OptionM1<M> +/** @deprecated */ +export declare function getOptionM<M>(M: Monad<M>): OptionM<M> diff --git a/node_modules/fp-ts/lib/OptionT.js b/node_modules/fp-ts/lib/OptionT.js new file mode 100644 index 0000000..e82950f --- /dev/null +++ b/node_modules/fp-ts/lib/OptionT.js @@ -0,0 +1,138 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.some = some; +exports.zero = zero; +exports.fromF = fromF; +exports.fromNullable = fromNullable; +exports.fromNullableK = fromNullableK; +exports.chainNullableK = chainNullableK; +exports.fromOptionK = fromOptionK; +exports.chainOptionK = chainOptionK; +exports.fromPredicate = fromPredicate; +exports.fromEither = fromEither; +exports.match = match; +exports.matchE = matchE; +exports.getOrElse = getOrElse; +exports.map = map; +exports.ap = ap; +exports.chain = chain; +exports.flatMap = flatMap; +exports.alt = alt; +exports.getOptionM = getOptionM; +var Apply_1 = require("./Apply"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var O = __importStar(require("./Option")); +function some(F) { + return (0, function_1.flow)(O.some, F.of); +} +function zero(F) { + return (0, function_1.constant)(F.of(O.none)); +} +function fromF(F) { + return function (ma) { return F.map(ma, O.some); }; +} +function fromNullable(F) { + return (0, function_1.flow)(O.fromNullable, F.of); +} +function fromNullableK(F) { + var fromNullableF = fromNullable(F); + return function (f) { return (0, function_1.flow)(f, fromNullableF); }; +} +function chainNullableK(M) { + var chainM = chain(M); + var fromNullableKM = fromNullableK(M); + return function (f) { return chainM(fromNullableKM(f)); }; +} +function fromOptionK(F) { + return function (f) { return (0, function_1.flow)(f, F.of); }; +} +function chainOptionK(M) { + var chainM = chain(M); + var fromOptionKM = fromOptionK(M); + return function (f) { return chainM(fromOptionKM(f)); }; +} +function fromPredicate(F) { + return function (predicate) { + return function (a) { + return F.of(O.fromPredicate(predicate)(a)); + }; + }; +} +function fromEither(F) { + return (0, function_1.flow)(O.fromEither, F.of); +} +function match(F) { + return function (onNone, onSome) { return function (ma) { return F.map(ma, O.match(onNone, onSome)); }; }; +} +function matchE(M) { + return function (onNone, onSome) { return function (ma) { return M.chain(ma, O.match(onNone, onSome)); }; }; +} +function getOrElse(M) { + return function (onNone) { return function (fa) { return M.chain(fa, O.match(onNone, M.of)); }; }; +} +function map(F) { + return (0, Functor_1.map)(F, O.Functor); +} +function ap(F) { + return (0, Apply_1.ap)(F, O.Apply); +} +function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +function flatMap(M) { + var zeroM = zero(M); + return function (ma, f) { + return M.chain(ma, O.match(function () { return zeroM(); }, f)); + }; +} +function alt(M) { + var _some = some(M); + return function (second) { return function (first) { return M.chain(first, O.match(second, _some)); }; }; +} +/** @deprecated */ +function getOptionM(M) { + var apM = ap(M); + var mapM = map(M); + var chainM = chain(M); + var altM = alt(M); + var foldM = matchE(M); + var getOrElseM = getOrElse(M); + var zeroM = zero(M); + return { + map: function (fa, f) { return (0, function_1.pipe)(fa, mapM(f)); }, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, apM(fa)); }, + of: some(M), + chain: function (ma, f) { return (0, function_1.pipe)(ma, chainM(f)); }, + alt: function (fa, that) { return (0, function_1.pipe)(fa, altM(that)); }, + fold: function (fa, onNone, onSome) { return (0, function_1.pipe)(fa, foldM(onNone, onSome)); }, + getOrElse: function (fa, onNone) { return (0, function_1.pipe)(fa, getOrElseM(onNone)); }, + fromM: fromF(M), + none: function () { return zeroM(); } + }; +} diff --git a/node_modules/fp-ts/lib/Ord.d.ts b/node_modules/fp-ts/lib/Ord.d.ts new file mode 100644 index 0000000..47b299a --- /dev/null +++ b/node_modules/fp-ts/lib/Ord.d.ts @@ -0,0 +1,355 @@ +/** + * The `Ord` type class represents types which support comparisons with a _total order_. + * + * Instances should satisfy the laws of total orderings: + * + * 1. Reflexivity: `S.compare(a, a) <= 0` + * 2. Antisymmetry: if `S.compare(a, b) <= 0` and `S.compare(b, a) <= 0` then `a <-> b` + * 3. Transitivity: if `S.compare(a, b) <= 0` and `S.compare(b, c) <= 0` then `S.compare(a, c) <= 0` + * + * @since 2.0.0 + */ +import { Contravariant1 } from './Contravariant' +import { Eq } from './Eq' +import { Monoid } from './Monoid' +import { Ordering } from './Ordering' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Ord<A> extends Eq<A> { + readonly compare: (first: A, second: A) => Ordering +} +/** + * @category defaults + * @since 2.10.0 + */ +export declare const equalsDefault: <A>(compare: Ord<A>['compare']) => Eq<A>['equals'] +/** + * @category constructors + * @since 2.0.0 + */ +export declare const fromCompare: <A>(compare: Ord<A>['compare']) => Ord<A> +/** + * Given a tuple of `Ord`s returns an `Ord` for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Ord' + * import * as B from 'fp-ts/boolean' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * + * const O = tuple(S.Ord, N.Ord, B.Ord) + * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...ords: { [K in keyof A]: Ord<A[K]> } +) => Ord<Readonly<A>> +/** + * @since 2.10.0 + */ +export declare const reverse: <A>(O: Ord<A>) => Ord<A> +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for ordering (meaning we have an `Ord<X>`) + * + * For example, given the following `User` type, there are lots of possible choices for `X`, + * but let's say we want to sort a list of users by `lastName`. + * + * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord<string>`) and we know how to go from `User -> string`, + * using `contramap` we can do this + * + * @example + * import { pipe } from 'fp-ts/function' + * import { contramap, Ord } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly firstName: string + * readonly lastName: string + * } + * + * const ordLastName: Ord<string> = S.Ord + * + * const ordByLastName: Ord<User> = pipe( + * ordLastName, + * contramap((user) => user.lastName) + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordByLastName)([ + * { firstName: 'a', lastName: 'd' }, + * { firstName: 'c', lastName: 'b' } + * ]), + * [ + * { firstName: 'c', lastName: 'b' }, + * { firstName: 'a', lastName: 'd' } + * ] + * ) + * + * @since 2.0.0 + */ +export declare const contramap: <A, B>(f: (b: B) => A) => (fa: Ord<A>) => Ord<B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Ord' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Ord<A> + } +} +/** + * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings. + * + * For example the following snippet builds an `Ord` for a type `User` which + * sorts by `created` date descending, and **then** `lastName` + * + * @example + * import * as D from 'fp-ts/Date' + * import { pipe } from 'fp-ts/function' + * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly id: string + * readonly lastName: string + * readonly created: Date + * } + * + * const ordByLastName: Ord<User> = pipe( + * S.Ord, + * contramap((user) => user.lastName) + * ) + * + * const ordByCreated: Ord<User> = pipe( + * D.Ord, + * contramap((user) => user.created) + * ) + * + * const ordUserByCreatedDescThenLastName = getSemigroup<User>().concat( + * reverse(ordByCreated), + * ordByLastName + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordUserByCreatedDescThenLastName)([ + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) } + * ]), + * [ + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) } + * ] + * ) + * + * @category instances + * @since 2.0.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<Ord<A>> +/** + * Returns a `Monoid` such that: + * + * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2` + * - its `empty` value is an `Ord` that always considers compared elements equal + * + * @example + * import { sort } from 'fp-ts/Array' + * import { contramap, reverse, getMonoid } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as B from 'fp-ts/boolean' + * import { pipe } from 'fp-ts/function' + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface User { + * readonly id: number + * readonly name: string + * readonly age: number + * readonly rememberMe: boolean + * } + * + * const byName = pipe( + * S.Ord, + * contramap((p: User) => p.name) + * ) + * + * const byAge = pipe( + * N.Ord, + * contramap((p: User) => p.age) + * ) + * + * const byRememberMe = pipe( + * B.Ord, + * contramap((p: User) => p.rememberMe) + * ) + * + * const M = getMonoid<User>() + * + * const users: Array<User> = [ + * { id: 1, name: 'Guido', age: 47, rememberMe: false }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true } + * ] + * + * // sort by name, then by age, then by `rememberMe` + * const O1 = concatAll(M)([byName, byAge, byRememberMe]) + * assert.deepStrictEqual(sort(O1)(users), [ + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * // now `rememberMe = true` first, then by name, then by age + * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) + * assert.deepStrictEqual(sort(O2)(users), [ + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * @category instances + * @since 2.4.0 + */ +export declare const getMonoid: <A = never>() => Monoid<Ord<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Contravariant: Contravariant1<URI> +/** + * @since 2.11.0 + */ +export declare const trivial: Ord<unknown> +/** + * @since 2.11.0 + */ +export declare const equals: <A>(O: Ord<A>) => (second: A) => (first: A) => boolean +/** + * Test whether one value is _strictly less than_ another + * + * @since 2.0.0 + */ +export declare const lt: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Test whether one value is _strictly greater than_ another + * + * @since 2.0.0 + */ +export declare const gt: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Test whether one value is _non-strictly less than_ another + * + * @since 2.0.0 + */ +export declare const leq: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Test whether one value is _non-strictly greater than_ another + * + * @since 2.0.0 + */ +export declare const geq: <A>(O: Ord<A>) => (first: A, second: A) => boolean +/** + * Take the minimum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +export declare const min: <A>(O: Ord<A>) => (first: A, second: A) => A +/** + * Take the maximum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +export declare const max: <A>(O: Ord<A>) => (first: A, second: A) => A +/** + * Clamp a value between a minimum and a maximum + * + * @since 2.0.0 + */ +export declare const clamp: <A>(O: Ord<A>) => (low: A, hi: A) => (a: A) => A +/** + * Test whether a value is between a minimum and a maximum (inclusive) + * + * @since 2.0.0 + */ +export declare const between: <A>(O: Ord<A>) => (low: A, hi: A) => (a: A) => boolean +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleOrd: <T extends ReadonlyArray<Ord<any>>>( + ...ords: T +) => Ord<{ + [K in keyof T]: T[K] extends Ord<infer A> ? A : never +}> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualOrd: <A>(O: Ord<A>) => Ord<A> +/** + * Use [`Contravariant`](#contravariant) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ord: Contravariant1<URI> +/** + * Use [`Ord`](./boolean.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordBoolean: Ord<boolean> +/** + * Use [`Ord`](./string.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordString: Ord<string> +/** + * Use [`Ord`](./number.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordNumber: Ord<number> +/** + * Use [`Ord`](./Date.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const ordDate: Ord<Date> diff --git a/node_modules/fp-ts/lib/Ord.js b/node_modules/fp-ts/lib/Ord.js new file mode 100644 index 0000000..2a9a26d --- /dev/null +++ b/node_modules/fp-ts/lib/Ord.js @@ -0,0 +1,448 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ordDate = exports.ordNumber = exports.ordString = exports.ordBoolean = exports.ord = exports.getDualOrd = exports.getTupleOrd = exports.between = exports.clamp = exports.max = exports.min = exports.geq = exports.leq = exports.gt = exports.lt = exports.equals = exports.trivial = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.URI = exports.contramap = exports.reverse = exports.tuple = exports.fromCompare = exports.equalsDefault = void 0; +var Eq_1 = require("./Eq"); +var function_1 = require("./function"); +// ------------------------------------------------------------------------------------- +// defaults +// ------------------------------------------------------------------------------------- +/** + * @category defaults + * @since 2.10.0 + */ +var equalsDefault = function (compare) { + return function (first, second) { + return first === second || compare(first, second) === 0; + }; +}; +exports.equalsDefault = equalsDefault; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +var fromCompare = function (compare) { return ({ + equals: (0, exports.equalsDefault)(compare), + compare: function (first, second) { return (first === second ? 0 : compare(first, second)); } +}); }; +exports.fromCompare = fromCompare; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Given a tuple of `Ord`s returns an `Ord` for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Ord' + * import * as B from 'fp-ts/boolean' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * + * const O = tuple(S.Ord, N.Ord, B.Ord) + * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1) + * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1) + * + * @since 2.10.0 + */ +var tuple = function () { + var ords = []; + for (var _i = 0; _i < arguments.length; _i++) { + ords[_i] = arguments[_i]; + } + return (0, exports.fromCompare)(function (first, second) { + var i = 0; + for (; i < ords.length - 1; i++) { + var r = ords[i].compare(first[i], second[i]); + if (r !== 0) { + return r; + } + } + return ords[i].compare(first[i], second[i]); + }); +}; +exports.tuple = tuple; +/** + * @since 2.10.0 + */ +var reverse = function (O) { return (0, exports.fromCompare)(function (first, second) { return O.compare(second, first); }); }; +exports.reverse = reverse; +/* istanbul ignore next */ +var contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); }; +/** + * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord<User>`. + * + * We can do so with a function from `User -> X` where `X` is some value that we know how to compare + * for ordering (meaning we have an `Ord<X>`) + * + * For example, given the following `User` type, there are lots of possible choices for `X`, + * but let's say we want to sort a list of users by `lastName`. + * + * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord<string>`) and we know how to go from `User -> string`, + * using `contramap` we can do this + * + * @example + * import { pipe } from 'fp-ts/function' + * import { contramap, Ord } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly firstName: string + * readonly lastName: string + * } + * + * const ordLastName: Ord<string> = S.Ord + * + * const ordByLastName: Ord<User> = pipe( + * ordLastName, + * contramap((user) => user.lastName) + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordByLastName)([ + * { firstName: 'a', lastName: 'd' }, + * { firstName: 'c', lastName: 'b' } + * ]), + * [ + * { firstName: 'c', lastName: 'b' }, + * { firstName: 'a', lastName: 'd' } + * ] + * ) + * + * @since 2.0.0 + */ +var contramap = function (f) { return function (fa) { + return (0, exports.fromCompare)(function (first, second) { return fa.compare(f(first), f(second)); }); +}; }; +exports.contramap = contramap; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Ord'; +/** + * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings. + * + * For example the following snippet builds an `Ord` for a type `User` which + * sorts by `created` date descending, and **then** `lastName` + * + * @example + * import * as D from 'fp-ts/Date' + * import { pipe } from 'fp-ts/function' + * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * interface User { + * readonly id: string + * readonly lastName: string + * readonly created: Date + * } + * + * const ordByLastName: Ord<User> = pipe( + * S.Ord, + * contramap((user) => user.lastName) + * ) + * + * const ordByCreated: Ord<User> = pipe( + * D.Ord, + * contramap((user) => user.created) + * ) + * + * const ordUserByCreatedDescThenLastName = getSemigroup<User>().concat( + * reverse(ordByCreated), + * ordByLastName + * ) + * + * assert.deepStrictEqual( + * RA.sort(ordUserByCreatedDescThenLastName)([ + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) } + * ]), + * [ + * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }, + * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) }, + * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) } + * ] + * ) + * + * @category instances + * @since 2.0.0 + */ +var getSemigroup = function () { return ({ + concat: function (first, second) { + return (0, exports.fromCompare)(function (a, b) { + var ox = first.compare(a, b); + return ox !== 0 ? ox : second.compare(a, b); + }); + } +}); }; +exports.getSemigroup = getSemigroup; +/** + * Returns a `Monoid` such that: + * + * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2` + * - its `empty` value is an `Ord` that always considers compared elements equal + * + * @example + * import { sort } from 'fp-ts/Array' + * import { contramap, reverse, getMonoid } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as B from 'fp-ts/boolean' + * import { pipe } from 'fp-ts/function' + * import { concatAll } from 'fp-ts/Monoid' + * import * as N from 'fp-ts/number' + * + * interface User { + * readonly id: number + * readonly name: string + * readonly age: number + * readonly rememberMe: boolean + * } + * + * const byName = pipe( + * S.Ord, + * contramap((p: User) => p.name) + * ) + * + * const byAge = pipe( + * N.Ord, + * contramap((p: User) => p.age) + * ) + * + * const byRememberMe = pipe( + * B.Ord, + * contramap((p: User) => p.rememberMe) + * ) + * + * const M = getMonoid<User>() + * + * const users: Array<User> = [ + * { id: 1, name: 'Guido', age: 47, rememberMe: false }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true } + * ] + * + * // sort by name, then by age, then by `rememberMe` + * const O1 = concatAll(M)([byName, byAge, byRememberMe]) + * assert.deepStrictEqual(sort(O1)(users), [ + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * // now `rememberMe = true` first, then by name, then by age + * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge]) + * assert.deepStrictEqual(sort(O2)(users), [ + * { id: 4, name: 'Giulio', age: 44, rememberMe: true }, + * { id: 2, name: 'Guido', age: 46, rememberMe: true }, + * { id: 3, name: 'Giulio', age: 44, rememberMe: false }, + * { id: 1, name: 'Guido', age: 47, rememberMe: false } + * ]) + * + * @category instances + * @since 2.4.0 + */ +var getMonoid = function () { return ({ + concat: (0, exports.getSemigroup)().concat, + empty: (0, exports.fromCompare)(function () { return 0; }) +}); }; +exports.getMonoid = getMonoid; +/** + * @category instances + * @since 2.7.0 + */ +exports.Contravariant = { + URI: exports.URI, + contramap: contramap_ +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +exports.trivial = { + equals: function_1.constTrue, + compare: /*#__PURE__*/ (0, function_1.constant)(0) +}; +/** + * @since 2.11.0 + */ +var equals = function (O) { + return function (second) { + return function (first) { + return first === second || O.compare(first, second) === 0; + }; + }; +}; +exports.equals = equals; +// TODO: curry in v3 +/** + * Test whether one value is _strictly less than_ another + * + * @since 2.0.0 + */ +var lt = function (O) { + return function (first, second) { + return O.compare(first, second) === -1; + }; +}; +exports.lt = lt; +// TODO: curry in v3 +/** + * Test whether one value is _strictly greater than_ another + * + * @since 2.0.0 + */ +var gt = function (O) { + return function (first, second) { + return O.compare(first, second) === 1; + }; +}; +exports.gt = gt; +// TODO: curry in v3 +/** + * Test whether one value is _non-strictly less than_ another + * + * @since 2.0.0 + */ +var leq = function (O) { + return function (first, second) { + return O.compare(first, second) !== 1; + }; +}; +exports.leq = leq; +// TODO: curry in v3 +/** + * Test whether one value is _non-strictly greater than_ another + * + * @since 2.0.0 + */ +var geq = function (O) { + return function (first, second) { + return O.compare(first, second) !== -1; + }; +}; +exports.geq = geq; +// TODO: curry in v3 +/** + * Take the minimum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +var min = function (O) { + return function (first, second) { + return first === second || O.compare(first, second) < 1 ? first : second; + }; +}; +exports.min = min; +// TODO: curry in v3 +/** + * Take the maximum of two values. If they are considered equal, the first argument is chosen + * + * @since 2.0.0 + */ +var max = function (O) { + return function (first, second) { + return first === second || O.compare(first, second) > -1 ? first : second; + }; +}; +exports.max = max; +/** + * Clamp a value between a minimum and a maximum + * + * @since 2.0.0 + */ +var clamp = function (O) { + var minO = (0, exports.min)(O); + var maxO = (0, exports.max)(O); + return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; }; +}; +exports.clamp = clamp; +/** + * Test whether a value is between a minimum and a maximum (inclusive) + * + * @since 2.0.0 + */ +var between = function (O) { + var ltO = (0, exports.lt)(O); + var gtO = (0, exports.gt)(O); + return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; }; +}; +exports.between = between; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getTupleOrd = exports.tuple; +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getDualOrd = exports.reverse; +/** + * Use [`Contravariant`](#contravariant) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.ord = exports.Contravariant; +// default compare for primitive types +function compare(first, second) { + return first < second ? -1 : first > second ? 1 : 0; +} +var strictOrd = { + equals: Eq_1.eqStrict.equals, + compare: compare +}; +/** + * Use [`Ord`](./boolean.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.ordBoolean = strictOrd; +/** + * Use [`Ord`](./string.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.ordString = strictOrd; +/** + * Use [`Ord`](./number.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.ordNumber = strictOrd; +/** + * Use [`Ord`](./Date.ts.html#ord) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.ordDate = (0, function_1.pipe)(exports.ordNumber, +/*#__PURE__*/ +(0, exports.contramap)(function (date) { return date.valueOf(); })); diff --git a/node_modules/fp-ts/lib/Ordering.d.ts b/node_modules/fp-ts/lib/Ordering.d.ts new file mode 100644 index 0000000..ed8603f --- /dev/null +++ b/node_modules/fp-ts/lib/Ordering.d.ts @@ -0,0 +1,84 @@ +/** + * @since 2.0.0 + */ +import * as E from './Eq' +import * as M from './Monoid' +import * as S from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export type Ordering = -1 | 0 | 1 +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +export declare const matchW: <A, B, C>( + onLessThan: () => A, + onEqual: () => B, + onGreaterThan: () => C +) => (o: Ordering) => A | B | C +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <A>(onLessThan: () => A, onEqual: () => A, onGreaterThan: () => A) => (o: Ordering) => A +/** + * @since 2.10.0 + */ +export declare const reverse: (o: Ordering) => Ordering +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<Ordering> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Semigroup: S.Semigroup<Ordering> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monoid: M.Monoid<Ordering> +/** + * @since 2.0.0 + */ +export declare const sign: (n: number) => Ordering +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const invert: (o: Ordering) => Ordering +/** + * Use [`Semigroup`](#semigroup) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupOrdering: S.Semigroup<Ordering> +/** + * Use [`Eq`](#eq) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const eqOrdering: E.Eq<Ordering> +/** + * Use [`Monoid`](#monoid) instead + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const monoidOrdering: M.Monoid<Ordering> diff --git a/node_modules/fp-ts/lib/Ordering.js b/node_modules/fp-ts/lib/Ordering.js new file mode 100644 index 0000000..d34dbd5 --- /dev/null +++ b/node_modules/fp-ts/lib/Ordering.js @@ -0,0 +1,98 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.monoidOrdering = exports.eqOrdering = exports.semigroupOrdering = exports.invert = exports.sign = exports.Monoid = exports.Semigroup = exports.Eq = exports.reverse = exports.match = exports.matchW = void 0; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.12.0 + */ +var matchW = function (onLessThan, onEqual, onGreaterThan) { + return function (o) { + return o === -1 ? onLessThan() : o === 0 ? onEqual() : onGreaterThan(); + }; +}; +exports.matchW = matchW; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = exports.matchW; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +var reverse = function (o) { return (o === -1 ? 1 : o === 1 ? -1 : 0); }; +exports.reverse = reverse; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +exports.Eq = { + equals: function (x, y) { return x === y; } +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Semigroup = { + concat: function (x, y) { return (x !== 0 ? x : y); } +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Monoid = { + concat: exports.Semigroup.concat, + empty: 0 +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +var sign = function (n) { return (n <= -1 ? -1 : n >= 1 ? 1 : 0); }; +exports.sign = sign; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.invert = exports.reverse; +/** + * Use [`Semigroup`](#semigroup) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupOrdering = exports.Semigroup; +/** + * Use [`Eq`](#eq) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.eqOrdering = exports.Eq; +/** + * Use [`Monoid`](#monoid) instead + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +exports.monoidOrdering = exports.Monoid; diff --git a/node_modules/fp-ts/lib/Pointed.d.ts b/node_modules/fp-ts/lib/Pointed.d.ts new file mode 100644 index 0000000..dfce145 --- /dev/null +++ b/node_modules/fp-ts/lib/Pointed.d.ts @@ -0,0 +1,62 @@ +/** + * @since 2.10.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed<F> { + readonly URI: F + readonly of: <A>(a: A) => HKT<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed1<F extends URIS> { + readonly URI: F + readonly of: <A>(a: A) => Kind<F, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed2<F extends URIS2> { + readonly URI: F + readonly of: <E, A>(a: A) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly of: <A>(a: A) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed3<F extends URIS3> { + readonly URI: F + readonly of: <R, E, A>(a: A) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly of: <R, A>(a: A) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Pointed4<F extends URIS4> { + readonly URI: F + readonly of: <S, R, E, A>(a: A) => Kind4<F, S, R, E, A> +} diff --git a/node_modules/fp-ts/lib/Pointed.js b/node_modules/fp-ts/lib/Pointed.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Pointed.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Predicate.d.ts b/node_modules/fp-ts/lib/Predicate.d.ts new file mode 100644 index 0000000..32f9fd2 --- /dev/null +++ b/node_modules/fp-ts/lib/Predicate.d.ts @@ -0,0 +1,68 @@ +/** + * @since 2.11.0 + */ +import { Contravariant1 } from './Contravariant' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +/** + * @since 2.11.0 + */ +export interface Predicate<A> { + (a: A): boolean +} +/** + * @since 2.11.0 + */ +export declare const contramap: <B, A>(f: (b: B) => A) => (predicate: Predicate<A>) => Predicate<B> +/** + * @category type lambdas + * @since 2.11.0 + */ +export declare const URI = 'Predicate' +/** + * @category type lambdas + * @since 2.11.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Predicate<A> + } +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getSemigroupAny: <A = never>() => Semigroup<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getMonoidAny: <A = never>() => Monoid<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getSemigroupAll: <A = never>() => Semigroup<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getMonoidAll: <A = never>() => Monoid<Predicate<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Contravariant: Contravariant1<URI> +/** + * @since 2.11.0 + */ +export declare const not: <A>(predicate: Predicate<A>) => Predicate<A> +/** + * @since 2.11.0 + */ +export declare const or: <A>(second: Predicate<A>) => (first: Predicate<A>) => Predicate<A> +/** + * @since 2.11.0 + */ +export declare const and: <A>(second: Predicate<A>) => (first: Predicate<A>) => Predicate<A> diff --git a/node_modules/fp-ts/lib/Predicate.js b/node_modules/fp-ts/lib/Predicate.js new file mode 100644 index 0000000..f89720d --- /dev/null +++ b/node_modules/fp-ts/lib/Predicate.js @@ -0,0 +1,95 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.and = exports.or = exports.not = exports.Contravariant = exports.getMonoidAll = exports.getSemigroupAll = exports.getMonoidAny = exports.getSemigroupAny = exports.URI = exports.contramap = void 0; +var function_1 = require("./function"); +var contramap_ = function (predicate, f) { return (0, function_1.pipe)(predicate, (0, exports.contramap)(f)); }; +/** + * @since 2.11.0 + */ +var contramap = function (f) { + return function (predicate) { + return (0, function_1.flow)(f, predicate); + }; +}; +exports.contramap = contramap; +/** + * @category type lambdas + * @since 2.11.0 + */ +exports.URI = 'Predicate'; +/** + * @category instances + * @since 2.11.0 + */ +var getSemigroupAny = function () { return ({ + concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.or)(second)); } +}); }; +exports.getSemigroupAny = getSemigroupAny; +/** + * @category instances + * @since 2.11.0 + */ +var getMonoidAny = function () { return ({ + concat: (0, exports.getSemigroupAny)().concat, + empty: function_1.constFalse +}); }; +exports.getMonoidAny = getMonoidAny; +/** + * @category instances + * @since 2.11.0 + */ +var getSemigroupAll = function () { return ({ + concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.and)(second)); } +}); }; +exports.getSemigroupAll = getSemigroupAll; +/** + * @category instances + * @since 2.11.0 + */ +var getMonoidAll = function () { return ({ + concat: (0, exports.getSemigroupAll)().concat, + empty: function_1.constTrue +}); }; +exports.getMonoidAll = getMonoidAll; +/** + * @category instances + * @since 2.11.0 + */ +exports.Contravariant = { + URI: exports.URI, + contramap: contramap_ +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +var not = function (predicate) { + return function (a) { + return !predicate(a); + }; +}; +exports.not = not; +/** + * @since 2.11.0 + */ +var or = function (second) { + return function (first) { + return function (a) { + return first(a) || second(a); + }; + }; +}; +exports.or = or; +/** + * @since 2.11.0 + */ +var and = function (second) { + return function (first) { + return function (a) { + return first(a) && second(a); + }; + }; +}; +exports.and = and; diff --git a/node_modules/fp-ts/lib/Profunctor.d.ts b/node_modules/fp-ts/lib/Profunctor.d.ts new file mode 100644 index 0000000..1cc2633 --- /dev/null +++ b/node_modules/fp-ts/lib/Profunctor.d.ts @@ -0,0 +1,49 @@ +/** + * @since 2.0.0 + */ +import { Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor<F> { + readonly URI: F + readonly map: <E, A, B>(fa: HKT2<F, E, A>, f: (a: A) => B) => HKT<F, B> + readonly promap: <E, A, D, B>(fea: HKT2<F, E, A>, f: (d: D) => E, g: (a: A) => B) => HKT2<F, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor2<F extends URIS2> extends Functor2<F> { + readonly promap: <E, A, D, B>(fea: Kind2<F, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind2<F, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor2C<F extends URIS2, E> extends Functor2C<F, E> { + readonly promap: <A, D, B>(fea: Kind2<F, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind2<F, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor3<F extends URIS3> extends Functor3<F> { + readonly promap: <R, E, A, D, B>(fea: Kind3<F, R, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind3<F, R, D, B> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Profunctor3C<F extends URIS3, E> extends Functor3C<F, E> { + readonly promap: <R, A, D, B>(fea: Kind3<F, R, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind3<F, R, D, B> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Profunctor4<F extends URIS4> extends Functor4<F> { + readonly promap: <S, R, E, A, D, B>(fea: Kind4<F, S, R, E, A>, f: (d: D) => E, g: (a: A) => B) => Kind4<F, S, R, D, B> +} diff --git a/node_modules/fp-ts/lib/Profunctor.js b/node_modules/fp-ts/lib/Profunctor.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Profunctor.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Random.d.ts b/node_modules/fp-ts/lib/Random.d.ts new file mode 100644 index 0000000..3938b92 --- /dev/null +++ b/node_modules/fp-ts/lib/Random.d.ts @@ -0,0 +1,36 @@ +import { IO } from './IO' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +/** + * Returns a random number between 0 (inclusive) and 1 (exclusive). This is a direct wrapper around JavaScript's + * `Math.random()`. + * + * @since 2.0.0 + */ +export declare const random: IO<number> +/** + * Takes a range specified by `low` (the first argument) and `high` (the second), and returns a random integer uniformly + * distributed in the closed interval `[low, high]`. It is unspecified what happens if `low > high`, or if either of + * `low` or `high` is not an integer. + * + * @since 2.0.0 + */ +export declare function randomInt(low: number, high: number): IO<number> +/** + * Returns a random number between a minimum value (inclusive) and a maximum value (exclusive). It is unspecified what + * happens if `maximum < minimum`. + * + * @since 2.0.0 + */ +export declare function randomRange(min: number, max: number): IO<number> +/** + * Returns a random boolean value with an equal chance of being `true` or `false` + * + * @since 2.0.0 + */ +export declare const randomBool: IO<boolean> +/** + * Returns a random element of a `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export declare const randomElem: <A>(as: ReadonlyNonEmptyArray<A>) => IO<A> diff --git a/node_modules/fp-ts/lib/Random.js b/node_modules/fp-ts/lib/Random.js new file mode 100644 index 0000000..9f80df4 --- /dev/null +++ b/node_modules/fp-ts/lib/Random.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.randomElem = exports.randomBool = exports.random = void 0; +exports.randomInt = randomInt; +exports.randomRange = randomRange; +/** + * @since 2.0.0 + */ +var function_1 = require("./function"); +var IO_1 = require("./IO"); +/** + * Returns a random number between 0 (inclusive) and 1 (exclusive). This is a direct wrapper around JavaScript's + * `Math.random()`. + * + * @since 2.0.0 + */ +var random = function () { return Math.random(); }; +exports.random = random; +/** + * Takes a range specified by `low` (the first argument) and `high` (the second), and returns a random integer uniformly + * distributed in the closed interval `[low, high]`. It is unspecified what happens if `low > high`, or if either of + * `low` or `high` is not an integer. + * + * @since 2.0.0 + */ +function randomInt(low, high) { + return (0, function_1.pipe)(exports.random, (0, IO_1.map)(function (n) { return Math.floor((high - low + 1) * n + low); })); +} +/** + * Returns a random number between a minimum value (inclusive) and a maximum value (exclusive). It is unspecified what + * happens if `maximum < minimum`. + * + * @since 2.0.0 + */ +function randomRange(min, max) { + return (0, function_1.pipe)(exports.random, (0, IO_1.map)(function (n) { return (max - min) * n + min; })); +} +/** + * Returns a random boolean value with an equal chance of being `true` or `false` + * + * @since 2.0.0 + */ +exports.randomBool = (0, function_1.pipe)(exports.random, (0, IO_1.map)(function (n) { return n < 0.5; })); +/** + * Returns a random element of a `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +var randomElem = function (as) { + return (0, function_1.pipe)(randomInt(0, as.length - 1), (0, IO_1.map)(function (i) { return as[i]; })); +}; +exports.randomElem = randomElem; diff --git a/node_modules/fp-ts/lib/Reader.d.ts b/node_modules/fp-ts/lib/Reader.d.ts new file mode 100644 index 0000000..580e4f7 --- /dev/null +++ b/node_modules/fp-ts/lib/Reader.d.ts @@ -0,0 +1,492 @@ +/** + * The `Reader` monad (also called the Environment monad). Represents a computation, which can read values from a shared environment, + * pass values from function to function, and execute sub-computations in a modified environment. + * Using `Reader` monad for such computations is often clearer and easier than using the `State` monad. + * + * In this example the `Reader` monad provides access to variable bindings. `Bindings` are a map of `number` variables. + * The variable count contains number of variables in the bindings. You can see how to run a `Reader` monad and retrieve + * data from it, how to access the `Reader` data with `ask` and `asks`. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as R from 'fp-ts/Reader' + * import * as RR from 'fp-ts/ReadonlyRecord' + * + * interface Bindings extends RR.ReadonlyRecord<string, number> {} + * + * // The Reader monad, which implements this complicated check. + * const isCountCorrect: R.Reader<Bindings, boolean> = pipe( + * R.Do, + * R.bind('count', () => R.asks(lookupVar('count'))), + * R.bind('bindings', () => R.ask()), + * R.map(({ count, bindings }) => count === RR.size(bindings)) + * ) + * + * // The selector function to use with 'asks'. + * // Returns value of the variable with specified name. + * const lookupVar = (name: string) => (bindings: Bindings): number => + * pipe( + * bindings, + * RR.lookup(name), + * O.getOrElse(() => 0) + * ) + * + * const sampleBindings: Bindings = { count: 3, a: 1, b: 2 } + * + * assert.deepStrictEqual(isCountCorrect(sampleBindings), true) + * + * @since 2.0.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import { Category2 } from './Category' +import * as chainable from './Chain' +import { Choice2 } from './Choice' +import { Functor2 } from './Functor' +import { Monad2 } from './Monad' +import { Monoid } from './Monoid' +import { Pointed2 } from './Pointed' +import { Profunctor2 } from './Profunctor' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +import { Strong2 } from './Strong' +/** + * @category model + * @since 2.0.0 + */ +export interface Reader<R, A> { + (r: R): A +} +/** + * Reads the current context + * + * @category constructors + * @since 2.0.0 + */ +export declare const ask: <R>() => Reader<R, R> +/** + * Projects a value from the global context in a Reader + * + * @category constructors + * @since 2.0.0 + */ +export declare const asks: <R, A>(f: (r: R) => A) => Reader<R, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as R from 'fp-ts/Reader' + * import * as string from 'fp-ts/string' + * + * const calculateContentLen: R.Reader<string, number> = pipe( + * R.Do, + * R.bind('content', () => R.ask<string>()), + * R.map(({ content }) => string.size(content)) + * ) + * + * // Calls calculateContentLen after adding a prefix to the Reader content. + * const calculateModifiedContentLen: R.Reader<string, number> = pipe( + * calculateContentLen, + * R.local((s) => 'Prefix ' + s) + * ) + * + * const s = '12345' + * + * assert.deepStrictEqual( + * "Modified 's' length: " + calculateModifiedContentLen(s) + '\n' + "Original 's' length: " + calculateContentLen(s), + * "Modified 's' length: 12\nOriginal 's' length: 5" + * ) + * + * @since 2.0.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <A>(ma: Reader<R1, A>) => Reader<R2, A> +/** + * Less strict version of [`asksReader`](#asksreader). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderW: <R1, R2, A>(f: (r1: R1) => Reader<R2, A>) => Reader<R1 & R2, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReader: <R, A>(f: (r: R) => Reader<R, A>) => Reader<R, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, A>) => Reader<R, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, A>(fa: Reader<R2, A>) => <R1, B>(fab: Reader<R1, (a: A) => B>) => Reader<R1 & R2, B> +/** + * @since 2.0.0 + */ +export declare const ap: <R, A>(fa: Reader<R, A>) => <B>(fab: Reader<R, (a: A) => B>) => Reader<R, B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <R = unknown, A = never>(a: A) => Reader<R, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1>(ma: Reader<R1, A>) => Reader<R1 & R2, B> + <R1, A, R2, B>(ma: Reader<R1, A>, f: (a: A) => Reader<R2, B>): Reader<R1 & R2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, R2, A>(mma: Reader<R1, Reader<R2, A>>) => Reader<R1 & R2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <R, A>(mma: Reader<R, Reader<R, A>>) => Reader<R, A> +/** + * @since 2.0.0 + */ +export declare const compose: <A, B>(ab: Reader<A, B>) => <C>(bc: Reader<B, C>) => Reader<A, C> +/** + * @since 2.0.0 + */ +export declare const promap: <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fea: Reader<E, A>) => Reader<D, B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const id: Category2<URI>['id'] +/** + * @since 2.10.0 + */ +export declare const first: Strong2<URI>['first'] +/** + * @since 2.10.0 + */ +export declare const second: Strong2<URI>['second'] +/** + * @since 2.10.0 + */ +export declare const left: Choice2<URI>['left'] +/** + * @since 2.10.0 + */ +export declare const right: Choice2<URI>['right'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Reader' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Reader<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Reader', E, (a: A) => B>) => import('./HKT').Kind2<'Reader', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: Reader<E, B> +) => <A>(first: import('./HKT').Kind2<'Reader', E, A>) => import('./HKT').Kind2<'Reader', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <R2, B>(second: Reader<R2, B>) => <R1, A>(first: Reader<R1, A>) => Reader<R1 & R2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: Reader<E, B> +) => <A>(first: import('./HKT').Kind2<'Reader', E, A>) => import('./HKT').Kind2<'Reader', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <R2, B>(second: Reader<R2, B>) => <R1, A>(first: Reader<R1, A>) => Reader<R1 & R2, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, A, R2, _>(self: Reader<R1, A>, f: (a: A) => Reader<R2, _>): Reader<R1 & R2, A> + <A, R2, _>(f: (a: A) => Reader<R2, _>): <R1>(self: Reader<R1, A>) => Reader<R2 & R1, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Profunctor: Profunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Category: Category2<URI> +/** + * @category instances + * @since 2.8.3 + */ +export declare const Strong: Strong2<URI> +/** + * @category instances + * @since 2.8.3 + */ +export declare const Choice: Choice2<URI> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>(fa: import('./HKT').Kind2<'Reader', E, A>) => import('./HKT').Kind2<'Reader', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'Reader', E, A> +) => import('./HKT').Kind2<'Reader', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'Reader', E, B> +) => ( + ma: import('./HKT').Kind2<'Reader', E, A> +) => import('./HKT').Kind2<'Reader', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Reader<R2, B> +) => <R1>(fa: Reader<R1, A>) => Reader< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Reader<unknown, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: Reader<E, B> +) => ( + fa: import('./HKT').Kind2<'Reader', E, A> +) => import('./HKT').Kind2<'Reader', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, B>( + name: Exclude<N, keyof A>, + fb: Reader<R2, B> +) => <R1>(fa: Reader<R1, A>) => Reader< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: Reader<unknown, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => Reader<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => Reader<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => Reader<R, B> +) => (as: ReadonlyArray<A>) => Reader<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, A, B>( + f: (index: number, a: A) => Reader<R, B> +) => (as: ReadonlyArray<A>) => Reader<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, A, B>( + f: (a: A) => Reader<R, B> +) => (as: ReadonlyArray<A>) => Reader<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, A>(arr: ReadonlyArray<Reader<R, A>>) => Reader<R, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <R2, A, B>(f: (a: A) => Reader<R2, B>) => <R1>(ma: Reader<R1, A>) => Reader<R1 & R2, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, R, B>(f: (a: A) => Reader<R, B>) => (ma: Reader<R, A>) => Reader<R, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, R, B>(f: (a: A) => Reader<R, B>) => (first: Reader<R, A>) => Reader<R, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstW: <R2, A, B>( + f: (a: A) => Reader<R2, B> +) => <R1>(ma: Reader<R1, A>) => Reader<R1 & R2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.reader` + * (where `R` is from `import R from 'fp-ts/Reader'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const reader: Monad2<URI> & Profunctor2<URI> & Category2<URI> & Strong2<URI> & Choice2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <R, A>(S: Semigroup<A>) => Semigroup<Reader<R, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMonoid: <R, A>(M: Monoid<A>) => Monoid<Reader<R, A>> diff --git a/node_modules/fp-ts/lib/Reader.js b/node_modules/fp-ts/lib/Reader.js new file mode 100644 index 0000000..2b9a0cc --- /dev/null +++ b/node_modules/fp-ts/lib/Reader.js @@ -0,0 +1,572 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.chainW = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.Do = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Choice = exports.Strong = exports.Category = exports.Profunctor = exports.tap = exports.Monad = exports.Chain = exports.Applicative = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.Functor = exports.URI = exports.right = exports.left = exports.second = exports.first = exports.id = exports.promap = exports.compose = exports.flatten = exports.flattenW = exports.flatMap = exports.of = exports.ap = exports.apW = exports.map = exports.asksReader = exports.asksReaderW = exports.local = exports.asks = exports.ask = void 0; +exports.getMonoid = exports.getSemigroup = exports.reader = exports.chainFirstW = exports.chainFirst = exports.chain = void 0; +/** + * The `Reader` monad (also called the Environment monad). Represents a computation, which can read values from a shared environment, + * pass values from function to function, and execute sub-computations in a modified environment. + * Using `Reader` monad for such computations is often clearer and easier than using the `State` monad. + * + * In this example the `Reader` monad provides access to variable bindings. `Bindings` are a map of `number` variables. + * The variable count contains number of variables in the bindings. You can see how to run a `Reader` monad and retrieve + * data from it, how to access the `Reader` data with `ask` and `asks`. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as O from 'fp-ts/Option' + * import * as R from 'fp-ts/Reader' + * import * as RR from 'fp-ts/ReadonlyRecord' + * + * interface Bindings extends RR.ReadonlyRecord<string, number> {} + * + * // The Reader monad, which implements this complicated check. + * const isCountCorrect: R.Reader<Bindings, boolean> = pipe( + * R.Do, + * R.bind('count', () => R.asks(lookupVar('count'))), + * R.bind('bindings', () => R.ask()), + * R.map(({ count, bindings }) => count === RR.size(bindings)) + * ) + * + * // The selector function to use with 'asks'. + * // Returns value of the variable with specified name. + * const lookupVar = (name: string) => (bindings: Bindings): number => + * pipe( + * bindings, + * RR.lookup(name), + * O.getOrElse(() => 0) + * ) + * + * const sampleBindings: Bindings = { count: 3, a: 1, b: 2 } + * + * assert.deepStrictEqual(isCountCorrect(sampleBindings), true) + * + * @since 2.0.0 + */ +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var E = __importStar(require("./Either")); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Reads the current context + * + * @category constructors + * @since 2.0.0 + */ +var ask = function () { return function_1.identity; }; +exports.ask = ask; +/** + * Projects a value from the global context in a Reader + * + * @category constructors + * @since 2.0.0 + */ +exports.asks = function_1.identity; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as R from 'fp-ts/Reader' + * import * as string from 'fp-ts/string' + * + * const calculateContentLen: R.Reader<string, number> = pipe( + * R.Do, + * R.bind('content', () => R.ask<string>()), + * R.map(({ content }) => string.size(content)) + * ) + * + * // Calls calculateContentLen after adding a prefix to the Reader content. + * const calculateModifiedContentLen: R.Reader<string, number> = pipe( + * calculateContentLen, + * R.local((s) => 'Prefix ' + s) + * ) + * + * const s = '12345' + * + * assert.deepStrictEqual( + * "Modified 's' length: " + calculateModifiedContentLen(s) + '\n' + "Original 's' length: " + calculateContentLen(s), + * "Modified 's' length: 12\nOriginal 's' length: 5" + * ) + * + * @since 2.0.0 + */ +var local = function (f) { return function (ma) { return function (r2) { + return ma(f(r2)); +}; }; }; +exports.local = local; +/** + * Less strict version of [`asksReader`](#asksreader). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +var asksReaderW = function (f) { + return function (r) { + return f(r)(r); + }; +}; +exports.asksReaderW = asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReader = exports.asksReaderW; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _compose = function (bc, ab) { return (0, function_1.pipe)(bc, (0, exports.compose)(ab)); }; +var _promap = function (fea, f, g) { return (0, function_1.pipe)(fea, (0, exports.promap)(f, g)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return function (r) { return f(fa(r)); }; }; }; +exports.map = map; +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +var apW = function (fa) { return function (fab) { return function (r) { + return fab(r)(fa(r)); +}; }; }; +exports.apW = apW; +/** + * @since 2.0.0 + */ +exports.ap = exports.apW; +/** + * @category constructors + * @since 2.0.0 + */ +exports.of = function_1.constant; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return function (r) { + return f(ma(r))(r); + }; +}); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * @since 2.0.0 + */ +var compose = function (ab) { return function (bc) { return (0, function_1.flow)(ab, bc); }; }; +exports.compose = compose; +/** + * @since 2.0.0 + */ +var promap = function (f, g) { return function (fea) { return function (a) { + return g(fea(f(a))); +}; }; }; +exports.promap = promap; +/** + * @category constructors + * @since 2.0.0 + */ +var id = function () { return function_1.identity; }; +exports.id = id; +/** + * @since 2.10.0 + */ +var first = function (pab) { + return function (_a) { + var a = _a[0], c = _a[1]; + return [pab(a), c]; + }; +}; +exports.first = first; +/** + * @since 2.10.0 + */ +var second = function (pbc) { + return function (_a) { + var a = _a[0], b = _a[1]; + return [a, pbc(b)]; + }; +}; +exports.second = second; +/** + * @since 2.10.0 + */ +var left = function (pab) { return E.fold(function (a) { return _.left(pab(a)); }, E.right); }; +exports.left = left; +/** + * @since 2.10.0 + */ +var right = function (pbc) { return E.fold(E.left, function (b) { return _.right(pbc(b)); }); }; +exports.right = right; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Reader'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * @category instances + * @since 2.7.0 + */ +exports.Profunctor = { + URI: exports.URI, + map: _map, + promap: _promap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Category = { + URI: exports.URI, + compose: _compose, + id: exports.id +}; +/** + * @category instances + * @since 2.8.3 + */ +exports.Strong = { + URI: exports.URI, + map: _map, + promap: _promap, + first: exports.first, + second: exports.second +}; +/** + * @category instances + * @since 2.8.3 + */ +exports.Choice = { + URI: exports.URI, + map: _map, + promap: _promap, + left: exports.left, + right: exports.right +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function (r) { + var out = [f(0, _.head(as))(r)]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])(r)); + } + return out; + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstW = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.reader` + * (where `R` is from `import R from 'fp-ts/Reader'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.reader = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + promap: _promap, + compose: _compose, + id: exports.id, + first: exports.first, + second: exports.second, + left: exports.left, + right: exports.right +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getSemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative); diff --git a/node_modules/fp-ts/lib/ReaderEither.d.ts b/node_modules/fp-ts/lib/ReaderEither.d.ts new file mode 100644 index 0000000..fef3fe9 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderEither.d.ts @@ -0,0 +1,1057 @@ +/** + * @since 2.0.0 + */ +import { Alt3, Alt3C } from './Alt' +import { Applicative3, Applicative3C } from './Applicative' +import { Apply3 } from './Apply' +import { Bifunctor3 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable3C } from './Compactable' +import * as E from './Either' +import { Filterable3C } from './Filterable' +import { FromEither3 } from './FromEither' +import { FromReader3 } from './FromReader' +import { LazyArg } from './function' +import { Functor3 } from './Functor' +import { Monad3, Monad3C } from './Monad' +import { MonadThrow3, MonadThrow3C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed3 } from './Pointed' +import { Predicate } from './Predicate' +import * as R from './Reader' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import Reader = R.Reader +import Either = E.Either +/** + * @category model + * @since 2.0.0 + */ +export interface ReaderEither<R, E, A> extends Reader<R, Either<E, A>> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <R, E = never, A = never>(e: E) => ReaderEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <R, E = never, A = never>(a: A) => ReaderEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightReader: <R, E = never, A = never>(ma: Reader<R, A>) => ReaderEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftReader: <R, E = never, A = never>(me: Reader<R, E>) => ReaderEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A, R = unknown>(fa: Either<E, A>) => ReaderEither<R, E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromReader: <R, A, E = never>(fa: Reader<R, A>) => ReaderEither<R, E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B +) => <R>(ma: ReaderEither<R, E, A>) => Reader<R, B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => <R>(ma: Reader<R, Either<E, A>>) => Reader<R, B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Reader`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <R, E, A, B>( + onLeft: (e: E) => Reader<R, B>, + onRight: (a: A) => Reader<R, B> +) => (ma: ReaderEither<R, E, A>) => Reader<R, B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <R, E, A, B>( + onLeft: (e: E) => Reader<R, B>, + onRight: (a: A) => Reader<R, B> +) => (ma: ReaderEither<R, E, A>) => Reader<R, B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => Reader<R2, B>, + onRight: (a: A) => Reader<R3, C> +) => <R1>(ma: ReaderEither<R1, E, A>) => Reader<R1 & R2 & R3, B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => Reader<R2, B>, + onRight: (a: A) => Reader<R3, C> +) => <R1>(ma: ReaderEither<R1, E, A>) => Reader<R1 & R2 & R3, B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, R, A>(onLeft: (e: E) => Reader<R, A>) => (ma: ReaderEither<R, E, A>) => Reader<R, A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <R2, E, B>( + onLeft: (e: E) => Reader<R2, B> +) => <R1, A>(ma: ReaderEither<R1, E, A>) => Reader<R1 & R2, A | B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <R, E, A>(fa: ReaderEither<R, E, A>) => Reader<R, E | A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <E, A>(ma: ReaderEither<R1, E, A>) => ReaderEither<R2, E, A> +/** + * Less strict version of [`asksReaderEither`](#asksreadereither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderEitherW: <R1, R2, E, A>( + f: (r1: R1) => ReaderEither<R2, E, A> +) => ReaderEither<R1 & R2, E, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderEither: <R, E, A>(f: (r: R) => ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, R, E2, A>( + onLeft: (e: E1) => ReaderEither<R, E2, A> +) => (ma: ReaderEither<R, E1, A>) => ReaderEither<R, E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, R1, E2, B>( + onLeft: (e: E1) => ReaderEither<R1, E2, B> +) => <R2, A>(ma: ReaderEither<R2, E1, A>) => ReaderEither<R1 & R2, E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, R2, E2, _>(onLeft: (e: E1) => ReaderEither<R2, E2, _>): <R1, A>( + self: ReaderEither<R1, E1, A> + ) => ReaderEither<R1 & R2, E1 | E2, A> + <R1, E1, A, R2, E2, _>(self: ReaderEither<R1, E1, A>, onLeft: (e: E1) => ReaderEither<R2, E2, _>): ReaderEither< + R1 & R2, + E1 | E2, + A + > +} +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, R, E2>( + onLeft: (e: E1) => Reader<R, E2> +) => <A>(fa: ReaderEither<R, E1, A>) => ReaderEither<R, E2, A> +/** + * @category error handling + * @since 2.16.6 + */ +export declare const orLeftW: <E1, R2, E2>( + onLeft: (e: E1) => Reader<R2, E2> +) => <R1, A>(fa: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <R, E, A>(ma: ReaderEither<R, E, A>) => ReaderEither<R, A, E> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R, E>(fa: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Returns a `ReaderEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.right(1), f, g)({}), Either.right(2)) + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.left('err'), f, g)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): <R>(self: ReaderEither<R, E, A>) => ReaderEither<R, G, B> + <R, E, A, G, B>(self: ReaderEither<R, E, A>, f: (e: E) => G, g: (a: A) => B): ReaderEither<R, G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(fa: ReaderEither<R, E, A>) => ReaderEither<R, G, B> +/** + * Returns a `ReaderEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.right(1), f)({}), Either.right(1)) + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.left('err'), f)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <R, E, G>(f: (e: E) => G): <A>(self: ReaderEither<R, E, A>) => ReaderEither<R, G, A> + <R, E, A, G>(self: ReaderEither<R, E, A>, f: (e: E) => G): ReaderEither<R, G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <R, A>(fa: ReaderEither<R, E, A>) => ReaderEither<R, G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <R, E, A>( + fa: ReaderEither<R, E, A> +) => <B>(fab: ReaderEither<R, E, (a: A) => B>) => ReaderEither<R, E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, E2, A>( + fa: ReaderEither<R2, E2, A> +) => <R1, E1, B>(fab: ReaderEither<R1, E1, (a: A) => B>) => ReaderEither<R1 & R2, E1 | E2, B> +/** + * @category constructors + * @since 2.8.5 + */ +export declare const of: <R = unknown, E = never, A = never>(a: A) => ReaderEither<R, E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, E2, B>(f: (a: A) => ReaderEither<R2, E2, B>): <R1, E1>( + ma: ReaderEither<R1, E1, A> + ) => ReaderEither<R1 & R2, E1 | E2, B> + <R1, E1, A, R2, E2, B>(ma: ReaderEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, B>): ReaderEither< + R1 & R2, + E1 | E2, + B + > +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, R2, E1, E2, A>( + mma: ReaderEither<R1, E1, ReaderEither<R2, E2, A>> +) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <R, E, A>(mma: ReaderEither<R, E, ReaderEither<R, E, A>>) => ReaderEither<R, E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <R, E, A>( + that: () => ReaderEither<R, E, A> +) => (fa: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <R2, E2, B>( + that: () => ReaderEither<R2, E2, B> +) => <R1, E1, A>(fa: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E2, A | B> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow3<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'ReaderEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind3<R, E, A> { + readonly [URI]: ReaderEither<R, E, A> + } +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable3C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable3C<URI, E> +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeReaderValidation<E>(S: Semigroup<E>): Applicative3C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltReaderValidation<E>(S: Semigroup<E>): Alt3C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor3<URI> +/** + * Maps the `Right` value of this `ReaderEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, E, _>(self: ReaderEither<R, E, _>) => ReaderEither<R, E, A> + <R, E, _, A>(self: ReaderEither<R, E, _>, a: A): ReaderEither<R, E, A> +} +/** + * Maps the `Right` value of this `ReaderEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, E, _>(self: ReaderEither<R, E, _>) => ReaderEither<R, E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <R, E, B>( + fab: import('./HKT').Kind3<'ReaderEither', R, E, (a: A) => B> +) => import('./HKT').Kind3<'ReaderEither', R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply3<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <R, E, B>( + second: ReaderEither<R, E, B> +) => <A>(first: import('./HKT').Kind3<'ReaderEither', R, E, A>) => import('./HKT').Kind3<'ReaderEither', R, E, A> +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <R2, E2, B>( + second: ReaderEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <R, E, B>( + second: ReaderEither<R, E, B> +) => <A>(first: import('./HKT').Kind3<'ReaderEither', R, E, A>) => import('./HKT').Kind3<'ReaderEither', R, E, B> +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <R2, E2, B>( + second: ReaderEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain3<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither3<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader3<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, E1, A, R2, E2, _>(self: ReaderEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, _>): ReaderEither< + R1 & R2, + E1 | E2, + A + > + <A, R2, E2, _>(f: (a: A) => ReaderEither<R2, E2, _>): <R1, E1>( + self: ReaderEither<R1, E1, A> + ) => ReaderEither<R1 & R2, E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RE from 'fp-ts/ReaderEither' + * + * const checkString = (value: string) => pipe( + * RE.ask<number>(), + * RE.tapEither( + * (minLength) => value.length > minLength + * ? E.right('ok') + * : E.left('error') + * ) + * ) + * + * assert.deepStrictEqual(checkString('')(1), E.left('error')) + * assert.deepStrictEqual(checkString('fp-ts')(2), E.right(2)) + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <R1, E1>(self: ReaderEither<R1, E1, A>) => ReaderEither<R1, E1 | E2, A> + <R1, E1, A, E2, _>(self: ReaderEither<R1, E1, A>, f: (a: A) => Either<E2, _>): ReaderEither<R1, E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <R2, A, E, _>(f: (a: A) => Reader<R2, _>): <R1>(self: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, A> + <R1, R2, E, A, _>(self: ReaderEither<R1, E, A>, f: (a: A) => Reader<R2, _>): ReaderEither<R1 & R2, E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor3<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt3<URI> +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +export declare const ask: <R, E = never>() => ReaderEither<R, E, R> +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +export declare const asks: <R, A, E = never>(f: (r: R) => A) => ReaderEither<R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => Reader<R, B> +) => <E = never>(...a: A) => ReaderEither<R, E, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <E>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => Reader<R1, B> +) => <R2, E>(ma: ReaderEither<R2, E, A>) => ReaderEither<R1 & R2, E, A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const MonadThrow: MonadThrow3<URI> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A, R = unknown>(fa: Option<A>) => ReaderEither<R, E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R = unknown>(...a: A) => ReaderEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <R, E1>(ma: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => <R>(...a: A) => ReaderEither<R, E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => <R>(...a: A) => ReaderEither<R, E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <R, E1>( + self: ReaderEither<R, E1, A> + ) => ReaderEither<R, E2 | E1, NonNullable<B>> + <R, E1, A, B, E2>( + self: ReaderEither<R, E1, A>, + f: (a: A) => B | null | undefined, + onNullable: (a: A) => E2 + ): ReaderEither<R, E1 | E2, NonNullable<B>> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <R, E1>( + self: ReaderEither<R, E1, A> + ) => ReaderEither<R, E2 | E1, B> + <R, E1, A, B, E2>(self: ReaderEither<R, E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): ReaderEither< + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <R, E1>(self: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderEither<R, E1, A>, f: (a: A) => E.Either<E2, B>): ReaderEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1, E>(self: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderEither<R1, E, A>, f: (a: A) => Reader<R2, B>): ReaderEither<R1 & R2, E, B> +} +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderEither<R, E1, A>) => ReaderEither<R, E1 | E2, A> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <E>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R2, B>( + f: (a: A) => Reader<R2, B> +) => <R1, E>(ma: ReaderEither<R1, E, A>) => ReaderEither<R1 & R2, E, B> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R = unknown>(a: A) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown, B extends A = A>(b: B) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown>(a: A) => ReaderEither<R, E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: ReaderEither<R, E, A> + ) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>( + mb: ReaderEither<R, E, B> + ) => ReaderEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderEither<R, E1, A> + ) => ReaderEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1, B extends A>( + mb: ReaderEither<R, E1, B> + ) => ReaderEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderEither<R, E1, A> + ) => ReaderEither<R, E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => <R = unknown>(...a: A) => ReaderEither<R, E, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReaderEither<unknown, never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <R, E, A>( + fa: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R, E>( + fa: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind3<'ReaderEither', R, E, B> +) => ( + ma: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderEither<R1, E1, A> +) => ReaderEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderEither<R, E, B> +) => ( + fa: import('./HKT').Kind3<'ReaderEither', R, E, A> +) => import('./HKT').Kind3<'ReaderEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, E2, B>( + name: Exclude<N, keyof A>, + fb: ReaderEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderEither<R1, E1, A> +) => ReaderEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: ReaderEither<unknown, never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderEither<R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, E, A, B>( + f: (index: number, a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, E, A>( + arr: ReadonlyArray<ReaderEither<R, E, A>> +) => ReaderEither<R, E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderEither<R, E, A>) => ReaderEither<R, E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, R, B>( + onLeft: (e: E) => ReaderEither<R, E, B> +) => <A>(ma: ReaderEither<R, E, A>) => ReaderEither<R, E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, R2, E2, B>( + onLeft: (e: E1) => ReaderEither<R2, E2, B> +) => <R1, A>(ma: ReaderEither<R1, E1, A>) => ReaderEither<R1 & R2, E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RE.Functor` instead of `RE.readerEither` + * (where `R` is from `import R from 'fp-ts/ReaderEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const readerEither: Monad3<URI> & Bifunctor3<URI> & Alt3<URI> & MonadThrow3<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderEither<R, E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <R, E, A>(M: Monoid<A>) => Monoid<ReaderEither<R, E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderEither<R, E, A>> +/** + * Use [`getApplicativeReaderValidation`](#getapplicativereadervalidation) and [`getAltReaderValidation`](#getaltreadervalidation) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare function getReaderValidation<E>( + SE: Semigroup<E> +): Monad3C<URI, E> & Bifunctor3<URI> & Alt3C<URI, E> & MonadThrow3C<URI, E> diff --git a/node_modules/fp-ts/lib/ReaderEither.js b/node_modules/fp-ts/lib/ReaderEither.js new file mode 100644 index 0000000..74cd2bc --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderEither.js @@ -0,0 +1,988 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.getCompactable = exports.URI = exports.throwError = exports.altW = exports.alt = exports.flatten = exports.flattenW = exports.flatMap = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.mapError = exports.bimap = exports.mapBoth = exports.map = exports.swap = exports.orLeftW = exports.orLeft = exports.tapError = exports.orElseW = exports.orElse = exports.asksReaderEither = exports.asksReaderEitherW = exports.local = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromReader = exports.fromEither = exports.leftReader = exports.rightReader = exports.right = exports.left = void 0; +exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainReaderKW = exports.chainReaderK = exports.chainFirstEitherKW = exports.chainFirstEitherK = exports.chainEitherKW = exports.chainEitherK = exports.flatMapReader = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.MonadThrow = exports.chainFirstReaderKW = exports.chainFirstReaderK = exports.fromReaderK = exports.asks = exports.ask = exports.Alt = exports.Bifunctor = exports.tapReader = exports.tapEither = exports.tap = exports.FromReader = exports.FromEither = exports.Monad = exports.Chain = exports.Applicative = void 0; +exports.getSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.readerEither = exports.orElseFirstW = exports.orElseFirst = exports.chainFirstW = exports.chainFirst = exports.chainW = void 0; +exports.getFilterable = getFilterable; +exports.getApplicativeReaderValidation = getApplicativeReaderValidation; +exports.getAltReaderValidation = getAltReaderValidation; +exports.getReaderValidation = getReaderValidation; +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var Compactable_1 = require("./Compactable"); +var E = __importStar(require("./Either")); +var ET = __importStar(require("./EitherT")); +var Filterable_1 = require("./Filterable"); +var FromEither_1 = require("./FromEither"); +var FromReader_1 = require("./FromReader"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var R = __importStar(require("./Reader")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +exports.left = ET.left(R.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.right = ET.right(R.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.rightReader = +/*#__PURE__*/ ET.rightF(R.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +exports.leftReader = ET.leftF(R.Functor); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromEither = R.of; +/** + * @category conversions + * @since 2.11.0 + */ +exports.fromReader = exports.rightReader; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = ET.match(R.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Reader`). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchE = ET.matchE(R.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchEW = exports.matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +exports.getOrElse = +/*#__PURE__*/ ET.getOrElse(R.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +exports.getOrElseW = exports.getOrElse; +/** + * @category conversions + * @since 2.10.0 + */ +exports.toUnion = ET.toUnion(R.Functor); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +exports.local = R.local; +/** + * Less strict version of [`asksReaderEither`](#asksreadereither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReaderEitherW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReaderEither = exports.asksReaderEitherW; +/** + * @category error handling + * @since 2.0.0 + */ +exports.orElse = ET.orElse(R.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +exports.orElseW = exports.orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +exports.tapError = (0, function_1.dual)(2, ET.tapError(R.Monad)); +/** + * @category error handling + * @since 2.11.0 + */ +exports.orLeft = ET.orLeft(R.Monad); +/** + * @category error handling + * @since 2.16.6 + */ +exports.orLeftW = exports.orLeft; +/** + * @since 2.0.0 + */ +exports.swap = ET.swap(R.Functor); +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +exports.map = +/*#__PURE__*/ ET.map(R.Functor); +/** + * Returns a `ReaderEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.right(1), f, g)({}), Either.right(2)) + * assert.deepStrictEqual(ReaderEither.mapBoth(ReaderEither.left('err'), f, g)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +exports.mapBoth = (0, function_1.dual)(3, ET.mapBoth(R.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +exports.bimap = exports.mapBoth; +/** + * Returns a `ReaderEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderEither from 'fp-ts/ReaderEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.right(1), f)({}), Either.right(1)) + * assert.deepStrictEqual(ReaderEither.mapError(ReaderEither.left('err'), f)({}), Either.left(new Error('err'))) + * + * @category error handling + * @since 2.16.0 + */ +exports.mapError = (0, function_1.dual)(2, ET.mapError(R.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +exports.mapLeft = exports.mapError; +/** + * @since 2.0.0 + */ +exports.ap = ET.ap(R.Apply); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +exports.apW = exports.ap; +/** + * @category constructors + * @since 2.8.5 + */ +exports.of = exports.right; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, ET.flatMap(R.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = +/*#__PURE__*/ ET.alt(R.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +exports.altW = exports.alt; +/** + * @since 2.7.0 + */ +exports.throwError = exports.left; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'ReaderEither'; +/** + * @category filtering + * @since 2.10.0 + */ +var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: exports.URI, + _E: undefined, + compact: (0, Compactable_1.compact)(R.Functor, C), + separate: (0, Compactable_1.separate)(R.Functor, C, E.Functor) + }; +}; +exports.getCompactable = getCompactable; +/** + * @category filtering + * @since 2.10.0 + */ +function getFilterable(M) { + var F = E.getFilterable(M); + var C = (0, exports.getCompactable)(M); + var filter = (0, Filterable_1.filter)(R.Functor, F); + var filterMap = (0, Filterable_1.filterMap)(R.Functor, F); + var partition = (0, Filterable_1.partition)(R.Functor, F); + var partitionMap = (0, Filterable_1.partitionMap)(R.Functor, F); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return (0, function_1.pipe)(fa, filter(predicate)); }, + filterMap: function (fa, f) { return (0, function_1.pipe)(fa, filterMap(f)); }, + partition: function (fa, predicate) { return (0, function_1.pipe)(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return (0, function_1.pipe)(fa, partitionMap(f)); } + }; +} +/** + * The default [`Applicative`](#applicative) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getApplicativeReaderValidation(S) { + var ap = (0, Apply_1.ap)(R.Apply, E.getApplicativeValidation(S)); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, ap(fa)); }, + of: exports.of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getAltReaderValidation(S) { + var alt = ET.altValidation(R.Monad, S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return (0, function_1.pipe)(fa, alt(that)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Right` value of this `ReaderEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Right` value of this `ReaderEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Less strict version of [`apFirst`](#apfirst) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * Less strict version of [`apSecond`](#apsecond) + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromReader = { + URI: exports.URI, + fromReader: exports.fromReader +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RE from 'fp-ts/ReaderEither' + * + * const checkString = (value: string) => pipe( + * RE.ask<number>(), + * RE.tapEither( + * (minLength) => value.length > minLength + * ? E.right('ok') + * : E.left('error') + * ) + * ) + * + * assert.deepStrictEqual(checkString('')(1), E.left('error')) + * assert.deepStrictEqual(checkString('fp-ts')(2), E.right(2)) + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReader = (0, function_1.dual)(2, (0, FromReader_1.tapReader)(exports.FromReader, exports.Chain)); +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +exports.ask = (0, FromReader_1.ask)(exports.FromReader); +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +exports.asks = (0, FromReader_1.asks)(exports.FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromReaderK = (0, FromReader_1.fromReaderK)(exports.FromReader); +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderK = exports.tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderKW = exports.tapReader; +/** + * @category instances + * @since 2.7.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + throwError: exports.throwError +}; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.fromOptionK = (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainOptionK = +/*#__PURE__*/ (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +exports.chainOptionKW = exports.chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: exports.FromEither.fromEither +}; +/** @internal */ +var _FromReader = { + fromReader: exports.FromReader.fromReader +}; +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftNullable = _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftOption = _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapEither = _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReader = _.flatMapReader(_FromReader, _FlatMap); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainEitherK = exports.flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainEitherKW = exports.flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherKW = exports.tapEither; +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderK = exports.flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderKW = exports.flatMapReader; +/** + * @category lifting + * @since 2.0.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +exports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +exports.filterOrElseW = exports.filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(E.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +exports.chainFirstW = exports.tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirst = exports.tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirstW = exports.tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RE.Functor` instead of `RE.readerEither` + * (where `R` is from `import R from 'fp-ts/ReaderEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.readerEither = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + alt: _alt, + throwError: exports.left +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplySemigroup = +/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.Apply); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplyMonoid = +/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.Applicative); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getSemigroup = function (S) { + return (0, Apply_1.getApplySemigroup)(R.Apply)(E.getSemigroup(S)); +}; +exports.getSemigroup = getSemigroup; +/** + * Use [`getApplicativeReaderValidation`](#getapplicativereadervalidation) and [`getAltReaderValidation`](#getaltreadervalidation) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +function getReaderValidation(SE) { + var applicativeReaderValidation = getApplicativeReaderValidation(SE); + var altReaderValidation = getAltReaderValidation(SE); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: applicativeReaderValidation.ap, + of: exports.of, + chain: exports.flatMap, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + alt: altReaderValidation.alt, + throwError: exports.throwError + }; +} diff --git a/node_modules/fp-ts/lib/ReaderIO.d.ts b/node_modules/fp-ts/lib/ReaderIO.d.ts new file mode 100644 index 0000000..48f2a74 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderIO.d.ts @@ -0,0 +1,499 @@ +/** + * @since 2.13.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import * as chainable from './Chain' +import { FromIO2 } from './FromIO' +import { FromReader2 } from './FromReader' +import { Functor2 } from './Functor' +import * as I from './IO' +import { IO } from './IO' +import { Monad2 } from './Monad' +import { MonadIO2 } from './MonadIO' +import { Pointed2 } from './Pointed' +import * as R from './Reader' +import { Reader } from './Reader' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +/** + * @category model + * @since 2.13.0 + */ +export interface ReaderIO<R, A> { + (r: R): I.IO<A> +} +/** + * @category conversions + * @since 2.13.0 + */ +export declare const fromReader: <R, A>(fa: Reader<R, A>) => ReaderIO<R, A> +/** + * @category conversions + * @since 2.13.0 + */ +export declare const fromIO: <A, R = unknown>(fa: IO<A>) => ReaderIO<R, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.13.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <A>(ma: ReaderIO<R1, A>) => ReaderIO<R2, A> +/** + * Less strict version of [`asksReaderIO`](#asksreaderio). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.13.0 + */ +export declare const asksReaderIOW: <R1, R2, A>(f: (r1: R1) => ReaderIO<R2, A>) => ReaderIO<R1 & R2, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.13.0 + */ +export declare const asksReaderIO: <R, A>(f: (r: R) => ReaderIO<R, A>) => ReaderIO<R, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.13.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R>(fa: ReaderIO<R, A>) => ReaderIO<R, B> +/** + * @since 2.13.0 + */ +export declare const ap: <R, A>(fa: ReaderIO<R, A>) => <B>(fab: ReaderIO<R, (a: A) => B>) => ReaderIO<R, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.13.0 + */ +export declare const apW: <R2, A>( + fa: ReaderIO<R2, A> +) => <R1, B>(fab: ReaderIO<R1, (a: A) => B>) => ReaderIO<R1 & R2, B> +/** + * @category constructors + * @since 2.13.0 + */ +export declare const of: <R = unknown, A = never>(a: A) => ReaderIO<R, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, B>(f: (a: A) => ReaderIO<R2, B>): <R1>(ma: ReaderIO<R1, A>) => ReaderIO<R1 & R2, B> + <R1, A, R2, B>(ma: ReaderIO<R1, A>, f: (a: A) => ReaderIO<R2, B>): ReaderIO<R1 & R2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.13.0 + */ +export declare const flattenW: <R1, R2, A>(mma: ReaderIO<R1, ReaderIO<R2, A>>) => ReaderIO<R1 & R2, A> +/** + * @category sequencing + * @since 2.13.0 + */ +export declare const flatten: <R, A>(mma: ReaderIO<R, ReaderIO<R, A>>) => ReaderIO<R, A> +/** + * @category type lambdas + * @since 2.13.0 + */ +export declare const URI = 'ReaderIO' +/** + * @category type lambdas + * @since 2.13.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: ReaderIO<E, A> + } +} +/** + * @category instances + * @since 2.13.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, _>(self: ReaderIO<R, _>) => ReaderIO<R, A> + <R, _, A>(self: ReaderIO<R, _>, a: A): ReaderIO<R, A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, _>(self: ReaderIO<R, _>) => ReaderIO<R, void> +/** + * @category mapping + * @since 2.13.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'ReaderIO', E, (a: A) => B>) => import('./HKT').Kind2<'ReaderIO', E, B> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Apply: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.13.0 + */ +export declare const apFirst: <E, B>( + second: ReaderIO<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderIO', E, A>) => import('./HKT').Kind2<'ReaderIO', E, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.13.0 + */ +export declare const apSecond: <E, B>( + second: ReaderIO<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderIO', E, A>) => import('./HKT').Kind2<'ReaderIO', E, B> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category instances + * @since 2.13.0 + */ +export declare const FromReader: FromReader2<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <R>(self: ReaderIO<R, A>) => ReaderIO<R, B> + <R, A, B>(self: ReaderIO<R, A>, f: (a: A) => IO<B>): ReaderIO<R, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R1 & R2, B> + <R1, A, R2, B>(self: ReaderIO<R1, A>, f: (a: A) => Reader<R2, B>): ReaderIO<R1 & R2, B> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, A, R2, _>(self: ReaderIO<R1, A>, f: (a: A) => ReaderIO<R2, _>): ReaderIO<R1 & R2, A> + <A, R2, _>(f: (a: A) => ReaderIO<R2, _>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R2 & R1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RIO from 'fp-ts/ReaderIO' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RIO.ask<string>(), + * RIO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <R>(self: ReaderIO<R, A>) => ReaderIO<R, A> + <R, A, _>(self: ReaderIO<R, A>, f: (a: A) => IO<_>): ReaderIO<R, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <R2, A, _>(f: (a: A) => Reader<R2, _>): <R1>(self: ReaderIO<R1, A>) => ReaderIO<R1 & R2, A> + <R1, A, R2, _>(self: ReaderIO<R1, A>, f: (a: A) => Reader<R2, _>): ReaderIO<R1 & R2, A> +} +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => I.IO<B> +) => <R = unknown>(...a: A) => ReaderIO<R, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: ReaderIO<E, A>) => ReaderIO<E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => I.IO<B>) => <E>(first: ReaderIO<E, A>) => ReaderIO<E, A> +/** + * Reads the current context. + * + * @category constructors + * @since 2.13.0 + */ +export declare const ask: <R>() => import('./HKT').Kind2<'ReaderIO', R, R> +/** + * Projects a value from the global context in a `ReaderIO`. + * + * @category constructors + * @since 2.13.0 + */ +export declare const asks: <R, A>(f: (r: R) => A) => import('./HKT').Kind2<'ReaderIO', R, A> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => R.Reader<R, B> +) => (...a: A) => ReaderIO<R, B> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderIO<R2, A>) => ReaderIO<R1 & R2, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderIO<R2, A>) => ReaderIO<R1 & R2, A> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const Do: ReaderIO<unknown, {}> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'ReaderIO', E, A> +) => import('./HKT').Kind2<'ReaderIO', E, { readonly [K in N]: A }> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'ReaderIO', E, B> +) => ( + ma: import('./HKT').Kind2<'ReaderIO', E, A> +) => import('./HKT').Kind2<'ReaderIO', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +export declare const bindW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderIO<R2, B> +) => <R1>(fa: ReaderIO<R1, A>) => ReaderIO< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.13.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderIO<E, B> +) => ( + fa: import('./HKT').Kind2<'ReaderIO', E, A> +) => import('./HKT').Kind2<'ReaderIO', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +export declare const apSW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + fb: ReaderIO<R2, B> +) => <R1>(fa: ReaderIO<R1, A>) => ReaderIO< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.13.0 + */ +export declare const ApT: ReaderIO<unknown, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderIO<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderIO<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderIO<R, B> +) => (as: ReadonlyArray<A>) => ReaderIO<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderIO<R, B> +) => (as: ReadonlyArray<A>) => ReaderIO<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const traverseArray: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => (as: ReadonlyArray<A>) => ReaderIO<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +export declare const sequenceArray: <R, A>(arr: ReadonlyArray<ReaderIO<R, A>>) => ReaderIO<R, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chain: <A, R, B>(f: (a: A) => ReaderIO<R, B>) => (ma: ReaderIO<R, A>) => ReaderIO<R, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderIO<R1, A>) => ReaderIO<R1 & R2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirst: <A, R, B>(f: (a: A) => ReaderIO<R, B>) => (first: ReaderIO<R, A>) => ReaderIO<R, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderIO<R1, A>) => ReaderIO<R1 & R2, A> diff --git a/node_modules/fp-ts/lib/ReaderIO.js b/node_modules/fp-ts/lib/ReaderIO.js new file mode 100644 index 0000000..4d11413 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderIO.js @@ -0,0 +1,502 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.chainFirstReaderKW = exports.chainFirstReaderK = exports.chainReaderKW = exports.chainReaderK = exports.fromReaderK = exports.asks = exports.ask = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.tapReader = exports.tapIO = exports.tap = exports.flatMapReader = exports.flatMapIO = exports.FromReader = exports.FromIO = exports.MonadIO = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.flatten = exports.flattenW = exports.flatMap = exports.of = exports.apW = exports.ap = exports.map = exports.asksReaderIO = exports.asksReaderIOW = exports.local = exports.fromIO = exports.fromReader = void 0; +exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = void 0; +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var FromIO_1 = require("./FromIO"); +var FromReader_1 = require("./FromReader"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var I = __importStar(require("./IO")); +var R = __importStar(require("./Reader")); +var RT = __importStar(require("./ReaderT")); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.13.0 + */ +exports.fromReader = RT.fromReader(I.Pointed); +/** + * @category conversions + * @since 2.13.0 + */ +exports.fromIO = R.of; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.13.0 + */ +exports.local = R.local; +/** + * Less strict version of [`asksReaderIO`](#asksreaderio). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.13.0 + */ +exports.asksReaderIOW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.13.0 + */ +exports.asksReaderIO = exports.asksReaderIOW; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.13.0 + */ +exports.map = RT.map(I.Functor); +/** + * @since 2.13.0 + */ +exports.ap = +/*#__PURE__*/ RT.ap(I.Apply); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.13.0 + */ +exports.apW = exports.ap; +/** + * @category constructors + * @since 2.13.0 + */ +exports.of = RT.of(I.Pointed); +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, RT.flatMap(I.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.13.0 + */ +exports.flattenW = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.13.0 + */ +exports.flatten = exports.flattenW; +/** + * @category type lambdas + * @since 2.13.0 + */ +exports.URI = 'ReaderIO'; +/** + * @category instances + * @since 2.13.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.13.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.13.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.13.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.13.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.13.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.13.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.13.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.13.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.13.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.13.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.13.0 + */ +exports.FromReader = { + URI: exports.URI, + fromReader: exports.fromReader +}; +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: exports.FromIO.fromIO +}; +/** @internal */ +var _FromReader = { + fromReader: exports.fromReader +}; +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReader = _.flatMapReader(_FromReader, _FlatMap); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RIO from 'fp-ts/ReaderIO' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RIO.ask<string>(), + * RIO.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReader = (0, function_1.dual)(2, (0, FromReader_1.tapReader)(exports.FromReader, exports.Chain)); +/** + * @category lifting + * @since 2.13.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * Reads the current context. + * + * @category constructors + * @since 2.13.0 + */ +exports.ask = (0, FromReader_1.ask)(exports.FromReader); +/** + * Projects a value from the global context in a `ReaderIO`. + * + * @category constructors + * @since 2.13.0 + */ +exports.asks = (0, FromReader_1.asks)(exports.FromReader); +/** + * @category lifting + * @since 2.13.0 + */ +exports.fromReaderK = (0, FromReader_1.fromReaderK)(exports.FromReader); +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainReaderK = exports.flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainReaderKW = exports.flatMapReader; +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstReaderK = exports.tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstReaderKW = exports.tapReader; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.13.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.13.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +/** + * @category do notation + * @since 2.13.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.13.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.13.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.13.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(I.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.13.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstW = exports.tap; diff --git a/node_modules/fp-ts/lib/ReaderT.d.ts b/node_modules/fp-ts/lib/ReaderT.d.ts new file mode 100644 index 0000000..ff0e058 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderT.d.ts @@ -0,0 +1,298 @@ +/** + * The reader monad transformer, which adds a read-only environment to the given monad. + * + * The `of` function ignores the environment, while `chain` passes the inherited environment to both subcomputations. + * + * @since 2.0.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3 } from './Monad' +import { + NaturalTransformation, + NaturalTransformation11, + NaturalTransformation12, + NaturalTransformation22, + NaturalTransformation23R, + NaturalTransformation24S +} from './NaturalTransformation' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +import { Reader } from './Reader' +/** + * @since 2.10.0 + */ +export declare function of<F extends URIS4>( + F: Pointed4<F> +): <A, R, S, FR, FE>(a: A) => Reader<R, Kind4<F, S, FR, FE, A>> +export declare function of<F extends URIS3>(F: Pointed3<F>): <A, R, FR, FE>(a: A) => Reader<R, Kind3<F, FR, FE, A>> +export declare function of<F extends URIS3, FE>(F: Pointed3C<F, FE>): <A, R, FR>(a: A) => Reader<R, Kind3<F, FR, FE, A>> +export declare function of<F extends URIS2>(F: Pointed2<F>): <A, R, FE>(a: A) => Reader<R, Kind2<F, FE, A>> +export declare function of<F extends URIS2, FE>(F: Pointed2C<F, FE>): <A, R>(a: A) => Reader<R, Kind2<F, FE, A>> +export declare function of<F extends URIS>(F: Pointed1<F>): <A, R>(a: A) => Reader<R, Kind<F, A>> +export declare function of<F>(F: Pointed<F>): <A, R>(a: A) => Reader<R, HKT<F, A>> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS4>( + F: Functor4<F> +): <A, B>(f: (a: A) => B) => <R, S, FR, FE>(fa: Reader<R, Kind4<F, S, FR, FE, A>>) => Reader<R, Kind4<F, S, FR, FE, B>> +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, FR, FE>(fa: Reader<R, Kind3<F, FR, FE, A>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function map<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <A, B>(f: (a: A) => B) => <R, FR>(fa: Reader<R, Kind3<F, FR, FE, A>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <R, FE>(fa: Reader<R, Kind2<F, FE, A>>) => Reader<R, Kind2<F, FE, B>> +export declare function map<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, Kind2<F, FE, A>>) => Reader<R, Kind2<F, FE, B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, Kind<F, A>>) => Reader<R, Kind<F, B>> +export declare function map<F>( + F: Functor<F> +): <A, B>(f: (a: A) => B) => <R>(fa: Reader<R, HKT<F, A>>) => Reader<R, HKT<F, B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS4>( + F: Apply4<F> +): <R, S, FR, FE, A>( + fa: Reader<R, Kind4<F, S, FR, FE, A>> +) => <B>(fab: Reader<R, Kind4<F, S, FR, FE, (a: A) => B>>) => Reader<R, Kind4<F, S, FR, FE, B>> +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, FR, FE, A>( + fa: Reader<R, Kind3<F, FR, FE, A>> +) => <B>(fab: Reader<R, Kind3<F, FR, FE, (a: A) => B>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function ap<F extends URIS3, FE>( + F: Apply3C<F, FE> +): <R, FR, A>( + fa: Reader<R, Kind3<F, FR, FE, A>> +) => <B>(fab: Reader<R, Kind3<F, FR, FE, (a: A) => B>>) => Reader<R, Kind3<F, FR, FE, B>> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <R, FE, A>( + fa: Reader<R, Kind2<F, FE, A>> +) => <B>(fab: Reader<R, Kind2<F, FE, (a: A) => B>>) => Reader<R, Kind2<F, FE, B>> +export declare function ap<F extends URIS2, FE>( + F: Apply2C<F, FE> +): <R, A>( + fa: Reader<R, Kind2<F, FE, A>> +) => <B>(fab: Reader<R, Kind2<F, FE, (a: A) => B>>) => Reader<R, Kind2<F, FE, B>> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <R, A>(fa: Reader<R, Kind<F, A>>) => <B>(fab: Reader<R, Kind<F, (a: A) => B>>) => Reader<R, Kind<F, B>> +export declare function ap<F>( + F: Apply<F> +): <R, A>(fa: Reader<R, HKT<F, A>>) => <B>(fab: Reader<R, HKT<F, (a: A) => B>>) => Reader<R, HKT<F, B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS4>( + M: Chain4<M> +): <A, R, S, FR, FE, B>( + f: (a: A) => Reader<R, Kind4<M, S, FR, FE, B>> +) => (ma: Reader<R, Kind4<M, S, FR, FE, A>>) => Reader<R, Kind4<M, S, FR, FE, B>> +export declare function chain<M extends URIS3>( + M: Chain3<M> +): <A, R, FR, FE, B>( + f: (a: A) => Reader<R, Kind3<M, FR, FE, B>> +) => (ma: Reader<R, Kind3<M, FR, FE, A>>) => Reader<R, Kind3<M, FR, FE, B>> +export declare function chain<M extends URIS3, FE>( + M: Chain3C<M, FE> +): <A, R, FR, B>( + f: (a: A) => Reader<R, Kind3<M, FR, FE, B>> +) => (ma: Reader<R, Kind3<M, FR, FE, A>>) => Reader<R, Kind3<M, FR, FE, B>> +export declare function chain<M extends URIS2>( + M: Chain2<M> +): <A, R, FE, B>( + f: (a: A) => Reader<R, Kind2<M, FE, B>> +) => (ma: Reader<R, Kind2<M, FE, A>>) => Reader<R, Kind2<M, FE, B>> +export declare function chain<M extends URIS2, FE>( + M: Chain2C<M, FE> +): <A, R, B>(f: (a: A) => Reader<R, Kind2<M, FE, B>>) => (ma: Reader<R, Kind2<M, FE, A>>) => Reader<R, Kind2<M, FE, B>> +export declare function chain<M extends URIS>( + M: Chain1<M> +): <A, R, B>(f: (a: A) => Reader<R, Kind<M, B>>) => (ma: Reader<R, Kind<M, A>>) => Reader<R, Kind<M, B>> +export declare function chain<M>( + M: Chain<M> +): <A, R, B>(f: (a: A) => Reader<R, HKT<M, B>>) => (ma: Reader<R, HKT<M, A>>) => Reader<R, HKT<M, B>> +/** + * @since 2.10.0 + */ +export declare function fromReader<F extends URIS4>( + F: Pointed4<F> +): <R, A, S, FR, FE>(ma: Reader<R, A>) => Reader<R, Kind4<F, S, FR, FE, A>> +export declare function fromReader<F extends URIS3>( + F: Pointed3<F> +): <R, A, FR, FE>(ma: Reader<R, A>) => Reader<R, Kind3<F, FR, FE, A>> +export declare function fromReader<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <R, A, FR>(ma: Reader<R, A>) => Reader<R, Kind3<F, FR, FE, A>> +export declare function fromReader<F extends URIS2>( + F: Pointed2<F> +): <R, A, FE>(ma: Reader<R, A>) => Reader<R, Kind2<F, FE, A>> +export declare function fromReader<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <R, A>(ma: Reader<R, A>) => Reader<R, Kind2<F, FE, A>> +export declare function fromReader<F extends URIS>(F: Pointed1<F>): <R, A>(ma: Reader<R, A>) => Reader<R, Kind<F, A>> +export declare function fromReader<F>(F: Pointed<F>): <R, A>(ma: Reader<R, A>) => Reader<R, HKT<F, A>> +/** + * @category constructors + * @since 2.11.0 + */ +export declare function fromNaturalTransformation<F extends URIS2, G extends URIS4>( + nt: NaturalTransformation24S<F, G> +): <R, S, A, E>(f: (r: R) => Kind2<F, S, A>) => Reader<R, Kind4<G, S, R, E, A>> +export declare function fromNaturalTransformation<F extends URIS2, G extends URIS3>( + nt: NaturalTransformation23R<F, G> +): <R, A, E>(f: (r: R) => Kind2<F, R, A>) => Reader<R, Kind3<G, R, E, A>> +export declare function fromNaturalTransformation<F extends URIS2, G extends URIS2>( + nt: NaturalTransformation22<F, G> +): <R, E, A>(f: (r: R) => Kind2<F, E, A>) => Reader<R, Kind2<G, E, A>> +export declare function fromNaturalTransformation<F extends URIS, G extends URIS2>( + nt: NaturalTransformation12<F, G> +): <R, A, E>(f: (r: R) => Kind<F, A>) => Reader<R, Kind2<G, E, A>> +export declare function fromNaturalTransformation<F extends URIS, G extends URIS>( + nt: NaturalTransformation11<F, G> +): <R, A>(f: (r: R) => Kind<F, A>) => Reader<R, Kind<G, A>> +export declare function fromNaturalTransformation<F, G>( + nt: NaturalTransformation<F, G> +): <R, A>(f: (r: R) => HKT<F, A>) => Reader<R, HKT<G, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT<M, R, A> { + (r: R): HKT<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM<M> { + readonly map: <R, A, B>(ma: ReaderT<M, R, A>, f: (a: A) => B) => ReaderT<M, R, B> + readonly of: <R, A>(a: A) => ReaderT<M, R, A> + readonly ap: <R, A, B>(mab: ReaderT<M, R, (a: A) => B>, ma: ReaderT<M, R, A>) => ReaderT<M, R, B> + readonly chain: <R, A, B>(ma: ReaderT<M, R, A>, f: (a: A) => ReaderT<M, R, B>) => ReaderT<M, R, B> + readonly ask: <R>() => ReaderT<M, R, R> + readonly asks: <R, A>(f: (r: R) => A) => ReaderT<M, R, A> + readonly local: <R1, A, R2>(ma: ReaderT<M, R1, A>, f: (d: R2) => R1) => ReaderT<M, R2, A> + readonly fromReader: <R, A>(ma: Reader<R, A>) => ReaderT<M, R, A> + readonly fromM: <R, A>(ma: HKT<M, A>) => ReaderT<M, R, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT1<M extends URIS, R, A> { + (r: R): Kind<M, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM1<M extends URIS> { + readonly map: <R, A, B>(ma: ReaderT1<M, R, A>, f: (a: A) => B) => ReaderT1<M, R, B> + readonly of: <R, A>(a: A) => ReaderT1<M, R, A> + readonly ap: <R, A, B>(mab: ReaderT1<M, R, (a: A) => B>, ma: ReaderT1<M, R, A>) => ReaderT1<M, R, B> + readonly chain: <R, A, B>(ma: ReaderT1<M, R, A>, f: (a: A) => ReaderT1<M, R, B>) => ReaderT1<M, R, B> + readonly ask: <R>() => ReaderT1<M, R, R> + readonly asks: <R, A>(f: (r: R) => A) => ReaderT1<M, R, A> + readonly local: <R1, A, R2>(ma: ReaderT1<M, R1, A>, f: (d: R2) => R1) => ReaderT1<M, R2, A> + readonly fromReader: <R, A>(ma: Reader<R, A>) => ReaderT1<M, R, A> + readonly fromM: <R, A>(ma: Kind<M, A>) => ReaderT1<M, R, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT2<M extends URIS2, R, E, A> { + (r: R): Kind2<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM2<M extends URIS2> { + readonly map: <R, E, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => B) => ReaderT2<M, R, E, B> + readonly of: <R, E, A>(a: A) => ReaderT2<M, R, E, A> + readonly ap: <R, E, A, B>(mab: ReaderT2<M, R, E, (a: A) => B>, ma: ReaderT2<M, R, E, A>) => ReaderT2<M, R, E, B> + readonly chain: <R, E, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => ReaderT2<M, R, E, B>) => ReaderT2<M, R, E, B> + readonly ask: <R, E>() => ReaderT2<M, R, E, R> + readonly asks: <R, E, A>(f: (r: R) => A) => ReaderT2<M, R, E, A> + readonly local: <R1, E, A, R2>(ma: ReaderT2<M, R1, E, A>, f: (d: R2) => R1) => ReaderT2<M, R2, E, A> + readonly fromReader: <R, E, A>(ma: Reader<R, A>) => ReaderT2<M, R, E, A> + readonly fromM: <R, E, A>(ma: Kind2<M, E, A>) => ReaderT2<M, R, E, A> +} +/** + * @category zone of death + * @since 2.2.0 + * @deprecated + */ +export interface ReaderM2C<M extends URIS2, E> { + readonly map: <R, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => B) => ReaderT2<M, R, E, B> + readonly of: <R, A>(a: A) => ReaderT2<M, R, E, A> + readonly ap: <R, A, B>(mab: ReaderT2<M, R, E, (a: A) => B>, ma: ReaderT2<M, R, E, A>) => ReaderT2<M, R, E, B> + readonly chain: <R, A, B>(ma: ReaderT2<M, R, E, A>, f: (a: A) => ReaderT2<M, R, E, B>) => ReaderT2<M, R, E, B> + readonly ask: <R>() => ReaderT2<M, R, E, R> + readonly asks: <R, A>(f: (r: R) => A) => ReaderT2<M, R, E, A> + readonly local: <R1, A, R2>(ma: ReaderT2<M, R1, E, A>, f: (d: R2) => R1) => ReaderT2<M, R2, E, A> + readonly fromReader: <R, A>(ma: Reader<R, A>) => ReaderT2<M, R, E, A> + readonly fromM: <R, A>(ma: Kind2<M, E, A>) => ReaderT2<M, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderT3<M extends URIS3, R, U, E, A> { + (r: R): Kind3<M, U, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ReaderM3<M extends URIS3> { + readonly map: <R, U, E, A, B>(ma: ReaderT3<M, R, U, E, A>, f: (a: A) => B) => ReaderT3<M, R, U, E, B> + readonly of: <R, U, E, A>(a: A) => ReaderT3<M, R, U, E, A> + readonly ap: <R, U, E, A, B>( + mab: ReaderT3<M, R, U, E, (a: A) => B>, + ma: ReaderT3<M, R, U, E, A> + ) => ReaderT3<M, R, U, E, B> + readonly chain: <R, U, E, A, B>( + ma: ReaderT3<M, R, U, E, A>, + f: (a: A) => ReaderT3<M, R, U, E, B> + ) => ReaderT3<M, R, U, E, B> + readonly ask: <R, U, E>() => ReaderT3<M, R, U, E, R> + readonly asks: <R, U, E, A>(f: (r: R) => A) => ReaderT3<M, R, U, E, A> + readonly local: <R1, U, E, A, R2>(ma: ReaderT3<M, R1, U, E, A>, f: (d: R2) => R1) => ReaderT3<M, R2, U, E, A> + readonly fromReader: <R, U, E, A>(ma: Reader<R, A>) => ReaderT3<M, R, U, E, A> + readonly fromM: <R, U, E, A>(ma: Kind3<M, U, E, A>) => ReaderT3<M, R, U, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getReaderM<M extends URIS3>(M: Monad3<M>): ReaderM3<M> +/** @deprecated */ +export declare function getReaderM<M extends URIS2>(M: Monad2<M>): ReaderM2<M> +/** @deprecated */ +export declare function getReaderM<M extends URIS2, E>(M: Monad2C<M, E>): ReaderM2C<M, E> +/** @deprecated */ +export declare function getReaderM<M extends URIS>(M: Monad1<M>): ReaderM1<M> +/** @deprecated */ +export declare function getReaderM<M>(M: Monad<M>): ReaderM<M> diff --git a/node_modules/fp-ts/lib/ReaderT.js b/node_modules/fp-ts/lib/ReaderT.js new file mode 100644 index 0000000..a9a2d1f --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderT.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.of = of; +exports.map = map; +exports.ap = ap; +exports.chain = chain; +exports.flatMap = flatMap; +exports.fromReader = fromReader; +exports.fromNaturalTransformation = fromNaturalTransformation; +exports.getReaderM = getReaderM; +var function_1 = require("./function"); +function of(F) { + return function (a) { return function () { return F.of(a); }; }; +} +function map(F) { + return function (f) { return function (fa) { return function (r) { return F.map(fa(r), f); }; }; }; +} +function ap(F) { + return function (fa) { return function (fab) { return function (r) { return F.ap(fab(r), fa(r)); }; }; }; +} +function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +function flatMap(M) { + return function (ma, f) { return function (r) { return M.chain(ma(r), function (a) { return f(a)(r); }); }; }; +} +function fromReader(F) { + return function (ma) { return (0, function_1.flow)(ma, F.of); }; +} +function fromNaturalTransformation(nt) { + return function (f) { return (0, function_1.flow)(f, nt); }; +} +/** @deprecated */ +/* istanbul ignore next */ +function getReaderM(M) { + var _ap = ap(M); + var _map = map(M); + var _chain = chain(M); + return { + map: function (fa, f) { return (0, function_1.pipe)(fa, _map(f)); }, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, _ap(fa)); }, + of: of(M), + chain: function (ma, f) { return (0, function_1.pipe)(ma, _chain(f)); }, + ask: function () { return M.of; }, + asks: function (f) { return (0, function_1.flow)(f, M.of); }, + local: function (ma, f) { return function (q) { return ma(f(q)); }; }, + fromReader: fromReader(M), + fromM: function (ma) { return function () { return ma; }; } + }; +} diff --git a/node_modules/fp-ts/lib/ReaderTask.d.ts b/node_modules/fp-ts/lib/ReaderTask.d.ts new file mode 100644 index 0000000..decd532 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderTask.d.ts @@ -0,0 +1,787 @@ +/** + * @since 2.3.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import * as chainable from './Chain' +import { FromIO2 } from './FromIO' +import { FromReader2 } from './FromReader' +import { FromTask2 } from './FromTask' +import { Functor2 } from './Functor' +import { IO } from './IO' +import { Monad2 } from './Monad' +import { MonadIO2 } from './MonadIO' +import { MonadTask2 } from './MonadTask' +import { Monoid } from './Monoid' +import { Pointed2 } from './Pointed' +import * as R from './Reader' +import * as RIO from './ReaderIO' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import ReaderIO = RIO.ReaderIO +import Task = T.Task +/** + * @category model + * @since 2.3.0 + */ +export interface ReaderTask<R, A> { + (r: R): Task<A> +} +/** + * @category conversions + * @since 2.3.0 + */ +export declare const fromReader: <R, A>(fa: R.Reader<R, A>) => ReaderTask<R, A> +/** + * @category conversions + * @since 2.3.0 + */ +export declare const fromTask: <A, R = unknown>(fa: Task<A>) => ReaderTask<R, A> +/** + * @category conversions + * @since 2.3.0 + */ +export declare const fromIO: <A, R = unknown>(fa: IO<A>) => ReaderTask<R, A> +/** + * @category conversions + * @since 2.13.0 + */ +export declare const fromReaderIO: <R, A>(fa: ReaderIO<R, A>) => ReaderTask<R, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.3.0 + */ +export declare const local: <R2, R1>(f: (r2: R2) => R1) => <A>(ma: ReaderTask<R1, A>) => ReaderTask<R2, A> +/** + * Less strict version of [`asksReaderTask`](#asksreadertask). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTaskW: <R1, R2, A>(f: (r1: R1) => ReaderTask<R2, A>) => ReaderTask<R1 & R2, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTask: <R, A>(f: (r: R) => ReaderTask<R, A>) => ReaderTask<R, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.3.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R>(fa: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * @since 2.3.0 + */ +export declare const ap: <R, A>(fa: ReaderTask<R, A>) => <B>(fab: ReaderTask<R, (a: A) => B>) => ReaderTask<R, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, A>( + fa: ReaderTask<R2, A> +) => <R1, B>(fab: ReaderTask<R1, (a: A) => B>) => ReaderTask<R1 & R2, B> +/** + * @category constructors + * @since 2.3.0 + */ +export declare const of: <R = unknown, A = never>(a: A) => ReaderTask<R, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, B>(f: (a: A) => ReaderTask<R2, B>): <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> + <R1, A, R2, B>(ma: ReaderTask<R1, A>, f: (a: A) => ReaderTask<R2, B>): ReaderTask<R1 & R2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, R2, A>(mma: ReaderTask<R1, ReaderTask<R2, A>>) => ReaderTask<R1 & R2, A> +/** + * @category sequencing + * @since 2.3.0 + */ +export declare const flatten: <R, A>(mma: ReaderTask<R, ReaderTask<R, A>>) => ReaderTask<R, A> +/** + * @category type lambdas + * @since 2.3.0 + */ +export declare const URI = 'ReaderTask' +/** + * @category type lambdas + * @since 2.3.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: ReaderTask<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, _>(self: ReaderTask<R, _>) => ReaderTask<R, A> + <R, _, A>(self: ReaderTask<R, _>, a: A): ReaderTask<R, A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, _>(self: ReaderTask<R, _>) => ReaderTask<R, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'ReaderTask', E, (a: A) => B>) => import('./HKT').Kind2<'ReaderTask', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.3.0 + */ +export declare const apFirst: <E, B>( + second: ReaderTask<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderTask', E, A>) => import('./HKT').Kind2<'ReaderTask', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +export declare const apFirstW: <R2, B>( + second: ReaderTask<R2, B> +) => <R1, A>(first: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.3.0 + */ +export declare const apSecond: <E, B>( + second: ReaderTask<E, B> +) => <A>(first: import('./HKT').Kind2<'ReaderTask', E, A>) => import('./HKT').Kind2<'ReaderTask', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +export declare const apSecondW: <R2, B>( + second: ReaderTask<R2, B> +) => <R1, A>(first: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask2<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader2<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, B> + <R, A, B>(self: ReaderTask<R, A>, f: (a: A) => IO<B>): ReaderTask<R, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, B> + <R, A, B>(self: ReaderTask<R, A>, f: (a: A) => Task<B>): ReaderTask<R, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => R.Reader<R2, B>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> + <R1, A, R2, B>(self: ReaderTask<R1, A>, f: (a: A) => R.Reader<R2, B>): ReaderTask<R1 & R2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderIO: { + <A, R2, B>(f: (a: A) => ReaderIO<R2, B>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> + <R1, A, R2, B>(self: ReaderTask<R1, A>, f: (a: A) => ReaderIO<R2, B>): ReaderTask<R1 & R2, B> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, A, R2, _>(self: ReaderTask<R1, A>, f: (a: A) => ReaderTask<R2, _>): ReaderTask<R1 & R2, A> + <A, R2, _>(f: (a: A) => ReaderTask<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R2 & R1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RT.ask<string>(), + * RT.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, A> + <R, A, _>(self: ReaderTask<R, A>, f: (a: A) => IO<_>): ReaderTask<R, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <R2, A, _>(f: (a: A) => R.Reader<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> + <R1, R2, A, _>(self: ReaderTask<R1, A>, f: (a: A) => R.Reader<R2, _>): ReaderTask<R1 & R2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as T from 'fp-ts/Task' + * + * const effect = pipe( + * RT.ask<number>(), + * RT.tapTask((value) => T.of(value + 1)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), 1) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <R>(self: ReaderTask<R, A>) => ReaderTask<R, A> + <R, A, _>(self: ReaderTask<R, A>, f: (a: A) => Task<_>): ReaderTask<R, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderIO: { + <R2, A, _>(f: (a: A) => ReaderIO<R2, _>): <R1>(self: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> + <R1, R2, A, _>(self: ReaderTask<R1, A>, f: (a: A) => ReaderIO<R2, _>): ReaderTask<R1 & R2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <R = unknown>(...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * Reads the current context. + * + * @category constructors + * @since 2.3.0 + */ +export declare const ask: <R>() => import('./HKT').Kind2<'ReaderTask', R, R> +/** + * Projects a value from the global context in a `ReaderTask`. + * + * @category constructors + * @since 2.3.0 + */ +export declare const asks: <R, A>(f: (r: R) => A) => import('./HKT').Kind2<'ReaderTask', R, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => R.Reader<R, B> +) => (...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>(f: (a: A) => R.Reader<R, B>) => (ma: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderTask<R2, A>) => ReaderTask<R1 & R2, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => R.Reader<R, B> +) => (ma: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2>(ma: ReaderTask<R2, A>) => ReaderTask<R1 & R2, A> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromReaderIOK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => ReaderIO<R, B> +) => (...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => (ma: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => (ma: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <R = unknown>(...a: A) => ReaderTask<R, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => <R>(first: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReaderTask<unknown, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'ReaderTask', E, B> +) => ( + ma: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderTask<R2, B> +) => <R1>(fa: ReaderTask<R1, A>) => ReaderTask< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderTask<E, B> +) => ( + fa: import('./HKT').Kind2<'ReaderTask', E, A> +) => import('./HKT').Kind2<'ReaderTask', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, B>( + name: Exclude<N, keyof A>, + fb: ReaderTask<R2, B> +) => <R1>(fa: ReaderTask<R1, A>) => ReaderTask< + R1 & R2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: ReaderTask<unknown, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTask<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTask<R, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, A, B>( + f: (a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, A>(arr: ReadonlyArray<ReaderTask<R, A>>) => ReaderTask<R, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArrayWithIndex: <R, A, B>( + f: (index: number, a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArray: <R, A, B>( + f: (a: A) => ReaderTask<R, B> +) => (as: ReadonlyArray<A>) => ReaderTask<R, ReadonlyArray<B>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.3.0 + */ +export declare const chain: <A, R, B>(f: (a: A) => ReaderTask<R, B>) => (ma: ReaderTask<R, A>) => ReaderTask<R, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.7 + */ +export declare const chainW: <R2, A, B>( + f: (a: A) => ReaderTask<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.3.0 + */ +export declare const chainFirst: <A, R, B>( + f: (a: A) => ReaderTask<R, B> +) => (first: ReaderTask<R, A>) => ReaderTask<R, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstW: <R2, A, B>( + f: (a: A) => ReaderTask<R2, B> +) => <R1>(ma: ReaderTask<R1, A>) => ReaderTask<R1 & R2, A> +/** + * Use `traverseReadonlyArrayWithIndexSeq` instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const sequenceSeqArray: <R, A>(arr: ReadonlyArray<ReaderTask<R, A>>) => ReaderTask<R, ReadonlyArray<A>> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTask` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const readerTask: MonadTask2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTaskSeq` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const readerTaskSeq: typeof readerTask +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const getSemigroup: <R, A>(S: Semigroup<A>) => Semigroup<ReaderTask<R, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +export declare const getMonoid: <R, A>(M: Monoid<A>) => Monoid<ReaderTask<R, A>> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare function run<R, A>(ma: ReaderTask<R, A>, r: R): Promise<A> diff --git a/node_modules/fp-ts/lib/ReaderTask.js b/node_modules/fp-ts/lib/ReaderTask.js new file mode 100644 index 0000000..f78c44b --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderTask.js @@ -0,0 +1,811 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromReaderK = exports.asks = exports.ask = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.tapReaderIO = exports.tapTask = exports.tapReader = exports.tapIO = exports.tap = exports.flatMapReaderIO = exports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.FromReader = exports.FromTask = exports.FromIO = exports.MonadTask = exports.MonadIO = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplySeq = exports.ApplicativePar = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.flatten = exports.flattenW = exports.flatMap = exports.of = exports.apW = exports.ap = exports.map = exports.asksReaderTask = exports.asksReaderTaskW = exports.local = exports.fromReaderIO = exports.fromIO = exports.fromTask = exports.fromReader = void 0; +exports.getMonoid = exports.getSemigroup = exports.readerTaskSeq = exports.readerTask = exports.sequenceSeqArray = exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = exports.chainFirstReaderIOK = exports.chainFirstReaderIOKW = exports.chainReaderIOK = exports.chainReaderIOKW = exports.fromReaderIOK = exports.chainFirstReaderKW = exports.chainFirstReaderK = exports.chainReaderKW = exports.chainReaderK = void 0; +exports.run = run; +/** + * @since 2.3.0 + */ +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var FromIO_1 = require("./FromIO"); +var FromReader_1 = require("./FromReader"); +var FromTask_1 = require("./FromTask"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var R = __importStar(require("./Reader")); +var RT = __importStar(require("./ReaderT")); +var T = __importStar(require("./Task")); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.3.0 + */ +exports.fromReader = RT.fromReader(T.Pointed); +/** + * @category conversions + * @since 2.3.0 + */ +exports.fromTask = R.of; +/** + * @category conversions + * @since 2.3.0 + */ +exports.fromIO = (0, function_1.flow)(T.fromIO, exports.fromTask); +/** + * @category conversions + * @since 2.13.0 + */ +exports.fromReaderIO = R.map(T.fromIO); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.3.0 + */ +exports.local = R.local; +/** + * Less strict version of [`asksReaderTask`](#asksreadertask). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReaderTaskW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReaderTask = exports.asksReaderTaskW; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _apPar = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.3.0 + */ +exports.map = RT.map(T.Functor); +/** + * @since 2.3.0 + */ +exports.ap = +/*#__PURE__*/ RT.ap(T.ApplyPar); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.8.0 + */ +exports.apW = exports.ap; +/** + * @category constructors + * @since 2.3.0 + */ +exports.of = RT.of(T.Pointed); +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, RT.flatMap(T.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.3.0 + */ +exports.flatten = exports.flattenW; +/** + * @category type lambdas + * @since 2.3.0 + */ +exports.URI = 'ReaderTask'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplyPar = { + URI: exports.URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.3.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.3.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @since 2.16.10 + */ +exports.apSecondW = exports.apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativePar = { + URI: exports.URI, + map: _map, + ap: _apPar, + of: exports.of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplySeq = { + URI: exports.URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativeSeq = { + URI: exports.URI, + map: _map, + ap: _apSeq, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadTask = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromReader = { + URI: exports.URI, + fromReader: exports.fromReader +}; +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: exports.FromIO.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: exports.fromTask +}; +/** @internal */ +var _FromReader = { + fromReader: exports.fromReader +}; +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTask = _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReader = _.flatMapReader(_FromReader, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReaderIO = (0, function_1.dual)(2, function (self, f) { + return (0, exports.flatMap)(self, (0, exports.fromReaderIOK)(f)); +}); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * RT.ask<string>(), + * RT.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReader = (0, function_1.dual)(2, (0, FromReader_1.tapReader)(exports.FromReader, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RT from 'fp-ts/ReaderTask' + * import * as T from 'fp-ts/Task' + * + * const effect = pipe( + * RT.ask<number>(), + * RT.tapTask((value) => T.of(value + 1)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), 1) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapTask = (0, function_1.dual)(2, (0, FromTask_1.tapTask)(exports.FromTask, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReaderIO = (0, function_1.dual)(2, function (self, f) { + return (0, exports.tap)(self, (0, exports.fromReaderIOK)(f)); +}); +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * Reads the current context. + * + * @category constructors + * @since 2.3.0 + */ +exports.ask = (0, FromReader_1.ask)(exports.FromReader); +/** + * Projects a value from the global context in a `ReaderTask`. + * + * @category constructors + * @since 2.3.0 + */ +exports.asks = (0, FromReader_1.asks)(exports.FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromReaderK = (0, FromReader_1.fromReaderK)(exports.FromReader); +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderK = exports.flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderKW = exports.flatMapReader; +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderK = exports.tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderKW = exports.tapReader; +/** + * @category lifting + * @since 2.13.0 + */ +var fromReaderIOK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.fromReaderIO)(f.apply(void 0, a)); + }; +}; +exports.fromReaderIOK = fromReaderIOK; +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +exports.chainReaderIOKW = exports.flatMapReaderIO; +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainReaderIOK = exports.flatMapReaderIO; +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstReaderIOKW = exports.tapReaderIO; +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstReaderIOK = exports.tapReaderIO; +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromTaskK = (0, FromTask_1.fromTaskK)(exports.FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainTaskK = exports.flatMapTask; +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstTaskK = exports.tapTask; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(T.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return (0, function_1.flow)(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(T.traverseReadonlyNonEmptyArrayWithIndexSeq(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +exports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +var traverseSeqArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); }; +exports.traverseSeqArray = traverseSeqArray; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.3.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.7 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.3.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstW = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `traverseReadonlyArrayWithIndexSeq` instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +exports.sequenceSeqArray = +/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity); +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTask` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +exports.readerTask = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readerTaskSeq` + * (where `RT` is from `import RT from 'fp-ts/ReaderTask'`) + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +exports.readerTaskSeq = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apSeq, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +exports.getSemigroup = +/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.3.0 + * @deprecated + */ +exports.getMonoid = +/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativeSeq); +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +/* istanbul ignore next */ +function run(ma, r) { + return ma(r)(); +} diff --git a/node_modules/fp-ts/lib/ReaderTaskEither.d.ts b/node_modules/fp-ts/lib/ReaderTaskEither.d.ts new file mode 100644 index 0000000..7da4256 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderTaskEither.d.ts @@ -0,0 +1,1773 @@ +/** + * @since 2.0.0 + */ +import { Alt3, Alt3C } from './Alt' +import { Applicative3, Applicative3C } from './Applicative' +import { Apply1, Apply3 } from './Apply' +import { Bifunctor3 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable3C } from './Compactable' +import * as E from './Either' +import { Filterable3C } from './Filterable' +import { FromEither3 } from './FromEither' +import { FromIO3 } from './FromIO' +import { FromReader3 } from './FromReader' +import { FromTask3 } from './FromTask' +import { LazyArg } from './function' +import { Functor3 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad3, Monad3C } from './Monad' +import { MonadIO3 } from './MonadIO' +import { MonadTask3, MonadTask3C } from './MonadTask' +import { MonadThrow3, MonadThrow3C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed3 } from './Pointed' +import { Predicate } from './Predicate' +import * as R from './Reader' +import { ReaderEither } from './ReaderEither' +import * as RIO from './ReaderIO' +import * as RT from './ReaderTask' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import * as TE from './TaskEither' +import Either = E.Either +import Task = T.Task +import TaskEither = TE.TaskEither +import Reader = R.Reader +import ReaderIO = RIO.ReaderIO +import ReaderTask = RT.ReaderTask +/** + * @category model + * @since 2.0.0 + */ +export interface ReaderTaskEither<R, E, A> { + (r: R): TaskEither<E, A> +} +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromTaskEither: <E, A, R = unknown>(fa: TaskEither<E, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <R, E = never, A = never>(e: E) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <R, E = never, A = never>(a: A) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightTask: <R, E = never, A = never>(ma: Task<A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftTask: <R, E = never, A = never>(me: Task<E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightReader: <R, E = never, A = never>(ma: Reader<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftReader: <R, E = never, A = never>(me: Reader<R, E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.5.0 + */ +export declare const rightReaderTask: <R, E = never, A = never>(ma: ReaderTask<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.5.0 + */ +export declare const leftReaderTask: <R, E = never, A = never>(me: ReaderTask<R, E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightIO: <R, E = never, A = never>(ma: IO<A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftIO: <R, E = never, A = never>(me: IO<E>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.13.0 + */ +export declare const rightReaderIO: <R, E = never, A = never>(ma: ReaderIO<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category constructors + * @since 2.13.0 + */ +export declare const leftReaderIO: <R, E = never, A = never>(me: ReaderIO<R, E>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A, R = unknown>(fa: Either<E, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromReader: <R, A, E = never>(fa: Reader<R, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIO: <A, R = unknown, E = never>(fa: IO<A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromTask: <A, R = unknown, E = never>(fa: Task<A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIOEither: <E, A, R = unknown>(fa: IOEither<E, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromReaderEither: <R, E, A>(fa: ReaderEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`ReaderTask`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <R, E, A, B>( + onLeft: (e: E) => ReaderTask<R, B>, + onRight: (a: A) => ReaderTask<R, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <R, E, A, B>( + onLeft: (e: E) => ReaderTask<R, B>, + onRight: (a: A) => ReaderTask<R, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => ReaderTask<R2, B>, + onRight: (a: A) => ReaderTask<R3, C> +) => <R1>(ma: ReaderTaskEither<R1, E, A>) => ReaderTask<R1 & R2 & R3, B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, R2, B, A, R3, C>( + onLeft: (e: E) => ReaderTask<R2, B>, + onRight: (a: A) => ReaderTask<R3, C> +) => <R1>(ma: ReaderTaskEither<R1, E, A>) => ReaderTask<R1 & R2 & R3, B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <R, E, A>( + onLeft: (e: E) => ReaderTask<R, A> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTask<R, A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <R2, E, B>( + onLeft: (e: E) => ReaderTask<R2, B> +) => <R1, A>(ma: ReaderTaskEither<R1, E, A>) => ReaderTask<R1 & R2, A | B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <R, E, A>(fa: ReaderTaskEither<R, E, A>) => ReaderTask<R, E | A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromNullable: <E>(e: E) => <R, A>(a: A) => ReaderTaskEither<R, E, NonNullable<A>> +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const fromNullableK: <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, NonNullable<B>> +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainNullableK: <E>( + e: E +) => <A, B>( + f: (a: A) => B | null | undefined +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, NonNullable<B>> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +export declare const local: <R2, R1>( + f: (r2: R2) => R1 +) => <E, A>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R2, E, A> +/** + * Less strict version of [`asksReaderTaskEither`](#asksreadertaskeither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTaskEitherW: <R1, R2, E, A>( + f: (r1: R1) => ReaderTaskEither<R2, E, A> +) => ReaderTaskEither<R1 & R2, E, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksReaderTaskEither: <R, E, A>( + f: (r: R) => ReaderTaskEither<R, E, A> +) => ReaderTaskEither<R, E, A> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <R, E1, A, E2>( + onLeft: (e: E1) => ReaderTaskEither<R, E2, A> +) => (ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, R1, E2, B>( + onLeft: (e: E1) => ReaderTaskEither<R1, E2, B> +) => <R2, A>(ma: ReaderTaskEither<R2, E1, A>) => ReaderTaskEither<R1 & R2, E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, R2, E2, _>(onLeft: (e: E1) => ReaderTaskEither<R2, E2, _>): <R1, A>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, A> + <R1, E1, A, R2, E2, _>( + self: ReaderTaskEither<R1, E1, A>, + onLeft: (e: E1) => ReaderTaskEither<R2, E2, _> + ): ReaderTaskEither<R1 & R2, E1 | E2, A> +} +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, R, E2>( + onLeft: (e: E1) => ReaderTask<R, E2> +) => <A>(fa: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E2, A> +/** + * @category error handling + * @since 2.16.6 + */ +export declare const orLeftW: <E1, R2, E2>( + onLeft: (e: E1) => ReaderTask<R2, E2> +) => <R1, A>(fa: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <R, E, A>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, A, E> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IOEither<E, B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromTaskEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => TaskEither<E, B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderEitherK: <R, E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => ReaderEither<R, E, B> +) => (...a: A) => ReaderTaskEither<R, E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <R, E>(fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Returns a `ReaderTaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.right(1), f, g)({})(), Either.right(2)) + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.left('err'), f, g)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): <R>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, B> + <R, E, A, G, B>(self: ReaderTaskEither<R, E, A>, f: (e: E) => G, g: (a: A) => B): ReaderTaskEither<R, G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, B> +/** + * Returns a `ReaderTaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.right(1), f)({})(), Either.right(1)) + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.left('err'), f)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <R, E, G>(f: (e: E) => G): <A>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, A> + <R, E, A, G>(self: ReaderTaskEither<R, E, A>, f: (e: E) => G): ReaderTaskEither<R, G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>( + f: (e: E) => G +) => <R, A>(fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <R, E, A>( + fa: ReaderTaskEither<R, E, A> +) => <B>(fab: ReaderTaskEither<R, E, (a: A) => B>) => ReaderTaskEither<R, E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <R2, E2, A>( + fa: ReaderTaskEither<R2, E2, A> +) => <R1, E1, B>(fab: ReaderTaskEither<R1, E1, (a: A) => B>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <R = unknown, E = never, A = never>(a: A) => ReaderTaskEither<R, E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, R2, E2, B>(f: (a: A) => ReaderTaskEither<R2, E2, B>): <R1, E1>( + ma: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, B> + <R1, E1, A, R2, E2, B>(ma: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderTaskEither<R2, E2, B>): ReaderTaskEither< + R1 & R2, + E1 | E2, + B + > +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <R1, E1, R2, E2, A>( + mma: ReaderTaskEither<R1, E1, ReaderTaskEither<R2, E2, A>> +) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <R, E, A>( + mma: ReaderTaskEither<R, E, ReaderTaskEither<R, E, A>> +) => ReaderTaskEither<R, E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <R, E, A>( + that: () => ReaderTaskEither<R, E, A> +) => (fa: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <R2, E2, B>( + that: () => ReaderTaskEither<R2, E2, B> +) => <R1, E1, A>(fa: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E2, A | B> +/** + * @since 2.0.0 + */ +export declare const throwError: MonadThrow3<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'ReaderTaskEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind3<R, E, A> { + readonly [URI]: ReaderTaskEither<R, E, A> + } +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable3C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable3C<URI, E> +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeReaderTaskValidation<E>(A: Apply1<T.URI>, S: Semigroup<E>): Applicative3C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltReaderTaskValidation<E>(S: Semigroup<E>): Alt3C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor3<URI> +/** + * Maps the `Right` value of this `ReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <R, E, _>(self: ReaderTaskEither<R, E, _>) => ReaderTaskEither<R, E, A> + <R, E, _, A>(self: ReaderTaskEither<R, E, _>, a: A): ReaderTaskEither<R, E, A> +} +/** + * Maps the `Right` value of this `ReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <R, E, _>(self: ReaderTaskEither<R, E, _>) => ReaderTaskEither<R, E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <R, E, B>( + fab: import('./HKT').Kind3<'ReaderTaskEither', R, E, (a: A) => B> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed3<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply3<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <R, E, B>( + second: ReaderTaskEither<R, E, B> +) => <A>( + first: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <R2, E2, B>( + second: ReaderTaskEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <R, E, B>( + second: ReaderTaskEither<R, E, B> +) => <A>( + first: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <R2, E2, B>( + second: ReaderTaskEither<R2, E2, B> +) => <R1, E1, A>(first: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative3<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply3<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadThrow: MonadThrow3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO3<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask3<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader3<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <R1, E1, A, R2, E2, _>(self: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderTaskEither<R2, E2, _>): ReaderTaskEither< + R1 & R2, + E1 | E2, + A + > + <A, R2, E2, _>(f: (a: A) => ReaderTaskEither<R2, E2, _>): <R1, E1>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RTE from 'fp-ts/ReaderTaskEither' + * + * const checkString = (value: string) => pipe( + * RTE.ask<number>(), + * RTE.tapEither((minLength) => value.length > minLength ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(2)(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(2)(), E.right(2)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <R, E1>(self: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, A> + <R, E1, A, E2, _>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => Either<E2, _>): ReaderTaskEither<R, E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = RTE.tapIO( + * RTE.ask<string>(), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), E.of('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> + <R, E, A, _>(self: ReaderTaskEither<R, E, A>, f: (a: A) => IO<_>): ReaderTaskEither<R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as T from 'fp-ts/Task' + * + * + * const effect = RTE.tapTask( + * RTE.ask<number>(), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> + <R, E, A, _>(self: ReaderTaskEither<R, E, A>, f: (a: A) => Task<_>): ReaderTaskEither<R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <A, R2, _>(f: (a: A) => Reader<R2, _>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> + <R1, E, A, R2, _>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => Reader<R2, _>): ReaderTaskEither<R1 & R2, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderEither: { + <A, R2, E2, _>(f: (a: A) => ReaderEither<R2, E2, _>): <R1, E1>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, A> + <R1, E1, A, R2, E2, _>(self: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, _>): ReaderTaskEither< + R1 & R2, + E1 | E2, + A + > +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTaskEither: { + <A, E2, _>(f: (a: A) => TaskEither<E2, _>): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, A> + <R, E1, A, E2, _>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => TaskEither<E2, _>): ReaderTaskEither<R, E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderTask: { + <A, R2, _>(f: (a: A) => ReaderTask<R2, _>): <R1, E>( + self: ReaderTaskEither<R1, E, A> + ) => ReaderTaskEither<R1 & R2, E, A> + <R1, E, A, R2, _>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderTask<R2, _>): ReaderTaskEither<R1 & R2, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReaderIO: { + <A, R2, _>(f: (a: A) => ReaderIO<R2, _>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> + <R1, E, A, R2, _>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderIO<R2, _>): ReaderTaskEither<R1 & R2, E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor3<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt3<URI> +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +export declare const ask: <R, E = never>() => ReaderTaskEither<R, E, R> +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +export declare const asks: <R, A, E = never>(f: (r: R) => A) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => Reader<R, B> +) => <E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => R.Reader<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2, E>(ma: ReaderTaskEither<R2, E, A>) => ReaderTaskEither<R1 & R2, E, A> +/** + * Alias of `tapReaderEither`. + * + * Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderEitherKW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * Alias of `tapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderEitherK: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapTaskEither`. + * + * Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstTaskEitherKW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, A> +/** + * Alias of `tapTaskEither`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstTaskEitherK: <E, A, B>( + f: (a: A) => TaskEither<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderTaskK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => ReaderTask<R, B> +) => <E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapReaderTask`. + * + * Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderTaskKW: <A, R2, B>( + f: (a: A) => RT.ReaderTask<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> +/** + * Alias of `tapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderTaskK: <A, R, B>( + f: (a: A) => RT.ReaderTask<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromReaderIOK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => ReaderIO<R, B> +) => <E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, A> +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainFirstReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A, R = unknown>(fa: Option<A>) => ReaderTaskEither<R, E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => <R>(...a: A) => ReaderTaskEither<R, E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => <R>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E2 | E1, NonNullable<B>> + <R, E1, A, B, E2>( + self: ReaderTaskEither<R, E1, A>, + f: (a: A) => B | null | undefined, + onNullable: (a: A) => E2 + ): ReaderTaskEither<R, E1 | E2, NonNullable<B>> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E2 | E1, B> + <R, E1, A, B, E2>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): ReaderTaskEither< + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <R, E1>(self: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => E.Either<E2, B>): ReaderTaskEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTaskEither: { + <A, E2, B>(f: (a: A) => TaskEither<E2, B>): <R, E1>( + self: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => TaskEither<E2, B>): ReaderTaskEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderTask: { + <A, R2, B>(f: (a: A) => ReaderTask<R2, B>): <R1, E>( + self: ReaderTaskEither<R1, E, A> + ) => ReaderTaskEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderTask<R2, B>): ReaderTaskEither<R1 & R2, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> + <R, E, A, B>(self: ReaderTaskEither<R, E, A>, f: (a: A) => IO<B>): ReaderTaskEither<R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <R, E>(self: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> + <R, E, A, B>(self: ReaderTaskEither<R, E, A>, f: (a: A) => Task<B>): ReaderTaskEither<R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => Reader<R2, B>): ReaderTaskEither<R1 & R2, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderIO: { + <A, R2, B>(f: (a: A) => ReaderIO<R2, B>): <R1, E>(self: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> + <R1, E, A, R2, B>(self: ReaderTaskEither<R1, E, A>, f: (a: A) => ReaderIO<R2, B>): ReaderTaskEither<R1 & R2, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIOEither: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <R, E1>(self: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> + <R, E1, A, E2, B>(self: ReaderTaskEither<R, E1, A>, f: (a: A) => IOEither<E2, B>): ReaderTaskEither<R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderEither: { + <A, R2, E2, B>(f: (a: A) => ReaderEither<R2, E2, B>): <R1, E1>( + self: ReaderTaskEither<R1, E1, A> + ) => ReaderTaskEither<R1 & R2, E1 | E2, B> + <R1, E1, A, R2, E2, B>(self: ReaderTaskEither<R1, E1, A>, f: (a: A) => ReaderEither<R2, E2, B>): ReaderTaskEither< + R1 & R2, + E1 | E2, + B + > +} +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => Either<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, A> +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainTaskEitherKW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainTaskEitherK: <E, A, B>( + f: (a: A) => TaskEither<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapReaderTask`. + * + * Less strict version of [`chainReaderTaskK`](#chainreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderTaskKW: <A, R2, B>( + f: (a: A) => RT.ReaderTask<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> +/** + * Alias of `flatMapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderTaskK: <A, R, B>( + f: (a: A) => RT.ReaderTask<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R = unknown>( + a: A + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown, B extends A = A>( + b: B + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R = unknown>(a: A) => ReaderTaskEither<R, E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: ReaderTaskEither<R, E, A> + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R, B extends A>( + mb: ReaderTaskEither<R, E, B> + ) => ReaderTaskEither<R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1, B extends A>( + mb: ReaderTaskEither<R, E1, B> + ) => ReaderTaskEither<R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <R, E1>( + ma: ReaderTaskEither<R, E1, A> + ) => ReaderTaskEither<R, E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => <R = unknown>(...a: A) => ReaderTaskEither<R, E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <R = unknown, E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>( + f: (a: A) => IO<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>( + f: (a: A) => IO<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <R = unknown, E = never>(...a: A) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>( + f: (a: A) => T.Task<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>( + f: (a: A) => T.Task<B> +) => <R, E>(first: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => R.Reader<R1, B> +) => <R2, E>(ma: ReaderTaskEither<R2, E, A>) => ReaderTaskEither<R1 & R2, E, B> +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOKW: <A, R2, B>( + f: (a: A) => ReaderIO<R2, B> +) => <R1, E>(ma: ReaderTaskEither<R1, E, A>) => ReaderTaskEither<R1 & R2, E, B> +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +export declare const chainReaderIOK: <A, R, B>( + f: (a: A) => ReaderIO<R, B> +) => <E>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainIOEitherKW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <R, E1>(ma: ReaderTaskEither<R, E1, A>) => ReaderTaskEither<R, E1 | E2, B> +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOEitherK: <E, A, B>( + f: (a: A) => IOEither<E, B> +) => <R>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMapReaderEither`. + * + * Less strict version of [`chainReaderEitherK`](#chainreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderEitherKW: <R2, E2, A, B>( + f: (a: A) => ReaderEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * Alias of `flatMapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderEitherK: <R, E, A, B>( + f: (a: A) => ReaderEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.4 + */ +export declare function bracket<R, E, A, B>( + acquire: ReaderTaskEither<R, E, A>, + use: (a: A) => ReaderTaskEither<R, E, B>, + release: (a: A, e: Either<E, B>) => ReaderTaskEither<R, E, void> +): ReaderTaskEither<R, E, B> +/** + * Less strict version of [`bracket`](#bracket). + * + * @since 2.12.0 + */ +export declare function bracketW<R1, E1, A, R2, E2, B, R3, E3>( + acquire: ReaderTaskEither<R1, E1, A>, + use: (a: A) => ReaderTaskEither<R2, E2, B>, + release: (a: A, e: Either<E2, B>) => ReaderTaskEither<R3, E3, void> +): ReaderTaskEither<R1 & R2 & R3, E1 | E2 | E3, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReaderTaskEither<unknown, never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <R, E, A>( + fa: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <R, E>( + fa: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind3<'ReaderTaskEither', R, E, B> +) => ( + ma: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, R2, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => ReaderTaskEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderTaskEither<R1, E1, A> +) => ReaderTaskEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, R, E, B>( + name: Exclude<N, keyof A>, + fb: ReaderTaskEither<R, E, B> +) => ( + fa: import('./HKT').Kind3<'ReaderTaskEither', R, E, A> +) => import('./HKT').Kind3<'ReaderTaskEither', R, E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, R2, E2, B>( + name: Exclude<N, keyof A>, + fb: ReaderTaskEither<R2, E2, B> +) => <R1, E1>( + fa: ReaderTaskEither<R1, E1, A> +) => ReaderTaskEither< + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: ReaderTaskEither<unknown, never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTaskEither<R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => ReaderTaskEither<R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, R, E, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <R, E, A, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <R, E, A>( + arr: ReadonlyArray<ReaderTaskEither<R, E, A>> +) => ReaderTaskEither<R, E, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <R, E, A, B>( + f: (index: number, a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (as: ReadonlyArray<A>) => ReaderTaskEither<R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <R, E, A>( + arr: ReadonlyArray<ReaderTaskEither<R, E, A>> +) => ReaderTaskEither<R, E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <R2, E2, A, B>( + f: (a: A) => ReaderTaskEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => (ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <R2, E2, A, B>( + f: (a: A) => ReaderTaskEither<R2, E2, B> +) => <R1, E1>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, R, B>( + onLeft: (e: E) => ReaderTaskEither<R, E, B> +) => <A>(ma: ReaderTaskEither<R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, R2, E2, B>( + onLeft: (e: E1) => ReaderTaskEither<R2, E2, B> +) => <R1, A>(ma: ReaderTaskEither<R1, E1, A>) => ReaderTaskEither<R1 & R2, E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEither` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const readerTaskEither: Monad3<URI> & Bifunctor3<URI> & Alt3<URI> & MonadTask3<URI> & MonadThrow3<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEitherSeq` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const readerTaskEitherSeq: typeof readerTaskEither +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderTaskEither<R, E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <R, E, A>(M: Monoid<A>) => Monoid<ReaderTaskEither<R, E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <R, E, A>(S: Semigroup<A>) => Semigroup<ReaderTaskEither<R, E, A>> +/** + * Use [`getApplicativeReaderTaskValidation`](#getapplicativereadertaskvalidation) and [`getAltReaderTaskValidation`](#getaltreadertaskvalidation) instead. + * + * @category instances + * @since 2.3.0 + * @deprecated + */ +export declare function getReaderTaskValidation<E>( + SE: Semigroup<E> +): Monad3C<URI, E> & Bifunctor3<URI> & Alt3C<URI, E> & MonadTask3C<URI, E> & MonadThrow3C<URI, E> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function run<R, E, A>(ma: ReaderTaskEither<R, E, A>, r: R): Promise<Either<E, A>> diff --git a/node_modules/fp-ts/lib/ReaderTaskEither.js b/node_modules/fp-ts/lib/ReaderTaskEither.js new file mode 100644 index 0000000..aef18e5 --- /dev/null +++ b/node_modules/fp-ts/lib/ReaderTaskEither.js @@ -0,0 +1,1654 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.apW = exports.ap = exports.mapLeft = exports.mapError = exports.bimap = exports.mapBoth = exports.map = exports.fromReaderEitherK = exports.fromTaskEitherK = exports.fromIOEitherK = exports.swap = exports.orLeftW = exports.orLeft = exports.tapError = exports.orElseW = exports.orElse = exports.asksReaderTaskEither = exports.asksReaderTaskEitherW = exports.local = exports.chainNullableK = exports.fromNullableK = exports.fromNullable = exports.toUnion = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromReaderEither = exports.fromIOEither = exports.fromTask = exports.fromIO = exports.fromReader = exports.fromEither = exports.leftReaderIO = exports.rightReaderIO = exports.leftIO = exports.rightIO = exports.leftReaderTask = exports.rightReaderTask = exports.leftReader = exports.rightReader = exports.leftTask = exports.rightTask = exports.right = exports.left = exports.fromTaskEither = void 0; +exports.chainFirstTaskEitherKW = exports.chainFirstReaderEitherK = exports.chainFirstReaderEitherKW = exports.chainFirstReaderKW = exports.chainFirstReaderK = exports.fromReaderK = exports.asks = exports.ask = exports.Alt = exports.Bifunctor = exports.tapReaderIO = exports.tapReaderTask = exports.tapTaskEither = exports.tapReaderEither = exports.tapReader = exports.tapTask = exports.tapIO = exports.tapEither = exports.tap = exports.FromReader = exports.FromTask = exports.FromIO = exports.FromEither = exports.MonadThrow = exports.MonadTask = exports.MonadIO = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplySeq = exports.ApplicativePar = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.getCompactable = exports.URI = exports.throwError = exports.altW = exports.alt = exports.flatten = exports.flattenW = exports.flatMap = exports.of = void 0; +exports.chainReaderEitherK = exports.chainReaderEitherKW = exports.chainIOEitherK = exports.chainIOEitherKW = exports.chainReaderIOK = exports.chainReaderIOKW = exports.chainReaderKW = exports.chainReaderK = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainReaderTaskK = exports.chainReaderTaskKW = exports.chainTaskEitherK = exports.chainTaskEitherKW = exports.chainFirstEitherKW = exports.chainFirstEitherK = exports.chainEitherKW = exports.chainEitherK = exports.flatMapReaderEither = exports.flatMapIOEither = exports.flatMapReaderIO = exports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.flatMapReaderTask = exports.flatMapTaskEither = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.chainFirstReaderIOK = exports.chainFirstReaderIOKW = exports.fromReaderIOK = exports.chainFirstReaderTaskK = exports.chainFirstReaderTaskKW = exports.fromReaderTaskK = exports.chainFirstTaskEitherK = void 0; +exports.getSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.readerTaskEitherSeq = exports.readerTaskEither = exports.orElseFirstW = exports.orElseFirst = exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = void 0; +exports.getFilterable = getFilterable; +exports.getApplicativeReaderTaskValidation = getApplicativeReaderTaskValidation; +exports.getAltReaderTaskValidation = getAltReaderTaskValidation; +exports.bracket = bracket; +exports.bracketW = bracketW; +exports.getReaderTaskValidation = getReaderTaskValidation; +exports.run = run; +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var Compactable_1 = require("./Compactable"); +var E = __importStar(require("./Either")); +var ET = __importStar(require("./EitherT")); +var Filterable_1 = require("./Filterable"); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var FromReader_1 = require("./FromReader"); +var FromTask_1 = require("./FromTask"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var R = __importStar(require("./Reader")); +var RT = __importStar(require("./ReaderTask")); +var T = __importStar(require("./Task")); +var TE = __importStar(require("./TaskEither")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromTaskEither = R.of; +/** + * @category constructors + * @since 2.0.0 + */ +exports.left = ET.left(RT.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.right = ET.right(RT.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.rightTask = (0, function_1.flow)(TE.rightTask, exports.fromTaskEither); +/** + * @category constructors + * @since 2.0.0 + */ +exports.leftTask = (0, function_1.flow)(TE.leftTask, exports.fromTaskEither); +/** + * @category constructors + * @since 2.0.0 + */ +var rightReader = function (ma) { + return (0, function_1.flow)(ma, TE.right); +}; +exports.rightReader = rightReader; +/** + * @category constructors + * @since 2.0.0 + */ +var leftReader = function (me) { + return (0, function_1.flow)(me, TE.left); +}; +exports.leftReader = leftReader; +/** + * @category constructors + * @since 2.5.0 + */ +exports.rightReaderTask = +/*#__PURE__*/ ET.rightF(RT.Functor); +/** + * @category constructors + * @since 2.5.0 + */ +exports.leftReaderTask = +/*#__PURE__*/ ET.leftF(RT.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +exports.rightIO = (0, function_1.flow)(TE.rightIO, exports.fromTaskEither); +/** + * @category constructors + * @since 2.0.0 + */ +exports.leftIO = (0, function_1.flow)(TE.leftIO, exports.fromTaskEither); +/** + * @category constructors + * @since 2.13.0 + */ +var rightReaderIO = function (ma) { + return (0, function_1.flow)(ma, TE.rightIO); +}; +exports.rightReaderIO = rightReaderIO; +/** + * @category constructors + * @since 2.13.0 + */ +var leftReaderIO = function (me) { + return (0, function_1.flow)(me, TE.leftIO); +}; +exports.leftReaderIO = leftReaderIO; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromEither = RT.of; +/** + * @category conversions + * @since 2.11.0 + */ +exports.fromReader = exports.rightReader; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromIO = exports.rightIO; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromTask = exports.rightTask; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromIOEither = (0, function_1.flow)(TE.fromIOEither, exports.fromTaskEither); +/** + * @category conversions + * @since 2.0.0 + */ +var fromReaderEither = function (ma) { + return (0, function_1.flow)(ma, TE.fromEither); +}; +exports.fromReaderEither = fromReaderEither; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = ET.match(RT.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`ReaderTask`). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchE = ET.matchE(RT.Chain); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchEW = exports.matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +exports.getOrElse = ET.getOrElse(RT.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +exports.getOrElseW = exports.getOrElse; +/** + * @category conversions + * @since 2.10.0 + */ +exports.toUnion = ET.toUnion(RT.Functor); +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromNullable = +/*#__PURE__*/ ET.fromNullable(RT.Pointed); +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +exports.fromNullableK = ET.fromNullableK(RT.Pointed); +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainNullableK = ET.chainNullableK(RT.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.0.0 + */ +exports.local = R.local; +/** + * Less strict version of [`asksReaderTaskEither`](#asksreadertaskeither). + * + * The `W` suffix (short for **W**idening) means that the environment types will be merged. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReaderTaskEitherW = R.asksReaderW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksReaderTaskEither = exports.asksReaderTaskEitherW; +/** + * @category error handling + * @since 2.0.0 + */ +exports.orElse = ET.orElse(RT.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the environment types and the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +exports.orElseW = exports.orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +exports.tapError = (0, function_1.dual)(2, ET.tapError(RT.Monad)); +/** + * @category error handling + * @since 2.11.0 + */ +exports.orLeft = ET.orLeft(RT.Monad); +/** + * @category error handling + * @since 2.16.6 + */ +exports.orLeftW = exports.orLeft; +/** + * @since 2.0.0 + */ +exports.swap = ET.swap(RT.Functor); +/** + * @category lifting + * @since 2.4.0 + */ +var fromIOEitherK = function (f) { return (0, function_1.flow)(f, exports.fromIOEither); }; +exports.fromIOEitherK = fromIOEitherK; +/** + * @category lifting + * @since 2.4.0 + */ +var fromTaskEitherK = function (f) { return (0, function_1.flow)(f, exports.fromTaskEither); }; +exports.fromTaskEitherK = fromTaskEitherK; +/** + * @category lifting + * @since 2.11.0 + */ +var fromReaderEitherK = function (f) { return (0, function_1.flow)(f, exports.fromReaderEither); }; +exports.fromReaderEitherK = fromReaderEitherK; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _apPar = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +exports.map = +/*#__PURE__*/ ET.map(RT.Functor); +/** + * Returns a `ReaderTaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.right(1), f, g)({})(), Either.right(2)) + * assert.deepStrictEqual(await ReaderTaskEither.mapBoth(ReaderTaskEither.left('err'), f, g)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +exports.mapBoth = (0, function_1.dual)(3, ET.mapBoth(RT.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +exports.bimap = exports.mapBoth; +/** + * Returns a `ReaderTaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as ReaderTaskEither from 'fp-ts/ReaderTaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.right(1), f)({})(), Either.right(1)) + * assert.deepStrictEqual(await ReaderTaskEither.mapError(ReaderTaskEither.left('err'), f)({})(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +exports.mapError = (0, function_1.dual)(2, ET.mapError(RT.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +exports.mapLeft = exports.mapError; +/** + * @since 2.0.0 + */ +exports.ap = ET.ap(RT.ApplyPar); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +exports.apW = exports.ap; +/** + * @category constructors + * @since 2.7.0 + */ +exports.of = exports.right; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, ET.flatMap(RT.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = ET.alt(RT.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +exports.altW = exports.alt; +/** + * @since 2.0.0 + */ +exports.throwError = exports.left; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'ReaderTaskEither'; +/** + * @category filtering + * @since 2.10.0 + */ +var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: exports.URI, + _E: undefined, + compact: (0, Compactable_1.compact)(RT.Functor, C), + separate: (0, Compactable_1.separate)(RT.Functor, C, E.Functor) + }; +}; +exports.getCompactable = getCompactable; +/** + * @category filtering + * @since 2.10.0 + */ +function getFilterable(M) { + var F = E.getFilterable(M); + var C = (0, exports.getCompactable)(M); + var filter = (0, Filterable_1.filter)(RT.Functor, F); + var filterMap = (0, Filterable_1.filterMap)(RT.Functor, F); + var partition = (0, Filterable_1.partition)(RT.Functor, F); + var partitionMap = (0, Filterable_1.partitionMap)(RT.Functor, F); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return (0, function_1.pipe)(fa, filter(predicate)); }, + filterMap: function (fa, f) { return (0, function_1.pipe)(fa, filterMap(f)); }, + partition: function (fa, predicate) { return (0, function_1.pipe)(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return (0, function_1.pipe)(fa, partitionMap(f)); } + }; +} +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getApplicativeValidation`](./Either.ts.html#getapplicativevalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getApplicativeReaderTaskValidation(A, S) { + var ap = (0, Apply_1.ap)(R.Apply, TE.getApplicativeTaskValidation(A, S)); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, ap(fa)); }, + of: exports.of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getAltReaderTaskValidation(S) { + var alt = ET.altValidation(RT.Monad, S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return (0, function_1.pipe)(fa, alt(that)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Right` value of this `ReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Right` value of this `ReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplyPar = { + URI: exports.URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativePar = { + URI: exports.URI, + map: _map, + ap: _apPar, + of: exports.of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplySeq = { + URI: exports.URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativeSeq = { + URI: exports.URI, + map: _map, + ap: _apSeq, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadTask = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of, + throwError: exports.throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromReader = { + URI: exports.URI, + fromReader: exports.fromReader +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RTE from 'fp-ts/ReaderTaskEither' + * + * const checkString = (value: string) => pipe( + * RTE.ask<number>(), + * RTE.tapEither((minLength) => value.length > minLength ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(2)(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(2)(), E.right(2)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = RTE.tapIO( + * RTE.ask<string>(), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect('fp-ts')(), E.of('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RTE from 'fp-ts/ReaderTaskEither' + * import * as E from 'fp-ts/Either' + * import * as T from 'fp-ts/Task' + * + * + * const effect = RTE.tapTask( + * RTE.ask<number>(), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(1)(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapTask = (0, function_1.dual)(2, (0, FromTask_1.tapTask)(exports.FromTask, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReader = (0, function_1.dual)(2, (0, FromReader_1.tapReader)(exports.FromReader, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReaderEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.tap)(self, (0, exports.fromReaderEitherK)(f)); }); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapTaskEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.tap)(self, (0, exports.fromTaskEitherK)(f)); }); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReaderTask = (0, function_1.dual)(2, function (self, f) { return (0, exports.tap)(self, (0, exports.fromReaderTaskK)(f)); }); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReaderIO = (0, function_1.dual)(2, function (self, f) { + return (0, exports.tap)(self, (0, exports.fromReaderIOK)(f)); +}); +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * Reads the current context. + * + * @category constructors + * @since 2.0.0 + */ +exports.ask = (0, FromReader_1.ask)(exports.FromReader); +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.0.0 + */ +exports.asks = (0, FromReader_1.asks)(exports.FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromReaderK = (0, FromReader_1.fromReaderK)(exports.FromReader); +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderK = exports.tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainfirstreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderKW = exports.tapReader; +/** + * Alias of `tapReaderEither`. + * + * Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderEitherKW = exports.tapReaderEither; +/** + * Alias of `tapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderEitherK = exports.tapReaderEither; +/** + * Alias of `tapTaskEither`. + * + * Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstTaskEitherKW = exports.tapTaskEither; +/** + * Alias of `tapTaskEither`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstTaskEitherK = exports.tapTaskEither; +/** + * @category lifting + * @since 2.11.0 + */ +var fromReaderTaskK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.rightReaderTask)(f.apply(void 0, a)); + }; +}; +exports.fromReaderTaskK = fromReaderTaskK; +/** + * Alias of `tapReaderTask`. + * + * Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderTaskKW = exports.tapReaderTask; +/** + * Alias of `tapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderTaskK = exports.tapReaderTask; +/** + * @category lifting + * @since 2.13.0 + */ +var fromReaderIOK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.rightReaderIO)(f.apply(void 0, a)); + }; +}; +exports.fromReaderIOK = fromReaderIOK; +/** + * Alias of `tapReaderIO`. + * + * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstReaderIOKW = exports.tapReaderIO; +/** + * Alias of `tapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainFirstReaderIOK = exports.tapReaderIO; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.fromOptionK = (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainOptionK = +/*#__PURE__*/ (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +exports.chainOptionKW = exports.chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: exports.FromEither.fromEither +}; +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftNullable = _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftOption = _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: exports.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: exports.fromTask +}; +/** @internal */ +var _FromReader = { + fromReader: exports.fromReader +}; +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapEither = _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTaskEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, (0, exports.fromTaskEitherK)(f)); }); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReaderTask = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, (0, exports.fromReaderTaskK)(f)); }); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTask = _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReader = _.flatMapReader(_FromReader, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReaderIO = (0, function_1.dual)(2, function (self, f) { + return (0, exports.flatMap)(self, (0, exports.fromReaderIOK)(f)); +}); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIOEither = (0, function_1.dual)(2, function (self, f) { + return (0, exports.flatMap)(self, (0, exports.fromIOEitherK)(f)); +}); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReaderEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, (0, exports.fromReaderEitherK)(f)); }); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainEitherK = exports.flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainEitherKW = exports.flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherKW = exports.tapEither; +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainTaskEitherKW = exports.flatMapTaskEither; +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainTaskEitherK = exports.flatMapTaskEither; +/** + * Alias of `flatMapReaderTask`. + * + * Less strict version of [`chainReaderTaskK`](#chainreadertaskk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderTaskKW = exports.flatMapReaderTask; +/** + * Alias of `flatMapReaderTask`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderTaskK = exports.flatMapReaderTask; +/** + * @category lifting + * @since 2.0.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +exports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +exports.filterOrElseW = exports.filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromTaskK = (0, FromTask_1.fromTaskK)(exports.FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainTaskK = exports.flatMapTask; +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstTaskK = exports.tapTask; +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderK = exports.flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainreaderk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderKW = exports.flatMapReader; +/** + * Alias of `flatMapReaderIO`. + * + * Less strict version of [`chainReaderIOK`](#chainreaderiok). + * + * @category legacy + * @since 2.13.0 + */ +exports.chainReaderIOKW = exports.flatMapReaderIO; +/** + * Alias of `flatMapReaderIO`. + * + * @category legacy + * @since 2.13.0 + */ +exports.chainReaderIOK = exports.flatMapReaderIO; +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainIOEitherKW = exports.flatMapIOEither; +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainIOEitherK = exports.flatMapIOEither; +/** + * Alias of `flatMapReaderEither`. + * + * Less strict version of [`chainReaderEitherK`](#chainreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderEitherKW = exports.flatMapReaderEither; +/** + * Alias of `flatMapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderEitherK = exports.flatMapReaderEither; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.4 + */ +function bracket(acquire, use, release) { + return bracketW(acquire, use, release); +} +/** + * Less strict version of [`bracket`](#bracket). + * + * @since 2.12.0 + */ +function bracketW(acquire, use, release) { + return function (r) { + return TE.bracketW(acquire(r), function (a) { return use(a)(r); }, function (a, e) { return release(a, e)(r); }); + }; +} +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(TE.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return (0, function_1.flow)(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(TE.traverseReadonlyNonEmptyArrayWithIndexSeq(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); +}; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = (0, exports.traverseArray)(function_1.identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseSeqArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); +}; +exports.traverseSeqArray = traverseSeqArray; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceSeqArray = (0, exports.traverseSeqArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +exports.chainFirstW = exports.tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirst = exports.tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirstW = exports.tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEither` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.readerTaskEither = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + alt: _alt, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RTE.Functor` instead of `RTE.readerTaskEitherSeq` + * (where `RTE` is from `import RTE from 'fp-ts/ReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.readerTaskEitherSeq = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apSeq, + chain: exports.flatMap, + alt: _alt, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values + * are concatenated using the provided `Semigroup` + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplySemigroup = +/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplyMonoid = +/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativeSeq); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getSemigroup = function (S) { + return (0, Apply_1.getApplySemigroup)(RT.ApplySeq)(E.getSemigroup(S)); +}; +exports.getSemigroup = getSemigroup; +/** + * Use [`getApplicativeReaderTaskValidation`](#getapplicativereadertaskvalidation) and [`getAltReaderTaskValidation`](#getaltreadertaskvalidation) instead. + * + * @category instances + * @since 2.3.0 + * @deprecated + */ +function getReaderTaskValidation(SE) { + var applicativeReaderTaskValidation = getApplicativeReaderTaskValidation(T.ApplicativePar, SE); + var altReaderTaskValidation = getAltReaderTaskValidation(SE); + return { + URI: exports.URI, + _E: undefined, + map: _map, + of: exports.of, + chain: exports.flatMap, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + ap: applicativeReaderTaskValidation.ap, + alt: altReaderTaskValidation.alt, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError + }; +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +function run(ma, r) { + return ma(r)(); +} diff --git a/node_modules/fp-ts/lib/ReadonlyArray.d.ts b/node_modules/fp-ts/lib/ReadonlyArray.d.ts new file mode 100644 index 0000000..8eff497 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyArray.d.ts @@ -0,0 +1,1716 @@ +/** + * @since 2.5.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { ChainRec1 } from './ChainRec' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Extend1 } from './Extend' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { FromEither1 } from './FromEither' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Magma } from './Magma' +import { Monad1 } from './Monad' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import * as RNEA from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import { Zero1 } from './Zero' +import ReadonlyNonEmptyArray = RNEA.ReadonlyNonEmptyArray +/** + * Test whether a `ReadonlyArray` is empty. + * + * @example + * import { isEmpty } from 'fp-ts/ReadonlyArray' + * + * assert.strictEqual(isEmpty([]), true) + * + * @category refinements + * @since 2.5.0 + */ +export declare const isEmpty: <A>(as: ReadonlyArray<A>) => as is readonly [] +/** + * Test whether a `ReadonlyArray` is non empty. + * + * @category refinements + * @since 2.5.0 + */ +export declare const isNonEmpty: <A>(as: ReadonlyArray<A>) => as is ReadonlyNonEmptyArray<A> +/** + * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const prepend: <A>(head: A) => (tail: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Less strict version of [`prepend`](#prepend). + * + * @since 2.11.0 + */ +export declare const prependW: <B>(head: B) => <A>(tail: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +export declare const append: <A>(end: A) => (init: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Less strict version of [`append`](#append). + * + * @since 2.11.0 + */ +export declare const appendW: <B>(end: B) => <A>(init: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyArray' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.5.0 + */ +export declare const makeBy: <A>(n: number, f: (i: number) => A) => ReadonlyArray<A> +/** + * Create a `ReadonlyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.5.0 + */ +export declare const replicate: <A>(n: number, a: A) => ReadonlyArray<A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare function fromPredicate<A, B extends A>(refinement: Refinement<A, B>): (a: A) => ReadonlyArray<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): <B extends A>(b: B) => ReadonlyArray<B> +export declare function fromPredicate<A>(predicate: Predicate<A>): (a: A) => ReadonlyArray<A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => ReadonlyArray<A> +/** + * Transforms an `Either` to a `ReadonlyArray`. + * + * @category conversions + * @since 2.11.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => ReadonlyArray<A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (as: ReadonlyNonEmptyArray<A>) => C +) => (as: ReadonlyArray<A>) => B | C +/** + * @category pattern matching + * @since 2.11.0 + */ +export declare const match: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (as: ReadonlyNonEmptyArray<A>) => B +) => (as: ReadonlyArray<A>) => B +/** + * Less strict version of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeftW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: ReadonlyArray<A>) => C +) => (as: ReadonlyArray<A>) => B | C +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/ReadonlyArray' + * + * const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchLeft: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: ReadonlyArray<A>) => B +) => (as: ReadonlyArray<A>) => B +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.5.0 + */ +export declare const foldLeft: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (head: A, tail: ReadonlyArray<A>) => B +) => (as: ReadonlyArray<A>) => B +/** + * Less strict version of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRightW: <B, A, C>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: ReadonlyArray<A>, last: A) => C +) => (as: ReadonlyArray<A>) => B | C +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchRight: <B, A>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: ReadonlyArray<A>, last: A) => B +) => (as: ReadonlyArray<A>) => B +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.5.0 + */ +export declare const foldRight: <A, B>( + onEmpty: LazyArg<B>, + onNonEmpty: (init: ReadonlyArray<A>, last: A) => B +) => (as: ReadonlyArray<A>) => B +/** + * @category sequencing + * @since 2.7.0 + */ +export declare const chainWithIndex: <A, B>( + f: (i: number, a: A) => ReadonlyArray<B> +) => (as: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * Same as `reduce` but it carries over the intermediate steps. + * + * @example + * import { scanLeft } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.5.0 + */ +export declare const scanLeft: <A, B>(b: B, f: (b: B, a: A) => B) => (as: ReadonlyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.5.0 + */ +export declare const scanRight: <A, B>(b: B, f: (a: A, b: B) => B) => (as: ReadonlyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * Calculate the number of elements in a `ReadonlyArray`. + * + * @since 2.10.0 + */ +export declare const size: <A>(as: ReadonlyArray<A>) => number +/** + * Test whether an array contains a particular index + * + * @since 2.5.0 + */ +export declare const isOutOfBound: <A>(i: number, as: ReadonlyArray<A>) => boolean +/** + * This function provides a safe way to read a value at a particular index from an array + * + * @example + * import { lookup } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2)) + * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none) + * + * @since 2.5.0 + */ +export declare function lookup(i: number): <A>(as: ReadonlyArray<A>) => Option<A> +export declare function lookup<A>(i: number, as: ReadonlyArray<A>): Option<A> +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.5.0 + */ +export declare const head: <A>(as: ReadonlyArray<A>) => Option<A> +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.5.0 + */ +export declare const last: <A>(as: ReadonlyArray<A>) => Option<A> +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.5.0 + */ +export declare const tail: <A>(as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.5.0 + */ +export declare const init: <A>(as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeLeft(4)), input) + * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input) + * + * @since 2.5.0 + */ +export declare const takeLeft: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeRight(4)), input) + * assert.strictEqual(pipe(input, RA.takeRight(-1)), input) + * + * @since 2.5.0 + */ +export declare const takeRight: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Calculate the longest initial subarray for which all element satisfy the specified predicate, creating a new array + * + * @example + * import { takeLeftWhile } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(takeLeftWhile((n: number) => n % 2 === 0)([2, 4, 3, 6]), [2, 4]) + * + * @since 2.5.0 + */ +export declare function takeLeftWhile<A, B extends A>( + refinement: Refinement<A, B> +): (as: ReadonlyArray<A>) => ReadonlyArray<B> +export declare function takeLeftWhile<A>( + predicate: Predicate<A> +): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> +export declare function takeLeftWhile<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export interface Spanned<I, R> { + readonly init: ReadonlyArray<I> + readonly rest: ReadonlyArray<R> +} +/** + * Split an array into two parts: + * 1. the longest initial subarray for which all elements satisfy the specified predicate + * 2. the remaining elements + * + * @example + * import { spanLeft } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(spanLeft((n: number) => n % 2 === 1)([1, 3, 2, 4, 5]), { init: [1, 3], rest: [2, 4, 5] }) + * + * @since 2.5.0 + */ +export declare function spanLeft<A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => Spanned<B, A> +export declare function spanLeft<A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Spanned<B, B> +export declare function spanLeft<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Spanned<A, A> +/** + * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3]) + * assert.strictEqual(pipe(input, RA.dropLeft(0)), input) + * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input) + * + * @since 2.5.0 + */ +export declare const dropLeft: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1]) + * assert.strictEqual(pipe(input, RA.dropRight(0)), input) + * assert.strictEqual(pipe(input, RA.dropRight(-1)), input) + * + * @since 2.5.0 + */ +export declare const dropRight: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Remove the longest initial subarray for which all element satisfy the specified predicate, creating a new array + * + * @example + * import { dropLeftWhile } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(dropLeftWhile((n: number) => n % 2 === 1)([1, 3, 2, 4, 5]), [2, 4, 5]) + * + * @since 2.5.0 + */ +export declare function dropLeftWhile<A, B extends A>( + refinement: Refinement<A, B> +): (as: ReadonlyArray<A>) => ReadonlyArray<B> +export declare function dropLeftWhile<A>( + predicate: Predicate<A> +): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> +export declare function dropLeftWhile<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Find the first index for which a predicate holds + * + * @example + * import { findIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.5.0 + */ +export declare const findIndex: <A>(predicate: Predicate<A>) => (as: ReadonlyArray<A>) => Option<number> +/** + * Find the first element which satisfies a predicate (or a refinement) function + * + * @example + * import { findFirst } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findFirst((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 1 })) + * + * @since 2.5.0 + */ +export declare function findFirst<A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Option<B> +export declare function findFirst<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Option<A> +/** + * Find the first element returned by an option based selector function + * + * @example + * import { findFirstMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the first person that has an age + * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary')) + * + * @since 2.5.0 + */ +export declare const findFirstMap: <A, B>(f: (a: A) => Option<B>) => (as: ReadonlyArray<A>) => Option<B> +/** + * Find the last element which satisfies a predicate function + * + * @example + * import { findLast } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * type X = { + * readonly a: number + * readonly b: number + * } + * + * assert.deepStrictEqual(findLast((x: X) => x.a === 1)([{ a: 1, b: 1 }, { a: 1, b: 2 }]), some({ a: 1, b: 2 })) + * + * @since 2.5.0 + */ +export declare function findLast<A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Option<B> +export declare function findLast<A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Option<A> +/** + * Find the last element returned by an option based selector function + * + * @example + * import { findLastMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the last person that has an age + * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey')) + * + * @since 2.5.0 + */ +export declare const findLastMap: <A, B>(f: (a: A) => Option<B>) => (as: ReadonlyArray<A>) => Option<B> +/** + * Returns the index of the last element of the list which matches the predicate + * + * @example + * import { findLastIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: ReadonlyArray<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * + * @since 2.5.0 + */ +export declare const findLastIndex: <A>(predicate: Predicate<A>) => (as: ReadonlyArray<A>) => Option<number> +/** + * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { insertAt } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.5.0 + */ +export declare const insertAt: <A>(i: number, a: A) => (as: ReadonlyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.5.0 + */ +export declare const updateAt: <A>(i: number, a: A) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { deleteAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.5.0 + */ +export declare const deleteAt: (i: number) => <A>(as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.5.0 + */ +export declare const modifyAt: <A>(i: number, f: (a: A) => A) => (as: ReadonlyArray<A>) => Option<ReadonlyArray<A>> +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.5.0 + */ +export declare const reverse: <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order + * + * @example + * import { rights } from 'fp-ts/ReadonlyArray' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.5.0 + */ +export declare const rights: <E, A>(as: ReadonlyArray<Either<E, A>>) => ReadonlyArray<A> +/** + * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order + * + * @example + * import { lefts } from 'fp-ts/ReadonlyArray' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.5.0 + */ +export declare const lefts: <E, A>(as: ReadonlyArray<Either<E, A>>) => ReadonlyArray<E> +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.5.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.5.0 + */ +export declare const zipWith: <A, B, C>( + fa: ReadonlyArray<A>, + fb: ReadonlyArray<B>, + f: (a: A, b: B) => C +) => ReadonlyArray<C> +/** + * Takes two arrays and returns an array of corresponding pairs. If one input array is short, excess elements of the + * longer array are discarded + * + * @example + * import { zip } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], zip(['a', 'b', 'c', 'd'])), [[1, 'a'], [2, 'b'], [3, 'c']]) + * + * @since 2.5.0 + */ +export declare function zip<B>(bs: ReadonlyArray<B>): <A>(as: ReadonlyArray<A>) => ReadonlyArray<readonly [A, B]> +export declare function zip<A, B>(as: ReadonlyArray<A>, bs: ReadonlyArray<B>): ReadonlyArray<readonly [A, B]> +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.5.0 + */ +export declare const unzip: <A, B>(as: ReadonlyArray<readonly [A, B]>) => readonly [ReadonlyArray<A>, ReadonlyArray<B>] +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Rotate a `ReadonlyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.5.0 + */ +export declare const rotate: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Test if a value is a member of an array. Takes a `Eq<A>` as a single + * argument which returns the function to use to search for a value of type `A` in + * an array of type `ReadonlyArray<A>`. + * + * @example + * import { elem } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true) + * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false) + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (as: ReadonlyArray<A>) => boolean + (a: A, as: ReadonlyArray<A>): boolean +} +/** + * Remove duplicates from an array, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.5.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/ReadonlyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.5.0 + */ +export declare const sortBy: <B>(ords: ReadonlyArray<Ord<B>>) => <A extends B>(as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for "chopping" up the input + * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a + * value and the tail of the `ReadonlyArray`. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>>) => { + * return RA.chop(as => { + * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.5.0 + */ +export declare const chop: <A, B>( + f: (as: ReadonlyNonEmptyArray<A>) => readonly [B, ReadonlyArray<A>] +) => (as: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.5.0 + */ +export declare const splitAt: (n: number) => <A>(as: ReadonlyArray<A>) => readonly [ReadonlyArray<A>, ReadonlyArray<A>] +/** + * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that: + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `as`. + * + * @example + * import { chunksOf } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.5.0 + */ +export declare const chunksOf: (n: number) => <A>(as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyNonEmptyArray<A>> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => ReadonlyArray<B> +/** + * `ReadonlyArray` comprehension. + * + * ``` + * [ f(x, y, ...) | x ← xs, y ← ys, ..., g(x, y, ...) ] + * ``` + * + * @example + * import { comprehension } from 'fp-ts/ReadonlyArray' + * import { tuple } from 'fp-ts/function' + * + * assert.deepStrictEqual(comprehension([[1, 2, 3], ['a', 'b']], tuple, (a, b) => (a + b.length) % 2 === 0), [ + * [1, 'a'], + * [1, 'b'], + * [3, 'a'], + * [3, 'b'] + * ]) + * + * @since 2.5.0 + */ +export declare function comprehension<A, B, C, D, R>( + input: readonly [ReadonlyArray<A>, ReadonlyArray<B>, ReadonlyArray<C>, ReadonlyArray<D>], + f: (a: A, b: B, c: C, d: D) => R, + g?: (a: A, b: B, c: C, d: D) => boolean +): ReadonlyArray<R> +export declare function comprehension<A, B, C, R>( + input: readonly [ReadonlyArray<A>, ReadonlyArray<B>, ReadonlyArray<C>], + f: (a: A, b: B, c: C) => R, + g?: (a: A, b: B, c: C) => boolean +): ReadonlyArray<R> +export declare function comprehension<A, B, R>( + input: readonly [ReadonlyArray<A>, ReadonlyArray<B>], + f: (a: A, b: B) => R, + g?: (a: A, b: B) => boolean +): ReadonlyArray<R> +export declare function comprehension<A, R>( + input: readonly [ReadonlyArray<A>], + f: (a: A) => R, + g?: (a: A) => boolean +): ReadonlyArray<R> +/** + * @since 2.11.0 + */ +export declare const concatW: <B>(second: ReadonlyArray<B>) => <A>(first: ReadonlyArray<A>) => ReadonlyArray<A | B> +/** + * @since 2.11.0 + */ +export declare const concat: <A>(second: ReadonlyArray<A>) => (first: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * Creates an array of unique values, in order, from all given arrays using a `Eq` for equality comparisons + * + * @example + * import { union } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], union(N.Eq)([2, 3])), [1, 2, 3]) + * + * @since 2.5.0 + */ +export declare function union<A>(E: Eq<A>): { + (xs: ReadonlyArray<A>): (ys: ReadonlyArray<A>) => ReadonlyArray<A> + (xs: ReadonlyArray<A>, ys: ReadonlyArray<A>): ReadonlyArray<A> +} +/** + * Creates an array of unique values that are included in all given arrays using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { intersection } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], intersection(N.Eq)([2, 3])), [2]) + * + * @since 2.5.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (xs: ReadonlyArray<A>): (ys: ReadonlyArray<A>) => ReadonlyArray<A> + (xs: ReadonlyArray<A>, ys: ReadonlyArray<A>): ReadonlyArray<A> +} +/** + * Creates an array of array values not included in the other given array using a `Eq` for equality + * comparisons. The order and references of result values are determined by the first array. + * + * @example + * import { difference } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2], difference(N.Eq)([2, 3])), [1]) + * + * @since 2.5.0 + */ +export declare function difference<A>(E: Eq<A>): { + (xs: ReadonlyArray<A>): (ys: ReadonlyArray<A>) => ReadonlyArray<A> + (xs: ReadonlyArray<A>, ys: ReadonlyArray<A>): ReadonlyArray<A> +} +/** + * @category constructors + * @since 2.5.0 + */ +export declare const of: <A>(a: A) => ReadonlyArray<A> +/** + * @since 2.7.0 + */ +export declare const zero: <A>() => ReadonlyArray<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>(that: LazyArg<ReadonlyArray<B>>) => <A>(fa: ReadonlyArray<A>) => ReadonlyArray<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyArray` concatenates the inputs into a single array. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.5.0 + */ +export declare const alt: <A>(that: LazyArg<ReadonlyArray<A>>) => (fa: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare const ap: <A>(fa: ReadonlyArray<A>) => <B>(fab: ReadonlyArray<(a: A) => B>) => ReadonlyArray<B> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => ReadonlyArray<B>): (ma: ReadonlyArray<A>) => ReadonlyArray<B> + <A, B>(ma: ReadonlyArray<A>, f: (a: A, i: number) => ReadonlyArray<B>): ReadonlyArray<B> +} +/** + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: ReadonlyArray<ReadonlyArray<A>>) => ReadonlyArray<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category mapping + * @since 2.5.0 + */ +export declare const mapWithIndex: <A, B>(f: (i: number, a: A) => B) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const separate: <A, B>(fa: ReadonlyArray<Either<A, B>>) => Separated<ReadonlyArray<A>, ReadonlyArray<B>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (as: ReadonlyArray<A>) => ReadonlyArray<B> + <A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> + <A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterMapWithIndex: <A, B>( + f: (i: number, a: A) => Option<B> +) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const compact: <A>(fa: ReadonlyArray<Option<A>>) => ReadonlyArray<A> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): ( + as: ReadonlyArray<A> + ) => Separated<ReadonlyArray<A>, ReadonlyArray<B>> + <A>(predicate: Predicate<A>): <B extends A>(bs: ReadonlyArray<B>) => Separated<ReadonlyArray<B>, ReadonlyArray<B>> + <A>(predicate: Predicate<A>): (as: ReadonlyArray<A>) => Separated<ReadonlyArray<A>, ReadonlyArray<A>> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): ( + as: ReadonlyArray<A> + ) => Separated<ReadonlyArray<A>, ReadonlyArray<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>( + bs: ReadonlyArray<B> + ) => Separated<ReadonlyArray<B>, ReadonlyArray<B>> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): ( + as: ReadonlyArray<A> + ) => Separated<ReadonlyArray<A>, ReadonlyArray<A>> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: ReadonlyArray<A>) => Separated<ReadonlyArray<B>, ReadonlyArray<C>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMapWithIndex: <A, B, C>( + f: (i: number, a: A) => Either<B, C> +) => (fa: ReadonlyArray<A>) => Separated<ReadonlyArray<B>, ReadonlyArray<C>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<number, A, B>): (as: ReadonlyArray<A>) => ReadonlyArray<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): <B extends A>(bs: ReadonlyArray<B>) => ReadonlyArray<B> + <A>(predicateWithIndex: PredicateWithIndex<number, A>): (as: ReadonlyArray<A>) => ReadonlyArray<A> +} +/** + * @since 2.5.0 + */ +export declare const extend: <A, B>(f: (fa: ReadonlyArray<A>) => B) => (wa: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * @since 2.5.0 + */ +export declare const duplicate: <A>(wa: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>> +/** + * @category folding + * @since 2.5.0 + */ +export declare const foldMapWithIndex: <M>( + M: Monoid<M> +) => <A>(f: (i: number, a: A) => M) => (fa: ReadonlyArray<A>) => M +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: ReadonlyArray<A>) => M +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceWithIndex: <A, B>(b: B, f: (i: number, b: B, a: A) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRightWithIndex: <A, B>(b: B, f: (i: number, a: A, b: B) => B) => (fa: ReadonlyArray<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * @since 2.6.6 + */ +export declare const unfold: <A, B>(b: B, f: (b: B) => Option<readonly [A, B]>) => ReadonlyArray<A> +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyArray' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlyArray<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<ReadonlyArray<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<ReadonlyArray<A>> +/** + * Returns a `Monoid` for `ReadonlyArray<A>`. + * + * @example + * import { getMonoid } from 'fp-ts/ReadonlyArray' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.5.0 + */ +export declare const getMonoid: <A = never>() => Monoid<ReadonlyArray<A>> +/** + * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/ReadonlyArray' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.5.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<ReadonlyArray<A>> +/** + * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * + * @category instances + * @since 2.5.0 + */ +export declare const getOrd: <A>(O: Ord<A>) => Ord<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlyArray<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<ReadonlyArray<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'ReadonlyArray', (a: A) => B>) => import('./HKT').Kind<'ReadonlyArray', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: readonly B[] +) => <A>(first: import('./HKT').Kind<'ReadonlyArray', A>) => import('./HKT').Kind<'ReadonlyArray', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: readonly B[] +) => <A>(first: import('./HKT').Kind<'ReadonlyArray', A>) => import('./HKT').Kind<'ReadonlyArray', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => ReadonlyArray<B>) => (first: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Unfoldable: Unfoldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'ReadonlyArray', void> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Extend: Extend1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecDepthFirst: <A, B>(f: (a: A) => ReadonlyArray<Either<A, B>>) => (a: A) => ReadonlyArray<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecDepthFirst: ChainRec1<URI> +/** + * @category sequencing + * @since 2.11.0 + */ +export declare const chainRecBreadthFirst: <A, B>( + f: (a: A) => ReadonlyArray<Either<A, B>> +) => (a: A) => ReadonlyArray<B> +/** + * @category instances + * @since 2.11.0 + */ +export declare const ChainRecBreadthFirst: ChainRec1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Witherable: Witherable1<URI> +/** + * Filter values inside a context. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as T from 'fp-ts/Task' + * + * const filterE = RA.filterE(T.ApplicativePar) + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * [-1, 2, 3], + * filterE((n) => T.of(n > 0)) + * )(), + * [2, 3] + * ) + * } + * test() + * + * @since 2.11.0 + */ +export declare const filterE: import('./Witherable').FilterE1<'ReadonlyArray'> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => ReadonlyArray<B> +/** + * @category unsafe + * @since 2.5.0 + */ +export declare const unsafeInsertAt: <A>(i: number, a: A, as: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @category unsafe + * @since 2.5.0 + */ +export declare const unsafeUpdateAt: <A>(i: number, a: A, as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @category unsafe + * @since 2.5.0 + */ +export declare const unsafeDeleteAt: <A>(i: number, as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare const toArray: <A>(as: ReadonlyArray<A>) => Array<A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromArray: <A>(as: Array<A>) => ReadonlyArray<A> +/** + * An empty array + * + * @since 2.5.0 + */ +export declare const empty: ReadonlyArray<never> +/** + * Check if a predicate holds true for every array member. + * + * @example + * import { every } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const isPositive = (n: number): boolean => n > 0 + * + * assert.deepStrictEqual(pipe([1, 2, 3], every(isPositive)), true) + * assert.deepStrictEqual(pipe([1, 2, -3], every(isPositive)), false) + * + * @since 2.9.0 + */ +export declare function every<A, B extends A>( + refinement: Refinement<A, B> +): Refinement<ReadonlyArray<A>, ReadonlyArray<B>> +export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlyArray<A>> +/** + * Check if a predicate holds true for any array member. + * + * @example + * import { some } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const isPositive = (n: number): boolean => n > 0 + * + * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true) + * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false) + * + * @since 2.9.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (as: ReadonlyArray<A>) => as is ReadonlyNonEmptyArray<A> +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +export declare const exists: <A>( + predicate: Predicate<A> +) => (as: ReadonlyArray<A>) => as is RNEA.ReadonlyNonEmptyArray<A> +/** + * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(M: Monoid<A>) => (middle: A) => (as: ReadonlyArray<A>) => A +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReadonlyArray<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>( + fa: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'ReadonlyArray', B> +) => ( + ma: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: readonly B[] +) => ( + fa: import('./HKT').Kind<'ReadonlyArray', A> +) => import('./HKT').Kind<'ReadonlyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +export declare const chain: <A, B>(f: (a: A) => ReadonlyArray<B>) => (ma: ReadonlyArray<A>) => ReadonlyArray<B> +/** + * Use `ReadonlyNonEmptyArray` module instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const range: (start: number, end: number) => ReadonlyNonEmptyArray<number> +/** + * Use [`prepend`](#prepend) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const cons: typeof RNEA.cons +/** + * Use [`append`](#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const snoc: <A>(init: ReadonlyArray<A>, end: A) => ReadonlyNonEmptyArray<A> +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: ReadonlyArray<A>) => ReadonlyArray<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray` + * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyArray: FunctorWithIndex1<URI, number> & + Monad1<URI> & + Unfoldable1<URI> & + Alternative1<URI> & + Extend1<URI> & + FilterableWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + TraversableWithIndex1<URI, number> & + Witherable1<URI> diff --git a/node_modules/fp-ts/lib/ReadonlyArray.js b/node_modules/fp-ts/lib/ReadonlyArray.js new file mode 100644 index 0000000..b9af63a --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyArray.js @@ -0,0 +1,2253 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.sortBy = exports.uniq = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zipWith = exports.sort = exports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findFirstMap = exports.findIndex = exports.dropRight = exports.dropLeft = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0; +exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.foldMap = exports.reduce = exports.foldMapWithIndex = exports.duplicate = exports.extend = exports.filterWithIndex = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.filter = exports.separate = exports.mapWithIndex = exports.map = exports.flatten = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.zero = exports.of = exports._chainRecBreadthFirst = exports._chainRecDepthFirst = exports.concat = exports.concatW = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = void 0; +exports.cons = exports.range = exports.chain = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = exports.some = exports.empty = exports.fromArray = exports.toArray = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.Witherable = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = void 0; +exports.readonlyArray = exports.prependToAll = exports.snoc = void 0; +exports.fromPredicate = fromPredicate; +exports.lookup = lookup; +exports.takeLeftWhile = takeLeftWhile; +exports.spanLeft = spanLeft; +exports.dropLeftWhile = dropLeftWhile; +exports.findFirst = findFirst; +exports.findLast = findLast; +exports.zip = zip; +exports.elem = elem; +exports.comprehension = comprehension; +exports.union = union; +exports.intersection = intersection; +exports.difference = difference; +exports.every = every; +var Apply_1 = require("./Apply"); +var Chain_1 = require("./Chain"); +var Eq_1 = require("./Eq"); +var FromEither_1 = require("./FromEither"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var N = __importStar(require("./number")); +var Ord_1 = require("./Ord"); +var RNEA = __importStar(require("./ReadonlyNonEmptyArray")); +var Separated_1 = require("./Separated"); +var Witherable_1 = require("./Witherable"); +var Zero_1 = require("./Zero"); +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Test whether a `ReadonlyArray` is empty. + * + * @example + * import { isEmpty } from 'fp-ts/ReadonlyArray' + * + * assert.strictEqual(isEmpty([]), true) + * + * @category refinements + * @since 2.5.0 + */ +var isEmpty = function (as) { return as.length === 0; }; +exports.isEmpty = isEmpty; +/** + * Test whether a `ReadonlyArray` is non empty. + * + * @category refinements + * @since 2.5.0 + */ +exports.isNonEmpty = RNEA.isNonEmpty; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { prepend } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +exports.prepend = RNEA.prepend; +/** + * Less strict version of [`prepend`](#prepend). + * + * @since 2.11.0 + */ +exports.prependW = RNEA.prependW; +/** + * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`. + * + * @example + * import { append } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4]) + * + * @since 2.10.0 + */ +exports.append = RNEA.append; +/** + * Less strict version of [`append`](#append). + * + * @since 2.11.0 + */ +exports.appendW = RNEA.appendW; +/** + * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyArray' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.5.0 + */ +var makeBy = function (n, f) { return (n <= 0 ? exports.empty : RNEA.makeBy(f)(n)); }; +exports.makeBy = makeBy; +/** + * Create a `ReadonlyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.5.0 + */ +var replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); }; +exports.replicate = replicate; +function fromPredicate(predicate) { + return function (a) { return (predicate(a) ? [a] : exports.empty); }; +} +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.11.0 + */ +var fromOption = function (ma) { return (_.isNone(ma) ? exports.empty : [ma.value]); }; +exports.fromOption = fromOption; +/** + * Transforms an `Either` to a `ReadonlyArray`. + * + * @category conversions + * @since 2.11.0 + */ +var fromEither = function (e) { return (_.isLeft(e) ? exports.empty : [e.right]); }; +exports.fromEither = fromEither; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.11.0 + */ +var matchW = function (onEmpty, onNonEmpty) { + return function (as) { + return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty(); + }; +}; +exports.matchW = matchW; +/** + * @category pattern matching + * @since 2.11.0 + */ +exports.match = exports.matchW; +/** + * Less strict version of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.11.0 + */ +var matchLeftW = function (onEmpty, onNonEmpty) { + return function (as) { + return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty(); + }; +}; +exports.matchLeftW = matchLeftW; +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @example + * import { matchLeft } from 'fp-ts/ReadonlyArray' + * + * const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail)) + * assert.strictEqual(len([1, 2, 3]), 3) + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchLeft = exports.matchLeftW; +/** + * Alias of [`matchLeft`](#matchleft). + * + * @category pattern matching + * @since 2.5.0 + */ +exports.foldLeft = exports.matchLeft; +/** + * Less strict version of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.11.0 + */ +var matchRightW = function (onEmpty, onNonEmpty) { + return function (as) { + return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty(); + }; +}; +exports.matchRightW = matchRightW; +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchRight = exports.matchRightW; +/** + * Alias of [`matchRight`](#matchright). + * + * @category pattern matching + * @since 2.5.0 + */ +exports.foldRight = exports.matchRight; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category sequencing + * @since 2.7.0 + */ +var chainWithIndex = function (f) { + return function (as) { + if ((0, exports.isEmpty)(as)) { + return exports.empty; + } + var out = []; + for (var i = 0; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +exports.chainWithIndex = chainWithIndex; +/** + * Same as `reduce` but it carries over the intermediate steps. + * + * @example + * import { scanLeft } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4]) + * + * @since 2.5.0 + */ +var scanLeft = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[0] = b; + for (var i = 0; i < len; i++) { + out[i + 1] = f(out[i], as[i]); + } + return out; + }; +}; +exports.scanLeft = scanLeft; +/** + * Fold an array from the right, keeping all intermediate results instead of only the final result + * + * @example + * import { scanRight } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10]) + * + * @since 2.5.0 + */ +var scanRight = function (b, f) { + return function (as) { + var len = as.length; + var out = new Array(len + 1); + out[len] = b; + for (var i = len - 1; i >= 0; i--) { + out[i] = f(as[i], out[i + 1]); + } + return out; + }; +}; +exports.scanRight = scanRight; +/** + * Calculate the number of elements in a `ReadonlyArray`. + * + * @since 2.10.0 + */ +var size = function (as) { return as.length; }; +exports.size = size; +/** + * Test whether an array contains a particular index + * + * @since 2.5.0 + */ +exports.isOutOfBound = RNEA.isOutOfBound; +function lookup(i, as) { + return as === undefined ? function (as) { return lookup(i, as); } : (0, exports.isOutOfBound)(i, as) ? _.none : _.some(as[i]); +} +/** + * Get the first element in an array, or `None` if the array is empty + * + * @example + * import { head } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(head([1, 2, 3]), some(1)) + * assert.deepStrictEqual(head([]), none) + * + * @since 2.5.0 + */ +var head = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.head(as)) : _.none); }; +exports.head = head; +/** + * Get the last element in an array, or `None` if the array is empty + * + * @example + * import { last } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(last([1, 2, 3]), some(3)) + * assert.deepStrictEqual(last([]), none) + * + * @since 2.5.0 + */ +var last = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.last(as)) : _.none); }; +exports.last = last; +/** + * Get all but the first element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { tail } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(tail([]), none) + * + * @since 2.5.0 + */ +var tail = function (as) { + return (0, exports.isNonEmpty)(as) ? _.some(RNEA.tail(as)) : _.none; +}; +exports.tail = tail; +/** + * Get all but the last element of an array, creating a new array, or `None` if the array is empty + * + * @example + * import { init } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2])) + * assert.deepStrictEqual(init([]), none) + * + * @since 2.5.0 + */ +var init = function (as) { + return (0, exports.isNonEmpty)(as) ? _.some(RNEA.init(as)) : _.none; +}; +exports.init = init; +/** + * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeLeft(4)), input) + * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input) + * + * @since 2.5.0 + */ +var takeLeft = function (n) { + return function (as) { + return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(0, n); + }; +}; +exports.takeLeft = takeLeft; +/** + * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3]) + * + * // out of bounds + * assert.strictEqual(pipe(input, RA.takeRight(4)), input) + * assert.strictEqual(pipe(input, RA.takeRight(-1)), input) + * + * @since 2.5.0 + */ +var takeRight = function (n) { + return function (as) { + return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(-n); + }; +}; +exports.takeRight = takeRight; +function takeLeftWhile(predicate) { + return function (as) { + var out = []; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + if (!predicate(a)) { + break; + } + out.push(a); + } + var len = out.length; + return len === as.length ? as : len === 0 ? exports.empty : out; + }; +} +var spanLeftIndex = function (as, predicate) { + var l = as.length; + var i = 0; + for (; i < l; i++) { + if (!predicate(as[i])) { + break; + } + } + return i; +}; +function spanLeft(predicate) { + return function (as) { + var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1]; + return { init: init, rest: rest }; + }; +} +/** + * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3]) + * assert.strictEqual(pipe(input, RA.dropLeft(0)), input) + * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input) + * + * @since 2.5.0 + */ +var dropLeft = function (n) { + return function (as) { + return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(n, as.length); + }; +}; +exports.dropLeft = dropLeft; +/** + * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`. + * + * **Note**. `n` is normalized to a non negative integer. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const input: ReadonlyArray<number> = [1, 2, 3] + * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1]) + * assert.strictEqual(pipe(input, RA.dropRight(0)), input) + * assert.strictEqual(pipe(input, RA.dropRight(-1)), input) + * + * @since 2.5.0 + */ +var dropRight = function (n) { + return function (as) { + return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(0, as.length - n); + }; +}; +exports.dropRight = dropRight; +function dropLeftWhile(predicate) { + return function (as) { + var i = spanLeftIndex(as, predicate); + return i === 0 ? as : i === as.length ? exports.empty : as.slice(i); + }; +} +/** + * Find the first index for which a predicate holds + * + * @example + * import { findIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1)) + * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none) + * + * @since 2.5.0 + */ +var findIndex = function (predicate) { + return function (as) { + for (var i = 0; i < as.length; i++) { + if (predicate(as[i])) { + return _.some(i); + } + } + return _.none; + }; +}; +exports.findIndex = findIndex; +function findFirst(predicate) { + return function (as) { + for (var i = 0; i < as.length; i++) { + if (predicate(as[i])) { + return _.some(as[i]); + } + } + return _.none; + }; +} +/** + * Find the first element returned by an option based selector function + * + * @example + * import { findFirstMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the first person that has an age + * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary')) + * + * @since 2.5.0 + */ +var findFirstMap = function (f) { + return function (as) { + for (var i = 0; i < as.length; i++) { + var out = f(as[i]); + if (_.isSome(out)) { + return out; + } + } + return _.none; + }; +}; +exports.findFirstMap = findFirstMap; +function findLast(predicate) { + return function (as) { + for (var i = as.length - 1; i >= 0; i--) { + if (predicate(as[i])) { + return _.some(as[i]); + } + } + return _.none; + }; +} +/** + * Find the last element returned by an option based selector function + * + * @example + * import { findLastMap } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface Person { + * readonly name: string + * readonly age?: number + * } + * + * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }] + * + * // returns the name of the last person that has an age + * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey')) + * + * @since 2.5.0 + */ +var findLastMap = function (f) { + return function (as) { + for (var i = as.length - 1; i >= 0; i--) { + var out = f(as[i]); + if (_.isSome(out)) { + return out; + } + } + return _.none; + }; +}; +exports.findLastMap = findLastMap; +/** + * Returns the index of the last element of the list which matches the predicate + * + * @example + * import { findLastIndex } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * interface X { + * readonly a: number + * readonly b: number + * } + * const xs: ReadonlyArray<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }] + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1)) + * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none) + * + * + * @since 2.5.0 + */ +var findLastIndex = function (predicate) { + return function (as) { + for (var i = as.length - 1; i >= 0; i--) { + if (predicate(as[i])) { + return _.some(i); + } + } + return _.none; + }; +}; +exports.findLastIndex = findLastIndex; +/** + * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { insertAt } from 'fp-ts/ReadonlyArray' + * import { some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4])) + * + * @since 2.5.0 + */ +var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as)); + }; +}; +exports.insertAt = insertAt; +/** + * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3])) + * assert.deepStrictEqual(updateAt(1, 1)([]), none) + * + * @since 2.5.0 + */ +var updateAt = function (i, a) { + return (0, exports.modifyAt)(i, function () { return a; }); +}; +exports.updateAt = updateAt; +/** + * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds + * + * @example + * import { deleteAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3])) + * assert.deepStrictEqual(deleteAt(1)([]), none) + * + * @since 2.5.0 + */ +var deleteAt = function (i) { + return function (as) { + return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as)); + }; +}; +exports.deleteAt = deleteAt; +/** + * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out + * of bounds + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyArray' + * import { some, none } from 'fp-ts/Option' + * + * const double = (x: number): number => x * 2 + * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3])) + * assert.deepStrictEqual(modifyAt(1, double)([]), none) + * + * @since 2.5.0 + */ +var modifyAt = function (i, f) { + return function (as) { + return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as)); + }; +}; +exports.modifyAt = modifyAt; +/** + * Reverse an array, creating a new array + * + * @example + * import { reverse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1]) + * + * @since 2.5.0 + */ +var reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); }; +exports.reverse = reverse; +/** + * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order + * + * @example + * import { rights } from 'fp-ts/ReadonlyArray' + * import { right, left } from 'fp-ts/Either' + * + * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2]) + * + * @since 2.5.0 + */ +var rights = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Right') { + r.push(a.right); + } + } + return r; +}; +exports.rights = rights; +/** + * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order + * + * @example + * import { lefts } from 'fp-ts/ReadonlyArray' + * import { left, right } from 'fp-ts/Either' + * + * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo']) + * + * @since 2.5.0 + */ +var lefts = function (as) { + var r = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (a._tag === 'Left') { + r.push(a.left); + } + } + return r; +}; +exports.lefts = lefts; +/** + * Sort the elements of an array in increasing order, creating a new array + * + * @example + * import { sort } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3]) + * + * @since 2.5.0 + */ +var sort = function (O) { + return function (as) { + return as.length <= 1 ? as : as.slice().sort(O.compare); + }; +}; +exports.sort = sort; +// TODO: curry and make data-last in v3 +/** + * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one + * input array is short, excess elements of the longer array are discarded. + * + * @example + * import { zipWith } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3']) + * + * @since 2.5.0 + */ +var zipWith = function (fa, fb, f) { + var fc = []; + var len = Math.min(fa.length, fb.length); + for (var i = 0; i < len; i++) { + fc[i] = f(fa[i], fb[i]); + } + return fc; +}; +exports.zipWith = zipWith; +function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; }); +} +/** + * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays + * + * @example + * import { unzip } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']]) + * + * @since 2.5.0 + */ +var unzip = function (as) { + var fa = []; + var fb = []; + for (var i = 0; i < as.length; i++) { + fa[i] = as[i][0]; + fb[i] = as[i][1]; + } + return [fa, fb]; +}; +exports.unzip = unzip; +/** + * Prepend an element to every member of an array + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +var prependAll = function (middle) { + var f = RNEA.prependAll(middle); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); }; +}; +exports.prependAll = prependAll; +/** + * Places an element in between members of an array + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +var intersperse = function (middle) { + var f = RNEA.intersperse(middle); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); }; +}; +exports.intersperse = intersperse; +/** + * Rotate a `ReadonlyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * + * @since 2.5.0 + */ +var rotate = function (n) { + var f = RNEA.rotate(n); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); }; +}; +exports.rotate = rotate; +function elem(E) { + return function (a, as) { + if (as === undefined) { + var elemE_1 = elem(E); + return function (as) { return elemE_1(a, as); }; + } + var predicate = function (element) { return E.equals(element, a); }; + var i = 0; + for (; i < as.length; i++) { + if (predicate(as[i])) { + return true; + } + } + return false; + }; +} +/** + * Remove duplicates from an array, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.5.0 + */ +var uniq = function (E) { + var f = RNEA.uniq(E); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); }; +}; +exports.uniq = uniq; +/** + * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import { sortBy } from 'fp-ts/ReadonlyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = sortBy([byName, byAge]) + * + * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }] + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.5.0 + */ +var sortBy = function (ords) { + var f = RNEA.sortBy(ords); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); }; +}; +exports.sortBy = sortBy; +/** + * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for "chopping" up the input + * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a + * value and the tail of the `ReadonlyArray`. + * + * @example + * import { Eq } from 'fp-ts/Eq' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * const group = <A>(S: Eq<A>): ((as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>>) => { + * return RA.chop(as => { + * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0]))) + * return [init, rest] + * }) + * } + * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]]) + * + * @since 2.5.0 + */ +var chop = function (f) { + var g = RNEA.chop(f); + return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : exports.empty); }; +}; +exports.chop = chop; +/** + * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements. + * + * @example + * import { splitAt } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]]) + * + * @since 2.5.0 + */ +var splitAt = function (n) { + return function (as) { + return n >= 1 && (0, exports.isNonEmpty)(as) ? RNEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [as, exports.empty] : [exports.empty, as]; + }; +}; +exports.splitAt = splitAt; +/** + * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive + * definition of `chunksOf`; it satisfies the property that: + * + * ```ts + * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys))) + * ``` + * + * whenever `n` evenly divides the length of `as`. + * + * @example + * import { chunksOf } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]]) + * + * @since 2.5.0 + */ +var chunksOf = function (n) { + var f = RNEA.chunksOf(n); + return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : exports.empty); }; +}; +exports.chunksOf = chunksOf; +/** + * @category lifting + * @since 2.11.0 + */ +var fromOptionK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.fromOption)(f.apply(void 0, a)); + }; +}; +exports.fromOptionK = fromOptionK; +function comprehension(input, f, g) { + if (g === void 0) { g = function () { return true; }; } + var go = function (scope, input) { + return (0, exports.isNonEmpty)(input) + ? (0, exports.flatMap)(RNEA.head(input), function (a) { return go((0, function_1.pipe)(scope, (0, exports.append)(a)), RNEA.tail(input)); }) + : g.apply(void 0, scope) ? [f.apply(void 0, scope)] + : exports.empty; + }; + return go(exports.empty, input); +} +/** + * @since 2.11.0 + */ +var concatW = function (second) { + return function (first) { + return (0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second); + }; +}; +exports.concatW = concatW; +/** + * @since 2.11.0 + */ +exports.concat = exports.concatW; +function union(E) { + var unionE = RNEA.union(E); + return function (first, second) { + if (second === undefined) { + var unionE_1 = union(E); + return function (second) { return unionE_1(second, first); }; + } + return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second) ? unionE(second)(first) : (0, exports.isNonEmpty)(first) ? first : second; + }; +} +function intersection(E) { + var elemE = elem(E); + return function (xs, ys) { + if (ys === undefined) { + var intersectionE_1 = intersection(E); + return function (ys) { return intersectionE_1(ys, xs); }; + } + return xs.filter(function (a) { return elemE(a, ys); }); + }; +} +function difference(E) { + var elemE = elem(E); + return function (xs, ys) { + if (ys === undefined) { + var differenceE_1 = difference(E); + return function (ys) { return differenceE_1(ys, xs); }; + } + return xs.filter(function (a) { return !elemE(a, ys); }); + }; +} +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _filter = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); +}; +var _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); }; +var _partition = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); +}; +var _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); }; +var _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); }; +var _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); }; +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +var _reduceWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f)); +}; +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); }; +}; +var _reduceRightWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f)); +}; +var _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); }; +var _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); }; +var _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); }; +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); }; +}; +/** @internal */ +var _chainRecDepthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecDepthFirst)(f)); }; +exports._chainRecDepthFirst = _chainRecDepthFirst; +/** @internal */ +var _chainRecBreadthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecBreadthFirst)(f)); }; +exports._chainRecBreadthFirst = _chainRecBreadthFirst; +/** + * @category constructors + * @since 2.5.0 + */ +exports.of = RNEA.of; +/** + * @since 2.7.0 + */ +var zero = function () { return exports.empty; }; +exports.zero = zero; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +var altW = function (that) { + return function (fa) { + return fa.concat(that()); + }; +}; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyArray` concatenates the inputs into a single array. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.5.0 + */ +exports.alt = exports.altW; +/** + * @since 2.5.0 + */ +var ap = function (fa) { + return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); +}; +exports.ap = ap; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.flatMap(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); })); +}); +/** + * @category sequencing + * @since 2.5.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +var map = function (f) { return function (fa) { + return fa.map(function (a) { return f(a); }); +}; }; +exports.map = map; +/** + * @category mapping + * @since 2.5.0 + */ +var mapWithIndex = function (f) { return function (fa) { + return fa.map(function (a, i) { return f(i, a); }); +}; }; +exports.mapWithIndex = mapWithIndex; +/** + * @category filtering + * @since 2.5.0 + */ +var separate = function (fa) { + var left = []; + var right = []; + for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) { + var e = fa_1[_i]; + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return (0, Separated_1.separated)(left, right); +}; +exports.separate = separate; +/** + * @category filtering + * @since 2.5.0 + */ +var filter = function (predicate) { + return function (as) { + return as.filter(predicate); + }; +}; +exports.filter = filter; +/** + * @category filtering + * @since 2.5.0 + */ +var filterMapWithIndex = function (f) { + return function (fa) { + var out = []; + for (var i = 0; i < fa.length; i++) { + var optionB = f(i, fa[i]); + if (_.isSome(optionB)) { + out.push(optionB.value); + } + } + return out; + }; +}; +exports.filterMapWithIndex = filterMapWithIndex; +/** + * @category filtering + * @since 2.5.0 + */ +var filterMap = function (f) { + return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); }); +}; +exports.filterMap = filterMap; +/** + * @category filtering + * @since 2.5.0 + */ +exports.compact = (0, exports.filterMap)(function_1.identity); +/** + * @category filtering + * @since 2.5.0 + */ +var partition = function (predicate) { + return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); }); +}; +exports.partition = partition; +/** + * @category filtering + * @since 2.5.0 + */ +var partitionWithIndex = function (predicateWithIndex) { + return function (as) { + var left = []; + var right = []; + for (var i = 0; i < as.length; i++) { + var a = as[i]; + if (predicateWithIndex(i, a)) { + right.push(a); + } + else { + left.push(a); + } + } + return (0, Separated_1.separated)(left, right); + }; +}; +exports.partitionWithIndex = partitionWithIndex; +/** + * @category filtering + * @since 2.5.0 + */ +var partitionMap = function (f) { + return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); }); +}; +exports.partitionMap = partitionMap; +/** + * @category filtering + * @since 2.5.0 + */ +var partitionMapWithIndex = function (f) { + return function (fa) { + var left = []; + var right = []; + for (var i = 0; i < fa.length; i++) { + var e = f(i, fa[i]); + if (e._tag === 'Left') { + left.push(e.left); + } + else { + right.push(e.right); + } + } + return (0, Separated_1.separated)(left, right); + }; +}; +exports.partitionMapWithIndex = partitionMapWithIndex; +/** + * @category filtering + * @since 2.5.0 + */ +var filterWithIndex = function (predicateWithIndex) { + return function (as) { + return as.filter(function (a, i) { return predicateWithIndex(i, a); }); + }; +}; +exports.filterWithIndex = filterWithIndex; +/** + * @since 2.5.0 + */ +var extend = function (f) { return function (wa) { + return wa.map(function (_, i) { return f(wa.slice(i)); }); +}; }; +exports.extend = extend; +/** + * @since 2.5.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category folding + * @since 2.5.0 + */ +var foldMapWithIndex = function (M) { + return function (f) { + return function (fa) { + return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty); + }; + }; +}; +exports.foldMapWithIndex = foldMapWithIndex; +/** + * @category folding + * @since 2.5.0 + */ +var reduce = function (b, f) { + return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); }); +}; +exports.reduce = reduce; +/** + * @category folding + * @since 2.5.0 + */ +var foldMap = function (M) { + var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M); + return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); }; +}; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.5.0 + */ +var reduceWithIndex = function (b, f) { return function (fa) { + var len = fa.length; + var out = b; + for (var i = 0; i < len; i++) { + out = f(i, out, fa[i]); + } + return out; +}; }; +exports.reduceWithIndex = reduceWithIndex; +/** + * @category folding + * @since 2.5.0 + */ +var reduceRight = function (b, f) { + return (0, exports.reduceRightWithIndex)(b, function (_, a, b) { return f(a, b); }); +}; +exports.reduceRight = reduceRight; +/** + * @category folding + * @since 2.5.0 + */ +var reduceRightWithIndex = function (b, f) { return function (fa) { + return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b); +}; }; +exports.reduceRightWithIndex = reduceRightWithIndex; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (ta) { + return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) { + return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa); + }); + }; +}; +exports.sequence = sequence; +/** + * @category sequencing + * @since 2.6.3 + */ +var traverseWithIndex = function (F) { + return function (f) { + return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) { + return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a)); + }); + }; +}; +exports.traverseWithIndex = traverseWithIndex; +/** + * @category filtering + * @since 2.6.5 + */ +var wither = function (F) { + var _witherF = _wither(F); + return function (f) { return function (fa) { return _witherF(fa, f); }; }; +}; +exports.wither = wither; +/** + * @category filtering + * @since 2.6.5 + */ +var wilt = function (F) { + var _wiltF = _wilt(F); + return function (f) { return function (fa) { return _wiltF(fa, f); }; }; +}; +exports.wilt = wilt; +/** + * @since 2.6.6 + */ +var unfold = function (b, f) { + var out = []; + var bb = b; + // eslint-disable-next-line no-constant-condition + while (true) { + var mt = f(bb); + if (_.isSome(mt)) { + var _a = mt.value, a = _a[0], b_1 = _a[1]; + out.push(a); + bb = b_1; + } + else { + break; + } + } + return out; +}; +exports.unfold = unfold; +/** + * @category type lambdas + * @since 2.5.0 + */ +exports.URI = 'ReadonlyArray'; +/** + * @category instances + * @since 2.5.0 + */ +var getShow = function (S) { return ({ + show: function (as) { return "[".concat(as.map(S.show).join(', '), "]"); } +}); }; +exports.getShow = getShow; +/** + * @category instances + * @since 2.5.0 + */ +var getSemigroup = function () { return ({ + concat: function (first, second) { return ((0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second)); } +}); }; +exports.getSemigroup = getSemigroup; +/** + * Returns a `Monoid` for `ReadonlyArray<A>`. + * + * @example + * import { getMonoid } from 'fp-ts/ReadonlyArray' + * + * const M = getMonoid<number>() + * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4]) + * + * @category instances + * @since 2.5.0 + */ +var getMonoid = function () { return ({ + concat: (0, exports.getSemigroup)().concat, + empty: exports.empty +}); }; +exports.getMonoid = getMonoid; +/** + * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two + * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of + * different lengths, the result is non equality. + * + * @example + * import * as S from 'fp-ts/string' + * import { getEq } from 'fp-ts/ReadonlyArray' + * + * const E = getEq(S.Eq) + * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true) + * assert.strictEqual(E.equals(['a'], []), false) + * + * @category instances + * @since 2.5.0 + */ +var getEq = function (E) { + return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); }); +}; +exports.getEq = getEq; +/** + * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such + * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in + * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have + * the same length, the result is equality. + * + * @example + * import { getOrd } from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/string' + * + * const O = getOrd(S.Ord) + * assert.strictEqual(O.compare(['b'], ['a']), 1) + * assert.strictEqual(O.compare(['a'], ['a']), 0) + * assert.strictEqual(O.compare(['a'], ['b']), -1) + * + * + * @category instances + * @since 2.5.0 + */ +var getOrd = function (O) { + return (0, Ord_1.fromCompare)(function (a, b) { + var aLen = a.length; + var bLen = b.length; + var len = Math.min(aLen, bLen); + for (var i = 0; i < len; i++) { + var ordering = O.compare(a[i], b[i]); + if (ordering !== 0) { + return ordering; + } + } + return N.Ord.compare(aLen, bLen); + }); +}; +exports.getOrd = getOrd; +/** + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (E) { + var unionE = union(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getUnionMonoid = function (E) { return ({ + concat: (0, exports.getUnionSemigroup)(E).concat, + empty: exports.empty +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * @category instances + * @since 2.11.0 + */ +var getIntersectionSemigroup = function (E) { + var intersectionE = intersection(E); + return { + concat: function (first, second) { return intersectionE(second)(first); } + }; +}; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function (E) { + var differenceE = difference(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; +}; +exports.getDifferenceMagma = getDifferenceMagma; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FunctorWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => []) + * ), + * [] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +exports.chainFirst = +/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain); +/** + * @category instances + * @since 2.7.0 + */ +exports.Unfoldable = { + URI: exports.URI, + unfold: exports.unfold +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.Zero = { + URI: exports.URI, + zero: exports.zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +exports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed); +/** + * @category instances + * @since 2.7.0 + */ +exports.Alternative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + alt: _alt, + zero: exports.zero +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Extend = { + URI: exports.URI, + map: _map, + extend: _extend +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FilterableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FoldableWithIndex = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.TraversableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverse: _traverse, + sequence: exports.sequence, + traverseWithIndex: _traverseWithIndex +}; +/** + * @category sequencing + * @since 2.11.0 + */ +var chainRecDepthFirst = function (f) { + return function (a) { + var todo = __spreadArray([], f(a), true); + var out = []; + while (todo.length > 0) { + var e = todo.shift(); + if (_.isLeft(e)) { + todo.unshift.apply(todo, f(e.left)); + } + else { + out.push(e.right); + } + } + return out; + }; +}; +exports.chainRecDepthFirst = chainRecDepthFirst; +/** + * @category instances + * @since 2.11.0 + */ +exports.ChainRecDepthFirst = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: exports._chainRecDepthFirst +}; +/** + * @category sequencing + * @since 2.11.0 + */ +var chainRecBreadthFirst = function (f) { + return function (a) { + var initial = f(a); + var todo = []; + var out = []; + function go(e) { + if (_.isLeft(e)) { + f(e.left).forEach(function (v) { return todo.push(v); }); + } + else { + out.push(e.right); + } + } + for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) { + var e = initial_1[_i]; + go(e); + } + while (todo.length > 0) { + go(todo.shift()); + } + return out; + }; +}; +exports.chainRecBreadthFirst = chainRecBreadthFirst; +/** + * @category instances + * @since 2.11.0 + */ +exports.ChainRecBreadthFirst = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap, + chainRec: exports._chainRecBreadthFirst +}; +var _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable); +var _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable); +/** + * @category instances + * @since 2.7.0 + */ +exports.Witherable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + wither: _wither, + wilt: _wilt +}; +/** + * Filter values inside a context. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as T from 'fp-ts/Task' + * + * const filterE = RA.filterE(T.ApplicativePar) + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * [-1, 2, 3], + * filterE((n) => T.of(n > 0)) + * )(), + * [2, 3] + * ) + * } + * test() + * + * @since 2.11.0 + */ +exports.filterE = (0, Witherable_1.filterE)(exports.Witherable); +/** + * @category instances + * @since 2.11.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// unsafe +// ------------------------------------------------------------------------------------- +/** + * @category unsafe + * @since 2.5.0 + */ +exports.unsafeInsertAt = RNEA.unsafeInsertAt; +/** + * @category unsafe + * @since 2.5.0 + */ +var unsafeUpdateAt = function (i, a, as) { + return (0, exports.isNonEmpty)(as) ? RNEA.unsafeUpdateAt(i, a, as) : as; +}; +exports.unsafeUpdateAt = unsafeUpdateAt; +/** + * @category unsafe + * @since 2.5.0 + */ +var unsafeDeleteAt = function (i, as) { + var xs = as.slice(); + xs.splice(i, 1); + return xs; +}; +exports.unsafeDeleteAt = unsafeDeleteAt; +/** + * @category conversions + * @since 2.5.0 + */ +var toArray = function (as) { return as.slice(); }; +exports.toArray = toArray; +/** + * @category conversions + * @since 2.5.0 + */ +var fromArray = function (as) { return ((0, exports.isEmpty)(as) ? exports.empty : as.slice()); }; +exports.fromArray = fromArray; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * An empty array + * + * @since 2.5.0 + */ +exports.empty = RNEA.empty; +function every(predicate) { + return function (as) { return as.every(predicate); }; +} +/** + * Check if a predicate holds true for any array member. + * + * @example + * import { some } from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * const isPositive = (n: number): boolean => n > 0 + * + * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true) + * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false) + * + * @since 2.9.0 + */ +var some = function (predicate) { + return function (as) { + return as.some(predicate); + }; +}; +exports.some = some; +/** + * Alias of [`some`](#some) + * + * @since 2.11.0 + */ +exports.exists = exports.some; +/** + * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyArray' + * + * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +var intercalate = function (M) { + var intercalateM = RNEA.intercalate(M); + return function (middle) { return (0, exports.match)(function () { return M.empty; }, intercalateM(middle)); }; +}; +exports.intercalate = intercalate; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = (0, Chain_1.bind)(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +exports.chain = exports.flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `ReadonlyNonEmptyArray` module instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.range = RNEA.range; +/** + * Use [`prepend`](#prepend) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.cons = RNEA.cons; +/** + * Use [`append`](#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.snoc = RNEA.snoc; +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +exports.prependToAll = exports.prependAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray` + * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.readonlyArray = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + alt: _alt, + zero: exports.zero, + unfold: exports.unfold, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + extend: _extend, + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/lib/ReadonlyMap.d.ts b/node_modules/fp-ts/lib/ReadonlyMap.d.ts new file mode 100644 index 0000000..a284121 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyMap.d.ts @@ -0,0 +1,476 @@ +import { Compactable2 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable2 } from './Filterable' +import { FilterableWithIndex2C } from './FilterableWithIndex' +import { Foldable, Foldable1, Foldable2, Foldable2C, Foldable3 } from './Foldable' +import { FoldableWithIndex2C } from './FoldableWithIndex' +import { Functor2 } from './Functor' +import { FunctorWithIndex2C } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import * as O from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { Traversable2C } from './Traversable' +import { TraversableWithIndex2C } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { Witherable2C } from './Witherable' +import Option = O.Option +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromMap: <K, A>(m: Map<K, A>) => ReadonlyMap<K, A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare function toMap<K, A>(m: ReadonlyMap<K, A>): Map<K, A> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getShow<K, A>(SK: Show<K>, SA: Show<A>): Show<ReadonlyMap<K, A>> +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.5.0 + */ +export declare const size: <K, A>(m: ReadonlyMap<K, A>) => number +/** + * Test whether or not a map is empty + * + * @since 2.5.0 + */ +export declare const isEmpty: <K, A>(m: ReadonlyMap<K, A>) => boolean +/** + * Test whether or not a key exists in a map + * + * @since 2.5.0 + */ +export declare function member<K>(E: Eq<K>): { + (k: K): <A>(m: ReadonlyMap<K, A>) => boolean + <A>(k: K, m: ReadonlyMap<K, A>): boolean +} +/** + * Test whether or not a value is a member of a map + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): <K>(m: ReadonlyMap<K, A>) => boolean + <K>(a: A, m: ReadonlyMap<K, A>): boolean +} +/** + * Get a sorted `ReadonlyArray` of the keys contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +export declare const keys: <K>(O: Ord<K>) => <A>(m: ReadonlyMap<K, A>) => ReadonlyArray<K> +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +export declare const values: <A>(O: Ord<A>) => <K>(m: ReadonlyMap<K, A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare function collect<K>( + O: Ord<K> +): <A, B>(f: (k: K, a: A) => B) => (m: ReadonlyMap<K, A>) => ReadonlyArray<B> +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyMap`. + * + * @category conversions + * @since 2.5.0 + */ +export declare const toReadonlyArray: <K>(O: Ord<K>) => <A>(m: ReadonlyMap<K, A>) => ReadonlyArray<readonly [K, A]> +/** + * Unfolds a map into a list of key/value pairs + * + * @category conversions + * @since 2.5.0 + */ +export declare function toUnfoldable<K, F extends URIS>( + ord: Ord<K>, + U: Unfoldable1<F> +): <A>(d: ReadonlyMap<K, A>) => Kind<F, readonly [K, A]> +export declare function toUnfoldable<K, F>( + ord: Ord<K>, + U: Unfoldable<F> +): <A>(d: ReadonlyMap<K, A>) => HKT<F, readonly [K, A]> +/** + * Insert or replace a key/value pair in a `ReadonlyMap`. + * + * @since 2.10.0 + */ +export declare const upsertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * Delete a key and value from a map + * + * @since 2.5.0 + */ +export declare const deleteAt: <K>(E: Eq<K>) => (k: K) => <A>(m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @since 2.5.0 + */ +export declare const updateAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: ReadonlyMap<K, A>) => Option<ReadonlyMap<K, A>> +/** + * @since 2.5.0 + */ +export declare const modifyAt: <K>( + E: Eq<K> +) => <A>(k: K, f: (a: A) => A) => (m: ReadonlyMap<K, A>) => Option<ReadonlyMap<K, A>> +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.5.0 + */ +export declare function pop<K>(E: Eq<K>): (k: K) => <A>(m: ReadonlyMap<K, A>) => Option<readonly [A, ReadonlyMap<K, A>]> +/** + * Lookup the value for a key in a `Map`. + * If the result is a `Some`, the existing key is also returned. + * + * @since 2.5.0 + */ +export declare function lookupWithKey<K>(E: Eq<K>): { + (k: K): <A>(m: ReadonlyMap<K, A>) => Option<readonly [K, A]> + <A>(k: K, m: ReadonlyMap<K, A>): Option<readonly [K, A]> +} +/** + * Lookup the value for a key in a `Map`. + * + * @since 2.5.0 + */ +export declare function lookup<K>(E: Eq<K>): { + (k: K): <A>(m: ReadonlyMap<K, A>) => Option<A> + <A>(k: K, m: ReadonlyMap<K, A>): Option<A> +} +/** + * Test whether or not one `Map` contains all of the keys and values contained in another `Map` + * + * @since 2.5.0 + */ +export declare function isSubmap<K, A>( + SK: Eq<K>, + SA: Eq<A> +): { + (that: ReadonlyMap<K, A>): (me: ReadonlyMap<K, A>) => boolean + (me: ReadonlyMap<K, A>, that: ReadonlyMap<K, A>): boolean +} +/** + * @since 2.5.0 + */ +export declare const empty: ReadonlyMap<never, never> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getEq<K, A>(SK: Eq<K>, SA: Eq<A>): Eq<ReadonlyMap<K, A>> +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.5.0 + */ +export declare function getMonoid<K, A>(SK: Eq<K>, SA: Semigroup<A>): Monoid<ReadonlyMap<K, A>> +/** + * Create a map with one key/value pair + * + * @category constructors + * @since 2.5.0 + */ +export declare const singleton: <K, A>(k: K, a: A) => ReadonlyMap<K, A> +/** + * Create a map from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @category constructors + * @since 2.5.0 + */ +export declare function fromFoldable<F extends URIS3, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, readonly [K, A]>) => ReadonlyMap<K, A> +export declare function fromFoldable<F extends URIS2, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, readonly [K, A]>) => ReadonlyMap<K, A> +export declare function fromFoldable<F extends URIS, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, readonly [K, A]>) => ReadonlyMap<K, A> +export declare function fromFoldable<F, K, A>( + E: Eq<K>, + M: Magma<A>, + F: Foldable<F> +): (fka: HKT<F, readonly [K, A]>) => ReadonlyMap<K, A> +/** + * @since 2.10.0 + */ +export declare const partitionMapWithIndex: <K, A, B, C>( + f: (k: K, a: A) => Either<B, C> +) => (fa: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, C>> +/** + * @since 2.10.0 + */ +export declare function partitionWithIndex<K, A, B extends A>( + predicateWithIndex: (k: K, a: A) => a is B +): (m: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): <B extends A>(m: ReadonlyMap<K, B>) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, B>> +export declare function partitionWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): (m: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, A>> +/** + * @since 2.10.0 + */ +export declare const filterMapWithIndex: <K, A, B>( + f: (k: K, a: A) => Option<B> +) => (fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * @since 2.10.0 + */ +export declare function filterWithIndex<K, A, B extends A>( + predicateWithIndex: (k: K, a: A) => a is B +): (m: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +export declare function filterWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): <B extends A>(m: ReadonlyMap<K, B>) => ReadonlyMap<K, B> +export declare function filterWithIndex<K, A>( + predicateWithIndex: (k: K, a: A) => boolean +): (m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const compact: <K, A>(fa: ReadonlyMap<K, Option<A>>) => ReadonlyMap<K, A> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> + <A>(predicate: Predicate<A>): <K, B extends A>(fb: ReadonlyMap<K, B>) => ReadonlyMap<K, B> + <A>(predicate: Predicate<A>): <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <K>(fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * @category mapping + * @since 2.7.1 + */ +export declare const mapWithIndex: <K, A, B>(f: (k: K, a: A) => B) => (fa: ReadonlyMap<K, A>) => ReadonlyMap<K, B> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): <K>( + fa: ReadonlyMap<K, A> + ) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, B>> + <A>(predicate: Predicate<A>): <K, B extends A>( + fb: ReadonlyMap<K, B> + ) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, B>> + <A>(predicate: Predicate<A>): <K>(fa: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, A>> +} +/** + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => <K>(fa: ReadonlyMap<K, A>) => Separated<ReadonlyMap<K, B>, ReadonlyMap<K, C>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare const separate: <K, A, B>( + fa: ReadonlyMap<K, Either<A, B>> +) => Separated<ReadonlyMap<K, A>, ReadonlyMap<K, B>> +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyMap' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: ReadonlyMap<E, A> + } +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<ReadonlyMap<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <K, A>(E: Eq<K>, S: Semigroup<A>) => Monoid<ReadonlyMap<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <K, A>(E: Eq<K>, S: Semigroup<A>) => Semigroup<ReadonlyMap<K, A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <K>(E: Eq<K>) => <A>() => Magma<ReadonlyMap<K, A>> +/** + * @category filtering + * @since 2.5.0 + */ +export declare function getFilterableWithIndex<K = never>(): FilterableWithIndex2C<URI, K, K> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <E, B>(fab: Kind2<'ReadonlyMap', E, (a: A) => B>) => Kind2<'ReadonlyMap', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getFunctorWithIndex: <K = never>() => FunctorWithIndex2C<URI, K, K> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable2<URI> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduce: <K>(O: Ord<K>) => <B, A>(b: B, f: (b: B, a: A) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMap: <K>(O: Ord<K>) => <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (m: ReadonlyMap<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <K>(O: Ord<K>) => <B, A>(b: B, f: (a: A, b: B) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.10.0 + */ +export declare const getFoldable: <K>(O: Ord<K>) => Foldable2C<URI, K> +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceWithIndex: <K>( + O: Ord<K> +) => <B, A>(b: B, f: (k: K, b: B, a: A) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.11.0 + */ +export declare const foldMapWithIndex: <K>( + O: Ord<K> +) => <M>(M: Monoid<M>) => <A>(f: (k: K, a: A) => M) => (m: ReadonlyMap<K, A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRightWithIndex: <K>( + O: Ord<K> +) => <B, A>(b: B, f: (k: K, a: A, b: B) => B) => (m: ReadonlyMap<K, A>) => B +/** + * @category folding + * @since 2.10.0 + */ +export declare const getFoldableWithIndex: <K>(O: Ord<K>) => FoldableWithIndex2C<URI, K, K> +/** + * @category traversing + * @since 2.10.0 + */ +export declare const getTraversable: <K>(O: Ord<K>) => Traversable2C<URI, K> +/** + * @category traversing + * @since 2.10.0 + */ +export declare const getTraversableWithIndex: <K>(O: Ord<K>) => TraversableWithIndex2C<URI, K, K> +/** + * @category filtering + * @since 2.5.0 + */ +export declare function getWitherable<K>(O: Ord<K>): Witherable2C<URI, K> & TraversableWithIndex2C<URI, K, K> +/** + * @since 2.11.0 + */ +export declare const union: <K, A>( + E: Eq<K>, + M: Magma<A> +) => (second: ReadonlyMap<K, A>) => (first: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @since 2.11.0 + */ +export declare const intersection: <K, A>( + E: Eq<K>, + M: Magma<A> +) => (second: ReadonlyMap<K, A>) => (first: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * @since 2.11.0 + */ +export declare const difference: <K>( + E: Eq<K> +) => <A>(_second: ReadonlyMap<K, A>) => (first: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * Use [`upsertAt`](#upsertat) instead. + * + @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const insertAt: <K>(E: Eq<K>) => <A>(k: K, a: A) => (m: ReadonlyMap<K, A>) => ReadonlyMap<K, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RM.Functor` instead of `RM.readonlyMap` + * (where `RM` is from `import RM from 'fp-ts/ReadonlyMap'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyMap: Filterable2<URI> diff --git a/node_modules/fp-ts/lib/ReadonlyMap.js b/node_modules/fp-ts/lib/ReadonlyMap.js new file mode 100644 index 0000000..bab72d3 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyMap.js @@ -0,0 +1,1041 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readonlyMap = exports.insertAt = exports.difference = exports.intersection = exports.union = exports.getTraversableWithIndex = exports.getTraversable = exports.getFoldableWithIndex = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.getFoldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Filterable = exports.Compactable = exports.getFunctorWithIndex = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.URI = exports.separate = exports.partitionMap = exports.partition = exports.mapWithIndex = exports.map = exports.filterMap = exports.filter = exports.compact = exports.filterMapWithIndex = exports.partitionMapWithIndex = exports.singleton = exports.empty = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.upsertAt = exports.toReadonlyArray = exports.values = exports.keys = exports.isEmpty = exports.size = exports.fromMap = void 0; +exports.toMap = toMap; +exports.getShow = getShow; +exports.member = member; +exports.elem = elem; +exports.collect = collect; +exports.toUnfoldable = toUnfoldable; +exports.pop = pop; +exports.lookupWithKey = lookupWithKey; +exports.lookup = lookup; +exports.isSubmap = isSubmap; +exports.getEq = getEq; +exports.getMonoid = getMonoid; +exports.fromFoldable = fromFoldable; +exports.partitionWithIndex = partitionWithIndex; +exports.filterWithIndex = filterWithIndex; +exports.getFilterableWithIndex = getFilterableWithIndex; +exports.getWitherable = getWitherable; +var Eq_1 = require("./Eq"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var O = __importStar(require("./Option")); +var Separated_1 = require("./Separated"); +var Witherable_1 = require("./Witherable"); +/** + * @category conversions + * @since 2.5.0 + */ +var fromMap = function (m) { return new Map(m); }; +exports.fromMap = fromMap; +/** + * @category conversions + * @since 2.5.0 + */ +function toMap(m) { + return new Map(m); +} +/** + * @category instances + * @since 2.5.0 + */ +function getShow(SK, SA) { + return { + show: function (m) { + var entries = []; + m.forEach(function (a, k) { + entries.push("[".concat(SK.show(k), ", ").concat(SA.show(a), "]")); + }); + return "new Map([".concat(entries.sort().join(', '), "])"); + } + }; +} +/** + * Calculate the number of key/value pairs in a map + * + * @since 2.5.0 + */ +var size = function (m) { return m.size; }; +exports.size = size; +/** + * Test whether or not a map is empty + * + * @since 2.5.0 + */ +var isEmpty = function (m) { return m.size === 0; }; +exports.isEmpty = isEmpty; +function member(E) { + var lookupE = lookup(E); + return function (k, m) { + if (m === undefined) { + var memberE_1 = member(E); + return function (m) { return memberE_1(k, m); }; + } + return _.isSome(lookupE(k, m)); + }; +} +function elem(E) { + return function (a, m) { + if (m === undefined) { + var elemE_1 = elem(E); + return function (m) { return elemE_1(a, m); }; + } + var values = m.values(); + var e; + while (!(e = values.next()).done) { + var v = e.value; + if (E.equals(a, v)) { + return true; + } + } + return false; + }; +} +/** + * Get a sorted `ReadonlyArray` of the keys contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +var keys = function (O) { + return function (m) { + return Array.from(m.keys()).sort(O.compare); + }; +}; +exports.keys = keys; +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlyMap`. + * + * @since 2.5.0 + */ +var values = function (O) { + return function (m) { + return Array.from(m.values()).sort(O.compare); + }; +}; +exports.values = values; +/** + * @since 2.5.0 + */ +function collect(O) { + var keysO = (0, exports.keys)(O); + return function (f) { + return function (m) { + var out = []; + var ks = keysO(m); + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + out.push(f(key, m.get(key))); + } + return out; + }; + }; +} +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyMap`. + * + * @category conversions + * @since 2.5.0 + */ +var toReadonlyArray = function (O) { + return collect(O)(function (k, a) { return [k, a]; }); +}; +exports.toReadonlyArray = toReadonlyArray; +function toUnfoldable(ord, U) { + var toReadonlyArrayO = (0, exports.toReadonlyArray)(ord); + return function (d) { + var kas = toReadonlyArrayO(d); + var len = kas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([kas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `ReadonlyMap`. + * + * @since 2.10.0 + */ +var upsertAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, a) { + var lookupWithKeyEk = lookupWithKeyE(k); + return function (m) { + var found = lookupWithKeyEk(m); + if (_.isNone(found)) { + var out = new Map(m); + out.set(k, a); + return out; + } + else if (found.value[1] !== a) { + var out = new Map(m); + out.set(found.value[0], a); + return out; + } + return m; + }; + }; +}; +exports.upsertAt = upsertAt; +/** + * Delete a key and value from a map + * + * @since 2.5.0 + */ +var deleteAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isSome(found)) { + var r = new Map(m); + r.delete(found.value[0]); + return r; + } + return m; + }; }; +}; +exports.deleteAt = deleteAt; +/** + * @since 2.5.0 + */ +var updateAt = function (E) { + var modifyAtE = (0, exports.modifyAt)(E); + return function (k, a) { return modifyAtE(k, function () { return a; }); }; +}; +exports.updateAt = updateAt; +/** + * @since 2.5.0 + */ +var modifyAt = function (E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, f) { return function (m) { + var found = lookupWithKeyE(k, m); + if (_.isNone(found)) { + return _.none; + } + var _a = found.value, fk = _a[0], fv = _a[1]; + var next = f(fv); + if (next === fv) { + return _.some(m); + } + var r = new Map(m); + r.set(fk, next); + return _.some(r); + }; }; +}; +exports.modifyAt = modifyAt; +/** + * Delete a key and value from a map, returning the value as well as the subsequent map + * + * @since 2.5.0 + */ +function pop(E) { + var lookupE = lookup(E); + var deleteAtE = (0, exports.deleteAt)(E); + return function (k) { + var deleteAtEk = deleteAtE(k); + return function (m) { + return (0, function_1.pipe)(lookupE(k, m), O.map(function (a) { return [a, deleteAtEk(m)]; })); + }; + }; +} +function lookupWithKey(E) { + return function (k, m) { + if (m === undefined) { + var lookupWithKeyE_1 = lookupWithKey(E); + return function (m) { return lookupWithKeyE_1(k, m); }; + } + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, ka = _a[0], a = _a[1]; + if (E.equals(ka, k)) { + return _.some([ka, a]); + } + } + return _.none; + }; +} +function lookup(E) { + var lookupWithKeyE = lookupWithKey(E); + return function (k, m) { + if (m === undefined) { + var lookupE_1 = lookup(E); + return function (m) { return lookupE_1(k, m); }; + } + return (0, function_1.pipe)(lookupWithKeyE(k, m), O.map(function (_a) { + var _ = _a[0], a = _a[1]; + return a; + })); + }; +} +function isSubmap(SK, SA) { + var lookupWithKeyS = lookupWithKey(SK); + return function (me, that) { + if (that === undefined) { + var isSubmapSKSA_1 = isSubmap(SK, SA); + return function (that) { return isSubmapSKSA_1(that, me); }; + } + var entries = me.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var d2OptA = lookupWithKeyS(k, that); + if (_.isNone(d2OptA) || !SK.equals(k, d2OptA.value[0]) || !SA.equals(a, d2OptA.value[1])) { + return false; + } + } + return true; + }; +} +/** + * @since 2.5.0 + */ +exports.empty = +// the type annotation here is intended (otherwise it doesn't type-check) +new Map(); +/** + * @category instances + * @since 2.5.0 + */ +function getEq(SK, SA) { + var isSubmapSKSA = isSubmap(SK, SA); + return (0, Eq_1.fromEquals)(function (x, y) { return isSubmapSKSA(x, y) && isSubmapSKSA(y, x); }); +} +/** + * Gets `Monoid` instance for Maps given `Semigroup` instance for their values + * + * @category instances + * @since 2.5.0 + */ +function getMonoid(SK, SA) { + var lookupWithKeyS = lookupWithKey(SK); + return { + concat: function (mx, my) { + if ((0, exports.isEmpty)(mx)) { + return my; + } + if ((0, exports.isEmpty)(my)) { + return mx; + } + var r = new Map(mx); + var entries = my.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var mxOptA = lookupWithKeyS(k, mx); + if (_.isSome(mxOptA)) { + r.set(mxOptA.value[0], SA.concat(mxOptA.value[1], a)); + } + else { + r.set(k, a); + } + } + return r; + }, + empty: exports.empty + }; +} +/** + * Create a map with one key/value pair + * + * @category constructors + * @since 2.5.0 + */ +var singleton = function (k, a) { return new Map([[k, a]]); }; +exports.singleton = singleton; +function fromFoldable(E, M, F) { + return function (fka) { + var lookupWithKeyE = lookupWithKey(E); + return F.reduce(fka, new Map(), function (b, _a) { + var k = _a[0], a = _a[1]; + var bOpt = lookupWithKeyE(k, b); + if (_.isSome(bOpt)) { + b.set(bOpt.value[0], M.concat(bOpt.value[1], a)); + } + else { + b.set(k, a); + } + return b; + }); + }; +} +var _mapWithIndex = function (fa, f) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, key = _a[0], a = _a[1]; + m.set(key, f(key, a)); + } + return m; +}; +/** + * @since 2.10.0 + */ +var partitionMapWithIndex = function (f) { + return function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var ei = f(k, a); + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return (0, Separated_1.separated)(left, right); + }; +}; +exports.partitionMapWithIndex = partitionMapWithIndex; +function partitionWithIndex(predicateWithIndex) { + return function (m) { + var left = new Map(); + var right = new Map(); + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (predicateWithIndex(k, a)) { + right.set(k, a); + } + else { + left.set(k, a); + } + } + return (0, Separated_1.separated)(left, right); + }; +} +/** + * @since 2.10.0 + */ +var filterMapWithIndex = function (f) { + return function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var o = f(k, a); + if (_.isSome(o)) { + m.set(k, o.value); + } + } + return m; + }; +}; +exports.filterMapWithIndex = filterMapWithIndex; +function filterWithIndex(predicateWithIndex) { + return function (m) { + var out = new Map(); + var entries = m.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (predicateWithIndex(k, a)) { + out.set(k, a); + } + } + return out; + }; +} +var _map = function (fa, f) { return _mapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filter = function (fa, p) { + return _filterWithIndex(fa, function (_, a) { return p(a); }); +}; +var _filterMap = function (fa, f) { return _filterMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _partition = function (fa, predicate) { + return _partitionWithIndex(fa, function (_, a) { return predicate(a); }); +}; +var _partitionMap = function (fa, f) { return _partitionMapWithIndex(fa, function (_, a) { return f(a); }); }; +var _filterWithIndex = function (fa, p) { return (0, function_1.pipe)(fa, filterWithIndex(p)); }; +var _filterMapWithIndex = function (fa, f) { + return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); +}; +var _partitionWithIndex = function (fa, p) { return (0, function_1.pipe)(fa, partitionWithIndex(p)); }; +var _partitionMapWithIndex = function (fa, f) { + return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); +}; +/** + * @category filtering + * @since 2.5.0 + */ +var compact = function (fa) { + var m = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], oa = _a[1]; + if (_.isSome(oa)) { + m.set(k, oa.value); + } + } + return m; +}; +exports.compact = compact; +/** + * @category filtering + * @since 2.5.0 + */ +var filter = function (predicate) { + return function (fa) { + return _filter(fa, predicate); + }; +}; +exports.filter = filter; +/** + * @category filtering + * @since 2.5.0 + */ +var filterMap = function (f) { return function (fa) { + return _filterMap(fa, f); +}; }; +exports.filterMap = filterMap; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +var map = function (f) { return function (fa) { return _map(fa, f); }; }; +exports.map = map; +/** + * @category mapping + * @since 2.7.1 + */ +var mapWithIndex = function (f) { return function (fa) { + return _mapWithIndex(fa, f); +}; }; +exports.mapWithIndex = mapWithIndex; +/** + * @category filtering + * @since 2.5.0 + */ +var partition = function (predicate) { + return function (fa) { + return _partition(fa, predicate); + }; +}; +exports.partition = partition; +/** + * @category filtering + * @since 2.5.0 + */ +var partitionMap = function (f) { return function (fa) { return _partitionMap(fa, f); }; }; +exports.partitionMap = partitionMap; +/** + * @category filtering + * @since 2.5.0 + */ +var separate = function (fa) { + var left = new Map(); + var right = new Map(); + var entries = fa.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], ei = _a[1]; + if (_.isLeft(ei)) { + left.set(k, ei.left); + } + else { + right.set(k, ei.right); + } + } + return (0, Separated_1.separated)(left, right); +}; +exports.separate = separate; +/** + * @category type lambdas + * @since 2.5.0 + */ +exports.URI = 'ReadonlyMap'; +/** + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (E, S) { + var unionES = (0, exports.union)(E, S); + return { + concat: function (first, second) { return unionES(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getUnionMonoid = function (E, S) { return ({ + concat: (0, exports.getUnionSemigroup)(E, S).concat, + empty: exports.empty +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * @category instances + * @since 2.11.0 + */ +var getIntersectionSemigroup = function (E, S) { + var intersectionES = (0, exports.intersection)(E, S); + return { + concat: function (first, second) { return intersectionES(second)(first); } + }; +}; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function (E) { + return function () { + var differenceE = (0, exports.difference)(E); + return { + concat: function (first, second) { return differenceE(second)(first); } + }; + }; +}; +exports.getDifferenceMagma = getDifferenceMagma; +/** + * @category filtering + * @since 2.5.0 + */ +function getFilterableWithIndex() { + return { + URI: exports.URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +var getFunctorWithIndex = function () { return ({ + URI: exports.URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex +}); }; +exports.getFunctorWithIndex = getFunctorWithIndex; +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category folding + * @since 2.11.0 + */ +var reduce = function (O) { + var reduceWithIndexO = (0, exports.reduceWithIndex)(O); + return function (b, f) { return reduceWithIndexO(b, function (_, b, a) { return f(b, a); }); }; +}; +exports.reduce = reduce; +/** + * @category folding + * @since 2.11.0 + */ +var foldMap = function (O) { + var foldMapWithIndexO = (0, exports.foldMapWithIndex)(O); + return function (M) { + var foldMapWithIndexOM = foldMapWithIndexO(M); + return function (f) { return foldMapWithIndexOM(function (_, a) { return f(a); }); }; + }; +}; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.11.0 + */ +var reduceRight = function (O) { + var reduceRightWithIndexO = (0, exports.reduceRightWithIndex)(O); + return function (b, f) { return reduceRightWithIndexO(b, function (_, b, a) { return f(b, a); }); }; +}; +exports.reduceRight = reduceRight; +/** + * @category folding + * @since 2.10.0 + */ +var getFoldable = function (O) { + var reduceO = (0, exports.reduce)(O); + var foldMapO = (0, exports.foldMap)(O); + var reduceRightO = (0, exports.reduceRight)(O); + return { + URI: exports.URI, + _E: undefined, + reduce: function (fa, b, f) { return (0, function_1.pipe)(fa, reduceO(b, f)); }, + foldMap: function (M) { + var foldMapOM = foldMapO(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapOM(f)); }; + }, + reduceRight: function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightO(b, f)); } + }; +}; +exports.getFoldable = getFoldable; +/** + * @category folding + * @since 2.11.0 + */ +var reduceWithIndex = function (O) { + var keysO = (0, exports.keys)(O); + return function (b, f) { return function (m) { + var out = b; + for (var _i = 0, _a = keysO(m); _i < _a.length; _i++) { + var k = _a[_i]; + out = f(k, out, m.get(k)); + } + return out; + }; }; +}; +exports.reduceWithIndex = reduceWithIndex; +/** + * @category folding + * @since 2.11.0 + */ +var foldMapWithIndex = function (O) { + var keysO = (0, exports.keys)(O); + return function (M) { return function (f) { return function (m) { + var out = M.empty; + for (var _i = 0, _a = keysO(m); _i < _a.length; _i++) { + var k = _a[_i]; + out = M.concat(out, f(k, m.get(k))); + } + return out; + }; }; }; +}; +exports.foldMapWithIndex = foldMapWithIndex; +/** + * @category folding + * @since 2.11.0 + */ +var reduceRightWithIndex = function (O) { + var keysO = (0, exports.keys)(O); + return function (b, f) { return function (m) { + var out = b; + var ks = keysO(m); + var len = ks.length; + for (var i = len - 1; i >= 0; i--) { + var k = ks[i]; + out = f(k, m.get(k), out); + } + return out; + }; }; +}; +exports.reduceRightWithIndex = reduceRightWithIndex; +/** + * @category folding + * @since 2.10.0 + */ +var getFoldableWithIndex = function (O) { + var F = (0, exports.getFoldable)(O); + var reduceWithIndexO = (0, exports.reduceWithIndex)(O); + var foldMapWithIndexO = (0, exports.foldMapWithIndex)(O); + var reduceRightWithIndexO = (0, exports.reduceRightWithIndex)(O); + return { + URI: exports.URI, + _E: undefined, + reduce: F.reduce, + foldMap: F.foldMap, + reduceRight: F.reduceRight, + reduceWithIndex: function (fa, b, f) { return (0, function_1.pipe)(fa, reduceWithIndexO(b, f)); }, + foldMapWithIndex: function (M) { + var foldMapWithIndexOM = foldMapWithIndexO(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexOM(f)); }; + }, + reduceRightWithIndex: function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightWithIndexO(b, f)); } + }; +}; +exports.getFoldableWithIndex = getFoldableWithIndex; +/** + * @category traversing + * @since 2.10.0 + */ +var getTraversable = function (O) { + var TWI = (0, exports.getTraversableWithIndex)(O); + var F = (0, exports.getFoldable)(O); + return { + URI: exports.URI, + _E: undefined, + map: _map, + reduce: F.reduce, + foldMap: F.foldMap, + reduceRight: F.reduceRight, + traverse: TWI.traverse, + sequence: TWI.sequence + }; +}; +exports.getTraversable = getTraversable; +/** + * @category traversing + * @since 2.10.0 + */ +var getTraversableWithIndex = function (O) { + var FWI = (0, exports.getFoldableWithIndex)(O); + var keysO = (0, exports.keys)(O); + var traverseWithIndex = function (F) { + return function (ta, f) { + var fm = F.of(new Map()); + var ks = keysO(ta); + var len = ks.length; + var _loop_1 = function (i) { + var key = ks[i]; + var a = ta.get(key); + fm = F.ap(F.map(fm, function (m) { return function (b) { return m.set(key, b); }; }), f(key, a)); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + return fm; + }; + }; + var traverse = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta, f) { return traverseWithIndexF(ta, function (_, a) { return f(a); }); }; + }; + var sequence = function (F) { + var traverseWithIndexF = traverseWithIndex(F); + return function (ta) { return traverseWithIndexF(ta, function_1.SK); }; + }; + return { + URI: exports.URI, + _E: undefined, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: FWI.reduce, + foldMap: FWI.foldMap, + reduceRight: FWI.reduceRight, + reduceWithIndex: FWI.reduceWithIndex, + foldMapWithIndex: FWI.foldMapWithIndex, + reduceRightWithIndex: FWI.reduceRightWithIndex, + traverse: traverse, + sequence: sequence, + traverseWithIndex: traverseWithIndex + }; +}; +exports.getTraversableWithIndex = getTraversableWithIndex; +/** + * @category filtering + * @since 2.5.0 + */ +function getWitherable(O) { + var TWI = (0, exports.getTraversableWithIndex)(O); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + reduce: TWI.reduce, + foldMap: TWI.foldMap, + reduceRight: TWI.reduceRight, + traverse: TWI.traverse, + sequence: TWI.sequence, + mapWithIndex: _mapWithIndex, + reduceWithIndex: TWI.reduceWithIndex, + foldMapWithIndex: TWI.foldMapWithIndex, + reduceRightWithIndex: TWI.reduceRightWithIndex, + traverseWithIndex: TWI.traverseWithIndex, + wilt: (0, Witherable_1.wiltDefault)(TWI, exports.Compactable), + wither: (0, Witherable_1.witherDefault)(TWI, exports.Compactable) + }; +} +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +var union = function (E, M) { + var lookupE = lookup(E); + return function (second) { return function (first) { + if ((0, exports.isEmpty)(first)) { + return second; + } + if ((0, exports.isEmpty)(second)) { + return first; + } + var out = new Map(); + var firstEntries = first.entries(); + var e; + while (!(e = firstEntries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var oka = lookupE(k)(second); + if (_.isSome(oka)) { + out.set(k, M.concat(a, oka.value)); + } + else { + out.set(k, a); + } + } + var secondEntries = second.entries(); + while (!(e = secondEntries.next()).done) { + var _b = e.value, k = _b[0], a = _b[1]; + var oka = lookupE(k)(out); + if (_.isNone(oka)) { + out.set(k, a); + } + } + return out; + }; }; +}; +exports.union = union; +/** + * @since 2.11.0 + */ +var intersection = function (E, M) { + var lookupE = lookup(E); + return function (second) { return function (first) { + if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) { + return exports.empty; + } + var out = new Map(); + var entries = first.entries(); + var e; + while (!(e = entries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + var oka = lookupE(k)(second); + if (_.isSome(oka)) { + out.set(k, M.concat(a, oka.value)); + } + } + return out; + }; }; +}; +exports.intersection = intersection; +/** + * @since 2.11.0 + */ +var difference = function (E) { + var memberE = member(E); + return function (second) { + return function (first) { + if ((0, exports.isEmpty)(first)) { + return second; + } + if ((0, exports.isEmpty)(second)) { + return first; + } + var out = new Map(); + var firstEntries = first.entries(); + var e; + while (!(e = firstEntries.next()).done) { + var _a = e.value, k = _a[0], a = _a[1]; + if (!memberE(k)(second)) { + out.set(k, a); + } + } + var secondEntries = second.entries(); + while (!(e = secondEntries.next()).done) { + var _b = e.value, k = _b[0], a = _b[1]; + if (!memberE(k)(first)) { + out.set(k, a); + } + } + return out; + }; + }; +}; +exports.difference = difference; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`upsertAt`](#upsertat) instead. + * + @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.insertAt = exports.upsertAt; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RM.Functor` instead of `RM.readonlyMap` + * (where `RM` is from `import RM from 'fp-ts/ReadonlyMap'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.readonlyMap = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; diff --git a/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts b/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts new file mode 100644 index 0000000..67e0fdc --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts @@ -0,0 +1,933 @@ +/** + * Data structure which represents non-empty readonly arrays. + * + * ```ts + * export type ReadonlyNonEmptyArray<A> = ReadonlyArray<A> & { + * readonly 0: A + * } + * ``` + * + * Note that you don't need any conversion, a `ReadonlyNonEmptyArray` is a `ReadonlyArray`, + * so all `ReadonlyArray`'s APIs can be used with a `ReadonlyNonEmptyArray` without further ado. + * + * @since 2.5.0 + */ +import { Alt1 } from './Alt' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { Comonad1 } from './Comonad' +import { Endomorphism } from './Endomorphism' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { Monad1 } from './Monad' +import { Option } from './Option' +import { Ord } from './Ord' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyRecord } from './ReadonlyRecord' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +import { PipeableTraverseWithIndex1, TraversableWithIndex1 } from './TraversableWithIndex' +import Semigroup = Se.Semigroup +/** + * @category model + * @since 2.5.0 + */ +export type ReadonlyNonEmptyArray<A> = ReadonlyArray<A> & { + readonly 0: A +} +/** + * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +export declare const uniq: <A>(E: Eq<A>) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = RNEA.sortBy([byName, byAge]) + * + * const persons: RNEA.ReadonlyNonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +export declare const sortBy: <B>( + ords: ReadonlyArray<Ord<B>> +) => <A extends B>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @since 2.11.0 + */ +export declare const union: <A>( + E: Eq<A> +) => (second: ReadonlyNonEmptyArray<A>) => (first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Rotate a `ReadonlyNonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +export declare const rotate: (n: number) => <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty. + * + * @category conversions + * @since 2.5.0 + */ +export declare const fromReadonlyArray: <A>(as: ReadonlyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const makeBy: <A>(f: (i: number) => A) => (n: number) => ReadonlyNonEmptyArray<A> +/** + * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +export declare const replicate: <A>(a: A) => (n: number) => ReadonlyNonEmptyArray<A> +/** + * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +export declare const range: (start: number, end: number) => ReadonlyNonEmptyArray<number> +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]]) + * + * @since 2.9.0 + */ +export declare const unprepend: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [A, ReadonlyArray<A>] +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +export declare const unappend: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [ReadonlyArray<A>, A] +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromArray: <A>(as: Array<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * @since 2.11.0 + */ +export declare function concatW<B>( + second: ReadonlyNonEmptyArray<B> +): <A>(first: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A | B> +export declare function concatW<B>( + second: ReadonlyArray<B> +): <A>(first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * @since 2.5.0 + */ +export declare function concat<A>( + second: ReadonlyNonEmptyArray<A> +): (first: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +export declare function concat<A>( + second: ReadonlyArray<A> +): (first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: ReadonlyArray<A>, second: ReadonlyNonEmptyArray<A>): ReadonlyNonEmptyArray<A> +/** @deprecated */ +export declare function concat<A>(first: ReadonlyNonEmptyArray<A>, second: ReadonlyArray<A>): ReadonlyNonEmptyArray<A> +/** + * @since 2.5.0 + */ +export declare const reverse: <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Group equal, consecutive elements of a `ReadonlyArray` into `ReadonlyNonEmptyArray`s. + * + * @example + * import { group } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(group(N.Eq)([1, 2, 1, 1]), [ + * [1], + * [2], + * [1, 1] + * ]) + * + * @since 2.5.0 + */ +export declare function group<B>(E: Eq<B>): { + <A extends B>(as: ReadonlyNonEmptyArray<A>): ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> + <A extends B>(as: ReadonlyArray<A>): ReadonlyArray<ReadonlyNonEmptyArray<A>> +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.5.0 + */ +export declare const groupBy: <A>( + f: (a: A) => string +) => (as: ReadonlyArray<A>) => ReadonlyRecord<string, ReadonlyNonEmptyArray<A>> +/** + * @since 2.5.0 + */ +export declare const sort: <B>(O: Ord<B>) => <A extends B>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @since 2.5.0 + */ +export declare const updateAt: <A>( + i: number, + a: A +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * @since 2.5.0 + */ +export declare const modifyAt: <A>( + i: number, + f: (a: A) => A +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * @since 2.5.1 + */ +export declare const zipWith: <A, B, C>( + as: ReadonlyNonEmptyArray<A>, + bs: ReadonlyNonEmptyArray<B>, + f: (a: A, b: B) => C +) => ReadonlyNonEmptyArray<C> +/** + * @since 2.5.1 + */ +export declare function zip<B>( + bs: ReadonlyNonEmptyArray<B> +): <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<readonly [A, B]> +export declare function zip<A, B>( + as: ReadonlyNonEmptyArray<A>, + bs: ReadonlyNonEmptyArray<B> +): ReadonlyNonEmptyArray<readonly [A, B]> +/** + * @since 2.5.1 + */ +export declare const unzip: <A, B>( + abs: ReadonlyNonEmptyArray<readonly [A, B]> +) => readonly [ReadonlyNonEmptyArray<A>, ReadonlyNonEmptyArray<B>] +/** + * Prepend an element to every member of a `ReadonlyNonEmptyArray`. + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +export declare const prependAll: <A>(middle: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`. + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +export declare const intersperse: <A>(middle: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainWithIndex: <A, B>( + f: (i: number, a: A) => ReadonlyNonEmptyArray<B> +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for "chopping" up the input + * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a + * value and the tail of the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export declare const chop: <A, B>( + f: (as: ReadonlyNonEmptyArray<A>) => readonly [B, ReadonlyArray<A>] +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +export declare const splitAt: ( + n: number +) => <A>(as: ReadonlyNonEmptyArray<A>) => readonly [ReadonlyNonEmptyArray<A>, ReadonlyArray<A>] +/** + * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +export declare const chunksOf: ( + n: number +) => <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> +/** + * @category constructors + * @since 2.5.0 + */ +export declare const of: <A>(a: A) => ReadonlyNonEmptyArray<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray<number>, + * RNEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <B>( + that: LazyArg<ReadonlyNonEmptyArray<B>> +) => <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +export declare const alt: <A>( + that: LazyArg<ReadonlyNonEmptyArray<A>> +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @since 2.5.0 + */ +export declare const ap: <A>( + as: ReadonlyNonEmptyArray<A> +) => <B>(fab: ReadonlyNonEmptyArray<(a: A) => B>) => ReadonlyNonEmptyArray<B> +/** + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A, i: number) => ReadonlyNonEmptyArray<B>): (ma: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> + <A, B>(ma: ReadonlyNonEmptyArray<A>, f: (a: A, i: number) => ReadonlyNonEmptyArray<B>): ReadonlyNonEmptyArray<B> +} +/** + * @since 2.5.0 + */ +export declare const extend: <A, B>( + f: (as: ReadonlyNonEmptyArray<A>) => B +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * @since 2.5.0 + */ +export declare const duplicate: <A>(ma: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> +/** + * @category sequencing + * @since 2.5.0 + */ +export declare const flatten: <A>(mma: ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>>) => ReadonlyNonEmptyArray<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * @category mapping + * @since 2.5.0 + */ +export declare const mapWithIndex: <A, B>( + f: (i: number, a: A) => B +) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +export declare const foldMap: <S>(S: Semigroup<S>) => <A>(f: (a: A) => S) => (as: ReadonlyNonEmptyArray<A>) => S +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceWithIndex: <A, B>( + b: B, + f: (i: number, b: B, a: A) => B +) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +export declare const foldMapWithIndex: <S>( + S: Semigroup<S> +) => <A>(f: (i: number, a: A) => S) => (as: ReadonlyNonEmptyArray<A>) => S +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRightWithIndex: <A, B>( + b: B, + f: (i: number, a: A, b: B) => B +) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category sequencing + * @since 2.6.3 + */ +export declare const traverseWithIndex: PipeableTraverseWithIndex1<URI, number> +/** + * @category Comonad + * @since 2.6.3 + */ +export declare const extract: Comonad1<URI>['extract'] +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyNonEmptyArray' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlyNonEmptyArray<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<ReadonlyNonEmptyArray<A>> +/** + * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray` + * + * @category instances + * @since 2.5.0 + */ +export declare const getSemigroup: <A = never>() => Semigroup<ReadonlyNonEmptyArray<A>> +/** + * @example + * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.5.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<ReadonlyNonEmptyArray<A>> +/** + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlyNonEmptyArray<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>( + fab: import('./HKT').Kind<'ReadonlyNonEmptyArray', (a: A) => B> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +export declare const apFirst: <B>( + second: ReadonlyNonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'ReadonlyNonEmptyArray', A>) => import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +export declare const apSecond: <B>( + second: ReadonlyNonEmptyArray<B> +) => <A>(first: import('./HKT').Kind<'ReadonlyNonEmptyArray', A>) => import('./HKT').Kind<'ReadonlyNonEmptyArray', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +export declare const chainFirst: <A, B>( + f: (a: A) => ReadonlyNonEmptyArray<B> +) => (first: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, number> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: ReadonlyNonEmptyArray<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>( + fa: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'ReadonlyNonEmptyArray', B> +) => ( + ma: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: ReadonlyNonEmptyArray<B> +) => ( + fa: import('./HKT').Kind<'ReadonlyNonEmptyArray', A> +) => import('./HKT').Kind<'ReadonlyNonEmptyArray', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.5.0 + */ +export declare const head: <A>(as: ReadonlyNonEmptyArray<A>) => A +/** + * @since 2.5.0 + */ +export declare const tail: <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare const last: <A>(as: ReadonlyNonEmptyArray<A>) => A +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.5.0 + */ +export declare const init: <A>(as: ReadonlyNonEmptyArray<A>) => ReadonlyArray<A> +/** + * @since 2.5.0 + */ +export declare const min: <A>(O: Ord<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * @since 2.5.0 + */ +export declare const max: <A>(O: Ord<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * @since 2.10.0 + */ +export declare const concatAll: <A>(S: Semigroup<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchLeft: <A, B>(f: (head: A, tail: ReadonlyArray<A>) => B) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +export declare const matchRight: <A, B>( + f: (init: ReadonlyArray<A>, last: A) => B +) => (as: ReadonlyNonEmptyArray<A>) => B +/** + * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyHead: <A>(f: Endomorphism<A>) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Change the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateHead: <A>(a: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const modifyLast: <A>(f: Endomorphism<A>) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Change the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +export declare const updateLast: <A>(a: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +export declare const intercalate: <A>(S: Semigroup<A>) => (middle: A) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +export declare const chain: <A, B>( + f: (a: A) => ReadonlyNonEmptyArray<B> +) => (ma: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<B> +/** + * This is just `sort` followed by `group`. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function groupSort<B>(O: Ord<B>): { + <A extends B>(as: ReadonlyNonEmptyArray<A>): ReadonlyNonEmptyArray<ReadonlyNonEmptyArray<A>> + <A extends B>(as: ReadonlyArray<A>): ReadonlyArray<ReadonlyNonEmptyArray<A>> +} +/** + * Use [`filter`](./ReadonlyArray.ts.html#filter) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function filter<A, B extends A>( + refinement: Refinement<A, B> +): (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<B>> +export declare function filter<A>( + predicate: Predicate<A> +): <B extends A>(bs: ReadonlyNonEmptyArray<B>) => Option<ReadonlyNonEmptyArray<B>> +export declare function filter<A>( + predicate: Predicate<A> +): (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const filterWithIndex: <A>( + predicate: (i: number, a: A) => boolean +) => (as: ReadonlyNonEmptyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const uncons: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [A, ReadonlyArray<A>] +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const unsnoc: <A>(as: ReadonlyNonEmptyArray<A>) => readonly [ReadonlyArray<A>, A] +/** + * Use [`prepend`](./ReadonlyArray.ts.html#prepend) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function cons<A>(head: A): (tail: ReadonlyArray<A>) => ReadonlyNonEmptyArray<A> +/** @deprecated */ +export declare function cons<A>(head: A, tail: ReadonlyArray<A>): ReadonlyNonEmptyArray<A> +/** + * Use [`append`](./ReadonlyArray.ts.html#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const snoc: <A>(init: ReadonlyArray<A>, end: A) => ReadonlyNonEmptyArray<A> +/** + * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const insertAt: <A>(i: number, a: A) => (as: ReadonlyArray<A>) => Option<ReadonlyNonEmptyArray<A>> +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +export declare const prependToAll: <A>(middle: A) => (as: ReadonlyNonEmptyArray<A>) => ReadonlyNonEmptyArray<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const fold: <A>(S: Semigroup<A>) => (as: ReadonlyNonEmptyArray<A>) => A +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray` + * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyNonEmptyArray: Monad1<URI> & + Comonad1<URI> & + TraversableWithIndex1<URI, number> & + FunctorWithIndex1<URI, number> & + FoldableWithIndex1<URI, number> & + Alt1<URI> diff --git a/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js b/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js new file mode 100644 index 0000000..90f4dbf --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js @@ -0,0 +1,1316 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.traverse = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = exports.reduceRight = exports.foldMap = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.of = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zipWith = exports.modifyAt = exports.updateAt = exports.sort = exports.groupBy = exports.reverse = exports.fromArray = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromReadonlyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = exports.empty = void 0; +exports.insertAt = exports.snoc = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.chain = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = void 0; +exports.readonlyNonEmptyArray = exports.fold = exports.prependToAll = void 0; +exports.concatW = concatW; +exports.concat = concat; +exports.group = group; +exports.zip = zip; +exports.groupSort = groupSort; +exports.filter = filter; +exports.cons = cons; +var Apply_1 = require("./Apply"); +var Chain_1 = require("./Chain"); +var Eq_1 = require("./Eq"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var Ord_1 = require("./Ord"); +var Se = __importStar(require("./Semigroup")); +// ------------------------------------------------------------------------------------- +// internal +// ------------------------------------------------------------------------------------- +/** + * @internal + */ +exports.empty = _.emptyReadonlyArray; +/** + * @internal + */ +exports.isNonEmpty = _.isNonEmpty; +/** + * @internal + */ +var isOutOfBound = function (i, as) { return i < 0 || i >= as.length; }; +exports.isOutOfBound = isOutOfBound; +/** + * @internal + */ +var prependW = function (head) { + return function (tail) { + return __spreadArray([head], tail, true); + }; +}; +exports.prependW = prependW; +/** + * @internal + */ +exports.prepend = exports.prependW; +/** + * @internal + */ +var appendW = function (end) { + return function (init) { + return __spreadArray(__spreadArray([], init, true), [end], false); + }; +}; +exports.appendW = appendW; +/** + * @internal + */ +exports.append = exports.appendW; +/** + * @internal + */ +var unsafeInsertAt = function (i, a, as) { + if ((0, exports.isNonEmpty)(as)) { + var xs = _.fromReadonlyNonEmptyArray(as); + xs.splice(i, 0, a); + return xs; + } + return [a]; +}; +exports.unsafeInsertAt = unsafeInsertAt; +/** + * @internal + */ +var unsafeUpdateAt = function (i, a, as) { + if (as[i] === a) { + return as; + } + else { + var xs = _.fromReadonlyNonEmptyArray(as); + xs[i] = a; + return xs; + } +}; +exports.unsafeUpdateAt = unsafeUpdateAt; +/** + * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element. + * + * @example + * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2]) + * + * @since 2.11.0 + */ +var uniq = function (E) { + return function (as) { + if (as.length === 1) { + return as; + } + var out = [(0, exports.head)(as)]; + var rest = (0, exports.tail)(as); + var _loop_1 = function (a) { + if (out.every(function (o) { return !E.equals(o, a); })) { + out.push(a); + } + }; + for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) { + var a = rest_1[_i]; + _loop_1(a); + } + return out; + }; +}; +exports.uniq = uniq; +/** + * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`, + * etc... + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { contramap } from 'fp-ts/Ord' + * import * as S from 'fp-ts/string' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * interface Person { + * name: string + * age: number + * } + * + * const byName = pipe(S.Ord, contramap((p: Person) => p.name)) + * + * const byAge = pipe(N.Ord, contramap((p: Person) => p.age)) + * + * const sortByNameByAge = RNEA.sortBy([byName, byAge]) + * + * const persons: RNEA.ReadonlyNonEmptyArray<Person> = [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 }, + * { name: 'b', age: 2 } + * ] + * + * assert.deepStrictEqual(sortByNameByAge(persons), [ + * { name: 'a', age: 1 }, + * { name: 'b', age: 2 }, + * { name: 'b', age: 3 }, + * { name: 'c', age: 2 } + * ]) + * + * @since 2.11.0 + */ +var sortBy = function (ords) { + if ((0, exports.isNonEmpty)(ords)) { + var M = (0, Ord_1.getMonoid)(); + return (0, exports.sort)(ords.reduce(M.concat, M.empty)); + } + return function_1.identity; +}; +exports.sortBy = sortBy; +/** + * @since 2.11.0 + */ +var union = function (E) { + var uniqE = (0, exports.uniq)(E); + return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; }; +}; +exports.union = union; +/** + * Rotate a `ReadonlyNonEmptyArray` by `n` steps. + * + * @example + * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3]) + * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2]) + * + * @since 2.11.0 + */ +var rotate = function (n) { + return function (as) { + var len = as.length; + var m = Math.round(n) % len; + if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) { + return as; + } + if (m < 0) { + var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1]; + return (0, function_1.pipe)(s, concat(f)); + } + else { + return (0, exports.rotate)(m - len)(as); + } + }; +}; +exports.rotate = rotate; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty. + * + * @category conversions + * @since 2.5.0 + */ +var fromReadonlyArray = function (as) { + return (0, exports.isNonEmpty)(as) ? _.some(as) : _.none; +}; +exports.fromReadonlyArray = fromReadonlyArray; +/** + * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * const double = (n: number): number => n * 2 + * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8]) + * + * @category constructors + * @since 2.11.0 + */ +var makeBy = function (f) { + return function (n) { + var j = Math.max(0, Math.floor(n)); + var out = [f(0)]; + for (var i = 1; i < j; i++) { + out.push(f(i)); + } + return out; + }; +}; +exports.makeBy = makeBy; +/** + * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times. + * + * **Note**. `n` is normalized to a natural number. + * + * @example + * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a']) + * + * @category constructors + * @since 2.11.0 + */ +var replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); }; +exports.replicate = replicate; +/** + * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints. + * + * @example + * import { range } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5]) + * + * @category constructors + * @since 2.11.0 + */ +var range = function (start, end) { + return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start]; +}; +exports.range = range; +/** + * Return the tuple of the `head` and the `tail`. + * + * @example + * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]]) + * + * @since 2.9.0 + */ +var unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; }; +exports.unprepend = unprepend; +/** + * Return the tuple of the `init` and the `last`. + * + * @example + * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4]) + * + * @since 2.9.0 + */ +var unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; }; +exports.unappend = unappend; +/** + * @category conversions + * @since 2.5.0 + */ +var fromArray = function (as) { return (0, exports.fromReadonlyArray)(as.slice()); }; +exports.fromArray = fromArray; +function concatW(second) { + return function (first) { return first.concat(second); }; +} +function concat(x, y) { + return y ? x.concat(y) : function (y) { return y.concat(x); }; +} +/** + * @since 2.5.0 + */ +var reverse = function (as) { + return as.length === 1 ? as : __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true); +}; +exports.reverse = reverse; +function group(E) { + return function (as) { + var len = as.length; + if (len === 0) { + return exports.empty; + } + var out = []; + var head = as[0]; + var nea = [head]; + for (var i = 1; i < len; i++) { + var a = as[i]; + if (E.equals(a, head)) { + nea.push(a); + } + else { + out.push(nea); + head = a; + nea = [head]; + } + } + out.push(nea); + return out; + }; +} +/** + * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning + * function on each element, and grouping the results according to values returned + * + * @example + * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), { + * '1': ['a', 'b'], + * '2': ['ab'] + * }) + * + * @since 2.5.0 + */ +var groupBy = function (f) { + return function (as) { + var out = {}; + for (var _i = 0, as_1 = as; _i < as_1.length; _i++) { + var a = as_1[_i]; + var k = f(a); + if (_.has.call(out, k)) { + out[k].push(a); + } + else { + out[k] = [a]; + } + } + return out; + }; +}; +exports.groupBy = groupBy; +/** + * @since 2.5.0 + */ +var sort = function (O) { + return function (as) { + return as.length === 1 ? as : as.slice().sort(O.compare); + }; +}; +exports.sort = sort; +/** + * @since 2.5.0 + */ +var updateAt = function (i, a) { + return (0, exports.modifyAt)(i, function () { return a; }); +}; +exports.updateAt = updateAt; +/** + * @since 2.5.0 + */ +var modifyAt = function (i, f) { + return function (as) { + return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as)); + }; +}; +exports.modifyAt = modifyAt; +/** + * @since 2.5.1 + */ +var zipWith = function (as, bs, f) { + var cs = [f(as[0], bs[0])]; + var len = Math.min(as.length, bs.length); + for (var i = 1; i < len; i++) { + cs[i] = f(as[i], bs[i]); + } + return cs; +}; +exports.zipWith = zipWith; +function zip(as, bs) { + if (bs === undefined) { + return function (bs) { return zip(bs, as); }; + } + return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; }); +} +/** + * @since 2.5.1 + */ +var unzip = function (abs) { + var fa = [abs[0][0]]; + var fb = [abs[0][1]]; + for (var i = 1; i < abs.length; i++) { + fa[i] = abs[i][0]; + fb[i] = abs[i][1]; + } + return [fa, fb]; +}; +exports.unzip = unzip; +/** + * Prepend an element to every member of a `ReadonlyNonEmptyArray`. + * + * @example + * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.10.0 + */ +var prependAll = function (middle) { + return function (as) { + var out = [middle, as[0]]; + for (var i = 1; i < as.length; i++) { + out.push(middle, as[i]); + } + return out; + }; +}; +exports.prependAll = prependAll; +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`. + * + * @example + * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4]) + * + * @since 2.9.0 + */ +var intersperse = function (middle) { + return function (as) { + var rest = (0, exports.tail)(as); + return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : as; + }; +}; +exports.intersperse = intersperse; +/** + * @category sequencing + * @since 2.10.0 + */ +var chainWithIndex = function (f) { + return function (as) { + var out = _.fromReadonlyNonEmptyArray(f(0, (0, exports.head)(as))); + for (var i = 1; i < as.length; i++) { + var bs = f(i, as[i]); + for (var j = 0; j < bs.length; j++) { + out.push(bs[j]); + } + } + return out; + }; +}; +exports.chainWithIndex = chainWithIndex; +/** + * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for "chopping" up the input + * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a + * value and the tail of the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +var chop = function (f) { + return function (as) { + var _a = f(as), b = _a[0], rest = _a[1]; + var out = [b]; + var next = rest; + while ((0, exports.isNonEmpty)(next)) { + var _b = f(next), b_1 = _b[0], rest_2 = _b[1]; + out.push(b_1); + next = rest_2; + } + return out; + }; +}; +exports.chop = chop; +/** + * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements. + * + * @since 2.10.0 + */ +var splitAt = function (n) { + return function (as) { + var m = Math.max(1, n); + return m >= as.length ? [as, exports.empty] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)]; + }; +}; +exports.splitAt = splitAt; +/** + * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of + * the `ReadonlyNonEmptyArray`. + * + * @since 2.10.0 + */ +var chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); }; +exports.chunksOf = chunksOf; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/* istanbul ignore next */ +var _reduceWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f)); +}; +/* istanbul ignore next */ +var _foldMapWithIndex = function (M) { + var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRightWithIndex = function (fa, b, f) { + return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f)); +}; +/* istanbul ignore next */ +var _traverseWithIndex = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); }; +}; +/** + * @category constructors + * @since 2.5.0 + */ +exports.of = _.singleton; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray<number>, + * RNEA.altW(() => ['a', 'b']) + * ), + * [1, 2, 3, 'a', 'b'] + * ) + * + * @category error handling + * @since 2.9.0 + */ +var altW = function (that) { + return function (as) { + return (0, function_1.pipe)(as, concatW(that())); + }; +}; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array. + * + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.alt(() => [4, 5]) + * ), + * [1, 2, 3, 4, 5] + * ) + * + * @category error handling + * @since 2.6.2 + */ +exports.alt = exports.altW; +/** + * @since 2.5.0 + */ +var ap = function (as) { return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); }); }; +exports.ap = ap; +/** + * @example + * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RNEA.flatMap((n) => [`a${n}`, `b${n}`]) + * ), + * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3'] + * ) + * + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); })); +}); +/** + * @since 2.5.0 + */ +var extend = function (f) { + return function (as) { + var next = (0, exports.tail)(as); + var out = [f(as)]; + while ((0, exports.isNonEmpty)(next)) { + out.push(f(next)); + next = (0, exports.tail)(next); + } + return out; + }; +}; +exports.extend = extend; +/** + * @since 2.5.0 + */ +exports.duplicate = +/*#__PURE__*/ (0, exports.extend)(function_1.identity); +/** + * @category sequencing + * @since 2.5.0 + */ +exports.flatten = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.5.0 + */ +var map = function (f) { + return (0, exports.mapWithIndex)(function (_, a) { return f(a); }); +}; +exports.map = map; +/** + * @category mapping + * @since 2.5.0 + */ +var mapWithIndex = function (f) { + return function (as) { + var out = [f(0, (0, exports.head)(as))]; + for (var i = 1; i < as.length; i++) { + out.push(f(i, as[i])); + } + return out; + }; +}; +exports.mapWithIndex = mapWithIndex; +/** + * @category folding + * @since 2.5.0 + */ +var reduce = function (b, f) { + return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); }); +}; +exports.reduce = reduce; +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +var foldMap = function (S) { + return function (f) { + return function (as) { + return as.slice(1).reduce(function (s, a) { return S.concat(s, f(a)); }, f(as[0])); + }; + }; +}; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.5.0 + */ +var reduceRight = function (b, f) { + return (0, exports.reduceRightWithIndex)(b, function (_, b, a) { return f(b, a); }); +}; +exports.reduceRight = reduceRight; +/** + * @category folding + * @since 2.5.0 + */ +var reduceWithIndex = function (b, f) { + return function (as) { + return as.reduce(function (b, a, i) { return f(i, b, a); }, b); + }; +}; +exports.reduceWithIndex = reduceWithIndex; +/** + * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`. + * + * @category folding + * @since 2.5.0 + */ +var foldMapWithIndex = function (S) { + return function (f) { + return function (as) { + return as.slice(1).reduce(function (s, a, i) { return S.concat(s, f(i + 1, a)); }, f(0, as[0])); + }; + }; +}; +exports.foldMapWithIndex = foldMapWithIndex; +/** + * @category folding + * @since 2.5.0 + */ +var reduceRightWithIndex = function (b, f) { + return function (as) { + return as.reduceRight(function (b, a, i) { return f(i, a, b); }, b); + }; +}; +exports.reduceRightWithIndex = reduceRightWithIndex; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + var traverseWithIndexF = (0, exports.traverseWithIndex)(F); + return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function_1.SK); }; +exports.sequence = sequence; +/** + * @category sequencing + * @since 2.6.3 + */ +var traverseWithIndex = function (F) { + return function (f) { + return function (as) { + var out = F.map(f(0, (0, exports.head)(as)), exports.of); + for (var i = 1; i < as.length; i++) { + out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i])); + } + return out; + }; + }; +}; +exports.traverseWithIndex = traverseWithIndex; +/** + * @category Comonad + * @since 2.6.3 + */ +exports.extract = _.head; +/** + * @category type lambdas + * @since 2.5.0 + */ +exports.URI = 'ReadonlyNonEmptyArray'; +/** + * @category instances + * @since 2.5.0 + */ +var getShow = function (S) { return ({ + show: function (as) { return "[".concat(as.map(S.show).join(', '), "]"); } +}); }; +exports.getShow = getShow; +/** + * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray` + * + * @category instances + * @since 2.5.0 + */ +var getSemigroup = function () { return ({ + concat: concat +}); }; +exports.getSemigroup = getSemigroup; +/** + * @example + * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray' + * import * as N from 'fp-ts/number' + * + * const E = getEq(N.Eq) + * assert.strictEqual(E.equals([1, 2], [1, 2]), true) + * assert.strictEqual(E.equals([1, 2], [1, 3]), false) + * + * @category instances + * @since 2.5.0 + */ +var getEq = function (E) { + return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); }); +}; +exports.getEq = getEq; +/** + * @since 2.11.0 + */ +var getUnionSemigroup = function (E) { + var unionE = (0, exports.union)(E); + return { + concat: function (first, second) { return unionE(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FunctorWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.5.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.5.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as RA from 'fp-ts/ReadonlyArray' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual( + * pipe( + * [1, 2, 3], + * RA.chainFirst(() => ['a', 'b']) + * ), + * [1, 1, 2, 2, 3, 3] + * ) + * + * @category sequencing + * @since 2.5.0 + */ +exports.chainFirst = (0, Chain_1.chainFirst)(exports.Chain); +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FoldableWithIndex = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.TraversableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = (0, Chain_1.bind)(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.5.0 + */ +exports.head = exports.extract; +/** + * @since 2.5.0 + */ +exports.tail = _.tail; +/** + * @since 2.5.0 + */ +var last = function (as) { return as[as.length - 1]; }; +exports.last = last; +/** + * Get all but the last element of a non empty array, creating a new array. + * + * @example + * import { init } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(init([1, 2, 3]), [1, 2]) + * assert.deepStrictEqual(init([1]), []) + * + * @since 2.5.0 + */ +var init = function (as) { return as.slice(0, -1); }; +exports.init = init; +/** + * @since 2.5.0 + */ +var min = function (O) { + var S = Se.min(O); + return function (as) { return as.reduce(S.concat); }; +}; +exports.min = min; +/** + * @since 2.5.0 + */ +var max = function (O) { + var S = Se.max(O); + return function (as) { return as.reduce(S.concat); }; +}; +exports.max = max; +/** + * @since 2.10.0 + */ +var concatAll = function (S) { + return function (as) { + return as.reduce(S.concat); + }; +}; +exports.concatAll = concatAll; +/** + * Break a `ReadonlyArray` into its first element and remaining elements. + * + * @category pattern matching + * @since 2.11.0 + */ +var matchLeft = function (f) { + return function (as) { + return f((0, exports.head)(as), (0, exports.tail)(as)); + }; +}; +exports.matchLeft = matchLeft; +/** + * Break a `ReadonlyArray` into its initial elements and the last element. + * + * @category pattern matching + * @since 2.11.0 + */ +var matchRight = function (f) { + return function (as) { + return f((0, exports.init)(as), (0, exports.last)(as)); + }; +}; +exports.matchRight = matchRight; +/** + * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +var modifyHead = function (f) { + return function (as) { + return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true); + }; +}; +exports.modifyHead = modifyHead; +/** + * Change the head, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +var updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); }; +exports.updateHead = updateHead; +/** + * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +var modifyLast = function (f) { + return function (as) { + return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as)))); + }; +}; +exports.modifyLast = modifyLast; +/** + * Change the last element, creating a new `ReadonlyNonEmptyArray`. + * + * @since 2.11.0 + */ +var updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); }; +exports.updateLast = updateLast; +/** + * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`. + * + * @example + * import * as S from 'fp-ts/string' + * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray' + * + * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c') + * + * @since 2.12.0 + */ +var intercalate = function (S) { + var concatAllS = (0, exports.concatAll)(S); + return function (middle) { return (0, function_1.flow)((0, exports.intersperse)(middle), concatAllS); }; +}; +exports.intercalate = intercalate; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.5.0 + */ +exports.chain = exports.flatMap; +function groupSort(O) { + var sortO = (0, exports.sort)(O); + var groupO = group(O); + return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : exports.empty); }; +} +function filter(predicate) { + return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); }); +} +/** + * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +var filterWithIndex = function (predicate) { + return function (as) { + return (0, exports.fromReadonlyArray)(as.filter(function (a, i) { return predicate(i, a); })); + }; +}; +exports.filterWithIndex = filterWithIndex; +/** + * Use [`unprepend`](#unprepend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +exports.uncons = exports.unprepend; +/** + * Use [`unappend`](#unappend) instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +exports.unsnoc = exports.unappend; +function cons(head, tail) { + return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head)); +} +/** + * Use [`append`](./ReadonlyArray.ts.html#append) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +var snoc = function (init, end) { return (0, function_1.pipe)(init, concat([end])); }; +exports.snoc = snoc; +/** + * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +var insertAt = function (i, a) { + return function (as) { + return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as)); + }; +}; +exports.insertAt = insertAt; +/** + * Use [`prependAll`](#prependall) instead. + * + * @category zone of death + * @since 2.9.0 + * @deprecated + */ +exports.prependToAll = exports.prependAll; +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.fold = exports.concatAll; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray` + * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.readonlyNonEmptyArray = { + URI: exports.URI, + of: exports.of, + map: _map, + mapWithIndex: _mapWithIndex, + ap: _ap, + chain: exports.flatMap, + extend: _extend, + extract: exports.extract, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + reduceWithIndex: _reduceWithIndex, + foldMapWithIndex: _foldMapWithIndex, + reduceRightWithIndex: _reduceRightWithIndex, + traverseWithIndex: _traverseWithIndex, + alt: _alt +}; diff --git a/node_modules/fp-ts/lib/ReadonlyRecord.d.ts b/node_modules/fp-ts/lib/ReadonlyRecord.d.ts new file mode 100644 index 0000000..60cf5c4 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyRecord.d.ts @@ -0,0 +1,1385 @@ +/** + * The `ReadonlyRecord.ts` module enables dealing in a functional way with + * Typescript's `Readonly<Record<K, T>>` type. That is similar to the + * `Record.ts` module, but for a record with all properties + * declared as `readonly`. + * + * @since 2.5.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable as FoldableHKT, Foldable1, Foldable2, Foldable3 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { Traversable1 } from './Traversable' +import { TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import Semigroup = Se.Semigroup +/** + * @category model + * @since 2.5.0 + */ +export type ReadonlyRecord<K extends string, T> = Readonly<Record<K, T>> +/** + * Builds a `ReadonlyRecord` by copying a `Record`. + * + * @example + * import { ReadonlyRecord, fromRecord } from "fp-ts/ReadonlyRecord" + * + * const x: Record<string, number> = { a: 1, b: 2 }; + * const y: ReadonlyRecord<string, number> = fromRecord(x); + * assert.deepStrictEqual(x,y); + * // `y.a = 5` gives compiler error + * + * @category conversions + * @since 2.5.0 + */ +export declare const fromRecord: <K extends string, A>(r: Record<K, A>) => ReadonlyRecord<K, A> +/** + * Builds a mutable `Record` from a `ReadonlyRecord`. + * + * @example + * import { ReadonlyRecord, toRecord } from "fp-ts/ReadonlyRecord" + * + * const x: ReadonlyRecord<string, number> = { a: 1, b: 2 }; + * const y: Record<string, number> = toRecord(x); + * assert.deepStrictEqual(x,y); + * y.a = 5; // it's ok, y is mutable + * + * @category conversions + * @since 2.5.0 + */ +export declare const toRecord: <K extends string, A>(r: ReadonlyRecord<K, A>) => Record<K, A> +/** + * Calculate the number of key/value pairs in a `ReadonlyRecord`, + * + * @example + * import { size } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.5.0 + */ +export declare const size: <A>(r: ReadonlyRecord<string, A>) => number +/** + * Test whether a `ReadonlyRecord` is empty. + * + * @example + * import { isEmpty } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * @since 2.5.0 + */ +export declare const isEmpty: <A>(r: ReadonlyRecord<string, A>) => boolean +/** + * @since 2.5.0 + */ +export declare const keys: <K extends string>(r: ReadonlyRecord<K, unknown>) => ReadonlyArray<K> +/** + * Map a `ReadonlyRecord` into an `ReadonlyArray`. + * + * @example + * import { collect } from 'fp-ts/ReadonlyRecord' + * import { Ord } from 'fp-ts/string' + * + * const f = <A>(k: string, a: A) => `${k.toUpperCase()}-${a}`; + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(collect(Ord)(f)(x), ["A-foo", "B-false", "C-3"]); + * + * @since 2.5.0 + */ +export declare function collect( + O: Ord<string> +): <K extends string, A, B>(f: (k: K, a: A) => B) => (r: ReadonlyRecord<K, A>) => ReadonlyArray<B> +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function collect<K extends string, A, B>( + f: (k: K, a: A) => B +): (r: ReadonlyRecord<K, A>) => ReadonlyArray<B> +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`. + * + * @example + * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toReadonlyArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.5.0 + */ +export declare const toReadonlyArray: <K extends string, A>(r: ReadonlyRecord<K, A>) => ReadonlyArray<readonly [K, A]> +/** + * Unfolds a `ReadonlyRecord` into a list of key/value pairs. + * + * Given an `Unfoldable` class type `U` such as `array` or `readonlyArray`, + * it uses the `unfold` function to create an instance of `U`, + * providing an iterating function that iterates over each + * key/value pair in the record sorted alphabetically by key. + * + * @example + * import { array, readonlyArray } from 'fp-ts' + * import { toUnfoldable } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(toUnfoldable(array)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * assert.deepStrictEqual(toUnfoldable(readonlyArray)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * + * @category conversions + * @since 2.5.0 + */ +export declare function toUnfoldable<F extends URIS>( + U: Unfoldable1<F> +): <K extends string, A>(r: ReadonlyRecord<K, A>) => Kind<F, readonly [K, A]> +export declare function toUnfoldable<F>( + U: Unfoldable<F> +): <K extends string, A>(r: ReadonlyRecord<K, A>) => HKT<F, readonly [K, A]> +/** + * Insert or replace a key/value pair in a `ReadonlyRecord`. + * + * @example + * import { upsertAt } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +export declare const upsertAt: <A>(k: string, a: A) => (r: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Test whether or not a key exists in a `ReadonlyRecord`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +export declare const has: <K extends string>(k: string, r: ReadonlyRecord<K, unknown>) => k is K +/** + * Delete a key and value from a `ReadonlyRecord`. + * + * @example + * import { deleteAt } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(deleteAt("a")({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(deleteAt("c")({ a: 1, b: 2 }), { a: 1, b: 2 }); + * + * @since 2.5.0 + */ +export declare function deleteAt<K extends string>( + k: K +): <KS extends string, A>(r: ReadonlyRecord<KS, A>) => ReadonlyRecord<string extends K ? string : Exclude<KS, K>, A> +/** + * Replace a key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +export declare const updateAt: <A>( + k: string, + a: A +) => <K extends string>(r: ReadonlyRecord<K, A>) => Option<ReadonlyRecord<K, A>> +/** + * Applies a mapping function to one specific key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +export declare const modifyAt: <A>( + k: string, + f: (a: A) => A +) => <K extends string>(r: ReadonlyRecord<K, A>) => Option<ReadonlyRecord<K, A>> +/** + * Delete a key and value from a `ReadonlyRecord`, returning the value as well as the subsequent `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `ReadonlyRecord` + * with the entry removed, otherwise it returns `None` + * + * @example + * import { pop } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(pop("a")({ a: 1, b: 2, c: 3 }), option.some([1, { b: 2, c: 3 }])); + * assert.deepStrictEqual(pop("x")({ a: 1, b: 2, c: 3 }), option.none); + * + * @since 2.5.0 + */ +export declare function pop<K extends string>( + k: K +): <KS extends string, A>( + r: ReadonlyRecord<KS, A> +) => Option<readonly [A, ReadonlyRecord<string extends K ? string : Exclude<KS, K>, A>]> +/** + * Test whether one `ReadonlyRecord` contains all of the keys and values + * contained in another `ReadonlyRecord`. + * + * @example + * import { isSubrecord } from 'fp-ts/ReadonlyRecord' + * import { string } from 'fp-ts' + * + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "bar", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "not-bar", c: "baz" }), + * false + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar" })({ a: "foo", b: "bar", c: "baz" }), + * false + * ); + * + * @since 2.5.0 + */ +export declare function isSubrecord<A>(E: Eq<A>): { + (that: ReadonlyRecord<string, A>): (me: ReadonlyRecord<string, A>) => boolean + (me: ReadonlyRecord<string, A>, that: ReadonlyRecord<string, A>): boolean +} +/** + * Lookup the value for a key in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing the value, + * otherwise it returns `None` + * + * @example + * import { lookup } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(lookup("b")({ a: "foo", b: "bar" }), option.some("bar")); + * assert.deepStrictEqual(lookup("c")({ a: "foo", b: "bar" }), option.none); + * + * @since 2.5.0 + */ +export declare function lookup(k: string): <A>(r: ReadonlyRecord<string, A>) => Option<A> +export declare function lookup<A>(k: string, r: ReadonlyRecord<string, A>): Option<A> +/** + * @since 2.5.0 + */ +export declare const empty: ReadonlyRecord<string, never> +/** + * Map a `ReadonlyRecord` passing the keys to the iterating function. + * + * @example + * import { mapWithIndex } from "fp-ts/ReadonlyRecord"; + * + * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`; + * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: "A-3", b: "B-5" }); + * + * @since 2.5.0 + */ +export declare function mapWithIndex<K extends string, A, B>( + f: (k: K, a: A) => B +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<K, B> +/** + * Map a `ReadonlyRecord` passing the values to the iterating function. + * + * @example + * import { map } from "fp-ts/ReadonlyRecord"; + * + * const f = (n: number) => `-${n}-`; + * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: "-3-", b: "-5-" }); + * + * @since 2.5.0 + */ +export declare function map<A, B>(f: (a: A) => B): <K extends string>(fa: ReadonlyRecord<K, A>) => ReadonlyRecord<K, B> +/** + * Reduces a `ReadonlyRecord` passing each key/value pair to the iterating function. + * Entries are processed in the order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduceWithIndex } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceWithIndex(Ord)([] as string[], (k, b, a) => [...b, `${k}-${a}`])(x), [ + * "a-foo", + * "b-false", + * "c-3", + * ]); + * + * @since 2.5.0 + */ +export declare function reduceWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, b: B, a: A) => B) => (fa: ReadonlyRecord<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceWithIndex<K extends string, A, B>( + b: B, + f: (k: K, b: B, a: A) => B +): (fa: ReadonlyRecord<K, A>) => B +/** + * Map and fold a `ReadonlyRecord`. + * Map the `ReadonlyRecord` passing each key/value pair to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMapWithIndex } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (k:string, a: number) => `${k}-${a}` + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMapWithIndex(Ord)(m)(f)(x), "a-1 -> b-2 -> c-3"); + * + * @since 2.5.0 + */ +export declare function foldMapWithIndex( + O: Ord<string> +): <M>(M: Monoid<M>) => <K extends string, A>(f: (k: K, a: A) => M) => (fa: ReadonlyRecord<K, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMapWithIndex<M>( + M: Monoid<M> +): <K extends string, A>(f: (k: K, a: A) => M) => (fa: ReadonlyRecord<K, A>) => M +/** + * Same as `reduceWithIndex`, but reduce starting from the right + * (i.e. in reverse order, from the last to the first entry according to + * the given `Ord`). + * + * @example + * import { reduceRightWithIndex } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRightWithIndex(Ord)([] as string[], (k, a, b) => [...b, `${k}-${a}`])(x), [ + * "c-3", + * "b-false", + * "a-foo", + * ]); + * + * @since 2.5.0 + */ +export declare function reduceRightWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, a: A, b: B) => B) => (fa: ReadonlyRecord<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRightWithIndex<K extends string, A, B>( + b: B, + f: (k: K, a: A, b: B) => B +): (fa: ReadonlyRecord<K, A>) => B +/** + * Create a `ReadonlyRecord` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @category constructors + * @since 2.5.0 + */ +export declare const singleton: <A>(k: string, a: A) => ReadonlyRecord<string, A> +/** + * @since 2.5.0 + */ +export declare function traverseWithIndex<F extends URIS4>( + F: Applicative4<F> +): <K extends string, S, R, E, A, B>( + f: (k: K, a: A) => Kind4<F, S, R, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind4<F, S, R, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A, B>( + f: (k: K, a: A) => Kind2<F, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A, B>( + f: (k: K, a: A) => Kind2<F, E, B> +) => (ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F extends URIS>( + F: Applicative1<F> +): <K extends string, A, B>( + f: (k: K, a: A) => Kind<F, B> +) => (ta: ReadonlyRecord<K, A>) => Kind<F, ReadonlyRecord<K, B>> +export declare function traverseWithIndex<F>( + F: Applicative<F> +): <K extends string, A, B>(f: (k: K, a: A) => HKT<F, B>) => (ta: ReadonlyRecord<K, A>) => HKT<F, ReadonlyRecord<K, B>> +/** + * @since 2.5.0 + */ +export declare function traverse<F extends URIS4>( + F: Applicative4<F> +): <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind4<F, S, R, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS3>( + F: Applicative3<F> +): <R, E, A, B>( + f: (a: A) => Kind3<F, R, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS3, E>( + F: Applicative3C<F, E> +): <R, A, B>( + f: (a: A) => Kind3<F, R, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind3<F, R, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS2>( + F: Applicative2<F> +): <E, A, B>( + f: (a: A) => Kind2<F, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS2, E>( + F: Applicative2C<F, E> +): <A, B>( + f: (a: A) => Kind2<F, E, B> +) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind2<F, E, ReadonlyRecord<K, B>> +export declare function traverse<F extends URIS>( + F: Applicative1<F> +): <A, B>(f: (a: A) => Kind<F, B>) => <K extends string>(ta: ReadonlyRecord<K, A>) => Kind<F, ReadonlyRecord<K, B>> +export declare function traverse<F>( + F: Applicative<F> +): <A, B>(f: (a: A) => HKT<F, B>) => <K extends string>(ta: ReadonlyRecord<K, A>) => HKT<F, ReadonlyRecord<K, B>> +/** + * `ReadonlyRecord` sequencing, + * i.e., take a `ReadonlyRecord` in which elements are monads + * and return a monad of a `ReadonlyRecord` of the base types. + * The following example for instance shows sequencing + * a `ReadonlyRecord<string, Option<number>>` + * into an `Option<ReadonlyRecord<string, number>>`. + * + * `sequence` in `ReadonlyRecord` is equivalent to `sequenceS` in `Apply.ts`. + * + * @example + * import { sequence } from "fp-ts/ReadonlyRecord"; + * import { option } from "fp-ts"; + * import { sequenceS } from "fp-ts/Apply"; + * + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * option.some({ a: 1, b: 2 }) + * ); + * assert.deepStrictEqual(sequence(option.Applicative)({ a: option.some(1), b: option.none }), option.none); + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * sequenceS(option.Applicative)({ a: option.some(1), b: option.some(2) }) + * ); + * + * @since 2.5.0 + */ +export declare function sequence<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A>(ta: ReadonlyRecord<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A>(ta: ReadonlyRecord<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A>(ta: ReadonlyRecord<K, Kind2<F, E, A>>) => Kind2<F, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A>(ta: ReadonlyRecord<K, Kind2<F, E, A>>) => Kind2<F, E, ReadonlyRecord<K, A>> +export declare function sequence<F extends URIS>( + F: Applicative1<F> +): <K extends string, A>(ta: ReadonlyRecord<K, Kind<F, A>>) => Kind<F, ReadonlyRecord<K, A>> +export declare function sequence<F>( + F: Applicative<F> +): <K extends string, A>(ta: ReadonlyRecord<K, HKT<F, A>>) => HKT<F, ReadonlyRecord<K, A>> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * Maps a `ReadonlyRecord` with a function returning an `Either` and + * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s. + * + * @example + * import { partitionMapWithIndex } from "fp-ts/ReadonlyRecord" + * import { either } from "fp-ts" + * + * const f = (key: string, a: number) => + * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`); + * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), { + * left: { + * a: "a is < 0 (-1)", + * }, + * right: { + * b: "b is >= 0 (2)", + * c: "c is >= 0 (123)", + * }, + * }); + * + * @since 2.5.0 + */ +export declare function partitionMapWithIndex<K extends string, A, B, C>( + f: (key: K, a: A) => Either<B, C> +): (fa: ReadonlyRecord<K, A>) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, C>> +/** + * Partition a `ReadonlyRecord` into two parts according to a predicate + * that takes a key and a value. + * + * @example + * import { partitionWithIndex } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual( + * partitionWithIndex((key: string, a: number) => key.length <= 1 && a > 0)({ a: -1, b: 2, ccc: 7 }), + * { + * left: { + * a: -1, + * ccc: 7, + * }, + * right: { + * b: 2, + * }, + * } + * ); + * + * @since 2.5.0 + */ +export declare function partitionWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: ReadonlyRecord<K, A>) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: ReadonlyRecord<K, B>) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: ReadonlyRecord<K, A>) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, A>> +/** + * Maps a `ReadonlyRecord` with an iterating function that takes key and value and + * returns an `Option`, keeping only the `Some` values and discarding `None`s. + * + * @example + * import { filterMapWithIndex } from "fp-ts/ReadonlyRecord" + * import { option } from "fp-ts" + * + * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none); + * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), { + * b: "b2", + * c: "c3", + * }); + * + * @since 2.5.0 + */ +export declare function filterMapWithIndex<K extends string, A, B>( + f: (key: K, a: A) => Option<B> +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<string, B> +/** + * Produce a new `ReadonlyRecord` keeping only the entries that satisfy + * a predicate taking key and value as input. + * + * @example + * import { filterWithIndex } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual( + * filterWithIndex((s: string, v: number) => s.length <= 1 && v > 0)({ a: 1, b: -2, ccc: 3 }), + * { + * a: 1, + * } + * ); + * + * @since 2.5.0 + */ +export declare function filterWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: ReadonlyRecord<K, B>) => ReadonlyRecord<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: ReadonlyRecord<K, A>) => ReadonlyRecord<string, A> +/** + * Create a `ReadonlyRecord` from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @since 2.5.0 + */ +export declare function fromFoldable<F extends URIS3, A>( + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, readonly [string, A]>) => ReadonlyRecord<string, A> +export declare function fromFoldable<F extends URIS2, A>( + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, readonly [string, A]>) => ReadonlyRecord<string, A> +export declare function fromFoldable<F extends URIS, A>( + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, readonly [string, A]>) => ReadonlyRecord<string, A> +export declare function fromFoldable<F, A>( + M: Magma<A>, + F: FoldableHKT<F> +): (fka: HKT<F, readonly [string, A]>) => ReadonlyRecord<string, A> +/** + * Create a `ReadonlyRecord` from a foldable collection using the specified functions to: + * + * - map to key/value pairs + * - combine values for duplicate keys. + * + * @example + * import { last } from 'fp-ts/Semigroup' + * import { Foldable, zip } from 'fp-ts/ReadonlyArray' + * import { identity } from 'fp-ts/function' + * import { ReadonlyRecord, fromFoldableMap } from 'fp-ts/ReadonlyRecord' + * + * export const zipObject = <K extends string, A>(keys: ReadonlyArray<K>, values: ReadonlyArray<A>): ReadonlyRecord<K, A> => + * fromFoldableMap(last<A>(), Foldable)(zip(keys, values), identity) + * + * assert.deepStrictEqual(zipObject(['a', 'b'], [1, 2, 3]), { a: 1, b: 2 }) + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const users: ReadonlyArray<User> = [ + * { id: 'id1', name: 'name1' }, + * { id: 'id2', name: 'name2' }, + * { id: 'id1', name: 'name3' } + * ] + * + * assert.deepStrictEqual(fromFoldableMap(last<User>(), Foldable)(users, user => [user.id, user]), { + * id1: { id: 'id1', name: 'name3' }, + * id2: { id: 'id2', name: 'name2' } + * }) + * + * @since 2.5.0 + */ +export declare function fromFoldableMap<F extends URIS3, B>( + M: Magma<B>, + F: Foldable3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +export declare function fromFoldableMap<F extends URIS2, B>( + M: Magma<B>, + F: Foldable2<F> +): <E, A>(fa: Kind2<F, E, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +export declare function fromFoldableMap<F extends URIS, B>( + M: Magma<B>, + F: Foldable1<F> +): <A>(fa: Kind<F, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +export declare function fromFoldableMap<F, B>( + M: Magma<B>, + F: FoldableHKT<F> +): <A>(fa: HKT<F, A>, f: (a: A) => readonly [string, B]) => ReadonlyRecord<string, B> +/** + * Alias of [`toReadonlyArray`](#toreadonlyarray). + * + * @example + * import { toEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @category conversions + * @since 2.12.0 + */ +export declare const toEntries: <K extends string, A>(r: ReadonlyRecord<K, A>) => ReadonlyArray<readonly [K, A]> +/** + * Converts a `ReadonlyArray` of `[key, value]` tuples into a `ReadonlyRecord`. + * + * @example + * import { fromEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +export declare const fromEntries: <A>(fa: ReadonlyArray<readonly [string, A]>) => ReadonlyRecord<string, A> +/** + * Test if every value in a `ReadonlyRecord` satisfies the predicate. + * + * @example + * import { every } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true); + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false); + * + * @since 2.5.0 + */ +export declare function every<A, B extends A>( + refinement: Refinement<A, B> +): Refinement<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> +export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlyRecord<string, A>> +/** + * Test if at least one value in a `ReadonlyRecord` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.5.0 + */ +export declare function some<A>(predicate: (a: A) => boolean): (r: ReadonlyRecord<string, A>) => boolean +/** + * Given an `Eq` checks if a `ReadonlyRecord` contains an entry with + * value equal to a provided value. + * + * @example + * import { elem } from "fp-ts/ReadonlyRecord" + * import { number } from "fp-ts" + * + * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true); + * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false); + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (fa: ReadonlyRecord<string, A>) => boolean + (a: A, fa: ReadonlyRecord<string, A>): boolean +} +/** + * Union of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const union: <A>( + M: Magma<A> +) => (second: ReadonlyRecord<string, A>) => (first: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Intersection of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +export declare const intersection: <A>( + M: Magma<A> +) => (second: ReadonlyRecord<string, A>) => (first: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Difference between two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const difference: <A>( + second: ReadonlyRecord<string, A> +) => (first: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: ReadonlyRecord<string, A>) => ReadonlyRecord<string, B> + <A>(predicate: Predicate<A>): <B extends A>(fb: ReadonlyRecord<string, B>) => ReadonlyRecord<string, B> + <A>(predicate: Predicate<A>): (fa: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +} +/** + * Maps a `ReadonlyRecord` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/ReadonlyRecord" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const filterMap: <A, B>( + f: (a: A) => Option<B> +) => (fa: ReadonlyRecord<string, A>) => ReadonlyRecord<string, B> +/** + * Partition a `ReadonlyRecord` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): ( + fa: ReadonlyRecord<string, A> + ) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> + <A>(predicate: Predicate<A>): <B extends A>( + fb: ReadonlyRecord<string, B> + ) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, B>> + <A>(predicate: Predicate<A>): ( + fa: ReadonlyRecord<string, A> + ) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, A>> +} +/** + * Maps a `ReadonlyRecord` with a function returning an `Either` and + * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/ReadonlyRecord" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: ReadonlyRecord<string, A>) => Separated<ReadonlyRecord<string, B>, ReadonlyRecord<string, C>> +/** + * Reduces a `ReadonlyRecord` passing each value to the iterating function. + * Entries are processed in order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduce } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduce(Ord)([] as string[], (b, a) => [...b, `-${a}-`])(x), [ + * "-foo-", + * "-false-", + * "-3-", + * ]); + * + * @category folding + * @since 2.5.0 + */ +export declare function reduce( + O: Ord<string> +): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlyRecord<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduce<A, B>(b: B, f: (b: B, a: A) => B): (fa: ReadonlyRecord<string, A>) => B +/** + * Map and fold a `ReadonlyRecord`. + * Map the `ReadonlyRecord` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (a: number) => `-${a}-`; + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMap(Ord)(m)(f)(x), "-1- -> -2- -> -3-"); + * + * @category folding + * @since 2.5.0 + */ +export declare function foldMap( + O: Ord<string> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: ReadonlyRecord<string, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMap<M>(M: Monoid<M>): <A>(f: (a: A) => M) => (fa: ReadonlyRecord<string, A>) => M +/** + * Same as `reduce` but entries are processed _from the right_, + * i.e. in reverse order, from the last to the first entry, according to + * the given `Ord`. + * + * @example + * import { reduceRight } from "fp-ts/ReadonlyRecord"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRight(Ord)([] as string[], (a, b) => [...b, `-${a}-`])(x), [ + * "-3-", + * "-false-", + * "-foo-", + * ]); + * + * @category folding + * @since 2.5.0 + */ +export declare function reduceRight( + O: Ord<string> +): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlyRecord<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRight<A, B>(b: B, f: (a: A, b: B) => B): (fa: ReadonlyRecord<string, A>) => B +/** + * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +export declare const compact: <A>(r: ReadonlyRecord<string, Option<A>>) => ReadonlyRecord<string, A> +/** + * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/ReadonlyRecord' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.5.0 + */ +export declare const separate: <A, B>( + r: ReadonlyRecord<string, Either<A, B>> +) => Separated<ReadonlyRecord<string, A>, ReadonlyRecord<string, B>> +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyRecord' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlyRecord<string, A> + } +} +/** + * Produces a `Show` for a `ReadonlyRecord`, given a `Show` for the base type + * (a `Show` produces a human-readable representation of an instance). + * `ReadonlyRecord` entries are sorted by key with the provided `Ord`. + * + * @example + * import { getShow, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Show } from "fp-ts/Show" + * import { Ord } from "fp-ts/string" + * + * const sNumber: Show<number> = { show: (n: number) => `${n}` }; + * const sRecord: Show<ReadonlyRecord<string, number>> = getShow(Ord)(sNumber); + * assert.deepStrictEqual(sRecord.show({ b: 2, a: 1 }), '{ "a": 1, "b": 2 }'); + * + * @category instances + * @since 2.5.0 + */ +export declare function getShow(O: Ord<string>): <A>(S: Show<A>) => Show<ReadonlyRecord<string, A>> +/** + * Use the overload constrained by `Ord` instead. + * + * @category zone of death + * @deprecated + */ +export declare function getShow<A>(S: Show<A>): Show<ReadonlyRecord<string, A>> +/** + * Given an `Eq` for the base type, it produces an `Eq` + * for a `ReadonlyRecord` of that base type. + * + * @example + * import { getEq, ReadonlyRecord } from "fp-ts/ReadonlyRecord"; + * import { string } from "fp-ts"; + * import { Eq } from "fp-ts/Eq"; + * + * const eq: Eq<ReadonlyRecord<string, string>> = getEq(string.Eq); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { b: "bar" }), false); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { a: "foo" }), true); + * + * @category instances + * @since 2.5.0 + */ +export declare function getEq<K extends string, A>(E: Eq<A>): Eq<ReadonlyRecord<K, A>> +/** + * Returns a `Monoid` instance for `ReadonlyRecord`s, given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `ReadonlyRecord`s comining the + * overlapping entries with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getMonoid } from 'fp-ts/ReadonlyRecord' + * + * const M = getMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.5.0 + */ +export declare function getMonoid<K extends string, A>(S: Semigroup<A>): Monoid<ReadonlyRecord<K, A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Takes a value and a `ReadonlyRecord` of functions and returns a + * `ReadonlyRecord` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/ReadonlyRecord" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <B>(fab: Kind<'ReadonlyRecord', (a: A) => B>) => Kind<'ReadonlyRecord', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, string> +/** + * Produces a `Foldable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldable: (O: Ord<string>) => Foldable1<URI> +/** + * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldableWithIndex: (O: Ord<string>) => FoldableWithIndex1<URI, string> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, string> +/** + * Produces a `Traversable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversable: (O: Ord<string>) => Traversable1<URI> +/** + * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversableWithIndex: (O: Ord<string>) => TraversableWithIndex1<URI, string> +/** + * @category filtering + * @since 2.11.0 + */ +export declare const getWitherable: (O: Ord<string>) => Witherable1<URI> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `union`. + * + * @example + * import { getUnionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(S: Semigroup<A>) => Semigroup<ReadonlyRecord<string, A>> +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `ReadonlyRecord`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(S: Semigroup<A>) => Monoid<ReadonlyRecord<string, A>> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(S: Semigroup<A>) => Semigroup<ReadonlyRecord<string, A>> +/** + * Produces a `Magma` with a `concat` function that combines + * two `ReadonlyRecord`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<ReadonlyRecord<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>() => Magma<ReadonlyRecord<string, A>> +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Foldable: Foldable1<URI> +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, string> +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Traversable: Traversable1<URI> +/** + * Use `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, string> +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Witherable: Witherable1<URI> +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const insertAt: <A>(k: string, a: A) => (r: ReadonlyRecord<string, A>) => ReadonlyRecord<string, A> +/** + * Use [`has`](#has) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare function hasOwnProperty<K extends string>(k: string, r: ReadonlyRecord<K, unknown>): k is K +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RR.Functor` instead of `RR.readonlyRecord` + * (where `RR` is from `import RR from 'fp-ts/ReadonlyRecord'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyRecord: FunctorWithIndex1<URI, string> & + FoldableWithIndex1<URI, string> & + FilterableWithIndex1<URI, string> & + TraversableWithIndex1<URI, string> & + Witherable1<URI> diff --git a/node_modules/fp-ts/lib/ReadonlyRecord.js b/node_modules/fp-ts/lib/ReadonlyRecord.js new file mode 100644 index 0000000..f138768 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyRecord.js @@ -0,0 +1,1470 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Compactable = exports.getFoldableWithIndex = exports.getFoldable = exports.FunctorWithIndex = exports.flap = exports.Functor = exports.URI = exports.separate = exports.compact = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports._sequence = exports._traverse = exports._filterWithIndex = exports._filterMapWithIndex = exports._partitionWithIndex = exports._partitionMapWithIndex = exports._reduceRightWithIndex = exports._foldMapWithIndex = exports._reduceWithIndex = exports._partitionMap = exports._partition = exports._filterMap = exports._filter = exports._reduceRight = exports._foldMap = exports._reduce = exports._mapWithIndex = exports._map = exports.difference = exports.intersection = exports.union = exports.fromEntries = exports.toEntries = exports.wilt = exports.wither = exports.singleton = exports.empty = exports.modifyAt = exports.updateAt = exports.has = exports.upsertAt = exports.toReadonlyArray = exports.keys = exports.isEmpty = exports.size = exports.toRecord = exports.fromRecord = void 0; +exports.readonlyRecord = exports.insertAt = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getWitherable = exports.getTraversableWithIndex = exports.getTraversable = exports.FilterableWithIndex = exports.Filterable = void 0; +exports.collect = collect; +exports.toUnfoldable = toUnfoldable; +exports.deleteAt = deleteAt; +exports.pop = pop; +exports.isSubrecord = isSubrecord; +exports.lookup = lookup; +exports.mapWithIndex = mapWithIndex; +exports.map = map; +exports.reduceWithIndex = reduceWithIndex; +exports.foldMapWithIndex = foldMapWithIndex; +exports.reduceRightWithIndex = reduceRightWithIndex; +exports.traverseWithIndex = traverseWithIndex; +exports.traverse = traverse; +exports.sequence = sequence; +exports.partitionMapWithIndex = partitionMapWithIndex; +exports.partitionWithIndex = partitionWithIndex; +exports.filterMapWithIndex = filterMapWithIndex; +exports.filterWithIndex = filterWithIndex; +exports.fromFoldable = fromFoldable; +exports.fromFoldableMap = fromFoldableMap; +exports.every = every; +exports.some = some; +exports.elem = elem; +exports.reduce = reduce; +exports.foldMap = foldMap; +exports.reduceRight = reduceRight; +exports.getShow = getShow; +exports.getEq = getEq; +exports.getMonoid = getMonoid; +exports.hasOwnProperty = hasOwnProperty; +var Eq_1 = require("./Eq"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var Separated_1 = require("./Separated"); +var S = __importStar(require("./string")); +var Witherable_1 = require("./Witherable"); +/** + * Builds a `ReadonlyRecord` by copying a `Record`. + * + * @example + * import { ReadonlyRecord, fromRecord } from "fp-ts/ReadonlyRecord" + * + * const x: Record<string, number> = { a: 1, b: 2 }; + * const y: ReadonlyRecord<string, number> = fromRecord(x); + * assert.deepStrictEqual(x,y); + * // `y.a = 5` gives compiler error + * + * @category conversions + * @since 2.5.0 + */ +var fromRecord = function (r) { return Object.assign({}, r); }; +exports.fromRecord = fromRecord; +/** + * Builds a mutable `Record` from a `ReadonlyRecord`. + * + * @example + * import { ReadonlyRecord, toRecord } from "fp-ts/ReadonlyRecord" + * + * const x: ReadonlyRecord<string, number> = { a: 1, b: 2 }; + * const y: Record<string, number> = toRecord(x); + * assert.deepStrictEqual(x,y); + * y.a = 5; // it's ok, y is mutable + * + * @category conversions + * @since 2.5.0 + */ +var toRecord = function (r) { return Object.assign({}, r); }; +exports.toRecord = toRecord; +/** + * Calculate the number of key/value pairs in a `ReadonlyRecord`, + * + * @example + * import { size } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.5.0 + */ +var size = function (r) { return Object.keys(r).length; }; +exports.size = size; +/** + * Test whether a `ReadonlyRecord` is empty. + * + * @example + * import { isEmpty } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * @since 2.5.0 + */ +var isEmpty = function (r) { + for (var k in r) { + if (_.has.call(r, k)) { + return false; + } + } + return true; +}; +exports.isEmpty = isEmpty; +var keys_ = function (O) { + return function (r) { + return Object.keys(r).sort(O.compare); + }; +}; +/** + * @since 2.5.0 + */ +exports.keys = keys_(S.Ord); +function collect(O) { + if (typeof O === 'function') { + return collect(S.Ord)(O); + } + var keysO = keys_(O); + return function (f) { + return function (r) { + var out = []; + for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) { + var key = _a[_i]; + out.push(f(key, r[key])); + } + return out; + }; + }; +} +/** + * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`. + * + * @example + * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toReadonlyArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.5.0 + */ +exports.toReadonlyArray = +/*#__PURE__*/ collect(S.Ord)(function (k, a) { return [k, a]; }); +function toUnfoldable(U) { + return function (r) { + var sas = (0, exports.toReadonlyArray)(r); + var len = sas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `ReadonlyRecord`. + * + * @example + * import { upsertAt } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +var upsertAt = function (k, a) { + return function (r) { + if (_.has.call(r, k) && r[k] === a) { + return r; + } + var out = Object.assign({}, r); + out[k] = a; + return out; + }; +}; +exports.upsertAt = upsertAt; +/** + * Test whether or not a key exists in a `ReadonlyRecord`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +var has = function (k, r) { return _.has.call(r, k); }; +exports.has = has; +function deleteAt(k) { + return function (r) { + if (!_.has.call(r, k)) { + return r; + } + var out = Object.assign({}, r); + delete out[k]; + return out; + }; +} +/** + * Replace a key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +var updateAt = function (k, a) { + return function (r) { + if (!(0, exports.has)(k, r)) { + return _.none; + } + if (r[k] === a) { + return _.some(r); + } + var out = Object.assign({}, r); + out[k] = a; + return _.some(out); + }; +}; +exports.updateAt = updateAt; +/** + * Applies a mapping function to one specific key/value pair in a `ReadonlyRecord`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.5.0 + */ +var modifyAt = function (k, f) { + return function (r) { + if (!(0, exports.has)(k, r)) { + return _.none; + } + var next = f(r[k]); + if (next === r[k]) { + return _.some(r); + } + var out = Object.assign({}, r); + out[k] = next; + return _.some(out); + }; +}; +exports.modifyAt = modifyAt; +function pop(k) { + var deleteAtk = deleteAt(k); + return function (r) { + var oa = lookup(k, r); + return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]); + }; +} +function isSubrecord(E) { + return function (me, that) { + if (that === undefined) { + var isSubrecordE_1 = isSubrecord(E); + return function (that) { return isSubrecordE_1(that, me); }; + } + for (var k in me) { + if (!_.has.call(that, k) || !E.equals(me[k], that[k])) { + return false; + } + } + return true; + }; +} +function lookup(k, r) { + if (r === undefined) { + return function (r) { return lookup(k, r); }; + } + return _.has.call(r, k) ? _.some(r[k]) : _.none; +} +/** + * @since 2.5.0 + */ +exports.empty = {}; +function mapWithIndex(f) { + return function (r) { + var out = {}; + for (var k in r) { + if (_.has.call(r, k)) { + out[k] = f(k, r[k]); + } + } + return out; + }; +} +function map(f) { + return mapWithIndex(function (_, a) { return f(a); }); +} +function reduceWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 2) { + return reduceWithIndex(S.Ord).apply(void 0, args); + } + var keysO = keys_(args[0]); + return function (b, f) { return function (fa) { + var out = b; + var ks = keysO(fa); + var len = ks.length; + for (var i = 0; i < len; i++) { + var k = ks[i]; + out = f(k, out, fa[k]); + } + return out; + }; }; +} +function foldMapWithIndex(O) { + if ('compare' in O) { + var keysO_1 = keys_(O); + return function (M) { + return function (f) { + return function (fa) { + var out = M.empty; + var ks = keysO_1(fa); + var len = ks.length; + for (var i = 0; i < len; i++) { + var k = ks[i]; + out = M.concat(out, f(k, fa[k])); + } + return out; + }; + }; + }; + } + return foldMapWithIndex(S.Ord)(O); +} +function reduceRightWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 2) { + return reduceRightWithIndex(S.Ord).apply(void 0, args); + } + var keysO = keys_(args[0]); + return function (b, f) { return function (fa) { + var out = b; + var ks = keysO(fa); + var len = ks.length; + for (var i = len - 1; i >= 0; i--) { + var k = ks[i]; + out = f(k, fa[k], out); + } + return out; + }; }; +} +/** + * Create a `ReadonlyRecord` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @category constructors + * @since 2.5.0 + */ +var singleton = function (k, a) { + var _a; + return (_a = {}, _a[k] = a, _a); +}; +exports.singleton = singleton; +function traverseWithIndex(F) { + var traverseWithIndexOF = _traverseWithIndex(S.Ord)(F); + return function (f) { return function (ta) { return traverseWithIndexOF(ta, f); }; }; +} +function traverse(F) { + var traverseOF = (0, exports._traverse)(S.Ord)(F); + return function (f) { return function (ta) { return traverseOF(ta, f); }; }; +} +function sequence(F) { + return (0, exports._sequence)(S.Ord)(F); +} +/** + * @category filtering + * @since 2.6.5 + */ +var wither = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.compact); }; }; +}; +exports.wither = wither; +/** + * @category filtering + * @since 2.6.5 + */ +var wilt = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.separate); }; }; +}; +exports.wilt = wilt; +function partitionMapWithIndex(f) { + return function (r) { + var left = {}; + var right = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var e = f(k, r[k]); + switch (e._tag) { + case 'Left': + left[k] = e.left; + break; + case 'Right': + right[k] = e.right; + break; + } + } + } + return (0, Separated_1.separated)(left, right); + }; +} +function partitionWithIndex(predicateWithIndex) { + return function (r) { + var left = {}; + var right = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var a = r[k]; + if (predicateWithIndex(k, a)) { + right[k] = a; + } + else { + left[k] = a; + } + } + } + return (0, Separated_1.separated)(left, right); + }; +} +function filterMapWithIndex(f) { + return function (r) { + var out = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var ob = f(k, r[k]); + if (_.isSome(ob)) { + out[k] = ob.value; + } + } + } + return out; + }; +} +function filterWithIndex(predicateWithIndex) { + return function (fa) { + var out = {}; + var changed = false; + for (var key in fa) { + if (_.has.call(fa, key)) { + var a = fa[key]; + if (predicateWithIndex(key, a)) { + out[key] = a; + } + else { + changed = true; + } + } + } + return changed ? out : fa; + }; +} +function fromFoldable(M, F) { + var fromFoldableMapM = fromFoldableMap(M, F); + return function (fka) { return fromFoldableMapM(fka, function_1.identity); }; +} +function fromFoldableMap(M, F) { + return function (ta, f) { + return F.reduce(ta, {}, function (r, a) { + var _a = f(a), k = _a[0], b = _a[1]; + r[k] = _.has.call(r, k) ? M.concat(r[k], b) : b; + return r; + }); + }; +} +/** + * Alias of [`toReadonlyArray`](#toreadonlyarray). + * + * @example + * import { toEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @category conversions + * @since 2.12.0 + */ +exports.toEntries = exports.toReadonlyArray; +/** + * Converts a `ReadonlyArray` of `[key, value]` tuples into a `ReadonlyRecord`. + * + * @example + * import { fromEntries } from 'fp-ts/ReadonlyRecord' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +var fromEntries = function (fa) { + var out = {}; + for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) { + var a = fa_1[_i]; + out[a[0]] = a[1]; + } + return out; +}; +exports.fromEntries = fromEntries; +function every(predicate) { + return function (r) { + for (var k in r) { + if (!predicate(r[k])) { + return false; + } + } + return true; + }; +} +/** + * Test if at least one value in a `ReadonlyRecord` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.5.0 + */ +function some(predicate) { + return function (r) { + for (var k in r) { + if (predicate(r[k])) { + return true; + } + } + return false; + }; +} +function elem(E) { + return function (a, fa) { + if (fa === undefined) { + var elemE_1 = elem(E); + return function (fa) { return elemE_1(a, fa); }; + } + for (var k in fa) { + if (E.equals(fa[k], a)) { + return true; + } + } + return false; + }; +} +/** + * Union of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +var union = function (M) { + return function (second) { + return function (first) { + if ((0, exports.isEmpty)(first)) { + return second; + } + if ((0, exports.isEmpty)(second)) { + return first; + } + var out = {}; + for (var k in first) { + if ((0, exports.has)(k, second)) { + out[k] = M.concat(first[k], second[k]); + } + else { + out[k] = first[k]; + } + } + for (var k in second) { + if (!(0, exports.has)(k, out)) { + out[k] = second[k]; + } + } + return out; + }; + }; +}; +exports.union = union; +/** + * Intersection of two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/ReadonlyRecord"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +var intersection = function (M) { + return function (second) { + return function (first) { + if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) { + return exports.empty; + } + var out = {}; + for (var k in first) { + if ((0, exports.has)(k, second)) { + out[k] = M.concat(first[k], second[k]); + } + } + return out; + }; + }; +}; +exports.intersection = intersection; +/** + * Difference between two `ReadonlyRecord`s. + * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/ReadonlyRecord"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +var difference = function (second) { + return function (first) { + if ((0, exports.isEmpty)(first)) { + return second; + } + if ((0, exports.isEmpty)(second)) { + return first; + } + var out = {}; + for (var k in first) { + if (!(0, exports.has)(k, second)) { + out[k] = first[k]; + } + } + for (var k in second) { + if (!(0, exports.has)(k, first)) { + out[k] = second[k]; + } + } + return out; + }; +}; +exports.difference = difference; +/** @internal */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, map(f)); }; +exports._map = _map; +/** @internal */ +/* istanbul ignore next */ +var _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, mapWithIndex(f)); }; +exports._mapWithIndex = _mapWithIndex; +/** @internal */ +/* istanbul ignore next */ +var _reduce = function (O) { + var reduceO = reduce(O); + return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceO(b, f)); }; +}; +exports._reduce = _reduce; +/** @internal */ +var _foldMap = function (O) { return function (M) { + var foldMapM = foldMap(O)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; }; +exports._foldMap = _foldMap; +/** @internal */ +/* istanbul ignore next */ +var _reduceRight = function (O) { + var reduceRightO = reduceRight(O); + return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightO(b, f)); }; +}; +exports._reduceRight = _reduceRight; +/** @internal */ +/* istanbul ignore next */ +var _filter = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); +}; +exports._filter = _filter; +/** @internal */ +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); }; +exports._filterMap = _filterMap; +/** @internal */ +/* istanbul ignore next */ +var _partition = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); }; +exports._partition = _partition; +/** @internal */ +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); }; +exports._partitionMap = _partitionMap; +/** @internal */ +/* istanbul ignore next */ +var _reduceWithIndex = function (O) { + var reduceWithIndexO = reduceWithIndex(O); + return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceWithIndexO(b, f)); }; +}; +exports._reduceWithIndex = _reduceWithIndex; +/** @internal */ +var _foldMapWithIndex = function (O) { + var foldMapWithIndexO = foldMapWithIndex(O); + return function (M) { + var foldMapWithIndexM = foldMapWithIndexO(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); }; + }; +}; +exports._foldMapWithIndex = _foldMapWithIndex; +/** @internal */ +/* istanbul ignore next */ +var _reduceRightWithIndex = function (O) { + var reduceRightWithIndexO = reduceRightWithIndex(O); + return function (fa, b, f) { return (0, function_1.pipe)(fa, reduceRightWithIndexO(b, f)); }; +}; +exports._reduceRightWithIndex = _reduceRightWithIndex; +/** @internal */ +/* istanbul ignore next */ +var _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, partitionMapWithIndex(f)); }; +exports._partitionMapWithIndex = _partitionMapWithIndex; +/** @internal */ +/* istanbul ignore next */ +var _partitionWithIndex = function (fa, predicateWithIndex) { + return (0, function_1.pipe)(fa, partitionWithIndex(predicateWithIndex)); +}; +exports._partitionWithIndex = _partitionWithIndex; +/** @internal */ +/* istanbul ignore next */ +var _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, filterMapWithIndex(f)); }; +exports._filterMapWithIndex = _filterMapWithIndex; +/** @internal */ +/* istanbul ignore next */ +var _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, filterWithIndex(predicateWithIndex)); }; +exports._filterWithIndex = _filterWithIndex; +/** @internal */ +var _traverse = function (O) { + var traverseWithIndexO = _traverseWithIndex(O); + return function (F) { + var traverseWithIndexOF = traverseWithIndexO(F); + return function (ta, f) { return traverseWithIndexOF(ta, (0, function_1.flow)(function_1.SK, f)); }; + }; +}; +exports._traverse = _traverse; +/** @internal */ +var _sequence = function (O) { + var traverseO = (0, exports._traverse)(O); + return function (F) { + var traverseOF = traverseO(F); + return function (ta) { return traverseOF(ta, function_1.identity); }; + }; +}; +exports._sequence = _sequence; +var _traverseWithIndex = function (O) { + return function (F) { + var keysO = keys_(O); + return function (ta, f) { + var ks = keysO(ta); + if (ks.length === 0) { + return F.of(exports.empty); + } + var fr = F.of({}); + var _loop_1 = function (key) { + fr = F.ap(F.map(fr, function (r) { return function (b) { + var _a; + return Object.assign({}, r, (_a = {}, _a[key] = b, _a)); + }; }), f(key, ta[key])); + }; + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + _loop_1(key); + } + return fr; + }; + }; +}; +/** + * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +var filter = function (predicate) { + return filterWithIndex(function (_, a) { return predicate(a); }); +}; +exports.filter = filter; +/** + * Maps a `ReadonlyRecord` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/ReadonlyRecord" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.5.0 + */ +var filterMap = function (f) { return filterMapWithIndex(function (_, a) { return f(a); }); }; +exports.filterMap = filterMap; +/** + * Partition a `ReadonlyRecord` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/ReadonlyRecord" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +var partition = function (predicate) { + return partitionWithIndex(function (_, a) { return predicate(a); }); +}; +exports.partition = partition; +/** + * Maps a `ReadonlyRecord` with a function returning an `Either` and + * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/ReadonlyRecord" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.5.0 + */ +var partitionMap = function (f) { + return partitionMapWithIndex(function (_, a) { return f(a); }); +}; +exports.partitionMap = partitionMap; +function reduce() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 1) { + var reduceWithIndexO_1 = reduceWithIndex(args[0]); + return function (b, f) { return reduceWithIndexO_1(b, function (_, b, a) { return f(b, a); }); }; + } + return reduce(S.Ord).apply(void 0, args); +} +function foldMap(O) { + if ('compare' in O) { + var foldMapWithIndexO_1 = foldMapWithIndex(O); + return function (M) { + var foldMapWithIndexM = foldMapWithIndexO_1(M); + return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); }; + }; + } + return foldMap(S.Ord)(O); +} +function reduceRight() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 1) { + var reduceRightWithIndexO_1 = reduceRightWithIndex(args[0]); + return function (b, f) { return reduceRightWithIndexO_1(b, function (_, b, a) { return f(b, a); }); }; + } + return reduceRight(S.Ord).apply(void 0, args); +} +/** + * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/ReadonlyRecord' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.5.0 + */ +var compact = function (r) { + var out = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var oa = r[k]; + if (_.isSome(oa)) { + out[k] = oa.value; + } + } + } + return out; +}; +exports.compact = compact; +/** + * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/ReadonlyRecord' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.5.0 + */ +var separate = function (r) { + var left = {}; + var right = {}; + for (var k in r) { + if (_.has.call(r, k)) { + var e = r[k]; + if (_.isLeft(e)) { + left[k] = e.left; + } + else { + right[k] = e.right; + } + } + } + return (0, Separated_1.separated)(left, right); +}; +exports.separate = separate; +/** + * @category type lambdas + * @since 2.5.0 + */ +exports.URI = 'ReadonlyRecord'; +function getShow(O) { + if ('compare' in O) { + return function (S) { return ({ + show: function (r) { + var elements = collect(O)(function (k, a) { return "".concat(JSON.stringify(k), ": ").concat(S.show(a)); })(r).join(', '); + return elements === '' ? '{}' : "{ ".concat(elements, " }"); + } + }); }; + } + return getShow(S.Ord)(O); +} +function getEq(E) { + var isSubrecordE = isSubrecord(E); + return (0, Eq_1.fromEquals)(function (x, y) { return isSubrecordE(x)(y) && isSubrecordE(y)(x); }); +} +function getMonoid(S) { + return { + concat: function (first, second) { + if ((0, exports.isEmpty)(first)) { + return second; + } + if ((0, exports.isEmpty)(second)) { + return first; + } + var r = Object.assign({}, first); + for (var k in second) { + if (_.has.call(second, k)) { + r[k] = _.has.call(first, k) ? S.concat(first[k], second[k]) : second[k]; + } + } + return r; + }, + empty: exports.empty + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: exports._map +}; +/** + * Takes a value and a `ReadonlyRecord` of functions and returns a + * `ReadonlyRecord` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/ReadonlyRecord" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.7.0 + */ +exports.FunctorWithIndex = { + URI: exports.URI, + map: exports._map, + mapWithIndex: exports._mapWithIndex +}; +/** + * Produces a `Foldable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +var getFoldable = function (O) { return ({ + URI: exports.URI, + reduce: (0, exports._reduce)(O), + foldMap: (0, exports._foldMap)(O), + reduceRight: (0, exports._reduceRight)(O) +}); }; +exports.getFoldable = getFoldable; +/** + * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +var getFoldableWithIndex = function (O) { return ({ + URI: exports.URI, + reduce: (0, exports._reduce)(O), + foldMap: (0, exports._foldMap)(O), + reduceRight: (0, exports._reduceRight)(O), + reduceWithIndex: (0, exports._reduceWithIndex)(O), + foldMapWithIndex: (0, exports._foldMapWithIndex)(O), + reduceRightWithIndex: (0, exports._reduceRightWithIndex)(O) +}); }; +exports.getFoldableWithIndex = getFoldableWithIndex; +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: exports._map, + compact: exports.compact, + separate: exports.separate, + filter: exports._filter, + filterMap: exports._filterMap, + partition: exports._partition, + partitionMap: exports._partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FilterableWithIndex = { + URI: exports.URI, + map: exports._map, + mapWithIndex: exports._mapWithIndex, + compact: exports.compact, + separate: exports.separate, + filter: exports._filter, + filterMap: exports._filterMap, + partition: exports._partition, + partitionMap: exports._partitionMap, + filterMapWithIndex: exports._filterMapWithIndex, + filterWithIndex: exports._filterWithIndex, + partitionMapWithIndex: exports._partitionMapWithIndex, + partitionWithIndex: exports._partitionWithIndex +}; +/** + * Produces a `Traversable` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +var getTraversable = function (O) { return ({ + URI: exports.URI, + map: exports._map, + reduce: (0, exports._reduce)(O), + foldMap: (0, exports._foldMap)(O), + reduceRight: (0, exports._reduceRight)(O), + traverse: (0, exports._traverse)(O), + sequence: (0, exports._sequence)(O) +}); }; +exports.getTraversable = getTraversable; +/** + * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the + * provided `Ord` to sort the `ReadonlyRecord`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +var getTraversableWithIndex = function (O) { return ({ + URI: exports.URI, + map: exports._map, + mapWithIndex: exports._mapWithIndex, + reduce: (0, exports._reduce)(O), + foldMap: (0, exports._foldMap)(O), + reduceRight: (0, exports._reduceRight)(O), + reduceWithIndex: (0, exports._reduceWithIndex)(O), + foldMapWithIndex: (0, exports._foldMapWithIndex)(O), + reduceRightWithIndex: (0, exports._reduceRightWithIndex)(O), + traverse: (0, exports._traverse)(O), + sequence: (0, exports._sequence)(O), + traverseWithIndex: _traverseWithIndex(O) +}); }; +exports.getTraversableWithIndex = getTraversableWithIndex; +/** + * @category filtering + * @since 2.11.0 + */ +var getWitherable = function (O) { + var T = (0, exports.getTraversable)(O); + return { + URI: exports.URI, + map: exports._map, + reduce: (0, exports._reduce)(O), + foldMap: (0, exports._foldMap)(O), + reduceRight: (0, exports._reduceRight)(O), + traverse: T.traverse, + sequence: T.sequence, + compact: exports.compact, + separate: exports.separate, + filter: exports._filter, + filterMap: exports._filterMap, + partition: exports._partition, + partitionMap: exports._partitionMap, + wither: (0, Witherable_1.witherDefault)(T, exports.Compactable), + wilt: (0, Witherable_1.wiltDefault)(T, exports.Compactable) + }; +}; +exports.getWitherable = getWitherable; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `union`. + * + * @example + * import { getUnionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (S) { + var unionS = (0, exports.union)(S); + return { + concat: function (first, second) { return unionS(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `ReadonlyRecord`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +var getUnionMonoid = function (S) { return ({ + concat: (0, exports.getUnionSemigroup)(S).concat, + empty: exports.empty +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `ReadonlyRecord` of the base type. + * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sReadonlyRecord: Semigroup<ReadonlyRecord<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +var getIntersectionSemigroup = function (S) { + var intersectionS = (0, exports.intersection)(S); + return { + concat: function (first, second) { return intersectionS(second)(first); } + }; +}; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * Produces a `Magma` with a `concat` function that combines + * two `ReadonlyRecord`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference, ReadonlyRecord } from "fp-ts/ReadonlyRecord" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<ReadonlyRecord<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function () { return ({ + concat: function (first, second) { return (0, exports.difference)(second)(first); } +}); }; +exports.getDifferenceMagma = getDifferenceMagma; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Foldable = { + URI: exports.URI, + reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord), + foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord), + reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord) +}; +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.FoldableWithIndex = { + URI: exports.URI, + reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord), + foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord), + reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord), + reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord), + foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord) +}; +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Traversable = { + URI: exports.URI, + map: exports._map, + reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord), + foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord), + reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord), + traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord), + sequence: sequence +}; +/** + * Use `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.TraversableWithIndex = { + URI: exports.URI, + map: exports._map, + mapWithIndex: exports._mapWithIndex, + reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord), + foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord), + reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord), + reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord), + foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord), + traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord), + sequence: sequence, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord) +}; +var _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable); +var _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable); +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Witherable = { + URI: exports.URI, + map: exports._map, + reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord), + foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord), + reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord), + traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord), + sequence: sequence, + compact: exports.compact, + separate: exports.separate, + filter: exports._filter, + filterMap: exports._filterMap, + partition: exports._partition, + partitionMap: exports._partitionMap, + wither: _wither, + wilt: _wilt +}; +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.insertAt = exports.upsertAt; +function hasOwnProperty(k, r) { + return _.has.call(r === undefined ? this : r, k); +} +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RR.Functor` instead of `RR.readonlyRecord` + * (where `RR` is from `import RR from 'fp-ts/ReadonlyRecord'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.readonlyRecord = { + URI: exports.URI, + map: exports._map, + reduce: /*#__PURE__*/ (0, exports._reduce)(S.Ord), + foldMap: /*#__PURE__*/ (0, exports._foldMap)(S.Ord), + reduceRight: /*#__PURE__*/ (0, exports._reduceRight)(S.Ord), + traverse: /*#__PURE__*/ (0, exports._traverse)(S.Ord), + sequence: sequence, + compact: exports.compact, + separate: exports.separate, + filter: exports._filter, + filterMap: exports._filterMap, + partition: exports._partition, + partitionMap: exports._partitionMap, + mapWithIndex: exports._mapWithIndex, + reduceWithIndex: /*#__PURE__*/ (0, exports._reduceWithIndex)(S.Ord), + foldMapWithIndex: /*#__PURE__*/ (0, exports._foldMapWithIndex)(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ (0, exports._reduceRightWithIndex)(S.Ord), + filterMapWithIndex: exports._filterMapWithIndex, + filterWithIndex: exports._filterWithIndex, + partitionMapWithIndex: exports._partitionMapWithIndex, + partitionWithIndex: exports._partitionWithIndex, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord), + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/lib/ReadonlySet.d.ts b/node_modules/fp-ts/lib/ReadonlySet.d.ts new file mode 100644 index 0000000..41c7169 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlySet.d.ts @@ -0,0 +1,258 @@ +/** + * @since 2.5.0 + */ +import { Either } from './Either' +import { Eq } from './Eq' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +/** + * @category conversions + * @since 2.5.0 + */ +export declare const fromSet: <A>(s: Set<A>) => ReadonlySet<A> +/** + * Create a set with one element + * + * @category constructors + * @since 2.5.0 + */ +export declare const singleton: <A>(a: A) => ReadonlySet<A> +/** + * Create a `ReadonlySet` from a `ReadonlyArray` + * + * @category conversions + * @since 2.10.0 + */ +export declare const fromReadonlyArray: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlySet<A> +/** + * @category conversions + * @since 2.5.0 + */ +export declare function toSet<A>(s: ReadonlySet<A>): Set<A> +/** + * Projects a Set through a function + * + * @since 2.5.0 + */ +export declare function map<B>(E: Eq<B>): <A>(f: (x: A) => B) => (set: ReadonlySet<A>) => ReadonlySet<B> +/** + * @since 2.5.0 + */ +export declare function chain<B>(E: Eq<B>): <A>(f: (x: A) => ReadonlySet<B>) => (set: ReadonlySet<A>) => ReadonlySet<B> +/** + * @since 2.5.0 + */ +export declare function filter<A, B extends A>(refinement: Refinement<A, B>): (set: ReadonlySet<A>) => ReadonlySet<B> +export declare function filter<A>(predicate: Predicate<A>): <B extends A>(set: ReadonlySet<B>) => ReadonlySet<B> +export declare function filter<A>(predicate: Predicate<A>): (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * @since 2.5.0 + */ +export declare function partition<A, B extends A>( + refinement: Refinement<A, B> +): (set: ReadonlySet<A>) => Separated<ReadonlySet<A>, ReadonlySet<B>> +export declare function partition<A>( + predicate: Predicate<A> +): <B extends A>(set: ReadonlySet<B>) => Separated<ReadonlySet<B>, ReadonlySet<B>> +export declare function partition<A>( + predicate: Predicate<A> +): (set: ReadonlySet<A>) => Separated<ReadonlySet<A>, ReadonlySet<A>> +/** + * Form the union of two sets + * + * @since 2.5.0 + */ +export declare function union<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A> + (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A> +} +/** + * The set of elements which are in both the first and second set + * + * @since 2.5.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A> + (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A> +} +/** + * @since 2.5.0 + */ +export declare function partitionMap<B, C>( + EB: Eq<B>, + EC: Eq<C> +): <A>(f: (a: A) => Either<B, C>) => (set: ReadonlySet<A>) => Separated<ReadonlySet<B>, ReadonlySet<C>> +/** + * Form the set difference (`x` - `y`) + * + * @example + * import { difference } from 'fp-ts/ReadonlySet' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(new Set([1, 2]), difference(N.Eq)(new Set([1, 3]))), new Set([2])) + * + * @since 2.5.0 + */ +export declare function difference<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => ReadonlySet<A> + (me: ReadonlySet<A>, that: ReadonlySet<A>): ReadonlySet<A> +} +/** + * @since 2.5.0 + */ +export declare function reduce<A>(O: Ord<A>): <B>(b: B, f: (b: B, a: A) => B) => (fa: ReadonlySet<A>) => B +/** + * @since 2.5.0 + */ +export declare function foldMap<A, M>(O: Ord<A>, M: Monoid<M>): (f: (a: A) => M) => (fa: ReadonlySet<A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <A>(O: Ord<A>) => <B>(b: B, f: (a: A, b: B) => B) => (fa: ReadonlySet<A>) => B +/** + * Insert a value into a set + * + * @since 2.5.0 + */ +export declare function insert<A>(E: Eq<A>): (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * Delete a value from a set + * + * @since 2.5.0 + */ +export declare const remove: <A>(E: Eq<A>) => (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.10.0 + */ +export declare const toggle: <A>(E: Eq<A>) => (a: A) => (set: ReadonlySet<A>) => ReadonlySet<A> +/** + * @since 2.5.0 + */ +export declare const compact: <A>(E: Eq<A>) => (fa: ReadonlySet<Option<A>>) => ReadonlySet<A> +/** + * @since 2.5.0 + */ +export declare function separate<E, A>( + EE: Eq<E>, + EA: Eq<A> +): (fa: ReadonlySet<Either<E, A>>) => Separated<ReadonlySet<E>, ReadonlySet<A>> +/** + * @since 2.5.0 + */ +export declare function filterMap<B>(E: Eq<B>): <A>(f: (a: A) => Option<B>) => (fa: ReadonlySet<A>) => ReadonlySet<B> +/** + * @since 2.5.0 + */ +export declare const empty: ReadonlySet<never> +/** + * Test whether a `ReadonlySet` is empty. + * + * @since 2.10.0 + */ +export declare const isEmpty: <A>(set: ReadonlySet<A>) => boolean +/** + * Calculate the number of elements in a `ReadonlySet`. + * + * @since 2.10.0 + */ +export declare const size: <A>(set: ReadonlySet<A>) => number +/** + * @since 2.5.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (set: ReadonlySet<A>) => boolean +/** + * @since 2.5.0 + */ +export declare function every<A, B extends A>(refinement: Refinement<A, B>): Refinement<ReadonlySet<A>, ReadonlySet<B>> +export declare function every<A>(predicate: Predicate<A>): Predicate<ReadonlySet<A>> +/** + * `true` if and only if every element in the first set is an element of the second set + * + * @since 2.5.0 + */ +export declare function isSubset<A>(E: Eq<A>): { + (that: ReadonlySet<A>): (me: ReadonlySet<A>) => boolean + (me: ReadonlySet<A>, that: ReadonlySet<A>): boolean +} +/** + * Test if a value is a member of a set + * + * @since 2.5.0 + */ +export declare function elem<A>(E: Eq<A>): { + (a: A): (set: ReadonlySet<A>) => boolean + (a: A, set: ReadonlySet<A>): boolean +} +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlySet`. + * + * @category conversions + * @since 2.5.0 + */ +export declare const toReadonlyArray: <A>(O: Ord<A>) => (set: ReadonlySet<A>) => ReadonlyArray<A> +/** + * @category type lambdas + * @since 2.11.0 + */ +export declare const URI = 'ReadonlySet' +/** + * @category type lambdas + * @since 2.11.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: ReadonlySet<A> + } +} +/** + * @category instances + * @since 2.5.0 + */ +export declare function getShow<A>(S: Show<A>): Show<ReadonlySet<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getEq<A>(E: Eq<A>): Eq<ReadonlySet<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlySet<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<ReadonlySet<A>> +/** + * @category instances + * @since 2.5.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<ReadonlySet<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<ReadonlySet<A>> +/** + * Use [`fromReadonlyArray`](#fromreadonlyarray) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const fromArray: <A>(E: Eq<A>) => (as: ReadonlyArray<A>) => ReadonlySet<A> diff --git a/node_modules/fp-ts/lib/ReadonlySet.js b/node_modules/fp-ts/lib/ReadonlySet.js new file mode 100644 index 0000000..d2d3697 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlySet.js @@ -0,0 +1,485 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fromArray = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.URI = exports.toReadonlyArray = exports.some = exports.size = exports.isEmpty = exports.empty = exports.compact = exports.toggle = exports.remove = exports.reduceRight = exports.fromReadonlyArray = exports.singleton = exports.fromSet = void 0; +exports.toSet = toSet; +exports.map = map; +exports.chain = chain; +exports.filter = filter; +exports.partition = partition; +exports.union = union; +exports.intersection = intersection; +exports.partitionMap = partitionMap; +exports.difference = difference; +exports.reduce = reduce; +exports.foldMap = foldMap; +exports.insert = insert; +exports.separate = separate; +exports.filterMap = filterMap; +exports.every = every; +exports.isSubset = isSubset; +exports.elem = elem; +exports.getShow = getShow; +exports.getEq = getEq; +var Eq_1 = require("./Eq"); +var function_1 = require("./function"); +var Predicate_1 = require("./Predicate"); +var Separated_1 = require("./Separated"); +/** + * @category conversions + * @since 2.5.0 + */ +var fromSet = function (s) { return new Set(s); }; +exports.fromSet = fromSet; +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Create a set with one element + * + * @category constructors + * @since 2.5.0 + */ +var singleton = function (a) { return new Set([a]); }; +exports.singleton = singleton; +/** + * Create a `ReadonlySet` from a `ReadonlyArray` + * + * @category conversions + * @since 2.10.0 + */ +var fromReadonlyArray = function (E) { + return function (as) { + var len = as.length; + var out = new Set(); + var has = elem(E); + for (var i = 0; i < len; i++) { + var a = as[i]; + if (!has(a, out)) { + out.add(a); + } + } + return out; + }; +}; +exports.fromReadonlyArray = fromReadonlyArray; +/** + * @category conversions + * @since 2.5.0 + */ +function toSet(s) { + return new Set(s); +} +/** + * Projects a Set through a function + * + * @since 2.5.0 + */ +function map(E) { + var elemE = elem(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + var v = f(e); + if (!elemE(v, r)) { + r.add(v); + } + }); + return r; + }; }; +} +/** + * @since 2.5.0 + */ +function chain(E) { + var elemE = elem(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + f(e).forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + }); + return r; + }; }; +} +function filter(predicate) { + return function (set) { + var values = set.values(); + var e; + var r = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + r.add(a); + } + } + return r; + }; +} +function partition(predicate) { + return function (set) { + var values = set.values(); + var e; + var right = new Set(); + var left = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + right.add(a); + } + else { + left.add(a); + } + } + return (0, Separated_1.separated)(left, right); + }; +} +function union(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var unionE_1 = union(E); + return function (that) { return unionE_1(me, that); }; + } + if ((0, exports.isEmpty)(me)) { + return that; + } + if ((0, exports.isEmpty)(that)) { + return me; + } + var r = new Set(me); + that.forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + return r; + }; +} +function intersection(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var intersectionE_1 = intersection(E); + return function (that) { return intersectionE_1(that, me); }; + } + if ((0, exports.isEmpty)(me) || (0, exports.isEmpty)(that)) { + return exports.empty; + } + var r = new Set(); + me.forEach(function (e) { + if (elemE(e, that)) { + r.add(e); + } + }); + return r; + }; +} +/** + * @since 2.5.0 + */ +function partitionMap(EB, EC) { + return function (f) { + return function (set) { + var values = set.values(); + var e; + var left = new Set(); + var right = new Set(); + var hasB = elem(EB); + var hasC = elem(EC); + while (!(e = values.next()).done) { + var v = f(e.value); + switch (v._tag) { + case 'Left': + if (!hasB(v.left, left)) { + left.add(v.left); + } + break; + case 'Right': + if (!hasC(v.right, right)) { + right.add(v.right); + } + break; + } + } + return (0, Separated_1.separated)(left, right); + }; + }; +} +function difference(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var differenceE_1 = difference(E); + return function (that) { return differenceE_1(that, me); }; + } + return filter(function (a) { return !elemE(a, that); })(me); + }; +} +/** + * @since 2.5.0 + */ +function reduce(O) { + var toReadonlyArrayO = (0, exports.toReadonlyArray)(O); + return function (b, f) { return function (fa) { return toReadonlyArrayO(fa).reduce(f, b); }; }; +} +/** + * @since 2.5.0 + */ +function foldMap(O, M) { + var toReadonlyArrayO = (0, exports.toReadonlyArray)(O); + return function (f) { return function (fa) { return toReadonlyArrayO(fa).reduce(function (b, a) { return M.concat(b, f(a)); }, M.empty); }; }; +} +/** + * @category folding + * @since 2.11.0 + */ +var reduceRight = function (O) { + var toReadonlyArrayO = (0, exports.toReadonlyArray)(O); + return function (b, f) { return function (fa) { return toReadonlyArrayO(fa).reduceRight(function (b, a) { return f(a, b); }, b); }; }; +}; +exports.reduceRight = reduceRight; +/** + * Insert a value into a set + * + * @since 2.5.0 + */ +function insert(E) { + var elemE = elem(E); + return function (a) { return function (set) { + if (!elemE(a)(set)) { + var r = new Set(set); + r.add(a); + return r; + } + else { + return set; + } + }; }; +} +/** + * Delete a value from a set + * + * @since 2.5.0 + */ +var remove = function (E) { + return function (a) { + return function (set) { + return filter(function (ax) { return !E.equals(a, ax); })(set); + }; + }; +}; +exports.remove = remove; +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.10.0 + */ +var toggle = function (E) { + var elemE = elem(E); + var removeE = (0, exports.remove)(E); + var insertE = insert(E); + return function (a) { return function (set) { return (elemE(a, set) ? removeE : insertE)(a)(set); }; }; +}; +exports.toggle = toggle; +/** + * @since 2.5.0 + */ +var compact = function (E) { return filterMap(E)(function_1.identity); }; +exports.compact = compact; +/** + * @since 2.5.0 + */ +function separate(EE, EA) { + return function (fa) { + var elemEE = elem(EE); + var elemEA = elem(EA); + var left = new Set(); + var right = new Set(); + fa.forEach(function (e) { + switch (e._tag) { + case 'Left': + if (!elemEE(e.left, left)) { + left.add(e.left); + } + break; + case 'Right': + if (!elemEA(e.right, right)) { + right.add(e.right); + } + break; + } + }); + return (0, Separated_1.separated)(left, right); + }; +} +/** + * @since 2.5.0 + */ +function filterMap(E) { + var elemE = elem(E); + return function (f) { return function (fa) { + var r = new Set(); + fa.forEach(function (a) { + var ob = f(a); + if (ob._tag === 'Some' && !elemE(ob.value, r)) { + r.add(ob.value); + } + }); + return r; + }; }; +} +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.5.0 + */ +exports.empty = new Set(); +/** + * Test whether a `ReadonlySet` is empty. + * + * @since 2.10.0 + */ +var isEmpty = function (set) { return set.size === 0; }; +exports.isEmpty = isEmpty; +/** + * Calculate the number of elements in a `ReadonlySet`. + * + * @since 2.10.0 + */ +var size = function (set) { return set.size; }; +exports.size = size; +/** + * @since 2.5.0 + */ +var some = function (predicate) { + return function (set) { + var values = set.values(); + var e; + var found = false; + while (!found && !(e = values.next()).done) { + found = predicate(e.value); + } + return found; + }; +}; +exports.some = some; +function every(predicate) { + return (0, Predicate_1.not)((0, exports.some)((0, Predicate_1.not)(predicate))); +} +function isSubset(E) { + var elemE = elem(E); + return function (me, that) { + if (that === undefined) { + var isSubsetE_1 = isSubset(E); + return function (that) { return isSubsetE_1(that, me); }; + } + return every(function (a) { return elemE(a, that); })(me); + }; +} +function elem(E) { + return function (a, set) { + if (set === undefined) { + var elemE_1 = elem(E); + return function (set) { return elemE_1(a, set); }; + } + var values = set.values(); + var e; + var found = false; + while (!found && !(e = values.next()).done) { + found = E.equals(a, e.value); + } + return found; + }; +} +/** + * Get a sorted `ReadonlyArray` of the values contained in a `ReadonlySet`. + * + * @category conversions + * @since 2.5.0 + */ +var toReadonlyArray = function (O) { + return function (set) { + var out = []; + set.forEach(function (e) { return out.push(e); }); + return out.sort(O.compare); + }; +}; +exports.toReadonlyArray = toReadonlyArray; +/** + * @category type lambdas + * @since 2.11.0 + */ +exports.URI = 'ReadonlySet'; +/** + * @category instances + * @since 2.5.0 + */ +function getShow(S) { + return { + show: function (s) { + var entries = []; + s.forEach(function (a) { + entries.push(S.show(a)); + }); + return "new Set([".concat(entries.sort().join(', '), "])"); + } + }; +} +/** + * @category instances + * @since 2.5.0 + */ +function getEq(E) { + var subsetE = isSubset(E); + return (0, Eq_1.fromEquals)(function (x, y) { return subsetE(x, y) && subsetE(y, x); }); +} +/** + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (E) { return ({ + concat: union(E) +}); }; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.5.0 + */ +var getUnionMonoid = function (E) { return ({ + concat: (0, exports.getUnionSemigroup)(E).concat, + empty: exports.empty +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * @category instances + * @since 2.5.0 + */ +var getIntersectionSemigroup = function (E) { return ({ + concat: intersection(E) +}); }; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function (E) { return ({ + concat: difference(E) +}); }; +exports.getDifferenceMagma = getDifferenceMagma; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`fromReadonlyArray`](#fromreadonlyarray) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.fromArray = exports.fromReadonlyArray; diff --git a/node_modules/fp-ts/lib/ReadonlyTuple.d.ts b/node_modules/fp-ts/lib/ReadonlyTuple.d.ts new file mode 100644 index 0000000..945a1fa --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyTuple.d.ts @@ -0,0 +1,203 @@ +/** + * @since 2.5.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { ChainRec2C } from './ChainRec' +import { Comonad2 } from './Comonad' +import { Foldable2 } from './Foldable' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +import { Semigroupoid2 } from './Semigroupoid' +import { PipeableTraverse2, Traversable2 } from './Traversable' +/** + * @since 2.5.0 + */ +export declare function fst<A, E>(ea: readonly [A, E]): A +/** + * @since 2.5.0 + */ +export declare function snd<A, E>(ea: readonly [A, E]): E +/** + * @since 2.5.0 + */ +export declare const swap: <A, E>(ea: readonly [A, E]) => readonly [E, A] +/** + * @category instances + * @since 2.5.0 + */ +export declare function getApply<S>(S: Semigroup<S>): Apply2C<URI, S> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getApplicative<M>(M: Monoid<M>): Applicative2C<URI, M> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getChain<S>(S: Semigroup<S>): Chain2C<URI, S> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getMonad<M>(M: Monoid<M>): Monad2C<URI, M> +/** + * @category instances + * @since 2.5.0 + */ +export declare function getChainRec<M>(M: Monoid<M>): ChainRec2C<URI, M> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.5.0 + */ +export declare const bimap: <E, G, A, B>( + mapSnd: (e: E) => G, + mapFst: (a: A) => B +) => (fa: readonly [A, E]) => readonly [B, G] +/** + * Map a function over the first component of a `ReadonlyTuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export declare const mapFst: <A, B>(f: (a: A) => B) => <E>(fa: readonly [A, E]) => readonly [B, E] +/** + * Map a function over the second component of a `ReadonlyTuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export declare const mapSnd: <E, G>(f: (e: E) => G) => <A>(fa: readonly [A, E]) => readonly [A, G] +/** + * @since 2.5.0 + */ +export declare const compose: <A, B>(ab: readonly [B, A]) => <C>(bc: readonly [C, B]) => readonly [C, A] +/** + * @since 2.5.0 + */ +export declare const extend: <E, A, B>(f: (wa: readonly [A, E]) => B) => (wa: readonly [A, E]) => readonly [B, E] +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <E, A>(wa: readonly [A, E]) => A +/** + * @since 2.5.0 + */ +export declare const duplicate: <E, A>(wa: readonly [A, E]) => readonly [readonly [A, E], E] +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: readonly [A, E]) => B +/** + * @category folding + * @since 2.5.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: readonly [A, E]) => M +/** + * @category folding + * @since 2.5.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: readonly [A, E]) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category type lambdas + * @since 2.5.0 + */ +export declare const URI = 'ReadonlyTuple' +/** + * @category type lambdas + * @since 2.5.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: readonly [A, E] + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'ReadonlyTuple', E, (a: A) => B>) => import('./HKT').Kind2<'ReadonlyTuple', E, B> +/** + * Alias of [`mapFst`](#mapfst). + * + * @category mapping + * @since 2.5.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: readonly [A, E]) => readonly [B, E] +/** + * Alias of [`mapSnd`](#mapsnd). + * + * @category error handling + * @since 2.5.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: readonly [A, E]) => readonly [A, G] +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Semigroupoid: Semigroupoid2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readonlyTuple` + * (where `RT` is from `import RT from 'fp-ts/ReadonlyTuple'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const readonlyTuple: Semigroupoid2<URI> & + Bifunctor2<URI> & + Comonad2<URI> & + Foldable2<URI> & + Traversable2<URI> diff --git a/node_modules/fp-ts/lib/ReadonlyTuple.js b/node_modules/fp-ts/lib/ReadonlyTuple.js new file mode 100644 index 0000000..45aa146 --- /dev/null +++ b/node_modules/fp-ts/lib/ReadonlyTuple.js @@ -0,0 +1,350 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readonlyTuple = exports.Traversable = exports.Foldable = exports.Comonad = exports.Semigroupoid = exports.Bifunctor = exports.mapLeft = exports.map = exports.flap = exports.Functor = exports.URI = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.duplicate = exports.extract = exports.extend = exports.compose = exports.mapSnd = exports.mapFst = exports.bimap = exports.swap = void 0; +exports.fst = fst; +exports.snd = snd; +exports.getApply = getApply; +exports.getApplicative = getApplicative; +exports.getChain = getChain; +exports.getMonad = getMonad; +exports.getChainRec = getChainRec; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +// ------------------------------------------------------------------------------------- +// model +// ------------------------------------------------------------------------------------- +/** + * @since 2.5.0 + */ +function fst(ea) { + return ea[0]; +} +/** + * @since 2.5.0 + */ +function snd(ea) { + return ea[1]; +} +/** + * @since 2.5.0 + */ +var swap = function (ea) { return [snd(ea), fst(ea)]; }; +exports.swap = swap; +/** + * @category instances + * @since 2.5.0 + */ +function getApply(S) { + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return [fst(fab)(fst(fa)), S.concat(snd(fab), snd(fa))]; } + }; +} +var of = function (M) { + return function (a) { + return [a, M.empty]; + }; +}; +/** + * @category instances + * @since 2.5.0 + */ +function getApplicative(M) { + var A = getApply(M); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + of: of(M) + }; +} +/** + * @category instances + * @since 2.5.0 + */ +function getChain(S) { + var A = getApply(S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: function (ma, f) { + var _a = f(fst(ma)), b = _a[0], s = _a[1]; + return [b, S.concat(snd(ma), s)]; + } + }; +} +/** + * @category instances + * @since 2.5.0 + */ +function getMonad(M) { + var C = getChain(M); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: C.ap, + chain: C.chain, + of: of(M) + }; +} +/** + * @category instances + * @since 2.5.0 + */ +function getChainRec(M) { + var chainRec = function (a, f) { + var result = f(a); + var acc = M.empty; + var s = fst(result); + while (s._tag === 'Left') { + acc = M.concat(acc, snd(result)); + result = f(s.left); + s = fst(result); + } + return [s.right, M.concat(acc, snd(result))]; + }; + var C = getChain(M); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: C.ap, + chain: C.chain, + chainRec: chainRec + }; +} +/* istanbul ignore next */ +var _compose = function (bc, ab) { return (0, function_1.pipe)(bc, (0, exports.compose)(ab)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapFst)(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapSnd)(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.5.0 + */ +var bimap = function (f, g) { return function (fa) { return [g(fst(fa)), f(snd(fa))]; }; }; +exports.bimap = bimap; +/** + * Map a function over the first component of a `ReadonlyTuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.10.0 + */ +var mapFst = function (f) { return function (fa) { + return [f(fst(fa)), snd(fa)]; +}; }; +exports.mapFst = mapFst; +/** + * Map a function over the second component of a `ReadonlyTuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +var mapSnd = function (f) { return function (fa) { + return [fst(fa), f(snd(fa))]; +}; }; +exports.mapSnd = mapSnd; +/** + * @since 2.5.0 + */ +var compose = function (ab) { return function (bc) { + return [fst(bc), snd(ab)]; +}; }; +exports.compose = compose; +/** + * @since 2.5.0 + */ +var extend = function (f) { return function (wa) { + return [f(wa), snd(wa)]; +}; }; +exports.extend = extend; +/** + * @category Extract + * @since 2.6.2 + */ +exports.extract = fst; +/** + * @since 2.5.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category folding + * @since 2.5.0 + */ +var reduce = function (b, f) { return function (fa) { + return f(b, fst(fa)); +}; }; +exports.reduce = reduce; +/** + * @category folding + * @since 2.5.0 + */ +var foldMap = function () { + return function (f) { return function (fa) { return f(fst(fa)); }; }; +}; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.5.0 + */ +var reduceRight = function (b, f) { return function (fa) { + return f(fst(fa), b); +}; }; +exports.reduceRight = reduceRight; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + return function (f) { return function (ta) { return F.map(f(fst(ta)), function (b) { return [b, snd(ta)]; }); }; }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (fas) { + return F.map(fst(fas), function (a) { return [a, snd(fas)]; }); + }; +}; +exports.sequence = sequence; +/** + * @category type lambdas + * @since 2.5.0 + */ +exports.URI = 'ReadonlyTuple'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * Alias of [`mapFst`](#mapfst). + * + * @category mapping + * @since 2.5.0 + */ +exports.map = exports.mapFst; +/** + * Alias of [`mapSnd`](#mapsnd). + * + * @category error handling + * @since 2.5.0 + */ +exports.mapLeft = exports.mapSnd; +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Semigroupoid = { + URI: exports.URI, + compose: _compose +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `RT.Functor` instead of `RT.readonlyTuple` + * (where `RT` is from `import RT from 'fp-ts/ReadonlyTuple'`) + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.readonlyTuple = { + URI: exports.URI, + compose: _compose, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft, + extract: exports.extract, + extend: _extend, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; diff --git a/node_modules/fp-ts/lib/Record.d.ts b/node_modules/fp-ts/lib/Record.d.ts new file mode 100644 index 0000000..51933a9 --- /dev/null +++ b/node_modules/fp-ts/lib/Record.d.ts @@ -0,0 +1,1334 @@ +/** + * The `Record` module enables dealing with Typescript's `Record<K, T>` + * type in a functional way, basically treating it as a `Functor` in `T`. + * + * @since 2.0.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Eq } from './Eq' +import { Filterable1 } from './Filterable' +import { FilterableWithIndex1, PredicateWithIndex, RefinementWithIndex } from './FilterableWithIndex' +import { Foldable as FoldableHKT, Foldable1, Foldable2, Foldable3 } from './Foldable' +import { FoldableWithIndex1 } from './FoldableWithIndex' +import { Functor1 } from './Functor' +import { FunctorWithIndex1 } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import * as Se from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +import { Traversable1 } from './Traversable' +import { TraversableWithIndex1 } from './TraversableWithIndex' +import { Unfoldable, Unfoldable1 } from './Unfoldable' +import { PipeableWilt1, PipeableWither1, Witherable1 } from './Witherable' +import Semigroup = Se.Semigroup +/** + * Calculate the number of key/value pairs in a `Record`. + * + * @example + * import { size } from "fp-ts/Record"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.0.0 + */ +export declare const size: <A>(r: Record<string, A>) => number +/** + * Test whether a `Record` is empty. + * + * @example + * import { isEmpty } from "fp-ts/Record"; + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * + * @since 2.0.0 + */ +export declare const isEmpty: <A>(r: Record<string, A>) => boolean +/** + * The keys of a `Record`, sorted alphabetically. + * + * @example + * import { keys } from "fp-ts/Record"; + * + * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), ["a", "b", "c"]); + * + * @since 2.0.0 + */ +export declare const keys: <K extends string>(r: Record<K, unknown>) => Array<K> +/** + * Map a `Record` into an `Array`. + * It passes each key/value pair to the iterating function and collects + * the results in an array, sorted alphabetically by the original key. + * + * @example + * import { collect } from 'fp-ts/Record' + * import { Ord } from 'fp-ts/string' + * + * const f = <A>(k: string, a: A) => `${k.toUpperCase()}-${a}`; + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual( + * collect(Ord)(f)(x), + * [ + * "A-foo", + * "B-false", + * "C-3", + * ] + * ); + * + * @since 2.0.0 + */ +export declare function collect( + O: Ord<string> +): <K extends string, A, B>(f: (k: K, a: A) => B) => (r: Record<K, A>) => Array<B> +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function collect<K extends string, A, B>(f: (k: K, a: A) => B): (r: Record<K, A>) => Array<B> +/** + * Get a sorted `Array` of the key/value pairs contained in a `Record`. + * Sorted alphabetically by key. + * + * @example + * import { toArray } from 'fp-ts/Record' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.0.0 + */ +export declare const toArray: <K extends string, A>(r: Record<K, A>) => Array<[K, A]> +/** + * Unfolds a `Record` into a list of key/value pairs. + * + * Given an `Unfoldable` class type `U` such as `array` or `readonlyArray`, + * it uses the `unfold` function to create an instance of `U`, + * providing an iterating function that iterates over each + * key/value pair in the record sorted alphabetically by key. + * + * @example + * import { array, readonlyArray } from 'fp-ts' + * import { toUnfoldable } from 'fp-ts/Record' + * + * assert.deepStrictEqual(toUnfoldable(array)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * assert.deepStrictEqual(toUnfoldable(readonlyArray)({ b: 2, a: 1 }),[ [ 'a', 1 ], [ 'b', 2 ]]) + * + * @since 2.0.0 + */ +export declare function toUnfoldable<F extends URIS>( + U: Unfoldable1<F> +): <K extends string, A>(r: Record<K, A>) => Kind<F, [K, A]> +export declare function toUnfoldable<F>(U: Unfoldable<F>): <K extends string, A>(r: Record<K, A>) => HKT<F, [K, A]> +/** + * Insert or replace a key/value pair in a `Record`. + * + * @example + * import { upsertAt } from 'fp-ts/Record' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +export declare const upsertAt: <A>(k: string, a: A) => (r: Record<string, A>) => Record<string, A> +/** + * Test whether or not a key exists in a `Record`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/Record' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +export declare const has: <K extends string>(k: string, r: Record<K, unknown>) => k is K +/** + * Delete a key and value from a `Record`. + * + * @example + * import { deleteAt } from 'fp-ts/Record' + * + * assert.deepStrictEqual(deleteAt("a")({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(deleteAt("c")({ a: 1, b: 2 }), { a: 1, b: 2 }); + * + * @since 2.0.0 + */ +export declare function deleteAt<K extends string>( + k: K +): <KS extends string, A>(r: Record<KS, A>) => Record<string extends K ? string : Exclude<KS, K>, A> +/** + * Replace a key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +export declare const updateAt: <A>(k: string, a: A) => <K extends string>(r: Record<K, A>) => Option<Record<K, A>> +/** + * Applies a mapping function to one spcific key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +export declare const modifyAt: <A>( + k: string, + f: (a: A) => A +) => <K extends string>(r: Record<K, A>) => Option<Record<K, A>> +/** + * Delete a key and value from a `Record`, returning the value as well as the subsequent `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry removed, otherwise it returns `None` + * + * @example + * import { pop } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(pop("a")({ a: 1, b: 2, c: 3 }), option.some([1, { b: 2, c: 3 }])); + * assert.deepStrictEqual(pop("x")({ a: 1, b: 2, c: 3 }), option.none); + * + * @since 2.0.0 + */ +export declare function pop<K extends string>( + k: K +): <KS extends string, A>(r: Record<KS, A>) => Option<[A, Record<string extends K ? string : Exclude<KS, K>, A>]> +/** + * Test whether one `Record` contains all of the keys and values + * contained in another `Record`. + * + * @example + * import { isSubrecord } from 'fp-ts/Record' + * import { string } from 'fp-ts' + * + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "bar", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "not-bar", c: "baz" }), + * false + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar" })({ a: "foo", b: "bar", c: "baz" }), + * false + * ); + * + * @since 2.0.0 + */ +export declare const isSubrecord: <A>(E: Eq<A>) => { + (that: Record<string, A>): (me: Record<string, A>) => boolean + (me: Record<string, A>, that: Record<string, A>): boolean +} +/** + * Lookup the value for a key in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing the value, + * otherwise it returns `None` + * + * @example + * import { lookup } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(lookup("b")({ a: "foo", b: "bar" }), option.some("bar")); + * assert.deepStrictEqual(lookup("c")({ a: "foo", b: "bar" }), option.none); + * + * @since 2.0.0 + */ +export declare const lookup: { + (k: string): <A>(r: Record<string, A>) => Option<A> + <A>(k: string, r: Record<string, A>): Option<A> +} +/** + * Map a `Record` passing the key/value pairs to the iterating function. + * + * @example + * import { mapWithIndex } from "fp-ts/Record"; + * + * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`; + * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: "A-3", b: "B-5" }); + * + * @since 2.0.0 + */ +export declare const mapWithIndex: <K extends string, A, B>(f: (k: K, a: A) => B) => (fa: Record<K, A>) => Record<K, B> +/** + * Map a `Record` passing the values to the iterating function. + * + * @example + * import { map } from "fp-ts/Record"; + * + * const f = (n: number) => `-${n}-`; + * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: "-3-", b: "-5-" }); + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <K extends string>(fa: Record<K, A>) => Record<K, B> +/** + * Reduces a `Record` passing each key/value pair to the iterating function. + * Entries are processed in the order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduceWithIndex } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceWithIndex(Ord)([] as string[], (k, b, a) => [...b, `${k}-${a}`])(x), [ + * "a-foo", + * "b-false", + * "c-3", + * ]); + * + * @since 2.0.0 + */ +export declare function reduceWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, b: B, a: A) => B) => (fa: Record<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceWithIndex<K extends string, A, B>( + b: B, + f: (k: K, b: B, a: A) => B +): (fa: Record<K, A>) => B +/** + * Map and fold a `Record`. + * Map the `Record` passing each key/value pair to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMapWithIndex } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (k:string, a: number) => `${k}-${a}` + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMapWithIndex(Ord)(m)(f)(x), "a-1 -> b-2 -> c-3"); + * + * @since 2.0.0 + */ +export declare function foldMapWithIndex( + O: Ord<string> +): <M>(M: Monoid<M>) => <K extends string, A>(f: (k: K, a: A) => M) => (fa: Record<K, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMapWithIndex<M>( + M: Monoid<M> +): <K extends string, A>(f: (k: K, a: A) => M) => (fa: Record<K, A>) => M +/** + * Same as `reduceWithIndex`, but reduce starting from the right + * (i.e. in reverse order, from the last to the first entry according to + * the given `Ord`). + * + * @example + * import { reduceRightWithIndex } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRightWithIndex(Ord)([] as string[], (k, a, b) => [...b, `${k}-${a}`])(x), [ + * "c-3", + * "b-false", + * "a-foo", + * ]); + * + * @since 2.0.0 + */ +export declare function reduceRightWithIndex( + O: Ord<string> +): <K extends string, A, B>(b: B, f: (k: K, a: A, b: B) => B) => (fa: Record<K, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRightWithIndex<K extends string, A, B>( + b: B, + f: (k: K, a: A, b: B) => B +): (fa: Record<K, A>) => B +/** + * Create a `Record` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/Record"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @since 2.0.0 + */ +export declare const singleton: <A>(k: string, a: A) => Record<string, A> +/** + * @since 2.0.0 + */ +export declare function traverseWithIndex<F extends URIS4>( + F: Applicative4<F> +): <K extends string, S, R, E, A, B>( + f: (k: K, a: A) => Kind4<F, S, R, E, B> +) => (ta: Record<K, A>) => Kind4<F, S, R, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A, B>( + f: (k: K, a: A) => Kind3<F, R, E, B> +) => (ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A, B>(f: (k: K, a: A) => Kind2<F, E, B>) => (ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A, B>(f: (k: K, a: A) => Kind2<F, E, B>) => (ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverseWithIndex<F extends URIS>( + F: Applicative1<F> +): <K extends string, A, B>(f: (k: K, a: A) => Kind<F, B>) => (ta: Record<K, A>) => Kind<F, Record<K, B>> +export declare function traverseWithIndex<F>( + F: Applicative<F> +): <K extends string, A, B>(f: (k: K, a: A) => HKT<F, B>) => (ta: Record<K, A>) => HKT<F, Record<K, B>> +/** + * @since 2.0.0 + */ +export declare function traverse<F extends URIS4>( + F: Applicative4<F> +): <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> +) => <K extends string>(ta: Record<K, A>) => Kind4<F, S, R, E, Record<K, B>> +export declare function traverse<F extends URIS3>( + F: Applicative3<F> +): <R, E, A, B>(f: (a: A) => Kind3<F, R, E, B>) => <K extends string>(ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverse<F extends URIS3, E>( + F: Applicative3C<F, E> +): <R, A, B>(f: (a: A) => Kind3<F, R, E, B>) => <K extends string>(ta: Record<K, A>) => Kind3<F, R, E, Record<K, B>> +export declare function traverse<F extends URIS2>( + F: Applicative2<F> +): <E, A, B>(f: (a: A) => Kind2<F, E, B>) => <K extends string>(ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverse<F extends URIS2, E>( + F: Applicative2C<F, E> +): <A, B>(f: (a: A) => Kind2<F, E, B>) => <K extends string>(ta: Record<K, A>) => Kind2<F, E, Record<K, B>> +export declare function traverse<F extends URIS>( + F: Applicative1<F> +): <A, B>(f: (a: A) => Kind<F, B>) => <K extends string>(ta: Record<K, A>) => Kind<F, Record<K, B>> +export declare function traverse<F>( + F: Applicative<F> +): <A, B>(f: (a: A) => HKT<F, B>) => <K extends string>(ta: Record<K, A>) => HKT<F, Record<K, B>> +/** + * `Record` sequencing, + * i.e., take a `Record` in which elements are monads + * and return a monad of a `Record` of the base types. + * The following example for instance shows sequencing + * a `Record<string, Option<number>>` + * into an `Option<Record<string, number>>`. + * + * `sequence` in `Record` is equivalent to `sequenceS` in `Apply.ts`. + * + * @example + * import { sequence } from "fp-ts/Record"; + * import { option } from "fp-ts"; + * import { sequenceS } from "fp-ts/Apply"; + * + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * option.some({ a: 1, b: 2 }) + * ); + * assert.deepStrictEqual(sequence(option.Applicative)({ a: option.some(1), b: option.none }), option.none); + * assert.deepStrictEqual( + * sequence(option.Applicative)({ a: option.some(1), b: option.some(2) }), + * sequenceS(option.Applicative)({ a: option.some(1), b: option.some(2) }) + * ); + * + * @since 2.0.0 + */ +export declare function sequence<F extends URIS3>( + F: Applicative3<F> +): <K extends string, R, E, A>(ta: Record<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, Record<K, A>> +export declare function sequence<F extends URIS3, E>( + F: Applicative3C<F, E> +): <K extends string, R, A>(ta: Record<K, Kind3<F, R, E, A>>) => Kind3<F, R, E, Record<K, A>> +export declare function sequence<F extends URIS2>( + F: Applicative2<F> +): <K extends string, E, A>(ta: Record<K, Kind2<F, E, A>>) => Kind2<F, E, Record<K, A>> +export declare function sequence<F extends URIS2, E>( + F: Applicative2C<F, E> +): <K extends string, A>(ta: Record<K, Kind2<F, E, A>>) => Kind2<F, E, Record<K, A>> +export declare function sequence<F extends URIS>( + F: Applicative1<F> +): <K extends string, A>(ta: Record<K, Kind<F, A>>) => Kind<F, Record<K, A>> +export declare function sequence<F>( + F: Applicative<F> +): <K extends string, A>(ta: Record<K, HKT<F, A>>) => HKT<F, Record<K, A>> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wither: PipeableWither1<URI> +/** + * @category filtering + * @since 2.6.5 + */ +export declare const wilt: PipeableWilt1<URI> +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMapWithIndex } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (key: string, a: number) => + * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`); + * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), { + * left: { + * a: "a is < 0 (-1)", + * }, + * right: { + * b: "b is >= 0 (2)", + * c: "c is >= 0 (123)", + * }, + * }); + * + * @since 2.0.0 + */ +export declare const partitionMapWithIndex: <K extends string, A, B, C>( + f: (key: K, a: A) => Either<B, C> +) => (fa: Record<K, A>) => Separated<Record<string, B>, Record<string, C>> +/** + * Partition a `Record` into two parts according to a predicate + * that takes a key and a value. + * + * @example + * import { partitionWithIndex } from "fp-ts/Record" + * + * assert.deepStrictEqual( + * partitionWithIndex((key: string, a: number) => key.length <= 1 && a > 0)({ a: -1, b: 2, ccc: 7 }), + * { + * left: { + * a: -1, + * ccc: 7, + * }, + * right: { + * b: 2, + * }, + * } + * ); + * + * @since 2.0.0 + */ +export declare function partitionWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: Record<K, A>) => Separated<Record<string, A>, Record<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: Record<K, B>) => Separated<Record<string, B>, Record<string, B>> +export declare function partitionWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: Record<K, A>) => Separated<Record<string, A>, Record<string, A>> +/** + * Maps a `Record` with an iterating function that takes key and value and + * returns an `Option`, keeping only the `Some` values and discarding `None`s. + * + * @example + * import { filterMapWithIndex } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none); + * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), { + * b: "b2", + * c: "c3", + * }); + * + * @since 2.0.0 + */ +export declare const filterMapWithIndex: <K extends string, A, B>( + f: (key: K, a: A) => Option<B> +) => (fa: Record<K, A>) => Record<string, B> +/** + * Produce a new `Record` keeping only the entries that satisfy + * a predicate taking key and value as input. + * + * @example + * import { filterWithIndex } from "fp-ts/Record" + * + * assert.deepStrictEqual( + * filterWithIndex((s: string, v: number) => s.length <= 1 && v > 0)({ a: 1, b: -2, ccc: 3 }), + * { + * a: 1, + * } + * ); + * + * @since 2.0.0 + */ +export declare function filterWithIndex<K extends string, A, B extends A>( + refinementWithIndex: RefinementWithIndex<K, A, B> +): (fa: Record<K, A>) => Record<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): <B extends A>(fb: Record<K, B>) => Record<string, B> +export declare function filterWithIndex<K extends string, A>( + predicateWithIndex: PredicateWithIndex<K, A> +): (fa: Record<K, A>) => Record<string, A> +/** + * Create a `Record` from a foldable collection of key/value pairs, using the + * specified `Magma` to combine values for duplicate keys. + * + * @since 2.0.0 + */ +export declare function fromFoldable<F extends URIS3, A>( + M: Magma<A>, + F: Foldable3<F> +): <R, E>(fka: Kind3<F, R, E, [string, A]>) => Record<string, A> +export declare function fromFoldable<F extends URIS2, A>( + M: Magma<A>, + F: Foldable2<F> +): <E>(fka: Kind2<F, E, [string, A]>) => Record<string, A> +export declare function fromFoldable<F extends URIS, A>( + M: Magma<A>, + F: Foldable1<F> +): (fka: Kind<F, [string, A]>) => Record<string, A> +export declare function fromFoldable<F, A>( + M: Magma<A>, + F: FoldableHKT<F> +): (fka: HKT<F, [string, A]>) => Record<string, A> +/** + * Alias of [`toArray`](#toArray). + * + * @example + * import { toEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @since 2.12.0 + * @category conversions + */ +export declare const toEntries: <K extends string, A>(r: Record<K, A>) => Array<[K, A]> +/** + * Converts an `Array` of `[key, value]` tuples into a `Record`. + * + * @example + * import { fromEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +export declare const fromEntries: <A>(fa: Array<[string, A]>) => Record<string, A> +/** + * Create a `Record` from a foldable collection using the specified functions to + * + * - map to key/value pairs + * - combine values for duplicate keys. + * + * @example + * import { last } from 'fp-ts/Semigroup' + * import { Foldable, zip } from 'fp-ts/Array' + * import { identity } from 'fp-ts/function' + * import { fromFoldableMap } from 'fp-ts/Record' + * + * export const zipObject = <K extends string, A>(keys: Array<K>, values: Array<A>): Record<K, A> => + * fromFoldableMap(last<A>(), Foldable)(zip(keys, values), identity) + * + * assert.deepStrictEqual(zipObject(['a', 'b'], [1, 2, 3]), { a: 1, b: 2 }) + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const users: Array<User> = [ + * { id: 'id1', name: 'name1' }, + * { id: 'id2', name: 'name2' }, + * { id: 'id1', name: 'name3' } + * ] + * + * assert.deepStrictEqual(fromFoldableMap(last<User>(), Foldable)(users, user => [user.id, user]), { + * id1: { id: 'id1', name: 'name3' }, + * id2: { id: 'id2', name: 'name2' } + * }) + * + * @since 2.0.0 + */ +export declare function fromFoldableMap<F extends URIS3, B>( + M: Magma<B>, + F: Foldable3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => [string, B]) => Record<string, B> +export declare function fromFoldableMap<F extends URIS2, B>( + M: Magma<B>, + F: Foldable2<F> +): <E, A>(fa: Kind2<F, E, A>, f: (a: A) => [string, B]) => Record<string, B> +export declare function fromFoldableMap<F extends URIS, B>( + M: Magma<B>, + F: Foldable1<F> +): <A>(fa: Kind<F, A>, f: (a: A) => [string, B]) => Record<string, B> +export declare function fromFoldableMap<F, B>( + M: Magma<B>, + F: FoldableHKT<F> +): <A>(fa: HKT<F, A>, f: (a: A) => [string, B]) => Record<string, B> +/** + * Test if every value in a `Record` satisfies the predicate. + * + * @example + * import { every } from "fp-ts/Record" + * + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true); + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false); + * + * @since 2.0.0 + */ +export declare const every: { + <A, B extends A>(refinement: Refinement<A, B>): Refinement<Record<string, A>, Record<string, B>> + <A>(predicate: Predicate<A>): Predicate<Record<string, A>> +} +/** + * Test if at least one value in a `Record` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/Record" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.0.0 + */ +export declare const some: <A>(predicate: (a: A) => boolean) => (r: Record<string, A>) => boolean +/** + * Given an `Eq` checks if a `Record` contains an entry with + * value equal to a provided value. + * + * @example + * import { elem } from "fp-ts/Record" + * import { number } from "fp-ts" + * + * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true); + * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false); + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): (fa: Record<string, A>) => boolean + (a: A, fa: Record<string, A>): boolean +} +/** + * Union of two `Record`s. + * Takes two `Record`s and produces a `Record` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const union: <A>( + M: Magma<A> +) => (second: Record<string, A>) => (first: Record<string, A>) => Record<string, A> +/** + * Intersection of two `Record`s. + * Takes two `Record`s and produces a `Record` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +export declare const intersection: <A>( + M: Magma<A> +) => (second: Record<string, A>) => (first: Record<string, A>) => Record<string, A> +/** + * Difference between two `Record`s. + * Takes two `Record`s and produces a `Record` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/Record"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +export declare const difference: <A>(second: Record<string, A>) => (first: Record<string, A>) => Record<string, A> +/** + * Given a `Predicate`, it produces a new `Record` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/Record" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Record<string, A>) => Record<string, B> + <A>(predicate: Predicate<A>): <B extends A>(fb: Record<string, B>) => Record<string, B> + <A>(predicate: Predicate<A>): (fa: Record<string, A>) => Record<string, A> +} +/** + * Maps a `Record` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Record<string, A>) => Record<string, B> +/** + * Partition a `Record` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/Record" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): ( + fa: Record<string, A> + ) => Separated<Record<string, A>, Record<string, B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: Record<string, B>) => Separated<Record<string, B>, Record<string, B>> + <A>(predicate: Predicate<A>): (fa: Record<string, A>) => Separated<Record<string, A>, Record<string, A>> +} +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: Record<string, A>) => Separated<Record<string, B>, Record<string, C>> +/** + * Reduces a `Record` passing each value to the iterating function. + * Entries are processed in order, sorted by key according to + * the given `Ord`. + * + * @example + * import { reduce } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduce(Ord)([] as string[], (b, a) => [...b, `-${a}-`])(x), [ + * "-foo-", + * "-false-", + * "-3-", + * ]); + * + * @category folding + * @since 2.0.0 + */ +export declare function reduce(O: Ord<string>): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Record<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduce<A, B>(b: B, f: (b: B, a: A) => B): (fa: Record<string, A>) => B +/** + * Map and fold a `Record`. + * Map the `Record` passing each value to the iterating function. + * Then fold the results using the provided `Monoid`. + * + * @example + * import { foldMap } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * import { Monoid } from "fp-ts/Monoid"; + * + * const m: Monoid<string> = { empty: "", concat: (x: string, y: string) => (x ? `${x} -> ${y}` : `${y}`) }; + * const f = (a: number) => `-${a}-`; + * const x = { c: 3, a: 1, b: 2 }; + * assert.deepStrictEqual(foldMap(Ord)(m)(f)(x), "-1- -> -2- -> -3-"); + * + * @category folding + * @since 2.0.0 + */ +export declare function foldMap( + O: Ord<string> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Record<string, A>) => M +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function foldMap<M>(M: Monoid<M>): <A>(f: (a: A) => M) => (fa: Record<string, A>) => M +/** + * Same as `reduce` but entries are processed _from the right_, + * i.e. in reverse order, from the last to the first entry, according to + * the given `Ord`. + * + * @example + * import { reduceRight } from "fp-ts/Record"; + * import { Ord } from "fp-ts/string"; + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(reduceRight(Ord)([] as string[], (a, b) => [...b, `-${a}-`])(x), [ + * "-3-", + * "-false-", + * "-foo-", + * ]); + * + * @category folding + * @since 2.0.0 + */ +export declare function reduceRight(O: Ord<string>): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Record<string, A>) => B +/** + * Use the overload constrained by `Ord` instead. + * + * @deprecated + */ +export declare function reduceRight<A, B>(b: B, f: (a: A, b: B) => B): (fa: Record<string, A>) => B +/** + * Compact a `Record` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +export declare const compact: <A>(fa: Record<string, Option<A>>) => Record<string, A> +/** + * Separate a `Record` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/Record' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.0.0 + */ +export declare const separate: <A, B>( + fa: Record<string, Either<A, B>> +) => Separated<Record<string, A>, Record<string, B>> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Record' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Record<string, A> + } +} +/** + * Produces a `Show` for a `Record`, given a `Show` for the base type + * (a `Show` produces a human-readable representation of an instance). + * `Record` entries are sorted by key with the provided `Ord`. + * + * @example + * import { getShow } from "fp-ts/Record" + * import { Show } from "fp-ts/Show" + * import { Ord } from "fp-ts/string" + * + * const sNumber: Show<number> = { show: (n: number) => `${n}` }; + * const sRecord: Show<Record<string, number>> = getShow(Ord)(sNumber); + * assert.deepStrictEqual(sRecord.show({ b: 2, a: 1 }), '{ "a": 1, "b": 2 }'); + * + * @category instances + * @since 2.0.0 + */ +export declare function getShow(O: Ord<string>): <A>(S: Show<A>) => Show<Record<string, A>> +/** + * Use the overload constrained by `Ord` instead. + * + * @category zone of death + * @deprecated + */ +export declare function getShow<A>(S: Show<A>): Show<Record<string, A>> +/** + * Given an `Eq` for the base type, it produces an `Eq` + * for a `Record` of that base type. + * + * @example + * import { getEq } from "fp-ts/Record"; + * import { string } from "fp-ts"; + * import { Eq } from "fp-ts/Eq"; + * + * const eq: Eq<Record<string, string>> = getEq(string.Eq); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { b: "bar" }), false); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { a: "foo" }), true); + * + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <K extends string, A>(E: Eq<A>) => Eq<Record<K, A>> +/** + * Returns a `Monoid` instance for `Record`s, given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s comining the + * overlapping entries with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getMonoid } from 'fp-ts/Record' + * + * const M = getMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.0.0 + */ +export declare const getMonoid: <K extends string, A>(S: Semigroup<A>) => Monoid<Record<K, A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Takes a value and a `Record` of functions and returns a + * `Record` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/Record" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <B>(fab: Kind<'Record', (a: A) => B>) => Kind<'Record', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FunctorWithIndex: FunctorWithIndex1<URI, string> +/** + * Produces a `Foldable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldable: (O: Ord<string>) => Foldable1<URI> +/** + * Produces a `FoldableWithIndex1` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +export declare const getFoldableWithIndex: (O: Ord<string>) => FoldableWithIndex1<URI, string> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const FilterableWithIndex: FilterableWithIndex1<URI, string> +/** + * Produces a `Traversable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversable: (O: Ord<string>) => Traversable1<URI> +/** + * Produces a `TraversableWithIndex` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +export declare const getTraversableWithIndex: (O: Ord<string>) => TraversableWithIndex1<URI, string> +/** + * @category filtering + * @since 2.11.0 + */ +export declare const getWitherable: (O: Ord<string>) => Witherable1<URI> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `union`. + * + * @example + * import { getUnionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(S: Semigroup<A>) => Semigroup<Record<string, A>> +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `Record`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/Record' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getUnionMonoid: <A>(S: Semigroup<A>) => Monoid<Record<string, A>> +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getIntersectionSemigroup: <A>(S: Semigroup<A>) => Semigroup<Record<string, A>> +/** + * Produces a `Magma` with a `concat` function that combines + * two `Record`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference } from "fp-ts/Record" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<Record<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>() => Magma<Record<string, A>> +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Foldable: Foldable1<URI> +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const FoldableWithIndex: FoldableWithIndex1<URI, string> +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Traversable: Traversable1<URI> +/** + * Use the `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const TraversableWithIndex: TraversableWithIndex1<URI, string> +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const Witherable: Witherable1<URI> +/** + * Use a new `{}` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const empty: Record<string, never> +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const insertAt: <A>(k: string, a: A) => (r: Record<string, A>) => Record<string, A> +/** + * Use [`has`](#has) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const hasOwnProperty: <K extends string>(k: string, r: Record<K, unknown>) => k is K +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.record` + * (where `R` is from `import R from 'fp-ts/Record'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const record: FunctorWithIndex1<URI, string> & + FoldableWithIndex1<URI, string> & + FilterableWithIndex1<URI, string> & + TraversableWithIndex1<URI, string> & + Witherable1<URI> diff --git a/node_modules/fp-ts/lib/Record.js b/node_modules/fp-ts/lib/Record.js new file mode 100644 index 0000000..cd27a3a --- /dev/null +++ b/node_modules/fp-ts/lib/Record.js @@ -0,0 +1,1201 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foldable = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getWitherable = exports.getTraversableWithIndex = exports.getTraversable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.getFoldableWithIndex = exports.getFoldable = exports.FunctorWithIndex = exports.flap = exports.Functor = exports.getMonoid = exports.getEq = exports.URI = exports.separate = exports.compact = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.difference = exports.intersection = exports.union = exports.elem = exports.some = exports.every = exports.fromEntries = exports.toEntries = exports.filterMapWithIndex = exports.partitionMapWithIndex = exports.wilt = exports.wither = exports.singleton = exports.map = exports.mapWithIndex = exports.lookup = exports.isSubrecord = exports.modifyAt = exports.updateAt = exports.has = exports.upsertAt = exports.toArray = exports.keys = exports.isEmpty = exports.size = void 0; +exports.record = exports.hasOwnProperty = exports.insertAt = exports.empty = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = void 0; +exports.collect = collect; +exports.toUnfoldable = toUnfoldable; +exports.deleteAt = deleteAt; +exports.pop = pop; +exports.reduceWithIndex = reduceWithIndex; +exports.foldMapWithIndex = foldMapWithIndex; +exports.reduceRightWithIndex = reduceRightWithIndex; +exports.traverseWithIndex = traverseWithIndex; +exports.traverse = traverse; +exports.sequence = sequence; +exports.partitionWithIndex = partitionWithIndex; +exports.filterWithIndex = filterWithIndex; +exports.fromFoldable = fromFoldable; +exports.fromFoldableMap = fromFoldableMap; +exports.reduce = reduce; +exports.foldMap = foldMap; +exports.reduceRight = reduceRight; +exports.getShow = getShow; +var A = __importStar(require("./Array")); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var RR = __importStar(require("./ReadonlyRecord")); +var Se = __importStar(require("./Semigroup")); +var S = __importStar(require("./string")); +var Witherable_1 = require("./Witherable"); +// ------------------------------------------------------------------------------------- +// model +// ------------------------------------------------------------------------------------- +/** + * Calculate the number of key/value pairs in a `Record`. + * + * @example + * import { size } from "fp-ts/Record"; + * + * assert.deepStrictEqual(size({ a: true, b: 2, c: "three" }), 3); + * + * @since 2.0.0 + */ +exports.size = RR.size; +/** + * Test whether a `Record` is empty. + * + * @example + * import { isEmpty } from "fp-ts/Record"; + * + * assert.deepStrictEqual(isEmpty({}), true); + * assert.deepStrictEqual(isEmpty({ a: 3 }), false); + * + * @since 2.0.0 + */ +exports.isEmpty = RR.isEmpty; +var keys_ = function (O) { + return function (r) { + return Object.keys(r).sort(O.compare); + }; +}; +/** + * The keys of a `Record`, sorted alphabetically. + * + * @example + * import { keys } from "fp-ts/Record"; + * + * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), ["a", "b", "c"]); + * + * @since 2.0.0 + */ +exports.keys = keys_(S.Ord); +function collect(O) { + if (typeof O === 'function') { + return collect(S.Ord)(O); + } + var keysO = keys_(O); + return function (f) { + return function (r) { + var out = []; + for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) { + var key = _a[_i]; + out.push(f(key, r[key])); + } + return out; + }; + }; +} +/** + * Get a sorted `Array` of the key/value pairs contained in a `Record`. + * Sorted alphabetically by key. + * + * @example + * import { toArray } from 'fp-ts/Record' + * + * const x = { c: 3, a: "foo", b: false }; + * assert.deepStrictEqual(toArray(x), [ + * ["a", "foo"], + * ["b", false], + * ["c", 3], + * ]); + * + * @category conversions + * @since 2.0.0 + */ +exports.toArray = collect(S.Ord)(function (k, a) { return [ + k, + a +]; }); +function toUnfoldable(U) { + return function (r) { + var sas = (0, exports.toArray)(r); + var len = sas.length; + return U.unfold(0, function (b) { return (b < len ? _.some([sas[b], b + 1]) : _.none); }); + }; +} +/** + * Insert or replace a key/value pair in a `Record`. + * + * @example + * import { upsertAt } from 'fp-ts/Record' + * + * assert.deepStrictEqual(upsertAt("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 }); + * assert.deepStrictEqual(upsertAt("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 }); + * + * @since 2.10.0 + */ +exports.upsertAt = RR.upsertAt; +/** + * Test whether or not a key exists in a `Record`. + * + * Note. This function is not pipeable because is a `Refinement`. + * + * @example + * import { has } from 'fp-ts/Record' + * + * assert.deepStrictEqual(has("a", { a: 1, b: 2 }), true); + * assert.deepStrictEqual(has("c", { a: 1, b: 2 }), false); + * + * @since 2.10.0 + */ +exports.has = RR.has; +function deleteAt(k) { + return function (r) { + if (!_.has.call(r, k)) { + return r; + } + var out = Object.assign({}, r); + delete out[k]; + return out; + }; +} +/** + * Replace a key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { updateAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(updateAt("a", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(updateAt("c", 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +var updateAt = function (k, a) { + return (0, exports.modifyAt)(k, function () { return a; }); +}; +exports.updateAt = updateAt; +/** + * Applies a mapping function to one spcific key/value pair in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing a new `Record` + * with the entry updated, otherwise it returns `None` + * + * @example + * import { modifyAt } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(modifyAt("a", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 })); + * assert.deepStrictEqual(modifyAt("c", (x: number) => x * 3)({ a: 1, b: 2 }), option.none); + * + * @since 2.0.0 + */ +var modifyAt = function (k, f) { + return function (r) { + if (!(0, exports.has)(k, r)) { + return _.none; + } + var out = Object.assign({}, r); + out[k] = f(r[k]); + return _.some(out); + }; +}; +exports.modifyAt = modifyAt; +function pop(k) { + var deleteAtk = deleteAt(k); + return function (r) { + var oa = (0, exports.lookup)(k, r); + return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]); + }; +} +// TODO: remove non-curried overloading in v3 +/** + * Test whether one `Record` contains all of the keys and values + * contained in another `Record`. + * + * @example + * import { isSubrecord } from 'fp-ts/Record' + * import { string } from 'fp-ts' + * + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "bar", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", c: "baz" }), + * true + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar", c: "baz" })({ a: "foo", b: "not-bar", c: "baz" }), + * false + * ); + * assert.deepStrictEqual( + * isSubrecord(string.Eq)({ a: "foo", b: "bar" })({ a: "foo", b: "bar", c: "baz" }), + * false + * ); + * + * @since 2.0.0 + */ +exports.isSubrecord = RR.isSubrecord; +// TODO: remove non-curried overloading in v3 +/** + * Lookup the value for a key in a `Record`. + * + * @returns If the specified key exists it returns an `Option` containing the value, + * otherwise it returns `None` + * + * @example + * import { lookup } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(lookup("b")({ a: "foo", b: "bar" }), option.some("bar")); + * assert.deepStrictEqual(lookup("c")({ a: "foo", b: "bar" }), option.none); + * + * @since 2.0.0 + */ +exports.lookup = RR.lookup; +/** + * Map a `Record` passing the key/value pairs to the iterating function. + * + * @example + * import { mapWithIndex } from "fp-ts/Record"; + * + * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`; + * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: "A-3", b: "B-5" }); + * + * @since 2.0.0 + */ +exports.mapWithIndex = RR.mapWithIndex; +/** + * Map a `Record` passing the values to the iterating function. + * + * @example + * import { map } from "fp-ts/Record"; + * + * const f = (n: number) => `-${n}-`; + * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: "-3-", b: "-5-" }); + * + * @category mapping + * @since 2.0.0 + */ +exports.map = RR.map; +function reduceWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduceWithIndex(args[0]) : RR.reduceWithIndex(S.Ord).apply(void 0, args); +} +function foldMapWithIndex(O) { + return 'compare' in O ? RR.foldMapWithIndex(O) : RR.foldMapWithIndex(S.Ord)(O); +} +function reduceRightWithIndex() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduceRightWithIndex(args[0]) : RR.reduceRightWithIndex(S.Ord).apply(void 0, args); +} +/** + * Create a `Record` with one key/value pair. + * + * @example + * import { singleton } from "fp-ts/Record"; + * + * assert.deepStrictEqual(singleton("a", 1), { a: 1 }); + * + * @since 2.0.0 + */ +exports.singleton = RR.singleton; +function traverseWithIndex(F) { + return RR.traverseWithIndex(F); +} +function traverse(F) { + return RR.traverse(F); +} +function sequence(F) { + return RR.sequence(F); +} +/** + * @category filtering + * @since 2.6.5 + */ +var wither = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.compact); }; }; +}; +exports.wither = wither; +/** + * @category filtering + * @since 2.6.5 + */ +var wilt = function (F) { + var traverseF = traverse(F); + return function (f) { return function (fa) { return F.map((0, function_1.pipe)(fa, traverseF(f)), exports.separate); }; }; +}; +exports.wilt = wilt; +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMapWithIndex } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (key: string, a: number) => + * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`); + * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), { + * left: { + * a: "a is < 0 (-1)", + * }, + * right: { + * b: "b is >= 0 (2)", + * c: "c is >= 0 (123)", + * }, + * }); + * + * @since 2.0.0 + */ +exports.partitionMapWithIndex = RR.partitionMapWithIndex; +function partitionWithIndex(predicateWithIndex) { + return RR.partitionWithIndex(predicateWithIndex); +} +/** + * Maps a `Record` with an iterating function that takes key and value and + * returns an `Option`, keeping only the `Some` values and discarding `None`s. + * + * @example + * import { filterMapWithIndex } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none); + * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), { + * b: "b2", + * c: "c3", + * }); + * + * @since 2.0.0 + */ +exports.filterMapWithIndex = RR.filterMapWithIndex; +function filterWithIndex(predicateWithIndex) { + return RR.filterWithIndex(predicateWithIndex); +} +function fromFoldable(M, F) { + return RR.fromFoldable(M, F); +} +/** + * Alias of [`toArray`](#toArray). + * + * @example + * import { toEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(toEntries({ b: 2, a: 1 }), [['a', 1], ['b', 2]]) + * + * @since 2.12.0 + * @category conversions + */ +exports.toEntries = exports.toArray; +/** + * Converts an `Array` of `[key, value]` tuples into a `Record`. + * + * @example + * import { fromEntries } from 'fp-ts/Record' + * + * assert.deepStrictEqual(fromEntries([['a', 1], ['b', 2], ['a', 3]]), { b: 2, a: 3 }) + * + * @since 2.12.0 + * @category conversions + */ +var fromEntries = function (fa) { return fromFoldable(Se.last(), A.Foldable)(fa); }; +exports.fromEntries = fromEntries; +function fromFoldableMap(M, F) { + return RR.fromFoldableMap(M, F); +} +/** + * Test if every value in a `Record` satisfies the predicate. + * + * @example + * import { every } from "fp-ts/Record" + * + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true); + * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false); + * + * @since 2.0.0 + */ +exports.every = RR.every; +/** + * Test if at least one value in a `Record` satisfies the predicate. + * + * @example + * import { some } from "fp-ts/Record" + * + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true); + * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false); + * + * @since 2.0.0 + */ +exports.some = RR.some; +// TODO: remove non-curried overloading in v3 +/** + * Given an `Eq` checks if a `Record` contains an entry with + * value equal to a provided value. + * + * @example + * import { elem } from "fp-ts/Record" + * import { number } from "fp-ts" + * + * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true); + * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false); + * + * @since 2.0.0 + */ +exports.elem = RR.elem; +/** + * Union of two `Record`s. + * Takes two `Record`s and produces a `Record` combining all the + * entries of the two inputs. + * It uses the `concat` function of the provided `Magma` to + * combine the elements with the same key. + * + * @example + * import { union } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 }); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 }); + * + * @since 2.11.0 + */ +var union = function (M) { + var unionM = RR.union(M); + return function (second) { return function (first) { + if ((0, exports.isEmpty)(first)) { + return __assign({}, second); + } + if ((0, exports.isEmpty)(second)) { + return __assign({}, first); + } + return unionM(second)(first); + }; }; +}; +exports.union = union; +/** + * Intersection of two `Record`s. + * Takes two `Record`s and produces a `Record` combining only the + * entries of the two inputswith the same key. + * It uses the `concat` function of the provided `Magma` to + * combine the elements. + * + * @example + * import { intersection } from "fp-ts/Record"; + * import { Magma } from "fp-ts/Magma"; + * + * const m1: Magma<number> = { concat: (x: number, y: number) => x + y }; + * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4}); + * const m2: Magma<number> = { concat: (x: number) => x }; + * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1}); + * + * @since 2.11.0 + */ +var intersection = function (M) { + return function (second) { + return function (first) { + if ((0, exports.isEmpty)(first) || (0, exports.isEmpty)(second)) { + return {}; + } + return RR.intersection(M)(second)(first); + }; + }; +}; +exports.intersection = intersection; +/** + * Difference between two `Record`s. + * Takes two `Record`s and produces a `Record` composed by the + * entries of the two inputs, removing the entries with the same + * key in both inputs. + * + * @example + * import { difference } from "fp-ts/Record"; + * + * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 }); + * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 }); + * + * @since 2.11.0 + */ +var difference = function (second) { + return function (first) { + if ((0, exports.isEmpty)(first)) { + return __assign({}, second); + } + if ((0, exports.isEmpty)(second)) { + return __assign({}, first); + } + return RR.difference(second)(first); + }; +}; +exports.difference = difference; +var _map = RR._map; +var _mapWithIndex = RR._mapWithIndex; +var _reduce = RR._reduce; +var _foldMap = RR._foldMap; +var _reduceRight = RR._reduceRight; +var _filter = RR._filter; +var _filterMap = RR._filterMap; +var _partition = RR._partition; +var _partitionMap = RR._partitionMap; +var _reduceWithIndex = RR._reduceWithIndex; +var _foldMapWithIndex = RR._foldMapWithIndex; +var _reduceRightWithIndex = RR._reduceRightWithIndex; +var _partitionMapWithIndex = RR._partitionMapWithIndex; +var _partitionWithIndex = RR._partitionWithIndex; +var _filterMapWithIndex = RR._filterMapWithIndex; +var _filterWithIndex = RR._filterWithIndex; +var _traverse = RR._traverse; +var _sequence = RR._sequence; +var _traverseWithIndex = function (O) { + return function (F) { + var keysO = keys_(O); + return function (ta, f) { + var ks = keysO(ta); + if (ks.length === 0) { + return F.of({}); + } + var fr = F.of({}); + var _loop_1 = function (key) { + fr = F.ap(F.map(fr, function (r) { return function (b) { + r[key] = b; + return r; + }; }), f(key, ta[key])); + }; + for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) { + var key = ks_1[_i]; + _loop_1(key); + } + return fr; + }; + }; +}; +/** + * Given a `Predicate`, it produces a new `Record` keeping only the entries with a + * value that satisfies the provided predicate. + * + * @example + * import { filter } from "fp-ts/Record" + * + * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo", + * b: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +exports.filter = RR.filter; +/** + * Maps a `Record` with an iterating function that returns an `Option` + * and it keeps only the `Some` values discarding the `None`s. + * + * @example + * import { filterMap } from "fp-ts/Record" + * import { option } from "fp-ts" + * + * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none + * assert.deepStrictEqual(filterMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * a: "foo is short", + * b: "bar is short", + * }); + * + * @category filtering + * @since 2.0.0 + */ +exports.filterMap = RR.filterMap; +/** + * Partition a `Record` into two parts according to a `Predicate`. + * + * @example + * import { partition } from "fp-ts/Record" + * + * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: "foo", b: "bar", c: "verylong" }), { + * left:{ + * c: "verylong" + * }, + * right: { + * a: "foo", + * b: "bar", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +exports.partition = RR.partition; +/** + * Maps a `Record` with a function returning an `Either` and + * partitions the resulting `Record` into `Left`s and `Right`s. + * + * @example + * import { partitionMap } from "fp-ts/Record" + * import { either } from "fp-ts" + * + * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`)); + * assert.deepStrictEqual(partitionMap(f)({ a: "foo", b: "bar", c: "verylong" }), { + * left: { + * c: "verylong is not short", + * }, + * right: { + * a: "foo is short", + * b: "bar is short", + * }, + * }); + * + * @category filtering + * @since 2.0.0 + */ +exports.partitionMap = RR.partitionMap; +function reduce() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduce(args[0]) : RR.reduce(S.Ord).apply(void 0, args); +} +function foldMap(O) { + return 'compare' in O ? RR.foldMap(O) : RR.foldMap(S.Ord)(O); +} +function reduceRight() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return args.length === 1 ? RR.reduceRight(args[0]) : RR.reduceRight(S.Ord).apply(void 0, args); +} +/** + * Compact a `Record` of `Option`s discarding the `None` values and + * keeping the `Some` values. + * + * @example + * import { compact } from 'fp-ts/Record' + * import { option } from 'fp-ts' + * + * assert.deepStrictEqual(compact({ a: option.some("foo"), b: option.none, c: option.some("bar") }), { + * a: "foo", + * c: "bar", + * }); + * + * @category filtering + * @since 2.0.0 + */ +exports.compact = RR.compact; +/** + * Separate a `Record` of `Either`s into `Left`s and `Right`s. + * + * @example + * import { separate } from 'fp-ts/Record' + * import { either } from 'fp-ts' + * + * assert.deepStrictEqual( + * separate({ a: either.right("foo"), b: either.left("bar"), c: either.right("baz") }), + * { + * right: { + * a: "foo", + * c: "baz", + * }, + * left: { + * b: "bar", + * }, + * } + * ); + * + * @category filtering + * @since 2.0.0 + */ +exports.separate = RR.separate; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Record'; +function getShow(O) { + return 'compare' in O ? RR.getShow(O) : RR.getShow(S.Ord)(O); +} +/** + * Given an `Eq` for the base type, it produces an `Eq` + * for a `Record` of that base type. + * + * @example + * import { getEq } from "fp-ts/Record"; + * import { string } from "fp-ts"; + * import { Eq } from "fp-ts/Eq"; + * + * const eq: Eq<Record<string, string>> = getEq(string.Eq); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { b: "bar" }), false); + * assert.deepStrictEqual(eq.equals({ a: "foo" }, { a: "foo" }), true); + * + * @category instances + * @since 2.0.0 + */ +exports.getEq = RR.getEq; +/** + * Returns a `Monoid` instance for `Record`s, given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s comining the + * overlapping entries with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getMonoid } from 'fp-ts/Record' + * + * const M = getMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.0.0 + */ +exports.getMonoid = RR.getMonoid; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Takes a value and a `Record` of functions and returns a + * `Record` by applying each function to the input value. + * + * @example + * import { flap } from "fp-ts/Record" + * + * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` }; + * assert.deepStrictEqual(flap(3)(fab), { + * x: "3 times 2", + * y: "6", + * }); + * + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.7.0 + */ +exports.FunctorWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex +}; +/** + * Produces a `Foldable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +var getFoldable = function (O) { return ({ + URI: exports.URI, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O) +}); }; +exports.getFoldable = getFoldable; +/** + * Produces a `FoldableWithIndex1` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category folding + * @since 2.11.0 + */ +var getFoldableWithIndex = function (O) { return ({ + URI: exports.URI, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + reduceWithIndex: _reduceWithIndex(O), + foldMapWithIndex: _foldMapWithIndex(O), + reduceRightWithIndex: _reduceRightWithIndex(O) +}); }; +exports.getFoldableWithIndex = getFoldableWithIndex; +/** + * @category instances + * @since 2.7.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.FilterableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex +}; +/** + * Produces a `Traversable` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +var getTraversable = function (O) { return ({ + URI: exports.URI, + map: _map, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + traverse: _traverse(O), + sequence: _sequence(O) +}); }; +exports.getTraversable = getTraversable; +/** + * Produces a `TraversableWithIndex` instance for a `Record`, using the + * provided `Ord` to sort the `Record`'s entries by key. + * + * @category traversing + * @since 2.11.0 + */ +var getTraversableWithIndex = function (O) { return ({ + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + reduceWithIndex: _reduceWithIndex(O), + foldMapWithIndex: _foldMapWithIndex(O), + reduceRightWithIndex: _reduceRightWithIndex(O), + traverse: _traverse(O), + sequence: _sequence(O), + traverseWithIndex: _traverseWithIndex(O) +}); }; +exports.getTraversableWithIndex = getTraversableWithIndex; +/** + * @category filtering + * @since 2.11.0 + */ +var getWitherable = function (O) { + var T = (0, exports.getTraversable)(O); + return { + URI: exports.URI, + map: _map, + reduce: _reduce(O), + foldMap: _foldMap(O), + reduceRight: _reduceRight(O), + traverse: T.traverse, + sequence: T.sequence, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: (0, Witherable_1.witherDefault)(T, exports.Compactable), + wilt: (0, Witherable_1.wiltDefault)(T, exports.Compactable) + }; +}; +exports.getWitherable = getWitherable; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `union`. + * + * @example + * import { getUnionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getUnionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 }); + * + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (S) { + var unionS = (0, exports.union)(S); + return { + concat: function (first, second) { return unionS(second)(first); } + }; +}; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * Same as `getMonoid`. + * Returns a `Monoid` instance for `Record`s given a `Semigroup` + * instance for the base type. + * The `Monoid` makes the union of two `Record`s combining the + * entries that have the same key with the provided `Semigroup`. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * import { getUnionMonoid } from 'fp-ts/Record' + * + * const M = getUnionMonoid(SemigroupSum); + * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 }); + * + * @category instances + * @since 2.11.0 + */ +var getUnionMonoid = function (S) { return ({ + concat: (0, exports.getUnionSemigroup)(S).concat, + empty: {} +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * Given a `Semigroup` in the base type, it produces a `Semigroup` + * in the `Record` of the base type. + * The resulting `Semigroup` concatenates two `Record`s by + * `intersection`. + * + * @example + * import { getIntersectionSemigroup } from "fp-ts/Record" + * import { Semigroup } from "fp-ts/Semigroup" + * + * const sNumber: Semigroup<number> = { concat: (x, y) => x - y }; + * const sRecord: Semigroup<Record<string, number>> = getIntersectionSemigroup(sNumber); + * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 }); + * + * @category instances + * @since 2.11.0 + */ +var getIntersectionSemigroup = function (S) { + var intersectionS = (0, exports.intersection)(S); + return { + concat: function (first, second) { return intersectionS(second)(first); } + }; +}; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * Produces a `Magma` with a `concat` function that combines + * two `Record`s by making the `difference`. + * + * @example + * import { getDifferenceMagma, difference } from "fp-ts/Record" + * import { Magma } from "fp-ts/Magma" + * + * const r1 = { a: 3, c: 3 }; + * const r2 = { a: 1, b: 2 }; + * const m: Magma<Record<string, number>> = getDifferenceMagma<number>(); + * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1)); + * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 }); + * + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function () { return ({ + concat: function (first, second) { return (0, exports.difference)(second)(first); } +}); }; +exports.getDifferenceMagma = getDifferenceMagma; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `getFoldable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Foldable = { + URI: exports.URI, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord) +}; +/** + * Use `getFoldableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.FoldableWithIndex = { + URI: exports.URI, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord) +}; +/** + * Use `getTraversable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence +}; +/** + * Use the `getTraversableWithIndex` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.TraversableWithIndex = { + URI: exports.URI, + map: _map, + mapWithIndex: _mapWithIndex, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord) +}; +var _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable); +var _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable); +/** + * Use `getWitherable` instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.Witherable = { + URI: exports.URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + wither: _wither, + wilt: _wilt +}; +/** + * Use a new `{}` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.empty = {}; +/** + * Use [`upsertAt`](#upsertat) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.insertAt = exports.upsertAt; +/** + * Use [`has`](#has) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.hasOwnProperty = RR.hasOwnProperty; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `R.Functor` instead of `R.record` + * (where `R` is from `import R from 'fp-ts/Record'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.record = { + URI: exports.URI, + map: _map, + reduce: /*#__PURE__*/ _reduce(S.Ord), + foldMap: /*#__PURE__*/ _foldMap(S.Ord), + reduceRight: /*#__PURE__*/ _reduceRight(S.Ord), + traverse: /*#__PURE__*/ _traverse(S.Ord), + sequence: sequence, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap, + mapWithIndex: _mapWithIndex, + reduceWithIndex: /*#__PURE__*/ _reduceWithIndex(S.Ord), + foldMapWithIndex: /*#__PURE__*/ _foldMapWithIndex(S.Ord), + reduceRightWithIndex: /*#__PURE__*/ _reduceRightWithIndex(S.Ord), + filterMapWithIndex: _filterMapWithIndex, + filterWithIndex: _filterWithIndex, + partitionMapWithIndex: _partitionMapWithIndex, + partitionWithIndex: _partitionWithIndex, + traverseWithIndex: /*#__PURE__*/ _traverseWithIndex(S.Ord), + wither: _wither, + wilt: _wilt +}; diff --git a/node_modules/fp-ts/lib/Refinement.d.ts b/node_modules/fp-ts/lib/Refinement.d.ts new file mode 100644 index 0000000..fb84f6b --- /dev/null +++ b/node_modules/fp-ts/lib/Refinement.d.ts @@ -0,0 +1,55 @@ +/** + * @since 2.11.0 + */ +import { Either } from './Either' +import { Option } from './Option' +/** + * @since 2.11.0 + */ +export interface Refinement<A, B extends A> { + (a: A): a is B +} +/** + * Returns a `Refinement` from a `Option` returning function. + * This function ensures that a `Refinement` definition is type-safe. + * + * @category lifting + * @since 2.11.0 + */ +export declare const fromOptionK: <A, B extends A>(getOption: (a: A) => Option<B>) => Refinement<A, B> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromEitherK: <A, B extends A>(getEither: (a: A) => Either<unknown, B>) => Refinement<A, B> +/** + * @category constructors + * @since 2.11.0 + */ +export declare const id: <A>() => Refinement<A, A> +/** + * @since 2.11.0 + */ +export declare const not: <A, B extends A>(refinement: Refinement<A, B>) => Refinement<A, Exclude<A, B>> +/** + * @since 2.11.0 + */ +export declare const or: <A, C extends A>( + second: Refinement<A, C> +) => <B extends A>(first: Refinement<A, B>) => Refinement<A, B | C> +/** + * @since 2.11.0 + */ +export declare const and: <A, C extends A>( + second: Refinement<A, C> +) => <B extends A>(first: Refinement<A, B>) => Refinement<A, B & C> +/** + * @since 2.11.0 + */ +export declare const zero: <A, B extends A>() => Refinement<A, B> +/** + * @since 2.11.0 + */ +export declare const compose: <A, B extends A, C extends B>( + bc: Refinement<B, C> +) => (ab: Refinement<A, B>) => Refinement<A, C> diff --git a/node_modules/fp-ts/lib/Refinement.js b/node_modules/fp-ts/lib/Refinement.js new file mode 100644 index 0000000..7937c12 --- /dev/null +++ b/node_modules/fp-ts/lib/Refinement.js @@ -0,0 +1,107 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.compose = exports.zero = exports.and = exports.or = exports.not = exports.id = exports.fromEitherK = exports.fromOptionK = void 0; +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Returns a `Refinement` from a `Option` returning function. + * This function ensures that a `Refinement` definition is type-safe. + * + * @category lifting + * @since 2.11.0 + */ +var fromOptionK = function (getOption) { + return function (a) { return _.isSome(getOption(a)); }; +}; +exports.fromOptionK = fromOptionK; +/** + * @category lifting + * @since 2.11.0 + */ +var fromEitherK = function (getEither) { + return function (a) { return _.isRight(getEither(a)); }; +}; +exports.fromEitherK = fromEitherK; +/** + * @category constructors + * @since 2.11.0 + */ +var id = function () { + return function (_) { return true; }; +}; +exports.id = id; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +var not = function (refinement) { + return function (a) { + return !refinement(a); + }; +}; +exports.not = not; +/** + * @since 2.11.0 + */ +var or = function (second) { + return function (first) { + return function (a) { + return first(a) || second(a); + }; + }; +}; +exports.or = or; +/** + * @since 2.11.0 + */ +var and = function (second) { + return function (first) { + return function (a) { + return first(a) && second(a); + }; + }; +}; +exports.and = and; +/** + * @since 2.11.0 + */ +var zero = function () { + return function (_) { return false; }; +}; +exports.zero = zero; +/** + * @since 2.11.0 + */ +var compose = function (bc) { + return function (ab) { + return function (i) { return ab(i) && bc(i); }; + }; +}; +exports.compose = compose; diff --git a/node_modules/fp-ts/lib/Ring.d.ts b/node_modules/fp-ts/lib/Ring.d.ts new file mode 100644 index 0000000..7dd1000 --- /dev/null +++ b/node_modules/fp-ts/lib/Ring.d.ts @@ -0,0 +1,53 @@ +import { Semiring } from './Semiring' +/** + * @category model + * @since 2.0.0 + */ +export interface Ring<A> extends Semiring<A> { + readonly sub: (x: A, y: A) => A +} +/** + * Given a tuple of `Ring`s returns a `Ring` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Ring' + * import * as N from 'fp-ts/number' + * + * const R = tuple(N.Field, N.Field, N.Field) + * assert.deepStrictEqual(R.add([1, 2, 3], [4, 5, 6]), [5, 7, 9]) + * assert.deepStrictEqual(R.mul([1, 2, 3], [4, 5, 6]), [4, 10, 18]) + * assert.deepStrictEqual(R.one, [1, 1, 1]) + * assert.deepStrictEqual(R.sub([1, 2, 3], [4, 5, 6]), [-3, -3, -3]) + * assert.deepStrictEqual(R.zero, [0, 0, 0]) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...rings: { [K in keyof A]: Ring<A[K]> } +) => Ring<Readonly<A>> +/** + * `negate x` can be used as a shorthand for `zero - x` + * + * @since 2.0.0 + */ +export declare const negate: <A>(R: Ring<A>) => (a: A) => A +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleRing: <T extends ReadonlyArray<Ring<any>>>( + ...rings: T +) => Ring<{ + [K in keyof T]: T[K] extends Ring<infer A> ? A : never +}> +/** + * Use [`getRing`](./function.ts.html#getring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionRing: <A, B>(R: Ring<B>) => Ring<(a: A) => B> diff --git a/node_modules/fp-ts/lib/Ring.js b/node_modules/fp-ts/lib/Ring.js new file mode 100644 index 0000000..87af60a --- /dev/null +++ b/node_modules/fp-ts/lib/Ring.js @@ -0,0 +1,81 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getFunctionRing = exports.getTupleRing = exports.negate = exports.tuple = void 0; +/** + * The `Ring` class is for types that support addition, multiplication, and subtraction operations. + * + * Instances must satisfy the following law in addition to the `Semiring` laws: + * + * - Additive inverse: `a - a <-> (zero - a) + a <-> zero` + * + * Adapted from https://github.com/purescript/purescript-prelude/blob/master/src/Data/Ring.purs + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Given a tuple of `Ring`s returns a `Ring` for the tuple + * + * @example + * import { tuple } from 'fp-ts/Ring' + * import * as N from 'fp-ts/number' + * + * const R = tuple(N.Field, N.Field, N.Field) + * assert.deepStrictEqual(R.add([1, 2, 3], [4, 5, 6]), [5, 7, 9]) + * assert.deepStrictEqual(R.mul([1, 2, 3], [4, 5, 6]), [4, 10, 18]) + * assert.deepStrictEqual(R.one, [1, 1, 1]) + * assert.deepStrictEqual(R.sub([1, 2, 3], [4, 5, 6]), [-3, -3, -3]) + * assert.deepStrictEqual(R.zero, [0, 0, 0]) + * + * @since 2.10.0 + */ +var tuple = function () { + var rings = []; + for (var _i = 0; _i < arguments.length; _i++) { + rings[_i] = arguments[_i]; + } + return ({ + add: function (x, y) { return rings.map(function (R, i) { return R.add(x[i], y[i]); }); }, + zero: rings.map(function (R) { return R.zero; }), + mul: function (x, y) { return rings.map(function (R, i) { return R.mul(x[i], y[i]); }); }, + one: rings.map(function (R) { return R.one; }), + sub: function (x, y) { return rings.map(function (R, i) { return R.sub(x[i], y[i]); }); } + }); +}; +exports.tuple = tuple; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * `negate x` can be used as a shorthand for `zero - x` + * + * @since 2.0.0 + */ +var negate = function (R) { + return function (a) { + return R.sub(R.zero, a); + }; +}; +exports.negate = negate; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getTupleRing = exports.tuple; +/** + * Use [`getRing`](./function.ts.html#getring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getFunctionRing = function_1.getRing; diff --git a/node_modules/fp-ts/lib/Semigroup.d.ts b/node_modules/fp-ts/lib/Semigroup.d.ts new file mode 100644 index 0000000..922073f --- /dev/null +++ b/node_modules/fp-ts/lib/Semigroup.d.ts @@ -0,0 +1,302 @@ +import * as M from './Magma' +import * as Or from './Ord' +import { ReadonlyRecord } from './ReadonlyRecord' +import Ord = Or.Ord +import Magma = M.Magma +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroup<A> extends Magma<A> {} +/** + * Get a semigroup where `concat` will return the minimum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.min(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +export declare const min: <A>(O: Ord<A>) => Semigroup<A> +/** + * Get a semigroup where `concat` will return the maximum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.max(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +export declare const max: <A>(O: Ord<A>) => Semigroup<A> +/** + * @category constructors + * @since 2.10.0 + */ +export declare const constant: <A>(a: A) => Semigroup<A> +/** + * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +export declare const reverse: <A>(S: Semigroup<A>) => Semigroup<A> +/** + * Given a struct of semigroups returns a semigroup for the struct. + * + * @example + * import { struct } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const S = struct<Point>({ + * x: N.SemigroupSum, + * y: N.SemigroupSum + * }) + * + * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +export declare const struct: <A>(semigroups: { [K in keyof A]: Semigroup<A[K]> }) => Semigroup<{ + readonly [K in keyof A]: A[K] +}> +/** + * Given a tuple of semigroups returns a semigroup for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Semigroup' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const S1 = tuple(S.Semigroup, N.SemigroupSum) + * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll) + * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...semigroups: { [K in keyof A]: Semigroup<A[K]> } +) => Semigroup<Readonly<A>> +/** + * Between each pair of elements insert `middle`. + * + * @example + * import { intercalate } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * const S1 = pipe(S.Semigroup, intercalate(' + ')) + * + * assert.strictEqual(S1.concat('a', 'b'), 'a + b') + * + * @since 2.10.0 + */ +export declare const intercalate: <A>(middle: A) => (S: Semigroup<A>) => Semigroup<A> +/** + * Always return the first argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.first<number>().concat(1, 2), 1) + * + * @category instances + * @since 2.10.0 + */ +export declare const first: <A = never>() => Semigroup<A> +/** + * Always return the last argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.last<number>().concat(1, 2), 2) + * + * @category instances + * @since 2.10.0 + */ +export declare const last: <A = never>() => Semigroup<A> +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * const sum = concatAll(N.SemigroupSum)(0) + * + * assert.deepStrictEqual(sum([1, 2, 3]), 6) + * assert.deepStrictEqual(sum([]), 0) + * + * @since 2.10.0 + */ +export declare const concatAll: <A>(S: Semigroup<A>) => (startWith: A) => (as: ReadonlyArray<A>) => A +/** + * Use `void` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupVoid: Semigroup<void> +/** + * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getObjectSemigroup: <A extends object = never>() => Semigroup<A> +/** + * Use [`last`](#last) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getLastSemigroup: <A = never>() => Semigroup<A> +/** + * Use [`first`](#first) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFirstSemigroup: <A = never>() => Semigroup<A> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleSemigroup: <T extends ReadonlyArray<Semigroup<any>>>( + ...semigroups: T +) => Semigroup<{ + [K in keyof T]: T[K] extends Semigroup<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructSemigroup: <O extends ReadonlyRecord<string, any>>(semigroups: { + [K in keyof O]: Semigroup<O[K]> +}) => Semigroup<O> +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getDualSemigroup: <A>(S: Semigroup<A>) => Semigroup<A> +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getJoinSemigroup: <A>(O: Ord<A>) => Semigroup<A> +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMeetSemigroup: <A>(O: Ord<A>) => Semigroup<A> +/** + * Use [`intercalate`](#intercalate) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +export declare const getIntercalateSemigroup: <A>(middle: A) => (S: Semigroup<A>) => Semigroup<A> +/** + * Use [`concatAll`](#concatall) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function fold<A>(S: Semigroup<A>): { + (startWith: A): (as: ReadonlyArray<A>) => A + (startWith: A, as: ReadonlyArray<A>): A +} +/** + * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupAll: Semigroup<boolean> +/** + * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupAny: Semigroup<boolean> +/** + * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionSemigroup: <S>(S: Semigroup<S>) => <A = never>() => Semigroup<(a: A) => S> +/** + * Use [`Semigroup`](./string.ts.html#Semigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupString: Semigroup<string> +/** + * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupSum: Semigroup<number> +/** + * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const semigroupProduct: Semigroup<number> diff --git a/node_modules/fp-ts/lib/Semigroup.js b/node_modules/fp-ts/lib/Semigroup.js new file mode 100644 index 0000000..a7bbae8 --- /dev/null +++ b/node_modules/fp-ts/lib/Semigroup.js @@ -0,0 +1,409 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.semigroupProduct = exports.semigroupSum = exports.semigroupString = exports.getFunctionSemigroup = exports.semigroupAny = exports.semigroupAll = exports.getIntercalateSemigroup = exports.getMeetSemigroup = exports.getJoinSemigroup = exports.getDualSemigroup = exports.getStructSemigroup = exports.getTupleSemigroup = exports.getFirstSemigroup = exports.getLastSemigroup = exports.getObjectSemigroup = exports.semigroupVoid = exports.concatAll = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0; +exports.fold = fold; +/** + * If a type `A` can form a `Semigroup` it has an **associative** binary operation. + * + * ```ts + * interface Semigroup<A> { + * readonly concat: (x: A, y: A) => A + * } + * ``` + * + * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`. + * + * ```ts + * concat(x, concat(y, z)) = concat(concat(x, y), z) + * ``` + * + * A common example of a semigroup is the type `string` with the operation `+`. + * + * ```ts + * import { Semigroup } from 'fp-ts/Semigroup' + * + * const semigroupString: Semigroup<string> = { + * concat: (x, y) => x + y + * } + * + * const x = 'x' + * const y = 'y' + * const z = 'z' + * + * semigroupString.concat(x, y) // 'xy' + * + * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz' + * + * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz' + * ``` + * + * *Adapted from https://typelevel.org/cats* + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +var _ = __importStar(require("./internal")); +var M = __importStar(require("./Magma")); +var Or = __importStar(require("./Ord")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Get a semigroup where `concat` will return the minimum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.min(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 1) + * + * @category constructors + * @since 2.10.0 + */ +var min = function (O) { return ({ + concat: Or.min(O) +}); }; +exports.min = min; +/** + * Get a semigroup where `concat` will return the maximum, based on the provided order. + * + * @example + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/Semigroup' + * + * const S1 = S.max(N.Ord) + * + * assert.deepStrictEqual(S1.concat(1, 2), 2) + * + * @category constructors + * @since 2.10.0 + */ +var max = function (O) { return ({ + concat: Or.max(O) +}); }; +exports.max = max; +/** + * @category constructors + * @since 2.10.0 + */ +var constant = function (a) { return ({ + concat: function () { return a; } +}); }; +exports.constant = constant; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`. + * + * @example + * import { reverse } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba') + * + * @since 2.10.0 + */ +exports.reverse = M.reverse; +/** + * Given a struct of semigroups returns a semigroup for the struct. + * + * @example + * import { struct } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * interface Point { + * readonly x: number + * readonly y: number + * } + * + * const S = struct<Point>({ + * x: N.SemigroupSum, + * y: N.SemigroupSum + * }) + * + * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 }) + * + * @since 2.10.0 + */ +var struct = function (semigroups) { return ({ + concat: function (first, second) { + var r = {}; + for (var k in semigroups) { + if (_.has.call(semigroups, k)) { + r[k] = semigroups[k].concat(first[k], second[k]); + } + } + return r; + } +}); }; +exports.struct = struct; +/** + * Given a tuple of semigroups returns a semigroup for the tuple. + * + * @example + * import { tuple } from 'fp-ts/Semigroup' + * import * as B from 'fp-ts/boolean' + * import * as N from 'fp-ts/number' + * import * as S from 'fp-ts/string' + * + * const S1 = tuple(S.Semigroup, N.SemigroupSum) + * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3]) + * + * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll) + * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false]) + * + * @since 2.10.0 + */ +var tuple = function () { + var semigroups = []; + for (var _i = 0; _i < arguments.length; _i++) { + semigroups[_i] = arguments[_i]; + } + return ({ + concat: function (first, second) { return semigroups.map(function (s, i) { return s.concat(first[i], second[i]); }); } + }); +}; +exports.tuple = tuple; +/** + * Between each pair of elements insert `middle`. + * + * @example + * import { intercalate } from 'fp-ts/Semigroup' + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * const S1 = pipe(S.Semigroup, intercalate(' + ')) + * + * assert.strictEqual(S1.concat('a', 'b'), 'a + b') + * + * @since 2.10.0 + */ +var intercalate = function (middle) { + return function (S) { return ({ + concat: function (x, y) { return S.concat(x, S.concat(middle, y)); } + }); }; +}; +exports.intercalate = intercalate; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * Always return the first argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.first<number>().concat(1, 2), 1) + * + * @category instances + * @since 2.10.0 + */ +var first = function () { return ({ concat: function_1.identity }); }; +exports.first = first; +/** + * Always return the last argument. + * + * @example + * import * as S from 'fp-ts/Semigroup' + * + * assert.deepStrictEqual(S.last<number>().concat(1, 2), 2) + * + * @category instances + * @since 2.10.0 + */ +var last = function () { return ({ concat: function (_, y) { return y; } }); }; +exports.last = last; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Given a sequence of `as`, concat them and return the total. + * + * If `as` is empty, return the provided `startWith` value. + * + * @example + * import { concatAll } from 'fp-ts/Semigroup' + * import * as N from 'fp-ts/number' + * + * const sum = concatAll(N.SemigroupSum)(0) + * + * assert.deepStrictEqual(sum([1, 2, 3]), 6) + * assert.deepStrictEqual(sum([]), 0) + * + * @since 2.10.0 + */ +exports.concatAll = M.concatAll; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use `void` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupVoid = (0, exports.constant)(undefined); +/** + * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getObjectSemigroup = function () { return ({ + concat: function (first, second) { return Object.assign({}, first, second); } +}); }; +exports.getObjectSemigroup = getObjectSemigroup; +/** + * Use [`last`](#last) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getLastSemigroup = exports.last; +/** + * Use [`first`](#first) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getFirstSemigroup = exports.first; +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getTupleSemigroup = exports.tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getStructSemigroup = exports.struct; +/** + * Use [`reverse`](#reverse) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getDualSemigroup = exports.reverse; +/** + * Use [`max`](#max) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getJoinSemigroup = exports.max; +/** + * Use [`min`](#min) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getMeetSemigroup = exports.min; +/** + * Use [`intercalate`](#intercalate) instead. + * + * @category zone of death + * @since 2.5.0 + * @deprecated + */ +exports.getIntercalateSemigroup = exports.intercalate; +function fold(S) { + var concatAllS = (0, exports.concatAll)(S); + return function (startWith, as) { return (as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as)); }; +} +/** + * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupAll = { + concat: function (x, y) { return x && y; } +}; +/** + * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupAny = { + concat: function (x, y) { return x || y; } +}; +/** + * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getFunctionSemigroup = function_1.getSemigroup; +/** + * Use [`Semigroup`](./string.ts.html#Semigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupString = { + concat: function (x, y) { return x + y; } +}; +/** + * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupSum = { + concat: function (x, y) { return x + y; } +}; +/** + * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.semigroupProduct = { + concat: function (x, y) { return x * y; } +}; diff --git a/node_modules/fp-ts/lib/Semigroupoid.d.ts b/node_modules/fp-ts/lib/Semigroupoid.d.ts new file mode 100644 index 0000000..3aa5d68 --- /dev/null +++ b/node_modules/fp-ts/lib/Semigroupoid.d.ts @@ -0,0 +1,54 @@ +/** + * @since 2.0.0 + */ +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid<F> { + readonly URI: F + readonly compose: <A, B, C>(bc: HKT2<F, B, C>, ab: HKT2<F, A, B>) => HKT2<F, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid2<F extends URIS2> { + readonly URI: F + readonly compose: <A, B, C>(ab: Kind2<F, B, C>, la: Kind2<F, A, B>) => Kind2<F, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid2C<F extends URIS2, A> { + readonly URI: F + readonly _E: A + readonly compose: <B, C>(ab: Kind2<F, B, C>, la: Kind2<F, A, B>) => Kind2<F, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid3<F extends URIS3> { + readonly URI: F + readonly compose: <R, A, B, C>(ab: Kind3<F, R, B, C>, la: Kind3<F, R, A, B>) => Kind3<F, R, A, C> +} +/** + * @category model + * @since 2.2.0 + */ +export interface Semigroupoid3C<F extends URIS3, A> { + readonly URI: F + readonly _E: A + readonly compose: <R, B, C>(ab: Kind3<F, R, B, C>, la: Kind3<F, R, A, B>) => Kind3<F, R, A, C> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Semigroupoid4<F extends URIS4> { + readonly URI: F + readonly compose: <S, R, A, B, C>(ab: Kind4<F, S, R, B, C>, la: Kind4<F, S, R, A, B>) => Kind4<F, S, R, A, C> +} diff --git a/node_modules/fp-ts/lib/Semigroupoid.js b/node_modules/fp-ts/lib/Semigroupoid.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Semigroupoid.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Semiring.d.ts b/node_modules/fp-ts/lib/Semiring.d.ts new file mode 100644 index 0000000..1b55baa --- /dev/null +++ b/node_modules/fp-ts/lib/Semiring.d.ts @@ -0,0 +1,18 @@ +/** + * @category model + * @since 2.0.0 + */ +export interface Semiring<A> { + readonly add: (x: A, y: A) => A + readonly zero: A + readonly mul: (x: A, y: A) => A + readonly one: A +} +/** + * Use [`getSemiring`](./function.ts.html#getsemiring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getFunctionSemiring: <A, B>(S: Semiring<B>) => Semiring<(a: A) => B> diff --git a/node_modules/fp-ts/lib/Semiring.js b/node_modules/fp-ts/lib/Semiring.js new file mode 100644 index 0000000..3da174c --- /dev/null +++ b/node_modules/fp-ts/lib/Semiring.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getFunctionSemiring = void 0; +/** + * The `Semiring` class is for types that support an addition and multiplication operation. + * + * Instances must satisfy the following laws: + * + * - Commutative monoid under addition: + * - Associativity: `(a + b) + c <-> a + (b + c)` + * - Identity: `zero + a = a + zero <-> a` + * - Commutative: `a + b <-> b + a` + * - Monoid under multiplication: + * - Associativity: `(a * b) * c <-> a * (b * c)` + * - Identity: `one * a <-> a * one <-> a` + * - Multiplication distributes over addition: + * - Left distributivity: `a * (b + c) <-> (a * b) + (a * c)` + * - Right distributivity: `(a + b) * c <-> (a * c) + (b * c)` + * - Annihilation: `zero * a <-> a * zero <-> zero` + * + * **Note:** The `number` type is not fully law abiding members of this class hierarchy due to the potential + * for arithmetic overflows, and the presence of `NaN` and `Infinity` values. The behaviour is + * unspecified in these cases. + * + * @since 2.0.0 + */ +var function_1 = require("./function"); +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`getSemiring`](./function.ts.html#getsemiring) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getFunctionSemiring = function_1.getSemiring; diff --git a/node_modules/fp-ts/lib/Separated.d.ts b/node_modules/fp-ts/lib/Separated.d.ts new file mode 100644 index 0000000..3e8e112 --- /dev/null +++ b/node_modules/fp-ts/lib/Separated.d.ts @@ -0,0 +1,91 @@ +/** + * ```ts + * interface Separated<E, A> { + * readonly left: E + * readonly right: A + * } + * ``` + * + * Represents a result of separating a whole into two parts. + * + * @since 2.10.0 + */ +import { Bifunctor2 } from './Bifunctor' +import { Functor2 } from './Functor' +/** + * A `Separated` type which holds `left` and `right` parts. + * + * @category model + * @since 2.10.0 + */ +export interface Separated<E, A> { + readonly left: E + readonly right: A +} +/** + * @category constructors + * @since 2.10.0 + */ +export declare const separated: <E, A>(left: E, right: A) => Separated<E, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Separated<E, A>) => Separated<E, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.10.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Separated<E, A>) => Separated<G, A> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.10.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Separated<E, A>) => Separated<G, B> +/** + * @category type lambdas + * @since 2.10.0 + */ +export declare const URI = 'Separated' +/** + * @category type lambdas + * @since 2.10.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Separated<E, A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Separated', E, (a: A) => B>) => import('./HKT').Kind2<'Separated', E, B> +/** + * @since 2.10.0 + */ +export declare const left: <E, A>(s: Separated<E, A>) => E +/** + * @since 2.10.0 + */ +export declare const right: <E, A>(s: Separated<E, A>) => A diff --git a/node_modules/fp-ts/lib/Separated.js b/node_modules/fp-ts/lib/Separated.js new file mode 100644 index 0000000..3231de0 --- /dev/null +++ b/node_modules/fp-ts/lib/Separated.js @@ -0,0 +1,106 @@ +"use strict"; +/** + * ```ts + * interface Separated<E, A> { + * readonly left: E + * readonly right: A + * } + * ``` + * + * Represents a result of separating a whole into two parts. + * + * @since 2.10.0 + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.right = exports.left = exports.flap = exports.Functor = exports.Bifunctor = exports.URI = exports.bimap = exports.mapLeft = exports.map = exports.separated = void 0; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.10.0 + */ +var separated = function (left, right) { return ({ left: left, right: right }); }; +exports.separated = separated; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); }; +var _bimap = function (fa, g, f) { return (0, function_1.pipe)(fa, (0, exports.bimap)(g, f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +var map = function (f) { + return function (fa) { + return (0, exports.separated)((0, exports.left)(fa), f((0, exports.right)(fa))); + }; +}; +exports.map = map; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.10.0 + */ +var mapLeft = function (f) { + return function (fa) { + return (0, exports.separated)(f((0, exports.left)(fa)), (0, exports.right)(fa)); + }; +}; +exports.mapLeft = mapLeft; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.10.0 + */ +var bimap = function (f, g) { + return function (fa) { + return (0, exports.separated)(f((0, exports.left)(fa)), g((0, exports.right)(fa))); + }; +}; +exports.bimap = bimap; +/** + * @category type lambdas + * @since 2.10.0 + */ +exports.URI = 'Separated'; +/** + * @category instances + * @since 2.10.0 + */ +exports.Bifunctor = { + URI: exports.URI, + mapLeft: _mapLeft, + bimap: _bimap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +var left = function (s) { return s.left; }; +exports.left = left; +/** + * @since 2.10.0 + */ +var right = function (s) { return s.right; }; +exports.right = right; diff --git a/node_modules/fp-ts/lib/Set.d.ts b/node_modules/fp-ts/lib/Set.d.ts new file mode 100644 index 0000000..b4f865a --- /dev/null +++ b/node_modules/fp-ts/lib/Set.d.ts @@ -0,0 +1,231 @@ +/** + * @since 2.0.0 + */ +import { Either } from './Either' +import { Eq } from './Eq' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Ord } from './Ord' +import { Predicate } from './Predicate' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Separated } from './Separated' +import { Show } from './Show' +/** + * @category instances + * @since 2.0.0 + */ +export declare const getShow: <A>(S: Show<A>) => Show<Set<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getEq: <A>(E: Eq<A>) => Eq<Set<A>> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @since 2.0.0 + */ +export declare function map<B>(E: Eq<B>): <A>(f: (x: A) => B) => (set: Set<A>) => Set<B> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @since 2.0.0 + */ +export declare function chain<B>(E: Eq<B>): <A>(f: (x: A) => Set<B>) => (set: Set<A>) => Set<B> +/** + * @since 2.0.0 + */ +export declare function filter<A, B extends A>(refinement: Refinement<A, B>): (set: Set<A>) => Set<B> +export declare function filter<A>(predicate: Predicate<A>): <B extends A>(set: Set<B>) => Set<B> +export declare function filter<A>(predicate: Predicate<A>): (set: Set<A>) => Set<A> +/** + * @since 2.0.0 + */ +export declare function partition<A, B extends A>( + refinement: Refinement<A, B> +): (set: Set<A>) => Separated<Set<A>, Set<B>> +export declare function partition<A>(predicate: Predicate<A>): <B extends A>(set: Set<B>) => Separated<Set<B>, Set<B>> +export declare function partition<A>(predicate: Predicate<A>): (set: Set<A>) => Separated<Set<A>, Set<A>> +/** + * Form the union of two sets + * + * @since 2.0.0 + */ +export declare function union<A>(E: Eq<A>): { + (that: Set<A>): (me: Set<A>) => Set<A> + (me: Set<A>, that: Set<A>): Set<A> +} +/** + * The set of elements which are in both the first and second set + * + * @since 2.0.0 + */ +export declare function intersection<A>(E: Eq<A>): { + (that: Set<A>): (me: Set<A>) => Set<A> + (me: Set<A>, that: Set<A>): Set<A> +} +/** + * @since 2.0.0 + */ +export declare function partitionMap<B, C>( + EB: Eq<B>, + EC: Eq<C> +): <A>(f: (a: A) => Either<B, C>) => (set: Set<A>) => Separated<Set<B>, Set<C>> +/** + * Form the set difference (`x` - `y`) + * + * @example + * import { difference } from 'fp-ts/Set' + * import * as N from 'fp-ts/number' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(new Set([1, 2]), difference(N.Eq)(new Set([1, 3]))), new Set([2])) + * + * @since 2.0.0 + */ +export declare function difference<A>(E: Eq<A>): { + (that: Set<A>): (me: Set<A>) => Set<A> + (me: Set<A>, that: Set<A>): Set<A> +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const getUnionSemigroup: <A>(E: Eq<A>) => Semigroup<Set<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getUnionMonoid: <A>(E: Eq<A>) => Monoid<Set<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare const getIntersectionSemigroup: <A>(E: Eq<A>) => Semigroup<Set<A>> +/** + * @category instances + * @since 2.11.0 + */ +export declare const getDifferenceMagma: <A>(E: Eq<A>) => Magma<Set<A>> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A>(O: Ord<A>) => <B>(b: B, f: (b: B, a: A) => B) => (fa: Set<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <A, M>(O: Ord<A>, M: Monoid<M>) => (f: (a: A) => M) => (fa: Set<A>) => M +/** + * @category folding + * @since 2.11.0 + */ +export declare const reduceRight: <A>(O: Ord<A>) => <B>(b: B, f: (a: A, b: B) => B) => (fa: Set<A>) => B +/** + * Create a set with one element + * + * @category constructors + * @since 2.0.0 + */ +export declare const singleton: <A>(a: A) => Set<A> +/** + * Insert a value into a set + * + * @since 2.0.0 + */ +export declare function insert<A>(E: Eq<A>): (a: A) => (set: Set<A>) => Set<A> +/** + * Delete a value from a set + * + * @since 2.0.0 + */ +export declare const remove: <A>(E: Eq<A>) => (a: A) => (set: Set<A>) => Set<A> +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.5.0 + */ +export declare const toggle: <A>(E: Eq<A>) => (a: A) => (set: Set<A>) => Set<A> +/** + * Create a set from an array + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromArray: <A>(E: Eq<A>) => (as: Array<A>) => Set<A> +/** + * @since 2.0.0 + */ +export declare const compact: <A>(E: Eq<A>) => (fa: Set<Option<A>>) => Set<A> +/** + * @since 2.0.0 + */ +export declare function separate<E, A>(EE: Eq<E>, EA: Eq<A>): (fa: Set<Either<E, A>>) => Separated<Set<E>, Set<A>> +/** + * @since 2.0.0 + */ +export declare function filterMap<B>(E: Eq<B>): <A>(f: (a: A) => Option<B>) => (fa: Set<A>) => Set<B> +/** + * @since 2.0.0 + */ +export declare const empty: Set<never> +/** + * Test whether a `Set` is empty. + * + * @since 2.10.0 + */ +export declare const isEmpty: <A>(set: Set<A>) => boolean +/** + * Calculate the number of elements in a `Set`. + * + * @since 2.10.0 + */ +export declare const size: <A>(set: Set<A>) => number +/** + * @since 2.0.0 + */ +export declare const some: <A>(predicate: Predicate<A>) => (set: Set<A>) => boolean +/** + * @since 2.0.0 + */ +export declare const every: { + <A, B extends A>(refinement: Refinement<A, B>): Refinement<Set<A>, Set<B>> + <A>(predicate: Predicate<A>): Predicate<Set<A>> +} +/** + * @since 2.10.0 + */ +export declare const isSubset: <A>(E: Eq<A>) => (that: Set<A>) => (me: Set<A>) => boolean +/** + * Test if a value is a member of a set + * + * @since 2.0.0 + */ +export declare const elem: <A>(E: Eq<A>) => { + (a: A): (set: Set<A>) => boolean + (a: A, set: Set<A>): boolean +} +/** + * Get a sorted `Array` of the values contained in a `Set`. + * + * @category conversions + * @since 2.0.0 + */ +export declare const toArray: <A>(O: Ord<A>) => (set: Set<A>) => Array<A> +/** + * Use [`isSubset`](#issubset) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const subset: <A>(E: Eq<A>) => { + (that: Set<A>): (me: Set<A>) => boolean + (me: Set<A>, that: Set<A>): boolean +} diff --git a/node_modules/fp-ts/lib/Set.js b/node_modules/fp-ts/lib/Set.js new file mode 100644 index 0000000..9a70b3f --- /dev/null +++ b/node_modules/fp-ts/lib/Set.js @@ -0,0 +1,436 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.subset = exports.toArray = exports.elem = exports.isSubset = exports.every = exports.some = exports.size = exports.isEmpty = exports.empty = exports.compact = exports.fromArray = exports.toggle = exports.remove = exports.singleton = exports.reduceRight = exports.foldMap = exports.reduce = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getEq = exports.getShow = void 0; +exports.map = map; +exports.chain = chain; +exports.filter = filter; +exports.partition = partition; +exports.union = union; +exports.intersection = intersection; +exports.partitionMap = partitionMap; +exports.difference = difference; +exports.insert = insert; +exports.separate = separate; +exports.filterMap = filterMap; +var function_1 = require("./function"); +var RS = __importStar(require("./ReadonlySet")); +var Separated_1 = require("./Separated"); +/** + * @category instances + * @since 2.0.0 + */ +exports.getShow = RS.getShow; +/** + * @category instances + * @since 2.0.0 + */ +exports.getEq = RS.getEq; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @since 2.0.0 + */ +function map(E) { + var elemE = (0, exports.elem)(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + var v = f(e); + if (!elemE(v, r)) { + r.add(v); + } + }); + return r; + }; }; +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation. + * + * @since 2.0.0 + */ +function chain(E) { + var elemE = (0, exports.elem)(E); + return function (f) { return function (set) { + var r = new Set(); + set.forEach(function (e) { + f(e).forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + }); + return r; + }; }; +} +function filter(predicate) { + return function (set) { + var values = set.values(); + var e; + var r = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + r.add(a); + } + } + return r; + }; +} +function partition(predicate) { + return function (set) { + var values = set.values(); + var e; + var right = new Set(); + var left = new Set(); + while (!(e = values.next()).done) { + var a = e.value; + if (predicate(a)) { + right.add(a); + } + else { + left.add(a); + } + } + return (0, Separated_1.separated)(left, right); + }; +} +function union(E) { + var elemE = (0, exports.elem)(E); + return function (me, that) { + if (that === undefined) { + var unionE_1 = union(E); + return function (that) { return unionE_1(me, that); }; + } + if ((0, exports.isEmpty)(me)) { + return that; + } + if ((0, exports.isEmpty)(that)) { + return me; + } + var r = new Set(me); + that.forEach(function (e) { + if (!elemE(e, r)) { + r.add(e); + } + }); + return r; + }; +} +function intersection(E) { + var elemE = (0, exports.elem)(E); + return function (me, that) { + if (that === undefined) { + var intersectionE_1 = intersection(E); + return function (that) { return intersectionE_1(that, me); }; + } + if ((0, exports.isEmpty)(me) || (0, exports.isEmpty)(that)) { + return new Set(); + } + var r = new Set(); + me.forEach(function (e) { + if (elemE(e, that)) { + r.add(e); + } + }); + return r; + }; +} +/** + * @since 2.0.0 + */ +function partitionMap(EB, EC) { + return function (f) { + return function (set) { + var values = set.values(); + var e; + var left = new Set(); + var right = new Set(); + var hasB = (0, exports.elem)(EB); + var hasC = (0, exports.elem)(EC); + while (!(e = values.next()).done) { + var v = f(e.value); + switch (v._tag) { + case 'Left': + if (!hasB(v.left, left)) { + left.add(v.left); + } + break; + case 'Right': + if (!hasC(v.right, right)) { + right.add(v.right); + } + break; + } + } + return (0, Separated_1.separated)(left, right); + }; + }; +} +function difference(E) { + var elemE = (0, exports.elem)(E); + return function (me, that) { + if (that === undefined) { + var differenceE_1 = difference(E); + return function (that) { return differenceE_1(that, me); }; + } + return filter(function (a) { return !elemE(a, that); })(me); + }; +} +/** + * @category instances + * @since 2.11.0 + */ +var getUnionSemigroup = function (E) { return ({ + concat: union(E) +}); }; +exports.getUnionSemigroup = getUnionSemigroup; +/** + * @category instances + * @since 2.0.0 + */ +var getUnionMonoid = function (E) { return ({ + concat: (0, exports.getUnionSemigroup)(E).concat, + empty: new Set() +}); }; +exports.getUnionMonoid = getUnionMonoid; +/** + * @category instances + * @since 2.0.0 + */ +var getIntersectionSemigroup = function (E) { return ({ + concat: intersection(E) +}); }; +exports.getIntersectionSemigroup = getIntersectionSemigroup; +/** + * @category instances + * @since 2.11.0 + */ +var getDifferenceMagma = function (E) { return ({ + concat: difference(E) +}); }; +exports.getDifferenceMagma = getDifferenceMagma; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduce = RS.reduce; +/** + * @category folding + * @since 2.0.0 + */ +exports.foldMap = RS.foldMap; +/** + * @category folding + * @since 2.11.0 + */ +exports.reduceRight = RS.reduceRight; +/** + * Create a set with one element + * + * @category constructors + * @since 2.0.0 + */ +var singleton = function (a) { return new Set([a]); }; +exports.singleton = singleton; +/** + * Insert a value into a set + * + * @since 2.0.0 + */ +function insert(E) { + var elemE = (0, exports.elem)(E); + return function (a) { return function (set) { + if (!elemE(a)(set)) { + var r = new Set(set); + r.add(a); + return r; + } + else { + return set; + } + }; }; +} +/** + * Delete a value from a set + * + * @since 2.0.0 + */ +var remove = function (E) { + return function (a) { + return function (set) { + return filter(function (ax) { return !E.equals(a, ax); })(set); + }; + }; +}; +exports.remove = remove; +/** + * Checks an element is a member of a set; + * If yes, removes the value from the set + * If no, inserts the value to the set + * + * @since 2.5.0 + */ +var toggle = function (E) { + var elemE = (0, exports.elem)(E); + var removeE = (0, exports.remove)(E); + var insertE = insert(E); + return function (a) { return function (set) { return (elemE(a, set) ? removeE : insertE)(a)(set); }; }; +}; +exports.toggle = toggle; +/** + * Create a set from an array + * + * @category conversions + * @since 2.0.0 + */ +var fromArray = function (E) { + return function (as) { + var len = as.length; + var out = new Set(); + var has = (0, exports.elem)(E); + for (var i = 0; i < len; i++) { + var a = as[i]; + if (!has(a, out)) { + out.add(a); + } + } + return out; + }; +}; +exports.fromArray = fromArray; +/** + * @since 2.0.0 + */ +var compact = function (E) { return filterMap(E)(function_1.identity); }; +exports.compact = compact; +/** + * @since 2.0.0 + */ +function separate(EE, EA) { + return function (fa) { + var elemEE = (0, exports.elem)(EE); + var elemEA = (0, exports.elem)(EA); + var left = new Set(); + var right = new Set(); + fa.forEach(function (e) { + switch (e._tag) { + case 'Left': + if (!elemEE(e.left, left)) { + left.add(e.left); + } + break; + case 'Right': + if (!elemEA(e.right, right)) { + right.add(e.right); + } + break; + } + }); + return (0, Separated_1.separated)(left, right); + }; +} +/** + * @since 2.0.0 + */ +function filterMap(E) { + var elemE = (0, exports.elem)(E); + return function (f) { return function (fa) { + var r = new Set(); + fa.forEach(function (a) { + var ob = f(a); + if (ob._tag === 'Some' && !elemE(ob.value, r)) { + r.add(ob.value); + } + }); + return r; + }; }; +} +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +exports.empty = new Set(); +/** + * Test whether a `Set` is empty. + * + * @since 2.10.0 + */ +var isEmpty = function (set) { return set.size === 0; }; +exports.isEmpty = isEmpty; +/** + * Calculate the number of elements in a `Set`. + * + * @since 2.10.0 + */ +var size = function (set) { return set.size; }; +exports.size = size; +/** + * @since 2.0.0 + */ +exports.some = RS.some; +/** + * @since 2.0.0 + */ +exports.every = RS.every; +/** + * @since 2.10.0 + */ +exports.isSubset = RS.isSubset; +// TODO: remove non-curried overloading in v3 +/** + * Test if a value is a member of a set + * + * @since 2.0.0 + */ +exports.elem = RS.elem; +/** + * Get a sorted `Array` of the values contained in a `Set`. + * + * @category conversions + * @since 2.0.0 + */ +var toArray = function (O) { + return function (set) { + var out = []; + set.forEach(function (e) { return out.push(e); }); + return out.sort(O.compare); + }; +}; +exports.toArray = toArray; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`isSubset`](#issubset) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.subset = RS.isSubset; diff --git a/node_modules/fp-ts/lib/Show.d.ts b/node_modules/fp-ts/lib/Show.d.ts new file mode 100644 index 0000000..8af6b64 --- /dev/null +++ b/node_modules/fp-ts/lib/Show.d.ts @@ -0,0 +1,64 @@ +import { ReadonlyRecord } from './ReadonlyRecord' +/** + * @category model + * @since 2.0.0 + */ +export interface Show<A> { + readonly show: (a: A) => string +} +/** + * @since 2.10.0 + */ +export declare const struct: <A>(shows: { [K in keyof A]: Show<A[K]> }) => Show<{ readonly [K in keyof A]: A[K] }> +/** + * @since 2.10.0 + */ +export declare const tuple: <A extends ReadonlyArray<unknown>>( + ...shows: { [K in keyof A]: Show<A[K]> } +) => Show<Readonly<A>> +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getTupleShow: <T extends ReadonlyArray<Show<any>>>( + ...shows: T +) => Show<{ + [K in keyof T]: T[K] extends Show<infer A> ? A : never +}> +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getStructShow: <O extends ReadonlyRecord<string, any>>(shows: { + [K in keyof O]: Show<O[K]> +}) => Show<O> +/** + * Use [`Show`](./boolean.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const showBoolean: Show<boolean> +/** + * Use [`Show`](./string.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const showString: Show<string> +/** + * Use [`Show`](./number.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const showNumber: Show<number> diff --git a/node_modules/fp-ts/lib/Show.js b/node_modules/fp-ts/lib/Show.js new file mode 100644 index 0000000..9c03d06 --- /dev/null +++ b/node_modules/fp-ts/lib/Show.js @@ -0,0 +1,121 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.showNumber = exports.showString = exports.showBoolean = exports.getStructShow = exports.getTupleShow = exports.tuple = exports.struct = void 0; +/** + * The `Show` type class represents those types which can be converted into + * a human-readable `string` representation. + * + * While not required, it is recommended that for any expression `x`, the + * string `show(x)` be executable TypeScript code which evaluates to the same + * value as the expression `x`. + * + * @since 2.0.0 + */ +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +var struct = function (shows) { return ({ + show: function (a) { + var s = '{'; + for (var k in shows) { + if (_.has.call(shows, k)) { + s += " ".concat(k, ": ").concat(shows[k].show(a[k]), ","); + } + } + if (s.length > 1) { + s = s.slice(0, -1) + ' '; + } + s += '}'; + return s; + } +}); }; +exports.struct = struct; +/** + * @since 2.10.0 + */ +var tuple = function () { + var shows = []; + for (var _i = 0; _i < arguments.length; _i++) { + shows[_i] = arguments[_i]; + } + return ({ + show: function (t) { return "[".concat(t.map(function (a, i) { return shows[i].show(a); }).join(', '), "]"); } + }); +}; +exports.tuple = tuple; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`tuple`](#tuple) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getTupleShow = exports.tuple; +/** + * Use [`struct`](#struct) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getStructShow = exports.struct; +/** + * Use [`Show`](./boolean.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.showBoolean = { + show: function (a) { return JSON.stringify(a); } +}; +/** + * Use [`Show`](./string.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.showString = { + show: function (a) { return JSON.stringify(a); } +}; +/** + * Use [`Show`](./number.ts.html#show) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.showNumber = { + show: function (a) { return JSON.stringify(a); } +}; diff --git a/node_modules/fp-ts/lib/State.d.ts b/node_modules/fp-ts/lib/State.d.ts new file mode 100644 index 0000000..9d76671 --- /dev/null +++ b/node_modules/fp-ts/lib/State.d.ts @@ -0,0 +1,291 @@ +/** + * @since 2.0.0 + */ +import { Applicative2 } from './Applicative' +import { Apply2 } from './Apply' +import * as chainable from './Chain' +import { FromState2 } from './FromState' +import { Functor2 } from './Functor' +import { Monad2 } from './Monad' +import { Pointed2 } from './Pointed' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +/** + * @category model + * @since 2.0.0 + */ +export interface State<S, A> { + (s: S): [A, S] +} +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const get: <S>() => State<S, S> +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +export declare const put: <S>(s: S) => State<S, void> +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const modify: <S>(f: (s: S) => S) => State<S, void> +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const gets: <S, A>(f: (s: S) => A) => State<S, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: State<E, A>) => State<E, B> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: State<E, A>) => <B>(fab: State<E, (a: A) => B>) => State<E, B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <S, A>(a: A) => State<S, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, S, B>(f: (a: A) => State<S, B>): (ma: State<S, A>) => State<S, B> + <S, A, B>(ma: State<S, A>, f: (a: A) => State<S, B>): State<S, B> +} +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: State<E, State<E, A>>) => State<E, A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'State' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: State<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'State', E, (a: A) => B>) => import('./HKT').Kind2<'State', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: State<E, B> +) => <A>(first: import('./HKT').Kind2<'State', E, A>) => import('./HKT').Kind2<'State', E, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: State<E, B> +) => <A>(first: import('./HKT').Kind2<'State', E, A>) => import('./HKT').Kind2<'State', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <S, A, _>(self: State<S, A>, f: (a: A) => State<S, _>): State<S, A> + <A, S, _>(f: (a: A) => State<S, _>): (self: State<S, A>) => State<S, A> +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromState: FromState2<URI> +/** + * Run a computation in the `State` monad, discarding the final state + * + * @since 2.8.0 + */ +export declare const evaluate: <S>(s: S) => <A>(ma: State<S, A>) => A +/** + * Run a computation in the `State` monad discarding the result + * + * @since 2.8.0 + */ +export declare const execute: <S>(s: S) => <A>(ma: State<S, A>) => S +/** + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>(fa: import('./HKT').Kind2<'State', E, A>) => import('./HKT').Kind2<'State', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'State', E, A> +) => import('./HKT').Kind2<'State', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @since 2.13.0 + */ + let_ as let +} +/** + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'State', E, B> +) => ( + ma: import('./HKT').Kind2<'State', E, A> +) => import('./HKT').Kind2<'State', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: State<E, B> +) => ( + fa: import('./HKT').Kind2<'State', E, A> +) => import('./HKT').Kind2<'State', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, S, B>( + f: (index: number, a: A) => State<S, B> +) => (as: ReadonlyNonEmptyArray<A>) => State<S, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, S, B>( + f: (index: number, a: A) => State<S, B> +) => (as: ReadonlyArray<A>) => State<S, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, S, B>( + f: (index: number, a: A) => State<S, B> +) => (as: ReadonlyArray<A>) => State<S, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, S, B>( + f: (a: A) => State<S, B> +) => (as: ReadonlyArray<A>) => State<S, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <S, A>(arr: ReadonlyArray<State<S, A>>) => State<S, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <S, A, B>(f: (a: A) => State<S, B>) => (ma: State<S, A>) => State<S, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <S, A, B>(f: (a: A) => State<S, B>) => (ma: State<S, A>) => State<S, A> +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const evalState: <S, A>(ma: State<S, A>, s: S) => A +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const execState: <S, A>(ma: State<S, A>, s: S) => S +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `S.Functor` instead of `S.state` + * (where `S` is from `import S from 'fp-ts/State'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const state: Monad2<URI> diff --git a/node_modules/fp-ts/lib/State.js b/node_modules/fp-ts/lib/State.js new file mode 100644 index 0000000..bb373eb --- /dev/null +++ b/node_modules/fp-ts/lib/State.js @@ -0,0 +1,358 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.state = exports.execState = exports.evalState = exports.chainFirst = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.apS = exports.bind = exports.let = exports.bindTo = exports.execute = exports.evaluate = exports.FromState = exports.tap = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.Functor = exports.URI = exports.flatten = exports.flatMap = exports.of = exports.ap = exports.map = exports.gets = exports.modify = exports.put = exports.get = void 0; +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +var get = function () { return function (s) { return [s, s]; }; }; +exports.get = get; +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +var put = function (s) { return function () { return [undefined, s]; }; }; +exports.put = put; +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +var modify = function (f) { return function (s) { return [undefined, f(s)]; }; }; +exports.modify = modify; +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +var gets = function (f) { return function (s) { return [f(s), s]; }; }; +exports.gets = gets; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return function (s1) { + var _a = fa(s1), a = _a[0], s2 = _a[1]; + return [f(a), s2]; +}; }; }; +exports.map = map; +/** + * @since 2.0.0 + */ +var ap = function (fa) { return function (fab) { return function (s1) { + var _a = fab(s1), f = _a[0], s2 = _a[1]; + var _b = fa(s2), a = _b[0], s3 = _b[1]; + return [f(a), s3]; +}; }; }; +exports.ap = ap; +/** + * @category constructors + * @since 2.0.0 + */ +var of = function (a) { return function (s) { return [a, s]; }; }; +exports.of = of; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return function (s1) { + var _a = ma(s1), a = _a[0], s2 = _a[1]; + return f(a)(s2); + }; +}); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'State'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * @category instances + * @since 2.11.0 + */ +exports.FromState = { + URI: exports.URI, + fromState: function_1.identity +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Run a computation in the `State` monad, discarding the final state + * + * @since 2.8.0 + */ +var evaluate = function (s) { + return function (ma) { + return ma(s)[0]; + }; +}; +exports.evaluate = evaluate; +/** + * Run a computation in the `State` monad discarding the result + * + * @since 2.8.0 + */ +var execute = function (s) { + return function (ma) { + return ma(s)[1]; + }; +}; +exports.execute = execute; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +// ------------------------------------------------------------------------------------- +// pipeable sequence S +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function (s) { + var _a = f(0, _.head(as))(s), b = _a[0], s2 = _a[1]; + var bs = [b]; + var out = s2; + for (var i = 1; i < as.length; i++) { + var _b = f(i, as[i])(out), b_1 = _b[0], s2_1 = _b[1]; + bs.push(b_1); + out = s2_1; + } + return [bs, out]; + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : (0, exports.of)(_.emptyReadonlyArray)); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var evalState = function (ma, s) { return ma(s)[0]; }; +exports.evalState = evalState; +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var execState = function (ma, s) { return ma(s)[1]; }; +exports.execState = execState; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `S.Functor` instead of `S.state` + * (where `S` is from `import S from 'fp-ts/State'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.state = exports.Monad; diff --git a/node_modules/fp-ts/lib/StateReaderTaskEither.d.ts b/node_modules/fp-ts/lib/StateReaderTaskEither.d.ts new file mode 100644 index 0000000..0acb9be --- /dev/null +++ b/node_modules/fp-ts/lib/StateReaderTaskEither.d.ts @@ -0,0 +1,1241 @@ +/** + * @since 2.0.0 + */ +import { Alt4 } from './Alt' +import { Applicative4 } from './Applicative' +import { Apply4 } from './Apply' +import { Bifunctor4 } from './Bifunctor' +import * as chainable from './Chain' +import * as E from './Either' +import { Endomorphism } from './Endomorphism' +import { FromEither4 } from './FromEither' +import { FromIO4 } from './FromIO' +import { FromReader4 } from './FromReader' +import { FromState4 } from './FromState' +import { FromTask4 } from './FromTask' +import { LazyArg } from './function' +import { Functor4 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad4 } from './Monad' +import { MonadIO4 } from './MonadIO' +import { MonadTask4 } from './MonadTask' +import { MonadThrow4 } from './MonadThrow' +import { Option } from './Option' +import { Pointed4 } from './Pointed' +import { Predicate } from './Predicate' +import * as R from './Reader' +import { ReaderEither } from './ReaderEither' +import * as RTE from './ReaderTaskEither' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { State } from './State' +import { Task } from './Task' +import { TaskEither } from './TaskEither' +import ReaderTaskEither = RTE.ReaderTaskEither +import Either = E.Either +import Reader = R.Reader +/** + * @category model + * @since 2.0.0 + */ +export interface StateReaderTaskEither<S, R, E, A> { + (s: S): ReaderTaskEither<R, E, [A, S]> +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <S, R, E, A = never>(e: E) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <S, R, E = never, A = never>(a: A) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function rightTask<S, R, E = never, A = never>(ma: Task<A>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function leftTask<S, R, E, A = never>(me: Task<E>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function rightReader<S, R, E = never, A = never>(ma: Reader<R, A>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function leftReader<S, R, E, A = never>(me: Reader<R, E>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function rightIO<S, R, E = never, A = never>(ma: IO<A>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function leftIO<S, R, E, A = never>(me: IO<E>): StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightState: <S, R, E = never, A = never>(ma: State<S, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftState: <S, R, E, A = never>(me: State<S, E>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A, S, R = unknown>(fa: Either<E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromReader: <R, A, S, E = never>(fa: Reader<R, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, S, R = unknown, E = never>(fa: IO<A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromTask: <A, S, R = unknown, E = never>(fa: Task<A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromState: <S, A, R = unknown, E = never>(fa: State<S, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromTaskEither: <E, A, S, R = unknown>(fa: TaskEither<E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIOEither: <E, A, S, R = unknown>(fa: IOEither<E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromReaderEither: <R, E, A, S>(fa: ReaderEither<R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const fromReaderTaskEither: <R, E, A, S>( + fa: ReaderTaskEither<R, E, A> +) => StateReaderTaskEither<S, R, E, A> +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.11.0 + */ +export declare const local: <R2, R1>( + f: (r2: R2) => R1 +) => <S, E, A>(ma: StateReaderTaskEither<S, R1, E, A>) => StateReaderTaskEither<S, R2, E, A> +/** + * Less strict version of [`asksStateReaderTaskEither`](#asksstatereadertaskeither). + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksStateReaderTaskEitherW: <R1, S, R2, E, A>( + f: (r1: R1) => StateReaderTaskEither<S, R2, E, A> +) => StateReaderTaskEither<S, R1 & R2, E, A> +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asksStateReaderTaskEither: <R, S, E, A>( + f: (r: R) => StateReaderTaskEither<S, R, E, A> +) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IOEither<E, B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromTaskEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => TaskEither<E, B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromReaderTaskEitherK: <R, E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => ReaderTaskEither<R, E, B> +) => <S>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapReaderTaskEither`. + * + * Less strict version of [`chainReaderTaskEitherK`](#chainreadertaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainReaderTaskEitherKW: <R, E2, A, B>( + f: (a: A) => ReaderTaskEither<R, E2, B> +) => <S, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapReaderTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainReaderTaskEitherK: <R, E, A, B>( + f: (a: A) => ReaderTaskEither<R, E, B> +) => <S>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>( + f: (a: A) => B +) => <S, R, E>(fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Map a pair of functions over the two last type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +export declare const bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <S, R>(fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, G, B> +/** + * Map a function over the third type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +export declare const mapLeft: <E, G>( + f: (e: E) => G +) => <S, R, A>(fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <S, R, E, A>( + fa: StateReaderTaskEither<S, R, E, A> +) => <B>(fab: StateReaderTaskEither<S, R, E, (a: A) => B>) => StateReaderTaskEither<S, R, E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <S, R2, E2, A>( + fa: StateReaderTaskEither<S, R2, E2, A> +) => <R1, E1, B>(fab: StateReaderTaskEither<S, R1, E1, (a: A) => B>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <S, R = unknown, E = never, A = never>(a: A) => StateReaderTaskEither<S, R, E, A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, S, R2, E2, B>(f: (a: A) => StateReaderTaskEither<S, R2, E2, B>): <R1, E1>( + ma: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> + <S, R1, E1, A, R2, E2, B>( + ma: StateReaderTaskEither<S, R1, E1, A>, + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> + ): StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTaskEither: { + <A, E2, B>(f: (a: A) => TaskEither<E2, B>): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>(self: StateReaderTaskEither<S, R, E1, A>, f: (a: A) => TaskEither<E2, B>): StateReaderTaskEither< + S, + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> + <S, R, E, A, B>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => IO<B>): StateReaderTaskEither<S, R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> + <S, R, E, A, B>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => Task<B>): StateReaderTaskEither<S, R, E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReader: { + <A, R2, B>(f: (a: A) => Reader<R2, B>): <S, R1, E>( + self: StateReaderTaskEither<S, R1, E, A> + ) => StateReaderTaskEither<S, R1 & R2, E, B> + <S, R1, E, A, R2, B>(self: StateReaderTaskEither<S, R1, E, A>, f: (a: A) => Reader<R2, B>): StateReaderTaskEither< + S, + R1 & R2, + E, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIOEither: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>(self: StateReaderTaskEither<S, R, E1, A>, f: (a: A) => IOEither<E2, B>): StateReaderTaskEither< + S, + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => Either<E2, B>): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>(self: StateReaderTaskEither<S, R, E1, A>, f: (a: A) => Either<E2, B>): StateReaderTaskEither< + S, + R, + E1 | E2, + B + > +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapOption: { + <A, E2, B>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <S, R, E1>( + self: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <S, R, E1, A, E2, B>( + self: StateReaderTaskEither<S, R, E1, A>, + f: (a: A) => Option<B>, + onNone: (a: A) => E2 + ): StateReaderTaskEither<S, R, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapReaderTaskEither: { + <A, R2, E2, B>(f: (a: A) => ReaderTaskEither<R2, E2, B>): <S, R1, E1>( + self: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> + <S, R1, E1, A, R2, E2, B>( + self: StateReaderTaskEither<S, R1, E1, A>, + f: (a: A) => ReaderTaskEither<R2, E2, B> + ): StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapState: { + <S, A, B>(f: (a: A) => State<S, B>): <R, E>( + self: StateReaderTaskEither<S, R, E, A> + ) => StateReaderTaskEither<S, R, E, B> + <S, R, E, A, B>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => State<S, B>): StateReaderTaskEither<S, R, E, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <S, R1, E1, R2, E2, A>( + mma: StateReaderTaskEither<S, R1, E1, StateReaderTaskEither<S, R2, E2, A>> +) => StateReaderTaskEither<S, R1 & R2, E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <S, R, E, A>( + mma: StateReaderTaskEither<S, R, E, StateReaderTaskEither<S, R, E, A>> +) => StateReaderTaskEither<S, R, E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <S, R2, E2, B>( + that: () => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1, A>(fa: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E2, A | B> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.6.2 + */ +export declare const alt: <S, R, E, A>( + that: LazyArg<StateReaderTaskEither<S, R, E, A>> +) => (fa: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow4<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'StateReaderTaskEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind4<S, R, E, A> { + readonly [URI]: StateReaderTaskEither<S, R, E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor4<URI> +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <S, R, E, _>(self: StateReaderTaskEither<S, R, E, _>) => StateReaderTaskEither<S, R, E, A> + <S, R, E, _, A>(self: StateReaderTaskEither<S, R, E, _>, a: A): StateReaderTaskEither<S, R, E, A> +} +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <S, R, E, _>( + self: StateReaderTaskEither<S, R, E, _> +) => StateReaderTaskEither<S, R, E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <S, R, E, B>( + fab: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, (a: A) => B> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply4<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <S, R, E, B>( + second: StateReaderTaskEither<S, R, E, B> +) => <A>( + first: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <S, R2, E2, A, B>( + second: StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(first: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <S, R, E, B>( + second: StateReaderTaskEither<S, R, E, B> +) => <A>( + first: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <S, R2, E2, A, B>( + second: StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(first: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain4<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromState: FromState4<URI> +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const get: <S, R, E = never>() => StateReaderTaskEither<S, R, E, S> +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +export declare const put: <S, R, E = never>(s: S) => StateReaderTaskEither<S, R, E, void> +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const modify: <S, R, E = never>(f: Endomorphism<S>) => StateReaderTaskEither<S, R, E, void> +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +export declare const gets: <S, R, E = never, A = never>(f: (s: S) => A) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromStateK: <A extends ReadonlyArray<unknown>, S, B>( + f: (...a: A) => State<S, B> +) => <R = unknown, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapState`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainStateK: <A, S, B>( + f: (a: A) => State<S, B> +) => <R, E>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadThrow: MonadThrow4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO4<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask4<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromReader: FromReader4<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <S, R1, E1, A, R2, E2, _>( + self: StateReaderTaskEither<S, R1, E1, A>, + f: (a: A) => StateReaderTaskEither<S, R2, E2, _> + ): StateReaderTaskEither<S, R1 & R2, E1 | E2, A> + <A, S, R2, E2, _>(f: (a: A) => StateReaderTaskEither<S, R2, E2, _>): <R1, E1>( + self: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1 & R2, E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <S, R1, E1>( + self: StateReaderTaskEither<S, R1, E1, A> + ) => StateReaderTaskEither<S, R1, E2 | E1, A> + <S, R1, E1, A, E2, _>(self: StateReaderTaskEither<S, R1, E1, A>, f: (a: A) => Either<E2, _>): StateReaderTaskEither< + S, + R1, + E1 | E2, + A + > +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> + <S, R, E, A, _>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => IO<_>): StateReaderTaskEither<S, R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <S, R, E>(self: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> + <S, R, E, A, _>(self: StateReaderTaskEither<S, R, E, A>, f: (a: A) => Task<_>): StateReaderTaskEither<S, R, E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapReader: { + <A, R2, _>(f: (a: A) => Reader<R2, _>): <S, R1, E>( + self: StateReaderTaskEither<S, R1, E, A> + ) => StateReaderTaskEither<S, R1 & R2, E, A> + <S, R1, E, A, R2, _>(self: StateReaderTaskEither<S, R1, E, A>, f: (a: A) => Reader<R2, _>): StateReaderTaskEither< + S, + R1 & R2, + E, + A + > +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor4<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt4<URI> +/** + * Reads the current context. + * + * @category constructors + * @since 2.11.0 + */ +export declare const ask: <S, R, E = never>() => StateReaderTaskEither<S, R, E, R> +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.11.0 + */ +export declare const asks: <S, R, A, E = never>(f: (r: R) => A) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromReaderK: <A extends ReadonlyArray<unknown>, R, B>( + f: (...a: A) => Reader<R, B> +) => <S, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <S, E>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainReaderKW: <A, R1, B>( + f: (a: A) => Reader<R1, B> +) => <S, R2, E>(ma: StateReaderTaskEither<S, R2, E, A>) => StateReaderTaskEither<S, R1 & R2, E, B> +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderK: <A, R, B>( + f: (a: A) => Reader<R, B> +) => <S, E>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainFirstReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainFirstReaderKW: <A, R1, B>( + f: (a: A) => Reader<R1, B> +) => <S, R2, E>(ma: StateReaderTaskEither<S, R2, E, A>) => StateReaderTaskEither<S, R1 & R2, E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>( + onNone: LazyArg<E> +) => <A, S, R = unknown>(fa: Option<A>) => StateReaderTaskEither<S, R, E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>( + f: (a: A) => Option<B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Use `flatMapOption`. + * + * Less strict version of [`chainOptionK`](#chainoptionk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>( + f: (a: A) => Option<B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>( + f: (a: A) => E.Either<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapEither`. + * + * Less strict version of [`chainEitherK`](#chaineitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => Either<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, A> +/** + * @category lifting + * @since 2.4.4 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R = unknown>( + a: A + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R = unknown, B extends A = A>( + b: B + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R = unknown>(a: A) => StateReaderTaskEither<S, R, E, A> +} +/** + * @category filtering + * @since 2.4.4 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>( + ma: StateReaderTaskEither<S, R, E, A> + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R, B extends A>( + mb: StateReaderTaskEither<S, R, E, B> + ) => StateReaderTaskEither<S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>( + ma: StateReaderTaskEither<S, R, E, A> + ) => StateReaderTaskEither<S, R, E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <S, R, E1>( + ma: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <S, R, E1, B extends A>( + mb: StateReaderTaskEither<S, R, E1, B> + ) => StateReaderTaskEither<S, R, E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <S, R, E1>( + ma: StateReaderTaskEither<S, R, E1, A> + ) => StateReaderTaskEither<S, R, E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => <S, R = unknown>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <S, R = unknown, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>( + f: (a: A) => IO<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>( + f: (a: A) => IO<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainTaskEitherKW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainTaskEitherK: <E, A, B>( + f: (a: A) => TaskEither<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainIOEitherKW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <S, R, E1>(ma: StateReaderTaskEither<S, R, E1, A>) => StateReaderTaskEither<S, R, E1 | E2, B> +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOEitherK: <E, A, B>( + f: (a: A) => IOEither<E, B> +) => <S, R>(ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Task<B> +) => <S, R = unknown, E = never>(...a: A) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>( + f: (a: A) => Task<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>( + f: (a: A) => Task<B> +) => <S, R, E>(first: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Run a computation in the `StateReaderTaskEither` monad, discarding the final state + * + * @since 2.8.0 + */ +export declare const evaluate: <S>( + s: S +) => <R, E, A>(ma: StateReaderTaskEither<S, R, E, A>) => ReaderTaskEither<R, E, A> +/** + * Run a computation in the `StateReaderTaskEither` monad discarding the result + * + * @since 2.8.0 + */ +export declare const execute: <S>(s: S) => <R, E, A>(ma: StateReaderTaskEither<S, R, E, A>) => ReaderTaskEither<R, E, S> +/** + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <S, R, E, A>( + fa: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <S, R, E>( + fa: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4< + 'StateReaderTaskEither', + S, + R, + E, + { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B } +> +export { + /** + * @since 2.13.0 + */ + let_ as let +} +/** + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, B> +) => ( + ma: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4< + 'StateReaderTaskEither', + S, + R, + E, + { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B } +> +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, S, R2, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>( + fa: StateReaderTaskEither<S, R1, E1, A> +) => StateReaderTaskEither< + S, + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, S, R, E, B>( + name: Exclude<N, keyof A>, + fb: StateReaderTaskEither<S, R, E, B> +) => ( + fa: import('./HKT').Kind4<'StateReaderTaskEither', S, R, E, A> +) => import('./HKT').Kind4< + 'StateReaderTaskEither', + S, + R, + E, + { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B } +> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, S, R2, E2, B>( + name: Exclude<N, keyof A>, + fb: StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>( + fa: StateReaderTaskEither<S, R1, E1, A> +) => StateReaderTaskEither< + S, + R1 & R2, + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, S, R, E, B>( + f: (index: number, a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyNonEmptyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, S, R, E, B>( + f: (index: number, a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <S, R, E, A, B>( + f: (index: number, a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <S, R, E, A, B>( + f: (a: A) => StateReaderTaskEither<S, R, E, B> +) => (as: ReadonlyArray<A>) => StateReaderTaskEither<S, R, E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <S, R, E, A>( + arr: ReadonlyArray<StateReaderTaskEither<S, R, E, A>> +) => StateReaderTaskEither<S, R, E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <S, R, E, A, B>( + f: (a: A) => StateReaderTaskEither<S, R, E, B> +) => (ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <S, R2, E2, A, B>( + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(ma: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <S, R, E, A, B>( + f: (a: A) => StateReaderTaskEither<S, R, E, B> +) => (ma: StateReaderTaskEither<S, R, E, A>) => StateReaderTaskEither<S, R, E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <S, R2, E2, A, B>( + f: (a: A) => StateReaderTaskEither<S, R2, E2, B> +) => <R1, E1>(ma: StateReaderTaskEither<S, R1, E1, A>) => StateReaderTaskEither<S, R1 & R2, E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEither` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const stateReaderTaskEither: Monad4<URI> & + Bifunctor4<URI> & + Alt4<URI> & + MonadTask4<URI> & + MonadThrow4<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEitherSeq` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const stateReaderTaskEitherSeq: typeof stateReaderTaskEither +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const evalState: <S, R, E, A>(ma: StateReaderTaskEither<S, R, E, A>, s: S) => ReaderTaskEither<R, E, A> +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const execState: <S, R, E, A>(ma: StateReaderTaskEither<S, R, E, A>, s: S) => ReaderTaskEither<R, E, S> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function run<S, R, E, A>(ma: StateReaderTaskEither<S, R, E, A>, s: S, r: R): Promise<Either<E, [A, S]>> diff --git a/node_modules/fp-ts/lib/StateReaderTaskEither.js b/node_modules/fp-ts/lib/StateReaderTaskEither.js new file mode 100644 index 0000000..9bf284a --- /dev/null +++ b/node_modules/fp-ts/lib/StateReaderTaskEither.js @@ -0,0 +1,1195 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.throwError = exports.alt = exports.altW = exports.flatten = exports.flattenW = exports.flatMapState = exports.flatMapReaderTaskEither = exports.flatMapOption = exports.flatMapEither = exports.flatMapIOEither = exports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.flatMapTaskEither = exports.flatMap = exports.of = exports.apW = exports.ap = exports.mapLeft = exports.bimap = exports.map = exports.chainReaderTaskEitherK = exports.chainReaderTaskEitherKW = exports.fromReaderTaskEitherK = exports.fromTaskEitherK = exports.fromIOEitherK = exports.asksStateReaderTaskEither = exports.asksStateReaderTaskEitherW = exports.local = exports.fromReaderTaskEither = exports.fromReaderEither = exports.fromIOEither = exports.fromTaskEither = exports.fromState = exports.fromTask = exports.fromIO = exports.fromReader = exports.fromEither = exports.leftState = exports.rightState = exports.right = exports.left = void 0; +exports.chainTaskEitherKW = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainFirstEitherKW = exports.chainFirstEitherK = exports.chainEitherKW = exports.chainEitherK = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.chainFirstReaderKW = exports.chainFirstReaderK = exports.chainReaderKW = exports.chainReaderK = exports.fromReaderK = exports.asks = exports.ask = exports.Alt = exports.Bifunctor = exports.tapReader = exports.tapTask = exports.tapIO = exports.tapEither = exports.tap = exports.FromReader = exports.FromTask = exports.FromIO = exports.FromEither = exports.MonadThrow = exports.MonadTask = exports.MonadIO = exports.Monad = exports.chainStateK = exports.fromStateK = exports.gets = exports.modify = exports.put = exports.get = exports.FromState = exports.Chain = exports.Applicative = exports.apSecondW = exports.apSecond = exports.apFirstW = void 0; +exports.execState = exports.evalState = exports.stateReaderTaskEitherSeq = exports.stateReaderTaskEither = exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.execute = exports.evaluate = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = exports.chainIOEitherK = exports.chainIOEitherKW = exports.chainTaskEitherK = void 0; +exports.rightTask = rightTask; +exports.leftTask = leftTask; +exports.rightReader = rightReader; +exports.leftReader = leftReader; +exports.rightIO = rightIO; +exports.leftIO = leftIO; +exports.run = run; +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var E = __importStar(require("./Either")); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var FromReader_1 = require("./FromReader"); +var FromState_1 = require("./FromState"); +var FromTask_1 = require("./FromTask"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var R = __importStar(require("./Reader")); +var RTE = __importStar(require("./ReaderTaskEither")); +var ST = __importStar(require("./StateT")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +var left = function (e) { return function () { return RTE.left(e); }; }; +exports.left = left; +/** + * @category constructors + * @since 2.0.0 + */ +exports.right = ST.of(RTE.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +function rightTask(ma) { + return (0, exports.fromReaderTaskEither)(RTE.rightTask(ma)); +} +/** + * @category constructors + * @since 2.0.0 + */ +function leftTask(me) { + return (0, exports.fromReaderTaskEither)(RTE.leftTask(me)); +} +/** + * @category constructors + * @since 2.0.0 + */ +function rightReader(ma) { + return (0, exports.fromReaderTaskEither)(RTE.rightReader(ma)); +} +/** + * @category constructors + * @since 2.0.0 + */ +function leftReader(me) { + return (0, exports.fromReaderTaskEither)(RTE.leftReader(me)); +} +/** + * @category constructors + * @since 2.0.0 + */ +function rightIO(ma) { + return (0, exports.fromReaderTaskEither)(RTE.rightIO(ma)); +} +/** + * @category constructors + * @since 2.0.0 + */ +function leftIO(me) { + return (0, exports.fromReaderTaskEither)(RTE.leftIO(me)); +} +/** + * @category constructors + * @since 2.0.0 + */ +var rightState = function (sa) { + return (0, function_1.flow)(sa, RTE.right); +}; +exports.rightState = rightState; +/** + * @category constructors + * @since 2.0.0 + */ +var leftState = function (me) { return function (s) { + return RTE.left(me(s)[0]); +}; }; +exports.leftState = leftState; +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromEither = +/*#__PURE__*/ E.match(function (e) { return (0, exports.left)(e); }, exports.right); +/** + * @category conversions + * @since 2.11.0 + */ +exports.fromReader = rightReader; +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromIO = rightIO; +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromTask = rightTask; +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromState = +/*#__PURE__*/ ST.fromState(RTE.Pointed); +/** + * @category conversions + * @since 2.0.0 + */ +var fromTaskEither = function (ma) { + return (0, exports.fromReaderTaskEither)(RTE.fromTaskEither(ma)); +}; +exports.fromTaskEither = fromTaskEither; +/** + * @category conversions + * @since 2.0.0 + */ +var fromIOEither = function (ma) { + return (0, exports.fromReaderTaskEither)(RTE.fromIOEither(ma)); +}; +exports.fromIOEither = fromIOEither; +/** + * @category conversions + * @since 2.0.0 + */ +var fromReaderEither = function (ma) { + return (0, exports.fromReaderTaskEither)(RTE.fromReaderEither(ma)); +}; +exports.fromReaderEither = fromReaderEither; +/** + * @category constructors + * @since 2.0.0 + */ +exports.fromReaderTaskEither = +/*#__PURE__*/ ST.fromF(RTE.Functor); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s + * `contramap`). + * + * @since 2.11.0 + */ +var local = function (f) { + return function (ma) { + return (0, function_1.flow)(ma, R.local(f)); + }; +}; +exports.local = local; +/** + * Less strict version of [`asksStateReaderTaskEither`](#asksstatereadertaskeither). + * + * @category constructors + * @since 2.11.0 + */ +var asksStateReaderTaskEitherW = function (f) { + return function (s) { + return function (r) { + return f(r)(s)(r); + }; + }; +}; +exports.asksStateReaderTaskEitherW = asksStateReaderTaskEitherW; +/** + * Effectfully accesses the environment. + * + * @category constructors + * @since 2.11.0 + */ +exports.asksStateReaderTaskEither = exports.asksStateReaderTaskEitherW; +/** + * @category lifting + * @since 2.4.0 + */ +var fromIOEitherK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.fromIOEither)(f.apply(void 0, a)); + }; +}; +exports.fromIOEitherK = fromIOEitherK; +/** + * @category lifting + * @since 2.4.0 + */ +var fromTaskEitherK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.fromTaskEither)(f.apply(void 0, a)); + }; +}; +exports.fromTaskEitherK = fromTaskEitherK; +/** + * @category lifting + * @since 2.4.0 + */ +var fromReaderTaskEitherK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.fromReaderTaskEither)(f.apply(void 0, a)); + }; +}; +exports.fromReaderTaskEitherK = fromReaderTaskEitherK; +/** + * Alias of `flatMapReaderTaskEither`. + * + * Less strict version of [`chainReaderTaskEitherK`](#chainreadertaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +var chainReaderTaskEitherKW = function (f) { + return function (ma) { + return (0, exports.flatMap)(ma, (0, exports.fromReaderTaskEitherK)(f)); + }; +}; +exports.chainReaderTaskEitherKW = chainReaderTaskEitherKW; +/** + * Alias of `flatMapReaderTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainReaderTaskEitherK = exports.chainReaderTaskEitherKW; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return function (s) { + return (0, function_1.pipe)(fa(s), RTE.alt(function () { return that()(s); })); +}; }; +var _bimap = function (fea, f, g) { return function (s) { + return (0, function_1.pipe)(fea(s), RTE.bimap(f, function (_a) { + var a = _a[0], s = _a[1]; + return [g(a), s]; + })); +}; }; +var _mapLeft = function (fea, f) { return function (s) { return (0, function_1.pipe)(fea(s), RTE.mapLeft(f)); }; }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +exports.map = ST.map(RTE.Functor); +/** + * Map a pair of functions over the two last type arguments of the bifunctor. + * + * @category mapping + * @since 2.6.2 + */ +var bimap = function (f, g) { return function (fa) { + return _bimap(fa, f, g); +}; }; +exports.bimap = bimap; +/** + * Map a function over the third type argument of a bifunctor. + * + * @category error handling + * @since 2.6.2 + */ +var mapLeft = function (f) { return function (fa) { + return _mapLeft(fa, f); +}; }; +exports.mapLeft = mapLeft; +/** + * @since 2.0.0 + */ +exports.ap = ST.ap(RTE.Chain); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +exports.apW = exports.ap; +/** + * @category constructors + * @since 2.7.0 + */ +exports.of = exports.right; +/** @internal */ +var _FromIO = { + fromIO: exports.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: exports.fromTask +}; +/** @internal */ +var _FromReader = { + fromReader: exports.fromReader +}; +/** @internal */ +var _FromEither = { + fromEither: exports.fromEither +}; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, ST.flatMap(RTE.Monad)); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTaskEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, function (a) { return (0, exports.fromTaskEitherK)(f)(a); }); }); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTask = _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReader = _.flatMapReader(_FromReader, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIOEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, function (a) { return (0, exports.fromIOEitherK)(f)(a); }); }); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapEither = (0, function_1.dual)(2, _.flatMapEither(_FromEither, _FlatMap)); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapReaderTaskEither = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, function (a) { return (0, exports.fromReaderTaskEitherK)(f)(a); }); }); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapState = (0, function_1.dual)(2, function (self, f) { return (0, exports.flatMap)(self, (0, exports.fromStateK)(f)); }); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the environment, the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +var altW = function (that) { + return function (fa) { + return function (r) { + return (0, function_1.pipe)(fa(r), RTE.altW(function () { return that()(r); })); + }; + }; +}; +exports.altW = altW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * @category error handling + * @since 2.6.2 + */ +exports.alt = exports.altW; +/** + * @since 2.7.0 + */ +exports.throwError = exports.left; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'StateReaderTaskEither'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Right` value of this `StateReaderTaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromState = { + URI: exports.URI, + fromState: exports.fromState +}; +/** + * Get the current state + * + * @category constructors + * @since 2.0.0 + */ +exports.get = (0, FromState_1.get)(exports.FromState); +/** + * Set the state + * + * @category constructors + * @since 2.0.0 + */ +exports.put = (0, FromState_1.put)(exports.FromState); +/** + * Modify the state by applying a function to the current state + * + * @category constructors + * @since 2.0.0 + */ +exports.modify = +/*#__PURE__*/ (0, FromState_1.modify)(exports.FromState); +/** + * Get a value which depends on the current state + * + * @category constructors + * @since 2.0.0 + */ +exports.gets = +/*#__PURE__*/ (0, FromState_1.gets)(exports.FromState); +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromStateK = (0, FromState_1.fromStateK)(exports.FromState); +/** + * Alias of `flatMapState`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainStateK = (0, FromState_1.chainStateK)(exports.FromState, exports.Chain); +/** + * @category instances + * @since 2.10.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadTask = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + throwError: exports.throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromReader = { + URI: exports.URI, + fromReader: exports.fromReader +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapTask = (0, function_1.dual)(2, (0, FromTask_1.tapTask)(exports.FromTask, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +exports.tapReader = (0, function_1.dual)(2, (0, FromReader_1.tapReader)(exports.FromReader, exports.Chain)); +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * Reads the current context. + * + * @category constructors + * @since 2.11.0 + */ +exports.ask = (0, FromReader_1.ask)(exports.FromReader); +/** + * Projects a value from the global context in a `ReaderEither`. + * + * @category constructors + * @since 2.11.0 + */ +exports.asks = +/*#__PURE__*/ (0, FromReader_1.asks)(exports.FromReader); +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromReaderK = (0, FromReader_1.fromReaderK)(exports.FromReader); +/** + * Alias of `flatMapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderK = exports.flatMapReader; +/** + * Alias of `flatMapReader`. + * + * Less strict version of [`chainReaderK`](#chainReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainReaderKW = exports.flatMapReader; +/** + * Alias of `tapReader`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderK = exports.tapReader; +/** + * Alias of `tapReader`. + * + * Less strict version of [`chainFirstReaderK`](#chainFirstReaderK). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainFirstReaderKW = exports.tapReader; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromOption = (0, FromEither_1.fromOption)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromOptionK = (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain); +/** + * Use `flatMapOption`. + * + * Less strict version of [`chainOptionK`](#chainoptionk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.13.2 + */ +exports.chainOptionKW = exports.chainOptionK; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainEitherK = exports.flatMapEither; +/** + * Alias of `flatMapEither`. + * + * Less strict version of [`chainEitherK`](#chaineitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainEitherKW = exports.flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherKW = exports.tapEither; +/** + * @category lifting + * @since 2.4.4 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category filtering + * @since 2.4.4 + */ +exports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +exports.filterOrElseW = exports.filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * Alias of `flatMapTaskEither`. + * + * Less strict version of [`chainTaskEitherK`](#chaintaskeitherk). + * + * @category legacy + * @since 2.6.1 + */ +exports.chainTaskEitherKW = exports.flatMapTaskEither; +/** + * Alias of `flatMapTaskEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainTaskEitherK = exports.flatMapTaskEither; +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * @category legacy + * @since 2.6.1 + */ +exports.chainIOEitherKW = exports.flatMapIOEither; +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainIOEitherK = exports.flatMapIOEither; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromTaskK = (0, FromTask_1.fromTaskK)(exports.FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainTaskK = exports.flatMapTask; +/** + * Alias of `tapTask`. + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstTaskK = exports.tapTask; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Run a computation in the `StateReaderTaskEither` monad, discarding the final state + * + * @since 2.8.0 + */ +exports.evaluate = +/*#__PURE__*/ ST.evaluate(RTE.Functor); +/** + * Run a computation in the `StateReaderTaskEither` monad discarding the result + * + * @since 2.8.0 + */ +exports.execute = +/*#__PURE__*/ ST.execute(RTE.Functor); +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @since 2.8.0 + */ +exports.bindW = exports.bind; +// ------------------------------------------------------------------------------------- +// pipeable sequence S +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function (s) { + return function (r) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (ebs) { + return _.isLeft(ebs) + ? acc + : f(i + 1, a)(ebs.right[1])(r)().then(function (eb) { + if (_.isLeft(eb)) { + return eb; + } + var _a = eb.right, b = _a[0], s = _a[1]; + ebs.right[0].push(b); + ebs.right[1] = s; + return ebs; + }); + }); + }, f(0, _.head(as))(s)(r)().then(E.map(function (_a) { + var b = _a[0], s = _a[1]; + return [[b], s]; + }))); + }; + }; + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : (0, exports.of)(_.emptyReadonlyArray)); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); +}; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = (0, exports.traverseArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +exports.chainFirstW = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEither` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.stateReaderTaskEither = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + bimap: _bimap, + mapLeft: _mapLeft, + alt: _alt, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `SRTE.Functor` instead of `SRTE.stateReaderTaskEitherSeq` + * (where `SRTE` is from `import SRTE from 'fp-ts/StateReaderTaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.stateReaderTaskEitherSeq = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + bimap: _bimap, + mapLeft: _mapLeft, + alt: _alt, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError +}; +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +var evalState = function (fsa, s) { + return (0, function_1.pipe)(fsa(s), RTE.map(function (_a) { + var a = _a[0]; + return a; + })); +}; +exports.evalState = evalState; +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +var execState = function (fsa, s) { + return (0, function_1.pipe)(fsa(s), RTE.map(function (_a) { + var _ = _a[0], s = _a[1]; + return s; + })); +}; +exports.execState = execState; +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +/* istanbul ignore next */ +function run(ma, s, r) { + return ma(s)(r)(); +} diff --git a/node_modules/fp-ts/lib/StateT.d.ts b/node_modules/fp-ts/lib/StateT.d.ts new file mode 100644 index 0000000..4c2e5ee --- /dev/null +++ b/node_modules/fp-ts/lib/StateT.d.ts @@ -0,0 +1,313 @@ +/** + * The state monad transformer. It can be used to add state to other monads. + * + * The `of` function leaves the state unchanged, while `chain` uses the final state of the first computation + * as the initial state of the second. + * + * @since 2.0.0 + */ +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' +import { State } from './State' +/** + * @category model + * @since 2.0.0 + */ +export interface StateT<M, S, A> { + (s: S): HKT<M, [A, S]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface StateT1<M extends URIS, S, A> { + (s: S): Kind<M, [A, S]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface StateT2<M extends URIS2, S, E, A> { + (s: S): Kind2<M, E, [A, S]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface StateT3<M extends URIS3, S, R, E, A> { + (s: S): Kind3<M, R, E, [A, S]> +} +/** + * @since 2.10.0 + */ +export declare function of<F extends URIS3>(F: Pointed3<F>): <A, S, R, E>(a: A) => StateT3<F, S, R, E, A> +export declare function of<F extends URIS3, E>(F: Pointed3C<F, E>): <A, S, R>(a: A) => StateT3<F, S, R, E, A> +export declare function of<F extends URIS2>(F: Pointed2<F>): <A, S, E>(a: A) => StateT2<F, S, E, A> +export declare function of<F extends URIS2, E>(F: Pointed2C<F, E>): <A, S>(a: A) => StateT2<F, S, E, A> +export declare function of<F extends URIS>(F: Pointed1<F>): <A, S>(a: A) => StateT1<F, S, A> +export declare function of<F>(F: Pointed<F>): <A, S>(a: A) => StateT<F, S, A> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <S, R, E>(fa: StateT3<F, S, R, E, A>) => StateT3<F, S, R, E, B> +export declare function map<F extends URIS3, E>( + F: Functor3C<F, E> +): <A, B>(f: (a: A) => B) => <S, R>(fa: StateT3<F, S, R, E, A>) => StateT3<F, S, R, E, B> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <S, E>(fa: StateT2<F, S, E, A>) => StateT2<F, S, E, B> +export declare function map<F extends URIS2, E>( + F: Functor2C<F, E> +): <A, B>(f: (a: A) => B) => <S>(fa: StateT2<F, S, E, A>) => StateT2<F, S, E, B> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <S>(fa: StateT1<F, S, A>) => StateT1<F, S, B> +export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => <S>(fa: StateT<F, S, A>) => StateT<F, S, B> +/** + * @since 2.10.0 + */ +export declare function ap<M extends URIS3>( + M: Chain3<M> +): <S, R, E, A>(fa: StateT3<M, S, R, E, A>) => <B>(fab: StateT3<M, S, R, E, (a: A) => B>) => StateT3<M, S, R, E, B> +export declare function ap<M extends URIS3, E>( + M: Chain3C<M, E> +): <S, R, A>(fa: StateT3<M, S, R, E, A>) => <B>(fab: StateT3<M, S, R, E, (a: A) => B>) => StateT3<M, S, R, E, B> +export declare function ap<M extends URIS2>( + M: Chain2<M> +): <S, E, A>(fa: StateT2<M, S, E, A>) => <B>(fab: StateT2<M, S, E, (a: A) => B>) => StateT2<M, S, E, B> +export declare function ap<M extends URIS2, E>( + M: Chain2C<M, E> +): <S, A>(fa: StateT2<M, S, E, A>) => <B>(fab: StateT2<M, S, E, (a: A) => B>) => StateT2<M, S, E, B> +export declare function ap<M extends URIS>( + M: Chain1<M> +): <S, A>(fa: StateT1<M, S, A>) => <B>(fab: StateT1<M, S, (a: A) => B>) => StateT1<M, S, B> +export declare function ap<M>( + M: Chain<M> +): <S, A>(fa: StateT<M, S, A>) => <B>(fab: StateT<M, S, (a: A) => B>) => StateT<M, S, B> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS3>( + M: Chain3<M> +): <A, S, R, E, B>(f: (a: A) => StateT3<M, S, R, E, B>) => (ma: StateT3<M, S, R, E, A>) => StateT3<M, S, R, E, B> +export declare function chain<M extends URIS3, E>( + M: Chain3C<M, E> +): <A, S, R, B>(f: (a: A) => StateT3<M, S, R, E, B>) => (ma: StateT3<M, S, R, E, A>) => StateT3<M, S, R, E, B> +export declare function chain<M extends URIS2>( + M: Chain2<M> +): <A, S, E, B>(f: (a: A) => StateT2<M, S, E, B>) => (ma: StateT2<M, S, E, A>) => StateT2<M, S, E, B> +export declare function chain<M extends URIS2, E>( + M: Chain2C<M, E> +): <A, S, B>(f: (a: A) => StateT2<M, S, E, B>) => (ma: StateT2<M, S, E, A>) => StateT2<M, S, E, B> +export declare function chain<M extends URIS>( + M: Chain1<M> +): <A, S, B>(f: (a: A) => StateT1<M, S, B>) => (ma: StateT1<M, S, A>) => StateT1<M, S, B> +export declare function chain<M>( + M: Chain<M> +): <A, S, B>(f: (a: A) => StateT<M, S, B>) => (ma: StateT<M, S, A>) => StateT<M, S, B> +/** + * @since 2.10.0 + */ +export declare function fromState<F extends URIS3>( + F: Pointed3<F> +): <S, A, R, E>(sa: State<S, A>) => StateT3<F, S, R, E, A> +export declare function fromState<F extends URIS3, E>( + F: Pointed3C<F, E> +): <S, A, R>(sa: State<S, A>) => StateT3<F, S, R, E, A> +export declare function fromState<F extends URIS2>(F: Pointed2<F>): <S, A, E>(sa: State<S, A>) => StateT2<F, S, E, A> +export declare function fromState<F extends URIS2, E>( + F: Pointed2C<F, E> +): <S, A>(sa: State<S, A>) => StateT2<F, S, E, A> +export declare function fromState<F extends URIS>(F: Pointed1<F>): <S, A>(sa: State<S, A>) => StateT1<F, S, A> +export declare function fromState<F>(F: Pointed<F>): <S, A>(sa: State<S, A>) => StateT<F, S, A> +/** + * @since 2.10.0 + */ +export declare function fromF<F extends URIS3>( + F: Functor3<F> +): <R, E, A, S>(ma: Kind3<F, R, E, A>) => StateT3<F, S, R, E, A> +export declare function fromF<F extends URIS3, E>( + F: Functor3C<F, E> +): <R, A, S>(ma: Kind3<F, R, E, A>) => StateT3<F, S, R, E, A> +export declare function fromF<F extends URIS2>(F: Functor2<F>): <E, A, S>(ma: Kind2<F, E, A>) => StateT2<F, S, E, A> +export declare function fromF<F extends URIS2, E>(F: Functor2C<F, E>): <A, S>(ma: Kind2<F, E, A>) => StateT2<F, S, E, A> +export declare function fromF<F extends URIS>(F: Functor1<F>): <A, S>(ma: Kind<F, A>) => StateT1<F, S, A> +export declare function fromF<F>(F: Functor<F>): <A, S>(ma: HKT<F, A>) => StateT<F, S, A> +/** + * @since 2.10.0 + */ +export declare function evaluate<F extends URIS3>( + F: Functor3<F> +): <S>(s: S) => <R, E, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, A> +export declare function evaluate<F extends URIS3, E>( + F: Functor3C<F, E> +): <S>(s: S) => <R, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, A> +export declare function evaluate<F extends URIS2>( + F: Functor2<F> +): <S>(s: S) => <E, A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, A> +export declare function evaluate<F extends URIS2, E>( + F: Functor2C<F, E> +): <S>(s: S) => <A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, A> +export declare function evaluate<F extends URIS>(F: Functor1<F>): <S>(s: S) => <A>(ma: StateT1<F, S, A>) => Kind<F, A> +export declare function evaluate<F>(F: Functor<F>): <S>(s: S) => <A>(ma: StateT<F, S, A>) => HKT<F, A> +/** + * @since 2.10.0 + */ +export declare function execute<F extends URIS3>( + F: Functor3<F> +): <S>(s: S) => <R, E, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, S> +export declare function execute<F extends URIS3, E>( + F: Functor3C<F, E> +): <S>(s: S) => <R, A>(ma: StateT3<F, S, R, E, A>) => Kind3<F, R, E, S> +export declare function execute<F extends URIS2>( + F: Functor2<F> +): <S>(s: S) => <E, A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, S> +export declare function execute<F extends URIS2, E>( + F: Functor2C<F, E> +): <S>(s: S) => <A>(ma: StateT2<F, S, E, A>) => Kind2<F, E, S> +export declare function execute<F extends URIS>(F: Functor1<F>): <S>(s: S) => <A>(ma: StateT1<F, S, A>) => Kind<F, S> +export declare function execute<F>(F: Functor<F>): <S>(s: S) => <A>(ma: StateT<F, S, A>) => HKT<F, S> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM<M> { + readonly map: <S, A, B>(fa: StateT<M, S, A>, f: (a: A) => B) => StateT<M, S, B> + readonly of: <S, A>(a: A) => StateT<M, S, A> + readonly ap: <S, A, B>(fab: StateT<M, S, (a: A) => B>, fa: StateT<M, S, A>) => StateT<M, S, B> + readonly chain: <S, A, B>(fa: StateT<M, S, A>, f: (a: A) => StateT<M, S, B>) => StateT<M, S, B> + readonly get: <S>() => StateT<M, S, S> + readonly put: <S>(s: S) => StateT<M, S, void> + readonly modify: <S>(f: (s: S) => S) => StateT<M, S, void> + readonly gets: <S, A>(f: (s: S) => A) => StateT<M, S, A> + readonly fromState: <S, A>(fa: State<S, A>) => StateT<M, S, A> + readonly fromM: <S, A>(ma: HKT<M, A>) => StateT<M, S, A> + readonly evalState: <S, A>(ma: StateT<M, S, A>, s: S) => HKT<M, A> + readonly execState: <S, A>(ma: StateT<M, S, A>, s: S) => HKT<M, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM1<M extends URIS> { + readonly map: <S, A, B>(fa: StateT1<M, S, A>, f: (a: A) => B) => StateT1<M, S, B> + readonly of: <S, A>(a: A) => StateT1<M, S, A> + readonly ap: <S, A, B>(fab: StateT1<M, S, (a: A) => B>, fa: StateT1<M, S, A>) => StateT1<M, S, B> + readonly chain: <S, A, B>(fa: StateT1<M, S, A>, f: (a: A) => StateT1<M, S, B>) => StateT1<M, S, B> + readonly get: <S>() => StateT1<M, S, S> + readonly put: <S>(s: S) => StateT1<M, S, void> + readonly modify: <S>(f: (s: S) => S) => StateT1<M, S, void> + readonly gets: <S, A>(f: (s: S) => A) => StateT1<M, S, A> + readonly fromState: <S, A>(fa: State<S, A>) => StateT1<M, S, A> + readonly fromM: <S, A>(ma: Kind<M, A>) => StateT1<M, S, A> + readonly evalState: <S, A>(ma: StateT1<M, S, A>, s: S) => Kind<M, A> + readonly execState: <S, A>(ma: StateT1<M, S, A>, s: S) => Kind<M, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM2<M extends URIS2> { + readonly map: <S, E, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => B) => StateT2<M, S, E, B> + readonly of: <S, E, A>(a: A) => StateT2<M, S, E, A> + readonly ap: <S, E, A, B>(fab: StateT2<M, S, E, (a: A) => B>, fa: StateT2<M, S, E, A>) => StateT2<M, S, E, B> + readonly chain: <S, E, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => StateT2<M, S, E, B>) => StateT2<M, S, E, B> + readonly get: <E, S>() => StateT2<M, S, E, S> + readonly put: <E, S>(s: S) => StateT2<M, S, E, void> + readonly modify: <E, S>(f: (s: S) => S) => StateT2<M, S, E, void> + readonly gets: <S, E, A>(f: (s: S) => A) => StateT2<M, S, E, A> + readonly fromState: <S, E, A>(fa: State<S, A>) => StateT2<M, S, E, A> + readonly fromM: <S, E, A>(ma: Kind2<M, E, A>) => StateT2<M, S, E, A> + readonly evalState: <S, E, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, A> + readonly execState: <S, E, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, S> +} +/** + * @category zone of death + * @since 2.5.4 + * @deprecated + */ +export interface StateM2C<M extends URIS2, E> { + readonly map: <S, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => B) => StateT2<M, S, E, B> + readonly of: <S, A>(a: A) => StateT2<M, S, E, A> + readonly ap: <S, A, B>(fab: StateT2<M, S, E, (a: A) => B>, fa: StateT2<M, S, E, A>) => StateT2<M, S, E, B> + readonly chain: <S, A, B>(fa: StateT2<M, S, E, A>, f: (a: A) => StateT2<M, S, E, B>) => StateT2<M, S, E, B> + readonly get: <S>() => StateT2<M, S, E, S> + readonly put: <S>(s: S) => StateT2<M, S, E, void> + readonly modify: <S>(f: (s: S) => S) => StateT2<M, S, E, void> + readonly gets: <S, A>(f: (s: S) => A) => StateT2<M, S, E, A> + readonly fromState: <S, A>(fa: State<S, A>) => StateT2<M, S, E, A> + readonly fromM: <S, A>(ma: Kind2<M, E, A>) => StateT2<M, S, E, A> + readonly evalState: <S, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, A> + readonly execState: <S, A>(ma: StateT2<M, S, E, A>, s: S) => Kind2<M, E, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface StateM3<M extends URIS3> { + readonly map: <S, R, E, A, B>(fa: StateT3<M, S, R, E, A>, f: (a: A) => B) => StateT3<M, S, R, E, B> + readonly of: <S, R, E, A>(a: A) => StateT3<M, S, R, E, A> + readonly ap: <S, R, E, A, B>( + fab: StateT3<M, S, R, E, (a: A) => B>, + fa: StateT3<M, S, R, E, A> + ) => StateT3<M, S, R, E, B> + readonly chain: <S, R, E, A, B>( + fa: StateT3<M, S, R, E, A>, + f: (a: A) => StateT3<M, S, R, E, B> + ) => StateT3<M, S, R, E, B> + readonly get: <R, E, S>() => StateT3<M, S, R, E, S> + readonly put: <R, E, S>(s: S) => StateT3<M, S, R, E, void> + readonly modify: <R, E, S>(f: (s: S) => S) => StateT3<M, S, R, E, void> + readonly gets: <S, R, E, A>(f: (s: S) => A) => StateT3<M, S, R, E, A> + readonly fromState: <S, R, E, A>(fa: State<S, A>) => StateT3<M, S, R, E, A> + readonly fromM: <S, R, E, A>(ma: Kind3<M, R, E, A>) => StateT3<M, S, R, E, A> + readonly evalState: <S, R, E, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, A> + readonly execState: <S, R, E, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, S> +} +/** + * @category zone of death + * @since 2.5.4 + * @deprecated + */ +export interface StateM3C<M extends URIS3, E> { + readonly map: <S, R, A, B>(fa: StateT3<M, S, R, E, A>, f: (a: A) => B) => StateT3<M, S, R, E, B> + readonly of: <S, R, A>(a: A) => StateT3<M, S, R, E, A> + readonly ap: <S, R, A, B>(fab: StateT3<M, S, R, E, (a: A) => B>, fa: StateT3<M, S, R, E, A>) => StateT3<M, S, R, E, B> + readonly chain: <S, R, A, B>( + fa: StateT3<M, S, R, E, A>, + f: (a: A) => StateT3<M, S, R, E, B> + ) => StateT3<M, S, R, E, B> + readonly get: <R, S>() => StateT3<M, S, R, E, S> + readonly put: <R, S>(s: S) => StateT3<M, S, R, E, void> + readonly modify: <R, S>(f: (s: S) => S) => StateT3<M, S, R, E, void> + readonly gets: <S, R, A>(f: (s: S) => A) => StateT3<M, S, R, E, A> + readonly fromState: <S, R, A>(fa: State<S, A>) => StateT3<M, S, R, E, A> + readonly fromM: <S, R, A>(ma: Kind3<M, R, E, A>) => StateT3<M, S, R, E, A> + readonly evalState: <S, R, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, A> + readonly execState: <S, R, A>(ma: StateT3<M, S, R, E, A>, s: S) => Kind3<M, R, E, S> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getStateM<M extends URIS3>(M: Monad3<M>): StateM3<M> +/** @deprecated */ +export declare function getStateM<M extends URIS3, E>(M: Monad3C<M, E>): StateM3C<M, E> +/** @deprecated */ +export declare function getStateM<M extends URIS2>(M: Monad2<M>): StateM2<M> +/** @deprecated */ +export declare function getStateM<M extends URIS2, E>(M: Monad2C<M, E>): StateM2C<M, E> +/** @deprecated */ +export declare function getStateM<M extends URIS>(M: Monad1<M>): StateM1<M> +/** @deprecated */ +export declare function getStateM<M>(M: Monad<M>): StateM<M> diff --git a/node_modules/fp-ts/lib/StateT.js b/node_modules/fp-ts/lib/StateT.js new file mode 100644 index 0000000..4cb3586 --- /dev/null +++ b/node_modules/fp-ts/lib/StateT.js @@ -0,0 +1,81 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.of = of; +exports.map = map; +exports.ap = ap; +exports.chain = chain; +exports.flatMap = flatMap; +exports.fromState = fromState; +exports.fromF = fromF; +exports.evaluate = evaluate; +exports.execute = execute; +exports.getStateM = getStateM; +var function_1 = require("./function"); +var ReadonlyTuple_1 = require("./ReadonlyTuple"); +function of(F) { + return function (a) { return function (s) { return F.of([a, s]); }; }; +} +function map(F) { + return function (f) { return function (fa) { return function (s) { return F.map(fa(s), function (_a) { + var a = _a[0], s1 = _a[1]; + return [f(a), s1]; + }); }; }; }; +} +function ap(M) { + return function (fa) { return function (fab) { return function (s) { return M.chain(fab(s), function (_a) { + var f = _a[0], s = _a[1]; + return M.map(fa(s), function (_a) { + var a = _a[0], s = _a[1]; + return [f(a), s]; + }); + }); }; }; }; +} +function chain(M) { + var flatMapM = flatMap(M); + return function (f) { return function (ma) { return flatMapM(ma, f); }; }; +} +/** @internal */ +function flatMap(M) { + return function (ma, f) { return function (s) { return M.chain(ma(s), function (_a) { + var a = _a[0], s1 = _a[1]; + return f(a)(s1); + }); }; }; +} +function fromState(F) { + return function (sa) { return function (s) { return F.of(sa(s)); }; }; +} +function fromF(F) { + return function (ma) { return function (s) { return F.map(ma, function (a) { return [a, s]; }); }; }; +} +function evaluate(F) { + return function (s) { return function (ma) { return F.map(ma(s), function (_a) { + var a = _a[0]; + return a; + }); }; }; +} +function execute(F) { + return function (s) { return function (ma) { return F.map(ma(s), ReadonlyTuple_1.snd); }; }; +} +/** @deprecated */ +/* istanbul ignore next */ +function getStateM(M) { + var _ap = ap(M); + var _map = map(M); + var _chain = chain(M); + var _evaluate = evaluate(M); + var _execute = execute(M); + return { + map: function (fa, f) { return (0, function_1.pipe)(fa, _map(f)); }, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, _ap(fa)); }, + of: of(M), + chain: function (ma, f) { return (0, function_1.pipe)(ma, _chain(f)); }, + get: function () { return function (s) { return M.of([s, s]); }; }, + put: function (s) { return function () { return M.of([undefined, s]); }; }, + modify: function (f) { return function (s) { return M.of([undefined, f(s)]); }; }, + gets: function (f) { return function (s) { return M.of([f(s), s]); }; }, + fromState: fromState(M), + fromM: fromF(M), + evalState: function (fa, s) { return (0, function_1.pipe)(fa, _evaluate(s)); }, + execState: function (fa, s) { return (0, function_1.pipe)(fa, _execute(s)); } + }; +} diff --git a/node_modules/fp-ts/lib/Store.d.ts b/node_modules/fp-ts/lib/Store.d.ts new file mode 100644 index 0000000..8b94a05 --- /dev/null +++ b/node_modules/fp-ts/lib/Store.d.ts @@ -0,0 +1,117 @@ +/** + * @since 2.0.0 + */ +import { Comonad2 } from './Comonad' +import { Endomorphism } from './Endomorphism' +import { Functor as FunctorHKT, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Store<S, A> { + readonly peek: (s: S) => A + readonly pos: S +} +/** + * Reposition the focus at the specified position + * + * @since 2.0.0 + */ +export declare function seek<S>(s: S): <A>(wa: Store<S, A>) => Store<S, A> +/** + * Reposition the focus at the specified position, which depends on the current position + * + * @since 2.0.0 + */ +export declare function seeks<S>(f: Endomorphism<S>): <A>(wa: Store<S, A>) => Store<S, A> +/** + * Extract a value from a position which depends on the current position + * + * @since 2.0.0 + */ +export declare function peeks<S>(f: Endomorphism<S>): <A>(wa: Store<S, A>) => A +/** + * Extract a collection of values from positions which depend on the current position + * + * @since 2.0.0 + */ +export declare function experiment<F extends URIS3>( + F: Functor3<F> +): <R, E, S>(f: (s: S) => Kind3<F, R, E, S>) => <A>(wa: Store<S, A>) => Kind3<F, R, E, A> +export declare function experiment<F extends URIS3, E>( + F: Functor3C<F, E> +): <R, S>(f: (s: S) => Kind3<F, R, E, S>) => <A>(wa: Store<S, A>) => Kind3<F, R, E, A> +export declare function experiment<F extends URIS2>( + F: Functor2<F> +): <E, S>(f: (s: S) => Kind2<F, E, S>) => <A>(wa: Store<S, A>) => Kind2<F, E, A> +export declare function experiment<F extends URIS2, E>( + F: Functor2C<F, E> +): <S>(f: (s: S) => Kind2<F, E, S>) => <A>(wa: Store<S, A>) => Kind2<F, E, A> +export declare function experiment<F extends URIS>( + F: Functor1<F> +): <S>(f: (s: S) => Kind<F, S>) => <A>(wa: Store<S, A>) => Kind<F, A> +export declare function experiment<F>( + F: FunctorHKT<F> +): <S>(f: (s: S) => HKT<F, S>) => <A>(wa: Store<S, A>) => HKT<F, A> +/** + * @since 2.0.0 + */ +export declare const extend: <E, A, B>(f: (wa: Store<E, A>) => B) => (wa: Store<E, A>) => Store<E, B> +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <E, A>(wa: Store<E, A>) => A +/** + * @since 2.0.0 + */ +export declare const duplicate: <E, A>(wa: Store<E, A>) => Store<E, Store<E, A>> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Store<E, A>) => Store<E, B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Store' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Store<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <E, B>(fab: Kind2<'Store', E, (a: A) => B>) => Kind2<'Store', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Comonad` instance, pass `S.Comonad` instead of `S.store` + * (where `S` is from `import S from 'fp-ts/Store'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const store: Comonad2<URI> diff --git a/node_modules/fp-ts/lib/Store.js b/node_modules/fp-ts/lib/Store.js new file mode 100644 index 0000000..ac147fc --- /dev/null +++ b/node_modules/fp-ts/lib/Store.js @@ -0,0 +1,111 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.store = exports.Comonad = exports.flap = exports.Functor = exports.URI = exports.map = exports.duplicate = exports.extract = exports.extend = void 0; +exports.seek = seek; +exports.seeks = seeks; +exports.peeks = peeks; +exports.experiment = experiment; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +/** + * Reposition the focus at the specified position + * + * @since 2.0.0 + */ +function seek(s) { + return function (wa) { return ({ peek: wa.peek, pos: s }); }; +} +/** + * Reposition the focus at the specified position, which depends on the current position + * + * @since 2.0.0 + */ +function seeks(f) { + return function (wa) { return ({ peek: wa.peek, pos: f(wa.pos) }); }; +} +/** + * Extract a value from a position which depends on the current position + * + * @since 2.0.0 + */ +function peeks(f) { + return function (wa) { return wa.peek(f(wa.pos)); }; +} +function experiment(F) { + return function (f) { return function (wa) { return F.map(f(wa.pos), function (s) { return wa.peek(s); }); }; }; +} +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/** + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { return ({ + peek: function (s) { return f({ peek: wa.peek, pos: s }); }, + pos: wa.pos +}); }; }; +exports.extend = extend; +/** + * @category Extract + * @since 2.6.2 + */ +var extract = function (wa) { return wa.peek(wa.pos); }; +exports.extract = extract; +/** + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return ({ + peek: function (s) { return f(fa.peek(s)); }, + pos: fa.pos +}); }; }; +exports.map = map; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Store'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Comonad` instance, pass `S.Comonad` instead of `S.store` + * (where `S` is from `import S from 'fp-ts/Store'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.store = exports.Comonad; diff --git a/node_modules/fp-ts/lib/Strong.d.ts b/node_modules/fp-ts/lib/Strong.d.ts new file mode 100644 index 0000000..005132a --- /dev/null +++ b/node_modules/fp-ts/lib/Strong.d.ts @@ -0,0 +1,172 @@ +/** + * The `Strong` class extends `Profunctor` with combinators for working with product types. + * + * `first` and `second` lift values in a `Profunctor` to act on the first and second components of a tuple, + * respectively. + * + * Another way to think about Strong is to piggyback on the intuition of + * inputs and outputs. Rewriting the type signature in this light then yields: + * + * ```purescript + * first :: forall input output a. p input output -> p (Tuple input a) (Tuple output a) + * second :: forall input output a. p input output -> p (Tuple a input) (Tuple a output) + * ``` + * + * If we specialize the profunctor p to the function arrow, we get the following type + * signatures, which may look a bit more familiar: + * + * ```purescript + * first :: forall input output a. (input -> output) -> (Tuple input a) -> (Tuple output a) + * second :: forall input output a. (input -> output) -> (Tuple a input) -> (Tuple a output) + * ``` + * + * So, when the `profunctor` is `Function` application, `first` essentially applies your function + * to the first element of a tuple, and `second` applies it to the second element (same as `map` would do). + * + * Adapted from https://github.com/purescript/purescript-profunctor/blob/master/src/Data/Profunctor/Strong.purs + * + * @since 2.0.0 + */ +import { Category, Category2, Category3, Category4 } from './Category' +import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT' +import { Profunctor, Profunctor2, Profunctor3, Profunctor4 } from './Profunctor' +/** + * @category model + * @since 2.0.0 + */ +export interface Strong<F> extends Profunctor<F> { + readonly first: <A, B, C>(pab: HKT2<F, A, B>) => HKT2<F, [A, C], [B, C]> + readonly second: <A, B, C>(pab: HKT2<F, B, C>) => HKT2<F, [A, B], [A, C]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Strong2<F extends URIS2> extends Profunctor2<F> { + readonly first: <A, B, C>(pab: Kind2<F, A, B>) => Kind2<F, [A, C], [B, C]> + readonly second: <A, B, C>(pab: Kind2<F, B, C>) => Kind2<F, [A, B], [A, C]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Strong3<F extends URIS3> extends Profunctor3<F> { + readonly first: <R, A, B, C>(pab: Kind3<F, R, A, B>) => Kind3<F, R, [A, C], [B, C]> + readonly second: <R, A, B, C>(pab: Kind3<F, R, B, C>) => Kind3<F, R, [A, B], [A, C]> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Strong4<F extends URIS4> extends Profunctor4<F> { + readonly first: <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, [A, C], [B, C]> + readonly second: <S, R, A, B, C>(pab: Kind4<F, S, R, B, C>) => Kind4<F, S, R, [A, B], [A, C]> +} +/** + * Compose a value acting on a tuple from two values, each acting on one of the components of the tuple. + * + * Specializing `split` to function application would look like this: + * + * ```purescript + * split :: forall a b c d. (a -> b) -> (c -> d) -> (Tuple a c) -> (Tuple b d) + * ``` + * + * We take two functions, `f` and `g`, and we transform them into a single function which takes a tuple and maps `f` + * over the first element and `g` over the second. Just like `bi-map` would do for the `bi-functor` instance of tuple. + * + * @since 2.10.0 + */ +export declare function split<F extends URIS4>( + S: Strong4<F>, + C: Category4<F> +): <S, R, A, B, C, D>(pab: Kind4<F, S, R, A, B>, pcd: Kind4<F, S, R, C, D>) => Kind4<F, S, R, [A, C], [B, D]> +export declare function split<F extends URIS3>( + S: Strong3<F>, + C: Category3<F> +): <R, A, B, C, D>(pab: Kind3<F, R, A, B>, pcd: Kind3<F, R, C, D>) => Kind3<F, R, [A, C], [B, D]> +export declare function split<F extends URIS2>( + S: Strong2<F>, + C: Category2<F> +): <A, B, C, D>(pab: Kind2<F, A, B>, pcd: Kind2<F, C, D>) => Kind2<F, [A, C], [B, D]> +export declare function split<F>( + S: Strong<F>, + C: Category<F> +): <A, B, C, D>(pab: HKT2<F, A, B>, pcd: HKT2<F, C, D>) => HKT2<F, [A, C], [B, D]> +/** + * Compose a value which introduces a tuple from two values, each introducing one side of the tuple. + * + * This combinator is useful when assembling values from smaller components, because it provides a way to support two + * different types of output. + * + * Specializing `fanOut` to function application would look like this: + * + * ```purescript + * fanOut :: forall a b c. (a -> b) -> (a -> c) -> (a -> (Tuple b c)) + * ``` + * + * We take two functions, `f` and `g`, with the same parameter type and we transform them into a single function which + * takes one parameter and returns a tuple of the results of running `f` and `g` on the parameter, respectively. This + * allows us to run two parallel computations on the same input and return both results in a tuple. + * + * @since 2.10.0 + */ +export declare function fanOut<F extends URIS4>( + S: Strong4<F>, + C: Category4<F> +): <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>, pac: Kind4<F, S, R, A, C>) => Kind4<F, S, R, A, [B, C]> +export declare function fanOut<F extends URIS3>( + S: Strong3<F>, + C: Category3<F> +): <R, A, B, C>(pab: Kind3<F, R, A, B>, pac: Kind3<F, R, A, C>) => Kind3<F, R, A, [B, C]> +export declare function fanOut<F extends URIS2>( + S: Strong2<F>, + C: Category2<F> +): <A, B, C>(pab: Kind2<F, A, B>, pac: Kind2<F, A, C>) => Kind2<F, A, [B, C]> +export declare function fanOut<F>( + S: Strong<F>, + C: Category<F> +): <A, B, C>(pab: HKT2<F, A, B>, pac: HKT2<F, A, C>) => HKT2<F, A, [B, C]> +/** + * Use [`split`](#split) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function splitStrong<F extends URIS4>( + F: Category4<F> & Strong4<F> +): <S, R, A, B, C, D>(pab: Kind4<F, S, R, A, B>, pcd: Kind4<F, S, R, C, D>) => Kind4<F, S, R, [A, C], [B, D]> +/** @deprecated */ +export declare function splitStrong<F extends URIS3>( + F: Category3<F> & Strong3<F> +): <R, A, B, C, D>(pab: Kind3<F, R, A, B>, pcd: Kind3<F, R, C, D>) => Kind3<F, R, [A, C], [B, D]> +/** @deprecated */ +export declare function splitStrong<F extends URIS2>( + F: Category2<F> & Strong2<F> +): <A, B, C, D>(pab: Kind2<F, A, B>, pcd: Kind2<F, C, D>) => Kind2<F, [A, C], [B, D]> +/** @deprecated */ +export declare function splitStrong<F>( + F: Category<F> & Strong<F> +): <A, B, C, D>(pab: HKT2<F, A, B>, pcd: HKT2<F, C, D>) => HKT2<F, [A, C], [B, D]> +/** + * Use [`fanOut`](#fanout) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function fanout<F extends URIS4>( + F: Category4<F> & Strong4<F> +): <S, R, A, B, C>(pab: Kind4<F, S, R, A, B>, pac: Kind4<F, S, R, A, C>) => Kind4<F, S, R, A, [B, C]> +/** @deprecated */ +export declare function fanout<F extends URIS3>( + F: Category3<F> & Strong3<F> +): <R, A, B, C>(pab: Kind3<F, R, A, B>, pac: Kind3<F, R, A, C>) => Kind3<F, R, A, [B, C]> +/** @deprecated */ +export declare function fanout<F extends URIS2>( + F: Category2<F> & Strong2<F> +): <A, B, C>(pab: Kind2<F, A, B>, pac: Kind2<F, A, C>) => Kind2<F, A, [B, C]> +/** @deprecated */ +export declare function fanout<F>( + F: Category<F> & Strong<F> +): <A, B, C>(pab: HKT2<F, A, B>, pac: HKT2<F, A, C>) => HKT2<F, A, [B, C]> diff --git a/node_modules/fp-ts/lib/Strong.js b/node_modules/fp-ts/lib/Strong.js new file mode 100644 index 0000000..aea83a7 --- /dev/null +++ b/node_modules/fp-ts/lib/Strong.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.split = split; +exports.fanOut = fanOut; +exports.splitStrong = splitStrong; +exports.fanout = fanout; +var function_1 = require("./function"); +function split(S, C) { + return function (pab, pcd) { + return C.compose(S.second(pcd), S.first(pab)); + }; +} +function fanOut(S, C) { + var splitSC = split(S, C); + return function (pab, pac) { + return C.compose(splitSC(pab, pac), S.promap(C.id(), function_1.identity, function (a) { return [a, a]; })); + }; +} +function splitStrong(F) { + return split(F, F); +} +function fanout(F) { + return fanOut(F, F); +} diff --git a/node_modules/fp-ts/lib/Task.d.ts b/node_modules/fp-ts/lib/Task.d.ts new file mode 100644 index 0000000..18fc10a --- /dev/null +++ b/node_modules/fp-ts/lib/Task.d.ts @@ -0,0 +1,500 @@ +/** + * ```ts + * interface Task<A> { + * (): Promise<A> + * } + * ``` + * + * `Task<A>` represents an asynchronous computation that yields a value of type `A` and **never fails**. + * If you want to represent an asynchronous computation that may fail, please see `TaskEither`. + * + * @since 2.0.0 + */ +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { FromIO1 } from './FromIO' +import { FromTask1 } from './FromTask' +import { Functor1 } from './Functor' +import { IO } from './IO' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import { MonadTask1 } from './MonadTask' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Task<A> { + (): Promise<A> +} +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIO: <A>(fa: IO<A>) => Task<A> +/** + * Creates a task that will complete after a time delay + * + * @example + * import { sequenceT } from 'fp-ts/Apply' + * import * as T from 'fp-ts/Task' + * import { takeRight } from 'fp-ts/Array' + * + * async function test() { + * const log: Array<string> = [] + * const append = (message: string): T.Task<void> => + * T.fromIO(() => { + * log.push(message) + * }) + * const fa = append('a') + * const fb = T.delay(20)(append('b')) + * const fc = T.delay(10)(append('c')) + * const fd = append('d') + * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)() + * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b']) + * } + * + * test() + * + * @since 2.0.0 + */ +export declare function delay(millis: number): <A>(ma: Task<A>) => Task<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Task<A>) => Task<B> +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Task<A>) => <B>(fab: Task<(a: A) => B>) => Task<B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <A>(a: A) => Task<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Task<B>): (ma: Task<A>) => Task<B> + <A, B>(ma: Task<A>, f: (a: A) => Task<B>): Task<B> +} +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Task<Task<A>>) => Task<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Task' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Task<A> + } +} +/** + * Monoid returning the first completed task. + * + * Note: uses `Promise.race` internally. + * + * @example + * import * as T from 'fp-ts/Task' + * + * async function test() { + * const S = T.getRaceMonoid<string>() + * const fa = T.delay(20)(T.of('a')) + * const fb = T.delay(10)(T.of('b')) + * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b') + * } + * + * test() + * + * @category instances + * @since 2.0.0 + */ +export declare function getRaceMonoid<A = never>(): Monoid<Task<A>> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: Task<_>) => Task<A> + <_, A>(self: Task<_>, a: A): Task<A> +} +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: Task<_>) => Task<void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'Task', (a: A) => B>) => import('./HKT').Kind<'Task', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>( + second: Task<B> +) => <A>(first: import('./HKT').Kind<'Task', A>) => import('./HKT').Kind<'Task', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>( + second: Task<B> +) => <A>(first: import('./HKT').Kind<'Task', A>) => import('./HKT').Kind<'Task', B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const fromTask: <A>(fa: Task<A>) => Task<A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): (self: Task<A>) => Task<B> + <A, B>(self: Task<A>, f: (a: A) => IO<B>): Task<B> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: Task<A>, f: (a: A) => Task<_>): Task<A> + <A, _>(f: (a: A) => Task<_>): (self: Task<A>) => Task<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as T from 'fp-ts/Task' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * T.of('fp-ts'), + * T.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): (self: Task<A>) => Task<A> + <A, _>(self: Task<A>, f: (a: A) => IO<_>): Task<A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => Task<B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => (first: Task<A>) => Task<B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => (first: Task<A>) => Task<A> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask1<URI> +/** + * A `Task` that never completes. + * + * @since 2.0.0 + */ +export declare const never: Task<never> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Task<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'Task', A>) => import('./HKT').Kind<'Task', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'Task', A> +) => import('./HKT').Kind<'Task', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'Task', B> +) => ( + ma: import('./HKT').Kind<'Task', A> +) => import('./HKT').Kind<'Task', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Task<B> +) => ( + fa: import('./HKT').Kind<'Task', A> +) => import('./HKT').Kind<'Task', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: Task<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyNonEmptyArray<A>) => Task<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyNonEmptyArray<A>) => Task<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B>(f: (a: A) => Task<B>) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A>(arr: ReadonlyArray<Task<A>>) => Task<ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <A, B>( + f: (index: number, a: A) => Task<B> +) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <A, B>(f: (a: A) => Task<B>) => (as: ReadonlyArray<A>) => Task<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <A>(arr: ReadonlyArray<Task<A>>) => Task<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Task<B>) => (ma: Task<A>) => Task<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Task<B>) => (first: Task<A>) => Task<A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.task` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const task: Monad1<URI> & MonadTask1<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.taskSeq` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const taskSeq: Monad1<URI> & MonadTask1<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <A>(S: Semigroup<A>) => Semigroup<Task<A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getMonoid: <A>(M: Monoid<A>) => Monoid<Task<A>> diff --git a/node_modules/fp-ts/lib/Task.js b/node_modules/fp-ts/lib/Task.js new file mode 100644 index 0000000..9f9bf3a --- /dev/null +++ b/node_modules/fp-ts/lib/Task.js @@ -0,0 +1,627 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.chainFirst = exports.chain = exports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.never = exports.FromTask = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.tapIO = exports.tap = exports.flatMapIO = exports.FromIO = exports.MonadTask = exports.fromTask = exports.MonadIO = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplySeq = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.flatten = exports.flatMap = exports.of = exports.ap = exports.map = exports.fromIO = void 0; +exports.getMonoid = exports.getSemigroup = exports.taskSeq = exports.task = void 0; +exports.delay = delay; +exports.getRaceMonoid = getRaceMonoid; +/** + * ```ts + * interface Task<A> { + * (): Promise<A> + * } + * ``` + * + * `Task<A>` represents an asynchronous computation that yields a value of type `A` and **never fails**. + * If you want to represent an asynchronous computation that may fail, please see `TaskEither`. + * + * @since 2.0.0 + */ +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var FromIO_1 = require("./FromIO"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.0.0 + */ +var fromIO = function (ma) { return function () { return Promise.resolve().then(ma); }; }; +exports.fromIO = fromIO; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Creates a task that will complete after a time delay + * + * @example + * import { sequenceT } from 'fp-ts/Apply' + * import * as T from 'fp-ts/Task' + * import { takeRight } from 'fp-ts/Array' + * + * async function test() { + * const log: Array<string> = [] + * const append = (message: string): T.Task<void> => + * T.fromIO(() => { + * log.push(message) + * }) + * const fa = append('a') + * const fb = T.delay(20)(append('b')) + * const fc = T.delay(10)(append('c')) + * const fd = append('d') + * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)() + * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b']) + * } + * + * test() + * + * @since 2.0.0 + */ +function delay(millis) { + return function (ma) { return function () { + return new Promise(function (resolve) { + setTimeout(function () { + Promise.resolve().then(ma).then(resolve); + }, millis); + }); + }; }; +} +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _apPar = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return function () { + return Promise.resolve().then(fa).then(f); +}; }; }; +exports.map = map; +/** + * @since 2.0.0 + */ +var ap = function (fa) { return function (fab) { return function () { + return Promise.all([Promise.resolve().then(fab), Promise.resolve().then(fa)]).then(function (_a) { + var f = _a[0], a = _a[1]; + return f(a); + }); +}; }; }; +exports.ap = ap; +/** + * @category constructors + * @since 2.0.0 + */ +var of = function (a) { return function () { return Promise.resolve(a); }; }; +exports.of = of; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + return function () { + return Promise.resolve() + .then(ma) + .then(function (a) { return f(a)(); }); + }; +}); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Task'; +/** + * Monoid returning the first completed task. + * + * Note: uses `Promise.race` internally. + * + * @example + * import * as T from 'fp-ts/Task' + * + * async function test() { + * const S = T.getRaceMonoid<string>() + * const fa = T.delay(20)(T.of('a')) + * const fb = T.delay(10)(T.of('b')) + * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b') + * } + * + * test() + * + * @category instances + * @since 2.0.0 + */ +function getRaceMonoid() { + return { + concat: function (x, y) { return function () { return Promise.race([Promise.resolve().then(x), Promise.resolve().then(y)]); }; }, + empty: exports.never + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the value to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the value to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplyPar = { + URI: exports.URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar); +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativePar = { + URI: exports.URI, + map: _map, + ap: _apPar, + of: exports.of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplySeq = { + URI: exports.URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativeSeq = { + URI: exports.URI, + map: _map, + ap: _apSeq, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.fromTask = function_1.identity; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadTask = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: exports.FromIO.fromIO +}; +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as T from 'fp-ts/Task' + * import * as Console from 'fp-ts/Console' + * + * // Will produce `Hello, fp-ts` to the stdout + * const effect = pipe( + * T.of('fp-ts'), + * T.tapIO((value) => Console.log(`Hello, ${value}`)), + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), 'fp-ts') + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromIOK = +/*#__PURE__*/ (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * A `Task` that never completes. + * + * @since 2.0.0 + */ +var never = function () { return new Promise(function (_) { return undefined; }); }; +exports.never = never; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.ApplyPar); +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return function (as) { + return function () { + return Promise.all(as.map(function (a, i) { return Promise.resolve().then(function () { return f(i, a)(); }); })); + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (bs) { + return Promise.resolve() + .then(f(i + 1, a)) + .then(function (b) { + bs.push(b); + return bs; + }); + }); + }, Promise.resolve() + .then(f(0, _.head(as))) + .then(_.singleton)); + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); +}; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseSeqArray = function (f) { + return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); +}; +exports.traverseSeqArray = traverseSeqArray; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceSeqArray = +/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.task` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.task = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.taskSeq` + * (where `T` is from `import T from 'fp-ts/Task'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.taskSeq = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _apSeq, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getSemigroup = (0, Apply_1.getApplySemigroup)(exports.ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativeSeq); diff --git a/node_modules/fp-ts/lib/TaskEither.d.ts b/node_modules/fp-ts/lib/TaskEither.d.ts new file mode 100644 index 0000000..33e9809 --- /dev/null +++ b/node_modules/fp-ts/lib/TaskEither.d.ts @@ -0,0 +1,1437 @@ +/** + * ```ts + * interface TaskEither<E, A> extends Task<Either<E, A>> {} + * ``` + * + * `TaskEither<E, A>` represents an asynchronous computation that either yields a value of type `A` or fails yielding an + * error of type `E`. If you want to represent an asynchronous computation that never fails, please see `Task`. + * + * @since 2.0.0 + */ +import { Alt2, Alt2C } from './Alt' +import { Applicative2, Applicative2C } from './Applicative' +import { Apply1, Apply2 } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import * as chainable from './Chain' +import { Compactable2C } from './Compactable' +import * as E from './Either' +import { Filterable2C } from './Filterable' +import { FromEither2 } from './FromEither' +import { FromIO2 } from './FromIO' +import { FromTask2 } from './FromTask' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad2, Monad2C } from './Monad' +import { MonadIO2 } from './MonadIO' +import { MonadTask2, MonadTask2C } from './MonadTask' +import { MonadThrow2, MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import { TaskOption } from './TaskOption' +import Either = E.Either +import Task = T.Task +/** + * @category model + * @since 2.0.0 + */ +export interface TaskEither<E, A> extends Task<Either<E, A>> {} +/** + * @category constructors + * @since 2.0.0 + */ +export declare const left: <E = never, A = never>(e: E) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const right: <E = never, A = never>(a: A) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightTask: <E = never, A = never>(ma: Task<A>) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftTask: <E = never, A = never>(me: Task<E>) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const rightIO: <E = never, A = never>(ma: IO<A>) => TaskEither<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const leftIO: <E = never, A = never>(me: IO<E>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, E = never>(fa: IO<A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromTask: <A, E = never>(fa: Task<A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromEither: <E, A>(fa: Either<E, A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromIOEither: <E, A>(fa: IOEither<E, A>) => TaskEither<E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromTaskOption: <E>(onNone: LazyArg<E>) => <A>(fa: TaskOption<A>) => TaskEither<E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: TaskEither<E, A>) => Task<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C>( + onLeft: (e: E) => B, + onRight: (a: A) => C +) => (ma: TaskEither<E, A>) => Task<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <E, A, B>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B> +) => (ma: TaskEither<E, A>) => Task<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B> +) => (ma: TaskEither<E, A>) => Task<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, B, A, C>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C> +) => (ma: TaskEither<E, A>) => Task<B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C> +) => (ma: TaskEither<E, A>) => Task<B | C> +/** + * @category error handling + * @since 2.0.0 + */ +export declare const getOrElse: <E, A>(onLeft: (e: E) => Task<A>) => (ma: TaskEither<E, A>) => Task<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +export declare const getOrElseW: <E, B>(onLeft: (e: E) => Task<B>) => <A>(ma: TaskEither<E, A>) => Task<A | B> +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { left, right } from 'fp-ts/Either' + * import { tryCatch } from 'fp-ts/TaskEither' + * + * tryCatch(() => Promise.resolve(1), String)().then(result => { + * assert.deepStrictEqual(result, right(1)) + * }) + * tryCatch(() => Promise.reject('error'), String)().then(result => { + * assert.deepStrictEqual(result, left('error')) + * }) + * + * @category interop + * @since 2.0.0 + */ +export declare const tryCatch: <E, A>(f: LazyArg<Promise<A>>, onRejected: (reason: unknown) => E) => TaskEither<E, A> +/** + * Converts a function returning a `Promise` to one returning a `TaskEither`. + * + * @category interop + * @since 2.5.0 + */ +export declare const tryCatchK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Promise<B>, + onRejected: (reason: unknown) => E +) => (...a: A) => TaskEither<E, B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const toUnion: <E, A>(fa: TaskEither<E, A>) => Task<E | A> +/** + * @category conversions + * @since 2.12.0 + */ +export declare const fromNullable: <E>(e: E) => <A>(a: A) => TaskEither<E, NonNullable<A>> +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const fromNullableK: <E>( + e: E +) => <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => TaskEither<E, NonNullable<B>> +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainNullableK: <E>( + e: E +) => <A, B>(f: (a: A) => B | null | undefined) => (ma: TaskEither<E, A>) => TaskEither<E, NonNullable<B>> +/** + * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise. + * + * See also [alt](#alt). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`)) + * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok')) + * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...')) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +export declare const orElse: <E1, A, E2>( + onLeft: (e: E1) => TaskEither<E2, A> +) => (ma: TaskEither<E1, A>) => TaskEither<E2, A> +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const orElseW: <E1, E2, B>( + onLeft: (e: E1) => TaskEither<E2, B> +) => <A>(ma: TaskEither<E1, A>) => TaskEither<E2, A | B> +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +export declare const tapError: { + <E1, E2, _>(onLeft: (e: E1) => TaskEither<E2, _>): <A>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, A> + <E1, A, E2, _>(self: TaskEither<E1, A>, onLeft: (e: E1) => TaskEither<E2, _>): TaskEither<E1 | E2, A> +} +/** + * @category error handling + * @since 2.12.0 + */ +export declare const orElseFirstIOK: <E, B>(onLeft: (e: E) => IO<B>) => <A>(ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * @category error handling + * @since 2.12.0 + */ +export declare const orElseFirstTaskK: <E, B>( + onLeft: (e: E) => Task<B> +) => <A>(ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * @category error handling + * @since 2.11.0 + */ +export declare const orLeft: <E1, E2>(onLeft: (e: E1) => Task<E2>) => <A>(fa: TaskEither<E1, A>) => TaskEither<E2, A> +/** + * @since 2.0.0 + */ +export declare const swap: <E, A>(ma: TaskEither<E, A>) => TaskEither<A, E> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromTaskOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => TaskOption<B>) => (...a: A) => TaskEither<E, B> +/** + * Use `flatMapTaskOption`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.3 + */ +export declare const chainTaskOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => TaskOption<B>) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Use `flatMapTaskOption`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const chainTaskOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => TaskOption<B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromIOEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IOEither<E, B> +) => (...a: A) => TaskEither<E, B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: TaskEither<E, A>) => TaskEither<E, B> +/** + * Returns a `TaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.left('err'), f, g)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapBoth: { + <E, G, A, B>(f: (e: E) => G, g: (a: A) => B): (self: TaskEither<E, A>) => TaskEither<G, B> + <E, A, G, B>(self: TaskEither<E, A>, f: (e: E) => G, g: (a: A) => B): TaskEither<G, B> +} +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: TaskEither<E, A>) => TaskEither<G, B> +/** + * Returns a `TaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.left('err'), f)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +export declare const mapError: { + <E, G>(f: (e: E) => G): <A>(self: TaskEither<E, A>) => TaskEither<G, A> + <E, A, G>(self: TaskEither<E, A>, f: (e: E) => G): TaskEither<G, A> +} +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: TaskEither<E, A>) => TaskEither<G, A> +/** + * @since 2.0.0 + */ +export declare const ap: <E, A>(fa: TaskEither<E, A>) => <B>(fab: TaskEither<E, (a: A) => B>) => TaskEither<E, B> +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +export declare const apW: <E2, A>( + fa: TaskEither<E2, A> +) => <E1, B>(fab: TaskEither<E1, (a: A) => B>) => TaskEither<E1 | E2, B> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, E2, B>(f: (a: A) => TaskEither<E2, B>): <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(ma: TaskEither<E1, A>, f: (a: A) => TaskEither<E2, B>): TaskEither<E1 | E2, B> +} +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +export declare const flattenW: <E1, E2, A>(mma: TaskEither<E1, TaskEither<E2, A>>) => TaskEither<E1 | E2, A> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <E, A>(mma: TaskEither<E, TaskEither<E, A>>) => TaskEither<E, A> +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise. + * + * See also [orElse](#orelse). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * TE.right(1), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(1) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(2) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.left('b')) + * )(), + * E.left('b') + * ) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +export declare const alt: <E, A>(that: LazyArg<TaskEither<E, A>>) => (fa: TaskEither<E, A>) => TaskEither<E, A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +export declare const altW: <E2, B>( + that: LazyArg<TaskEither<E2, B>> +) => <E1, A>(fa: TaskEither<E1, A>) => TaskEither<E2, A | B> +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <E = never, A = never>(a: A) => TaskEither<E, A> +/** + * @since 2.7.0 + */ +export declare const throwError: MonadThrow2<URI>['throwError'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'TaskEither' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: TaskEither<E, A> + } +} +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * import * as T from 'fp-ts/Task' + * import * as TE from 'fp-ts/TaskEither' + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const remoteDatabase: ReadonlyArray<User> = [ + * { id: 'id1', name: 'John' }, + * { id: 'id2', name: 'Mary' }, + * { id: 'id3', name: 'Joey' } + * ] + * + * const fetchUser = (id: string): TE.TaskEither<string, User> => + * pipe( + * remoteDatabase, + * RA.findFirst((user) => user.id === id), + * TE.fromOption(() => `${id} not found`) + * ) + * + * async function test() { + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(TE.ApplicativePar)(fetchUser))(), + * E.left('id4 not found') // <= first error + * ) + * + * const Applicative = TE.getApplicativeTaskValidation( + * T.ApplyPar, + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(Applicative)(fetchUser))(), + * E.left('id4 not found, id5 not found') // <= all errors + * ) + * } + * + * test() + * + * @category error handling + * @since 2.7.0 + */ +export declare function getApplicativeTaskValidation<E>(A: Apply1<T.URI>, S: Semigroup<E>): Applicative2C<URI, E> +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +export declare function getAltTaskValidation<E>(S: Semigroup<E>): Alt2C<URI, E> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const getCompactable: <E>(M: Monoid<E>) => Compactable2C<URI, E> +/** + * @category filtering + * @since 2.1.0 + */ +export declare function getFilterable<E>(M: Monoid<E>): Filterable2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * Maps the `Right` value of this `TaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <E, _>(self: TaskEither<E, _>) => TaskEither<E, A> + <E, _, A>(self: TaskEither<E, _>, a: A): TaskEither<E, A> +} +/** + * Maps the `Right` value of this `TaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <E, _>(self: TaskEither<E, _>) => TaskEither<E, void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'TaskEither', E, (a: A) => B>) => import('./HKT').Kind2<'TaskEither', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply2<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <E, B>( + second: TaskEither<E, B> +) => <A>(first: import('./HKT').Kind2<'TaskEither', E, A>) => import('./HKT').Kind2<'TaskEither', E, A> +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apFirstW: <E2, B>( + second: TaskEither<E2, B> +) => <E1, A>(first: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <E, B>( + second: TaskEither<E, B> +) => <A>(first: import('./HKT').Kind2<'TaskEither', E, A>) => import('./HKT').Kind2<'TaskEither', E, B> +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const apSecondW: <E2, B>( + second: TaskEither<E2, B> +) => <E1, A>(first: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativePar: Applicative2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply2<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +export declare const ApplicativeSeq: Applicative2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadThrow: MonadThrow2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask2<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <E1, A, E2, _>(self: TaskEither<E1, A>, f: (a: A) => TaskEither<E2, _>): TaskEither<E1 | E2, A> + <A, E2, _>(f: (a: A) => TaskEither<E2, _>): <E1>(self: TaskEither<E1, A>) => TaskEither<E2 | E1, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * const checkString = (value: string) => pipe( + * TE.of(value), + * TE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(), E.right('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E2, _>(f: (a: A) => Either<E2, _>): <E1>(self: TaskEither<E1, A>) => TaskEither<E2 | E1, A> + <E1, A, E2, _>(self: TaskEither<E1, A>, f: (a: A) => Either<E2, _>): TaskEither<E1 | E2, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TE.tapIO( + * TE.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TE.left('error'), + * TE.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), E.of(1)) + * assert.deepStrictEqual(await effectB(), E.left('error')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): <E>(self: TaskEither<E, A>) => TaskEither<E, A> + <E, A, _>(self: TaskEither<E, A>, f: (a: A) => IO<_>): TaskEither<E, A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TE from 'fp-ts/TaskEither' + * import * as T from 'fp-ts/Task' + * import * as E from 'fp-ts/Either' + * + * + * const effect = TE.tapIO( + * TE.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): <E>(self: TaskEither<E, A>) => TaskEither<E, A> + <E, A, _>(self: TaskEither<E, A>, f: (a: A) => Task<_>): TaskEither<E, A> +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Alt: Alt2<URI> +/** + * @category conversions + * @since 2.0.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => TaskEither<E, A> +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => TaskEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainOptionK: <E>( + onNone: LazyArg<E> +) => <A, B>(f: (a: A) => Option<B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +export declare const chainOptionKW: <E2>( + onNone: LazyArg<E2> +) => <A, B>(f: (a: A) => Option<B>) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftNullable: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => B | null | undefined, + onNullable: (...a: A) => E +) => (...a: A) => TaskEither<E, NonNullable<B>> +/** + * @category lifting + * @since 2.15.0 + */ +export declare const liftOption: <A extends ReadonlyArray<unknown>, B, E>( + f: (...a: A) => Option<B>, + onNone: (...a: A) => E +) => (...a: A) => TaskEither<E, B> +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapNullable: { + <A, B, E2>(f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): <E1>( + self: TaskEither<E1, A> + ) => TaskEither<E2 | E1, NonNullable<B>> + <E1, A, B, E2>(self: TaskEither<E1, A>, f: (a: A) => B | null | undefined, onNullable: (a: A) => E2): TaskEither< + E1 | E2, + NonNullable<B> + > +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapOption: { + <A, B, E2>(f: (a: A) => Option<B>, onNone: (a: A) => E2): <E1>(self: TaskEither<E1, A>) => TaskEither<E2 | E1, B> + <E1, A, B, E2>(self: TaskEither<E1, A>, f: (a: A) => Option<B>, onNone: (a: A) => E2): TaskEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapEither: { + <A, E2, B>(f: (a: A) => E.Either<E2, B>): <E1>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(self: TaskEither<E1, A>, f: (a: A) => E.Either<E2, B>): TaskEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.15.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): <E>(self: TaskEither<E, A>) => TaskEither<E, B> + <E, A, B>(self: TaskEither<E, A>, f: (a: A) => IO<B>): TaskEither<E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): <E>(self: TaskEither<E, A>) => TaskEither<E, B> + <E, A, B>(self: TaskEither<E, A>, f: (a: A) => Task<B>): TaskEither<E, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIOEither: { + <A, E2, B>(f: (a: A) => IOEither<E2, B>): <E1>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(self: TaskEither<E1, A>, f: (a: A) => IOEither<E2, B>): TaskEither<E1 | E2, B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTaskOption: { + <A, E2, B>(f: (a: A) => TaskOption<B>, onNone: (a: A) => E2): <E1>(self: TaskEither<E1, A>) => TaskEither<E1 | E2, B> + <E1, A, E2, B>(self: TaskEither<E1, A>, f: (a: A) => TaskOption<B>, onNone: (a: A) => E2): TaskEither<E1 | E2, B> +} +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => E.Either<E, B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainEitherKW: <E2, A, B>( + f: (a: A) => Either<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <A, E, B>( + f: (a: A) => E.Either<E, B> +) => (ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherKW: <A, E2, B>( + f: (a: A) => E.Either<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * @category lifting + * @since 2.0.0 + */ +export declare const fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => TaskEither<E, A> +} +/** + * @category filtering + * @since 2.0.0 + */ +export declare const filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: TaskEither<E, A>) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(mb: TaskEither<E, B>) => TaskEither<E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: TaskEither<E, A>) => TaskEither<E, A> +} +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +export declare const filterOrElseW: { + <A, B extends A, E2>(refinement: Refinement<A, B>, onFalse: (a: A) => E2): <E1>( + ma: TaskEither<E1, A> + ) => TaskEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1, B extends A>( + mb: TaskEither<E1, B> + ) => TaskEither<E1 | E2, B> + <A, E2>(predicate: Predicate<A>, onFalse: (a: A) => E2): <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +} +/** + * @category lifting + * @since 2.4.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => E.Either<E, B> +) => (...a: A) => TaskEither<E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <E = never>(...a: A) => TaskEither<E, B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <E = never>(...a: A) => TaskEither<E, B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => <E>(first: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +export declare const chainIOEitherKW: <E2, A, B>( + f: (a: A) => IOEither<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +export declare const chainIOEitherK: <E, A, B>( + f: (a: A) => IOEither<E, B> +) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Convert a node style callback function to one returning a `TaskEither` + * + * **Note**. If the function `f` admits multiple overloadings, `taskify` will pick last one. If you want a different + * behaviour, add an explicit type annotation + * + * ```ts + * // readFile admits multiple overloadings + * + * // const readFile: (a: string) => TaskEither<NodeJS.ErrnoException, Buffer> + * const readFile = taskify(fs.readFile) + * + * const readFile2: (filename: string, encoding: string) => TaskEither<NodeJS.ErrnoException, Buffer> = taskify( + * fs.readFile + * ) + * ``` + * + * @example + * import { taskify } from 'fp-ts/TaskEither' + * import * as fs from 'fs' + * + * // const stat: (a: string | Buffer) => TaskEither<NodeJS.ErrnoException, fs.Stats> + * const stat = taskify(fs.stat) + * assert.strictEqual(stat.length, 0) + * + * @category interop + * @since 2.0.0 + */ +export declare function taskify<L, R>(f: (cb: (e: L | null | undefined, r?: R) => void) => void): () => TaskEither<L, R> +export declare function taskify<A, L, R>( + f: (a: A, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A) => TaskEither<L, R> +export declare function taskify<A, B, L, R>( + f: (a: A, b: B, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B) => TaskEither<L, R> +export declare function taskify<A, B, C, L, R>( + f: (a: A, b: B, c: C, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B, c: C) => TaskEither<L, R> +export declare function taskify<A, B, C, D, L, R>( + f: (a: A, b: B, c: C, d: D, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B, c: C, d: D) => TaskEither<L, R> +export declare function taskify<A, B, C, D, E, L, R>( + f: (a: A, b: B, c: C, d: D, e: E, cb: (e: L | null | undefined, r?: R) => void) => void +): (a: A, b: B, c: C, d: D, e: E) => TaskEither<L, R> +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +export declare const bracket: <E, A, B>( + acquire: TaskEither<E, A>, + use: (a: A) => TaskEither<E, B>, + release: (a: A, e: Either<E, B>) => TaskEither<E, void> +) => TaskEither<E, B> +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +export declare const bracketW: <E1, A, E2, B, E3>( + acquire: TaskEither<E1, A>, + use: (a: A) => TaskEither<E2, B>, + release: (a: A, e: E.Either<E2, B>) => TaskEither<E3, void> +) => TaskEither<E1 | E2 | E3, B> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: TaskEither<never, {}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <E, A>( + fa: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => <E>( + fa: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind2<'TaskEither', E, B> +) => ( + ma: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const bindW: <N extends string, A, E2, B>( + name: Exclude<N, keyof A>, + f: (a: A) => TaskEither<E2, B> +) => <E1>(fa: TaskEither<E1, A>) => TaskEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, E, B>( + name: Exclude<N, keyof A>, + fb: TaskEither<E, B> +) => ( + fa: import('./HKT').Kind2<'TaskEither', E, A> +) => import('./HKT').Kind2<'TaskEither', E, { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +export declare const apSW: <A, N extends string, E2, B>( + name: Exclude<N, keyof A>, + fb: TaskEither<E2, B> +) => <E1>(fa: TaskEither<E1, A>) => TaskEither< + E1 | E2, + { + readonly [K in keyof A | N]: K extends keyof A ? A[K] : B + } +> +/** + * @since 2.11.0 + */ +export declare const ApT: TaskEither<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskEither<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, E, B>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArrayWithIndex: <A, B, E>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseArray: <A, B, E>( + f: (a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceArray: <A, E>(arr: ReadonlyArray<TaskEither<E, A>>) => TaskEither<E, ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArrayWithIndex: <A, B, E>( + f: (index: number, a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const traverseSeqArray: <A, B, E>( + f: (a: A) => TaskEither<E, B> +) => (as: ReadonlyArray<A>) => TaskEither<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +export declare const sequenceSeqArray: <A, E>(arr: ReadonlyArray<TaskEither<E, A>>) => TaskEither<E, ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <E, A, B>(f: (a: A) => TaskEither<E, B>) => (ma: TaskEither<E, A>) => TaskEither<E, B> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +export declare const chainW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chainFirst: <E, A, B>(f: (a: A) => TaskEither<E, B>) => (ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +export declare const chainFirstW: <E2, A, B>( + f: (a: A) => TaskEither<E2, B> +) => <E1>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirst: <E, B>( + onLeft: (e: E) => TaskEither<E, B> +) => <A>(ma: TaskEither<E, A>) => TaskEither<E, A> +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +export declare const orElseFirstW: <E1, E2, B>( + onLeft: (e: E1) => TaskEither<E2, B> +) => <A>(ma: TaskEither<E1, A>) => TaskEither<E1 | E2, A> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEither` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const taskEither: Monad2<URI> & Bifunctor2<URI> & Alt2<URI> & MonadTask2<URI> & MonadThrow2<URI> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEitherSeq` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const taskEitherSeq: typeof taskEither +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplySemigroup: <E, A>(S: Semigroup<A>) => Semigroup<TaskEither<E, A>> +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getApplyMonoid: <E, A>(M: Monoid<A>) => Monoid<TaskEither<E, A>> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const getSemigroup: <E, A>(S: Semigroup<A>) => Semigroup<TaskEither<E, A>> +/** + * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getTaskValidation<E>( + SE: Semigroup<E> +): Monad2C<URI, E> & Bifunctor2<URI> & Alt2C<URI, E> & MonadTask2C<URI, E> & MonadThrow2C<URI, E> diff --git a/node_modules/fp-ts/lib/TaskEither.js b/node_modules/fp-ts/lib/TaskEither.js new file mode 100644 index 0000000..1dd414b --- /dev/null +++ b/node_modules/fp-ts/lib/TaskEither.js @@ -0,0 +1,1510 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.throwError = exports.of = exports.altW = exports.alt = exports.flatten = exports.flattenW = exports.flatMap = exports.apW = exports.ap = exports.mapLeft = exports.mapError = exports.bimap = exports.mapBoth = exports.map = exports.fromIOEitherK = exports.chainTaskOptionK = exports.chainTaskOptionKW = exports.fromTaskOptionK = exports.swap = exports.orLeft = exports.orElseFirstTaskK = exports.orElseFirstIOK = exports.tapError = exports.orElseW = exports.orElse = exports.chainNullableK = exports.fromNullableK = exports.fromNullable = exports.toUnion = exports.tryCatchK = exports.tryCatch = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromTaskOption = exports.fromIOEither = exports.fromEither = exports.fromTask = exports.fromIO = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.right = exports.left = void 0; +exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = exports.fromPredicate = exports.chainFirstEitherKW = exports.chainFirstEitherK = exports.chainEitherKW = exports.chainEitherK = exports.flatMapTaskOption = exports.flatMapIOEither = exports.flatMapTask = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.Alt = exports.Bifunctor = exports.tapTask = exports.tapIO = exports.tapEither = exports.tap = exports.FromTask = exports.FromIO = exports.FromEither = exports.MonadThrow = exports.MonadTask = exports.MonadIO = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplySeq = exports.ApplicativePar = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.getCompactable = exports.URI = void 0; +exports.getSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.taskEitherSeq = exports.taskEither = exports.orElseFirstW = exports.orElseFirst = exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.bracketW = exports.bracket = exports.chainIOEitherK = exports.chainIOEitherKW = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = void 0; +exports.getApplicativeTaskValidation = getApplicativeTaskValidation; +exports.getAltTaskValidation = getAltTaskValidation; +exports.getFilterable = getFilterable; +exports.taskify = taskify; +exports.getTaskValidation = getTaskValidation; +var Applicative_1 = require("./Applicative"); +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var Compactable_1 = require("./Compactable"); +var E = __importStar(require("./Either")); +var ET = __importStar(require("./EitherT")); +var Filterable_1 = require("./Filterable"); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var FromTask_1 = require("./FromTask"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var T = __importStar(require("./Task")); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +exports.left = ET.left(T.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.right = ET.right(T.Pointed); +/** + * @category constructors + * @since 2.0.0 + */ +exports.rightTask = ET.rightF(T.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +exports.leftTask = ET.leftF(T.Functor); +/** + * @category constructors + * @since 2.0.0 + */ +exports.rightIO = (0, function_1.flow)(T.fromIO, exports.rightTask); +/** + * @category constructors + * @since 2.0.0 + */ +exports.leftIO = (0, function_1.flow)(T.fromIO, exports.leftTask); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromIO = exports.rightIO; +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromTask = exports.rightTask; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromEither = T.of; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromIOEither = T.fromIO; +/** + * @category conversions + * @since 2.11.0 + */ +var fromTaskOption = function (onNone) { + return T.map(E.fromOption(onNone)); +}; +exports.fromTaskOption = fromTaskOption; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = +/*#__PURE__*/ ET.match(T.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchE = ET.matchE(T.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchEW = exports.matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchEW; +/** + * @category error handling + * @since 2.0.0 + */ +exports.getOrElse = +/*#__PURE__*/ ET.getOrElse(T.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.6.0 + */ +exports.getOrElseW = exports.getOrElse; +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @example + * import { left, right } from 'fp-ts/Either' + * import { tryCatch } from 'fp-ts/TaskEither' + * + * tryCatch(() => Promise.resolve(1), String)().then(result => { + * assert.deepStrictEqual(result, right(1)) + * }) + * tryCatch(() => Promise.reject('error'), String)().then(result => { + * assert.deepStrictEqual(result, left('error')) + * }) + * + * @category interop + * @since 2.0.0 + */ +var tryCatch = function (f, onRejected) { + return function () { return __awaiter(void 0, void 0, void 0, function () { + var reason_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, f().then(_.right)]; + case 1: return [2 /*return*/, _a.sent()]; + case 2: + reason_1 = _a.sent(); + return [2 /*return*/, _.left(onRejected(reason_1))]; + case 3: return [2 /*return*/]; + } + }); + }); }; +}; +exports.tryCatch = tryCatch; +/** + * Converts a function returning a `Promise` to one returning a `TaskEither`. + * + * @category interop + * @since 2.5.0 + */ +var tryCatchK = function (f, onRejected) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onRejected); + }; +}; +exports.tryCatchK = tryCatchK; +/** + * @category conversions + * @since 2.10.0 + */ +exports.toUnion = ET.toUnion(T.Functor); +/** + * @category conversions + * @since 2.12.0 + */ +exports.fromNullable = ET.fromNullable(T.Pointed); +/** + * Use `liftNullable`. + * + * @category legacy + * @since 2.12.0 + */ +exports.fromNullableK = ET.fromNullableK(T.Pointed); +/** + * Use `flatMapNullable`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainNullableK = +/*#__PURE__*/ ET.chainNullableK(T.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise. + * + * See also [alt](#alt). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`)) + * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok')) + * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...')) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +exports.orElse = +/*#__PURE__*/ ET.orElse(T.Monad); +/** + * Less strict version of [`orElse`](#orelse). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +exports.orElseW = exports.orElse; +/** + * Returns an effect that effectfully "peeks" at the failure of this effect. + * + * @category error handling + * @since 2.15.0 + */ +exports.tapError = (0, function_1.dual)(2, ET.tapError(T.Monad)); +/** + * @category error handling + * @since 2.12.0 + */ +var orElseFirstIOK = function (onLeft) { return (0, exports.tapError)((0, exports.fromIOK)(onLeft)); }; +exports.orElseFirstIOK = orElseFirstIOK; +/** + * @category error handling + * @since 2.12.0 + */ +var orElseFirstTaskK = function (onLeft) { return (0, exports.tapError)((0, exports.fromTaskK)(onLeft)); }; +exports.orElseFirstTaskK = orElseFirstTaskK; +/** + * @category error handling + * @since 2.11.0 + */ +exports.orLeft = +/*#__PURE__*/ ET.orLeft(T.Monad); +/** + * @since 2.0.0 + */ +exports.swap = ET.swap(T.Functor); +/** + * @category lifting + * @since 2.11.0 + */ +var fromTaskOptionK = function (onNone) { + var from = (0, exports.fromTaskOption)(onNone); + return function (f) { return (0, function_1.flow)(f, from); }; +}; +exports.fromTaskOptionK = fromTaskOptionK; +/** + * Use `flatMapTaskOption`. + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.3 + */ +var chainTaskOptionKW = function (onNone) { + return function (f) { + return function (ma) { + return (0, exports.flatMap)(ma, (0, exports.fromTaskOptionK)(onNone)(f)); + }; + }; +}; +exports.chainTaskOptionKW = chainTaskOptionKW; +/** + * Use `flatMapTaskOption`. + * + * @category legacy + * @since 2.11.0 + */ +exports.chainTaskOptionK = exports.chainTaskOptionKW; +/** + * @category lifting + * @since 2.4.0 + */ +var fromIOEitherK = function (f) { return (0, function_1.flow)(f, exports.fromIOEither); }; +exports.fromIOEitherK = fromIOEitherK; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _apPar = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +var _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +exports.map = ET.map(T.Functor); +/** + * Returns a `TaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * const g = (n: number) => n * 2 + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.right(1), f, g)(), Either.right(2)) + * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.left('err'), f, g)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +exports.mapBoth = (0, function_1.dual)(3, ET.mapBoth(T.Functor)); +/** + * Alias of `mapBoth`. + * + * @category legacy + * @since 2.0.0 + */ +exports.bimap = exports.mapBoth; +/** + * Returns a `TaskEither` with its error channel mapped using the specified function. + * + * @example + * import * as TaskEither from 'fp-ts/TaskEither' + * import * as Either from 'fp-ts/Either' + * + * const f = (s: string) => new Error(s) + * + * async function test() { + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.right(1), f)(), Either.right(1)) + * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.left('err'), f)(), Either.left(new Error('err'))) + * } + * + * test() + * + * @category error handling + * @since 2.16.0 + */ +exports.mapError = (0, function_1.dual)(2, ET.mapError(T.Functor)); +/** + * Alias of `mapError`. + * + * @category legacy + * @since 2.0.0 + */ +exports.mapLeft = exports.mapError; +/** + * @since 2.0.0 + */ +exports.ap = +/*#__PURE__*/ ET.ap(T.ApplyPar); +/** + * Less strict version of [`ap`](#ap). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.8.0 + */ +exports.apW = exports.ap; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, ET.flatMap(T.Monad)); +/** + * Less strict version of [`flatten`](#flatten). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category sequencing + * @since 2.11.0 + */ +exports.flattenW = +/*#__PURE__*/ (0, exports.flatMap)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = exports.flattenW; +/** + * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to + * types of kind `* -> *`. + * + * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise. + * + * See also [orElse](#orelse). + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * async function test() { + * assert.deepStrictEqual( + * await pipe( + * TE.right(1), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(1) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.right(2)) + * )(), + * E.right(2) + * ) + * assert.deepStrictEqual( + * await pipe( + * TE.left('a'), + * TE.alt(() => TE.left('b')) + * )(), + * E.left('b') + * ) + * } + * + * test() + * + * @category error handling + * @since 2.0.0 + */ +exports.alt = +/*#__PURE__*/ ET.alt(T.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the error and the return types will be merged. + * + * @category error handling + * @since 2.9.0 + */ +exports.altW = exports.alt; +/** + * @category constructors + * @since 2.0.0 + */ +exports.of = exports.right; +/** + * @since 2.7.0 + */ +exports.throwError = exports.left; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'TaskEither'; +/** + * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as RA from 'fp-ts/ReadonlyArray' + * import * as S from 'fp-ts/Semigroup' + * import * as string from 'fp-ts/string' + * import * as T from 'fp-ts/Task' + * import * as TE from 'fp-ts/TaskEither' + * + * interface User { + * readonly id: string + * readonly name: string + * } + * + * const remoteDatabase: ReadonlyArray<User> = [ + * { id: 'id1', name: 'John' }, + * { id: 'id2', name: 'Mary' }, + * { id: 'id3', name: 'Joey' } + * ] + * + * const fetchUser = (id: string): TE.TaskEither<string, User> => + * pipe( + * remoteDatabase, + * RA.findFirst((user) => user.id === id), + * TE.fromOption(() => `${id} not found`) + * ) + * + * async function test() { + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(TE.ApplicativePar)(fetchUser))(), + * E.left('id4 not found') // <= first error + * ) + * + * const Applicative = TE.getApplicativeTaskValidation( + * T.ApplyPar, + * pipe(string.Semigroup, S.intercalate(', ')) + * ) + * + * assert.deepStrictEqual( + * await pipe(['id4', 'id5'], RA.traverse(Applicative)(fetchUser))(), + * E.left('id4 not found, id5 not found') // <= all errors + * ) + * } + * + * test() + * + * @category error handling + * @since 2.7.0 + */ +function getApplicativeTaskValidation(A, S) { + var ap = (0, Apply_1.ap)(A, E.getApplicativeValidation(S)); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, ap(fa)); }, + of: exports.of + }; +} +/** + * The default [`Alt`](#alt) instance returns the last error, if you want to + * get all errors you need to provide a way to concatenate them via a `Semigroup`. + * + * See [`getAltValidation`](./Either.ts.html#getaltvalidation). + * + * @category error handling + * @since 2.7.0 + */ +function getAltTaskValidation(S) { + var alt = ET.altValidation(T.Monad, S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + alt: function (fa, that) { return (0, function_1.pipe)(fa, alt(that)); } + }; +} +/** + * @category filtering + * @since 2.10.0 + */ +var getCompactable = function (M) { + var C = E.getCompactable(M); + return { + URI: exports.URI, + _E: undefined, + compact: (0, Compactable_1.compact)(T.Functor, C), + separate: (0, Compactable_1.separate)(T.Functor, C, E.Functor) + }; +}; +exports.getCompactable = getCompactable; +/** + * @category filtering + * @since 2.1.0 + */ +function getFilterable(M) { + var F = E.getFilterable(M); + var C = (0, exports.getCompactable)(M); + var filter = (0, Filterable_1.filter)(T.Functor, F); + var filterMap = (0, Filterable_1.filterMap)(T.Functor, F); + var partition = (0, Filterable_1.partition)(T.Functor, F); + var partitionMap = (0, Filterable_1.partitionMap)(T.Functor, F); + return { + URI: exports.URI, + _E: undefined, + map: _map, + compact: C.compact, + separate: C.separate, + filter: function (fa, predicate) { return (0, function_1.pipe)(fa, filter(predicate)); }, + filterMap: function (fa, f) { return (0, function_1.pipe)(fa, filterMap(f)); }, + partition: function (fa, predicate) { return (0, function_1.pipe)(fa, partition(predicate)); }, + partitionMap: function (fa, f) { return (0, function_1.pipe)(fa, partitionMap(f)); } + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Right` value of this `TaskEither` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Right` value of this `TaskEither` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplyPar = { + URI: exports.URI, + map: _map, + ap: _apPar +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar); +/** + * Less strict version of [`apFirst`](#apfirst). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +exports.apFirstW = exports.apFirst; +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar); +/** + * Less strict version of [`apSecond`](#apsecond). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +exports.apSecondW = exports.apSecond; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativePar = { + URI: exports.URI, + map: _map, + ap: _apPar, + of: exports.of +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplySeq = { + URI: exports.URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.7.0 + */ +exports.ApplicativeSeq = { + URI: exports.URI, + map: _map, + ap: _apSeq, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadTask = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadThrow = { + URI: exports.URI, + map: _map, + ap: _apPar, + chain: exports.flatMap, + of: exports.of, + throwError: exports.throwError +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as E from 'fp-ts/Either' + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * + * const checkString = (value: string) => pipe( + * TE.of(value), + * TE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error')) + * ) + * + * async function test() { + * assert.deepStrictEqual(await checkString('')(), E.left('error')) + * assert.deepStrictEqual(await checkString('fp-ts')(), E.right('fp-ts')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TE from 'fp-ts/TaskEither' + * import * as E from 'fp-ts/Either' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TE.tapIO( + * TE.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TE.left('error'), + * TE.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), E.of(1)) + * assert.deepStrictEqual(await effectB(), E.left('error')) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TE from 'fp-ts/TaskEither' + * import * as T from 'fp-ts/Task' + * import * as E from 'fp-ts/Either' + * + * + * const effect = TE.tapIO( + * TE.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), E.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapTask = (0, function_1.dual)(2, (0, FromTask_1.tapTask)(exports.FromTask, exports.Chain)); +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category conversions + * @since 2.0.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +/** + * Use `liftOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.fromOptionK = +/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain); +/** + * Use `flatMapOption`. + * + * @category legacy + * @since 2.13.2 + */ +exports.chainOptionKW = exports.chainOptionK; +/** @internal */ +var _FromEither = { + fromEither: exports.FromEither.fromEither +}; +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftNullable = _.liftNullable(_FromEither); +/** + * @category lifting + * @since 2.15.0 + */ +exports.liftOption = _.liftOption(_FromEither); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** @internal */ +var _FromIO = { + fromIO: exports.FromIO.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: exports.fromTask +}; +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapEither = _.flatMapEither(_FromEither, _FlatMap); +/** + * @category sequencing + * @since 2.15.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTask = _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIOEither = (0, function_1.dual)(2, function (self, f) { + return (0, exports.flatMap)(self, (0, exports.fromIOEitherK)(f)); +}); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTaskOption = (0, function_1.dual)(3, function (self, f, onNone) { + return (0, exports.flatMap)(self, function (a) { return (0, exports.fromTaskOption)(function () { return onNone(a); })(f(a)); }); +}); +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainEitherK = exports.flatMapEither; +/** + * Alias of `flatMapEither`. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainEitherKW = exports.flatMapEither; +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * Alias of `tapEither`. + * + * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherKW = exports.tapEither; +/** + * @category lifting + * @since 2.0.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category filtering + * @since 2.0.0 + */ +exports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain); +/** + * Less strict version of [`filterOrElse`](#filterorelse). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category filtering + * @since 2.9.0 + */ +exports.filterOrElseW = exports.filterOrElse; +/** + * @category lifting + * @since 2.4.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromTaskK = (0, FromTask_1.fromTaskK)(exports.FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainTaskK = exports.flatMapTask; +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstTaskK = exports.tapTask; +/** + * Alias of `flatMapIOEither`. + * + * Less strict version of [`chainIOEitherK`](#chainioeitherk). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category legacy + * @since 2.6.1 + */ +exports.chainIOEitherKW = exports.flatMapIOEither; +/** + * Alias of `flatMapIOEither`. + * + * @category legacy + * @since 2.4.0 + */ +exports.chainIOEitherK = exports.flatMapIOEither; +function taskify(f) { + return function () { + var args = Array.prototype.slice.call(arguments); + return function () { + return new Promise(function (resolve) { + var cbResolver = function (e, r) { return (e != null ? resolve(_.left(e)) : resolve(_.right(r))); }; + f.apply(null, args.concat(cbResolver)); + }); + }; + }; +} +/** + * Make sure that a resource is cleaned up in the event of an exception (\*). The release action is called regardless of + * whether the body action throws (\*) or returns. + * + * (\*) i.e. returns a `Left` + * + * @since 2.0.0 + */ +var bracket = function (acquire, use, release) { return (0, exports.bracketW)(acquire, use, release); }; +exports.bracket = bracket; +/** + * Less strict version of [`bracket`](#bracket). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @since 2.12.0 + */ +var bracketW = function (acquire, use, release) { + return (0, exports.flatMap)(acquire, function (a) { return T.flatMap(use(a), function (e) { return (0, exports.flatMap)(release(a, e), function () { return T.of(e); }); }); }); +}; +exports.bracketW = bracketW; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.bindW = exports.bind; +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.ApplyPar); +/** + * Less strict version of [`apS`](#aps). + * + * The `W` suffix (short for **W**idening) means that the error types will be merged. + * + * @category do notation + * @since 2.8.0 + */ +exports.apSW = exports.apS; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(E.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (ebs) { + return _.isLeft(ebs) + ? acc + : f(i + 1, a)().then(function (eb) { + if (_.isLeft(eb)) { + return eb; + } + ebs.right.push(eb.right); + return ebs; + }); + }); + }, f(0, _.head(as))().then(E.map(_.singleton))); + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +var traverseSeqArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); }; +exports.traverseSeqArray = traverseSeqArray; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.9.0 + */ +exports.sequenceSeqArray = +/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.6.0 + */ +exports.chainW = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chainFirst = exports.tap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.8.0 + */ +exports.chainFirstW = exports.tap; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirst = exports.tapError; +/** + * Alias of `tapError`. + * + * @category legacy + * @since 2.11.0 + */ +exports.orElseFirstW = exports.tapError; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEither` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.taskEither = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + map: _map, + of: exports.of, + ap: _apPar, + chain: exports.flatMap, + alt: _alt, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError +}; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEitherSeq` + * (where `TE` is from `import TE from 'fp-ts/TaskEither'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.taskEitherSeq = { + URI: exports.URI, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + map: _map, + of: exports.of, + ap: _apSeq, + chain: exports.flatMap, + alt: _alt, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplySemigroup = +/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.ApplySeq); +/** + * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.getApplyMonoid = +/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativeSeq); +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var getSemigroup = function (S) { + return (0, Apply_1.getApplySemigroup)(T.ApplySeq)(E.getSemigroup(S)); +}; +exports.getSemigroup = getSemigroup; +/** + * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +function getTaskValidation(SE) { + var applicativeTaskValidation = getApplicativeTaskValidation(T.ApplicativePar, SE); + var altTaskValidation = getAltTaskValidation(SE); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: applicativeTaskValidation.ap, + of: exports.of, + chain: exports.flatMap, + bimap: exports.mapBoth, + mapLeft: exports.mapError, + alt: altTaskValidation.alt, + fromIO: exports.fromIO, + fromTask: exports.fromTask, + throwError: exports.throwError + }; +} diff --git a/node_modules/fp-ts/lib/TaskOption.d.ts b/node_modules/fp-ts/lib/TaskOption.d.ts new file mode 100644 index 0000000..09ec64a --- /dev/null +++ b/node_modules/fp-ts/lib/TaskOption.d.ts @@ -0,0 +1,767 @@ +/** + * @since 2.10.0 + */ +import { Alt1 } from './Alt' +import { Alternative1 } from './Alternative' +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import * as chainable from './Chain' +import { Compactable1 } from './Compactable' +import { Either } from './Either' +import { Filterable1 } from './Filterable' +import { FromEither1 } from './FromEither' +import { FromIO1 } from './FromIO' +import { FromTask1 } from './FromTask' +import { LazyArg } from './function' +import { Functor1 } from './Functor' +import { IO } from './IO' +import { Monad1 } from './Monad' +import { MonadIO1 } from './MonadIO' +import { MonadTask1 } from './MonadTask' +import * as O from './Option' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Separated } from './Separated' +import * as T from './Task' +import { TaskEither } from './TaskEither' +import { Zero1 } from './Zero' +import Task = T.Task +import Option = O.Option +/** + * @category model + * @since 2.10.0 + */ +export interface TaskOption<A> extends Task<Option<A>> {} +/** + * @category constructors + * @since 2.10.0 + */ +export declare const some: <A>(a: A) => TaskOption<A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>): (a: A) => TaskOption<B> + <A>(predicate: Predicate<A>): <B extends A>(b: B) => TaskOption<B> + <A>(predicate: Predicate<A>): (a: A) => TaskOption<A> +} +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromOption: <A>(fa: Option<A>) => TaskOption<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromEither: <A>(fa: Either<unknown, A>) => TaskOption<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromIO: <A>(fa: IO<A>) => TaskOption<A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromTask: <A>(fa: Task<A>) => TaskOption<A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromTaskEither: <A>(fa: TaskEither<unknown, A>) => TaskOption<A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: TaskOption<A>) => Task<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <B, A, C>(onNone: () => B, onSome: (a: A) => C) => (ma: TaskOption<A>) => Task<B | C> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <B, A>(onNone: () => Task<B>, onSome: (a: A) => Task<B>) => (ma: TaskOption<A>) => Task<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const fold: <B, A>(onNone: () => Task<B>, onSome: (a: A) => Task<B>) => (ma: TaskOption<A>) => Task<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <B, C, A>( + onNone: () => Task<B>, + onSome: (a: A) => Task<C> +) => (ma: TaskOption<A>) => Task<B | C> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <B, C, A>( + onNone: () => Task<B>, + onSome: (a: A) => Task<C> +) => (ma: TaskOption<A>) => Task<B | C> +/** + * @category error handling + * @since 2.10.0 + */ +export declare const getOrElse: <A>(onNone: LazyArg<Task<A>>) => (fa: TaskOption<A>) => Task<A> +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const getOrElseW: <B>(onNone: LazyArg<Task<B>>) => <A>(ma: TaskOption<A>) => Task<A | B> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromNullable: <A>(a: A) => TaskOption<NonNullable<A>> +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Option` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatch: <A>(f: LazyArg<Promise<A>>) => TaskOption<A> +/** + * Converts a function returning a `Promise` to one returning a `TaskOption`. + * + * @category interop + * @since 2.10.0 + */ +export declare const tryCatchK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Promise<B> +) => (...a: A) => TaskOption<B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromNullableK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => B | null | undefined +) => (...a: A) => TaskOption<NonNullable<B>> +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainNullableK: <A, B>( + f: (a: A) => B | null | undefined +) => (ma: TaskOption<A>) => TaskOption<NonNullable<B>> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Option<B> +) => (...a: A) => TaskOption<B> +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const chainOptionK: <A, B>(f: (a: A) => Option<B>) => (ma: TaskOption<A>) => TaskOption<B> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: TaskOption<A>) => TaskOption<B> +/** + * @since 2.10.0 + */ +export declare const ap: <A>(fa: TaskOption<A>) => <B>(fab: TaskOption<(a: A) => B>) => TaskOption<B> +/** + * @category constructors + * @since 2.10.0 + */ +export declare const of: <A>(a: A) => TaskOption<A> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => TaskOption<B>): (ma: TaskOption<A>) => TaskOption<B> + <A, B>(ma: TaskOption<A>, f: (a: A) => TaskOption<B>): TaskOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapIO: { + <A, B>(f: (a: A) => IO<B>): (self: TaskOption<A>) => TaskOption<B> + <A, B>(self: TaskOption<A>, f: (a: A) => IO<B>): TaskOption<B> +} +/** + * @category sequencing + * @since 2.16.0 + */ +export declare const flatMapTask: { + <A, B>(f: (a: A) => Task<B>): (self: TaskOption<A>) => TaskOption<B> + <A, B>(self: TaskOption<A>, f: (a: A) => Task<B>): TaskOption<B> +} +/** + * @category sequencing + * @since 2.10.0 + */ +export declare const flatten: <A>(mma: TaskOption<TaskOption<A>>) => TaskOption<A> +/** + * @category error handling + * @since 2.10.0 + */ +export declare const alt: <A>(second: LazyArg<TaskOption<A>>) => (first: TaskOption<A>) => TaskOption<A> +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +export declare const altW: <B>(second: LazyArg<TaskOption<B>>) => <A>(first: TaskOption<A>) => TaskOption<A | B> +/** + * @since 2.10.0 + */ +export declare const zero: <A>() => TaskOption<A> +/** + * @category constructors + * @since 2.10.0 + */ +export declare const none: TaskOption<never> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const compact: Compactable1<URI>['compact'] +/** + * @category filtering + * @since 2.10.0 + */ +export declare const separate: Compactable1<URI>['separate'] +/** + * @category filtering + * @since 2.10.0 + */ +export declare const filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: TaskOption<A>) => TaskOption<B> + <A>(predicate: Predicate<A>): <B extends A>(fb: TaskOption<B>) => TaskOption<B> + <A>(predicate: Predicate<A>): (fa: TaskOption<A>) => TaskOption<A> +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const filterMap: <A, B>(f: (a: A) => Option<B>) => (fga: TaskOption<A>) => TaskOption<B> +/** + * @category filtering + * @since 2.10.0 + */ +export declare const partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fb: TaskOption<A>) => Separated<TaskOption<A>, TaskOption<B>> + <A>(predicate: Predicate<A>): <B extends A>(fb: TaskOption<B>) => Separated<TaskOption<B>, TaskOption<B>> + <A>(predicate: Predicate<A>): (fa: TaskOption<A>) => Separated<TaskOption<A>, TaskOption<A>> +} +/** + * @category filtering + * @since 2.10.0 + */ +export declare const partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> +) => (fa: TaskOption<A>) => Separated<TaskOption<B>, TaskOption<C>> +/** + * @category type lambdas + * @since 2.10.0 + */ +export declare const URI = 'TaskOption' +/** + * @category type lambdas + * @since 2.10.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: TaskOption<A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Functor: Functor1<URI> +/** + * Maps the `Some` value of this `TaskOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const as: { + <A>(a: A): <_>(self: TaskOption<_>) => TaskOption<A> + <_, A>(self: TaskOption<_>, a: A): TaskOption<A> +} +/** + * Maps the `Some` value of this `TaskOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +export declare const asUnit: <_>(self: TaskOption<_>) => TaskOption<void> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <B>(fab: import('./HKT').Kind<'TaskOption', (a: A) => B>) => import('./HKT').Kind<'TaskOption', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplyPar: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.10.0 + */ +export declare const apFirst: <B>( + second: TaskOption<B> +) => <A>(first: import('./HKT').Kind<'TaskOption', A>) => import('./HKT').Kind<'TaskOption', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.10.0 + */ +export declare const apSecond: <B>( + second: TaskOption<B> +) => <A>(first: import('./HKT').Kind<'TaskOption', A>) => import('./HKT').Kind<'TaskOption', B> +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplicativePar: Applicative1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplySeq: Apply1<URI> +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +export declare const ApplicativeSeq: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: chainable.Chain1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromEither: FromEither1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +export declare const tap: { + <A, _>(self: TaskOption<A>, f: (a: A) => TaskOption<_>): TaskOption<A> + <A, _>(f: (a: A) => TaskOption<_>): (self: TaskOption<A>) => TaskOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * TO.of(value), + * TO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * async function test() { + * assert.deepStrictEqual(await compute(1)(), O.of(1)) + * assert.deepStrictEqual(await compute(-1)(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapEither: { + <A, E, _>(f: (a: A) => Either<E, _>): (self: TaskOption<A>) => TaskOption<A> + <A, E, _>(self: TaskOption<A>, f: (a: A) => Either<E, _>): TaskOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TO.tapIO( + * TO.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TO.none as TO.TaskOption<string>, + * TO.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), O.of(1)) + * assert.deepStrictEqual(await effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapIO: { + <A, _>(f: (a: A) => IO<_>): (self: TaskOption<A>) => TaskOption<A> + <A, _>(self: TaskOption<A>, f: (a: A) => IO<_>): TaskOption<A> +} +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as T from 'fp-ts/Task' + * + * const effect = TO.tapIO( + * TO.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), O.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +export declare const tapTask: { + <A, _>(f: (a: A) => Task<_>): (self: TaskOption<A>) => TaskOption<A> + <A, _>(self: TaskOption<A>, f: (a: A) => Task<_>): TaskOption<A> +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const Alt: Alt1<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Zero: Zero1<URI> +/** + * @category do notation + * @since 2.11.0 + */ +export declare const guard: (b: boolean) => import('./HKT').Kind<'TaskOption', void> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Alternative: Alternative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Monad: Monad1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadIO: MonadIO1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const MonadTask: MonadTask1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Compactable: Compactable1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Filterable: Filterable1<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => IO<B>) => (...a: A) => TaskOption<B> +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainIOK: <A, B>(f: (a: A) => IO<B>) => (first: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstIOK: <A, B>(f: (a: A) => IO<B>) => (first: TaskOption<A>) => TaskOption<A> +/** + * @category lifting + * @since 2.12.0 + */ +export declare const fromEitherK: <E, A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => Either<E, B> +) => (...a: A) => TaskOption<B> +/** + * @category sequencing + * @since 2.12.0 + */ +export declare const chainEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +export declare const chainFirstEitherK: <E, A, B>(f: (a: A) => Either<E, B>) => (ma: TaskOption<A>) => TaskOption<A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => (...a: A) => TaskOption<B> +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainTaskK: <A, B>(f: (a: A) => T.Task<B>) => (first: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirstTaskK: <A, B>(f: (a: A) => T.Task<B>) => (first: TaskOption<A>) => TaskOption<A> +/** + * @category do notation + * @since 2.10.0 + */ +export declare const Do: TaskOption<{}> +/** + * @category do notation + * @since 2.10.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: import('./HKT').Kind<'TaskOption', A>) => import('./HKT').Kind<'TaskOption', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => ( + fa: import('./HKT').Kind<'TaskOption', A> +) => import('./HKT').Kind<'TaskOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.10.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => import('./HKT').Kind<'TaskOption', B> +) => ( + ma: import('./HKT').Kind<'TaskOption', A> +) => import('./HKT').Kind<'TaskOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.10.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: TaskOption<B> +) => ( + fa: import('./HKT').Kind<'TaskOption', A> +) => import('./HKT').Kind<'TaskOption', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.11.0 + */ +export declare const ApT: TaskOption<readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskOption<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskOption<ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseArray: <A, B>( + f: (a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const sequenceArray: <A>(as: ReadonlyArray<TaskOption<A>>) => TaskOption<ReadonlyArray<A>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArrayWithIndex: <A, B>( + f: (index: number, a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const traverseSeqArray: <A, B>( + f: (a: A) => TaskOption<B> +) => (as: ReadonlyArray<A>) => TaskOption<ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +export declare const sequenceSeqArray: <A>(as: ReadonlyArray<TaskOption<A>>) => TaskOption<ReadonlyArray<A>> +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chain: <A, B>(f: (a: A) => TaskOption<B>) => (ma: TaskOption<A>) => TaskOption<B> +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.10.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => TaskOption<B>) => (first: TaskOption<A>) => TaskOption<A> diff --git a/node_modules/fp-ts/lib/TaskOption.js b/node_modules/fp-ts/lib/TaskOption.js new file mode 100644 index 0000000..15e01be --- /dev/null +++ b/node_modules/fp-ts/lib/TaskOption.js @@ -0,0 +1,902 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ApplySeq = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.URI = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.separate = exports.compact = exports.none = exports.zero = exports.altW = exports.alt = exports.flatten = exports.flatMapTask = exports.flatMapIO = exports.flatMap = exports.of = exports.ap = exports.map = exports.chainOptionK = exports.fromOptionK = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromTaskEither = exports.fromTask = exports.fromIO = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.some = void 0; +exports.chainFirst = exports.chain = exports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.Filterable = exports.Compactable = exports.MonadTask = exports.MonadIO = exports.Monad = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.tapTask = exports.tapIO = exports.tapEither = exports.tap = exports.FromTask = exports.FromIO = exports.FromEither = exports.Chain = exports.ApplicativeSeq = void 0; +var Apply_1 = require("./Apply"); +var chainable = __importStar(require("./Chain")); +var Compactable_1 = require("./Compactable"); +var Filterable_1 = require("./Filterable"); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var FromTask_1 = require("./FromTask"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var O = __importStar(require("./Option")); +var OT = __importStar(require("./OptionT")); +var T = __importStar(require("./Task")); +var Zero_1 = require("./Zero"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.10.0 + */ +exports.some = OT.some(T.Pointed); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromPredicate = OT.fromPredicate(T.Pointed); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromOption = T.of; +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromEither = OT.fromEither(T.Pointed); +/** + * @category conversions + * @since 2.10.0 + */ +var fromIO = function (ma) { return (0, exports.fromTask)(T.fromIO(ma)); }; +exports.fromIO = fromIO; +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromTask = OT.fromF(T.Functor); +/** + * @category conversions + * @since 2.11.0 + */ +exports.fromTaskEither = T.map(O.fromEither); +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = +/*#__PURE__*/ OT.match(T.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchE = +/*#__PURE__*/ OT.matchE(T.Chain); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchEW = exports.matchE; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchEW; +/** + * @category error handling + * @since 2.10.0 + */ +exports.getOrElse = OT.getOrElse(T.Monad); +/** + * Less strict version of [`getOrElse`](#getorelse). + * + * The `W` suffix (short for **W**idening) means that the handler return type will be merged. + * + * @category error handling + * @since 2.10.0 + */ +exports.getOrElseW = exports.getOrElse; +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromNullable = OT.fromNullable(T.Pointed); +/** + * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Option` instead. + * + * See also [`tryCatchK`](#trycatchk). + * + * @category interop + * @since 2.10.0 + */ +var tryCatch = function (f) { + return function () { return __awaiter(void 0, void 0, void 0, function () { + var reason_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, f().then(_.some)]; + case 1: return [2 /*return*/, _a.sent()]; + case 2: + reason_1 = _a.sent(); + return [2 /*return*/, _.none]; + case 3: return [2 /*return*/]; + } + }); + }); }; +}; +exports.tryCatch = tryCatch; +/** + * Converts a function returning a `Promise` to one returning a `TaskOption`. + * + * @category interop + * @since 2.10.0 + */ +var tryCatchK = function (f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }); + }; +}; +exports.tryCatchK = tryCatchK; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromNullableK = OT.fromNullableK(T.Pointed); +/** + * @category sequencing + * @since 2.10.0 + */ +exports.chainNullableK = OT.chainNullableK(T.Monad); +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromOptionK = OT.fromOptionK(T.Pointed); +/** + * @category sequencing + * @since 2.10.0 + */ +exports.chainOptionK = +/*#__PURE__*/ OT.chainOptionK(T.Monad); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.10.0 + */ +exports.map = OT.map(T.Functor); +/** + * @since 2.10.0 + */ +exports.ap = OT.ap(T.ApplyPar); +/** + * @category constructors + * @since 2.10.0 + */ +exports.of = exports.some; +/** @internal */ +var _FromIO = { + fromIO: exports.fromIO +}; +/** @internal */ +var _FromTask = { + fromTask: exports.fromTask +}; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, OT.flatMap(T.Monad)); +/** @internal */ +var _FlatMap = { + flatMap: exports.flatMap +}; +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap); +/** + * @category sequencing + * @since 2.16.0 + */ +exports.flatMapTask = _.flatMapTask(_FromTask, _FlatMap); +/** + * @category sequencing + * @since 2.10.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * @category error handling + * @since 2.10.0 + */ +exports.alt = OT.alt(T.Monad); +/** + * Less strict version of [`alt`](#alt). + * + * The `W` suffix (short for **W**idening) means that the return types will be merged. + * + * @category error handling + * @since 2.10.0 + */ +exports.altW = exports.alt; +/** + * @since 2.10.0 + */ +exports.zero = OT.zero(T.Pointed); +/** + * @category constructors + * @since 2.10.0 + */ +exports.none = (0, exports.zero)(); +/** + * @category filtering + * @since 2.10.0 + */ +exports.compact = (0, Compactable_1.compact)(T.Functor, O.Compactable); +/** + * @category filtering + * @since 2.10.0 + */ +exports.separate = (0, Compactable_1.separate)(T.Functor, O.Compactable, O.Functor); +/** + * @category filtering + * @since 2.10.0 + */ +exports.filter = (0, Filterable_1.filter)(T.Functor, O.Filterable); +/** + * @category filtering + * @since 2.10.0 + */ +exports.filterMap = +/*#__PURE__*/ (0, Filterable_1.filterMap)(T.Functor, O.Filterable); +/** + * @category filtering + * @since 2.10.0 + */ +exports.partition = (0, Filterable_1.partition)(T.Functor, O.Filterable); +/** + * @category filtering + * @since 2.10.0 + */ +exports.partitionMap = (0, Filterable_1.partitionMap)(T.Functor, O.Filterable); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); }; +/* istanbul ignore next */ +var _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); }; +/* istanbul ignore next */ +var _filter = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); +}; +/* istanbul ignore next */ +var _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); }; +/* istanbul ignore next */ +var _partition = function (fa, predicate) { + return (0, function_1.pipe)(fa, (0, exports.partition)(predicate)); +}; +/* istanbul ignore next */ +var _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); }; +/** + * @category type lambdas + * @since 2.10.0 + */ +exports.URI = 'TaskOption'; +/** + * @category instances + * @since 2.10.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * Maps the `Some` value of this `TaskOption` to the specified constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor)); +/** + * Maps the `Some` value of this `TaskOption` to the void constant value. + * + * @category mapping + * @since 2.16.0 + */ +exports.asUnit = (0, Functor_1.asUnit)(exports.Functor); +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplyPar = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.10.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.10.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar); +/** + * Runs computations in parallel. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplicativePar = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +var _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplySeq = { + URI: exports.URI, + map: _map, + ap: _apSeq +}; +/** + * Runs computations sequentially. + * + * @category instances + * @since 2.10.0 + */ +exports.ApplicativeSeq = { + URI: exports.URI, + map: _map, + ap: _apSeq, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.15.0 + */ +exports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as E from 'fp-ts/Either' + * + * const compute = (value: number) => pipe( + * TO.of(value), + * TO.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')), + * ) + * + * async function test() { + * assert.deepStrictEqual(await compute(1)(), O.of(1)) + * assert.deepStrictEqual(await compute(-1)(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import { pipe } from 'fp-ts/function' + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as Console from 'fp-ts/Console' + * + * + * // Will produce `Hello, fp-ts` to the stdout + * const effectA = TO.tapIO( + * TO.of(1), + * (value) => Console.log(`Hello, ${value}`) + * ) + * + * // No output to the stdout + * const effectB = pipe( + * TO.none as TO.TaskOption<string>, + * TO.tapIO((value) => Console.log(`Hello, ${value}`)) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effectA(), O.of(1)) + * assert.deepStrictEqual(await effectB(), O.none) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain)); +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @example + * import * as TO from 'fp-ts/TaskOption' + * import * as O from 'fp-ts/Option' + * import * as T from 'fp-ts/Task' + * + * const effect = TO.tapIO( + * TO.of(1), + * (value) => T.of(value + 1) + * ) + * + * async function test() { + * assert.deepStrictEqual(await effect(), O.of(1)) + * } + * + * test() + * + * @category combinators + * @since 2.16.0 + */ +exports.tapTask = (0, function_1.dual)(2, (0, FromTask_1.tapTask)(exports.FromTask, exports.Chain)); +/** + * @category instances + * @since 2.10.0 + */ +exports.Alt = { + URI: exports.URI, + map: _map, + alt: _alt +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.Zero = { + URI: exports.URI, + zero: exports.zero +}; +/** + * @category do notation + * @since 2.11.0 + */ +exports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed); +/** + * @category instances + * @since 2.10.0 + */ +exports.Alternative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + alt: _alt, + zero: exports.zero +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadIO = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.MonadTask = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Compactable = { + URI: exports.URI, + compact: exports.compact, + separate: exports.separate +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Filterable = { + URI: exports.URI, + map: _map, + compact: exports.compact, + separate: exports.separate, + filter: _filter, + filterMap: _filterMap, + partition: _partition, + partitionMap: _partitionMap +}; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromIOK = +/*#__PURE__*/ (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * Alias of `flatMapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainIOK = exports.flatMapIO; +/** + * Alias of `tapIO`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstIOK = exports.tapIO; +/** + * @category lifting + * @since 2.12.0 + */ +exports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither); +/** + * @category sequencing + * @since 2.12.0 + */ +exports.chainEitherK = +/*#__PURE__*/ (0, FromEither_1.chainEitherK)(exports.FromEither, exports.Chain); +/** + * Alias of `tapEither`. + * + * @category legacy + * @since 2.12.0 + */ +exports.chainFirstEitherK = exports.tapEither; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromTaskK = +/*#__PURE__*/ (0, FromTask_1.fromTaskK)(exports.FromTask); +/** + * Alias of `flatMapTask`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainTaskK = exports.flatMapTask; +/** + * Alias of `tapTask`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirstTaskK = exports.tapTask; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.10.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.10.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.10.0 + */ +exports.bind = chainable.bind(exports.Chain); +/** + * @category do notation + * @since 2.10.0 + */ +exports.apS = (0, Apply_1.apS)(exports.ApplyPar); +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (f) { + return (0, function_1.flow)(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(O.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK))); +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (obs) { + return _.isNone(obs) + ? acc + : f(i + 1, a)().then(function (ob) { + if (_.isNone(ob)) { + return ob; + } + obs.value.push(ob.value); + return obs; + }); + }); + }, f(0, _.head(as))().then(O.map(_.singleton))); + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverse(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +var traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); }; +exports.traverseArray = traverseArray; +/** + * Equivalent to `ReadonlyArray#sequence(Applicative)`. + * + * @category traversing + * @since 2.10.0 + */ +exports.sequenceArray = +/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity); +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +exports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +var traverseSeqArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); }; +exports.traverseSeqArray = traverseSeqArray; +/** + * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`. + * + * @category traversing + * @since 2.10.0 + */ +exports.sequenceSeqArray = +/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity); +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chain = exports.flatMap; +/** + * Alias of `tap`. + * + * @category legacy + * @since 2.10.0 + */ +exports.chainFirst = exports.tap; diff --git a/node_modules/fp-ts/lib/TaskThese.d.ts b/node_modules/fp-ts/lib/TaskThese.d.ts new file mode 100644 index 0000000..fcd0953 --- /dev/null +++ b/node_modules/fp-ts/lib/TaskThese.d.ts @@ -0,0 +1,401 @@ +/** + * @since 2.4.0 + */ +import { Applicative2C } from './Applicative' +import { Apply1, Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { Either } from './Either' +import { FromEither2 } from './FromEither' +import { FromIO2 } from './FromIO' +import { FromTask2 } from './FromTask' +import { FromThese2 } from './FromThese' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { IO } from './IO' +import { IOEither } from './IOEither' +import { Monad2C } from './Monad' +import { MonadTask2C } from './MonadTask' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as T from './Task' +import * as TH from './These' +import These = TH.These +import Task = T.Task +/** + * @category model + * @since 2.4.0 + */ +export interface TaskThese<E, A> extends Task<These<E, A>> {} +/** + * @category constructors + * @since 2.4.0 + */ +export declare const left: <E = never, A = never>(e: E) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const right: <E = never, A = never>(a: A) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const both: <E, A>(e: E, a: A) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const rightTask: <E = never, A = never>(ma: Task<A>) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const leftTask: <E = never, A = never>(me: Task<E>) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const rightIO: <E = never, A = never>(ma: IO<A>) => TaskThese<E, A> +/** + * @category constructors + * @since 2.4.0 + */ +export declare const leftIO: <E = never, A = never>(me: IO<E>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromEither: <E, A>(fa: Either<E, A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.11.0 + */ +export declare const fromThese: <E, A>(fa: These<E, A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromIO: <A, E = never>(fa: IO<A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.4.0 + */ +export declare const fromIOEither: <E, A>(fa: IOEither<E, A>) => TaskThese<E, A> +/** + * @category conversions + * @since 2.7.0 + */ +export declare const fromTask: <A, E = never>(fa: Task<A>) => TaskThese<E, A> +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (fa: TaskThese<E, A>) => Task<B> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C, D>( + onLeft: (e: E) => B, + onRight: (a: A) => C, + onBoth: (e: E, a: A) => D +) => (ma: TaskThese<E, A>) => T.Task<B | C | D> +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchE: <E, B, A>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B>, + onBoth: (e: E, a: A) => Task<B> +) => (fa: TaskThese<E, A>) => Task<B> +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.4.0 + */ +export declare const fold: <E, B, A>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<B>, + onBoth: (e: E, a: A) => Task<B> +) => (fa: TaskThese<E, A>) => Task<B> +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchEW: <E, B, A, C, D>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C>, + onBoth: (e: E, a: A) => Task<D> +) => (fa: TaskThese<E, A>) => Task<B | C | D> +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C, D>( + onLeft: (e: E) => Task<B>, + onRight: (a: A) => Task<C>, + onBoth: (e: E, a: A) => Task<D> +) => (fa: TaskThese<E, A>) => Task<B | C | D> +/** + * @since 2.4.0 + */ +export declare const swap: <E, A>(fa: TaskThese<E, A>) => TaskThese<A, E> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.4.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: TaskThese<E, A>) => TaskThese<E, B> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.4.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: TaskThese<E, A>) => TaskThese<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.4.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: TaskThese<E, A>) => TaskThese<G, A> +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <E = never, A = never>(a: A) => TaskThese<E, A> +/** + * @category type lambdas + * @since 2.4.0 + */ +export declare const URI = 'TaskThese' +/** + * @category type lambdas + * @since 2.4.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: TaskThese<E, A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApply: <E>(A: Apply1<T.URI>, S: Semigroup<E>) => Apply2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare function getApplicative<E>(A: Apply1<T.URI>, S: Semigroup<E>): Applicative2C<URI, E> +/** + * @category instances + * @since 2.10.0 + */ +export declare function getChain<E>(S: Semigroup<E>): Chain2C<URI, E> +/** + * @category instances + * @since 2.4.0 + */ +export declare function getMonad<E>(S: Semigroup<E>): Monad2C<URI, E> & MonadTask2C<URI, E> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'TaskThese', E, (a: A) => B>) => import('./HKT').Kind2<'TaskThese', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => TaskThese<E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => TaskThese<E, B> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromPredicate: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => TaskThese<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => TaskThese<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => TaskThese<E, A> +} +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromThese: FromThese2<URI> +/** + * @category lifting + * @since 2.11.0 + */ +export declare const fromTheseK: <A extends ReadonlyArray<unknown>, E, B>( + f: (...a: A) => TH.These<E, B> +) => (...a: A) => TaskThese<E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromIO: FromIO2<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromIOK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => IO<B> +) => <E = never>(...a: A) => TaskThese<E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromTask: FromTask2<URI> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromTaskK: <A extends ReadonlyArray<unknown>, B>( + f: (...a: A) => T.Task<B> +) => <E = never>(...a: A) => TaskThese<E, B> +/** + * @since 2.10.0 + */ +export declare const toTuple2: <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: TaskThese<E, A>) => Task<readonly [E, A]> +/** + * @since 2.11.0 + */ +export declare const ApT: TaskThese<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>( + f: (index: number, a: A) => TaskThese<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskThese<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>(f: (index: number, a: A) => TaskThese<E, B>) => (as: ReadonlyArray<A>) => TaskThese<E, ReadonlyArray<B>> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndexSeq: <E>( + S: Semigroup<E> +) => <A, B>( + f: (index: number, a: A) => TaskThese<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => TaskThese<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndexSeq: <E>( + S: Semigroup<E> +) => <A, B>(f: (index: number, a: A) => TaskThese<E, B>) => (as: ReadonlyArray<A>) => TaskThese<E, ReadonlyArray<B>> +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const functorTaskThese: Functor2<URI> +/** + * Use [`Bifunctor`](#bifunctor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +export declare const bifunctorTaskThese: Bifunctor2<URI> +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const toTuple: <E, A>(e: E, a: A) => (fa: TaskThese<E, A>) => Task<[E, A]> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TT.Functor` instead of `TT.taskThese` + * (where `TT` is from `import TT from 'fp-ts/TaskThese'`) + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const taskThese: Functor2<URI> & Bifunctor2<URI> +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare const getSemigroup: <E, A>(SE: Semigroup<E>, SA: Semigroup<A>) => Semigroup<TaskThese<E, A>> diff --git a/node_modules/fp-ts/lib/TaskThese.js b/node_modules/fp-ts/lib/TaskThese.js new file mode 100644 index 0000000..2a2789b --- /dev/null +++ b/node_modules/fp-ts/lib/TaskThese.js @@ -0,0 +1,493 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getSemigroup = exports.taskThese = exports.toTuple = exports.bifunctorTaskThese = exports.functorTaskThese = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.toTuple2 = exports.fromTaskK = exports.FromTask = exports.fromIOK = exports.FromIO = exports.fromTheseK = exports.FromThese = exports.fromPredicate = exports.fromOptionK = exports.fromOption = exports.FromEither = exports.Bifunctor = exports.Pointed = exports.flap = exports.Functor = exports.getApply = exports.URI = exports.of = exports.mapLeft = exports.bimap = exports.map = exports.swap = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromTask = exports.fromIOEither = exports.fromIO = exports.fromThese = exports.fromEither = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.both = exports.right = exports.left = void 0; +exports.getApplicative = getApplicative; +exports.getChain = getChain; +exports.getMonad = getMonad; +var Apply_1 = require("./Apply"); +var FromEither_1 = require("./FromEither"); +var FromIO_1 = require("./FromIO"); +var FromTask_1 = require("./FromTask"); +var FromThese_1 = require("./FromThese"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +var T = __importStar(require("./Task")); +var TH = __importStar(require("./These")); +var TT = __importStar(require("./TheseT")); +/** + * @category constructors + * @since 2.4.0 + */ +exports.left = TT.left(T.Pointed); +/** + * @category constructors + * @since 2.4.0 + */ +exports.right = TT.right(T.Pointed); +/** + * @category constructors + * @since 2.4.0 + */ +exports.both = TT.both(T.Pointed); +/** + * @category constructors + * @since 2.4.0 + */ +exports.rightTask = TT.rightF(T.Functor); +/** + * @category constructors + * @since 2.4.0 + */ +exports.leftTask = TT.leftF(T.Functor); +/** + * @category constructors + * @since 2.4.0 + */ +exports.rightIO = (0, function_1.flow)(T.fromIO, exports.rightTask); +/** + * @category constructors + * @since 2.4.0 + */ +exports.leftIO = (0, function_1.flow)(T.fromIO, exports.leftTask); +// ------------------------------------------------------------------------------------- +// conversions +// ------------------------------------------------------------------------------------- +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromEither = T.of; +/** + * @category conversions + * @since 2.11.0 + */ +exports.fromThese = T.of; +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromIO = exports.rightIO; +/** + * @category conversions + * @since 2.4.0 + */ +exports.fromIOEither = T.fromIO; +/** + * @category conversions + * @since 2.7.0 + */ +exports.fromTask = exports.rightTask; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = TT.match(T.Functor); +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchW = exports.match; +/** + * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchE = TT.matchE(T.Monad); +/** + * Alias of [`matchE`](#matche). + * + * @category pattern matching + * @since 2.4.0 + */ +exports.fold = exports.matchE; +/** + * Less strict version of [`matchE`](#matche). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +exports.matchEW = exports.fold; +/** + * Alias of [`matchEW`](#matchew). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchEW; +/** + * @since 2.4.0 + */ +exports.swap = TT.swap(T.Functor); +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.4.0 + */ +exports.map = TT.map(T.Functor); +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.4.0 + */ +exports.bimap = +/*#__PURE__*/ TT.bimap(T.Functor); +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.4.0 + */ +exports.mapLeft = TT.mapLeft(T.Functor); +/** + * @category constructors + * @since 2.7.0 + */ +exports.of = exports.right; +/** + * @category type lambdas + * @since 2.4.0 + */ +exports.URI = 'TaskThese'; +/** + * @category instances + * @since 2.10.0 + */ +var getApply = function (A, S) { + var ap = TT.ap(A, S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, ap(fa)); } + }; +}; +exports.getApply = getApply; +/** + * @category instances + * @since 2.7.0 + */ +function getApplicative(A, S) { + var ap = (0, exports.getApply)(A, S).ap; + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: ap, + of: exports.of + }; +} +/** + * @category instances + * @since 2.10.0 + */ +function getChain(S) { + var A = (0, exports.getApply)(T.ApplicativePar, S); + var chain = TT.chain(T.Monad, S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: function (ma, f) { return (0, function_1.pipe)(ma, chain(f)); } + }; +} +/** + * @category instances + * @since 2.4.0 + */ +function getMonad(S) { + var A = getApplicative(T.ApplicativePar, S); + var C = getChain(S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + of: exports.of, + chain: C.chain, + fromIO: exports.fromIO, + fromTask: exports.fromTask + }; +} +/** + * @category instances + * @since 2.10.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: exports.fromEither +}; +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromOptionK = +/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category instances + * @since 2.11.0 + */ +exports.FromThese = { + URI: exports.URI, + fromThese: exports.fromThese +}; +/** + * @category lifting + * @since 2.11.0 + */ +exports.fromTheseK = (0, FromThese_1.fromTheseK)(exports.FromThese); +/** + * @category instances + * @since 2.10.0 + */ +exports.FromIO = { + URI: exports.URI, + fromIO: exports.fromIO +}; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO); +/** + * @category instances + * @since 2.10.0 + */ +exports.FromTask = { + URI: exports.URI, + fromIO: exports.fromIO, + fromTask: exports.fromTask +}; +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromTaskK = (0, FromTask_1.fromTaskK)(exports.FromTask); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.10.0 + */ +exports.toTuple2 = +/*#__PURE__*/ TT.toTuple2(T.Functor); +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (S) { + var g = TH.traverseReadonlyNonEmptyArrayWithIndex(S); + return function (f) { return (0, function_1.flow)(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(g(function_1.SK))); }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativePar, S))`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (S) { + return function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(S)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; + }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndexSeq = function (S) { + return function (f) { + return function (as) { + return function () { + return _.tail(as).reduce(function (acc, a, i) { + return acc.then(function (ebs) { + return TH.isLeft(ebs) + ? acc + : f(i + 1, a)().then(function (eb) { + if (TH.isLeft(eb)) { + return eb; + } + if (TH.isBoth(eb)) { + var right_1 = ebs.right; + right_1.push(eb.right); + return TH.isBoth(ebs) ? TH.both(S.concat(ebs.left, eb.left), right_1) : TH.both(eb.left, right_1); + } + ebs.right.push(eb.right); + return ebs; + }); + }); + }, f(0, _.head(as))().then(TH.map(_.singleton))); + }; + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(T.ApplicativeSeq, S))`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndexSeq = function (S) { + return function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(S)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; + }; +}; +exports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.functorTaskThese = { + URI: exports.URI, + map: _map +}; +/** + * Use [`Bifunctor`](#bifunctor) instead. + * + * @category zone of death + * @since 2.7.0 + * @deprecated + */ +exports.bifunctorTaskThese = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +var toTuple = function (e, a) { + return (0, exports.toTuple2)(function () { return e; }, function () { return a; }); +}; +exports.toTuple = toTuple; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `TT.Functor` instead of `TT.taskThese` + * (where `TT` is from `import TT from 'fp-ts/TaskThese'`) + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +exports.taskThese = { + URI: exports.URI, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead. + * + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +var getSemigroup = function (SE, SA) { + return (0, Apply_1.getApplySemigroup)(T.ApplySeq)(TH.getSemigroup(SE, SA)); +}; +exports.getSemigroup = getSemigroup; diff --git a/node_modules/fp-ts/lib/These.d.ts b/node_modules/fp-ts/lib/These.d.ts new file mode 100644 index 0000000..2021400 --- /dev/null +++ b/node_modules/fp-ts/lib/These.d.ts @@ -0,0 +1,468 @@ +/** + * A data structure providing "inclusive-or" as opposed to `Either`'s "exclusive-or". + * + * If you interpret `Either<E, A>` as suggesting the computation may either fail or succeed (exclusively), then + * `These<E, A>` may fail, succeed, or do both at the same time. + * + * There are a few ways to interpret the both case: + * + * - You can think of a computation that has a non-fatal error. + * - You can think of a computation that went as far as it could before erroring. + * - You can think of a computation that keeps track of errors as it completes. + * + * Another way you can think of `These<E, A>` is saying that we want to handle `E` kind of data, `A` kind of data, or + * both `E` and `A` kind of data at the same time. This is particularly useful when it comes to displaying UI's. + * + * (description adapted from https://package.elm-lang.org/packages/joneshf/elm-these) + * + * Adapted from https://github.com/purescript-contrib/purescript-these + * + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { Either, Left, Right } from './Either' +import { Eq } from './Eq' +import { Foldable2 } from './Foldable' +import { FromEither2 } from './FromEither' +import { FromThese2 } from './FromThese' +import { LazyArg } from './function' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { MonadThrow2C } from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Pointed2 } from './Pointed' +import { Predicate } from './Predicate' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import { Show } from './Show' +import { PipeableTraverse2, Traversable2 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export interface Both<E, A> { + readonly _tag: 'Both' + readonly left: E + readonly right: A +} +/** + * @category model + * @since 2.0.0 + */ +export type These<E, A> = Either<E, A> | Both<E, A> +/** + * Returns `true` if the these is an instance of `Left`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export declare const isLeft: <E>(fa: These<E, unknown>) => fa is Left<E> +/** + * Returns `true` if the these is an instance of `Right`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export declare const isRight: <A>(fa: These<unknown, A>) => fa is Right<A> +/** + * Returns `true` if the these is an instance of `Both`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +export declare function isBoth<E, A>(fa: These<E, A>): fa is Both<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function left<E = never, A = never>(left: E): These<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function right<E = never, A = never>(right: A): These<E, A> +/** + * @category constructors + * @since 2.0.0 + */ +export declare function both<E, A>(left: E, right: A): These<E, A> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <E, B, A, C, D>( + onLeft: (e: E) => B, + onRight: (a: A) => C, + onBoth: (e: E, a: A) => D +) => (fa: These<E, A>) => B | C | D +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <E, B, A, C, D>( + onLeft: (e: E) => B, + onRight: (a: A) => C, + onBoth: (e: E, a: A) => D +) => (fa: These<E, A>) => B | C | D +/** + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <E, A, B>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (fa: These<E, A>) => B +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +export declare const fold: <E, A, B>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (fa: These<E, A>) => B +/** + * @since 2.4.0 + */ +export declare const swap: <E, A>(fa: These<E, A>) => These<A, E> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getShow<E, A>(SE: Show<E>, SA: Show<A>): Show<These<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getEq<E, A>(EE: Eq<E>, EA: Eq<A>): Eq<These<E, A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getSemigroup<E, A>(SE: Semigroup<E>, SA: Semigroup<A>): Semigroup<These<E, A>> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApply: <E>(S: Semigroup<E>) => Apply2C<URI, E> +/** + * @category instances + * @since 2.7.0 + */ +export declare function getApplicative<E>(S: Semigroup<E>): Applicative2C<URI, E> +/** + * @category instances + * @since 2.10.0 + */ +export declare function getChain<E>(S: Semigroup<E>): Chain2C<URI, E> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getMonad<E>(S: Semigroup<E>): Monad2C<URI, E> & MonadThrow2C<URI, E> +/** + * Returns an `E` value if possible + * + * @example + * import { getLeft, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(both('a', 1)), some('a')) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getLeft<E, A>(fa: These<E, A>): Option<E> +/** + * Returns an `A` value if possible + * + * @example + * import { getRight, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRight(left('a')), none) + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(both('a', 1)), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getRight<E, A>(fa: These<E, A>): Option<A> +/** + * @example + * import { leftOrBoth, left, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(leftOrBoth('a')(none), left('a')) + * assert.deepStrictEqual(leftOrBoth('a')(some(1)), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +export declare function leftOrBoth<E>(e: E): <A>(ma: Option<A>) => These<E, A> +/** + * @example + * import { rightOrBoth, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(rightOrBoth(1)(none), right(1)) + * assert.deepStrictEqual(rightOrBoth(1)(some('a')), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +export declare function rightOrBoth<A>(a: A): <E>(me: Option<E>) => These<E, A> +/** + * Returns the `E` value if and only if the value is constructed with `Left` + * + * @example + * import { getLeftOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeftOnly(left('a')), some('a')) + * assert.deepStrictEqual(getLeftOnly(right(1)), none) + * assert.deepStrictEqual(getLeftOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getLeftOnly<E, A>(fa: These<E, A>): Option<E> +/** + * Returns the `A` value if and only if the value is constructed with `Right` + * + * @example + * import { getRightOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRightOnly(left('a')), none) + * assert.deepStrictEqual(getRightOnly(right(1)), some(1)) + * assert.deepStrictEqual(getRightOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +export declare function getRightOnly<E, A>(fa: These<E, A>): Option<A> +/** + * Takes a pair of `Option`s and attempts to create a `These` from them + * + * @example + * import { fromOptions, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromOptions(none, none), none) + * assert.deepStrictEqual(fromOptions(some('a'), none), some(left('a'))) + * assert.deepStrictEqual(fromOptions(none, some(1)), some(right(1))) + * assert.deepStrictEqual(fromOptions(some('a'), some(1)), some(both('a', 1))) + * + * @category conversions + * @since 2.0.0 + */ +export declare const fromOptions: <E, A>(fe: Option<E>, fa: Option<A>) => Option<These<E, A>> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: These<E, A>) => These<G, B> +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: These<E, A>) => These<G, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: These<E, A>) => These<E, B> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: These<E, A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: These<E, A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: These<E, A>) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category constructors + * @since 2.0.0 + */ +export declare const of: <E = never, A = never>(right: A) => These<E, A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'These' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: These<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'These', E, (a: A) => B>) => import('./HKT').Kind2<'These', E, B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.11.0 + */ +export declare const FromThese: FromThese2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const FromEither: FromEither2<URI> +/** + * @category lifting + * @since 2.13.0 + */ +export declare const fromPredicate: { + <A, B extends A, E>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => These<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): <B extends A>(b: B) => These<E, B> + <A, E>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => These<E, A> +} +/** + * @category conversions + * @since 2.10.0 + */ +export declare const fromOption: <E>(onNone: LazyArg<E>) => <A>(fa: Option<A>) => These<E, A> +/** + * @category lifting + * @since 2.10.0 + */ +export declare const fromOptionK: <E>( + onNone: LazyArg<E> +) => <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => These<E, B> +/** + * @since 2.11.0 + */ +export declare const elem: <A>(E: Eq<A>) => (a: A) => <E>(ma: These<E, A>) => boolean +/** + * @since 2.11.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: These<unknown, A>) => boolean +/** + * @example + * import { toTuple2, left, right, both } from 'fp-ts/These' + * + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(left('b')), ['b', 1]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(right(2)), ['a', 2]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(both('b', 2)), ['b', 2]) + * + * @category conversions + * @since 2.10.0 + */ +export declare const toTuple2: <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: These<E, A>) => readonly [E, A] +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const toTuple: <E, A>(e: E, a: A) => (fa: These<E, A>) => [E, A] +/** + * @since 2.11.0 + */ +export declare const ApT: These<never, readonly []> +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyNonEmptyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>( + f: (index: number, a: A) => These<E, B> +) => (as: ReadonlyNonEmptyArray<A>) => These<E, ReadonlyNonEmptyArray<B>> +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +export declare const traverseReadonlyArrayWithIndex: <E>( + S: Semigroup<E> +) => <A, B>(f: (index: number, a: A) => These<E, B>) => (as: ReadonlyArray<A>) => These<E, ReadonlyArray<B>> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.these` + * (where `T` is from `import T from 'fp-ts/These'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const these: Functor2<URI> & Bifunctor2<URI> & Foldable2<URI> & Traversable2<URI> diff --git a/node_modules/fp-ts/lib/These.js b/node_modules/fp-ts/lib/These.js new file mode 100644 index 0000000..f48d7a5 --- /dev/null +++ b/node_modules/fp-ts/lib/These.js @@ -0,0 +1,724 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.these = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.toTuple = exports.toTuple2 = exports.exists = exports.elem = exports.fromOptionK = exports.fromOption = exports.fromPredicate = exports.FromEither = exports.Traversable = exports.Foldable = exports.FromThese = exports.Bifunctor = exports.Pointed = exports.flap = exports.Functor = exports.URI = exports.of = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.map = exports.mapLeft = exports.bimap = exports.fromOptions = exports.getApply = exports.swap = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isRight = exports.isLeft = void 0; +exports.isBoth = isBoth; +exports.left = left; +exports.right = right; +exports.both = both; +exports.getShow = getShow; +exports.getEq = getEq; +exports.getSemigroup = getSemigroup; +exports.getApplicative = getApplicative; +exports.getChain = getChain; +exports.getMonad = getMonad; +exports.getLeft = getLeft; +exports.getRight = getRight; +exports.leftOrBoth = leftOrBoth; +exports.rightOrBoth = rightOrBoth; +exports.getLeftOnly = getLeftOnly; +exports.getRightOnly = getRightOnly; +var Eq_1 = require("./Eq"); +var FromEither_1 = require("./FromEither"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * Returns `true` if the these is an instance of `Left`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +var isLeft = function (fa) { return fa._tag === 'Left'; }; +exports.isLeft = isLeft; +/** + * Returns `true` if the these is an instance of `Right`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +var isRight = function (fa) { return fa._tag === 'Right'; }; +exports.isRight = isRight; +/** + * Returns `true` if the these is an instance of `Both`, `false` otherwise + * + * @category refinements + * @since 2.0.0 + */ +function isBoth(fa) { + return fa._tag === 'Both'; +} +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * @category constructors + * @since 2.0.0 + */ +function left(left) { + return { _tag: 'Left', left: left }; +} +/** + * @category constructors + * @since 2.0.0 + */ +function right(right) { + return { _tag: 'Right', right: right }; +} +/** + * @category constructors + * @since 2.0.0 + */ +function both(left, right) { + return { _tag: 'Both', left: left, right: right }; +} +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +var matchW = function (onLeft, onRight, onBoth) { + return function (fa) { + switch (fa._tag) { + case 'Left': + return onLeft(fa.left); + case 'Right': + return onRight(fa.right); + case 'Both': + return onBoth(fa.left, fa.right); + } + }; +}; +exports.matchW = matchW; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchW; +/** + * @category pattern matching + * @since 2.10.0 + */ +exports.match = exports.matchW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.0.0 + */ +exports.fold = exports.match; +/** + * @since 2.4.0 + */ +exports.swap = (0, exports.match)(right, left, function (e, a) { return both(a, e); }); +/** + * @category instances + * @since 2.0.0 + */ +function getShow(SE, SA) { + return { + show: (0, exports.match)(function (l) { return "left(".concat(SE.show(l), ")"); }, function (a) { return "right(".concat(SA.show(a), ")"); }, function (l, a) { return "both(".concat(SE.show(l), ", ").concat(SA.show(a), ")"); }) + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getEq(EE, EA) { + return (0, Eq_1.fromEquals)(function (x, y) { + return (0, exports.isLeft)(x) + ? (0, exports.isLeft)(y) && EE.equals(x.left, y.left) + : (0, exports.isRight)(x) + ? (0, exports.isRight)(y) && EA.equals(x.right, y.right) + : isBoth(y) && EE.equals(x.left, y.left) && EA.equals(x.right, y.right); + }); +} +/** + * @category instances + * @since 2.0.0 + */ +function getSemigroup(SE, SA) { + return { + concat: function (x, y) { + return (0, exports.isLeft)(x) + ? (0, exports.isLeft)(y) + ? left(SE.concat(x.left, y.left)) + : (0, exports.isRight)(y) + ? both(x.left, y.right) + : both(SE.concat(x.left, y.left), y.right) + : (0, exports.isRight)(x) + ? (0, exports.isLeft)(y) + ? both(y.left, x.right) + : (0, exports.isRight)(y) + ? right(SA.concat(x.right, y.right)) + : both(y.left, SA.concat(x.right, y.right)) + : (0, exports.isLeft)(y) + ? both(SE.concat(x.left, y.left), x.right) + : (0, exports.isRight)(y) + ? both(x.left, SA.concat(x.right, y.right)) + : both(SE.concat(x.left, y.left), SA.concat(x.right, y.right)); + } + }; +} +/** + * @category instances + * @since 2.10.0 + */ +var getApply = function (S) { return ({ + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { + return (0, exports.isLeft)(fab) + ? (0, exports.isLeft)(fa) + ? left(S.concat(fab.left, fa.left)) + : (0, exports.isRight)(fa) + ? left(fab.left) + : left(S.concat(fab.left, fa.left)) + : (0, exports.isRight)(fab) + ? (0, exports.isLeft)(fa) + ? left(fa.left) + : (0, exports.isRight)(fa) + ? right(fab.right(fa.right)) + : both(fa.left, fab.right(fa.right)) + : (0, exports.isLeft)(fa) + ? left(S.concat(fab.left, fa.left)) + : (0, exports.isRight)(fa) + ? both(fab.left, fab.right(fa.right)) + : both(S.concat(fab.left, fa.left), fab.right(fa.right)); + } +}); }; +exports.getApply = getApply; +/** + * @category instances + * @since 2.7.0 + */ +function getApplicative(S) { + var A = (0, exports.getApply)(S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + of: exports.of + }; +} +/** + * @category instances + * @since 2.10.0 + */ +function getChain(S) { + var A = (0, exports.getApply)(S); + var chain = function (ma, f) { + if ((0, exports.isLeft)(ma)) { + return ma; + } + if ((0, exports.isRight)(ma)) { + return f(ma.right); + } + var fb = f(ma.right); + return (0, exports.isLeft)(fb) + ? left(S.concat(ma.left, fb.left)) + : (0, exports.isRight)(fb) + ? both(ma.left, fb.right) + : both(S.concat(ma.left, fb.left), fb.right); + }; + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: chain + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getMonad(S) { + var C = getChain(S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + of: exports.of, + ap: C.ap, + chain: C.chain, + throwError: left + }; +} +/** + * Returns an `E` value if possible + * + * @example + * import { getLeft, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeft(left('a')), some('a')) + * assert.deepStrictEqual(getLeft(right(1)), none) + * assert.deepStrictEqual(getLeft(both('a', 1)), some('a')) + * + * @category conversions + * @since 2.0.0 + */ +function getLeft(fa) { + return (0, exports.isLeft)(fa) ? _.some(fa.left) : (0, exports.isRight)(fa) ? _.none : _.some(fa.left); +} +/** + * Returns an `A` value if possible + * + * @example + * import { getRight, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRight(left('a')), none) + * assert.deepStrictEqual(getRight(right(1)), some(1)) + * assert.deepStrictEqual(getRight(both('a', 1)), some(1)) + * + * @category conversions + * @since 2.0.0 + */ +function getRight(fa) { + return (0, exports.isLeft)(fa) ? _.none : (0, exports.isRight)(fa) ? _.some(fa.right) : _.some(fa.right); +} +// TODO: make lazy in v3 +/** + * @example + * import { leftOrBoth, left, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(leftOrBoth('a')(none), left('a')) + * assert.deepStrictEqual(leftOrBoth('a')(some(1)), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +function leftOrBoth(e) { + return function (ma) { return (_.isNone(ma) ? left(e) : both(e, ma.value)); }; +} +// TODO: make lazy in v3 +/** + * @example + * import { rightOrBoth, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(rightOrBoth(1)(none), right(1)) + * assert.deepStrictEqual(rightOrBoth(1)(some('a')), both('a', 1)) + * + * @category constructors + * @since 2.0.0 + */ +function rightOrBoth(a) { + return function (me) { return (_.isNone(me) ? right(a) : both(me.value, a)); }; +} +/** + * Returns the `E` value if and only if the value is constructed with `Left` + * + * @example + * import { getLeftOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getLeftOnly(left('a')), some('a')) + * assert.deepStrictEqual(getLeftOnly(right(1)), none) + * assert.deepStrictEqual(getLeftOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +function getLeftOnly(fa) { + return (0, exports.isLeft)(fa) ? _.some(fa.left) : _.none; +} +/** + * Returns the `A` value if and only if the value is constructed with `Right` + * + * @example + * import { getRightOnly, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(getRightOnly(left('a')), none) + * assert.deepStrictEqual(getRightOnly(right(1)), some(1)) + * assert.deepStrictEqual(getRightOnly(both('a', 1)), none) + * + * @category conversions + * @since 2.0.0 + */ +function getRightOnly(fa) { + return (0, exports.isRight)(fa) ? _.some(fa.right) : _.none; +} +/** + * Takes a pair of `Option`s and attempts to create a `These` from them + * + * @example + * import { fromOptions, left, right, both } from 'fp-ts/These' + * import { none, some } from 'fp-ts/Option' + * + * assert.deepStrictEqual(fromOptions(none, none), none) + * assert.deepStrictEqual(fromOptions(some('a'), none), some(left('a'))) + * assert.deepStrictEqual(fromOptions(none, some(1)), some(right(1))) + * assert.deepStrictEqual(fromOptions(some('a'), some(1)), some(both('a', 1))) + * + * @category conversions + * @since 2.0.0 + */ +var fromOptions = function (fe, fa) { + return _.isNone(fe) + ? _.isNone(fa) + ? _.none + : _.some(right(fa.value)) + : _.isNone(fa) + ? _.some(left(fe.value)) + : _.some(both(fe.value, fa.value)); +}; +exports.fromOptions = fromOptions; +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +var bimap = function (f, g) { return function (fa) { + return (0, exports.isLeft)(fa) ? left(f(fa.left)) : (0, exports.isRight)(fa) ? right(g(fa.right)) : both(f(fa.left), g(fa.right)); +}; }; +exports.bimap = bimap; +/** + * Map a function over the first type argument of a bifunctor. + * + * @category error handling + * @since 2.0.0 + */ +var mapLeft = function (f) { return function (fa) { + return (0, exports.isLeft)(fa) ? left(f(fa.left)) : isBoth(fa) ? both(f(fa.left), fa.right) : fa; +}; }; +exports.mapLeft = mapLeft; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { + return (0, exports.isLeft)(fa) ? fa : (0, exports.isRight)(fa) ? right(f(fa.right)) : both(fa.left, f(fa.right)); +}; }; +exports.map = map; +/** + * @category folding + * @since 2.0.0 + */ +var reduce = function (b, f) { return function (fa) { + return (0, exports.isLeft)(fa) ? b : f(b, fa.right); +}; }; +exports.reduce = reduce; +/** + * @category folding + * @since 2.0.0 + */ +var foldMap = function (M) { return function (f) { return function (fa) { + return (0, exports.isLeft)(fa) ? M.empty : f(fa.right); +}; }; }; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.0.0 + */ +var reduceRight = function (b, f) { return function (fa) { + return (0, exports.isLeft)(fa) ? b : f(fa.right, b); +}; }; +exports.reduceRight = reduceRight; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + return function (f) { + return function (ta) { + return (0, exports.isLeft)(ta) ? F.of(ta) : (0, exports.isRight)(ta) ? F.map(f(ta.right), right) : F.map(f(ta.right), function (b) { return both(ta.left, b); }); + }; + }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (ta) { + return (0, exports.isLeft)(ta) ? F.of(ta) : (0, exports.isRight)(ta) ? F.map(ta.right, right) : F.map(ta.right, function (b) { return both(ta.left, b); }); + }; +}; +exports.sequence = sequence; +/** + * @category constructors + * @since 2.0.0 + */ +exports.of = right; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'These'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.FromThese = { + URI: exports.URI, + fromThese: function_1.identity +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.FromEither = { + URI: exports.URI, + fromEither: function_1.identity +}; +/** + * @category lifting + * @since 2.13.0 + */ +exports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither); +/** + * @category conversions + * @since 2.10.0 + */ +exports.fromOption = +/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither); +/** + * @category lifting + * @since 2.10.0 + */ +exports.fromOptionK = +/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +var elem = function (E) { + return function (a) { + return function (ma) { + return (0, exports.isLeft)(ma) ? false : E.equals(a, ma.right); + }; + }; +}; +exports.elem = elem; +/** + * @since 2.11.0 + */ +var exists = function (predicate) { + return function (ma) { + return (0, exports.isLeft)(ma) ? false : predicate(ma.right); + }; +}; +exports.exists = exists; +/** + * @example + * import { toTuple2, left, right, both } from 'fp-ts/These' + * + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(left('b')), ['b', 1]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(right(2)), ['a', 2]) + * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(both('b', 2)), ['b', 2]) + * + * @category conversions + * @since 2.10.0 + */ +var toTuple2 = function (e, a) { + return function (fa) { + return (0, exports.isLeft)(fa) ? [fa.left, a()] : (0, exports.isRight)(fa) ? [e(), fa.right] : [fa.left, fa.right]; + }; +}; +exports.toTuple2 = toTuple2; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`toTuple2`](#totuple2) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var toTuple = function (e, a) { + return (0, exports.toTuple2)(function () { return e; }, function () { return a; }); +}; +exports.toTuple = toTuple; +/** + * @since 2.11.0 + */ +exports.ApT = (0, exports.of)(_.emptyReadonlyArray); +// ------------------------------------------------------------------------------------- +// array utils +// ------------------------------------------------------------------------------------- +/** + * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyNonEmptyArrayWithIndex = function (S) { + return function (f) { + return function (as) { + var e = _.none; + var t = f(0, _.head(as)); + if ((0, exports.isLeft)(t)) { + return t; + } + if (isBoth(t)) { + e = _.some(t.left); + } + var out = [t.right]; + for (var i = 1; i < as.length; i++) { + var t_1 = f(i, as[i]); + if ((0, exports.isLeft)(t_1)) { + return t_1; + } + if (isBoth(t_1)) { + e = _.isNone(e) ? _.some(t_1.left) : _.some(S.concat(e.value, t_1.left)); + } + out.push(t_1.right); + } + return _.isNone(e) ? right(out) : both(e.value, out); + }; + }; +}; +exports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex; +/** + * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(S))`. + * + * @category traversing + * @since 2.11.0 + */ +var traverseReadonlyArrayWithIndex = function (S) { + return function (f) { + var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(S)(f); + return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); }; + }; +}; +exports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.these` + * (where `T` is from `import T from 'fp-ts/These'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.these = { + URI: exports.URI, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; diff --git a/node_modules/fp-ts/lib/TheseT.d.ts b/node_modules/fp-ts/lib/TheseT.d.ts new file mode 100644 index 0000000..a67a073 --- /dev/null +++ b/node_modules/fp-ts/lib/TheseT.d.ts @@ -0,0 +1,463 @@ +/** + * @since 2.4.0 + */ +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C } from './Apply' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C } from './Chain' +import { LazyArg } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C } from './Functor' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C } from './Pointed' +import { Semigroup } from './Semigroup' +import * as T from './These' +import These = T.These +/** + * @since 2.10.0 + */ +export declare function right<F extends URIS3>( + F: Pointed3<F> +): <A, R, FE, E = never>(a: A) => Kind3<F, R, FE, These<E, A>> +export declare function right<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <A, R, E = never>(a: A) => Kind3<F, R, FE, These<E, A>> +export declare function right<F extends URIS2>(F: Pointed2<F>): <A, FE, E = never>(a: A) => Kind2<F, FE, These<E, A>> +export declare function right<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <A, E = never>(a: A) => Kind2<F, FE, These<E, A>> +export declare function right<F extends URIS>(F: Pointed1<F>): <A, E = never>(a: A) => Kind<F, These<E, A>> +export declare function right<F>(F: Pointed<F>): <A, E = never>(a: A) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function left<F extends URIS3>( + F: Pointed3<F> +): <E, R, FE, A = never>(e: E) => Kind3<F, R, FE, These<E, A>> +export declare function left<F extends URIS3, FE>( + F: Pointed3C<F, FE> +): <E, R, A = never>(e: E) => Kind3<F, R, FE, These<E, A>> +export declare function left<F extends URIS2>(F: Pointed2<F>): <E, FE, A = never>(e: E) => Kind2<F, FE, These<E, A>> +export declare function left<F extends URIS2, FE>( + F: Pointed2C<F, FE> +): <E, A = never>(e: E) => Kind2<F, FE, These<E, A>> +export declare function left<F extends URIS>(F: Pointed1<F>): <E, A = never>(e: E) => Kind<F, These<E, A>> +export declare function left<F>(F: Pointed<F>): <E, A = never>(e: E) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function both<F extends URIS3>(F: Pointed3<F>): <E, A, S, R>(e: E, a: A) => Kind3<F, S, R, These<E, A>> +export declare function both<F extends URIS3, R>(F: Pointed3C<F, R>): <E, A>(e: E, a: A) => Kind3<F, R, R, These<E, A>> +export declare function both<F extends URIS2>(F: Pointed2<F>): <E, A, R>(e: E, a: A) => Kind2<F, R, These<E, A>> +export declare function both<F extends URIS2, R>(F: Pointed2C<F, R>): <E, A>(e: E, a: A) => Kind2<F, R, These<E, A>> +export declare function both<F extends URIS>(F: Pointed1<F>): <E, A>(e: E, a: A) => Kind<F, These<E, A>> +export declare function both<F>(F: Pointed<F>): <E, A = never>(e: E, a: A) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function rightF<F extends URIS3>( + F: Functor3<F> +): <R, FE, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, These<E, A>> +export declare function rightF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, A, E = never>(fa: Kind3<F, R, FE, A>) => Kind3<F, R, FE, These<E, A>> +export declare function rightF<F extends URIS2>( + F: Functor2<F> +): <FE, A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, These<E, A>> +export declare function rightF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, E = never>(fa: Kind2<F, FE, A>) => Kind2<F, FE, These<E, A>> +export declare function rightF<F extends URIS>(F: Functor1<F>): <A, E = never>(fa: Kind<F, A>) => Kind<F, These<E, A>> +export declare function rightF<F>(F: Functor<F>): <A, E = never>(fa: HKT<F, A>) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function leftF<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, These<E, A>> +export declare function leftF<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A = never>(fe: Kind3<F, R, FE, E>) => Kind3<F, R, FE, These<E, A>> +export declare function leftF<F extends URIS2>( + F: Functor2<F> +): <FE, E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, These<E, A>> +export declare function leftF<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A = never>(fe: Kind2<F, FE, E>) => Kind2<F, FE, These<E, A>> +export declare function leftF<F extends URIS>(F: Functor1<F>): <E, A = never>(fe: Kind<F, E>) => Kind<F, These<E, A>> +export declare function leftF<F>(F: Functor<F>): <E, A = never>(fe: HKT<F, E>) => HKT<F, These<E, A>> +/** + * @since 2.10.0 + */ +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, FE, E>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<E, B>> +export declare function map<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<E, B>> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <FE, E>(fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<E, B>> +export declare function map<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<E, B>> +export declare function map<F extends URIS>( + F: Functor1<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind<F, These<E, A>>) => Kind<F, These<E, B>> +export declare function map<F>( + F: Functor<F> +): <A, B>(f: (a: A) => B) => <E>(fa: HKT<F, These<E, A>>) => HKT<F, These<E, B>> +/** + * @since 2.10.0 + */ +export declare function ap<F extends URIS3, E>( + F: Apply3<F>, + S: Semigroup<E> +): <R, FE, A>( + fa: Kind3<F, R, FE, These<E, A>> +) => <B>(fab: Kind3<F, R, FE, These<E, (a: A) => B>>) => Kind3<F, R, FE, These<E, B>> +export declare function ap<F extends URIS3, FE, E>( + F: Apply3C<F, FE>, + S: Semigroup<E> +): <R, A>( + fa: Kind3<F, R, FE, These<E, A>> +) => <B>(fab: Kind3<F, R, FE, These<E, (a: A) => B>>) => Kind3<F, R, FE, These<E, B>> +export declare function ap<F extends URIS2, E>( + F: Apply2<F>, + S: Semigroup<E> +): <FE, A>(fa: Kind2<F, FE, These<E, A>>) => <B>(fab: Kind2<F, FE, These<E, (a: A) => B>>) => Kind2<F, FE, These<E, B>> +export declare function ap<F extends URIS2, FE, E>( + F: Apply2C<F, FE>, + S: Semigroup<E> +): <A>(fa: Kind2<F, FE, These<E, A>>) => <B>(fab: Kind2<F, FE, These<E, (a: A) => B>>) => Kind2<F, FE, These<E, B>> +export declare function ap<F extends URIS, E>( + F: Apply1<F>, + S: Semigroup<E> +): <A>(fa: Kind<F, These<E, A>>) => <B>(fab: Kind<F, These<E, (a: A) => B>>) => Kind<F, These<E, B>> +export declare function ap<F, E>( + F: Apply<F>, + S: Semigroup<E> +): <A>(fa: HKT<F, These<E, A>>) => <B>(fab: HKT<F, These<E, (a: A) => B>>) => HKT<F, These<E, B>> +/** + * @since 2.10.0 + */ +export declare function chain<M extends URIS3, E>( + M: Monad3<M>, + S: Semigroup<E> +): <A, R, ME, B>( + f: (a: A) => Kind3<M, R, ME, These<E, B>> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, These<E, B>> +export declare function chain<M extends URIS3, ME, E>( + M: Monad3C<M, ME>, + S: Semigroup<E> +): <A, R, B>( + f: (a: A) => Kind3<M, R, ME, These<E, B>> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, These<E, B>> +export declare function chain<M extends URIS2, E>( + M: Monad2<M>, + S: Semigroup<E> +): <A, ME, B>(f: (a: A) => Kind2<M, ME, These<E, B>>) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, These<E, B>> +export declare function chain<M extends URIS2, ME, E>( + M: Monad2C<M, ME>, + S: Semigroup<E> +): <A, B>(f: (a: A) => Kind2<M, ME, These<E, B>>) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, These<E, B>> +export declare function chain<M extends URIS, E>( + M: Monad1<M>, + S: Semigroup<E> +): <A, B>(f: (a: A) => Kind<M, These<E, B>>) => (ma: Kind<M, These<E, A>>) => Kind<M, These<E, B>> +export declare function chain<M, E>( + M: Monad<M>, + S: Semigroup<E> +): <A, B>(f: (a: A) => HKT<M, These<E, B>>) => (ma: HKT<M, These<E, A>>) => HKT<M, These<E, B>> +/** + * @since 2.10.0 + */ +export declare function bimap<F extends URIS3>( + F: Functor3<F> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R, FE>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, B>> +export declare function bimap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B +) => <R>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, B>> +export declare function bimap<F extends URIS2>( + F: Functor2<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <FE>(fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, B>> +export declare function bimap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, B>> +export declare function bimap<F extends URIS>( + F: Functor1<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind<F, These<E, A>>) => Kind<F, These<G, B>> +export declare function bimap<F>( + F: Functor<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: HKT<F, These<E, A>>) => HKT<F, These<G, B>> +/** + * @since 2.10.0 + */ +export declare function mapLeft<F extends URIS3>( + F: Functor3<F> +): <E, G>(f: (e: E) => G) => <R, FE, A>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, A>> +export declare function mapLeft<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, G>(f: (e: E) => G) => <R, A>(fea: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<G, A>> +export declare function mapLeft<F extends URIS2>( + F: Functor2<F> +): <E, G>(f: (e: E) => G) => <FE, A>(fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, A>> +export declare function mapLeft<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<G, A>> +export declare function mapLeft<F extends URIS>( + F: Functor1<F> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind<F, These<E, A>>) => Kind<F, These<G, A>> +export declare function mapLeft<F>( + F: Functor<F> +): <E, G>(f: (e: E) => G) => <A>(fea: HKT<F, These<E, A>>) => HKT<F, These<G, A>> +/** + * @since 2.10.0 + */ +export declare function match<F extends URIS3>( + F: Functor3<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => <S, R>(ma: Kind3<F, S, R, These<E, A>>) => Kind3<F, S, R, B> +export declare function match<F extends URIS3, R>( + F: Functor3C<F, R> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => <S>(ma: Kind3<F, S, R, These<E, A>>) => Kind3<F, S, R, B> +export declare function match<F extends URIS2>( + F: Functor2<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => <R>(ma: Kind2<F, R, These<E, A>>) => Kind2<F, R, B> +export declare function match<M extends URIS2, R>( + F: Functor2C<M, R> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (ma: Kind2<M, R, These<E, A>>) => Kind2<M, R, B> +export declare function match<F extends URIS>( + F: Functor1<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (ma: Kind<F, These<E, A>>) => Kind<F, B> +export declare function match<F>( + F: Functor<F> +): <E, B, A>( + onLeft: (e: E) => B, + onRight: (a: A) => B, + onBoth: (e: E, a: A) => B +) => (ma: HKT<F, These<E, A>>) => HKT<F, B> +/** + * @since 2.10.0 + */ +export declare function matchE<M extends URIS3>( + M: Chain3<M> +): <E, R, ME, B, A>( + onLeft: (e: E) => Kind3<M, R, ME, B>, + onRight: (a: A) => Kind3<M, R, ME, B>, + onBoth: (e: E, a: A) => Kind3<M, R, ME, B> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, B> +export declare function matchE<M extends URIS3, ME>( + M: Chain3C<M, ME> +): <E, R, B, A>( + onLeft: (e: E) => Kind3<M, R, ME, B>, + onRight: (a: A) => Kind3<M, R, ME, B>, + onBoth: (e: E, a: A) => Kind3<M, R, ME, B> +) => (ma: Kind3<M, R, ME, These<E, A>>) => Kind3<M, R, ME, B> +export declare function matchE<M extends URIS2>( + M: Chain2<M> +): <E, ME, B, A>( + onLeft: (e: E) => Kind2<M, ME, B>, + onRight: (a: A) => Kind2<M, ME, B>, + onBoth: (e: E, a: A) => Kind2<M, ME, B> +) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, B> +export declare function matchE<M extends URIS2, ME>( + M: Chain2C<M, ME> +): <E, B, A>( + onLeft: (e: E) => Kind2<M, ME, B>, + onRight: (a: A) => Kind2<M, ME, B>, + onBoth: (e: E, a: A) => Kind2<M, ME, B> +) => (ma: Kind2<M, ME, These<E, A>>) => Kind2<M, ME, B> +export declare function matchE<M extends URIS>( + M: Chain1<M> +): <E, B, A>( + onLeft: (e: E) => Kind<M, B>, + onRight: (a: A) => Kind<M, B>, + onBoth: (e: E, a: A) => Kind<M, B> +) => (ma: Kind<M, These<E, A>>) => Kind<M, B> +export declare function matchE<M>( + M: Chain<M> +): <E, B, A>( + onLeft: (e: E) => HKT<M, B>, + onRight: (a: A) => HKT<M, B>, + onBoth: (e: E, a: A) => HKT<M, B> +) => (ma: HKT<M, These<E, A>>) => HKT<M, B> +/** + * @since 2.10.0 + */ +export declare function swap<F extends URIS3>( + F: Functor3<F> +): <R, FE, E, A>(ma: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<A, E>> +export declare function swap<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <R, E, A>(ma: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, These<A, E>> +export declare function swap<F extends URIS2>( + F: Functor2<F> +): <FE, E, A>(ma: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<A, E>> +export declare function swap<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(ma: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, These<A, E>> +export declare function swap<F extends URIS>(F: Functor1<F>): <E, A>(ma: Kind<F, These<E, A>>) => Kind<F, These<A, E>> +export declare function swap<F>(F: Functor<F>): <E, A>(ma: HKT<F, These<E, A>>) => HKT<F, These<A, E>> +/** + * @since 2.10.0 + */ +export declare function toTuple2<F extends URIS3>( + F: Functor3<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => <R, FE>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS3, FE>( + F: Functor3C<F, FE> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => <R>(fa: Kind3<F, R, FE, These<E, A>>) => Kind3<F, R, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS2>( + F: Functor2<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => <FE>(fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS2, FE>( + F: Functor2C<F, FE> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: Kind2<F, FE, These<E, A>>) => Kind2<F, FE, readonly [E, A]> +export declare function toTuple2<F extends URIS>( + F: Functor1<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: Kind<F, These<E, A>>) => Kind<F, readonly [E, A]> +export declare function toTuple2<F>( + F: Functor<F> +): <E, A>(e: LazyArg<E>, a: LazyArg<A>) => (fa: HKT<F, These<E, A>>) => HKT<F, readonly [E, A]> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseT<M, E, A> extends HKT<M, These<E, A>> {} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseM<M> { + readonly map: <E, A, B>(fa: TheseT<M, E, A>, f: (a: A) => B) => TheseT<M, E, B> + readonly bimap: <E, A, N, B>(fa: TheseT<M, E, A>, f: (e: E) => N, g: (a: A) => B) => TheseT<M, N, B> + readonly mapLeft: <E, A, N>(fa: TheseT<M, E, A>, f: (e: E) => N) => TheseT<M, N, A> + readonly fold: <E, A, R>( + fa: TheseT<M, E, A>, + onLeft: (e: E) => HKT<M, R>, + onRight: (a: A) => HKT<M, R>, + onBoth: (e: E, a: A) => HKT<M, R> + ) => HKT<M, R> + readonly swap: <E, A>(fa: TheseT<M, E, A>) => TheseT<M, A, E> + readonly rightM: <E, A>(ma: HKT<M, A>) => TheseT<M, E, A> + readonly leftM: <E, A>(me: HKT<M, E>) => TheseT<M, E, A> + readonly left: <E, A>(e: E) => TheseT<M, E, A> + readonly right: <E, A>(a: A) => TheseT<M, E, A> + readonly both: <E, A>(e: E, a: A) => TheseT<M, E, A> + readonly toTuple: <E, A>(fa: TheseT<M, E, A>, e: E, a: A) => HKT<M, [E, A]> + readonly getMonad: <E>(S: Semigroup<E>) => { + readonly _E: E + readonly map: <A, B>(ma: TheseT<M, E, A>, f: (a: A) => B) => TheseT<M, E, B> + readonly of: <A>(a: A) => TheseT<M, E, A> + readonly ap: <A, B>(mab: TheseT<M, E, (a: A) => B>, ma: TheseT<M, E, A>) => TheseT<M, E, B> + readonly chain: <A, B>(ma: TheseT<M, E, A>, f: (a: A) => TheseT<M, E, B>) => TheseT<M, E, B> + } +} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export type TheseT1<M extends URIS, E, A> = Kind<M, These<E, A>> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseM1<M extends URIS> { + readonly map: <E, A, B>(fa: TheseT1<M, E, A>, f: (a: A) => B) => TheseT1<M, E, B> + readonly bimap: <E, A, N, B>(fa: TheseT1<M, E, A>, f: (e: E) => N, g: (a: A) => B) => TheseT1<M, N, B> + readonly mapLeft: <E, A, N>(fa: TheseT1<M, E, A>, f: (e: E) => N) => TheseT1<M, N, A> + readonly fold: <E, A, R>( + fa: TheseT1<M, E, A>, + onLeft: (e: E) => Kind<M, R>, + onRight: (a: A) => Kind<M, R>, + onBoth: (e: E, a: A) => Kind<M, R> + ) => Kind<M, R> + readonly swap: <E, A>(fa: TheseT1<M, E, A>) => TheseT1<M, A, E> + readonly rightM: <E, A>(ma: Kind<M, A>) => TheseT1<M, E, A> + readonly leftM: <E, A>(me: Kind<M, E>) => TheseT1<M, E, A> + readonly left: <E, A>(e: E) => TheseT1<M, E, A> + readonly right: <E, A>(a: A) => TheseT1<M, E, A> + readonly both: <E, A>(e: E, a: A) => TheseT1<M, E, A> + readonly toTuple: <E, A>(fa: TheseT1<M, E, A>, e: E, a: A) => Kind<M, [E, A]> + readonly getMonad: <E>(S: Semigroup<E>) => { + readonly _E: E + readonly map: <A, B>(ma: TheseT1<M, E, A>, f: (a: A) => B) => TheseT1<M, E, B> + readonly of: <A>(a: A) => TheseT1<M, E, A> + readonly ap: <A, B>(mab: TheseT1<M, E, (a: A) => B>, ma: TheseT1<M, E, A>) => TheseT1<M, E, B> + readonly chain: <A, B>(ma: TheseT1<M, E, A>, f: (a: A) => TheseT1<M, E, B>) => TheseT1<M, E, B> + } +} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export type TheseT2<M extends URIS2, R, E, A> = Kind2<M, R, These<E, A>> +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export interface TheseM2<M extends URIS2> { + readonly map: <R, E, A, B>(fa: TheseT2<M, R, E, A>, f: (a: A) => B) => TheseT2<M, R, E, B> + readonly bimap: <R, E, A, N, B>(fa: TheseT2<M, R, E, A>, f: (e: E) => N, g: (a: A) => B) => TheseT2<M, R, N, B> + readonly mapLeft: <R, E, A, N>(fa: TheseT2<M, R, E, A>, f: (e: E) => N) => TheseT2<M, R, N, A> + readonly fold: <R, E, A, B>( + fa: TheseT2<M, R, E, A>, + onLeft: (e: E) => Kind2<M, R, B>, + onRight: (a: A) => Kind2<M, R, B>, + onBoth: (e: E, a: A) => Kind2<M, R, B> + ) => Kind2<M, R, B> + readonly swap: <R, E, A>(fa: TheseT2<M, R, E, A>) => TheseT2<M, R, A, E> + readonly rightM: <R, E, A>(ma: Kind2<M, R, A>) => TheseT2<M, R, E, A> + readonly leftM: <R, E, A>(me: Kind2<M, R, E>) => TheseT2<M, R, E, A> + readonly left: <R, E, A>(e: E) => TheseT2<M, R, E, A> + readonly right: <R, E, A>(a: A) => TheseT2<M, R, E, A> + readonly both: <R, E, A>(e: E, a: A) => TheseT2<M, R, E, A> + readonly toTuple: <R, E, A>(fa: TheseT2<M, R, E, A>, e: E, a: A) => Kind2<M, R, [E, A]> + readonly getMonad: <E>(S: Semigroup<E>) => { + readonly _E: E + readonly map: <R, A, B>(ma: TheseT2<M, R, E, A>, f: (a: A) => B) => TheseT2<M, R, E, B> + readonly of: <R, A>(a: A) => TheseT2<M, R, E, A> + readonly ap: <R, A, B>(mab: TheseT2<M, R, E, (a: A) => B>, ma: TheseT2<M, R, E, A>) => TheseT2<M, R, E, B> + readonly chain: <R, A, B>(ma: TheseT2<M, R, E, A>, f: (a: A) => TheseT2<M, R, E, B>) => TheseT2<M, R, E, B> + } +} +/** + * @category zone of death + * @since 2.4.0 + * @deprecated + */ +export declare function getTheseM<M extends URIS2>(M: Monad2<M>): TheseM2<M> +/** @deprecated */ +export declare function getTheseM<M extends URIS>(M: Monad1<M>): TheseM1<M> +/** @deprecated */ +export declare function getTheseM<M>(M: Monad<M>): TheseM<M> diff --git a/node_modules/fp-ts/lib/TheseT.js b/node_modules/fp-ts/lib/TheseT.js new file mode 100644 index 0000000..cedf7df --- /dev/null +++ b/node_modules/fp-ts/lib/TheseT.js @@ -0,0 +1,131 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.right = right; +exports.left = left; +exports.both = both; +exports.rightF = rightF; +exports.leftF = leftF; +exports.map = map; +exports.ap = ap; +exports.chain = chain; +exports.bimap = bimap; +exports.mapLeft = mapLeft; +exports.match = match; +exports.matchE = matchE; +exports.swap = swap; +exports.toTuple2 = toTuple2; +exports.getTheseM = getTheseM; +/** + * @since 2.4.0 + */ +var Apply_1 = require("./Apply"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var T = __importStar(require("./These")); +function right(F) { + return (0, function_1.flow)(T.right, F.of); +} +function left(F) { + return (0, function_1.flow)(T.left, F.of); +} +function both(F) { + return (0, function_1.flow)(T.both, F.of); +} +function rightF(F) { + return function (fa) { return F.map(fa, T.right); }; +} +function leftF(F) { + return function (fe) { return F.map(fe, T.left); }; +} +function map(F) { + return (0, Functor_1.map)(F, T.Functor); +} +function ap(F, S) { + return (0, Apply_1.ap)(F, T.getApply(S)); +} +function chain(M, S) { + var _left = left(M); + return function (f) { return function (ma) { + return M.chain(ma, T.match(_left, f, function (e1, a) { + return M.map(f(a), T.match(function (e2) { return T.left(S.concat(e1, e2)); }, function (b) { return T.both(e1, b); }, function (e2, b) { return T.both(S.concat(e1, e2), b); })); + })); + }; }; +} +function bimap(F) { + return function (f, g) { return function (fea) { return F.map(fea, T.bimap(f, g)); }; }; +} +function mapLeft(F) { + return function (f) { return function (fea) { return F.map(fea, T.mapLeft(f)); }; }; +} +function match(F) { + return function (onLeft, onRight, onBoth) { return function (ma) { return F.map(ma, T.match(onLeft, onRight, onBoth)); }; }; +} +function matchE(M) { + return function (onLeft, onRight, onBoth) { return function (ma) { return M.chain(ma, T.match(onLeft, onRight, onBoth)); }; }; +} +function swap(F) { + return function (ma) { return F.map(ma, T.swap); }; +} +function toTuple2(F) { + return function (e, a) { return function (fa) { return F.map(fa, T.toTuple2(e, a)); }; }; +} +/** @deprecated */ +/* istanbul ignore next */ +function getTheseM(M) { + var _map = map(M); + var _bimap = bimap(M); + var _mapLeft = mapLeft(M); + var _fold = matchE(M); + var _toTuple2 = toTuple2(M); + var of = right(M); + var mapT = function (fa, f) { return (0, function_1.pipe)(fa, _map(f)); }; + return { + map: mapT, + bimap: function (fea, f, g) { return (0, function_1.pipe)(fea, _bimap(f, g)); }, + mapLeft: function (fea, f) { return (0, function_1.pipe)(fea, _mapLeft(f)); }, + fold: function (fa, onLeft, onRight, onBoth) { return (0, function_1.pipe)(fa, _fold(onLeft, onRight, onBoth)); }, + swap: swap(M), + rightM: rightF(M), + leftM: leftF(M), + left: left(M), + right: right(M), + both: both(M), + toTuple: function (fa, e, a) { + return (0, function_1.pipe)(fa, _toTuple2(function () { return e; }, function () { return a; })); + }, + getMonad: function (S) { + var _ap = ap(M, S); + var _chain = chain(M, S); + return { + _E: undefined, + map: mapT, + of: of, + ap: function (fab, fa) { return (0, function_1.pipe)(fab, _ap(fa)); }, + chain: function (ma, f) { return (0, function_1.pipe)(ma, _chain(f)); } + }; + } + }; +} diff --git a/node_modules/fp-ts/lib/Traced.d.ts b/node_modules/fp-ts/lib/Traced.d.ts new file mode 100644 index 0000000..8d3f3fa --- /dev/null +++ b/node_modules/fp-ts/lib/Traced.d.ts @@ -0,0 +1,85 @@ +/** + * @since 2.0.0 + */ +import { Comonad2C } from './Comonad' +import { Functor2 } from './Functor' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.0.0 + */ +export interface Traced<P, A> { + (p: P): A +} +/** + * Extracts a value at a relative position which depends on the current value. + * + * @since 2.0.0 + */ +export declare function tracks<P, A>(M: Monoid<P>, f: (a: A) => P): (wa: Traced<P, A>) => A +/** + * Get the current position + * + * @since 2.0.0 + */ +export declare function listen<P, A>(wa: Traced<P, A>): Traced<P, [A, P]> +/** + * Get a value which depends on the current position + * + * @since 2.0.0 + */ +export declare function listens<P, B>(f: (p: P) => B): <A>(wa: Traced<P, A>) => Traced<P, [A, B]> +/** + * Apply a function to the current position + * + * @since 2.0.0 + */ +export declare function censor<P>(f: (p: P) => P): <A>(wa: Traced<P, A>) => Traced<P, A> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getComonad<P>(monoid: Monoid<P>): Comonad2C<URI, P> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Traced<E, A>) => Traced<E, B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Traced' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Traced<E, A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Traced', E, (a: A) => B>) => import('./HKT').Kind2<'Traced', E, B> +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const traced: Functor2<URI> diff --git a/node_modules/fp-ts/lib/Traced.js b/node_modules/fp-ts/lib/Traced.js new file mode 100644 index 0000000..1331cde --- /dev/null +++ b/node_modules/fp-ts/lib/Traced.js @@ -0,0 +1,102 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.traced = exports.flap = exports.Functor = exports.URI = exports.map = void 0; +exports.tracks = tracks; +exports.listen = listen; +exports.listens = listens; +exports.censor = censor; +exports.getComonad = getComonad; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +// TODO: curry in v3 +/** + * Extracts a value at a relative position which depends on the current value. + * + * @since 2.0.0 + */ +function tracks(M, f) { + return function (wa) { return wa(f(wa(M.empty))); }; +} +/** + * Get the current position + * + * @since 2.0.0 + */ +function listen(wa) { + return function (e) { return [wa(e), e]; }; +} +/** + * Get a value which depends on the current position + * + * @since 2.0.0 + */ +function listens(f) { + return function (wa) { return function (e) { return [wa(e), f(e)]; }; }; +} +/** + * Apply a function to the current position + * + * @since 2.0.0 + */ +function censor(f) { + return function (wa) { return function (e) { return wa(f(e)); }; }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getComonad(monoid) { + function extend(wa, f) { + return function (p1) { return f(function (p2) { return wa(monoid.concat(p1, p2)); }); }; + } + function extract(wa) { + return wa(monoid.empty); + } + return { + URI: exports.URI, + _E: undefined, + map: _map, + extend: extend, + extract: extract + }; +} +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return function (p) { return f(fa(p)); }; }; }; +exports.map = map; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Traced'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.traced = exports.Functor; diff --git a/node_modules/fp-ts/lib/Traversable.d.ts b/node_modules/fp-ts/lib/Traversable.d.ts new file mode 100644 index 0000000..e78307d --- /dev/null +++ b/node_modules/fp-ts/lib/Traversable.d.ts @@ -0,0 +1,550 @@ +/** + * `Traversable` represents data structures which can be _traversed_ accumulating results and effects in some + * `Applicative` functor. + * + * - `traverse` runs an action for every element in a data structure, and accumulates the results. + * - `sequence` runs the actions _contained_ in a data structure, and accumulates the results. + * + * The `traverse` and `sequence` functions should be compatible in the following sense: + * + * - `traverse(A)(xs, f) <-> sequence(A)(A.map(xs, f))` + * - `sequence(A)(xs) <-> traverse(A)(xs, identity)` + * + * where `A` is an `Applicative` instance + * + * `Traversable` instances should also be compatible with the corresponding `Foldable` instances, in the following sense: + * + * ```ts + * import { getApplicative, make } from 'fp-ts/Const' + * + * const A = getApplicative(M) + * + * foldMap(M)(xs, f) = traverse(A)(xs, a => make(f(a))) + * ``` + * + * where `M` is a `Monoid` instance + * + * @since 2.0.0 + */ +import { + Applicative, + Applicative1, + Applicative2, + Applicative2C, + Applicative3, + Applicative3C, + Applicative4 +} from './Applicative' +import { + Foldable, + Foldable1, + Foldable2, + Foldable2C, + Foldable3, + FoldableComposition, + FoldableComposition11 +} from './Foldable' +import { Functor, Functor1, Functor2, Functor2C, Functor3, FunctorComposition, FunctorComposition11 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable<T> extends Functor<T>, Foldable<T> { + /** + * Runs an action for every element in a data structure and accumulates the results + */ + readonly traverse: Traverse<T> + readonly sequence: Sequence<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable1<T extends URIS> extends Functor1<T>, Foldable1<T> { + readonly traverse: Traverse1<T> + readonly sequence: Sequence1<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable2<T extends URIS2> extends Functor2<T>, Foldable2<T> { + readonly traverse: Traverse2<T> + readonly sequence: Sequence2<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable2C<T extends URIS2, TL> extends Functor2C<T, TL>, Foldable2C<T, TL> { + readonly traverse: Traverse2C<T, TL> + readonly sequence: Sequence2C<T, TL> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Traversable3<T extends URIS3> extends Functor3<T>, Foldable3<T> { + readonly traverse: Traverse3<T> + readonly sequence: Sequence3<T> +} +/** + * @since 2.0.0 + */ +export interface Traverse<T> { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, E, B>( + ta: HKT<T, A>, + f: (a: A) => Kind4<F, S, R, E, B> + ) => Kind4<F, S, R, E, HKT<T, B>> + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: HKT<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: HKT<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>(ta: HKT<T, A>, f: (a: A) => Kind2<F, E, B>) => Kind2<F, E, HKT<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: HKT<T, A>, + f: (a: A) => Kind2<F, E, B> + ) => Kind2<F, E, HKT<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: HKT<T, A>, f: (a: A) => Kind<F, B>) => Kind<F, HKT<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: HKT<T, A>, f: (a: A) => HKT<F, B>) => HKT<F, HKT<T, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse1<T extends URIS> { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, E, B>( + ta: Kind<T, A>, + f: (a: A) => Kind4<F, S, R, E, B> + ) => Kind4<F, S, R, E, Kind<T, B>> + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: Kind<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind<T, A>, + f: (a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: Kind<T, A>, + f: (a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: Kind<T, A>, + f: (a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind<T, A>, f: (a: A) => Kind<F, B>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind<T, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse2<T extends URIS2> { + <F extends URIS4>(F: Applicative4<F>): <TE, A, S, R, FE, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind4<F, S, R, FE, B> + ) => Kind4<F, S, R, FE, Kind2<T, TE, B>> + <F extends URIS3>(F: Applicative3<F>): <TE, A, R, FE, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TE, A, R, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <TE, A, FE, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <TE, A, B>( + ta: Kind2<T, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <E, A, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind<F, B> + ) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <E, A, B>(ta: Kind2<T, E, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse2C<T extends URIS2, E> { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, FE, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind4<F, S, R, FE, B> + ) => Kind4<F, S, R, FE, Kind2<T, E, B>> + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, E, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <A, R, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, E, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, E, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + ta: Kind2<T, E, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, E, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind2<T, E, A>, f: (a: A) => Kind<F, B>) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind2<T, E, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Traverse3<T extends URIS3> { + <F extends URIS4>(F: Applicative4<F>): <TR, TE, A, S, FR, FE, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind4<F, S, FR, FE, B> + ) => Kind4<F, S, FR, FE, Kind3<T, TR, TE, B>> + <F extends URIS3>(F: Applicative3<F>): <TR, TE, A, FR, FE, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind3<F, FR, FE, B> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TR, TE, A, FR, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind3<F, FR, FE, B> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <TR, A, TE, FE, B>( + ta: Kind3<T, TR, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind3<T, TR, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, TE, A, B>( + ta: Kind3<T, R, TE, A>, + f: (a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind3<T, R, TE, B>> + <F extends URIS>(F: Applicative1<F>): <R, E, A, B>( + ta: Kind3<T, R, E, A>, + f: (a: A) => Kind<F, B> + ) => Kind<F, Kind3<T, R, E, B>> + <F>(F: Applicative<F>): <R, E, A, B>(ta: Kind3<T, R, E, A>, f: (a: A) => HKT<F, B>) => HKT<F, Kind3<T, R, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Sequence<T> { + <F extends URIS4>(F: Applicative4<F>): <S, R, E, A>(ta: HKT<T, Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, HKT<T, A>> + <F extends URIS3>(F: Applicative3<F>): <R, E, A>(ta: HKT<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, HKT<T, A>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <R, A>(ta: HKT<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, HKT<T, A>> + <F extends URIS2>(F: Applicative2<F>): <E, A>(ta: HKT<T, Kind2<F, E, A>>) => Kind2<F, E, HKT<T, A>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>(ta: HKT<T, Kind2<F, E, A>>) => Kind2<F, E, HKT<T, A>> + <F extends URIS>(F: Applicative1<F>): <A>(ta: HKT<T, Kind<F, A>>) => Kind<F, HKT<T, A>> + <F>(F: Applicative<F>): <A>(ta: HKT<T, HKT<F, A>>) => HKT<F, HKT<T, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence1<T extends URIS> { + <F extends URIS4>(F: Applicative4<F>): <S, R, E, A>( + ta: Kind<T, Kind4<F, S, R, E, A>> + ) => Kind4<F, S, R, E, Kind<T, A>> + <F extends URIS3>(F: Applicative3<F>): <R, E, A>(ta: Kind<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, Kind<T, A>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <R, A>(ta: Kind<T, Kind3<F, R, E, A>>) => Kind3<F, R, E, Kind<T, A>> + <F extends URIS2>(F: Applicative2<F>): <E, A>(ta: Kind<T, Kind2<F, E, A>>) => Kind2<F, E, Kind<T, A>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>(ta: Kind<T, Kind2<F, E, A>>) => Kind2<F, E, Kind<T, A>> + <F extends URIS>(F: Applicative1<F>): <A>(ta: Kind<T, Kind<F, A>>) => Kind<F, Kind<T, A>> + <F>(F: Applicative<F>): <A>(ta: Kind<T, HKT<F, A>>) => HKT<F, Kind<T, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence2<T extends URIS2> { + <F extends URIS4>(F: Applicative4<F>): <TE, S, R, FE, A>( + ta: Kind2<T, TE, Kind4<F, S, R, FE, A>> + ) => Kind4<F, S, R, FE, Kind2<T, TE, A>> + <F extends URIS3>(F: Applicative3<F>): <TE, R, FE, A>( + ta: Kind2<T, TE, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, TE, A>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TE, R, A>( + ta: Kind2<T, TE, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, TE, A>> + <F extends URIS2>(F: Applicative2<F>): <TE, FE, A>(ta: Kind2<T, TE, Kind2<F, FE, A>>) => Kind2<F, FE, Kind2<T, TE, A>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <TE, A>( + ta: Kind2<T, TE, Kind2<F, FE, A>> + ) => Kind2<F, FE, Kind2<T, TE, A>> + <F extends URIS>(F: Applicative1<F>): <E, A>(ta: Kind2<T, E, Kind<F, A>>) => Kind<F, Kind2<T, E, A>> + <F>(F: Applicative<F>): <E, A>(ta: Kind2<T, E, HKT<F, A>>) => HKT<F, Kind2<T, E, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence2C<T extends URIS2, E> { + <F extends URIS4>(F: Applicative4<F>): <S, R, FE, A>( + ta: Kind2<T, E, Kind4<F, S, R, FE, A>> + ) => Kind4<F, S, R, FE, Kind2<T, E, A>> + <F extends URIS3>(F: Applicative3<F>): <R, FE, A>( + ta: Kind2<T, E, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, E, A>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <R, A>( + ta: Kind2<T, E, Kind3<F, R, FE, A>> + ) => Kind3<F, R, FE, Kind2<T, E, A>> + <F extends URIS2>(F: Applicative2<F>): <FE, A>(ta: Kind2<T, E, Kind2<F, FE, A>>) => Kind2<F, FE, Kind2<T, E, A>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A>(ta: Kind2<T, E, Kind2<F, FE, A>>) => Kind2<F, FE, Kind2<T, E, A>> + <F extends URIS>(F: Applicative1<F>): <A>(ta: Kind2<T, E, Kind<F, A>>) => Kind<F, Kind2<T, E, A>> + <F>(F: Applicative<F>): <A>(ta: Kind2<T, E, HKT<F, A>>) => HKT<F, Kind2<T, E, A>> +} +/** + * @since 2.0.0 + */ +export interface Sequence3<T extends URIS3> { + <F extends URIS4>(F: Applicative4<F>): <TR, TE, S, FR, FE, A>( + ta: Kind3<T, TR, TE, Kind4<F, S, FR, FE, A>> + ) => Kind4<F, S, FR, FE, Kind3<T, TR, TE, A>> + <F extends URIS3>(F: Applicative3<F>): <TR, TE, FR, FE, A>( + ta: Kind3<T, TR, TE, Kind3<F, FR, FE, A>> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, A>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <TR, TE, FR, A>( + ta: Kind3<T, TR, TE, Kind3<F, FR, FE, A>> + ) => Kind3<F, FR, FE, Kind3<T, TR, TE, A>> + <F extends URIS2>(F: Applicative2<F>): <R, TE, FE, A>( + ta: Kind3<T, R, TE, Kind2<F, FE, A>> + ) => Kind2<F, FE, Kind3<T, R, TE, A>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, TE, A>( + ta: Kind3<T, R, TE, Kind2<F, FE, A>> + ) => Kind2<F, FE, Kind3<T, R, TE, A>> + <F extends URIS>(F: Applicative1<F>): <R, E, A>(ta: Kind3<T, R, E, Kind<F, A>>) => Kind<F, Kind3<T, R, E, A>> + <F>(F: Applicative<F>): <R, E, A>(ta: Kind3<T, R, E, HKT<F, A>>) => HKT<F, Kind3<T, R, E, A>> +} +/** + * `traverse` composition. + * + * @since 2.10.0 + */ +export declare function traverse<T extends URIS, G extends URIS2>( + T: Traversable1<T>, + G: Traversable2<G> +): { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, FE, B>( + f: (a: A) => Kind4<F, S, R, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind4<F, S, R, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (a: A) => Kind3<F, R, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <A, R, B>( + f: (a: A) => Kind3<F, R, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind2<F, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind2<F, FE, Kind<T, Kind2<G, GE, B>>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => Kind<F, Kind<T, Kind2<G, GE, B>>> + <F>(F: Applicative<F>): <A, B>( + f: (a: A) => HKT<F, B> + ) => <GE>(tga: Kind<T, Kind2<G, GE, A>>) => HKT<F, Kind<T, Kind2<G, GE, B>>> +} +export declare function traverse<T extends URIS, G extends URIS>( + T: Traversable1<T>, + G: Traversable1<G> +): { + <F extends URIS4>(F: Applicative4<F>): <A, S, R, E, B>( + f: (a: A) => Kind4<F, S, R, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind4<F, S, R, E, Kind<T, Kind<G, B>>> + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (a: A) => Kind3<F, R, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind3<F, R, E, Kind<T, Kind<G, B>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (a: A) => Kind3<F, R, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind3<F, R, E, Kind<T, Kind<G, B>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (a: A) => Kind2<F, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind2<F, E, Kind<T, Kind<G, B>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (a: A) => Kind2<F, E, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind2<F, E, Kind<T, Kind<G, B>>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, B> + ) => (tga: Kind<T, Kind<G, A>>) => Kind<F, Kind<T, Kind<G, B>>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, B>) => (tga: Kind<T, Kind<G, A>>) => HKT<F, Kind<T, Kind<G, B>>> +} +export declare function traverse<T, G>( + T: Traversable<T>, + G: Traversable<G> +): <F>(F: Applicative<F>) => <A, B>(f: (a: A) => HKT<F, B>) => (tga: HKT<T, HKT<G, A>>) => HKT<F, HKT<T, HKT<G, B>>> +/** + * `sequence` composition. + * + * @since 2.10.0 + */ +export declare function sequence<T extends URIS, G extends URIS2>( + T: Traversable1<T>, + G: Traversable2<G> +): { + <F extends URIS4>(F: Applicative4<F>): <GE, S, R, FE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind4<F, S, R, FE, A>>> + ) => Kind4<F, S, R, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS3>(F: Applicative3<F>): <GE, R, FE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind3<F, R, FE, A>>> + ) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <GE, R, A>( + tgfa: Kind<T, Kind2<G, GE, Kind3<F, R, FE, A>>> + ) => Kind3<F, R, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS2>(F: Applicative2<F>): <GE, FE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind2<F, FE, A>>> + ) => Kind2<F, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <GE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind2<F, FE, A>>> + ) => Kind2<F, FE, Kind<T, Kind2<G, GE, A>>> + <F extends URIS>(F: Applicative1<F>): <GE, A>( + tgfa: Kind<T, Kind2<G, GE, Kind<F, A>>> + ) => Kind<F, Kind<T, Kind2<G, GE, A>>> + <F>(F: Applicative<F>): <A>(tgfa: HKT<T, HKT<G, HKT<F, A>>>) => HKT<F, HKT<T, HKT<G, A>>> +} +export declare function sequence<T extends URIS, G extends URIS>( + T: Traversable1<T>, + G: Traversable1<G> +): { + <F extends URIS4>(F: Applicative4<F>): <S, R, E, A>( + tgfa: Kind<T, Kind<G, Kind4<F, S, R, E, A>>> + ) => Kind4<F, S, R, E, Kind<T, Kind<G, A>>> + <F extends URIS3>(F: Applicative3<F>): <R, E, A>( + tgfa: Kind<T, Kind<G, Kind3<F, R, E, A>>> + ) => Kind3<F, R, E, Kind<T, Kind<G, A>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <R, A>( + tgfa: Kind<T, Kind<G, Kind3<F, R, E, A>>> + ) => Kind3<F, R, E, Kind<T, Kind<G, A>>> + <F extends URIS2>(F: Applicative2<F>): <E, A>( + tgfa: Kind<T, Kind<G, Kind2<F, E, A>>> + ) => Kind2<F, E, Kind<T, Kind<G, A>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>( + tgfa: Kind<T, Kind<G, Kind2<F, E, A>>> + ) => Kind2<F, E, Kind<T, Kind<G, A>>> + <F extends URIS>(F: Applicative1<F>): <A>(tgfa: Kind<T, Kind<G, Kind<F, A>>>) => Kind<F, Kind<T, Kind<G, A>>> + <F>(F: Applicative<F>): <A>(tgfa: HKT<T, HKT<G, HKT<F, A>>>) => HKT<F, HKT<T, HKT<G, A>>> +} +export declare function sequence<T, G>( + T: Traversable<T>, + G: Traversable<G> +): <F>(F: Applicative<F>) => <A>(tgfa: HKT<T, HKT<G, HKT<F, A>>>) => HKT<F, HKT<T, HKT<G, A>>> +/** + * @since 2.6.3 + */ +export interface PipeableTraverse1<T extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B>( + f: (a: A) => Kind3<F, FR, FE, B> + ) => (ta: Kind<T, A>) => Kind3<F, FR, FE, Kind<T, B>> + <F extends URIS3, FE>(F: Applicative3C<F, FE>): <A, FR, B>( + f: (a: A) => Kind3<F, FR, FE, B> + ) => (ta: Kind<T, A>) => Kind3<F, FR, FE, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, B> + ) => (ta: Kind<T, A>) => Kind2<F, FE, Kind<T, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, B> + ) => (ta: Kind<T, A>) => Kind2<F, FE, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(f: (a: A) => Kind<F, B>) => (ta: Kind<T, A>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, B>) => (ta: Kind<T, A>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.6.3 + */ +export interface PipeableTraverse2<T extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B>( + f: (a: A) => Kind3<F, FR, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind3<F, FR, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind<F, Kind2<T, TE, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, B>) => <TE>(ta: Kind2<T, TE, A>) => HKT<F, Kind2<T, TE, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface TraversableComposition<F, G> extends FoldableComposition<F, G>, FunctorComposition<F, G> { + readonly traverse: <H>( + H: Applicative<H> + ) => <A, B>(fga: HKT<F, HKT<G, A>>, f: (a: A) => HKT<H, B>) => HKT<H, HKT<F, HKT<G, B>>> + readonly sequence: <H>(H: Applicative<H>) => <A>(fga: HKT<F, HKT<G, HKT<H, A>>>) => HKT<H, HKT<F, HKT<G, A>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface TraverseComposition11<F extends URIS, G extends URIS> { + <H extends URIS3>(H: Applicative3<H>): <R, E, A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind3<H, R, E, B> + ) => Kind3<H, R, E, Kind<F, Kind<G, B>>> + <H extends URIS2>(H: Applicative2<H>): <E, A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind2<H, E, B> + ) => Kind2<H, E, Kind<F, Kind<G, B>>> + <H extends URIS2, E>(H: Applicative2C<H, E>): <A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind2<H, E, B> + ) => Kind2<H, E, Kind<F, Kind<G, B>>> + <H extends URIS>(H: Applicative1<H>): <A, B>( + fga: Kind<F, Kind<G, A>>, + f: (a: A) => Kind<H, B> + ) => Kind<H, Kind<F, Kind<G, B>>> + <H>(H: Applicative<H>): <A, B>(fga: Kind<F, Kind<G, A>>, f: (a: A) => HKT<H, B>) => HKT<H, Kind<F, Kind<G, B>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface SequenceComposition11<F extends URIS, G extends URIS> { + <H extends URIS3>(H: Applicative3<H>): <R, E, A>( + fga: Kind<F, Kind<G, Kind3<H, R, E, A>>> + ) => Kind3<H, R, E, Kind<F, Kind<G, A>>> + <H extends URIS2>(H: Applicative2<H>): <E, A>( + fga: Kind<F, Kind<G, Kind2<H, E, A>>> + ) => Kind2<H, E, Kind<F, Kind<G, A>>> + <H extends URIS2, E>(H: Applicative2C<H, E>): <A>( + fga: Kind<F, Kind<G, Kind2<H, E, A>>> + ) => Kind2<H, E, Kind<F, Kind<G, A>>> + <H extends URIS>(H: Applicative1<H>): <A>(fga: Kind<F, Kind<G, Kind<H, A>>>) => Kind<H, Kind<F, Kind<G, A>>> + <H>(H: Applicative<H>): <A>(fga: Kind<F, Kind<G, HKT<H, A>>>) => HKT<H, Kind<F, Kind<G, A>>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface TraversableComposition11<F extends URIS, G extends URIS> + extends FoldableComposition11<F, G>, + FunctorComposition11<F, G> { + readonly traverse: TraverseComposition11<F, G> + readonly sequence: SequenceComposition11<F, G> +} +/** + * Use + * - [`traverse`](#traverse) + * - [`sequence`](#sequence) + * + * instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getTraversableComposition<F extends URIS, G extends URIS>( + F: Traversable1<F>, + G: Traversable1<G> +): TraversableComposition11<F, G> +/** @deprecated */ +export declare function getTraversableComposition<F, G>( + F: Traversable<F>, + G: Traversable<G> +): TraversableComposition<F, G> diff --git a/node_modules/fp-ts/lib/Traversable.js b/node_modules/fp-ts/lib/Traversable.js new file mode 100644 index 0000000..12911d9 --- /dev/null +++ b/node_modules/fp-ts/lib/Traversable.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.traverse = traverse; +exports.sequence = sequence; +exports.getTraversableComposition = getTraversableComposition; +var Foldable_1 = require("./Foldable"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +function traverse(T, G) { + return function (F) { + var traverseT = T.traverse(F); + var traverseG = G.traverse(F); + return function (f) { return function (fga) { return traverseT(fga, function (ga) { return traverseG(ga, f); }); }; }; + }; +} +function sequence(T, G) { + return function (F) { + var sequenceT = T.sequence(F); + var sequenceG = G.sequence(F); + return function (fgha) { return sequenceT(T.map(fgha, sequenceG)); }; + }; +} +/** @deprecated */ +function getTraversableComposition(F, G) { + var map = (0, Functor_1.getFunctorComposition)(F, G).map; + var FC = (0, Foldable_1.getFoldableComposition)(F, G); + var _traverse = traverse(F, G); + var _sequence = sequence(F, G); + return { + map: map, + reduce: FC.reduce, + foldMap: FC.foldMap, + reduceRight: FC.reduceRight, + traverse: function (H) { + var traverseH = _traverse(H); + return function (fga, f) { return (0, function_1.pipe)(fga, traverseH(f)); }; + }, + sequence: function (H) { + var sequenceH = _sequence(H); + return function (fgha) { return (0, function_1.pipe)(fgha, sequenceH); }; + } + }; +} diff --git a/node_modules/fp-ts/lib/TraversableWithIndex.d.ts b/node_modules/fp-ts/lib/TraversableWithIndex.d.ts new file mode 100644 index 0000000..5872a03 --- /dev/null +++ b/node_modules/fp-ts/lib/TraversableWithIndex.d.ts @@ -0,0 +1,191 @@ +/** + * A `Traversable` with an additional index. + * A `TraversableWithIndex` instance must be compatible with its `Traversable` instance + * + * ```ts + * traverse(F)(ta, f) = traverseWithIndex(F)(ta, (_, a) => f(a)) + * ``` + * + * with its `FoldableWithIndex` instance + * + * ```ts + * foldMapWithIndex(M)(ta, f) = traverseWithIndex(getApplicative(M))(ta, (i, a) => new Const(f(i, a))).value + * ``` + * + * and with its `FunctorWithIndex` instance + * + * ```purescript + * mapWithIndex(ta, f) = traverseWithIndex(identity)(ta, (i, a) => new Identity(f(i, a))).value + * ``` + * + * @since 2.0.0 + */ +import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3, Applicative3C } from './Applicative' +import { FoldableWithIndex, FoldableWithIndex1, FoldableWithIndex2, FoldableWithIndex2C } from './FoldableWithIndex' +import { FunctorWithIndex, FunctorWithIndex1, FunctorWithIndex2, FunctorWithIndex2C } from './FunctorWithIndex' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Traversable, Traversable1, Traversable2, Traversable2C } from './Traversable' +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex<T, I> extends FunctorWithIndex<T, I>, FoldableWithIndex<T, I>, Traversable<T> { + readonly traverseWithIndex: TraverseWithIndex<T, I> +} +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex1<T extends URIS, I> + extends FunctorWithIndex1<T, I>, + FoldableWithIndex1<T, I>, + Traversable1<T> { + readonly traverseWithIndex: TraverseWithIndex1<T, I> +} +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex2<T extends URIS2, I> + extends FunctorWithIndex2<T, I>, + FoldableWithIndex2<T, I>, + Traversable2<T> { + readonly traverseWithIndex: TraverseWithIndex2<T, I> +} +/** + * @since 2.0.0 + */ +export interface TraversableWithIndex2C<T extends URIS2, I, E> + extends FunctorWithIndex2C<T, I, E>, + FoldableWithIndex2C<T, I, E>, + Traversable2C<T, E> { + readonly traverseWithIndex: TraverseWithIndex2C<T, I, E> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex<T, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, HKT<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, HKT<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: HKT<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, HKT<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: HKT<T, A>, f: (i: I, a: A) => Kind<F, B>) => Kind<F, HKT<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: HKT<T, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, HKT<T, B>> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex1<T extends URIS, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: Kind<T, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind<T, A>, f: (i: I, a: A) => Kind<F, B>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind<T, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex2<T extends URIS2, I> { + <F extends URIS3>(F: Applicative3<F>): <TE, A, R, FE, B>( + ta: Kind2<T, TE, A>, + f: (i: I, a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <TE, A, FE, B>( + ta: Kind2<T, TE, A>, + f: (i: I, a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <TE, A, B>( + ta: Kind2<T, TE, A>, + f: (i: I, a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <E, A, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind<F, B> + ) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <E, A, B>(ta: Kind2<T, E, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.0.0 + */ +export interface TraverseWithIndex2C<T extends URIS2, I, E> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind3<F, R, FE, B> + ) => Kind3<F, R, FE, Kind2<T, E, B>> + <F extends URIS3>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => Kind3<F, R, E, Kind2<T, E, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind2<F, FE, B> + ) => Kind2<F, FE, Kind2<T, E, B>> + <F extends URIS2>(F: Applicative2C<F, E>): <A, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind2<F, E, B> + ) => Kind2<F, E, Kind2<T, E, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + ta: Kind2<T, E, A>, + f: (i: I, a: A) => Kind<F, B> + ) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind2<T, E, A>, f: (i: I, a: A) => HKT<F, B>) => HKT<F, Kind2<T, E, B>> +} +/** + * @since 2.6.3 + */ +export interface PipeableTraverseWithIndex1<T extends URIS, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => (ta: Kind<T, A>) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (i: I, a: A) => Kind3<F, R, E, B> + ) => (ta: Kind<T, A>) => Kind3<F, R, E, Kind<T, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (i: I, a: A) => Kind2<F, E, B> + ) => (ta: Kind<T, A>) => Kind2<F, E, Kind<T, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (i: I, a: A) => Kind2<F, E, B> + ) => (ta: Kind<T, A>) => Kind2<F, E, Kind<T, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(f: (i: I, a: A) => Kind<F, B>) => (ta: Kind<T, A>) => Kind<F, Kind<T, B>> + <F>(F: Applicative<F>): <A, B>(f: (i: I, a: A) => HKT<F, B>) => (ta: Kind<T, A>) => HKT<F, Kind<T, B>> +} +/** + * @since 2.6.3 + */ +export interface PipeableTraverseWithIndex2<T extends URIS2, I> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (i: I, a: A) => Kind3<F, R, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind3<F, R, FE, Kind2<T, TE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (i: I, a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (i: I, a: A) => Kind2<F, FE, B> + ) => <TE>(ta: Kind2<T, TE, A>) => Kind2<F, FE, Kind2<T, TE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (i: I, a: A) => Kind<F, B> + ) => <E>(ta: Kind2<T, E, A>) => Kind<F, Kind2<T, E, B>> + <F>(F: Applicative<F>): <A, B>(f: (i: I, a: A) => HKT<F, B>) => <E>(ta: Kind2<T, E, A>) => HKT<F, Kind2<T, E, B>> +} diff --git a/node_modules/fp-ts/lib/TraversableWithIndex.js b/node_modules/fp-ts/lib/TraversableWithIndex.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/TraversableWithIndex.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/Tree.d.ts b/node_modules/fp-ts/lib/Tree.d.ts new file mode 100644 index 0000000..89a709c --- /dev/null +++ b/node_modules/fp-ts/lib/Tree.d.ts @@ -0,0 +1,393 @@ +/** + * Multi-way trees (aka rose trees) and forests, where a forest is + * + * ```ts + * type Forest<A> = Array<Tree<A>> + * ``` + * + * @since 2.0.0 + */ +import { Applicative1 } from './Applicative' +import { Apply1 } from './Apply' +import { Chain1 } from './Chain' +import { Comonad1 } from './Comonad' +import { Eq } from './Eq' +import { Foldable1 } from './Foldable' +import { Functor1 } from './Functor' +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Monad as MonadHKT, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad' +import { Monoid } from './Monoid' +import { Pointed1 } from './Pointed' +import { Predicate } from './Predicate' +import { Show } from './Show' +import { PipeableTraverse1, Traversable1 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export type Forest<A> = Array<Tree<A>> +/** + * @category model + * @since 2.0.0 + */ +export interface Tree<A> { + readonly value: A + readonly forest: Forest<A> +} +/** + * @category constructors + * @since 2.0.0 + */ +export declare function make<A>(value: A, forest?: Forest<A>): Tree<A> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getShow<A>(S: Show<A>): Show<Tree<A>> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getEq<A>(E: Eq<A>): Eq<Tree<A>> +/** + * Neat 2-dimensional drawing of a forest + * + * @since 2.0.0 + */ +export declare function drawForest(forest: Forest<string>): string +/** + * Neat 2-dimensional drawing of a tree + * + * @example + * import { make, drawTree } from 'fp-ts/Tree' + * + * const fa = make('a', [ + * make('b'), + * make('c'), + * make('d', [make('e'), make('f')]) + * ]) + * + * assert.strictEqual(drawTree(fa), `a + * ├─ b + * ├─ c + * └─ d + * ├─ e + * └─ f`) + * + * + * @since 2.0.0 + */ +export declare function drawTree(tree: Tree<string>): string +/** + * Build a (possibly infinite) tree from a seed value in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldTree<A, B>(b: B, f: (b: B) => [A, Array<B>]): Tree<A> +/** + * Build a (possibly infinite) forest from a list of seed values in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldForest<A, B>(bs: Array<B>, f: (b: B) => [A, Array<B>]): Forest<A> +/** + * Monadic tree builder, in depth-first order + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldTreeM<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A, B>(b: B, f: (b: B) => Kind4<M, S, R, E, [A, Array<B>]>) => Kind4<M, S, R, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS3>( + M: Monad3<M> +): <R, E, A, B>(b: B, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A, B>(b: B, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS2>( + M: Monad2<M> +): <E, A, B>(b: B, f: (b: B) => Kind2<M, E, [A, Array<B>]>) => Kind2<M, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(b: B, f: (b: B) => Kind2<M, E, [A, Array<B>]>) => Kind2<M, E, Tree<A>> +export declare function unfoldTreeM<M extends URIS>( + M: Monad1<M> +): <A, B>(b: B, f: (b: B) => Kind<M, [A, Array<B>]>) => Kind<M, Tree<A>> +export declare function unfoldTreeM<M>( + M: MonadHKT<M> +): <A, B>(b: B, f: (b: B) => HKT<M, [A, Array<B>]>) => HKT<M, Tree<A>> +/** + * Monadic forest builder, in depth-first order + * + * @category constructors + * @since 2.0.0 + */ +export declare function unfoldForestM<M extends URIS4>( + M: Monad4<M> +): <S, R, E, A, B>(bs: Array<B>, f: (b: B) => Kind4<M, S, R, E, [A, Array<B>]>) => Kind4<M, S, R, E, Forest<A>> +export declare function unfoldForestM<M extends URIS3>( + M: Monad3<M> +): <R, E, A, B>(bs: Array<B>, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Forest<A>> +export declare function unfoldForestM<M extends URIS3, E>( + M: Monad3C<M, E> +): <R, A, B>(bs: Array<B>, f: (b: B) => Kind3<M, R, E, [A, Array<B>]>) => Kind3<M, R, E, Forest<A>> +export declare function unfoldForestM<M extends URIS2>( + M: Monad2<M> +): <R, E, B>(bs: Array<B>, f: (b: B) => Kind2<M, R, [E, Array<B>]>) => Kind2<M, R, Forest<E>> +export declare function unfoldForestM<M extends URIS2, E>( + M: Monad2C<M, E> +): <A, B>(bs: Array<B>, f: (b: B) => Kind2<M, E, [A, Array<B>]>) => Kind2<M, E, Forest<A>> +export declare function unfoldForestM<M extends URIS>( + M: Monad1<M> +): <A, B>(bs: Array<B>, f: (b: B) => Kind<M, [A, Array<B>]>) => Kind<M, Forest<A>> +export declare function unfoldForestM<M>( + M: MonadHKT<M> +): <A, B>(bs: Array<B>, f: (b: B) => HKT<M, [A, Array<B>]>) => HKT<M, Forest<A>> +/** + * Fold a tree into a "summary" value in depth-first order. + * + * For each node in the tree, apply `f` to the `value` and the result of applying `f` to each `forest`. + * + * This is also known as the catamorphism on trees. + * + * @example + * import { fold, make } from 'fp-ts/Tree' + * import { concatAll } from 'fp-ts/Monoid' + * import { MonoidSum } from 'fp-ts/number' + * + * const t = make(1, [make(2), make(3)]) + * + * const sum = concatAll(MonoidSum) + * + * // Sum the values in a tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => a + sum(bs))(t), 6) + * + * // Find the maximum value in the tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => bs.reduce((b, acc) => Math.max(b, acc), a))(t), 3) + * + * // Count the number of leaves in the tree: + * assert.deepStrictEqual(fold((_: number, bs: Array<number>) => (bs.length === 0 ? 1 : sum(bs)))(t), 2) + * + * @category folding + * @since 2.6.0 + */ +export declare function fold<A, B>(f: (a: A, bs: Array<B>) => B): (tree: Tree<A>) => B +/** + * @since 2.0.0 + */ +export declare const ap: <A>(fa: Tree<A>) => <B>(fab: Tree<(a: A) => B>) => Tree<B> +/** + * @category sequencing + * @since 2.14.0 + */ +export declare const flatMap: { + <A, B>(f: (a: A) => Tree<B>): (ma: Tree<A>) => Tree<B> + <A, B>(ma: Tree<A>, f: (a: A) => Tree<B>): Tree<B> +} +/** + * @since 2.0.0 + */ +export declare const extend: <A, B>(f: (wa: Tree<A>) => B) => (wa: Tree<A>) => Tree<B> +/** + * @since 2.0.0 + */ +export declare const duplicate: <A>(wa: Tree<A>) => Tree<Tree<A>> +/** + * @category sequencing + * @since 2.0.0 + */ +export declare const flatten: <A>(mma: Tree<Tree<A>>) => Tree<A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => (fa: Tree<A>) => Tree<B> +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Tree<A>) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Tree<A>) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Tree<A>) => B +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <A>(wa: Tree<A>) => A +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse1<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable1<URI>['sequence'] +/** + * @category constructors + * @since 2.7.0 + */ +export declare const of: <A>(a: A) => Tree<A> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Tree' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind<A> { + readonly [URI]: Tree<A> + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor1<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>(a: A) => <B>(fab: Kind<'Tree', (a: A) => B>) => Kind<'Tree', B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Pointed: Pointed1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Apply: Apply1<URI> +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const apFirst: <B>(second: Tree<B>) => <A>(first: Kind<'Tree', A>) => Kind<'Tree', A> +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +export declare const apSecond: <B>(second: Tree<B>) => <A>(first: Kind<'Tree', A>) => Kind<'Tree', B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Applicative: Applicative1<URI> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Chain: Chain1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Monad: Monad1<URI> +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @since 2.0.0 + */ +export declare const chainFirst: <A, B>(f: (a: A) => Tree<B>) => (first: Tree<A>) => Tree<A> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable1<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad1<URI> +/** + * @category do notation + * @since 2.9.0 + */ +export declare const Do: Tree<{}> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bindTo: <N extends string>( + name: N +) => <A>(fa: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in N]: A }> +declare const let_: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => B +) => (fa: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +export { + /** + * @category do notation + * @since 2.13.0 + */ + let_ as let +} +/** + * @category do notation + * @since 2.8.0 + */ +export declare const bind: <N extends string, A, B>( + name: Exclude<N, keyof A>, + f: (a: A) => Kind<'Tree', B> +) => (ma: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @category do notation + * @since 2.8.0 + */ +export declare const apS: <N extends string, A, B>( + name: Exclude<N, keyof A>, + fb: Tree<B> +) => (fa: Kind<'Tree', A>) => Kind<'Tree', { readonly [K in keyof A | N]: K extends keyof A ? A[K] : B }> +/** + * @since 2.0.0 + */ +export declare function elem<A>(E: Eq<A>): (a: A, fa: Tree<A>) => boolean +/** + * @since 2.11.0 + */ +export declare const exists: <A>(predicate: Predicate<A>) => (ma: Tree<A>) => boolean +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +export declare const chain: <A, B>(f: (a: A) => Tree<B>) => (ma: Tree<A>) => Tree<B> +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tree` + * (where `T` is from `import T from 'fp-ts/Tree'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const tree: Monad1<URI> & Foldable1<URI> & Traversable1<URI> & Comonad1<URI> diff --git a/node_modules/fp-ts/lib/Tree.js b/node_modules/fp-ts/lib/Tree.js new file mode 100644 index 0000000..b1fa164 --- /dev/null +++ b/node_modules/fp-ts/lib/Tree.js @@ -0,0 +1,525 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tree = exports.chain = exports.exists = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Traversable = exports.Foldable = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.Functor = exports.URI = exports.of = exports.sequence = exports.traverse = exports.extract = exports.reduceRight = exports.foldMap = exports.reduce = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.flatMap = exports.ap = void 0; +exports.make = make; +exports.getShow = getShow; +exports.getEq = getEq; +exports.drawForest = drawForest; +exports.drawTree = drawTree; +exports.unfoldTree = unfoldTree; +exports.unfoldForest = unfoldForest; +exports.unfoldTreeM = unfoldTreeM; +exports.unfoldForestM = unfoldForestM; +exports.fold = fold; +exports.elem = elem; +var Apply_1 = require("./Apply"); +var A = __importStar(require("./Array")); +var Chain_1 = require("./Chain"); +var Eq_1 = require("./Eq"); +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var _ = __importStar(require("./internal")); +/** + * @category constructors + * @since 2.0.0 + */ +function make(value, forest) { + if (forest === void 0) { forest = []; } + return { + value: value, + forest: forest + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getShow(S) { + var show = function (t) { + return A.isEmpty(t.forest) + ? "make(".concat(S.show(t.value), ")") + : "make(".concat(S.show(t.value), ", [").concat(t.forest.map(show).join(', '), "])"); + }; + return { + show: show + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getEq(E) { + // eslint-disable-next-line prefer-const + var SA; + var R = (0, Eq_1.fromEquals)(function (x, y) { return E.equals(x.value, y.value) && SA.equals(x.forest, y.forest); }); + SA = A.getEq(R); + return R; +} +var draw = function (indentation, forest) { + var r = ''; + var len = forest.length; + var tree; + for (var i = 0; i < len; i++) { + tree = forest[i]; + var isLast = i === len - 1; + r += indentation + (isLast ? '└' : '├') + '─ ' + tree.value; + r += draw(indentation + (len > 1 && !isLast ? '│ ' : ' '), tree.forest); + } + return r; +}; +/** + * Neat 2-dimensional drawing of a forest + * + * @since 2.0.0 + */ +function drawForest(forest) { + return draw('\n', forest); +} +/** + * Neat 2-dimensional drawing of a tree + * + * @example + * import { make, drawTree } from 'fp-ts/Tree' + * + * const fa = make('a', [ + * make('b'), + * make('c'), + * make('d', [make('e'), make('f')]) + * ]) + * + * assert.strictEqual(drawTree(fa), `a + * ├─ b + * ├─ c + * └─ d + * ├─ e + * └─ f`) + * + * + * @since 2.0.0 + */ +function drawTree(tree) { + return tree.value + drawForest(tree.forest); +} +/** + * Build a (possibly infinite) tree from a seed value in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +function unfoldTree(b, f) { + var _a = f(b), a = _a[0], bs = _a[1]; + return { value: a, forest: unfoldForest(bs, f) }; +} +/** + * Build a (possibly infinite) forest from a list of seed values in breadth-first order. + * + * @category constructors + * @since 2.0.0 + */ +function unfoldForest(bs, f) { + return bs.map(function (b) { return unfoldTree(b, f); }); +} +function unfoldTreeM(M) { + var unfoldForestMM = unfoldForestM(M); + return function (b, f) { return M.chain(f(b), function (_a) { + var a = _a[0], bs = _a[1]; + return M.map(unfoldForestMM(bs, f), function (ts) { return ({ value: a, forest: ts }); }); + }); }; +} +function unfoldForestM(M) { + var traverseM = A.traverse(M); + return function (bs, f) { + return (0, function_1.pipe)(bs, traverseM(function (b) { return unfoldTreeM(M)(b, f); })); + }; +} +/** + * Fold a tree into a "summary" value in depth-first order. + * + * For each node in the tree, apply `f` to the `value` and the result of applying `f` to each `forest`. + * + * This is also known as the catamorphism on trees. + * + * @example + * import { fold, make } from 'fp-ts/Tree' + * import { concatAll } from 'fp-ts/Monoid' + * import { MonoidSum } from 'fp-ts/number' + * + * const t = make(1, [make(2), make(3)]) + * + * const sum = concatAll(MonoidSum) + * + * // Sum the values in a tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => a + sum(bs))(t), 6) + * + * // Find the maximum value in the tree: + * assert.deepStrictEqual(fold((a: number, bs: Array<number>) => bs.reduce((b, acc) => Math.max(b, acc), a))(t), 3) + * + * // Count the number of leaves in the tree: + * assert.deepStrictEqual(fold((_: number, bs: Array<number>) => (bs.length === 0 ? 1 : sum(bs)))(t), 2) + * + * @category folding + * @since 2.6.0 + */ +function fold(f) { + var go = function (tree) { return f(tree.value, tree.forest.map(go)); }; + return go; +} +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +var _ap = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _traverse = function (F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +}; +/** + * @since 2.0.0 + */ +var ap = function (fa) { return function (fab) { return _ap(fab, fa); }; }; +exports.ap = ap; +/** + * @category sequencing + * @since 2.14.0 + */ +exports.flatMap = (0, function_1.dual)(2, function (ma, f) { + var _a = f(ma.value), value = _a.value, forest = _a.forest; + var concat = A.getMonoid().concat; + return { + value: value, + forest: concat(forest, ma.forest.map((0, exports.flatMap)(f))) + }; +}); +/** + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { return ({ + value: f(wa), + forest: wa.forest.map((0, exports.extend)(f)) +}); }; }; +exports.extend = extend; +/** + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category sequencing + * @since 2.0.0 + */ +exports.flatten = (0, exports.flatMap)(function_1.identity); +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return ({ + value: f(fa.value), + forest: fa.forest.map((0, exports.map)(f)) +}); }; }; +exports.map = map; +/** + * @category folding + * @since 2.0.0 + */ +var reduce = function (b, f) { + return function (fa) { + var r = f(b, fa.value); + var len = fa.forest.length; + for (var i = 0; i < len; i++) { + r = (0, function_1.pipe)(fa.forest[i], (0, exports.reduce)(r, f)); + } + return r; + }; +}; +exports.reduce = reduce; +/** + * @category folding + * @since 2.0.0 + */ +var foldMap = function (M) { return function (f) { + return (0, exports.reduce)(M.empty, function (acc, a) { return M.concat(acc, f(a)); }); +}; }; +exports.foldMap = foldMap; +/** + * @category folding + * @since 2.0.0 + */ +var reduceRight = function (b, f) { + return function (fa) { + var r = b; + var len = fa.forest.length; + for (var i = len - 1; i >= 0; i--) { + r = (0, function_1.pipe)(fa.forest[i], (0, exports.reduceRight)(r, f)); + } + return f(fa.value, r); + }; +}; +exports.reduceRight = reduceRight; +/** + * @category Extract + * @since 2.6.2 + */ +var extract = function (wa) { return wa.value; }; +exports.extract = extract; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + var traverseF = A.traverse(F); + var out = function (f) { + return function (ta) { + return F.ap(F.map(f(ta.value), function (value) { return function (forest) { return ({ + value: value, + forest: forest + }); }; }), (0, function_1.pipe)(ta.forest, traverseF(out(f)))); + }; + }; + return out; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { return (0, exports.traverse)(F)(function_1.identity); }; +exports.sequence = sequence; +/** + * @category constructors + * @since 2.7.0 + */ +var of = function (a) { return make(a); }; +exports.of = of; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Tree'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.10.0 + */ +exports.Pointed = { + URI: exports.URI, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Apply = { + URI: exports.URI, + map: _map, + ap: _ap +}; +/** + * Combine two effectful actions, keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.apFirst = (0, Apply_1.apFirst)(exports.Apply); +/** + * Combine two effectful actions, keeping only the result of the second. + * + * @since 2.0.0 + */ +exports.apSecond = (0, Apply_1.apSecond)(exports.Apply); +/** + * @category instances + * @since 2.7.0 + */ +exports.Applicative = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Chain = { + URI: exports.URI, + map: _map, + ap: _ap, + chain: exports.flatMap +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Monad = { + URI: exports.URI, + map: _map, + ap: _ap, + of: exports.of, + chain: exports.flatMap +}; +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @since 2.0.0 + */ +exports.chainFirst = (0, Chain_1.chainFirst)(exports.Chain); +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +// ------------------------------------------------------------------------------------- +// do notation +// ------------------------------------------------------------------------------------- +/** + * @category do notation + * @since 2.9.0 + */ +exports.Do = (0, exports.of)(_.emptyRecord); +/** + * @category do notation + * @since 2.8.0 + */ +exports.bindTo = (0, Functor_1.bindTo)(exports.Functor); +var let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor); +exports.let = let_; +/** + * @category do notation + * @since 2.8.0 + */ +exports.bind = (0, Chain_1.bind)(exports.Chain); +/** + * @category do notation + * @since 2.8.0 + */ +exports.apS = (0, Apply_1.apS)(exports.Apply); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +function elem(E) { + var go = function (a, fa) { return E.equals(a, fa.value) || fa.forest.some(function (tree) { return go(a, tree); }); }; + return go; +} +/** + * @since 2.11.0 + */ +var exists = function (predicate) { + return function (ma) { + return predicate(ma.value) || ma.forest.some((0, exports.exists)(predicate)); + }; +}; +exports.exists = exists; +// ------------------------------------------------------------------------------------- +// legacy +// ------------------------------------------------------------------------------------- +/** + * Alias of `flatMap`. + * + * @category legacy + * @since 2.0.0 + */ +exports.chain = exports.flatMap; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tree` + * (where `T` is from `import T from 'fp-ts/Tree'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.tree = { + URI: exports.URI, + map: _map, + of: exports.of, + ap: _ap, + chain: exports.flatMap, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence, + extract: exports.extract, + extend: _extend +}; diff --git a/node_modules/fp-ts/lib/Tuple.d.ts b/node_modules/fp-ts/lib/Tuple.d.ts new file mode 100644 index 0000000..f5ccdfe --- /dev/null +++ b/node_modules/fp-ts/lib/Tuple.d.ts @@ -0,0 +1,198 @@ +/** + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Bifunctor2 } from './Bifunctor' +import { Chain2C } from './Chain' +import { ChainRec2C } from './ChainRec' +import { Comonad2 } from './Comonad' +import { Foldable2 } from './Foldable' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { Monoid } from './Monoid' +import { Semigroup } from './Semigroup' +import { Semigroupoid2 } from './Semigroupoid' +import { PipeableTraverse2, Traversable2 } from './Traversable' +/** + * @since 2.0.0 + */ +export declare const fst: <A, E>(ea: [A, E]) => A +/** + * @since 2.0.0 + */ +export declare const snd: <A, E>(ea: [A, E]) => E +/** + * @since 2.0.0 + */ +export declare const swap: <A, E>(ea: [A, E]) => [E, A] +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApply<S>(S: Semigroup<S>): Apply2C<URI, S> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getApplicative<M>(M: Monoid<M>): Applicative2C<URI, M> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getChain<S>(S: Semigroup<S>): Chain2C<URI, S> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getMonad<M>(M: Monoid<M>): Monad2C<URI, M> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getChainRec<M>(M: Monoid<M>): ChainRec2C<URI, M> +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +export declare const bimap: <E, G, A, B>(mapSnd: (e: E) => G, mapFst: (a: A) => B) => (fa: [A, E]) => [B, G] +/** + * Map a function over the first component of a `Tuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.0.0 + */ +export declare const mapFst: <A, B>(f: (a: A) => B) => <E>(fa: [A, E]) => [B, E] +/** + * Map a function over the second component of a `Tuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +export declare const mapSnd: <E, G>(f: (e: E) => G) => <A>(fa: [A, E]) => [A, G] +/** + * @since 2.0.0 + */ +export declare const compose: <A, B>(ab: [B, A]) => <C>(bc: [C, B]) => [C, A] +/** + * @since 2.0.0 + */ +export declare const extend: <E, A, B>(f: (wa: [A, E]) => B) => (wa: [A, E]) => [B, E] +/** + * @since 2.0.0 + */ +export declare const duplicate: <E, A>(wa: [A, E]) => [[A, E], E] +/** + * @category Extract + * @since 2.6.2 + */ +export declare const extract: <E, A>(wa: [A, E]) => A +/** + * @category folding + * @since 2.0.0 + */ +export declare const foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: [A, E]) => M +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: [A, E]) => B +/** + * @category folding + * @since 2.0.0 + */ +export declare const reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: [A, E]) => B +/** + * @category traversing + * @since 2.6.3 + */ +export declare const traverse: PipeableTraverse2<URI> +/** + * @category traversing + * @since 2.6.3 + */ +export declare const sequence: Traversable2<URI>['sequence'] +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Tuple' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: [A, E] + } +} +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Tuple', E, (a: A) => B>) => import('./HKT').Kind2<'Tuple', E, B> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Bifunctor: Bifunctor2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Semigroupoid: Semigroupoid2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Comonad: Comonad2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Foldable: Foldable2<URI> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Traversable: Traversable2<URI> +/** + * Use [`mapFst`](#mapfst) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: [A, E]) => [B, E] +/** + * Use [`mapSnd`](#mapsnd) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: [A, E]) => [A, G] +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tuple` + * (where `T` is from `import T from 'fp-ts/Tuple'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const tuple: Semigroupoid2<URI> & Bifunctor2<URI> & Comonad2<URI> & Foldable2<URI> & Traversable2<URI> diff --git a/node_modules/fp-ts/lib/Tuple.js b/node_modules/fp-ts/lib/Tuple.js new file mode 100644 index 0000000..7635288 --- /dev/null +++ b/node_modules/fp-ts/lib/Tuple.js @@ -0,0 +1,355 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tuple = exports.mapLeft = exports.map = exports.Traversable = exports.Foldable = exports.Comonad = exports.Semigroupoid = exports.Bifunctor = exports.flap = exports.Functor = exports.URI = exports.sequence = exports.traverse = exports.reduceRight = exports.reduce = exports.foldMap = exports.extract = exports.duplicate = exports.extend = exports.compose = exports.mapSnd = exports.mapFst = exports.bimap = exports.swap = exports.snd = exports.fst = void 0; +exports.getApply = getApply; +exports.getApplicative = getApplicative; +exports.getChain = getChain; +exports.getMonad = getMonad; +exports.getChainRec = getChainRec; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +var RT = __importStar(require("./ReadonlyTuple")); +// ------------------------------------------------------------------------------------- +// model +// ------------------------------------------------------------------------------------- +/** + * @since 2.0.0 + */ +exports.fst = RT.fst; +/** + * @since 2.0.0 + */ +exports.snd = RT.snd; +/** + * @since 2.0.0 + */ +var swap = function (ea) { return [(0, exports.snd)(ea), (0, exports.fst)(ea)]; }; +exports.swap = swap; +/** + * @category instances + * @since 2.0.0 + */ +function getApply(S) { + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return [(0, exports.fst)(fab)((0, exports.fst)(fa)), S.concat((0, exports.snd)(fab), (0, exports.snd)(fa))]; } + }; +} +var of = function (M) { + return function (a) { + return [a, M.empty]; + }; +}; +/** + * @category instances + * @since 2.0.0 + */ +function getApplicative(M) { + var A = getApply(M); + return { + URI: exports.URI, + _E: undefined, + map: A.map, + ap: A.ap, + of: of(M) + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getChain(S) { + var A = getApply(S); + return { + URI: exports.URI, + _E: undefined, + map: A.map, + ap: A.ap, + chain: function (ma, f) { + var _a = f((0, exports.fst)(ma)), b = _a[0], s = _a[1]; + return [b, S.concat((0, exports.snd)(ma), s)]; + } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getMonad(M) { + var C = getChain(M); + return { + URI: exports.URI, + _E: undefined, + map: C.map, + ap: C.ap, + chain: C.chain, + of: of(M) + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getChainRec(M) { + var chainRec = function (a, f) { + var result = f(a); + var acc = M.empty; + var s = (0, exports.fst)(result); + while (s._tag === 'Left') { + acc = M.concat(acc, (0, exports.snd)(result)); + result = f(s.left); + s = (0, exports.fst)(result); + } + return [s.right, M.concat(acc, (0, exports.snd)(result))]; + }; + var C = getChain(M); + return { + URI: exports.URI, + _E: undefined, + map: C.map, + ap: C.ap, + chain: C.chain, + chainRec: chainRec + }; +} +/* istanbul ignore next */ +var _compose = function (bc, ab) { return (0, function_1.pipe)(bc, (0, exports.compose)(ab)); }; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapFst)(f)); }; +/* istanbul ignore next */ +var _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); }; +/* istanbul ignore next */ +var _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapSnd)(f)); }; +/* istanbul ignore next */ +var _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); }; +/* istanbul ignore next */ +var _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); }; +/* istanbul ignore next */ +var _foldMap = function (M) { + var foldMapM = (0, exports.foldMap)(M); + return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); }; +}; +/* istanbul ignore next */ +var _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); }; +/* istanbul ignore next */ +function _traverse(F) { + var traverseF = (0, exports.traverse)(F); + return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); }; +} +/** + * Map a pair of functions over the two type arguments of the bifunctor. + * + * @category mapping + * @since 2.0.0 + */ +var bimap = function (f, g) { return function (fa) { + return [g((0, exports.fst)(fa)), f((0, exports.snd)(fa))]; +}; }; +exports.bimap = bimap; +/** + * Map a function over the first component of a `Tuple`. + * + * This is the `map` operation of the `Functor` instance. + * + * @category mapping + * @since 2.0.0 + */ +var mapFst = function (f) { return function (fa) { return [f((0, exports.fst)(fa)), (0, exports.snd)(fa)]; }; }; +exports.mapFst = mapFst; +/** + * Map a function over the second component of a `Tuple`. + * + * This is the `mapLeft` operation of the `Bifunctor` instance. + * + * @category mapping + * @since 2.10.0 + */ +var mapSnd = function (f) { return function (fa) { return [(0, exports.fst)(fa), f((0, exports.snd)(fa))]; }; }; +exports.mapSnd = mapSnd; +/** + * @since 2.0.0 + */ +var compose = function (ab) { return function (bc) { return [(0, exports.fst)(bc), (0, exports.snd)(ab)]; }; }; +exports.compose = compose; +/** + * @since 2.0.0 + */ +var extend = function (f) { return function (wa) { return [f(wa), (0, exports.snd)(wa)]; }; }; +exports.extend = extend; +/** + * @since 2.0.0 + */ +exports.duplicate = (0, exports.extend)(function_1.identity); +/** + * @category Extract + * @since 2.6.2 + */ +exports.extract = RT.extract; +/** + * @category folding + * @since 2.0.0 + */ +exports.foldMap = RT.foldMap; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduce = RT.reduce; +/** + * @category folding + * @since 2.0.0 + */ +exports.reduceRight = RT.reduceRight; +/** + * @category traversing + * @since 2.6.3 + */ +var traverse = function (F) { + return function (f) { return function (ta) { return F.map(f((0, exports.fst)(ta)), function (b) { return [b, (0, exports.snd)(ta)]; }); }; }; +}; +exports.traverse = traverse; +/** + * @category traversing + * @since 2.6.3 + */ +var sequence = function (F) { + return function (fas) { + return F.map((0, exports.fst)(fas), function (a) { return [a, (0, exports.snd)(fas)]; }); + }; +}; +exports.sequence = sequence; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Tuple'; +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +/** + * @category instances + * @since 2.7.0 + */ +exports.Bifunctor = { + URI: exports.URI, + bimap: _bimap, + mapLeft: _mapLeft +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Semigroupoid = { + URI: exports.URI, + compose: _compose +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Comonad = { + URI: exports.URI, + map: _map, + extend: _extend, + extract: exports.extract +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Foldable = { + URI: exports.URI, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight +}; +/** + * @category instances + * @since 2.7.0 + */ +exports.Traversable = { + URI: exports.URI, + map: _map, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`mapFst`](#mapfst) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.map = exports.mapFst; +/** + * Use [`mapSnd`](#mapsnd) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.mapLeft = exports.mapSnd; +/** + * This instance is deprecated, use small, specific instances instead. + * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.tuple` + * (where `T` is from `import T from 'fp-ts/Tuple'`) + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.tuple = { + URI: exports.URI, + compose: _compose, + map: _map, + bimap: _bimap, + mapLeft: _mapLeft, + extract: exports.extract, + extend: _extend, + reduce: _reduce, + foldMap: _foldMap, + reduceRight: _reduceRight, + traverse: _traverse, + sequence: exports.sequence +}; diff --git a/node_modules/fp-ts/lib/Unfoldable.d.ts b/node_modules/fp-ts/lib/Unfoldable.d.ts new file mode 100644 index 0000000..44719d4 --- /dev/null +++ b/node_modules/fp-ts/lib/Unfoldable.d.ts @@ -0,0 +1,65 @@ +/** + * This class identifies data structures which can be _unfolded_, generalizing `unfold` on arrays. + * + * @since 2.0.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Option } from './Option' +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable<F> { + readonly URI: F + readonly unfold: <A, B>(b: B, f: (b: B) => Option<[A, B]>) => HKT<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable1<F extends URIS> { + readonly URI: F + readonly unfold: <A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind<F, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable2<F extends URIS2> { + readonly URI: F + readonly unfold: <E, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly unfold: <A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind2<F, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable3<F extends URIS3> { + readonly URI: F + readonly unfold: <R, E, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.10.0 + */ +export interface Unfoldable3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly unfold: <R, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Unfoldable4<F extends URIS4> { + readonly URI: F + readonly unfold: <S, R, E, A, B>(b: B, f: (b: B) => Option<[A, B]>) => Kind4<F, S, R, E, A> +} diff --git a/node_modules/fp-ts/lib/Unfoldable.js b/node_modules/fp-ts/lib/Unfoldable.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/fp-ts/lib/Unfoldable.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fp-ts/lib/ValidationT.d.ts b/node_modules/fp-ts/lib/ValidationT.d.ts new file mode 100644 index 0000000..2649525 --- /dev/null +++ b/node_modules/fp-ts/lib/ValidationT.d.ts @@ -0,0 +1,73 @@ +/** + * @since 2.0.0 + */ +import { ApplicativeComposition12C, ApplicativeComposition22C, ApplicativeCompositionHKT2C } from './Applicative' +import * as E from './Either' +import { LazyArg } from './function' +import { HKT, Kind, Kind2, URIS, URIS2 } from './HKT' +import { Monad, Monad1, Monad2 } from './Monad' +import { Semigroup } from './Semigroup' +import Either = E.Either +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationT<M, E, A> extends HKT<M, Either<E, A>> {} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationM<M, E> extends ApplicativeCompositionHKT2C<M, E.URI, E> { + readonly chain: <A, B>(ma: ValidationT<M, E, A>, f: (a: A) => ValidationT<M, E, B>) => ValidationT<M, E, B> + readonly alt: <A>(fa: ValidationT<M, E, A>, that: LazyArg<ValidationT<M, E, A>>) => ValidationT<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type ValidationT1<M extends URIS, E, A> = Kind<M, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationM1<M extends URIS, E> extends ApplicativeComposition12C<M, E.URI, E> { + readonly chain: <A, B>(ma: ValidationT1<M, E, A>, f: (a: A) => ValidationT1<M, E, B>) => ValidationT1<M, E, B> + readonly alt: <A>(fa: ValidationT1<M, E, A>, that: LazyArg<ValidationT1<M, E, A>>) => ValidationT1<M, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export type ValidationT2<M extends URIS2, R, E, A> = Kind2<M, R, Either<E, A>> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface ValidationM2<M extends URIS2, E> extends ApplicativeComposition22C<M, E.URI, E> { + readonly chain: <R, A, B>( + ma: ValidationT2<M, R, E, A>, + f: (a: A) => ValidationT2<M, R, E, B> + ) => ValidationT2<M, R, E, B> + readonly alt: <R, A>( + fa: ValidationT2<M, R, E, A>, + that: LazyArg<ValidationT2<M, R, E, A>> + ) => ValidationT2<M, R, E, A> +} +/** + * Use `EitherT` instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function getValidationM<E, M extends URIS2>(S: Semigroup<E>, M: Monad2<M>): ValidationM2<M, E> +/** @deprecated */ +export declare function getValidationM<E, M extends URIS>(S: Semigroup<E>, M: Monad1<M>): ValidationM1<M, E> +/** @deprecated */ +export declare function getValidationM<E, M>(S: Semigroup<E>, M: Monad<M>): ValidationM<M, E> diff --git a/node_modules/fp-ts/lib/ValidationT.js b/node_modules/fp-ts/lib/ValidationT.js new file mode 100644 index 0000000..c83f49a --- /dev/null +++ b/node_modules/fp-ts/lib/ValidationT.js @@ -0,0 +1,47 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getValidationM = getValidationM; +/** + * @since 2.0.0 + */ +var Applicative_1 = require("./Applicative"); +var E = __importStar(require("./Either")); +var _ = __importStar(require("./internal")); +/** @deprecated */ +function getValidationM(S, M) { + var A = (0, Applicative_1.getApplicativeComposition)(M, E.getApplicativeValidation(S)); + return { + map: A.map, + ap: A.ap, + of: A.of, + chain: function (ma, f) { return M.chain(ma, function (e) { return (_.isLeft(e) ? M.of(_.left(e.left)) : f(e.right)); }); }, + alt: function (me, that) { + return M.chain(me, function (e1) { + return _.isRight(e1) ? M.of(e1) : M.map(that(), function (e2) { return (_.isLeft(e2) ? _.left(S.concat(e1.left, e2.left)) : e2); }); + }); + } + }; +} diff --git a/node_modules/fp-ts/lib/Witherable.d.ts b/node_modules/fp-ts/lib/Witherable.d.ts new file mode 100644 index 0000000..c2bcf1e --- /dev/null +++ b/node_modules/fp-ts/lib/Witherable.d.ts @@ -0,0 +1,575 @@ +/** + * `Witherable` represents data structures which can be _partitioned_ with effects in some `Applicative` functor. + * + * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Witherable.purs + * + * @since 2.0.0 + */ +import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3, Applicative3C } from './Applicative' +import { Compactable, Compactable1, Compactable2, Compactable2C } from './Compactable' +import { Either } from './Either' +import { Filterable, Filterable1, Filterable2, Filterable2C, Filterable3 } from './Filterable' +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Option } from './Option' +import { Separated } from './Separated' +import { Traversable, Traversable1, Traversable2, Traversable2C, Traversable3 } from './Traversable' +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable<T> extends Traversable<T>, Filterable<T> { + /** + * Partition a structure with effects + */ + readonly wilt: Wilt<T> + /** + * Filter a structure with effects + */ + readonly wither: Wither<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable1<T extends URIS> extends Traversable1<T>, Filterable1<T> { + readonly wilt: Wilt1<T> + readonly wither: Wither1<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable2<T extends URIS2> extends Traversable2<T>, Filterable2<T> { + readonly wilt: Wilt2<T> + readonly wither: Wither2<T> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable2C<T extends URIS2, TL> extends Traversable2C<T, TL>, Filterable2C<T, TL> { + readonly wilt: Wilt2C<T, TL> + readonly wither: Wither2C<T, TL> +} +/** + * @category model + * @since 2.0.0 + */ +export interface Witherable3<T extends URIS3> extends Traversable3<T>, Filterable3<T> { + readonly wilt: Wilt3<T> + readonly wither: Wither3<T> +} +/** + * @since 2.0.0 + */ +export interface Wither<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: HKT<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, HKT<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: HKT<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, HKT<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: HKT<W, A>, f: (a: A) => Kind<F, Option<B>>) => Kind<F, HKT<W, B>> + <F>(F: Applicative<F>): <A, B>(ta: HKT<W, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, HKT<W, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + ta: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + ta: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + ta: Kind<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, Kind<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + ta: Kind<W, A>, + f: (a: A) => Kind2<F, E, Option<B>> + ) => Kind2<F, E, Kind<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(ta: Kind<W, A>, f: (a: A) => Kind<F, Option<B>>) => Kind<F, Kind<W, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind<W, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, Kind<W, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <WE, A, R, FE, B>( + ta: Kind2<W, WE, A>, + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => Kind3<F, R, FE, Kind2<W, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <WE, A, FE, B>( + ta: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <WE, A, B>( + ta: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS>(F: Applicative1<F>): <E, A, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind<F, Option<B>> + ) => Kind<F, Kind2<W, E, B>> + <F>(F: Applicative<F>): <E, A, B>(ta: Kind2<W, E, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, Kind2<W, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither2C<W extends URIS2, E> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => Kind3<F, R, FE, Kind2<W, E, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, E, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind2<W, E, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + ta: Kind2<W, E, A>, + f: (a: A) => Kind<F, Option<B>> + ) => Kind<F, Kind2<W, E, B>> + <F>(F: Applicative<F>): <A, B>(ta: Kind2<W, E, A>, f: (a: A) => HKT<F, Option<B>>) => HKT<F, Kind2<W, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Wither3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <WR, WE, A, FR, FE, B>( + ta: Kind3<W, WR, WE, A>, + f: (a: A) => Kind3<F, FR, FE, Option<B>> + ) => Kind3<F, FR, FE, Kind3<W, WR, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <WR, WE, A, FE, B>( + ta: Kind3<W, WR, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind3<W, WR, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, WE, A, B>( + ta: Kind3<W, R, WE, A>, + f: (a: A) => Kind2<F, FE, Option<B>> + ) => Kind2<F, FE, Kind3<W, R, WE, B>> + <F extends URIS>(F: Applicative1<F>): <R, E, A, B>( + ta: Kind3<W, R, E, A>, + f: (a: A) => Kind<F, Option<B>> + ) => Kind<F, Kind3<W, R, E, B>> + <F>(F: Applicative<F>): <R, E, A, B>( + ta: Kind3<W, R, E, A>, + f: (a: A) => HKT<F, Option<B>> + ) => HKT<F, Kind3<W, R, E, B>> +} +/** + * @since 2.0.0 + */ +export interface Wilt<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + wa: HKT<W, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<HKT<W, B>, HKT<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + wa: HKT<W, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<HKT<W, B>, HKT<W, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + wa: Kind<W, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind<W, B>, Kind<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + wa: Kind<W, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind<W, B>, Kind<W, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <WE, A, R, FE, B, C>( + wa: Kind2<W, WE, A>, + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => Kind3<F, R, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <WE, A, FE, B, C>( + wa: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <WE, A, B, C>( + wa: Kind2<W, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <E, A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F>(F: Applicative<F>): <E, A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt2C<W extends URIS2, E> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => Kind3<F, R, FE, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> + <F>(F: Applicative<F>): <A, B, C>( + wa: Kind2<W, E, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind2<W, E, B>, Kind2<W, E, C>>> +} +/** + * @since 2.0.0 + */ +export interface Wilt3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <WR, WE, A, FR, FE, B, C>( + wa: Kind3<W, WR, WE, A>, + f: (a: A) => Kind3<F, FR, FE, Either<B, C>> + ) => Kind3<F, FR, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <R, WE, A, FE, B, C>( + wa: Kind3<W, R, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind3<W, R, WE, B>, Kind3<W, R, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <R, WE, A, B, C>( + wa: Kind3<W, R, WE, A>, + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => Kind2<F, FE, Separated<Kind3<W, R, WE, B>, Kind3<W, R, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <R, E, A, B, C>( + wa: Kind3<W, R, E, A>, + f: (a: A) => Kind<F, Either<B, C>> + ) => Kind<F, Separated<Kind3<W, R, E, B>, Kind3<W, R, E, C>>> + <F>(F: Applicative<F>): <R, E, A, B, C>( + wa: Kind3<W, R, E, A>, + f: (a: A) => HKT<F, Either<B, C>> + ) => HKT<F, Separated<Kind3<W, R, E, B>, Kind3<W, R, E, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind3<F, R, E, HKT<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind2<F, E, HKT<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: HKT<W, A>) => Kind2<F, E, HKT<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>(f: (a: A) => Kind<F, Option<B>>) => (ta: HKT<W, A>) => Kind<F, HKT<W, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => (ta: HKT<W, A>) => HKT<F, HKT<W, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B>( + f: (a: A) => Kind3<F, R, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind3<F, R, E, Kind<W, B>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind2<F, E, Kind<W, B>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B>( + f: (a: A) => Kind2<F, E, Option<B>> + ) => (ta: Kind<W, A>) => Kind2<F, E, Kind<W, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => (ta: Kind<W, A>) => Kind<F, Kind<W, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => (ta: Kind<W, A>) => HKT<F, Kind<W, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind3<F, R, FE, Kind2<W, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => <WE>(ta: Kind2<W, WE, A>) => Kind<F, Kind2<W, WE, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => <WE>(ta: Kind2<W, WE, A>) => HKT<F, Kind2<W, WE, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither2C<W extends URIS2, WE> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B>( + f: (a: A) => Kind3<F, R, FE, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind3<F, R, FE, Kind2<W, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind2<F, FE, Kind2<W, WE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => (ta: Kind2<W, WE, A>) => Kind<F, Kind2<W, WE, B>> + <F>(F: Applicative<F>): <A, B>(f: (a: A) => HKT<F, Option<B>>) => (ta: Kind2<W, WE, A>) => HKT<F, Kind2<W, WE, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWither3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B>( + f: (a: A) => Kind3<F, FR, FE, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind3<F, FR, FE, Kind3<W, WR, WE, B>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind2<F, FE, Kind3<W, WR, WE, B>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B>( + f: (a: A) => Kind2<F, FE, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind2<F, FE, Kind3<W, WR, WE, B>> + <F extends URIS>(F: Applicative1<F>): <A, B>( + f: (a: A) => Kind<F, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => Kind<F, Kind3<W, WR, WE, B>> + <F>(F: Applicative<F>): <A, B>( + f: (a: A) => HKT<F, Option<B>> + ) => <WR, WE>(ta: Kind3<W, WR, WE, A>) => HKT<F, Kind3<W, WR, WE, B>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt<W> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind3<F, R, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind2<F, E, Separated<HKT<W, B>, HKT<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => (wa: HKT<W, A>) => Kind<F, Separated<HKT<W, B>, HKT<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => (wa: HKT<W, A>) => HKT<F, Separated<HKT<W, B>, HKT<W, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt1<W extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R, B, C>( + f: (a: A) => Kind3<F, R, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind3<F, R, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, E, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A, B, C>( + f: (a: A) => Kind2<F, E, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind2<F, E, Separated<Kind<W, B>, Kind<W, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => (wa: Kind<W, A>) => Kind<F, Separated<Kind<W, B>, Kind<W, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => (wa: Kind<W, A>) => HKT<F, Separated<Kind<W, B>, Kind<W, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt2<W extends URIS2> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B, C>( + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind3<F, R, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => Kind<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => <WE>(wa: Kind2<W, WE, A>) => HKT<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt2C<W extends URIS2, WE> { + <F extends URIS3>(F: Applicative3<F>): <A, R, FE, B, C>( + f: (a: A) => Kind3<F, R, FE, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind3<F, R, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind2<F, FE, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => Kind<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => (wa: Kind2<W, WE, A>) => HKT<F, Separated<Kind2<W, WE, B>, Kind2<W, WE, C>>> +} +/** + * @since 2.6.5 + */ +export interface PipeableWilt3<W extends URIS3> { + <F extends URIS3>(F: Applicative3<F>): <A, FR, FE, B, C>( + f: (a: A) => Kind3<F, FR, FE, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind3<F, FR, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS2>(F: Applicative2<F>): <A, FE, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind2<F, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS2, FE>(F: Applicative2C<F, FE>): <A, B, C>( + f: (a: A) => Kind2<F, FE, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind2<F, FE, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F extends URIS>(F: Applicative1<F>): <A, B, C>( + f: (a: A) => Kind<F, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => Kind<F, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> + <F>(F: Applicative<F>): <A, B, C>( + f: (a: A) => HKT<F, Either<B, C>> + ) => <WR, WE>(wa: Kind3<W, WR, WE, A>) => HKT<F, Separated<Kind3<W, WR, WE, B>, Kind3<W, WR, WE, C>>> +} +/** + * Return a `wilt` implementation from `Traversable` and `Compactable`. + * + * @category defaults + * @since 2.11.0 + */ +export declare function wiltDefault<W extends URIS2, E>( + T: Traversable2C<W, E>, + C: Compactable2<W> +): Witherable2C<W, E>['wilt'] +export declare function wiltDefault<W extends URIS2, E>( + T: Traversable2<W>, + C: Compactable2C<W, E> +): Witherable2C<W, E>['wilt'] +export declare function wiltDefault<W extends URIS>(T: Traversable1<W>, C: Compactable1<W>): Witherable1<W>['wilt'] +export declare function wiltDefault<W>(T: Traversable<W>, C: Compactable<W>): Witherable<W>['wilt'] +/** + * Return a `wither` implementation from `Traversable` and `Compactable`. + * + * @category defaults + * @since 2.11.0 + */ +export declare function witherDefault<W extends URIS2, E>( + T: Traversable2C<W, E>, + C: Compactable2<W> +): Witherable2C<W, E>['wither'] +export declare function witherDefault<W extends URIS2, E>( + T: Traversable2<W>, + C: Compactable2C<W, E> +): Witherable2C<W, E>['wither'] +export declare function witherDefault<W extends URIS>(T: Traversable1<W>, C: Compactable1<W>): Witherable1<W>['wither'] +export declare function witherDefault<W>(T: Traversable<W>, C: Compactable<W>): Witherable<W>['wither'] +/** + * @since 2.11.0 + */ +export interface FilterE1<G extends URIS> { + <F extends URIS3>(F: Applicative3<F>): <A, R, E>( + predicate: (a: A) => Kind3<F, R, E, boolean> + ) => (ga: Kind<G, A>) => Kind3<F, R, E, Kind<G, A>> + <F extends URIS3, E>(F: Applicative3C<F, E>): <A, R>( + predicate: (a: A) => Kind3<F, R, E, boolean> + ) => (ga: Kind<G, A>) => Kind3<F, R, E, Kind<G, A>> + <F extends URIS2>(F: Applicative2<F>): <A, E>( + predicate: (a: A) => Kind2<F, E, boolean> + ) => (ga: Kind<G, A>) => Kind2<F, E, Kind<G, A>> + <F extends URIS2, E>(F: Applicative2C<F, E>): <A>( + predicate: (a: A) => Kind2<F, E, boolean> + ) => (ga: Kind<G, A>) => Kind2<F, E, Kind<G, A>> + <F extends URIS>(F: Applicative1<F>): <A>( + predicate: (a: A) => Kind<F, boolean> + ) => (ga: Kind<G, A>) => Kind<F, Kind<G, A>> + <F>(F: Applicative<F>): <A>(predicate: (a: A) => HKT<F, boolean>) => (ga: Kind<G, A>) => HKT<F, Kind<G, A>> +} +/** + * Filter values inside a `F` context. + * + * See `ReadonlyArray`'s `filterE` for an example of usage. + * + * @since 2.11.0 + */ +export declare function filterE<G extends URIS>(W: Witherable1<G>): FilterE1<G> +export declare function filterE<G>( + W: Witherable<G> +): <F>(F: Applicative<F>) => <A>(predicate: (a: A) => HKT<F, boolean>) => (ga: HKT<G, A>) => HKT<F, HKT<G, A>> diff --git a/node_modules/fp-ts/lib/Witherable.js b/node_modules/fp-ts/lib/Witherable.js new file mode 100644 index 0000000..a23f755 --- /dev/null +++ b/node_modules/fp-ts/lib/Witherable.js @@ -0,0 +1,47 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.wiltDefault = wiltDefault; +exports.witherDefault = witherDefault; +exports.filterE = filterE; +var _ = __importStar(require("./internal")); +function wiltDefault(T, C) { + return function (F) { + var traverseF = T.traverse(F); + return function (wa, f) { return F.map(traverseF(wa, f), C.separate); }; + }; +} +function witherDefault(T, C) { + return function (F) { + var traverseF = T.traverse(F); + return function (wa, f) { return F.map(traverseF(wa, f), C.compact); }; + }; +} +function filterE(W) { + return function (F) { + var witherF = W.wither(F); + return function (predicate) { return function (ga) { return witherF(ga, function (a) { return F.map(predicate(a), function (b) { return (b ? _.some(a) : _.none); }); }); }; }; + }; +} diff --git a/node_modules/fp-ts/lib/Writer.d.ts b/node_modules/fp-ts/lib/Writer.d.ts new file mode 100644 index 0000000..620561a --- /dev/null +++ b/node_modules/fp-ts/lib/Writer.d.ts @@ -0,0 +1,141 @@ +/** + * @since 2.0.0 + */ +import { Applicative2C } from './Applicative' +import { Apply2C } from './Apply' +import { Chain2C } from './Chain' +import { Functor2 } from './Functor' +import { Monad2C } from './Monad' +import { Monoid } from './Monoid' +import { Pointed2C } from './Pointed' +import { Semigroup } from './Semigroup' +/** + * @category model + * @since 2.0.0 + */ +export interface Writer<W, A> { + (): [A, W] +} +/** + * Appends a value to the accumulator + * + * @category constructors + * @since 2.0.0 + */ +export declare const tell: <W>(w: W) => Writer<W, void> +/** + * Modifies the result to include the changes to the accumulator + * + * @since 2.0.0 + */ +export declare const listen: <W, A>(fa: Writer<W, A>) => Writer<W, [A, W]> +/** + * Applies the returned function to the accumulator + * + * @since 2.0.0 + */ +export declare const pass: <W, A>(fa: Writer<W, [A, (w: W) => W]>) => Writer<W, A> +/** + * Projects a value from modifications made to the accumulator during an action + * + * @since 2.0.0 + */ +export declare const listens: <W, B>(f: (w: W) => B) => <A>(fa: Writer<W, A>) => Writer<W, [A, B]> +/** + * Modify the final accumulator value by applying a function + * + * @since 2.0.0 + */ +export declare const censor: <W>(f: (w: W) => W) => <A>(fa: Writer<W, A>) => Writer<W, A> +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Writer<E, A>) => Writer<E, B> +/** + * @category type lambdas + * @since 2.0.0 + */ +export declare const URI = 'Writer' +/** + * @category type lambdas + * @since 2.0.0 + */ +export type URI = typeof URI +declare module './HKT' { + interface URItoKind2<E, A> { + readonly [URI]: Writer<E, A> + } +} +/** + * @category instances + * @since 2.10.0 + */ +export declare const getPointed: <W>(M: Monoid<W>) => Pointed2C<URI, W> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApply: <W>(S: Semigroup<W>) => Apply2C<URI, W> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getApplicative: <W>(M: Monoid<W>) => Applicative2C<URI, W> +/** + * @category instances + * @since 2.10.0 + */ +export declare function getChain<W>(S: Semigroup<W>): Chain2C<URI, W> +/** + * @category instances + * @since 2.0.0 + */ +export declare function getMonad<W>(M: Monoid<W>): Monad2C<URI, W> +/** + * @category instances + * @since 2.7.0 + */ +export declare const Functor: Functor2<URI> +/** + * @category mapping + * @since 2.10.0 + */ +export declare const flap: <A>( + a: A +) => <E, B>(fab: import('./HKT').Kind2<'Writer', E, (a: A) => B>) => import('./HKT').Kind2<'Writer', E, B> +/** + * @since 2.8.0 + */ +export declare const evaluate: <W, A>(fa: Writer<W, A>) => A +/** + * @since 2.8.0 + */ +export declare const execute: <W, A>(fa: Writer<W, A>) => W +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const evalWriter: <W, A>(fa: Writer<W, A>) => A +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const execWriter: <W, A>(fa: Writer<W, A>) => W +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare const writer: Functor2<URI> diff --git a/node_modules/fp-ts/lib/Writer.js b/node_modules/fp-ts/lib/Writer.js new file mode 100644 index 0000000..68f9c92 --- /dev/null +++ b/node_modules/fp-ts/lib/Writer.js @@ -0,0 +1,210 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.writer = exports.execWriter = exports.evalWriter = exports.execute = exports.evaluate = exports.flap = exports.Functor = exports.getApplicative = exports.getApply = exports.getPointed = exports.URI = exports.map = exports.censor = exports.listens = exports.pass = exports.listen = exports.tell = void 0; +exports.getChain = getChain; +exports.getMonad = getMonad; +var function_1 = require("./function"); +var Functor_1 = require("./Functor"); +// ------------------------------------------------------------------------------------- +// constructors +// ------------------------------------------------------------------------------------- +/** + * Appends a value to the accumulator + * + * @category constructors + * @since 2.0.0 + */ +var tell = function (w) { return function () { return [undefined, w]; }; }; +exports.tell = tell; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * Modifies the result to include the changes to the accumulator + * + * @since 2.0.0 + */ +var listen = function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [[a, w], w]; +}; }; +exports.listen = listen; +/** + * Applies the returned function to the accumulator + * + * @since 2.0.0 + */ +var pass = function (fa) { return function () { + var _a = fa(), _b = _a[0], a = _b[0], f = _b[1], w = _a[1]; + return [a, f(w)]; +}; }; +exports.pass = pass; +/** + * Projects a value from modifications made to the accumulator during an action + * + * @since 2.0.0 + */ +var listens = function (f) { return function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [[a, f(w)], w]; +}; }; }; +exports.listens = listens; +/** + * Modify the final accumulator value by applying a function + * + * @since 2.0.0 + */ +var censor = function (f) { return function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [a, f(w)]; +}; }; }; +exports.censor = censor; +/* istanbul ignore next */ +var _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }; +/** + * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types + * use the type constructor `F` to represent some computational context. + * + * @category mapping + * @since 2.0.0 + */ +var map = function (f) { return function (fa) { return function () { + var _a = fa(), a = _a[0], w = _a[1]; + return [f(a), w]; +}; }; }; +exports.map = map; +/** + * @category type lambdas + * @since 2.0.0 + */ +exports.URI = 'Writer'; +/** + * @category instances + * @since 2.10.0 + */ +var getPointed = function (M) { return ({ + URI: exports.URI, + _E: undefined, + of: function (a) { return function () { return [a, M.empty]; }; } +}); }; +exports.getPointed = getPointed; +/** + * @category instances + * @since 2.10.0 + */ +var getApply = function (S) { return ({ + URI: exports.URI, + _E: undefined, + map: _map, + ap: function (fab, fa) { return function () { + var _a = fab(), f = _a[0], w1 = _a[1]; + var _b = fa(), a = _b[0], w2 = _b[1]; + return [f(a), S.concat(w1, w2)]; + }; } +}); }; +exports.getApply = getApply; +/** + * @category instances + * @since 2.10.0 + */ +var getApplicative = function (M) { + var A = (0, exports.getApply)(M); + var P = (0, exports.getPointed)(M); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + of: P.of + }; +}; +exports.getApplicative = getApplicative; +/** + * @category instances + * @since 2.10.0 + */ +function getChain(S) { + var A = (0, exports.getApply)(S); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + chain: function (fa, f) { return function () { + var _a = fa(), a = _a[0], w1 = _a[1]; + var _b = f(a)(), b = _b[0], w2 = _b[1]; + return [b, S.concat(w1, w2)]; + }; } + }; +} +/** + * @category instances + * @since 2.0.0 + */ +function getMonad(M) { + var A = (0, exports.getApplicative)(M); + var C = getChain(M); + return { + URI: exports.URI, + _E: undefined, + map: _map, + ap: A.ap, + of: A.of, + chain: C.chain + }; +} +/** + * @category instances + * @since 2.7.0 + */ +exports.Functor = { + URI: exports.URI, + map: _map +}; +/** + * @category mapping + * @since 2.10.0 + */ +exports.flap = (0, Functor_1.flap)(exports.Functor); +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.8.0 + */ +var evaluate = function (fa) { return fa()[0]; }; +exports.evaluate = evaluate; +/** + * @since 2.8.0 + */ +var execute = function (fa) { return fa()[1]; }; +exports.execute = execute; +// ------------------------------------------------------------------------------------- +// deprecated +// ------------------------------------------------------------------------------------- +/** + * Use [`evaluate`](#evaluate) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var evalWriter = function (fa) { return fa()[0]; }; +exports.evalWriter = evalWriter; +/** + * Use [`execute`](#execute) instead + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +var execWriter = function (fa) { return fa()[1]; }; +exports.execWriter = execWriter; +/** + * Use [`Functor`](#functor) instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +exports.writer = exports.Functor; diff --git a/node_modules/fp-ts/lib/WriterT.d.ts b/node_modules/fp-ts/lib/WriterT.d.ts new file mode 100644 index 0000000..d883ecb --- /dev/null +++ b/node_modules/fp-ts/lib/WriterT.d.ts @@ -0,0 +1,147 @@ +/** + * @since 2.4.0 + */ +import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from './HKT' +import { Monad, Monad1, Monad2, Monad2C, Monad3 } from './Monad' +import { Monoid } from './Monoid' +/** + * @category model + * @since 2.4.0 + */ +export interface WriterT<M, W, A> { + (): HKT<M, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM<M> { + readonly map: <W, A, B>(fa: WriterT<M, W, A>, f: (a: A) => B) => WriterT<M, W, B> + readonly evalWriter: <W, A>(fa: WriterT<M, W, A>) => HKT<M, A> + readonly execWriter: <W, A>(fa: WriterT<M, W, A>) => HKT<M, W> + readonly tell: <W>(w: W) => WriterT<M, W, void> + readonly listen: <W, A>(fa: WriterT<M, W, A>) => WriterT<M, W, [A, W]> + readonly pass: <W, A>(fa: WriterT<M, W, [A, (w: W) => W]>) => WriterT<M, W, A> + readonly listens: <W, A, B>(fa: WriterT<M, W, A>, f: (w: W) => B) => WriterT<M, W, [A, B]> + readonly censor: <W, A>(fa: WriterT<M, W, A>, f: (w: W) => W) => WriterT<M, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <A, B>(ma: WriterT<M, W, A>, f: (a: A) => B) => WriterT<M, W, B> + readonly of: <A>(a: A) => WriterT<M, W, A> + readonly ap: <A, B>(mab: WriterT<M, W, (a: A) => B>, ma: WriterT<M, W, A>) => WriterT<M, W, B> + readonly chain: <A, B>(ma: WriterT<M, W, A>, f: (a: A) => WriterT<M, W, B>) => WriterT<M, W, B> + } +} +/** + * @category model + * @since 2.4.0 + */ +export interface WriterT1<M extends URIS, W, A> { + (): Kind<M, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM1<M extends URIS> { + readonly map: <W, A, B>(fa: WriterT1<M, W, A>, f: (a: A) => B) => WriterT1<M, W, B> + readonly evalWriter: <W, A>(fa: WriterT1<M, W, A>) => Kind<M, A> + readonly execWriter: <W, A>(fa: WriterT1<M, W, A>) => Kind<M, W> + readonly tell: <W>(w: W) => WriterT1<M, W, void> + readonly listen: <W, A>(fa: WriterT1<M, W, A>) => WriterT1<M, W, [A, W]> + readonly pass: <W, A>(fa: WriterT1<M, W, [A, (w: W) => W]>) => WriterT1<M, W, A> + readonly listens: <W, A, B>(fa: WriterT1<M, W, A>, f: (w: W) => B) => WriterT1<M, W, [A, B]> + readonly censor: <W, A>(fa: WriterT1<M, W, A>, f: (w: W) => W) => WriterT1<M, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <A, B>(ma: WriterT1<M, W, A>, f: (a: A) => B) => WriterT1<M, W, B> + readonly of: <A>(a: A) => WriterT1<M, W, A> + readonly ap: <A, B>(mab: WriterT1<M, W, (a: A) => B>, ma: WriterT1<M, W, A>) => WriterT1<M, W, B> + readonly chain: <A, B>(ma: WriterT1<M, W, A>, f: (a: A) => WriterT1<M, W, B>) => WriterT1<M, W, B> + } +} +/** + * @category model + * @since 2.4.0 + */ +export interface WriterT2<M extends URIS2, E, W, A> { + (): Kind2<M, E, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM2<M extends URIS2> { + readonly map: <E, W, A, B>(fa: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly evalWriter: <E, W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, A> + readonly execWriter: <E, W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, W> + readonly tell: <E, W>(w: W) => WriterT2<M, E, W, void> + readonly listen: <E, W, A>(fa: WriterT2<M, E, W, A>) => WriterT2<M, E, W, [A, W]> + readonly pass: <E, W, A>(fa: WriterT2<M, E, W, [A, (w: W) => W]>) => WriterT2<M, E, W, A> + readonly listens: <E, W, A, B>(fa: WriterT2<M, E, W, A>, f: (w: W) => B) => WriterT2<M, E, W, [A, B]> + readonly censor: <E, W, A>(fa: WriterT2<M, E, W, A>, f: (w: W) => W) => WriterT2<M, E, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <E, A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly of: <E, A>(a: A) => WriterT2<M, E, W, A> + readonly ap: <E, A, B>(mab: WriterT2<M, E, W, (a: A) => B>, ma: WriterT2<M, E, W, A>) => WriterT2<M, E, W, B> + readonly chain: <E, A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => WriterT2<M, E, W, B>) => WriterT2<M, E, W, B> + } +} +/** + * @since 2.4.0 + */ +export interface WriterM2C<M extends URIS2, E> { + readonly map: <W, A, B>(fa: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly evalWriter: <W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, A> + readonly execWriter: <W, A>(fa: WriterT2<M, E, W, A>) => Kind2<M, E, W> + readonly tell: <W>(w: W) => WriterT2<M, E, W, void> + readonly listen: <W, A>(fa: WriterT2<M, E, W, A>) => WriterT2<M, E, W, [A, W]> + readonly pass: <W, A>(fa: WriterT2<M, E, W, [A, (w: W) => W]>) => WriterT2<M, E, W, A> + readonly listens: <W, A, B>(fa: WriterT2<M, E, W, A>, f: (w: W) => B) => WriterT2<M, E, W, [A, B]> + readonly censor: <W, A>(fa: WriterT2<M, E, W, A>, f: (w: W) => W) => WriterT2<M, E, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => B) => WriterT2<M, E, W, B> + readonly of: <A>(a: A) => WriterT2<M, E, W, A> + readonly ap: <A, B>(mab: WriterT2<M, E, W, (a: A) => B>, ma: WriterT2<M, E, W, A>) => WriterT2<M, E, W, B> + readonly chain: <A, B>(ma: WriterT2<M, E, W, A>, f: (a: A) => WriterT2<M, E, W, B>) => WriterT2<M, E, W, B> + } +} +/** + * @since 2.4.0 + */ +export interface WriterT3<M extends URIS3, R, E, W, A> { + (): Kind3<M, R, E, [A, W]> +} +/** + * @since 2.4.0 + */ +export interface WriterM3<M extends URIS3> { + readonly map: <R, E, W, A, B>(fa: WriterT3<M, R, E, W, A>, f: (a: A) => B) => WriterT3<M, R, E, W, B> + readonly evalWriter: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>) => Kind3<M, R, E, A> + readonly execWriter: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>) => Kind3<M, R, E, W> + readonly tell: <R, E, W>(w: W) => WriterT3<M, R, E, W, void> + readonly listen: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>) => WriterT3<M, R, E, W, [A, W]> + readonly pass: <R, E, W, A>(fa: WriterT3<M, R, E, W, [A, (w: W) => W]>) => WriterT3<M, R, E, W, A> + readonly listens: <R, E, W, A, B>(fa: WriterT3<M, R, E, W, A>, f: (w: W) => B) => WriterT3<M, R, E, W, [A, B]> + readonly censor: <R, E, W, A>(fa: WriterT3<M, R, E, W, A>, f: (w: W) => W) => WriterT3<M, R, E, W, A> + readonly getMonad: <W>(M: Monoid<W>) => { + readonly _E: W + readonly map: <R, E, A, B>(ma: WriterT3<M, R, E, W, A>, f: (a: A) => B) => WriterT3<M, R, E, W, B> + readonly of: <R, E, A>(a: A) => WriterT3<M, R, E, W, A> + readonly ap: <R, E, A, B>( + mab: WriterT3<M, R, E, W, (a: A) => B>, + ma: WriterT3<M, R, E, W, A> + ) => WriterT3<M, R, E, W, B> + readonly chain: <R, E, A, B>( + ma: WriterT3<M, R, E, W, A>, + f: (a: A) => WriterT3<M, R, E, W, B> + ) => WriterT3<M, R, E, W, B> + } +} +/** + * @since 2.4.0 + */ +export declare function getWriterM<M extends URIS3>(M: Monad3<M>): WriterM3<M> +export declare function getWriterM<M extends URIS2>(M: Monad2<M>): WriterM2<M> +export declare function getWriterM<M extends URIS2, E>(M: Monad2C<M, E>): WriterM2C<M, E> +export declare function getWriterM<M extends URIS>(M: Monad1<M>): WriterM1<M> +export declare function getWriterM<M>(M: Monad<M>): WriterM<M> diff --git a/node_modules/fp-ts/lib/WriterT.js b/node_modules/fp-ts/lib/WriterT.js new file mode 100644 index 0000000..ec160de --- /dev/null +++ b/node_modules/fp-ts/lib/WriterT.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getWriterM = getWriterM; +function getWriterM(M) { + var map = function (fa, f) { + return function () { + return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [f(a), w]; + }); + }; + }; + return { + map: map, + evalWriter: function (fa) { return M.map(fa(), function (_a) { + var a = _a[0]; + return a; + }); }, + execWriter: function (fa) { return M.map(fa(), function (_a) { + var _ = _a[0], w = _a[1]; + return w; + }); }, + tell: function (w) { return function () { return M.of([undefined, w]); }; }, + listen: function (fa) { return function () { return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [[a, w], w]; + }); }; }, + pass: function (fa) { return function () { return M.map(fa(), function (_a) { + var _b = _a[0], a = _b[0], f = _b[1], w = _a[1]; + return [a, f(w)]; + }); }; }, + listens: function (fa, f) { return function () { return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [[a, f(w)], w]; + }); }; }, + censor: function (fa, f) { return function () { return M.map(fa(), function (_a) { + var a = _a[0], w = _a[1]; + return [a, f(w)]; + }); }; }, + getMonad: function (W) { + return { + _E: undefined, + map: map, + of: function (a) { return function () { return M.of([a, W.empty]); }; }, + ap: function (mab, ma) { return function () { return M.chain(mab(), function (_a) { + var f = _a[0], w1 = _a[1]; + return M.map(ma(), function (_a) { + var a = _a[0], w2 = _a[1]; + return [f(a), W.concat(w1, w2)]; + }); + }); }; }, + chain: function (ma, f) { return function () { return M.chain(ma(), function (_a) { + var a = _a[0], w1 = _a[1]; + return M.map(f(a)(), function (_a) { + var b = _a[0], w2 = _a[1]; + return [b, W.concat(w1, w2)]; + }); + }); }; } + }; + } + }; +} diff --git a/node_modules/fp-ts/lib/Zero.d.ts b/node_modules/fp-ts/lib/Zero.d.ts new file mode 100644 index 0000000..2d30d7b --- /dev/null +++ b/node_modules/fp-ts/lib/Zero.d.ts @@ -0,0 +1,83 @@ +/** + * @since 2.11.0 + */ +import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed' +/** + * @category model + * @since 2.11.0 + */ +export interface Zero<F> { + readonly URI: F + readonly zero: <A>() => HKT<F, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero1<F extends URIS> { + readonly URI: F + readonly zero: <A>() => Kind<F, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero2<F extends URIS2> { + readonly URI: F + readonly zero: <E, A>() => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero2C<F extends URIS2, E> { + readonly URI: F + readonly _E: E + readonly zero: <A>() => Kind2<F, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero3<F extends URIS3> { + readonly URI: F + readonly zero: <R, E, A>() => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero3C<F extends URIS3, E> { + readonly URI: F + readonly _E: E + readonly zero: <R, A>() => Kind3<F, R, E, A> +} +/** + * @category model + * @since 2.11.0 + */ +export interface Zero4<F extends URIS4> { + readonly URI: F + readonly zero: <S, R, E, A>() => Kind4<F, S, R, E, A> +} +/** + * @category do notation + * @since 2.11.0 + */ +export declare function guard<F extends URIS4>( + F: Zero4<F>, + P: Pointed4<F> +): <S, R, E>(b: boolean) => Kind4<F, S, R, E, void> +export declare function guard<F extends URIS3>(F: Zero3<F>, P: Pointed3<F>): <R, E>(b: boolean) => Kind3<F, R, E, void> +export declare function guard<F extends URIS3, E>( + F: Zero3C<F, E>, + P: Pointed3C<F, E> +): <R>(b: boolean) => Kind3<F, R, E, void> +export declare function guard<F extends URIS2>(F: Zero2<F>, P: Pointed2<F>): <E>(b: boolean) => Kind2<F, E, void> +export declare function guard<F extends URIS2, E>( + F: Zero2C<F, E>, + P: Pointed2C<F, E> +): (b: boolean) => Kind2<F, E, void> +export declare function guard<F extends URIS>(F: Zero1<F>, P: Pointed1<F>): (b: boolean) => Kind<F, void> +export declare function guard<F>(F: Zero<F>, P: Pointed<F>): (b: boolean) => HKT<F, void> diff --git a/node_modules/fp-ts/lib/Zero.js b/node_modules/fp-ts/lib/Zero.js new file mode 100644 index 0000000..f1b875d --- /dev/null +++ b/node_modules/fp-ts/lib/Zero.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.guard = guard; +function guard(F, P) { + return function (b) { return (b ? P.of(undefined) : F.zero()); }; +} diff --git a/node_modules/fp-ts/lib/boolean.d.ts b/node_modules/fp-ts/lib/boolean.d.ts new file mode 100644 index 0000000..cb1ae13 --- /dev/null +++ b/node_modules/fp-ts/lib/boolean.d.ts @@ -0,0 +1,139 @@ +/** + * @since 2.2.0 + */ +import * as BA from './BooleanAlgebra' +import * as E from './Eq' +import { LazyArg } from './function' +import { Monoid } from './Monoid' +import * as O from './Ord' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as S from './Show' +/** + * @category refinements + * @since 2.11.0 + */ +export declare const isBoolean: Refinement<unknown, boolean> +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const matchW: <A, B>(onFalse: LazyArg<A>, onTrue: LazyArg<B>) => (value: boolean) => A | B +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const foldW: <A, B>(onFalse: LazyArg<A>, onTrue: LazyArg<B>) => (value: boolean) => A | B +/** + * Defines the fold over a boolean value. + * Takes two thunks `onTrue`, `onFalse` and a `boolean` value. + * If `value` is false, `onFalse()` is returned, otherwise `onTrue()`. + * + * @example + * import { some, map } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * import { match } from 'fp-ts/boolean' + * + * assert.deepStrictEqual( + * pipe( + * some(true), + * map(match(() => 'false', () => 'true')) + * ), + * some('true') + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +export declare const match: <A>(onFalse: LazyArg<A>, onTrue: LazyArg<A>) => (value: boolean) => A +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.2.0 + */ +export declare const fold: <A>(onFalse: LazyArg<A>, onTrue: LazyArg<A>) => (value: boolean) => A +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<boolean> +/** + * @category instances + * @since 2.10.0 + */ +export declare const BooleanAlgebra: BA.BooleanAlgebra<boolean> +/** + * `boolean` semigroup under conjunction. + * + * @example + * import { SemigroupAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAll.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupAll: Semigroup<boolean> +/** + * `boolean` semigroup under disjunction. + * + * @example + * import { SemigroupAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAny.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAny.concat(true, false), true) + * assert.deepStrictEqual(SemigroupAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupAny: Semigroup<boolean> +/** + * `boolean` monoid under conjunction. + * + * The `empty` value is `true`. + * + * @example + * import { MonoidAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAll.concat(true, true), true) + * assert.deepStrictEqual(MonoidAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidAll: Monoid<boolean> +/** + * `boolean` monoid under disjunction. + * + * The `empty` value is `false`. + * + * @example + * import { MonoidAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAny.concat(true, true), true) + * assert.deepStrictEqual(MonoidAny.concat(true, false), true) + * assert.deepStrictEqual(MonoidAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidAny: Monoid<boolean> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<boolean> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Show: S.Show<boolean> diff --git a/node_modules/fp-ts/lib/boolean.js b/node_modules/fp-ts/lib/boolean.js new file mode 100644 index 0000000..98f7ddb --- /dev/null +++ b/node_modules/fp-ts/lib/boolean.js @@ -0,0 +1,167 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Show = exports.Ord = exports.MonoidAny = exports.MonoidAll = exports.SemigroupAny = exports.SemigroupAll = exports.BooleanAlgebra = exports.Eq = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isBoolean = void 0; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * @category refinements + * @since 2.11.0 + */ +var isBoolean = function (u) { return typeof u === 'boolean'; }; +exports.isBoolean = isBoolean; +/** + * Less strict version of [`match`](#match). + * + * The `W` suffix (short for **W**idening) means that the handler return types will be merged. + * + * @category pattern matching + * @since 2.10.0 + */ +var matchW = function (onFalse, onTrue) { + return function (value) { + return value ? onTrue() : onFalse(); + }; +}; +exports.matchW = matchW; +/** + * Alias of [`matchW`](#matchw). + * + * @category pattern matching + * @since 2.10.0 + */ +exports.foldW = exports.matchW; +/** + * Defines the fold over a boolean value. + * Takes two thunks `onTrue`, `onFalse` and a `boolean` value. + * If `value` is false, `onFalse()` is returned, otherwise `onTrue()`. + * + * @example + * import { some, map } from 'fp-ts/Option' + * import { pipe } from 'fp-ts/function' + * import { match } from 'fp-ts/boolean' + * + * assert.deepStrictEqual( + * pipe( + * some(true), + * map(match(() => 'false', () => 'true')) + * ), + * some('true') + * ) + * + * @category pattern matching + * @since 2.10.0 + */ +exports.match = exports.foldW; +/** + * Alias of [`match`](#match). + * + * @category pattern matching + * @since 2.2.0 + */ +exports.fold = exports.match; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +exports.Eq = { + equals: function (first, second) { return first === second; } +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.BooleanAlgebra = { + meet: function (first, second) { return first && second; }, + join: function (first, second) { return first || second; }, + zero: false, + one: true, + implies: function (first, second) { return !first || second; }, + not: function (b) { return !b; } +}; +/** + * `boolean` semigroup under conjunction. + * + * @example + * import { SemigroupAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAll.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +exports.SemigroupAll = { + concat: function (first, second) { return first && second; } +}; +/** + * `boolean` semigroup under disjunction. + * + * @example + * import { SemigroupAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(SemigroupAny.concat(true, true), true) + * assert.deepStrictEqual(SemigroupAny.concat(true, false), true) + * assert.deepStrictEqual(SemigroupAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +exports.SemigroupAny = { + concat: function (first, second) { return first || second; } +}; +/** + * `boolean` monoid under conjunction. + * + * The `empty` value is `true`. + * + * @example + * import { MonoidAll } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAll.concat(true, true), true) + * assert.deepStrictEqual(MonoidAll.concat(true, false), false) + * + * @category instances + * @since 2.10.0 + */ +exports.MonoidAll = { + concat: exports.SemigroupAll.concat, + empty: true +}; +/** + * `boolean` monoid under disjunction. + * + * The `empty` value is `false`. + * + * @example + * import { MonoidAny } from 'fp-ts/boolean' + * + * assert.deepStrictEqual(MonoidAny.concat(true, true), true) + * assert.deepStrictEqual(MonoidAny.concat(true, false), true) + * assert.deepStrictEqual(MonoidAny.concat(false, false), false) + * + * @category instances + * @since 2.10.0 + */ +exports.MonoidAny = { + concat: exports.SemigroupAny.concat, + empty: false +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Ord = { + equals: exports.Eq.equals, + compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); } +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Show = { + show: function (b) { return JSON.stringify(b); } +}; diff --git a/node_modules/fp-ts/lib/function.d.ts b/node_modules/fp-ts/lib/function.d.ts new file mode 100644 index 0000000..ed5ca44 --- /dev/null +++ b/node_modules/fp-ts/lib/function.d.ts @@ -0,0 +1,579 @@ +/** + * @since 2.0.0 + */ +import { BooleanAlgebra } from './BooleanAlgebra' +import { Monoid } from './Monoid' +import { Ring } from './Ring' +import { Semigroup } from './Semigroup' +import { Semiring } from './Semiring' +/** + * @category instances + * @since 2.10.0 + */ +export declare const getBooleanAlgebra: <B>(B: BooleanAlgebra<B>) => <A = never>() => BooleanAlgebra<(a: A) => B> +/** + * Unary functions form a semigroup as long as you can provide a semigroup for the codomain. + * + * @example + * import { Predicate, getSemigroup } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const S1 = getSemigroup(B.SemigroupAll)<number>() + * + * assert.deepStrictEqual(S1.concat(f, g)(1), true) + * assert.deepStrictEqual(S1.concat(f, g)(3), false) + * + * const S2 = getSemigroup(B.SemigroupAny)<number>() + * + * assert.deepStrictEqual(S2.concat(f, g)(1), true) + * assert.deepStrictEqual(S2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +export declare const getSemigroup: <S>(S: Semigroup<S>) => <A = never>() => Semigroup<(a: A) => S> +/** + * Unary functions form a monoid as long as you can provide a monoid for the codomain. + * + * @example + * import { Predicate } from 'fp-ts/Predicate' + * import { getMonoid } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const M1 = getMonoid(B.MonoidAll)<number>() + * + * assert.deepStrictEqual(M1.concat(f, g)(1), true) + * assert.deepStrictEqual(M1.concat(f, g)(3), false) + * + * const M2 = getMonoid(B.MonoidAny)<number>() + * + * assert.deepStrictEqual(M2.concat(f, g)(1), true) + * assert.deepStrictEqual(M2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +export declare const getMonoid: <M>(M: Monoid<M>) => <A = never>() => Monoid<(a: A) => M> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getSemiring: <A, B>(S: Semiring<B>) => Semiring<(a: A) => B> +/** + * @category instances + * @since 2.10.0 + */ +export declare const getRing: <A, B>(R: Ring<B>) => Ring<(a: A) => B> +/** + * @since 2.11.0 + */ +export declare const apply: <A>(a: A) => <B>(f: (a: A) => B) => B +/** + * @example + * import { FunctionN } from 'fp-ts/function' + * + * export const sum: FunctionN<[number, number], number> = (a, b) => a + b + * + * @since 2.0.0 + */ +export interface FunctionN<A extends ReadonlyArray<unknown>, B> { + (...args: A): B +} +/** + * @since 2.0.0 + */ +export declare function identity<A>(a: A): A +/** + * @since 2.0.0 + */ +export declare const unsafeCoerce: <A, B>(a: A) => B +/** + * @since 2.0.0 + */ +export declare function constant<A>(a: A): LazyArg<A> +/** + * A thunk that returns always `true`. + * + * @since 2.0.0 + */ +export declare const constTrue: LazyArg<boolean> +/** + * A thunk that returns always `false`. + * + * @since 2.0.0 + */ +export declare const constFalse: LazyArg<boolean> +/** + * A thunk that returns always `null`. + * + * @since 2.0.0 + */ +export declare const constNull: LazyArg<null> +/** + * A thunk that returns always `undefined`. + * + * @since 2.0.0 + */ +export declare const constUndefined: LazyArg<undefined> +/** + * A thunk that returns always `void`. + * + * @since 2.0.0 + */ +export declare const constVoid: LazyArg<void> +/** + * Flips the arguments of a curried function. + * + * @example + * import { flip } from 'fp-ts/function' + * + * const f = (a: number) => (b: string) => a - b.length + * + * assert.strictEqual(flip(f)('aaa')(2), -1) + * + * @since 2.0.0 + */ +export declare function flip<A, B, C>(f: (a: A) => (b: B) => C): (b: B) => (a: A) => C +/** @deprecated */ +export declare function flip<A, B, C>(f: (a: A, b: B) => C): (b: B, a: A) => C +/** + * Performs left-to-right function composition. The first argument may have any arity, the remaining arguments must be unary. + * + * See also [`pipe`](#pipe). + * + * @example + * import { flow } from 'fp-ts/function' + * + * const len = (s: string): number => s.length + * const double = (n: number): number => n * 2 + * + * const f = flow(len, double) + * + * assert.strictEqual(f('aaa'), 6) + * + * @since 2.0.0 + */ +export declare function flow<A extends ReadonlyArray<unknown>, B>(ab: (...a: A) => B): (...a: A) => B +export declare function flow<A extends ReadonlyArray<unknown>, B, C>( + ab: (...a: A) => B, + bc: (b: B) => C +): (...a: A) => C +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D +): (...a: A) => D +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E +): (...a: A) => E +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F +): (...a: A) => F +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G +): (...a: A) => G +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H +): (...a: A) => H +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I +): (...a: A) => I +export declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I, J>( + ab: (...a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J +): (...a: A) => J +/** + * @since 2.0.0 + */ +export declare function tuple<T extends ReadonlyArray<any>>(...t: T): T +/** + * @since 2.0.0 + */ +export declare function increment(n: number): number +/** + * @since 2.0.0 + */ +export declare function decrement(n: number): number +/** + * @since 2.0.0 + */ +export declare function absurd<A>(_: never): A +/** + * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument. + * + * @example + * import { tupled } from 'fp-ts/function' + * + * const add = tupled((x: number, y: number): number => x + y) + * + * assert.strictEqual(add([1, 2]), 3) + * + * @since 2.4.0 + */ +export declare function tupled<A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (a: A) => B +/** + * Inverse function of `tupled` + * + * @since 2.4.0 + */ +export declare function untupled<A extends ReadonlyArray<unknown>, B>(f: (a: A) => B): (...a: A) => B +/** + * Pipes the value of an expression into a pipeline of functions. + * + * See also [`flow`](#flow). + * + * @example + * import { pipe } from 'fp-ts/function' + * + * const len = (s: string): number => s.length + * const double = (n: number): number => n * 2 + * + * // without pipe + * assert.strictEqual(double(len('aaa')), 6) + * + * // with pipe + * assert.strictEqual(pipe('aaa', len, double), 6) + * + * @since 2.6.3 + */ +export declare function pipe<A>(a: A): A +export declare function pipe<A, B>(a: A, ab: (a: A) => B): B +export declare function pipe<A, B, C>(a: A, ab: (a: A) => B, bc: (b: B) => C): C +export declare function pipe<A, B, C, D>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D +export declare function pipe<A, B, C, D, E>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E +export declare function pipe<A, B, C, D, E, F>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F +): F +export declare function pipe<A, B, C, D, E, F, G>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G +): G +export declare function pipe<A, B, C, D, E, F, G, H>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H +): H +export declare function pipe<A, B, C, D, E, F, G, H, I>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I +): I +export declare function pipe<A, B, C, D, E, F, G, H, I, J>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J +): J +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K +): K +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L +): L +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M +): M +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N +): N +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O +): O +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P +): P +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q +): Q +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q, + qr: (q: Q) => R +): R +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q, + qr: (q: Q) => R, + rs: (r: R) => S +): S +export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>( + a: A, + ab: (a: A) => B, + bc: (b: B) => C, + cd: (c: C) => D, + de: (d: D) => E, + ef: (e: E) => F, + fg: (f: F) => G, + gh: (g: G) => H, + hi: (h: H) => I, + ij: (i: I) => J, + jk: (j: J) => K, + kl: (k: K) => L, + lm: (l: L) => M, + mn: (m: M) => N, + no: (n: N) => O, + op: (o: O) => P, + pq: (p: P) => Q, + qr: (q: Q) => R, + rs: (r: R) => S, + st: (s: S) => T +): T +/** + * Type hole simulation + * + * @since 2.7.0 + */ +export declare const hole: <T>() => T +/** + * @since 2.11.0 + */ +export declare const SK: <A, B>(_: A, b: B) => B +/** + * Use `Refinement` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface Refinement<A, B extends A> { + (a: A): a is B +} +/** + * Use `Predicate` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface Predicate<A> { + (a: A): boolean +} +/** + * Use `Predicate` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function not<A>(predicate: Predicate<A>): Predicate<A> +/** + * Use `Endomorphism` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface Endomorphism<A> { + (a: A): A +} +/** + * Use `Endomorphism` module instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +export declare const getEndomorphismMonoid: <A = never>() => Monoid<Endomorphism<A>> +/** + * A lazy argument. + * + * @since 2.15.0 + */ +export interface LazyArg<A> { + (): A +} +/** + * Use `LazyArg` instead. + * + * @category lagacy + * @since 2.0.0 + */ +export interface Lazy<A> { + (): A +} diff --git a/node_modules/fp-ts/lib/function.js b/node_modules/fp-ts/lib/function.js new file mode 100644 index 0000000..482e6b7 --- /dev/null +++ b/node_modules/fp-ts/lib/function.js @@ -0,0 +1,369 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.dual = exports.getEndomorphismMonoid = exports.SK = exports.hole = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.unsafeCoerce = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0; +exports.identity = identity; +exports.constant = constant; +exports.flip = flip; +exports.flow = flow; +exports.tuple = tuple; +exports.increment = increment; +exports.decrement = decrement; +exports.absurd = absurd; +exports.tupled = tupled; +exports.untupled = untupled; +exports.pipe = pipe; +exports.not = not; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +var getBooleanAlgebra = function (B) { + return function () { return ({ + meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; }, + join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; }, + zero: function () { return B.zero; }, + one: function () { return B.one; }, + implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; }, + not: function (x) { return function (a) { return B.not(x(a)); }; } + }); }; +}; +exports.getBooleanAlgebra = getBooleanAlgebra; +/** + * Unary functions form a semigroup as long as you can provide a semigroup for the codomain. + * + * @example + * import { Predicate, getSemigroup } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const S1 = getSemigroup(B.SemigroupAll)<number>() + * + * assert.deepStrictEqual(S1.concat(f, g)(1), true) + * assert.deepStrictEqual(S1.concat(f, g)(3), false) + * + * const S2 = getSemigroup(B.SemigroupAny)<number>() + * + * assert.deepStrictEqual(S2.concat(f, g)(1), true) + * assert.deepStrictEqual(S2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +var getSemigroup = function (S) { + return function () { return ({ + concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; } + }); }; +}; +exports.getSemigroup = getSemigroup; +/** + * Unary functions form a monoid as long as you can provide a monoid for the codomain. + * + * @example + * import { Predicate } from 'fp-ts/Predicate' + * import { getMonoid } from 'fp-ts/function' + * import * as B from 'fp-ts/boolean' + * + * const f: Predicate<number> = (n) => n <= 2 + * const g: Predicate<number> = (n) => n >= 0 + * + * const M1 = getMonoid(B.MonoidAll)<number>() + * + * assert.deepStrictEqual(M1.concat(f, g)(1), true) + * assert.deepStrictEqual(M1.concat(f, g)(3), false) + * + * const M2 = getMonoid(B.MonoidAny)<number>() + * + * assert.deepStrictEqual(M2.concat(f, g)(1), true) + * assert.deepStrictEqual(M2.concat(f, g)(3), true) + * + * @category instances + * @since 2.10.0 + */ +var getMonoid = function (M) { + var getSemigroupM = (0, exports.getSemigroup)(M); + return function () { return ({ + concat: getSemigroupM().concat, + empty: function () { return M.empty; } + }); }; +}; +exports.getMonoid = getMonoid; +/** + * @category instances + * @since 2.10.0 + */ +var getSemiring = function (S) { return ({ + add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; }, + zero: function () { return S.zero; }, + mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; }, + one: function () { return S.one; } +}); }; +exports.getSemiring = getSemiring; +/** + * @category instances + * @since 2.10.0 + */ +var getRing = function (R) { + var S = (0, exports.getSemiring)(R); + return { + add: S.add, + mul: S.mul, + one: S.one, + zero: S.zero, + sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; } + }; +}; +exports.getRing = getRing; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * @since 2.11.0 + */ +var apply = function (a) { + return function (f) { + return f(a); + }; +}; +exports.apply = apply; +/** + * @since 2.0.0 + */ +function identity(a) { + return a; +} +/** + * @since 2.0.0 + */ +exports.unsafeCoerce = identity; +/** + * @since 2.0.0 + */ +function constant(a) { + return function () { return a; }; +} +/** + * A thunk that returns always `true`. + * + * @since 2.0.0 + */ +exports.constTrue = constant(true); +/** + * A thunk that returns always `false`. + * + * @since 2.0.0 + */ +exports.constFalse = constant(false); +/** + * A thunk that returns always `null`. + * + * @since 2.0.0 + */ +exports.constNull = constant(null); +/** + * A thunk that returns always `undefined`. + * + * @since 2.0.0 + */ +exports.constUndefined = constant(undefined); +/** + * A thunk that returns always `void`. + * + * @since 2.0.0 + */ +exports.constVoid = exports.constUndefined; +function flip(f) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length > 1) { + return f(args[1], args[0]); + } + return function (a) { return f(a)(args[0]); }; + }; +} +function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) { + switch (arguments.length) { + case 1: + return ab; + case 2: + return function () { + return bc(ab.apply(this, arguments)); + }; + case 3: + return function () { + return cd(bc(ab.apply(this, arguments))); + }; + case 4: + return function () { + return de(cd(bc(ab.apply(this, arguments)))); + }; + case 5: + return function () { + return ef(de(cd(bc(ab.apply(this, arguments))))); + }; + case 6: + return function () { + return fg(ef(de(cd(bc(ab.apply(this, arguments)))))); + }; + case 7: + return function () { + return gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))); + }; + case 8: + return function () { + return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))); + }; + case 9: + return function () { + return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))))); + }; + } + return; +} +/** + * @since 2.0.0 + */ +function tuple() { + var t = []; + for (var _i = 0; _i < arguments.length; _i++) { + t[_i] = arguments[_i]; + } + return t; +} +/** + * @since 2.0.0 + */ +function increment(n) { + return n + 1; +} +/** + * @since 2.0.0 + */ +function decrement(n) { + return n - 1; +} +/** + * @since 2.0.0 + */ +function absurd(_) { + throw new Error('Called `absurd` function which should be uncallable'); +} +/** + * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument. + * + * @example + * import { tupled } from 'fp-ts/function' + * + * const add = tupled((x: number, y: number): number => x + y) + * + * assert.strictEqual(add([1, 2]), 3) + * + * @since 2.4.0 + */ +function tupled(f) { + return function (a) { return f.apply(void 0, a); }; +} +/** + * Inverse function of `tupled` + * + * @since 2.4.0 + */ +function untupled(f) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + return f(a); + }; +} +function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) { + switch (arguments.length) { + case 1: + return a; + case 2: + return ab(a); + case 3: + return bc(ab(a)); + case 4: + return cd(bc(ab(a))); + case 5: + return de(cd(bc(ab(a)))); + case 6: + return ef(de(cd(bc(ab(a))))); + case 7: + return fg(ef(de(cd(bc(ab(a)))))); + case 8: + return gh(fg(ef(de(cd(bc(ab(a))))))); + case 9: + return hi(gh(fg(ef(de(cd(bc(ab(a)))))))); + default: { + var ret = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + ret = arguments[i](ret); + } + return ret; + } + } +} +/** + * Type hole simulation + * + * @since 2.7.0 + */ +exports.hole = absurd; +/** + * @since 2.11.0 + */ +var SK = function (_, b) { return b; }; +exports.SK = SK; +/** + * Use `Predicate` module instead. + * + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +function not(predicate) { + return function (a) { return !predicate(a); }; +} +/** + * Use `Endomorphism` module instead. + * + * @category zone of death + * @since 2.10.0 + * @deprecated + */ +var getEndomorphismMonoid = function () { return ({ + concat: function (first, second) { return flow(first, second); }, + empty: identity +}); }; +exports.getEndomorphismMonoid = getEndomorphismMonoid; +/** @internal */ +var dual = function (arity, body) { + var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity; + return function () { + var args = Array.from(arguments); + if (isDataFirst(arguments)) { + return body.apply(this, args); + } + return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); }; + }; +}; +exports.dual = dual; diff --git a/node_modules/fp-ts/lib/index.d.ts b/node_modules/fp-ts/lib/index.d.ts new file mode 100644 index 0000000..b498a78 --- /dev/null +++ b/node_modules/fp-ts/lib/index.d.ts @@ -0,0 +1,718 @@ +/** + * @since 2.0.0 + */ +import * as alt from './Alt' +import * as alternative from './Alternative' +import * as applicative from './Applicative' +import * as apply from './Apply' +import * as array from './Array' +import * as bifunctor from './Bifunctor' +import * as boolean from './boolean' +import * as booleanAlgebra from './BooleanAlgebra' +import * as bounded from './Bounded' +import * as boundedDistributiveLattice from './BoundedDistributiveLattice' +import * as boundedJoinSemilattice from './BoundedJoinSemilattice' +import * as boundedLattice from './BoundedLattice' +import * as boundedMeetSemilattice from './BoundedMeetSemilattice' +import * as category from './Category' +import * as chain from './Chain' +import * as chainRec from './ChainRec' +import * as choice from './Choice' +import * as comonad from './Comonad' +import * as compactable from './Compactable' +import * as console from './Console' +import * as const_ from './Const' +import * as contravariant from './Contravariant' +import * as date from './Date' +import * as distributiveLattice from './DistributiveLattice' +import * as either from './Either' +import * as eitherT from './EitherT' +import * as endomorphism from './Endomorphism' +import * as eq from './Eq' +import * as extend from './Extend' +import * as field from './Field' +import * as filterable from './Filterable' +import * as filterableWithIndex from './FilterableWithIndex' +import * as foldable from './Foldable' +import * as foldableWithIndex from './FoldableWithIndex' +import * as fromEither from './FromEither' +import * as fromIO from './FromIO' +import * as fromReader from './FromReader' +import * as fromState from './FromState' +import * as fromTask from './FromTask' +import * as fromThese from './FromThese' +import * as function_ from './function' +import * as functor from './Functor' +import * as functorWithIndex from './FunctorWithIndex' +import * as group from './Group' +import * as heytingAlgebra from './HeytingAlgebra' +import * as hkt from './HKT' +import * as identity from './Identity' +import * as invariant from './Invariant' +import * as io from './IO' +import * as ioEither from './IOEither' +import * as ioOption from './IOOption' +import * as ioRef from './IORef' +import * as joinSemilattice from './JoinSemilattice' +import * as json from './Json' +import * as lattice from './Lattice' +import * as magma from './Magma' +import * as map from './Map' +import * as meetSemilattice from './MeetSemilattice' +import * as monad from './Monad' +import * as monadIO from './MonadIO' +import * as monadTask from './MonadTask' +import * as monadThrow from './MonadThrow' +import * as monoid from './Monoid' +import * as naturalTransformation from './NaturalTransformation' +import * as nonEmptyArray from './NonEmptyArray' +import * as number from './number' +import * as option from './Option' +import * as optionT from './OptionT' +import * as ord from './Ord' +import * as ordering from './Ordering' +import * as pipeable from './pipeable' +import * as pointed from './Pointed' +import * as predicate from './Predicate' +import * as profunctor from './Profunctor' +import * as random from './Random' +import * as reader from './Reader' +import * as readerEither from './ReaderEither' +import * as readerIO from './ReaderIO' +import * as readerT from './ReaderT' +import * as readerTask from './ReaderTask' +import * as readerTaskEither from './ReaderTaskEither' +import * as readonlyArray from './ReadonlyArray' +import * as readonlyMap from './ReadonlyMap' +import * as readonlyNonEmptyArray from './ReadonlyNonEmptyArray' +import * as readonlyRecord from './ReadonlyRecord' +import * as readonlySet from './ReadonlySet' +import * as readonlyTuple from './ReadonlyTuple' +import * as record from './Record' +import * as refinement from './Refinement' +import * as ring from './Ring' +import * as semigroup from './Semigroup' +import * as semigroupoid from './Semigroupoid' +import * as semiring from './Semiring' +import * as separated from './Separated' +import * as set from './Set' +import * as show from './Show' +import * as state from './State' +import * as stateReaderTaskEither from './StateReaderTaskEither' +import * as stateT from './StateT' +import * as store from './Store' +import * as string from './string' +import * as strong from './Strong' +import * as struct from './struct' +import * as task from './Task' +import * as taskEither from './TaskEither' +import * as taskOption from './TaskOption' +import * as taskThese from './TaskThese' +import * as these from './These' +import * as theseT from './TheseT' +import * as traced from './Traced' +import * as traversable from './Traversable' +import * as traversableWithIndex from './TraversableWithIndex' +import * as tree from './Tree' +import * as tuple from './Tuple' +import * as unfoldable from './Unfoldable' +import * as validationT from './ValidationT' +import * as void_ from './void' +import * as witherable from './Witherable' +import * as writer from './Writer' +import * as writerT from './WriterT' +import * as zero from './Zero' +export { + /** + * @category model + * @since 2.0.0 + */ + alt, + /** + * @category model + * @since 2.0.0 + */ + alternative, + /** + * @category model + * @since 2.0.0 + */ + applicative, + /** + * @category model + * @since 2.0.0 + */ + apply, + /** + * @category data types + * @since 2.0.0 + */ + array, + /** + * @category model + * @since 2.0.0 + */ + bifunctor, + /** + * @since 2.2.0 + */ + boolean, + /** + * @category model + * @since 2.0.0 + */ + booleanAlgebra, + /** + * @category model + * @since 2.0.0 + */ + bounded, + /** + * @category model + * @since 2.0.0 + */ + boundedDistributiveLattice, + /** + * @category model + * @since 2.0.0 + */ + boundedJoinSemilattice, + /** + * @category model + * @since 2.0.0 + */ + boundedLattice, + /** + * @category model + * @since 2.0.0 + */ + boundedMeetSemilattice, + /** + * @category model + * @since 2.0.0 + */ + category, + /** + * @category model + * @since 2.0.0 + */ + chain, + /** + * @category model + * @since 2.0.0 + */ + chainRec, + /** + * @category model + * @since 2.0.0 + */ + choice, + /** + * @category model + * @since 2.0.0 + */ + comonad, + /** + * @category model + * @since 2.0.0 + */ + compactable, + /** + * @since 2.0.0 + */ + console, + /** + * @category data types + * @since 2.0.0 + */ + const_ as const, + /** + * @category model + * @since 2.0.0 + */ + contravariant, + /** + * @since 2.0.0 + */ + date, + /** + * @category model + * @since 2.0.0 + */ + distributiveLattice, + /** + * @category data types + * @since 2.0.0 + */ + either, + /** + * @category monad transformers + * @since 2.0.0 + */ + eitherT, + /** + * @category data types + * @since 2.11.0 + */ + endomorphism, + /** + * @category model + * @since 2.0.0 + */ + extend, + /** + * @category model + * @since 2.0.0 + */ + field, + /** + * @category model + * @since 2.0.0 + */ + filterable, + /** + * @category model + * @since 2.0.0 + */ + filterableWithIndex, + /** + * @category model + * @since 2.0.0 + */ + foldable, + /** + * @category model + * @since 2.0.0 + */ + foldableWithIndex, + /** + * @category model + * @since 2.10.0 + */ + fromEither, + /** + * @category model + * @since 2.10.0 + */ + fromIO, + /** + * @category model + * @since 2.11.0 + */ + fromReader, + /** + * @category model + * @since 2.11.0 + */ + fromState, + /** + * @category model + * @since 2.10.0 + */ + fromTask, + /** + * @category model + * @since 2.11.0 + */ + fromThese, + /** + * @since 2.0.0 + */ + function_ as function, + /** + * @category model + * @since 2.0.0 + */ + functor, + /** + * @category model + * @since 2.0.0 + */ + functorWithIndex, + /** + * @category model + * @since 2.0.0 + */ + group, + /** + * @category model + * @since 2.0.0 + */ + heytingAlgebra, + /** + * @since 2.0.0 + */ + hkt, + /** + * @category data types + * @since 2.0.0 + */ + identity, + /** + * @category model + * @since 2.0.0 + */ + invariant, + /** + * @category data types + * @since 2.0.0 + */ + io, + /** + * @category data types + * @since 2.0.0 + */ + ioEither, + /** + * @category data types + * @since 2.12.0 + */ + ioOption, + /** + * @since 2.0.0 + */ + ioRef, + /** + * @category model + * @since 2.0.0 + */ + joinSemilattice, + /** + * @since 2.10.0 + */ + json, + /** + * @category model + * @since 2.0.0 + */ + lattice, + /** + * @category model + * @since 2.0.0 + */ + magma, + /** + * @category data types + * @since 2.0.0 + */ + map, + /** + * @category model + * @since 2.0.0 + */ + meetSemilattice, + /** + * @category model + * @since 2.0.0 + */ + monad, + /** + * @category model + * @since 2.0.0 + */ + monadIO, + /** + * @category model + * @since 2.0.0 + */ + monadTask, + /** + * @category model + * @since 2.0.0 + */ + monadThrow, + /** + * @category model + * @since 2.0.0 + */ + monoid, + /** + * @since 2.11.0 + */ + naturalTransformation, + /** + * @category data types + * @since 2.0.0 + */ + nonEmptyArray, + /** + * @since 2.10.0 + */ + number, + /** + * @category data types + * @since 2.0.0 + */ + option, + /** + * @category monad transformers + * @since 2.0.0 + */ + optionT, + /** + * @category model + * @since 2.0.0 + */ + ord, + /** + * @since 2.0.0 + */ + ordering, + /** + * @since 2.0.0 + */ + pipeable, + /** + * @category model + * @since 2.10.0 + */ + pointed, + /** + * @category data types + * @since 2.11.0 + */ + predicate, + /** + * @category model + * @since 2.0.0 + */ + profunctor, + /** + * @since 2.0.0 + */ + random, + /** + * @category data types + * @since 2.0.0 + */ + reader, + /** + * @category data types + * @since 2.0.0 + */ + readerEither, + /** + * @category data types + * @since 2.0.0 + */ + readerIO, + /** + * @category monad transformers + * @since 2.0.0 + */ + readerT, + /** + * @category data types + * @since 2.0.0 + */ + readerTaskEither, + /** + * @category data types + * @since 2.5.0 + */ + readonlyArray, + /** + * @category data types + * @since 2.5.0 + */ + readonlyMap, + /** + * @category data types + * @since 2.5.0 + */ + readonlyNonEmptyArray, + /** + * @category data types + * @since 2.5.0 + */ + readonlyRecord, + /** + * @category data types + * @since 2.5.0 + */ + readonlySet, + /** + * @category data types + * @since 2.5.0 + */ + readonlyTuple, + /** + * @category data types + * @since 2.3.0 + */ + readerTask, + /** + * @category data types + * @since 2.0.0 + */ + record, + /** + * @category data types + * @since 2.11.0 + */ + refinement, + /** + * @category model + * @since 2.0.0 + */ + ring, + /** + * @category model + * @since 2.0.0 + */ + semigroup, + /** + * @category model + * @since 2.0.0 + */ + semigroupoid, + /** + * @category model + * @since 2.0.0 + */ + semiring, + /** + * @category data types + * @since 2.10.0 + */ + separated, + /** + * @category data types + * @since 2.0.0 + */ + set, + /** + * @category model + * @since 2.0.0 + */ + eq, + /** + * @category model + * @since 2.0.0 + */ + show, + /** + * @category data types + * @since 2.0.0 + */ + state, + /** + * @category data types + * @since 2.0.0 + */ + stateReaderTaskEither, + /** + * @category monad transformers + * @since 2.0.0 + */ + stateT, + /** + * @category data types + * @since 2.0.0 + */ + store, + /** + * @since 2.10.0 + */ + string, + /** + * @category model + * @since 2.0.0 + */ + strong, + /** + * @since 2.10.0 + */ + struct, + /** + * @category data types + * @since 2.0.0 + */ + task, + /** + * @category data types + * @since 2.0.0 + */ + taskEither, + /** + * @category data types + * @since 2.10.0 + */ + taskOption, + /** + * @category data types + * @since 2.4.0 + */ + taskThese, + /** + * @category data types + * @since 2.0.0 + */ + these, + /** + * @category monad transformers + * @since 2.4.0 + */ + theseT, + /** + * @category data types + * @since 2.0.0 + */ + traced, + /** + * @category model + * @since 2.0.0 + */ + traversable, + /** + * @category model + * @since 2.0.0 + */ + traversableWithIndex, + /** + * @category data types + * @since 2.0.0 + */ + tree, + /** + * @category data types + * @since 2.0.0 + */ + tuple, + /** + * @category model + * @since 2.0.0 + */ + unfoldable, + /** + * @category data types + * @since 2.0.0 + */ + validationT, + /** + * @category zone of death + * @since 2.11.0 + * @deprecated + */ + void_ as void, + /** + * @category model + * @since 2.0.0 + */ + witherable, + /** + * @category data types + * @since 2.0.0 + */ + writer, + /** + * @category monad transformers + * @since 2.4.0 + */ + writerT, + /** + * @category model + * @since 2.11.0 + */ + zero +} diff --git a/node_modules/fp-ts/lib/index.js b/node_modules/fp-ts/lib/index.js new file mode 100644 index 0000000..7bb7e39 --- /dev/null +++ b/node_modules/fp-ts/lib/index.js @@ -0,0 +1,273 @@ +"use strict"; +/** + * @since 2.0.0 + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ioOption = exports.ioEither = exports.io = exports.invariant = exports.identity = exports.hkt = exports.heytingAlgebra = exports.group = exports.functorWithIndex = exports.functor = exports.function = exports.fromThese = exports.fromTask = exports.fromState = exports.fromReader = exports.fromIO = exports.fromEither = exports.foldableWithIndex = exports.foldable = exports.filterableWithIndex = exports.filterable = exports.field = exports.extend = exports.endomorphism = exports.eitherT = exports.either = exports.distributiveLattice = exports.date = exports.contravariant = exports.const = exports.console = exports.compactable = exports.comonad = exports.choice = exports.chainRec = exports.chain = exports.category = exports.boundedMeetSemilattice = exports.boundedLattice = exports.boundedJoinSemilattice = exports.boundedDistributiveLattice = exports.bounded = exports.booleanAlgebra = exports.boolean = exports.bifunctor = exports.array = exports.apply = exports.applicative = exports.alternative = exports.alt = void 0; +exports.store = exports.stateT = exports.stateReaderTaskEither = exports.state = exports.show = exports.eq = exports.set = exports.separated = exports.semiring = exports.semigroupoid = exports.semigroup = exports.ring = exports.refinement = exports.record = exports.readerTask = exports.readonlyTuple = exports.readonlySet = exports.readonlyRecord = exports.readonlyNonEmptyArray = exports.readonlyMap = exports.readonlyArray = exports.readerTaskEither = exports.readerT = exports.readerIO = exports.readerEither = exports.reader = exports.random = exports.profunctor = exports.predicate = exports.pointed = exports.pipeable = exports.ordering = exports.ord = exports.optionT = exports.option = exports.number = exports.nonEmptyArray = exports.naturalTransformation = exports.monoid = exports.monadThrow = exports.monadTask = exports.monadIO = exports.monad = exports.meetSemilattice = exports.map = exports.magma = exports.lattice = exports.json = exports.joinSemilattice = exports.ioRef = void 0; +exports.zero = exports.writerT = exports.writer = exports.witherable = exports.void = exports.validationT = exports.unfoldable = exports.tuple = exports.tree = exports.traversableWithIndex = exports.traversable = exports.traced = exports.theseT = exports.these = exports.taskThese = exports.taskOption = exports.taskEither = exports.task = exports.struct = exports.strong = exports.string = void 0; +var alt = __importStar(require("./Alt")); +exports.alt = alt; +var alternative = __importStar(require("./Alternative")); +exports.alternative = alternative; +var applicative = __importStar(require("./Applicative")); +exports.applicative = applicative; +var apply = __importStar(require("./Apply")); +exports.apply = apply; +var array = __importStar(require("./Array")); +exports.array = array; +var bifunctor = __importStar(require("./Bifunctor")); +exports.bifunctor = bifunctor; +var boolean = __importStar(require("./boolean")); +exports.boolean = boolean; +var booleanAlgebra = __importStar(require("./BooleanAlgebra")); +exports.booleanAlgebra = booleanAlgebra; +var bounded = __importStar(require("./Bounded")); +exports.bounded = bounded; +var boundedDistributiveLattice = __importStar(require("./BoundedDistributiveLattice")); +exports.boundedDistributiveLattice = boundedDistributiveLattice; +var boundedJoinSemilattice = __importStar(require("./BoundedJoinSemilattice")); +exports.boundedJoinSemilattice = boundedJoinSemilattice; +var boundedLattice = __importStar(require("./BoundedLattice")); +exports.boundedLattice = boundedLattice; +var boundedMeetSemilattice = __importStar(require("./BoundedMeetSemilattice")); +exports.boundedMeetSemilattice = boundedMeetSemilattice; +var category = __importStar(require("./Category")); +exports.category = category; +var chain = __importStar(require("./Chain")); +exports.chain = chain; +var chainRec = __importStar(require("./ChainRec")); +exports.chainRec = chainRec; +var choice = __importStar(require("./Choice")); +exports.choice = choice; +var comonad = __importStar(require("./Comonad")); +exports.comonad = comonad; +var compactable = __importStar(require("./Compactable")); +exports.compactable = compactable; +var console = __importStar(require("./Console")); +exports.console = console; +var const_ = __importStar(require("./Const")); +exports.const = const_; +var contravariant = __importStar(require("./Contravariant")); +exports.contravariant = contravariant; +var date = __importStar(require("./Date")); +exports.date = date; +var distributiveLattice = __importStar(require("./DistributiveLattice")); +exports.distributiveLattice = distributiveLattice; +var either = __importStar(require("./Either")); +exports.either = either; +var eitherT = __importStar(require("./EitherT")); +exports.eitherT = eitherT; +var endomorphism = __importStar(require("./Endomorphism")); +exports.endomorphism = endomorphism; +var eq = __importStar(require("./Eq")); +exports.eq = eq; +var extend = __importStar(require("./Extend")); +exports.extend = extend; +var field = __importStar(require("./Field")); +exports.field = field; +var filterable = __importStar(require("./Filterable")); +exports.filterable = filterable; +var filterableWithIndex = __importStar(require("./FilterableWithIndex")); +exports.filterableWithIndex = filterableWithIndex; +var foldable = __importStar(require("./Foldable")); +exports.foldable = foldable; +var foldableWithIndex = __importStar(require("./FoldableWithIndex")); +exports.foldableWithIndex = foldableWithIndex; +var fromEither = __importStar(require("./FromEither")); +exports.fromEither = fromEither; +var fromIO = __importStar(require("./FromIO")); +exports.fromIO = fromIO; +var fromReader = __importStar(require("./FromReader")); +exports.fromReader = fromReader; +var fromState = __importStar(require("./FromState")); +exports.fromState = fromState; +var fromTask = __importStar(require("./FromTask")); +exports.fromTask = fromTask; +var fromThese = __importStar(require("./FromThese")); +exports.fromThese = fromThese; +var function_ = __importStar(require("./function")); +exports.function = function_; +var functor = __importStar(require("./Functor")); +exports.functor = functor; +var functorWithIndex = __importStar(require("./FunctorWithIndex")); +exports.functorWithIndex = functorWithIndex; +var group = __importStar(require("./Group")); +exports.group = group; +var heytingAlgebra = __importStar(require("./HeytingAlgebra")); +exports.heytingAlgebra = heytingAlgebra; +var hkt = __importStar(require("./HKT")); +exports.hkt = hkt; +var identity = __importStar(require("./Identity")); +exports.identity = identity; +var invariant = __importStar(require("./Invariant")); +exports.invariant = invariant; +var io = __importStar(require("./IO")); +exports.io = io; +var ioEither = __importStar(require("./IOEither")); +exports.ioEither = ioEither; +var ioOption = __importStar(require("./IOOption")); +exports.ioOption = ioOption; +var ioRef = __importStar(require("./IORef")); +exports.ioRef = ioRef; +var joinSemilattice = __importStar(require("./JoinSemilattice")); +exports.joinSemilattice = joinSemilattice; +var json = __importStar(require("./Json")); +exports.json = json; +var lattice = __importStar(require("./Lattice")); +exports.lattice = lattice; +var magma = __importStar(require("./Magma")); +exports.magma = magma; +var map = __importStar(require("./Map")); +exports.map = map; +var meetSemilattice = __importStar(require("./MeetSemilattice")); +exports.meetSemilattice = meetSemilattice; +var monad = __importStar(require("./Monad")); +exports.monad = monad; +var monadIO = __importStar(require("./MonadIO")); +exports.monadIO = monadIO; +var monadTask = __importStar(require("./MonadTask")); +exports.monadTask = monadTask; +var monadThrow = __importStar(require("./MonadThrow")); +exports.monadThrow = monadThrow; +var monoid = __importStar(require("./Monoid")); +exports.monoid = monoid; +var naturalTransformation = __importStar(require("./NaturalTransformation")); +exports.naturalTransformation = naturalTransformation; +var nonEmptyArray = __importStar(require("./NonEmptyArray")); +exports.nonEmptyArray = nonEmptyArray; +var number = __importStar(require("./number")); +exports.number = number; +var option = __importStar(require("./Option")); +exports.option = option; +var optionT = __importStar(require("./OptionT")); +exports.optionT = optionT; +var ord = __importStar(require("./Ord")); +exports.ord = ord; +var ordering = __importStar(require("./Ordering")); +exports.ordering = ordering; +var pipeable = __importStar(require("./pipeable")); +exports.pipeable = pipeable; +var pointed = __importStar(require("./Pointed")); +exports.pointed = pointed; +var predicate = __importStar(require("./Predicate")); +exports.predicate = predicate; +var profunctor = __importStar(require("./Profunctor")); +exports.profunctor = profunctor; +var random = __importStar(require("./Random")); +exports.random = random; +var reader = __importStar(require("./Reader")); +exports.reader = reader; +var readerEither = __importStar(require("./ReaderEither")); +exports.readerEither = readerEither; +var readerIO = __importStar(require("./ReaderIO")); +exports.readerIO = readerIO; +var readerT = __importStar(require("./ReaderT")); +exports.readerT = readerT; +var readerTask = __importStar(require("./ReaderTask")); +exports.readerTask = readerTask; +var readerTaskEither = __importStar(require("./ReaderTaskEither")); +exports.readerTaskEither = readerTaskEither; +var readonlyArray = __importStar(require("./ReadonlyArray")); +exports.readonlyArray = readonlyArray; +var readonlyMap = __importStar(require("./ReadonlyMap")); +exports.readonlyMap = readonlyMap; +var readonlyNonEmptyArray = __importStar(require("./ReadonlyNonEmptyArray")); +exports.readonlyNonEmptyArray = readonlyNonEmptyArray; +var readonlyRecord = __importStar(require("./ReadonlyRecord")); +exports.readonlyRecord = readonlyRecord; +var readonlySet = __importStar(require("./ReadonlySet")); +exports.readonlySet = readonlySet; +var readonlyTuple = __importStar(require("./ReadonlyTuple")); +exports.readonlyTuple = readonlyTuple; +var record = __importStar(require("./Record")); +exports.record = record; +var refinement = __importStar(require("./Refinement")); +exports.refinement = refinement; +var ring = __importStar(require("./Ring")); +exports.ring = ring; +var semigroup = __importStar(require("./Semigroup")); +exports.semigroup = semigroup; +var semigroupoid = __importStar(require("./Semigroupoid")); +exports.semigroupoid = semigroupoid; +var semiring = __importStar(require("./Semiring")); +exports.semiring = semiring; +var separated = __importStar(require("./Separated")); +exports.separated = separated; +var set = __importStar(require("./Set")); +exports.set = set; +var show = __importStar(require("./Show")); +exports.show = show; +var state = __importStar(require("./State")); +exports.state = state; +var stateReaderTaskEither = __importStar(require("./StateReaderTaskEither")); +exports.stateReaderTaskEither = stateReaderTaskEither; +var stateT = __importStar(require("./StateT")); +exports.stateT = stateT; +var store = __importStar(require("./Store")); +exports.store = store; +var string = __importStar(require("./string")); +exports.string = string; +var strong = __importStar(require("./Strong")); +exports.strong = strong; +var struct = __importStar(require("./struct")); +exports.struct = struct; +var task = __importStar(require("./Task")); +exports.task = task; +var taskEither = __importStar(require("./TaskEither")); +exports.taskEither = taskEither; +var taskOption = __importStar(require("./TaskOption")); +exports.taskOption = taskOption; +var taskThese = __importStar(require("./TaskThese")); +exports.taskThese = taskThese; +var these = __importStar(require("./These")); +exports.these = these; +var theseT = __importStar(require("./TheseT")); +exports.theseT = theseT; +var traced = __importStar(require("./Traced")); +exports.traced = traced; +var traversable = __importStar(require("./Traversable")); +exports.traversable = traversable; +var traversableWithIndex = __importStar(require("./TraversableWithIndex")); +exports.traversableWithIndex = traversableWithIndex; +var tree = __importStar(require("./Tree")); +exports.tree = tree; +var tuple = __importStar(require("./Tuple")); +exports.tuple = tuple; +var unfoldable = __importStar(require("./Unfoldable")); +exports.unfoldable = unfoldable; +var validationT = __importStar(require("./ValidationT")); +exports.validationT = validationT; +var void_ = __importStar(require("./void")); +exports.void = void_; +var witherable = __importStar(require("./Witherable")); +exports.witherable = witherable; +var writer = __importStar(require("./Writer")); +exports.writer = writer; +var writerT = __importStar(require("./WriterT")); +exports.writerT = writerT; +var zero = __importStar(require("./Zero")); +exports.zero = zero; diff --git a/node_modules/fp-ts/lib/internal.d.ts b/node_modules/fp-ts/lib/internal.d.ts new file mode 100644 index 0000000..336ce12 --- /dev/null +++ b/node_modules/fp-ts/lib/internal.d.ts @@ -0,0 +1 @@ +export {} diff --git a/node_modules/fp-ts/lib/internal.js b/node_modules/fp-ts/lib/internal.js new file mode 100644 index 0000000..808c899 --- /dev/null +++ b/node_modules/fp-ts/lib/internal.js @@ -0,0 +1,143 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.fromReadonlyNonEmptyArray = exports.has = exports.emptyRecord = exports.emptyReadonlyArray = exports.tail = exports.head = exports.isNonEmpty = exports.singleton = exports.right = exports.left = exports.isRight = exports.isLeft = exports.some = exports.none = exports.isSome = exports.isNone = void 0; +var function_1 = require("./function"); +// ------------------------------------------------------------------------------------- +// Option +// ------------------------------------------------------------------------------------- +/** @internal */ +var isNone = function (fa) { return fa._tag === 'None'; }; +exports.isNone = isNone; +/** @internal */ +var isSome = function (fa) { return fa._tag === 'Some'; }; +exports.isSome = isSome; +/** @internal */ +exports.none = { _tag: 'None' }; +/** @internal */ +var some = function (a) { return ({ _tag: 'Some', value: a }); }; +exports.some = some; +// ------------------------------------------------------------------------------------- +// Either +// ------------------------------------------------------------------------------------- +/** @internal */ +var isLeft = function (ma) { return ma._tag === 'Left'; }; +exports.isLeft = isLeft; +/** @internal */ +var isRight = function (ma) { return ma._tag === 'Right'; }; +exports.isRight = isRight; +/** @internal */ +var left = function (e) { return ({ _tag: 'Left', left: e }); }; +exports.left = left; +/** @internal */ +var right = function (a) { return ({ _tag: 'Right', right: a }); }; +exports.right = right; +// ------------------------------------------------------------------------------------- +// ReadonlyNonEmptyArray +// ------------------------------------------------------------------------------------- +/** @internal */ +var singleton = function (a) { return [a]; }; +exports.singleton = singleton; +/** @internal */ +var isNonEmpty = function (as) { return as.length > 0; }; +exports.isNonEmpty = isNonEmpty; +/** @internal */ +var head = function (as) { return as[0]; }; +exports.head = head; +/** @internal */ +var tail = function (as) { return as.slice(1); }; +exports.tail = tail; +// ------------------------------------------------------------------------------------- +// empty +// ------------------------------------------------------------------------------------- +/** @internal */ +exports.emptyReadonlyArray = []; +/** @internal */ +exports.emptyRecord = {}; +// ------------------------------------------------------------------------------------- +// Record +// ------------------------------------------------------------------------------------- +/** @internal */ +exports.has = Object.prototype.hasOwnProperty; +// ------------------------------------------------------------------------------------- +// NonEmptyArray +// ------------------------------------------------------------------------------------- +/** @internal */ +var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); }; +exports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray; +/** @internal */ +var liftNullable = function (F) { + return function (f, onNullable) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + var o = f.apply(void 0, a); + return F.fromEither(o == null ? (0, exports.left)(onNullable.apply(void 0, a)) : (0, exports.right)(o)); + }; + }; +}; +exports.liftNullable = liftNullable; +/** @internal */ +var liftOption = function (F) { + return function (f, onNone) { + return function () { + var a = []; + for (var _i = 0; _i < arguments.length; _i++) { + a[_i] = arguments[_i]; + } + var o = f.apply(void 0, a); + return F.fromEither((0, exports.isNone)(o) ? (0, exports.left)(onNone.apply(void 0, a)) : (0, exports.right)(o.value)); + }; + }; +}; +exports.liftOption = liftOption; +/** @internal */ +var flatMapNullable = function (F, M) { + return /*#__PURE__*/ (0, function_1.dual)(3, function (self, f, onNullable) { + return M.flatMap(self, (0, exports.liftNullable)(F)(f, onNullable)); + }); +}; +exports.flatMapNullable = flatMapNullable; +/** @internal */ +var flatMapOption = function (F, M) { + return /*#__PURE__*/ (0, function_1.dual)(3, function (self, f, onNone) { return M.flatMap(self, (0, exports.liftOption)(F)(f, onNone)); }); +}; +exports.flatMapOption = flatMapOption; +/** @internal */ +var flatMapEither = function (F, M) { + return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromEither(f(a)); }); + }); +}; +exports.flatMapEither = flatMapEither; +/** @internal */ +var flatMapIO = function (F, M) { + return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromIO(f(a)); }); + }); +}; +exports.flatMapIO = flatMapIO; +/** @internal */ +var flatMapTask = function (F, M) { + return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromTask(f(a)); }); + }); +}; +exports.flatMapTask = flatMapTask; +/** @internal */ +var flatMapReader = function (F, M) { + return /*#__PURE__*/ (0, function_1.dual)(2, function (self, f) { + return M.flatMap(self, function (a) { return F.fromReader(f(a)); }); + }); +}; +exports.flatMapReader = flatMapReader; diff --git a/node_modules/fp-ts/lib/number.d.ts b/node_modules/fp-ts/lib/number.d.ts new file mode 100644 index 0000000..766667d --- /dev/null +++ b/node_modules/fp-ts/lib/number.d.ts @@ -0,0 +1,99 @@ +/** + * @since 2.10.0 + */ +import * as B from './Bounded' +import * as E from './Eq' +import * as F from './Field' +import { Magma } from './Magma' +import { Monoid } from './Monoid' +import * as O from './Ord' +import { Refinement } from './Refinement' +import { Semigroup } from './Semigroup' +import * as S from './Show' +/** + * @category refinements + * @since 2.11.0 + */ +export declare const isNumber: Refinement<unknown, number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Bounded: B.Bounded<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Show: S.Show<number> +/** + * @category instances + * @since 2.11.0 + */ +export declare const MagmaSub: Magma<number> +/** + * `number` semigroup under addition. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupSum: Semigroup<number> +/** + * `number` semigroup under multiplication. + * + * @example + * import { SemigroupProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6) + * + * @category instances + * @since 2.10.0 + */ +export declare const SemigroupProduct: Semigroup<number> +/** + * `number` monoid under addition. + * + * The `empty` value is `0`. + * + * @example + * import { MonoidSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidSum: Monoid<number> +/** + * `number` monoid under multiplication. + * + * The `empty` value is `1`. + * + * @example + * import { MonoidProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +export declare const MonoidProduct: Monoid<number> +/** + * @category instances + * @since 2.10.0 + */ +export declare const Field: F.Field<number> diff --git a/node_modules/fp-ts/lib/number.js b/node_modules/fp-ts/lib/number.js new file mode 100644 index 0000000..da10b16 --- /dev/null +++ b/node_modules/fp-ts/lib/number.js @@ -0,0 +1,130 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Field = exports.MonoidProduct = exports.MonoidSum = exports.SemigroupProduct = exports.SemigroupSum = exports.MagmaSub = exports.Show = exports.Bounded = exports.Ord = exports.Eq = exports.isNumber = void 0; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * @category refinements + * @since 2.11.0 + */ +var isNumber = function (u) { return typeof u === 'number'; }; +exports.isNumber = isNumber; +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.10.0 + */ +exports.Eq = { + equals: function (first, second) { return first === second; } +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Ord = { + equals: exports.Eq.equals, + compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); } +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Bounded = { + equals: exports.Eq.equals, + compare: exports.Ord.compare, + top: Infinity, + bottom: -Infinity +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Show = { + show: function (n) { return JSON.stringify(n); } +}; +/** + * @category instances + * @since 2.11.0 + */ +exports.MagmaSub = { + concat: function (first, second) { return first - second; } +}; +/** + * `number` semigroup under addition. + * + * @example + * import { SemigroupSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5) + * + * @category instances + * @since 2.10.0 + */ +exports.SemigroupSum = { + concat: function (first, second) { return first + second; } +}; +/** + * `number` semigroup under multiplication. + * + * @example + * import { SemigroupProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6) + * + * @category instances + * @since 2.10.0 + */ +exports.SemigroupProduct = { + concat: function (first, second) { return first * second; } +}; +/** + * `number` monoid under addition. + * + * The `empty` value is `0`. + * + * @example + * import { MonoidSum } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +exports.MonoidSum = { + concat: exports.SemigroupSum.concat, + empty: 0 +}; +/** + * `number` monoid under multiplication. + * + * The `empty` value is `1`. + * + * @example + * import { MonoidProduct } from 'fp-ts/number' + * + * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2) + * + * @category instances + * @since 2.10.0 + */ +exports.MonoidProduct = { + concat: exports.SemigroupProduct.concat, + empty: 1 +}; +/** + * @category instances + * @since 2.10.0 + */ +exports.Field = { + add: exports.SemigroupSum.concat, + zero: 0, + mul: exports.SemigroupProduct.concat, + one: 1, + sub: exports.MagmaSub.concat, + degree: function (_) { return 1; }, + div: function (first, second) { return first / second; }, + mod: function (first, second) { return first % second; } +}; diff --git a/node_modules/fp-ts/lib/pipeable.d.ts b/node_modules/fp-ts/lib/pipeable.d.ts new file mode 100644 index 0000000..40e84bc --- /dev/null +++ b/node_modules/fp-ts/lib/pipeable.d.ts @@ -0,0 +1,2275 @@ +/** + * @since 2.0.0 + */ +import { Alt, Alt1, Alt2, Alt2C, Alt3, Alt3C, Alt4 } from './Alt' +import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply' +import { Bifunctor, Bifunctor2, Bifunctor2C, Bifunctor3, Bifunctor3C, Bifunctor4 } from './Bifunctor' +import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain' +import { + Compactable, + Compactable1, + Compactable2, + Compactable2C, + Compactable3, + Compactable3C, + Compactable4 +} from './Compactable' +import { + Contravariant, + Contravariant1, + Contravariant2, + Contravariant2C, + Contravariant3, + Contravariant3C, + Contravariant4 +} from './Contravariant' +import { Either } from './Either' +import { Extend, Extend1, Extend2, Extend2C, Extend3, Extend3C, Extend4 } from './Extend' +import { + Filterable, + Filterable1, + Filterable2, + Filterable2C, + Filterable3, + Filterable3C, + Filterable4 +} from './Filterable' +import { + FilterableWithIndex, + FilterableWithIndex1, + FilterableWithIndex2, + FilterableWithIndex2C, + FilterableWithIndex3, + FilterableWithIndex3C, + FilterableWithIndex4, + PredicateWithIndex, + RefinementWithIndex +} from './FilterableWithIndex' +import { Foldable, Foldable1, Foldable2, Foldable2C, Foldable3, Foldable3C, Foldable4 } from './Foldable' +import { + FoldableWithIndex, + FoldableWithIndex1, + FoldableWithIndex2, + FoldableWithIndex2C, + FoldableWithIndex3, + FoldableWithIndex3C, + FoldableWithIndex4 +} from './FoldableWithIndex' +import { LazyArg, pipe as pipeFromFunctionModule } from './function' +import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor' +import { + FunctorWithIndex, + FunctorWithIndex1, + FunctorWithIndex2, + FunctorWithIndex2C, + FunctorWithIndex3, + FunctorWithIndex3C, + FunctorWithIndex4 +} from './FunctorWithIndex' +import { HKT, HKT2, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' +import { + MonadThrow, + MonadThrow1, + MonadThrow2, + MonadThrow2C, + MonadThrow3, + MonadThrow3C, + MonadThrow4 +} from './MonadThrow' +import { Monoid } from './Monoid' +import { Option } from './Option' +import { Predicate } from './Predicate' +import { Profunctor, Profunctor2, Profunctor2C, Profunctor3, Profunctor3C, Profunctor4 } from './Profunctor' +import { Refinement } from './Refinement' +import { + Semigroupoid, + Semigroupoid2, + Semigroupoid2C, + Semigroupoid3, + Semigroupoid3C, + Semigroupoid4 +} from './Semigroupoid' +import { Separated } from './Separated' +/** + * Returns a pipeable `map` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function map<F extends URIS4>( + F: Functor4<F> +): <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function map<F extends URIS3>( + F: Functor3<F> +): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function map<F extends URIS3, E>( + F: Functor3C<F, E> +): <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function map<F extends URIS2>( + F: Functor2<F> +): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function map<F extends URIS2, E>( + F: Functor2C<F, E> +): <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function map<F extends URIS>(F: Functor1<F>): <A, B>(f: (a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `contramap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function contramap<F extends URIS4>( + F: Contravariant4<F> +): <A, B>(f: (b: B) => A) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function contramap<F extends URIS3>( + F: Contravariant3<F> +): <A, B>(f: (b: B) => A) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function contramap<F extends URIS3, E>( + F: Contravariant3C<F, E> +): <A, B>(f: (b: B) => A) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function contramap<F extends URIS2>( + F: Contravariant2<F> +): <A, B>(f: (b: B) => A) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function contramap<F extends URIS2, E>( + F: Contravariant2C<F, E> +): <A, B>(f: (b: B) => A) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function contramap<F extends URIS>( + F: Contravariant1<F> +): <A, B>(f: (b: B) => A) => (fa: Kind<F, A>) => Kind<F, B> +export declare function contramap<F>(F: Contravariant<F>): <A, B>(f: (b: B) => A) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `mapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function mapWithIndex<F extends URIS4, I>( + F: FunctorWithIndex4<F, I> +): <A, B>(f: (i: I, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function mapWithIndex<F extends URIS3, I>( + F: FunctorWithIndex3<F, I> +): <A, B>(f: (i: I, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function mapWithIndex<F extends URIS3, I, E>( + F: FunctorWithIndex3C<F, I, E> +): <A, B>(f: (i: I, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function mapWithIndex<F extends URIS2, I>( + F: FunctorWithIndex2<F, I> +): <A, B>(f: (i: I, a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function mapWithIndex<F extends URIS2, I, E>( + F: FunctorWithIndex2C<F, I, E> +): <A, B>(f: (i: I, a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function mapWithIndex<F extends URIS, I>( + F: FunctorWithIndex1<F, I> +): <A, B>(f: (i: I, a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +export declare function mapWithIndex<F, I>( + F: FunctorWithIndex<F, I> +): <A, B>(f: (i: I, a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `ap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function ap<F extends URIS4>( + F: Apply4<F> +): <S, R, E, A>(fa: Kind4<F, S, R, E, A>) => <B>(fab: Kind4<F, S, R, E, (a: A) => B>) => Kind4<F, S, R, E, B> +export declare function ap<F extends URIS3>( + F: Apply3<F> +): <R, E, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> +export declare function ap<F extends URIS3, E>( + F: Apply3C<F, E> +): <R, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> +export declare function ap<F extends URIS2>( + F: Apply2<F> +): <E, A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> +export declare function ap<F extends URIS2, E>( + F: Apply2C<F, E> +): <A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> +export declare function ap<F extends URIS>( + F: Apply1<F> +): <A>(fa: Kind<F, A>) => <B>(fab: Kind<F, (a: A) => B>) => Kind<F, B> +export declare function ap<F>(F: Apply<F>): <A>(fa: HKT<F, A>) => <B>(fab: HKT<F, (a: A) => B>) => HKT<F, B> +/** + * Returns a pipeable `chain` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function chain<F extends URIS4>( + F: Chain4<F> +): <A, S, R, E, B>(f: (a: A) => Kind4<F, S, R, E, B>) => (fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function chain<F extends URIS3>( + F: Chain3<F> +): <A, R, E, B>(f: (a: A) => Kind3<F, R, E, B>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chain<F extends URIS3, E>( + F: Chain3C<F, E> +): <A, R, B>(f: (a: A) => Kind3<F, R, E, B>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function chain<F extends URIS2>( + F: Chain2<F> +): <A, E, B>(f: (a: A) => Kind2<F, E, B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chain<F extends URIS2, E>( + F: Chain2C<F, E> +): <A, B>(f: (a: A) => Kind2<F, E, B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function chain<F extends URIS>( + F: Chain1<F> +): <A, B>(f: (a: A) => Kind<F, B>) => (fa: Kind<F, A>) => Kind<F, B> +export declare function chain<F>(F: Chain<F>): <A, B>(f: (a: A) => HKT<F, B>) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `bimap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function bimap<F extends URIS4>( + F: Bifunctor4<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <S, R>(fea: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, B> +export declare function bimap<F extends URIS3>( + F: Bifunctor3<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, B> +export declare function bimap<F extends URIS3, E>( + F: Bifunctor3C<F, E> +): <G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, B> +export declare function bimap<F extends URIS2>( + F: Bifunctor2<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind2<F, E, A>) => Kind2<F, G, B> +export declare function bimap<F extends URIS2, E>( + F: Bifunctor2C<F, E> +): <G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: Kind2<F, E, A>) => Kind2<F, G, B> +export declare function bimap<F>( + F: Bifunctor<F> +): <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fea: HKT2<F, E, A>) => HKT2<F, G, B> +/** + * Returns a pipeable `mapLeft` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function mapLeft<F extends URIS4>( + F: Bifunctor4<F> +): <E, G>(f: (e: E) => G) => <S, R, A>(fea: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, A> +export declare function mapLeft<F extends URIS3>( + F: Bifunctor3<F> +): <E, G>(f: (e: E) => G) => <R, A>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +export declare function mapLeft<F extends URIS3, E>( + F: Bifunctor3C<F, E> +): <E, G>(f: (e: E) => G) => <R, A>(fea: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +export declare function mapLeft<F extends URIS2>( + F: Bifunctor2<F> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind2<F, E, A>) => Kind2<F, G, A> +export declare function mapLeft<F extends URIS2, E>( + F: Bifunctor2C<F, E> +): <E, G>(f: (e: E) => G) => <A>(fea: Kind2<F, E, A>) => Kind2<F, G, A> +export declare function mapLeft<F>(F: Bifunctor<F>): <E, G>(f: (e: E) => G) => <A>(fea: HKT2<F, E, A>) => HKT2<F, G, A> +/** + * Returns a pipeable `extend` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function extend<F extends URIS4>( + F: Extend4<F> +): <S, R, E, A, B>(f: (wa: Kind4<F, S, R, E, A>) => B) => (wa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function extend<F extends URIS3>( + F: Extend3<F> +): <R, E, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function extend<F extends URIS3, E>( + F: Extend3C<F, E> +): <R, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function extend<F extends URIS2>( + F: Extend2<F> +): <E, A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function extend<F extends URIS2, E>( + F: Extend2C<F, E> +): <A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function extend<F extends URIS>( + F: Extend1<F> +): <A, B>(f: (wa: Kind<F, A>) => B) => (wa: Kind<F, A>) => Kind<F, B> +export declare function extend<F>(F: Extend<F>): <A, B>(f: (wa: HKT<F, A>) => B) => (wa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `reduce` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduce<F extends URIS4>( + F: Foldable4<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduce<F extends URIS3>( + F: Foldable3<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduce<F extends URIS3, E>( + F: Foldable3C<F, E> +): <A, B>(b: B, f: (b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduce<F extends URIS2>( + F: Foldable2<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduce<F extends URIS2, E>( + F: Foldable2C<F, E> +): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduce<F extends URIS>( + F: Foldable1<F> +): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind<F, A>) => B +export declare function reduce<F>(F: Foldable<F>): <A, B>(b: B, f: (b: B, a: A) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `foldMap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function foldMap<F extends URIS4>( + F: Foldable4<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M +export declare function foldMap<F extends URIS3>( + F: Foldable3<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M +export declare function foldMap<F extends URIS3, E>( + F: Foldable3C<F, E> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M +export declare function foldMap<F extends URIS2>( + F: Foldable2<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: Kind2<F, E, A>) => M +export declare function foldMap<F extends URIS2, E>( + F: Foldable2C<F, E> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind2<F, E, A>) => M +export declare function foldMap<F extends URIS>( + F: Foldable1<F> +): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind<F, A>) => M +export declare function foldMap<F>(F: Foldable<F>): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: HKT<F, A>) => M +/** + * Returns a pipeable `reduceRight` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduceRight<F extends URIS4>( + F: Foldable4<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduceRight<F extends URIS3>( + F: Foldable3<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRight<F extends URIS3, E>( + F: Foldable3C<F, E> +): <A, B>(b: B, f: (a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRight<F extends URIS2>( + F: Foldable2<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduceRight<F extends URIS2, E>( + F: Foldable2C<F, E> +): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduceRight<F extends URIS>( + F: Foldable1<F> +): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind<F, A>) => B +export declare function reduceRight<F>(F: Foldable<F>): <A, B>(b: B, f: (a: A, b: B) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `reduceWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduceWithIndex<F extends URIS4, I>( + F: FoldableWithIndex4<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduceWithIndex<F extends URIS3, I>( + F: FoldableWithIndex3<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduceWithIndex<F extends URIS3, I, E>( + F: FoldableWithIndex3C<F, I, E> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduceWithIndex<F extends URIS2, I>( + F: FoldableWithIndex2<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduceWithIndex<F extends URIS2, I, E>( + F: FoldableWithIndex2C<F, I, E> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduceWithIndex<F extends URIS, I>( + F: FoldableWithIndex1<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind<F, A>) => B +export declare function reduceWithIndex<F, I>( + F: FoldableWithIndex<F, I> +): <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `foldMapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function foldMapWithIndex<F extends URIS4, I>( + F: FoldableWithIndex4<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M +export declare function foldMapWithIndex<F extends URIS3, I>( + F: FoldableWithIndex3<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M +export declare function foldMapWithIndex<F extends URIS3, I, E>( + F: FoldableWithIndex3C<F, I, E> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M +export declare function foldMapWithIndex<F extends URIS2, I>( + F: FoldableWithIndex2<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <E>(fa: Kind2<F, E, A>) => M +export declare function foldMapWithIndex<F extends URIS2, I, E>( + F: FoldableWithIndex2C<F, I, E> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind2<F, E, A>) => M +export declare function foldMapWithIndex<F extends URIS, I>( + F: FoldableWithIndex1<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind<F, A>) => M +export declare function foldMapWithIndex<F, I>( + F: FoldableWithIndex<F, I> +): <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: HKT<F, A>) => M +/** + * Returns a pipeable `reduceRightWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function reduceRightWithIndex<F extends URIS4, I>( + F: FoldableWithIndex4<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS3, I>( + F: FoldableWithIndex3<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS3, I, E>( + F: FoldableWithIndex3C<F, I, E> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS2, I>( + F: FoldableWithIndex2<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS2, I, E>( + F: FoldableWithIndex2C<F, I, E> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +export declare function reduceRightWithIndex<F extends URIS, I>( + F: FoldableWithIndex1<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind<F, A>) => B +export declare function reduceRightWithIndex<F, I>( + F: FoldableWithIndex<F, I> +): <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: HKT<F, A>) => B +/** + * Returns a pipeable `alt` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function alt<F extends URIS4>( + F: Alt4<F> +): <S, R, E, A>(that: LazyArg<Kind4<F, S, R, E, A>>) => (fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +export declare function alt<F extends URIS3>( + F: Alt3<F> +): <R, E, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function alt<F extends URIS3, E>( + F: Alt3C<F, E> +): <R, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +export declare function alt<F extends URIS2>( + F: Alt2<F> +): <E, A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function alt<F extends URIS2, E>( + F: Alt2C<F, E> +): <A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +export declare function alt<F extends URIS>( + F: Alt1<F> +): <A>(that: LazyArg<Kind<F, A>>) => (fa: Kind<F, A>) => Kind<F, A> +export declare function alt<F>(F: Alt<F>): <A>(that: LazyArg<HKT<F, A>>) => (fa: HKT<F, A>) => HKT<F, A> +/** + * Returns a pipeable `filter` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filter<F extends URIS4>( + F: Filterable4<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + <A>(predicate: Predicate<A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +} +export declare function filter<F extends URIS3>( + F: Filterable3<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filter<F extends URIS3, E>( + F: Filterable3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filter<F extends URIS2>( + F: Filterable2<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filter<F extends URIS2, E>( + F: Filterable2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filter<F extends URIS>( + F: Filterable1<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Kind<F, A> +} +export declare function filter<F>(F: Filterable<F>): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => HKT<F, A> +} +/** + * Returns a pipeable `filterMap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filterMap<F extends URIS4>( + F: Filterable4<F> +): <A, B>(f: (a: A) => Option<B>) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function filterMap<F extends URIS3>( + F: Filterable3<F> +): <A, B>(f: (a: A) => Option<B>) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMap<F extends URIS3, E>( + F: Filterable3C<F, E> +): <A, B>(f: (a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMap<F extends URIS2>( + F: Filterable2<F> +): <A, B>(f: (a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMap<F extends URIS2, E>( + F: Filterable2C<F, E> +): <A, B>(f: (a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMap<F extends URIS>( + F: Filterable1<F> +): <A, B>(f: (a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> +export declare function filterMap<F>(F: Filterable<F>): <A, B>(f: (a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `partition` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partition<F extends URIS4>( + F: Filterable4<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicate: Predicate<A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> +} +export declare function partition<F extends URIS3>( + F: Filterable3<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partition<F extends URIS3, E>( + F: Filterable3C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partition<F extends URIS2>( + F: Filterable2<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partition<F extends URIS2, E>( + F: Filterable2C<F, E> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partition<F extends URIS>( + F: Filterable1<F> +): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> +} +export declare function partition<F>(F: Filterable<F>): { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> +} +/** + * Returns a pipeable `partitionMap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partitionMap<F extends URIS4>( + F: Filterable4<F> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +export declare function partitionMap<F extends URIS3>( + F: Filterable3<F> +): <A, B, C>( + f: (a: A) => Either<B, C> +) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMap<F extends URIS3, E>( + F: Filterable3C<F, E> +): <A, B, C>(f: (a: A) => Either<B, C>) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMap<F extends URIS2>( + F: Filterable2<F> +): <A, B, C>(f: (a: A) => Either<B, C>) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMap<F extends URIS2, E>( + F: Filterable2C<F, E> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMap<F extends URIS>( + F: Filterable1<F> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +export declare function partitionMap<F>( + F: Filterable<F> +): <A, B, C>(f: (a: A) => Either<B, C>) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +/** + * Returns a pipeable `filterWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filterWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Kind4<F, S, R, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +} +export declare function filterWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filterWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +export declare function filterWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: PredicateWithIndex<I, A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filterWithIndex<F extends URIS2, E, I>( + F: FilterableWithIndex2C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +export declare function filterWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Kind<F, A> +} +export declare function filterWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicate: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => HKT<F, A> +} +/** + * Returns a pipeable `filterMapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function filterMapWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +export declare function filterMapWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMapWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): <A, B>(f: (i: I, a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +export declare function filterMapWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMapWithIndex<F extends URIS2, I, E>( + F: FilterableWithIndex2C<F, I, E> +): <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +export declare function filterMapWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> +export declare function filterMapWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): <A, B>(f: (i: I, a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> +/** + * Returns a pipeable `partitionWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partitionWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> +} +export declare function partitionWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partitionWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> +} +export declare function partitionWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): <E>( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partitionWithIndex<F extends URIS2, I, E>( + F: FilterableWithIndex2C<F, I, E> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): ( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> +} +export declare function partitionWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicate: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> +} +export declare function partitionWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): { + <A, B extends A>(refinement: RefinementWithIndex<I, A, B>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicate: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> +} +/** + * Returns a pipeable `partitionMapWithIndex` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function partitionMapWithIndex<F extends URIS4, I>( + F: FilterableWithIndex4<F, I> +): <A, B, C>( + f: (i: I, a: A) => Either<B, C> +) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +export declare function partitionMapWithIndex<F extends URIS3, I>( + F: FilterableWithIndex3<F, I> +): <A, B, C>( + f: (i: I, a: A) => Either<B, C> +) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMapWithIndex<F extends URIS3, I, E>( + F: FilterableWithIndex3C<F, I, E> +): <A, B, C>( + f: (i: I, a: A) => Either<B, C> +) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +export declare function partitionMapWithIndex<F extends URIS2, I>( + F: FilterableWithIndex2<F, I> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMapWithIndex<F extends URIS2, I, E>( + F: FilterableWithIndex2C<F, I, E> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +export declare function partitionMapWithIndex<F extends URIS, I>( + F: FilterableWithIndex1<F, I> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +export declare function partitionMapWithIndex<F, I>( + F: FilterableWithIndex<F, I> +): <A, B, C>(f: (i: I, a: A) => Either<B, C>) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +/** + * Returns a pipeable `promap` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function promap<F extends URIS4>( + F: Profunctor4<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => <S, R>(fbc: Kind4<F, S, R, E, A>) => Kind4<F, S, R, D, B> +export declare function promap<F extends URIS3>( + F: Profunctor3<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => <R>(fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +export declare function promap<F extends URIS3, E>( + F: Profunctor3C<F, E> +): <A, D, B>(f: (d: D) => E, g: (a: A) => B) => <R>(fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +export declare function promap<F extends URIS2>( + F: Profunctor2<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +export declare function promap<F extends URIS2, E>( + F: Profunctor2C<F, E> +): <A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +export declare function promap<F>( + F: Profunctor<F> +): <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: HKT2<F, E, A>) => HKT2<F, D, B> +/** + * Returns a pipeable `compose` + * + * @category pipeable helper + * @since 2.13.0 + */ +export declare function compose<F extends URIS4>( + F: Semigroupoid4<F> +): <S, R, E, A>(ea: Kind4<F, S, R, E, A>) => <B>(ab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, E, B> +export declare function compose<F extends URIS3>( + F: Semigroupoid3<F> +): <R, E, A>(ea: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +export declare function compose<F extends URIS3, E>( + F: Semigroupoid3C<F, E> +): <R, A>(ea: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +export declare function compose<F extends URIS2>( + F: Semigroupoid2<F> +): <E, A>(ea: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +export declare function compose<F extends URIS2, E>( + F: Semigroupoid2C<F, E> +): <A>(ea: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +export declare function compose<F>( + F: Semigroupoid<F> +): <E, A>(ea: HKT2<F, E, A>) => <B>(ab: HKT2<F, A, B>) => HKT2<F, E, B> +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor<F> { + readonly map: <A, B>(f: (a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor1<F extends URIS> { + readonly map: <A, B>(f: (a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor2<F extends URIS2> { + readonly map: <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor2C<F extends URIS2, E> { + readonly map: <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor3<F extends URIS3> { + readonly map: <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFunctor3C<F extends URIS3, E> { + readonly map: <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctor4<F extends URIS4> { + readonly map: <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant<F> { + readonly contramap: <A, B>(f: (b: B) => A) => (fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant1<F extends URIS> { + readonly contramap: <A, B>(f: (b: B) => A) => (fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant2<F extends URIS2> { + readonly contramap: <A, B>(f: (b: B) => A) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant2C<F extends URIS2, E> { + readonly contramap: <A, B>(f: (b: B) => A) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant3<F extends URIS3> { + readonly contramap: <A, B>(f: (b: B) => A) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableContravariant3C<F extends URIS3, E> { + readonly contramap: <A, B>(f: (b: B) => A) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableContravariant4<F extends URIS4> { + readonly contramap: <A, B>(f: (b: B) => A) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex<F, I> extends PipeableFunctor<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => (fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex1<F extends URIS, I> extends PipeableFunctor1<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => (fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex2<F extends URIS2, I> extends PipeableFunctor2<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex2C<F extends URIS2, I, E> extends PipeableFunctor2C<F, E> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex3<F extends URIS3, I> extends PipeableFunctor3<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex3C<F extends URIS3, I, E> extends PipeableFunctor3C<F, E> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFunctorWithIndex4<F extends URIS4, I> extends PipeableFunctor4<F> { + readonly mapWithIndex: <A, B>(f: (i: I, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply<F> extends PipeableFunctor<F> { + readonly ap: <A>(fa: HKT<F, A>) => <B>(fab: HKT<F, (a: A) => B>) => HKT<F, B> + readonly apFirst: <B>(fb: HKT<F, B>) => <A>(fa: HKT<F, A>) => HKT<F, A> + readonly apSecond: <B>(fb: HKT<F, B>) => <A>(fa: HKT<F, A>) => HKT<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply1<F extends URIS> extends PipeableFunctor1<F> { + readonly ap: <A>(fa: Kind<F, A>) => <B>(fab: Kind<F, (a: A) => B>) => Kind<F, B> + readonly apFirst: <B>(fb: Kind<F, B>) => <A>(fa: Kind<F, A>) => Kind<F, A> + readonly apSecond: <B>(fb: Kind<F, B>) => <A>(fa: Kind<F, A>) => Kind<F, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply2<F extends URIS2> extends PipeableFunctor2<F> { + readonly ap: <E, A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> + readonly apFirst: <E, B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + readonly apSecond: <E, B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply2C<F extends URIS2, E> extends PipeableFunctor2C<F, E> { + readonly ap: <A>(fa: Kind2<F, E, A>) => <B>(fab: Kind2<F, E, (a: A) => B>) => Kind2<F, E, B> + readonly apFirst: <B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + readonly apSecond: <B>(fb: Kind2<F, E, B>) => <A>(fa: Kind2<F, E, A>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply3<F extends URIS3> extends PipeableFunctor3<F> { + readonly ap: <R, E, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> + readonly apFirst: <R, E, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly apSecond: <R, E, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableApply3C<F extends URIS3, E> extends PipeableFunctor3C<F, E> { + readonly ap: <R, A>(fa: Kind3<F, R, E, A>) => <B>(fab: Kind3<F, R, E, (a: A) => B>) => Kind3<F, R, E, B> + readonly apFirst: <R, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly apSecond: <R, B>(fb: Kind3<F, R, E, B>) => <A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableApply4<F extends URIS4> extends PipeableFunctor4<F> { + readonly ap: <S, R, E, A>( + fa: Kind4<F, S, R, E, A> + ) => <B>(fab: Kind4<F, S, R, E, (a: A) => B>) => Kind4<F, S, R, E, B> + readonly apFirst: <S, R, E, B>(fb: Kind4<F, S, R, E, B>) => <A>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly apSecond: <S, R, E, B>(fb: Kind4<F, S, R, E, B>) => <A>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain<F> extends PipeableApply<F> { + readonly chain: <A, B>(f: (a: A) => HKT<F, B>) => (ma: HKT<F, A>) => HKT<F, B> + readonly chainFirst: <A, B>(f: (a: A) => HKT<F, B>) => (ma: HKT<F, A>) => HKT<F, A> + readonly flatten: <A>(mma: HKT<F, HKT<F, A>>) => HKT<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain1<F extends URIS> extends PipeableApply1<F> { + readonly chain: <A, B>(f: (a: A) => Kind<F, B>) => (ma: Kind<F, A>) => Kind<F, B> + readonly chainFirst: <A, B>(f: (a: A) => Kind<F, B>) => (ma: Kind<F, A>) => Kind<F, A> + readonly flatten: <A>(mma: Kind<F, Kind<F, A>>) => Kind<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain2<F extends URIS2> extends PipeableApply2<F> { + readonly chain: <E, A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> + readonly chainFirst: <E, A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, A> + readonly flatten: <E, A>(mma: Kind2<F, E, Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain2C<F extends URIS2, E> extends PipeableApply2C<F, E> { + readonly chain: <A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, B> + readonly chainFirst: <A, B>(f: (a: A) => Kind2<F, E, B>) => (ma: Kind2<F, E, A>) => Kind2<F, E, A> + readonly flatten: <A>(mma: Kind2<F, E, Kind2<F, E, A>>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain3<F extends URIS3> extends PipeableApply3<F> { + readonly chain: <R, E, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly chainFirst: <R, E, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly flatten: <R, E, A>(mma: Kind3<F, R, E, Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableChain3C<F extends URIS3, E> extends PipeableApply3C<F, E> { + readonly chain: <R, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly chainFirst: <R, A, B>(f: (a: A) => Kind3<F, R, E, B>) => (ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly flatten: <R, A>(mma: Kind3<F, R, E, Kind3<F, R, E, A>>) => Kind3<F, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableChain4<F extends URIS4> extends PipeableApply4<F> { + readonly chain: <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> + ) => (ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + readonly chainFirst: <S, R, E, A, B>( + f: (a: A) => Kind4<F, S, R, E, B> + ) => (ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly flatten: <S, R, E, A>(mma: Kind4<F, S, R, E, Kind4<F, S, R, E, A>>) => Kind4<F, S, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend<F> extends PipeableFunctor<F> { + readonly extend: <A, B>(f: (wa: HKT<F, A>) => B) => (wa: HKT<F, A>) => HKT<F, B> + readonly duplicate: <A>(wa: HKT<F, A>) => HKT<F, HKT<F, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend1<F extends URIS> extends PipeableFunctor1<F> { + readonly extend: <A, B>(f: (wa: Kind<F, A>) => B) => (wa: Kind<F, A>) => Kind<F, B> + readonly duplicate: <A>(wa: Kind<F, A>) => Kind<F, Kind<F, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend2<F extends URIS2> extends PipeableFunctor2<F> { + readonly extend: <E, A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly duplicate: <E, A>(wa: Kind2<F, E, A>) => Kind2<F, E, Kind2<F, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend2C<F extends URIS2, E> extends PipeableFunctor2C<F, E> { + readonly extend: <A, B>(f: (wa: Kind2<F, E, A>) => B) => (wa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly duplicate: <A>(wa: Kind2<F, E, A>) => Kind2<F, E, Kind2<F, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend3<F extends URIS3> extends PipeableFunctor3<F> { + readonly extend: <R, E, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly duplicate: <R, E, A>(wa: Kind3<F, R, E, A>) => Kind3<F, R, E, Kind3<F, R, E, A>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableExtend3C<F extends URIS3, E> extends PipeableFunctor3C<F, E> { + readonly extend: <R, A, B>(f: (wa: Kind3<F, R, E, A>) => B) => (wa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + readonly duplicate: <R, A>(wa: Kind3<F, R, E, A>) => Kind3<F, R, E, Kind3<F, R, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableExtend4<F extends URIS4> extends PipeableFunctor4<F> { + readonly extend: <S, R, E, A, B>( + f: (wa: Kind4<F, S, R, E, A>) => B + ) => (wa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + readonly duplicate: <S, R, E, A>(wa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, Kind4<F, S, R, E, A>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor<F> { + readonly bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: HKT2<F, E, A>) => HKT2<F, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: HKT2<F, E, A>) => HKT2<F, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor2<F extends URIS2> { + readonly bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (fa: Kind2<F, E, A>) => Kind2<F, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <A>(fa: Kind2<F, E, A>) => Kind2<F, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor3<F extends URIS3> { + readonly bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <R, A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableBifunctor3C<F extends URIS3, E> { + readonly bimap: <G, A, B>(f: (e: E) => G, g: (a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, B> + readonly mapLeft: <G>(f: (e: E) => G) => <R, A>(fa: Kind3<F, R, E, A>) => Kind3<F, R, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableBifunctor4<F extends URIS4> { + readonly bimap: <E, G, A, B>( + f: (e: E) => G, + g: (a: A) => B + ) => <S, R>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, B> + readonly mapLeft: <E, G>(f: (e: E) => G) => <S, R, A>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, G, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable<F> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: HKT<F, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: HKT<F, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: HKT<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable1<F extends URIS> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind<F, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind<F, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable2<F extends URIS2> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <E>(fa: Kind2<F, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable2C<F extends URIS2, E> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fa: Kind2<F, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable3<F extends URIS3> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFoldable3C<F extends URIS3, E> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldable4<F extends URIS4> { + readonly reduce: <A, B>(b: B, f: (b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B + readonly foldMap: <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M + readonly reduceRight: <A, B>(b: B, f: (a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex<F, I> extends PipeableFoldable<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: HKT<F, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: HKT<F, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: HKT<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex1<F extends URIS, I> extends PipeableFoldable1<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind<F, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind<F, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind<F, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex2<F extends URIS2, I> extends PipeableFoldable2<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <E>(fa: Kind2<F, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <E>(fa: Kind2<F, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <E>(fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex2C<F extends URIS2, I, E> extends PipeableFoldable2C<F, E> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => (fa: Kind2<F, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => (fa: Kind2<F, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => (fa: Kind2<F, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex3<F extends URIS3, I> extends PipeableFoldable3<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R, E>(fa: Kind3<F, R, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R, E>(fa: Kind3<F, R, E, A>) => B +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex3C<F extends URIS3, I, E> extends PipeableFoldable3C<F, E> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <R>(fa: Kind3<F, R, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <R>(fa: Kind3<F, R, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <R>(fa: Kind3<F, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFoldableWithIndex4<F extends URIS4, I> extends PipeableFoldable4<F> { + readonly reduceWithIndex: <A, B>(b: B, f: (i: I, b: B, a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B + readonly foldMapWithIndex: <M>(M: Monoid<M>) => <A>(f: (i: I, a: A) => M) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => M + readonly reduceRightWithIndex: <A, B>(b: B, f: (i: I, a: A, b: B) => B) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => B +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt<F> { + readonly alt: <A>(that: LazyArg<HKT<F, A>>) => (fa: HKT<F, A>) => HKT<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt1<F extends URIS> { + readonly alt: <A>(that: LazyArg<Kind<F, A>>) => (fa: Kind<F, A>) => Kind<F, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt2<F extends URIS2> { + readonly alt: <E, A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt2C<F extends URIS2, E> { + readonly alt: <A>(that: LazyArg<Kind2<F, E, A>>) => (fa: Kind2<F, E, A>) => Kind2<F, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt3<F extends URIS3> { + readonly alt: <R, E, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableAlt3C<F extends URIS3, E> { + readonly alt: <R, A>(that: LazyArg<Kind3<F, R, E, A>>) => (fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableAlt4<F extends URIS4> { + readonly alt: <S, R, E, A>(that: LazyArg<Kind4<F, S, R, E, A>>) => (fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable<F> { + readonly compact: <A>(fa: HKT<F, Option<A>>) => HKT<F, A> + readonly separate: <A, B>(fa: HKT<F, Either<A, B>>) => Separated<HKT<F, A>, HKT<F, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable1<F extends URIS> { + readonly compact: <A>(fa: Kind<F, Option<A>>) => Kind<F, A> + readonly separate: <A, B>(fa: Kind<F, Either<A, B>>) => Separated<Kind<F, A>, Kind<F, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable2<F extends URIS2> { + readonly compact: <E, A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <E, A, B>(fa: Kind2<F, E, Either<A, B>>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable2C<F extends URIS2, E> { + readonly compact: <A>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, A> + readonly separate: <A, B>(fa: Kind2<F, E, Either<A, B>>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable3<F extends URIS3> { + readonly compact: <R, E, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, E, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableCompactable3C<F extends URIS3, E> { + readonly compact: <R, A>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, A> + readonly separate: <R, A, B>(fa: Kind3<F, R, E, Either<A, B>>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableCompactable4<F extends URIS4> { + readonly compact: <S, R, E, A>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, A> + readonly separate: <S, R, E, A, B>( + fa: Kind4<F, S, R, E, Either<A, B>> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable<F> extends PipeableCompactable<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => HKT<F, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicate: Predicate<A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> + } + readonly partitionMap: <A, B, C>(f: (a: A) => Either<B, C>) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable1<F extends URIS> extends PipeableCompactable1<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Kind<F, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicate: Predicate<A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> + } + readonly partitionMap: <A, B, C>(f: (a: A) => Either<B, C>) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable2<F extends URIS2> extends PipeableCompactable2<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable2C<F extends URIS2, E> extends PipeableCompactable2C<F, E> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicate: Predicate<A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable3<F extends URIS3> extends PipeableCompactable3<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFilterable3C<F extends URIS3, E> extends PipeableCompactable3C<F, E> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicate: Predicate<A>): <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterable4<F extends URIS4> extends PipeableCompactable4<F> { + readonly filter: { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, B> + <A>(predicate: Predicate<A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + } + readonly filterMap: <A, B>(f: (a: A) => Option<B>) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly partition: { + <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicate: Predicate<A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> + } + readonly partitionMap: <A, B, C>( + f: (a: A) => Either<B, C> + ) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex<F, I> extends PipeableFilterable<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): (fa: HKT<F, A>) => HKT<F, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => HKT<F, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => (fa: HKT<F, A>) => HKT<F, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): ( + fa: HKT<F, A> + ) => Separated<HKT<F, A>, HKT<F, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: HKT<F, A>) => Separated<HKT<F, A>, HKT<F, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => (fa: HKT<F, A>) => Separated<HKT<F, B>, HKT<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex1<F extends URIS, I> extends PipeableFilterable1<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): (fa: Kind<F, A>) => Kind<F, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Kind<F, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind<F, A>) => Kind<F, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): ( + fa: Kind<F, A> + ) => Separated<Kind<F, A>, Kind<F, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind<F, A>) => Separated<Kind<F, A>, Kind<F, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => (fa: Kind<F, A>) => Separated<Kind<F, B>, Kind<F, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex2<F extends URIS2, I> extends PipeableFilterable2<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <E>(fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => <E>(fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <E>( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <E>( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <E>(fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex2C<F extends URIS2, I, E> extends PipeableFilterable2C<F, E> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): (fa: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Kind2<F, E, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => (fa: Kind2<F, E, A>) => Kind2<F, E, B> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): ( + fa: Kind2<F, E, A> + ) => Separated<Kind2<F, E, A>, Kind2<F, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, A>, Kind2<F, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => (fa: Kind2<F, E, A>) => Separated<Kind2<F, E, B>, Kind2<F, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex3<F extends URIS3, I> extends PipeableFilterable3<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Kind3<F, R, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMapWithIndex: <A, B>( + f: (i: I, a: A) => Option<B> + ) => <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R, E>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <R, E>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex3C<F extends URIS3, I, E> extends PipeableFilterable3C<F, E> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R, E>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } + readonly filterMapWithIndex: <A, B>(f: (i: I, a: A) => Option<B>) => <R>(fa: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <R>( + fa: Kind3<F, R, E, A> + ) => Separated<Kind3<F, R, E, A>, Kind3<F, R, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <R>(fa: Kind3<F, R, E, A>) => Separated<Kind3<F, R, E, B>, Kind3<F, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableFilterableWithIndex4<F extends URIS4, I> extends PipeableFilterable4<F> { + readonly filterWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Kind4<F, S, R, E, B> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + } + readonly filterMapWithIndex: <A, B>( + f: (i: I, a: A) => Option<B> + ) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + readonly partitionWithIndex: { + <A, B extends A>(refinementWithIndex: RefinementWithIndex<I, A, B>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, B>> + <A>(predicateWithIndex: PredicateWithIndex<I, A>): <S, R, E>( + fa: Kind4<F, S, R, E, A> + ) => Separated<Kind4<F, S, R, E, A>, Kind4<F, S, R, E, A>> + } + readonly partitionMapWithIndex: <A, B, C>( + f: (i: I, a: A) => Either<B, C> + ) => <S, R, E>(fa: Kind4<F, S, R, E, A>) => Separated<Kind4<F, S, R, E, B>, Kind4<F, S, R, E, C>> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor<F> { + readonly promap: <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: HKT2<F, E, A>) => HKT2<F, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor2<F extends URIS2> extends PipeableFunctor2<F> { + readonly promap: <E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor2C<F extends URIS2, E> extends PipeableFunctor2C<F, E> { + readonly promap: <A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind2<F, E, A>) => Kind2<F, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor3<F extends URIS3> extends PipeableFunctor3<F> { + readonly promap: <R, E, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableProfunctor3C<F extends URIS3, E> extends PipeableFunctor3C<F, E> { + readonly promap: <R, A, D, B>(f: (d: D) => E, g: (a: A) => B) => (fbc: Kind3<F, R, E, A>) => Kind3<F, R, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableProfunctor4<F extends URIS4> extends PipeableFunctor4<F> { + readonly promap: <S, R, E, A, D, B>( + f: (d: D) => E, + g: (a: A) => B + ) => (fbc: Kind4<F, S, R, E, A>) => Kind4<F, S, R, D, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid<F> { + readonly compose: <E, A>(la: HKT2<F, E, A>) => <B>(ab: HKT2<F, A, B>) => HKT2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid2<F extends URIS2> { + readonly compose: <E, A>(la: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid2C<F extends URIS2, E> { + readonly compose: <A>(la: Kind2<F, E, A>) => <B>(ab: Kind2<F, A, B>) => Kind2<F, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid3<F extends URIS3> { + readonly compose: <R, E, A>(la: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableSemigroupoid3C<F extends URIS3, E> { + readonly compose: <R, A>(la: Kind3<F, R, E, A>) => <B>(ab: Kind3<F, R, A, B>) => Kind3<F, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableSemigroupoid4<F extends URIS4> { + readonly compose: <S, R, E, A>(la: Kind4<F, S, R, E, A>) => <B>(ab: Kind4<F, S, R, A, B>) => Kind4<F, S, R, E, B> +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow<F> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => HKT<F, A> + readonly fromEither: <E, A>(ma: Either<E, A>) => HKT<F, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => HKT<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => HKT<F, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: HKT<F, A>) => HKT<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: HKT<F, A>) => HKT<F, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow1<F extends URIS> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => Kind<F, A> + readonly fromEither: <E, A>(ma: Either<E, A>) => Kind<F, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind<F, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind<F, A>) => Kind<F, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind<F, A>) => Kind<F, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow2<F extends URIS2> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <A>(ma: Option<A>) => Kind2<F, E, A> + readonly fromEither: <E, A>(ma: Either<E, A>) => Kind2<F, E, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow2C<F extends URIS2, E> { + readonly fromOption: (onNone: LazyArg<E>) => <A>(ma: Option<A>) => Kind2<F, E, A> + readonly fromEither: <A>(ma: Either<E, A>) => Kind2<F, E, A> + readonly fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (a: A) => Kind2<F, E, A> + } + readonly filterOrElse: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): (ma: Kind2<F, E, A>) => Kind2<F, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow3<F extends URIS3> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <R, A>(ma: Option<A>) => Kind3<F, R, E, A> + readonly fromEither: <R, E, A>(ma: Either<E, A>) => Kind3<F, R, E, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <U>(a: A) => Kind3<F, U, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: Kind3<F, R, E, A> + ) => Kind3<F, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } +} +/** + * @since 2.2.0 + * @deprecated + */ +export interface PipeableMonadThrow3C<F extends URIS3, E> { + readonly fromOption: (onNone: LazyArg<E>) => <R, A>(ma: Option<A>) => Kind3<F, R, E, A> + readonly fromEither: <R, A>(ma: Either<E, A>) => Kind3<F, R, E, A> + readonly fromPredicate: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <U>(a: A) => Kind3<F, U, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(a: A) => Kind3<F, R, E, A> + } + readonly filterOrElse: { + <A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <R>( + ma: Kind3<F, R, E, A> + ) => Kind3<F, R, E, B> + <A>(predicate: Predicate<A>, onFalse: (a: A) => E): <R>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export interface PipeableMonadThrow4<F extends URIS4> { + readonly fromOption: <E>(onNone: LazyArg<E>) => <S, R, A>(ma: Option<A>) => Kind4<F, S, R, E, A> + readonly fromEither: <S, R, E, A>(ma: Either<E, A>) => Kind4<F, S, R, E, A> + readonly fromPredicate: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(a: A) => Kind4<F, S, R, E, A> + } + readonly filterOrElse: { + <E, A, B extends A>(refinement: Refinement<A, B>, onFalse: (a: A) => E): <S, R>( + ma: Kind4<F, S, R, E, A> + ) => Kind4<F, S, R, E, B> + <E, A>(predicate: Predicate<A>, onFalse: (a: A) => E): <S, R>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, A> + } +} +/** + * @category zone of death + * @since 2.0.0 + * @deprecated + */ +export declare function pipeable<F extends URIS4, I>( + I: { + readonly URI: F + } & I +): (I extends Chain4<F> + ? PipeableChain4<F> + : I extends Apply4<F> + ? PipeableApply4<F> + : I extends Functor4<F> + ? PipeableFunctor4<F> + : {}) & + (I extends Contravariant4<F> ? PipeableContravariant4<F> : {}) & + (I extends FunctorWithIndex4<F, infer Ix> ? PipeableFunctorWithIndex4<F, Ix> : {}) & + (I extends Bifunctor4<F> ? PipeableBifunctor4<F> : {}) & + (I extends Extend4<F> ? PipeableExtend4<F> : {}) & + (I extends FoldableWithIndex4<F, infer Ix> + ? PipeableFoldableWithIndex4<F, Ix> + : I extends Foldable4<F> + ? PipeableFoldable4<F> + : {}) & + (I extends Alt4<F> ? PipeableAlt4<F> : {}) & + (I extends FilterableWithIndex4<F, infer Ix> + ? PipeableFilterableWithIndex4<F, Ix> + : I extends Filterable4<F> + ? PipeableFilterable4<F> + : I extends Compactable4<F> + ? PipeableCompactable4<F> + : {}) & + (I extends Profunctor4<F> ? PipeableProfunctor4<F> : {}) & + (I extends Semigroupoid4<F> ? PipeableSemigroupoid4<F> : {}) & + (I extends MonadThrow4<F> ? PipeableMonadThrow4<F> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS3, I>( + I: { + readonly URI: F + } & I +): (I extends Chain3<F> + ? PipeableChain3<F> + : I extends Apply3<F> + ? PipeableApply3<F> + : I extends Functor3<F> + ? PipeableFunctor3<F> + : {}) & + (I extends Contravariant3<F> ? PipeableContravariant3<F> : {}) & + (I extends FunctorWithIndex3<F, infer Ix> ? PipeableFunctorWithIndex3<F, Ix> : {}) & + (I extends Bifunctor3<F> ? PipeableBifunctor3<F> : {}) & + (I extends Extend3<F> ? PipeableExtend3<F> : {}) & + (I extends FoldableWithIndex3<F, infer Ix> + ? PipeableFoldableWithIndex3<F, Ix> + : I extends Foldable3<F> + ? PipeableFoldable3<F> + : {}) & + (I extends Alt3<F> ? PipeableAlt3<F> : {}) & + (I extends FilterableWithIndex3<F, infer Ix> + ? PipeableFilterableWithIndex3<F, Ix> + : I extends Filterable3<F> + ? PipeableFilterable3<F> + : I extends Compactable3<F> + ? PipeableCompactable3<F> + : {}) & + (I extends Profunctor3<F> ? PipeableProfunctor3<F> : {}) & + (I extends Semigroupoid3<F> ? PipeableSemigroupoid3<F> : {}) & + (I extends MonadThrow3<F> ? PipeableMonadThrow3<F> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS3, I, E>( + I: { + readonly URI: F + } & I +): (I extends Chain3C<F, E> + ? PipeableChain3C<F, E> + : I extends Apply3C<F, E> + ? PipeableApply3C<F, E> + : I extends Functor3C<F, E> + ? PipeableFunctor3C<F, E> + : {}) & + (I extends Contravariant3C<F, E> ? PipeableContravariant3C<F, E> : {}) & + (I extends FunctorWithIndex3C<F, infer Ix, E> ? PipeableFunctorWithIndex3C<F, Ix, E> : {}) & + (I extends Bifunctor3C<F, E> ? PipeableBifunctor3C<F, E> : {}) & + (I extends Extend3C<F, E> ? PipeableExtend3C<F, E> : {}) & + (I extends FoldableWithIndex3C<F, infer Ix, E> + ? PipeableFoldableWithIndex3C<F, Ix, E> + : I extends Foldable3C<F, E> + ? PipeableFoldable3C<F, E> + : {}) & + (I extends Alt3C<F, E> ? PipeableAlt3C<F, E> : {}) & + (I extends FilterableWithIndex3C<F, infer Ix, E> + ? PipeableFilterableWithIndex3C<F, Ix, E> + : I extends Filterable3C<F, E> + ? PipeableFilterable3C<F, E> + : I extends Compactable3C<F, E> + ? PipeableCompactable3C<F, E> + : {}) & + (I extends Profunctor3C<F, E> ? PipeableProfunctor3C<F, E> : {}) & + (I extends Semigroupoid3C<F, E> ? PipeableSemigroupoid3C<F, E> : {}) & + (I extends MonadThrow3C<F, E> ? PipeableMonadThrow3C<F, E> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS2, I, E>( + I: { + readonly URI: F + readonly _E: E + } & I +): (I extends Chain2C<F, E> + ? PipeableChain2C<F, E> + : I extends Apply2C<F, E> + ? PipeableApply2C<F, E> + : I extends Functor2C<F, E> + ? PipeableFunctor2C<F, E> + : {}) & + (I extends Contravariant2C<F, E> ? PipeableContravariant2C<F, E> : {}) & + (I extends FunctorWithIndex2C<F, infer Ix, E> ? PipeableFunctorWithIndex2C<F, Ix, E> : {}) & + (I extends Extend2C<F, E> ? PipeableExtend2C<F, E> : {}) & + (I extends FoldableWithIndex2C<F, infer Ix, E> + ? PipeableFoldableWithIndex2C<F, Ix, E> + : I extends Foldable2C<F, E> + ? PipeableFoldable2C<F, E> + : {}) & + (I extends Alt2C<F, E> ? PipeableAlt2C<F, E> : {}) & + (I extends FilterableWithIndex2C<F, infer Ix, E> + ? PipeableFilterableWithIndex2C<F, Ix, E> + : I extends Filterable2C<F, E> + ? PipeableFilterable2C<F, E> + : I extends Compactable2C<F, E> + ? PipeableCompactable2C<F, E> + : {}) & + (I extends Profunctor2C<F, E> ? PipeableProfunctor2C<F, E> : {}) & + (I extends Semigroupoid2C<F, E> ? PipeableSemigroupoid2C<F, E> : {}) & + (I extends MonadThrow2C<F, E> ? PipeableMonadThrow2C<F, E> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS2, I>( + I: { + readonly URI: F + } & I +): (I extends Chain2<F> + ? PipeableChain2<F> + : I extends Apply2<F> + ? PipeableApply2<F> + : I extends Functor2<F> + ? PipeableFunctor2<F> + : {}) & + (I extends Contravariant2<F> ? PipeableContravariant2<F> : {}) & + (I extends FunctorWithIndex2<F, infer Ix> ? PipeableFunctorWithIndex2<F, Ix> : {}) & + (I extends Bifunctor2<F> ? PipeableBifunctor2<F> : {}) & + (I extends Extend2<F> ? PipeableExtend2<F> : {}) & + (I extends FoldableWithIndex2<F, infer Ix> + ? PipeableFoldableWithIndex2<F, Ix> + : I extends Foldable2<F> + ? PipeableFoldable2<F> + : {}) & + (I extends Alt2<F> ? PipeableAlt2<F> : {}) & + (I extends FilterableWithIndex2<F, infer Ix> + ? PipeableFilterableWithIndex2<F, Ix> + : I extends Filterable2<F> + ? PipeableFilterable2<F> + : I extends Compactable2<F> + ? PipeableCompactable2<F> + : {}) & + (I extends Profunctor2<F> ? PipeableProfunctor2<F> : {}) & + (I extends Semigroupoid2<F> ? PipeableSemigroupoid2<F> : {}) & + (I extends MonadThrow2<F> ? PipeableMonadThrow2<F> : {}) +/** @deprecated */ +export declare function pipeable<F extends URIS, I>( + I: { + readonly URI: F + } & I +): (I extends Chain1<F> + ? PipeableChain1<F> + : I extends Apply1<F> + ? PipeableApply1<F> + : I extends Functor1<F> + ? PipeableFunctor1<F> + : {}) & + (I extends Contravariant1<F> ? PipeableContravariant1<F> : {}) & + (I extends FunctorWithIndex1<F, infer Ix> ? PipeableFunctorWithIndex1<F, Ix> : {}) & + (I extends Extend1<F> ? PipeableExtend1<F> : {}) & + (I extends FoldableWithIndex1<F, infer Ix> + ? PipeableFoldableWithIndex1<F, Ix> + : I extends Foldable1<F> + ? PipeableFoldable1<F> + : {}) & + (I extends Alt1<F> ? PipeableAlt1<F> : {}) & + (I extends FilterableWithIndex1<F, infer Ix> + ? PipeableFilterableWithIndex1<F, Ix> + : I extends Filterable1<F> + ? PipeableFilterable1<F> + : I extends Compactable1<F> + ? PipeableCompactable1<F> + : {}) & + (I extends MonadThrow1<F> ? PipeableMonadThrow1<F> : {}) +/** @deprecated */ +export declare function pipeable<F, I>( + I: { + readonly URI: F + } & I +): (I extends Chain<F> + ? PipeableChain<F> + : I extends Apply<F> + ? PipeableApply<F> + : I extends Functor<F> + ? PipeableFunctor<F> + : {}) & + (I extends Contravariant<F> ? PipeableContravariant<F> : {}) & + (I extends FunctorWithIndex<F, infer Ix> ? PipeableFunctorWithIndex<F, Ix> : {}) & + (I extends Bifunctor<F> ? PipeableBifunctor<F> : {}) & + (I extends Extend<F> ? PipeableExtend<F> : {}) & + (I extends FoldableWithIndex<F, infer Ix> + ? PipeableFoldableWithIndex<F, Ix> + : I extends Foldable<F> + ? PipeableFoldable<F> + : {}) & + (I extends Alt<F> ? PipeableAlt<F> : {}) & + (I extends FilterableWithIndex<F, infer Ix> + ? PipeableFilterableWithIndex<F, Ix> + : I extends Filterable<F> + ? PipeableFilterable<F> + : I extends Compactable<F> + ? PipeableCompactable<F> + : {}) & + (I extends Profunctor<F> ? PipeableProfunctor<F> : {}) & + (I extends Semigroupoid<F> ? PipeableSemigroupoid<F> : {}) & + (I extends MonadThrow<F> ? PipeableMonadThrow<F> : {}) +/** + * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#pipe) from `function` module instead. + * + * @since 2.0.0 + * @deprecated + */ +export declare const pipe: typeof pipeFromFunctionModule diff --git a/node_modules/fp-ts/lib/pipeable.js b/node_modules/fp-ts/lib/pipeable.js new file mode 100644 index 0000000..e58b0ca --- /dev/null +++ b/node_modules/fp-ts/lib/pipeable.js @@ -0,0 +1,227 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pipe = void 0; +exports.map = map; +exports.contramap = contramap; +exports.mapWithIndex = mapWithIndex; +exports.ap = ap; +exports.chain = chain; +exports.bimap = bimap; +exports.mapLeft = mapLeft; +exports.extend = extend; +exports.reduce = reduce; +exports.foldMap = foldMap; +exports.reduceRight = reduceRight; +exports.reduceWithIndex = reduceWithIndex; +exports.foldMapWithIndex = foldMapWithIndex; +exports.reduceRightWithIndex = reduceRightWithIndex; +exports.alt = alt; +exports.filter = filter; +exports.filterMap = filterMap; +exports.partition = partition; +exports.partitionMap = partitionMap; +exports.filterWithIndex = filterWithIndex; +exports.filterMapWithIndex = filterMapWithIndex; +exports.partitionWithIndex = partitionWithIndex; +exports.partitionMapWithIndex = partitionMapWithIndex; +exports.promap = promap; +exports.compose = compose; +exports.pipeable = pipeable; +var Apply_1 = require("./Apply"); +var Chain_1 = require("./Chain"); +var function_1 = require("./function"); +function map(F) { + return function (f) { return function (fa) { return F.map(fa, f); }; }; +} +function contramap(F) { + return function (f) { return function (fa) { return F.contramap(fa, f); }; }; +} +function mapWithIndex(F) { + return function (f) { return function (fa) { return F.mapWithIndex(fa, f); }; }; +} +function ap(F) { + return function (fa) { return function (fab) { return F.ap(fab, fa); }; }; +} +function chain(F) { + return function (f) { return function (fa) { return F.chain(fa, f); }; }; +} +function bimap(F) { + return function (f, g) { return function (fea) { return F.bimap(fea, f, g); }; }; +} +function mapLeft(F) { + return function (f) { return function (fea) { return F.mapLeft(fea, f); }; }; +} +function extend(F) { + return function (f) { return function (wa) { return F.extend(wa, f); }; }; +} +function reduce(F) { + return function (b, f) { return function (fa) { return F.reduce(fa, b, f); }; }; +} +function foldMap(F) { + return function (M) { + var foldMapM = F.foldMap(M); + return function (f) { return function (fa) { return foldMapM(fa, f); }; }; + }; +} +function reduceRight(F) { + return function (b, f) { return function (fa) { return F.reduceRight(fa, b, f); }; }; +} +function reduceWithIndex(F) { + return function (b, f) { return function (fa) { return F.reduceWithIndex(fa, b, f); }; }; +} +function foldMapWithIndex(F) { + return function (M) { + var foldMapWithIndexM = F.foldMapWithIndex(M); + return function (f) { return function (fa) { return foldMapWithIndexM(fa, f); }; }; + }; +} +function reduceRightWithIndex(F) { + return function (b, f) { return function (fa) { return F.reduceRightWithIndex(fa, b, f); }; }; +} +function alt(F) { + return function (that) { return function (fa) { return F.alt(fa, that); }; }; +} +function filter(F) { + return function (predicate) { return function (fa) { return F.filter(fa, predicate); }; }; +} +function filterMap(F) { + return function (f) { return function (fa) { return F.filterMap(fa, f); }; }; +} +function partition(F) { + return function (f) { return function (fa) { return F.partition(fa, f); }; }; +} +function partitionMap(F) { + return function (f) { return function (fa) { return F.partitionMap(fa, f); }; }; +} +function filterWithIndex(F) { + return function (predicate) { return function (fa) { return F.filterWithIndex(fa, predicate); }; }; +} +function filterMapWithIndex(F) { + return function (f) { return function (fa) { return F.filterMapWithIndex(fa, f); }; }; +} +function partitionWithIndex(F) { + return function (f) { return function (fa) { return F.partitionWithIndex(fa, f); }; }; +} +function partitionMapWithIndex(F) { + return function (f) { return function (fa) { return F.partitionMapWithIndex(fa, f); }; }; +} +function promap(F) { + return function (f, g) { return function (fbc) { return F.promap(fbc, f, g); }; }; +} +function compose(F) { + return function (ea) { return function (ab) { return F.compose(ab, ea); }; }; +} +var isFunctor = function (I) { return typeof I.map === 'function'; }; +var isContravariant = function (I) { return typeof I.contramap === 'function'; }; +var isFunctorWithIndex = function (I) { return typeof I.mapWithIndex === 'function'; }; +var isApply = function (I) { return typeof I.ap === 'function'; }; +var isChain = function (I) { return typeof I.chain === 'function'; }; +var isBifunctor = function (I) { return typeof I.bimap === 'function'; }; +var isExtend = function (I) { return typeof I.extend === 'function'; }; +var isFoldable = function (I) { return typeof I.reduce === 'function'; }; +var isFoldableWithIndex = function (I) { return typeof I.reduceWithIndex === 'function'; }; +var isAlt = function (I) { return typeof I.alt === 'function'; }; +var isCompactable = function (I) { return typeof I.compact === 'function'; }; +var isFilterable = function (I) { return typeof I.filter === 'function'; }; +var isFilterableWithIndex = function (I) { + return typeof I.filterWithIndex === 'function'; +}; +var isProfunctor = function (I) { return typeof I.promap === 'function'; }; +var isSemigroupoid = function (I) { return typeof I.compose === 'function'; }; +var isMonadThrow = function (I) { return typeof I.throwError === 'function'; }; +/** @deprecated */ +function pipeable(I) { + var r = {}; + if (isFunctor(I)) { + r.map = map(I); + } + if (isContravariant(I)) { + r.contramap = contramap(I); + } + if (isFunctorWithIndex(I)) { + r.mapWithIndex = mapWithIndex(I); + } + if (isApply(I)) { + r.ap = ap(I); + r.apFirst = (0, Apply_1.apFirst)(I); + r.apSecond = (0, Apply_1.apSecond)(I); + } + if (isChain(I)) { + r.chain = chain(I); + r.chainFirst = (0, Chain_1.chainFirst)(I); + r.flatten = r.chain(function_1.identity); + } + if (isBifunctor(I)) { + r.bimap = bimap(I); + r.mapLeft = mapLeft(I); + } + if (isExtend(I)) { + r.extend = extend(I); + r.duplicate = r.extend(function_1.identity); + } + if (isFoldable(I)) { + r.reduce = reduce(I); + r.foldMap = foldMap(I); + r.reduceRight = reduceRight(I); + } + if (isFoldableWithIndex(I)) { + r.reduceWithIndex = reduceWithIndex(I); + r.foldMapWithIndex = foldMapWithIndex(I); + r.reduceRightWithIndex = reduceRightWithIndex(I); + } + if (isAlt(I)) { + r.alt = alt(I); + } + if (isCompactable(I)) { + r.compact = I.compact; + r.separate = I.separate; + } + if (isFilterable(I)) { + r.filter = filter(I); + r.filterMap = filterMap(I); + r.partition = partition(I); + r.partitionMap = partitionMap(I); + } + if (isFilterableWithIndex(I)) { + r.filterWithIndex = filterWithIndex(I); + r.filterMapWithIndex = filterMapWithIndex(I); + r.partitionWithIndex = partitionWithIndex(I); + r.partitionMapWithIndex = partitionMapWithIndex(I); + } + if (isProfunctor(I)) { + r.promap = promap(I); + } + if (isSemigroupoid(I)) { + r.compose = compose(I); + } + if (isMonadThrow(I)) { + var fromOption = function (onNone) { return function (ma) { + return ma._tag === 'None' ? I.throwError(onNone()) : I.of(ma.value); + }; }; + var fromEither = function (ma) { + return ma._tag === 'Left' ? I.throwError(ma.left) : I.of(ma.right); + }; + var fromPredicate = function (predicate, onFalse) { + return function (a) { + return predicate(a) ? I.of(a) : I.throwError(onFalse(a)); + }; + }; + var filterOrElse = function (predicate, onFalse) { + return function (ma) { + return I.chain(ma, function (a) { return (predicate(a) ? I.of(a) : I.throwError(onFalse(a))); }); + }; + }; + r.fromOption = fromOption; + r.fromEither = fromEither; + r.fromPredicate = fromPredicate; + r.filterOrElse = filterOrElse; + } + return r; +} +/** + * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#pipe) from `function` module instead. + * + * @since 2.0.0 + * @deprecated + */ +exports.pipe = function_1.pipe; diff --git a/node_modules/fp-ts/lib/string.d.ts b/node_modules/fp-ts/lib/string.d.ts new file mode 100644 index 0000000..18930d2 --- /dev/null +++ b/node_modules/fp-ts/lib/string.d.ts @@ -0,0 +1,226 @@ +/** + * @since 2.10.0 + */ +import * as E from './Eq' +import * as M from './Monoid' +import * as O from './Ord' +import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray' +import { Refinement } from './Refinement' +import * as S from './Semigroup' +import * as Sh from './Show' +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true) + * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false) + * + * @category instances + * @since 2.10.0 + */ +export declare const Eq: E.Eq<string> +/** + * `string` semigroup under concatenation. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab') + * + * @category instances + * @since 2.10.0 + */ +export declare const Semigroup: S.Semigroup<string> +/** + * An empty `string`. + * + * @since 2.10.0 + */ +export declare const empty = '' +/** + * `string` monoid under concatenation. + * + * The `empty` value is `''`. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab') + * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a') + * + * @category instances + * @since 2.10.0 + */ +export declare const Monoid: M.Monoid<string> +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0) + * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1) + * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1) + * + * @category instances + * @since 2.10.0 + */ +export declare const Ord: O.Ord<string> +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Show.show('a'), '"a"') + * + * @category instances + * @since 2.10.0 + */ +export declare const Show: Sh.Show<string> +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.isString('a'), true) + * assert.deepStrictEqual(S.isString(1), false) + * + * @category refinements + * @since 2.11.0 + */ +export declare const isString: Refinement<unknown, string> +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A') + * + * @since 2.11.0 + */ +export declare const toUpperCase: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a') + * + * @since 2.11.0 + */ +export declare const toLowerCase: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc') + * + * @since 2.11.0 + */ +export declare const replace: (searchValue: string | RegExp, replaceValue: string) => (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trim), 'a') + * + * @since 2.11.0 + */ +export declare const trim: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ') + * + * @since 2.11.0 + */ +export declare const trimLeft: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a') + * + * @since 2.11.0 + */ +export declare const trimRight: (s: string) => string +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc') + * + * @since 2.11.0 + */ +export declare const slice: (start: number, end: number) => (s: string) => string +/** + * Test whether a `string` is empty. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('', S.isEmpty), true) + * assert.deepStrictEqual(pipe('a', S.isEmpty), false) + * + * @since 2.10.0 + */ +export declare const isEmpty: (s: string) => boolean +/** + * Calculate the number of characters in a `string`. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.size), 3) + * + * @since 2.10.0 + */ +export declare const size: (s: string) => number +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c']) + * assert.deepStrictEqual(pipe('', S.split('')), ['']) + * + * @since 2.11.0 + */ +export declare const split: (separator: string | RegExp) => (s: string) => ReadonlyNonEmptyArray<string> +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.includes('b')), true) + * assert.deepStrictEqual(pipe('abc', S.includes('d')), false) + * + * @since 2.11.0 + */ +export declare const includes: (searchString: string, position?: number) => (s: string) => boolean +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true) + * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false) + * + * @since 2.11.0 + */ +export declare const startsWith: (searchString: string, position?: number) => (s: string) => boolean +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true) + * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false) + * + * @since 2.11.0 + */ +export declare const endsWith: (searchString: string, position?: number) => (s: string) => boolean diff --git a/node_modules/fp-ts/lib/string.js b/node_modules/fp-ts/lib/string.js new file mode 100644 index 0000000..d460b4d --- /dev/null +++ b/node_modules/fp-ts/lib/string.js @@ -0,0 +1,283 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.endsWith = exports.startsWith = exports.includes = exports.split = exports.size = exports.isEmpty = exports.slice = exports.trimRight = exports.trimLeft = exports.trim = exports.replace = exports.toLowerCase = exports.toUpperCase = exports.isString = exports.Show = exports.Ord = exports.Monoid = exports.empty = exports.Semigroup = exports.Eq = void 0; +var ReadonlyNonEmptyArray_1 = require("./ReadonlyNonEmptyArray"); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true) + * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false) + * + * @category instances + * @since 2.10.0 + */ +exports.Eq = { + equals: function (first, second) { return first === second; } +}; +/** + * `string` semigroup under concatenation. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab') + * + * @category instances + * @since 2.10.0 + */ +exports.Semigroup = { + concat: function (first, second) { return first + second; } +}; +/** + * An empty `string`. + * + * @since 2.10.0 + */ +exports.empty = ''; +/** + * `string` monoid under concatenation. + * + * The `empty` value is `''`. + * + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab') + * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a') + * + * @category instances + * @since 2.10.0 + */ +exports.Monoid = { + concat: exports.Semigroup.concat, + empty: exports.empty +}; +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0) + * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1) + * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1) + * + * @category instances + * @since 2.10.0 + */ +exports.Ord = { + equals: exports.Eq.equals, + compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); } +}; +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.Show.show('a'), '"a"') + * + * @category instances + * @since 2.10.0 + */ +exports.Show = { + show: function (s) { return JSON.stringify(s); } +}; +// ------------------------------------------------------------------------------------- +// refinements +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as S from 'fp-ts/string' + * + * assert.deepStrictEqual(S.isString('a'), true) + * assert.deepStrictEqual(S.isString(1), false) + * + * @category refinements + * @since 2.11.0 + */ +var isString = function (u) { return typeof u === 'string'; }; +exports.isString = isString; +// ------------------------------------------------------------------------------------- +// combinators +// ------------------------------------------------------------------------------------- +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A') + * + * @since 2.11.0 + */ +var toUpperCase = function (s) { return s.toUpperCase(); }; +exports.toUpperCase = toUpperCase; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a') + * + * @since 2.11.0 + */ +var toLowerCase = function (s) { return s.toLowerCase(); }; +exports.toLowerCase = toLowerCase; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc') + * + * @since 2.11.0 + */ +var replace = function (searchValue, replaceValue) { + return function (s) { + return s.replace(searchValue, replaceValue); + }; +}; +exports.replace = replace; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trim), 'a') + * + * @since 2.11.0 + */ +var trim = function (s) { return s.trim(); }; +exports.trim = trim; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ') + * + * @since 2.11.0 + */ +var trimLeft = function (s) { return s.trimLeft(); }; +exports.trimLeft = trimLeft; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a') + * + * @since 2.11.0 + */ +var trimRight = function (s) { return s.trimRight(); }; +exports.trimRight = trimRight; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc') + * + * @since 2.11.0 + */ +var slice = function (start, end) { + return function (s) { + return s.slice(start, end); + }; +}; +exports.slice = slice; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Test whether a `string` is empty. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('', S.isEmpty), true) + * assert.deepStrictEqual(pipe('a', S.isEmpty), false) + * + * @since 2.10.0 + */ +var isEmpty = function (s) { return s.length === 0; }; +exports.isEmpty = isEmpty; +/** + * Calculate the number of characters in a `string`. + * + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.size), 3) + * + * @since 2.10.0 + */ +var size = function (s) { return s.length; }; +exports.size = size; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c']) + * assert.deepStrictEqual(pipe('', S.split('')), ['']) + * + * @since 2.11.0 + */ +var split = function (separator) { + return function (s) { + var out = s.split(separator); + return (0, ReadonlyNonEmptyArray_1.isNonEmpty)(out) ? out : [s]; + }; +}; +exports.split = split; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.includes('b')), true) + * assert.deepStrictEqual(pipe('abc', S.includes('d')), false) + * + * @since 2.11.0 + */ +var includes = function (searchString, position) { + return function (s) { + return s.includes(searchString, position); + }; +}; +exports.includes = includes; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true) + * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false) + * + * @since 2.11.0 + */ +var startsWith = function (searchString, position) { + return function (s) { + return s.startsWith(searchString, position); + }; +}; +exports.startsWith = startsWith; +/** + * @example + * import * as S from 'fp-ts/string' + * import { pipe } from 'fp-ts/function' + * + * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true) + * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false) + * + * @since 2.11.0 + */ +var endsWith = function (searchString, position) { + return function (s) { + return s.endsWith(searchString, position); + }; +}; +exports.endsWith = endsWith; diff --git a/node_modules/fp-ts/lib/struct.d.ts b/node_modules/fp-ts/lib/struct.d.ts new file mode 100644 index 0000000..5cb62e9 --- /dev/null +++ b/node_modules/fp-ts/lib/struct.d.ts @@ -0,0 +1,42 @@ +import { Semigroup } from './Semigroup' +/** + * Return a semigroup which works like `Object.assign`. + * + * @example + * import { getAssignSemigroup } from 'fp-ts/struct' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const S = getAssignSemigroup<Person>() + * assert.deepStrictEqual(S.concat({ name: 'name', age: 23 }, { name: 'name', age: 24 }), { name: 'name', age: 24 }) + * + * @category instances + * @since 2.10.0 + */ +export declare const getAssignSemigroup: <A extends object = never>() => Semigroup<A> +/** + * Creates a new object by recursively evolving a shallow copy of `a`, according to the `transformation` functions. + * + * @example + * import { pipe } from 'fp-ts/function' + * import { evolve } from 'fp-ts/struct' + * + * assert.deepStrictEqual( + * pipe( + * { a: 'a', b: 1 }, + * evolve({ + * a: (a) => a.length, + * b: (b) => b * 2 + * }) + * ), + * { a: 1, b: 2 } + * ) + * + * @since 2.11.0 + */ +export declare const evolve: <A, F extends { [K in keyof A]: (a: A[K]) => unknown }>( + transformations: F +) => (a: A) => { [K in keyof F]: ReturnType<F[K]> } diff --git a/node_modules/fp-ts/lib/struct.js b/node_modules/fp-ts/lib/struct.js new file mode 100644 index 0000000..4bcd310 --- /dev/null +++ b/node_modules/fp-ts/lib/struct.js @@ -0,0 +1,89 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.evolve = exports.getAssignSemigroup = void 0; +/** + * @since 2.10.0 + */ +var _ = __importStar(require("./internal")); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * Return a semigroup which works like `Object.assign`. + * + * @example + * import { getAssignSemigroup } from 'fp-ts/struct' + * + * interface Person { + * readonly name: string + * readonly age: number + * } + * + * const S = getAssignSemigroup<Person>() + * assert.deepStrictEqual(S.concat({ name: 'name', age: 23 }, { name: 'name', age: 24 }), { name: 'name', age: 24 }) + * + * @category instances + * @since 2.10.0 + */ +var getAssignSemigroup = function () { return ({ + concat: function (first, second) { return Object.assign({}, first, second); } +}); }; +exports.getAssignSemigroup = getAssignSemigroup; +// ------------------------------------------------------------------------------------- +// utils +// ------------------------------------------------------------------------------------- +/** + * Creates a new object by recursively evolving a shallow copy of `a`, according to the `transformation` functions. + * + * @example + * import { pipe } from 'fp-ts/function' + * import { evolve } from 'fp-ts/struct' + * + * assert.deepStrictEqual( + * pipe( + * { a: 'a', b: 1 }, + * evolve({ + * a: (a) => a.length, + * b: (b) => b * 2 + * }) + * ), + * { a: 1, b: 2 } + * ) + * + * @since 2.11.0 + */ +var evolve = function (transformations) { + return function (a) { + var out = {}; + for (var k in a) { + if (_.has.call(a, k)) { + out[k] = transformations[k](a[k]); + } + } + return out; + }; +}; +exports.evolve = evolve; diff --git a/node_modules/fp-ts/lib/void.d.ts b/node_modules/fp-ts/lib/void.d.ts new file mode 100644 index 0000000..1be270f --- /dev/null +++ b/node_modules/fp-ts/lib/void.d.ts @@ -0,0 +1,15 @@ +/** + * @since 2.11.0 + */ +import * as M from './Monoid' +import * as Se from './Semigroup' +/** + * @category instances + * @since 2.11.0 + */ +export declare const Semigroup: Se.Semigroup<void> +/** + * @category instances + * @since 2.11.0 + */ +export declare const Monoid: M.Monoid<void> diff --git a/node_modules/fp-ts/lib/void.js b/node_modules/fp-ts/lib/void.js new file mode 100644 index 0000000..328a828 --- /dev/null +++ b/node_modules/fp-ts/lib/void.js @@ -0,0 +1,43 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Monoid = exports.Semigroup = void 0; +var Se = __importStar(require("./Semigroup")); +// ------------------------------------------------------------------------------------- +// instances +// ------------------------------------------------------------------------------------- +/** + * @category instances + * @since 2.11.0 + */ +exports.Semigroup = Se.constant(undefined); +/** + * @category instances + * @since 2.11.0 + */ +exports.Monoid = { + concat: exports.Semigroup.concat, + empty: undefined +}; diff --git a/node_modules/fp-ts/number/package.json b/node_modules/fp-ts/number/package.json new file mode 100644 index 0000000..0957307 --- /dev/null +++ b/node_modules/fp-ts/number/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/number.js", + "module": "../es6/number.js", + "typings": "../lib/number.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/package.json b/node_modules/fp-ts/package.json new file mode 100644 index 0000000..3ccbc56 --- /dev/null +++ b/node_modules/fp-ts/package.json @@ -0,0 +1,29 @@ +{ + "name": "fp-ts", + "version": "2.16.11", + "description": "Functional programming in TypeScript", + "main": "./lib/index.js", + "module": "./es6/index.js", + "typings": "lib/index.d.ts", + "sideEffects": false, + "repository": { + "type": "git", + "url": "https://github.com/gcanti/fp-ts.git" + }, + "author": "Giulio Canti <giulio.canti@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/gcanti/fp-ts/issues" + }, + "homepage": "https://github.com/gcanti/fp-ts", + "tags": [ + "typescript", + "algebraic-data-types", + "functional-programming" + ], + "keywords": [ + "typescript", + "algebraic-data-types", + "functional-programming" + ] +} \ No newline at end of file diff --git a/node_modules/fp-ts/pipeable/package.json b/node_modules/fp-ts/pipeable/package.json new file mode 100644 index 0000000..33ebfd9 --- /dev/null +++ b/node_modules/fp-ts/pipeable/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/pipeable.js", + "module": "../es6/pipeable.js", + "typings": "../lib/pipeable.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/string/package.json b/node_modules/fp-ts/string/package.json new file mode 100644 index 0000000..b478a61 --- /dev/null +++ b/node_modules/fp-ts/string/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/string.js", + "module": "../es6/string.js", + "typings": "../lib/string.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/struct/package.json b/node_modules/fp-ts/struct/package.json new file mode 100644 index 0000000..eb3875d --- /dev/null +++ b/node_modules/fp-ts/struct/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/struct.js", + "module": "../es6/struct.js", + "typings": "../lib/struct.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/fp-ts/void/package.json b/node_modules/fp-ts/void/package.json new file mode 100644 index 0000000..d13ae53 --- /dev/null +++ b/node_modules/fp-ts/void/package.json @@ -0,0 +1,6 @@ +{ + "main": "../lib/void.js", + "module": "../es6/void.js", + "typings": "../lib/void.d.ts", + "sideEffects": false +} \ No newline at end of file diff --git a/node_modules/lodash.debounce/LICENSE b/node_modules/lodash.debounce/LICENSE new file mode 100644 index 0000000..e0c69d5 --- /dev/null +++ b/node_modules/lodash.debounce/LICENSE @@ -0,0 +1,47 @@ +Copyright jQuery Foundation and other contributors <https://jquery.org/> + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/> + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash.debounce/README.md b/node_modules/lodash.debounce/README.md new file mode 100644 index 0000000..52e638c --- /dev/null +++ b/node_modules/lodash.debounce/README.md @@ -0,0 +1,18 @@ +# lodash.debounce v4.0.8 + +The [lodash](https://lodash.com/) method `_.debounce` exported as a [Node.js](https://nodejs.org/) module. + +## Installation + +Using npm: +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.debounce +``` + +In Node.js: +```js +var debounce = require('lodash.debounce'); +``` + +See the [documentation](https://lodash.com/docs#debounce) or [package source](https://github.com/lodash/lodash/blob/4.0.8-npm-packages/lodash.debounce) for more details. diff --git a/node_modules/lodash.debounce/index.js b/node_modules/lodash.debounce/index.js new file mode 100644 index 0000000..ac5707d --- /dev/null +++ b/node_modules/lodash.debounce/index.js @@ -0,0 +1,377 @@ +/** + * lodash (Custom Build) <https://lodash.com/> + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors <https://jquery.org/> + * Released under MIT license <https://lodash.com/license> + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** Used to match leading and trailing whitespace. */ +var reTrim = /^\s+|\s+$/g; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return root.Date.now(); +}; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + result = wait - timeSinceLastCall; + + return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); +} + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +module.exports = debounce; diff --git a/node_modules/lodash.debounce/package.json b/node_modules/lodash.debounce/package.json new file mode 100644 index 0000000..2974633 --- /dev/null +++ b/node_modules/lodash.debounce/package.json @@ -0,0 +1,17 @@ +{ + "name": "lodash.debounce", + "version": "4.0.8", + "description": "The lodash method `_.debounce` exported as a module.", + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "keywords": "lodash-modularized, debounce", + "author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", + "contributors": [ + "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", + "Blaine Bublitz <blaine.bublitz@gmail.com> (https://github.com/phated)", + "Mathias Bynens <mathias@qiwi.be> (https://mathiasbynens.be/)" + ], + "repository": "lodash/lodash", + "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } +} diff --git a/node_modules/magic-string/LICENSE b/node_modules/magic-string/LICENSE new file mode 100644 index 0000000..667e8b4 --- /dev/null +++ b/node_modules/magic-string/LICENSE @@ -0,0 +1,7 @@ +Copyright 2018 Rich Harris + +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. diff --git a/node_modules/magic-string/README.md b/node_modules/magic-string/README.md new file mode 100644 index 0000000..2dc316c --- /dev/null +++ b/node_modules/magic-string/README.md @@ -0,0 +1,325 @@ +# magic-string + +<a href="https://github.com/Rich-Harris/magic-string/actions/workflows/test.yml"> + <img src="https://img.shields.io/github/actions/workflow/status/Rich-Harris/magic-string/test.yml" + alt="build status"> +</a> +<a href="https://npmjs.org/package/magic-string"> + <img src="https://img.shields.io/npm/v/magic-string.svg" + alt="npm version"> +</a> +<a href="https://github.com/Rich-Harris/magic-string/blob/master/LICENSE.md"> + <img src="https://img.shields.io/npm/l/magic-string.svg" + alt="license"> +</a> + +Suppose you have some source code. You want to make some light modifications to it - replacing a few characters here and there, wrapping it with a header and footer, etc - and ideally you'd like to generate a [source map](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/) at the end of it. You've thought about using something like [recast](https://github.com/benjamn/recast) (which allows you to generate an AST from some JavaScript, manipulate it, and reprint it with a sourcemap without losing your comments and formatting), but it seems like overkill for your needs (or maybe the source code isn't JavaScript). + +Your requirements are, frankly, rather niche. But they're requirements that I also have, and for which I made magic-string. It's a small, fast utility for manipulating strings and generating sourcemaps. + +## Installation + +magic-string works in both node.js and browser environments. For node, install with npm: + +```bash +npm i magic-string +``` + +To use in browser, grab the [magic-string.umd.js](https://unpkg.com/magic-string/dist/magic-string.umd.js) file and add it to your page: + +```html +<script src="magic-string.umd.js"></script> +``` + +(It also works with various module systems, if you prefer that sort of thing - it has a dependency on [vlq](https://github.com/Rich-Harris/vlq).) + +## Usage + +These examples assume you're in node.js, or something similar: + +```js +import MagicString from 'magic-string'; +import fs from 'fs'; + +const s = new MagicString('problems = 99'); + +s.update(0, 8, 'answer'); +s.toString(); // 'answer = 99' + +s.update(11, 13, '42'); // character indices always refer to the original string +s.toString(); // 'answer = 42' + +s.prepend('var ').append(';'); // most methods are chainable +s.toString(); // 'var answer = 42;' + +const map = s.generateMap({ + source: 'source.js', + file: 'converted.js.map', + includeContent: true, +}); // generates a v3 sourcemap + +fs.writeFileSync('converted.js', s.toString()); +fs.writeFileSync('converted.js.map', map.toString()); +``` + +You can pass an options argument: + +```js +const s = new MagicString(someCode, { + // these options will be used if you later call `bundle.addSource( s )` - see below + filename: 'foo.js', + indentExclusionRanges: [ + /*...*/ + ], + // mark source as ignore in DevTools, see below #Bundling + ignoreList: false, + // adjust the incoming position - see below + offset: 0, +}); +``` + +## Properties + +### s.offset + +Sets the offset property to adjust the incoming position for the following APIs: `slice`, `update`, `overwrite`, `appendLeft`, `prependLeft`, `appendRight`, `prependRight`, `move`, `reset`, and `remove`. + +Example usage: + +```ts +const s = new MagicString('hello world', { offset: 0 }); +s.offset = 6; +s.slice() === 'world'; +``` + +## Methods + +### s.addSourcemapLocation( index ) + +Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is `false` (see below). + +### s.append( content ) + +Appends the specified content to the end of the string. Returns `this`. + +### s.appendLeft( index, content ) + +Appends the specified `content` at the `index` in the original string. If a range _ending_ with `index` is subsequently moved, the insert will be moved with it. Returns `this`. See also `s.prependLeft(...)`. + +### s.appendRight( index, content ) + +Appends the specified `content` at the `index` in the original string. If a range _starting_ with `index` is subsequently moved, the insert will be moved with it. Returns `this`. See also `s.prependRight(...)`. + +### s.clone() + +Does what you'd expect. + +### s.generateDecodedMap( options ) + +Generates a sourcemap object with raw mappings in array form, rather than encoded as a string. See `generateMap` documentation below for options details. Useful if you need to manipulate the sourcemap further, but most of the time you will use `generateMap` instead. + +### s.generateMap( options ) + +Generates a [version 3 sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit). All options are, well, optional: + +- `file` - the filename where you plan to write the sourcemap +- `source` - the filename of the file containing the original source +- `includeContent` - whether to include the original content in the map's `sourcesContent` array +- `hires` - whether the mapping should be high-resolution. Hi-res mappings map every single character, meaning (for example) your devtools will always be able to pinpoint the exact location of function calls and so on. With lo-res mappings, devtools may only be able to identify the correct line - but they're quicker to generate and less bulky. You can also set `"boundary"` to generate a semi-hi-res mappings segmented per word boundary instead of per character, suitable for string semantics that are separated by words. If sourcemap locations have been specified with `s.addSourcemapLocation()`, they will be used here. + +The returned sourcemap has two (non-enumerable) methods attached for convenience: + +- `toString` - returns the equivalent of `JSON.stringify(map)` +- `toUrl` - returns a DataURI containing the sourcemap. Useful for doing this sort of thing: + +```js +code += '\n//# sourceMappingURL=' + map.toUrl(); +``` + +### s.hasChanged() + +Indicates if the string has been changed. + +### s.indent( prefix[, options] ) + +Prefixes each line of the string with `prefix`. If `prefix` is not supplied, the indentation will be guessed from the original content, falling back to a single tab character. Returns `this`. + +The `options` argument can have an `exclude` property, which is an array of `[start, end]` character ranges. These ranges will be excluded from the indentation - useful for (e.g.) multiline strings. + +### s.insertLeft( index, content ) + +**DEPRECATED** since 0.17 – use `s.appendLeft(...)` instead + +### s.insertRight( index, content ) + +**DEPRECATED** since 0.17 – use `s.prependRight(...)` instead + +### s.isEmpty() + +Returns true if the resulting source is empty (disregarding white space). + +### s.locate( index ) + +**DEPRECATED** since 0.10 – see [#30](https://github.com/Rich-Harris/magic-string/pull/30) + +### s.locateOrigin( index ) + +**DEPRECATED** since 0.10 – see [#30](https://github.com/Rich-Harris/magic-string/pull/30) + +### s.move( start, end, index ) + +Moves the characters from `start` and `end` to `index`. Returns `this`. + +### s.overwrite( start, end, content[, options] ) + +Replaces the characters from `start` to `end` with `content`, along with the appended/prepended content in that range. The same restrictions as `s.remove()` apply. Returns `this`. + +The fourth argument is optional. It can have a `storeName` property — if `true`, the original name will be stored for later inclusion in a sourcemap's `names` array — and a `contentOnly` property which determines whether only the content is overwritten, or anything that was appended/prepended to the range as well. + +It may be preferred to use `s.update(...)` instead if you wish to avoid overwriting the appended/prepended content. + +### s.prepend( content ) + +Prepends the string with the specified content. Returns `this`. + +### s.prependLeft ( index, content ) + +Same as `s.appendLeft(...)`, except that the inserted content will go _before_ any previous appends or prepends at `index` + +### s.prependRight ( index, content ) + +Same as `s.appendRight(...)`, except that the inserted content will go _before_ any previous appends or prepends at `index` + +### s.replace( regexpOrString, substitution ) + +String replacement with RegExp or string. The `substitution` parameter supports strings and functions. Returns `this`. + +```ts +import MagicString from 'magic-string'; + +const s = new MagicString(source); + +s.replace('foo', 'bar'); +s.replace('foo', (str, index, s) => str + '-' + index); +s.replace(/foo/g, 'bar'); +s.replace(/(\w)(\d+)/g, (_, $1, $2) => $1.toUpperCase() + $2); +``` + +The differences from [`String.replace`](<(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace)>): + +- It will always match against the **original string** +- It mutates the magic string state (use `.clone()` to be immutable) + +### s.replaceAll( regexpOrString, substitution ) + +Same as `s.replace`, but replace all matched strings instead of just one. +If `regexpOrString` is a regex, then it must have the global (`g`) flag set, or a `TypeError` is thrown. Matches the behavior of the builtin [`String.property.replaceAll`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll). Returns `this`. + +### s.remove( start, end ) + +Removes the characters from `start` to `end` (of the original string, **not** the generated string). Removing the same content twice, or making removals that partially overlap, will cause an error. Returns `this`. + +### s.reset( start, end ) + +Resets the characters from `start` to `end` (of the original string, **not** the generated string). +It can be used to restore previously removed characters and discard unwanted changes. + +### s.slice( start, end ) + +Returns the content of the generated string that corresponds to the slice between `start` and `end` of the original string. Throws error if the indices are for characters that were already removed. + +### s.snip( start, end ) + +Returns a clone of `s`, with all content before the `start` and `end` characters of the original string removed. + +### s.toString() + +Returns the generated string. + +### s.trim([ charType ]) + +Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start and end. Returns `this`. + +### s.trimStart([ charType ]) + +Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start. Returns `this`. + +### s.trimEnd([ charType ]) + +Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the end. Returns `this`. + +### s.trimLines() + +Removes empty lines from the start and end. Returns `this`. + +### s.update( start, end, content[, options] ) + +Replaces the characters from `start` to `end` with `content`. The same restrictions as `s.remove()` apply. Returns `this`. + +The fourth argument is optional. It can have a `storeName` property — if `true`, the original name will be stored for later inclusion in a sourcemap's `names` array — and an `overwrite` property which defaults to `false` and determines whether anything that was appended/prepended to the range will be overwritten along with the original content. + +`s.update(start, end, content)` is equivalent to `s.overwrite(start, end, content, { contentOnly: true })`. + +## Bundling + +To concatenate several sources, use `MagicString.Bundle`: + +```js +const bundle = new MagicString.Bundle(); + +bundle.addSource({ + filename: 'foo.js', + content: new MagicString('var answer = 42;'), +}); + +bundle.addSource({ + filename: 'bar.js', + content: new MagicString('console.log( answer )'), +}); + +// Sources can be marked as ignore-listed, which provides a hint to debuggers +// to not step into this code and also don't show the source files depending +// on user preferences. +bundle.addSource({ + filename: 'some-3rdparty-library.js', + content: new MagicString('function myLib(){}'), + ignoreList: false, // <-- +}); + +// Advanced: a source can include an `indentExclusionRanges` property +// alongside `filename` and `content`. This will be passed to `s.indent()` +// - see documentation above + +bundle + .indent() // optionally, pass an indent string, otherwise it will be guessed + .prepend('(function () {\n') + .append('}());'); + +bundle.toString(); +// (function () { +// var answer = 42; +// console.log( answer ); +// }()); + +// options are as per `s.generateMap()` above +const map = bundle.generateMap({ + file: 'bundle.js', + includeContent: true, + hires: true, +}); +``` + +As an alternative syntax, if you a) don't have `filename` or `indentExclusionRanges` options, or b) passed those in when you used `new MagicString(...)`, you can simply pass the `MagicString` instance itself: + +```js +const bundle = new MagicString.Bundle(); +const source = new MagicString(someCode, { + filename: 'foo.js', +}); + +bundle.addSource(source); +``` + +## License + +MIT diff --git a/node_modules/magic-string/dist/magic-string.cjs.d.ts b/node_modules/magic-string/dist/magic-string.cjs.d.ts new file mode 100644 index 0000000..76cc537 --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.cjs.d.ts @@ -0,0 +1,289 @@ +export interface BundleOptions { + intro?: string; + separator?: string; +} + +export interface SourceMapOptions { + /** + * Whether the mapping should be high-resolution. + * Hi-res mappings map every single character, meaning (for example) your devtools will always + * be able to pinpoint the exact location of function calls and so on. + * With lo-res mappings, devtools may only be able to identify the correct + * line - but they're quicker to generate and less bulky. + * You can also set `"boundary"` to generate a semi-hi-res mappings segmented per word boundary + * instead of per character, suitable for string semantics that are separated by words. + * If sourcemap locations have been specified with s.addSourceMapLocation(), they will be used here. + */ + hires?: boolean | 'boundary'; + /** + * The filename where you plan to write the sourcemap. + */ + file?: string; + /** + * The filename of the file containing the original source. + */ + source?: string; + /** + * Whether to include the original content in the map's sourcesContent array. + */ + includeContent?: boolean; +} + +export type SourceMapSegment = + | [number] + | [number, number, number, number] + | [number, number, number, number, number]; + +export interface DecodedSourceMap { + file: string; + sources: string[]; + sourcesContent?: string[]; + names: string[]; + mappings: SourceMapSegment[][]; + x_google_ignoreList?: number[]; +} + +export class SourceMap { + constructor(properties: DecodedSourceMap); + + version: number; + file: string; + sources: string[]; + sourcesContent?: string[]; + names: string[]; + mappings: string; + x_google_ignoreList?: number[]; + debugId?: string; + + /** + * Returns the equivalent of `JSON.stringify(map)` + */ + toString(): string; + /** + * Returns a DataURI containing the sourcemap. Useful for doing this sort of thing: + * `generateMap(options?: SourceMapOptions): SourceMap;` + */ + toUrl(): string; +} + +export class Bundle { + constructor(options?: BundleOptions); + /** + * Adds the specified source to the bundle, which can either be a `MagicString` object directly, + * or an options object that holds a magic string `content` property and optionally provides + * a `filename` for the source within the bundle, as well as an optional `ignoreList` hint + * (which defaults to `false`). The `filename` is used when constructing the source map for the + * bundle, to identify this `source` in the source map's `sources` field. The `ignoreList` hint + * is used to populate the `x_google_ignoreList` extension field in the source map, which is a + * mechanism for tools to signal to debuggers that certain sources should be ignored by default + * (depending on user preferences). + */ + addSource( + source: MagicString | { filename?: string; content: MagicString; ignoreList?: boolean }, + ): this; + append(str: string, options?: BundleOptions): this; + clone(): this; + generateMap( + options?: SourceMapOptions, + ): Omit<SourceMap, 'sourcesContent'> & { sourcesContent: Array<string | null> }; + generateDecodedMap( + options?: SourceMapOptions, + ): Omit<DecodedSourceMap, 'sourcesContent'> & { sourcesContent: Array<string | null> }; + getIndentString(): string; + indent(indentStr?: string): this; + indentExclusionRanges: ExclusionRange | Array<ExclusionRange>; + prepend(str: string): this; + toString(): string; + trimLines(): this; + trim(charType?: string): this; + trimStart(charType?: string): this; + trimEnd(charType?: string): this; + isEmpty(): boolean; + length(): number; +} + +export type ExclusionRange = [number, number]; + +export interface MagicStringOptions { + filename?: string; + indentExclusionRanges?: ExclusionRange | Array<ExclusionRange>; + offset?: number; +} + +export interface IndentOptions { + exclude?: ExclusionRange | Array<ExclusionRange>; + indentStart?: boolean; +} + +export interface OverwriteOptions { + storeName?: boolean; + contentOnly?: boolean; +} + +export interface UpdateOptions { + storeName?: boolean; + overwrite?: boolean; +} + +export default class MagicString { + constructor(str: string, options?: MagicStringOptions); + /** + * Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is false. + */ + addSourcemapLocation(char: number): void; + /** + * Appends the specified content to the end of the string. + */ + append(content: string): this; + /** + * Appends the specified content at the index in the original string. + * If a range *ending* with index is subsequently moved, the insert will be moved with it. + * See also `s.prependLeft(...)`. + */ + appendLeft(index: number, content: string): this; + /** + * Appends the specified content at the index in the original string. + * If a range *starting* with index is subsequently moved, the insert will be moved with it. + * See also `s.prependRight(...)`. + */ + appendRight(index: number, content: string): this; + /** + * Does what you'd expect. + */ + clone(): this; + /** + * Generates a version 3 sourcemap. + */ + generateMap(options?: SourceMapOptions): SourceMap; + /** + * Generates a sourcemap object with raw mappings in array form, rather than encoded as a string. + * Useful if you need to manipulate the sourcemap further, but most of the time you will use `generateMap` instead. + */ + generateDecodedMap(options?: SourceMapOptions): DecodedSourceMap; + getIndentString(): string; + + /** + * Prefixes each line of the string with prefix. + * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character. + */ + indent(options?: IndentOptions): this; + /** + * Prefixes each line of the string with prefix. + * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character. + * + * The options argument can have an exclude property, which is an array of [start, end] character ranges. + * These ranges will be excluded from the indentation - useful for (e.g.) multiline strings. + */ + indent(indentStr?: string, options?: IndentOptions): this; + indentExclusionRanges: ExclusionRange | Array<ExclusionRange>; + + /** + * Moves the characters from `start` and `end` to `index`. + */ + move(start: number, end: number, index: number): this; + /** + * Replaces the characters from `start` to `end` with `content`, along with the appended/prepended content in + * that range. The same restrictions as `s.remove()` apply. + * + * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored + * for later inclusion in a sourcemap's names array — and a contentOnly property which determines whether only + * the content is overwritten, or anything that was appended/prepended to the range as well. + * + * It may be preferred to use `s.update(...)` instead if you wish to avoid overwriting the appended/prepended content. + */ + overwrite( + start: number, + end: number, + content: string, + options?: boolean | OverwriteOptions, + ): this; + /** + * Replaces the characters from `start` to `end` with `content`. The same restrictions as `s.remove()` apply. + * + * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored + * for later inclusion in a sourcemap's names array — and an overwrite property which determines whether only + * the content is overwritten, or anything that was appended/prepended to the range as well. + */ + update(start: number, end: number, content: string, options?: boolean | UpdateOptions): this; + /** + * Prepends the string with the specified content. + */ + prepend(content: string): this; + /** + * Same as `s.appendLeft(...)`, except that the inserted content will go *before* any previous appends or prepends at index + */ + prependLeft(index: number, content: string): this; + /** + * Same as `s.appendRight(...)`, except that the inserted content will go *before* any previous appends or prepends at `index` + */ + prependRight(index: number, content: string): this; + /** + * Removes the characters from `start` to `end` (of the original string, **not** the generated string). + * Removing the same content twice, or making removals that partially overlap, will cause an error. + */ + remove(start: number, end: number): this; + /** + * Reset the modified characters from `start` to `end` (of the original string, **not** the generated string). + */ + reset(start: number, end: number): this; + /** + * Returns the content of the generated string that corresponds to the slice between `start` and `end` of the original string. + * Throws error if the indices are for characters that were already removed. + */ + slice(start: number, end: number): string; + /** + * Returns a clone of `s`, with all content before the `start` and `end` characters of the original string removed. + */ + snip(start: number, end: number): this; + /** + * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start and end. + */ + trim(charType?: string): this; + /** + * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start. + */ + trimStart(charType?: string): this; + /** + * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the end. + */ + trimEnd(charType?: string): this; + /** + * Removes empty lines from the start and end. + */ + trimLines(): this; + /** + * String replacement with RegExp or string. + */ + replace( + regex: RegExp | string, + replacement: string | ((substring: string, ...args: any[]) => string), + ): this; + /** + * Same as `s.replace`, but replace all matched strings instead of just one. + */ + replaceAll( + regex: RegExp | string, + replacement: string | ((substring: string, ...args: any[]) => string), + ): this; + + lastChar(): string; + lastLine(): string; + /** + * Returns true if the resulting source is empty (disregarding white space). + */ + isEmpty(): boolean; + length(): number; + + /** + * Indicates if the string has been changed. + */ + hasChanged(): boolean; + + original: string; + /** + * Returns the generated string. + */ + toString(): string; + + offset: number; +} diff --git a/node_modules/magic-string/dist/magic-string.cjs.js b/node_modules/magic-string/dist/magic-string.cjs.js new file mode 100644 index 0000000..bf3cd1d --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.cjs.js @@ -0,0 +1,1594 @@ +'use strict'; + +var sourcemapCodec = require('@jridgewell/sourcemap-codec'); + +class BitSet { + constructor(arg) { + this.bits = arg instanceof BitSet ? arg.bits.slice() : []; + } + + add(n) { + this.bits[n >> 5] |= 1 << (n & 31); + } + + has(n) { + return !!(this.bits[n >> 5] & (1 << (n & 31))); + } +} + +class Chunk { + constructor(start, end, content) { + this.start = start; + this.end = end; + this.original = content; + + this.intro = ''; + this.outro = ''; + + this.content = content; + this.storeName = false; + this.edited = false; + + { + this.previous = null; + this.next = null; + } + } + + appendLeft(content) { + this.outro += content; + } + + appendRight(content) { + this.intro = this.intro + content; + } + + clone() { + const chunk = new Chunk(this.start, this.end, this.original); + + chunk.intro = this.intro; + chunk.outro = this.outro; + chunk.content = this.content; + chunk.storeName = this.storeName; + chunk.edited = this.edited; + + return chunk; + } + + contains(index) { + return this.start < index && index < this.end; + } + + eachNext(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.next; + } + } + + eachPrevious(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.previous; + } + } + + edit(content, storeName, contentOnly) { + this.content = content; + if (!contentOnly) { + this.intro = ''; + this.outro = ''; + } + this.storeName = storeName; + + this.edited = true; + + return this; + } + + prependLeft(content) { + this.outro = content + this.outro; + } + + prependRight(content) { + this.intro = content + this.intro; + } + + reset() { + this.intro = ''; + this.outro = ''; + if (this.edited) { + this.content = this.original; + this.storeName = false; + this.edited = false; + } + } + + split(index) { + const sliceIndex = index - this.start; + + const originalBefore = this.original.slice(0, sliceIndex); + const originalAfter = this.original.slice(sliceIndex); + + this.original = originalBefore; + + const newChunk = new Chunk(index, this.end, originalAfter); + newChunk.outro = this.outro; + this.outro = ''; + + this.end = index; + + if (this.edited) { + // after split we should save the edit content record into the correct chunk + // to make sure sourcemap correct + // For example: + // ' test'.trim() + // split -> ' ' + 'test' + // ✔️ edit -> '' + 'test' + // ✖️ edit -> 'test' + '' + // TODO is this block necessary?... + newChunk.edit('', false); + this.content = ''; + } else { + this.content = originalBefore; + } + + newChunk.next = this.next; + if (newChunk.next) newChunk.next.previous = newChunk; + newChunk.previous = this; + this.next = newChunk; + + return newChunk; + } + + toString() { + return this.intro + this.content + this.outro; + } + + trimEnd(rx) { + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + this.split(this.start + trimmed.length).edit('', undefined, true); + if (this.edited) { + // save the change, if it has been edited + this.edit(trimmed, this.storeName, true); + } + } + return true; + } else { + this.edit('', undefined, true); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + } + } + + trimStart(rx) { + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + const newChunk = this.split(this.end - trimmed.length); + if (this.edited) { + // save the change, if it has been edited + newChunk.edit(trimmed, this.storeName, true); + } + this.edit('', undefined, true); + } + return true; + } else { + this.edit('', undefined, true); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + } + } +} + +function getBtoa() { + if (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') { + return (str) => globalThis.btoa(unescape(encodeURIComponent(str))); + } else if (typeof Buffer === 'function') { + return (str) => Buffer.from(str, 'utf-8').toString('base64'); + } else { + return () => { + throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.'); + }; + } +} + +const btoa = /*#__PURE__*/ getBtoa(); + +class SourceMap { + constructor(properties) { + this.version = 3; + this.file = properties.file; + this.sources = properties.sources; + this.sourcesContent = properties.sourcesContent; + this.names = properties.names; + this.mappings = sourcemapCodec.encode(properties.mappings); + if (typeof properties.x_google_ignoreList !== 'undefined') { + this.x_google_ignoreList = properties.x_google_ignoreList; + } + if (typeof properties.debugId !== 'undefined') { + this.debugId = properties.debugId; + } + } + + toString() { + return JSON.stringify(this); + } + + toUrl() { + return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString()); + } +} + +function guessIndent(code) { + const lines = code.split('\n'); + + const tabbed = lines.filter((line) => /^\t+/.test(line)); + const spaced = lines.filter((line) => /^ {2,}/.test(line)); + + if (tabbed.length === 0 && spaced.length === 0) { + return null; + } + + // More lines tabbed than spaced? Assume tabs, and + // default to tabs in the case of a tie (or nothing + // to go on) + if (tabbed.length >= spaced.length) { + return '\t'; + } + + // Otherwise, we need to guess the multiple + const min = spaced.reduce((previous, current) => { + const numSpaces = /^ +/.exec(current)[0].length; + return Math.min(numSpaces, previous); + }, Infinity); + + return new Array(min + 1).join(' '); +} + +function getRelativePath(from, to) { + const fromParts = from.split(/[/\\]/); + const toParts = to.split(/[/\\]/); + + fromParts.pop(); // get dirname + + while (fromParts[0] === toParts[0]) { + fromParts.shift(); + toParts.shift(); + } + + if (fromParts.length) { + let i = fromParts.length; + while (i--) fromParts[i] = '..'; + } + + return fromParts.concat(toParts).join('/'); +} + +const toString = Object.prototype.toString; + +function isObject(thing) { + return toString.call(thing) === '[object Object]'; +} + +function getLocator(source) { + const originalLines = source.split('\n'); + const lineOffsets = []; + + for (let i = 0, pos = 0; i < originalLines.length; i++) { + lineOffsets.push(pos); + pos += originalLines[i].length + 1; + } + + return function locate(index) { + let i = 0; + let j = lineOffsets.length; + while (i < j) { + const m = (i + j) >> 1; + if (index < lineOffsets[m]) { + j = m; + } else { + i = m + 1; + } + } + const line = i - 1; + const column = index - lineOffsets[line]; + return { line, column }; + }; +} + +const wordRegex = /\w/; + +class Mappings { + constructor(hires) { + this.hires = hires; + this.generatedCodeLine = 0; + this.generatedCodeColumn = 0; + this.raw = []; + this.rawSegments = this.raw[this.generatedCodeLine] = []; + this.pending = null; + } + + addEdit(sourceIndex, content, loc, nameIndex) { + if (content.length) { + const contentLengthMinusOne = content.length - 1; + let contentLineEnd = content.indexOf('\n', 0); + let previousContentLineEnd = -1; + // Loop through each line in the content and add a segment, but stop if the last line is empty, + // else code afterwards would fill one line too many + while (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + + previousContentLineEnd = contentLineEnd; + contentLineEnd = content.indexOf('\n', contentLineEnd + 1); + } + + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.advance(content.slice(previousContentLineEnd + 1)); + } else if (this.pending) { + this.rawSegments.push(this.pending); + this.advance(content); + } + + this.pending = null; + } + + addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) { + let originalCharIndex = chunk.start; + let first = true; + // when iterating each char, check if it's in a word boundary + let charInHiresBoundary = false; + + while (originalCharIndex < chunk.end) { + if (original[originalCharIndex] === '\n') { + loc.line += 1; + loc.column = 0; + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + first = true; + charInHiresBoundary = false; + } else { + if (this.hires || first || sourcemapLocations.has(originalCharIndex)) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + + if (this.hires === 'boundary') { + // in hires "boundary", group segments per word boundary than per char + if (wordRegex.test(original[originalCharIndex])) { + // for first char in the boundary found, start the boundary by pushing a segment + if (!charInHiresBoundary) { + this.rawSegments.push(segment); + charInHiresBoundary = true; + } + } else { + // for non-word char, end the boundary by pushing a segment + this.rawSegments.push(segment); + charInHiresBoundary = false; + } + } else { + this.rawSegments.push(segment); + } + } + + loc.column += 1; + this.generatedCodeColumn += 1; + first = false; + } + + originalCharIndex += 1; + } + + this.pending = null; + } + + advance(str) { + if (!str) return; + + const lines = str.split('\n'); + + if (lines.length > 1) { + for (let i = 0; i < lines.length - 1; i++) { + this.generatedCodeLine++; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + } + this.generatedCodeColumn = 0; + } + + this.generatedCodeColumn += lines[lines.length - 1].length; + } +} + +const n = '\n'; + +const warned = { + insertLeft: false, + insertRight: false, + storeName: false, +}; + +class MagicString { + constructor(string, options = {}) { + const chunk = new Chunk(0, string.length, string); + + Object.defineProperties(this, { + original: { writable: true, value: string }, + outro: { writable: true, value: '' }, + intro: { writable: true, value: '' }, + firstChunk: { writable: true, value: chunk }, + lastChunk: { writable: true, value: chunk }, + lastSearchedChunk: { writable: true, value: chunk }, + byStart: { writable: true, value: {} }, + byEnd: { writable: true, value: {} }, + filename: { writable: true, value: options.filename }, + indentExclusionRanges: { writable: true, value: options.indentExclusionRanges }, + sourcemapLocations: { writable: true, value: new BitSet() }, + storedNames: { writable: true, value: {} }, + indentStr: { writable: true, value: undefined }, + ignoreList: { writable: true, value: options.ignoreList }, + offset: { writable: true, value: options.offset || 0 }, + }); + + this.byStart[0] = chunk; + this.byEnd[string.length] = chunk; + } + + addSourcemapLocation(char) { + this.sourcemapLocations.add(char); + } + + append(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.outro += content; + return this; + } + + appendLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.appendLeft(content); + } else { + this.intro += content; + } + return this; + } + + appendRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.appendRight(content); + } else { + this.outro += content; + } + return this; + } + + clone() { + const cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset }); + + let originalChunk = this.firstChunk; + let clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone()); + + while (originalChunk) { + cloned.byStart[clonedChunk.start] = clonedChunk; + cloned.byEnd[clonedChunk.end] = clonedChunk; + + const nextOriginalChunk = originalChunk.next; + const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone(); + + if (nextClonedChunk) { + clonedChunk.next = nextClonedChunk; + nextClonedChunk.previous = clonedChunk; + + clonedChunk = nextClonedChunk; + } + + originalChunk = nextOriginalChunk; + } + + cloned.lastChunk = clonedChunk; + + if (this.indentExclusionRanges) { + cloned.indentExclusionRanges = this.indentExclusionRanges.slice(); + } + + cloned.sourcemapLocations = new BitSet(this.sourcemapLocations); + + cloned.intro = this.intro; + cloned.outro = this.outro; + + return cloned; + } + + generateDecodedMap(options) { + options = options || {}; + + const sourceIndex = 0; + const names = Object.keys(this.storedNames); + const mappings = new Mappings(options.hires); + + const locate = getLocator(this.original); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (this.outro) { + mappings.advance(this.outro); + } + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: [ + options.source ? getRelativePath(options.file || '', options.source) : options.file || '', + ], + sourcesContent: options.includeContent ? [this.original] : undefined, + names, + mappings: mappings.raw, + x_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + _ensureindentStr() { + if (this.indentStr === undefined) { + this.indentStr = guessIndent(this.original); + } + } + + _getRawIndentString() { + this._ensureindentStr(); + return this.indentStr; + } + + getIndentString() { + this._ensureindentStr(); + return this.indentStr === null ? '\t' : this.indentStr; + } + + indent(indentStr, options) { + const pattern = /^[^\r\n]/gm; + + if (isObject(indentStr)) { + options = indentStr; + indentStr = undefined; + } + + if (indentStr === undefined) { + this._ensureindentStr(); + indentStr = this.indentStr || '\t'; + } + + if (indentStr === '') return this; // noop + + options = options || {}; + + // Process exclusion ranges + const isExcluded = {}; + + if (options.exclude) { + const exclusions = + typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude; + exclusions.forEach((exclusion) => { + for (let i = exclusion[0]; i < exclusion[1]; i += 1) { + isExcluded[i] = true; + } + }); + } + + let shouldIndentNextCharacter = options.indentStart !== false; + const replacer = (match) => { + if (shouldIndentNextCharacter) return `${indentStr}${match}`; + shouldIndentNextCharacter = true; + return match; + }; + + this.intro = this.intro.replace(pattern, replacer); + + let charIndex = 0; + let chunk = this.firstChunk; + + while (chunk) { + const end = chunk.end; + + if (chunk.edited) { + if (!isExcluded[charIndex]) { + chunk.content = chunk.content.replace(pattern, replacer); + + if (chunk.content.length) { + shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n'; + } + } + } else { + charIndex = chunk.start; + + while (charIndex < end) { + if (!isExcluded[charIndex]) { + const char = this.original[charIndex]; + + if (char === '\n') { + shouldIndentNextCharacter = true; + } else if (char !== '\r' && shouldIndentNextCharacter) { + shouldIndentNextCharacter = false; + + if (charIndex === chunk.start) { + chunk.prependRight(indentStr); + } else { + this._splitChunk(chunk, charIndex); + chunk = chunk.next; + chunk.prependRight(indentStr); + } + } + } + + charIndex += 1; + } + } + + charIndex = chunk.end; + chunk = chunk.next; + } + + this.outro = this.outro.replace(pattern, replacer); + + return this; + } + + insert() { + throw new Error( + 'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)', + ); + } + + insertLeft(index, content) { + if (!warned.insertLeft) { + console.warn( + 'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead', + ); + warned.insertLeft = true; + } + + return this.appendLeft(index, content); + } + + insertRight(index, content) { + if (!warned.insertRight) { + console.warn( + 'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead', + ); + warned.insertRight = true; + } + + return this.prependRight(index, content); + } + + move(start, end, index) { + start = start + this.offset; + end = end + this.offset; + index = index + this.offset; + + if (index >= start && index <= end) throw new Error('Cannot move a selection inside itself'); + + this._split(start); + this._split(end); + this._split(index); + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + const oldLeft = first.previous; + const oldRight = last.next; + + const newRight = this.byStart[index]; + if (!newRight && last === this.lastChunk) return this; + const newLeft = newRight ? newRight.previous : this.lastChunk; + + if (oldLeft) oldLeft.next = oldRight; + if (oldRight) oldRight.previous = oldLeft; + + if (newLeft) newLeft.next = first; + if (newRight) newRight.previous = last; + + if (!first.previous) this.firstChunk = last.next; + if (!last.next) { + this.lastChunk = first.previous; + this.lastChunk.next = null; + } + + first.previous = newLeft; + last.next = newRight || null; + + if (!newLeft) this.firstChunk = first; + if (!newRight) this.lastChunk = last; + return this; + } + + overwrite(start, end, content, options) { + options = options || {}; + return this.update(start, end, content, { ...options, overwrite: !options.contentOnly }); + } + + update(start, end, content, options) { + start = start + this.offset; + end = end + this.offset; + + if (typeof content !== 'string') throw new TypeError('replacement content must be a string'); + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (end > this.original.length) throw new Error('end is out of bounds'); + if (start === end) + throw new Error( + 'Cannot overwrite a zero-length range – use appendLeft or prependRight instead', + ); + + this._split(start); + this._split(end); + + if (options === true) { + if (!warned.storeName) { + console.warn( + 'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string', + ); + warned.storeName = true; + } + + options = { storeName: true }; + } + const storeName = options !== undefined ? options.storeName : false; + const overwrite = options !== undefined ? options.overwrite : false; + + if (storeName) { + const original = this.original.slice(start, end); + Object.defineProperty(this.storedNames, original, { + writable: true, + value: true, + enumerable: true, + }); + } + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + if (first) { + let chunk = first; + while (chunk !== last) { + if (chunk.next !== this.byStart[chunk.end]) { + throw new Error('Cannot overwrite across a split point'); + } + chunk = chunk.next; + chunk.edit('', false); + } + + first.edit(content, storeName, !overwrite); + } else { + // must be inserting at the end + const newChunk = new Chunk(start, end, '').edit(content, storeName); + + // TODO last chunk in the array may not be the last chunk, if it's moved... + last.next = newChunk; + newChunk.previous = last; + } + return this; + } + + prepend(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.intro = content + this.intro; + return this; + } + + prependLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.prependLeft(content); + } else { + this.intro = content + this.intro; + } + return this; + } + + prependRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.prependRight(content); + } else { + this.outro = content + this.outro; + } + return this; + } + + remove(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.intro = ''; + chunk.outro = ''; + chunk.edit(''); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + reset(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.reset(); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + lastChar() { + if (this.outro.length) return this.outro[this.outro.length - 1]; + let chunk = this.lastChunk; + do { + if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1]; + if (chunk.content.length) return chunk.content[chunk.content.length - 1]; + if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1]; + } while ((chunk = chunk.previous)); + if (this.intro.length) return this.intro[this.intro.length - 1]; + return ''; + } + + lastLine() { + let lineIndex = this.outro.lastIndexOf(n); + if (lineIndex !== -1) return this.outro.substr(lineIndex + 1); + let lineStr = this.outro; + let chunk = this.lastChunk; + do { + if (chunk.outro.length > 0) { + lineIndex = chunk.outro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.outro + lineStr; + } + + if (chunk.content.length > 0) { + lineIndex = chunk.content.lastIndexOf(n); + if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr; + lineStr = chunk.content + lineStr; + } + + if (chunk.intro.length > 0) { + lineIndex = chunk.intro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.intro + lineStr; + } + } while ((chunk = chunk.previous)); + lineIndex = this.intro.lastIndexOf(n); + if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr; + return this.intro + lineStr; + } + + slice(start = 0, end = this.original.length - this.offset) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + let result = ''; + + // find start chunk + let chunk = this.firstChunk; + while (chunk && (chunk.start > start || chunk.end <= start)) { + // found end chunk before start + if (chunk.start < end && chunk.end >= end) { + return result; + } + + chunk = chunk.next; + } + + if (chunk && chunk.edited && chunk.start !== start) + throw new Error(`Cannot use replaced character ${start} as slice start anchor.`); + + const startChunk = chunk; + while (chunk) { + if (chunk.intro && (startChunk !== chunk || chunk.start === start)) { + result += chunk.intro; + } + + const containsEnd = chunk.start < end && chunk.end >= end; + if (containsEnd && chunk.edited && chunk.end !== end) + throw new Error(`Cannot use replaced character ${end} as slice end anchor.`); + + const sliceStart = startChunk === chunk ? start - chunk.start : 0; + const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length; + + result += chunk.content.slice(sliceStart, sliceEnd); + + if (chunk.outro && (!containsEnd || chunk.end === end)) { + result += chunk.outro; + } + + if (containsEnd) { + break; + } + + chunk = chunk.next; + } + + return result; + } + + // TODO deprecate this? not really very useful + snip(start, end) { + const clone = this.clone(); + clone.remove(0, start); + clone.remove(end, clone.original.length); + + return clone; + } + + _split(index) { + if (this.byStart[index] || this.byEnd[index]) return; + + let chunk = this.lastSearchedChunk; + let previousChunk = chunk; + const searchForward = index > chunk.end; + + while (chunk) { + if (chunk.contains(index)) return this._splitChunk(chunk, index); + + chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start]; + + // Prevent infinite loop (e.g. via empty chunks, where start === end) + if (chunk === previousChunk) return; + + previousChunk = chunk; + } + } + + _splitChunk(chunk, index) { + if (chunk.edited && chunk.content.length) { + // zero-length edited chunks are a special case (overlapping replacements) + const loc = getLocator(this.original)(index); + throw new Error( + `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`, + ); + } + + const newChunk = chunk.split(index); + + this.byEnd[index] = chunk; + this.byStart[index] = newChunk; + this.byEnd[newChunk.end] = newChunk; + + if (chunk === this.lastChunk) this.lastChunk = newChunk; + + this.lastSearchedChunk = chunk; + return true; + } + + toString() { + let str = this.intro; + + let chunk = this.firstChunk; + while (chunk) { + str += chunk.toString(); + chunk = chunk.next; + } + + return str + this.outro; + } + + isEmpty() { + let chunk = this.firstChunk; + do { + if ( + (chunk.intro.length && chunk.intro.trim()) || + (chunk.content.length && chunk.content.trim()) || + (chunk.outro.length && chunk.outro.trim()) + ) + return false; + } while ((chunk = chunk.next)); + return true; + } + + length() { + let chunk = this.firstChunk; + let length = 0; + do { + length += chunk.intro.length + chunk.content.length + chunk.outro.length; + } while ((chunk = chunk.next)); + return length; + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimEndAborted(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + let chunk = this.lastChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimEnd(rx); + + // if chunk was trimmed, we have a new lastChunk + if (chunk.end !== end) { + if (this.lastChunk === chunk) { + this.lastChunk = chunk.next; + } + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.previous; + } while (chunk); + + return false; + } + + trimEnd(charType) { + this.trimEndAborted(charType); + return this; + } + trimStartAborted(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + let chunk = this.firstChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimStart(rx); + + if (chunk.end !== end) { + // special case... + if (chunk === this.lastChunk) this.lastChunk = chunk.next; + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.next; + } while (chunk); + + return false; + } + + trimStart(charType) { + this.trimStartAborted(charType); + return this; + } + + hasChanged() { + return this.original !== this.toString(); + } + + _replaceRegexp(searchValue, replacement) { + function getReplacement(match, str) { + if (typeof replacement === 'string') { + return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => { + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter + if (i === '$') return '$'; + if (i === '&') return match[0]; + const num = +i; + if (num < match.length) return match[+i]; + return `$${i}`; + }); + } else { + return replacement(...match, match.index, str, match.groups); + } + } + function matchAll(re, str) { + let match; + const matches = []; + while ((match = re.exec(str))) { + matches.push(match); + } + return matches; + } + if (searchValue.global) { + const matches = matchAll(searchValue, this.original); + matches.forEach((match) => { + if (match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + }); + } else { + const match = this.original.match(searchValue); + if (match && match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + } + return this; + } + + _replaceString(string, replacement) { + const { original } = this; + const index = original.indexOf(string); + + if (index !== -1) { + if (typeof replacement === 'function') { + replacement = replacement(string, index, original); + } + if (string !== replacement) { + this.overwrite(index, index + string.length, replacement); + } + } + + return this; + } + + replace(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceString(searchValue, replacement); + } + + return this._replaceRegexp(searchValue, replacement); + } + + _replaceAllString(string, replacement) { + const { original } = this; + const stringLength = string.length; + for ( + let index = original.indexOf(string); + index !== -1; + index = original.indexOf(string, index + stringLength) + ) { + const previous = original.slice(index, index + stringLength); + let _replacement = replacement; + if (typeof replacement === 'function') { + _replacement = replacement(previous, index, original); + } + if (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement); + } + + return this; + } + + replaceAll(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceAllString(searchValue, replacement); + } + + if (!searchValue.global) { + throw new TypeError( + 'MagicString.prototype.replaceAll called with a non-global RegExp argument', + ); + } + + return this._replaceRegexp(searchValue, replacement); + } +} + +const hasOwnProp = Object.prototype.hasOwnProperty; + +class Bundle { + constructor(options = {}) { + this.intro = options.intro || ''; + this.separator = options.separator !== undefined ? options.separator : '\n'; + this.sources = []; + this.uniqueSources = []; + this.uniqueSourceIndexByFilename = {}; + } + + addSource(source) { + if (source instanceof MagicString) { + return this.addSource({ + content: source, + filename: source.filename, + separator: this.separator, + }); + } + + if (!isObject(source) || !source.content) { + throw new Error( + 'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`', + ); + } + + ['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => { + if (!hasOwnProp.call(source, option)) source[option] = source.content[option]; + }); + + if (source.separator === undefined) { + // TODO there's a bunch of this sort of thing, needs cleaning up + source.separator = this.separator; + } + + if (source.filename) { + if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) { + this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length; + this.uniqueSources.push({ filename: source.filename, content: source.content.original }); + } else { + const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]]; + if (source.content.original !== uniqueSource.content) { + throw new Error(`Illegal source: same filename (${source.filename}), different contents`); + } + } + } + + this.sources.push(source); + return this; + } + + append(str, options) { + this.addSource({ + content: new MagicString(str), + separator: (options && options.separator) || '', + }); + + return this; + } + + clone() { + const bundle = new Bundle({ + intro: this.intro, + separator: this.separator, + }); + + this.sources.forEach((source) => { + bundle.addSource({ + filename: source.filename, + content: source.content.clone(), + separator: source.separator, + }); + }); + + return bundle; + } + + generateDecodedMap(options = {}) { + const names = []; + let x_google_ignoreList = undefined; + this.sources.forEach((source) => { + Object.keys(source.content.storedNames).forEach((name) => { + if (!~names.indexOf(name)) names.push(name); + }); + }); + + const mappings = new Mappings(options.hires); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.sources.forEach((source, i) => { + if (i > 0) { + mappings.advance(this.separator); + } + + const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1; + const magicString = source.content; + const locate = getLocator(magicString.original); + + if (magicString.intro) { + mappings.advance(magicString.intro); + } + + magicString.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (source.filename) { + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk( + sourceIndex, + chunk, + magicString.original, + loc, + magicString.sourcemapLocations, + ); + } + } else { + mappings.advance(chunk.content); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (magicString.outro) { + mappings.advance(magicString.outro); + } + + if (source.ignoreList && sourceIndex !== -1) { + if (x_google_ignoreList === undefined) { + x_google_ignoreList = []; + } + x_google_ignoreList.push(sourceIndex); + } + }); + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: this.uniqueSources.map((source) => { + return options.file ? getRelativePath(options.file, source.filename) : source.filename; + }), + sourcesContent: this.uniqueSources.map((source) => { + return options.includeContent ? source.content : null; + }), + names, + mappings: mappings.raw, + x_google_ignoreList, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + getIndentString() { + const indentStringCounts = {}; + + this.sources.forEach((source) => { + const indentStr = source.content._getRawIndentString(); + + if (indentStr === null) return; + + if (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0; + indentStringCounts[indentStr] += 1; + }); + + return ( + Object.keys(indentStringCounts).sort((a, b) => { + return indentStringCounts[a] - indentStringCounts[b]; + })[0] || '\t' + ); + } + + indent(indentStr) { + if (!arguments.length) { + indentStr = this.getIndentString(); + } + + if (indentStr === '') return this; // noop + + let trailingNewline = !this.intro || this.intro.slice(-1) === '\n'; + + this.sources.forEach((source, i) => { + const separator = source.separator !== undefined ? source.separator : this.separator; + const indentStart = trailingNewline || (i > 0 && /\r?\n$/.test(separator)); + + source.content.indent(indentStr, { + exclude: source.indentExclusionRanges, + indentStart, //: trailingNewline || /\r?\n$/.test( separator ) //true///\r?\n/.test( separator ) + }); + + trailingNewline = source.content.lastChar() === '\n'; + }); + + if (this.intro) { + this.intro = + indentStr + + this.intro.replace(/^[^\n]/gm, (match, index) => { + return index > 0 ? indentStr + match : match; + }); + } + + return this; + } + + prepend(str) { + this.intro = str + this.intro; + return this; + } + + toString() { + const body = this.sources + .map((source, i) => { + const separator = source.separator !== undefined ? source.separator : this.separator; + const str = (i > 0 ? separator : '') + source.content.toString(); + + return str; + }) + .join(''); + + return this.intro + body; + } + + isEmpty() { + if (this.intro.length && this.intro.trim()) return false; + if (this.sources.some((source) => !source.content.isEmpty())) return false; + return true; + } + + length() { + return this.sources.reduce( + (length, source) => length + source.content.length(), + this.intro.length, + ); + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimStart(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + this.intro = this.intro.replace(rx, ''); + + if (!this.intro) { + let source; + let i = 0; + + do { + source = this.sources[i++]; + if (!source) { + break; + } + } while (!source.content.trimStartAborted(charType)); + } + + return this; + } + + trimEnd(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + let source; + let i = this.sources.length - 1; + + do { + source = this.sources[i--]; + if (!source) { + this.intro = this.intro.replace(rx, ''); + break; + } + } while (!source.content.trimEndAborted(charType)); + + return this; + } +} + +MagicString.Bundle = Bundle; +MagicString.SourceMap = SourceMap; +MagicString.default = MagicString; // work around TypeScript bug https://github.com/Rich-Harris/magic-string/pull/121 + +module.exports = MagicString; +//# sourceMappingURL=magic-string.cjs.js.map diff --git a/node_modules/magic-string/dist/magic-string.cjs.js.map b/node_modules/magic-string/dist/magic-string.cjs.js.map new file mode 100644 index 0000000..685274f --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.cjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"magic-string.cjs.js","sources":["../src/BitSet.js","../src/Chunk.js","../src/SourceMap.js","../src/utils/guessIndent.js","../src/utils/getRelativePath.js","../src/utils/isObject.js","../src/utils/getLocator.js","../src/utils/Mappings.js","../src/MagicString.js","../src/Bundle.js","../src/index-legacy.js"],"sourcesContent":["export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n","export default function guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n","export default function getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n","export default function getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendLeft');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendLeft');\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendRight');\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tif (DEBUG) this.stats.time('move');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\n\t\tif (DEBUG) this.stats.timeEnd('move');\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tif (DEBUG) this.stats.time('overwrite');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('overwrite');\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('remove');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('remove');\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('reset');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('reset');\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tif (DEBUG) this.stats.time('_split');\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif (DEBUG) this.stats.timeEnd('_split');\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","import MagicString from './MagicString.js';\nimport SourceMap from './SourceMap.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nexport default class Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n","import MagicString from './MagicString.js';\nimport Bundle from './Bundle.js';\nimport SourceMap from './SourceMap.js';\n\nMagicString.Bundle = Bundle;\nMagicString.SourceMap = SourceMap;\nMagicString.default = MagicString; // work around TypeScript bug https://github.com/Rich-Harris/magic-string/pull/121\n\nexport default MagicString;\n"],"names":["encode"],"mappings":";;;;AAAe,MAAM,MAAM,CAAC;AAC5B,CAAC,WAAW,CAAC,GAAG,EAAE;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,YAAY,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;AAC3D,CAAC;;AAED,CAAC,GAAG,CAAC,CAAC,EAAE;AACR,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACpC,CAAC;;AAED,CAAC,GAAG,CAAC,CAAC,EAAE;AACR,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AACD;;ACZe,MAAM,KAAK,CAAC;AAC3B,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;AAClC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO;;AAEzB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;AACjB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEjB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK;;AAErB,EAMS;AACT,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI;AACvB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;AACnB,EAAE;AACF,CAAC;;AAED,CAAC,UAAU,CAAC,OAAO,EAAE;AACrB,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;AACvB,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO;AACnC,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;;AAE9D,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1B,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1B,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAClC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;;AAE5B,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;AAC/C,CAAC;;AAED,CAAC,QAAQ,CAAC,EAAE,EAAE;AACd,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,EAAE,CAAC,KAAK,CAAC;AACZ,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;AACF,CAAC;;AAED,CAAC,YAAY,CAAC,EAAE,EAAE;AAClB,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,EAAE,CAAC,KAAK,CAAC;AACZ,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ;AACzB,EAAE;AACF,CAAC;;AAED,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;AACvC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAClB,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAClB,EAAE;AACF,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;;AAE5B,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;;AAEpB,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,CAAC;;AAED,CAAC,YAAY,CAAC,OAAO,EAAE;AACvB,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;AACjB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;AACjB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC/B,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK;AACzB,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK;AACtB,EAAE;AACF,CAAC;;AAED,CAAC,KAAK,CAAC,KAAK,EAAE;AACd,EAAE,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK;;AAEvC,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3D,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;;AAEvD,EAAE,IAAI,CAAC,QAAQ,GAAG,cAAc;;AAEhC,EAAE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;AAC5D,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC7B,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEjB,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK;;AAElB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AAC3B,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACpB,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc;AAChC,EAAE;;AAEF,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC3B,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACtD,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ;;AAEtB,EAAE,OAAO,QAAQ;AACjB,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;AAC/C,CAAC;;AAED,CAAC,OAAO,CAAC,EAAE,EAAE;AACb,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;AAE9C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;AACrE,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB;AACA,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AAC7C,IAAI;AACJ,GAAG;AACH,GAAG,OAAO,IAAI;AACd,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;;AAEjC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1C,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;AACrC,EAAE;AACF,CAAC;;AAED,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;AAE9C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB;AACA,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACjD,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;AAClC,GAAG;AACH,GAAG,OAAO,IAAI;AACd,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;;AAEjC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1C,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;AACrC,EAAE;AACF,CAAC;AACD;;ACrLA,SAAS,OAAO,GAAG;AACnB,CAAC,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AACjF,EAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAC1C,EAAE,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC9D,CAAC,CAAC,MAAM;AACR,EAAE,OAAO,MAAM;AACf,GAAG,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;AAC7F,EAAE,CAAC;AACH,CAAC;AACD;;AAEA,MAAM,IAAI,iBAAiB,OAAO,EAAE;;AAErB,MAAM,SAAS,CAAC;AAC/B,CAAC,WAAW,CAAC,UAAU,EAAE;AACzB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;AAC7B,EAAE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;AACnC,EAAE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc;AACjD,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK;AAC/B,EAAE,IAAI,CAAC,QAAQ,GAAGA,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC7C,EAAE,IAAI,OAAO,UAAU,CAAC,mBAAmB,KAAK,WAAW,EAAE;AAC7D,GAAG,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB;AAC5D,EAAE;AACF,EAAE,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE;AACjD,GAAG,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;AACpC,EAAE;AACF,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC7B,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,OAAO,6CAA6C,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9E,CAAC;AACD;;ACvCe,SAAS,WAAW,CAAC,IAAI,EAAE;AAC1C,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;AAE/B,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE3D,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,EAAE,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACrC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED;AACA,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK;AAClD,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACjD,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;AACtC,CAAC,CAAC,EAAE,QAAQ,CAAC;;AAEb,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC;;ACxBe,SAAS,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE;AAClD,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;;AAElC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;;AAEjB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACrC,EAAE,SAAS,CAAC,KAAK,EAAE;AACnB,EAAE,OAAO,CAAC,KAAK,EAAE;AACjB,CAAC;;AAED,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;AACvB,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM;AAC1B,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;AACjC,CAAC;;AAED,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C;;ACjBA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;;AAE3B,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB;AAClD;;ACJe,SAAS,UAAU,CAAC,MAAM,EAAE;AAC3C,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC,CAAC,MAAM,WAAW,GAAG,EAAE;;AAEvB,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AACpC,CAAC;;AAED,CAAC,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE;AAC/B,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM;AAC5B,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;AAChB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,GAAG,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;AAC/B,IAAI,CAAC,GAAG,CAAC;AACT,GAAG,CAAC,MAAM;AACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACb,GAAG;AACH,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AACpB,EAAE,MAAM,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;AAC1C,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;AACzB,CAAC,CAAC;AACF;;ACxBA,MAAM,SAAS,GAAG,IAAI;;AAEP,MAAM,QAAQ,CAAC;AAC9B,CAAC,WAAW,CAAC,KAAK,EAAE;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC;AAC5B,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC9B,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE;AACf,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;AAC1D,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,CAAC;;AAED,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,GAAG,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;AACnD,GAAG,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,GAAG,IAAI,sBAAsB,GAAG,EAAE;AAClC;AACA;AACA,GAAG,OAAO,cAAc,IAAI,CAAC,IAAI,qBAAqB,GAAG,cAAc,EAAE;AACzE,IAAI,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;AACjF,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE;AACxB,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,IAAI;AACJ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;AAElC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC5D,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;;AAEhC,IAAI,sBAAsB,GAAG,cAAc;AAC3C,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC;AAC9D,GAAG;;AAEH,GAAG,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;AAChF,GAAG,IAAI,SAAS,IAAI,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3B,GAAG;AACH,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEjC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;AAC1D,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACxB,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,CAAC;;AAED,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACzE,EAAE,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK;AACrC,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB;AACA,EAAE,IAAI,mBAAmB,GAAG,KAAK;;AAEjC,EAAE,OAAO,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAE;AACxC,GAAG,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;AAC7C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;AACjB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAClB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC5D,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAChC,IAAI,KAAK,GAAG,IAAI;AAChB,IAAI,mBAAmB,GAAG,KAAK;AAC/B,GAAG,CAAC,MAAM;AACV,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC1E,KAAK,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;;AAElF,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACpC;AACA,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;AACvD;AACA,OAAO,IAAI,CAAC,mBAAmB,EAAE;AACjC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,QAAQ,mBAAmB,GAAG,IAAI;AAClC,OAAO;AACP,MAAM,CAAC,MAAM;AACb;AACA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,OAAO,mBAAmB,GAAG,KAAK;AAClC,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACpC,KAAK;AACL,IAAI;;AAEJ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;AACnB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC;AACjC,IAAI,KAAK,GAAG,KAAK;AACjB,GAAG;;AAEH,GAAG,iBAAiB,IAAI,CAAC;AACzB,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,CAAC;;AAED,CAAC,OAAO,CAAC,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,GAAG,EAAE;;AAEZ,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;;AAE/B,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC5D,GAAG;AACH,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC/B,EAAE;;AAEF,EAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AAC5D,CAAC;AACD;;ACtGA,MAAM,CAAC,GAAG,IAAI;;AAEd,MAAM,MAAM,GAAG;AACf,CAAC,UAAU,EAAE,KAAK;AAClB,CAAC,WAAW,EAAE,KAAK;AACnB,CAAC,SAAS,EAAE,KAAK;AACjB,CAAC;;AAEc,MAAM,WAAW,CAAC;AACjC,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE;AACnC,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;AAEnD,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAChC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAC9C,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/C,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9C,GAAG,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AACtD,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACzC,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;AACxD,GAAG,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,qBAAqB,EAAE;AAClF,GAAG,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,EAAE;AAC9D,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AAC7C,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AAClD,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;AAC5D,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AACzD,GAAG,CAAC;;AAMJ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK;AACnC,CAAC;;AAED,CAAC,oBAAoB,CAAC,IAAI,EAAE;AAC5B,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,CAAC;;AAED,CAAC,MAAM,CAAC,OAAO,EAAE;AACjB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;;AAExF,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;AACvB,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEjC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;AAC5B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO;AACxB,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEnC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;AAC7B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO;AACxB,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;AAEjG,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU;AACrC,EAAE,IAAI,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;;AAE1F,EAAE,OAAO,aAAa,EAAE;AACxB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW;AAClD,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW;;AAE9C,GAAG,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI;AAC/C,GAAG,MAAM,eAAe,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,EAAE;;AAEzE,GAAG,IAAI,eAAe,EAAE;AACxB,IAAI,WAAW,CAAC,IAAI,GAAG,eAAe;AACtC,IAAI,eAAe,CAAC,QAAQ,GAAG,WAAW;;AAE1C,IAAI,WAAW,GAAG,eAAe;AACjC,GAAG;;AAEH,GAAG,aAAa,GAAG,iBAAiB;AACpC,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,GAAG,WAAW;;AAEhC,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAClC,GAAG,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;AACpE,EAAE;;AAEF,EAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;;AAEjE,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC3B,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;;AAE3B,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC7B,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;AAEzB,EAAE,MAAM,WAAW,GAAG,CAAC;AACvB,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;AAE9C,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAE1C,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,EAAE;;AAEF,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK;AACtC,GAAG,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;AAElC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;AAExD,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACrB,IAAI,QAAQ,CAAC,OAAO;AACpB,KAAK,WAAW;AAChB,KAAK,KAAK,CAAC,OAAO;AAClB,KAAK,GAAG;AACR,KAAK,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;AACzD,KAAK;AACL,GAAG,CAAC,MAAM;AACV,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAC9F,GAAG;;AAEH,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACxD,EAAE,CAAC,CAAC;;AAEJ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,EAAE;;AAEF,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACrE,GAAG,OAAO,EAAE;AACZ,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE;AAC7F,IAAI;AACJ,GAAG,cAAc,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS;AACvE,GAAG,KAAK;AACR,GAAG,QAAQ,EAAE,QAAQ,CAAC,GAAG;AACzB,GAAG,mBAAmB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS;AACnE,GAAG;AACH,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;;AAED,CAAC,gBAAgB,GAAG;AACpB,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACpC,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9C,EAAE;AACF,CAAC;;AAED,CAAC,mBAAmB,GAAG;AACvB,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,SAAS;AACvB,CAAC;;AAED,CAAC,eAAe,GAAG;AACnB,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS;AACxD,CAAC;;AAED,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,EAAE,MAAM,OAAO,GAAG,YAAY;;AAE9B,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3B,GAAG,OAAO,GAAG,SAAS;AACtB,GAAG,SAAS,GAAG,SAAS;AACxB,EAAE;;AAEF,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/B,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC1B,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI;AACrC,EAAE;;AAEF,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;AAEpC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;AAEzB;AACA,EAAE,MAAM,UAAU,GAAG,EAAE;;AAEvB,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;AACvB,GAAG,MAAM,UAAU;AACnB,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO;AAChF,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzD,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;AACzB,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE;;AAEF,EAAE,IAAI,yBAAyB,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK;AAC/D,EAAE,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAC9B,GAAG,IAAI,yBAAyB,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,GAAG,yBAAyB,GAAG,IAAI;AACnC,GAAG,OAAO,KAAK;AACf,EAAE,CAAC;;AAEH,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAEpD,EAAE,IAAI,SAAS,GAAG,CAAC;AACnB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;;AAE7B,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;;AAExB,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACrB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAChC,KAAK,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAE7D,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;AAClF,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,MAAM;AACV,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK;;AAE3B,IAAI,OAAO,SAAS,GAAG,GAAG,EAAE;AAC5B,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AACjC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAE3C,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AACzB,OAAO,yBAAyB,GAAG,IAAI;AACvC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,yBAAyB,EAAE;AAC7D,OAAO,yBAAyB,GAAG,KAAK;;AAExC,OAAO,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE;AACtC,QAAQ,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;AACrC,OAAO,CAAC,MAAM;AACd,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;AAC1C,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI;AAC1B,QAAQ,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;AACrC,OAAO;AACP,MAAM;AACN,KAAK;;AAEL,KAAK,SAAS,IAAI,CAAC;AACnB,IAAI;AACJ,GAAG;;AAEH,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG;AACxB,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAEpD,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,GAAG;AACV,EAAE,MAAM,IAAI,KAAK;AACjB,GAAG,iFAAiF;AACpF,GAAG;AACH,CAAC;;AAED,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5B,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC1B,GAAG,OAAO,CAAC,IAAI;AACf,IAAI,oFAAoF;AACxF,IAAI;AACJ,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;AAC3B,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACxC,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,GAAG,OAAO,CAAC,IAAI;AACf,IAAI,uFAAuF;AAC3F,IAAI;AACJ,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI;AAC5B,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,CAAC;;AAED,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACzB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AACzB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;;AAI9F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAClB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAE9B,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ;AAChC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI;;AAE5B,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACtC,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AACvD,EAAE,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;AAE/D,EAAE,IAAI,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,QAAQ;AACtC,EAAE,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO;;AAE3C,EAAE,IAAI,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK;AACnC,EAAE,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;;AAExC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;AAClD,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;AAClC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI;AAC7B,EAAE;;AAEF,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,IAAI;;AAE9B,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK;AACvC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI;AAGtC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;AACzC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC1F,CAAC;;AAED,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;AACtC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;;AAE9F,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AACzE,EAAE,IAAI,KAAK,KAAK,GAAG;AACnB,GAAG,MAAM,IAAI,KAAK;AAClB,IAAI,+EAA+E;AACnF,IAAI;;AAIJ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElB,EAAE,IAAI,OAAO,KAAK,IAAI,EAAE;AACxB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC1B,IAAI,OAAO,CAAC,IAAI;AAChB,KAAK,+HAA+H;AACpI,KAAK;AACL,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI;AAC3B,GAAG;;AAEH,GAAG,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAChC,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK;AACrE,EAAE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK;;AAErE,EAAE,IAAI,SAAS,EAAE;AACjB,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACnD,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;AACrD,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,CAAC;AACL,EAAE;;AAEF,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAE9B,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,IAAI,KAAK,GAAG,KAAK;AACpB,GAAG,OAAO,KAAK,KAAK,IAAI,EAAE;AAC1B,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAChD,KAAK,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAC7D,IAAI;AACJ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI;AACtB,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AACzB,GAAG;;AAEH,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC;AAC7C,EAAE,CAAC,MAAM;AACT;AACA,GAAG,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;;AAEtE;AACA,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ;AACvB,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI;AAC3B,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,OAAO,EAAE;AAClB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;;AAExF,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEjC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;AAC7B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACpC,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;AAC9B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEnC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;AAC9B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACpC,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC5F,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;AAIpE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEjC,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;AACnB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;AACnB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;;AAEjB,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3D,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACnB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC5F,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;AAIpE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEjC,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,KAAK,CAAC,KAAK,EAAE;;AAEhB,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3D,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;AAC5B,EAAE,GAAG;AACL,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3E,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,QAAQ;AAClC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,EAAE,OAAO,EAAE;AACX,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;AAC/D,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK;AAC1B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;AAC5B,EAAE,GAAG;AACL,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AAC5E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO;AACnC,GAAG;;AAEH,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AAC9E,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO;AACrC,GAAG;;AAEH,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AAC5E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO;AACnC,GAAG;AACH,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,QAAQ;AAClC,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AACzE,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,OAAO;AAC7B,CAAC;;AAED,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5D,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,MAAM,GAAG,EAAE;;AAEjB;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,OAAO,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/D;AACA,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE;AAC9C,IAAI,OAAO,MAAM;AACjB,GAAG;;AAEH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;AACpD,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;;AAEnF,EAAE,MAAM,UAAU,GAAG,KAAK;AAC1B,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;AACvE,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK;AACzB,GAAG;;AAEH,GAAG,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG;AAC5D,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;AACvD,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;;AAEhF,GAAG,MAAM,UAAU,GAAG,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AACpE,GAAG,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;;AAE/F,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;;AAEtD,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;AAC3D,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK;AACzB,GAAG;;AAEH,GAAG,IAAI,WAAW,EAAE;AACpB,IAAI;AACJ,GAAG;;AAEH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;AAED;AACA,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;AAClB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC5B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;AACxB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;;AAE1C,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;;AAIhD,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB;AACpC,EAAE,IAAI,aAAa,GAAG,KAAK;AAC3B,EAAE,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG;;AAEzC,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;;AAEnE,GAAG,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;AAE5E;AACA,GAAG,IAAI,KAAK,KAAK,aAAa,EAAE;;AAEhC,GAAG,aAAa,GAAG,KAAK;AACxB,EAAE;AACF,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;AAC3B,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAC5C;AACA,GAAG,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAC/C,GAAG,MAAM,IAAI,KAAK;AAClB,IAAI,CAAC,mDAAmD,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzG,IAAI;AACJ,EAAE;;AAEF,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;AAErC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ;AAChC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ;;AAErC,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,QAAQ;;AAEzD,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAEhC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK;;AAEtB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC1B,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK;AACzB,CAAC;;AAED,CAAC,OAAO,GAAG;AACX,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,GAAG;AACL,GAAG;AACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7C,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAClD,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7C;AACA,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,IAAI;AAC9B,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,GAAG;AACV,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,GAAG;AACL,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;AAC3E,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,IAAI;AAC9B,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,CAAC,SAAS,GAAG;AACb,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9B,CAAC;;AAED,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,CAAC;;AAED,CAAC,cAAc,CAAC,QAAQ,EAAE;AAC1B,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC;;AAEnD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;;AAE5B,EAAE,GAAG;AACL,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACxB,GAAG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;;AAEpC;AACA,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAClC,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;AAChC,IAAI;;AAEJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI;AAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;AAC3C,GAAG;;AAEH,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI;AAC3B,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ;AACzB,EAAE,CAAC,QAAQ,KAAK;;AAEhB,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC/B,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAC5B,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;;AAExD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;;AAE7B,EAAE,GAAG;AACL,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACxB,GAAG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;;AAEtC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC1B;AACA,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;;AAE7D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI;AAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;AAC3C,GAAG;;AAEH,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI;AAC3B,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE,CAAC,QAAQ,KAAK;;AAEhB,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrB,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACjC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,UAAU,GAAG;AACd,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC1C,CAAC;;AAED,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE;AAC1C,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;AACtC,GAAG,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACxC,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;AAC1D;AACA,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,GAAG;AAC9B,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;AACnC,KAAK,MAAM,GAAG,GAAG,CAAC,CAAC;AACnB,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,CAAC,CAAC;AACN,GAAG,CAAC,MAAM;AACV,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;AAChE,GAAG;AACH,EAAE;AACF,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;AAC7B,GAAG,IAAI,KAAK;AACZ,GAAG,MAAM,OAAO,GAAG,EAAE;AACrB,GAAG,QAAQ,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,GAAG;AACH,GAAG,OAAO,OAAO;AACjB,EAAE;AACF,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;AAC1B,GAAG,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvD,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC9B,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;AAC7B,KAAK,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC7D,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;AAC7E,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,MAAM;AACT,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;AACjD,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;AACrC,IAAI,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5D,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;AAClC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;AAC5E,IAAI;AACJ,GAAG;AACH,EAAE;AACF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;AACrC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;AAC3B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;;AAExC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;AACpB,GAAG,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC1C,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;AACtD,GAAG;AACH,GAAG,IAAI,MAAM,KAAK,WAAW,EAAE;AAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;AAC7D,GAAG;AACH,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE;AACnC,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACvC,GAAG,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;AACvD,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,CAAC;;AAED,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE;AACxC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;AAC3B,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM;AACpC,EAAE;AACF,GAAG,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;AACvC,GAAG,KAAK,KAAK,EAAE;AACf,GAAG,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,YAAY;AACxD,IAAI;AACJ,GAAG,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC;AAC/D,GAAG,IAAI,YAAY,GAAG,WAAW;AACjC,GAAG,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC1C,IAAI,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;AACzD,GAAG;AACH,GAAG,IAAI,QAAQ,KAAK,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE,YAAY,CAAC;AAC3F,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE;AACtC,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACvC,GAAG,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;AAC1D,EAAE;;AAEF,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC3B,GAAG,MAAM,IAAI,SAAS;AACtB,IAAI,2EAA2E;AAC/E,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,CAAC;AACD;;AC94BA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;;AAEnC,MAAM,MAAM,CAAC;AAC5B,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC3B,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE;AAClC,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI;AAC7E,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE;AACnB,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE;AACzB,EAAE,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACvC,CAAC;;AAED,CAAC,SAAS,CAAC,MAAM,EAAE;AACnB,EAAE,IAAI,MAAM,YAAY,WAAW,EAAE;AACrC,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC;AACzB,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC7B,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS;AAC7B,IAAI,CAAC;AACL,EAAE;;AAEF,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC5C,GAAG,MAAM,IAAI,KAAK;AAClB,IAAI,sIAAsI;AAC1I,IAAI;AACJ,EAAE;;AAEF,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACvF,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAChF,EAAE,CAAC,CAAC;;AAEJ,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;AACtC;AACA,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACpC,EAAE;;AAEF,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;AACvB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC5E,IAAI,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;AACjF,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5F,GAAG,CAAC,MAAM;AACV,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9F,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,OAAO,EAAE;AAC1D,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC9F,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,SAAS,CAAC;AACjB,GAAG,OAAO,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;AAChC,GAAG,SAAS,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,EAAE;AAClD,GAAG,CAAC;;AAEJ,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AAC5B,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,GAAG,SAAS,EAAE,IAAI,CAAC,SAAS;AAC5B,GAAG,CAAC;;AAEJ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnC,GAAG,MAAM,CAAC,SAAS,CAAC;AACpB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC7B,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AACnC,IAAI,SAAS,EAAE,MAAM,CAAC,SAAS;AAC/B,IAAI,CAAC;AACL,EAAE,CAAC,CAAC;;AAEJ,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,CAAC,kBAAkB,CAAC,OAAO,GAAG,EAAE,EAAE;AAClC,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,IAAI,mBAAmB,GAAG,SAAS;AACrC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7D,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;AAE9C,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;AACtC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AACd,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,GAAG;;AAEH,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC/F,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO;AACrC,GAAG,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;;AAElD,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;AAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,GAAG;;AAEH,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK;AAC9C,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEnC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEzD,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;AACzB,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,MAAM,QAAQ,CAAC,OAAO;AACtB,OAAO,WAAW;AAClB,OAAO,KAAK,CAAC,OAAO;AACpB,OAAO,GAAG;AACV,OAAO,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC3D,OAAO;AACP,KAAK,CAAC,MAAM;AACZ,MAAM,QAAQ,CAAC,gBAAgB;AAC/B,OAAO,WAAW;AAClB,OAAO,KAAK;AACZ,OAAO,WAAW,CAAC,QAAQ;AAC3B,OAAO,GAAG;AACV,OAAO,WAAW,CAAC,kBAAkB;AACrC,OAAO;AACP,KAAK;AACL,IAAI,CAAC,MAAM;AACX,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AACpC,IAAI;;AAEJ,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACzD,GAAG,CAAC,CAAC;;AAEL,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;AAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,GAAG;;AAEH,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,WAAW,KAAK,EAAE,EAAE;AAChD,IAAI,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAC3C,KAAK,mBAAmB,GAAG,EAAE;AAC7B,IAAI;AACJ,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,GAAG;AACH,EAAE,CAAC,CAAC;;AAEJ,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACrE,GAAG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AAC/C,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ;AAC1F,GAAG,CAAC,CAAC;AACL,GAAG,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACtD,IAAI,OAAO,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI;AACzD,GAAG,CAAC,CAAC;AACL,GAAG,KAAK;AACR,GAAG,QAAQ,EAAE,QAAQ,CAAC,GAAG;AACzB,GAAG,mBAAmB;AACtB,GAAG;AACH,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;;AAED,CAAC,eAAe,GAAG;AACnB,EAAE,MAAM,kBAAkB,GAAG,EAAE;;AAE/B,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnC,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;;AAEzD,GAAG,IAAI,SAAS,KAAK,IAAI,EAAE;;AAE3B,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;AACxE,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;AACrC,EAAE,CAAC,CAAC;;AAEJ,EAAE;AACF,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAClD,IAAI,OAAO,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AACZ;AACA,CAAC;;AAED,CAAC,MAAM,CAAC,SAAS,EAAE;AACnB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzB,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AACrC,EAAE;;AAEF,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;AAEpC,EAAE,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI;;AAEpE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;AACtC,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACvF,GAAG,MAAM,WAAW,GAAG,eAAe,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAE7E,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE;AACpC,IAAI,OAAO,EAAE,MAAM,CAAC,qBAAqB;AACzC,IAAI,WAAW;AACf,IAAI,CAAC;;AAEL,GAAG,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI;AACvD,EAAE,CAAC,CAAC;;AAEJ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,IAAI,CAAC,KAAK;AACb,IAAI,SAAS;AACb,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;AACrD,KAAK,OAAO,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK;AACjD,IAAI,CAAC,CAAC;AACN,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK;AAC/B,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;AACvB,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACxF,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;;AAEpE,IAAI,OAAO,GAAG;AACd,GAAG,CAAC;AACJ,IAAI,IAAI,CAAC,EAAE,CAAC;;AAEZ,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI;AAC1B,CAAC;;AAED,CAAC,OAAO,GAAG;AACX,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,KAAK;AAC1D,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK;AAC5E,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,GAAG;AACV,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;AAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;AACvD,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AACpB,GAAG;AACH,CAAC;;AAED,CAAC,SAAS,GAAG;AACb,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9B,CAAC;;AAED,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,CAAC;;AAED,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;AAEzC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,GAAG,IAAI,MAAM;AACb,GAAG,IAAI,CAAC,GAAG,CAAC;;AAEZ,GAAG,GAAG;AACN,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACtD,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnB,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC;;AAEnD,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;AAEjC,EAAE,GAAG;AACL,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC7B,GAAG,IAAI,CAAC,MAAM,EAAE;AAChB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;;AAEnD,EAAE,OAAO,IAAI;AACb,CAAC;AACD;;ACpSA,WAAW,CAAC,MAAM,GAAG,MAAM;AAC3B,WAAW,CAAC,SAAS,GAAG,SAAS;AACjC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/magic-string/dist/magic-string.es.d.mts b/node_modules/magic-string/dist/magic-string.es.d.mts new file mode 100644 index 0000000..76cc537 --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.es.d.mts @@ -0,0 +1,289 @@ +export interface BundleOptions { + intro?: string; + separator?: string; +} + +export interface SourceMapOptions { + /** + * Whether the mapping should be high-resolution. + * Hi-res mappings map every single character, meaning (for example) your devtools will always + * be able to pinpoint the exact location of function calls and so on. + * With lo-res mappings, devtools may only be able to identify the correct + * line - but they're quicker to generate and less bulky. + * You can also set `"boundary"` to generate a semi-hi-res mappings segmented per word boundary + * instead of per character, suitable for string semantics that are separated by words. + * If sourcemap locations have been specified with s.addSourceMapLocation(), they will be used here. + */ + hires?: boolean | 'boundary'; + /** + * The filename where you plan to write the sourcemap. + */ + file?: string; + /** + * The filename of the file containing the original source. + */ + source?: string; + /** + * Whether to include the original content in the map's sourcesContent array. + */ + includeContent?: boolean; +} + +export type SourceMapSegment = + | [number] + | [number, number, number, number] + | [number, number, number, number, number]; + +export interface DecodedSourceMap { + file: string; + sources: string[]; + sourcesContent?: string[]; + names: string[]; + mappings: SourceMapSegment[][]; + x_google_ignoreList?: number[]; +} + +export class SourceMap { + constructor(properties: DecodedSourceMap); + + version: number; + file: string; + sources: string[]; + sourcesContent?: string[]; + names: string[]; + mappings: string; + x_google_ignoreList?: number[]; + debugId?: string; + + /** + * Returns the equivalent of `JSON.stringify(map)` + */ + toString(): string; + /** + * Returns a DataURI containing the sourcemap. Useful for doing this sort of thing: + * `generateMap(options?: SourceMapOptions): SourceMap;` + */ + toUrl(): string; +} + +export class Bundle { + constructor(options?: BundleOptions); + /** + * Adds the specified source to the bundle, which can either be a `MagicString` object directly, + * or an options object that holds a magic string `content` property and optionally provides + * a `filename` for the source within the bundle, as well as an optional `ignoreList` hint + * (which defaults to `false`). The `filename` is used when constructing the source map for the + * bundle, to identify this `source` in the source map's `sources` field. The `ignoreList` hint + * is used to populate the `x_google_ignoreList` extension field in the source map, which is a + * mechanism for tools to signal to debuggers that certain sources should be ignored by default + * (depending on user preferences). + */ + addSource( + source: MagicString | { filename?: string; content: MagicString; ignoreList?: boolean }, + ): this; + append(str: string, options?: BundleOptions): this; + clone(): this; + generateMap( + options?: SourceMapOptions, + ): Omit<SourceMap, 'sourcesContent'> & { sourcesContent: Array<string | null> }; + generateDecodedMap( + options?: SourceMapOptions, + ): Omit<DecodedSourceMap, 'sourcesContent'> & { sourcesContent: Array<string | null> }; + getIndentString(): string; + indent(indentStr?: string): this; + indentExclusionRanges: ExclusionRange | Array<ExclusionRange>; + prepend(str: string): this; + toString(): string; + trimLines(): this; + trim(charType?: string): this; + trimStart(charType?: string): this; + trimEnd(charType?: string): this; + isEmpty(): boolean; + length(): number; +} + +export type ExclusionRange = [number, number]; + +export interface MagicStringOptions { + filename?: string; + indentExclusionRanges?: ExclusionRange | Array<ExclusionRange>; + offset?: number; +} + +export interface IndentOptions { + exclude?: ExclusionRange | Array<ExclusionRange>; + indentStart?: boolean; +} + +export interface OverwriteOptions { + storeName?: boolean; + contentOnly?: boolean; +} + +export interface UpdateOptions { + storeName?: boolean; + overwrite?: boolean; +} + +export default class MagicString { + constructor(str: string, options?: MagicStringOptions); + /** + * Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is false. + */ + addSourcemapLocation(char: number): void; + /** + * Appends the specified content to the end of the string. + */ + append(content: string): this; + /** + * Appends the specified content at the index in the original string. + * If a range *ending* with index is subsequently moved, the insert will be moved with it. + * See also `s.prependLeft(...)`. + */ + appendLeft(index: number, content: string): this; + /** + * Appends the specified content at the index in the original string. + * If a range *starting* with index is subsequently moved, the insert will be moved with it. + * See also `s.prependRight(...)`. + */ + appendRight(index: number, content: string): this; + /** + * Does what you'd expect. + */ + clone(): this; + /** + * Generates a version 3 sourcemap. + */ + generateMap(options?: SourceMapOptions): SourceMap; + /** + * Generates a sourcemap object with raw mappings in array form, rather than encoded as a string. + * Useful if you need to manipulate the sourcemap further, but most of the time you will use `generateMap` instead. + */ + generateDecodedMap(options?: SourceMapOptions): DecodedSourceMap; + getIndentString(): string; + + /** + * Prefixes each line of the string with prefix. + * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character. + */ + indent(options?: IndentOptions): this; + /** + * Prefixes each line of the string with prefix. + * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character. + * + * The options argument can have an exclude property, which is an array of [start, end] character ranges. + * These ranges will be excluded from the indentation - useful for (e.g.) multiline strings. + */ + indent(indentStr?: string, options?: IndentOptions): this; + indentExclusionRanges: ExclusionRange | Array<ExclusionRange>; + + /** + * Moves the characters from `start` and `end` to `index`. + */ + move(start: number, end: number, index: number): this; + /** + * Replaces the characters from `start` to `end` with `content`, along with the appended/prepended content in + * that range. The same restrictions as `s.remove()` apply. + * + * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored + * for later inclusion in a sourcemap's names array — and a contentOnly property which determines whether only + * the content is overwritten, or anything that was appended/prepended to the range as well. + * + * It may be preferred to use `s.update(...)` instead if you wish to avoid overwriting the appended/prepended content. + */ + overwrite( + start: number, + end: number, + content: string, + options?: boolean | OverwriteOptions, + ): this; + /** + * Replaces the characters from `start` to `end` with `content`. The same restrictions as `s.remove()` apply. + * + * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored + * for later inclusion in a sourcemap's names array — and an overwrite property which determines whether only + * the content is overwritten, or anything that was appended/prepended to the range as well. + */ + update(start: number, end: number, content: string, options?: boolean | UpdateOptions): this; + /** + * Prepends the string with the specified content. + */ + prepend(content: string): this; + /** + * Same as `s.appendLeft(...)`, except that the inserted content will go *before* any previous appends or prepends at index + */ + prependLeft(index: number, content: string): this; + /** + * Same as `s.appendRight(...)`, except that the inserted content will go *before* any previous appends or prepends at `index` + */ + prependRight(index: number, content: string): this; + /** + * Removes the characters from `start` to `end` (of the original string, **not** the generated string). + * Removing the same content twice, or making removals that partially overlap, will cause an error. + */ + remove(start: number, end: number): this; + /** + * Reset the modified characters from `start` to `end` (of the original string, **not** the generated string). + */ + reset(start: number, end: number): this; + /** + * Returns the content of the generated string that corresponds to the slice between `start` and `end` of the original string. + * Throws error if the indices are for characters that were already removed. + */ + slice(start: number, end: number): string; + /** + * Returns a clone of `s`, with all content before the `start` and `end` characters of the original string removed. + */ + snip(start: number, end: number): this; + /** + * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start and end. + */ + trim(charType?: string): this; + /** + * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start. + */ + trimStart(charType?: string): this; + /** + * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the end. + */ + trimEnd(charType?: string): this; + /** + * Removes empty lines from the start and end. + */ + trimLines(): this; + /** + * String replacement with RegExp or string. + */ + replace( + regex: RegExp | string, + replacement: string | ((substring: string, ...args: any[]) => string), + ): this; + /** + * Same as `s.replace`, but replace all matched strings instead of just one. + */ + replaceAll( + regex: RegExp | string, + replacement: string | ((substring: string, ...args: any[]) => string), + ): this; + + lastChar(): string; + lastLine(): string; + /** + * Returns true if the resulting source is empty (disregarding white space). + */ + isEmpty(): boolean; + length(): number; + + /** + * Indicates if the string has been changed. + */ + hasChanged(): boolean; + + original: string; + /** + * Returns the generated string. + */ + toString(): string; + + offset: number; +} diff --git a/node_modules/magic-string/dist/magic-string.es.mjs b/node_modules/magic-string/dist/magic-string.es.mjs new file mode 100644 index 0000000..c7999fc --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.es.mjs @@ -0,0 +1,1588 @@ +import { encode } from '@jridgewell/sourcemap-codec'; + +class BitSet { + constructor(arg) { + this.bits = arg instanceof BitSet ? arg.bits.slice() : []; + } + + add(n) { + this.bits[n >> 5] |= 1 << (n & 31); + } + + has(n) { + return !!(this.bits[n >> 5] & (1 << (n & 31))); + } +} + +class Chunk { + constructor(start, end, content) { + this.start = start; + this.end = end; + this.original = content; + + this.intro = ''; + this.outro = ''; + + this.content = content; + this.storeName = false; + this.edited = false; + + { + this.previous = null; + this.next = null; + } + } + + appendLeft(content) { + this.outro += content; + } + + appendRight(content) { + this.intro = this.intro + content; + } + + clone() { + const chunk = new Chunk(this.start, this.end, this.original); + + chunk.intro = this.intro; + chunk.outro = this.outro; + chunk.content = this.content; + chunk.storeName = this.storeName; + chunk.edited = this.edited; + + return chunk; + } + + contains(index) { + return this.start < index && index < this.end; + } + + eachNext(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.next; + } + } + + eachPrevious(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.previous; + } + } + + edit(content, storeName, contentOnly) { + this.content = content; + if (!contentOnly) { + this.intro = ''; + this.outro = ''; + } + this.storeName = storeName; + + this.edited = true; + + return this; + } + + prependLeft(content) { + this.outro = content + this.outro; + } + + prependRight(content) { + this.intro = content + this.intro; + } + + reset() { + this.intro = ''; + this.outro = ''; + if (this.edited) { + this.content = this.original; + this.storeName = false; + this.edited = false; + } + } + + split(index) { + const sliceIndex = index - this.start; + + const originalBefore = this.original.slice(0, sliceIndex); + const originalAfter = this.original.slice(sliceIndex); + + this.original = originalBefore; + + const newChunk = new Chunk(index, this.end, originalAfter); + newChunk.outro = this.outro; + this.outro = ''; + + this.end = index; + + if (this.edited) { + // after split we should save the edit content record into the correct chunk + // to make sure sourcemap correct + // For example: + // ' test'.trim() + // split -> ' ' + 'test' + // ✔️ edit -> '' + 'test' + // ✖️ edit -> 'test' + '' + // TODO is this block necessary?... + newChunk.edit('', false); + this.content = ''; + } else { + this.content = originalBefore; + } + + newChunk.next = this.next; + if (newChunk.next) newChunk.next.previous = newChunk; + newChunk.previous = this; + this.next = newChunk; + + return newChunk; + } + + toString() { + return this.intro + this.content + this.outro; + } + + trimEnd(rx) { + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + this.split(this.start + trimmed.length).edit('', undefined, true); + if (this.edited) { + // save the change, if it has been edited + this.edit(trimmed, this.storeName, true); + } + } + return true; + } else { + this.edit('', undefined, true); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + } + } + + trimStart(rx) { + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + const newChunk = this.split(this.end - trimmed.length); + if (this.edited) { + // save the change, if it has been edited + newChunk.edit(trimmed, this.storeName, true); + } + this.edit('', undefined, true); + } + return true; + } else { + this.edit('', undefined, true); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + } + } +} + +function getBtoa() { + if (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') { + return (str) => globalThis.btoa(unescape(encodeURIComponent(str))); + } else if (typeof Buffer === 'function') { + return (str) => Buffer.from(str, 'utf-8').toString('base64'); + } else { + return () => { + throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.'); + }; + } +} + +const btoa = /*#__PURE__*/ getBtoa(); + +class SourceMap { + constructor(properties) { + this.version = 3; + this.file = properties.file; + this.sources = properties.sources; + this.sourcesContent = properties.sourcesContent; + this.names = properties.names; + this.mappings = encode(properties.mappings); + if (typeof properties.x_google_ignoreList !== 'undefined') { + this.x_google_ignoreList = properties.x_google_ignoreList; + } + if (typeof properties.debugId !== 'undefined') { + this.debugId = properties.debugId; + } + } + + toString() { + return JSON.stringify(this); + } + + toUrl() { + return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString()); + } +} + +function guessIndent(code) { + const lines = code.split('\n'); + + const tabbed = lines.filter((line) => /^\t+/.test(line)); + const spaced = lines.filter((line) => /^ {2,}/.test(line)); + + if (tabbed.length === 0 && spaced.length === 0) { + return null; + } + + // More lines tabbed than spaced? Assume tabs, and + // default to tabs in the case of a tie (or nothing + // to go on) + if (tabbed.length >= spaced.length) { + return '\t'; + } + + // Otherwise, we need to guess the multiple + const min = spaced.reduce((previous, current) => { + const numSpaces = /^ +/.exec(current)[0].length; + return Math.min(numSpaces, previous); + }, Infinity); + + return new Array(min + 1).join(' '); +} + +function getRelativePath(from, to) { + const fromParts = from.split(/[/\\]/); + const toParts = to.split(/[/\\]/); + + fromParts.pop(); // get dirname + + while (fromParts[0] === toParts[0]) { + fromParts.shift(); + toParts.shift(); + } + + if (fromParts.length) { + let i = fromParts.length; + while (i--) fromParts[i] = '..'; + } + + return fromParts.concat(toParts).join('/'); +} + +const toString = Object.prototype.toString; + +function isObject(thing) { + return toString.call(thing) === '[object Object]'; +} + +function getLocator(source) { + const originalLines = source.split('\n'); + const lineOffsets = []; + + for (let i = 0, pos = 0; i < originalLines.length; i++) { + lineOffsets.push(pos); + pos += originalLines[i].length + 1; + } + + return function locate(index) { + let i = 0; + let j = lineOffsets.length; + while (i < j) { + const m = (i + j) >> 1; + if (index < lineOffsets[m]) { + j = m; + } else { + i = m + 1; + } + } + const line = i - 1; + const column = index - lineOffsets[line]; + return { line, column }; + }; +} + +const wordRegex = /\w/; + +class Mappings { + constructor(hires) { + this.hires = hires; + this.generatedCodeLine = 0; + this.generatedCodeColumn = 0; + this.raw = []; + this.rawSegments = this.raw[this.generatedCodeLine] = []; + this.pending = null; + } + + addEdit(sourceIndex, content, loc, nameIndex) { + if (content.length) { + const contentLengthMinusOne = content.length - 1; + let contentLineEnd = content.indexOf('\n', 0); + let previousContentLineEnd = -1; + // Loop through each line in the content and add a segment, but stop if the last line is empty, + // else code afterwards would fill one line too many + while (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + + previousContentLineEnd = contentLineEnd; + contentLineEnd = content.indexOf('\n', contentLineEnd + 1); + } + + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.advance(content.slice(previousContentLineEnd + 1)); + } else if (this.pending) { + this.rawSegments.push(this.pending); + this.advance(content); + } + + this.pending = null; + } + + addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) { + let originalCharIndex = chunk.start; + let first = true; + // when iterating each char, check if it's in a word boundary + let charInHiresBoundary = false; + + while (originalCharIndex < chunk.end) { + if (original[originalCharIndex] === '\n') { + loc.line += 1; + loc.column = 0; + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + first = true; + charInHiresBoundary = false; + } else { + if (this.hires || first || sourcemapLocations.has(originalCharIndex)) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + + if (this.hires === 'boundary') { + // in hires "boundary", group segments per word boundary than per char + if (wordRegex.test(original[originalCharIndex])) { + // for first char in the boundary found, start the boundary by pushing a segment + if (!charInHiresBoundary) { + this.rawSegments.push(segment); + charInHiresBoundary = true; + } + } else { + // for non-word char, end the boundary by pushing a segment + this.rawSegments.push(segment); + charInHiresBoundary = false; + } + } else { + this.rawSegments.push(segment); + } + } + + loc.column += 1; + this.generatedCodeColumn += 1; + first = false; + } + + originalCharIndex += 1; + } + + this.pending = null; + } + + advance(str) { + if (!str) return; + + const lines = str.split('\n'); + + if (lines.length > 1) { + for (let i = 0; i < lines.length - 1; i++) { + this.generatedCodeLine++; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + } + this.generatedCodeColumn = 0; + } + + this.generatedCodeColumn += lines[lines.length - 1].length; + } +} + +const n = '\n'; + +const warned = { + insertLeft: false, + insertRight: false, + storeName: false, +}; + +class MagicString { + constructor(string, options = {}) { + const chunk = new Chunk(0, string.length, string); + + Object.defineProperties(this, { + original: { writable: true, value: string }, + outro: { writable: true, value: '' }, + intro: { writable: true, value: '' }, + firstChunk: { writable: true, value: chunk }, + lastChunk: { writable: true, value: chunk }, + lastSearchedChunk: { writable: true, value: chunk }, + byStart: { writable: true, value: {} }, + byEnd: { writable: true, value: {} }, + filename: { writable: true, value: options.filename }, + indentExclusionRanges: { writable: true, value: options.indentExclusionRanges }, + sourcemapLocations: { writable: true, value: new BitSet() }, + storedNames: { writable: true, value: {} }, + indentStr: { writable: true, value: undefined }, + ignoreList: { writable: true, value: options.ignoreList }, + offset: { writable: true, value: options.offset || 0 }, + }); + + this.byStart[0] = chunk; + this.byEnd[string.length] = chunk; + } + + addSourcemapLocation(char) { + this.sourcemapLocations.add(char); + } + + append(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.outro += content; + return this; + } + + appendLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.appendLeft(content); + } else { + this.intro += content; + } + return this; + } + + appendRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.appendRight(content); + } else { + this.outro += content; + } + return this; + } + + clone() { + const cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset }); + + let originalChunk = this.firstChunk; + let clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone()); + + while (originalChunk) { + cloned.byStart[clonedChunk.start] = clonedChunk; + cloned.byEnd[clonedChunk.end] = clonedChunk; + + const nextOriginalChunk = originalChunk.next; + const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone(); + + if (nextClonedChunk) { + clonedChunk.next = nextClonedChunk; + nextClonedChunk.previous = clonedChunk; + + clonedChunk = nextClonedChunk; + } + + originalChunk = nextOriginalChunk; + } + + cloned.lastChunk = clonedChunk; + + if (this.indentExclusionRanges) { + cloned.indentExclusionRanges = this.indentExclusionRanges.slice(); + } + + cloned.sourcemapLocations = new BitSet(this.sourcemapLocations); + + cloned.intro = this.intro; + cloned.outro = this.outro; + + return cloned; + } + + generateDecodedMap(options) { + options = options || {}; + + const sourceIndex = 0; + const names = Object.keys(this.storedNames); + const mappings = new Mappings(options.hires); + + const locate = getLocator(this.original); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (this.outro) { + mappings.advance(this.outro); + } + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: [ + options.source ? getRelativePath(options.file || '', options.source) : options.file || '', + ], + sourcesContent: options.includeContent ? [this.original] : undefined, + names, + mappings: mappings.raw, + x_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + _ensureindentStr() { + if (this.indentStr === undefined) { + this.indentStr = guessIndent(this.original); + } + } + + _getRawIndentString() { + this._ensureindentStr(); + return this.indentStr; + } + + getIndentString() { + this._ensureindentStr(); + return this.indentStr === null ? '\t' : this.indentStr; + } + + indent(indentStr, options) { + const pattern = /^[^\r\n]/gm; + + if (isObject(indentStr)) { + options = indentStr; + indentStr = undefined; + } + + if (indentStr === undefined) { + this._ensureindentStr(); + indentStr = this.indentStr || '\t'; + } + + if (indentStr === '') return this; // noop + + options = options || {}; + + // Process exclusion ranges + const isExcluded = {}; + + if (options.exclude) { + const exclusions = + typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude; + exclusions.forEach((exclusion) => { + for (let i = exclusion[0]; i < exclusion[1]; i += 1) { + isExcluded[i] = true; + } + }); + } + + let shouldIndentNextCharacter = options.indentStart !== false; + const replacer = (match) => { + if (shouldIndentNextCharacter) return `${indentStr}${match}`; + shouldIndentNextCharacter = true; + return match; + }; + + this.intro = this.intro.replace(pattern, replacer); + + let charIndex = 0; + let chunk = this.firstChunk; + + while (chunk) { + const end = chunk.end; + + if (chunk.edited) { + if (!isExcluded[charIndex]) { + chunk.content = chunk.content.replace(pattern, replacer); + + if (chunk.content.length) { + shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n'; + } + } + } else { + charIndex = chunk.start; + + while (charIndex < end) { + if (!isExcluded[charIndex]) { + const char = this.original[charIndex]; + + if (char === '\n') { + shouldIndentNextCharacter = true; + } else if (char !== '\r' && shouldIndentNextCharacter) { + shouldIndentNextCharacter = false; + + if (charIndex === chunk.start) { + chunk.prependRight(indentStr); + } else { + this._splitChunk(chunk, charIndex); + chunk = chunk.next; + chunk.prependRight(indentStr); + } + } + } + + charIndex += 1; + } + } + + charIndex = chunk.end; + chunk = chunk.next; + } + + this.outro = this.outro.replace(pattern, replacer); + + return this; + } + + insert() { + throw new Error( + 'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)', + ); + } + + insertLeft(index, content) { + if (!warned.insertLeft) { + console.warn( + 'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead', + ); + warned.insertLeft = true; + } + + return this.appendLeft(index, content); + } + + insertRight(index, content) { + if (!warned.insertRight) { + console.warn( + 'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead', + ); + warned.insertRight = true; + } + + return this.prependRight(index, content); + } + + move(start, end, index) { + start = start + this.offset; + end = end + this.offset; + index = index + this.offset; + + if (index >= start && index <= end) throw new Error('Cannot move a selection inside itself'); + + this._split(start); + this._split(end); + this._split(index); + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + const oldLeft = first.previous; + const oldRight = last.next; + + const newRight = this.byStart[index]; + if (!newRight && last === this.lastChunk) return this; + const newLeft = newRight ? newRight.previous : this.lastChunk; + + if (oldLeft) oldLeft.next = oldRight; + if (oldRight) oldRight.previous = oldLeft; + + if (newLeft) newLeft.next = first; + if (newRight) newRight.previous = last; + + if (!first.previous) this.firstChunk = last.next; + if (!last.next) { + this.lastChunk = first.previous; + this.lastChunk.next = null; + } + + first.previous = newLeft; + last.next = newRight || null; + + if (!newLeft) this.firstChunk = first; + if (!newRight) this.lastChunk = last; + return this; + } + + overwrite(start, end, content, options) { + options = options || {}; + return this.update(start, end, content, { ...options, overwrite: !options.contentOnly }); + } + + update(start, end, content, options) { + start = start + this.offset; + end = end + this.offset; + + if (typeof content !== 'string') throw new TypeError('replacement content must be a string'); + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (end > this.original.length) throw new Error('end is out of bounds'); + if (start === end) + throw new Error( + 'Cannot overwrite a zero-length range – use appendLeft or prependRight instead', + ); + + this._split(start); + this._split(end); + + if (options === true) { + if (!warned.storeName) { + console.warn( + 'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string', + ); + warned.storeName = true; + } + + options = { storeName: true }; + } + const storeName = options !== undefined ? options.storeName : false; + const overwrite = options !== undefined ? options.overwrite : false; + + if (storeName) { + const original = this.original.slice(start, end); + Object.defineProperty(this.storedNames, original, { + writable: true, + value: true, + enumerable: true, + }); + } + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + if (first) { + let chunk = first; + while (chunk !== last) { + if (chunk.next !== this.byStart[chunk.end]) { + throw new Error('Cannot overwrite across a split point'); + } + chunk = chunk.next; + chunk.edit('', false); + } + + first.edit(content, storeName, !overwrite); + } else { + // must be inserting at the end + const newChunk = new Chunk(start, end, '').edit(content, storeName); + + // TODO last chunk in the array may not be the last chunk, if it's moved... + last.next = newChunk; + newChunk.previous = last; + } + return this; + } + + prepend(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.intro = content + this.intro; + return this; + } + + prependLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.prependLeft(content); + } else { + this.intro = content + this.intro; + } + return this; + } + + prependRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.prependRight(content); + } else { + this.outro = content + this.outro; + } + return this; + } + + remove(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.intro = ''; + chunk.outro = ''; + chunk.edit(''); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + reset(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.reset(); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + lastChar() { + if (this.outro.length) return this.outro[this.outro.length - 1]; + let chunk = this.lastChunk; + do { + if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1]; + if (chunk.content.length) return chunk.content[chunk.content.length - 1]; + if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1]; + } while ((chunk = chunk.previous)); + if (this.intro.length) return this.intro[this.intro.length - 1]; + return ''; + } + + lastLine() { + let lineIndex = this.outro.lastIndexOf(n); + if (lineIndex !== -1) return this.outro.substr(lineIndex + 1); + let lineStr = this.outro; + let chunk = this.lastChunk; + do { + if (chunk.outro.length > 0) { + lineIndex = chunk.outro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.outro + lineStr; + } + + if (chunk.content.length > 0) { + lineIndex = chunk.content.lastIndexOf(n); + if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr; + lineStr = chunk.content + lineStr; + } + + if (chunk.intro.length > 0) { + lineIndex = chunk.intro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.intro + lineStr; + } + } while ((chunk = chunk.previous)); + lineIndex = this.intro.lastIndexOf(n); + if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr; + return this.intro + lineStr; + } + + slice(start = 0, end = this.original.length - this.offset) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + let result = ''; + + // find start chunk + let chunk = this.firstChunk; + while (chunk && (chunk.start > start || chunk.end <= start)) { + // found end chunk before start + if (chunk.start < end && chunk.end >= end) { + return result; + } + + chunk = chunk.next; + } + + if (chunk && chunk.edited && chunk.start !== start) + throw new Error(`Cannot use replaced character ${start} as slice start anchor.`); + + const startChunk = chunk; + while (chunk) { + if (chunk.intro && (startChunk !== chunk || chunk.start === start)) { + result += chunk.intro; + } + + const containsEnd = chunk.start < end && chunk.end >= end; + if (containsEnd && chunk.edited && chunk.end !== end) + throw new Error(`Cannot use replaced character ${end} as slice end anchor.`); + + const sliceStart = startChunk === chunk ? start - chunk.start : 0; + const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length; + + result += chunk.content.slice(sliceStart, sliceEnd); + + if (chunk.outro && (!containsEnd || chunk.end === end)) { + result += chunk.outro; + } + + if (containsEnd) { + break; + } + + chunk = chunk.next; + } + + return result; + } + + // TODO deprecate this? not really very useful + snip(start, end) { + const clone = this.clone(); + clone.remove(0, start); + clone.remove(end, clone.original.length); + + return clone; + } + + _split(index) { + if (this.byStart[index] || this.byEnd[index]) return; + + let chunk = this.lastSearchedChunk; + let previousChunk = chunk; + const searchForward = index > chunk.end; + + while (chunk) { + if (chunk.contains(index)) return this._splitChunk(chunk, index); + + chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start]; + + // Prevent infinite loop (e.g. via empty chunks, where start === end) + if (chunk === previousChunk) return; + + previousChunk = chunk; + } + } + + _splitChunk(chunk, index) { + if (chunk.edited && chunk.content.length) { + // zero-length edited chunks are a special case (overlapping replacements) + const loc = getLocator(this.original)(index); + throw new Error( + `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`, + ); + } + + const newChunk = chunk.split(index); + + this.byEnd[index] = chunk; + this.byStart[index] = newChunk; + this.byEnd[newChunk.end] = newChunk; + + if (chunk === this.lastChunk) this.lastChunk = newChunk; + + this.lastSearchedChunk = chunk; + return true; + } + + toString() { + let str = this.intro; + + let chunk = this.firstChunk; + while (chunk) { + str += chunk.toString(); + chunk = chunk.next; + } + + return str + this.outro; + } + + isEmpty() { + let chunk = this.firstChunk; + do { + if ( + (chunk.intro.length && chunk.intro.trim()) || + (chunk.content.length && chunk.content.trim()) || + (chunk.outro.length && chunk.outro.trim()) + ) + return false; + } while ((chunk = chunk.next)); + return true; + } + + length() { + let chunk = this.firstChunk; + let length = 0; + do { + length += chunk.intro.length + chunk.content.length + chunk.outro.length; + } while ((chunk = chunk.next)); + return length; + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimEndAborted(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + let chunk = this.lastChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimEnd(rx); + + // if chunk was trimmed, we have a new lastChunk + if (chunk.end !== end) { + if (this.lastChunk === chunk) { + this.lastChunk = chunk.next; + } + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.previous; + } while (chunk); + + return false; + } + + trimEnd(charType) { + this.trimEndAborted(charType); + return this; + } + trimStartAborted(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + let chunk = this.firstChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimStart(rx); + + if (chunk.end !== end) { + // special case... + if (chunk === this.lastChunk) this.lastChunk = chunk.next; + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.next; + } while (chunk); + + return false; + } + + trimStart(charType) { + this.trimStartAborted(charType); + return this; + } + + hasChanged() { + return this.original !== this.toString(); + } + + _replaceRegexp(searchValue, replacement) { + function getReplacement(match, str) { + if (typeof replacement === 'string') { + return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => { + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter + if (i === '$') return '$'; + if (i === '&') return match[0]; + const num = +i; + if (num < match.length) return match[+i]; + return `$${i}`; + }); + } else { + return replacement(...match, match.index, str, match.groups); + } + } + function matchAll(re, str) { + let match; + const matches = []; + while ((match = re.exec(str))) { + matches.push(match); + } + return matches; + } + if (searchValue.global) { + const matches = matchAll(searchValue, this.original); + matches.forEach((match) => { + if (match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + }); + } else { + const match = this.original.match(searchValue); + if (match && match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + } + return this; + } + + _replaceString(string, replacement) { + const { original } = this; + const index = original.indexOf(string); + + if (index !== -1) { + if (typeof replacement === 'function') { + replacement = replacement(string, index, original); + } + if (string !== replacement) { + this.overwrite(index, index + string.length, replacement); + } + } + + return this; + } + + replace(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceString(searchValue, replacement); + } + + return this._replaceRegexp(searchValue, replacement); + } + + _replaceAllString(string, replacement) { + const { original } = this; + const stringLength = string.length; + for ( + let index = original.indexOf(string); + index !== -1; + index = original.indexOf(string, index + stringLength) + ) { + const previous = original.slice(index, index + stringLength); + let _replacement = replacement; + if (typeof replacement === 'function') { + _replacement = replacement(previous, index, original); + } + if (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement); + } + + return this; + } + + replaceAll(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceAllString(searchValue, replacement); + } + + if (!searchValue.global) { + throw new TypeError( + 'MagicString.prototype.replaceAll called with a non-global RegExp argument', + ); + } + + return this._replaceRegexp(searchValue, replacement); + } +} + +const hasOwnProp = Object.prototype.hasOwnProperty; + +class Bundle { + constructor(options = {}) { + this.intro = options.intro || ''; + this.separator = options.separator !== undefined ? options.separator : '\n'; + this.sources = []; + this.uniqueSources = []; + this.uniqueSourceIndexByFilename = {}; + } + + addSource(source) { + if (source instanceof MagicString) { + return this.addSource({ + content: source, + filename: source.filename, + separator: this.separator, + }); + } + + if (!isObject(source) || !source.content) { + throw new Error( + 'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`', + ); + } + + ['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => { + if (!hasOwnProp.call(source, option)) source[option] = source.content[option]; + }); + + if (source.separator === undefined) { + // TODO there's a bunch of this sort of thing, needs cleaning up + source.separator = this.separator; + } + + if (source.filename) { + if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) { + this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length; + this.uniqueSources.push({ filename: source.filename, content: source.content.original }); + } else { + const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]]; + if (source.content.original !== uniqueSource.content) { + throw new Error(`Illegal source: same filename (${source.filename}), different contents`); + } + } + } + + this.sources.push(source); + return this; + } + + append(str, options) { + this.addSource({ + content: new MagicString(str), + separator: (options && options.separator) || '', + }); + + return this; + } + + clone() { + const bundle = new Bundle({ + intro: this.intro, + separator: this.separator, + }); + + this.sources.forEach((source) => { + bundle.addSource({ + filename: source.filename, + content: source.content.clone(), + separator: source.separator, + }); + }); + + return bundle; + } + + generateDecodedMap(options = {}) { + const names = []; + let x_google_ignoreList = undefined; + this.sources.forEach((source) => { + Object.keys(source.content.storedNames).forEach((name) => { + if (!~names.indexOf(name)) names.push(name); + }); + }); + + const mappings = new Mappings(options.hires); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.sources.forEach((source, i) => { + if (i > 0) { + mappings.advance(this.separator); + } + + const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1; + const magicString = source.content; + const locate = getLocator(magicString.original); + + if (magicString.intro) { + mappings.advance(magicString.intro); + } + + magicString.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (source.filename) { + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk( + sourceIndex, + chunk, + magicString.original, + loc, + magicString.sourcemapLocations, + ); + } + } else { + mappings.advance(chunk.content); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (magicString.outro) { + mappings.advance(magicString.outro); + } + + if (source.ignoreList && sourceIndex !== -1) { + if (x_google_ignoreList === undefined) { + x_google_ignoreList = []; + } + x_google_ignoreList.push(sourceIndex); + } + }); + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: this.uniqueSources.map((source) => { + return options.file ? getRelativePath(options.file, source.filename) : source.filename; + }), + sourcesContent: this.uniqueSources.map((source) => { + return options.includeContent ? source.content : null; + }), + names, + mappings: mappings.raw, + x_google_ignoreList, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + getIndentString() { + const indentStringCounts = {}; + + this.sources.forEach((source) => { + const indentStr = source.content._getRawIndentString(); + + if (indentStr === null) return; + + if (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0; + indentStringCounts[indentStr] += 1; + }); + + return ( + Object.keys(indentStringCounts).sort((a, b) => { + return indentStringCounts[a] - indentStringCounts[b]; + })[0] || '\t' + ); + } + + indent(indentStr) { + if (!arguments.length) { + indentStr = this.getIndentString(); + } + + if (indentStr === '') return this; // noop + + let trailingNewline = !this.intro || this.intro.slice(-1) === '\n'; + + this.sources.forEach((source, i) => { + const separator = source.separator !== undefined ? source.separator : this.separator; + const indentStart = trailingNewline || (i > 0 && /\r?\n$/.test(separator)); + + source.content.indent(indentStr, { + exclude: source.indentExclusionRanges, + indentStart, //: trailingNewline || /\r?\n$/.test( separator ) //true///\r?\n/.test( separator ) + }); + + trailingNewline = source.content.lastChar() === '\n'; + }); + + if (this.intro) { + this.intro = + indentStr + + this.intro.replace(/^[^\n]/gm, (match, index) => { + return index > 0 ? indentStr + match : match; + }); + } + + return this; + } + + prepend(str) { + this.intro = str + this.intro; + return this; + } + + toString() { + const body = this.sources + .map((source, i) => { + const separator = source.separator !== undefined ? source.separator : this.separator; + const str = (i > 0 ? separator : '') + source.content.toString(); + + return str; + }) + .join(''); + + return this.intro + body; + } + + isEmpty() { + if (this.intro.length && this.intro.trim()) return false; + if (this.sources.some((source) => !source.content.isEmpty())) return false; + return true; + } + + length() { + return this.sources.reduce( + (length, source) => length + source.content.length(), + this.intro.length, + ); + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimStart(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + this.intro = this.intro.replace(rx, ''); + + if (!this.intro) { + let source; + let i = 0; + + do { + source = this.sources[i++]; + if (!source) { + break; + } + } while (!source.content.trimStartAborted(charType)); + } + + return this; + } + + trimEnd(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + let source; + let i = this.sources.length - 1; + + do { + source = this.sources[i--]; + if (!source) { + this.intro = this.intro.replace(rx, ''); + break; + } + } while (!source.content.trimEndAborted(charType)); + + return this; + } +} + +export { Bundle, SourceMap, MagicString as default }; +//# sourceMappingURL=magic-string.es.mjs.map diff --git a/node_modules/magic-string/dist/magic-string.es.mjs.map b/node_modules/magic-string/dist/magic-string.es.mjs.map new file mode 100644 index 0000000..a60bcc8 --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.es.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"magic-string.es.mjs","sources":["../src/BitSet.js","../src/Chunk.js","../src/SourceMap.js","../src/utils/guessIndent.js","../src/utils/getRelativePath.js","../src/utils/isObject.js","../src/utils/getLocator.js","../src/utils/Mappings.js","../src/MagicString.js","../src/Bundle.js"],"sourcesContent":["export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n","export default function guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n","export default function getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n","export default function getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendLeft');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendLeft');\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendRight');\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tif (DEBUG) this.stats.time('move');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\n\t\tif (DEBUG) this.stats.timeEnd('move');\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tif (DEBUG) this.stats.time('overwrite');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('overwrite');\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('remove');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('remove');\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('reset');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('reset');\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tif (DEBUG) this.stats.time('_split');\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif (DEBUG) this.stats.timeEnd('_split');\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","import MagicString from './MagicString.js';\nimport SourceMap from './SourceMap.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nexport default class Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n"],"names":[],"mappings":";;AAAe,MAAM,MAAM,CAAC;AAC5B,CAAC,WAAW,CAAC,GAAG,EAAE;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,YAAY,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;AAC3D,CAAC;;AAED,CAAC,GAAG,CAAC,CAAC,EAAE;AACR,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACpC,CAAC;;AAED,CAAC,GAAG,CAAC,CAAC,EAAE;AACR,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AACD;;ACZe,MAAM,KAAK,CAAC;AAC3B,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;AAClC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;AAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO;;AAEzB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;AACjB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEjB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK;;AAErB,EAMS;AACT,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI;AACvB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;AACnB,EAAE;AACF,CAAC;;AAED,CAAC,UAAU,CAAC,OAAO,EAAE;AACrB,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;AACvB,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO;AACnC,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;;AAE9D,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1B,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1B,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAClC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;;AAE5B,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjB,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;AAC/C,CAAC;;AAED,CAAC,QAAQ,CAAC,EAAE,EAAE;AACd,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,EAAE,CAAC,KAAK,CAAC;AACZ,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;AACF,CAAC;;AAED,CAAC,YAAY,CAAC,EAAE,EAAE;AAClB,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,EAAE,CAAC,KAAK,CAAC;AACZ,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ;AACzB,EAAE;AACF,CAAC;;AAED,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;AACvC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAClB,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAClB,EAAE;AACF,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;;AAE5B,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;;AAEpB,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,CAAC;;AAED,CAAC,YAAY,CAAC,OAAO,EAAE;AACvB,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;AACjB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;AACjB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC/B,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK;AACzB,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK;AACtB,EAAE;AACF,CAAC;;AAED,CAAC,KAAK,CAAC,KAAK,EAAE;AACd,EAAE,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK;;AAEvC,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3D,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;;AAEvD,EAAE,IAAI,CAAC,QAAQ,GAAG,cAAc;;AAEhC,EAAE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;AAC5D,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC7B,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;;AAEjB,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK;;AAElB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AAC3B,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACpB,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc;AAChC,EAAE;;AAEF,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC3B,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACtD,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ;;AAEtB,EAAE,OAAO,QAAQ;AACjB,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;AAC/C,CAAC;;AAED,CAAC,OAAO,CAAC,EAAE,EAAE;AACb,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;AAE9C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;AACrE,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB;AACA,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AAC7C,IAAI;AACJ,GAAG;AACH,GAAG,OAAO,IAAI;AACd,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;;AAEjC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1C,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;AACrC,EAAE;AACF,CAAC;;AAED,CAAC,SAAS,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;AAE9C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AACjC,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB;AACA,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACjD,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;AAClC,GAAG;AACH,GAAG,OAAO,IAAI;AACd,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;;AAEjC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC1C,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;AACrC,EAAE;AACF,CAAC;AACD;;ACrLA,SAAS,OAAO,GAAG;AACnB,CAAC,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AACjF,EAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAC1C,EAAE,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC9D,CAAC,CAAC,MAAM;AACR,EAAE,OAAO,MAAM;AACf,GAAG,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;AAC7F,EAAE,CAAC;AACH,CAAC;AACD;;AAEA,MAAM,IAAI,iBAAiB,OAAO,EAAE;;AAErB,MAAM,SAAS,CAAC;AAC/B,CAAC,WAAW,CAAC,UAAU,EAAE;AACzB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;AAC7B,EAAE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;AACnC,EAAE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc;AACjD,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK;AAC/B,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC7C,EAAE,IAAI,OAAO,UAAU,CAAC,mBAAmB,KAAK,WAAW,EAAE;AAC7D,GAAG,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB;AAC5D,EAAE;AACF,EAAE,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE;AACjD,GAAG,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;AACpC,EAAE;AACF,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC7B,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,OAAO,6CAA6C,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9E,CAAC;AACD;;ACvCe,SAAS,WAAW,CAAC,IAAI,EAAE;AAC1C,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;AAE/B,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE3D,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,EAAE,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACrC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED;AACA,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK;AAClD,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AACjD,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;AACtC,CAAC,CAAC,EAAE,QAAQ,CAAC;;AAEb,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC;;ACxBe,SAAS,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE;AAClD,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;;AAElC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;;AAEjB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACrC,EAAE,SAAS,CAAC,KAAK,EAAE;AACnB,EAAE,OAAO,CAAC,KAAK,EAAE;AACjB,CAAC;;AAED,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;AACvB,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM;AAC1B,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;AACjC,CAAC;;AAED,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C;;ACjBA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;;AAE3B,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB;AAClD;;ACJe,SAAS,UAAU,CAAC,MAAM,EAAE;AAC3C,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC,CAAC,MAAM,WAAW,GAAG,EAAE;;AAEvB,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AACpC,CAAC;;AAED,CAAC,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE;AAC/B,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM;AAC5B,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;AAChB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,GAAG,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;AAC/B,IAAI,CAAC,GAAG,CAAC;AACT,GAAG,CAAC,MAAM;AACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACb,GAAG;AACH,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AACpB,EAAE,MAAM,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;AAC1C,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;AACzB,CAAC,CAAC;AACF;;ACxBA,MAAM,SAAS,GAAG,IAAI;;AAEP,MAAM,QAAQ,CAAC;AAC9B,CAAC,WAAW,CAAC,KAAK,EAAE;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC;AAC5B,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC9B,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE;AACf,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;AAC1D,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,CAAC;;AAED,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,GAAG,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;AACnD,GAAG,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,GAAG,IAAI,sBAAsB,GAAG,EAAE;AAClC;AACA;AACA,GAAG,OAAO,cAAc,IAAI,CAAC,IAAI,qBAAqB,GAAG,cAAc,EAAE;AACzE,IAAI,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;AACjF,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE;AACxB,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,IAAI;AACJ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;AAElC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC5D,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;;AAEhC,IAAI,sBAAsB,GAAG,cAAc;AAC3C,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC;AAC9D,GAAG;;AAEH,GAAG,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;AAChF,GAAG,IAAI,SAAS,IAAI,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3B,GAAG;AACH,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEjC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;AAC1D,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACxB,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,CAAC;;AAED,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,kBAAkB,EAAE;AACzE,EAAE,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK;AACrC,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB;AACA,EAAE,IAAI,mBAAmB,GAAG,KAAK;;AAEjC,EAAE,OAAO,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAE;AACxC,GAAG,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;AAC7C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;AACjB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAClB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC5D,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAChC,IAAI,KAAK,GAAG,IAAI;AAChB,IAAI,mBAAmB,GAAG,KAAK;AAC/B,GAAG,CAAC,MAAM;AACV,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC1E,KAAK,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;;AAElF,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACpC;AACA,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;AACvD;AACA,OAAO,IAAI,CAAC,mBAAmB,EAAE;AACjC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,QAAQ,mBAAmB,GAAG,IAAI;AAClC,OAAO;AACP,MAAM,CAAC,MAAM;AACb;AACA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,OAAO,mBAAmB,GAAG,KAAK;AAClC,MAAM;AACN,KAAK,CAAC,MAAM;AACZ,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACpC,KAAK;AACL,IAAI;;AAEJ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;AACnB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC;AACjC,IAAI,KAAK,GAAG,KAAK;AACjB,GAAG;;AAEH,GAAG,iBAAiB,IAAI,CAAC;AACzB,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,CAAC;;AAED,CAAC,OAAO,CAAC,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,GAAG,EAAE;;AAEZ,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;;AAE/B,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC5D,GAAG;AACH,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC/B,EAAE;;AAEF,EAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;AAC5D,CAAC;AACD;;ACtGA,MAAM,CAAC,GAAG,IAAI;;AAEd,MAAM,MAAM,GAAG;AACf,CAAC,UAAU,EAAE,KAAK;AAClB,CAAC,WAAW,EAAE,KAAK;AACnB,CAAC,SAAS,EAAE,KAAK;AACjB,CAAC;;AAEc,MAAM,WAAW,CAAC;AACjC,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE;AACnC,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;AAEnD,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAChC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAC9C,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/C,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9C,GAAG,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AACtD,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACzC,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;AACxD,GAAG,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,qBAAqB,EAAE;AAClF,GAAG,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,EAAE;AAC9D,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AAC7C,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AAClD,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;AAC5D,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AACzD,GAAG,CAAC;;AAMJ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK;AACnC,CAAC;;AAED,CAAC,oBAAoB,CAAC,IAAI,EAAE;AAC5B,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,CAAC;;AAED,CAAC,MAAM,CAAC,OAAO,EAAE;AACjB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;;AAExF,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;AACvB,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEjC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;AAC5B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO;AACxB,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEnC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;AAC7B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO;AACxB,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;AAEjG,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU;AACrC,EAAE,IAAI,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;;AAE1F,EAAE,OAAO,aAAa,EAAE;AACxB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW;AAClD,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW;;AAE9C,GAAG,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI;AAC/C,GAAG,MAAM,eAAe,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,EAAE;;AAEzE,GAAG,IAAI,eAAe,EAAE;AACxB,IAAI,WAAW,CAAC,IAAI,GAAG,eAAe;AACtC,IAAI,eAAe,CAAC,QAAQ,GAAG,WAAW;;AAE1C,IAAI,WAAW,GAAG,eAAe;AACjC,GAAG;;AAEH,GAAG,aAAa,GAAG,iBAAiB;AACpC,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,GAAG,WAAW;;AAEhC,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAClC,GAAG,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;AACpE,EAAE;;AAEF,EAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;;AAEjE,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC3B,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;;AAE3B,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC7B,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;AAEzB,EAAE,MAAM,WAAW,GAAG,CAAC;AACvB,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;AAE9C,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAE1C,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,EAAE;;AAEF,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK;AACtC,GAAG,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;AAElC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;AAExD,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACrB,IAAI,QAAQ,CAAC,OAAO;AACpB,KAAK,WAAW;AAChB,KAAK,KAAK,CAAC,OAAO;AAClB,KAAK,GAAG;AACR,KAAK,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;AACzD,KAAK;AACL,GAAG,CAAC,MAAM;AACV,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAC9F,GAAG;;AAEH,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACxD,EAAE,CAAC,CAAC;;AAEJ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,EAAE;;AAEF,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACrE,GAAG,OAAO,EAAE;AACZ,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE;AAC7F,IAAI;AACJ,GAAG,cAAc,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS;AACvE,GAAG,KAAK;AACR,GAAG,QAAQ,EAAE,QAAQ,CAAC,GAAG;AACzB,GAAG,mBAAmB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS;AACnE,GAAG;AACH,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;;AAED,CAAC,gBAAgB,GAAG;AACpB,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACpC,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9C,EAAE;AACF,CAAC;;AAED,CAAC,mBAAmB,GAAG;AACvB,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,SAAS;AACvB,CAAC;;AAED,CAAC,eAAe,GAAG;AACnB,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS;AACxD,CAAC;;AAED,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,EAAE,MAAM,OAAO,GAAG,YAAY;;AAE9B,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3B,GAAG,OAAO,GAAG,SAAS;AACtB,GAAG,SAAS,GAAG,SAAS;AACxB,EAAE;;AAEF,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/B,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC1B,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI;AACrC,EAAE;;AAEF,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;AAEpC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;AAEzB;AACA,EAAE,MAAM,UAAU,GAAG,EAAE;;AAEvB,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;AACvB,GAAG,MAAM,UAAU;AACnB,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO;AAChF,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzD,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;AACzB,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE;;AAEF,EAAE,IAAI,yBAAyB,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK;AAC/D,EAAE,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAC9B,GAAG,IAAI,yBAAyB,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,GAAG,yBAAyB,GAAG,IAAI;AACnC,GAAG,OAAO,KAAK;AACf,EAAE,CAAC;;AAEH,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAEpD,EAAE,IAAI,SAAS,GAAG,CAAC;AACnB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;;AAE7B,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;;AAExB,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACrB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAChC,KAAK,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAE7D,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;AAClF,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,MAAM;AACV,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK;;AAE3B,IAAI,OAAO,SAAS,GAAG,GAAG,EAAE;AAC5B,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AACjC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAE3C,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AACzB,OAAO,yBAAyB,GAAG,IAAI;AACvC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,yBAAyB,EAAE;AAC7D,OAAO,yBAAyB,GAAG,KAAK;;AAExC,OAAO,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE;AACtC,QAAQ,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;AACrC,OAAO,CAAC,MAAM;AACd,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;AAC1C,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI;AAC1B,QAAQ,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;AACrC,OAAO;AACP,MAAM;AACN,KAAK;;AAEL,KAAK,SAAS,IAAI,CAAC;AACnB,IAAI;AACJ,GAAG;;AAEH,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG;AACxB,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;AAEpD,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,GAAG;AACV,EAAE,MAAM,IAAI,KAAK;AACjB,GAAG,iFAAiF;AACpF,GAAG;AACH,CAAC;;AAED,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5B,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC1B,GAAG,OAAO,CAAC,IAAI;AACf,IAAI,oFAAoF;AACxF,IAAI;AACJ,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;AAC3B,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACxC,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,GAAG,OAAO,CAAC,IAAI;AACf,IAAI,uFAAuF;AAC3F,IAAI;AACJ,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI;AAC5B,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,CAAC;;AAED,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACzB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AACzB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;;AAI9F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAClB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAE9B,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ;AAChC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI;;AAE5B,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACtC,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AACvD,EAAE,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;AAE/D,EAAE,IAAI,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,QAAQ;AACtC,EAAE,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO;;AAE3C,EAAE,IAAI,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK;AACnC,EAAE,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;;AAExC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;AAClD,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;AAClC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI;AAC7B,EAAE;;AAEF,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,IAAI;;AAE9B,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK;AACvC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI;AAGtC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;AACzC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC1F,CAAC;;AAED,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;AACtC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;;AAE9F,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AACzE,EAAE,IAAI,KAAK,KAAK,GAAG;AACnB,GAAG,MAAM,IAAI,KAAK;AAClB,IAAI,+EAA+E;AACnF,IAAI;;AAIJ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElB,EAAE,IAAI,OAAO,KAAK,IAAI,EAAE;AACxB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC1B,IAAI,OAAO,CAAC,IAAI;AAChB,KAAK,+HAA+H;AACpI,KAAK;AACL,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI;AAC3B,GAAG;;AAEH,GAAG,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAChC,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK;AACrE,EAAE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK;;AAErE,EAAE,IAAI,SAAS,EAAE;AACjB,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACnD,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;AACrD,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,CAAC;AACL,EAAE;;AAEF,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAE9B,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,IAAI,KAAK,GAAG,KAAK;AACpB,GAAG,OAAO,KAAK,KAAK,IAAI,EAAE;AAC1B,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAChD,KAAK,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAC7D,IAAI;AACJ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI;AACtB,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AACzB,GAAG;;AAEH,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC;AAC7C,EAAE,CAAC,MAAM;AACT;AACA,GAAG,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;;AAEtE;AACA,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ;AACvB,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI;AAC3B,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,OAAO,EAAE;AAClB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;;AAExF,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACnC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEjC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;AAC7B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACpC,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;AAC9B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;AAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;AAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEnC,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;AAC9B,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;AACpC,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC5F,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;AAIpE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEjC,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;AACnB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;AACnB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;;AAEjB,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3D,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACnB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC5F,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;AAIpE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEjC,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,KAAK,CAAC,KAAK,EAAE;;AAEhB,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3D,EAAE;AAGF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;AAC5B,EAAE,GAAG;AACL,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3E,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,QAAQ;AAClC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,EAAE,OAAO,EAAE;AACX,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;AAC/D,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK;AAC1B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;AAC5B,EAAE,GAAG;AACL,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AAC5E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO;AACnC,GAAG;;AAEH,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AAC9E,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO;AACrC,GAAG;;AAEH,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AAC5E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO;AACnC,GAAG;AACH,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,QAAQ;AAClC,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;AACzE,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,OAAO;AAC7B,CAAC;;AAED,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5D,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC9C,EAAE;;AAEF,EAAE,IAAI,MAAM,GAAG,EAAE;;AAEjB;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,OAAO,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/D;AACA,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE;AAC9C,IAAI,OAAO,MAAM;AACjB,GAAG;;AAEH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;AACpD,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;;AAEnF,EAAE,MAAM,UAAU,GAAG,KAAK;AAC1B,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;AACvE,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK;AACzB,GAAG;;AAEH,GAAG,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG;AAC5D,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;AACvD,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;;AAEhF,GAAG,MAAM,UAAU,GAAG,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AACpE,GAAG,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;;AAE/F,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;;AAEtD,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;AAC3D,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK;AACzB,GAAG;;AAEH,GAAG,IAAI,WAAW,EAAE;AACpB,IAAI;AACJ,GAAG;;AAEH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;AAED;AACA,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;AAClB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC5B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;AACxB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;;AAE1C,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;;AAIhD,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB;AACpC,EAAE,IAAI,aAAa,GAAG,KAAK;AAC3B,EAAE,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG;;AAEzC,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;;AAEnE,GAAG,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;AAE5E;AACA,GAAG,IAAI,KAAK,KAAK,aAAa,EAAE;;AAEhC,GAAG,aAAa,GAAG,KAAK;AACxB,EAAE;AACF,CAAC;;AAED,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;AAC3B,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAC5C;AACA,GAAG,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;AAC/C,GAAG,MAAM,IAAI,KAAK;AAClB,IAAI,CAAC,mDAAmD,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzG,IAAI;AACJ,EAAE;;AAEF,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;AAErC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ;AAChC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ;;AAErC,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,QAAQ;;AAEzD,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAEhC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK;;AAEtB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,OAAO,KAAK,EAAE;AAChB,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC1B,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE;;AAEF,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK;AACzB,CAAC;;AAED,CAAC,OAAO,GAAG;AACX,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,GAAG;AACL,GAAG;AACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7C,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAClD,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7C;AACA,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,IAAI;AAC9B,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,GAAG;AACV,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC7B,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,GAAG;AACL,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;AAC3E,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,IAAI;AAC9B,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,CAAC,SAAS,GAAG;AACb,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9B,CAAC;;AAED,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,CAAC;;AAED,CAAC,cAAc,CAAC,QAAQ,EAAE;AAC1B,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC;;AAEnD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;;AAE5B,EAAE,GAAG;AACL,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACxB,GAAG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;;AAEpC;AACA,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAClC,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;AAChC,IAAI;;AAEJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI;AAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;AAC3C,GAAG;;AAEH,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI;AAC3B,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ;AACzB,EAAE,CAAC,QAAQ,KAAK;;AAEhB,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC/B,EAAE,OAAO,IAAI;AACb,CAAC;AACD,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAC5B,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;;AAExD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;AAEpC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;;AAE7B,EAAE,GAAG;AACL,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACxB,GAAG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;;AAEtC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC1B;AACA,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;;AAE7D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI;AAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;AAC3C,GAAG;;AAEH,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI;AAC3B,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;AACrB,EAAE,CAAC,QAAQ,KAAK;;AAEhB,EAAE,OAAO,KAAK;AACd,CAAC;;AAED,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrB,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACjC,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,UAAU,GAAG;AACd,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC1C,CAAC;;AAED,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE;AAC1C,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;AACtC,GAAG,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACxC,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;AAC1D;AACA,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,GAAG;AAC9B,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;AACnC,KAAK,MAAM,GAAG,GAAG,CAAC,CAAC;AACnB,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,IAAI,CAAC,CAAC;AACN,GAAG,CAAC,MAAM;AACV,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;AAChE,GAAG;AACH,EAAE;AACF,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;AAC7B,GAAG,IAAI,KAAK;AACZ,GAAG,MAAM,OAAO,GAAG,EAAE;AACrB,GAAG,QAAQ,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,GAAG;AACH,GAAG,OAAO,OAAO;AACjB,EAAE;AACF,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;AAC1B,GAAG,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvD,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC9B,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;AAC7B,KAAK,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC7D,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;AAC7E,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,MAAM;AACT,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;AACjD,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;AACrC,IAAI,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5D,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;AAClC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;AAC5E,IAAI;AACJ,GAAG;AACH,EAAE;AACF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;AACrC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;AAC3B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;;AAExC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;AACpB,GAAG,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC1C,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;AACtD,GAAG;AACH,GAAG,IAAI,MAAM,KAAK,WAAW,EAAE;AAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;AAC7D,GAAG;AACH,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE;AACnC,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACvC,GAAG,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;AACvD,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,CAAC;;AAED,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE;AACxC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;AAC3B,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM;AACpC,EAAE;AACF,GAAG,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;AACvC,GAAG,KAAK,KAAK,EAAE;AACf,GAAG,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,YAAY;AACxD,IAAI;AACJ,GAAG,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC;AAC/D,GAAG,IAAI,YAAY,GAAG,WAAW;AACjC,GAAG,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC1C,IAAI,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;AACzD,GAAG;AACH,GAAG,IAAI,QAAQ,KAAK,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE,YAAY,CAAC;AAC3F,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE;AACtC,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACvC,GAAG,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;AAC1D,EAAE;;AAEF,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC3B,GAAG,MAAM,IAAI,SAAS;AACtB,IAAI,2EAA2E;AAC/E,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,CAAC;AACD;;AC94BA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;;AAEnC,MAAM,MAAM,CAAC;AAC5B,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC3B,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE;AAClC,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI;AAC7E,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE;AACnB,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE;AACzB,EAAE,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACvC,CAAC;;AAED,CAAC,SAAS,CAAC,MAAM,EAAE;AACnB,EAAE,IAAI,MAAM,YAAY,WAAW,EAAE;AACrC,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC;AACzB,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC7B,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS;AAC7B,IAAI,CAAC;AACL,EAAE;;AAEF,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC5C,GAAG,MAAM,IAAI,KAAK;AAClB,IAAI,sIAAsI;AAC1I,IAAI;AACJ,EAAE;;AAEF,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACvF,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAChF,EAAE,CAAC,CAAC;;AAEJ,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;AACtC;AACA,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACpC,EAAE;;AAEF,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;AACvB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC5E,IAAI,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;AACjF,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5F,GAAG,CAAC,MAAM;AACV,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9F,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,OAAO,EAAE;AAC1D,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC9F,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AACtB,EAAE,IAAI,CAAC,SAAS,CAAC;AACjB,GAAG,OAAO,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;AAChC,GAAG,SAAS,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,EAAE;AAClD,GAAG,CAAC;;AAEJ,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AAC5B,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,GAAG,SAAS,EAAE,IAAI,CAAC,SAAS;AAC5B,GAAG,CAAC;;AAEJ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnC,GAAG,MAAM,CAAC,SAAS,CAAC;AACpB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC7B,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AACnC,IAAI,SAAS,EAAE,MAAM,CAAC,SAAS;AAC/B,IAAI,CAAC;AACL,EAAE,CAAC,CAAC;;AAEJ,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,CAAC,kBAAkB,CAAC,OAAO,GAAG,EAAE,EAAE;AAClC,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,IAAI,mBAAmB,GAAG,SAAS;AACrC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7D,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;AAE9C,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,EAAE;;AAEF,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;AACtC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AACd,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,GAAG;;AAEH,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC/F,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO;AACrC,GAAG,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;;AAElD,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;AAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,GAAG;;AAEH,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK;AAC9C,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEnC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEzD,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;AACzB,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,MAAM,QAAQ,CAAC,OAAO;AACtB,OAAO,WAAW;AAClB,OAAO,KAAK,CAAC,OAAO;AACpB,OAAO,GAAG;AACV,OAAO,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC3D,OAAO;AACP,KAAK,CAAC,MAAM;AACZ,MAAM,QAAQ,CAAC,gBAAgB;AAC/B,OAAO,WAAW;AAClB,OAAO,KAAK;AACZ,OAAO,WAAW,CAAC,QAAQ;AAC3B,OAAO,GAAG;AACV,OAAO,WAAW,CAAC,kBAAkB;AACrC,OAAO;AACP,KAAK;AACL,IAAI,CAAC,MAAM;AACX,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AACpC,IAAI;;AAEJ,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACzD,GAAG,CAAC,CAAC;;AAEL,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;AAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,GAAG;;AAEH,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,WAAW,KAAK,EAAE,EAAE;AAChD,IAAI,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAC3C,KAAK,mBAAmB,GAAG,EAAE;AAC7B,IAAI;AACJ,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,GAAG;AACH,EAAE,CAAC,CAAC;;AAEJ,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACrE,GAAG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AAC/C,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ;AAC1F,GAAG,CAAC,CAAC;AACL,GAAG,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACtD,IAAI,OAAO,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI;AACzD,GAAG,CAAC,CAAC;AACL,GAAG,KAAK;AACR,GAAG,QAAQ,EAAE,QAAQ,CAAC,GAAG;AACzB,GAAG,mBAAmB;AACtB,GAAG;AACH,CAAC;;AAED,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;;AAED,CAAC,eAAe,GAAG;AACnB,EAAE,MAAM,kBAAkB,GAAG,EAAE;;AAE/B,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnC,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;;AAEzD,GAAG,IAAI,SAAS,KAAK,IAAI,EAAE;;AAE3B,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;AACxE,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;AACrC,EAAE,CAAC,CAAC;;AAEJ,EAAE;AACF,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAClD,IAAI,OAAO,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AACZ;AACA,CAAC;;AAED,CAAC,MAAM,CAAC,SAAS,EAAE;AACnB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzB,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AACrC,EAAE;;AAEF,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;AAEpC,EAAE,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI;;AAEpE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;AACtC,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACvF,GAAG,MAAM,WAAW,GAAG,eAAe,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAE7E,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE;AACpC,IAAI,OAAO,EAAE,MAAM,CAAC,qBAAqB;AACzC,IAAI,WAAW;AACf,IAAI,CAAC;;AAEL,GAAG,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI;AACvD,EAAE,CAAC,CAAC;;AAEJ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,IAAI,CAAC,KAAK;AACb,IAAI,SAAS;AACb,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;AACrD,KAAK,OAAO,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK;AACjD,IAAI,CAAC,CAAC;AACN,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK;AAC/B,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,QAAQ,GAAG;AACZ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;AACvB,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACxF,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;;AAEpE,IAAI,OAAO,GAAG;AACd,GAAG,CAAC;AACJ,IAAI,IAAI,CAAC,EAAE,CAAC;;AAEZ,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI;AAC1B,CAAC;;AAED,CAAC,OAAO,GAAG;AACX,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,KAAK;AAC1D,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK;AAC5E,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,MAAM,GAAG;AACV,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;AAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;AACvD,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AACpB,GAAG;AACH,CAAC;;AAED,CAAC,SAAS,GAAG;AACb,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9B,CAAC;;AAED,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnD,CAAC;;AAED,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;AAEzC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,GAAG,IAAI,MAAM;AACb,GAAG,IAAI,CAAC,GAAG,CAAC;;AAEZ,GAAG,GAAG;AACN,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACtD,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnB,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC;;AAEnD,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;AAEjC,EAAE,GAAG;AACL,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC7B,GAAG,IAAI,CAAC,MAAM,EAAE;AAChB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;;AAEnD,EAAE,OAAO,IAAI;AACb,CAAC;AACD;;;;"} \ No newline at end of file diff --git a/node_modules/magic-string/dist/magic-string.umd.js b/node_modules/magic-string/dist/magic-string.umd.js new file mode 100644 index 0000000..0c399cd --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.umd.js @@ -0,0 +1,1682 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.MagicString = factory()); +})(this, (function () { 'use strict'; + + class BitSet { + constructor(arg) { + this.bits = arg instanceof BitSet ? arg.bits.slice() : []; + } + + add(n) { + this.bits[n >> 5] |= 1 << (n & 31); + } + + has(n) { + return !!(this.bits[n >> 5] & (1 << (n & 31))); + } + } + + class Chunk { + constructor(start, end, content) { + this.start = start; + this.end = end; + this.original = content; + + this.intro = ''; + this.outro = ''; + + this.content = content; + this.storeName = false; + this.edited = false; + + { + this.previous = null; + this.next = null; + } + } + + appendLeft(content) { + this.outro += content; + } + + appendRight(content) { + this.intro = this.intro + content; + } + + clone() { + const chunk = new Chunk(this.start, this.end, this.original); + + chunk.intro = this.intro; + chunk.outro = this.outro; + chunk.content = this.content; + chunk.storeName = this.storeName; + chunk.edited = this.edited; + + return chunk; + } + + contains(index) { + return this.start < index && index < this.end; + } + + eachNext(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.next; + } + } + + eachPrevious(fn) { + let chunk = this; + while (chunk) { + fn(chunk); + chunk = chunk.previous; + } + } + + edit(content, storeName, contentOnly) { + this.content = content; + if (!contentOnly) { + this.intro = ''; + this.outro = ''; + } + this.storeName = storeName; + + this.edited = true; + + return this; + } + + prependLeft(content) { + this.outro = content + this.outro; + } + + prependRight(content) { + this.intro = content + this.intro; + } + + reset() { + this.intro = ''; + this.outro = ''; + if (this.edited) { + this.content = this.original; + this.storeName = false; + this.edited = false; + } + } + + split(index) { + const sliceIndex = index - this.start; + + const originalBefore = this.original.slice(0, sliceIndex); + const originalAfter = this.original.slice(sliceIndex); + + this.original = originalBefore; + + const newChunk = new Chunk(index, this.end, originalAfter); + newChunk.outro = this.outro; + this.outro = ''; + + this.end = index; + + if (this.edited) { + // after split we should save the edit content record into the correct chunk + // to make sure sourcemap correct + // For example: + // ' test'.trim() + // split -> ' ' + 'test' + // ✔️ edit -> '' + 'test' + // ✖️ edit -> 'test' + '' + // TODO is this block necessary?... + newChunk.edit('', false); + this.content = ''; + } else { + this.content = originalBefore; + } + + newChunk.next = this.next; + if (newChunk.next) newChunk.next.previous = newChunk; + newChunk.previous = this; + this.next = newChunk; + + return newChunk; + } + + toString() { + return this.intro + this.content + this.outro; + } + + trimEnd(rx) { + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + this.split(this.start + trimmed.length).edit('', undefined, true); + if (this.edited) { + // save the change, if it has been edited + this.edit(trimmed, this.storeName, true); + } + } + return true; + } else { + this.edit('', undefined, true); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + } + } + + trimStart(rx) { + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + const trimmed = this.content.replace(rx, ''); + + if (trimmed.length) { + if (trimmed !== this.content) { + const newChunk = this.split(this.end - trimmed.length); + if (this.edited) { + // save the change, if it has been edited + newChunk.edit(trimmed, this.storeName, true); + } + this.edit('', undefined, true); + } + return true; + } else { + this.edit('', undefined, true); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + } + } + } + + // src/vlq.ts + var comma = ",".charCodeAt(0); + var semicolon = ";".charCodeAt(0); + var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var intToChar = new Uint8Array(64); + var charToInt = new Uint8Array(128); + for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; + } + function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; + } + + // src/strings.ts + var bufLength = 1024 * 16; + var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } + } : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); + } + return out; + } + }; + var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; + } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } + }; + function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); + } + + function getBtoa() { + if (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') { + return (str) => globalThis.btoa(unescape(encodeURIComponent(str))); + } else if (typeof Buffer === 'function') { + return (str) => Buffer.from(str, 'utf-8').toString('base64'); + } else { + return () => { + throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.'); + }; + } + } + + const btoa = /*#__PURE__*/ getBtoa(); + + class SourceMap { + constructor(properties) { + this.version = 3; + this.file = properties.file; + this.sources = properties.sources; + this.sourcesContent = properties.sourcesContent; + this.names = properties.names; + this.mappings = encode(properties.mappings); + if (typeof properties.x_google_ignoreList !== 'undefined') { + this.x_google_ignoreList = properties.x_google_ignoreList; + } + if (typeof properties.debugId !== 'undefined') { + this.debugId = properties.debugId; + } + } + + toString() { + return JSON.stringify(this); + } + + toUrl() { + return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString()); + } + } + + function guessIndent(code) { + const lines = code.split('\n'); + + const tabbed = lines.filter((line) => /^\t+/.test(line)); + const spaced = lines.filter((line) => /^ {2,}/.test(line)); + + if (tabbed.length === 0 && spaced.length === 0) { + return null; + } + + // More lines tabbed than spaced? Assume tabs, and + // default to tabs in the case of a tie (or nothing + // to go on) + if (tabbed.length >= spaced.length) { + return '\t'; + } + + // Otherwise, we need to guess the multiple + const min = spaced.reduce((previous, current) => { + const numSpaces = /^ +/.exec(current)[0].length; + return Math.min(numSpaces, previous); + }, Infinity); + + return new Array(min + 1).join(' '); + } + + function getRelativePath(from, to) { + const fromParts = from.split(/[/\\]/); + const toParts = to.split(/[/\\]/); + + fromParts.pop(); // get dirname + + while (fromParts[0] === toParts[0]) { + fromParts.shift(); + toParts.shift(); + } + + if (fromParts.length) { + let i = fromParts.length; + while (i--) fromParts[i] = '..'; + } + + return fromParts.concat(toParts).join('/'); + } + + const toString = Object.prototype.toString; + + function isObject(thing) { + return toString.call(thing) === '[object Object]'; + } + + function getLocator(source) { + const originalLines = source.split('\n'); + const lineOffsets = []; + + for (let i = 0, pos = 0; i < originalLines.length; i++) { + lineOffsets.push(pos); + pos += originalLines[i].length + 1; + } + + return function locate(index) { + let i = 0; + let j = lineOffsets.length; + while (i < j) { + const m = (i + j) >> 1; + if (index < lineOffsets[m]) { + j = m; + } else { + i = m + 1; + } + } + const line = i - 1; + const column = index - lineOffsets[line]; + return { line, column }; + }; + } + + const wordRegex = /\w/; + + class Mappings { + constructor(hires) { + this.hires = hires; + this.generatedCodeLine = 0; + this.generatedCodeColumn = 0; + this.raw = []; + this.rawSegments = this.raw[this.generatedCodeLine] = []; + this.pending = null; + } + + addEdit(sourceIndex, content, loc, nameIndex) { + if (content.length) { + const contentLengthMinusOne = content.length - 1; + let contentLineEnd = content.indexOf('\n', 0); + let previousContentLineEnd = -1; + // Loop through each line in the content and add a segment, but stop if the last line is empty, + // else code afterwards would fill one line too many + while (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + + previousContentLineEnd = contentLineEnd; + contentLineEnd = content.indexOf('\n', contentLineEnd + 1); + } + + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + if (nameIndex >= 0) { + segment.push(nameIndex); + } + this.rawSegments.push(segment); + + this.advance(content.slice(previousContentLineEnd + 1)); + } else if (this.pending) { + this.rawSegments.push(this.pending); + this.advance(content); + } + + this.pending = null; + } + + addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) { + let originalCharIndex = chunk.start; + let first = true; + // when iterating each char, check if it's in a word boundary + let charInHiresBoundary = false; + + while (originalCharIndex < chunk.end) { + if (original[originalCharIndex] === '\n') { + loc.line += 1; + loc.column = 0; + this.generatedCodeLine += 1; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + first = true; + charInHiresBoundary = false; + } else { + if (this.hires || first || sourcemapLocations.has(originalCharIndex)) { + const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; + + if (this.hires === 'boundary') { + // in hires "boundary", group segments per word boundary than per char + if (wordRegex.test(original[originalCharIndex])) { + // for first char in the boundary found, start the boundary by pushing a segment + if (!charInHiresBoundary) { + this.rawSegments.push(segment); + charInHiresBoundary = true; + } + } else { + // for non-word char, end the boundary by pushing a segment + this.rawSegments.push(segment); + charInHiresBoundary = false; + } + } else { + this.rawSegments.push(segment); + } + } + + loc.column += 1; + this.generatedCodeColumn += 1; + first = false; + } + + originalCharIndex += 1; + } + + this.pending = null; + } + + advance(str) { + if (!str) return; + + const lines = str.split('\n'); + + if (lines.length > 1) { + for (let i = 0; i < lines.length - 1; i++) { + this.generatedCodeLine++; + this.raw[this.generatedCodeLine] = this.rawSegments = []; + } + this.generatedCodeColumn = 0; + } + + this.generatedCodeColumn += lines[lines.length - 1].length; + } + } + + const n = '\n'; + + const warned = { + insertLeft: false, + insertRight: false, + storeName: false, + }; + + class MagicString { + constructor(string, options = {}) { + const chunk = new Chunk(0, string.length, string); + + Object.defineProperties(this, { + original: { writable: true, value: string }, + outro: { writable: true, value: '' }, + intro: { writable: true, value: '' }, + firstChunk: { writable: true, value: chunk }, + lastChunk: { writable: true, value: chunk }, + lastSearchedChunk: { writable: true, value: chunk }, + byStart: { writable: true, value: {} }, + byEnd: { writable: true, value: {} }, + filename: { writable: true, value: options.filename }, + indentExclusionRanges: { writable: true, value: options.indentExclusionRanges }, + sourcemapLocations: { writable: true, value: new BitSet() }, + storedNames: { writable: true, value: {} }, + indentStr: { writable: true, value: undefined }, + ignoreList: { writable: true, value: options.ignoreList }, + offset: { writable: true, value: options.offset || 0 }, + }); + + this.byStart[0] = chunk; + this.byEnd[string.length] = chunk; + } + + addSourcemapLocation(char) { + this.sourcemapLocations.add(char); + } + + append(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.outro += content; + return this; + } + + appendLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.appendLeft(content); + } else { + this.intro += content; + } + return this; + } + + appendRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.appendRight(content); + } else { + this.outro += content; + } + return this; + } + + clone() { + const cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset }); + + let originalChunk = this.firstChunk; + let clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone()); + + while (originalChunk) { + cloned.byStart[clonedChunk.start] = clonedChunk; + cloned.byEnd[clonedChunk.end] = clonedChunk; + + const nextOriginalChunk = originalChunk.next; + const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone(); + + if (nextClonedChunk) { + clonedChunk.next = nextClonedChunk; + nextClonedChunk.previous = clonedChunk; + + clonedChunk = nextClonedChunk; + } + + originalChunk = nextOriginalChunk; + } + + cloned.lastChunk = clonedChunk; + + if (this.indentExclusionRanges) { + cloned.indentExclusionRanges = this.indentExclusionRanges.slice(); + } + + cloned.sourcemapLocations = new BitSet(this.sourcemapLocations); + + cloned.intro = this.intro; + cloned.outro = this.outro; + + return cloned; + } + + generateDecodedMap(options) { + options = options || {}; + + const sourceIndex = 0; + const names = Object.keys(this.storedNames); + const mappings = new Mappings(options.hires); + + const locate = getLocator(this.original); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (this.outro) { + mappings.advance(this.outro); + } + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: [ + options.source ? getRelativePath(options.file || '', options.source) : options.file || '', + ], + sourcesContent: options.includeContent ? [this.original] : undefined, + names, + mappings: mappings.raw, + x_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + _ensureindentStr() { + if (this.indentStr === undefined) { + this.indentStr = guessIndent(this.original); + } + } + + _getRawIndentString() { + this._ensureindentStr(); + return this.indentStr; + } + + getIndentString() { + this._ensureindentStr(); + return this.indentStr === null ? '\t' : this.indentStr; + } + + indent(indentStr, options) { + const pattern = /^[^\r\n]/gm; + + if (isObject(indentStr)) { + options = indentStr; + indentStr = undefined; + } + + if (indentStr === undefined) { + this._ensureindentStr(); + indentStr = this.indentStr || '\t'; + } + + if (indentStr === '') return this; // noop + + options = options || {}; + + // Process exclusion ranges + const isExcluded = {}; + + if (options.exclude) { + const exclusions = + typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude; + exclusions.forEach((exclusion) => { + for (let i = exclusion[0]; i < exclusion[1]; i += 1) { + isExcluded[i] = true; + } + }); + } + + let shouldIndentNextCharacter = options.indentStart !== false; + const replacer = (match) => { + if (shouldIndentNextCharacter) return `${indentStr}${match}`; + shouldIndentNextCharacter = true; + return match; + }; + + this.intro = this.intro.replace(pattern, replacer); + + let charIndex = 0; + let chunk = this.firstChunk; + + while (chunk) { + const end = chunk.end; + + if (chunk.edited) { + if (!isExcluded[charIndex]) { + chunk.content = chunk.content.replace(pattern, replacer); + + if (chunk.content.length) { + shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n'; + } + } + } else { + charIndex = chunk.start; + + while (charIndex < end) { + if (!isExcluded[charIndex]) { + const char = this.original[charIndex]; + + if (char === '\n') { + shouldIndentNextCharacter = true; + } else if (char !== '\r' && shouldIndentNextCharacter) { + shouldIndentNextCharacter = false; + + if (charIndex === chunk.start) { + chunk.prependRight(indentStr); + } else { + this._splitChunk(chunk, charIndex); + chunk = chunk.next; + chunk.prependRight(indentStr); + } + } + } + + charIndex += 1; + } + } + + charIndex = chunk.end; + chunk = chunk.next; + } + + this.outro = this.outro.replace(pattern, replacer); + + return this; + } + + insert() { + throw new Error( + 'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)', + ); + } + + insertLeft(index, content) { + if (!warned.insertLeft) { + console.warn( + 'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead', + ); + warned.insertLeft = true; + } + + return this.appendLeft(index, content); + } + + insertRight(index, content) { + if (!warned.insertRight) { + console.warn( + 'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead', + ); + warned.insertRight = true; + } + + return this.prependRight(index, content); + } + + move(start, end, index) { + start = start + this.offset; + end = end + this.offset; + index = index + this.offset; + + if (index >= start && index <= end) throw new Error('Cannot move a selection inside itself'); + + this._split(start); + this._split(end); + this._split(index); + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + const oldLeft = first.previous; + const oldRight = last.next; + + const newRight = this.byStart[index]; + if (!newRight && last === this.lastChunk) return this; + const newLeft = newRight ? newRight.previous : this.lastChunk; + + if (oldLeft) oldLeft.next = oldRight; + if (oldRight) oldRight.previous = oldLeft; + + if (newLeft) newLeft.next = first; + if (newRight) newRight.previous = last; + + if (!first.previous) this.firstChunk = last.next; + if (!last.next) { + this.lastChunk = first.previous; + this.lastChunk.next = null; + } + + first.previous = newLeft; + last.next = newRight || null; + + if (!newLeft) this.firstChunk = first; + if (!newRight) this.lastChunk = last; + return this; + } + + overwrite(start, end, content, options) { + options = options || {}; + return this.update(start, end, content, { ...options, overwrite: !options.contentOnly }); + } + + update(start, end, content, options) { + start = start + this.offset; + end = end + this.offset; + + if (typeof content !== 'string') throw new TypeError('replacement content must be a string'); + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (end > this.original.length) throw new Error('end is out of bounds'); + if (start === end) + throw new Error( + 'Cannot overwrite a zero-length range – use appendLeft or prependRight instead', + ); + + this._split(start); + this._split(end); + + if (options === true) { + if (!warned.storeName) { + console.warn( + 'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string', + ); + warned.storeName = true; + } + + options = { storeName: true }; + } + const storeName = options !== undefined ? options.storeName : false; + const overwrite = options !== undefined ? options.overwrite : false; + + if (storeName) { + const original = this.original.slice(start, end); + Object.defineProperty(this.storedNames, original, { + writable: true, + value: true, + enumerable: true, + }); + } + + const first = this.byStart[start]; + const last = this.byEnd[end]; + + if (first) { + let chunk = first; + while (chunk !== last) { + if (chunk.next !== this.byStart[chunk.end]) { + throw new Error('Cannot overwrite across a split point'); + } + chunk = chunk.next; + chunk.edit('', false); + } + + first.edit(content, storeName, !overwrite); + } else { + // must be inserting at the end + const newChunk = new Chunk(start, end, '').edit(content, storeName); + + // TODO last chunk in the array may not be the last chunk, if it's moved... + last.next = newChunk; + newChunk.previous = last; + } + return this; + } + + prepend(content) { + if (typeof content !== 'string') throw new TypeError('outro content must be a string'); + + this.intro = content + this.intro; + return this; + } + + prependLeft(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byEnd[index]; + + if (chunk) { + chunk.prependLeft(content); + } else { + this.intro = content + this.intro; + } + return this; + } + + prependRight(index, content) { + index = index + this.offset; + + if (typeof content !== 'string') throw new TypeError('inserted content must be a string'); + + this._split(index); + + const chunk = this.byStart[index]; + + if (chunk) { + chunk.prependRight(content); + } else { + this.outro = content + this.outro; + } + return this; + } + + remove(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.intro = ''; + chunk.outro = ''; + chunk.edit(''); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + reset(start, end) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + if (start === end) return this; + + if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds'); + if (start > end) throw new Error('end must be greater than start'); + + this._split(start); + this._split(end); + + let chunk = this.byStart[start]; + + while (chunk) { + chunk.reset(); + + chunk = end > chunk.end ? this.byStart[chunk.end] : null; + } + return this; + } + + lastChar() { + if (this.outro.length) return this.outro[this.outro.length - 1]; + let chunk = this.lastChunk; + do { + if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1]; + if (chunk.content.length) return chunk.content[chunk.content.length - 1]; + if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1]; + } while ((chunk = chunk.previous)); + if (this.intro.length) return this.intro[this.intro.length - 1]; + return ''; + } + + lastLine() { + let lineIndex = this.outro.lastIndexOf(n); + if (lineIndex !== -1) return this.outro.substr(lineIndex + 1); + let lineStr = this.outro; + let chunk = this.lastChunk; + do { + if (chunk.outro.length > 0) { + lineIndex = chunk.outro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.outro + lineStr; + } + + if (chunk.content.length > 0) { + lineIndex = chunk.content.lastIndexOf(n); + if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr; + lineStr = chunk.content + lineStr; + } + + if (chunk.intro.length > 0) { + lineIndex = chunk.intro.lastIndexOf(n); + if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr; + lineStr = chunk.intro + lineStr; + } + } while ((chunk = chunk.previous)); + lineIndex = this.intro.lastIndexOf(n); + if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr; + return this.intro + lineStr; + } + + slice(start = 0, end = this.original.length - this.offset) { + start = start + this.offset; + end = end + this.offset; + + if (this.original.length !== 0) { + while (start < 0) start += this.original.length; + while (end < 0) end += this.original.length; + } + + let result = ''; + + // find start chunk + let chunk = this.firstChunk; + while (chunk && (chunk.start > start || chunk.end <= start)) { + // found end chunk before start + if (chunk.start < end && chunk.end >= end) { + return result; + } + + chunk = chunk.next; + } + + if (chunk && chunk.edited && chunk.start !== start) + throw new Error(`Cannot use replaced character ${start} as slice start anchor.`); + + const startChunk = chunk; + while (chunk) { + if (chunk.intro && (startChunk !== chunk || chunk.start === start)) { + result += chunk.intro; + } + + const containsEnd = chunk.start < end && chunk.end >= end; + if (containsEnd && chunk.edited && chunk.end !== end) + throw new Error(`Cannot use replaced character ${end} as slice end anchor.`); + + const sliceStart = startChunk === chunk ? start - chunk.start : 0; + const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length; + + result += chunk.content.slice(sliceStart, sliceEnd); + + if (chunk.outro && (!containsEnd || chunk.end === end)) { + result += chunk.outro; + } + + if (containsEnd) { + break; + } + + chunk = chunk.next; + } + + return result; + } + + // TODO deprecate this? not really very useful + snip(start, end) { + const clone = this.clone(); + clone.remove(0, start); + clone.remove(end, clone.original.length); + + return clone; + } + + _split(index) { + if (this.byStart[index] || this.byEnd[index]) return; + + let chunk = this.lastSearchedChunk; + let previousChunk = chunk; + const searchForward = index > chunk.end; + + while (chunk) { + if (chunk.contains(index)) return this._splitChunk(chunk, index); + + chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start]; + + // Prevent infinite loop (e.g. via empty chunks, where start === end) + if (chunk === previousChunk) return; + + previousChunk = chunk; + } + } + + _splitChunk(chunk, index) { + if (chunk.edited && chunk.content.length) { + // zero-length edited chunks are a special case (overlapping replacements) + const loc = getLocator(this.original)(index); + throw new Error( + `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`, + ); + } + + const newChunk = chunk.split(index); + + this.byEnd[index] = chunk; + this.byStart[index] = newChunk; + this.byEnd[newChunk.end] = newChunk; + + if (chunk === this.lastChunk) this.lastChunk = newChunk; + + this.lastSearchedChunk = chunk; + return true; + } + + toString() { + let str = this.intro; + + let chunk = this.firstChunk; + while (chunk) { + str += chunk.toString(); + chunk = chunk.next; + } + + return str + this.outro; + } + + isEmpty() { + let chunk = this.firstChunk; + do { + if ( + (chunk.intro.length && chunk.intro.trim()) || + (chunk.content.length && chunk.content.trim()) || + (chunk.outro.length && chunk.outro.trim()) + ) + return false; + } while ((chunk = chunk.next)); + return true; + } + + length() { + let chunk = this.firstChunk; + let length = 0; + do { + length += chunk.intro.length + chunk.content.length + chunk.outro.length; + } while ((chunk = chunk.next)); + return length; + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimEndAborted(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + this.outro = this.outro.replace(rx, ''); + if (this.outro.length) return true; + + let chunk = this.lastChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimEnd(rx); + + // if chunk was trimmed, we have a new lastChunk + if (chunk.end !== end) { + if (this.lastChunk === chunk) { + this.lastChunk = chunk.next; + } + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.previous; + } while (chunk); + + return false; + } + + trimEnd(charType) { + this.trimEndAborted(charType); + return this; + } + trimStartAborted(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + + this.intro = this.intro.replace(rx, ''); + if (this.intro.length) return true; + + let chunk = this.firstChunk; + + do { + const end = chunk.end; + const aborted = chunk.trimStart(rx); + + if (chunk.end !== end) { + // special case... + if (chunk === this.lastChunk) this.lastChunk = chunk.next; + + this.byEnd[chunk.end] = chunk; + this.byStart[chunk.next.start] = chunk.next; + this.byEnd[chunk.next.end] = chunk.next; + } + + if (aborted) return true; + chunk = chunk.next; + } while (chunk); + + return false; + } + + trimStart(charType) { + this.trimStartAborted(charType); + return this; + } + + hasChanged() { + return this.original !== this.toString(); + } + + _replaceRegexp(searchValue, replacement) { + function getReplacement(match, str) { + if (typeof replacement === 'string') { + return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => { + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter + if (i === '$') return '$'; + if (i === '&') return match[0]; + const num = +i; + if (num < match.length) return match[+i]; + return `$${i}`; + }); + } else { + return replacement(...match, match.index, str, match.groups); + } + } + function matchAll(re, str) { + let match; + const matches = []; + while ((match = re.exec(str))) { + matches.push(match); + } + return matches; + } + if (searchValue.global) { + const matches = matchAll(searchValue, this.original); + matches.forEach((match) => { + if (match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + }); + } else { + const match = this.original.match(searchValue); + if (match && match.index != null) { + const replacement = getReplacement(match, this.original); + if (replacement !== match[0]) { + this.overwrite(match.index, match.index + match[0].length, replacement); + } + } + } + return this; + } + + _replaceString(string, replacement) { + const { original } = this; + const index = original.indexOf(string); + + if (index !== -1) { + if (typeof replacement === 'function') { + replacement = replacement(string, index, original); + } + if (string !== replacement) { + this.overwrite(index, index + string.length, replacement); + } + } + + return this; + } + + replace(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceString(searchValue, replacement); + } + + return this._replaceRegexp(searchValue, replacement); + } + + _replaceAllString(string, replacement) { + const { original } = this; + const stringLength = string.length; + for ( + let index = original.indexOf(string); + index !== -1; + index = original.indexOf(string, index + stringLength) + ) { + const previous = original.slice(index, index + stringLength); + let _replacement = replacement; + if (typeof replacement === 'function') { + _replacement = replacement(previous, index, original); + } + if (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement); + } + + return this; + } + + replaceAll(searchValue, replacement) { + if (typeof searchValue === 'string') { + return this._replaceAllString(searchValue, replacement); + } + + if (!searchValue.global) { + throw new TypeError( + 'MagicString.prototype.replaceAll called with a non-global RegExp argument', + ); + } + + return this._replaceRegexp(searchValue, replacement); + } + } + + const hasOwnProp = Object.prototype.hasOwnProperty; + + class Bundle { + constructor(options = {}) { + this.intro = options.intro || ''; + this.separator = options.separator !== undefined ? options.separator : '\n'; + this.sources = []; + this.uniqueSources = []; + this.uniqueSourceIndexByFilename = {}; + } + + addSource(source) { + if (source instanceof MagicString) { + return this.addSource({ + content: source, + filename: source.filename, + separator: this.separator, + }); + } + + if (!isObject(source) || !source.content) { + throw new Error( + 'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`', + ); + } + + ['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => { + if (!hasOwnProp.call(source, option)) source[option] = source.content[option]; + }); + + if (source.separator === undefined) { + // TODO there's a bunch of this sort of thing, needs cleaning up + source.separator = this.separator; + } + + if (source.filename) { + if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) { + this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length; + this.uniqueSources.push({ filename: source.filename, content: source.content.original }); + } else { + const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]]; + if (source.content.original !== uniqueSource.content) { + throw new Error(`Illegal source: same filename (${source.filename}), different contents`); + } + } + } + + this.sources.push(source); + return this; + } + + append(str, options) { + this.addSource({ + content: new MagicString(str), + separator: (options && options.separator) || '', + }); + + return this; + } + + clone() { + const bundle = new Bundle({ + intro: this.intro, + separator: this.separator, + }); + + this.sources.forEach((source) => { + bundle.addSource({ + filename: source.filename, + content: source.content.clone(), + separator: source.separator, + }); + }); + + return bundle; + } + + generateDecodedMap(options = {}) { + const names = []; + let x_google_ignoreList = undefined; + this.sources.forEach((source) => { + Object.keys(source.content.storedNames).forEach((name) => { + if (!~names.indexOf(name)) names.push(name); + }); + }); + + const mappings = new Mappings(options.hires); + + if (this.intro) { + mappings.advance(this.intro); + } + + this.sources.forEach((source, i) => { + if (i > 0) { + mappings.advance(this.separator); + } + + const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1; + const magicString = source.content; + const locate = getLocator(magicString.original); + + if (magicString.intro) { + mappings.advance(magicString.intro); + } + + magicString.firstChunk.eachNext((chunk) => { + const loc = locate(chunk.start); + + if (chunk.intro.length) mappings.advance(chunk.intro); + + if (source.filename) { + if (chunk.edited) { + mappings.addEdit( + sourceIndex, + chunk.content, + loc, + chunk.storeName ? names.indexOf(chunk.original) : -1, + ); + } else { + mappings.addUneditedChunk( + sourceIndex, + chunk, + magicString.original, + loc, + magicString.sourcemapLocations, + ); + } + } else { + mappings.advance(chunk.content); + } + + if (chunk.outro.length) mappings.advance(chunk.outro); + }); + + if (magicString.outro) { + mappings.advance(magicString.outro); + } + + if (source.ignoreList && sourceIndex !== -1) { + if (x_google_ignoreList === undefined) { + x_google_ignoreList = []; + } + x_google_ignoreList.push(sourceIndex); + } + }); + + return { + file: options.file ? options.file.split(/[/\\]/).pop() : undefined, + sources: this.uniqueSources.map((source) => { + return options.file ? getRelativePath(options.file, source.filename) : source.filename; + }), + sourcesContent: this.uniqueSources.map((source) => { + return options.includeContent ? source.content : null; + }), + names, + mappings: mappings.raw, + x_google_ignoreList, + }; + } + + generateMap(options) { + return new SourceMap(this.generateDecodedMap(options)); + } + + getIndentString() { + const indentStringCounts = {}; + + this.sources.forEach((source) => { + const indentStr = source.content._getRawIndentString(); + + if (indentStr === null) return; + + if (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0; + indentStringCounts[indentStr] += 1; + }); + + return ( + Object.keys(indentStringCounts).sort((a, b) => { + return indentStringCounts[a] - indentStringCounts[b]; + })[0] || '\t' + ); + } + + indent(indentStr) { + if (!arguments.length) { + indentStr = this.getIndentString(); + } + + if (indentStr === '') return this; // noop + + let trailingNewline = !this.intro || this.intro.slice(-1) === '\n'; + + this.sources.forEach((source, i) => { + const separator = source.separator !== undefined ? source.separator : this.separator; + const indentStart = trailingNewline || (i > 0 && /\r?\n$/.test(separator)); + + source.content.indent(indentStr, { + exclude: source.indentExclusionRanges, + indentStart, //: trailingNewline || /\r?\n$/.test( separator ) //true///\r?\n/.test( separator ) + }); + + trailingNewline = source.content.lastChar() === '\n'; + }); + + if (this.intro) { + this.intro = + indentStr + + this.intro.replace(/^[^\n]/gm, (match, index) => { + return index > 0 ? indentStr + match : match; + }); + } + + return this; + } + + prepend(str) { + this.intro = str + this.intro; + return this; + } + + toString() { + const body = this.sources + .map((source, i) => { + const separator = source.separator !== undefined ? source.separator : this.separator; + const str = (i > 0 ? separator : '') + source.content.toString(); + + return str; + }) + .join(''); + + return this.intro + body; + } + + isEmpty() { + if (this.intro.length && this.intro.trim()) return false; + if (this.sources.some((source) => !source.content.isEmpty())) return false; + return true; + } + + length() { + return this.sources.reduce( + (length, source) => length + source.content.length(), + this.intro.length, + ); + } + + trimLines() { + return this.trim('[\\r\\n]'); + } + + trim(charType) { + return this.trimStart(charType).trimEnd(charType); + } + + trimStart(charType) { + const rx = new RegExp('^' + (charType || '\\s') + '+'); + this.intro = this.intro.replace(rx, ''); + + if (!this.intro) { + let source; + let i = 0; + + do { + source = this.sources[i++]; + if (!source) { + break; + } + } while (!source.content.trimStartAborted(charType)); + } + + return this; + } + + trimEnd(charType) { + const rx = new RegExp((charType || '\\s') + '+$'); + + let source; + let i = this.sources.length - 1; + + do { + source = this.sources[i--]; + if (!source) { + this.intro = this.intro.replace(rx, ''); + break; + } + } while (!source.content.trimEndAborted(charType)); + + return this; + } + } + + MagicString.Bundle = Bundle; + MagicString.SourceMap = SourceMap; + MagicString.default = MagicString; // work around TypeScript bug https://github.com/Rich-Harris/magic-string/pull/121 + + return MagicString; + +})); +//# sourceMappingURL=magic-string.umd.js.map diff --git a/node_modules/magic-string/dist/magic-string.umd.js.map b/node_modules/magic-string/dist/magic-string.umd.js.map new file mode 100644 index 0000000..43addb8 --- /dev/null +++ b/node_modules/magic-string/dist/magic-string.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"magic-string.umd.js","sources":["../src/BitSet.js","../src/Chunk.js","../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../src/SourceMap.js","../src/utils/guessIndent.js","../src/utils/getRelativePath.js","../src/utils/isObject.js","../src/utils/getLocator.js","../src/utils/Mappings.js","../src/MagicString.js","../src/Bundle.js","../src/index-legacy.js"],"sourcesContent":["export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n","export default function guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n","export default function getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n","export default function getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendLeft');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendLeft');\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendRight');\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tif (DEBUG) this.stats.time('move');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\n\t\tif (DEBUG) this.stats.timeEnd('move');\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tif (DEBUG) this.stats.time('overwrite');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('overwrite');\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('remove');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('remove');\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('reset');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('reset');\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tif (DEBUG) this.stats.time('_split');\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif (DEBUG) this.stats.timeEnd('_split');\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","import MagicString from './MagicString.js';\nimport SourceMap from './SourceMap.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nexport default class Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n","import MagicString from './MagicString.js';\nimport Bundle from './Bundle.js';\nimport SourceMap from './SourceMap.js';\n\nMagicString.Bundle = Bundle;\nMagicString.SourceMap = SourceMap;\nMagicString.default = MagicString; // work around TypeScript bug https://github.com/Rich-Harris/magic-string/pull/121\n\nexport default MagicString;\n"],"names":[],"mappings":";;;;;;CAAe,MAAM,MAAM,CAAC;CAC5B,CAAC,WAAW,CAAC,GAAG,EAAE;CAClB,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,YAAY,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;CAC3D,CAAC;;CAED,CAAC,GAAG,CAAC,CAAC,EAAE;CACR,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;CACpC,CAAC;;CAED,CAAC,GAAG,CAAC,CAAC,EAAE;CACR,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CAChD,CAAC;CACD;;CCZe,MAAM,KAAK,CAAC;CAC3B,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;CAClC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;CACpB,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG;CAChB,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO;;CAEzB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;CACjB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;;CAEjB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;CACxB,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK;CACxB,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK;;CAErB,EAMS;CACT,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI;CACvB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;CACnB,EAAE;CACF,CAAC;;CAED,CAAC,UAAU,CAAC,OAAO,EAAE;CACrB,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;CACvB,CAAC;;CAED,CAAC,WAAW,CAAC,OAAO,EAAE;CACtB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO;CACnC,CAAC;;CAED,CAAC,KAAK,GAAG;CACT,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;;CAE9D,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;CAC1B,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;CAC1B,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;CAC9B,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;CAClC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;;CAE5B,EAAE,OAAO,KAAK;CACd,CAAC;;CAED,CAAC,QAAQ,CAAC,KAAK,EAAE;CACjB,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;CAC/C,CAAC;;CAED,CAAC,QAAQ,CAAC,EAAE,EAAE;CACd,EAAE,IAAI,KAAK,GAAG,IAAI;CAClB,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,EAAE,CAAC,KAAK,CAAC;CACZ,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;CACrB,EAAE;CACF,CAAC;;CAED,CAAC,YAAY,CAAC,EAAE,EAAE;CAClB,EAAE,IAAI,KAAK,GAAG,IAAI;CAClB,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,EAAE,CAAC,KAAK,CAAC;CACZ,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ;CACzB,EAAE;CACF,CAAC;;CAED,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;CACvC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO;CACxB,EAAE,IAAI,CAAC,WAAW,EAAE;CACpB,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;CAClB,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;CAClB,EAAE;CACF,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;;CAE5B,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;;CAEpB,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,WAAW,CAAC,OAAO,EAAE;CACtB,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;CACnC,CAAC;;CAED,CAAC,YAAY,CAAC,OAAO,EAAE;CACvB,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;CACnC,CAAC;;CAED,CAAC,KAAK,GAAG;CACT,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;CACjB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;CACjB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;CACnB,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;CAC/B,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK;CACzB,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK;CACtB,EAAE;CACF,CAAC;;CAED,CAAC,KAAK,CAAC,KAAK,EAAE;CACd,EAAE,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK;;CAEvC,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;CAC3D,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;;CAEvD,EAAE,IAAI,CAAC,QAAQ,GAAG,cAAc;;CAEhC,EAAE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;CAC5D,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;CAC7B,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;;CAEjB,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK;;CAElB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;CAC3B,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;CACpB,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc;CAChC,EAAE;;CAEF,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;CAC3B,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ;CACtD,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;CAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ;;CAEtB,EAAE,OAAO,QAAQ;CACjB,CAAC;;CAED,CAAC,QAAQ,GAAG;CACZ,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;CAC/C,CAAC;;CAED,CAAC,OAAO,CAAC,EAAE,EAAE;CACb,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;CAEpC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;CAE9C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;CACtB,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;CACjC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;CACrE,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;CACrB;CACA,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;CAC7C,IAAI;CACJ,GAAG;CACH,GAAG,OAAO,IAAI;CACd,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;;CAEjC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CAC1C,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;CACrC,EAAE;CACF,CAAC;;CAED,CAAC,SAAS,CAAC,EAAE,EAAE;CACf,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;CAEpC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;CAE9C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;CACtB,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;CACjC,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;CAC1D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;CACrB;CACA,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;CACjD,IAAI;CACJ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;CAClC,GAAG;CACH,GAAG,OAAO,IAAI;CACd,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC;;CAEjC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CAC1C,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;CACrC,EAAE;CACF,CAAC;CACD;;CCvLA;CACA,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;CAC7B,IAAI,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;CACjC,IAAI,KAAK,GAAG,kEAAkE;CAC9E,IAAI,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;CAClC,IAAI,SAAS,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;CACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACvC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;CAC/B,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;CAClB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;CAClB;CAkBA,SAAS,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;CAC/C,EAAE,IAAI,KAAK,GAAG,GAAG,GAAG,QAAQ;CAC5B,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;CAClD,EAAE,GAAG;CACL,IAAI,IAAI,OAAO,GAAG,KAAK,GAAG,EAAE;CAC5B,IAAI,KAAK,MAAM,CAAC;CAChB,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI,EAAE;CAChC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;CACrC,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC;CACpB,EAAE,OAAO,GAAG;CACZ;;CAMA;CACA,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE;CACzB,IAAI,EAAE,GAAG,OAAO,WAAW,KAAK,WAAW,mBAAmB,IAAI,WAAW,EAAE,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG;CAClH,EAAE,MAAM,CAAC,GAAG,EAAE;CACd,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;CACvE,IAAI,OAAO,GAAG,CAAC,QAAQ,EAAE;CACzB,EAAE;CACF,CAAC,GAAG;CACJ,EAAE,MAAM,CAAC,GAAG,EAAE;CACd,IAAI,IAAI,GAAG,GAAG,EAAE;CAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACzC,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACxC,IAAI;CACJ,IAAI,OAAO,GAAG;CACd,EAAE;CACF,CAAC;CACD,IAAI,YAAY,GAAG,MAAM;CACzB,EAAE,WAAW,GAAG;CAChB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;CAChB,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;CACjB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC;CAC3C,EAAE;CACF,EAAE,KAAK,CAAC,CAAC,EAAE;CACX,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;CAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;CAC1B,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;CAChC,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;CACnC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC;CAClB,IAAI;CACJ,EAAE;CACF,EAAE,KAAK,GAAG;CACV,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;CACrC,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG;CACnE,EAAE;CACF,CAAC;CAuTD,SAAS,MAAM,CAAC,OAAO,EAAE;CACzB,EAAE,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE;CACnC,EAAE,IAAI,YAAY,GAAG,CAAC;CACtB,EAAE,IAAI,UAAU,GAAG,CAAC;CACpB,EAAE,IAAI,YAAY,GAAG,CAAC;CACtB,EAAE,IAAI,UAAU,GAAG,CAAC;CACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC3C,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;CAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;CACtC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;CAC3B,IAAI,IAAI,SAAS,GAAG,CAAC;CACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC1C,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;CAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;CACpC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAC9D,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;CAChC,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;CACpE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;CAChE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;CACpE,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;CAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;CAChE,IAAI;CACJ,EAAE;CACF,EAAE,OAAO,MAAM,CAAC,KAAK,EAAE;CACvB;;CC3ZA,SAAS,OAAO,GAAG;CACnB,CAAC,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;CACjF,EAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;CACpE,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;CAC1C,EAAE,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;CAC9D,CAAC,CAAC,MAAM;CACR,EAAE,OAAO,MAAM;CACf,GAAG,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;CAC7F,EAAE,CAAC;CACH,CAAC;CACD;;CAEA,MAAM,IAAI,iBAAiB,OAAO,EAAE;;CAErB,MAAM,SAAS,CAAC;CAC/B,CAAC,WAAW,CAAC,UAAU,EAAE;CACzB,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;CAClB,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;CAC7B,EAAE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;CACnC,EAAE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc;CACjD,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK;CAC/B,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;CAC7C,EAAE,IAAI,OAAO,UAAU,CAAC,mBAAmB,KAAK,WAAW,EAAE;CAC7D,GAAG,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB;CAC5D,EAAE;CACF,EAAE,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE;CACjD,GAAG,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;CACpC,EAAE;CACF,CAAC;;CAED,CAAC,QAAQ,GAAG;CACZ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;CAC7B,CAAC;;CAED,CAAC,KAAK,GAAG;CACT,EAAE,OAAO,6CAA6C,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;CAC9E,CAAC;CACD;;CCvCe,SAAS,WAAW,CAAC,IAAI,EAAE;CAC1C,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;CAE/B,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;CAE3D,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;CACjD,EAAE,OAAO,IAAI;CACb,CAAC;;CAED;CACA;CACA;CACA,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;CACrC,EAAE,OAAO,IAAI;CACb,CAAC;;CAED;CACA,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK;CAClD,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;CACjD,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;CACtC,CAAC,CAAC,EAAE,QAAQ,CAAC;;CAEb,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;CACpC;;CCxBe,SAAS,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE;CAClD,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;CACtC,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;;CAElC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;;CAEjB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;CACrC,EAAE,SAAS,CAAC,KAAK,EAAE;CACnB,EAAE,OAAO,CAAC,KAAK,EAAE;CACjB,CAAC;;CAED,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;CACvB,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM;CAC1B,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;CACjC,CAAC;;CAED,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;CAC3C;;CCjBA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;;CAE3B,SAAS,QAAQ,CAAC,KAAK,EAAE;CACxC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB;CAClD;;CCJe,SAAS,UAAU,CAAC,MAAM,EAAE;CAC3C,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;CACzC,CAAC,MAAM,WAAW,GAAG,EAAE;;CAEvB,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACzD,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;CACvB,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;CACpC,CAAC;;CAED,CAAC,OAAO,SAAS,MAAM,CAAC,KAAK,EAAE;CAC/B,EAAE,IAAI,CAAC,GAAG,CAAC;CACX,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM;CAC5B,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;CAChB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;CACzB,GAAG,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;CAC/B,IAAI,CAAC,GAAG,CAAC;CACT,GAAG,CAAC,MAAM;CACV,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;CACb,GAAG;CACH,EAAE;CACF,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;CACpB,EAAE,MAAM,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;CAC1C,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CACzB,CAAC,CAAC;CACF;;CCxBA,MAAM,SAAS,GAAG,IAAI;;CAEP,MAAM,QAAQ,CAAC;CAC9B,CAAC,WAAW,CAAC,KAAK,EAAE;CACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;CACpB,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC;CAC5B,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC;CAC9B,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE;CACf,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;CAC1D,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;CACrB,CAAC;;CAED,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;CAC/C,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;CACtB,GAAG,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;CACnD,GAAG,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;CAChD,GAAG,IAAI,sBAAsB,GAAG,EAAE;CAClC;CACA;CACA,GAAG,OAAO,cAAc,IAAI,CAAC,IAAI,qBAAqB,GAAG,cAAc,EAAE;CACzE,IAAI,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;CACjF,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE;CACxB,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;CAC5B,IAAI;CACJ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;CAElC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;CAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;CAC5D,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;;CAEhC,IAAI,sBAAsB,GAAG,cAAc;CAC3C,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC;CAC9D,GAAG;;CAEH,GAAG,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;CAChF,GAAG,IAAI,SAAS,IAAI,CAAC,EAAE;CACvB,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;CAC3B,GAAG;CACH,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;CAEjC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;CAC1D,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;CACtC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;CACxB,EAAE;;CAEF,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;CACrB,CAAC;;CAED,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,kBAAkB,EAAE;CACzE,EAAE,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK;CACrC,EAAE,IAAI,KAAK,GAAG,IAAI;CAClB;CACA,EAAE,IAAI,mBAAmB,GAAG,KAAK;;CAEjC,EAAE,OAAO,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAE;CACxC,GAAG,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;CAC7C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;CACjB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;CAClB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC;CAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;CAC5D,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;CAChC,IAAI,KAAK,GAAG,IAAI;CAChB,IAAI,mBAAmB,GAAG,KAAK;CAC/B,GAAG,CAAC,MAAM;CACV,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;CAC1E,KAAK,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;;CAElF,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;CACpC;CACA,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;CACvD;CACA,OAAO,IAAI,CAAC,mBAAmB,EAAE;CACjC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;CACtC,QAAQ,mBAAmB,GAAG,IAAI;CAClC,OAAO;CACP,MAAM,CAAC,MAAM;CACb;CACA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;CACrC,OAAO,mBAAmB,GAAG,KAAK;CAClC,MAAM;CACN,KAAK,CAAC,MAAM;CACZ,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;CACpC,KAAK;CACL,IAAI;;CAEJ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;CACnB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC;CACjC,IAAI,KAAK,GAAG,KAAK;CACjB,GAAG;;CAEH,GAAG,iBAAiB,IAAI,CAAC;CACzB,EAAE;;CAEF,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;CACrB,CAAC;;CAED,CAAC,OAAO,CAAC,GAAG,EAAE;CACd,EAAE,IAAI,CAAC,GAAG,EAAE;;CAEZ,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;;CAE/B,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;CACxB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CAC9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;CAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;CAC5D,GAAG;CACH,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC;CAC/B,EAAE;;CAEF,EAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;CAC5D,CAAC;CACD;;CCtGA,MAAM,CAAC,GAAG,IAAI;;CAEd,MAAM,MAAM,GAAG;CACf,CAAC,UAAU,EAAE,KAAK;CAClB,CAAC,WAAW,EAAE,KAAK;CACnB,CAAC,SAAS,EAAE,KAAK;CACjB,CAAC;;CAEc,MAAM,WAAW,CAAC;CACjC,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE;CACnC,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;CAEnD,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;CAChC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;CAC9C,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;CACvC,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;CACvC,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;CAC/C,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;CAC9C,GAAG,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;CACtD,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;CACzC,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;CACvC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;CACxD,GAAG,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,qBAAqB,EAAE;CAClF,GAAG,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,EAAE;CAC9D,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;CAC7C,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;CAClD,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;CAC5D,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;CACzD,GAAG,CAAC;;CAMJ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;CACzB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK;CACnC,CAAC;;CAED,CAAC,oBAAoB,CAAC,IAAI,EAAE;CAC5B,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;CACnC,CAAC;;CAED,CAAC,MAAM,CAAC,OAAO,EAAE;CACjB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;;CAExF,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;CACvB,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;CAC5B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;CAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;CAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;CAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;CAEjC,EAAE,IAAI,KAAK,EAAE;CACb,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;CAC5B,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO;CACxB,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;CAC7B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;CAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;CAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;CAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;CAEnC,EAAE,IAAI,KAAK,EAAE;CACb,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;CAC7B,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO;CACxB,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,KAAK,GAAG;CACT,EAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;CAEjG,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU;CACrC,EAAE,IAAI,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;;CAE1F,EAAE,OAAO,aAAa,EAAE;CACxB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW;CAClD,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW;;CAE9C,GAAG,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI;CAC/C,GAAG,MAAM,eAAe,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,EAAE;;CAEzE,GAAG,IAAI,eAAe,EAAE;CACxB,IAAI,WAAW,CAAC,IAAI,GAAG,eAAe;CACtC,IAAI,eAAe,CAAC,QAAQ,GAAG,WAAW;;CAE1C,IAAI,WAAW,GAAG,eAAe;CACjC,GAAG;;CAEH,GAAG,aAAa,GAAG,iBAAiB;CACpC,EAAE;;CAEF,EAAE,MAAM,CAAC,SAAS,GAAG,WAAW;;CAEhC,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;CAClC,GAAG,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;CACpE,EAAE;;CAEF,EAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;;CAEjE,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;CAC3B,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;;CAE3B,EAAE,OAAO,MAAM;CACf,CAAC;;CAED,CAAC,kBAAkB,CAAC,OAAO,EAAE;CAC7B,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;CAEzB,EAAE,MAAM,WAAW,GAAG,CAAC;CACvB,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;CAC7C,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;CAE9C,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;;CAE1C,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;CAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;CAC/B,EAAE;;CAEF,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK;CACtC,GAAG,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;CAElC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;CAExD,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;CACrB,IAAI,QAAQ,CAAC,OAAO;CACpB,KAAK,WAAW;CAChB,KAAK,KAAK,CAAC,OAAO;CAClB,KAAK,GAAG;CACR,KAAK,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;CACzD,KAAK;CACL,GAAG,CAAC,MAAM;CACV,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC;CAC9F,GAAG;;CAEH,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;CACxD,EAAE,CAAC,CAAC;;CAEJ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;CAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;CAC/B,EAAE;;CAEF,EAAE,OAAO;CACT,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;CACrE,GAAG,OAAO,EAAE;CACZ,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE;CAC7F,IAAI;CACJ,GAAG,cAAc,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS;CACvE,GAAG,KAAK;CACR,GAAG,QAAQ,EAAE,QAAQ,CAAC,GAAG;CACzB,GAAG,mBAAmB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS;CACnE,GAAG;CACH,CAAC;;CAED,CAAC,WAAW,CAAC,OAAO,EAAE;CACtB,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACxD,CAAC;;CAED,CAAC,gBAAgB,GAAG;CACpB,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;CACpC,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC9C,EAAE;CACF,CAAC;;CAED,CAAC,mBAAmB,GAAG;CACvB,EAAE,IAAI,CAAC,gBAAgB,EAAE;CACzB,EAAE,OAAO,IAAI,CAAC,SAAS;CACvB,CAAC;;CAED,CAAC,eAAe,GAAG;CACnB,EAAE,IAAI,CAAC,gBAAgB,EAAE;CACzB,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS;CACxD,CAAC;;CAED,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;CAC5B,EAAE,MAAM,OAAO,GAAG,YAAY;;CAE9B,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;CAC3B,GAAG,OAAO,GAAG,SAAS;CACtB,GAAG,SAAS,GAAG,SAAS;CACxB,EAAE;;CAEF,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;CAC/B,GAAG,IAAI,CAAC,gBAAgB,EAAE;CAC1B,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI;CACrC,EAAE;;CAEF,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;CAEpC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;CAEzB;CACA,EAAE,MAAM,UAAU,GAAG,EAAE;;CAEvB,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;CACvB,GAAG,MAAM,UAAU;CACnB,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO;CAChF,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;CACrC,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;CACzD,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;CACzB,IAAI;CACJ,GAAG,CAAC,CAAC;CACL,EAAE;;CAEF,EAAE,IAAI,yBAAyB,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK;CAC/D,EAAE,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;CAC9B,GAAG,IAAI,yBAAyB,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;CAC/D,GAAG,yBAAyB,GAAG,IAAI;CACnC,GAAG,OAAO,KAAK;CACf,EAAE,CAAC;;CAEH,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;CAEpD,EAAE,IAAI,SAAS,GAAG,CAAC;CACnB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;;CAE7B,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;;CAExB,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;CACrB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;CAChC,KAAK,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;CAE7D,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;CAC/B,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;CAClF,KAAK;CACL,IAAI;CACJ,GAAG,CAAC,MAAM;CACV,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK;;CAE3B,IAAI,OAAO,SAAS,GAAG,GAAG,EAAE;CAC5B,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;CACjC,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;CAE3C,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;CACzB,OAAO,yBAAyB,GAAG,IAAI;CACvC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,yBAAyB,EAAE;CAC7D,OAAO,yBAAyB,GAAG,KAAK;;CAExC,OAAO,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE;CACtC,QAAQ,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;CACrC,OAAO,CAAC,MAAM;CACd,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;CAC1C,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI;CAC1B,QAAQ,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;CACrC,OAAO;CACP,MAAM;CACN,KAAK;;CAEL,KAAK,SAAS,IAAI,CAAC;CACnB,IAAI;CACJ,GAAG;;CAEH,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG;CACxB,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;CACrB,EAAE;;CAEF,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;;CAEpD,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,MAAM,GAAG;CACV,EAAE,MAAM,IAAI,KAAK;CACjB,GAAG,iFAAiF;CACpF,GAAG;CACH,CAAC;;CAED,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;CAC5B,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;CAC1B,GAAG,OAAO,CAAC,IAAI;CACf,IAAI,oFAAoF;CACxF,IAAI;CACJ,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;CAC3B,EAAE;;CAEF,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;CACxC,CAAC;;CAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;CAC7B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;CAC3B,GAAG,OAAO,CAAC,IAAI;CACf,IAAI,uFAAuF;CAC3F,IAAI;CACJ,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI;CAC5B,EAAE;;CAEF,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;CAC1C,CAAC;;CAED,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;CACzB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;CAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;CACzB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;CAE7B,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;;CAI9F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;CAClB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;CAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;CACnC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;CAE9B,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ;CAChC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI;;CAE5B,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;CACvD,EAAE,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;CAE/D,EAAE,IAAI,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,QAAQ;CACtC,EAAE,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO;;CAE3C,EAAE,IAAI,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK;CACnC,EAAE,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;;CAExC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;CAClD,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;CAClB,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;CAClC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI;CAC7B,EAAE;;CAEF,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO;CAC1B,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,IAAI;;CAE9B,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK;CACvC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI;CAGtC,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;CACzC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;CACzB,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;CAC1F,CAAC;;CAED,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;CACtC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;CAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;CAEzB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC;;CAE9F,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;CAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAC9C,EAAE;;CAEF,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;CACzE,EAAE,IAAI,KAAK,KAAK,GAAG;CACnB,GAAG,MAAM,IAAI,KAAK;CAClB,IAAI,+EAA+E;CACnF,IAAI;;CAIJ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;CAElB,EAAE,IAAI,OAAO,KAAK,IAAI,EAAE;CACxB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;CAC1B,IAAI,OAAO,CAAC,IAAI;CAChB,KAAK,+HAA+H;CACpI,KAAK;CACL,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI;CAC3B,GAAG;;CAEH,GAAG,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;CAChC,EAAE;CACF,EAAE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK;CACrE,EAAE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK;;CAErE,EAAE,IAAI,SAAS,EAAE;CACjB,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;CACnD,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;CACrD,IAAI,QAAQ,EAAE,IAAI;CAClB,IAAI,KAAK,EAAE,IAAI;CACf,IAAI,UAAU,EAAE,IAAI;CACpB,IAAI,CAAC;CACL,EAAE;;CAEF,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;CACnC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;CAE9B,EAAE,IAAI,KAAK,EAAE;CACb,GAAG,IAAI,KAAK,GAAG,KAAK;CACpB,GAAG,OAAO,KAAK,KAAK,IAAI,EAAE;CAC1B,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;CAChD,KAAK,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;CAC7D,IAAI;CACJ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI;CACtB,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;CACzB,GAAG;;CAEH,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC;CAC7C,EAAE,CAAC,MAAM;CACT;CACA,GAAG,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;;CAEtE;CACA,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ;CACvB,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI;CAC3B,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,OAAO,CAAC,OAAO,EAAE;CAClB,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;;CAExF,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;CACnC,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;CAC7B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;CAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;CAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;CAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;CAEjC,EAAE,IAAI,KAAK,EAAE;CACb,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;CAC7B,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;CACpC,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;CAC9B,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;;CAE7B,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;;CAI3F,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;CAEpB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;CAEnC,EAAE,IAAI,KAAK,EAAE;CACb,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;CAC9B,EAAE,CAAC,MAAM;CACT,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK;CACpC,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE;CACpB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;CAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;CAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;CAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAC9C,EAAE;;CAEF,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,IAAI;;CAEhC,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;CAC5F,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;CAIpE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;CAElB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;CAEjC,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;CACnB,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;CACnB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;;CAEjB,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;CAC3D,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;CACnB,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;CAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;CAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;CAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAC9C,EAAE;;CAEF,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,IAAI;;CAEhC,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;CAC5F,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;CAIpE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CACpB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;CAElB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;CAEjC,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,KAAK,CAAC,KAAK,EAAE;;CAEhB,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;CAC3D,EAAE;CAGF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,QAAQ,GAAG;CACZ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;CACjE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;CAC5B,EAAE,GAAG;CACL,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;CACrE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;CAC3E,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;CACrE,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,QAAQ;CAClC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;CACjE,EAAE,OAAO,EAAE;CACX,CAAC;;CAED,CAAC,QAAQ,GAAG;CACZ,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;CAC3C,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;CAC/D,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK;CAC1B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;CAC5B,EAAE,GAAG;CACL,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;CAC/B,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;CAC1C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;CAC5E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO;CACnC,GAAG;;CAEH,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;CACjC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;CAC5C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;CAC9E,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO;CACrC,GAAG;;CAEH,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;CAC/B,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;CAC1C,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;CAC5E,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO;CACnC,GAAG;CACH,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,QAAQ;CAClC,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;CACvC,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO;CACzE,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,OAAO;CAC7B,CAAC;;CAED,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;CAC5D,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;CAC7B,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;CAEzB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;CAClC,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAClD,GAAG,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;CAC9C,EAAE;;CAEF,EAAE,IAAI,MAAM,GAAG,EAAE;;CAEjB;CACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;CAC7B,EAAE,OAAO,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE;CAC/D;CACA,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE;CAC9C,IAAI,OAAO,MAAM;CACjB,GAAG;;CAEH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;CACrB,EAAE;;CAEF,EAAE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;CACpD,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;;CAEnF,EAAE,MAAM,UAAU,GAAG,KAAK;CAC1B,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;CACvE,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK;CACzB,GAAG;;CAEH,GAAG,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG;CAC5D,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;CACvD,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;;CAEhF,GAAG,MAAM,UAAU,GAAG,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;CACpE,GAAG,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;;CAE/F,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;;CAEtD,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;CAC3D,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK;CACzB,GAAG;;CAEH,GAAG,IAAI,WAAW,EAAE;CACpB,IAAI;CACJ,GAAG;;CAEH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;CACrB,EAAE;;CAEF,EAAE,OAAO,MAAM;CACf,CAAC;;CAED;CACA,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;CAClB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;CAC5B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;CACxB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;;CAE1C,EAAE,OAAO,KAAK;CACd,CAAC;;CAED,CAAC,MAAM,CAAC,KAAK,EAAE;CACf,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;;CAIhD,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB;CACpC,EAAE,IAAI,aAAa,GAAG,KAAK;CAC3B,EAAE,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG;;CAEzC,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;;CAEnE,GAAG,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;CAE5E;CACA,GAAG,IAAI,KAAK,KAAK,aAAa,EAAE;;CAEhC,GAAG,aAAa,GAAG,KAAK;CACxB,EAAE;CACF,CAAC;;CAED,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;CAC3B,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;CAC5C;CACA,GAAG,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;CAC/C,GAAG,MAAM,IAAI,KAAK;CAClB,IAAI,CAAC,mDAAmD,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;CACzG,IAAI;CACJ,EAAE;;CAEF,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;CAErC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK;CAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ;CAChC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ;;CAErC,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,QAAQ;;CAEzD,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK;CAEhC,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,QAAQ,GAAG;CACZ,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK;;CAEtB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;CAC7B,EAAE,OAAO,KAAK,EAAE;CAChB,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;CAC1B,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;CACrB,EAAE;;CAEF,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK;CACzB,CAAC;;CAED,CAAC,OAAO,GAAG;CACX,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;CAC7B,EAAE,GAAG;CACL,GAAG;CACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;CAC7C,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;CAClD,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;CAC7C;CACA,IAAI,OAAO,KAAK;CAChB,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,IAAI;CAC9B,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,MAAM,GAAG;CACV,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;CAC7B,EAAE,IAAI,MAAM,GAAG,CAAC;CAChB,EAAE,GAAG;CACL,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;CAC3E,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,CAAC,IAAI;CAC9B,EAAE,OAAO,MAAM;CACf,CAAC;;CAED,CAAC,SAAS,GAAG;CACb,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;CAC9B,CAAC;;CAED,CAAC,IAAI,CAAC,QAAQ,EAAE;CAChB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CACnD,CAAC;;CAED,CAAC,cAAc,CAAC,QAAQ,EAAE;CAC1B,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC;;CAEnD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;CAEpC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;;CAE5B,EAAE,GAAG;CACL,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;CACxB,GAAG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;;CAEpC;CACA,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;CAC1B,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;CAClC,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;CAChC,IAAI;;CAEJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;CACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI;CAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;CAC3C,GAAG;;CAEH,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI;CAC3B,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ;CACzB,EAAE,CAAC,QAAQ,KAAK;;CAEhB,EAAE,OAAO,KAAK;CACd,CAAC;;CAED,CAAC,OAAO,CAAC,QAAQ,EAAE;CACnB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;CAC/B,EAAE,OAAO,IAAI;CACb,CAAC;CACD,CAAC,gBAAgB,CAAC,QAAQ,EAAE;CAC5B,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;;CAExD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CACzC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI;;CAEpC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;;CAE7B,EAAE,GAAG;CACL,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;CACxB,GAAG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;;CAEtC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;CAC1B;CACA,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI;;CAE7D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;CACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI;CAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI;CAC3C,GAAG;;CAEH,GAAG,IAAI,OAAO,EAAE,OAAO,IAAI;CAC3B,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI;CACrB,EAAE,CAAC,QAAQ,KAAK;;CAEhB,EAAE,OAAO,KAAK;CACd,CAAC;;CAED,CAAC,SAAS,CAAC,QAAQ,EAAE;CACrB,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;CACjC,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,UAAU,GAAG;CACd,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;CAC1C,CAAC;;CAED,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE;CAC1C,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;CACtC,GAAG,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;CACxC,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;CAC1D;CACA,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,GAAG;CAC9B,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;CACnC,KAAK,MAAM,GAAG,GAAG,CAAC,CAAC;CACnB,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;CAC7C,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnB,IAAI,CAAC,CAAC;CACN,GAAG,CAAC,MAAM;CACV,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;CAChE,GAAG;CACH,EAAE;CACF,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;CAC7B,GAAG,IAAI,KAAK;CACZ,GAAG,MAAM,OAAO,GAAG,EAAE;CACrB,GAAG,QAAQ,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;CAClC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;CACvB,GAAG;CACH,GAAG,OAAO,OAAO;CACjB,EAAE;CACF,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;CAC1B,GAAG,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;CACvD,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;CAC9B,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;CAC7B,KAAK,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC7D,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;CACnC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;CAC7E,KAAK;CACL,IAAI;CACJ,GAAG,CAAC,CAAC;CACL,EAAE,CAAC,MAAM;CACT,GAAG,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;CACjD,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;CACrC,IAAI,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC5D,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;CAClC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;CAC5E,IAAI;CACJ,GAAG;CACH,EAAE;CACF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;CACrC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;CAC3B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;;CAExC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;CACpB,GAAG,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;CAC1C,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;CACtD,GAAG;CACH,GAAG,IAAI,MAAM,KAAK,WAAW,EAAE;CAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;CAC7D,GAAG;CACH,EAAE;;CAEF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE;CACnC,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;CACvC,GAAG,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;CACvD,EAAE;;CAEF,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;CACtD,CAAC;;CAED,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE;CACxC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;CAC3B,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM;CACpC,EAAE;CACF,GAAG,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;CACvC,GAAG,KAAK,KAAK,EAAE;CACf,GAAG,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,YAAY;CACxD,IAAI;CACJ,GAAG,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC;CAC/D,GAAG,IAAI,YAAY,GAAG,WAAW;CACjC,GAAG,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;CAC1C,IAAI,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;CACzD,GAAG;CACH,GAAG,IAAI,QAAQ,KAAK,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE,YAAY,CAAC;CAC3F,EAAE;;CAEF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE;CACtC,EAAE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;CACvC,GAAG,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;CAC1D,EAAE;;CAEF,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;CAC3B,GAAG,MAAM,IAAI,SAAS;CACtB,IAAI,2EAA2E;CAC/E,IAAI;CACJ,EAAE;;CAEF,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC;CACtD,CAAC;CACD;;CC94BA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;;CAEnC,MAAM,MAAM,CAAC;CAC5B,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;CAC3B,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE;CAClC,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI;CAC7E,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE;CACnB,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE;CACzB,EAAE,IAAI,CAAC,2BAA2B,GAAG,EAAE;CACvC,CAAC;;CAED,CAAC,SAAS,CAAC,MAAM,EAAE;CACnB,EAAE,IAAI,MAAM,YAAY,WAAW,EAAE;CACrC,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC;CACzB,IAAI,OAAO,EAAE,MAAM;CACnB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;CAC7B,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS;CAC7B,IAAI,CAAC;CACL,EAAE;;CAEF,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;CAC5C,GAAG,MAAM,IAAI,KAAK;CAClB,IAAI,sIAAsI;CAC1I,IAAI;CACJ,EAAE;;CAEF,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;CACvF,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;CAChF,EAAE,CAAC,CAAC;;CAEJ,EAAE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;CACtC;CACA,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;CACpC,EAAE;;CAEF,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;CACvB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;CAC5E,IAAI,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;CACjF,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;CAC5F,GAAG,CAAC,MAAM;CACV,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC9F,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,OAAO,EAAE;CAC1D,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CAC9F,IAAI;CACJ,GAAG;CACH,EAAE;;CAEF,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAC3B,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;CACtB,EAAE,IAAI,CAAC,SAAS,CAAC;CACjB,GAAG,OAAO,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;CAChC,GAAG,SAAS,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,EAAE;CAClD,GAAG,CAAC;;CAEJ,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,KAAK,GAAG;CACT,EAAE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;CAC5B,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK;CACpB,GAAG,SAAS,EAAE,IAAI,CAAC,SAAS;CAC5B,GAAG,CAAC;;CAEJ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;CACnC,GAAG,MAAM,CAAC,SAAS,CAAC;CACpB,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;CAC7B,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;CACnC,IAAI,SAAS,EAAE,MAAM,CAAC,SAAS;CAC/B,IAAI,CAAC;CACL,EAAE,CAAC,CAAC;;CAEJ,EAAE,OAAO,MAAM;CACf,CAAC;;CAED,CAAC,kBAAkB,CAAC,OAAO,GAAG,EAAE,EAAE;CAClC,EAAE,MAAM,KAAK,GAAG,EAAE;CAClB,EAAE,IAAI,mBAAmB,GAAG,SAAS;CACrC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;CACnC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;CAC7D,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;CAC/C,GAAG,CAAC,CAAC;CACL,EAAE,CAAC,CAAC;;CAEJ,EAAE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;CAE9C,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;CAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;CAC/B,EAAE;;CAEF,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;CACtC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;CACd,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;CACpC,GAAG;;CAEH,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;CAC/F,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO;CACrC,GAAG,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;;CAElD,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;CAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;CACvC,GAAG;;CAEH,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK;CAC9C,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;CAEnC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;CAEzD,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;CACzB,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;CACvB,MAAM,QAAQ,CAAC,OAAO;CACtB,OAAO,WAAW;CAClB,OAAO,KAAK,CAAC,OAAO;CACpB,OAAO,GAAG;CACV,OAAO,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;CAC3D,OAAO;CACP,KAAK,CAAC,MAAM;CACZ,MAAM,QAAQ,CAAC,gBAAgB;CAC/B,OAAO,WAAW;CAClB,OAAO,KAAK;CACZ,OAAO,WAAW,CAAC,QAAQ;CAC3B,OAAO,GAAG;CACV,OAAO,WAAW,CAAC,kBAAkB;CACrC,OAAO;CACP,KAAK;CACL,IAAI,CAAC,MAAM;CACX,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;CACpC,IAAI;;CAEJ,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;CACzD,GAAG,CAAC,CAAC;;CAEL,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;CAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;CACvC,GAAG;;CAEH,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,WAAW,KAAK,EAAE,EAAE;CAChD,IAAI,IAAI,mBAAmB,KAAK,SAAS,EAAE;CAC3C,KAAK,mBAAmB,GAAG,EAAE;CAC7B,IAAI;CACJ,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;CACzC,GAAG;CACH,EAAE,CAAC,CAAC;;CAEJ,EAAE,OAAO;CACT,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;CACrE,GAAG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;CAC/C,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ;CAC1F,GAAG,CAAC,CAAC;CACL,GAAG,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;CACtD,IAAI,OAAO,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI;CACzD,GAAG,CAAC,CAAC;CACL,GAAG,KAAK;CACR,GAAG,QAAQ,EAAE,QAAQ,CAAC,GAAG;CACzB,GAAG,mBAAmB;CACtB,GAAG;CACH,CAAC;;CAED,CAAC,WAAW,CAAC,OAAO,EAAE;CACtB,EAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACxD,CAAC;;CAED,CAAC,eAAe,GAAG;CACnB,EAAE,MAAM,kBAAkB,GAAG,EAAE;;CAE/B,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;CACnC,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;;CAEzD,GAAG,IAAI,SAAS,KAAK,IAAI,EAAE;;CAE3B,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;CACxE,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;CACrC,EAAE,CAAC,CAAC;;CAEJ,EAAE;CACF,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;CAClD,IAAI,OAAO,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;CACxD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;CACZ;CACA,CAAC;;CAED,CAAC,MAAM,CAAC,SAAS,EAAE;CACnB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;CACzB,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;CACrC,EAAE;;CAEF,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;CAEpC,EAAE,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI;;CAEpE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;CACtC,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;CACvF,GAAG,MAAM,WAAW,GAAG,eAAe,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;CAE7E,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE;CACpC,IAAI,OAAO,EAAE,MAAM,CAAC,qBAAqB;CACzC,IAAI,WAAW;CACf,IAAI,CAAC;;CAEL,GAAG,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI;CACvD,EAAE,CAAC,CAAC;;CAEJ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;CAClB,GAAG,IAAI,CAAC,KAAK;CACb,IAAI,SAAS;CACb,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;CACrD,KAAK,OAAO,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK;CACjD,IAAI,CAAC,CAAC;CACN,EAAE;;CAEF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,OAAO,CAAC,GAAG,EAAE;CACd,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK;CAC/B,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,QAAQ,GAAG;CACZ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACpB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;CACvB,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;CACxF,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;;CAEpE,IAAI,OAAO,GAAG;CACd,GAAG,CAAC;CACJ,IAAI,IAAI,CAAC,EAAE,CAAC;;CAEZ,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI;CAC1B,CAAC;;CAED,CAAC,OAAO,GAAG;CACX,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,KAAK;CAC1D,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK;CAC5E,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,MAAM,GAAG;CACV,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;CAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;CACvD,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;CACpB,GAAG;CACH,CAAC;;CAED,CAAC,SAAS,GAAG;CACb,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;CAC9B,CAAC;;CAED,CAAC,IAAI,CAAC,QAAQ,EAAE;CAChB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CACnD,CAAC;;CAED,CAAC,SAAS,CAAC,QAAQ,EAAE;CACrB,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;CACxD,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;CAEzC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;CACnB,GAAG,IAAI,MAAM;CACb,GAAG,IAAI,CAAC,GAAG,CAAC;;CAEZ,GAAG,GAAG;CACN,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;CAC9B,IAAI,IAAI,CAAC,MAAM,EAAE;CACjB,KAAK;CACL,IAAI;CACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;CACtD,EAAE;;CAEF,EAAE,OAAO,IAAI;CACb,CAAC;;CAED,CAAC,OAAO,CAAC,QAAQ,EAAE;CACnB,EAAE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC;;CAEnD,EAAE,IAAI,MAAM;CACZ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;CAEjC,EAAE,GAAG;CACL,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;CAC7B,GAAG,IAAI,CAAC,MAAM,EAAE;CAChB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;CAC3C,IAAI;CACJ,GAAG;CACH,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;;CAEnD,EAAE,OAAO,IAAI;CACb,CAAC;CACD;;CCpSA,WAAW,CAAC,MAAM,GAAG,MAAM;CAC3B,WAAW,CAAC,SAAS,GAAG,SAAS;CACjC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC;;;;;;;;","x_google_ignoreList":[2]} \ No newline at end of file diff --git a/node_modules/magic-string/package.json b/node_modules/magic-string/package.json new file mode 100644 index 0000000..5ba3ac6 --- /dev/null +++ b/node_modules/magic-string/package.json @@ -0,0 +1,67 @@ +{ + "name": "magic-string", + "version": "0.30.21", + "type": "commonjs", + "description": "Modify strings, generate sourcemaps", + "keywords": [ + "string", + "string manipulation", + "sourcemap", + "templating", + "transpilation" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/Rich-Harris/magic-string.git" + }, + "license": "MIT", + "author": "Rich Harris", + "main": "./dist/magic-string.cjs.js", + "module": "./dist/magic-string.es.mjs", + "sideEffects": false, + "jsnext:main": "./dist/magic-string.es.mjs", + "types": "./dist/magic-string.cjs.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/magic-string.es.mjs", + "require": "./dist/magic-string.cjs.js" + } + }, + "files": [ + "dist/*", + "index.d.ts", + "README.md" + ], + "devDependencies": { + "@eslint/js": "^9.38.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.2", + "benchmark": "^2.1.4", + "bumpp": "^10.3.1", + "conventional-changelog-cli": "^5.0.0", + "eslint": "^9.38.0", + "prettier": "^3.6.2", + "publint": "^0.3.15", + "rollup": "^4.52.5", + "source-map-js": "^1.2.1", + "source-map-support": "^0.5.21", + "vitest": "^4.0.2" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + }, + "scripts": { + "build": "rollup -c", + "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", + "format": "prettier --single-quote --print-width 100 --use-tabs --write .", + "lint": "eslint src test && publint", + "lint:fix": "eslint src test --fix", + "release": "bumpp -x \"pnpm run changelog\" --all", + "pretest": "pnpm run build", + "test": "vitest run", + "test:dev": "vitest", + "bench": "pnpm run build && node benchmark/index.mjs", + "watch": "rollup -cw" + } +} \ No newline at end of file diff --git a/node_modules/nanoid/LICENSE b/node_modules/nanoid/LICENSE new file mode 100644 index 0000000..37f56aa --- /dev/null +++ b/node_modules/nanoid/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2017 Andrey Sitnik <andrey@sitnik.ru> + +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. diff --git a/node_modules/nanoid/README.md b/node_modules/nanoid/README.md new file mode 100644 index 0000000..35abb57 --- /dev/null +++ b/node_modules/nanoid/README.md @@ -0,0 +1,39 @@ +# Nano ID + +<img src="https://ai.github.io/nanoid/logo.svg" align="right" + alt="Nano ID logo by Anton Lovchikov" width="180" height="94"> + +**English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md) + +A tiny, secure, URL-friendly, unique string ID generator for JavaScript. + +> “An amazing level of senseless perfectionism, +> which is simply impossible not to respect.” + +* **Small.** 130 bytes (minified and gzipped). No dependencies. + [Size Limit] controls the size. +* **Fast.** It is 2 times faster than UUID. +* **Safe.** It uses hardware random generator. Can be used in clusters. +* **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`). + So ID size was reduced from 36 to 21 symbols. +* **Portable.** Nano ID was ported + to [20 programming languages](#other-programming-languages). + +```js +import { nanoid } from 'nanoid' +model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT" +``` + +Supports modern browsers, IE [with Babel], Node.js and React Native. + +[online tool]: https://gitpod.io/#https://github.com/ai/nanoid/ +[with Babel]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/ +[Size Limit]: https://github.com/ai/size-limit + +<a href="https://evilmartians.com/?utm_source=nanoid"> + <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" + alt="Sponsored by Evil Martians" width="236" height="54"> +</a> + +## Docs +Read full docs **[here](https://github.com/ai/nanoid#readme)**. diff --git a/node_modules/nanoid/async/index.browser.cjs b/node_modules/nanoid/async/index.browser.cjs new file mode 100644 index 0000000..80d1871 --- /dev/null +++ b/node_modules/nanoid/async/index.browser.cjs @@ -0,0 +1,69 @@ +let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) + +let customAlphabet = (alphabet, defaultSize = 21) => { + // First, a bitmask is necessary to generate the ID. The bitmask makes bytes + // values closer to the alphabet size. The bitmask calculates the closest + // `2^31 - 1` number, which exceeds the alphabet size. + // For example, the bitmask for the alphabet size 30 is 31 (00011111). + // `Math.clz32` is not used, because it is not available in browsers. + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + // Though, the bitmask solution is not perfect since the bytes exceeding + // the alphabet size are refused. Therefore, to reliably generate the ID, + // the random bytes redundancy has to be satisfied. + + // Note: every hardware random generator call is performance expensive, + // because the system call for entropy collection takes a lot of time. + // So, to avoid additional system calls, extra bytes are requested in advance. + + // Next, a step determines how many random bytes to generate. + // The number of random bytes gets decided upon the ID size, mask, + // alphabet size, and magic number 1.6 (using 1.6 peaks at performance + // according to benchmarks). + + // `-~f => Math.ceil(f)` if f is a float + // `-~i => i + 1` if i is an integer + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + + return async (size = defaultSize) => { + let id = '' + while (true) { + let bytes = crypto.getRandomValues(new Uint8Array(step)) + // A compact alternative for `for (var i = 0; i < step; i++)`. + let i = step | 0 + while (i--) { + // Adding `|| ''` refuses a random byte that exceeds the alphabet size. + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} + +let nanoid = async (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array((size |= 0))) + + // A compact alternative for `for (var i = 0; i < step; i++)`. + while (size--) { + // It is incorrect to use bytes exceeding the alphabet size. + // The following mask reduces the random byte in the 0-255 value + // range to the 0-63 value range. Therefore, adding hacks, such + // as empty string fallback or magic numbers, is unneccessary because + // the bitmask trims bytes down to the alphabet size. + let byte = bytes[size] & 63 + if (byte < 36) { + // `0-9a-z` + id += byte.toString(36) + } else if (byte < 62) { + // `A-Z` + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} + +module.exports = { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.browser.js b/node_modules/nanoid/async/index.browser.js new file mode 100644 index 0000000..fbaa230 --- /dev/null +++ b/node_modules/nanoid/async/index.browser.js @@ -0,0 +1,34 @@ +let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return async (size = defaultSize) => { + let id = '' + while (true) { + let bytes = crypto.getRandomValues(new Uint8Array(step)) + let i = step | 0 + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let nanoid = async (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array((size |= 0))) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.cjs b/node_modules/nanoid/async/index.cjs new file mode 100644 index 0000000..f1b0ad0 --- /dev/null +++ b/node_modules/nanoid/async/index.cjs @@ -0,0 +1,71 @@ +let crypto = require('crypto') + +let { urlAlphabet } = require('../url-alphabet/index.cjs') + +// `crypto.randomFill()` is a little faster than `crypto.randomBytes()`, +// because it is possible to use in combination with `Buffer.allocUnsafe()`. +let random = bytes => + new Promise((resolve, reject) => { + // `Buffer.allocUnsafe()` is faster because it doesn’t flush the memory. + // Memory flushing is unnecessary since the buffer allocation itself resets + // the memory with the new bytes. + crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { + if (err) { + reject(err) + } else { + resolve(buf) + } + }) + }) + +let customAlphabet = (alphabet, defaultSize = 21) => { + // First, a bitmask is necessary to generate the ID. The bitmask makes bytes + // values closer to the alphabet size. The bitmask calculates the closest + // `2^31 - 1` number, which exceeds the alphabet size. + // For example, the bitmask for the alphabet size 30 is 31 (00011111). + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + // Though, the bitmask solution is not perfect since the bytes exceeding + // the alphabet size are refused. Therefore, to reliably generate the ID, + // the random bytes redundancy has to be satisfied. + + // Note: every hardware random generator call is performance expensive, + // because the system call for entropy collection takes a lot of time. + // So, to avoid additional system calls, extra bytes are requested in advance. + + // Next, a step determines how many random bytes to generate. + // The number of random bytes gets decided upon the ID size, mask, + // alphabet size, and magic number 1.6 (using 1.6 peaks at performance + // according to benchmarks). + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + // A compact alternative for `for (var i = 0; i < step; i++)`. + let i = step + while (i--) { + // Adding `|| ''` refuses a random byte that exceeds the alphabet size. + id += alphabet[bytes[i] & mask] || '' + if (id.length >= size) return id + } + return tick(id, size) + }) + + return size => tick('', size) +} + +let nanoid = (size = 21) => + random((size |= 0)).then(bytes => { + let id = '' + // A compact alternative for `for (var i = 0; i < step; i++)`. + while (size--) { + // It is incorrect to use bytes exceeding the alphabet size. + // The following mask reduces the random byte in the 0-255 value + // range to the 0-63 value range. Therefore, adding hacks, such + // as empty string fallback or magic numbers, is unneccessary because + // the bitmask trims bytes down to the alphabet size. + id += urlAlphabet[bytes[size] & 63] + } + return id + }) + +module.exports = { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.d.ts b/node_modules/nanoid/async/index.d.ts new file mode 100644 index 0000000..9e91965 --- /dev/null +++ b/node_modules/nanoid/async/index.d.ts @@ -0,0 +1,56 @@ +/** + * Generate secure URL-friendly unique ID. The non-blocking version. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid/async' + * nanoid().then(id => { + * model.id = id + * }) + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A promise with a random string. + */ +export function nanoid(size?: number): Promise<string> + +/** + * A low-level function. + * Generate secure unique ID with custom alphabet. The non-blocking version. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A function that returns a promise with a random string. + * + * ```js + * import { customAlphabet } from 'nanoid/async' + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid().then(id => { + * model.id = id //=> "8ё56а" + * }) + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => Promise<string> + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { random } from 'nanoid/async' + * random(5).then(bytes => { + * bytes //=> [10, 67, 212, 67, 89] + * }) + * ``` + * + * @param bytes Size of the array. + * @returns A promise with a random bytes array. + */ +export function random(bytes: number): Promise<Uint8Array> diff --git a/node_modules/nanoid/async/index.js b/node_modules/nanoid/async/index.js new file mode 100644 index 0000000..cec454a --- /dev/null +++ b/node_modules/nanoid/async/index.js @@ -0,0 +1,35 @@ +import crypto from 'crypto' +import { urlAlphabet } from '../url-alphabet/index.js' +let random = bytes => + new Promise((resolve, reject) => { + crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { + if (err) { + reject(err) + } else { + resolve(buf) + } + }) + }) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length >= size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random((size |= 0)).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.native.js b/node_modules/nanoid/async/index.native.js new file mode 100644 index 0000000..7c1d6f3 --- /dev/null +++ b/node_modules/nanoid/async/index.native.js @@ -0,0 +1,26 @@ +import { getRandomBytesAsync } from 'expo-random' +import { urlAlphabet } from '../url-alphabet/index.js' +let random = getRandomBytesAsync +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length >= size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random((size |= 0)).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/package.json b/node_modules/nanoid/async/package.json new file mode 100644 index 0000000..578cdb4 --- /dev/null +++ b/node_modules/nanoid/async/package.json @@ -0,0 +1,12 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": { + "./index.js": "./index.native.js" + }, + "browser": { + "./index.js": "./index.browser.js", + "./index.cjs": "./index.browser.cjs" + } +} \ No newline at end of file diff --git a/node_modules/nanoid/bin/nanoid.cjs b/node_modules/nanoid/bin/nanoid.cjs new file mode 100755 index 0000000..c76db0f --- /dev/null +++ b/node_modules/nanoid/bin/nanoid.cjs @@ -0,0 +1,55 @@ +#!/usr/bin/env node + +let { nanoid, customAlphabet } = require('..') + +function print(msg) { + process.stdout.write(msg + '\n') +} + +function error(msg) { + process.stderr.write(msg + '\n') + process.exit(1) +} + +if (process.argv.includes('--help') || process.argv.includes('-h')) { + print(` + Usage + $ nanoid [options] + + Options + -s, --size Generated ID size + -a, --alphabet Alphabet to use + -h, --help Show this help + + Examples + $ nanoid --s 15 + S9sBF77U6sDB8Yg + + $ nanoid --size 10 --alphabet abc + bcabababca`) + process.exit() +} + +let alphabet, size +for (let i = 2; i < process.argv.length; i++) { + let arg = process.argv[i] + if (arg === '--size' || arg === '-s') { + size = Number(process.argv[i + 1]) + i += 1 + if (Number.isNaN(size) || size <= 0) { + error('Size must be positive integer') + } + } else if (arg === '--alphabet' || arg === '-a') { + alphabet = process.argv[i + 1] + i += 1 + } else { + error('Unknown argument ' + arg) + } +} + +if (alphabet) { + let customNanoid = customAlphabet(alphabet, size) + print(customNanoid()) +} else { + print(nanoid(size)) +} diff --git a/node_modules/nanoid/index.browser.cjs b/node_modules/nanoid/index.browser.cjs new file mode 100644 index 0000000..d21a91f --- /dev/null +++ b/node_modules/nanoid/index.browser.cjs @@ -0,0 +1,72 @@ +// This file replaces `index.js` in bundlers like webpack or Rollup, +// according to `browser` config in `package.json`. + +let { urlAlphabet } = require('./url-alphabet/index.cjs') + +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) + +let customRandom = (alphabet, defaultSize, getRandom) => { + // First, a bitmask is necessary to generate the ID. The bitmask makes bytes + // values closer to the alphabet size. The bitmask calculates the closest + // `2^31 - 1` number, which exceeds the alphabet size. + // For example, the bitmask for the alphabet size 30 is 31 (00011111). + // `Math.clz32` is not used, because it is not available in browsers. + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + // Though, the bitmask solution is not perfect since the bytes exceeding + // the alphabet size are refused. Therefore, to reliably generate the ID, + // the random bytes redundancy has to be satisfied. + + // Note: every hardware random generator call is performance expensive, + // because the system call for entropy collection takes a lot of time. + // So, to avoid additional system calls, extra bytes are requested in advance. + + // Next, a step determines how many random bytes to generate. + // The number of random bytes gets decided upon the ID size, mask, + // alphabet size, and magic number 1.6 (using 1.6 peaks at performance + // according to benchmarks). + + // `-~f => Math.ceil(f)` if f is a float + // `-~i => i + 1` if i is an integer + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + // A compact alternative for `for (var i = 0; i < step; i++)`. + let j = step | 0 + while (j--) { + // Adding `|| ''` refuses a random byte that exceeds the alphabet size. + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} + +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) + +let nanoid = (size = 21) => + crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { + // It is incorrect to use bytes exceeding the alphabet size. + // The following mask reduces the random byte in the 0-255 value + // range to the 0-63 value range. Therefore, adding hacks, such + // as empty string fallback or magic numbers, is unneccessary because + // the bitmask trims bytes down to the alphabet size. + byte &= 63 + if (byte < 36) { + // `0-9a-z` + id += byte.toString(36) + } else if (byte < 62) { + // `A-Z` + id += (byte - 26).toString(36).toUpperCase() + } else if (byte > 62) { + id += '-' + } else { + id += '_' + } + return id + }, '') + +module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.browser.js b/node_modules/nanoid/index.browser.js new file mode 100644 index 0000000..7d3b876 --- /dev/null +++ b/node_modules/nanoid/index.browser.js @@ -0,0 +1,34 @@ +import { urlAlphabet } from './url-alphabet/index.js' +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step | 0 + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => + crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { + byte &= 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte > 62) { + id += '-' + } else { + id += '_' + } + return id + }, '') +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.cjs b/node_modules/nanoid/index.cjs new file mode 100644 index 0000000..c20e374 --- /dev/null +++ b/node_modules/nanoid/index.cjs @@ -0,0 +1,85 @@ +let crypto = require('crypto') + +let { urlAlphabet } = require('./url-alphabet/index.cjs') + +// It is best to make fewer, larger requests to the crypto module to +// avoid system call overhead. So, random numbers are generated in a +// pool. The pool is a Buffer that is larger than the initial random +// request size by this multiplier. The pool is enlarged if subsequent +// requests exceed the maximum buffer size. +const POOL_SIZE_MULTIPLIER = 128 +let pool, poolOffset + +let fillPool = bytes => { + if (!pool || pool.length < bytes) { + pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) + crypto.randomFillSync(pool) + poolOffset = 0 + } else if (poolOffset + bytes > pool.length) { + crypto.randomFillSync(pool) + poolOffset = 0 + } + poolOffset += bytes +} + +let random = bytes => { + // `|=` convert `bytes` to number to prevent `valueOf` abusing and pool pollution + fillPool((bytes |= 0)) + return pool.subarray(poolOffset - bytes, poolOffset) +} + +let customRandom = (alphabet, defaultSize, getRandom) => { + // First, a bitmask is necessary to generate the ID. The bitmask makes bytes + // values closer to the alphabet size. The bitmask calculates the closest + // `2^31 - 1` number, which exceeds the alphabet size. + // For example, the bitmask for the alphabet size 30 is 31 (00011111). + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + // Though, the bitmask solution is not perfect since the bytes exceeding + // the alphabet size are refused. Therefore, to reliably generate the ID, + // the random bytes redundancy has to be satisfied. + + // Note: every hardware random generator call is performance expensive, + // because the system call for entropy collection takes a lot of time. + // So, to avoid additional system calls, extra bytes are requested in advance. + + // Next, a step determines how many random bytes to generate. + // The number of random bytes gets decided upon the ID size, mask, + // alphabet size, and magic number 1.6 (using 1.6 peaks at performance + // according to benchmarks). + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + // A compact alternative for `for (let i = 0; i < step; i++)`. + let i = step + while (i--) { + // Adding `|| ''` refuses a random byte that exceeds the alphabet size. + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} + +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) + +let nanoid = (size = 21) => { + // `|=` convert `size` to number to prevent `valueOf` abusing and pool pollution + fillPool((size |= 0)) + let id = '' + // We are reading directly from the random pool to avoid creating new array + for (let i = poolOffset - size; i < poolOffset; i++) { + // It is incorrect to use bytes exceeding the alphabet size. + // The following mask reduces the random byte in the 0-255 value + // range to the 0-63 value range. Therefore, adding hacks, such + // as empty string fallback or magic numbers, is unneccessary because + // the bitmask trims bytes down to the alphabet size. + id += urlAlphabet[pool[i] & 63] + } + return id +} + +module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.d.cts b/node_modules/nanoid/index.d.cts new file mode 100644 index 0000000..3e111a3 --- /dev/null +++ b/node_modules/nanoid/index.d.cts @@ -0,0 +1,91 @@ +/** + * Generate secure URL-friendly unique ID. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate secure unique ID with custom alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * const { customAlphabet } = require('nanoid') + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid() //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string + +/** + * Generate unique ID with custom random generator and alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * ```js + * import { customRandom } from 'nanoid/format' + * + * const nanoid = customRandom('abcdef', 5, size => { + * const random = [] + * for (let i = 0; i < size; i++) { + * random.push(randomByte()) + * } + * return random + * }) + * + * nanoid() //=> "fbaef" + * ``` + * + * @param alphabet Alphabet used to generate a random string. + * @param size Size of the random string. + * @param random A random bytes generator. + * @returns A random string generator. + */ +export function customRandom( + alphabet: string, + size: number, + random: (bytes: number) => Uint8Array +): () => string + +/** + * URL safe symbols. + * + * ```js + * import { urlAlphabet } from 'nanoid' + * const nanoid = customAlphabet(urlAlphabet, 10) + * nanoid() //=> "Uakgb_J5m9" + * ``` + */ +export const urlAlphabet: string + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { customRandom, random } from 'nanoid' + * const nanoid = customRandom("abcdef", 5, random) + * ``` + * + * @param bytes Size of the array. + * @returns An array of random bytes. + */ +export function random(bytes: number): Uint8Array diff --git a/node_modules/nanoid/index.d.ts b/node_modules/nanoid/index.d.ts new file mode 100644 index 0000000..3e111a3 --- /dev/null +++ b/node_modules/nanoid/index.d.ts @@ -0,0 +1,91 @@ +/** + * Generate secure URL-friendly unique ID. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate secure unique ID with custom alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * const { customAlphabet } = require('nanoid') + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid() //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string + +/** + * Generate unique ID with custom random generator and alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * ```js + * import { customRandom } from 'nanoid/format' + * + * const nanoid = customRandom('abcdef', 5, size => { + * const random = [] + * for (let i = 0; i < size; i++) { + * random.push(randomByte()) + * } + * return random + * }) + * + * nanoid() //=> "fbaef" + * ``` + * + * @param alphabet Alphabet used to generate a random string. + * @param size Size of the random string. + * @param random A random bytes generator. + * @returns A random string generator. + */ +export function customRandom( + alphabet: string, + size: number, + random: (bytes: number) => Uint8Array +): () => string + +/** + * URL safe symbols. + * + * ```js + * import { urlAlphabet } from 'nanoid' + * const nanoid = customAlphabet(urlAlphabet, 10) + * nanoid() //=> "Uakgb_J5m9" + * ``` + */ +export const urlAlphabet: string + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { customRandom, random } from 'nanoid' + * const nanoid = customRandom("abcdef", 5, random) + * ``` + * + * @param bytes Size of the array. + * @returns An array of random bytes. + */ +export function random(bytes: number): Uint8Array diff --git a/node_modules/nanoid/index.js b/node_modules/nanoid/index.js new file mode 100644 index 0000000..9bc909d --- /dev/null +++ b/node_modules/nanoid/index.js @@ -0,0 +1,45 @@ +import crypto from 'crypto' +import { urlAlphabet } from './url-alphabet/index.js' +const POOL_SIZE_MULTIPLIER = 128 +let pool, poolOffset +let fillPool = bytes => { + if (!pool || pool.length < bytes) { + pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) + crypto.randomFillSync(pool) + poolOffset = 0 + } else if (poolOffset + bytes > pool.length) { + crypto.randomFillSync(pool) + poolOffset = 0 + } + poolOffset += bytes +} +let random = bytes => { + fillPool((bytes |= 0)) + return pool.subarray(poolOffset - bytes, poolOffset) +} +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + fillPool((size |= 0)) + let id = '' + for (let i = poolOffset - size; i < poolOffset; i++) { + id += urlAlphabet[pool[i] & 63] + } + return id +} +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/nanoid.js b/node_modules/nanoid/nanoid.js new file mode 100644 index 0000000..ec242ea --- /dev/null +++ b/node_modules/nanoid/nanoid.js @@ -0,0 +1 @@ +export let nanoid=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e<63?"_":"-"),""); \ No newline at end of file diff --git a/node_modules/nanoid/non-secure/index.cjs b/node_modules/nanoid/non-secure/index.cjs new file mode 100644 index 0000000..d51fcb6 --- /dev/null +++ b/node_modules/nanoid/non-secure/index.cjs @@ -0,0 +1,34 @@ +// This alphabet uses `A-Za-z0-9_-` symbols. +// The order of characters is optimized for better gzip and brotli compression. +// References to the same file (works both for gzip and brotli): +// `'use`, `andom`, and `rict'` +// References to the brotli default dictionary: +// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf` +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' + +let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = '' + // A compact alternative for `for (var i = 0; i < step; i++)`. + let i = size | 0 + while (i--) { + // `| 0` is more compact and faster than `Math.floor()`. + id += alphabet[(Math.random() * alphabet.length) | 0] + } + return id + } +} + +let nanoid = (size = 21) => { + let id = '' + // A compact alternative for `for (var i = 0; i < step; i++)`. + let i = size | 0 + while (i--) { + // `| 0` is more compact and faster than `Math.floor()`. + id += urlAlphabet[(Math.random() * 64) | 0] + } + return id +} + +module.exports = { nanoid, customAlphabet } diff --git a/node_modules/nanoid/non-secure/index.d.ts b/node_modules/nanoid/non-secure/index.d.ts new file mode 100644 index 0000000..4965322 --- /dev/null +++ b/node_modules/nanoid/non-secure/index.d.ts @@ -0,0 +1,33 @@ +/** + * Generate URL-friendly unique ID. This method uses the non-secure + * predictable random generator with bigger collision probability. + * + * ```js + * import { nanoid } from 'nanoid/non-secure' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate a unique ID based on a custom alphabet. + * This method uses the non-secure predictable random generator + * with bigger collision probability. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * import { customAlphabet } from 'nanoid/non-secure' + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * model.id = //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string diff --git a/node_modules/nanoid/non-secure/index.js b/node_modules/nanoid/non-secure/index.js new file mode 100644 index 0000000..2ea5827 --- /dev/null +++ b/node_modules/nanoid/non-secure/index.js @@ -0,0 +1,21 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = '' + let i = size | 0 + while (i--) { + id += alphabet[(Math.random() * alphabet.length) | 0] + } + return id + } +} +let nanoid = (size = 21) => { + let id = '' + let i = size | 0 + while (i--) { + id += urlAlphabet[(Math.random() * 64) | 0] + } + return id +} +export { nanoid, customAlphabet } diff --git a/node_modules/nanoid/non-secure/package.json b/node_modules/nanoid/non-secure/package.json new file mode 100644 index 0000000..9930d6a --- /dev/null +++ b/node_modules/nanoid/non-secure/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": "index.js" +} \ No newline at end of file diff --git a/node_modules/nanoid/package.json b/node_modules/nanoid/package.json new file mode 100644 index 0000000..a3d3f44 --- /dev/null +++ b/node_modules/nanoid/package.json @@ -0,0 +1,89 @@ +{ + "name": "nanoid", + "version": "3.3.11", + "description": "A tiny (116 bytes), secure URL-friendly unique string ID generator", + "keywords": [ + "uuid", + "random", + "id", + "url" + ], + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik <andrey@sitnik.ru>", + "license": "MIT", + "repository": "ai/nanoid", + "browser": { + "./index.js": "./index.browser.js", + "./async/index.js": "./async/index.browser.js", + "./async/index.cjs": "./async/index.browser.cjs", + "./index.cjs": "./index.browser.cjs" + }, + "react-native": "index.js", + "bin": "./bin/nanoid.cjs", + "sideEffects": false, + "types": "./index.d.ts", + "type": "module", + "main": "index.cjs", + "module": "index.js", + "exports": { + ".": { + "react-native": "./index.browser.js", + "browser": "./index.browser.js", + "require": { + "types": "./index.d.cts", + "default": "./index.cjs" + }, + "import": { + "types": "./index.d.ts", + "default": "./index.js" + }, + "default": "./index.js" + }, + "./package.json": "./package.json", + "./async/package.json": "./async/package.json", + "./async": { + "browser": "./async/index.browser.js", + "require": { + "types": "./index.d.cts", + "default": "./async/index.cjs" + }, + "import": { + "types": "./index.d.ts", + "default": "./async/index.js" + }, + "default": "./async/index.js" + }, + "./non-secure/package.json": "./non-secure/package.json", + "./non-secure": { + "require": { + "types": "./index.d.cts", + "default": "./non-secure/index.cjs" + }, + "import": { + "types": "./index.d.ts", + "default": "./non-secure/index.js" + }, + "default": "./non-secure/index.js" + }, + "./url-alphabet/package.json": "./url-alphabet/package.json", + "./url-alphabet": { + "require": { + "types": "./index.d.cts", + "default": "./url-alphabet/index.cjs" + }, + "import": { + "types": "./index.d.ts", + "default": "./url-alphabet/index.js" + }, + "default": "./url-alphabet/index.js" + } + } +} diff --git a/node_modules/nanoid/url-alphabet/index.cjs b/node_modules/nanoid/url-alphabet/index.cjs new file mode 100644 index 0000000..a332f0b --- /dev/null +++ b/node_modules/nanoid/url-alphabet/index.cjs @@ -0,0 +1,7 @@ +// This alphabet uses `A-Za-z0-9_-` symbols. +// The order of characters is optimized for better gzip and brotli compression. +// Same as in non-secure/index.js +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' + +module.exports = { urlAlphabet } diff --git a/node_modules/nanoid/url-alphabet/index.js b/node_modules/nanoid/url-alphabet/index.js new file mode 100644 index 0000000..c2782e5 --- /dev/null +++ b/node_modules/nanoid/url-alphabet/index.js @@ -0,0 +1,3 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +export { urlAlphabet } diff --git a/node_modules/nanoid/url-alphabet/package.json b/node_modules/nanoid/url-alphabet/package.json new file mode 100644 index 0000000..9930d6a --- /dev/null +++ b/node_modules/nanoid/url-alphabet/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": "index.js" +} \ No newline at end of file diff --git a/node_modules/picocolors/LICENSE b/node_modules/picocolors/LICENSE new file mode 100644 index 0000000..46c9b95 --- /dev/null +++ b/node_modules/picocolors/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/picocolors/README.md b/node_modules/picocolors/README.md new file mode 100644 index 0000000..8e47aa8 --- /dev/null +++ b/node_modules/picocolors/README.md @@ -0,0 +1,21 @@ +# picocolors + +The tiniest and the fastest library for terminal output formatting with ANSI colors. + +```javascript +import pc from "picocolors" + +console.log( + pc.green(`How are ${pc.italic(`you`)} doing?`) +) +``` + +- **No dependencies.** +- **14 times** smaller and **2 times** faster than chalk. +- Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist. +- Node.js v6+ & browsers support. Support for both CJS and ESM projects. +- TypeScript type declarations included. +- [`NO_COLOR`](https://no-color.org/) friendly. + +## Docs +Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub. diff --git a/node_modules/picocolors/package.json b/node_modules/picocolors/package.json new file mode 100644 index 0000000..372d4b6 --- /dev/null +++ b/node_modules/picocolors/package.json @@ -0,0 +1,25 @@ +{ + "name": "picocolors", + "version": "1.1.1", + "main": "./picocolors.js", + "types": "./picocolors.d.ts", + "browser": { + "./picocolors.js": "./picocolors.browser.js" + }, + "sideEffects": false, + "description": "The tiniest and the fastest library for terminal output formatting with ANSI colors", + "files": [ + "picocolors.*", + "types.d.ts" + ], + "keywords": [ + "terminal", + "colors", + "formatting", + "cli", + "console" + ], + "author": "Alexey Raspopov", + "repository": "alexeyraspopov/picocolors", + "license": "ISC" +} diff --git a/node_modules/picocolors/picocolors.browser.js b/node_modules/picocolors/picocolors.browser.js new file mode 100644 index 0000000..9dcf637 --- /dev/null +++ b/node_modules/picocolors/picocolors.browser.js @@ -0,0 +1,4 @@ +var x=String; +var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}}; +module.exports=create(); +module.exports.createColors = create; diff --git a/node_modules/picocolors/picocolors.d.ts b/node_modules/picocolors/picocolors.d.ts new file mode 100644 index 0000000..94e146a --- /dev/null +++ b/node_modules/picocolors/picocolors.d.ts @@ -0,0 +1,5 @@ +import { Colors } from "./types" + +declare const picocolors: Colors & { createColors: (enabled?: boolean) => Colors } + +export = picocolors diff --git a/node_modules/picocolors/picocolors.js b/node_modules/picocolors/picocolors.js new file mode 100644 index 0000000..e32df85 --- /dev/null +++ b/node_modules/picocolors/picocolors.js @@ -0,0 +1,75 @@ +let p = process || {}, argv = p.argv || [], env = p.env || {} +let isColorSupported = + !(!!env.NO_COLOR || argv.includes("--no-color")) && + (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || ((p.stdout || {}).isTTY && env.TERM !== "dumb") || !!env.CI) + +let formatter = (open, close, replace = open) => + input => { + let string = "" + input, index = string.indexOf(close, open.length) + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close + } + +let replaceClose = (string, close, replace, index) => { + let result = "", cursor = 0 + do { + result += string.substring(cursor, index) + replace + cursor = index + close.length + index = string.indexOf(close, cursor) + } while (~index) + return result + string.substring(cursor) +} + +let createColors = (enabled = isColorSupported) => { + let f = enabled ? formatter : () => String + return { + isColorSupported: enabled, + reset: f("\x1b[0m", "\x1b[0m"), + bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"), + dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"), + italic: f("\x1b[3m", "\x1b[23m"), + underline: f("\x1b[4m", "\x1b[24m"), + inverse: f("\x1b[7m", "\x1b[27m"), + hidden: f("\x1b[8m", "\x1b[28m"), + strikethrough: f("\x1b[9m", "\x1b[29m"), + + black: f("\x1b[30m", "\x1b[39m"), + red: f("\x1b[31m", "\x1b[39m"), + green: f("\x1b[32m", "\x1b[39m"), + yellow: f("\x1b[33m", "\x1b[39m"), + blue: f("\x1b[34m", "\x1b[39m"), + magenta: f("\x1b[35m", "\x1b[39m"), + cyan: f("\x1b[36m", "\x1b[39m"), + white: f("\x1b[37m", "\x1b[39m"), + gray: f("\x1b[90m", "\x1b[39m"), + + bgBlack: f("\x1b[40m", "\x1b[49m"), + bgRed: f("\x1b[41m", "\x1b[49m"), + bgGreen: f("\x1b[42m", "\x1b[49m"), + bgYellow: f("\x1b[43m", "\x1b[49m"), + bgBlue: f("\x1b[44m", "\x1b[49m"), + bgMagenta: f("\x1b[45m", "\x1b[49m"), + bgCyan: f("\x1b[46m", "\x1b[49m"), + bgWhite: f("\x1b[47m", "\x1b[49m"), + + blackBright: f("\x1b[90m", "\x1b[39m"), + redBright: f("\x1b[91m", "\x1b[39m"), + greenBright: f("\x1b[92m", "\x1b[39m"), + yellowBright: f("\x1b[93m", "\x1b[39m"), + blueBright: f("\x1b[94m", "\x1b[39m"), + magentaBright: f("\x1b[95m", "\x1b[39m"), + cyanBright: f("\x1b[96m", "\x1b[39m"), + whiteBright: f("\x1b[97m", "\x1b[39m"), + + bgBlackBright: f("\x1b[100m", "\x1b[49m"), + bgRedBright: f("\x1b[101m", "\x1b[49m"), + bgGreenBright: f("\x1b[102m", "\x1b[49m"), + bgYellowBright: f("\x1b[103m", "\x1b[49m"), + bgBlueBright: f("\x1b[104m", "\x1b[49m"), + bgMagentaBright: f("\x1b[105m", "\x1b[49m"), + bgCyanBright: f("\x1b[106m", "\x1b[49m"), + bgWhiteBright: f("\x1b[107m", "\x1b[49m"), + } +} + +module.exports = createColors() +module.exports.createColors = createColors diff --git a/node_modules/picocolors/types.d.ts b/node_modules/picocolors/types.d.ts new file mode 100644 index 0000000..cd1aec4 --- /dev/null +++ b/node_modules/picocolors/types.d.ts @@ -0,0 +1,51 @@ +export type Formatter = (input: string | number | null | undefined) => string + +export interface Colors { + isColorSupported: boolean + + reset: Formatter + bold: Formatter + dim: Formatter + italic: Formatter + underline: Formatter + inverse: Formatter + hidden: Formatter + strikethrough: Formatter + + black: Formatter + red: Formatter + green: Formatter + yellow: Formatter + blue: Formatter + magenta: Formatter + cyan: Formatter + white: Formatter + gray: Formatter + + bgBlack: Formatter + bgRed: Formatter + bgGreen: Formatter + bgYellow: Formatter + bgBlue: Formatter + bgMagenta: Formatter + bgCyan: Formatter + bgWhite: Formatter + + blackBright: Formatter + redBright: Formatter + greenBright: Formatter + yellowBright: Formatter + blueBright: Formatter + magentaBright: Formatter + cyanBright: Formatter + whiteBright: Formatter + + bgBlackBright: Formatter + bgRedBright: Formatter + bgGreenBright: Formatter + bgYellowBright: Formatter + bgBlueBright: Formatter + bgMagentaBright: Formatter + bgCyanBright: Formatter + bgWhiteBright: Formatter +} diff --git a/node_modules/postcss/LICENSE b/node_modules/postcss/LICENSE new file mode 100644 index 0000000..da057b4 --- /dev/null +++ b/node_modules/postcss/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2013 Andrey Sitnik <andrey@sitnik.ru> + +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. diff --git a/node_modules/postcss/README.md b/node_modules/postcss/README.md new file mode 100644 index 0000000..05fed07 --- /dev/null +++ b/node_modules/postcss/README.md @@ -0,0 +1,29 @@ +# PostCSS + +<img align="right" width="95" height="95" + alt="Philosopher’s stone, logo of PostCSS" + src="https://postcss.org/logo.svg"> + +PostCSS is a tool for transforming styles with JS plugins. +These plugins can lint your CSS, support variables and mixins, +transpile future CSS syntax, inline images, and more. + +PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, +and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some of the most popular CSS tools. + +--- + +<img src="https://cdn.evilmartians.com/badges/logo-no-label.svg" alt="" width="22" height="16" />  Built by + <b><a href="https://evilmartians.com/devtools?utm_source=postcss&utm_campaign=devtools-button&utm_medium=github">Evil Martians</a></b>, go-to agency for <b>developer tools</b>. + +--- + +[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree +[Evil Martians]: https://evilmartians.com/?utm_source=postcss +[Autoprefixer]: https://github.com/postcss/autoprefixer +[Stylelint]: https://stylelint.io/ +[plugins]: https://github.com/postcss/postcss#plugins + + +## Docs +Read full docs **[here](https://postcss.org/)**. diff --git a/node_modules/postcss/lib/at-rule.d.ts b/node_modules/postcss/lib/at-rule.d.ts new file mode 100644 index 0000000..89fb505 --- /dev/null +++ b/node_modules/postcss/lib/at-rule.d.ts @@ -0,0 +1,140 @@ +import Container, { + ContainerProps, + ContainerWithChildren +} from './container.js' + +declare namespace AtRule { + export interface AtRuleRaws extends Record<string, unknown> { + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The space between the at-rule name and its parameters. + */ + afterName?: string + + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the last parameter and `{` for rules. + */ + between?: string + + /** + * The rule’s selector with comments. + */ + params?: { + raw: string + value: string + } + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + } + + export interface AtRuleProps extends ContainerProps { + /** Name of the at-rule. */ + name: string + /** Parameters following the name of the at-rule. */ + params?: number | string + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: AtRuleRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { AtRule_ as default } +} + +/** + * Represents an at-rule. + * + * ```js + * Once (root, { AtRule }) { + * let media = new AtRule({ name: 'media', params: 'print' }) + * media.append(…) + * root.append(media) + * } + * ``` + * + * If it’s followed in the CSS by a `{}` block, this node will have + * a nodes property representing its children. + * + * ```js + * const root = postcss.parse('@charset "UTF-8"; @media print {}') + * + * const charset = root.first + * charset.type //=> 'atrule' + * charset.nodes //=> undefined + * + * const media = root.last + * media.nodes //=> [] + * ``` + */ +declare class AtRule_ extends Container { + /** + * An array containing the layer’s children. + * + * ```js + * const root = postcss.parse('@layer example { a { color: black } }') + * const layer = root.first + * layer.nodes.length //=> 1 + * layer.nodes[0].selector //=> 'a' + * ``` + * + * Can be `undefinded` if the at-rule has no body. + * + * ```js + * const root = postcss.parse('@layer a, b, c;') + * const layer = root.first + * layer.nodes //=> undefined + * ``` + */ + nodes: Container['nodes'] | undefined + parent: ContainerWithChildren | undefined + + raws: AtRule.AtRuleRaws + type: 'atrule' + /** + * The at-rule’s name immediately follows the `@`. + * + * ```js + * const root = postcss.parse('@media print {}') + * const media = root.first + * media.name //=> 'media' + * ``` + */ + get name(): string + set name(value: string) + + /** + * The at-rule’s parameters, the values that follow the at-rule’s name + * but precede any `{}` block. + * + * ```js + * const root = postcss.parse('@media print, screen {}') + * const media = root.first + * media.params //=> 'print, screen' + * ``` + */ + get params(): string + + set params(value: string) + + constructor(defaults?: AtRule.AtRuleProps) + assign(overrides: AtRule.AtRuleProps | object): this + clone(overrides?: Partial<AtRule.AtRuleProps>): this + cloneAfter(overrides?: Partial<AtRule.AtRuleProps>): this + cloneBefore(overrides?: Partial<AtRule.AtRuleProps>): this +} + +declare class AtRule extends AtRule_ {} + +export = AtRule diff --git a/node_modules/postcss/lib/at-rule.js b/node_modules/postcss/lib/at-rule.js new file mode 100644 index 0000000..9486447 --- /dev/null +++ b/node_modules/postcss/lib/at-rule.js @@ -0,0 +1,25 @@ +'use strict' + +let Container = require('./container') + +class AtRule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'atrule' + } + + append(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.append(...children) + } + + prepend(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.prepend(...children) + } +} + +module.exports = AtRule +AtRule.default = AtRule + +Container.registerAtRule(AtRule) diff --git a/node_modules/postcss/lib/comment.d.ts b/node_modules/postcss/lib/comment.d.ts new file mode 100644 index 0000000..6f1f66f --- /dev/null +++ b/node_modules/postcss/lib/comment.d.ts @@ -0,0 +1,68 @@ +import Container from './container.js' +import Node, { NodeProps } from './node.js' + +declare namespace Comment { + export interface CommentRaws extends Record<string, unknown> { + /** + * The space symbols before the node. + */ + before?: string + + /** + * The space symbols between `/*` and the comment’s text. + */ + left?: string + + /** + * The space symbols between the comment’s text. + */ + right?: string + } + + export interface CommentProps extends NodeProps { + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: CommentRaws + /** Content of the comment. */ + text: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Comment_ as default } +} + +/** + * It represents a class that handles + * [CSS comments](https://developer.mozilla.org/en-US/docs/Web/CSS/Comments) + * + * ```js + * Once (root, { Comment }) { + * const note = new Comment({ text: 'Note: …' }) + * root.append(note) + * } + * ``` + * + * Remember that CSS comments inside selectors, at-rule parameters, + * or declaration values will be stored in the `raws` properties + * explained above. + */ +declare class Comment_ extends Node { + parent: Container | undefined + raws: Comment.CommentRaws + type: 'comment' + /** + * The comment's text. + */ + get text(): string + + set text(value: string) + + constructor(defaults?: Comment.CommentProps) + assign(overrides: Comment.CommentProps | object): this + clone(overrides?: Partial<Comment.CommentProps>): this + cloneAfter(overrides?: Partial<Comment.CommentProps>): this + cloneBefore(overrides?: Partial<Comment.CommentProps>): this +} + +declare class Comment extends Comment_ {} + +export = Comment diff --git a/node_modules/postcss/lib/comment.js b/node_modules/postcss/lib/comment.js new file mode 100644 index 0000000..c566506 --- /dev/null +++ b/node_modules/postcss/lib/comment.js @@ -0,0 +1,13 @@ +'use strict' + +let Node = require('./node') + +class Comment extends Node { + constructor(defaults) { + super(defaults) + this.type = 'comment' + } +} + +module.exports = Comment +Comment.default = Comment diff --git a/node_modules/postcss/lib/container.d.ts b/node_modules/postcss/lib/container.d.ts new file mode 100644 index 0000000..c2b310b --- /dev/null +++ b/node_modules/postcss/lib/container.d.ts @@ -0,0 +1,483 @@ +import AtRule from './at-rule.js' +import Comment from './comment.js' +import Declaration from './declaration.js' +import Node, { ChildNode, ChildProps, NodeProps } from './node.js' +import { Root } from './postcss.js' +import Rule from './rule.js' + +declare namespace Container { + export type ContainerWithChildren<Child extends Node = ChildNode> = { + nodes: Child[] + } & ( + | AtRule + | Root + | Rule + ) + + export interface ValueOptions { + /** + * String that’s used to narrow down values and speed up the regexp search. + */ + fast?: string + + /** + * An array of property names. + */ + props?: readonly string[] + } + + export interface ContainerProps extends NodeProps { + nodes?: readonly (ChildProps | Node)[] + } + + /** + * All types that can be passed into container methods to create or add a new + * child node. + */ + export type NewChild = + | ChildProps + | Node + | readonly ChildProps[] + | readonly Node[] + | readonly string[] + | string + | undefined + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Container_ as default } +} + +/** + * The `Root`, `AtRule`, and `Rule` container nodes + * inherit some common methods to help work with their children. + * + * Note that all containers can store any content. If you write a rule inside + * a rule, PostCSS will parse it. + */ +declare abstract class Container_<Child extends Node = ChildNode> extends Node { + /** + * An array containing the container’s children. + * + * ```js + * const root = postcss.parse('a { color: black }') + * root.nodes.length //=> 1 + * root.nodes[0].selector //=> 'a' + * root.nodes[0].nodes[0].prop //=> 'color' + * ``` + */ + nodes: Child[] | undefined + + /** + * The container’s first child. + * + * ```js + * rule.first === rules.nodes[0] + * ``` + */ + get first(): Child | undefined + + /** + * The container’s last child. + * + * ```js + * rule.last === rule.nodes[rule.nodes.length - 1] + * ``` + */ + get last(): Child | undefined + /** + * Inserts new nodes to the end of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.append(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + append(...nodes: Container.NewChild[]): this + assign(overrides: Container.ContainerProps | object): this + clone(overrides?: Partial<Container.ContainerProps>): this + + cloneAfter(overrides?: Partial<Container.ContainerProps>): this + + cloneBefore(overrides?: Partial<Container.ContainerProps>): this + /** + * Iterates through the container’s immediate children, + * calling `callback` for each child. + * + * Returning `false` in the callback will break iteration. + * + * This method only iterates through the container’s immediate children. + * If you need to recursively iterate through all the container’s descendant + * nodes, use `Container#walk`. + * + * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe + * if you are mutating the array of child nodes during iteration. + * PostCSS will adjust the current index to match the mutations. + * + * ```js + * const root = postcss.parse('a { color: black; z-index: 1 }') + * const rule = root.first + * + * for (const decl of rule.nodes) { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Cycle will be infinite, because cloneBefore moves the current node + * // to the next index + * } + * + * rule.each(decl => { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Will be executed only for color and z-index + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + each( + callback: (node: Child, index: number) => false | void + ): false | undefined + + /** + * Returns `true` if callback returns `true` + * for all of the container’s children. + * + * ```js + * const noPrefixes = rule.every(i => i.prop[0] !== '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is every child pass condition. + */ + every( + condition: (node: Child, index: number, nodes: Child[]) => boolean + ): boolean + /** + * Returns a `child`’s index within the `Container#nodes` array. + * + * ```js + * rule.index( rule.nodes[2] ) //=> 2 + * ``` + * + * @param child Child of the current container. + * @return Child index. + */ + index(child: Child | number): number + + /** + * Insert new node after old node within the container. + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertAfter(oldNode: Child | number, newNode: Container.NewChild): this + + /** + * Traverses the container’s descendant nodes, calling callback + * for each comment node. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * root.walkComments(comment => { + * comment.remove() + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + + /** + * Insert new node before old node within the container. + * + * ```js + * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) + * ``` + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertBefore(oldNode: Child | number, newNode: Container.NewChild): this + /** + * Inserts new nodes to the start of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.prepend(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + prepend(...nodes: Container.NewChild[]): this + + /** + * Add child to the end of the node. + * + * ```js + * rule.push(new Declaration({ prop: 'color', value: 'black' })) + * ``` + * + * @param child New node. + * @return This node for methods chain. + */ + push(child: Child): this + + /** + * Removes all children from the container + * and cleans their parent properties. + * + * ```js + * rule.removeAll() + * rule.nodes.length //=> 0 + * ``` + * + * @return This node for methods chain. + */ + removeAll(): this + + /** + * Removes node from the container and cleans the parent properties + * from the node and its children. + * + * ```js + * rule.nodes.length //=> 5 + * rule.removeChild(decl) + * rule.nodes.length //=> 4 + * decl.parent //=> undefined + * ``` + * + * @param child Child or child’s index. + * @return This node for methods chain. + */ + removeChild(child: Child | number): this + + replaceValues( + pattern: RegExp | string, + replaced: { (substring: string, ...args: any[]): string } | string + ): this + /** + * Passes all declaration values within the container that match pattern + * through callback, replacing those values with the returned result + * of callback. + * + * This method is useful if you are using a custom unit or function + * and need to iterate through all values. + * + * ```js + * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => { + * return 15 * parseInt(string) + 'px' + * }) + * ``` + * + * @param pattern Replace pattern. + * @param {object} options Options to speed up the search. + * @param replaced String to replace pattern or callback + * that returns a new value. The callback + * will receive the same arguments + * as those passed to a function parameter + * of `String#replace`. + * @return This node for methods chain. + */ + replaceValues( + pattern: RegExp | string, + options: Container.ValueOptions, + replaced: { (substring: string, ...args: any[]): string } | string + ): this + + /** + * Returns `true` if callback returns `true` for (at least) one + * of the container’s children. + * + * ```js + * const hasPrefix = rule.some(i => i.prop[0] === '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is some child pass condition. + */ + some( + condition: (node: Child, index: number, nodes: Child[]) => boolean + ): boolean + + /** + * Traverses the container’s descendant nodes, calling callback + * for each node. + * + * Like container.each(), this method is safe to use + * if you are mutating arrays during iteration. + * + * If you only need to iterate through the container’s immediate children, + * use `Container#each`. + * + * ```js + * root.walk(node => { + * // Traverses all descendant nodes. + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walk( + callback: (node: ChildNode, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each at-rule node. + * + * If you pass a filter, iteration will only happen over at-rules + * that have matching names. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * root.walkAtRules(rule => { + * if (isOld(rule.name)) rule.remove() + * }) + * + * let first = false + * root.walkAtRules('charset', rule => { + * if (!first) { + * first = true + * } else { + * rule.remove() + * } + * }) + * ``` + * + * @param name String or regular expression to filter at-rules by name. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkAtRules( + nameFilter: RegExp | string, + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + walkAtRules( + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each declaration node. + * + * If you pass a filter, iteration will only happen over declarations + * with matching properties. + * + * ```js + * root.walkDecls(decl => { + * checkPropertySupport(decl.prop) + * }) + * + * root.walkDecls('border-radius', decl => { + * decl.remove() + * }) + * + * root.walkDecls(/^background/, decl => { + * decl.value = takeFirstColorFromGradient(decl.value) + * }) + * ``` + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param prop String or regular expression to filter declarations + * by property name. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkDecls( + propFilter: RegExp | string, + callback: (decl: Declaration, index: number) => false | void + ): false | undefined + walkDecls( + callback: (decl: Declaration, index: number) => false | void + ): false | undefined + /** + * Traverses the container’s descendant nodes, calling callback + * for each rule node. + * + * If you pass a filter, iteration will only happen over rules + * with matching selectors. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * const selectors = [] + * root.walkRules(rule => { + * selectors.push(rule.selector) + * }) + * console.log(`Your CSS uses ${ selectors.length } selectors`) + * ``` + * + * @param selector String or regular expression to filter rules by selector. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkRules( + selectorFilter: RegExp | string, + callback: (rule: Rule, index: number) => false | void + ): false | undefined + walkRules( + callback: (rule: Rule, index: number) => false | void + ): false | undefined + /** + * An internal method that converts a {@link NewChild} into a list of actual + * child nodes that can then be added to this container. + * + * This ensures that the nodes' parent is set to this container, that they use + * the correct prototype chain, and that they're marked as dirty. + * + * @param mnodes The new node or nodes to add. + * @param sample A node from whose raws the new node's `before` raw should be + * taken. + * @param type This should be set to `'prepend'` if the new nodes will be + * inserted at the beginning of the container. + * @hidden + */ + protected normalize( + nodes: Container.NewChild, + sample: Node | undefined, + type?: 'prepend' | false + ): Child[] +} + +declare class Container< + Child extends Node = ChildNode +> extends Container_<Child> {} + +export = Container diff --git a/node_modules/postcss/lib/container.js b/node_modules/postcss/lib/container.js new file mode 100644 index 0000000..edb07cc --- /dev/null +++ b/node_modules/postcss/lib/container.js @@ -0,0 +1,447 @@ +'use strict' + +let Comment = require('./comment') +let Declaration = require('./declaration') +let Node = require('./node') +let { isClean, my } = require('./symbols') + +let AtRule, parse, Root, Rule + +function cleanSource(nodes) { + return nodes.map(i => { + if (i.nodes) i.nodes = cleanSource(i.nodes) + delete i.source + return i + }) +} + +function markTreeDirty(node) { + node[isClean] = false + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markTreeDirty(i) + } + } +} + +class Container extends Node { + get first() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[0] + } + + get last() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] + } + + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last) + for (let node of nodes) this.proxyOf.nodes.push(node) + } + + this.markDirty() + + return this + } + + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween) + if (this.nodes) { + for (let node of this.nodes) node.cleanRaws(keepBetween) + } + } + + each(callback) { + if (!this.proxyOf.nodes) return undefined + let iterator = this.getIterator() + + let index, result + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator] + result = callback(this.proxyOf.nodes[index], index) + if (result === false) break + + this.indexes[iterator] += 1 + } + + delete this.indexes[iterator] + return result + } + + every(condition) { + return this.nodes.every(condition) + } + + getIterator() { + if (!this.lastEach) this.lastEach = 0 + if (!this.indexes) this.indexes = {} + + this.lastEach += 1 + let iterator = this.lastEach + this.indexes[iterator] = 0 + + return iterator + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (!node[prop]) { + return node[prop] + } else if ( + prop === 'each' || + (typeof prop === 'string' && prop.startsWith('walk')) + ) { + return (...args) => { + return node[prop]( + ...args.map(i => { + if (typeof i === 'function') { + return (child, index) => i(child.toProxy(), index) + } else { + return i + } + }) + ) + } + } else if (prop === 'every' || prop === 'some') { + return cb => { + return node[prop]((child, ...other) => + cb(child.toProxy(), ...other) + ) + } + } else if (prop === 'root') { + return () => node.root().toProxy() + } else if (prop === 'nodes') { + return node.nodes.map(i => i.toProxy()) + } else if (prop === 'first' || prop === 'last') { + return node[prop].toProxy() + } else { + return node[prop] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if (prop === 'name' || prop === 'params' || prop === 'selector') { + node.markDirty() + } + return true + } + } + } + + index(child) { + if (typeof child === 'number') return child + if (child.proxyOf) child = child.proxyOf + return this.proxyOf.nodes.indexOf(child) + } + + insertAfter(exist, add) { + let existIndex = this.index(exist) + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (existIndex < index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + insertBefore(exist, add) { + let existIndex = this.index(exist) + let type = existIndex === 0 ? 'prepend' : false + let nodes = this.normalize( + add, + this.proxyOf.nodes[existIndex], + type + ).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (existIndex <= index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + normalize(nodes, sample) { + if (typeof nodes === 'string') { + nodes = cleanSource(parse(nodes).nodes) + } else if (typeof nodes === 'undefined') { + nodes = [] + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type === 'root' && this.type !== 'document') { + nodes = nodes.nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type) { + nodes = [nodes] + } else if (nodes.prop) { + if (typeof nodes.value === 'undefined') { + throw new Error('Value field is missed in node creation') + } else if (typeof nodes.value !== 'string') { + nodes.value = String(nodes.value) + } + nodes = [new Declaration(nodes)] + } else if (nodes.selector || nodes.selectors) { + nodes = [new Rule(nodes)] + } else if (nodes.name) { + nodes = [new AtRule(nodes)] + } else if (nodes.text) { + nodes = [new Comment(nodes)] + } else { + throw new Error('Unknown node type in node creation') + } + + let processed = nodes.map(i => { + /* c8 ignore next */ + if (!i[my]) Container.rebuild(i) + i = i.proxyOf + if (i.parent) i.parent.removeChild(i) + if (i[isClean]) markTreeDirty(i) + + if (!i.raws) i.raws = {} + if (typeof i.raws.before === 'undefined') { + if (sample && typeof sample.raws.before !== 'undefined') { + i.raws.before = sample.raws.before.replace(/\S/g, '') + } + } + i.parent = this.proxyOf + return i + }) + + return processed + } + + prepend(...children) { + children = children.reverse() + for (let child of children) { + let nodes = this.normalize(child, this.first, 'prepend').reverse() + for (let node of nodes) this.proxyOf.nodes.unshift(node) + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length + } + } + + this.markDirty() + + return this + } + + push(child) { + child.parent = this + this.proxyOf.nodes.push(child) + return this + } + + removeAll() { + for (let node of this.proxyOf.nodes) node.parent = undefined + this.proxyOf.nodes = [] + + this.markDirty() + + return this + } + + removeChild(child) { + child = this.index(child) + this.proxyOf.nodes[child].parent = undefined + this.proxyOf.nodes.splice(child, 1) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (index >= child) { + this.indexes[id] = index - 1 + } + } + + this.markDirty() + + return this + } + + replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts + opts = {} + } + + this.walkDecls(decl => { + if (opts.props && !opts.props.includes(decl.prop)) return + if (opts.fast && !decl.value.includes(opts.fast)) return + + decl.value = decl.value.replace(pattern, callback) + }) + + this.markDirty() + + return this + } + + some(condition) { + return this.nodes.some(condition) + } + + walk(callback) { + return this.each((child, i) => { + let result + try { + result = callback(child, i) + } catch (e) { + throw child.addToError(e) + } + if (result !== false && child.walk) { + result = child.walk(callback) + } + + return result + }) + } + + walkAtRules(name, callback) { + if (!callback) { + callback = name + return this.walk((child, i) => { + if (child.type === 'atrule') { + return callback(child, i) + } + }) + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'atrule' && name.test(child.name)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'atrule' && child.name === name) { + return callback(child, i) + } + }) + } + + walkComments(callback) { + return this.walk((child, i) => { + if (child.type === 'comment') { + return callback(child, i) + } + }) + } + + walkDecls(prop, callback) { + if (!callback) { + callback = prop + return this.walk((child, i) => { + if (child.type === 'decl') { + return callback(child, i) + } + }) + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'decl' && prop.test(child.prop)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'decl' && child.prop === prop) { + return callback(child, i) + } + }) + } + + walkRules(selector, callback) { + if (!callback) { + callback = selector + + return this.walk((child, i) => { + if (child.type === 'rule') { + return callback(child, i) + } + }) + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'rule' && selector.test(child.selector)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'rule' && child.selector === selector) { + return callback(child, i) + } + }) + } +} + +Container.registerParse = dependant => { + parse = dependant +} + +Container.registerRule = dependant => { + Rule = dependant +} + +Container.registerAtRule = dependant => { + AtRule = dependant +} + +Container.registerRoot = dependant => { + Root = dependant +} + +module.exports = Container +Container.default = Container + +/* c8 ignore start */ +Container.rebuild = node => { + if (node.type === 'atrule') { + Object.setPrototypeOf(node, AtRule.prototype) + } else if (node.type === 'rule') { + Object.setPrototypeOf(node, Rule.prototype) + } else if (node.type === 'decl') { + Object.setPrototypeOf(node, Declaration.prototype) + } else if (node.type === 'comment') { + Object.setPrototypeOf(node, Comment.prototype) + } else if (node.type === 'root') { + Object.setPrototypeOf(node, Root.prototype) + } + + node[my] = true + + if (node.nodes) { + node.nodes.forEach(child => { + Container.rebuild(child) + }) + } +} +/* c8 ignore stop */ diff --git a/node_modules/postcss/lib/css-syntax-error.d.ts b/node_modules/postcss/lib/css-syntax-error.d.ts new file mode 100644 index 0000000..e540d84 --- /dev/null +++ b/node_modules/postcss/lib/css-syntax-error.d.ts @@ -0,0 +1,248 @@ +import { FilePosition } from './input.js' + +declare namespace CssSyntaxError { + /** + * A position that is part of a range. + */ + export interface RangePosition { + /** + * The column number in the input. + */ + column: number + + /** + * The line number in the input. + */ + line: number + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { CssSyntaxError_ as default } +} + +/** + * The CSS parser throws this error for broken CSS. + * + * Custom parsers can throw this error for broken custom syntax using + * the `Node#error` method. + * + * PostCSS will use the input source map to detect the original error location. + * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. + * + * If you need the position in the PostCSS input + * (e.g., to debug the previous compiler), use `error.input.file`. + * + * ```js + * // Raising error from plugin + * throw node.error('Unknown variable', { plugin: 'postcss-vars' }) + * ``` + * + * ```js + * // Catching and checking syntax error + * try { + * postcss.parse('a{') + * } catch (error) { + * if (error.name === 'CssSyntaxError') { + * error //=> CssSyntaxError + * } + * } + * ``` + */ +declare class CssSyntaxError_ extends Error { + /** + * Source column of the error. + * + * ```js + * error.column //=> 1 + * error.input.column //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.column`. + */ + column?: number + + /** + * Source column of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endColumn //=> 1 + * error.input.endColumn //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endColumn`. + */ + endColumn?: number + + /** + * Source line of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endLine //=> 3 + * error.input.endLine //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endLine`. + */ + endLine?: number + + /** + * Absolute path to the broken file. + * + * ```js + * error.file //=> 'a.sass' + * error.input.file //=> 'a.css' + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.file`. + */ + file?: string + + /** + * Input object with PostCSS internal information + * about input file. If input has source map + * from previous tool, PostCSS will use origin + * (for example, Sass) source. You can use this + * object to get PostCSS input source. + * + * ```js + * error.input.file //=> 'a.css' + * error.file //=> 'a.sass' + * ``` + */ + input?: FilePosition + + /** + * Source line of the error. + * + * ```js + * error.line //=> 2 + * error.input.line //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.line`. + */ + line?: number + + /** + * Full error text in the GNU error format + * with plugin, file, line and column. + * + * ```js + * error.message //=> 'a.css:1:1: Unclosed block' + * ``` + */ + message: string + + /** + * Always equal to `'CssSyntaxError'`. You should always check error type + * by `error.name === 'CssSyntaxError'` + * instead of `error instanceof CssSyntaxError`, + * because npm could have several PostCSS versions. + * + * ```js + * if (error.name === 'CssSyntaxError') { + * error //=> CssSyntaxError + * } + * ``` + */ + name: 'CssSyntaxError' + + /** + * Plugin name, if error came from plugin. + * + * ```js + * error.plugin //=> 'postcss-vars' + * ``` + */ + plugin?: string + + /** + * Error message. + * + * ```js + * error.message //=> 'Unclosed block' + * ``` + */ + reason: string + + /** + * Source code of the broken file. + * + * ```js + * error.source //=> 'a { b {} }' + * error.input.source //=> 'a b { }' + * ``` + */ + source?: string + + stack: string + + /** + * Instantiates a CSS syntax error. Can be instantiated for a single position + * or for a range. + * @param message Error message. + * @param lineOrStartPos If for a single position, the line number, or if for + * a range, the inclusive start position of the error. + * @param columnOrEndPos If for a single position, the column number, or if for + * a range, the exclusive end position of the error. + * @param source Source code of the broken file. + * @param file Absolute path to the broken file. + * @param plugin PostCSS plugin name, if error came from plugin. + */ + constructor( + message: string, + lineOrStartPos?: CssSyntaxError.RangePosition | number, + columnOrEndPos?: CssSyntaxError.RangePosition | number, + source?: string, + file?: string, + plugin?: string + ) + + /** + * Returns a few lines of CSS source that caused the error. + * + * If the CSS has an input source map without `sourceContent`, + * this method will return an empty string. + * + * ```js + * error.showSourceCode() //=> " 4 | } + * // 5 | a { + * // > 6 | bad + * // | ^ + * // 7 | } + * // 8 | b {" + * ``` + * + * @param color Whether arrow will be colored red by terminal + * color codes. By default, PostCSS will detect + * color support by `process.stdout.isTTY` + * and `process.env.NODE_DISABLE_COLORS`. + * @return Few lines of CSS source that caused the error. + */ + showSourceCode(color?: boolean): string + + /** + * Returns error position, message and source code of the broken part. + * + * ```js + * error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block + * // > 1 | a { + * // | ^" + * ``` + * + * @return Error position, message and source code. + */ + toString(): string +} + +declare class CssSyntaxError extends CssSyntaxError_ {} + +export = CssSyntaxError diff --git a/node_modules/postcss/lib/css-syntax-error.js b/node_modules/postcss/lib/css-syntax-error.js new file mode 100644 index 0000000..275a4f6 --- /dev/null +++ b/node_modules/postcss/lib/css-syntax-error.js @@ -0,0 +1,133 @@ +'use strict' + +let pico = require('picocolors') + +let terminalHighlight = require('./terminal-highlight') + +class CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message) + this.name = 'CssSyntaxError' + this.reason = message + + if (file) { + this.file = file + } + if (source) { + this.source = source + } + if (plugin) { + this.plugin = plugin + } + if (typeof line !== 'undefined' && typeof column !== 'undefined') { + if (typeof line === 'number') { + this.line = line + this.column = column + } else { + this.line = line.line + this.column = line.column + this.endLine = column.line + this.endColumn = column.column + } + } + + this.setMessage() + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError) + } + } + + setMessage() { + this.message = this.plugin ? this.plugin + ': ' : '' + this.message += this.file ? this.file : '<css input>' + if (typeof this.line !== 'undefined') { + this.message += ':' + this.line + ':' + this.column + } + this.message += ': ' + this.reason + } + + showSourceCode(color) { + if (!this.source) return '' + + let css = this.source + if (color == null) color = pico.isColorSupported + + let aside = text => text + let mark = text => text + let highlight = text => text + if (color) { + let { bold, gray, red } = pico.createColors(true) + mark = text => bold(red(text)) + aside = text => gray(text) + if (terminalHighlight) { + highlight = text => terminalHighlight(text) + } + } + + let lines = css.split(/\r?\n/) + let start = Math.max(this.line - 3, 0) + let end = Math.min(this.line + 2, lines.length) + let maxWidth = String(end).length + + return lines + .slice(start, end) + .map((line, index) => { + let number = start + 1 + index + let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ' + if (number === this.line) { + if (line.length > 160) { + let padding = 20 + let subLineStart = Math.max(0, this.column - padding) + let subLineEnd = Math.max( + this.column + padding, + this.endColumn + padding + ) + let subLine = line.slice(subLineStart, subLineEnd) + + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line + .slice(0, Math.min(this.column - 1, padding - 1)) + .replace(/[^\t]/g, ' ') + + return ( + mark('>') + + aside(gutter) + + highlight(subLine) + + '\n ' + + spacing + + mark('^') + ) + } + + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line.slice(0, this.column - 1).replace(/[^\t]/g, ' ') + + return ( + mark('>') + + aside(gutter) + + highlight(line) + + '\n ' + + spacing + + mark('^') + ) + } + + return ' ' + aside(gutter) + highlight(line) + }) + .join('\n') + } + + toString() { + let code = this.showSourceCode() + if (code) { + code = '\n\n' + code + '\n' + } + return this.name + ': ' + this.message + code + } +} + +module.exports = CssSyntaxError +CssSyntaxError.default = CssSyntaxError diff --git a/node_modules/postcss/lib/declaration.d.ts b/node_modules/postcss/lib/declaration.d.ts new file mode 100644 index 0000000..d489b42 --- /dev/null +++ b/node_modules/postcss/lib/declaration.d.ts @@ -0,0 +1,151 @@ +import { ContainerWithChildren } from './container.js' +import Node from './node.js' + +declare namespace Declaration { + export interface DeclarationRaws extends Record<string, unknown> { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the property and value for declarations. + */ + between?: string + + /** + * The content of the important statement, if it is not just `!important`. + */ + important?: string + + /** + * Declaration value with comments. + */ + value?: { + raw: string + value: string + } + } + + export interface DeclarationProps { + /** Whether the declaration has an `!important` annotation. */ + important?: boolean + /** Name of the declaration. */ + prop: string + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: DeclarationRaws + /** Value of the declaration. */ + value: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Declaration_ as default } +} + +/** + * It represents a class that handles + * [CSS declarations](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_declarations) + * + * ```js + * Once (root, { Declaration }) { + * const color = new Declaration({ prop: 'color', value: 'black' }) + * root.append(color) + * } + * ``` + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first?.first + * + * decl.type //=> 'decl' + * decl.toString() //=> ' color: black' + * ``` + */ +declare class Declaration_ extends Node { + parent: ContainerWithChildren | undefined + raws: Declaration.DeclarationRaws + + type: 'decl' + + /** + * It represents a specificity of the declaration. + * + * If true, the CSS declaration will have an + * [important](https://developer.mozilla.org/en-US/docs/Web/CSS/important) + * specifier. + * + * ```js + * const root = postcss.parse('a { color: black !important; color: red }') + * + * root.first.first.important //=> true + * root.first.last.important //=> undefined + * ``` + */ + get important(): boolean + set important(value: boolean) + + /** + * The property name for a CSS declaration. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * + * decl.prop //=> 'color' + * ``` + */ + get prop(): string + + set prop(value: string) + + /** + * The property value for a CSS declaration. + * + * Any CSS comments inside the value string will be filtered out. + * CSS comments present in the source value will be available in + * the `raws` property. + * + * Assigning new `value` would ignore the comments in `raws` + * property while compiling node to string. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * + * decl.value //=> 'black' + * ``` + */ + get value(): string + set value(value: string) + + /** + * It represents a getter that returns `true` if a declaration starts with + * `--` or `$`, which are used to declare variables in CSS and SASS/SCSS. + * + * ```js + * const root = postcss.parse(':root { --one: 1 }') + * const one = root.first.first + * + * one.variable //=> true + * ``` + * + * ```js + * const root = postcss.parse('$one: 1') + * const one = root.first + * + * one.variable //=> true + * ``` + */ + get variable(): boolean + constructor(defaults?: Declaration.DeclarationProps) + + assign(overrides: Declaration.DeclarationProps | object): this + clone(overrides?: Partial<Declaration.DeclarationProps>): this + cloneAfter(overrides?: Partial<Declaration.DeclarationProps>): this + cloneBefore(overrides?: Partial<Declaration.DeclarationProps>): this +} + +declare class Declaration extends Declaration_ {} + +export = Declaration diff --git a/node_modules/postcss/lib/declaration.js b/node_modules/postcss/lib/declaration.js new file mode 100644 index 0000000..65a03aa --- /dev/null +++ b/node_modules/postcss/lib/declaration.js @@ -0,0 +1,24 @@ +'use strict' + +let Node = require('./node') + +class Declaration extends Node { + get variable() { + return this.prop.startsWith('--') || this.prop[0] === '$' + } + + constructor(defaults) { + if ( + defaults && + typeof defaults.value !== 'undefined' && + typeof defaults.value !== 'string' + ) { + defaults = { ...defaults, value: String(defaults.value) } + } + super(defaults) + this.type = 'decl' + } +} + +module.exports = Declaration +Declaration.default = Declaration diff --git a/node_modules/postcss/lib/document.d.ts b/node_modules/postcss/lib/document.d.ts new file mode 100644 index 0000000..f9e8063 --- /dev/null +++ b/node_modules/postcss/lib/document.d.ts @@ -0,0 +1,69 @@ +import Container, { ContainerProps } from './container.js' +import { ProcessOptions } from './postcss.js' +import Result from './result.js' +import Root from './root.js' + +declare namespace Document { + export interface DocumentProps extends ContainerProps { + nodes?: readonly Root[] + + /** + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * Every parser saves its own properties. + */ + raws?: Record<string, any> + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Document_ as default } +} + +/** + * Represents a file and contains all its parsed nodes. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + * + * ```js + * const document = htmlParser( + * '<html><style>a{color:black}</style><style>b{z-index:2}</style>' + * ) + * document.type //=> 'document' + * document.nodes.length //=> 2 + * ``` + */ +declare class Document_ extends Container<Root> { + nodes: Root[] + parent: undefined + type: 'document' + + constructor(defaults?: Document.DocumentProps) + + assign(overrides: Document.DocumentProps | object): this + clone(overrides?: Partial<Document.DocumentProps>): this + cloneAfter(overrides?: Partial<Document.DocumentProps>): this + cloneBefore(overrides?: Partial<Document.DocumentProps>): this + + /** + * Returns a `Result` instance representing the document’s CSS roots. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * const document = postcss.document() + * document.append(root1) + * document.append(root2) + * const result = document.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param opts Options. + * @return Result with current document’s CSS. + */ + toResult(options?: ProcessOptions): Result +} + +declare class Document extends Document_ {} + +export = Document diff --git a/node_modules/postcss/lib/document.js b/node_modules/postcss/lib/document.js new file mode 100644 index 0000000..4468991 --- /dev/null +++ b/node_modules/postcss/lib/document.js @@ -0,0 +1,33 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Document extends Container { + constructor(defaults) { + // type needs to be passed to super, otherwise child roots won't be normalized correctly + super({ type: 'document', ...defaults }) + + if (!this.nodes) { + this.nodes = [] + } + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + + return lazy.stringify() + } +} + +Document.registerLazyResult = dependant => { + LazyResult = dependant +} + +Document.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Document +Document.default = Document diff --git a/node_modules/postcss/lib/fromJSON.d.ts b/node_modules/postcss/lib/fromJSON.d.ts new file mode 100644 index 0000000..e1deedb --- /dev/null +++ b/node_modules/postcss/lib/fromJSON.d.ts @@ -0,0 +1,9 @@ +import { JSONHydrator } from './postcss.js' + +interface FromJSON extends JSONHydrator { + default: FromJSON +} + +declare const fromJSON: FromJSON + +export = fromJSON diff --git a/node_modules/postcss/lib/fromJSON.js b/node_modules/postcss/lib/fromJSON.js new file mode 100644 index 0000000..c9ac1a8 --- /dev/null +++ b/node_modules/postcss/lib/fromJSON.js @@ -0,0 +1,54 @@ +'use strict' + +let AtRule = require('./at-rule') +let Comment = require('./comment') +let Declaration = require('./declaration') +let Input = require('./input') +let PreviousMap = require('./previous-map') +let Root = require('./root') +let Rule = require('./rule') + +function fromJSON(json, inputs) { + if (Array.isArray(json)) return json.map(n => fromJSON(n)) + + let { inputs: ownInputs, ...defaults } = json + if (ownInputs) { + inputs = [] + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype } + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + } + } + inputs.push(inputHydrated) + } + } + if (defaults.nodes) { + defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)) + } + if (defaults.source) { + let { inputId, ...source } = defaults.source + defaults.source = source + if (inputId != null) { + defaults.source.input = inputs[inputId] + } + } + if (defaults.type === 'root') { + return new Root(defaults) + } else if (defaults.type === 'decl') { + return new Declaration(defaults) + } else if (defaults.type === 'rule') { + return new Rule(defaults) + } else if (defaults.type === 'comment') { + return new Comment(defaults) + } else if (defaults.type === 'atrule') { + return new AtRule(defaults) + } else { + throw new Error('Unknown node type: ' + json.type) + } +} + +module.exports = fromJSON +fromJSON.default = fromJSON diff --git a/node_modules/postcss/lib/input.d.ts b/node_modules/postcss/lib/input.d.ts new file mode 100644 index 0000000..3207da3 --- /dev/null +++ b/node_modules/postcss/lib/input.d.ts @@ -0,0 +1,227 @@ +import { CssSyntaxError, ProcessOptions } from './postcss.js' +import PreviousMap from './previous-map.js' + +declare namespace Input { + export interface FilePosition { + /** + * Column of inclusive start position in source file. + */ + column: number + + /** + * Column of exclusive end position in source file. + */ + endColumn?: number + + /** + * Line of exclusive end position in source file. + */ + endLine?: number + + /** + * Offset of exclusive end position in source file. + */ + endOffset?: number + + /** + * Absolute path to the source file. + */ + file?: string + + /** + * Line of inclusive start position in source file. + */ + line: number + + /** + * Offset of inclusive start position in source file. + */ + offset: number + + /** + * Source code. + */ + source?: string + + /** + * URL for the source file. + */ + url: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Input_ as default } +} + +/** + * Represents the source CSS. + * + * ```js + * const root = postcss.parse(css, { from: file }) + * const input = root.source.input + * ``` + */ +declare class Input_ { + /** + * Input CSS source. + * + * ```js + * const input = postcss.parse('a{}', { from: file }).input + * input.css //=> "a{}" + * ``` + */ + css: string + + /** + * Input source with support for non-CSS documents. + * + * ```js + * const input = postcss.parse('a{}', { from: file, document: '<style>a {}</style>' }).input + * input.document //=> "<style>a {}</style>" + * input.css //=> "a{}" + * ``` + */ + document: string + + /** + * The absolute path to the CSS source file defined + * with the `from` option. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.file //=> '/home/ai/a.css' + * ``` + */ + file?: string + + /** + * The flag to indicate whether or not the source code has Unicode BOM. + */ + hasBOM: boolean + + /** + * The unique ID of the CSS source. It will be created if `from` option + * is not provided (because PostCSS does not know the file path). + * + * ```js + * const root = postcss.parse(css) + * root.source.input.file //=> undefined + * root.source.input.id //=> "<input css 8LZeVF>" + * ``` + */ + id?: string + + /** + * The input source map passed from a compilation step before PostCSS + * (for example, from Sass compiler). + * + * ```js + * root.source.input.map.consumer().sources //=> ['a.sass'] + * ``` + */ + map: PreviousMap + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.from //=> "/home/ai/a.css" + * + * const root = postcss.parse(css) + * root.source.input.from //=> "<input css 1>" + * ``` + */ + get from(): string + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + /** + * Returns `CssSyntaxError` with information about the error and its position. + */ + error( + message: string, + start: + | { + column: number + line: number + } + | { + offset: number + }, + end: + | { + column: number + line: number + } + | { + offset: number + }, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError + error( + message: string, + line: number, + column: number, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError + error( + message: string, + offset: number, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError + + /** + * Converts source line and column to offset. + * + * @param line Source line. + * @param column Source column. + * @return Source offset. + */ + fromLineAndColumn(line: number, column: number): number + + /** + * Converts source offset to line and column. + * + * @param offset Source offset. + */ + fromOffset(offset: number): { col: number; line: number } | null + + /** + * Reads the input source map and returns a symbol position + * in the input source (e.g., in a Sass file that was compiled + * to CSS before being passed to PostCSS). Optionally takes an + * end position, exclusive. + * + * ```js + * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 } + * root.source.input.origin(1, 1, 1, 4) + * //=> { file: 'a.css', line: 3, column: 1, endLine: 3, endColumn: 4 } + * ``` + * + * @param line Line for inclusive start position in input CSS. + * @param column Column for inclusive start position in input CSS. + * @param endLine Line for exclusive end position in input CSS. + * @param endColumn Column for exclusive end position in input CSS. + * + * @return Position in input source. + */ + origin( + line: number, + column: number, + endLine?: number, + endColumn?: number + ): false | Input.FilePosition + + /** Converts this to a JSON-friendly object representation. */ + toJSON(): object +} + +declare class Input extends Input_ {} + +export = Input diff --git a/node_modules/postcss/lib/input.js b/node_modules/postcss/lib/input.js new file mode 100644 index 0000000..bb0ccf5 --- /dev/null +++ b/node_modules/postcss/lib/input.js @@ -0,0 +1,265 @@ +'use strict' + +let { nanoid } = require('nanoid/non-secure') +let { isAbsolute, resolve } = require('path') +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { fileURLToPath, pathToFileURL } = require('url') + +let CssSyntaxError = require('./css-syntax-error') +let PreviousMap = require('./previous-map') +let terminalHighlight = require('./terminal-highlight') + +let lineToIndexCache = Symbol('lineToIndexCache') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(resolve && isAbsolute) + +function getLineToIndex(input) { + if (input[lineToIndexCache]) return input[lineToIndexCache] + let lines = input.css.split('\n') + let lineToIndex = new Array(lines.length) + let prevIndex = 0 + + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex + prevIndex += lines[i].length + 1 + } + + input[lineToIndexCache] = lineToIndex + return lineToIndex +} + +class Input { + get from() { + return this.file || this.id + } + + constructor(css, opts = {}) { + if ( + css === null || + typeof css === 'undefined' || + (typeof css === 'object' && !css.toString) + ) { + throw new Error(`PostCSS received ${css} instead of CSS string`) + } + + this.css = css.toString() + + if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { + this.hasBOM = true + this.css = this.css.slice(1) + } else { + this.hasBOM = false + } + + this.document = this.css + if (opts.document) this.document = opts.document.toString() + + if (opts.from) { + if ( + !pathAvailable || + /^\w+:\/\//.test(opts.from) || + isAbsolute(opts.from) + ) { + this.file = opts.from + } else { + this.file = resolve(opts.from) + } + } + + if (pathAvailable && sourceMapAvailable) { + let map = new PreviousMap(this.css, opts) + if (map.text) { + this.map = map + let file = map.consumer().file + if (!this.file && file) this.file = this.mapResolve(file) + } + } + + if (!this.file) { + this.id = '<input css ' + nanoid(6) + '>' + } + if (this.map) this.map.file = this.from + } + + error(message, line, column, opts = {}) { + let endColumn, endLine, endOffset, offset, result + + if (line && typeof line === 'object') { + let start = line + let end = column + if (typeof start.offset === 'number') { + offset = start.offset + let pos = this.fromOffset(offset) + line = pos.line + column = pos.col + } else { + line = start.line + column = start.column + offset = this.fromLineAndColumn(line, column) + } + if (typeof end.offset === 'number') { + endOffset = end.offset + let pos = this.fromOffset(endOffset) + endLine = pos.line + endColumn = pos.col + } else { + endLine = end.line + endColumn = end.column + endOffset = this.fromLineAndColumn(end.line, end.column) + } + } else if (!column) { + offset = line + let pos = this.fromOffset(offset) + line = pos.line + column = pos.col + } else { + offset = this.fromLineAndColumn(line, column) + } + + let origin = this.origin(line, column, endLine, endColumn) + if (origin) { + result = new CssSyntaxError( + message, + origin.endLine === undefined + ? origin.line + : { column: origin.column, line: origin.line }, + origin.endLine === undefined + ? origin.column + : { column: origin.endColumn, line: origin.endLine }, + origin.source, + origin.file, + opts.plugin + ) + } else { + result = new CssSyntaxError( + message, + endLine === undefined ? line : { column, line }, + endLine === undefined ? column : { column: endColumn, line: endLine }, + this.css, + this.file, + opts.plugin + ) + } + + result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css } + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString() + } + result.input.file = this.file + } + + return result + } + + fromLineAndColumn(line, column) { + let lineToIndex = getLineToIndex(this) + let index = lineToIndex[line - 1] + return index + column - 1 + } + + fromOffset(offset) { + let lineToIndex = getLineToIndex(this) + let lastLine = lineToIndex[lineToIndex.length - 1] + + let min = 0 + if (offset >= lastLine) { + min = lineToIndex.length - 1 + } else { + let max = lineToIndex.length - 2 + let mid + while (min < max) { + mid = min + ((max - min) >> 1) + if (offset < lineToIndex[mid]) { + max = mid - 1 + } else if (offset >= lineToIndex[mid + 1]) { + min = mid + 1 + } else { + min = mid + break + } + } + } + return { + col: offset - lineToIndex[min] + 1, + line: min + 1 + } + } + + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file + } + return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) + } + + origin(line, column, endLine, endColumn) { + if (!this.map) return false + let consumer = this.map.consumer() + + let from = consumer.originalPositionFor({ column, line }) + if (!from.source) return false + + let to + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ column: endColumn, line: endLine }) + } + + let fromUrl + + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source) + } else { + fromUrl = new URL( + from.source, + this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) + ) + } + + let result = { + column: from.column, + endColumn: to && to.column, + endLine: to && to.line, + line: from.line, + url: fromUrl.toString() + } + + if (fromUrl.protocol === 'file:') { + if (fileURLToPath) { + result.file = fileURLToPath(fromUrl) + } else { + /* c8 ignore next 2 */ + throw new Error(`file: protocol is not available in this PostCSS build`) + } + } + + let source = consumer.sourceContentFor(from.source) + if (source) result.source = source + + return result + } + + toJSON() { + let json = {} + for (let name of ['hasBOM', 'css', 'file', 'id']) { + if (this[name] != null) { + json[name] = this[name] + } + } + if (this.map) { + json.map = { ...this.map } + if (json.map.consumerCache) { + json.map.consumerCache = undefined + } + } + return json + } +} + +module.exports = Input +Input.default = Input + +if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input) +} diff --git a/node_modules/postcss/lib/lazy-result.d.ts b/node_modules/postcss/lib/lazy-result.d.ts new file mode 100644 index 0000000..2eb7279 --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.d.ts @@ -0,0 +1,190 @@ +import Document from './document.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Result, { Message, ResultOptions } from './result.js' +import Root from './root.js' +import Warning from './warning.js' + +declare namespace LazyResult { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { LazyResult_ as default } +} + +/** + * A Promise proxy for the result of PostCSS transformations. + * + * A `LazyResult` instance is returned by `Processor#process`. + * + * ```js + * const lazy = postcss([autoprefixer]).process(css) + * ``` + */ +declare class LazyResult_<RootNode = Document | Root> + implements PromiseLike<Result<RootNode>> +{ + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onRejected for each error thrown in any plugin. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }).catch(error => { + * console.error(error) + * }) + * ``` + */ + catch: Promise<Result<RootNode>>['catch'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onFinally on any error or when all plugins will finish work. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).finally(() => { + * console.log('processing ended') + * }) + * ``` + */ + finally: Promise<Result<RootNode>>['finally'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls `onFulfilled` with a Result instance. If a plugin throws + * an error, the `onRejected` callback will be executed. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => { + * console.log(result.css) + * }) + * ``` + */ + then: Promise<Result<RootNode>>['then'] + + /** + * An alias for the `css` property. Use it with syntaxes + * that generate non-CSS output. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get content(): string + + /** + * Processes input CSS through synchronous plugins, converts `Root` + * to a CSS string and returns `Result#css`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get css(): string + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#map`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get map(): SourceMap + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#messages`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get messages(): Message[] + + /** + * Options from the `Processor#process` call. + */ + get opts(): ResultOptions + + /** + * Returns a `Processor` instance, which will be used + * for CSS transformations. + */ + get processor(): Processor + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#root`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get root(): RootNode + + /** + * Returns the default string description of an object. + * Required to implement the Promise interface. + */ + get [Symbol.toStringTag](): string + + /** + * @param processor Processor used for this transformation. + * @param css CSS to parse and transform. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, css: string, opts: ResultOptions) + + /** + * Run plugin in async way and return `Result`. + * + * @return Result with output content. + */ + async(): Promise<Result<RootNode>> + + /** + * Run plugin in sync way and return `Result`. + * + * @return Result with output content. + */ + sync(): Result<RootNode> + + /** + * Alias for the `LazyResult#css` property. + * + * ```js + * lazy + '' === lazy.css + * ``` + * + * @return Output CSS. + */ + toString(): string + + /** + * Processes input CSS through synchronous plugins + * and calls `Result#warnings`. + * + * @return Warnings from plugins. + */ + warnings(): Warning[] +} + +declare class LazyResult< + RootNode = Document | Root +> extends LazyResult_<RootNode> {} + +export = LazyResult diff --git a/node_modules/postcss/lib/lazy-result.js b/node_modules/postcss/lib/lazy-result.js new file mode 100644 index 0000000..1ea52b8 --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.js @@ -0,0 +1,550 @@ +'use strict' + +let Container = require('./container') +let Document = require('./document') +let MapGenerator = require('./map-generator') +let parse = require('./parse') +let Result = require('./result') +let Root = require('./root') +let stringify = require('./stringify') +let { isClean, my } = require('./symbols') +let warnOnce = require('./warn-once') + +const TYPE_TO_CLASS_NAME = { + atrule: 'AtRule', + comment: 'Comment', + decl: 'Declaration', + document: 'Document', + root: 'Root', + rule: 'Rule' +} + +const PLUGIN_PROPS = { + AtRule: true, + AtRuleExit: true, + Comment: true, + CommentExit: true, + Declaration: true, + DeclarationExit: true, + Document: true, + DocumentExit: true, + Once: true, + OnceExit: true, + postcssPlugin: true, + prepare: true, + Root: true, + RootExit: true, + Rule: true, + RuleExit: true +} + +const NOT_VISITORS = { + Once: true, + postcssPlugin: true, + prepare: true +} + +const CHILDREN = 0 + +function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then === 'function' +} + +function getEvents(node) { + let key = false + let type = TYPE_TO_CLASS_NAME[node.type] + if (node.type === 'decl') { + key = node.prop.toLowerCase() + } else if (node.type === 'atrule') { + key = node.name.toLowerCase() + } + + if (key && node.append) { + return [ + type, + type + '-' + key, + CHILDREN, + type + 'Exit', + type + 'Exit-' + key + ] + } else if (key) { + return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] + } else if (node.append) { + return [type, CHILDREN, type + 'Exit'] + } else { + return [type, type + 'Exit'] + } +} + +function toStack(node) { + let events + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit'] + } else if (node.type === 'root') { + events = ['Root', CHILDREN, 'RootExit'] + } else { + events = getEvents(node) + } + + return { + eventIndex: 0, + events, + iterator: 0, + node, + visitorIndex: 0, + visitors: [] + } +} + +function cleanMarks(node) { + node[isClean] = false + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) + return node +} + +let postcss = {} + +class LazyResult { + get content() { + return this.stringify().content + } + + get css() { + return this.stringify().css + } + + get map() { + return this.stringify().map + } + + get messages() { + return this.sync().messages + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + return this.sync().root + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } + + constructor(processor, css, opts) { + this.stringified = false + this.processed = false + + let root + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { + root = cleanMarks(css) + } else if (css instanceof LazyResult || css instanceof Result) { + root = cleanMarks(css.root) + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {} + if (!opts.map.inline) opts.map.inline = false + opts.map.prev = css.map + } + } else { + let parser = parse + if (opts.syntax) parser = opts.syntax.parse + if (opts.parser) parser = opts.parser + if (parser.parse) parser = parser.parse + + try { + root = parser(css, opts) + } catch (error) { + this.processed = true + this.error = error + } + + if (root && !root[my]) { + /* c8 ignore next 2 */ + Container.rebuild(root) + } + } + + this.result = new Result(processor, root, opts) + this.helpers = { ...postcss, postcss, result: this.result } + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }) + } + + async() { + if (this.error) return Promise.reject(this.error) + if (this.processed) return Promise.resolve(this.result) + if (!this.processing) { + this.processing = this.runAsync() + } + return this.processing + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + getAsyncError() { + throw new Error('Use process(css).then(cb) to work with async plugins') + } + + handleError(error, node) { + let plugin = this.result.lastPlugin + try { + if (node) node.addToError(error) + this.error = error + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin + error.setMessage() + } else if (plugin.postcssVersion) { + if (process.env.NODE_ENV !== 'production') { + let pluginName = plugin.postcssPlugin + let pluginVer = plugin.postcssVersion + let runtimeVer = this.result.processor.version + let a = pluginVer.split('.') + let b = runtimeVer.split('.') + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console + console.error( + 'Unknown error from PostCSS plugin. Your current PostCSS ' + + 'version is ' + + runtimeVer + + ', but ' + + pluginName + + ' uses ' + + pluginVer + + '. Perhaps this is the source of the error below.' + ) + } + } + } + } catch (err) { + /* c8 ignore next 3 */ + // eslint-disable-next-line no-console + if (console && console.error) console.error(err) + } + return error + } + + prepareVisitors() { + this.listeners = {} + let add = (plugin, type, cb) => { + if (!this.listeners[type]) this.listeners[type] = [] + this.listeners[type].push([plugin, cb]) + } + for (let plugin of this.plugins) { + if (typeof plugin === 'object') { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. ` + + `Try to update PostCSS (${this.processor.version} now).` + ) + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === 'object') { + for (let filter in plugin[event]) { + if (filter === '*') { + add(plugin, event, plugin[event][filter]) + } else { + add( + plugin, + event + '-' + filter.toLowerCase(), + plugin[event][filter] + ) + } + } + } else if (typeof plugin[event] === 'function') { + add(plugin, event, plugin[event]) + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0 + } + + async runAsync() { + this.plugin = 0 + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i] + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + try { + await promise + } catch (error) { + throw this.handleError(error) + } + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + let stack = [toStack(root)] + while (stack.length > 0) { + let promise = this.visitTick(stack) + if (isPromise(promise)) { + try { + await promise + } catch (e) { + let node = stack[stack.length - 1].node + throw this.handleError(e, node) + } + } + } + } + + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin + try { + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ) + + await Promise.all(roots) + } else { + await visitor(root, this.helpers) + } + } catch (e) { + throw this.handleError(e) + } + } + } + } + + this.processed = true + return this.stringify() + } + + runOnRoot(plugin) { + this.result.lastPlugin = plugin + try { + if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ) + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + + return plugin.Once(this.result.root, this.helpers) + } else if (typeof plugin === 'function') { + return plugin(this.result.root, this.result) + } + } catch (error) { + throw this.handleError(error) + } + } + + stringify() { + if (this.error) throw this.error + if (this.stringified) return this.result + this.stringified = true + + this.sync() + + let opts = this.result.opts + let str = stringify + if (opts.syntax) str = opts.syntax.stringify + if (opts.stringifier) str = opts.stringifier + if (str.stringify) str = str.stringify + + let map = new MapGenerator(str, this.result.root, this.result.opts) + let data = map.generate() + this.result.css = data[0] + this.result.map = data[1] + + return this.result + } + + sync() { + if (this.error) throw this.error + if (this.processed) return this.result + this.processed = true + + if (this.processing) { + throw this.getAsyncError() + } + + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + this.walkSync(root) + } + if (this.listeners.OnceExit) { + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot) + } + } else { + this.visitSync(this.listeners.OnceExit, root) + } + } + } + + return this.result + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this.opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + return this.async().then(onFulfilled, onRejected) + } + + toString() { + return this.css + } + + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin + let promise + try { + promise = visitor(node, this.helpers) + } catch (e) { + throw this.handleError(e, node.proxyOf) + } + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + } + + visitTick(stack) { + let visit = stack[stack.length - 1] + let { node, visitors } = visit + + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + stack.pop() + return + } + + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex] + visit.visitorIndex += 1 + if (visit.visitorIndex === visitors.length) { + visit.visitors = [] + visit.visitorIndex = 0 + } + this.result.lastPlugin = plugin + try { + return visitor(node.toProxy(), this.helpers) + } catch (e) { + throw this.handleError(e, node) + } + } + + if (visit.iterator !== 0) { + let iterator = visit.iterator + let child + while ((child = node.nodes[node.indexes[iterator]])) { + node.indexes[iterator] += 1 + if (!child[isClean]) { + child[isClean] = true + stack.push(toStack(child)) + return + } + } + visit.iterator = 0 + delete node.indexes[iterator] + } + + let events = visit.events + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex] + visit.eventIndex += 1 + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true + visit.iterator = node.getIterator() + } + return + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event] + return + } + } + stack.pop() + } + + walkSync(node) { + node[isClean] = true + let events = getEvents(node) + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each(child => { + if (!child[isClean]) this.walkSync(child) + }) + } + } else { + let visitors = this.listeners[event] + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) return + } + } + } + } + + warnings() { + return this.sync().warnings() + } +} + +LazyResult.registerPostcss = dependant => { + postcss = dependant +} + +module.exports = LazyResult +LazyResult.default = LazyResult + +Root.registerLazyResult(LazyResult) +Document.registerLazyResult(LazyResult) diff --git a/node_modules/postcss/lib/list.d.ts b/node_modules/postcss/lib/list.d.ts new file mode 100644 index 0000000..e262ad3 --- /dev/null +++ b/node_modules/postcss/lib/list.d.ts @@ -0,0 +1,60 @@ +declare namespace list { + type List = { + /** + * Safely splits comma-separated values (such as those for `transition-*` + * and `background` properties). + * + * ```js + * Once (root, { list }) { + * list.comma('black, linear-gradient(white, black)') + * //=> ['black', 'linear-gradient(white, black)'] + * } + * ``` + * + * @param str Comma-separated values. + * @return Split values. + */ + comma(str: string): string[] + + default: List + + /** + * Safely splits space-separated values (such as those for `background`, + * `border-radius`, and other shorthand properties). + * + * ```js + * Once (root, { list }) { + * list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)'] + * } + * ``` + * + * @param str Space-separated values. + * @return Split values. + */ + space(str: string): string[] + + /** + * Safely splits values. + * + * ```js + * Once (root, { list }) { + * list.split('1px calc(10% + 1px)', [' ', '\n', '\t']) //=> ['1px', 'calc(10% + 1px)'] + * } + * ``` + * + * @param string separated values. + * @param separators array of separators. + * @param last boolean indicator. + * @return Split values. + */ + split( + string: string, + separators: readonly string[], + last: boolean + ): string[] + } +} + +declare const list: list.List + +export = list diff --git a/node_modules/postcss/lib/list.js b/node_modules/postcss/lib/list.js new file mode 100644 index 0000000..1b31f98 --- /dev/null +++ b/node_modules/postcss/lib/list.js @@ -0,0 +1,58 @@ +'use strict' + +let list = { + comma(string) { + return list.split(string, [','], true) + }, + + space(string) { + let spaces = [' ', '\n', '\t'] + return list.split(string, spaces) + }, + + split(string, separators, last) { + let array = [] + let current = '' + let split = false + + let func = 0 + let inQuote = false + let prevQuote = '' + let escape = false + + for (let letter of string) { + if (escape) { + escape = false + } else if (letter === '\\') { + escape = true + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false + } + } else if (letter === '"' || letter === "'") { + inQuote = true + prevQuote = letter + } else if (letter === '(') { + func += 1 + } else if (letter === ')') { + if (func > 0) func -= 1 + } else if (func === 0) { + if (separators.includes(letter)) split = true + } + + if (split) { + if (current !== '') array.push(current.trim()) + current = '' + split = false + } else { + current += letter + } + } + + if (last || current !== '') array.push(current.trim()) + return array + } +} + +module.exports = list +list.default = list diff --git a/node_modules/postcss/lib/map-generator.js b/node_modules/postcss/lib/map-generator.js new file mode 100644 index 0000000..89069d3 --- /dev/null +++ b/node_modules/postcss/lib/map-generator.js @@ -0,0 +1,368 @@ +'use strict' + +let { dirname, relative, resolve, sep } = require('path') +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { pathToFileURL } = require('url') + +let Input = require('./input') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(dirname && resolve && relative && sep) + +class MapGenerator { + constructor(stringify, root, opts, cssString) { + this.stringify = stringify + this.mapOpts = opts.map || {} + this.root = root + this.opts = opts + this.css = cssString + this.originalCSS = cssString + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute + + this.memoizedFileURLs = new Map() + this.memoizedPaths = new Map() + this.memoizedURLs = new Map() + } + + addAnnotation() { + let content + + if (this.isInline()) { + content = + 'data:application/json;base64,' + this.toBase64(this.map.toString()) + } else if (typeof this.mapOpts.annotation === 'string') { + content = this.mapOpts.annotation + } else if (typeof this.mapOpts.annotation === 'function') { + content = this.mapOpts.annotation(this.opts.to, this.root) + } else { + content = this.outputFile() + '.map' + } + let eol = '\n' + if (this.css.includes('\r\n')) eol = '\r\n' + + this.css += eol + '/*# sourceMappingURL=' + content + ' */' + } + + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)) + let root = prev.root || dirname(prev.file) + let map + + if (this.mapOpts.sourcesContent === false) { + map = new SourceMapConsumer(prev.text) + if (map.sourcesContent) { + map.sourcesContent = null + } + } else { + map = prev.consumer() + } + + this.map.applySourceMap(map, from, this.toUrl(this.path(root))) + } + } + + clearAnnotation() { + if (this.mapOpts.annotation === false) return + + if (this.root) { + let node + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i] + if (node.type !== 'comment') continue + if (node.text.startsWith('# sourceMappingURL=')) { + this.root.removeChild(i) + } + } + } else if (this.css) { + this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, '') + } + } + + generate() { + this.clearAnnotation() + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap() + } else { + let result = '' + this.stringify(this.root, i => { + result += i + }) + return [result] + } + } + + generateMap() { + if (this.root) { + this.generateString() + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer() + prev.file = this.outputFile() + this.map = SourceMapGenerator.fromSourceMap(prev, { + ignoreInvalidMapping: true + }) + } else { + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }) + this.map.addMapping({ + generated: { column: 0, line: 1 }, + original: { column: 0, line: 1 }, + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '<no source>' + }) + } + + if (this.isSourcesContent()) this.setSourcesContent() + if (this.root && this.previous().length > 0) this.applyPrevMaps() + if (this.isAnnotation()) this.addAnnotation() + + if (this.isInline()) { + return [this.css] + } else { + return [this.css, this.map] + } + } + + generateString() { + this.css = '' + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }) + + let line = 1 + let column = 1 + + let noSource = '<no source>' + let mapping = { + generated: { column: 0, line: 0 }, + original: { column: 0, line: 0 }, + source: '' + } + + let last, lines + this.stringify(this.root, (str, node, type) => { + this.css += str + + if (node && type !== 'end') { + mapping.generated.line = line + mapping.generated.column = column - 1 + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.start.line + mapping.original.column = node.source.start.column - 1 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + this.map.addMapping(mapping) + } + } + + lines = str.match(/\n/g) + if (lines) { + line += lines.length + last = str.lastIndexOf('\n') + column = str.length - last + } else { + column += str.length + } + + if (node && type !== 'start') { + let p = node.parent || { raws: {} } + let childless = + node.type === 'decl' || (node.type === 'atrule' && !node.nodes) + if (!childless || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.end.line + mapping.original.column = node.source.end.column - 1 + mapping.generated.line = line + mapping.generated.column = column - 2 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + mapping.generated.line = line + mapping.generated.column = column - 1 + this.map.addMapping(mapping) + } + } + } + }) + } + + isAnnotation() { + if (this.isInline()) { + return true + } + if (typeof this.mapOpts.annotation !== 'undefined') { + return this.mapOpts.annotation + } + if (this.previous().length) { + return this.previous().some(i => i.annotation) + } + return true + } + + isInline() { + if (typeof this.mapOpts.inline !== 'undefined') { + return this.mapOpts.inline + } + + let annotation = this.mapOpts.annotation + if (typeof annotation !== 'undefined' && annotation !== true) { + return false + } + + if (this.previous().length) { + return this.previous().some(i => i.inline) + } + return true + } + + isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map + } + return this.previous().length > 0 + } + + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent + } + if (this.previous().length) { + return this.previous().some(i => i.withContent()) + } + return true + } + + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to) + } else if (this.opts.from) { + return this.path(this.opts.from) + } else { + return 'to.css' + } + } + + path(file) { + if (this.mapOpts.absolute) return file + if (file.charCodeAt(0) === 60 /* `<` */) return file + if (/^\w+:\/\//.test(file)) return file + let cached = this.memoizedPaths.get(file) + if (cached) return cached + + let from = this.opts.to ? dirname(this.opts.to) : '.' + + if (typeof this.mapOpts.annotation === 'string') { + from = dirname(resolve(from, this.mapOpts.annotation)) + } + + let path = relative(from, file) + this.memoizedPaths.set(file, path) + + return path + } + + previous() { + if (!this.previousMaps) { + this.previousMaps = [] + if (this.root) { + this.root.walk(node => { + if (node.source && node.source.input.map) { + let map = node.source.input.map + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map) + } + } + }) + } else { + let input = new Input(this.originalCSS, this.opts) + if (input.map) this.previousMaps.push(input.map) + } + } + + return this.previousMaps + } + + setSourcesContent() { + let already = {} + if (this.root) { + this.root.walk(node => { + if (node.source) { + let from = node.source.input.from + if (from && !already[from]) { + already[from] = true + let fromUrl = this.usesFileUrls + ? this.toFileUrl(from) + : this.toUrl(this.path(from)) + this.map.setSourceContent(fromUrl, node.source.input.css) + } + } + }) + } else if (this.css) { + let from = this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '<no source>' + this.map.setSourceContent(from, this.css) + } + } + + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from) + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from) + } else { + return this.toUrl(this.path(node.source.input.from)) + } + } + + toBase64(str) { + if (Buffer) { + return Buffer.from(str).toString('base64') + } else { + return window.btoa(unescape(encodeURIComponent(str))) + } + } + + toFileUrl(path) { + let cached = this.memoizedFileURLs.get(path) + if (cached) return cached + + if (pathToFileURL) { + let fileURL = pathToFileURL(path).toString() + this.memoizedFileURLs.set(path, fileURL) + + return fileURL + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + + toUrl(path) { + let cached = this.memoizedURLs.get(path) + if (cached) return cached + + if (sep === '\\') { + path = path.replace(/\\/g, '/') + } + + let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent) + this.memoizedURLs.set(path, url) + + return url + } +} + +module.exports = MapGenerator diff --git a/node_modules/postcss/lib/no-work-result.d.ts b/node_modules/postcss/lib/no-work-result.d.ts new file mode 100644 index 0000000..094f30a --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.d.ts @@ -0,0 +1,46 @@ +import LazyResult from './lazy-result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Result, { Message, ResultOptions } from './result.js' +import Root from './root.js' +import Warning from './warning.js' + +declare namespace NoWorkResult { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { NoWorkResult_ as default } +} + +/** + * A Promise proxy for the result of PostCSS transformations. + * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root` + * are accessed. See the example below for details. + * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined. + * + * ```js + * const noWorkResult = postcss().process(css) // No plugins are defined. + * // CSS is not parsed + * let root = noWorkResult.root // now css is parsed because we accessed the root + * ``` + */ +declare class NoWorkResult_ implements LazyResult<Root> { + catch: Promise<Result<Root>>['catch'] + finally: Promise<Result<Root>>['finally'] + then: Promise<Result<Root>>['then'] + get content(): string + get css(): string + get map(): SourceMap + get messages(): Message[] + get opts(): ResultOptions + get processor(): Processor + get root(): Root + get [Symbol.toStringTag](): string + constructor(processor: Processor, css: string, opts: ResultOptions) + async(): Promise<Result<Root>> + sync(): Result<Root> + toString(): string + warnings(): Warning[] +} + +declare class NoWorkResult extends NoWorkResult_ {} + +export = NoWorkResult diff --git a/node_modules/postcss/lib/no-work-result.js b/node_modules/postcss/lib/no-work-result.js new file mode 100644 index 0000000..dd46182 --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.js @@ -0,0 +1,138 @@ +'use strict' + +let MapGenerator = require('./map-generator') +let parse = require('./parse') +const Result = require('./result') +let stringify = require('./stringify') +let warnOnce = require('./warn-once') + +class NoWorkResult { + get content() { + return this.result.css + } + + get css() { + return this.result.css + } + + get map() { + return this.result.map + } + + get messages() { + return [] + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + if (this._root) { + return this._root + } + + let root + let parser = parse + + try { + root = parser(this._css, this._opts) + } catch (error) { + this.error = error + } + + if (this.error) { + throw this.error + } else { + this._root = root + return root + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } + + constructor(processor, css, opts) { + css = css.toString() + this.stringified = false + + this._processor = processor + this._css = css + this._opts = opts + this._map = undefined + let root + + let str = stringify + this.result = new Result(this._processor, root, this._opts) + this.result.css = css + + let self = this + Object.defineProperty(this.result, 'root', { + get() { + return self.root + } + }) + + let map = new MapGenerator(str, root, this._opts, css) + if (map.isMap()) { + let [generatedCSS, generatedMap] = map.generate() + if (generatedCSS) { + this.result.css = generatedCSS + } + if (generatedMap) { + this.result.map = generatedMap + } + } else { + map.clearAnnotation() + this.result.css = map.css + } + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + sync() { + if (this.error) throw this.error + return this.result + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this._opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + + return this.async().then(onFulfilled, onRejected) + } + + toString() { + return this._css + } + + warnings() { + return [] + } +} + +module.exports = NoWorkResult +NoWorkResult.default = NoWorkResult diff --git a/node_modules/postcss/lib/node.d.ts b/node_modules/postcss/lib/node.d.ts new file mode 100644 index 0000000..a09fe4d --- /dev/null +++ b/node_modules/postcss/lib/node.d.ts @@ -0,0 +1,556 @@ +import AtRule = require('./at-rule.js') +import { AtRuleProps } from './at-rule.js' +import Comment, { CommentProps } from './comment.js' +import Container, { NewChild } from './container.js' +import CssSyntaxError from './css-syntax-error.js' +import Declaration, { DeclarationProps } from './declaration.js' +import Document from './document.js' +import Input from './input.js' +import { Stringifier, Syntax } from './postcss.js' +import Result from './result.js' +import Root from './root.js' +import Rule, { RuleProps } from './rule.js' +import Warning, { WarningOptions } from './warning.js' + +declare namespace Node { + export type ChildNode = AtRule.default | Comment | Declaration | Rule + + export type AnyNode = + | AtRule.default + | Comment + | Declaration + | Document + | Root + | Rule + + export type ChildProps = + | AtRuleProps + | CommentProps + | DeclarationProps + | RuleProps + + export interface Position { + /** + * Source line in file. In contrast to `offset` it starts from 1. + */ + column: number + + /** + * Source column in file. + */ + line: number + + /** + * Source offset in file. It starts from 0. + */ + offset: number + } + + export interface Range { + /** + * End position, exclusive. + */ + end: Position + + /** + * Start position, inclusive. + */ + start: Position + } + + /** + * Source represents an interface for the {@link Node.source} property. + */ + export interface Source { + /** + * The inclusive ending position for the source + * code of a node. + * + * However, `end.offset` of a non `Root` node is the exclusive position. + * See https://github.com/postcss/postcss/pull/1879 for details. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const a = root.first + * const color = a.first + * + * // The offset of `Root` node is the inclusive position + * css.source.end // { line: 1, column: 19, offset: 18 } + * + * // The offset of non `Root` node is the exclusive position + * a.source.end // { line: 1, column: 18, offset: 18 } + * color.source.end // { line: 1, column: 16, offset: 16 } + * ``` + */ + end?: Position + + /** + * The source file from where a node has originated. + */ + input: Input + + /** + * The inclusive starting position for the source + * code of a node. + */ + start?: Position + } + + /** + * Interface represents an interface for an object received + * as parameter by Node class constructor. + */ + export interface NodeProps { + source?: Source + } + + export interface NodeErrorOptions { + /** + * An ending index inside a node's string that should be highlighted as + * source of error. + */ + endIndex?: number + /** + * An index inside a node's string that should be highlighted as source + * of error. + */ + index?: number + /** + * Plugin name that created this error. PostCSS will set it automatically. + */ + plugin?: string + /** + * A word inside a node's string, that should be highlighted as source + * of error. + */ + word?: string + } + + // eslint-disable-next-line @typescript-eslint/no-shadow + class Node extends Node_ {} + export { Node as default } +} + +/** + * It represents an abstract class that handles common + * methods for other CSS abstract syntax tree nodes. + * + * Any node that represents CSS selector or value should + * not extend the `Node` class. + */ +declare abstract class Node_ { + /** + * It represents parent of the current node. + * + * ```js + * root.nodes[0].parent === root //=> true + * ``` + */ + parent: Container | Document | undefined + + /** + * It represents unnecessary whitespace and characters present + * in the css source code. + * + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * The properties of the raws object are decided by parser, + * the default parser uses the following properties: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `after`: the space symbols after the last child of the node + * to the end of the node. + * * `between`: the symbols between the property and value + * for declarations, selector and `{` for rules, or last parameter + * and `{` for at-rules. + * * `semicolon`: contains true if the last child has + * an (optional) semicolon. + * * `afterName`: the space between the at-rule name and its parameters. + * * `left`: the space symbols between `/*` and the comment’s text. + * * `right`: the space symbols between the comment’s text + * and <code>*/</code>. + * - `important`: the content of the important statement, + * if it is not just `!important`. + * + * PostCSS filters out the comments inside selectors, declaration values + * and at-rule parameters but it stores the origin content in raws. + * + * ```js + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '\n ', between: ':' } + * ``` + */ + raws: any + + /** + * It represents information related to origin of a node and is required + * for generating source maps. + * + * The nodes that are created manually using the public APIs + * provided by PostCSS will have `source` undefined and + * will be absent in the source map. + * + * For this reason, the plugin developer should consider + * duplicating nodes as the duplicate node will have the + * same source as the original node by default or assign + * source to a node created manually. + * + * ```js + * decl.source.input.from //=> '/home/ai/source.css' + * decl.source.start //=> { line: 10, column: 2 } + * decl.source.end //=> { line: 10, column: 12 } + * ``` + * + * ```js + * // Incorrect method, source not specified! + * const prefixed = postcss.decl({ + * prop: '-moz-' + decl.prop, + * value: decl.value + * }) + * + * // Correct method, source is inherited when duplicating. + * const prefixed = decl.clone({ + * prop: '-moz-' + decl.prop + * }) + * ``` + * + * ```js + * if (atrule.name === 'add-link') { + * const rule = postcss.rule({ + * selector: 'a', + * source: atrule.source + * }) + * + * atrule.parent.insertBefore(atrule, rule) + * } + * ``` + */ + source?: Node.Source + + /** + * It represents type of a node in + * an abstract syntax tree. + * + * A type of node helps in identification of a node + * and perform operation based on it's type. + * + * ```js + * const declaration = new Declaration({ + * prop: 'color', + * value: 'black' + * }) + * + * declaration.type //=> 'decl' + * ``` + */ + type: string + + constructor(defaults?: object) + + /** + * Insert new node after current node to current node’s parent. + * + * Just alias for `node.parent.insertAfter(node, add)`. + * + * ```js + * decl.after('color: black') + * ``` + * + * @param newNode New node. + * @return This node for methods chain. + */ + after( + newNode: Node | Node.ChildProps | readonly Node[] | string | undefined + ): this + + /** + * It assigns properties to an existing node instance. + * + * ```js + * decl.assign({ prop: 'word-wrap', value: 'break-word' }) + * ``` + * + * @param overrides New properties to override the node. + * + * @return `this` for method chaining. + */ + assign(overrides: object): this + + /** + * Insert new node before current node to current node’s parent. + * + * Just alias for `node.parent.insertBefore(node, add)`. + * + * ```js + * decl.before('content: ""') + * ``` + * + * @param newNode New node. + * @return This node for methods chain. + */ + before( + newNode: Node | Node.ChildProps | readonly Node[] | string | undefined + ): this + + /** + * Clear the code style properties for the node and its children. + * + * ```js + * node.raws.before //=> ' ' + * node.cleanRaws() + * node.raws.before //=> undefined + * ``` + * + * @param keepBetween Keep the `raws.between` symbols. + */ + cleanRaws(keepBetween?: boolean): void + + /** + * It creates clone of an existing node, which includes all the properties + * and their values, that includes `raws` but not `type`. + * + * ```js + * decl.raws.before //=> "\n " + * const cloned = decl.clone({ prop: '-moz-' + decl.prop }) + * cloned.raws.before //=> "\n " + * cloned.toString() //=> -moz-transform: scale(0) + * ``` + * + * @param overrides New properties to override in the clone. + * + * @return Duplicate of the node instance. + */ + clone(overrides?: object): this + + /** + * Shortcut to clone the node and insert the resulting cloned node + * after the current node. + * + * @param overrides New properties to override in the clone. + * @return New node. + */ + cloneAfter(overrides?: object): this + + /** + * Shortcut to clone the node and insert the resulting cloned node + * before the current node. + * + * ```js + * decl.cloneBefore({ prop: '-moz-' + decl.prop }) + * ``` + * + * @param overrides Mew properties to override in the clone. + * + * @return New node + */ + cloneBefore(overrides?: object): this + + /** + * It creates an instance of the class `CssSyntaxError` and parameters passed + * to this method are assigned to the error instance. + * + * The error instance will have description for the + * error, original position of the node in the + * source, showing line and column number. + * + * If any previous map is present, it would be used + * to get original position of the source. + * + * The Previous Map here is referred to the source map + * generated by previous compilation, example: Less, + * Stylus and Sass. + * + * This method returns the error instance instead of + * throwing it. + * + * ```js + * if (!variables[name]) { + * throw decl.error(`Unknown variable ${name}`, { word: name }) + * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black + * // color: $black + * // a + * // ^ + * // background: white + * } + * ``` + * + * @param message Description for the error instance. + * @param options Options for the error instance. + * + * @return Error instance is returned. + */ + error(message: string, options?: Node.NodeErrorOptions): CssSyntaxError + + /** + * Returns the next child of the node’s parent. + * Returns `undefined` if the current node is the last child. + * + * ```js + * if (comment.text === 'delete next') { + * const next = comment.next() + * if (next) { + * next.remove() + * } + * } + * ``` + * + * @return Next node. + */ + next(): Node.ChildNode | undefined + + /** + * Get the position for a word or an index inside the node. + * + * @param opts Options. + * @return Position. + */ + positionBy(opts?: Pick<WarningOptions, 'index' | 'word'>): Node.Position + + /** + * Convert string index to line/column. + * + * @param index The symbol number in the node’s string. + * @return Symbol position in file. + */ + positionInside(index: number): Node.Position + + /** + * Returns the previous child of the node’s parent. + * Returns `undefined` if the current node is the first child. + * + * ```js + * const annotation = decl.prev() + * if (annotation.type === 'comment') { + * readAnnotation(annotation.text) + * } + * ``` + * + * @return Previous node. + */ + prev(): Node.ChildNode | undefined + + /** + * Get the range for a word or start and end index inside the node. + * The start index is inclusive; the end index is exclusive. + * + * @param opts Options. + * @return Range. + */ + rangeBy( + opts?: Pick<WarningOptions, 'end' | 'endIndex' | 'index' | 'start' | 'word'> + ): Node.Range + + /** + * Returns a `raws` value. If the node is missing + * the code style property (because the node was manually built or cloned), + * PostCSS will try to autodetect the code style property by looking + * at other nodes in the tree. + * + * ```js + * const root = postcss.parse('a { background: white }') + * root.nodes[0].append({ prop: 'color', value: 'black' }) + * root.nodes[0].nodes[1].raws.before //=> undefined + * root.nodes[0].nodes[1].raw('before') //=> ' ' + * ``` + * + * @param prop Name of code style property. + * @param defaultType Name of default value, it can be missed + * if the value is the same as prop. + * @return {string} Code style value. + */ + raw(prop: string, defaultType?: string): string + + /** + * It removes the node from its parent and deletes its parent property. + * + * ```js + * if (decl.prop.match(/^-webkit-/)) { + * decl.remove() + * } + * ``` + * + * @return `this` for method chaining. + */ + remove(): this + + /** + * Inserts node(s) before the current node and removes the current node. + * + * ```js + * AtRule: { + * mixin: atrule => { + * atrule.replaceWith(mixinRules[atrule.params]) + * } + * } + * ``` + * + * @param nodes Mode(s) to replace current one. + * @return Current node to methods chain. + */ + replaceWith(...nodes: NewChild[]): this + + /** + * Finds the Root instance of the node’s tree. + * + * ```js + * root.nodes[0].nodes[0].root() === root + * ``` + * + * @return Root parent. + */ + root(): Root + + /** + * Fix circular links on `JSON.stringify()`. + * + * @return Cleaned object. + */ + toJSON(): object + + /** + * It compiles the node to browser readable cascading style sheets string + * depending on it's type. + * + * ```js + * new Rule({ selector: 'a' }).toString() //=> "a {}" + * ``` + * + * @param stringifier A syntax to use in string generation. + * @return CSS string of this node. + */ + toString(stringifier?: Stringifier | Syntax): string + + /** + * It is a wrapper for {@link Result#warn}, providing convenient + * way of generating warnings. + * + * ```js + * Declaration: { + * bad: (decl, { result }) => { + * decl.warn(result, 'Deprecated property: bad') + * } + * } + * ``` + * + * @param result The `Result` instance that will receive the warning. + * @param message Description for the warning. + * @param options Options for the warning. + * + * @return `Warning` instance is returned + */ + warn(result: Result, message: string, options?: WarningOptions): Warning + + /** + * If this node isn't already dirty, marks it and its ancestors as such. This + * indicates to the LazyResult processor that the {@link Root} has been + * modified by the current plugin and may need to be processed again by other + * plugins. + */ + protected markDirty(): void +} + +declare class Node extends Node_ {} + +export = Node diff --git a/node_modules/postcss/lib/node.js b/node_modules/postcss/lib/node.js new file mode 100644 index 0000000..b403b71 --- /dev/null +++ b/node_modules/postcss/lib/node.js @@ -0,0 +1,449 @@ +'use strict' + +let CssSyntaxError = require('./css-syntax-error') +let Stringifier = require('./stringifier') +let stringify = require('./stringify') +let { isClean, my } = require('./symbols') + +function cloneNode(obj, parent) { + let cloned = new obj.constructor() + + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + /* c8 ignore next 2 */ + continue + } + if (i === 'proxyCache') continue + let value = obj[i] + let type = typeof value + + if (i === 'parent' && type === 'object') { + if (parent) cloned[i] = parent + } else if (i === 'source') { + cloned[i] = value + } else if (Array.isArray(value)) { + cloned[i] = value.map(j => cloneNode(j, cloned)) + } else { + if (type === 'object' && value !== null) value = cloneNode(value) + cloned[i] = value + } + } + + return cloned +} + +function sourceOffset(inputCSS, position) { + // Not all custom syntaxes support `offset` in `source.start` and `source.end` + if (position && typeof position.offset !== 'undefined') { + return position.offset + } + + let column = 1 + let line = 1 + let offset = 0 + + for (let i = 0; i < inputCSS.length; i++) { + if (line === position.line && column === position.column) { + offset = i + break + } + + if (inputCSS[i] === '\n') { + column = 1 + line += 1 + } else { + column += 1 + } + } + + return offset +} + +class Node { + get proxyOf() { + return this + } + + constructor(defaults = {}) { + this.raws = {} + this[isClean] = false + this[my] = true + + for (let name in defaults) { + if (name === 'nodes') { + this.nodes = [] + for (let node of defaults[name]) { + if (typeof node.clone === 'function') { + this.append(node.clone()) + } else { + this.append(node) + } + } + } else { + this[name] = defaults[name] + } + } + } + + addToError(error) { + error.postcssNode = this + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source + error.stack = error.stack.replace( + /\n\s{4}at /, + `$&${s.input.from}:${s.start.line}:${s.start.column}$&` + ) + } + return error + } + + after(add) { + this.parent.insertAfter(this, add) + return this + } + + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name] + } + return this + } + + before(add) { + this.parent.insertBefore(this, add) + return this + } + + cleanRaws(keepBetween) { + delete this.raws.before + delete this.raws.after + if (!keepBetween) delete this.raws.between + } + + clone(overrides = {}) { + let cloned = cloneNode(this) + for (let name in overrides) { + cloned[name] = overrides[name] + } + return cloned + } + + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertAfter(this, cloned) + return cloned + } + + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertBefore(this, cloned) + return cloned + } + + error(message, opts = {}) { + if (this.source) { + let { end, start } = this.rangeBy(opts) + return this.source.input.error( + message, + { column: start.column, line: start.line }, + { column: end.column, line: end.line }, + opts + ) + } + return new CssSyntaxError(message) + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (prop === 'root') { + return () => node.root().toProxy() + } else { + return node[prop] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if ( + prop === 'prop' || + prop === 'value' || + prop === 'name' || + prop === 'params' || + prop === 'important' || + /* c8 ignore next */ + prop === 'text' + ) { + node.markDirty() + } + return true + } + } + } + + /* c8 ignore next 3 */ + markClean() { + this[isClean] = true + } + + markDirty() { + if (this[isClean]) { + this[isClean] = false + let next = this + while ((next = next.parent)) { + next[isClean] = false + } + } + } + + next() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index + 1] + } + + positionBy(opts = {}) { + let pos = this.source.start + if (opts.index) { + pos = this.positionInside(opts.index) + } else if (opts.word) { + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css + let stringRepresentation = inputString.slice( + sourceOffset(inputString, this.source.start), + sourceOffset(inputString, this.source.end) + ) + let index = stringRepresentation.indexOf(opts.word) + if (index !== -1) pos = this.positionInside(index) + } + return pos + } + + positionInside(index) { + let column = this.source.start.column + let line = this.source.start.line + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css + let offset = sourceOffset(inputString, this.source.start) + let end = offset + index + + for (let i = offset; i < end; i++) { + if (inputString[i] === '\n') { + column = 1 + line += 1 + } else { + column += 1 + } + } + + return { column, line, offset: end } + } + + prev() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index - 1] + } + + rangeBy(opts = {}) { + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css + let start = { + column: this.source.start.column, + line: this.source.start.line, + offset: sourceOffset(inputString, this.source.start) + } + let end = this.source.end + ? { + column: this.source.end.column + 1, + line: this.source.end.line, + offset: + typeof this.source.end.offset === 'number' + ? // `source.end.offset` is exclusive, so we don't need to add 1 + this.source.end.offset + : // Since line/column in this.source.end is inclusive, + // the `sourceOffset(... , this.source.end)` returns an inclusive offset. + // So, we add 1 to convert it to exclusive. + sourceOffset(inputString, this.source.end) + 1 + } + : { + column: start.column + 1, + line: start.line, + offset: start.offset + 1 + } + + if (opts.word) { + let stringRepresentation = inputString.slice( + sourceOffset(inputString, this.source.start), + sourceOffset(inputString, this.source.end) + ) + let index = stringRepresentation.indexOf(opts.word) + if (index !== -1) { + start = this.positionInside(index) + end = this.positionInside(index + opts.word.length) + } + } else { + if (opts.start) { + start = { + column: opts.start.column, + line: opts.start.line, + offset: sourceOffset(inputString, opts.start) + } + } else if (opts.index) { + start = this.positionInside(opts.index) + } + + if (opts.end) { + end = { + column: opts.end.column, + line: opts.end.line, + offset: sourceOffset(inputString, opts.end) + } + } else if (typeof opts.endIndex === 'number') { + end = this.positionInside(opts.endIndex) + } else if (opts.index) { + end = this.positionInside(opts.index + 1) + } + } + + if ( + end.line < start.line || + (end.line === start.line && end.column <= start.column) + ) { + end = { + column: start.column + 1, + line: start.line, + offset: start.offset + 1 + } + } + + return { end, start } + } + + raw(prop, defaultType) { + let str = new Stringifier() + return str.raw(this, prop, defaultType) + } + + remove() { + if (this.parent) { + this.parent.removeChild(this) + } + this.parent = undefined + return this + } + + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this + let foundSelf = false + for (let node of nodes) { + if (node === this) { + foundSelf = true + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node) + bookmark = node + } else { + this.parent.insertBefore(bookmark, node) + } + } + + if (!foundSelf) { + this.remove() + } + } + + return this + } + + root() { + let result = this + while (result.parent && result.parent.type !== 'document') { + result = result.parent + } + return result + } + + toJSON(_, inputs) { + let fixed = {} + let emitInputs = inputs == null + inputs = inputs || new Map() + let inputsNextIndex = 0 + + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + /* c8 ignore next 2 */ + continue + } + if (name === 'parent' || name === 'proxyCache') continue + let value = this[name] + + if (Array.isArray(value)) { + fixed[name] = value.map(i => { + if (typeof i === 'object' && i.toJSON) { + return i.toJSON(null, inputs) + } else { + return i + } + }) + } else if (typeof value === 'object' && value.toJSON) { + fixed[name] = value.toJSON(null, inputs) + } else if (name === 'source') { + if (value == null) continue + let inputId = inputs.get(value.input) + if (inputId == null) { + inputId = inputsNextIndex + inputs.set(value.input, inputsNextIndex) + inputsNextIndex++ + } + fixed[name] = { + end: value.end, + inputId, + start: value.start + } + } else { + fixed[name] = value + } + } + + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map(input => input.toJSON()) + } + + return fixed + } + + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()) + } + return this.proxyCache + } + + toString(stringifier = stringify) { + if (stringifier.stringify) stringifier = stringifier.stringify + let result = '' + stringifier(this, i => { + result += i + }) + return result + } + + warn(result, text, opts = {}) { + let data = { node: this } + for (let i in opts) data[i] = opts[i] + return result.warn(text, data) + } +} + +module.exports = Node +Node.default = Node diff --git a/node_modules/postcss/lib/parse.d.ts b/node_modules/postcss/lib/parse.d.ts new file mode 100644 index 0000000..4c943a4 --- /dev/null +++ b/node_modules/postcss/lib/parse.d.ts @@ -0,0 +1,9 @@ +import { Parser } from './postcss.js' + +interface Parse extends Parser { + default: Parse +} + +declare const parse: Parse + +export = parse diff --git a/node_modules/postcss/lib/parse.js b/node_modules/postcss/lib/parse.js new file mode 100644 index 0000000..00a1037 --- /dev/null +++ b/node_modules/postcss/lib/parse.js @@ -0,0 +1,42 @@ +'use strict' + +let Container = require('./container') +let Input = require('./input') +let Parser = require('./parser') + +function parse(css, opts) { + let input = new Input(css, opts) + let parser = new Parser(input) + try { + parser.parse() + } catch (e) { + if (process.env.NODE_ENV !== 'production') { + if (e.name === 'CssSyntaxError' && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += + '\nYou tried to parse SCSS with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-scss parser' + } else if (/\.sass/i.test(opts.from)) { + e.message += + '\nYou tried to parse Sass with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-sass parser' + } else if (/\.less$/i.test(opts.from)) { + e.message += + '\nYou tried to parse Less with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-less parser' + } + } + } + throw e + } + + return parser.root +} + +module.exports = parse +parse.default = parse + +Container.registerParse(parse) diff --git a/node_modules/postcss/lib/parser.js b/node_modules/postcss/lib/parser.js new file mode 100644 index 0000000..64fb5d8 --- /dev/null +++ b/node_modules/postcss/lib/parser.js @@ -0,0 +1,611 @@ +'use strict' + +let AtRule = require('./at-rule') +let Comment = require('./comment') +let Declaration = require('./declaration') +let Root = require('./root') +let Rule = require('./rule') +let tokenizer = require('./tokenize') + +const SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true +} + +function findLastWithPosition(tokens) { + for (let i = tokens.length - 1; i >= 0; i--) { + let token = tokens[i] + let pos = token[3] || token[2] + if (pos) return pos + } +} + +class Parser { + constructor(input) { + this.input = input + + this.root = new Root() + this.current = this.root + this.spaces = '' + this.semicolon = false + + this.createTokenizer() + this.root.source = { input, start: { column: 1, line: 1, offset: 0 } } + } + + atrule(token) { + let node = new AtRule() + node.name = token[1].slice(1) + if (node.name === '') { + this.unnamedAtrule(node, token) + } + this.init(node, token[2]) + + let type + let prev + let shift + let last = false + let open = false + let params = [] + let brackets = [] + + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + type = token[0] + + if (type === '(' || type === '[') { + brackets.push(type === '(' ? ')' : ']') + } else if (type === '{' && brackets.length > 0) { + brackets.push('}') + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + } + + if (brackets.length === 0) { + if (type === ';') { + node.source.end = this.getPosition(token[2]) + node.source.end.offset++ + this.semicolon = true + break + } else if (type === '{') { + open = true + break + } else if (type === '}') { + if (params.length > 0) { + shift = params.length - 1 + prev = params[shift] + while (prev && prev[0] === 'space') { + prev = params[--shift] + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]) + node.source.end.offset++ + } + } + this.end(token) + break + } else { + params.push(token) + } + } else { + params.push(token) + } + + if (this.tokenizer.endOfFile()) { + last = true + break + } + } + + node.raws.between = this.spacesAndCommentsFromEnd(params) + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params) + this.raw(node, 'params', params) + if (last) { + token = params[params.length - 1] + node.source.end = this.getPosition(token[3] || token[2]) + node.source.end.offset++ + this.spaces = node.raws.between + node.raws.between = '' + } + } else { + node.raws.afterName = '' + node.params = '' + } + + if (open) { + node.nodes = [] + this.current = node + } + } + + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens) + if (colon === false) return + + let founded = 0 + let token + for (let j = colon - 1; j >= 0; j--) { + token = tokens[j] + if (token[0] !== 'space') { + founded += 1 + if (founded === 2) break + } + } + // If the token is a word, e.g. `!important`, `red` or any other valid property's value. + // Then we need to return the colon after that word token. [3] is the "end" colon of that word. + // And because we need it after that one we do +1 to get the next one. + throw this.input.error( + 'Missed semicolon', + token[0] === 'word' ? token[3] + 1 : token[2] + ) + } + + colon(tokens) { + let brackets = 0 + let prev, token, type + for (let [i, element] of tokens.entries()) { + token = element + type = token[0] + + if (type === '(') { + brackets += 1 + } + if (type === ')') { + brackets -= 1 + } + if (brackets === 0 && type === ':') { + if (!prev) { + this.doubleColon(token) + } else if (prev[0] === 'word' && prev[1] === 'progid') { + continue + } else { + return i + } + } + + prev = token + } + return false + } + + comment(token) { + let node = new Comment() + this.init(node, token[2]) + node.source.end = this.getPosition(token[3] || token[2]) + node.source.end.offset++ + + let text = token[1].slice(2, -2) + if (/^\s*$/.test(text)) { + node.text = '' + node.raws.left = text + node.raws.right = '' + } else { + let match = text.match(/^(\s*)([^]*\S)(\s*)$/) + node.text = match[2] + node.raws.left = match[1] + node.raws.right = match[3] + } + } + + createTokenizer() { + this.tokenizer = tokenizer(this.input) + } + + decl(tokens, customProperty) { + let node = new Declaration() + this.init(node, tokens[0][2]) + + let last = tokens[tokens.length - 1] + if (last[0] === ';') { + this.semicolon = true + tokens.pop() + } + + node.source.end = this.getPosition( + last[3] || last[2] || findLastWithPosition(tokens) + ) + node.source.end.offset++ + + while (tokens[0][0] !== 'word') { + if (tokens.length === 1) this.unknownWord(tokens) + node.raws.before += tokens.shift()[1] + } + node.source.start = this.getPosition(tokens[0][2]) + + node.prop = '' + while (tokens.length) { + let type = tokens[0][0] + if (type === ':' || type === 'space' || type === 'comment') { + break + } + node.prop += tokens.shift()[1] + } + + node.raws.between = '' + + let token + while (tokens.length) { + token = tokens.shift() + + if (token[0] === ':') { + node.raws.between += token[1] + break + } else { + if (token[0] === 'word' && /\w/.test(token[1])) { + this.unknownWord([token]) + } + node.raws.between += token[1] + } + } + + if (node.prop[0] === '_' || node.prop[0] === '*') { + node.raws.before += node.prop[0] + node.prop = node.prop.slice(1) + } + + let firstSpaces = [] + let next + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + firstSpaces.push(tokens.shift()) + } + + this.precheckMissedSemicolon(tokens) + + for (let i = tokens.length - 1; i >= 0; i--) { + token = tokens[i] + if (token[1].toLowerCase() === '!important') { + node.important = true + let string = this.stringFrom(tokens, i) + string = this.spacesFromEnd(tokens) + string + if (string !== ' !important') node.raws.important = string + break + } else if (token[1].toLowerCase() === 'important') { + let cache = tokens.slice(0) + let str = '' + for (let j = i; j > 0; j--) { + let type = cache[j][0] + if (str.trim().startsWith('!') && type !== 'space') { + break + } + str = cache.pop()[1] + str + } + if (str.trim().startsWith('!')) { + node.important = true + node.raws.important = str + tokens = cache + } + } + + if (token[0] !== 'space' && token[0] !== 'comment') { + break + } + } + + let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment') + + if (hasWord) { + node.raws.between += firstSpaces.map(i => i[1]).join('') + firstSpaces = [] + } + this.raw(node, 'value', firstSpaces.concat(tokens), customProperty) + + if (node.value.includes(':') && !customProperty) { + this.checkMissedSemicolon(tokens) + } + } + + doubleColon(token) { + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + emptyRule(token) { + let node = new Rule() + this.init(node, token[2]) + node.selector = '' + node.raws.between = '' + this.current = node + } + + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.semicolon = false + + this.current.raws.after = (this.current.raws.after || '') + this.spaces + this.spaces = '' + + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]) + this.current.source.end.offset++ + this.current = this.current.parent + } else { + this.unexpectedClose(token) + } + } + + endFile() { + if (this.current.parent) this.unclosedBlock() + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.current.raws.after = (this.current.raws.after || '') + this.spaces + this.root.source.end = this.getPosition(this.tokenizer.position()) + } + + freeSemicolon(token) { + this.spaces += token[1] + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1] + if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces + this.spaces = '' + prev.source.end = this.getPosition(token[2]) + prev.source.end.offset += prev.raws.ownSemicolon.length + } + } + } + + // Helpers + + getPosition(offset) { + let pos = this.input.fromOffset(offset) + return { + column: pos.col, + line: pos.line, + offset + } + } + + init(node, offset) { + this.current.push(node) + node.source = { + input: this.input, + start: this.getPosition(offset) + } + node.raws.before = this.spaces + this.spaces = '' + if (node.type !== 'comment') this.semicolon = false + } + + other(start) { + let end = false + let type = null + let colon = false + let bracket = null + let brackets = [] + let customProperty = start[1].startsWith('--') + + let tokens = [] + let token = start + while (token) { + type = token[0] + tokens.push(token) + + if (type === '(' || type === '[') { + if (!bracket) bracket = token + brackets.push(type === '(' ? ')' : ']') + } else if (customProperty && colon && type === '{') { + if (!bracket) bracket = token + brackets.push('}') + } else if (brackets.length === 0) { + if (type === ';') { + if (colon) { + this.decl(tokens, customProperty) + return + } else { + break + } + } else if (type === '{') { + this.rule(tokens) + return + } else if (type === '}') { + this.tokenizer.back(tokens.pop()) + end = true + break + } else if (type === ':') { + colon = true + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + if (brackets.length === 0) bracket = null + } + + token = this.tokenizer.nextToken() + } + + if (this.tokenizer.endOfFile()) end = true + if (brackets.length > 0) this.unclosedBracket(bracket) + + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0] + if (token !== 'space' && token !== 'comment') break + this.tokenizer.back(tokens.pop()) + } + } + this.decl(tokens, customProperty) + } else { + this.unknownWord(tokens) + } + } + + parse() { + let token + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + + switch (token[0]) { + case 'space': + this.spaces += token[1] + break + + case ';': + this.freeSemicolon(token) + break + + case '}': + this.end(token) + break + + case 'comment': + this.comment(token) + break + + case 'at-word': + this.atrule(token) + break + + case '{': + this.emptyRule(token) + break + + default: + this.other(token) + break + } + } + this.endFile() + } + + precheckMissedSemicolon(/* tokens */) { + // Hook for Safe Parser + } + + raw(node, prop, tokens, customProperty) { + let token, type + let length = tokens.length + let value = '' + let clean = true + let next, prev + + for (let i = 0; i < length; i += 1) { + token = tokens[i] + type = token[0] + if (type === 'space' && i === length - 1 && !customProperty) { + clean = false + } else if (type === 'comment') { + prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty' + next = tokens[i + 1] ? tokens[i + 1][0] : 'empty' + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { + if (value.slice(-1) === ',') { + clean = false + } else { + value += token[1] + } + } else { + clean = false + } + } else { + value += token[1] + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], '') + node.raws[prop] = { raw, value } + } + node[prop] = value + } + + rule(tokens) { + tokens.pop() + + let node = new Rule() + this.init(node, tokens[0][2]) + + node.raws.between = this.spacesAndCommentsFromEnd(tokens) + this.raw(node, 'selector', tokens) + this.current = node + } + + spacesAndCommentsFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space' && lastTokenType !== 'comment') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + // Errors + + spacesAndCommentsFromStart(tokens) { + let next + let spaces = '' + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + spaces += tokens.shift()[1] + } + return spaces + } + + spacesFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + stringFrom(tokens, from) { + let result = '' + for (let i = from; i < tokens.length; i++) { + result += tokens[i][1] + } + tokens.splice(from, tokens.length - from) + return result + } + + unclosedBlock() { + let pos = this.current.source.start + throw this.input.error('Unclosed block', pos.line, pos.column) + } + + unclosedBracket(bracket) { + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) + } + + unexpectedClose(token) { + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) + } + + unknownWord(tokens) { + throw this.input.error( + 'Unknown word ' + tokens[0][1], + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) + } + + unnamedAtrule(node, token) { + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } +} + +module.exports = Parser diff --git a/node_modules/postcss/lib/postcss.d.mts b/node_modules/postcss/lib/postcss.d.mts new file mode 100644 index 0000000..d343f3c --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.mts @@ -0,0 +1,69 @@ +export { + // Type-only exports + AcceptedPlugin, + + AnyNode, + atRule, + AtRule, + AtRuleProps, + Builder, + ChildNode, + ChildProps, + comment, + Comment, + CommentProps, + Container, + ContainerProps, + CssSyntaxError, + decl, + Declaration, + DeclarationProps, + // postcss function / namespace + default, + document, + Document, + DocumentProps, + FilePosition, + fromJSON, + Helpers, + Input, + + JSONHydrator, + // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here. + type LazyResult, + list, + Message, + Node, + NodeErrorOptions, + NodeProps, + OldPlugin, + parse, + Parser, + // @ts-expect-error This value exists, but it’s untyped. + plugin, + Plugin, + PluginCreator, + Position, + Postcss, + ProcessOptions, + Processor, + Result, + root, + Root, + RootProps, + rule, + Rule, + RuleProps, + Source, + SourceMap, + SourceMapOptions, + Stringifier, + // Value exports from postcss.mjs + stringify, + Syntax, + TransformCallback, + Transformer, + Warning, + + WarningOptions +} from './postcss.js' diff --git a/node_modules/postcss/lib/postcss.d.ts b/node_modules/postcss/lib/postcss.d.ts new file mode 100644 index 0000000..c5e3605 --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.ts @@ -0,0 +1,458 @@ +import { RawSourceMap, SourceMapGenerator } from 'source-map-js' + +import AtRule, { AtRuleProps } from './at-rule.js' +import Comment, { CommentProps } from './comment.js' +import Container, { ContainerProps, NewChild } from './container.js' +import CssSyntaxError from './css-syntax-error.js' +import Declaration, { DeclarationProps } from './declaration.js' +import Document, { DocumentProps } from './document.js' +import Input, { FilePosition } from './input.js' +import LazyResult from './lazy-result.js' +import list from './list.js' +import Node, { + AnyNode, + ChildNode, + ChildProps, + NodeErrorOptions, + NodeProps, + Position, + Source +} from './node.js' +import Processor from './processor.js' +import Result, { Message } from './result.js' +import Root, { RootProps } from './root.js' +import Rule, { RuleProps } from './rule.js' +import Warning, { WarningOptions } from './warning.js' + +type DocumentProcessor = ( + document: Document, + helper: postcss.Helpers +) => Promise<void> | void +type RootProcessor = ( + root: Root, + helper: postcss.Helpers +) => Promise<void> | void +type DeclarationProcessor = ( + decl: Declaration, + helper: postcss.Helpers +) => Promise<void> | void +type RuleProcessor = ( + rule: Rule, + helper: postcss.Helpers +) => Promise<void> | void +type AtRuleProcessor = ( + atRule: AtRule, + helper: postcss.Helpers +) => Promise<void> | void +type CommentProcessor = ( + comment: Comment, + helper: postcss.Helpers +) => Promise<void> | void + +interface Processors { + /** + * Will be called on all`AtRule` nodes. + * + * Will be called again on node or children changes. + */ + AtRule?: { [name: string]: AtRuleProcessor } | AtRuleProcessor + + /** + * Will be called on all `AtRule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + AtRuleExit?: { [name: string]: AtRuleProcessor } | AtRuleProcessor + + /** + * Will be called on all `Comment` nodes. + * + * Will be called again on node or children changes. + */ + Comment?: CommentProcessor + + /** + * Will be called on all `Comment` nodes after listeners + * for `Comment` event. + * + * Will be called again on node or children changes. + */ + CommentExit?: CommentProcessor + + /** + * Will be called on all `Declaration` nodes after listeners + * for `Declaration` event. + * + * Will be called again on node or children changes. + */ + Declaration?: { [prop: string]: DeclarationProcessor } | DeclarationProcessor + + /** + * Will be called on all `Declaration` nodes. + * + * Will be called again on node or children changes. + */ + DeclarationExit?: + | { [prop: string]: DeclarationProcessor } + | DeclarationProcessor + + /** + * Will be called on `Document` node. + * + * Will be called again on children changes. + */ + Document?: DocumentProcessor + + /** + * Will be called on `Document` node, when all children will be processed. + * + * Will be called again on children changes. + */ + DocumentExit?: DocumentProcessor + + /** + * Will be called on `Root` node once. + */ + Once?: RootProcessor + + /** + * Will be called on `Root` node once, when all children will be processed. + */ + OnceExit?: RootProcessor + + /** + * Will be called on `Root` node. + * + * Will be called again on children changes. + */ + Root?: RootProcessor + + /** + * Will be called on `Root` node, when all children will be processed. + * + * Will be called again on children changes. + */ + RootExit?: RootProcessor + + /** + * Will be called on all `Rule` nodes. + * + * Will be called again on node or children changes. + */ + Rule?: RuleProcessor + + /** + * Will be called on all `Rule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + RuleExit?: RuleProcessor +} + +declare namespace postcss { + export { + AnyNode, + AtRule, + AtRuleProps, + ChildNode, + ChildProps, + Comment, + CommentProps, + Container, + ContainerProps, + CssSyntaxError, + Declaration, + DeclarationProps, + Document, + DocumentProps, + FilePosition, + Input, + LazyResult, + list, + Message, + NewChild, + Node, + NodeErrorOptions, + NodeProps, + Position, + Processor, + Result, + Root, + RootProps, + Rule, + RuleProps, + Source, + Warning, + WarningOptions + } + + export type SourceMap = { + toJSON(): RawSourceMap + } & SourceMapGenerator + + export type Helpers = { postcss: Postcss; result: Result } & Postcss + + export interface Plugin extends Processors { + postcssPlugin: string + prepare?: (result: Result) => Processors + } + + export interface PluginCreator<PluginOptions> { + (opts?: PluginOptions): Plugin | Processor + postcss: true + } + + export interface Transformer extends TransformCallback { + postcssPlugin: string + postcssVersion: string + } + + export interface TransformCallback { + (root: Root, result: Result): Promise<void> | void + } + + export interface OldPlugin<T> extends Transformer { + (opts?: T): Transformer + postcss: Transformer + } + + export type AcceptedPlugin = + | { + postcss: Processor | TransformCallback + } + | OldPlugin<any> + | Plugin + | PluginCreator<any> + | Processor + | TransformCallback + + export interface Parser<RootNode = Document | Root> { + ( + css: { toString(): string } | string, + opts?: Pick<ProcessOptions, 'document' | 'from' | 'map'> + ): RootNode + } + + export interface Builder { + (part: string, node?: AnyNode, type?: 'end' | 'start'): void + } + + export interface Stringifier { + (node: AnyNode, builder: Builder): void + } + + export interface JSONHydrator { + (data: object): Node + (data: object[]): Node[] + } + + export interface Syntax<RootNode = Document | Root> { + /** + * Function to generate AST by string. + */ + parse?: Parser<RootNode> + + /** + * Class to generate string by AST. + */ + stringify?: Stringifier + } + + export interface SourceMapOptions { + /** + * Use absolute path in generated source map. + */ + absolute?: boolean + + /** + * Indicates that PostCSS should add annotation comments to the CSS. + * By default, PostCSS will always add a comment with a path + * to the source map. PostCSS will not add annotations to CSS files + * that do not contain any comments. + * + * By default, PostCSS presumes that you want to save the source map as + * `opts.to + '.map'` and will use this path in the annotation comment. + * A different path can be set by providing a string value for annotation. + * + * If you have set `inline: true`, annotation cannot be disabled. + */ + annotation?: ((file: string, root: Root) => string) | boolean | string + + /** + * Override `from` in map’s sources. + */ + from?: string + + /** + * Indicates that the source map should be embedded in the output CSS + * as a Base64-encoded comment. By default, it is `true`. + * But if all previous maps are external, not inline, PostCSS will not embed + * the map even if you do not set this option. + * + * If you have an inline source map, the result.map property will be empty, + * as the source map will be contained within the text of `result.css`. + */ + inline?: boolean + + /** + * Source map content from a previous processing step (e.g., Sass). + * + * PostCSS will try to read the previous source map + * automatically (based on comments within the source CSS), but you can use + * this option to identify it manually. + * + * If desired, you can omit the previous map with prev: `false`. + */ + prev?: ((file: string) => string) | boolean | object | string + + /** + * Indicates that PostCSS should set the origin content (e.g., Sass source) + * of the source map. By default, it is true. But if all previous maps do not + * contain sources content, PostCSS will also leave it out even if you + * do not set this option. + */ + sourcesContent?: boolean + } + + export interface ProcessOptions<RootNode = Document | Root> { + /** + * Input file if it is not simple CSS file, but HTML with <style> or JS with CSS-in-JS blocks. + */ + document?: string + + /** + * The path of the CSS source file. You should always set `from`, + * because it is used in source map generation and syntax error messages. + */ + from?: string | undefined + + /** + * Source map options + */ + map?: boolean | SourceMapOptions + + /** + * Function to generate AST by string. + */ + parser?: Parser<RootNode> | Syntax<RootNode> + + /** + * Class to generate string by AST. + */ + stringifier?: Stringifier | Syntax<RootNode> + + /** + * Object with parse and stringify. + */ + syntax?: Syntax<RootNode> + + /** + * The path where you'll put the output CSS file. You should always set `to` + * to generate correct source maps. + */ + to?: string + } + + export type Postcss = typeof postcss + + /** + * Default function to convert a node tree into a CSS string. + */ + export let stringify: Stringifier + + /** + * Parses source css and returns a new `Root` or `Document` node, + * which contains the source CSS nodes. + * + * ```js + * // Simple CSS concatenation with source map support + * const root1 = postcss.parse(css1, { from: file1 }) + * const root2 = postcss.parse(css2, { from: file2 }) + * root1.append(root2).toResult().css + * ``` + */ + export let parse: Parser<Root> + + /** + * Rehydrate a JSON AST (from `Node#toJSON`) back into the AST classes. + * + * ```js + * const json = root.toJSON() + * // save to file, send by network, etc + * const root2 = postcss.fromJSON(json) + * ``` + */ + export let fromJSON: JSONHydrator + + /** + * Creates a new `Comment` node. + * + * @param defaults Properties for the new node. + * @return New comment node + */ + export function comment(defaults?: CommentProps): Comment + + /** + * Creates a new `AtRule` node. + * + * @param defaults Properties for the new node. + * @return New at-rule node. + */ + export function atRule(defaults?: AtRuleProps): AtRule + + /** + * Creates a new `Declaration` node. + * + * @param defaults Properties for the new node. + * @return New declaration node. + */ + export function decl(defaults?: DeclarationProps): Declaration + + /** + * Creates a new `Rule` node. + * + * @param default Properties for the new node. + * @return New rule node. + */ + export function rule(defaults?: RuleProps): Rule + + /** + * Creates a new `Root` node. + * + * @param defaults Properties for the new node. + * @return New root node. + */ + export function root(defaults?: RootProps): Root + + /** + * Creates a new `Document` node. + * + * @param defaults Properties for the new node. + * @return New document node. + */ + export function document(defaults?: DocumentProps): Document + + export { postcss as default } +} + +/** + * Create a new `Processor` instance that will apply `plugins` + * as CSS processors. + * + * ```js + * let postcss = require('postcss') + * + * postcss(plugins).process(css, { from, to }).then(result => { + * console.log(result.css) + * }) + * ``` + * + * @param plugins PostCSS plugins. + * @return Processor to process multiple CSS. + */ +declare function postcss( + plugins?: readonly postcss.AcceptedPlugin[] +): Processor +declare function postcss(...plugins: postcss.AcceptedPlugin[]): Processor + +export = postcss diff --git a/node_modules/postcss/lib/postcss.js b/node_modules/postcss/lib/postcss.js new file mode 100644 index 0000000..8f0773b --- /dev/null +++ b/node_modules/postcss/lib/postcss.js @@ -0,0 +1,101 @@ +'use strict' + +let AtRule = require('./at-rule') +let Comment = require('./comment') +let Container = require('./container') +let CssSyntaxError = require('./css-syntax-error') +let Declaration = require('./declaration') +let Document = require('./document') +let fromJSON = require('./fromJSON') +let Input = require('./input') +let LazyResult = require('./lazy-result') +let list = require('./list') +let Node = require('./node') +let parse = require('./parse') +let Processor = require('./processor') +let Result = require('./result.js') +let Root = require('./root') +let Rule = require('./rule') +let stringify = require('./stringify') +let Warning = require('./warning') + +function postcss(...plugins) { + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0] + } + return new Processor(plugins) +} + +postcss.plugin = function plugin(name, initializer) { + let warningPrinted = false + function creator(...args) { + // eslint-disable-next-line no-console + if (console && console.warn && !warningPrinted) { + warningPrinted = true + // eslint-disable-next-line no-console + console.warn( + name + + ': postcss.plugin was deprecated. Migration guide:\n' + + 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' + ) + if (process.env.LANG && process.env.LANG.startsWith('cn')) { + /* c8 ignore next 7 */ + // eslint-disable-next-line no-console + console.warn( + name + + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + + 'https://www.w3ctech.com/topic/2226' + ) + } + } + let transformer = initializer(...args) + transformer.postcssPlugin = name + transformer.postcssVersion = new Processor().version + return transformer + } + + let cache + Object.defineProperty(creator, 'postcss', { + get() { + if (!cache) cache = creator() + return cache + } + }) + + creator.process = function (css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts) + } + + return creator +} + +postcss.stringify = stringify +postcss.parse = parse +postcss.fromJSON = fromJSON +postcss.list = list + +postcss.comment = defaults => new Comment(defaults) +postcss.atRule = defaults => new AtRule(defaults) +postcss.decl = defaults => new Declaration(defaults) +postcss.rule = defaults => new Rule(defaults) +postcss.root = defaults => new Root(defaults) +postcss.document = defaults => new Document(defaults) + +postcss.CssSyntaxError = CssSyntaxError +postcss.Declaration = Declaration +postcss.Container = Container +postcss.Processor = Processor +postcss.Document = Document +postcss.Comment = Comment +postcss.Warning = Warning +postcss.AtRule = AtRule +postcss.Result = Result +postcss.Input = Input +postcss.Rule = Rule +postcss.Root = Root +postcss.Node = Node + +LazyResult.registerPostcss(postcss) + +module.exports = postcss +postcss.default = postcss diff --git a/node_modules/postcss/lib/postcss.mjs b/node_modules/postcss/lib/postcss.mjs new file mode 100644 index 0000000..3507598 --- /dev/null +++ b/node_modules/postcss/lib/postcss.mjs @@ -0,0 +1,30 @@ +import postcss from './postcss.js' + +export default postcss + +export const stringify = postcss.stringify +export const fromJSON = postcss.fromJSON +export const plugin = postcss.plugin +export const parse = postcss.parse +export const list = postcss.list + +export const document = postcss.document +export const comment = postcss.comment +export const atRule = postcss.atRule +export const rule = postcss.rule +export const decl = postcss.decl +export const root = postcss.root + +export const CssSyntaxError = postcss.CssSyntaxError +export const Declaration = postcss.Declaration +export const Container = postcss.Container +export const Processor = postcss.Processor +export const Document = postcss.Document +export const Comment = postcss.Comment +export const Warning = postcss.Warning +export const AtRule = postcss.AtRule +export const Result = postcss.Result +export const Input = postcss.Input +export const Rule = postcss.Rule +export const Root = postcss.Root +export const Node = postcss.Node diff --git a/node_modules/postcss/lib/previous-map.d.ts b/node_modules/postcss/lib/previous-map.d.ts new file mode 100644 index 0000000..23edeb5 --- /dev/null +++ b/node_modules/postcss/lib/previous-map.d.ts @@ -0,0 +1,81 @@ +import { SourceMapConsumer } from 'source-map-js' + +import { ProcessOptions } from './postcss.js' + +declare namespace PreviousMap { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { PreviousMap_ as default } +} + +/** + * Source map information from input CSS. + * For example, source map after Sass compiler. + * + * This class will automatically find source map in input CSS or in file system + * near input file (according `from` option). + * + * ```js + * const root = parse(css, { from: 'a.sass.css' }) + * root.input.map //=> PreviousMap + * ``` + */ +declare class PreviousMap_ { + /** + * `sourceMappingURL` content. + */ + annotation?: string + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + */ + file?: string + + /** + * Was source map inlined by data-uri to input CSS. + */ + inline: boolean + + /** + * Path to source map file. + */ + mapFile?: string + + /** + * The directory with source map file, if source map is in separated file. + */ + root?: string + + /** + * Source map file content. + */ + text?: string + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + /** + * Create a instance of `SourceMapGenerator` class + * from the `source-map` library to work with source map information. + * + * It is lazy method, so it will create object only on first call + * and then it will use cache. + * + * @return Object with source map information. + */ + consumer(): SourceMapConsumer + + /** + * Does source map contains `sourcesContent` with input source text. + * + * @return Is `sourcesContent` present. + */ + withContent(): boolean +} + +declare class PreviousMap extends PreviousMap_ {} + +export = PreviousMap diff --git a/node_modules/postcss/lib/previous-map.js b/node_modules/postcss/lib/previous-map.js new file mode 100644 index 0000000..b123dcd --- /dev/null +++ b/node_modules/postcss/lib/previous-map.js @@ -0,0 +1,144 @@ +'use strict' + +let { existsSync, readFileSync } = require('fs') +let { dirname, join } = require('path') +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') + +function fromBase64(str) { + if (Buffer) { + return Buffer.from(str, 'base64').toString() + } else { + /* c8 ignore next 2 */ + return window.atob(str) + } +} + +class PreviousMap { + constructor(css, opts) { + if (opts.map === false) return + this.loadAnnotation(css) + this.inline = this.startWith(this.annotation, 'data:') + + let prev = opts.map ? opts.map.prev : undefined + let text = this.loadMap(opts.from, prev) + if (!this.mapFile && opts.from) { + this.mapFile = opts.from + } + if (this.mapFile) this.root = dirname(this.mapFile) + if (text) this.text = text + } + + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text) + } + return this.consumerCache + } + + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/ + let baseUri = /^data:application\/json;base64,/ + let charsetUri = /^data:application\/json;charset=utf-?8,/ + let uri = /^data:application\/json,/ + + let uriMatch = text.match(charsetUri) || text.match(uri) + if (uriMatch) { + return decodeURIComponent(text.substr(uriMatch[0].length)) + } + + let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri) + if (baseUriMatch) { + return fromBase64(text.substr(baseUriMatch[0].length)) + } + + let encoding = text.match(/data:application\/json;([^,]+),/)[1] + throw new Error('Unsupported source map encoding ' + encoding) + } + + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() + } + + isMap(map) { + if (typeof map !== 'object') return false + return ( + typeof map.mappings === 'string' || + typeof map._mappings === 'string' || + Array.isArray(map.sections) + ) + } + + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/g) + if (!comments) return + + // sourceMappingURLs from comments, strings, etc. + let start = css.lastIndexOf(comments.pop()) + let end = css.indexOf('*/', start) + + if (start > -1 && end > -1) { + // Locate the last sourceMappingURL to avoid pickin + this.annotation = this.getAnnotationURL(css.substring(start, end)) + } + } + + loadFile(path) { + this.root = dirname(path) + if (existsSync(path)) { + this.mapFile = path + return readFileSync(path, 'utf-8').toString().trim() + } + } + + loadMap(file, prev) { + if (prev === false) return false + + if (prev) { + if (typeof prev === 'string') { + return prev + } else if (typeof prev === 'function') { + let prevPath = prev(file) + if (prevPath) { + let map = this.loadFile(prevPath) + if (!map) { + throw new Error( + 'Unable to load previous source map: ' + prevPath.toString() + ) + } + return map + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString() + } else if (prev instanceof SourceMapGenerator) { + return prev.toString() + } else if (this.isMap(prev)) { + return JSON.stringify(prev) + } else { + throw new Error( + 'Unsupported previous source map format: ' + prev.toString() + ) + } + } else if (this.inline) { + return this.decodeInline(this.annotation) + } else if (this.annotation) { + let map = this.annotation + if (file) map = join(dirname(file), map) + return this.loadFile(map) + } + } + + startWith(string, start) { + if (!string) return false + return string.substr(0, start.length) === start + } + + withContent() { + return !!( + this.consumer().sourcesContent && + this.consumer().sourcesContent.length > 0 + ) + } +} + +module.exports = PreviousMap +PreviousMap.default = PreviousMap diff --git a/node_modules/postcss/lib/processor.d.ts b/node_modules/postcss/lib/processor.d.ts new file mode 100644 index 0000000..aa2942c --- /dev/null +++ b/node_modules/postcss/lib/processor.d.ts @@ -0,0 +1,115 @@ +import Document from './document.js' +import LazyResult from './lazy-result.js' +import NoWorkResult from './no-work-result.js' +import { + AcceptedPlugin, + Plugin, + ProcessOptions, + TransformCallback, + Transformer +} from './postcss.js' +import Result from './result.js' +import Root from './root.js' + +declare namespace Processor { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Processor_ as default } +} + +/** + * Contains plugins to process CSS. Create one `Processor` instance, + * initialize its plugins, and then use that instance on numerous CSS files. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.process(css1).then(result => console.log(result.css)) + * processor.process(css2).then(result => console.log(result.css)) + * ``` + */ +declare class Processor_ { + /** + * Plugins added to this processor. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.plugins.length //=> 2 + * ``` + */ + plugins: (Plugin | TransformCallback | Transformer)[] + + /** + * Current PostCSS version. + * + * ```js + * if (result.processor.version.split('.')[0] !== '6') { + * throw new Error('This plugin works only with PostCSS 6') + * } + * ``` + */ + version: string + + /** + * @param plugins PostCSS plugins + */ + constructor(plugins?: readonly AcceptedPlugin[]) + + /** + * Parses source CSS and returns a `LazyResult` Promise proxy. + * Because some plugins can be asynchronous it doesn’t make + * any transformations. Transformations will be applied + * in the `LazyResult` methods. + * + * ```js + * processor.process(css, { from: 'a.css', to: 'a.out.css' }) + * .then(result => { + * console.log(result.css) + * }) + * ``` + * + * @param css String with input CSS or any object with a `toString()` method, + * like a Buffer. Optionally, send a `Result` instance + * and the processor will take the `Root` from it. + * @param opts Options. + * @return Promise proxy. + */ + process( + css: { toString(): string } | LazyResult | Result | Root | string + ): LazyResult | NoWorkResult + process<RootNode extends Document | Root = Root>( + css: { toString(): string } | LazyResult | Result | Root | string, + options: ProcessOptions<RootNode> + ): LazyResult<RootNode> + + /** + * Adds a plugin to be used as a CSS processor. + * + * PostCSS plugin can be in 4 formats: + * * A plugin in `Plugin` format. + * * A plugin creator function with `pluginCreator.postcss = true`. + * PostCSS will call this function without argument to get plugin. + * * A function. PostCSS will pass the function a {@link Root} + * as the first argument and current `Result` instance + * as the second. + * * Another `Processor` instance. PostCSS will copy plugins + * from that instance into this one. + * + * Plugins can also be added by passing them as arguments when creating + * a `postcss` instance (see [`postcss(plugins)`]). + * + * Asynchronous plugins should return a `Promise` instance. + * + * ```js + * const processor = postcss() + * .use(autoprefixer) + * .use(postcssNested) + * ``` + * + * @param plugin PostCSS plugin or `Processor` with plugins. + * @return Current processor to make methods chain. + */ + use(plugin: AcceptedPlugin): this +} + +declare class Processor extends Processor_ {} + +export = Processor diff --git a/node_modules/postcss/lib/processor.js b/node_modules/postcss/lib/processor.js new file mode 100644 index 0000000..8493687 --- /dev/null +++ b/node_modules/postcss/lib/processor.js @@ -0,0 +1,67 @@ +'use strict' + +let Document = require('./document') +let LazyResult = require('./lazy-result') +let NoWorkResult = require('./no-work-result') +let Root = require('./root') + +class Processor { + constructor(plugins = []) { + this.version = '8.5.6' + this.plugins = this.normalize(plugins) + } + + normalize(plugins) { + let normalized = [] + for (let i of plugins) { + if (i.postcss === true) { + i = i() + } else if (i.postcss) { + i = i.postcss + } + + if (typeof i === 'object' && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins) + } else if (typeof i === 'object' && i.postcssPlugin) { + normalized.push(i) + } else if (typeof i === 'function') { + normalized.push(i) + } else if (typeof i === 'object' && (i.parse || i.stringify)) { + if (process.env.NODE_ENV !== 'production') { + throw new Error( + 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + + 'one of the syntax/parser/stringifier options as outlined ' + + 'in your PostCSS runner documentation.' + ) + } + } else { + throw new Error(i + ' is not a PostCSS plugin') + } + } + return normalized + } + + process(css, opts = {}) { + if ( + !this.plugins.length && + !opts.parser && + !opts.stringifier && + !opts.syntax + ) { + return new NoWorkResult(this, css, opts) + } else { + return new LazyResult(this, css, opts) + } + } + + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])) + return this + } +} + +module.exports = Processor +Processor.default = Processor + +Root.registerProcessor(Processor) +Document.registerProcessor(Processor) diff --git a/node_modules/postcss/lib/result.d.ts b/node_modules/postcss/lib/result.d.ts new file mode 100644 index 0000000..3f52efb --- /dev/null +++ b/node_modules/postcss/lib/result.d.ts @@ -0,0 +1,205 @@ +import { + Document, + Node, + Plugin, + ProcessOptions, + Root, + SourceMap, + TransformCallback, + Warning, + WarningOptions +} from './postcss.js' +import Processor from './processor.js' + +declare namespace Result { + export interface Message { + [others: string]: any + + /** + * Source PostCSS plugin name. + */ + plugin?: string + + /** + * Message type. + */ + type: string + } + + export interface ResultOptions extends ProcessOptions { + /** + * The CSS node that was the source of the warning. + */ + node?: Node + + /** + * Name of plugin that created this warning. `Result#warn` will fill it + * automatically with `Plugin#postcssPlugin` value. + */ + plugin?: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Result_ as default } +} + +/** + * Provides the result of the PostCSS transformations. + * + * A Result instance is returned by `LazyResult#then` + * or `Root#toResult` methods. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }) + * ``` + * + * ```js + * const result2 = postcss.parse(css).toResult() + * ``` + */ +declare class Result_<RootNode = Document | Root> { + /** + * A CSS string representing of `Result#root`. + * + * ```js + * postcss.parse('a{}').toResult().css //=> "a{}" + * ``` + */ + css: string + + /** + * Last runned PostCSS plugin. + */ + lastPlugin: Plugin | TransformCallback + + /** + * An instance of `SourceMapGenerator` class from the `source-map` library, + * representing changes to the `Result#root` instance. + * + * ```js + * result.map.toJSON() //=> { version: 3, file: 'a.css', … } + * ``` + * + * ```js + * if (result.map) { + * fs.writeFileSync(result.opts.to + '.map', result.map.toString()) + * } + * ``` + */ + map: SourceMap + + /** + * Contains messages from plugins (e.g., warnings or custom messages). + * Each message should have type and plugin properties. + * + * ```js + * AtRule: { + * import: (atRule, { result }) { + * const importedFile = parseImport(atRule) + * result.messages.push({ + * type: 'dependency', + * plugin: 'postcss-import', + * file: importedFile, + * parent: result.opts.from + * }) + * } + * } + * ``` + */ + messages: Result.Message[] + + /** + * Options from the `Processor#process` or `Root#toResult` call + * that produced this Result instance.] + * + * ```js + * root.toResult(opts).opts === opts + * ``` + */ + opts: Result.ResultOptions + + /** + * The Processor instance used for this transformation. + * + * ```js + * for (const plugin of result.processor.plugins) { + * if (plugin.postcssPlugin === 'postcss-bad') { + * throw 'postcss-good is incompatible with postcss-bad' + * } + * }) + * ``` + */ + processor: Processor + + /** + * Root node after all transformations. + * + * ```js + * root.toResult().root === root + * ``` + */ + root: RootNode + + /** + * An alias for the `Result#css` property. + * Use it with syntaxes that generate non-CSS output. + * + * ```js + * result.css === result.content + * ``` + */ + get content(): string + + /** + * @param processor Processor used for this transformation. + * @param root Root node after all transformations. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, root: RootNode, opts: Result.ResultOptions) + + /** + * Returns for `Result#css` content. + * + * ```js + * result + '' === result.css + * ``` + * + * @return String representing of `Result#root`. + */ + toString(): string + + /** + * Creates an instance of `Warning` and adds it to `Result#messages`. + * + * ```js + * if (decl.important) { + * result.warn('Avoid !important', { node: decl, word: '!important' }) + * } + * ``` + * + * @param text Warning message. + * @param opts Warning options. + * @return Created warning. + */ + warn(message: string, options?: WarningOptions): Warning + + /** + * Returns warnings from plugins. Filters `Warning` instances + * from `Result#messages`. + * + * ```js + * result.warnings().forEach(warn => { + * console.warn(warn.toString()) + * }) + * ``` + * + * @return Warnings from plugins. + */ + warnings(): Warning[] +} + +declare class Result<RootNode = Document | Root> extends Result_<RootNode> {} + +export = Result diff --git a/node_modules/postcss/lib/result.js b/node_modules/postcss/lib/result.js new file mode 100644 index 0000000..c6af4e8 --- /dev/null +++ b/node_modules/postcss/lib/result.js @@ -0,0 +1,42 @@ +'use strict' + +let Warning = require('./warning') + +class Result { + get content() { + return this.css + } + + constructor(processor, root, opts) { + this.processor = processor + this.messages = [] + this.root = root + this.opts = opts + this.css = '' + this.map = undefined + } + + toString() { + return this.css + } + + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin + } + } + + let warning = new Warning(text, opts) + this.messages.push(warning) + + return warning + } + + warnings() { + return this.messages.filter(i => i.type === 'warning') + } +} + +module.exports = Result +Result.default = Result diff --git a/node_modules/postcss/lib/root.d.ts b/node_modules/postcss/lib/root.d.ts new file mode 100644 index 0000000..5c91139 --- /dev/null +++ b/node_modules/postcss/lib/root.d.ts @@ -0,0 +1,87 @@ +import Container, { ContainerProps } from './container.js' +import Document from './document.js' +import { ProcessOptions } from './postcss.js' +import Result from './result.js' + +declare namespace Root { + export interface RootRaws extends Record<string, any> { + /** + * The space symbols after the last child to the end of file. + */ + after?: string + + /** + * Non-CSS code after `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeAfter?: string + + /** + * Non-CSS code before `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeBefore?: string + + /** + * Is the last child has an (optional) semicolon. + */ + semicolon?: boolean + } + + export interface RootProps extends ContainerProps { + /** + * Information used to generate byte-to-byte equal node string + * as it was in the origin input. + * */ + raws?: RootRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Root_ as default } +} + +/** + * Represents a CSS file and contains all its parsed nodes. + * + * ```js + * const root = postcss.parse('a{color:black} b{z-index:2}') + * root.type //=> 'root' + * root.nodes.length //=> 2 + * ``` + */ +declare class Root_ extends Container { + nodes: NonNullable<Container['nodes']> + parent: Document | undefined + raws: Root.RootRaws + type: 'root' + + constructor(defaults?: Root.RootProps) + + assign(overrides: object | Root.RootProps): this + clone(overrides?: Partial<Root.RootProps>): this + cloneAfter(overrides?: Partial<Root.RootProps>): this + cloneBefore(overrides?: Partial<Root.RootProps>): this + + /** + * Returns a `Result` instance representing the root’s CSS. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * root1.append(root2) + * const result = root1.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param options Options. + * @return Result with current root’s CSS. + */ + toResult(options?: ProcessOptions): Result +} + +declare class Root extends Root_ {} + +export = Root diff --git a/node_modules/postcss/lib/root.js b/node_modules/postcss/lib/root.js new file mode 100644 index 0000000..ea574ed --- /dev/null +++ b/node_modules/postcss/lib/root.js @@ -0,0 +1,61 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Root extends Container { + constructor(defaults) { + super(defaults) + this.type = 'root' + if (!this.nodes) this.nodes = [] + } + + normalize(child, sample, type) { + let nodes = super.normalize(child) + + if (sample) { + if (type === 'prepend') { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before + } else { + delete sample.raws.before + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before + } + } + } + + return nodes + } + + removeChild(child, ignore) { + let index = this.index(child) + + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before + } + + return super.removeChild(child) + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + return lazy.stringify() + } +} + +Root.registerLazyResult = dependant => { + LazyResult = dependant +} + +Root.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Root +Root.default = Root + +Container.registerRoot(Root) diff --git a/node_modules/postcss/lib/rule.d.ts b/node_modules/postcss/lib/rule.d.ts new file mode 100644 index 0000000..9a951e7 --- /dev/null +++ b/node_modules/postcss/lib/rule.d.ts @@ -0,0 +1,126 @@ +import Container, { + ContainerProps, + ContainerWithChildren +} from './container.js' + +declare namespace Rule { + export interface RuleRaws extends Record<string, unknown> { + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the selector and `{` for rules. + */ + between?: string + + /** + * Contains the text of the semicolon after this rule. + */ + ownSemicolon?: string + + /** + * The rule’s selector with comments. + */ + selector?: { + raw: string + value: string + } + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + } + + export type RuleProps = { + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: RuleRaws + } & ( + | { + /** Selector or selectors of the rule. */ + selector: string + selectors?: never + } + | { + selector?: never + /** Selectors of the rule represented as an array of strings. */ + selectors: readonly string[] + } + ) & ContainerProps + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Rule_ as default } +} + +/** + * Represents a CSS rule: a selector followed by a declaration block. + * + * ```js + * Once (root, { Rule }) { + * let a = new Rule({ selector: 'a' }) + * a.append(…) + * root.append(a) + * } + * ``` + * + * ```js + * const root = postcss.parse('a{}') + * const rule = root.first + * rule.type //=> 'rule' + * rule.toString() //=> 'a{}' + * ``` + */ +declare class Rule_ extends Container { + nodes: NonNullable<Container['nodes']> + parent: ContainerWithChildren | undefined + raws: Rule.RuleRaws + type: 'rule' + /** + * The rule’s full selector represented as a string. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * rule.selector //=> 'a, b' + * ``` + */ + get selector(): string + + set selector(value: string) + /** + * An array containing the rule’s individual selectors. + * Groups of selectors are split at commas. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * + * rule.selector //=> 'a, b' + * rule.selectors //=> ['a', 'b'] + * + * rule.selectors = ['a', 'strong'] + * rule.selector //=> 'a, strong' + * ``` + */ + get selectors(): string[] + + set selectors(values: string[]) + + constructor(defaults?: Rule.RuleProps) + assign(overrides: object | Rule.RuleProps): this + clone(overrides?: Partial<Rule.RuleProps>): this + cloneAfter(overrides?: Partial<Rule.RuleProps>): this + cloneBefore(overrides?: Partial<Rule.RuleProps>): this +} + +declare class Rule extends Rule_ {} + +export = Rule diff --git a/node_modules/postcss/lib/rule.js b/node_modules/postcss/lib/rule.js new file mode 100644 index 0000000..3b9b7e9 --- /dev/null +++ b/node_modules/postcss/lib/rule.js @@ -0,0 +1,27 @@ +'use strict' + +let Container = require('./container') +let list = require('./list') + +class Rule extends Container { + get selectors() { + return list.comma(this.selector) + } + + set selectors(values) { + let match = this.selector ? this.selector.match(/,\s*/) : null + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') + this.selector = values.join(sep) + } + + constructor(defaults) { + super(defaults) + this.type = 'rule' + if (!this.nodes) this.nodes = [] + } +} + +module.exports = Rule +Rule.default = Rule + +Container.registerRule(Rule) diff --git a/node_modules/postcss/lib/stringifier.d.ts b/node_modules/postcss/lib/stringifier.d.ts new file mode 100644 index 0000000..b5a6f86 --- /dev/null +++ b/node_modules/postcss/lib/stringifier.d.ts @@ -0,0 +1,46 @@ +import { + AnyNode, + AtRule, + Builder, + Comment, + Container, + Declaration, + Document, + Root, + Rule +} from './postcss.js' + +declare namespace Stringifier { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Stringifier_ as default } +} + +declare class Stringifier_ { + builder: Builder + constructor(builder: Builder) + atrule(node: AtRule, semicolon?: boolean): void + beforeAfter(node: AnyNode, detect: 'after' | 'before'): string + block(node: AnyNode, start: string): void + body(node: Container): void + comment(node: Comment): void + decl(node: Declaration, semicolon?: boolean): void + document(node: Document): void + raw(node: AnyNode, own: null | string, detect?: string): boolean | string + rawBeforeClose(root: Root): string | undefined + rawBeforeComment(root: Root, node: Comment): string | undefined + rawBeforeDecl(root: Root, node: Declaration): string | undefined + rawBeforeOpen(root: Root): string | undefined + rawBeforeRule(root: Root): string | undefined + rawColon(root: Root): string | undefined + rawEmptyBody(root: Root): string | undefined + rawIndent(root: Root): string | undefined + rawSemicolon(root: Root): boolean | undefined + rawValue(node: AnyNode, prop: string): number | string + root(node: Root): void + rule(node: Rule): void + stringify(node: AnyNode, semicolon?: boolean): void +} + +declare class Stringifier extends Stringifier_ {} + +export = Stringifier diff --git a/node_modules/postcss/lib/stringifier.js b/node_modules/postcss/lib/stringifier.js new file mode 100644 index 0000000..e07ad12 --- /dev/null +++ b/node_modules/postcss/lib/stringifier.js @@ -0,0 +1,353 @@ +'use strict' + +const DEFAULT_RAW = { + after: '\n', + beforeClose: '\n', + beforeComment: '\n', + beforeDecl: '\n', + beforeOpen: ' ', + beforeRule: '\n', + colon: ': ', + commentLeft: ' ', + commentRight: ' ', + emptyBody: '', + indent: ' ', + semicolon: false +} + +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1) +} + +class Stringifier { + constructor(builder) { + this.builder = builder + } + + atrule(node, semicolon) { + let name = '@' + node.name + let params = node.params ? this.rawValue(node, 'params') : '' + + if (typeof node.raws.afterName !== 'undefined') { + name += node.raws.afterName + } else if (params) { + name += ' ' + } + + if (node.nodes) { + this.block(node, name + params) + } else { + let end = (node.raws.between || '') + (semicolon ? ';' : '') + this.builder(name + params + end, node) + } + } + + beforeAfter(node, detect) { + let value + if (node.type === 'decl') { + value = this.raw(node, null, 'beforeDecl') + } else if (node.type === 'comment') { + value = this.raw(node, null, 'beforeComment') + } else if (detect === 'before') { + value = this.raw(node, null, 'beforeRule') + } else { + value = this.raw(node, null, 'beforeClose') + } + + let buf = node.parent + let depth = 0 + while (buf && buf.type !== 'root') { + depth += 1 + buf = buf.parent + } + + if (value.includes('\n')) { + let indent = this.raw(node, null, 'indent') + if (indent.length) { + for (let step = 0; step < depth; step++) value += indent + } + } + + return value + } + + block(node, start) { + let between = this.raw(node, 'between', 'beforeOpen') + this.builder(start + between + '{', node, 'start') + + let after + if (node.nodes && node.nodes.length) { + this.body(node) + after = this.raw(node, 'after') + } else { + after = this.raw(node, 'after', 'emptyBody') + } + + if (after) this.builder(after) + this.builder('}', node, 'end') + } + + body(node) { + let last = node.nodes.length - 1 + while (last > 0) { + if (node.nodes[last].type !== 'comment') break + last -= 1 + } + + let semicolon = this.raw(node, 'semicolon') + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i] + let before = this.raw(child, 'before') + if (before) this.builder(before) + this.stringify(child, last !== i || semicolon) + } + } + + comment(node) { + let left = this.raw(node, 'left', 'commentLeft') + let right = this.raw(node, 'right', 'commentRight') + this.builder('/*' + left + node.text + right + '*/', node) + } + + decl(node, semicolon) { + let between = this.raw(node, 'between', 'colon') + let string = node.prop + between + this.rawValue(node, 'value') + + if (node.important) { + string += node.raws.important || ' !important' + } + + if (semicolon) string += ';' + this.builder(string, node) + } + + document(node) { + this.body(node) + } + + raw(node, own, detect) { + let value + if (!detect) detect = own + + // Already had + if (own) { + value = node.raws[own] + if (typeof value !== 'undefined') return value + } + + let parent = node.parent + + if (detect === 'before') { + // Hack for first rule in CSS + if (!parent || (parent.type === 'root' && parent.first === node)) { + return '' + } + + // `root` nodes in `document` should use only their own raws + if (parent && parent.type === 'document') { + return '' + } + } + + // Floating child without parent + if (!parent) return DEFAULT_RAW[detect] + + // Detect style by other nodes + let root = node.root() + if (!root.rawCache) root.rawCache = {} + if (typeof root.rawCache[detect] !== 'undefined') { + return root.rawCache[detect] + } + + if (detect === 'before' || detect === 'after') { + return this.beforeAfter(node, detect) + } else { + let method = 'raw' + capitalize(detect) + if (this[method]) { + value = this[method](root, node) + } else { + root.walk(i => { + value = i.raws[own] + if (typeof value !== 'undefined') return false + }) + } + } + + if (typeof value === 'undefined') value = DEFAULT_RAW[detect] + + root.rawCache[detect] = value + return value + } + + rawBeforeClose(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== 'undefined') { + value = i.raws.after + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawBeforeComment(root, node) { + let value + root.walkComments(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeDecl') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeDecl(root, node) { + let value + root.walkDecls(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeRule') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeOpen(root) { + let value + root.walk(i => { + if (i.type !== 'decl') { + value = i.raws.between + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawBeforeRule(root) { + let value + root.walk(i => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawColon(root) { + let value + root.walkDecls(i => { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, '') + return false + } + }) + return value + } + + rawEmptyBody(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawIndent(root) { + if (root.raws.indent) return root.raws.indent + let value + root.walk(i => { + let p = i.parent + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== 'undefined') { + let parts = i.raws.before.split('\n') + value = parts[parts.length - 1] + value = value.replace(/\S/g, '') + return false + } + } + }) + return value + } + + rawSemicolon(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length && i.last.type === 'decl') { + value = i.raws.semicolon + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawValue(node, prop) { + let value = node[prop] + let raw = node.raws[prop] + if (raw && raw.value === value) { + return raw.raw + } + + return value + } + + root(node) { + this.body(node) + if (node.raws.after) this.builder(node.raws.after) + } + + rule(node) { + this.block(node, this.rawValue(node, 'selector')) + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end') + } + } + + stringify(node, semicolon) { + /* c8 ignore start */ + if (!this[node.type]) { + throw new Error( + 'Unknown AST node type ' + + node.type + + '. ' + + 'Maybe you need to change PostCSS stringifier.' + ) + } + /* c8 ignore stop */ + this[node.type](node, semicolon) + } +} + +module.exports = Stringifier +Stringifier.default = Stringifier diff --git a/node_modules/postcss/lib/stringify.d.ts b/node_modules/postcss/lib/stringify.d.ts new file mode 100644 index 0000000..06ad0b4 --- /dev/null +++ b/node_modules/postcss/lib/stringify.d.ts @@ -0,0 +1,9 @@ +import { Stringifier } from './postcss.js' + +interface Stringify extends Stringifier { + default: Stringify +} + +declare const stringify: Stringify + +export = stringify diff --git a/node_modules/postcss/lib/stringify.js b/node_modules/postcss/lib/stringify.js new file mode 100644 index 0000000..77bd017 --- /dev/null +++ b/node_modules/postcss/lib/stringify.js @@ -0,0 +1,11 @@ +'use strict' + +let Stringifier = require('./stringifier') + +function stringify(node, builder) { + let str = new Stringifier(builder) + str.stringify(node) +} + +module.exports = stringify +stringify.default = stringify diff --git a/node_modules/postcss/lib/symbols.js b/node_modules/postcss/lib/symbols.js new file mode 100644 index 0000000..a142c26 --- /dev/null +++ b/node_modules/postcss/lib/symbols.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports.isClean = Symbol('isClean') + +module.exports.my = Symbol('my') diff --git a/node_modules/postcss/lib/terminal-highlight.js b/node_modules/postcss/lib/terminal-highlight.js new file mode 100644 index 0000000..6196c9d --- /dev/null +++ b/node_modules/postcss/lib/terminal-highlight.js @@ -0,0 +1,70 @@ +'use strict' + +let pico = require('picocolors') + +let tokenizer = require('./tokenize') + +let Input + +function registerInput(dependant) { + Input = dependant +} + +const HIGHLIGHT_THEME = { + ';': pico.yellow, + ':': pico.yellow, + '(': pico.cyan, + ')': pico.cyan, + '[': pico.yellow, + ']': pico.yellow, + '{': pico.yellow, + '}': pico.yellow, + 'at-word': pico.cyan, + 'brackets': pico.cyan, + 'call': pico.cyan, + 'class': pico.yellow, + 'comment': pico.gray, + 'hash': pico.magenta, + 'string': pico.green +} + +function getTokenType([type, value], processor) { + if (type === 'word') { + if (value[0] === '.') { + return 'class' + } + if (value[0] === '#') { + return 'hash' + } + } + + if (!processor.endOfFile()) { + let next = processor.nextToken() + processor.back(next) + if (next[0] === 'brackets' || next[0] === '(') return 'call' + } + + return type +} + +function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }) + let result = '' + while (!processor.endOfFile()) { + let token = processor.nextToken() + let color = HIGHLIGHT_THEME[getTokenType(token, processor)] + if (color) { + result += token[1] + .split(/\r?\n/) + .map(i => color(i)) + .join('\n') + } else { + result += token[1] + } + } + return result +} + +terminalHighlight.registerInput = registerInput + +module.exports = terminalHighlight diff --git a/node_modules/postcss/lib/tokenize.js b/node_modules/postcss/lib/tokenize.js new file mode 100644 index 0000000..1d41284 --- /dev/null +++ b/node_modules/postcss/lib/tokenize.js @@ -0,0 +1,266 @@ +'use strict' + +const SINGLE_QUOTE = "'".charCodeAt(0) +const DOUBLE_QUOTE = '"'.charCodeAt(0) +const BACKSLASH = '\\'.charCodeAt(0) +const SLASH = '/'.charCodeAt(0) +const NEWLINE = '\n'.charCodeAt(0) +const SPACE = ' '.charCodeAt(0) +const FEED = '\f'.charCodeAt(0) +const TAB = '\t'.charCodeAt(0) +const CR = '\r'.charCodeAt(0) +const OPEN_SQUARE = '['.charCodeAt(0) +const CLOSE_SQUARE = ']'.charCodeAt(0) +const OPEN_PARENTHESES = '('.charCodeAt(0) +const CLOSE_PARENTHESES = ')'.charCodeAt(0) +const OPEN_CURLY = '{'.charCodeAt(0) +const CLOSE_CURLY = '}'.charCodeAt(0) +const SEMICOLON = ';'.charCodeAt(0) +const ASTERISK = '*'.charCodeAt(0) +const COLON = ':'.charCodeAt(0) +const AT = '@'.charCodeAt(0) + +const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g +const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g +const RE_BAD_BRACKET = /.[\r\n"'(/\\]/ +const RE_HEX_ESCAPE = /[\da-f]/i + +module.exports = function tokenizer(input, options = {}) { + let css = input.css.valueOf() + let ignore = options.ignoreErrors + + let code, content, escape, next, quote + let currentToken, escaped, escapePos, n, prev + + let length = css.length + let pos = 0 + let buffer = [] + let returned = [] + + function position() { + return pos + } + + function unclosed(what) { + throw input.error('Unclosed ' + what, pos) + } + + function endOfFile() { + return returned.length === 0 && pos >= length + } + + function nextToken(opts) { + if (returned.length) return returned.pop() + if (pos >= length) return + + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false + + code = css.charCodeAt(pos) + + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos + do { + next += 1 + code = css.charCodeAt(next) + } while ( + code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED + ) + + currentToken = ['space', css.slice(pos, next)] + pos = next - 1 + break + } + + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code) + currentToken = [controlChar, controlChar, pos] + break + } + + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : '' + n = css.charCodeAt(pos + 1) + if ( + prev === 'url' && + n !== SINGLE_QUOTE && + n !== DOUBLE_QUOTE && + n !== SPACE && + n !== NEWLINE && + n !== TAB && + n !== FEED && + n !== CR + ) { + next = pos + do { + escaped = false + next = css.indexOf(')', next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + break + } else { + unclosed('bracket') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['brackets', css.slice(pos, next + 1), pos, next] + + pos = next + } else { + next = css.indexOf(')', pos + 1) + content = css.slice(pos, next + 1) + + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ['(', '(', pos] + } else { + currentToken = ['brackets', content, pos, next] + pos = next + } + } + + break + } + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"' + next = pos + do { + escaped = false + next = css.indexOf(quote, next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1 + break + } else { + unclosed('string') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['string', css.slice(pos, next + 1), pos, next] + pos = next + break + } + + case AT: { + RE_AT_END.lastIndex = pos + 1 + RE_AT_END.test(css) + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_AT_END.lastIndex - 2 + } + + currentToken = ['at-word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + case BACKSLASH: { + next = pos + escape = true + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1 + escape = !escape + } + code = css.charCodeAt(next + 1) + if ( + escape && + code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED + ) { + next += 1 + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1 + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1 + } + } + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf('*/', pos + 2) + 1 + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length + } else { + unclosed('comment') + } + } + + currentToken = ['comment', css.slice(pos, next + 1), pos, next] + pos = next + } else { + RE_WORD_END.lastIndex = pos + 1 + RE_WORD_END.test(css) + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_WORD_END.lastIndex - 2 + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + buffer.push(currentToken) + pos = next + } + + break + } + } + + pos++ + return currentToken + } + + function back(token) { + returned.push(token) + } + + return { + back, + endOfFile, + nextToken, + position + } +} diff --git a/node_modules/postcss/lib/warn-once.js b/node_modules/postcss/lib/warn-once.js new file mode 100644 index 0000000..316e1cf --- /dev/null +++ b/node_modules/postcss/lib/warn-once.js @@ -0,0 +1,13 @@ +/* eslint-disable no-console */ +'use strict' + +let printed = {} + +module.exports = function warnOnce(message) { + if (printed[message]) return + printed[message] = true + + if (typeof console !== 'undefined' && console.warn) { + console.warn(message) + } +} diff --git a/node_modules/postcss/lib/warning.d.ts b/node_modules/postcss/lib/warning.d.ts new file mode 100644 index 0000000..b25bba8 --- /dev/null +++ b/node_modules/postcss/lib/warning.d.ts @@ -0,0 +1,147 @@ +import { RangePosition } from './css-syntax-error.js' +import Node from './node.js' + +declare namespace Warning { + export interface WarningOptions { + /** + * End position, exclusive, in CSS node string that caused the warning. + */ + end?: RangePosition + + /** + * End index, exclusive, in CSS node string that caused the warning. + */ + endIndex?: number + + /** + * Start index, inclusive, in CSS node string that caused the warning. + */ + index?: number + + /** + * CSS node that caused the warning. + */ + node?: Node + + /** + * Name of the plugin that created this warning. `Result#warn` fills + * this property automatically. + */ + plugin?: string + + /** + * Start position, inclusive, in CSS node string that caused the warning. + */ + start?: RangePosition + + /** + * Word in CSS source that caused the warning. + */ + word?: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Warning_ as default } +} + +/** + * Represents a plugin’s warning. It can be created using `Node#warn`. + * + * ```js + * if (decl.important) { + * decl.warn(result, 'Avoid !important', { word: '!important' }) + * } + * ``` + */ +declare class Warning_ { + /** + * Column for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.column //=> 6 + * ``` + */ + column: number + + /** + * Column for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endColumn //=> 4 + * ``` + */ + endColumn?: number + + /** + * Line for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endLine //=> 6 + * ``` + */ + endLine?: number + + /** + * Line for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.line //=> 5 + * ``` + */ + line: number + + /** + * Contains the CSS node that caused the warning. + * + * ```js + * warning.node.toString() //=> 'color: white !important' + * ``` + */ + node: Node + + /** + * The name of the plugin that created this warning. + * When you call `Node#warn` it will fill this property automatically. + * + * ```js + * warning.plugin //=> 'postcss-important' + * ``` + */ + plugin: string + + /** + * The warning message. + * + * ```js + * warning.text //=> 'Try to avoid !important' + * ``` + */ + text: string + + /** + * Type to filter warnings from `Result#messages`. + * Always equal to `"warning"`. + */ + type: 'warning' + + /** + * @param text Warning message. + * @param opts Warning options. + */ + constructor(text: string, opts?: Warning.WarningOptions) + + /** + * Returns a warning position and message. + * + * ```js + * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important' + * ``` + * + * @return Warning position and message. + */ + toString(): string +} + +declare class Warning extends Warning_ {} + +export = Warning diff --git a/node_modules/postcss/lib/warning.js b/node_modules/postcss/lib/warning.js new file mode 100644 index 0000000..3a3d79c --- /dev/null +++ b/node_modules/postcss/lib/warning.js @@ -0,0 +1,37 @@ +'use strict' + +class Warning { + constructor(text, opts = {}) { + this.type = 'warning' + this.text = text + + if (opts.node && opts.node.source) { + let range = opts.node.rangeBy(opts) + this.line = range.start.line + this.column = range.start.column + this.endLine = range.end.line + this.endColumn = range.end.column + } + + for (let opt in opts) this[opt] = opts[opt] + } + + toString() { + if (this.node) { + return this.node.error(this.text, { + index: this.index, + plugin: this.plugin, + word: this.word + }).message + } + + if (this.plugin) { + return this.plugin + ': ' + this.text + } + + return this.text + } +} + +module.exports = Warning +Warning.default = Warning diff --git a/node_modules/postcss/package.json b/node_modules/postcss/package.json new file mode 100644 index 0000000..c69124b --- /dev/null +++ b/node_modules/postcss/package.json @@ -0,0 +1,88 @@ +{ + "name": "postcss", + "version": "8.5.6", + "description": "Tool for transforming styles with JS plugins", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "exports": { + ".": { + "import": "./lib/postcss.mjs", + "require": "./lib/postcss.js" + }, + "./lib/at-rule": "./lib/at-rule.js", + "./lib/comment": "./lib/comment.js", + "./lib/container": "./lib/container.js", + "./lib/css-syntax-error": "./lib/css-syntax-error.js", + "./lib/declaration": "./lib/declaration.js", + "./lib/fromJSON": "./lib/fromJSON.js", + "./lib/input": "./lib/input.js", + "./lib/lazy-result": "./lib/lazy-result.js", + "./lib/no-work-result": "./lib/no-work-result.js", + "./lib/list": "./lib/list.js", + "./lib/map-generator": "./lib/map-generator.js", + "./lib/node": "./lib/node.js", + "./lib/parse": "./lib/parse.js", + "./lib/parser": "./lib/parser.js", + "./lib/postcss": "./lib/postcss.js", + "./lib/previous-map": "./lib/previous-map.js", + "./lib/processor": "./lib/processor.js", + "./lib/result": "./lib/result.js", + "./lib/root": "./lib/root.js", + "./lib/rule": "./lib/rule.js", + "./lib/stringifier": "./lib/stringifier.js", + "./lib/stringify": "./lib/stringify.js", + "./lib/symbols": "./lib/symbols.js", + "./lib/terminal-highlight": "./lib/terminal-highlight.js", + "./lib/tokenize": "./lib/tokenize.js", + "./lib/warn-once": "./lib/warn-once.js", + "./lib/warning": "./lib/warning.js", + "./package.json": "./package.json" + }, + "main": "./lib/postcss.js", + "types": "./lib/postcss.d.ts", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik <andrey@sitnik.ru>", + "license": "MIT", + "homepage": "https://postcss.org/", + "repository": "postcss/postcss", + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "browser": { + "./lib/terminal-highlight": false, + "source-map-js": false, + "path": false, + "url": false, + "fs": false + } +} diff --git a/node_modules/source-map-js/LICENSE b/node_modules/source-map-js/LICENSE new file mode 100644 index 0000000..ed1b7cf --- /dev/null +++ b/node_modules/source-map-js/LICENSE @@ -0,0 +1,28 @@ + +Copyright (c) 2009-2011, Mozilla Foundation and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the names of the Mozilla Foundation nor the names of project + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/source-map-js/README.md b/node_modules/source-map-js/README.md new file mode 100644 index 0000000..614962d --- /dev/null +++ b/node_modules/source-map-js/README.md @@ -0,0 +1,765 @@ +# Source Map JS + +[![NPM](https://nodei.co/npm/source-map-js.png?downloads=true&downloadRank=true)](https://www.npmjs.com/package/source-map-js) + +Difference between original [source-map](https://github.com/mozilla/source-map): + +> TL,DR: it's fork of original source-map@0.6, but with perfomance optimizations. + +This journey starts from [source-map@0.7.0](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md#070). Some part of it was rewritten to Rust and WASM and API became async. + +It's still a major block for many libraries like PostCSS or Sass for example because they need to migrate the whole API to the async way. This is the reason why 0.6.1 has 2x more downloads than 0.7.3 while it's faster several times. + +![Downloads count](media/downloads.png) + +More important that WASM version has some optimizations in JS code too. This is why [community asked to create branch for 0.6 version](https://github.com/mozilla/source-map/issues/324) and port these optimizations but, sadly, the answer was «no». A bit later I discovered [the issue](https://github.com/mozilla/source-map/issues/370) created by [Ben Rothman (@benthemonkey)](https://github.com/benthemonkey) with no response at all. + +[Roman Dvornov (@lahmatiy)](https://github.com/lahmatiy) wrote a [serveral posts](https://t.me/gorshochekvarit/76) (russian, only, sorry) about source-map library in his own Telegram channel. He mentioned the article [«Maybe you don't need Rust and WASM to speed up your JS»](https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html) written by [Vyacheslav Egorov (@mraleph)](https://github.com/mraleph). This article contains optimizations and hacks that lead to almost the same performance compare to WASM implementation. + +I decided to fork the original source-map and port these optimizations from the article and several others PR from the original source-map. + +--------- + +This is a library to generate and consume the source map format +[described here][format]. + +[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit + +## Use with Node + + $ npm install source-map-js + +<!-- ## Use on the Web + + <script src="https://raw.githubusercontent.com/mozilla/source-map/master/dist/source-map.min.js" defer></script> --> + +-------------------------------------------------------------------------------- + +<!-- `npm run toc` to regenerate the Table of Contents --> + +<!-- START doctoc generated TOC please keep comment here to allow auto update --> +<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> +## Table of Contents + +- [Examples](#examples) + - [Consuming a source map](#consuming-a-source-map) + - [Generating a source map](#generating-a-source-map) + - [With SourceNode (high level API)](#with-sourcenode-high-level-api) + - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api) +- [API](#api) + - [SourceMapConsumer](#sourcemapconsumer) + - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap) + - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans) + - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition) + - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition) + - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition) + - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources) + - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing) + - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order) + - [SourceMapGenerator](#sourcemapgenerator) + - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap) + - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer) + - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping) + - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath) + - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring) + - [SourceNode](#sourcenode) + - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name) + - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath) + - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk) + - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk) + - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn) + - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn) + - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep) + - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement) + - [SourceNode.prototype.toString()](#sourcenodeprototypetostring) + - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap) + +<!-- END doctoc generated TOC please keep comment here to allow auto update --> + +## Examples + +### Consuming a source map + +```js +var rawSourceMap = { + version: 3, + file: 'min.js', + names: ['bar', 'baz', 'n'], + sources: ['one.js', 'two.js'], + sourceRoot: 'http://example.com/www/js/', + mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' +}; + +var smc = new SourceMapConsumer(rawSourceMap); + +console.log(smc.sources); +// [ 'http://example.com/www/js/one.js', +// 'http://example.com/www/js/two.js' ] + +console.log(smc.originalPositionFor({ + line: 2, + column: 28 +})); +// { source: 'http://example.com/www/js/two.js', +// line: 2, +// column: 10, +// name: 'n' } + +console.log(smc.generatedPositionFor({ + source: 'http://example.com/www/js/two.js', + line: 2, + column: 10 +})); +// { line: 2, column: 28 } + +smc.eachMapping(function (m) { + // ... +}); +``` + +### Generating a source map + +In depth guide: +[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/) + +#### With SourceNode (high level API) + +```js +function compile(ast) { + switch (ast.type) { + case 'BinaryExpression': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + [compile(ast.left), " + ", compile(ast.right)] + ); + case 'Literal': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + String(ast.value) + ); + // ... + default: + throw new Error("Bad AST"); + } +} + +var ast = parse("40 + 2", "add.js"); +console.log(compile(ast).toStringWithSourceMap({ + file: 'add.js' +})); +// { code: '40 + 2', +// map: [object SourceMapGenerator] } +``` + +#### With SourceMapGenerator (low level API) + +```js +var map = new SourceMapGenerator({ + file: "source-mapped.js" +}); + +map.addMapping({ + generated: { + line: 10, + column: 35 + }, + source: "foo.js", + original: { + line: 33, + column: 2 + }, + name: "christopher" +}); + +console.log(map.toString()); +// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}' +``` + +## API + +Get a reference to the module: + +```js +// Node.js +var sourceMap = require('source-map'); + +// Browser builds +var sourceMap = window.sourceMap; + +// Inside Firefox +const sourceMap = require("devtools/toolkit/sourcemap/source-map.js"); +``` + +### SourceMapConsumer + +A SourceMapConsumer instance represents a parsed source map which we can query +for information about the original file positions by giving it a file position +in the generated source. + +#### new SourceMapConsumer(rawSourceMap) + +The only parameter is the raw source map (either as a string which can be +`JSON.parse`'d, or an object). According to the spec, source maps have the +following attributes: + +* `version`: Which version of the source map spec this map is following. + +* `sources`: An array of URLs to the original source files. + +* `names`: An array of identifiers which can be referenced by individual + mappings. + +* `sourceRoot`: Optional. The URL root from which all sources are relative. + +* `sourcesContent`: Optional. An array of contents of the original source files. + +* `mappings`: A string of base64 VLQs which contain the actual mappings. + +* `file`: Optional. The generated filename this source map is associated with. + +```js +var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData); +``` + +#### SourceMapConsumer.prototype.computeColumnSpans() + +Compute the last column for each generated mapping. The last column is +inclusive. + +```js +// Before: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] + +consumer.computeColumnSpans(); + +// After: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1, +// lastColumn: 9 }, +// { line: 2, +// column: 10, +// lastColumn: 19 }, +// { line: 2, +// column: 20, +// lastColumn: Infinity } ] + +``` + +#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition) + +Returns the original source, line, and column information for the generated +source's line and column positions provided. The only argument is an object with +the following properties: + +* `line`: The line number in the generated source. Line numbers in + this library are 1-based (note that the underlying source map + specification uses 0-based line numbers -- this library handles the + translation). + +* `column`: The column number in the generated source. Column numbers + in this library are 0-based. + +* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or + `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest + element that is smaller than or greater than the one we are searching for, + respectively, if the exact element cannot be found. Defaults to + `SourceMapConsumer.GREATEST_LOWER_BOUND`. + +and an object is returned with the following properties: + +* `source`: The original source file, or null if this information is not + available. + +* `line`: The line number in the original source, or null if this information is + not available. The line number is 1-based. + +* `column`: The column number in the original source, or null if this + information is not available. The column number is 0-based. + +* `name`: The original identifier, or null if this information is not available. + +```js +consumer.originalPositionFor({ line: 2, column: 10 }) +// { source: 'foo.coffee', +// line: 2, +// column: 2, +// name: null } + +consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 }) +// { source: null, +// line: null, +// column: null, +// name: null } +``` + +#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition) + +Returns the generated line and column information for the original source, +line, and column positions provided. The only argument is an object with +the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: The column number in the original source. The column + number is 0-based. + +and an object is returned with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 }) +// { line: 1, +// column: 56 } +``` + +#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition) + +Returns all generated line and column information for the original source, line, +and column provided. If no column is provided, returns all mappings +corresponding to a either the line we are searching for or the next closest line +that has any mappings. Otherwise, returns all mappings corresponding to the +given line and either the column we are searching for or the next closest column +that has any offsets. + +The only argument is an object with the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: Optional. The column number in the original source. The + column number is 0-based. + +and an array of objects is returned, each with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] +``` + +#### SourceMapConsumer.prototype.hasContentsOfAllSources() + +Return true if we have the embedded source content for every source listed in +the source map, false otherwise. + +In other words, if this method returns `true`, then +`consumer.sourceContentFor(s)` will succeed for every source `s` in +`consumer.sources`. + +```js +// ... +if (consumer.hasContentsOfAllSources()) { + consumerReadyCallback(consumer); +} else { + fetchSources(consumer, consumerReadyCallback); +} +// ... +``` + +#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing]) + +Returns the original source content for the source provided. The only +argument is the URL of the original source file. + +If the source content for the given source is not found, then an error is +thrown. Optionally, pass `true` as the second param to have `null` returned +instead. + +```js +consumer.sources +// [ "my-cool-lib.clj" ] + +consumer.sourceContentFor("my-cool-lib.clj") +// "..." + +consumer.sourceContentFor("this is not in the source map"); +// Error: "this is not in the source map" is not in the source map + +consumer.sourceContentFor("this is not in the source map", true); +// null +``` + +#### SourceMapConsumer.prototype.eachMapping(callback, context, order) + +Iterate over each mapping between an original source/line/column and a +generated line/column in this source map. + +* `callback`: The function that is called with each mapping. Mappings have the + form `{ source, generatedLine, generatedColumn, originalLine, originalColumn, + name }` + +* `context`: Optional. If specified, this object will be the value of `this` + every time that `callback` is called. + +* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or + `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over + the mappings sorted by the generated file's line/column order or the + original's source/line/column order, respectively. Defaults to + `SourceMapConsumer.GENERATED_ORDER`. + +```js +consumer.eachMapping(function (m) { console.log(m); }) +// ... +// { source: 'illmatic.js', +// generatedLine: 1, +// generatedColumn: 0, +// originalLine: 1, +// originalColumn: 0, +// name: null } +// { source: 'illmatic.js', +// generatedLine: 2, +// generatedColumn: 0, +// originalLine: 2, +// originalColumn: 0, +// name: null } +// ... +``` +### SourceMapGenerator + +An instance of the SourceMapGenerator represents a source map which is being +built incrementally. + +#### new SourceMapGenerator([startOfSourceMap]) + +You may pass an object with the following properties: + +* `file`: The filename of the generated source that this source map is + associated with. + +* `sourceRoot`: A root for all relative URLs in this source map. + +* `skipValidation`: Optional. When `true`, disables validation of mappings as + they are added. This can improve performance but should be used with + discretion, as a last resort. Even then, one should avoid using this flag when + running tests, if possible. + +* `ignoreInvalidMapping`: Optional. When `true`, instead of throwing error on + invalid mapping, it will be ignored. + +```js +var generator = new sourceMap.SourceMapGenerator({ + file: "my-generated-javascript-file.js", + sourceRoot: "http://example.com/app/js/" +}); +``` + +#### SourceMapGenerator.fromSourceMap(sourceMapConsumer, sourceMapGeneratorOptions) + +Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance. + +* `sourceMapConsumer` The SourceMap. + +* `sourceMapGeneratorOptions` options that will be passed to the SourceMapGenerator constructor which used under the hood. + +```js +var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer, { + ignoreInvalidMapping: true, +}); +``` + +#### SourceMapGenerator.prototype.addMapping(mapping) + +Add a single mapping from original source line and column to the generated +source's line and column for this source map being created. The mapping object +should have the following properties: + +* `generated`: An object with the generated line and column positions. + +* `original`: An object with the original line and column positions. + +* `source`: The original source file (relative to the sourceRoot). + +* `name`: An optional original token name for this mapping. + +```js +generator.addMapping({ + source: "module-one.scm", + original: { line: 128, column: 0 }, + generated: { line: 3, column: 456 } +}) +``` + +#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for an original source file. + +* `sourceFile` the URL of the original source file. + +* `sourceContent` the content of the source file. + +```js +generator.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]]) + +Applies a SourceMap for a source file to the SourceMap. +Each mapping to the supplied source file is rewritten using the +supplied SourceMap. Note: The resolution for the resulting mappings +is the minimum of this map and the supplied map. + +* `sourceMapConsumer`: The SourceMap to be applied. + +* `sourceFile`: Optional. The filename of the source file. + If omitted, sourceMapConsumer.file will be used, if it exists. + Otherwise an error will be thrown. + +* `sourceMapPath`: Optional. The dirname of the path to the SourceMap + to be applied. If relative, it is relative to the SourceMap. + + This parameter is needed when the two SourceMaps aren't in the same + directory, and the SourceMap to be applied contains relative source + paths. If so, those relative source paths need to be rewritten + relative to the SourceMap. + + If omitted, it is assumed that both SourceMaps are in the same directory, + thus not needing any rewriting. (Supplying `'.'` has the same effect.) + +#### SourceMapGenerator.prototype.toString() + +Renders the source map being generated to a string. + +```js +generator.toString() +// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}' +``` + +### SourceNode + +SourceNodes provide a way to abstract over interpolating and/or concatenating +snippets of generated JavaScript source code, while maintaining the line and +column information associated between those snippets and the original source +code. This is useful as the final intermediate representation a compiler might +use before outputting the generated JS and source map. + +#### new SourceNode([line, column, source[, chunk[, name]]]) + +* `line`: The original line number associated with this source node, or null if + it isn't associated with an original line. The line number is 1-based. + +* `column`: The original column number associated with this source node, or null + if it isn't associated with an original column. The column number + is 0-based. + +* `source`: The original source's filename; null if no filename is provided. + +* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see + below. + +* `name`: Optional. The original identifier. + +```js +var node = new SourceNode(1, 2, "a.cpp", [ + new SourceNode(3, 4, "b.cpp", "extern int status;\n"), + new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"), + new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"), +]); +``` + +#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath]) + +Creates a SourceNode from generated code and a SourceMapConsumer. + +* `code`: The generated code + +* `sourceMapConsumer` The SourceMap for the generated code + +* `relativePath` The optional path that relative sources in `sourceMapConsumer` + should be relative to. + +```js +var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8")); +var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"), + consumer); +``` + +#### SourceNode.prototype.add(chunk) + +Add a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.add(" + "); +node.add(otherNode); +node.add([leftHandOperandNode, " + ", rightHandOperandNode]); +``` + +#### SourceNode.prototype.prepend(chunk) + +Prepend a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.prepend("/** Build Id: f783haef86324gf **/\n\n"); +``` + +#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for a source file. This will be added to the +`SourceMap` in the `sourcesContent` field. + +* `sourceFile`: The filename of the source file + +* `sourceContent`: The content of the source file + +```js +node.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceNode.prototype.walk(fn) + +Walk over the tree of JS snippets in this node and its children. The walking +function is called once for each snippet of JS and is passed that snippet and +the its original associated source's line/column location. + +* `fn`: The traversal function. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.walk(function (code, loc) { console.log("WALK:", code, loc); }) +// WALK: uno { source: 'b.js', line: 3, column: 4, name: null } +// WALK: dos { source: 'a.js', line: 1, column: 2, name: null } +// WALK: tres { source: 'a.js', line: 1, column: 2, name: null } +// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null } +``` + +#### SourceNode.prototype.walkSourceContents(fn) + +Walk over the tree of SourceNodes. The walking function is called for each +source file content and is passed the filename and source content. + +* `fn`: The traversal function. + +```js +var a = new SourceNode(1, 2, "a.js", "generated from a"); +a.setSourceContent("a.js", "original a"); +var b = new SourceNode(1, 2, "b.js", "generated from b"); +b.setSourceContent("b.js", "original b"); +var c = new SourceNode(1, 2, "c.js", "generated from c"); +c.setSourceContent("c.js", "original c"); + +var node = new SourceNode(null, null, null, [a, b, c]); +node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); }) +// WALK: a.js : original a +// WALK: b.js : original b +// WALK: c.js : original c +``` + +#### SourceNode.prototype.join(sep) + +Like `Array.prototype.join` except for SourceNodes. Inserts the separator +between each of this source node's children. + +* `sep`: The separator. + +```js +var lhs = new SourceNode(1, 2, "a.rs", "my_copy"); +var operand = new SourceNode(3, 4, "a.rs", "="); +var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()"); + +var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]); +var joinedNode = node.join(" "); +``` + +#### SourceNode.prototype.replaceRight(pattern, replacement) + +Call `String.prototype.replace` on the very right-most source snippet. Useful +for trimming white space from the end of a source node, etc. + +* `pattern`: The pattern to replace. + +* `replacement`: The thing to replace the pattern with. + +```js +// Trim trailing white space. +node.replaceRight(/\s*$/, ""); +``` + +#### SourceNode.prototype.toString() + +Return the string representation of this source node. Walks over the tree and +concatenates all the various snippets together to one string. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toString() +// 'unodostresquatro' +``` + +#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap]) + +Returns the string representation of this tree of source nodes, plus a +SourceMapGenerator which contains all the mappings between the generated and +original sources. + +The arguments are the same as those to `new SourceMapGenerator`. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toStringWithSourceMap({ file: "my-output-file.js" }) +// { code: 'unodostresquatro', +// map: [object SourceMapGenerator] } +``` diff --git a/node_modules/source-map-js/lib/array-set.js b/node_modules/source-map-js/lib/array-set.js new file mode 100644 index 0000000..fbd5c81 --- /dev/null +++ b/node_modules/source-map-js/lib/array-set.js @@ -0,0 +1,121 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; diff --git a/node_modules/source-map-js/lib/base64-vlq.js b/node_modules/source-map-js/lib/base64-vlq.js new file mode 100644 index 0000000..612b404 --- /dev/null +++ b/node_modules/source-map-js/lib/base64-vlq.js @@ -0,0 +1,140 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = require('./base64'); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; diff --git a/node_modules/source-map-js/lib/base64.js b/node_modules/source-map-js/lib/base64.js new file mode 100644 index 0000000..8aa86b3 --- /dev/null +++ b/node_modules/source-map-js/lib/base64.js @@ -0,0 +1,67 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; diff --git a/node_modules/source-map-js/lib/binary-search.js b/node_modules/source-map-js/lib/binary-search.js new file mode 100644 index 0000000..010ac94 --- /dev/null +++ b/node_modules/source-map-js/lib/binary-search.js @@ -0,0 +1,111 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; diff --git a/node_modules/source-map-js/lib/mapping-list.js b/node_modules/source-map-js/lib/mapping-list.js new file mode 100644 index 0000000..06d1274 --- /dev/null +++ b/node_modules/source-map-js/lib/mapping-list.js @@ -0,0 +1,79 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; diff --git a/node_modules/source-map-js/lib/quick-sort.js b/node_modules/source-map-js/lib/quick-sort.js new file mode 100644 index 0000000..23f9eda --- /dev/null +++ b/node_modules/source-map-js/lib/quick-sort.js @@ -0,0 +1,132 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +function SortTemplate(comparator) { + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + + return doQuickSort; +} + +function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + +let sortCache = new WeakMap(); +exports.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); +}; diff --git a/node_modules/source-map-js/lib/source-map-consumer.d.ts b/node_modules/source-map-js/lib/source-map-consumer.d.ts new file mode 100644 index 0000000..744bda7 --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-consumer.d.ts @@ -0,0 +1 @@ +export { SourceMapConsumer } from '..'; diff --git a/node_modules/source-map-js/lib/source-map-consumer.js b/node_modules/source-map-js/lib/source-map-consumer.js new file mode 100644 index 0000000..ee66114 --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-consumer.js @@ -0,0 +1,1188 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var binarySearch = require('./binary-search'); +var ArraySet = require('./array-set').ArraySet; +var base64VLQ = require('./base64-vlq'); +var quickSort = require('./quick-sort').quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + } + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + +const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; +function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } +} +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === '') { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + } + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/node_modules/source-map-js/lib/source-map-generator.d.ts b/node_modules/source-map-js/lib/source-map-generator.d.ts new file mode 100644 index 0000000..f59d70a --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-generator.d.ts @@ -0,0 +1 @@ +export { SourceMapGenerator } from '..'; diff --git a/node_modules/source-map-js/lib/source-map-generator.js b/node_modules/source-map-js/lib/source-map-generator.js new file mode 100644 index 0000000..bab04ff --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-generator.js @@ -0,0 +1,444 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = require('./base64-vlq'); +var util = require('./util'); +var ArraySet = require('./array-set').ArraySet; +var MappingList = require('./mapping-list').MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + })); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + var message = 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + var message = 'Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message) + } + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; diff --git a/node_modules/source-map-js/lib/source-node.d.ts b/node_modules/source-map-js/lib/source-node.d.ts new file mode 100644 index 0000000..4df6a1a --- /dev/null +++ b/node_modules/source-map-js/lib/source-node.d.ts @@ -0,0 +1 @@ +export { SourceNode } from '..'; diff --git a/node_modules/source-map-js/lib/source-node.js b/node_modules/source-map-js/lib/source-node.js new file mode 100644 index 0000000..8bcdbe3 --- /dev/null +++ b/node_modules/source-map-js/lib/source-node.js @@ -0,0 +1,413 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; +var util = require('./util'); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; diff --git a/node_modules/source-map-js/lib/util.js b/node_modules/source-map-js/lib/util.js new file mode 100644 index 0000000..430e2d0 --- /dev/null +++ b/node_modules/source-map-js/lib/util.js @@ -0,0 +1,594 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +var MAX_CACHED_INPUTS = 32; + +/** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ +function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; +} + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +}); +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; diff --git a/node_modules/source-map-js/package.json b/node_modules/source-map-js/package.json new file mode 100644 index 0000000..f58dbeb --- /dev/null +++ b/node_modules/source-map-js/package.json @@ -0,0 +1,71 @@ +{ + "name": "source-map-js", + "description": "Generates and consumes source maps", + "version": "1.2.1", + "homepage": "https://github.com/7rulnik/source-map-js", + "author": "Valentin 7rulnik Semirulnik <v7rulnik@gmail.com>", + "contributors": [ + "Nick Fitzgerald <nfitzgerald@mozilla.com>", + "Tobias Koppers <tobias.koppers@googlemail.com>", + "Duncan Beevers <duncan@dweebd.com>", + "Stephen Crane <scrane@mozilla.com>", + "Ryan Seddon <seddon.ryan@gmail.com>", + "Miles Elam <miles.elam@deem.com>", + "Mihai Bazon <mihai.bazon@gmail.com>", + "Michael Ficarra <github.public.email@michael.ficarra.me>", + "Todd Wolfson <todd@twolfson.com>", + "Alexander Solovyov <alexander@solovyov.net>", + "Felix Gnass <fgnass@gmail.com>", + "Conrad Irwin <conrad.irwin@gmail.com>", + "usrbincc <usrbincc@yahoo.com>", + "David Glasser <glasser@davidglasser.net>", + "Chase Douglas <chase@newrelic.com>", + "Evan Wallace <evan.exe@gmail.com>", + "Heather Arthur <fayearthur@gmail.com>", + "Hugh Kennedy <hughskennedy@gmail.com>", + "David Glasser <glasser@davidglasser.net>", + "Simon Lydell <simon.lydell@gmail.com>", + "Jmeas Smith <jellyes2@gmail.com>", + "Michael Z Goddard <mzgoddard@gmail.com>", + "azu <azu@users.noreply.github.com>", + "John Gozde <john@gozde.ca>", + "Adam Kirkton <akirkton@truefitinnovation.com>", + "Chris Montgomery <christopher.montgomery@dowjones.com>", + "J. Ryan Stinnett <jryans@gmail.com>", + "Jack Herrington <jherrington@walmartlabs.com>", + "Chris Truter <jeffpalentine@gmail.com>", + "Daniel Espeset <daniel@danielespeset.com>", + "Jamie Wong <jamie.lf.wong@gmail.com>", + "Eddy Bruël <ejpbruel@mozilla.com>", + "Hawken Rives <hawkrives@gmail.com>", + "Gilad Peleg <giladp007@gmail.com>", + "djchie <djchie.dev@gmail.com>", + "Gary Ye <garysye@gmail.com>", + "Nicolas Lalevée <nicolas.lalevee@hibnet.org>" + ], + "repository": "7rulnik/source-map-js", + "main": "./source-map.js", + "files": [ + "source-map.js", + "source-map.d.ts", + "lib/" + ], + "engines": { + "node": ">=0.10.0" + }, + "license": "BSD-3-Clause", + "scripts": { + "test": "npm run build && node test/run-tests.js", + "build": "webpack --color", + "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" + }, + "devDependencies": { + "clean-publish": "^3.1.0", + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "clean-publish": { + "cleanDocs": true + }, + "typings": "source-map.d.ts" +} diff --git a/node_modules/source-map-js/source-map.d.ts b/node_modules/source-map-js/source-map.d.ts new file mode 100644 index 0000000..ec8892f --- /dev/null +++ b/node_modules/source-map-js/source-map.d.ts @@ -0,0 +1,104 @@ +export interface StartOfSourceMap { + file?: string; + sourceRoot?: string; +} + +export interface RawSourceMap extends StartOfSourceMap { + version: string; + sources: string[]; + names: string[]; + sourcesContent?: string[]; + mappings: string; +} + +export interface Position { + line: number; + column: number; +} + +export interface LineRange extends Position { + lastColumn: number; +} + +export interface FindPosition extends Position { + // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND + bias?: number; +} + +export interface SourceFindPosition extends FindPosition { + source: string; +} + +export interface MappedPosition extends Position { + source: string; + name?: string; +} + +export interface MappingItem { + source: string | null; + generatedLine: number; + generatedColumn: number; + originalLine: number | null; + originalColumn: number | null; + name: string | null; +} + +export class SourceMapConsumer { + static GENERATED_ORDER: number; + static ORIGINAL_ORDER: number; + + static GREATEST_LOWER_BOUND: number; + static LEAST_UPPER_BOUND: number; + + constructor(rawSourceMap: RawSourceMap); + readonly file: string | undefined | null; + readonly sourceRoot: string | undefined | null; + readonly sourcesContent: readonly string[] | null | undefined; + readonly sources: readonly string[] + + computeColumnSpans(): void; + originalPositionFor(generatedPosition: FindPosition): MappedPosition; + generatedPositionFor(originalPosition: SourceFindPosition): LineRange; + allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; + hasContentsOfAllSources(): boolean; + sourceContentFor(source: string, returnNullOnMissing?: boolean): string | null; + eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; +} + +export interface Mapping { + generated: Position; + original?: Position | null; + source?: string | null; + name?: string | null; +} + +export class SourceMapGenerator { + constructor(startOfSourceMap?: StartOfSourceMap); + static fromSourceMap(sourceMapConsumer: SourceMapConsumer, startOfSourceMap?: StartOfSourceMap): SourceMapGenerator; + addMapping(mapping: Mapping): void; + setSourceContent(sourceFile: string, sourceContent: string | null | undefined): void; + applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; + toString(): string; + toJSON(): RawSourceMap; +} + +export interface CodeWithSourceMap { + code: string; + map: SourceMapGenerator; +} + +export class SourceNode { + constructor(); + constructor(line: number, column: number, source: string); + constructor(line: number, column: number, source: string, chunk?: string, name?: string); + static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; + add(chunk: string): void; + prepend(chunk: string): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + walk(fn: (chunk: string, mapping: MappedPosition) => void): void; + walkSourceContents(fn: (file: string, content: string) => void): void; + join(sep: string): SourceNode; + replaceRight(pattern: string, replacement: string): SourceNode; + toString(): string; + toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; +} diff --git a/node_modules/source-map-js/source-map.js b/node_modules/source-map-js/source-map.js new file mode 100644 index 0000000..bc88fe8 --- /dev/null +++ b/node_modules/source-map-js/source-map.js @@ -0,0 +1,8 @@ +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; +exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; +exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/node_modules/vue/LICENSE b/node_modules/vue/LICENSE new file mode 100644 index 0000000..15f1f7e --- /dev/null +++ b/node_modules/vue/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +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. diff --git a/node_modules/vue/README.md b/node_modules/vue/README.md new file mode 100644 index 0000000..30e08cf --- /dev/null +++ b/node_modules/vue/README.md @@ -0,0 +1,58 @@ +# vue + +## Which dist file to use? + +### From CDN or without a Bundler + +- **`vue(.runtime).global(.prod).js`**: + - For direct use via `<script src="...">` in the browser. Exposes the `Vue` global. + - Note that global builds are not [UMD](https://github.com/umdjs/umd) builds. They are built as [IIFEs](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) and is only meant for direct use via `<script src="...">`. + - In-browser template compilation: + - **`vue.global.js`** is the "full" build that includes both the compiler and the runtime so it supports compiling templates on the fly. + - **`vue.runtime.global.js`** contains only the runtime and requires templates to be pre-compiled during a build step. + - Inlines all Vue core internal packages - i.e. it's a single file with no dependencies on other files. This means you **must** import everything from this file and this file only to ensure you are getting the same instance of code. + - Contains hard-coded prod/dev branches, and the prod build is pre-minified. Use the `*.prod.js` files for production. + +- **`vue(.runtime).esm-browser(.prod).js`**: + - For usage via native ES modules imports (in browser via `<script type="module">`). + - Shares the same runtime compilation, dependency inlining and hard-coded prod/dev behavior with the global build. + +### With a Bundler + +- **`vue(.runtime).esm-bundler.js`**: + - For use with bundlers like `webpack`, `rollup` and `parcel`. + - Leaves prod/dev branches with `process.env.NODE_ENV` guards (must be replaced by bundler) + - Does not ship minified builds (to be done together with the rest of the code after bundling) + - Imports dependencies (e.g. `@vue/runtime-core`, `@vue/compiler-core`) + - Imported dependencies are also `esm-bundler` builds and will in turn import their dependencies (e.g. `@vue/runtime-core` imports `@vue/reactivity`) + - This means you **can** install/import these deps individually without ending up with different instances of these dependencies, but you must make sure they all resolve to the same version. + - In-browser template compilation: + - **`vue.runtime.esm-bundler.js` (default)** is runtime only, and requires all templates to be pre-compiled. This is the default entry for bundlers (via `module` field in `package.json`) because when using a bundler templates are typically pre-compiled (e.g. in `*.vue` files). + - **`vue.esm-bundler.js`**: includes the runtime compiler. Use this if you are using a bundler but still want runtime template compilation (e.g. in-DOM templates or templates via inline JavaScript strings). You will need to configure your bundler to alias `vue` to this file. + +#### Bundler Build Feature Flags + +[Detailed Reference on vuejs.org](https://vuejs.org/api/compile-time-flags.html) + +`esm-bundler` builds of Vue expose global feature flags that can be overwritten at compile time: + +- `__VUE_OPTIONS_API__` + - Default: `true` + - Enable / disable Options API support + +- `__VUE_PROD_DEVTOOLS__` + - Default: `false` + - Enable / disable devtools support in production + +- `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` + - Default: `false` + - Enable / disable detailed warnings for hydration mismatches in production + +The build will work without configuring these flags, however it is **strongly recommended** to properly configure them in order to get proper tree-shaking in the final bundle. + +### For Server-Side Rendering + +- **`vue.cjs(.prod).js`**: + - For use in Node.js server-side rendering via `require()`. + - If you bundle your app with webpack with `target: 'node'` and properly externalize `vue`, this is the build that will be loaded. + - The dev/prod files are pre-built, but the appropriate file is automatically required based on `process.env.NODE_ENV`. diff --git a/node_modules/vue/compiler-sfc/index.browser.js b/node_modules/vue/compiler-sfc/index.browser.js new file mode 100644 index 0000000..774f9da --- /dev/null +++ b/node_modules/vue/compiler-sfc/index.browser.js @@ -0,0 +1 @@ +module.exports = require('@vue/compiler-sfc') diff --git a/node_modules/vue/compiler-sfc/index.browser.mjs b/node_modules/vue/compiler-sfc/index.browser.mjs new file mode 100644 index 0000000..3c30abc --- /dev/null +++ b/node_modules/vue/compiler-sfc/index.browser.mjs @@ -0,0 +1 @@ +export * from '@vue/compiler-sfc' diff --git a/node_modules/vue/compiler-sfc/index.d.mts b/node_modules/vue/compiler-sfc/index.d.mts new file mode 100644 index 0000000..3c30abc --- /dev/null +++ b/node_modules/vue/compiler-sfc/index.d.mts @@ -0,0 +1 @@ +export * from '@vue/compiler-sfc' diff --git a/node_modules/vue/compiler-sfc/index.d.ts b/node_modules/vue/compiler-sfc/index.d.ts new file mode 100644 index 0000000..3c30abc --- /dev/null +++ b/node_modules/vue/compiler-sfc/index.d.ts @@ -0,0 +1 @@ +export * from '@vue/compiler-sfc' diff --git a/node_modules/vue/compiler-sfc/index.js b/node_modules/vue/compiler-sfc/index.js new file mode 100644 index 0000000..2b85ad1 --- /dev/null +++ b/node_modules/vue/compiler-sfc/index.js @@ -0,0 +1,3 @@ +module.exports = require('@vue/compiler-sfc') + +require('./register-ts.js') diff --git a/node_modules/vue/compiler-sfc/index.mjs b/node_modules/vue/compiler-sfc/index.mjs new file mode 100644 index 0000000..ae5d6e8 --- /dev/null +++ b/node_modules/vue/compiler-sfc/index.mjs @@ -0,0 +1,3 @@ +export * from '@vue/compiler-sfc' + +import './register-ts.js' diff --git a/node_modules/vue/compiler-sfc/package.json b/node_modules/vue/compiler-sfc/package.json new file mode 100644 index 0000000..4cf44a4 --- /dev/null +++ b/node_modules/vue/compiler-sfc/package.json @@ -0,0 +1,4 @@ +{ + "main": "index.js", + "module": "index.mjs" +} diff --git a/node_modules/vue/compiler-sfc/register-ts.js b/node_modules/vue/compiler-sfc/register-ts.js new file mode 100644 index 0000000..36de2a3 --- /dev/null +++ b/node_modules/vue/compiler-sfc/register-ts.js @@ -0,0 +1,3 @@ +if (typeof require !== 'undefined') { + require('@vue/compiler-sfc').registerTS(() => require('typescript')) +} diff --git a/node_modules/vue/dist/vue.cjs.js b/node_modules/vue/dist/vue.cjs.js new file mode 100644 index 0000000..df2d59f --- /dev/null +++ b/node_modules/vue/dist/vue.cjs.js @@ -0,0 +1,80 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var runtimeDom = require('@vue/runtime-dom'); +var shared = require('@vue/shared'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom); + +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!shared.isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + runtimeDom.warn(`invalid template option: `, template); + return shared.NOOP; + } + } + const key = shared.genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + runtimeDom.warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = shared.extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compilerDom.compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && shared.generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + runtimeDom.warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function("Vue", code)(runtimeDom__namespace); + render._rc = true; + return compileCache[key] = render; +} +runtimeDom.registerRuntimeCompiler(compileToFunction); + +exports.compile = compileToFunction; +Object.keys(runtimeDom).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k]; +}); diff --git a/node_modules/vue/dist/vue.cjs.prod.js b/node_modules/vue/dist/vue.cjs.prod.js new file mode 100644 index 0000000..76d981e --- /dev/null +++ b/node_modules/vue/dist/vue.cjs.prod.js @@ -0,0 +1,66 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var runtimeDom = require('@vue/runtime-dom'); +var shared = require('@vue/shared'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom); + +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!shared.isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + return shared.NOOP; + } + } + const key = shared.genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + template = el ? el.innerHTML : ``; + } + const opts = shared.extend( + { + hoistStatic: true, + onError: void 0, + onWarn: shared.NOOP + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compilerDom.compile(template, opts); + const render = new Function("Vue", code)(runtimeDom__namespace); + render._rc = true; + return compileCache[key] = render; +} +runtimeDom.registerRuntimeCompiler(compileToFunction); + +exports.compile = compileToFunction; +Object.keys(runtimeDom).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k]; +}); diff --git a/node_modules/vue/dist/vue.d.mts b/node_modules/vue/dist/vue.d.mts new file mode 100644 index 0000000..991d0a3 --- /dev/null +++ b/node_modules/vue/dist/vue.d.mts @@ -0,0 +1,7 @@ +import { CompilerOptions } from '@vue/compiler-dom'; +import { RenderFunction } from '@vue/runtime-dom'; +export * from '@vue/runtime-dom'; + +export declare function compileToFunction(template: string | HTMLElement, options?: CompilerOptions): RenderFunction; + +export { compileToFunction as compile }; diff --git a/node_modules/vue/dist/vue.d.ts b/node_modules/vue/dist/vue.d.ts new file mode 100644 index 0000000..991d0a3 --- /dev/null +++ b/node_modules/vue/dist/vue.d.ts @@ -0,0 +1,7 @@ +import { CompilerOptions } from '@vue/compiler-dom'; +import { RenderFunction } from '@vue/runtime-dom'; +export * from '@vue/runtime-dom'; + +export declare function compileToFunction(template: string | HTMLElement, options?: CompilerOptions): RenderFunction; + +export { compileToFunction as compile }; diff --git a/node_modules/vue/dist/vue.esm-browser.js b/node_modules/vue/dist/vue.esm-browser.js new file mode 100644 index 0000000..571fc1c --- /dev/null +++ b/node_modules/vue/dist/vue.esm-browser.js @@ -0,0 +1,18586 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const EMPTY_ARR = Object.freeze([]) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); +} + +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` +}; + +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); +} + +function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} + +let activeSub; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; + +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +const stack$1 = []; +function pushWarningContext(vnode) { + stack$1.push(vnode); +} +function popWarningContext() { + stack$1.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack$1[stack$1.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; +} + +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Map(); +{ + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} + +let devtools$1; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} + +function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } +} +function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); +} +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = NOOP; + watchStopHandle.resume = NOOP; + watchStopHandle.pause = NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; +} + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; +} +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; +} +function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); +} +function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; +} +function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; +} +function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; +} +function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +{ + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; +} +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } +}); +function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; +} +function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } +} +function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); +} + +const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` +); +function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; +} +function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; +} +function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } +} +function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } +} +function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; +} +function defineModel() { + { + warnRuntimeUsage("defineModel"); + } +} +function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; +} +function useSlots() { + return getContext("useSlots").slots; +} +function useAttrs() { + return getContext("useAttrs").attrs; +} +function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; +} +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } +} +function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray$1, + created: mergeAsArray$1, + beforeMount: mergeAsArray$1, + mounted: mergeAsArray$1, + beforeUpdate: mergeAsArray$1, + updated: mergeAsArray$1, + beforeDestroy: mergeAsArray$1, + beforeUnmount: mergeAsArray$1, + destroyed: mergeAsArray$1, + unmounted: mergeAsArray$1, + activated: mergeAsArray$1, + deactivated: mergeAsArray$1, + errorCaptured: mergeAsArray$1, + serverPrefetch: mergeAsArray$1, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray$1(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray$1(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} + +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; +} +function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; +} +function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } +} +function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } +} +const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" +); +function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +let supported; +let perf; +function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; +} + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +let hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; +} +let vnodeArgsTransformer; +function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; +} +const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); +}; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = createVNodeWithArgsTransform ; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); +function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } +} +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); +} +let compile$1; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile$1 = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile$1; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile$1 && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile$1(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile$1 && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } +} ; +function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); +} +function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; +}; + +function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } +} + +function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.28"; +const warn = warn$1 ; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = devtools$1 ; +const setDevtoolsHook = setDevtoolsHook$1 ; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION$1 = "transition"; +const ANIMATION = "animation"; +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION$1) { + if (transitionTimeout > 0) { + type = TRANSITION$1; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null; + propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION$1 && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION$1}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); +const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); +function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); +} +function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } +} +function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } +} + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const semicolonRE = /[^\\];\s*$/; +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; +} +function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}); +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } +} +function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; +} +function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssModule must be called inside setup()`); + return EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + warn(`Current instance does not have CSS modules injected.`); + return EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + warn(`Current instance does not have CSS module named "${name}".`); + return EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = /* @__PURE__ */ Symbol("_assign"); +function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; +} +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (isArray(value)) { + if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); +}; + +const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = ((...args) => { + ensureRenderer().render(...args); +}); +const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); +}); +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); +} +function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } +} +function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +var runtimeDom = /*#__PURE__*/Object.freeze({ + __proto__: null, + BaseTransition: BaseTransition, + BaseTransitionPropsValidators: BaseTransitionPropsValidators, + Comment: Comment, + DeprecationTypes: DeprecationTypes, + EffectScope: EffectScope, + ErrorCodes: ErrorCodes, + ErrorTypeStrings: ErrorTypeStrings, + Fragment: Fragment, + KeepAlive: KeepAlive, + ReactiveEffect: ReactiveEffect, + Static: Static, + Suspense: Suspense, + Teleport: Teleport, + Text: Text, + TrackOpTypes: TrackOpTypes, + Transition: Transition, + TransitionGroup: TransitionGroup, + TriggerOpTypes: TriggerOpTypes, + VueElement: VueElement, + assertNumber: assertNumber, + callWithAsyncErrorHandling: callWithAsyncErrorHandling, + callWithErrorHandling: callWithErrorHandling, + camelize: camelize, + capitalize: capitalize, + cloneVNode: cloneVNode, + compatUtils: compatUtils, + computed: computed, + createApp: createApp, + createBlock: createBlock, + createCommentVNode: createCommentVNode, + createElementBlock: createElementBlock, + createElementVNode: createBaseVNode, + createHydrationRenderer: createHydrationRenderer, + createPropsRestProxy: createPropsRestProxy, + createRenderer: createRenderer, + createSSRApp: createSSRApp, + createSlots: createSlots, + createStaticVNode: createStaticVNode, + createTextVNode: createTextVNode, + createVNode: createVNode, + customRef: customRef, + defineAsyncComponent: defineAsyncComponent, + defineComponent: defineComponent, + defineCustomElement: defineCustomElement, + defineEmits: defineEmits, + defineExpose: defineExpose, + defineModel: defineModel, + defineOptions: defineOptions, + defineProps: defineProps, + defineSSRCustomElement: defineSSRCustomElement, + defineSlots: defineSlots, + devtools: devtools, + effect: effect, + effectScope: effectScope, + getCurrentInstance: getCurrentInstance, + getCurrentScope: getCurrentScope, + getCurrentWatcher: getCurrentWatcher, + getTransitionRawChildren: getTransitionRawChildren, + guardReactiveProps: guardReactiveProps, + h: h, + handleError: handleError, + hasInjectionContext: hasInjectionContext, + hydrate: hydrate, + hydrateOnIdle: hydrateOnIdle, + hydrateOnInteraction: hydrateOnInteraction, + hydrateOnMediaQuery: hydrateOnMediaQuery, + hydrateOnVisible: hydrateOnVisible, + initCustomFormatter: initCustomFormatter, + initDirectivesForSSR: initDirectivesForSSR, + inject: inject, + isMemoSame: isMemoSame, + isProxy: isProxy, + isReactive: isReactive, + isReadonly: isReadonly, + isRef: isRef, + isRuntimeOnly: isRuntimeOnly, + isShallow: isShallow, + isVNode: isVNode, + markRaw: markRaw, + mergeDefaults: mergeDefaults, + mergeModels: mergeModels, + mergeProps: mergeProps, + nextTick: nextTick, + nodeOps: nodeOps, + normalizeClass: normalizeClass, + normalizeProps: normalizeProps, + normalizeStyle: normalizeStyle, + onActivated: onActivated, + onBeforeMount: onBeforeMount, + onBeforeUnmount: onBeforeUnmount, + onBeforeUpdate: onBeforeUpdate, + onDeactivated: onDeactivated, + onErrorCaptured: onErrorCaptured, + onMounted: onMounted, + onRenderTracked: onRenderTracked, + onRenderTriggered: onRenderTriggered, + onScopeDispose: onScopeDispose, + onServerPrefetch: onServerPrefetch, + onUnmounted: onUnmounted, + onUpdated: onUpdated, + onWatcherCleanup: onWatcherCleanup, + openBlock: openBlock, + patchProp: patchProp, + popScopeId: popScopeId, + provide: provide, + proxyRefs: proxyRefs, + pushScopeId: pushScopeId, + queuePostFlushCb: queuePostFlushCb, + reactive: reactive, + readonly: readonly, + ref: ref, + registerRuntimeCompiler: registerRuntimeCompiler, + render: render, + renderList: renderList, + renderSlot: renderSlot, + resolveComponent: resolveComponent, + resolveDirective: resolveDirective, + resolveDynamicComponent: resolveDynamicComponent, + resolveFilter: resolveFilter, + resolveTransitionHooks: resolveTransitionHooks, + setBlockTracking: setBlockTracking, + setDevtoolsHook: setDevtoolsHook, + setTransitionHooks: setTransitionHooks, + shallowReactive: shallowReactive, + shallowReadonly: shallowReadonly, + shallowRef: shallowRef, + ssrContextKey: ssrContextKey, + ssrUtils: ssrUtils, + stop: stop, + toDisplayString: toDisplayString, + toHandlerKey: toHandlerKey, + toHandlers: toHandlers, + toRaw: toRaw, + toRef: toRef, + toRefs: toRefs, + toValue: toValue, + transformVNodeArgs: transformVNodeArgs, + triggerRef: triggerRef, + unref: unref, + useAttrs: useAttrs, + useCssModule: useCssModule, + useCssVars: useCssVars, + useHost: useHost, + useId: useId, + useModel: useModel, + useSSRContext: useSSRContext, + useShadowRoot: useShadowRoot, + useSlots: useSlots, + useTemplateRef: useTemplateRef, + useTransitionState: useTransitionState, + vModelCheckbox: vModelCheckbox, + vModelDynamic: vModelDynamic, + vModelRadio: vModelRadio, + vModelSelect: vModelSelect, + vModelText: vModelText, + vShow: vShow, + version: version, + warn: warn, + watch: watch, + watchEffect: watchEffect, + watchPostEffect: watchPostEffect, + watchSyncEffect: watchSyncEffect, + withAsyncContext: withAsyncContext, + withCtx: withCtx, + withDefaults: withDefaults, + withDirectives: withDirectives, + withKeys: withKeys, + withMemo: withMemo, + withModifiers: withModifiers, + withScopeId: withScopeId +}); + +function initDev() { + { + { + console.info( + `You are running a development build of Vue. +Make sure to use the production build (*.prod.js) when deploying for production.` + ); + } + initCustomFormatter(); + } +} + +const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` ); +const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` ); +const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` ); +const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` ); +const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `BaseTransition` +); +const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` ); +const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` ); +const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `createElementBlock` +); +const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` ); +const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `createElementVNode` +); +const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `createCommentVNode` +); +const CREATE_TEXT = /* @__PURE__ */ Symbol( + `createTextVNode` +); +const CREATE_STATIC = /* @__PURE__ */ Symbol( + `createStaticVNode` +); +const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `resolveComponent` +); +const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `resolveDynamicComponent` +); +const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `resolveDirective` +); +const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `resolveFilter` +); +const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `withDirectives` +); +const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` ); +const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` ); +const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` ); +const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `toDisplayString` +); +const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` ); +const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `normalizeClass` +); +const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `normalizeStyle` +); +const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `normalizeProps` +); +const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `guardReactiveProps` +); +const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` ); +const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` ); +const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` ); +const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `toHandlerKey` +); +const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `setBlockTracking` +); +const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` ); +const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` ); +const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` ); +const UNREF = /* @__PURE__ */ Symbol(`unref` ); +const IS_REF = /* @__PURE__ */ Symbol(`isRef` ); +const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` ); +const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` ); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else ; + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + } + stateInEntity() { + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + } +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` +}; + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpression = isMemberExpressionBrowser ; +const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpression = isFnExpressionBrowser ; +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVPre(p) { + return p.type === 7 && p.name === "pre"; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); +} +function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); +} + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: NO, + isPreTag: NO, + isIgnoreNewlineTag: NO, + isCustomElement: NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = currentOptions.decodeEntities(exp, false); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentAttrValue.includes("&")) { + currentAttrValue = currentOptions.decodeEntities( + currentAttrValue, + true + ); + } + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + { + const tag = stack[0] && stack[0].tag; + if (tag !== "script" && tag !== "style" && content.includes("&")) { + content = currentOptions.decodeEntities(content, false); + } + } + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } + } + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (!currentOptions.decodeEntities) { + throw new Error( + `[@vue/compiler-core] decodeEntities option is required in browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); +} +function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; +} +function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (` /* ${PatchFlagNames[-1]} */` ) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: NOOP, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const preambleContext = context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node, -3 /* Unknown */); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} + +const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" +); +const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; +function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + message + ) + ); + } +} + +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } +} + +const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + { + validateBrowserExpression(result.source, context); + if (result.key) { + validateBrowserExpression( + result.key, + context, + true + ); + } + if (result.index) { + validateBrowserExpression( + result.index, + context, + true + ); + } + if (result.value) { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || false) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || false)) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || false)) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp); + const isInlineStatement = !(isMemberExp || isFnExpression(exp)); + const hasMultipleStatements = exp.content.includes(`;`); + { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + exp = void 0; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + true)) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + if (!expString.trim() || !isMemberExpression(exp) && true) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[], + ...[transformExpression] , + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(48)); + } else if (isModuleMode) { + onError(createCompilerError(49)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }); + const ast = isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const noopDirectiveTransform = () => ({ props: [] }); + +const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` ); +const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `vModelCheckbox` +); +const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` ); +const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `vModelSelect` +); +const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `vModelDynamic` +); +const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `vOnModifiersGuard` +); +const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `vOnKeysGuard` +); +const V_SHOW = /* @__PURE__ */ Symbol(`vShow` ); +const TRANSITION = /* @__PURE__ */ Symbol(`Transition` ); +const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `TransitionGroup` +); +registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +let decoder; +function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } +} + +const parserOptions = { + parseMode: "html", + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); +} +const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findDir(node, "bind"); + if (value && isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } +}; +function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } +}; + +function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; +} +const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); +const emptySet = /* @__PURE__ */ new Set([]); +const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet +}; +const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) +}; +const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) +}; +const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings +}; + +const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] +]; +const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile(src, options = {}) { + return baseCompile( + src, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); +} + +{ + initDev(); +} +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + warn(`invalid template option: `, template); + return NOOP; + } + } + const key = genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function("Vue", code)(runtimeDom); + render._rc = true; + return compileCache[key] = render; +} +registerRuntimeCompiler(compileToFunction); + +export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, compileToFunction as compile, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, nodeOps, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId }; diff --git a/node_modules/vue/dist/vue.esm-browser.prod.js b/node_modules/vue/dist/vue.esm-browser.prod.js new file mode 100644 index 0000000..aba4c20 --- /dev/null +++ b/node_modules/vue/dist/vue.esm-browser.prod.js @@ -0,0 +1,13 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let e,t,n,r,i,l,s,o,a,c,u,d,p;function h(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let f={},m=[],g=()=>{},y=()=>!1,b=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),_=e=>e.startsWith("onUpdate:"),S=Object.assign,x=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},C=Object.prototype.hasOwnProperty,k=(e,t)=>C.call(e,t),T=Array.isArray,w=e=>"function"==typeof e,N=e=>"string"==typeof e,E=e=>"symbol"==typeof e,A=e=>null!==e&&"object"==typeof e,R=e=>(A(e)||w(e))&&w(e.then)&&w(e.catch),I=Object.prototype.toString,O=e=>N(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,M=h(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),P=h("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),D=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},F=/-\w/g,$=D(e=>e.replace(F,e=>e.slice(1).toUpperCase())),L=/\B([A-Z])/g,V=D(e=>e.replace(L,"-$1").toLowerCase()),B=D(e=>e.charAt(0).toUpperCase()+e.slice(1)),j=D(e=>e?`on${B(e)}`:""),U=(e,t)=>!Object.is(e,t),H=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},q=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},W=e=>{let t=parseFloat(e);return isNaN(t)?e:t},K=e=>{let t=N(e)?Number(e):NaN;return isNaN(t)?e:t},z=()=>e||(e="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),J=h("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function G(e){if(T(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=N(r)?Y(r):G(r);if(i)for(let e in i)t[e]=i[e]}return t}if(N(e)||A(e))return e}let Q=/;(?![^(]*\))/g,X=/:([^]+)/,Z=/\/\*[^]*?\*\//g;function Y(e){let t={};return e.replace(Z,"").split(Q).forEach(e=>{if(e){let n=e.split(X);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ee(e){let t="";if(N(e))t=e;else if(T(e))for(let n=0;n<e.length;n++){let r=ee(e[n]);r&&(t+=r+" ")}else if(A(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}function et(e){if(!e)return null;let{class:t,style:n}=e;return t&&!N(t)&&(e.class=ee(t)),n&&(e.style=G(n)),e}let en=h("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),er=h("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),ei=h("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),el=h("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),es=h("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function eo(e,t){let n,r;if(e===t)return!0;let i="[object Date]"===(n=e,I.call(n)),l="[object Date]"===(r=t,I.call(r));if(i||l)return!!i&&!!l&&e.getTime()===t.getTime();if(i=E(e),l=E(t),i||l)return e===t;if(i=T(e),l=T(t),i||l)return!!i&&!!l&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=eo(e[r],t[r]);return n}(e,t);if(i=A(e),l=A(t),i||l){if(!i||!l||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let r=e.hasOwnProperty(n),i=t.hasOwnProperty(n);if(r&&!i||!r&&i||!eo(e[n],t[n]))return!1}}return String(e)===String(t)}function ea(e,t){return e.findIndex(e=>eo(e,t))}let ec=e=>!!(e&&!0===e.__v_isRef),eu=e=>N(e)?e:null==e?"":T(e)||A(e)&&(e.toString===I||!w(e.toString))?ec(e)?eu(e.value):JSON.stringify(e,ed,2):String(e),ed=(e,t)=>{let n;if(ec(t))return ed(e,t.value);if("[object Map]"===(n=t,I.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[ep(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,I.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>ep(e))};else{if(E(t))return ep(t);let e;if(A(t)&&!T(t)&&"[object Object]"!==(e=t,I.call(e)))return String(t)}}return t},ep=(e,t="")=>{var n;return E(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class eh{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=t,!e&&t&&(this.index=(t.scopes||(t.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let n=t;try{return t=this,e()}finally{t=n}}}on(){1==++this._on&&(this.prevScope=t,t=this)}off(){this._on>0&&0==--this._on&&(t=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}function ef(e){return new eh(e)}function em(){return t}function eg(e,n=!1){t&&t.cleanups.push(e)}let ev=new WeakSet;class ey{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,t&&t.active&&t.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,ev.has(this)&&(ev.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||e_(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,eM(this),ex(this);let e=n,t=eA;n=this,eA=!0;try{return this.fn()}finally{eC(this),n=e,eA=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)ew(e);this.deps=this.depsTail=void 0,eM(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?ev.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ek(this)&&this.run()}get dirty(){return ek(this)}}let eb=0;function e_(e,t=!1){if(e.flags|=8,t){e.next=i,i=e;return}e.next=r,r=e}function eS(){let e;if(!(--eb>0)){if(i){let e=i;for(i=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;r;){let t=r;for(r=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ex(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),ew(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ek(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eT(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eT(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eP)||(e.globalVersion=eP,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ek(e))))return;e.flags|=2;let t=e.dep,r=n,i=eA;n=e,eA=!0;try{ex(e);let n=e.fn(e._value);(0===t.version||U(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{n=r,eA=i,eC(e),e.flags&=-3}}function ew(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ew(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function eN(e,t){e.effect instanceof ey&&(e=e.effect.fn);let n=new ey(e);t&&S(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r}function eE(e){e.effect.stop()}let eA=!0,eR=[];function eI(){eR.push(eA),eA=!1}function eO(){let e=eR.pop();eA=void 0===e||e}function eM(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=n;n=void 0;try{t()}finally{n=e}}}let eP=0;class eD{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eF{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!n||!eA||n===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==n)t=this.activeLink=new eD(n,this),n.deps?(t.prevDep=n.depsTail,n.depsTail.nextDep=t,n.depsTail=t):n.deps=n.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=n.depsTail,t.nextDep=void 0,n.depsTail.nextDep=t,n.depsTail=t,n.deps===t&&(n.deps=e)}return t}trigger(e){this.version++,eP++,this.notify(e)}notify(e){eb++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eS()}}}let e$=new WeakMap,eL=Symbol(""),eV=Symbol(""),eB=Symbol("");function ej(e,t,r){if(eA&&n){let t=e$.get(e);t||e$.set(e,t=new Map);let n=t.get(r);n||(t.set(r,n=new eF),n.map=t,n.key=r),n.track()}}function eU(e,t,n,r,i,l){let s=e$.get(e);if(!s)return void eP++;let o=e=>{e&&e.trigger()};if(eb++,"clear"===t)s.forEach(o);else{let i=T(e),l=i&&O(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eB||!E(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eB)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(eL));"[object Map]"===(t=e,I.call(t))&&o(s.get(eV))}break;case"delete":if(!i){let t;o(s.get(eL));"[object Map]"===(t=e,I.call(t))&&o(s.get(eV))}break;case"set":let a;"[object Map]"===(a=e,I.call(a))&&o(s.get(eL))}}eS()}function eH(e){let t=tb(e);return t===e?t:(ej(t,"iterate",eB),tv(e)?t:t.map(tS))}function eq(e){return ej(e=tb(e),"iterate",eB),e}function eW(e,t){return tg(e)?tm(e)?tx(tS(t)):tx(t):tS(t)}let eK={__proto__:null,[Symbol.iterator](){return ez(this,Symbol.iterator,e=>eW(this,e))},concat(...e){return eH(this).concat(...e.map(e=>T(e)?eH(e):e))},entries(){return ez(this,"entries",e=>(e[1]=eW(this,e[1]),e))},every(e,t){return eG(this,"every",e,t,void 0,arguments)},filter(e,t){return eG(this,"filter",e,t,e=>e.map(e=>eW(this,e)),arguments)},find(e,t){return eG(this,"find",e,t,e=>eW(this,e),arguments)},findIndex(e,t){return eG(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eG(this,"findLast",e,t,e=>eW(this,e),arguments)},findLastIndex(e,t){return eG(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eG(this,"forEach",e,t,void 0,arguments)},includes(...e){return eX(this,"includes",e)},indexOf(...e){return eX(this,"indexOf",e)},join(e){return eH(this).join(e)},lastIndexOf(...e){return eX(this,"lastIndexOf",e)},map(e,t){return eG(this,"map",e,t,void 0,arguments)},pop(){return eZ(this,"pop")},push(...e){return eZ(this,"push",e)},reduce(e,...t){return eQ(this,"reduce",e,t)},reduceRight(e,...t){return eQ(this,"reduceRight",e,t)},shift(){return eZ(this,"shift")},some(e,t){return eG(this,"some",e,t,void 0,arguments)},splice(...e){return eZ(this,"splice",e)},toReversed(){return eH(this).toReversed()},toSorted(e){return eH(this).toSorted(e)},toSpliced(...e){return eH(this).toSpliced(...e)},unshift(...e){return eZ(this,"unshift",e)},values(){return ez(this,"values",e=>eW(this,e))}};function ez(e,t,n){let r=eq(e),i=r[t]();return r===e||tv(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let eJ=Array.prototype;function eG(e,t,n,r,i,l){let s=eq(e),o=s!==e&&!tv(e),a=s[t];if(a!==eJ[t]){let t=a.apply(e,l);return o?tS(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eW(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eQ(e,t,n,r){let i=eq(e),l=n;return i!==e&&(tv(e)?n.length>3&&(l=function(t,r,i){return n.call(this,t,r,i,e)}):l=function(t,r,i){return n.call(this,t,eW(e,r),i,e)}),i[t](l,...r)}function eX(e,t,n){let r=tb(e);ej(r,"iterate",eB);let i=r[t](...n);return(-1===i||!1===i)&&ty(n[0])?(n[0]=tb(n[0]),r[t](...n)):i}function eZ(e,t,n=[]){eI(),eb++;let r=tb(e)[t].apply(e,n);return eS(),eO(),r}let eY=h("__proto__,__v_isRef,__isVue"),e0=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(E));function e1(e){E(e)||(e=String(e));let t=tb(this);return ej(t,"has",e),t.hasOwnProperty(e)}class e2{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?tc:ta:i?to:ts).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=T(e);if(!r){let e;if(l&&(e=eK[t]))return e;if("hasOwnProperty"===t)return e1}let s=Reflect.get(e,t,tC(e)?e:n);if((E(t)?e0.has(t):eY(t))||(r||ej(e,"get",t),i))return s;if(tC(s)){let e=l&&O(t)?s:s.value;return r&&A(e)?tp(e):e}return A(s)?r?tp(s):tu(s):s}}class e6 extends e2{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=T(e)&&O(t);if(!this._isShallow){let e=tg(i);if(tv(n)||tg(n)||(i=tb(i),n=tb(n)),!l&&tC(i)&&!tC(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)<e.length:k(e,t),o=Reflect.set(e,t,n,tC(e)?e:r);return e===tb(r)&&(s?U(n,i)&&eU(e,"set",t,n):eU(e,"add",t,n)),o}deleteProperty(e,t){let n=k(e,t);e[t];let r=Reflect.deleteProperty(e,t);return r&&n&&eU(e,"delete",t,void 0),r}has(e,t){let n=Reflect.has(e,t);return E(t)&&e0.has(t)||ej(e,"has",t),n}ownKeys(e){return ej(e,"iterate",T(e)?"length":eL),Reflect.ownKeys(e)}}class e3 extends e2{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let e4=new e6,e8=new e3,e5=new e6(!0),e9=new e3(!0),e7=e=>e;function te(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function tt(e,t){let n,r=(S(n={get(n){let r=this.__v_raw,i=tb(r),l=tb(n);e||(U(n,l)&&ej(i,"get",n),ej(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e7:e?tx:tS;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||ej(tb(t),"iterate",eL),t.size},has(t){let n=this.__v_raw,r=tb(n),i=tb(t);return e||(U(t,i)&&ej(r,"has",t),ej(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tb(l),o=t?e7:e?tx:tS;return e||ej(s,"iterate",eL),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:te("add"),set:te("set"),delete:te("delete"),clear:te("clear")}:{add(e){t||tv(e)||tg(e)||(e=tb(e));let n=tb(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),eU(n,"add",e,e)),this},set(e,n){t||tv(n)||tg(n)||(n=tb(n));let r=tb(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tb(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?U(n,o)&&eU(r,"set",e,n):eU(r,"add",e,n),this},delete(e){let t=tb(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tb(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eU(t,"delete",e,void 0),l},clear(){let e=tb(this),t=0!==e.size,n=e.clear();return t&&eU(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tb(l),o="[object Map]"===(i=s,I.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e7:e?tx:tS;return e||ej(s,"iterate","keys"===r&&o?eV:eL),S(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(k(r,n)&&n in t?r:t,n,i)}let tn={get:tt(!1,!1)},tr={get:tt(!1,!0)},ti={get:tt(!0,!1)},tl={get:tt(!0,!0)},ts=new WeakMap,to=new WeakMap,ta=new WeakMap,tc=new WeakMap;function tu(e){return tg(e)?e:tf(e,!1,e4,tn,ts)}function td(e){return tf(e,!1,e5,tr,to)}function tp(e){return tf(e,!0,e8,ti,ta)}function th(e){return tf(e,!0,e9,tl,tc)}function tf(e,t,n,r,i){var l;let s;if(!A(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=l,I.call(s)).slice(8,-1));if(0===o)return e;let a=i.get(e);if(a)return a;let c=new Proxy(e,2===o?r:n);return i.set(e,c),c}function tm(e){return tg(e)?tm(e.__v_raw):!!(e&&e.__v_isReactive)}function tg(e){return!!(e&&e.__v_isReadonly)}function tv(e){return!!(e&&e.__v_isShallow)}function ty(e){return!!e&&!!e.__v_raw}function tb(e){let t=e&&e.__v_raw;return t?tb(t):e}function t_(e){return!k(e,"__v_skip")&&Object.isExtensible(e)&&q(e,"__v_skip",!0),e}let tS=e=>A(e)?tu(e):e,tx=e=>A(e)?tp(e):e;function tC(e){return!!e&&!0===e.__v_isRef}function tk(e){return tw(e,!1)}function tT(e){return tw(e,!0)}function tw(e,t){return tC(e)?e:new tN(e,t)}class tN{constructor(e,t){this.dep=new eF,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tb(e),this._value=t?e:tS(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tv(e)||tg(e);U(e=n?e:tb(e),t)&&(this._rawValue=e,this._value=n?e:tS(e),this.dep.trigger())}}function tE(e){e.dep&&e.dep.trigger()}function tA(e){return tC(e)?e.value:e}function tR(e){return w(e)?e():tA(e)}let tI={get:(e,t,n)=>"__v_raw"===t?e:tA(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tC(i)&&!tC(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tO(e){return tm(e)?e:new Proxy(e,tI)}class tM{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eF,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tP(e){return new tM(e)}function tD(e){let t=T(e)?Array(e.length):{};for(let n in e)t[n]=new tF(e,n,void 0);return t}class tF{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=tb(e);let r=!0,i=e;if(!T(e)||!O(String(t)))do r=!ty(i)||tv(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tA(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&tC(this._raw[this._key])){let t=this._object[this._key];if(tC(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=e$.get(e))&&n.get(t)}}class t${constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tL(e,t,n){if(tC(e))return e;if(w(e))return new t$(e);if(!A(e)||!(arguments.length>1))return tk(e);return new tF(e,t,n)}class tV{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eF(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eP-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&n!==this)return e_(this,!0),!0}get value(){let e=this.dep.track();return eT(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tB={GET:"get",HAS:"has",ITERATE:"iterate"},tj={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},tU={},tH=new WeakMap;function tq(){return d}function tW(e,t=!1,n=d){if(n){let t=tH.get(n);t||tH.set(n,t=[]),t.push(e)}}function tK(e,t=1/0,n){if(t<=0||!A(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tC(e))tK(e.value,t,n);else if(T(e))for(let r=0;r<e.length;r++)tK(e[r],t,n);else{let r,i;if("[object Set]"===(r=e,I.call(r))||"[object Map]"===(i=e,I.call(i)))e.forEach(e=>{tK(e,t,n)});else{let r;if("[object Object]"===(r=e,I.call(r))){for(let r in e)tK(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tK(e[r],t,n)}}}return e}function tz(e,t){}let tJ={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"};function tG(e,t,n,r){try{return r?e(...r):e()}catch(e){tX(e,t,n)}}function tQ(e,t,n,r){if(w(e)){let i=tG(e,t,n,r);return i&&R(i)&&i.catch(e=>{tX(e,t,n)}),i}if(T(e)){let i=[];for(let l=0;l<e.length;l++)i.push(tQ(e[l],t,n,r));return i}}function tX(e,t,n,r=!0){let i=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||f;if(t){let r=t.parent,i=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){let t=r.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,i,s))return}r=r.parent}if(l){eI(),tG(l,null,10,[e,i,s]),eO();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,r,s)}let tZ=[],tY=-1,t0=[],t1=null,t2=0,t6=Promise.resolve(),t3=null;function t4(e){let t=t3||t6;return e?t.then(this?e.bind(this):e):t}function t8(e){if(!(1&e.flags)){let t=nt(e),n=tZ[tZ.length-1];!n||!(2&e.flags)&&t>=nt(n)?tZ.push(e):tZ.splice(function(e){let t=tY+1,n=tZ.length;for(;t<n;){let r=t+n>>>1,i=tZ[r],l=nt(i);l<e||l===e&&2&i.flags?t=r+1:n=r}return t}(t),0,e),e.flags|=1,t5()}}function t5(){t3||(t3=t6.then(function e(t){try{for(tY=0;tY<tZ.length;tY++){let e=tZ[tY];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),tG(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tY<tZ.length;tY++){let e=tZ[tY];e&&(e.flags&=-2)}tY=-1,tZ.length=0,ne(),t3=null,(tZ.length||t0.length)&&e()}}))}function t9(e){T(e)?t0.push(...e):t1&&-1===e.id?t1.splice(t2+1,0,e):1&e.flags||(t0.push(e),e.flags|=1),t5()}function t7(e,t,n=tY+1){for(;n<tZ.length;n++){let t=tZ[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tZ.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function ne(e){if(t0.length){let e=[...new Set(t0)].sort((e,t)=>nt(e)-nt(t));if(t0.length=0,t1)return void t1.push(...e);for(t2=0,t1=e;t2<t1.length;t2++){let e=t1[t2];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}t1=null,t2=0}}let nt=e=>null==e.id?2&e.flags?-1:1/0:e.id,nn=null,nr=null;function ni(e){let t=nn;return nn=e,nr=e&&e.type.__scopeId||null,t}function nl(e){nr=e}function ns(){nr=null}let no=e=>na;function na(e,t=nn,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&i5(-1);let l=ni(t);try{i=e(...n)}finally{ni(l),r._d&&i5(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function nc(e,t){if(null===nn)return e;let n=lP(nn),r=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[i,l,s,o=f]=t[e];i&&(w(i)&&(i={mounted:i,updated:i}),i.deep&&tK(l),r.push({dir:i,instance:n,value:l,oldValue:void 0,arg:s,modifiers:o}))}return e}function nu(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s<i.length;s++){let o=i[s];l&&(o.oldValue=l[s].value);let a=o.dir[r];a&&(eI(),tQ(a,n,8,[e.el,o,e,t]),eO())}}function nd(e,t){if(lS){let n=lS.provides,r=lS.parent&&lS.parent.provides;r===n&&(n=lS.provides=Object.create(r)),n[e]=t}}function np(e,t,n=!1){let r=lx();if(r||iu){let i=iu?iu._context.provides:r?null==r.parent||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&w(t)?t.call(r&&r.proxy):t}}function nh(){return!!(lx()||iu)}let nf=Symbol.for("v-scx"),nm=()=>np(nf);function ng(e,t){return n_(e,null,t)}function nv(e,t){return n_(e,null,{flush:"post"})}function ny(e,t){return n_(e,null,{flush:"sync"})}function nb(e,t,n){return n_(e,t,n)}function n_(e,t,n=f){let r,{immediate:i,flush:l}=n,s=S({},n),o=t&&i||!t&&"post"!==l;if(lw){if("sync"===l){let e=nm();r=e.__watcherHandles||(e.__watcherHandles=[])}else if(!o){let e=()=>{};return e.stop=g,e.resume=g,e.pause=g,e}}let a=lS;s.call=(e,t,n)=>tQ(e,a,t,n);let c=!1;"post"===l?s.scheduler=e=>{iD(e,a&&a.suspense)}:"sync"!==l&&(c=!0,s.scheduler=(e,t)=>{t?e():t8(e)}),s.augmentJob=e=>{t&&(e.flags|=4),c&&(e.flags|=2,a&&(e.id=a.uid,e.i=a))};let u=function(e,t,n=f){let r,i,l,s,{immediate:o,deep:a,once:c,scheduler:u,augmentJob:p,call:h}=n,m=e=>a?e:tv(e)||!1===a||0===a?tK(e,1):tK(e),y=!1,b=!1;if(tC(e)?(i=()=>e.value,y=tv(e)):tm(e)?(i=()=>m(e),y=!0):T(e)?(b=!0,y=e.some(e=>tm(e)||tv(e)),i=()=>e.map(e=>tC(e)?e.value:tm(e)?m(e):w(e)?h?h(e,2):e():void 0)):i=w(e)?t?h?()=>h(e,2):e:()=>{if(l){eI();try{l()}finally{eO()}}let t=d;d=r;try{return h?h(e,3,[s]):e(s)}finally{d=t}}:g,t&&a){let e=i,t=!0===a?1/0:a;i=()=>tK(e(),t)}let _=em(),S=()=>{r.stop(),_&&_.active&&x(_.effects,r)};if(c&&t){let e=t;t=(...t)=>{e(...t),S()}}let C=b?Array(e.length).fill(tU):tU,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(a||y||(b?e.some((e,t)=>U(e,C[t])):U(e,C))){l&&l();let n=d;d=r;try{let n=[e,C===tU?void 0:b&&C[0]===tU?[]:C,s];C=e,h?h(t,3,n):t(...n)}finally{d=n}}}else r.run()};return p&&p(k),(r=new ey(i)).scheduler=u?()=>u(k,!1):k,s=e=>tW(e,!1,r),l=r.onStop=()=>{let e=tH.get(r);if(e){if(h)h(e,4);else for(let t of e)t();tH.delete(r)}},t?o?k(!0):C=r.run():u?u(k.bind(null,!0),!0):r.run(),S.pause=r.pause.bind(r),S.resume=r.resume.bind(r),S.stop=S,S}(e,t,s);return lw&&(r?r.push(u):o&&u()),u}function nS(e,t,n){let r,i=this.proxy,l=N(e)?e.includes(".")?nx(i,e):()=>i[e]:e.bind(i,i);w(t)?r=t:(r=t.handler,n=t);let s=lC(this),o=n_(l,r.bind(i),n);return s(),o}function nx(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let nC=Symbol("_vte"),nk=e=>e&&(e.disabled||""===e.disabled),nT=e=>e&&(e.defer||""===e.defer),nw=e=>"u">typeof SVGElement&&e instanceof SVGElement,nN=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,nE=(e,t)=>{let n=e&&e.to;return N(n)?t?t(n):null:n},nA={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:p,o:{insert:h,querySelector:f,createText:m}}=c,g=nk(t.props),{shapeFlag:y,children:b,dynamicChildren:_}=t;if(null==e){let e=t.el=m(""),c=t.anchor=m("");h(e,n,r),h(c,n,r);let d=(e,t)=>{16&y&&u(b,e,t,i,l,s,o,a)},p=()=>{let e=t.target=nE(t.props,f),n=nM(e,t,m,h);e&&("svg"!==s&&nw(e)?s="svg":"mathml"!==s&&nN(e)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(e),g||(d(e,n),nO(t,!1)))};g&&(d(n,c),nO(t,!0)),nT(t.props)?(t.el.__isMounted=!1,iD(()=>{p(),delete t.el.__isMounted},l)):p()}else{if(nT(t.props)&&!1===e.el.__isMounted)return void iD(()=>{nA.process(e,t,n,r,i,l,s,o,a,c)},l);t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,h=t.target=e.target,m=t.targetAnchor=e.targetAnchor,y=nk(e.props),b=y?n:h,S=y?u:m;if("svg"===s||nw(h)?s="svg":("mathml"===s||nN(h))&&(s="mathml"),_?(p(e.dynamicChildren,_,b,i,l,s,o),iU(e,t,!0)):a||d(e,t,b,S,i,l,s,o,!1),g)y?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nR(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=nE(t.props,f);e&&nR(t,e,null,c,0)}else y&&nR(t,h,m,c,1);nO(t,g)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:p}=e;if(d&&(i(c),i(u)),l&&i(a),16&s){let e=l||!nk(p);for(let i=0;i<o.length;i++){let l=o[i];r(l,t,n,e,!!l.dynamicChildren)}}},move:nR,hydrate:function(e,t,n,r,i,l,{o:{nextSibling:s,parentNode:o,querySelector:a,insert:c,createText:u}},d){function p(e,n){let r=n;for(;r;){if(r&&8===r.nodeType){if("teleport start anchor"===r.data)t.targetStart=r;else if("teleport anchor"===r.data){t.targetAnchor=r,e._lpa=t.targetAnchor&&s(t.targetAnchor);break}}r=s(r)}}function h(e,t){t.anchor=d(s(e),t,o(e),n,r,i,l)}let f=t.target=nE(t.props,a),m=nk(t.props);if(f){let a=f._lpa||f.firstChild;16&t.shapeFlag&&(m?(h(e,t),p(f,a),t.targetAnchor||nM(f,t,u,c,o(e)===f?e:null)):(t.anchor=s(e),p(f,a),t.targetAnchor||nM(f,t,u,c),d(a&&s(a),t,f,n,r,i,l))),nO(t,m)}else m&&16&t.shapeFlag&&(h(e,t),t.targetStart=e,t.targetAnchor=s(e));return t.anchor&&s(t.anchor)}};function nR(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,d=2===l;if(d&&r(s,t,n),(!d||nk(u))&&16&a)for(let e=0;e<c.length;e++)i(c[e],t,n,2);d&&r(o,t,n)}let nI=nA;function nO(e,t){let n=e.ctx;if(n&&n.ut){let r,i;for(t?(r=e.el,i=e.anchor):(r=e.targetStart,i=e.targetAnchor);r&&r!==i;)1===r.nodeType&&r.setAttribute("data-v-owner",n.uid),r=r.nextSibling;n.ut()}}function nM(e,t,n,r,i=null){let l=t.targetStart=n(""),s=t.targetAnchor=n("");return l[nC]=s,e&&(r(l,e,i),r(s,e,i)),s}let nP=Symbol("_leaveCb"),nD=Symbol("_enterCb");function nF(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return r_(()=>{e.isMounted=!0}),rC(()=>{e.isUnmounting=!0}),e}let n$=[Function,Array],nL={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:n$,onEnter:n$,onAfterEnter:n$,onEnterCancelled:n$,onBeforeLeave:n$,onLeave:n$,onAfterLeave:n$,onLeaveCancelled:n$,onBeforeAppear:n$,onAppear:n$,onAfterAppear:n$,onAppearCancelled:n$},nV=e=>{let t=e.subTree;return t.component?nV(t.component):t};function nB(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==i0){t=n;break}}return t}let nj={name:"BaseTransition",props:nL,setup(e,{slots:t}){let n=lx(),r=nF();return()=>{let i=t.default&&nz(t.default(),!0);if(!i||!i.length)return;let l=nB(i),s=tb(e),{mode:o}=s;if(r.isLeaving)return nq(l);let a=nW(l);if(!a)return nq(l);let c=nH(a,s,r,n,e=>c=e);a.type!==i0&&nK(a,c);let u=n.subTree&&nW(n.subTree);if(u&&u.type!==i0&&!ln(u,a)&&nV(n).type!==i0){let e=nH(u,s,r,n);if(nK(u,e),"out-in"===o&&a.type!==i0)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nq(l);"in-out"===o&&a.type!==i0?e.delayLeave=(e,t,n)=>{nU(r,u)[String(u.key)]=u,e[nP]=()=>{t(),e[nP]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nU(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nH(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nU(n,e),C=(e,t)=>{e&&tQ(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),T(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},w={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=g||a;t[nP]&&t[nP](!0);let i=x[S];i&&ln(e,i)&&i.el[nP]&&i.el[nP](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted)if(!l)return;else t=y||c,r=b||u,i=_||d;let s=!1;e[nD]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),w.delayedLeave&&w.delayedLeave(),e[nD]=void 0)};let o=e[nD].bind(null,!1);t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[nD]&&t[nD](!0),n.isUnmounting)return r();C(p,[t]);let l=!1;t[nP]=n=>{l||(l=!0,r(),n?C(m,[t]):C(f,[t]),t[nP]=void 0,x[i]===e&&delete x[i])};let s=t[nP].bind(null,!1);x[i]=e,h?k(h,[t,s]):s()},clone(e){let l=nH(e,t,n,r,i);return i&&i(l),l}};return w}function nq(e){if(rc(e))return(e=lc(e)).children=null,e}function nW(e){if(!rc(e))return e.type.__isTeleport&&e.children?nB(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&w(n.default))return n.default()}}function nK(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nK(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nz(e,t=!1,n){let r=[],i=0;for(let l=0;l<e.length;l++){let s=e[l],o=null==n?s.key:String(n)+String(null!=s.key?s.key:l);s.type===iZ?(128&s.patchFlag&&i++,r=r.concat(nz(s.children,t,o))):(t||s.type!==i0)&&r.push(null!=o?lc(s,{key:o}):s)}if(i>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function nJ(e,t){return w(e)?S({name:e.name},t,{setup:e}):e}function nG(){let e=lx();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""}function nQ(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nX(e){let t=lx(),n=tT(null);return t&&Object.defineProperty(t.refs===f?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n}function nZ(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let nY=new WeakMap;function n0(e,t,n,r,i=!1){if(T(e))return void e.forEach((e,l)=>n0(e,t&&(T(t)?t[l]:t),n,r,i));if(rs(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&n0(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?lP(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===f?o.refs={}:o.refs,d=o.setupState,p=tb(d),h=d===f?y:e=>!nZ(u,e)&&k(p,e),m=(e,t)=>!(t&&nZ(u,t));if(null!=c&&c!==a&&(n1(t),N(c)?(u[c]=null,h(c)&&(d[c]=null)):tC(c)&&(m(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),w(a))tG(a,o,12,[s,u]);else{let t=N(a),r=tC(a);if(t||r){let o=()=>{if(e.f){let n=t?h(a)?d[a]:u[a]:m()||!e.k?a.value:u[e.k];if(i)T(n)&&x(n,l);else if(T(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],h(a)&&(d[a]=u[a]);else{let t=[l];m(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,h(a)&&(d[a]=s)):r&&(m(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nY.delete(e)};t.id=-1,nY.set(e,t),iD(t,n)}else n1(e),o()}}}function n1(e){let t=nY.get(e);t&&(t.flags|=8,nY.delete(e))}let n2=!1,n6=()=>{n2||(console.error("Hydration completed but contains mismatches."),n2=!0)},n3=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},n4=e=>8===e.nodeType;function n8(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=n4(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:w}=r,N=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let E=null;switch(C){case iY:3!==N?""===r.children?(a(r.el=i(""),s(n),n),E=n):E=x():(n.data!==r.children&&(n6(),n.data=r.children),E=l(n));break;case i0:y(n)?(E=l(n),g(r.el=n.content.firstChild,n,o)):E=8!==N||S?x():l(n);break;case i1:if(S&&(N=(n=l(n)).nodeType),1===N||3===N){E=n;let e=!r.children.length;for(let t=0;t<r.staticCount;t++)e&&(r.children+=1===E.nodeType?E.outerHTML:E.data),t===r.staticCount-1&&(r.anchor=E),E=l(E);return S?l(E):E}x();break;case iZ:E=S?h(n,r,o,c,b,_):x();break;default:if(1&T)E=1===N&&r.type.toLowerCase()===n.tagName.toLowerCase()||y(n)?d(n,r,o,c,b,_):x();else if(6&T){r.slotScopeIds=b;let e=s(n);if(E=S?m(n):n4(n)&&"teleport start"===n.data?m(n,n.data,"teleport end"):l(n),t(r,e,null,o,c,n3(e),_),rs(r)&&!r.type.__asyncResolved){let t;S?(t=lo(iZ)).anchor=E?E.previousSibling:e.lastChild:t=3===n.nodeType?lu(""):lo("div"),t.el=n,r.component.subTree=t}}else 64&T?E=8!==N?x():r.type.hydrate(n,r,o,c,b,_,e,p):128&T&&(E=r.type.hydrate(n,r,o,c,n3(s(n)),b,_,e,u))}return null!=k&&n0(k,null,c,r),E},d=(e,t,n,i,l,s)=>{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:d,dirs:h,transition:f}=t,m="input"===a||"option"===a;if(m||-1!==u){let a;h&&nu(t,null,n,"created");let _=!1;if(y(e)){_=ij(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(_){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}g(r,e,n),t.el=e=r}if(16&d&&!(c&&(c.innerHTML||c.textContent))){let r=p(e.firstChild,t,e,n,i,l,s);for(;r;){n7(e,1)||n6();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(n7(e,0)||n6(),e.textContent=t.children)}if(c){if(m||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(m&&(i.endsWith("value")||"indeterminate"===i)||b(i)&&!M(i)||"."===i[0]||t&&!M(i))&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&tm(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&lv(a,n,t),h&&nu(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||h||_)&&iQ(()=>{a&&lv(a,n,t),_&&f.enter(e),h&&nu(t,null,n,"mounted")},i)}return e.nextSibling},p=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let p=t.children,h=p.length;for(let t=0;t<h;t++){let f=d?p[t]:p[t]=lh(p[t]),m=f.type===iY;e?(m&&!d&&t+1<h&&lh(p[t+1]).type===iY&&(a(i(e.data.slice(f.children.length)),r,l(e)),e.data=f.children),e=u(e,f,s,o,c,d)):m&&!f.children?a(f.el=i(""),r):(n7(r,1)||n6(),n(null,f,r,null,s,o,n3(r),c))}return e},h=(e,t,n,r,i,o)=>{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),h=p(l(e),t,d,n,r,i,o);return h&&n4(h)&&"]"===h.data?l(t.anchor=h):(n6(),a(t.anchor=c("]"),d,h),h)},f=(e,t,r,i,a,c)=>{if(n7(e.parentElement,1)||n6(),t.el=null,c){let t=m(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),d=s(e);return o(e),n(null,t,d,u,r,i,n3(d),a),r&&(r.vnode.el=t.el,ix(r,t.el)),u},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&n4(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},g=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),ne(),t._vnode=e;return}u(t.firstChild,e,null,null,null),ne(),t._vnode=e},u]}let n5="data-allow-mismatch",n9={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function n7(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(n5);)e=e.parentElement;let n=e&&e.getAttribute(n5);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n9[t])}}let re=z().requestIdleCallback||(e=>setTimeout(e,1)),rt=z().cancelIdleCallback||(e=>clearTimeout(e)),rn=(e=1e4)=>t=>{let n=re(t,{timeout:e});return()=>rt(n)},rr=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t<l||r>0&&r<l)&&(n>0&&n<s||i>0&&i<s)}(e))return t(),r.disconnect(),!1;r.observe(e)}}),()=>r.disconnect()},ri=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},rl=(e=[])=>(t,n)=>{N(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},rs=e=>!!e.type.__asyncLoader;function ro(e){let t;w(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,p=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,p())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nJ({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(n4(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(n4(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=lS;if(nQ(e),t)return()=>ra(t,e);let n=t=>{u=null,tX(t,e,13,!i)};if(a&&e.suspense||lw)return p().then(t=>()=>ra(t,e)).catch(e=>(n(e),()=>i?lo(i,{error:e}):null));let s=tk(!1),c=tk(),d=tk(!!l);return l&&setTimeout(()=>{d.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),p().then(()=>{s.value=!0,e.parent&&rc(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?ra(t,e):c.value&&i?lo(i,{error:c.value}):r&&!d.value?ra(r,e):void 0}})}function ra(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=lo(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let rc=e=>e.type.__isKeepAlive,ru={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=lx(),r=n.ctx;if(!r.renderer)return()=>{let e=t.default&&t.default();return e&&1===e.length?e[0]:e};let i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,p=d("div");function h(e){rm(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=lD(rs(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&m(n)})}function m(e){let t=i.get(e);!t||s&&ln(t,s)?s&&rm(s):h(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),iD(()=>{l.isDeactivated=!1,l.a&&H(l.a);let t=e.props&&e.props.onVnodeMounted;t&&lv(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;iH(t.m),iH(t.a),c(e,p,null,1,o),iD(()=>{t.da&&H(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&lv(n,t.parent,e),t.isDeactivated=!0},o)},nb(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>rd(e,t)),t&&f(e=>!rd(t,e))},{flush:"post",deep:!0});let g=null,y=()=>{null!=g&&(iq(n.subTree.type)?iD(()=>{i.set(g,rg(n.subTree))},n.subTree.suspense):i.set(g,rg(n.subTree)))};return r_(y),rx(y),rC(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=rg(t);if(e.type===i.type&&e.key===i.key){rm(i);let e=i.component.da;e&&iD(e,r);return}h(e)})}),()=>{if(g=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!lt(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=rg(r);if(o.type===i0)return s=null,o;let a=o.type,c=lD(rs(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:p}=e;if(u&&(!c||!rd(u,c))||d&&c&&rd(d,c))return o.shapeFlag&=-257,s=o,r;let h=null==o.key?a:o.key,f=i.get(h);return o.el&&(o=lc(o),128&r.shapeFlag&&(r.ssContent=o)),g=h,f?(o.el=f.el,o.component=f.component,o.transition&&nK(o,o.transition),o.shapeFlag|=512,l.delete(h),l.add(h)):(l.add(h),p&&l.size>parseInt(p,10)&&m(l.values().next().value)),o.shapeFlag|=256,s=o,iq(r.type)?r:o}}};function rd(e,t){let n;if(T(e))return e.some(e=>rd(e,t));if(N(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,I.call(n))&&(e.lastIndex=0,e.test(t))}function rp(e,t){rf(e,"a",t)}function rh(e,t){rf(e,"da",t)}function rf(e,t,n=lS){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(rv(t,r,n),n){let e=n.parent;for(;e&&e.parent;)rc(e.parent.vnode)&&function(e,t,n,r){let i=rv(t,e,r,!0);rk(()=>{x(r[t],i)},n)}(r,t,n,e),e=e.parent}}function rm(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function rg(e){return 128&e.shapeFlag?e.ssContent:e}function rv(e,t,n=lS,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eI();let i=lC(n),l=tQ(t,n,e,r);return i(),eO(),l});return r?i.unshift(l):i.push(l),l}}let ry=e=>(t,n=lS)=>{lw&&"sp"!==e||rv(e,(...e)=>t(...e),n)},rb=ry("bm"),r_=ry("m"),rS=ry("bu"),rx=ry("u"),rC=ry("bum"),rk=ry("um"),rT=ry("sp"),rw=ry("rtg"),rN=ry("rtc");function rE(e,t=lS){rv("ec",e,t)}let rA="components";function rR(e,t){return rP(rA,e,!0,t)||e}let rI=Symbol.for("v-ndc");function rO(e){return N(e)?rP(rA,e,!1)||e:e||rI}function rM(e){return rP("directives",e)}function rP(e,t,n=!0,r=!1){let i=nn||lS;if(i){let n=i.type;if(e===rA){let e=lD(n,!1);if(e&&(e===t||e===$(t)||e===B($(t))))return n}let l=rD(i[e]||n[e],t)||rD(i.appContext[e],t);return!l&&r?n:l}}function rD(e,t){return e&&(e[t]||e[$(t)]||e[B($(t))])}function rF(e,t,n,r){let i,l=n&&n[r],s=T(e);if(s||N(e)){let n=s&&tm(e),r=!1,o=!1;n&&(r=!tv(e),o=tg(e),e=eq(e)),i=Array(e.length);for(let n=0,s=e.length;n<s;n++)i[n]=t(r?o?tx(tS(e[n])):tS(e[n]):e[n],n,void 0,l&&l[n])}else if("number"==typeof e){i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,l&&l[n])}else if(A(e))if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r<s;r++){let s=n[r];i[r]=t(e[s],s,r,l&&l[r])}}else i=[];return n&&(n[r]=i),i}function r$(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(T(r))for(let t=0;t<r.length;t++)e[r[t].name]=r[t].fn;else r&&(e[r.name]=r.key?(...e)=>{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function rL(e,t,n={},r,i){if(nn.ce||nn.parent&&rs(nn.parent)&&nn.parent.ce){let e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),i3(),le(iZ,null,[lo("slot",n,r&&r())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),i3();let s=l&&rV(l(n)),o=n.key||s&&s.key,a=le(iZ,{key:(o&&!E(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a}function rV(e){return e.some(e=>!lt(e)||e.type!==i0&&(e.type!==iZ||!!rV(e.children)))?e:null}function rB(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:j(r)]=e[r];return n}let rj=e=>e?lT(e)?lP(e):rj(e.parent):null,rU=S(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>rj(e.parent),$root:e=>rj(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>r7(e),$forceUpdate:e=>e.f||(e.f=()=>{t8(e.update)}),$nextTick:e=>e.n||(e.n=t4.bind(e.proxy)),$watch:e=>nS.bind(e)}),rH=(e,t)=>e!==f&&!e.__isScriptSetup&&k(e,t),rq={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(rH(l,t))return a[t]=1,l[t];if(s!==f&&k(s,t))return a[t]=2,s[t];if(k(o,t))return a[t]=3,o[t];if(i!==f&&k(i,t))return a[t]=4,i[t];r5&&(a[t]=0)}}let d=rU[t];return d?("$attrs"===t&&ej(e.attrs,"get",""),d(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==f&&k(i,t)?(a[t]=4,i[t]):k(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rH(i,t)?(i[t]=n,!0):r!==f&&k(r,t)?(r[t]=n,!0):!k(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==f&&"$"!==o[0]&&k(e,o)||rH(t,o)||k(l,o)||k(r,o)||k(rU,o)||k(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:k(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rW=S({},rq,{get(e,t){if(t!==Symbol.unscopables)return rq.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!J(t)});function rK(){return null}function rz(){return null}function rJ(e){}function rG(e){}function rQ(){return null}function rX(){}function rZ(e,t){return null}function rY(){return r1().slots}function r0(){return r1().attrs}function r1(e){let t=lx();return t.setupContext||(t.setupContext=lM(t))}function r2(e){return T(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function r6(e,t){let n=r2(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?T(r)||w(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n}function r3(e,t){return e&&t?T(e)&&T(t)?e.concat(t):S({},r2(e),r2(t)):e||t}function r4(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function r8(e){let t=lx(),n=e();return lk(),R(n)&&(n=n.catch(e=>{throw lC(t),e})),[n,()=>lC(t)]}let r5=!0;function r9(e,t,n){tQ(T(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function r7(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>ie(t,e,o,!0)),ie(t,n,o)):t=n,A(n)&&s.set(n,t),t}function ie(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&ie(e,l,n,!0),i&&i.forEach(t=>ie(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=it[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let it={data:ir,props:io,emits:io,methods:is,computed:is,beforeCreate:il,created:il,beforeMount:il,mounted:il,beforeUpdate:il,updated:il,beforeDestroy:il,beforeUnmount:il,destroyed:il,unmounted:il,activated:il,deactivated:il,errorCaptured:il,serverPrefetch:il,components:is,directives:is,watch:function(e,t){if(!e)return t;if(!t)return e;let n=S(Object.create(null),e);for(let r in t)n[r]=il(e[r],t[r]);return n},provide:ir,inject:function(e,t){return is(ii(e),ii(t))}};function ir(e,t){return t?e?function(){return S(w(e)?e.call(this,this):e,w(t)?t.call(this,this):t)}:t:e}function ii(e){if(T(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function il(e,t){return e?[...new Set([].concat(e,t))]:t}function is(e,t){return e?S(Object.create(null),e,t):t}function io(e,t){return e?T(e)&&T(t)?[...new Set([...e,...t])]:S(Object.create(null),r2(e),r2(null!=t?t:{})):t}function ia(){return{app:null,config:{isNativeTag:y,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ic=0,iu=null;function id(e,t,n=f){let r=lx(),i=$(t),l=V(t),s=ip(e,i),o=tP((s,o)=>{let a,c,u=f;return ny(()=>{let t=e[i];U(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!U(s,a)&&!(u!==f&&U(e,u)))return;let d=r.vnode.props;d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d)||(a=e,o()),r.emit(`update:${t}`,s),U(e,s)&&U(e,u)&&!U(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||f:o,done:!1}:{done:!0}}},o}let ip=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${$(t)}Modifiers`]||e[`${V(t)}Modifiers`];function ih(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||f,l=n,s=t.startsWith("update:"),o=s&&ip(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>N(e)?e.trim():e)),o.number&&(l=n.map(W)));let a=i[r=j(t)]||i[r=j($(t))];!a&&s&&(a=i[r=j(V(t))]),a&&tQ(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tQ(c,e,6,l)}}let im=new WeakMap;function ig(e,t){return!!e&&!!b(t)&&(k(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||k(e,V(t))||k(e,t))}function iv(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:p,props:h,data:f,setupState:m,ctx:g,inheritAttrs:y}=e,b=ni(e);try{if(4&i.shapeFlag){let e=s||l;t=lh(d.call(e,e,p,h,m,f,g)),n=c}else t=lh(r.length>1?r(h,{attrs:c,slots:a,emit:u}):r(h,null)),n=r.props?c:iy(c)}catch(n){i2.length=0,tX(n,e,1),t=lo(i0)}let S=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=S;e.length&&7&t&&(o&&e.some(_)&&(n=ib(n,o)),S=lc(S,n,!1,!0))}return i.dirs&&((S=lc(S,null,!1,!0)).dirs=S.dirs?S.dirs.concat(i.dirs):i.dirs),i.transition&&nK(S,i.transition),t=S,ni(b),t}let iy=e=>{let t;for(let n in e)("class"===n||"style"===n||b(n))&&((t||(t={}))[n]=e[n]);return t},ib=(e,t)=>{let n={};for(let r in e)_(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function i_(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let l=r[i];if(iS(t,e,l)&&!ig(n,l))return!0}return!1}function iS(e,t,n){let r=e[n],i=t[n];return"style"===n&&A(r)&&A(i)?!eo(r,i):r!==i}function ix({vnode:e,parent:t},n){for(;t;){let r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.el=e.el),r===e)(e=t.vnode).el=n,t=t.parent;else break}}let iC={},ik=e=>Object.getPrototypeOf(e)===iC;function iT(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(M(a))continue;let u=t[a];l&&k(l,c=$(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:ig(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tb(n),r=i||f;for(let i=0;i<s.length;i++){let o=s[i];n[o]=iw(l,t,o,r[o],e,!k(r,o))}}return o}function iw(e,t,n,r,i,l){let s=e[n];if(null!=s){let e=k(s,"default");if(e&&void 0===r){let e=s.default;if(s.type!==Function&&!s.skipFactory&&w(e)){let{propsDefaults:l}=i;if(n in l)r=l[n];else{let s=lC(i);r=l[n]=e.call(null,t),s()}}else r=e;i.ce&&i.ce._setProp(n,r)}s[0]&&(l&&!e?r=!1:s[1]&&(""===r||r===V(n))&&(r=!0))}return r}let iN=new WeakMap;function iE(e){return!("$"===e[0]||M(e))}let iA=e=>"_"===e||"_ctx"===e||"$stable"===e,iR=e=>T(e)?e.map(lh):[lh(e)],iI=(e,t,n)=>{if(t._n)return t;let r=na((...e)=>iR(t(...e)),n);return r._c=!1,r},iO=(e,t,n)=>{let r=e._ctx;for(let n in e){if(iA(n))continue;let i=e[n];if(w(i))t[n]=iI(n,i,r);else if(null!=i){let e=iR(i);t[n]=()=>e}}},iM=(e,t)=>{let n=iR(t);e.slots.default=()=>n},iP=(e,t,n)=>{for(let r in t)(n||!iA(r))&&(e[r]=t[r])},iD=iQ;function iF(e){return iL(e)}function i$(e){return iL(e,n8)}function iL(e,t){var n;let r,i;z().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:u,setText:d,setElementText:p,parentNode:h,nextSibling:y,setScopeId:b=g,insertStaticContent:_}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ln(e,t)&&(r=en(e),X(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case iY:C(e,t,n,r);break;case i0:T(e,t,n,r);break;case i1:null==e&&N(t,n,r,s);break;case iZ:L(e,t,n,r,i,l,s,o,a);break;default:1&d?E(e,t,n,r,i,l,s,o,a):6&d?B(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,el):128&d&&c.process(e,t,n,r,i,l,s,o,a,el)}null!=u&&i?n0(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&n0(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},T=(e,t,n,r)=>{null==e?l(t.el=u(t.children||""),n,r):t.el=e.el},N=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},E=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),P(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let d,h,{props:f,shapeFlag:m,transition:g,dirs:y}=e;if(d=e.el=a(e.type,s,f&&f.is,f),8&m?p(d,e.children):16&m&&O(e.children,d,null,r,i,iV(e,s),c,u),y&&nu(e,null,r,"created"),I(d,e,e.scopeId,c,r),f){for(let e in f)"value"===e||M(e)||o(d,e,null,f[e],s,r);"value"in f&&o(d,"value",null,f.value,s),(h=f.onVnodeBeforeMount)&&lv(h,r,e)}y&&nu(e,null,r,"beforeMount");let b=ij(i,g);b&&g.beforeEnter(d),l(d,t,n),((h=f&&f.onVnodeMounted)||b||y)&&iD(()=>{h&&lv(h,r,e),b&&g.enter(d),y&&nu(e,null,r,"mounted")},i)},I=(e,t,n,r,i)=>{if(n&&b(e,n),r)for(let t=0;t<r.length;t++)b(e,r[t]);if(i){let n=i.subTree;if(t===n||iq(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;I(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},O=(e,t,n,r,i,l,s,o,a=0)=>{for(let c=a;c<e.length;c++)x(null,e[c]=o?lf(e[c]):lh(e[c]),t,n,r,i,l,s,o)},P=(e,t,n,r,i,l,s)=>{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:h}=t;u|=16&e.patchFlag;let m=e.props||f,g=t.props||f;if(n&&iB(n,!1),(a=g.onVnodeBeforeUpdate)&&lv(a,n,t,e),h&&nu(t,e,n,"beforeUpdate"),n&&iB(n,!0),(m.innerHTML&&null==g.innerHTML||m.textContent&&null==g.textContent)&&p(c,""),d?D(e.dynamicChildren,d,c,n,r,iV(t,i),l):s||K(e,t,c,null,n,r,iV(t,i),l,!1),u>0){if(16&u)F(c,m,g,n,i);else if(2&u&&m.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",m.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let r=e[t],l=m[r],s=g[r];(s!==l||"value"===r)&&o(c,r,l,s,i,n)}}1&u&&e.children!==t.children&&p(c,t.children)}else s||null!=d||F(c,m,g,n,i);((a=g.onVnodeUpdated)||h)&&iD(()=>{a&&lv(a,n,t,e),h&&nu(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o<t.length;o++){let a=e[o],c=t[o],u=a.el&&(a.type===iZ||!ln(a,c)||198&a.shapeFlag)?h(a.el):n;x(a,c,u,null,r,i,l,s,!0)}},F=(e,t,n,r,i)=>{if(t!==n){if(t!==f)for(let l in t)M(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(M(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},L=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:m}=t;m&&(a=a?a.concat(m):m),null==e?(l(d,n,r),l(p,n,r),O(t.children||[],n,p,i,s,o,a,u)):h>0&&64&h&&f&&e.dynamicChildren&&e.dynamicChildren.length===f.length?(D(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&iU(e,t,!0)):K(e,t,n,p,i,s,o,a,u)},B=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):j(t,n,r,i,l,s,a):U(e,t,a)},j=(e,t,n,r,i,l,s)=>{let o=e.component=l_(e,r,i);if(rc(e)&&(o.ctx.renderer=el),lN(o,!1,s),o.asyncDep){if(i&&i.registerDep(o,q,s),!e.el){let r=o.subTree=lo(i0);T(null,r,t,n),e.placeholder=r.el}}else q(o,e,t,n,i,l,s)},U=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||i_(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?i_(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(iS(s,r,n)&&!ig(c,n))return!0}}return!1}(e,t,n))if(r.asyncDep&&!r.asyncResolved)return void W(r,t,n);else r.next=t,r.update();else t.el=e.el,r.vnode=t},q=(e,t,n,r,l,s,o)=>{e.scope.on();let a=e.effect=new ey(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,W(e,n,o)),t.asyncDep.then(()=>{iD(()=>{e.isUnmounted||c()},l)});return}}let d=n;iB(e,!1),n?(n.el=u.el,W(e,n,o)):n=u,r&&H(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&lv(t,a,n,u),iB(e,!0);let p=iv(e),f=e.subTree;e.subTree=p,x(f,p,h(f.el),en(f),e,l,s),n.el=p.el,null===d&&ix(e,p.el),i&&iD(i,l),(t=n.props&&n.props.onVnodeUpdated)&&iD(()=>lv(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:p,root:h,type:f}=e,m=rs(t);if(iB(e,!1),u&&H(u),!m&&(o=c&&c.onVnodeBeforeMount)&&lv(o,p,t),iB(e,!0),a&&i){let t=()=>{e.subTree=iv(e),i(a,e.subTree,e,l,null)};m&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{h.ce&&h.ce._hasShadowRoot()&&h.ce._injectChildStyle(f);let i=e.subTree=iv(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&iD(d,l),!m&&(o=c&&c.onVnodeMounted)){let e=t;iD(()=>lv(o,p,e),l)}(256&t.shapeFlag||p&&rs(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&iD(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>t8(u),iB(e,!0),c()},W=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tb(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let s=n[r];if(ig(e.emitsOptions,s))continue;let u=t[s];if(a)if(k(l,s))u!==l[s]&&(l[s]=u,c=!0);else{let t=$(s);i[t]=iw(a,o,t,u,e,!1)}else u!==l[s]&&(l[s]=u,c=!0)}}}else{let r;for(let s in iT(e,t,i,l)&&(c=!0),o)t&&(k(t,s)||(r=V(s))!==s&&k(t,r))||(a?n&&(void 0!==n[s]||void 0!==n[r])&&(i[s]=iw(a,o,s,void 0,e,!0)):delete i[s]);if(l!==o)for(let e in l)t&&k(t,e)||(delete l[e],c=!0)}c&&eU(e.attrs,"set","")}(e,t.props,r,n),((e,t,n)=>{let{vnode:r,slots:i}=e,l=!0,s=f;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:iP(i,t,n):(l=!t.$stable,iO(t,i)),s=t}else t&&(iM(e,t),s={default:1});if(l)for(let e in i)iA(e)||null!=s[e]||delete i[e]})(e,t.children,n),eI(),t7(e),eO()},K=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:h,shapeFlag:f}=t;if(h>0){if(128&h)return void G(c,d,n,r,i,l,s,o,a);else if(256&h)return void J(c,d,n,r,i,l,s,o,a)}8&f?(16&u&&et(c,i,l),d!==c&&p(n,d)):16&u?16&f?G(c,d,n,r,i,l,s,o,a):et(c,i,l,!0):(8&u&&p(n,""),16&f&&O(d,n,r,i,l,s,o,a))},J=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||m,t=t||m;let u=e.length,d=t.length,p=Math.min(u,d);for(c=0;c<p;c++){let r=t[c]=a?lf(t[c]):lh(t[c]);x(e[c],r,n,null,i,l,s,o,a)}u>d?et(e,i,l,!0,!1,p):O(t,n,r,i,l,s,o,a,p)},G=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,p=u-1;for(;c<=d&&c<=p;){let r=e[c],u=t[c]=a?lf(t[c]):lh(t[c]);if(ln(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=p;){let r=e[d],c=t[p]=a?lf(t[p]):lh(t[p]);if(ln(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,p--}if(c>d){if(c<=p){let e=p+1,d=e<u?t[e].el:r;for(;c<=p;)x(null,t[c]=a?lf(t[c]):lh(t[c]),n,d,i,l,s,o,a),c++}}else if(c>p)for(;c<=d;)X(e[c],i,l,!0),c++;else{let h,f=c,g=c,y=new Map;for(c=g;c<=p;c++){let e=t[c]=a?lf(t[c]):lh(t[c]);null!=e.key&&y.set(e.key,c)}let b=0,_=p-g+1,S=!1,C=0,k=Array(_);for(c=0;c<_;c++)k[c]=0;for(c=f;c<=d;c++){let r,u=e[c];if(b>=_){X(u,i,l,!0);continue}if(null!=u.key)r=y.get(u.key);else for(h=g;h<=p;h++)if(0===k[h-g]&&ln(u,t[h])){r=h;break}void 0===r?X(u,i,l,!0):(k[r-g]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),b++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(r=0,i=o.length-1;r<i;)e[o[l=r+i>>1]]<a?r=l+1:i=l;a<e[o[r]]&&(r>0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):m;for(h=T.length-1,c=_-1;c>=0;c--){let e=g+c,d=t[e],p=t[e+1],f=e+1<u?p.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(p):r;0===k[c]?x(null,d,n,f,i,l,s,o,a):S&&(h<0||c!==T[h]?Q(d,n,f,2):h--)}}},Q=(e,t,n,r,i=null)=>{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void Q(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,el);if(a===iZ){l(o,t,n);for(let e=0;e<u.length;e++)Q(u[e],t,n,r);l(e.anchor,t,n);return}if(a===i1)return void(({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=y(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.beforeEnter(o),l(o,t,n),iD(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{o._isLeaving&&o[nP](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},X=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:p,dirs:h,cacheIndex:f}=e;if(-2===p&&(i=!1),null!=a&&(eI(),n0(a,null,n,e,!0),eO()),null!=f&&(t.renderCache[f]=void 0),256&d)return void t.ctx.deactivate(e);let m=1&d&&h,g=!rs(e);if(g&&(l=o&&o.onVnodeBeforeUnmount)&&lv(l,t,e),6&d)ee(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);m&&nu(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,el,r):u&&!u.hasOnce&&(s!==iZ||p>0&&64&p)?et(u,t,n,!1,!0):(s===iZ&&384&p||!i&&16&d)&&et(c,t,n),r&&Z(e)}(g&&(l=o&&o.onVnodeUnmounted)||m)&&iD(()=>{l&&lv(l,t,e),m&&nu(e,null,t,"unmounted")},n)},Z=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===iZ)return void Y(n,r);if(t===i1)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=y(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},Y=(e,t)=>{let n;for(;e!==t;)n=y(e),s(e),e=n;s(t)},ee=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;iH(a),iH(c),r&&H(r),i.stop(),l&&(l.flags|=8,X(s,e,t,n)),o&&iD(o,t),iD(()=>{e.isUnmounted=!0},t)},et=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s<e.length;s++)X(e[s],t,n,r,i)},en=e=>{if(6&e.shapeFlag)return en(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=y(e.anchor||e.el),n=t&&t[nC];return n?y(n):t},er=!1,ei=(e,t,n)=>{let r;null==e?t._vnode&&(X(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,er||(er=!0,t7(r),ne(),er=!1)},el={p:x,um:X,m:Q,r:Z,mt:j,mc:O,pc:K,pbc:D,n:en,o:e};return t&&([r,i]=t(el)),{render:ei,hydrate:r,createApp:(n=r,function(e,t=null){w(e)||(e=S({},e)),null==t||A(t)||(t=null);let r=ia(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:ic++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:lj,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&w(e.install)?(i.add(e),e.install(o,...t)):w(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||lo(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ei(c,i,a),s=!0,o._container=i,i.__vue_app__=o,lP(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tQ(l,o._instance,16),ei(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=iu;iu=o;try{return e()}finally{iu=t}}};return o})}}function iV({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function iB({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ij(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function iU(e,t,n=!1){let r=e.children,i=t.children;if(T(r)&&T(i))for(let e=0;e<r.length;e++){let t=r[e],l=i[e];1&l.shapeFlag&&!l.dynamicChildren&&((l.patchFlag<=0||32===l.patchFlag)&&((l=i[e]=lf(i[e])).el=t.el),n||-2===l.patchFlag||iU(t,l)),l.type===iY&&(-1===l.patchFlag&&(l=i[e]=lf(l)),l.el=t.el),l.type!==i0||l.el||(l.el=t.el)}}function iH(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let iq=e=>e.__isSuspense,iW=0,iK={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,d=u("div"),p=e.suspense=iJ(e,i,r,t,d,n,l,s,o,a);c(null,p.pendingBranch=e.ssContent,d,null,r,p,l,s),p.deps>0?(iz(e,"onPending"),iz(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),iX(p,e.ssFallback)):p.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let p=t.ssContent,h=t.ssFallback,{activeBranch:f,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=p,ln(m,p)?(a(m,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():g&&!y&&(a(f,h,n,r,i,null,l,s,o),iX(d,h))):(d.pendingId=iW++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),g?(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():(a(f,h,n,r,i,null,l,s,o),iX(d,h))):f&&ln(f,p)?(a(f,p,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(f&&ln(f,p))a(f,p,n,r,i,d,l,s,o),iX(d,p);else if(iz(t,"onPending"),d.pendingBranch=p,512&p.shapeFlag?d.pendingId=p.component.suspenseId:d.pendingId=iW++,a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(h)},e):0===e&&d.fallback(h)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=iJ(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=iG(r?n.default:n),e.ssFallback=r?iG(n.fallback):lo(i0)}};function iz(e,t){let n=e.props&&e.props[t];w(n)&&n()}function iJ(e,t,n,r,i,l,s,o,a,c,u=!1){var d;let p,h,{p:f,m:m,um:g,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(p=(d=e).props&&d.props.suspensible)&&!1!==p;S&&t&&t.pendingBranch&&(h=t.pendingId,t.deps++);let x=e.props?K(e.props.timeout):void 0,C=l,k={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:iW++,timeout:"number"==typeof x?x:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:d}=k,p=!1;k.isHydrating?k.isHydrating=!1:!e&&((p=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===k.pendingId&&(m(s,u,l===C?y(i):l,0),t9(a),d&&r.ssFallback&&(r.ssFallback.el=null))}),i&&(b(i.el)===u&&(l=y(i)),g(i,c,k,!0),!p&&d&&r.ssFallback&&iD(()=>r.ssFallback.el=null,k)),p||m(s,u,l,0)),iX(k,s),k.pendingBranch=null,k.isInFallback=!1;let f=k.parent,_=!1;for(;f;){if(f.pendingBranch){f.effects.push(...a),_=!0;break}f=f.parent}_||p||t9(a),k.effects=[],S&&t&&t.pendingBranch&&h===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),iz(r,"onResolve")},fallback(e){if(!k.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=k;iz(t,"onFallback");let s=y(n),c=()=>{k.isInFallback&&(f(null,e,i,s,r,null,l,o,a),iX(k,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),k.isInFallback=!0,g(n,r,null,!0),u||c()},move(e,t,n){k.activeBranch&&m(k.activeBranch,e,t,n),k.container=e},next:()=>k.activeBranch&&y(k.activeBranch),registerDep(e,t,n){let r=!!k.pendingBranch;r&&k.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tX(t,e,0)}).then(l=>{if(e.isUnmounted||k.isUnmounted||k.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;lE(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),k,s,n),a&&(o.placeholder=null,_(a)),ix(e,o.el),r&&0==--k.deps&&k.resolve()})},unmount(e,t){k.isUnmounted=!0,k.activeBranch&&g(k.activeBranch,n,e,t),k.pendingBranch&&g(k.pendingBranch,n,e,t)}};return k}function iG(e){let t;if(w(e)){let n=i8&&e._c;n&&(e._d=!1,i3()),e=e(),n&&(e._d=!0,t=i6,i4())}return T(e)&&(e=function(e,t=!0){let n;for(let t=0;t<e.length;t++){let r=e[t];if(!lt(r))return;if(r.type!==i0||"v-if"===r.children)if(n)return;else n=r}return n}(e)),e=lh(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function iQ(e,t){t&&t.pendingBranch?T(e)?t.effects.push(...e):t.effects.push(e):t9(e)}function iX(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,ix(r,i))}let iZ=Symbol.for("v-fgt"),iY=Symbol.for("v-txt"),i0=Symbol.for("v-cmt"),i1=Symbol.for("v-stc"),i2=[],i6=null;function i3(e=!1){i2.push(i6=e?null:[])}function i4(){i2.pop(),i6=i2[i2.length-1]||null}let i8=1;function i5(e,t=!1){i8+=e,e<0&&i6&&t&&(i6.hasOnce=!0)}function i9(e){return e.dynamicChildren=i8>0?i6||m:null,i4(),i8>0&&i6&&i6.push(e),e}function i7(e,t,n,r,i,l){return i9(ls(e,t,n,r,i,l,!0))}function le(e,t,n,r,i){return i9(lo(e,t,n,r,i,!0))}function lt(e){return!!e&&!0===e.__v_isVNode}function ln(e,t){return e.type===t.type&&e.key===t.key}function lr(e){}let li=({key:e})=>null!=e?e:null,ll=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?N(e)||tC(e)||w(e)?{i:nn,r:e,k:t,f:!!n}:e:null);function ls(e,t=null,n=null,r=0,i=null,l=+(e!==iZ),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&li(t),ref:t&&ll(t),scopeId:nr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:nn};return o?(lm(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=N(n)?8:16),i8>0&&!s&&i6&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&i6.push(a),a}let lo=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==rI||(e=i0),lt(e)){let r=lc(e,t,!0);return n&&lm(r,n),i8>0&&!l&&i6&&(6&r.shapeFlag?i6[i6.indexOf(e)]=r:i6.push(r)),r.patchFlag=-2,r}if(w(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=la(t);e&&!N(e)&&(t.class=ee(e)),A(n)&&(ty(n)&&!T(n)&&(n=S({},n)),t.style=G(n))}let o=N(e)?1:iq(e)?128:e.__isTeleport?64:A(e)?4:2*!!w(e);return ls(e,t,n,r,i,o,l,!0)};function la(e){return e?ty(e)||ik(e)?S({},e):e:null}function lc(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?lg(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&li(c),ref:t&&t.ref?n&&l?T(l)?l.concat(ll(t)):[l,ll(t)]:ll(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==iZ?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&lc(e.ssContent),ssFallback:e.ssFallback&&lc(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nK(u,a.clone(u)),u}function lu(e=" ",t=0){return lo(iY,null,e,t)}function ld(e,t){let n=lo(i1,null,e);return n.staticCount=t,n}function lp(e="",t=!1){return t?(i3(),le(i0,null,e)):lo(i0,null,e)}function lh(e){return null==e||"boolean"==typeof e?lo(i0):T(e)?lo(iZ,null,e.slice()):lt(e)?lf(e):lo(iY,null,String(e))}function lf(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:lc(e)}function lm(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(T(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),lm(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||ik(t)?3===r&&nn&&(1===nn.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=nn}else w(t)?(t={default:t,_ctx:nn},n=32):(t=String(t),64&r?(n=16,t=[lu(t)]):n=8);e.children=t,e.shapeFlag|=n}function lg(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if("class"===e)t.class!==r.class&&(t.class=ee([t.class,r.class]));else if("style"===e)t.style=G([t.style,r.style]);else if(b(e)){let n=t[e],i=r[e];i&&n!==i&&!(T(n)&&n.includes(i))&&(t[e]=n?[].concat(n,i):i)}else""!==e&&(t[e]=r[e])}return t}function lv(e,t,n,r=null){tQ(e,t,7,[n,r])}let ly=ia(),lb=0;function l_(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||ly,l={uid:lb++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new eh(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?iN:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!w(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);S(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return A(t)&&i.set(t,m),m;if(T(s))for(let e=0;e<s.length;e++){let t=$(s[e]);iE(t)&&(o[t]=f)}else if(s)for(let e in s){let t=$(e);if(iE(t)){let n=s[e],r=o[t]=T(n)||w(n)?{type:n}:S({},n),i=r.type,l=!1,c=!0;if(T(i))for(let e=0;e<i.length;++e){let t=i[e],n=w(t)&&t.name;if("Boolean"===n){l=!0;break}"String"===n&&(c=!1)}else l=w(i)&&"Boolean"===i.name;r[0]=l,r[1]=c,(l||k(r,"default"))&&a.push(t)}}let u=[o,a];return A(t)&&i.set(t,u),u}(r,i),emitsOptions:function e(t,n,r=!1){let i=r?im:n.emitsCache,l=i.get(t);if(void 0!==l)return l;let s=t.emits,o={},a=!1;if(!w(t)){let i=t=>{let r=e(t,n,!0);r&&(a=!0,S(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(T(s)?s.forEach(e=>o[e]=null):S(o,s),A(t)&&i.set(t,o),o):(A(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:f,inheritAttrs:r.inheritAttrs,ctx:f,data:f,props:f,attrs:f,slots:f,refs:f,setupState:f,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=ih.bind(null,l),e.ce&&e.ce(l),l}let lS=null,lx=()=>lS||nn;{let e=z(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};l=t("__VUE_INSTANCE_SETTERS__",e=>lS=e),s=t("__VUE_SSR_SETTERS__",e=>lw=e)}let lC=e=>{let t=lS;return l(e),e.scope.on(),()=>{e.scope.off(),l(t)}},lk=()=>{lS&&lS.scope.off(),l(null)};function lT(e){return 4&e.vnode.shapeFlag}let lw=!1;function lN(e,t=!1,n=!1){t&&s(t);let{props:r,children:i}=e.vnode,l=lT(e);!function(e,t,n,r=!1){let i={},l=Object.create(iC);for(let n in e.propsDefaults=Object.create(null),iT(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:td(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var o=n||t;let a=e.slots=Object.create(iC);if(32&e.vnode.shapeFlag){let e=i._;e?(iP(a,i,o),o&&q(a,"_",e,!0)):iO(i,a)}else i&&iM(e,i);let c=l?function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rq);let{setup:r}=n;if(r){eI();let n=e.setupContext=r.length>1?lM(e):null,i=lC(e),l=tG(r,e,0,[e.props,n]),s=R(l);if(eO(),i(),(s||e.sp)&&!rs(e)&&nQ(e),s){if(l.then(lk,lk),t)return l.then(n=>{lE(e,n,t)}).catch(t=>{tX(t,e,0)});e.asyncDep=l}else lE(e,l,t)}else lI(e,t)}(e,t):void 0;return t&&s(!1),c}function lE(e,t,n){w(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:A(t)&&(e.setupState=tO(t)),lI(e,n)}function lA(e){o=e,a=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rW))}}let lR=()=>!o;function lI(e,t,n){let r=e.type;if(!e.render){if(!t&&o&&!r.render){let t=r.template||r7(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,a=S(S({isCustomElement:n,delimiters:l},i),s);r.render=o(t,a)}}e.render=r.render||g,a&&a(e)}{let t=lC(e);eI();try{!function(e){let t=r7(e),n=e.proxy,r=e.ctx;r5=!1,t.beforeCreate&&r9(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:h,updated:f,activated:m,deactivated:y,beforeUnmount:b,unmounted:_,render:S,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:E,expose:R,inheritAttrs:I,components:O,directives:M}=t;if(c&&function(e,t,n=g){for(let n in T(e)&&(e=ii(e)),e){let r,i=e[n];tC(r=A(i)?"default"in i?np(i.from||n,i.default,!0):np(i.from||n):np(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r,null),s)for(let e in s){let t=s[e];w(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);A(t)&&(e.data=tu(t))}if(r5=!0,l)for(let e in l){let t=l[e],i=w(t)?t.bind(n,n):w(t.get)?t.get.bind(n,n):g,s=lF({get:i,set:!w(t)&&w(t.set)?t.set.bind(n):g});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nx(r,i):()=>r[i];if(N(t)){let e=n[t];w(e)&&nb(l,e)}else if(w(t))nb(l,t.bind(r));else if(A(t))if(T(t))t.forEach(t=>e(t,n,r,i));else{let e=w(t.handler)?t.handler.bind(r):n[t.handler];w(e)&&nb(l,e,t)}}(o[e],r,n,e);if(a){let e=w(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{nd(t,e[t])})}function P(e,t){T(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&r9(u,e,"c"),P(rb,d),P(r_,p),P(rS,h),P(rx,f),P(rp,m),P(rh,y),P(rE,k),P(rN,x),P(rw,C),P(rC,b),P(rk,_),P(rT,E),T(R))if(R.length){let t=e.exposed||(e.exposed={});R.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===g&&(e.render=S),null!=I&&(e.inheritAttrs=I),O&&(e.components=O),M&&(e.directives=M),E&&nQ(e)}(e)}finally{eO(),t()}}}let lO={get:(e,t)=>(ej(e,"get",""),e[t])};function lM(e){return{attrs:new Proxy(e.attrs,lO),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function lP(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tO(t_(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rU?rU[n](e):void 0,has:(e,t)=>t in e||t in rU})):e.proxy}function lD(e,t=!0){return w(e)?e.displayName||e.name:e.name||t&&e.__name}let lF=(e,t)=>(function(e,t=!1){let n,r;return w(e)?n=e:(n=e.get,r=e.set),new tV(n,r,t)})(e,lw);function l$(e,t,n){try{i5(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&<(n)&&(n=[n]),lo(e,t,n);if(!A(t)||T(t))return lo(e,null,t);if(lt(t))return lo(e,null,[t]);return lo(e,t)}finally{i5(1)}}function lL(){}function lV(e,t,n,r){let i=n[r];if(i&&lB(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l}function lB(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(U(n[e],t[e]))return!1;return i8>0&&i6&&i6.push(e),!0}let lj="3.5.28",lU=g,lH=null,lq,lW=g,lK={createComponentInstance:l_,setupComponent:lN,renderComponentRoot:iv,setCurrentRenderingInstance:ni,isVNode:lt,normalizeVNode:lh,getComponentPublicInstance:lP,ensureValidVNode:rV,pushWarningContext:function(e){},popWarningContext:function(){}},lz=null,lJ=null,lG=null,lQ="u">typeof window&&window.trustedTypes;if(lQ)try{p=lQ.createPolicy("vue",{createHTML:e=>e})}catch(e){}let lX=p?e=>p.createHTML(e):e=>e,lZ="u">typeof document?document:null,lY=lZ&&lZ.createElement("template"),l0={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?lZ.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?lZ.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?lZ.createElement(e,{is:n}):lZ.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>lZ.createTextNode(e),createComment:e=>lZ.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>lZ.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{lY.innerHTML=lX("svg"===r?`<svg>${e}</svg>`:"mathml"===r?`<math>${e}</math>`:e);let i=lY.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},l1="transition",l2="animation",l6=Symbol("_vtc"),l3={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},l4=S({},nL,l3),l8=((og=(e,{slots:t})=>l$(nj,l7(e),t)).displayName="Transition",og.props=l4,og),l5=(e,t=[])=>{T(e)?e.forEach(e=>e(...t)):e&&e(...t)},l9=e=>!!e&&(T(e)?e.some(e=>e.length>1):e.length>1);function l7(e){let t={};for(let n in e)n in l3||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(A(e))return[function(e){return K(e)}(e.enter),function(e){return K(e)}(e.leave)];let t=function(e){return K(e)}(e);return[t,t]}}(i),m=f&&f[0],g=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:x,onLeaveCancelled:C,onBeforeAppear:k=y,onAppear:T=b,onAppearCancelled:w=_}=t,N=(e,t,n,r)=>{e._enterCancelled=r,st(e,t?u:o),st(e,t?c:s),n&&n()},E=(e,t)=>{e._isLeaving=!1,st(e,d),st(e,h),st(e,p),t&&t()},R=e=>(t,n)=>{let i=e?T:b,s=()=>N(t,e,n);l5(i,[t,s]),sn(()=>{st(t,e?a:l),se(t,e?u:o),l9(i)||si(t,r,m,s)})};return S(t,{onBeforeEnter(e){l5(y,[e]),se(e,l),se(e,s)},onBeforeAppear(e){l5(k,[e]),se(e,a),se(e,c)},onEnter:R(!1),onAppear:R(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>E(e,t);se(e,d),e._enterCancelled?(se(e,p),sa(e)):(sa(e),se(e,p)),sn(()=>{e._isLeaving&&(st(e,d),se(e,h),l9(x)||si(e,r,g,n))}),l5(x,[e,n])},onEnterCancelled(e){N(e,!1,void 0,!0),l5(_,[e])},onAppearCancelled(e){N(e,!0,void 0,!0),l5(w,[e])},onLeaveCancelled(e){E(e),l5(C,[e])}})}function se(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[l6]||(e[l6]=new Set)).add(t)}function st(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[l6];n&&(n.delete(t),n.size||(e[l6]=void 0))}function sn(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let sr=0;function si(e,t,n,r){let i=e._endId=++sr,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=sl(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,p),l()},p=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u<a&&d()},o+1),e.addEventListener(c,p)}function sl(e,t){let n=window.getComputedStyle(e),r=e=>(n[e]||"").split(", "),i=r(`${l1}Delay`),l=r(`${l1}Duration`),s=ss(i,l),o=r(`${l2}Delay`),a=r(`${l2}Duration`),c=ss(o,a),u=null,d=0,p=0;t===l1?s>0&&(u=l1,d=s,p=l.length):t===l2?c>0&&(u=l2,d=c,p=a.length):p=(u=(d=Math.max(s,c))>0?s>c?l1:l2:null)?u===l1?l.length:a.length:0;let h=u===l1&&/\b(?:transform|all)(?:,|$)/.test(r(`${l1}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:h}}function ss(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>so(t)+so(e[n])))}function so(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function sa(e){return(e?e.ownerDocument:document).body.offsetHeight}let sc=Symbol("_vod"),su=Symbol("_vsh"),sd={name:"show",beforeMount(e,{value:t},{transition:n}){e[sc]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):sp(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),sp(e,!0),r.enter(e)):r.leave(e,()=>{sp(e,!1)}):sp(e,t))},beforeUnmount(e,{value:t}){sp(e,t)}};function sp(e,t){e.style.display=t?e[sc]:"none",e[su]=!t}let sh=Symbol("");function sf(e){let t=lx();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>sm(e,n))},r=()=>{let r=e(t.proxy);t.ce?sm(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)sm(t.el,n);else if(t.type===iZ)t.children.forEach(t=>e(t,n));else if(t.type===i1){let{el:e,anchor:r}=t;for(;e&&(sm(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};rS(()=>{t9(r)}),r_(()=>{nb(r,g,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),rk(()=>e.disconnect())})}function sm(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[sh]=i}}let sg=/(?:^|;)\s*display\s*:/,sv=/\s*!important$/;function sy(e,t,n){if(T(n))n.forEach(n=>sy(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=s_[t];if(n)return n;let r=$(t);if("filter"!==r&&r in e)return s_[t]=r;r=B(r);for(let n=0;n<sb.length;n++){let i=sb[n]+r;if(i in e)return s_[t]=i}return t}(e,t);sv.test(n)?e.setProperty(V(r),n.replace(sv,""),"important"):e[r]=n}}let sb=["Webkit","Moz","ms"],s_={},sS="http://www.w3.org/1999/xlink";function sx(e,t,n,r,i,l=es(t)){if(r&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(sS,t.slice(6,t.length)):e.setAttributeNS(sS,t,n);else null==n||l&&!(n||""===n)?e.removeAttribute(t):e.setAttribute(t,l?"":E(n)?String(n):n)}function sC(e,t,n,r,i){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?lX(n):n);return}let l=e.tagName;if("value"===t&&"PROGRESS"!==l&&!l.includes("-")){let r="OPTION"===l?e.getAttribute("value")||"":e.value,i=null==n?"checkbox"===e.type?"on":"":String(n);r===i&&"_value"in e||(e.value=i),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let r=typeof e[t];if("boolean"===r){var o;n=!!(o=n)||""===o}else null==n&&"string"===r?(n="",s=!0):"number"===r&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(i||t)}function sk(e,t,n,r){e.addEventListener(t,n,r)}let sT=Symbol("_vei"),sw=/(?:Once|Passive|Capture)$/,sN=0,sE=Promise.resolve(),sA=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),sR=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[l6])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=N(n),l=!1;if(n&&!i){if(t)if(N(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&sy(r,t,"")}else for(let e in t)null==n[e]&&sy(r,e,"");for(let e in n)"display"===e&&(l=!0),sy(r,e,n[e])}else if(i){if(t!==n){let e=r[sh];e&&(n+=";"+e),r.cssText=n,l=sg.test(n)}}else t&&e.removeAttribute("style");sc in e&&(e[sc]=l?r.display:"",e[su]&&(r.display="none"))}(e,n,r):b(t)?_(t)||function(e,t,n,r=null){let i=e[sT]||(e[sT]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t;if(sw.test(e)){let n;for(t={};n=e.match(sw);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):V(e.slice(2)),t]}(t);if(n){var s,o;let l;sk(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();tQ(function(e,t){if(!T(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,l.value),o,5,[e])}).value=s,l.attached=sN||(sE.then(()=>sN=0),sN=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&sA(t)&&w(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(sA(t)&&N(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!N(r))?sC(e,$(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),sx(e,t,r,s)):(sC(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||sx(e,t,r,s,l,"value"!==t))},sI={};function sO(e,t,n){let r,i=nJ(e,t);"[object Object]"===(r=i,I.call(r))&&(i=S({},i,t));class l extends sD{constructor(e){super(i,e,n)}}return l.def=i,l}let sM=(e,t)=>sO(e,t,od),sP="u">typeof HTMLElement?HTMLElement:class{};class sD extends sP{constructor(e,t={},n=ou){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==ou?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(S({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof sD){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,t4(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!T(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=K(this._props[e])),(n||(n=Object.create(null)))[$(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)k(this,e)||Object.defineProperty(this,e,{get:()=>tA(t[e])})}_resolveProps(e){let{props:t}=e,n=T(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map($))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):sI,r=$(e);t&&this._numberProps&&this._numberProps[r]&&(n=K(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===sI?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(V(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(V(e),t+""):t||this.removeAttribute(V(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),oa(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=lo(this._def,S(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],I.call(n))?S({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),V(e)!==e&&t(V(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let r=document.createElement("style");n&&r.setAttribute("nonce",n),r.textContent=e[t],this.shadowRoot.prepend(r)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute("name")||"default",l=this._slots[i],s=r.parentNode;if(l)for(let e of l){if(t&&1===e.nodeType){let n,r=t+"-s",i=document.createTreeWalker(e,1);for(e.setAttribute(r,"");n=i.nextNode();)n.setAttribute(r,"")}s.insertBefore(e,r)}else for(;r.firstChild;)s.insertBefore(r.firstChild,r);s.removeChild(r)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll("slot");for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e){this._applyStyles(e.styles,e)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return!1!==this._def.shadowRoot}_removeChildStyle(e){}}function sF(e){let t=lx(),n=t&&t.ce;return n||null}function s$(){let e=sF();return e&&e.shadowRoot}function sL(e="$style"){{let t=lx();if(!t)return f;let n=t.type.__cssModules;if(!n)return f;let r=n[e];return r||f}}let sV=new WeakMap,sB=new WeakMap,sj=Symbol("_moveCb"),sU=Symbol("_enterCb"),sH=(ov={name:"TransitionGroup",props:S({},l4,{tag:String,moveClass:String}),setup(e,{slots:t}){let n,r,i=lx(),l=nF();return rx(()=>{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[l6];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=sl(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(sq),n.forEach(sW);let r=n.filter(sK);sa(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;se(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[sj]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[sj]=null,st(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tb(e),o=l7(s),a=s.tag||iZ;if(n=[],r)for(let e=0;e<r.length;e++){let t=r[e];t.el&&t.el instanceof Element&&(n.push(t),nK(t,nH(t,o,l,i)),sV.set(t,sz(t.el)))}r=t.default?nz(t.default()):[];for(let e=0;e<r.length;e++){let t=r[e];null!=t.key&&nK(t,nH(t,o,l,i))}return lo(a,null,r)}}},delete ov.props.mode,ov);function sq(e){let t=e.el;t[sj]&&t[sj](),t[sU]&&t[sU]()}function sW(e){sB.set(e,sz(e.el))}function sK(e){let t=sV.get(e),n=sB.get(e),r=t.left-n.left,i=t.top-n.top;if(r||i){let t=e.el,n=t.style,l=t.getBoundingClientRect(),s=1,o=1;return t.offsetWidth&&(s=l.width/t.offsetWidth),t.offsetHeight&&(o=l.height/t.offsetHeight),Number.isFinite(s)&&0!==s||(s=1),Number.isFinite(o)&&0!==o||(o=1),.01>Math.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function sz(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let sJ=e=>{let t=e.props["onUpdate:modelValue"]||!1;return T(t)?e=>H(t,e):t};function sG(e){e.target.composing=!0}function sQ(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let sX=Symbol("_assign");function sZ(e,t,n){return t&&(e=e.trim()),n&&(e=W(e)),e}let sY={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[sX]=sJ(i);let l=r||i.props&&"number"===i.props.type;sk(e,t?"change":"input",t=>{t.target.composing||e[sX](sZ(e.value,n,l))}),(n||l)&&sk(e,"change",()=>{e.value=sZ(e.value,n,l)}),t||(sk(e,"compositionstart",sG),sk(e,"compositionend",sQ),sk(e,"change",sQ))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[sX]=sJ(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?W(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a))return;e.value=a}}},s0={deep:!0,created(e,t,n){e[sX]=sJ(n),sk(e,"change",()=>{let t=e._modelValue,n=s4(e),r=e.checked,i=e[sX];if(T(t)){let e=ea(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,I.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(s8(e,r))}})},mounted:s1,beforeUpdate(e,t,n){e[sX]=sJ(n),s1(e,t,n)}};function s1(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,T(t))i=ea(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,I.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=eo(t,s8(e,!0))}}e.checked!==i&&(e.checked=i)}let s2={created(e,{value:t},n){e.checked=eo(t,n.props.value),e[sX]=sJ(n),sk(e,"change",()=>{e[sX](s4(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[sX]=sJ(r),t!==n&&(e.checked=eo(t,r.props.value))}},s6={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i,l="[object Set]"===(i=t,I.call(i));sk(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?W(s4(e)):s4(e));e[sX](e.multiple?l?new Set(t):t:t[0]),e._assigning=!0,t4(()=>{e._assigning=!1})}),e[sX]=sJ(r)},mounted(e,{value:t}){s3(e,t)},beforeUpdate(e,t,n){e[sX]=sJ(n)},updated(e,{value:t}){e._assigning||s3(e,t)}};function s3(e,t){let n,r=e.multiple,i=T(t);if(!r||i||"[object Set]"===(n=t,I.call(n))){for(let n=0,l=e.options.length;n<l;n++){let l=e.options[n],s=s4(l);if(r)if(i){let e=typeof s;"string"===e||"number"===e?l.selected=t.some(e=>String(e)===String(s)):l.selected=ea(t,s)>-1}else l.selected=t.has(s);else if(eo(s4(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function s4(e){return"_value"in e?e._value:e.value}function s8(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}let s5={created(e,t,n){s7(e,t,n,null,"created")},mounted(e,t,n){s7(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){s7(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){s7(e,t,n,r,"updated")}};function s9(e,t){switch(e){case"SELECT":return s6;case"TEXTAREA":return sY;default:switch(t){case"checkbox":return s0;case"radio":return s2;default:return sY}}}function s7(e,t,n,r,i){let l=s9(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let oe=["ctrl","shift","alt","meta"],ot={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>oe.some(n=>e[`${n}Key`]&&!t.includes(n))},on=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;e<t.length;e++){let r=ot[t[e]];if(r&&r(n,t))return}return e(n,...r)})},or={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},oi=(e,t)=>{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=V(n.key);if(t.some(e=>e===r||or[e]===r))return e(n)})},ol=S({patchProp:sR},l0),os=!1;function oo(){return c=os?c:i$(ol),os=!0,c}let oa=(...e)=>{(c||(c=iF(ol))).render(...e)},oc=(...e)=>{oo().hydrate(...e)},ou=(...e)=>{let t=(c||(c=iF(ol))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=oh(e);if(!r)return;let i=t._component;w(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,op(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},od=(...e)=>{let t=oo().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=oh(e);if(t)return n(t,!0,op(t))},t};function op(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function oh(e){return N(e)?document.querySelector(e):e}let of=!1,om=()=>{of||(of=!0,sY.getSSRProps=({value:e})=>({value:e}),s2.getSSRProps=({value:e},t)=>{if(t.props&&eo(t.props.value,e))return{checked:!0}},s0.getSSRProps=({value:e},t)=>{if(T(e)){if(t.props&&ea(e,t.props.value)>-1)return{checked:!0}}else{let n;if("[object Set]"===(n=e,I.call(n))){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}},s5.getSSRProps=(e,t)=>{if("string"!=typeof t.type)return;let n=s9(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)},sd.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}})};var og,ov,oy,ob=Object.freeze({__proto__:null,BaseTransition:nj,BaseTransitionPropsValidators:nL,Comment:i0,DeprecationTypes:lG,EffectScope:eh,ErrorCodes:tJ,ErrorTypeStrings:lH,Fragment:iZ,KeepAlive:ru,ReactiveEffect:ey,Static:i1,Suspense:iK,Teleport:nI,Text:iY,TrackOpTypes:tB,Transition:l8,TransitionGroup:sH,TriggerOpTypes:tj,VueElement:sD,assertNumber:tz,callWithAsyncErrorHandling:tQ,callWithErrorHandling:tG,camelize:$,capitalize:B,cloneVNode:lc,compatUtils:lJ,computed:lF,createApp:ou,createBlock:le,createCommentVNode:lp,createElementBlock:i7,createElementVNode:ls,createHydrationRenderer:i$,createPropsRestProxy:r4,createRenderer:iF,createSSRApp:od,createSlots:r$,createStaticVNode:ld,createTextVNode:lu,createVNode:lo,customRef:tP,defineAsyncComponent:ro,defineComponent:nJ,defineCustomElement:sO,defineEmits:rz,defineExpose:rJ,defineModel:rX,defineOptions:rG,defineProps:rK,defineSSRCustomElement:sM,defineSlots:rQ,devtools:lq,effect:eN,effectScope:ef,getCurrentInstance:lx,getCurrentScope:em,getCurrentWatcher:tq,getTransitionRawChildren:nz,guardReactiveProps:la,h:l$,handleError:tX,hasInjectionContext:nh,hydrate:oc,hydrateOnIdle:rn,hydrateOnInteraction:rl,hydrateOnMediaQuery:ri,hydrateOnVisible:rr,initCustomFormatter:lL,initDirectivesForSSR:om,inject:np,isMemoSame:lB,isProxy:ty,isReactive:tm,isReadonly:tg,isRef:tC,isRuntimeOnly:lR,isShallow:tv,isVNode:lt,markRaw:t_,mergeDefaults:r6,mergeModels:r3,mergeProps:lg,nextTick:t4,nodeOps:l0,normalizeClass:ee,normalizeProps:et,normalizeStyle:G,onActivated:rp,onBeforeMount:rb,onBeforeUnmount:rC,onBeforeUpdate:rS,onDeactivated:rh,onErrorCaptured:rE,onMounted:r_,onRenderTracked:rN,onRenderTriggered:rw,onScopeDispose:eg,onServerPrefetch:rT,onUnmounted:rk,onUpdated:rx,onWatcherCleanup:tW,openBlock:i3,patchProp:sR,popScopeId:ns,provide:nd,proxyRefs:tO,pushScopeId:nl,queuePostFlushCb:t9,reactive:tu,readonly:tp,ref:tk,registerRuntimeCompiler:lA,render:oa,renderList:rF,renderSlot:rL,resolveComponent:rR,resolveDirective:rM,resolveDynamicComponent:rO,resolveFilter:lz,resolveTransitionHooks:nH,setBlockTracking:i5,setDevtoolsHook:lW,setTransitionHooks:nK,shallowReactive:td,shallowReadonly:th,shallowRef:tT,ssrContextKey:nf,ssrUtils:lK,stop:eE,toDisplayString:eu,toHandlerKey:j,toHandlers:rB,toRaw:tb,toRef:tL,toRefs:tD,toValue:tR,transformVNodeArgs:lr,triggerRef:tE,unref:tA,useAttrs:r0,useCssModule:sL,useCssVars:sf,useHost:sF,useId:nG,useModel:id,useSSRContext:nm,useShadowRoot:s$,useSlots:rY,useTemplateRef:nX,useTransitionState:nF,vModelCheckbox:s0,vModelDynamic:s5,vModelRadio:s2,vModelSelect:s6,vModelText:sY,vShow:sd,version:lj,warn:lU,watch:nb,watchEffect:ng,watchPostEffect:nv,watchSyncEffect:ny,withAsyncContext:r8,withCtx:na,withDefaults:rZ,withDirectives:nc,withKeys:oi,withMemo:lV,withModifiers:on,withScopeId:no});let o_=Symbol(""),oS=Symbol(""),ox=Symbol(""),oC=Symbol(""),ok=Symbol(""),oT=Symbol(""),ow=Symbol(""),oN=Symbol(""),oE=Symbol(""),oA=Symbol(""),oR=Symbol(""),oI=Symbol(""),oO=Symbol(""),oM=Symbol(""),oP=Symbol(""),oD=Symbol(""),oF=Symbol(""),o$=Symbol(""),oL=Symbol(""),oV=Symbol(""),oB=Symbol(""),oj=Symbol(""),oU=Symbol(""),oH=Symbol(""),oq=Symbol(""),oW=Symbol(""),oK=Symbol(""),oz=Symbol(""),oJ=Symbol(""),oG=Symbol(""),oQ=Symbol(""),oX=Symbol(""),oZ=Symbol(""),oY=Symbol(""),o0=Symbol(""),o1=Symbol(""),o2=Symbol(""),o6=Symbol(""),o3=Symbol(""),o4={[o_]:"Fragment",[oS]:"Teleport",[ox]:"Suspense",[oC]:"KeepAlive",[ok]:"BaseTransition",[oT]:"openBlock",[ow]:"createBlock",[oN]:"createElementBlock",[oE]:"createVNode",[oA]:"createElementVNode",[oR]:"createCommentVNode",[oI]:"createTextVNode",[oO]:"createStaticVNode",[oM]:"resolveComponent",[oP]:"resolveDynamicComponent",[oD]:"resolveDirective",[oF]:"resolveFilter",[o$]:"withDirectives",[oL]:"renderList",[oV]:"renderSlot",[oB]:"createSlots",[oj]:"toDisplayString",[oU]:"mergeProps",[oH]:"normalizeClass",[oq]:"normalizeStyle",[oW]:"normalizeProps",[oK]:"guardReactiveProps",[oz]:"toHandlers",[oJ]:"camelize",[oG]:"capitalize",[oQ]:"toHandlerKey",[oX]:"setBlockTracking",[oZ]:"pushScopeId",[oY]:"popScopeId",[o0]:"withCtx",[o1]:"unref",[o2]:"isRef",[o6]:"withMemo",[o3]:"isMemoSame"},o8={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function o5(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=o8){var d,p,h,f;return e&&(o?(e.helper(oT),e.helper((d=e.inSSR,p=c,d||p?ow:oN))):e.helper((h=e.inSSR,f=c,h||f?oE:oA)),s&&e.helper(o$)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function o9(e,t=o8){return{type:17,loc:t,elements:e}}function o7(e,t=o8){return{type:15,loc:t,properties:e}}function ae(e,t){return{type:16,loc:o8,key:N(e)?at(e,!0):e,value:t}}function at(e,t=!1,n=o8,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function an(e,t=o8){return{type:8,loc:t,children:e}}function ar(e,t=[],n=o8){return{type:14,loc:n,callee:e,arguments:t}}function ai(e,t,n=!1,r=!1,i=o8){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function al(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:o8}}function as(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?oE:oA)),t(oT),t((l=e.isComponent,r||l?ow:oN))}}let ao=new Uint8Array([123,123]),aa=new Uint8Array([125,125]);function ac(e){return e>=97&&e<=122||e>=65&&e<=90}function au(e){return 32===e||10===e||9===e||12===e||13===e}function ad(e){return 47===e||62===e||au(e)}function ap(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}let ah={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])};function af(e){throw e}function am(e){}function ag(e,t,n,r){let i=SyntaxError(String(`https://vuejs.org/error-reference/#compiler-${e}`));return i.code=e,i.loc=t,i}let av=e=>4===e.type&&e.isStatic;function ay(e){switch(e){case"Teleport":case"teleport":return oS;case"Suspense":case"suspense":return ox;case"KeepAlive":case"keep-alive":return oC;case"BaseTransition":case"base-transition":return ok}}let ab=/^$|^\d|[^\$\w\xA0-\uFFFF]/,a_=/[A-Za-z_$\xA0-\uFFFF]/,aS=/[\.\?\w$\xA0-\uFFFF]/,ax=/\s+[.[]\s*|\s*[.[]\s+/g,aC=e=>4===e.type?e.content:e.loc.source,ak=e=>{let t=aC(e).trim().replace(ax,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e<t.length;e++){let o=t.charAt(e);switch(n){case 0:if("["===o)r.push(n),n=1,i++;else if("("===o)r.push(n),n=2,l++;else if(!(0===e?a_:aS).test(o))return!1;break;case 1:"'"===o||'"'===o||"`"===o?(r.push(n),n=3,s=o):"["===o?i++:"]"!==o||--i||(n=r.pop());break;case 2:if("'"===o||'"'===o||"`"===o)r.push(n),n=3,s=o;else if("("===o)l++;else if(")"===o){if(e===t.length-1)return!1;--l||(n=r.pop())}break;case 3:o===s&&(n=r.pop(),s=null)}}return!i&&!l},aT=/^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function aw(e,t,n=!1){for(let r=0;r<e.props.length;r++){let i=e.props[r];if(7===i.type&&(n||i.exp)&&(N(t)?i.name===t:t.test(i.name)))return i}}function aN(e,t,n=!1,r=!1){for(let i=0;i<e.props.length;i++){let l=e.props[i];if(6===l.type){if(n)continue;if(l.name===t&&(l.value||r))return l}else if("bind"===l.name&&(l.exp||r)&&aE(l.arg,t))return l}}function aE(e,t){return!!(e&&av(e)&&e.content===t)}function aA(e){return 5===e.type||2===e.type}function aR(e){return 7===e.type&&"pre"===e.name}function aI(e){return 7===e.type&&"slot"===e.name}function aO(e){return 1===e.type&&3===e.tagType}function aM(e){return 1===e.type&&2===e.tagType}let aP=new Set([oW,oK]);function aD(e,t,n){let r,i,l=13===e.type?e.props:e.arguments[2],s=[];if(l&&!N(l)&&14===l.type){let e=function e(t,n=[]){if(t&&!N(t)&&14===t.type){let r=t.callee;if(!N(r)&&aP.has(r))return e(t.arguments[0],n.concat(t))}return[t,n]}(l);l=e[0],i=(s=e[1])[s.length-1]}if(null==l||N(l))r=o7([t]);else if(14===l.type){let e=l.arguments[0];N(e)||15!==e.type?l.callee===oz?r=ar(n.helper(oU),[o7([t]),l]):l.arguments.unshift(o7([t])):aF(t,e)||e.properties.unshift(t),r||(r=l)}else 15===l.type?(aF(t,l)||l.properties.unshift(t),r=l):(r=ar(n.helper(oU),[o7([t]),l]),i&&i.callee===oK&&(i=s[s.length-2]));13===e.type?i?i.arguments[0]=r:e.props=r:i?i.arguments[0]=r:e.arguments[2]=r}function aF(e,t){let n=!1;if(4===e.key.type){let r=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===r)}return n}function a$(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let aL=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function aV(e){for(let t=0;t<e.length;t++)if(!au(e.charCodeAt(t)))return!1;return!0}function aB(e){return 2===e.type&&aV(e.content)||12===e.type&&aB(e.content)}function aj(e){return 3===e.type||aB(e)}let aU={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:y,isPreTag:y,isIgnoreNewlineTag:y,isCustomElement:y,onError:af,onWarn:am,comments:!1,prefixIdentifiers:!1},aH=aU,aq=null,aW="",aK=null,az=null,aJ="",aG=-1,aQ=-1,aX=0,aZ=!1,aY=null,a0=[],a1=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=ao,this.delimiterClose=aa,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=ao,this.delimiterClose=aa}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1<n;){let r=t+n>>>1;this.newlines[r]<e?t=r:n=r}i=t}else for(let t=r-1;t>=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?ad(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||au(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.sectionStart=t+2,this.stateInClosingTagName(e),this.inRCDATA=!1;return}this.sequenceIndex=0}(32|e)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:0===this.sequenceIndex?this.currentSequence!==ah.TitleEnd&&(this.currentSequence!==ah.TextareaEnd||this.inSFCRoot)?this.fastForwardTo(60)&&(this.sequenceIndex=1):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.sequenceIndex=Number(60===e)}stateCDATASequence(e){e===ah.Cdata[this.sequenceIndex]?++this.sequenceIndex===ah.Cdata.length&&(this.state=28,this.currentSequence=ah.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){let t=this.buffer.charCodeAt(this.index);if(10===t&&this.newlines.push(this.index),t===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===ah.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):0===this.sequenceIndex?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,t){this.enterRCDATA(e,t),this.state=31}enterRCDATA(e,t){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=t}stateBeforeTagName(e){33===e?(this.state=22,this.sectionStart=this.index+1):63===e?(this.state=24,this.sectionStart=this.index+1):ac(e)?(this.sectionStart=this.index,0===this.mode?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:116===e?this.state=30:this.state=115===e?29:6):47===e?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){ad(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(ad(e)){let t=this.buffer.slice(this.sectionStart,this.index);"template"!==t&&this.enterRCDATA(ap("</"+t),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){au(e)||(62===e?(this.state=1,this.sectionStart=this.index+1):(this.state=ac(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(62===e||au(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){62===e&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){62===e?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):47===e?this.state=7:60===e&&47===this.peek()?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):au(e)||this.handleAttrStart(e)}handleAttrStart(e){118===e&&45===this.peek()?(this.state=13,this.sectionStart=this.index):46===e||58===e||64===e||35===e?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){62===e?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):au(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){(61===e||ad(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e))}stateInDirName(e){61===e||ad(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):58===e?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):46===e&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){61===e||ad(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):91===e?this.state=15:46===e&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){93===e?this.state=14:(61===e||ad(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e))}stateInDirModifier(e){61===e||ad(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):46===e&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){61===e?this.state=18:47===e||62===e?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):au(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){34===e?(this.state=19,this.sectionStart=this.index+1):39===e?(this.state=20,this.sectionStart=this.index+1):au(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,t){(e===t||this.fastForwardTo(t))&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(34===t?3:2,this.index+1),this.state=11)}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){au(e)||62===e?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):(39===e||60===e||61===e||96===e)&&this.cbs.onerr(18,this.index)}stateBeforeDeclaration(e){91===e?(this.state=26,this.sequenceIndex=0):this.state=45===e?25:23}stateInDeclaration(e){(62===e||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(62===e||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){45===e?(this.state=28,this.currentSequence=ah.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(62===e||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===ah.ScriptEnd[3]?this.startSpecial(ah.ScriptEnd,4):e===ah.StyleEnd[3]?this.startSpecial(ah.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===ah.TitleEnd[3]?this.startSpecial(ah.TitleEnd,4):e===ah.TextareaEnd[3]?this.startSpecial(ah.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){}stateInEntity(){}parse(e){for(this.buffer=e;this.index<this.buffer.length;){let e=this.buffer.charCodeAt(this.index);switch(10===e&&33!==this.state&&this.newlines.push(this.index),this.state){case 1:this.stateText(e);break;case 2:this.stateInterpolationOpen(e);break;case 3:this.stateInterpolation(e);break;case 4:this.stateInterpolationClose(e);break;case 31:this.stateSpecialStartSequence(e);break;case 32:this.stateInRCDATA(e);break;case 26:this.stateCDATASequence(e);break;case 19:this.stateInAttrValueDoubleQuotes(e);break;case 12:this.stateInAttrName(e);break;case 13:this.stateInDirName(e);break;case 14:this.stateInDirArg(e);break;case 15:this.stateInDynamicDirArg(e);break;case 16:this.stateInDirModifier(e);break;case 28:this.stateInCommentLike(e);break;case 27:this.stateInSpecialComment(e);break;case 11:this.stateBeforeAttrName(e);break;case 6:this.stateInTagName(e);break;case 34:this.stateInSFCRootTagName(e);break;case 9:this.stateInClosingTagName(e);break;case 5:this.stateBeforeTagName(e);break;case 17:this.stateAfterAttrName(e);break;case 20:this.stateInAttrValueSingleQuotes(e);break;case 18:this.stateBeforeAttrValue(e);break;case 8:this.stateBeforeClosingTagName(e);break;case 10:this.stateAfterClosingTagName(e);break;case 29:this.stateBeforeSpecialS(e);break;case 30:this.stateBeforeSpecialT(e);break;case 21:this.stateInAttrValueNoQuotes(e);break;case 7:this.stateInSelfClosingTag(e);break;case 23:this.stateInDeclaration(e);break;case 22:this.stateBeforeDeclaration(e);break;case 25:this.stateBeforeComment(e);break;case 24:this.stateInProcessingInstruction(e);break;case 33:this.stateInEntity()}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(1===this.state||32===this.state&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(19===this.state||20===this.state||21===this.state)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length;this.sectionStart>=e||(28===this.state?this.currentSequence===ah.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(a0,{onerr:co,ontext(e,t){a8(a3(e,t),e,t)},ontextentity(e,t,n){a8(e,t,n)},oninterpolation(e,t){if(aZ)return a8(a3(e,t),e,t);let n=e+a1.delimiterOpen.length,r=t-a1.delimiterClose.length;for(;au(aW.charCodeAt(n));)n++;for(;au(aW.charCodeAt(r-1));)r--;let i=a3(n,r);i.includes("&")&&(i=aH.decodeEntities(i,!1)),cr({type:5,content:cs(i,!1,ci(n,r)),loc:ci(e,t)})},onopentagname(e,t){let n=a3(e,t);aK={type:1,tag:n,ns:aH.getNamespace(n,a0[0],aH.ns),tagType:0,props:[],children:[],loc:ci(e-1,t),codegenNode:void 0}},onopentagend(e){a4(e)},onclosetag(e,t){let n=a3(e,t);if(!aH.isVoidTag(n)){let r=!1;for(let e=0;e<a0.length;e++)if(a0[e].tag.toLowerCase()===n.toLowerCase()){r=!0,e>0&&a0[0].loc.start.offset;for(let n=0;n<=e;n++)a5(a0.shift(),t,n<e);break}r||a9(e,60)}},onselfclosingtag(e){let t=aK.tag;aK.isSelfClosing=!0,a4(e),a0[0]&&a0[0].tag===t&&a5(a0.shift(),e)},onattribname(e,t){az={type:6,name:a3(e,t),nameLoc:ci(e,t),value:void 0,loc:ci(e)}},ondirname(e,t){let n=a3(e,t),r="."===n||":"===n?"bind":"@"===n?"on":"#"===n?"slot":n.slice(2);if(aZ||""===r)az={type:6,name:n,nameLoc:ci(e,t),value:void 0,loc:ci(e)};else if(az={type:7,name:r,rawName:n,exp:void 0,arg:void 0,modifiers:"."===n?[at("prop")]:[],loc:ci(e)},"pre"===r){aZ=a1.inVPre=!0,aY=aK;let e=aK.props;for(let t=0;t<e.length;t++)7===e[t].type&&(e[t]=function(e){let t={type:6,name:e.rawName,nameLoc:ci(e.loc.start.offset,e.loc.start.offset+e.rawName.length),value:void 0,loc:e.loc};if(e.exp){let n=e.exp.loc;n.end.offset<e.loc.end.offset&&(n.start.offset--,n.start.column--,n.end.offset++,n.end.column++),t.value={type:2,content:e.exp.content,loc:n}}return t}(e[t]))}},ondirarg(e,t){if(e===t)return;let n=a3(e,t);if(aZ&&!aR(az))az.name+=n,cl(az.nameLoc,t);else{let r="["!==n[0];az.arg=cs(r?n:n.slice(1,-1),r,ci(e,t),3*!!r)}},ondirmodifier(e,t){let n=a3(e,t);if(aZ&&!aR(az))az.name+="."+n,cl(az.nameLoc,t);else if("slot"===az.name){let e=az.arg;e&&(e.content+="."+n,cl(e.loc,t))}else{let r=at(n,!0,ci(e,t));az.modifiers.push(r)}},onattribdata(e,t){aJ+=a3(e,t),aG<0&&(aG=e),aQ=t},onattribentity(e,t,n){aJ+=e,aG<0&&(aG=t),aQ=n},onattribnameend(e){let t=a3(az.loc.start.offset,e);7===az.type&&(az.rawName=t),aK.props.some(e=>(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){aK&&az&&(cl(az.loc,t),0!==e&&(aJ.includes("&")&&(aJ=aH.decodeEntities(aJ,!0)),6===az.type?("class"===az.name&&(aJ=cn(aJ).trim()),az.value={type:2,content:aJ,loc:1===e?ci(aG,aQ):ci(aG-1,aQ+1)},a1.inSFCRoot&&"template"===aK.tag&&"lang"===az.name&&aJ&&"html"!==aJ&&a1.enterRCDATA(ap("</template"),0)):(az.exp=cs(aJ,!1,ci(aG,aQ),0,0),"for"===az.name&&(az.forParseResult=function(e){let t=e.loc,n=e.content,r=n.match(aL);if(!r)return;let[,i,l]=r,s=(e,n,r=!1)=>{let i=t.start.offset+n,l=i+e.length;return cs(e,!1,ci(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(a6,"").trim(),c=i.indexOf(a),u=a.match(a2);if(u){let e;a=a.replace(a2,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(az.exp)))),(7!==az.type||"pre"!==az.name)&&aK.props.push(az)),aJ="",aG=aQ=-1},oncomment(e,t){aH.comments&&cr({type:3,content:a3(e,t),loc:ci(e-4,t+3)})},onend(){let e=aW.length;for(let t=0;t<a0.length;t++)a5(a0[t],e-1),a0[t].loc.start.offset},oncdata(e,t){0!==a0[0].ns&&a8(a3(e,t),e,t)},onprocessinginstruction(e){(a0[0]?a0[0].ns:aH.ns)===0&&co(21,e-1)}}),a2=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,a6=/^\(|\)$/g;function a3(e,t){return aW.slice(e,t)}function a4(e){a1.inSFCRoot&&(aK.innerLoc=ci(e+1,e+1)),cr(aK);let{tag:t,ns:n}=aK;0===n&&aH.isPreTag(t)&&aX++,aH.isVoidTag(t)?a5(aK,e):(a0.unshift(aK),(1===n||2===n)&&(a1.inXML=!0)),aK=null}function a8(e,t,n){{let t=a0[0]&&a0[0].tag;"script"!==t&&"style"!==t&&e.includes("&")&&(e=aH.decodeEntities(e,!1))}let r=a0[0]||aq,i=r.children[r.children.length-1];i&&2===i.type?(i.content+=e,cl(i.loc,n)):r.children.push({type:2,content:e,loc:ci(t,n)})}function a5(e,t,n=!1){n?cl(e.loc,a9(t,60)):cl(e.loc,function(e){let t=e;for(;62!==aW.charCodeAt(t)&&t<aW.length-1;)t++;return t}(t)+1),a1.inSFCRoot&&(e.children.length?e.innerLoc.end=S({},e.children[e.children.length-1].loc.end):e.innerLoc.end=S({},e.innerLoc.start),e.innerLoc.source=a3(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:r,ns:i,children:l}=e;if(!aZ&&("slot"===r?e.tagType=2:!function({tag:e,props:t}){if("template"===e){for(let e=0;e<t.length;e++)if(7===t[e].type&&a7.has(t[e].name))return!0}return!1}(e)?function({tag:e,props:t}){var n;if(aH.isCustomElement(e))return!1;if("component"===e||(n=e.charCodeAt(0))>64&&n<91||ay(e)||aH.isBuiltInComponent&&aH.isBuiltInComponent(e)||aH.isNativeTag&&!aH.isNativeTag(e))return!0;for(let e=0;e<t.length;e++){let n=t[e];if(6===n.type&&"is"===n.name&&n.value&&n.value.content.startsWith("vue:"))return!0}return!1}(e)&&(e.tagType=1):e.tagType=3),a1.inRCDATA||(e.children=ct(l)),0===i&&aH.isIgnoreNewlineTag(r)){let e=l[0];e&&2===e.type&&(e.content=e.content.replace(/^\r?\n/,""))}0===i&&aH.isPreTag(r)&&aX--,aY===e&&(aZ=a1.inVPre=!1,aY=null),a1.inXML&&(a0[0]?a0[0].ns:aH.ns)===0&&(a1.inXML=!1)}function a9(e,t){let n=e;for(;aW.charCodeAt(n)!==t&&n>=0;)n--;return n}let a7=new Set(["if","else","else-if","for","slot"]),ce=/\r\n/g;function ct(e){let t="preserve"!==aH.whitespace,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(2===i.type)if(aX)i.content=i.content.replace(ce,` +`);else if(aV(i.content)){let l=e[r-1]&&e[r-1].type,s=e[r+1]&&e[r+1].type;!l||!s||t&&(3===l&&(3===s||1===s)||1===l&&(3===s||1===s&&function(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(10===n||13===n)return!0}return!1}(i.content)))?(n=!0,e[r]=null):i.content=" "}else t&&(i.content=cn(i.content))}return n?e.filter(Boolean):e}function cn(e){let t="",n=!1;for(let r=0;r<e.length;r++)au(e.charCodeAt(r))?n||(t+=" ",n=!0):(t+=e[r],n=!1);return t}function cr(e){(a0[0]||aq).children.push(e)}function ci(e,t){return{start:a1.getPos(e),end:null==t?t:a1.getPos(t),source:null==t?t:a3(e,t)}}function cl(e,t){e.end=a1.getPos(t),e.source=a3(e.start.offset,t)}function cs(e,t=!1,n,r=0,i=0){return at(e,t,n,r)}function co(e,t,n){aH.onError(ag(e,ci(t,t)))}function ca(e){let t=e.children.filter(e=>3!==e.type);return 1!==t.length||1!==t[0].type||aM(t[0])?null:t[0]}function cc(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=cd(e,t);if(0===c)return n.set(e,0),0;c<r&&(r=c);for(let i=0;i<e.children.length;i++){let l=cc(e.children[i],t);if(0===l)return n.set(e,0),0;l<r&&(r=l)}if(r>1)for(let i=0;i<e.props.length;i++){let l=e.props[i];if(7===l.type&&"bind"===l.name&&l.exp){let i=cc(l.exp,t);if(0===i)return n.set(e,0),0;i<r&&(r=i)}}if(i.isBlock){var l,s,o,a;for(let t=0;t<e.props.length;t++)if(7===e.props[t].type)return n.set(e,0),0;t.removeHelper(oT),t.removeHelper((l=t.inSSR,s=i.isComponent,l||s?ow:oN)),i.isBlock=!1,t.helper((o=t.inSSR,a=i.isComponent,o||a?oE:oA))}return n.set(e,r),r}case 2:case 3:return 3;case 9:case 11:case 10:default:return 0;case 5:case 12:return cc(e.content,t);case 4:return e.constType;case 8:let c=3;for(let n=0;n<e.children.length;n++){let r=e.children[n];if(N(r)||E(r))continue;let i=cc(r,t);if(0===i)return 0;i<c&&(c=i)}return c;case 20:return 2}}let cu=new Set([oH,oq,oW,oK]);function cd(e,t){let n=3,r=cp(e);if(r&&15===r.type){let{properties:e}=r;for(let r=0;r<e.length;r++){let i,{key:l,value:s}=e[r],o=cc(l,t);if(0===o)return o;if(o<n&&(n=o),0===(i=4===s.type?cc(s,t):14===s.type?function e(t,n){if(14===t.type&&!N(t.callee)&&cu.has(t.callee)){let r=t.arguments[0];if(4===r.type)return cc(r,n);if(14===r.type)return e(r,n)}return 0}(s,t):0))return i;i<n&&(n=i)}}return n}function cp(e){let t=e.codegenNode;if(13===t.type)return t.props}function ch(e,t){t.currentNode=e;let{nodeTransforms:n}=t,r=[];for(let i=0;i<n.length;i++){let l=n[i](e,t);if(l&&(T(l)?r.push(...l):r.push(l)),!t.currentNode)return;e=t.currentNode}switch(e.type){case 3:t.ssr||t.helper(oR);break;case 5:t.ssr||t.helper(oj);break;case 9:for(let n=0;n<e.branches.length;n++)ch(e.branches[n],t);break;case 10:case 11:case 1:case 0:var i=e;let l=0,s=()=>{l--};for(;l<i.children.length;l++){let e=i.children[l];N(e)||(t.grandParent=t.parent,t.parent=i,t.childIndex=l,t.onNodeRemoved=s,ch(e,t))}}t.currentNode=e;let o=r.length;for(;o--;)r[o]()}function cf(e,t){let n=N(e)?t=>t===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(aI))return;let l=[];for(let s=0;s<i.length;s++){let o=i[s];if(7===o.type&&n(o.name)){i.splice(s,1),s--;let n=t(e,o,r);n&&l.push(n)}}return l}}}let cm="/*@__PURE__*/",cg=e=>`${o4[e]}: _${o4[e]}`;function cv(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?oM:oD);for(let n=0;n<e.length;n++){let o=e[n],a=o.endsWith("__self");a&&(o=o.slice(0,-6)),r(`const ${a$(o,t)} = ${s}(${JSON.stringify(o)}${a?", true":""})${l?"!":""}`),n<e.length-1&&i()}}function cy(e,t){let n=e.length>3;t.push("["),n&&t.indent(),cb(e,t,n),n&&t.deindent(),t.push("]")}function cb(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;s<e.length;s++){let o=e[s];N(o)?i(o,-3):T(o)?cy(o,t):c_(o,t),s<e.length-1&&(n?(r&&i(","),l()):r&&i(", "))}}function c_(e,t){var n,r,i;if(N(e))return void t.push(e,-3);if(E(e))return void t.push(t.helper(e));switch(e.type){case 1:case 9:case 11:case 12:c_(e.codegenNode,t);break;case 2:n=e,t.push(JSON.stringify(n.content),-3,n);break;case 4:cS(e,t);break;case 5:!function(e,t){let{push:n,helper:r,pure:i}=t;i&&n(cm),n(`${r(oj)}(`),c_(e.content,t),n(")")}(e,t);break;case 8:cx(e,t);break;case 3:!function(e,t){let{push:n,helper:r,pure:i}=t;i&&n(cm),n(`${r(oR)}(${JSON.stringify(e.content)})`,-3,e)}(e,t);break;case 13:!function(e,t){var n,r;let i,{push:l,helper:s,pure:o}=t,{tag:a,props:c,children:u,patchFlag:d,dynamicProps:p,directives:h,isBlock:f,disableTracking:m,isComponent:g}=e;d&&(i=String(d)),h&&l(s(o$)+"("),f&&l(`(${s(oT)}(${m?"true":""}), `),o&&l(cm),l(s(f?(n=t.inSSR,n||g?ow:oN):(r=t.inSSR,r||g?oE:oA))+"(",-2,e),cb(function(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map(e=>e||"null")}([a,c,u,i,p]),t),l(")"),f&&l(")"),h&&(l(", "),c_(h,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=N(e.callee)?e.callee:r(e.callee);i&&n(cm),n(l+"(",-2,e),cb(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e<s.length;e++){let{key:r,value:i}=s[e];!function(e,t){let{push:n}=t;if(8===e.type)n("["),cx(e,t),n("]");else if(e.isStatic){let t;n((t=e.content,ab.test(t))?JSON.stringify(e.content):e.content,-2,e)}else n(`[${e.content}]`,-3,e)}(r,t),n(": "),c_(i,t),e<s.length-1&&(n(","),l())}o&&i(),n(o?"}":" }")}(e,t);break;case 17:r=e,i=t,cy(r.elements,i);break;case 18:!function(e,t){let{push:n,indent:r,deindent:i}=t,{params:l,returns:s,body:o,newline:a,isSlot:c}=e;c&&n(`_${o4[o0]}(`),n("(",-2,e),T(l)?cb(l,t):l&&c_(l,t),n(") => "),(a||o)&&(n("{"),r()),s?(a&&n("return "),T(s)?cy(s,t):c_(s,t)):o&&c_(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!ab.test(e));r&&s("("),cS(n,t),r&&s(")")}else s("("),c_(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),c_(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,c_(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(oX)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),c_(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(oX)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:cb(e.body,t,!0,!1)}}function cS(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function cx(e,t){for(let n=0;n<e.children.length;n++){let r=e.children[n];N(r)?t.push(r,-3):c_(r,t)}}let cC=cf(/^(?:if|else|else-if)$/,(e,t,n)=>(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(ag(28,t.loc)),t.exp=at("true",!1,r)}if("if"===t.name){var i;let l=ck(e,t),s={type:9,loc:ci((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&aj(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(ag(30,e.loc)),n.removeNode();let i=ck(e,t);s.branches.push(i);let l=r&&r(s,i,!1);ch(i,n),l&&l(),n.currentNode=null}else n.onError(ag(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=cT(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=cT(t,s+e.branches.length-1,n)}}));function ck(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!aw(e,"for")?e.children:[e],userKey:aN(e,"key"),isTemplateIf:n}}function cT(e,t,n){return e.condition?al(e.condition,cw(e,t,n),ar(n.helper(oR),['""',"true"])):cw(e,t,n)}function cw(e,t,n){let{helper:r}=n,i=ae("key",at(`${t}`,!1,o8,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return o5(n,r(o_),o7([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return aD(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===o6?e.arguments[1].returns:e;return 13===t.type&&as(t,n),aD(t,i,n),e}}let cN=cf("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(ag(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(ag(32,t.loc));cE(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:aO(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let d=r&&r(u);return()=>{l.vFor--,d&&d()}}(e,t,n,t=>{let l=ar(r(oL),[t.source]),s=aO(e),o=aw(e,"memo"),a=aN(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?at(a.value.content,!0):void 0:a.exp),u=a&&c?ae("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:a?128:256;return t.codegenNode=o5(n,r(o_),void 0,l,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let a,{children:p}=t,h=1!==p.length||1!==p[0].type,f=aM(e)?e:s&&1===e.children.length&&aM(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&aD(a,u,n);else if(h)a=o5(n,r(o_),u?o7([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var m,g,y,b,_,S,x,C;a=p[0].codegenNode,s&&u&&aD(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(oT),i((m=n.inSSR,g=a.isComponent,m||g?ow:oN))):i((y=n.inSSR,b=a.isComponent,y||b?oE:oA))),(a.isBlock=!d,a.isBlock)?(r(oT),r((_=n.inSSR,S=a.isComponent,_||S?ow:oN))):r((x=n.inSSR,C=a.isComponent,x||C?oE:oA))}if(o){let e=ai(cA(t.parseResult,[at("_cached")]));e.body={type:21,body:[an(["const _memo = (",o.exp,")"]),an(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(o3)}(_cached, _memo)) return _cached`]),an(["const _item = ",a]),at("_item.memo = _memo"),at("return _item")],loc:o8},l.arguments.push(e,at("_cache"),at(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(ai(cA(t.parseResult),a,!0))}})});function cE(e,t){e.finalized||(e.finalized=!0)}function cA({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||at("_".repeat(t+1),!1))}let cR=at("undefined",!1),cI=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=aw(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function cO(e,t,n){let r=[ae("name",e),ae("fn",t)];return null!=n&&r.push(ae("key",at(String(n),!0))),o7(r)}let cM=new WeakMap,cP=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=c$(r),l=aN(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&at(l.value.content,!0):(e=l.exp)||(e=at("is",!1,l.arg.loc)),e)return ar(t.helper(oP),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=ay(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(oM),t.components.add(r),a$(r,"component"))}(e,t):`"${o}"`,d=A(u)&&u.callee===oP,p=0,h=d||u===oS||u===ox||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=cD(e,t,void 0,c,d);n=r.props,p=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?o9(i.map(e=>(function(e,t){let n=[],r=cM.get(e);r?n.push(t.helperString(r)):(t.helper(oD),t.directives.add(e.name),n.push(a$(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=at("true",!1,i);n.push(o7(e.modifiers.map(e=>ae(e,t)),i))}return o9(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(h=!0)}if(e.children.length>0)if(u===oC&&(h=!0,p|=1024),c&&u!==oS&&u!==oC){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>ai(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(o0);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=aw(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!av(e)&&(o=!0),l.push(ae(e||at("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;e<r.length;e++){let i,f,m,g,y=r[e];if(!aO(y)||!(i=aw(y,"slot",!0))){3!==y.type&&d.push(y);continue}if(a){t.onError(ag(37,i.loc));break}c=!0;let{children:b,loc:_}=y,{arg:S=at("default",!0),exp:x,loc:C}=i;av(S)?f=S?S.content:"default":o=!0;let k=aw(y,"for"),T=n(x,k,b,_);if(m=aw(y,"if"))o=!0,s.push(al(m.exp,cO(S,T,h++),cR));else if(g=aw(y,/^else(?:-if)?$/,!0)){let n,i=e;for(;i--&&aj(n=r[i]););if(n&&aO(n)&&aw(n,/^(?:else-)?if$/)){let e=s[s.length-1];for(;19===e.alternate.type;)e=e.alternate;e.alternate=g.exp?al(g.exp,cO(S,T,h++),cR):cO(S,T,h++)}else t.onError(ag(30,g.loc))}else if(k){o=!0;let e=k.forParseResult;e?(cE(e),s.push(ar(t.helper(oL),[e.source,ai(cA(e),cO(S,T),!0)]))):t.onError(ag(32,k.loc))}else{if(f){if(p.has(f)){t.onError(ag(38,C));continue}p.add(f),"default"===f&&(u=!0)}l.push(ae(S,T))}}if(!a){let e=(e,t)=>ae("default",n(e,void 0,t,i));c?d.length&&!d.every(aB)&&(u?t.onError(ag(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n<t.length;n++){let r=t[n];switch(r.type){case 1:if(2===r.tagType||e(r.children))return!0;break;case 9:if(e(r.branches))return!0;break;case 10:case 11:if(e(r.children))return!0}}return!1}(e.children)?1:3,m=o7(l.concat(ae("_",at(f+"",!1))),i);return s.length&&(m=ar(t.helper(oB),[m,o9(s)])),{slots:m,hasDynamicSlots:o}}(e,t);r=n,i&&(p|=1024)}else if(1===e.children.length&&u!==oS){let n=e.children[0],i=n.type,l=5===i||8===i;l&&0===cc(n,t)&&(p|=1),r=l||2===i?n:e.children}else r=e.children;l&&l.length&&(i=function(e){let t="[";for(let n=0,r=e.length;n<r;n++)t+=JSON.stringify(e[n]),n<r-1&&(t+=", ");return t+"]"}(l)),e.codegenNode=o5(t,u,n,r,0===p?void 0:p,i,s,!!h,!1,c,e.loc)};function cD(e,t,n=e.props,r,i,l=!1){let s,{tag:o,loc:a,children:c}=e,u=[],d=[],p=[],h=c.length>0,f=!1,m=0,g=!1,y=!1,_=!1,S=!1,x=!1,C=!1,k=[],T=e=>{u.length&&(d.push(o7(cF(u),a)),u=[]),e&&d.push(e)},w=()=>{t.scopes.vFor>0&&u.push(ae(at("ref_for",!0),at("true")))},N=({key:e,value:n})=>{if(av(e)){let l=e.content,s=b(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!M(l)&&(S=!0),s&&M(l)&&(C=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&cc(n,t)>0||("ref"===l?g=!0:"class"===l?y=!0:"style"===l?_=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else x=!0};for(let i=0;i<n.length;i++){let s=n[i];if(6===s.type){let{loc:e,name:t,nameLoc:n,value:r}=s;if("ref"===t&&(g=!0,w()),"is"===t&&(c$(o)||r&&r.content.startsWith("vue:")))continue;u.push(ae(at(t,!0,n),at(r?r.content:"",!0,r?r.loc:e)))}else{let{name:n,arg:i,exp:c,loc:g,modifiers:y}=s,b="bind"===n,_="on"===n;if("slot"===n){r||t.onError(ag(40,g));continue}if("once"===n||"memo"===n||"is"===n||b&&aE(i,"is")&&c$(o)||_&&l)continue;if((b&&aE(i,"key")||_&&h&&aE(i,"vue:before-update"))&&(f=!0),b&&aE(i,"ref")&&w(),!i&&(b||_)){x=!0,c?b?(w(),T(),d.push(c)):T({type:14,loc:g,callee:t.helper(oz),arguments:r?[c]:[c,"true"]}):t.onError(ag(b?34:35,g));continue}b&&y.some(e=>"prop"===e.content)&&(m|=32);let S=t.directiveTransforms[n];if(S){let{props:n,needRuntime:r}=S(s,e,t);l||n.forEach(N),_&&i&&!av(i)?T(o7(n,a)):u.push(...n),r&&(p.push(s),E(r)&&cM.set(s,r))}else!P(n)&&(p.push(s),h&&(f=!0))}}if(d.length?(T(),s=d.length>1?ar(t.helper(oU),d,a):d[0]):u.length&&(s=o7(cF(u),a)),x?m|=16:(y&&!r&&(m|=2),_&&!r&&(m|=4),k.length&&(m|=8),S&&(m|=32)),!f&&(0===m||32===m)&&(g||C||p.length>0)&&(m|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,R=-1,I=!1;for(let e=0;e<s.properties.length;e++){let t=s.properties[e].key;av(t)?"class"===t.content?A=e:"style"===t.content&&(R=e):t.isHandlerKey||(I=!0)}let O=s.properties[A],D=s.properties[R];I?s=ar(t.helper(oW),[s]):(O&&!av(O.value)&&(O.value=ar(t.helper(oH),[O.value])),D&&(_||4===D.value.type&&"["===D.value.content.trim()[0]||17===D.value.type)&&(D.value=ar(t.helper(oq),[D.value])));break;case 14:break;default:s=ar(t.helper(oW),[ar(t.helper(oK),[s])])}return{props:s,directives:p,patchFlag:m,dynamicPropNames:k,shouldUseBlock:f}}function cF(e){let t=new Map,n=[];for(let l=0;l<e.length;l++){var r,i;let s=e[l];if(8===s.key.type||!s.key.isStatic){n.push(s);continue}let o=s.key.content,a=t.get(o);a?("style"===o||"class"===o||b(o))&&(r=a,i=s,17===r.value.type?r.value.elements.push(i.value):r.value=o9([r.value,i.value],r.loc)):(t.set(o,s),n.push(s))}return n}function c$(e){return"component"===e||"Component"===e}let cL=(e,t)=>{if(aM(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t<e.props.length;t++){let n=e.props[t];if(6===n.type)n.value&&("name"===n.name?r=JSON.stringify(n.value.content):(n.name=$(n.name),i.push(n)));else if("bind"===n.name&&aE(n.arg,"name")){if(n.exp)r=n.exp;else if(n.arg&&4===n.arg.type){let e=$(n.arg.content);r=n.exp=at(e,!1,n.arg.loc)}}else"bind"===n.name&&n.arg&&av(n.arg)&&(n.arg.content=$(n.arg.content)),i.push(n)}if(i.length>0){let{props:r,directives:l}=cD(e,t,i,!1,!1);n=r,l.length&&t.onError(ag(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=ai([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=ar(t.helper(oV),s,r)}},cV=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=at(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?j($(e)):`on:${e}`,!0,o.loc)}else i=an([`${n.helperString(oQ)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(oQ)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=ak(a),n=!(t||(e=a,aT.test(aC(e)))),r=a.content.includes(";");(n||c&&t)&&(a=an([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[ae(i,a||at("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},cB=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=$(i.content):i.content=`${n.helperString(oJ)}(${i.content})`:(i.children.unshift(`${n.helperString(oJ)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&cj(i,"."),r.some(e=>"attr"===e.content)&&cj(i,"^")),{props:[ae(i,l)]}},cj=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},cU=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e<r.length;e++){let t=r[e];if(aA(t)){i=!0;for(let i=e+1;i<r.length;i++){let l=r[i];if(aA(l))n||(n=r[e]=an([t],t.loc)),n.children.push(" + ",l),r.splice(i,1),i--;else{n=void 0;break}}}}if(i&&(1!==r.length||0!==e.type&&(1!==e.type||0!==e.tagType||e.props.find(e=>7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e<r.length;e++){let n=r[e];if(aA(n)||8===n.type){let i=[];(2!==n.type||" "!==n.content)&&i.push(n),t.ssr||0!==cc(n,t)||i.push("1"),r[e]={type:12,content:n,loc:n.loc,codegenNode:ar(t.helper(oI),i)}}}}},cH=new WeakSet,cq=(e,t)=>{if(1===e.type&&aw(e,"once",!0)&&!cH.has(e)&&!t.inVOnce&&!t.inSSR)return cH.add(e),t.inVOnce=!0,t.helper(oX),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},cW=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(ag(41,e.loc)),cK();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,cK();if(!o.trim()||!ak(i))return n.onError(ag(42,i.loc)),cK();let c=l||at("modelValue",!0),u=l?av(l)?`onUpdate:${$(l.content)}`:an(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=an([`${d} => ((`,i,") = $event)"]);let p=[ae(c,e.exp),ae(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(ab.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?av(l)?`${l.content}Modifiers`:an([l,' + "Modifiers"']):"modelModifiers";p.push(ae(n,at(`{ ${t} }`,!1,e.loc,2)))}return cK(p)};function cK(e=[]){return{props:e}}let cz=new WeakSet,cJ=(e,t)=>{if(1===e.type){let n=aw(e,"memo");if(!(!n||cz.has(e))&&!t.inSSR)return cz.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&as(r,t),e.codegenNode=ar(t.helper(o6),[n.exp,ai(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},cG=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=$(e.content);(a_.test(t[0])||"-"===t[0])&&(n.exp=at(t,!1,e.loc))}else t.onError(ag(53,e.loc)),n.exp=at("",!0,e.loc)}}},cQ=Symbol(""),cX=Symbol(""),cZ=Symbol(""),cY=Symbol(""),c0=Symbol(""),c1=Symbol(""),c2=Symbol(""),c6=Symbol(""),c3=Symbol(""),c4=Symbol("");Object.getOwnPropertySymbols(oy={[cQ]:"vModelRadio",[cX]:"vModelCheckbox",[cZ]:"vModelText",[cY]:"vModelSelect",[c0]:"vModelDynamic",[c1]:"withModifiers",[c2]:"withKeys",[c6]:"vShow",[c3]:"Transition",[c4]:"TransitionGroup"}).forEach(e=>{o4[e]=oy[e]});let c8={parseMode:"html",isVoidTag:el,isNativeTag:e=>en(e)||er(e)||ei(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(u||(u=document.createElement("div")),t)?(u.innerHTML=`<div foo="${e.replace(/"/g,""")}">`,u.children[0].getAttribute("foo")):(u.innerHTML=e,u.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?c3:"TransitionGroup"===e||"transition-group"===e?c4:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},c5=h("passive,once,capture"),c9=h("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),c7=h("left,right"),ue=h("onkeyup,onkeydown,onkeypress"),ut=(e,t)=>av(e)&&"onclick"===e.content.toLowerCase()?at(t,!0):4!==e.type?an(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,un=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},ur=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:at("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,at(JSON.stringify(Y(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],ui={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(ag(54,i)),t.children.length&&(n.onError(ag(55,i)),t.children.length=0),{props:[ae(at("innerHTML",!0,i),r||at("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(ag(56,i)),t.children.length&&(n.onError(ag(57,i)),t.children.length=0),{props:[ae(at("textContent",!0),r?cc(r,n)>0?r:ar(n.helperString(oj),[r],i):at("",!0))]}},model:(e,t,n)=>{let r=cW(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(ag(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=cZ,o=!1;if("input"===i||l){let r=aN(t,"type");if(r){if(7===r.type)s=c0;else if(r.value)switch(r.value.content){case"radio":s=cQ;break;case"checkbox":s=cX;break;case"file":o=!0,n.onError(ag(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=c0)}else"select"===i&&(s=cY);o||(r.needRuntime=n.helper(s))}else n.onError(ag(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>cV(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n<t.length;n++){let r=t[n].content;c5(r)?s.push(r):c7(r)?av(e)?ue(e.content.toLowerCase())?i.push(r):l.push(r):(i.push(r),l.push(r)):c9(r)?l.push(r):i.push(r)}return{keyModifiers:i,nonKeyModifiers:l,eventOptionModifiers:s}})(i,r,0,e.loc);if(o.includes("right")&&(i=ut(i,"onContextmenu")),o.includes("middle")&&(i=ut(i,"onMouseup")),o.length&&(l=ar(n.helper(c1),[l,JSON.stringify(o)])),s.length&&(!av(i)||ue(i.content.toLowerCase()))&&(l=ar(n.helper(c2),[l,JSON.stringify(s)])),a.length){let e=a.map(B).join("");i=av(i)?at(`${i.content}${e}`,!0):an(["(",i,`) + "${e}"`])}return{props:[ae(i,l)]}}),show:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(ag(62,i)),{props:[],needRuntime:n.helper(c6)}}},ul=Object.create(null);function us(e,t){if(!N(e))if(!e.nodeType)return g;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=ul[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=S({hoistStatic:!0,onError:void 0,onWarn:g},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||af,l="module"===t.mode;!0===t.prefixIdentifiers?i(ag(48)):l&&i(ag(49)),t.cacheHandlers&&i(ag(50)),t.scopeId&&!l&&i(ag(51));let s=S({},t,{prefixIdentifiers:!1}),o=N(e)?function(e,t){if(a1.reset(),aK=null,az=null,aJ="",aG=-1,aQ=-1,a0.length=0,aW=e,aH=S({},aU),t){let e;for(e in t)null!=t[e]&&(aH[e]=t[e])}a1.mode="html"===aH.parseMode?1:2*("sfc"===aH.parseMode),a1.inXML=1===aH.ns||2===aH.ns;let n=t&&t.delimiters;n&&(a1.delimiterOpen=ap(n[0]),a1.delimiterClose=ap(n[1]));let r=aq=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:o8}}([],e);return a1.parse(aW),r.loc=ci(0,e.length),r.children=ct(r.children),aq=null,r}(e,s):e,[a,c]=[[cG,cq,cC,cJ,cN,cL,cP,cI,cU],{on:cV,bind:cB,model:cW}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=g,isCustomElement:u=g,expressionPlugins:d=[],scopeId:p=null,slotted:h=!0,ssr:m=!1,inSSR:y=!1,ssrCssVars:b="",bindingMetadata:_=f,inline:S=!1,isTS:x=!1,onError:C=af,onWarn:k=am,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),E={filename:t,selfName:w&&B($(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:p,slotted:h,ssr:m,inSSR:y,ssrCssVars:b,bindingMetadata:_,inline:S,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=E.helpers.get(e)||0;return E.helpers.set(e,t+1),e},removeHelper(e){let t=E.helpers.get(e);if(t){let n=t-1;n?E.helpers.set(e,n):E.helpers.delete(e)}},helperString:e=>`_${o4[E.helper(e)]}`,replaceNode(e){E.parent.children[E.childIndex]=E.currentNode=e},removeNode(e){let t=E.parent.children,n=e?t.indexOf(e):E.currentNode?E.childIndex:-1;e&&e!==E.currentNode?E.childIndex>n&&(E.childIndex--,E.onNodeRemoved()):(E.currentNode=null,E.onNodeRemoved()),E.parent.children.splice(n,1)},onNodeRemoved:g,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){N(e)&&(e=at(e)),E.hoists.push(e);let t=at(`_hoisted_${E.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:o8}}(E.cached.length,e,t,n);return E.cached.push(r),r}};return E}(o,n=S({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:S({},c,t.directiveTransforms||{})})),ch(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n<s.length;n++){let a=s[n];if(1===a.type&&0===a.tagType){let e=i?0:cc(a,r);if(e>0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&cd(a,r)>=2){let t=cp(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:cc(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;n<a.branches.length;n++)e(a.branches[n],t,r,1===a.branches[n].children.length,l)}let a=!1;if(o.length===s.length&&1===t.type){if(0===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&T(t.codegenNode.children))t.codegenNode.children=c(o9(t.codegenNode.children)),a=!0;else if(1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!T(t.codegenNode.children)&&15===t.codegenNode.children.type){let e=u(t.codegenNode,"default");e&&(e.returns=c(o9(e.returns)),a=!0)}else if(3===t.tagType&&n&&1===n.type&&1===n.tagType&&n.codegenNode&&13===n.codegenNode.type&&n.codegenNode.children&&!T(n.codegenNode.children)&&15===n.codegenNode.children.type){let e=aw(t,"slot",!0),r=e&&e.arg&&u(n.codegenNode,e.arg);r&&(r.returns=c(o9(r.returns)),a=!0)}}if(!a)for(let e of o)e.codegenNode=r.cache(e.codegenNode);function c(e){let t=r.cache(e);return t.needArraySpread=!0,t}function u(e,t){if(e.children&&!T(e.children)&&15===e.children.type){let n=e.children.properties.find(e=>e.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!ca(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=ca(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&as(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=o5(t,n(o_),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${o4[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push(` +`+" ".repeat(e),0)}return h}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),d=u.length>0,p=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} +`,-1),e.hoists.length)){let e=[oE,oA,oR,oI,oO].filter(e=>l.includes(e)).map(cg).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i<e.length;i++){let l=e[i];l&&(n(`const _hoisted_${i+1} = `),c_(l,t),r())}t.pure=!1})(e.hoists,t),r(),n("return ")}(e,n);let h=(c?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ");if(i(`function ${c?"ssrRender":"render"}(${h}) {`),s(),p&&(i("with (_ctx) {"),s(),d&&(i(`const { ${u.map(cg).join(", ")} } = _Vue +`,-1),a())),e.components.length&&(cv(e.components,"component",n),(e.directives.length||e.temps>0)&&a()),e.directives.length&&(cv(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t<e.temps;t++)i(`${t>0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?c_(e.codegenNode,n):i("null"),p&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,S({},c8,t,{nodeTransforms:[un,...ur,...t.nodeTransforms||[]],directiveTransforms:S({},ui,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function("Vue",l)(ob);return s._rc=!0,ul[n]=s}lA(us);export{nj as BaseTransition,nL as BaseTransitionPropsValidators,i0 as Comment,lG as DeprecationTypes,eh as EffectScope,tJ as ErrorCodes,lH as ErrorTypeStrings,iZ as Fragment,ru as KeepAlive,ey as ReactiveEffect,i1 as Static,iK as Suspense,nI as Teleport,iY as Text,tB as TrackOpTypes,l8 as Transition,sH as TransitionGroup,tj as TriggerOpTypes,sD as VueElement,tz as assertNumber,tQ as callWithAsyncErrorHandling,tG as callWithErrorHandling,$ as camelize,B as capitalize,lc as cloneVNode,lJ as compatUtils,us as compile,lF as computed,ou as createApp,le as createBlock,lp as createCommentVNode,i7 as createElementBlock,ls as createElementVNode,i$ as createHydrationRenderer,r4 as createPropsRestProxy,iF as createRenderer,od as createSSRApp,r$ as createSlots,ld as createStaticVNode,lu as createTextVNode,lo as createVNode,tP as customRef,ro as defineAsyncComponent,nJ as defineComponent,sO as defineCustomElement,rz as defineEmits,rJ as defineExpose,rX as defineModel,rG as defineOptions,rK as defineProps,sM as defineSSRCustomElement,rQ as defineSlots,lq as devtools,eN as effect,ef as effectScope,lx as getCurrentInstance,em as getCurrentScope,tq as getCurrentWatcher,nz as getTransitionRawChildren,la as guardReactiveProps,l$ as h,tX as handleError,nh as hasInjectionContext,oc as hydrate,rn as hydrateOnIdle,rl as hydrateOnInteraction,ri as hydrateOnMediaQuery,rr as hydrateOnVisible,lL as initCustomFormatter,om as initDirectivesForSSR,np as inject,lB as isMemoSame,ty as isProxy,tm as isReactive,tg as isReadonly,tC as isRef,lR as isRuntimeOnly,tv as isShallow,lt as isVNode,t_ as markRaw,r6 as mergeDefaults,r3 as mergeModels,lg as mergeProps,t4 as nextTick,l0 as nodeOps,ee as normalizeClass,et as normalizeProps,G as normalizeStyle,rp as onActivated,rb as onBeforeMount,rC as onBeforeUnmount,rS as onBeforeUpdate,rh as onDeactivated,rE as onErrorCaptured,r_ as onMounted,rN as onRenderTracked,rw as onRenderTriggered,eg as onScopeDispose,rT as onServerPrefetch,rk as onUnmounted,rx as onUpdated,tW as onWatcherCleanup,i3 as openBlock,sR as patchProp,ns as popScopeId,nd as provide,tO as proxyRefs,nl as pushScopeId,t9 as queuePostFlushCb,tu as reactive,tp as readonly,tk as ref,lA as registerRuntimeCompiler,oa as render,rF as renderList,rL as renderSlot,rR as resolveComponent,rM as resolveDirective,rO as resolveDynamicComponent,lz as resolveFilter,nH as resolveTransitionHooks,i5 as setBlockTracking,lW as setDevtoolsHook,nK as setTransitionHooks,td as shallowReactive,th as shallowReadonly,tT as shallowRef,nf as ssrContextKey,lK as ssrUtils,eE as stop,eu as toDisplayString,j as toHandlerKey,rB as toHandlers,tb as toRaw,tL as toRef,tD as toRefs,tR as toValue,lr as transformVNodeArgs,tE as triggerRef,tA as unref,r0 as useAttrs,sL as useCssModule,sf as useCssVars,sF as useHost,nG as useId,id as useModel,nm as useSSRContext,s$ as useShadowRoot,rY as useSlots,nX as useTemplateRef,nF as useTransitionState,s0 as vModelCheckbox,s5 as vModelDynamic,s2 as vModelRadio,s6 as vModelSelect,sY as vModelText,sd as vShow,lj as version,lU as warn,nb as watch,ng as watchEffect,nv as watchPostEffect,ny as watchSyncEffect,r8 as withAsyncContext,na as withCtx,rZ as withDefaults,nc as withDirectives,oi as withKeys,lV as withMemo,on as withModifiers,no as withScopeId}; diff --git a/node_modules/vue/dist/vue.esm-bundler.js b/node_modules/vue/dist/vue.esm-bundler.js new file mode 100644 index 0000000..e114a73 --- /dev/null +++ b/node_modules/vue/dist/vue.esm-bundler.js @@ -0,0 +1,71 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import * as runtimeDom from '@vue/runtime-dom'; +import { initCustomFormatter, registerRuntimeCompiler, warn } from '@vue/runtime-dom'; +export * from '@vue/runtime-dom'; +import { compile } from '@vue/compiler-dom'; +import { isString, NOOP, genCacheKey, extend, generateCodeFrame } from '@vue/shared'; + +function initDev() { + { + initCustomFormatter(); + } +} + +if (!!(process.env.NODE_ENV !== "production")) { + initDev(); +} +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + !!(process.env.NODE_ENV !== "production") && warn(`invalid template option: `, template); + return NOOP; + } + } + const key = genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!!(process.env.NODE_ENV !== "production") && !el) { + warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = extend( + { + hoistStatic: true, + onError: !!(process.env.NODE_ENV !== "production") ? onError : void 0, + onWarn: !!(process.env.NODE_ENV !== "production") ? (e) => onError(e, true) : NOOP + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function("Vue", code)(runtimeDom); + render._rc = true; + return compileCache[key] = render; +} +registerRuntimeCompiler(compileToFunction); + +export { compileToFunction as compile }; diff --git a/node_modules/vue/dist/vue.global.js b/node_modules/vue/dist/vue.global.js new file mode 100644 index 0000000..41b88ee --- /dev/null +++ b/node_modules/vue/dist/vue.global.js @@ -0,0 +1,18466 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var Vue = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter + (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } + ); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } + }; + const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); + } + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; + const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` + ); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` + ); + const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` + ); + function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; + } + + const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; + function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); + }; + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); + }; + + function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); + } + + function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + let activeSub; + const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); + class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } + } + let batchDepth = 0; + let batchedSub; + let batchedComputed; + function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; + } + function startBatch() { + batchDepth++; + } + function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; + } + function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } + } + function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; + } + function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; + } + function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } + } + function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } + } + function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } + } + + let globalVersion = 0; + class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } + } + class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } + } + function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } + } + const targetMap = /* @__PURE__ */ new WeakMap(); + const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" + ); + const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" + ); + const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" + ); + function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); + } + function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); + } + + function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); + } + function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; + } + function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); + } + const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } + }; + function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; + } + const arrayProto = Array.prototype; + function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; + } + function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); + } + function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; + } + function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; + } + function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; + } + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + // @__NO_SIDE_EFFECTS__ + function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + // @__NO_SIDE_EFFECTS__ + function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + // @__NO_SIDE_EFFECTS__ + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + // @__NO_SIDE_EFFECTS__ + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + // @__NO_SIDE_EFFECTS__ + function isProxy(value) { + return value ? !!value["__v_raw"] : false; + } + // @__NO_SIDE_EFFECTS__ + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; + } + function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; + } + const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; + const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + + // @__NO_SIDE_EFFECTS__ + function isRef(r) { + return r ? r["__v_isRef"] === true : false; + } + // @__NO_SIDE_EFFECTS__ + function ref(value) { + return createRef(value, false); + } + // @__NO_SIDE_EFFECTS__ + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } + } + function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } + } + function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + // @__NO_SIDE_EFFECTS__ + function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } + } + // @__NO_SIDE_EFFECTS__ + function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } + } + // @__NO_SIDE_EFFECTS__ + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" + }; + const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" + }; + + const INITIAL_WATCHER_VALUE = {}; + const cleanupMap = /* @__PURE__ */ new WeakMap(); + let activeWatcher = void 0; + function getCurrentWatcher() { + return activeWatcher; + } + function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } + } + function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; + } + function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; + } + + const stack$1 = []; + function pushWarningContext(vnode) { + stack$1.push(vnode); + } + function popWarningContext() { + stack$1.pop(); + } + let isWarning = false; + function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; + } + function getComponentTrace() { + let currentVNode = stack$1[stack$1.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" + }; + const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" + }; + function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); + } + function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + const queue = []; + let flushIndex = -1; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; + } + function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } + } + function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; + function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; + } + + let isHmrUpdating = false; + const hmrDirtyComponents = /* @__PURE__ */ new Map(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + let devtools$1; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + // @__NO_SIDE_EFFECTS__ + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); + } + + const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn$1(`useSSRContext() is not supported in the global build.`); + } + }; + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + return watchHandle; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + + const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } + }, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; + } + + const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); + const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } + }; + function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; + } + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + // @__NO_SIDE_EFFECTS__ + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; + } + function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; + } + + const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); + function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; + } + function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); + } + + const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } + } + + let hasLoggedMismatchError = false; + const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; + }; + const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; + const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); + const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; + }; + const isComment = (node) => node.nodeType === 8; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; + } + function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; + } + function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); + } + function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; + } + function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; + } + function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; + } + function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } + } + const allowMismatchAttr = "data-allow-mismatch"; + const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" + }; + function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } + } + + const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); + const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); + const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); + }; + function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); + } + const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); + }; + const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } + }; + const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; + }; + function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + // @__NO_SIDE_EFFECTS__ + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } + }; + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook( + "bu" + ); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook( + "bum" + ); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook( + "sp" + ); + const onRenderTriggered = createHook("rtg"); + const onRenderTracked = createHook("rtc"); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } + }; + { + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; + } + const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } + }); + function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; + } + function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } + } + function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); + } + + const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` + ); + function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; + } + function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; + } + function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } + } + function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } + } + function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; + } + function defineModel() { + { + warnRuntimeUsage("defineModel"); + } + } + function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; + } + function useSlots() { + return getContext("useSlots").slots; + } + function useAttrs() { + return getContext("useAttrs").attrs; + } + function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); + } + function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; + } + function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; + } + function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); + } + function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; + } + function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; + } + + function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; + } + let shouldCacheAccess = true; + function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + } + function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } + } + function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); + } + function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } + } + function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; + } + function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; + } + const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray$1, + created: mergeAsArray$1, + beforeMount: mergeAsArray$1, + mounted: mergeAsArray$1, + beforeUpdate: mergeAsArray$1, + updated: mergeAsArray$1, + beforeDestroy: mergeAsArray$1, + beforeUnmount: mergeAsArray$1, + destroyed: mergeAsArray$1, + unmounted: mergeAsArray$1, + activated: mergeAsArray$1, + deactivated: mergeAsArray$1, + errorCaptured: mergeAsArray$1, + serverPrefetch: mergeAsArray$1, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject + }; + function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; + } + function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); + } + function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; + } + function mergeAsArray$1(to, from) { + return to ? [...new Set([].concat(to, from))] : from; + } + function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; + } + function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } + } + function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray$1(to[key], from[key]); + } + return merged; + } + + function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; + } + let uid$1 = 0; + function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; + } + let currentApp = null; + + function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; + } + const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; + }; + + function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } + } + const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); + function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; + } + function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); + } + + let accessedAttrs = false; + function markAttrsAccessed() { + accessedAttrs = true; + } + function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; + } + const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; + }; + function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; + } + const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; + }; + const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; + }; + const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; + }; + function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; + } + function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; + } + function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; + } + function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } + } + + const internalObjectProto = {}; + const createInternalObject = () => Object.create(internalObjectProto); + const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + + function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; + } + function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } + } + function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } + } + function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; + } + function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; + } + const mixinPropsCache = /* @__PURE__ */ new WeakMap(); + function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; + } + function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; + } + function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; + } + function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } + } + function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } + } + const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" + ); + function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; + } + function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; + } + function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } + } + function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); + } + function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); + } + + const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; + const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; + const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; + }; + const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } + }; + const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; + }; + const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } + }; + const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } + }; + const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } + }; + + let supported; + let perf; + function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; + } + + const queuePostRenderEffect = queueEffectWithSuspense ; + function createRenderer(options) { + return baseCreateRenderer(options); + } + function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); + } + function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; + } + function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; + } + function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } + } + function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; + } + function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } + } + function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; + } + function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } + } + function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } + } + function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; + } + + const isSuspense = (type) => type.__isSuspense; + let suspenseId = 0; + const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren + }; + const Suspense = SuspenseImpl ; + function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } + } + function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } + } + function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } + } + let hasWarned = false; + function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; + } + function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; + } + function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); + } + function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; + } + function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } + } + function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } + } + function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; + } + + const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); + const Text = /* @__PURE__ */ Symbol.for("v-txt"); + const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); + const Static = /* @__PURE__ */ Symbol.for("v-stc"); + const blockStack = []; + let currentBlock = null; + function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); + } + function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; + } + let isBlockTreeEnabled = 1; + function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } + } + function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; + } + function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); + } + function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); + } + function isVNode(value) { + return value ? value.__v_isVNode === true : false; + } + function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; + } + let vnodeArgsTransformer; + function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; + } + const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); + }; + const normalizeKey = ({ key }) => key != null ? key : null; + const normalizeRef = ({ + ref, + ref_key, + ref_for + }) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; + }; + function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; + } + const createVNode = createVNodeWithArgsTransform ; + function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); + } + function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; + } + function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; + } + function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; + } + function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); + } + function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; + } + function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); + } + function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } + } + function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); + } + function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; + } + function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; + } + function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); + } + + const emptyAppContext = createAppContext(); + let uid = 0; + function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; + } + let currentInstance = null; + const getCurrentInstance = () => currentInstance || currentRenderingInstance; + let internalSetCurrentInstance; + let setInSSRSetupState; + { + internalSetCurrentInstance = (i) => { + currentInstance = i; + }; + setInSSRSetupState = (v) => { + isInSSRComponentSetup = v; + }; + } + const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; + }; + const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); + }; + const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); + function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } + } + function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; + } + let isInSSRComponentSetup = false; + function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; + } + function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } + } + function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); + } + let compile$1; + let installWithProxy; + function registerRuntimeCompiler(_compile) { + compile$1 = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; + } + const isRuntimeOnly = () => !compile$1; + function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile$1 && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile$1(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile$1 && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } + } + const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } + } ; + function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); + } + function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } + } + function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } + } + const classifyRE = /(?:^|[-_])\w/g; + const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); + function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; + } + function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; + } + function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; + } + + const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; + }; + + function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } + } + + function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } + } + + function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; + } + function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; + } + + const version = "3.5.28"; + const warn = warn$1 ; + const ErrorTypeStrings = ErrorTypeStrings$1 ; + const devtools = devtools$1 ; + const setDevtoolsHook = setDevtoolsHook$1 ; + const ssrUtils = null; + const resolveFilter = null; + const compatUtils = null; + const DeprecationTypes = null; + + let policy = void 0; + const tt = typeof window !== "undefined" && window.trustedTypes; + if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } + } + const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; + const svgNS = "http://www.w3.org/2000/svg"; + const mathmlNS = "http://www.w3.org/1998/Math/MathML"; + const doc = typeof document !== "undefined" ? document : null; + const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); + const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } + }; + + const TRANSITION$1 = "transition"; + const ANIMATION = "animation"; + const vtcKey = /* @__PURE__ */ Symbol("_vtc"); + const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String + }; + const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators + ); + const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; + }; + const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) + ); + const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } + }; + const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; + }; + function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); + } + function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } + } + function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; + } + function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); + } + function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } + } + function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); + } + let endId = 0; + function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); + } + function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION$1) { + if (transitionTimeout > 0) { + type = TRANSITION$1; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null; + propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION$1 && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION$1}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; + } + function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); + } + function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; + } + function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; + } + + function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } + } + + const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); + const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); + const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } + }; + function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; + } + + const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); + function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); + } + function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } + } + function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } + } + + const displayRE = /(?:^|;)\s*display\s*:/; + function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } + } + const semicolonRE = /[^\\];\s*$/; + const importantRE = /\s*!important$/; + function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } + } + const prefixes = ["Webkit", "Moz", "ms"]; + const prefixCache = {}; + function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; + } + + const xlinkNS = "http://www.w3.org/1999/xlink"; + function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } + } + + function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); + } + + function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); + } + function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); + } + const veiKey = /* @__PURE__ */ Symbol("_vei"); + function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } + } + const optionsModifierRE = /(?:Once|Passive|Capture)$/; + function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; + } + let cachedNow = 0; + const p = /* @__PURE__ */ Promise.resolve(); + const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); + function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; + } + function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; + } + function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } + } + + const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter + key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; + const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } + }; + function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; + } + + const REMOVAL = {}; + // @__NO_SIDE_EFFECTS__ + function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; + } + const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); + }); + const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { + }; + class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } + } + function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; + } + function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; + } + + function useCssModule(name = "$style") { + { + { + warn(`useCssModule() is not supported in the global build.`); + } + return EMPTY_OBJ; + } + } + + const positionMap = /* @__PURE__ */ new WeakMap(); + const newPositionMap = /* @__PURE__ */ new WeakMap(); + const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); + const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); + const decorate = (t) => { + delete t.props.mode; + return t; + }; + const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } + }); + const TransitionGroup = TransitionGroupImpl; + function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } + } + function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); + } + function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } + } + function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; + } + function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; + } + + const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; + }; + function onCompositionStart(e) { + e.target.composing = true; + } + function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } + } + const assignKey = /* @__PURE__ */ Symbol("_assign"); + function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; + } + const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } + }; + const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } + }; + function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } + } + const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } + }; + const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } + }; + function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } + } + function getValue(el) { + return "_value" in el ? el._value : el.value; + } + function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; + } + const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } + }; + function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } + } + function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); + } + + const systemModifiers = ["ctrl", "shift", "alt", "meta"]; + const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) + }; + const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); + }; + const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" + }; + const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); + }; + + const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); + let renderer; + let enabledHydration = false; + function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); + } + function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; + } + const render = ((...args) => { + ensureRenderer().render(...args); + }); + const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); + }); + const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; + }); + const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; + }); + function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } + } + function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); + } + function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } + } + function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; + } + const initDirectivesForSSR = NOOP; + + function initDev() { + { + { + console.info( + `You are running a development build of Vue. +Make sure to use the production build (*.prod.js) when deploying for production.` + ); + } + initCustomFormatter(); + } + } + + const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` ); + const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` ); + const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` ); + const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` ); + const BASE_TRANSITION = /* @__PURE__ */ Symbol( + `BaseTransition` + ); + const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` ); + const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` ); + const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol( + `createElementBlock` + ); + const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` ); + const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol( + `createElementVNode` + ); + const CREATE_COMMENT = /* @__PURE__ */ Symbol( + `createCommentVNode` + ); + const CREATE_TEXT = /* @__PURE__ */ Symbol( + `createTextVNode` + ); + const CREATE_STATIC = /* @__PURE__ */ Symbol( + `createStaticVNode` + ); + const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol( + `resolveComponent` + ); + const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol( + `resolveDynamicComponent` + ); + const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol( + `resolveDirective` + ); + const RESOLVE_FILTER = /* @__PURE__ */ Symbol( + `resolveFilter` + ); + const WITH_DIRECTIVES = /* @__PURE__ */ Symbol( + `withDirectives` + ); + const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` ); + const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` ); + const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` ); + const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol( + `toDisplayString` + ); + const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` ); + const NORMALIZE_CLASS = /* @__PURE__ */ Symbol( + `normalizeClass` + ); + const NORMALIZE_STYLE = /* @__PURE__ */ Symbol( + `normalizeStyle` + ); + const NORMALIZE_PROPS = /* @__PURE__ */ Symbol( + `normalizeProps` + ); + const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol( + `guardReactiveProps` + ); + const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` ); + const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` ); + const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` ); + const TO_HANDLER_KEY = /* @__PURE__ */ Symbol( + `toHandlerKey` + ); + const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol( + `setBlockTracking` + ); + const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` ); + const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` ); + const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` ); + const UNREF = /* @__PURE__ */ Symbol(`unref` ); + const IS_REF = /* @__PURE__ */ Symbol(`isRef` ); + const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` ); + const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` ); + const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` + }; + function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); + } + + const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" + }; + function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; + } + function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; + } + function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; + } + function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; + } + function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; + } + function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; + } + function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; + } + function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; + } + function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; + } + function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; + } + function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; + } + function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; + } + function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; + } + function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; + } + function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } + } + + const defaultDelimitersOpen = new Uint8Array([123, 123]); + const defaultDelimitersClose = new Uint8Array([125, 125]); + function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; + } + function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; + } + function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); + } + function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; + } + const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea + }; + class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + const length = this.newlines.length; + let j = -1; + if (length > 100) { + let l = -1; + let r = length; + while (l + 1 < r) { + const m = l + r >>> 1; + this.newlines[m] < index ? l = m : r = m; + } + j = l; + } else { + for (let i = length - 1; i >= 0; i--) { + if (index > this.newlines[i]) { + j = i; + break; + } + } + } + if (j >= 0) { + line = j + 2; + column = index - this.newlines[j]; + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else ; + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + } + stateInEntity() { + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10 && this.state !== 33) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + } + } + + function defaultOnError(error) { + throw error; + } + function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); + } + function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; + } + const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [53]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `v-model cannot be used on a const binding because it is not writable.`, + [46]: `Error parsing JavaScript expression: `, + [47]: `<KeepAlive> expects exactly one child component.`, + [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [49]: `ES module mode is not supported in this build of compiler.`, + [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [51]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [54]: `` + }; + + const isStaticExp = (p) => p.type === 4 && p.isStatic; + function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } + } + const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/; + const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); + const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; + const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; + const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; + const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; + const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; + }; + const isMemberExpression = isMemberExpressionBrowser ; + const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/; + const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); + const isFnExpression = isFnExpressionBrowser ; + function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } + } + function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } + } + function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } + } + function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); + } + function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); + } + function isText$1(node) { + return node.type === 5 || node.type === 2; + } + function isVPre(p) { + return p.type === 7 && p.name === "pre"; + } + function isVSlot(p) { + return p.type === 7 && p.name === "slot"; + } + function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; + } + function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; + } + const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); + function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; + } + function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } + } + function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; + } + function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; + } + function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } + } + const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; + function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; + } + function isWhitespaceText(node) { + return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content); + } + function isCommentOrWhitespace(node) { + return node.type === 3 || isWhitespaceText(node); + } + + const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: NO, + isPreTag: NO, + isIgnoreNewlineTag: NO, + isCustomElement: NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true, + prefixIdentifiers: false + }; + let currentOptions = defaultParserOptions; + let currentRoot = null; + let currentInput = ""; + let currentOpenTag = null; + let currentProp = null; + let currentAttrValue = ""; + let currentAttrStartIndex = -1; + let currentAttrEndIndex = -1; + let inPre = 0; + let inVPre = false; + let currentVPreBoundary = null; + const stack = []; + const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = currentOptions.decodeEntities(exp, false); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre && !isVPre(currentProp)) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentAttrValue.includes("&")) { + currentAttrValue = currentOptions.decodeEntities( + currentAttrValue, + true + ); + } + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } + }); + const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + const stripParensRE = /^\(|\)$/g; + function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; + } + function getSlice(start, end) { + return currentInput.slice(start, end); + } + function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; + } + function onText(content, start, end) { + { + const tag = stack[0] && stack[0].tag; + if (tag !== "script" && tag !== "style" && content.includes("&")) { + content = currentOptions.decodeEntities(content, false); + } + } + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } + } + function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + } + function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; + } + function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; + } + const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); + function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; + } + function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } + } + } + } + return false; + } + function isUpperCase(c) { + return c > 64 && c < 91; + } + const windowsNewlineRE = /\r\n/g; + function condenseWhitespace(nodes) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; + } + function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; + } + function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; + } + function addNode(node) { + (stack[0] || currentRoot).children.push(node); + } + function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; + } + function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); + } + function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); + } + function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; + } + function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + return exp; + } + function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); + } + function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; + } + function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + { + if (!currentOptions.decodeEntities) { + throw new Error( + `[@vue/compiler-core] decodeEntities option is required in browser builds.` + ); + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; + } + + function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + !!getSingleElementRoot(root) + ); + } + function getSingleElementRoot(root) { + const children = root.children.filter((x) => x.type !== 3); + return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null; + } + function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) { + child.codegenNode.arguments.push( + -1 + (` /* ${PatchFlagNames[-1]} */` ) + ); + } + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + exp.needArraySpread = true; + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } + } + function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } + } + const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS + ]); + function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; + } + function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; + } + function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } + } + + function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig + }) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: NOOP, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + return context; + } + function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + } + function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const singleElementRootChild = getSingleElementRoot(root); + if (singleElementRootChild && singleElementRootChild.codegenNode) { + const codegenNode = singleElementRootChild.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = children[0]; + } + } else if (children.length > 1) { + let patchFlag = 64; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; + } + function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } + } + function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } + } + function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; + } + + const PURE_ANNOTATION = `/*@__PURE__*/`; + const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; + function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false + }) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + return context; + } + function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const preambleContext = context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: ``, + map: context.map ? context.map.toJSON() : void 0 + }; + } + function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); + } + function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } + } + function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; + } + function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; + } + function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); + } + function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node, -3 /* Unknown */); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } + } + function genNode(node, context) { + if (isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + /* v8 ignore start */ + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } + } + function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); + } + function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); + } + function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); + } + function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } + } + function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } + } + function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); + } + function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + if (patchFlag < 0) { + patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + patchFlagString = patchFlag + ` /* ${flagNames} */`; + } + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } + } + function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); + } + function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); + } + function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); + } + function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); + } + function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + push(`)`); + } + } + function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); + } + function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } + } + + const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" + ); + const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; + function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 46, + node.loc, + void 0, + message + ) + ); + } + } + + const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } + }; + function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } + } + + const transformIf = createStructuralDirectiveTransform( + /^(?:if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } + ); + function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && isCommentOrWhitespace(sibling)) { + context.removeNode(sibling); + if (sibling.type === 3) { + comments.unshift(sibling); + } + continue; + } + if (sibling && sibling.type === 9) { + if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && (context.parent.tag === "transition" || context.parent.tag === "Transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } + } + function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; + } + function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } + } + function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } + } + function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; + } + function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } + } + + const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + keyProp && keyProp.type === 7; + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } + ); + function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) onExit(); + }; + } + function finalizeForParseResult(result, context) { + if (result.finalized) return; + { + validateBrowserExpression(result.source, context); + if (result.key) { + validateBrowserExpression( + result.key, + context, + true + ); + } + if (result.index) { + validateBrowserExpression( + result.index, + context, + true + ); + } + if (result.value) { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; + } + function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); + } + function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); + } + + const defaultFallback = createSimpleExpression(`undefined`, false); + const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } + }; + const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc + ); + function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(?:-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (!isCommentOrWhitespace(prev)) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + !implicitDefaultChildren.every(isWhitespaceText)) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; + } + function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); + } + function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; + } + + const directiveImportMap = /* @__PURE__ */ new WeakMap(); + const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(47, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; + }; + function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || false) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); + } + function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || false)) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || false)) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushRefVForMarker(); + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; + } + function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; + } + function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } + } + function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); + } + function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; + } + function isComponentTag(tag) { + return tag === "component" || tag === "Component"; + } + + const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } + }; + function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; + } + + const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onError(createCompilerError(52, arg.loc)); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp); + const isInlineStatement = !(isMemberExp || isFnExpression(exp)); + const hasMultipleStatements = exp.content.includes(`;`); + { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; + }; + + const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + exp = void 0; + } + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = arg.content ? `${arg.content} || ""` : `""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; + }; + const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } + }; + + const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + true)) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } + }; + + const seen$1 = /* @__PURE__ */ new WeakSet(); + const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } + }; + + const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + if (bindingType === "literal-const" || bindingType === "setup-const") { + context.onError(createCompilerError(45, exp.loc)); + return createTransformProps(); + } + if (!expString.trim() || !isMemberExpression(exp) && true) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); + }; + function createTransformProps(props = []) { + return { props }; + } + + const seen = /* @__PURE__ */ new WeakSet(); + const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node) || context.inSSR) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } + }; + + const transformVBindShorthand = (node, context) => { + if (node.type === 1) { + for (const prop of node.props) { + if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser + prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) { + const arg = prop.arg; + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 53, + arg.loc + ) + ); + prop.exp = createSimpleExpression("", true, arg.loc); + } else { + const propName = camelize(arg.content); + if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424 + propName[0] === "-") { + prop.exp = createSimpleExpression(propName, false, arg.loc); + } + } + } + } + } + }; + + function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformVBindShorthand, + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[], + ...[transformExpression] , + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; + } + function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(48)); + } else if (isModuleMode) { + onError(createCompilerError(49)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(50)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(51)); + } + const resolvedOptions = extend({}, options, { + prefixIdentifiers + }); + const ast = isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); + } + + const noopDirectiveTransform = () => ({ props: [] }); + + const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` ); + const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol( + `vModelCheckbox` + ); + const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` ); + const V_MODEL_SELECT = /* @__PURE__ */ Symbol( + `vModelSelect` + ); + const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol( + `vModelDynamic` + ); + const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol( + `vOnModifiersGuard` + ); + const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol( + `vOnKeysGuard` + ); + const V_SHOW = /* @__PURE__ */ Symbol(`vShow` ); + const TRANSITION = /* @__PURE__ */ Symbol(`Transition` ); + const TRANSITION_GROUP = /* @__PURE__ */ Symbol( + `TransitionGroup` + ); + registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` + }); + + let decoder; + function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } + } + + const parserOptions = { + parseMode: "html", + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } + }; + + const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } + }; + const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); + }; + + function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); + } + const DOMErrorMessages = { + [54]: `v-html is missing expression.`, + [55]: `v-html will override element children.`, + [56]: `v-text is missing expression.`, + [57]: `v-text will override element children.`, + [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [59]: `v-model argument is not supported on plain elements.`, + [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [62]: `v-show is missing expression.`, + [63]: `<Transition> expects exactly one child element or component.`, + [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` + }; + + const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(54, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(55, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; + }; + + const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(56, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(57, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; + }; + + const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 59, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findDir(node, "bind"); + if (value && isStaticArgOf(value.arg, "value")) { + context.onError( + createDOMCompilerError( + 61, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 60, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 58, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; + }; + + const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); + const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` + ); + const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); + const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`); + const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; + }; + const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; + }; + const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); + }; + + const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(62, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; + }; + + const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 63, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + nameLoc: node.loc, + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } + }; + function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => !isCommentOrWhitespace(c) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); + } + + const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 64, + node.loc + ) + ); + context.removeNode(); + } + }; + + function isValidHTMLNesting(parent, child) { + if (parent === "template") { + return true; + } + if (parent in onlyValidChildren) { + return onlyValidChildren[parent].has(child); + } + if (child in onlyValidParents) { + return onlyValidParents[child].has(parent); + } + if (parent in knownInvalidChildren) { + if (knownInvalidChildren[parent].has(child)) return false; + } + if (child in knownInvalidParents) { + if (knownInvalidParents[child].has(parent)) return false; + } + return true; + } + const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]); + const emptySet = /* @__PURE__ */ new Set([]); + const onlyValidChildren = { + head: /* @__PURE__ */ new Set([ + "base", + "basefront", + "bgsound", + "link", + "meta", + "title", + "noscript", + "noframes", + "style", + "script", + "template" + ]), + optgroup: /* @__PURE__ */ new Set(["option"]), + select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]), + // table + table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]), + tr: /* @__PURE__ */ new Set(["td", "th"]), + colgroup: /* @__PURE__ */ new Set(["col"]), + tbody: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["tr"]), + tfoot: /* @__PURE__ */ new Set(["tr"]), + // these elements can not have any children elements + script: emptySet, + iframe: emptySet, + option: emptySet, + textarea: emptySet, + style: emptySet, + title: emptySet + }; + const onlyValidParents = { + // sections + html: emptySet, + body: /* @__PURE__ */ new Set(["html"]), + head: /* @__PURE__ */ new Set(["html"]), + // table + td: /* @__PURE__ */ new Set(["tr"]), + colgroup: /* @__PURE__ */ new Set(["table"]), + caption: /* @__PURE__ */ new Set(["table"]), + tbody: /* @__PURE__ */ new Set(["table"]), + tfoot: /* @__PURE__ */ new Set(["table"]), + col: /* @__PURE__ */ new Set(["colgroup"]), + th: /* @__PURE__ */ new Set(["tr"]), + thead: /* @__PURE__ */ new Set(["table"]), + tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]), + // data list + dd: /* @__PURE__ */ new Set(["dl", "div"]), + dt: /* @__PURE__ */ new Set(["dl", "div"]), + // other + figcaption: /* @__PURE__ */ new Set(["figure"]), + // li: new Set(["ul", "ol"]), + summary: /* @__PURE__ */ new Set(["details"]), + area: /* @__PURE__ */ new Set(["map"]) + }; + const knownInvalidChildren = { + p: /* @__PURE__ */ new Set([ + "address", + "article", + "aside", + "blockquote", + "center", + "details", + "dialog", + "dir", + "div", + "dl", + "fieldset", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hgroup", + "hr", + "li", + "main", + "nav", + "menu", + "ol", + "p", + "pre", + "section", + "table", + "ul" + ]), + svg: /* @__PURE__ */ new Set([ + "b", + "blockquote", + "br", + "code", + "dd", + "div", + "dl", + "dt", + "em", + "embed", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "img", + "li", + "menu", + "meta", + "ol", + "p", + "pre", + "ruby", + "s", + "small", + "span", + "strong", + "sub", + "sup", + "table", + "u", + "ul", + "var" + ]) + }; + const knownInvalidParents = { + a: /* @__PURE__ */ new Set(["a"]), + button: /* @__PURE__ */ new Set(["button"]), + dd: /* @__PURE__ */ new Set(["dd", "dt"]), + dt: /* @__PURE__ */ new Set(["dd", "dt"]), + form: /* @__PURE__ */ new Set(["form"]), + li: /* @__PURE__ */ new Set(["li"]), + h1: headings, + h2: headings, + h3: headings, + h4: headings, + h5: headings, + h6: headings + }; + + const validateHtmlNesting = (node, context) => { + if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) { + const error = new SyntaxError( + `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.` + ); + error.loc = node.loc; + context.onWarn(error); + } + }; + + const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition, validateHtmlNesting] + ]; + const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow + }; + function compile(src, options = {}) { + return baseCompile( + src, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); + } + + { + initDev(); + } + const compileCache = /* @__PURE__ */ Object.create(null); + function compileToFunction(template, options) { + if (!isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + warn(`invalid template option: `, template); + return NOOP; + } + } + const key = genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function(code)() ; + render._rc = true; + return compileCache[key] = render; + } + registerRuntimeCompiler(compileToFunction); + + exports.BaseTransition = BaseTransition; + exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; + exports.Comment = Comment; + exports.DeprecationTypes = DeprecationTypes; + exports.EffectScope = EffectScope; + exports.ErrorCodes = ErrorCodes; + exports.ErrorTypeStrings = ErrorTypeStrings; + exports.Fragment = Fragment; + exports.KeepAlive = KeepAlive; + exports.ReactiveEffect = ReactiveEffect; + exports.Static = Static; + exports.Suspense = Suspense; + exports.Teleport = Teleport; + exports.Text = Text; + exports.TrackOpTypes = TrackOpTypes; + exports.Transition = Transition; + exports.TransitionGroup = TransitionGroup; + exports.TriggerOpTypes = TriggerOpTypes; + exports.VueElement = VueElement; + exports.assertNumber = assertNumber; + exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; + exports.callWithErrorHandling = callWithErrorHandling; + exports.camelize = camelize; + exports.capitalize = capitalize; + exports.cloneVNode = cloneVNode; + exports.compatUtils = compatUtils; + exports.compile = compileToFunction; + exports.computed = computed; + exports.createApp = createApp; + exports.createBlock = createBlock; + exports.createCommentVNode = createCommentVNode; + exports.createElementBlock = createElementBlock; + exports.createElementVNode = createBaseVNode; + exports.createHydrationRenderer = createHydrationRenderer; + exports.createPropsRestProxy = createPropsRestProxy; + exports.createRenderer = createRenderer; + exports.createSSRApp = createSSRApp; + exports.createSlots = createSlots; + exports.createStaticVNode = createStaticVNode; + exports.createTextVNode = createTextVNode; + exports.createVNode = createVNode; + exports.customRef = customRef; + exports.defineAsyncComponent = defineAsyncComponent; + exports.defineComponent = defineComponent; + exports.defineCustomElement = defineCustomElement; + exports.defineEmits = defineEmits; + exports.defineExpose = defineExpose; + exports.defineModel = defineModel; + exports.defineOptions = defineOptions; + exports.defineProps = defineProps; + exports.defineSSRCustomElement = defineSSRCustomElement; + exports.defineSlots = defineSlots; + exports.devtools = devtools; + exports.effect = effect; + exports.effectScope = effectScope; + exports.getCurrentInstance = getCurrentInstance; + exports.getCurrentScope = getCurrentScope; + exports.getCurrentWatcher = getCurrentWatcher; + exports.getTransitionRawChildren = getTransitionRawChildren; + exports.guardReactiveProps = guardReactiveProps; + exports.h = h; + exports.handleError = handleError; + exports.hasInjectionContext = hasInjectionContext; + exports.hydrate = hydrate; + exports.hydrateOnIdle = hydrateOnIdle; + exports.hydrateOnInteraction = hydrateOnInteraction; + exports.hydrateOnMediaQuery = hydrateOnMediaQuery; + exports.hydrateOnVisible = hydrateOnVisible; + exports.initCustomFormatter = initCustomFormatter; + exports.initDirectivesForSSR = initDirectivesForSSR; + exports.inject = inject; + exports.isMemoSame = isMemoSame; + exports.isProxy = isProxy; + exports.isReactive = isReactive; + exports.isReadonly = isReadonly; + exports.isRef = isRef; + exports.isRuntimeOnly = isRuntimeOnly; + exports.isShallow = isShallow; + exports.isVNode = isVNode; + exports.markRaw = markRaw; + exports.mergeDefaults = mergeDefaults; + exports.mergeModels = mergeModels; + exports.mergeProps = mergeProps; + exports.nextTick = nextTick; + exports.nodeOps = nodeOps; + exports.normalizeClass = normalizeClass; + exports.normalizeProps = normalizeProps; + exports.normalizeStyle = normalizeStyle; + exports.onActivated = onActivated; + exports.onBeforeMount = onBeforeMount; + exports.onBeforeUnmount = onBeforeUnmount; + exports.onBeforeUpdate = onBeforeUpdate; + exports.onDeactivated = onDeactivated; + exports.onErrorCaptured = onErrorCaptured; + exports.onMounted = onMounted; + exports.onRenderTracked = onRenderTracked; + exports.onRenderTriggered = onRenderTriggered; + exports.onScopeDispose = onScopeDispose; + exports.onServerPrefetch = onServerPrefetch; + exports.onUnmounted = onUnmounted; + exports.onUpdated = onUpdated; + exports.onWatcherCleanup = onWatcherCleanup; + exports.openBlock = openBlock; + exports.patchProp = patchProp; + exports.popScopeId = popScopeId; + exports.provide = provide; + exports.proxyRefs = proxyRefs; + exports.pushScopeId = pushScopeId; + exports.queuePostFlushCb = queuePostFlushCb; + exports.reactive = reactive; + exports.readonly = readonly; + exports.ref = ref; + exports.registerRuntimeCompiler = registerRuntimeCompiler; + exports.render = render; + exports.renderList = renderList; + exports.renderSlot = renderSlot; + exports.resolveComponent = resolveComponent; + exports.resolveDirective = resolveDirective; + exports.resolveDynamicComponent = resolveDynamicComponent; + exports.resolveFilter = resolveFilter; + exports.resolveTransitionHooks = resolveTransitionHooks; + exports.setBlockTracking = setBlockTracking; + exports.setDevtoolsHook = setDevtoolsHook; + exports.setTransitionHooks = setTransitionHooks; + exports.shallowReactive = shallowReactive; + exports.shallowReadonly = shallowReadonly; + exports.shallowRef = shallowRef; + exports.ssrContextKey = ssrContextKey; + exports.ssrUtils = ssrUtils; + exports.stop = stop; + exports.toDisplayString = toDisplayString; + exports.toHandlerKey = toHandlerKey; + exports.toHandlers = toHandlers; + exports.toRaw = toRaw; + exports.toRef = toRef; + exports.toRefs = toRefs; + exports.toValue = toValue; + exports.transformVNodeArgs = transformVNodeArgs; + exports.triggerRef = triggerRef; + exports.unref = unref; + exports.useAttrs = useAttrs; + exports.useCssModule = useCssModule; + exports.useCssVars = useCssVars; + exports.useHost = useHost; + exports.useId = useId; + exports.useModel = useModel; + exports.useSSRContext = useSSRContext; + exports.useShadowRoot = useShadowRoot; + exports.useSlots = useSlots; + exports.useTemplateRef = useTemplateRef; + exports.useTransitionState = useTransitionState; + exports.vModelCheckbox = vModelCheckbox; + exports.vModelDynamic = vModelDynamic; + exports.vModelRadio = vModelRadio; + exports.vModelSelect = vModelSelect; + exports.vModelText = vModelText; + exports.vShow = vShow; + exports.version = version; + exports.warn = warn; + exports.watch = watch; + exports.watchEffect = watchEffect; + exports.watchPostEffect = watchPostEffect; + exports.watchSyncEffect = watchSyncEffect; + exports.withAsyncContext = withAsyncContext; + exports.withCtx = withCtx; + exports.withDefaults = withDefaults; + exports.withDirectives = withDirectives; + exports.withKeys = withKeys; + exports.withMemo = withMemo; + exports.withModifiers = withModifiers; + exports.withScopeId = withScopeId; + + return exports; + +})({}); diff --git a/node_modules/vue/dist/vue.global.prod.js b/node_modules/vue/dist/vue.global.prod.js new file mode 100644 index 0000000..3778475 --- /dev/null +++ b/node_modules/vue/dist/vue.global.prod.js @@ -0,0 +1,13 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,d,h,p,f,g,m;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,A=(e,t)=>N.call(e,t),E=Array.isArray,I=e=>"function"==typeof e,R=e=>"string"==typeof e,O=e=>"symbol"==typeof e,M=e=>null!==e&&"object"==typeof e,P=e=>(M(e)||I(e))&&I(e.then)&&I(e.catch),L=Object.prototype.toString,$=e=>R(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,F=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),D=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},j=/-\w/g,B=V(e=>e.replace(j,e=>e.slice(1).toUpperCase())),U=/\B([A-Z])/g,H=V(e=>e.replace(U,"-$1").toLowerCase()),q=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),W=V(e=>e?`on${q(e)}`:""),K=(e,t)=>!Object.is(e,t),z=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},J=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},G=e=>{let t=parseFloat(e);return isNaN(t)?e:t},X=e=>{let t=R(e)?Number(e):NaN;return isNaN(t)?e:t},Q=()=>i||(i="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Z=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function Y(e){if(E(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=R(r)?er(r):Y(r);if(i)for(let e in i)t[e]=i[e]}return t}if(R(e)||M(e))return e}let ee=/;(?![^(]*\))/g,et=/:([^]+)/,en=/\/\*[^]*?\*\//g;function er(e){let t={};return e.replace(en,"").split(ee).forEach(e=>{if(e){let n=e.split(et);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ei(e){let t="";if(R(e))t=e;else if(E(e))for(let n=0;n<e.length;n++){let r=ei(e[n]);r&&(t+=r+" ")}else if(M(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}let el=y("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),es=y("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),eo=y("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),ea=y("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),ec=y("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function eu(e,t){let n,r;if(e===t)return!0;let i="[object Date]"===(n=e,L.call(n)),l="[object Date]"===(r=t,L.call(r));if(i||l)return!!i&&!!l&&e.getTime()===t.getTime();if(i=O(e),l=O(t),i||l)return e===t;if(i=E(e),l=E(t),i||l)return!!i&&!!l&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=eu(e[r],t[r]);return n}(e,t);if(i=M(e),l=M(t),i||l){if(!i||!l||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let r=e.hasOwnProperty(n),i=t.hasOwnProperty(n);if(r&&!i||!r&&i||!eu(e[n],t[n]))return!1}}return String(e)===String(t)}function ed(e,t){return e.findIndex(e=>eu(e,t))}let eh=e=>!!(e&&!0===e.__v_isRef),ep=e=>R(e)?e:null==e?"":E(e)||M(e)&&(e.toString===L||!I(e.toString))?eh(e)?ep(e.value):JSON.stringify(e,ef,2):String(e),ef=(e,t)=>{let n;if(eh(t))return ef(e,t.value);if("[object Map]"===(n=t,L.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[eg(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,L.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eg(e))};else{if(O(t))return eg(t);let e;if(M(t)&&!E(t)&&"[object Object]"!==(e=t,L.call(e)))return String(t)}}return t},eg=(e,t="")=>{var n;return O(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class em{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=l;try{return l=this,e()}finally{l=t}}}on(){1==++this._on&&(this.prevScope=l,l=this)}off(){this._on>0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}let ev=new WeakSet;class ey{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,l&&l.active&&l.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,ev.has(this)&&(ev.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||e_(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,eR(this),ex(this);let e=s,t=eN;s=this,eN=!0;try{return this.fn()}finally{eC(this),s=e,eN=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)ew(e);this.deps=this.depsTail=void 0,eR(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?ev.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ek(this)&&this.run()}get dirty(){return ek(this)}}let eb=0;function e_(e,t=!1){if(e.flags|=8,t){e.next=a,a=e;return}e.next=o,o=e}function eS(){let e;if(!(--eb>0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ex(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),ew(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ek(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eT(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eT(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eO)||(e.globalVersion=eO,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ek(e))))return;e.flags|=2;let t=e.dep,n=s,r=eN;s=e,eN=!0;try{ex(e);let n=e.fn(e._value);(0===t.version||K(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eN=r,eC(e),e.flags&=-3}}function ew(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ew(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eN=!0,eA=[];function eE(){eA.push(eN),eN=!1}function eI(){let e=eA.pop();eN=void 0===e||e}function eR(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eO=0;class eM{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eP{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!s||!eN||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eM(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eO++,this.notify(e)}notify(e){eb++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eS()}}}let eL=new WeakMap,e$=Symbol(""),eF=Symbol(""),eD=Symbol("");function eV(e,t,n){if(eN&&s){let t=eL.get(e);t||eL.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eP),r.map=t,r.key=n),r.track()}}function ej(e,t,n,r,i,l){let s=eL.get(e);if(!s)return void eO++;let o=e=>{e&&e.trigger()};if(eb++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&$(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eD||!O(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eD)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(e$));"[object Map]"===(t=e,L.call(t))&&o(s.get(eF))}break;case"delete":if(!i){let t;o(s.get(e$));"[object Map]"===(t=e,L.call(t))&&o(s.get(eF))}break;case"set":let a;"[object Map]"===(a=e,L.call(a))&&o(s.get(e$))}}eS()}function eB(e){let t=tm(e);return t===e?t:(eV(t,"iterate",eD),tf(e)?t:t.map(ty))}function eU(e){return eV(e=tm(e),"iterate",eD),e}function eH(e,t){return tp(e)?th(e)?tb(ty(t)):tb(t):ty(t)}let eq={__proto__:null,[Symbol.iterator](){return eW(this,Symbol.iterator,e=>eH(this,e))},concat(...e){return eB(this).concat(...e.map(e=>E(e)?eB(e):e))},entries(){return eW(this,"entries",e=>(e[1]=eH(this,e[1]),e))},every(e,t){return ez(this,"every",e,t,void 0,arguments)},filter(e,t){return ez(this,"filter",e,t,e=>e.map(e=>eH(this,e)),arguments)},find(e,t){return ez(this,"find",e,t,e=>eH(this,e),arguments)},findIndex(e,t){return ez(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ez(this,"findLast",e,t,e=>eH(this,e),arguments)},findLastIndex(e,t){return ez(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ez(this,"forEach",e,t,void 0,arguments)},includes(...e){return eG(this,"includes",e)},indexOf(...e){return eG(this,"indexOf",e)},join(e){return eB(this).join(e)},lastIndexOf(...e){return eG(this,"lastIndexOf",e)},map(e,t){return ez(this,"map",e,t,void 0,arguments)},pop(){return eX(this,"pop")},push(...e){return eX(this,"push",e)},reduce(e,...t){return eJ(this,"reduce",e,t)},reduceRight(e,...t){return eJ(this,"reduceRight",e,t)},shift(){return eX(this,"shift")},some(e,t){return ez(this,"some",e,t,void 0,arguments)},splice(...e){return eX(this,"splice",e)},toReversed(){return eB(this).toReversed()},toSorted(e){return eB(this).toSorted(e)},toSpliced(...e){return eB(this).toSpliced(...e)},unshift(...e){return eX(this,"unshift",e)},values(){return eW(this,"values",e=>eH(this,e))}};function eW(e,t,n){let r=eU(e),i=r[t]();return r===e||tf(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let eK=Array.prototype;function ez(e,t,n,r,i,l){let s=eU(e),o=s!==e&&!tf(e),a=s[t];if(a!==eK[t]){let t=a.apply(e,l);return o?ty(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eH(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eJ(e,t,n,r){let i=eU(e),l=n;return i!==e&&(tf(e)?n.length>3&&(l=function(t,r,i){return n.call(this,t,r,i,e)}):l=function(t,r,i){return n.call(this,t,eH(e,r),i,e)}),i[t](l,...r)}function eG(e,t,n){let r=tm(e);eV(r,"iterate",eD);let i=r[t](...n);return(-1===i||!1===i)&&tg(n[0])?(n[0]=tm(n[0]),r[t](...n)):i}function eX(e,t,n=[]){eE(),eb++;let r=tm(e)[t].apply(e,n);return eS(),eI(),r}let eQ=y("__proto__,__v_isRef,__isVue"),eZ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(O));function eY(e){O(e)||(e=String(e));let t=tm(this);return eV(t,"has",e),t.hasOwnProperty(e)}class e0{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?to:ts:i?tl:ti).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eq[t]))return e;if("hasOwnProperty"===t)return eY}let s=Reflect.get(e,t,t_(e)?e:n);if((O(t)?eZ.has(t):eQ(t))||(r||eV(e,"get",t),i))return s;if(t_(s)){let e=l&&$(t)?s:s.value;return r&&M(e)?tu(e):e}return M(s)?r?tu(s):ta(s):s}}class e1 extends e0{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=E(e)&&$(t);if(!this._isShallow){let e=tp(i);if(tf(n)||tp(n)||(i=tm(i),n=tm(n)),!l&&t_(i)&&!t_(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)<e.length:A(e,t),o=Reflect.set(e,t,n,t_(e)?e:r);return e===tm(r)&&(s?K(n,i)&&ej(e,"set",t,n):ej(e,"add",t,n)),o}deleteProperty(e,t){let n=A(e,t);e[t];let r=Reflect.deleteProperty(e,t);return r&&n&&ej(e,"delete",t,void 0),r}has(e,t){let n=Reflect.has(e,t);return O(t)&&eZ.has(t)||eV(e,"has",t),n}ownKeys(e){return eV(e,"iterate",E(e)?"length":e$),Reflect.ownKeys(e)}}class e2 extends e0{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let e6=new e1,e3=new e2,e4=new e1(!0),e8=new e2(!0),e5=e=>e;function e9(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e7(e,t){let n,r=(T(n={get(n){let r=this.__v_raw,i=tm(r),l=tm(n);e||(K(n,l)&&eV(i,"get",n),eV(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e5:e?tb:ty;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eV(tm(t),"iterate",e$),t.size},has(t){let n=this.__v_raw,r=tm(n),i=tm(t);return e||(K(t,i)&&eV(r,"has",t),eV(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tm(l),o=t?e5:e?tb:ty;return e||eV(s,"iterate",e$),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:e9("add"),set:e9("set"),delete:e9("delete"),clear:e9("clear")}:{add(e){t||tf(e)||tp(e)||(e=tm(e));let n=tm(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),ej(n,"add",e,e)),this},set(e,n){t||tf(n)||tp(n)||(n=tm(n));let r=tm(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tm(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?K(n,o)&&ej(r,"set",e,n):ej(r,"add",e,n),this},delete(e){let t=tm(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tm(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&ej(t,"delete",e,void 0),l},clear(){let e=tm(this),t=0!==e.size,n=e.clear();return t&&ej(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tm(l),o="[object Map]"===(i=s,L.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e5:e?tb:ty;return e||eV(s,"iterate","keys"===r&&o?eF:e$),T(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(A(r,n)&&n in t?r:t,n,i)}let te={get:e7(!1,!1)},tt={get:e7(!1,!0)},tn={get:e7(!0,!1)},tr={get:e7(!0,!0)},ti=new WeakMap,tl=new WeakMap,ts=new WeakMap,to=new WeakMap;function ta(e){return tp(e)?e:td(e,!1,e6,te,ti)}function tc(e){return td(e,!1,e4,tt,tl)}function tu(e){return td(e,!0,e3,tn,ts)}function td(e,t,n,r,i){var l;let s;if(!M(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=l,L.call(s)).slice(8,-1));if(0===o)return e;let a=i.get(e);if(a)return a;let c=new Proxy(e,2===o?r:n);return i.set(e,c),c}function th(e){return tp(e)?th(e.__v_raw):!!(e&&e.__v_isReactive)}function tp(e){return!!(e&&e.__v_isReadonly)}function tf(e){return!!(e&&e.__v_isShallow)}function tg(e){return!!e&&!!e.__v_raw}function tm(e){let t=e&&e.__v_raw;return t?tm(t):e}function tv(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&J(e,"__v_skip",!0),e}let ty=e=>M(e)?ta(e):e,tb=e=>M(e)?tu(e):e;function t_(e){return!!e&&!0===e.__v_isRef}function tS(e){return tC(e,!1)}function tx(e){return tC(e,!0)}function tC(e,t){return t_(e)?e:new tk(e,t)}class tk{constructor(e,t){this.dep=new eP,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tm(e),this._value=t?e:ty(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tf(e)||tp(e);K(e=n?e:tm(e),t)&&(this._rawValue=e,this._value=n?e:ty(e),this.dep.trigger())}}function tT(e){return t_(e)?e.value:e}let tw={get:(e,t,n)=>"__v_raw"===t?e:tT(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return t_(i)&&!t_(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tN(e){return th(e)?e:new Proxy(e,tw)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eP,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tE(e){return new tA(e)}class tI{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=tm(e);let r=!0,i=e;if(!E(e)||!$(String(t)))do r=!tg(i)||tf(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tT(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&t_(this._raw[this._key])){let t=this._object[this._key];if(t_(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eL.get(e))&&n.get(t)}}class tR{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tO{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eP(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return e_(this,!0),!0}get value(){let e=this.dep.track();return eT(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tM={},tP=new WeakMap;function tL(e,t=!1,n=g){if(n){let t=tP.get(n);t||tP.set(n,t=[]),t.push(e)}}function t$(e,t=1/0,n){if(t<=0||!M(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,t_(e))t$(e.value,t,n);else if(E(e))for(let r=0;r<e.length;r++)t$(e[r],t,n);else{let r,i;if("[object Set]"===(r=e,L.call(r))||"[object Map]"===(i=e,L.call(i)))e.forEach(e=>{t$(e,t,n)});else{let r;if("[object Object]"===(r=e,L.call(r))){for(let r in e)t$(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&t$(e[r],t,n)}}}return e}function tF(e,t,n,r){try{return r?e(...r):e()}catch(e){tV(e,t,n)}}function tD(e,t,n,r){if(I(e)){let i=tF(e,t,n,r);return i&&P(i)&&i.catch(e=>{tV(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l<e.length;l++)i.push(tD(e[l],t,n,r));return i}}function tV(e,t,n,r=!0){let i=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||b;if(t){let r=t.parent,i=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){let t=r.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,i,s))return}r=r.parent}if(l){eE(),tF(l,null,10,[e,i,s]),eI();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,r,s)}let tj=[],tB=-1,tU=[],tH=null,tq=0,tW=Promise.resolve(),tK=null;function tz(e){let t=tK||tW;return e?t.then(this?e.bind(this):e):t}function tJ(e){if(!(1&e.flags)){let t=tY(e),n=tj[tj.length-1];!n||!(2&e.flags)&&t>=tY(n)?tj.push(e):tj.splice(function(e){let t=tB+1,n=tj.length;for(;t<n;){let r=t+n>>>1,i=tj[r],l=tY(i);l<e||l===e&&2&i.flags?t=r+1:n=r}return t}(t),0,e),e.flags|=1,tG()}}function tG(){tK||(tK=tW.then(function e(t){try{for(tB=0;tB<tj.length;tB++){let e=tj[tB];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),tF(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tB<tj.length;tB++){let e=tj[tB];e&&(e.flags&=-2)}tB=-1,tj.length=0,tZ(),tK=null,(tj.length||tU.length)&&e()}}))}function tX(e){E(e)?tU.push(...e):tH&&-1===e.id?tH.splice(tq+1,0,e):1&e.flags||(tU.push(e),e.flags|=1),tG()}function tQ(e,t,n=tB+1){for(;n<tj.length;n++){let t=tj[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tj.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function tZ(e){if(tU.length){let e=[...new Set(tU)].sort((e,t)=>tY(e)-tY(t));if(tU.length=0,tH)return void tH.push(...e);for(tq=0,tH=e;tq<tH.length;tq++){let e=tH[tq];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}tH=null,tq=0}}let tY=e=>null==e.id?2&e.flags?-1:1/0:e.id,t0=null,t1=null;function t2(e){let t=t0;return t0=e,t1=e&&e.type.__scopeId||null,t}function t6(e,t=t0,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&is(-1);let l=t2(t);try{i=e(...n)}finally{t2(l),r._d&&is(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function t3(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s<i.length;s++){let o=i[s];l&&(o.oldValue=l[s].value);let a=o.dir[r];a&&(eE(),tD(a,n,8,[e.el,o,e,t]),eI())}}function t4(e,t){if(iw){let n=iw.provides,r=iw.parent&&iw.parent.provides;r===n&&(n=iw.provides=Object.create(r)),n[e]=t}}function t8(e,t,n=!1){let r=iN();if(r||rx){let i=rx?rx._context.provides:r?null==r.parent||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&I(t)?t.call(r&&r.proxy):t}}let t5=Symbol.for("v-scx");function t9(e,t){return t7(e,null,{flush:"sync"})}function t7(e,t,n=b){let{flush:r}=n,i=T({},n),s=iw;i.call=(e,t,n)=>tD(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{rW(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():tJ(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:d,augmentJob:h,call:p}=n,f=e=>c?e:tf(e)||!1===c||0===c?t$(e,1):t$(e),m=!1,y=!1;if(t_(e)?(i=()=>e.value,m=tf(e)):th(e)?(i=()=>f(e),m=!0):E(e)?(y=!0,m=e.some(e=>th(e)||tf(e)),i=()=>e.map(e=>t_(e)?e.value:th(e)?f(e):I(e)?p?p(e,2):e():void 0)):i=I(e)?t?p?()=>p(e,2):e:()=>{if(s){eE();try{s()}finally{eI()}}let t=g;g=r;try{return p?p(e,3,[o]):e(o)}finally{g=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>t$(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&w(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tM):tM,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||m||(y?e.some((e,t)=>K(e,C[t])):K(e,C))){s&&s();let n=g;g=r;try{let n=[e,C===tM?void 0:y&&C[0]===tM?[]:C,o];C=e,p?p(t,3,n):t(...n)}finally{g=n}}}else r.run()};return h&&h(k),(r=new ey(i)).scheduler=d?()=>d(k,!1):k,o=e=>tL(e,!1,r),s=r.onStop=()=>{let e=tP.get(r);if(e){if(p)p(e,4);else for(let t of e)t();tP.delete(r)}},t?a?k(!0):C=r.run():d?d(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function ne(e,t,n){let r,i=this.proxy,l=R(e)?e.includes(".")?nt(i,e):()=>i[e]:e.bind(i,i);I(t)?r=t:(r=t.handler,n=t);let s=iA(this),o=t7(l,r.bind(i),n);return s(),o}function nt(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let nn=Symbol("_vte"),nr=e=>e&&(e.disabled||""===e.disabled),ni=e=>e&&(e.defer||""===e.defer),nl=e=>"u">typeof SVGElement&&e instanceof SVGElement,ns=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,no=(e,t)=>{let n=e&&e.to;return R(n)?t?t(n):null:n},na={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:h,o:{insert:p,querySelector:f,createText:g}}=c,m=nr(t.props),{shapeFlag:y,children:b,dynamicChildren:_}=t;if(null==e){let e=t.el=g(""),c=t.anchor=g("");p(e,n,r),p(c,n,r);let d=(e,t)=>{16&y&&u(b,e,t,i,l,s,o,a)},h=()=>{let e=t.target=no(t.props,f),n=nd(e,t,g,p);e&&("svg"!==s&&nl(e)?s="svg":"mathml"!==s&&ns(e)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(e),m||(d(e,n),nu(t,!1)))};m&&(d(n,c),nu(t,!0)),ni(t.props)?(t.el.__isMounted=!1,rW(()=>{h(),delete t.el.__isMounted},l)):h()}else{if(ni(t.props)&&!1===e.el.__isMounted)return void rW(()=>{na.process(e,t,n,r,i,l,s,o,a,c)},l);t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,p=t.target=e.target,g=t.targetAnchor=e.targetAnchor,y=nr(e.props),b=y?n:p,S=y?u:g;if("svg"===s||nl(p)?s="svg":("mathml"===s||ns(p))&&(s="mathml"),_?(h(e.dynamicChildren,_,b,i,l,s,o),rQ(e,t,!0)):a||d(e,t,b,S,i,l,s,o,!1),m)y?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nc(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=no(t.props,f);e&&nc(t,e,null,c,0)}else y&&nc(t,p,g,c,1);nu(t,m)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:h}=e;if(d&&(i(c),i(u)),l&&i(a),16&s){let e=l||!nr(h);for(let i=0;i<o.length;i++){let l=o[i];r(l,t,n,e,!!l.dynamicChildren)}}},move:nc,hydrate:function(e,t,n,r,i,l,{o:{nextSibling:s,parentNode:o,querySelector:a,insert:c,createText:u}},d){function h(e,n){let r=n;for(;r;){if(r&&8===r.nodeType){if("teleport start anchor"===r.data)t.targetStart=r;else if("teleport anchor"===r.data){t.targetAnchor=r,e._lpa=t.targetAnchor&&s(t.targetAnchor);break}}r=s(r)}}function p(e,t){t.anchor=d(s(e),t,o(e),n,r,i,l)}let f=t.target=no(t.props,a),g=nr(t.props);if(f){let a=f._lpa||f.firstChild;16&t.shapeFlag&&(g?(p(e,t),h(f,a),t.targetAnchor||nd(f,t,u,c,o(e)===f?e:null)):(t.anchor=s(e),h(f,a),t.targetAnchor||nd(f,t,u,c),d(a&&s(a),t,f,n,r,i,l))),nu(t,g)}else g&&16&t.shapeFlag&&(p(e,t),t.targetStart=e,t.targetAnchor=s(e));return t.anchor&&s(t.anchor)}};function nc(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,d=2===l;if(d&&r(s,t,n),(!d||nr(u))&&16&a)for(let e=0;e<c.length;e++)i(c[e],t,n,2);d&&r(o,t,n)}function nu(e,t){let n=e.ctx;if(n&&n.ut){let r,i;for(t?(r=e.el,i=e.anchor):(r=e.targetStart,i=e.targetAnchor);r&&r!==i;)1===r.nodeType&&r.setAttribute("data-v-owner",n.uid),r=r.nextSibling;n.ut()}}function nd(e,t,n,r,i=null){let l=t.targetStart=n(""),s=t.targetAnchor=n("");return l[nn]=s,e&&(r(l,e,i),r(s,e,i)),s}let nh=Symbol("_leaveCb"),np=Symbol("_enterCb");function nf(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return n0(()=>{e.isMounted=!0}),n6(()=>{e.isUnmounting=!0}),e}let ng=[Function,Array],nm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ng,onEnter:ng,onAfterEnter:ng,onEnterCancelled:ng,onBeforeLeave:ng,onLeave:ng,onAfterLeave:ng,onLeaveCancelled:ng,onBeforeAppear:ng,onAppear:ng,onAfterAppear:ng,onAppearCancelled:ng},nv=e=>{let t=e.subTree;return t.component?nv(t.component):t};function ny(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==r9){t=n;break}}return t}let nb={name:"BaseTransition",props:nm,setup(e,{slots:t}){let n=iN(),r=nf();return()=>{let i=t.default&&nT(t.default(),!0);if(!i||!i.length)return;let l=ny(i),s=tm(e),{mode:o}=s;if(r.isLeaving)return nx(l);let a=nC(l);if(!a)return nx(l);let c=nS(a,s,r,n,e=>c=e);a.type!==r9&&nk(a,c);let u=n.subTree&&nC(n.subTree);if(u&&u.type!==r9&&!iu(u,a)&&nv(n).type!==r9){let e=nS(u,s,r,n);if(nk(u,e),"out-in"===o&&a.type!==r9)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nx(l);"in-out"===o&&a.type!==r9?e.delayLeave=(e,t,n)=>{n_(r,u)[String(u.key)]=u,e[nh]=()=>{t(),e[nh]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function n_(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nS(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:p,onAfterLeave:f,onLeaveCancelled:g,onBeforeAppear:m,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=n_(n,e),C=(e,t)=>{e&&tD(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=m||a;t[nh]&&t[nh](!0);let i=x[S];i&&iu(e,i)&&i.el[nh]&&i.el[nh](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted)if(!l)return;else t=y||c,r=b||u,i=_||d;let s=!1;e[np]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),T.delayedLeave&&T.delayedLeave(),e[np]=void 0)};let o=e[np].bind(null,!1);t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[np]&&t[np](!0),n.isUnmounting)return r();C(h,[t]);let l=!1;t[nh]=n=>{l||(l=!0,r(),n?C(g,[t]):C(f,[t]),t[nh]=void 0,x[i]===e&&delete x[i])};let s=t[nh].bind(null,!1);x[i]=e,p?k(p,[t,s]):s()},clone(e){let l=nS(e,t,n,r,i);return i&&i(l),l}};return T}function nx(e){if(nq(e))return(e=iv(e)).children=null,e}function nC(e){if(!nq(e))return e.type.__isTeleport&&e.children?ny(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&I(n.default))return n.default()}}function nk(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nk(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nT(e,t=!1,n){let r=[],i=0;for(let l=0;l<e.length;l++){let s=e[l],o=null==n?s.key:String(n)+String(null!=s.key?s.key:l);s.type===r8?(128&s.patchFlag&&i++,r=r.concat(nT(s.children,t,o))):(t||s.type!==r9)&&r.push(null!=o?iv(s,{key:o}):s)}if(i>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function nw(e,t){return I(e)?T({name:e.name},t,{setup:e}):e}function nN(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nA(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let nE=new WeakMap;function nI(e,t,n,r,i=!1){if(E(e))return void e.forEach((e,l)=>nI(e,t&&(E(t)?t[l]:t),n,r,i));if(nU(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nI(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iF(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,d=o.setupState,h=tm(d),p=d===b?x:e=>!nA(u,e)&&A(h,e),f=(e,t)=>!(t&&nA(u,t));if(null!=c&&c!==a&&(nR(t),R(c)?(u[c]=null,p(c)&&(d[c]=null)):t_(c)&&(f(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),I(a))tF(a,o,12,[s,u]);else{let t=R(a),r=t_(a);if(t||r){let o=()=>{if(e.f){let n=t?p(a)?d[a]:u[a]:f()||!e.k?a.value:u[e.k];if(i)E(n)&&w(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],p(a)&&(d[a]=u[a]);else{let t=[l];f(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,p(a)&&(d[a]=s)):r&&(f(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nE.delete(e)};t.id=-1,nE.set(e,t),rW(t,n)}else nR(e),o()}}}function nR(e){let t=nE.get(e);t&&(t.flags|=8,nE.delete(e))}let nO=!1,nM=()=>{nO||(console.error("Hydration completed but contains mismatches."),nO=!0)},nP=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nL=e=>8===e.nodeType;function n$(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nL(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:w}=r,N=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r5:3!==N?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nM(),n.data=r.children),A=l(n));break;case r9:y(n)?(A=l(n),m(r.el=n.content.firstChild,n,o)):A=8!==N||S?x():l(n);break;case r7:if(S&&(N=(n=l(n)).nodeType),1===N||3===N){A=n;let e=!r.children.length;for(let t=0;t<r.staticCount;t++)e&&(r.children+=1===A.nodeType?A.outerHTML:A.data),t===r.staticCount-1&&(r.anchor=A),A=l(A);return S?l(A):A}x();break;case r8:A=S?p(n,r,o,c,b,_):x();break;default:if(1&T)A=1===N&&r.type.toLowerCase()===n.tagName.toLowerCase()||y(n)?d(n,r,o,c,b,_):x();else if(6&T){r.slotScopeIds=b;let e=s(n);if(A=S?g(n):nL(n)&&"teleport start"===n.data?g(n,n.data,"teleport end"):l(n),t(r,e,null,o,c,nP(e),_),nU(r)&&!r.type.__asyncResolved){let t;S?(t=ig(r8)).anchor=A?A.previousSibling:e.lastChild:t=3===n.nodeType?iy(""):ig("div"),t.el=n,r.component.subTree=t}}else 64&T?A=8!==N?x():r.type.hydrate(n,r,o,c,b,_,e,h):128&T&&(A=r.type.hydrate(n,r,o,c,nP(s(n)),b,_,e,u))}return null!=k&&nI(k,null,c,r),A},d=(e,t,n,i,l,s)=>{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:d,dirs:p,transition:f}=t,g="input"===a||"option"===a;if(g||-1!==u){let a;p&&t3(t,null,n,"created");let b=!1;if(y(e)){b=rX(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}m(r,e,n),t.el=e=r}if(16&d&&!(c&&(c.innerHTML||c.textContent))){let r=h(e.firstChild,t,e,n,i,l,s);for(;r;){nV(e,1)||nM();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(nV(e,0)||nM(),e.textContent=t.children)}if(c){if(g||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(g&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!F(i)||"."===i[0]||t&&!F(i))&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&th(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&iC(a,n,t),p&&t3(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||p||b)&&r3(()=>{a&&iC(a,n,t),b&&f.enter(e),p&&t3(t,null,n,"mounted")},i)}return e.nextSibling},h=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let h=t.children,p=h.length;for(let t=0;t<p;t++){let f=d?h[t]:h[t]=ib(h[t]),g=f.type===r5;e?(g&&!d&&t+1<p&&ib(h[t+1]).type===r5&&(a(i(e.data.slice(f.children.length)),r,l(e)),e.data=f.children),e=u(e,f,s,o,c,d)):g&&!f.children?a(f.el=i(""),r):(nV(r,1)||nM(),n(null,f,r,null,s,o,nP(r),c))}return e},p=(e,t,n,r,i,o)=>{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),p=h(l(e),t,d,n,r,i,o);return p&&nL(p)&&"]"===p.data?l(t.anchor=p):(nM(),a(t.anchor=c("]"),d,p),p)},f=(e,t,r,i,a,c)=>{if(nV(e.parentElement,1)||nM(),t.el=null,c){let t=g(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),d=s(e);return o(e),n(null,t,d,u,r,i,nP(d),a),r&&(r.vnode.el=t.el,rO(r,t.el)),u},g=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nL(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},m=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tZ(),t._vnode=e;return}u(t.firstChild,e,null,null,null),tZ(),t._vnode=e},u]}let nF="data-allow-mismatch",nD={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nV(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nF);)e=e.parentElement;let n=e&&e.getAttribute(nF);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(nD[t])}}let nj=Q().requestIdleCallback||(e=>setTimeout(e,1)),nB=Q().cancelIdleCallback||(e=>clearTimeout(e)),nU=e=>!!e.type.__asyncLoader;function nH(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=ig(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nq=e=>e.type.__isKeepAlive;function nW(e,t){let n;if(E(e))return e.some(e=>nW(e,t));if(R(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,L.call(n))&&(e.lastIndex=0,e.test(t))}function nK(e,t){nJ(e,"a",t)}function nz(e,t){nJ(e,"da",t)}function nJ(e,t,n=iw){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nQ(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nq(e.parent.vnode)&&function(e,t,n,r){let i=nQ(t,e,r,!0);n3(()=>{w(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nG(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nX(e){return 128&e.shapeFlag?e.ssContent:e}function nQ(e,t,n=iw,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eE();let i=iA(n),l=tD(t,n,e,r);return i(),eI(),l});return r?i.unshift(l):i.push(l),l}}let nZ=e=>(t,n=iw)=>{iR&&"sp"!==e||nQ(e,(...e)=>t(...e),n)},nY=nZ("bm"),n0=nZ("m"),n1=nZ("bu"),n2=nZ("u"),n6=nZ("bum"),n3=nZ("um"),n4=nZ("sp"),n8=nZ("rtg"),n5=nZ("rtc");function n9(e,t=iw){nQ("ec",e,t)}let n7="components",re=Symbol.for("v-ndc");function rt(e,t,n=!0,r=!1){let i=t0||iw;if(i){let n=i.type;if(e===n7){let e=iD(n,!1);if(e&&(e===t||e===B(t)||e===q(B(t))))return n}let l=rn(i[e]||n[e],t)||rn(i.appContext[e],t);return!l&&r?n:l}}function rn(e,t){return e&&(e[t]||e[B(t)]||e[q(B(t))])}let rr=e=>e?iI(e)?iF(e):rr(e.parent):null,ri=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>rr(e.parent),$root:e=>rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rh(e),$forceUpdate:e=>e.f||(e.f=()=>{tJ(e.update)}),$nextTick:e=>e.n||(e.n=tz.bind(e.proxy)),$watch:e=>ne.bind(e)}),rl=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rs={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(rl(l,t))return a[t]=1,l[t];if(s!==b&&A(s,t))return a[t]=2,s[t];if(A(o,t))return a[t]=3,o[t];if(i!==b&&A(i,t))return a[t]=4,i[t];ru&&(a[t]=0)}}let d=ri[t];return d?("$attrs"===t&&eV(e.attrs,"get",""),d(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==b&&A(i,t)?(a[t]=4,i[t]):A(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rl(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||rl(t,o)||A(l,o)||A(r,o)||A(ri,o)||A(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},ro=T({},rs,{get(e,t){if(t!==Symbol.unscopables)return rs.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!Z(t)});function ra(e){let t=iN();return t.setupContext||(t.setupContext=i$(t))}function rc(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let ru=!0;function rd(e,t,n){tD(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rh(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rp(t,e,o,!0)),rp(t,n,o)):t=n,M(n)&&s.set(n,t),t}function rp(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rp(e,l,n,!0),i&&i.forEach(t=>rp(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rf[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rf={data:rg,props:rb,emits:rb,methods:ry,computed:ry,beforeCreate:rv,created:rv,beforeMount:rv,mounted:rv,beforeUpdate:rv,updated:rv,beforeDestroy:rv,beforeUnmount:rv,destroyed:rv,unmounted:rv,activated:rv,deactivated:rv,errorCaptured:rv,serverPrefetch:rv,components:ry,directives:ry,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rv(e[r],t[r]);return n},provide:rg,inject:function(e,t){return ry(rm(e),rm(t))}};function rg(e,t){return t?e?function(){return T(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function rm(e){if(E(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function rv(e,t){return e?[...new Set([].concat(e,t))]:t}function ry(e,t){return e?T(Object.create(null),e,t):t}function rb(e,t){return e?E(e)&&E(t)?[...new Set([...e,...t])]:T(Object.create(null),rc(e),rc(null!=t?t:{})):t}function r_(){return{app:null,config:{isNativeTag:x,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let rS=0,rx=null,rC=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${B(t)}Modifiers`]||e[`${H(t)}Modifiers`];function rk(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rC(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>R(e)?e.trim():e)),o.number&&(l=n.map(G)));let a=i[r=W(t)]||i[r=W(B(t))];!a&&s&&(a=i[r=W(H(t))]),a&&tD(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tD(c,e,6,l)}}let rT=new WeakMap;function rw(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,H(t))||A(e,t))}function rN(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:h,props:p,data:f,setupState:g,ctx:m,inheritAttrs:y}=e,b=t2(e);try{if(4&i.shapeFlag){let e=s||l;t=ib(d.call(e,e,h,p,g,f,m)),n=c}else t=ib(r.length>1?r(p,{attrs:c,slots:a,emit:u}):r(p,null)),n=r.props?c:rA(c)}catch(n){ie.length=0,tV(n,e,1),t=ig(r9)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rE(n,o)),_=iv(_,n,!1,!0))}return i.dirs&&((_=iv(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nk(_,i.transition),t=_,t2(b),t}let rA=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rE=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rI(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let l=r[i];if(rR(t,e,l)&&!rw(n,l))return!0}return!1}function rR(e,t,n){let r=e[n],i=t[n];return"style"===n&&M(r)&&M(i)?!eu(r,i):r!==i}function rO({vnode:e,parent:t},n){for(;t;){let r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.el=e.el),r===e)(e=t.vnode).el=n,t=t.parent;else break}}let rM={},rP=e=>Object.getPrototypeOf(e)===rM;function rL(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(F(a))continue;let u=t[a];l&&A(l,c=B(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rw(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tm(n),r=i||b;for(let i=0;i<s.length;i++){let o=s[i];n[o]=r$(l,t,o,r[o],e,!A(r,o))}}return o}function r$(e,t,n,r,i,l){let s=e[n];if(null!=s){let e=A(s,"default");if(e&&void 0===r){let e=s.default;if(s.type!==Function&&!s.skipFactory&&I(e)){let{propsDefaults:l}=i;if(n in l)r=l[n];else{let s=iA(i);r=l[n]=e.call(null,t),s()}}else r=e;i.ce&&i.ce._setProp(n,r)}s[0]&&(l&&!e?r=!1:s[1]&&(""===r||r===H(n))&&(r=!0))}return r}let rF=new WeakMap;function rD(e){return!("$"===e[0]||F(e))}let rV=e=>"_"===e||"_ctx"===e||"$stable"===e,rj=e=>E(e)?e.map(ib):[ib(e)],rB=(e,t,n)=>{if(t._n)return t;let r=t6((...e)=>rj(t(...e)),n);return r._c=!1,r},rU=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rV(n))continue;let i=e[n];if(I(i))t[n]=rB(n,i,r);else if(null!=i){let e=rj(i);t[n]=()=>e}}},rH=(e,t)=>{let n=rj(t);e.slots.default=()=>n},rq=(e,t,n)=>{for(let r in t)(n||!rV(r))&&(e[r]=t[r])},rW=r3;function rK(e){return rz(e,n$)}function rz(e,t){var n;let r,i;Q().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:d,setText:h,setElementText:p,parentNode:f,nextSibling:g,setScopeId:m=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!iu(e,t)&&(r=es(e),et(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case r5:C(e,t,n,r);break;case r9:k(e,t,n,r);break;case r7:null==e&&w(t,n,r,s);break;case r8:j(e,t,n,r,i,l,s,o,a);break;default:1&d?N(e,t,n,r,i,l,s,o,a):6&d?U(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,ec):128&d&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nI(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nI(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&h(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=d(t.children||""),n,r):t.el=e.el},w=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},N=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),$(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let d,h,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(d=e.el=a(e.type,s,f&&f.is,f),8&g?p(d,e.children):16&g&&L(e.children,d,null,r,i,rJ(e,s),c,u),y&&t3(e,null,r,"created"),O(d,e,e.scopeId,c,r),f){for(let e in f)"value"===e||F(e)||o(d,e,null,f[e],s,r);"value"in f&&o(d,"value",null,f.value,s),(h=f.onVnodeBeforeMount)&&iC(h,r,e)}y&&t3(e,null,r,"beforeMount");let b=rX(i,m);b&&m.beforeEnter(d),l(d,t,n),((h=f&&f.onVnodeMounted)||b||y)&&rW(()=>{h&&iC(h,r,e),b&&m.enter(d),y&&t3(e,null,r,"mounted")},i)},O=(e,t,n,r,i)=>{if(n&&m(e,n),r)for(let t=0;t<r.length;t++)m(e,r[t]);if(i){let n=i.subTree;if(t===n||rY(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;O(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},L=(e,t,n,r,i,l,s,o,a=0)=>{for(let c=a;c<e.length;c++)x(null,e[c]=o?i_(e[c]):ib(e[c]),t,n,r,i,l,s,o)},$=(e,t,n,r,i,l,s)=>{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:h}=t;u|=16&e.patchFlag;let f=e.props||b,g=t.props||b;if(n&&rG(n,!1),(a=g.onVnodeBeforeUpdate)&&iC(a,n,t,e),h&&t3(t,e,n,"beforeUpdate"),n&&rG(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&p(c,""),d?D(e.dynamicChildren,d,c,n,r,rJ(t,i),l):s||X(e,t,c,null,n,r,rJ(t,i),l,!1),u>0){if(16&u)V(c,f,g,n,i);else if(2&u&&f.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",f.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let r=e[t],l=f[r],s=g[r];(s!==l||"value"===r)&&o(c,r,l,s,i,n)}}1&u&&e.children!==t.children&&p(c,t.children)}else s||null!=d||V(c,f,g,n,i);((a=g.onVnodeUpdated)||h)&&rW(()=>{a&&iC(a,n,t,e),h&&t3(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o<t.length;o++){let a=e[o],c=t[o],u=a.el&&(a.type===r8||!iu(a,c)||198&a.shapeFlag)?f(a.el):n;x(a,c,u,null,r,i,l,s,!0)}},V=(e,t,n,r,i)=>{if(t!==n){if(t!==b)for(let l in t)F(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(F(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},j=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),h=t.anchor=e?e.anchor:c(""),{patchFlag:p,dynamicChildren:f,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(l(d,n,r),l(h,n,r),L(t.children||[],n,h,i,s,o,a,u)):p>0&&64&p&&f&&e.dynamicChildren&&e.dynamicChildren.length===f.length?(D(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rQ(e,t,!0)):X(e,t,n,h,i,s,o,a,u)},U=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):q(t,n,r,i,l,s,a):W(e,t,a)},q=(e,t,n,r,i,l,s)=>{var o,a,c;let d,h,p,f=(o=e,a=r,c=i,d=o.type,h=(a?a.appContext:o.appContext)||ik,(p={uid:iT++,vnode:o,type:d,parent:a,appContext:h,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new em(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(h.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rF:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!I(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return M(t)&&i.set(t,_),_;if(E(s))for(let e=0;e<s.length;e++){let t=B(s[e]);rD(t)&&(o[t]=b)}else if(s)for(let e in s){let t=B(e);if(rD(t)){let n=s[e],r=o[t]=E(n)||I(n)?{type:n}:T({},n),i=r.type,l=!1,c=!0;if(E(i))for(let e=0;e<i.length;++e){let t=i[e],n=I(t)&&t.name;if("Boolean"===n){l=!0;break}"String"===n&&(c=!1)}else l=I(i)&&"Boolean"===i.name;r[0]=l,r[1]=c,(l||A(r,"default"))&&a.push(t)}}let u=[o,a];return M(t)&&i.set(t,u),u}(d,h),emitsOptions:function e(t,n,r=!1){let i=r?rT:n.emitsCache,l=i.get(t);if(void 0!==l)return l;let s=t.emits,o={},a=!1;if(!I(t)){let i=t=>{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),M(t)&&i.set(t,o),o):(M(t)&&i.set(t,null),null)}(d,h),emit:null,emitted:null,propsDefaults:b,inheritAttrs:d.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:p},p.root=a?a.root:p,p.emit=rk.bind(null,p),o.ce&&o.ce(p),e.component=p);if(nq(e)&&(f.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iI(e);!function(e,t,n,r=!1){let i={},l=Object.create(rM);for(let n in e.propsDefaults=Object.create(null),rL(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tc(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=Object.create(rM);if(32&e.vnode.shapeFlag){let e=i._;e?(rq(o,i,s),s&&J(o,"_",e,!0)):rU(i,o)}else i&&rH(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rs);let{setup:r}=n;if(r){eE();let n=e.setupContext=r.length>1?i$(e):null,i=iA(e),l=tF(r,e,0,[e.props,n]),s=P(l);if(eI(),i(),(s||e.sp)&&!nU(e)&&nN(e),s){if(l.then(iE,iE),t)return l.then(n=>{iO(e,n,t)}).catch(t=>{tV(t,e,0)});e.asyncDep=l}else iO(e,l,t)}else iP(e,t)}(e,t),t&&u(!1)}(f,!1,s),f.asyncDep){if(i&&i.registerDep(f,K,s),!e.el){let r=f.subTree=ig(r9);k(null,r,t,n),e.placeholder=r.el}}else K(f,e,t,n,i,l,s)},W=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rI(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rI(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(rR(s,r,n)&&!rw(c,n))return!0}}return!1}(e,t,n))if(r.asyncDep&&!r.asyncResolved)return void G(r,t,n);else r.next=t,r.update();else t.el=e.el,r.vnode=t},K=(e,t,n,r,l,s,o)=>{e.scope.on();let a=e.effect=new ey(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,G(e,n,o)),t.asyncDep.then(()=>{rW(()=>{e.isUnmounted||c()},l)});return}}let d=n;rG(e,!1),n?(n.el=u.el,G(e,n,o)):n=u,r&&z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iC(t,a,n,u),rG(e,!0);let h=rN(e),p=e.subTree;e.subTree=h,x(p,h,f(p.el),es(p),e,l,s),n.el=h.el,null===d&&rO(e,h.el),i&&rW(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rW(()=>iC(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:h,root:p,type:f}=e,g=nU(t);if(rG(e,!1),u&&z(u),!g&&(o=c&&c.onVnodeBeforeMount)&&iC(o,h,t),rG(e,!0),a&&i){let t=()=>{e.subTree=rN(e),i(a,e.subTree,e,l,null)};g&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{p.ce&&p.ce._hasShadowRoot()&&p.ce._injectChildStyle(f);let i=e.subTree=rN(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&rW(d,l),!g&&(o=c&&c.onVnodeMounted)){let e=t;rW(()=>iC(o,h,e),l)}(256&t.shapeFlag||h&&nU(h.vnode)&&256&h.vnode.shapeFlag)&&e.a&&rW(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>tJ(u),rG(e,!0),c()},G=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tm(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let s=n[r];if(rw(e.emitsOptions,s))continue;let u=t[s];if(a)if(A(l,s))u!==l[s]&&(l[s]=u,c=!0);else{let t=B(s);i[t]=r$(a,o,t,u,e,!1)}else u!==l[s]&&(l[s]=u,c=!0)}}}else{let r;for(let s in rL(e,t,i,l)&&(c=!0),o)t&&(A(t,s)||(r=H(s))!==s&&A(t,r))||(a?n&&(void 0!==n[s]||void 0!==n[r])&&(i[s]=r$(a,o,s,void 0,e,!0)):delete i[s]);if(l!==o)for(let e in l)t&&A(t,e)||(delete l[e],c=!0)}c&&ej(e.attrs,"set","")}(e,t.props,r,n),((e,t,n)=>{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rq(i,t,n):(l=!t.$stable,rU(t,i)),s=t}else t&&(rH(e,t),s={default:1});if(l)for(let e in i)rV(e)||null!=s[e]||delete i[e]})(e,t.children,n),eE(),tQ(e),eI()},X=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:h,shapeFlag:f}=t;if(h>0){if(128&h)return void Y(c,d,n,r,i,l,s,o,a);else if(256&h)return void Z(c,d,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),d!==c&&p(n,d)):16&u?16&f?Y(c,d,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&p(n,""),16&f&&L(d,n,r,i,l,s,o,a))},Z=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,d=t.length,h=Math.min(u,d);for(c=0;c<h;c++){let r=t[c]=a?i_(t[c]):ib(t[c]);x(e[c],r,n,null,i,l,s,o,a)}u>d?el(e,i,l,!0,!1,h):L(t,n,r,i,l,s,o,a,h)},Y=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,h=u-1;for(;c<=d&&c<=h;){let r=e[c],u=t[c]=a?i_(t[c]):ib(t[c]);if(iu(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=h;){let r=e[d],c=t[h]=a?i_(t[h]):ib(t[h]);if(iu(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,h--}if(c>d){if(c<=h){let e=h+1,d=e<u?t[e].el:r;for(;c<=h;)x(null,t[c]=a?i_(t[c]):ib(t[c]),n,d,i,l,s,o,a),c++}}else if(c>h)for(;c<=d;)et(e[c],i,l,!0),c++;else{let p,f=c,g=c,m=new Map;for(c=g;c<=h;c++){let e=t[c]=a?i_(t[c]):ib(t[c]);null!=e.key&&m.set(e.key,c)}let y=0,b=h-g+1,S=!1,C=0,k=Array(b);for(c=0;c<b;c++)k[c]=0;for(c=f;c<=d;c++){let r,u=e[c];if(y>=b){et(u,i,l,!0);continue}if(null!=u.key)r=m.get(u.key);else for(p=g;p<=h;p++)if(0===k[p-g]&&iu(u,t[p])){r=p;break}void 0===r?et(u,i,l,!0):(k[r-g]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(r=0,i=o.length-1;r<i;)e[o[l=r+i>>1]]<a?r=l+1:i=l;a<e[o[r]]&&(r>0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(p=T.length-1,c=b-1;c>=0;c--){let e=g+c,d=t[e],h=t[e+1],f=e+1<u?h.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(h):r;0===k[c]?x(null,d,n,f,i,l,s,o,a):S&&(p<0||c!==T[p]?ee(d,n,f,2):p--)}}},ee=(e,t,n,r,i=null)=>{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void ee(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,ec);if(a===r8){l(o,t,n);for(let e=0;e<u.length;e++)ee(u[e],t,n,r);l(e.anchor,t,n);return}if(a===r7)return void(({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=g(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rW(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{o._isLeaving&&o[nh](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:h,dirs:p,cacheIndex:f}=e;if(-2===h&&(i=!1),null!=a&&(eE(),nI(a,null,n,e,!0),eI()),null!=f&&(t.renderCache[f]=void 0),256&d)return void t.ctx.deactivate(e);let g=1&d&&p,m=!nU(e);if(m&&(l=o&&o.onVnodeBeforeUnmount)&&iC(l,t,e),6&d)ei(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);g&&t3(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r8||h>0&&64&h)?el(u,t,n,!1,!0):(s===r8&&384&h||!i&&16&d)&&el(c,t,n),r&&en(e)}(m&&(l=o&&o.onVnodeUnmounted)||g)&&rW(()=>{l&&iC(l,t,e),g&&t3(e,null,t,"unmounted")},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r8)return void er(n,r);if(t===r7)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rZ(a),rZ(c),r&&z(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rW(o,t),rW(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s<e.length;s++)et(e[s],t,n,r,i)},es=e=>{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[nn];return n?g(n):t},eo=!1,ea=(e,t,n)=>{let r;null==e?t._vnode&&(et(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tQ(r),tZ(),eo=!1)},ec={p:x,um:et,m:ee,r:en,mt:q,mc:L,pc:X,pbc:D,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){I(e)||(e=T({},e)),null==t||M(t)||(t=null);let r=r_(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rS++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iU,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&I(e.install)?(i.add(e),e.install(o,...t)):I(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||ig(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iF(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tD(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rx;rx=o;try{return e()}finally{rx=t}}};return o})}}function rJ({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rG({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rX(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rQ(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;e<r.length;e++){let t=r[e],l=i[e];1&l.shapeFlag&&!l.dynamicChildren&&((l.patchFlag<=0||32===l.patchFlag)&&((l=i[e]=i_(i[e])).el=t.el),n||-2===l.patchFlag||rQ(t,l)),l.type===r5&&(-1===l.patchFlag&&(l=i[e]=i_(l)),l.el=t.el),l.type!==r9||l.el||(l.el=t.el)}}function rZ(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let rY=e=>e.__isSuspense,r0=0;function r1(e,t){let n=e.props&&e.props[t];I(n)&&n()}function r2(e,t,n,r,i,l,s,o,a,c,u=!1){var d;let h,p,{p:f,m:g,um:m,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(h=(d=e).props&&d.props.suspensible)&&!1!==h;S&&t&&t.pendingBranch&&(p=t.pendingId,t.deps++);let x=e.props?X(e.props.timeout):void 0,C=l,k={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r0++,timeout:"number"==typeof x?x:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:d}=k,h=!1;k.isHydrating?k.isHydrating=!1:!e&&((h=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===k.pendingId&&(g(s,u,l===C?y(i):l,0),tX(a),d&&r.ssFallback&&(r.ssFallback.el=null))}),i&&(b(i.el)===u&&(l=y(i)),m(i,c,k,!0),!h&&d&&r.ssFallback&&rW(()=>r.ssFallback.el=null,k)),h||g(s,u,l,0)),r4(k,s),k.pendingBranch=null,k.isInFallback=!1;let f=k.parent,_=!1;for(;f;){if(f.pendingBranch){f.effects.push(...a),_=!0;break}f=f.parent}_||h||tX(a),k.effects=[],S&&t&&t.pendingBranch&&p===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r1(r,"onResolve")},fallback(e){if(!k.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=k;r1(t,"onFallback");let s=y(n),c=()=>{k.isInFallback&&(f(null,e,i,s,r,null,l,o,a),r4(k,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),k.isInFallback=!0,m(n,r,null,!0),u||c()},move(e,t,n){k.activeBranch&&g(k.activeBranch,e,t,n),k.container=e},next:()=>k.activeBranch&&y(k.activeBranch),registerDep(e,t,n){let r=!!k.pendingBranch;r&&k.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tV(t,e,0)}).then(l=>{if(e.isUnmounted||k.isUnmounted||k.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;iO(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),k,s,n),a&&(o.placeholder=null,_(a)),rO(e,o.el),r&&0==--k.deps&&k.resolve()})},unmount(e,t){k.isUnmounted=!0,k.activeBranch&&m(k.activeBranch,n,e,t),k.pendingBranch&&m(k.pendingBranch,n,e,t)}};return k}function r6(e){let t;if(I(e)){let n=il&&e._c;n&&(e._d=!1,ir()),e=e(),n&&(e._d=!0,t=it,ii())}return E(e)&&(e=function(e,t=!0){let n;for(let t=0;t<e.length;t++){let r=e[t];if(!ic(r))return;if(r.type!==r9||"v-if"===r.children)if(n)return;else n=r}return n}(e)),e=ib(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function r3(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):tX(e)}function r4(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,rO(r,i))}let r8=Symbol.for("v-fgt"),r5=Symbol.for("v-txt"),r9=Symbol.for("v-cmt"),r7=Symbol.for("v-stc"),ie=[],it=null;function ir(e=!1){ie.push(it=e?null:[])}function ii(){ie.pop(),it=ie[ie.length-1]||null}let il=1;function is(e,t=!1){il+=e,e<0&&it&&t&&(it.hasOnce=!0)}function io(e){return e.dynamicChildren=il>0?it||_:null,ii(),il>0&&it&&it.push(e),e}function ia(e,t,n,r,i){return io(ig(e,t,n,r,i,!0))}function ic(e){return!!e&&!0===e.__v_isVNode}function iu(e,t){return e.type===t.type&&e.key===t.key}let id=({key:e})=>null!=e?e:null,ih=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?R(e)||t_(e)||I(e)?{i:t0,r:e,k:t,f:!!n}:e:null);function ip(e,t=null,n=null,r=0,i=null,l=+(e!==r8),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&id(t),ref:t&&ih(t),scopeId:t1,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t0};return o?(iS(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=R(n)?8:16),il>0&&!s&&it&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&it.push(a),a}let ig=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==re||(e=r9),ic(e)){let r=iv(e,t,!0);return n&&iS(r,n),il>0&&!l&&it&&(6&r.shapeFlag?it[it.indexOf(e)]=r:it.push(r)),r.patchFlag=-2,r}if(I(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=im(t);e&&!R(e)&&(t.class=ei(e)),M(n)&&(tg(n)&&!E(n)&&(n=T({},n)),t.style=Y(n))}let o=R(e)?1:rY(e)?128:e.__isTeleport?64:M(e)?4:2*!!I(e);return ip(e,t,n,r,i,o,l,!0)};function im(e){return e?tg(e)||rP(e)?T({},e):e:null}function iv(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?ix(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&id(c),ref:t&&t.ref?n&&l?E(l)?l.concat(ih(t)):[l,ih(t)]:ih(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r8?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&iv(e.ssContent),ssFallback:e.ssFallback&&iv(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nk(u,a.clone(u)),u}function iy(e=" ",t=0){return ig(r5,null,e,t)}function ib(e){return null==e||"boolean"==typeof e?ig(r9):E(e)?ig(r8,null,e.slice()):ic(e)?i_(e):ig(r5,null,String(e))}function i_(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:iv(e)}function iS(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iS(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rP(t)?3===r&&t0&&(1===t0.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t0}else I(t)?(t={default:t,_ctx:t0},n=32):(t=String(t),64&r?(n=16,t=[iy(t)]):n=8);e.children=t,e.shapeFlag|=n}function ix(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if("class"===e)t.class!==r.class&&(t.class=ei([t.class,r.class]));else if("style"===e)t.style=Y([t.style,r.style]);else if(C(e)){let n=t[e],i=r[e];i&&n!==i&&!(E(n)&&n.includes(i))&&(t[e]=n?[].concat(n,i):i)}else""!==e&&(t[e]=r[e])}return t}function iC(e,t,n,r=null){tD(e,t,7,[n,r])}let ik=r_(),iT=0,iw=null,iN=()=>iw||t0;c=e=>{iw=e},u=e=>{iR=e};let iA=e=>{let t=iw;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iE=()=>{iw&&iw.scope.off(),c(null)};function iI(e){return 4&e.vnode.shapeFlag}let iR=!1;function iO(e,t,n){I(t)?e.render=t:M(t)&&(e.setupState=tN(t)),iP(e,n)}function iM(e){d=e,h=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,ro))}}function iP(e,t,n){let r=e.type;if(!e.render){if(!t&&d&&!r.render){let t=r.template||rh(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=d(t,o)}}e.render=r.render||S,h&&h(e)}{let t=iA(e);eE();try{!function(e){let t=rh(e),n=e.proxy,r=e.ctx;ru=!1,t.beforeCreate&&rd(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:h,beforeUpdate:p,updated:f,activated:g,deactivated:m,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:T,expose:w,inheritAttrs:N,components:A,directives:O}=t;if(c&&function(e,t,n=S){for(let n in E(e)&&(e=rm(e)),e){let r,i=e[n];t_(r=M(i)?"default"in i?t8(i.from||n,i.default,!0):t8(i.from||n):t8(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r,null),s)for(let e in s){let t=s[e];I(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);M(t)&&(e.data=ta(t))}if(ru=!0,l)for(let e in l){let t=l[e],i=I(t)?t.bind(n,n):I(t.get)?t.get.bind(n,n):S,s=iV({get:i,set:!I(t)&&I(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nt(r,i):()=>r[i];if(R(t)){let e=n[t];I(e)&&t7(l,e,void 0)}else if(I(t))t7(l,t.bind(r),void 0);else if(M(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=I(t.handler)?t.handler.bind(r):n[t.handler];I(e)&&t7(l,e,t)}}(o[e],r,n,e);if(a){let e=I(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{t4(t,e[t])})}function P(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&rd(u,e,"c"),P(nY,d),P(n0,h),P(n1,p),P(n2,f),P(nK,g),P(nz,m),P(n9,k),P(n5,x),P(n8,C),P(n6,y),P(n3,b),P(n4,T),E(w))if(w.length){let t=e.exposed||(e.exposed={});w.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=N&&(e.inheritAttrs=N),A&&(e.components=A),O&&(e.directives=O)}(e)}finally{eI(),t()}}}let iL={get:(e,t)=>(eV(e,"get",""),e[t])};function i$(e){return{attrs:new Proxy(e.attrs,iL),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iF(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tN(tv(e.exposed)),{get:(t,n)=>n in t?t[n]:n in ri?ri[n](e):void 0,has:(e,t)=>t in e||t in ri})):e.proxy}function iD(e,t=!0){return I(e)?e.displayName||e.name:e.name||t&&e.__name}let iV=(e,t)=>(function(e,t=!1){let n,r;return I(e)?n=e:(n=e.get,r=e.set),new tO(n,r,t)})(e,iR);function ij(e,t,n){try{is(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&&ic(n)&&(n=[n]),ig(e,t,n);if(!M(t)||E(t))return ig(e,null,t);if(ic(t))return ig(e,null,[t]);return ig(e,t)}finally{is(1)}}function iB(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(K(n[e],t[e]))return!1;return il>0&&it&&it.push(e),!0}let iU="3.5.28",iH="u">typeof window&&window.trustedTypes;if(iH)try{m=iH.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iq=m?e=>m.createHTML(e):e=>e,iW="u">typeof document?document:null,iK=iW&&iW.createElement("template"),iz={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?iW.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iW.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iW.createElement(e,{is:n}):iW.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iW.createTextNode(e),createComment:e=>iW.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iW.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iK.innerHTML=iq("svg"===r?`<svg>${e}</svg>`:"mathml"===r?`<math>${e}</math>`:e);let i=iK.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iJ="transition",iG="animation",iX=Symbol("_vtc"),iQ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},iZ=T({},nm,iQ),iY=((t=(e,{slots:t})=>ij(nb,i2(e),t)).displayName="Transition",t.props=iZ,t),i0=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i1=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i2(e){let t={};for(let n in e)n in iQ||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(M(e))return[function(e){return X(e)}(e.enter),function(e){return X(e)}(e.leave)];let t=function(e){return X(e)}(e);return[t,t]}}(i),g=f&&f[0],m=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:w=_}=t,N=(e,t,n,r)=>{e._enterCancelled=r,i3(e,t?u:o),i3(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i3(e,d),i3(e,p),i3(e,h),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>N(t,e,n);i0(i,[t,s]),i4(()=>{i3(t,e?a:l),i6(t,e?u:o),i1(i)||i5(t,r,g,s)})};return T(t,{onBeforeEnter(e){i0(y,[e]),i6(e,l),i6(e,s)},onBeforeAppear(e){i0(C,[e]),i6(e,a),i6(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i6(e,d),e._enterCancelled?(i6(e,h),lt(e)):(lt(e),i6(e,h)),i4(()=>{e._isLeaving&&(i3(e,d),i6(e,p),i1(S)||i5(e,r,m,n))}),i0(S,[e,n])},onEnterCancelled(e){N(e,!1,void 0,!0),i0(_,[e])},onAppearCancelled(e){N(e,!0,void 0,!0),i0(w,[e])},onLeaveCancelled(e){A(e),i0(x,[e])}})}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iX]||(e[iX]=new Set)).add(t)}function i3(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iX];n&&(n.delete(t),n.size||(e[iX]=void 0))}function i4(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i8=0;function i5(e,t,n,r){let i=e._endId=++i8,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i9(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,h),l()},h=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u<a&&d()},o+1),e.addEventListener(c,h)}function i9(e,t){let n=window.getComputedStyle(e),r=e=>(n[e]||"").split(", "),i=r(`${iJ}Delay`),l=r(`${iJ}Duration`),s=i7(i,l),o=r(`${iG}Delay`),a=r(`${iG}Duration`),c=i7(o,a),u=null,d=0,h=0;t===iJ?s>0&&(u=iJ,d=s,h=l.length):t===iG?c>0&&(u=iG,d=c,h=a.length):h=(u=(d=Math.max(s,c))>0?s>c?iJ:iG:null)?u===iJ?l.length:a.length:0;let p=u===iJ&&/\b(?:transform|all)(?:,|$)/.test(r(`${iJ}Property`).toString());return{type:u,timeout:d,propCount:h,hasTransform:p}}function i7(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>le(t)+le(e[n])))}function le(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function lt(e){return(e?e.ownerDocument:document).body.offsetHeight}let ln=Symbol("_vod"),lr=Symbol("_vsh");function li(e,t){e.style.display=t?e[ln]:"none",e[lr]=!t}let ll=Symbol("");function ls(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[ll]=i}}let lo=/(?:^|;)\s*display\s*:/,la=/\s*!important$/;function lc(e,t,n){if(E(n))n.forEach(n=>lc(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=ld[t];if(n)return n;let r=B(t);if("filter"!==r&&r in e)return ld[t]=r;r=q(r);for(let n=0;n<lu.length;n++){let i=lu[n]+r;if(i in e)return ld[t]=i}return t}(e,t);la.test(n)?e.setProperty(H(r),n.replace(la,""),"important"):e[r]=n}}let lu=["Webkit","Moz","ms"],ld={},lh="http://www.w3.org/1999/xlink";function lp(e,t,n,r,i,l=ec(t)){if(r&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(lh,t.slice(6,t.length)):e.setAttributeNS(lh,t,n);else null==n||l&&!(n||""===n)?e.removeAttribute(t):e.setAttribute(t,l?"":O(n)?String(n):n)}function lf(e,t,n,r,i){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?iq(n):n);return}let l=e.tagName;if("value"===t&&"PROGRESS"!==l&&!l.includes("-")){let r="OPTION"===l?e.getAttribute("value")||"":e.value,i=null==n?"checkbox"===e.type?"on":"":String(n);r===i&&"_value"in e||(e.value=i),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let r=typeof e[t];if("boolean"===r){var o;n=!!(o=n)||""===o}else null==n&&"string"===r?(n="",s=!0):"number"===r&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(i||t)}function lg(e,t,n,r){e.addEventListener(t,n,r)}let lm=Symbol("_vei"),lv=/(?:Once|Passive|Capture)$/,ly=0,lb=Promise.resolve(),l_=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lS=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[iX])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=R(n),l=!1;if(n&&!i){if(t)if(R(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lc(r,t,"")}else for(let e in t)null==n[e]&&lc(r,e,"");for(let e in n)"display"===e&&(l=!0),lc(r,e,n[e])}else if(i){if(t!==n){let e=r[ll];e&&(n+=";"+e),r.cssText=n,l=lo.test(n)}}else t&&e.removeAttribute("style");ln in e&&(e[ln]=l?r.display:"",e[lr]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r=null){let i=e[lm]||(e[lm]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t;if(lv.test(e)){let n;for(t={};n=e.match(lv);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):H(e.slice(2)),t]}(t);if(n){var s,o;let l;lg(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();tD(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,l.value),o,5,[e])}).value=s,l.attached=ly||(lb.then(()=>ly=0),ly=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&l_(t)&&I(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(l_(t)&&R(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!R(r))?lf(e,B(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),lp(e,t,r,s)):(lf(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lp(e,t,r,s,l,"value"!==t))},lx={};function lC(e,t,n){let r,i=nw(e,t);"[object Object]"===(r=i,L.call(r))&&(i=T({},i,t));class l extends lT{constructor(e){super(i,e,n)}}return l.def=i,l}let lk="u">typeof HTMLElement?HTMLElement:class{};class lT extends lk{constructor(e,t={},n=l6){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==l6?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(T({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof lT){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tz(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=X(this._props[e])),(n||(n=Object.create(null)))[B(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tT(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(B))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lx,r=B(e);t&&this._numberProps&&this._numberProps[r]&&(n=X(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===lx?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(H(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(H(e),t+""):t||this.removeAttribute(H(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l2(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ig(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],L.call(n))?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),H(e)!==e&&t(H(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let r=document.createElement("style");n&&r.setAttribute("nonce",n),r.textContent=e[t],this.shadowRoot.prepend(r)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute("name")||"default",l=this._slots[i],s=r.parentNode;if(l)for(let e of l){if(t&&1===e.nodeType){let n,r=t+"-s",i=document.createTreeWalker(e,1);for(e.setAttribute(r,"");n=i.nextNode();)n.setAttribute(r,"")}s.insertBefore(e,r)}else for(;r.firstChild;)s.insertBefore(r.firstChild,r);s.removeChild(r)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll("slot");for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e){this._applyStyles(e.styles,e)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return!1!==this._def.shadowRoot}_removeChildStyle(e){}}function lw(e){let t=iN(),n=t&&t.ce;return n||null}let lN=new WeakMap,lA=new WeakMap,lE=Symbol("_moveCb"),lI=Symbol("_enterCb"),lR=(n={name:"TransitionGroup",props:T({},iZ,{tag:String,moveClass:String}),setup(e,{slots:t}){let n,r,i=iN(),l=nf();return n2(()=>{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iX];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i9(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lO),n.forEach(lM);let r=n.filter(lP);lt(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;i6(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lE]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lE]=null,i3(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tm(e),o=i2(s),a=s.tag||r8;if(n=[],r)for(let e=0;e<r.length;e++){let t=r[e];t.el&&t.el instanceof Element&&(n.push(t),nk(t,nS(t,o,l,i)),lN.set(t,lL(t.el)))}r=t.default?nT(t.default()):[];for(let e=0;e<r.length;e++){let t=r[e];null!=t.key&&nk(t,nS(t,o,l,i))}return ig(a,null,r)}}},delete n.props.mode,n);function lO(e){let t=e.el;t[lE]&&t[lE](),t[lI]&&t[lI]()}function lM(e){lA.set(e,lL(e.el))}function lP(e){let t=lN.get(e),n=lA.get(e),r=t.left-n.left,i=t.top-n.top;if(r||i){let t=e.el,n=t.style,l=t.getBoundingClientRect(),s=1,o=1;return t.offsetWidth&&(s=l.width/t.offsetWidth),t.offsetHeight&&(o=l.height/t.offsetHeight),Number.isFinite(s)&&0!==s||(s=1),Number.isFinite(o)&&0!==o||(o=1),.01>Math.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function lL(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let l$=e=>{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>z(t,e):t};function lF(e){e.target.composing=!0}function lD(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lV=Symbol("_assign");function lj(e,t,n){return t&&(e=e.trim()),n&&(e=G(e)),e}let lB={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lV]=l$(i);let l=r||i.props&&"number"===i.props.type;lg(e,t?"change":"input",t=>{t.target.composing||e[lV](lj(e.value,n,l))}),(n||l)&&lg(e,"change",()=>{e.value=lj(e.value,n,l)}),t||(lg(e,"compositionstart",lF),lg(e,"compositionend",lD),lg(e,"change",lD))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lV]=l$(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?G(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a))return;e.value=a}}},lU={deep:!0,created(e,t,n){e[lV]=l$(n),lg(e,"change",()=>{let t=e._modelValue,n=lz(e),r=e.checked,i=e[lV];if(E(t)){let e=ed(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,L.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lJ(e,r))}})},mounted:lH,beforeUpdate(e,t,n){e[lV]=l$(n),lH(e,t,n)}};function lH(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=ed(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,L.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=eu(t,lJ(e,!0))}}e.checked!==i&&(e.checked=i)}let lq={created(e,{value:t},n){e.checked=eu(t,n.props.value),e[lV]=l$(n),lg(e,"change",()=>{e[lV](lz(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lV]=l$(r),t!==n&&(e.checked=eu(t,r.props.value))}},lW={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i,l="[object Set]"===(i=t,L.call(i));lg(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?G(lz(e)):lz(e));e[lV](e.multiple?l?new Set(t):t:t[0]),e._assigning=!0,tz(()=>{e._assigning=!1})}),e[lV]=l$(r)},mounted(e,{value:t}){lK(e,t)},beforeUpdate(e,t,n){e[lV]=l$(n)},updated(e,{value:t}){e._assigning||lK(e,t)}};function lK(e,t){let n,r=e.multiple,i=E(t);if(!r||i||"[object Set]"===(n=t,L.call(n))){for(let n=0,l=e.options.length;n<l;n++){let l=e.options[n],s=lz(l);if(r)if(i){let e=typeof s;"string"===e||"number"===e?l.selected=t.some(e=>String(e)===String(s)):l.selected=ed(t,s)>-1}else l.selected=t.has(s);else if(eu(lz(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lz(e){return"_value"in e?e._value:e.value}function lJ(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lG(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lW;case"TEXTAREA":return lB;default:switch(t){case"checkbox":return lU;case"radio":return lq;default:return lB}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lX=["ctrl","shift","alt","meta"],lQ={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lX.some(n=>e[`${n}Key`]&&!t.includes(n))},lZ={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lY=T({patchProp:lS},iz),l0=!1;function l1(){return p=l0?p:rK(lY),l0=!0,p}let l2=(...e)=>{(p||(p=rz(lY))).render(...e)},l6=(...e)=>{let t=(p||(p=rz(lY))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l8(e);if(!r)return;let i=t._component;I(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l4(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l3=(...e)=>{let t=l1().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l8(e);if(t)return n(t,!0,l4(t))},t};function l4(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l8(e){return R(e)?document.querySelector(e):e}let l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sh=Symbol(""),sp=Symbol(""),sf=Symbol(""),sg=Symbol(""),sm=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sw=Symbol(""),sN=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sL=Symbol(""),s$={[l5]:"Fragment",[l9]:"Teleport",[l7]:"Suspense",[se]:"KeepAlive",[st]:"BaseTransition",[sn]:"openBlock",[sr]:"createBlock",[si]:"createElementBlock",[sl]:"createVNode",[ss]:"createElementVNode",[so]:"createCommentVNode",[sa]:"createTextVNode",[sc]:"createStaticVNode",[su]:"resolveComponent",[sd]:"resolveDynamicComponent",[sh]:"resolveDirective",[sp]:"resolveFilter",[sf]:"withDirectives",[sg]:"renderList",[sm]:"renderSlot",[sv]:"createSlots",[sy]:"toDisplayString",[sb]:"mergeProps",[s_]:"normalizeClass",[sS]:"normalizeStyle",[sx]:"normalizeProps",[sC]:"guardReactiveProps",[sk]:"toHandlers",[sT]:"camelize",[sw]:"capitalize",[sN]:"toHandlerKey",[sA]:"setBlockTracking",[sE]:"pushScopeId",[sI]:"popScopeId",[sR]:"withCtx",[sO]:"unref",[sM]:"isRef",[sP]:"withMemo",[sL]:"isMemoSame"},sF={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function sD(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sF){var d,h,p,f;return e&&(o?(e.helper(sn),e.helper((d=e.inSSR,h=c,d||h?sr:si))):e.helper((p=e.inSSR,f=c,p||f?sl:ss)),s&&e.helper(sf)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sV(e,t=sF){return{type:17,loc:t,elements:e}}function sj(e,t=sF){return{type:15,loc:t,properties:e}}function sB(e,t){return{type:16,loc:sF,key:R(e)?sU(e,!0):e,value:t}}function sU(e,t=!1,n=sF,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sH(e,t=sF){return{type:8,loc:t,children:e}}function sq(e,t=[],n=sF){return{type:14,loc:n,callee:e,arguments:t}}function sW(e,t,n=!1,r=!1,i=sF){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sK(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sF}}function sz(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?sl:ss)),t(sn),t((l=e.isComponent,r||l?sr:si))}}let sJ=new Uint8Array([123,123]),sG=new Uint8Array([125,125]);function sX(e){return e>=97&&e<=122||e>=65&&e<=90}function sQ(e){return 32===e||10===e||9===e||12===e||13===e}function sZ(e){return 47===e||62===e||sQ(e)}function sY(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}let s0={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])};function s1(e){throw e}function s2(e){}function s6(e,t,n,r){let i=SyntaxError(String(`https://vuejs.org/error-reference/#compiler-${e}`));return i.code=e,i.loc=t,i}let s3=e=>4===e.type&&e.isStatic;function s4(e){switch(e){case"Teleport":case"teleport":return l9;case"Suspense":case"suspense":return l7;case"KeepAlive":case"keep-alive":return se;case"BaseTransition":case"base-transition":return st}}let s8=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s5=/[A-Za-z_$\xA0-\uFFFF]/,s9=/[\.\?\w$\xA0-\uFFFF]/,s7=/\s+[.[]\s*|\s*[.[]\s+/g,oe=e=>4===e.type?e.content:e.loc.source,ot=e=>{let t=oe(e).trim().replace(s7,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e<t.length;e++){let o=t.charAt(e);switch(n){case 0:if("["===o)r.push(n),n=1,i++;else if("("===o)r.push(n),n=2,l++;else if(!(0===e?s5:s9).test(o))return!1;break;case 1:"'"===o||'"'===o||"`"===o?(r.push(n),n=3,s=o):"["===o?i++:"]"!==o||--i||(n=r.pop());break;case 2:if("'"===o||'"'===o||"`"===o)r.push(n),n=3,s=o;else if("("===o)l++;else if(")"===o){if(e===t.length-1)return!1;--l||(n=r.pop())}break;case 3:o===s&&(n=r.pop(),s=null)}}return!i&&!l},on=/^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function or(e,t,n=!1){for(let r=0;r<e.props.length;r++){let i=e.props[r];if(7===i.type&&(n||i.exp)&&(R(t)?i.name===t:t.test(i.name)))return i}}function oi(e,t,n=!1,r=!1){for(let i=0;i<e.props.length;i++){let l=e.props[i];if(6===l.type){if(n)continue;if(l.name===t&&(l.value||r))return l}else if("bind"===l.name&&(l.exp||r)&&ol(l.arg,t))return l}}function ol(e,t){return!!(e&&s3(e)&&e.content===t)}function os(e){return 5===e.type||2===e.type}function oo(e){return 7===e.type&&"pre"===e.name}function oa(e){return 7===e.type&&"slot"===e.name}function oc(e){return 1===e.type&&3===e.tagType}function ou(e){return 1===e.type&&2===e.tagType}let od=new Set([sx,sC]);function oh(e,t,n){let r,i,l=13===e.type?e.props:e.arguments[2],s=[];if(l&&!R(l)&&14===l.type){let e=function e(t,n=[]){if(t&&!R(t)&&14===t.type){let r=t.callee;if(!R(r)&&od.has(r))return e(t.arguments[0],n.concat(t))}return[t,n]}(l);l=e[0],i=(s=e[1])[s.length-1]}if(null==l||R(l))r=sj([t]);else if(14===l.type){let e=l.arguments[0];R(e)||15!==e.type?l.callee===sk?r=sq(n.helper(sb),[sj([t]),l]):l.arguments.unshift(sj([t])):op(t,e)||e.properties.unshift(t),r||(r=l)}else 15===l.type?(op(t,l)||l.properties.unshift(t),r=l):(r=sq(n.helper(sb),[sj([t]),l]),i&&i.callee===sC&&(i=s[s.length-2]));13===e.type?i?i.arguments[0]=r:e.props=r:i?i.arguments[0]=r:e.arguments[2]=r}function op(e,t){let n=!1;if(4===e.key.type){let r=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===r)}return n}function of(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let og=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function om(e){for(let t=0;t<e.length;t++)if(!sQ(e.charCodeAt(t)))return!1;return!0}function ov(e){return 2===e.type&&om(e.content)||12===e.type&&ov(e.content)}function oy(e){return 3===e.type||ov(e)}let ob={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s1,onWarn:s2,comments:!1,prefixIdentifiers:!1},o_=ob,oS=null,ox="",oC=null,ok=null,oT="",ow=-1,oN=-1,oA=0,oE=!1,oI=null,oR=[],oO=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sJ,this.delimiterClose=sG,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sJ,this.delimiterClose=sG}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1<n;){let r=t+n>>>1;this.newlines[r]<e?t=r:n=r}i=t}else for(let t=r-1;t>=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sZ(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sQ(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.sectionStart=t+2,this.stateInClosingTagName(e),this.inRCDATA=!1;return}this.sequenceIndex=0}(32|e)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:0===this.sequenceIndex?this.currentSequence!==s0.TitleEnd&&(this.currentSequence!==s0.TextareaEnd||this.inSFCRoot)?this.fastForwardTo(60)&&(this.sequenceIndex=1):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.sequenceIndex=Number(60===e)}stateCDATASequence(e){e===s0.Cdata[this.sequenceIndex]?++this.sequenceIndex===s0.Cdata.length&&(this.state=28,this.currentSequence=s0.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){let t=this.buffer.charCodeAt(this.index);if(10===t&&this.newlines.push(this.index),t===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===s0.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):0===this.sequenceIndex?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,t){this.enterRCDATA(e,t),this.state=31}enterRCDATA(e,t){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=t}stateBeforeTagName(e){33===e?(this.state=22,this.sectionStart=this.index+1):63===e?(this.state=24,this.sectionStart=this.index+1):sX(e)?(this.sectionStart=this.index,0===this.mode?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:116===e?this.state=30:this.state=115===e?29:6):47===e?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){sZ(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(sZ(e)){let t=this.buffer.slice(this.sectionStart,this.index);"template"!==t&&this.enterRCDATA(sY("</"+t),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){sQ(e)||(62===e?(this.state=1,this.sectionStart=this.index+1):(this.state=sX(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(62===e||sQ(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){62===e&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){62===e?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):47===e?this.state=7:60===e&&47===this.peek()?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):sQ(e)||this.handleAttrStart(e)}handleAttrStart(e){118===e&&45===this.peek()?(this.state=13,this.sectionStart=this.index):46===e||58===e||64===e||35===e?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){62===e?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):sQ(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){(61===e||sZ(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e))}stateInDirName(e){61===e||sZ(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):58===e?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):46===e&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){61===e||sZ(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):91===e?this.state=15:46===e&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){93===e?this.state=14:(61===e||sZ(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e))}stateInDirModifier(e){61===e||sZ(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):46===e&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){61===e?this.state=18:47===e||62===e?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):sQ(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){34===e?(this.state=19,this.sectionStart=this.index+1):39===e?(this.state=20,this.sectionStart=this.index+1):sQ(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,t){(e===t||this.fastForwardTo(t))&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(34===t?3:2,this.index+1),this.state=11)}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){sQ(e)||62===e?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):(39===e||60===e||61===e||96===e)&&this.cbs.onerr(18,this.index)}stateBeforeDeclaration(e){91===e?(this.state=26,this.sequenceIndex=0):this.state=45===e?25:23}stateInDeclaration(e){(62===e||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(62===e||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){45===e?(this.state=28,this.currentSequence=s0.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(62===e||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===s0.ScriptEnd[3]?this.startSpecial(s0.ScriptEnd,4):e===s0.StyleEnd[3]?this.startSpecial(s0.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===s0.TitleEnd[3]?this.startSpecial(s0.TitleEnd,4):e===s0.TextareaEnd[3]?this.startSpecial(s0.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){}stateInEntity(){}parse(e){for(this.buffer=e;this.index<this.buffer.length;){let e=this.buffer.charCodeAt(this.index);switch(10===e&&33!==this.state&&this.newlines.push(this.index),this.state){case 1:this.stateText(e);break;case 2:this.stateInterpolationOpen(e);break;case 3:this.stateInterpolation(e);break;case 4:this.stateInterpolationClose(e);break;case 31:this.stateSpecialStartSequence(e);break;case 32:this.stateInRCDATA(e);break;case 26:this.stateCDATASequence(e);break;case 19:this.stateInAttrValueDoubleQuotes(e);break;case 12:this.stateInAttrName(e);break;case 13:this.stateInDirName(e);break;case 14:this.stateInDirArg(e);break;case 15:this.stateInDynamicDirArg(e);break;case 16:this.stateInDirModifier(e);break;case 28:this.stateInCommentLike(e);break;case 27:this.stateInSpecialComment(e);break;case 11:this.stateBeforeAttrName(e);break;case 6:this.stateInTagName(e);break;case 34:this.stateInSFCRootTagName(e);break;case 9:this.stateInClosingTagName(e);break;case 5:this.stateBeforeTagName(e);break;case 17:this.stateAfterAttrName(e);break;case 20:this.stateInAttrValueSingleQuotes(e);break;case 18:this.stateBeforeAttrValue(e);break;case 8:this.stateBeforeClosingTagName(e);break;case 10:this.stateAfterClosingTagName(e);break;case 29:this.stateBeforeSpecialS(e);break;case 30:this.stateBeforeSpecialT(e);break;case 21:this.stateInAttrValueNoQuotes(e);break;case 7:this.stateInSelfClosingTag(e);break;case 23:this.stateInDeclaration(e);break;case 22:this.stateBeforeDeclaration(e);break;case 25:this.stateBeforeComment(e);break;case 24:this.stateInProcessingInstruction(e);break;case 33:this.stateInEntity()}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(1===this.state||32===this.state&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(19===this.state||20===this.state||21===this.state)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length;this.sectionStart>=e||(28===this.state?this.currentSequence===s0.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oR,{onerr:oJ,ontext(e,t){oF(oL(e,t),e,t)},ontextentity(e,t,n){oF(e,t,n)},oninterpolation(e,t){if(oE)return oF(oL(e,t),e,t);let n=e+oO.delimiterOpen.length,r=t-oO.delimiterClose.length;for(;sQ(ox.charCodeAt(n));)n++;for(;sQ(ox.charCodeAt(r-1));)r--;let i=oL(n,r);i.includes("&")&&(i=o_.decodeEntities(i,!1)),oq({type:5,content:oz(i,!1,oW(n,r)),loc:oW(e,t)})},onopentagname(e,t){let n=oL(e,t);oC={type:1,tag:n,ns:o_.getNamespace(n,oR[0],o_.ns),tagType:0,props:[],children:[],loc:oW(e-1,t),codegenNode:void 0}},onopentagend(e){o$(e)},onclosetag(e,t){let n=oL(e,t);if(!o_.isVoidTag(n)){let r=!1;for(let e=0;e<oR.length;e++)if(oR[e].tag.toLowerCase()===n.toLowerCase()){r=!0,e>0&&oR[0].loc.start.offset;for(let n=0;n<=e;n++)oD(oR.shift(),t,n<e);break}r||oV(e,60)}},onselfclosingtag(e){let t=oC.tag;oC.isSelfClosing=!0,o$(e),oR[0]&&oR[0].tag===t&&oD(oR.shift(),e)},onattribname(e,t){ok={type:6,name:oL(e,t),nameLoc:oW(e,t),value:void 0,loc:oW(e)}},ondirname(e,t){let n=oL(e,t),r="."===n||":"===n?"bind":"@"===n?"on":"#"===n?"slot":n.slice(2);if(oE||""===r)ok={type:6,name:n,nameLoc:oW(e,t),value:void 0,loc:oW(e)};else if(ok={type:7,name:r,rawName:n,exp:void 0,arg:void 0,modifiers:"."===n?[sU("prop")]:[],loc:oW(e)},"pre"===r){oE=oO.inVPre=!0,oI=oC;let e=oC.props;for(let t=0;t<e.length;t++)7===e[t].type&&(e[t]=function(e){let t={type:6,name:e.rawName,nameLoc:oW(e.loc.start.offset,e.loc.start.offset+e.rawName.length),value:void 0,loc:e.loc};if(e.exp){let n=e.exp.loc;n.end.offset<e.loc.end.offset&&(n.start.offset--,n.start.column--,n.end.offset++,n.end.column++),t.value={type:2,content:e.exp.content,loc:n}}return t}(e[t]))}},ondirarg(e,t){if(e===t)return;let n=oL(e,t);if(oE&&!oo(ok))ok.name+=n,oK(ok.nameLoc,t);else{let r="["!==n[0];ok.arg=oz(r?n:n.slice(1,-1),r,oW(e,t),3*!!r)}},ondirmodifier(e,t){let n=oL(e,t);if(oE&&!oo(ok))ok.name+="."+n,oK(ok.nameLoc,t);else if("slot"===ok.name){let e=ok.arg;e&&(e.content+="."+n,oK(e.loc,t))}else{let r=sU(n,!0,oW(e,t));ok.modifiers.push(r)}},onattribdata(e,t){oT+=oL(e,t),ow<0&&(ow=e),oN=t},onattribentity(e,t,n){oT+=e,ow<0&&(ow=t),oN=n},onattribnameend(e){let t=oL(ok.loc.start.offset,e);7===ok.type&&(ok.rawName=t),oC.props.some(e=>(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){oC&&ok&&(oK(ok.loc,t),0!==e&&(oT.includes("&")&&(oT=o_.decodeEntities(oT,!0)),6===ok.type?("class"===ok.name&&(oT=oH(oT).trim()),ok.value={type:2,content:oT,loc:1===e?oW(ow,oN):oW(ow-1,oN+1)},oO.inSFCRoot&&"template"===oC.tag&&"lang"===ok.name&&oT&&"html"!==oT&&oO.enterRCDATA(sY("</template"),0)):(ok.exp=oz(oT,!1,oW(ow,oN),0,0),"for"===ok.name&&(ok.forParseResult=function(e){let t=e.loc,n=e.content,r=n.match(og);if(!r)return;let[,i,l]=r,s=(e,n,r=!1)=>{let i=t.start.offset+n,l=i+e.length;return oz(e,!1,oW(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oP,"").trim(),c=i.indexOf(a),u=a.match(oM);if(u){let e;a=a.replace(oM,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(ok.exp)))),(7!==ok.type||"pre"!==ok.name)&&oC.props.push(ok)),oT="",ow=oN=-1},oncomment(e,t){o_.comments&&oq({type:3,content:oL(e,t),loc:oW(e-4,t+3)})},onend(){let e=ox.length;for(let t=0;t<oR.length;t++)oD(oR[t],e-1),oR[t].loc.start.offset},oncdata(e,t){0!==oR[0].ns&&oF(oL(e,t),e,t)},onprocessinginstruction(e){(oR[0]?oR[0].ns:o_.ns)===0&&oJ(21,e-1)}}),oM=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,oP=/^\(|\)$/g;function oL(e,t){return ox.slice(e,t)}function o$(e){oO.inSFCRoot&&(oC.innerLoc=oW(e+1,e+1)),oq(oC);let{tag:t,ns:n}=oC;0===n&&o_.isPreTag(t)&&oA++,o_.isVoidTag(t)?oD(oC,e):(oR.unshift(oC),(1===n||2===n)&&(oO.inXML=!0)),oC=null}function oF(e,t,n){{let t=oR[0]&&oR[0].tag;"script"!==t&&"style"!==t&&e.includes("&")&&(e=o_.decodeEntities(e,!1))}let r=oR[0]||oS,i=r.children[r.children.length-1];i&&2===i.type?(i.content+=e,oK(i.loc,n)):r.children.push({type:2,content:e,loc:oW(t,n)})}function oD(e,t,n=!1){n?oK(e.loc,oV(t,60)):oK(e.loc,function(e){let t=e;for(;62!==ox.charCodeAt(t)&&t<ox.length-1;)t++;return t}(t)+1),oO.inSFCRoot&&(e.children.length?e.innerLoc.end=T({},e.children[e.children.length-1].loc.end):e.innerLoc.end=T({},e.innerLoc.start),e.innerLoc.source=oL(e.innerLoc.start.offset,e.innerLoc.end.offset));let{tag:r,ns:i,children:l}=e;if(!oE&&("slot"===r?e.tagType=2:!function({tag:e,props:t}){if("template"===e){for(let e=0;e<t.length;e++)if(7===t[e].type&&oj.has(t[e].name))return!0}return!1}(e)?function({tag:e,props:t}){var n;if(o_.isCustomElement(e))return!1;if("component"===e||(n=e.charCodeAt(0))>64&&n<91||s4(e)||o_.isBuiltInComponent&&o_.isBuiltInComponent(e)||o_.isNativeTag&&!o_.isNativeTag(e))return!0;for(let e=0;e<t.length;e++){let n=t[e];if(6===n.type&&"is"===n.name&&n.value&&n.value.content.startsWith("vue:"))return!0}return!1}(e)&&(e.tagType=1):e.tagType=3),oO.inRCDATA||(e.children=oU(l)),0===i&&o_.isIgnoreNewlineTag(r)){let e=l[0];e&&2===e.type&&(e.content=e.content.replace(/^\r?\n/,""))}0===i&&o_.isPreTag(r)&&oA--,oI===e&&(oE=oO.inVPre=!1,oI=null),oO.inXML&&(oR[0]?oR[0].ns:o_.ns)===0&&(oO.inXML=!1)}function oV(e,t){let n=e;for(;ox.charCodeAt(n)!==t&&n>=0;)n--;return n}let oj=new Set(["if","else","else-if","for","slot"]),oB=/\r\n/g;function oU(e){let t="preserve"!==o_.whitespace,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(2===i.type)if(oA)i.content=i.content.replace(oB,` +`);else if(om(i.content)){let l=e[r-1]&&e[r-1].type,s=e[r+1]&&e[r+1].type;!l||!s||t&&(3===l&&(3===s||1===s)||1===l&&(3===s||1===s&&function(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(10===n||13===n)return!0}return!1}(i.content)))?(n=!0,e[r]=null):i.content=" "}else t&&(i.content=oH(i.content))}return n?e.filter(Boolean):e}function oH(e){let t="",n=!1;for(let r=0;r<e.length;r++)sQ(e.charCodeAt(r))?n||(t+=" ",n=!0):(t+=e[r],n=!1);return t}function oq(e){(oR[0]||oS).children.push(e)}function oW(e,t){return{start:oO.getPos(e),end:null==t?t:oO.getPos(t),source:null==t?t:oL(e,t)}}function oK(e,t){e.end=oO.getPos(t),e.source=oL(e.start.offset,t)}function oz(e,t=!1,n,r=0,i=0){return sU(e,t,n,r)}function oJ(e,t,n){o_.onError(s6(e,oW(t,t)))}function oG(e){let t=e.children.filter(e=>3!==e.type);return 1!==t.length||1!==t[0].type||ou(t[0])?null:t[0]}function oX(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oZ(e,t);if(0===c)return n.set(e,0),0;c<r&&(r=c);for(let i=0;i<e.children.length;i++){let l=oX(e.children[i],t);if(0===l)return n.set(e,0),0;l<r&&(r=l)}if(r>1)for(let i=0;i<e.props.length;i++){let l=e.props[i];if(7===l.type&&"bind"===l.name&&l.exp){let i=oX(l.exp,t);if(0===i)return n.set(e,0),0;i<r&&(r=i)}}if(i.isBlock){var l,s,o,a;for(let t=0;t<e.props.length;t++)if(7===e.props[t].type)return n.set(e,0),0;t.removeHelper(sn),t.removeHelper((l=t.inSSR,s=i.isComponent,l||s?sr:si)),i.isBlock=!1,t.helper((o=t.inSSR,a=i.isComponent,o||a?sl:ss))}return n.set(e,r),r}case 2:case 3:return 3;case 9:case 11:case 10:default:return 0;case 5:case 12:return oX(e.content,t);case 4:return e.constType;case 8:let c=3;for(let n=0;n<e.children.length;n++){let r=e.children[n];if(R(r)||O(r))continue;let i=oX(r,t);if(0===i)return 0;i<c&&(c=i)}return c;case 20:return 2}}let oQ=new Set([s_,sS,sx,sC]);function oZ(e,t){let n=3,r=oY(e);if(r&&15===r.type){let{properties:e}=r;for(let r=0;r<e.length;r++){let i,{key:l,value:s}=e[r],o=oX(l,t);if(0===o)return o;if(o<n&&(n=o),0===(i=4===s.type?oX(s,t):14===s.type?function e(t,n){if(14===t.type&&!R(t.callee)&&oQ.has(t.callee)){let r=t.arguments[0];if(4===r.type)return oX(r,n);if(14===r.type)return e(r,n)}return 0}(s,t):0))return i;i<n&&(n=i)}}return n}function oY(e){let t=e.codegenNode;if(13===t.type)return t.props}function o0(e,t){t.currentNode=e;let{nodeTransforms:n}=t,r=[];for(let i=0;i<n.length;i++){let l=n[i](e,t);if(l&&(E(l)?r.push(...l):r.push(l)),!t.currentNode)return;e=t.currentNode}switch(e.type){case 3:t.ssr||t.helper(so);break;case 5:t.ssr||t.helper(sy);break;case 9:for(let n=0;n<e.branches.length;n++)o0(e.branches[n],t);break;case 10:case 11:case 1:case 0:var i=e;let l=0,s=()=>{l--};for(;l<i.children.length;l++){let e=i.children[l];R(e)||(t.grandParent=t.parent,t.parent=i,t.childIndex=l,t.onNodeRemoved=s,o0(e,t))}}t.currentNode=e;let o=r.length;for(;o--;)r[o]()}function o1(e,t){let n=R(e)?t=>t===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oa))return;let l=[];for(let s=0;s<i.length;s++){let o=i[s];if(7===o.type&&n(o.name)){i.splice(s,1),s--;let n=t(e,o,r);n&&l.push(n)}}return l}}}let o2="/*@__PURE__*/",o6=e=>`${s$[e]}: _${s$[e]}`;function o3(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?su:sh);for(let n=0;n<e.length;n++){let o=e[n],a=o.endsWith("__self");a&&(o=o.slice(0,-6)),r(`const ${of(o,t)} = ${s}(${JSON.stringify(o)}${a?", true":""})${l?"!":""}`),n<e.length-1&&i()}}function o4(e,t){let n=e.length>3;t.push("["),n&&t.indent(),o8(e,t,n),n&&t.deindent(),t.push("]")}function o8(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;s<e.length;s++){let o=e[s];R(o)?i(o,-3):E(o)?o4(o,t):o5(o,t),s<e.length-1&&(n?(r&&i(","),l()):r&&i(", "))}}function o5(e,t){var n,r,i;if(R(e))return void t.push(e,-3);if(O(e))return void t.push(t.helper(e));switch(e.type){case 1:case 9:case 11:case 12:o5(e.codegenNode,t);break;case 2:n=e,t.push(JSON.stringify(n.content),-3,n);break;case 4:o9(e,t);break;case 5:!function(e,t){let{push:n,helper:r,pure:i}=t;i&&n(o2),n(`${r(sy)}(`),o5(e.content,t),n(")")}(e,t);break;case 8:o7(e,t);break;case 3:!function(e,t){let{push:n,helper:r,pure:i}=t;i&&n(o2),n(`${r(so)}(${JSON.stringify(e.content)})`,-3,e)}(e,t);break;case 13:!function(e,t){var n,r;let i,{push:l,helper:s,pure:o}=t,{tag:a,props:c,children:u,patchFlag:d,dynamicProps:h,directives:p,isBlock:f,disableTracking:g,isComponent:m}=e;d&&(i=String(d)),p&&l(s(sf)+"("),f&&l(`(${s(sn)}(${g?"true":""}), `),o&&l(o2),l(s(f?(n=t.inSSR,n||m?sr:si):(r=t.inSSR,r||m?sl:ss))+"(",-2,e),o8(function(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map(e=>e||"null")}([a,c,u,i,h]),t),l(")"),f&&l(")"),p&&(l(", "),o5(p,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=R(e.callee)?e.callee:r(e.callee);i&&n(o2),n(l+"(",-2,e),o8(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e<s.length;e++){let{key:r,value:i}=s[e];!function(e,t){let{push:n}=t;if(8===e.type)n("["),o7(e,t),n("]");else if(e.isStatic){let t;n((t=e.content,s8.test(t))?JSON.stringify(e.content):e.content,-2,e)}else n(`[${e.content}]`,-3,e)}(r,t),n(": "),o5(i,t),e<s.length-1&&(n(","),l())}o&&i(),n(o?"}":" }")}(e,t);break;case 17:r=e,i=t,o4(r.elements,i);break;case 18:!function(e,t){let{push:n,indent:r,deindent:i}=t,{params:l,returns:s,body:o,newline:a,isSlot:c}=e;c&&n(`_${s$[sR]}(`),n("(",-2,e),E(l)?o8(l,t):l&&o5(l,t),n(") => "),(a||o)&&(n("{"),r()),s?(a&&n("return "),E(s)?o4(s,t):o5(s,t)):o&&o5(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!s8.test(e));r&&s("("),o9(n,t),r&&s(")")}else s("("),o5(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),o5(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,o5(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sA)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),o5(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sA)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:o8(e.body,t,!0,!1)}}function o9(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o7(e,t){for(let n=0;n<e.children.length;n++){let r=e.children[n];R(r)?t.push(r,-3):o5(r,t)}}let ae=o1(/^(?:if|else|else-if)$/,(e,t,n)=>(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s6(28,t.loc)),t.exp=sU("true",!1,r)}if("if"===t.name){var i;let l=at(e,t),s={type:9,loc:oW((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&oy(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s6(30,e.loc)),n.removeNode();let i=at(e,t);s.branches.push(i);let l=r&&r(s,i,!1);o0(i,n),l&&l(),n.currentNode=null}else n.onError(s6(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=an(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=an(t,s+e.branches.length-1,n)}}));function at(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!or(e,"for")?e.children:[e],userKey:oi(e,"key"),isTemplateIf:n}}function an(e,t,n){return e.condition?sK(e.condition,ar(e,t,n),sq(n.helper(so),['""',"true"])):ar(e,t,n)}function ar(e,t,n){let{helper:r}=n,i=sB("key",sU(`${t}`,!1,sF,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return sD(n,r(l5),sj([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return oh(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sP?e.arguments[1].returns:e;return 13===t.type&&sz(t,n),oh(t,i,n),e}}let ai=o1("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s6(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s6(32,t.loc));al(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:oc(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let d=r&&r(u);return()=>{l.vFor--,d&&d()}}(e,t,n,t=>{let l=sq(r(sg),[t.source]),s=oc(e),o=or(e,"memo"),a=oi(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?sU(a.value.content,!0):void 0:a.exp),u=a&&c?sB("key",c):null,d=4===t.source.type&&t.source.constType>0,h=d?64:a?128:256;return t.codegenNode=sD(n,r(l5),void 0,l,h,void 0,void 0,!0,!d,!1,e.loc),()=>{let a,{children:h}=t,p=1!==h.length||1!==h[0].type,f=ou(e)?e:s&&1===e.children.length&&ou(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&oh(a,u,n);else if(p)a=sD(n,r(l5),u?sj([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var g,m,y,b,_,S,x,C;a=h[0].codegenNode,s&&u&&oh(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(sn),i((g=n.inSSR,m=a.isComponent,g||m?sr:si))):i((y=n.inSSR,b=a.isComponent,y||b?sl:ss))),(a.isBlock=!d,a.isBlock)?(r(sn),r((_=n.inSSR,S=a.isComponent,_||S?sr:si))):r((x=n.inSSR,C=a.isComponent,x||C?sl:ss))}if(o){let e=sW(as(t.parseResult,[sU("_cached")]));e.body={type:21,body:[sH(["const _memo = (",o.exp,")"]),sH(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sL)}(_cached, _memo)) return _cached`]),sH(["const _item = ",a]),sU("_item.memo = _memo"),sU("return _item")],loc:sF},l.arguments.push(e,sU("_cache"),sU(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sW(as(t.parseResult),a,!0))}})});function al(e,t){e.finalized||(e.finalized=!0)}function as({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sU("_".repeat(t+1),!1))}let ao=sU("undefined",!1),aa=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=or(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function ac(e,t,n){let r=[sB("name",e),sB("fn",t)];return null!=n&&r.push(sB("key",sU(String(n),!0))),sj(r)}let au=new WeakMap,ad=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=af(r),l=oi(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sU(l.value.content,!0):(e=l.exp)||(e=sU("is",!1,l.arg.loc)),e)return sq(t.helper(sd),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s4(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(su),t.components.add(r),of(r,"component"))}(e,t):`"${o}"`,d=M(u)&&u.callee===sd,h=0,p=d||u===l9||u===l7||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ah(e,t,void 0,c,d);n=r.props,h=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sV(i.map(e=>(function(e,t){let n=[],r=au.get(e);r?n.push(t.helperString(r)):(t.helper(sh),t.directives.add(e.name),n.push(of(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sU("true",!1,i);n.push(sj(e.modifiers.map(e=>sB(e,t)),i))}return sV(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(p=!0)}if(e.children.length>0)if(u===se&&(p=!0,h|=1024),c&&u!==l9&&u!==se){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sW(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sR);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=or(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s3(e)&&(o=!0),l.push(sB(e||sU("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],h=new Set,p=0;for(let e=0;e<r.length;e++){let i,f,g,m,y=r[e];if(!oc(y)||!(i=or(y,"slot",!0))){3!==y.type&&d.push(y);continue}if(a){t.onError(s6(37,i.loc));break}c=!0;let{children:b,loc:_}=y,{arg:S=sU("default",!0),exp:x,loc:C}=i;s3(S)?f=S?S.content:"default":o=!0;let k=or(y,"for"),T=n(x,k,b,_);if(g=or(y,"if"))o=!0,s.push(sK(g.exp,ac(S,T,p++),ao));else if(m=or(y,/^else(?:-if)?$/,!0)){let n,i=e;for(;i--&&oy(n=r[i]););if(n&&oc(n)&&or(n,/^(?:else-)?if$/)){let e=s[s.length-1];for(;19===e.alternate.type;)e=e.alternate;e.alternate=m.exp?sK(m.exp,ac(S,T,p++),ao):ac(S,T,p++)}else t.onError(s6(30,m.loc))}else if(k){o=!0;let e=k.forParseResult;e?(al(e),s.push(sq(t.helper(sg),[e.source,sW(as(e),ac(S,T),!0)]))):t.onError(s6(32,k.loc))}else{if(f){if(h.has(f)){t.onError(s6(38,C));continue}h.add(f),"default"===f&&(u=!0)}l.push(sB(S,T))}}if(!a){let e=(e,t)=>sB("default",n(e,void 0,t,i));c?d.length&&!d.every(ov)&&(u?t.onError(s6(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n<t.length;n++){let r=t[n];switch(r.type){case 1:if(2===r.tagType||e(r.children))return!0;break;case 9:if(e(r.branches))return!0;break;case 10:case 11:if(e(r.children))return!0}}return!1}(e.children)?1:3,g=sj(l.concat(sB("_",sU(f+"",!1))),i);return s.length&&(g=sq(t.helper(sv),[g,sV(s)])),{slots:g,hasDynamicSlots:o}}(e,t);r=n,i&&(h|=1024)}else if(1===e.children.length&&u!==l9){let n=e.children[0],i=n.type,l=5===i||8===i;l&&0===oX(n,t)&&(h|=1),r=l||2===i?n:e.children}else r=e.children;l&&l.length&&(i=function(e){let t="[";for(let n=0,r=e.length;n<r;n++)t+=JSON.stringify(e[n]),n<r-1&&(t+=", ");return t+"]"}(l)),e.codegenNode=sD(t,u,n,r,0===h?void 0:h,i,s,!!p,!1,c,e.loc)};function ah(e,t,n=e.props,r,i,l=!1){let s,{tag:o,loc:a,children:c}=e,u=[],d=[],h=[],p=c.length>0,f=!1,g=0,m=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(d.push(sj(ap(u),a)),u=[]),e&&d.push(e)},w=()=>{t.scopes.vFor>0&&u.push(sB(sU("ref_for",!0),sU("true")))},N=({key:e,value:n})=>{if(s3(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!F(l)&&(_=!0),s&&F(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oX(n,t)>0||("ref"===l?m=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i<n.length;i++){let s=n[i];if(6===s.type){let{loc:e,name:t,nameLoc:n,value:r}=s;if("ref"===t&&(m=!0,w()),"is"===t&&(af(o)||r&&r.content.startsWith("vue:")))continue;u.push(sB(sU(t,!0,n),sU(r?r.content:"",!0,r?r.loc:e)))}else{let{name:n,arg:i,exp:c,loc:m,modifiers:y}=s,b="bind"===n,_="on"===n;if("slot"===n){r||t.onError(s6(40,m));continue}if("once"===n||"memo"===n||"is"===n||b&&ol(i,"is")&&af(o)||_&&l)continue;if((b&&ol(i,"key")||_&&p&&ol(i,"vue:before-update"))&&(f=!0),b&&ol(i,"ref")&&w(),!i&&(b||_)){S=!0,c?b?(w(),T(),d.push(c)):T({type:14,loc:m,callee:t.helper(sk),arguments:r?[c]:[c,"true"]}):t.onError(s6(b?34:35,m));continue}b&&y.some(e=>"prop"===e.content)&&(g|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(N),_&&i&&!s3(i)?T(sj(n,a)):u.push(...n),r&&(h.push(s),O(r)&&au.set(s,r))}else!D(n)&&(h.push(s),p&&(f=!0))}}if(d.length?(T(),s=d.length>1?sq(t.helper(sb),d,a):d[0]):u.length&&(s=sj(ap(u),a)),S?g|=16:(y&&!r&&(g|=2),b&&!r&&(g|=4),k.length&&(g|=8),_&&(g|=32)),!f&&(0===g||32===g)&&(m||x||h.length>0)&&(g|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e<s.properties.length;e++){let t=s.properties[e].key;s3(t)?"class"===t.content?A=e:"style"===t.content&&(E=e):t.isHandlerKey||(I=!0)}let R=s.properties[A],M=s.properties[E];I?s=sq(t.helper(sx),[s]):(R&&!s3(R.value)&&(R.value=sq(t.helper(s_),[R.value])),M&&(b||4===M.value.type&&"["===M.value.content.trim()[0]||17===M.value.type)&&(M.value=sq(t.helper(sS),[M.value])));break;case 14:break;default:s=sq(t.helper(sx),[sq(t.helper(sC),[s])])}return{props:s,directives:h,patchFlag:g,dynamicPropNames:k,shouldUseBlock:f}}function ap(e){let t=new Map,n=[];for(let l=0;l<e.length;l++){var r,i;let s=e[l];if(8===s.key.type||!s.key.isStatic){n.push(s);continue}let o=s.key.content,a=t.get(o);a?("style"===o||"class"===o||C(o))&&(r=a,i=s,17===r.value.type?r.value.elements.push(i.value):r.value=sV([r.value,i.value],r.loc)):(t.set(o,s),n.push(s))}return n}function af(e){return"component"===e||"Component"===e}let ag=(e,t)=>{if(ou(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t<e.props.length;t++){let n=e.props[t];if(6===n.type)n.value&&("name"===n.name?r=JSON.stringify(n.value.content):(n.name=B(n.name),i.push(n)));else if("bind"===n.name&&ol(n.arg,"name")){if(n.exp)r=n.exp;else if(n.arg&&4===n.arg.type){let e=B(n.arg.content);r=n.exp=sU(e,!1,n.arg.loc)}}else"bind"===n.name&&n.arg&&s3(n.arg)&&(n.arg.content=B(n.arg.content)),i.push(n)}if(i.length>0){let{props:r,directives:l}=ah(e,t,i,!1,!1);n=r,l.length&&t.onError(s6(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sW([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sq(t.helper(sm),s,r)}},am=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sU(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?W(B(e)):`on:${e}`,!0,o.loc)}else i=sH([`${n.helperString(sN)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sN)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=ot(a),n=!(t||(e=a,on.test(oe(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sH([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sB(i,a||sU("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},av=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=B(i.content):i.content=`${n.helperString(sT)}(${i.content})`:(i.children.unshift(`${n.helperString(sT)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&ay(i,"."),r.some(e=>"attr"===e.content)&&ay(i,"^")),{props:[sB(i,l)]}},ay=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ab=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e<r.length;e++){let t=r[e];if(os(t)){i=!0;for(let i=e+1;i<r.length;i++){let l=r[i];if(os(l))n||(n=r[e]=sH([t],t.loc)),n.children.push(" + ",l),r.splice(i,1),i--;else{n=void 0;break}}}}if(i&&(1!==r.length||0!==e.type&&(1!==e.type||0!==e.tagType||e.props.find(e=>7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e<r.length;e++){let n=r[e];if(os(n)||8===n.type){let i=[];(2!==n.type||" "!==n.content)&&i.push(n),t.ssr||0!==oX(n,t)||i.push("1"),r[e]={type:12,content:n,loc:n.loc,codegenNode:sq(t.helper(sa),i)}}}}},a_=new WeakSet,aS=(e,t)=>{if(1===e.type&&or(e,"once",!0)&&!a_.has(e)&&!t.inVOnce&&!t.inSSR)return a_.add(e),t.inVOnce=!0,t.helper(sA),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},ax=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s6(41,e.loc)),aC();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,aC();if(!o.trim()||!ot(i))return n.onError(s6(42,i.loc)),aC();let c=l||sU("modelValue",!0),u=l?s3(l)?`onUpdate:${B(l.content)}`:sH(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sH([`${d} => ((`,i,") = $event)"]);let h=[sB(c,e.exp),sB(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s8.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?s3(l)?`${l.content}Modifiers`:sH([l,' + "Modifiers"']):"modelModifiers";h.push(sB(n,sU(`{ ${t} }`,!1,e.loc,2)))}return aC(h)};function aC(e=[]){return{props:e}}let ak=new WeakSet,aT=(e,t)=>{if(1===e.type){let n=or(e,"memo");if(!(!n||ak.has(e))&&!t.inSSR)return ak.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sz(r,t),e.codegenNode=sq(t.helper(sP),[n.exp,sW(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aw=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=B(e.content);(s5.test(t[0])||"-"===t[0])&&(n.exp=sU(t,!1,e.loc))}else t.onError(s6(53,e.loc)),n.exp=sU("",!0,e.loc)}}},aN=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aM=Symbol(""),aP=Symbol(""),aL=Symbol(""),a$=Symbol("");Object.getOwnPropertySymbols(r={[aN]:"vModelRadio",[aA]:"vModelCheckbox",[aE]:"vModelText",[aI]:"vModelSelect",[aR]:"vModelDynamic",[aO]:"withModifiers",[aM]:"withKeys",[aP]:"vShow",[aL]:"Transition",[a$]:"TransitionGroup"}).forEach(e=>{s$[e]=r[e]});let aF={parseMode:"html",isVoidTag:ea,isNativeTag:e=>el(e)||es(e)||eo(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`<div foo="${e.replace(/"/g,""")}">`,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aL:"TransitionGroup"===e||"transition-group"===e?a$:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},aD=y("passive,once,capture"),aV=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aj=y("left,right"),aB=y("onkeyup,onkeydown,onkeypress"),aU=(e,t)=>s3(e)&&"onclick"===e.content.toLowerCase()?sU(t,!0):4!==e.type?sH(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aH=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aq=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sU("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sU(JSON.stringify(er(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aW={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s6(54,i)),t.children.length&&(n.onError(s6(55,i)),t.children.length=0),{props:[sB(sU("innerHTML",!0,i),r||sU("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s6(56,i)),t.children.length&&(n.onError(s6(57,i)),t.children.length=0),{props:[sB(sU("textContent",!0),r?oX(r,n)>0?r:sq(n.helperString(sy),[r],i):sU("",!0))]}},model:(e,t,n)=>{let r=ax(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s6(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aE,o=!1;if("input"===i||l){let r=oi(t,"type");if(r){if(7===r.type)s=aR;else if(r.value)switch(r.value.content){case"radio":s=aN;break;case"checkbox":s=aA;break;case"file":o=!0,n.onError(s6(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aR)}else"select"===i&&(s=aI);o||(r.needRuntime=n.helper(s))}else n.onError(s6(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>am(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n<t.length;n++){let r=t[n].content;aD(r)?s.push(r):aj(r)?s3(e)?aB(e.content.toLowerCase())?i.push(r):l.push(r):(i.push(r),l.push(r)):aV(r)?l.push(r):i.push(r)}return{keyModifiers:i,nonKeyModifiers:l,eventOptionModifiers:s}})(i,r,0,e.loc);if(o.includes("right")&&(i=aU(i,"onContextmenu")),o.includes("middle")&&(i=aU(i,"onMouseup")),o.length&&(l=sq(n.helper(aO),[l,JSON.stringify(o)])),s.length&&(!s3(i)||aB(i.content.toLowerCase()))&&(l=sq(n.helper(aM),[l,JSON.stringify(s)])),a.length){let e=a.map(q).join("");i=s3(i)?sU(`${i.content}${e}`,!0):sH(["(",i,`) + "${e}"`])}return{props:[sB(i,l)]}}),show:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s6(62,i)),{props:[],needRuntime:n.helper(aP)}}},aK=Object.create(null);function az(e,t){if(!R(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aK[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||s1,l="module"===t.mode;!0===t.prefixIdentifiers?i(s6(48)):l&&i(s6(49)),t.cacheHandlers&&i(s6(50)),t.scopeId&&!l&&i(s6(51));let s=T({},t,{prefixIdentifiers:!1}),o=R(e)?function(e,t){if(oO.reset(),oC=null,ok=null,oT="",ow=-1,oN=-1,oR.length=0,ox=e,o_=T({},ob),t){let e;for(e in t)null!=t[e]&&(o_[e]=t[e])}oO.mode="html"===o_.parseMode?1:2*("sfc"===o_.parseMode),oO.inXML=1===o_.ns||2===o_.ns;let n=t&&t.delimiters;n&&(oO.delimiterOpen=sY(n[0]),oO.delimiterClose=sY(n[1]));let r=oS=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sF}}([],e);return oO.parse(ox),r.loc=oW(0,e.length),r.children=oU(r.children),oS=null,r}(e,s):e,[a,c]=[[aw,aS,ae,aT,ai,ag,ad,aa,ab],{on:am,bind:av,model:ax}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:d=[],scopeId:h=null,slotted:p=!0,ssr:f=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=s1,onWarn:k=s2,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),N={filename:t,selfName:w&&q(B(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:h,slotted:p,ssr:f,inSSR:g,ssrCssVars:m,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=N.helpers.get(e)||0;return N.helpers.set(e,t+1),e},removeHelper(e){let t=N.helpers.get(e);if(t){let n=t-1;n?N.helpers.set(e,n):N.helpers.delete(e)}},helperString:e=>`_${s$[N.helper(e)]}`,replaceNode(e){N.parent.children[N.childIndex]=N.currentNode=e},removeNode(e){let t=N.parent.children,n=e?t.indexOf(e):N.currentNode?N.childIndex:-1;e&&e!==N.currentNode?N.childIndex>n&&(N.childIndex--,N.onNodeRemoved()):(N.currentNode=null,N.onNodeRemoved()),N.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){R(e)&&(e=sU(e)),N.hoists.push(e);let t=sU(`_hoisted_${N.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sF}}(N.cached.length,e,t,n);return N.cached.push(r),r}};return N}(o,n=T({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:T({},c,t.directiveTransforms||{})})),o0(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n<s.length;n++){let a=s[n];if(1===a.type&&0===a.tagType){let e=i?0:oX(a,r);if(e>0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oZ(a,r)>=2){let t=oY(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oX(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;n<a.branches.length;n++)e(a.branches[n],t,r,1===a.branches[n].children.length,l)}let a=!1;if(o.length===s.length&&1===t.type){if(0===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&E(t.codegenNode.children))t.codegenNode.children=c(sV(t.codegenNode.children)),a=!0;else if(1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!E(t.codegenNode.children)&&15===t.codegenNode.children.type){let e=u(t.codegenNode,"default");e&&(e.returns=c(sV(e.returns)),a=!0)}else if(3===t.tagType&&n&&1===n.type&&1===n.tagType&&n.codegenNode&&13===n.codegenNode.type&&n.codegenNode.children&&!E(n.codegenNode.children)&&15===n.codegenNode.children.type){let e=or(t,"slot",!0),r=e&&e.arg&&u(n.codegenNode,e.arg);r&&(r.returns=c(sV(r.returns)),a=!0)}}if(!a)for(let e of o)e.codegenNode=r.cache(e.codegenNode);function c(e){let t=r.cache(e);return t.needArraySpread=!0,t}function u(e,t){if(e.children&&!E(e.children)&&15===e.children.type){let n=e.children.properties.find(e=>e.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!oG(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oG(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sz(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=sD(t,n(l5),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:h=!1}){let p={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:h,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${s$[e]}`,push(e,t=-2,n){p.code+=e},indent(){f(++p.indentLevel)},deindent(e=!1){e?--p.indentLevel:f(--p.indentLevel)},newline(){f(p.indentLevel)}};function f(e){p.push(` +`+" ".repeat(e),0)}return p}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),d=u.length>0,h=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} +`,-1),e.hoists.length)){let e=[sl,ss,so,sa,sc].filter(e=>l.includes(e)).map(o6).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i<e.length;i++){let l=e[i];l&&(n(`const _hoisted_${i+1} = `),o5(l,t),r())}t.pure=!1})(e.hoists,t),r(),n("return ")}(e,n);let p=(c?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ");if(i(`function ${c?"ssrRender":"render"}(${p}) {`),s(),h&&(i("with (_ctx) {"),s(),d&&(i(`const { ${u.map(o6).join(", ")} } = _Vue +`,-1),a())),e.components.length&&(o3(e.components,"component",n),(e.directives.length||e.temps>0)&&a()),e.directives.length&&(o3(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t<e.temps;t++)i(`${t>0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?o5(e.codegenNode,n):i("null"),h&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,T({},aF,t,{nodeTransforms:[aH,...aq,...t.nodeTransforms||[]],directiveTransforms:T({},aW,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aK[n]=s}return iM(az),e.BaseTransition=nb,e.BaseTransitionPropsValidators=nm,e.Comment=r9,e.DeprecationTypes=null,e.EffectScope=em,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r8,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iN(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,h=d("div");function p(e){nG(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=iD(nU(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&g(n)})}function g(e){let t=i.get(e);!t||s&&iu(t,s)?s&&nG(s):p(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rW(()=>{l.isDeactivated=!1,l.a&&z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iC(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rZ(t.m),rZ(t.a),c(e,h,null,1,o),rW(()=>{t.da&&z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iC(n,t.parent,e),t.isDeactivated=!0},o)},t7(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nW(e,t)),t&&f(e=>!nW(t,e))},{flush:"post",deep:!0});let m=null,y=()=>{null!=m&&(rY(n.subTree.type)?rW(()=>{i.set(m,nX(n.subTree))},n.subTree.suspense):i.set(m,nX(n.subTree)))};return n0(y),n2(y),n6(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nX(t);if(e.type===i.type&&e.key===i.key){nG(i);let e=i.component.da;e&&rW(e,r);return}p(e)})}),()=>{if(m=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!ic(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nX(r);if(o.type===r9)return s=null,o;let a=o.type,c=iD(nU(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:h}=e;if(u&&(!c||!nW(u,c))||d&&c&&nW(d,c))return o.shapeFlag&=-257,s=o,r;let p=null==o.key?a:o.key,f=i.get(p);return o.el&&(o=iv(o),128&r.shapeFlag&&(r.ssContent=o)),m=p,f?(o.el=f.el,o.component=f.component,o.transition&&nk(o,o.transition),o.shapeFlag|=512,l.delete(p),l.add(p)):(l.add(p),h&&l.size>parseInt(h,10)&&g(l.values().next().value)),o.shapeFlag|=256,s=o,rY(r.type)?r:o}}},e.ReactiveEffect=ey,e.Static=r7,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,d=u("div"),h=e.suspense=r2(e,i,r,t,d,n,l,s,o,a);c(null,h.pendingBranch=e.ssContent,d,null,r,h,l,s),h.deps>0?(r1(e,"onPending"),r1(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),r4(h,e.ssFallback)):h.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let h=t.ssContent,p=t.ssFallback,{activeBranch:f,pendingBranch:g,isInFallback:m,isHydrating:y}=d;if(g)d.pendingBranch=h,iu(g,h)?(a(g,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():m&&!y&&(a(f,p,n,r,i,null,l,s,o),r4(d,p))):(d.pendingId=r0++,y?(d.isHydrating=!1,d.activeBranch=g):c(g,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),m?(a(null,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():(a(f,p,n,r,i,null,l,s,o),r4(d,p))):f&&iu(f,h)?(a(f,h,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(f&&iu(f,h))a(f,h,n,r,i,d,l,s,o),r4(d,h);else if(r1(t,"onPending"),d.pendingBranch=h,512&h.shapeFlag?d.pendingId=h.component.suspenseId:d.pendingId=r0++,a(null,h,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(p)},e):0===e&&d.fallback(p)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r2(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r6(r?n.default:n),e.ssFallback=r?r6(n.fallback):ig(r9)}},e.Teleport=na,e.Text=r5,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=iY,e.TransitionGroup=lR,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=lT,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tD,e.callWithErrorHandling=tF,e.camelize=B,e.capitalize=q,e.cloneVNode=iv,e.compatUtils=null,e.compile=az,e.computed=iV,e.createApp=l6,e.createBlock=ia,e.createCommentVNode=function(e="",t=!1){return t?(ir(),ia(r9,null,e)):ig(r9,null,e)},e.createElementBlock=function(e,t,n,r,i,l){return io(ip(e,t,n,r,i,l,!0))},e.createElementVNode=ip,e.createHydrationRenderer=rK,e.createPropsRestProxy=function(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n},e.createRenderer=function(e){return rz(e)},e.createSSRApp=l3,e.createSlots=function(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(E(r))for(let t=0;t<r.length;t++)e[r[t].name]=r[t].fn;else r&&(e[r.name]=r.key?(...e)=>{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=ig(r7,null,e);return n.staticCount=t,n},e.createTextVNode=iy,e.createVNode=ig,e.customRef=tE,e.defineAsyncComponent=function(e){let t;I(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,h=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,h())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nw({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nL(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nL(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():h().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iw;if(nN(e),t)return()=>nH(t,e);let n=t=>{u=null,tV(t,e,13,!i)};if(a&&e.suspense)return h().then(t=>()=>nH(t,e)).catch(e=>(n(e),()=>i?ig(i,{error:e}):null));let s=tS(!1),c=tS(),d=tS(!!l);return l&&setTimeout(()=>{d.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),h().then(()=>{s.value=!0,e.parent&&nq(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nH(t,e):c.value&&i?ig(i,{error:c.value}):r&&!d.value?nH(r,e):void 0}})},e.defineComponent=nw,e.defineCustomElement=lC,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lC(e,t,l3),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ey&&(e=e.effect.fn);let n=new ey(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new em(e)},e.getCurrentInstance=iN,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return g},e.getTransitionRawChildren=nT,e.guardReactiveProps=im,e.h=ij,e.handleError=tV,e.hasInjectionContext=function(){return!!(iN()||rx)},e.hydrate=(...e)=>{l1().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nj(t,{timeout:e});return()=>nB(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{R(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t<l||r>0&&r<l)&&(n>0&&n<s||i>0&&i<s)}(e))return t(),r.disconnect(),!1;r.observe(e)}}),()=>r.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=t8,e.isMemoSame=iB,e.isProxy=tg,e.isReactive=th,e.isReadonly=tp,e.isRef=t_,e.isRuntimeOnly=()=>!d,e.isShallow=tf,e.isVNode=ic,e.markRaw=tv,e.mergeDefaults=function(e,t){let n=rc(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||I(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},rc(e),rc(t)):e||t},e.mergeProps=ix,e.nextTick=tz,e.nodeOps=iz,e.normalizeClass=ei,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!R(t)&&(e.class=ei(t)),n&&(e.style=Y(n)),e},e.normalizeStyle=Y,e.onActivated=nK,e.onBeforeMount=nY,e.onBeforeUnmount=n6,e.onBeforeUpdate=n1,e.onDeactivated=nz,e.onErrorCaptured=n9,e.onMounted=n0,e.onRenderTracked=n5,e.onRenderTriggered=n8,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n4,e.onUnmounted=n3,e.onUpdated=n2,e.onWatcherCleanup=tL,e.openBlock=ir,e.patchProp=lS,e.popScopeId=function(){t1=null},e.provide=t4,e.proxyRefs=tN,e.pushScopeId=function(e){t1=e},e.queuePostFlushCb=tX,e.reactive=ta,e.readonly=tu,e.ref=tS,e.registerRuntimeCompiler=iM,e.render=l2,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||R(e)){let n=s&&th(e),r=!1,o=!1;n&&(r=!tf(e),o=tp(e),e=eU(e)),i=Array(e.length);for(let n=0,s=e.length;n<s;n++)i[n]=t(r?o?tb(ty(e[n])):ty(e[n]):e[n],n,void 0,l&&l[n])}else if("number"==typeof e){i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,l&&l[n])}else if(M(e))if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r<s;r++){let s=n[r];i[r]=t(e[s],s,r,l&&l[r])}}else i=[];return n&&(n[r]=i),i},e.renderSlot=function(e,t,n={},r,i){if(t0.ce||t0.parent&&nU(t0.parent)&&t0.parent.ce){let e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),ir(),ia(r8,null,[ig("slot",n,r&&r())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),ir();let s=l&&function e(t){return t.some(t=>!ic(t)||t.type!==r9&&(t.type!==r8||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=ia(r8,{key:(o&&!O(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return rt(n7,e,!0,t)||e},e.resolveDirective=function(e){return rt("directives",e)},e.resolveDynamicComponent=function(e){return R(e)?rt(n7,e,!1)||e:e||re},e.resolveFilter=null,e.resolveTransitionHooks=nS,e.setBlockTracking=is,e.setDevtoolsHook=S,e.setTransitionHooks=nk,e.shallowReactive=tc,e.shallowReadonly=function(e){return td(e,!0,e8,tr,to)},e.shallowRef=tx,e.ssrContextKey=t5,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ep,e.toHandlerKey=W,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:W(r)]=e[r];return n},e.toRaw=tm,e.toRef=function(e,t,n){if(t_(e))return e;if(I(e))return new tR(e);if(!M(e)||!(arguments.length>1))return tS(e);return new tI(e,t,n)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=new tI(e,n,void 0);return t},e.toValue=function(e){return I(e)?e():tT(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tT,e.useAttrs=function(){return ra().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iN();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>ls(e,n))},r=()=>{let r=e(t.proxy);t.ce?ls(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)ls(t.el,n);else if(t.type===r8)t.children.forEach(t=>e(t,n));else if(t.type===r7){let{el:e,anchor:r}=t;for(;e&&(ls(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n1(()=>{tX(r)}),n0(()=>{t7(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n3(()=>e.disconnect())})},e.useHost=lw,e.useId=function(){let e=iN();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iN(),i=B(t),l=H(t),s=rC(e,i),o=tE((s,o)=>{let a,c,u=b;return t9(()=>{let t=e[i];K(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!K(s,a)&&!(u!==b&&K(e,u)))return;let d=r.vnode.props;d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d)||(a=e,o()),r.emit(`update:${t}`,s),K(e,s)&&K(e,u)&&!K(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lw();return e&&e.shadowRoot},e.useSlots=function(){return ra().slots},e.useTemplateRef=function(e){let t=iN(),n=tx(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=nf,e.vModelCheckbox=lU,e.vModelDynamic={created(e,t,n){lG(e,t,n,null,"created")},mounted(e,t,n){lG(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lG(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lG(e,t,n,r,"updated")}},e.vModelRadio=lq,e.vModelSelect=lW,e.vModelText=lB,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[ln]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):li(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),li(e,!0),r.enter(e)):r.leave(e,()=>{li(e,!1)}):li(e,t))},beforeUnmount(e,{value:t}){li(e,t)}},e.version=iU,e.warn=S,e.watch=function(e,t,n){return t7(e,t,n)},e.watchEffect=function(e,t){return t7(e,null,t)},e.watchPostEffect=function(e,t){return t7(e,null,{flush:"post"})},e.watchSyncEffect=t9,e.withAsyncContext=function(e){let t=iN(),n=e();return iE(),P(n)&&(n=n.catch(e=>{throw iA(t),e})),[n,()=>iA(t)]},e.withCtx=t6,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t0)return e;let n=iF(t0),r=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[i,l,s,o=b]=t[e];i&&(I(i)&&(i={mounted:i,updated:i}),i.deep&&t$(l),r.push({dir:i,instance:n,value:l,oldValue:void 0,arg:s,modifiers:o}))}return e},e.withKeys=(e,t)=>{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=H(n.key);if(t.some(e=>e===r||lZ[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iB(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;e<t.length;e++){let r=lQ[t[e]];if(r&&r(n,t))return}return e(n,...r)})},e.withScopeId=e=>t6,e}({}); diff --git a/node_modules/vue/dist/vue.runtime.esm-browser.js b/node_modules/vue/dist/vue.runtime.esm-browser.js new file mode 100644 index 0000000..d883f54 --- /dev/null +++ b/node_modules/vue/dist/vue.runtime.esm-browser.js @@ -0,0 +1,12695 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = Object.freeze({}) ; +const EMPTY_ARR = Object.freeze([]) ; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); +}; +const camelizeRE = /-\w/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); +} + +function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} + +let activeEffectScope; +class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} + +let activeSub; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" +); +const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" +); +const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); +} +// @__NO_SIDE_EFFECTS__ +function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +// @__NO_SIDE_EFFECTS__ +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +// @__NO_SIDE_EFFECTS__ +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +// @__NO_SIDE_EFFECTS__ +function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +// @__NO_SIDE_EFFECTS__ +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +// @__NO_SIDE_EFFECTS__ +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +// @__NO_SIDE_EFFECTS__ +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +// @__NO_SIDE_EFFECTS__ +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; +} +function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; +const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + +// @__NO_SIDE_EFFECTS__ +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +// @__NO_SIDE_EFFECTS__ +function ref(value) { + return createRef(value, false); +} +// @__NO_SIDE_EFFECTS__ +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } +} +function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +// @__NO_SIDE_EFFECTS__ +function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +// @__NO_SIDE_EFFECTS__ +function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } +} +// @__NO_SIDE_EFFECTS__ +function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; + +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } +} +function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +const stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +let isWarning = false; +function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; +} + +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Map(); +{ + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} + +let devtools$1; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} + +function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } +} +function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); +} + +const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); +} +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = NOOP; + watchStopHandle.resume = NOOP; + watchStopHandle.pause = NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; +} + +const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); +const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; +} +function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); +} + +const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } +} +function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; +} +function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); +} +function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; +} +function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; +} +function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; +} +function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +{ + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; +} +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } +}); +function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; +} +function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } +} +function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); +} + +const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` +); +function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; +} +function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; +} +function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } +} +function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } +} +function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; +} +function defineModel() { + { + warnRuntimeUsage("defineModel"); + } +} +function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; +} +function useSlots() { + return getContext("useSlots").slots; +} +function useAttrs() { + return getContext("useAttrs").attrs; +} +function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; +} +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } +} +function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} + +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; +} +function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; +} +function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } +} +function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } +} +const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" +); +function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} + +const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; +const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +let supported; +let perf; +function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } +} +function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; +} + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} +function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +let hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); +const Text = /* @__PURE__ */ Symbol.for("v-txt"); +const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); +const Static = /* @__PURE__ */ Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; +} +let vnodeArgsTransformer; +function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; +} +const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); +}; +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = createVNodeWithArgsTransform ; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); +function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } +} +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); +} +let compile$1; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile$1 = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile$1; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile$1 && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile$1(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile$1 && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } +} ; +function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); +} +function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +const classifyRE = /(?:^|[-_])\w/g; +const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); +function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; +} +function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; +}; + +function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } +} + +function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.28"; +const warn = warn$1 ; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = devtools$1 ; +const setDevtoolsHook = setDevtoolsHook$1 ; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION = "transition"; +const ANIMATION = "animation"; +const vtcKey = /* @__PURE__ */ Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); +const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); +const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); +function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); +} +function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } +} +function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } +} + +const displayRE = /(?:^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const semicolonRE = /[^\\];\s*$/; +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = /* @__PURE__ */ Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; +} +function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}); +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } +} +function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; +} +function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssModule must be called inside setup()`); + return EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + warn(`Current instance does not have CSS modules injected.`); + return EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + warn(`Current instance does not have CSS module named "${name}".`); + return EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); +const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = /* @__PURE__ */ Symbol("_assign"); +function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; +} +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (isArray(value)) { + if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); +}; + +const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = ((...args) => { + ensureRenderer().render(...args); +}); +const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); +}); +const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}); +const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}); +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); +} +function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } +} +function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +function initDev() { + { + { + console.info( + `You are running a development build of Vue. +Make sure to use the production build (*.prod.js) when deploying for production.` + ); + } + initCustomFormatter(); + } +} + +{ + initDev(); +} +const compile = () => { + { + warn( + `Runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` ) + ); + } +}; + +export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, compile, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, nodeOps, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId }; diff --git a/node_modules/vue/dist/vue.runtime.esm-browser.prod.js b/node_modules/vue/dist/vue.runtime.esm-browser.prod.js new file mode 100644 index 0000000..8670e70 --- /dev/null +++ b/node_modules/vue/dist/vue.runtime.esm-browser.prod.js @@ -0,0 +1,7 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var e,t;let n,l,r,i,s,o,a,u,c,f,p,d;function h(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let g={},_=[],m=()=>{},y=()=>!1,b=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),S=e=>e.startsWith("onUpdate:"),C=Object.assign,x=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,E=(e,t)=>w.call(e,t),k=Array.isArray,T=e=>"function"==typeof e,A=e=>"string"==typeof e,R=e=>"symbol"==typeof e,O=e=>null!==e&&"object"==typeof e,N=e=>(O(e)||T(e))&&T(e.then)&&T(e.catch),P=Object.prototype.toString,M=e=>A(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,I=h(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),L=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},F=/-\w/g,j=L(e=>e.replace(F,e=>e.slice(1).toUpperCase())),D=/\B([A-Z])/g,V=L(e=>e.replace(D,"-$1").toLowerCase()),U=L(e=>e.charAt(0).toUpperCase()+e.slice(1)),B=L(e=>e?`on${U(e)}`:""),$=(e,t)=>!Object.is(e,t),H=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},W=(e,t,n,l=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:l,value:n})},K=e=>{let t=parseFloat(e);return isNaN(t)?e:t},z=e=>{let t=A(e)?Number(e):NaN;return isNaN(t)?e:t},q=()=>n||(n="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),G=h("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function J(e){if(k(e)){let t={};for(let n=0;n<e.length;n++){let l=e[n],r=A(l)?function(e){let t={};return e.replace(Y,"").split(X).forEach(e=>{if(e){let n=e.split(Z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}(l):J(l);if(r)for(let e in r)t[e]=r[e]}return t}if(A(e)||O(e))return e}let X=/;(?![^(]*\))/g,Z=/:([^]+)/,Y=/\/\*[^]*?\*\//g;function Q(e){let t="";if(A(e))t=e;else if(k(e))for(let n=0;n<e.length;n++){let l=Q(e[n]);l&&(t+=l+" ")}else if(O(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}function ee(e){if(!e)return null;let{class:t,style:n}=e;return t&&!A(t)&&(e.class=Q(t)),n&&(e.style=J(n)),e}let et=h("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function en(e,t){let n,l;if(e===t)return!0;let r="[object Date]"===(n=e,P.call(n)),i="[object Date]"===(l=t,P.call(l));if(r||i)return!!r&&!!i&&e.getTime()===t.getTime();if(r=R(e),i=R(t),r||i)return e===t;if(r=k(e),i=k(t),r||i)return!!r&&!!i&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=en(e[l],t[l]);return n}(e,t);if(r=O(e),i=O(t),r||i){if(!r||!i||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let l=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(l&&!r||!l&&r||!en(e[n],t[n]))return!1}}return String(e)===String(t)}function el(e,t){return e.findIndex(e=>en(e,t))}let er=e=>!!(e&&!0===e.__v_isRef),ei=e=>A(e)?e:null==e?"":k(e)||O(e)&&(e.toString===P||!T(e.toString))?er(e)?ei(e.value):JSON.stringify(e,es,2):String(e),es=(e,t)=>{let n;if(er(t))return es(e,t.value);if("[object Map]"===(n=t,P.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],l)=>(e[eo(t,l)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,P.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eo(e))};else{if(R(t))return eo(t);let e;if(O(t)&&!k(t)&&"[object Object]"!==(e=t,P.call(e)))return String(t)}}return t},eo=(e,t="")=>{var n;return R(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ea{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=l;try{return l=this,e()}finally{l=t}}}on(){1==++this._on&&(this.prevScope=l,l=this)}off(){this._on>0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}function eu(e){return new ea(e)}function ec(){return l}function ef(e,t=!1){l&&l.cleanups.push(e)}let ep=new WeakSet;class ed{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,l&&l.active&&l.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,ep.has(this)&&(ep.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||eg(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,eA(this),e_(this);let e=r,t=ew;r=this,ew=!0;try{return this.fn()}finally{em(this),r=e,ew=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)eS(e);this.deps=this.depsTail=void 0,eA(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?ep.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ey(this)&&this.run()}get dirty(){return ey(this)}}let eh=0;function eg(e,t=!1){if(e.flags|=8,t){e.next=s,s=e;return}e.next=i,i=e}function ev(){let e;if(!(--eh>0)){if(s){let e=s;for(s=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;i;){let t=i;for(i=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function e_(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function em(e){let t,n=e.depsTail,l=n;for(;l;){let e=l.prevDep;-1===l.version?(l===n&&(n=e),eS(l),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(l)):t=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=e}e.deps=t,e.depsTail=n}function ey(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eb(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eb(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eR)||(e.globalVersion=eR,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ey(e))))return;e.flags|=2;let t=e.dep,n=r,l=ew;r=e,ew=!0;try{e_(e);let n=e.fn(e._value);(0===t.version||$(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{r=n,ew=l,em(e),e.flags&=-3}}function eS(e,t=!1){let{dep:n,prevSub:l,nextSub:r}=e;if(l&&(l.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=l,e.nextSub=void 0),n.subs===e&&(n.subs=l,!l&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eS(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function eC(e,t){e.effect instanceof ed&&(e=e.effect.fn);let n=new ed(e);t&&C(n,t);try{n.run()}catch(e){throw n.stop(),e}let l=n.run.bind(n);return l.effect=n,l}function ex(e){e.effect.stop()}let ew=!0,eE=[];function ek(){eE.push(ew),ew=!1}function eT(){let e=eE.pop();ew=void 0===e||e}function eA(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=r;r=void 0;try{t()}finally{r=e}}}let eR=0;class eO{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eN{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!r||!ew||r===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==r)t=this.activeLink=new eO(r,this),r.deps?(t.prevDep=r.depsTail,r.depsTail.nextDep=t,r.depsTail=t):r.deps=r.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let l=t.dep.subs;l!==t&&(t.prevSub=l,l&&(l.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=r.depsTail,t.nextDep=void 0,r.depsTail.nextDep=t,r.depsTail=t,r.deps===t&&(r.deps=e)}return t}trigger(e){this.version++,eR++,this.notify(e)}notify(e){eh++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{ev()}}}let eP=new WeakMap,eM=Symbol(""),eI=Symbol(""),eL=Symbol("");function eF(e,t,n){if(ew&&r){let t=eP.get(e);t||eP.set(e,t=new Map);let l=t.get(n);l||(t.set(n,l=new eN),l.map=t,l.key=n),l.track()}}function ej(e,t,n,l,r,i){let s=eP.get(e);if(!s)return void eR++;let o=e=>{e&&e.trigger()};if(eh++,"clear"===t)s.forEach(o);else{let r=k(e),i=r&&M(n);if(r&&"length"===n){let e=Number(l);s.forEach((t,n)=>{("length"===n||n===eL||!R(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),i&&o(s.get(eL)),t){case"add":if(r)i&&o(s.get("length"));else{let t;o(s.get(eM));"[object Map]"===(t=e,P.call(t))&&o(s.get(eI))}break;case"delete":if(!r){let t;o(s.get(eM));"[object Map]"===(t=e,P.call(t))&&o(s.get(eI))}break;case"set":let a;"[object Map]"===(a=e,P.call(a))&&o(s.get(eM))}}ev()}function eD(e){let t=th(e);return t===e?t:(eF(t,"iterate",eL),tp(e)?t:t.map(tv))}function eV(e){return eF(e=th(e),"iterate",eL),e}function eU(e,t){return tf(e)?tc(e)?t_(tv(t)):t_(t):tv(t)}let eB={__proto__:null,[Symbol.iterator](){return e$(this,Symbol.iterator,e=>eU(this,e))},concat(...e){return eD(this).concat(...e.map(e=>k(e)?eD(e):e))},entries(){return e$(this,"entries",e=>(e[1]=eU(this,e[1]),e))},every(e,t){return eW(this,"every",e,t,void 0,arguments)},filter(e,t){return eW(this,"filter",e,t,e=>e.map(e=>eU(this,e)),arguments)},find(e,t){return eW(this,"find",e,t,e=>eU(this,e),arguments)},findIndex(e,t){return eW(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eW(this,"findLast",e,t,e=>eU(this,e),arguments)},findLastIndex(e,t){return eW(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eW(this,"forEach",e,t,void 0,arguments)},includes(...e){return ez(this,"includes",e)},indexOf(...e){return ez(this,"indexOf",e)},join(e){return eD(this).join(e)},lastIndexOf(...e){return ez(this,"lastIndexOf",e)},map(e,t){return eW(this,"map",e,t,void 0,arguments)},pop(){return eq(this,"pop")},push(...e){return eq(this,"push",e)},reduce(e,...t){return eK(this,"reduce",e,t)},reduceRight(e,...t){return eK(this,"reduceRight",e,t)},shift(){return eq(this,"shift")},some(e,t){return eW(this,"some",e,t,void 0,arguments)},splice(...e){return eq(this,"splice",e)},toReversed(){return eD(this).toReversed()},toSorted(e){return eD(this).toSorted(e)},toSpliced(...e){return eD(this).toSpliced(...e)},unshift(...e){return eq(this,"unshift",e)},values(){return e$(this,"values",e=>eU(this,e))}};function e$(e,t,n){let l=eV(e),r=l[t]();return l===e||tp(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=n(e.value)),e}),r}let eH=Array.prototype;function eW(e,t,n,l,r,i){let s=eV(e),o=s!==e&&!tp(e),a=s[t];if(a!==eH[t]){let t=a.apply(e,i);return o?tv(t):t}let u=n;s!==e&&(o?u=function(t,l){return n.call(this,eU(e,t),l,e)}:n.length>2&&(u=function(t,l){return n.call(this,t,l,e)}));let c=a.call(s,u,l);return o&&r?r(c):c}function eK(e,t,n,l){let r=eV(e),i=n;return r!==e&&(tp(e)?n.length>3&&(i=function(t,l,r){return n.call(this,t,l,r,e)}):i=function(t,l,r){return n.call(this,t,eU(e,l),r,e)}),r[t](i,...l)}function ez(e,t,n){let l=th(e);eF(l,"iterate",eL);let r=l[t](...n);return(-1===r||!1===r)&&td(n[0])?(n[0]=th(n[0]),l[t](...n)):r}function eq(e,t,n=[]){ek(),eh++;let l=th(e)[t].apply(e,n);return ev(),eT(),l}let eG=h("__proto__,__v_isRef,__isVue"),eJ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(R));function eX(e){R(e)||(e=String(e));let t=th(this);return eF(t,"has",e),t.hasOwnProperty(e)}class eZ{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let l=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!l;if("__v_isReadonly"===t)return l;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(l?r?tr:tl:r?tn:tt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let i=k(e);if(!l){let e;if(i&&(e=eB[t]))return e;if("hasOwnProperty"===t)return eX}let s=Reflect.get(e,t,tm(e)?e:n);if((R(t)?eJ.has(t):eG(t))||(l||eF(e,"get",t),r))return s;if(tm(s)){let e=i&&M(t)?s:s.value;return l&&O(e)?to(e):e}return O(s)?l?to(s):ti(s):s}}class eY extends eZ{constructor(e=!1){super(!1,e)}set(e,t,n,l){let r=e[t],i=k(e)&&M(t);if(!this._isShallow){let e=tf(r);if(tp(n)||tf(n)||(r=th(r),n=th(n)),!i&&tm(r)&&!tm(n))if(e)return!0;else return r.value=n,!0}let s=i?Number(t)<e.length:E(e,t),o=Reflect.set(e,t,n,tm(e)?e:l);return e===th(l)&&(s?$(n,r)&&ej(e,"set",t,n):ej(e,"add",t,n)),o}deleteProperty(e,t){let n=E(e,t);e[t];let l=Reflect.deleteProperty(e,t);return l&&n&&ej(e,"delete",t,void 0),l}has(e,t){let n=Reflect.has(e,t);return R(t)&&eJ.has(t)||eF(e,"has",t),n}ownKeys(e){return eF(e,"iterate",k(e)?"length":eM),Reflect.ownKeys(e)}}class eQ extends eZ{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let e0=new eY,e1=new eQ,e2=new eY(!0),e6=new eQ(!0),e8=e=>e;function e4(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e3(e,t){let n,l=(C(n={get(n){let l=this.__v_raw,r=th(l),i=th(n);e||($(n,i)&&eF(r,"get",n),eF(r,"get",i));let{has:s}=Reflect.getPrototypeOf(r),o=t?e8:e?t_:tv;return s.call(r,n)?o(l.get(n)):s.call(r,i)?o(l.get(i)):void(l!==r&&l.get(n))},get size(){let t=this.__v_raw;return e||eF(th(t),"iterate",eM),t.size},has(t){let n=this.__v_raw,l=th(n),r=th(t);return e||($(t,r)&&eF(l,"has",t),eF(l,"has",r)),t===r?n.has(t):n.has(t)||n.has(r)},forEach(n,l){let r=this,i=r.__v_raw,s=th(i),o=t?e8:e?t_:tv;return e||eF(s,"iterate",eM),i.forEach((e,t)=>n.call(l,o(e),o(t),r))}},e?{add:e4("add"),set:e4("set"),delete:e4("delete"),clear:e4("clear")}:{add(e){t||tp(e)||tf(e)||(e=th(e));let n=th(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),ej(n,"add",e,e)),this},set(e,n){t||tp(n)||tf(n)||(n=th(n));let l=th(this),{has:r,get:i}=Reflect.getPrototypeOf(l),s=r.call(l,e);s||(e=th(e),s=r.call(l,e));let o=i.call(l,e);return l.set(e,n),s?$(n,o)&&ej(l,"set",e,n):ej(l,"add",e,n),this},delete(e){let t=th(this),{has:n,get:l}=Reflect.getPrototypeOf(t),r=n.call(t,e);r||(e=th(e),r=n.call(t,e)),l&&l.call(t,e);let i=t.delete(e);return r&&ej(t,"delete",e,void 0),i},clear(){let e=th(this),t=0!==e.size,n=e.clear();return t&&ej(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=function(...n){let r,i=this.__v_raw,s=th(i),o="[object Map]"===(r=s,P.call(r)),a="entries"===l||l===Symbol.iterator&&o,u=i[l](...n),c=t?e8:e?t_:tv;return e||eF(s,"iterate","keys"===l&&o?eI:eM),C(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:a?[c(e[0]),c(e[1])]:c(e),done:t}}})}}),n);return(t,n,r)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(E(l,n)&&n in t?l:t,n,r)}let e5={get:e3(!1,!1)},e9={get:e3(!1,!0)},e7={get:e3(!0,!1)},te={get:e3(!0,!0)},tt=new WeakMap,tn=new WeakMap,tl=new WeakMap,tr=new WeakMap;function ti(e){return tf(e)?e:tu(e,!1,e0,e5,tt)}function ts(e){return tu(e,!1,e2,e9,tn)}function to(e){return tu(e,!0,e1,e7,tl)}function ta(e){return tu(e,!0,e6,te,tr)}function tu(e,t,n,l,r){var i;let s;if(!O(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(i=e).__v_skip||!Object.isExtensible(i)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=i,P.call(s)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?l:n);return r.set(e,u),u}function tc(e){return tf(e)?tc(e.__v_raw):!!(e&&e.__v_isReactive)}function tf(e){return!!(e&&e.__v_isReadonly)}function tp(e){return!!(e&&e.__v_isShallow)}function td(e){return!!e&&!!e.__v_raw}function th(e){let t=e&&e.__v_raw;return t?th(t):e}function tg(e){return!E(e,"__v_skip")&&Object.isExtensible(e)&&W(e,"__v_skip",!0),e}let tv=e=>O(e)?ti(e):e,t_=e=>O(e)?to(e):e;function tm(e){return!!e&&!0===e.__v_isRef}function ty(e){return tS(e,!1)}function tb(e){return tS(e,!0)}function tS(e,t){return tm(e)?e:new tC(e,t)}class tC{constructor(e,t){this.dep=new eN,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:th(e),this._value=t?e:tv(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tp(e)||tf(e);$(e=n?e:th(e),t)&&(this._rawValue=e,this._value=n?e:tv(e),this.dep.trigger())}}function tx(e){e.dep&&e.dep.trigger()}function tw(e){return tm(e)?e.value:e}function tE(e){return T(e)?e():tw(e)}let tk={get:(e,t,n)=>"__v_raw"===t?e:tw(Reflect.get(e,t,n)),set:(e,t,n,l)=>{let r=e[t];return tm(r)&&!tm(n)?(r.value=n,!0):Reflect.set(e,t,n,l)}};function tT(e){return tc(e)?e:new Proxy(e,tk)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eN,{get:n,set:l}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=l}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tR(e){return new tA(e)}function tO(e){let t=k(e)?Array(e.length):{};for(let n in e)t[n]=new tN(e,n,void 0);return t}class tN{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=th(e);let l=!0,r=e;if(!k(e)||!M(String(t)))do l=!td(r)||tp(r);while(l&&(r=r.__v_raw));this._shallow=l}get value(){let e=this._object[this._key];return this._shallow&&(e=tw(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&tm(this._raw[this._key])){let t=this._object[this._key];if(tm(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eP.get(e))&&n.get(t)}}class tP{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tM(e,t,n){if(tm(e))return e;if(T(e))return new tP(e);if(!O(e)||!(arguments.length>1))return ty(e);return new tN(e,t,n)}class tI{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eN(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eR-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&r!==this)return eg(this,!0),!0}get value(){let e=this.dep.track();return eb(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tL={GET:"get",HAS:"has",ITERATE:"iterate"},tF={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},tj={},tD=new WeakMap;function tV(){return p}function tU(e,t=!1,n=p){if(n){let t=tD.get(n);t||tD.set(n,t=[]),t.push(e)}}function tB(e,t=1/0,n){if(t<=0||!O(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tm(e))tB(e.value,t,n);else if(k(e))for(let l=0;l<e.length;l++)tB(e[l],t,n);else{let l,r;if("[object Set]"===(l=e,P.call(l))||"[object Map]"===(r=e,P.call(r)))e.forEach(e=>{tB(e,t,n)});else{let l;if("[object Object]"===(l=e,P.call(l))){for(let l in e)tB(e[l],t,n);for(let l of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,l)&&tB(e[l],t,n)}}}return e}function t$(e,t){}let tH={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"};function tW(e,t,n,l){try{return l?e(...l):e()}catch(e){tz(e,t,n)}}function tK(e,t,n,l){if(T(e)){let r=tW(e,t,n,l);return r&&N(r)&&r.catch(e=>{tz(e,t,n)}),r}if(k(e)){let r=[];for(let i=0;i<e.length;i++)r.push(tK(e[i],t,n,l));return r}}function tz(e,t,n,l=!0){let r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||g;if(t){let l=t.parent,r=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){let t=l.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return}l=l.parent}if(i){ek(),tW(i,null,10,[e,r,s]),eT();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,l,s)}let tq=[],tG=-1,tJ=[],tX=null,tZ=0,tY=Promise.resolve(),tQ=null;function t0(e){let t=tQ||tY;return e?t.then(this?e.bind(this):e):t}function t1(e){if(!(1&e.flags)){let t=t3(e),n=tq[tq.length-1];!n||!(2&e.flags)&&t>=t3(n)?tq.push(e):tq.splice(function(e){let t=tG+1,n=tq.length;for(;t<n;){let l=t+n>>>1,r=tq[l],i=t3(r);i<e||i===e&&2&r.flags?t=l+1:n=l}return t}(t),0,e),e.flags|=1,t2()}}function t2(){tQ||(tQ=tY.then(function e(t){try{for(tG=0;tG<tq.length;tG++){let e=tq[tG];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),tW(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tG<tq.length;tG++){let e=tq[tG];e&&(e.flags&=-2)}tG=-1,tq.length=0,t4(),tQ=null,(tq.length||tJ.length)&&e()}}))}function t6(e){k(e)?tJ.push(...e):tX&&-1===e.id?tX.splice(tZ+1,0,e):1&e.flags||(tJ.push(e),e.flags|=1),t2()}function t8(e,t,n=tG+1){for(;n<tq.length;n++){let t=tq[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tq.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function t4(e){if(tJ.length){let e=[...new Set(tJ)].sort((e,t)=>t3(e)-t3(t));if(tJ.length=0,tX)return void tX.push(...e);for(tZ=0,tX=e;tZ<tX.length;tZ++){let e=tX[tZ];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}tX=null,tZ=0}}let t3=e=>null==e.id?2&e.flags?-1:1/0:e.id,t5=null,t9=null;function t7(e){let t=t5;return t5=e,t9=e&&e.type.__scopeId||null,t}function ne(e){t9=e}function nt(){t9=null}let nn=e=>nl;function nl(e,t=t5,n){if(!t||e._n)return e;let l=(...n)=>{let r;l._d&&r0(-1);let i=t7(t);try{r=e(...n)}finally{t7(i),l._d&&r0(1)}return r};return l._n=!0,l._c=!0,l._d=!0,l}function nr(e,t){if(null===t5)return e;let n=iR(t5),l=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[r,i,s,o=g]=t[e];r&&(T(r)&&(r={mounted:r,updated:r}),r.deep&&tB(i),l.push({dir:r,instance:n,value:i,oldValue:void 0,arg:s,modifiers:o}))}return e}function ni(e,t,n,l){let r=e.dirs,i=t&&t.dirs;for(let s=0;s<r.length;s++){let o=r[s];i&&(o.oldValue=i[s].value);let a=o.dir[l];a&&(ek(),tK(a,n,8,[e.el,o,e,t]),eT())}}function ns(e,t){if(iv){let n=iv.provides,l=iv.parent&&iv.parent.provides;l===n&&(n=iv.provides=Object.create(l)),n[e]=t}}function no(e,t,n=!1){let l=i_();if(l||rr){let r=rr?rr._context.provides:l?null==l.parent||l.ce?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&T(t)?t.call(l&&l.proxy):t}}function na(){return!!(i_()||rr)}let nu=Symbol.for("v-scx"),nc=()=>no(nu);function nf(e,t){return ng(e,null,t)}function np(e,t){return ng(e,null,{flush:"post"})}function nd(e,t){return ng(e,null,{flush:"sync"})}function nh(e,t,n){return ng(e,t,n)}function ng(e,t,n=g){let l,{immediate:r,flush:i}=n,s=C({},n),o=t&&r||!t&&"post"!==i;if(iS){if("sync"===i){let e=nc();l=e.__watcherHandles||(e.__watcherHandles=[])}else if(!o){let e=()=>{};return e.stop=m,e.resume=m,e.pause=m,e}}let a=iv;s.call=(e,t,n)=>tK(e,a,t,n);let u=!1;"post"===i?s.scheduler=e=>{rA(e,a&&a.suspense)}:"sync"!==i&&(u=!0,s.scheduler=(e,t)=>{t?e():t1(e)}),s.augmentJob=e=>{t&&(e.flags|=4),u&&(e.flags|=2,a&&(e.id=a.uid,e.i=a))};let c=function(e,t,n=g){let l,r,i,s,{immediate:o,deep:a,once:u,scheduler:c,augmentJob:f,call:d}=n,h=e=>a?e:tp(e)||!1===a||0===a?tB(e,1):tB(e),_=!1,y=!1;if(tm(e)?(r=()=>e.value,_=tp(e)):tc(e)?(r=()=>h(e),_=!0):k(e)?(y=!0,_=e.some(e=>tc(e)||tp(e)),r=()=>e.map(e=>tm(e)?e.value:tc(e)?h(e):T(e)?d?d(e,2):e():void 0)):r=T(e)?t?d?()=>d(e,2):e:()=>{if(i){ek();try{i()}finally{eT()}}let t=p;p=l;try{return d?d(e,3,[s]):e(s)}finally{p=t}}:m,t&&a){let e=r,t=!0===a?1/0:a;r=()=>tB(e(),t)}let b=ec(),S=()=>{l.stop(),b&&b.active&&x(b.effects,l)};if(u&&t){let e=t;t=(...t)=>{e(...t),S()}}let C=y?Array(e.length).fill(tj):tj,w=e=>{if(1&l.flags&&(l.dirty||e))if(t){let e=l.run();if(a||_||(y?e.some((e,t)=>$(e,C[t])):$(e,C))){i&&i();let n=p;p=l;try{let n=[e,C===tj?void 0:y&&C[0]===tj?[]:C,s];C=e,d?d(t,3,n):t(...n)}finally{p=n}}}else l.run()};return f&&f(w),(l=new ed(r)).scheduler=c?()=>c(w,!1):w,s=e=>tU(e,!1,l),i=l.onStop=()=>{let e=tD.get(l);if(e){if(d)d(e,4);else for(let t of e)t();tD.delete(l)}},t?o?w(!0):C=l.run():c?c(w.bind(null,!0),!0):l.run(),S.pause=l.pause.bind(l),S.resume=l.resume.bind(l),S.stop=S,S}(e,t,s);return iS&&(l?l.push(c):o&&c()),c}function nv(e,t,n){let l,r=this.proxy,i=A(e)?e.includes(".")?n_(r,e):()=>r[e]:e.bind(r,r);T(t)?l=t:(l=t.handler,n=t);let s=im(this),o=ng(i,l.bind(r),n);return s(),o}function n_(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let nm=Symbol("_vte"),ny=e=>e&&(e.disabled||""===e.disabled),nb=e=>e&&(e.defer||""===e.defer),nS=e=>"u">typeof SVGElement&&e instanceof SVGElement,nC=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,nx=(e,t)=>{let n=e&&e.to;return A(n)?t?t(n):null:n},nw={name:"Teleport",__isTeleport:!0,process(e,t,n,l,r,i,s,o,a,u){let{mc:c,pc:f,pbc:p,o:{insert:d,querySelector:h,createText:g}}=u,_=ny(t.props),{shapeFlag:m,children:y,dynamicChildren:b}=t;if(null==e){let e=t.el=g(""),u=t.anchor=g("");d(e,n,l),d(u,n,l);let f=(e,t)=>{16&m&&c(y,e,t,r,i,s,o,a)},p=()=>{let e=t.target=nx(t.props,h),n=nA(e,t,g,d);e&&("svg"!==s&&nS(e)?s="svg":"mathml"!==s&&nC(e)&&(s="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(e),_||(f(e,n),nT(t,!1)))};_&&(f(n,u),nT(t,!0)),nb(t.props)?(t.el.__isMounted=!1,rA(()=>{p(),delete t.el.__isMounted},i)):p()}else{if(nb(t.props)&&!1===e.el.__isMounted)return void rA(()=>{nw.process(e,t,n,l,r,i,s,o,a,u)},i);t.el=e.el,t.targetStart=e.targetStart;let c=t.anchor=e.anchor,d=t.target=e.target,g=t.targetAnchor=e.targetAnchor,m=ny(e.props),y=m?n:d,S=m?c:g;if("svg"===s||nS(d)?s="svg":("mathml"===s||nC(d))&&(s="mathml"),b?(p(e.dynamicChildren,b,y,r,i,s,o),rL(e,t,!0)):a||f(e,t,y,S,r,i,s,o,!1),_)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nE(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=nx(t.props,h);e&&nE(t,e,null,u,0)}else m&&nE(t,d,g,u,1);nT(t,_)}},remove(e,t,n,{um:l,o:{remove:r}},i){let{shapeFlag:s,children:o,anchor:a,targetStart:u,targetAnchor:c,target:f,props:p}=e;if(f&&(r(u),r(c)),i&&r(a),16&s){let e=i||!ny(p);for(let r=0;r<o.length;r++){let i=o[r];l(i,t,n,e,!!i.dynamicChildren)}}},move:nE,hydrate:function(e,t,n,l,r,i,{o:{nextSibling:s,parentNode:o,querySelector:a,insert:u,createText:c}},f){function p(e,n){let l=n;for(;l;){if(l&&8===l.nodeType){if("teleport start anchor"===l.data)t.targetStart=l;else if("teleport anchor"===l.data){t.targetAnchor=l,e._lpa=t.targetAnchor&&s(t.targetAnchor);break}}l=s(l)}}function d(e,t){t.anchor=f(s(e),t,o(e),n,l,r,i)}let h=t.target=nx(t.props,a),g=ny(t.props);if(h){let a=h._lpa||h.firstChild;16&t.shapeFlag&&(g?(d(e,t),p(h,a),t.targetAnchor||nA(h,t,c,u,o(e)===h?e:null)):(t.anchor=s(e),p(h,a),t.targetAnchor||nA(h,t,c,u),f(a&&s(a),t,h,n,l,r,i))),nT(t,g)}else g&&16&t.shapeFlag&&(d(e,t),t.targetStart=e,t.targetAnchor=s(e));return t.anchor&&s(t.anchor)}};function nE(e,t,n,{o:{insert:l},m:r},i=2){0===i&&l(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:u,props:c}=e,f=2===i;if(f&&l(s,t,n),(!f||ny(c))&&16&a)for(let e=0;e<u.length;e++)r(u[e],t,n,2);f&&l(o,t,n)}let nk=nw;function nT(e,t){let n=e.ctx;if(n&&n.ut){let l,r;for(t?(l=e.el,r=e.anchor):(l=e.targetStart,r=e.targetAnchor);l&&l!==r;)1===l.nodeType&&l.setAttribute("data-v-owner",n.uid),l=l.nextSibling;n.ut()}}function nA(e,t,n,l,r=null){let i=t.targetStart=n(""),s=t.targetAnchor=n("");return i[nm]=s,e&&(l(i,e,r),l(s,e,r)),s}let nR=Symbol("_leaveCb"),nO=Symbol("_enterCb");function nN(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return lg(()=>{e.isMounted=!0}),lm(()=>{e.isUnmounting=!0}),e}let nP=[Function,Array],nM={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nP,onEnter:nP,onAfterEnter:nP,onEnterCancelled:nP,onBeforeLeave:nP,onLeave:nP,onAfterLeave:nP,onLeaveCancelled:nP,onBeforeAppear:nP,onAppear:nP,onAfterAppear:nP,onAppearCancelled:nP},nI=e=>{let t=e.subTree;return t.component?nI(t.component):t};function nL(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==rq){t=n;break}}return t}let nF={name:"BaseTransition",props:nM,setup(e,{slots:t}){let n=i_(),l=nN();return()=>{let r=t.default&&n$(t.default(),!0);if(!r||!r.length)return;let i=nL(r),s=th(e),{mode:o}=s;if(l.isLeaving)return nV(i);let a=nU(i);if(!a)return nV(i);let u=nD(a,s,l,n,e=>u=e);a.type!==rq&&nB(a,u);let c=n.subTree&&nU(n.subTree);if(c&&c.type!==rq&&!r4(c,a)&&nI(n).type!==rq){let e=nD(c,s,l,n);if(nB(c,e),"out-in"===o&&a.type!==rq)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},nV(i);"in-out"===o&&a.type!==rq?e.delayLeave=(e,t,n)=>{nj(l,c)[String(c.key)]=c,e[nR]=()=>{t(),e[nR]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function nj(e,t){let{leavingVNodes:n}=e,l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function nD(e,t,n,l,r){let{appear:i,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:m,onAfterAppear:y,onAppearCancelled:b}=t,S=String(e.key),C=nj(n,e),x=(e,t)=>{e&&tK(e,l,9,t)},w=(e,t)=>{let n=t[1];x(e,t),k(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},E={mode:s,persisted:o,beforeEnter(t){let l=a;if(!n.isMounted)if(!i)return;else l=_||a;t[nR]&&t[nR](!0);let r=C[S];r&&r4(e,r)&&r.el[nR]&&r.el[nR](),x(l,[t])},enter(e){let t=u,l=c,r=f;if(!n.isMounted)if(!i)return;else t=m||u,l=y||c,r=b||f;let s=!1;e[nO]=t=>{s||(s=!0,t?x(r,[e]):x(l,[e]),E.delayedLeave&&E.delayedLeave(),e[nO]=void 0)};let o=e[nO].bind(null,!1);t?w(t,[e,o]):o()},leave(t,l){let r=String(e.key);if(t[nO]&&t[nO](!0),n.isUnmounting)return l();x(p,[t]);let i=!1;t[nR]=n=>{i||(i=!0,l(),n?x(g,[t]):x(h,[t]),t[nR]=void 0,C[r]===e&&delete C[r])};let s=t[nR].bind(null,!1);C[r]=e,d?w(d,[t,s]):s()},clone(e){let i=nD(e,t,n,l,r);return r&&r(i),i}};return E}function nV(e){if(lr(e))return(e=il(e)).children=null,e}function nU(e){if(!lr(e))return e.type.__isTeleport&&e.children?nL(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&T(n.default))return n.default()}}function nB(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nB(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function n$(e,t=!1,n){let l=[],r=0;for(let i=0;i<e.length;i++){let s=e[i],o=null==n?s.key:String(n)+String(null!=s.key?s.key:i);s.type===rK?(128&s.patchFlag&&r++,l=l.concat(n$(s.children,t,o))):(t||s.type!==rq)&&l.push(null!=o?il(s,{key:o}):s)}if(r>1)for(let e=0;e<l.length;e++)l[e].patchFlag=-2;return l}function nH(e,t){return T(e)?C({name:e.name},t,{setup:e}):e}function nW(){let e=i_();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""}function nK(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nz(e){let t=i_(),n=tb(null);return t&&Object.defineProperty(t.refs===g?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n}function nq(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let nG=new WeakMap;function nJ(e,t,n,l,r=!1){if(k(e))return void e.forEach((e,i)=>nJ(e,t&&(k(t)?t[i]:t),n,l,r));if(lt(l)&&!r){512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&nJ(e,t,n,l.component.subTree);return}let i=4&l.shapeFlag?iR(l.component):l.el,s=r?null:i,{i:o,r:a}=e,u=t&&t.r,c=o.refs===g?o.refs={}:o.refs,f=o.setupState,p=th(f),d=f===g?y:e=>!nq(c,e)&&E(p,e),h=(e,t)=>!(t&&nq(c,t));if(null!=u&&u!==a&&(nX(t),A(u)?(c[u]=null,d(u)&&(f[u]=null)):tm(u)&&(h(u,t.k)&&(u.value=null),t.k&&(c[t.k]=null))),T(a))tW(a,o,12,[s,c]);else{let t=A(a),l=tm(a);if(t||l){let o=()=>{if(e.f){let n=t?d(a)?f[a]:c[a]:h()||!e.k?a.value:c[e.k];if(r)k(n)&&x(n,i);else if(k(n))n.includes(i)||n.push(i);else if(t)c[a]=[i],d(a)&&(f[a]=c[a]);else{let t=[i];h(a,e.k)&&(a.value=t),e.k&&(c[e.k]=t)}}else t?(c[a]=s,d(a)&&(f[a]=s)):l&&(h(a,e.k)&&(a.value=s),e.k&&(c[e.k]=s))};if(s){let t=()=>{o(),nG.delete(e)};t.id=-1,nG.set(e,t),rA(t,n)}else nX(e),o()}}}function nX(e){let t=nG.get(e);t&&(t.flags|=8,nG.delete(e))}let nZ=!1,nY=()=>{nZ||(console.error("Hydration completed but contains mismatches."),nZ=!0)},nQ=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},n0=e=>8===e.nodeType;function n1(e){let{mt:t,p:n,o:{patchProp:l,createText:r,nextSibling:i,parentNode:s,remove:o,insert:a,createComment:u}}=e,c=(n,l,o,u,y,b=!1)=>{b=b||!!l.dynamicChildren;let S=n0(n)&&"["===n.data,C=()=>h(n,l,o,u,y,S),{type:x,ref:w,shapeFlag:E,patchFlag:k}=l,T=n.nodeType;l.el=n,-2===k&&(b=!1,l.dynamicChildren=null);let A=null;switch(x){case rz:3!==T?""===l.children?(a(l.el=r(""),s(n),n),A=n):A=C():(n.data!==l.children&&(nY(),n.data=l.children),A=i(n));break;case rq:m(n)?(A=i(n),_(l.el=n.content.firstChild,n,o)):A=8!==T||S?C():i(n);break;case rG:if(S&&(T=(n=i(n)).nodeType),1===T||3===T){A=n;let e=!l.children.length;for(let t=0;t<l.staticCount;t++)e&&(l.children+=1===A.nodeType?A.outerHTML:A.data),t===l.staticCount-1&&(l.anchor=A),A=i(A);return S?i(A):A}C();break;case rK:A=S?d(n,l,o,u,y,b):C();break;default:if(1&E)A=1===T&&l.type.toLowerCase()===n.tagName.toLowerCase()||m(n)?f(n,l,o,u,y,b):C();else if(6&E){l.slotScopeIds=y;let e=s(n);if(A=S?g(n):n0(n)&&"teleport start"===n.data?g(n,n.data,"teleport end"):i(n),t(l,e,null,o,u,nQ(e),b),lt(l)&&!l.type.__asyncResolved){let t;S?(t=ie(rK)).anchor=A?A.previousSibling:e.lastChild:t=3===n.nodeType?ir(""):ie("div"),t.el=n,l.component.subTree=t}}else 64&E?A=8!==T?C():l.type.hydrate(n,l,o,u,y,b,e,p):128&E&&(A=l.type.hydrate(n,l,o,u,nQ(s(n)),y,b,e,c))}return null!=w&&nJ(w,null,u,l),A},f=(e,t,n,r,i,s)=>{s=s||!!t.dynamicChildren;let{type:a,props:u,patchFlag:c,shapeFlag:f,dirs:d,transition:h}=t,g="input"===a||"option"===a;if(g||-1!==c){let a;d&&ni(t,null,n,"created");let y=!1;if(m(e)){y=rI(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let l=e.content.firstChild;if(y){let e=l.getAttribute("class");e&&(l.$cls=e),h.beforeEnter(l)}_(l,e,n),t.el=e=l}if(16&f&&!(u&&(u.innerHTML||u.textContent))){let l=p(e.firstChild,t,e,n,r,i,s);for(;l;){n8(e,1)||nY();let t=l;l=l.nextSibling,o(t)}}else if(8&f){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:l}=e;l!==n&&l!==n.replace(/\r\n|\r/g,` +`)&&(n8(e,0)||nY(),e.textContent=t.children)}if(u){if(g||!s||48&c){let t=e.tagName.includes("-");for(let r in u)(g&&(r.endsWith("value")||"indeterminate"===r)||b(r)&&!I(r)||"."===r[0]||t&&!I(r))&&l(e,r,null,u[r],void 0,n)}else if(u.onClick)l(e,"onClick",null,u.onClick,void 0,n);else if(4&c&&tc(u.style))for(let e in u.style)u.style[e]}(a=u&&u.onVnodeBeforeMount)&&ip(a,n,t),d&&ni(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||d||y)&&rH(()=>{a&&ip(a,n,t),y&&h.enter(e),d&&ni(t,null,n,"mounted")},r)}return e.nextSibling},p=(e,t,l,s,o,u,f)=>{f=f||!!t.dynamicChildren;let p=t.children,d=p.length;for(let t=0;t<d;t++){let h=f?p[t]:p[t]=io(p[t]),g=h.type===rz;e?(g&&!f&&t+1<d&&io(p[t+1]).type===rz&&(a(r(e.data.slice(h.children.length)),l,i(e)),e.data=h.children),e=c(e,h,s,o,u,f)):g&&!h.children?a(h.el=r(""),l):(n8(l,1)||nY(),n(null,h,l,null,s,o,nQ(l),u))}return e},d=(e,t,n,l,r,o)=>{let{slotScopeIds:c}=t;c&&(r=r?r.concat(c):c);let f=s(e),d=p(i(e),t,f,n,l,r,o);return d&&n0(d)&&"]"===d.data?i(t.anchor=d):(nY(),a(t.anchor=u("]"),f,d),d)},h=(e,t,l,r,a,u)=>{if(n8(e.parentElement,1)||nY(),t.el=null,u){let t=g(e);for(;;){let n=i(e);if(n&&n!==t)o(n);else break}}let c=i(e),f=s(e);return o(e),n(null,t,f,c,l,r,nQ(f),a),l&&(l.vnode.el=t.el,rg(l,t.el)),c},g=(e,t="[",n="]")=>{let l=0;for(;e;)if((e=i(e))&&n0(e)&&(e.data===t&&l++,e.data===n))if(0===l)return i(e);else l--;return e},_=(e,t,n)=>{let l=t.parentNode;l&&l.replaceChild(e,t);let r=n;for(;r;)r.vnode.el===t&&(r.vnode.el=r.subTree.el=e),r=r.parent},m=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),t4(),t._vnode=e;return}c(t.firstChild,e,null,null,null),t4(),t._vnode=e},c]}let n2="data-allow-mismatch",n6={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function n8(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(n2);)e=e.parentElement;let n=e&&e.getAttribute(n2);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n6[t])}}let n4=q().requestIdleCallback||(e=>setTimeout(e,1)),n3=q().cancelIdleCallback||(e=>clearTimeout(e)),n5=(e=1e4)=>t=>{let n=n4(t,{timeout:e});return()=>n3(n)},n9=e=>(t,n)=>{let l=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){l.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:l,right:r}=e.getBoundingClientRect(),{innerHeight:i,innerWidth:s}=window;return(t>0&&t<i||l>0&&l<i)&&(n>0&&n<s||r>0&&r<s)}(e))return t(),l.disconnect(),!1;l.observe(e)}}),()=>l.disconnect()},n7=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},le=(e=[])=>(t,n)=>{A(e)&&(e=[e]);let l=!1,r=e=>{l||(l=!0,i(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},i=()=>{n(t=>{for(let n of e)t.removeEventListener(n,r)})};return n(t=>{for(let n of e)t.addEventListener(n,r,{once:!0})}),i},lt=e=>!!e.type.__asyncLoader;function ln(e){let t;T(e)&&(e={loader:e});let{loader:n,loadingComponent:l,errorComponent:r,delay:i=200,hydrate:s,timeout:o,suspensible:a=!0,onError:u}=e,c=null,f=0,p=()=>{let e;return c||(e=c=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),u)return new Promise((t,n)=>{u(e,()=>t((f++,c=null,p())),()=>n(e),f+1)});throw e}).then(n=>e!==c&&c?c:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nH({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,l){let r=!1;(n.bu||(n.bu=[])).push(()=>r=!0);let i=()=>{r||l()},o=s?()=>{let t=s(i,t=>(function(e,t){if(n0(e)&&"["===e.data){let n=1,l=e.nextSibling;for(;l;){if(1===l.nodeType){if(!1===t(l))break}else if(n0(l))if("]"===l.data){if(0==--n)break}else"["===l.data&&n++;l=l.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:i;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iv;if(nK(e),t)return()=>ll(t,e);let n=t=>{c=null,tz(t,e,13,!r)};if(a&&e.suspense||iS)return p().then(t=>()=>ll(t,e)).catch(e=>(n(e),()=>r?ie(r,{error:e}):null));let s=ty(!1),u=ty(),f=ty(!!i);return i&&setTimeout(()=>{f.value=!1},i),null!=o&&setTimeout(()=>{if(!s.value&&!u.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),u.value=e}},o),p().then(()=>{s.value=!0,e.parent&&lr(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),u.value=e}),()=>s.value&&t?ll(t,e):u.value&&r?ie(r,{error:u.value}):l&&!f.value?ll(l,e):void 0}})}function ll(e,t){let{ref:n,props:l,children:r,ce:i}=t.vnode,s=ie(e,l,r);return s.ref=n,s.ce=i,delete t.vnode.ce,s}let lr=e=>e.type.__isKeepAlive,li={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=i_(),l=n.ctx;if(!l.renderer)return()=>{let e=t.default&&t.default();return e&&1===e.length?e[0]:e};let r=new Map,i=new Set,s=null,o=n.suspense,{renderer:{p:a,m:u,um:c,o:{createElement:f}}}=l,p=f("div");function d(e){lc(e),c(e,n,o,!0)}function h(e){r.forEach((t,n)=>{let l=iO(lt(t)?t.type.__asyncResolved||{}:t.type);l&&!e(l)&&g(n)})}function g(e){let t=r.get(e);!t||s&&r4(t,s)?s&&lc(s):d(t),r.delete(e),i.delete(e)}l.activate=(e,t,n,l,r)=>{let i=e.component;u(e,t,n,0,o),a(i.vnode,e,t,n,i,o,l,e.slotScopeIds,r),rA(()=>{i.isDeactivated=!1,i.a&&H(i.a);let t=e.props&&e.props.onVnodeMounted;t&&ip(t,i.parent,e)},o)},l.deactivate=e=>{let t=e.component;rF(t.m),rF(t.a),u(e,p,null,1,o),rA(()=>{t.da&&H(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&ip(n,t.parent,e),t.isDeactivated=!0},o)},nh(()=>[e.include,e.exclude],([e,t])=>{e&&h(t=>ls(e,t)),t&&h(e=>!ls(t,e))},{flush:"post",deep:!0});let _=null,m=()=>{null!=_&&(rj(n.subTree.type)?rA(()=>{r.set(_,lf(n.subTree))},n.subTree.suspense):r.set(_,lf(n.subTree)))};return lg(m),l_(m),lm(()=>{r.forEach(e=>{let{subTree:t,suspense:l}=n,r=lf(t);if(e.type===r.type&&e.key===r.key){lc(r);let e=r.component.da;e&&rA(e,l);return}d(e)})}),()=>{if(_=null,!t.default)return s=null;let n=t.default(),l=n[0];if(n.length>1)return s=null,n;if(!r8(l)||!(4&l.shapeFlag)&&!(128&l.shapeFlag))return s=null,l;let o=lf(l);if(o.type===rq)return s=null,o;let a=o.type,u=iO(lt(o)?o.type.__asyncResolved||{}:a),{include:c,exclude:f,max:p}=e;if(c&&(!u||!ls(c,u))||f&&u&&ls(f,u))return o.shapeFlag&=-257,s=o,l;let d=null==o.key?a:o.key,h=r.get(d);return o.el&&(o=il(o),128&l.shapeFlag&&(l.ssContent=o)),_=d,h?(o.el=h.el,o.component=h.component,o.transition&&nB(o,o.transition),o.shapeFlag|=512,i.delete(d),i.add(d)):(i.add(d),p&&i.size>parseInt(p,10)&&g(i.values().next().value)),o.shapeFlag|=256,s=o,rj(l.type)?l:o}}};function ls(e,t){let n;if(k(e))return e.some(e=>ls(e,t));if(A(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,P.call(n))&&(e.lastIndex=0,e.test(t))}function lo(e,t){lu(e,"a",t)}function la(e,t){lu(e,"da",t)}function lu(e,t,n=iv){let l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(lp(t,l,n),n){let e=n.parent;for(;e&&e.parent;)lr(e.parent.vnode)&&function(e,t,n,l){let r=lp(t,e,l,!0);ly(()=>{x(l[t],r)},n)}(l,t,n,e),e=e.parent}}function lc(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function lf(e){return 128&e.shapeFlag?e.ssContent:e}function lp(e,t,n=iv,l=!1){if(n){let r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{ek();let r=im(n),i=tK(t,n,e,l);return r(),eT(),i});return l?r.unshift(i):r.push(i),i}}let ld=e=>(t,n=iv)=>{iS&&"sp"!==e||lp(e,(...e)=>t(...e),n)},lh=ld("bm"),lg=ld("m"),lv=ld("bu"),l_=ld("u"),lm=ld("bum"),ly=ld("um"),lb=ld("sp"),lS=ld("rtg"),lC=ld("rtc");function lx(e,t=iv){lp("ec",e,t)}let lw="components";function lE(e,t){return lR(lw,e,!0,t)||e}let lk=Symbol.for("v-ndc");function lT(e){return A(e)?lR(lw,e,!1)||e:e||lk}function lA(e){return lR("directives",e)}function lR(e,t,n=!0,l=!1){let r=t5||iv;if(r){let n=r.type;if(e===lw){let e=iO(n,!1);if(e&&(e===t||e===j(t)||e===U(j(t))))return n}let i=lO(r[e]||n[e],t)||lO(r.appContext[e],t);return!i&&l?n:i}}function lO(e,t){return e&&(e[t]||e[j(t)]||e[U(j(t))])}function lN(e,t,n,l){let r,i=n&&n[l],s=k(e);if(s||A(e)){let n=s&&tc(e),l=!1,o=!1;n&&(l=!tp(e),o=tf(e),e=eV(e)),r=Array(e.length);for(let n=0,s=e.length;n<s;n++)r[n]=t(l?o?t_(tv(e[n])):tv(e[n]):e[n],n,void 0,i&&i[n])}else if("number"==typeof e){r=Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,i&&i[n])}else if(O(e))if(e[Symbol.iterator])r=Array.from(e,(e,n)=>t(e,n,void 0,i&&i[n]));else{let n=Object.keys(e);r=Array(n.length);for(let l=0,s=n.length;l<s;l++){let s=n[l];r[l]=t(e[s],s,l,i&&i[l])}}else r=[];return n&&(n[l]=r),r}function lP(e,t){for(let n=0;n<t.length;n++){let l=t[n];if(k(l))for(let t=0;t<l.length;t++)e[l[t].name]=l[t].fn;else l&&(e[l.name]=l.key?(...e)=>{let t=l.fn(...e);return t&&(t.key=l.key),t}:l.fn)}return e}function lM(e,t,n={},l,r){if(t5.ce||t5.parent&<(t5.parent)&&t5.parent.ce){let e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),rZ(),r6(rK,null,[ie("slot",n,l&&l())],e?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),rZ();let s=i&&lI(i(n)),o=n.key||s&&s.key,a=r6(rK,{key:(o&&!R(o)?o:`_${t}`)+(!s&&l?"_fb":"")},s||(l?l():[]),s&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),i&&i._c&&(i._d=!0),a}function lI(e){return e.some(e=>!r8(e)||e.type!==rq&&(e.type!==rK||!!lI(e.children)))?e:null}function lL(e,t){let n={};for(let l in e)n[t&&/[A-Z]/.test(l)?`on:${l}`:B(l)]=e[l];return n}let lF=e=>e?ib(e)?iR(e):lF(e.parent):null,lj=C(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>lF(e.parent),$root:e=>lF(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>l8(e),$forceUpdate:e=>e.f||(e.f=()=>{t1(e.update)}),$nextTick:e=>e.n||(e.n=t0.bind(e.proxy)),$watch:e=>nv.bind(e)}),lD=(e,t)=>e!==g&&!e.__isScriptSetup&&E(e,t),lV={get({_:e},t){let n,l;if("__v_skip"===t)return!0;let{ctx:r,setupState:i,data:s,props:o,accessCache:a,type:u,appContext:c}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return i[t];case 2:return s[t];case 4:return r[t];case 3:return o[t]}else{if(lD(i,t))return a[t]=1,i[t];if(s!==g&&E(s,t))return a[t]=2,s[t];if(E(o,t))return a[t]=3,o[t];if(r!==g&&E(r,t))return a[t]=4,r[t];l2&&(a[t]=0)}}let f=lj[t];return f?("$attrs"===t&&eF(e.attrs,"get",""),f(e)):(n=u.__cssModules)&&(n=n[t])?n:r!==g&&E(r,t)?(a[t]=4,r[t]):E(l=c.config.globalProperties,t)?l[t]:void 0},set({_:e},t,n){let{data:l,setupState:r,ctx:i}=e;return lD(r,t)?(r[t]=n,!0):l!==g&&E(l,t)?(l[t]=n,!0):!E(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:i,type:s}},o){let a;return!!(n[o]||e!==g&&"$"!==o[0]&&E(e,o)||lD(t,o)||E(i,o)||E(l,o)||E(lj,o)||E(r.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:E(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},lU=C({},lV,{get(e,t){if(t!==Symbol.unscopables)return lV.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!G(t)});function lB(){return null}function l$(){return null}function lH(e){}function lW(e){}function lK(){return null}function lz(){}function lq(e,t){return null}function lG(){return lX().slots}function lJ(){return lX().attrs}function lX(e){let t=i_();return t.setupContext||(t.setupContext=iA(t))}function lZ(e){return k(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function lY(e,t){let n=lZ(e);for(let e in t){if(e.startsWith("__skip"))continue;let l=n[e];l?k(l)||T(l)?l=n[e]={type:l,default:t[e]}:l.default=t[e]:null===l&&(l=n[e]={default:t[e]}),l&&t[`__skip_${e}`]&&(l.skipFactory=!0)}return n}function lQ(e,t){return e&&t?k(e)&&k(t)?e.concat(t):C({},lZ(e),lZ(t)):e||t}function l0(e,t){let n={};for(let l in e)t.includes(l)||Object.defineProperty(n,l,{enumerable:!0,get:()=>e[l]});return n}function l1(e){let t=i_(),n=e();return iy(),N(n)&&(n=n.catch(e=>{throw im(t),e})),[n,()=>im(t)]}let l2=!0;function l6(e,t,n){tK(k(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function l8(e){let t,n=e.type,{mixins:l,extends:r}=n,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:i.length||l||r?(t={},i.length&&i.forEach(e=>l4(t,e,o,!0)),l4(t,n,o)):t=n,O(n)&&s.set(n,t),t}function l4(e,t,n,l=!1){let{mixins:r,extends:i}=t;for(let s in i&&l4(e,i,n,!0),r&&r.forEach(t=>l4(e,t,n,!0)),t)if(l&&"expose"===s);else{let l=l3[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}let l3={data:l5,props:rt,emits:rt,methods:re,computed:re,beforeCreate:l7,created:l7,beforeMount:l7,mounted:l7,beforeUpdate:l7,updated:l7,beforeDestroy:l7,beforeUnmount:l7,destroyed:l7,unmounted:l7,activated:l7,deactivated:l7,errorCaptured:l7,serverPrefetch:l7,components:re,directives:re,watch:function(e,t){if(!e)return t;if(!t)return e;let n=C(Object.create(null),e);for(let l in t)n[l]=l7(e[l],t[l]);return n},provide:l5,inject:function(e,t){return re(l9(e),l9(t))}};function l5(e,t){return t?e?function(){return C(T(e)?e.call(this,this):e,T(t)?t.call(this,this):t)}:t:e}function l9(e){if(k(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function l7(e,t){return e?[...new Set([].concat(e,t))]:t}function re(e,t){return e?C(Object.create(null),e,t):t}function rt(e,t){return e?k(e)&&k(t)?[...new Set([...e,...t])]:C(Object.create(null),lZ(e),lZ(null!=t?t:{})):t}function rn(){return{app:null,config:{isNativeTag:y,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let rl=0,rr=null;function ri(e,t,n=g){let l=i_(),r=j(t),i=V(t),s=rs(e,r),o=tR((s,o)=>{let a,u,c=g;return nd(()=>{let t=e[r];$(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!$(s,a)&&!(c!==g&&$(e,c)))return;let f=l.vnode.props;f&&(t in f||r in f||i in f)&&(`onUpdate:${t}`in f||`onUpdate:${r}`in f||`onUpdate:${i}`in f)||(a=e,o()),l.emit(`update:${t}`,s),$(e,s)&&$(e,c)&&!$(s,u)&&o(),c=e,u=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||g:o,done:!1}:{done:!0}}},o}let rs=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${V(t)}Modifiers`];function ro(e,t,...n){let l;if(e.isUnmounted)return;let r=e.vnode.props||g,i=n,s=t.startsWith("update:"),o=s&&rs(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>A(e)?e.trim():e)),o.number&&(i=n.map(K)));let a=r[l=B(t)]||r[l=B(j(t))];!a&&s&&(a=r[l=B(V(t))]),a&&tK(a,e,6,i);let u=r[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,tK(u,e,6,i)}}let ra=new WeakMap;function ru(e,t){return!!e&&!!b(t)&&(E(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||E(e,V(t))||E(e,t))}function rc(e){let t,n,{type:l,vnode:r,proxy:i,withProxy:s,propsOptions:[o],slots:a,attrs:u,emit:c,render:f,renderCache:p,props:d,data:h,setupState:g,ctx:_,inheritAttrs:m}=e,y=t7(e);try{if(4&r.shapeFlag){let e=s||i;t=io(f.call(e,e,p,d,g,h,_)),n=u}else t=io(l.length>1?l(d,{attrs:u,slots:a,emit:c}):l(d,null)),n=l.props?u:rf(u)}catch(n){rJ.length=0,tz(n,e,1),t=ie(rq)}let b=t;if(n&&!1!==m){let e=Object.keys(n),{shapeFlag:t}=b;e.length&&7&t&&(o&&e.some(S)&&(n=rp(n,o)),b=il(b,n,!1,!0))}return r.dirs&&((b=il(b,null,!1,!0)).dirs=b.dirs?b.dirs.concat(r.dirs):r.dirs),r.transition&&nB(b,r.transition),t=b,t7(y),t}let rf=e=>{let t;for(let n in e)("class"===n||"style"===n||b(n))&&((t||(t={}))[n]=e[n]);return t},rp=(e,t)=>{let n={};for(let l in e)S(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function rd(e,t,n){let l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let r=0;r<l.length;r++){let i=l[r];if(rh(t,e,i)&&!ru(n,i))return!0}return!1}function rh(e,t,n){let l=e[n],r=t[n];return"style"===n&&O(l)&&O(r)?!en(l,r):l!==r}function rg({vnode:e,parent:t},n){for(;t;){let l=t.subTree;if(l.suspense&&l.suspense.activeBranch===e&&(l.el=e.el),l===e)(e=t.vnode).el=n,t=t.parent;else break}}let rv={},r_=e=>Object.getPrototypeOf(e)===rv;function rm(e,t,n,l){let r,[i,s]=e.propsOptions,o=!1;if(t)for(let a in t){let u;if(I(a))continue;let c=t[a];i&&E(i,u=j(a))?s&&s.includes(u)?(r||(r={}))[u]=c:n[u]=c:ru(e.emitsOptions,a)||a in l&&c===l[a]||(l[a]=c,o=!0)}if(s){let t=th(n),l=r||g;for(let r=0;r<s.length;r++){let o=s[r];n[o]=ry(i,t,o,l[o],e,!E(l,o))}}return o}function ry(e,t,n,l,r,i){let s=e[n];if(null!=s){let e=E(s,"default");if(e&&void 0===l){let e=s.default;if(s.type!==Function&&!s.skipFactory&&T(e)){let{propsDefaults:i}=r;if(n in i)l=i[n];else{let s=im(r);l=i[n]=e.call(null,t),s()}}else l=e;r.ce&&r.ce._setProp(n,l)}s[0]&&(i&&!e?l=!1:s[1]&&(""===l||l===V(n))&&(l=!0))}return l}let rb=new WeakMap;function rS(e){return!("$"===e[0]||I(e))}let rC=e=>"_"===e||"_ctx"===e||"$stable"===e,rx=e=>k(e)?e.map(io):[io(e)],rw=(e,t,n)=>{if(t._n)return t;let l=nl((...e)=>rx(t(...e)),n);return l._c=!1,l},rE=(e,t,n)=>{let l=e._ctx;for(let n in e){if(rC(n))continue;let r=e[n];if(T(r))t[n]=rw(n,r,l);else if(null!=r){let e=rx(r);t[n]=()=>e}}},rk=(e,t)=>{let n=rx(t);e.slots.default=()=>n},rT=(e,t,n)=>{for(let l in t)(n||!rC(l))&&(e[l]=t[l])},rA=rH;function rR(e){return rN(e)}function rO(e){return rN(e,n1)}function rN(e,t){var n;let l,r;q().__VUE__=!0;let{insert:i,remove:s,patchProp:o,createElement:a,createText:u,createComment:c,setText:f,setElementText:p,parentNode:d,nextSibling:h,setScopeId:y=m,insertStaticContent:b}=e,S=(e,t,n,l=null,r=null,i=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!r4(e,t)&&(l=en(e),Z(e,r,i,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:u,ref:c,shapeFlag:f}=t;switch(u){case rz:x(e,t,n,l);break;case rq:w(e,t,n,l);break;case rG:null==e&&k(t,n,l,s);break;case rK:D(e,t,n,l,r,i,s,o,a);break;default:1&f?A(e,t,n,l,r,i,s,o,a):6&f?U(e,t,n,l,r,i,s,o,a):64&f?u.process(e,t,n,l,r,i,s,o,a,ei):128&f&&u.process(e,t,n,l,r,i,s,o,a,ei)}null!=c&&r?nJ(c,e&&e.ref,i,t||e,!t):null==c&&e&&null!=e.ref&&nJ(e.ref,null,i,e,!0)},x=(e,t,n,l)=>{if(null==e)i(t.el=u(t.children),n,l);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},w=(e,t,n,l)=>{null==e?i(t.el=c(t.children||""),n,l):t.el=e.el},k=(e,t,n,l)=>{[e.el,e.anchor]=b(e.children,t,n,l,e.el,e.anchor)},A=(e,t,n,l,r,i,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,l,r,i,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),M(e,t,r,i,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,l,r,s,u,c)=>{let f,d,{props:h,shapeFlag:g,transition:_,dirs:m}=e;if(f=e.el=a(e.type,s,h&&h.is,h),8&g?p(f,e.children):16&g&&P(e.children,f,null,l,r,rP(e,s),u,c),m&&ni(e,null,l,"created"),N(f,e,e.scopeId,u,l),h){for(let e in h)"value"===e||I(e)||o(f,e,null,h[e],s,l);"value"in h&&o(f,"value",null,h.value,s),(d=h.onVnodeBeforeMount)&&ip(d,l,e)}m&&ni(e,null,l,"beforeMount");let y=rI(r,_);y&&_.beforeEnter(f),i(f,t,n),((d=h&&h.onVnodeMounted)||y||m)&&rA(()=>{d&&ip(d,l,e),y&&_.enter(f),m&&ni(e,null,l,"mounted")},r)},N=(e,t,n,l,r)=>{if(n&&y(e,n),l)for(let t=0;t<l.length;t++)y(e,l[t]);if(r){let n=r.subTree;if(t===n||rj(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=r.vnode;N(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},P=(e,t,n,l,r,i,s,o,a=0)=>{for(let u=a;u<e.length;u++)S(null,e[u]=o?ia(e[u]):io(e[u]),t,n,l,r,i,s,o)},M=(e,t,n,l,r,i,s)=>{let a,u=t.el=e.el,{patchFlag:c,dynamicChildren:f,dirs:d}=t;c|=16&e.patchFlag;let h=e.props||g,_=t.props||g;if(n&&rM(n,!1),(a=_.onVnodeBeforeUpdate)&&ip(a,n,t,e),d&&ni(t,e,n,"beforeUpdate"),n&&rM(n,!0),(h.innerHTML&&null==_.innerHTML||h.textContent&&null==_.textContent)&&p(u,""),f?L(e.dynamicChildren,f,u,n,l,rP(t,r),i):s||z(e,t,u,null,n,l,rP(t,r),i,!1),c>0){if(16&c)F(u,h,_,n,r);else if(2&c&&h.class!==_.class&&o(u,"class",null,_.class,r),4&c&&o(u,"style",h.style,_.style,r),8&c){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let l=e[t],i=h[l],s=_[l];(s!==i||"value"===l)&&o(u,l,i,s,r,n)}}1&c&&e.children!==t.children&&p(u,t.children)}else s||null!=f||F(u,h,_,n,r);((a=_.onVnodeUpdated)||d)&&rA(()=>{a&&ip(a,n,t,e),d&&ni(t,e,n,"updated")},l)},L=(e,t,n,l,r,i,s)=>{for(let o=0;o<t.length;o++){let a=e[o],u=t[o],c=a.el&&(a.type===rK||!r4(a,u)||198&a.shapeFlag)?d(a.el):n;S(a,u,c,null,l,r,i,s,!0)}},F=(e,t,n,l,r)=>{if(t!==n){if(t!==g)for(let i in t)I(i)||i in n||o(e,i,t[i],null,r,l);for(let i in n){if(I(i))continue;let s=n[i],a=t[i];s!==a&&"value"!==i&&o(e,i,a,s,r,l)}"value"in n&&o(e,"value",t.value,n.value,r)}},D=(e,t,n,l,r,s,o,a,c)=>{let f=t.el=e?e.el:u(""),p=t.anchor=e?e.anchor:u(""),{patchFlag:d,dynamicChildren:h,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(i(f,n,l),i(p,n,l),P(t.children||[],n,p,r,s,o,a,c)):d>0&&64&d&&h&&e.dynamicChildren&&e.dynamicChildren.length===h.length?(L(e.dynamicChildren,h,n,r,s,o,a),(null!=t.key||r&&t===r.subTree)&&rL(e,t,!0)):z(e,t,n,p,r,s,o,a,c)},U=(e,t,n,l,r,i,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?r.ctx.activate(t,n,l,s,a):B(t,n,l,r,i,s,a):$(e,t,a)},B=(e,t,n,l,r,i,s)=>{let o=e.component=ig(e,l,r);if(lr(e)&&(o.ctx.renderer=ei),iC(o,!1,s),o.asyncDep){if(r&&r.registerDep(o,W,s),!e.el){let l=o.subTree=ie(rq);w(null,l,t,n),e.placeholder=l.el}}else W(o,e,t,n,r,i,s)},$=(e,t,n)=>{let l=t.component=e.component;if(function(e,t,n){let{props:l,children:r,component:i}=e,{props:s,children:o,patchFlag:a}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!r||!!o)&&(!o||!o.$stable)||l!==s&&(l?!s||rd(l,s,u):!!s);if(1024&a)return!0;if(16&a)return l?rd(l,s,u):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(rh(s,l,n)&&!ru(u,n))return!0}}return!1}(e,t,n))if(l.asyncDep&&!l.asyncResolved)return void K(l,t,n);else l.next=t,l.update();else t.el=e.el,l.vnode=t},W=(e,t,n,l,i,s,o)=>{e.scope.on();let a=e.effect=new ed(()=>{if(e.isMounted){let t,{next:n,bu:l,u:r,parent:a,vnode:c}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=c.el,K(e,n,o)),t.asyncDep.then(()=>{rA(()=>{e.isUnmounted||u()},i)});return}}let f=n;rM(e,!1),n?(n.el=c.el,K(e,n,o)):n=c,l&&H(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ip(t,a,n,c),rM(e,!0);let p=rc(e),h=e.subTree;e.subTree=p,S(h,p,d(h.el),en(h),e,i,s),n.el=p.el,null===f&&rg(e,p.el),r&&rA(r,i),(t=n.props&&n.props.onVnodeUpdated)&&rA(()=>ip(t,a,n,c),i)}else{let o,{el:a,props:u}=t,{bm:c,m:f,parent:p,root:d,type:h}=e,g=lt(t);if(rM(e,!1),c&&H(c),!g&&(o=u&&u.onVnodeBeforeMount)&&ip(o,p,t),rM(e,!0),a&&r){let t=()=>{e.subTree=rc(e),r(a,e.subTree,e,i,null)};g&&h.__asyncHydrate?h.__asyncHydrate(a,e,t):t()}else{d.ce&&d.ce._hasShadowRoot()&&d.ce._injectChildStyle(h);let r=e.subTree=rc(e);S(null,r,n,l,e,i,s),t.el=r.el}if(f&&rA(f,i),!g&&(o=u&&u.onVnodeMounted)){let e=t;rA(()=>ip(o,p,e),i)}(256&t.shapeFlag||p&<(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&rA(e.a,i),e.isMounted=!0,t=n=l=null}});e.scope.off();let u=e.update=a.run.bind(a),c=e.job=a.runIfDirty.bind(a);c.i=e,c.id=e.uid,a.scheduler=()=>t1(c),rM(e,!0),u()},K=(e,t,n)=>{t.component=e;let l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){let{props:r,attrs:i,vnode:{patchFlag:s}}=e,o=th(r),[a]=e.propsOptions,u=!1;if((l||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){let s=n[l];if(ru(e.emitsOptions,s))continue;let c=t[s];if(a)if(E(i,s))c!==i[s]&&(i[s]=c,u=!0);else{let t=j(s);r[t]=ry(a,o,t,c,e,!1)}else c!==i[s]&&(i[s]=c,u=!0)}}}else{let l;for(let s in rm(e,t,r,i)&&(u=!0),o)t&&(E(t,s)||(l=V(s))!==s&&E(t,l))||(a?n&&(void 0!==n[s]||void 0!==n[l])&&(r[s]=ry(a,o,s,void 0,e,!0)):delete r[s]);if(i!==o)for(let e in i)t&&E(t,e)||(delete i[e],u=!0)}u&&ej(e.attrs,"set","")}(e,t.props,l,n),((e,t,n)=>{let{vnode:l,slots:r}=e,i=!0,s=g;if(32&l.shapeFlag){let e=t._;e?n&&1===e?i=!1:rT(r,t,n):(i=!t.$stable,rE(t,r)),s=t}else t&&(rk(e,t),s={default:1});if(i)for(let e in r)rC(e)||null!=s[e]||delete r[e]})(e,t.children,n),ek(),t8(e),eT()},z=(e,t,n,l,r,i,s,o,a=!1)=>{let u=e&&e.children,c=e?e.shapeFlag:0,f=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void J(u,f,n,l,r,i,s,o,a);else if(256&d)return void G(u,f,n,l,r,i,s,o,a)}8&h?(16&c&&et(u,r,i),f!==u&&p(n,f)):16&c?16&h?J(u,f,n,l,r,i,s,o,a):et(u,r,i,!0):(8&c&&p(n,""),16&h&&P(f,n,l,r,i,s,o,a))},G=(e,t,n,l,r,i,s,o,a)=>{let u;e=e||_,t=t||_;let c=e.length,f=t.length,p=Math.min(c,f);for(u=0;u<p;u++){let l=t[u]=a?ia(t[u]):io(t[u]);S(e[u],l,n,null,r,i,s,o,a)}c>f?et(e,r,i,!0,!1,p):P(t,n,l,r,i,s,o,a,p)},J=(e,t,n,l,r,i,s,o,a)=>{let u=0,c=t.length,f=e.length-1,p=c-1;for(;u<=f&&u<=p;){let l=e[u],c=t[u]=a?ia(t[u]):io(t[u]);if(r4(l,c))S(l,c,n,null,r,i,s,o,a);else break;u++}for(;u<=f&&u<=p;){let l=e[f],u=t[p]=a?ia(t[p]):io(t[p]);if(r4(l,u))S(l,u,n,null,r,i,s,o,a);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,f=e<c?t[e].el:l;for(;u<=p;)S(null,t[u]=a?ia(t[u]):io(t[u]),n,f,r,i,s,o,a),u++}}else if(u>p)for(;u<=f;)Z(e[u],r,i,!0),u++;else{let d,h=u,g=u,m=new Map;for(u=g;u<=p;u++){let e=t[u]=a?ia(t[u]):io(t[u]);null!=e.key&&m.set(e.key,u)}let y=0,b=p-g+1,C=!1,x=0,w=Array(b);for(u=0;u<b;u++)w[u]=0;for(u=h;u<=f;u++){let l,c=e[u];if(y>=b){Z(c,r,i,!0);continue}if(null!=c.key)l=m.get(c.key);else for(d=g;d<=p;d++)if(0===w[d-g]&&r4(c,t[d])){l=d;break}void 0===l?Z(c,r,i,!0):(w[l-g]=u+1,l>=x?x=l:C=!0,S(c,t[l],n,null,r,i,s,o,a),y++)}let E=C?function(e){let t,n,l,r,i,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(l=0,r=o.length-1;l<r;)e[o[i=l+r>>1]]<a?l=i+1:r=i;a<e[o[l]]&&(l>0&&(s[t]=o[l-1]),o[l]=t)}}for(l=o.length,r=o[l-1];l-- >0;)o[l]=r,r=s[r];return o}(w):_;for(d=E.length-1,u=b-1;u>=0;u--){let e=g+u,f=t[e],p=t[e+1],h=e+1<c?p.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(p):l;0===w[u]?S(null,f,n,h,r,i,s,o,a):C&&(d<0||u!==E[d]?X(f,n,h,2):d--)}}},X=(e,t,n,l,r=null)=>{let{el:o,type:a,transition:u,children:c,shapeFlag:f}=e;if(6&f)return void X(e.component.subTree,t,n,l);if(128&f)return void e.suspense.move(t,n,l);if(64&f)return void a.move(e,t,n,ei);if(a===rK){i(o,t,n);for(let e=0;e<c.length;e++)X(c[e],t,n,l);i(e.anchor,t,n);return}if(a===rG)return void(({el:e,anchor:t},n,l)=>{let r;for(;e&&e!==t;)r=h(e),i(e,n,l),e=r;i(t,n,l)})(e,t,n);if(2!==l&&1&f&&u)if(0===l)u.beforeEnter(o),i(o,t,n),rA(()=>u.enter(o),r);else{let{leave:l,delayLeave:r,afterLeave:a}=u,c=()=>{e.ctx.isUnmounted?s(o):i(o,t,n)},f=()=>{o._isLeaving&&o[nR](!0),l(o,()=>{c(),a&&a()})};r?r(o,c,f):f()}else i(o,t,n)},Z=(e,t,n,l=!1,r=!1)=>{let i,{type:s,props:o,ref:a,children:u,dynamicChildren:c,shapeFlag:f,patchFlag:p,dirs:d,cacheIndex:h}=e;if(-2===p&&(r=!1),null!=a&&(ek(),nJ(a,null,n,e,!0),eT()),null!=h&&(t.renderCache[h]=void 0),256&f)return void t.ctx.deactivate(e);let g=1&f&&d,_=!lt(e);if(_&&(i=o&&o.onVnodeBeforeUnmount)&&ip(i,t,e),6&f)ee(e.component,n,l);else{if(128&f)return void e.suspense.unmount(n,l);g&&ni(e,null,t,"beforeUnmount"),64&f?e.type.remove(e,t,n,ei,l):c&&!c.hasOnce&&(s!==rK||p>0&&64&p)?et(c,t,n,!1,!0):(s===rK&&384&p||!r&&16&f)&&et(u,t,n),l&&Y(e)}(_&&(i=o&&o.onVnodeUnmounted)||g)&&rA(()=>{i&&ip(i,t,e),g&&ni(e,null,t,"unmounted")},n)},Y=e=>{let{type:t,el:n,anchor:l,transition:r}=e;if(t===rK)return void Q(n,l);if(t===rG)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)})(e);let i=()=>{s(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){let{leave:t,delayLeave:l}=r,s=()=>t(n,i);l?l(e.el,i,s):s()}else i()},Q=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},ee=(e,t,n)=>{let{bum:l,scope:r,job:i,subTree:s,um:o,m:a,a:u}=e;rF(a),rF(u),l&&H(l),r.stop(),i&&(i.flags|=8,Z(s,e,t,n)),o&&rA(o,t),rA(()=>{e.isUnmounted=!0},t)},et=(e,t,n,l=!1,r=!1,i=0)=>{for(let s=i;s<e.length;s++)Z(e[s],t,n,l,r)},en=e=>{if(6&e.shapeFlag)return en(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[nm];return n?h(n):t},el=!1,er=(e,t,n)=>{let l;null==e?t._vnode&&(Z(t._vnode,null,null,!0),l=t._vnode.component):S(t._vnode||null,e,t,null,null,null,n),t._vnode=e,el||(el=!0,t8(l),t4(),el=!1)},ei={p:S,um:Z,m:X,r:Y,mt:B,mc:P,pc:z,pbc:L,n:en,o:e};return t&&([l,r]=t(ei)),{render:er,hydrate:l,createApp:(n=l,function(e,t=null){T(e)||(e=C({},e)),null==t||O(t)||(t=null);let l=rn(),r=new WeakSet,i=[],s=!1,o=l.app={_uid:rl++,_component:e,_props:t,_container:null,_context:l,_instance:null,version:iF,get config(){return l.config},set config(v){},use:(e,...t)=>(r.has(e)||(e&&T(e.install)?(r.add(e),e.install(o,...t)):T(e)&&(r.add(e),e(o,...t))),o),mixin:e=>(l.mixins.includes(e)||l.mixins.push(e),o),component:(e,t)=>t?(l.components[e]=t,o):l.components[e],directive:(e,t)=>t?(l.directives[e]=t,o):l.directives[e],mount(r,i,a){if(!s){let u=o._ceVNode||ie(e,t);return u.appContext=l,!0===a?a="svg":!1===a&&(a=void 0),i&&n?n(u,r):er(u,r,a),s=!0,o._container=r,r.__vue_app__=o,iR(u.component)}},onUnmount(e){i.push(e)},unmount(){s&&(tK(i,o._instance,16),er(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(l.provides[e]=t,o),runWithContext(e){let t=rr;rr=o;try{return e()}finally{rr=t}}};return o})}}function rP({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rM({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rI(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rL(e,t,n=!1){let l=e.children,r=t.children;if(k(l)&&k(r))for(let e=0;e<l.length;e++){let t=l[e],i=r[e];1&i.shapeFlag&&!i.dynamicChildren&&((i.patchFlag<=0||32===i.patchFlag)&&((i=r[e]=ia(r[e])).el=t.el),n||-2===i.patchFlag||rL(t,i)),i.type===rz&&(-1===i.patchFlag&&(i=r[e]=ia(i)),i.el=t.el),i.type!==rq||i.el||(i.el=t.el)}}function rF(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let rj=e=>e.__isSuspense,rD=0,rV={name:"Suspense",__isSuspense:!0,process(e,t,n,l,r,i,s,o,a,u){if(null==e)!function(e,t,n,l,r,i,s,o,a){let{p:u,o:{createElement:c}}=a,f=c("div"),p=e.suspense=rB(e,r,l,t,f,n,i,s,o,a);u(null,p.pendingBranch=e.ssContent,f,null,l,p,i,s),p.deps>0?(rU(e,"onPending"),rU(e,"onFallback"),u(null,e.ssFallback,t,n,l,null,i,s),rW(p,e.ssFallback)):p.resolve(!1,!0)}(t,n,l,r,i,s,o,a,u);else{if(i&&i.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,l,r,i,s,o,{p:a,um:u,o:{createElement:c}}){let f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;let p=t.ssContent,d=t.ssFallback,{activeBranch:h,pendingBranch:g,isInFallback:_,isHydrating:m}=f;if(g)f.pendingBranch=p,r4(g,p)?(a(g,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():_&&!m&&(a(h,d,n,l,r,null,i,s,o),rW(f,d))):(f.pendingId=rD++,m?(f.isHydrating=!1,f.activeBranch=g):u(g,r,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),_?(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():(a(h,d,n,l,r,null,i,s,o),rW(f,d))):h&&r4(h,p)?(a(h,p,n,l,r,f,i,s,o),f.resolve(!0)):(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0&&f.resolve()));else if(h&&r4(h,p))a(h,p,n,l,r,f,i,s,o),rW(f,p);else if(rU(t,"onPending"),f.pendingBranch=p,512&p.shapeFlag?f.pendingId=p.component.suspenseId:f.pendingId=rD++,a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0)f.resolve();else{let{timeout:e,pendingId:t}=f;e>0?setTimeout(()=>{f.pendingId===t&&f.fallback(d)},e):0===e&&f.fallback(d)}}(e,t,n,l,r,s,o,a,u)}},hydrate:function(e,t,n,l,r,i,s,o,a){let u=t.suspense=rB(t,l,n,e.parentNode,document.createElement("div"),null,r,i,s,o,!0),c=a(e,u.pendingBranch=t.ssContent,n,u,i,s);return 0===u.deps&&u.resolve(!1,!0),c},normalize:function(e){let{shapeFlag:t,children:n}=e,l=32&t;e.ssContent=r$(l?n.default:n),e.ssFallback=l?r$(n.fallback):ie(rq)}};function rU(e,t){let n=e.props&&e.props[t];T(n)&&n()}function rB(e,t,n,l,r,i,s,o,a,u,c=!1){var f;let p,d,{p:h,m:g,um:_,n:m,o:{parentNode:y,remove:b}}=u,S=null!=(p=(f=e).props&&f.props.suspensible)&&!1!==p;S&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let C=e.props?z(e.props.timeout):void 0,x=i,w={vnode:e,parent:t,parentComponent:n,namespace:s,container:l,hiddenContainer:r,deps:0,pendingId:rD++,timeout:"number"==typeof C?C:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:l,activeBranch:r,pendingBranch:s,pendingId:o,effects:a,parentComponent:u,container:c,isInFallback:f}=w,p=!1;w.isHydrating?w.isHydrating=!1:!e&&((p=r&&s.transition&&"out-in"===s.transition.mode)&&(r.transition.afterLeave=()=>{o===w.pendingId&&(g(s,c,i===x?m(r):i,0),t6(a),f&&l.ssFallback&&(l.ssFallback.el=null))}),r&&(y(r.el)===c&&(i=m(r)),_(r,u,w,!0),!p&&f&&l.ssFallback&&rA(()=>l.ssFallback.el=null,w)),p||g(s,c,i,0)),rW(w,s),w.pendingBranch=null,w.isInFallback=!1;let h=w.parent,b=!1;for(;h;){if(h.pendingBranch){h.effects.push(...a),b=!0;break}h=h.parent}b||p||t6(a),w.effects=[],S&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),rU(l,"onResolve")},fallback(e){if(!w.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:l,container:r,namespace:i}=w;rU(t,"onFallback");let s=m(n),u=()=>{w.isInFallback&&(h(null,e,r,s,l,null,i,o,a),rW(w,e))},c=e.transition&&"out-in"===e.transition.mode;c&&(n.transition.afterLeave=u),w.isInFallback=!0,_(n,l,null,!0),c||u()},move(e,t,n){w.activeBranch&&g(w.activeBranch,e,t,n),w.container=e},next:()=>w.activeBranch&&m(w.activeBranch),registerDep(e,t,n){let l=!!w.pendingBranch;l&&w.deps++;let r=e.vnode.el;e.asyncDep.catch(t=>{tz(t,e,0)}).then(i=>{if(e.isUnmounted||w.isUnmounted||w.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;ix(e,i,!1),r&&(o.el=r);let a=!r&&e.subTree.el;t(e,o,y(r||e.subTree.el),r?null:m(e.subTree),w,s,n),a&&(o.placeholder=null,b(a)),rg(e,o.el),l&&0==--w.deps&&w.resolve()})},unmount(e,t){w.isUnmounted=!0,w.activeBranch&&_(w.activeBranch,n,e,t),w.pendingBranch&&_(w.pendingBranch,n,e,t)}};return w}function r$(e){let t;if(T(e)){let n=rQ&&e._c;n&&(e._d=!1,rZ()),e=e(),n&&(e._d=!0,t=rX,rY())}return k(e)&&(e=function(e,t=!0){let n;for(let t=0;t<e.length;t++){let l=e[t];if(!r8(l))return;if(l.type!==rq||"v-if"===l.children)if(n)return;else n=l}return n}(e)),e=io(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function rH(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):t6(e)}function rW(e,t){e.activeBranch=t;let{vnode:n,parentComponent:l}=e,r=t.el;for(;!r&&t.component;)r=(t=t.component.subTree).el;n.el=r,l&&l.subTree===n&&(l.vnode.el=r,rg(l,r))}let rK=Symbol.for("v-fgt"),rz=Symbol.for("v-txt"),rq=Symbol.for("v-cmt"),rG=Symbol.for("v-stc"),rJ=[],rX=null;function rZ(e=!1){rJ.push(rX=e?null:[])}function rY(){rJ.pop(),rX=rJ[rJ.length-1]||null}let rQ=1;function r0(e,t=!1){rQ+=e,e<0&&rX&&t&&(rX.hasOnce=!0)}function r1(e){return e.dynamicChildren=rQ>0?rX||_:null,rY(),rQ>0&&rX&&rX.push(e),e}function r2(e,t,n,l,r,i){return r1(r7(e,t,n,l,r,i,!0))}function r6(e,t,n,l,r){return r1(ie(e,t,n,l,r,!0))}function r8(e){return!!e&&!0===e.__v_isVNode}function r4(e,t){return e.type===t.type&&e.key===t.key}function r3(e){}let r5=({key:e})=>null!=e?e:null,r9=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?A(e)||tm(e)||T(e)?{i:t5,r:e,k:t,f:!!n}:e:null);function r7(e,t=null,n=null,l=0,r=null,i=+(e!==rK),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&r5(t),ref:t&&r9(t),scopeId:t9,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:l,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:t5};return o?(iu(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=A(n)?8:16),rQ>0&&!s&&rX&&(a.patchFlag>0||6&i)&&32!==a.patchFlag&&rX.push(a),a}let ie=function(e,t=null,n=null,l=0,r=null,i=!1){var s;if(e&&e!==lk||(e=rq),r8(e)){let l=il(e,t,!0);return n&&iu(l,n),rQ>0&&!i&&rX&&(6&l.shapeFlag?rX[rX.indexOf(e)]=l:rX.push(l)),l.patchFlag=-2,l}if(T(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=it(t);e&&!A(e)&&(t.class=Q(e)),O(n)&&(td(n)&&!k(n)&&(n=C({},n)),t.style=J(n))}let o=A(e)?1:rj(e)?128:e.__isTeleport?64:O(e)?4:2*!!T(e);return r7(e,t,n,l,r,o,i,!0)};function it(e){return e?td(e)||r_(e)?C({},e):e:null}function il(e,t,n=!1,l=!1){let{props:r,ref:i,patchFlag:s,children:o,transition:a}=e,u=t?ic(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&r5(u),ref:t&&t.ref?n&&i?k(i)?i.concat(r9(t)):[i,r9(t)]:r9(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==rK?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&il(e.ssContent),ssFallback:e.ssFallback&&il(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&l&&nB(c,a.clone(c)),c}function ir(e=" ",t=0){return ie(rz,null,e,t)}function ii(e,t){let n=ie(rG,null,e);return n.staticCount=t,n}function is(e="",t=!1){return t?(rZ(),r6(rq,null,e)):ie(rq,null,e)}function io(e){return null==e||"boolean"==typeof e?ie(rq):k(e)?ie(rK,null,e.slice()):r8(e)?ia(e):ie(rz,null,String(e))}function ia(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:il(e)}function iu(e,t){let n=0,{shapeFlag:l}=e;if(null==t)t=null;else if(k(t))n=16;else if("object"==typeof t)if(65&l){let n=t.default;n&&(n._c&&(n._d=!1),iu(e,n()),n._c&&(n._d=!0));return}else{n=32;let l=t._;l||r_(t)?3===l&&t5&&(1===t5.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t5}else T(t)?(t={default:t,_ctx:t5},n=32):(t=String(t),64&l?(n=16,t=[ir(t)]):n=8);e.children=t,e.shapeFlag|=n}function ic(...e){let t={};for(let n=0;n<e.length;n++){let l=e[n];for(let e in l)if("class"===e)t.class!==l.class&&(t.class=Q([t.class,l.class]));else if("style"===e)t.style=J([t.style,l.style]);else if(b(e)){let n=t[e],r=l[e];r&&n!==r&&!(k(n)&&n.includes(r))&&(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=l[e])}return t}function ip(e,t,n,l=null){tK(e,t,7,[n,l])}let id=rn(),ih=0;function ig(e,t,n){let l=e.type,r=(t?t.appContext:e.appContext)||id,i={uid:ih++,vnode:e,type:l,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ea(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,l=!1){let r=l?rb:n.propsCache,i=r.get(t);if(i)return i;let s=t.props,o={},a=[],u=!1;if(!T(t)){let r=t=>{u=!0;let[l,r]=e(t,n,!0);C(o,l),r&&a.push(...r)};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!s&&!u)return O(t)&&r.set(t,_),_;if(k(s))for(let e=0;e<s.length;e++){let t=j(s[e]);rS(t)&&(o[t]=g)}else if(s)for(let e in s){let t=j(e);if(rS(t)){let n=s[e],l=o[t]=k(n)||T(n)?{type:n}:C({},n),r=l.type,i=!1,u=!0;if(k(r))for(let e=0;e<r.length;++e){let t=r[e],n=T(t)&&t.name;if("Boolean"===n){i=!0;break}"String"===n&&(u=!1)}else i=T(r)&&"Boolean"===r.name;l[0]=i,l[1]=u,(i||E(l,"default"))&&a.push(t)}}let c=[o,a];return O(t)&&r.set(t,c),c}(l,r),emitsOptions:function e(t,n,l=!1){let r=l?ra:n.emitsCache,i=r.get(t);if(void 0!==i)return i;let s=t.emits,o={},a=!1;if(!T(t)){let r=t=>{let l=e(t,n,!0);l&&(a=!0,C(o,l))};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return s||a?(k(s)?s.forEach(e=>o[e]=null):C(o,s),O(t)&&r.set(t,o),o):(O(t)&&r.set(t,null),null)}(l,r),emit:null,emitted:null,propsDefaults:g,inheritAttrs:l.inheritAttrs,ctx:g,data:g,props:g,attrs:g,slots:g,refs:g,setupState:g,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=ro.bind(null,i),e.ce&&e.ce(i),i}let iv=null,i_=()=>iv||t5;{let e=q(),t=(t,n)=>{let l;return(l=e[t])||(l=e[t]=[]),l.push(n),e=>{l.length>1?l.forEach(t=>t(e)):l[0](e)}};o=t("__VUE_INSTANCE_SETTERS__",e=>iv=e),a=t("__VUE_SSR_SETTERS__",e=>iS=e)}let im=e=>{let t=iv;return o(e),e.scope.on(),()=>{e.scope.off(),o(t)}},iy=()=>{iv&&iv.scope.off(),o(null)};function ib(e){return 4&e.vnode.shapeFlag}let iS=!1;function iC(e,t=!1,n=!1){t&&a(t);let{props:l,children:r}=e.vnode,i=ib(e);!function(e,t,n,l=!1){let r={},i=Object.create(rv);for(let n in e.propsDefaults=Object.create(null),rm(e,t,r,i),e.propsOptions[0])n in r||(r[n]=void 0);n?e.props=l?r:ts(r):e.type.props?e.props=r:e.props=i,e.attrs=i}(e,l,i,t);var s=n||t;let o=e.slots=Object.create(rv);if(32&e.vnode.shapeFlag){let e=r._;e?(rT(o,r,s),s&&W(o,"_",e,!0)):rE(r,o)}else r&&rk(e,r);let u=i?function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lV);let{setup:l}=n;if(l){ek();let n=e.setupContext=l.length>1?iA(e):null,r=im(e),i=tW(l,e,0,[e.props,n]),s=N(i);if(eT(),r(),(s||e.sp)&&!lt(e)&&nK(e),s){if(i.then(iy,iy),t)return i.then(n=>{ix(e,n,t)}).catch(t=>{tz(t,e,0)});e.asyncDep=i}else ix(e,i,t)}else ik(e,t)}(e,t):void 0;return t&&a(!1),u}function ix(e,t,n){T(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:O(t)&&(e.setupState=tT(t)),ik(e,n)}function iw(e){u=e,c=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,lU))}}let iE=()=>!u;function ik(e,t,n){let l=e.type;if(!e.render){if(!t&&u&&!l.render){let t=l.template||l8(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:i,compilerOptions:s}=l,o=C(C({isCustomElement:n,delimiters:i},r),s);l.render=u(t,o)}}e.render=l.render||m,c&&c(e)}{let t=im(e);ek();try{!function(e){let t=l8(e),n=e.proxy,l=e.ctx;l2=!1,t.beforeCreate&&l6(t.beforeCreate,e,"bc");let{data:r,computed:i,methods:s,watch:o,provide:a,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:d,updated:h,activated:g,deactivated:_,beforeUnmount:y,unmounted:b,render:S,renderTracked:C,renderTriggered:x,errorCaptured:w,serverPrefetch:E,expose:R,inheritAttrs:N,components:P,directives:M}=t;if(u&&function(e,t,n=m){for(let n in k(e)&&(e=l9(e)),e){let l,r=e[n];tm(l=O(r)?"default"in r?no(r.from||n,r.default,!0):no(r.from||n):no(r))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(u,l,null),s)for(let e in s){let t=s[e];T(t)&&(l[e]=t.bind(n))}if(r){let t=r.call(n,n);O(t)&&(e.data=ti(t))}if(l2=!0,i)for(let e in i){let t=i[e],r=T(t)?t.bind(n,n):T(t.get)?t.get.bind(n,n):m,s=iN({get:r,set:!T(t)&&T(t.set)?t.set.bind(n):m});Object.defineProperty(l,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,l,r){let i=r.includes(".")?n_(l,r):()=>l[r];if(A(t)){let e=n[t];T(e)&&nh(i,e)}else if(T(t))nh(i,t.bind(l));else if(O(t))if(k(t))t.forEach(t=>e(t,n,l,r));else{let e=T(t.handler)?t.handler.bind(l):n[t.handler];T(e)&&nh(i,e,t)}}(o[e],l,n,e);if(a){let e=T(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{ns(t,e[t])})}function I(e,t){k(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(c&&l6(c,e,"c"),I(lh,f),I(lg,p),I(lv,d),I(l_,h),I(lo,g),I(la,_),I(lx,w),I(lC,C),I(lS,x),I(lm,y),I(ly,b),I(lb,E),k(R))if(R.length){let t=e.exposed||(e.exposed={});R.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===m&&(e.render=S),null!=N&&(e.inheritAttrs=N),P&&(e.components=P),M&&(e.directives=M),E&&nK(e)}(e)}finally{eT(),t()}}}let iT={get:(e,t)=>(eF(e,"get",""),e[t])};function iA(e){return{attrs:new Proxy(e.attrs,iT),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iR(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tT(tg(e.exposed)),{get:(t,n)=>n in t?t[n]:n in lj?lj[n](e):void 0,has:(e,t)=>t in e||t in lj})):e.proxy}function iO(e,t=!0){return T(e)?e.displayName||e.name:e.name||t&&e.__name}let iN=(e,t)=>(function(e,t=!1){let n,l;return T(e)?n=e:(n=e.get,l=e.set),new tI(n,l,t)})(e,iS);function iP(e,t,n){try{r0(-1);let l=arguments.length;if(2!==l)return l>3?n=Array.prototype.slice.call(arguments,2):3===l&&r8(n)&&(n=[n]),ie(e,t,n);if(!O(t)||k(t))return ie(e,null,t);if(r8(t))return ie(e,null,[t]);return ie(e,t)}finally{r0(1)}}function iM(){}function iI(e,t,n,l){let r=n[l];if(r&&iL(r,e))return r;let i=t();return i.memo=e.slice(),i.cacheIndex=l,n[l]=i}function iL(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if($(n[e],t[e]))return!1;return rQ>0&&rX&&rX.push(e),!0}let iF="3.5.28",ij=m,iD=null,iV,iU=m,iB={createComponentInstance:ig,setupComponent:iC,renderComponentRoot:rc,setCurrentRenderingInstance:t7,isVNode:r8,normalizeVNode:io,getComponentPublicInstance:iR,ensureValidVNode:lI,pushWarningContext:function(e){},popWarningContext:function(){}},i$=null,iH=null,iW=null,iK="u">typeof window&&window.trustedTypes;if(iK)try{d=iK.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iz=d?e=>d.createHTML(e):e=>e,iq="u">typeof document?document:null,iG=iq&&iq.createElement("template"),iJ={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{let r="svg"===t?iq.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iq.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iq.createElement(e,{is:n}):iq.createElement(e);return"select"===e&&l&&null!=l.multiple&&r.setAttribute("multiple",l.multiple),r},createText:e=>iq.createTextNode(e),createComment:e=>iq.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iq.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,l,r,i){let s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{iG.innerHTML=iz("svg"===l?`<svg>${e}</svg>`:"mathml"===l?`<math>${e}</math>`:e);let r=iG.content;if("svg"===l||"mathml"===l){let e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iX="transition",iZ="animation",iY=Symbol("_vtc"),iQ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},i0=C({},nM,iQ),i1=((e=(e,{slots:t})=>iP(nF,i8(e),t)).displayName="Transition",e.props=i0,e),i2=(e,t=[])=>{k(e)?e.forEach(e=>e(...t)):e&&e(...t)},i6=e=>!!e&&(k(e)?e.some(e=>e.length>1):e.length>1);function i8(e){let t={};for(let n in e)n in iQ||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:l,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:u=s,appearToClass:c=o,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;{if(O(e))return[function(e){return z(e)}(e.enter),function(e){return z(e)}(e.leave)];let t=function(e){return z(e)}(e);return[t,t]}}(r),g=h&&h[0],_=h&&h[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:b,onLeave:S,onLeaveCancelled:x,onBeforeAppear:w=m,onAppear:E=y,onAppearCancelled:k=b}=t,T=(e,t,n,l)=>{e._enterCancelled=l,i3(e,t?c:o),i3(e,t?u:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i3(e,f),i3(e,d),i3(e,p),t&&t()},R=e=>(t,n)=>{let r=e?E:y,s=()=>T(t,e,n);i2(r,[t,s]),i5(()=>{i3(t,e?a:i),i4(t,e?c:o),i6(r)||i7(t,l,g,s)})};return C(t,{onBeforeEnter(e){i2(m,[e]),i4(e,i),i4(e,s)},onBeforeAppear(e){i2(w,[e]),i4(e,a),i4(e,u)},onEnter:R(!1),onAppear:R(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i4(e,f),e._enterCancelled?(i4(e,p),sl(e)):(sl(e),i4(e,p)),i5(()=>{e._isLeaving&&(i3(e,f),i4(e,d),i6(S)||i7(e,l,_,n))}),i2(S,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),i2(b,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),i2(k,[e])},onLeaveCancelled(e){A(e),i2(x,[e])}})}function i4(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iY]||(e[iY]=new Set)).add(t)}function i3(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iY];n&&(n.delete(t),n.size||(e[iY]=void 0))}function i5(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i9=0;function i7(e,t,n,l){let r=e._endId=++i9,i=()=>{r===e._endId&&l()};if(null!=n)return setTimeout(i,n);let{type:s,timeout:o,propCount:a}=se(e,t);if(!s)return l();let u=s+"end",c=0,f=()=>{e.removeEventListener(u,p),i()},p=t=>{t.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},o+1),e.addEventListener(u,p)}function se(e,t){let n=window.getComputedStyle(e),l=e=>(n[e]||"").split(", "),r=l(`${iX}Delay`),i=l(`${iX}Duration`),s=st(r,i),o=l(`${iZ}Delay`),a=l(`${iZ}Duration`),u=st(o,a),c=null,f=0,p=0;t===iX?s>0&&(c=iX,f=s,p=i.length):t===iZ?u>0&&(c=iZ,f=u,p=a.length):p=(c=(f=Math.max(s,u))>0?s>u?iX:iZ:null)?c===iX?i.length:a.length:0;let d=c===iX&&/\b(?:transform|all)(?:,|$)/.test(l(`${iX}Property`).toString());return{type:c,timeout:f,propCount:p,hasTransform:d}}function st(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>sn(t)+sn(e[n])))}function sn(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function sl(e){return(e?e.ownerDocument:document).body.offsetHeight}let sr=Symbol("_vod"),si=Symbol("_vsh"),ss={name:"show",beforeMount(e,{value:t},{transition:n}){e[sr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):so(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),so(e,!0),l.enter(e)):l.leave(e,()=>{so(e,!1)}):so(e,t))},beforeUnmount(e,{value:t}){so(e,t)}};function so(e,t){e.style.display=t?e[sr]:"none",e[si]=!t}let sa=Symbol("");function su(e){let t=i_();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>sc(e,n))},l=()=>{let l=e(t.proxy);t.ce?sc(t.ce,l):function e(t,n){if(128&t.shapeFlag){let l=t.suspense;t=l.activeBranch,l.pendingBranch&&!l.isHydrating&&l.effects.push(()=>{e(l.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)sc(t.el,n);else if(t.type===rK)t.children.forEach(t=>e(t,n));else if(t.type===rG){let{el:e,anchor:l}=t;for(;e&&(sc(e,n),e!==l);)e=e.nextSibling}}(t.subTree,l),n(l)};lv(()=>{t6(l)}),lg(()=>{nh(l,m,{flush:"post"});let e=new MutationObserver(l);e.observe(t.subTree.el.parentNode,{childList:!0}),ly(()=>e.disconnect())})}function sc(e,t){if(1===e.nodeType){let l=e.style,r="";for(let e in t){var n;let i=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);l.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}l[sa]=r}}let sf=/(?:^|;)\s*display\s*:/,sp=/\s*!important$/;function sd(e,t,n){if(k(n))n.forEach(n=>sd(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let l=function(e,t){let n=sg[t];if(n)return n;let l=j(t);if("filter"!==l&&l in e)return sg[t]=l;l=U(l);for(let n=0;n<sh.length;n++){let r=sh[n]+l;if(r in e)return sg[t]=r}return t}(e,t);sp.test(n)?e.setProperty(V(l),n.replace(sp,""),"important"):e[l]=n}}let sh=["Webkit","Moz","ms"],sg={},sv="http://www.w3.org/1999/xlink";function s_(e,t,n,l,r,i=et(t)){if(l&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(sv,t.slice(6,t.length)):e.setAttributeNS(sv,t,n);else null==n||i&&!(n||""===n)?e.removeAttribute(t):e.setAttribute(t,i?"":R(n)?String(n):n)}function sm(e,t,n,l,r){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?iz(n):n);return}let i=e.tagName;if("value"===t&&"PROGRESS"!==i&&!i.includes("-")){let l="OPTION"===i?e.getAttribute("value")||"":e.value,r=null==n?"checkbox"===e.type?"on":"":String(n);l===r&&"_value"in e||(e.value=r),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let l=typeof e[t];if("boolean"===l){var o;n=!!(o=n)||""===o}else null==n&&"string"===l?(n="",s=!0):"number"===l&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(r||t)}function sy(e,t,n,l){e.addEventListener(t,n,l)}let sb=Symbol("_vei"),sS=/(?:Once|Passive|Capture)$/,sC=0,sx=Promise.resolve(),sw=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),sE=(e,t,n,l,r,i)=>{let s="svg"===r;if("class"===t){var o;let t;o=l,(t=e[iY])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let l=e.style,r=A(n),i=!1;if(n&&!r){if(t)if(A(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&sd(l,t,"")}else for(let e in t)null==n[e]&&sd(l,e,"");for(let e in n)"display"===e&&(i=!0),sd(l,e,n[e])}else if(r){if(t!==n){let e=l[sa];e&&(n+=";"+e),l.cssText=n,i=sf.test(n)}}else t&&e.removeAttribute("style");sr in e&&(e[sr]=i?l.display:"",e[si]&&(l.display="none"))}(e,n,l):b(t)?S(t)||function(e,t,n,l=null){let r=e[sb]||(e[sb]={}),i=r[t];if(n&&i)i.value=n;else{let[a,u]=function(e){let t;if(sS.test(e)){let n;for(t={};n=e.match(sS);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):V(e.slice(2)),t]}(t);if(n){var s,o;let i;sy(e,a,r[t]=(s=n,o=l,(i=e=>{if(e._vts){if(e._vts<=i.attached)return}else e._vts=Date.now();tK(function(e,t){if(!k(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,i.value),o,5,[e])}).value=s,i.attached=sC||(sx.then(()=>sC=0),sC=Date.now()),i),u)}else i&&(e.removeEventListener(a,i,u),r[t]=void 0)}}(e,t,l,i):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,l){if(l)return!!("innerHTML"===t||"textContent"===t||t in e&&sw(t)&&T(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(sw(t)&&A(n))&&t in e}(e,t,l,s))?e._isVueCE&&(/[A-Z]/.test(t)||!A(l))?sm(e,j(t),l,i,t):("true-value"===t?e._trueValue=l:"false-value"===t&&(e._falseValue=l),s_(e,t,l,s)):(sm(e,t,l),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||s_(e,t,l,s,i,"value"!==t))},sk={};function sT(e,t,n){let l,r=nH(e,t);"[object Object]"===(l=r,P.call(l))&&(r=C({},r,t));class i extends sO{constructor(e){super(r,e,n)}}return i.def=r,i}let sA=(e,t)=>sT(e,t,os),sR="u">typeof HTMLElement?HTMLElement:class{};class sO extends sR{constructor(e,t={},n=oi){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==oi?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(C({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof sO){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,t0(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:l,styles:r}=e;if(l&&!k(l))for(let e in l){let t=l[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=z(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(r),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)E(this,e)||Object.defineProperty(this,e,{get:()=>tw(t[e])})}_resolveProps(e){let{props:t}=e,n=k(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):sk,l=j(e);t&&this._numberProps&&this._numberProps[l]&&(n=z(n)),this._setProp(l,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,l=!1){if(t!==this._props[e]&&(this._dirty=!0,t===sk?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),l&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(V(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(V(e),t+""):t||this.removeAttribute(V(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),ol(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ie(this._def,C(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],P.call(n))?C({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),V(e)!==e&&t(V(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let l=document.createElement("style");n&&l.setAttribute("nonce",n),l.textContent=e[t],this.shadowRoot.prepend(l)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let l=e[n],r=l.getAttribute("name")||"default",i=this._slots[r],s=l.parentNode;if(i)for(let e of i){if(t&&1===e.nodeType){let n,l=t+"-s",r=document.createTreeWalker(e,1);for(e.setAttribute(l,"");n=r.nextNode();)n.setAttribute(l,"")}s.insertBefore(e,l)}else for(;l.firstChild;)s.insertBefore(l.firstChild,l);s.removeChild(l)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll("slot");for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e){this._applyStyles(e.styles,e)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return!1!==this._def.shadowRoot}_removeChildStyle(e){}}function sN(e){let t=i_(),n=t&&t.ce;return n||null}function sP(){let e=sN();return e&&e.shadowRoot}function sM(e="$style"){{let t=i_();if(!t)return g;let n=t.type.__cssModules;if(!n)return g;let l=n[e];return l||g}}let sI=new WeakMap,sL=new WeakMap,sF=Symbol("_moveCb"),sj=Symbol("_enterCb"),sD=(t={name:"TransitionGroup",props:C({},i0,{tag:String,moveClass:String}),setup(e,{slots:t}){let n,l,r=i_(),i=nN();return l_(()=>{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let l=e.cloneNode(),r=e[iY];r&&r.forEach(e=>{e.split(/\s+/).forEach(e=>e&&l.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&l.classList.add(e)),l.style.display="none";let i=1===t.nodeType?t:t.parentNode;i.appendChild(l);let{hasTransform:s}=se(l);return i.removeChild(l),s}(n[0].el,r.vnode.el,t)){n=[];return}n.forEach(sV),n.forEach(sU);let l=n.filter(sB);sl(r.vnode.el),l.forEach(e=>{let n=e.el,l=n.style;i4(n,t),l.transform=l.webkitTransform=l.transitionDuration="";let r=n[sF]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",r),n[sF]=null,i3(n,t))};n.addEventListener("transitionend",r)}),n=[]}),()=>{let s=th(e),o=i8(s),a=s.tag||rK;if(n=[],l)for(let e=0;e<l.length;e++){let t=l[e];t.el&&t.el instanceof Element&&(n.push(t),nB(t,nD(t,o,i,r)),sI.set(t,s$(t.el)))}l=t.default?n$(t.default()):[];for(let e=0;e<l.length;e++){let t=l[e];null!=t.key&&nB(t,nD(t,o,i,r))}return ie(a,null,l)}}},delete t.props.mode,t);function sV(e){let t=e.el;t[sF]&&t[sF](),t[sj]&&t[sj]()}function sU(e){sL.set(e,s$(e.el))}function sB(e){let t=sI.get(e),n=sL.get(e),l=t.left-n.left,r=t.top-n.top;if(l||r){let t=e.el,n=t.style,i=t.getBoundingClientRect(),s=1,o=1;return t.offsetWidth&&(s=i.width/t.offsetWidth),t.offsetHeight&&(o=i.height/t.offsetHeight),Number.isFinite(s)&&0!==s||(s=1),Number.isFinite(o)&&0!==o||(o=1),.01>Math.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${l/s}px,${r/o}px)`,n.transitionDuration="0s",e}}function s$(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let sH=e=>{let t=e.props["onUpdate:modelValue"]||!1;return k(t)?e=>H(t,e):t};function sW(e){e.target.composing=!0}function sK(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let sz=Symbol("_assign");function sq(e,t,n){return t&&(e=e.trim()),n&&(e=K(e)),e}let sG={created(e,{modifiers:{lazy:t,trim:n,number:l}},r){e[sz]=sH(r);let i=l||r.props&&"number"===r.props.type;sy(e,t?"change":"input",t=>{t.target.composing||e[sz](sq(e.value,n,i))}),(n||i)&&sy(e,"change",()=>{e.value=sq(e.value,n,i)}),t||(sy(e,"compositionstart",sW),sy(e,"compositionend",sK),sy(e,"change",sK))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:l,trim:r,number:i}},s){if(e[sz]=sH(s),e.composing)return;let o=(i||"number"===e.type)&&!/^0\d/.test(e.value)?K(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(l&&t===n||r&&e.value.trim()===a))return;e.value=a}}},sJ={deep:!0,created(e,t,n){e[sz]=sH(n),sy(e,"change",()=>{let t=e._modelValue,n=s0(e),l=e.checked,r=e[sz];if(k(t)){let e=el(t,n),i=-1!==e;if(l&&!i)r(t.concat(n));else if(!l&&i){let n=[...t];n.splice(e,1),r(n)}}else{let i;if("[object Set]"===(i=t,P.call(i))){let e=new Set(t);l?e.add(n):e.delete(n),r(e)}else r(s1(e,l))}})},mounted:sX,beforeUpdate(e,t,n){e[sz]=sH(n),sX(e,t,n)}};function sX(e,{value:t,oldValue:n},l){let r;if(e._modelValue=t,k(t))r=el(t,l.props.value)>-1;else{let i;if("[object Set]"===(i=t,P.call(i)))r=t.has(l.props.value);else{if(t===n)return;r=en(t,s1(e,!0))}}e.checked!==r&&(e.checked=r)}let sZ={created(e,{value:t},n){e.checked=en(t,n.props.value),e[sz]=sH(n),sy(e,"change",()=>{e[sz](s0(e))})},beforeUpdate(e,{value:t,oldValue:n},l){e[sz]=sH(l),t!==n&&(e.checked=en(t,l.props.value))}},sY={deep:!0,created(e,{value:t,modifiers:{number:n}},l){let r,i="[object Set]"===(r=t,P.call(r));sy(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?K(s0(e)):s0(e));e[sz](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,t0(()=>{e._assigning=!1})}),e[sz]=sH(l)},mounted(e,{value:t}){sQ(e,t)},beforeUpdate(e,t,n){e[sz]=sH(n)},updated(e,{value:t}){e._assigning||sQ(e,t)}};function sQ(e,t){let n,l=e.multiple,r=k(t);if(!l||r||"[object Set]"===(n=t,P.call(n))){for(let n=0,i=e.options.length;n<i;n++){let i=e.options[n],s=s0(i);if(l)if(r){let e=typeof s;"string"===e||"number"===e?i.selected=t.some(e=>String(e)===String(s)):i.selected=el(t,s)>-1}else i.selected=t.has(s);else if(en(s0(i),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}l||-1===e.selectedIndex||(e.selectedIndex=-1)}}function s0(e){return"_value"in e?e._value:e.value}function s1(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}let s2={created(e,t,n){s8(e,t,n,null,"created")},mounted(e,t,n){s8(e,t,n,null,"mounted")},beforeUpdate(e,t,n,l){s8(e,t,n,l,"beforeUpdate")},updated(e,t,n,l){s8(e,t,n,l,"updated")}};function s6(e,t){switch(e){case"SELECT":return sY;case"TEXTAREA":return sG;default:switch(t){case"checkbox":return sJ;case"radio":return sZ;default:return sG}}}function s8(e,t,n,l,r){let i=s6(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,l)}let s4=["ctrl","shift","alt","meta"],s3={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>s4.some(n=>e[`${n}Key`]&&!t.includes(n))},s5=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),l=t.join(".");return n[l]||(n[l]=(n,...l)=>{for(let e=0;e<t.length;e++){let l=s3[t[e]];if(l&&l(n,t))return}return e(n,...l)})},s9={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},s7=(e,t)=>{let n=e._withKeys||(e._withKeys={}),l=t.join(".");return n[l]||(n[l]=n=>{if(!("key"in n))return;let l=V(n.key);if(t.some(e=>e===l||s9[e]===l))return e(n)})},oe=C({patchProp:sE},iJ),ot=!1;function on(){return f=ot?f:rO(oe),ot=!0,f}let ol=(...e)=>{(f||(f=rR(oe))).render(...e)},or=(...e)=>{on().hydrate(...e)},oi=(...e)=>{let t=(f||(f=rR(oe))).createApp(...e),{mount:n}=t;return t.mount=e=>{let l=oa(e);if(!l)return;let r=t._component;T(r)||r.render||r.template||(r.template=l.innerHTML),1===l.nodeType&&(l.textContent="");let i=n(l,!1,oo(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},t},os=(...e)=>{let t=on().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=oa(e);if(t)return n(t,!0,oo(t))},t};function oo(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function oa(e){return A(e)?document.querySelector(e):e}let ou=!1,oc=()=>{ou||(ou=!0,sG.getSSRProps=({value:e})=>({value:e}),sZ.getSSRProps=({value:e},t)=>{if(t.props&&en(t.props.value,e))return{checked:!0}},sJ.getSSRProps=({value:e},t)=>{if(k(e)){if(t.props&&el(e,t.props.value)>-1)return{checked:!0}}else{let n;if("[object Set]"===(n=e,P.call(n))){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}},s2.getSSRProps=(e,t)=>{if("string"!=typeof t.type)return;let n=s6(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)},ss.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}})},of=()=>{};export{nF as BaseTransition,nM as BaseTransitionPropsValidators,rq as Comment,iW as DeprecationTypes,ea as EffectScope,tH as ErrorCodes,iD as ErrorTypeStrings,rK as Fragment,li as KeepAlive,ed as ReactiveEffect,rG as Static,rV as Suspense,nk as Teleport,rz as Text,tL as TrackOpTypes,i1 as Transition,sD as TransitionGroup,tF as TriggerOpTypes,sO as VueElement,t$ as assertNumber,tK as callWithAsyncErrorHandling,tW as callWithErrorHandling,j as camelize,U as capitalize,il as cloneVNode,iH as compatUtils,of as compile,iN as computed,oi as createApp,r6 as createBlock,is as createCommentVNode,r2 as createElementBlock,r7 as createElementVNode,rO as createHydrationRenderer,l0 as createPropsRestProxy,rR as createRenderer,os as createSSRApp,lP as createSlots,ii as createStaticVNode,ir as createTextVNode,ie as createVNode,tR as customRef,ln as defineAsyncComponent,nH as defineComponent,sT as defineCustomElement,l$ as defineEmits,lH as defineExpose,lz as defineModel,lW as defineOptions,lB as defineProps,sA as defineSSRCustomElement,lK as defineSlots,iV as devtools,eC as effect,eu as effectScope,i_ as getCurrentInstance,ec as getCurrentScope,tV as getCurrentWatcher,n$ as getTransitionRawChildren,it as guardReactiveProps,iP as h,tz as handleError,na as hasInjectionContext,or as hydrate,n5 as hydrateOnIdle,le as hydrateOnInteraction,n7 as hydrateOnMediaQuery,n9 as hydrateOnVisible,iM as initCustomFormatter,oc as initDirectivesForSSR,no as inject,iL as isMemoSame,td as isProxy,tc as isReactive,tf as isReadonly,tm as isRef,iE as isRuntimeOnly,tp as isShallow,r8 as isVNode,tg as markRaw,lY as mergeDefaults,lQ as mergeModels,ic as mergeProps,t0 as nextTick,iJ as nodeOps,Q as normalizeClass,ee as normalizeProps,J as normalizeStyle,lo as onActivated,lh as onBeforeMount,lm as onBeforeUnmount,lv as onBeforeUpdate,la as onDeactivated,lx as onErrorCaptured,lg as onMounted,lC as onRenderTracked,lS as onRenderTriggered,ef as onScopeDispose,lb as onServerPrefetch,ly as onUnmounted,l_ as onUpdated,tU as onWatcherCleanup,rZ as openBlock,sE as patchProp,nt as popScopeId,ns as provide,tT as proxyRefs,ne as pushScopeId,t6 as queuePostFlushCb,ti as reactive,to as readonly,ty as ref,iw as registerRuntimeCompiler,ol as render,lN as renderList,lM as renderSlot,lE as resolveComponent,lA as resolveDirective,lT as resolveDynamicComponent,i$ as resolveFilter,nD as resolveTransitionHooks,r0 as setBlockTracking,iU as setDevtoolsHook,nB as setTransitionHooks,ts as shallowReactive,ta as shallowReadonly,tb as shallowRef,nu as ssrContextKey,iB as ssrUtils,ex as stop,ei as toDisplayString,B as toHandlerKey,lL as toHandlers,th as toRaw,tM as toRef,tO as toRefs,tE as toValue,r3 as transformVNodeArgs,tx as triggerRef,tw as unref,lJ as useAttrs,sM as useCssModule,su as useCssVars,sN as useHost,nW as useId,ri as useModel,nc as useSSRContext,sP as useShadowRoot,lG as useSlots,nz as useTemplateRef,nN as useTransitionState,sJ as vModelCheckbox,s2 as vModelDynamic,sZ as vModelRadio,sY as vModelSelect,sG as vModelText,ss as vShow,iF as version,ij as warn,nh as watch,nf as watchEffect,np as watchPostEffect,nd as watchSyncEffect,l1 as withAsyncContext,nl as withCtx,lq as withDefaults,nr as withDirectives,s7 as withKeys,iI as withMemo,s5 as withModifiers,nn as withScopeId}; diff --git a/node_modules/vue/dist/vue.runtime.esm-bundler.js b/node_modules/vue/dist/vue.runtime.esm-bundler.js new file mode 100644 index 0000000..3907660 --- /dev/null +++ b/node_modules/vue/dist/vue.runtime.esm-bundler.js @@ -0,0 +1,26 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +import { initCustomFormatter, warn } from '@vue/runtime-dom'; +export * from '@vue/runtime-dom'; + +function initDev() { + { + initCustomFormatter(); + } +} + +if (!!(process.env.NODE_ENV !== "production")) { + initDev(); +} +const compile = () => { + if (!!(process.env.NODE_ENV !== "production")) { + warn( + `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` ) + ); + } +}; + +export { compile }; diff --git a/node_modules/vue/dist/vue.runtime.global.js b/node_modules/vue/dist/vue.runtime.global.js new file mode 100644 index 0000000..09b0e56 --- /dev/null +++ b/node_modules/vue/dist/vue.runtime.global.js @@ -0,0 +1,12749 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var Vue = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter + (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } + ); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } + }; + const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + + const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; + const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` + ); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` + ); + const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` + ); + function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; + } + + const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; + function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); + }; + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); + }; + + function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); + } + + function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + activeEffectScope = this.prevScope; + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + let activeSub; + const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); + class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } + } + let batchDepth = 0; + let batchedSub; + let batchedComputed; + function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; + } + function startBatch() { + batchDepth++; + } + function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; + } + function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } + } + function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; + } + function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; + } + function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } + } + function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } + } + function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } + } + + let globalVersion = 0; + class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } + } + class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } + } + function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } + } + const targetMap = /* @__PURE__ */ new WeakMap(); + const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" + ); + const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" + ); + const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" + ); + function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); + } + function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); + } + + function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); + } + function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; + } + function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); + } + const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } + }; + function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; + } + const arrayProto = Array.prototype; + function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; + } + function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); + } + function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; + } + function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; + } + function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; + } + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + // @__NO_SIDE_EFFECTS__ + function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + // @__NO_SIDE_EFFECTS__ + function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + // @__NO_SIDE_EFFECTS__ + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + // @__NO_SIDE_EFFECTS__ + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + // @__NO_SIDE_EFFECTS__ + function isProxy(value) { + return value ? !!value["__v_raw"] : false; + } + // @__NO_SIDE_EFFECTS__ + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; + } + function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; + } + const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; + const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + + // @__NO_SIDE_EFFECTS__ + function isRef(r) { + return r ? r["__v_isRef"] === true : false; + } + // @__NO_SIDE_EFFECTS__ + function ref(value) { + return createRef(value, false); + } + // @__NO_SIDE_EFFECTS__ + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } + } + function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } + } + function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + // @__NO_SIDE_EFFECTS__ + function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || !isIntegerKey(String(_key))) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } + } + // @__NO_SIDE_EFFECTS__ + function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } + } + // @__NO_SIDE_EFFECTS__ + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" + }; + const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" + }; + + const INITIAL_WATCHER_VALUE = {}; + const cleanupMap = /* @__PURE__ */ new WeakMap(); + let activeWatcher = void 0; + function getCurrentWatcher() { + return activeWatcher; + } + function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } + } + function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; + } + function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; + } + + const stack = []; + function pushWarningContext(vnode) { + stack.push(vnode); + } + function popWarningContext() { + stack.pop(); + } + let isWarning = false; + function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; + } + function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" + }; + const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" + }; + function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); + } + function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + const queue = []; + let flushIndex = -1; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; + } + function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } + } + function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; + function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; + } + + let isHmrUpdating = false; + const hmrDirtyComponents = /* @__PURE__ */ new Map(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + let devtools$1; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + // @__NO_SIDE_EFFECTS__ + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); + } + + const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn$1(`useSSRContext() is not supported in the global build.`); + } + }; + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + return watchHandle; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + + const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } else if (!disabled) { + warn$1( + "Invalid Teleport target on mount:", + target, + `(${typeof target})` + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + n2.el.__isMounted = false; + queuePostRenderEffect(() => { + mountToTarget(); + delete n2.el.__isMounted; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } + }, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; + } + + const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); + const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } + }; + function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; + } + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + // @__NO_SIDE_EFFECTS__ + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; + } + function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; + } + + const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); + function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; + } + function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); + } + + const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } + } + + let hasLoggedMismatchError = false; + const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; + }; + const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; + const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); + const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; + }; + const isComment = (node) => node.nodeType === 8; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; + } + function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; + } + function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); + } + function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; + } + function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; + } + function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; + } + function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } + } + const allowMismatchAttr = "data-allow-mismatch"; + const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" + }; + function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } + } + + const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); + const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); + const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); + }; + function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); + } + const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); + }; + const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } + }; + const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; + }; + function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + // @__NO_SIDE_EFFECTS__ + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } + }; + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook( + "bu" + ); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook( + "bum" + ); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook( + "sp" + ); + const onRenderTriggered = createHook("rtg"); + const onRenderTracked = createHook("rtc"); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn$1(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn$1( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, props, type } + }, key) { + let cssModules; + return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } + }; + { + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn$1( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; + } + const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyAllowed(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } + }); + function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; + } + function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } + } + function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn$1( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); + } + + const warnRuntimeUsage = (method) => warn$1( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` + ); + function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; + } + function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; + } + function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } + } + function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } + } + function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; + } + function defineModel() { + { + warnRuntimeUsage("defineModel"); + } + } + function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; + } + function useSlots() { + return getContext("useSlots").slots; + } + function useAttrs() { + return getContext("useAttrs").attrs; + } + function getContext(calledFunctionName) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`${calledFunctionName}() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); + } + function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; + } + function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn$1(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; + } + function mergeModels(a, b) { + if (!a || !b) return a || b; + if (isArray(a) && isArray(b)) return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); + } + function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; + } + function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn$1( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; + } + + function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; + } + let shouldCacheAccess = true; + function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn$1( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn$1( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn$1( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn$1(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn$1(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn$1( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val, + enumerable: true + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + } + function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } + } + function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); + } + function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + { + watch(getter, handler); + } + } else { + warn$1(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn$1(`Invalid watch option: "${key}"`, raw); + } + } + function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; + } + function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn$1( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; + } + const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject + }; + function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; + } + function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); + } + function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; + } + function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; + } + function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; + } + function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } + } + function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; + } + + function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; + } + let uid$1 = 0; + function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn$1(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn$1( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn$1(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn$1( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn$1( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn$1(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn$1(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn$1( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + { + context.reload = () => { + const cloned = cloneVNode(vnode); + cloned.el = null; + render(cloned, rootContainer, namespace); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getComponentPublicInstance(vnode.component); + } else { + warn$1( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + onUnmount(cleanupFn) { + if (typeof cleanupFn !== "function") { + warn$1( + `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}` + ); + } + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn$1(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + if (hasOwn(context.provides, key)) { + warn$1( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } else { + warn$1( + `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.` + ); + } + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; + } + let currentApp = null; + + function useModel(props, name, options = EMPTY_OBJ) { + const i = getCurrentInstance(); + if (!i) { + warn$1(`useModel() called without active instance.`); + return ref(); + } + const camelizedName = camelize(name); + if (!i.propsOptions[0][camelizedName]) { + warn$1(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + const hyphenatedName = hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = customRef((track, trigger) => { + let localValue; + let prevSetValue = EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; + } + const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; + }; + + function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } + } + const mixinEmitsCache = /* @__PURE__ */ new WeakMap(); + function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinEmitsCache : appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; + } + function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); + } + + let accessedAttrs = false; + function markAttrsAccessed() { + accessedAttrs = true; + } + function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + setTransitionHooks(root, vnode.transition); + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; + } + const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; + }; + function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; + } + const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; + }; + const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; + }; + const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; + }; + function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; + } + function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; + } + function hasPropValueChanged(nextProps, prevProps, key) { + const nextProp = nextProps[key]; + const prevProp = prevProps[key]; + if (key === "style" && isObject(nextProp) && isObject(prevProp)) { + return !looseEqual(nextProp, prevProp); + } + return nextProp !== prevProp; + } + function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } + } + + const internalObjectProto = {}; + const createInternalObject = () => Object.create(internalObjectProto); + const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + + function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; + } + function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) return true; + instance = instance.parent; + } + } + function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance.attrs, "set", ""); + } + { + validateProps(rawProps || {}, props, instance); + } + } + function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; + } + function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; + } + const mixinPropsCache = /* @__PURE__ */ new WeakMap(); + function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn$1(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn$1(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; + } + function validatePropName(key) { + if (key[0] !== "$" && !isReservedProp(key)) { + return true; + } else { + warn$1(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; + } + function getType(ctor) { + if (ctor === null) { + return "null"; + } + if (typeof ctor === "function") { + return ctor.name || ""; + } else if (typeof ctor === "object") { + const name = ctor.constructor && ctor.constructor.name; + return name || ""; + } + return ""; + } + function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key)); + for (const key in options) { + let opt = options[key]; + if (opt == null) continue; + validateProp( + key, + resolvedValues[key], + opt, + shallowReadonly(resolvedValues) , + !camelizePropsKey.includes(key) + ); + } + } + function validateProp(name, value, prop, props, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn$1('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn$1(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value, props)) { + warn$1('Invalid prop: custom validator check failed for prop "' + name + '".'); + } + } + const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" + ); + function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (expectedType === "null") { + valid = value === null; + } else if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; + } + function getInvalidTypeMessage(name, value, expectedTypes) { + if (expectedTypes.length === 0) { + return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`; + } + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; + } + function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } + } + function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); + } + function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); + } + + const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable"; + const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; + const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) { + warn$1( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; + }; + const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn$1( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } + }; + const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn$1( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; + }; + const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || !isInternalKey(key)) { + slots[key] = children[key]; + } + } + }; + const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } + }; + const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + assignSlots(slots, children, optimized); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } + }; + + let supported; + let perf; + function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`; + perf.mark(endTag); + perf.measure(measureName, startTag, endTag); + perf.clearMeasures(measureName); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; + } + + const queuePostRenderEffect = queueEffectWithSuspense ; + function createRenderer(options) { + return baseCreateRenderer(options); + } + function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); + } + function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } else { + patchStaticNode(n1, n2, container, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else { + warn$1("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } else if (ref == null && n1 && n1.ref != null) { + setRef(n1.ref, null, parentSuspense, n1, true); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, namespace) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + const customElement = n1.el && n1.el._isVueCE ? n1.el : null; + try { + if (customElement) { + customElement._beginPatch(); + } + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } finally { + if (customElement) { + customElement._endPatch(); + } + } + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + def(el, "__vnode", vnode, true); + def(el, "__vueParentComponent", parentComponent, true); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + { + el.__vnode = n2; + } + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance, false, optimized); + { + endMeasure(instance, `init`); + } + } + if (isHmrUpdating) initialVNode.el = null; + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + initialVNode.placeholder = placeholder.el; + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce && root.ce._hasShadowRoot()) { + root.ce._injectChildStyle(type); + } + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + queuePostRenderEffect(() => { + if (!instance.isUnmounted) update(); + }, parentSuspense); + }); + return; + } + } + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(instance); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn$1( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchorVNode = c2[nextIndex + 1]; + const anchor = nextIndex + 1 < l2 ? ( + // #13559, #14173 fallback to el placeholder for unresolved async component + anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) + ) : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => { + if (vnode.ctx.isUnmounted) { + hostRemove(el); + } else { + hostInsert(el, container, anchor); + } + }; + const performLeave = () => { + if (el._isLeaving) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + pauseTracking(); + setRef(ref, null, parentSuspense, vnode, true); + resetTracking(); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + let instance; + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + instance = container._vnode.component; + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(instance); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; + } + function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; + } + function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= -33; + job.flags &= -5; + } + } + function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; + } + function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + if (c2.patchFlag === -1) { + c2 = ch2[i] = cloneIfMounted(c2); + } + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + { + c2.el && (c2.el.__vnode = c2); + } + } + } + } + function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; + } + function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } + } + function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } + } + function resolveAsyncComponentPlaceholder(anchorVnode) { + if (anchorVnode.placeholder) { + return anchorVnode.placeholder; + } + const instance = anchorVnode.component; + if (instance) { + return resolveAsyncComponentPlaceholder(instance.subTree); + } + return null; + } + + const isSuspense = (type) => type.__isSuspense; + let suspenseId = 0; + const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren + }; + const Suspense = SuspenseImpl ; + function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } + } + function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } + } + function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(pendingBranch, newBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(activeBranch, newBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } + } + let hasWarned = false; + function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2, + isInFallback + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + if (isInFallback && vnode2.ssFallback) { + vnode2.ssFallback.el = null; + } + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + if (!delayEnter && isInFallback && vnode2.ssFallback) { + queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense); + } + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + vnode2.placeholder = null; + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; + } + function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; + } + function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); + } + function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; + } + function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } + } + function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } + } + function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; + } + + const Fragment = /* @__PURE__ */ Symbol.for("v-fgt"); + const Text = /* @__PURE__ */ Symbol.for("v-txt"); + const Comment = /* @__PURE__ */ Symbol.for("v-cmt"); + const Static = /* @__PURE__ */ Symbol.for("v-stc"); + const blockStack = []; + let currentBlock = null; + function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); + } + function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; + } + let isBlockTreeEnabled = 1; + function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } + } + function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; + } + function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); + } + function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); + } + function isVNode(value) { + return value ? value.__v_isVNode === true : false; + } + function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && n1.component) { + const dirtyInstances = hmrDirtyComponents.get(n2.type); + if (dirtyInstances && dirtyInstances.has(n1.component)) { + n1.shapeFlag &= -257; + n2.shapeFlag &= -513; + return false; + } + } + return n1.type === n2.type && n1.key === n2.key; + } + let vnodeArgsTransformer; + function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; + } + const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); + }; + const normalizeKey = ({ key }) => key != null ? key : null; + const normalizeRef = ({ + ref, + ref_key, + ref_for + }) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; + }; + function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetStart: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; + } + const createVNode = createVNodeWithArgsTransform ; + function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn$1(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn$1( + `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); + } + function guardReactiveProps(props) { + if (!props) return null; + return isProxy(props) || isInternalObject(props) ? extend({}, props) : props; + } + function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + placeholder: vnode.placeholder, + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; + } + function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; + } + function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); + } + function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; + } + function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); + } + function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } + } + function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); + } + function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; + } + function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; + } + function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); + } + + const emptyAppContext = createAppContext(); + let uid = 0; + function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; + } + let currentInstance = null; + const getCurrentInstance = () => currentInstance || currentRenderingInstance; + let internalSetCurrentInstance; + let setInSSRSetupState; + { + internalSetCurrentInstance = (i) => { + currentInstance = i; + }; + setInSSRSetupState = (v) => { + isInSSRComponentSetup = v; + }; + } + const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; + }; + const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); + }; + const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); + function validateComponentName(name, { isNativeTag }) { + if (isBuiltInTag(name) || isNativeTag(name)) { + warn$1( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } + } + function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; + } + let isInSSRComponentSetup = false; + function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized || isSSR); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; + } + function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn$1( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + shallowReadonly(instance.props) , + setupContext + ] + ); + const isAsyncSetup = isPromise(setupResult); + resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = formatComponentName(instance, Component); + warn$1( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } + } + function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn$1( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn$1( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); + } + let compile$1; + let installWithProxy; + function registerRuntimeCompiler(_compile) { + compile$1 = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; + } + const isRuntimeOnly = () => !compile$1; + function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile$1 && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile$1(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + pauseTracking(); + try { + applyOptions(instance); + } finally { + resetTracking(); + reset(); + } + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile$1 && Component.template) { + warn$1( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` ) + ); + } else { + warn$1(`Component is missing template or render function: `, Component); + } + } + } + const attrsProxyHandlers = { + get(target, key) { + markAttrsAccessed(); + track(target, "get", ""); + return target[key]; + }, + set() { + warn$1(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn$1(`setupContext.attrs is readonly.`); + return false; + } + } ; + function getSlotsProxy(instance) { + return new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + }); + } + function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn$1(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn$1( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + let attrsProxy; + let slotsProxy; + return Object.freeze({ + get attrs() { + return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers)); + }, + get slots() { + return slotsProxy || (slotsProxy = getSlotsProxy(instance)); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } + } + function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } + } + const classifyRE = /(?:^|[-_])\w/g; + const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); + function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; + } + function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry( + instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; + } + function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; + } + + const computed = (getterOrOptions, debugOptions) => { + const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + { + const i = getCurrentInstance(); + if (i && i.appContext.config.warnRecursiveComputed) { + c._warnRecursive = true; + } + } + return c; + }; + + function h(type, propsOrChildren, children) { + try { + setBlockTracking(-1); + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } finally { + setBlockTracking(1); + } + } + + function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#1677ff" }; + const stringStyle = { style: "color:#f5222d" }; + const keywordStyle = { style: "color:#eb2f96" }; + const formatter = { + __vue_custom_formatter: true, + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + pauseTracking(); + const value = obj.value; + resetTracking(); + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } + } + + function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; + } + function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; + } + + const version = "3.5.28"; + const warn = warn$1 ; + const ErrorTypeStrings = ErrorTypeStrings$1 ; + const devtools = devtools$1 ; + const setDevtoolsHook = setDevtoolsHook$1 ; + const ssrUtils = null; + const resolveFilter = null; + const compatUtils = null; + const DeprecationTypes = null; + + let policy = void 0; + const tt = typeof window !== "undefined" && window.trustedTypes; + if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + warn(`Error creating trusted types policy: ${e}`); + } + } + const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; + const svgNS = "http://www.w3.org/2000/svg"; + const mathmlNS = "http://www.w3.org/1998/Math/MathML"; + const doc = typeof document !== "undefined" ? document : null; + const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); + const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } + }; + + const TRANSITION = "transition"; + const ANIMATION = "animation"; + const vtcKey = /* @__PURE__ */ Symbol("_vtc"); + const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String + }; + const TransitionPropsValidators = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators + ); + const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; + }; + const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) + ); + const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } + }; + const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; + }; + function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(el); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(el); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); + } + function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } + } + function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; + } + function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); + } + function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } + } + function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); + } + let endId = 0; + function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); + } + function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; + } + function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); + } + function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; + } + function forceReflow(el) { + const targetDocument = el ? el.ownerDocument : document; + return targetDocument.body.offsetHeight; + } + + function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } + } + + const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod"); + const vShowHidden = /* @__PURE__ */ Symbol("_vsh"); + const vShow = { + // used for prop mismatch check during hydration + name: "show", + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } + }; + function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; + } + + const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" ); + function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + { + instance.getCssVars = () => getter(instance.proxy); + } + const setVars = () => { + const vars = getter(instance.proxy); + if (instance.ce) { + setVarsOnNode(instance.ce, vars); + } else { + setVarsOnVNode(instance.subTree, vars); + } + updateTeleports(vars); + }; + onBeforeUpdate(() => { + queuePostFlushCb(setVars); + }); + onMounted(() => { + watch(setVars, NOOP, { flush: "post" }); + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); + } + function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) break; + el = el.nextSibling; + } + } + } + function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + let cssText = ""; + for (const key in vars) { + const value = normalizeCssVarValue(vars[key]); + style.setProperty(`--${key}`, value); + cssText += `--${key}: ${value};`; + } + style[CSS_VAR_TEXT] = cssText; + } + } + + const displayRE = /(?:^|;)\s*display\s*:/; + function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } + } + const semicolonRE = /[^\\];\s*$/; + const importantRE = /\s*!important$/; + function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } + } + const prefixes = ["Webkit", "Moz", "ms"]; + const prefixCache = {}; + function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; + } + + const xlinkNS = "http://www.w3.org/1999/xlink"; + function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : isSymbol(value) ? String(value) : value + ); + } + } + } + + function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(attrName || key); + } + + function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); + } + function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); + } + const veiKey = /* @__PURE__ */ Symbol("_vei"); + function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = sanitizeEventValue(nextValue, rawName) ; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + sanitizeEventValue(nextValue, rawName) , + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } + } + const optionsModifierRE = /(?:Once|Passive|Capture)$/; + function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; + } + let cachedNow = 0; + const p = /* @__PURE__ */ Promise.resolve(); + const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); + function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; + } + function sanitizeEventValue(value, propName) { + if (isFunction(value) || isArray(value)) { + return value; + } + warn( + `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop? +Expected function or array of functions, received type ${typeof value}.` + ); + return NOOP; + } + function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } + } + + const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter + key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; + const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue)) + ) { + patchDOMProp(el, camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } + }; + function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") { + return false; + } + if (key === "sandbox" && el.tagName === "IFRAME") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && isString(value)) { + return false; + } + return key in el; + } + + const REMOVAL = {}; + // @__NO_SIDE_EFFECTS__ + function defineCustomElement(options, extraOptions, _createApp) { + let Comp = defineComponent(options, extraOptions); + if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; + } + const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); + }); + const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { + }; + class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._patching = false; + this._dirty = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + if (_def.shadowRoot !== false) { + this.attachShadow( + extend({}, _def.shadowRootOptions, { + mode: "open" + }) + ); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot && !this._resolved) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._mount(this._def); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._inheritParentContext(parent); + } + } + _inheritParentContext(parent = this._parent) { + if (parent && this._app) { + Object.setPrototypeOf( + this._app._context.provides, + parent._instance.provides + ); + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + if (this._teleportTargets) { + this._teleportTargets.clear(); + this._teleportTargets = void 0; + } + } + }); + } + _processMutations(mutations) { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver(this._processMutations.bind(this)); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + this._resolveProps(def); + if (this.shadowRoot) { + this._applyStyles(styles); + } else if (styles) { + warn( + "Custom element style injection is not supported when using shadowRoot: false" + ); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then((def) => { + def.configureApp = this._def.configureApp; + resolve(this._def = def, true); + }); + } else { + resolve(this._def); + } + } + _mount(def) { + if (!def.name) { + def.name = "VueElement"; + } + this._app = this._createApp(def); + this._inheritParentContext(); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => unref(exposed[key]) + }); + } else { + warn(`Exposed property "${key}" already exists on custom element.`); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, !this._patching); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + this._dirty = true; + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + if (ob) { + this._processMutations(ob.takeRecords()); + ob.disconnect(); + } + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + const vnode = this._createVNode(); + if (this._app) vnode.appContext = this._app._context; + render(vnode, this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = createVNode(this._def, extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this._root.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + { + if (owner) { + if (owner.__hmrId) { + if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map(); + let entry = this._childStyles.get(owner.__hmrId); + if (!entry) { + this._childStyles.set(owner.__hmrId, entry = []); + } + entry.push(s); + } + } else { + (this._styles || (this._styles = [])).push(s); + } + } + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = this._getSlots(); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _getSlots() { + const roots = [this]; + if (this._teleportTargets) { + roots.push(...this._teleportTargets); + } + const slots = /* @__PURE__ */ new Set(); + for (const root of roots) { + const found = root.querySelectorAll("slot"); + for (let i = 0; i < found.length; i++) { + slots.add(found[i]); + } + } + return Array.from(slots); + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _beginPatch() { + this._patching = true; + this._dirty = false; + } + /** + * @internal + */ + _endPatch() { + this._patching = false; + if (this._dirty && this._instance) { + this._update(); + } + } + /** + * @internal + */ + _hasShadowRoot() { + return this._def.shadowRoot !== false; + } + /** + * @internal + */ + _removeChildStyle(comp) { + { + this._styleChildren.delete(comp); + if (this._childStyles && comp.__hmrId) { + const oldStyles = this._childStyles.get(comp.__hmrId); + if (oldStyles) { + oldStyles.forEach((s) => this._root.removeChild(s)); + oldStyles.length = 0; + } + } + } + } + } + function useHost(caller) { + const instance = getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } else { + if (!instance) { + warn( + `${caller || "useHost"} called without an active component instance.` + ); + } else { + warn( + `${caller || "useHost"} can only be used in components defined via defineCustomElement.` + ); + } + } + return null; + } + function useShadowRoot() { + const el = useHost("useShadowRoot") ; + return el && el.shadowRoot; + } + + function useCssModule(name = "$style") { + { + { + warn(`useCssModule() is not supported in the global build.`); + } + return EMPTY_OBJ; + } + } + + const positionMap = /* @__PURE__ */ new WeakMap(); + const newPositionMap = /* @__PURE__ */ new WeakMap(); + const moveCbKey = /* @__PURE__ */ Symbol("_moveCb"); + const enterCbKey = /* @__PURE__ */ Symbol("_enterCb"); + const decorate = (t) => { + delete t.props.mode; + return t; + }; + const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + prevChildren = []; + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(instance.vnode.el); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || e.propertyName.endsWith("transform")) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + prevChildren = []; + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + setTransitionHooks( + child, + resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set(child, getPosition(child.el)); + } + } + } + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else if (child.type !== Text) { + warn(`<TransitionGroup> children must be keyed.`); + } + } + return createVNode(tag, null, children); + }; + } + }); + const TransitionGroup = TransitionGroupImpl; + function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } + } + function recordPosition(c) { + newPositionMap.set(c, getPosition(c.el)); + } + function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const el = c.el; + const s = el.style; + const rect = el.getBoundingClientRect(); + let scaleX = 1; + let scaleY = 1; + if (el.offsetWidth) scaleX = rect.width / el.offsetWidth; + if (el.offsetHeight) scaleY = rect.height / el.offsetHeight; + if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1; + if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1; + if (Math.abs(scaleX - 1) < 0.01) scaleX = 1; + if (Math.abs(scaleY - 1) < 0.01) scaleY = 1; + s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`; + s.transitionDuration = "0s"; + return c; + } + } + function getPosition(el) { + const rect = el.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top + }; + } + function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; + } + + const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; + }; + function onCompositionStart(e) { + e.target.composing = true; + } + function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } + } + const assignKey = /* @__PURE__ */ Symbol("_assign"); + function castValue(value, trim, number) { + if (trim) value = value.trim(); + if (number) value = looseToNumber(value); + return value; + } + const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + el[assignKey](castValue(el.value, trim, castToNumber)); + }); + if (trim || castToNumber) { + addEventListener(el, "change", () => { + el.value = castValue(el.value, trim, castToNumber); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } + }; + const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } + }; + function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (isArray(value)) { + checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } + } + const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } + }; + const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } + }; + function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = isArray(value); + if (isMultiple && !isArrayValue && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } + } + function getValue(el) { + return "_value" in el ? el._value : el.value; + } + function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; + } + const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } + }; + function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } + } + function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); + } + + const systemModifiers = ["ctrl", "shift", "alt", "meta"]; + const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) + }; + const withModifiers = (fn, modifiers) => { + if (!fn) return fn; + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + })); + }; + const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" + }; + const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = ((event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + })); + }; + + const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); + let renderer; + let enabledHydration = false; + function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); + } + function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; + } + const render = ((...args) => { + ensureRenderer().render(...args); + }); + const hydrate = ((...args) => { + ensureHydrationRenderer().hydrate(...args); + }); + const createApp = ((...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; + }); + const createSSRApp = ((...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; + }); + function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } + } + function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag), + writable: false + }); + } + function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } + } + function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; + } + const initDirectivesForSSR = NOOP; + + function initDev() { + { + { + console.info( + `You are running a development build of Vue. +Make sure to use the production build (*.prod.js) when deploying for production.` + ); + } + initCustomFormatter(); + } + } + + { + initDev(); + } + const compile = () => { + { + warn( + `Runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` ) + ); + } + }; + + exports.BaseTransition = BaseTransition; + exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; + exports.Comment = Comment; + exports.DeprecationTypes = DeprecationTypes; + exports.EffectScope = EffectScope; + exports.ErrorCodes = ErrorCodes; + exports.ErrorTypeStrings = ErrorTypeStrings; + exports.Fragment = Fragment; + exports.KeepAlive = KeepAlive; + exports.ReactiveEffect = ReactiveEffect; + exports.Static = Static; + exports.Suspense = Suspense; + exports.Teleport = Teleport; + exports.Text = Text; + exports.TrackOpTypes = TrackOpTypes; + exports.Transition = Transition; + exports.TransitionGroup = TransitionGroup; + exports.TriggerOpTypes = TriggerOpTypes; + exports.VueElement = VueElement; + exports.assertNumber = assertNumber; + exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; + exports.callWithErrorHandling = callWithErrorHandling; + exports.camelize = camelize; + exports.capitalize = capitalize; + exports.cloneVNode = cloneVNode; + exports.compatUtils = compatUtils; + exports.compile = compile; + exports.computed = computed; + exports.createApp = createApp; + exports.createBlock = createBlock; + exports.createCommentVNode = createCommentVNode; + exports.createElementBlock = createElementBlock; + exports.createElementVNode = createBaseVNode; + exports.createHydrationRenderer = createHydrationRenderer; + exports.createPropsRestProxy = createPropsRestProxy; + exports.createRenderer = createRenderer; + exports.createSSRApp = createSSRApp; + exports.createSlots = createSlots; + exports.createStaticVNode = createStaticVNode; + exports.createTextVNode = createTextVNode; + exports.createVNode = createVNode; + exports.customRef = customRef; + exports.defineAsyncComponent = defineAsyncComponent; + exports.defineComponent = defineComponent; + exports.defineCustomElement = defineCustomElement; + exports.defineEmits = defineEmits; + exports.defineExpose = defineExpose; + exports.defineModel = defineModel; + exports.defineOptions = defineOptions; + exports.defineProps = defineProps; + exports.defineSSRCustomElement = defineSSRCustomElement; + exports.defineSlots = defineSlots; + exports.devtools = devtools; + exports.effect = effect; + exports.effectScope = effectScope; + exports.getCurrentInstance = getCurrentInstance; + exports.getCurrentScope = getCurrentScope; + exports.getCurrentWatcher = getCurrentWatcher; + exports.getTransitionRawChildren = getTransitionRawChildren; + exports.guardReactiveProps = guardReactiveProps; + exports.h = h; + exports.handleError = handleError; + exports.hasInjectionContext = hasInjectionContext; + exports.hydrate = hydrate; + exports.hydrateOnIdle = hydrateOnIdle; + exports.hydrateOnInteraction = hydrateOnInteraction; + exports.hydrateOnMediaQuery = hydrateOnMediaQuery; + exports.hydrateOnVisible = hydrateOnVisible; + exports.initCustomFormatter = initCustomFormatter; + exports.initDirectivesForSSR = initDirectivesForSSR; + exports.inject = inject; + exports.isMemoSame = isMemoSame; + exports.isProxy = isProxy; + exports.isReactive = isReactive; + exports.isReadonly = isReadonly; + exports.isRef = isRef; + exports.isRuntimeOnly = isRuntimeOnly; + exports.isShallow = isShallow; + exports.isVNode = isVNode; + exports.markRaw = markRaw; + exports.mergeDefaults = mergeDefaults; + exports.mergeModels = mergeModels; + exports.mergeProps = mergeProps; + exports.nextTick = nextTick; + exports.nodeOps = nodeOps; + exports.normalizeClass = normalizeClass; + exports.normalizeProps = normalizeProps; + exports.normalizeStyle = normalizeStyle; + exports.onActivated = onActivated; + exports.onBeforeMount = onBeforeMount; + exports.onBeforeUnmount = onBeforeUnmount; + exports.onBeforeUpdate = onBeforeUpdate; + exports.onDeactivated = onDeactivated; + exports.onErrorCaptured = onErrorCaptured; + exports.onMounted = onMounted; + exports.onRenderTracked = onRenderTracked; + exports.onRenderTriggered = onRenderTriggered; + exports.onScopeDispose = onScopeDispose; + exports.onServerPrefetch = onServerPrefetch; + exports.onUnmounted = onUnmounted; + exports.onUpdated = onUpdated; + exports.onWatcherCleanup = onWatcherCleanup; + exports.openBlock = openBlock; + exports.patchProp = patchProp; + exports.popScopeId = popScopeId; + exports.provide = provide; + exports.proxyRefs = proxyRefs; + exports.pushScopeId = pushScopeId; + exports.queuePostFlushCb = queuePostFlushCb; + exports.reactive = reactive; + exports.readonly = readonly; + exports.ref = ref; + exports.registerRuntimeCompiler = registerRuntimeCompiler; + exports.render = render; + exports.renderList = renderList; + exports.renderSlot = renderSlot; + exports.resolveComponent = resolveComponent; + exports.resolveDirective = resolveDirective; + exports.resolveDynamicComponent = resolveDynamicComponent; + exports.resolveFilter = resolveFilter; + exports.resolveTransitionHooks = resolveTransitionHooks; + exports.setBlockTracking = setBlockTracking; + exports.setDevtoolsHook = setDevtoolsHook; + exports.setTransitionHooks = setTransitionHooks; + exports.shallowReactive = shallowReactive; + exports.shallowReadonly = shallowReadonly; + exports.shallowRef = shallowRef; + exports.ssrContextKey = ssrContextKey; + exports.ssrUtils = ssrUtils; + exports.stop = stop; + exports.toDisplayString = toDisplayString; + exports.toHandlerKey = toHandlerKey; + exports.toHandlers = toHandlers; + exports.toRaw = toRaw; + exports.toRef = toRef; + exports.toRefs = toRefs; + exports.toValue = toValue; + exports.transformVNodeArgs = transformVNodeArgs; + exports.triggerRef = triggerRef; + exports.unref = unref; + exports.useAttrs = useAttrs; + exports.useCssModule = useCssModule; + exports.useCssVars = useCssVars; + exports.useHost = useHost; + exports.useId = useId; + exports.useModel = useModel; + exports.useSSRContext = useSSRContext; + exports.useShadowRoot = useShadowRoot; + exports.useSlots = useSlots; + exports.useTemplateRef = useTemplateRef; + exports.useTransitionState = useTransitionState; + exports.vModelCheckbox = vModelCheckbox; + exports.vModelDynamic = vModelDynamic; + exports.vModelRadio = vModelRadio; + exports.vModelSelect = vModelSelect; + exports.vModelText = vModelText; + exports.vShow = vShow; + exports.version = version; + exports.warn = warn; + exports.watch = watch; + exports.watchEffect = watchEffect; + exports.watchPostEffect = watchPostEffect; + exports.watchSyncEffect = watchSyncEffect; + exports.withAsyncContext = withAsyncContext; + exports.withCtx = withCtx; + exports.withDefaults = withDefaults; + exports.withDirectives = withDirectives; + exports.withKeys = withKeys; + exports.withMemo = withMemo; + exports.withModifiers = withModifiers; + exports.withScopeId = withScopeId; + + return exports; + +})({}); diff --git a/node_modules/vue/dist/vue.runtime.global.prod.js b/node_modules/vue/dist/vue.runtime.global.prod.js new file mode 100644 index 0000000..a1b9102 --- /dev/null +++ b/node_modules/vue/dist/vue.runtime.global.prod.js @@ -0,0 +1,7 @@ +/** +* vue v3.5.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n;let l,r,i,s,o,a,u,c,f,p,d,h;function g(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let _={},m=[],y=()=>{},b=()=>!1,S=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),C=e=>e.startsWith("onUpdate:"),x=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},k=Object.prototype.hasOwnProperty,E=(e,t)=>k.call(e,t),T=Array.isArray,A=e=>"function"==typeof e,O=e=>"string"==typeof e,R=e=>"symbol"==typeof e,N=e=>null!==e&&"object"==typeof e,P=e=>(N(e)||A(e))&&A(e.then)&&A(e.catch),M=Object.prototype.toString,I=e=>O(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,L=g(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),F=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},j=/-\w/g,D=F(e=>e.replace(j,e=>e.slice(1).toUpperCase())),V=/\B([A-Z])/g,U=F(e=>e.replace(V,"-$1").toLowerCase()),B=F(e=>e.charAt(0).toUpperCase()+e.slice(1)),$=F(e=>e?`on${B(e)}`:""),H=(e,t)=>!Object.is(e,t),W=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},K=(e,t,n,l=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:l,value:n})},z=e=>{let t=parseFloat(e);return isNaN(t)?e:t},q=e=>{let t=O(e)?Number(e):NaN;return isNaN(t)?e:t},G=()=>l||(l="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),J=g("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function X(e){if(T(e)){let t={};for(let n=0;n<e.length;n++){let l=e[n],r=O(l)?function(e){let t={};return e.replace(Q,"").split(Z).forEach(e=>{if(e){let n=e.split(Y);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}(l):X(l);if(r)for(let e in r)t[e]=r[e]}return t}if(O(e)||N(e))return e}let Z=/;(?![^(]*\))/g,Y=/:([^]+)/,Q=/\/\*[^]*?\*\//g;function ee(e){let t="";if(O(e))t=e;else if(T(e))for(let n=0;n<e.length;n++){let l=ee(e[n]);l&&(t+=l+" ")}else if(N(e))for(let n in e)e[n]&&(t+=n+" ");return t.trim()}let et=g("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function en(e,t){let n,l;if(e===t)return!0;let r="[object Date]"===(n=e,M.call(n)),i="[object Date]"===(l=t,M.call(l));if(r||i)return!!r&&!!i&&e.getTime()===t.getTime();if(r=R(e),i=R(t),r||i)return e===t;if(r=T(e),i=T(t),r||i)return!!r&&!!i&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=en(e[l],t[l]);return n}(e,t);if(r=N(e),i=N(t),r||i){if(!r||!i||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let l=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(l&&!r||!l&&r||!en(e[n],t[n]))return!1}}return String(e)===String(t)}function el(e,t){return e.findIndex(e=>en(e,t))}let er=e=>!!(e&&!0===e.__v_isRef),ei=e=>O(e)?e:null==e?"":T(e)||N(e)&&(e.toString===M||!A(e.toString))?er(e)?ei(e.value):JSON.stringify(e,es,2):String(e),es=(e,t)=>{let n;if(er(t))return es(e,t.value);if("[object Map]"===(n=t,M.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],l)=>(e[eo(t,l)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,M.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eo(e))};else{if(R(t))return eo(t);let e;if(N(t)&&!T(t)&&"[object Object]"!==(e=t,M.call(e)))return String(t)}}return t},eo=(e,t="")=>{var n;return R(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ea{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=r,!e&&r&&(this.index=(r.scopes||(r.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){let e,t;if(this._isPaused=!1,this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=r;try{return r=this,e()}finally{r=t}}}on(){1==++this._on&&(this.prevScope=r,r=this)}off(){this._on>0&&0==--this._on&&(r=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,this.effects.length=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}}let eu=new WeakSet;class ec{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,r&&r.active&&r.effects.push(this)}pause(){this.flags|=64}resume(){64&this.flags&&(this.flags&=-65,eu.has(this)&&(eu.delete(this),this.trigger()))}notify(){(!(2&this.flags)||32&this.flags)&&(8&this.flags||ep(this))}run(){if(!(1&this.flags))return this.fn();this.flags|=2,ex(this),eh(this);let e=i,t=ey;i=this,ey=!0;try{return this.fn()}finally{eg(this),i=e,ey=t,this.flags&=-3}}stop(){if(1&this.flags){for(let e=this.deps;e;e=e.nextDep)em(e);this.deps=this.depsTail=void 0,ex(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){64&this.flags?eu.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ev(this)&&this.run()}get dirty(){return ev(this)}}let ef=0;function ep(e,t=!1){if(e.flags|=8,t){e.next=o,o=e;return}e.next=s,s=e}function ed(){let e;if(!(--ef>0)){if(o){let e=o;for(o=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;s;){let t=s;for(s=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function eh(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eg(e){let t,n=e.depsTail,l=n;for(;l;){let e=l.prevDep;-1===l.version?(l===n&&(n=e),em(l),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(l)):t=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=e}e.deps=t,e.depsTail=n}function ev(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(e_(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function e_(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===ew)||(e.globalVersion=ew,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ev(e))))return;e.flags|=2;let t=e.dep,n=i,l=ey;i=e,ey=!0;try{eh(e);let n=e.fn(e._value);(0===t.version||H(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{i=n,ey=l,eg(e),e.flags&=-3}}function em(e,t=!1){let{dep:n,prevSub:l,nextSub:r}=e;if(l&&(l.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=l,e.nextSub=void 0),n.subs===e&&(n.subs=l,!l&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)em(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let ey=!0,eb=[];function eS(){eb.push(ey),ey=!1}function eC(){let e=eb.pop();ey=void 0===e||e}function ex(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=i;i=void 0;try{t()}finally{i=e}}}let ew=0;class ek{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eE{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!i||!ey||i===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==i)t=this.activeLink=new ek(i,this),i.deps?(t.prevDep=i.depsTail,i.depsTail.nextDep=t,i.depsTail=t):i.deps=i.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let l=t.dep.subs;l!==t&&(t.prevSub=l,l&&(l.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=i.depsTail,t.nextDep=void 0,i.depsTail.nextDep=t,i.depsTail=t,i.deps===t&&(i.deps=e)}return t}trigger(e){this.version++,ew++,this.notify(e)}notify(e){ef++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{ed()}}}let eT=new WeakMap,eA=Symbol(""),eO=Symbol(""),eR=Symbol("");function eN(e,t,n){if(ey&&i){let t=eT.get(e);t||eT.set(e,t=new Map);let l=t.get(n);l||(t.set(n,l=new eE),l.map=t,l.key=n),l.track()}}function eP(e,t,n,l,r,i){let s=eT.get(e);if(!s)return void ew++;let o=e=>{e&&e.trigger()};if(ef++,"clear"===t)s.forEach(o);else{let r=T(e),i=r&&I(n);if(r&&"length"===n){let e=Number(l);s.forEach((t,n)=>{("length"===n||n===eR||!R(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),i&&o(s.get(eR)),t){case"add":if(r)i&&o(s.get("length"));else{let t;o(s.get(eA));"[object Map]"===(t=e,M.call(t))&&o(s.get(eO))}break;case"delete":if(!r){let t;o(s.get(eA));"[object Map]"===(t=e,M.call(t))&&o(s.get(eO))}break;case"set":let a;"[object Map]"===(a=e,M.call(a))&&o(s.get(eA))}}ed()}function eM(e){let t=ta(e);return t===e?t:(eN(t,"iterate",eR),ts(e)?t:t.map(tc))}function eI(e){return eN(e=ta(e),"iterate",eR),e}function eL(e,t){return ti(e)?tr(e)?tf(tc(t)):tf(t):tc(t)}let eF={__proto__:null,[Symbol.iterator](){return ej(this,Symbol.iterator,e=>eL(this,e))},concat(...e){return eM(this).concat(...e.map(e=>T(e)?eM(e):e))},entries(){return ej(this,"entries",e=>(e[1]=eL(this,e[1]),e))},every(e,t){return eV(this,"every",e,t,void 0,arguments)},filter(e,t){return eV(this,"filter",e,t,e=>e.map(e=>eL(this,e)),arguments)},find(e,t){return eV(this,"find",e,t,e=>eL(this,e),arguments)},findIndex(e,t){return eV(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eV(this,"findLast",e,t,e=>eL(this,e),arguments)},findLastIndex(e,t){return eV(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eV(this,"forEach",e,t,void 0,arguments)},includes(...e){return eB(this,"includes",e)},indexOf(...e){return eB(this,"indexOf",e)},join(e){return eM(this).join(e)},lastIndexOf(...e){return eB(this,"lastIndexOf",e)},map(e,t){return eV(this,"map",e,t,void 0,arguments)},pop(){return e$(this,"pop")},push(...e){return e$(this,"push",e)},reduce(e,...t){return eU(this,"reduce",e,t)},reduceRight(e,...t){return eU(this,"reduceRight",e,t)},shift(){return e$(this,"shift")},some(e,t){return eV(this,"some",e,t,void 0,arguments)},splice(...e){return e$(this,"splice",e)},toReversed(){return eM(this).toReversed()},toSorted(e){return eM(this).toSorted(e)},toSpliced(...e){return eM(this).toSpliced(...e)},unshift(...e){return e$(this,"unshift",e)},values(){return ej(this,"values",e=>eL(this,e))}};function ej(e,t,n){let l=eI(e),r=l[t]();return l===e||ts(e)||(r._next=r.next,r.next=()=>{let e=r._next();return e.done||(e.value=n(e.value)),e}),r}let eD=Array.prototype;function eV(e,t,n,l,r,i){let s=eI(e),o=s!==e&&!ts(e),a=s[t];if(a!==eD[t]){let t=a.apply(e,i);return o?tc(t):t}let u=n;s!==e&&(o?u=function(t,l){return n.call(this,eL(e,t),l,e)}:n.length>2&&(u=function(t,l){return n.call(this,t,l,e)}));let c=a.call(s,u,l);return o&&r?r(c):c}function eU(e,t,n,l){let r=eI(e),i=n;return r!==e&&(ts(e)?n.length>3&&(i=function(t,l,r){return n.call(this,t,l,r,e)}):i=function(t,l,r){return n.call(this,t,eL(e,l),r,e)}),r[t](i,...l)}function eB(e,t,n){let l=ta(e);eN(l,"iterate",eR);let r=l[t](...n);return(-1===r||!1===r)&&to(n[0])?(n[0]=ta(n[0]),l[t](...n)):r}function e$(e,t,n=[]){eS(),ef++;let l=ta(e)[t].apply(e,n);return ed(),eC(),l}let eH=g("__proto__,__v_isRef,__isVue"),eW=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(R));function eK(e){R(e)||(e=String(e));let t=ta(this);return eN(t,"has",e),t.hasOwnProperty(e)}class ez{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let l=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!l;if("__v_isReadonly"===t)return l;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(l?r?e7:e9:r?e5:e3).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let i=T(e);if(!l){let e;if(i&&(e=eF[t]))return e;if("hasOwnProperty"===t)return eK}let s=Reflect.get(e,t,tp(e)?e:n);if((R(t)?eW.has(t):eH(t))||(l||eN(e,"get",t),r))return s;if(tp(s)){let e=i&&I(t)?s:s.value;return l&&N(e)?tn(e):e}return N(s)?l?tn(s):te(s):s}}class eq extends ez{constructor(e=!1){super(!1,e)}set(e,t,n,l){let r=e[t],i=T(e)&&I(t);if(!this._isShallow){let e=ti(r);if(ts(n)||ti(n)||(r=ta(r),n=ta(n)),!i&&tp(r)&&!tp(n))if(e)return!0;else return r.value=n,!0}let s=i?Number(t)<e.length:E(e,t),o=Reflect.set(e,t,n,tp(e)?e:l);return e===ta(l)&&(s?H(n,r)&&eP(e,"set",t,n):eP(e,"add",t,n)),o}deleteProperty(e,t){let n=E(e,t);e[t];let l=Reflect.deleteProperty(e,t);return l&&n&&eP(e,"delete",t,void 0),l}has(e,t){let n=Reflect.has(e,t);return R(t)&&eW.has(t)||eN(e,"has",t),n}ownKeys(e){return eN(e,"iterate",T(e)?"length":eA),Reflect.ownKeys(e)}}class eG extends ez{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}let eJ=new eq,eX=new eG,eZ=new eq(!0),eY=new eG(!0),eQ=e=>e;function e0(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e1(e,t){let n,l=(x(n={get(n){let l=this.__v_raw,r=ta(l),i=ta(n);e||(H(n,i)&&eN(r,"get",n),eN(r,"get",i));let{has:s}=Reflect.getPrototypeOf(r),o=t?eQ:e?tf:tc;return s.call(r,n)?o(l.get(n)):s.call(r,i)?o(l.get(i)):void(l!==r&&l.get(n))},get size(){let t=this.__v_raw;return e||eN(ta(t),"iterate",eA),t.size},has(t){let n=this.__v_raw,l=ta(n),r=ta(t);return e||(H(t,r)&&eN(l,"has",t),eN(l,"has",r)),t===r?n.has(t):n.has(t)||n.has(r)},forEach(n,l){let r=this,i=r.__v_raw,s=ta(i),o=t?eQ:e?tf:tc;return e||eN(s,"iterate",eA),i.forEach((e,t)=>n.call(l,o(e),o(t),r))}},e?{add:e0("add"),set:e0("set"),delete:e0("delete"),clear:e0("clear")}:{add(e){t||ts(e)||ti(e)||(e=ta(e));let n=ta(this);return Reflect.getPrototypeOf(n).has.call(n,e)||(n.add(e),eP(n,"add",e,e)),this},set(e,n){t||ts(n)||ti(n)||(n=ta(n));let l=ta(this),{has:r,get:i}=Reflect.getPrototypeOf(l),s=r.call(l,e);s||(e=ta(e),s=r.call(l,e));let o=i.call(l,e);return l.set(e,n),s?H(n,o)&&eP(l,"set",e,n):eP(l,"add",e,n),this},delete(e){let t=ta(this),{has:n,get:l}=Reflect.getPrototypeOf(t),r=n.call(t,e);r||(e=ta(e),r=n.call(t,e)),l&&l.call(t,e);let i=t.delete(e);return r&&eP(t,"delete",e,void 0),i},clear(){let e=ta(this),t=0!==e.size,n=e.clear();return t&&eP(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=function(...n){let r,i=this.__v_raw,s=ta(i),o="[object Map]"===(r=s,M.call(r)),a="entries"===l||l===Symbol.iterator&&o,u=i[l](...n),c=t?eQ:e?tf:tc;return e||eN(s,"iterate","keys"===l&&o?eO:eA),x(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:a?[c(e[0]),c(e[1])]:c(e),done:t}}})}}),n);return(t,n,r)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(E(l,n)&&n in t?l:t,n,r)}let e2={get:e1(!1,!1)},e6={get:e1(!1,!0)},e8={get:e1(!0,!1)},e4={get:e1(!0,!0)},e3=new WeakMap,e5=new WeakMap,e9=new WeakMap,e7=new WeakMap;function te(e){return ti(e)?e:tl(e,!1,eJ,e2,e3)}function tt(e){return tl(e,!1,eZ,e6,e5)}function tn(e){return tl(e,!0,eX,e8,e9)}function tl(e,t,n,l,r){var i;let s;if(!N(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(i=e).__v_skip||!Object.isExtensible(i)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=i,M.call(s)).slice(8,-1));if(0===o)return e;let a=r.get(e);if(a)return a;let u=new Proxy(e,2===o?l:n);return r.set(e,u),u}function tr(e){return ti(e)?tr(e.__v_raw):!!(e&&e.__v_isReactive)}function ti(e){return!!(e&&e.__v_isReadonly)}function ts(e){return!!(e&&e.__v_isShallow)}function to(e){return!!e&&!!e.__v_raw}function ta(e){let t=e&&e.__v_raw;return t?ta(t):e}function tu(e){return!E(e,"__v_skip")&&Object.isExtensible(e)&&K(e,"__v_skip",!0),e}let tc=e=>N(e)?te(e):e,tf=e=>N(e)?tn(e):e;function tp(e){return!!e&&!0===e.__v_isRef}function td(e){return tg(e,!1)}function th(e){return tg(e,!0)}function tg(e,t){return tp(e)?e:new tv(e,t)}class tv{constructor(e,t){this.dep=new eE,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ta(e),this._value=t?e:tc(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||ts(e)||ti(e);H(e=n?e:ta(e),t)&&(this._rawValue=e,this._value=n?e:tc(e),this.dep.trigger())}}function t_(e){return tp(e)?e.value:e}let tm={get:(e,t,n)=>"__v_raw"===t?e:t_(Reflect.get(e,t,n)),set:(e,t,n,l)=>{let r=e[t];return tp(r)&&!tp(n)?(r.value=n,!0):Reflect.set(e,t,n,l)}};function ty(e){return tr(e)?e:new Proxy(e,tm)}class tb{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eE,{get:n,set:l}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=l}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tS(e){return new tb(e)}class tC{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=ta(e);let l=!0,r=e;if(!T(e)||!I(String(t)))do l=!to(r)||ts(r);while(l&&(r=r.__v_raw));this._shallow=l}get value(){let e=this._object[this._key];return this._shallow&&(e=t_(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&tp(this._raw[this._key])){let t=this._object[this._key];if(tp(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eT.get(e))&&n.get(t)}}class tx{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tw{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eE(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ew-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&i!==this)return ep(this,!0),!0}get value(){let e=this.dep.track();return e_(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tk={},tE=new WeakMap;function tT(e,t=!1,n=d){if(n){let t=tE.get(n);t||tE.set(n,t=[]),t.push(e)}}function tA(e,t=1/0,n){if(t<=0||!N(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tp(e))tA(e.value,t,n);else if(T(e))for(let l=0;l<e.length;l++)tA(e[l],t,n);else{let l,r;if("[object Set]"===(l=e,M.call(l))||"[object Map]"===(r=e,M.call(r)))e.forEach(e=>{tA(e,t,n)});else{let l;if("[object Object]"===(l=e,M.call(l))){for(let l in e)tA(e[l],t,n);for(let l of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,l)&&tA(e[l],t,n)}}}return e}function tO(e,t,n,l){try{return l?e(...l):e()}catch(e){tN(e,t,n)}}function tR(e,t,n,l){if(A(e)){let r=tO(e,t,n,l);return r&&P(r)&&r.catch(e=>{tN(e,t,n)}),r}if(T(e)){let r=[];for(let i=0;i<e.length;i++)r.push(tR(e[i],t,n,l));return r}}function tN(e,t,n,l=!0){let r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||_;if(t){let l=t.parent,r=t.proxy,s=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){let t=l.ec;if(t){for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return}l=l.parent}if(i){eS(),tO(i,null,10,[e,r,s]),eC();return}}!function(e,t=!0,n=!1){if(n)throw e;console.error(e)}(e,l,s)}let tP=[],tM=-1,tI=[],tL=null,tF=0,tj=Promise.resolve(),tD=null;function tV(e){let t=tD||tj;return e?t.then(this?e.bind(this):e):t}function tU(e){if(!(1&e.flags)){let t=tK(e),n=tP[tP.length-1];!n||!(2&e.flags)&&t>=tK(n)?tP.push(e):tP.splice(function(e){let t=tM+1,n=tP.length;for(;t<n;){let l=t+n>>>1,r=tP[l],i=tK(r);i<e||i===e&&2&r.flags?t=l+1:n=l}return t}(t),0,e),e.flags|=1,tB()}}function tB(){tD||(tD=tj.then(function e(t){try{for(tM=0;tM<tP.length;tM++){let e=tP[tM];e&&!(8&e.flags)&&(4&e.flags&&(e.flags&=-2),tO(e,e.i,e.i?15:14),4&e.flags||(e.flags&=-2))}}finally{for(;tM<tP.length;tM++){let e=tP[tM];e&&(e.flags&=-2)}tM=-1,tP.length=0,tW(),tD=null,(tP.length||tI.length)&&e()}}))}function t$(e){T(e)?tI.push(...e):tL&&-1===e.id?tL.splice(tF+1,0,e):1&e.flags||(tI.push(e),e.flags|=1),tB()}function tH(e,t,n=tM+1){for(;n<tP.length;n++){let t=tP[n];if(t&&2&t.flags){if(e&&t.id!==e.uid)continue;tP.splice(n,1),n--,4&t.flags&&(t.flags&=-2),t(),4&t.flags||(t.flags&=-2)}}}function tW(e){if(tI.length){let e=[...new Set(tI)].sort((e,t)=>tK(e)-tK(t));if(tI.length=0,tL)return void tL.push(...e);for(tF=0,tL=e;tF<tL.length;tF++){let e=tL[tF];4&e.flags&&(e.flags&=-2),8&e.flags||e(),e.flags&=-2}tL=null,tF=0}}let tK=e=>null==e.id?2&e.flags?-1:1/0:e.id,tz=null,tq=null;function tG(e){let t=tz;return tz=e,tq=e&&e.type.__scopeId||null,t}function tJ(e,t=tz,n){if(!t||e._n)return e;let l=(...n)=>{let r;l._d&&l5(-1);let i=tG(t);try{r=e(...n)}finally{tG(i),l._d&&l5(1)}return r};return l._n=!0,l._c=!0,l._d=!0,l}function tX(e,t,n,l){let r=e.dirs,i=t&&t.dirs;for(let s=0;s<r.length;s++){let o=r[s];i&&(o.oldValue=i[s].value);let a=o.dir[l];a&&(eS(),tR(a,n,8,[e.el,o,e,t]),eC())}}function tZ(e,t){if(rv){let n=rv.provides,l=rv.parent&&rv.parent.provides;l===n&&(n=rv.provides=Object.create(l)),n[e]=t}}function tY(e,t,n=!1){let l=r_();if(l||lh){let r=lh?lh._context.provides:l?null==l.parent||l.ce?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&A(t)?t.call(l&&l.proxy):t}}let tQ=Symbol.for("v-scx");function t0(e,t){return t1(e,null,{flush:"sync"})}function t1(e,t,n=_){let{flush:l}=n,i=x({},n),s=rv;i.call=(e,t,n)=>tR(e,s,t,n);let o=!1;return"post"===l?i.scheduler=e=>{lj(e,s&&s.suspense)}:"sync"!==l&&(o=!0,i.scheduler=(e,t)=>{t?e():tU(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=_){let l,i,s,o,{immediate:a,deep:u,once:c,scheduler:f,augmentJob:p,call:h}=n,g=e=>u?e:ts(e)||!1===u||0===u?tA(e,1):tA(e),m=!1,b=!1;if(tp(e)?(i=()=>e.value,m=ts(e)):tr(e)?(i=()=>g(e),m=!0):T(e)?(b=!0,m=e.some(e=>tr(e)||ts(e)),i=()=>e.map(e=>tp(e)?e.value:tr(e)?g(e):A(e)?h?h(e,2):e():void 0)):i=A(e)?t?h?()=>h(e,2):e:()=>{if(s){eS();try{s()}finally{eC()}}let t=d;d=l;try{return h?h(e,3,[o]):e(o)}finally{d=t}}:y,t&&u){let e=i,t=!0===u?1/0:u;i=()=>tA(e(),t)}let S=r,C=()=>{l.stop(),S&&S.active&&w(S.effects,l)};if(c&&t){let e=t;t=(...t)=>{e(...t),C()}}let x=b?Array(e.length).fill(tk):tk,k=e=>{if(1&l.flags&&(l.dirty||e))if(t){let e=l.run();if(u||m||(b?e.some((e,t)=>H(e,x[t])):H(e,x))){s&&s();let n=d;d=l;try{let n=[e,x===tk?void 0:b&&x[0]===tk?[]:x,o];x=e,h?h(t,3,n):t(...n)}finally{d=n}}}else l.run()};return p&&p(k),(l=new ec(i)).scheduler=f?()=>f(k,!1):k,o=e=>tT(e,!1,l),s=l.onStop=()=>{let e=tE.get(l);if(e){if(h)h(e,4);else for(let t of e)t();tE.delete(l)}},t?a?k(!0):x=l.run():f?f(k.bind(null,!0),!0):l.run(),C.pause=l.pause.bind(l),C.resume=l.resume.bind(l),C.stop=C,C}(e,t,i)}function t2(e,t,n){let l,r=this.proxy,i=O(e)?e.includes(".")?t6(r,e):()=>r[e]:e.bind(r,r);A(t)?l=t:(l=t.handler,n=t);let s=rm(this),o=t1(i,l.bind(r),n);return s(),o}function t6(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}let t8=Symbol("_vte"),t4=e=>e&&(e.disabled||""===e.disabled),t3=e=>e&&(e.defer||""===e.defer),t5=e=>"u">typeof SVGElement&&e instanceof SVGElement,t9=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,t7=(e,t)=>{let n=e&&e.to;return O(n)?t?t(n):null:n},ne={name:"Teleport",__isTeleport:!0,process(e,t,n,l,r,i,s,o,a,u){let{mc:c,pc:f,pbc:p,o:{insert:d,querySelector:h,createText:g}}=u,_=t4(t.props),{shapeFlag:m,children:y,dynamicChildren:b}=t;if(null==e){let e=t.el=g(""),u=t.anchor=g("");d(e,n,l),d(u,n,l);let f=(e,t)=>{16&m&&c(y,e,t,r,i,s,o,a)},p=()=>{let e=t.target=t7(t.props,h),n=nl(e,t,g,d);e&&("svg"!==s&&t5(e)?s="svg":"mathml"!==s&&t9(e)&&(s="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(e),_||(f(e,n),nn(t,!1)))};_&&(f(n,u),nn(t,!0)),t3(t.props)?(t.el.__isMounted=!1,lj(()=>{p(),delete t.el.__isMounted},i)):p()}else{if(t3(t.props)&&!1===e.el.__isMounted)return void lj(()=>{ne.process(e,t,n,l,r,i,s,o,a,u)},i);t.el=e.el,t.targetStart=e.targetStart;let c=t.anchor=e.anchor,d=t.target=e.target,g=t.targetAnchor=e.targetAnchor,m=t4(e.props),y=m?n:d,S=m?c:g;if("svg"===s||t5(d)?s="svg":("mathml"===s||t9(d))&&(s="mathml"),b?(p(e.dynamicChildren,b,y,r,i,s,o),lH(e,t,!0)):a||f(e,t,y,S,r,i,s,o,!1),_)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nt(t,n,c,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=t7(t.props,h);e&&nt(t,e,null,u,0)}else m&&nt(t,d,g,u,1);nn(t,_)}},remove(e,t,n,{um:l,o:{remove:r}},i){let{shapeFlag:s,children:o,anchor:a,targetStart:u,targetAnchor:c,target:f,props:p}=e;if(f&&(r(u),r(c)),i&&r(a),16&s){let e=i||!t4(p);for(let r=0;r<o.length;r++){let i=o[r];l(i,t,n,e,!!i.dynamicChildren)}}},move:nt,hydrate:function(e,t,n,l,r,i,{o:{nextSibling:s,parentNode:o,querySelector:a,insert:u,createText:c}},f){function p(e,n){let l=n;for(;l;){if(l&&8===l.nodeType){if("teleport start anchor"===l.data)t.targetStart=l;else if("teleport anchor"===l.data){t.targetAnchor=l,e._lpa=t.targetAnchor&&s(t.targetAnchor);break}}l=s(l)}}function d(e,t){t.anchor=f(s(e),t,o(e),n,l,r,i)}let h=t.target=t7(t.props,a),g=t4(t.props);if(h){let a=h._lpa||h.firstChild;16&t.shapeFlag&&(g?(d(e,t),p(h,a),t.targetAnchor||nl(h,t,c,u,o(e)===h?e:null)):(t.anchor=s(e),p(h,a),t.targetAnchor||nl(h,t,c,u),f(a&&s(a),t,h,n,l,r,i))),nn(t,g)}else g&&16&t.shapeFlag&&(d(e,t),t.targetStart=e,t.targetAnchor=s(e));return t.anchor&&s(t.anchor)}};function nt(e,t,n,{o:{insert:l},m:r},i=2){0===i&&l(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:u,props:c}=e,f=2===i;if(f&&l(s,t,n),(!f||t4(c))&&16&a)for(let e=0;e<u.length;e++)r(u[e],t,n,2);f&&l(o,t,n)}function nn(e,t){let n=e.ctx;if(n&&n.ut){let l,r;for(t?(l=e.el,r=e.anchor):(l=e.targetStart,r=e.targetAnchor);l&&l!==r;)1===l.nodeType&&l.setAttribute("data-v-owner",n.uid),l=l.nextSibling;n.ut()}}function nl(e,t,n,l,r=null){let i=t.targetStart=n(""),s=t.targetAnchor=n("");return i[t8]=s,e&&(l(i,e,r),l(s,e,r)),s}let nr=Symbol("_leaveCb"),ni=Symbol("_enterCb");function ns(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return nz(()=>{e.isMounted=!0}),nJ(()=>{e.isUnmounting=!0}),e}let no=[Function,Array],na={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:no,onEnter:no,onAfterEnter:no,onEnterCancelled:no,onBeforeLeave:no,onLeave:no,onAfterLeave:no,onLeaveCancelled:no,onBeforeAppear:no,onAppear:no,onAfterAppear:no,onAppearCancelled:no},nu=e=>{let t=e.subTree;return t.component?nu(t.component):t};function nc(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==l0){t=n;break}}return t}let nf={name:"BaseTransition",props:na,setup(e,{slots:t}){let n=r_(),l=ns();return()=>{let r=t.default&&n_(t.default(),!0);if(!r||!r.length)return;let i=nc(r),s=ta(e),{mode:o}=s;if(l.isLeaving)return nh(i);let a=ng(i);if(!a)return nh(i);let u=nd(a,s,l,n,e=>u=e);a.type!==l0&&nv(a,u);let c=n.subTree&&ng(n.subTree);if(c&&c.type!==l0&&!rt(c,a)&&nu(n).type!==l0){let e=nd(c,s,l,n);if(nv(c,e),"out-in"===o&&a.type!==l0)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,c=void 0},nh(i);"in-out"===o&&a.type!==l0?e.delayLeave=(e,t,n)=>{np(l,c)[String(c.key)]=c,e[nr]=()=>{t(),e[nr]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function np(e,t){let{leavingVNodes:n}=e,l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function nd(e,t,n,l,r){let{appear:i,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:m,onAfterAppear:y,onAppearCancelled:b}=t,S=String(e.key),C=np(n,e),x=(e,t)=>{e&&tR(e,l,9,t)},w=(e,t)=>{let n=t[1];x(e,t),T(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:s,persisted:o,beforeEnter(t){let l=a;if(!n.isMounted)if(!i)return;else l=_||a;t[nr]&&t[nr](!0);let r=C[S];r&&rt(e,r)&&r.el[nr]&&r.el[nr](),x(l,[t])},enter(e){let t=u,l=c,r=f;if(!n.isMounted)if(!i)return;else t=m||u,l=y||c,r=b||f;let s=!1;e[ni]=t=>{s||(s=!0,t?x(r,[e]):x(l,[e]),k.delayedLeave&&k.delayedLeave(),e[ni]=void 0)};let o=e[ni].bind(null,!1);t?w(t,[e,o]):o()},leave(t,l){let r=String(e.key);if(t[ni]&&t[ni](!0),n.isUnmounting)return l();x(p,[t]);let i=!1;t[nr]=n=>{i||(i=!0,l(),n?x(g,[t]):x(h,[t]),t[nr]=void 0,C[r]===e&&delete C[r])};let s=t[nr].bind(null,!1);C[r]=e,d?w(d,[t,s]):s()},clone(e){let i=nd(e,t,n,l,r);return r&&r(i),i}};return k}function nh(e){if(nF(e))return(e=ro(e)).children=null,e}function ng(e){if(!nF(e))return e.type.__isTeleport&&e.children?nc(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&A(n.default))return n.default()}}function nv(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nv(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function n_(e,t=!1,n){let l=[],r=0;for(let i=0;i<e.length;i++){let s=e[i],o=null==n?s.key:String(n)+String(null!=s.key?s.key:i);s.type===lY?(128&s.patchFlag&&r++,l=l.concat(n_(s.children,t,o))):(t||s.type!==l0)&&l.push(null!=o?ro(s,{key:o}):s)}if(r>1)for(let e=0;e<l.length;e++)l[e].patchFlag=-2;return l}function nm(e,t){return A(e)?x({name:e.name},t,{setup:e}):e}function ny(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nb(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let nS=new WeakMap;function nC(e,t,n,l,r=!1){if(T(e))return void e.forEach((e,i)=>nC(e,t&&(T(t)?t[i]:t),n,l,r));if(nI(l)&&!r){512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&nC(e,t,n,l.component.subTree);return}let i=4&l.shapeFlag?rE(l.component):l.el,s=r?null:i,{i:o,r:a}=e,u=t&&t.r,c=o.refs===_?o.refs={}:o.refs,f=o.setupState,p=ta(f),d=f===_?b:e=>!nb(c,e)&&E(p,e),h=(e,t)=>!(t&&nb(c,t));if(null!=u&&u!==a&&(nx(t),O(u)?(c[u]=null,d(u)&&(f[u]=null)):tp(u)&&(h(u,t.k)&&(u.value=null),t.k&&(c[t.k]=null))),A(a))tO(a,o,12,[s,c]);else{let t=O(a),l=tp(a);if(t||l){let o=()=>{if(e.f){let n=t?d(a)?f[a]:c[a]:h()||!e.k?a.value:c[e.k];if(r)T(n)&&w(n,i);else if(T(n))n.includes(i)||n.push(i);else if(t)c[a]=[i],d(a)&&(f[a]=c[a]);else{let t=[i];h(a,e.k)&&(a.value=t),e.k&&(c[e.k]=t)}}else t?(c[a]=s,d(a)&&(f[a]=s)):l&&(h(a,e.k)&&(a.value=s),e.k&&(c[e.k]=s))};if(s){let t=()=>{o(),nS.delete(e)};t.id=-1,nS.set(e,t),lj(t,n)}else nx(e),o()}}}function nx(e){let t=nS.get(e);t&&(t.flags|=8,nS.delete(e))}let nw=!1,nk=()=>{nw||(console.error("Hydration completed but contains mismatches."),nw=!0)},nE=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nT=e=>8===e.nodeType;function nA(e){let{mt:t,p:n,o:{patchProp:l,createText:r,nextSibling:i,parentNode:s,remove:o,insert:a,createComment:u}}=e,c=(n,l,o,u,y,b=!1)=>{b=b||!!l.dynamicChildren;let S=nT(n)&&"["===n.data,C=()=>h(n,l,o,u,y,S),{type:x,ref:w,shapeFlag:k,patchFlag:E}=l,T=n.nodeType;l.el=n,-2===E&&(b=!1,l.dynamicChildren=null);let A=null;switch(x){case lQ:3!==T?""===l.children?(a(l.el=r(""),s(n),n),A=n):A=C():(n.data!==l.children&&(nk(),n.data=l.children),A=i(n));break;case l0:m(n)?(A=i(n),_(l.el=n.content.firstChild,n,o)):A=8!==T||S?C():i(n);break;case l1:if(S&&(T=(n=i(n)).nodeType),1===T||3===T){A=n;let e=!l.children.length;for(let t=0;t<l.staticCount;t++)e&&(l.children+=1===A.nodeType?A.outerHTML:A.data),t===l.staticCount-1&&(l.anchor=A),A=i(A);return S?i(A):A}C();break;case lY:A=S?d(n,l,o,u,y,b):C();break;default:if(1&k)A=1===T&&l.type.toLowerCase()===n.tagName.toLowerCase()||m(n)?f(n,l,o,u,y,b):C();else if(6&k){l.slotScopeIds=y;let e=s(n);if(A=S?g(n):nT(n)&&"teleport start"===n.data?g(n,n.data,"teleport end"):i(n),t(l,e,null,o,u,nE(e),b),nI(l)&&!l.type.__asyncResolved){let t;S?(t=ri(lY)).anchor=A?A.previousSibling:e.lastChild:t=3===n.nodeType?ra(""):ri("div"),t.el=n,l.component.subTree=t}}else 64&k?A=8!==T?C():l.type.hydrate(n,l,o,u,y,b,e,p):128&k&&(A=l.type.hydrate(n,l,o,u,nE(s(n)),y,b,e,c))}return null!=w&&nC(w,null,u,l),A},f=(e,t,n,r,i,s)=>{s=s||!!t.dynamicChildren;let{type:a,props:u,patchFlag:c,shapeFlag:f,dirs:d,transition:h}=t,g="input"===a||"option"===a;if(g||-1!==c){let a;d&&tX(t,null,n,"created");let y=!1;if(m(e)){y=l$(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let l=e.content.firstChild;if(y){let e=l.getAttribute("class");e&&(l.$cls=e),h.beforeEnter(l)}_(l,e,n),t.el=e=l}if(16&f&&!(u&&(u.innerHTML||u.textContent))){let l=p(e.firstChild,t,e,n,r,i,s);for(;l;){nN(e,1)||nk();let t=l;l=l.nextSibling,o(t)}}else if(8&f){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:l}=e;l!==n&&l!==n.replace(/\r\n|\r/g,` +`)&&(nN(e,0)||nk(),e.textContent=t.children)}if(u){if(g||!s||48&c){let t=e.tagName.includes("-");for(let r in u)(g&&(r.endsWith("value")||"indeterminate"===r)||S(r)&&!L(r)||"."===r[0]||t&&!L(r))&&l(e,r,null,u[r],void 0,n)}else if(u.onClick)l(e,"onClick",null,u.onClick,void 0,n);else if(4&c&&tr(u.style))for(let e in u.style)u.style[e]}(a=u&&u.onVnodeBeforeMount)&&rd(a,n,t),d&&tX(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||d||y)&&lX(()=>{a&&rd(a,n,t),y&&h.enter(e),d&&tX(t,null,n,"mounted")},r)}return e.nextSibling},p=(e,t,l,s,o,u,f)=>{f=f||!!t.dynamicChildren;let p=t.children,d=p.length;for(let t=0;t<d;t++){let h=f?p[t]:p[t]=ru(p[t]),g=h.type===lQ;e?(g&&!f&&t+1<d&&ru(p[t+1]).type===lQ&&(a(r(e.data.slice(h.children.length)),l,i(e)),e.data=h.children),e=c(e,h,s,o,u,f)):g&&!h.children?a(h.el=r(""),l):(nN(l,1)||nk(),n(null,h,l,null,s,o,nE(l),u))}return e},d=(e,t,n,l,r,o)=>{let{slotScopeIds:c}=t;c&&(r=r?r.concat(c):c);let f=s(e),d=p(i(e),t,f,n,l,r,o);return d&&nT(d)&&"]"===d.data?i(t.anchor=d):(nk(),a(t.anchor=u("]"),f,d),d)},h=(e,t,l,r,a,u)=>{if(nN(e.parentElement,1)||nk(),t.el=null,u){let t=g(e);for(;;){let n=i(e);if(n&&n!==t)o(n);else break}}let c=i(e),f=s(e);return o(e),n(null,t,f,c,l,r,nE(f),a),l&&(l.vnode.el=t.el,lw(l,t.el)),c},g=(e,t="[",n="]")=>{let l=0;for(;e;)if((e=i(e))&&nT(e)&&(e.data===t&&l++,e.data===n))if(0===l)return i(e);else l--;return e},_=(e,t,n)=>{let l=t.parentNode;l&&l.replaceChild(e,t);let r=n;for(;r;)r.vnode.el===t&&(r.vnode.el=r.subTree.el=e),r=r.parent},m=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tW(),t._vnode=e;return}c(t.firstChild,e,null,null,null),tW(),t._vnode=e},c]}let nO="data-allow-mismatch",nR={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nN(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nO);)e=e.parentElement;let n=e&&e.getAttribute(nO);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(nR[t])}}let nP=G().requestIdleCallback||(e=>setTimeout(e,1)),nM=G().cancelIdleCallback||(e=>clearTimeout(e)),nI=e=>!!e.type.__asyncLoader;function nL(e,t){let{ref:n,props:l,children:r,ce:i}=t.vnode,s=ri(e,l,r);return s.ref=n,s.ce=i,delete t.vnode.ce,s}let nF=e=>e.type.__isKeepAlive;function nj(e,t){let n;if(T(e))return e.some(e=>nj(e,t));if(O(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,M.call(n))&&(e.lastIndex=0,e.test(t))}function nD(e,t){nU(e,"a",t)}function nV(e,t){nU(e,"da",t)}function nU(e,t,n=rv){let l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nH(t,l,n),n){let e=n.parent;for(;e&&e.parent;)nF(e.parent.vnode)&&function(e,t,n,l){let r=nH(t,e,l,!0);nX(()=>{w(l[t],r)},n)}(l,t,n,e),e=e.parent}}function nB(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function n$(e){return 128&e.shapeFlag?e.ssContent:e}function nH(e,t,n=rv,l=!1){if(n){let r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{eS();let r=rm(n),i=tR(t,n,e,l);return r(),eC(),i});return l?r.unshift(i):r.push(i),i}}let nW=e=>(t,n=rv)=>{rS&&"sp"!==e||nH(e,(...e)=>t(...e),n)},nK=nW("bm"),nz=nW("m"),nq=nW("bu"),nG=nW("u"),nJ=nW("bum"),nX=nW("um"),nZ=nW("sp"),nY=nW("rtg"),nQ=nW("rtc");function n0(e,t=rv){nH("ec",e,t)}let n1="components",n2=Symbol.for("v-ndc");function n6(e,t,n=!0,l=!1){let r=tz||rv;if(r){let n=r.type;if(e===n1){let e=rT(n,!1);if(e&&(e===t||e===D(t)||e===B(D(t))))return n}let i=n8(r[e]||n[e],t)||n8(r.appContext[e],t);return!i&&l?n:i}}function n8(e,t){return e&&(e[t]||e[D(t)]||e[B(D(t))])}let n4=e=>e?rb(e)?rE(e):n4(e.parent):null,n3=x(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>n4(e.parent),$root:e=>n4(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>lr(e),$forceUpdate:e=>e.f||(e.f=()=>{tU(e.update)}),$nextTick:e=>e.n||(e.n=tV.bind(e.proxy)),$watch:e=>t2.bind(e)}),n5=(e,t)=>e!==_&&!e.__isScriptSetup&&E(e,t),n9={get({_:e},t){let n,l;if("__v_skip"===t)return!0;let{ctx:r,setupState:i,data:s,props:o,accessCache:a,type:u,appContext:c}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return i[t];case 2:return s[t];case 4:return r[t];case 3:return o[t]}else{if(n5(i,t))return a[t]=1,i[t];if(s!==_&&E(s,t))return a[t]=2,s[t];if(E(o,t))return a[t]=3,o[t];if(r!==_&&E(r,t))return a[t]=4,r[t];ln&&(a[t]=0)}}let f=n3[t];return f?("$attrs"===t&&eN(e.attrs,"get",""),f(e)):(n=u.__cssModules)&&(n=n[t])?n:r!==_&&E(r,t)?(a[t]=4,r[t]):E(l=c.config.globalProperties,t)?l[t]:void 0},set({_:e},t,n){let{data:l,setupState:r,ctx:i}=e;return n5(r,t)?(r[t]=n,!0):l!==_&&E(l,t)?(l[t]=n,!0):!E(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:i,type:s}},o){let a;return!!(n[o]||e!==_&&"$"!==o[0]&&E(e,o)||n5(t,o)||E(i,o)||E(l,o)||E(n3,o)||E(r.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:E(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},n7=x({},n9,{get(e,t){if(t!==Symbol.unscopables)return n9.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!J(t)});function le(e){let t=r_();return t.setupContext||(t.setupContext=rk(t))}function lt(e){return T(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let ln=!0;function ll(e,t,n){tR(T(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function lr(e){let t,n=e.type,{mixins:l,extends:r}=n,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:i.length||l||r?(t={},i.length&&i.forEach(e=>li(t,e,o,!0)),li(t,n,o)):t=n,N(n)&&s.set(n,t),t}function li(e,t,n,l=!1){let{mixins:r,extends:i}=t;for(let s in i&&li(e,i,n,!0),r&&r.forEach(t=>li(e,t,n,!0)),t)if(l&&"expose"===s);else{let l=ls[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}let ls={data:lo,props:lf,emits:lf,methods:lc,computed:lc,beforeCreate:lu,created:lu,beforeMount:lu,mounted:lu,beforeUpdate:lu,updated:lu,beforeDestroy:lu,beforeUnmount:lu,destroyed:lu,unmounted:lu,activated:lu,deactivated:lu,errorCaptured:lu,serverPrefetch:lu,components:lc,directives:lc,watch:function(e,t){if(!e)return t;if(!t)return e;let n=x(Object.create(null),e);for(let l in t)n[l]=lu(e[l],t[l]);return n},provide:lo,inject:function(e,t){return lc(la(e),la(t))}};function lo(e,t){return t?e?function(){return x(A(e)?e.call(this,this):e,A(t)?t.call(this,this):t)}:t:e}function la(e){if(T(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function lu(e,t){return e?[...new Set([].concat(e,t))]:t}function lc(e,t){return e?x(Object.create(null),e,t):t}function lf(e,t){return e?T(e)&&T(t)?[...new Set([...e,...t])]:x(Object.create(null),lt(e),lt(null!=t?t:{})):t}function lp(){return{app:null,config:{isNativeTag:b,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ld=0,lh=null,lg=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${D(t)}Modifiers`]||e[`${U(t)}Modifiers`];function lv(e,t,...n){let l;if(e.isUnmounted)return;let r=e.vnode.props||_,i=n,s=t.startsWith("update:"),o=s&&lg(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>O(e)?e.trim():e)),o.number&&(i=n.map(z)));let a=r[l=$(t)]||r[l=$(D(t))];!a&&s&&(a=r[l=$(U(t))]),a&&tR(a,e,6,i);let u=r[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,tR(u,e,6,i)}}let l_=new WeakMap;function lm(e,t){return!!e&&!!S(t)&&(E(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||E(e,U(t))||E(e,t))}function ly(e){let t,n,{type:l,vnode:r,proxy:i,withProxy:s,propsOptions:[o],slots:a,attrs:u,emit:c,render:f,renderCache:p,props:d,data:h,setupState:g,ctx:_,inheritAttrs:m}=e,y=tG(e);try{if(4&r.shapeFlag){let e=s||i;t=ru(f.call(e,e,p,d,g,h,_)),n=u}else t=ru(l.length>1?l(d,{attrs:u,slots:a,emit:c}):l(d,null)),n=l.props?u:lb(u)}catch(n){l2.length=0,tN(n,e,1),t=ri(l0)}let b=t;if(n&&!1!==m){let e=Object.keys(n),{shapeFlag:t}=b;e.length&&7&t&&(o&&e.some(C)&&(n=lS(n,o)),b=ro(b,n,!1,!0))}return r.dirs&&((b=ro(b,null,!1,!0)).dirs=b.dirs?b.dirs.concat(r.dirs):r.dirs),r.transition&&nv(b,r.transition),t=b,tG(y),t}let lb=e=>{let t;for(let n in e)("class"===n||"style"===n||S(n))&&((t||(t={}))[n]=e[n]);return t},lS=(e,t)=>{let n={};for(let l in e)C(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function lC(e,t,n){let l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let r=0;r<l.length;r++){let i=l[r];if(lx(t,e,i)&&!lm(n,i))return!0}return!1}function lx(e,t,n){let l=e[n],r=t[n];return"style"===n&&N(l)&&N(r)?!en(l,r):l!==r}function lw({vnode:e,parent:t},n){for(;t;){let l=t.subTree;if(l.suspense&&l.suspense.activeBranch===e&&(l.el=e.el),l===e)(e=t.vnode).el=n,t=t.parent;else break}}let lk={},lE=e=>Object.getPrototypeOf(e)===lk;function lT(e,t,n,l){let r,[i,s]=e.propsOptions,o=!1;if(t)for(let a in t){let u;if(L(a))continue;let c=t[a];i&&E(i,u=D(a))?s&&s.includes(u)?(r||(r={}))[u]=c:n[u]=c:lm(e.emitsOptions,a)||a in l&&c===l[a]||(l[a]=c,o=!0)}if(s){let t=ta(n),l=r||_;for(let r=0;r<s.length;r++){let o=s[r];n[o]=lA(i,t,o,l[o],e,!E(l,o))}}return o}function lA(e,t,n,l,r,i){let s=e[n];if(null!=s){let e=E(s,"default");if(e&&void 0===l){let e=s.default;if(s.type!==Function&&!s.skipFactory&&A(e)){let{propsDefaults:i}=r;if(n in i)l=i[n];else{let s=rm(r);l=i[n]=e.call(null,t),s()}}else l=e;r.ce&&r.ce._setProp(n,l)}s[0]&&(i&&!e?l=!1:s[1]&&(""===l||l===U(n))&&(l=!0))}return l}let lO=new WeakMap;function lR(e){return!("$"===e[0]||L(e))}let lN=e=>"_"===e||"_ctx"===e||"$stable"===e,lP=e=>T(e)?e.map(ru):[ru(e)],lM=(e,t,n)=>{if(t._n)return t;let l=tJ((...e)=>lP(t(...e)),n);return l._c=!1,l},lI=(e,t,n)=>{let l=e._ctx;for(let n in e){if(lN(n))continue;let r=e[n];if(A(r))t[n]=lM(n,r,l);else if(null!=r){let e=lP(r);t[n]=()=>e}}},lL=(e,t)=>{let n=lP(t);e.slots.default=()=>n},lF=(e,t,n)=>{for(let l in t)(n||!lN(l))&&(e[l]=t[l])},lj=lX;function lD(e){return lV(e,nA)}function lV(e,t){var n;let l,r;G().__VUE__=!0;let{insert:i,remove:s,patchProp:o,createElement:a,createText:c,createComment:f,setText:p,setElementText:d,parentNode:h,nextSibling:g,setScopeId:b=y,insertStaticContent:S}=e,C=(e,t,n,l=null,r=null,i=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!rt(e,t)&&(l=es(e),et(e,r,i,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:u,ref:c,shapeFlag:f}=t;switch(u){case lQ:w(e,t,n,l);break;case l0:k(e,t,n,l);break;case l1:null==e&&O(t,n,l,s);break;case lY:$(e,t,n,l,r,i,s,o,a);break;default:1&f?R(e,t,n,l,r,i,s,o,a):6&f?H(e,t,n,l,r,i,s,o,a):64&f?u.process(e,t,n,l,r,i,s,o,a,ef):128&f&&u.process(e,t,n,l,r,i,s,o,a,ef)}null!=c&&r?nC(c,e&&e.ref,i,t||e,!t):null==c&&e&&null!=e.ref&&nC(e.ref,null,i,e,!0)},w=(e,t,n,l)=>{if(null==e)i(t.el=c(t.children),n,l);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},k=(e,t,n,l)=>{null==e?i(t.el=f(t.children||""),n,l):t.el=e.el},O=(e,t,n,l)=>{[e.el,e.anchor]=S(e.children,t,n,l,e.el,e.anchor)},R=(e,t,n,l,r,i,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)M(t,n,l,r,i,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),j(e,t,r,i,s,o,a)}finally{n&&n._endPatch()}}},M=(e,t,n,l,r,s,u,c)=>{let f,p,{props:h,shapeFlag:g,transition:_,dirs:m}=e;if(f=e.el=a(e.type,s,h&&h.is,h),8&g?d(f,e.children):16&g&&F(e.children,f,null,l,r,lU(e,s),u,c),m&&tX(e,null,l,"created"),I(f,e,e.scopeId,u,l),h){for(let e in h)"value"===e||L(e)||o(f,e,null,h[e],s,l);"value"in h&&o(f,"value",null,h.value,s),(p=h.onVnodeBeforeMount)&&rd(p,l,e)}m&&tX(e,null,l,"beforeMount");let y=l$(r,_);y&&_.beforeEnter(f),i(f,t,n),((p=h&&h.onVnodeMounted)||y||m)&&lj(()=>{p&&rd(p,l,e),y&&_.enter(f),m&&tX(e,null,l,"mounted")},r)},I=(e,t,n,l,r)=>{if(n&&b(e,n),l)for(let t=0;t<l.length;t++)b(e,l[t]);if(r){let n=r.subTree;if(t===n||lK(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=r.vnode;I(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},F=(e,t,n,l,r,i,s,o,a=0)=>{for(let u=a;u<e.length;u++)C(null,e[u]=o?rc(e[u]):ru(e[u]),t,n,l,r,i,s,o)},j=(e,t,n,l,r,i,s)=>{let a,u=t.el=e.el,{patchFlag:c,dynamicChildren:f,dirs:p}=t;c|=16&e.patchFlag;let h=e.props||_,g=t.props||_;if(n&&lB(n,!1),(a=g.onVnodeBeforeUpdate)&&rd(a,n,t,e),p&&tX(t,e,n,"beforeUpdate"),n&&lB(n,!0),(h.innerHTML&&null==g.innerHTML||h.textContent&&null==g.textContent)&&d(u,""),f?V(e.dynamicChildren,f,u,n,l,lU(t,r),i):s||Z(e,t,u,null,n,l,lU(t,r),i,!1),c>0){if(16&c)B(u,h,g,n,r);else if(2&c&&h.class!==g.class&&o(u,"class",null,g.class,r),4&c&&o(u,"style",h.style,g.style,r),8&c){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let l=e[t],i=h[l],s=g[l];(s!==i||"value"===l)&&o(u,l,i,s,r,n)}}1&c&&e.children!==t.children&&d(u,t.children)}else s||null!=f||B(u,h,g,n,r);((a=g.onVnodeUpdated)||p)&&lj(()=>{a&&rd(a,n,t,e),p&&tX(t,e,n,"updated")},l)},V=(e,t,n,l,r,i,s)=>{for(let o=0;o<t.length;o++){let a=e[o],u=t[o],c=a.el&&(a.type===lY||!rt(a,u)||198&a.shapeFlag)?h(a.el):n;C(a,u,c,null,l,r,i,s,!0)}},B=(e,t,n,l,r)=>{if(t!==n){if(t!==_)for(let i in t)L(i)||i in n||o(e,i,t[i],null,r,l);for(let i in n){if(L(i))continue;let s=n[i],a=t[i];s!==a&&"value"!==i&&o(e,i,a,s,r,l)}"value"in n&&o(e,"value",t.value,n.value,r)}},$=(e,t,n,l,r,s,o,a,u)=>{let f=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:d,dynamicChildren:h,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(i(f,n,l),i(p,n,l),F(t.children||[],n,p,r,s,o,a,u)):d>0&&64&d&&h&&e.dynamicChildren&&e.dynamicChildren.length===h.length?(V(e.dynamicChildren,h,n,r,s,o,a),(null!=t.key||r&&t===r.subTree)&&lH(e,t,!0)):Z(e,t,n,p,r,s,o,a,u)},H=(e,t,n,l,r,i,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?r.ctx.activate(t,n,l,s,a):z(t,n,l,r,i,s,a):q(e,t,a)},z=(e,t,n,l,r,i,s)=>{var o,a,c;let f,p,d,h=(o=e,a=l,c=r,f=o.type,p=(a?a.appContext:o.appContext)||rh,(d={uid:rg++,vnode:o,type:f,parent:a,appContext:p,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ea(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(p.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,l=!1){let r=l?lO:n.propsCache,i=r.get(t);if(i)return i;let s=t.props,o={},a=[],u=!1;if(!A(t)){let r=t=>{u=!0;let[l,r]=e(t,n,!0);x(o,l),r&&a.push(...r)};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}if(!s&&!u)return N(t)&&r.set(t,m),m;if(T(s))for(let e=0;e<s.length;e++){let t=D(s[e]);lR(t)&&(o[t]=_)}else if(s)for(let e in s){let t=D(e);if(lR(t)){let n=s[e],l=o[t]=T(n)||A(n)?{type:n}:x({},n),r=l.type,i=!1,u=!0;if(T(r))for(let e=0;e<r.length;++e){let t=r[e],n=A(t)&&t.name;if("Boolean"===n){i=!0;break}"String"===n&&(u=!1)}else i=A(r)&&"Boolean"===r.name;l[0]=i,l[1]=u,(i||E(l,"default"))&&a.push(t)}}let c=[o,a];return N(t)&&r.set(t,c),c}(f,p),emitsOptions:function e(t,n,l=!1){let r=l?l_:n.emitsCache,i=r.get(t);if(void 0!==i)return i;let s=t.emits,o={},a=!1;if(!A(t)){let r=t=>{let l=e(t,n,!0);l&&(a=!0,x(o,l))};!l&&n.mixins.length&&n.mixins.forEach(r),t.extends&&r(t.extends),t.mixins&&t.mixins.forEach(r)}return s||a?(T(s)?s.forEach(e=>o[e]=null):x(o,s),N(t)&&r.set(t,o),o):(N(t)&&r.set(t,null),null)}(f,p),emit:null,emitted:null,propsDefaults:_,inheritAttrs:f.inheritAttrs,ctx:_,data:_,props:_,attrs:_,slots:_,refs:_,setupState:_,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:d},d.root=a?a.root:d,d.emit=lv.bind(null,d),o.ce&&o.ce(d),e.component=d);if(nF(e)&&(h.ctx.renderer=ef),function(e,t=!1,n=!1){t&&u(t);let{props:l,children:r}=e.vnode,i=rb(e);!function(e,t,n,l=!1){let r={},i=Object.create(lk);for(let n in e.propsDefaults=Object.create(null),lT(e,t,r,i),e.propsOptions[0])n in r||(r[n]=void 0);n?e.props=l?r:tt(r):e.type.props?e.props=r:e.props=i,e.attrs=i}(e,l,i,t);var s=n||t;let o=e.slots=Object.create(lk);if(32&e.vnode.shapeFlag){let e=r._;e?(lF(o,r,s),s&&K(o,"_",e,!0)):lI(r,o)}else r&&lL(e,r);i&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,n9);let{setup:l}=n;if(l){eS();let n=e.setupContext=l.length>1?rk(e):null,r=rm(e),i=tO(l,e,0,[e.props,n]),s=P(i);if(eC(),r(),(s||e.sp)&&!nI(e)&&ny(e),s){if(i.then(ry,ry),t)return i.then(n=>{rC(e,n,t)}).catch(t=>{tN(t,e,0)});e.asyncDep=i}else rC(e,i,t)}else rx(e,t)}(e,t),t&&u(!1)}(h,!1,s),h.asyncDep){if(r&&r.registerDep(h,J,s),!e.el){let l=h.subTree=ri(l0);k(null,l,t,n),e.placeholder=l.el}}else J(h,e,t,n,r,i,s)},q=(e,t,n)=>{let l=t.component=e.component;if(function(e,t,n){let{props:l,children:r,component:i}=e,{props:s,children:o,patchFlag:a}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!r||!!o)&&(!o||!o.$stable)||l!==s&&(l?!s||lC(l,s,u):!!s);if(1024&a)return!0;if(16&a)return l?lC(l,s,u):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(lx(s,l,n)&&!lm(u,n))return!0}}return!1}(e,t,n))if(l.asyncDep&&!l.asyncResolved)return void X(l,t,n);else l.next=t,l.update();else t.el=e.el,l.vnode=t},J=(e,t,n,l,i,s,o)=>{e.scope.on();let a=e.effect=new ec(()=>{if(e.isMounted){let t,{next:n,bu:l,u:r,parent:a,vnode:c}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=c.el,X(e,n,o)),t.asyncDep.then(()=>{lj(()=>{e.isUnmounted||u()},i)});return}}let f=n;lB(e,!1),n?(n.el=c.el,X(e,n,o)):n=c,l&&W(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&rd(t,a,n,c),lB(e,!0);let p=ly(e),d=e.subTree;e.subTree=p,C(d,p,h(d.el),es(d),e,i,s),n.el=p.el,null===f&&lw(e,p.el),r&&lj(r,i),(t=n.props&&n.props.onVnodeUpdated)&&lj(()=>rd(t,a,n,c),i)}else{let o,{el:a,props:u}=t,{bm:c,m:f,parent:p,root:d,type:h}=e,g=nI(t);if(lB(e,!1),c&&W(c),!g&&(o=u&&u.onVnodeBeforeMount)&&rd(o,p,t),lB(e,!0),a&&r){let t=()=>{e.subTree=ly(e),r(a,e.subTree,e,i,null)};g&&h.__asyncHydrate?h.__asyncHydrate(a,e,t):t()}else{d.ce&&d.ce._hasShadowRoot()&&d.ce._injectChildStyle(h);let r=e.subTree=ly(e);C(null,r,n,l,e,i,s),t.el=r.el}if(f&&lj(f,i),!g&&(o=u&&u.onVnodeMounted)){let e=t;lj(()=>rd(o,p,e),i)}(256&t.shapeFlag||p&&nI(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&lj(e.a,i),e.isMounted=!0,t=n=l=null}});e.scope.off();let u=e.update=a.run.bind(a),c=e.job=a.runIfDirty.bind(a);c.i=e,c.id=e.uid,a.scheduler=()=>tU(c),lB(e,!0),u()},X=(e,t,n)=>{t.component=e;let l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){let{props:r,attrs:i,vnode:{patchFlag:s}}=e,o=ta(r),[a]=e.propsOptions,u=!1;if((l||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){let s=n[l];if(lm(e.emitsOptions,s))continue;let c=t[s];if(a)if(E(i,s))c!==i[s]&&(i[s]=c,u=!0);else{let t=D(s);r[t]=lA(a,o,t,c,e,!1)}else c!==i[s]&&(i[s]=c,u=!0)}}}else{let l;for(let s in lT(e,t,r,i)&&(u=!0),o)t&&(E(t,s)||(l=U(s))!==s&&E(t,l))||(a?n&&(void 0!==n[s]||void 0!==n[l])&&(r[s]=lA(a,o,s,void 0,e,!0)):delete r[s]);if(i!==o)for(let e in i)t&&E(t,e)||(delete i[e],u=!0)}u&&eP(e.attrs,"set","")}(e,t.props,l,n),((e,t,n)=>{let{vnode:l,slots:r}=e,i=!0,s=_;if(32&l.shapeFlag){let e=t._;e?n&&1===e?i=!1:lF(r,t,n):(i=!t.$stable,lI(t,r)),s=t}else t&&(lL(e,t),s={default:1});if(i)for(let e in r)lN(e)||null!=s[e]||delete r[e]})(e,t.children,n),eS(),tH(e),eC()},Z=(e,t,n,l,r,i,s,o,a=!1)=>{let u=e&&e.children,c=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void Q(u,f,n,l,r,i,s,o,a);else if(256&p)return void Y(u,f,n,l,r,i,s,o,a)}8&h?(16&c&&ei(u,r,i),f!==u&&d(n,f)):16&c?16&h?Q(u,f,n,l,r,i,s,o,a):ei(u,r,i,!0):(8&c&&d(n,""),16&h&&F(f,n,l,r,i,s,o,a))},Y=(e,t,n,l,r,i,s,o,a)=>{let u;e=e||m,t=t||m;let c=e.length,f=t.length,p=Math.min(c,f);for(u=0;u<p;u++){let l=t[u]=a?rc(t[u]):ru(t[u]);C(e[u],l,n,null,r,i,s,o,a)}c>f?ei(e,r,i,!0,!1,p):F(t,n,l,r,i,s,o,a,p)},Q=(e,t,n,l,r,i,s,o,a)=>{let u=0,c=t.length,f=e.length-1,p=c-1;for(;u<=f&&u<=p;){let l=e[u],c=t[u]=a?rc(t[u]):ru(t[u]);if(rt(l,c))C(l,c,n,null,r,i,s,o,a);else break;u++}for(;u<=f&&u<=p;){let l=e[f],u=t[p]=a?rc(t[p]):ru(t[p]);if(rt(l,u))C(l,u,n,null,r,i,s,o,a);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,f=e<c?t[e].el:l;for(;u<=p;)C(null,t[u]=a?rc(t[u]):ru(t[u]),n,f,r,i,s,o,a),u++}}else if(u>p)for(;u<=f;)et(e[u],r,i,!0),u++;else{let d,h=u,g=u,_=new Map;for(u=g;u<=p;u++){let e=t[u]=a?rc(t[u]):ru(t[u]);null!=e.key&&_.set(e.key,u)}let y=0,b=p-g+1,S=!1,x=0,w=Array(b);for(u=0;u<b;u++)w[u]=0;for(u=h;u<=f;u++){let l,c=e[u];if(y>=b){et(c,r,i,!0);continue}if(null!=c.key)l=_.get(c.key);else for(d=g;d<=p;d++)if(0===w[d-g]&&rt(c,t[d])){l=d;break}void 0===l?et(c,r,i,!0):(w[l-g]=u+1,l>=x?x=l:S=!0,C(c,t[l],n,null,r,i,s,o,a),y++)}let k=S?function(e){let t,n,l,r,i,s=e.slice(),o=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(e[n=o[o.length-1]]<a){s[t]=n,o.push(t);continue}for(l=0,r=o.length-1;l<r;)e[o[i=l+r>>1]]<a?l=i+1:r=i;a<e[o[l]]&&(l>0&&(s[t]=o[l-1]),o[l]=t)}}for(l=o.length,r=o[l-1];l-- >0;)o[l]=r,r=s[r];return o}(w):m;for(d=k.length-1,u=b-1;u>=0;u--){let e=g+u,f=t[e],p=t[e+1],h=e+1<c?p.el||function e(t){if(t.placeholder)return t.placeholder;let n=t.component;return n?e(n.subTree):null}(p):l;0===w[u]?C(null,f,n,h,r,i,s,o,a):S&&(d<0||u!==k[d]?ee(f,n,h,2):d--)}}},ee=(e,t,n,l,r=null)=>{let{el:o,type:a,transition:u,children:c,shapeFlag:f}=e;if(6&f)return void ee(e.component.subTree,t,n,l);if(128&f)return void e.suspense.move(t,n,l);if(64&f)return void a.move(e,t,n,ef);if(a===lY){i(o,t,n);for(let e=0;e<c.length;e++)ee(c[e],t,n,l);i(e.anchor,t,n);return}if(a===l1)return void(({el:e,anchor:t},n,l)=>{let r;for(;e&&e!==t;)r=g(e),i(e,n,l),e=r;i(t,n,l)})(e,t,n);if(2!==l&&1&f&&u)if(0===l)u.beforeEnter(o),i(o,t,n),lj(()=>u.enter(o),r);else{let{leave:l,delayLeave:r,afterLeave:a}=u,c=()=>{e.ctx.isUnmounted?s(o):i(o,t,n)},f=()=>{o._isLeaving&&o[nr](!0),l(o,()=>{c(),a&&a()})};r?r(o,c,f):f()}else i(o,t,n)},et=(e,t,n,l=!1,r=!1)=>{let i,{type:s,props:o,ref:a,children:u,dynamicChildren:c,shapeFlag:f,patchFlag:p,dirs:d,cacheIndex:h}=e;if(-2===p&&(r=!1),null!=a&&(eS(),nC(a,null,n,e,!0),eC()),null!=h&&(t.renderCache[h]=void 0),256&f)return void t.ctx.deactivate(e);let g=1&f&&d,_=!nI(e);if(_&&(i=o&&o.onVnodeBeforeUnmount)&&rd(i,t,e),6&f)er(e.component,n,l);else{if(128&f)return void e.suspense.unmount(n,l);g&&tX(e,null,t,"beforeUnmount"),64&f?e.type.remove(e,t,n,ef,l):c&&!c.hasOnce&&(s!==lY||p>0&&64&p)?ei(c,t,n,!1,!0):(s===lY&&384&p||!r&&16&f)&&ei(u,t,n),l&&en(e)}(_&&(i=o&&o.onVnodeUnmounted)||g)&&lj(()=>{i&&rd(i,t,e),g&&tX(e,null,t,"unmounted")},n)},en=e=>{let{type:t,el:n,anchor:l,transition:r}=e;if(t===lY)return void el(n,l);if(t===l1)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let i=()=>{s(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){let{leave:t,delayLeave:l}=r,s=()=>t(n,i);l?l(e.el,i,s):s()}else i()},el=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},er=(e,t,n)=>{let{bum:l,scope:r,job:i,subTree:s,um:o,m:a,a:u}=e;lW(a),lW(u),l&&W(l),r.stop(),i&&(i.flags|=8,et(s,e,t,n)),o&&lj(o,t),lj(()=>{e.isUnmounted=!0},t)},ei=(e,t,n,l=!1,r=!1,i=0)=>{for(let s=i;s<e.length;s++)et(e[s],t,n,l,r)},es=e=>{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[t8];return n?g(n):t},eo=!1,eu=(e,t,n)=>{let l;null==e?t._vnode&&(et(t._vnode,null,null,!0),l=t._vnode.component):C(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tH(l),tW(),eo=!1)},ef={p:C,um:et,m:ee,r:en,mt:z,mc:F,pc:Z,pbc:V,n:es,o:e};return t&&([l,r]=t(ef)),{render:eu,hydrate:l,createApp:(n=l,function(e,t=null){A(e)||(e=x({},e)),null==t||N(t)||(t=null);let l=lp(),r=new WeakSet,i=[],s=!1,o=l.app={_uid:ld++,_component:e,_props:t,_container:null,_context:l,_instance:null,version:rN,get config(){return l.config},set config(v){},use:(e,...t)=>(r.has(e)||(e&&A(e.install)?(r.add(e),e.install(o,...t)):A(e)&&(r.add(e),e(o,...t))),o),mixin:e=>(l.mixins.includes(e)||l.mixins.push(e),o),component:(e,t)=>t?(l.components[e]=t,o):l.components[e],directive:(e,t)=>t?(l.directives[e]=t,o):l.directives[e],mount(r,i,a){if(!s){let u=o._ceVNode||ri(e,t);return u.appContext=l,!0===a?a="svg":!1===a&&(a=void 0),i&&n?n(u,r):eu(u,r,a),s=!0,o._container=r,r.__vue_app__=o,rE(u.component)}},onUnmount(e){i.push(e)},unmount(){s&&(tR(i,o._instance,16),eu(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(l.provides[e]=t,o),runWithContext(e){let t=lh;lh=o;try{return e()}finally{lh=t}}};return o})}}function lU({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function lB({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function l$(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function lH(e,t,n=!1){let l=e.children,r=t.children;if(T(l)&&T(r))for(let e=0;e<l.length;e++){let t=l[e],i=r[e];1&i.shapeFlag&&!i.dynamicChildren&&((i.patchFlag<=0||32===i.patchFlag)&&((i=r[e]=rc(r[e])).el=t.el),n||-2===i.patchFlag||lH(t,i)),i.type===lQ&&(-1===i.patchFlag&&(i=r[e]=rc(i)),i.el=t.el),i.type!==l0||i.el||(i.el=t.el)}}function lW(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}let lK=e=>e.__isSuspense,lz=0;function lq(e,t){let n=e.props&&e.props[t];A(n)&&n()}function lG(e,t,n,l,r,i,s,o,a,u,c=!1){var f;let p,d,{p:h,m:g,um:_,n:m,o:{parentNode:y,remove:b}}=u,S=null!=(p=(f=e).props&&f.props.suspensible)&&!1!==p;S&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let C=e.props?q(e.props.timeout):void 0,x=i,w={vnode:e,parent:t,parentComponent:n,namespace:s,container:l,hiddenContainer:r,deps:0,pendingId:lz++,timeout:"number"==typeof C?C:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:l,activeBranch:r,pendingBranch:s,pendingId:o,effects:a,parentComponent:u,container:c,isInFallback:f}=w,p=!1;w.isHydrating?w.isHydrating=!1:!e&&((p=r&&s.transition&&"out-in"===s.transition.mode)&&(r.transition.afterLeave=()=>{o===w.pendingId&&(g(s,c,i===x?m(r):i,0),t$(a),f&&l.ssFallback&&(l.ssFallback.el=null))}),r&&(y(r.el)===c&&(i=m(r)),_(r,u,w,!0),!p&&f&&l.ssFallback&&lj(()=>l.ssFallback.el=null,w)),p||g(s,c,i,0)),lZ(w,s),w.pendingBranch=null,w.isInFallback=!1;let h=w.parent,b=!1;for(;h;){if(h.pendingBranch){h.effects.push(...a),b=!0;break}h=h.parent}b||p||t$(a),w.effects=[],S&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),lq(l,"onResolve")},fallback(e){if(!w.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:l,container:r,namespace:i}=w;lq(t,"onFallback");let s=m(n),u=()=>{w.isInFallback&&(h(null,e,r,s,l,null,i,o,a),lZ(w,e))},c=e.transition&&"out-in"===e.transition.mode;c&&(n.transition.afterLeave=u),w.isInFallback=!0,_(n,l,null,!0),c||u()},move(e,t,n){w.activeBranch&&g(w.activeBranch,e,t,n),w.container=e},next:()=>w.activeBranch&&m(w.activeBranch),registerDep(e,t,n){let l=!!w.pendingBranch;l&&w.deps++;let r=e.vnode.el;e.asyncDep.catch(t=>{tN(t,e,0)}).then(i=>{if(e.isUnmounted||w.isUnmounted||w.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;rC(e,i,!1),r&&(o.el=r);let a=!r&&e.subTree.el;t(e,o,y(r||e.subTree.el),r?null:m(e.subTree),w,s,n),a&&(o.placeholder=null,b(a)),lw(e,o.el),l&&0==--w.deps&&w.resolve()})},unmount(e,t){w.isUnmounted=!0,w.activeBranch&&_(w.activeBranch,n,e,t),w.pendingBranch&&_(w.pendingBranch,n,e,t)}};return w}function lJ(e){let t;if(A(e)){let n=l3&&e._c;n&&(e._d=!1,l8()),e=e(),n&&(e._d=!0,t=l6,l4())}return T(e)&&(e=function(e,t=!0){let n;for(let t=0;t<e.length;t++){let l=e[t];if(!re(l))return;if(l.type!==l0||"v-if"===l.children)if(n)return;else n=l}return n}(e)),e=ru(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function lX(e,t){t&&t.pendingBranch?T(e)?t.effects.push(...e):t.effects.push(e):t$(e)}function lZ(e,t){e.activeBranch=t;let{vnode:n,parentComponent:l}=e,r=t.el;for(;!r&&t.component;)r=(t=t.component.subTree).el;n.el=r,l&&l.subTree===n&&(l.vnode.el=r,lw(l,r))}let lY=Symbol.for("v-fgt"),lQ=Symbol.for("v-txt"),l0=Symbol.for("v-cmt"),l1=Symbol.for("v-stc"),l2=[],l6=null;function l8(e=!1){l2.push(l6=e?null:[])}function l4(){l2.pop(),l6=l2[l2.length-1]||null}let l3=1;function l5(e,t=!1){l3+=e,e<0&&l6&&t&&(l6.hasOnce=!0)}function l9(e){return e.dynamicChildren=l3>0?l6||m:null,l4(),l3>0&&l6&&l6.push(e),e}function l7(e,t,n,l,r){return l9(ri(e,t,n,l,r,!0))}function re(e){return!!e&&!0===e.__v_isVNode}function rt(e,t){return e.type===t.type&&e.key===t.key}let rn=({key:e})=>null!=e?e:null,rl=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?O(e)||tp(e)||A(e)?{i:tz,r:e,k:t,f:!!n}:e:null);function rr(e,t=null,n=null,l=0,r=null,i=+(e!==lY),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&rn(t),ref:t&&rl(t),scopeId:tq,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:l,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:tz};return o?(rf(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=O(n)?8:16),l3>0&&!s&&l6&&(a.patchFlag>0||6&i)&&32!==a.patchFlag&&l6.push(a),a}let ri=function(e,t=null,n=null,l=0,r=null,i=!1){var s;if(e&&e!==n2||(e=l0),re(e)){let l=ro(e,t,!0);return n&&rf(l,n),l3>0&&!i&&l6&&(6&l.shapeFlag?l6[l6.indexOf(e)]=l:l6.push(l)),l.patchFlag=-2,l}if(A(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=rs(t);e&&!O(e)&&(t.class=ee(e)),N(n)&&(to(n)&&!T(n)&&(n=x({},n)),t.style=X(n))}let o=O(e)?1:lK(e)?128:e.__isTeleport?64:N(e)?4:2*!!A(e);return rr(e,t,n,l,r,o,i,!0)};function rs(e){return e?to(e)||lE(e)?x({},e):e:null}function ro(e,t,n=!1,l=!1){let{props:r,ref:i,patchFlag:s,children:o,transition:a}=e,u=t?rp(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&rn(u),ref:t&&t.ref?n&&i?T(i)?i.concat(rl(t)):[i,rl(t)]:rl(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==lY?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ro(e.ssContent),ssFallback:e.ssFallback&&ro(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&l&&nv(c,a.clone(c)),c}function ra(e=" ",t=0){return ri(lQ,null,e,t)}function ru(e){return null==e||"boolean"==typeof e?ri(l0):T(e)?ri(lY,null,e.slice()):re(e)?rc(e):ri(lQ,null,String(e))}function rc(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ro(e)}function rf(e,t){let n=0,{shapeFlag:l}=e;if(null==t)t=null;else if(T(t))n=16;else if("object"==typeof t)if(65&l){let n=t.default;n&&(n._c&&(n._d=!1),rf(e,n()),n._c&&(n._d=!0));return}else{n=32;let l=t._;l||lE(t)?3===l&&tz&&(1===tz.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=tz}else A(t)?(t={default:t,_ctx:tz},n=32):(t=String(t),64&l?(n=16,t=[ra(t)]):n=8);e.children=t,e.shapeFlag|=n}function rp(...e){let t={};for(let n=0;n<e.length;n++){let l=e[n];for(let e in l)if("class"===e)t.class!==l.class&&(t.class=ee([t.class,l.class]));else if("style"===e)t.style=X([t.style,l.style]);else if(S(e)){let n=t[e],r=l[e];r&&n!==r&&!(T(n)&&n.includes(r))&&(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=l[e])}return t}function rd(e,t,n,l=null){tR(e,t,7,[n,l])}let rh=lp(),rg=0,rv=null,r_=()=>rv||tz;a=e=>{rv=e},u=e=>{rS=e};let rm=e=>{let t=rv;return a(e),e.scope.on(),()=>{e.scope.off(),a(t)}},ry=()=>{rv&&rv.scope.off(),a(null)};function rb(e){return 4&e.vnode.shapeFlag}let rS=!1;function rC(e,t,n){A(t)?e.render=t:N(t)&&(e.setupState=ty(t)),rx(e,n)}function rx(e,t,n){let l=e.type;if(!e.render){if(!t&&c&&!l.render){let t=l.template||lr(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:i,compilerOptions:s}=l,o=x(x({isCustomElement:n,delimiters:i},r),s);l.render=c(t,o)}}e.render=l.render||y,f&&f(e)}{let t=rm(e);eS();try{!function(e){let t=lr(e),n=e.proxy,l=e.ctx;ln=!1,t.beforeCreate&&ll(t.beforeCreate,e,"bc");let{data:r,computed:i,methods:s,watch:o,provide:a,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:d,updated:h,activated:g,deactivated:_,beforeUnmount:m,unmounted:b,render:S,renderTracked:C,renderTriggered:x,errorCaptured:w,serverPrefetch:k,expose:E,inheritAttrs:R,components:P,directives:M}=t;if(u&&function(e,t,n=y){for(let n in T(e)&&(e=la(e)),e){let l,r=e[n];tp(l=N(r)?"default"in r?tY(r.from||n,r.default,!0):tY(r.from||n):tY(r))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e}):t[n]=l}}(u,l,null),s)for(let e in s){let t=s[e];A(t)&&(l[e]=t.bind(n))}if(r){let t=r.call(n,n);N(t)&&(e.data=te(t))}if(ln=!0,i)for(let e in i){let t=i[e],r=A(t)?t.bind(n,n):A(t.get)?t.get.bind(n,n):y,s=rA({get:r,set:!A(t)&&A(t.set)?t.set.bind(n):y});Object.defineProperty(l,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,l,r){let i=r.includes(".")?t6(l,r):()=>l[r];if(O(t)){let e=n[t];A(e)&&t1(i,e,void 0)}else if(A(t))t1(i,t.bind(l),void 0);else if(N(t))if(T(t))t.forEach(t=>e(t,n,l,r));else{let e=A(t.handler)?t.handler.bind(l):n[t.handler];A(e)&&t1(i,e,t)}}(o[e],l,n,e);if(a){let e=A(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{tZ(t,e[t])})}function I(e,t){T(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(c&&ll(c,e,"c"),I(nK,f),I(nz,p),I(nq,d),I(nG,h),I(nD,g),I(nV,_),I(n0,w),I(nQ,C),I(nY,x),I(nJ,m),I(nX,b),I(nZ,k),T(E))if(E.length){let t=e.exposed||(e.exposed={});E.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===y&&(e.render=S),null!=R&&(e.inheritAttrs=R),P&&(e.components=P),M&&(e.directives=M)}(e)}finally{eC(),t()}}}let rw={get:(e,t)=>(eN(e,"get",""),e[t])};function rk(e){return{attrs:new Proxy(e.attrs,rw),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function rE(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ty(tu(e.exposed)),{get:(t,n)=>n in t?t[n]:n in n3?n3[n](e):void 0,has:(e,t)=>t in e||t in n3})):e.proxy}function rT(e,t=!0){return A(e)?e.displayName||e.name:e.name||t&&e.__name}let rA=(e,t)=>(function(e,t=!1){let n,l;return A(e)?n=e:(n=e.get,l=e.set),new tw(n,l,t)})(e,rS);function rO(e,t,n){try{l5(-1);let l=arguments.length;if(2!==l)return l>3?n=Array.prototype.slice.call(arguments,2):3===l&&re(n)&&(n=[n]),ri(e,t,n);if(!N(t)||T(t))return ri(e,null,t);if(re(t))return ri(e,null,[t]);return ri(e,t)}finally{l5(1)}}function rR(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(H(n[e],t[e]))return!1;return l3>0&&l6&&l6.push(e),!0}let rN="3.5.28",rP="u">typeof window&&window.trustedTypes;if(rP)try{h=rP.createPolicy("vue",{createHTML:e=>e})}catch(e){}let rM=h?e=>h.createHTML(e):e=>e,rI="u">typeof document?document:null,rL=rI&&rI.createElement("template"),rF={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{let r="svg"===t?rI.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?rI.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?rI.createElement(e,{is:n}):rI.createElement(e);return"select"===e&&l&&null!=l.multiple&&r.setAttribute("multiple",l.multiple),r},createText:e=>rI.createTextNode(e),createComment:e=>rI.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>rI.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,l,r,i){let s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{rL.innerHTML=rM("svg"===l?`<svg>${e}</svg>`:"mathml"===l?`<math>${e}</math>`:e);let r=rL.content;if("svg"===l||"mathml"===l){let e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rj="transition",rD="animation",rV=Symbol("_vtc"),rU={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},rB=x({},na,rU),r$=((t=(e,{slots:t})=>rO(nf,rK(e),t)).displayName="Transition",t.props=rB,t),rH=(e,t=[])=>{T(e)?e.forEach(e=>e(...t)):e&&e(...t)},rW=e=>!!e&&(T(e)?e.some(e=>e.length>1):e.length>1);function rK(e){let t={};for(let n in e)n in rU||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:l,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:u=s,appearToClass:c=o,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;{if(N(e))return[function(e){return q(e)}(e.enter),function(e){return q(e)}(e.leave)];let t=function(e){return q(e)}(e);return[t,t]}}(r),g=h&&h[0],_=h&&h[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:b,onLeave:S,onLeaveCancelled:C,onBeforeAppear:w=m,onAppear:k=y,onAppearCancelled:E=b}=t,T=(e,t,n,l)=>{e._enterCancelled=l,rq(e,t?c:o),rq(e,t?u:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,rq(e,f),rq(e,d),rq(e,p),t&&t()},O=e=>(t,n)=>{let r=e?k:y,s=()=>T(t,e,n);rH(r,[t,s]),rG(()=>{rq(t,e?a:i),rz(t,e?c:o),rW(r)||rX(t,l,g,s)})};return x(t,{onBeforeEnter(e){rH(m,[e]),rz(e,i),rz(e,s)},onBeforeAppear(e){rH(w,[e]),rz(e,a),rz(e,u)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);rz(e,f),e._enterCancelled?(rz(e,p),r0(e)):(r0(e),rz(e,p)),rG(()=>{e._isLeaving&&(rq(e,f),rz(e,d),rW(S)||rX(e,l,_,n))}),rH(S,[e,n])},onEnterCancelled(e){T(e,!1,void 0,!0),rH(b,[e])},onAppearCancelled(e){T(e,!0,void 0,!0),rH(E,[e])},onLeaveCancelled(e){A(e),rH(C,[e])}})}function rz(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[rV]||(e[rV]=new Set)).add(t)}function rq(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[rV];n&&(n.delete(t),n.size||(e[rV]=void 0))}function rG(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let rJ=0;function rX(e,t,n,l){let r=e._endId=++rJ,i=()=>{r===e._endId&&l()};if(null!=n)return setTimeout(i,n);let{type:s,timeout:o,propCount:a}=rZ(e,t);if(!s)return l();let u=s+"end",c=0,f=()=>{e.removeEventListener(u,p),i()},p=t=>{t.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},o+1),e.addEventListener(u,p)}function rZ(e,t){let n=window.getComputedStyle(e),l=e=>(n[e]||"").split(", "),r=l(`${rj}Delay`),i=l(`${rj}Duration`),s=rY(r,i),o=l(`${rD}Delay`),a=l(`${rD}Duration`),u=rY(o,a),c=null,f=0,p=0;t===rj?s>0&&(c=rj,f=s,p=i.length):t===rD?u>0&&(c=rD,f=u,p=a.length):p=(c=(f=Math.max(s,u))>0?s>u?rj:rD:null)?c===rj?i.length:a.length:0;let d=c===rj&&/\b(?:transform|all)(?:,|$)/.test(l(`${rj}Property`).toString());return{type:c,timeout:f,propCount:p,hasTransform:d}}function rY(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>rQ(t)+rQ(e[n])))}function rQ(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function r0(e){return(e?e.ownerDocument:document).body.offsetHeight}let r1=Symbol("_vod"),r2=Symbol("_vsh");function r6(e,t){e.style.display=t?e[r1]:"none",e[r2]=!t}let r8=Symbol("");function r4(e,t){if(1===e.nodeType){let l=e.style,r="";for(let e in t){var n;let i=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);l.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}l[r8]=r}}let r3=/(?:^|;)\s*display\s*:/,r5=/\s*!important$/;function r9(e,t,n){if(T(n))n.forEach(n=>r9(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let l=function(e,t){let n=ie[t];if(n)return n;let l=D(t);if("filter"!==l&&l in e)return ie[t]=l;l=B(l);for(let n=0;n<r7.length;n++){let r=r7[n]+l;if(r in e)return ie[t]=r}return t}(e,t);r5.test(n)?e.setProperty(U(l),n.replace(r5,""),"important"):e[l]=n}}let r7=["Webkit","Moz","ms"],ie={},it="http://www.w3.org/1999/xlink";function il(e,t,n,l,r,i=et(t)){if(l&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(it,t.slice(6,t.length)):e.setAttributeNS(it,t,n);else null==n||i&&!(n||""===n)?e.removeAttribute(t):e.setAttribute(t,i?"":R(n)?String(n):n)}function ir(e,t,n,l,r){if("innerHTML"===t||"textContent"===t){null!=n&&(e[t]="innerHTML"===t?rM(n):n);return}let i=e.tagName;if("value"===t&&"PROGRESS"!==i&&!i.includes("-")){let l="OPTION"===i?e.getAttribute("value")||"":e.value,r=null==n?"checkbox"===e.type?"on":"":String(n);l===r&&"_value"in e||(e.value=r),null==n&&e.removeAttribute(t),e._value=n;return}let s=!1;if(""===n||null==n){let l=typeof e[t];if("boolean"===l){var o;n=!!(o=n)||""===o}else null==n&&"string"===l?(n="",s=!0):"number"===l&&(n=0,s=!0)}try{e[t]=n}catch(e){}s&&e.removeAttribute(r||t)}function ii(e,t,n,l){e.addEventListener(t,n,l)}let is=Symbol("_vei"),io=/(?:Once|Passive|Capture)$/,ia=0,iu=Promise.resolve(),ic=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),ip=(e,t,n,l,r,i)=>{let s="svg"===r;if("class"===t){var o;let t;o=l,(t=e[rV])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let l=e.style,r=O(n),i=!1;if(n&&!r){if(t)if(O(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&r9(l,t,"")}else for(let e in t)null==n[e]&&r9(l,e,"");for(let e in n)"display"===e&&(i=!0),r9(l,e,n[e])}else if(r){if(t!==n){let e=l[r8];e&&(n+=";"+e),l.cssText=n,i=r3.test(n)}}else t&&e.removeAttribute("style");r1 in e&&(e[r1]=i?l.display:"",e[r2]&&(l.display="none"))}(e,n,l):S(t)?C(t)||function(e,t,n,l=null){let r=e[is]||(e[is]={}),i=r[t];if(n&&i)i.value=n;else{let[a,u]=function(e){let t;if(io.test(e)){let n;for(t={};n=e.match(io);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):U(e.slice(2)),t]}(t);if(n){var s,o;let i;ii(e,a,r[t]=(s=n,o=l,(i=e=>{if(e._vts){if(e._vts<=i.attached)return}else e._vts=Date.now();tR(function(e,t){if(!T(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,i.value),o,5,[e])}).value=s,i.attached=ia||(iu.then(()=>ia=0),ia=Date.now()),i),u)}else i&&(e.removeEventListener(a,i,u),r[t]=void 0)}}(e,t,l,i):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,l){if(l)return!!("innerHTML"===t||"textContent"===t||t in e&&ic(t)&&A(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(ic(t)&&O(n))&&t in e}(e,t,l,s))?e._isVueCE&&(/[A-Z]/.test(t)||!O(l))?ir(e,D(t),l,i,t):("true-value"===t?e._trueValue=l:"false-value"===t&&(e._falseValue=l),il(e,t,l,s)):(ir(e,t,l),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||il(e,t,l,s,i,"value"!==t))},id={};function ih(e,t,n){let l,r=nm(e,t);"[object Object]"===(l=r,M.call(l))&&(r=x({},r,t));class i extends iv{constructor(e){super(r,e,n)}}return i.def=r,i}let ig="u">typeof HTMLElement?HTMLElement:class{};class iv extends ig{constructor(e,t={},n=iG){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==iG?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(x({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof iv){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tV(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:l,styles:r}=e;if(l&&!T(l))for(let e in l){let t=l[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=q(this._props[e])),(n||(n=Object.create(null)))[D(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(r),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)E(this,e)||Object.defineProperty(this,e,{get:()=>t_(t[e])})}_resolveProps(e){let{props:t}=e,n=T(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(D))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):id,l=D(e);t&&this._numberProps&&this._numberProps[l]&&(n=q(n)),this._setProp(l,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,l=!1){if(t!==this._props[e]&&(this._dirty=!0,t===id?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),l&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(U(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(U(e),t+""):t||this.removeAttribute(U(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),iq(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ri(this._def,x(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],M.call(n))?x({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),U(e)!==e&&t(U(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let l=document.createElement("style");n&&l.setAttribute("nonce",n),l.textContent=e[t],this.shadowRoot.prepend(l)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let l=e[n],r=l.getAttribute("name")||"default",i=this._slots[r],s=l.parentNode;if(i)for(let e of i){if(t&&1===e.nodeType){let n,l=t+"-s",r=document.createTreeWalker(e,1);for(e.setAttribute(l,"");n=r.nextNode();)n.setAttribute(l,"")}s.insertBefore(e,l)}else for(;l.firstChild;)s.insertBefore(l.firstChild,l);s.removeChild(l)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll("slot");for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e){this._applyStyles(e.styles,e)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return!1!==this._def.shadowRoot}_removeChildStyle(e){}}function i_(e){let t=r_(),n=t&&t.ce;return n||null}let im=new WeakMap,iy=new WeakMap,ib=Symbol("_moveCb"),iS=Symbol("_enterCb"),iC=(n={name:"TransitionGroup",props:x({},rB,{tag:String,moveClass:String}),setup(e,{slots:t}){let n,l,r=r_(),i=ns();return nG(()=>{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let l=e.cloneNode(),r=e[rV];r&&r.forEach(e=>{e.split(/\s+/).forEach(e=>e&&l.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&l.classList.add(e)),l.style.display="none";let i=1===t.nodeType?t:t.parentNode;i.appendChild(l);let{hasTransform:s}=rZ(l);return i.removeChild(l),s}(n[0].el,r.vnode.el,t)){n=[];return}n.forEach(ix),n.forEach(iw);let l=n.filter(ik);r0(r.vnode.el),l.forEach(e=>{let n=e.el,l=n.style;rz(n,t),l.transform=l.webkitTransform=l.transitionDuration="";let r=n[ib]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",r),n[ib]=null,rq(n,t))};n.addEventListener("transitionend",r)}),n=[]}),()=>{let s=ta(e),o=rK(s),a=s.tag||lY;if(n=[],l)for(let e=0;e<l.length;e++){let t=l[e];t.el&&t.el instanceof Element&&(n.push(t),nv(t,nd(t,o,i,r)),im.set(t,iE(t.el)))}l=t.default?n_(t.default()):[];for(let e=0;e<l.length;e++){let t=l[e];null!=t.key&&nv(t,nd(t,o,i,r))}return ri(a,null,l)}}},delete n.props.mode,n);function ix(e){let t=e.el;t[ib]&&t[ib](),t[iS]&&t[iS]()}function iw(e){iy.set(e,iE(e.el))}function ik(e){let t=im.get(e),n=iy.get(e),l=t.left-n.left,r=t.top-n.top;if(l||r){let t=e.el,n=t.style,i=t.getBoundingClientRect(),s=1,o=1;return t.offsetWidth&&(s=i.width/t.offsetWidth),t.offsetHeight&&(o=i.height/t.offsetHeight),Number.isFinite(s)&&0!==s||(s=1),Number.isFinite(o)&&0!==o||(o=1),.01>Math.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${l/s}px,${r/o}px)`,n.transitionDuration="0s",e}}function iE(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let iT=e=>{let t=e.props["onUpdate:modelValue"]||!1;return T(t)?e=>W(t,e):t};function iA(e){e.target.composing=!0}function iO(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let iR=Symbol("_assign");function iN(e,t,n){return t&&(e=e.trim()),n&&(e=z(e)),e}let iP={created(e,{modifiers:{lazy:t,trim:n,number:l}},r){e[iR]=iT(r);let i=l||r.props&&"number"===r.props.type;ii(e,t?"change":"input",t=>{t.target.composing||e[iR](iN(e.value,n,i))}),(n||i)&&ii(e,"change",()=>{e.value=iN(e.value,n,i)}),t||(ii(e,"compositionstart",iA),ii(e,"compositionend",iO),ii(e,"change",iO))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:l,trim:r,number:i}},s){if(e[iR]=iT(s),e.composing)return;let o=(i||"number"===e.type)&&!/^0\d/.test(e.value)?z(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(l&&t===n||r&&e.value.trim()===a))return;e.value=a}}},iM={deep:!0,created(e,t,n){e[iR]=iT(n),ii(e,"change",()=>{let t=e._modelValue,n=iD(e),l=e.checked,r=e[iR];if(T(t)){let e=el(t,n),i=-1!==e;if(l&&!i)r(t.concat(n));else if(!l&&i){let n=[...t];n.splice(e,1),r(n)}}else{let i;if("[object Set]"===(i=t,M.call(i))){let e=new Set(t);l?e.add(n):e.delete(n),r(e)}else r(iV(e,l))}})},mounted:iI,beforeUpdate(e,t,n){e[iR]=iT(n),iI(e,t,n)}};function iI(e,{value:t,oldValue:n},l){let r;if(e._modelValue=t,T(t))r=el(t,l.props.value)>-1;else{let i;if("[object Set]"===(i=t,M.call(i)))r=t.has(l.props.value);else{if(t===n)return;r=en(t,iV(e,!0))}}e.checked!==r&&(e.checked=r)}let iL={created(e,{value:t},n){e.checked=en(t,n.props.value),e[iR]=iT(n),ii(e,"change",()=>{e[iR](iD(e))})},beforeUpdate(e,{value:t,oldValue:n},l){e[iR]=iT(l),t!==n&&(e.checked=en(t,l.props.value))}},iF={deep:!0,created(e,{value:t,modifiers:{number:n}},l){let r,i="[object Set]"===(r=t,M.call(r));ii(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?z(iD(e)):iD(e));e[iR](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,tV(()=>{e._assigning=!1})}),e[iR]=iT(l)},mounted(e,{value:t}){ij(e,t)},beforeUpdate(e,t,n){e[iR]=iT(n)},updated(e,{value:t}){e._assigning||ij(e,t)}};function ij(e,t){let n,l=e.multiple,r=T(t);if(!l||r||"[object Set]"===(n=t,M.call(n))){for(let n=0,i=e.options.length;n<i;n++){let i=e.options[n],s=iD(i);if(l)if(r){let e=typeof s;"string"===e||"number"===e?i.selected=t.some(e=>String(e)===String(s)):i.selected=el(t,s)>-1}else i.selected=t.has(s);else if(en(iD(i),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}l||-1===e.selectedIndex||(e.selectedIndex=-1)}}function iD(e){return"_value"in e?e._value:e.value}function iV(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function iU(e,t,n,l,r){let i=function(e,t){switch(e){case"SELECT":return iF;case"TEXTAREA":return iP;default:switch(t){case"checkbox":return iM;case"radio":return iL;default:return iP}}}(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,l)}let iB=["ctrl","shift","alt","meta"],i$={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>iB.some(n=>e[`${n}Key`]&&!t.includes(n))},iH={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},iW=x({patchProp:ip},rF),iK=!1;function iz(){return p=iK?p:lD(iW),iK=!0,p}let iq=(...e)=>{(p||(p=lV(iW))).render(...e)},iG=(...e)=>{let t=(p||(p=lV(iW))).createApp(...e),{mount:n}=t;return t.mount=e=>{let l=iZ(e);if(!l)return;let r=t._component;A(r)||r.render||r.template||(r.template=l.innerHTML),1===l.nodeType&&(l.textContent="");let i=n(l,!1,iX(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},t},iJ=(...e)=>{let t=iz().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=iZ(e);if(t)return n(t,!0,iX(t))},t};function iX(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function iZ(e){return O(e)?document.querySelector(e):e}return e.BaseTransition=nf,e.BaseTransitionPropsValidators=na,e.Comment=l0,e.DeprecationTypes=null,e.EffectScope=ea,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=lY,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=r_(),l=n.ctx,r=new Map,i=new Set,s=null,o=n.suspense,{renderer:{p:a,m:u,um:c,o:{createElement:f}}}=l,p=f("div");function d(e){nB(e),c(e,n,o,!0)}function h(e){r.forEach((t,n)=>{let l=rT(nI(t)?t.type.__asyncResolved||{}:t.type);l&&!e(l)&&g(n)})}function g(e){let t=r.get(e);!t||s&&rt(t,s)?s&&nB(s):d(t),r.delete(e),i.delete(e)}l.activate=(e,t,n,l,r)=>{let i=e.component;u(e,t,n,0,o),a(i.vnode,e,t,n,i,o,l,e.slotScopeIds,r),lj(()=>{i.isDeactivated=!1,i.a&&W(i.a);let t=e.props&&e.props.onVnodeMounted;t&&rd(t,i.parent,e)},o)},l.deactivate=e=>{let t=e.component;lW(t.m),lW(t.a),u(e,p,null,1,o),lj(()=>{t.da&&W(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&rd(n,t.parent,e),t.isDeactivated=!0},o)},t1(()=>[e.include,e.exclude],([e,t])=>{e&&h(t=>nj(e,t)),t&&h(e=>!nj(t,e))},{flush:"post",deep:!0});let _=null,m=()=>{null!=_&&(lK(n.subTree.type)?lj(()=>{r.set(_,n$(n.subTree))},n.subTree.suspense):r.set(_,n$(n.subTree)))};return nz(m),nG(m),nJ(()=>{r.forEach(e=>{let{subTree:t,suspense:l}=n,r=n$(t);if(e.type===r.type&&e.key===r.key){nB(r);let e=r.component.da;e&&lj(e,l);return}d(e)})}),()=>{if(_=null,!t.default)return s=null;let n=t.default(),l=n[0];if(n.length>1)return s=null,n;if(!re(l)||!(4&l.shapeFlag)&&!(128&l.shapeFlag))return s=null,l;let o=n$(l);if(o.type===l0)return s=null,o;let a=o.type,u=rT(nI(o)?o.type.__asyncResolved||{}:a),{include:c,exclude:f,max:p}=e;if(c&&(!u||!nj(c,u))||f&&u&&nj(f,u))return o.shapeFlag&=-257,s=o,l;let d=null==o.key?a:o.key,h=r.get(d);return o.el&&(o=ro(o),128&l.shapeFlag&&(l.ssContent=o)),_=d,h?(o.el=h.el,o.component=h.component,o.transition&&nv(o,o.transition),o.shapeFlag|=512,i.delete(d),i.add(d)):(i.add(d),p&&i.size>parseInt(p,10)&&g(i.values().next().value)),o.shapeFlag|=256,s=o,lK(l.type)?l:o}}},e.ReactiveEffect=ec,e.Static=l1,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,l,r,i,s,o,a,u){if(null==e)!function(e,t,n,l,r,i,s,o,a){let{p:u,o:{createElement:c}}=a,f=c("div"),p=e.suspense=lG(e,r,l,t,f,n,i,s,o,a);u(null,p.pendingBranch=e.ssContent,f,null,l,p,i,s),p.deps>0?(lq(e,"onPending"),lq(e,"onFallback"),u(null,e.ssFallback,t,n,l,null,i,s),lZ(p,e.ssFallback)):p.resolve(!1,!0)}(t,n,l,r,i,s,o,a,u);else{if(i&&i.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,l,r,i,s,o,{p:a,um:u,o:{createElement:c}}){let f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;let p=t.ssContent,d=t.ssFallback,{activeBranch:h,pendingBranch:g,isInFallback:_,isHydrating:m}=f;if(g)f.pendingBranch=p,rt(g,p)?(a(g,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():_&&!m&&(a(h,d,n,l,r,null,i,s,o),lZ(f,d))):(f.pendingId=lz++,m?(f.isHydrating=!1,f.activeBranch=g):u(g,r,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),_?(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0?f.resolve():(a(h,d,n,l,r,null,i,s,o),lZ(f,d))):h&&rt(h,p)?(a(h,p,n,l,r,f,i,s,o),f.resolve(!0)):(a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0&&f.resolve()));else if(h&&rt(h,p))a(h,p,n,l,r,f,i,s,o),lZ(f,p);else if(lq(t,"onPending"),f.pendingBranch=p,512&p.shapeFlag?f.pendingId=p.component.suspenseId:f.pendingId=lz++,a(null,p,f.hiddenContainer,null,r,f,i,s,o),f.deps<=0)f.resolve();else{let{timeout:e,pendingId:t}=f;e>0?setTimeout(()=>{f.pendingId===t&&f.fallback(d)},e):0===e&&f.fallback(d)}}(e,t,n,l,r,s,o,a,u)}},hydrate:function(e,t,n,l,r,i,s,o,a){let u=t.suspense=lG(t,l,n,e.parentNode,document.createElement("div"),null,r,i,s,o,!0),c=a(e,u.pendingBranch=t.ssContent,n,u,i,s);return 0===u.deps&&u.resolve(!1,!0),c},normalize:function(e){let{shapeFlag:t,children:n}=e,l=32&t;e.ssContent=lJ(l?n.default:n),e.ssFallback=l?lJ(n.fallback):ri(l0)}},e.Teleport=ne,e.Text=lQ,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=r$,e.TransitionGroup=iC,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=iv,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tR,e.callWithErrorHandling=tO,e.camelize=D,e.capitalize=B,e.cloneVNode=ro,e.compatUtils=null,e.compile=()=>{},e.computed=rA,e.createApp=iG,e.createBlock=l7,e.createCommentVNode=function(e="",t=!1){return t?(l8(),l7(l0,null,e)):ri(l0,null,e)},e.createElementBlock=function(e,t,n,l,r,i){return l9(rr(e,t,n,l,r,i,!0))},e.createElementVNode=rr,e.createHydrationRenderer=lD,e.createPropsRestProxy=function(e,t){let n={};for(let l in e)t.includes(l)||Object.defineProperty(n,l,{enumerable:!0,get:()=>e[l]});return n},e.createRenderer=function(e){return lV(e)},e.createSSRApp=iJ,e.createSlots=function(e,t){for(let n=0;n<t.length;n++){let l=t[n];if(T(l))for(let t=0;t<l.length;t++)e[l[t].name]=l[t].fn;else l&&(e[l.name]=l.key?(...e)=>{let t=l.fn(...e);return t&&(t.key=l.key),t}:l.fn)}return e},e.createStaticVNode=function(e,t){let n=ri(l1,null,e);return n.staticCount=t,n},e.createTextVNode=ra,e.createVNode=ri,e.customRef=tS,e.defineAsyncComponent=function(e){let t;A(e)&&(e={loader:e});let{loader:n,loadingComponent:l,errorComponent:r,delay:i=200,hydrate:s,timeout:o,suspensible:a=!0,onError:u}=e,c=null,f=0,p=()=>{let e;return c||(e=c=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),u)return new Promise((t,n)=>{u(e,()=>t((f++,c=null,p())),()=>n(e),f+1)});throw e}).then(n=>e!==c&&c?c:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nm({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,l){let r=!1;(n.bu||(n.bu=[])).push(()=>r=!0);let i=()=>{r||l()},o=s?()=>{let t=s(i,t=>(function(e,t){if(nT(e)&&"["===e.data){let n=1,l=e.nextSibling;for(;l;){if(1===l.nodeType){if(!1===t(l))break}else if(nT(l))if("]"===l.data){if(0==--n)break}else"["===l.data&&n++;l=l.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:i;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=rv;if(ny(e),t)return()=>nL(t,e);let n=t=>{c=null,tN(t,e,13,!r)};if(a&&e.suspense)return p().then(t=>()=>nL(t,e)).catch(e=>(n(e),()=>r?ri(r,{error:e}):null));let s=td(!1),u=td(),f=td(!!i);return i&&setTimeout(()=>{f.value=!1},i),null!=o&&setTimeout(()=>{if(!s.value&&!u.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),u.value=e}},o),p().then(()=>{s.value=!0,e.parent&&nF(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),u.value=e}),()=>s.value&&t?nL(t,e):u.value&&r?ri(r,{error:u.value}):l&&!f.value?nL(l,e):void 0}})},e.defineComponent=nm,e.defineCustomElement=ih,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>ih(e,t,iJ),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ec&&(e=e.effect.fn);let n=new ec(e);t&&x(n,t);try{n.run()}catch(e){throw n.stop(),e}let l=n.run.bind(n);return l.effect=n,l},e.effectScope=function(e){return new ea(e)},e.getCurrentInstance=r_,e.getCurrentScope=function(){return r},e.getCurrentWatcher=function(){return d},e.getTransitionRawChildren=n_,e.guardReactiveProps=rs,e.h=rO,e.handleError=tN,e.hasInjectionContext=function(){return!!(r_()||lh)},e.hydrate=(...e)=>{iz().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nP(t,{timeout:e});return()=>nM(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{O(e)&&(e=[e]);let l=!1,r=e=>{l||(l=!0,i(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},i=()=>{n(t=>{for(let n of e)t.removeEventListener(n,r)})};return n(t=>{for(let n of e)t.addEventListener(n,r,{once:!0})}),i},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let l=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){l.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:l,right:r}=e.getBoundingClientRect(),{innerHeight:i,innerWidth:s}=window;return(t>0&&t<i||l>0&&l<i)&&(n>0&&n<s||r>0&&r<s)}(e))return t(),l.disconnect(),!1;l.observe(e)}}),()=>l.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=y,e.inject=tY,e.isMemoSame=rR,e.isProxy=to,e.isReactive=tr,e.isReadonly=ti,e.isRef=tp,e.isRuntimeOnly=()=>!c,e.isShallow=ts,e.isVNode=re,e.markRaw=tu,e.mergeDefaults=function(e,t){let n=lt(e);for(let e in t){if(e.startsWith("__skip"))continue;let l=n[e];l?T(l)||A(l)?l=n[e]={type:l,default:t[e]}:l.default=t[e]:null===l&&(l=n[e]={default:t[e]}),l&&t[`__skip_${e}`]&&(l.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?T(e)&&T(t)?e.concat(t):x({},lt(e),lt(t)):e||t},e.mergeProps=rp,e.nextTick=tV,e.nodeOps=rF,e.normalizeClass=ee,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!O(t)&&(e.class=ee(t)),n&&(e.style=X(n)),e},e.normalizeStyle=X,e.onActivated=nD,e.onBeforeMount=nK,e.onBeforeUnmount=nJ,e.onBeforeUpdate=nq,e.onDeactivated=nV,e.onErrorCaptured=n0,e.onMounted=nz,e.onRenderTracked=nQ,e.onRenderTriggered=nY,e.onScopeDispose=function(e,t=!1){r&&r.cleanups.push(e)},e.onServerPrefetch=nZ,e.onUnmounted=nX,e.onUpdated=nG,e.onWatcherCleanup=tT,e.openBlock=l8,e.patchProp=ip,e.popScopeId=function(){tq=null},e.provide=tZ,e.proxyRefs=ty,e.pushScopeId=function(e){tq=e},e.queuePostFlushCb=t$,e.reactive=te,e.readonly=tn,e.ref=td,e.registerRuntimeCompiler=function(e){c=e,f=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,n7))}},e.render=iq,e.renderList=function(e,t,n,l){let r,i=n&&n[l],s=T(e);if(s||O(e)){let n=s&&tr(e),l=!1,o=!1;n&&(l=!ts(e),o=ti(e),e=eI(e)),r=Array(e.length);for(let n=0,s=e.length;n<s;n++)r[n]=t(l?o?tf(tc(e[n])):tc(e[n]):e[n],n,void 0,i&&i[n])}else if("number"==typeof e){r=Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,i&&i[n])}else if(N(e))if(e[Symbol.iterator])r=Array.from(e,(e,n)=>t(e,n,void 0,i&&i[n]));else{let n=Object.keys(e);r=Array(n.length);for(let l=0,s=n.length;l<s;l++){let s=n[l];r[l]=t(e[s],s,l,i&&i[l])}}else r=[];return n&&(n[l]=r),r},e.renderSlot=function(e,t,n={},l,r){if(tz.ce||tz.parent&&nI(tz.parent)&&tz.parent.ce){let e=Object.keys(n).length>0;return"default"!==t&&(n.name=t),l8(),l7(lY,null,[ri("slot",n,l&&l())],e?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),l8();let s=i&&function e(t){return t.some(t=>!re(t)||t.type!==l0&&(t.type!==lY||!!e(t.children)))?t:null}(i(n)),o=n.key||s&&s.key,a=l7(lY,{key:(o&&!R(o)?o:`_${t}`)+(!s&&l?"_fb":"")},s||(l?l():[]),s&&1===e._?64:-2);return!r&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),i&&i._c&&(i._d=!0),a},e.resolveComponent=function(e,t){return n6(n1,e,!0,t)||e},e.resolveDirective=function(e){return n6("directives",e)},e.resolveDynamicComponent=function(e){return O(e)?n6(n1,e,!1)||e:e||n2},e.resolveFilter=null,e.resolveTransitionHooks=nd,e.setBlockTracking=l5,e.setDevtoolsHook=y,e.setTransitionHooks=nv,e.shallowReactive=tt,e.shallowReadonly=function(e){return tl(e,!0,eY,e4,e7)},e.shallowRef=th,e.ssrContextKey=tQ,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ei,e.toHandlerKey=$,e.toHandlers=function(e,t){let n={};for(let l in e)n[t&&/[A-Z]/.test(l)?`on:${l}`:$(l)]=e[l];return n},e.toRaw=ta,e.toRef=function(e,t,n){if(tp(e))return e;if(A(e))return new tx(e);if(!N(e)||!(arguments.length>1))return td(e);return new tC(e,t,n)},e.toRefs=function(e){let t=T(e)?Array(e.length):{};for(let n in e)t[n]=new tC(e,n,void 0);return t},e.toValue=function(e){return A(e)?e():t_(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=t_,e.useAttrs=function(){return le().attrs},e.useCssModule=function(e="$style"){return _},e.useCssVars=function(e){let t=r_();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>r4(e,n))},l=()=>{let l=e(t.proxy);t.ce?r4(t.ce,l):function e(t,n){if(128&t.shapeFlag){let l=t.suspense;t=l.activeBranch,l.pendingBranch&&!l.isHydrating&&l.effects.push(()=>{e(l.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)r4(t.el,n);else if(t.type===lY)t.children.forEach(t=>e(t,n));else if(t.type===l1){let{el:e,anchor:l}=t;for(;e&&(r4(e,n),e!==l);)e=e.nextSibling}}(t.subTree,l),n(l)};nq(()=>{t$(l)}),nz(()=>{t1(l,y,{flush:"post"});let e=new MutationObserver(l);e.observe(t.subTree.el.parentNode,{childList:!0}),nX(()=>e.disconnect())})},e.useHost=i_,e.useId=function(){let e=r_();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=_){let l=r_(),r=D(t),i=U(t),s=lg(e,r),o=tS((s,o)=>{let a,u,c=_;return t0(()=>{let t=e[r];H(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!H(s,a)&&!(c!==_&&H(e,c)))return;let f=l.vnode.props;f&&(t in f||r in f||i in f)&&(`onUpdate:${t}`in f||`onUpdate:${r}`in f||`onUpdate:${i}`in f)||(a=e,o()),l.emit(`update:${t}`,s),H(e,s)&&H(e,c)&&!H(s,u)&&o(),c=e,u=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||_:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=i_();return e&&e.shadowRoot},e.useSlots=function(){return le().slots},e.useTemplateRef=function(e){let t=r_(),n=th(null);return t&&Object.defineProperty(t.refs===_?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=ns,e.vModelCheckbox=iM,e.vModelDynamic={created(e,t,n){iU(e,t,n,null,"created")},mounted(e,t,n){iU(e,t,n,null,"mounted")},beforeUpdate(e,t,n,l){iU(e,t,n,l,"beforeUpdate")},updated(e,t,n,l){iU(e,t,n,l,"updated")}},e.vModelRadio=iL,e.vModelSelect=iF,e.vModelText=iP,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[r1]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):r6(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),r6(e,!0),l.enter(e)):l.leave(e,()=>{r6(e,!1)}):r6(e,t))},beforeUnmount(e,{value:t}){r6(e,t)}},e.version=rN,e.warn=y,e.watch=function(e,t,n){return t1(e,t,n)},e.watchEffect=function(e,t){return t1(e,null,t)},e.watchPostEffect=function(e,t){return t1(e,null,{flush:"post"})},e.watchSyncEffect=t0,e.withAsyncContext=function(e){let t=r_(),n=e();return ry(),P(n)&&(n=n.catch(e=>{throw rm(t),e})),[n,()=>rm(t)]},e.withCtx=tJ,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===tz)return e;let n=rE(tz),l=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[r,i,s,o=_]=t[e];r&&(A(r)&&(r={mounted:r,updated:r}),r.deep&&tA(i),l.push({dir:r,instance:n,value:i,oldValue:void 0,arg:s,modifiers:o}))}return e},e.withKeys=(e,t)=>{let n=e._withKeys||(e._withKeys={}),l=t.join(".");return n[l]||(n[l]=n=>{if(!("key"in n))return;let l=U(n.key);if(t.some(e=>e===l||iH[e]===l))return e(n)})},e.withMemo=function(e,t,n,l){let r=n[l];if(r&&rR(r,e))return r;let i=t();return i.memo=e.slice(),i.cacheIndex=l,n[l]=i},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),l=t.join(".");return n[l]||(n[l]=(n,...l)=>{for(let e=0;e<t.length;e++){let l=i$[t[e]];if(l&&l(n,t))return}return e(n,...l)})},e.withScopeId=e=>tJ,e}({}); diff --git a/node_modules/vue/index.js b/node_modules/vue/index.js new file mode 100644 index 0000000..7a3dc2d --- /dev/null +++ b/node_modules/vue/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/vue.cjs.prod.js') +} else { + module.exports = require('./dist/vue.cjs.js') +} diff --git a/node_modules/vue/index.mjs b/node_modules/vue/index.mjs new file mode 100644 index 0000000..fcb9204 --- /dev/null +++ b/node_modules/vue/index.mjs @@ -0,0 +1 @@ +export * from './index.js' diff --git a/node_modules/vue/jsx-runtime/index.d.ts b/node_modules/vue/jsx-runtime/index.d.ts new file mode 100644 index 0000000..28071b7 --- /dev/null +++ b/node_modules/vue/jsx-runtime/index.d.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +import type { NativeElements, ReservedProps, VNode } from '@vue/runtime-dom' + +/** + * JSX namespace for usage with @jsxImportsSource directive + * when ts compilerOptions.jsx is 'react-jsx' or 'react-jsxdev' + * https://www.typescriptlang.org/tsconfig#jsxImportSource + */ +export { h as jsx, h as jsxDEV, Fragment, h as jsxs } from '@vue/runtime-dom' + +export namespace JSX { + export interface Element extends VNode {} + export interface ElementClass { + $props: {} + } + export interface ElementAttributesProperty { + $props: {} + } + export interface IntrinsicElements extends NativeElements { + // allow arbitrary elements + // @ts-ignore suppress ts:2374 = Duplicate string index signature. + [name: string]: any + } + export interface IntrinsicAttributes extends ReservedProps {} +} diff --git a/node_modules/vue/jsx-runtime/index.js b/node_modules/vue/jsx-runtime/index.js new file mode 100644 index 0000000..73b137d --- /dev/null +++ b/node_modules/vue/jsx-runtime/index.js @@ -0,0 +1,15 @@ +const { h, Fragment } = require('vue') + +function jsx(type, props, key) { + const { children } = props + delete props.children + if (arguments.length > 2) { + props.key = key + } + return h(type, props, children) +} + +exports.jsx = jsx +exports.jsxs = jsx +exports.jsxDEV = jsx +exports.Fragment = Fragment diff --git a/node_modules/vue/jsx-runtime/index.mjs b/node_modules/vue/jsx-runtime/index.mjs new file mode 100644 index 0000000..e2528cb --- /dev/null +++ b/node_modules/vue/jsx-runtime/index.mjs @@ -0,0 +1,12 @@ +import { h, Fragment } from 'vue' + +function jsx(type, props, key) { + const { children } = props + delete props.children + if (arguments.length > 2) { + props.key = key + } + return h(type, props, children) +} + +export { Fragment, jsx, jsx as jsxs, jsx as jsxDEV } diff --git a/node_modules/vue/jsx-runtime/package.json b/node_modules/vue/jsx-runtime/package.json new file mode 100644 index 0000000..778c7eb --- /dev/null +++ b/node_modules/vue/jsx-runtime/package.json @@ -0,0 +1,5 @@ +{ + "main": "index.js", + "module": "index.mjs", + "types": "index.d.ts" +} diff --git a/node_modules/vue/jsx.d.ts b/node_modules/vue/jsx.d.ts new file mode 100644 index 0000000..cfea000 --- /dev/null +++ b/node_modules/vue/jsx.d.ts @@ -0,0 +1,22 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +// global JSX namespace registration +// somehow we have to copy=pase the jsx-runtime types here to make TypeScript happy +import type { NativeElements, ReservedProps, VNode } from '@vue/runtime-dom' + +declare global { + namespace JSX { + export interface Element extends VNode {} + export interface ElementClass { + $props: {} + } + export interface ElementAttributesProperty { + $props: {} + } + export interface IntrinsicElements extends NativeElements { + // allow arbitrary elements + // @ts-ignore suppress ts:2374 = Duplicate string index signature. + [name: string]: any + } + export interface IntrinsicAttributes extends ReservedProps {} + } +} diff --git a/node_modules/vue/package.json b/node_modules/vue/package.json new file mode 100644 index 0000000..95fef68 --- /dev/null +++ b/node_modules/vue/package.json @@ -0,0 +1,112 @@ +{ + "name": "vue", + "version": "3.5.28", + "description": "The progressive JavaScript framework for building modern web UI.", + "main": "index.js", + "module": "dist/vue.runtime.esm-bundler.js", + "types": "dist/vue.d.ts", + "unpkg": "dist/vue.global.js", + "jsdelivr": "dist/vue.global.js", + "files": [ + "index.js", + "index.mjs", + "dist", + "compiler-sfc", + "server-renderer", + "jsx-runtime", + "jsx.d.ts" + ], + "exports": { + ".": { + "import": { + "types": "./dist/vue.d.mts", + "node": "./index.mjs", + "default": "./dist/vue.runtime.esm-bundler.js" + }, + "require": { + "types": "./dist/vue.d.ts", + "node": { + "production": "./dist/vue.cjs.prod.js", + "development": "./dist/vue.cjs.js", + "default": "./index.js" + }, + "default": "./index.js" + } + }, + "./server-renderer": { + "import": { + "types": "./server-renderer/index.d.mts", + "default": "./server-renderer/index.mjs" + }, + "require": { + "types": "./server-renderer/index.d.ts", + "default": "./server-renderer/index.js" + } + }, + "./compiler-sfc": { + "import": { + "types": "./compiler-sfc/index.d.mts", + "browser": "./compiler-sfc/index.browser.mjs", + "default": "./compiler-sfc/index.mjs" + }, + "require": { + "types": "./compiler-sfc/index.d.ts", + "browser": "./compiler-sfc/index.browser.js", + "default": "./compiler-sfc/index.js" + } + }, + "./jsx-runtime": { + "types": "./jsx-runtime/index.d.ts", + "import": "./jsx-runtime/index.mjs", + "require": "./jsx-runtime/index.js" + }, + "./jsx-dev-runtime": { + "types": "./jsx-runtime/index.d.ts", + "import": "./jsx-runtime/index.mjs", + "require": "./jsx-runtime/index.js" + }, + "./jsx": "./jsx.d.ts", + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "buildOptions": { + "name": "Vue", + "formats": [ + "esm-bundler", + "esm-bundler-runtime", + "cjs", + "global", + "global-runtime", + "esm-browser", + "esm-browser-runtime" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", + "dependencies": { + "@vue/shared": "3.5.28", + "@vue/compiler-dom": "3.5.28", + "@vue/compiler-sfc": "3.5.28", + "@vue/runtime-dom": "3.5.28", + "@vue/server-renderer": "3.5.28" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } +} \ No newline at end of file diff --git a/node_modules/vue/server-renderer/index.d.mts b/node_modules/vue/server-renderer/index.d.mts new file mode 100644 index 0000000..ac61472 --- /dev/null +++ b/node_modules/vue/server-renderer/index.d.mts @@ -0,0 +1 @@ +export * from '@vue/server-renderer' diff --git a/node_modules/vue/server-renderer/index.d.ts b/node_modules/vue/server-renderer/index.d.ts new file mode 100644 index 0000000..ac61472 --- /dev/null +++ b/node_modules/vue/server-renderer/index.d.ts @@ -0,0 +1 @@ +export * from '@vue/server-renderer' diff --git a/node_modules/vue/server-renderer/index.js b/node_modules/vue/server-renderer/index.js new file mode 100644 index 0000000..1761ed9 --- /dev/null +++ b/node_modules/vue/server-renderer/index.js @@ -0,0 +1 @@ +module.exports = require('@vue/server-renderer') diff --git a/node_modules/vue/server-renderer/index.mjs b/node_modules/vue/server-renderer/index.mjs new file mode 100644 index 0000000..ac61472 --- /dev/null +++ b/node_modules/vue/server-renderer/index.mjs @@ -0,0 +1 @@ +export * from '@vue/server-renderer' diff --git a/node_modules/vue/server-renderer/package.json b/node_modules/vue/server-renderer/package.json new file mode 100644 index 0000000..4cf44a4 --- /dev/null +++ b/node_modules/vue/server-renderer/package.json @@ -0,0 +1,4 @@ +{ + "main": "index.js", + "module": "index.mjs" +} diff --git a/user-interface/package-lock.json b/user-interface/package-lock.json index a551a8a..a40e3ff 100644 --- a/user-interface/package-lock.json +++ b/user-interface/package-lock.json @@ -8,6 +8,7 @@ "name": "user-interface", "version": "0.0.0", "dependencies": { + "buetify": "^0.1.7", "pinia": "^3.0.4", "vue": "^3.5.27", "vue-router": "^5.0.1" @@ -1401,6 +1402,45 @@ } } }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", + "peer": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@hapi/address": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz", @@ -3540,6 +3580,23 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buetify": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/buetify/-/buetify-0.1.7.tgz", + "integrity": "sha512-Xma62kUdZgf83BnUPSMuFgO6gt1broOpGjo12lsOHFZRBgsa4Aah1IDsuMRHHjBEXzqaQn2dvggya9K0wKVv1Q==", + "license": "MIT", + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^1.2.25", + "@fortawesome/free-solid-svg-icons": "^5.11.2", + "bulma": "^0.9.0", + "fp-ts": "^2.6.5", + "fp-ts-local-storage": "^1.0.3", + "vue": "^3.0.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -3575,6 +3632,13 @@ "node": "*" } }, + "node_modules/bulma": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", + "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==", + "license": "MIT", + "peer": true + }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -5103,6 +5167,23 @@ "node": ">= 6" } }, + "node_modules/fp-ts": { + "version": "2.16.11", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.11.tgz", + "integrity": "sha512-LaI+KaX2NFkfn1ZGHoKCmcfv7yrZsC3b8NtWsTVQeHkq4F27vI5igUuO53sxqDEa2gNQMHFPmpojDw/1zmUK7w==", + "license": "MIT", + "peer": true + }, + "node_modules/fp-ts-local-storage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fp-ts-local-storage/-/fp-ts-local-storage-1.0.3.tgz", + "integrity": "sha512-72nXiVVA7Fj1FS0lfGIED18/AS8gA50OjOrUCWuhNEYL9f614MkLjkQVkpnAFr0QI1H8/1CxH2tAfPs0CkncHQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "fp-ts": "^2.0.1" + } + }, "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -6148,6 +6229,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", diff --git a/user-interface/package.json b/user-interface/package.json index 3c47886..67b5b52 100644 --- a/user-interface/package.json +++ b/user-interface/package.json @@ -19,6 +19,7 @@ "format": "prettier --write --experimental-cli src/" }, "dependencies": { + "buetify": "^0.1.7", "pinia": "^3.0.4", "vue": "^3.5.27", "vue-router": "^5.0.1" diff --git a/user-interface/src/App.vue b/user-interface/src/App.vue index abfd315..9a23594 100644 --- a/user-interface/src/App.vue +++ b/user-interface/src/App.vue @@ -1,11 +1,34 @@ -<script setup lang="ts"></script> +<script setup lang="ts"> +import { RouterView } from 'vue-router' +import AppTopbar from '@/components/AppTopbar.vue' +</script> <template> - <h1>You did it!</h1> - <p> - Visit <a href="https://vuejs.org/" target="_blank" rel="noopener">vuejs.org</a> to read the - documentation - </p> + <header> + <AppTopbar /> + </header> + <main> + <RouterView /> + </main> + <!-- <footer> + <AppFooter /> + </footer> --> </template> -<style scoped></style> +<style> +/* #app { + width: 100%; + display: flex; + flex-direction: column; +} + +main { + height: 100%; +} + +@media screen and (min-width: 768px) { + #app { + height: 100vh; + } +} */ +</style> diff --git a/user-interface/src/assets/svg/manolia-logo.svg b/user-interface/src/assets/svg/manolia-logo.svg new file mode 100644 index 0000000..a65d77b --- /dev/null +++ b/user-interface/src/assets/svg/manolia-logo.svg @@ -0,0 +1,5094 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="1280.000000pt" height="1280.000000pt" viewBox="0 0 1280.000000 1280.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.15, written by Peter Selinger 2001-2017 +</metadata> +<g transform="translate(0.000000,1280.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M8590 12750 c-80 -26 -147 -47 -149 -44 -2 2 -17 -6 -32 -17 -16 -11 +-33 -17 -39 -14 -6 3 -22 -2 -38 -13 -15 -11 -33 -17 -39 -15 -7 3 -26 -5 -43 +-17 -16 -12 -34 -19 -40 -15 -5 3 -21 -2 -35 -11 -14 -9 -37 -18 -50 -20 -13 +-1 -38 -12 -55 -24 -16 -12 -34 -18 -40 -15 -5 3 -30 -8 -54 -25 -25 -17 -47 +-26 -51 -20 -3 5 -27 -6 -54 -26 -32 -22 -51 -30 -53 -22 -3 7 -22 -1 -52 -25 +-26 -20 -54 -33 -62 -30 -8 3 -34 -11 -58 -31 -25 -20 -51 -34 -58 -31 -8 3 +-35 -11 -60 -31 -26 -20 -52 -33 -58 -29 -6 4 -35 -14 -64 -39 -33 -28 -57 +-41 -62 -36 -6 6 -29 -8 -62 -36 -28 -25 -57 -42 -62 -39 -6 4 -38 -16 -70 +-44 -37 -32 -60 -46 -63 -38 -3 7 -28 -11 -65 -46 -40 -40 -62 -55 -67 -47 -5 +8 -26 -7 -65 -45 -32 -32 -62 -55 -67 -52 -5 3 -36 -20 -68 -53 -32 -32 -63 +-56 -70 -54 -7 3 -36 -22 -66 -56 -29 -33 -58 -59 -65 -56 -7 3 -37 -24 -66 +-59 -29 -35 -58 -62 -65 -60 -6 2 -37 -27 -68 -65 -32 -39 -61 -68 -65 -65 -5 +3 -33 -26 -62 -64 -29 -38 -60 -71 -69 -74 -9 -2 -38 -36 -65 -75 -27 -39 -54 +-72 -60 -72 -6 0 -31 -28 -54 -62 -24 -35 -55 -75 -70 -90 -15 -15 -44 -55 +-65 -90 -21 -35 -44 -67 -51 -73 -14 -11 -95 -138 -151 -235 -64 -113 -51 +-111 -127 -18 -184 227 -460 502 -693 691 -477 388 -1001 677 -1573 868 -96 +32 -182 59 -191 59 -12 0 -22 -19 -35 -60 -11 -33 -22 -60 -26 -60 -5 0 -8 +-11 -8 -25 0 -14 -4 -25 -10 -25 -5 0 -10 -9 -10 -20 0 -20 -2 -27 -33 -88 -9 +-19 -17 -45 -17 -58 0 -13 -4 -24 -9 -24 -5 0 -12 -16 -15 -35 -4 -19 -11 -35 +-16 -35 -6 0 -10 -18 -10 -40 0 -27 -5 -43 -15 -46 -10 -4 -15 -20 -15 -45 0 +-26 -5 -42 -15 -45 -10 -4 -15 -20 -15 -49 0 -29 -5 -45 -15 -49 -11 -4 -15 +-20 -15 -56 0 -38 -4 -50 -15 -50 -12 0 -15 -13 -15 -55 0 -42 -3 -55 -15 -55 +-12 0 -15 -13 -15 -60 0 -47 -3 -60 -15 -60 -12 0 -15 -14 -15 -65 0 -53 -3 +-65 -16 -65 -14 0 -16 -10 -12 -65 3 -49 1 -65 -9 -65 -9 0 -13 -19 -13 -70 0 +-50 -4 -70 -13 -70 -9 0 -11 -19 -9 -75 3 -59 1 -75 -9 -73 -10 2 -12 -15 -10 +-74 2 -57 -1 -78 -10 -78 -9 0 -10 -19 -6 -74 4 -59 2 -76 -9 -80 -9 -3 -13 +-14 -10 -28 3 -13 8 -49 11 -80 5 -46 4 -58 -8 -58 -11 0 -12 -13 -2 -80 9 +-64 9 -82 -1 -88 -11 -7 -7 -72 11 -149 4 -15 1 -23 -8 -23 -11 0 -10 -16 2 +-87 11 -61 12 -88 4 -90 -7 -3 -5 -31 9 -90 12 -56 15 -89 9 -93 -7 -4 -4 -34 +9 -86 10 -45 17 -90 14 -101 -3 -11 4 -53 16 -93 12 -39 19 -79 16 -87 -4 -9 +5 -53 19 -100 14 -46 23 -87 21 -92 -3 -5 8 -48 24 -96 16 -48 28 -91 25 -95 +-2 -4 10 -43 27 -86 16 -43 32 -91 34 -105 2 -14 19 -62 38 -107 19 -45 33 +-82 30 -82 -2 0 0 -8 5 -19 10 -17 2 -19 -152 -25 -508 -21 -964 -104 -1422 +-258 -429 -143 -899 -378 -1232 -615 l-63 -44 35 -55 c19 -30 35 -58 35 -63 0 +-5 7 -14 15 -21 8 -7 13 -16 10 -20 -3 -4 2 -13 10 -20 8 -7 15 -18 15 -25 0 +-6 9 -20 20 -30 12 -10 19 -24 16 -31 -2 -6 6 -22 19 -34 14 -13 22 -26 20 +-30 -2 -4 6 -17 20 -30 13 -12 22 -27 19 -34 -2 -6 9 -25 25 -40 17 -16 28 +-33 25 -38 -3 -4 9 -20 26 -34 17 -15 29 -32 26 -39 -2 -7 9 -25 25 -41 16 +-16 27 -34 25 -41 -3 -7 13 -27 35 -45 22 -17 38 -37 35 -44 -2 -6 11 -27 30 +-45 19 -18 32 -39 30 -45 -3 -7 15 -29 39 -49 25 -20 42 -41 39 -49 -3 -7 15 +-29 40 -50 26 -21 43 -42 40 -50 -3 -8 16 -29 45 -52 32 -24 47 -42 42 -47 -6 +-6 10 -25 42 -51 30 -23 51 -48 50 -56 -2 -9 20 -31 52 -53 34 -24 52 -43 49 +-52 -4 -9 14 -27 51 -51 34 -23 54 -43 51 -51 -3 -8 19 -29 55 -54 34 -23 58 +-46 56 -53 -3 -7 22 -29 59 -52 36 -22 63 -46 64 -56 0 -9 27 -32 65 -54 40 +-23 64 -43 61 -51 -3 -8 21 -27 64 -50 40 -22 70 -45 70 -54 0 -9 30 -31 74 +-54 40 -22 72 -44 70 -50 -3 -6 29 -27 71 -48 41 -20 75 -43 75 -50 0 -8 36 +-30 81 -50 44 -20 78 -40 75 -45 -3 -6 31 -25 75 -43 45 -19 84 -39 86 -46 3 +-7 41 -26 86 -44 45 -17 86 -37 92 -43 5 -7 39 -23 75 -36 36 -13 79 -31 95 +-40 17 -10 62 -28 100 -40 39 -13 75 -26 80 -30 6 -4 44 -18 85 -30 41 -12 99 +-30 128 -41 29 -10 62 -19 72 -19 11 0 20 -3 20 -6 0 -3 -44 -65 -99 -137 +-524 -702 -847 -1492 -960 -2352 -11 -83 -23 -198 -27 -256 l-7 -106 49 -8 +c55 -9 91 -13 147 -19 21 -2 41 -6 44 -9 3 -3 18 -3 34 0 17 3 29 1 29 -5 0 +-7 13 -9 35 -5 19 3 35 2 35 -3 0 -5 36 -9 80 -9 44 0 80 -4 80 -9 0 -5 20 -6 +45 -3 24 4 47 2 50 -3 3 -5 25 -7 49 -4 25 4 46 2 49 -4 4 -6 24 -6 54 -1 32 +6 49 6 54 -2 5 -8 20 -8 55 -1 35 8 51 7 55 0 5 -8 22 -8 61 0 37 7 55 7 60 +-1 4 -7 23 -7 64 1 40 9 60 9 64 1 5 -7 26 -6 68 4 48 11 62 12 62 2 0 -9 16 +-8 67 4 46 11 68 12 70 5 3 -8 25 -5 70 7 46 13 69 16 74 8 4 -7 27 -5 72 9 +43 13 69 16 75 10 7 -7 33 -3 77 12 49 16 69 19 75 11 5 -9 26 -5 76 13 42 16 +71 21 75 15 3 -6 33 0 76 16 39 14 78 23 86 19 8 -3 43 6 78 20 34 15 71 24 +80 21 10 -3 48 8 85 25 38 17 74 28 82 25 7 -3 47 11 89 30 41 19 79 32 84 29 +5 -3 41 11 80 31 39 20 77 34 83 32 6 -3 43 13 83 34 40 22 79 39 88 39 9 0 +47 18 85 40 38 22 74 40 81 40 7 0 45 20 85 45 39 25 76 45 80 45 5 0 44 23 +87 50 43 28 80 50 82 50 7 0 249 171 272 193 13 11 25 19 27 16 2 -2 25 -89 +51 -194 182 -734 532 -1423 1016 -2001 116 -139 293 -327 403 -428 l93 -85 +126 124 c70 68 127 129 127 135 0 5 7 10 15 10 8 0 22 14 30 30 9 17 20 28 24 +25 5 -3 18 11 30 30 11 19 25 35 30 35 5 0 19 16 31 35 12 19 26 33 30 30 5 +-3 18 12 30 35 11 22 26 40 34 40 7 0 24 20 37 44 12 24 28 42 34 40 6 -3 21 +16 33 41 12 25 27 45 34 45 7 0 24 21 38 47 14 25 29 44 34 42 4 -2 21 22 37 +54 16 31 35 57 42 57 7 0 25 25 40 56 15 30 31 53 36 50 4 -3 21 22 36 54 16 +33 34 60 40 60 7 0 24 29 39 65 16 35 33 63 39 62 5 -1 21 26 35 61 14 34 30 +62 37 62 7 0 24 32 39 70 15 39 32 68 36 65 7 -5 33 53 54 123 4 12 13 22 20 +22 7 0 23 34 36 75 13 41 28 76 35 79 6 2 20 33 30 67 10 35 24 69 31 75 7 6 +22 44 33 84 12 41 25 76 30 79 5 4 18 42 30 85 11 44 24 82 29 85 5 3 17 42 +26 85 9 44 20 84 25 90 5 6 16 47 24 91 9 44 20 91 25 105 5 14 13 50 16 80 4 +30 11 66 16 80 20 54 57 378 66 583 4 87 10 156 13 155 4 -2 54 -27 112 -55 +891 -441 1958 -608 2922 -457 l109 17 -6 41 c-3 23 -8 64 -11 91 -5 50 -14 +129 -20 175 -4 24 -10 72 -19 150 -2 19 -9 47 -15 63 -7 17 -7 27 -1 27 6 0 3 +16 -5 37 -9 20 -13 43 -10 51 2 7 -2 29 -10 49 -9 20 -13 44 -10 54 3 10 -1 +32 -10 50 -9 17 -14 40 -12 51 3 10 -3 39 -14 64 -11 24 -17 49 -14 55 4 6 -2 +32 -14 59 -12 27 -18 55 -15 63 3 8 -6 38 -20 65 -16 32 -21 52 -15 54 7 2 1 +24 -15 57 -15 29 -25 60 -22 68 3 8 -8 41 -24 73 -16 32 -26 61 -21 64 5 3 -7 +35 -26 71 -19 36 -29 65 -23 65 7 0 -5 29 -25 65 -20 36 -33 70 -30 75 4 6 -9 +36 -27 68 -18 31 -33 66 -34 78 -1 11 -18 46 -38 78 -20 31 -34 62 -30 67 3 5 +-14 39 -37 76 -24 36 -43 73 -44 82 -1 9 -20 44 -43 78 -22 33 -39 63 -35 66 +3 3 -17 37 -45 75 -28 39 -48 72 -45 76 3 3 -18 34 -46 70 -28 36 -51 71 -51 +77 0 7 -25 42 -55 80 -30 37 -55 72 -55 76 0 4 -14 24 -31 43 -16 19 -49 60 +-71 90 -99 131 -385 429 -528 549 -41 35 -79 67 -83 71 -5 4 63 42 150 84 764 +371 1427 934 1908 1621 81 116 201 303 254 397 l32 56 -41 23 c-22 12 -40 26 +-40 30 0 4 -8 9 -17 13 -21 6 -51 25 -71 44 -7 6 -20 12 -28 12 -8 0 -14 4 +-14 9 0 5 -13 14 -30 21 -16 7 -30 16 -30 20 0 5 -13 13 -30 19 -16 5 -30 14 +-30 20 0 5 -13 12 -30 16 -16 4 -33 12 -37 19 -5 7 -24 18 -43 26 -19 8 -38 +19 -43 26 -4 7 -21 15 -38 19 -17 4 -33 13 -36 21 -3 8 -23 19 -45 26 -22 6 +-42 17 -45 24 -2 7 -27 18 -54 25 -27 7 -49 18 -49 25 0 7 -25 20 -55 29 -31 +9 -53 20 -51 24 3 5 -21 16 -53 25 -33 9 -61 22 -64 29 -3 8 -30 19 -61 26 +-33 7 -56 18 -56 25 0 8 -24 18 -60 25 -36 7 -60 17 -60 25 0 8 -26 18 -70 26 +-42 8 -70 18 -70 26 0 7 -27 17 -70 24 -45 8 -70 16 -70 25 0 9 -21 15 -60 20 +-33 4 -67 14 -76 22 -8 8 -48 20 -89 26 -48 6 -75 15 -75 22 0 9 -27 15 -80 +20 -54 5 -80 11 -80 20 0 8 -26 14 -77 19 -42 3 -80 11 -83 16 -4 6 -43 13 +-88 17 -45 3 -82 9 -82 14 0 4 -39 10 -87 14 -49 4 -90 11 -93 15 -11 15 -602 +36 -770 28 -91 -5 -172 -9 -180 -10 -34 -1 -309 -38 -359 -48 -29 -5 -55 -10 +-56 -10 -2 0 3 24 11 53 49 182 104 545 124 807 13 173 13 537 0 710 -31 416 +-108 810 -233 1190 -51 154 -129 360 -137 359 -3 0 -70 -22 -150 -49z m134 +-33 c18 -44 30 -83 23 -77 -8 8 -47 110 -42 110 3 0 11 -15 19 -33z m-31 6 c3 +-10 29 -81 57 -158 170 -458 280 -981 294 -1402 l5 -138 -9 125 c-24 337 -91 +723 -179 1031 -44 155 -130 407 -175 511 -18 43 -19 48 -7 48 5 0 11 -8 14 +-17z m5 -116 c163 -421 267 -867 314 -1342 16 -166 16 -721 0 -875 -20 -183 +-44 -361 -49 -356 -3 3 2 58 11 123 56 432 53 931 -10 1363 -52 364 -183 839 +-313 1144 -18 41 -18 62 0 51 4 -3 25 -51 47 -108z m-36 -24 c340 -872 422 +-1824 237 -2758 -16 -82 -35 -154 -41 -160 -8 -7 -9 -5 -5 7 15 43 68 338 86 +483 102 807 0 1628 -295 2388 -49 127 -56 157 -35 157 4 0 28 -53 53 -117z +m-49 -14 c351 -860 439 -1912 236 -2826 -32 -143 -38 -110 -8 40 102 509 118 +1125 44 1635 -56 380 -171 807 -304 1129 -40 96 -45 129 -18 120 6 -2 28 -46 +50 -98z m-51 -30 c137 -336 249 -750 303 -1121 60 -413 60 -972 0 -1378 -22 +-150 -65 -374 -75 -390 -15 -24 -20 -6 -10 30 14 49 57 314 76 465 21 177 30 +684 15 885 -41 536 -166 1060 -361 1518 -21 49 -26 70 -18 80 19 23 31 7 70 +-89z m208 56 c0 -5 -5 -3 -10 5 -5 8 -10 20 -10 25 0 6 5 3 10 -5 5 -8 10 -19 +10 -25z m-242 -147 c138 -351 236 -720 286 -1073 38 -269 41 -324 41 -695 0 +-371 -3 -428 -41 -695 -18 -126 -60 -345 -68 -353 -17 -16 -16 19 3 120 166 +900 70 1849 -273 2688 -41 100 -52 137 -44 147 24 29 38 8 96 -139z m-84 19 +c57 -134 150 -405 196 -575 179 -653 217 -1378 105 -2042 -33 -199 -36 -213 +-48 -227 -19 -25 -23 -2 -11 59 87 427 106 988 49 1464 -52 434 -181 918 -345 +1296 -37 85 -39 92 -22 104 9 7 22 13 27 14 6 0 28 -42 49 -93z m370 3 c5 -20 +3 -19 -8 5 -7 17 -16 41 -20 55 -5 20 -3 19 8 -5 7 -16 16 -41 20 -55z m-406 +-127 c332 -841 422 -1708 270 -2591 -20 -114 -38 -166 -53 -151 -3 4 3 58 14 +120 83 482 86 1045 6 1545 -57 357 -174 763 -312 1087 l-55 127 24 20 c13 11 +26 19 29 20 4 0 38 -80 77 -177z m-88 -10 c270 -654 394 -1353 360 -2028 -16 +-329 -65 -688 -97 -712 -9 -7 -18 -11 -19 -10 -2 2 7 77 20 168 39 265 49 418 +49 699 0 614 -110 1183 -335 1745 -34 83 -69 168 -80 189 l-20 39 29 22 c15 +13 31 21 34 19 4 -2 30 -61 59 -131z m-70 -70 c177 -421 297 -898 346 -1378 +21 -206 24 -649 5 -840 -23 -240 -59 -459 -78 -472 -9 -7 -19 -13 -23 -13 -3 +0 4 69 16 153 37 257 47 442 41 760 -6 289 -16 413 -57 667 -57 350 -181 769 +-327 1098 l-55 125 28 23 c16 13 32 23 35 24 4 0 34 -66 69 -147z m599 102 c0 +-5 -4 -3 -9 5 -5 8 -9 22 -9 30 0 16 17 -16 18 -35z m-1179 -9 c0 -2 -8 -10 +-17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m30 -10 c0 -2 -8 -10 -17 +-17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m475 -164 c171 -401 283 -828 +340 -1292 23 -181 31 -671 16 -867 -11 -140 -46 -419 -57 -454 -5 -20 -44 -33 +-44 -16 0 7 9 77 20 157 109 814 -23 1711 -361 2454 l-59 130 33 27 c17 15 35 +25 39 23 3 -2 36 -75 73 -162z m-515 134 c0 -2 -8 -10 -17 -17 -16 -13 -17 +-12 -4 4 13 16 21 21 21 13z m40 1 c0 -2 -12 -14 -27 -28 l-28 -24 24 28 c23 +25 31 32 31 24z m30 -10 c0 -2 -10 -12 -22 -23 l-23 -19 19 23 c18 21 26 27 +26 19z m-200 -30 c0 -2 -10 -12 -22 -23 l-23 -19 19 23 c18 21 26 27 26 19z +m15 -27 c-16 -16 -32 -30 -37 -30 -8 0 53 59 61 60 3 0 -8 -13 -24 -30z m547 +-138 c333 -775 445 -1602 332 -2450 -14 -101 -20 -125 -36 -133 -11 -6 -22 -8 +-25 -5 -3 3 2 63 11 134 104 820 -36 1707 -388 2464 l-45 98 37 30 36 30 14 +-26 c7 -14 36 -78 64 -142z m-513 132 c-13 -14 -33 -30 -44 -36 -11 -6 -2 6 +20 25 47 43 58 48 24 11z m101 22 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 +13 16 21 21 21 13z m-60 -20 c0 -2 -21 -20 -47 -41 l-48 -37 45 41 c45 41 50 +45 50 37z m-180 -9 c0 -2 -17 -19 -37 -38 l-38 -34 34 38 c33 34 41 42 41 34z +m4 -38 c-16 -17 -38 -35 -49 -41 -11 -5 0 8 25 31 54 48 65 53 24 10z m166 8 +c0 -2 -15 -16 -32 -33 l-33 -29 29 33 c28 30 36 37 36 29z m-160 -42 c-19 -19 +-39 -35 -44 -35 -10 1 63 70 73 70 3 0 -10 -16 -29 -35z m190 32 c0 -2 -15 +-16 -32 -33 l-33 -29 29 33 c28 30 36 37 36 29z m333 -95 c295 -627 448 -1417 +409 -2106 -6 -113 -19 -266 -29 -341 -15 -123 -19 -138 -40 -152 -13 -9 -25 +-14 -27 -12 -3 2 3 60 12 129 21 164 24 801 4 965 -47 387 -123 718 -238 1042 +-54 153 -131 338 -186 447 l-30 58 33 34 c18 19 36 34 39 34 4 0 28 -44 53 +-98z m-678 38 c-21 -22 -43 -40 -48 -40 -9 0 73 79 83 80 2 0 -14 -18 -35 -40z +m179 9 c-16 -17 -38 -35 -49 -40 -11 -6 0 8 25 30 53 49 65 53 24 10z m-164 +-34 c-24 -25 -49 -45 -55 -45 -9 0 84 89 95 90 2 0 -16 -20 -40 -45z m194 24 +c-10 -12 -32 -30 -49 -41 -21 -13 -16 -7 14 21 46 44 67 55 35 20z m-179 -49 +c-21 -22 -44 -40 -50 -40 -9 1 74 80 85 80 2 0 -14 -18 -35 -40z m200 32 c-6 +-4 -28 -23 -50 -42 l-40 -35 40 43 c21 23 44 42 49 42 6 0 6 -3 1 -8z m370 +-129 c208 -462 322 -878 387 -1408 20 -167 17 -801 -5 -969 -9 -71 -20 -133 +-24 -137 -5 -4 -18 -10 -31 -14 -20 -6 -22 -4 -18 17 37 168 41 752 8 1029 +-62 518 -193 981 -397 1405 l-63 132 37 36 c19 20 39 36 42 36 4 0 33 -57 64 +-127z m-555 72 c-24 -24 -46 -42 -49 -39 -5 4 78 83 89 84 2 0 -16 -20 -40 +-45z m200 42 c0 -2 -19 -21 -42 -42 l-43 -40 40 43 c36 39 45 47 45 39z m-380 +-52 c-24 -25 -46 -45 -49 -45 -3 0 15 20 39 45 24 25 46 45 49 45 3 0 -15 -20 +-39 -45z m-4035 25 c13 -5 14 -9 5 -9 -8 0 -24 4 -35 9 -13 5 -14 9 -5 9 8 0 +24 -4 35 -9z m4055 -45 c-24 -25 -46 -45 -49 -45 -3 0 15 20 39 45 24 25 46 +45 49 45 3 0 -15 -20 -39 -45z m210 42 c0 -2 -19 -21 -42 -42 l-43 -40 40 43 +c36 39 45 47 45 39z m-4142 -66 c534 -179 1031 -446 1482 -797 58 -45 125 +-100 150 -124 38 -36 36 -35 -15 8 -494 408 -1079 729 -1665 912 -124 39 -173 +60 -142 60 7 0 92 -27 190 -59z m3992 46 c0 -1 -24 -25 -52 -52 l-53 -50 50 +53 c46 48 55 57 55 49z m130 -42 c-24 -25 -46 -45 -49 -45 -3 0 15 20 39 45 +24 25 46 45 49 45 3 0 -15 -20 -39 -45z m20 -20 c-24 -25 -46 -45 -49 -45 -3 +0 15 20 39 45 24 25 46 45 49 45 3 0 -15 -20 -39 -45z m-4144 -20 c878 -293 +1654 -823 2244 -1532 90 -109 48 -68 -68 65 -597 687 -1396 1207 -2264 1473 +-60 18 -108 36 -108 41 0 15 33 8 196 -47z m3974 10 c-24 -25 -49 -45 -54 -45 +-6 0 10 20 34 45 24 25 49 45 54 45 6 0 -10 -20 -34 -45z m549 -14 c44 -86 +142 -319 190 -449 102 -279 192 -664 232 -1002 42 -350 25 -1039 -27 -1077 +-26 -19 -46 -17 -40 5 15 52 28 388 23 591 -16 623 -157 1217 -418 1760 -38 +79 -69 149 -69 156 0 10 65 73 77 75 2 0 16 -27 32 -59z m-689 46 c0 -1 -24 +-25 -52 -52 l-53 -50 50 53 c46 48 55 57 55 49z m150 -62 c-24 -25 -46 -42 +-49 -40 -3 3 15 25 39 50 24 25 46 42 49 40 3 -3 -15 -25 -39 -50z m170 10 +c-24 -25 -46 -45 -49 -45 -3 0 15 20 39 45 24 25 46 45 49 45 3 0 -15 -20 -39 +-45z m-4169 -29 c605 -199 1135 -493 1634 -907 180 -149 681 -666 664 -684 -3 +-2 -47 45 -98 105 -111 129 -408 424 -536 531 -533 447 -1173 791 -1792 964 +-38 11 -63 23 -63 31 0 21 15 18 191 -40z m3819 9 c-24 -24 -46 -42 -49 -39 +-6 6 73 84 86 84 4 0 -13 -20 -37 -45z m198 -14 c-24 -27 -45 -47 -47 -45 -5 +4 79 94 87 94 2 0 -16 -22 -40 -49z m-138 36 c0 -1 -24 -25 -52 -52 l-53 -50 +50 53 c46 48 55 57 55 49z m160 -57 c-23 -27 -47 -50 -53 -50 -6 0 11 23 38 +50 27 28 51 50 53 50 2 0 -15 -22 -38 -50z m160 47 c0 -2 -15 -16 -32 -33 +l-33 -29 29 33 c28 30 36 37 36 29z m-316 -29 c-45 -55 -68 -78 -78 -78 -6 0 +12 23 39 50 51 52 72 66 39 28z m-3914 -34 c267 -85 458 -163 714 -291 468 +-234 893 -541 1266 -913 144 -144 330 -355 330 -374 0 -6 -12 3 -26 19 -306 +355 -592 616 -949 866 -409 285 -903 526 -1365 664 -132 40 -146 47 -136 64 +10 15 5 16 166 -35z m4480 -33 c119 -238 257 -616 324 -891 42 -173 80 -385 +101 -570 22 -189 30 -580 16 -770 -16 -211 -16 -214 -53 -228 l-31 -11 7 42 +c13 90 18 525 7 673 -42 575 -179 1094 -418 1586 l-76 156 39 46 c21 25 39 46 +41 46 2 0 21 -36 43 -79z m-378 42 c-24 -33 -72 -80 -72 -70 0 8 80 97 87 97 +2 0 -5 -12 -15 -27z m-402 -28 c-24 -25 -46 -45 -49 -45 -3 0 15 20 39 45 24 +25 46 45 49 45 3 0 -15 -20 -39 -45z m209 -4 c-58 -64 -73 -65 -19 -1 23 28 +47 50 52 50 6 0 -9 -22 -33 -49z m-149 26 c0 -1 -24 -25 -52 -52 l-53 -50 50 +53 c46 48 55 57 55 49z m182 -34 c-36 -46 -72 -79 -72 -67 0 8 90 104 98 104 +2 0 -10 -17 -26 -37z m170 10 c-11 -16 -30 -37 -43 -48 l-24 -20 15 20 c18 26 +63 75 68 75 2 0 -5 -12 -16 -27z m-4132 -32 c731 -226 1389 -616 1947 -1155 +156 -150 375 -395 366 -410 -3 -5 -15 2 -26 15 -10 13 -71 81 -135 151 -571 +628 -1363 1122 -2182 1362 -97 28 -116 37 -118 55 -4 28 2 27 148 -18z m3754 +-16 c-26 -31 -49 -53 -52 -50 -5 5 87 105 96 105 2 0 -18 -25 -44 -55z m416 +52 c0 -2 -15 -16 -32 -33 l-33 -29 29 33 c28 30 36 37 36 29z m-211 -66 c-24 +-28 -45 -48 -47 -46 -3 2 15 27 38 55 23 28 45 49 47 46 3 -3 -14 -27 -38 -55z +m-180 -9 c-24 -25 -45 -49 -46 -51 -2 -2 -5 -2 -8 1 -3 3 15 29 41 57 26 28 +49 49 52 46 3 -3 -14 -27 -39 -53z m212 0 c-34 -44 -61 -68 -61 -56 0 8 80 94 +88 94 2 0 -10 -17 -27 -38z m-179 -9 c-35 -45 -72 -79 -72 -68 0 11 83 103 93 +104 5 1 -5 -16 -21 -36z m348 33 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 +13 16 21 21 21 13z m277 -143 c282 -590 423 -1212 423 -1864 0 -182 -16 -429 +-28 -441 -4 -4 -18 -9 -32 -13 l-26 -6 9 108 c12 145 2 537 -18 703 -61 517 +-194 976 -411 1415 -41 83 -74 153 -74 157 0 11 70 88 80 88 4 0 39 -66 77 +-147z m-4470 101 c767 -230 1452 -637 2019 -1199 173 -172 316 -334 307 -348 +-3 -6 -44 32 -91 84 -617 684 -1405 1174 -2292 1426 -58 17 -65 22 -68 46 -2 +15 -1 27 2 27 3 0 58 -16 123 -36z m4061 18 c-24 -34 -79 -94 -83 -90 -4 4 84 +108 91 108 3 0 -1 -8 -8 -18z m-387 -9 c-5 -10 -29 -36 -53 -58 -42 -40 -31 +-22 31 48 28 31 36 35 22 10z m174 -48 c-26 -30 -50 -53 -53 -51 -2 3 17 30 +43 61 26 30 50 53 53 51 2 -3 -17 -30 -43 -61z m295 61 c0 -2 -8 -10 -17 -17 +-16 -13 -17 -12 -4 4 13 16 21 21 21 13z m-510 -19 c0 -2 -17 -19 -37 -38 +l-38 -34 34 38 c33 34 41 42 41 34z m24 -61 c-26 -31 -50 -54 -52 -51 -2 2 17 +29 43 60 26 30 50 53 53 51 2 -3 -17 -30 -44 -60z m419 51 c-14 -24 -83 -101 +-83 -93 0 4 19 30 42 57 40 48 57 62 41 36z m-209 -61 c-26 -31 -50 -54 -52 +-51 -3 2 17 30 43 60 26 31 50 54 52 51 3 -3 -16 -30 -43 -60z m-163 17 c-36 +-49 -83 -98 -79 -85 5 18 81 111 91 112 5 0 -1 -12 -12 -27z m187 -38 c-23 +-30 -46 -55 -51 -55 -9 0 4 21 48 73 48 57 50 43 3 -18z m-3776 -21 c703 -228 +1313 -593 1857 -1110 132 -124 331 -345 331 -366 0 -26 -6 -23 -47 25 -21 23 +-96 102 -168 176 -573 588 -1300 1023 -2090 1250 -125 36 -130 38 -133 66 -4 +27 -3 28 37 21 22 -3 118 -31 213 -62z m3592 10 c-21 -26 -42 -52 -46 -58 -4 +-6 -10 -8 -13 -5 -3 4 16 32 41 63 26 31 49 54 52 51 3 -2 -13 -26 -34 -51z +m339 13 c-15 -19 -30 -32 -32 -30 -5 3 49 63 57 63 2 0 -9 -15 -25 -33z m-143 +-37 c-40 -47 -60 -65 -44 -37 17 27 78 96 82 92 3 -2 -14 -27 -38 -55z m473 +-97 c215 -445 341 -884 404 -1403 13 -109 17 -222 18 -455 0 -170 -4 -322 -8 +-337 -4 -15 -20 -34 -35 -42 l-28 -14 0 276 c0 279 -8 391 -45 642 -65 433 +-212 886 -413 1276 l-62 120 40 47 c21 26 42 47 46 47 4 0 41 -71 83 -157z +m-654 83 c-24 -31 -47 -56 -52 -56 -11 0 -1 16 46 73 55 65 59 51 6 -17z +m-209 51 c0 -2 -12 -14 -27 -28 l-28 -24 24 28 c23 25 31 32 31 24z m-6 -52 +c-26 -30 -50 -53 -52 -50 -6 5 80 104 91 105 5 0 -13 -25 -39 -55z m416 -10 +c-24 -31 -45 -53 -47 -51 -6 6 80 115 86 110 2 -2 -15 -28 -39 -59z m-391 -7 +c-56 -69 -62 -76 -58 -61 6 19 83 113 92 113 5 0 -10 -24 -34 -52z m210 -12 +c-24 -31 -48 -56 -53 -56 -9 0 -7 4 48 73 21 26 40 46 43 43 3 -3 -14 -30 -38 +-60z m321 60 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z +m-99 -33 c-30 -42 -74 -90 -65 -73 10 19 75 100 81 100 2 0 -5 -12 -16 -27z +m-3985 -8 c660 -189 1269 -518 1802 -973 154 -131 502 -487 502 -513 0 -10 -2 +-19 -4 -19 -3 0 -96 91 -208 203 -112 112 -243 237 -293 279 -530 443 -1114 +756 -1760 943 -150 43 -150 43 -153 74 -4 38 0 38 114 6z m3565 -45 c-28 -33 +-51 -56 -51 -50 0 14 91 122 97 116 3 -3 -18 -32 -46 -66z m218 -4 c-24 -31 +-48 -56 -53 -56 -9 0 -8 2 49 73 21 26 40 45 42 43 3 -3 -14 -30 -38 -60z +m222 37 c-6 -10 -27 -36 -46 -58 -32 -35 -31 -33 7 18 43 57 57 72 39 40z +m-377 -5 c-4 -7 -23 -33 -42 -58 -20 -25 -37 -47 -39 -49 -2 -2 -6 -2 -9 2 -7 +6 77 116 89 116 5 1 5 -5 1 -11z m180 -55 c-55 -69 -54 -68 -54 -56 0 15 80 +116 87 109 3 -3 -12 -27 -33 -53z m-161 24 c-24 -40 -78 -107 -85 -107 -11 0 +-3 15 42 73 32 42 63 66 43 34z m650 -139 c207 -418 342 -864 402 -1328 25 +-190 38 -491 30 -663 l-7 -158 -29 -14 c-15 -8 -30 -15 -33 -15 -3 0 -5 102 +-5 228 -1 267 -16 449 -57 682 -70 398 -201 795 -381 1150 -46 90 -83 168 -83 +173 0 12 70 97 80 97 4 0 42 -69 83 -152z m-870 129 c-22 -36 -79 -106 -86 +-107 -5 0 0 10 10 23 60 75 78 97 81 97 2 0 -1 -6 -5 -13z m411 -24 c-53 -73 +-67 -88 -61 -70 9 25 70 106 81 107 4 0 -4 -17 -20 -37z m-3620 -74 c557 -185 +1086 -481 1549 -867 103 -85 392 -366 468 -453 33 -38 47 -62 43 -73 -5 -12 +-46 23 -168 146 -396 400 -813 698 -1311 939 -268 129 -592 249 -852 315 -71 +18 -73 19 -73 50 0 17 2 33 6 36 7 8 161 -35 338 -93z m3415 26 c-41 -55 -56 +-68 -46 -40 11 27 82 116 85 106 2 -6 -15 -35 -39 -66z m371 72 c0 -2 -10 -12 +-22 -23 l-23 -19 19 23 c18 21 26 27 26 19z m-595 -77 c-26 -34 -49 -59 -52 +-56 -3 2 17 32 43 65 63 78 70 71 9 -9z m435 6 c-24 -31 -45 -55 -47 -52 -3 2 +14 30 38 61 23 30 44 54 46 51 3 -2 -14 -30 -37 -60z m-366 32 c-22 -37 -88 +-118 -95 -118 -11 0 83 129 94 130 5 0 5 -6 1 -12z m184 -56 c-23 -31 -44 -59 +-45 -61 -2 -2 -6 -2 -9 2 -8 8 79 126 88 120 4 -2 -11 -30 -34 -61z m220 26 +c-13 -18 -33 -45 -44 -60 -10 -15 -23 -28 -27 -28 -5 0 13 27 38 60 25 33 49 +60 52 60 3 0 -6 -15 -19 -32z m-528 18 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 +-4 4 13 16 21 21 21 13z m144 -18 c-24 -40 -87 -119 -91 -114 -7 6 79 125 90 +126 5 0 5 -6 1 -12z m185 -55 c-23 -32 -44 -60 -46 -62 -1 -2 -5 -2 -8 1 -7 7 +74 118 86 118 5 0 -9 -26 -32 -57z m190 -3 c-23 -33 -44 -60 -46 -60 -6 0 5 +18 44 73 19 26 37 47 39 47 3 0 -14 -27 -37 -60z m-351 33 c-11 -27 -83 -123 +-90 -123 -13 0 -10 6 37 73 22 31 44 57 48 57 5 0 7 -3 5 -7z m180 -62 c-23 +-33 -46 -61 -50 -61 -11 0 -5 10 45 78 53 73 58 59 5 -17z m-3683 24 c614 +-173 1176 -462 1672 -860 164 -131 363 -314 480 -441 75 -82 89 -103 81 -117 +-8 -16 -29 2 -151 125 -548 552 -1231 961 -1975 1182 -81 24 -171 49 -199 56 +-53 12 -53 12 -53 51 0 21 5 39 11 39 6 0 66 -16 134 -35z m4180 -125 c216 +-431 348 -864 410 -1343 20 -154 34 -471 27 -615 -5 -112 -5 -113 -33 -127 +-15 -8 -30 -15 -34 -15 -3 0 -5 75 -5 168 0 473 -96 974 -272 1427 -56 143 +-174 396 -230 492 l-36 61 40 56 c23 30 45 53 50 50 5 -3 42 -72 83 -154z +m-917 118 c-13 -18 -35 -48 -48 -65 -13 -18 -25 -31 -28 -29 -4 4 88 126 96 +126 2 0 -7 -15 -20 -32z m236 -30 c-47 -66 -64 -85 -64 -72 0 16 80 124 91 +124 6 0 -6 -24 -27 -52z m204 -17 c-51 -71 -74 -83 -27 -13 39 58 61 83 66 78 +3 -2 -15 -31 -39 -65z m-404 47 c-6 -10 -65 -96 -81 -117 -2 -2 -5 -2 -8 1 -5 +5 83 128 92 128 2 0 1 -6 -3 -12z m-15 -82 c-24 -36 -48 -66 -52 -66 -10 0 -5 +8 47 82 22 32 42 56 44 53 3 -2 -15 -34 -39 -69z m265 62 c-4 -7 -21 -33 -38 +-58 -17 -24 -34 -49 -38 -54 -4 -6 -10 -8 -13 -4 -8 8 75 128 88 128 4 0 5 -6 +1 -12z m203 -10 c-9 -13 -29 -42 -44 -65 -15 -24 -32 -43 -37 -43 -5 0 -1 10 +7 23 9 12 29 41 44 64 15 24 32 43 37 43 5 0 1 -10 -7 -22z m-404 -21 c-45 +-71 -88 -127 -91 -119 -4 13 78 132 90 132 5 0 5 -6 1 -13z m227 7 c0 -12 -82 +-125 -87 -120 -7 6 69 126 80 126 4 0 7 -2 7 -6z m164 -58 c-20 -31 -39 -54 +-41 -52 -3 2 12 29 33 60 20 31 39 54 41 52 3 -2 -12 -29 -33 -60z m-3724 3 +c269 -71 539 -175 820 -315 429 -214 765 -447 1115 -771 185 -172 266 -263 +258 -292 -5 -19 -23 -4 -152 122 -427 418 -911 740 -1462 972 -162 69 -473 +173 -626 210 l-113 28 0 44 c0 50 -17 50 160 2z m3317 -44 c-25 -37 -47 -63 +-50 -58 -3 4 16 39 41 77 25 37 48 63 50 58 2 -6 -17 -41 -41 -77z m227 5 +c-34 -52 -54 -73 -54 -54 0 12 82 125 87 120 3 -3 -12 -32 -33 -66z m196 10 +c-22 -33 -43 -60 -46 -60 -2 0 14 27 36 60 22 33 43 60 46 60 2 0 -14 -27 -36 +-60z m-392 -35 c-41 -66 -58 -85 -58 -65 0 16 84 139 92 134 4 -3 -11 -34 -34 +-69z m741 -130 c179 -358 300 -729 365 -1115 39 -230 47 -319 53 -581 l6 -245 +-34 -22 -34 -21 -6 172 c-17 441 -84 802 -225 1207 -72 209 -180 448 -275 612 +-22 36 -39 71 -39 77 0 5 17 34 38 65 l37 54 17 -21 c10 -12 53 -94 97 -182z +m-949 191 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m428 +-61 c-23 -36 -46 -65 -51 -65 -5 0 -1 12 9 28 56 86 67 102 75 102 4 0 -10 +-29 -33 -65z m-450 -19 c-24 -36 -47 -66 -51 -66 -4 0 13 31 40 69 60 88 69 +85 11 -3z m250 -21 c-23 -37 -44 -63 -46 -56 -2 6 15 41 39 78 24 36 45 61 46 +56 2 -6 -15 -41 -39 -78z m221 10 c-23 -36 -45 -65 -50 -65 -4 0 10 29 33 65 +23 36 45 65 49 65 5 0 -10 -29 -32 -65z m-509 10 c-17 -25 -33 -45 -36 -45 -3 +0 9 20 26 45 17 25 33 45 36 45 3 0 -9 -20 -26 -45z m59 -29 c-24 -36 -47 -66 +-51 -66 -11 0 -8 5 45 83 53 80 58 66 6 -17z m294 41 c-16 -27 -76 -122 -79 +-126 -2 -2 -7 -2 -10 2 -8 8 79 147 88 141 5 -3 5 -11 1 -17z m-223 8 c0 -12 +-92 -146 -97 -142 -7 7 78 147 89 147 5 0 8 -2 8 -5z m398 -60 c-23 -36 -43 +-63 -46 -61 -6 7 69 126 79 126 5 0 -10 -29 -33 -65z m-3658 30 c786 -199 +1534 -629 2114 -1213 98 -99 108 -113 102 -137 -7 -26 -11 -23 -139 102 -576 +557 -1277 950 -2047 1147 l-135 34 -3 46 c-2 25 0 46 3 46 4 0 51 -11 105 -25z +m3239 -79 c-42 -68 -49 -75 -49 -53 1 19 83 143 87 131 2 -7 -15 -41 -38 -78z +m271 80 c0 -9 -73 -127 -81 -132 -18 -11 -8 17 29 75 31 52 52 74 52 57z m161 +-66 c-23 -35 -41 -59 -41 -54 0 14 71 126 77 121 2 -3 -14 -33 -36 -67z m20 +-21 c-23 -35 -41 -60 -41 -55 0 11 73 126 78 122 2 -2 -15 -32 -37 -67z m-381 +55 c0 -17 -84 -143 -92 -138 -5 3 0 20 12 37 11 18 30 49 42 70 19 32 38 48 +38 31z m224 -6 c-17 -28 -77 -123 -80 -127 -2 -2 -7 -2 -10 1 -7 8 75 138 87 +138 6 0 7 -6 3 -12z m545 -274 c239 -489 371 -1031 387 -1594 l6 -195 -35 -22 +-34 -21 -7 141 c-27 571 -159 1085 -408 1582 -38 77 -85 166 -104 197 -39 64 +-39 62 19 147 l30 44 43 -79 c24 -44 71 -133 103 -200z m-4442 214 c-2 -13 -4 +-5 -4 17 -1 22 1 32 4 23 2 -10 2 -28 0 -40z m3402 -32 c-24 -36 -46 -66 -51 +-66 -4 0 13 32 38 70 59 89 69 85 13 -4z m301 70 c0 -4 -79 -137 -86 -145 -2 +-2 -7 -1 -10 2 -8 8 74 147 86 147 6 0 10 -2 10 -4z m217 -3 c-28 -53 -80 +-133 -84 -129 -7 7 69 136 80 136 4 0 6 -3 4 -7z m-498 -97 c-40 -64 -58 -84 +-44 -48 11 30 80 132 83 123 2 -5 -16 -38 -39 -75z m265 -7 c-44 -76 -42 -74 +-50 -67 -6 7 15 51 54 113 40 64 37 24 -4 -46z m256 76 c0 -3 -11 -22 -23 -43 +-13 -20 -32 -50 -41 -65 -10 -16 -20 -26 -23 -24 -6 7 69 137 80 137 4 0 7 -2 +7 -5z m130 -15 c-6 -11 -13 -20 -16 -20 -2 0 0 9 6 20 6 11 13 20 16 20 2 0 0 +-9 -6 -20z m-3665 -21 c778 -204 1504 -618 2049 -1167 99 -100 107 -111 97 +-131 -11 -21 -18 -16 -134 93 -457 428 -934 728 -1507 948 -148 57 -457 151 +-585 179 -33 7 -63 18 -67 23 -4 6 -8 28 -8 49 0 46 3 47 155 6z m3044 -53 +c-24 -41 -47 -72 -51 -70 -4 3 13 39 39 80 58 97 69 89 12 -10z m301 59 c0 +-12 -76 -145 -82 -145 -14 0 -8 18 30 84 32 57 52 80 52 61z m179 -52 c-37 +-68 -72 -109 -44 -53 25 49 64 110 71 110 3 0 -9 -26 -27 -57z m-443 -21 c-18 +-31 -38 -65 -43 -76 -6 -10 -13 -14 -16 -9 -8 12 74 154 84 147 4 -2 -7 -30 +-25 -62z m554 38 c-6 -11 -13 -20 -16 -20 -2 0 0 9 6 20 6 11 13 20 16 20 2 0 +0 -9 -6 -20z m-690 6 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 +21 13z m382 -87 c-22 -39 -42 -67 -45 -62 -3 5 13 42 36 82 23 40 43 68 45 62 +2 -6 -14 -43 -36 -82z m230 59 c-56 -96 -65 -109 -68 -105 -6 6 70 136 79 137 +5 0 0 -15 -11 -32z m-460 -68 c-22 -40 -43 -67 -46 -61 -4 6 12 43 35 83 54 +92 63 73 11 -22z m-3535 3 c-2 -16 -4 -3 -4 27 0 30 2 43 4 28 2 -16 2 -40 0 +-55z m4002 20 c-17 -32 -39 -65 -47 -73 -14 -14 -2 10 50 98 34 56 31 35 -3 +-25z m-3922 -30 c-2 -16 -4 -3 -4 27 0 30 2 43 4 28 2 -16 2 -40 0 -55z m3487 +-18 c-36 -70 -54 -90 -54 -64 0 11 54 112 73 137 5 7 12 10 15 7 3 -3 -12 -39 +-34 -80z m266 81 c0 -13 -84 -148 -87 -140 -4 13 68 144 79 144 4 0 8 -2 8 -4z +m508 -196 c264 -512 400 -1029 428 -1626 l7 -140 -34 -27 -34 -27 -7 63 c-3 +34 -11 127 -18 206 -41 511 -217 1072 -479 1524 -28 49 -51 92 -51 97 0 5 17 +36 37 70 l36 62 18 -23 c9 -13 53 -93 97 -179z m-2088 155 c19 -19 32 -35 29 +-35 -3 0 -20 16 -39 35 -19 19 -32 35 -29 35 3 0 20 -16 39 -35z m1781 12 +c-10 -9 -11 -8 -5 6 3 10 9 15 12 12 3 -3 0 -11 -7 -18z m-722 -44 c-26 -48 +-73 -111 -57 -78 14 30 80 135 84 135 3 0 -9 -26 -27 -57z m-3282 10 c-3 -10 +-5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m427 2 c742 -190 1433 -574 +1991 -1107 104 -99 116 -114 110 -137 -4 -14 -9 -28 -11 -30 -3 -3 -39 29 -82 +71 -377 368 -905 707 -1422 911 -237 93 -436 154 -722 221 -26 6 -28 10 -28 +56 0 37 4 50 15 50 8 0 75 -16 149 -35z m2871 -51 c-25 -43 -45 -73 -45 -65 0 +23 78 156 87 148 2 -2 -17 -40 -42 -83z m305 76 c0 -8 -65 -134 -77 -149 -2 +-2 -6 -1 -10 3 -4 4 11 40 32 81 37 69 55 90 55 65z m181 -72 c-42 -75 -57 +-80 -20 -5 30 57 51 89 56 83 3 -3 -13 -38 -36 -78z m2526 -145 c-1 -43 -3 +-10 -3 72 0 83 2 118 3 78 2 -40 2 -107 0 -150z m-2983 117 c-21 -38 -42 -70 +-46 -70 -13 0 -10 7 35 85 53 93 62 80 11 -15z m656 70 c-6 -11 -13 -20 -16 +-20 -2 0 0 9 6 20 6 11 13 20 16 20 2 0 0 -9 -6 -20z m-387 -75 c-42 -82 -41 +-80 -50 -72 -3 4 11 41 33 82 21 40 42 71 46 67 5 -5 -9 -39 -29 -77z m211 2 +c-48 -91 -55 -79 -8 14 20 41 39 69 41 64 2 -6 -13 -41 -33 -78z m-450 -23 +c-44 -81 -42 -79 -50 -72 -5 6 35 92 64 137 32 49 22 1 -14 -65z m493 34 c-13 +-24 -32 -58 -41 -76 -10 -19 -20 -32 -23 -29 -7 7 70 147 80 147 5 0 -2 -19 +-16 -42z m-3910 -50 c-2 -18 -4 -6 -4 27 0 33 2 48 4 33 2 -15 2 -42 0 -60z +m30 -10 c-2 -18 -4 -4 -4 32 0 36 2 50 4 33 2 -18 2 -48 0 -65z m3651 10 c-24 +-48 -43 -76 -45 -67 -5 19 64 149 78 149 5 0 -10 -37 -33 -82z m-3621 -10 c-2 +-18 -4 -6 -4 27 0 33 2 48 4 33 2 -15 2 -42 0 -60z m2338 42 c21 -22 37 -40 +34 -40 -3 0 -23 18 -44 40 -21 22 -37 40 -34 40 3 0 23 -18 44 -40z m1085 35 +c0 -6 -70 -147 -76 -154 -2 -2 -6 -2 -9 1 -8 7 67 158 77 158 4 0 8 -2 8 -5z +m-3393 -82 c-2 -16 -4 -3 -4 27 0 30 2 43 4 28 2 -16 2 -40 0 -55z m20 55 c-3 +-8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m30 -25 c-3 -10 -5 -2 -5 17 +0 19 2 27 5 18 2 -10 2 -26 0 -35z m3774 -23 c-20 -38 -39 -70 -44 -70 -9 0 +65 140 74 140 3 0 -10 -31 -30 -70z m92 55 c-3 -9 -8 -14 -10 -11 -3 3 -2 9 2 +15 9 16 15 13 8 -4z m-299 -87 c-23 -44 -39 -66 -42 -56 -5 25 68 162 76 140 +2 -6 -14 -43 -34 -84z m-194 75 c0 -17 -72 -153 -81 -153 -13 0 -12 3 28 85 +33 66 53 92 53 68z m-2900 -74 c679 -187 1368 -576 1853 -1048 94 -91 116 +-128 87 -146 -6 -3 -54 34 -108 84 -525 487 -1226 858 -1941 1027 -174 42 +-171 39 -171 115 l0 37 103 -24 c56 -14 136 -34 177 -45z m3315 -3 c-49 -88 +-56 -85 -9 4 20 39 39 69 41 66 3 -2 -12 -34 -32 -70z m-715 -21 c-23 -42 -44 +-74 -46 -72 -2 2 15 38 38 80 23 42 44 74 46 72 2 -2 -15 -38 -38 -80z m560 +80 c0 -6 -70 -147 -76 -154 -2 -2 -6 -2 -9 1 -8 7 67 158 77 158 4 0 8 -2 8 +-5z m439 -63 c116 -199 237 -473 316 -713 102 -314 157 -612 181 -994 l6 -100 +-32 -23 c-17 -13 -34 -21 -37 -19 -3 3 -9 61 -14 129 -42 540 -221 1111 -494 +1573 -25 42 -45 81 -45 85 0 14 67 130 75 130 2 0 22 -30 44 -68z m-669 46 +c-1 -25 -77 -161 -84 -150 -3 6 10 45 31 86 35 71 54 93 53 64z m431 -11 c-10 +-9 -11 -8 -5 6 3 10 9 15 12 12 3 -3 0 -11 -7 -18z m-732 -67 c-23 -44 -46 +-80 -51 -80 -11 0 74 160 85 160 4 0 -11 -36 -34 -80z m516 -20 c-49 -97 -58 +-81 -10 17 21 43 39 73 42 66 2 -6 -12 -44 -32 -83z m-3638 58 c-3 -8 -6 -5 +-6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m3148 -68 c-21 -43 -42 -77 -47 -74 +-4 3 11 41 33 86 22 44 43 77 47 74 3 -4 -12 -42 -33 -86z m267 -5 c-21 -43 +-41 -74 -44 -69 -9 14 64 166 74 156 6 -6 -6 -40 -30 -87z m251 -10 c-42 -85 +-65 -103 -29 -22 44 97 49 106 57 101 5 -3 -8 -38 -28 -79z m-453 71 c0 -18 +-78 -167 -84 -158 -7 12 63 162 76 162 4 0 8 -2 8 -4z m-3353 -88 c-2 -18 -4 +-6 -4 27 0 33 2 48 4 33 2 -15 2 -42 0 -60z m30 0 c-2 -18 -4 -6 -4 27 0 33 2 +48 4 33 2 -15 2 -42 0 -60z m32 3 c1 -61 -5 -49 -12 24 -4 38 -3 53 3 40 5 +-11 9 -40 9 -64z m30 -10 c2 -54 -6 -32 -12 34 -4 39 -3 50 2 30 5 -16 9 -45 +10 -64z m3531 85 c0 -19 -72 -156 -80 -151 -6 4 -3 20 9 43 10 20 26 54 34 75 +9 20 21 37 26 37 6 0 11 -2 11 -4z m-3502 -91 c0 -25 -2 -24 -9 10 -10 51 -10 +92 1 50 4 -16 8 -43 8 -60z m25 20 c4 -39 3 -50 -2 -30 -9 31 -14 102 -7 94 2 +-2 6 -31 9 -64z m24 3 c-2 -13 -4 -5 -4 17 -1 22 1 32 4 23 2 -10 2 -28 0 -40z +m3210 40 c-31 -81 -72 -157 -79 -150 -10 10 61 162 75 162 5 0 7 -6 4 -12z +m446 -63 c-20 -41 -39 -72 -42 -69 -7 6 61 144 71 144 4 0 -9 -34 -29 -75z +m-176 53 c-39 -96 -72 -157 -79 -150 -10 10 61 162 75 162 5 0 7 -6 4 -12z +m194 -84 c-22 -44 -40 -75 -41 -71 0 15 70 160 76 155 3 -3 -13 -41 -35 -84z +m-3280 32 c731 -184 1382 -538 1926 -1046 67 -63 72 -70 67 -99 -4 -17 -8 -31 +-11 -31 -2 0 -50 41 -106 91 -510 452 -1130 781 -1797 953 -74 19 -163 40 +-198 47 -34 6 -64 14 -66 18 -2 3 -7 30 -11 59 -5 41 -4 52 7 52 8 0 93 -20 +189 -44z m2844 24 c-18 -57 -69 -153 -73 -137 -4 20 57 157 70 157 5 0 6 -9 3 +-20z m-3208 -27 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m3446 +-51 c-41 -89 -39 -86 -47 -74 -7 12 65 163 75 157 4 -3 -8 -40 -28 -83z m225 +11 c-30 -69 -58 -112 -39 -61 14 37 60 128 66 128 2 0 -10 -30 -27 -67z m-428 +50 c1 -16 -65 -163 -72 -163 -14 0 -8 25 24 98 27 62 48 89 48 65z m729 -113 +c261 -462 418 -978 461 -1520 l10 -135 -32 -29 -33 -30 -6 30 c-4 16 -13 83 +-19 149 -46 476 -228 1016 -486 1442 l-45 72 37 73 c42 84 35 87 113 -52z +m-501 16 c-18 -42 -37 -76 -41 -76 -11 0 -2 25 35 108 17 37 33 62 35 55 2 -7 +-11 -46 -29 -87z m-525 7 c-41 -88 -41 -88 -48 -82 -6 7 67 159 76 159 4 0 -8 +-35 -28 -77z m-35 2 c-18 -35 -34 -63 -36 -61 -4 5 56 126 63 126 3 0 -10 -29 +-27 -65z m362 51 c0 -25 -63 -157 -72 -148 -4 4 7 43 25 85 30 72 47 95 47 63z +m-306 -92 c-20 -43 -38 -74 -41 -68 -2 6 13 46 33 90 20 43 38 74 41 68 2 -6 +-13 -46 -33 -90z m566 82 c0 -13 -73 -157 -77 -152 -8 8 57 156 68 156 5 0 9 +-2 9 -4z m-3721 -90 c1 -57 -6 -41 -12 29 -4 39 -3 51 2 35 5 -14 9 -43 10 +-64z m29 4 l0 -45 -9 40 c-4 22 -8 51 -8 65 0 23 1 23 9 5 5 -11 8 -40 8 -65z +m31 1 c1 -61 -5 -49 -13 24 -4 40 -3 53 3 40 5 -11 10 -40 10 -64z m30 -5 c1 +-67 -5 -55 -12 24 -4 42 -3 58 3 45 5 -11 9 -42 9 -69z m3099 -10 c-18 -42 +-36 -76 -41 -76 -11 0 -3 25 35 108 42 91 47 63 6 -32z m291 36 c-11 -26 -27 +-62 -35 -80 -7 -18 -18 -31 -23 -27 -6 3 -2 24 10 53 11 26 27 62 35 80 7 18 +18 31 23 27 6 -3 2 -24 -10 -53z m-3360 -16 c4 -31 4 -56 -1 -56 -4 0 -8 17 +-8 38 0 20 -3 48 -7 62 -3 14 -3 22 1 18 4 -3 11 -31 15 -62z m30 -20 c1 -57 +-5 -40 -12 29 -3 37 -2 51 3 35 4 -14 8 -43 9 -64z m18 42 c-3 -7 -5 -2 -5 12 +0 14 2 19 5 13 2 -7 2 -19 0 -25z m3542 -52 c-18 -42 -37 -76 -41 -76 -8 0 -2 +18 36 104 14 33 29 57 32 54 3 -3 -10 -40 -27 -82z m-3742 7 c-2 -16 -4 -5 -4 +22 0 28 2 40 4 28 2 -13 2 -35 0 -50z m230 35 c-3 -7 -5 -2 -5 12 0 14 2 19 5 +13 2 -7 2 -19 0 -25z m3024 -63 c-16 -38 -35 -71 -41 -73 -15 -5 -7 21 33 107 +39 86 46 57 8 -34z m275 2 c-37 -85 -46 -100 -46 -73 0 30 62 168 71 159 5 -5 +-6 -43 -25 -86z m-2995 48 c399 -88 822 -252 1194 -463 310 -175 825 -572 825 +-635 -1 -52 -15 -48 -99 25 -529 464 -1184 792 -1891 948 -73 16 -136 32 -140 +37 -12 13 -23 113 -12 113 5 0 60 -11 123 -25z m3240 -34 c-11 -27 -26 -62 +-31 -77 -6 -15 -13 -24 -17 -21 -3 4 9 41 27 82 18 41 35 73 38 71 3 -3 -5 +-28 -17 -55z m-483 -39 c-37 -90 -34 -86 -47 -78 -6 4 -3 22 9 49 10 23 25 59 +34 80 9 21 20 36 25 33 5 -4 -4 -40 -21 -84z m-3081 31 c-3 -10 -5 -2 -5 17 0 +19 2 27 5 18 2 -10 2 -26 0 -35z m3351 -35 c-17 -40 -34 -77 -39 -82 -16 -18 +-10 21 12 71 11 26 25 58 30 71 5 13 13 21 18 18 5 -3 -4 -39 -21 -78z m313 +55 c-12 -20 -14 -14 -5 12 4 9 9 14 11 11 3 -2 0 -13 -6 -23z m-78 -40 c-14 +-32 -29 -69 -34 -82 -5 -13 -12 -22 -14 -19 -7 7 57 158 66 158 5 0 -4 -26 +-18 -57z m-443 39 c0 -5 -15 -46 -34 -93 -24 -57 -36 -79 -41 -67 -7 18 52 +168 66 168 5 0 9 -4 9 -8z m-3113 -34 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 +2 -19 0 -25z m3346 -63 c-15 -41 -31 -75 -35 -75 -15 0 -10 17 44 150 6 14 12 +20 15 13 2 -7 -8 -46 -24 -88z m216 1 c-18 -42 -34 -75 -36 -73 -1 2 11 38 29 +80 17 42 33 75 35 73 2 -2 -10 -38 -28 -80z m293 -13 c264 -460 422 -953 468 +-1466 l10 -117 -32 -29 c-18 -16 -34 -28 -35 -27 -1 1 -9 60 -18 131 -57 470 +-222 955 -460 1350 l-65 109 32 73 c17 40 34 73 38 73 3 0 31 -44 62 -97z +m-1043 -2 c-18 -45 -36 -81 -41 -81 -4 0 8 36 27 81 19 44 35 83 35 87 0 3 3 +3 6 -1 3 -3 -9 -42 -27 -86z m331 77 c0 -23 -58 -163 -67 -160 -12 3 -11 10 +22 95 27 70 45 96 45 65z m3017 -25 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 +2 -21 0 -30z m-6388 -67 c1 -67 -5 -55 -12 24 -4 42 -3 58 3 45 5 -11 9 -42 9 +-69z m31 13 c3 -32 2 -59 -2 -59 -4 0 -8 12 -8 28 0 15 -3 45 -7 67 -3 22 -2 +36 3 32 4 -4 11 -35 14 -68z m33 -1 c3 -33 2 -58 -4 -58 -5 0 -9 19 -9 43 0 +23 -3 53 -6 67 -5 17 -3 22 3 15 6 -5 13 -36 16 -67z m3007 -14 c-31 -77 -50 +-111 -50 -87 0 6 9 33 21 60 11 26 27 63 35 82 8 19 17 32 20 29 2 -3 -9 -41 +-26 -84z m560 79 c0 -20 -64 -165 -68 -154 -5 15 50 161 60 161 5 0 8 -3 8 -7z +m-3540 -22 c0 -10 3 -40 6 -67 4 -27 4 -46 1 -43 -11 9 -24 129 -15 129 4 0 8 +-8 8 -19z m38 -86 l0 -30 -8 30 c-4 17 -8 48 -8 70 l0 40 9 -40 c4 -22 8 -53 +7 -70z m30 33 c5 -32 6 -58 2 -58 -8 0 -21 77 -19 114 1 30 7 10 17 -56z +m3221 -21 c-33 -89 -36 -94 -46 -83 -6 6 12 67 44 144 7 18 18 30 23 27 5 -3 +-4 -42 -21 -88z m-3185 -11 c3 -22 1 -35 -3 -30 -5 5 -11 36 -14 69 -7 64 6 +36 17 -39z m30 -6 c4 -21 3 -31 -3 -25 -5 6 -11 37 -14 70 -6 60 1 41 17 -45z +m3597 73 c-12 -20 -14 -14 -5 12 4 9 9 14 11 11 3 -2 0 -13 -6 -23z m-3854 +-60 c-2 -16 -4 -3 -4 27 0 30 2 43 4 28 2 -16 2 -40 0 -55z m270 40 c-3 -10 +-5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m2888 20 c-4 -10 -18 -48 -32 +-85 -14 -38 -29 -68 -34 -68 -12 0 -13 -1 22 89 17 45 35 81 41 81 6 0 7 -8 3 +-17z m533 9 c-1 -4 -16 -42 -32 -85 -16 -42 -32 -74 -36 -72 -10 6 50 165 62 +165 5 0 8 -4 6 -8z m-3108 -42 c403 -87 819 -246 1195 -457 209 -118 533 -351 +729 -526 47 -42 49 -44 40 -79 l-9 -36 -70 60 c-515 443 -1181 769 -1857 909 +-79 16 -144 29 -144 29 -1 0 -4 19 -8 43 -4 23 -10 52 -13 65 -5 20 -2 22 18 +18 13 -3 67 -15 119 -26z m2446 -7 c-8 -15 -15 -25 -16 -21 0 12 23 58 27 54 +3 -2 -2 -17 -11 -33z m163 25 c-1 -22 -55 -159 -62 -159 -13 2 -11 12 18 92 +26 71 46 101 44 67z m279 0 c-49 -137 -62 -168 -70 -160 -7 7 7 59 41 145 10 +26 38 40 29 15z m221 -69 c-11 -30 -25 -65 -30 -78 -5 -13 -12 -21 -15 -18 -3 +2 9 42 27 88 18 46 34 79 36 73 2 -6 -6 -36 -18 -65z m-492 -44 c-16 -47 -33 +-85 -38 -85 -15 0 -10 24 17 96 30 81 33 86 43 79 5 -2 -5 -43 -22 -90z m302 +83 c-1 -28 -56 -159 -65 -156 -5 2 -8 8 -6 13 28 97 74 189 71 143z m241 -1 +c0 -12 -69 -169 -70 -158 0 22 53 161 62 161 5 0 8 -1 8 -3z m-3463 -39 c-3 +-7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2983 15 c0 -9 -51 -166 -56 +-172 -1 -1 -7 0 -13 3 -8 6 13 81 44 159 7 17 25 24 25 10z m270 -10 c0 -18 +-56 -163 -62 -163 -5 0 -8 5 -8 11 0 22 53 159 61 159 5 0 9 -3 9 -7z m197 +-82 c-17 -46 -33 -79 -35 -73 -1 5 7 34 19 63 11 30 25 65 30 78 5 13 11 22 +14 19 2 -2 -10 -41 -28 -87z m-435 63 c7 -6 -40 -154 -53 -168 -21 -23 -19 9 +7 88 27 82 33 93 46 80z m-3309 -74 c3 -39 2 -55 -3 -40 -8 25 -13 117 -6 109 +2 -2 6 -33 9 -69z m30 -5 c4 -44 3 -61 -2 -45 -9 24 -15 127 -7 119 2 -2 6 +-35 9 -74z m35 -40 l0 -30 -8 30 c-4 17 -8 50 -8 75 l1 45 8 -45 c4 -25 7 -58 +7 -75z m35 13 c3 -21 2 -38 -2 -38 -9 0 -22 76 -20 119 1 22 2 20 9 -9 4 -19 +10 -52 13 -72z m31 12 c4 -35 3 -50 -2 -40 -5 8 -12 42 -16 75 -7 75 9 43 18 +-35z m3446 81 c0 -10 -51 -153 -57 -160 -1 -2 -6 -2 -9 2 -8 8 48 167 58 167 +5 0 8 -4 8 -9z m195 -56 c-14 -36 -25 -68 -25 -72 0 -3 -2 -4 -5 -1 -7 7 40 +138 49 138 3 0 -6 -29 -19 -65z m278 -27 c237 -399 397 -873 453 -1341 l17 +-139 -35 -35 -35 -35 -8 68 c-45 430 -226 950 -466 1337 -27 43 -49 84 -49 90 +0 19 53 147 60 147 4 0 32 -42 63 -92z m-3887 17 c6 -36 7 -65 3 -65 -4 0 -10 +21 -13 48 -4 26 -9 55 -12 65 -3 9 -1 17 4 17 5 0 13 -29 18 -65z m38 -30 c4 +-35 4 -45 -4 -34 -5 9 -12 43 -15 75 -6 69 8 38 19 -41z m30 5 c8 -68 -8 -37 +-18 35 -4 32 -3 44 3 35 5 -8 12 -40 15 -70z m30 11 c7 -34 9 -61 6 -61 -4 0 +-10 19 -14 43 -4 23 -10 53 -13 67 -3 14 -3 22 1 18 4 -3 13 -34 20 -67z m30 +-11 c4 -42 3 -46 -3 -20 -16 64 -21 106 -12 90 5 -8 11 -40 15 -70z m3028 -26 +c-21 -62 -32 -84 -37 -72 -9 23 44 183 57 170 6 -6 -1 -41 -20 -98z m260 1 +c-31 -92 -30 -90 -38 -82 -3 3 7 44 22 91 16 47 32 82 36 78 4 -4 -5 -44 -20 +-87z m-2947 44 c476 -99 949 -292 1366 -555 133 -84 359 -251 472 -348 74 -64 +78 -69 71 -99 -3 -18 -8 -34 -10 -36 -2 -2 -36 23 -76 56 -529 433 -1162 730 +-1828 857 l-114 22 -13 59 c-16 79 -16 76 10 70 12 -3 67 -14 122 -26z m-318 +-11 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m3063 21 c0 -14 -40 +-150 -47 -162 -3 -5 -9 -5 -14 0 -10 10 40 173 53 173 4 0 8 -5 8 -11z m-270 +-7 c0 -13 -12 -22 -22 -16 -10 6 -1 24 13 24 5 0 9 -4 9 -8z m504 -64 c-34 +-101 -34 -102 -40 -95 -8 8 46 167 56 167 5 0 -2 -33 -16 -72z m-478 17 c-8 +-23 -25 -9 -19 16 4 13 9 17 16 10 5 -5 7 -17 3 -26z m257 -63 c-14 -45 -29 +-82 -34 -82 -14 0 -11 19 17 103 35 104 50 85 17 -21z m241 -3 c-15 -45 -30 +-77 -32 -71 -2 7 6 42 19 79 25 77 29 86 36 79 3 -2 -8 -42 -23 -87z m-3307 +49 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2843 -24 c-9 -22 +-13 -25 -20 -14 -5 8 -7 17 -6 20 2 3 6 14 10 24 4 13 10 16 17 9 6 -6 6 -19 +-1 -39z m255 -59 c-15 -48 -31 -83 -35 -79 -5 5 3 48 17 97 16 51 30 84 36 78 +5 -5 -3 -45 -18 -96z m235 8 c-13 -38 -27 -72 -33 -78 -7 -7 -8 -5 -5 5 3 8 +16 48 29 88 13 41 25 69 27 63 2 -6 -6 -41 -18 -78z m-456 13 c-4 -25 -10 -34 +-17 -27 -5 5 -7 25 -3 47 5 24 11 33 17 27 6 -6 7 -26 3 -47z m-3181 -36 c7 +-71 -6 -46 -16 35 -4 29 -4 45 2 40 5 -6 11 -39 14 -75z m32 14 c8 -79 0 -98 +-10 -22 -3 29 -9 61 -11 71 -3 9 -1 17 4 17 5 0 13 -30 17 -66z m34 0 c6 -37 +10 -69 7 -72 -7 -7 -13 12 -24 81 -13 79 2 72 17 -9z m36 -8 c6 -37 9 -66 5 +-66 -9 0 -16 26 -26 95 -10 71 6 49 21 -29z m28 37 c4 -21 10 -53 13 -72 5 +-23 4 -32 -3 -28 -6 4 -14 28 -17 54 -4 27 -9 56 -12 66 -3 9 -1 17 4 17 5 0 +12 -17 15 -37z m41 -36 c7 -37 10 -67 6 -67 -9 0 -16 25 -26 95 -9 70 3 52 20 +-28z m3286 66 c1 -21 -46 -173 -52 -173 -5 0 -8 7 -8 16 0 25 44 164 53 164 4 +0 7 -3 7 -7z m201 -78 c-14 -47 -29 -85 -33 -85 -4 0 4 33 18 73 32 95 33 97 +37 97 3 0 -7 -38 -22 -85z m-3458 38 c4 -21 9 -54 12 -73 4 -24 3 -30 -3 -20 +-5 8 -13 33 -16 55 -4 22 -9 48 -12 58 -3 9 -1 17 4 17 5 0 12 -17 15 -37z +m41 -36 c7 -37 10 -67 6 -67 -7 0 -30 98 -30 128 0 30 10 5 24 -61z m40 -37 +c4 -21 3 -31 -3 -25 -9 10 -32 106 -30 128 1 15 23 -55 33 -103z m2686 100 c0 +-5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m40 0 +c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z +m-3037 -65 c3 -37 2 -51 -3 -35 -8 25 -13 107 -6 99 2 -2 6 -31 9 -64z m336 +-14 c6 -30 10 -56 7 -58 -2 -2 -9 20 -16 49 -6 29 -14 62 -16 73 -4 16 -3 17 +4 5 5 -8 15 -39 21 -69z m27 9 c8 -35 13 -65 10 -67 -2 -2 -9 20 -16 49 -6 29 +-14 62 -17 73 -3 11 -2 17 1 14 4 -4 14 -35 22 -69z m2881 4 c-10 -35 -16 -44 +-21 -33 -10 24 13 104 26 91 7 -7 5 -25 -5 -58z m743 -31 c113 -190 229 -444 +299 -650 69 -205 133 -495 147 -661 6 -76 6 -77 -24 -106 l-31 -28 -6 38 c-54 +344 -139 630 -268 910 -56 121 -166 325 -212 392 -14 20 -25 42 -25 49 0 25 +53 153 61 147 5 -3 32 -44 59 -91z m-491 -14 c-12 -43 -26 -79 -31 -79 -12 0 +-10 10 13 86 29 98 30 102 36 86 3 -7 -5 -49 -18 -93z m213 21 c-14 -43 -28 +-78 -30 -75 -4 3 35 129 45 148 13 23 8 -2 -15 -73z m-682 49 c0 -6 -4 -7 -10 +-4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-2389 -5 c382 -70 +831 -232 1180 -424 230 -127 499 -310 657 -448 58 -51 63 -57 56 -86 -3 -17 +-8 -32 -9 -34 -2 -2 -59 39 -127 91 -499 382 -1059 634 -1685 757 -80 16 -146 +30 -147 32 -2 2 -10 31 -18 66 -18 72 -25 69 93 46z m2429 6 c0 -5 -2 -10 -4 +-10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m-133 -22 c-3 -8 -6 +-5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m356 15 c3 -5 -3 -33 -12 -63 -12 +-41 -19 -50 -24 -37 -4 10 -1 38 5 62 12 43 21 54 31 38z m236 -95 c-25 -91 +-26 -94 -35 -86 -5 6 32 152 43 171 3 5 7 6 10 3 3 -3 -5 -43 -18 -88z m-522 +60 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-37 -4 c0 -8 -5 -12 +-10 -9 -6 4 -8 11 -5 16 9 14 15 11 15 -7z m350 -51 c-20 -79 -20 -79 -29 -64 +-12 18 19 135 32 122 7 -7 6 -26 -3 -58z m241 -25 c-30 -99 -31 -102 -37 -95 +-5 5 32 152 43 170 3 5 7 6 10 3 3 -3 -4 -38 -16 -78z m-635 45 c-10 -10 -19 +5 -10 18 6 11 8 11 12 0 2 -7 1 -15 -2 -18z m124 -4 c0 -5 -4 -9 -10 -9 -5 0 +-10 7 -10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z m-50 -5 c0 -8 -4 -12 -10 -9 +-5 3 -10 10 -10 16 0 5 5 9 10 9 6 0 10 -7 10 -16z m352 -61 c-10 -34 -21 -65 +-25 -69 -10 -11 -9 35 4 81 16 64 19 69 29 59 5 -5 2 -34 -8 -71z m242 20 c-8 +-27 -19 -65 -25 -87 -6 -21 -13 -35 -16 -32 -8 7 40 176 48 170 4 -2 1 -25 -7 +-51z m-710 32 c-4 -8 -8 -15 -10 -15 -2 0 -4 7 -4 15 0 8 4 15 10 15 5 0 7 -7 +4 -15z m69 -10 c-7 -21 -13 -19 -13 6 0 11 4 18 10 14 5 -3 7 -12 3 -20z +m-2927 -71 c6 -35 8 -64 4 -64 -4 0 -11 31 -17 70 -11 86 -2 82 13 -6z m33 10 +c6 -37 10 -69 7 -72 -7 -7 -13 12 -24 81 -13 79 2 72 17 -9z m36 -8 c6 -37 9 +-66 5 -66 -9 0 -16 26 -26 95 -10 71 6 49 21 -29z m33 10 c13 -71 15 -92 6 +-83 -5 5 -33 119 -34 140 0 4 4 7 8 7 5 0 14 -29 20 -64z m37 -3 c17 -69 19 +-91 6 -77 -5 5 -14 33 -20 62 -21 101 -9 114 14 15z m34 10 c7 -32 15 -66 17 +-75 3 -10 1 -18 -4 -18 -5 0 -14 26 -21 58 -7 31 -15 65 -17 75 -3 9 -1 17 4 +17 5 0 14 -26 21 -57z m2707 20 c-11 -11 -17 4 -9 23 7 18 8 18 11 1 2 -10 1 +-21 -2 -24z m174 11 c0 -8 -4 -12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 +-3 10 -13 10 -21z m303 -67 c-10 -42 -21 -77 -25 -77 -12 0 -9 35 8 106 23 92 +38 66 17 -29z m226 2 c-24 -89 -26 -95 -34 -88 -2 3 2 27 11 54 8 28 19 67 25 +89 6 21 13 36 15 33 3 -3 -5 -43 -17 -88z m-3606 -48 c-7 -10 -11 8 -16 69 +l-6 65 13 -65 c7 -36 11 -67 9 -69z m238 59 c9 -38 12 -70 8 -70 -5 0 -11 12 +-15 28 -3 15 -10 43 -15 62 -11 43 -11 50 -1 50 4 0 14 -31 23 -70z m44 -40 +c5 -23 4 -31 -3 -25 -11 12 -32 95 -31 122 1 19 22 -40 34 -97z m27 33 c9 -35 +12 -63 8 -63 -6 0 -40 114 -40 137 0 23 19 -21 32 -74z m2718 61 c0 -8 -4 -12 +-10 -9 -5 3 -10 10 -10 16 0 5 5 9 10 9 6 0 10 -7 10 -16z m94 1 c3 -8 1 -15 +-3 -15 -5 0 -11 7 -15 15 -3 8 -1 15 3 15 5 0 11 -7 15 -15z m-2780 -61 c19 +-73 14 -102 -4 -32 -7 23 -16 55 -21 71 -4 15 -4 27 0 27 5 0 16 -30 25 -66z +m45 -64 c-1 -19 -24 53 -32 100 -4 19 2 8 13 -25 11 -33 19 -67 19 -75z m24 +20 c6 -33 6 -33 -7 5 -7 22 -16 56 -19 75 -6 33 -6 33 7 -5 7 -22 16 -56 19 +-75z m2577 95 c0 -8 -4 -15 -10 -15 -5 0 -10 7 -10 15 0 8 5 15 10 15 6 0 10 +-7 10 -15z m-50 -26 c0 -11 -4 -17 -10 -14 -5 3 -10 13 -10 21 0 8 5 14 10 14 +6 0 10 -9 10 -21z m475 -72 c-18 -73 -35 -108 -35 -71 0 20 25 125 36 154 5 +11 7 12 11 2 3 -7 -3 -45 -12 -85z m214 4 c-12 -45 -24 -79 -27 -76 -3 2 5 41 +18 85 13 44 25 79 27 76 2 -2 -6 -40 -18 -85z m-2868 49 c565 -114 1125 -366 +1589 -716 168 -127 174 -133 166 -178 l-7 -35 -122 90 c-499 370 -1109 629 +-1690 720 -43 6 -80 16 -84 21 -3 6 -13 37 -23 69 l-18 59 21 0 c12 0 88 -13 +168 -30z m2309 4 c0 -8 -4 -14 -10 -14 -5 0 -10 9 -10 21 0 11 5 17 10 14 6 +-3 10 -13 10 -21z m40 -2 c0 -15 -2 -15 -10 -2 -13 20 -13 33 0 25 6 -3 10 +-14 10 -23z m827 -94 c213 -368 348 -742 409 -1142 l17 -107 -28 -29 c-16 -17 +-32 -27 -35 -23 -4 5 -13 42 -19 83 -58 348 -222 773 -422 1091 -27 43 -49 86 +-49 96 0 23 42 153 50 153 3 0 38 -55 77 -122z m2418 67 c-4 -25 -9 -44 -12 +-41 -2 2 -1 25 2 51 4 25 9 44 12 41 2 -2 1 -25 -2 -51z m-3335 24 c0 -11 -4 +-17 -10 -14 -5 3 -10 13 -10 21 0 8 5 14 10 14 6 0 10 -9 10 -21z m140 0 c0 +-6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-194 +-26 c-11 -11 -19 6 -11 24 8 17 8 17 12 0 3 -10 2 -21 -1 -24z m232 12 c-3 -3 +-9 2 -12 12 -6 14 -5 15 5 6 7 -7 10 -15 7 -18z m248 -75 c-12 -49 -24 -90 +-28 -90 -11 0 -10 28 1 70 6 19 15 54 21 78 6 23 15 40 19 38 4 -3 -1 -46 -13 +-96z m218 66 c-3 -15 -8 -25 -11 -23 -2 3 -1 17 3 31 3 15 8 25 11 23 2 -3 1 +-17 -3 -31z m-774 14 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 +0 4 -4 4 -10z m-49 -43 c-13 -13 -15 1 -4 30 7 17 8 17 11 -1 2 -10 -1 -23 -7 +-29z m83 8 c-4 -8 -10 -13 -15 -10 -4 3 -6 12 -3 20 4 8 10 13 15 10 4 -3 6 +-12 3 -20z m129 -13 c-5 -12 -7 -12 -15 2 -11 20 1 44 12 25 5 -6 6 -19 3 -27z +m47 17 c0 -11 -4 -17 -10 -14 -5 3 -10 13 -10 21 0 8 5 14 10 14 6 0 10 -9 10 +-21z m50 -5 c0 -8 -4 -12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 -3 10 +-13 10 -21z m-146 1 c3 -8 1 -15 -4 -15 -6 0 -10 7 -10 15 0 8 2 15 4 15 2 0 +6 -7 10 -15z m184 -10 c-3 -3 -9 2 -12 12 -6 14 -5 15 5 6 7 -7 10 -15 7 -18z +m286 -70 c-10 -47 -22 -85 -26 -85 -11 0 -6 34 23 144 19 72 22 26 3 -59z +m-594 68 c0 -5 -5 -15 -10 -23 -8 -12 -10 -11 -10 8 0 12 5 22 10 22 6 0 10 +-3 10 -7z m76 -28 c-8 -23 -25 -9 -19 16 4 13 9 17 16 10 5 -5 7 -17 3 -26z +m-153 5 c-3 -12 -8 -19 -11 -16 -5 6 5 36 12 36 2 0 2 -9 -1 -20z m701 -75 +c-10 -47 -22 -85 -26 -85 -10 0 -11 -2 7 77 21 91 26 106 32 99 3 -3 -3 -44 +-13 -91z m143 73 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-557 +-14 c0 -8 -4 -14 -10 -14 -5 0 -10 9 -10 21 0 11 5 17 10 14 6 -3 10 -13 10 +-21z m50 0 c0 -8 -4 -12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 -3 10 -13 +10 -21z m40 5 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 +-11 10 -16z m-3049 -70 c9 -38 12 -69 8 -69 -9 0 -23 48 -35 115 -11 64 9 30 +27 -46z m2690 38 c-13 -13 -15 1 -4 30 7 17 8 17 11 -1 2 -10 -1 -23 -7 -29z +m89 24 c0 -11 -4 -23 -10 -26 -6 -4 -10 5 -10 19 0 14 5 26 10 26 6 0 10 -9 +10 -19z m314 3 c3 -8 2 -12 -4 -9 -6 3 -10 10 -10 16 0 14 7 11 14 -7z m3113 +-16 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m-6311 -50 c16 -76 +16 -81 5 -74 -5 3 -12 27 -16 53 -3 27 -9 59 -12 73 -3 14 -2 22 2 18 4 -4 13 +-35 21 -70z m32 4 c13 -59 15 -89 6 -79 -6 5 -33 120 -34 142 -1 26 18 -16 28 +-63z m36 -4 c9 -39 14 -73 11 -76 -6 -6 -12 10 -29 86 -8 34 -11 62 -6 62 4 0 +15 -32 24 -72z m75 -2 c10 -36 15 -69 10 -72 -8 -5 -22 40 -35 111 -10 59 4 +38 25 -39z m34 14 c19 -68 23 -106 7 -79 -5 9 -14 36 -19 61 -6 24 -13 52 -17 +61 -3 9 -2 17 3 17 5 0 17 -27 26 -60z m41 -10 c10 -39 16 -73 13 -77 -7 -7 +-9 -2 -31 79 -18 65 -19 68 -8 68 5 0 16 -32 26 -70z m40 -6 c18 -69 20 -82 7 +-68 -9 10 -41 114 -41 135 0 27 18 -8 34 -67z m30 20 c7 -27 16 -59 20 -71 4 +-13 3 -23 -2 -23 -9 0 -42 107 -42 137 0 27 10 8 24 -43z m41 -19 c9 -36 15 +-68 12 -72 -3 -3 -13 21 -22 53 -9 33 -19 67 -22 78 -3 10 -1 16 4 13 6 -4 18 +-36 28 -72z m2635 39 c0 -14 -4 -22 -10 -19 -5 3 -10 17 -10 31 0 14 4 22 10 +19 6 -3 10 -17 10 -31z m539 -65 c-12 -52 -24 -88 -27 -81 -6 19 36 188 44 +179 3 -3 -4 -47 -17 -98z m-3145 36 c9 -30 19 -61 22 -70 3 -8 2 -15 -3 -15 +-7 0 -43 112 -43 134 0 20 11 -1 24 -49z m36 -12 c11 -36 18 -68 16 -70 -4 -4 +-46 114 -46 129 0 23 11 1 30 -59z m30 -4 c12 -39 19 -73 17 -75 -2 -3 -12 23 +-22 58 -9 34 -19 68 -22 75 -3 7 -3 13 1 13 3 0 15 -32 26 -71z m2590 50 c0 +-6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m597 -1 +c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-786 -41 c-8 -8 -11 -4 +-11 14 0 33 14 47 18 19 2 -12 -1 -27 -7 -33z m-2864 11 c-3 -7 -5 -2 -5 12 0 +14 2 19 5 13 2 -7 2 -19 0 -25z m2953 7 c0 -14 -4 -25 -10 -25 -5 0 -10 11 +-10 25 0 14 5 25 10 25 6 0 10 -11 10 -25z m185 -3 c-8 -8 -25 10 -19 20 4 6 +9 5 15 -3 4 -7 6 -15 4 -17z m45 6 c0 -19 -2 -20 -10 -8 -13 19 -13 30 0 30 6 +0 10 -10 10 -22z m50 -11 c0 -5 -4 -5 -10 -2 -5 3 -10 14 -10 23 0 15 2 15 10 +2 5 -8 10 -19 10 -23z m-2484 8 c557 -97 1147 -350 1614 -691 150 -110 159 +-119 153 -166 l-5 -37 -73 55 c-493 364 -1103 616 -1722 709 -31 5 -43 12 -47 +28 -3 12 -12 43 -20 70 -18 55 -24 53 100 32z m2344 -11 c0 -16 -16 -19 -25 +-4 -8 13 4 32 16 25 5 -4 9 -13 9 -21z m180 5 c0 -6 -4 -7 -10 -4 -5 3 -10 11 +-10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m294 -69 c-10 -44 -22 -80 -26 -80 +-5 0 -7 3 -5 8 3 4 13 42 22 85 9 43 20 76 22 73 3 -3 -3 -42 -13 -86z m-524 +49 c0 -20 -15 -26 -24 -10 -8 13 4 42 15 35 5 -3 9 -14 9 -25z m3297 9 c-3 -8 +-6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-3440 -35 c-4 -17 -4 -17 -12 +0 -4 9 -4 25 0 35 8 16 8 16 12 0 3 -10 3 -26 0 -35z m93 7 c0 -22 -17 -35 +-23 -18 -6 19 4 49 14 42 5 -3 9 -14 9 -24z m617 23 c-2 -5 -12 -43 -22 -86 +-9 -43 -19 -77 -21 -74 -5 4 24 145 33 160 2 4 6 7 9 7 3 0 3 -3 1 -7z m259 +-85 c194 -314 342 -704 409 -1076 l16 -93 -27 -36 c-33 -44 -27 -57 -82 167 +-22 91 -61 224 -87 295 -56 156 -190 433 -275 567 l-61 97 23 85 c12 48 23 86 +24 86 2 0 29 -42 60 -92z m-3852 42 c4 -25 3 -31 -4 -20 -5 8 -10 26 -10 39 0 +32 6 24 14 -19z m3206 7 c0 -5 -4 -5 -10 -2 -5 3 -10 14 -10 23 0 15 2 15 10 +2 5 -8 10 -19 10 -23z m-97 10 c3 -8 2 -19 -3 -26 -5 -10 -9 -8 -14 4 -3 9 -6 +21 -6 26 0 14 17 11 23 -4z m137 -3 c0 -8 -4 -12 -10 -9 -5 3 -10 10 -10 16 0 +5 5 9 10 9 6 0 10 -7 10 -16z m-445 -4 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 +0 6 2 10 4 10 3 0 8 -4 11 -10z m125 -21 c0 -12 -5 -19 -11 -17 -6 2 -10 7 +-10 11 1 4 1 14 1 23 0 8 5 12 10 9 6 -3 10 -15 10 -26z m134 15 c7 -19 -2 +-37 -15 -29 -12 8 -12 45 0 45 5 0 12 -7 15 -16z m226 6 c0 -5 -2 -10 -4 -10 +-3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m-529 -41 c-6 -16 -10 +-18 -10 -7 -1 22 12 55 16 42 2 -6 -1 -22 -6 -35z m79 10 c0 -11 -4 -17 -10 +-14 -5 3 -10 13 -10 21 0 8 5 14 10 14 6 0 10 -9 10 -21z m173 9 c2 -7 2 -21 +-1 -31 -4 -15 -7 -16 -13 -5 -12 17 -11 48 0 48 5 0 11 -6 14 -12z m594 -10 +c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-367 -9 c0 -6 -4 -7 +-10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-448 -24 c-2 +-14 -9 -25 -14 -25 -6 0 -7 7 -4 16 3 9 6 22 6 30 0 9 4 13 9 10 4 -3 6 -17 3 +-31z m83 -5 c-5 -16 -9 -19 -15 -10 -11 17 0 54 12 42 6 -6 7 -20 3 -32z m91 +2 c-10 -10 -29 15 -21 28 6 9 10 8 17 -4 6 -10 7 -20 4 -24z m184 7 c0 -11 -4 +-17 -10 -14 -5 3 -10 15 -10 26 0 11 5 17 10 14 6 -3 10 -15 10 -26z m50 4 c0 +-13 -3 -13 -15 -3 -8 7 -12 16 -9 21 8 13 24 1 24 -18z m84 12 c3 -8 1 -15 -4 +-15 -6 0 -10 7 -10 15 0 8 2 15 4 15 2 0 6 -7 10 -15z m-184 -33 c0 -21 -2 +-24 -10 -12 -13 20 -13 53 0 45 6 -3 10 -18 10 -33z m224 22 c3 -8 2 -12 -4 +-9 -6 3 -10 10 -10 16 0 14 7 11 14 -7z m-3190 -68 c10 -36 16 -71 13 -78 -4 +-12 -25 49 -43 126 -14 59 13 16 30 -48z m40 2 c18 -62 21 -97 7 -82 -9 10 +-41 122 -41 144 0 27 18 -5 34 -62z m40 -4 c18 -67 21 -93 7 -78 -9 10 -41 +122 -41 144 0 28 17 -6 34 -66z m3383 54 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 +-3 4 -12 1 -19z m-3566 -69 c9 -38 13 -69 9 -69 -4 0 -13 28 -20 63 -6 34 -14 +69 -16 77 -3 8 -2 11 3 7 4 -5 15 -39 24 -78z m28 29 c6 -29 14 -64 18 -77 4 +-16 3 -22 -5 -17 -6 3 -16 32 -23 63 -6 32 -14 63 -16 70 -3 7 -1 13 4 13 6 0 +15 -24 22 -52z m41 -27 c10 -39 15 -71 10 -71 -7 0 -40 115 -40 141 0 27 12 +-3 30 -70z m154 10 c29 -100 15 -112 -16 -13 -10 31 -18 64 -18 72 0 27 18 -4 +34 -59z m38 3 c19 -62 23 -92 11 -81 -14 14 -51 148 -40 144 6 -2 19 -30 29 +-63z m37 4 c21 -62 27 -97 14 -85 -12 12 -51 147 -43 147 5 0 18 -28 29 -62z +m40 -9 c12 -39 20 -73 17 -76 -6 -6 -6 -5 -36 81 -23 68 -23 66 -12 66 4 0 18 +-32 31 -71z m36 1 c10 -30 20 -61 23 -67 2 -7 0 -13 -5 -13 -8 0 -53 123 -53 +145 0 21 19 -14 35 -65z m2421 25 c-9 -36 -24 -23 -18 15 3 21 8 28 15 21 5 +-5 7 -21 3 -36z m224 14 c0 -17 -4 -28 -10 -24 -5 3 -10 17 -10 31 0 13 5 24 +10 24 6 0 10 -14 10 -31z m-2610 -45 c12 -36 20 -67 17 -70 -5 -5 -47 111 -47 +128 0 22 10 2 30 -58z m38 -11 c11 -35 17 -63 13 -63 -4 0 -15 26 -25 58 -10 +31 -21 64 -24 72 -3 10 -2 12 5 5 6 -5 20 -38 31 -72z m31 -2 c11 -36 19 -66 +17 -68 -2 -2 -16 31 -30 73 -14 43 -22 74 -17 68 4 -5 18 -38 30 -73z m2402 +66 c-1 -4 -1 -16 -1 -28 0 -11 -4 -17 -10 -14 -14 8 -13 58 1 53 6 -2 10 -7 +10 -11z m275 -44 c-10 -11 -25 18 -18 35 4 13 8 11 15 -6 6 -12 7 -25 3 -29z +m44 26 c0 -11 -4 -17 -10 -14 -5 3 -10 13 -10 21 0 8 5 14 10 14 6 0 10 -9 10 +-21z m90 -12 c0 -5 -4 -5 -10 -2 -5 3 -10 14 -10 23 0 15 2 15 10 2 5 -8 10 +-19 10 -23z m-2475 -7 c555 -105 1071 -326 1537 -658 l108 -77 0 -42 c0 -24 +-2 -43 -5 -43 -3 0 -79 48 -168 108 -444 293 -928 485 -1457 575 l-135 23 -22 +60 c-12 32 -22 65 -22 71 -1 14 -2 14 164 -17z m1896 -11 l-10 -24 0 26 c-1 +14 2 29 6 33 12 12 14 -9 4 -35z m399 -2 c0 -10 -4 -15 -10 -12 -5 3 -10 18 +-10 33 0 21 2 24 10 12 5 -8 10 -23 10 -33z m214 27 c3 -8 2 -12 -4 -9 -6 3 +-10 10 -10 16 0 14 7 11 14 -7z m3983 10 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 +11 1 17 -2 13 -5z m-3840 -26 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 +-19z m90 0 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m3436 15 c-7 +-2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m215 0 c-10 -2 -28 -2 -40 +0 -13 2 -5 4 17 4 22 1 32 -1 23 -4z m-4378 -33 c0 -16 -4 -30 -10 -30 -5 0 +-10 14 -10 30 0 17 5 30 10 30 6 0 10 -13 10 -30z m90 -11 c0 -18 -4 -28 -10 +-24 -5 3 -10 20 -10 36 0 18 4 28 10 24 6 -3 10 -20 10 -36z m140 10 c0 -10 +-4 -19 -10 -19 -5 0 -10 12 -10 26 0 14 4 23 10 19 6 -3 10 -15 10 -26z m3820 +15 c-76 -18 -136 -28 -129 -20 8 8 135 34 164 34 11 0 -5 -6 -35 -14z m239 12 +c-9 -9 -169 -33 -169 -25 0 4 28 12 63 17 71 11 112 14 106 8z m289 -3 c-16 +-2 -40 -2 -55 0 -16 2 -3 4 27 4 30 0 43 -2 28 -4z m-4658 -20 c0 -10 -5 -25 +-10 -33 -7 -11 -10 -7 -10 18 0 17 5 32 10 32 6 0 10 -8 10 -17z m220 1 c0 -8 +-4 -12 -10 -9 -5 3 -10 10 -10 16 0 5 5 9 10 9 6 0 10 -7 10 -16z m3757 10 +c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m533 -5 c-109 -17 -120 +-18 -120 -9 0 9 53 16 130 17 45 1 45 1 -10 -8z m407 5 c-3 -3 -12 -4 -19 -1 +-8 3 -5 6 6 6 11 1 17 -2 13 -5z m91 -1 c-10 -2 -26 -2 -35 0 -10 3 -2 5 17 5 +19 0 27 -2 18 -5z m-7791 -25 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 +-19z m3273 -10 c0 -5 -4 -8 -10 -8 -5 0 -10 10 -10 23 0 18 2 19 10 7 5 -8 10 +-18 10 -22z m251 1 c-9 -22 -10 -22 -10 -3 -1 11 2 24 6 27 12 12 14 0 4 -24z +m3194 26 c-38 -14 -125 -32 -125 -25 0 4 21 12 48 18 46 9 97 14 77 7z m775 +-5 c-58 -13 -130 -18 -130 -9 0 8 55 14 130 16 l35 1 -35 -8z m123 3 c-13 -2 +-33 -2 -45 0 -13 2 -3 4 22 4 25 0 35 -2 23 -4z m-4713 -50 c0 -28 -3 -33 -13 +-24 -8 6 -12 23 -9 41 6 40 22 28 22 -17z m140 11 c0 -14 -4 -22 -10 -19 -5 3 +-10 17 -10 31 0 14 4 22 10 19 6 -3 10 -17 10 -31z m180 9 c0 -22 -2 -25 -10 +-13 -13 20 -13 40 0 40 6 0 10 -12 10 -27z m90 6 c0 -6 -4 -7 -10 -4 -5 3 -10 +11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m3648 15 c-10 -9 -178 -42 -178 +-34 0 4 30 14 68 23 70 16 119 21 110 11z m189 0 c-5 -5 -147 -33 -171 -34 -5 +0 -6 3 -2 8 8 7 114 29 155 31 13 0 22 -2 18 -5z m-4340 -51 c-4 -17 -4 -17 +-12 0 -4 9 -4 25 0 35 8 16 8 16 12 0 3 -10 3 -26 0 -35z m369 10 c-7 -17 -8 +-17 -17 0 -12 21 -2 44 13 29 6 -6 8 -19 4 -29z m3279 16 c-32 -10 -61 -16 +-63 -14 -5 5 88 34 108 33 8 0 -12 -8 -45 -19z m304 17 c-8 -8 -171 -47 -177 +-42 -6 7 9 12 83 30 60 14 102 20 94 12z m549 -6 c-41 -12 -154 -23 -145 -14 +9 9 84 21 137 22 33 0 33 0 8 -8z m367 0 c-16 -4 -55 -8 -85 -7 -53 0 -54 0 +-15 7 22 4 60 7 85 7 40 1 42 0 15 -7z m173 3 c-21 -2 -57 -2 -80 0 -24 2 -7 +4 37 4 44 0 63 -2 43 -4z m110 0 c-10 -2 -26 -2 -35 0 -10 3 -2 5 17 5 19 0 +27 -2 18 -5z m-4968 -44 c0 -18 -4 -28 -10 -24 -5 3 -10 20 -10 36 0 18 4 28 +10 24 6 -3 10 -20 10 -36z m140 8 c0 -5 -4 -5 -10 -2 -5 3 -10 14 -10 23 0 15 +2 15 10 2 5 -8 10 -19 10 -23z m417 11 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 +-3 4 -12 1 -19z m298 -141 c151 -258 276 -587 337 -887 l22 -107 -24 -31 c-14 +-17 -28 -31 -31 -31 -3 -1 -12 25 -19 57 -64 290 -205 633 -362 881 -33 53 +-61 105 -60 116 1 11 8 53 17 93 l17 74 22 -34 c13 -18 49 -77 81 -131z m2714 +150 c-10 -8 -162 -48 -166 -43 -3 2 28 14 69 26 40 12 78 23 83 24 11 3 21 -2 +14 -7z m956 4 c-12 -11 -173 -25 -162 -14 5 4 32 10 60 14 82 10 112 10 102 0z +m-7508 -33 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2690 0 c-3 +-7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m4253 24 c0 -8 -133 -42 +-162 -42 -29 0 10 17 75 32 89 20 87 20 87 10z m190 -1 c0 -5 -30 -14 -67 -20 +-38 -7 -76 -14 -85 -17 -10 -3 -18 -1 -18 4 0 6 35 17 78 25 98 19 92 19 92 8z +m-6580 -36 c0 -5 -5 -3 -10 5 -5 8 -10 20 -10 25 0 6 5 3 10 -5 5 -8 10 -19 +10 -25z m2520 -8 c0 -27 -2 -30 -15 -17 -8 9 -12 24 -9 37 9 32 24 18 24 -20z +m3675 35 c-14 -12 -166 -54 -173 -48 -6 7 14 15 93 37 68 20 94 23 80 11z +m571 -1 c-3 -4 -29 -11 -57 -15 -29 -4 -65 -10 -80 -13 -16 -3 -29 -1 -29 4 0 +6 28 15 63 20 84 14 109 15 103 4z m369 0 c-12 -11 -155 -19 -155 -9 0 7 46 +13 125 16 24 1 35 -2 30 -7z m148 2 c-24 -2 -62 -2 -85 0 -24 2 -5 4 42 4 47 +0 66 -2 43 -4z m175 0 c-21 -2 -57 -2 -80 0 -24 2 -7 4 37 4 44 0 63 -2 43 -4z +m89 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-5377 -29 c0 +-14 -4 -25 -10 -25 -11 0 -14 33 -3 43 11 11 13 8 13 -18z m120 5 c0 -11 -4 +-20 -10 -20 -5 0 -10 9 -10 20 0 11 5 20 10 20 6 0 10 -9 10 -20z m90 -21 c0 +-28 -13 -39 -25 -19 -8 13 5 61 16 54 5 -3 9 -18 9 -35z m320 4 c0 -7 -4 -13 +-10 -13 -5 0 -10 12 -10 28 0 21 2 24 10 12 5 -8 10 -21 10 -27z m40 11 c0 -8 +-4 -12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 -3 10 -13 10 -21z m40 5 c0 +-6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m4170 +12 c0 -8 -151 -32 -159 -25 -10 9 11 15 80 23 41 5 75 9 77 10 1 0 2 -3 2 -8z +m693 2 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-5441 -43 c-2 +-16 -9 -30 -14 -30 -6 0 -8 10 -4 23 3 12 6 28 6 35 0 7 4 11 8 8 5 -3 7 -19 +4 -36z m448 2 c0 -21 -2 -24 -10 -12 -13 20 -13 53 0 45 6 -3 10 -18 10 -33z +m3350 34 c0 -8 -161 -58 -167 -52 -9 9 -4 11 67 34 64 20 100 26 100 18z +m-3530 -49 c0 -27 -2 -30 -15 -17 -8 9 -12 24 -9 37 9 32 24 18 24 -20z m3915 +34 c-10 -8 -133 -41 -156 -41 -27 0 6 16 64 32 71 18 106 22 92 9z m190 0 +c-11 -10 -157 -41 -164 -35 -9 8 8 15 70 29 77 16 107 18 94 6z m554 -5 c-2 +-2 -40 -7 -84 -11 -56 -5 -77 -4 -70 3 6 6 42 12 80 14 69 3 82 2 74 -6z m180 +10 c-10 -8 -159 -14 -154 -5 4 5 40 9 82 9 42 0 74 -2 72 -4z m144 -3 c-24 -2 +-62 -2 -85 0 -24 2 -5 4 42 4 47 0 66 -2 43 -4z m145 0 c-15 -2 -42 -2 -60 0 +-18 2 -6 4 27 4 33 0 48 -2 33 -4z m-1793 -13 c-3 -5 -11 -10 -16 -10 -6 0 -7 +5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m391 3 c-6 -6 -152 -52 -168 -53 -5 +0 -8 4 -8 9 0 4 30 17 68 29 68 20 121 28 108 15z m572 2 c-7 -7 -162 -34 +-167 -29 -8 8 7 15 50 23 50 10 125 14 117 6z m960 -2 c-10 -2 -26 -2 -35 0 +-10 3 -2 5 17 5 19 0 27 -2 18 -5z m-8213 -86 c21 -80 13 -103 -9 -26 -25 87 +-30 115 -19 104 5 -5 18 -41 28 -78z m33 9 c25 -83 26 -89 13 -82 -4 3 -16 33 +-26 68 -9 34 -19 68 -22 75 -3 7 -1 13 4 13 6 0 20 -33 31 -74z m34 16 c9 -32 +20 -66 24 -75 3 -9 1 -17 -5 -17 -5 0 -19 31 -31 69 -22 76 -23 81 -12 81 4 0 +15 -26 24 -58z m40 0 c9 -32 20 -66 24 -75 3 -9 1 -17 -5 -17 -5 0 -19 30 -31 +66 -22 72 -24 84 -12 84 4 0 15 -26 24 -58z m44 -4 c10 -35 20 -69 22 -75 2 +-7 -1 -13 -7 -13 -6 0 -19 31 -31 69 -23 77 -23 81 -11 81 4 0 17 -28 27 -62z +m42 -6 c24 -76 25 -82 14 -82 -4 0 -18 31 -30 68 -24 76 -25 82 -14 82 4 0 18 +-31 30 -68z m40 4 c24 -70 28 -96 12 -80 -9 9 -50 119 -50 136 0 4 3 8 8 8 4 +0 17 -29 30 -64z m44 -12 c32 -90 16 -95 -18 -5 -26 68 -28 81 -16 81 4 0 19 +-34 34 -76z m40 0 c15 -41 22 -74 16 -72 -6 2 -21 33 -34 68 -26 71 -28 80 +-16 80 4 0 19 -34 34 -76z m37 3 c22 -61 27 -88 13 -71 -10 11 -52 121 -52 +137 0 22 18 -8 39 -66z m36 -1 c14 -38 23 -71 21 -74 -5 -5 -14 15 -42 92 -14 +38 -18 64 -9 55 2 -3 16 -36 30 -73z m39 -9 c14 -37 22 -67 18 -67 -7 0 -19 +29 -61 145 -2 7 0 7 7 0 6 -6 22 -40 36 -78z m2386 62 c0 -6 -4 -7 -10 -4 -5 +3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m3670 12 c0 -11 -159 -65 +-167 -57 -4 3 -4 8 -2 10 3 3 153 53 167 56 1 0 2 -4 2 -9z m946 2 c-10 -11 +-166 -31 -166 -21 0 6 14 10 90 21 46 8 83 7 76 0z m867 0 c-7 -2 -19 -2 -25 +0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-7834 -77 c12 -32 19 -61 16 -64 -2 -3 +-8 4 -11 14 -4 10 -15 41 -26 67 -10 26 -18 51 -18 54 0 17 19 -17 39 -71z +m29 1 c12 -33 22 -61 22 -65 0 -14 -11 10 -35 74 -15 38 -22 65 -17 59 5 -5 +18 -36 30 -68z m2113 32 c-6 -16 -10 -18 -10 -7 -1 22 12 55 16 42 2 -6 -1 +-22 -6 -35z m119 6 c0 -19 -4 -35 -10 -35 -5 0 -10 16 -10 35 0 19 5 35 10 35 +6 0 10 -16 10 -35z m180 -6 c0 -28 -13 -39 -25 -19 -8 13 5 61 16 54 5 -3 9 +-18 9 -35z m140 5 c0 -27 -15 -32 -24 -9 -7 19 3 47 15 39 5 -3 9 -16 9 -30z +m46 9 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 -17z m164 1 c0 -8 -4 +-12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 -3 10 -13 10 -21z m40 5 c0 -6 +-4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m4485 11 +c-11 -5 -49 -9 -85 -9 -45 0 -59 3 -45 9 11 5 49 9 85 9 45 0 59 -3 45 -9z +m153 3 c-21 -2 -57 -2 -80 0 -24 2 -7 4 37 4 44 0 63 -2 43 -4z m202 -1 c0 -5 +-28 -7 -62 -5 -96 6 -101 11 -15 12 42 0 77 -3 77 -7z m-4920 -28 c0 -8 -4 +-12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 -3 10 -13 10 -21z m3655 17 +c-6 -4 -40 -15 -76 -24 -36 -9 -74 -20 -84 -23 -13 -5 -16 -3 -13 7 3 8 35 21 +74 31 79 19 112 22 99 9z m190 0 c-6 -4 -37 -13 -70 -20 -33 -6 -70 -14 -82 +-17 -13 -4 -23 -2 -23 4 0 6 28 17 63 25 72 17 125 21 112 8z m185 -1 c0 -5 +-15 -12 -32 -15 -18 -3 -55 -9 -83 -14 -48 -9 -65 -7 -53 4 4 5 109 26 161 34 +4 1 7 -3 7 -9z m360 1 c-23 -13 -160 -23 -160 -12 0 10 45 16 130 19 29 1 40 +-2 30 -7z m678 0 c7 -4 -13 -6 -45 -4 -79 6 -89 11 -23 12 30 0 61 -3 68 -8z +m-8304 -106 c5 -19 4 -26 -2 -20 -10 11 -33 96 -31 117 1 13 20 -42 33 -97z +m536 70 c0 -5 -5 -3 -10 5 -5 8 -10 20 -10 25 0 6 5 3 10 -5 5 -8 10 -19 10 +-25z m317 9 c535 -98 1008 -294 1466 -607 80 -54 116 -85 112 -95 -3 -7 -5 +-27 -5 -42 l0 -29 -102 68 c-262 175 -524 304 -833 410 -215 75 -502 144 -689 +166 l-58 8 -23 51 c-35 80 -39 96 -21 96 8 0 77 -11 153 -26z m1812 9 c-1 -10 +-5 -29 -9 -43 -7 -21 -8 -19 -9 18 -1 23 4 42 9 42 6 0 10 -8 9 -17z m351 -25 +c0 -25 -3 -28 -14 -19 -7 6 -11 22 -8 36 6 33 22 21 22 -17z m180 16 c0 -8 -4 +-14 -10 -14 -5 0 -10 9 -10 21 0 11 5 17 10 14 6 -3 10 -13 10 -21z m2827 20 +c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m288 -4 c-3 -5 -13 -10 +-21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 0 12 -4 9 -10z m390 2 c-14 -13 +-166 -54 -173 -48 -8 9 -1 13 68 34 68 21 121 28 105 14z m1678 1 c-7 -2 -19 +-2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-5543 -30 c0 -13 -3 -13 -15 -3 +-8 7 -15 16 -15 21 0 5 7 6 15 3 8 -4 15 -13 15 -21z m3130 7 c-8 -5 -17 -7 +-19 -4 -3 3 1 9 9 14 8 5 17 7 19 4 3 -3 -1 -9 -9 -14z m100 10 c0 -5 -5 -10 +-11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m440 1 c0 -5 -38 -22 +-85 -38 -53 -19 -85 -26 -85 -18 0 6 35 23 78 37 89 30 92 31 92 19z m924 -1 +c-29 -11 -161 -24 -151 -14 9 10 78 21 132 22 31 1 35 -1 19 -8z m376 0 c0 -5 +-22 -10 -49 -10 -27 0 -63 -3 -80 -6 -19 -4 -31 -2 -31 4 0 6 27 13 63 15 34 +2 70 4 80 5 9 1 17 -2 17 -8z m169 6 c-11 -9 -149 -15 -149 -6 0 6 32 10 77 +10 42 0 74 -2 72 -4z m171 -5 c0 -5 -30 -7 -67 -4 -97 7 -100 11 -10 12 42 1 +77 -3 77 -8z m303 2 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z +m-5663 -43 c0 -33 -15 -48 -24 -24 -8 21 4 65 15 58 5 -3 9 -18 9 -34z m360 +14 c0 -14 -4 -23 -10 -19 -5 3 -10 15 -10 26 0 10 5 19 10 19 6 0 10 -12 10 +-26z m4480 16 c0 -5 -10 -10 -22 -11 -13 0 -49 -4 -80 -8 -32 -4 -58 -4 -58 0 +0 7 23 11 115 22 17 2 33 5 38 6 4 0 7 -3 7 -9z m658 3 c-21 -2 -55 -2 -75 0 +-21 2 -4 4 37 4 41 0 58 -2 38 -4z m-5318 -39 c0 -14 -4 -22 -10 -19 -5 3 -10 +17 -10 31 0 14 4 22 10 19 6 -3 10 -17 10 -31z m140 -6 c0 -10 -4 -18 -9 -18 +-16 0 -23 19 -16 41 6 17 9 19 16 8 5 -8 9 -22 9 -31z m2750 32 c-8 -5 -19 +-10 -25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z m160 0 c0 -5 -8 +-10 -17 -10 -15 0 -16 2 -3 10 19 12 20 12 20 0z m870 2 c0 -9 -162 -53 -169 +-46 -9 8 9 16 76 34 78 22 93 23 93 12z m185 -1 c-6 -5 -35 -14 -65 -20 -30 +-7 -65 -14 -77 -17 -13 -4 -23 -2 -23 4 0 6 28 17 63 25 73 18 115 21 102 8z +m185 -1 c0 -5 -2 -10 -4 -10 -2 0 -40 -7 -83 -15 -93 -18 -90 -18 -77 -5 6 6 +42 17 80 24 88 18 84 18 84 6z m1143 3 c-13 -2 -33 -2 -45 0 -13 2 -3 4 22 4 +25 0 35 -2 23 -4z m-5703 -38 c0 -19 -4 -35 -10 -35 -5 0 -10 16 -10 35 0 19 +5 35 10 35 6 0 10 -16 10 -35z m180 -3 c0 -24 -1 -25 -16 -10 -10 9 -14 24 +-10 33 9 23 26 9 26 -23z m427 16 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 +-12 1 -19z m43 12 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 +11 -4 11 -10z m2565 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 +10 6 0 7 -4 4 -10z m185 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 +10 2 0 4 -4 4 -10z m215 1 c-6 -5 -21 -12 -35 -16 -22 -7 -23 -6 -11 9 7 9 23 +16 34 16 13 0 17 -4 12 -9z m385 2 c0 -14 -170 -62 -170 -48 0 7 30 21 68 33 +73 22 102 26 102 15z m740 -2 c0 -5 -28 -14 -63 -20 -74 -13 -103 -14 -93 -3 +6 6 58 17 149 31 4 0 7 -3 7 -8z m535 -1 c-3 -5 -41 -10 -83 -9 -54 1 -69 3 +-52 9 37 12 142 12 135 0z m165 0 c0 -6 -30 -10 -70 -10 -40 0 -70 4 -70 10 0 +6 30 10 70 10 40 0 70 -4 70 -10z m333 3 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 +14 0 19 -2 13 -5z m-5203 -25 c0 -19 -2 -20 -10 -8 -13 19 -13 30 0 30 6 0 10 +-10 10 -22z m2690 2 c-8 -5 -17 -7 -19 -4 -3 3 1 9 9 14 8 5 17 7 19 4 3 -3 +-1 -9 -9 -14z m92 -2 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 +-17z m452 3 c-5 -5 -40 -19 -79 -31 -38 -13 -77 -25 -85 -28 -13 -4 -13 -3 0 +11 8 8 49 27 90 40 72 24 94 27 74 8z m1271 9 c-42 -11 -149 -11 -115 0 14 4 +52 8 85 8 47 0 54 -2 30 -8z m503 3 c-21 -2 -55 -2 -75 0 -21 2 -4 4 37 4 41 +0 58 -2 38 -4z m279 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m-5727 -50 c0 -33 -12 -45 -25 -24 -9 15 5 71 16 64 5 -3 9 -21 9 -40z m230 3 +c-1 -29 -2 -30 -14 -14 -8 10 -12 27 -9 37 8 29 23 13 23 -23z m2735 33 c-3 +-5 -14 -10 -23 -10 -15 0 -15 2 -2 10 20 13 33 13 25 0z m55 -10 c-24 -15 -37 +-11 -16 5 11 8 22 12 25 9 3 -3 -1 -9 -9 -14z m1770 10 c0 -5 -12 -10 -27 -10 +-16 0 -53 -3 -83 -6 -66 -8 -59 7 8 17 74 10 102 10 102 -1z m838 1 c7 -4 -13 +-6 -45 -4 -79 6 -89 11 -23 12 30 0 61 -3 68 -8z m-5841 -33 c-3 -7 -5 -2 -5 +12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m123 -14 c0 -19 -4 -34 -9 -34 -13 0 -18 +19 -13 51 6 39 22 26 22 -17z m180 -2 c-1 -33 -2 -35 -14 -19 -14 18 -10 71 5 +61 5 -3 9 -22 9 -42z m270 17 c0 -10 -4 -19 -10 -19 -5 0 -10 12 -10 26 0 14 +4 23 10 19 6 -3 10 -15 10 -26z m2815 12 c-3 -6 -11 -11 -17 -11 -6 0 -6 6 2 +15 14 17 26 13 15 -4z m885 11 c0 -8 -150 -52 -174 -52 -28 0 20 24 80 40 81 +21 94 23 94 12z m180 0 c0 -6 -139 -42 -164 -42 -27 0 16 21 69 34 70 17 95 +19 95 8z m190 -1 c0 -9 -161 -42 -169 -35 -9 8 9 15 75 28 86 18 94 18 94 7z +m860 -1 c17 -6 1 -8 -53 -9 -50 -1 -76 3 -72 9 7 12 89 12 125 0z m403 3 c-7 +-2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-5513 -36 c0 -5 -4 -5 -10 +-2 -5 3 -10 14 -10 23 0 15 2 15 10 2 5 -8 10 -19 10 -23z m2900 24 c0 -5 -7 +-11 -15 -15 -15 -5 -20 5 -8 17 9 10 23 9 23 -2z m172 -13 c-7 -7 -12 -8 -12 +-2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m238 17 c0 -9 -62 -36 -68 -30 -9 9 +28 35 50 35 10 0 18 -2 18 -5z m380 -3 c0 -9 -169 -66 -176 -59 -9 9 23 26 86 +45 74 23 90 25 90 14z m735 -1 c-9 -8 -123 -31 -155 -31 -32 0 6 16 63 26 81 +15 103 16 92 5z m355 -1 c0 -5 -19 -10 -42 -10 -24 0 -61 -3 -83 -6 -28 -5 +-37 -3 -30 4 6 6 33 13 60 15 28 2 60 4 73 5 12 1 22 -2 22 -8z m179 6 c-7 -7 +-149 -10 -156 -3 -3 4 31 7 77 7 46 0 81 -2 79 -4z m299 -3 c-21 -2 -55 -2 +-75 0 -21 2 -4 4 37 4 41 0 58 -2 38 -4z m177 -7 c11 -2 -10 -4 -47 -5 -38 0 +-68 2 -68 7 0 7 67 6 115 -2z m153 7 c-10 -2 -26 -2 -35 0 -10 3 -2 5 17 5 19 +0 27 -2 18 -5z m-5458 -34 c0 -17 -4 -28 -10 -24 -5 3 -10 17 -10 31 0 13 5 +24 10 24 6 0 10 -14 10 -31z m200 15 c0 -8 -5 -12 -10 -9 -6 4 -8 11 -5 16 9 +14 15 11 15 -7z m2329 12 c-2 -2 -15 -9 -29 -15 -24 -11 -24 -11 -6 3 16 13 +49 24 35 12z m121 -16 c-8 -6 -22 -10 -30 -9 -9 0 -5 6 10 14 27 14 44 10 20 +-5z m-3135 0 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 +-10z m642 -22 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2423 28 +c0 -2 -7 -6 -15 -10 -8 -3 -15 -1 -15 4 0 6 7 10 15 10 8 0 15 -2 15 -4z m240 +0 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z +m80 -11 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z m465 6 c-13 +-13 -143 -61 -163 -61 -28 0 0 18 68 44 67 26 112 34 95 17z m1090 0 c-31 -13 +-151 -23 -140 -12 12 11 52 18 115 19 32 0 39 -2 25 -7z m990 -2 c20 -5 9 -6 +-30 -2 -33 3 -62 7 -64 9 -8 7 63 2 94 -7z m-5805 -45 c0 -32 -12 -45 -24 -25 +-9 13 5 71 15 65 5 -3 9 -21 9 -40z m90 0 c0 -34 -13 -46 -23 -21 -7 19 4 68 +14 61 5 -3 9 -21 9 -40z m230 -1 c0 -13 -4 -23 -9 -23 -13 0 -20 25 -14 50 4 +16 8 18 14 8 5 -7 9 -23 9 -35z m623 -68 c145 -239 259 -518 328 -799 l29 +-120 -27 -41 -27 -40 -13 50 c-79 296 -186 548 -340 797 -58 94 -58 96 -41 +198 14 83 13 83 91 -45z m2113 100 c-21 -16 -32 -13 -21 4 3 6 14 11 23 11 15 +-1 15 -2 -2 -15z m276 -7 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 +-7 -17z m768 12 c0 -5 -17 -14 -37 -19 -21 -6 -60 -17 -86 -25 -34 -10 -47 +-11 -44 -3 2 7 37 22 78 34 88 26 89 26 89 13z m185 1 c-10 -8 -133 -41 -155 +-41 -5 0 -10 4 -10 9 0 4 30 15 68 24 79 18 110 21 97 8z m185 1 c0 -10 -161 +-44 -169 -37 -8 9 4 13 74 28 85 19 95 19 95 9z m709 4 c-2 -2 -39 -7 -83 -11 +-56 -5 -76 -4 -72 4 4 6 39 11 83 11 42 0 74 -2 72 -4z m139 -3 c-21 -2 -57 +-2 -80 0 -24 2 -7 4 37 4 44 0 63 -2 43 -4z m160 0 c-21 -2 -55 -2 -75 0 -21 +2 -4 4 37 4 41 0 58 -2 38 -4z m187 -8 c6 -2 -20 -4 -57 -4 -38 -1 -68 3 -68 +7 0 8 101 5 125 -3z m-5485 -41 c0 -21 -4 -33 -10 -29 -5 3 -10 22 -10 41 0 +21 4 33 10 29 6 -3 10 -22 10 -41z m2710 41 c0 -2 -15 -12 -32 -20 l-33 -16 +24 21 c22 19 41 26 41 15z m222 -17 c-6 -6 -15 -8 -19 -4 -4 4 -1 11 7 16 19 +12 27 3 12 -12z m108 13 c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 +-9z m314 -2 c-6 -10 -65 -39 -79 -39 -15 0 10 23 39 36 38 16 49 17 40 3z +m374 -1 c-4 -11 -126 -56 -157 -57 -30 -2 6 19 74 43 82 29 88 30 83 14z m737 +3 c-12 -10 -156 -34 -163 -27 -7 7 13 13 73 25 67 12 101 13 90 2z m330 -1 +c-16 -4 -55 -8 -85 -8 -45 0 -49 2 -25 8 17 4 55 8 85 8 45 0 49 -2 25 -8z +m938 3 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-5473 -29 c0 +-14 -4 -23 -10 -19 -5 3 -10 15 -10 26 0 10 5 19 10 19 6 0 10 -12 10 -26z +m40 11 c0 -8 -2 -15 -4 -15 -2 0 -6 7 -10 15 -3 8 -1 15 4 15 6 0 10 -7 10 +-15z m2329 11 c-2 -2 -15 -9 -29 -15 -24 -11 -24 -11 -6 3 16 13 49 24 35 12z +m131 -5 c0 -5 -7 -12 -16 -15 -24 -9 -28 -7 -14 9 14 17 30 20 30 6z m56 -17 +c-30 -21 -44 -16 -17 7 13 11 27 17 30 13 3 -3 -3 -12 -13 -20z m304 22 c0 -3 +-4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m1520 -5 +c0 -8 -151 -32 -159 -25 -10 9 9 14 75 23 38 4 72 9 77 10 4 0 7 -3 7 -8z +m953 2 c-13 -2 -35 -2 -50 0 -16 2 -5 4 22 4 28 0 40 -2 28 -4z m194 1 c-3 -3 +-12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-8596 -71 c12 -38 24 -74 27 +-80 2 -7 0 -13 -6 -13 -6 0 -20 30 -33 68 -12 37 -24 73 -27 80 -2 6 0 12 6 +12 6 0 20 -30 33 -67z m43 -4 c28 -75 31 -89 18 -89 -5 0 -19 30 -32 68 -13 +37 -25 73 -28 80 -2 6 0 12 6 12 5 0 21 -32 36 -71z m47 -9 c26 -69 30 -96 10 +-74 -5 5 -18 34 -29 64 -11 30 -24 63 -28 74 -5 13 -3 17 5 15 7 -3 26 -38 42 +-79z m36 15 c34 -88 37 -99 23 -90 -6 4 -15 17 -20 28 -4 12 -18 46 -29 75 +-14 36 -17 52 -9 50 7 -3 23 -31 35 -63z m40 8 c12 -32 25 -66 29 -75 3 -10 2 +-18 -4 -18 -9 0 -62 122 -62 143 0 24 18 -1 37 -50z m48 -14 c15 -38 24 -73 +21 -76 -8 -9 -9 -7 -39 70 -30 75 -31 77 -19 77 5 0 21 -32 37 -71z m42 -5 +c17 -41 26 -73 20 -71 -6 2 -24 34 -39 72 -31 76 -31 75 -20 75 4 0 22 -34 39 +-76z m40 0 c17 -41 27 -74 20 -71 -6 2 -24 34 -39 72 -31 76 -31 75 -20 75 4 +0 21 -34 39 -76z m38 -3 c14 -35 24 -65 21 -68 -5 -5 -48 84 -61 129 -14 44 +12 5 40 -61z m60 -62 c5 -15 4 -20 -2 -14 -13 14 -63 133 -62 148 1 13 52 -94 +64 -134z m2105 119 c0 -16 -3 -19 -11 -11 -6 6 -8 16 -5 22 11 17 16 13 16 +-11z m360 12 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 +11 -10z m170 -31 c0 -18 -4 -28 -10 -24 -5 3 -10 20 -10 36 0 18 4 28 10 24 6 +-3 10 -20 10 -36z m190 20 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 +4 6 -3 10 -11 10 -16z m3128 10 c-2 -6 -31 -21 -63 -34 -91 -34 -105 -37 -105 +-26 0 5 35 23 78 40 86 34 95 36 90 20z m1447 1 c-3 -5 -39 -9 -78 -9 -58 1 +-65 3 -37 9 54 11 122 11 115 0z m143 3 c-21 -2 -57 -2 -80 0 -24 2 -7 4 37 4 +44 0 63 -2 43 -4z m160 0 c-21 -2 -55 -2 -75 0 -21 2 -4 4 37 4 41 0 58 -2 38 +-4z m191 -9 c2 -2 -26 -4 -62 -4 -37 0 -67 4 -67 9 0 8 119 3 129 -5z m-8379 +-148 c0 -6 -3 -6 -9 0 -10 11 -41 124 -40 145 1 14 49 -128 49 -145z m19 72 +c24 -76 25 -81 11 -73 -8 5 -50 130 -50 151 0 22 20 -18 39 -78z m29 25 c11 +-32 23 -66 27 -75 4 -10 3 -18 -3 -18 -6 0 -22 34 -35 75 -14 41 -22 75 -17 +75 4 0 17 -26 28 -57z m446 -9 c36 -89 27 -92 -12 -4 -17 38 -27 70 -23 70 4 +0 20 -30 35 -66z m57 -61 c5 -13 6 -23 4 -23 -7 0 -51 100 -59 132 -5 22 36 +-61 55 -109z m-11 92 c0 -5 -5 -3 -10 5 -5 8 -10 20 -10 25 0 6 5 3 10 -5 5 +-8 10 -19 10 -25z m1977 -12 c-3 -10 -5 -2 -5 17 0 19 2 27 5 18 2 -10 2 -26 +0 -35z m3249 21 c-11 -7 -22 -11 -25 -8 -3 3 3 12 13 20 11 7 22 11 25 8 3 -3 +-3 -12 -13 -20z m196 4 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 +-17z m858 12 c0 -5 -17 -14 -37 -19 -21 -6 -60 -17 -88 -26 -61 -18 -62 -18 +-47 -2 7 6 45 22 85 33 88 26 87 26 87 14z m175 1 c-17 -15 -166 -50 -162 -38 +2 6 32 19 68 28 74 20 107 23 94 10z m185 1 c0 -5 -33 -15 -72 -22 -40 -7 -80 +-15 -88 -18 -11 -4 -12 -2 -4 7 6 6 39 18 75 25 78 17 89 18 89 8z m525 -1 +c-14 -12 -145 -22 -145 -11 0 5 24 11 53 13 28 2 63 4 77 5 14 1 20 -2 15 -7z +m820 -6 c6 -2 -16 -4 -47 -4 -31 -1 -59 3 -62 7 -5 8 85 5 109 -3z m128 8 c-7 +-2 -21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m-8683 -152 c0 -3 -4 -1 +-9 5 -9 9 -42 124 -40 140 1 8 48 -134 49 -145z m2660 118 c0 -10 -4 -19 -10 +-19 -5 0 -10 12 -10 26 0 14 4 23 10 19 6 -3 10 -15 10 -26z m130 -5 c0 -14 +-4 -22 -10 -19 -5 3 -10 17 -10 31 0 14 4 22 10 19 6 -3 10 -17 10 -31z m90 +-10 c0 -21 -4 -33 -10 -29 -5 3 -10 22 -10 41 0 21 4 33 10 29 6 -3 10 -22 10 +-41z m377 9 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m2293 22 +c-7 -8 -20 -15 -28 -15 -13 0 -12 3 4 15 25 19 40 19 24 0z m80 7 c0 -9 -44 +-32 -58 -32 -9 1 41 39 51 40 4 0 7 -4 7 -8z m270 4 c0 -3 -4 -8 -10 -11 -5 +-3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m170 -11 c0 -8 -4 -15 -10 +-15 -5 0 -7 7 -4 15 4 8 8 15 10 15 2 0 4 -7 4 -15z m586 -3 c-3 -6 -36 -20 +-73 -32 -38 -11 -74 -24 -82 -27 -8 -3 -12 0 -9 8 4 11 158 70 167 63 1 -1 0 +-7 -3 -12z m732 13 c-3 -3 -40 -12 -82 -19 -82 -14 -106 -5 -28 12 52 11 118 +15 110 7z m-6404 -46 c324 -64 615 -163 909 -310 167 -84 221 -114 385 -222 +l122 -80 0 -43 c0 -24 -2 -44 -6 -44 -3 0 -31 17 -62 38 -388 262 -932 469 +-1415 538 l-126 18 -30 66 c-17 37 -31 70 -31 74 0 11 78 0 254 -35z m1592 +-27 c-13 -12 -17 8 -10 40 l9 33 3 -33 c2 -19 1 -36 -2 -40z m394 22 c0 -21 +-4 -33 -10 -29 -5 3 -10 22 -10 41 0 21 4 33 10 29 6 -3 10 -22 10 -41z m50 +13 c0 -18 -2 -19 -10 -7 -13 20 -13 43 0 35 6 -3 10 -16 10 -28z m86 -14 c-11 +-12 -27 13 -20 32 7 17 8 17 17 -3 6 -12 7 -25 3 -29z m2360 32 c-11 -8 -25 +-15 -30 -15 -6 0 -2 7 8 15 11 8 25 15 30 15 6 0 2 -7 -8 -15z m224 7 c0 -11 +-41 -34 -48 -27 -4 4 2 13 12 21 22 15 36 18 36 6z m156 -18 c-11 -7 -22 -11 +-25 -8 -3 3 3 12 13 20 11 7 22 11 25 8 3 -3 -3 -12 -13 -20z m108 11 c-6 -16 +-24 -21 -24 -7 0 11 11 22 21 22 5 0 6 -7 3 -15z m326 6 c0 -5 -12 -14 -27 +-19 -16 -5 -36 -13 -45 -17 -33 -13 -19 15 15 29 38 17 57 19 57 7z m1265 0 +c-29 -12 -151 -25 -142 -15 8 9 81 21 132 22 25 1 27 -1 10 -7z m360 -1 c-3 +-5 -39 -9 -78 -8 l-72 1 65 7 c36 4 71 7 78 8 7 1 10 -2 7 -8z m143 3 c-21 -2 +-57 -2 -80 0 -24 2 -7 4 37 4 44 0 63 -2 43 -4z m160 0 c-21 -2 -55 -2 -75 0 +-21 2 -4 4 37 4 41 0 58 -2 38 -4z m191 -9 c8 -8 -84 -2 -109 6 -16 6 -1 7 40 +3 36 -3 67 -7 69 -9z m234 9 c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 +18 -5z m-5933 -49 c0 -21 -4 -33 -10 -29 -5 3 -10 22 -10 41 0 21 4 33 10 29 +6 -3 10 -22 10 -41z m523 33 c3 -8 1 -20 -4 -28 -6 -10 -9 -7 -9 14 0 29 5 35 +13 14z m2177 8 c0 -2 -10 -9 -22 -15 -22 -11 -22 -10 -4 4 21 17 26 19 26 11z +m350 -4 c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 -9z m272 -13 c-7 +-7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m448 11 c0 -10 -19 +-19 -120 -59 -37 -14 -50 -16 -50 -7 0 9 111 60 168 76 1 1 2 -4 2 -10z m1259 +-3 c-7 -6 -154 -18 -147 -11 3 4 37 10 75 14 64 7 82 6 72 -3z m734 7 c-7 -2 +-19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m235 0 c-10 -2 -26 -2 -35 0 +-10 3 -2 5 17 5 19 0 27 -2 18 -5z m-5341 -25 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 +13 3 -3 4 -12 1 -19z m3481 10 c-4 -11 -159 -60 -167 -52 -2 2 -2 6 0 8 3 3 +143 49 167 55 2 1 2 -4 0 -11z m182 4 c0 -8 -130 -42 -159 -42 -28 0 -2 12 66 +30 79 21 93 23 93 12z m176 1 c-11 -12 -156 -41 -156 -32 0 4 28 14 63 22 70 +17 104 20 93 10z m184 -2 c0 -7 -116 -31 -151 -31 -44 0 45 24 144 39 4 0 7 +-3 7 -8z m1163 2 c-13 -2 -33 -2 -45 0 -13 2 -3 4 22 4 25 0 35 -2 23 -4z +m224 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-8168 -59 c0 +-5 -6 1 -14 15 -8 14 -14 30 -14 35 0 6 6 -1 14 -15 8 -14 14 -29 14 -35z +m2013 10 c-2 -20 -8 -33 -12 -28 -9 10 -1 75 9 69 4 -3 5 -21 3 -41z m448 4 +c0 -18 -4 -28 -10 -24 -5 3 -10 20 -10 36 0 18 4 28 10 24 6 -3 10 -20 10 -36z +m123 0 c-8 -29 -13 -23 -13 14 0 22 3 28 9 18 5 -7 6 -22 4 -32z m2281 16 +c-29 -22 -42 -17 -15 6 13 11 26 17 29 14 3 -3 -3 -12 -14 -20z m78 3 c-6 -6 +-15 -8 -19 -4 -4 4 -1 11 7 16 19 12 27 3 12 -12z m258 12 c0 -5 -9 -14 -20 +-20 -22 -12 -27 -1 -8 18 14 14 28 16 28 2z m100 1 c0 -5 -7 -11 -15 -15 -15 +-5 -20 5 -8 17 9 10 23 9 23 -2z m88 -3 c-2 -6 -10 -14 -16 -16 -7 -2 -10 2 +-6 12 7 18 28 22 22 4z m1562 4 c0 -4 -34 -12 -75 -18 -90 -11 -101 0 -12 14 +85 13 87 13 87 4z m350 -2 c0 -6 -31 -9 -77 -8 l-78 2 75 6 c41 4 76 7 78 8 1 +1 2 -2 2 -8z m138 3 c-21 -2 -55 -2 -75 0 -21 2 -4 4 37 4 41 0 58 -2 38 -4z +m170 0 c-21 -2 -57 -2 -80 0 -24 2 -7 4 37 4 44 0 63 -2 43 -4z m115 0 c-13 +-2 -33 -2 -45 0 -13 2 -3 4 22 4 25 0 35 -2 23 -4z m325 0 c-10 -2 -28 -2 -40 +0 -13 2 -5 4 17 4 22 1 32 -1 23 -4z m189 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 +6 11 1 17 -2 13 -5z m-6097 -55 c0 -24 -4 -38 -10 -34 -5 3 -10 24 -10 46 0 +24 4 38 10 34 6 -3 10 -24 10 -46z m90 30 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 +16 0 8 5 12 10 9 6 -3 10 -10 10 -16z m98 -28 c-5 -40 -23 -31 -26 13 -3 36 +-2 38 13 26 9 -8 15 -24 13 -39z m2482 44 c0 -2 -15 -12 -32 -20 l-33 -16 24 +21 c22 19 41 26 41 15z m191 -16 c-13 -11 -27 -17 -30 -13 -7 7 28 34 43 34 6 +-1 0 -10 -13 -21z m673 1 c-5 -5 -30 -18 -56 -29 -37 -15 -48 -17 -48 -7 0 7 +24 22 53 33 51 20 70 21 51 3z m376 11 c0 -9 -142 -61 -165 -61 -23 0 16 22 +80 44 79 28 85 30 85 17z m1737 3 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 +-2 13 -5z m91 -1 c-10 -2 -28 -2 -40 0 -13 2 -5 4 17 4 22 1 32 -1 23 -4z +m-5191 -35 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2393 22 c0 +-12 -40 -33 -48 -25 -4 4 2 13 12 21 23 16 36 18 36 4z m157 -17 c-9 -9 -20 +-13 -24 -9 -4 4 1 14 11 22 25 18 35 8 13 -13z m99 0 c-10 -10 -19 5 -10 18 6 +11 8 11 12 0 2 -7 1 -15 -2 -18z m124 23 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 +-10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m1620 -7 c-25 -4 -61 -7 -80 -7 l-35 1 +35 7 c19 4 55 7 80 7 l45 0 -45 -8z m1117 5 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 +6 11 1 17 -2 13 -5z m-6147 -55 c0 -24 -4 -38 -10 -34 -5 3 -10 24 -10 46 0 +24 4 38 10 34 6 -3 10 -24 10 -46z m362 -5 c-6 -34 -22 -11 -22 31 1 27 2 28 +14 12 7 -9 11 -29 8 -43z m128 46 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 +-1 10 4 10 6 0 11 -4 11 -10z m2592 -12 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 +19 2 -3 -1 -11 -7 -17z m280 0 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 +-11 -7 -17z m458 13 c0 -7 -155 -71 -174 -71 -15 0 7 22 32 32 55 22 127 47 +135 48 4 0 7 -4 7 -9z m540 0 c-16 -9 -134 -41 -152 -41 -43 0 100 47 147 49 +16 0 17 -1 5 -8z m145 -6 c-53 -17 -132 -29 -123 -20 10 10 106 33 138 33 19 +0 15 -3 -15 -13z m215 11 c0 -3 -26 -10 -57 -16 -32 -6 -69 -13 -83 -16 -17 +-4 -22 -2 -15 5 15 15 155 39 155 27z m515 -6 c-3 -5 -39 -9 -78 -8 l-72 2 75 +6 c41 4 76 7 78 8 2 1 0 -2 -3 -8z m143 3 c-21 -2 -55 -2 -75 0 -21 2 -4 4 37 +4 41 0 58 -2 38 -4z m170 0 c-21 -2 -55 -2 -75 0 -21 2 -4 4 37 4 41 0 58 -2 +38 -4z m130 0 c-16 -2 -40 -2 -55 0 -16 2 -3 4 27 4 30 0 43 -2 28 -4z m335 0 +c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-6123 -38 c0 -19 -4 +-35 -8 -35 -4 0 -6 16 -4 35 2 19 6 35 8 35 2 0 4 -16 4 -35z m720 9 c0 -8 -4 +-14 -10 -14 -5 0 -10 9 -10 21 0 11 5 17 10 14 6 -3 10 -13 10 -21z m2030 16 +c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m1535 1 +c-9 -9 -143 -51 -161 -51 -24 0 21 23 77 40 73 21 98 24 84 11z m680 -1 c-85 +-16 -118 -19 -109 -10 10 9 57 16 114 17 l35 1 -40 -8z m1003 3 c-10 -2 -26 +-2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 18 -5z m249 1 c-3 -3 -12 -4 -19 -1 -8 3 +-5 6 6 6 11 1 17 -2 13 -5z m-5657 -57 c0 -16 -4 -26 -10 -22 -5 3 -10 23 -10 +43 0 28 3 33 10 22 5 -8 10 -28 10 -43z m2300 45 c0 -4 -13 -16 -30 -25 -35 +-21 -41 -7 -7 16 25 18 37 21 37 9z m70 0 c0 -11 -41 -34 -48 -28 -3 4 3 13 +14 21 21 16 34 19 34 7z m70 -2 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 +10 11 10 2 0 4 -4 4 -10z m157 -12 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 +-12 1 -19z m88 3 c-3 -6 -15 -16 -26 -22 -18 -9 -19 -9 -10 9 10 19 32 33 40 +26 1 -1 0 -7 -4 -13z m105 10 c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 +-4 9 -9z m71 -24 c-8 -8 -11 -7 -11 4 0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 +-17 -7 -23z m689 24 c0 -5 -38 -22 -85 -38 -53 -19 -85 -26 -85 -18 0 6 35 23 +78 37 89 30 92 31 92 19z m1015 -1 c-27 -5 -63 -8 -80 -8 -25 1 -23 2 10 8 22 +4 58 7 80 7 38 0 37 0 -10 -7z m932 4 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 +1 17 -2 13 -5z m-5812 -64 c-9 -41 -25 -22 -25 30 0 31 1 33 16 18 12 -11 14 +-25 9 -48z m45 39 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 +10 -11 10 -16z m390 -10 c0 -10 -4 -19 -10 -19 -5 0 -10 12 -10 26 0 14 4 23 +10 19 6 -3 10 -15 10 -26z m2390 21 c0 -5 -14 -17 -31 -25 -29 -16 -30 -16 +-20 4 14 26 51 42 51 21z m670 1 c0 -7 -28 -21 -117 -58 -7 -3 -13 0 -13 6 0 +7 24 23 53 36 56 26 77 30 77 16z m905 1 c-6 -5 -37 -14 -70 -21 -33 -7 -69 +-15 -80 -18 -11 -3 -16 -2 -12 3 5 5 38 16 75 25 79 20 100 22 87 11z m170 0 +c-12 -10 -145 -35 -152 -28 -3 2 19 9 49 15 29 5 62 12 73 14 35 8 40 8 30 -1z +m603 1 c-10 -2 -26 -2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 18 -5z m-5388 -34 c0 +-16 -4 -28 -9 -25 -8 5 -3 56 5 56 2 0 4 -14 4 -31z m120 -20 c0 -24 -4 -38 +-10 -34 -5 3 -10 24 -10 46 0 24 4 38 10 34 6 -3 10 -24 10 -46z m274 35 c9 +-23 7 -54 -3 -54 -11 0 -21 25 -21 51 0 23 15 25 24 3z m353 -16 c-3 -7 -5 -2 +-5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m1923 24 c0 -4 -15 -16 -32 -26 l-33 +-17 30 25 c33 29 35 30 35 18z m44 -16 c-10 -8 -21 -12 -24 -9 -3 2 4 11 14 +19 11 7 22 12 25 9 2 -3 -4 -12 -15 -19z m226 15 c0 -6 -4 -13 -10 -16 -5 -3 +-10 1 -10 9 0 9 5 16 10 16 6 0 10 -4 10 -9z m160 0 c0 -6 -10 -17 -22 -26 +-28 -19 -39 0 -12 20 22 17 34 19 34 6z m362 -13 c-7 -7 -12 -8 -12 -2 0 14 +12 26 19 19 2 -3 -1 -11 -7 -17z m422 3 c-17 -17 -165 -69 -161 -58 2 7 39 26 +83 43 76 30 99 34 78 15z m554 13 c-10 -9 -160 -46 -166 -40 -6 7 6 11 78 30 +58 15 97 20 88 10z m453 -10 c-41 -7 -77 -12 -79 -9 -2 2 13 7 34 10 22 4 44 +8 49 10 6 2 24 3 40 3 17 0 -4 -6 -44 -14z m337 9 c-10 -2 -28 -2 -40 0 -13 2 +-5 4 17 4 22 1 32 -1 23 -4z m-1968 -11 c0 -11 -22 -32 -32 -32 -5 0 -4 9 2 +20 11 20 30 28 30 12z m995 0 c-14 -12 -166 -54 -173 -48 -6 6 5 11 85 36 63 +20 103 25 88 12z m853 1 c-10 -2 -26 -2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 18 +-5z m-4800 -38 c3 -25 2 -27 -12 -16 -19 16 -22 55 -3 49 6 -3 14 -17 15 -33z +m175 21 c8 -19 -3 -57 -14 -50 -12 7 -12 64 0 64 5 0 11 -6 14 -14z m237 -12 +c0 -8 -4 -14 -10 -14 -5 0 -10 9 -10 21 0 11 5 17 10 14 6 -3 10 -13 10 -21z +m2702 4 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m642 3 +c-15 -14 -164 -60 -164 -51 0 4 37 22 83 38 78 28 102 32 81 13z m711 10 c-12 +-10 -135 -34 -142 -27 -3 2 12 8 33 11 22 4 55 11 74 15 19 4 37 8 40 9 2 1 0 +-3 -5 -8z m248 2 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z +m-4983 -34 c0 -11 -4 -17 -10 -14 -5 3 -10 15 -10 26 0 11 5 17 10 14 6 -3 10 +-15 10 -26z m1036 -89 c125 -207 235 -462 300 -698 l34 -125 -21 -33 c-11 -19 +-24 -34 -28 -34 -4 0 -15 28 -25 63 -74 270 -225 571 -434 867 -16 23 -16 24 +1 17 11 -4 17 -2 17 9 0 8 5 12 10 9 6 -3 10 -2 10 2 0 5 12 16 28 25 34 21 +33 21 108 -102z m1499 110 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 23 12 +15 0z m245 3 c-1 -13 -51 -46 -58 -38 -4 3 4 15 18 25 26 21 40 25 40 13z m55 +-18 c-16 -14 -32 -20 -34 -14 -4 13 28 38 49 38 9 0 4 -9 -15 -24z m265 16 c0 +-12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 -9z m151 -24 c-16 -16 -26 0 +-10 19 9 11 15 12 17 4 2 -6 -1 -17 -7 -23z m409 20 c0 -14 -127 -73 -137 -63 +-4 3 -4 8 -2 10 4 4 126 62 137 65 1 1 2 -5 2 -12z m730 5 c0 -4 -33 -16 -72 +-26 -40 -10 -80 -21 -88 -24 -10 -3 -12 -2 -5 6 6 6 44 20 85 30 41 11 76 21 +78 21 1 1 2 -3 2 -7z m110 -13 c-41 -10 -82 -18 -90 -16 -19 4 106 35 140 35 +14 0 -9 -9 -50 -19z m403 14 c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 +18 -5z m-7187 -88 c21 -48 28 -75 20 -75 -13 0 -78 145 -68 154 8 9 13 2 48 +-79z m40 9 c38 -83 38 -84 25 -84 -10 0 -57 96 -67 137 -12 46 8 21 42 -53z +m43 0 c33 -70 38 -89 20 -79 -10 7 -50 90 -64 135 -14 45 13 9 44 -56z m41 1 +c18 -42 30 -78 27 -82 -4 -3 -23 29 -42 71 -38 85 -39 86 -26 86 4 0 23 -34 +41 -75z m40 0 c44 -100 31 -108 -14 -10 -40 86 -39 85 -27 85 4 0 23 -34 41 +-75z m39 -2 c17 -36 30 -71 28 -77 -3 -9 -77 136 -77 151 0 17 23 -18 49 -74z +m2211 15 c0 -35 -2 -39 -15 -28 -9 7 -15 29 -15 52 0 35 2 39 15 28 9 -7 15 +-29 15 -52z m88 11 c2 -41 1 -43 -13 -25 -19 24 -20 79 -2 74 6 -3 13 -24 15 +-49z m312 4 c0 -13 -4 -23 -10 -23 -5 0 -10 17 -10 38 0 27 3 33 10 22 5 -8 +10 -25 10 -37z m40 26 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 6 +-3 10 -10 10 -16z m2060 13 c0 -4 -13 -16 -30 -25 -38 -23 -40 -8 -2 15 32 20 +32 20 32 10z m51 -13 c-13 -11 -27 -17 -30 -13 -7 7 28 34 43 34 6 -1 0 -10 +-13 -21z m303 6 c-7 -17 -43 -40 -51 -32 -5 6 37 47 49 47 4 0 5 -7 2 -15z +m163 -12 c-9 -9 -20 -13 -24 -9 -4 4 1 14 11 22 25 18 35 8 13 -13z m197 12 +c-6 -16 -24 -21 -24 -7 0 11 11 22 21 22 5 0 6 -7 3 -15z m1489 8 c-7 -2 -21 +-2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m-7296 -75 c15 -40 30 -77 32 -82 +2 -5 -2 -7 -9 -4 -7 2 -23 30 -35 61 -33 81 -38 97 -27 97 6 0 23 -33 39 -72z +m44 -3 c31 -75 34 -85 20 -85 -7 0 -25 38 -69 149 -3 8 0 12 7 10 7 -3 26 -36 +42 -74z m44 3 c16 -40 28 -74 27 -75 -9 -12 -21 6 -49 71 -22 52 -28 76 -19 +76 7 0 26 -33 41 -72z m46 -2 c33 -77 33 -76 19 -76 -6 0 -21 24 -34 54 -35 +78 -40 99 -26 94 6 -2 25 -34 41 -72z m286 2 c35 -75 38 -107 5 -41 -32 61 +-52 113 -44 113 4 0 22 -32 39 -72z m38 -7 c19 -40 30 -69 25 -66 -9 6 -70 +130 -70 143 0 12 13 -10 45 -77z m14 42 c26 -52 51 -113 46 -113 -5 0 -37 61 +-58 113 -9 20 -14 37 -12 37 3 0 13 -17 24 -37z m2301 -9 c0 -21 -4 -33 -10 +-29 -5 3 -10 22 -10 41 0 21 4 33 10 29 6 -3 10 -22 10 -41z m330 25 c0 -11 +-4 -17 -10 -14 -5 3 -10 13 -10 21 0 8 5 14 10 14 6 0 10 -9 10 -21z m100 6 +c0 -8 -4 -15 -10 -15 -5 0 -7 7 -4 15 4 8 8 15 10 15 2 0 4 -7 4 -15z m2160 6 +c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 -9z m946 0 c-8 -12 -166 +-74 -173 -67 -3 3 20 17 53 31 32 14 68 30 79 35 26 11 48 12 41 1z m364 4 c0 +-2 -32 -14 -71 -25 -39 -12 -78 -24 -85 -27 -8 -3 -14 -1 -14 4 0 6 30 19 68 +31 67 20 102 26 102 17z m-6747 -92 c15 -40 23 -73 18 -73 -9 0 -61 131 -61 +153 0 23 18 -10 43 -80z m38 7 c33 -86 32 -80 20 -80 -5 0 -18 24 -29 53 -11 +28 -25 65 -31 80 -8 21 -8 28 0 25 6 -2 24 -37 40 -78z m539 45 c0 -5 -5 -3 +-10 5 -5 8 -10 20 -10 25 0 6 5 3 10 -5 5 -8 10 -19 10 -25z m2360 9 c0 -8 -4 +-14 -10 -14 -5 0 -10 9 -10 21 0 11 5 17 10 14 6 -3 10 -13 10 -21z m2145 16 +c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m490 +-9 c-3 -6 -15 -16 -26 -22 -18 -9 -19 -9 -10 9 10 19 32 33 40 26 1 -1 0 -7 +-4 -13z m162 -8 c-9 -9 -20 -13 -24 -9 -4 4 1 14 11 22 25 18 35 8 13 -13z +m1328 12 c-23 -7 -61 -15 -85 -18 -33 -4 -27 -1 25 13 79 21 121 25 60 5z +m170 5 c-16 -4 -41 -8 -55 -8 -22 0 -22 1 5 8 17 4 41 8 55 8 22 0 22 -1 -5 +-8z m-7271 -74 c27 -71 33 -97 17 -80 -9 10 -51 131 -51 148 0 17 8 2 34 -68z +m952 49 c480 -84 970 -276 1342 -527 71 -48 72 -49 72 -93 l0 -45 -80 50 +c-367 230 -846 405 -1295 473 l-150 23 -38 72 c-46 87 -56 83 149 47z m1664 4 +c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m657 +-11 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2585 10 c-7 -7 -12 +-8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m79 -11 c-8 -8 -11 -7 -11 4 +0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 -17 -7 -23z m654 25 c-6 -5 -39 -19 -75 +-32 -102 -36 -96 -34 -84 -21 7 7 40 23 75 36 66 25 100 31 84 17z m363 3 c-9 +-10 -149 -47 -155 -41 -3 2 21 12 53 21 33 9 64 18 69 20 16 6 39 5 33 0z +m-4461 -67 c-2 -13 -4 -3 -4 22 0 25 2 35 4 23 2 -13 2 -33 0 -45z m563 25 c0 +-28 -3 -34 -10 -23 -13 20 -13 60 0 60 6 0 10 -17 10 -37z m120 11 c0 -14 -4 +-23 -10 -19 -5 3 -10 15 -10 26 0 10 5 19 10 19 6 0 10 -12 10 -26z m1850 10 +c-8 -8 -23 -20 -34 -25 -13 -6 -10 0 9 15 34 29 43 33 25 10z m250 7 c0 -5 +-13 -19 -30 -31 -21 -15 -30 -17 -30 -8 0 7 12 21 28 30 32 21 32 21 32 9z +m63 -13 c-13 -12 -26 -18 -30 -14 -4 4 1 14 11 22 31 22 43 17 19 -8z m81 10 +c-3 -7 -16 -21 -29 -31 -20 -14 -25 -15 -25 -4 0 8 10 22 23 30 27 20 38 21 +31 5z m250 -2 c-6 -16 -34 -29 -43 -20 -6 6 27 34 41 34 4 0 5 -6 2 -14z m566 +4 c0 -5 -2 -10 -4 -10 -2 0 -38 -16 -80 -35 -42 -19 -76 -30 -76 -24 0 6 33 +25 73 44 80 37 87 39 87 25z m540 1 c0 -4 -33 -18 -72 -30 -40 -13 -79 -25 +-85 -28 -7 -2 -13 -1 -13 4 0 6 37 21 83 35 45 14 83 26 85 27 1 1 2 -3 2 -8z +m407 3 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-4720 -36 c-3 +-7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m113 11 c0 -5 -4 -9 -10 -9 +-5 0 -10 7 -10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z m170 -25 c0 -21 -4 -33 +-10 -29 -5 3 -10 22 -10 41 0 21 4 33 10 29 6 -3 10 -22 10 -41z m98 -16 c-3 +-44 -23 -27 -26 23 -2 41 -1 43 13 25 8 -11 14 -33 13 -48z m2352 53 c0 -12 +-50 -44 -57 -37 -6 6 37 45 50 46 4 0 7 -4 7 -9z m290 0 c0 -6 -10 -17 -22 +-26 -28 -19 -39 0 -12 20 22 17 34 19 34 6z m330 -11 c-11 -20 -30 -28 -30 +-12 0 11 22 32 32 32 5 0 4 -9 -2 -20z m600 12 c0 -11 -159 -76 -167 -68 -3 3 +20 17 53 31 32 14 68 30 79 35 26 11 35 12 35 2z m-3480 -54 c0 -44 -24 -29 +-28 17 -3 34 -2 37 12 26 9 -8 16 -27 16 -43z m200 15 c0 -28 -3 -34 -10 -23 +-13 20 -13 60 0 60 6 0 10 -17 10 -37z m197 15 c-3 -8 -6 -5 -6 6 -1 11 2 17 +5 13 3 -3 4 -12 1 -19z m1783 12 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 +10 11 10 2 0 4 -4 4 -10z m414 -25 c-13 -9 -20 -10 -23 -3 -2 6 5 17 15 25 13 +9 20 10 22 3 2 -6 -4 -17 -14 -25z m190 20 c-6 -16 -24 -21 -24 -7 0 11 11 22 +21 22 5 0 6 -7 3 -15z m180 0 c-4 -8 -8 -15 -10 -15 -2 0 -4 7 -4 15 0 8 4 15 +10 15 5 0 7 -7 4 -15z m1041 6 c-12 -10 -125 -41 -146 -40 -8 0 22 11 66 24 +95 28 91 27 80 16z m148 2 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 +-5z m-4553 -30 c0 -16 -5 -35 -10 -43 -7 -11 -10 -4 -10 28 0 23 5 42 10 42 6 +0 10 -12 10 -27z m80 -4 c0 -11 -4 -17 -10 -14 -5 3 -10 15 -10 26 0 11 5 17 +10 14 6 -3 10 -15 10 -26z m908 -132 c136 -206 235 -415 311 -652 23 -70 41 +-133 41 -141 0 -7 -10 -29 -21 -49 l-22 -36 -37 108 c-94 274 -243 547 -417 +763 -33 41 -58 81 -55 88 3 10 7 11 12 2 5 -7 10 -1 14 16 6 22 9 25 17 13 7 +-11 9 -9 9 9 0 24 15 30 23 10 3 -7 6 -3 6 10 1 23 1 23 25 -5 13 -15 55 -77 +94 -136z m2061 122 c-15 -11 -25 -14 -28 -7 -2 6 7 19 20 29 15 11 25 14 28 7 +2 -6 -7 -19 -20 -29z m372 18 c-10 -9 -11 -8 -5 6 3 10 9 15 12 12 3 -3 0 -11 +-7 -18z m638 19 c-11 -11 -169 -64 -169 -56 0 9 125 57 154 59 11 0 17 -1 15 +-3z m448 -2 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-2036 -34 +c-19 -16 -37 -27 -40 -24 -6 6 50 53 64 53 6 0 -5 -13 -24 -29z m746 3 c-9 -9 +-20 -13 -24 -9 -4 4 1 14 11 22 25 18 35 8 13 -13z m93 2 c-7 -9 -15 -13 -18 +-10 -3 2 1 11 8 20 7 9 15 13 18 10 3 -2 -1 -11 -8 -20z m915 16 c-6 -5 -36 +-16 -67 -25 -32 -9 -65 -19 -75 -23 -11 -4 -15 -2 -10 3 5 5 38 19 75 30 77 +25 90 28 77 15z m242 3 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m-7024 -56 c16 -50 14 -67 -3 -23 -13 34 -24 81 -18 75 3 -3 12 -26 21 -52z +m2677 11 c0 -18 -4 -28 -10 -24 -5 3 -10 20 -10 36 0 18 4 28 10 24 6 -3 10 +-20 10 -36z m440 0 c0 -18 -4 -28 -10 -24 -5 3 -10 20 -10 36 0 18 4 28 10 24 +6 -3 10 -20 10 -36z m107 4 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 +-30z m100 15 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m1773 7 +c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z m190 1 c0 -16 -49 +-51 -58 -41 -4 4 7 18 23 31 35 28 35 28 35 10z m70 -7 c-7 -11 -14 -18 -17 +-15 -8 8 5 36 17 36 7 0 7 -6 0 -21z m304 -16 c-13 -9 -20 -10 -22 -3 -5 15 +32 42 37 28 2 -6 -5 -17 -15 -25z m278 15 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 +19 2 -3 -1 -11 -7 -17z m308 15 c-1 -10 -140 -73 -159 -73 -23 0 -7 11 71 46 +77 35 88 39 88 27z m174 -12 c-15 -13 -154 -65 -160 -59 -3 3 32 21 78 41 78 +32 104 38 82 18z m-3831 -80 c-2 -3 -8 0 -14 6 -8 8 -9 25 -3 50 l8 38 6 -45 +c3 -25 4 -47 3 -49z m227 47 c0 -17 -3 -18 -15 -8 -8 7 -15 21 -15 32 0 17 3 +18 15 8 8 -7 15 -21 15 -32z m2394 30 c-7 -19 -54 -51 -62 -43 -4 4 6 18 21 +31 31 26 49 31 41 12z m200 -23 c-11 -8 -22 -15 -26 -15 -16 0 -7 19 14 35 28 +19 39 0 12 -20z m1196 25 c0 -5 -12 -13 -27 -17 -16 -3 -54 -17 -85 -29 -32 +-12 -58 -19 -58 -15 0 6 74 37 168 70 1 1 2 -3 2 -9z m337 4 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-4039 -55 c2 -41 1 -43 -13 -25 -19 +24 -20 79 -2 74 6 -3 13 -24 15 -49z m132 25 c0 -8 -4 -12 -10 -9 -5 3 -10 13 +-10 21 0 8 5 12 10 9 6 -3 10 -13 10 -21z m1920 11 c-7 -8 -17 -15 -22 -15 -6 +0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 -2 -15z m540 5 c0 -14 -49 -44 -58 -35 +-4 3 4 15 17 26 26 21 41 24 41 9z m320 -10 c-6 -11 -15 -20 -21 -20 -6 0 -6 +7 1 20 6 11 15 20 21 20 6 0 6 -7 -1 -20z m960 12 c0 -8 -138 -53 -157 -51 -6 +0 111 45 155 58 1 1 2 -3 2 -7z m115 -2 c-11 -5 -27 -9 -35 -9 -9 0 -8 4 5 9 +11 5 27 9 35 9 9 0 8 -4 -5 -9z m1180 -167 c-278 -626 -742 -1205 -1287 -1606 +-121 -89 -118 -88 -156 -71 l-34 14 79 58 c308 229 614 545 856 887 153 214 +334 544 433 787 l39 97 65 3 c43 2 66 -1 68 -9 2 -6 -27 -78 -63 -160z m221 +164 c13 -13 -124 -305 -231 -493 -89 -155 -253 -396 -371 -544 -209 -262 -593 +-622 -849 -796 -84 -57 -100 -62 -129 -41 -17 12 -10 20 75 83 585 434 1044 +1015 1335 1693 l49 113 57 -4 c32 -2 61 -7 64 -11z m-5568 -47 c3 -39 2 -42 +-12 -31 -19 16 -22 85 -3 79 6 -3 13 -24 15 -48z m270 4 c2 -37 1 -38 -13 -20 +-18 24 -20 69 -2 64 6 -3 13 -22 15 -44z m202 10 c0 -13 -4 -24 -10 -24 -5 0 +-10 14 -10 31 0 17 4 28 10 24 6 -3 10 -17 10 -31z m1854 24 c-9 -22 -64 -61 +-64 -46 0 7 15 23 33 36 37 26 38 26 31 10z m506 3 c0 -12 -20 -25 -27 -18 -7 +7 6 27 18 27 5 0 9 -4 9 -9z m2414 -13 c-19 -63 -143 -330 -210 -453 -267 +-489 -624 -911 -1057 -1248 -127 -99 -130 -101 -172 -87 l-35 11 78 61 c534 +422 970 1003 1213 1615 49 124 41 117 147 121 41 2 43 1 36 -20z m486 17 c0 +-3 -31 -71 -68 -152 -314 -684 -842 -1304 -1465 -1722 -74 -49 -81 -52 -108 +-41 -37 16 -36 21 3 45 63 37 265 195 388 302 472 414 832 913 1094 1516 l25 +57 65 0 c37 0 66 -2 66 -5z m147 -10 c7 -5 -154 -328 -222 -445 -202 -350 +-432 -647 -722 -930 -214 -210 -398 -361 -629 -514 -99 -66 -101 -66 -134 -53 +l-33 14 79 53 c647 435 1193 1092 1504 1812 l33 77 61 -6 c34 -3 62 -7 63 -8z +m-3506 -16 c-13 -11 -26 -17 -29 -14 -8 8 20 35 37 35 12 -1 11 -5 -8 -21z +m219 11 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z +m377 -12 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m265 0 c-7 -7 +-12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m283 12 c-5 -9 -43 -27 +-132 -66 -18 -8 -33 -10 -33 -6 0 9 145 81 163 82 5 0 5 -4 2 -10z m595 6 c0 +-2 -9 -6 -20 -9 -11 -3 -18 -1 -14 4 5 9 34 13 34 5z m965 -18 c-19 -61 -124 +-298 -185 -415 -193 -369 -413 -668 -714 -968 -150 -149 -413 -376 -434 -374 +-4 0 -21 6 -39 12 l-32 12 87 70 c211 170 503 482 674 720 170 237 347 558 +443 805 27 69 53 130 58 137 8 11 38 16 120 21 25 2 28 -1 22 -20z m944 6 c6 +-5 -133 -286 -198 -400 -209 -365 -448 -672 -762 -979 -224 -219 -432 -384 +-696 -552 -74 -48 -85 -52 -108 -41 -14 6 -25 14 -25 17 0 3 42 33 92 66 528 +346 1020 870 1346 1437 64 110 186 351 215 425 l16 42 58 -6 c32 -3 60 -7 62 +-9z m-6111 -42 c2 -25 -1 -42 -7 -42 -6 0 -11 1 -12 3 0 1 -3 22 -6 46 -4 34 +-2 42 8 39 8 -3 15 -22 17 -46z m619 11 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 +-7 2 -21 0 -30z m43 27 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 +6 0 11 -4 11 -10z m1660 -15 c-7 -9 -15 -13 -18 -10 -3 2 1 11 8 20 7 9 15 13 +18 10 3 -2 -1 -11 -8 -20z m650 16 c0 -12 -42 -42 -49 -36 -5 6 29 45 41 45 4 +0 8 -4 8 -9z m147 -18 c-9 -9 -19 -14 -22 -11 -3 3 2 13 11 22 9 9 19 14 22 +11 3 -3 -2 -13 -11 -22z m93 2 c-7 -9 -15 -13 -18 -10 -3 2 1 11 8 20 7 9 15 +13 18 10 3 -2 -1 -11 -8 -20z m565 17 c-18 -15 -146 -65 -152 -59 -3 4 7 12 +23 18 16 6 49 20 74 30 49 20 70 24 55 11z m180 0 c-14 -12 -157 -64 -162 -58 +-2 2 22 14 54 25 32 12 67 26 78 31 26 12 42 13 30 2z m-4075 -37 c0 -19 -4 +-35 -10 -35 -5 0 -10 16 -10 35 0 19 5 35 10 35 6 0 10 -16 10 -35z m560 4 c0 +-17 -4 -28 -10 -24 -5 3 -10 17 -10 31 0 13 5 24 10 24 6 0 10 -14 10 -31z +m80 0 c0 -11 -4 -17 -10 -14 -5 3 -10 15 -10 26 0 11 5 17 10 14 6 -3 10 -15 +10 -26z m2045 10 c-7 -19 -45 -42 -53 -34 -4 4 6 17 23 30 31 26 39 26 30 4z +m49 -24 c-17 -14 -31 -19 -33 -12 -2 6 9 21 25 34 17 13 30 18 33 12 2 -6 -9 +-22 -25 -34z m93 23 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z +m575 0 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m1694 -42 +c-37 -98 -83 -199 -153 -341 -238 -477 -570 -896 -982 -1239 -88 -73 -107 -85 +-130 -80 -55 14 -54 19 26 85 111 92 333 316 438 442 269 325 488 697 627 +1067 22 58 42 107 44 109 6 6 81 18 121 20 l33 1 -24 -64z m1262 49 c4 -3 -22 +-63 -57 -133 -370 -748 -927 -1366 -1624 -1803 -96 -60 -111 -67 -133 -57 -13 +6 -24 14 -24 17 1 3 54 41 120 83 409 266 796 629 1100 1033 169 225 293 429 +432 709 l83 168 49 -6 c27 -3 51 -8 54 -11z m-6106 -53 c2 -26 0 -41 -7 -39 +-5 2 -11 26 -13 53 -4 61 14 48 20 -14z m88 37 c0 -6 -4 -7 -10 -4 -5 3 -10 +11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m97 -33 c2 -20 0 -36 -5 -36 -13 +0 -22 25 -22 63 0 42 20 22 27 -27z m2463 46 c0 -9 -25 -33 -47 -46 -21 -12 +-15 12 9 34 23 21 38 26 38 12z m240 -1 c0 -13 -29 -35 -37 -28 -7 8 15 37 28 +37 5 0 9 -4 9 -9z m3348 -16 c8 -8 -130 -275 -225 -432 -374 -625 -905 -1159 +-1520 -1528 -92 -56 -108 -62 -129 -53 -13 6 -24 14 -24 17 0 3 35 26 77 51 +263 155 622 444 863 696 321 335 605 741 796 1140 l63 132 47 -9 c26 -5 49 +-11 52 -14z m-6531 -17 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z +m928 -73 c179 -231 314 -483 405 -758 32 -99 32 -99 14 -138 -9 -22 -20 -36 +-24 -32 -3 4 -24 53 -45 108 -102 267 -255 518 -447 736 -46 53 -58 74 -58 +100 0 31 1 32 15 13 14 -18 14 -17 15 16 1 33 1 34 15 16 14 -19 15 -18 15 13 +0 30 2 32 16 20 9 -7 44 -50 79 -94z m1644 93 c0 -17 -58 -62 -67 -53 -4 3 9 +20 28 36 41 33 40 33 39 17z m54 -20 c-18 -18 -35 -30 -38 -27 -9 10 35 59 53 +59 12 0 8 -8 -15 -32z m207 -4 c-18 -21 -24 -10 -9 18 8 14 14 18 17 10 2 -7 +-2 -19 -8 -28z m154 1 c-11 -8 -22 -15 -26 -15 -16 0 -7 19 14 35 28 19 39 0 +12 -20z m340 21 c-3 -8 -12 -17 -20 -20 -12 -4 -12 -2 -4 14 12 23 32 27 24 6z +m436 5 c0 -11 -160 -84 -168 -77 -3 3 33 24 79 46 96 45 89 43 89 31z m179 -4 +c-15 -12 -162 -67 -167 -63 -2 3 4 9 14 13 10 3 48 19 84 34 36 15 67 26 69 +23 2 -2 2 -5 0 -7z m290 9 c-2 -2 -26 -10 -53 -19 -53 -18 -55 -10 -3 10 31 +11 65 17 56 9z m751 -2 c0 -22 -115 -290 -180 -421 -130 -262 -255 -457 -444 +-693 -108 -135 -377 -410 -492 -503 -63 -50 -75 -56 -103 -51 -17 4 -33 10 +-36 14 -2 4 47 53 109 110 396 357 734 854 935 1376 l58 149 64 11 c82 15 89 +15 89 8z m-7110 -84 c26 -52 36 -80 27 -80 -7 0 -24 21 -36 48 -41 82 -52 112 +-41 112 5 0 28 -36 50 -80z m44 4 c40 -85 40 -84 26 -84 -6 0 -26 34 -45 76 +-39 85 -39 84 -26 84 5 0 25 -34 45 -76z m46 1 c20 -41 31 -75 25 -75 -6 0 +-27 34 -48 75 -23 46 -32 75 -24 75 6 0 28 -34 47 -75z m43 0 c20 -41 32 -75 +27 -75 -5 0 -26 31 -45 70 -37 74 -39 80 -27 80 4 0 24 -34 45 -75z m43 4 c19 +-39 33 -74 30 -77 -8 -8 -9 -6 -50 76 -20 39 -32 72 -26 72 5 0 26 -32 46 -71z +m39 1 c37 -74 44 -98 19 -65 -27 35 -75 135 -64 135 5 0 26 -31 45 -70z m41 +-1 c39 -79 41 -104 2 -37 -45 76 -59 108 -48 108 5 0 26 -32 46 -71z m34 4 +c41 -78 47 -95 25 -68 -24 28 -77 135 -68 135 5 0 24 -30 43 -67z m43 -15 c20 +-38 33 -68 29 -68 -6 0 -70 114 -81 144 -9 27 19 -14 52 -76z m39 -13 c41 -81 +20 -57 -27 30 -20 39 -29 61 -20 50 9 -11 30 -47 47 -80z m1825 48 c-3 -10 -5 +-2 -5 17 0 19 2 27 5 18 2 -10 2 -26 0 -35z m133 -11 c0 -34 -3 -43 -10 -32 +-13 20 -13 93 0 85 6 -3 10 -27 10 -53z m140 48 c0 -5 -2 -10 -4 -10 -3 0 -8 +5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m220 -36 c0 -21 -4 -33 -10 -29 +-5 3 -10 22 -10 41 0 21 4 33 10 29 6 -3 10 -22 10 -41z m190 14 c0 -25 -3 +-29 -10 -18 -13 20 -13 50 0 50 6 0 10 -15 10 -32z m1630 7 c-13 -14 -28 -25 +-33 -25 -6 0 0 11 13 25 13 14 28 25 33 25 6 0 0 -11 -13 -25z m829 -6 c-19 +-12 -24 -2 -8 17 9 11 14 13 17 4 3 -7 -2 -16 -9 -21z m191 21 c0 -5 -5 -10 +-11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m708 5 c-8 -8 -151 +-55 -155 -51 -4 4 127 54 146 55 8 1 12 -1 9 -4z m2539 -19 c9 -9 -59 -146 +-159 -321 -392 -685 -932 -1235 -1617 -1648 -109 -66 -127 -74 -148 -64 -12 5 +-23 13 -22 16 0 3 48 34 107 69 286 169 544 374 828 657 369 368 611 699 843 +1154 l81 158 40 -7 c23 -4 44 -10 47 -14z m-8912 -62 c40 -88 39 -84 23 -84 +-7 0 -26 30 -42 67 -40 94 -39 93 -27 93 6 0 26 -34 46 -76z m45 1 c18 -42 30 +-79 26 -82 -9 -9 -12 -5 -50 80 -24 52 -31 77 -23 77 8 0 28 -34 47 -75z m45 +5 c39 -78 40 -80 22 -80 -10 0 -39 54 -75 142 -2 4 1 8 7 8 6 0 27 -31 46 -70z +m2815 24 c0 -21 -4 -33 -10 -29 -5 3 -10 22 -10 41 0 21 4 33 10 29 6 -3 10 +-22 10 -41z m1800 42 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 +6 0 10 -2 10 -4z m42 -18 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 +-7 -17z m-4833 -64 c18 -42 30 -79 27 -82 -9 -8 -11 -4 -45 77 -35 81 -34 81 +-22 81 4 0 23 -34 40 -76z m42 3 c43 -96 29 -108 -15 -14 -40 86 -41 90 -25 +85 6 -2 24 -34 40 -71z m894 48 c438 -74 860 -232 1238 -464 l87 -54 0 -44 0 +-44 -62 36 c-412 237 -825 376 -1317 443 l-53 7 -39 68 c-22 38 -39 71 -39 73 +0 8 41 4 185 -21z m1805 -11 c0 -19 -16 -18 -24 2 -11 27 -7 37 9 24 8 -7 15 +-19 15 -26z m2650 27 c0 -5 -7 -14 -15 -21 -12 -10 -15 -10 -15 2 0 8 3 18 7 +21 9 10 23 9 23 -2z m74 -4 c-2 -7 -13 -18 -24 -25 -17 -10 -20 -10 -20 2 0 8 +8 20 18 25 23 14 32 13 26 -2z m146 -12 c-7 -9 -15 -13 -18 -10 -3 2 1 11 8 +20 7 9 15 13 18 10 3 -2 -1 -11 -8 -20z m98 13 c-2 -6 -10 -14 -16 -16 -7 -2 +-10 2 -6 12 7 18 28 22 22 4z m1436 -10 c-21 -69 -115 -292 -174 -413 -151 +-311 -351 -601 -606 -879 -93 -101 -301 -296 -325 -305 -6 -1 -26 0 -46 4 +l-36 6 129 127 c405 399 691 845 878 1373 l27 75 72 16 c40 9 76 16 80 17 5 1 +5 -9 1 -21z m-7216 -70 c16 -43 26 -78 22 -78 -8 0 -60 132 -60 152 0 19 7 6 +38 -74z m36 3 c27 -68 33 -92 17 -75 -9 8 -61 139 -61 152 0 17 21 -20 44 -77z +m2506 42 c0 -24 -25 -9 -28 17 -3 21 -2 22 12 11 9 -7 16 -20 16 -28z m220 +-26 c0 -53 -16 -38 -26 23 -7 41 -6 44 9 31 11 -8 17 -28 17 -54z m1980 60 c0 +-2 -15 -14 -32 -27 l-33 -23 24 26 c21 23 41 35 41 24z m384 -34 c-13 -9 -20 +-10 -22 -3 -5 15 32 42 37 28 2 -6 -5 -17 -15 -25z m60 -8 c-17 -14 -31 -19 +-33 -12 -2 6 9 21 25 34 17 13 30 18 33 12 2 -6 -9 -22 -25 -34z m1161 36 +c-15 -14 -157 -72 -163 -67 -2 3 13 12 34 21 22 9 57 24 79 35 44 21 64 25 50 +11z m165 -1 c-8 -5 -19 -10 -25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 +-5 -10z m2677 -4 c6 -6 -68 -150 -145 -286 -353 -620 -848 -1152 -1437 -1545 +-235 -156 -362 -228 -392 -221 -12 4 -23 10 -23 14 0 4 35 27 78 51 187 108 +452 295 637 450 131 109 402 378 515 511 253 296 457 602 616 923 l59 119 44 +-6 c25 -3 46 -8 48 -10z m-6251 -21 c6 -23 0 -45 -10 -34 -10 12 -15 59 -6 59 +5 0 12 -11 16 -25z m1859 -10 c-43 -35 -56 -30 -17 6 19 17 37 28 40 24 3 -3 +-7 -17 -23 -30z m65 10 c-7 -9 -15 -13 -18 -10 -3 2 1 11 8 20 7 9 15 13 18 +10 3 -2 -1 -11 -8 -20z m174 -20 c-17 -14 -31 -19 -33 -12 -2 6 9 21 25 34 17 +13 30 18 33 12 2 -6 -9 -22 -25 -34z m215 4 c-15 -11 -25 -14 -28 -7 -2 6 7 +19 20 29 15 11 25 14 28 7 2 -6 -7 -19 -20 -29z m91 21 c-12 -23 -50 -46 -50 +-31 0 12 40 51 52 51 5 0 4 -9 -2 -20z m227 -7 c-9 -9 -20 -13 -24 -9 -4 4 1 +14 11 22 25 18 35 8 13 -13z m603 23 c0 -7 -153 -76 -158 -71 -3 2 28 20 69 +40 70 33 89 40 89 31z m-5480 -46 c11 -22 18 -40 15 -40 -2 0 -14 18 -25 40 +-11 22 -18 40 -15 40 2 0 14 -18 25 -40z m1978 -8 c2 -23 -1 -42 -6 -42 -13 0 +-22 25 -22 62 0 46 24 29 28 -20z m352 -12 c0 -26 -3 -31 -10 -20 -5 8 -10 31 +-10 50 0 26 3 31 10 20 5 -8 10 -31 10 -50z m1934 15 c-17 -14 -31 -19 -33 +-12 -2 6 9 21 25 34 17 13 30 18 33 12 2 -6 -9 -22 -25 -34z m446 25 c-11 -20 +-50 -46 -50 -33 0 10 42 53 52 53 5 0 4 -9 -2 -20z m320 5 c-7 -9 -15 -13 -17 +-11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z m90 11 c0 -2 -7 -9 -15 -16 -13 -11 -14 +-10 -9 4 5 14 24 23 24 12z m3477 -15 c9 -5 -12 -51 -68 -156 -419 -773 -1028 +-1400 -1781 -1833 -146 -84 -154 -88 -173 -72 -13 11 -3 20 72 63 148 83 451 +289 588 400 520 418 945 939 1231 1509 l55 109 32 -6 c18 -4 38 -10 44 -14z +m-6870 -53 c-2 -13 -4 -3 -4 22 0 25 2 35 4 23 2 -13 2 -33 0 -45z m433 25 c0 +-28 -3 -34 -10 -23 -13 20 -13 60 0 60 6 0 10 -17 10 -37z m2780 27 c0 -5 -9 +-14 -20 -20 -22 -12 -27 -1 -8 18 14 14 28 16 28 2z m800 0 c-8 -5 -19 -10 +-25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z m594 -22 c-11 -50 +-105 -280 -167 -408 -177 -366 -401 -676 -705 -977 -148 -147 -162 -156 -215 +-135 -14 6 -4 20 59 82 378 373 672 839 849 1345 16 44 30 81 31 83 2 3 77 23 +152 41 2 1 0 -14 -4 -31z m-4444 1 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 +5 12 10 9 6 -3 10 -10 10 -16z m520 -26 c0 -13 -4 -23 -10 -23 -5 0 -10 17 +-10 38 0 27 3 33 10 22 5 -8 10 -25 10 -37z m1625 27 c-10 -11 -23 -20 -28 +-20 -6 0 -2 9 8 20 10 11 23 20 28 20 6 0 2 -9 -8 -20z m735 11 c0 -12 -42 +-42 -49 -36 -5 6 29 45 41 45 4 0 8 -4 8 -9z m706 0 c-8 -12 -158 -82 -164 +-76 -3 2 33 23 79 45 93 44 92 44 85 31z m173 5 c-10 -9 -152 -66 -156 -62 -4 +4 136 65 151 66 5 0 7 -2 5 -4z m3051 -28 c0 -28 -148 -290 -266 -471 -273 +-418 -624 -800 -1029 -1121 -182 -144 -452 -321 -686 -449 -56 -31 -69 -34 +-84 -24 -15 12 -6 20 86 71 779 437 1429 1104 1840 1890 l70 134 34 -11 c19 +-6 35 -14 35 -19z m-6930 -29 c0 -21 -4 -39 -10 -39 -5 0 -10 21 -10 46 0 27 +4 43 10 39 6 -3 10 -24 10 -46z m2401 8 c-14 -15 -21 -17 -21 -8 0 21 33 56 +38 41 3 -7 -5 -22 -17 -33z m649 23 c-11 -20 -30 -28 -30 -12 0 11 22 32 32 +32 5 0 4 -9 -2 -20z m240 5 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 +-2 -15z m240 5 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 +4 -10z m-3180 -64 c-1 -38 -2 -40 -15 -22 -8 11 -15 35 -15 54 0 30 2 33 15 +22 9 -7 15 -29 15 -54z m90 8 c0 -35 -13 -46 -24 -18 -3 9 -6 29 -6 46 0 26 2 +29 15 18 8 -7 15 -28 15 -46z m1920 47 c0 -12 -63 -62 -69 -55 -6 5 50 64 61 +64 4 0 8 -4 8 -9z m301 -18 c-8 -15 -10 -15 -11 -2 0 17 10 32 18 25 2 -3 -1 +-13 -7 -23z m53 -21 c-19 -17 -29 -21 -32 -12 -5 15 51 63 57 47 2 -6 -9 -22 +-25 -35z m-2639 27 c11 -17 -1 -21 -15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z +m185 -36 c0 -37 -24 -22 -28 17 -3 30 -2 32 12 21 9 -8 16 -25 16 -38z m260 +21 c0 -8 -4 -12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 10 9 6 -3 10 -13 10 -21z +m2044 -22 c-19 -17 -29 -21 -32 -12 -5 15 51 63 57 47 2 -6 -9 -22 -25 -35z +m236 28 c-6 -11 -19 -24 -30 -30 -29 -16 -27 13 3 33 30 22 40 21 27 -3z m56 +-18 c-14 -14 -16 -14 -16 -1 0 20 23 44 29 28 2 -6 -4 -18 -13 -27z m248 24 +c-6 -15 -34 -30 -41 -22 -5 5 26 36 37 36 5 0 7 -6 4 -14z m3919 -3 c10 -6 +-83 -180 -185 -348 -428 -700 -1077 -1310 -1796 -1688 -83 -43 -117 -56 -125 +-48 -13 13 -23 6 103 76 735 406 1357 1012 1777 1730 38 66 91 159 117 208 45 +82 49 87 74 81 15 -4 31 -9 35 -11z m-6983 -56 c0 -23 -4 -36 -10 -32 -5 3 +-10 27 -10 53 0 34 3 43 10 32 5 -8 10 -32 10 -53z m560 10 c0 -16 -4 -26 -10 +-22 -5 3 -10 23 -10 43 0 28 3 33 10 22 5 -8 10 -28 10 -43z m243 -112 c173 +-215 310 -458 397 -707 21 -61 22 -71 10 -108 -7 -22 -16 -40 -19 -40 -3 0 +-17 28 -30 63 -98 255 -273 525 -482 742 -80 83 -99 108 -98 131 0 28 1 28 11 +7 17 -35 28 -27 28 20 1 41 1 42 15 17 l14 -25 1 34 0 35 36 -35 c20 -18 72 +-79 117 -134z m1668 147 c-13 -25 -40 -46 -48 -38 -7 7 36 56 49 56 5 0 4 -8 +-1 -18z m414 -3 c-7 -20 -45 -43 -45 -28 0 10 42 50 48 45 1 -2 0 -10 -3 -17z +m315 6 c-7 -8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 -2 +-15z m80 5 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 +-10z m380 4 c0 -6 -145 -74 -157 -73 -7 0 146 79 154 79 2 0 3 -3 3 -6z m654 +-94 c-88 -253 -218 -514 -375 -750 -126 -189 -243 -333 -408 -502 -126 -130 +-136 -138 -172 -138 -21 0 -40 4 -43 8 -3 5 13 26 35 48 59 57 215 236 291 +334 205 266 386 601 503 933 l43 122 68 22 c38 12 74 22 81 22 8 1 0 -34 -23 +-99z m-6830 40 c5 -17 4 -20 -2 -10 -5 8 -13 26 -16 40 -5 17 -4 20 2 10 5 -8 +13 -26 16 -40z m2596 24 c0 -14 -4 -23 -10 -19 -5 3 -10 15 -10 26 0 10 5 19 +10 19 6 0 10 -12 10 -26z m2060 22 c0 -3 -15 -15 -32 -27 l-33 -23 24 27 c22 +24 41 35 41 23z m82 -18 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 +-7 -17z m888 12 c0 -5 -9 -14 -20 -20 -22 -12 -27 -1 -8 18 14 14 28 16 28 2z +m370 -5 c-7 -8 -18 -15 -24 -15 -6 0 -2 7 8 15 25 19 32 19 16 0z m-1117 -39 +c-16 -14 -30 -20 -32 -13 -2 6 9 22 25 35 16 14 30 20 32 13 2 -6 -9 -22 -25 +-35z m227 35 c0 -5 -7 -14 -15 -21 -16 -14 -18 -10 -9 14 6 17 24 22 24 7z +m354 -4 c-5 -15 -44 -40 -51 -34 -6 7 34 47 47 47 5 0 7 -6 4 -13z m290 -2 +c-4 -8 -11 -15 -16 -15 -6 0 -5 6 2 15 7 8 14 15 16 15 2 0 1 -7 -2 -15z +m3826 5 c17 -10 -7 -59 -128 -265 -401 -679 -1025 -1296 -1702 -1682 -212 +-121 -286 -157 -305 -149 -15 5 8 21 101 72 393 217 676 421 1010 731 327 303 +680 758 881 1133 97 181 102 186 143 160z m-6932 -46 c2 -37 1 -38 -13 -20 +-18 24 -20 69 -2 64 6 -3 13 -22 15 -44z m2153 -7 c-19 -20 -31 -26 -31 -17 0 +19 54 74 59 59 2 -6 -11 -25 -28 -42z m711 31 c-7 -7 -12 -8 -12 -2 0 14 12 +26 19 19 2 -3 -1 -11 -7 -17z m318 18 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 +0 6 5 11 10 11 6 0 10 -2 10 -4z m-3270 -62 c0 -28 -4 -43 -10 -39 -5 3 -10 +26 -10 51 0 28 4 43 10 39 6 -3 10 -26 10 -51z m230 13 c0 -20 -25 1 -28 24 +-2 23 -2 23 13 5 8 -11 15 -24 15 -29z m90 -19 c0 -15 -4 -28 -9 -28 -12 0 +-21 26 -21 63 1 30 1 31 15 13 8 -11 15 -32 15 -48z m80 4 c0 -20 -4 -31 -10 +-27 -5 3 -10 25 -10 48 0 31 3 38 10 27 5 -8 10 -30 10 -48z m1680 23 c-18 +-19 -36 -32 -39 -30 -6 7 50 65 63 65 5 0 -5 -16 -24 -35z m61 2 c-8 -8 -11 +-7 -11 4 0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 -17 -7 -23z m959 29 c0 -2 -7 +-9 -15 -16 -13 -11 -14 -10 -9 4 5 14 24 23 24 12z m485 -13 c-49 -26 -135 +-63 -135 -58 0 7 141 73 155 74 6 0 -3 -7 -20 -16z m3519 -3 c19 -18 -230 +-422 -404 -655 -265 -357 -616 -706 -985 -981 -271 -201 -739 -476 -783 -459 +-11 4 20 26 98 67 721 382 1334 939 1772 1613 89 136 190 308 229 388 19 39 +27 46 44 41 11 -3 24 -10 29 -14z m-6664 -5 c0 -8 -2 -15 -4 -15 -2 0 -6 7 +-10 15 -3 8 -1 15 4 15 6 0 10 -7 10 -15z m2031 -38 c-19 -20 -31 -26 -31 -17 +0 19 54 74 59 59 2 -6 -11 -25 -28 -42z m158 17 c-18 -21 -49 -37 -49 -25 0 +15 54 63 58 51 2 -6 -2 -18 -9 -26z m81 22 c0 -8 -13 -24 -30 -36 -38 -27 -39 +-9 -3 25 32 29 33 29 33 11z m285 -6 c-10 -11 -23 -20 -28 -20 -6 0 -2 9 8 20 +10 11 23 20 28 20 6 0 2 -9 -8 -20z m217 -2 c-7 -7 -12 -8 -12 -2 0 14 12 26 +19 19 2 -3 -1 -11 -7 -17z m218 7 c-7 -8 -18 -15 -24 -15 -6 0 -2 7 8 15 25 +19 32 19 16 0z m640 -141 c-160 -433 -406 -827 -725 -1161 -107 -114 -119 +-121 -173 -107 -21 6 -18 11 40 73 313 331 558 739 709 1182 l40 115 77 25 +c42 14 78 22 80 19 2 -4 -20 -70 -48 -146z m-6177 54 c24 -45 32 -68 23 -68 +-14 0 -97 146 -88 155 9 9 26 -14 65 -87z m36 17 c44 -79 46 -85 32 -85 -9 0 +-91 139 -91 154 0 23 24 -5 59 -69z m45 1 c34 -61 48 -102 27 -80 -14 14 -81 +135 -81 146 0 19 20 -4 54 -66z m12 57 c47 -78 74 -133 65 -133 -9 0 -91 130 +-91 144 0 12 16 5 26 -11z m75 -61 c22 -39 37 -72 32 -72 -9 0 -13 6 -63 94 +-18 32 -28 57 -21 55 7 -3 30 -37 52 -77z m40 0 c22 -39 36 -72 31 -72 -5 0 +-14 10 -20 23 -6 12 -25 46 -42 76 -18 29 -26 51 -20 49 6 -2 29 -36 51 -76z +m7 56 c6 -13 25 -47 42 -75 17 -29 27 -53 22 -53 -5 0 -14 10 -20 23 -6 12 +-25 46 -42 75 -17 28 -27 52 -22 52 5 0 14 -10 20 -22z m62 -49 c23 -39 40 +-72 38 -75 -2 -2 -22 27 -44 63 -44 76 -48 83 -40 83 3 0 24 -32 46 -71z +m1712 31 c2 -22 0 -40 -4 -40 -5 0 -8 18 -8 40 0 22 2 40 4 40 2 0 6 -18 8 +-40z m252 24 c3 -9 6 -32 6 -52 -1 -35 -2 -36 -15 -18 -8 11 -15 35 -15 53 0 +35 14 44 24 17z m2286 -13 c-12 -23 -30 -28 -30 -10 0 12 32 40 38 34 2 -2 -1 +-13 -8 -24z m720 19 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 10 10 10 6 +0 10 -4 10 -10z m-5348 -76 c40 -73 44 -84 29 -84 -9 0 -91 140 -91 155 0 23 +29 -11 62 -71z m49 -2 c25 -46 35 -72 26 -72 -11 0 -87 125 -87 145 0 21 26 +-9 61 -73z m355 31 c15 -27 34 -59 42 -73 14 -23 14 -24 0 -10 -18 17 -83 130 +-75 130 3 0 18 -21 33 -47z m14 27 c6 -11 8 -20 6 -20 -3 0 -10 9 -16 20 -6 +11 -8 20 -6 20 3 0 10 -9 16 -20z m3780 17 c0 -2 -10 -12 -22 -23 l-23 -19 19 +23 c18 21 26 27 26 19z m329 -53 c-19 -19 -35 -30 -37 -24 -3 7 11 27 29 46 +19 19 35 30 37 24 3 -7 -11 -27 -29 -46z m241 48 c0 -14 -39 -46 -47 -39 -3 4 +2 16 12 27 19 21 35 26 35 12z m252 -24 c-12 -12 -25 -18 -29 -14 -4 4 3 16 +16 27 31 25 41 15 13 -13z m223 12 c-10 -11 -20 -18 -23 -15 -7 6 18 35 31 35 +5 0 2 -9 -8 -20z m4140 10 c4 -6 -19 -57 -51 -113 -378 -671 -928 -1258 -1574 +-1679 -227 -148 -559 -326 -581 -312 -6 4 37 31 97 61 825 415 1569 1140 2018 +1966 34 61 53 87 66 87 10 0 22 -5 25 -10z m-9520 -80 c35 -70 41 -90 27 -90 +-8 0 -82 144 -82 161 0 23 22 -6 55 -71z m42 8 c21 -40 39 -76 41 -80 2 -5 -2 +-8 -10 -8 -7 0 -30 34 -51 75 -41 83 -41 85 -27 85 5 0 27 -33 47 -72z m48 2 +c38 -76 40 -80 25 -80 -8 0 -80 130 -80 145 0 3 4 5 10 5 5 0 26 -31 45 -70z +m757 55 c336 -51 657 -148 954 -290 137 -65 324 -170 336 -189 4 -6 8 -28 8 +-49 l0 -39 -42 25 c-323 188 -749 334 -1144 391 -170 24 -155 16 -213 114 -35 +60 -42 58 101 37z m1548 -48 c0 -54 -19 -36 -27 24 -6 40 -5 43 10 30 11 -8 +17 -28 17 -54z m430 32 c0 -11 -4 -17 -10 -14 -5 3 -10 15 -10 26 0 11 5 17 +10 14 6 -3 10 -15 10 -26z m1540 28 c0 -2 -10 -12 -22 -23 l-23 -19 19 23 c18 +21 26 27 26 19z m129 -33 c-12 -13 -25 -22 -27 -19 -9 8 29 56 39 49 6 -4 2 +-15 -12 -30z m582 3 c-8 -8 -11 -7 -11 4 0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 +-17 -7 -23z m153 18 c-7 -16 -44 -41 -44 -29 0 11 32 44 41 44 5 0 6 -7 3 -15z +m278 -7 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m-5550 +-68 c21 -46 31 -80 25 -80 -11 1 -78 133 -77 153 0 24 20 -3 52 -73z m2308 43 +c0 -28 -3 -34 -10 -23 -13 20 -13 60 0 60 6 0 10 -17 10 -37z m2171 9 c-11 +-16 -27 -35 -36 -42 -27 -22 -18 11 12 42 35 36 50 36 24 0z m154 -22 c-16 +-16 -32 -27 -37 -24 -6 4 5 22 23 41 19 18 35 29 37 23 3 -7 -8 -25 -23 -40z +m835 35 c-7 -8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 -2 +-15z m350 10 c0 -2 -13 -11 -30 -20 -38 -19 -40 -11 -2 9 31 17 32 18 32 11z +m3794 -1 c9 -3 16 -11 16 -16 0 -17 -119 -218 -217 -368 -196 -297 -365 -503 +-627 -765 -262 -262 -490 -447 -781 -637 -212 -139 -594 -346 -609 -331 -3 4 +56 39 133 78 637 330 1200 804 1635 1374 142 186 302 432 396 609 18 34 34 62 +36 62 1 0 9 -3 18 -6z m-9662 -169 c-7 -11 -58 98 -67 141 -3 16 12 -7 33 -51 +22 -44 37 -84 34 -90z m8 90 c18 -42 30 -78 26 -82 -3 -3 -22 29 -41 71 -38 +84 -39 86 -27 86 5 0 23 -34 42 -75z m2620 -4 c0 -29 -2 -32 -15 -21 -9 8 -15 +29 -15 59 1 45 1 45 15 21 8 -14 14 -40 15 -59z m172 34 c2 -22 0 -34 -6 -32 +-6 2 -12 21 -14 41 -4 48 14 39 20 -9z m83 -10 c6 -37 5 -39 -9 -21 -9 11 -16 +33 -16 50 0 41 17 22 25 -29z m-2920 -113 c-6 -6 -52 98 -60 135 -4 15 10 -8 +29 -51 20 -44 34 -82 31 -84z m2700 147 c11 -17 -1 -21 -15 -4 -8 9 -8 15 -2 +15 6 0 14 -5 17 -11z m2142 -11 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 +1 -19z m547 7 c-6 -16 -24 -21 -24 -7 0 11 11 22 21 22 5 0 6 -7 3 -15z m56 +-10 c-7 -8 -17 -15 -23 -15 -5 0 -2 9 8 20 21 23 35 19 15 -5z m230 21 c0 -3 +-4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m4089 -5 +c11 -7 0 -33 -55 -128 -431 -743 -1052 -1361 -1794 -1788 -166 -95 -391 -208 +-399 -199 -3 4 1 9 9 12 37 12 306 156 412 220 366 221 651 445 953 747 318 +318 584 665 780 1018 39 70 72 126 75 127 3 0 11 -4 19 -9z m-9049 -21 c6 -11 +8 -20 6 -20 -3 0 -10 9 -16 20 -6 11 -8 20 -6 20 3 0 10 -9 16 -20z m1720 -16 +c0 -14 -4 -22 -10 -19 -5 3 -10 17 -10 31 0 14 4 22 10 19 6 -3 10 -17 10 -31z +m140 -38 c-1 -38 -2 -40 -15 -22 -8 11 -15 38 -15 60 1 38 2 40 15 22 8 -11 +15 -38 15 -60z m497 -8 c206 -199 381 -461 493 -736 46 -114 47 -116 32 -154 +-8 -21 -17 -36 -19 -34 -3 2 -24 46 -47 98 -103 228 -248 432 -447 631 l-139 +138 0 47 c1 41 2 45 14 30 21 -28 27 -21 20 22 -4 22 -4 40 0 40 4 0 45 -37 +93 -82z m1413 57 c-7 -9 -15 -13 -18 -10 -3 2 1 11 8 20 7 9 15 13 18 10 3 -2 +-1 -11 -8 -20z m466 -9 c-9 -14 -25 -30 -36 -36 -17 -9 -19 -8 -13 7 7 19 56 +64 62 57 2 -2 -4 -15 -13 -28z m56 -9 c-24 -23 -32 -27 -32 -15 0 18 49 62 59 +53 3 -3 -9 -20 -27 -38z m88 24 c-12 -23 -29 -35 -37 -27 -7 7 26 46 39 46 5 +0 4 -9 -2 -19z m70 5 c0 -14 -48 -51 -57 -43 -4 4 47 57 54 57 2 0 3 -6 3 -14z +m1234 -13 c-4 -16 -26 -80 -49 -143 -148 -404 -394 -803 -673 -1092 -73 -76 +-89 -88 -118 -88 -18 0 -35 3 -37 8 -3 4 27 43 65 87 168 192 326 426 442 655 +65 128 160 358 192 465 10 33 22 65 28 72 10 11 130 61 149 63 4 0 4 -12 1 +-27z m-1744 9 c0 -5 -13 -21 -30 -37 -35 -33 -42 -14 -8 22 22 23 38 30 38 15z +m234 -7 c-4 -8 -8 -15 -10 -15 -2 0 -4 7 -4 15 0 8 4 15 10 15 5 0 7 -7 4 -15z +m396 5 c0 -12 -42 -51 -48 -45 -5 5 37 55 45 55 2 0 3 -4 3 -10z m210 -5 c-7 +-8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 -2 -15z m122 -7 +c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m277 18 c-2 -2 +-15 -9 -29 -15 -24 -11 -24 -11 -6 3 16 13 49 24 35 12z m3924 -2 c8 -9 -21 +-64 -119 -225 -426 -696 -1044 -1291 -1764 -1701 -168 -96 -390 -205 -390 +-193 0 3 68 39 151 81 838 419 1570 1110 2030 1917 70 123 79 134 92 121z +m-7065 -40 c2 -28 2 -28 -13 -10 -18 24 -20 49 -2 44 6 -3 13 -18 15 -34z +m1793 -20 c-17 -19 -31 -30 -31 -24 0 18 54 84 58 71 2 -6 -10 -27 -27 -47z +m241 3 c-43 -42 -51 -28 -11 18 20 22 35 32 37 25 3 -7 -9 -26 -26 -43z m428 +44 c0 -13 -29 -35 -37 -28 -7 8 15 37 28 37 5 0 9 -4 9 -9z m124 -6 c-8 -19 +-44 -40 -44 -26 0 8 38 41 47 41 1 0 0 -7 -3 -15z m-2454 -49 c0 -28 -17 -8 +-25 29 -6 29 -6 29 9 11 9 -11 16 -29 16 -40z m2650 45 c0 -5 -7 -12 -16 -15 +-14 -5 -15 -4 -4 9 14 17 20 19 20 6z m4325 -8 c-11 -31 -147 -254 -223 -368 +-180 -267 -355 -479 -602 -725 -252 -253 -479 -439 -760 -627 -159 -106 -410 +-253 -410 -240 0 2 48 32 108 65 139 78 378 236 517 342 541 410 972 902 1314 +1498 23 39 47 72 53 72 6 0 7 -8 3 -17z m-7376 -19 c3 -16 1 -17 -13 -5 -19 +16 -21 34 -3 29 6 -3 14 -13 16 -24z m231 -43 c-1 -34 -2 -35 -15 -17 -8 11 +-15 36 -15 55 1 34 2 35 15 17 8 -11 15 -36 15 -55z m2001 26 c-14 -15 -21 +-17 -21 -8 0 21 33 56 38 41 3 -7 -5 -22 -17 -33z m125 5 c-14 -14 -16 -14 +-16 -1 0 20 23 44 29 28 2 -6 -4 -18 -13 -27z m530 12 c-11 -7 -22 -11 -25 -8 +-3 3 3 12 13 20 11 7 22 11 25 8 3 -3 -3 -12 -13 -20z m284 22 c0 -3 -4 -8 +-10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m-3030 -69 c0 +-47 -25 -26 -28 24 -2 41 -1 43 13 25 8 -11 15 -33 15 -49z m176 13 c7 -32 6 +-34 -9 -21 -9 7 -17 27 -17 44 0 40 17 24 26 -23z m1579 10 c-16 -16 -31 -28 +-34 -25 -2 3 8 19 24 35 16 16 31 28 34 25 2 -3 -8 -19 -24 -35z m73 28 c-2 +-6 -10 -14 -16 -16 -7 -2 -10 2 -6 12 7 18 28 22 22 4z m977 -7 c-3 -6 -11 +-11 -17 -11 -6 0 -6 6 2 15 14 17 26 13 15 -4z m4461 4 c-13 -35 -166 -281 +-252 -405 -275 -398 -653 -799 -1019 -1080 -96 -73 -61 -39 55 55 336 271 672 +631 928 995 82 117 272 425 272 441 0 5 5 9 11 9 6 0 9 -7 5 -15z m-7524 -40 +c2 -25 0 -45 -3 -45 -4 0 -9 20 -11 45 -2 25 0 45 3 45 4 0 9 -20 11 -45z +m2259 -8 c-19 -20 -31 -26 -31 -17 0 19 54 74 59 59 2 -6 -11 -25 -28 -42z +m450 20 c-8 -8 -11 -7 -11 4 0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 -17 -7 -23z +m4838 11 c-27 -53 -141 -238 -146 -238 -3 0 1 10 9 23 8 12 43 70 78 130 35 +59 65 107 67 107 2 0 -2 -10 -8 -22z m-4968 -6 c-12 -23 -50 -56 -56 -50 -3 3 +6 20 20 37 29 34 52 43 36 13z m69 5 c0 -7 -13 -23 -30 -35 -37 -28 -40 -10 +-4 23 31 29 34 30 34 12z m107 -25 c-21 -21 -27 -23 -27 -10 0 17 40 52 49 42 +3 -2 -7 -17 -22 -32z m61 -1 c-32 -26 -37 -17 -7 15 13 14 25 20 27 14 2 -6 +-7 -19 -20 -29z m282 24 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 +-15z m140 11 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 +-2 10 -4z m585 -88 c-137 -414 -387 -840 -664 -1130 -40 -43 -50 -48 -89 -48 +l-43 0 69 83 c258 307 447 656 583 1077 13 42 18 46 89 76 41 18 76 31 79 29 +2 -2 -9 -41 -24 -87z m-3745 72 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 +10 4 10 6 0 11 -4 11 -10z m2130 -2 c-1 -20 -60 -85 -60 -66 0 15 45 78 56 78 +2 0 4 -6 4 -12z m690 3 c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 -9z +m250 0 c0 -5 -7 -12 -16 -15 -14 -5 -15 -4 -4 9 14 17 20 19 20 6z m-3183 -33 +c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m76 -27 c4 -29 2 -40 -5 +-33 -5 5 -12 29 -15 53 -4 29 -2 41 4 34 6 -5 13 -30 16 -54z m80 29 c3 -14 1 +-20 -6 -17 -7 2 -14 14 -15 26 -4 28 13 20 21 -9z m360 -33 c5 -32 4 -37 -7 +-27 -8 6 -16 29 -18 50 -5 52 17 32 25 -23z m1610 38 c-17 -23 -33 -32 -33 +-18 0 10 32 43 42 43 5 0 1 -11 -9 -25z m339 -2 c-14 -25 -51 -58 -58 -51 -3 +3 9 22 27 42 32 38 48 42 31 9z m44 -21 c-17 -17 -26 -22 -26 -12 0 19 44 64 +48 50 3 -7 -7 -24 -22 -38z m460 22 c-11 -7 -22 -11 -25 -8 -3 3 3 12 13 20 +11 7 22 11 25 8 3 -3 -3 -12 -13 -20z m-2536 -53 c0 -33 -1 -34 -15 -15 -8 10 +-14 35 -14 54 0 33 1 34 14 16 8 -11 15 -36 15 -55z m170 37 c0 -6 -7 -5 -15 +2 -8 7 -15 17 -15 22 0 6 7 5 15 -2 8 -7 15 -17 15 -22z m1390 29 c0 -2 -14 +-16 -32 -33 l-32 -29 25 32 c20 27 39 41 39 30z m56 -42 c-28 -36 -36 -42 -36 +-26 0 13 51 73 58 67 2 -3 -7 -21 -22 -41z m656 23 c-7 -7 -12 -8 -12 -2 0 14 +12 26 19 19 2 -3 -1 -11 -7 -17z m312 -2 c-10 -8 -21 -12 -24 -9 -3 2 4 11 14 +19 11 7 22 12 25 9 2 -3 -4 -12 -15 -19z m201 14 c-3 -5 -11 -10 -16 -10 -6 0 +-7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m-5000 -76 c26 -41 44 -78 41 -81 +-8 -8 -5 -11 -60 75 -49 76 -51 82 -37 82 5 0 30 -34 56 -76z m40 7 c46 -71 +51 -81 37 -81 -7 0 -92 132 -92 144 0 16 14 1 55 -63z m47 -6 c26 -41 43 -75 +38 -75 -8 0 -100 133 -100 145 0 19 22 -6 62 -70z m4 58 c6 -10 28 -44 48 -75 +20 -32 32 -58 27 -58 -5 0 -24 24 -42 53 -17 28 -38 62 -47 75 -8 12 -10 22 +-6 22 5 0 14 -8 20 -17z m76 -58 c26 -41 43 -75 38 -75 -4 0 -23 24 -41 53 +-17 28 -38 62 -47 75 -8 12 -10 22 -6 22 5 0 30 -34 56 -75z m33 4 c25 -39 44 +-73 42 -75 -4 -4 -63 81 -86 124 -25 47 0 19 44 -49z m1786 33 c4 -18 3 -32 +-2 -32 -10 0 -15 8 -23 43 -5 21 -3 28 6 25 7 -3 15 -19 19 -36z m139 -4 c0 +-17 -3 -18 -15 -8 -8 7 -15 21 -15 32 0 17 3 18 15 8 8 -7 15 -21 15 -32z +m2041 9 c-8 -8 -11 -7 -11 4 0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 -17 -7 -23z +m-4741 -12 c0 -5 -5 -3 -10 5 -5 8 -10 20 -10 25 0 6 5 3 10 -5 5 -8 10 -19 +10 -25z m437 -41 c44 -72 51 -88 32 -82 -12 4 -97 136 -98 151 -2 24 28 -7 66 +-69z m26 39 c65 -106 69 -113 55 -113 -8 0 -32 30 -53 67 -49 81 -49 83 -36 +83 6 0 21 -17 34 -37z m71 -38 c25 -41 40 -75 33 -75 -10 0 -97 128 -97 144 0 +22 25 -5 64 -69z m280 4 c26 -39 43 -68 37 -64 -6 3 -26 30 -44 58 -46 72 -49 +77 -44 77 2 0 25 -32 51 -71z m1666 2 c0 -47 -16 -28 -24 29 -6 42 -6 44 9 26 +8 -11 15 -36 15 -55z m3000 60 c0 -5 -7 -12 -16 -15 -14 -5 -15 -4 -4 9 14 17 +20 19 20 6z m-5141 -72 c42 -73 48 -89 31 -89 -5 0 -25 28 -44 63 -43 77 -51 +97 -38 97 6 0 29 -32 51 -71z m51 0 c39 -65 46 -90 21 -75 -20 12 -90 146 -77 +146 8 0 33 -32 56 -71z m820 40 c347 -59 738 -200 1033 -371 65 -38 67 -40 67 +-78 0 -22 -2 -40 -5 -40 -3 0 -55 25 -116 56 -297 148 -612 248 -938 295 -80 +12 -155 23 -166 25 -16 3 -89 99 -104 137 -4 11 61 4 229 -24z m1403 -31 c3 +-21 2 -38 -3 -38 -13 0 -17 10 -25 60 -6 40 -5 43 8 30 8 -8 17 -32 20 -52z +m1897 55 c-1 -13 -51 -66 -57 -60 -7 7 35 67 48 67 5 0 9 -3 9 -7z m131 -46 +c-19 -20 -31 -26 -31 -17 0 19 54 74 59 59 2 -6 -11 -25 -28 -42z m383 30 c-6 +-17 -54 -52 -54 -40 0 9 52 64 57 59 2 -2 1 -10 -3 -19z m126 3 c-12 -22 -50 +-46 -50 -31 0 9 47 51 57 51 2 0 -1 -9 -7 -20z m370 11 c0 -5 -7 -12 -16 -15 +-14 -5 -15 -4 -4 9 14 17 20 19 20 6z m-5275 -74 c51 -91 49 -87 33 -87 -13 0 +-88 127 -88 149 0 26 18 6 55 -62z m52 -2 c42 -77 43 -116 0 -48 -46 72 -68 +123 -55 123 7 0 32 -34 55 -75z m4045 53 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 +19 2 -3 -1 -11 -7 -17z m618 13 c0 -13 -31 -43 -38 -37 -3 3 3 15 13 26 20 22 +25 24 25 11z m231 -22 c-13 -11 -27 -17 -30 -13 -3 3 5 14 18 25 13 11 27 17 +30 13 3 -3 -5 -14 -18 -25z m-4989 -55 c40 -74 44 -84 28 -84 -5 0 -27 33 -47 +73 -49 93 -48 90 -32 85 7 -2 30 -36 51 -74z m2166 6 c1 -23 0 -23 -8 -5 -5 +11 -8 34 -8 50 0 29 0 29 8 5 4 -14 8 -36 8 -50z m472 -4 c0 -46 -21 -17 -26 +35 -5 43 -5 43 10 19 8 -14 15 -38 16 -54z m97 47 c-2 15 -1 27 4 27 16 0 252 +-235 316 -315 123 -152 250 -366 312 -524 19 -46 20 -58 9 -92 l-11 -40 -56 +108 c-111 213 -225 366 -392 528 -57 55 -139 127 -181 159 -61 46 -78 64 -78 +84 0 25 0 25 21 6 l22 -19 -5 55 -5 54 24 -29 25 -30 -5 28z m1467 -30 c-15 +-20 -30 -31 -32 -25 -2 6 9 27 25 47 37 46 43 25 7 -22z m181 27 c-9 -16 -20 +-30 -25 -30 -14 0 -12 12 6 38 23 33 37 27 19 -8z m116 -3 c-8 -8 -11 -7 -11 +4 0 9 3 19 7 23 4 4 9 2 11 -4 3 -7 -1 -17 -7 -23z m161 -10 c-20 -19 -32 -26 +-32 -17 0 15 52 62 59 54 3 -3 -9 -19 -27 -37z m208 30 c0 -7 -9 -18 -21 -25 +-17 -11 -20 -11 -13 0 20 36 34 46 34 25z m250 5 c0 -4 -9 -13 -20 -20 -22 +-13 -27 -3 -8 16 14 14 28 16 28 4z m713 -69 c-119 -375 -348 -783 -593 -1055 +-47 -52 -55 -58 -92 -58 -38 0 -39 1 -27 18 8 11 53 70 100 133 105 139 170 +242 253 402 69 131 160 353 198 481 l23 78 75 39 c41 21 78 38 81 39 4 0 -4 +-35 -18 -77z m-5916 -16 c22 -42 37 -80 32 -83 -10 -6 -91 151 -82 160 8 7 3 +15 50 -77z m42 8 c44 -80 46 -85 31 -85 -5 0 -28 36 -50 80 -51 101 -36 105 +19 5z m2367 18 c4 -27 3 -43 -4 -43 -12 0 -22 34 -22 75 0 42 17 20 26 -32z +m220 30 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 -17z m1514 24 c0 +-2 -12 -14 -27 -28 l-28 -24 24 28 c23 25 31 32 31 24z m553 -16 c-6 -23 -50 +-67 -59 -58 -7 6 45 75 58 76 3 1 4 -8 1 -18z m547 4 c-7 -8 -17 -15 -22 -15 +-6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 -2 -15z m-5280 -75 c22 -44 36 -80 +30 -80 -7 0 -80 141 -80 156 0 16 16 -8 50 -76z m2585 10 c6 -40 5 -43 -8 -30 +-8 8 -18 35 -21 60 -6 39 -5 43 8 30 8 -8 17 -35 21 -60z m2575 66 c0 -3 -4 +-8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m220 -5 c0 -5 +-7 -12 -16 -15 -14 -5 -15 -4 -4 9 14 17 20 19 20 6z m-5415 -78 c20 -42 33 +-78 30 -81 -2 -3 -9 6 -14 19 -5 13 -21 50 -35 82 -14 31 -23 57 -21 57 3 0 +21 -34 40 -77z m2357 42 c2 -19 0 -35 -4 -35 -4 0 -8 9 -8 19 0 11 -3 26 -6 +35 -3 9 -2 16 4 16 5 0 12 -16 14 -35z m304 8 c-7 -7 -26 7 -26 19 0 6 6 6 15 +-2 9 -7 13 -15 11 -17z m1778 -30 c-15 -20 -30 -31 -32 -25 -2 6 9 28 24 48 +16 20 30 31 32 25 2 -6 -9 -28 -24 -48z m916 53 c0 -3 -4 -8 -10 -11 -5 -3 +-10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m100 0 c0 -2 -8 -10 -17 -17 +-16 -13 -17 -12 -4 4 13 16 21 21 21 13z m-1190 -21 c-7 -9 -15 -13 -17 -11 +-7 7 7 26 19 26 6 0 6 -6 -2 -15z m328 -44 c-13 -17 -26 -30 -30 -30 -15 -2 +-8 18 19 50 33 39 44 21 11 -20z m63 6 c-14 -15 -21 -17 -21 -8 0 21 33 56 38 +41 3 -7 -5 -22 -17 -33z m309 33 c0 -12 -52 -61 -59 -55 -4 5 48 65 56 65 2 0 +3 -4 3 -10z m40 -25 c-13 -14 -26 -23 -28 -20 -3 3 5 16 18 30 13 14 26 23 28 +20 3 -3 -5 -16 -18 -30z m65 5 c-10 -11 -20 -18 -23 -15 -3 3 3 14 13 25 10 +11 20 18 23 15 3 -3 -3 -14 -13 -25z m70 11 c-7 -12 -45 -34 -45 -27 0 3 10 +14 22 26 22 20 36 21 23 1z m-2741 -13 c3 -13 6 -27 6 -33 -1 -15 -30 27 -30 +42 0 22 17 15 24 -9z m136 -37 c4 -23 3 -41 -2 -41 -12 0 -28 45 -28 78 0 39 +21 13 30 -37z m180 16 c0 -20 -25 1 -28 24 -2 23 -2 23 13 5 8 -11 15 -24 15 +-29z m1670 29 c0 -19 -49 -76 -50 -58 0 11 39 72 47 72 2 0 3 -6 3 -14z m506 +-13 c-10 -10 -19 5 -10 18 6 11 8 11 12 0 2 -7 1 -15 -2 -18z m289 7 c-10 -11 +-20 -18 -23 -15 -7 6 18 35 31 35 5 0 2 -9 -8 -20z m60 0 c-10 -11 -20 -18 +-23 -15 -7 6 18 35 31 35 5 0 2 -9 -8 -20z m50 0 c-10 -11 -21 -17 -24 -14 -3 +3 3 12 13 20 28 20 32 17 11 -6z m-1105 -21 c-12 -16 -25 -28 -28 -25 -5 6 36 +56 45 56 3 0 -5 -14 -17 -31z m85 -6 c-12 -17 -20 -23 -23 -15 -4 14 28 56 36 +47 3 -2 -3 -17 -13 -32z m275 30 c0 -14 -19 -38 -25 -32 -8 8 5 39 16 39 5 0 +9 -3 9 -7z m251 -46 c-38 -39 -41 -21 -4 24 17 19 29 27 31 19 3 -7 -10 -26 +-27 -43z m549 49 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 +13z m-2680 -32 c6 -14 10 -37 10 -52 0 -39 -21 -13 -30 37 -8 46 5 55 20 15z +m2066 -22 c-32 -32 -35 -16 -4 23 14 18 23 24 26 16 2 -7 -7 -25 -22 -39z +m-1971 -12 c7 -31 6 -33 -9 -21 -9 7 -16 27 -16 44 0 39 15 25 25 -23z m1436 +-2 c-17 -23 -31 -36 -31 -29 0 15 51 83 58 77 2 -3 -10 -24 -27 -48z m269 38 +c0 -7 -13 -30 -30 -51 -20 -25 -30 -32 -30 -21 0 14 48 86 58 86 1 0 2 -6 2 +-14z m1326 -98 c-108 -333 -304 -687 -524 -945 -40 -48 -49 -53 -84 -53 l-40 +0 36 48 c83 108 208 305 269 422 69 132 160 355 197 481 l22 76 76 41 c42 22 +78 40 79 38 2 -1 -12 -50 -31 -108z m-3346 81 c0 -5 -4 -9 -10 -9 -5 0 -10 7 +-10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z m140 -33 c5 -21 4 -36 -1 -36 -12 0 +-29 44 -29 73 0 31 20 7 30 -37z m2092 27 c-6 -10 -20 -27 -31 -37 -32 -29 +-27 2 6 36 29 30 41 31 25 1z m174 0 c-10 -10 -19 5 -10 18 6 11 8 11 12 0 2 +-7 1 -15 -2 -18z m-546 10 c0 -5 -14 -26 -30 -47 -35 -46 -41 -28 -7 21 21 31 +37 42 37 26z m195 -22 c-3 -12 -11 -21 -16 -21 -6 0 -8 3 -6 8 2 4 7 16 11 26 +9 25 20 13 11 -13z m619 2 l-7 -28 30 28 c34 32 48 35 33 8 -5 -11 -6 -21 -1 +-23 23 -8 -40 -319 -102 -503 -65 -197 -129 -332 -244 -516 -48 -78 -57 -88 +-94 -97 l-40 -10 24 41 c96 166 157 298 211 462 60 185 95 361 111 568 4 48 +11 87 17 87 5 0 6 -10 2 -22 -7 -22 -6 -22 27 4 42 34 41 34 33 1z m110 5 c-6 +-22 -6 -22 19 -5 33 21 38 21 30 0 -7 -17 -5 -17 21 0 28 19 28 19 21 -3 -5 +-15 -4 -20 4 -16 17 11 14 -24 -15 -147 -62 -272 -203 -603 -353 -828 -65 -97 +-74 -107 -108 -112 -20 -4 -38 -5 -39 -4 -1 1 20 38 48 82 65 104 167 313 213 +440 47 125 99 337 120 480 14 96 26 135 42 135 2 0 1 -10 -3 -22z m-631 -19 +c-23 -38 -53 -67 -53 -50 0 16 50 81 62 81 5 0 1 -14 -9 -31z m341 4 l-7 -26 +37 28 37 28 -7 -29 c-7 -27 -6 -28 10 -14 17 13 18 10 11 -55 -30 -315 -93 +-557 -211 -805 -83 -173 -140 -267 -168 -274 -13 -3 -30 -8 -38 -11 -7 -3 18 +59 57 138 136 277 206 557 219 876 4 107 6 115 32 142 34 36 36 36 28 2z +m-4299 -58 c26 -36 45 -71 43 -77 -4 -11 -92 105 -105 138 -12 31 14 6 62 -61z +m37 13 c59 -84 61 -88 49 -88 -10 0 -86 105 -97 135 -12 31 6 13 48 -47z m51 +-9 c27 -39 46 -73 43 -77 -3 -3 -8 -3 -9 -1 -21 25 -97 138 -97 143 0 18 20 +-2 63 -65z m41 0 c26 -39 46 -72 43 -75 -2 -3 -25 23 -49 58 -56 79 -61 88 +-51 88 4 0 30 -32 57 -71z m39 0 c27 -39 46 -73 44 -75 -3 -3 -25 23 -49 58 +-57 82 -61 88 -51 88 4 -1 30 -33 56 -71z m29 9 c54 -78 60 -88 54 -88 -3 0 +-25 28 -49 63 -51 72 -60 87 -53 87 2 0 24 -28 48 -62z m1500 20 c5 -41 3 -57 +-6 -47 -9 10 -15 89 -7 89 5 0 11 -19 13 -42z m467 21 c8 -14 16 -18 20 -11 8 +14 132 -85 250 -201 164 -162 276 -315 378 -517 49 -97 54 -114 48 -150 -4 +-22 -10 -40 -13 -40 -4 0 -25 35 -47 77 -84 161 -238 360 -370 478 -81 73 +-232 188 -274 210 -30 15 -35 24 -46 85 l-6 35 26 -30 c27 -32 29 -26 16 43 +-9 46 -3 54 18 21z m1571 -14 c-14 -26 -30 -33 -30 -13 0 14 31 50 38 43 3 -3 +-1 -16 -8 -30z m1033 18 c-5 -15 -3 -16 8 -5 16 14 33 16 24 2 -8 -13 1 -13 +27 1 12 7 18 7 14 1 -3 -6 -2 -12 4 -14 25 -8 -92 -367 -184 -562 -93 -198 +-287 -496 -323 -496 -10 0 -29 -3 -42 -7 -22 -6 -21 -2 17 54 175 258 323 606 +383 901 16 78 28 112 43 124 27 22 37 23 29 1z m-4863 -61 c54 -80 55 -82 41 +-82 -11 0 -50 51 -94 121 -14 22 -16 29 -5 29 7 0 33 -31 58 -68z m50 0 c54 +-80 55 -82 41 -82 -6 0 -33 34 -61 75 -28 41 -45 75 -38 75 7 0 33 -31 58 -68z +m296 -12 c21 -30 34 -51 28 -48 -6 4 -30 35 -54 70 -51 74 -31 57 26 -22z +m1519 70 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 +-10z m315 -41 c0 -10 3 -24 6 -33 3 -9 1 -16 -4 -16 -11 0 -32 61 -32 90 1 22 +30 -19 30 -41z m1390 48 c0 -2 -10 -12 -21 -23 -22 -19 -22 -19 -8 4 12 19 29 +30 29 19z m692 -24 l-5 -28 26 23 25 24 7 -21 c7 -24 -1 -178 -16 -316 -15 +-128 -54 -298 -100 -433 -43 -126 -159 -371 -187 -394 -17 -14 -72 -40 -72 +-34 0 2 24 54 54 117 131 276 192 577 184 908 -2 108 0 155 8 158 7 2 10 -6 7 +-24 l-5 -28 38 38 c21 20 39 37 40 37 1 0 -1 -12 -4 -27z m-4353 -58 c33 -49 +46 -75 36 -75 -8 0 -33 27 -55 60 -47 69 -56 90 -42 90 6 0 34 -34 61 -75z +m41 15 c46 -67 56 -90 43 -90 -9 0 -103 133 -103 145 0 19 25 -4 60 -55z m752 +36 c337 -57 644 -159 930 -308 93 -49 97 -52 103 -90 4 -22 5 -42 2 -44 -3 -3 +-37 11 -77 31 -283 142 -656 250 -1010 290 -53 6 -56 8 -96 63 -22 31 -44 63 +-48 70 -11 18 32 16 196 -12z m1132 -33 c3 -24 2 -43 -3 -43 -8 0 -21 55 -21 +90 0 29 18 -6 24 -47z m76 26 c0 -11 -4 -17 -10 -14 -5 3 -10 15 -10 26 0 11 +5 17 10 14 6 -3 10 -15 10 -26z m180 -10 c0 -17 -20 -29 -20 -11 0 4 -3 18 -7 +32 -6 22 -5 24 10 11 9 -7 17 -22 17 -32z m1500 26 c-7 -9 -15 -13 -17 -11 -7 +7 7 26 19 26 6 0 6 -6 -2 -15z m64 -36 c-15 -23 -30 -36 -32 -30 -5 14 47 85 +55 77 4 -3 -7 -24 -23 -47z m-3851 -26 c24 -38 47 -74 51 -80 4 -8 2 -13 -7 +-13 -13 0 -107 136 -107 154 0 22 26 -4 63 -61z m23 50 c6 -10 28 -44 48 -75 +54 -85 19 -74 -38 12 -25 38 -46 72 -46 75 0 12 26 3 36 -12z m3908 -49 c-37 +-48 -44 -26 -7 25 17 25 29 34 31 26 2 -8 -9 -31 -24 -51z m220 18 c-10 -14 +-19 -21 -21 -15 -3 7 4 24 13 39 10 15 20 21 22 15 2 -6 -4 -24 -14 -39z +m1056 38 c0 -3 15 -7 32 -8 56 -4 56 -13 10 -150 -99 -294 -265 -603 -439 +-817 -42 -51 -54 -60 -86 -63 -20 -2 -37 -1 -37 2 0 3 25 40 56 83 184 256 +339 604 418 935 4 19 12 26 26 25 11 -1 20 -4 20 -7z m-5250 -72 c55 -87 55 +-88 38 -88 -7 0 -26 21 -42 48 -68 111 -69 112 -54 112 7 0 34 -32 58 -72z +m2201 34 c8 -38 -7 -43 -21 -6 -13 34 -13 47 2 42 7 -3 15 -19 19 -36z m1923 +-19 c-15 -20 -30 -31 -32 -25 -2 6 9 28 24 48 16 20 30 31 32 25 2 -6 -9 -28 +-24 -48z m238 30 c-5 -24 -3 -26 10 -15 13 10 16 6 22 -34 9 -68 7 -235 -4 +-344 -24 -229 -92 -467 -188 -659 -49 -98 -62 -116 -91 -128 -26 -10 -32 -10 +-28 0 3 6 24 54 47 106 46 104 91 261 116 396 22 126 29 372 14 516 -12 116 +-12 119 10 146 l23 28 -5 -33 -5 -33 41 40 c22 23 41 41 42 41 1 0 -1 -12 -4 +-27z m-4406 -58 c38 -62 48 -95 25 -80 -10 5 -91 140 -91 150 0 21 30 -10 66 +-70z m2159 32 c4 -17 9 -41 12 -52 5 -18 3 -18 -10 -5 -18 18 -35 106 -19 96 +6 -3 13 -21 17 -39z m-2255 -39 c24 -40 45 -76 47 -80 2 -5 -2 -8 -9 -8 -13 0 +-88 127 -88 149 0 20 8 11 50 -61z m49 0 c39 -67 45 -88 22 -74 -19 12 -90 +146 -77 146 7 0 32 -32 55 -72z m2335 55 c2 -10 8 -34 11 -53 6 -31 5 -33 -8 +-20 -19 18 -34 90 -19 90 6 0 13 -8 16 -17z m-2418 -76 c41 -71 46 -86 24 -72 +-10 6 -80 138 -80 151 0 13 14 -7 56 -79z m4247 63 c-3 -11 -7 -20 -9 -20 -2 +0 -4 9 -4 20 0 11 4 20 9 20 5 0 7 -9 4 -20z m-4284 -72 c23 -43 39 -78 34 +-78 -10 0 -83 133 -83 151 0 16 0 16 49 -73z m2591 61 c0 -6 -4 -7 -10 -4 -5 +3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m1540 9 c-1 -18 -37 -64 +-45 -56 -4 3 3 20 16 37 25 34 29 37 29 19z m297 -17 c-4 -16 -2 -31 3 -33 16 +-5 29 -142 30 -293 0 -265 -55 -522 -160 -752 -34 -73 -80 -126 -96 -111 -3 3 +9 41 26 84 42 105 85 277 100 397 17 136 8 423 -18 542 -19 87 -19 91 -1 116 +10 14 24 31 32 37 11 9 13 6 9 -18 -2 -17 -2 -30 0 -30 2 0 19 20 38 45 19 25 +36 45 38 45 3 0 2 -13 -1 -29z m-4460 -63 c22 -43 37 -78 34 -78 -7 0 -81 144 +-81 157 0 10 5 2 47 -79z m2413 33 c0 -9 3 -27 6 -41 6 -23 5 -24 -9 -10 -9 8 +-19 35 -22 60 -6 42 -5 44 9 26 9 -11 16 -27 16 -35z m1660 43 c0 -11 -42 -65 +-47 -60 -6 6 29 66 39 66 4 0 8 -3 8 -6z m-1521 -72 c8 -36 7 -41 -5 -31 -12 +10 -34 69 -34 94 0 24 30 -25 39 -63z m31 47 c0 -6 -4 -7 -10 -4 -5 3 -10 11 +-10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m1634 -42 c-15 -23 -29 -36 -31 -30 +-2 6 8 30 24 53 15 24 29 37 31 31 2 -7 -8 -31 -24 -54z m65 22 c-13 -26 -23 +-18 -14 10 3 12 11 19 16 16 5 -4 5 -14 -2 -26z m-2020 -34 l0 -20 -9 20 c-5 +11 -9 29 -9 40 l0 20 9 -20 c5 -11 9 -29 9 -40z m30 12 c0 -27 -2 -29 -9 -12 +-12 28 -12 57 0 50 6 -3 10 -21 9 -38z m1689 -11 c-13 -20 -27 -36 -32 -36 -4 +0 -2 10 6 23 8 12 21 32 29 45 8 12 15 18 17 13 2 -5 -7 -26 -20 -45z m-1518 +-7 c6 -22 9 -46 7 -52 -5 -17 -24 21 -32 67 -10 52 11 40 25 -15z m180 3 c0 +-12 -3 -12 -15 -2 -8 7 -15 22 -15 34 1 21 1 21 15 2 8 -11 15 -26 15 -34z +m1416 -9 c-14 -21 -26 -32 -26 -24 0 20 43 86 48 73 2 -6 -8 -28 -22 -49z m90 +-1 c-20 -20 -22 -1 -3 28 10 18 12 18 15 4 2 -9 -3 -24 -12 -32z m-1816 5 c0 +-18 -2 -19 -10 -7 -13 20 -13 43 0 35 6 -3 10 -16 10 -28z m275 -43 c7 -35 6 +-38 -8 -24 -9 8 -19 35 -23 60 -6 42 -5 44 9 24 8 -11 18 -38 22 -60z m148 12 +c255 -168 488 -426 621 -688 34 -68 37 -80 29 -115 l-9 -38 -48 81 c-139 233 +-349 446 -574 581 -129 77 -128 76 -139 132 -6 28 -8 51 -6 51 3 0 14 -10 24 +-22 l20 -23 -7 48 c-3 26 -3 47 0 47 4 0 44 -24 89 -54z m1583 -151 c13 -85 +15 -152 11 -295 -7 -237 -29 -347 -115 -568 -28 -73 -42 -97 -64 -108 -15 -8 +-28 -11 -28 -7 0 5 13 47 29 95 61 182 88 403 71 594 -10 116 -40 272 -65 344 +-13 36 -12 39 21 86 33 47 34 47 34 18 l1 -29 31 39 32 39 13 -49 c7 -27 20 +-98 29 -159z m-3649 133 c60 -78 67 -88 54 -88 -11 0 -111 127 -111 141 0 17 +8 9 57 -53z m53 -8 c29 -39 50 -73 47 -76 -2 -3 -27 23 -54 58 -59 75 -67 88 +-55 88 6 0 34 -32 62 -70z m40 8 c25 -34 49 -68 54 -77 9 -14 8 -14 -8 -1 -20 +16 -106 125 -106 134 0 17 20 -1 60 -56z m48 -9 c29 -38 49 -69 44 -69 -5 0 +-29 26 -53 57 -54 70 -62 83 -52 82 4 0 32 -31 61 -70z m39 0 c52 -68 62 -100 +12 -36 -60 77 -81 107 -73 106 5 0 33 -31 61 -70z m33 5 c28 -36 50 -67 48 +-69 -4 -4 -25 22 -82 98 -48 64 -21 41 34 -29z m19 16 l33 -45 -36 40 c-20 22 +-36 44 -36 49 0 5 1 7 3 5 2 -2 18 -24 36 -49z m-323 -22 c26 -35 51 -69 57 +-75 6 -9 5 -13 -5 -13 -12 0 -118 130 -118 145 0 18 25 -4 66 -57z m47 5 c54 +-72 61 -83 48 -83 -5 0 -30 26 -54 58 -54 71 -61 82 -48 82 5 0 30 -26 54 -57z +m602 36 c284 -39 586 -131 870 -264 l111 -52 11 -47 c8 -35 8 -46 -1 -42 -374 +164 -651 244 -941 272 -38 4 -78 11 -87 15 -17 9 -108 122 -108 134 0 3 15 4 +33 1 17 -3 68 -11 112 -17z m1129 6 c3 -8 1 -15 -3 -15 -5 0 -11 7 -15 15 -3 +8 -1 15 3 15 5 0 11 -7 15 -15z m146 -46 c0 -26 -17 -24 -25 4 -18 61 -18 64 +4 38 12 -13 21 -32 21 -42z m1470 22 c-18 -36 -40 -61 -40 -46 0 12 45 85 53 +85 4 0 -2 -18 -13 -39z m-3513 -4 c11 -17 35 -51 53 -74 22 -31 27 -43 17 -43 +-13 0 -117 128 -117 144 0 17 28 2 47 -27z m80 -37 c63 -85 52 -104 -12 -23 +-59 75 -70 93 -53 93 8 0 37 -31 65 -70z m3363 63 c0 -13 -41 -75 -46 -70 -3 +2 5 21 17 41 21 35 29 44 29 29z m139 -57 c-31 -52 -38 -35 -9 20 14 25 26 39 +28 31 2 -8 -7 -31 -19 -51z m-3659 -17 c28 -41 36 -59 26 -59 -18 0 -98 109 +-90 121 8 14 21 2 64 -62z m51 9 c53 -76 54 -78 36 -78 -8 0 -32 26 -54 58 +-54 78 -56 82 -41 82 8 0 34 -28 59 -62z m9109 32 c-12 -16 -24 -30 -26 -30 +-3 0 4 14 16 30 12 17 24 30 26 30 3 0 -4 -13 -16 -30z m-9217 -37 c38 -56 41 +-68 16 -58 -18 7 -80 101 -72 109 12 11 18 5 56 -51z m3773 30 c-10 -10 -19 5 +-10 18 6 11 8 11 12 0 2 -7 1 -15 -2 -18z m-3842 -8 c9 -14 23 -36 32 -50 14 +-21 14 -25 1 -25 -14 0 -67 70 -67 90 0 18 17 11 34 -15z m2070 10 c3 -8 1 +-15 -3 -15 -5 0 -11 7 -15 15 -3 8 -1 15 3 15 5 0 11 -7 15 -15z m-2109 -32 +c27 -40 31 -53 15 -53 -10 0 -60 69 -60 82 0 19 21 5 45 -29z m2160 -3 c7 -22 +6 -23 -9 -11 -9 7 -16 23 -16 34 0 26 15 12 25 -23z m175 4 c0 -19 -16 -18 +-24 2 -11 27 -7 37 9 24 8 -7 15 -19 15 -26z m-2382 -9 c25 -39 26 -45 12 -45 +-10 0 -50 58 -50 73 0 17 16 5 38 -28z m3812 -4 c-6 -12 -15 -21 -21 -21 -5 0 +-2 15 7 33 10 17 19 27 21 20 2 -7 -1 -21 -7 -32z m-3858 -1 c13 -22 14 -30 4 +-30 -11 0 -36 39 -36 55 0 15 17 1 32 -25z m2177 -16 c11 -42 8 -76 -3 -43 +-15 45 -23 89 -16 89 4 0 13 -21 19 -46z m114 39 c3 -5 8 -24 12 -43 6 -31 5 +-33 -8 -20 -18 18 -31 70 -18 70 5 0 12 -3 14 -7z m1756 -188 c32 -147 43 +-311 31 -450 -14 -149 -30 -228 -76 -367 -30 -88 -42 -113 -67 -130 l-30 -22 +7 25 c34 116 57 225 67 316 23 218 -15 466 -107 686 -14 32 -21 63 -17 70 5 8 +10 1 13 -18 l6 -30 30 52 c32 58 44 67 36 28 -6 -35 10 -31 33 7 l18 32 18 +-53 c10 -28 27 -94 38 -146z m-4091 160 c13 -29 5 -33 -14 -7 -15 20 -18 32 +-6 32 5 0 14 -11 20 -25z m3743 8 c-5 -10 -17 -27 -26 -38 -16 -19 -16 -19 -4 +5 13 27 29 50 36 50 2 0 -1 -8 -6 -17z m60 -25 c-11 -18 -21 -26 -21 -18 0 19 +30 63 37 56 3 -3 -4 -20 -16 -38z m-3840 10 c11 -21 11 -22 -4 -9 -10 7 -17 +17 -17 22 0 15 9 10 21 -13z m914 2 c10 -11 16 -20 13 -20 -3 0 -13 9 -23 20 +-10 11 -16 20 -13 20 3 0 13 -9 23 -20z m1521 -33 c12 -48 1 -66 -15 -24 -18 +50 -22 79 -9 75 6 -2 17 -25 24 -51z m-127 -11 c6 -22 8 -42 6 -44 -6 -7 -35 +63 -35 85 0 27 17 3 29 -41z m-79 23 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 +6 5 7 10 4 6 -3 10 -11 10 -16z m300 -21 c0 -6 -7 -5 -15 2 -8 7 -15 17 -15 +22 0 6 7 5 15 -2 8 -7 15 -17 15 -22z m1325 -18 c-10 -22 -22 -40 -26 -40 -5 +0 1 20 13 45 27 55 38 51 13 -5z m-1497 -9 c8 -23 11 -45 8 -48 -9 -10 -15 0 +-30 51 -18 60 2 58 22 -3z m133 -7 c9 -27 15 -51 12 -53 -8 -10 -23 17 -37 62 +-20 66 3 58 25 -9z m1280 5 c-12 -19 -21 -28 -21 -21 0 15 31 64 37 58 2 -2 +-5 -19 -16 -37z m-2877 -48 c-6 -6 -63 61 -63 74 0 6 15 -8 34 -30 18 -22 32 +-42 29 -44z m46 -5 c0 -5 -16 8 -35 30 -19 21 -34 44 -34 49 -1 6 15 -8 34 +-30 19 -22 34 -44 35 -49z m41 -1 c6 -11 -8 0 -30 25 -22 25 -41 49 -41 55 0 +11 56 -52 71 -80z m1674 34 c253 -145 482 -373 622 -618 39 -68 49 -94 45 +-119 -5 -40 -13 -40 -37 1 -69 118 -214 283 -340 387 -115 94 -277 190 -405 +240 -35 14 -50 27 -50 44 0 5 8 2 18 -6 38 -33 41 -29 22 28 -11 32 -19 59 +-17 61 2 2 12 -6 22 -17 25 -28 36 -25 25 6 -12 31 -13 44 -2 44 4 0 48 -23 +97 -51z m-1985 26 c7 -8 8 -15 2 -15 -5 0 -15 7 -22 15 -7 8 -8 15 -2 15 5 0 +15 -7 22 -15z m55 -5 c10 -11 14 -20 8 -20 -5 0 -18 9 -28 20 -10 11 -14 20 +-8 20 5 0 18 -9 28 -20z m47 3 c21 -19 24 -35 5 -27 -14 5 -41 44 -30 44 3 0 +15 -7 25 -17z m56 -14 c13 -16 19 -29 14 -29 -9 0 -33 25 -46 48 -14 23 9 11 +32 -19z m143 14 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z +m358 -8 c216 -32 507 -114 696 -197 50 -22 107 -47 127 -55 30 -13 40 -24 48 +-52 17 -60 14 -63 -29 -42 -171 88 -506 181 -776 216 -131 17 -130 16 -206 +118 l-20 27 27 0 c14 0 74 -7 133 -15z m915 -7 c8 -32 7 -40 -3 -34 -11 7 -21 +56 -11 56 4 0 10 -10 14 -22z m172 -38 c7 -23 8 -40 3 -40 -10 0 -24 32 -35 +78 -10 43 18 10 32 -38z m1369 0 c-23 -44 -30 -31 -8 15 10 20 19 32 21 26 2 +-5 -4 -24 -13 -41z m117 25 l16 30 21 -47 c72 -167 105 -337 105 -538 0 -166 +-15 -269 -59 -410 -22 -66 -57 -122 -69 -109 -2 2 5 45 17 94 28 124 30 381 3 +505 -25 114 -69 239 -117 328 -34 63 -37 76 -27 95 12 22 12 22 18 -6 5 -26 6 +-24 35 30 29 57 30 57 35 28 l6 -30 16 30z m-1612 -16 c0 -18 -18 -9 -23 12 +-4 16 -3 18 9 8 8 -6 14 -15 14 -20z m-1280 -4 c13 -14 21 -25 18 -25 -2 0 +-15 11 -28 25 -13 14 -21 25 -18 25 2 0 15 -11 28 -25z m-1177 8 c-24 -2 -62 +-2 -85 0 -24 2 -5 4 42 4 47 0 66 -2 43 -4z m2637 -45 c0 -30 -16 -20 -28 18 +-10 35 -10 36 9 18 10 -9 19 -25 19 -36z m1233 17 c-9 -19 -18 -33 -21 -31 -4 +5 26 66 33 66 3 0 -3 -16 -12 -35z m-4040 18 c-18 -2 -48 -2 -65 0 -18 2 -4 4 +32 4 36 0 50 -2 33 -4z m2662 -3 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 +10 4 10 3 0 8 -4 11 -10z m-2835 -11 c-817 -96 -1580 -376 -2229 -818 -57 -39 +-107 -71 -112 -71 -26 0 4 25 128 107 569 375 1186 620 1868 742 163 30 310 +49 370 49 41 -1 37 -2 -25 -9z m455 1 c-16 -4 -64 -8 -105 -9 -263 -4 -717 +-72 -1020 -153 -547 -145 -1076 -384 -1513 -685 -121 -83 -137 -91 -137 -71 0 +8 69 60 152 115 356 234 722 413 1120 547 393 133 779 214 1168 246 234 19 +388 23 335 10z m392 -6 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m3393 -9 c0 -8 -4 -15 -10 -15 -5 0 -7 7 -4 15 4 8 8 15 10 15 2 0 4 -7 4 -15z +m-3273 -1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m1847 -33 +c-6 -6 -24 19 -24 34 1 6 7 1 15 -9 8 -11 12 -22 9 -25z m7046 35 c0 -2 -8 +-10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m-9370 -14 c0 -5 -62 +-12 -137 -16 -516 -25 -1048 -142 -1553 -340 -298 -118 -711 -339 -962 -516 +-90 -63 -128 -79 -128 -52 0 12 184 137 349 236 661 397 1430 635 2216 685 +186 12 215 12 215 3z m160 -2 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 +10 10 10 6 0 10 -4 10 -10z m50 0 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 +5 10 10 10 6 0 10 -4 10 -10z m60 -6 c0 -2 -7 -4 -15 -4 -8 0 -15 4 -15 10 0 +5 7 7 15 4 8 -4 15 -8 15 -10z m2099 -16 c6 -17 9 -33 7 -35 -5 -6 -23 20 -30 +45 -11 35 11 26 23 -10z m-3282 16 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 +17 -2 13 -5z m1230 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m60 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m63 -4 c13 -8 13 +-10 -2 -10 -9 0 -20 5 -23 10 -8 13 5 13 25 0z m1820 -34 c0 -26 -6 -18 -14 +19 -5 22 -4 26 4 15 5 -8 10 -24 10 -34z m163 -11 c9 -25 14 -45 11 -45 -9 0 +-44 66 -44 83 0 30 17 10 33 -38z m-1920 38 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 +5 14 0 19 -2 13 -5z m67 -9 c0 -2 -7 -4 -15 -4 -8 0 -15 4 -15 10 0 5 7 7 15 +4 8 -4 15 -8 15 -10z m-1583 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 +13 -5z m1640 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m3030 +-24 c-7 -17 -13 -26 -15 -21 -3 10 15 51 22 51 3 0 -1 -14 -7 -30z m-3637 12 +c0 -5 -60 -12 -132 -15 -273 -14 -595 -62 -883 -134 -204 -50 -538 -159 -701 +-228 -339 -144 -684 -336 -948 -527 -62 -46 -70 -49 -84 -34 -19 19 -29 11 +163 140 587 393 1286 659 1998 761 253 36 587 57 587 37z m167 2 c-3 -3 -12 +-4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m53 -4 c0 -5 -7 -7 -15 -4 -8 4 +-15 8 -15 10 0 2 7 4 15 4 8 0 15 -4 15 -10z m50 0 c0 -5 -4 -10 -9 -10 -6 0 +-13 5 -16 10 -3 6 1 10 9 10 9 0 16 -4 16 -10z m60 0 c0 -5 -7 -10 -15 -10 -8 +0 -15 5 -15 10 0 6 7 10 15 10 8 0 15 -4 15 -10z m55 0 c3 -5 -1 -10 -9 -10 +-9 0 -16 5 -16 10 0 6 4 10 9 10 6 0 13 -4 16 -10z m1904 -39 c6 -19 9 -36 7 +-38 -6 -6 -22 26 -30 62 -10 39 7 21 23 -24z m172 -16 c9 -25 13 -45 8 -45 +-11 0 -48 77 -49 100 0 24 22 -5 41 -55z m1286 25 c3 0 11 7 17 16 22 30 116 +-192 152 -358 46 -217 15 -564 -58 -641 -18 -19 -28 -25 -24 -14 36 113 33 +389 -7 527 -13 47 -36 114 -51 149 -33 81 -115 213 -127 206 -13 -9 -11 8 8 +51 16 38 17 38 23 14 5 -22 9 -19 30 34 18 44 26 54 28 38 2 -12 6 -22 9 -22z +m-4870 24 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m1570 0 c-3 +-3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m68 -4 c3 -5 -1 -10 -9 -10 +-8 0 -18 5 -21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m-1700 -10 c-11 -5 -27 +-9 -35 -9 -9 0 -8 4 5 9 11 5 27 9 35 9 9 0 8 -4 -5 -9z m1758 3 c-7 -2 -19 +-2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m1756 -26 c20 -54 23 -70 11 -62 +-11 7 -19 25 -35 74 -9 30 13 19 24 -12z m294 -16 c265 -128 500 -340 651 +-590 31 -51 36 -65 29 -92 l-9 -32 -28 44 c-151 230 -414 431 -691 528 -49 18 +-93 37 -97 44 -15 23 -8 29 17 13 29 -19 29 -19 11 25 -7 19 -17 45 -21 57 -7 +23 -7 23 19 7 29 -19 30 -18 16 19 -5 14 -7 26 -4 26 2 0 51 -22 107 -49z +m-2473 18 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 +-16z m46 -6 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 -17z m54 5 c0 +-13 -23 -5 -28 10 -2 7 2 10 12 6 9 -3 16 -11 16 -16z m1246 2 c213 -35 447 +-103 633 -184 91 -40 94 -42 106 -83 7 -24 12 -43 11 -43 -1 0 -49 18 -107 39 +-200 76 -421 130 -609 151 -58 7 -130 15 -160 18 l-55 7 0 58 c0 57 0 57 30 +57 17 0 84 -9 151 -20z m-2756 0 c-34 -11 -60 -11 -35 0 11 5 29 8 40 8 16 0 +15 -2 -5 -8z m1280 2 c0 -4 -75 -14 -167 -21 -891 -66 -1761 -381 -2467 -893 +-62 -45 -70 -48 -84 -34 -22 21 -11 31 142 135 480 323 987 547 1550 686 254 +62 438 92 786 128 72 8 240 7 240 -1z m285 -2 c3 -5 -1 -10 -9 -10 -8 0 -18 5 +-21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m55 0 c0 -5 -4 -10 -9 -10 -6 0 -13 +5 -16 10 -3 6 1 10 9 10 9 0 16 -4 16 -10z m60 0 c0 -5 -7 -10 -15 -10 -8 0 +-15 5 -15 10 0 6 7 10 15 10 8 0 15 -4 15 -10z m50 6 c0 -3 -4 -8 -10 -11 -5 +-3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m237 -2 c-3 -3 -12 -4 -19 +-1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-97 -20 c0 -2 -7 -4 -15 -4 -8 0 -15 4 +-15 10 0 5 7 7 15 4 8 -4 15 -8 15 -10z m217 10 c-3 -3 -12 -4 -19 -1 -8 3 -5 +6 6 6 11 1 17 -2 13 -5z m1567 -62 c9 -24 12 -41 6 -37 -12 7 -35 50 -45 85 +-12 42 19 3 39 -48z m-3744 46 c-523 -156 -970 -360 -1380 -632 -79 -53 -149 +-95 -154 -93 -5 2 60 48 145 104 302 198 617 359 944 483 90 34 379 130 430 +143 38 9 50 5 15 -5z m2025 2 c3 -5 -1 -10 -9 -10 -8 0 -18 5 -21 10 -3 6 1 +10 9 10 8 0 18 -4 21 -10z m65 -10 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 +6 1 10 9 10 9 0 16 -4 16 -10z m-700 -15 c0 -12 -13 -15 -55 -15 -77 0 -324 +-26 -480 -51 -712 -113 -1407 -395 -1999 -810 -128 -91 -129 -91 -148 -71 -20 +20 -20 20 36 61 87 64 299 201 416 268 589 338 1261 551 1950 618 197 19 280 +19 280 0z m95 5 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 +11 -10z m40 0 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 +-4 16 -10z m50 0 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 +13 -4 16 -10z m55 0 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 6 1 10 9 10 9 +0 16 -4 16 -10z m47 4 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m130 -11 c3 -7 -3 -9 -16 -6 -12 3 -21 10 -21 15 0 13 32 6 37 -9z m53 7 c8 +-5 11 -12 8 -16 -10 -9 -38 3 -38 16 0 12 10 13 30 0z m287 4 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m58 -12 c-3 -3 -11 0 -18 7 -9 10 -8 +11 6 5 10 -3 15 -9 12 -12z m-458 2 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 +17 -2 13 -5z m188 -4 c3 -5 -3 -10 -14 -10 -11 0 -23 5 -26 10 -3 6 3 10 14 +10 11 0 23 -4 26 -10z m65 -11 c0 -11 -3 -11 -24 -3 -23 9 -20 23 4 17 11 -3 +20 -9 20 -14z m265 3 c-3 -3 -11 0 -18 7 -9 10 -8 11 6 5 10 -3 15 -9 12 -12z +m1520 -12 c17 -33 19 -50 6 -50 -8 0 -31 52 -31 71 0 17 10 9 25 -21z m-1725 +10 c12 -8 11 -10 -7 -10 -12 0 -25 5 -28 10 -8 13 15 13 35 0z m265 0 c3 -5 2 +-10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m1321 -77 +c-6 -7 -22 27 -29 62 -5 23 -2 20 14 -14 10 -24 17 -46 15 -48z m-1521 67 c3 +-5 -1 -10 -9 -10 -8 0 -18 5 -21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m-705 +-31 c0 -5 -24 -9 -52 -9 -129 0 -521 -56 -738 -106 -564 -127 -1111 -361 +-1585 -677 -66 -44 -145 -98 -175 -121 -79 -60 -79 -60 -101 -40 -10 9 -19 21 +-19 25 0 4 45 40 101 80 545 386 1164 652 1834 788 182 37 453 70 670 84 40 2 +65 -7 65 -24z m90 21 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 +0 11 -4 11 -10z m154 -6 c4 -11 1 -14 -11 -12 -9 2 -18 9 -21 16 -6 18 25 15 +32 -4z m56 1 c10 -12 10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 +20 -7 27 -15z m60 0 c10 -12 10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 +15 8 0 20 -7 27 -15z m410 5 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 6 1 10 +9 10 9 0 16 -4 16 -10z m60 -11 c0 -4 -7 -6 -15 -3 -8 4 -15 10 -15 15 0 4 7 +6 15 3 8 -4 15 -10 15 -15z m1415 11 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 +6 2 10 4 10 3 0 8 -4 11 -10z m-2050 -10 c3 -5 -1 -10 -9 -10 -9 0 -16 5 -16 +10 0 6 4 10 9 10 6 0 13 -4 16 -10z m230 0 c3 -5 -1 -10 -9 -10 -8 0 -18 5 +-21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m60 -1 c12 -19 -5 -23 -22 -6 -16 16 +-16 17 -1 17 9 0 20 -5 23 -11z m65 -4 c10 -12 10 -15 -3 -15 -8 0 -20 7 -27 +15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z m335 -3 c-3 -3 -11 0 -18 7 -9 10 -8 +11 6 5 10 -3 15 -9 12 -12z m-270 -2 c3 -5 -1 -10 -9 -10 -8 0 -18 5 -21 10 +-3 6 1 10 9 10 8 0 18 -4 21 -10z m61 -5 c16 -12 16 -14 3 -15 -9 0 -22 7 -29 +15 -16 19 0 19 26 0z m2860 -43 c-19 -19 -21 -5 -4 35 11 28 12 28 16 4 2 -13 +-3 -31 -12 -39z m-2791 38 c3 -5 -1 -10 -9 -10 -8 0 -18 5 -21 10 -3 6 1 10 9 +10 8 0 18 -4 21 -10z m2762 -12 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 +1 -19z m-2710 6 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-661 +-31 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 -17z m42 8 c3 -8 -1 +-12 -9 -9 -7 2 -15 10 -17 17 -3 8 1 12 9 9 7 -2 15 -10 17 -17z m52 4 c10 +-12 10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z +m54 -1 c4 -11 1 -14 -11 -12 -9 2 -18 9 -21 16 -6 18 25 15 32 -4z m56 1 c10 +-12 10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z +m60 0 c10 -12 10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 20 -7 +27 -15z m60 0 c10 -12 10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 +0 20 -7 27 -15z m964 0 c233 -27 479 -89 676 -168 77 -31 86 -38 99 -71 8 -20 +12 -38 9 -41 -2 -2 -49 11 -103 31 -219 76 -458 121 -690 130 -154 6 -185 10 +-185 24 0 5 8 7 18 3 15 -6 15 -4 -2 15 -13 15 -15 22 -6 22 10 0 10 3 0 15 +-10 12 -10 15 0 15 10 0 10 3 1 14 -24 29 11 31 183 11z m849 -17 c6 -22 5 +-22 -8 -4 -17 22 -20 40 -6 32 5 -3 11 -16 14 -28z m43 -4 c16 -38 14 -53 -4 +-32 -13 16 -27 68 -18 68 4 0 14 -16 22 -36z m-2292 11 c3 -8 0 -15 -7 -15 +-38 0 -252 -23 -372 -41 -785 -113 -1503 -413 -2163 -901 l-43 -32 -25 26 -26 +25 99 70 c632 453 1357 744 2113 848 278 38 414 45 424 20z m514 -2 c5 -18 +-10 -16 -34 2 -18 15 -18 15 5 13 14 -2 26 -9 29 -15z m57 7 c3 -5 -3 -10 -14 +-10 -11 0 -23 5 -26 10 -3 6 3 10 14 10 11 0 23 -4 26 -10z m282 4 c-3 -3 -12 +-4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m58 -4 c3 -5 -1 -10 -9 -10 -8 0 +-18 5 -21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m1439 -52 c8 -21 11 -38 6 -38 +-10 0 -33 41 -45 80 -6 22 -6 23 8 10 8 -8 22 -32 31 -52z m1296 -91 c22 -45 +51 -122 66 -172 49 -168 42 -498 -12 -582 -24 -38 -31 -26 -22 35 13 77 2 240 +-22 336 -23 89 -92 240 -140 305 l-32 43 -40 -38 c-54 -53 -124 -161 -164 +-253 -38 -86 -43 -85 -14 4 62 191 120 294 234 412 l59 63 24 -36 c14 -19 42 +-72 63 -117z m-2680 133 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 +10 6 0 11 -4 11 -10z m-255 -10 c3 -5 -3 -10 -14 -10 -12 0 -21 5 -21 10 0 6 +6 10 14 10 8 0 18 -4 21 -10z m55 0 c24 -15 7 -19 -20 -5 -15 8 -19 14 -10 14 +8 1 22 -3 30 -9z m66 -17 c-8 -8 -36 5 -36 17 0 7 6 7 21 0 11 -7 18 -14 15 +-17z m189 17 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 +16 -10z m-129 -15 c16 -12 16 -14 3 -15 -9 0 -22 7 -29 15 -16 19 0 19 26 0z +m1645 -28 c253 -104 486 -293 629 -512 33 -50 38 -66 32 -89 l-8 -29 -18 28 +c-35 53 -181 198 -257 255 -131 98 -338 190 -501 225 -17 3 -34 17 -43 35 -18 +34 -14 37 22 13 l25 -17 -20 40 c-10 21 -23 50 -27 62 -7 23 -6 23 18 7 25 +-16 25 -16 20 4 -8 30 7 27 128 -22z m-2387 -6 c-6 -6 -24 19 -24 34 1 6 7 1 +15 -9 8 -11 12 -22 9 -25z m44 19 c7 -11 9 -20 4 -20 -10 0 -32 22 -32 32 0 +15 15 8 28 -12z m52 5 c21 -25 1 -31 -22 -7 -18 18 -19 22 -6 22 8 0 21 -7 28 +-15z m60 -5 c8 -15 8 -20 -3 -20 -14 0 -37 19 -37 32 0 16 30 7 40 -12z m58 2 +c3 -9 -2 -13 -14 -10 -9 1 -19 9 -22 16 -3 9 2 13 14 10 9 -1 19 -9 22 -16z +m52 8 c0 -5 -7 -10 -15 -10 -8 0 -15 5 -15 10 0 6 7 10 15 10 8 0 15 -4 15 +-10z m547 -16 c-7 -7 -37 7 -37 17 0 6 9 5 21 -1 11 -7 19 -14 16 -16z m1242 +-34 c0 -8 -6 0 -14 19 -8 18 -15 36 -15 40 1 13 29 -45 29 -59z m1257 34 c-4 +-9 -9 -15 -11 -12 -3 3 -3 13 1 22 4 9 9 15 11 12 3 -3 3 -13 -1 -22z m-3436 +1 c7 -9 11 -17 9 -19 -2 -1 -78 -11 -169 -20 -659 -70 -1322 -292 -1894 -636 +-136 -82 -333 -216 -430 -292 l-49 -39 -29 27 c-15 16 -25 31 -21 34 35 30 +151 112 263 187 626 418 1392 690 2145 762 139 13 161 12 175 -4z m81 -2 c13 +-16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m449 2 c10 -12 10 -15 +-3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z m60 0 c10 -12 +10 -15 -3 -15 -8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z m76 -7 +c3 -5 4 -12 1 -14 -7 -7 -47 15 -47 25 0 11 38 2 46 -11z m324 1 c0 -4 -7 -6 +-15 -3 -8 4 -15 10 -15 15 0 4 7 6 15 3 8 -4 15 -10 15 -15z m-515 1 c3 -5 -3 +-10 -14 -10 -12 0 -21 5 -21 10 0 6 6 10 14 10 8 0 18 -4 21 -10z m256 -6 c11 +-14 10 -15 -11 -12 -13 1 -25 9 -28 16 -5 17 23 15 39 -4z m309 1 c11 -13 10 +-14 -4 -9 -9 3 -16 10 -16 15 0 13 6 11 20 -6z m-250 -10 c16 -19 0 -19 -26 0 +-16 12 -16 14 -3 15 9 0 22 -7 29 -15z m66 -12 c-8 -8 -36 5 -36 17 0 7 6 7 +21 0 11 -7 18 -14 15 -17z m244 5 c0 -6 -6 -5 -15 2 -8 7 -15 14 -15 16 0 2 7 +1 15 -2 8 -4 15 -11 15 -16z m1160 -19 c23 -45 21 -65 -3 -27 -17 27 -31 68 +-23 68 3 0 15 -18 26 -41z m-1344 16 c16 -12 16 -14 3 -15 -9 0 -22 7 -29 15 +-16 19 0 19 26 0z m71 -21 c-7 -7 -37 7 -37 17 0 6 9 5 21 -1 11 -7 19 -14 16 +-16z m1236 6 c3 -11 2 -20 -3 -20 -4 0 -10 9 -13 20 -3 11 -2 20 3 20 4 0 10 +-9 13 -20z m-2093 -22 c0 -6 -7 -5 -15 2 -8 7 -15 17 -15 22 0 6 7 5 15 -2 8 +-7 15 -17 15 -22z m36 5 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 +-17z m44 23 c0 -11 -19 -15 -25 -6 -3 5 1 10 9 10 9 0 16 -2 16 -4z m121 -12 +c11 -14 10 -15 -11 -12 -13 1 -25 9 -28 16 -5 17 23 15 39 -4z m59 1 c10 -12 +9 -15 -8 -15 -11 0 -25 7 -32 15 -10 12 -9 15 8 15 11 0 25 -7 32 -15z m60 0 +c10 -12 9 -15 -8 -15 -11 0 -22 7 -26 15 -3 9 0 15 8 15 7 0 19 -7 26 -15z +m70 0 c10 -12 9 -15 -8 -15 -11 0 -25 7 -32 15 -10 12 -9 15 8 15 11 0 25 -7 +32 -15z m58 3 c30 -30 5 -37 -29 -8 -23 19 -23 19 -3 20 11 0 25 -5 32 -12z +m67 -8 c15 -16 15 -20 3 -20 -8 0 -23 9 -33 20 -15 16 -15 20 -3 20 8 0 23 -9 +33 -20z m390 2 c-3 -3 -11 0 -18 7 -9 10 -8 11 6 5 10 -3 15 -9 12 -12z m1280 +-22 c24 -54 12 -63 -14 -11 -23 45 -25 51 -13 51 5 0 17 -18 27 -40z m-2285 +26 c0 -2 3 -11 6 -19 4 -11 -9 -16 -63 -21 -347 -35 -676 -106 -1008 -217 +-223 -75 -336 -121 -540 -219 -275 -132 -529 -285 -759 -458 -113 -86 -126 +-90 -161 -52 -22 24 -38 9 155 148 532 384 1202 664 1880 787 197 35 490 66 +490 51z m690 -11 c10 -12 9 -15 -8 -15 -11 0 -25 7 -32 15 -10 12 -9 15 8 15 +11 0 25 -7 32 -15z m56 1 c10 -8 16 -17 12 -21 -8 -8 -48 13 -48 25 0 14 13 +12 36 -4z m-496 0 c0 -11 -19 -15 -25 -6 -3 5 1 10 9 10 9 0 16 -2 16 -4z +m560 -6 c8 -5 12 -12 9 -15 -8 -8 -39 5 -39 16 0 11 11 11 30 -1z m57 -6 c-3 +-3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m623 -19 c118 -13 265 -41 +355 -65 63 -18 279 -90 291 -98 7 -4 19 -24 28 -46 15 -36 15 -38 -2 -33 -9 3 +-73 21 -141 41 -220 65 -467 98 -700 95 -113 -1 -125 1 -144 20 -20 20 -20 21 +-2 21 17 0 17 2 -4 24 l-23 25 23 -6 c24 -6 24 -6 5 15 l-19 22 104 0 c57 0 +160 -7 229 -15z m-1205 -15 c10 -11 15 -23 12 -27 -8 -7 -47 25 -47 39 0 14 +16 9 35 -12z m60 0 c15 -16 15 -20 3 -20 -8 0 -23 9 -33 20 -15 16 -15 20 -3 +20 8 0 23 -9 33 -20z m61 3 c12 -12 13 -18 4 -21 -7 -3 -22 5 -33 17 -18 18 +-19 21 -5 21 9 0 24 -8 34 -17z m69 -3 c18 -19 17 -20 -1 -20 -20 0 -44 17 +-44 32 0 15 27 8 45 -12z m60 0 c15 -16 15 -20 3 -20 -8 0 -23 9 -33 20 -15 +16 -15 20 -3 20 8 0 23 -9 33 -20z m420 10 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 +10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m55 -5 c7 -8 8 -15 2 -15 -5 0 -15 7 +-22 15 -7 8 -8 15 -2 15 5 0 15 -7 22 -15z m-872 -15 c7 -11 9 -20 4 -20 -4 0 +-13 9 -20 20 -7 11 -9 20 -4 20 4 0 13 -9 20 -20z m47 0 c14 -15 15 -20 4 -20 +-8 0 -20 9 -27 20 -7 11 -8 20 -4 20 5 0 17 -9 27 -20z m50 0 c16 -18 16 -20 +2 -20 -9 0 -21 9 -27 20 -6 11 -7 20 -2 20 5 0 17 -9 27 -20z m373 3 c5 -18 +-23 -16 -39 3 -11 14 -10 15 11 12 13 -1 25 -9 28 -15z m52 7 c0 -5 -4 -10 -9 +-10 -6 0 -13 5 -16 10 -3 6 1 10 9 10 9 0 16 -4 16 -10z m405 0 c3 -5 2 -10 +-4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m61 -18 c-4 -3 +-14 2 -24 12 -16 18 -16 18 6 6 13 -6 21 -14 18 -18z m1104 -21 c-1 -10 -6 -7 +-15 9 -19 33 -18 50 0 26 8 -11 15 -27 15 -35z m-2190 20 c9 -18 6 -20 -32 +-25 -594 -77 -1011 -195 -1498 -424 -235 -110 -565 -311 -776 -472 -55 -42 +-106 -80 -113 -84 -11 -7 -81 31 -81 44 0 3 56 47 124 98 611 456 1358 758 +2131 861 191 26 232 26 245 2z m770 4 c10 -12 10 -15 -3 -15 -8 0 -20 7 -27 +15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z m-55 -5 c3 -5 -3 -10 -14 -10 -12 0 +-21 5 -21 10 0 6 6 10 14 10 8 0 18 -4 21 -10z m125 -5 c10 -12 10 -15 -3 -15 +-8 0 -20 7 -27 15 -10 12 -10 15 3 15 8 0 20 -7 27 -15z m61 -5 c18 -15 20 +-19 8 -20 -9 0 -24 9 -34 20 -23 26 -4 26 26 0z m59 -5 c7 -8 8 -15 2 -15 -5 +0 -15 7 -22 15 -7 8 -8 15 -2 15 5 0 15 -7 22 -15z m1200 -5 c6 -11 8 -20 6 +-20 -3 0 -10 9 -16 20 -6 11 -8 20 -6 20 3 0 10 -9 16 -20z m-1134 -5 c16 -12 +16 -14 3 -15 -9 0 -22 7 -29 15 -16 19 0 19 26 0z m1224 -25 c11 -22 17 -40 +12 -40 -7 0 -42 62 -42 75 0 14 12 0 30 -35z m-1952 14 c24 -16 29 -34 10 -34 +-14 0 -48 30 -48 42 0 12 13 10 38 -8z m61 2 c9 -10 9 -16 1 -21 -12 -7 -40 +11 -40 26 0 14 26 10 39 -5z m56 4 c3 -5 -3 -10 -14 -10 -12 0 -21 5 -21 10 0 +6 6 10 14 10 8 0 18 -4 21 -10z m206 -10 c23 -19 23 -19 4 -20 -21 0 -45 17 +-45 32 0 14 17 9 41 -12z m475 -8 c-4 -3 -14 2 -24 12 -16 18 -16 18 6 6 13 +-6 21 -14 18 -18z m-936 -25 c0 -6 -9 -2 -20 8 -11 10 -20 23 -20 28 0 6 9 2 +20 -8 11 -10 20 -23 20 -28z m35 23 c14 -15 15 -20 4 -20 -8 0 -20 9 -27 20 +-7 11 -8 20 -4 20 5 0 17 -9 27 -20z m53 8 c16 -16 15 -28 -1 -28 -7 0 -18 9 +-25 20 -10 16 -10 20 1 20 7 0 18 -5 25 -12z m318 -3 c19 -14 19 -14 -2 -15 +-12 0 -27 7 -34 15 -17 20 9 21 36 0z m132 3 c7 -7 12 -16 12 -20 0 -15 -27 +-8 -45 12 -18 19 -17 20 1 20 11 0 25 -5 32 -12z m67 -8 c15 -16 15 -20 3 -20 +-8 0 -23 9 -33 20 -15 16 -15 20 -3 20 8 0 23 -9 33 -20z m1549 4 c-9 23 20 +21 118 -10 121 -38 272 -113 368 -185 147 -108 300 -282 300 -341 0 -29 -3 +-27 -87 59 -170 172 -384 281 -617 315 -88 12 -86 11 -114 72 -3 4 5 5 17 1 +22 -7 22 -6 -3 44 -32 62 -32 65 -1 45 23 -15 25 -15 19 0z m1113 -41 c80 +-126 128 -273 139 -430 8 -107 -11 -254 -35 -285 -17 -20 -18 -17 -19 83 -1 +166 -48 310 -143 443 l-43 60 -38 -45 c-47 -55 -104 -162 -135 -254 l-24 -70 +6 50 c11 90 36 168 84 270 43 90 144 235 163 235 5 0 25 -26 45 -57z m-3387 +28 c5 -11 10 -22 10 -24 0 -2 -28 -7 -62 -11 -35 -4 -141 -20 -237 -37 -715 +-123 -1430 -440 -1990 -881 -48 -37 -91 -68 -96 -68 -6 0 -26 12 -44 28 l-33 +27 128 96 c634 474 1357 767 2154 873 146 19 158 19 170 -3z m78 -17 c-4 -3 +-12 5 -18 18 -12 22 -12 22 6 6 10 -10 15 -20 12 -24z m387 26 c3 -5 -3 -10 +-14 -10 -12 0 -21 5 -21 10 0 6 6 10 14 10 8 0 18 -4 21 -10z m329 -5 c19 -15 +19 -15 -1 -15 -11 0 -26 7 -33 15 -17 20 7 20 34 0z m66 -5 c17 -13 20 -20 10 +-20 -8 0 -26 9 -40 20 -17 13 -20 20 -10 20 8 0 26 -9 40 -20z m64 -5 c30 -23 +14 -27 -19 -5 -17 11 -23 20 -15 20 8 -1 24 -7 34 -15z m66 -10 c16 -19 1 -19 +-24 0 -16 12 -17 15 -4 15 8 0 21 -7 28 -15z m1168 -31 c-4 -3 -12 5 -18 18 +-12 22 -12 22 6 6 10 -10 15 -20 12 -24z m-1780 10 c24 -16 29 -34 10 -34 -14 +0 -48 30 -48 42 0 12 13 10 38 -8z m72 -9 c16 -17 19 -25 9 -25 -14 1 -59 34 +-59 44 0 15 29 4 50 -19z m62 8 c10 -9 18 -20 18 -25 0 -15 -18 -8 -47 17 -24 +21 -25 24 -9 25 11 0 28 -7 38 -17z m66 1 c23 -16 29 -34 13 -34 -6 0 -23 11 +-38 25 -32 28 -12 35 25 9z m70 0 c12 -8 22 -19 22 -25 0 -17 -26 -9 -50 16 +-27 29 -9 35 28 9z m-492 -21 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 +11 -17z m34 17 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 +-4 11 -10z m135 -10 c15 -16 15 -20 3 -20 -8 0 -23 9 -33 20 -15 16 -15 20 -3 +20 8 0 23 -9 33 -20z m400 0 c12 -13 14 -20 6 -20 -7 0 -24 9 -38 20 -23 18 +-24 20 -6 20 11 0 28 -9 38 -20z m65 5 c10 -12 9 -15 -8 -15 -11 0 -25 7 -32 +15 -10 12 -9 15 8 15 11 0 25 -7 32 -15z m830 -10 c130 -20 244 -46 379 -87 +89 -27 106 -36 122 -63 32 -51 26 -56 -48 -34 -105 31 -247 59 -373 75 -122 +15 -371 18 -482 5 -62 -6 -70 -5 -95 16 l-28 22 25 1 25 1 -30 24 c-29 24 -30 +25 -6 25 19 0 21 3 12 14 -9 11 -9 15 1 20 24 11 393 -3 498 -19z m601 -27 +c11 -22 18 -42 16 -44 -5 -5 -57 79 -57 91 0 15 22 -10 41 -47z m-2101 21 c0 +-6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m150 6 +c7 -9 10 -18 7 -22 -8 -7 -37 15 -37 28 0 14 16 11 30 -6z m577 9 c-3 -3 -12 +-4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-809 -16 c20 -20 14 -38 -13 -38 +-13 0 -103 -13 -198 -30 -733 -125 -1467 -455 -2019 -907 l-78 -63 -39 27 +c-22 16 -40 31 -41 34 0 3 37 35 83 70 546 427 1211 730 1892 864 256 50 392 +64 413 43z m956 -3 c11 -8 17 -17 14 -21 -7 -6 -48 17 -48 28 0 12 13 9 34 -7z +m1144 -10 c-3 -3 -9 2 -12 12 -6 14 -5 15 5 6 7 -7 10 -15 7 -18z m-1913 5 c3 +-5 -1 -10 -9 -10 -9 0 -16 5 -16 10 0 6 4 10 9 10 6 0 13 -4 16 -10z m715 0 +c13 -8 13 -10 -2 -10 -9 0 -20 5 -23 10 -8 13 5 13 25 0z m120 -5 c16 -19 1 +-19 -24 0 -16 12 -17 15 -4 15 8 0 21 -7 28 -15z m-481 -35 c-7 -5 -20 -3 -31 +3 -28 18 -21 27 13 15 21 -7 27 -13 18 -18z m61 14 c0 -2 -9 -4 -20 -4 -11 0 +-20 4 -20 9 0 5 9 7 20 4 11 -3 20 -7 20 -9z m-310 -19 c17 -18 20 -25 8 -25 +-8 0 -25 11 -38 25 -17 18 -20 25 -8 25 8 0 25 -11 38 -25z m60 0 c17 -18 20 +-25 8 -25 -8 0 -25 11 -38 25 -17 18 -20 25 -8 25 8 0 25 -11 38 -25z m65 5 +c18 -19 17 -20 -2 -20 -11 0 -28 9 -38 20 -18 19 -17 20 2 20 11 0 28 -9 38 +-20z m63 8 c7 -7 12 -16 12 -20 0 -15 -27 -8 -45 12 -18 19 -17 20 1 20 11 0 +25 -5 32 -12z m279 -8 c22 -17 23 -20 7 -20 -19 1 -54 22 -54 34 0 12 22 6 47 +-14z m64 0 c32 -26 3 -27 -31 0 -19 15 -21 20 -9 20 9 0 27 -9 40 -20z m-638 +-15 c10 -14 15 -25 11 -25 -11 0 -44 32 -44 42 0 15 15 8 33 -17z m52 5 c28 +-31 8 -37 -23 -7 -19 20 -22 27 -11 27 9 0 24 -9 34 -20z m461 5 c19 -14 19 +-14 -2 -15 -12 0 -27 7 -34 15 -17 20 9 21 36 0z m197 1 c9 -7 17 -16 17 -20 +0 -12 -18 -6 -41 14 -28 22 -6 28 24 6z m67 -6 c16 -13 20 -20 10 -19 -16 0 +-50 22 -50 33 0 11 14 6 40 -14z m-900 -40 c0 -4 -26 -11 -57 -15 -99 -11 +-312 -54 -453 -91 -604 -156 -1169 -438 -1652 -826 l-98 -79 -42 28 c-24 15 +-45 28 -47 30 -5 3 50 48 173 141 588 443 1279 731 2018 841 122 19 123 19 +141 -1 9 -11 17 -24 17 -28z m80 30 c6 -11 9 -20 7 -20 -2 0 -12 9 -22 20 -10 +11 -13 20 -7 20 6 0 16 -9 22 -20z m495 10 c3 -5 -3 -10 -14 -10 -12 0 -21 5 +-21 10 0 6 6 10 14 10 8 0 18 -4 21 -10z m396 -10 c18 -15 20 -19 8 -20 -9 0 +-24 9 -34 20 -23 26 -4 26 26 0z m1158 -36 c12 -20 20 -38 18 -41 -5 -4 -47 +60 -47 71 0 14 9 4 29 -30z m-5084 0 c-26 -20 -55 -36 -55 -30 0 5 63 46 70 +46 3 -1 -4 -8 -15 -16z m3285 6 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 +10 11 10 2 0 4 -4 4 -10z m155 -6 c14 -9 25 -20 25 -25 0 -16 -25 -9 -55 16 +-24 19 -26 24 -12 25 10 0 29 -7 42 -16z m75 -4 c23 -18 23 -20 5 -20 -11 0 +-31 9 -45 20 -23 18 -23 20 -5 20 11 0 31 -9 45 -20z m71 0 c23 -18 23 -19 4 +-19 -11 -1 -31 8 -45 19 -24 19 -24 20 -4 20 12 0 32 -9 45 -20z m70 0 c23 +-19 23 -19 3 -20 -11 0 -29 9 -39 20 -15 17 -16 20 -3 20 9 0 26 -9 39 -20z +m69 0 c24 -19 24 -20 4 -20 -11 0 -29 9 -39 20 -24 27 1 27 35 0z m61 3 c26 +-16 38 -33 23 -33 -12 0 -64 34 -64 42 0 12 9 10 41 -9z m-586 -23 c3 -6 0 +-10 -7 -10 -15 0 -38 19 -38 32 0 10 36 -8 45 -22z m40 21 c10 -17 -12 -21 +-25 -6 -10 12 -10 15 3 15 9 0 18 -4 22 -9z m145 -11 c23 -18 23 -20 5 -19 +-23 0 -58 23 -48 32 10 10 16 8 43 -13z m476 5 c14 -11 15 -14 4 -14 -8 0 -24 +6 -34 14 -15 11 -16 15 -5 15 8 0 24 -7 35 -15z m64 -1 c0 -2 -7 -4 -15 -4 -8 +0 -15 4 -15 10 0 5 7 7 15 4 8 -4 15 -8 15 -10z m1398 -15 c171 -43 352 -148 +483 -278 86 -87 119 -134 119 -171 0 -22 -7 -18 -67 42 -116 112 -241 185 +-395 228 -70 19 -248 39 -248 27 0 -3 7 -41 15 -84 8 -43 15 -79 15 -81 0 -1 +-13 13 -30 31 -34 39 -37 49 -13 40 19 -7 14 2 -24 53 -27 37 -29 46 -6 37 18 +-7 15 -1 -19 49 -22 32 -23 49 -2 41 13 -5 11 3 -7 36 -21 36 -22 43 -9 51 18 +12 88 4 188 -21z m-2213 -27 c-7 -7 -45 29 -45 41 0 6 11 0 25 -13 14 -13 23 +-26 20 -28z m27 31 c18 -16 24 -33 11 -33 -10 1 -46 50 -37 50 4 0 16 -7 26 +-17z m1418 3 c164 -21 341 -60 432 -95 25 -10 65 -67 54 -78 -2 -3 -28 2 -58 +11 -160 46 -286 60 -533 60 -183 0 -261 -4 -329 -17 -70 -13 -93 -14 -110 -5 +-21 12 -20 12 6 18 l28 5 -37 25 -37 25 27 3 28 3 -23 19 -23 18 35 6 c114 19 +396 20 540 2z m-1550 -48 c0 -5 -4 -8 -9 -8 -5 0 -72 -11 -148 -25 -707 -130 +-1399 -453 -1954 -912 -43 -35 -80 -63 -83 -63 -3 0 -27 13 -52 28 l-45 29 53 +44 c249 211 612 439 932 586 338 155 678 264 1016 327 235 44 252 46 272 22 +10 -12 18 -24 18 -28z m55 26 c9 -15 12 -23 6 -20 -11 7 -35 46 -28 46 3 0 12 +-12 22 -26z m270 16 c3 -5 -3 -10 -14 -10 -12 0 -21 5 -21 10 0 6 6 10 14 10 +8 0 18 -4 21 -10z m-60 -10 c3 -5 -1 -10 -10 -10 -9 0 -13 5 -10 10 3 6 8 10 +10 10 2 0 7 -4 10 -10z m685 0 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 +10 10 10 6 0 10 -4 10 -10z m2270 -122 c70 -133 100 -311 76 -453 l-8 -50 54 +51 c101 95 211 156 338 187 66 17 194 27 204 16 10 -10 -25 -112 -67 -194 -50 +-97 -180 -234 -272 -286 l-60 -34 67 -7 c158 -15 298 -82 424 -201 46 -43 84 +-85 84 -92 0 -16 -83 -50 -175 -71 -106 -24 -276 -15 -379 20 -43 15 -80 25 +-82 23 -2 -1 10 -23 26 -47 63 -95 110 -259 110 -382 0 -62 -17 -188 -26 -197 +-9 -9 -91 38 -154 89 -111 88 -203 217 -239 336 -10 29 -19 56 -23 59 -3 3 +-17 -27 -32 -67 -28 -78 -78 -160 -138 -226 -88 -97 -238 -196 -262 -172 -18 +18 -21 256 -3 326 25 95 55 168 98 234 30 47 36 61 22 57 -139 -45 -162 -49 +-278 -50 -128 -1 -199 13 -302 58 l-54 25 28 36 c65 86 232 193 355 228 32 9 +90 20 130 24 l73 7 -55 35 c-162 103 -286 277 -325 459 l-7 34 83 -5 c160 -10 +324 -85 442 -201 l64 -62 -1 130 c-1 95 4 147 17 195 22 80 75 189 123 254 +l36 49 24 -29 c13 -16 42 -64 64 -106z m-2692 64 c-24 -5 -73 29 -57 39 8 4 +25 -1 43 -14 24 -17 27 -22 14 -25z m51 32 c15 -11 19 -20 13 -26 -7 -7 -19 +-4 -36 8 -44 33 -23 50 23 18z m71 1 c10 -12 9 -15 -8 -15 -11 0 -25 7 -32 15 +-10 12 -9 15 8 15 11 0 25 -7 32 -15z m52 3 c-9 -9 -15 -9 -24 0 -9 9 -7 12 +12 12 19 0 21 -3 12 -12z m-3807 -6 c-24 -21 -175 -120 -170 -111 7 10 166 +119 174 119 3 0 1 -4 -4 -8z m3490 -17 c26 -21 27 -25 10 -25 -19 1 -65 32 +-65 44 0 13 27 4 55 -19z m60 9 c14 -9 25 -20 25 -25 0 -16 -25 -9 -55 16 -24 +19 -26 24 -12 25 10 0 29 -7 42 -16z m432 -4 c20 -16 22 -20 8 -20 -9 0 -28 9 +-42 20 -20 16 -22 20 -8 20 9 0 28 -9 42 -20z m70 -4 c23 -20 24 -24 8 -20 +-11 3 -31 14 -45 24 -19 15 -21 20 -8 20 9 0 30 -11 45 -24z m3926 17 c-7 -2 +-21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m-4613 -28 c17 -18 20 -25 8 +-25 -8 0 -25 11 -38 25 -17 18 -20 25 -8 25 8 0 25 -11 38 -25z m58 9 c12 -8 +22 -19 22 -25 0 -17 -26 -9 -50 16 -27 29 -9 35 28 9z m498 1 c19 -14 19 -14 +-2 -15 -12 0 -27 7 -34 15 -17 20 9 21 36 0z m1294 -39 c0 -12 -14 5 -31 39 +-8 16 -6 15 10 -4 12 -13 21 -28 21 -35z m-1900 19 c17 -18 20 -25 8 -25 -8 0 +-25 11 -38 25 -17 18 -20 25 -8 25 8 0 25 -11 38 -25z m545 15 c3 -5 -3 -10 +-14 -10 -11 0 -23 5 -26 10 -3 6 3 10 14 10 11 0 23 -4 26 -10z m3963 3 c-10 +-2 -26 -2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 18 -5z m250 0 c-10 -2 -28 -2 -40 +0 -13 2 -5 4 17 4 22 1 32 -1 23 -4z m230 0 c-10 -2 -28 -2 -40 0 -13 2 -5 4 +17 4 22 1 32 -1 23 -4z m-5033 -23 c10 -11 14 -20 8 -20 -5 0 -18 9 -28 20 +-10 11 -14 20 -8 20 5 0 18 -9 28 -20z m4660 10 c-11 -5 -31 -8 -45 -8 l-25 0 +25 8 c14 4 34 8 45 8 l20 1 -20 -9z m-4781 -24 c18 -28 17 -29 -64 -41 -154 +-24 -456 -104 -660 -177 -474 -168 -956 -444 -1311 -749 -37 -33 -73 -59 -79 +-59 -6 0 -32 12 -57 27 l-46 27 43 38 c68 60 264 208 380 285 469 313 1030 +542 1585 647 170 32 189 32 209 2z m81 4 c10 -11 13 -20 7 -20 -6 0 -16 9 -22 +20 -6 11 -9 20 -7 20 2 0 12 -9 22 -20z m4805 0 c0 -5 -19 -9 -42 -9 -40 1 +-41 2 -13 9 44 11 55 11 55 0z m128 3 c-10 -2 -28 -2 -40 0 -13 2 -5 4 17 4 +22 1 32 -1 23 -4z m69 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m176 -1 c-13 -2 -35 -2 -50 0 -16 2 -5 4 22 4 28 0 40 -2 28 -4z m-4626 -28 +c25 -22 26 -24 8 -24 -11 0 -33 11 -50 24 -28 23 -28 25 -8 25 12 0 35 -11 50 +-25z m70 5 c25 -20 25 -20 3 -20 -12 0 -33 9 -47 20 -25 20 -25 20 -3 20 12 0 +33 -9 47 -20z m73 0 c23 -18 23 -20 5 -20 -11 0 -31 9 -45 20 -23 18 -23 20 +-5 20 11 0 31 -9 45 -20z m70 0 c21 -17 22 -20 7 -20 -11 0 -30 9 -44 20 -22 +17 -23 20 -7 20 11 0 30 -9 44 -20z m75 -6 c29 -24 29 -25 5 -18 -14 3 -34 15 +-45 25 -31 30 4 24 40 -7z m3534 22 c-2 -2 -22 -9 -43 -15 -22 -5 -35 -6 -30 +-2 9 9 37 18 63 20 8 0 12 -1 10 -3z m311 -6 c0 -5 -8 -10 -17 -10 -15 0 -16 +2 -3 10 19 12 20 12 20 0z m-4426 -15 c11 -8 16 -18 13 -22 -8 -8 -57 17 -57 +29 0 13 23 9 44 -7z m61 5 c3 -5 -3 -10 -14 -10 -11 0 -23 5 -26 10 -3 6 3 10 +14 10 11 0 23 -4 26 -10z m165 -10 c24 -19 24 -20 4 -20 -12 0 -32 9 -45 20 +-23 18 -23 19 -4 19 11 1 31 -8 45 -19z m3979 16 c-10 -10 -79 -24 -79 -16 0 +8 26 16 64 19 11 0 17 -1 15 -3z m914 -3 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 +14 0 19 -2 13 -5z m-5163 -28 c31 -33 6 -34 -35 0 -27 22 -28 24 -9 25 11 0 +31 -11 44 -25z m200 10 c10 -13 9 -15 -8 -15 -22 0 -36 13 -25 24 10 10 20 7 +33 -9z m1269 -14 c103 -20 251 -56 255 -63 1 -2 10 -16 20 -31 10 -16 16 -30 +14 -32 -2 -3 -46 4 -98 15 -266 53 -516 53 -796 -1 l-111 -22 -39 27 -39 26 +35 0 35 0 -45 30 c-42 28 -43 30 -18 30 14 0 28 4 30 9 2 5 53 16 113 25 160 +22 491 15 644 -13z m2870 15 c-8 -8 -94 -18 -87 -11 4 5 25 11 45 15 36 6 51 +5 42 -4z m286 4 c-3 -5 -14 -10 -23 -10 -15 0 -15 2 -2 10 20 13 33 13 25 0z +m58 3 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m110 0 c-13 -2 +-35 -2 -50 0 -16 2 -5 4 22 4 28 0 40 -2 28 -4z m135 0 c-10 -2 -28 -2 -40 0 +-13 2 -5 4 17 4 22 1 32 -1 23 -4z m117 -3 c15 -7 10 -9 -22 -9 -24 -1 -43 4 +-43 9 0 12 37 12 65 0z m-5158 -22 c33 -31 28 -43 -7 -18 -16 12 -30 26 -30 +31 0 15 12 11 37 -13z m53 2 c14 -10 22 -22 18 -26 -4 -3 -21 5 -38 20 -36 30 +-18 36 20 6z m4600 10 c-36 -12 -72 -12 -65 0 3 6 25 10 48 9 36 -1 38 -2 17 +-9z m620 0 c22 -7 21 -8 -12 -9 -20 -1 -40 4 -43 9 -7 12 19 12 55 0z m-5310 +-25 c13 -14 19 -25 13 -25 -5 0 -20 11 -33 25 -13 14 -19 25 -13 25 5 0 20 +-11 33 -25z m295 15 c3 -5 -3 -10 -15 -10 -12 0 -18 5 -15 10 3 6 10 10 15 10 +5 0 12 -4 15 -10z m3695 -5 c-7 -8 -10 -15 -7 -15 2 0 24 7 47 15 51 18 64 19 +54 3 -5 -8 0 -9 17 -4 13 3 38 9 54 13 27 6 29 5 17 -10 -12 -15 -10 -15 20 +-7 44 13 71 13 63 -1 -5 -7 7 -8 40 -3 46 6 47 6 40 -17 -15 -52 -86 -192 +-135 -265 -68 -100 -185 -222 -283 -295 -86 -64 -285 -169 -321 -169 -45 0 +-35 14 36 52 187 102 341 264 443 467 40 80 78 182 70 189 -9 9 -159 19 -240 +15 -77 -3 -85 4 -26 22 16 5 21 4 17 -4 -9 -14 -10 -14 49 9 61 23 60 23 45 5z +m-4082 -23 l20 -28 -116 -23 c-668 -134 -1373 -481 -1872 -921 l-66 -58 -46 +24 c-26 13 -49 28 -53 34 -7 12 30 46 174 158 430 336 931 589 1470 742 108 +30 416 98 453 99 9 1 26 -12 36 -27z m4627 18 c-28 -12 -47 -12 -40 0 3 6 18 +10 33 9 24 0 25 -1 7 -9z m385 0 c-20 -13 -93 -13 -85 0 3 6 27 10 53 10 34 0 +43 -3 32 -10z m60 6 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 +0 10 -2 10 -4z m65 -6 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 +10 11 0 17 -4 14 -10z m115 0 c11 -7 2 -10 -33 -10 -30 0 -46 4 -42 10 8 13 +55 13 75 0z m270 0 c10 -6 2 -7 -25 -3 -49 7 -58 13 -19 13 16 0 36 -5 44 -10z +m-4874 -16 c37 -18 45 -34 17 -34 -26 1 -82 50 -57 50 3 0 21 -7 40 -16z m74 +1 c10 -12 9 -15 -8 -15 -11 0 -25 7 -32 15 -10 12 -9 15 8 15 11 0 25 -7 32 +-15z m60 5 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 6 1 10 9 10 9 0 16 -4 +16 -10z m3744 -11 l-19 -21 40 7 c22 3 51 8 65 11 l25 5 -24 -19 c-17 -14 -20 +-21 -11 -24 15 -5 -52 -125 -126 -224 -65 -87 -203 -223 -293 -288 -147 -105 +-363 -205 -417 -192 -23 6 -16 12 72 56 266 133 479 366 597 652 11 27 23 39 +44 44 15 3 33 7 38 9 24 8 27 4 9 -16z m325 17 c-12 -10 -60 -16 -54 -6 3 5 +18 10 32 10 15 0 24 -2 22 -4z m521 -6 c11 -7 7 -10 -17 -10 -18 0 -33 5 -33 +10 0 13 30 13 50 0z m-4853 -25 c25 -22 26 -24 8 -24 -11 0 -33 11 -50 24 -28 +23 -28 25 -8 25 12 0 35 -11 50 -25z m68 9 c26 -17 33 -34 14 -34 -5 0 -27 11 +-47 25 -32 22 -34 25 -14 25 13 0 34 -7 47 -16z m305 -4 c23 -18 24 -20 5 -20 +-21 0 -45 17 -45 32 0 13 13 9 40 -12z m3840 10 c-36 -12 -72 -12 -65 0 3 6 +25 10 48 9 36 -1 38 -2 17 -9z m769 -6 c2 -2 -17 -4 -43 -4 -30 0 -45 4 -41 +10 6 9 72 4 84 -6z m141 6 c10 -6 2 -7 -25 -3 -49 7 -58 13 -19 13 16 0 36 -5 +44 -10z m-5260 -25 c29 -22 31 -25 13 -25 -26 0 -87 49 -62 50 8 0 30 -11 49 +-25z m68 6 c12 -11 22 -22 22 -25 0 -14 -27 -4 -55 19 -26 21 -27 24 -10 24 +11 0 30 -8 43 -18z m1907 -11 c87 -25 196 -76 274 -130 88 -59 201 -176 201 +-207 l0 -25 -41 34 c-76 61 -104 80 -174 114 -91 44 -211 74 -297 74 -62 0 +-68 -2 -68 -21 0 -56 55 -193 121 -299 18 -29 13 -26 -24 15 -95 105 -180 279 +-205 424 l-10 54 77 -7 c42 -3 108 -15 146 -26z m1540 20 c-3 -5 -16 -10 -28 +-10 -18 0 -19 2 -7 10 20 13 43 13 35 0z m1155 -2 c0 -4 -12 -8 -27 -8 -19 0 +-24 3 -15 8 17 11 42 11 42 0z m-4730 -23 c31 -33 6 -34 -35 0 -27 22 -28 24 +-9 25 11 0 31 -11 44 -25z m510 15 c0 -5 -6 -10 -14 -10 -8 0 -18 5 -21 10 -3 +6 3 10 14 10 12 0 21 -4 21 -10z m4000 0 c0 -5 -13 -10 -29 -10 -16 0 -38 -3 +-48 -6 -12 -5 -15 -4 -8 4 9 9 34 16 73 21 6 0 12 -3 12 -9z m139 6 c-11 -9 +-100 -15 -94 -6 3 6 27 10 52 10 26 0 44 -2 42 -4z m234 -3 c-13 -2 -35 -2 +-50 0 -16 2 -5 4 22 4 28 0 40 -2 28 -4z m72 -3 c-3 -5 -11 -10 -16 -10 -6 0 +-7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m55 0 c12 -8 11 -10 -7 -10 -13 0 +-23 5 -23 10 0 13 11 13 30 0z m270 0 c22 -7 21 -8 -12 -9 -20 -1 -40 4 -43 9 +-7 12 19 12 55 0z m-5340 -20 c14 -10 22 -22 18 -26 -9 -8 -58 22 -58 36 0 15 +12 12 40 -10z m3545 10 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 23 12 15 +0z m404 -7 c7 -6 -29 -101 -65 -173 -101 -202 -290 -388 -489 -481 -100 -47 +-115 -29 -24 31 129 85 245 214 312 345 31 62 77 188 77 212 0 10 -26 13 -112 +13 -121 0 -245 -22 -333 -59 -30 -13 -42 -15 -31 -6 60 46 268 111 401 124 73 +8 254 4 264 -6z m1234 7 c10 0 16 -4 13 -8 -2 -4 -23 -6 -45 -4 -23 2 -38 8 +-35 14 4 5 16 7 28 4 11 -3 29 -6 39 -6z m-754 -17 c-13 -15 -9 -16 46 -10 +l60 6 -24 -19 -25 -18 22 -4 c22 -3 20 -8 -35 -88 -107 -155 -281 -320 -454 +-428 -143 -90 -367 -178 -421 -167 -38 9 -31 14 67 54 273 112 532 348 676 +615 37 69 44 76 71 76 27 0 29 -2 17 -17z m1011 7 c24 -8 24 -8 -5 -9 -16 0 +-37 4 -45 9 -12 8 -11 10 5 9 11 -1 31 -5 45 -9z m-5624 -57 c-2 -2 -68 -19 +-147 -38 -309 -72 -571 -166 -864 -310 -308 -151 -588 -331 -822 -530 -159 +-135 -134 -123 -199 -92 -30 15 -52 32 -49 37 3 5 45 42 93 83 504 424 1126 +728 1787 872 l150 33 27 -26 c15 -14 26 -27 24 -29z m138 42 c11 -8 16 -18 12 +-22 -3 -4 -16 3 -28 15 -25 25 -13 29 16 7z m4701 5 c-3 -5 -23 -9 -43 -9 +l-37 1 30 8 c44 11 57 11 50 0z m115 0 c0 -5 -18 -10 -41 -10 -24 0 -38 4 -34 +10 3 6 22 10 41 10 19 0 34 -4 34 -10z m140 0 c0 -5 -23 -10 -51 -10 -31 0 +-48 4 -44 10 3 6 26 10 51 10 24 0 44 -4 44 -10z m400 0 c11 -7 7 -10 -17 -10 +-18 0 -33 5 -33 10 0 13 30 13 50 0z m-4819 -17 c30 -18 38 -33 18 -33 -12 0 +-79 39 -79 46 0 10 34 3 61 -13z m81 -3 c32 -19 32 -20 8 -20 -29 0 -86 39 +-58 40 10 0 32 -9 50 -20z m71 3 c23 -12 27 -18 16 -21 -9 -1 -32 6 -50 17 +-42 26 -13 29 34 4z m4340 10 c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 +18 -5z m52 -3 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 +-4 4 -10z m98 0 c23 -1 28 -3 17 -9 -20 -11 -92 -2 -84 11 3 5 13 7 21 4 8 -3 +29 -6 46 -6z m436 -16 c3 -4 -5 -4 -19 -1 -14 4 -31 7 -37 7 -7 0 -13 4 -13 9 +0 10 58 -3 69 -15z m2091 22 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 +21 21 21 13z m-7745 -16 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 +10 5 0 13 -4 16 -10z m343 -8 c3 -9 -2 -13 -14 -10 -9 1 -19 9 -22 16 -3 9 2 +13 14 10 9 -1 19 -9 22 -16z m172 -2 c24 -19 24 -20 4 -20 -12 0 -32 9 -45 20 +-23 18 -23 19 -4 19 11 1 31 -8 45 -19z m1018 9 c93 -10 208 -30 282 -49 23 +-6 42 -20 53 -39 9 -16 17 -31 17 -33 0 -3 -30 1 -67 8 -271 53 -588 33 -875 +-53 -55 -16 -93 -23 -105 -18 -15 7 -12 10 16 14 l34 6 -47 26 c-47 26 -48 26 +-21 33 l26 7 -23 18 -23 19 40 10 c210 55 476 75 693 51z m3972 1 c12 -8 10 +-10 -10 -9 -14 1 -36 5 -50 9 -23 7 -22 8 10 9 19 0 42 -4 50 -9z m-5229 -10 +c10 -6 19 -15 19 -20 0 -17 -26 -11 -45 10 -20 22 -7 27 26 10z m177 -28 c-26 +-5 -64 18 -48 28 8 5 24 1 39 -8 20 -14 22 -18 9 -20z m4839 32 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m63 -4 c0 -5 -9 -10 -21 -10 -11 0 +-17 5 -14 10 3 6 13 10 21 10 8 0 14 -4 14 -10z m-5176 -39 c11 -12 14 -21 7 +-21 -18 0 -71 42 -65 52 7 10 34 -4 58 -31z m53 14 c22 -19 24 -24 11 -25 -9 +0 -30 11 -45 25 -22 19 -24 24 -11 25 9 0 30 -11 45 -25z m4453 19 c0 -4 -8 +-13 -17 -20 -16 -12 -11 -13 37 -14 51 -1 53 -2 36 -15 -19 -14 -18 -15 12 +-15 18 0 32 -3 32 -6 0 -16 -110 -141 -208 -235 -180 -175 -410 -313 -645 +-388 -98 -31 -136 -36 -171 -22 -15 6 -1 14 60 35 314 112 607 342 780 614 20 +31 42 60 48 64 14 9 36 10 36 2z m120 -4 c-20 -13 -80 -13 -80 0 0 6 21 10 48 +10 34 0 43 -3 32 -10z m130 0 c-20 -13 -80 -13 -80 0 0 6 21 10 48 10 34 0 43 +-3 32 -10z m120 0 c0 -5 -18 -10 -41 -10 -24 0 -38 4 -34 10 3 6 22 10 41 10 +19 0 34 -4 34 -10z m412 -12 c-10 -10 -84 0 -78 11 3 4 23 5 46 3 27 -3 38 -8 +32 -14z m133 12 c18 -8 17 -9 -7 -9 -15 -1 -30 4 -33 9 -7 12 12 12 40 0z +m150 -12 c7 -7 1 -8 -15 -3 -40 12 -59 26 -25 19 17 -4 35 -11 40 -16z m1955 +18 c0 -3 -15 -14 -32 -26 l-33 -22 30 26 c31 27 35 29 35 22z m-7595 -31 c16 +-13 26 -27 23 -31 -7 -7 -67 36 -67 49 -1 13 13 7 44 -18z m270 15 c3 -6 -4 +-10 -17 -10 -18 0 -20 2 -8 10 19 12 18 12 25 0z m4810 0 c-3 -5 -24 -10 -46 +-10 -21 0 -39 5 -39 10 0 6 21 10 46 10 27 0 43 -4 39 -10z m-5115 -35 c25 +-30 3 -25 -26 6 -22 24 -24 29 -8 21 11 -6 27 -18 34 -27z m5200 25 c0 -5 -14 +-10 -31 -10 -17 0 -28 4 -24 10 3 6 17 10 31 10 13 0 24 -4 24 -10z m240 0 c0 +-5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m200 -12 +c10 -6 4 -7 -20 -3 -19 3 -39 10 -45 16 -12 12 41 2 65 -13z m-5689 -15 l24 +-27 -32 23 c-33 23 -40 31 -25 31 5 0 19 -12 33 -27z m640 7 c23 -18 23 -19 4 +-19 -20 0 -55 21 -55 33 0 13 29 5 51 -14z m64 10 c3 -5 -3 -10 -14 -10 -11 0 +-23 5 -26 10 -3 6 3 10 14 10 11 0 23 -4 26 -10z m3090 -12 c-59 -193 -171 +-360 -318 -472 -81 -61 -164 -106 -197 -106 -17 0 -9 10 36 44 147 109 260 +281 289 439 l7 37 -84 0 c-100 0 -209 -25 -299 -70 -89 -43 -37 -2 61 49 138 +71 248 99 403 100 108 1 108 1 102 -21z m1070 12 c-3 -5 -17 -10 -31 -10 -14 +0 -22 4 -19 10 3 6 17 10 31 10 14 0 22 -4 19 -10z m513 0 c18 0 23 -3 15 -11 +-13 -13 -85 -1 -77 13 3 5 13 7 21 4 8 -3 26 -6 41 -6z m167 0 c3 -5 -3 -10 +-14 -10 -12 0 -21 5 -21 10 0 6 6 10 14 10 8 0 18 -4 21 -10z m270 -11 c5 -5 +-5 -4 -23 2 -17 6 -32 13 -32 16 0 7 43 -8 55 -18z m-5893 -16 l28 -27 -151 +-38 c-464 -117 -902 -316 -1301 -590 -124 -85 -301 -224 -387 -303 -32 -30 +-65 -55 -72 -55 -8 1 -38 13 -67 28 l-53 28 108 90 c517 432 1090 719 1734 +868 132 31 128 31 161 -1z m576 5 c22 -14 30 -24 22 -26 -15 -5 -80 27 -80 40 +0 14 21 9 58 -14z m77 6 c26 -17 33 -34 14 -34 -5 0 -27 11 -47 25 -32 22 -34 +25 -14 25 13 0 34 -7 47 -16z m4411 9 c-7 -7 -77 -5 -85 2 -2 3 17 5 44 5 27 +0 45 -3 41 -7z m114 -3 c11 -7 2 -10 -33 -10 -30 0 -46 4 -42 10 8 13 55 13 +75 0z m-4665 -25 c26 -21 27 -24 10 -25 -11 0 -33 11 -50 25 -26 21 -27 24 +-10 25 11 0 34 -11 50 -25z m4769 19 c27 -10 9 -20 -28 -16 -20 2 -33 8 -30 +13 6 10 35 12 58 3z m256 -4 c0 -5 -9 -10 -21 -10 -11 0 -17 5 -14 10 3 6 13 +10 21 10 8 0 14 -4 14 -10z m185 0 c17 -7 16 -9 -10 -9 -16 0 -37 4 -45 9 -12 +8 -10 10 10 9 14 0 34 -4 45 -9z m1965 6 c0 -2 -8 -10 -17 -17 -16 -13 -17 +-12 -4 4 13 16 21 21 21 13z m-7249 -23 c16 -10 29 -21 29 -25 0 -16 -36 -7 +-65 17 -24 20 -26 25 -12 25 11 0 32 -8 48 -17z m394 7 c3 -5 -3 -10 -15 -10 +-12 0 -18 5 -15 10 3 6 10 10 15 10 5 0 12 -4 15 -10z m4755 0 c0 -5 -7 -10 +-16 -10 -8 0 -12 5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 -10z m275 0 c7 -12 -2 +-12 -30 0 -19 8 -19 9 2 9 12 1 25 -3 28 -9z m-5487 -19 c12 -11 22 -22 22 +-25 0 -14 -27 -4 -55 19 -26 21 -27 24 -10 24 11 0 30 -8 43 -18z m4507 9 c-3 +-5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m130 0 +c-3 -5 -26 -10 -51 -10 -28 0 -43 4 -39 10 3 6 26 10 51 10 28 0 43 -4 39 -10z +m410 0 c-7 -12 -42 -12 -70 0 -15 6 -8 9 28 9 30 1 46 -3 42 -9z m260 -11 c5 +-6 1 -9 -10 -9 -33 0 -65 12 -59 21 6 10 54 1 69 -12z m95 11 c0 -5 -5 -10 +-11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m-5462 -19 c25 -22 +28 -31 10 -31 -14 1 -58 34 -58 44 0 12 26 5 48 -13z m1712 4 c6 -8 10 -20 8 +-26 -2 -6 -12 0 -21 15 -18 27 -8 37 13 11z m3105 5 c-3 -5 -17 -10 -31 -10 +-13 0 -24 5 -24 10 0 6 14 10 31 10 17 0 28 -4 24 -10z m369 1 c11 -4 15 -10 +10 -13 -14 -9 -65 3 -58 13 6 11 22 11 48 0z m326 -1 c12 -8 11 -10 -7 -10 +-13 0 -23 5 -23 10 0 13 11 13 30 0z m135 -12 c7 -7 1 -8 -15 -3 -40 12 -59 +26 -25 19 17 -4 35 -11 40 -16z m-5785 2 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 +10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m1665 -20 c100 -17 113 -22 138 -50 16 +-18 27 -33 25 -35 -2 -2 -23 1 -48 6 -25 5 -110 12 -190 15 -232 11 -409 -16 +-647 -98 -112 -38 -124 -41 -150 -28 l-28 14 35 6 35 5 -54 26 -54 27 32 7 +c29 6 30 8 15 19 -14 11 -3 16 77 39 280 78 544 93 814 47z m3410 20 c-7 -12 +-42 -12 -70 0 -15 6 -8 9 28 9 30 1 46 -3 42 -9z m-5110 -11 c11 -17 -1 -21 +-15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z m121 -3 c10 -8 16 -17 12 -21 -7 +-7 -48 16 -48 27 0 12 14 9 36 -6z m492 -8 c22 -14 30 -24 22 -26 -15 -5 -80 +27 -80 40 0 14 21 9 58 -14z m82 2 c33 -18 33 -19 10 -20 -14 0 -38 9 -55 20 +-25 16 -26 20 -10 20 11 -1 36 -9 55 -20z m4525 10 c4 -6 -8 -10 -29 -10 -20 +0 -36 5 -36 10 0 6 13 10 29 10 17 0 33 -4 36 -10z m274 -6 c2 -2 2 -7 -1 -10 +-9 -9 -78 7 -73 17 5 7 64 2 74 -7z m121 6 c0 -5 -6 -10 -14 -10 -8 0 -18 5 +-21 10 -3 6 3 10 14 10 12 0 21 -4 21 -10z m165 -13 c7 -6 0 -7 -20 -3 -16 4 +-34 12 -40 17 -7 7 0 8 20 3 17 -3 35 -11 40 -17z m-5340 3 c3 -6 -4 -10 -17 +-10 -18 0 -20 2 -8 10 19 12 18 12 25 0z m4358 -2 c-34 -16 -28 -26 19 -30 +l42 -3 -84 -88 c-236 -250 -577 -445 -905 -520 -57 -13 -115 -7 -115 11 0 4 +30 16 68 26 192 55 411 172 583 312 71 58 216 205 263 267 28 36 30 37 90 36 +51 0 57 -2 39 -11z m87 2 c0 -5 -9 -10 -21 -10 -11 0 -17 5 -14 10 3 6 13 10 +21 10 8 0 14 -4 14 -10z m50 0 c0 -5 -7 -10 -16 -10 -8 0 -12 5 -9 10 3 6 10 +10 16 10 5 0 9 -4 9 -10z m388 0 c19 0 23 -3 15 -11 -14 -14 -86 -3 -77 12 3 +6 13 8 21 5 8 -3 26 -6 41 -6z m332 6 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 +0 6 5 11 10 11 6 0 10 -2 10 -4z m-5727 -32 c11 -14 17 -27 15 -28 -1 -2 -37 +-11 -78 -21 -307 -72 -719 -241 -1016 -416 -208 -122 -413 -270 -606 -437 +l-116 -101 -61 27 c-34 15 -61 29 -60 32 0 3 37 37 82 76 451 392 998 685 +1572 842 225 62 241 63 268 26z m157 4 c0 -13 -23 -5 -28 10 -2 7 2 10 12 6 9 +-3 16 -11 16 -16z m293 8 c13 -10 15 -15 5 -19 -16 -5 -48 10 -48 23 0 14 22 +12 43 -4z m168 4 c10 -6 19 -15 19 -20 0 -16 -26 -11 -51 10 -21 17 -22 19 -6 +20 10 0 27 -5 38 -10z m4509 0 c0 -5 -20 -10 -45 -10 -25 0 -45 5 -45 10 0 6 +20 10 45 10 25 0 45 -4 45 -10z m860 -6 c0 -2 -7 -4 -15 -4 -8 0 -15 4 -15 10 +0 5 7 7 15 4 8 -4 15 -8 15 -10z m-5597 -13 c38 -25 17 -38 -23 -14 -16 9 -30 +21 -30 25 0 14 24 9 53 -11z m4782 9 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 +3 6 11 10 16 10 6 0 7 -4 4 -10z m60 0 c18 -8 17 -9 -7 -9 -16 -1 -28 4 -28 9 +0 12 8 12 35 0z m284 -6 c2 -2 2 -7 -1 -10 -9 -9 -78 7 -73 17 5 7 64 2 74 -7z +m141 6 c0 -13 -30 -13 -50 0 -11 7 -7 10 18 10 17 0 32 -4 32 -10z m150 0 c12 +-8 10 -10 -10 -10 -14 0 -32 5 -40 10 -12 8 -10 10 10 10 14 0 32 -5 40 -10z +m105 0 c3 -5 -1 -10 -9 -10 -9 0 -16 5 -16 10 0 6 4 10 9 10 6 0 13 -4 16 -10z +m-5577 -25 c26 -17 31 -25 18 -25 -21 0 -76 31 -76 42 0 14 21 8 58 -17z m217 +19 c12 -5 14 -9 4 -14 -14 -9 -39 -2 -39 11 0 11 12 11 35 3z m-279 -28 c21 +-14 31 -27 25 -30 -9 -6 -81 39 -81 50 0 10 25 2 56 -20z m4774 14 c20 -6 16 +-8 -23 -9 -30 -1 -46 3 -42 9 7 11 29 11 65 0z m310 0 c0 -12 -47 -12 -75 0 +-15 6 -8 9 28 9 26 1 47 -3 47 -9z m266 -11 c6 -10 -36 -12 -60 -3 -9 3 -14 9 +-11 13 6 10 64 1 71 -10z m149 0 c11 -11 0 -11 -44 -3 -17 4 -28 10 -25 15 6 +10 54 1 69 -12z m115 -1 c0 -6 -7 -7 -16 -4 -9 3 -20 6 -25 6 -6 0 -8 4 -5 9 +8 12 46 2 46 -11z m-5674 -9 c36 -22 41 -29 22 -29 -15 0 -78 49 -64 50 5 0 +24 -9 42 -21z m4924 11 c0 -5 -9 -10 -21 -10 -11 0 -17 5 -14 10 3 6 13 10 21 +10 8 0 14 -4 14 -10z m897 -17 c-7 -7 -57 8 -57 18 0 4 14 3 31 -3 16 -6 28 +-12 26 -15z m-5862 -8 c16 -13 27 -26 25 -29 -3 -2 -21 9 -40 25 -19 15 -30 +28 -25 28 6 0 23 -11 40 -24z m540 8 c34 -16 46 -33 25 -33 -13 0 -90 39 -90 +45 0 10 31 4 65 -12z m81 2 c19 -14 19 -14 -1 -14 -11 0 -31 6 -45 14 l-25 14 +26 1 c14 0 34 -7 45 -15z m4394 11 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 +6 5 11 10 11 6 0 10 -2 10 -4z m280 -6 c0 -5 -11 -10 -24 -10 -14 0 -28 5 -31 +10 -4 6 7 10 24 10 17 0 31 -4 31 -10z m-4825 -17 c37 -18 46 -33 19 -33 -16 +0 -84 37 -84 46 0 9 31 3 65 -13z m4655 7 c0 -13 -50 -13 -70 0 -11 7 -4 10 +28 10 23 0 42 -4 42 -10z m270 -11 c0 -10 -25 -11 -58 -2 -14 3 -19 9 -13 13 +15 9 71 0 71 -11z m140 12 c14 -4 20 -10 15 -13 -14 -8 -75 2 -75 13 0 10 23 +10 60 0z m144 0 c12 -5 16 -10 9 -14 -11 -7 -63 8 -63 18 0 7 31 5 54 -4z +m-5781 -29 l27 -28 -133 -38 c-547 -158 -1074 -450 -1499 -830 l-107 -96 -58 +22 c-32 12 -62 25 -66 28 -5 4 37 47 93 96 393 343 857 609 1335 767 127 42 +344 104 371 106 5 1 22 -12 37 -27z m498 11 c16 -10 29 -21 29 -25 0 -14 -24 +-8 -65 17 -34 21 -37 25 -17 25 13 0 37 -8 53 -17z m4434 7 c-3 -5 -14 -10 +-23 -10 -35 0 5 -19 48 -23 37 -3 41 -5 23 -11 -25 -9 -30 -22 -12 -28 12 -4 +-100 -107 -198 -181 -199 -151 -448 -270 -709 -337 -128 -33 -171 -37 -199 +-16 -18 13 -16 15 25 26 162 42 333 108 448 172 161 90 361 244 462 356 51 56 +58 61 98 61 26 1 41 -3 37 -9z m106 -10 c-6 -3 -25 -4 -42 -2 -17 3 -26 8 -20 +12 6 3 25 4 42 2 17 -3 26 -8 20 -12z m249 10 c0 -5 -7 -10 -16 -10 -8 0 -12 +5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 -10z m630 0 c12 -8 12 -10 -5 -10 -11 0 +-27 5 -35 10 -12 8 -12 10 5 10 11 0 27 -5 35 -10z m-5839 -17 c13 -16 12 -17 +-3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m350 0 c30 -18 38 -33 18 -33 -12 +0 -79 39 -79 46 0 10 34 3 61 -13z m1395 -3 c44 -8 69 -19 88 -39 l26 -27 +-183 4 c-151 3 -203 1 -302 -16 -135 -23 -270 -65 -394 -123 -46 -21 -87 -39 +-91 -39 -4 0 -25 8 -46 17 l-39 17 35 6 35 6 -55 26 c-30 15 -48 27 -39 27 9 +1 26 10 38 20 42 37 270 103 431 127 110 15 401 12 496 -6z m3514 10 c0 -5 -7 +-10 -15 -10 -8 0 -15 5 -15 10 0 6 7 10 15 10 8 0 15 -4 15 -10z m695 0 c13 +-5 14 -9 5 -9 -8 0 -24 4 -35 9 -13 5 -14 9 -5 9 8 0 24 -4 35 -9z m-5665 -22 +c22 -13 30 -23 22 -26 -15 -5 -82 28 -82 40 0 14 24 8 60 -14z m4800 12 c0 -5 +-15 -10 -34 -10 -19 0 -38 5 -41 10 -4 6 10 10 34 10 23 0 41 -4 41 -10z m279 +-6 c2 -2 2 -7 -2 -10 -9 -10 -78 6 -72 16 5 8 63 3 74 -6z m154 6 c8 0 7 -3 +-2 -9 -17 -11 -53 -2 -45 11 3 5 13 7 21 4 8 -3 20 -6 26 -6z m142 0 c8 -13 +-35 -13 -55 0 -11 7 -7 10 17 10 17 0 35 -4 38 -10z m129 1 c12 -5 16 -10 9 +-14 -11 -7 -63 8 -63 18 0 7 31 5 54 -4z m-619 -21 c-2 -4 -16 -5 -31 -2 -16 +3 -21 7 -14 12 15 9 52 1 45 -10z m745 10 c24 -15 7 -19 -25 -5 -23 10 -25 14 +-10 14 11 0 27 -3 35 -9z m-5780 -10 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 +-3 6 1 10 9 10 9 0 16 -4 16 -10z m93 -7 c20 -10 27 -18 19 -21 -16 -5 -62 17 +-62 30 0 11 7 10 43 -9z m442 0 c33 -16 46 -33 25 -33 -16 0 -80 33 -80 42 0 +12 16 10 55 -9z m4745 7 c0 -5 -8 -10 -17 -10 -15 0 -16 2 -3 10 19 12 20 12 +20 0z m199 -6 c2 -2 2 -7 -1 -10 -10 -9 -78 7 -72 18 5 8 62 2 73 -8z m420 0 +c13 -12 -8 -10 -29 2 l-25 15 25 -7 c14 -3 27 -8 29 -10z m-5944 -5 c11 -17 +-1 -21 -15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z m4935 1 c0 -5 -13 -10 -29 +-10 -17 0 -33 5 -36 10 -4 6 8 10 29 10 20 0 36 -4 36 -10z m270 0 c9 0 11 -3 +4 -10 -13 -13 -76 -1 -68 12 4 5 16 7 28 4 11 -3 28 -6 36 -6z m165 0 c3 -5 +-1 -10 -10 -10 -9 0 -13 5 -10 10 3 6 8 10 10 10 2 0 7 -4 10 -10z m290 0 c3 +-5 -3 -10 -14 -10 -11 0 -23 5 -26 10 -3 6 3 10 14 10 11 0 23 -4 26 -10z +m113 4 c12 -4 22 -11 22 -16 0 -10 -39 -1 -54 13 -12 11 -1 11 32 3z m-5807 +-21 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m136 -10 c-9 +-8 -48 8 -42 18 4 5 14 5 26 -2 12 -6 18 -13 16 -16z m303 17 c0 -5 -6 -10 +-14 -10 -8 0 -18 5 -21 10 -3 6 3 10 14 10 12 0 21 -4 21 -10z m119 -4 c16 -9 +20 -15 12 -21 -15 -9 -73 14 -65 26 7 12 25 11 53 -5z m4511 4 c8 0 10 -3 5 +-9 -13 -12 -77 -2 -69 11 4 5 16 7 28 4 11 -3 28 -6 36 -6z m880 -10 c0 -5 -9 +-6 -20 -3 -11 3 -20 9 -20 13 0 5 9 6 20 3 11 -3 20 -9 20 -13z m-5564 -5 c19 +-14 19 -14 -2 -15 -11 0 -29 7 -40 15 -19 14 -19 14 2 15 11 0 29 -7 40 -15z +m4928 9 c25 -9 10 -22 -20 -16 -19 3 -22 7 -12 13 16 11 13 10 32 3z m180 -3 +c11 -4 15 -10 10 -13 -13 -8 -74 3 -74 13 0 11 37 11 64 0z m291 -12 c11 -10 +-9 -12 -42 -3 -13 4 -20 10 -17 16 6 9 43 2 59 -13z m265 -5 c0 -2 -9 0 -20 6 +-11 6 -20 13 -20 16 0 2 9 0 20 -6 11 -6 20 -13 20 -16z m-6113 -6 c26 -24 29 +-38 9 -38 -26 0 -268 -82 -401 -135 -414 -168 -789 -403 -1128 -709 l-102 -93 +-55 19 c-30 10 -61 20 -69 23 -19 7 -1 27 125 135 407 351 854 600 1364 760 +91 28 170 53 175 55 28 9 61 3 82 -17z m153 6 c0 -2 -7 -4 -15 -4 -8 0 -15 4 +-15 10 0 5 7 7 15 4 8 -4 15 -8 15 -10z m231 -1 c28 -17 38 -33 20 -33 -14 0 +-71 34 -71 43 0 12 20 8 51 -10z m179 -4 c0 -11 -12 -11 -35 -3 -12 5 -14 9 +-4 14 14 9 39 2 39 -11z m4390 1 l-25 -20 32 0 c17 0 39 -3 48 -7 15 -5 14 -8 +-6 -19 l-24 -13 27 -1 c15 0 29 -4 33 -9 8 -13 -99 -101 -221 -181 -250 -165 +-522 -273 -814 -324 -74 -13 -87 -13 -113 1 -16 8 -27 17 -24 19 2 3 49 15 +103 29 336 81 617 229 874 459 52 47 104 85 115 85 18 1 18 -1 -5 -19z m285 +10 c15 -7 10 -9 -23 -9 -26 -1 -41 3 -37 9 7 12 32 12 60 0z m470 0 c-3 -5 +-10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 10 16 10 8 0 12 -4 9 -10z m-5351 -52 +c-3 -4 -23 1 -45 12 -22 12 -37 25 -34 31 4 5 22 1 45 -12 22 -12 37 -26 34 +-31z m4706 42 c21 -7 18 -8 -18 -9 -26 -1 -41 3 -37 9 7 11 19 11 55 0z m910 +0 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 6 1 10 9 10 9 0 16 -4 16 -10z +m101 0 c5 0 9 -4 9 -10 0 -14 -13 -12 -36 6 -17 14 -17 15 -1 10 10 -3 23 -6 +28 -6z m-737 -9 c11 -4 15 -10 10 -13 -13 -8 -64 2 -64 13 0 11 27 11 54 0z +m171 -1 c8 -13 -45 -13 -65 0 -11 7 -6 10 22 10 20 0 40 -4 43 -10z m120 0 +c-3 -5 -12 -7 -20 -3 -21 7 -19 13 6 13 11 0 18 -4 14 -10z m165 0 c11 -7 7 +-10 -17 -10 -17 0 -35 5 -38 10 -8 13 35 13 55 0z m100 0 c0 -5 -4 -10 -10 +-10 -5 0 -10 5 -10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z m-5621 -17 c31 -18 +40 -33 20 -33 -5 0 -27 11 -47 25 -42 29 -21 35 27 8z m228 11 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m219 -11 c33 -14 36 -18 17 -21 -12 +-2 -35 4 -52 13 -57 29 -28 36 35 8z m1184 -19 l30 -29 -158 -1 c-246 -2 -425 +-47 -651 -165 l-114 -60 -51 17 -51 18 35 9 c21 6 29 12 20 15 -8 2 -31 11 +-50 19 l-35 14 50 29 c107 62 276 119 440 151 82 15 137 18 303 16 l203 -3 29 +-30z m3280 26 c11 -7 7 -10 -18 -10 -20 0 -31 4 -27 10 8 13 26 13 45 0z m851 +0 c5 0 9 -4 9 -10 0 -14 -13 -12 -36 6 -17 14 -17 15 -1 10 10 -3 23 -6 28 -6z +m-5815 -22 c21 -12 32 -24 26 -26 -6 -2 -28 8 -49 22 -46 32 -29 34 23 4z +m433 3 c24 -13 29 -20 19 -24 -15 -5 -98 27 -98 38 0 11 47 3 79 -14z m4800 3 +c2 -2 2 -7 -2 -10 -9 -9 -68 7 -61 17 4 8 52 3 63 -7z m135 7 c11 -4 15 -10 +10 -13 -14 -9 -65 3 -58 13 6 11 22 11 48 0z m155 -7 c2 -2 2 -6 -1 -9 -9 -9 +-58 6 -58 17 0 9 49 3 59 -8z m391 6 c13 -8 13 -10 -2 -10 -9 0 -20 5 -23 10 +-8 13 5 13 25 0z m-5945 -34 c11 -8 16 -15 10 -16 -5 0 -23 12 -40 26 -31 26 +-6 18 30 -10z m388 12 c29 -15 37 -23 25 -26 -16 -3 -98 33 -98 43 0 11 34 3 +73 -17z m4712 12 c17 -7 16 -9 -10 -9 -16 0 -37 4 -45 9 -12 8 -10 10 10 9 14 +0 34 -4 45 -9z m575 0 c0 -13 -20 -13 -40 0 -12 8 -9 10 13 10 15 0 27 -4 27 +-10z m139 -6 c2 -2 2 -7 -2 -10 -8 -9 -47 6 -47 17 0 9 37 3 49 -7z m-5498 +-19 c34 -19 39 -25 22 -25 -34 0 -96 32 -81 42 7 4 14 8 14 8 1 0 22 -11 45 +-25z m4576 19 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m53 -4 +c0 -5 -7 -10 -16 -10 -8 0 -12 5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 -10z m964 +4 c17 -6 22 -24 8 -24 -5 0 -17 7 -28 15 -19 15 -8 20 20 9z m141 -12 c-3 -3 +-11 0 -18 7 -9 10 -8 11 6 5 10 -3 15 -9 12 -12z m-6158 -16 c15 -13 26 -26 +23 -29 -3 -2 -61 -23 -130 -47 -489 -164 -920 -420 -1322 -783 l-107 -97 -72 +23 -72 22 89 82 c345 316 760 572 1199 738 105 40 332 114 352 115 7 0 25 -11 +40 -24z m5313 4 c-15 -9 -52 -1 -45 10 2 4 16 5 31 2 16 -3 21 -7 14 -12z +m150 10 c12 -7 8 -10 -15 -10 -16 0 -37 5 -45 10 -12 7 -8 10 15 10 17 0 37 +-5 45 -10z m140 0 c11 -7 7 -10 -17 -10 -17 0 -35 5 -38 10 -8 13 35 13 55 0z +m134 1 c11 -4 15 -10 10 -14 -14 -8 -54 3 -54 14 0 11 17 11 44 0z m-5375 -20 +c19 -10 29 -21 23 -25 -12 -7 -82 23 -82 36 0 13 22 9 59 -11z m4791 9 c0 -11 +-14 -11 -50 0 -22 7 -21 8 13 9 20 1 37 -3 37 -9z m715 0 c8 -13 -25 -13 -45 +0 -12 8 -9 10 12 10 15 0 30 -4 33 -10z m124 -6 c2 -2 2 -6 0 -9 -8 -7 -49 7 +-49 17 0 8 38 2 49 -8z m136 6 c8 -13 -5 -13 -25 0 -13 8 -13 10 2 10 9 0 20 +-4 23 -10z m-727 -10 c11 0 13 -3 5 -11 -12 -12 -65 -1 -57 13 3 5 13 7 21 4 +8 -3 22 -6 31 -6z m152 -11 c0 -10 -12 -11 -34 -3 -9 3 -14 10 -11 14 6 10 45 +1 45 -11z m540 0 c0 -4 -7 -6 -15 -3 -8 4 -15 10 -15 15 0 4 7 6 15 3 8 -4 15 +-10 15 -15z m-5885 1 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 +0 13 -4 16 -10z m117 -28 c-18 -6 -63 18 -56 29 3 5 20 1 37 -8 20 -10 27 -18 +19 -21z m393 6 c14 -12 -31 -10 -60 4 -17 8 -22 14 -14 19 12 7 54 -6 74 -23z +m4370 22 c17 -7 16 -9 -10 -9 -16 0 -37 4 -45 9 -12 8 -10 10 10 9 14 0 34 -4 +45 -9z m122 4 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m43 -4 +c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m440 0 +c0 -13 -30 -13 -50 0 -11 7 -7 10 18 10 17 0 32 -4 32 -10z m125 4 c12 -5 13 +-9 5 -14 -15 -9 -50 -1 -50 11 0 11 21 12 45 3z m125 -15 c0 -10 -12 -11 -34 +-3 -9 3 -14 10 -11 14 6 10 45 1 45 -11z m-5763 -15 c-7 -7 -37 7 -37 17 0 6 +9 5 21 -1 11 -7 19 -14 16 -16z m395 14 c-9 -9 -15 -9 -24 0 -9 9 -7 12 12 12 +19 0 21 -3 12 -12z m1327 -23 l26 -25 -79 0 c-242 0 -520 -88 -714 -227 -37 +-26 -69 -42 -80 -39 -9 3 -37 10 -62 16 l-45 12 29 12 29 12 -43 13 -44 13 55 +35 c80 51 152 86 259 126 175 65 324 88 520 81 117 -4 126 -5 149 -29z m4286 +25 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z +m-5674 -11 c28 -15 13 -31 -16 -17 -25 11 -34 28 -14 28 6 0 19 -5 30 -11z +m4509 1 c12 -1 11 -3 -3 -14 -16 -12 -16 -14 -1 -20 8 -3 24 -6 35 -6 24 0 25 +-20 2 -20 -17 -1 -17 -1 0 -14 16 -13 12 -17 -45 -58 -287 -204 -631 -340 +-988 -392 -91 -14 -96 -13 -129 6 l-33 21 110 23 c220 44 428 117 599 210 101 +55 270 167 343 228 37 31 61 44 75 41 11 -3 27 -5 35 -5z m150 0 c0 -5 -9 -10 +-20 -10 -11 0 -20 5 -20 10 0 6 9 10 20 10 11 0 20 -4 20 -10z m170 0 c12 -8 +10 -10 -10 -10 -14 0 -32 5 -40 10 -12 8 -10 10 10 10 14 0 32 -5 40 -10z +m290 0 c11 -7 7 -10 -17 -10 -18 0 -33 5 -33 10 0 13 30 13 50 0z m420 0 c0 +-5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z m100 +-11 c0 -4 -7 -6 -15 -3 -8 4 -15 10 -15 15 0 4 7 6 15 3 8 -4 15 -10 15 -15z +m640 16 c0 -2 -22 -16 -50 -30 -27 -14 -50 -23 -50 -20 0 2 21 16 48 29 53 28 +52 28 52 21z m-6530 -15 c13 -9 13 -10 0 -10 -8 0 -22 5 -30 10 -13 9 -13 10 +0 10 8 0 22 -5 30 -10z m375 0 c17 -7 15 -9 -12 -9 -18 -1 -33 4 -33 9 0 12 +17 12 45 0z m4862 4 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m273 -4 c0 -5 -7 -10 -15 -10 -8 0 -15 5 -15 10 0 6 7 10 15 10 8 0 15 -4 15 +-10z m120 0 c12 -8 12 -10 -5 -10 -11 0 -27 5 -35 10 -12 8 -12 10 5 10 11 0 +27 -5 35 -10z m90 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 +4 -4 4 -10z m-5898 -29 l32 -28 -55 -18 c-115 -37 -340 -130 -460 -191 -312 +-156 -578 -339 -844 -582 l-119 -110 -71 20 c-38 11 -71 21 -73 23 -4 4 154 +148 253 229 267 222 628 435 945 562 90 35 336 122 352 123 4 1 22 -12 40 -28z +m379 15 c27 -11 30 -16 17 -21 -15 -6 -78 19 -78 30 0 9 28 5 61 -9z m4669 -2 +c0 -2 -14 -4 -31 -4 -16 0 -28 4 -25 9 5 8 56 3 56 -5z m159 0 c2 -2 -10 -4 +-27 -4 -18 0 -32 5 -32 10 0 9 47 4 59 -6z m121 6 c0 -5 -9 -10 -21 -10 -11 0 +-17 5 -14 10 3 6 13 10 21 10 8 0 14 -4 14 -10z m169 -6 c2 -2 2 -6 -1 -9 -9 +-10 -58 6 -52 16 5 9 41 3 53 -7z m521 6 c13 -8 13 -10 -2 -10 -9 0 -20 5 -23 +10 -8 13 5 13 25 0z m140 0 c0 -5 -7 -7 -15 -4 -8 4 -15 8 -15 10 0 2 7 4 15 +4 8 0 15 -4 15 -10z m-5837 -22 c29 -15 37 -23 25 -26 -18 -3 -73 21 -83 38 +-10 16 13 12 58 -12z m5284 16 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 +13 -5z m141 -1 c16 -4 20 -8 12 -13 -15 -9 -50 -1 -50 11 0 11 7 11 38 2z +m382 -9 c0 -2 -7 -4 -15 -4 -8 0 -15 4 -15 10 0 5 7 7 15 4 8 -4 15 -8 15 -10z +m-5643 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m166 -16 c16 +-6 25 -14 20 -19 -11 -11 -94 21 -87 33 3 5 13 6 23 3 9 -4 29 -12 44 -17z +m5217 12 c0 -13 -11 -13 -30 0 -12 8 -11 10 8 10 12 0 22 -4 22 -10z m110 0 +c12 -8 11 -10 -7 -10 -13 0 -23 5 -23 10 0 13 11 13 30 0z m-5716 -17 c19 -9 +33 -20 30 -25 -3 -4 -23 1 -45 12 -61 32 -48 43 15 13z m4886 7 c0 -11 -14 +-11 -50 0 -22 7 -21 8 13 9 20 1 37 -3 37 -9z m145 0 c7 -11 -9 -11 -45 0 -24 +8 -24 8 7 9 17 1 35 -3 38 -9z m140 0 c8 -13 -25 -13 -45 0 -12 8 -9 10 12 10 +15 0 30 -4 33 -10z m130 0 c3 -5 -3 -10 -14 -10 -11 0 -23 5 -26 10 -3 6 3 10 +14 10 11 0 23 -4 26 -10z m138 -11 c-5 -5 -19 -6 -32 -2 -15 4 -19 8 -11 13 +16 10 54 0 43 -11z m382 11 c3 -5 -1 -10 -9 -10 -8 0 -18 5 -21 10 -3 6 1 10 +9 10 8 0 18 -4 21 -10z m-5874 -21 c23 -11 39 -23 36 -25 -5 -6 -87 33 -87 41 +0 9 10 6 51 -16z m365 4 c31 -13 35 -18 19 -20 -20 -4 -95 22 -95 32 0 10 39 +4 76 -12z m5249 7 c3 -5 -3 -10 -14 -10 -11 0 -23 5 -26 10 -3 6 3 10 14 10 +11 0 23 -4 26 -10z m110 -11 c-3 -4 -12 -6 -20 -3 -8 4 -13 10 -10 15 3 4 12 +6 20 3 8 -4 13 -10 10 -15z m655 11 c-8 -5 -19 -10 -25 -10 -5 0 -3 5 5 10 8 +5 20 10 25 10 6 0 3 -5 -5 -10z m-6087 -20 c37 -14 49 -30 22 -30 -24 0 -85 +33 -79 42 3 5 9 8 12 6 4 -2 24 -10 45 -18z m1393 -3 l27 -24 -94 -6 c-237 +-16 -484 -122 -657 -281 -46 -44 -63 -54 -82 -49 -22 6 -22 6 6 18 l29 12 -50 +8 c-69 10 -85 20 -49 30 l29 8 -38 11 -38 12 64 46 c122 90 272 161 422 199 +105 27 178 36 302 38 93 1 104 -1 129 -22z m3189 13 c3 -5 -1 -10 -9 -10 -8 0 +-18 5 -21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m145 0 c12 -8 12 -10 -5 -10 +-11 0 -27 5 -35 10 -12 8 -12 10 5 10 11 0 27 -5 35 -10z m145 0 c18 -8 17 -9 +-7 -9 -15 -1 -30 4 -33 9 -7 12 12 12 40 0z m143 0 c14 0 14 -2 3 -9 -16 -10 +-51 -3 -51 11 0 6 7 7 16 4 9 -3 23 -6 32 -6z m527 0 c3 -5 -1 -10 -9 -10 -8 +0 -18 5 -21 10 -3 6 1 10 9 10 8 0 18 -4 21 -10z m-395 -10 c0 -13 -20 -13 +-40 0 -12 8 -9 10 13 10 15 0 27 -4 27 -10z m120 0 c12 -8 9 -10 -12 -10 -16 +0 -28 5 -28 10 0 13 20 13 40 0z m-5682 -28 l34 -28 -104 -38 c-425 -157 -854 +-426 -1169 -733 l-106 -103 -76 17 c-42 9 -77 20 -77 24 0 13 241 225 347 307 +219 168 495 332 737 438 107 47 358 142 376 143 3 0 20 -12 38 -27z m108 0 +c-4 -3 -14 2 -24 12 -16 18 -16 18 6 6 13 -6 21 -14 18 -18z m244 9 c23 -10 +36 -21 29 -23 -17 -6 -89 22 -89 34 0 12 14 10 60 -11z m4730 9 c13 -9 13 -10 +0 -9 -8 0 -24 4 -35 9 l-20 9 20 0 c11 0 27 -4 35 -9z m720 0 c0 -13 -11 -13 +-30 0 -12 8 -11 10 8 10 12 0 22 -4 22 -10z m105 0 c3 -5 -3 -10 -14 -10 -12 +0 -21 5 -21 10 0 6 6 10 14 10 8 0 18 -4 21 -10z m-672 -7 c-7 -2 -19 -2 -25 +0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m137 -3 c0 -12 -8 -12 -35 0 -18 8 -17 9 +8 9 15 1 27 -3 27 -9z m135 0 c3 -5 -3 -10 -14 -10 -12 0 -21 5 -21 10 0 6 6 +10 14 10 8 0 18 -4 21 -10z m120 0 c17 -7 14 -9 -13 -9 -20 -1 -31 3 -27 9 7 +12 13 12 40 0z m375 0 c0 -5 -7 -7 -15 -4 -8 4 -15 8 -15 10 0 2 7 4 15 4 8 0 +15 -4 15 -10z m85 0 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 +8 -4 11 -10z m-5515 -4 c0 -2 -7 -6 -15 -10 -8 -3 -15 -1 -15 4 0 6 7 10 15 +10 8 0 15 -2 15 -4z m4455 -6 l20 -9 -20 0 c-11 0 -27 4 -35 9 -13 9 -13 10 0 +9 8 0 24 -4 35 -9z m725 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 +10 2 0 4 -4 4 -10z m105 0 c3 -5 -3 -10 -14 -10 -12 0 -21 5 -21 10 0 6 6 10 +14 10 8 0 18 -4 21 -10z m315 0 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 +10 4 10 6 0 11 -4 11 -10z m-5970 -10 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 +-3 6 -1 10 4 10 6 0 11 -4 11 -10z m110 -5 c22 -13 23 -14 5 -14 -11 0 -31 6 +-45 14 -22 13 -23 14 -5 14 11 0 31 -6 45 -14z m320 0 c24 -14 24 -14 3 -15 +-30 0 -54 10 -47 21 7 12 14 11 44 -6z m4330 -1 c23 -7 24 -7 5 -14 -16 -6 +-17 -9 -5 -13 54 -18 56 -20 37 -24 -17 -4 -17 -6 -2 -17 14 -10 -2 -22 -107 +-83 -291 -169 -613 -276 -944 -314 -99 -11 -102 -11 -133 12 l-31 23 132 22 +c333 57 654 187 922 375 39 27 77 47 85 45 9 -3 27 -8 41 -12z m355 6 c7 -12 +-12 -12 -40 0 -18 8 -17 9 7 9 15 1 30 -3 33 -9z m257 -12 c-10 -10 -44 0 -37 +12 3 5 14 6 26 3 12 -3 17 -9 11 -15z m388 18 c0 -11 -19 -15 -25 -6 -3 5 1 +10 9 10 9 0 16 -2 16 -4z m90 -6 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 +5 10 10 10 6 0 10 -4 10 -10z m-5880 -21 c0 -4 -7 -6 -15 -3 -8 4 -15 10 -15 +15 0 4 7 6 15 3 8 -4 15 -10 15 -15z m350 11 c0 -13 -30 -13 -50 0 -11 7 -7 +10 18 10 17 0 32 -4 32 -10z m4580 0 c13 -8 13 -10 -2 -10 -9 0 -20 5 -23 10 +-8 13 5 13 25 0z m580 6 c0 -11 -19 -15 -25 -6 -3 5 1 10 9 10 9 0 16 -2 16 +-4z m120 -6 c12 -8 11 -10 -7 -10 -13 0 -23 5 -23 10 0 13 11 13 30 0z m-5544 +-16 c17 -14 17 -15 1 -10 -10 3 -23 6 -28 6 -5 0 -9 5 -9 10 0 14 13 12 36 -6z +m207 -1 c17 -5 24 -23 8 -23 -19 0 -71 27 -64 33 4 4 14 5 22 1 9 -3 24 -9 34 +-11z m1428 -1 l22 -19 -65 -7 c-137 -14 -286 -66 -405 -142 -32 -20 -95 -73 +-140 -117 -70 -68 -81 -83 -70 -96 10 -12 9 -14 -6 -8 -10 4 -35 7 -55 7 -33 +0 -34 1 -17 14 18 13 16 15 -30 21 -67 9 -74 12 -46 21 l23 7 -22 12 c-22 12 +-21 13 39 66 78 69 211 150 310 188 168 65 412 93 462 53z m3369 8 c0 -13 -20 +-13 -40 0 -12 8 -9 10 13 10 15 0 27 -4 27 -10z m112 -2 c-9 -9 -15 -9 -24 0 +-9 9 -7 12 12 12 19 0 21 -3 12 -12z m533 2 c-3 -5 -12 -7 -20 -3 -21 7 -19 +13 6 13 11 0 18 -4 14 -10z m-5335 -10 c0 -5 -7 -10 -15 -10 -8 0 -15 5 -15 +10 0 6 7 10 15 10 8 0 15 -4 15 -10z m4485 0 c13 -6 15 -9 5 -9 -8 0 -22 4 +-30 9 -18 12 -2 12 25 0z m458 -1 c-8 -8 -16 -8 -30 0 -16 9 -14 10 12 11 21 +0 26 -3 18 -11z m122 1 c3 -5 -3 -10 -14 -10 -12 0 -21 5 -21 10 0 6 6 10 14 +10 8 0 18 -4 21 -10z m125 -6 c0 -2 -12 -4 -27 -4 -21 0 -24 3 -14 9 13 8 41 +5 41 -5z m-5672 -20 l34 -27 -108 -43 c-394 -158 -773 -404 -1077 -702 l-99 +-96 -76 13 c-43 7 -79 15 -82 18 -6 6 106 111 230 217 310 264 642 459 1035 +607 55 21 102 38 104 38 2 1 20 -11 39 -25z m317 7 c32 -16 36 -20 17 -20 -22 +-1 -82 24 -82 34 0 10 26 4 65 -14z m4795 10 c0 -5 -9 -7 -20 -4 -11 3 -20 7 +-20 9 0 2 9 4 20 4 11 0 20 -4 20 -9z m130 -1 c12 -8 11 -10 -7 -10 -12 0 -25 +5 -28 10 -8 13 15 13 35 0z m525 0 c-3 -5 -12 -7 -20 -3 -21 7 -19 13 6 13 11 +0 18 -4 14 -10z m195 0 c0 -5 -7 -10 -16 -10 -8 0 -12 5 -9 10 3 6 10 10 16 +10 5 0 9 -4 9 -10z m-590 -10 c0 -13 -11 -13 -30 0 -12 8 -11 10 8 10 12 0 22 +-4 22 -10z m120 0 c12 -8 11 -10 -7 -10 -12 0 -25 5 -28 10 -8 13 15 13 35 0z +m-5234 -16 c22 -9 34 -19 27 -21 -6 -2 -29 5 -50 16 -46 24 -31 27 23 5z m329 +1 l30 -13 -30 -1 c-16 0 -43 6 -60 14 l-30 13 30 1 c17 0 44 -6 60 -14z m4468 +8 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m132 -3 c8 -13 -15 +-13 -35 0 -12 8 -11 10 7 10 12 0 25 -4 28 -10z m418 3 c-7 -2 -19 -2 -25 0 +-7 3 -2 5 12 5 14 0 19 -2 13 -5z m109 -5 c-9 -9 -15 -9 -24 0 -9 9 -7 12 12 +12 19 0 21 -3 12 -12z m103 2 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 +10 16 10 8 0 12 -4 9 -10z m95 0 c0 -5 -7 -10 -16 -10 -8 0 -12 5 -9 10 3 6 +10 10 16 10 5 0 9 -4 9 -10z m80 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 +8 10 11 10 2 0 4 -4 4 -10z m-5789 -21 c23 -11 39 -23 36 -25 -5 -6 -87 33 +-87 41 0 9 10 6 51 -16z m304 1 c25 -12 33 -19 21 -19 -30 -1 -96 21 -90 30 7 +13 24 10 69 -11z m4808 13 c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 +-5z m122 -3 c3 -5 -1 -10 -9 -10 -8 0 -18 5 -21 10 -3 6 1 10 9 10 8 0 18 -4 +21 -10z m-3550 -14 c18 -13 17 -15 -20 -21 -176 -28 -350 -125 -465 -259 l-42 +-50 55 -28 c62 -31 186 -68 232 -69 28 0 28 -1 7 -9 -24 -10 -154 2 -232 21 +-105 26 -250 90 -250 110 0 32 170 168 280 224 153 77 382 120 435 81z m3245 +5 c0 -5 -9 -7 -20 -4 -11 3 -20 7 -20 9 0 2 9 4 20 4 11 0 20 -4 20 -9z m530 +-1 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 6 1 10 9 10 9 0 16 -4 16 -10z +m105 0 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 10 16 10 8 0 12 -4 9 +-10z m95 0 c0 -5 -7 -10 -16 -10 -8 0 -12 5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 +-10z m90 6 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 +10 -4z m-5504 -26 c15 -6 24 -13 21 -17 -9 -9 -97 18 -97 29 0 10 29 6 76 -12z +m4934 10 c0 -13 -11 -13 -30 0 -12 8 -11 10 8 10 12 0 22 -4 22 -10z m100 0 +c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m-403 +-6 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m528 -4 c-3 -5 -12 +-7 -20 -3 -21 7 -19 13 6 13 11 0 18 -4 14 -10z m105 0 c0 -5 -4 -10 -9 -10 +-6 0 -13 5 -16 10 -3 6 1 10 9 10 9 0 16 -4 16 -10z m190 6 c0 -3 -4 -8 -10 +-11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m-5805 -30 l30 -24 +-25 -11 c-415 -174 -728 -376 -1048 -678 l-123 -115 -52 6 c-71 10 -97 17 -97 +27 0 4 61 63 135 131 240 218 492 392 765 529 132 66 345 157 370 158 8 1 29 +-10 45 -23z m4922 18 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m300 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m118 -4 c3 -5 +-1 -10 -9 -10 -9 0 -16 5 -16 10 0 6 4 10 9 10 6 0 13 -4 16 -10z m860 -16 +l30 -26 -35 23 c-45 29 -45 29 -34 29 5 0 23 -12 39 -26z m-5900 1 c29 -13 29 +-13 5 -14 -14 0 -36 6 -50 14 -22 13 -23 14 -5 14 11 0 34 -6 50 -14z m210 5 +c-3 -5 -12 -10 -20 -10 -8 0 -17 5 -20 10 -4 6 5 10 20 10 15 0 24 -4 20 -10z +m4354 3 c23 -6 23 -7 5 -14 -17 -6 -16 -8 11 -18 22 -9 26 -14 16 -20 -10 -7 +-8 -10 8 -16 l22 -7 -21 -18 c-12 -11 -61 -39 -108 -64 -282 -145 -598 -236 +-923 -267 -126 -11 -127 -11 -158 12 -28 21 -30 24 -14 31 10 3 35 7 55 7 55 +1 291 47 393 76 197 57 428 157 595 258 81 49 83 50 119 40z m188 1 c-3 -3 +-12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m123 -10 c0 -2 -7 -4 -15 -4 +-8 0 -15 4 -15 10 0 5 7 7 15 4 8 -4 15 -8 15 -10z m277 10 c-3 -3 -12 -4 -19 +-1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m108 -4 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 +-9 10 0 6 7 10 16 10 8 0 12 -4 9 -10z m95 6 c0 -3 -4 -8 -10 -11 -5 -3 -10 +-1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m100 0 c0 -3 -4 -8 -10 -11 -5 -3 +-10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m413 -21 c20 -14 37 -28 37 -31 +0 -6 -49 20 -75 40 -33 25 -2 18 38 -9z m-1168 -3 c-3 -3 -11 0 -18 7 -9 10 +-8 11 6 5 10 -3 15 -9 12 -12z m285 8 c0 -5 -7 -7 -15 -4 -8 4 -15 8 -15 10 0 +2 7 4 15 4 8 0 15 -4 15 -10z m847 -20 c60 -35 54 -47 -7 -13 -27 15 -50 32 +-50 36 0 10 3 9 57 -23z m-5917 -25 c0 -3 -18 4 -40 15 -22 11 -40 23 -40 25 +0 3 18 -4 40 -15 22 -11 40 -23 40 -25z m46 24 c3 -5 1 -9 -5 -9 -17 0 -41 12 +-41 20 0 10 38 1 46 -11z m198 12 c13 -5 16 -10 8 -15 -6 -3 -26 0 -44 8 -30 +13 -31 14 -8 14 14 1 34 -3 44 -7z m107 0 c-8 -5 -20 -7 -28 -4 -21 8 -15 13 +15 13 20 0 23 -3 13 -9z m4554 -1 c8 -13 -5 -13 -25 0 -13 8 -13 10 2 10 9 0 +20 -4 23 -10z m282 4 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m100 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m103 2 c0 -3 -4 +-8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m-373 -12 c-3 +-3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m867 -25 c27 -16 46 -32 43 +-35 -6 -7 -107 48 -107 59 0 13 15 7 64 -24z m-5695 8 c17 -7 29 -16 25 -19 +-6 -6 -94 20 -94 28 0 9 39 3 69 -9z m2642 -57 c106 -54 217 -144 290 -237 28 +-35 49 -69 46 -76 -7 -19 -169 -66 -267 -77 -95 -12 -178 -7 -290 17 -89 18 +-216 68 -224 89 -7 17 -14 18 79 -6 88 -23 226 -26 321 -9 82 15 214 67 214 +85 0 7 -30 45 -66 84 -68 71 -168 145 -236 173 -21 9 -38 18 -38 21 0 8 115 +-36 171 -64z m2134 60 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 +5 0 13 -4 16 -10z m272 4 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 +-5z m100 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-5463 -25 +c20 -12 36 -22 36 -24 0 -1 -82 -43 -182 -93 -304 -151 -585 -351 -803 -571 +l-100 -101 -50 1 c-27 0 -68 3 -89 7 l-39 7 108 103 c282 269 608 486 968 643 +62 27 113 49 114 49 1 0 18 -9 37 -21z m5972 -10 c30 -17 54 -35 54 -40 0 -9 +-101 42 -124 63 -23 19 20 6 70 -23z m-5715 9 c22 -6 39 -15 39 -20 0 -10 -24 +-4 -74 18 -38 16 -17 18 35 2z m259 -4 l35 -14 -50 5 c-27 3 -54 10 -59 15 +-15 15 33 11 74 -6z m4527 10 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 +13 -5z m953 -76 c0 -14 -13 -9 -83 30 -37 21 -64 41 -61 45 8 7 144 -64 144 +-75z m201 65 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z +m-1044 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m1058 -41 c36 +-25 63 -48 61 -50 -4 -4 -136 86 -136 93 0 9 13 2 75 -43z m-5766 23 c24 -7 +40 -16 34 -19 -11 -7 -83 10 -97 24 -14 13 11 11 63 -5z m5446 -28 c64 -36 91 +-58 70 -58 -15 0 -164 88 -158 93 9 10 6 11 88 -35z m-5654 14 c-7 -2 -18 1 +-23 6 -8 8 -4 9 13 5 13 -4 18 -8 10 -11z m364 8 c-3 -5 -14 -10 -23 -10 -15 +0 -15 2 -2 10 20 13 33 13 25 0z m2471 -37 c87 -45 213 -143 279 -216 56 -62 +135 -172 135 -188 0 -12 -151 -56 -243 -70 -102 -16 -298 -6 -402 20 -105 26 +-252 88 -270 114 -8 11 -13 22 -12 24 2 1 27 -7 56 -18 148 -56 377 -69 526 +-30 100 26 185 60 185 74 0 17 -77 113 -138 174 -31 31 -91 78 -132 105 -108 +71 -104 73 16 11z m3115 0 c38 -25 67 -49 64 -51 -4 -4 -145 88 -145 95 0 9 +19 -1 81 -44z m-9880 20 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 +-13z m4085 1 c13 -3 24 -11 24 -16 0 -6 -7 -7 -16 -4 -9 3 -27 9 -40 12 -13 3 +-24 11 -24 16 0 6 7 7 16 4 9 -3 27 -9 40 -12z m-292 -15 c20 -12 36 -23 36 +-25 0 -2 -33 -19 -73 -37 -266 -123 -580 -345 -816 -577 l-115 -112 -78 7 +c-43 4 -78 11 -78 15 0 9 111 115 225 215 216 190 476 358 741 480 66 30 120 +55 121 55 1 0 18 -9 37 -21z m4748 12 c-11 -7 -10 -9 3 -15 9 -3 13 -10 10 +-16 -3 -5 1 -10 9 -10 9 0 15 -3 14 -7 -1 -5 4 -19 11 -31 7 -13 11 -25 9 -27 +-12 -11 -143 -71 -227 -105 -260 -103 -630 -180 -869 -180 -64 0 -78 3 -103 +24 l-29 24 68 7 c356 33 648 114 935 260 142 72 211 103 169 76z m1016 -33 +c42 -23 71 -43 65 -45 -12 -4 -115 45 -148 71 -40 31 8 16 83 -26z m303 -10 +c86 -60 72 -68 -16 -8 -72 48 -94 69 -59 56 9 -3 43 -25 75 -48z m-5861 32 +c13 -8 13 -10 -2 -10 -9 0 -20 5 -23 10 -8 13 5 13 25 0z m260 0 c0 -13 -30 +-13 -50 0 -11 7 -7 10 18 10 17 0 32 -4 32 -10z m-4135 -20 c10 -11 16 -20 13 +-20 -3 0 -13 9 -23 20 -10 11 -16 20 -13 20 3 0 13 -9 23 -20z m4175 10 c0 -5 +-5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m5290 -81 c0 +-5 -2 -9 -5 -9 -15 0 -164 88 -159 93 8 8 164 -72 164 -84z m230 45 c39 -26 +70 -51 70 -57 0 -5 -12 -1 -27 9 -16 9 -49 31 -75 48 -42 27 -59 46 -43 46 3 +0 37 -21 75 -46z m-9710 -31 c0 -7 -56 35 -71 54 -8 9 5 2 29 -17 23 -18 42 +-35 42 -37z m20 20 c0 -8 -38 17 -51 33 -9 11 -2 9 19 -6 17 -13 32 -25 32 +-27z m4095 25 c7 -7 -2 -8 -30 -3 -22 3 -44 11 -50 17 -7 7 2 8 30 3 22 -3 45 +-11 50 -17z m5145 12 c0 -5 -7 -7 -15 -4 -8 4 -15 8 -15 10 0 2 7 4 15 4 8 0 +15 -4 15 -10z m-44 -15 c10 -8 14 -15 7 -15 -19 0 -43 11 -43 21 0 13 14 11 +36 -6z m-9295 -12 c13 -16 12 -17 -3 -4 -17 13 -22 21 -14 21 2 0 10 -8 17 +-17z m4117 4 c23 -7 40 -16 37 -19 -7 -6 -80 13 -91 25 -11 10 5 9 54 -6z +m5329 -24 c81 -43 78 -41 70 -49 -6 -6 -132 58 -151 77 -22 20 17 7 81 -28z +m314 -4 c76 -49 74 -47 66 -55 -3 -3 -41 17 -84 45 -43 28 -71 51 -62 51 9 0 +45 -19 80 -41z m-5886 12 l36 -19 -118 -62 c-241 -126 -451 -280 -662 -485 +l-136 -132 -77 5 c-43 2 -78 8 -78 12 0 13 187 187 303 282 151 123 335 243 +517 337 85 44 161 81 168 81 6 0 28 -9 47 -19z m460 -2 l20 -8 -20 0 c-40 -1 +-94 12 -89 21 6 9 51 3 89 -13z m4921 6 c26 -19 -1 -20 -36 0 -23 13 -23 14 +-4 15 11 0 29 -7 40 -15z m-9055 -12 c13 -16 12 -17 -3 -4 -17 13 -22 21 -14 +21 2 0 10 -8 17 -17z m3844 7 c3 -6 -1 -7 -9 -4 -18 7 -21 14 -7 14 6 0 13 -4 +16 -10z m5165 -10 c19 -11 29 -19 22 -20 -16 0 -82 27 -82 34 0 11 25 5 60 +-14z m275 -68 c-8 -9 -165 70 -159 80 3 5 41 -10 85 -33 44 -23 77 -44 74 -47z +m245 41 c40 -26 69 -48 63 -50 -11 -4 -152 78 -153 90 0 14 17 6 90 -40z m320 +-30 c0 -7 -89 62 -90 70 0 5 20 -8 45 -29 25 -20 45 -38 45 -41z m-10005 47 +c10 -11 16 -20 13 -20 -3 0 -13 9 -23 20 -10 11 -16 20 -13 20 3 0 13 -9 23 +-20z m171 -32 c4 -7 -9 1 -29 16 -20 16 -37 30 -37 33 0 7 58 -36 66 -49z +m-11 -26 c-4 -4 -85 56 -85 64 0 2 20 -11 45 -28 25 -17 43 -34 40 -36z m4073 +58 c7 0 11 -4 8 -9 -7 -11 -54 -2 -63 12 -4 6 2 8 18 4 13 -4 30 -7 37 -7z +m4892 -10 c19 -11 28 -19 20 -19 -8 0 -31 8 -50 19 -19 11 -28 19 -20 19 8 0 +31 -8 50 -19z m836 -31 c72 -57 86 -76 22 -30 -65 47 -104 80 -94 81 4 0 37 +-23 72 -51z m-866 10 c19 -10 28 -18 20 -18 -8 0 -35 11 -60 25 -50 28 -15 22 +40 -7z m241 -5 c96 -51 87 -63 -11 -14 -44 22 -80 42 -80 45 0 12 27 3 91 -31z +m317 -6 c82 -51 77 -47 69 -54 -6 -6 -143 72 -153 87 -12 19 20 7 84 -33z +m-9513 -36 c-4 -5 -85 56 -85 64 0 3 20 -9 45 -27 25 -18 43 -34 40 -37z +m3794 49 l34 -18 -94 -53 c-224 -126 -425 -278 -606 -459 l-111 -111 -81 -7 +c-53 -4 -81 -2 -81 4 0 6 58 67 129 135 136 132 297 259 454 357 105 67 296 +171 312 170 6 0 25 -8 44 -18z m246 -2 c11 -11 -35 -3 -70 13 -13 5 -7 6 20 2 +22 -3 45 -10 50 -15z m164 5 c10 -9 -6 -11 -36 -7 -18 3 -33 9 -33 14 0 8 59 +1 69 -7z m4696 -14 c33 -15 53 -28 45 -29 -8 0 -40 13 -70 29 -71 37 -53 38 +25 0z m927 -44 c21 -16 36 -31 34 -33 -6 -6 -130 86 -135 100 -4 11 38 -17 +101 -67z m-3056 36 c-4 -3 -14 2 -24 12 -16 18 -16 18 6 6 13 -6 21 -14 18 +-18z m2063 2 c14 -12 -19 -1 -35 12 -18 14 -18 14 6 3 14 -6 27 -13 29 -15z +m309 -3 c60 -31 103 -60 88 -61 -10 0 -156 80 -156 86 0 8 11 4 68 -25z m330 +-13 c82 -51 77 -47 70 -54 -7 -6 -157 78 -158 89 0 15 22 6 88 -35z m-9524 -6 +c16 -12 25 -22 20 -22 -5 0 -23 13 -39 28 -34 30 -25 27 19 -6z m8511 -27 c25 +-9 45 -20 45 -25 0 -5 -57 -31 -127 -58 -326 -127 -597 -186 -921 -199 -161 +-6 -163 -6 -187 17 -14 13 -25 27 -25 30 0 4 51 10 114 14 328 20 652 102 966 +248 l75 35 8 -23 c5 -13 25 -28 52 -39z m1344 -12 c24 -18 39 -33 33 -33 -16 +0 -142 91 -142 102 0 10 30 -10 109 -69z m-5620 51 c10 -9 -56 -3 -69 7 -11 7 +-4 8 25 3 22 -4 42 -8 44 -10z m4936 -21 c41 -21 75 -41 75 -45 0 -5 -36 10 +-80 32 -70 35 -92 50 -75 50 2 0 38 -17 80 -37z m-9200 -3 c21 -16 34 -30 29 +-30 -10 1 -82 60 -72 60 3 0 22 -13 43 -30z m235 -36 c0 -3 -20 9 -45 26 -25 +17 -45 33 -45 36 0 3 20 -9 45 -26 25 -17 45 -33 45 -36z m8730 51 c17 -9 30 +-18 30 -21 0 -4 -59 23 -69 32 -10 9 13 3 39 -11z m562 -27 c39 -23 66 -44 59 +-46 -10 -3 -151 75 -151 84 0 12 29 0 92 -38z m-9272 -5 c0 -7 -39 17 -46 28 +-3 6 5 3 20 -6 14 -10 26 -19 26 -22z m3725 22 l37 -16 -109 -65 c-189 -113 +-370 -258 -533 -427 l-86 -88 -79 3 -80 3 102 101 c124 124 272 244 418 340 +100 66 271 163 286 164 4 0 23 -7 44 -15z m195 5 c20 -6 21 -8 5 -8 -11 0 -29 +3 -40 8 -25 11 1 11 35 0z m145 0 c3 -6 -1 -7 -9 -4 -18 7 -21 14 -7 14 6 0 +13 -4 16 -10z m4850 -27 c41 -21 75 -41 75 -45 0 -5 -36 10 -80 32 -70 35 -92 +50 -75 50 2 0 38 -17 80 -37z m655 -10 c38 -26 66 -51 64 -55 -3 -4 -37 16 +-77 44 -87 61 -83 58 -68 58 7 0 43 -21 81 -47z m-9610 -29 c0 -8 -33 13 -65 +41 -25 22 -23 22 18 -5 26 -17 47 -33 47 -36z m6708 41 c2 -2 -1 -6 -6 -9 -5 +-3 -18 4 -28 16 -19 21 -19 21 6 8 14 -7 26 -14 28 -15z m2563 -16 c38 -23 69 +-46 69 -51 0 -5 -3 -7 -7 -5 -51 28 -153 90 -153 93 0 12 29 0 91 -37z m-351 +-4 c37 -19 72 -39 75 -45 4 -6 -30 7 -74 30 -71 35 -93 50 -76 50 3 0 37 -16 +75 -35z m661 -17 c32 -22 59 -45 59 -50 0 -11 -4 -8 -87 50 -35 24 -63 46 -63 +49 0 10 32 -7 91 -49z m-9645 12 c44 -31 60 -50 27 -31 -29 16 -88 61 -79 61 +4 0 27 -14 52 -30z m4174 20 c11 -8 7 -9 -15 -4 -37 8 -45 14 -19 14 10 0 26 +-5 34 -10z m5121 -31 c61 -37 101 -68 71 -58 -27 10 -152 85 -152 92 0 12 9 8 +81 -34z m-5361 15 l40 -16 -88 -55 c-192 -120 -441 -337 -576 -501 -33 -41 +-63 -68 -76 -69 -11 -1 -18 2 -15 8 4 5 2 9 -4 9 -5 0 -22 11 -37 25 l-26 25 +50 58 c82 94 268 257 402 352 61 44 279 180 287 180 2 0 21 -7 43 -16z m486 1 +c18 -13 17 -14 -18 -15 -37 0 -51 13 -25 23 19 8 22 8 43 -8z m4544 -25 c41 +-21 71 -39 65 -39 -5 0 -44 18 -85 39 -41 21 -70 39 -65 39 6 0 44 -18 85 -39z +m639 -7 c36 -25 68 -48 70 -50 2 -1 2 -6 -1 -9 -7 -7 -148 86 -148 97 0 15 11 +10 79 -38z m-9623 5 c45 -32 58 -46 27 -29 -29 16 -87 61 -79 61 4 0 28 -14 +52 -32z m184 11 c17 -13 18 -17 5 -10 -33 17 -51 31 -40 31 6 0 21 -10 35 -21z +m9142 -48 c24 -14 41 -39 21 -29 -42 18 -143 82 -143 90 0 5 21 -3 48 -18 26 +-15 59 -35 74 -43z m-2466 18 c4 -8 3 -9 -4 -5 -7 4 -12 4 -12 -1 0 -4 19 -19 +41 -32 29 -16 38 -26 29 -31 -9 -6 0 -16 30 -36 36 -24 39 -29 24 -35 -11 -4 +-14 -8 -9 -9 6 0 26 -14 45 -31 19 -17 27 -28 18 -25 -28 8 -21 -4 20 -40 31 +-28 34 -33 17 -34 -20 -1 -20 -1 0 -16 27 -20 14 -27 -107 -53 -271 -58 -542 +-27 -784 88 -85 41 -144 85 -130 98 1 2 29 -9 62 -23 155 -69 397 -100 575 +-75 92 14 269 67 269 81 0 14 -96 153 -124 179 -14 14 -26 28 -26 33 0 11 56 +-18 66 -33z m3104 -45 c14 -15 -3 -4 -37 26 -35 29 -63 55 -63 57 0 8 74 -54 +100 -83z m-9985 44 c24 -17 43 -34 41 -36 -3 -2 -26 12 -52 32 -58 45 -51 47 +11 4z m202 2 c26 -16 43 -30 37 -30 -5 0 -29 14 -54 30 -59 39 -45 39 17 0z +m8388 -5 c43 -20 76 -37 74 -40 -11 -11 -237 -97 -324 -123 -308 -94 -547 +-132 -836 -132 l-165 0 -27 28 -28 29 148 6 c336 15 668 90 973 221 58 24 106 +45 106 45 1 1 36 -15 79 -34z m360 17 c-3 -3 -11 0 -18 7 -9 10 -8 11 6 5 10 +-3 15 -9 12 -12z m670 -29 c38 -25 64 -48 58 -50 -10 -4 -153 84 -153 93 0 13 +35 -2 95 -43z m364 -66 c2 -6 -25 13 -60 42 -35 29 -66 58 -68 64 -2 6 25 -13 +60 -42 35 -29 66 -58 68 -64z m-5877 84 c13 -5 -6 -22 -75 -68 -201 -136 -408 +-332 -554 -528 -42 -55 -81 -102 -87 -104 -6 -2 -4 4 4 14 14 17 13 18 -14 11 +-27 -7 -28 -6 -15 10 13 16 12 17 -14 12 -23 -5 -25 -3 -15 10 11 13 9 15 -13 +10 l-26 -5 18 31 c29 48 178 209 276 298 108 99 239 198 357 272 90 56 98 58 +158 37z m423 9 c4 -6 -5 -10 -20 -10 -15 0 -24 4 -20 10 3 6 12 10 20 10 8 0 +17 -4 20 -10z m4741 -26 c55 -31 86 -54 71 -54 -3 0 -40 20 -83 45 -44 25 -73 +45 -66 45 8 0 43 -16 78 -36z m-9251 -42 c-4 -4 -85 56 -85 64 0 2 20 -11 45 +-28 25 -17 43 -34 40 -36z m162 38 c24 -14 43 -28 43 -32 0 -4 -22 6 -50 23 +-27 17 -50 33 -50 36 0 6 6 3 57 -27z m78 12 c-3 -3 -11 0 -18 7 -9 10 -8 11 +6 5 10 -3 15 -9 12 -12z m8771 -20 c-5 -4 -66 26 -66 33 0 3 16 -3 35 -12 19 +-9 33 -18 31 -21z m257 -36 c9 -6 17 -14 17 -18 0 -9 -150 75 -150 85 0 7 60 +-24 133 -67z m298 23 c33 -22 58 -43 55 -46 -6 -7 -146 83 -146 93 0 10 28 -4 +91 -47z m339 -29 c25 -23 38 -38 30 -34 -24 13 -125 96 -129 107 -5 14 46 -23 +99 -73z m-4712 -4 c-55 -106 -78 -205 -78 -337 0 -59 5 -130 12 -158 10 -45 +14 -50 32 -45 48 14 162 90 229 152 53 50 65 58 47 32 -40 -59 -162 -180 -220 +-220 -91 -62 -201 -113 -214 -100 -7 7 -11 64 -11 163 0 125 4 166 22 232 47 +173 155 355 209 355 6 0 -6 -33 -28 -74z m-5015 5 c14 -18 -36 10 -74 41 -20 +16 -17 16 19 -3 24 -13 49 -30 55 -38z m4015 39 c9 -4 -18 -30 -80 -77 -227 +-171 -388 -343 -543 -575 -32 -49 -65 -88 -73 -88 -12 0 -12 2 -1 17 13 15 10 +16 -26 10 -35 -5 -38 -4 -22 7 25 19 21 23 -14 18 -25 -4 -30 -2 -23 9 5 8 9 +20 10 26 4 24 139 189 241 294 119 122 243 226 375 315 93 63 111 68 156 44z +m5047 -56 c36 -25 6 -14 -60 22 -36 20 -68 41 -72 47 -6 10 89 -40 132 -69z +m293 23 c34 -21 60 -43 57 -47 -6 -10 -145 78 -145 92 0 10 -1 11 88 -45z +m325 -7 c31 -25 57 -48 57 -53 0 -11 -15 -1 -83 53 -31 25 -57 48 -57 53 0 11 +15 1 83 -53z m-9503 24 c0 -2 -9 0 -20 6 -11 6 -20 13 -20 16 0 2 9 0 20 -6 +11 -6 20 -13 20 -16z m-215 -30 c14 -9 24 -19 21 -21 -5 -6 -96 55 -96 64 0 3 +11 -2 25 -11 14 -9 36 -23 50 -32z m189 20 c25 -14 46 -28 46 -30 0 -5 -64 28 +-90 45 -29 20 -2 11 44 -15z m4777 -34 c-55 -85 -100 -199 -123 -310 -16 -76 +-19 -118 -15 -215 3 -66 10 -132 14 -147 l8 -26 59 24 c33 13 60 23 62 21 1 +-1 -9 -15 -22 -32 -20 -25 -24 -27 -24 -10 0 16 -7 12 -41 -20 -23 -22 -39 +-32 -36 -22 10 26 -3 21 -45 -19 -33 -33 -36 -35 -31 -13 5 22 3 22 -30 -10 +-20 -19 -40 -31 -44 -27 -5 4 -8 76 -8 159 1 170 19 264 80 408 52 124 157 +283 193 292 39 11 40 4 3 -53z m4048 19 c39 -22 71 -43 71 -46 0 -5 -130 65 +-144 78 -21 19 5 7 73 -32z m401 -60 c0 -5 -33 13 -74 38 -41 26 -72 51 -70 +55 6 9 144 -81 144 -93z m278 36 c28 -21 52 -43 52 -48 0 -11 -12 -3 -82 50 +-32 24 -58 49 -58 54 0 11 3 9 88 -56z m-9510 11 c19 -10 32 -20 29 -23 -7 -6 +-94 45 -104 60 -4 7 4 5 17 -4 14 -9 40 -24 58 -33z m3991 28 c2 -2 2 -5 0 -7 +-108 -75 -297 -251 -394 -367 -75 -91 -177 -239 -231 -337 -21 -40 -45 -73 +-53 -73 -11 0 -9 5 5 21 19 22 19 22 -6 15 -71 -21 -67 -21 -46 3 21 23 16 25 +-32 11 -30 -8 -32 -7 -21 6 7 9 14 22 15 29 1 7 21 42 45 77 155 229 335 416 +557 575 78 56 91 62 122 56 19 -3 37 -7 39 -9z m-4174 -63 c-6 -5 -71 37 -86 +56 -8 9 9 1 38 -18 28 -19 50 -36 48 -38z m4905 63 c0 -3 -20 -34 -45 -69 -63 +-87 -129 -231 -161 -350 -23 -86 -27 -122 -29 -259 l-2 -158 -32 -25 -31 -25 +10 27 c9 23 8 25 -8 16 -10 -6 -25 -17 -32 -26 -7 -9 -22 -20 -32 -26 -16 -8 +-17 -7 -8 15 7 20 6 24 -5 19 -12 -4 -15 5 -15 43 0 68 25 224 50 314 60 215 +248 502 333 509 4 1 7 -2 7 -5z m3714 -106 c-94 -40 -316 -114 -417 -138 -267 +-65 -395 -81 -685 -87 l-253 -5 -30 28 c-16 15 -29 31 -29 36 0 4 66 8 148 8 +224 0 414 24 651 81 138 34 348 105 455 154 l71 32 79 -40 80 -39 -70 -30z +m718 48 c26 -17 48 -35 48 -40 0 -4 -10 -2 -22 6 -13 9 -47 30 -75 47 -29 18 +-53 37 -53 43 0 6 12 2 28 -8 15 -9 48 -31 74 -48z m-9147 -14 c-5 -6 -105 52 +-105 60 0 4 24 -7 54 -25 30 -18 53 -34 51 -35z m4094 52 c2 -2 -9 -14 -25 +-26 -216 -169 -410 -407 -541 -664 -47 -90 -56 -101 -87 -111 -40 -12 -44 -8 +-19 19 15 17 14 17 -31 4 -45 -14 -47 -14 -32 3 18 20 21 36 6 26 -48 -30 113 +228 236 375 79 96 248 258 344 332 67 51 79 56 110 51 19 -3 37 -7 39 -9z +m4711 -20 c0 -2 -13 2 -30 11 -16 9 -30 18 -30 21 0 2 14 -2 30 -11 17 -9 30 +-18 30 -21z m654 -11 c34 -26 63 -48 65 -50 2 -2 2 -6 -2 -9 -3 -3 -34 15 -69 +42 -82 62 -85 64 -68 64 8 0 41 -21 74 -47z m-9674 -29 c0 -9 -61 30 -78 50 +-9 11 4 5 31 -13 26 -17 47 -34 47 -37z m4802 19 c-168 -202 -281 -509 -282 +-768 -1 -52 -4 -62 -25 -78 l-25 -18 10 26 c12 32 8 32 -46 -5 l-44 -31 10 26 +c9 24 -2 36 -15 15 -14 -22 -23 -8 -19 28 30 219 103 432 202 586 71 111 187 +246 222 259 48 18 52 7 12 -40z m-4466 21 c18 -14 18 -14 -6 -3 -31 14 -36 19 +-24 19 6 0 19 -7 30 -16z m4084 11 c0 -2 -21 -24 -47 -47 -211 -187 -392 -441 +-493 -693 -27 -68 -50 -110 -63 -117 -21 -11 -21 -11 -4 16 20 30 14 32 -37 +11 -40 -17 -45 -12 -18 18 13 16 14 19 2 15 -64 -23 -62 -25 -31 44 121 265 +332 535 559 713 44 35 65 45 95 45 20 0 37 -2 37 -5z m273 -52 c-193 -226 +-308 -480 -342 -757 -5 -43 -15 -83 -21 -90 -9 -8 -10 -4 -4 18 l7 28 -42 -27 +c-39 -27 -68 -28 -43 -3 24 24 11 29 -23 8 -41 -25 -41 -23 -20 70 64 273 195 +519 389 727 63 67 75 75 134 82 8 0 -8 -25 -35 -56z m4622 12 c39 -25 64 -45 +57 -45 -12 0 -142 78 -142 86 0 10 20 0 85 -41z m329 -6 c37 -28 65 -53 62 +-56 -6 -7 -63 31 -116 76 -58 50 -18 35 54 -20z m-9669 -22 c6 -6 -5 -1 -23 9 +-18 10 -41 28 -50 38 -15 18 47 -23 73 -47z m171 37 c49 -29 73 -54 28 -30 +-42 22 -90 56 -81 56 5 0 28 -12 53 -26z m4300 -61 c-105 -104 -186 -210 -263 +-340 -59 -100 -143 -294 -164 -376 -9 -36 -19 -51 -40 -62 -39 -21 -44 -19 +-25 10 l17 26 -38 -17 c-72 -30 -69 -30 -49 1 17 26 17 28 1 21 -26 -9 -14 28 +51 163 117 246 253 431 433 588 74 65 88 73 124 73 l40 0 -87 -87z m104 -5 +c-177 -202 -291 -417 -355 -672 -21 -86 -25 -92 -61 -113 -50 -29 -58 -29 -38 +2 20 30 15 31 -38 4 -38 -19 -40 -20 -34 -2 4 10 9 29 11 43 6 45 67 203 112 +295 61 121 134 232 226 341 107 128 183 193 225 194 l33 0 -81 -92z m-4209 55 +c27 -14 47 -28 45 -30 -2 -3 -28 9 -58 26 -65 38 -55 41 13 4z m8738 1 c14 +-12 -19 -1 -35 12 -18 14 -18 14 6 3 14 -6 27 -13 29 -15z m198 -15 c35 -23 +62 -44 60 -46 -5 -4 -137 76 -137 83 0 10 18 1 77 -37z m326 -6 c34 -25 64 +-48 66 -50 2 -2 2 -6 -1 -9 -7 -6 -131 82 -136 97 -7 17 10 9 71 -38z m387 +-61 c0 -10 -41 23 -80 64 l-45 47 63 -54 c34 -29 62 -55 62 -57z m-9861 66 +c28 -17 49 -33 46 -36 -4 -5 -105 56 -105 64 0 8 9 3 59 -28z m9159 -46 c15 +-13 20 -20 12 -16 -31 16 -140 86 -140 90 0 8 99 -49 128 -74z m-8962 37 c72 +-41 69 -47 -6 -9 -54 27 -71 40 -54 40 4 0 31 -14 60 -31z m9240 -15 c64 -46 +91 -73 62 -61 -24 9 -137 91 -137 100 -1 13 10 7 75 -39z m349 -9 c33 -30 56 +-54 50 -54 -5 0 -37 24 -69 54 -33 30 -55 55 -50 55 5 -1 36 -25 69 -55z +m-9813 14 c27 -17 47 -33 45 -36 -4 -4 -107 57 -107 63 0 9 17 2 62 -27z m383 +13 c-3 -3 -11 0 -18 7 -9 10 -8 11 6 5 10 -3 15 -9 12 -12z m8730 -27 c39 -25 +66 -45 60 -45 -5 0 -41 21 -80 45 -38 25 -65 45 -60 45 6 0 42 -21 80 -45z +m-8859 -32 c-5 -6 -75 30 -101 52 -11 9 8 2 43 -16 34 -18 60 -34 58 -36z +m9186 13 c32 -23 58 -45 58 -49 0 -10 -8 -5 -82 47 -32 22 -58 44 -58 49 0 10 +10 5 82 -47z m348 -1 c32 -28 57 -51 55 -53 -5 -5 -33 15 -91 67 -67 59 -36 +48 36 -14z m-9810 13 c27 -18 50 -36 50 -40 0 -8 -98 51 -106 64 -9 15 6 8 56 +-24z m446 -16 c-5 -4 -86 36 -86 43 0 3 20 -5 45 -17 24 -12 43 -23 41 -26z +m8287 12 c34 -20 64 -38 66 -40 12 -11 -272 -111 -454 -159 -293 -78 -677 +-118 -943 -98 -131 9 -134 10 -157 39 l-23 29 241 6 c276 7 444 29 667 85 149 +37 318 93 435 143 39 16 78 30 88 30 10 1 46 -15 80 -35z m372 -5 c36 -22 65 +-43 65 -45 0 -6 -1 -5 -85 48 -33 21 -57 38 -52 38 4 0 37 -18 72 -41z m-8887 +-13 c19 -10 32 -20 29 -23 -7 -7 -107 50 -107 61 0 4 10 2 23 -6 12 -8 37 -23 +55 -32z m9271 -53 c2 -1 2 -6 -1 -9 -7 -7 -138 86 -138 99 0 6 97 -56 139 -90z +m291 46 c33 -28 59 -54 56 -57 -5 -4 -136 97 -136 105 0 12 27 -4 80 -48z +m-9320 -24 c0 -3 -27 8 -60 25 -33 17 -60 33 -60 35 0 3 27 -8 60 -25 33 -17 +60 -33 60 -35z m5114 -230 c64 -64 112 -102 162 -128 40 -20 74 -37 77 -37 24 +0 41 251 25 365 l-8 50 16 -40 c28 -76 46 -215 41 -320 -5 -108 -32 -245 -49 +-245 -26 0 -162 101 -233 174 -130 134 -250 371 -228 454 4 18 15 1 56 -80 43 +-89 62 -115 141 -193z m-5588 255 c24 -17 44 -33 44 -36 0 -6 -47 21 -81 47 +-39 30 -11 22 37 -11z m6904 4 c0 -2 -9 0 -20 6 -11 6 -20 13 -20 16 0 2 9 0 +20 -6 11 -6 20 -13 20 -16z m2496 -20 c35 -25 64 -50 64 -54 0 -11 -139 82 +-140 93 0 13 11 7 76 -39z m364 -5 c33 -28 59 -54 56 -57 -6 -5 -44 23 -106 +77 -60 52 -15 34 50 -20z m-9573 14 c29 -16 53 -31 53 -36 0 -8 -39 10 -94 44 +-47 29 -19 23 41 -8z m260 -39 c-6 -7 -117 48 -117 58 0 5 27 -6 61 -23 34 +-16 59 -32 56 -35z m-446 4 l24 -20 -31 17 c-17 10 -41 26 -55 37 l-24 20 31 +-17 c17 -10 41 -26 55 -37z m9364 6 c36 -26 64 -48 61 -51 -5 -5 -136 85 -136 +93 0 9 11 2 75 -42z m362 -5 c35 -28 62 -54 59 -57 -7 -6 -40 17 -96 67 -64 +57 -40 51 37 -10z m-9559 7 c28 -16 50 -31 48 -33 -5 -6 -75 30 -101 52 -27 +22 -11 16 53 -19z m212 -6 c30 -16 49 -29 42 -30 -14 0 -112 48 -112 55 0 9 +15 4 70 -25z m226 -18 c-5 -4 -86 36 -86 43 0 3 20 -5 45 -17 24 -12 43 -23 +41 -26z m8730 2 c35 -25 64 -47 64 -50 0 -7 -15 2 -75 44 -61 43 -71 52 -61 +52 5 0 37 -20 72 -46z m353 -1 c31 -26 58 -48 60 -50 2 -2 2 -6 -1 -9 -4 -3 +-33 16 -65 41 -77 63 -79 65 -64 65 8 0 39 -21 70 -47z m-9526 -12 c21 -13 36 +-25 34 -27 -6 -7 -117 60 -117 70 0 4 10 2 23 -6 12 -8 39 -25 60 -37z m9202 +-49 c-5 -5 -135 82 -135 91 0 4 31 -13 69 -40 39 -26 68 -49 66 -51z m-9014 +57 c34 -17 59 -33 56 -35 -5 -6 -127 53 -127 61 0 9 10 5 71 -26z m212 1 c31 +-14 57 -28 57 -32 0 -8 -110 40 -125 55 -12 12 -6 10 68 -23z m5548 -64 c231 +-77 480 -84 715 -21 57 15 94 20 104 14 12 -6 9 -9 -10 -9 -24 -1 -24 -1 13 +-35 43 -41 45 -45 15 -38 -22 6 -21 4 5 -24 16 -17 25 -33 20 -36 -26 -16 +-178 -31 -303 -30 -234 0 -442 50 -634 151 -145 76 -205 148 -73 87 40 -19 +107 -45 148 -59z m819 69 c13 -14 21 -25 18 -25 -2 0 -15 11 -28 25 -13 14 +-21 25 -18 25 2 0 15 -11 28 -25z m1982 -20 l72 -44 -40 -17 c-417 -175 -932 +-261 -1393 -234 -102 6 -192 15 -201 20 -10 5 -25 21 -35 36 l-17 26 154 -7 +c418 -19 903 67 1298 229 47 19 86 35 87 36 2 0 35 -20 75 -45z m727 11 c49 +-36 89 -76 76 -76 -8 0 -135 99 -135 106 0 10 15 2 59 -30z m-356 -28 c31 -21 +57 -41 57 -43 0 -3 -31 16 -70 41 -38 26 -70 49 -70 51 0 5 12 -2 83 -49z +m697 -3 c30 -30 52 -55 49 -55 -2 0 -29 25 -59 55 -30 30 -52 55 -49 55 2 0 +29 -25 59 -55z m-9850 10 c23 -15 40 -29 37 -31 -5 -5 -107 56 -107 64 0 7 26 +-5 70 -33z m247 -31 c-6 -7 -117 48 -117 58 0 5 27 -6 61 -23 34 -16 59 -32 +56 -35z m218 4 c12 -13 7 -11 -68 22 -31 14 -57 28 -57 32 0 9 111 -40 125 +-54z m4816 -51 c56 -138 161 -280 271 -365 55 -42 166 -112 179 -112 17 0 51 +170 57 282 3 65 6 117 8 115 2 -2 6 -39 9 -83 4 -43 8 -85 11 -93 14 -43 -54 +-411 -76 -411 -19 0 -135 85 -200 146 -140 132 -242 297 -294 478 -27 93 -30 +114 -19 142 6 16 7 16 14 -2 5 -10 22 -54 40 -97z m4210 67 c32 -26 59 -51 59 +-56 0 -10 -129 84 -130 95 0 14 12 7 71 -39z m339 -21 l55 -57 -51 42 c-57 46 +-81 72 -67 72 5 0 33 -26 63 -57z m-9832 -4 c12 -7 22 -17 22 -22 0 -4 -25 9 +-55 29 -89 60 -65 54 33 -7z m9462 4 c33 -25 60 -51 60 -56 0 -6 -5 -6 -12 0 +-25 19 -113 87 -122 95 -6 5 -5 8 2 8 7 0 39 -21 72 -47z m384 -52 c11 -11 16 +-21 11 -21 -10 0 -119 100 -124 114 -5 12 84 -60 113 -93z m-9667 58 c30 -17 +52 -33 49 -36 -2 -3 -33 11 -68 31 -35 20 -57 36 -49 36 7 0 38 -14 68 -31z +m218 1 c33 -15 55 -29 49 -29 -14 -1 -124 47 -124 54 0 9 14 4 75 -25z m185 +15 c14 -8 21 -14 15 -14 -5 0 -21 6 -35 14 -14 8 -20 14 -15 14 6 0 21 -6 35 +-14z m-602 -47 c12 -6 22 -15 22 -20 0 -4 -25 8 -55 28 -30 20 -55 39 -55 41 +0 3 15 -5 33 -17 17 -11 42 -26 55 -32z m9457 0 c30 -23 52 -44 50 -46 -4 -4 +-135 89 -135 96 0 10 35 -11 85 -50z m360 -27 c21 -23 35 -41 30 -41 -9 0 +-118 100 -124 114 -6 16 52 -30 94 -73z m-9647 37 c68 -38 67 -37 60 -43 -6 +-6 -128 62 -128 70 0 9 11 5 68 -27z m217 1 c37 -16 65 -33 62 -36 -7 -6 -137 +53 -137 61 0 9 3 8 75 -25z m240 -5 c28 -13 39 -21 25 -18 -14 4 -47 17 -75 +30 -27 13 -39 21 -25 18 14 -4 48 -17 75 -30z m6236 9 l24 -27 -24 15 c-14 9 +-27 21 -29 27 -6 19 3 14 29 -15z m30 10 c13 -16 12 -17 -3 -4 -10 7 -18 15 +-18 17 0 8 8 3 21 -13z m2557 -61 c18 -14 31 -27 28 -29 -6 -6 -135 90 -136 +101 0 4 17 -4 38 -20 20 -15 52 -39 70 -52z m-8788 58 c8 -5 11 -10 5 -10 -5 +0 -17 5 -25 10 -8 5 -10 10 -5 10 6 0 17 -5 25 -10z m5460 -134 c58 -19 148 +-42 200 -52 118 -21 345 -23 458 -5 l83 14 30 -29 c35 -33 37 -44 7 -37 -21 5 +-20 2 10 -29 37 -39 41 -53 12 -45 -11 3 -20 2 -20 -3 0 -25 -311 -18 -460 11 +-247 48 -590 208 -618 289 -10 27 -9 27 92 -26 56 -29 148 -69 206 -88z m830 +119 c13 -14 21 -25 18 -25 -2 0 -15 11 -28 25 -13 14 -21 25 -18 25 2 0 15 +-11 28 -25z m2818 -39 c23 -22 42 -44 42 -49 0 -11 -113 91 -119 107 -5 14 22 +-7 77 -58z m-9183 24 c33 -16 55 -29 48 -29 -15 -1 -123 46 -123 53 0 10 12 6 +75 -24z m8803 -23 c29 -22 50 -42 48 -44 -5 -5 -126 85 -126 93 0 7 17 -3 78 +-49z m-9233 8 c33 -19 55 -35 48 -35 -10 0 -108 53 -122 66 -15 15 23 -2 74 +-31z m210 8 c30 -15 55 -31 55 -35 0 -7 -115 45 -129 58 -14 13 27 0 74 -23z +m8629 -85 c-65 -30 -306 -106 -431 -138 -391 -97 -794 -122 -1211 -73 -43 5 +-56 11 -73 35 -12 16 -19 31 -16 34 3 3 85 0 183 -5 405 -24 810 32 1214 169 +80 27 165 57 189 68 l44 20 70 -46 70 -47 -39 -17z m733 57 c32 -30 54 -54 48 +-54 -15 0 -132 108 -118 109 7 0 38 -25 70 -55z m-8987 35 c8 -5 11 -10 5 -10 +-5 0 -17 5 -25 10 -8 5 -10 10 -5 10 6 0 17 -5 25 -10z m4510 -73 c51 -173 +162 -351 297 -477 62 -59 205 -160 224 -160 5 0 9 -12 9 -27 -1 -27 -1 -27 +-15 -9 -14 18 -15 15 -15 -39 0 -54 -1 -57 -15 -39 -14 18 -14 17 -15 -13 0 +-18 -3 -33 -6 -33 -14 0 -136 104 -193 165 -156 167 -270 387 -311 602 -12 59 +-8 113 8 113 4 0 18 -37 32 -83z m4101 41 c32 -24 59 -47 59 -51 0 -6 -51 29 +-129 90 -2 2 -1 3 3 3 5 0 35 -19 67 -42z m-9171 -41 c0 -9 -88 39 -110 61 -8 +8 13 0 48 -19 34 -18 62 -37 62 -42z m215 4 c-7 -6 -125 51 -125 61 0 4 29 -7 +65 -24 35 -18 62 -34 60 -37z m170 44 c32 -14 55 -28 52 -31 -2 -3 -33 8 -68 +25 -78 36 -64 41 16 6z m8763 -28 c28 -22 52 -41 52 -44 0 -5 -69 44 -110 78 +-39 32 -1 10 58 -34z m368 -2 c32 -30 55 -54 49 -54 -5 0 -37 24 -70 54 -33 +30 -55 54 -49 55 6 0 37 -25 70 -55z m-8867 -11 c10 -9 -17 -3 -69 17 -30 11 +-59 25 -65 30 -5 6 22 -2 60 -16 39 -15 72 -29 74 -31z m-9 34 c10 -6 7 -7 +-10 -2 -14 3 -32 11 -40 16 -10 6 -7 7 10 2 14 -3 32 -11 40 -16z m-278 -19 +c32 -13 58 -27 58 -31 0 -8 -15 -3 -92 31 -27 11 -48 23 -48 27 0 3 6 4 13 1 +6 -3 38 -15 69 -28z m6354 -1 l29 -31 -37 28 c-39 28 -45 35 -30 35 5 0 21 +-14 38 -32z m2769 -23 c33 -30 56 -54 50 -54 -5 0 -37 24 -70 54 -33 30 -55 +54 -50 55 6 0 37 -25 70 -55z m300 35 c10 -11 16 -20 13 -20 -3 0 -13 9 -23 +20 -10 11 -16 20 -13 20 3 0 13 -9 23 -20z m-9856 -22 c28 -17 49 -33 47 -35 +-2 -2 -30 12 -62 32 -33 19 -54 35 -47 35 6 0 35 -14 62 -32z m210 0 c36 -17 +61 -33 54 -35 -11 -4 -133 53 -133 62 0 9 12 5 79 -27z m6616 21 c11 -17 -1 +-21 -15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z m61 -21 l29 -31 -32 23 c-18 +13 -33 27 -33 32 0 13 5 10 36 -24z m2275 15 c13 -16 12 -17 -3 -4 -17 13 -22 +21 -14 21 2 0 10 -8 17 -17z m-8531 -14 c30 -11 60 -25 65 -31 7 -8 4 -9 -10 +-4 -83 31 -125 48 -125 52 0 8 15 4 70 -17z m5067 -1 c-3 -8 -6 -5 -6 6 -1 11 +2 17 5 13 3 -3 4 -12 1 -19z m3828 -33 c78 -71 62 -71 -21 0 -36 30 -59 55 +-52 55 7 0 40 -25 73 -55z m368 -30 l31 -40 -38 35 c-21 19 -47 49 -59 65 +l-21 30 28 -25 c15 -14 42 -43 59 -65z m-9878 18 c11 -7 15 -13 11 -13 -11 0 +-106 60 -106 67 0 4 51 -25 95 -54z m396 27 c35 -16 57 -29 48 -30 -18 0 -129 +47 -129 55 0 10 18 5 81 -25z m5398 -18 c127 -81 339 -164 498 -196 121 -24 +288 -37 403 -30 105 6 105 6 130 -21 l25 -27 -30 8 -30 7 20 -24 c12 -13 27 +-33 35 -43 14 -18 13 -18 -9 -11 -20 6 -22 4 -16 -14 8 -25 -1 -26 -180 -10 +-148 12 -320 50 -445 96 -219 82 -446 219 -468 283 -9 24 -8 29 1 23 7 -4 37 +-22 66 -41z m3686 -16 c28 -25 46 -45 40 -45 -5 0 -37 24 -70 55 -33 30 -51 +51 -40 45 11 -5 43 -30 70 -55z m387 -41 c6 -11 -15 5 -46 35 -31 30 -56 59 +-56 64 0 13 88 -73 102 -99z m-9697 68 c30 -15 55 -31 55 -35 0 -11 1 -12 -70 +27 -77 41 -65 47 15 8z m434 -4 c35 -12 59 -25 52 -27 -13 -4 -120 36 -136 51 +-11 11 -12 11 84 -24z m221 16 c19 -7 28 -14 20 -14 -8 0 -28 6 -45 14 -39 17 +-21 18 25 0z m-20 -21 c25 -9 51 -17 59 -20 8 -2 12 -7 9 -9 -6 -7 -130 35 +-143 48 -7 7 -3 8 10 3 11 -4 40 -14 65 -22z m4276 -72 c62 -248 202 -474 392 +-637 l82 -70 0 -55 c-1 -48 -2 -53 -14 -37 -12 16 -14 16 -20 1 -3 -8 -6 -29 +-6 -46 0 -30 -1 -29 -81 48 -215 210 -351 474 -399 776 -7 49 -7 73 2 92 6 15 +14 24 16 21 3 -3 15 -45 28 -93z m4354 51 c33 -27 59 -52 59 -56 1 -10 -38 18 +-94 67 -60 52 -32 43 35 -11z m415 -71 c-6 -6 -115 103 -115 114 0 5 27 -18 +60 -51 33 -32 57 -61 55 -63z m-9702 73 c31 -16 57 -33 57 -37 0 -11 -116 48 +-126 63 -8 13 -8 13 69 -26z m223 9 c33 -15 54 -28 48 -31 -11 -4 -124 43 +-124 52 0 10 18 5 76 -21z m9524 1 c13 -14 21 -25 18 -25 -2 0 -15 11 -28 25 +-13 14 -21 25 -18 25 2 0 15 -11 28 -25z m-9318 -12 c38 -14 66 -28 63 -31 -6 +-6 -126 37 -139 49 -17 15 5 10 76 -18z m315 21 c-3 -3 -12 -4 -19 -1 -8 3 -5 +6 6 6 11 1 17 -2 13 -5z m5888 -4 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 +10 4 10 3 0 8 -4 11 -10z m2220 -41 c31 -23 52 -46 47 -51 -12 -12 -261 -95 +-387 -128 -276 -73 -476 -100 -795 -107 -247 -5 -386 2 -566 28 -63 10 -73 14 +-88 41 -10 16 -16 31 -13 34 2 2 43 0 91 -5 492 -56 1076 19 1531 198 55 21 +106 37 113 35 6 -2 37 -22 67 -45z m407 4 c32 -25 56 -48 53 -51 -2 -2 -28 15 +-57 39 -75 61 -73 59 -62 59 5 0 35 -21 66 -47z m368 -8 c29 -30 52 -57 49 +-59 -3 -3 -32 21 -64 54 -33 33 -55 60 -49 60 5 0 34 -25 64 -55z m-9435 14 +c37 -16 65 -33 61 -36 -7 -7 -136 49 -136 59 0 11 0 11 75 -23z m451 7 c38 +-14 62 -25 53 -25 -17 -1 -139 38 -139 45 0 8 17 4 86 -20z m8599 -41 l50 -47 +-63 48 c-64 48 -90 75 -56 56 11 -6 42 -32 69 -57z m-9264 24 c33 -18 57 -34 +55 -36 -4 -4 -85 35 -116 56 -32 22 5 10 61 -20z m484 -30 c15 -14 0 -11 -70 +17 -36 14 -65 30 -65 34 0 9 119 -36 135 -51z m400 40 c14 -6 9 -7 -15 -3 -19 +4 -44 11 -55 15 -14 6 -9 7 15 3 19 -4 44 -11 55 -15z m5925 -43 c0 -5 -13 3 +-30 19 -16 16 -30 33 -30 39 0 5 14 -3 30 -19 17 -16 30 -33 30 -39z m2810 9 +c30 -30 50 -55 44 -55 -5 0 -34 25 -64 55 -30 30 -50 55 -44 55 5 0 34 -25 64 +-55z m-8914 -12 c-7 -7 -146 39 -146 48 0 4 34 -4 76 -18 41 -14 73 -28 70 +-30z m6035 36 c11 -11 19 -23 17 -25 -3 -2 -15 7 -28 21 -28 30 -19 34 11 4z +m2509 -49 c30 -27 31 -29 5 -11 -16 11 -46 35 -65 52 -30 27 -31 28 -5 11 17 +-11 46 -35 65 -52z m385 -49 c-3 -2 -31 21 -64 52 -32 31 -56 59 -53 62 3 3 +32 -20 64 -52 31 -31 55 -59 53 -62z m-9610 44 c11 -9 -2 -5 -30 9 -27 13 -59 +32 -70 41 -11 9 3 5 30 -9 28 -13 59 -32 70 -41z m170 34 c37 -16 65 -33 61 +-36 -7 -7 -136 49 -136 59 0 11 0 11 75 -23z m646 15 c75 -21 82 -24 77 -29 +-2 -2 -38 6 -79 19 -83 27 -82 34 2 10z m5860 -1 c13 -15 12 -15 -8 -4 -24 12 +-29 21 -14 21 5 0 15 -7 22 -17z m-6252 -44 c13 -5 21 -12 18 -15 -8 -9 -147 +47 -141 57 2 4 26 -1 52 -12 26 -11 58 -25 71 -30z m488 45 c-3 -3 -12 -4 -19 +-1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m8613 -49 c29 -30 52 -57 49 -59 -4 -4 +-119 101 -119 110 0 14 22 -3 70 -51z m-8941 23 c74 -25 76 -26 69 -33 -6 -6 +-129 34 -142 46 -15 14 1 11 73 -13z m234 -5 c31 -9 57 -19 57 -23 0 -4 -34 2 +-75 14 -41 11 -75 25 -75 29 0 5 8 6 18 2 9 -3 43 -13 75 -22z m4055 -54 c39 +-249 177 -518 365 -715 77 -81 87 -96 87 -128 0 -20 -4 -36 -10 -36 -5 0 -10 +7 -10 15 0 8 -4 15 -9 15 -5 0 -12 -24 -16 -52 l-7 -53 -13 30 c-10 22 -14 25 +-14 11 -1 -18 -3 -18 -27 5 -83 77 -228 310 -289 460 -71 179 -123 452 -95 +504 7 14 16 25 19 25 4 0 12 -37 19 -81z m813 26 c163 -109 361 -192 570 -239 +119 -26 363 -51 409 -41 19 4 31 1 41 -11 13 -16 12 -17 -9 -12 -24 7 -23 4 +10 -44 23 -34 23 -41 -2 -28 -24 13 -25 7 -4 -25 l16 -25 -43 0 c-110 1 -336 +45 -485 96 -173 59 -439 205 -555 306 -22 20 -49 78 -35 78 3 0 42 -25 87 -55z +m-5745 14 c30 -17 53 -33 51 -36 -3 -2 -31 12 -63 32 -73 43 -64 46 12 4z +m201 4 c71 -34 68 -32 61 -39 -6 -6 -128 53 -128 61 0 8 8 6 67 -22z m888 13 +c28 -8 43 -15 35 -15 -8 0 -37 6 -65 13 -27 8 -43 15 -35 15 8 0 38 -6 65 -13z +m8140 -6 c10 -11 16 -20 13 -20 -3 0 -13 9 -23 20 -10 11 -16 20 -13 20 3 0 +13 -9 23 -20z m325 -35 c30 -30 50 -55 44 -55 -5 0 -34 25 -64 55 -30 30 -50 +55 -44 55 5 0 34 -25 64 -55z m-9140 14 c63 -26 65 -27 58 -34 -8 -9 -138 46 +-138 57 0 6 6 8 13 5 6 -3 37 -15 67 -28z m6345 -27 c-7 -7 -55 39 -55 52 0 5 +13 -3 30 -19 16 -16 28 -31 25 -33z m-6139 28 c51 -18 91 -40 71 -40 -14 0 +-132 43 -141 51 -16 14 6 11 70 -11z m237 -5 c32 -9 56 -19 53 -22 -7 -8 -136 +28 -143 40 -3 5 3 7 13 4 11 -3 45 -13 77 -22z m212 5 c39 -11 54 -18 34 -15 +-39 6 -130 33 -114 34 6 0 42 -8 80 -19z m5730 -10 c16 -16 26 -32 24 -35 -3 +-2 -21 11 -39 30 -19 19 -29 35 -24 35 6 0 23 -13 39 -30z m2725 -23 c29 -26 +51 -49 48 -52 -2 -2 -31 21 -63 51 -33 30 -55 54 -49 52 6 -2 35 -24 64 -51z +m331 36 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m-9668 -22 +c31 -14 57 -28 57 -33 0 -4 -2 -8 -5 -8 -11 0 -125 60 -125 66 0 3 4 4 8 2 4 +-1 33 -14 65 -27z m6692 -40 c-7 -6 -65 50 -65 63 0 5 16 -5 35 -24 19 -18 32 +-36 30 -39z m2661 -38 c-6 -6 -116 89 -116 100 0 5 27 -15 60 -43 34 -29 59 +-55 56 -57z m325 44 c24 -28 33 -43 20 -32 -28 24 -91 102 -74 92 6 -4 31 -31 +54 -60z m-9469 20 c52 -20 74 -37 48 -37 -16 0 -140 58 -140 65 0 4 8 4 18 1 +9 -4 43 -17 74 -29z m716 -13 c4 -4 -4 -4 -18 -1 -14 4 -49 12 -77 18 -29 7 +-53 16 -53 20 0 8 138 -26 148 -37z m99 40 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 +6 11 1 17 -2 13 -5z m7876 -70 c15 -12 27 -24 27 -27 0 -10 -301 -105 -430 +-137 -439 -107 -920 -130 -1360 -64 -137 20 -134 19 -153 60 l-17 36 27 -6 +c120 -24 236 -31 518 -31 324 1 422 9 659 56 196 39 466 117 596 172 38 16 39 +16 133 -59z m188 59 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z +m571 -57 l42 -51 -57 55 c-31 30 -57 58 -57 63 0 14 26 -10 72 -67z m-9622 -8 +c0 -4 -29 7 -65 24 -36 18 -65 36 -65 40 0 4 29 -7 65 -24 36 -18 65 -36 65 +-40z m376 50 c35 -13 64 -27 64 -31 0 -9 -18 -5 -97 25 -51 19 -65 28 -42 28 +5 0 39 -10 75 -22z m227 0 c40 -12 66 -23 59 -26 -13 -4 -152 35 -152 43 0 9 +22 5 93 -17z m434 16 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z +m5683 -25 c15 -28 5 -23 -15 7 -9 15 -12 23 -6 20 6 -4 16 -16 21 -27z m2530 +-35 l45 -48 -51 42 c-28 23 -57 49 -65 58 -30 37 26 -4 71 -52z m-8212 35 c34 +-6 60 -14 58 -17 -7 -7 -130 18 -147 29 -11 8 -9 9 6 5 11 -3 48 -10 83 -17z +m72 11 c11 -7 5 -8 -20 -4 -43 8 -51 14 -19 14 13 0 31 -5 39 -10z m8150 -96 +c0 -12 -39 19 -80 62 l-45 48 63 -53 c34 -29 62 -55 62 -57z m317 55 c48 -51 +71 -86 39 -60 -22 19 -99 111 -92 111 3 0 27 -23 53 -51z m93 26 c13 -14 21 +-25 18 -25 -2 0 -15 11 -28 25 -13 14 -21 25 -18 25 2 0 15 -11 28 -25z +m-9538 -12 c72 -31 73 -31 66 -39 -7 -7 -138 48 -138 59 0 10 2 10 72 -20z +m652 12 c79 -20 90 -24 84 -31 -7 -6 -140 26 -152 37 -14 12 -3 11 68 -6z +m3875 -121 c45 -273 167 -533 350 -751 34 -40 61 -79 61 -87 0 -25 -17 -27 +-25 -3 -6 18 -9 14 -17 -25 -10 -45 -28 -66 -28 -33 0 8 -4 15 -10 15 -5 0 +-10 -9 -10 -20 0 -33 -14 -23 -61 43 -178 245 -292 554 -315 853 -6 79 -4 94 +12 119 10 15 19 24 21 19 1 -5 11 -63 22 -130z m4923 41 c13 -19 0 -9 -35 25 +-32 30 -57 59 -57 64 0 13 66 -51 92 -89z m-9661 54 c34 -17 59 -33 56 -35 -5 +-5 -83 33 -117 55 -30 21 2 10 61 -20z m405 17 c78 -28 97 -37 91 -42 -7 -8 +-135 35 -142 47 -8 13 6 11 51 -5z m257 -8 c40 -12 66 -23 59 -26 -16 -5 -141 +28 -148 40 -8 13 12 10 89 -14z m620 15 c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 +17 0 24 -2 18 -5z m4399 -101 c225 -151 509 -255 796 -291 l133 -17 21 -33 22 +-33 -24 7 -23 7 21 -35 c27 -43 28 -51 2 -37 -14 7 -20 7 -20 0 0 -16 -40 -12 +-164 14 -299 63 -600 208 -838 403 -39 31 -68 63 -68 73 0 10 -3 27 -7 37 -5 +13 3 10 32 -13 22 -17 75 -54 117 -82z m3578 56 c30 -28 46 -45 35 -37 -31 21 +-105 89 -97 89 4 -1 32 -24 62 -52z m-8172 28 c35 -8 66 -17 70 -21 9 -9 -70 +4 -123 20 -53 17 -25 18 53 1z m255 7 c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 17 +0 24 -2 18 -5z m5267 -8 c20 -24 6 -28 -15 -5 -10 11 -13 20 -8 20 6 0 16 -7 +23 -15z m2596 -17 l29 -33 -32 29 c-31 28 -38 36 -30 36 2 0 16 -15 33 -32z +m444 -82 c0 -6 -25 14 -55 44 -30 30 -55 59 -55 64 0 6 25 -14 55 -44 30 -30 +55 -59 55 -64z m-9452 74 c34 -14 62 -29 62 -34 0 -9 -11 -6 -87 27 -29 12 +-53 26 -53 30 0 5 3 7 8 5 4 -1 35 -14 70 -28z m650 14 c61 -15 103 -34 75 +-34 -23 0 -138 32 -147 41 -14 12 -5 12 72 -7z m457 1 l70 -14 -63 5 c-35 3 +-73 9 -85 14 -32 13 -2 11 78 -5z m5355 5 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 +10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m-6264 -19 c27 -11 58 -22 69 -26 14 -5 +16 -9 7 -12 -14 -5 -130 33 -146 48 -17 15 18 10 70 -10z m236 -2 c38 -11 66 +-24 63 -29 -3 -5 -38 2 -77 16 -114 38 -104 49 14 13z m861 14 c-7 -2 -21 -2 +-30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m8127 -107 c0 -6 -25 14 -55 44 -30 +30 -55 59 -55 64 0 6 25 -14 55 -44 30 -30 55 -59 55 -64z m-8516 82 c72 -20 +14 -19 -64 2 -66 17 -69 19 -26 15 27 -3 67 -10 90 -17z m469 15 c-7 -2 -21 +-2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m5237 -57 c0 -5 -13 3 -30 19 -16 +16 -30 33 -30 39 0 5 14 -3 30 -19 17 -16 30 -33 30 -39z m-6774 16 c-5 -4 +-66 26 -66 33 0 3 16 -3 35 -12 19 -9 33 -18 31 -21z m141 8 c36 -17 64 -33 +61 -36 -6 -6 -138 52 -138 60 0 10 8 7 77 -24z m645 14 c59 -15 98 -34 70 -34 +-21 0 -136 33 -146 42 -15 12 4 10 76 -8z m503 -3 c28 -9 28 -9 5 -10 -14 0 +-54 6 -90 14 l-65 14 60 -5 c33 -2 74 -8 90 -13z m220 -2 c23 -9 -63 -1 -115 +12 -24 5 -14 6 30 2 36 -3 74 -9 85 -14z m153 14 c-10 -2 -26 -2 -35 0 -10 3 +-2 5 17 5 19 0 27 -2 18 -5z m5050 -21 c20 -30 11 -28 -19 4 -13 15 -18 25 +-10 22 8 -2 21 -14 29 -26z m93 -15 l22 -32 -31 29 c-18 17 -32 34 -32 38 0 +15 18 0 41 -35z m2702 -7 c28 -27 48 -52 46 -54 -2 -3 -30 20 -61 50 -31 30 +-52 54 -46 54 6 0 33 -22 61 -50z m-9161 14 c38 -14 68 -30 68 -35 0 -10 -129 +36 -144 51 -16 16 4 12 76 -16z m226 4 c40 -11 69 -25 65 -29 -9 -9 -153 31 +-153 43 0 12 7 10 88 -14z m1229 16 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 +17 -2 13 -5z m4864 -11 c13 -15 12 -15 -8 -4 -24 12 -29 21 -14 21 5 0 15 -7 +22 -17z m2809 -38 c30 -30 50 -55 44 -55 -5 0 -34 25 -64 55 -30 30 -50 55 +-44 55 5 0 34 -25 64 -55z m-9293 -31 c-6 -7 -137 58 -137 68 0 5 32 -8 71 +-28 39 -19 69 -37 66 -40z m821 65 c66 -15 76 -19 69 -25 -6 -6 -157 25 -157 +32 0 7 41 4 88 -7z m221 -8 c62 -10 92 -21 57 -21 -41 0 -156 24 -156 32 0 5 +8 7 18 4 9 -3 46 -10 81 -15z m500 3 c8 -7 -114 -2 -144 6 -17 4 8 5 55 2 47 +-2 87 -6 89 -8z m2803 -6 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 +-7 -17z m134 -262 c43 -214 153 -464 279 -635 45 -61 45 -62 34 -106 -12 -49 +-26 -58 -31 -22 -3 17 -7 13 -19 -22 l-15 -43 -41 58 c-84 121 -188 359 -232 +529 -27 105 -48 246 -56 370 -6 95 -5 102 17 130 l23 30 12 -104 c7 -57 20 +-140 29 -185z m-3866 247 c30 -9 49 -18 42 -21 -19 -6 -152 29 -152 40 0 11 +17 8 110 -19z m709 11 c12 -11 -11 -10 -89 2 l-85 13 85 -6 c47 -3 87 -7 89 +-9z m5109 -22 c13 -18 21 -32 16 -32 -5 0 -22 16 -38 36 -16 20 -23 35 -16 32 +7 -2 24 -18 38 -36z m2402 -7 c30 -25 56 -49 58 -53 7 -22 -428 -144 -648 +-181 -427 -73 -933 -67 -1333 15 -25 5 -66 58 -54 71 3 2 51 -3 108 -11 251 +-37 563 -47 814 -26 160 14 393 53 562 95 131 32 371 107 403 126 25 14 33 11 +90 -36z m221 28 c13 -16 12 -17 -3 -4 -17 13 -22 21 -14 21 2 0 10 -8 17 -17z +m209 -40 l55 -57 -60 54 c-33 29 -62 55 -64 57 -2 2 0 3 5 3 5 0 34 -26 64 +-57z m-9112 17 c34 -12 62 -27 62 -32 0 -6 -8 -7 -17 -4 -95 35 -133 52 -133 +60 0 4 6 6 13 3 6 -2 40 -14 75 -27z m208 8 c41 -11 74 -25 74 -30 0 -4 -5 -8 +-12 -8 -22 0 -148 44 -148 52 0 11 2 11 86 -14z m511 -22 c11 -10 -25 -7 -98 +10 -38 9 -67 19 -64 24 5 8 151 -22 162 -34z m836 37 c-23 -2 -64 -2 -90 0 +-26 2 -7 3 42 3 50 0 71 -1 48 -3z m200 0 c-23 -2 -64 -2 -90 0 -26 2 -7 3 42 +3 50 0 71 -1 48 -3z m7327 -48 c30 -30 50 -55 44 -55 -5 0 -34 25 -64 55 -30 +30 -50 55 -44 55 5 0 34 -25 64 -55z m355 35 c10 -11 16 -20 13 -20 -3 0 -13 +9 -23 20 -10 11 -16 20 -13 20 3 0 13 -9 23 -20z m-9665 -25 c36 -19 59 -34 +52 -35 -14 0 -132 58 -132 65 0 10 16 4 80 -30z m1094 16 c59 -11 85 -21 52 +-21 -43 0 -155 24 -150 32 3 5 13 7 22 4 10 -3 44 -10 76 -15z m456 9 l55 -7 +-50 -1 c-27 0 -68 3 -90 7 l-40 9 35 0 c19 0 60 -3 90 -8z m977 4 c-3 -3 -12 +-4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m1843 -13 c-13 -25 -30 -36 -30 +-20 0 6 8 18 18 25 23 18 24 17 12 -5z m1255 -144 c222 -146 488 -251 754 +-297 63 -11 118 -26 122 -32 11 -18 2 -23 -16 -8 -21 17 -19 1 5 -38 l21 -34 +-21 7 c-24 8 -25 -3 -4 -33 16 -23 16 -23 -22 -17 -203 34 -502 153 -703 278 +-89 55 -234 164 -298 224 -43 40 -53 55 -53 81 l0 33 63 -52 c34 -29 103 -79 +152 -112z m932 141 c21 -24 37 -48 31 -48 -2 0 -19 16 -38 35 -19 19 -29 35 +-24 35 6 0 20 -10 31 -22z m3112 -34 c24 -30 42 -56 40 -58 -2 -2 -26 23 -52 +55 -27 33 -45 59 -40 59 4 -1 28 -26 52 -56z m-9012 19 c35 -9 60 -20 56 -24 +-11 -11 -164 31 -157 43 3 5 13 7 22 3 8 -3 44 -13 79 -22z m671 21 c28 -4 52 +-10 52 -14 0 -8 -67 -3 -135 10 l-40 8 35 1 c19 0 59 -2 88 -5z m471 -10 c2 +-2 -35 -4 -82 -4 -50 0 -87 4 -87 10 0 9 159 3 169 -6z m658 10 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m4188 -62 c-7 -7 -45 28 -57 53 -7 12 +3 7 26 -14 19 -19 34 -37 31 -39z m2669 -11 c41 -45 -2 -18 -49 31 -48 49 -48 +50 -10 21 22 -17 49 -40 59 -52z m371 -39 c-4 -4 -56 53 -87 96 -11 15 5 0 36 +-33 30 -32 53 -61 51 -63z m-9477 76 c28 -12 52 -25 52 -30 0 -6 -6 -8 -12 -5 +-90 36 -128 53 -128 61 0 4 8 5 18 1 9 -4 41 -16 70 -27z m215 3 c37 -13 65 +-26 62 -31 -7 -11 -155 39 -155 52 0 6 6 8 13 6 6 -3 42 -15 80 -27z m1540 22 +c-23 -2 -64 -2 -90 0 -26 2 -7 3 42 3 50 0 71 -1 48 -3z m592 -3 c-3 -5 -12 +-10 -18 -10 -7 0 -6 4 3 10 19 12 23 12 15 0z m6740 -88 c-3 -4 -29 18 -58 48 +l-52 53 58 -48 c32 -26 55 -50 52 -53z m-8435 72 c39 -9 68 -20 63 -24 -9 -9 +-143 17 -157 31 -15 13 12 11 94 -7z m208 -4 c39 -6 70 -15 67 -20 -2 -4 -26 +-4 -52 1 -27 5 -63 11 -81 14 -18 3 -30 10 -27 16 4 5 9 8 13 5 4 -2 40 -9 80 +-16z m292 -13 c0 -5 -20 -7 -45 -3 -25 3 -65 9 -90 12 -25 3 -43 9 -41 13 6 +10 176 -11 176 -22z m180 24 l45 -8 -55 -1 c-30 -1 -73 3 -95 7 l-40 9 50 0 +c28 0 70 -3 95 -7z m945 -1 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 23 +12 15 0z m4193 -21 c13 -16 19 -29 14 -29 -9 0 -33 25 -46 48 -14 23 9 11 32 +-19z m2503 14 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m434 +-38 c26 -31 45 -58 43 -60 -2 -3 -28 22 -57 55 -29 33 -48 60 -43 60 5 0 31 +-25 57 -55z m-7836 29 c2 -2 -34 -4 -82 -4 -50 0 -89 4 -92 11 -5 7 20 8 82 3 +48 -4 90 -8 92 -10z m636 6 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 23 +12 15 0z m4321 -38 c-8 -7 -25 8 -37 31 -11 21 -10 21 15 -2 14 -14 24 -26 22 +-29z m2836 2 c51 -55 72 -89 33 -54 -31 29 -89 100 -81 100 3 0 25 -21 48 -46z +m133 26 c10 -11 16 -20 13 -20 -3 0 -13 9 -23 20 -10 11 -16 20 -13 20 3 0 13 +-9 23 -20z m-9517 -22 c28 -12 52 -25 52 -29 0 -5 -2 -9 -4 -9 -12 0 -136 60 +-136 66 0 3 8 3 18 -1 9 -4 41 -16 70 -27z m272 -30 c0 -6 -6 -8 -12 -6 -7 3 +-43 15 -81 27 -37 13 -65 26 -62 31 7 11 155 -39 155 -52z m163 45 c37 -10 67 +-21 67 -25 0 -4 -5 -8 -11 -8 -22 0 -134 32 -143 41 -15 14 10 11 87 -8z +m1315 10 c-27 -2 -69 -2 -95 0 -27 2 -5 3 47 3 52 0 74 -1 48 -3z m412 3 c0 +-3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m247 -2 +c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m1863 -123 c23 -288 +115 -575 259 -814 37 -62 48 -89 44 -109 -6 -34 -20 -36 -26 -5 -4 23 -5 22 +-28 -38 l-12 -30 -6 25 c-7 23 -8 24 -18 6 -9 -17 -13 -15 -37 26 -35 60 -97 +204 -130 303 -64 190 -94 355 -103 568 -6 145 -6 148 17 172 13 14 25 23 27 +22 1 -2 7 -59 13 -126z m-3617 97 c31 -7 57 -16 57 -20 0 -11 -9 -10 -94 8 +-42 10 -73 21 -70 26 4 6 16 7 28 4 11 -3 47 -11 79 -18z m683 12 c13 0 24 -4 +24 -8 0 -10 -129 -2 -155 10 -13 5 2 7 44 3 35 -3 75 -5 87 -5z m1004 6 c0 -2 +-9 -6 -20 -9 -11 -3 -20 -1 -20 4 0 5 9 9 20 9 11 0 20 -2 20 -4z m3982 -13 +c22 -27 30 -43 20 -43 -4 0 -18 14 -30 30 -24 32 -15 42 10 13z m3044 -38 c64 +-75 52 -78 -14 -4 -29 32 -49 59 -43 59 5 0 31 -25 57 -55z m-9516 19 c0 -2 +-9 0 -20 6 -11 6 -20 13 -20 16 0 2 9 0 20 -6 11 -6 20 -13 20 -16z m1001 15 +c38 -7 69 -16 69 -20 0 -5 -5 -9 -11 -9 -28 0 -145 24 -153 32 -13 11 12 10 +95 -3z m284 -11 c13 -13 -133 0 -155 13 -9 6 15 7 65 3 44 -3 85 -11 90 -16z +m434 6 c2 -2 -37 -4 -87 -4 -52 0 -92 4 -92 10 0 8 169 3 179 -6z m681 6 c-20 +-13 -33 -13 -25 0 3 6 14 10 23 10 15 0 15 -2 2 -10z m200 0 c-20 -13 -43 -13 +-35 0 3 6 16 10 28 10 18 0 19 -2 7 -10z m3940 -33 c0 -6 -9 -2 -20 8 -11 10 +-20 23 -20 28 0 6 9 2 20 -8 11 -10 20 -23 20 -28z m2990 -71 c0 -6 -25 14 +-55 44 -30 30 -55 59 -55 64 0 6 25 -14 55 -44 30 -30 55 -59 55 -64z m-9415 +77 c36 -15 65 -30 65 -35 0 -4 -25 3 -55 16 -109 49 -117 63 -10 19z m401 17 +c16 -5 49 -14 73 -20 26 -7 40 -15 35 -20 -10 -10 -141 25 -158 41 -13 12 13 +12 50 -1z m1362 3 c-27 -2 -69 -2 -95 0 -27 2 -5 3 47 3 52 0 74 -1 48 -3z +m4870 -29 c-4 -3 -12 5 -18 18 -12 22 -12 22 6 6 10 -10 15 -20 12 -24z +m-6431 8 c26 -11 57 -22 67 -26 10 -3 16 -9 13 -12 -7 -7 -137 34 -151 47 -17 +15 20 10 71 -9z m516 -33 c-4 -4 -37 -1 -73 7 -84 19 -92 22 -86 33 3 5 42 0 +87 -12 44 -11 77 -23 72 -28z m656 35 c2 -2 2 -7 -1 -10 -9 -9 -168 8 -168 18 +0 8 159 0 169 -8z m721 6 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 +10 2 0 4 -4 4 -10z m446 1 c-6 -9 -56 -22 -56 -14 0 4 40 21 53 22 5 1 6 -3 3 +-8z m3919 -1 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 +-10z m2640 -10 c10 -11 16 -20 13 -20 -3 0 -13 9 -23 20 -10 11 -16 20 -13 20 +3 0 13 -9 23 -20z m240 -35 c25 -30 43 -55 38 -54 -13 2 -107 109 -96 109 6 0 +32 -25 58 -55z m-9329 -1 c20 -8 34 -17 32 -20 -6 -5 -138 54 -138 61 0 3 16 +-2 35 -10 19 -8 51 -22 71 -31z m868 26 c32 -7 54 -16 50 -20 -5 -5 -27 -5 +-49 -1 -22 5 -57 12 -77 15 -21 4 -38 12 -38 17 0 6 12 8 28 5 15 -3 53 -10 +86 -16z m229 4 c27 -4 45 -10 40 -15 -11 -10 -163 11 -163 23 0 6 17 7 38 4 +20 -3 59 -8 85 -12z m1217 12 c0 -2 -9 -6 -20 -9 -11 -3 -18 -1 -14 4 5 9 34 +13 34 5z m6569 -42 c28 -25 51 -49 51 -54 0 -11 -228 -83 -379 -119 -527 -129 +-1043 -141 -1594 -39 l-119 22 -19 39 c-19 36 -19 38 -2 34 39 -12 215 -38 +348 -52 181 -19 539 -19 720 0 286 30 578 93 809 174 61 21 116 39 122 40 7 0 +35 -20 63 -45z m461 -67 c0 -14 -26 10 -72 67 l-42 51 57 -55 c31 -30 57 -58 +57 -63z m-8934 76 c58 -16 85 -33 50 -33 -29 0 -146 41 -146 51 0 6 7 8 16 5 +8 -3 44 -14 80 -23z m1154 17 c0 -12 -89 -12 -145 -1 -33 7 -24 9 53 10 55 1 +92 -3 92 -9z m190 0 c0 -6 -35 -10 -86 -10 -54 0 -83 4 -79 10 3 6 42 10 86 +10 46 0 79 -4 79 -10z m480 0 c-20 -13 -33 -13 -25 0 3 6 14 10 23 10 15 0 15 +-2 2 -10z m200 0 c-20 -13 -43 -13 -35 0 3 6 16 10 28 10 18 0 19 -2 7 -10z +m2861 -16 c36 -39 233 -184 324 -239 183 -110 432 -207 666 -259 14 -3 31 -17 +37 -31 12 -26 4 -33 -16 -13 -16 16 -15 3 3 -32 16 -31 9 -39 -14 -17 -14 12 +-14 8 5 -38 4 -10 2 -14 -7 -11 -8 2 -52 17 -99 31 -333 106 -620 274 -870 +508 -57 54 -70 71 -70 96 0 38 9 39 41 5z m-5110 -11 c40 -15 67 -29 60 -31 +-14 -5 -130 35 -145 49 -17 16 10 10 85 -18z m1148 8 c8 -1 11 -4 8 -8 -8 -7 +-107 -5 -150 3 -54 11 -17 20 55 13 40 -4 79 -8 87 -8z m771 9 c0 -5 -8 -10 +-17 -10 -15 0 -16 2 -3 10 19 12 20 12 20 0z m470 6 c0 -2 -7 -6 -15 -10 -8 +-3 -15 -1 -15 4 0 6 7 10 15 10 8 0 15 -2 15 -4z m1665 -362 c31 -201 97 -408 +186 -586 22 -43 39 -82 39 -87 0 -5 -7 -26 -17 -47 -16 -38 -16 -38 -23 -14 +-6 24 -7 24 -25 -15 -16 -35 -19 -37 -22 -17 -3 12 -8 20 -12 17 -5 -2 -27 41 +-49 98 -114 288 -154 491 -156 779 -1 186 -1 186 24 213 l25 27 7 -134 c4 -73 +14 -178 23 -234z m2306 324 c5 -10 7 -18 5 -18 -9 0 -46 43 -46 53 0 13 29 +-12 41 -35z m54 -27 c-6 -5 -30 23 -46 54 -5 11 4 5 20 -14 17 -19 28 -37 26 +-40z m2670 19 c27 -27 47 -52 44 -55 -3 -2 -30 20 -59 50 -30 30 -50 55 -44 +55 5 0 32 -22 59 -50z m-8662 23 c42 -10 77 -21 77 -25 0 -12 -17 -10 -97 9 +-40 9 -73 20 -73 25 0 11 4 11 93 -9z m504 -17 c4 -5 -23 -6 -66 -2 -79 8 +-103 14 -97 25 6 9 152 -11 163 -23z m928 24 c-3 -5 -11 -10 -16 -10 -6 0 -7 +5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m290 0 c-3 -5 -11 -10 -16 -10 -6 0 +-7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m145 -10 c-16 -11 -40 -13 -40 -5 +0 8 44 24 50 18 2 -2 -2 -8 -10 -13z m4018 2 c6 -18 -15 -14 -22 4 -4 10 -1 +14 6 12 6 -2 14 -10 16 -16z m152 -47 c0 -5 -11 4 -25 20 -13 17 -24 35 -24 +40 0 6 11 -3 24 -20 14 -16 25 -34 25 -40z m2581 28 c79 -85 78 -98 -1 -18 +-30 30 -50 55 -44 55 5 0 26 -17 45 -37z m-8402 16 c69 -12 104 -29 60 -29 +-38 0 -143 21 -153 31 -13 12 14 11 93 -2z m671 1 c51 -7 49 -7 -37 -9 -56 0 +-93 3 -93 9 0 11 50 12 130 0z m770 0 c-20 -13 -33 -13 -25 0 3 6 14 10 23 10 +15 0 15 -2 2 -10z m355 1 c-6 -5 -21 -12 -35 -15 -24 -7 -24 -6 -6 8 21 17 57 +23 41 7z m3755 -21 c12 -16 17 -30 11 -30 -5 0 -19 14 -31 30 -12 17 -17 30 +-11 30 5 0 19 -13 31 -30z m2852 -45 l31 -40 -39 40 c-22 22 -46 49 -54 60 +l-15 20 24 -20 c13 -11 37 -38 53 -60z m368 43 c15 -21 17 -28 6 -19 -16 13 +-41 51 -33 51 2 0 14 -15 27 -32z m-9431 -5 c41 -15 69 -29 62 -31 -13 -4 +-151 45 -151 54 0 8 16 4 89 -23z m223 6 c40 -12 66 -25 61 -30 -9 -9 -129 26 +-147 42 -16 14 11 11 86 -12z m1318 11 c-20 -13 -140 -13 -140 0 0 6 32 10 78 +10 53 0 72 -3 62 -10z m490 0 c-19 -13 -30 -13 -30 0 0 6 10 10 23 10 18 0 19 +-2 7 -10z m200 1 c0 -5 -12 -11 -27 -14 -26 -5 -26 -4 -8 9 22 16 35 18 35 5z +m4038 -29 c13 -18 20 -32 14 -32 -5 0 -22 16 -37 36 -16 20 -22 35 -15 32 7 +-2 24 -18 38 -36z m230 13 c-3 -3 -9 2 -12 12 -6 14 -5 15 5 6 7 -7 10 -15 7 +-18z m2931 -42 l33 -48 -36 40 c-20 22 -41 49 -48 60 -21 37 15 0 51 -52z +m-8326 47 c26 0 47 -4 47 -10 0 -11 -50 -13 -127 -4 -30 4 -50 11 -46 16 3 6 +22 8 42 4 20 -3 57 -6 84 -6z m797 0 c0 -5 -8 -10 -17 -10 -15 0 -16 2 -3 10 +19 12 20 12 20 0z m60 6 c0 -2 -7 -6 -15 -10 -8 -3 -15 -1 -15 4 0 6 7 10 15 +10 8 0 15 -2 15 -4z m540 -16 c-20 -13 -57 -13 -44 -1 10 10 46 19 54 14 2 -2 +-2 -8 -10 -13z m6560 -67 c0 -8 -9 0 -50 45 l-45 47 48 -45 c26 -24 47 -45 47 +-47z m362 -8 c12 -18 4 -13 -22 15 -22 25 -46 54 -51 65 -12 24 45 -38 73 -80z +m-9577 67 c-3 -3 -11 0 -18 7 -9 10 -8 11 6 5 10 -3 15 -9 12 -12z m588 2 c40 +-10 64 -21 59 -26 -10 -10 -140 18 -156 33 -15 14 22 11 97 -7z m215 -5 c34 +-6 62 -15 62 -20 0 -14 -24 -12 -147 16 -13 3 -23 10 -23 16 0 7 9 9 23 5 12 +-3 50 -11 85 -17z m229 4 c29 -3 53 -10 53 -16 0 -6 -23 -7 -62 -3 -93 11 +-118 17 -112 28 4 6 20 7 37 4 17 -4 55 -9 84 -13z m958 7 c-3 -5 -11 -10 -16 +-10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m310 0 c-3 -5 -15 -10 +-26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 11 0 17 -4 14 -10z m4183 -28 c13 +-18 20 -32 14 -32 -5 0 -22 16 -37 36 -16 20 -22 35 -15 32 7 -2 24 -18 38 +-36z m-6340 -2 c34 -13 60 -25 57 -28 -6 -6 -145 47 -145 55 0 3 6 3 13 0 6 +-2 40 -15 75 -27z m210 5 c34 -10 62 -22 62 -27 0 -11 -3 -11 -81 13 -38 12 +-72 26 -76 32 -4 6 1 8 13 5 10 -3 47 -14 82 -23z m1152 15 c0 -6 -37 -10 -90 +-10 -53 0 -90 4 -90 10 0 6 37 10 90 10 53 0 90 -4 90 -10z m160 0 c0 -6 -30 +-9 -72 -8 l-73 2 70 6 c39 4 71 7 73 8 1 1 2 -2 2 -8z m555 0 c-3 -5 -16 -10 +-28 -10 -18 0 -19 2 -7 10 20 13 43 13 35 0z m210 1 c-6 -5 -21 -12 -35 -15 +-24 -7 -24 -6 -6 8 21 17 57 23 41 7z m293 -7 c-8 -9 -24 -14 -34 -11 -17 3 +-16 5 6 15 36 16 47 14 28 -4z m6792 -26 c55 -70 56 -73 43 -65 -19 12 -96 +107 -86 107 5 0 25 -19 43 -42z m-7370 28 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 +-10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m425 -5 c-6 -4 -23 -11 -40 -15 -28 -6 +-29 -5 -11 9 21 16 67 22 51 6z m3964 -20 c22 -31 27 -46 11 -36 -17 10 -52 +65 -41 65 5 0 19 -13 30 -29z m2959 -25 c23 -29 42 -57 42 -62 0 -5 -8 1 -18 +12 -9 12 -32 40 -50 63 -19 23 -30 41 -25 41 4 -1 27 -25 51 -54z m-8944 26 +c38 -10 72 -24 74 -31 3 -9 -2 -11 -14 -7 -11 3 -49 13 -86 22 -37 9 -65 20 +-62 25 7 12 7 12 88 -9z m735 2 c2 -2 2 -7 -2 -10 -10 -10 -177 7 -177 18 0 +10 169 2 179 -8z m786 6 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 +21 10 8 0 12 -4 9 -10z m270 0 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 +9 10 21 10 11 0 17 -4 14 -10z m446 -4 c-13 -15 -60 -30 -69 -22 -5 6 54 35 +72 36 5 0 3 -6 -3 -14z m1341 -83 c-9 -273 65 -639 181 -894 32 -72 40 -121 +13 -83 -11 15 -14 13 -26 -17 -14 -33 -14 -33 -21 -9 -6 25 -7 24 -22 -9 l-15 +-35 -19 40 c-41 81 -99 285 -127 446 -25 143 -37 343 -30 481 7 122 8 130 33 +153 14 13 28 24 31 24 3 0 4 -43 2 -97z m2242 62 c32 -48 10 -43 -24 5 -15 21 +-17 28 -6 24 8 -3 22 -16 30 -29z m236 -30 c-1 -5 -12 3 -25 18 -14 15 -25 33 +-25 40 1 7 12 -1 25 -18 14 -16 25 -34 25 -40z m2900 -49 c0 -6 -22 15 -50 45 +-27 30 -49 59 -49 64 0 6 22 -15 49 -45 28 -30 50 -59 50 -64z m-9387 80 c56 +-22 80 -37 61 -36 -11 1 -131 58 -124 59 3 1 31 -10 63 -23z m194 1 c72 -23 +99 -37 73 -37 -24 0 -150 44 -150 52 0 10 -7 11 77 -15z m423 14 c19 -5 52 +-12 74 -16 25 -4 35 -10 29 -16 -6 -6 -36 -5 -84 6 -41 8 -78 15 -82 15 -5 0 +-5 5 -2 10 8 12 20 12 65 1z m255 -2 c51 -8 73 -15 66 -22 -12 -12 -171 11 +-171 24 0 12 14 11 105 -2z m495 -10 c0 -11 -167 -12 -174 0 -3 4 -4 10 -2 12 +9 8 176 -3 176 -12z m405 11 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 23 +12 15 0z m60 0 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 0 +12 -4 9 -10z m50 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 +0 7 -4 4 -10z m260 1 c-6 -5 -21 -12 -35 -15 -24 -7 -24 -6 -6 8 21 17 57 23 +41 7z m191 -6 c-11 -8 -25 -15 -30 -15 -6 0 -2 7 8 15 11 8 25 15 30 15 6 0 2 +-7 -8 -15z m178 5 c-15 -15 -76 -31 -68 -19 7 12 42 27 64 28 9 1 11 -2 4 -9z +m2866 -195 c211 -156 491 -297 716 -360 46 -13 64 -23 73 -41 10 -23 9 -24 +-10 -14 -20 11 -20 11 -4 -21 16 -30 16 -32 0 -25 -14 5 -16 2 -11 -18 5 -22 +3 -24 -22 -21 -15 2 -61 17 -102 33 -296 118 -546 277 -773 492 -102 97 -107 +104 -107 142 l0 40 71 -67 c39 -37 115 -100 169 -140z m4131 188 c13 -16 12 +-17 -3 -4 -17 13 -22 21 -14 21 2 0 10 -8 17 -17z m-8006 -3 c-3 -5 -31 -10 +-61 -10 -34 0 -53 4 -49 10 3 6 31 10 61 10 34 0 53 -4 49 -10z m220 0 c-3 -5 +-11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m331 -5 +c-23 -17 -36 -19 -36 -6 0 5 8 12 18 14 32 9 37 6 18 -8z m684 11 c0 -3 -4 -8 +-10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m1120 0 c0 -2 -8 +-10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m2656 -13 c16 -21 18 +-37 4 -28 -13 8 -33 45 -24 45 4 0 13 -8 20 -17z m2373 -37 l54 -54 -114 -36 +c-225 -70 -489 -125 -759 -158 -65 -8 -219 -13 -400 -13 -316 1 -447 12 -705 +61 -194 37 -203 40 -221 75 -8 17 -13 33 -11 36 3 2 50 -5 104 -16 420 -86 +929 -88 1381 -5 160 29 401 90 522 133 47 16 87 30 90 30 3 1 30 -23 59 -53z +m430 3 c24 -27 41 -52 38 -55 -2 -2 -25 20 -51 51 -26 30 -44 55 -39 55 4 0 +28 -23 52 -51z m-8829 -11 c0 -13 -29 -9 -102 13 -38 11 -66 24 -64 28 6 9 +166 -31 166 -41z m1776 43 c-3 -5 -17 -11 -31 -13 -20 -4 -23 -3 -14 8 12 15 +54 20 45 5z m144 -5 c-8 -8 -26 -17 -40 -21 -22 -7 -23 -6 -12 8 8 9 23 18 35 +20 12 2 24 5 27 6 2 0 -2 -5 -10 -13z m155 -5 c-3 -6 -14 -11 -23 -11 -15 1 +-15 2 2 15 21 16 32 13 21 -4z m1139 -2 c-10 -11 -28 -26 -39 -31 -14 -8 -12 +-2 9 21 33 34 61 44 30 10z m51 1 c-10 -11 -20 -18 -23 -15 -7 6 18 35 31 35 +5 0 2 -9 -8 -20z m2558 -6 c11 -14 16 -28 13 -31 -6 -6 -45 36 -46 50 0 15 15 +6 33 -19z m248 4 c11 -21 11 -22 -4 -9 -10 7 -17 17 -17 22 0 15 9 10 21 -13z +m2752 -62 c33 -46 3 -22 -44 37 -36 44 -38 47 -10 22 18 -16 42 -43 54 -59z +m-9120 45 c37 -13 67 -26 67 -31 0 -11 -140 36 -155 52 -7 8 -6 10 5 6 8 -3 +45 -15 83 -27z m895 23 c28 -4 52 -11 52 -17 0 -12 -161 0 -174 14 -12 11 44 +12 122 3z m827 -4 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 +0 12 -4 9 -10z m775 1 c0 -5 -7 -11 -15 -15 -15 -5 -20 5 -8 17 9 10 23 9 23 +-2z m110 -1 c0 -5 -2 -10 -4 -10 -2 0 -21 -7 -42 -16 -36 -15 -37 -15 -24 1 +22 27 70 44 70 25z m-2166 -14 c33 -7 62 -18 64 -26 3 -9 -2 -11 -19 -7 -13 3 +-52 11 -86 18 -35 7 -63 17 -63 21 0 11 34 9 104 -6z m223 3 c67 -12 91 -36 +26 -26 -21 3 -62 9 -90 13 -29 4 -53 10 -53 15 0 12 40 11 117 -2z m426 1 c43 +0 66 -4 62 -10 -8 -12 -172 -13 -179 -1 -9 13 7 23 29 17 11 -3 51 -6 88 -6z +m507 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z +m55 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z +m1770 -20 c-16 -16 -33 -30 -39 -30 -5 0 3 14 19 30 16 17 33 30 39 30 5 0 -3 +-13 -19 -30z m2760 -8 c-6 -7 -35 18 -35 31 0 5 9 2 20 -8 11 -10 18 -20 15 +-23z m2908 -37 l31 -40 -33 30 c-18 17 -42 44 -54 60 l-21 30 23 -20 c13 -11 +37 -38 54 -60z m-7818 56 c-18 -17 -110 -18 -100 -1 3 6 29 10 58 10 31 0 47 +-4 42 -9z m220 -1 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 +0 7 -4 4 -10z m45 6 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 +0 10 -2 10 -4z m365 -6 c-3 -5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 +26 10 11 0 17 -4 14 -10z m220 1 c-16 -14 -55 -23 -55 -13 0 12 17 20 45 21 +11 1 15 -3 10 -8z m155 -1 c0 -5 -1 -10 -3 -10 -1 0 -17 -4 -35 -9 -39 -12 +-43 3 -4 17 36 14 42 14 42 2z m160 4 c0 -5 -64 -34 -75 -34 -4 0 -3 5 0 11 +12 18 75 38 75 23z m211 -14 c-25 -21 -57 -27 -46 -9 7 11 42 28 60 28 6 0 -1 +-9 -14 -19z m929 5 c-7 -8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 +0 5 -7 -2 -15z m5471 -48 c24 -28 33 -43 20 -32 -28 24 -91 102 -74 92 6 -4 +31 -31 54 -60z m-9058 21 c32 -11 56 -23 53 -26 -7 -6 -128 37 -141 51 -7 7 +-4 8 10 2 11 -4 46 -16 78 -27z m209 10 c43 -12 75 -25 71 -29 -9 -9 -163 32 +-163 43 0 11 3 11 92 -14z m701 3 c15 -1 27 -6 27 -12 0 -8 -25 -9 -87 -4 -93 +7 -98 9 -90 22 3 5 32 6 64 2 32 -4 70 -8 86 -8z m922 9 c-3 -5 -16 -10 -28 +-10 -18 0 -19 2 -7 10 20 13 43 13 35 0z m211 -8 c-3 -5 -17 -12 -31 -14 -33 +-7 -28 14 6 23 27 7 34 4 25 -9z m709 8 c-9 -14 -66 -43 -72 -36 -6 5 56 46 +70 46 5 0 5 -5 2 -10z m585 -30 c-19 -16 -37 -26 -40 -23 -3 3 10 18 29 34 19 +16 37 26 40 23 3 -3 -10 -18 -29 -34z m407 -152 c-1 -282 32 -488 119 -747 30 +-92 41 -138 34 -145 -7 -7 -10 -4 -10 9 -1 16 -4 14 -17 -10 -15 -26 -18 -27 +-21 -11 -4 18 -5 18 -23 -5 -10 -13 -19 -18 -19 -11 0 7 -4 11 -9 7 -5 -3 -12 +-1 -15 4 -13 20 -68 253 -87 365 -26 152 -36 442 -20 586 10 93 14 108 37 128 +14 12 27 22 28 22 2 0 3 -87 3 -192z m2318 174 c-3 -3 -11 0 -18 7 -9 10 -8 +11 6 5 10 -3 15 -9 12 -12z m170 8 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 +-2 10 4 10 5 0 13 -4 16 -10z m2817 -72 c32 -46 15 -32 -37 30 -31 36 -37 46 +-16 27 18 -16 42 -42 53 -57z m-8637 53 c78 -16 87 -19 81 -30 -8 -13 -159 22 +-164 39 -3 8 1 11 9 8 8 -3 41 -11 74 -17z m274 -7 c21 -3 30 -9 24 -15 -6 -6 +-39 -5 -89 3 -88 13 -88 13 -80 26 3 6 26 6 58 1 29 -5 68 -12 87 -15z m999 +10 c-9 -9 -22 -14 -30 -11 -8 3 -4 8 12 15 35 15 37 14 18 -4z m67 6 c-3 -5 +-13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 0 12 -4 9 -10z m1075 0 +c0 -10 -52 -40 -70 -40 -19 0 1 21 34 36 38 16 36 16 36 4z m436 -25 c-22 -19 +-42 -32 -45 -29 -7 7 59 64 74 63 6 0 -8 -15 -29 -34z m244 10 c-7 -8 -17 -15 +-23 -15 -5 0 -2 9 8 20 21 23 35 19 15 -5z m-2438 5 c48 0 68 -4 66 -12 -3 -7 +-32 -10 -88 -9 -47 1 -86 4 -88 6 -9 9 11 26 25 21 8 -3 46 -6 85 -6z m553 0 +c-3 -5 -14 -10 -23 -10 -15 0 -15 2 -2 10 20 13 33 13 25 0z m310 -9 c-3 -6 +-14 -11 -23 -11 -15 1 -15 2 2 15 21 16 32 13 21 -4z m250 9 c-3 -5 -13 -10 +-21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 0 12 -4 9 -10z m305 1 c0 -10 -42 +-23 -49 -15 -7 6 20 24 37 24 6 0 12 -4 12 -9z m401 -12 c-13 -11 -27 -17 -30 +-13 -7 7 28 34 43 34 6 -1 0 -10 -13 -21z m84 2 c-8 -15 -65 -44 -72 -37 -5 5 +70 56 76 50 1 -1 0 -8 -4 -13z m6404 -28 c25 -36 26 -41 6 -18 -26 30 -49 65 +-42 65 2 0 18 -21 36 -47z m-9188 12 c63 -18 97 -35 69 -35 -29 0 -160 43 +-160 53 0 5 6 7 13 4 7 -3 42 -13 78 -22z m1047 13 c-5 -15 -78 -24 -78 -10 0 +16 13 22 48 22 22 0 32 -4 30 -12z m222 2 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 +10 3 6 8 10 11 10 2 0 4 -4 4 -10z m45 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 +10 3 6 11 10 16 10 6 0 7 -4 4 -10z m365 -10 c-20 -13 -57 -13 -44 -1 10 10 +46 19 54 14 2 -2 -2 -8 -10 -13z m440 11 c0 -5 -9 -11 -21 -14 -16 -4 -18 -3 +-8 9 13 16 29 19 29 5z m260 -5 c-20 -20 -76 -34 -65 -17 8 14 42 29 65 30 13 +1 13 -1 0 -13z m480 -1 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 +-15z m80 6 c0 -8 -64 -51 -76 -51 -12 0 11 23 40 41 36 22 36 22 36 10z m1727 +-43 c-2 -13 -4 -5 -4 17 -1 22 1 32 4 23 2 -10 2 -28 0 -40z m1457 27 c9 -13 +16 -27 16 -31 0 -10 -30 17 -41 38 -15 27 6 22 25 -7z m47 -13 c12 -17 16 -32 +11 -32 -6 0 -20 16 -31 36 -26 44 -8 41 20 -4z m3003 -22 c20 -28 33 -50 28 +-50 -4 1 -25 26 -46 57 -21 31 -34 53 -28 49 5 -3 26 -29 46 -56z m-9404 40 +c8 -5 11 -10 5 -10 -5 0 -17 5 -25 10 -8 5 -10 10 -5 10 6 0 17 -5 25 -10z +m887 -5 c46 -4 71 -11 67 -17 -6 -10 -159 -2 -177 9 -13 8 4 24 21 19 10 -2 +50 -8 89 -11z m946 -6 c-6 -6 -19 -9 -29 -6 -17 3 -16 5 6 14 28 12 39 8 23 +-8z m302 12 c-6 -5 -23 -13 -40 -17 -27 -7 -29 -6 -16 9 7 10 25 17 39 17 16 +0 22 -4 17 -9z m136 -11 c-13 -11 -32 -20 -43 -20 -28 0 -12 18 25 29 45 13 +45 13 18 -9z m160 0 c-21 -18 -61 -28 -61 -15 0 7 60 34 75 34 6 0 -1 -9 -14 +-19z m259 9 c0 -9 -58 -39 -75 -39 -22 0 31 36 73 49 1 1 2 -4 2 -10z m540 3 +c0 -4 -13 -16 -30 -25 -35 -21 -39 -16 -8 13 23 21 38 26 38 12z m240 -7 c-7 +-8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 -2 -15z m2666 +-12 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 -17z m48 2 c9 -13 16 +-27 16 -31 0 -10 -30 17 -41 38 -15 27 6 22 25 -7z m121 14 c11 -17 -1 -21 +-15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z m149 -41 c13 -21 14 -29 5 -21 -8 +6 -23 26 -33 45 -13 21 -14 29 -5 21 8 -6 23 -26 33 -45z m2916 -1 c22 -30 40 +-57 40 -62 0 -4 -8 3 -18 16 -57 75 -74 99 -69 99 4 0 24 -24 47 -53z m-8912 +22 c60 -13 84 -29 42 -29 -37 0 -150 32 -150 42 0 6 10 8 23 5 12 -3 50 -11 +85 -18z m186 6 c80 -15 94 -20 84 -30 -10 -10 -161 20 -166 33 -5 15 -13 15 +82 -3z m1114 -1 c-8 -9 -24 -14 -34 -11 -17 3 -16 5 6 15 36 16 47 14 28 -4z +m283 2 c-13 -15 -64 -28 -55 -14 6 9 41 26 58 27 5 1 3 -5 -3 -13z m999 -11 +c-7 -8 -17 -15 -23 -15 -5 0 -2 9 8 20 21 23 35 19 15 -5z m2193 -184 c183 +-149 461 -308 666 -381 51 -18 94 -37 98 -43 4 -6 1 -7 -7 -2 -10 6 -11 2 -6 +-19 5 -20 3 -26 -5 -21 -8 5 -9 1 -4 -15 5 -16 4 -20 -5 -15 -9 5 -10 2 -6 +-12 12 -37 -40 -23 -190 51 -252 125 -468 280 -666 479 -102 102 -108 110 +-108 149 l0 41 78 -74 c42 -41 112 -103 155 -138z m1011 167 c25 -41 1 -32 +-26 10 -14 22 -16 30 -6 27 8 -3 22 -20 32 -37z m2812 10 l29 -33 -32 29 c-31 +28 -38 36 -30 36 2 0 16 -15 33 -32z m315 -60 c11 -16 17 -28 12 -28 -8 1 -71 +80 -86 110 -10 18 46 -43 74 -82z m-9291 60 c10 -6 7 -7 -10 -2 -14 3 -32 11 +-40 16 -10 6 -7 7 10 2 14 -3 32 -11 40 -16z m209 -34 c10 -10 -28 -3 -91 17 +-37 12 -68 25 -68 29 0 7 149 -36 159 -46z m798 46 c55 0 74 -3 70 -12 -3 -10 +-28 -12 -93 -9 -49 2 -91 5 -93 6 -9 9 13 26 26 21 8 -3 48 -6 90 -6z m603 1 +c0 -5 -9 -11 -20 -14 -20 -5 -26 3 -13 16 9 10 33 8 33 -2z m820 -2 c0 -9 -58 +-39 -75 -39 -15 0 10 23 39 36 38 16 36 16 36 3z m231 -10 c-13 -11 -27 -17 +-30 -13 -7 7 28 34 43 34 6 -1 0 -10 -13 -21z m624 -14 c-43 -35 -57 -30 -16 +5 19 16 37 27 40 24 3 -3 -8 -16 -24 -29z m333 -60 c-26 -230 9 -602 81 -855 +26 -92 28 -106 15 -124 -14 -20 -14 -20 -14 -1 -1 18 -2 17 -15 -5 -9 -15 -15 +-19 -15 -10 0 12 -4 11 -15 -4 -9 -12 -15 -15 -15 -7 0 10 -3 11 -13 2 -11 -9 +-18 8 -35 87 -49 218 -56 287 -57 547 0 160 5 281 13 335 12 77 16 87 45 107 +17 12 32 21 33 20 1 -1 -2 -42 -8 -92z m2798 52 c14 -30 14 -31 -1 -12 -25 30 +-39 59 -26 51 6 -4 18 -22 27 -39z m-5041 14 c-3 -6 -11 -11 -17 -11 -6 0 -6 +6 2 15 14 17 26 13 15 -4z m45 -1 c-8 -5 -17 -7 -19 -4 -3 3 1 9 9 14 8 5 17 +7 19 4 3 -3 -1 -9 -9 -14z m56 5 c-21 -16 -32 -13 -21 4 3 6 14 11 23 11 15 +-1 15 -2 -2 -15z m69 5 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 +10 8 0 12 -4 9 -10z m321 -5 c-27 -21 -53 -20 -36 0 7 8 22 15 34 15 21 -1 21 +-1 2 -15z m244 11 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 +10 -2 10 -4z m139 -21 c-2 -2 -17 -7 -33 -11 -34 -8 -28 12 8 25 18 7 36 -3 +25 -14z m501 15 c0 -5 -18 -19 -40 -30 -22 -11 -40 -16 -40 -10 0 5 17 18 38 +29 44 24 42 23 42 11z m455 -25 c-16 -13 -32 -22 -35 -19 -3 3 8 16 25 29 16 +13 32 22 35 19 3 -3 -8 -16 -25 -29z m245 19 c-8 -8 -23 -20 -34 -25 -13 -6 +-10 0 9 15 34 29 43 33 25 10z m2784 -53 c-7 -7 -54 50 -54 64 1 6 14 -5 30 +-24 16 -19 27 -37 24 -40z m2592 -43 c-26 -15 -173 -58 -316 -92 -315 -77 +-583 -109 -925 -109 -326 0 -564 27 -888 100 -116 26 -119 27 -133 61 -8 19 +-14 35 -14 36 0 1 60 -10 133 -25 278 -59 433 -73 772 -73 264 0 334 3 474 22 +258 35 484 85 701 155 l105 34 52 -51 c39 -37 49 -52 39 -58z m435 30 c11 -16 +17 -28 12 -28 -8 1 -76 87 -81 105 -4 11 39 -36 69 -77z m-8850 19 c-10 -10 +-173 31 -166 43 2 4 43 -2 90 -13 49 -12 81 -25 76 -30z m372 37 c103 -10 85 +-28 -20 -20 -48 4 -89 9 -91 11 -9 9 11 25 26 21 10 -3 47 -8 85 -12z m372 6 +c-3 -5 -20 -10 -36 -10 -18 0 -28 4 -24 10 3 6 20 10 36 10 18 0 28 -4 24 -10z +m635 -5 c-7 -8 -22 -15 -34 -15 -21 1 -21 1 -2 15 27 21 53 20 36 0z m275 5 +c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m421 +-16 c-23 -16 -50 -19 -41 -3 8 12 48 29 55 22 3 -3 -4 -11 -14 -19z m337 11 +c-3 -9 -8 -14 -10 -11 -3 3 -2 9 2 15 9 16 15 13 8 -4z m327 6 c0 -4 -18 -20 +-40 -35 -22 -14 -40 -22 -40 -17 0 6 17 22 37 36 42 28 43 28 43 16z m2894 +-16 c9 -13 16 -27 16 -31 0 -10 -30 17 -41 38 -15 27 6 22 25 -7z m3164 -27 +c22 -29 39 -55 36 -57 -2 -2 -5 -2 -7 0 -1 2 -22 28 -45 57 -24 28 -39 52 -34 +52 5 0 28 -24 50 -52z m-9090 12 c41 -12 72 -24 69 -27 -7 -7 -139 36 -152 50 +-7 7 -7 8 0 5 6 -3 43 -16 83 -28z m438 14 c28 -3 58 -10 65 -15 29 -18 -3 +-19 -81 -5 -45 9 -84 16 -87 16 -2 0 -1 5 3 11 3 6 16 8 28 5 11 -3 44 -8 72 +-12z m1154 1 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z m300 6 +c0 -10 -24 -21 -47 -21 -13 0 -13 3 -3 15 13 16 50 21 50 6z m895 -1 c-11 -18 +-85 -52 -79 -37 3 8 19 21 37 30 38 19 51 21 42 7z m154 -6 c-12 -15 -61 -44 +-74 -44 -13 0 8 22 39 41 38 23 53 25 35 3z m306 -11 c-41 -30 -59 -33 -25 -4 +19 16 37 27 40 24 3 -2 -4 -11 -15 -20z m2925 -35 c0 -5 -4 -8 -8 -8 -9 0 -42 +53 -42 67 1 10 50 -49 50 -59z m2894 -3 l38 -50 -46 50 c-25 28 -46 54 -46 60 +0 11 4 6 54 -60z m-7554 40 c-7 -8 -19 -15 -27 -15 -13 0 -13 3 -3 15 7 8 19 +15 27 15 13 0 13 -3 3 -15z m290 0 c-14 -17 -40 -20 -40 -6 0 8 18 16 44 20 5 +0 3 -6 -4 -14z m240 5 c0 -5 -1 -10 -3 -10 -1 0 -17 -4 -35 -9 -37 -11 -45 4 +-9 19 30 12 47 12 47 0z m166 1 c-3 -5 -19 -14 -36 -19 -24 -9 -30 -8 -30 3 0 +13 18 22 53 24 10 0 16 -3 13 -8z m244 -2 c0 -8 -58 -39 -75 -39 -26 0 35 42 +73 49 1 1 2 -4 2 -10z m220 1 c0 -9 -32 -30 -46 -30 -4 0 1 9 11 20 19 21 35 +26 35 10z m180 0 c0 -11 -59 -44 -66 -37 -6 6 45 47 57 47 5 0 9 -4 9 -10z +m3150 -55 c-1 -5 -12 4 -25 20 -14 17 -25 35 -25 40 1 6 12 -3 25 -20 14 -16 +25 -34 25 -40z m3051 -20 c11 -16 0 -7 -25 20 -25 28 -46 55 -46 60 0 11 37 +-31 71 -80z m-8125 63 c16 -17 -9 -20 -91 -13 -112 9 -113 28 -1 24 46 -2 88 +-7 92 -11z m459 2 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 +0 7 -4 4 -10z m60 0 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 +8 0 12 -4 9 -10z m1735 6 c0 -2 -18 -19 -40 -36 -22 -17 -40 -27 -40 -22 0 5 +17 21 38 35 40 28 42 29 42 23z m3029 -32 c12 -20 17 -34 11 -32 -15 5 -54 68 +-42 68 6 0 20 -16 31 -36z m-6011 7 c75 -20 100 -31 68 -31 -28 0 -140 30 +-150 41 -14 13 -2 11 82 -10z m441 3 c40 -3 70 -11 69 -16 -2 -5 -7 -10 -11 +-10 -19 -2 -151 13 -158 18 -14 8 1 26 16 20 7 -2 45 -8 84 -12z m356 6 c-3 +-5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 11 0 17 -4 14 -10z +m220 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 +-10z m50 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 +4 -10z m50 0 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 10 16 10 8 0 12 +-4 9 -10z m391 -5 c-11 -8 -29 -15 -39 -15 -16 0 -17 3 -7 15 7 8 24 15 39 15 +25 -1 25 -1 7 -15z m218 -4 c-5 -5 -20 -12 -33 -16 -30 -9 -19 13 13 25 24 9 +34 4 20 -9z m344 7 c-5 -15 -78 -40 -78 -27 0 5 15 16 33 24 40 18 50 18 45 3z +m244 -10 c-7 -7 -12 -8 -12 -2 0 6 3 14 7 17 3 4 9 5 12 2 2 -3 -1 -11 -7 -17z +m2165 -25 c-3 -10 -5 -2 -5 17 0 19 2 27 5 18 2 -10 2 -26 0 -35z m1367 5 c25 +-41 1 -32 -26 10 -14 22 -16 30 -6 27 8 -3 22 -20 32 -37z m2944 10 c30 -34 +61 -79 45 -63 -31 31 -84 95 -79 95 4 0 19 -14 34 -32z m-8596 12 c96 -19 101 +-21 92 -30 -11 -10 -174 20 -174 32 0 11 18 10 82 -2z m1236 -2 c-3 -7 -18 +-14 -34 -16 -28 -2 -28 -2 -10 13 24 18 49 20 44 3z m462 -2 c-8 -7 -28 -16 +-45 -20 l-30 -6 24 20 c27 24 75 30 51 6z m504 -1 c-4 -8 -7 -15 -9 -15 -1 0 +-19 -7 -38 -15 -31 -13 -36 -13 -31 -1 4 11 55 39 81 45 1 1 0 -6 -3 -14z +m482 -11 c-11 -7 -22 -11 -25 -8 -3 3 3 12 13 20 11 7 22 11 25 8 3 -3 -3 -12 +-13 -20z m326 -86 c-28 -238 -3 -631 54 -852 14 -52 13 -98 -2 -84 -3 3 -26 +-1 -51 -8 -26 -8 -47 -13 -48 -12 -7 8 -36 211 -46 318 -18 192 1 552 36 693 +5 19 47 56 65 57 3 0 0 -51 -8 -112z m2867 57 c0 -5 -9 1 -19 14 -11 13 -20 +28 -20 35 0 6 9 0 20 -14 11 -14 20 -29 19 -35z m2701 13 c19 -24 26 -37 17 +-29 -19 15 -61 71 -54 71 2 0 19 -19 37 -42z m-7448 10 c-6 -6 -15 -8 -19 -4 +-4 4 -1 11 7 16 19 12 27 3 12 -12z m328 12 c0 -12 -44 -24 -62 -17 -8 3 -4 9 +12 15 32 14 50 14 50 2z m482 -12 c-6 -6 -15 -8 -19 -4 -4 4 -1 11 7 16 19 12 +27 3 12 -12z m135 5 c-9 -9 -19 -14 -23 -11 -10 10 6 28 24 28 15 0 15 -1 -1 +-17z m532 1 c-15 -18 -69 -48 -75 -41 -5 5 67 55 80 56 5 1 3 -6 -5 -15z +m2926 -32 c-6 -7 -34 29 -34 43 0 6 9 -1 20 -14 11 -13 17 -26 14 -29z m375 +17 c6 -10 7 -19 2 -19 -5 0 -14 12 -20 26 -14 29 2 24 18 -7z m2621 14 c13 +-16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m-8721 -20 c35 -9 58 +-19 51 -21 -17 -6 -143 27 -156 41 -7 6 -2 8 15 3 14 -3 54 -14 90 -23z m658 +21 c63 -8 69 -24 8 -24 -63 0 -136 11 -136 21 0 10 54 11 128 3z m542 -9 c-7 +-8 -20 -15 -29 -15 -13 1 -13 3 3 15 26 19 42 19 26 0z m76 6 c-7 -11 -46 -21 +-46 -12 0 13 13 21 32 21 11 0 17 -4 14 -9z m524 -5 c-21 -19 -73 -31 -68 -14 +4 12 36 25 68 27 13 1 13 -1 0 -13z m164 0 c-6 -16 -44 -29 -44 -16 0 9 29 29 +42 30 4 0 5 -6 2 -14z m494 2 c-5 -15 -68 -42 -68 -28 0 9 47 39 63 40 5 0 7 +-5 5 -12z m97 2 c-10 -15 -65 -42 -78 -37 -7 2 6 13 28 25 44 23 59 27 50 12z +m74 -6 c-15 -19 -69 -47 -76 -41 -5 6 67 57 81 57 4 0 3 -7 -5 -16z m91 8 c0 +-4 -13 -16 -30 -25 -35 -21 -41 -7 -7 16 25 18 37 21 37 9z m3178 -20 c8 -12 +10 -22 4 -22 -5 0 -17 12 -27 26 -11 17 -13 25 -4 22 7 -2 19 -14 27 -26z +m-6053 8 c3 -6 -1 -7 -9 -4 -18 7 -21 14 -7 14 6 0 13 -4 16 -10z m421 -32 +c12 -13 -32 -9 -107 8 -38 9 -67 19 -65 23 6 8 161 -20 172 -31z m149 26 c69 +-6 84 -12 70 -26 -5 -5 -109 7 -152 17 -13 3 -23 10 -23 16 0 6 7 9 15 6 8 -4 +48 -9 90 -13z m340 6 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 +6 0 7 -4 4 -10z m215 -5 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 +-15z m50 0 c-7 -8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 +-2 -15z m60 6 c0 -5 -7 -12 -16 -15 -24 -9 -28 -7 -14 9 14 17 30 20 30 6z +m40 -1 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z +m395 -9 c-3 -6 -11 -11 -17 -11 -6 0 -6 6 2 15 14 17 26 13 15 -4z m45 15 c0 +-3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m530 -5 +c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 -9z m120 -2 c0 -10 -69 +-44 -76 -37 -10 11 20 30 74 47 1 1 2 -4 2 -10z m2490 -85 c211 -213 487 -404 +751 -520 87 -38 106 -53 86 -66 -7 -4 -9 -8 -4 -8 9 0 -31 -80 -40 -80 -19 0 +-235 123 -343 196 -164 109 -301 225 -444 375 -107 112 -116 125 -116 161 0 +21 3 38 8 38 4 0 50 -43 102 -96z m-3230 77 c0 -10 -24 -21 -47 -21 -13 0 -13 +3 -3 15 13 16 50 21 50 6z m230 -5 c-8 -8 -28 -18 -45 -22 -27 -7 -29 -6 -17 +9 12 14 28 20 67 26 5 0 3 -5 -5 -13z m1130 4 c0 -5 -5 -10 -11 -10 -5 0 -7 5 +-4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m2946 -17 c-7 -7 -26 7 -26 19 0 6 6 6 +15 -2 9 -7 13 -15 11 -17z m172 9 c6 -18 -15 -14 -22 4 -4 10 -1 14 6 12 6 -2 +14 -10 16 -16z m3121 -44 c29 -43 33 -52 13 -28 -17 19 -38 47 -47 63 -29 49 +-9 28 34 -35z m2 45 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z +m-9092 -19 c36 -10 60 -19 54 -21 -12 -4 -153 36 -153 44 0 2 8 2 18 -1 9 -2 +46 -13 81 -22z m1401 11 c-7 -8 -21 -15 -32 -15 -17 0 -18 3 -8 15 7 8 21 15 +32 15 17 0 18 -3 8 -15z m480 0 c-9 -8 -31 -18 -50 -21 -31 -7 -34 -6 -22 9 +12 14 33 22 72 26 12 1 12 -1 0 -14z m170 7 c0 -11 -45 -32 -66 -32 -20 0 -8 +19 20 30 28 11 46 12 46 2z m-1369 -12 c16 0 29 -4 29 -10 0 -11 -74 -13 -143 +-4 -70 10 -46 28 26 20 33 -3 73 -6 88 -6z m639 -5 c-13 -16 -40 -20 -40 -7 0 +14 12 22 33 22 16 0 17 -3 7 -15z m308 3 c-3 -7 -19 -15 -37 -19 -38 -8 -38 +12 0 22 36 10 41 10 37 -3z m652 -2 c-8 -8 -26 -17 -40 -20 l-25 -7 24 20 c27 +25 66 31 41 7z m105 4 c-11 -18 -88 -53 -83 -38 3 7 20 21 39 30 39 20 53 22 +44 8z m755 2 c0 -5 -7 -58 -17 -118 -11 -76 -16 -180 -17 -344 -1 -232 7 -322 +41 -496 l15 -82 -50 -66 -50 -66 -12 67 c-55 313 -53 701 6 999 13 67 20 83 +43 97 29 18 41 21 41 9z m1327 -44 c-2 -13 -4 -5 -4 17 -1 22 1 32 4 23 2 -10 +2 -28 0 -40z m4619 -33 c20 -35 10 -26 -34 31 -18 23 -32 46 -32 50 0 11 43 +-42 66 -81z m-8878 54 c34 -6 62 -16 62 -20 0 -12 1 -12 -83 7 -40 9 -76 21 +-82 26 -7 7 -2 9 15 5 14 -3 53 -11 88 -18z m210 5 c34 -4 65 -11 69 -17 4 -7 +-17 -8 -63 -3 -87 9 -114 16 -114 28 0 6 10 8 23 5 12 -3 50 -9 85 -13z m700 +4 c-3 -7 -13 -15 -24 -17 -16 -3 -17 -1 -5 13 16 19 34 21 29 4z m62 -3 c-7 +-8 -19 -15 -26 -15 -8 0 -11 6 -8 15 4 8 15 15 26 15 17 0 18 -3 8 -15z m75 5 +c-3 -5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 11 0 17 -4 14 -10z +m511 -16 c-23 -17 -36 -18 -36 -4 0 12 42 31 50 23 3 -3 -4 -11 -14 -19z m699 +16 c-10 -16 -85 -52 -85 -40 0 5 17 18 38 29 42 23 56 26 47 11z m241 -16 +c-11 -7 -22 -11 -25 -8 -3 3 3 12 13 20 11 7 22 11 25 8 3 -3 -3 -12 -13 -20z +m94 19 c0 -5 -18 -18 -40 -31 -22 -12 -40 -18 -40 -13 0 6 17 19 38 30 44 24 +42 23 42 14z m5805 -40 c25 -27 44 -51 45 -54 0 -9 -273 -84 -415 -114 -311 +-65 -595 -90 -930 -82 -326 8 -614 48 -897 124 -90 24 -98 28 -108 56 -5 17 +-9 32 -7 34 2 2 51 -8 108 -21 536 -125 1106 -134 1653 -25 139 28 400 95 456 +118 41 16 50 13 95 -36z m430 -4 c20 -28 34 -53 32 -55 -2 -3 -17 15 -33 38 +-41 60 -46 68 -40 68 2 0 21 -23 41 -51z m-8125 37 c0 -3 -4 -8 -10 -11 -5 -3 +-10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m40 -6 c0 -5 -5 -10 -11 -10 -5 +0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m50 0 c0 -5 -7 -10 -16 -10 -8 0 +-12 5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 -10z m55 0 c-3 -5 -13 -10 -21 -10 -8 +0 -12 5 -9 10 3 6 13 10 21 10 8 0 12 -4 9 -10z m465 1 c0 -9 -24 -21 -42 -21 +-6 0 -6 6 2 15 14 16 40 20 40 6z m420 -6 c-7 -9 -15 -13 -17 -11 -7 7 7 26 +19 26 6 0 6 -6 -2 -15z m151 1 c-14 -16 -51 -28 -51 -16 0 11 30 29 49 30 10 +0 11 -3 2 -14z m440 -6 c-26 -22 -41 -25 -41 -10 0 6 10 15 23 20 36 14 44 11 +18 -10z m99 12 c0 -10 -71 -45 -77 -38 -5 5 56 46 70 46 4 0 7 -4 7 -8z m210 +-12 c-24 -15 -37 -11 -16 5 11 8 22 12 25 9 3 -3 -1 -9 -9 -14z m2911 -22 c6 +-12 6 -18 0 -18 -6 0 -18 15 -27 33 -16 30 -16 31 0 18 9 -8 22 -23 27 -33z +m3258 -13 c23 -30 38 -55 34 -55 -11 1 -90 110 -80 110 3 0 23 -25 46 -55z +m-7559 36 c0 -10 -24 -21 -47 -21 -13 0 -13 3 -3 15 13 16 50 21 50 6z m240 5 +c0 -14 -35 -36 -57 -36 -21 0 -23 3 -13 14 6 8 24 17 38 19 15 2 28 5 30 6 1 +0 2 -1 2 -3z m210 -5 c0 -12 -20 -25 -27 -18 -7 7 6 27 18 27 5 0 9 -4 9 -9z +m294 -2 c-7 -12 -74 -43 -80 -37 -7 8 13 26 41 36 40 14 48 14 39 1z m3626 1 +c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m50 +-10 c7 -13 7 -20 1 -20 -6 0 -15 9 -21 20 -7 13 -7 20 -1 20 6 0 15 -9 21 -20z +m55 -21 c9 -16 11 -29 6 -29 -10 0 -41 51 -41 65 0 13 21 -8 35 -36z m70 31 +c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m43 +-2 c7 -7 12 -16 12 -20 0 -15 -15 -8 -28 12 -13 22 -3 27 16 8z m50 -13 c7 +-14 12 -29 12 -33 -1 -10 -40 38 -40 49 0 18 17 8 28 -16z m48 -17 c8 -16 13 +-32 11 -34 -5 -5 -47 58 -47 70 0 14 21 -6 36 -36z m2853 -25 l33 -48 -37 40 +c-19 22 -41 49 -47 60 -21 37 15 0 51 -52z m-8831 41 c87 -21 96 -23 90 -29 +-6 -7 -137 23 -158 35 -22 13 -8 12 68 -6z m495 6 c20 0 37 -4 37 -10 0 -11 +-84 -13 -142 -4 -59 10 -46 28 15 20 28 -3 69 -6 90 -6z m704 -7 c-9 -9 -19 +-14 -23 -11 -10 10 6 28 24 28 15 0 15 -1 -1 -17z m487 2 c-3 -8 -13 -16 -22 +-19 -10 -2 -28 -8 -42 -12 -22 -6 -23 -5 -11 10 7 9 28 20 45 25 17 5 32 10 +33 10 1 1 0 -6 -3 -14z m170 0 c-3 -8 -13 -16 -22 -19 -10 -2 -28 -8 -42 -12 +-22 -6 -23 -5 -11 10 7 9 28 20 45 25 17 5 32 10 33 10 1 1 0 -6 -3 -14z m852 +0 c-11 -8 -25 -15 -30 -15 -6 1 0 7 14 15 32 19 40 18 16 0z m-2448 -11 c28 +-4 52 -11 52 -15 0 -12 -10 -11 -102 3 -43 6 -78 16 -78 21 0 6 16 7 38 3 20 +-3 61 -9 90 -12z m792 1 c-7 -8 -22 -15 -34 -15 -21 1 -21 1 -2 15 27 21 53 +20 36 0z m75 5 c-3 -5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 11 +0 17 -4 14 -10z m305 1 c0 -12 -8 -16 -42 -25 -22 -5 -26 -3 -22 8 5 13 15 17 +57 25 4 0 7 -3 7 -8z m680 -1 c0 -5 -2 -10 -4 -10 -2 0 -20 -7 -40 -15 -42 +-18 -49 -3 -8 19 32 18 52 20 52 6z m385 0 c-3 -5 -11 -10 -16 -10 -6 0 -7 5 +-4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m391 -7 c-67 -237 -73 -770 -12 -1071 +l13 -63 -51 -64 c-60 -76 -56 -81 -82 100 -28 194 -26 608 4 795 37 233 49 +276 86 299 39 25 49 25 42 4z m2768 -42 c-6 -7 -44 40 -43 54 0 6 11 -3 24 +-20 13 -16 22 -32 19 -34z m176 -4 c-1 -7 -12 2 -25 18 -32 39 -32 58 0 22 14 +-15 25 -33 25 -40z m185 32 c9 -17 14 -33 11 -36 -4 -4 -36 49 -36 62 0 13 11 +2 25 -26z m2784 -26 l33 -48 -31 35 c-33 37 -59 76 -44 67 5 -3 23 -27 42 -54z +m-8089 37 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 +-10z m90 -5 c-7 -8 -17 -15 -22 -15 -6 0 -5 7 2 15 7 8 17 15 22 15 6 0 5 -7 +-2 -15z m60 6 c0 -5 -7 -12 -16 -15 -24 -9 -28 -7 -14 9 14 17 30 20 30 6z +m60 0 c0 -5 -9 -11 -20 -14 -20 -5 -26 3 -13 16 9 10 33 8 33 -2z m65 -1 c-3 +-5 -11 -10 -16 -10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m1205 0 +c0 -9 -40 -30 -56 -30 -13 0 -1 18 19 28 29 14 37 14 37 2z m436 1 c-6 -9 -66 +-33 -66 -26 0 6 52 34 63 35 5 0 6 -4 3 -9z m3428 -28 c9 -18 14 -33 12 -33 +-6 0 -36 55 -36 66 0 11 5 3 24 -33z m2738 -48 c14 -27 -1 -10 -41 45 l-33 45 +32 -35 c17 -19 36 -44 42 -55z m-8794 56 c41 -11 77 -23 80 -26 4 -4 -2 -5 +-13 -2 -11 3 -49 13 -85 22 -61 16 -86 25 -64 25 5 0 42 -9 82 -19z m1328 4 +c-11 -8 -29 -15 -39 -15 -16 0 -17 3 -7 15 7 8 24 15 39 15 25 -1 25 -1 7 -15z +m259 5 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 10 16 10 8 0 12 -4 9 +-10z m335 0 c0 -11 -42 -30 -67 -30 -12 0 -13 3 -3 14 10 13 21 17 63 25 4 0 +7 -4 7 -9z m354 -1 c-8 -14 -74 -42 -81 -35 -7 6 58 46 75 46 7 0 10 -5 6 -11z +m81 -8 c-3 -6 -14 -11 -23 -11 -15 1 -15 2 2 15 21 16 32 13 21 -4z m89 -1 +c-14 -14 -87 -42 -79 -30 8 13 78 50 84 44 3 -2 0 -9 -5 -14z m96 16 c0 -3 -4 +-8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m1797 -33 c-3 +-10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m1362 1 c6 -14 11 -27 11 +-30 0 -12 -21 10 -35 36 -12 24 -13 28 -1 24 7 -3 18 -16 25 -30z m-5410 -10 +c12 -12 -12 -11 -91 4 -48 8 -85 18 -83 22 4 7 165 -17 174 -26z m184 26 c23 +0 36 -4 32 -10 -12 -19 -175 -7 -175 13 0 6 20 7 53 3 28 -3 69 -6 90 -6z +m777 1 c0 -10 -24 -21 -47 -21 -13 0 -13 3 -3 15 13 16 50 21 50 6z m280 -6 +c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z m198 3 c-5 -14 -58 +-30 -58 -18 0 11 30 29 48 30 8 0 12 -5 10 -12z m3082 -332 c156 -124 407 +-283 523 -331 30 -12 36 -21 55 -89 12 -41 22 -77 22 -80 0 -10 -155 71 -254 +132 -150 93 -323 229 -460 362 -170 165 -256 269 -256 307 0 16 3 32 6 36 3 3 +67 -56 142 -132 76 -76 175 -168 222 -205z m779 289 c0 -5 -9 1 -19 14 -11 13 +-20 28 -20 35 0 6 9 0 20 -14 11 -14 20 -29 19 -35z m286 25 c18 -34 19 -44 5 +-35 -16 10 -42 65 -31 65 6 0 17 -13 26 -30z m-4792 -1 c-6 -6 -19 -9 -29 -6 +-17 3 -16 5 6 14 28 12 39 8 23 -8z m39 -1 c-7 -7 -12 -8 -12 -2 0 6 3 14 7 +17 3 4 9 5 12 2 2 -3 -1 -11 -7 -17z m354 7 c-11 -8 -31 -15 -45 -15 -25 1 +-25 1 -7 15 11 8 31 15 45 15 25 -1 25 -1 7 -15z m524 6 c0 -5 -14 -14 -31 +-20 -40 -14 -39 -14 -33 3 8 20 64 35 64 17z m486 -6 c-11 -8 -25 -15 -30 -15 +-6 0 -2 7 8 15 11 8 25 15 30 15 6 0 2 -7 -8 -15z m3439 -26 c9 -16 12 -29 7 +-29 -7 0 -20 20 -40 64 -11 23 20 -9 33 -35z m2806 24 c13 -16 12 -17 -3 -4 +-10 7 -18 15 -18 17 0 8 8 3 21 -13z m-7715 -2 c-7 -11 -46 -21 -46 -12 0 13 +13 21 32 21 11 0 17 -4 14 -9z m369 -10 c-8 -13 -35 -15 -35 -2 0 5 8 11 18 +13 21 5 26 2 17 -11z m255 5 c-21 -19 -73 -31 -68 -14 4 12 36 25 68 27 13 1 +13 -1 0 -13z m180 5 c0 -13 -8 -17 -49 -26 -25 -5 -32 -4 -26 5 13 22 75 39 +75 21z m260 -2 c0 -8 -58 -39 -75 -39 -26 0 35 42 73 49 1 1 2 -4 2 -10z m215 +-8 c-3 -6 -11 -11 -17 -11 -6 0 -6 6 2 15 14 17 26 13 15 -4z m479 -46 c-43 +-185 -58 -335 -58 -610 -1 -233 2 -291 22 -422 13 -86 20 -158 15 -166 -14 +-25 -93 -110 -97 -106 -3 2 -12 51 -21 109 -11 69 -19 193 -22 361 -6 282 7 +446 52 661 39 190 41 195 83 217 20 11 38 18 39 17 1 0 -5 -28 -13 -61z m2981 +35 c18 -34 19 -44 5 -35 -16 10 -42 65 -31 65 6 0 17 -13 26 -30z m-5478 -24 +c4 -5 -3 -6 -17 -3 -14 3 -55 11 -92 18 -38 7 -68 15 -68 19 0 9 167 -23 177 +-34z m393 40 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 +-2 10 -4z m40 -6 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 +-4 4 -10z m55 0 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 10 16 10 8 0 +12 -4 9 -10z m50 0 c-3 -5 -10 -10 -16 -10 -5 0 -9 5 -9 10 0 6 7 10 16 10 8 +0 12 -4 9 -10z m60 0 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 +10 8 0 12 -4 9 -10z m45 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 +10 2 0 4 -4 4 -10z m1244 -4 c-6 -17 -34 -30 -34 -16 0 5 8 14 18 19 22 13 22 +13 16 -3z m436 10 c0 -2 -7 -7 -16 -10 -8 -3 -12 -2 -9 4 6 10 25 14 25 6z +m3039 -32 c6 -14 11 -27 11 -30 0 -12 -21 10 -35 36 -12 24 -13 28 -1 24 7 -3 +18 -16 25 -30z m351 -25 c0 -21 -17 -6 -33 29 l-17 37 25 -28 c14 -15 25 -32 +25 -38z m-5581 45 c33 -4 61 -11 61 -16 0 -11 -112 -1 -145 13 -20 8 -20 8 1 +8 12 1 49 -2 83 -5z m877 -9 c-22 -16 -46 -20 -46 -7 0 15 13 22 39 22 25 -1 +25 -1 7 -15z m604 1 c-23 -20 -83 -39 -77 -23 2 6 19 17 38 24 46 16 56 16 39 +-1z m360 4 c0 -12 -69 -42 -84 -36 -8 3 55 38 82 45 1 1 2 -3 2 -9z m180 5 c0 +-9 -64 -45 -80 -45 -8 1 5 12 30 25 51 27 50 27 50 20z m1850 -10 c0 -8 -4 +-15 -10 -15 -5 0 -10 7 -10 15 0 8 5 15 10 15 6 0 10 -7 10 -15z m4731 -30 c7 +-13 3 -12 -10 5 -11 14 -21 30 -21 35 0 11 14 -7 31 -40z m-7796 26 c-6 -4 +-23 -12 -39 -15 -26 -6 -28 -5 -17 8 8 9 25 16 39 16 15 0 22 -4 17 -9z m305 +-1 c0 -5 -4 -10 -9 -10 -5 0 -17 -3 -25 -6 -12 -5 -15 -2 -10 10 7 17 44 22 +44 6z m186 -5 c-11 -8 -25 -15 -32 -15 -7 0 -20 -3 -30 -7 -12 -4 -15 -3 -10 +6 10 15 44 30 71 30 20 0 20 0 1 -14z m634 11 c0 -3 -4 -8 -10 -11 -5 -3 -10 +-1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m140 -11 c-14 -8 -29 -14 -35 -14 +-5 0 1 6 15 14 14 8 30 14 35 14 6 0 -1 -6 -15 -14z m1821 -36 c-10 -23 -10 +-23 -10 7 -1 17 2 34 7 38 11 12 14 -18 3 -45z m1514 21 c9 -16 11 -30 6 -30 +-6 0 -17 14 -26 30 -9 17 -11 30 -6 30 6 0 17 -13 26 -30z m204 4 c17 -38 6 +-42 -14 -5 -8 17 -12 31 -7 31 5 0 14 -12 21 -26z m2532 -25 c33 -40 39 -53 +28 -59 -23 -15 -232 -70 -379 -101 -193 -40 -401 -66 -637 -80 -416 -24 -910 +33 -1315 152 -58 17 -67 23 -77 51 -6 17 -10 32 -9 33 2 2 55 -11 118 -27 487 +-123 1032 -150 1545 -77 172 24 422 79 564 123 58 19 109 34 113 35 3 0 25 +-22 49 -50z m443 -6 c20 -32 27 -46 14 -31 -26 30 -62 88 -55 88 2 0 21 -26 +41 -57z m-8394 37 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 +-4 4 -10z m40 0 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 +-4 4 -10z m410 -5 c-14 -16 -50 -21 -50 -6 0 11 18 19 44 20 15 1 16 -2 6 -14z +m65 5 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 10 11 0 17 -4 14 +-10z m325 -5 c-7 -8 -24 -15 -39 -15 -25 1 -25 1 -7 15 11 8 29 15 39 15 16 0 +17 -3 7 -15z m525 -4 c-8 -13 -35 -15 -35 -2 0 5 8 11 18 13 21 5 26 2 17 -11z +m135 9 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z +m200 2 c0 -5 -11 -14 -25 -20 -31 -14 -33 1 -2 16 28 14 27 13 27 4z m3400 +-35 c0 -6 -9 -2 -20 8 -11 10 -20 23 -20 28 0 6 9 2 20 -8 11 -10 20 -23 20 +-28z m3071 26 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m212 +-63 c31 -52 11 -32 -27 28 -20 31 -27 45 -14 30 13 -15 32 -41 41 -58z m-8558 +48 c13 -5 -4 -6 -45 -3 -36 4 -69 11 -75 16 -12 12 88 1 120 -13z m255 18 c0 +-3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m105 -6 +c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 0 12 -4 9 -10z +m60 0 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 10 11 0 17 -4 14 +-10z m60 0 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 10 11 0 17 +-4 14 -10z m70 0 c-3 -5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 +11 0 17 -4 14 -10z m379 -5 c-6 -16 -24 -21 -24 -7 0 11 11 22 21 22 5 0 6 -7 +3 -15z m256 6 c0 -13 -8 -17 -50 -26 -31 -7 -33 -6 -22 8 12 14 23 18 65 26 4 +0 7 -3 7 -8z m180 -1 c0 -9 -40 -30 -56 -30 -14 0 0 22 19 30 30 12 37 12 37 +0z m869 -112 c-80 -348 -93 -838 -30 -1173 l9 -49 -50 -58 c-27 -32 -53 -58 +-58 -58 -9 0 -26 111 -41 272 -16 173 -6 537 20 703 22 145 52 286 82 388 17 +58 24 69 52 81 18 8 35 15 38 15 3 1 -7 -54 -22 -121z m1578 60 c-2 -13 -4 -3 +-4 22 0 25 2 35 4 23 2 -13 2 -33 0 -45z m1328 52 c3 -5 1 -10 -4 -10 -6 0 +-11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m295 -5 c6 -8 10 -20 8 -26 -2 +-6 -12 0 -21 15 -18 27 -8 37 13 11z m204 -24 c-6 -6 -24 19 -24 34 1 6 7 1 +15 -9 8 -11 12 -22 9 -25z m2880 -18 c21 -29 34 -53 29 -53 -8 0 -73 94 -73 +107 0 3 1 4 3 2 2 -2 20 -28 41 -56z m-8751 40 c-7 -2 -19 -2 -25 0 -7 3 -2 5 +12 5 14 0 19 -2 13 -5z m1109 -15 c-7 -7 -12 -8 -12 -2 0 6 3 14 7 17 3 4 9 5 +12 2 2 -3 -1 -11 -7 -17z m600 0 c-7 -7 -12 -8 -12 -2 0 6 3 14 7 17 3 4 9 5 +12 2 2 -3 -1 -11 -7 -17z m148 13 c0 -5 -11 -12 -24 -15 -13 -3 -32 -9 -42 +-13 -12 -4 -15 -3 -10 6 14 22 76 40 76 22z m2277 -13 c-3 -8 -6 -5 -6 6 -1 +11 2 17 5 13 3 -3 4 -12 1 -19z m4579 -20 c41 -60 46 -68 40 -68 -5 0 -76 98 +-76 105 0 12 9 2 36 -37z m-8652 23 c3 -4 -6 -6 -19 -3 -14 2 -25 6 -25 8 0 8 +39 4 44 -5z m921 -10 c-3 -6 -18 -11 -33 -11 -29 0 -20 15 13 22 24 5 29 3 20 +-11z m90 9 c-3 -5 -20 -10 -36 -10 -18 0 -28 4 -24 10 3 6 20 10 36 10 18 0 +28 -4 24 -10z m243 -2 c-3 -7 -19 -15 -37 -19 -38 -8 -38 12 0 22 36 10 41 10 +37 -3z m356 -2 c-7 -17 -87 -40 -81 -23 2 7 21 17 43 24 21 6 40 12 41 12 1 1 +0 -5 -3 -13z m276 10 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 +6 0 10 -2 10 -4z m85 -6 c-7 -12 -76 -42 -82 -37 -8 8 43 35 85 46 2 1 0 -4 +-3 -9z m3510 0 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 +11 -10z m179 -6 c4 -10 1 -14 -6 -12 -15 5 -23 28 -10 28 5 0 13 -7 16 -16z +m2956 -14 c12 -16 19 -30 16 -30 -2 0 -14 14 -26 30 -12 17 -19 30 -16 30 2 0 +14 -13 26 -30z m-8475 -2 c13 -5 2 -6 -30 -2 -27 3 -57 10 -65 14 -19 11 68 0 +95 -12z m691 7 c-22 -17 -46 -20 -46 -6 0 11 18 19 45 20 20 0 20 0 1 -14z +m594 5 c0 -5 -12 -12 -27 -16 -16 -3 -34 -7 -41 -10 -21 -6 -2 17 22 26 29 12 +46 12 46 0z m410 -10 c-16 -11 -40 -13 -40 -5 0 8 44 24 50 18 2 -2 -2 -8 -10 +-13z m210 15 c0 -8 -62 -37 -67 -31 -4 3 9 12 28 20 39 18 39 17 39 11z m2364 +-240 c200 -198 406 -350 661 -486 52 -28 96 -58 99 -67 15 -55 27 -123 24 +-132 -4 -12 -193 94 -326 183 -205 139 -423 334 -586 527 -108 127 -115 139 +-109 184 l6 40 45 -55 c25 -30 109 -117 186 -194z m-3909 225 c-3 -5 -13 -10 +-21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 0 12 -4 9 -10z m55 0 c0 -5 -9 +-10 -21 -10 -11 0 -17 5 -14 10 3 6 13 10 21 10 8 0 14 -4 14 -10z m65 0 c-3 +-5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 11 0 17 -4 14 -10z +m70 0 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 10 11 0 17 -4 14 +-10z m70 0 c-3 -5 -15 -10 -26 -10 -10 0 -19 5 -19 10 0 6 12 10 26 10 14 0 +23 -4 19 -10z m399 0 c-5 -5 -25 -12 -44 -16 -33 -5 -34 -5 -16 10 22 17 77 +23 60 6z m526 -5 c-7 -9 -15 -13 -17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z +m621 -77 c-29 -102 -57 -244 -78 -389 -26 -185 -24 -665 4 -839 l20 -125 -56 +-58 c-68 -70 -64 -75 -87 136 -13 118 -15 209 -11 407 7 325 35 519 118 817 +31 109 33 112 68 125 20 8 37 11 39 7 2 -5 -6 -41 -17 -81z m1705 4 c-13 -12 +-16 8 -9 49 l8 44 3 -44 c2 -23 1 -46 -2 -49z m4584 58 c12 -16 19 -30 16 -30 +-2 0 -14 14 -26 30 -12 17 -19 30 -16 30 2 0 14 -13 26 -30z m-7270 11 c0 -10 +-24 -21 -46 -21 -8 0 -14 4 -14 9 0 8 10 12 53 20 4 0 7 -3 7 -8z m175 -10 +c-8 -13 -35 -15 -35 -2 0 5 8 11 18 13 21 5 26 2 17 -11z m3879 4 c3 -8 1 -15 +-3 -15 -5 0 -11 7 -15 15 -3 8 -1 15 3 15 5 0 11 -7 15 -15z m66 -48 c0 -16 +-20 5 -36 36 l-15 32 25 -30 c14 -16 26 -34 26 -38z m-4470 43 c0 -5 -3 -10 +-7 -10 -5 0 -18 -3 -30 -6 -13 -4 -23 -2 -23 4 0 10 19 18 48 21 6 0 12 -3 12 +-9z m65 0 c-3 -5 -15 -10 -26 -10 -11 0 -17 5 -14 10 3 6 15 10 26 10 11 0 17 +-4 14 -10z m600 0 c-3 -5 -13 -10 -21 -10 -8 0 -12 5 -9 10 3 6 13 10 21 10 8 +0 12 -4 9 -10z m130 1 c-6 -4 -25 -13 -43 -19 -26 -9 -33 -9 -30 0 4 12 37 25 +68 27 8 1 10 -2 5 -8z m2172 -28 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 +-21 0 -30z m1371 11 c7 -14 8 -23 2 -19 -15 9 -32 45 -22 45 5 0 14 -12 20 +-26z m192 16 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 +11 -10z m50 -9 c13 -25 13 -34 0 -26 -16 10 -32 45 -21 45 6 0 15 -9 21 -19z +m214 -21 l17 -35 -21 24 c-11 13 -20 30 -20 39 0 19 3 15 24 -28z m-5404 26 +c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m45 +-6 c3 -5 -1 -10 -10 -10 -9 0 -13 5 -10 10 3 6 8 10 10 10 2 0 7 -4 10 -10z +m480 0 c-3 -5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 10 11 0 17 -4 +14 -10z m335 1 c0 -9 -33 -21 -57 -21 -22 0 -14 18 10 23 39 8 47 7 47 -2z +m220 5 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 +-4z m130 -10 c-18 -16 -91 -34 -75 -18 8 8 54 25 85 31 2 1 -2 -5 -10 -13z +m256 -1 c-11 -8 -29 -15 -40 -14 -17 0 -15 3 9 14 39 18 55 18 31 0z m99 0 +c-16 -8 -37 -14 -45 -14 -8 0 -1 6 15 14 17 7 37 13 45 13 8 0 2 -6 -15 -13z +m95 5 c-8 -5 -19 -10 -25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z +m3581 -17 c7 -16 15 -31 17 -36 2 -4 -3 -5 -11 -1 -12 4 -37 44 -37 59 0 15 +19 1 31 -22z m79 17 c0 -5 -4 -10 -9 -10 -6 0 -13 5 -16 10 -3 6 1 10 9 10 9 +0 16 -4 16 -10z m44 -6 c9 -22 -3 -32 -14 -14 -12 19 -12 30 -1 30 5 0 12 -7 +15 -16z m2847 -1 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z +m-8108 0 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m57 -3 c0 -5 +-7 -10 -15 -10 -8 0 -15 5 -15 10 0 6 7 10 15 10 8 0 15 -4 15 -10z m65 0 c-3 +-5 -13 -10 -21 -10 -8 0 -14 5 -14 10 0 6 9 10 21 10 11 0 17 -4 14 -10z m75 +6 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z +m65 -6 c-3 -5 -15 -10 -26 -10 -10 0 -19 5 -19 10 0 6 12 10 26 10 14 0 23 -4 +19 -10z m75 0 c-20 -13 -50 -13 -50 0 0 6 15 10 33 10 24 0 28 -3 17 -10z +m590 0 c0 -5 -6 -10 -12 -10 -7 0 -23 -3 -35 -6 -13 -4 -23 -2 -23 4 0 11 20 +19 53 21 9 0 17 -3 17 -9z m825 -7 c-4 -10 -24 -85 -45 -168 -42 -164 -74 +-343 -90 -504 -21 -211 -8 -610 26 -811 5 -32 1 -39 -50 -89 -31 -30 -58 -53 +-60 -50 -9 9 -25 135 -37 289 -25 330 11 705 101 1054 59 228 70 258 111 278 +44 22 53 22 44 1z m3275 -34 c0 -5 -4 -9 -8 -9 -9 0 -32 44 -32 58 1 10 40 +-38 40 -49z m319 21 c5 -16 8 -30 6 -30 -3 0 -11 14 -20 30 -9 17 -11 30 -6 +30 5 0 14 -13 20 -30z m-4694 10 c-3 -5 -17 -10 -31 -10 -13 0 -24 5 -24 10 0 +6 14 10 31 10 17 0 28 -4 24 -10z m2917 -22 c-8 -8 -9 -4 -5 13 4 13 8 18 11 +10 2 -7 -1 -18 -6 -23z m1324 15 c16 -21 18 -37 4 -28 -13 8 -33 45 -24 45 4 +0 13 -8 20 -17z m299 -13 c18 -34 19 -44 5 -35 -16 10 -42 65 -31 65 6 0 17 +-13 26 -30z m190 -1 c9 -17 14 -33 11 -36 -3 -3 -10 7 -16 22 -6 15 -13 32 +-16 36 -3 5 -3 9 0 9 3 0 13 -14 21 -31z m2814 -3 c-3 -3 -11 5 -18 17 -13 21 +-12 21 5 5 10 -10 16 -20 13 -22z m-7634 14 c-3 -5 -17 -10 -31 -10 -13 0 -24 +5 -24 10 0 6 14 10 31 10 17 0 28 -4 24 -10z m265 0 c0 -5 -9 -10 -20 -10 -11 +0 -20 5 -20 10 0 6 9 10 20 10 11 0 20 -4 20 -10z m180 0 c0 -5 -4 -10 -10 +-10 -5 0 -10 5 -10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z m156 1 c-8 -12 -46 +-21 -46 -11 0 9 18 18 38 19 7 1 11 -3 8 -8z m119 0 c-15 -13 -75 -31 -75 -22 +0 4 15 13 33 19 42 13 53 14 42 3z m-1255 -11 c0 -5 -7 -10 -16 -10 -8 0 -12 +5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 -10z m365 0 c-3 -5 -11 -10 -16 -10 -6 0 +-7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m75 0 c-20 -13 -53 -13 -45 0 3 6 +18 10 33 10 21 0 24 -2 12 -10z m500 0 c0 -5 -10 -10 -22 -10 -19 0 -20 2 -8 +10 19 13 30 13 30 0z m390 1 c-8 -5 -26 -11 -40 -15 -21 -5 -20 -3 5 9 32 15 +60 20 35 6z m3480 -22 c6 -10 7 -19 2 -19 -5 0 -14 12 -20 26 -14 29 2 24 18 +-7z m235 1 c9 -16 11 -30 6 -30 -6 0 -17 14 -26 30 -9 17 -11 30 -6 30 6 0 17 +-13 26 -30z m2857 -17 c20 -27 34 -51 30 -55 -9 -9 -249 -70 -382 -98 -630 +-129 -1349 -99 -1972 84 -104 30 -113 35 -125 64 -8 19 -9 32 -3 32 5 0 70 +-16 142 -35 691 -179 1454 -173 2123 19 66 19 127 35 135 35 9 1 32 -20 52 +-46z m239 30 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z +m-8078 0 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m140 0 c-7 -2 +-21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m75 0 c-10 -2 -26 -2 -35 0 +-10 3 -2 5 17 5 19 0 27 -2 18 -5z m417 -3 c-3 -5 -20 -10 -36 -10 -18 0 -28 +4 -24 10 3 6 20 10 36 10 18 0 28 -4 24 -10z m179 0 c-14 -14 -82 -26 -69 -12 +9 9 28 15 70 21 5 0 5 -3 -1 -9z m181 1 c-14 -13 -83 -26 -70 -13 10 10 37 19 +65 21 8 1 10 -2 5 -8z m565 0 c0 -5 -7 -28 -16 -52 -52 -146 -119 -465 -146 +-694 -16 -136 -16 -547 0 -675 7 -52 15 -118 18 -145 l6 -51 -56 -48 c-31 -27 +-59 -46 -62 -43 -10 10 -23 133 -33 307 -24 429 36 869 176 1282 30 91 40 109 +62 117 34 12 51 13 51 2z m3310 -35 c0 -6 -7 -2 -15 8 -8 11 -15 25 -15 30 0 +6 7 2 15 -8 8 -11 15 -25 15 -30z m288 19 c16 -34 15 -40 -2 -26 -16 13 -28 +51 -17 51 4 0 13 -11 19 -25z m3083 -30 l10 -20 -16 20 c-9 11 -21 29 -26 40 +l-10 20 16 -20 c9 -11 21 -29 26 -40z m-7696 35 c-3 -5 -20 -10 -36 -10 -18 0 +-28 4 -24 10 3 6 20 10 36 10 18 0 28 -4 24 -10z m2796 -67 c-9 -16 -10 -15 +-11 7 0 14 4 36 8 50 7 24 7 24 10 -7 2 -18 -1 -41 -7 -50z m1864 46 c9 -17 +14 -33 11 -36 -4 -4 -36 49 -36 62 0 13 11 2 25 -26z m-4755 11 c-20 -13 -63 +-13 -55 0 3 6 21 10 38 10 24 0 28 -3 17 -10z m265 0 c-3 -5 -10 -10 -16 -10 +-5 0 -9 5 -9 10 0 6 7 10 16 10 8 0 12 -4 9 -10z m350 0 c-11 -5 -29 -9 -40 +-9 l-20 0 20 9 c11 5 29 9 40 9 l20 0 -20 -9z m105 0 c-8 -5 -22 -9 -30 -9 +-10 0 -8 3 5 9 27 12 43 12 25 0z m2337 -42 c-2 -13 -4 -5 -4 17 -1 22 1 32 4 +23 2 -10 2 -28 0 -40z m158 -16 c80 -107 300 -326 435 -435 144 -116 304 -223 +446 -298 54 -29 101 -54 103 -55 5 -4 30 -125 31 -147 0 -16 -11 -13 -77 23 +-104 56 -338 213 -443 296 -176 139 -561 555 -563 607 -1 40 4 77 11 77 4 -1 +30 -31 57 -68z m1135 37 c6 -10 7 -19 2 -19 -5 0 -14 12 -20 26 -14 29 2 24 +18 -7z m115 1 c9 -16 12 -30 7 -30 -8 0 -32 42 -32 55 0 13 11 2 25 -25z m130 +0 c9 -16 11 -30 6 -30 -6 0 -17 14 -26 30 -9 17 -11 30 -6 30 6 0 17 -13 26 +-30z m3146 -25 l10 -20 -16 20 c-9 11 -21 29 -26 40 l-10 20 16 -20 c9 -11 21 +-29 26 -40z m-8208 38 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z +m54 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m76 -1 c-7 -2 +-19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m82 -3 c-3 -5 -15 -10 -26 -10 +-10 0 -19 5 -19 10 0 6 12 10 26 10 14 0 23 -4 19 -10z m55 6 c0 -3 -4 -8 -10 +-11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m108 -3 c-10 -2 -26 +-2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 18 -5z m307 -3 c-3 -5 -11 -10 -16 -10 +-6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m200 0 c-3 -5 -16 -10 -28 +-10 -18 0 -19 2 -7 10 20 13 43 13 35 0z m544 -139 c-49 -153 -110 -414 -128 +-556 -42 -315 -44 -657 -5 -965 l5 -45 -59 -47 c-43 -33 -62 -43 -65 -34 -17 +44 -29 322 -24 554 9 407 75 764 207 1122 40 108 42 111 106 119 7 0 -9 -62 +-37 -148z m3846 119 c17 -34 18 -40 6 -40 -7 0 -31 51 -31 66 0 12 12 0 25 +-26z m2905 -16 c18 -25 30 -47 28 -49 -1 -2 -18 19 -36 46 -41 62 -34 65 8 3z +m-8566 -50 c-187 -247 -375 -564 -511 -859 -256 -555 -402 -1124 -448 -1747 +-6 -79 -16 -110 -31 -95 -9 8 16 267 41 448 115 806 430 1568 924 2237 41 56 +79 102 83 102 4 0 -22 -39 -58 -86z m23 -26 c-406 -558 -700 -1225 -836 -1894 +-46 -230 -91 -584 -91 -721 0 -46 -3 -53 -20 -53 -23 0 -23 -5 -10 155 75 912 +399 1779 943 2518 44 59 82 106 84 103 3 -3 -29 -51 -70 -108z m983 102 c-36 +-11 -50 -11 -50 0 0 6 17 10 38 9 33 -1 34 -2 12 -9z m189 -4 c-10 -8 -73 -16 +-64 -7 6 5 21 11 35 13 25 4 37 1 29 -6z m181 4 c-8 -5 -26 -9 -40 -9 l-25 1 +25 8 c14 4 32 8 40 9 13 1 13 0 0 -9z m2450 -10 c0 -11 -4 -20 -10 -20 -5 0 +-10 9 -10 20 0 11 5 20 10 20 6 0 10 -9 10 -20z m1675 -10 c18 -34 19 -44 5 +-35 -16 10 -42 65 -31 65 6 0 17 -13 26 -30z m-5365 14 c0 -4 -22 -36 -49 -73 +-156 -212 -303 -457 -431 -716 -284 -578 -443 -1163 -490 -1805 -11 -146 -17 +-169 -44 -170 -12 0 0 210 25 405 101 804 413 1593 892 2252 73 101 97 127 97 +107z m783 -1 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m4327 -8 +c7 -9 8 -15 2 -15 -5 0 -12 7 -16 15 -3 8 -4 15 -2 15 2 0 9 -7 16 -15z m124 +-1 c17 -17 21 -34 8 -34 -5 0 -14 11 -20 25 -13 29 -10 31 12 9z m335 -16 c14 +-39 5 -51 -9 -13 -6 15 -13 32 -16 36 -3 5 -1 9 4 9 6 0 15 -14 21 -32z m2942 +-23 l10 -20 -16 20 c-9 11 -21 29 -26 40 l-10 20 16 -20 c9 -11 21 -29 26 -40z +m-8472 26 c-8 -11 -59 -86 -115 -168 -460 -675 -752 -1490 -815 -2278 -23 +-288 -21 -280 -48 -283 l-24 -4 7 99 c65 947 361 1782 905 2545 42 59 82 108 +90 108 11 0 11 -3 0 -19z m404 12 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 +-2 13 -5z m64 1 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m96 -1 +c-7 -2 -21 -2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m85 0 c-10 -2 -26 -2 +-35 0 -10 3 -2 5 17 5 19 0 27 -2 18 -5z m242 -3 c0 -5 -10 -10 -22 -9 -22 0 +-22 1 -3 9 11 5 21 9 23 9 1 1 2 -3 2 -9z m685 -7 c-91 -235 -163 -516 -206 +-803 -35 -234 -37 -755 -3 -945 5 -28 0 -34 -56 -73 -34 -24 -63 -42 -65 -40 +-15 15 -27 307 -22 533 10 458 80 814 242 1237 37 97 44 104 94 107 18 1 22 +-3 16 -16z m2096 -35 l-9 -33 -1 36 c-1 20 2 39 6 43 13 12 15 -10 4 -46z +m1719 1 c0 -5 -5 -9 -10 -9 -10 0 -30 41 -30 58 1 10 40 -39 40 -49z m-5336 +29 c-5 -7 -38 -56 -75 -108 -369 -525 -654 -1210 -774 -1865 -31 -168 -61 +-422 -71 -600 -7 -131 -11 -145 -47 -145 -18 0 -18 7 -12 108 52 846 314 1649 +763 2342 112 173 192 280 208 280 10 0 12 -5 8 -12z m1013 6 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m2534 -56 l-9 -33 -1 41 c-1 22 2 44 +7 48 12 12 14 -19 3 -56z m1962 42 c3 -11 3 -20 1 -20 -2 0 -8 9 -14 20 -6 11 +-7 20 -2 20 6 0 12 -9 15 -20z m-5453 4 c0 -3 -24 -40 -54 -82 -139 -200 -296 +-473 -401 -702 -258 -564 -397 -1117 -435 -1734 -6 -93 -11 -170 -13 -171 -1 +-1 -14 -5 -29 -9 l-28 -6 0 57 c0 69 25 356 40 463 94 669 333 1327 688 1890 +104 165 202 300 217 300 8 0 15 -3 15 -6z m617 0 c-3 -3 -12 -4 -19 -1 -8 3 +-5 6 6 6 11 1 17 -2 13 -5z m60 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 +-2 13 -5z m200 0 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m448 +-107 c-105 -273 -177 -566 -217 -887 -14 -118 -18 -612 -5 -780 l8 -105 -58 +-37 c-53 -34 -58 -36 -65 -19 -4 11 -11 108 -17 218 -28 562 72 1132 288 1640 +28 66 44 81 88 82 20 1 19 -3 -22 -112z m2101 91 c-3 -13 -6 -29 -6 -36 0 -7 +-4 -11 -8 -8 -12 7 -2 66 10 66 6 0 8 -10 4 -22z m1714 1 c0 -6 -4 -7 -10 -4 +-5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-5080 6 c0 -3 -24 -40 +-54 -83 -219 -314 -446 -778 -579 -1183 -130 -396 -223 -908 -228 -1259 -2 +-127 -7 -144 -47 -148 -17 -2 -32 0 -32 5 0 5 5 80 10 168 43 654 195 1230 +480 1810 149 305 392 695 433 695 9 0 17 -2 17 -5z m3532 -39 c-6 -50 -18 -46 +-14 4 2 22 7 38 11 36 4 -3 5 -21 3 -40z m1319 22 c11 -21 11 -22 -4 -9 -10 7 +-17 17 -17 22 0 15 9 10 21 -13z m407 4 c6 -18 -15 -14 -22 4 -4 10 -1 14 6 +12 6 -2 14 -10 16 -16z m-5198 1 c0 -3 -35 -61 -79 -127 -451 -692 -708 -1501 +-747 -2354 -7 -159 -7 -159 -54 -164 l-25 -3 3 110 c19 704 234 1470 591 2110 +112 200 270 435 292 435 11 0 19 -3 19 -7z m1140 4 c0 -2 -18 -48 -40 -102 +-121 -296 -209 -641 -250 -980 -27 -215 -29 -646 -5 -826 l6 -46 -62 -37 c-34 +-20 -63 -35 -65 -34 -1 2 -8 90 -14 195 -28 463 39 951 195 1418 56 169 150 +395 169 407 11 8 66 11 66 5z m3590 -32 c0 -5 -5 -3 -10 5 -5 8 -10 20 -10 25 +0 6 5 3 10 -5 5 -8 10 -19 10 -25z m855 -9 c690 -194 1477 -193 2184 0 67 19 +124 34 126 34 6 0 77 -101 74 -104 -10 -8 -257 -67 -374 -90 -301 -57 -501 +-76 -820 -76 -419 0 -807 56 -1185 170 -154 46 -166 52 -173 86 -5 31 -18 32 +168 -20z m-5515 29 c0 -2 -29 -48 -64 -102 -342 -527 -587 -1178 -681 -1808 +-24 -163 -45 -387 -45 -495 0 -148 -9 -198 -34 -206 -65 -18 -60 -33 -52 137 +40 879 300 1675 787 2411 32 50 50 68 67 68 12 0 22 -2 22 -5z m967 -7 c-152 +-357 -229 -599 -286 -898 -54 -286 -78 -629 -62 -902 6 -100 11 -192 11 -204 +0 -17 -14 -31 -56 -54 -30 -18 -58 -30 -61 -27 -12 12 -24 314 -18 462 21 558 +129 1024 352 1522 42 94 48 102 77 106 17 2 35 5 40 5 4 1 6 -4 3 -10z m3801 +-14 c7 -14 8 -23 2 -19 -15 9 -32 45 -22 45 5 0 14 -12 20 -26z m75 12 c4 -10 +1 -13 -9 -9 -7 3 -14 9 -14 14 0 14 17 10 23 -5z m-5353 0 c0 -2 -8 -10 -17 +-17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m580 -2 c0 -3 -13 -24 -28 -47 +-106 -156 -279 -485 -377 -718 -80 -190 -166 -454 -219 -669 -77 -313 -110 +-551 -128 -897 l-12 -241 -29 -6 c-60 -12 -58 -17 -52 117 10 202 25 384 46 +529 93 650 333 1292 691 1846 48 74 65 92 84 92 13 0 24 -3 24 -6z m70 -4 c5 +0 -27 -59 -70 -130 -403 -666 -640 -1497 -640 -2246 0 -172 5 -159 -74 -178 +l-29 -7 7 168 c32 780 229 1485 591 2118 116 202 174 288 191 281 9 -3 19 -6 +24 -6z m685 -94 c-172 -371 -290 -817 -336 -1271 -14 -138 -17 -531 -6 -652 +l8 -82 -60 -30 -60 -31 -5 28 c-13 68 -17 344 -7 507 34 547 146 999 365 1477 +l68 147 36 3 c21 2 38 3 40 2 1 0 -18 -45 -43 -98z m2507 55 c-2 -23 -9 -41 +-14 -41 -6 0 -8 10 -4 23 3 12 6 32 6 45 0 13 4 21 8 18 4 -2 6 -23 4 -45z +m1558 30 c13 -25 13 -34 0 -26 -16 10 -32 45 -21 45 6 0 15 -9 21 -19z m-4670 +0 c0 -4 -30 -60 -66 -122 -388 -664 -604 -1445 -604 -2180 l0 -188 -42 -12 +c-24 -6 -47 -13 -52 -17 -14 -8 0 434 18 583 82 666 284 1259 618 1813 67 110 +84 132 104 132 13 0 24 -4 24 -9z m550 6 c0 -2 -26 -60 -59 -128 -173 -365 +-290 -769 -346 -1196 -26 -197 -38 -502 -27 -678 5 -88 8 -164 5 -168 -7 -12 +-106 -57 -112 -51 -11 11 -16 268 -9 459 20 560 152 1089 404 1615 63 130 69 +139 98 143 17 2 34 5 39 5 4 1 7 0 7 -1z m2487 -34 c-3 -10 -5 -4 -5 12 0 17 +2 24 5 18 2 -7 2 -21 0 -30z m363 -94 c35 -46 134 -154 220 -239 214 -214 396 +-353 661 -504 128 -73 118 -60 135 -179 l7 -49 -44 23 c-24 12 -89 50 -145 84 +-345 213 -622 467 -866 793 -86 114 -94 132 -81 181 l6 24 21 -25 c12 -13 50 +-63 86 -109z m1084 115 c10 -25 -1 -29 -14 -5 -6 12 -7 21 -1 21 5 0 12 -7 15 +-16z m316 -4 c7 -13 7 -20 1 -20 -6 0 -15 9 -21 20 -7 13 -7 20 -1 20 6 0 15 +-9 21 -20z m53 -20 c3 -11 1 -20 -4 -20 -10 0 -29 33 -29 51 0 18 27 -7 33 +-31z m-4766 23 c-133 -229 -202 -364 -286 -560 -229 -537 -351 -1126 -351 +-1700 l0 -181 -47 -16 c-26 -9 -49 -16 -51 -16 -11 0 7 508 23 630 73 592 258 +1158 543 1660 105 186 108 190 143 190 16 0 28 -3 26 -7z m83 -3 c0 -5 -14 +-33 -31 -62 -36 -61 -154 -295 -194 -383 -126 -281 -233 -628 -295 -950 -46 +-244 -61 -401 -67 -706 l-6 -297 -39 -12 c-22 -6 -46 -14 -54 -17 -20 -7 -19 +295 1 526 57 644 247 1245 573 1814 50 86 59 97 84 97 15 0 28 -4 28 -10z m90 +1 c0 -4 -25 -55 -56 -112 -231 -424 -393 -933 -465 -1459 -16 -118 -22 -228 +-26 -466 l-5 -311 -50 -18 c-27 -9 -51 -15 -54 -12 -9 9 -5 410 6 532 54 626 +237 1225 537 1758 50 88 58 97 84 97 16 0 29 -4 29 -9z m20 -148 c-220 -441 +-353 -893 -416 -1413 -13 -106 -18 -223 -18 -437 l-1 -291 -50 -21 c-28 -12 +-54 -21 -59 -21 -5 0 -6 136 -3 303 6 329 22 487 77 758 88 428 226 808 437 +1197 42 78 46 82 78 82 l34 0 -79 -157z m170 152 c0 -3 -24 -54 -54 -114 -157 +-313 -285 -698 -351 -1053 -50 -278 -58 -365 -62 -723 l-3 -340 -50 -24 c-27 +-14 -53 -21 -57 -17 -5 4 -8 137 -7 294 1 234 5 318 23 452 67 510 191 925 +407 1361 l84 169 35 0 c19 0 35 -2 35 -5z m2511 -57 l-9 -33 -1 41 c-1 22 2 +44 7 48 12 12 14 -19 3 -56z m1639 43 c13 -25 13 -34 0 -26 -16 10 -32 45 -21 +45 6 0 15 -9 21 -19z m120 -2 c6 -11 9 -25 7 -32 -2 -7 -11 3 -21 21 -9 17 +-12 32 -7 32 6 0 15 -9 21 -21z m250 0 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 +0 6 5 7 10 4 6 -3 10 -11 10 -16z m38 -4 c6 -14 8 -25 3 -25 -4 0 -13 11 -19 +25 -6 14 -8 25 -3 25 4 0 13 -11 19 -25z m42 -24 c-1 -10 -6 -7 -15 9 -19 33 +-18 50 0 26 8 -11 15 -27 15 -35z m-626 23 c3 -8 2 -12 -4 -9 -6 3 -10 10 -10 +16 0 14 7 11 14 -7z m481 -34 c6 -22 5 -23 -8 -10 -8 8 -18 26 -22 40 -6 22 +-5 23 8 10 8 -8 18 -26 22 -40z m-5665 36 c0 -2 -8 -10 -17 -17 -16 -13 -17 +-12 -4 4 13 16 21 21 21 13z m5294 -35 c-6 -6 -24 19 -24 34 1 6 7 1 15 -9 8 +-11 12 -22 9 -25z m-1398 -17 c-4 -20 -10 -34 -12 -31 -3 3 -2 21 2 41 3 21 9 +35 11 32 3 -3 2 -21 -1 -42z m1524 2 c0 -6 -7 -2 -15 8 -8 11 -15 25 -15 30 0 +6 7 2 15 -8 8 -11 15 -25 15 -30z m118 19 c7 -14 12 -29 12 -33 -1 -10 -40 38 +-40 49 0 18 17 8 28 -16z m-308 -5 c6 -11 8 -20 6 -20 -3 0 -10 9 -16 20 -6 +11 -8 20 -6 20 3 0 10 -9 16 -20z m478 -5 c16 -34 15 -40 -2 -26 -16 13 -28 +51 -17 51 4 0 13 -11 19 -25z m-2037 -55 l-10 -25 0 25 c-1 14 3 36 7 50 l7 +25 3 -25 c2 -14 -2 -37 -7 -50z m81 20 c-2 -17 -9 -33 -15 -37 -7 -4 -8 5 -4 +27 4 18 7 40 7 49 0 12 2 13 8 3 5 -7 6 -26 4 -42z m1598 6 c0 -6 -7 -2 -15 8 +-8 11 -15 25 -15 30 0 6 7 2 15 -8 8 -11 15 -25 15 -30z m250 -7 c0 -5 -4 -9 +-8 -9 -9 0 -32 44 -32 58 1 10 40 -38 40 -49z m456 11 c402 -117 771 -170 +1199 -170 299 0 505 19 789 71 97 18 366 82 401 95 11 5 83 -92 74 -100 -10 +-8 -268 -68 -389 -90 -293 -53 -390 -61 -775 -61 -390 1 -534 13 -825 72 -237 +47 -596 150 -611 175 -9 14 -12 48 -4 48 2 0 66 -18 141 -40z m-588 5 c14 -29 +-2 -34 -18 -6 -12 24 -13 31 -2 31 5 0 14 -11 20 -25z m291 -5 c12 -36 -1 -40 +-17 -5 -14 31 -15 35 -3 35 5 0 14 -13 20 -30z m-479 -1 c0 -6 -4 -7 -10 -4 +-5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m120 -33 c0 -6 -7 -2 +-15 8 -8 11 -15 25 -15 30 0 6 7 2 15 -8 8 -11 15 -25 15 -30z m130 -10 c-1 +-6 -10 0 -20 13 -11 13 -20 28 -20 35 1 6 10 0 20 -13 11 -13 20 -28 20 -35z +m115 24 c9 -16 11 -30 6 -30 -6 0 -17 14 -26 30 -9 17 -11 30 -6 30 6 0 17 +-13 26 -30z m164 -25 c0 -5 -6 -1 -14 9 -8 11 -15 27 -15 35 1 17 29 -26 29 +-44z m-5889 0 c-17 -25 -33 -45 -36 -45 -3 0 9 20 26 45 17 25 33 45 36 45 3 +0 -9 -20 -26 -45z m3897 8 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 +-30z m2017 11 c10 -37 2 -39 -11 -4 -6 17 -8 30 -3 30 4 0 11 -12 14 -26z +m-2234 -5 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 +-16z m528 -104 c256 -339 592 -632 963 -841 87 -48 99 -58 99 -82 0 -15 3 -51 +7 -81 l6 -54 -59 33 c-110 62 -339 218 -449 306 -214 172 -473 453 -629 682 +-31 46 -56 91 -56 100 0 28 12 63 20 60 4 -2 48 -57 98 -123z m1567 95 c9 -16 +11 -30 6 -30 -11 0 -31 32 -31 49 0 19 9 12 25 -19z m-1991 -18 c-7 -29 -24 +-54 -24 -35 0 29 13 72 21 67 5 -3 6 -17 3 -32z m71 -11 c-4 -23 -11 -39 -15 +-36 -5 3 -7 11 -5 18 2 7 6 25 10 41 9 43 18 23 10 -23z m70 -8 c-10 -40 -17 +-20 -9 23 5 24 9 32 12 21 2 -10 1 -30 -3 -44z m1599 41 c4 -10 1 -14 -6 -12 +-15 5 -23 28 -10 28 5 0 13 -7 16 -16z m126 -5 c12 -22 8 -35 -8 -25 -13 8 +-22 46 -11 46 4 0 13 -9 19 -21z m-306 -5 c3 -8 2 -12 -4 -9 -6 3 -10 10 -10 +16 0 14 7 11 14 -7z m479 -14 c3 -11 2 -20 -3 -20 -8 0 -20 24 -20 41 0 17 17 +1 23 -21z m512 -80 c233 -63 509 -109 770 -131 206 -17 677 -6 875 21 211 28 +474 81 621 126 12 3 26 -10 47 -45 l31 -50 -52 -15 c-74 -21 -267 -62 -372 +-80 -319 -54 -772 -71 -1095 -42 -217 20 -468 61 -665 110 -152 38 -452 132 +-472 148 -7 6 -13 21 -13 33 l0 23 108 -35 c59 -18 157 -47 217 -63z m-2632 +60 c-7 -28 -13 -25 -13 6 0 14 4 23 9 20 5 -3 7 -15 4 -26z m1687 -3 c0 -5 -4 +-5 -10 -2 -5 3 -10 14 -10 23 0 15 2 15 10 2 5 -8 10 -19 10 -23z m70 12 c0 +-6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m240 11 +c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z +m166 -17 c-7 -7 -26 7 -26 19 0 6 6 6 15 -2 9 -7 13 -15 11 -17z m-1913 -26 +c-3 -20 -10 -37 -15 -37 -5 0 -6 10 -3 23 4 12 9 30 12 40 8 31 13 13 6 -26z +m-298 -11 c-4 -20 -11 -36 -16 -36 -12 0 -11 10 2 49 14 41 22 34 14 -13z +m1670 34 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z +m179 -6 c10 -25 -1 -29 -14 -5 -6 12 -7 21 -1 21 5 0 12 -7 15 -16z m-1783 +-64 l-10 -25 0 25 c-1 14 3 36 7 50 l7 25 3 -25 c2 -14 -2 -37 -7 -50z m89 45 +c0 -14 -4 -25 -10 -25 -11 0 -14 33 -3 43 11 11 13 8 13 -18z m73 -7 c-7 -41 +-22 -71 -23 -47 0 31 12 79 21 79 5 0 6 -15 2 -32z m1555 -4 c-4 -3 -12 5 -18 +18 -12 22 -12 22 6 6 10 -10 15 -20 12 -24z m147 26 c3 -5 2 -10 -4 -10 -5 0 +-13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m55 -33 c0 -5 -7 -4 -15 3 -8 +7 -15 20 -15 29 1 13 3 13 15 -3 8 -11 15 -24 15 -29z m-270 12 c0 -6 -4 -7 +-10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-5446 -46 c-450 +-698 -714 -1473 -784 -2303 -7 -74 -14 -137 -16 -139 -14 -15 -15 25 -5 146 +57 647 227 1240 522 1823 97 192 297 530 314 530 3 0 -11 -26 -31 -57z m4051 +17 c-9 -41 -17 -33 -9 9 4 17 9 30 11 27 3 -2 2 -19 -2 -36z m1579 24 c10 -25 +-1 -29 -14 -5 -6 12 -7 21 -1 21 5 0 12 -7 15 -16z m136 -33 c-1 -13 -4 -12 +-15 3 -8 11 -15 27 -15 35 1 13 4 12 15 -3 8 -11 15 -27 15 -35z m74 33 c4 +-10 1 -14 -6 -12 -15 5 -23 28 -10 28 5 0 13 -7 16 -16z m40 0 c11 -28 6 -39 +-9 -20 -8 11 -15 23 -15 28 0 14 18 9 24 -8z m-2203 -37 c-13 -13 -15 1 -4 30 +7 17 8 17 11 -1 2 -10 -1 -23 -7 -29z m496 20 c17 -37 189 -263 271 -355 42 +-48 88 -100 101 -115 42 -47 263 -244 347 -308 102 -79 254 -181 376 -252 l96 +-57 4 -75 c2 -41 -1 -75 -6 -75 -19 0 -249 147 -359 229 -161 119 -261 207 +-413 363 -151 154 -263 292 -380 468 -83 124 -84 125 -72 163 13 43 21 46 35 +14z m1387 -16 c-6 -6 -24 19 -24 34 1 6 7 1 15 -9 8 -11 12 -22 9 -25z m431 +29 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m33 +-15 c-3 -3 -9 2 -12 12 -6 14 -5 15 5 6 7 -7 10 -15 7 -18z m-538 -5 c6 -11 8 +-20 6 -20 -3 0 -10 9 -16 20 -6 11 -8 20 -6 20 3 0 10 -9 16 -20z m204 -29 +c-7 -7 -34 28 -34 43 1 6 10 0 21 -13 11 -13 17 -27 13 -30z m246 7 c0 -4 -4 +-8 -10 -8 -5 0 -10 4 -10 9 0 5 -3 18 -6 28 -5 16 -4 16 10 -1 9 -11 16 -23 +16 -28z m-2184 -13 c-4 -19 -11 -35 -16 -35 -13 0 -12 10 1 49 14 41 23 33 15 +-14z m229 1 c-4 -20 -12 -36 -17 -36 -5 0 -6 10 -3 23 4 12 9 30 12 40 9 32 +15 11 8 -27z m1443 19 c-3 -3 -9 2 -12 12 -6 14 -5 15 5 6 7 -7 10 -15 7 -18z +m392 -14 c-1 -13 -3 -13 -15 3 -19 26 -19 42 0 26 8 -7 15 -20 15 -29z m437 +-7 c469 -155 937 -222 1460 -211 348 7 624 42 937 118 65 16 120 28 120 27 1 +-2 14 -23 30 -46 15 -24 26 -45 24 -47 -8 -9 -339 -76 -458 -94 -249 -37 -380 +-46 -670 -45 -294 0 -443 12 -710 55 -245 39 -590 129 -797 209 -72 28 -83 35 +-83 56 0 13 2 24 5 24 2 0 66 -20 142 -46z m-2422 4 c-4 -18 -11 -40 -16 -48 +-7 -13 -8 -13 -9 1 0 32 13 79 22 79 6 0 7 -14 3 -32z m1779 -7 c-6 -6 -24 19 +-24 34 1 6 7 1 15 -9 8 -11 12 -22 9 -25z m360 23 c9 -23 7 -36 -3 -30 -12 8 +-21 46 -11 46 4 0 11 -7 14 -16z m-2094 -4 c0 -5 -4 -10 -10 -10 -5 0 -10 5 +-10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z m1664 -29 c-6 -6 -24 19 -24 34 1 6 +7 1 15 -9 8 -11 12 -22 9 -25z m199 8 c7 -27 -14 -19 -24 9 -6 16 -5 20 6 16 +7 -3 15 -14 18 -25z m127 -18 c-1 -13 -4 -12 -15 3 -8 11 -15 27 -15 35 1 13 +4 12 15 -3 8 -11 15 -27 15 -35z m-2230 27 c-1 -18 -28 -76 -29 -62 -2 24 12 +74 20 74 5 0 9 -6 9 -12z m1830 -3 c0 -8 -2 -15 -4 -15 -2 0 -6 7 -10 15 -3 8 +-1 15 4 15 6 0 10 -7 10 -15z m550 -25 c0 -13 -1 -13 -10 0 -5 8 -10 22 -10 +30 0 13 1 13 10 0 5 -8 10 -22 10 -30z m-2021 -24 c-9 -8 -10 -7 -5 7 3 10 7 +26 7 35 1 9 4 6 6 -7 3 -13 -1 -28 -8 -35z m1667 17 c-4 -4 -11 -1 -16 7 -16 +25 -11 35 7 17 9 -9 13 -20 9 -24z m-1757 20 c0 -5 -4 -17 -9 -28 -8 -18 -9 +-17 -9 8 -1 15 4 27 9 27 6 0 10 -3 9 -7z m1681 -19 c0 -8 -4 -12 -10 -9 -5 3 +-10 13 -10 21 0 8 5 12 10 9 6 -3 10 -13 10 -21z m200 7 c12 -24 13 -31 2 -31 +-5 0 -14 11 -20 25 -14 29 2 34 18 6z m120 10 c0 -5 3 -18 6 -28 5 -16 4 -16 +-10 1 -18 23 -20 36 -6 36 6 0 10 -4 10 -9z m-2134 -46 c-4 -19 -11 -33 -16 +-30 -4 3 -3 21 3 40 13 44 22 38 13 -10z m2271 23 c-3 -8 -6 -5 -6 6 -1 11 2 +17 5 13 3 -3 4 -12 1 -19z m-2470 -33 c-6 -19 -12 -33 -15 -30 -8 8 9 76 18 +70 4 -3 3 -21 -3 -40z m278 1 c-4 -20 -12 -36 -17 -36 -9 0 -2 54 9 73 10 17 +14 -2 8 -37z m1861 7 c-4 -4 -11 -1 -16 7 -16 25 -11 35 7 17 9 -9 13 -20 9 +-24z m247 7 c3 -11 2 -20 -3 -20 -8 0 -20 24 -20 41 0 17 17 1 23 -21z m-2033 +-11 c-11 -36 -20 -49 -20 -28 0 25 12 59 20 59 5 0 5 -14 0 -31z m437 -314 +c240 -300 576 -593 900 -784 l113 -66 0 -78 0 -78 -32 17 c-67 34 -317 205 +-423 290 -60 48 -187 164 -281 258 -216 216 -358 393 -496 621 l-55 89 15 37 +14 38 79 -117 c42 -64 117 -166 166 -227z m1268 335 c3 -5 2 -10 -4 -10 -5 0 +-13 5 -16 10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m215 -33 c0 -5 -7 -4 -15 3 +-8 7 -15 20 -15 29 1 13 3 13 15 -3 8 -11 15 -24 15 -29z m458 -16 c467 -157 +889 -225 1402 -225 376 0 660 31 988 107 l143 34 26 -44 c14 -24 24 -45 22 +-47 -7 -5 -137 -36 -237 -56 -588 -115 -1256 -104 -1852 31 -244 56 -670 195 +-670 219 0 5 -3 15 -6 24 -3 9 -3 16 0 16 4 0 86 -27 184 -59z m-2811 27 c-3 +-8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m144 -45 c-10 -17 -10 -17 +-11 2 0 11 4 31 8 45 l7 25 3 -27 c2 -15 -1 -35 -7 -45z m59 60 c0 -5 -5 -15 +-10 -23 -8 -12 -10 -11 -10 8 0 12 5 22 10 22 6 0 10 -3 10 -7z m2303 -23 c3 +-11 1 -20 -4 -20 -5 0 -9 4 -9 9 0 5 -3 17 -7 27 -4 11 -3 15 4 11 6 -4 13 +-16 16 -27z m-438 10 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 +8 -4 11 -10z m203 -9 c3 -8 -1 -12 -9 -9 -7 2 -15 10 -17 17 -3 8 1 12 9 9 7 +-2 15 -10 17 -17z m128 -19 c-9 -8 -26 10 -26 26 1 15 2 15 15 -2 8 -11 13 +-21 11 -24z m-1941 -9 c-6 -35 -25 -70 -25 -47 0 18 21 84 27 84 3 0 2 -17 -2 +-37z m2085 9 c0 -15 -2 -15 -10 -2 -13 20 -13 33 0 25 6 -3 10 -14 10 -23z +m-2324 -33 c-10 -24 -15 -28 -15 -14 -1 34 11 67 21 57 6 -6 3 -22 -6 -43z +m88 18 c-3 -9 -11 -17 -16 -17 -6 0 -7 7 -4 16 3 9 6 21 6 27 0 8 3 8 10 1 6 +-6 8 -18 4 -27z m72 -23 c-4 -18 -11 -34 -16 -34 -13 0 -12 4 2 53 14 46 23 +33 14 -19z m1664 35 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 +10 -11 10 -16z m70 5 c0 -8 -4 -12 -10 -9 -5 3 -10 10 -10 16 0 5 5 9 10 9 6 +0 10 -7 10 -16z m-2086 -16 c-8 -27 -12 -33 -19 -27 -7 8 7 49 17 49 5 0 6 +-10 2 -22z m67 -25 c-9 -16 -10 -16 -11 -1 0 9 3 25 7 35 7 16 8 17 11 1 2 +-10 -1 -25 -7 -35z m426 25 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 +-19z m1673 12 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 +-4 11 -10z m245 0 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 +-4 11 -10z m-2460 -39 c-4 -17 -11 -31 -17 -31 -6 0 -7 8 -3 18 4 9 10 25 12 +35 9 29 15 11 8 -22z m2265 19 c7 -13 7 -20 1 -20 -6 0 -15 9 -21 20 -7 13 -7 +20 -1 20 6 0 15 -9 21 -20z m-2074 -35 c-4 -19 -12 -35 -18 -35 -5 0 -7 7 -4 +16 3 9 9 27 12 40 10 37 17 20 10 -21z m1918 30 c3 -8 1 -15 -3 -15 -5 0 -11 +7 -15 15 -3 8 -1 15 3 15 5 0 11 -7 15 -15z m76 -6 c0 -6 -4 -7 -10 -4 -5 3 +-10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-1690 -34 c-16 -47 -23 -40 +-9 9 6 21 13 36 16 33 3 -3 0 -22 -7 -42z m1897 30 c9 -25 -4 -29 -17 -6 -7 +15 -7 21 0 21 6 0 13 -7 17 -15z m494 -58 c304 -104 609 -172 964 -213 188 +-23 728 -26 905 -6 189 22 377 51 520 83 74 16 140 29 147 29 7 0 22 -18 33 +-40 24 -47 31 -42 -98 -70 -472 -103 -1025 -127 -1517 -64 -288 37 -576 102 +-845 190 -248 82 -324 115 -328 143 -3 19 0 23 15 18 10 -3 102 -35 204 -70z +m-2825 12 c-8 -19 -15 -26 -15 -17 -1 23 20 75 26 62 2 -7 -3 -27 -11 -45z +m200 -10 c-12 -28 -15 -30 -15 -12 -1 31 21 83 26 62 2 -9 -3 -32 -11 -50z +m1749 51 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z +m305 -10 c7 -13 7 -20 1 -20 -6 0 -15 9 -21 20 -7 13 -7 20 -1 20 6 0 15 -9 +21 -20z m200 -1 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 +-11 10 -16z m-2564 -15 c-4 -9 -9 -15 -11 -12 -3 3 -3 13 1 22 4 9 9 15 11 12 +3 -3 3 -13 -1 -22z m404 16 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 10 +10 10 6 0 10 -4 10 -10z m76 -6 c-3 -9 -9 -27 -12 -40 -3 -13 -10 -22 -14 -19 +-10 6 10 75 23 75 5 0 6 -7 3 -16z m292 -163 c171 -260 460 -577 707 -775 112 +-89 328 -238 422 -292 l53 -29 0 -77 c0 -43 -4 -78 -9 -78 -5 0 -76 45 -157 +99 -450 299 -814 677 -1087 1130 l-75 123 16 39 15 40 20 -33 c11 -18 54 -84 +95 -147z m1357 169 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 +-4 11 -10z m75 -11 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 +10 -11 10 -16z m81 -1 c11 -21 11 -22 -4 -9 -10 7 -17 17 -17 22 0 15 9 10 21 +-13z m203 6 c9 -22 -3 -32 -14 -14 -12 19 -12 30 -1 30 5 0 12 -7 15 -16z +m116 -17 c0 -5 -4 -5 -10 -2 -5 3 -10 14 -10 23 0 15 2 15 10 2 5 -8 10 -19 +10 -23z m-2240 13 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 +11 -4 11 -10z m2270 -10 c0 -11 -2 -20 -4 -20 -2 0 -6 9 -9 20 -3 11 -1 20 4 +20 5 0 9 -9 9 -20z m-2440 -6 c0 -8 -4 -12 -10 -9 -5 3 -10 10 -10 16 0 5 5 9 +10 9 6 0 10 -7 10 -16z m2226 -22 c-9 -8 -26 10 -26 26 1 15 2 15 15 -2 8 -11 +13 -21 11 -24z m124 -5 c0 -5 -7 -4 -15 3 -8 7 -15 20 -15 29 1 13 3 13 15 -3 +8 -11 15 -24 15 -29z m-2600 -7 c-16 -31 -23 -18 -8 15 7 15 14 23 16 17 2 -6 +-2 -21 -8 -32z m115 1 c-4 -17 -10 -29 -15 -26 -5 3 -4 19 2 36 13 38 22 31 +13 -10z m2115 29 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 +11 -4 11 -10z m80 -11 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 +-3 10 -11 10 -16z m81 -1 c11 -21 11 -22 -4 -9 -10 7 -17 17 -17 22 0 15 9 10 +21 -13z m-2081 -43 c-16 -42 -24 -22 -9 22 7 21 14 31 16 22 2 -8 -1 -28 -7 +-44z m133 25 c-7 -28 -13 -25 -13 6 0 14 4 23 9 20 5 -3 7 -15 4 -26z m106 +-16 c-6 -16 -13 -24 -16 -18 -2 6 2 24 8 40 6 16 13 24 16 18 2 -6 -2 -24 -8 +-40z m1969 17 c4 -28 -13 -20 -21 9 -3 14 -1 20 6 17 7 -2 14 -14 15 -26z +m112 20 c0 -5 3 -18 6 -28 5 -16 4 -16 -10 1 -18 23 -20 36 -6 36 6 0 10 -4 +10 -9z m-2444 -46 c-4 -19 -11 -35 -16 -35 -13 0 -12 10 1 49 14 41 23 33 15 +-14z m200 -16 c-12 -28 -15 -30 -15 -12 -1 31 21 83 26 62 2 -9 -3 -32 -11 +-50z m2514 16 c333 -128 711 -219 1109 -267 144 -18 234 -22 496 -22 325 -1 +416 5 685 45 127 19 354 63 385 75 9 4 21 -9 35 -36 12 -23 20 -43 18 -45 -6 +-5 -203 -44 -329 -65 -405 -65 -897 -71 -1319 -14 -331 45 -680 131 -975 242 +-194 73 -225 88 -225 113 0 16 4 20 18 14 9 -4 55 -22 102 -40z m-2945 5 c-4 +-12 -9 -19 -12 -17 -3 3 -2 15 2 27 4 12 9 19 12 17 3 -3 2 -15 -2 -27z m272 +-2 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m2053 11 c0 -6 -4 -7 +-10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m80 0 c0 -6 -4 +-7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m80 5 c0 -8 +-4 -12 -10 -9 -5 3 -10 10 -10 16 0 5 5 9 10 9 6 0 10 -7 10 -16z m230 7 c0 +-5 3 -17 7 -27 4 -11 3 -15 -4 -11 -14 9 -24 47 -12 47 5 0 9 -4 9 -9z m-2202 +-42 c-6 -16 -12 -28 -15 -25 -8 8 8 66 17 61 5 -3 4 -19 -2 -36z m2096 25 c8 +-21 8 -24 -3 -24 -5 0 -11 9 -14 20 -6 24 8 27 17 4z m-2652 -16 c-7 -7 -12 +-8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m2578 -4 c0 -20 -7 -17 -20 6 +-9 16 -8 18 5 14 8 -4 15 -12 15 -20z m220 -2 c0 -15 -2 -15 -10 -2 -13 20 +-13 33 0 25 6 -3 10 -14 10 -23z m-2700 -22 c-16 -31 -23 -19 -9 16 6 16 13 +24 16 17 2 -7 -1 -22 -7 -33z m116 -7 c-11 -21 -15 -23 -16 -10 0 24 22 65 27 +50 2 -6 -3 -24 -11 -40z m447 27 c-3 -12 -8 -19 -11 -16 -5 6 5 36 12 36 2 0 +2 -9 -1 -20z m1757 -1 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 +-3 10 -11 10 -16z m80 0 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 +6 -3 10 -10 10 -16z m200 -5 c0 -8 -4 -12 -10 -9 -5 3 -10 13 -10 21 0 8 5 12 +10 9 6 -3 10 -13 10 -21z m-2555 6 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 +2 10 4 10 3 0 8 -4 11 -10z m204 -2 c0 -7 -4 -22 -8 -32 -10 -25 -22 -6 -14 +22 6 23 23 31 22 10z m72 -35 c-9 -16 -10 -16 -11 -1 0 9 3 25 7 35 7 16 8 17 +11 1 2 -10 -1 -25 -7 -35z m158 -10 c-7 -21 -14 -32 -16 -26 -3 7 1 30 8 50 7 +21 14 32 16 26 3 -7 -1 -30 -8 -50z m375 -247 c205 -295 454 -557 736 -777 97 +-76 283 -204 373 -256 l37 -22 0 -76 c0 -41 -3 -75 -7 -75 -30 0 -317 202 +-477 336 -148 124 -381 361 -499 509 -106 132 -255 353 -331 491 l-56 100 15 +38 16 38 65 -107 c35 -59 93 -149 128 -199z m-1002 272 c-7 -7 -12 -8 -12 -2 +0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m102 -12 c-3 -14 -10 -26 -15 -26 -12 0 +-11 4 3 35 14 31 21 26 12 -9z m445 -22 c-8 -20 -13 -24 -16 -13 -2 8 2 29 8 +45 8 20 13 24 16 13 2 -8 -2 -29 -8 -45z m2128 41 c9 -25 -4 -29 -17 -6 -7 15 +-7 21 0 21 6 0 13 -7 17 -15z m117 -24 c-6 -6 -24 19 -24 34 1 6 7 1 15 -9 8 +-11 12 -22 9 -25z m-2458 -22 c-12 -29 -14 -31 -15 -11 -1 27 21 72 26 56 2 +-7 -3 -27 -11 -45z m2259 41 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 +10 3 0 8 -4 11 -10z m555 -75 c362 -135 754 -222 1170 -261 208 -19 631 -18 +841 2 158 15 443 59 562 88 l58 14 19 -39 c11 -21 16 -40 11 -43 -15 -10 -284 +-57 -437 -76 -769 -99 -1606 13 -2334 312 -85 35 -106 47 -108 66 l-3 22 53 +-21 c29 -11 105 -40 168 -64z m-430 54 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 +0 6 5 7 10 4 6 -3 10 -11 10 -16z m110 -7 c0 -15 -2 -15 -10 -2 -13 20 -13 33 +0 25 6 -3 10 -14 10 -23z m-2614 2 c-3 -9 -6 -20 -6 -25 0 -6 -4 -8 -9 -5 -12 +8 -2 46 11 46 6 0 7 -7 4 -16z m200 -29 c-4 -19 -11 -35 -16 -35 -13 0 -12 10 +1 49 14 41 23 33 15 -14z m2064 30 c7 -9 8 -15 2 -15 -5 0 -12 7 -16 15 -3 8 +-4 15 -2 15 2 0 9 -7 16 -15z m-2316 -29 c-3 -14 -10 -26 -15 -26 -12 0 -11 4 +3 35 14 31 21 26 12 -9z m122 -14 c-12 -11 -18 7 -10 30 l8 23 4 -23 c2 -13 1 +-26 -2 -30z m364 3 c-7 -20 -14 -34 -17 -31 -3 2 0 21 7 41 7 20 14 34 17 31 +3 -2 0 -21 -7 -41z m-642 10 c-6 -14 -13 -23 -15 -21 -5 5 15 46 22 46 3 0 -1 +-11 -7 -25z m488 -2 c-10 -10 -19 5 -10 18 6 11 8 11 12 0 2 -7 1 -15 -2 -18z +m73 -30 c-7 -21 -14 -32 -16 -26 -3 7 1 30 8 50 7 21 14 32 16 26 3 -7 -1 -30 +-8 -50z m2001 47 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 +11 -4 11 -10z m-2456 -34 c-3 -14 -10 -23 -15 -21 -4 3 -3 17 3 30 14 31 21 +26 12 -9z m2416 13 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 +10 -11 10 -16z m-2569 -16 c-12 -20 -14 -14 -5 12 4 9 9 14 11 11 3 -2 0 -13 +-6 -23z m265 -24 c-13 -29 -15 -30 -16 -11 0 27 22 72 27 56 2 -6 -3 -26 -11 +-45z m131 1 c-18 -41 -31 -24 -16 20 7 19 15 28 20 23 6 -6 4 -23 -4 -43z +m2258 39 c11 -17 -1 -21 -15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z m80 0 c11 +-17 -1 -21 -15 -4 -8 9 -8 15 -2 15 6 0 14 -5 17 -11z m-2029 -43 c-8 -20 -18 +-36 -21 -36 -3 0 2 16 10 36 8 20 15 39 15 42 0 3 3 3 6 0 3 -3 -2 -22 -10 +-42z m1829 34 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 +11 -10z m315 -11 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 +-11 10 -16z m250 -26 c703 -289 1552 -400 2315 -303 148 19 407 64 439 76 12 +5 20 -3 32 -31 8 -20 14 -39 12 -40 -7 -7 -286 -55 -403 -70 -576 -72 -1169 +-35 -1730 106 -200 51 -468 140 -647 214 -112 46 -138 61 -138 77 0 12 5 18 +13 15 6 -3 55 -23 107 -44z m-2630 -23 c-18 -33 -24 -16 -9 27 11 31 14 34 17 +16 2 -12 -2 -32 -8 -43z m385 -17 c62 -119 224 -359 337 -500 248 -308 581 +-607 892 -799 l95 -59 0 -60 c-1 -106 2 -106 -146 -6 -405 273 -773 644 -1036 +1047 -79 121 -205 341 -213 372 -6 22 12 82 25 82 3 0 24 -35 46 -77z m1439 +61 c3 -8 2 -12 -4 -9 -6 3 -10 10 -10 16 0 14 7 11 14 -7z m326 -5 c0 -6 -4 +-7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m80 0 c0 -5 +-4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z m80 0 c0 +-6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m104 6 +c3 -8 1 -15 -4 -15 -6 0 -10 7 -10 15 0 8 2 15 4 15 2 0 6 -7 10 -15z m-2961 +-10 c-3 -9 -8 -14 -10 -11 -3 3 -2 9 2 15 9 16 15 13 8 -4z m177 -6 c-7 -11 +-14 -19 -16 -16 -7 7 7 37 17 37 6 0 5 -9 -1 -21z m120 4 c0 -22 -17 -50 -25 +-42 -5 6 14 59 22 59 1 0 3 -8 3 -17z m305 8 c3 -5 1 -12 -5 -16 -5 -3 -10 1 +-10 9 0 18 6 21 15 7z m105 -41 c-17 -32 -22 -18 -8 21 8 22 13 28 16 17 2 -9 +-2 -27 -8 -38z m-579 7 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 +-23z m299 23 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 +11 -10z m2470 -6 c0 -8 -4 -12 -10 -9 -5 3 -10 10 -10 16 0 5 5 9 10 9 6 0 10 +-7 10 -16z m-2806 -18 c-3 -9 -10 -16 -15 -16 -6 0 -5 9 1 21 13 24 24 20 14 +-5z m152 -13 c-11 -11 -17 4 -9 23 7 18 8 18 11 1 2 -10 1 -21 -2 -24z m2504 +16 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z +m80 0 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 6 -3 10 -10 10 -16z +m-2471 -45 c-7 -17 -13 -24 -16 -16 -3 7 1 27 8 45 9 20 15 26 17 16 1 -8 -2 +-29 -9 -45z m130 -6 c-18 -33 -24 -4 -8 35 12 28 14 29 17 10 2 -12 -2 -32 -9 +-45z m132 15 c-9 -16 -10 -16 -11 -1 0 9 3 25 7 35 7 16 8 17 11 1 2 -10 -1 +-25 -7 -35z m2319 32 c0 -8 -2 -15 -4 -15 -2 0 -6 7 -10 15 -3 8 -1 15 4 15 6 +0 10 -7 10 -15z m290 -63 c341 -140 721 -242 1100 -296 238 -34 342 -41 665 +-41 356 1 501 12 783 61 234 41 215 41 229 5 11 -30 10 -31 -25 -40 -55 -14 +-269 -48 -422 -66 -208 -26 -663 -31 -890 -11 -442 38 -868 132 -1257 277 +-216 80 -347 141 -351 163 -3 13 0 17 9 13 8 -3 79 -33 159 -65z m-3229 35 +c-10 -9 -11 -8 -5 6 3 10 9 15 12 12 3 -3 0 -11 -7 -18z m189 -7 c-6 -12 -14 +-19 -17 -17 -2 3 1 15 7 27 6 12 14 19 17 17 2 -3 -1 -15 -7 -27z m217 8 c-3 +-8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m159 -35 c-19 -35 -22 -7 -4 +33 9 20 14 23 16 11 2 -8 -4 -28 -12 -44z m165 26 c-9 -22 -10 -22 -10 -3 -1 +11 2 24 6 27 12 12 14 0 4 -24z m1685 -124 c-3 -11 -37 131 -35 149 1 6 10 +-23 20 -64 10 -41 17 -79 15 -85z m379 145 c3 -5 2 -10 -4 -10 -5 0 -13 5 -16 +10 -3 6 -2 10 4 10 5 0 13 -4 16 -10z m75 0 c0 -5 -2 -10 -4 -10 -3 0 -8 5 +-11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m110 -11 c0 -6 -4 -7 -10 -4 -5 3 +-10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 10 -16z m-2835 -18 c-3 -12 -10 -21 +-15 -21 -5 0 -4 11 2 25 13 29 23 26 13 -4z m164 -14 c-16 -36 -30 -24 -16 13 +6 16 15 26 20 21 4 -4 3 -20 -4 -34z m337 -8 c-8 -19 -15 -26 -15 -17 -1 23 +20 75 26 62 2 -7 -3 -27 -11 -45z m1792 -31 c11 -43 17 -78 13 -78 -4 0 -13 +26 -20 58 -7 31 -15 68 -18 82 -13 58 7 9 25 -62z m36 -10 c18 -75 20 -102 7 +-78 -5 8 -14 42 -21 75 -7 33 -15 66 -18 75 -3 10 -2 12 5 5 6 -5 18 -40 27 +-77z m281 72 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 +-10z m85 -11 c0 -6 -4 -7 -10 -4 -5 3 -10 11 -10 16 0 6 5 7 10 4 6 -3 10 -11 +10 -16z m74 5 c3 -8 2 -12 -4 -9 -6 3 -10 10 -10 16 0 14 7 11 14 -7z m-2818 +-20 c-4 -9 -9 -15 -11 -12 -3 3 -3 13 1 22 4 9 9 15 11 12 3 -3 3 -13 -1 -22z +m931 -297 c288 -454 686 -856 1131 -1142 l93 -59 -7 -61 c-9 -91 -7 -89 -71 +-48 -198 126 -410 300 -609 498 -294 293 -505 579 -690 931 l-69 131 18 39 18 +38 55 -103 c30 -56 89 -157 131 -224z m1483 243 c6 -30 14 -63 17 -72 2 -10 0 +-18 -5 -18 -7 0 -43 138 -42 165 1 21 18 -23 30 -75z m-2076 48 c-8 -28 -12 +-33 -20 -25 -9 8 6 47 17 47 6 0 7 -10 3 -22z m77 -25 c-9 -16 -10 -15 -11 8 +0 14 3 29 8 33 12 12 14 -22 3 -41z m1856 25 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 +13 3 -3 4 -12 1 -19z m580 0 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 +-19z m-2893 -3 c-4 -8 -8 -15 -10 -15 -2 0 -4 7 -4 15 0 8 4 15 10 15 5 0 7 +-7 4 -15z m336 3 c-1 -7 -7 -24 -14 -37 -17 -31 -30 -11 -15 23 13 27 29 35 +29 14z m200 -38 c-7 -17 -16 -27 -21 -24 -4 2 -1 21 9 40 19 41 30 27 12 -16z +m79 6 c-7 -20 -17 -36 -21 -36 -11 0 -10 5 9 45 21 44 29 38 12 -9z m2136 34 +c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m75 0 +c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m385 +-72 c404 -167 844 -276 1335 -330 183 -20 769 -17 955 6 140 16 404 59 451 72 +15 4 23 -1 33 -22 6 -15 8 -30 4 -34 -4 -5 -62 -17 -128 -29 -641 -111 -1302 +-87 -1945 70 -329 81 -890 288 -898 332 -3 17 -2 17 35 1 21 -9 92 -39 158 +-66z m-3066 30 c-7 -13 -14 -18 -16 -11 -3 7 1 22 8 35 7 13 14 18 16 11 3 -7 +-1 -22 -8 -35z m42 9 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 +-23z m2312 -49 c8 -38 11 -68 7 -68 -5 0 -13 24 -20 52 -6 29 -13 64 -17 78 +-4 17 -2 22 5 15 5 -5 17 -40 25 -77z m212 72 c3 -5 1 -10 -4 -10 -6 0 -11 5 +-11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m-2616 -42 c-7 -13 -14 -18 -16 -11 -3 +7 1 22 8 35 7 13 14 18 16 11 3 -7 -1 -22 -8 -35z m177 7 c-4 -14 -11 -25 -16 +-25 -13 0 -13 16 1 42 14 26 23 16 15 -17z m123 -27 c-18 -33 -24 -4 -8 35 12 +28 14 29 17 10 2 -12 -2 -32 -9 -45z m2396 52 c3 -5 1 -10 -4 -10 -6 0 -11 5 +-11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m-468 -22 c-3 -8 -6 -5 -6 6 -1 11 2 +17 5 13 3 -3 4 -12 1 -19z m212 -39 c21 -98 9 -109 -14 -12 -17 70 -18 76 -6 +69 5 -4 14 -29 20 -57z m-2533 15 c-4 -9 -9 -15 -11 -12 -3 3 -3 13 1 22 4 9 +9 15 11 12 3 -3 3 -13 -1 -22z m214 9 c0 -24 -17 -49 -26 -40 -4 4 -1 18 6 32 +16 30 20 31 20 8z m270 1 c0 -8 -5 -12 -10 -9 -6 4 -8 11 -5 16 9 14 15 11 15 +-7z m69 -28 c-7 -20 -17 -36 -21 -36 -11 0 -10 5 9 45 21 44 29 38 12 -9z m79 +14 c-9 -27 -28 -50 -28 -35 0 9 30 65 35 65 2 0 -1 -14 -7 -30z m2769 -133 +c654 -241 1382 -338 2073 -276 131 11 364 44 460 64 68 14 74 13 84 -21 6 -20 +1 -23 -86 -39 -747 -137 -1588 -76 -2330 170 -272 90 -588 224 -588 249 0 10 +34 -1 118 -39 64 -29 186 -77 269 -108z m-3485 131 c-7 -7 -12 -8 -12 -2 0 14 +12 26 19 19 2 -3 -1 -11 -7 -17z m40 0 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 +2 -3 -1 -11 -7 -17z m377 -30 c-11 -19 -14 -20 -17 -6 -2 9 2 27 9 40 11 19 +14 20 17 6 2 -9 -2 -27 -9 -40z m-180 0 c-7 -13 -14 -18 -16 -11 -3 7 1 22 8 +35 7 13 14 18 16 11 3 -7 -1 -22 -8 -35z m776 -308 c293 -476 692 -889 1153 +-1194 88 -58 93 -63 88 -91 -3 -16 -8 -49 -11 -72 l-7 -43 -101 70 c-185 127 +-370 282 -548 460 -314 313 -551 642 -745 1032 l-58 117 18 37 18 38 67 -130 +c37 -71 94 -172 126 -224z m1651 287 c11 -56 0 -83 -12 -29 -3 15 -10 42 -14 +60 -6 24 -5 32 3 29 6 -2 17 -29 23 -60z m-2477 11 c-7 -13 -14 -18 -16 -11 +-3 7 1 22 8 35 7 13 14 18 16 11 3 -7 -1 -22 -8 -35z m311 -9 c-8 -19 -16 -27 +-22 -21 -6 6 -3 22 8 43 21 40 32 22 14 -22z m-130 25 c0 -8 -5 -12 -10 -9 -6 +4 -8 11 -5 16 9 14 15 11 15 -7z m176 -11 c-10 -10 -19 5 -10 18 6 11 8 11 12 +0 2 -7 1 -15 -2 -18z m2159 -16 c4 -17 9 -40 11 -49 3 -10 1 -18 -5 -18 -11 0 +-17 16 -27 74 -8 48 11 42 21 -7z m225 33 c0 -5 -2 -10 -4 -10 -3 0 -8 5 -11 +10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m-6379 -47 c-11 -21 -20 -35 -21 -31 0 +12 33 78 38 74 2 -2 -6 -21 -17 -43z m3544 17 c-4 -12 -9 -19 -12 -17 -3 3 -2 +15 2 27 4 12 9 19 12 17 3 -3 2 -15 -2 -27z m560 -10 c-9 -18 -19 -30 -21 -27 +-3 3 2 19 11 37 9 18 19 30 21 27 3 -3 -2 -19 -11 -37z m-524 -3 c-8 -8 -11 +-7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m189 20 c0 -7 -7 -22 -15 -33 +-12 -16 -14 -17 -15 -2 0 23 11 48 21 48 5 0 9 -6 9 -13z m2876 -23 c360 -164 +793 -296 1194 -363 303 -51 471 -64 800 -64 319 0 496 13 768 59 84 14 157 22 +162 19 10 -6 14 -45 5 -45 -2 0 -60 -9 -127 -20 -326 -53 -751 -73 -1070 -51 +-475 32 -946 132 -1375 292 -237 88 -495 209 -446 209 6 0 46 -16 89 -36z +m-3195 3 c-10 -9 -11 -8 -5 6 3 10 9 15 12 12 3 -3 0 -11 -7 -18z m45 -4 c-10 +-10 -19 5 -10 18 6 11 8 11 12 0 2 -7 1 -15 -2 -18z m404 15 c-1 -7 -7 -24 +-14 -37 -17 -31 -30 -11 -15 23 13 27 29 35 29 14z m-201 -40 c-7 -13 -14 -18 +-16 -11 -3 7 1 22 8 35 7 13 14 18 16 11 3 -7 -1 -22 -8 -35z m98 20 c-3 -8 +-6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m233 14 c0 -5 -7 -17 -15 -28 +-15 -19 -20 -8 -9 20 6 17 24 22 24 8z m1847 -14 c-3 -8 -6 -5 -6 6 -1 11 2 +17 5 13 3 -3 4 -12 1 -19z m326 -25 c4 -18 3 -33 -2 -33 -10 0 -21 34 -21 65 +0 28 16 6 23 -32z m-2552 4 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 +-7 -23z m312 -17 c-9 -19 -18 -29 -21 -22 -6 19 19 75 30 64 5 -5 1 -23 -9 +-42z m162 21 c-3 -12 -10 -21 -15 -21 -5 0 -4 11 2 25 13 29 23 26 13 -4z +m1800 -56 c9 -43 13 -80 11 -82 -4 -4 -11 28 -33 142 -3 17 -2 27 1 24 4 -3 +13 -41 21 -84z m35 -18 c15 -86 7 -99 -9 -15 -7 35 -15 74 -18 88 -3 19 -2 22 +6 10 5 -8 15 -45 21 -83z m285 51 c4 -17 3 -28 -3 -28 -10 0 -22 32 -22 60 0 +22 18 -1 25 -32z m652 -107 c391 -156 830 -264 1288 -317 114 -14 232 -18 495 +-18 361 -1 431 4 739 50 145 22 175 24 182 13 15 -24 11 -27 -53 -38 -725 +-130 -1549 -75 -2273 152 -276 87 -715 269 -715 297 0 5 43 -11 95 -36 52 -24 +161 -70 242 -103z m-3337 127 c0 -19 -18 -43 -25 -36 -4 3 -2 16 5 27 12 24 +20 27 20 9z m50 4 c0 -5 -7 -17 -15 -28 -15 -19 -20 -8 -9 20 6 17 24 22 24 8z +m429 -34 c-7 -13 -14 -18 -16 -11 -3 7 1 22 8 35 7 13 14 18 16 11 3 -7 -1 +-22 -8 -35z m374 -318 c233 -389 516 -724 847 -1005 101 -85 275 -217 360 +-271 47 -31 60 -44 60 -64 0 -29 -16 -99 -23 -107 -9 -8 -169 105 -312 220 +-436 349 -796 794 -1057 1306 -98 194 -107 221 -83 257 l18 27 69 -139 c38 +-76 93 -177 121 -224z m1577 293 c6 -38 14 -76 17 -85 2 -10 0 -18 -5 -18 -5 +0 -15 38 -23 85 -9 47 -12 85 -8 85 4 0 12 -30 19 -67z m-2568 35 c-7 -7 -12 +-8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m79 -11 c-8 -8 -11 -7 -11 4 +0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m265 -14 c-11 -21 -15 -23 -16 -10 0 24 +22 65 27 50 2 -6 -3 -24 -11 -40z m58 13 c-5 -13 -9 -14 -14 -5 -11 16 0 43 +12 31 5 -5 6 -17 2 -26z m85 -8 c-5 -10 -14 -18 -19 -18 -13 0 -12 4 2 35 8 +18 14 22 19 13 4 -6 3 -20 -2 -30z m1978 10 c-3 -7 -5 -2 -5 12 0 14 2 19 5 +13 2 -7 2 -19 0 -25z m142 -42 c12 -62 15 -113 6 -104 -4 4 -35 160 -35 178 0 +2 4 0 9 -5 4 -6 13 -37 20 -69z m255 48 c8 -22 7 -34 -3 -34 -5 0 -11 11 -13 +25 -6 28 6 34 16 9z m-2564 -11 c0 -24 -17 -49 -26 -40 -4 4 -1 18 6 32 16 30 +20 31 20 8z m260 -33 c-18 -33 -25 -15 -9 22 9 23 15 28 17 16 2 -9 -2 -27 -8 +-38z m2088 -31 c14 -79 15 -92 3 -85 -4 3 -11 29 -15 57 -4 29 -10 66 -13 83 +-4 20 -2 27 4 21 5 -5 15 -40 21 -76z m790 -55 c374 -156 781 -267 1182 -323 +275 -39 390 -46 700 -45 317 1 479 13 744 55 106 17 130 18 137 7 4 -7 5 -16 +1 -19 -8 -8 -250 -43 -422 -61 -162 -17 -725 -17 -880 0 -513 56 -949 162 +-1382 336 -166 66 -378 166 -378 178 0 4 32 -8 70 -27 39 -20 141 -65 228 +-101z m-2799 92 c-7 -14 -16 -26 -21 -26 -5 0 -1 14 7 31 20 37 31 33 14 -5z +m2047 -43 c16 -81 17 -93 6 -93 -7 0 -32 120 -32 157 0 34 14 1 26 -64z +m-2258 32 c-11 -25 -28 -34 -28 -14 0 6 5 19 11 30 15 28 31 13 17 -16z m2286 +18 c12 -40 28 -155 22 -160 -8 -8 -13 9 -29 100 -8 42 -10 77 -6 77 4 0 10 -8 +13 -17z m196 -4 c0 -5 -4 -9 -10 -9 -5 0 -10 7 -10 16 0 8 5 12 10 9 6 -3 10 +-10 10 -16z m-2710 3 c0 -5 -7 -17 -15 -28 -15 -19 -20 -8 -9 20 6 17 24 22 +24 8z m2247 -14 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m30 -15 +c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m290 -39 c15 -85 16 +-111 4 -98 -14 15 -39 175 -27 171 6 -2 16 -35 23 -73z m-6241 29 c-8 -15 -15 +-25 -16 -21 0 12 23 58 27 54 3 -2 -2 -17 -11 -33z m3454 33 c0 -3 -4 -8 -10 +-11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m27 -18 c-3 -8 -6 -5 +-6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m84 -11 c-8 -8 -11 -7 -11 4 0 20 13 +34 18 19 3 -7 -1 -17 -7 -23z m59 26 c0 -14 -19 -38 -25 -32 -8 8 5 39 16 39 +5 0 9 -3 9 -7z m85 -2 c3 -5 1 -12 -5 -16 -5 -3 -10 1 -10 9 0 18 6 21 15 7z +m129 -32 c-8 -17 -18 -28 -21 -25 -9 8 18 66 28 60 5 -3 2 -19 -7 -35z m137 8 +c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m2309 -60 c6 -43 9 +-81 6 -84 -7 -8 -13 10 -26 81 -12 73 -13 103 -1 91 4 -6 14 -45 21 -88z m135 +83 c3 -5 1 -10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m326 +-49 c432 -207 932 -352 1446 -420 431 -58 930 -52 1368 15 55 8 106 16 114 17 +21 3 25 -21 4 -27 -33 -10 -306 -45 -443 -57 -193 -17 -621 -14 -820 5 -511 +50 -984 165 -1430 349 -207 85 -398 177 -366 177 2 0 59 -27 127 -59z m-3511 +19 c-12 -16 -24 -30 -26 -30 -3 0 4 14 16 30 12 17 24 30 26 30 3 0 -4 -13 +-16 -30z m815 -10 c-9 -18 -19 -30 -21 -27 -3 3 2 19 11 37 9 18 19 30 21 27 +3 -3 -2 -19 -11 -37z m71 3 c-8 -15 -15 -25 -16 -21 0 12 23 58 27 54 3 -2 -2 +-17 -11 -33z m2203 -50 c13 -86 13 -93 3 -93 -8 0 -32 131 -32 170 0 38 19 +-12 29 -77z m-2529 63 c0 -7 -7 -19 -15 -26 -16 -13 -20 -3 -9 24 8 20 24 21 +24 2z m527 -174 c293 -592 732 -1102 1284 -1489 l106 -75 -14 -61 c-8 -34 -16 +-63 -18 -65 -5 -5 -170 114 -280 203 -447 359 -826 828 -1082 1339 -36 72 -81 +166 -99 209 -32 74 -33 79 -18 103 9 13 19 24 23 23 3 0 48 -84 98 -187z +m2042 101 c13 -87 13 -93 2 -93 -5 0 -11 24 -15 53 -4 28 -10 70 -13 92 -4 27 +-2 37 5 30 5 -5 15 -42 21 -82z m-2449 37 c-7 -16 -16 -27 -21 -24 -5 3 -2 19 +7 35 20 39 31 30 14 -11z m2484 -22 c4 -29 9 -68 12 -85 4 -19 2 -33 -4 -33 +-5 0 -12 24 -16 53 -4 28 -10 70 -13 91 -4 25 -2 37 4 33 6 -4 13 -30 17 -59z +m43 -41 c12 -101 -1 -110 -16 -11 -13 91 -14 111 -2 99 5 -6 13 -45 18 -88z +m-2987 73 c0 -5 -5 -10 -11 -10 -5 0 -7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 +-10z m31 -23 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m199 +25 c0 -5 -7 -17 -15 -28 -15 -19 -20 -8 -9 20 6 17 24 22 24 8z m50 1 c0 -5 +-4 -15 -10 -23 -11 -18 -25 -7 -17 15 6 15 27 21 27 8z m270 -3 c0 -5 -2 -10 +-4 -10 -3 0 -8 5 -11 10 -3 6 -1 10 4 10 6 0 11 -4 11 -10z m2474 -95 c4 -44 +4 -66 -2 -60 -6 6 -13 46 -16 90 -7 97 8 71 18 -30z m30 5 c3 -56 2 -73 -3 +-50 -13 53 -21 154 -11 144 4 -5 11 -47 14 -94z m-3266 70 c-7 -11 -17 -20 +-22 -20 -5 0 -1 9 9 20 10 11 20 20 22 20 2 0 -2 -9 -9 -20z m283 -13 c-8 -8 +-11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m59 24 c0 -6 -4 -13 -10 +-16 -5 -3 -10 1 -10 9 0 9 5 16 10 16 6 0 10 -4 10 -9z m50 2 c0 -5 -4 -15 +-10 -23 -11 -18 -25 -7 -17 15 6 15 27 21 27 8z m230 -6 c0 -7 -7 -22 -15 -33 +-12 -16 -14 -17 -15 -2 0 23 11 48 21 48 5 0 9 -6 9 -13z m196 -24 c-8 -15 +-15 -22 -16 -15 0 17 20 55 27 49 2 -3 -2 -18 -11 -34z m-4090 -10 c-8 -15 +-15 -25 -16 -21 0 12 23 58 27 54 3 -2 -2 -17 -11 -33z m6561 -30 c-2 -16 -4 +-5 -4 22 0 28 2 40 4 28 2 -13 2 -35 0 -50z m-2731 30 c-10 -10 -19 5 -10 18 +6 11 8 11 12 0 2 -7 1 -15 -2 -18z m175 -6 c-8 -8 -11 -7 -11 4 0 20 13 34 18 +19 3 -7 -1 -17 -7 -23z m-799 -4 c-11 -16 -37 -46 -57 -68 -20 -22 -13 -10 16 +28 52 66 79 93 41 40z m245 5 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 +-19z m323 5 c0 -22 -17 -50 -25 -42 -5 6 14 59 22 59 1 0 3 -8 3 -17z m179 +-25 c-7 -13 -14 -18 -16 -11 -3 7 1 22 8 35 7 13 14 18 16 11 3 -7 -1 -22 -8 +-35z m161 22 c-6 -11 -13 -20 -16 -20 -2 0 0 9 6 20 6 11 13 20 16 20 2 0 0 +-9 -6 -20z m189 -200 c284 -594 737 -1135 1271 -1520 63 -45 119 -86 124 -90 +8 -8 -11 -107 -24 -122 -8 -10 -244 167 -369 276 -53 46 -166 155 -251 242 +-356 364 -635 779 -840 1249 l-52 120 18 33 18 34 18 -39 c9 -21 49 -103 87 +-183z m-1119 206 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 +13z m86 -24 c-18 -16 -18 -16 -6 6 6 13 14 21 18 18 3 -4 -2 -14 -12 -24z +m440 -20 c-20 -20 -22 -1 -4 31 11 20 12 21 16 3 2 -10 -3 -26 -12 -34z m2329 +-24 c3 -35 9 -71 12 -82 3 -10 1 -16 -5 -13 -5 4 -12 36 -16 72 -4 35 -9 72 +-13 82 -4 10 -2 14 4 10 6 -4 14 -35 18 -69z m-2551 47 c-4 -8 -8 -15 -10 -15 +-2 0 -4 7 -4 15 0 8 4 15 10 15 5 0 7 -7 4 -15z m176 -25 c-15 -28 -24 -19 +-16 16 5 19 10 24 17 17 8 -8 7 -18 -1 -33z m230 -10 c-18 -33 -25 -15 -9 22 +9 23 15 28 17 16 2 -9 -2 -27 -8 -38z m135 21 c-3 -12 -10 -21 -15 -21 -5 0 +-4 11 2 25 13 29 23 26 13 -4z m1942 7 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 +-3 4 -12 1 -19z m41 -83 c0 -22 -3 -19 -9 15 -10 60 -9 108 2 55 4 -22 8 -53 +7 -70z m-2784 83 c-18 -31 -98 -128 -101 -124 -3 3 19 34 48 70 49 62 70 83 +53 54z m300 -3 c-4 -8 -8 -15 -10 -15 -2 0 -4 7 -4 15 0 8 4 15 10 15 5 0 7 +-7 4 -15z m37 -18 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z +m2518 -112 c1 -49 -17 14 -22 80 l-6 70 14 -65 c8 -36 14 -74 14 -85z m-2114 +89 c-23 -36 -30 -23 -9 18 10 18 19 27 22 20 2 -7 -4 -24 -13 -38z m2139 -44 +c4 -53 3 -65 -3 -40 -16 65 -23 136 -13 125 6 -5 13 -44 16 -85z m-6133 53 +c-12 -20 -14 -14 -5 12 4 9 9 14 11 11 3 -2 0 -13 -6 -23z m3634 17 c3 -5 1 +-10 -4 -10 -6 0 -11 5 -11 10 0 6 2 10 4 10 3 0 8 -4 11 -10z m2529 -27 c15 +-104 18 -137 10 -130 -11 11 -32 167 -23 167 4 0 10 -17 13 -37z m-2994 24 c0 +-2 -10 -12 -22 -23 l-23 -19 19 23 c18 21 26 27 26 19z m132 -19 c-7 -7 -12 +-8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m504 -19 c-12 -18 -16 -20 +-16 -7 0 29 12 50 22 40 7 -7 5 -18 -6 -33z m260 9 c-18 -26 -22 -17 -5 14 6 +11 13 17 16 15 3 -3 -2 -16 -11 -29z m2139 -31 c3 -28 8 -64 11 -79 3 -16 1 +-28 -4 -28 -5 0 -13 26 -16 58 -4 31 -9 70 -12 86 -4 18 -2 26 4 22 6 -3 13 +-30 17 -59z m-2961 16 c-42 -57 -84 -105 -84 -96 0 10 99 133 107 133 3 0 -7 +-17 -23 -37z m273 15 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z +m229 -26 c-20 -20 -22 -1 -4 31 11 20 12 21 16 3 2 -10 -3 -26 -12 -34z m105 +15 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m88 -9 c-7 -13 +-14 -18 -16 -11 -3 7 1 22 8 35 7 13 14 18 16 11 3 -7 -1 -22 -8 -35z m2306 +-36 c4 -37 9 -75 11 -84 3 -10 1 -18 -4 -18 -5 0 -13 21 -16 48 -4 26 -9 67 +-13 91 -4 30 -2 42 5 37 6 -3 13 -37 17 -74z m-2685 47 c0 -11 -4 -18 -10 -14 +-5 3 -7 12 -3 20 7 21 13 19 13 -6z m41 -16 c-10 -17 -10 -16 -11 3 0 23 13 +41 18 25 2 -6 -1 -18 -7 -28z m100 4 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 +-7 -1 -17 -7 -23z m514 -62 c91 -223 272 -547 429 -770 238 -338 582 -693 893 +-923 171 -125 159 -111 143 -168 -7 -27 -16 -53 -20 -57 -8 -9 -87 48 -231 +164 -552 446 -993 1045 -1264 1716 l-33 83 20 25 c11 14 22 25 23 23 2 -2 19 +-43 40 -93z m1792 73 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z +m590 -25 c-3 -10 -5 -2 -5 17 0 19 2 27 5 18 2 -10 2 -26 0 -35z m-2944 12 +c-3 -8 -9 -15 -14 -15 -10 0 -12 24 -3 33 11 11 24 -3 17 -18z m353 -17 c-9 +-12 -16 -17 -16 -10 0 18 24 54 28 42 2 -5 -4 -20 -12 -32z m2275 15 c0 -16 4 +-54 8 -85 7 -58 -3 -82 -13 -30 -14 73 -18 142 -7 142 6 0 11 -12 12 -27z +m739 17 c8 -5 11 -10 5 -10 -5 0 -17 5 -25 10 -8 5 -10 10 -5 10 6 0 17 -5 25 +-10z m-7039 -27 c-12 -20 -14 -14 -5 12 4 9 9 14 11 11 3 -2 0 -13 -6 -23z +m3253 -48 c-27 -35 -53 -65 -57 -65 -11 0 -1 15 53 83 61 77 64 63 4 -18z +m3092 -20 c4 -53 3 -77 -4 -70 -5 6 -13 46 -16 90 -5 53 -4 77 3 70 5 -5 13 +-46 17 -90z m-2436 78 c-1 -14 -27 -43 -33 -37 -8 9 11 44 23 44 6 0 10 -3 10 +-7z m2475 -93 c4 -54 3 -80 -3 -70 -14 22 -26 178 -14 165 6 -5 13 -48 17 -95z +m705 90 c8 -5 11 -10 5 -10 -5 0 -17 5 -25 10 -8 5 -10 10 -5 10 6 0 17 -5 25 +-10z m-3240 -12 c0 -7 -7 -22 -15 -32 -12 -16 -15 -17 -15 -4 0 24 11 48 21 +48 5 0 9 -6 9 -12z m126 -14 c-4 -9 -9 -15 -11 -12 -3 3 -3 13 1 22 4 9 9 15 +11 12 3 -3 3 -13 -1 -22z m2449 -74 c5 -58 4 -82 -3 -75 -5 6 -13 48 -17 95 +-5 58 -4 82 3 75 6 -5 14 -48 17 -95z m-3295 87 c0 -2 -10 -12 -22 -23 l-23 +-19 19 23 c18 21 26 27 26 19z m416 -24 c-10 -10 -19 5 -10 18 6 11 8 11 12 0 +2 -7 1 -15 -2 -18z m235 -16 c-17 -17 -24 -1 -9 22 11 18 14 19 16 5 2 -9 -1 +-21 -7 -27z m2684 -57 c4 -55 3 -82 -3 -75 -6 6 -13 48 -17 95 -5 56 -4 82 3 +75 5 -5 13 -48 17 -95z m700 79 c22 -10 29 -16 15 -13 -28 7 -80 33 -65 33 6 +0 28 -9 50 -20z m-3872 -27 c-46 -62 -83 -105 -88 -100 -7 6 97 138 108 138 5 +0 -4 -17 -20 -38z m288 5 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 +-7 -23z m54 4 c-3 -12 -11 -19 -16 -16 -5 4 -5 14 2 26 13 26 23 18 14 -10z +m401 1 c-18 -16 -18 -16 -6 6 6 13 14 21 18 18 3 -4 -2 -14 -12 -24z m2466 +-74 c2 -38 1 -68 -3 -68 -7 0 -19 89 -18 140 1 58 16 5 21 -72z m-6578 -103 +c-129 -385 -208 -759 -244 -1155 -5 -63 -10 -125 -10 -137 0 -13 -4 -23 -8 +-23 -10 0 4 177 29 370 44 342 119 654 241 999 49 140 50 143 53 139 2 -2 -26 +-88 -61 -193z m3766 188 c0 -5 -4 -15 -10 -23 -11 -18 -25 -7 -17 15 6 15 27 +21 27 8z m216 -35 c-19 -26 -22 -7 -4 25 7 13 13 17 15 10 3 -7 -3 -23 -11 +-35z m274 -58 c18 -47 65 -152 105 -235 293 -614 758 -1179 1297 -1572 48 -36 +88 -70 88 -77 0 -7 -7 -33 -16 -59 l-16 -47 -56 41 c-208 148 -542 461 -717 +672 -317 382 -574 816 -729 1230 -36 95 -36 98 -19 121 10 14 21 21 24 18 3 +-4 21 -45 39 -92z m2354 39 c3 -34 6 -76 5 -93 -1 -55 -16 1 -21 82 -6 88 7 +97 16 11z m-3422 14 c-17 -21 -43 -49 -58 -63 -15 -14 -4 3 26 38 58 68 80 85 +32 25z m3456 -63 l-1 -75 -7 55 c-12 83 -12 128 0 110 5 -8 9 -49 8 -90z m32 +-4 c0 -44 -2 -77 -4 -75 -2 2 -6 44 -9 93 -3 53 -1 83 4 75 5 -8 9 -50 9 -93z +m-2750 54 c-6 -12 -14 -19 -17 -16 -4 3 0 18 8 32 7 14 15 21 17 15 2 -5 -2 +-20 -8 -31z m3500 -5 c368 -124 732 -201 1140 -241 199 -19 627 -22 820 -5 +129 11 402 46 446 57 12 3 25 1 28 -5 10 -15 -52 -27 -305 -57 -181 -22 -692 +-30 -886 -15 -299 24 -545 64 -838 136 -212 52 -587 172 -545 175 3 0 66 -20 +140 -45z m-4260 32 c0 -2 -15 -16 -32 -33 l-33 -29 29 33 c28 30 36 37 36 29z +m240 -3 c0 -11 -103 -134 -108 -129 -5 5 0 13 58 88 32 42 50 57 50 41z m190 +-4 c0 -5 -4 -10 -10 -10 -5 0 -10 5 -10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z +m-421 -69 c-29 -33 -55 -59 -57 -56 -2 2 20 31 49 64 29 33 55 59 57 56 2 -2 +-20 -31 -49 -64z m711 62 c-1 -14 -27 -43 -33 -37 -8 9 11 44 23 44 6 0 10 -3 +10 -7z m2269 -97 c2 -73 -5 -52 -12 34 -3 44 -2 63 3 45 4 -16 8 -52 9 -79z +m-2488 61 c-8 -8 -11 -7 -11 4 0 20 13 34 18 19 3 -7 -1 -17 -7 -23z m50 0 +c-16 -16 -26 0 -10 19 9 11 15 12 17 4 2 -6 -1 -17 -7 -23z m45 -5 c-14 -14 +-16 -14 -16 -1 0 20 23 44 29 28 2 -6 -4 -18 -13 -27z m234 2 c-18 -21 -24 +-10 -8 15 7 12 14 17 16 11 2 -6 -2 -17 -8 -26z m2192 -77 c3 -32 2 -54 -2 +-50 -4 4 -10 44 -13 88 -4 51 -3 69 3 50 4 -16 10 -56 12 -88z m-2373 77 c-14 +-18 -24 -11 -15 11 3 9 11 13 16 10 8 -5 7 -11 -1 -21z m-588 -10 c-37 -47 +-93 -106 -96 -102 -6 5 98 127 108 127 5 1 -1 -11 -12 -25z m189 17 c0 -5 -21 +-35 -47 -68 -26 -32 -48 -60 -50 -62 -2 -2 -6 -2 -9 2 -6 5 93 137 103 137 2 +0 3 -4 3 -9z m527 -21 c-11 -18 -27 -27 -27 -15 0 13 25 43 32 39 4 -3 2 -14 +-5 -24z m421 -437 c298 -591 726 -1107 1240 -1497 111 -84 106 -73 78 -154 +l-12 -33 -73 55 c-201 150 -510 445 -682 651 -327 390 -599 859 -764 1317 -27 +75 -27 78 -10 104 l17 27 67 -164 c37 -90 100 -228 139 -306z m1856 372 c3 +-47 2 -72 -3 -60 -11 26 -21 159 -11 148 4 -4 11 -44 14 -88z m-2622 53 c-9 +-9 -12 -7 -12 12 0 19 3 21 12 12 9 -9 9 -15 0 -24z m2652 -20 c6 -58 7 -129 +0 -113 -8 20 -20 165 -13 165 3 0 9 -24 13 -52z m-2354 33 c0 -6 -4 -13 -10 +-16 -5 -3 -10 1 -10 9 0 9 5 16 10 16 6 0 10 -4 10 -9z m120 -10 c-5 -11 -15 +-23 -22 -27 -7 -5 -8 -2 -3 7 21 37 44 55 25 20z m2107 -18 c-3 -10 -5 -4 -5 +12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m167 -55 c3 -49 2 -78 -4 -78 -6 0 -10 +17 -10 39 0 21 -3 60 -6 87 -4 33 -3 46 3 39 6 -5 13 -45 17 -87z m-3224 79 +c0 -2 -10 -12 -22 -23 l-23 -19 19 23 c18 21 26 27 26 19z m467 -19 c-3 -8 -6 +-5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m149 -15 c-11 -11 -19 6 -11 24 8 +17 8 17 12 0 3 -10 2 -21 -1 -24z m154 25 c0 -19 -18 -43 -25 -36 -4 3 -2 16 +5 27 12 24 20 27 20 9z m-618 -45 c-45 -55 -82 -90 -82 -79 0 11 103 125 113 +126 5 0 -9 -21 -31 -47z m518 33 c0 -15 -18 -31 -26 -23 -7 7 7 37 17 37 5 0 +9 -6 9 -14z m50 7 c0 -14 -19 -38 -25 -32 -8 8 5 39 16 39 5 0 9 -3 9 -7z +m2540 -89 c1 -33 1 -63 0 -69 -4 -18 -19 80 -19 125 0 68 17 17 19 -56z +m-2360 78 c0 -5 -9 -17 -20 -27 -23 -21 -26 -14 -8 15 13 20 28 27 28 12z +m2394 -38 c9 -68 7 -132 -3 -114 -11 18 -19 160 -10 160 3 0 9 -21 13 -46z +m-3284 33 c0 -1 -26 -27 -57 -57 l-58 -55 55 58 c50 53 60 62 60 54z m341 -14 +c-17 -31 -90 -109 -91 -97 0 15 79 114 91 114 6 0 6 -7 0 -17z m159 13 c0 -3 +-4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m2825 -77 +c6 -70 3 -102 -9 -88 -8 9 -15 169 -7 169 5 0 12 -36 16 -81z m-3147 43 c-26 +-37 -100 -113 -105 -108 -3 3 21 34 53 70 55 61 83 82 52 38z m349 6 c-3 -8 +-6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m547 -86 c113 -315 313 -691 +532 -998 250 -352 577 -690 909 -940 l73 -55 -18 -47 c-11 -26 -24 -46 -31 +-44 -36 9 -302 238 -467 403 -367 365 -672 801 -887 1267 -73 157 -170 405 +-181 462 -6 27 8 60 25 60 3 0 23 -49 45 -108z m2291 11 c4 -57 3 -83 -4 -83 +-6 0 -11 13 -11 29 0 15 -3 57 -6 92 -5 43 -3 61 4 54 5 -5 13 -47 17 -92z +m-3410 19 l-59 -57 54 60 c30 34 57 59 60 58 2 -2 -23 -29 -55 -61z m612 36 +c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m198 3 c-3 -12 -11 -19 +-16 -16 -5 4 -3 14 3 25 15 24 22 19 13 -9z m-100 -10 c-3 -12 -11 -19 -16 +-16 -5 4 -5 14 2 26 13 26 23 18 14 -10z m46 -4 c-16 -16 -26 0 -10 19 9 11 +15 12 17 4 2 -6 -1 -17 -7 -23z m179 12 c-7 -11 -14 -18 -17 -15 -3 3 0 12 7 +21 18 21 23 19 10 -6z m2512 -61 c4 -79 3 -96 -6 -87 -10 10 -18 169 -8 169 5 +0 12 -36 14 -82z m37 -21 c-1 -56 -3 -74 -9 -57 -12 37 -12 152 0 145 6 -3 10 +-43 9 -88z m-3459 23 c-54 -62 -70 -77 -70 -63 0 7 111 123 118 123 2 0 -19 +-27 -48 -60z m168 -20 c-29 -33 -54 -56 -56 -50 -4 12 102 132 106 120 2 -5 +-20 -37 -50 -70z m167 15 c-33 -40 -55 -56 -55 -39 0 13 85 105 88 95 2 -6 +-13 -31 -33 -56z m182 43 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z +m2977 -24 c9 -67 7 -124 -3 -124 -5 0 -11 38 -13 85 -3 92 5 114 16 39z m36 +-51 c0 -47 -2 -84 -4 -82 -9 11 -16 169 -6 169 6 0 10 -34 10 -87z m-2973 55 +c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m253 14 c0 -10 -22 -32 +-32 -32 -5 0 -3 9 4 20 13 20 28 27 28 12z m32 -14 c-7 -7 -12 -8 -12 -2 0 14 +12 26 19 19 2 -3 -1 -11 -7 -17z m204 -108 c179 -478 405 -876 721 -1270 183 +-228 479 -520 711 -699 45 -35 82 -65 82 -67 0 -1 -9 -23 -20 -49 l-20 -46 +-47 38 c-522 418 -918 896 -1214 1468 -99 190 -174 363 -244 561 -53 149 -55 +157 -39 175 10 11 19 18 20 16 2 -1 24 -59 50 -127z m2523 -2 c1 -21 -3 -38 +-9 -38 -6 0 -9 35 -9 88 2 80 2 83 9 37 5 -27 9 -67 9 -87z m23 -21 c-8 -17 +-10 -2 -10 68 l1 90 10 -68 c6 -47 6 -75 -1 -90z m-2987 134 c3 -5 1 -12 -5 +-16 -5 -3 -10 1 -10 9 0 18 6 21 15 7z m142 -16 c-4 -8 -11 -15 -17 -15 -7 0 +-7 6 0 21 13 23 26 19 17 -6z m2870 -108 c-2 -23 -3 -1 -3 48 0 50 1 68 3 42 +2 -26 2 -67 0 -90z m-3612 63 c-32 -33 -61 -57 -64 -54 -6 6 100 114 113 114 +6 0 -16 -27 -49 -60z m235 51 c0 -4 -27 -37 -61 -72 -72 -76 -75 -64 -4 20 48 +57 65 71 65 52z m460 0 c0 -6 -4 -13 -10 -16 -5 -3 -10 1 -10 9 0 9 5 16 10 +16 6 0 10 -4 10 -9z m2377 -38 c-3 -10 -5 -2 -5 17 0 19 2 27 5 18 2 -10 2 +-26 0 -35z m-2427 33 c0 -3 -4 -8 -10 -11 -5 -3 -10 -1 -10 4 0 6 5 11 10 11 +6 0 10 -2 10 -4z m220 0 c0 -2 -8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 +21 21 13z m2243 -86 c3 -59 3 -73 -3 -45 -9 40 -13 142 -6 134 2 -2 6 -42 9 +-89z m-2750 49 c-22 -36 -51 -64 -59 -56 -7 7 56 87 68 87 5 0 1 -14 -9 -31z +m164 9 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m4370 16 c-3 -3 +-12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-4882 -74 c-32 -33 -61 -57 +-64 -54 -3 2 22 31 54 64 32 33 61 57 64 54 3 -2 -22 -31 -54 -64z m555 54 c0 +-8 -5 -12 -10 -9 -6 4 -8 11 -5 16 9 14 15 11 15 -7z m240 1 c-7 -9 -15 -13 +-17 -11 -7 7 7 26 19 26 6 0 6 -6 -2 -15z m2334 -70 c4 -52 2 -73 -3 -60 -9 +19 -15 153 -7 144 2 -2 6 -40 10 -84z m1793 79 c-3 -3 -12 -4 -19 -1 -8 3 -5 +6 6 6 11 1 17 -2 13 -5z m-5047 -7 c0 -1 -28 -29 -62 -62 l-63 -60 60 63 c55 +58 65 67 65 59z m310 -77 c-46 -53 -70 -72 -70 -54 0 12 115 133 118 124 2 -6 +-20 -37 -48 -70z m410 59 c0 -11 -4 -18 -10 -14 -5 3 -7 12 -3 20 7 21 13 19 +13 -6z m144 -3 c-6 -16 -24 -23 -24 -8 0 10 22 33 27 28 2 -2 1 -11 -3 -20z +m227 -73 c225 -676 670 -1359 1207 -1849 85 -78 258 -224 321 -270 2 -2 -5 +-23 -14 -48 l-18 -46 -31 23 c-142 100 -484 429 -642 617 -385 458 -663 950 +-850 1504 -41 121 -43 131 -27 148 9 10 17 18 19 18 1 0 17 -44 35 -97z m2197 +-18 l-1 -60 -8 45 c-4 25 -7 65 -7 90 0 41 1 42 8 15 4 -16 8 -57 8 -90z +m1809 109 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m-4335 -26 +c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m2558 -70 c0 -45 +-2 -79 -4 -77 -2 2 -6 41 -10 87 -4 56 -3 81 4 77 5 -3 10 -42 10 -87z m1823 +85 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m60 -10 c-7 -2 -21 +-2 -30 0 -10 3 -4 5 12 5 17 0 24 -2 18 -5z m-5193 -6 c0 -1 -28 -29 -62 -62 +l-63 -60 60 63 c55 58 65 67 65 59z m125 -67 c-32 -33 -61 -57 -64 -54 -3 2 +22 31 54 64 32 33 61 57 64 54 3 -2 -22 -31 -54 -64z m329 13 c-15 -20 -30 +-31 -32 -25 -2 6 9 28 24 48 16 20 30 31 32 25 2 -6 -9 -28 -24 -48z m183 35 +c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m2712 -95 c1 -24 -3 -43 +-9 -43 -6 0 -10 33 -9 83 1 70 2 76 10 42 4 -22 8 -59 8 -82z m1966 103 c39 +-8 59 -14 45 -14 -14 -1 -54 5 -90 12 -36 8 -56 14 -45 14 11 1 52 -5 90 -12z +m1595 5 c0 -10 -21 -14 -230 -40 -249 -32 -552 -44 -794 -32 -206 11 -486 38 +-496 48 -3 3 20 3 50 -1 452 -53 994 -46 1380 19 41 7 78 13 83 14 4 0 7 -3 7 +-8z m-6540 -13 c-1 -18 -108 -133 -116 -125 -6 6 101 137 112 137 2 0 4 -6 4 +-12z m310 -3 c0 -8 -4 -15 -10 -15 -5 0 -7 7 -4 15 4 8 8 15 10 15 2 0 4 -7 4 +-15z m182 -7 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z +m2518 -65 c0 -47 -2 -84 -4 -82 -9 11 -16 169 -6 169 6 0 10 -34 10 -87z +m-2221 -372 c199 -470 494 -930 843 -1312 148 -162 339 -339 522 -485 38 -30 +39 -31 27 -67 -7 -20 -16 -39 -20 -42 -19 -11 -318 257 -507 456 -461 485 +-831 1120 -1034 1774 -26 83 -27 91 -12 108 15 16 20 6 72 -145 31 -90 80 +-219 109 -287z m2261 358 c0 -46 -4 -79 -10 -79 -6 0 -10 35 -10 86 0 54 4 83 +10 79 6 -3 10 -42 10 -86z m-3441 35 c-19 -20 -47 -45 -64 -56 -17 -12 -4 5 +29 40 33 34 62 59 65 57 2 -3 -11 -21 -30 -41z m746 36 c-3 -5 -11 -10 -16 +-10 -6 0 -7 5 -4 10 3 6 11 10 16 10 6 0 7 -4 4 -10z m37 -12 c-7 -7 -12 -8 +-12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m-627 -58 c-32 -33 -61 -57 -64 +-54 -3 2 22 31 54 64 32 33 61 57 64 54 3 -2 -22 -31 -54 -64z m3052 33 c-3 +-10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m267 -15 c8 -75 7 -118 -3 +-118 -5 0 -11 38 -13 85 -3 95 6 114 16 33z m3421 41 c-22 -4 -51 -8 -65 -7 +-35 1 34 15 75 16 25 0 23 -2 -10 -9z m-6485 -10 c0 -17 -114 -132 -118 -119 +-4 11 95 127 111 129 4 0 7 -4 7 -10z m257 -11 c-3 -8 -6 -5 -6 6 -1 11 2 17 +5 13 3 -3 4 -12 1 -19z m2843 -65 c0 -47 -2 -84 -4 -82 -2 2 -7 41 -10 87 -5 +56 -4 82 3 82 7 0 11 -32 11 -87z m-3000 70 c0 -5 -11 -21 -25 -38 -28 -34 +-34 -17 -7 20 17 24 32 32 32 18z m3040 -78 c0 -50 -4 -85 -10 -85 -6 0 -10 +35 -10 85 0 50 4 85 10 85 6 0 10 -35 10 -85z m3233 78 c-7 -2 -19 -2 -25 0 +-7 3 -2 5 12 5 14 0 19 -2 13 -5z m-6798 -63 c-32 -33 -61 -57 -64 -54 -6 6 +100 114 113 114 6 0 -16 -27 -49 -60z m725 50 c0 -5 -4 -10 -10 -10 -5 0 -10 +5 -10 10 0 6 5 10 10 10 6 0 10 -4 10 -10z m40 -5 c0 -8 -4 -15 -10 -15 -5 0 +-7 7 -4 15 4 8 8 15 10 15 2 0 4 -7 4 -15z m42 -7 c-7 -7 -12 -8 -12 -2 0 14 +12 26 19 19 2 -3 -1 -11 -7 -17z m318 -393 c113 -285 289 -619 462 -875 233 +-344 554 -700 860 -954 l107 -88 -17 -34 c-8 -19 -20 -34 -25 -34 -15 0 -185 +149 -325 284 -239 233 -432 463 -617 741 -245 368 -415 713 -551 1122 -67 203 +-71 222 -52 241 10 10 21 -16 54 -116 23 -71 70 -200 104 -287z m2479 308 c1 +-36 -3 -63 -9 -63 -6 0 -10 35 -9 88 1 100 16 78 18 -25z m3104 100 c-7 -2 +-19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-6833 -6 c0 -2 -10 -12 -22 +-23 l-23 -19 19 23 c18 21 26 27 26 19z m361 -14 c-16 -30 -110 -117 -118 +-110 -4 4 20 34 52 67 59 60 84 76 66 43z m3399 -75 c0 -50 -3 -88 -7 -84 -11 +11 -12 176 -2 176 5 0 9 -41 9 -92z m3003 85 c-7 -2 -21 -2 -30 0 -10 3 -4 5 +12 5 17 0 24 -2 18 -5z m-6212 -41 c-30 -42 -100 -106 -107 -99 -8 8 108 136 +119 130 4 -2 -1 -16 -12 -31z m3236 -99 c-2 -27 -3 -5 -3 47 0 52 1 74 3 48 2 +-27 2 -69 0 -95z m2831 130 c-10 -2 -26 -2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 +18 -5z m-6483 -73 c-32 -33 -61 -57 -64 -54 -3 2 22 31 54 64 32 33 61 57 64 +54 3 -2 -22 -31 -54 -64z m3686 -25 l-8 -80 -2 90 c0 54 3 85 8 80 5 -6 6 -43 +2 -90z m2662 88 c-7 -2 -19 -2 -25 0 -7 3 -2 5 12 5 14 0 19 -2 13 -5z m-6524 +-53 c-30 -27 -57 -49 -62 -50 -4 0 18 23 48 50 30 28 58 50 62 50 4 0 -18 -22 +-48 -50z m685 15 c-9 -14 -20 -22 -25 -19 -5 3 -1 16 8 29 23 30 38 21 17 -10z +m208 13 c-7 -7 -12 -8 -12 -2 0 14 12 26 19 19 2 -3 -1 -11 -7 -17z m91 7 c-3 +-9 -8 -14 -10 -11 -3 3 -2 9 2 15 9 16 15 13 8 -4z m2904 -107 c-2 -24 -4 -5 +-4 42 0 47 2 66 4 43 2 -24 2 -62 0 -85z m-3467 104 c0 -4 -27 -34 -60 -67 +-74 -73 -79 -62 -7 16 50 55 67 68 67 51z m520 -2 c0 -5 -5 -10 -11 -10 -5 0 +-7 5 -4 10 3 6 8 10 11 10 2 0 4 -4 4 -10z m211 -155 c200 -623 526 -1191 969 +-1690 136 -154 371 -377 548 -521 6 -4 -28 -64 -36 -64 -5 0 -66 51 -138 114 +-659 579 -1156 1364 -1399 2210 -19 68 -22 92 -14 103 7 7 13 12 15 10 2 -1 +26 -75 55 -162z m2236 68 c-2 -21 -4 -6 -4 32 0 39 2 55 4 38 2 -18 2 -50 0 +-70z m-3407 84 c0 -2 -12 -14 -27 -28 l-28 -24 24 28 c23 25 31 32 31 24z m25 +-61 c-78 -70 -85 -64 -9 7 33 31 61 53 64 51 2 -3 -23 -29 -55 -58z m574 -7 +c-55 -63 -67 -74 -76 -66 -8 8 109 137 119 131 5 -3 -14 -32 -43 -65z m2838 +-51 c-2 -24 -4 -5 -4 42 0 47 2 66 4 43 2 -24 2 -62 0 -85z m-3230 45 c-31 +-32 -59 -54 -62 -51 -3 3 20 30 52 61 75 72 84 63 10 -10z m3260 -65 c-2 -24 +-4 -5 -4 42 0 47 2 66 4 43 2 -24 2 -62 0 -85z m-3007 104 c0 -14 -119 -126 +-127 -119 -4 4 20 34 52 67 56 57 75 70 75 52z m257 -17 c-4 -8 -11 -15 -17 +-15 -7 0 -7 6 0 21 13 23 26 19 17 -6z m213 21 c0 -3 -4 -8 -10 -11 -5 -3 -10 +-1 -10 4 0 6 5 11 10 11 6 0 10 -2 10 -4z m2567 -118 c-2 -24 -4 -5 -4 42 0 +47 2 66 4 43 2 -24 2 -62 0 -85z m-3462 57 c-32 -30 -61 -52 -63 -50 -6 6 101 +104 113 104 6 0 -17 -24 -50 -54z m574 -21 c-35 -35 -65 -61 -67 -59 -9 8 110 +135 120 129 5 -4 -18 -35 -53 -70z m476 44 c14 -65 98 -316 152 -453 67 -172 +248 -542 338 -690 253 -418 569 -802 892 -1087 197 -173 179 -152 164 -182 -8 +-14 -19 -26 -24 -26 -32 0 -440 399 -583 570 -370 442 -641 908 -839 1441 -58 +159 -138 427 -131 445 9 24 24 15 31 -18z m2454 -70 c1 -39 -3 -68 -9 -68 -6 +0 -10 35 -9 88 1 103 17 85 18 -20z m-3316 30 c-34 -34 -65 -59 -69 -56 -7 8 +106 117 121 118 5 0 -18 -28 -52 -62z m3347 -30 c0 -45 -2 -79 -5 -76 -11 10 +-14 158 -5 158 6 0 10 -36 10 -82z m-3650 69 c0 -2 -12 -14 -27 -28 l-28 -24 +24 28 c23 25 31 32 31 24z m135 -49 c-72 -65 -88 -67 -21 -4 33 31 61 54 64 +51 3 -3 -17 -24 -43 -47z m415 40 c0 -15 -111 -121 -118 -113 -5 5 106 125 +115 125 2 0 3 -5 3 -12z m3140 -66 c0 -37 -5 -74 -10 -82 -7 -10 -10 13 -10 +73 0 56 4 86 10 82 6 -3 10 -36 10 -73z m-2986 -13 c-31 -32 -62 -55 -67 -52 +-5 3 20 34 54 69 35 36 66 59 68 53 2 -6 -23 -37 -55 -70z m102 54 c-10 -10 +-19 5 -10 18 6 11 8 11 12 0 2 -7 1 -15 -2 -18z m349 -118 c230 -809 751 +-1633 1384 -2187 64 -56 122 -107 129 -114 11 -9 12 -16 2 -35 -7 -13 -14 -26 +-16 -28 -11 -13 -293 249 -436 406 -393 430 -682 879 -901 1400 -130 308 -263 +757 -207 696 4 -4 24 -66 45 -138z m2565 60 c0 -51 -4 -85 -10 -85 -10 0 -12 +145 -3 163 10 18 13 1 13 -78z m-3350 67 c0 -11 -120 -115 -126 -109 -6 5 107 +116 119 117 4 0 7 -3 7 -8z m-400 -43 c-41 -37 -99 -76 -75 -51 17 18 110 91 +115 91 3 0 -15 -18 -40 -40z m166 -25 c-33 -30 -64 -54 -70 -54 -6 0 19 27 54 +59 36 32 67 57 70 54 3 -3 -22 -29 -54 -59z m3624 -13 c0 -44 -4 -83 -10 -86 +-6 -4 -10 25 -10 79 0 51 4 86 10 86 6 0 10 -33 10 -79z m-3190 61 c0 -14 +-119 -126 -127 -119 -4 4 20 34 52 67 56 57 75 70 75 52z m529 -97 c180 -673 +548 -1352 1025 -1894 91 -104 339 -350 449 -447 68 -60 69 -60 50 -82 l-18 +-23 -125 114 c-575 523 -1013 1183 -1285 1933 -59 163 -147 474 -140 494 9 22 +18 2 44 -95z m2691 18 c0 -52 -4 -83 -9 -77 -8 8 -3 164 5 164 2 0 4 -39 4 +-87z m-3850 74 c0 -2 -12 -14 -27 -28 l-28 -24 24 28 c23 25 31 32 31 24z +m840 -5 c0 -10 -113 -122 -124 -122 -10 0 106 128 117 129 4 1 7 -3 7 -7z +m3050 -71 c0 -44 -4 -83 -10 -86 -6 -4 -10 25 -10 79 0 51 4 86 10 86 6 0 10 +-33 10 -79z m-3850 28 c-43 -39 -80 -64 -80 -56 0 7 111 97 119 97 3 -1 -14 +-19 -39 -41z m400 32 c0 -13 -109 -111 -123 -111 -6 0 15 27 48 60 57 58 75 +70 75 51z m3475 -159 c-10 -11 -11 4 -6 88 l6 85 3 -84 c2 -46 0 -86 -3 -89z +m-3710 92 c-33 -30 -64 -54 -70 -54 -5 1 19 27 55 60 35 32 67 56 70 53 3 -3 +-22 -29 -55 -59z m445 47 c0 -13 -121 -123 -128 -116 -6 6 108 125 120 125 4 +0 8 -4 8 -9z m155 -61 c-33 -33 -64 -60 -69 -60 -6 0 18 29 54 65 35 35 66 62 +69 59 3 -2 -22 -31 -54 -64z m295 57 c0 -8 20 -84 45 -169 250 -873 739 -1652 +1427 -2274 81 -73 86 -80 73 -98 -14 -18 -18 -16 -92 50 -116 102 -322 312 +-429 437 -480 558 -841 1247 -1019 1942 -28 110 -30 125 -15 125 6 0 10 -6 10 +-13z m2855 -64 c-4 -43 -9 -80 -11 -82 -2 -2 -4 32 -4 77 0 52 4 82 11 82 7 0 +9 -24 4 -77z m-3910 21 c-49 -44 -85 -70 -85 -60 0 6 123 106 130 106 3 -1 +-17 -21 -45 -46z m3937 -64 l-10 -55 -1 51 c0 28 2 67 6 85 l8 34 3 -30 c1 +-16 -1 -55 -6 -85z m-3524 91 c-7 -18 -119 -113 -126 -107 -4 4 20 32 53 61 +56 51 81 66 73 46z m3553 -72 c-5 -48 -9 -60 -10 -34 -1 42 9 118 15 112 2 -2 +0 -37 -5 -78z m-3790 11 c-36 -33 -67 -57 -70 -54 -7 7 110 114 124 113 6 0 +-19 -27 -54 -59z m879 -92 c191 -697 535 -1344 1007 -1894 93 -109 368 -387 +470 -477 41 -35 49 -67 18 -67 -20 0 -334 309 -458 450 -503 572 -864 1252 +-1057 1990 -28 107 -37 160 -25 148 3 -2 23 -70 45 -150z m2447 40 c-2 -24 -4 +-7 -4 37 0 44 2 63 4 43 2 -21 2 -57 0 -80z m-3447 93 c0 -10 -120 -105 -125 +-99 -4 4 112 105 123 107 1 1 2 -3 2 -8z m510 -56 c-35 -35 -68 -61 -73 -58 +-11 6 110 122 128 123 5 0 -19 -29 -55 -65z m205 5 c-33 -33 -64 -60 -69 -60 +-10 0 113 118 124 120 2 0 -22 -27 -55 -60z m2762 -62 c-2 -24 -4 -5 -4 42 0 +47 2 66 4 43 2 -24 2 -62 0 -85z m-2513 -31 c243 -926 758 -1769 1468 -2403 +37 -34 54 -55 48 -64 -11 -18 -25 -8 -161 120 -568 533 -1017 1244 -1274 2015 +-64 193 -141 496 -121 474 2 -2 20 -66 40 -142z m2543 21 c-2 -24 -4 -5 -4 42 +0 47 2 66 4 43 2 -24 2 -62 0 -85z m-3717 108 c0 -2 -8 -10 -17 -17 -16 -13 +-17 -12 -4 4 13 16 21 21 21 13z m580 -5 c0 -11 -110 -111 -122 -111 -15 0 -9 +8 50 64 56 55 72 65 72 47z m420 6 c0 -1 -26 -27 -57 -57 l-58 -55 55 58 c50 +53 60 62 60 54z m-1007 -45 c-52 -41 -85 -63 -68 -44 18 20 100 81 108 81 5 1 +-13 -16 -40 -37z m405 29 c-5 -15 -122 -110 -128 -104 -3 3 22 29 55 59 56 50 +81 66 73 45z m392 -3 c0 -15 -119 -123 -126 -115 -4 3 115 126 124 127 1 0 2 +-6 2 -12z m2957 -110 c-2 -24 -4 -5 -4 42 0 47 2 66 4 43 2 -24 2 -62 0 -85z +m-3572 66 c-53 -48 -85 -70 -84 -57 1 11 112 102 124 102 6 0 -12 -20 -40 -45z +m976 -111 c227 -884 734 -1738 1389 -2341 109 -101 135 -132 111 -132 -33 0 +-373 346 -537 545 -480 584 -830 1292 -998 2024 -27 118 -4 53 35 -96z m2630 +75 c-3 -101 -11 -99 -11 2 0 46 3 80 7 77 3 -4 5 -39 4 -79z m-3821 68 c0 -2 +-8 -10 -17 -17 -16 -13 -17 -12 -4 4 13 16 21 21 21 13z m89 -9 c-78 -61 -129 +-96 -129 -90 1 10 123 102 129 97 2 -2 2 -5 0 -7z m549 -6 c-6 -17 -120 -112 +-127 -106 -3 4 21 31 54 61 57 51 81 65 73 45z m3221 -53 c-1 -100 -17 -118 +-18 -20 -1 48 3 82 9 82 6 0 10 -27 9 -62z m-3411 42 c-5 -15 -121 -110 -127 +-104 -3 3 21 30 54 60 57 51 81 65 73 44z m400 2 c-6 -13 -115 -112 -124 -112 +-4 0 18 27 51 60 52 53 83 75 73 52z m3037 -150 c-12 -13 -15 10 -8 84 l8 79 +3 -79 c2 -43 0 -81 -3 -84z m-3650 112 c-56 -50 -99 -80 -94 -66 5 15 111 101 +124 101 6 0 -8 -16 -30 -35z m3688 -61 l-10 -78 -2 90 c-1 66 2 86 10 78 8 -8 +9 -33 2 -90z m-3843 67 c-63 -49 -110 -81 -110 -73 1 10 111 92 125 92 6 1 -1 +-8 -15 -19z m574 11 c7 -11 -122 -126 -131 -117 -4 4 22 33 58 66 73 67 66 63 +73 51z m151 -67 c-33 -30 -64 -54 -69 -54 -5 0 20 27 55 59 35 32 66 57 69 54 +3 -3 -22 -29 -55 -59z m3145 -88 c-12 -12 -14 38 -2 110 7 49 7 49 10 -25 2 +-42 -2 -79 -8 -85z m-4030 140 c0 -3 -15 -14 -32 -26 l-33 -22 30 26 c31 27 +35 29 35 22z m357 -13 c-11 -18 -127 -104 -127 -95 0 6 28 33 63 60 57 46 78 +57 64 35z m148 -30 c-51 -45 -84 -67 -91 -61 -3 3 23 29 57 57 68 57 98 60 34 +4z m3570 -30 c-7 -73 -11 -92 -18 -82 -7 12 6 159 15 159 6 0 7 -27 3 -77z +m-3915 36 c-55 -42 -101 -72 -105 -68 -6 6 119 97 125 92 3 -3 -6 -13 -20 -24z +m3941 -99 l-9 -45 -1 50 c0 28 3 68 7 90 l7 40 3 -45 c1 -25 -2 -65 -7 -90z +m-3406 54 c-56 -50 -81 -66 -73 -45 5 15 122 110 128 105 3 -3 -22 -30 -55 +-60z m210 11 c-33 -30 -64 -55 -68 -55 -4 0 20 25 55 54 82 71 91 71 13 1z +m3236 -16 c-1 -34 -7 -71 -12 -83 -7 -15 -8 -2 -4 43 3 35 5 75 5 89 0 14 3 +22 7 19 3 -4 5 -35 4 -68z m-4136 53 c-32 -28 -115 -82 -115 -75 1 9 100 81 +115 82 6 1 6 -2 0 -7z m361 -20 c-12 -19 -117 -94 -123 -88 -4 3 2 13 13 20 +10 8 39 30 64 49 43 33 59 40 46 19z m193 11 c-1 -14 -119 -105 -130 -101 -6 +2 17 27 52 56 62 50 80 60 78 45z m3614 -45 c-3 -29 -9 -66 -14 -83 -8 -27 -8 +-26 -4 10 3 22 5 59 5 83 0 23 4 42 10 42 5 0 7 -22 3 -52z m-4153 34 c0 -10 +-121 -94 -127 -89 -2 3 24 25 59 50 72 52 68 49 68 39z m170 4 c0 -9 -121 -98 +-126 -93 -3 3 21 25 53 50 54 43 73 54 73 43z m4012 -33 c-6 -65 -10 -70 -11 +-15 0 28 3 52 7 52 4 0 6 -17 4 -37z m-3472 -14 c-56 -51 -104 -86 -99 -72 6 +15 122 112 134 112 6 0 -10 -18 -35 -40z m3047 -6 c-3 -10 -5 -2 -5 17 0 19 2 +27 5 18 2 -10 2 -26 0 -35z m450 25 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 +-12 1 -19z m-3657 0 c0 -16 -119 -112 -128 -103 -3 3 9 18 28 33 19 15 48 39 +65 54 35 32 35 32 35 16z m-373 -16 c-10 -15 -130 -96 -126 -84 2 6 31 31 64 +56 55 41 75 50 62 28z m173 -7 c-22 -26 -111 -88 -117 -81 -4 4 2 13 13 20 10 +8 39 30 64 49 44 36 65 42 40 12z m3377 3 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 +3 -3 4 -12 1 -19z m53 -58 l-7 -75 -2 62 c-1 53 6 100 14 91 1 -2 -1 -37 -5 +-78z m-3775 62 c-34 -29 -117 -84 -121 -79 -6 6 105 86 121 86 6 1 6 -2 0 -7z +m755 0 c0 -5 -30 -32 -66 -62 -82 -65 -81 -49 1 20 65 54 65 54 65 42z m3053 +-54 c-6 -96 -11 -101 -12 -15 0 42 3 77 7 77 5 0 7 -28 5 -62z m-3992 33 c-31 +-23 -90 -57 -76 -44 13 14 88 63 95 63 3 0 -6 -9 -19 -19z m4025 -3 c-3 -13 +-6 -49 -6 -81 0 -32 -3 -56 -7 -54 -12 8 -3 157 9 157 6 0 8 -10 4 -22z +m-3276 4 c0 -13 -131 -115 -138 -107 -3 3 9 18 28 33 19 15 48 39 65 54 31 28 +45 34 45 20z m-550 -6 c0 -3 -30 -25 -66 -51 -79 -55 -82 -43 -4 14 51 37 70 +47 70 37z m170 -5 c0 -10 -120 -95 -126 -88 -4 4 114 97 123 97 2 0 3 -4 3 -9z +m190 2 c-1 -13 -130 -106 -137 -99 -4 3 2 13 13 20 10 8 39 30 64 49 45 36 60 +44 60 30z m400 3 c0 -8 -131 -109 -135 -104 -4 3 123 108 132 108 1 0 3 -2 3 +-4z m3096 -42 c-3 -26 -6 -60 -6 -75 0 -16 -3 -29 -7 -29 -5 0 -7 34 -5 75 2 +44 8 75 14 75 7 0 8 -16 4 -46z m-4083 -4 c-34 -22 -66 -40 -70 -40 -11 0 110 +79 122 79 6 0 -18 -17 -52 -39z m4109 -70 l-10 -55 -1 51 c0 28 2 67 6 85 l8 +34 3 -30 c1 -16 -1 -55 -6 -85z m33 -28 c-12 -62 -18 -24 -9 55 8 74 9 75 12 +28 2 -27 0 -65 -3 -83z m-3380 83 c-54 -44 -105 -78 -110 -73 -3 3 25 28 62 +56 36 29 69 49 72 46 3 -2 -8 -16 -24 -29z m-705 21 c0 -7 -112 -77 -116 -73 +-3 3 21 21 53 41 58 36 63 39 63 32z m166 -5 c-9 -14 -116 -85 -121 -80 -2 3 +21 24 53 47 55 39 79 51 68 33z m184 1 c0 -12 -120 -95 -127 -88 -4 3 -4 7 -2 +9 17 14 123 87 126 87 1 0 3 -4 3 -8z m190 1 c-1 -13 -123 -102 -132 -96 -5 2 +20 27 54 53 62 48 78 57 78 43z m3584 -65 c-4 -40 -11 -77 -17 -83 -6 -7 -8 6 +-3 39 3 27 6 64 6 82 0 19 5 34 10 34 6 0 8 -26 4 -72z m193 35 c-3 -10 -5 -4 +-5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m-420 -5 c-3 -7 -5 -2 -5 12 0 14 2 +19 5 13 2 -7 2 -19 0 -25z m258 -52 c-4 -42 -11 -76 -16 -76 -8 0 -5 46 7 129 +10 62 16 23 9 -53z m-3406 61 c-78 -61 -131 -98 -135 -95 -2 3 26 28 63 56 36 +29 69 50 71 47 3 -3 3 -6 1 -8z m3432 -117 l-9 -45 -1 41 c-1 23 2 63 7 90 l7 +49 3 -45 c1 -25 -2 -65 -7 -90z m-4193 97 c-38 -30 -108 -69 -108 -60 1 9 110 +81 125 82 6 0 -2 -10 -17 -22z m192 14 c0 -11 -123 -92 -130 -85 -2 3 2 9 10 +14 8 5 38 25 65 44 57 40 55 39 55 27z m370 -3 c-1 -17 -119 -103 -128 -93 -4 +3 0 10 9 15 8 5 38 27 65 49 56 46 54 45 54 29z m-180 -2 c0 -3 -101 -75 -129 +-91 -8 -5 -12 -4 -10 3 9 24 139 107 139 88z m3856 -23 c-3 -16 -8 -52 -11 +-81 -4 -29 -9 -51 -12 -48 -9 8 9 156 19 156 5 0 7 -12 4 -27z m23 -63 c-6 +-41 -13 -77 -16 -80 -6 -6 7 142 14 153 11 18 11 -2 2 -73z m-4449 65 c0 -2 +-10 -9 -22 -15 -22 -11 -22 -10 -4 4 21 17 26 19 26 11z m50 1 c0 -7 -113 -76 +-125 -76 -5 0 19 18 55 40 69 42 70 42 70 36z m146 -20 c-38 -32 -106 -69 +-106 -59 0 7 118 82 130 82 3 0 -8 -10 -24 -23z m759 15 c-28 -24 -127 -92 +-131 -89 -5 5 118 97 131 98 6 0 6 -3 0 -9z m3520 -71 l-14 -75 6 70 c5 65 11 +91 18 83 1 -2 -3 -37 -10 -78z m-4085 63 c0 -11 -120 -87 -126 -80 -6 5 104 +86 119 86 4 1 7 -2 7 -6z m190 -1 c0 -4 -26 -26 -57 -48 -78 -54 -86 -59 -82 +-46 4 12 119 100 132 101 4 1 7 -3 7 -7z m190 1 c0 -7 -85 -70 -128 -97 -37 +-22 -1 17 53 57 60 46 75 53 75 40z m3737 -35 c-3 -7 -5 -2 -5 12 0 14 2 19 5 +13 2 -7 2 -19 0 -25z m-4562 12 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 +23 12 15 0z m115 5 c0 -7 -122 -76 -127 -72 -2 3 22 20 54 40 56 34 73 42 73 +32z m900 1 c0 -3 -15 -14 -32 -26 l-33 -22 30 26 c31 27 35 29 35 22z m-787 +-46 c-34 -22 -68 -40 -75 -40 -18 0 103 78 122 79 8 0 -13 -17 -47 -39z m227 +30 c0 -13 -120 -93 -128 -85 -4 4 0 10 8 15 8 5 38 25 65 44 58 40 55 39 55 +26z m3711 -102 l-11 -33 5 34 c3 18 6 52 7 75 l1 41 4 -42 c2 -22 -1 -56 -6 +-75z m-3521 93 c0 -11 -129 -95 -136 -88 -5 5 114 94 129 96 4 1 7 -3 7 -8z +m190 5 c0 -8 -132 -97 -137 -93 -2 3 24 26 59 51 58 42 78 53 78 42z m3365 +-83 c-4 -35 -9 -62 -12 -60 -2 3 -1 38 3 79 4 40 9 67 12 60 2 -8 1 -43 -3 +-79z m-4086 64 c-23 -18 -112 -67 -122 -67 -6 0 17 18 53 39 36 22 67 37 69 +35 2 -2 2 -5 0 -7z m4116 -74 c-4 -35 -9 -62 -12 -59 -3 2 -2 38 2 78 5 40 10 +67 13 60 2 -8 1 -43 -3 -79z m-4295 72 c0 -2 -10 -9 -22 -15 -22 -11 -22 -10 +-4 4 21 17 26 19 26 11z m350 -4 c0 -11 -120 -85 -127 -78 -4 4 113 86 125 87 +1 0 2 -4 2 -9z m180 -10 c0 -8 -16 -19 -102 -75 -16 -10 -28 -14 -28 -8 0 7 +116 92 128 92 1 0 2 -4 2 -9z m352 -19 c-36 -30 -112 -76 -112 -68 0 6 132 96 +140 96 3 0 -10 -13 -28 -28z m3325 -24 c-2 -13 -4 -5 -4 17 -1 22 1 32 4 23 2 +-10 2 -28 0 -40z m118 -36 c-4 -37 -10 -61 -12 -54 -3 8 -2 44 2 80 4 37 10 +61 12 54 3 -8 2 -44 -2 -80z m-4305 74 c0 -6 -113 -67 -117 -62 -2 1 23 17 54 +34 62 34 63 34 63 28z m160 -16 c-83 -50 -120 -69 -120 -63 0 10 123 81 130 +76 3 -3 -2 -9 -10 -13z m536 11 c-10 -15 -113 -81 -128 -81 -7 0 16 20 52 44 +64 44 87 55 76 37z m3650 -8 c-2 -10 -7 -44 -11 -76 -4 -32 -9 -56 -12 -53 -9 +9 9 146 19 146 5 0 7 -8 4 -17z m-4028 -26 c-40 -32 -111 -71 -107 -58 4 12 +108 79 124 80 6 0 -2 -10 -17 -22z m578 14 c-7 -10 -76 -52 -76 -46 0 4 72 55 +78 55 2 0 1 -4 -2 -9z m3480 -18 c-2 -16 -8 -50 -11 -76 -10 -75 -18 -48 -10 +32 4 39 11 71 17 71 5 0 7 -12 4 -27z m-4421 -18 c-33 -19 -64 -35 -70 -35 -5 +0 17 16 50 35 33 19 65 34 70 34 6 0 -17 -15 -50 -34z m575 31 c0 -8 -132 -87 +-137 -82 -3 3 23 23 58 45 60 38 79 47 79 37z m180 -5 c0 -11 -131 -94 -137 +-87 -4 3 125 95 135 96 1 0 2 -4 2 -9z m3694 -48 c-10 -88 -25 -110 -18 -28 4 +39 8 73 11 78 11 19 14 2 7 -50z m-4224 42 c0 -7 -131 -77 -136 -72 -3 2 23 +21 58 40 61 35 78 42 78 32z m4255 -62 c-4 -38 -11 -75 -17 -83 -9 -15 -5 37 +9 118 10 58 16 34 8 -35z m-4085 47 c0 -13 -121 -83 -129 -74 -3 4 -1 8 4 11 +6 2 35 19 65 38 62 39 60 38 60 25z m-355 -16 c-30 -24 -96 -56 -102 -50 -4 4 +104 65 117 65 3 0 -4 -7 -15 -15z m513 -18 c-71 -47 -111 -69 -107 -58 6 15 +122 90 132 85 5 -3 -6 -15 -25 -27z m3958 -28 c-4 -34 -12 -69 -17 -78 -10 +-15 -10 -6 6 98 10 65 18 50 11 -20z m-4647 48 c-2 -2 -15 -9 -29 -15 -24 -11 +-24 -11 -6 3 16 13 49 24 35 12z m355 -15 c-19 -18 -124 -73 -124 -64 0 9 123 +82 129 76 3 -2 0 -7 -5 -12z m541 10 c-22 -20 -125 -81 -125 -74 0 9 110 81 +125 82 6 1 6 -2 0 -8z m3775 -87 c-17 -80 -23 -60 -8 27 7 41 14 64 16 51 2 +-12 -2 -47 -8 -78z m-4640 81 c0 -3 -27 -18 -60 -35 -33 -17 -60 -28 -60 -25 +0 2 26 18 58 34 64 34 62 33 62 26z m960 0 c0 -2 -10 -9 -22 -15 -22 -11 -22 +-10 -4 4 21 17 26 19 26 11z m3710 -75 c-7 -39 -14 -69 -16 -67 -3 2 1 36 7 +76 7 39 14 69 17 67 2 -3 -1 -37 -8 -76z m-4505 60 c-9 -14 -125 -72 -125 -62 +0 4 28 22 63 39 72 37 70 36 62 23z m345 2 c0 -5 -10 -14 -22 -20 -13 -6 -43 +-23 -67 -38 -24 -15 -42 -22 -40 -15 4 11 106 79 122 80 4 1 7 -3 7 -7z m4197 +-14 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-4024 -6 c-37 -28 +-123 -74 -123 -65 0 9 120 82 135 82 6 0 0 -7 -12 -17z m192 9 c-15 -13 -111 +-66 -102 -55 13 14 91 63 102 63 6 1 6 -2 0 -8z m-875 -12 c-19 -13 -99 -49 +-108 -49 -10 1 101 59 113 59 6 1 3 -4 -5 -10z m335 2 c-9 -15 -118 -72 -124 +-65 -3 4 -1 8 4 10 6 3 33 17 60 34 52 30 70 37 60 21z m1611 -98 c-5 -5 -36 +86 -35 101 0 6 9 -13 20 -43 10 -30 17 -56 15 -58z m2381 85 c-3 -8 -6 -5 -6 +6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-6370 -10 c-3 -8 -6 -5 -6 6 -1 11 2 17 +5 13 3 -3 4 -12 1 -19z m2563 12 c0 -11 -129 -85 -136 -77 -3 2 26 23 63 45 +80 47 73 44 73 32z m-670 -4 c0 -2 -7 -7 -16 -10 -8 -3 -12 -2 -9 4 6 10 25 +14 25 6z m320 -1 c0 -3 -27 -18 -60 -35 -33 -17 -60 -27 -60 -22 0 4 24 20 53 +34 53 27 67 32 67 23z m530 -9 c-19 -18 -138 -83 -124 -68 13 16 116 80 129 +81 5 1 3 -5 -5 -13z m3675 -60 c-3 -36 -10 -68 -14 -70 -3 -2 -2 29 3 70 11 +91 21 90 11 0z m322 42 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z +m-4678 18 c-10 -9 -129 -66 -129 -61 0 6 111 64 124 65 5 0 7 -2 5 -4z m331 +-5 c0 -10 -119 -75 -126 -68 -3 2 23 21 58 40 72 41 68 40 68 28z m3995 -61 +c-4 -34 -9 -59 -12 -57 -2 3 -1 33 3 66 4 34 9 60 11 57 3 -3 2 -32 -2 -66z +m-4485 55 c0 -6 -56 -35 -67 -35 -4 1 8 9 27 20 39 22 40 22 40 15z m4545 -57 +c-4 -35 -12 -67 -17 -73 -7 -7 -8 -3 -5 10 3 11 9 44 12 73 4 28 9 52 12 52 3 +0 2 -28 -2 -62z m-4225 48 c0 -8 -114 -66 -123 -63 -5 1 17 17 49 35 57 30 74 +37 74 28z m346 -5 c-9 -14 -117 -72 -128 -69 -5 2 19 20 54 40 65 37 83 44 74 +29z m189 0 c-15 -15 -142 -84 -128 -70 11 11 123 78 133 79 2 0 0 -4 -5 -9z +m3721 -53 c-4 -34 -12 -69 -17 -78 -10 -15 -10 -14 7 98 10 65 17 50 10 -20z +m-4416 47 c0 -8 -122 -67 -127 -61 -3 2 21 18 53 35 59 30 74 35 74 26z m4297 +-32 c-3 -10 -5 -4 -5 12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m-6370 5 c-3 -8 -6 +-5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m1913 17 c0 -7 -70 -41 -100 -49 +-14 -4 2 7 35 23 71 34 65 32 65 26z m500 1 c0 -8 -131 -78 -137 -73 -4 5 28 +25 102 65 21 12 35 15 35 8z m4105 -58 c-7 -59 -24 -114 -25 -79 0 25 22 141 +27 141 3 0 2 -28 -2 -62z m-4685 48 c0 -2 -7 -7 -16 -10 -8 -3 -12 -2 -9 4 6 +10 25 14 25 6z m409 -10 c-14 -13 -129 -65 -129 -58 0 9 123 72 129 66 2 -2 2 +-6 0 -8z m350 1 c-19 -15 -121 -67 -131 -67 -7 0 19 18 57 39 39 22 72 37 74 +35 2 -2 2 -5 0 -7z m3957 -49 c-4 -34 -12 -69 -17 -78 -10 -15 -10 -14 7 98 +10 65 17 50 10 -20z m-4466 47 c0 -8 -122 -67 -127 -61 -3 2 21 18 53 35 59 +30 74 35 74 26z m-160 -9 c0 -7 -113 -57 -117 -52 -3 2 20 15 49 29 54 26 68 +30 68 23z m500 -4 c0 -9 -131 -75 -137 -68 -4 4 113 72 130 75 4 0 7 -3 7 -7z +m4154 -63 c-13 -67 -24 -100 -24 -69 0 30 24 140 31 140 3 0 1 -32 -7 -71z +m-3975 47 c-8 -8 -129 -66 -136 -66 -4 0 24 18 62 39 39 22 72 37 74 35 2 -2 +2 -6 0 -8z m4005 -57 c-7 -40 -16 -75 -20 -78 -4 -3 -4 10 -1 29 4 19 9 54 13 +78 4 23 10 42 14 42 4 0 2 -32 -6 -71z m-4874 51 c-8 -5 -19 -10 -25 -10 -5 0 +-3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z m350 2 c0 -9 -105 -62 -123 -62 +-6 1 17 16 53 35 75 39 70 37 70 27z m106 -28 c-37 -19 -70 -33 -73 -30 -7 6 +108 65 127 65 8 0 -16 -16 -54 -35z m1882 -124 c157 -402 373 -789 638 -1143 +183 -244 328 -406 577 -644 63 -59 103 -104 96 -108 -13 -9 -388 367 -498 500 +-357 430 -636 905 -829 1405 -40 105 -63 177 -42 135 5 -11 31 -76 58 -145z +m2577 137 c-2 -7 -9 -38 -15 -70 -7 -32 -14 -56 -17 -54 -8 8 20 146 29 141 4 +-3 5 -10 3 -17z m-4725 8 c0 -7 -71 -41 -100 -49 -14 -3 2 8 35 24 65 32 65 +32 65 25z m-186 -24 c-63 -29 -96 -34 -39 -7 28 13 57 25 65 25 8 0 -3 -8 -26 +-18z m632 -17 c-37 -19 -70 -33 -73 -30 -7 6 108 65 127 65 8 0 -16 -16 -54 +-35z m239 26 c-3 -5 -12 -10 -18 -10 -7 0 -6 4 3 10 19 12 23 12 15 0z m4054 +-64 c-7 -36 -15 -64 -17 -61 -2 2 1 34 8 70 7 36 15 64 17 61 3 -3 0 -34 -8 +-70z m-4399 58 c0 -8 -131 -66 -137 -61 -4 5 114 64 130 66 4 1 7 -2 7 -5z +m4434 -33 c-4 -17 -9 -30 -11 -27 -3 2 -2 19 2 36 9 41 17 33 9 -9z m-4764 23 +c0 -8 -111 -55 -122 -52 -6 2 19 16 54 30 73 31 68 30 68 22z m160 2 c0 -7 +-111 -56 -124 -55 -6 0 16 14 49 29 59 29 75 34 75 26z m-355 -25 c-47 -21 +-92 -36 -85 -28 7 8 103 46 115 46 6 0 -8 -8 -30 -18z m690 10 c-12 -12 -125 +-63 -125 -56 0 6 112 64 125 65 6 0 6 -3 0 -9z m-2438 -38 c-3 -10 -5 -4 -5 +12 0 17 2 24 5 18 2 -7 2 -21 0 -30z m2273 28 c0 -9 -120 -64 -127 -57 -3 3 +102 58 125 65 1 1 2 -3 2 -8z m4115 -46 c-4 -25 -9 -44 -12 -41 -2 2 -1 25 2 +51 4 25 9 44 12 41 2 -2 1 -25 -2 -51z m-4596 32 c-13 -10 -113 -46 -117 -42 +-3 2 6 9 19 14 13 5 40 15 59 23 30 13 53 16 39 5z m151 5 c0 -5 -27 -20 -60 +-35 -33 -14 -60 -22 -60 -19 0 6 75 45 118 61 1 1 2 -3 2 -7z m165 -1 c-17 +-15 -125 -60 -125 -52 0 4 26 19 58 34 61 27 82 33 67 18z m4300 -71 c-13 -60 +-14 -61 -9 -15 7 62 16 103 21 90 2 -6 -3 -40 -12 -75z m-3975 55 c-14 -8 -29 +-14 -35 -14 -5 0 1 6 15 14 14 8 30 14 35 14 6 0 -1 -6 -15 -14z m3927 -17 +c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m-4767 12 c-8 -5 -19 +-10 -25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z m690 1 c0 -5 +-12 -14 -27 -19 -16 -6 -45 -17 -65 -26 -63 -27 -43 -8 25 23 34 16 63 30 65 +30 1 1 2 -3 2 -8z m4156 -58 c-6 -34 -15 -65 -20 -70 -5 -4 -6 1 -3 12 3 11 9 +40 12 65 7 44 14 65 20 58 1 -2 -2 -31 -9 -65z m-4800 48 c-7 -10 -97 -43 +-103 -37 -2 2 20 12 49 24 64 25 60 24 54 13z m474 1 c0 -4 -12 -13 -27 -19 +-16 -6 -45 -18 -65 -27 -64 -27 -42 -7 25 24 72 34 67 32 67 22z m-355 -21 +c-63 -28 -95 -33 -40 -7 28 14 57 25 65 25 8 0 -3 -8 -25 -18z m150 -6 c-27 +-13 -57 -24 -65 -24 -8 1 8 11 35 24 28 13 57 24 65 24 8 -1 -7 -11 -35 -24z +m4570 13 c-2 -7 -9 -39 -15 -71 -7 -32 -14 -57 -16 -54 -8 7 19 137 27 137 5 +0 7 -6 4 -12z m212 -10 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z +m-4397 7 c0 -6 -88 -45 -98 -44 -4 0 16 11 43 24 58 28 55 27 55 20z m4215 -7 +c-2 -7 -9 -39 -15 -71 -7 -32 -14 -57 -16 -54 -8 7 19 137 27 137 5 0 7 -6 4 +-12z m-4869 -7 c-7 -10 -97 -43 -103 -37 -3 2 47 24 105 45 2 0 1 -3 -2 -8z +m484 3 c0 -7 -107 -54 -123 -54 -7 1 17 14 53 30 77 34 70 31 70 24z m4227 +-16 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m173 -64 c-7 -36 +-15 -62 -18 -60 -3 3 1 38 8 78 8 39 16 66 18 59 2 -7 -1 -41 -8 -77z m-4721 +72 c-2 -2 -31 -13 -64 -25 -66 -25 -68 -16 -2 11 38 15 77 24 66 14z m160 0 +c-10 -10 -129 -54 -129 -48 0 8 97 49 119 51 8 1 12 -1 10 -3z m-1972 -83 c-2 +-16 -4 -3 -4 27 0 30 2 43 4 28 2 -16 2 -40 0 -55z m6562 2 c-7 -36 -16 -65 +-19 -65 -4 0 0 31 8 70 9 38 17 68 20 65 2 -2 -1 -33 -9 -70z m-4904 56 c-12 +-10 -107 -42 -112 -37 -4 3 94 43 112 45 5 1 5 -2 0 -8z m480 1 c-10 -9 -84 +-40 -115 -48 -8 -3 12 9 45 25 61 30 87 38 70 23z m4454 -61 c-6 -34 -15 -64 +-19 -66 -5 -3 -2 21 6 52 7 32 13 64 14 72 0 8 3 12 6 9 3 -3 0 -34 -7 -67z +m-4780 55 c-9 -9 -113 -45 -117 -41 -3 2 8 9 24 15 16 6 38 14 49 19 20 10 52 +14 44 7z m161 0 c0 -7 -112 -47 -117 -43 -2 2 20 13 49 25 55 22 68 25 68 18z +m4407 -18 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m238 -58 c-23 +-92 -30 -85 -9 9 9 40 19 70 21 67 3 -3 -2 -37 -12 -76z m-5185 60 c-8 -5 -19 +-10 -25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z m90 6 c0 -6 -93 +-37 -97 -32 -2 2 15 11 39 19 47 17 58 19 58 13z m135 -15 c-12 -10 -111 -44 +-101 -33 4 4 28 15 54 24 57 20 59 20 47 9z m4994 -28 c-15 -56 -20 -63 -13 +-18 6 39 11 55 19 55 2 0 -1 -17 -6 -37z m-4839 20 c-8 -3 -37 -14 -65 -25 +-27 -11 -45 -15 -40 -9 13 13 84 40 105 40 13 -1 13 -1 0 -6z m144 -7 c-50 +-22 -82 -27 -39 -7 22 11 47 20 55 20 8 0 1 -6 -16 -13z m-460 -11 c-17 -8 +-44 -16 -60 -20 -16 -3 -6 4 21 14 57 22 86 26 39 6z m-177 -1 c-3 -3 -12 -4 +-19 -1 -8 3 -5 6 6 6 11 1 17 -2 13 -5z m353 2 c0 -2 -28 -14 -62 -25 -70 -24 +-70 -15 0 11 50 18 62 20 62 14z m-293 -12 c-3 -3 -12 -4 -19 -1 -8 3 -5 6 6 +6 11 1 17 -2 13 -5z m413 -9 c-46 -18 -64 -17 -25 0 17 8 37 14 45 14 8 0 -1 +-7 -20 -14z m4574 -29 c-3 -21 -8 -35 -11 -32 -2 2 -1 20 3 40 3 21 8 35 11 +32 2 -2 1 -20 -3 -40z m-4854 24 c-8 -5 -22 -9 -30 -9 -10 0 -8 3 5 9 27 12 +43 12 25 0z m4875 -58 c-7 -35 -16 -66 -20 -70 -4 -4 -5 2 -2 13 3 11 8 36 12 +55 9 47 16 72 20 68 2 -2 -2 -32 -10 -66z m-5018 42 c-3 -3 -12 -4 -19 -1 -8 +3 -5 6 6 6 11 1 17 -2 13 -5z m5060 -1 c-3 -5 -10 -34 -17 -66 -6 -32 -14 -56 +-16 -54 -8 8 19 127 29 127 4 0 6 -3 4 -7z m13 -73 c-7 -33 -17 -63 -23 -67 +-6 -4 -8 0 -5 8 3 8 11 40 18 72 7 31 15 55 18 52 3 -2 -1 -32 -8 -65z m-4965 +50 c-27 -12 -43 -12 -25 0 8 5 22 9 30 9 10 0 8 -3 -5 -9z m175 0 c-8 -5 -19 +-10 -25 -10 -5 0 -3 5 5 10 8 5 20 10 25 10 6 0 3 -5 -5 -10z m4820 -52 c-7 +-29 -17 -60 -22 -68 -7 -12 -8 -11 -4 5 2 11 10 44 16 73 7 29 15 51 17 48 3 +-3 0 -29 -7 -58z m25 -29 c-18 -70 -32 -95 -21 -40 11 60 27 113 32 108 3 -3 +-2 -33 -11 -68z m29 -4 c-9 -33 -19 -64 -24 -69 -5 -5 -2 18 6 50 19 75 23 88 +29 83 2 -3 -3 -32 -11 -64z m-177 23 c-3 -7 -5 -2 -5 12 0 14 2 19 5 13 2 -7 +2 -19 0 -25z m198 -53 c-23 -76 -28 -65 -7 13 9 35 18 59 20 54 2 -6 -4 -36 +-13 -67z m29 1 c-3 -15 -8 -25 -11 -23 -2 3 -1 17 3 31 3 15 8 25 11 23 2 -3 +1 -17 -3 -31z m-225 -61 c-7 -31 -15 -58 -19 -60 -4 -2 0 25 8 60 9 36 18 63 +20 61 2 -3 -2 -30 -9 -61z m-22 33 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 +-12 1 -19z m44 -59 c-11 -35 -20 -57 -20 -48 -1 20 29 122 34 117 3 -2 -4 -33 +-14 -69z m32 4 c-9 -32 -20 -62 -24 -67 -8 -9 18 102 28 117 11 19 10 2 -4 +-50z m22 -28 c-10 -36 -20 -63 -22 -61 -2 2 4 33 13 70 10 36 20 63 22 61 3 +-2 -4 -34 -13 -70z m-108 43 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 +-19z m136 -48 c-8 -30 -20 -59 -26 -65 -6 -7 -8 -7 -5 0 3 6 13 36 22 69 10 +32 19 56 21 54 2 -2 -3 -28 -12 -58z m22 -25 c-9 -32 -18 -55 -20 -53 -2 2 4 +29 12 61 9 31 18 55 21 53 2 -3 -4 -30 -13 -61z m-168 33 c-3 -8 -6 -5 -6 6 +-1 11 2 17 5 13 3 -3 4 -12 1 -19z m204 -9 c-5 -13 -10 -19 -10 -12 -1 15 10 +45 15 40 3 -2 0 -15 -5 -28z m-194 -61 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 +-3 4 -12 1 -19z m19 -34 c-8 -21 -15 -34 -15 -28 -1 15 20 76 25 71 2 -2 -2 +-21 -10 -43z m18 -38 c-10 -31 -19 -54 -22 -52 -2 2 4 29 14 60 10 31 19 54 +22 52 2 -2 -4 -29 -14 -60z m30 -2 c-9 -27 -21 -53 -25 -59 -5 -5 0 19 12 54 +12 34 23 60 25 58 2 -2 -3 -26 -12 -53z m26 -9 c-16 -47 -23 -40 -8 8 6 20 13 +35 16 33 2 -3 -1 -21 -8 -41z m-120 -2 c-11 -17 -11 -17 -6 0 3 10 6 24 7 30 +0 9 2 9 5 0 3 -7 0 -20 -6 -30z m153 17 c-3 -12 -8 -19 -11 -16 -5 6 5 36 12 +36 2 0 2 -9 -1 -20z m-126 -32 c-3 -8 -6 -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 +1 -19z m-27 -83 c-16 -47 -23 -40 -8 8 6 20 13 35 16 33 2 -3 -1 -21 -8 -41z +m-1929 -42 c209 -383 525 -792 869 -1126 84 -82 150 -151 146 -154 -9 -10 +-375 364 -485 497 -215 257 -447 597 -560 818 -37 72 -15 46 30 -35z m1978 18 +c-6 -18 -13 -30 -15 -28 -2 2 1 18 7 36 6 18 13 30 15 28 2 -2 -1 -18 -7 -36z +m-1408 -878 c13 -16 12 -17 -3 -4 -10 7 -18 15 -18 17 0 8 8 3 21 -13z m75 +-85 l29 -33 -32 29 c-18 17 -33 31 -33 33 0 8 8 1 36 -29z m164 -173 c52 -52 +92 -95 90 -95 -3 0 -48 43 -100 95 -52 52 -92 95 -90 95 3 0 48 -43 100 -95z +m190 -182 c0 -8 -9 0 -50 45 l-45 47 48 -45 c26 -24 47 -45 47 -47z"/> +</g> +</svg> diff --git a/user-interface/src/components/AppFooter.vue b/user-interface/src/components/AppFooter.vue new file mode 100644 index 0000000..377f01f --- /dev/null +++ b/user-interface/src/components/AppFooter.vue @@ -0,0 +1,11 @@ +<script setup lang="ts"> + +</script> + +<template> +... +</template> + +<style scoped> + +</style> \ No newline at end of file diff --git a/user-interface/src/components/AppTopbar.vue b/user-interface/src/components/AppTopbar.vue new file mode 100644 index 0000000..74abff0 --- /dev/null +++ b/user-interface/src/components/AppTopbar.vue @@ -0,0 +1,29 @@ +<template> + <div class="topbar-container"> + <div class="logo-container"> + <img class="logo" src="../assets/svg/manolia-logo.svg" alt="Manolia logo" /> + <span>MANOLIA</span> + </div> + </div> +</template> + +<style scoped> +.topbar-container { + height: 4rem; + width: 100%; + display: flex; + align-items: center; + justify-content: left; +} +.logo-container { + width: 20rem; + display: flex; + align-items: center; + gap: 0.5rem; + + img { + width: 2rem; + } +} + +</style> \ No newline at end of file diff --git a/user-interface/src/components/CollectKnowledge.vue b/user-interface/src/components/CollectKnowledge.vue new file mode 100644 index 0000000..524fd33 --- /dev/null +++ b/user-interface/src/components/CollectKnowledge.vue @@ -0,0 +1,18 @@ +<script setup lang="ts"> + +</script> + +<template> +<div class="container"> + <h2>Collect Knowledge</h2> +</div> +</template> + +<style scoped> +.container{ + background-color: #ffffff; + border-radius: 16px; + padding: 34px; +} + +</style> \ No newline at end of file diff --git a/user-interface/src/components/EvaluateQuestion.vue b/user-interface/src/components/EvaluateQuestion.vue new file mode 100644 index 0000000..aed82b8 --- /dev/null +++ b/user-interface/src/components/EvaluateQuestion.vue @@ -0,0 +1,13 @@ +<script setup lang="ts"> + +</script> + +<template> +<div> + Evaluate +</div> +</template> + +<style scoped> + +</style> \ No newline at end of file diff --git a/user-interface/src/components/ReadKnowledges.vue b/user-interface/src/components/ReadKnowledges.vue new file mode 100644 index 0000000..99bc9ee --- /dev/null +++ b/user-interface/src/components/ReadKnowledges.vue @@ -0,0 +1,17 @@ +<script setup lang="ts"> + +</script> + +<template> +<div class="container"> + <h2>Knowledge</h2> +</div> +</template> + +<style scoped> +.container{ + background-color: #ffffff; + border-radius: 16px; + padding: 34px; +} +</style> \ No newline at end of file diff --git a/user-interface/src/main.ts b/user-interface/src/main.ts index fda1e6e..0a9e038 100644 --- a/user-interface/src/main.ts +++ b/user-interface/src/main.ts @@ -3,6 +3,7 @@ import { createPinia } from 'pinia' import App from './App.vue' import router from './router' +import './styles/global.css'; const app = createApp(App) diff --git a/user-interface/src/router/index.ts b/user-interface/src/router/index.ts index e1eab52..3b80ba2 100644 --- a/user-interface/src/router/index.ts +++ b/user-interface/src/router/index.ts @@ -2,7 +2,14 @@ import { createRouter, createWebHistory } from 'vue-router' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), - routes: [], + routes: [ + { + path: '/', + alias: '/app', + name: 'app', + component: () => import('@/views/ExperimentView.vue'), + }, + ], }) export default router diff --git a/user-interface/src/styles/global.css b/user-interface/src/styles/global.css new file mode 100644 index 0000000..f4adf82 --- /dev/null +++ b/user-interface/src/styles/global.css @@ -0,0 +1,4 @@ +body { + background-color: #FFF4EA; + margin-inline: 5%; +} \ No newline at end of file diff --git a/user-interface/src/views/ExperimentView.vue b/user-interface/src/views/ExperimentView.vue new file mode 100644 index 0000000..033d5ea --- /dev/null +++ b/user-interface/src/views/ExperimentView.vue @@ -0,0 +1,27 @@ +<script setup lang="ts"> +import ReadKnowledges from '@/components/ReadKnowledges.vue'; +import CollectKnowledge from '@/components/CollectKnowledge.vue'; +//import EvaluateQuestion from '@/components/EvaluateQuestion.vue'; +</script> + +<template> + <div class="experiment-container"> + <section id="section-left"> + <ReadKnowledges/> + </section> + <section id="section-central"> + <CollectKnowledge/> + </section> + <!-- <section> + <EvaluateQuestion/> + </section> --> + </div> +</template> + +<style scoped> + .experiment-container{ + display: grid; + grid-template-columns: 1fr 3fr; + gap: 24px; + } +</style> \ No newline at end of file